{"version":3,"file":"flowbite-angular-button-group.mjs","sources":["../../../../libs/flowbite-angular/button-group/src/button-group/theme.ts","../../../../libs/flowbite-angular/button-group/src/config/button-group-config.ts","../../../../libs/flowbite-angular/button-group/src/button-group/button-group-state.ts","../../../../libs/flowbite-angular/button-group/src/button-group/button-group.directive.ts","../../../../libs/flowbite-angular/button-group/src/index.ts","../../../../libs/flowbite-angular/button-group/src/flowbite-angular-button-group.ts"],"sourcesContent":["import { createTheme } from 'flowbite-angular';\r\n\r\nexport interface FlowbiteButtonGroupTheme {\r\n  host: FlowbiteButtonGroupHostTheme;\r\n}\r\n\r\nexport interface FlowbiteButtonGroupHostTheme {\r\n  base: string;\r\n  transition: string;\r\n}\r\n\r\nexport const flowbiteButtonGroupTheme: FlowbiteButtonGroupTheme = createTheme({\r\n  host: {\r\n    base: 'flex flex-row rounded-lg shadow-xs *:rounded-none *:first:rounded-l-lg *:last:rounded-r-lg',\r\n    transition: '',\r\n  },\r\n});\r\n","import { flowbiteButtonGroupTheme, type FlowbiteButtonGroupTheme } from '../button-group/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 FlowbiteButtonGroupConfig {\r\n  /**\r\n   * The default theme of button-group\r\n   */\r\n  baseTheme: FlowbiteButtonGroupTheme;\r\n\r\n  /**\r\n   * The custom theme of button-group\r\n   */\r\n  customTheme: DeepPartial<FlowbiteButtonGroupTheme>;\r\n}\r\n\r\nexport const defaultFlowbiteButtonGroupConfig: FlowbiteButtonGroupConfig = {\r\n  baseTheme: flowbiteButtonGroupTheme,\r\n  customTheme: {},\r\n};\r\n\r\nexport const FlowbiteButtonGroupConfigToken = new InjectionToken<FlowbiteButtonGroupConfig>(\r\n  'FlowbiteButtonGroupConfigToken'\r\n);\r\n\r\n/**\r\n * Provide the default ButtonGroup configuration\r\n * @param config The ButtonGroup configuration\r\n * @returns The provider\r\n */\r\nexport const provideFlowbiteButtonGroupConfig = (\r\n  config: Partial<FlowbiteButtonGroupConfig>\r\n): Provider[] => [\r\n  {\r\n    provide: FlowbiteButtonGroupConfigToken,\r\n    useValue: { ...defaultFlowbiteButtonGroupConfig, ...config },\r\n  },\r\n];\r\n\r\n/**\r\n * Inject the ButtonGroup configuration\r\n * @see {@link defaultFlowbiteButtonGroupConfig}\r\n * @returns The configuration\r\n */\r\nexport const injectFlowbiteButtonGroupConfig = (): FlowbiteButtonGroupConfig =>\r\n  inject(FlowbiteButtonGroupConfigToken, { optional: true }) ?? defaultFlowbiteButtonGroupConfig;\r\n","import type { ButtonGroup } from './button-group.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 FlowbiteButtonGroupStateToken = createStateToken<ButtonGroup>('Flowbite ButtonGroup');\r\nexport const provideFlowbiteButtonGroupState = createStateProvider(FlowbiteButtonGroupStateToken);\r\nexport const injectFlowbiteButtonGroupState = createStateInjector(FlowbiteButtonGroupStateToken);\r\nexport const flowbiteButtonGroupState = createState(FlowbiteButtonGroupStateToken);\r\n","import { injectFlowbiteButtonGroupConfig } from '../config/button-group-config';\r\nimport { flowbiteButtonGroupState, provideFlowbiteButtonGroupState } from './button-group-state';\r\n\r\nimport { mergeDeep } from 'flowbite-angular';\r\n\r\nimport { computed, Directive, input } from '@angular/core';\r\nimport { twMerge } from 'tailwind-merge';\r\n\r\n@Directive({\r\n  standalone: true,\r\n  selector: `\r\n    div[flowbiteButtonGroup]\r\n  `,\r\n  exportAs: 'flowbiteButtonGroup',\r\n  hostDirectives: [],\r\n  providers: [provideFlowbiteButtonGroupState()],\r\n  host: { '[class]': `theme().host.root` },\r\n})\r\nexport class ButtonGroup {\r\n  readonly config = injectFlowbiteButtonGroupConfig();\r\n\r\n  /**\r\n   * @see {@link injectFlowbiteButtonGroupConfig}\r\n   */\r\n  readonly customTheme = input(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(mergedTheme.host.base, mergedTheme.host.transition),\r\n      },\r\n    };\r\n  });\r\n\r\n  /**\r\n   * @internal\r\n   */\r\n  readonly state = flowbiteButtonGroupState<ButtonGroup>(this);\r\n}\r\n","/* ButtonGroup */\r\nexport * from './button-group/button-group.directive';\r\nexport * from './button-group/button-group-state';\r\nexport * from './button-group/theme';\r\n/* Config */\r\nexport * from './config/button-group-config';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}