flowbite-angular 1.3.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 +339 -479
  15. package/fesm2022/flowbite-angular-accordion.mjs.map +1 -1
  16. package/fesm2022/flowbite-angular-alert.mjs +308 -240
  17. package/fesm2022/flowbite-angular-alert.mjs.map +1 -1
  18. package/fesm2022/flowbite-angular-badge.mjs +332 -238
  19. package/fesm2022/flowbite-angular-badge.mjs.map +1 -1
  20. package/fesm2022/flowbite-angular-breadcrumb.mjs +262 -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 +189 -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 +272 -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 +337 -486
  83. package/fesm2022/flowbite-angular-modal.mjs.map +1 -1
  84. package/fesm2022/flowbite-angular-navbar.mjs +600 -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 +400 -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 -196
  163. package/badge/badge.theme.d.ts +0 -53
  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 -139
  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 -193
  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,746 +1,742 @@
1
- import { mergeTheme, BARS_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 } from '@angular/core';
3
+ import { InjectionToken, inject, input, booleanAttribute, computed, ChangeDetectionStrategy, ViewEncapsulation, Component, Directive } from '@angular/core';
4
+ import { createStateToken, createStateProvider, createStateInjector, createState } from 'ng-primitives/state';
4
5
  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 { DomSanitizer } from '@angular/platform-browser';
9
- import { FlowbiteRouterLinkDirective } from 'flowbite-angular/router-link';
10
- import { FlowbiteRouterLinkActiveDirective } from 'flowbite-angular/router-link-active';
6
+ import * as i1 from 'flowbite-angular/button';
7
+ import { BaseButton, injectFlowbiteBaseButtonState } from 'flowbite-angular/button';
8
+ import * as i2 from 'ng-primitives/button';
9
+ import { NgpButton } from 'ng-primitives/button';
10
+ import * as i3 from 'ng-primitives/interactions';
11
+ import { NgpFocus } from 'ng-primitives/interactions';
12
+ import { bars } from 'flowbite-angular/icon/outline/general';
13
+ import { provideIcons } from '@ng-icons/core';
11
14
 
12
- /**
13
- * `InjectionToken` used to import `NavbarBrandTheme` value
14
- *
15
- * @example
16
- * ```
17
- * var theme = inject(FLOWBITE_NAVBAR_BRAND_THEME_TOKEN)
18
- * ```
19
- */
20
- const FLOWBITE_NAVBAR_BRAND_THEME_TOKEN = new InjectionToken('FLOWBITE_NAVBAR_BRAND_THEME_TOKEN');
21
- class NavbarBrandThemeService {
22
- constructor() {
23
- this.baseTheme = inject(FLOWBITE_NAVBAR_BRAND_THEME_TOKEN);
24
- }
25
- getClasses(properties) {
26
- const theme = mergeTheme(this.baseTheme, properties.customStyle);
27
- const output = {
28
- rootClass: twMerge(theme.root.base),
29
- };
30
- return output;
31
- }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarBrandThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
33
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarBrandThemeService, providedIn: 'root' }); }
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarBrandThemeService, decorators: [{
36
- type: Injectable,
37
- args: [{
38
- providedIn: 'root',
39
- }]
40
- }] });
41
-
42
- const FLOWBITE_NAVBAR_BRAND_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken('FLOWBITE_NAVBAR_BRAND_CUSTOM_STYLE_DEFAULT_VALUE');
43
- const navbarBrandDefaultThemeProvider = makeEnvironmentProviders([
44
- {
45
- provide: FLOWBITE_NAVBAR_BRAND_CUSTOM_STYLE_DEFAULT_VALUE,
46
- useValue: {},
15
+ const flowbiteNavbarTheme = createTheme({
16
+ host: {
17
+ base: '',
18
+ transition: '',
19
+ fixed: {
20
+ on: 'fixed start-0 top-0 z-20 w-full border-b',
21
+ off: '',
22
+ },
23
+ color: {
24
+ default: {
25
+ light: 'border-gray-200 bg-gray-100',
26
+ dark: 'dark:border-gray-800 dark:bg-gray-900',
27
+ },
28
+ info: {
29
+ light: 'border-blue-200 bg-gray-100',
30
+ dark: 'dark:border-blue-800 dark:bg-gray-900',
31
+ },
32
+ failure: {
33
+ light: 'border-red-200 bg-gray-100',
34
+ dark: 'dark:border-red-800 dark:bg-gray-900',
35
+ },
36
+ success: {
37
+ light: 'border-green-200 bg-gray-100',
38
+ dark: 'dark:border-green-800 dark:bg-gray-900',
39
+ },
40
+ warning: {
41
+ light: 'border-yellow-200 bg-gray-100',
42
+ dark: 'dark:border-yellow-800 dark:bg-gray-900',
43
+ },
44
+ primary: {
45
+ light: 'border-primary-200 bg-gray-100',
46
+ dark: 'dark:border-primary-800 dark:bg-gray-900',
47
+ },
48
+ },
47
49
  },
48
- ]);
49
- /**
50
- * @see https://flowbite.com/docs/components/navbar/
51
- */
52
- class NavbarBrandComponent extends BaseComponent {
53
- constructor() {
54
- super(...arguments);
55
- /**
56
- * Service injected used to generate class
57
- */
58
- this.themeService = inject(NavbarBrandThemeService);
59
- /**
60
- * The parent `NavbarComponent`
61
- */
62
- this.navbarComponent = inject(NavbarComponent);
63
- //#region properties
64
- /**
65
- * Set the custom style for this navbar brand
66
- */
67
- this.customStyle = model(inject(FLOWBITE_NAVBAR_BRAND_CUSTOM_STYLE_DEFAULT_VALUE));
68
- }
69
- //#endregion
70
- //#region BaseComponent implementation
71
- fetchClass() {
72
- return this.themeService.getClasses({
73
- customStyle: this.customStyle(),
74
- });
75
- }
76
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarBrandComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
77
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.4", type: NavbarBrandComponent, isStandalone: true, selector: "flowbite-navbar-brand", inputs: { customStyle: { classPropertyName: "customStyle", publicName: "customStyle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { customStyle: "customStyleChange" }, usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
78
- }
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarBrandComponent, decorators: [{
80
- type: Component,
81
- args: [{
82
- standalone: true,
83
- selector: 'flowbite-navbar-brand',
84
- template: `<ng-content />`,
85
- encapsulation: ViewEncapsulation.None,
86
- changeDetection: ChangeDetectionStrategy.OnPush,
87
- }]
88
- }] });
50
+ container: {
51
+ base: 'mx-auto flex max-w-screen flex-wrap items-center justify-between p-4',
52
+ transition: '',
53
+ },
54
+ });
89
55
 
56
+ const defaultFlowbiteNavbarConfig = {
57
+ baseTheme: flowbiteNavbarTheme,
58
+ fixed: false,
59
+ open: false,
60
+ color: 'default',
61
+ customTheme: {},
62
+ };
63
+ const FlowbiteNavbarConfigToken = new InjectionToken('FlowbiteNavbarConfigToken');
90
64
  /**
91
- * `InjectionToken` used to import `NavbarContentTheme` value
92
- *
93
- * @example
94
- * ```
95
- * var theme = inject(FLOWBITE_NAVBAR_CONTENT_THEME_TOKEN)
96
- * ```
65
+ * Provide the default Navbar configuration
66
+ * @param config The Navbar configuration
67
+ * @returns The provider
97
68
  */
98
- const FLOWBITE_NAVBAR_CONTENT_THEME_TOKEN = new InjectionToken('FLOWBITE_NAVBAR_CONTENT_THEME_TOKEN');
99
- class NavbarContentThemeService {
100
- constructor() {
101
- this.baseTheme = inject(FLOWBITE_NAVBAR_CONTENT_THEME_TOKEN);
102
- }
103
- getClasses(properties) {
104
- const theme = mergeTheme(this.baseTheme, properties.customStyle);
105
- const output = {
106
- rootClass: twMerge(theme.root.base),
107
- navbarContentListClass: twMerge(theme.list.base),
108
- };
109
- return output;
110
- }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarContentThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
112
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarContentThemeService, providedIn: 'root' }); }
113
- }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarContentThemeService, decorators: [{
115
- type: Injectable,
116
- args: [{
117
- providedIn: 'root',
118
- }]
119
- }] });
120
-
121
- const FLOWBITE_NAVBAR_CONTENT_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken('FLOWBITE_NAVBAR_CONTENT_CUSTOM_STYLE_DEFAULT_VALUE');
122
- const navbarContentDefaultValueProvider = makeEnvironmentProviders([
69
+ const provideFlowbiteNavbarConfig = (config) => [
123
70
  {
124
- provide: FLOWBITE_NAVBAR_CONTENT_CUSTOM_STYLE_DEFAULT_VALUE,
125
- useValue: {},
71
+ provide: FlowbiteNavbarConfigToken,
72
+ useValue: { ...defaultFlowbiteNavbarConfig, ...config },
126
73
  },
127
- ]);
74
+ ];
128
75
  /**
129
- * @see https://flowbite.com/docs/components/navbar/
76
+ * Inject the Navbar configuration
77
+ * @see {@link defaultFlowbiteNavbarConfig}
78
+ * @returns The configuration
130
79
  */
131
- class NavbarContentComponent extends BaseComponent {
80
+ const injectFlowbiteNavbarConfig = () => inject(FlowbiteNavbarConfigToken, { optional: true }) ?? defaultFlowbiteNavbarConfig;
81
+
82
+ const FlowbiteNavbarStateToken = createStateToken('Flowbite Navbar');
83
+ const provideFlowbiteNavbarState = createStateProvider(FlowbiteNavbarStateToken);
84
+ const injectFlowbiteNavbarState = createStateInjector(FlowbiteNavbarStateToken);
85
+ const flowbiteNavbarState = createState(FlowbiteNavbarStateToken);
86
+
87
+ class Navbar {
132
88
  constructor() {
133
- super(...arguments);
89
+ this.config = injectFlowbiteNavbarConfig();
134
90
  /**
135
- * Service injected used to generate class
91
+ * @see {@link injectFlowbiteNavbarConfig}
136
92
  */
137
- this.themeService = inject(NavbarContentThemeService);
93
+ this.fixed = input(this.config.fixed, { transform: booleanAttribute });
138
94
  /**
139
- * The parent `NavbarComponent`
95
+ * @see {@link injectFlowbiteNavbarConfig}
140
96
  */
141
- this.navbarComponent = model(inject(NavbarComponent));
142
- //#region properties
97
+ this.open = input(this.config.open, { transform: booleanAttribute });
143
98
  /**
144
- * Set the navbar content color
145
- *
146
- * @default `NavbarComponent`'s color
99
+ * @see {@link injectFlowbiteNavbarConfig}
147
100
  */
148
- this.color = model(this.navbarComponent().color());
101
+ this.color = input(this.config.color);
149
102
  /**
150
- * Set the custom style for this navbar content
103
+ * @see {@link injectFlowbiteNavbarConfig}
151
104
  */
152
- this.customStyle = model(inject(FLOWBITE_NAVBAR_CONTENT_CUSTOM_STYLE_DEFAULT_VALUE));
153
- }
154
- //#endregion
155
- //#region BaseComponent implementation
156
- fetchClass() {
157
- return this.themeService.getClasses({
158
- customStyle: this.customStyle(),
105
+ this.customTheme = input(this.config.customTheme);
106
+ this.theme = computed(() => {
107
+ const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
108
+ return {
109
+ host: {
110
+ root: twMerge(mergedTheme.host.base, mergedTheme.host.transition, mergedTheme.host.fixed[this.state.fixed() ? 'on' : 'off'], colorToTheme(mergedTheme.host.color, this.state.color())),
111
+ },
112
+ container: {
113
+ root: twMerge(mergedTheme.container.base, mergedTheme.container.transition),
114
+ },
115
+ };
159
116
  });
117
+ /**
118
+ * @internal
119
+ */
120
+ this.state = flowbiteNavbarState(this);
160
121
  }
161
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarContentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
162
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.4", type: NavbarContentComponent, isStandalone: true, selector: "flowbite-navbar-content", inputs: { navbarComponent: { classPropertyName: "navbarComponent", publicName: "navbarComponent", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, customStyle: { classPropertyName: "customStyle", publicName: "customStyle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { navbarComponent: "navbarComponentChange", color: "colorChange", customStyle: "customStyleChange" }, host: { properties: { "@isOpenAnimation": "navbarComponent().isOpen()" } }, usesInheritance: true, ngImport: i0, template: `
163
- <div [class]="contentClasses().navbarContentListClass">
122
+ /**
123
+ * @internal
124
+ */
125
+ toggle(newState) {
126
+ newState ??= !this.state.open();
127
+ this.state.open.set(newState);
128
+ }
129
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: Navbar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: Navbar, isStandalone: true, selector: "\n nav[flowbiteNavbar]\n ", inputs: { fixed: { classPropertyName: "fixed", publicName: "fixed", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root" } }, providers: [provideFlowbiteNavbarState({ inherit: true })], exportAs: ["flowbiteNavbar"], ngImport: i0, template: `
131
+ <div [class]="theme().container.root">
164
132
  <ng-content />
165
133
  </div>
166
- `, isInline: true, animations: [
167
- trigger('isOpenAnimation', [
168
- state('true', style({ height: '*' })),
169
- state('false', style({ height: '0px' })),
170
- transition('true <=> false', animate('300ms')),
171
- ]),
172
- ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
134
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
173
135
  }
174
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarContentComponent, decorators: [{
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: Navbar, decorators: [{
175
137
  type: Component,
176
138
  args: [{
177
139
  standalone: true,
178
- selector: 'flowbite-navbar-content',
140
+ selector: `
141
+ nav[flowbiteNavbar]
142
+ `,
143
+ exportAs: 'flowbiteNavbar',
144
+ hostDirectives: [],
145
+ imports: [],
146
+ providers: [provideFlowbiteNavbarState({ inherit: true })],
147
+ host: { '[class]': `theme().host.root` },
179
148
  template: `
180
- <div [class]="contentClasses().navbarContentListClass">
149
+ <div [class]="theme().container.root">
181
150
  <ng-content />
182
151
  </div>
183
152
  `,
184
- host: {
185
- '[@isOpenAnimation]': 'navbarComponent().isOpen()',
186
- },
187
- animations: [
188
- trigger('isOpenAnimation', [
189
- state('true', style({ height: '*' })),
190
- state('false', style({ height: '0px' })),
191
- transition('true <=> false', animate('300ms')),
192
- ]),
193
- ],
194
153
  encapsulation: ViewEncapsulation.None,
195
154
  changeDetection: ChangeDetectionStrategy.OnPush,
196
155
  }]
197
156
  }] });
198
157
 
158
+ const flowbiteNavbarItemTheme = createTheme({
159
+ host: {
160
+ base: 'm-0 block cursor-pointer rounded-sm px-3 py-2',
161
+ transition: '',
162
+ focus: 'data-focus:ring-0 data-focus:outline-none data-focus-visible:ring-2 data-focus-visible:outline-none',
163
+ disabled: 'data-disabled:cursor-not-allowed data-disabled:opacity-50',
164
+ size: {},
165
+ pill: {},
166
+ color: {
167
+ default: {
168
+ light: 'text-gray-800 data-hover:text-gray-900',
169
+ dark: 'dark:text-white dark:data-hover:text-gray-100',
170
+ },
171
+ info: {
172
+ light: 'text-gray-800 data-hover:text-blue-900',
173
+ dark: 'dark:text-white dark:data-hover:text-blue-100',
174
+ },
175
+ failure: {
176
+ light: 'text-gray-800 data-hover:text-red-900',
177
+ dark: 'dark:text-white dark:data-hover:text-red-100',
178
+ },
179
+ success: {
180
+ light: 'text-gray-800 data-hover:text-green-900',
181
+ dark: 'dark:text-white dark:data-hover:text-green-100',
182
+ },
183
+ warning: {
184
+ light: 'text-gray-800 data-hover:text-yellow-900',
185
+ dark: 'dark:text-white dark:data-hover:text-yellow-100',
186
+ },
187
+ primary: {
188
+ light: 'data-hover:text-primary-900 text-gray-800',
189
+ dark: 'dark:data-hover:text-primary-100 dark:text-white',
190
+ },
191
+ },
192
+ colorOutline: {},
193
+ },
194
+ });
195
+
196
+ const defaultFlowbiteNavbarItemConfig = {
197
+ baseTheme: flowbiteNavbarItemTheme,
198
+ customTheme: {},
199
+ };
200
+ const FlowbiteNavbarItemConfigToken = new InjectionToken('FlowbiteNavbarItemConfigToken');
199
201
  /**
200
- * `InjectionToken` used to import `NavbarToggleTheme` value
201
- *
202
- * @example
203
- * ```
204
- * var theme = inject(FLOWBITE_NAVBAR_TOGGLE_THEME_TOKEN)
205
- * ```
202
+ * Provide the default NavbarItem configuration
203
+ * @param config The NavbarItem configuration
204
+ * @returns The provider
206
205
  */
207
- const FLOWBITE_NAVBAR_TOGGLE_THEME_TOKEN = new InjectionToken('FLOWBITE_NAVBAR_TOGGLE_THEME_TOKEN');
208
- class NavbarToggleThemeService {
209
- constructor() {
210
- this.baseTheme = inject(FLOWBITE_NAVBAR_TOGGLE_THEME_TOKEN);
211
- }
212
- getClasses(properties) {
213
- const theme = mergeTheme(this.baseTheme, properties.customStyle);
214
- const output = {
215
- rootClass: twMerge(theme.root.base),
216
- };
217
- return output;
218
- }
219
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarToggleThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
220
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarToggleThemeService, providedIn: 'root' }); }
221
- }
222
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarToggleThemeService, decorators: [{
223
- type: Injectable,
224
- args: [{
225
- providedIn: 'root',
226
- }]
227
- }] });
228
-
229
- const FLOWBITE_NAVBAR_TOGGLE_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken('FLOWBITE_NAVBAR_TOGGLE_CUSTOM_STYLE_DEFAULT_VALUE');
230
- const navbarToggleDefaultValueProvider = makeEnvironmentProviders([
206
+ const provideFlowbiteNavbarItemConfig = (config) => [
231
207
  {
232
- provide: FLOWBITE_NAVBAR_TOGGLE_CUSTOM_STYLE_DEFAULT_VALUE,
233
- useValue: {},
208
+ provide: FlowbiteNavbarItemConfigToken,
209
+ useValue: { ...defaultFlowbiteNavbarItemConfig, ...config },
234
210
  },
235
- ]);
211
+ ];
236
212
  /**
237
- * @see https://flowbite.com/docs/components/navbar/
213
+ * Inject the NavbarItem configuration
214
+ * @see {@link defaultFlowbiteNavbarItemConfig}
215
+ * @returns The configuration
238
216
  */
239
- class NavbarToggleComponent extends BaseComponent {
217
+ const injectFlowbiteNavbarItemConfig = () => inject(FlowbiteNavbarItemConfigToken, { optional: true }) ?? defaultFlowbiteNavbarItemConfig;
218
+
219
+ const FlowbiteNavbarItemStateToken = createStateToken('Flowbite NavbarItem');
220
+ const provideFlowbiteNavbarItemState = createStateProvider(FlowbiteNavbarItemStateToken);
221
+ const injectFlowbiteNavbarItemState = createStateInjector(FlowbiteNavbarItemStateToken);
222
+ const flowbiteNavbarItemState = createState(FlowbiteNavbarItemStateToken);
223
+
224
+ class NavbarItem {
240
225
  constructor() {
241
- super(...arguments);
242
- /**
243
- * Service injected used to generate class
244
- */
245
- this.themeService = inject(NavbarToggleThemeService);
246
- /**
247
- * The parent `NavbarComponent`
248
- */
249
- this.navbarComponent = model(inject(NavbarComponent));
250
- /**
251
- * `IconRegistry` service
252
- */
253
- this.iconRegistry = inject(IconRegistry);
254
- /**
255
- * `DomSanitizer` service
256
- */
257
- this.domSanitizer = inject(DomSanitizer);
258
- //#region properties
259
- /**
260
- * Set the custom style for this navbar toggle
261
- */
262
- this.customStyle = model(inject(FLOWBITE_NAVBAR_TOGGLE_CUSTOM_STYLE_DEFAULT_VALUE));
263
- }
264
- //#endregion
265
- //#region BaseComponent implementation
266
- fetchClass() {
267
- return this.themeService.getClasses({
268
- customStyle: this.customStyle(),
226
+ this.config = injectFlowbiteNavbarItemConfig();
227
+ this.navbarState = injectFlowbiteNavbarState();
228
+ /**
229
+ * @see {@link injectFlowbiteNavbarItemConfig}
230
+ */
231
+ this.customTheme = input(this.config.customTheme);
232
+ this.theme = computed(() => {
233
+ const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
234
+ return {
235
+ host: {
236
+ root: twMerge(mergedTheme.host.base, mergedTheme.host.transition, mergedTheme.host.focus, mergedTheme.host.disabled, colorToTheme(mergedTheme.host.color, this.navbarState().color())),
237
+ },
238
+ };
269
239
  });
240
+ this.state = flowbiteNavbarItemState(this);
270
241
  }
271
- init() {
272
- this.iconRegistry.addRawSvgIconInNamepsace('flowbite-angular', 'bars', this.domSanitizer.bypassSecurityTrustHtml(BARS_SVG_ICON));
273
- }
274
- //#endregion
275
242
  /**
276
- * Toggle navbar visibility (open close on mobile device)
243
+ * @internal
277
244
  */
278
245
  onClick() {
279
- const isCollapsed = this.navbarComponent().isOpen();
280
- this.navbarComponent().isOpen.set(!isCollapsed);
246
+ this.toggleNavbar();
281
247
  }
282
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarToggleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
283
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.4", type: NavbarToggleComponent, isStandalone: true, selector: "flowbite-navbar-toggle", inputs: { navbarComponent: { classPropertyName: "navbarComponent", publicName: "navbarComponent", isSignal: true, isRequired: false, transformFunction: null }, customStyle: { classPropertyName: "customStyle", publicName: "customStyle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { navbarComponent: "navbarComponentChange", customStyle: "customStyleChange" }, host: { listeners: { "click": "onClick()" } }, usesInheritance: true, ngImport: i0, template: `
284
- <flowbite-icon
285
- svgIcon="flowbite-angular:bars"
286
- class="w-5 h-5" />
287
- `, isInline: true, dependencies: [{ kind: "component", type: IconComponent, selector: "flowbite-icon", inputs: ["svgIcon"], outputs: ["svgIconChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
248
+ /**
249
+ * @internal
250
+ */
251
+ toggleNavbar() {
252
+ this.navbarState().toggle();
253
+ }
254
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavbarItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
255
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: NavbarItem, isStandalone: true, selector: "\n a[flowbiteNavbarItem],\n button[flowbiteNavbarItem]\n ", inputs: { customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick()" }, properties: { "class": "theme().host.root" } }, providers: [provideFlowbiteNavbarItemState()], exportAs: ["flowbiteNavbarItem"], hostDirectives: [{ directive: i1.BaseButton, inputs: ["color", "color"] }, { directive: i2.NgpButton, inputs: ["disabled", "disabled"] }, { directive: i3.NgpFocus, inputs: ["ngpFocusDisabled", "focusDisabled"], outputs: ["ngpFocus", "ngpFocus"] }], ngImport: i0 }); }
288
256
  }
289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarToggleComponent, decorators: [{
290
- type: Component,
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavbarItem, decorators: [{
258
+ type: Directive,
291
259
  args: [{
292
260
  standalone: true,
293
- selector: 'flowbite-navbar-toggle',
294
- imports: [IconComponent],
295
- template: `
296
- <flowbite-icon
297
- svgIcon="flowbite-angular:bars"
298
- class="w-5 h-5" />
261
+ selector: `
262
+ a[flowbiteNavbarItem],
263
+ button[flowbiteNavbarItem]
299
264
  `,
265
+ exportAs: 'flowbiteNavbarItem',
266
+ hostDirectives: [
267
+ {
268
+ directive: BaseButton,
269
+ inputs: ['color'],
270
+ outputs: [],
271
+ },
272
+ {
273
+ directive: NgpButton,
274
+ inputs: ['disabled:disabled'],
275
+ outputs: [],
276
+ },
277
+ {
278
+ directive: NgpFocus,
279
+ inputs: ['ngpFocusDisabled:focusDisabled'],
280
+ outputs: ['ngpFocus'],
281
+ },
282
+ ],
283
+ providers: [provideFlowbiteNavbarItemState()],
300
284
  host: {
285
+ '[class]': `theme().host.root`,
301
286
  '(click)': 'onClick()',
302
287
  },
303
- encapsulation: ViewEncapsulation.None,
304
- changeDetection: ChangeDetectionStrategy.OnPush,
305
288
  }]
306
289
  }] });
307
290
 
308
- /**
309
- * `InjectionToken` used to import `NavbarTheme` value
310
- *
311
- * @example
312
- * ```
313
- * var theme = inject(FLOWBITE_NAVBAR_THEME_TOKEN)
314
- * ```
315
- */
316
- const FLOWBITE_NAVBAR_THEME_TOKEN = new InjectionToken('FLOWBITE_NAVBAR_THEME_TOKEN');
317
- class NavbarThemeService {
318
- constructor() {
319
- this.baseTheme = inject(FLOWBITE_NAVBAR_THEME_TOKEN);
320
- }
321
- getClasses(properties) {
322
- const theme = mergeTheme(this.baseTheme, properties.customStyle);
323
- const output = {
324
- rootClass: twMerge(theme.root.base, theme.root.color['gray'], theme.root.isRounded[properties.isRounded], theme.root.hasBorder[properties.hasBorder], theme.root.isFixed[properties.isFixed]),
325
- };
326
- return output;
327
- }
328
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
329
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarThemeService, providedIn: 'root' }); }
330
- }
331
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarThemeService, decorators: [{
332
- type: Injectable,
333
- args: [{
334
- providedIn: 'root',
335
- }]
336
- }] });
337
-
338
- const FLOWBITE_NAVBAR_COLOR_DEFAULT_VALUE = new InjectionToken('FLOWBITE_NAVBAR_COLOR_DEFAULT_VALUE');
339
- const FLOWBITE_NAVBAR_IS_OPEN_DEFAULT_VALUE = new InjectionToken('FLOWBITE_NAVBAR_IS_OPEN_DEFAULT_VALUE');
340
- const FLOWBITE_NAVBAR_IS_ROUNDED_DEFAULT_VALUE = new InjectionToken('FLOWBITE_NAVBAR_IS_ROUNDED_DEFAULT_VALUE');
341
- const FLOWBITE_NAVBAR_HAS_BORDER_DEFAULT_VALUE = new InjectionToken('FLOWBITE_NAVBAR_HAS_BORDER_DEFAULT_VALUE');
342
- const FLOWBITE_NAVBAR_IS_FIXED_DEFAULT_VALUE = new InjectionToken('FLOWBITE_NAVBAR_IS_FIXED_DEFAULT_VALUE');
343
- const FLOWBITE_NAVBAR_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken('FLOWBITE_NAVBAR_CUSTOM_STYLE_DEFAULT_VALUE');
344
- const navbarDefaultValueProvider = makeEnvironmentProviders([
345
- {
346
- provide: FLOWBITE_NAVBAR_COLOR_DEFAULT_VALUE,
347
- useValue: 'primary',
348
- },
349
- {
350
- provide: FLOWBITE_NAVBAR_IS_OPEN_DEFAULT_VALUE,
351
- useValue: false,
352
- },
353
- {
354
- provide: FLOWBITE_NAVBAR_IS_ROUNDED_DEFAULT_VALUE,
355
- useValue: false,
356
- },
357
- {
358
- provide: FLOWBITE_NAVBAR_HAS_BORDER_DEFAULT_VALUE,
359
- useValue: false,
291
+ const flowbiteNavbarContentTheme = createTheme({
292
+ host: {
293
+ base: 'w-full overflow-hidden max-md:order-last md:flex md:w-auto',
294
+ transition: '',
295
+ fixed: {
296
+ on: '',
297
+ off: '',
298
+ },
299
+ open: {
300
+ on: '',
301
+ off: 'hidden',
302
+ },
360
303
  },
361
- {
362
- provide: FLOWBITE_NAVBAR_IS_FIXED_DEFAULT_VALUE,
363
- useValue: false,
304
+ container: {
305
+ base: 'mt-4 flex flex-col rounded-lg border p-4 font-medium md:mt-0 md:flex-row md:space-x-4 md:border-0 md:p-0',
306
+ transition: '',
307
+ color: {
308
+ default: {
309
+ light: 'bg-gray-200 md:bg-inherit',
310
+ dark: 'dark:bg-gray-800 dark:md:bg-inherit',
311
+ },
312
+ info: {
313
+ light: 'bg-gray-200 md:bg-inherit',
314
+ dark: 'dark:bg-gray-800 dark:md:bg-inherit',
315
+ },
316
+ failure: {
317
+ light: 'bg-gray-200 md:bg-inherit',
318
+ dark: 'dark:bg-gray-800 dark:md:bg-inherit',
319
+ },
320
+ success: {
321
+ light: 'bg-gray-200 md:bg-inherit',
322
+ dark: 'dark:bg-gray-800 dark:md:bg-inherit',
323
+ },
324
+ warning: {
325
+ light: 'bg-gray-200 md:bg-inherit',
326
+ dark: 'dark:bg-gray-800 dark:md:bg-inherit',
327
+ },
328
+ primary: {
329
+ light: 'bg-gray-200 md:bg-inherit',
330
+ dark: 'dark:bg-gray-800 dark:md:bg-inherit',
331
+ },
332
+ },
364
333
  },
334
+ });
335
+
336
+ const defaultFlowbiteNavbarContentConfig = {
337
+ baseTheme: flowbiteNavbarContentTheme,
338
+ customTheme: {},
339
+ };
340
+ const FlowbiteNavbarContentConfigToken = new InjectionToken('FlowbiteNavbarContentConfigToken');
341
+ /**
342
+ * Provide the default NavbarContent configuration
343
+ * @param config The NavbarContent configuration
344
+ * @returns The provider
345
+ */
346
+ const provideFlowbiteNavbarContentConfig = (config) => [
365
347
  {
366
- provide: FLOWBITE_NAVBAR_CUSTOM_STYLE_DEFAULT_VALUE,
367
- useValue: {},
348
+ provide: FlowbiteNavbarContentConfigToken,
349
+ useValue: { ...defaultFlowbiteNavbarContentConfig, ...config },
368
350
  },
369
- ]);
351
+ ];
370
352
  /**
371
- * @see https://flowbite.com/docs/components/navbar/
353
+ * Inject the NavbarContent configuration
354
+ * @see {@link defaultFlowbiteNavbarContentConfig}
355
+ * @returns The configuration
372
356
  */
373
- class NavbarComponent extends BaseComponent {
357
+ const injectFlowbiteNavbarContentConfig = () => inject(FlowbiteNavbarContentConfigToken, { optional: true }) ??
358
+ defaultFlowbiteNavbarContentConfig;
359
+
360
+ const FlowbiteNavbarContentStateToken = createStateToken('Flowbite NavbarContent');
361
+ const provideFlowbiteNavbarContentState = createStateProvider(FlowbiteNavbarContentStateToken);
362
+ const injectFlowbiteNavbarContentState = createStateInjector(FlowbiteNavbarContentStateToken);
363
+ const flowbiteNavbarContentState = createState(FlowbiteNavbarContentStateToken);
364
+
365
+ class NavbarContent {
374
366
  constructor() {
375
- super(...arguments);
376
- /**
377
- * Service injecteed used to generate class
378
- */
379
- this.themeService = inject(NavbarThemeService);
380
- /**
381
- * The child `NavbarBrandComponent`
382
- */
383
- this.navbarBrandChild = contentChild(NavbarBrandComponent);
384
- /**
385
- * The child `NavbarToggleComponent`
386
- */
387
- this.navbarToggleChild = contentChild(NavbarToggleComponent);
388
- /**
389
- * The child `NavbarContentComponent`
390
- */
391
- this.navbarContentChild = contentChild.required(NavbarContentComponent);
392
- //#region properties
393
- /**
394
- * Set the navbar color
395
- *
396
- * @default primary
397
- */
398
- this.color = model(inject(FLOWBITE_NAVBAR_COLOR_DEFAULT_VALUE));
399
- /**
400
- * Set if the navbar is open
401
- *
402
- * @default false
403
- */
404
- this.isOpen = model(inject(FLOWBITE_NAVBAR_IS_OPEN_DEFAULT_VALUE));
405
- /**
406
- * Set if the navbar is rounded
407
- *
408
- * @default false
409
- */
410
- this.isRounded = model(inject(FLOWBITE_NAVBAR_IS_ROUNDED_DEFAULT_VALUE));
411
- /**
412
- * Set if the navbar has border
413
- *
414
- * @default false
415
- */
416
- this.hasBorder = model(inject(FLOWBITE_NAVBAR_HAS_BORDER_DEFAULT_VALUE));
417
- /**
418
- * Set if the navbar is fixed
419
- *
420
- * @default false
421
- */
422
- this.isFixed = model(inject(FLOWBITE_NAVBAR_IS_FIXED_DEFAULT_VALUE));
367
+ this.config = injectFlowbiteNavbarContentConfig();
368
+ this.navbarState = injectFlowbiteNavbarState();
369
+ /**
370
+ * @see {@link injectFlowbiteNavbarContentConfig}
371
+ */
372
+ this.customTheme = input(this.config.customTheme);
373
+ this.theme = computed(() => {
374
+ const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
375
+ return {
376
+ host: {
377
+ root: twMerge(mergedTheme.host.base, mergedTheme.host.transition, mergedTheme.host.open[this.navbarState().open() ? 'on' : 'off']),
378
+ },
379
+ container: {
380
+ root: twMerge(mergedTheme.container.base, mergedTheme.container.transition, colorToTheme(mergedTheme.container.color, this.navbarState().color())),
381
+ },
382
+ };
383
+ });
423
384
  /**
424
- * Set the custom style for this navbar
385
+ * @internal
425
386
  */
426
- this.customStyle = model(inject(FLOWBITE_NAVBAR_CUSTOM_STYLE_DEFAULT_VALUE));
387
+ this.state = flowbiteNavbarContentState(this);
427
388
  }
428
- //#endregion
429
- //#region BaseComponent implementation
430
- fetchClass() {
431
- return this.themeService.getClasses({
432
- hasBorder: booleanToFlowbiteBoolean(this.isRounded()),
433
- isRounded: booleanToFlowbiteBoolean(this.hasBorder()),
434
- isFixed: booleanToFlowbiteBoolean(this.isFixed()),
435
- customStyle: this.customStyle(),
436
- });
437
- }
438
- //#endregion
439
- /**
440
- * Toggle visibility of the navbar
441
- *
442
- * @param isOpen When provide force the isOpen value
443
- */
444
- toggleVisibility(isOpen) {
445
- if (isOpen === undefined) {
446
- isOpen = untracked(() => !this.isOpen());
447
- }
448
- this.isOpen.set(isOpen);
449
- }
450
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
451
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.4", type: NavbarComponent, isStandalone: true, selector: "flowbite-navbar", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, isRounded: { classPropertyName: "isRounded", publicName: "isRounded", isSignal: true, isRequired: false, transformFunction: null }, hasBorder: { classPropertyName: "hasBorder", publicName: "hasBorder", isSignal: true, isRequired: false, transformFunction: null }, isFixed: { classPropertyName: "isFixed", publicName: "isFixed", isSignal: true, isRequired: false, transformFunction: null }, customStyle: { classPropertyName: "customStyle", publicName: "customStyle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { color: "colorChange", isOpen: "isOpenChange", isRounded: "isRoundedChange", hasBorder: "hasBorderChange", isFixed: "isFixedChange", customStyle: "customStyleChange" }, queries: [{ propertyName: "navbarBrandChild", first: true, predicate: NavbarBrandComponent, descendants: true, isSignal: true }, { propertyName: "navbarToggleChild", first: true, predicate: NavbarToggleComponent, descendants: true, isSignal: true }, { propertyName: "navbarContentChild", first: true, predicate: NavbarContentComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
389
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavbarContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
390
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: NavbarContent, isStandalone: true, selector: "\n div[flowbiteNavbarContent]\n ", inputs: { customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root" } }, providers: [provideFlowbiteNavbarContentState()], exportAs: ["flowbiteNavbarContent"], ngImport: i0, template: `
391
+ <ul [class]="theme().container.root">
392
+ <ng-content />
393
+ </ul>
394
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
452
395
  }
453
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarComponent, decorators: [{
396
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavbarContent, decorators: [{
454
397
  type: Component,
455
398
  args: [{
456
399
  standalone: true,
457
- selector: 'flowbite-navbar',
458
- template: `<ng-content />`,
400
+ selector: `
401
+ div[flowbiteNavbarContent]
402
+ `,
403
+ exportAs: 'flowbiteNavbarContent',
404
+ hostDirectives: [],
405
+ imports: [],
406
+ providers: [provideFlowbiteNavbarContentState()],
407
+ host: { '[class]': `theme().host.root` },
408
+ template: `
409
+ <ul [class]="theme().container.root">
410
+ <ng-content />
411
+ </ul>
412
+ `,
459
413
  encapsulation: ViewEncapsulation.None,
460
414
  changeDetection: ChangeDetectionStrategy.OnPush,
461
415
  }]
462
416
  }] });
463
417
 
464
- const navbarTheme = createTheme({
465
- root: {
466
- base: 'flex flex-wrap items-center justify-between p-4',
418
+ const flowbiteNavbarToggleTheme = createTheme({
419
+ host: {
420
+ base: 'inline-flex cursor-pointer items-center justify-center rounded-lg p-2 text-sm md:hidden',
421
+ transition: '',
422
+ focus: 'data-focus:ring-0 data-focus:outline-none data-focus-visible:ring-2 data-focus-visible:outline-none',
423
+ disabled: 'data-disabled:cursor-not-allowed data-disabled:opacity-50',
424
+ size: {},
425
+ pill: {},
467
426
  color: {
468
- primary: 'bg-primary-200 dark:bg-primary-800 border-primary-200 dark:border-primary-700',
469
- gray: 'bg-white dark:bg-gray-800 border-gray-200 dark:border-gray-700',
470
- },
471
- isRounded: {
472
- enabled: 'rounded',
473
- disabled: '',
474
- },
475
- hasBorder: {
476
- enabled: 'border',
477
- disabled: '',
478
- },
479
- isFixed: {
480
- enabled: 'fixed w-full border-b',
481
- disabled: '',
427
+ default: {
428
+ light: 'text-gray-900',
429
+ dark: 'dark:text-gray-100',
430
+ },
431
+ info: {
432
+ light: 'text-blue-900',
433
+ dark: 'dark:text-blue-100',
434
+ },
435
+ failure: {
436
+ light: 'text-red-900',
437
+ dark: 'dark:text-red-100',
438
+ },
439
+ success: {
440
+ light: 'text-green-900',
441
+ dark: 'dark:text-green-100',
442
+ },
443
+ warning: {
444
+ light: 'text-yellow-900',
445
+ dark: 'dark:text-yellow-100',
446
+ },
447
+ primary: {
448
+ light: 'text-primary-900',
449
+ dark: 'dark:text-primary-100',
450
+ },
482
451
  },
452
+ colorOutline: {},
483
453
  },
484
454
  });
485
455
 
456
+ const defaultFlowbiteNavbarToggleConfig = {
457
+ baseTheme: flowbiteNavbarToggleTheme,
458
+ customTheme: {},
459
+ };
460
+ const FlowbiteNavbarToggleConfigToken = new InjectionToken('FlowbiteNavbarToggleConfigToken');
486
461
  /**
487
- * Default theme for `NavbarBrandComponent`
462
+ * Provide the default NavbarToggle configuration
463
+ * @param config The NavbarToggle configuration
464
+ * @returns The provider
488
465
  */
489
- const navbarBrandTheme = createTheme({
490
- root: {
491
- base: 'cursor-pointer flex items-center space-x-3 rtl:space-x-reverse',
466
+ const provideFlowbiteNavbarToggleConfig = (config) => [
467
+ {
468
+ provide: FlowbiteNavbarToggleConfigToken,
469
+ useValue: { ...defaultFlowbiteNavbarToggleConfig, ...config },
492
470
  },
493
- });
494
-
471
+ ];
495
472
  /**
496
- * Default theme for `NavbarContentComponent`
473
+ * Inject the NavbarToggle configuration
474
+ * @see {@link defaultFlowbiteNavbarToggleConfig}
475
+ * @returns The configuration
497
476
  */
498
- const navbarContentTheme = createTheme({
499
- root: {
500
- base: 'w-full md:!h-fit md:w-auto order-last md:order-none overflow-hidden',
501
- },
502
- list: {
503
- base: 'font-medium flex flex-col p-4 md:p-0 mt-4 items-center border border-gray-100 rounded-lg bg-gray-50 md:flex-row md:space-x-8 rtl:space-x-reverse md:mt-0 md:border-0 md:bg-white dark:bg-gray-900 md:dark:bg-gray-800 dark:border-gray-700',
504
- },
505
- });
477
+ const injectFlowbiteNavbarToggleConfig = () => inject(FlowbiteNavbarToggleConfigToken, { optional: true }) ?? defaultFlowbiteNavbarToggleConfig;
506
478
 
507
- /**
508
- * `InjectionToken` used to import `NavbarItemTheme` value
509
- *
510
- * @example
511
- * ```
512
- * var theme = inject(FLOWBITE_NAVBAR_ITEM_THEME_TOKEN)
513
- * ```
514
- */
515
- const FLOWBITE_NAVBAR_ITEM_THEME_TOKEN = new InjectionToken('FLOWBITE_NAVBAR_ITEM_THEME_TOKEN');
516
- class NavbarItemThemeService {
517
- constructor() {
518
- this.baseTheme = inject(FLOWBITE_NAVBAR_ITEM_THEME_TOKEN);
519
- }
520
- getClasses(properties) {
521
- const theme = mergeTheme(this.baseTheme, properties.customStyle);
522
- const output = {
523
- rootClass: twMerge(theme.root.base, theme.root.color[properties.color]),
524
- };
525
- return output;
526
- }
527
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarItemThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
528
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarItemThemeService, providedIn: 'root' }); }
529
- }
530
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarItemThemeService, decorators: [{
531
- type: Injectable,
532
- args: [{
533
- providedIn: 'root',
534
- }]
535
- }] });
479
+ const FlowbiteNavbarToggleStateToken = createStateToken('Flowbite NavbarToggle');
480
+ const provideFlowbiteNavbarToggleState = createStateProvider(FlowbiteNavbarToggleStateToken);
481
+ const injectFlowbiteNavbarToggleState = createStateInjector(FlowbiteNavbarToggleStateToken);
482
+ const flowbiteNavbarToggleState = createState(FlowbiteNavbarToggleStateToken);
536
483
 
537
- const FLOWBITE_NAVBAR_ITEM_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken('FLOWBITE_NAVBAR_ITEM_CUSTOM_STYLE_DEFAULT_VALUE');
538
- const navbarItemDefaultValueProvider = makeEnvironmentProviders([
539
- {
540
- provide: FLOWBITE_NAVBAR_ITEM_CUSTOM_STYLE_DEFAULT_VALUE,
541
- useValue: {},
542
- },
543
- ]);
544
- /**
545
- * @see https://flowbite.com/docs/components/navbar/
546
- */
547
- class NavbarItemComponent extends BaseComponent {
484
+ class NavbarToggle {
548
485
  constructor() {
549
- super(...arguments);
550
- /**
551
- * Optional `FlowbiteRouterLinkDirective` injected
552
- */
553
- this.flowbiteRouterLink = inject(FlowbiteRouterLinkDirective, { optional: true });
554
- /**
555
- * Optional `FlowbiteRouterLinkActiveDirective` injected
556
- */
557
- this.flowbiteRouterLinkActive = inject(FlowbiteRouterLinkActiveDirective, {
558
- optional: true,
559
- });
560
- /**
561
- * Service injected used to generate class
562
- */
563
- this.themeService = inject(NavbarItemThemeService);
564
- /**
565
- * The parent `NavbarContentComponent`
566
- */
567
- this.navbarContentComponent = inject(NavbarContentComponent);
568
- //#region properties
569
- /**
570
- * Set the navbar item color
571
- *
572
- * @default `NavbarContentComponent`'s color
573
- */
574
- this.color = model(this.navbarContentComponent.color());
575
- /**
576
- * Set the custom style for this navbar item
577
- */
578
- this.customStyle = model(inject(FLOWBITE_NAVBAR_ITEM_CUSTOM_STYLE_DEFAULT_VALUE));
579
- }
580
- //#endregion
581
- //#region BaseComponent implementation
582
- fetchClass() {
583
- return this.themeService.getClasses({
584
- color: this.color(),
585
- customStyle: this.customStyle(),
486
+ this.config = injectFlowbiteNavbarToggleConfig();
487
+ this.navbarState = injectFlowbiteNavbarState();
488
+ /**
489
+ * @see {@link injectFlowbiteNavbarToggleConfig}
490
+ */
491
+ this.customTheme = input(this.config.customTheme);
492
+ this.theme = computed(() => {
493
+ const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
494
+ return {
495
+ host: {
496
+ root: twMerge(mergedTheme.host.base, mergedTheme.host.transition, mergedTheme.host.focus, mergedTheme.host.disabled, colorToTheme(mergedTheme.host.color, this.navbarState().color())),
497
+ },
498
+ };
586
499
  });
500
+ this.state = flowbiteNavbarToggleState(this);
587
501
  }
588
- //#endregion
589
502
  /**
590
- * Toggle the nnavbar visibility (auto close when on mobile device)
503
+ * @internal
591
504
  */
592
505
  onClick() {
593
- this.navbarContentComponent.navbarComponent().toggleVisibility(false);
506
+ this.toggleNavbar();
507
+ }
508
+ /**
509
+ * @internal
510
+ */
511
+ toggleNavbar() {
512
+ this.navbarState().toggle();
594
513
  }
595
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
596
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.4", type: NavbarItemComponent, isStandalone: true, selector: "flowbite-navbar-item", 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: { listeners: { "click": "onClick()" } }, usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
514
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavbarToggle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
515
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: NavbarToggle, isStandalone: true, selector: "\n button[flowbiteNavbarToggle]\n ", inputs: { customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick()" }, properties: { "class": "theme().host.root" } }, providers: [provideFlowbiteNavbarToggleState(), provideIcons({ bars })], exportAs: ["flowbiteNavbarToggle"], hostDirectives: [{ directive: i1.BaseButton }], ngImport: i0 }); }
597
516
  }
598
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarItemComponent, decorators: [{
599
- type: Component,
517
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavbarToggle, decorators: [{
518
+ type: Directive,
600
519
  args: [{
601
520
  standalone: true,
602
- selector: 'flowbite-navbar-item',
603
- template: `<ng-content />`,
521
+ selector: `
522
+ button[flowbiteNavbarToggle]
523
+ `,
524
+ exportAs: 'flowbiteNavbarToggle',
525
+ hostDirectives: [
526
+ {
527
+ directive: BaseButton,
528
+ inputs: [],
529
+ outputs: [],
530
+ },
531
+ ],
532
+ providers: [provideFlowbiteNavbarToggleState(), provideIcons({ bars })],
604
533
  host: {
534
+ '[class]': `theme().host.root`,
605
535
  '(click)': 'onClick()',
606
536
  },
607
- encapsulation: ViewEncapsulation.None,
608
- changeDetection: ChangeDetectionStrategy.OnPush,
609
537
  }]
610
538
  }] });
611
539
 
612
- /**
613
- * Default theme for `NavbarItemComponent`
614
- */
615
- const navbarItemTheme = createTheme({
616
- root: {
617
- base: 'cursor-pointer block py-2 px-3 rounded text-sm text-gray-900 dark:text-white hover:bg-gray-100 dark:hover:bg-gray-700 md:hover:bg-transparent md:border-0 md:p-0 md:dark:hover:bg-transparent',
618
- color: {
619
- primary: 'md:hover:text-primary-700 md:dark:hover:text-primary-500 aria-current:text-primary-500 dark:aria-current:text-primary-300',
620
- gray: 'md:hover:text-gray-700 md:dark:hover:text-gray-500 aria-current:text-gray-500 dark:aria-current:text-gray-300',
621
- },
540
+ const flowbiteNavbarBrandTheme = createTheme({
541
+ host: {
542
+ base: 'flex cursor-pointer items-center space-x-3',
543
+ transition: '',
622
544
  },
623
545
  });
624
546
 
547
+ const defaultFlowbiteNavbarBrandConfig = {
548
+ baseTheme: flowbiteNavbarBrandTheme,
549
+ customTheme: {},
550
+ };
551
+ const FlowbiteNavbarBrandConfigToken = new InjectionToken('FlowbiteNavbarBrandConfigToken');
625
552
  /**
626
- * Default theme for `NavbarToggleComponent`
553
+ * Provide the default NavbarBrand configuration
554
+ * @param config The NavbarBrand configuration
555
+ * @returns The provider
627
556
  */
628
- const navbarToggleTheme = createTheme({
629
- root: {
630
- base: 'cursor-pointer inline-flex items-center p-2 w-10 h-10 justify-center text-sm text-gray-500 rounded-lg md:hidden hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:text-gray-400 dark:hover:bg-gray-700 dark:focus:ring-gray-600',
557
+ const provideFlowbiteNavbarBrandConfig = (config) => [
558
+ {
559
+ provide: FlowbiteNavbarBrandConfigToken,
560
+ useValue: { ...defaultFlowbiteNavbarBrandConfig, ...config },
631
561
  },
632
- });
633
-
562
+ ];
634
563
  /**
635
- * `InjectionToken` used to import `NavbarIconButtonTheme` value
636
- *
637
- * @example
638
- * ```
639
- * var theme = inject(FLOWBITE_NAVBAR_ICON_BUTTON_THEME_TOKEN)
640
- * ```
564
+ * Inject the NavbarBrand configuration
565
+ * @see {@link defaultFlowbiteNavbarBrandConfig}
566
+ * @returns The configuration
641
567
  */
642
- const FLOWBITE_NAVBAR_ICON_BUTTON_THEME_TOKEN = new InjectionToken('FLOWBITE_NAVBAR_ICON_BUTTON_THEME_TOKEN');
643
- class NavbarIconButtonThemeService {
568
+ const injectFlowbiteNavbarBrandConfig = () => inject(FlowbiteNavbarBrandConfigToken, { optional: true }) ?? defaultFlowbiteNavbarBrandConfig;
569
+
570
+ const FlowbiteNavbarBrandStateToken = createStateToken('Flowbite NavbarBrand');
571
+ const provideFlowbiteNavbarBrandState = createStateProvider(FlowbiteNavbarBrandStateToken);
572
+ const injectFlowbiteNavbarBrandState = createStateInjector(FlowbiteNavbarBrandStateToken);
573
+ const flowbiteNavbarBrandState = createState(FlowbiteNavbarBrandStateToken);
574
+
575
+ class NavbarBrand {
644
576
  constructor() {
645
- this.baseTheme = inject(FLOWBITE_NAVBAR_ICON_BUTTON_THEME_TOKEN);
646
- }
647
- getClasses(properties) {
648
- const theme = mergeTheme(this.baseTheme, properties.customStyle);
649
- const output = {
650
- rootClass: twMerge(theme.root.base, theme.root.color[properties.color]),
651
- };
652
- return output;
577
+ this.config = injectFlowbiteNavbarBrandConfig();
578
+ /**
579
+ * @see {@link injectFlowbiteNavbarBrandConfig}
580
+ */
581
+ this.customTheme = input(this.config.customTheme);
582
+ this.theme = computed(() => {
583
+ const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
584
+ return {
585
+ host: {
586
+ root: twMerge(mergedTheme.host.base, mergedTheme.host.transition),
587
+ },
588
+ };
589
+ });
590
+ this.state = flowbiteNavbarBrandState(this);
653
591
  }
654
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarIconButtonThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
655
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarIconButtonThemeService, providedIn: 'root' }); }
592
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavbarBrand, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
593
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: NavbarBrand, isStandalone: true, selector: "\n a[flowbiteNavbarBrand]\n ", inputs: { customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root", "attr.type": "button" } }, providers: [provideFlowbiteNavbarBrandState()], exportAs: ["flowbiteNavbarBrand"], ngImport: i0 }); }
656
594
  }
657
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarIconButtonThemeService, decorators: [{
658
- type: Injectable,
595
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavbarBrand, decorators: [{
596
+ type: Directive,
659
597
  args: [{
660
- providedIn: 'root',
598
+ standalone: true,
599
+ selector: `
600
+ a[flowbiteNavbarBrand]
601
+ `,
602
+ exportAs: 'flowbiteNavbarBrand',
603
+ hostDirectives: [],
604
+ providers: [provideFlowbiteNavbarBrandState()],
605
+ host: {
606
+ '[class]': `theme().host.root`,
607
+ '[attr.type]': 'button',
608
+ },
661
609
  }]
662
610
  }] });
663
611
 
664
- const FLOWBITE_NAVBAR_ICON_BUTTON_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken('FLOWBITE_NAVBAR_ICON_BUTTON_CUSTOM_STYLE_DEFAULT_VALUE');
665
- const navbarIconButtonDefaultValueProvider = makeEnvironmentProviders([
612
+ const flowbiteNavbarIconItemTheme = createTheme({
613
+ host: {
614
+ base: 'hidden cursor-pointer items-center justify-center rounded-lg p-2 text-sm sm:inline-flex',
615
+ transition: '',
616
+ focus: 'data-focus:ring-0 data-focus:outline-none data-focus-visible:ring-2 data-focus-visible:outline-none',
617
+ disabled: 'data-disabled:cursor-not-allowed data-disabled:opacity-50',
618
+ size: {},
619
+ pill: {},
620
+ color: {
621
+ default: {
622
+ light: 'text-gray-800 data-hover:text-gray-900',
623
+ dark: 'dark:text-white dark:data-hover:text-gray-100',
624
+ },
625
+ info: {
626
+ light: 'text-gray-800 data-hover:text-blue-900',
627
+ dark: 'dark:text-white dark:data-hover:text-blue-100',
628
+ },
629
+ failure: {
630
+ light: 'text-gray-800 data-hover:text-red-900',
631
+ dark: 'dark:text-white dark:data-hover:text-red-100',
632
+ },
633
+ success: {
634
+ light: 'text-gray-800 data-hover:text-green-900',
635
+ dark: 'dark:text-white dark:data-hover:text-green-100',
636
+ },
637
+ warning: {
638
+ light: 'text-gray-800 data-hover:text-yellow-900',
639
+ dark: 'dark:text-white dark:data-hover:text-yellow-100',
640
+ },
641
+ primary: {
642
+ light: 'data-hover:text-primary-900 text-gray-800',
643
+ dark: 'dark:data-hover:text-primary-100 dark:text-white',
644
+ },
645
+ },
646
+ colorOutline: {},
647
+ },
648
+ });
649
+
650
+ const defaultFlowbiteNavbarIconItemConfig = {
651
+ baseTheme: flowbiteNavbarIconItemTheme,
652
+ customTheme: {},
653
+ };
654
+ const FlowbiteNavbarIconItemConfigToken = new InjectionToken('FlowbiteNavbarIconItemConfigToken');
655
+ /**
656
+ * Provide the default NavbarIconItem configuration
657
+ * @param config The NavbarIconItem configuration
658
+ * @returns The provider
659
+ */
660
+ const provideFlowbiteNavbarIconItemConfig = (config) => [
666
661
  {
667
- provide: FLOWBITE_NAVBAR_ICON_BUTTON_CUSTOM_STYLE_DEFAULT_VALUE,
668
- useValue: {},
662
+ provide: FlowbiteNavbarIconItemConfigToken,
663
+ useValue: { ...defaultFlowbiteNavbarIconItemConfig, ...config },
669
664
  },
670
- ]);
665
+ ];
671
666
  /**
672
- * @see https://flowbite.com/docs/components/navbar/
667
+ * Inject the NavbarIconItem configuration
668
+ * @see {@link defaultFlowbiteNavbarIconItemConfig}
669
+ * @returns The configuration
673
670
  */
674
- class NavbarIconButtonComponent extends BaseComponent {
671
+ const injectFlowbiteNavbarIconItemConfig = () => inject(FlowbiteNavbarIconItemConfigToken, { optional: true }) ??
672
+ defaultFlowbiteNavbarIconItemConfig;
673
+
674
+ const FlowbiteNavbarIconItemStateToken = createStateToken('Flowbite NavbarIconItem');
675
+ const provideFlowbiteNavbarIconItemState = createStateProvider(FlowbiteNavbarIconItemStateToken);
676
+ const injectFlowbiteNavbarIconItemState = createStateInjector(FlowbiteNavbarIconItemStateToken);
677
+ const flowbiteNavbarIconItemState = createState(FlowbiteNavbarIconItemStateToken);
678
+
679
+ class NavbarIconItem {
675
680
  constructor() {
676
- super(...arguments);
677
- /**
678
- * Service injected used to generate class
679
- */
680
- this.themeService = inject(NavbarIconButtonThemeService);
681
- /**
682
- * The optional parent `NavbarComponent`
683
- */
684
- this.navbarComponent = inject(NavbarComponent, { optional: true });
685
- /**
686
- * The optional parent `NavbarContentComponent`
687
- */
688
- this.navbarContentComponent = inject(NavbarContentComponent, { optional: true });
689
- //#region properties
690
- /**
691
- * Set the navbar icon button color
692
- *
693
- * @default `NavbarContentComponent`'s color
694
- * @default `NavbarComponent`'s color
695
- */
696
- this.color = model(this.navbarContentComponent?.color() || this.navbarComponent.color());
681
+ this.baseButtonState = injectFlowbiteBaseButtonState();
682
+ this.navbarState = injectFlowbiteNavbarState();
683
+ this.config = injectFlowbiteNavbarIconItemConfig();
684
+ /**
685
+ * @see {@link injectFlowbiteNavbarIconItemConfig}
686
+ */
687
+ this.customTheme = input(this.config.customTheme);
688
+ this.theme = computed(() => {
689
+ const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
690
+ return {
691
+ host: {
692
+ root: twMerge(mergedTheme.host.base, mergedTheme.host.transition, mergedTheme.host.focus, mergedTheme.host.disabled, colorToTheme(mergedTheme.host.color, this.navbarState().color())),
693
+ },
694
+ };
695
+ });
697
696
  /**
698
- * Set the custom style for this navbar icon button
697
+ * @internal
699
698
  */
700
- this.customStyle = model(inject(FLOWBITE_NAVBAR_ICON_BUTTON_CUSTOM_STYLE_DEFAULT_VALUE));
701
- }
702
- //#endregion
703
- //#region BaseComponent implementation
704
- fetchClass() {
705
- return this.themeService.getClasses({
706
- color: this.color(),
707
- customStyle: this.customStyle(),
708
- });
699
+ this.state = flowbiteNavbarIconItemState(this);
709
700
  }
710
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarIconButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
711
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.4", type: NavbarIconButtonComponent, isStandalone: true, selector: "flowbite-navbar-icon-button", 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" }, usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
701
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavbarIconItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
702
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: NavbarIconItem, isStandalone: true, selector: "\n button[flowbiteNavbarIconItem],\n a[flowbiteNavbarIconItem],\n ", inputs: { customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root" } }, providers: [provideFlowbiteNavbarIconItemState()], exportAs: ["flowbiteNavbarIconItem"], hostDirectives: [{ directive: i1.BaseButton, inputs: ["color", "color"] }, { directive: i2.NgpButton, inputs: ["disabled", "disabled"] }, { directive: i3.NgpFocus, inputs: ["ngpFocusDisabled", "focusDisabled"], outputs: ["ngpFocus", "ngpFocus"] }], ngImport: i0 }); }
712
703
  }
713
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: NavbarIconButtonComponent, decorators: [{
714
- type: Component,
704
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavbarIconItem, decorators: [{
705
+ type: Directive,
715
706
  args: [{
716
707
  standalone: true,
717
- selector: 'flowbite-navbar-icon-button',
718
- template: `<ng-content />`,
719
- encapsulation: ViewEncapsulation.None,
720
- changeDetection: ChangeDetectionStrategy.OnPush,
708
+ selector: `
709
+ button[flowbiteNavbarIconItem],
710
+ a[flowbiteNavbarIconItem],
711
+ `,
712
+ exportAs: 'flowbiteNavbarIconItem',
713
+ hostDirectives: [
714
+ {
715
+ directive: BaseButton,
716
+ inputs: ['color:color'],
717
+ outputs: [],
718
+ },
719
+ {
720
+ directive: NgpButton,
721
+ inputs: ['disabled:disabled'],
722
+ outputs: [],
723
+ },
724
+ {
725
+ directive: NgpFocus,
726
+ inputs: ['ngpFocusDisabled:focusDisabled'],
727
+ outputs: ['ngpFocus'],
728
+ },
729
+ ],
730
+ providers: [provideFlowbiteNavbarIconItemState()],
731
+ host: { '[class]': `theme().host.root` },
721
732
  }]
722
733
  }] });
723
734
 
724
- /**
725
- * Default theme for `NavbarIconButtonComponent`
726
- */
727
- const navbarIconButtonTheme = createTheme({
728
- root: {
729
- base: 'cursor-pointer rounded-lg p-2.5 text-sm text-gray-500 hover:bg-gray-100 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:text-gray-400 dark:hover:bg-gray-700 dark:focus:ring-gray-700',
730
- color: {
731
- primary: 'text-primary-500 dark:text-primary-300',
732
- gray: 'text-gray-500 dark:text-gray-400',
733
- blue: 'text-blue-500 dark:text-blue-300',
734
- red: 'text-red-500 dark:text-red-300',
735
- green: 'text-green-500 dark:text-green-300',
736
- yellow: 'text-yellow-500 dark:text-yellow-300',
737
- },
738
- },
739
- });
735
+ /* Navbar */
740
736
 
741
737
  /**
742
738
  * Generated bundle index. Do not edit.
743
739
  */
744
740
 
745
- export { FLOWBITE_NAVBAR_BRAND_CUSTOM_STYLE_DEFAULT_VALUE, FLOWBITE_NAVBAR_BRAND_THEME_TOKEN, FLOWBITE_NAVBAR_COLOR_DEFAULT_VALUE, FLOWBITE_NAVBAR_CONTENT_CUSTOM_STYLE_DEFAULT_VALUE, FLOWBITE_NAVBAR_CONTENT_THEME_TOKEN, FLOWBITE_NAVBAR_CUSTOM_STYLE_DEFAULT_VALUE, FLOWBITE_NAVBAR_HAS_BORDER_DEFAULT_VALUE, FLOWBITE_NAVBAR_ICON_BUTTON_CUSTOM_STYLE_DEFAULT_VALUE, FLOWBITE_NAVBAR_ICON_BUTTON_THEME_TOKEN, FLOWBITE_NAVBAR_IS_FIXED_DEFAULT_VALUE, FLOWBITE_NAVBAR_IS_OPEN_DEFAULT_VALUE, FLOWBITE_NAVBAR_IS_ROUNDED_DEFAULT_VALUE, FLOWBITE_NAVBAR_ITEM_CUSTOM_STYLE_DEFAULT_VALUE, FLOWBITE_NAVBAR_ITEM_THEME_TOKEN, FLOWBITE_NAVBAR_THEME_TOKEN, FLOWBITE_NAVBAR_TOGGLE_CUSTOM_STYLE_DEFAULT_VALUE, FLOWBITE_NAVBAR_TOGGLE_THEME_TOKEN, NavbarBrandComponent, NavbarBrandThemeService, NavbarComponent, NavbarContentComponent, NavbarContentThemeService, NavbarIconButtonComponent, NavbarIconButtonThemeService, NavbarItemComponent, NavbarItemThemeService, NavbarThemeService, NavbarToggleComponent, NavbarToggleThemeService, navbarBrandDefaultThemeProvider, navbarBrandTheme, navbarContentDefaultValueProvider, navbarContentTheme, navbarDefaultValueProvider, navbarIconButtonDefaultValueProvider, navbarIconButtonTheme, navbarItemDefaultValueProvider, navbarItemTheme, navbarTheme, navbarToggleDefaultValueProvider, navbarToggleTheme };
741
+ export { FlowbiteNavbarBrandConfigToken, FlowbiteNavbarBrandStateToken, FlowbiteNavbarConfigToken, FlowbiteNavbarContentConfigToken, FlowbiteNavbarContentStateToken, FlowbiteNavbarIconItemConfigToken, FlowbiteNavbarIconItemStateToken, FlowbiteNavbarItemConfigToken, FlowbiteNavbarItemStateToken, FlowbiteNavbarStateToken, FlowbiteNavbarToggleConfigToken, FlowbiteNavbarToggleStateToken, Navbar, NavbarBrand, NavbarContent, NavbarIconItem, NavbarItem, NavbarToggle, defaultFlowbiteNavbarBrandConfig, defaultFlowbiteNavbarConfig, defaultFlowbiteNavbarContentConfig, defaultFlowbiteNavbarIconItemConfig, defaultFlowbiteNavbarItemConfig, defaultFlowbiteNavbarToggleConfig, flowbiteNavbarBrandState, flowbiteNavbarBrandTheme, flowbiteNavbarContentState, flowbiteNavbarContentTheme, flowbiteNavbarIconItemState, flowbiteNavbarIconItemTheme, flowbiteNavbarItemState, flowbiteNavbarItemTheme, flowbiteNavbarState, flowbiteNavbarTheme, flowbiteNavbarToggleState, flowbiteNavbarToggleTheme, injectFlowbiteNavbarBrandConfig, injectFlowbiteNavbarBrandState, injectFlowbiteNavbarConfig, injectFlowbiteNavbarContentConfig, injectFlowbiteNavbarContentState, injectFlowbiteNavbarIconItemConfig, injectFlowbiteNavbarIconItemState, injectFlowbiteNavbarItemConfig, injectFlowbiteNavbarItemState, injectFlowbiteNavbarState, injectFlowbiteNavbarToggleConfig, injectFlowbiteNavbarToggleState, provideFlowbiteNavbarBrandConfig, provideFlowbiteNavbarBrandState, provideFlowbiteNavbarConfig, provideFlowbiteNavbarContentConfig, provideFlowbiteNavbarContentState, provideFlowbiteNavbarIconItemConfig, provideFlowbiteNavbarIconItemState, provideFlowbiteNavbarItemConfig, provideFlowbiteNavbarItemState, provideFlowbiteNavbarState, provideFlowbiteNavbarToggleConfig, provideFlowbiteNavbarToggleState };
746
742
  //# sourceMappingURL=flowbite-angular-navbar.mjs.map