flowbite-angular 1.2.0 → 20.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. package/README.md +30 -39
  2. package/accordion/index.d.ts +569 -16
  3. package/alert/index.d.ts +602 -4
  4. package/badge/index.d.ts +636 -4
  5. package/breadcrumb/index.d.ts +452 -8
  6. package/button/index.d.ts +335 -4
  7. package/button-group/README.md +4 -0
  8. package/button-group/index.d.ts +85 -0
  9. package/{core → card}/README.md +2 -2
  10. package/card/index.d.ts +640 -0
  11. package/{accordion → clipboard}/README.md +2 -2
  12. package/clipboard/index.d.ts +103 -0
  13. package/dropdown/index.d.ts +536 -16
  14. package/fesm2022/flowbite-angular-accordion.mjs +340 -479
  15. package/fesm2022/flowbite-angular-accordion.mjs.map +1 -1
  16. package/fesm2022/flowbite-angular-alert.mjs +309 -240
  17. package/fesm2022/flowbite-angular-alert.mjs.map +1 -1
  18. package/fesm2022/flowbite-angular-badge.mjs +334 -136
  19. package/fesm2022/flowbite-angular-badge.mjs.map +1 -1
  20. package/fesm2022/flowbite-angular-breadcrumb.mjs +263 -191
  21. package/fesm2022/flowbite-angular-breadcrumb.mjs.map +1 -1
  22. package/fesm2022/flowbite-angular-button-group.mjs +86 -0
  23. package/fesm2022/flowbite-angular-button-group.mjs.map +1 -0
  24. package/fesm2022/flowbite-angular-button.mjs +190 -270
  25. package/fesm2022/flowbite-angular-button.mjs.map +1 -1
  26. package/fesm2022/flowbite-angular-card.mjs +344 -0
  27. package/fesm2022/flowbite-angular-card.mjs.map +1 -0
  28. package/fesm2022/flowbite-angular-clipboard.mjs +174 -0
  29. package/fesm2022/flowbite-angular-clipboard.mjs.map +1 -0
  30. package/fesm2022/flowbite-angular-dropdown.mjs +273 -459
  31. package/fesm2022/flowbite-angular-dropdown.mjs.map +1 -1
  32. package/fesm2022/flowbite-angular-form.mjs +444 -0
  33. package/fesm2022/flowbite-angular-form.mjs.map +1 -0
  34. package/fesm2022/flowbite-angular-icon-brand.mjs +71 -0
  35. package/fesm2022/flowbite-angular-icon-brand.mjs.map +1 -0
  36. package/fesm2022/flowbite-angular-icon-outline-arrows.mjs +51 -0
  37. package/fesm2022/flowbite-angular-icon-outline-arrows.mjs.map +1 -0
  38. package/fesm2022/flowbite-angular-icon-outline-e-commerce.mjs +23 -0
  39. package/fesm2022/flowbite-angular-icon-outline-e-commerce.mjs.map +1 -0
  40. package/fesm2022/flowbite-angular-icon-outline-emoji.mjs +13 -0
  41. package/fesm2022/flowbite-angular-icon-outline-emoji.mjs.map +1 -0
  42. package/fesm2022/flowbite-angular-icon-outline-files-folders.mjs +42 -0
  43. package/fesm2022/flowbite-angular-icon-outline-files-folders.mjs.map +1 -0
  44. package/fesm2022/flowbite-angular-icon-outline-general.mjs +145 -0
  45. package/fesm2022/flowbite-angular-icon-outline-general.mjs.map +1 -0
  46. package/fesm2022/flowbite-angular-icon-outline-media.mjs +25 -0
  47. package/fesm2022/flowbite-angular-icon-outline-media.mjs.map +1 -0
  48. package/fesm2022/flowbite-angular-icon-outline-text.mjs +20 -0
  49. package/fesm2022/flowbite-angular-icon-outline-text.mjs.map +1 -0
  50. package/fesm2022/flowbite-angular-icon-outline-user.mjs +17 -0
  51. package/fesm2022/flowbite-angular-icon-outline-user.mjs.map +1 -0
  52. package/fesm2022/flowbite-angular-icon-outline-weather.mjs +9 -0
  53. package/fesm2022/flowbite-angular-icon-outline-weather.mjs.map +1 -0
  54. package/fesm2022/flowbite-angular-icon-outline.mjs +6 -0
  55. package/fesm2022/flowbite-angular-icon-outline.mjs.map +1 -0
  56. package/fesm2022/flowbite-angular-icon-solid-arrows.mjs +17 -0
  57. package/fesm2022/flowbite-angular-icon-solid-arrows.mjs.map +1 -0
  58. package/fesm2022/flowbite-angular-icon-solid-brands.mjs +33 -0
  59. package/fesm2022/flowbite-angular-icon-solid-brands.mjs.map +1 -0
  60. package/fesm2022/flowbite-angular-icon-solid-e-commerce.mjs +21 -0
  61. package/fesm2022/flowbite-angular-icon-solid-e-commerce.mjs.map +1 -0
  62. package/fesm2022/flowbite-angular-icon-solid-emoji.mjs +13 -0
  63. package/fesm2022/flowbite-angular-icon-solid-emoji.mjs.map +1 -0
  64. package/fesm2022/flowbite-angular-icon-solid-files-folder.mjs +42 -0
  65. package/fesm2022/flowbite-angular-icon-solid-files-folder.mjs.map +1 -0
  66. package/fesm2022/flowbite-angular-icon-solid-general.mjs +123 -0
  67. package/fesm2022/flowbite-angular-icon-solid-general.mjs.map +1 -0
  68. package/fesm2022/flowbite-angular-icon-solid-media.mjs +24 -0
  69. package/fesm2022/flowbite-angular-icon-solid-media.mjs.map +1 -0
  70. package/fesm2022/flowbite-angular-icon-solid-text.mjs +11 -0
  71. package/fesm2022/flowbite-angular-icon-solid-text.mjs.map +1 -0
  72. package/fesm2022/flowbite-angular-icon-solid-user.mjs +17 -0
  73. package/fesm2022/flowbite-angular-icon-solid-user.mjs.map +1 -0
  74. package/fesm2022/flowbite-angular-icon-solid-weather.mjs +9 -0
  75. package/fesm2022/flowbite-angular-icon-solid-weather.mjs.map +1 -0
  76. package/fesm2022/flowbite-angular-icon-solid.mjs +6 -0
  77. package/fesm2022/flowbite-angular-icon-solid.mjs.map +1 -0
  78. package/fesm2022/flowbite-angular-icon.mjs +318 -219
  79. package/fesm2022/flowbite-angular-icon.mjs.map +1 -1
  80. package/fesm2022/flowbite-angular-indicator.mjs +119 -231
  81. package/fesm2022/flowbite-angular-indicator.mjs.map +1 -1
  82. package/fesm2022/flowbite-angular-modal.mjs +338 -486
  83. package/fesm2022/flowbite-angular-modal.mjs.map +1 -1
  84. package/fesm2022/flowbite-angular-navbar.mjs +601 -604
  85. package/fesm2022/flowbite-angular-navbar.mjs.map +1 -1
  86. package/fesm2022/flowbite-angular-pagination.mjs +994 -0
  87. package/fesm2022/flowbite-angular-pagination.mjs.map +1 -0
  88. package/fesm2022/flowbite-angular-sidebar.mjs +403 -776
  89. package/fesm2022/flowbite-angular-sidebar.mjs.map +1 -1
  90. package/fesm2022/flowbite-angular-tab.mjs +465 -0
  91. package/fesm2022/flowbite-angular-tab.mjs.map +1 -0
  92. package/fesm2022/flowbite-angular-theme-toggle.mjs +263 -0
  93. package/fesm2022/flowbite-angular-theme-toggle.mjs.map +1 -0
  94. package/fesm2022/flowbite-angular-tooltip.mjs +117 -0
  95. package/fesm2022/flowbite-angular-tooltip.mjs.map +1 -0
  96. package/fesm2022/flowbite-angular.mjs +53 -66
  97. package/fesm2022/flowbite-angular.mjs.map +1 -1
  98. package/{alert → form}/README.md +2 -2
  99. package/form/index.d.ts +684 -0
  100. package/{breadcrumb → icon/brand}/README.md +2 -2
  101. package/icon/brand/index.d.ts +66 -0
  102. package/icon/index.d.ts +322 -5
  103. package/icon/outline/README.md +4 -0
  104. package/icon/outline/arrows/index.d.ts +46 -0
  105. package/icon/outline/e-commerce/index.d.ts +18 -0
  106. package/icon/outline/emoji/index.d.ts +8 -0
  107. package/icon/outline/files-folders/index.d.ts +37 -0
  108. package/icon/outline/general/index.d.ts +140 -0
  109. package/icon/outline/index.d.ts +2 -0
  110. package/icon/outline/media/index.d.ts +20 -0
  111. package/icon/outline/text/index.d.ts +15 -0
  112. package/icon/outline/user/index.d.ts +12 -0
  113. package/icon/outline/weather/index.d.ts +4 -0
  114. package/icon/solid/README.md +4 -0
  115. package/icon/solid/arrows/index.d.ts +12 -0
  116. package/icon/solid/brands/index.d.ts +28 -0
  117. package/icon/solid/e-commerce/index.d.ts +16 -0
  118. package/icon/solid/emoji/index.d.ts +8 -0
  119. package/icon/solid/files-folder/index.d.ts +37 -0
  120. package/icon/solid/general/index.d.ts +118 -0
  121. package/icon/solid/index.d.ts +2 -0
  122. package/icon/solid/media/index.d.ts +19 -0
  123. package/icon/solid/text/index.d.ts +6 -0
  124. package/icon/solid/user/index.d.ts +12 -0
  125. package/icon/solid/weather/index.d.ts +4 -0
  126. package/index.d.ts +126 -3
  127. package/indicator/index.d.ts +242 -4
  128. package/modal/index.d.ts +458 -16
  129. package/navbar/index.d.ts +1467 -24
  130. package/package.json +137 -42
  131. package/pagination/README.md +4 -0
  132. package/pagination/index.d.ts +1135 -0
  133. package/sidebar/index.d.ts +880 -24
  134. package/styles/flowbite-angular.css +8 -0
  135. package/styles/part/animation.css +0 -0
  136. package/styles/part/color.css +125 -0
  137. package/styles/part/font-size.css +67 -0
  138. package/styles/part/rounded.css +11 -0
  139. package/styles/part/shadow.css +9 -0
  140. package/styles/part/spacing.css +38 -0
  141. package/{badge → tab}/README.md +2 -2
  142. package/tab/index.d.ts +791 -0
  143. package/theme-toggle/README.md +4 -0
  144. package/theme-toggle/index.d.ts +342 -0
  145. package/{button → tooltip}/README.md +2 -2
  146. package/tooltip/index.d.ts +158 -0
  147. package/accordion/accordion-content.component.d.ts +0 -69
  148. package/accordion/accordion-content.theme.d.ts +0 -28
  149. package/accordion/accordion-content.theme.service.d.ts +0 -19
  150. package/accordion/accordion-panel.component.d.ts +0 -67
  151. package/accordion/accordion-panel.theme.d.ts +0 -23
  152. package/accordion/accordion-panel.theme.service.d.ts +0 -20
  153. package/accordion/accordion-title.component.d.ts +0 -106
  154. package/accordion/accordion-title.theme.d.ts +0 -35
  155. package/accordion/accordion-title.theme.service.d.ts +0 -19
  156. package/accordion/accordion.component.d.ts +0 -61
  157. package/accordion/accordion.theme.d.ts +0 -29
  158. package/accordion/accordion.theme.service.d.ts +0 -19
  159. package/alert/alert.component.d.ts +0 -150
  160. package/alert/alert.theme.d.ts +0 -39
  161. package/alert/alert.theme.service.d.ts +0 -19
  162. package/badge/badge.component.d.ts +0 -122
  163. package/badge/badge.theme.d.ts +0 -45
  164. package/badge/badge.theme.service.d.ts +0 -19
  165. package/base-component.directive.d.ts +0 -51
  166. package/breadcrumb/breadcrumb-item.component.d.ts +0 -84
  167. package/breadcrumb/breadcrumb-item.theme.d.ts +0 -33
  168. package/breadcrumb/breadcrumb-item.theme.service.d.ts +0 -19
  169. package/breadcrumb/breadcrumb.component.d.ts +0 -43
  170. package/breadcrumb/breadcrumb.theme.d.ts +0 -29
  171. package/breadcrumb/breadcrumb.theme.service.d.ts +0 -19
  172. package/button/button.component.d.ts +0 -250
  173. package/button/button.theme.d.ts +0 -79
  174. package/button/button.theme.service.d.ts +0 -19
  175. package/core/flowbite.theme.init.d.ts +0 -9
  176. package/core/index.d.ts +0 -1
  177. package/dark-theme-toggle/README.md +0 -4
  178. package/dark-theme-toggle/dark-theme-toggle.component.d.ts +0 -51
  179. package/dark-theme-toggle/dark-theme-toggle.theme.d.ts +0 -23
  180. package/dark-theme-toggle/dark-theme-toggle.theme.service.d.ts +0 -19
  181. package/dark-theme-toggle/index.d.ts +0 -3
  182. package/dropdown/README.md +0 -4
  183. package/dropdown/dropdown-divider.component.d.ts +0 -36
  184. package/dropdown/dropdown-divider.theme.d.ts +0 -23
  185. package/dropdown/dropdown-divider.theme.service.d.ts +0 -19
  186. package/dropdown/dropdown-header.component.d.ts +0 -42
  187. package/dropdown/dropdown-header.theme.d.ts +0 -28
  188. package/dropdown/dropdown-header.theme.service.d.ts +0 -19
  189. package/dropdown/dropdown-item.component.d.ts +0 -36
  190. package/dropdown/dropdown-item.theme.d.ts +0 -23
  191. package/dropdown/dropdown-item.theme.service.d.ts +0 -19
  192. package/dropdown/dropdown.component.d.ts +0 -136
  193. package/dropdown/dropdown.theme.d.ts +0 -56
  194. package/dropdown/dropdown.theme.service.d.ts +0 -19
  195. package/fesm2022/flowbite-angular-core.mjs +0 -322
  196. package/fesm2022/flowbite-angular-core.mjs.map +0 -1
  197. package/fesm2022/flowbite-angular-dark-theme-toggle.mjs +0 -138
  198. package/fesm2022/flowbite-angular-dark-theme-toggle.mjs.map +0 -1
  199. package/fesm2022/flowbite-angular-router-link-active.mjs +0 -68
  200. package/fesm2022/flowbite-angular-router-link-active.mjs.map +0 -1
  201. package/fesm2022/flowbite-angular-router-link.mjs +0 -73
  202. package/fesm2022/flowbite-angular-router-link.mjs.map +0 -1
  203. package/fesm2022/flowbite-angular-sanitize-html.mjs +0 -39
  204. package/fesm2022/flowbite-angular-sanitize-html.mjs.map +0 -1
  205. package/fesm2022/flowbite-angular-scroll-top.mjs +0 -192
  206. package/fesm2022/flowbite-angular-scroll-top.mjs.map +0 -1
  207. package/fesm2022/flowbite-angular-theme.mjs +0 -78
  208. package/fesm2022/flowbite-angular-theme.mjs.map +0 -1
  209. package/fesm2022/flowbite-angular-utils.mjs +0 -210
  210. package/fesm2022/flowbite-angular-utils.mjs.map +0 -1
  211. package/flowbite.theme.service.d.ts +0 -12
  212. package/icon/icon-registry.d.ts +0 -45
  213. package/icon/icon.component.d.ts +0 -22
  214. package/icon/trusted-types.d.ts +0 -15
  215. package/indicator/indicators.component.d.ts +0 -224
  216. package/indicator/indicators.theme.d.ts +0 -59
  217. package/indicator/indicators.theme.service.d.ts +0 -19
  218. package/modal/modal-body.component.d.ts +0 -36
  219. package/modal/modal-body.theme.d.ts +0 -23
  220. package/modal/modal-body.theme.service.d.ts +0 -19
  221. package/modal/modal-footer.component.d.ts +0 -36
  222. package/modal/modal-footer.theme.d.ts +0 -23
  223. package/modal/modal-footer.theme.service.d.ts +0 -19
  224. package/modal/modal-header.component.d.ts +0 -60
  225. package/modal/modal-header.theme.d.ts +0 -32
  226. package/modal/modal-header.theme.service.d.ts +0 -19
  227. package/modal/modal.component.d.ts +0 -146
  228. package/modal/modal.theme.d.ts +0 -35
  229. package/modal/modal.theme.service.d.ts +0 -19
  230. package/navbar/navbar-brand.component.d.ts +0 -36
  231. package/navbar/navbar-brand.theme.d.ts +0 -23
  232. package/navbar/navbar-brand.theme.service.d.ts +0 -19
  233. package/navbar/navbar-content.component.d.ts +0 -50
  234. package/navbar/navbar-content.theme.d.ts +0 -28
  235. package/navbar/navbar-content.theme.service.d.ts +0 -19
  236. package/navbar/navbar-icon-button.component.d.ts +0 -59
  237. package/navbar/navbar-icon-button.theme.d.ts +0 -26
  238. package/navbar/navbar-icon-button.theme.service.d.ts +0 -19
  239. package/navbar/navbar-item.component.d.ts +0 -67
  240. package/navbar/navbar-item.theme.d.ts +0 -26
  241. package/navbar/navbar-item.theme.service.d.ts +0 -19
  242. package/navbar/navbar-toggle.component.d.ts +0 -51
  243. package/navbar/navbar-toggle.theme.d.ts +0 -23
  244. package/navbar/navbar-toggle.theme.service.d.ts +0 -19
  245. package/navbar/navbar.component.d.ts +0 -121
  246. package/navbar/navbar.theme.d.ts +0 -21
  247. package/navbar/navbar.theme.service.d.ts +0 -19
  248. package/router-link/README.md +0 -4
  249. package/router-link/flowbite-router-link.directive.d.ts +0 -28
  250. package/router-link/index.d.ts +0 -1
  251. package/router-link-active/README.md +0 -4
  252. package/router-link-active/flowbite-router-link-active.directive.d.ts +0 -37
  253. package/router-link-active/index.d.ts +0 -1
  254. package/sanitize-html/README.md +0 -4
  255. package/sanitize-html/index.d.ts +0 -1
  256. package/sanitize-html/sanitize-html.pipe.d.ts +0 -20
  257. package/scroll-top/README.md +0 -4
  258. package/scroll-top/index.d.ts +0 -4
  259. package/scroll-top/scroll-top.component.d.ts +0 -114
  260. package/scroll-top/scroll-top.theme.d.ts +0 -39
  261. package/scroll-top/scroll-top.theme.service.d.ts +0 -19
  262. package/sidebar/sidebar-item-group.component.d.ts +0 -100
  263. package/sidebar/sidebar-item-group.theme.d.ts +0 -31
  264. package/sidebar/sidebar-item-group.theme.service.d.ts +0 -19
  265. package/sidebar/sidebar-item.component.d.ts +0 -101
  266. package/sidebar/sidebar-item.theme.d.ts +0 -33
  267. package/sidebar/sidebar-item.theme.service.d.ts +0 -19
  268. package/sidebar/sidebar-menu.component.d.ts +0 -93
  269. package/sidebar/sidebar-menu.theme.d.ts +0 -30
  270. package/sidebar/sidebar-menu.theme.service.d.ts +0 -19
  271. package/sidebar/sidebar-page-content.component.d.ts +0 -46
  272. package/sidebar/sidebar-page-content.theme.d.ts +0 -27
  273. package/sidebar/sidebar-page-content.theme.service.d.ts +0 -19
  274. package/sidebar/sidebar-toggle.component.d.ts +0 -95
  275. package/sidebar/sidebar-toggle.theme.d.ts +0 -34
  276. package/sidebar/sidebar-toggle.theme.service.d.ts +0 -19
  277. package/sidebar/sidebar.component.d.ts +0 -84
  278. package/sidebar/sidebar.theme.d.ts +0 -22
  279. package/sidebar/sidebar.theme.service.d.ts +0 -19
  280. package/tailwind.config.js +0 -303
  281. package/theme/README.md +0 -4
  282. package/theme/flowbite-theme.directive.d.ts +0 -36
  283. package/theme/index.d.ts +0 -1
  284. package/type-definitions/colors/flowbite.colors.d.ts +0 -19
  285. package/type-definitions/colors/flowbite.gradient-colors.d.ts +0 -11
  286. package/type-definitions/colors/flowbite.gradient-duo-tone-colors.d.ts +0 -12
  287. package/type-definitions/colors/index.d.ts +0 -3
  288. package/type-definitions/flowbite.boolean.d.ts +0 -14
  289. package/type-definitions/flowbite.class.d.ts +0 -6
  290. package/type-definitions/flowbite.combination.d.ts +0 -8
  291. package/type-definitions/flowbite.content-positions.d.ts +0 -6
  292. package/type-definitions/flowbite.deep-partial.d.ts +0 -6
  293. package/type-definitions/flowbite.heading-levels.d.ts +0 -4
  294. package/type-definitions/flowbite.positions.d.ts +0 -14
  295. package/type-definitions/flowbite.router-link-parameter.d.ts +0 -5
  296. package/type-definitions/flowbite.sizes.d.ts +0 -10
  297. package/type-definitions/flowbite.themes.d.ts +0 -4
  298. package/type-definitions/index.d.ts +0 -12
  299. package/utils/README.md +0 -4
  300. package/utils/icon.list.d.ts +0 -7
  301. package/utils/id.generator.d.ts +0 -59
  302. package/utils/index.d.ts +0 -8
  303. package/utils/theme/clone-deep.d.ts +0 -7
  304. package/utils/theme/create-class.d.ts +0 -7
  305. package/utils/theme/create-theme.d.ts +0 -7
  306. package/utils/theme/is-object.d.ts +0 -7
  307. package/utils/theme/merge-theme.d.ts +0 -8
  308. package/utils/theme/to-string.d.ts +0 -7
@@ -1,565 +1,426 @@
1
- import { mergeTheme, CHEVRON_DOWN_SVG_ICON, createTheme } from 'flowbite-angular/utils';
1
+ import { createTheme, mergeDeep, colorToTheme } from 'flowbite-angular';
2
2
  import * as i0 from '@angular/core';
3
- import { InjectionToken, inject, Injectable, makeEnvironmentProviders, model, Component, ViewEncapsulation, ChangeDetectionStrategy, contentChild, untracked, contentChildren } from '@angular/core';
3
+ import { InjectionToken, inject, input, booleanAttribute, computed, Directive } from '@angular/core';
4
+ import { createStateToken, createStateProvider, createStateInjector, createState } from 'ng-primitives/state';
5
+ import * as i1 from 'ng-primitives/accordion';
6
+ import { provideAccordionState, NgpAccordion, injectAccordionItemState, provideAccordionItemState, NgpAccordionItem, NgpAccordionTrigger, NgpAccordionContent } from 'ng-primitives/accordion';
4
7
  import { twMerge } from 'tailwind-merge';
5
- import { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';
6
- import { trigger, state, style, transition, animate } from '@angular/animations';
7
- import { IconRegistry, IconComponent } from 'flowbite-angular/icon';
8
- import { NgTemplateOutlet } from '@angular/common';
9
- import { DomSanitizer } from '@angular/platform-browser';
8
+ import * as i1$1 from 'ng-primitives/button';
9
+ import { NgpButton } from 'ng-primitives/button';
10
+ import * as i2 from 'ng-primitives/interactions';
11
+ import { NgpFocus } from 'ng-primitives/interactions';
10
12
 
13
+ const flowbiteAccordionTheme = createTheme({
14
+ host: {
15
+ base: 'shadow-sm',
16
+ transition: '',
17
+ },
18
+ });
19
+
20
+ const defaultFlowbiteAccordionConfig = {
21
+ baseTheme: flowbiteAccordionTheme,
22
+ color: 'default',
23
+ flush: false,
24
+ customTheme: {},
25
+ };
26
+ const FlowbiteAccordionConfigToken = new InjectionToken('FlowbiteAccordionConfig');
11
27
  /**
12
- * `InjectionToken` used to import `AccordionContentTheme` value
13
- *
14
- * @example
15
- * ```
16
- * var theme = inject(FLOWBITE_ACCORDION_CONTENT_THEME_TOKEN)
17
- * ```
28
+ * Provide the default Accordion configuration
29
+ * @param config The Accordion configuration
30
+ * @returns The provider
18
31
  */
19
- const FLOWBITE_ACCORDION_CONTENT_THEME_TOKEN = new InjectionToken('FLOWBITE_ACCORDION_CONTENT_THEME_TOKEN');
20
- class AccordionContentThemeService {
21
- constructor() {
22
- this.baseTheme = inject(FLOWBITE_ACCORDION_CONTENT_THEME_TOKEN);
23
- }
24
- getClasses(properties) {
25
- const theme = mergeTheme(this.baseTheme, properties.customStyle);
26
- const output = {
27
- rootClass: twMerge(theme.root.base, theme.root.color[properties.color], theme.root.isFlush[properties.isFlush]),
28
- };
29
- return output;
30
- }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionContentThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionContentThemeService, providedIn: 'root' }); }
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionContentThemeService, decorators: [{
35
- type: Injectable,
36
- args: [{
37
- providedIn: 'root',
38
- }]
39
- }] });
40
-
41
- const FLOWBITE_ACCORDION_CONTENT_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken('FLOWBITE_ACCORDION_CONTENT_CUSTOM_STYLE_DEFAULT_VALUE');
42
- const accordionContentDefaultValueProvider = makeEnvironmentProviders([
32
+ const provideFlowbiteAccordionConfig = (config) => [
43
33
  {
44
- provide: FLOWBITE_ACCORDION_CONTENT_CUSTOM_STYLE_DEFAULT_VALUE,
45
- useValue: {},
34
+ provide: FlowbiteAccordionConfigToken,
35
+ useValue: { ...defaultFlowbiteAccordionConfig, ...config },
46
36
  },
47
- ]);
37
+ ];
48
38
  /**
49
- * @see https://flowbite.com/docs/components/accordion/
39
+ * Inject the Accordion configuration
40
+ * @see {@link defaultFlowbiteAccordionConfig}
41
+ * @returns The configuration
50
42
  */
51
- class AccordionContentComponent extends BaseComponent {
43
+ const injectFlowbiteAccordionConfig = () => inject(FlowbiteAccordionConfigToken, { optional: true }) ?? defaultFlowbiteAccordionConfig;
44
+
45
+ const FlowbiteAccordionStateToken = createStateToken('Flowbite Accordion');
46
+ const provideFlowbiteAccordionState = createStateProvider(FlowbiteAccordionStateToken);
47
+ const injectFlowbiteAccordionState = createStateInjector(FlowbiteAccordionStateToken);
48
+ const flowbiteAccordionState = createState(FlowbiteAccordionStateToken);
49
+
50
+ class Accordion {
52
51
  constructor() {
53
- super(...arguments);
52
+ this.config = injectFlowbiteAccordionConfig();
54
53
  /**
55
- * Service injected used to generate class
54
+ * @see {@link injectFlowbiteAccordionConfig}
56
55
  */
57
- this.themeService = inject(AccordionContentThemeService);
56
+ this.color = input(this.config.color);
58
57
  /**
59
- * The parent `AccordionPanelComponent`
58
+ * @see {@link injectFlowbiteAccordionConfig}
60
59
  */
61
- this.accordionPanelComponent = inject(AccordionPanelComponent);
62
- //#region properties
60
+ this.flush = input(this.config.flush, { transform: booleanAttribute });
63
61
  /**
64
- * Set the accordion content color
65
- *
66
- @default `AccordionPanelComponent`'s color
62
+ * @see {@link injectFlowbiteAccordionConfig}
67
63
  */
68
- this.color = model(this.accordionPanelComponent.color());
64
+ this.customTheme = input(this.config.customTheme);
65
+ this.theme = computed(() => {
66
+ const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
67
+ return {
68
+ host: {
69
+ root: twMerge(mergedTheme.host.base, mergedTheme.host.transition),
70
+ },
71
+ };
72
+ });
69
73
  /**
70
- * Set the custom style for this accordion content
74
+ * @internal
71
75
  */
72
- this.customStyle = model(inject(FLOWBITE_ACCORDION_CONTENT_CUSTOM_STYLE_DEFAULT_VALUE));
76
+ this.state = flowbiteAccordionState(this);
73
77
  }
74
- //#endregion
75
- //#region BaseComponent implementation
76
- fetchClass() {
77
- return this.themeService.getClasses({
78
- color: this.accordionPanelComponent.accordionComponent.color(),
79
- isFlush: booleanToFlowbiteBoolean(this.accordionPanelComponent.accordionComponent.isFlush()),
80
- customStyle: this.customStyle(),
81
- });
82
- }
83
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionContentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
84
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.4", type: AccordionContentComponent, isStandalone: true, selector: "flowbite-accordion-content", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, customStyle: { classPropertyName: "customStyle", publicName: "customStyle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { color: "colorChange", customStyle: "customStyleChange" }, host: { properties: { "@isOpenAnimation": "accordionPanelComponent.isOpen()" } }, usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true, animations: [
85
- trigger('isOpenAnimation', [
86
- state('true', style({ height: '*' })),
87
- state('false', style({ height: '0px' })),
88
- transition('true <=> false', animate('300ms')),
89
- ]),
90
- ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
78
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: Accordion, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
79
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: Accordion, isStandalone: true, selector: "\n div[flowbiteAccordion]\n ", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, flush: { classPropertyName: "flush", publicName: "flush", isSignal: true, isRequired: false, transformFunction: null }, customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root" } }, providers: [provideFlowbiteAccordionState(), provideAccordionState()], exportAs: ["flowbiteAccordion"], hostDirectives: [{ directive: i1.NgpAccordion, inputs: ["ngpAccordionType", "type", "ngpAccordionDisabled", "disabled", "ngpAccordionCollapsible", "collapsible"] }], ngImport: i0 }); }
91
80
  }
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionContentComponent, decorators: [{
93
- type: Component,
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: Accordion, decorators: [{
82
+ type: Directive,
94
83
  args: [{
95
84
  standalone: true,
96
- selector: 'flowbite-accordion-content',
97
- template: `<ng-content />`,
98
- host: {
99
- '[@isOpenAnimation]': 'accordionPanelComponent.isOpen()',
100
- },
101
- animations: [
102
- trigger('isOpenAnimation', [
103
- state('true', style({ height: '*' })),
104
- state('false', style({ height: '0px' })),
105
- transition('true <=> false', animate('300ms')),
106
- ]),
85
+ selector: `
86
+ div[flowbiteAccordion]
87
+ `,
88
+ exportAs: 'flowbiteAccordion',
89
+ hostDirectives: [
90
+ {
91
+ directive: NgpAccordion,
92
+ inputs: [
93
+ 'ngpAccordionType:type',
94
+ 'ngpAccordionDisabled:disabled',
95
+ 'ngpAccordionCollapsible:collapsible',
96
+ ],
97
+ },
107
98
  ],
108
- encapsulation: ViewEncapsulation.None,
109
- changeDetection: ChangeDetectionStrategy.OnPush,
99
+ providers: [provideFlowbiteAccordionState(), provideAccordionState()],
100
+ host: { '[class]': `theme().host.root` },
110
101
  }]
111
102
  }] });
112
103
 
113
- /**
114
- * `InjectionToken` used to import `AccordionPanelTheme` value
115
- *
116
- * @example
117
- * ```
118
- * var theme = inject(FLOWBITE_ACCORDION_PANEL_THEME_TOKEN)
119
- * ```
120
- */
121
- const FLOWBITE_ACCORDION_PANEL_THEME_TOKEN = new InjectionToken('FLOWBITE_ACCORDION_PANEL_THEME_TOKEN');
122
- class AccordionPanelThemeService {
123
- constructor() {
124
- this.baseTheme = inject(FLOWBITE_ACCORDION_PANEL_THEME_TOKEN);
125
- }
126
- getClasses(properties) {
127
- const theme = mergeTheme(this.baseTheme, properties.customStyle);
128
- const output = {
129
- rootClass: twMerge(theme.root.base),
130
- };
131
- return output;
132
- }
133
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionPanelThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
134
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionPanelThemeService, providedIn: 'root' }); }
135
- }
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionPanelThemeService, decorators: [{
137
- type: Injectable,
138
- args: [{
139
- providedIn: 'root',
140
- }]
141
- }] });
104
+ const flowbiteAccordionItemTheme = createTheme({
105
+ host: {
106
+ base: 'group/item',
107
+ transition: '',
108
+ },
109
+ });
142
110
 
111
+ const defaultFlowbiteAccordionItemConfig = {
112
+ baseTheme: flowbiteAccordionItemTheme,
113
+ customTheme: {},
114
+ };
115
+ const FlowbiteAccordionItemConfigToken = new InjectionToken('FlowbiteAccordionItemConfig');
143
116
  /**
144
- * `InjectionToken` used to import `AccordionTitleTheme` value
145
- *
146
- * @example
147
- * ```
148
- * var theme = inject(FLOWBITE_ACCORDION_TITLE_THEME_TOKEN)
149
- * ```
117
+ * Provide the default Accordion Item configuration
118
+ * @param config The Accordion Item configuration
119
+ * @returns The provider
150
120
  */
151
- const FLOWBITE_ACCORDION_TITLE_THEME_TOKEN = new InjectionToken('FLOWBITE_ACCORDION_TITLE_THEME_TOKEN');
152
- class AccordionTitleThemeService {
153
- constructor() {
154
- this.baseTheme = inject(FLOWBITE_ACCORDION_TITLE_THEME_TOKEN);
155
- }
156
- getClasses(properties) {
157
- const theme = mergeTheme(this.baseTheme, properties.customStyle);
158
- const output = {
159
- rootClass: twMerge(theme.root.base, theme.root.color[properties.color], theme.root.isFlush[properties.isFlush], theme.root.isOpen[properties.isOpen]),
160
- textClass: twMerge(theme.text.base),
161
- };
162
- return output;
163
- }
164
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionTitleThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
165
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionTitleThemeService, providedIn: 'root' }); }
166
- }
167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionTitleThemeService, decorators: [{
168
- type: Injectable,
169
- args: [{
170
- providedIn: 'root',
171
- }]
172
- }] });
173
-
174
- const FLOWBITE_ACCORDION_TITLE_ICON_DEFAULT_VALUE = new InjectionToken('FLOWBITE_ACCORDION_TITLE_ICON_DEFAULT_VALUE');
175
- const FLOWBITE_ACCORDION_TITLE_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken('FLOWBITE_ACCORDION_TITLE_CUSTOM_STYLE_DEFAULT_VALUE');
176
- const accordionTitleDefaultValueProvider = makeEnvironmentProviders([
177
- {
178
- provide: FLOWBITE_ACCORDION_TITLE_ICON_DEFAULT_VALUE,
179
- useValue: undefined,
180
- },
121
+ const provideFlowbiteAccordionItemConfig = (config) => [
181
122
  {
182
- provide: FLOWBITE_ACCORDION_TITLE_CUSTOM_STYLE_DEFAULT_VALUE,
183
- useValue: {},
123
+ provide: FlowbiteAccordionItemConfigToken,
124
+ useValue: { ...defaultFlowbiteAccordionItemConfig, ...config },
184
125
  },
185
- ]);
126
+ ];
186
127
  /**
187
- * @see https://flowbite.com/docs/components/accordion/
128
+ * Inject the Accordion Item configuration
129
+ * @see {@link defaultFlowbiteAccordionItemConfig}
130
+ * @returns The configuration
188
131
  */
189
- class AccordionTitleComponent extends BaseComponent {
132
+ const injectFlowbiteAccordionItemConfig = () => inject(FlowbiteAccordionItemConfigToken, { optional: true }) ??
133
+ defaultFlowbiteAccordionItemConfig;
134
+
135
+ const FlowbiteAccordionItemStateToken = createStateToken('Flowbite Accordion Item');
136
+ const provideFlowbiteAccordionItemState = createStateProvider(FlowbiteAccordionItemStateToken);
137
+ const injectFlowbiteAccordionItemState = createStateInjector(FlowbiteAccordionItemStateToken);
138
+ const flowbiteAccordionItemState = createState(FlowbiteAccordionItemStateToken);
139
+
140
+ class AccordionItem {
190
141
  constructor() {
191
- super(...arguments);
192
- /**
193
- * Service injected used to generate class
194
- */
195
- this.themeService = inject(AccordionTitleThemeService);
196
- /**
197
- * The parent `AccordionPanelComponent`
198
- */
199
- this.accordionPanelComponent = inject(AccordionPanelComponent);
200
- /**
201
- * `IconRegistry` service
202
- */
203
- this.iconRegistry = inject(IconRegistry);
204
- /**
205
- * `DomSanitizer` service
206
- */
207
- this.domSanitizer = inject(DomSanitizer);
208
- //#region properties
142
+ this.config = injectFlowbiteAccordionItemConfig();
143
+ this.accordionState = injectFlowbiteAccordionState();
144
+ this.ngpAccordionItemState = injectAccordionItemState();
209
145
  /**
210
- * Set the accordion title color
211
- *
212
- * @default `AccordionPanelComponents`'s color
146
+ * @see {@link injectFlowbiteAccordionItemConfig}
213
147
  */
214
- this.color = model(this.accordionPanelComponent.color());
215
- /**
216
- * Set the accordion title icon
217
- *
218
- * @default undefined
219
- */
220
- this.icon = model(inject(FLOWBITE_ACCORDION_TITLE_ICON_DEFAULT_VALUE));
148
+ this.customTheme = input(this.config.customTheme);
149
+ this.theme = computed(() => {
150
+ const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
151
+ return {
152
+ host: {
153
+ root: twMerge(mergedTheme.host.base, mergedTheme.host.transition),
154
+ },
155
+ };
156
+ });
221
157
  /**
222
- * Set the custom style for this accordion title
158
+ * @internal
223
159
  */
224
- this.customStyle = model(inject(FLOWBITE_ACCORDION_TITLE_CUSTOM_STYLE_DEFAULT_VALUE));
225
- }
226
- //#endregion
227
- //#region BaseComponent implementation
228
- fetchClass() {
229
- return this.themeService.getClasses({
230
- color: this.accordionPanelComponent.accordionComponent.color(),
231
- isFlush: booleanToFlowbiteBoolean(this.accordionPanelComponent.accordionComponent.isFlush()),
232
- isOpen: booleanToFlowbiteBoolean(this.accordionPanelComponent.isOpen()),
233
- customStyle: this.customStyle(),
234
- });
160
+ this.state = flowbiteAccordionItemState(this);
235
161
  }
236
- init() {
237
- this.iconRegistry.addRawSvgIconInNamepsace('flowbite-angular', 'chevron-down', this.domSanitizer.bypassSecurityTrustHtml(CHEVRON_DOWN_SVG_ICON));
238
- }
239
- //#endregion
240
- /**
241
- * Toggle the parent `AccordionPanelComponent`'s isOpen
242
- */
243
- onClick() {
244
- this.accordionPanelComponent.toggleVisibility();
245
- }
246
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionTitleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
247
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: AccordionTitleComponent, isStandalone: true, selector: "flowbite-accordion-title", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, customStyle: { classPropertyName: "customStyle", publicName: "customStyle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { color: "colorChange", icon: "iconChange", customStyle: "customStyleChange" }, host: { listeners: { "click": "onClick()" } }, usesInheritance: true, ngImport: i0, template: `
248
- <h2 [class]="contentClasses().textClass">
249
- <ng-content />
250
- </h2>
251
- @if (icon()) {
252
- <ng-container [ngTemplateOutlet]="icon()!" />
253
- } @else {
254
- <flowbite-icon
255
- svgIcon="flowbite-angular:chevron-down"
256
- class="h-6 w-6 shrink-0 duration-300"
257
- [class.rotate-180]="accordionPanelComponent.isOpen()" />
258
- }
259
- `, isInline: true, dependencies: [{ kind: "component", type: IconComponent, selector: "flowbite-icon", inputs: ["svgIcon"], outputs: ["svgIconChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
162
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AccordionItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
163
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: AccordionItem, isStandalone: true, selector: "\n div[flowbiteAccordionItem]\n ", inputs: { customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root" } }, providers: [provideFlowbiteAccordionItemState(), provideAccordionItemState()], exportAs: ["flowbiteAccordionItem"], hostDirectives: [{ directive: i1.NgpAccordionItem, inputs: ["ngpAccordionItemValue", "value", "ngpAccordionItemDisabled", "disabled"] }], ngImport: i0 }); }
260
164
  }
261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionTitleComponent, decorators: [{
262
- type: Component,
165
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AccordionItem, decorators: [{
166
+ type: Directive,
263
167
  args: [{
264
- imports: [IconComponent, NgTemplateOutlet],
265
- selector: 'flowbite-accordion-title',
266
- template: `
267
- <h2 [class]="contentClasses().textClass">
268
- <ng-content />
269
- </h2>
270
- @if (icon()) {
271
- <ng-container [ngTemplateOutlet]="icon()!" />
272
- } @else {
273
- <flowbite-icon
274
- svgIcon="flowbite-angular:chevron-down"
275
- class="h-6 w-6 shrink-0 duration-300"
276
- [class.rotate-180]="accordionPanelComponent.isOpen()" />
277
- }
168
+ standalone: true,
169
+ selector: `
170
+ div[flowbiteAccordionItem]
278
171
  `,
279
- host: {
280
- '(click)': 'onClick()',
281
- },
282
- encapsulation: ViewEncapsulation.None,
283
- changeDetection: ChangeDetectionStrategy.OnPush,
172
+ exportAs: 'flowbiteAccordionItem',
173
+ hostDirectives: [
174
+ {
175
+ directive: NgpAccordionItem,
176
+ inputs: ['ngpAccordionItemValue:value', 'ngpAccordionItemDisabled:disabled'],
177
+ },
178
+ ],
179
+ providers: [provideFlowbiteAccordionItemState(), provideAccordionItemState()],
180
+ host: { '[class]': `theme().host.root` },
284
181
  }]
285
182
  }] });
286
183
 
287
- const FLOWBITE_ACCORDION_PANEL_IS_OPEN_DEFAULT_VALUE = new InjectionToken('FLOWBITE_ACCORDION_IS_OPEN_DEFAULT_VALUE');
288
- const FLOWBITE_ACCORDION_PANEL_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken('FLOWBITE_ACCORDION_PANEL_CUSTOM_STYLE_DEFAULT_VALUE');
289
- const accordionPanelDefaultValueProvider = makeEnvironmentProviders([
290
- {
291
- provide: FLOWBITE_ACCORDION_PANEL_IS_OPEN_DEFAULT_VALUE,
292
- useValue: false,
184
+ const flowbiteAccordionTitleTheme = createTheme({
185
+ host: {
186
+ base: 'flex w-full cursor-pointer flex-row items-center justify-between p-5 text-base font-medium group-first/item:rounded-t-lg',
187
+ transition: '',
188
+ color: {
189
+ default: {
190
+ light: 'border-gray-200 bg-gray-100 text-gray-900 data-hover:bg-gray-200',
191
+ dark: 'dark:border-gray-700 dark:bg-gray-800 dark:text-white dark:data-hover:bg-gray-700',
192
+ },
193
+ info: {
194
+ light: 'border-blue-200 bg-blue-100 text-blue-900 data-hover:bg-blue-200',
195
+ dark: 'dark:border-blue-700 dark:bg-blue-800 dark:text-white dark:data-hover:bg-blue-700',
196
+ },
197
+ failure: {
198
+ light: 'border-red-200 bg-red-100 text-red-900 data-hover:bg-red-200',
199
+ dark: 'dark:border-red-700 dark:bg-red-800 dark:text-white dark:data-hover:bg-red-700',
200
+ },
201
+ success: {
202
+ light: 'border-green-200 bg-green-100 text-green-900 data-hover:bg-green-200',
203
+ dark: 'dark:border-green-700 dark:bg-green-800 dark:text-white dark:data-hover:bg-green-700',
204
+ },
205
+ warning: {
206
+ light: 'border-yellow-200 bg-yellow-100 text-yellow-900 data-hover:bg-yellow-200',
207
+ dark: 'dark:border-yellow-700 dark:bg-yellow-800 dark:text-white dark:data-hover:bg-yellow-700',
208
+ },
209
+ primary: {
210
+ light: 'border-primary-200 bg-primary-100 text-primary-900 data-hover:bg-primary-200',
211
+ dark: 'dark:border-primary-700 dark:bg-primary-800 dark:data-hover:bg-primary-700 dark:text-white',
212
+ },
213
+ },
214
+ flush: {
215
+ on: 'border-b bg-transparent data-hover:bg-transparent dark:bg-transparent dark:data-hover:bg-transparent',
216
+ off: 'border',
217
+ },
293
218
  },
219
+ });
220
+
221
+ const defaultFlowbiteAccordionTitleConfig = {
222
+ baseTheme: flowbiteAccordionTitleTheme,
223
+ customTheme: {},
224
+ };
225
+ const FlowbiteAccordionTitleConfigToken = new InjectionToken('FlowbiteAccordionTitleConfigToken');
226
+ /**
227
+ * Provide the default AccordionTitle configuration
228
+ * @param config The AccordionTitle configuration
229
+ * @returns The provider
230
+ */
231
+ const provideFlowbiteAccordionTitleConfig = (config) => [
294
232
  {
295
- provide: FLOWBITE_ACCORDION_PANEL_CUSTOM_STYLE_DEFAULT_VALUE,
296
- useValue: {},
233
+ provide: FlowbiteAccordionTitleConfigToken,
234
+ useValue: { ...defaultFlowbiteAccordionTitleConfig, ...config },
297
235
  },
298
- ]);
236
+ ];
299
237
  /**
300
- * @see https://flowbite.com/docs/components/accordion/
238
+ * Inject the AccordionTitle configuration
239
+ * @see {@link defaultFlowbiteAccordionTitleConfig}
240
+ * @returns The configuration
301
241
  */
302
- class AccordionPanelComponent extends BaseComponent {
242
+ const injectFlowbiteAccordionTitleConfig = () => inject(FlowbiteAccordionTitleConfigToken, { optional: true }) ??
243
+ defaultFlowbiteAccordionTitleConfig;
244
+
245
+ const FlowbiteAccordionTitleStateToken = createStateToken('Flowbite AccordionTitle');
246
+ const provideFlowbiteAccordionTitleState = createStateProvider(FlowbiteAccordionTitleStateToken);
247
+ const injectFlowbiteAccordionTitleState = createStateInjector(FlowbiteAccordionTitleStateToken);
248
+ const flowbiteAccordionTitleState = createState(FlowbiteAccordionTitleStateToken);
249
+
250
+ class AccordionTitle {
303
251
  constructor() {
304
- super(...arguments);
305
- /**
306
- * Service injected used to generate class
307
- */
308
- this.themeService = inject(AccordionPanelThemeService);
309
- /**
310
- * The parent `AccordionComponent`
311
- */
312
- this.accordionComponent = inject(AccordionComponent);
313
- /**
314
- * The child `AccordionTitleComponent`
315
- */
316
- this.accordionTitleChild = contentChild.required(AccordionTitleComponent);
252
+ this.config = injectFlowbiteAccordionTitleConfig();
253
+ this.accordionState = injectFlowbiteAccordionState();
317
254
  /**
318
- * The child `AccordionContentComponent`
255
+ * @see {@link injectFlowbiteAccordionTitleConfig}
319
256
  */
320
- this.accordionContentChild = contentChild.required(AccordionContentComponent);
321
- //#region properties
322
- /**
323
- * Set the accordion panel color
324
- *
325
- * @default `AccordionComponent`'s color
326
- */
327
- this.color = model(this.accordionComponent.color());
328
- /**
329
- * Set if the accordion panel is open or not
330
- *
331
- * @default false
332
- */
333
- this.isOpen = model(inject(FLOWBITE_ACCORDION_PANEL_IS_OPEN_DEFAULT_VALUE));
257
+ this.customTheme = input(this.config.customTheme);
258
+ this.theme = computed(() => {
259
+ const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
260
+ return {
261
+ host: {
262
+ root: twMerge(mergedTheme.host.base, mergedTheme.host.transition, colorToTheme(mergedTheme.host.color, this.accordionState().color()), mergedTheme.host.flush[this.accordionState().flush() ? 'on' : 'off']),
263
+ },
264
+ };
265
+ });
334
266
  /**
335
- * Set the custom style for this accordion panel
267
+ * @internal
336
268
  */
337
- this.customStyle = model(inject(FLOWBITE_ACCORDION_PANEL_CUSTOM_STYLE_DEFAULT_VALUE));
269
+ this.state = flowbiteAccordionTitleState(this);
338
270
  }
339
- //#endregion
340
- //#region BaseComponent implementation
341
- fetchClass() {
342
- return this.themeService.getClasses({
343
- customStyle: this.customStyle(),
344
- });
345
- }
346
- //#endregion
347
- /**
348
- * Toggle isOpen for itself and close every other `AccordionPanelComponent` if the parent `AccordionComponent`'s isAlwaysOpen is false
349
- *
350
- * @param isOpen Instead of toggle, it can set the value provided
351
- */
352
- toggleVisibility(isOpen) {
353
- if (isOpen === undefined) {
354
- isOpen = untracked(() => !this.isOpen());
355
- }
356
- if (isOpen && untracked(() => !this.accordionComponent.isAlwaysOpen())) {
357
- this.accordionComponent.closeAll();
358
- }
359
- this.isOpen.set(isOpen);
360
- }
361
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
362
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.4", type: AccordionPanelComponent, isStandalone: true, selector: "flowbite-accordion-panel", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, customStyle: { classPropertyName: "customStyle", publicName: "customStyle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { color: "colorChange", isOpen: "isOpenChange", customStyle: "customStyleChange" }, queries: [{ propertyName: "accordionTitleChild", first: true, predicate: AccordionTitleComponent, descendants: true, isSignal: true }, { propertyName: "accordionContentChild", first: true, predicate: AccordionContentComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
271
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AccordionTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
272
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: AccordionTitle, isStandalone: true, selector: "\n [flowbiteAccordionTitle]\n ", inputs: { customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root" } }, providers: [provideFlowbiteAccordionTitleState()], exportAs: ["flowbiteAccordionTitle"], hostDirectives: [{ directive: i1$1.NgpButton, inputs: ["disabled", "disabled"] }, { directive: i2.NgpFocus }, { directive: i1.NgpAccordionTrigger, inputs: ["id", "id"] }], ngImport: i0 }); }
363
273
  }
364
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionPanelComponent, decorators: [{
365
- type: Component,
274
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AccordionTitle, decorators: [{
275
+ type: Directive,
366
276
  args: [{
367
277
  standalone: true,
368
- selector: 'flowbite-accordion-panel',
369
- template: `<ng-content />`,
370
- encapsulation: ViewEncapsulation.None,
371
- changeDetection: ChangeDetectionStrategy.OnPush,
278
+ selector: `
279
+ [flowbiteAccordionTitle]
280
+ `,
281
+ exportAs: 'flowbiteAccordionTitle',
282
+ hostDirectives: [
283
+ {
284
+ directive: NgpButton,
285
+ inputs: ['disabled:disabled'],
286
+ outputs: [],
287
+ },
288
+ {
289
+ directive: NgpFocus,
290
+ inputs: [],
291
+ outputs: [],
292
+ },
293
+ {
294
+ directive: NgpAccordionTrigger,
295
+ inputs: ['id'],
296
+ outputs: [],
297
+ },
298
+ ],
299
+ providers: [provideFlowbiteAccordionTitleState()],
300
+ host: { '[class]': `theme().host.root` },
372
301
  }]
373
302
  }] });
374
303
 
304
+ const flowbiteAccordionContentTheme = createTheme({
305
+ host: {
306
+ base: 'overflow-hidden',
307
+ transition: '',
308
+ color: {
309
+ default: {
310
+ light: 'border-gray-200 bg-white',
311
+ dark: 'dark:border-gray-700 dark:bg-gray-900',
312
+ },
313
+ info: {
314
+ light: 'border-blue-200 bg-white',
315
+ dark: 'dark:border-blue-700 dark:bg-gray-900',
316
+ },
317
+ failure: {
318
+ light: 'border-red-200 bg-white',
319
+ dark: 'dark:border-red-700 dark:bg-gray-900',
320
+ },
321
+ success: {
322
+ light: 'border-green-200 bg-white',
323
+ dark: 'dark:border-green-700 dark:bg-gray-900',
324
+ },
325
+ warning: {
326
+ light: 'border-yellow-200 bg-white',
327
+ dark: 'dark:border-yellow-700 dark:bg-gray-900',
328
+ },
329
+ primary: {
330
+ light: 'border-primary-200 bg-white',
331
+ dark: 'dark:border-primary-700 dark:bg-gray-900',
332
+ },
333
+ },
334
+ open: {
335
+ on: 'h-fit',
336
+ off: 'h-0',
337
+ },
338
+ flush: {
339
+ on: 'bg-transparent dark:bg-transparent',
340
+ off: 'border-x group-last/item:border-b',
341
+ },
342
+ },
343
+ });
344
+
345
+ const defaultFlowbiteAccordionContentConfig = {
346
+ baseTheme: flowbiteAccordionContentTheme,
347
+ customTheme: {},
348
+ };
349
+ const FlowbiteAccordionContentConfigToken = new InjectionToken('FlowbiteAccordionContentConfigToken');
375
350
  /**
376
- * `InjectionToken` used to import `AccordionTheme` value
377
- *
378
- * @example
379
- * ```
380
- * var theme = inject(FLOWBITE_ACCORDION_THEME_TOKEN)
381
- * ```
351
+ * Provide the default AccordionContent configuration
352
+ * @param config The AccordionContent configuration
353
+ * @returns The provider
382
354
  */
383
- const FLOWBITE_ACCORDION_THEME_TOKEN = new InjectionToken('FLOWBITE_ACCORDION_THEME_TOKEN');
384
- class AccordionThemeService {
385
- constructor() {
386
- this.baseTheme = inject(FLOWBITE_ACCORDION_THEME_TOKEN);
387
- }
388
- getClasses(properties) {
389
- const theme = mergeTheme(this.baseTheme, properties.customStyle);
390
- const output = {
391
- rootClass: twMerge(theme.root.base),
392
- };
393
- return output;
394
- }
395
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
396
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionThemeService, providedIn: 'root' }); }
397
- }
398
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionThemeService, decorators: [{
399
- type: Injectable,
400
- args: [{
401
- providedIn: 'root',
402
- }]
403
- }] });
404
-
405
- const FLOWBITE_ACCORDION_IS_ALWAYS_OPEN_DEFAULT_VALUE = new InjectionToken('FLOWBITE_ACCORDION_IS_ALWAYS_OPEN');
406
- const FLOWBITE_ACCORDION_COLOR_DEFAULT_VALUE = new InjectionToken('FLOWBITE_ACCORDION_COLOR_DEFAULT_VALUE');
407
- const FLOWBITE_ACCORDION_IS_FLUSH_DEFAULT_VALUE = new InjectionToken('FLOWBITE_ACCORDION_IS_FLUSH_DEFAULT_VALUE');
408
- const FLOWBITE_ACCORDION_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken('FLOWBITE_ACCORDION_CUSTOM_STYLE_DEFAULT_VALUE');
409
- const accordionDefaultValueProvider = makeEnvironmentProviders([
410
- {
411
- provide: FLOWBITE_ACCORDION_IS_ALWAYS_OPEN_DEFAULT_VALUE,
412
- useValue: false,
413
- },
414
- {
415
- provide: FLOWBITE_ACCORDION_COLOR_DEFAULT_VALUE,
416
- useValue: 'primary',
417
- },
418
- {
419
- provide: FLOWBITE_ACCORDION_IS_FLUSH_DEFAULT_VALUE,
420
- useValue: false,
421
- },
355
+ const provideFlowbiteAccordionContentConfig = (config) => [
422
356
  {
423
- provide: FLOWBITE_ACCORDION_CUSTOM_STYLE_DEFAULT_VALUE,
424
- useValue: {},
357
+ provide: FlowbiteAccordionContentConfigToken,
358
+ useValue: { ...defaultFlowbiteAccordionContentConfig, ...config },
425
359
  },
426
- ]);
360
+ ];
427
361
  /**
428
- * @see https://flowbite.com/docs/components/accordion/
362
+ * Inject the AccordionContent configuration
363
+ * @see {@link defaultFlowbiteAccordionContentConfig}
364
+ * @returns The configuration
429
365
  */
430
- class AccordionComponent extends BaseComponent {
366
+ const injectFlowbiteAccordionContentConfig = () => inject(FlowbiteAccordionContentConfigToken, { optional: true }) ??
367
+ defaultFlowbiteAccordionContentConfig;
368
+
369
+ const FlowbiteAccordionContentStateToken = createStateToken('Flowbite AccordionContent');
370
+ const provideFlowbiteAccordionContentState = createStateProvider(FlowbiteAccordionContentStateToken);
371
+ const injectFlowbiteAccordionContentState = createStateInjector(FlowbiteAccordionContentStateToken);
372
+ const flowbiteAccordionContentState = createState(FlowbiteAccordionContentStateToken);
373
+
374
+ class AccordionContent {
431
375
  constructor() {
432
- super(...arguments);
433
- /**
434
- * Service injected used to generated class
435
- */
436
- this.themeService = inject(AccordionThemeService);
437
- /**
438
- * List of `AccordionPanelComponent`
439
- */
440
- this.accordionPanelChildren = contentChildren(AccordionPanelComponent);
441
- //#region properties
376
+ this.config = injectFlowbiteAccordionContentConfig();
377
+ this.accordionState = injectFlowbiteAccordionState();
378
+ this.ngpAccordionItemState = injectAccordionItemState();
442
379
  /**
443
- * Does the opened `AccordionPanelComponent` stay open if another one is opening
444
- *
445
- * @default false
380
+ * @see {@link injectFlowbiteAccordionContentConfig}
446
381
  */
447
- this.isAlwaysOpen = model(inject(FLOWBITE_ACCORDION_IS_ALWAYS_OPEN_DEFAULT_VALUE));
448
- /**
449
- * Set the accordion color and every child default color
450
- *
451
- * @default primary
452
- */
453
- this.color = model(inject(FLOWBITE_ACCORDION_COLOR_DEFAULT_VALUE));
454
- /**
455
- * Set the accordion as flush or not
456
- *
457
- * @default false
458
- */
459
- this.isFlush = model(inject(FLOWBITE_ACCORDION_IS_FLUSH_DEFAULT_VALUE));
382
+ this.customTheme = input(this.config.customTheme);
383
+ this.theme = computed(() => {
384
+ const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
385
+ return {
386
+ host: {
387
+ root: twMerge(mergedTheme.host.base, mergedTheme.host.transition, colorToTheme(mergedTheme.host.color, this.accordionState().color()), mergedTheme.host.flush[this.accordionState().flush() ? 'on' : 'off'], mergedTheme.host.open[this.ngpAccordionItemState().open() ? 'on' : 'off']),
388
+ },
389
+ };
390
+ });
460
391
  /**
461
- * Set the custom style for this accordion
392
+ * @internal
462
393
  */
463
- this.customStyle = model(inject(FLOWBITE_ACCORDION_CUSTOM_STYLE_DEFAULT_VALUE));
394
+ this.state = flowbiteAccordionContentState(this);
464
395
  }
465
- //#endregion
466
- //#region BaseComponent implementation
467
- fetchClass() {
468
- return this.themeService.getClasses({
469
- customStyle: this.customStyle(),
470
- });
471
- }
472
- //#endregion
473
- /**
474
- * Close every `AccordionPanelComponent`
475
- */
476
- closeAll() {
477
- this.accordionPanelChildren().forEach((child) => child.toggleVisibility(false));
478
- }
479
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
480
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.4", type: AccordionComponent, isStandalone: true, selector: "flowbite-accordion", inputs: { isAlwaysOpen: { classPropertyName: "isAlwaysOpen", publicName: "isAlwaysOpen", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, isFlush: { classPropertyName: "isFlush", publicName: "isFlush", isSignal: true, isRequired: false, transformFunction: null }, customStyle: { classPropertyName: "customStyle", publicName: "customStyle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isAlwaysOpen: "isAlwaysOpenChange", color: "colorChange", isFlush: "isFlushChange", customStyle: "customStyleChange" }, queries: [{ propertyName: "accordionPanelChildren", predicate: AccordionPanelComponent, isSignal: true }], usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
396
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AccordionContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
397
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: AccordionContent, isStandalone: true, selector: "\n div[flowbiteAccordionContent]\n ", inputs: { customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root" } }, providers: [provideFlowbiteAccordionContentState()], exportAs: ["flowbiteAccordionContent"], hostDirectives: [{ directive: i1.NgpAccordionContent, inputs: ["id", "id"] }], ngImport: i0 }); }
481
398
  }
482
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AccordionComponent, decorators: [{
483
- type: Component,
399
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AccordionContent, decorators: [{
400
+ type: Directive,
484
401
  args: [{
485
402
  standalone: true,
486
- selector: 'flowbite-accordion',
487
- template: `<ng-content />`,
488
- encapsulation: ViewEncapsulation.None,
489
- changeDetection: ChangeDetectionStrategy.OnPush,
403
+ selector: `
404
+ div[flowbiteAccordionContent]
405
+ `,
406
+ exportAs: 'flowbiteAccordionContent',
407
+ hostDirectives: [
408
+ {
409
+ directive: NgpAccordionContent,
410
+ inputs: ['id'],
411
+ outputs: [],
412
+ },
413
+ ],
414
+ providers: [provideFlowbiteAccordionContentState()],
415
+ host: { '[class]': `theme().host.root` },
490
416
  }]
491
417
  }] });
492
418
 
493
- /**
494
- * Default theme for `AccordionComponent`
495
- */
496
- const accordionTheme = createTheme({
497
- root: {
498
- base: '',
499
- },
500
- });
501
-
502
- /**
503
- * Default theme for `AccordionContentComponent`
504
- */
505
- const accordionContentTheme = createTheme({
506
- root: {
507
- base: 'flex flex-col overflow-hidden',
508
- color: {
509
- primary: 'border-primary-200 dark:border-primary-700',
510
- light: 'border-gray-200 dark:border-gray-700',
511
- blue: 'border-blue-200 dark:border-blue-700',
512
- red: 'border-red-200 dark:border-red-700',
513
- green: 'border-green-200 dark:border-green-700',
514
- yellow: 'border-yellow-200 dark:border-yellow-700',
515
- },
516
- isFlush: {
517
- enabled: '',
518
- disabled: 'border-x border-t group-last:border-b',
519
- },
520
- },
521
- });
522
-
523
- /**
524
- * Default theme for `AccordionPanelComponent`
525
- */
526
- const accordionPanelTheme = createTheme({
527
- root: {
528
- base: 'group',
529
- },
530
- });
531
-
532
- /**
533
- * Default theme for `AccordionTitleComponent`
534
- */
535
- const accordionTitleTheme = createTheme({
536
- root: {
537
- base: 'cursor-pointer flex items-center p-5 justify-between group-first:rounded-t-lg',
538
- color: {
539
- primary: 'text-primary-900 dark:text-primary-50 border-primary-200 dark:border-primary-700 bg-primary-100 hover:bg-primary-100 dark:bg-primary-800 dark:hover:bg-primary-800',
540
- light: 'text-gray-900 dark:text-gray-50 border-gray-200 dark:border-gray-700 bg-gray-100 hover:bg-gray-100 dark:bg-gray-800 dark:hover:bg-gray-800',
541
- blue: 'text-blue-900 dark:text-blue-50 border-blue-200 dark:border-blue-700 bg-blue-100 hover:bg-blue-100 dark:bg-blue-800 dark:hover:bg-blue-800',
542
- red: 'text-red-900 dark:text-red-50 border-red-200 dark:border-red-700 bg-red-100 hover:bg-red-100 dark:bg-red-800 dark:hover:bg-red-800',
543
- green: 'text-green-900 dark:text-green-50 border-green-200 dark:border-green-700 bg-green-100 hover:bg-green-100 dark:bg-green-800 dark:hover:bg-green-800',
544
- yellow: 'text-yellow-900 dark:text-yellow-50 border-yellow-200 dark:border-yellow-700 bg-yellow-100 hover:bg-yellow-100 dark:bg-yellow-800 dark:hover:bg-yellow-800',
545
- },
546
- isFlush: {
547
- enabled: 'border-b bg-transparent hover:bg-transparent',
548
- disabled: 'border border-b-0',
549
- },
550
- isOpen: {
551
- enabled: '',
552
- disabled: 'bg-transparent dark:bg-transparent',
553
- },
554
- },
555
- text: {
556
- base: 'font-semibold text-base',
557
- },
558
- });
419
+ /* Accordion */
559
420
 
560
421
  /**
561
422
  * Generated bundle index. Do not edit.
562
423
  */
563
424
 
564
- export { AccordionComponent, AccordionContentComponent, AccordionContentThemeService, AccordionPanelComponent, AccordionPanelThemeService, AccordionThemeService, AccordionTitleComponent, AccordionTitleThemeService, FLOWBITE_ACCORDION_COLOR_DEFAULT_VALUE, FLOWBITE_ACCORDION_CONTENT_CUSTOM_STYLE_DEFAULT_VALUE, FLOWBITE_ACCORDION_CONTENT_THEME_TOKEN, FLOWBITE_ACCORDION_CUSTOM_STYLE_DEFAULT_VALUE, FLOWBITE_ACCORDION_IS_ALWAYS_OPEN_DEFAULT_VALUE, FLOWBITE_ACCORDION_IS_FLUSH_DEFAULT_VALUE, FLOWBITE_ACCORDION_PANEL_CUSTOM_STYLE_DEFAULT_VALUE, FLOWBITE_ACCORDION_PANEL_IS_OPEN_DEFAULT_VALUE, FLOWBITE_ACCORDION_PANEL_THEME_TOKEN, FLOWBITE_ACCORDION_THEME_TOKEN, FLOWBITE_ACCORDION_TITLE_CUSTOM_STYLE_DEFAULT_VALUE, FLOWBITE_ACCORDION_TITLE_THEME_TOKEN, accordionContentDefaultValueProvider, accordionContentTheme, accordionDefaultValueProvider, accordionPanelDefaultValueProvider, accordionPanelTheme, accordionTheme, accordionTitleDefaultValueProvider, accordionTitleTheme };
425
+ export { Accordion, AccordionContent, AccordionItem, AccordionTitle, FlowbiteAccordionConfigToken, FlowbiteAccordionContentConfigToken, FlowbiteAccordionContentStateToken, FlowbiteAccordionItemConfigToken, FlowbiteAccordionItemStateToken, FlowbiteAccordionStateToken, FlowbiteAccordionTitleConfigToken, FlowbiteAccordionTitleStateToken, defaultFlowbiteAccordionConfig, defaultFlowbiteAccordionContentConfig, defaultFlowbiteAccordionItemConfig, defaultFlowbiteAccordionTitleConfig, flowbiteAccordionContentState, flowbiteAccordionContentTheme, flowbiteAccordionItemState, flowbiteAccordionItemTheme, flowbiteAccordionState, flowbiteAccordionTheme, flowbiteAccordionTitleState, flowbiteAccordionTitleTheme, injectFlowbiteAccordionConfig, injectFlowbiteAccordionContentConfig, injectFlowbiteAccordionContentState, injectFlowbiteAccordionItemConfig, injectFlowbiteAccordionItemState, injectFlowbiteAccordionState, injectFlowbiteAccordionTitleConfig, injectFlowbiteAccordionTitleState, provideFlowbiteAccordionConfig, provideFlowbiteAccordionContentConfig, provideFlowbiteAccordionContentState, provideFlowbiteAccordionItemConfig, provideFlowbiteAccordionItemState, provideFlowbiteAccordionState, provideFlowbiteAccordionTitleConfig, provideFlowbiteAccordionTitleState };
565
426
  //# sourceMappingURL=flowbite-angular-accordion.mjs.map