{"version":3,"file":"flowbite-angular-theme-toggle.mjs","sources":["../../../../libs/flowbite-angular/theme-toggle/src/theme-toggle/theme.ts","../../../../libs/flowbite-angular/theme-toggle/src/config/theme-toggle-config.ts","../../../../libs/flowbite-angular/theme-toggle/src/config/theme-config.ts","../../../../libs/flowbite-angular/theme-toggle/src/theme/theme-state.ts","../../../../libs/flowbite-angular/theme-toggle/src/theme/theme.directive.ts","../../../../libs/flowbite-angular/theme-toggle/src/theme-toggle/theme-toggle-state.ts","../../../../libs/flowbite-angular/theme-toggle/src/theme-toggle/theme-toggle.component.ts","../../../../libs/flowbite-angular/theme-toggle/src/index.ts","../../../../libs/flowbite-angular/theme-toggle/src/flowbite-angular-theme-toggle.ts"],"sourcesContent":["import type { FlowbiteBoolean } from 'flowbite-angular';\r\nimport { createTheme } from 'flowbite-angular';\r\nimport type { FlowbiteBaseButtonColors, FlowbiteBaseButtonSizes } from 'flowbite-angular/button';\r\n\r\nexport interface FlowbiteThemeToggleTheme {\r\n  host: FlowbiteThemeToggleHostTheme;\r\n}\r\n\r\nexport interface FlowbiteThemeToggleHostTheme {\r\n  base: string;\r\n  transition: string;\r\n  focus: string;\r\n  disabled: string;\r\n  size: FlowbiteBaseButtonSizes;\r\n  pill: FlowbiteBoolean;\r\n  color: FlowbiteBaseButtonColors;\r\n  colorOutline: FlowbiteBaseButtonColors;\r\n}\r\n\r\nexport const flowbiteThemeToggleTheme: FlowbiteThemeToggleTheme = createTheme({\r\n  host: {\r\n    base: 'inline-flex cursor-pointer items-center justify-center rounded-lg p-2 text-sm',\r\n    transition: '',\r\n    focus:\r\n      'data-focus:ring-0 data-focus:outline-none data-focus-visible:ring-2 data-focus-visible:outline-none',\r\n    disabled: 'data-disabled:cursor-not-allowed data-disabled:opacity-50',\r\n    size: {} as FlowbiteBaseButtonSizes,\r\n    pill: {} as FlowbiteBoolean,\r\n    color: {\r\n      default: {\r\n        light: 'text-gray-800 data-hover:text-gray-900',\r\n        dark: 'dark:text-white dark:data-hover:text-gray-100',\r\n      },\r\n      info: {\r\n        light: 'text-gray-800 data-hover:text-blue-900',\r\n        dark: 'dark:text-white dark:data-hover:text-blue-100',\r\n      },\r\n      failure: {\r\n        light: 'text-gray-800 data-hover:text-red-900',\r\n        dark: 'dark:text-white dark:data-hover:text-red-100',\r\n      },\r\n      success: {\r\n        light: 'text-gray-800 data-hover:text-green-900',\r\n        dark: 'dark:text-white dark:data-hover:text-green-100',\r\n      },\r\n      warning: {\r\n        light: 'text-gray-800 data-hover:text-yellow-900',\r\n        dark: 'dark:text-white dark:data-hover:text-yellow-100',\r\n      },\r\n      primary: {\r\n        light: 'data-hover:text-primary-900 text-gray-800',\r\n        dark: 'dark:data-hover:text-primary-100 dark:text-white',\r\n      },\r\n    },\r\n    colorOutline: {} as FlowbiteBaseButtonColors,\r\n  },\r\n});\r\n","import { flowbiteThemeToggleTheme, type FlowbiteThemeToggleTheme } from '../theme-toggle/theme';\r\n\r\nimport type { DeepPartial } from 'flowbite-angular';\r\n\r\nimport type { Provider } from '@angular/core';\r\nimport { inject, InjectionToken } from '@angular/core';\r\n\r\nexport interface FlowbiteThemeToggleConfig {\r\n  /**\r\n   * The default theme of ThemeToggle\r\n   */\r\n  baseTheme: FlowbiteThemeToggleTheme;\r\n\r\n  /**\r\n   * The custom theme of ThemeToggle\r\n   */\r\n  customTheme: DeepPartial<FlowbiteThemeToggleTheme>;\r\n}\r\n\r\nexport const defaultFlowbiteThemeToggleConfig: FlowbiteThemeToggleConfig = {\r\n  baseTheme: flowbiteThemeToggleTheme,\r\n  customTheme: {},\r\n};\r\n\r\nexport const FlowbiteThemeToggleConfigToken = new InjectionToken<FlowbiteThemeToggleConfig>(\r\n  'FlowbiteThemeToggleConfigToken'\r\n);\r\n\r\n/**\r\n * Provide the default ThemeToggle configuration\r\n * @param config The ThemeToggle configuration\r\n * @returns The provider\r\n */\r\nexport const provideFlowbiteThemeToggleConfig = (\r\n  config: Partial<FlowbiteThemeToggleConfig>\r\n): Provider[] => [\r\n  {\r\n    provide: FlowbiteThemeToggleConfigToken,\r\n    useValue: { ...defaultFlowbiteThemeToggleConfig, ...config },\r\n  },\r\n];\r\n\r\n/**\r\n * Inject the ThemeToggle configuration\r\n * @see {@link defaultFlowbiteThemeToggleConfig}\r\n * @returns The configuration\r\n */\r\nexport const injectFlowbiteThemeToggleConfig = (): FlowbiteThemeToggleConfig =>\r\n  inject(FlowbiteThemeToggleConfigToken, { optional: true }) ?? defaultFlowbiteThemeToggleConfig;\r\n","import type { FlowbiteThemes } from 'flowbite-angular';\r\n\r\nimport type { Provider } from '@angular/core';\r\nimport { inject, InjectionToken } from '@angular/core';\r\n\r\nexport interface FlowbiteThemeConfig {\r\n  /**\r\n   * The default theme of ThemeDirective\r\n   */\r\n  theme: FlowbiteThemes;\r\n  /**\r\n   * The default local storage key of ThemeDirective\r\n   */\r\n  localStorageKey: string;\r\n  /**\r\n   * The default type of ThemeDirective\r\n   */\r\n  type: { type: 'class' } | { type: 'attr'; name: string };\r\n}\r\n\r\nexport const defaultFlowbiteThemeConfig: FlowbiteThemeConfig = {\r\n  theme: 'light',\r\n  localStorageKey: 'fba-color-theme',\r\n  type: { type: 'class' },\r\n};\r\n\r\nexport const FlowbiteThemeConfigToken = new InjectionToken<FlowbiteThemeConfig>(\r\n  'FlowbiteThemeConfigToken'\r\n);\r\n\r\n/**\r\n * Provide the default Theme configuration\r\n * @param config The Theme configuration\r\n * @returns The provider\r\n */\r\nexport const provideFlowbiteThemeConfig = (config: Partial<FlowbiteThemeConfig>): Provider[] => [\r\n  {\r\n    provide: FlowbiteThemeConfigToken,\r\n    useValue: { ...defaultFlowbiteThemeConfig, ...config },\r\n  },\r\n];\r\n\r\n/**\r\n * Inject the Theme configuration\r\n * @see {@link defaultFlowbiteThemeConfig}\r\n * @returns The configuration\r\n */\r\nexport const injectFlowbiteThemeConfig = (): FlowbiteThemeConfig =>\r\n  inject(FlowbiteThemeConfigToken, { optional: true }) ?? defaultFlowbiteThemeConfig;\r\n","import type { Theme } from './theme.directive';\r\n\r\nimport {\r\n  createState,\r\n  createStateInjector,\r\n  createStateProvider,\r\n  createStateToken,\r\n} from 'ng-primitives/state';\r\n\r\nexport const FlowbiteThemeStateToken = createStateToken<Theme>('Flowbite Theme');\r\nexport const provideFlowbiteThemeState = createStateProvider(FlowbiteThemeStateToken);\r\nexport const injectFlowbiteThemeState = createStateInjector(FlowbiteThemeStateToken);\r\nexport const flowbiteThemeState = createState(FlowbiteThemeStateToken);\r\n","import { injectFlowbiteThemeConfig } from '../config/theme-config';\r\nimport { flowbiteThemeState, provideFlowbiteThemeState } from './theme-state';\r\n\r\nimport type { FlowbiteThemes } from 'flowbite-angular';\r\n\r\nimport { afterNextRender, Directive, input, untracked } from '@angular/core';\r\n\r\n@Directive({\r\n  standalone: true,\r\n  selector: `\r\n    [flowbiteTheme]\r\n  `,\r\n  exportAs: 'flowbiteTheme',\r\n  hostDirectives: [],\r\n  providers: [provideFlowbiteThemeState()],\r\n  host: {},\r\n})\r\nexport class Theme {\r\n  protected readonly config = injectFlowbiteThemeConfig();\r\n\r\n  readonly localStorageKey = input<string>(this.config.localStorageKey);\r\n  readonly currentTheme = input<FlowbiteThemes>(this.config.theme);\r\n  readonly type = input<{ type: 'class' } | { type: 'attr'; name: string }>(this.config.type);\r\n\r\n  constructor() {\r\n    afterNextRender(() => {\r\n      this.toggleTheme(this.getLocalStorageTheme());\r\n    });\r\n  }\r\n\r\n  getLocalStorageTheme(): FlowbiteThemes | undefined {\r\n    const localStorageValue = localStorage.getItem(this.state.localStorageKey());\r\n\r\n    if (\r\n      localStorageValue === undefined ||\r\n      (localStorageValue !== 'light' && localStorageValue !== 'dark')\r\n    ) {\r\n      return undefined;\r\n    }\r\n\r\n    return localStorageValue;\r\n  }\r\n\r\n  toggleTheme(theme?: FlowbiteThemes): void {\r\n    if (!theme) {\r\n      theme = untracked(() => (this.state.currentTheme() === 'light' ? 'dark' : 'light'));\r\n    }\r\n\r\n    this.setTheme(theme);\r\n  }\r\n\r\n  setTheme(theme: FlowbiteThemes): void {\r\n    try {\r\n      localStorage.setItem(this.state.localStorageKey(), theme);\r\n    } catch (error) {\r\n      console.warn('Failed to save theme to localStorage:', error);\r\n    }\r\n\r\n    this.state.currentTheme.set(theme);\r\n\r\n    const type = untracked(() => this.state.type());\r\n\r\n    if (type.type === 'class') {\r\n      theme === 'light'\r\n        ? document.documentElement.classList.remove('dark')\r\n        : document.documentElement.classList.add('dark');\r\n    } else if (type.type === 'attr') {\r\n      document.documentElement.setAttribute(type.name, theme);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * @internal\r\n   */\r\n  readonly state = flowbiteThemeState<Theme>(this);\r\n}\r\n","import type { ThemeToggle } from './theme-toggle.component';\r\n\r\nimport {\r\n  createState,\r\n  createStateInjector,\r\n  createStateProvider,\r\n  createStateToken,\r\n} from 'ng-primitives/state';\r\n\r\nexport const FlowbiteThemeToggleStateToken = createStateToken<ThemeToggle>('Flowbite ThemeToggle');\r\nexport const provideFlowbiteThemeToggleState = createStateProvider(FlowbiteThemeToggleStateToken);\r\nexport const injectFlowbiteThemeToggleState = createStateInjector(FlowbiteThemeToggleStateToken);\r\nexport const flowbiteThemeToggleState = createState(FlowbiteThemeToggleStateToken);\r\n","import { injectFlowbiteThemeToggleConfig } from '../config/theme-toggle-config';\r\nimport { Theme } from '../theme/theme.directive';\r\nimport type { FlowbiteThemeToggleTheme } from './theme';\r\nimport { flowbiteThemeToggleState, provideFlowbiteThemeToggleState } from './theme-toggle-state';\r\n\r\nimport { colorToTheme, mergeDeep, type DeepPartial } from 'flowbite-angular';\r\nimport { BaseButton, injectFlowbiteBaseButtonState } from 'flowbite-angular/button';\r\nimport { Icon } from 'flowbite-angular/icon';\r\nimport { moon, sun } from 'flowbite-angular/icon/outline/weather';\r\n\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  computed,\r\n  inject,\r\n  input,\r\n  ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { provideIcons } from '@ng-icons/core';\r\nimport { NgpButton } from 'ng-primitives/button';\r\nimport { NgpFocus } from 'ng-primitives/interactions';\r\nimport { twMerge } from 'tailwind-merge';\r\n\r\n@Component({\r\n  standalone: true,\r\n  selector: `\r\n    button[flowbiteThemeToggle]\r\n  `,\r\n  exportAs: 'flowbiteThemeToggle',\r\n  hostDirectives: [\r\n    {\r\n      directive: BaseButton,\r\n      inputs: ['color:color'],\r\n      outputs: [],\r\n    },\r\n    {\r\n      directive: NgpButton,\r\n      inputs: ['disabled:disabled'],\r\n      outputs: [],\r\n    },\r\n    {\r\n      directive: NgpFocus,\r\n      inputs: ['ngpFocusDisabled:focusDisabled'],\r\n      outputs: ['ngpFocus'],\r\n    },\r\n  ],\r\n  imports: [Icon],\r\n  providers: [provideFlowbiteThemeToggleState(), provideIcons({ sun, moon })],\r\n  host: {\r\n    '[class]': `theme().host.root`,\r\n    '(click)': 'onClick()',\r\n  },\r\n  template: `\r\n    <flowbite-icon\r\n      class=\"inline size-5 stroke-2 dark:hidden\"\r\n      name=\"sun\" />\r\n    <flowbite-icon\r\n      class=\"hidden size-5 stroke-2 dark:inline\"\r\n      name=\"moon\" />\r\n  `,\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ThemeToggle {\r\n  protected readonly baseButtonState = injectFlowbiteBaseButtonState();\r\n  protected readonly config = injectFlowbiteThemeToggleConfig();\r\n  protected readonly themeDirective = inject(Theme);\r\n\r\n  /**\r\n   * @see {@link injectFlowbiteThemeToggleConfig}\r\n   */\r\n  readonly customTheme = input<DeepPartial<FlowbiteThemeToggleTheme>>(this.config.customTheme);\r\n\r\n  readonly theme = computed(() => {\r\n    const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());\r\n\r\n    return {\r\n      host: {\r\n        root: twMerge(\r\n          mergedTheme.host.base,\r\n          mergedTheme.host.transition,\r\n          mergedTheme.host.focus,\r\n          mergedTheme.host.disabled,\r\n          colorToTheme(mergedTheme.host.color, this.baseButtonState().color())\r\n        ),\r\n      },\r\n    };\r\n  });\r\n\r\n  /**\r\n   * @internal\r\n   */\r\n  readonly state = flowbiteThemeToggleState<ThemeToggle>(this);\r\n\r\n  /**\r\n   * @internal\r\n   */\r\n  onClick(): void {\r\n    this.themeDirective.toggleTheme();\r\n  }\r\n}\r\n","/* ThemeToggle */\r\nexport * from './theme-toggle/theme-toggle.component';\r\nexport * from './theme-toggle/theme-toggle-state';\r\nexport * from './theme-toggle/theme';\r\n/* Config */\r\nexport * from './config/theme-toggle-config';\r\n\r\n/* Theme */\r\nexport * from './theme/theme.directive';\r\nexport * from './theme/theme-state';\r\n/* Config */\r\nexport * from './config/theme-config';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}