import { html, LitElement, unsafeCSS, type CSSResultGroup, type TemplateResult, } from 'lit'; import { customElement } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; import { ifDefined } from 'lit/directives/if-defined.js'; import { createRef, ref, type Ref } from 'lit/directives/ref.js'; import { styleMap } from 'lit/directives/style-map.js'; import 'web-dialog'; import { actionHandler } from './action-handler-directive.js'; import { ConfigManager } from './card-controller/config/config-manager'; import { CardController } from './card-controller/controller'; import type { IssueKey, IssueResolveEventData, IssueTriggerEventData, } from './card-controller/issues/types.js'; import { resolveAutoHideState, type AutoHideState } from './components-lib/auto-hide.js'; import type { MicrophoneError } from './components-lib/live/utils/dispatch-microphone-error.js'; import { MenuButtonController } from './components-lib/menu-button-controller'; import './components/effects/effects'; import './components/elements.js'; import type { AdvancedCameraCardElements } from './components/elements.js'; import './components/loading.js'; import './components/menu.js'; import type { AdvancedCameraCardMenu } from './components/menu.js'; import './components/notification/block.js'; import { renderNotificationBlock } from './components/notification/block.js'; import './components/notification/popup.js'; import './components/overlay.js'; import type { AdvancedCameraCardOverlay } from './components/overlay.js'; import './components/status-bar'; import './components/thumbnail-carousel.js'; import './components/views.js'; import type { TemplateRendererGetEvent } from './card-controller/templates/renderer-via-event.js'; import type { AdvancedCameraCardViews } from './components/views.js'; import type { ConditionStateManagerGetEvent } from './condition-trigger/conditions/state-manager-via-event.js'; import type { StatusBarItem } from './config/schema/actions/types.js'; import type { MenuItem } from './config/schema/elements/custom/menu/types.js'; import type { AdvancedCameraCardConfig } from './config/schema/types.js'; import type { PartialAdvancedCameraCardConfig, RawAdvancedCameraCardConfig, } from './config/types.js'; import { REPO_URL } from './const.js'; import { registerCustomIconset } from './ha/custom-icons.js'; import type { HomeAssistant, LovelaceCardEditor } from './ha/types.js'; import { localize } from './localize/localize.js'; import cardStyle from './scss/card.scss'; import type { MediaLoadedInfoEventDetail } from './types.js'; import { hasAction } from './utils/action.js'; import { getReleaseVersion } from './utils/diagnostics'; // *************************************************************************** // General Card-Wide Notes // *************************************************************************** /** Media callbacks: * * Media elements (e.g.