flowbite-angular 1.0.0-alpha.2 → 1.0.0-alpha.4

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 (582) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +376 -0
  3. package/accordion/README.md +3 -0
  4. package/{lib/components/accordion → accordion}/accordion-content.component.d.ts +1 -1
  5. package/{lib/components/accordion → accordion}/accordion-content.theme.d.ts +1 -1
  6. package/{lib/components/accordion → accordion}/accordion-content.theme.service.d.ts +1 -1
  7. package/{lib/components/accordion → accordion}/accordion-panel.component.d.ts +1 -1
  8. package/{lib/components/accordion → accordion}/accordion-panel.theme.d.ts +1 -1
  9. package/{lib/components/accordion → accordion}/accordion-panel.theme.service.d.ts +1 -1
  10. package/{lib/components/accordion → accordion}/accordion-title.component.d.ts +2 -2
  11. package/{lib/components/accordion → accordion}/accordion-title.theme.d.ts +1 -2
  12. package/{lib/components/accordion → accordion}/accordion-title.theme.service.d.ts +1 -1
  13. package/{lib/components/accordion → accordion}/accordion.component.d.ts +1 -1
  14. package/{lib/components/accordion → accordion}/accordion.theme.d.ts +1 -4
  15. package/{lib/components/accordion → accordion}/accordion.theme.service.d.ts +1 -1
  16. package/alert/README.md +3 -0
  17. package/{lib/components/alert → alert}/alert.component.d.ts +5 -5
  18. package/{lib/components/alert → alert}/alert.theme.d.ts +1 -4
  19. package/{lib/components/alert → alert}/alert.theme.service.d.ts +1 -1
  20. package/badge/README.md +3 -0
  21. package/{lib/components/badge → badge}/badge.component.d.ts +4 -4
  22. package/{lib/components/badge → badge}/badge.theme.d.ts +1 -6
  23. package/{lib/components/badge → badge}/badge.theme.service.d.ts +1 -1
  24. package/{lib/components/base-component.directive.d.ts → base-component.directive.d.ts} +2 -2
  25. package/breadcrumb/README.md +3 -0
  26. package/{lib/components/breadcrumb → breadcrumb}/breadcrumb-item.component.d.ts +4 -4
  27. package/{lib/components/breadcrumb → breadcrumb}/breadcrumb-item.theme.d.ts +1 -2
  28. package/{lib/components/breadcrumb → breadcrumb}/breadcrumb-item.theme.service.d.ts +1 -1
  29. package/{lib/components/breadcrumb → breadcrumb}/breadcrumb.component.d.ts +1 -1
  30. package/{lib/components/breadcrumb → breadcrumb}/breadcrumb.theme.d.ts +1 -1
  31. package/{lib/components/breadcrumb → breadcrumb}/breadcrumb.theme.service.d.ts +1 -1
  32. package/button/README.md +3 -0
  33. package/{lib/components/button → button}/button.component.d.ts +2 -2
  34. package/{lib/components/button → button}/button.theme.d.ts +1 -8
  35. package/{lib/components/button → button}/button.theme.service.d.ts +1 -1
  36. package/core/README.md +3 -0
  37. package/core/index.d.ts +1 -0
  38. package/dark-theme-toggle/README.md +3 -0
  39. package/{lib/components/dark-theme-toggle → dark-theme-toggle}/dark-theme-toggle.component.d.ts +2 -2
  40. package/{lib/components/dark-theme-toggle → dark-theme-toggle}/dark-theme-toggle.theme.d.ts +1 -1
  41. package/{lib/components/dark-theme-toggle → dark-theme-toggle}/dark-theme-toggle.theme.service.d.ts +1 -1
  42. package/{lib/components/dark-theme-toggle → dark-theme-toggle}/index.d.ts +1 -2
  43. package/dropdown/README.md +3 -0
  44. package/{lib/components/dropdown → dropdown}/dropdown-divider.component.d.ts +1 -1
  45. package/{lib/components/dropdown → dropdown}/dropdown-divider.theme.d.ts +1 -1
  46. package/{lib/components/dropdown → dropdown}/dropdown-divider.theme.service.d.ts +1 -1
  47. package/{lib/components/dropdown → dropdown}/dropdown-header.component.d.ts +1 -1
  48. package/{lib/components/dropdown → dropdown}/dropdown-header.theme.d.ts +1 -1
  49. package/{lib/components/dropdown → dropdown}/dropdown-header.theme.service.d.ts +1 -1
  50. package/{lib/components/dropdown → dropdown}/dropdown-item.component.d.ts +1 -1
  51. package/{lib/components/dropdown → dropdown}/dropdown-item.theme.d.ts +1 -1
  52. package/{lib/components/dropdown → dropdown}/dropdown-item.theme.service.d.ts +1 -1
  53. package/{lib/components/dropdown → dropdown}/dropdown.component.d.ts +2 -2
  54. package/{lib/components/dropdown → dropdown}/dropdown.theme.d.ts +1 -4
  55. package/{lib/components/dropdown → dropdown}/dropdown.theme.service.d.ts +1 -1
  56. package/esm2022/accordion/accordion-content.component.mjs +47 -0
  57. package/esm2022/accordion/accordion-content.theme.mjs +19 -0
  58. package/esm2022/accordion/accordion-content.theme.service.mjs +17 -0
  59. package/esm2022/accordion/accordion-panel.component.mjs +59 -0
  60. package/esm2022/accordion/accordion-panel.theme.mjs +7 -0
  61. package/esm2022/accordion/accordion-panel.theme.service.mjs +17 -0
  62. package/esm2022/accordion/accordion-title.component.mjs +71 -0
  63. package/esm2022/accordion/accordion-title.theme.mjs +26 -0
  64. package/esm2022/accordion/accordion-title.theme.service.mjs +18 -0
  65. package/esm2022/accordion/accordion.component.mjs +50 -0
  66. package/esm2022/accordion/accordion.theme.mjs +19 -0
  67. package/esm2022/accordion/accordion.theme.service.mjs +17 -0
  68. package/esm2022/accordion/flowbite-angular-accordion.mjs +5 -0
  69. package/esm2022/accordion/index.mjs +13 -0
  70. package/esm2022/alert/alert.component.mjs +96 -0
  71. package/esm2022/alert/alert.theme.mjs +34 -0
  72. package/esm2022/alert/alert.theme.service.mjs +18 -0
  73. package/esm2022/alert/flowbite-angular-alert.mjs +5 -0
  74. package/esm2022/alert/index.mjs +4 -0
  75. package/esm2022/badge/badge.component.mjs +48 -0
  76. package/esm2022/badge/badge.theme.mjs +34 -0
  77. package/esm2022/badge/badge.theme.service.mjs +19 -0
  78. package/esm2022/badge/flowbite-angular-badge.mjs +5 -0
  79. package/esm2022/badge/index.mjs +4 -0
  80. package/esm2022/base-component.directive.mjs +34 -0
  81. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +59 -0
  82. package/esm2022/breadcrumb/breadcrumb-item.theme.mjs +18 -0
  83. package/esm2022/breadcrumb/breadcrumb-item.theme.service.mjs +18 -0
  84. package/esm2022/breadcrumb/breadcrumb.component.mjs +48 -0
  85. package/esm2022/breadcrumb/breadcrumb.theme.mjs +7 -0
  86. package/esm2022/breadcrumb/breadcrumb.theme.service.mjs +17 -0
  87. package/esm2022/breadcrumb/flowbite-angular-breadcrumb.mjs +5 -0
  88. package/esm2022/breadcrumb/index.mjs +7 -0
  89. package/esm2022/{lib/components/button → button}/button.component.mjs +6 -5
  90. package/esm2022/button/button.theme.mjs +113 -0
  91. package/esm2022/button/button.theme.service.mjs +24 -0
  92. package/esm2022/button/flowbite-angular-button.mjs +5 -0
  93. package/esm2022/button/index.mjs +4 -0
  94. package/esm2022/core/flowbite-angular-core.mjs +5 -0
  95. package/esm2022/core/flowbite.theme.init.mjs +281 -0
  96. package/esm2022/core/index.mjs +2 -0
  97. package/esm2022/{lib/components/dark-theme-toggle → dark-theme-toggle}/dark-theme-toggle.component.mjs +8 -6
  98. package/esm2022/dark-theme-toggle/dark-theme-toggle.theme.mjs +7 -0
  99. package/esm2022/dark-theme-toggle/dark-theme-toggle.theme.service.mjs +17 -0
  100. package/esm2022/dark-theme-toggle/flowbite-angular-dark-theme-toggle.mjs +5 -0
  101. package/esm2022/dark-theme-toggle/index.mjs +4 -0
  102. package/esm2022/dropdown/dropdown-divider.component.mjs +36 -0
  103. package/esm2022/dropdown/dropdown-divider.theme.mjs +7 -0
  104. package/esm2022/dropdown/dropdown-divider.theme.service.mjs +17 -0
  105. package/esm2022/dropdown/dropdown-header.component.mjs +46 -0
  106. package/esm2022/dropdown/dropdown-header.theme.mjs +10 -0
  107. package/esm2022/dropdown/dropdown-header.theme.service.mjs +18 -0
  108. package/esm2022/dropdown/dropdown-item.component.mjs +36 -0
  109. package/esm2022/dropdown/dropdown-item.theme.mjs +6 -0
  110. package/esm2022/dropdown/dropdown-item.theme.service.mjs +17 -0
  111. package/esm2022/dropdown/dropdown.component.mjs +150 -0
  112. package/esm2022/dropdown/dropdown.theme.mjs +32 -0
  113. package/esm2022/dropdown/dropdown.theme.service.mjs +22 -0
  114. package/esm2022/dropdown/flowbite-angular-dropdown.mjs +5 -0
  115. package/esm2022/dropdown/index.mjs +13 -0
  116. package/esm2022/flowbite-angular.mjs +2 -2
  117. package/esm2022/flowbite.theme.service.mjs +16 -0
  118. package/esm2022/icon/flowbite-angular-icon.mjs +5 -0
  119. package/esm2022/icon/icon-registry.mjs +159 -0
  120. package/esm2022/icon/icon.component.mjs +72 -0
  121. package/esm2022/icon/index.mjs +4 -0
  122. package/esm2022/icon/trusted-types.mjs +21 -0
  123. package/esm2022/index.mjs +4 -0
  124. package/esm2022/indicator/flowbite-angular-indicator.mjs +5 -0
  125. package/esm2022/indicator/index.mjs +4 -0
  126. package/esm2022/indicator/indicators.component.mjs +55 -0
  127. package/esm2022/indicator/indicators.theme.mjs +68 -0
  128. package/esm2022/indicator/indicators.theme.service.mjs +19 -0
  129. package/esm2022/modal/flowbite-angular-modal.mjs +5 -0
  130. package/esm2022/modal/index.mjs +13 -0
  131. package/esm2022/modal/modal-body.component.mjs +36 -0
  132. package/esm2022/modal/modal-body.theme.mjs +7 -0
  133. package/esm2022/modal/modal-body.theme.service.mjs +17 -0
  134. package/esm2022/modal/modal-footer.component.mjs +36 -0
  135. package/esm2022/modal/modal-footer.theme.mjs +7 -0
  136. package/esm2022/modal/modal-footer.theme.service.mjs +17 -0
  137. package/esm2022/modal/modal-header.component.mjs +68 -0
  138. package/esm2022/modal/modal-header.theme.mjs +13 -0
  139. package/esm2022/modal/modal-header.theme.service.mjs +19 -0
  140. package/esm2022/modal/modal.component.mjs +143 -0
  141. package/esm2022/modal/modal.theme.mjs +33 -0
  142. package/esm2022/modal/modal.theme.service.mjs +20 -0
  143. package/esm2022/navbar/flowbite-angular-navbar.mjs +5 -0
  144. package/esm2022/navbar/index.mjs +19 -0
  145. package/esm2022/navbar/navbar-brand.component.mjs +36 -0
  146. package/esm2022/navbar/navbar-brand.theme.mjs +7 -0
  147. package/esm2022/navbar/navbar-brand.theme.service.mjs +17 -0
  148. package/esm2022/navbar/navbar-content.component.mjs +46 -0
  149. package/esm2022/navbar/navbar-content.theme.mjs +14 -0
  150. package/esm2022/navbar/navbar-content.theme.service.mjs +18 -0
  151. package/esm2022/navbar/navbar-icon-button.component.mjs +44 -0
  152. package/esm2022/navbar/navbar-icon-button.theme.mjs +15 -0
  153. package/esm2022/navbar/navbar-icon-button.theme.service.mjs +17 -0
  154. package/esm2022/navbar/navbar-item.component.mjs +51 -0
  155. package/esm2022/{lib/components/navbar → navbar}/navbar-item.theme.mjs +2 -2
  156. package/esm2022/navbar/navbar-item.theme.service.mjs +17 -0
  157. package/esm2022/navbar/navbar-toggle.component.mjs +52 -0
  158. package/esm2022/navbar/navbar-toggle.theme.mjs +7 -0
  159. package/esm2022/navbar/navbar-toggle.theme.service.mjs +17 -0
  160. package/esm2022/navbar/navbar.component.mjs +63 -0
  161. package/esm2022/navbar/navbar.theme.mjs +23 -0
  162. package/esm2022/navbar/navbar.theme.service.mjs +17 -0
  163. package/esm2022/router-link/flowbite-angular-router-link.mjs +5 -0
  164. package/esm2022/router-link/flowbite-router-link.directive.mjs +54 -0
  165. package/esm2022/router-link/index.mjs +2 -0
  166. package/esm2022/router-link-active/flowbite-angular-router-link-active.mjs +5 -0
  167. package/esm2022/router-link-active/flowbite-router-link-active.directive.mjs +49 -0
  168. package/esm2022/router-link-active/index.mjs +2 -0
  169. package/esm2022/sanitize-html/flowbite-angular-sanitize-html.mjs +5 -0
  170. package/esm2022/sanitize-html/index.mjs +2 -0
  171. package/esm2022/sanitize-html/sanitize-html.pipe.mjs +32 -0
  172. package/esm2022/scroll-top/flowbite-angular-scroll-top.mjs +5 -0
  173. package/esm2022/scroll-top/index.mjs +4 -0
  174. package/esm2022/scroll-top/scroll-top.component.mjs +52 -0
  175. package/esm2022/scroll-top/scroll-top.theme.mjs +27 -0
  176. package/esm2022/scroll-top/scroll-top.theme.service.mjs +17 -0
  177. package/esm2022/sidebar/flowbite-angular-sidebar.mjs +5 -0
  178. package/esm2022/sidebar/index.mjs +19 -0
  179. package/esm2022/sidebar/sidebar-item-group.component.mjs +83 -0
  180. package/esm2022/sidebar/sidebar-item-group.theme.mjs +18 -0
  181. package/esm2022/sidebar/sidebar-item-group.theme.service.mjs +18 -0
  182. package/esm2022/sidebar/sidebar-item.component.mjs +79 -0
  183. package/esm2022/sidebar/sidebar-item.theme.mjs +18 -0
  184. package/esm2022/sidebar/sidebar-item.theme.service.mjs +18 -0
  185. package/esm2022/sidebar/sidebar-menu.component.mjs +50 -0
  186. package/esm2022/sidebar/sidebar-menu.theme.mjs +24 -0
  187. package/esm2022/sidebar/sidebar-menu.theme.service.mjs +17 -0
  188. package/esm2022/sidebar/sidebar-page-content.component.mjs +37 -0
  189. package/esm2022/sidebar/sidebar-page-content.theme.mjs +12 -0
  190. package/esm2022/sidebar/sidebar-page-content.theme.service.mjs +17 -0
  191. package/esm2022/sidebar/sidebar-toggle.component.mjs +55 -0
  192. package/esm2022/sidebar/sidebar-toggle.theme.mjs +18 -0
  193. package/esm2022/sidebar/sidebar-toggle.theme.service.mjs +17 -0
  194. package/esm2022/sidebar/sidebar.component.mjs +62 -0
  195. package/esm2022/sidebar/sidebar.theme.mjs +11 -0
  196. package/esm2022/sidebar/sidebar.theme.service.mjs +17 -0
  197. package/esm2022/type-definitions/colors/flowbite.colors.mjs +2 -0
  198. package/esm2022/type-definitions/colors/flowbite.gradient-colors.mjs +2 -0
  199. package/esm2022/type-definitions/colors/flowbite.gradient-duo-tone-colors.mjs +2 -0
  200. package/esm2022/type-definitions/colors/index.mjs +2 -0
  201. package/esm2022/type-definitions/flowbite.boolean.mjs +10 -0
  202. package/esm2022/type-definitions/flowbite.class.mjs +2 -0
  203. package/esm2022/type-definitions/flowbite.combination.mjs +5 -0
  204. package/esm2022/type-definitions/flowbite.content-positions.mjs +2 -0
  205. package/esm2022/type-definitions/flowbite.deep-partial.mjs +2 -0
  206. package/esm2022/type-definitions/flowbite.heading-levels.mjs +2 -0
  207. package/esm2022/type-definitions/flowbite.positions.mjs +2 -0
  208. package/esm2022/type-definitions/flowbite.router-link-parameter.mjs +2 -0
  209. package/esm2022/type-definitions/flowbite.sizes.mjs +2 -0
  210. package/esm2022/type-definitions/flowbite.themes.mjs +2 -0
  211. package/esm2022/type-definitions/index.mjs +3 -0
  212. package/esm2022/utils/flowbite-angular-utils.mjs +5 -0
  213. package/esm2022/utils/icon.list.mjs +39 -0
  214. package/esm2022/utils/id.generator.mjs +81 -0
  215. package/esm2022/utils/index.mjs +9 -0
  216. package/esm2022/utils/theme/clone-deep.mjs +18 -0
  217. package/esm2022/utils/theme/create-class.mjs +10 -0
  218. package/esm2022/utils/theme/create-theme.mjs +10 -0
  219. package/esm2022/utils/theme/is-object.mjs +10 -0
  220. package/esm2022/utils/theme/merge-theme.mjs +29 -0
  221. package/esm2022/utils/theme/to-string.mjs +10 -0
  222. package/fesm2022/flowbite-angular-accordion.mjs +338 -0
  223. package/fesm2022/flowbite-angular-accordion.mjs.map +1 -0
  224. package/fesm2022/flowbite-angular-alert.mjs +151 -0
  225. package/fesm2022/flowbite-angular-alert.mjs.map +1 -0
  226. package/fesm2022/flowbite-angular-badge.mjs +105 -0
  227. package/fesm2022/flowbite-angular-badge.mjs.map +1 -0
  228. package/fesm2022/flowbite-angular-breadcrumb.mjs +159 -0
  229. package/fesm2022/flowbite-angular-breadcrumb.mjs.map +1 -0
  230. package/fesm2022/flowbite-angular-button.mjs +223 -0
  231. package/fesm2022/flowbite-angular-button.mjs.map +1 -0
  232. package/fesm2022/flowbite-angular-core.mjs +288 -0
  233. package/fesm2022/flowbite-angular-core.mjs.map +1 -0
  234. package/fesm2022/flowbite-angular-dark-theme-toggle.mjs +105 -0
  235. package/fesm2022/flowbite-angular-dark-theme-toggle.mjs.map +1 -0
  236. package/fesm2022/flowbite-angular-dropdown.mjs +368 -0
  237. package/fesm2022/flowbite-angular-dropdown.mjs.map +1 -0
  238. package/fesm2022/flowbite-angular-icon.mjs +254 -0
  239. package/fesm2022/flowbite-angular-icon.mjs.map +1 -0
  240. package/fesm2022/flowbite-angular-indicator.mjs +146 -0
  241. package/fesm2022/flowbite-angular-indicator.mjs.map +1 -0
  242. package/fesm2022/flowbite-angular-modal.mjs +386 -0
  243. package/fesm2022/flowbite-angular-modal.mjs.map +1 -0
  244. package/fesm2022/flowbite-angular-navbar.mjs +422 -0
  245. package/fesm2022/flowbite-angular-navbar.mjs.map +1 -0
  246. package/fesm2022/flowbite-angular-router-link-active.mjs +56 -0
  247. package/fesm2022/flowbite-angular-router-link-active.mjs.map +1 -0
  248. package/fesm2022/flowbite-angular-router-link.mjs +61 -0
  249. package/fesm2022/flowbite-angular-router-link.mjs.map +1 -0
  250. package/fesm2022/flowbite-angular-sanitize-html.mjs +39 -0
  251. package/fesm2022/flowbite-angular-sanitize-html.mjs.map +1 -0
  252. package/fesm2022/flowbite-angular-scroll-top.mjs +99 -0
  253. package/fesm2022/flowbite-angular-scroll-top.mjs.map +1 -0
  254. package/fesm2022/flowbite-angular-sidebar.mjs +518 -0
  255. package/fesm2022/flowbite-angular-sidebar.mjs.map +1 -0
  256. package/fesm2022/flowbite-angular-utils.mjs +210 -0
  257. package/fesm2022/flowbite-angular-utils.mjs.map +1 -0
  258. package/fesm2022/flowbite-angular.mjs +13 -4176
  259. package/fesm2022/flowbite-angular.mjs.map +1 -1
  260. package/{lib/services/flowbite.theme.service.d.ts → flowbite.theme.service.d.ts} +1 -1
  261. package/icon/README.md +3 -0
  262. package/{lib/components/icon → icon}/icon.component.d.ts +2 -2
  263. package/index.d.ts +3 -5
  264. package/indicator/README.md +3 -0
  265. package/{lib/components/indicators → indicator}/indicators.component.d.ts +14 -14
  266. package/{lib/components/indicators → indicator}/indicators.theme.d.ts +1 -6
  267. package/{lib/components/indicators → indicator}/indicators.theme.service.d.ts +1 -1
  268. package/modal/README.md +3 -0
  269. package/{lib/components/modal → modal}/modal-body.component.d.ts +1 -1
  270. package/{lib/components/modal → modal}/modal-body.theme.d.ts +1 -1
  271. package/{lib/components/modal → modal}/modal-body.theme.service.d.ts +1 -1
  272. package/{lib/components/modal → modal}/modal-footer.component.d.ts +1 -1
  273. package/{lib/components/modal → modal}/modal-footer.theme.d.ts +1 -1
  274. package/{lib/components/modal → modal}/modal-footer.theme.service.d.ts +1 -1
  275. package/{lib/components/modal → modal}/modal-header.component.d.ts +2 -2
  276. package/{lib/components/modal → modal}/modal-header.theme.d.ts +1 -1
  277. package/{lib/components/modal → modal}/modal-header.theme.service.d.ts +1 -1
  278. package/{lib/components/modal → modal}/modal.component.d.ts +6 -6
  279. package/{lib/components/modal → modal}/modal.theme.d.ts +1 -5
  280. package/{lib/components/modal → modal}/modal.theme.service.d.ts +1 -1
  281. package/navbar/README.md +3 -0
  282. package/{lib/components/navbar → navbar}/navbar-brand.component.d.ts +1 -1
  283. package/{lib/components/navbar → navbar}/navbar-brand.theme.d.ts +1 -1
  284. package/{lib/components/navbar → navbar}/navbar-brand.theme.service.d.ts +1 -1
  285. package/{lib/components/navbar → navbar}/navbar-content.component.d.ts +1 -1
  286. package/{lib/components/navbar → navbar}/navbar-content.theme.d.ts +1 -1
  287. package/{lib/components/navbar → navbar}/navbar-content.theme.service.d.ts +1 -1
  288. package/{lib/components/navbar → navbar}/navbar-icon-button.component.d.ts +1 -1
  289. package/{lib/components/navbar → navbar}/navbar-icon-button.theme.d.ts +1 -1
  290. package/{lib/components/navbar → navbar}/navbar-icon-button.theme.service.d.ts +1 -1
  291. package/{lib/components/navbar → navbar}/navbar-item.component.d.ts +3 -3
  292. package/{lib/components/navbar → navbar}/navbar-item.theme.d.ts +1 -2
  293. package/{lib/components/navbar → navbar}/navbar-item.theme.service.d.ts +1 -1
  294. package/{lib/components/navbar → navbar}/navbar-toggle.component.d.ts +2 -2
  295. package/{lib/components/navbar → navbar}/navbar-toggle.theme.d.ts +1 -1
  296. package/{lib/components/navbar → navbar}/navbar-toggle.theme.service.d.ts +1 -1
  297. package/{lib/components/navbar → navbar}/navbar.component.d.ts +1 -1
  298. package/{lib/components/navbar → navbar}/navbar.theme.d.ts +1 -4
  299. package/{lib/components/navbar → navbar}/navbar.theme.service.d.ts +1 -1
  300. package/package.json +110 -2
  301. package/router-link/README.md +3 -0
  302. package/router-link/index.d.ts +1 -0
  303. package/router-link-active/README.md +3 -0
  304. package/{lib/directives → router-link-active}/index.d.ts +0 -1
  305. package/sanitize-html/README.md +3 -0
  306. package/scroll-top/README.md +3 -0
  307. package/{lib/components/scroll-top → scroll-top}/scroll-top.component.d.ts +7 -7
  308. package/{lib/components/scroll-top → scroll-top}/scroll-top.theme.d.ts +1 -1
  309. package/{lib/components/scroll-top → scroll-top}/scroll-top.theme.service.d.ts +1 -1
  310. package/sidebar/README.md +3 -0
  311. package/{lib/components/sidebar → sidebar}/sidebar-item-group.component.d.ts +3 -3
  312. package/{lib/components/sidebar → sidebar}/sidebar-item-group.theme.d.ts +1 -1
  313. package/{lib/components/sidebar → sidebar}/sidebar-item-group.theme.service.d.ts +1 -1
  314. package/{lib/components/sidebar → sidebar}/sidebar-item.component.d.ts +4 -4
  315. package/{lib/components/sidebar → sidebar}/sidebar-item.theme.d.ts +1 -2
  316. package/{lib/components/sidebar → sidebar}/sidebar-item.theme.service.d.ts +1 -1
  317. package/{lib/components/sidebar → sidebar}/sidebar-menu.component.d.ts +2 -2
  318. package/{lib/components/sidebar → sidebar}/sidebar-menu.theme.d.ts +1 -1
  319. package/{lib/components/sidebar → sidebar}/sidebar-menu.theme.service.d.ts +1 -1
  320. package/{lib/components/sidebar → sidebar}/sidebar-page-content.component.d.ts +1 -1
  321. package/{lib/components/sidebar → sidebar}/sidebar-page-content.theme.d.ts +1 -1
  322. package/{lib/components/sidebar → sidebar}/sidebar-page-content.theme.service.d.ts +1 -1
  323. package/{lib/components/sidebar → sidebar}/sidebar-toggle.component.d.ts +3 -3
  324. package/{lib/components/sidebar → sidebar}/sidebar-toggle.theme.d.ts +1 -1
  325. package/{lib/components/sidebar → sidebar}/sidebar-toggle.theme.service.d.ts +1 -1
  326. package/{lib/components/sidebar → sidebar}/sidebar.component.d.ts +1 -1
  327. package/{lib/components/sidebar → sidebar}/sidebar.theme.d.ts +1 -4
  328. package/{lib/components/sidebar → sidebar}/sidebar.theme.service.d.ts +1 -1
  329. package/tailwind.config.js +306 -0
  330. package/{lib/utils/boolean.util.d.ts → type-definitions/flowbite.boolean.d.ts} +7 -1
  331. package/{lib/common/type-definitions → type-definitions}/index.d.ts +1 -0
  332. package/utils/README.md +3 -0
  333. package/{lib/utils → utils}/index.d.ts +1 -1
  334. package/esm2022/lib/common/flowbite.theme.init.mjs +0 -318
  335. package/esm2022/lib/common/index.mjs +0 -3
  336. package/esm2022/lib/common/type-definitions/colors/flowbite.colors.mjs +0 -2
  337. package/esm2022/lib/common/type-definitions/colors/flowbite.gradient-colors.mjs +0 -2
  338. package/esm2022/lib/common/type-definitions/colors/flowbite.gradient-duo-tone-colors.mjs +0 -2
  339. package/esm2022/lib/common/type-definitions/colors/index.mjs +0 -2
  340. package/esm2022/lib/common/type-definitions/flowbite.boolean.mjs +0 -2
  341. package/esm2022/lib/common/type-definitions/flowbite.class.mjs +0 -2
  342. package/esm2022/lib/common/type-definitions/flowbite.combination.mjs +0 -5
  343. package/esm2022/lib/common/type-definitions/flowbite.content-positions.mjs +0 -2
  344. package/esm2022/lib/common/type-definitions/flowbite.deep-partial.mjs +0 -2
  345. package/esm2022/lib/common/type-definitions/flowbite.heading-levels.mjs +0 -2
  346. package/esm2022/lib/common/type-definitions/flowbite.positions.mjs +0 -2
  347. package/esm2022/lib/common/type-definitions/flowbite.router-link-parameter.mjs +0 -2
  348. package/esm2022/lib/common/type-definitions/flowbite.sizes.mjs +0 -2
  349. package/esm2022/lib/common/type-definitions/flowbite.themes.mjs +0 -2
  350. package/esm2022/lib/common/type-definitions/index.mjs +0 -2
  351. package/esm2022/lib/components/accordion/accordion-content.component.mjs +0 -46
  352. package/esm2022/lib/components/accordion/accordion-content.theme.mjs +0 -19
  353. package/esm2022/lib/components/accordion/accordion-content.theme.service.mjs +0 -17
  354. package/esm2022/lib/components/accordion/accordion-panel.component.mjs +0 -57
  355. package/esm2022/lib/components/accordion/accordion-panel.theme.mjs +0 -7
  356. package/esm2022/lib/components/accordion/accordion-panel.theme.service.mjs +0 -17
  357. package/esm2022/lib/components/accordion/accordion-title.component.mjs +0 -70
  358. package/esm2022/lib/components/accordion/accordion-title.theme.mjs +0 -26
  359. package/esm2022/lib/components/accordion/accordion-title.theme.service.mjs +0 -18
  360. package/esm2022/lib/components/accordion/accordion.component.mjs +0 -49
  361. package/esm2022/lib/components/accordion/accordion.theme.mjs +0 -19
  362. package/esm2022/lib/components/accordion/accordion.theme.service.mjs +0 -17
  363. package/esm2022/lib/components/accordion/index.mjs +0 -13
  364. package/esm2022/lib/components/alert/alert.component.mjs +0 -95
  365. package/esm2022/lib/components/alert/alert.theme.mjs +0 -34
  366. package/esm2022/lib/components/alert/alert.theme.service.mjs +0 -18
  367. package/esm2022/lib/components/alert/index.mjs +0 -4
  368. package/esm2022/lib/components/badge/badge.component.mjs +0 -47
  369. package/esm2022/lib/components/badge/badge.theme.mjs +0 -34
  370. package/esm2022/lib/components/badge/badge.theme.service.mjs +0 -19
  371. package/esm2022/lib/components/badge/index.mjs +0 -4
  372. package/esm2022/lib/components/base-component.directive.mjs +0 -34
  373. package/esm2022/lib/components/breadcrumb/breadcrumb-item.component.mjs +0 -57
  374. package/esm2022/lib/components/breadcrumb/breadcrumb-item.theme.mjs +0 -18
  375. package/esm2022/lib/components/breadcrumb/breadcrumb-item.theme.service.mjs +0 -18
  376. package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +0 -46
  377. package/esm2022/lib/components/breadcrumb/breadcrumb.theme.mjs +0 -7
  378. package/esm2022/lib/components/breadcrumb/breadcrumb.theme.service.mjs +0 -17
  379. package/esm2022/lib/components/breadcrumb/index.mjs +0 -7
  380. package/esm2022/lib/components/button/button.theme.mjs +0 -113
  381. package/esm2022/lib/components/button/button.theme.service.mjs +0 -24
  382. package/esm2022/lib/components/button/index.mjs +0 -4
  383. package/esm2022/lib/components/dark-theme-toggle/dark-theme-toggle.theme.mjs +0 -7
  384. package/esm2022/lib/components/dark-theme-toggle/dark-theme-toggle.theme.service.mjs +0 -17
  385. package/esm2022/lib/components/dark-theme-toggle/index.mjs +0 -4
  386. package/esm2022/lib/components/dropdown/dropdown-divider.component.mjs +0 -34
  387. package/esm2022/lib/components/dropdown/dropdown-divider.theme.mjs +0 -7
  388. package/esm2022/lib/components/dropdown/dropdown-divider.theme.service.mjs +0 -17
  389. package/esm2022/lib/components/dropdown/dropdown-header.component.mjs +0 -44
  390. package/esm2022/lib/components/dropdown/dropdown-header.theme.mjs +0 -10
  391. package/esm2022/lib/components/dropdown/dropdown-header.theme.service.mjs +0 -18
  392. package/esm2022/lib/components/dropdown/dropdown-item.component.mjs +0 -34
  393. package/esm2022/lib/components/dropdown/dropdown-item.theme.mjs +0 -6
  394. package/esm2022/lib/components/dropdown/dropdown-item.theme.service.mjs +0 -17
  395. package/esm2022/lib/components/dropdown/dropdown.component.mjs +0 -149
  396. package/esm2022/lib/components/dropdown/dropdown.theme.mjs +0 -32
  397. package/esm2022/lib/components/dropdown/dropdown.theme.service.mjs +0 -22
  398. package/esm2022/lib/components/dropdown/index.mjs +0 -13
  399. package/esm2022/lib/components/form-field/directives/addon.directive.mjs +0 -32
  400. package/esm2022/lib/components/form-field/directives/addon.directive.theme.mjs +0 -8
  401. package/esm2022/lib/components/form-field/directives/addon.directive.theme.service.mjs +0 -17
  402. package/esm2022/lib/components/form-field/directives/base-input.directive.mjs +0 -26
  403. package/esm2022/lib/components/form-field/directives/helper.directive.mjs +0 -34
  404. package/esm2022/lib/components/form-field/directives/helper.directive.theme.mjs +0 -12
  405. package/esm2022/lib/components/form-field/directives/helper.directive.theme.service.mjs +0 -17
  406. package/esm2022/lib/components/form-field/directives/icon.directive.mjs +0 -32
  407. package/esm2022/lib/components/form-field/directives/icon.directive.theme.mjs +0 -8
  408. package/esm2022/lib/components/form-field/directives/icon.directive.theme.service.mjs +0 -17
  409. package/esm2022/lib/components/form-field/directives/index.mjs +0 -17
  410. package/esm2022/lib/components/form-field/directives/input.directive.mjs +0 -41
  411. package/esm2022/lib/components/form-field/directives/input.directive.theme.mjs +0 -79
  412. package/esm2022/lib/components/form-field/directives/input.directive.theme.service.mjs +0 -32
  413. package/esm2022/lib/components/form-field/directives/label.directive.mjs +0 -41
  414. package/esm2022/lib/components/form-field/directives/label.directive.theme.mjs +0 -51
  415. package/esm2022/lib/components/form-field/directives/label.directive.theme.service.mjs +0 -23
  416. package/esm2022/lib/components/form-field/form-field.component.mjs +0 -40
  417. package/esm2022/lib/components/form-field/form-field.theme.mjs +0 -8
  418. package/esm2022/lib/components/form-field/form-field.theme.service.mjs +0 -17
  419. package/esm2022/lib/components/form-field/index.mjs +0 -5
  420. package/esm2022/lib/components/icon/icon-registry.mjs +0 -159
  421. package/esm2022/lib/components/icon/icon.component.mjs +0 -67
  422. package/esm2022/lib/components/icon/index.mjs +0 -4
  423. package/esm2022/lib/components/icon/trusted-types.mjs +0 -21
  424. package/esm2022/lib/components/index.mjs +0 -16
  425. package/esm2022/lib/components/indicators/index.mjs +0 -4
  426. package/esm2022/lib/components/indicators/indicators.component.mjs +0 -54
  427. package/esm2022/lib/components/indicators/indicators.theme.mjs +0 -68
  428. package/esm2022/lib/components/indicators/indicators.theme.service.mjs +0 -19
  429. package/esm2022/lib/components/modal/index.mjs +0 -13
  430. package/esm2022/lib/components/modal/modal-body.component.mjs +0 -34
  431. package/esm2022/lib/components/modal/modal-body.theme.mjs +0 -7
  432. package/esm2022/lib/components/modal/modal-body.theme.service.mjs +0 -17
  433. package/esm2022/lib/components/modal/modal-footer.component.mjs +0 -34
  434. package/esm2022/lib/components/modal/modal-footer.theme.mjs +0 -7
  435. package/esm2022/lib/components/modal/modal-footer.theme.service.mjs +0 -17
  436. package/esm2022/lib/components/modal/modal-header.component.mjs +0 -66
  437. package/esm2022/lib/components/modal/modal-header.theme.mjs +0 -13
  438. package/esm2022/lib/components/modal/modal-header.theme.service.mjs +0 -19
  439. package/esm2022/lib/components/modal/modal.component.mjs +0 -142
  440. package/esm2022/lib/components/modal/modal.theme.mjs +0 -33
  441. package/esm2022/lib/components/modal/modal.theme.service.mjs +0 -20
  442. package/esm2022/lib/components/navbar/index.mjs +0 -19
  443. package/esm2022/lib/components/navbar/navbar-brand.component.mjs +0 -34
  444. package/esm2022/lib/components/navbar/navbar-brand.theme.mjs +0 -7
  445. package/esm2022/lib/components/navbar/navbar-brand.theme.service.mjs +0 -17
  446. package/esm2022/lib/components/navbar/navbar-content.component.mjs +0 -45
  447. package/esm2022/lib/components/navbar/navbar-content.theme.mjs +0 -14
  448. package/esm2022/lib/components/navbar/navbar-content.theme.service.mjs +0 -18
  449. package/esm2022/lib/components/navbar/navbar-icon-button.component.mjs +0 -42
  450. package/esm2022/lib/components/navbar/navbar-icon-button.theme.mjs +0 -15
  451. package/esm2022/lib/components/navbar/navbar-icon-button.theme.service.mjs +0 -17
  452. package/esm2022/lib/components/navbar/navbar-item.component.mjs +0 -49
  453. package/esm2022/lib/components/navbar/navbar-item.theme.service.mjs +0 -17
  454. package/esm2022/lib/components/navbar/navbar-toggle.component.mjs +0 -50
  455. package/esm2022/lib/components/navbar/navbar-toggle.theme.mjs +0 -7
  456. package/esm2022/lib/components/navbar/navbar-toggle.theme.service.mjs +0 -17
  457. package/esm2022/lib/components/navbar/navbar.component.mjs +0 -62
  458. package/esm2022/lib/components/navbar/navbar.theme.mjs +0 -23
  459. package/esm2022/lib/components/navbar/navbar.theme.service.mjs +0 -17
  460. package/esm2022/lib/components/scroll-top/index.mjs +0 -4
  461. package/esm2022/lib/components/scroll-top/scroll-top.component.mjs +0 -50
  462. package/esm2022/lib/components/scroll-top/scroll-top.theme.mjs +0 -27
  463. package/esm2022/lib/components/scroll-top/scroll-top.theme.service.mjs +0 -17
  464. package/esm2022/lib/components/sidebar/index.mjs +0 -19
  465. package/esm2022/lib/components/sidebar/sidebar-item-group.component.mjs +0 -81
  466. package/esm2022/lib/components/sidebar/sidebar-item-group.theme.mjs +0 -18
  467. package/esm2022/lib/components/sidebar/sidebar-item-group.theme.service.mjs +0 -18
  468. package/esm2022/lib/components/sidebar/sidebar-item.component.mjs +0 -77
  469. package/esm2022/lib/components/sidebar/sidebar-item.theme.mjs +0 -18
  470. package/esm2022/lib/components/sidebar/sidebar-item.theme.service.mjs +0 -18
  471. package/esm2022/lib/components/sidebar/sidebar-menu.component.mjs +0 -49
  472. package/esm2022/lib/components/sidebar/sidebar-menu.theme.mjs +0 -24
  473. package/esm2022/lib/components/sidebar/sidebar-menu.theme.service.mjs +0 -17
  474. package/esm2022/lib/components/sidebar/sidebar-page-content.component.mjs +0 -36
  475. package/esm2022/lib/components/sidebar/sidebar-page-content.theme.mjs +0 -12
  476. package/esm2022/lib/components/sidebar/sidebar-page-content.theme.service.mjs +0 -17
  477. package/esm2022/lib/components/sidebar/sidebar-toggle.component.mjs +0 -53
  478. package/esm2022/lib/components/sidebar/sidebar-toggle.theme.mjs +0 -18
  479. package/esm2022/lib/components/sidebar/sidebar-toggle.theme.service.mjs +0 -17
  480. package/esm2022/lib/components/sidebar/sidebar.component.mjs +0 -61
  481. package/esm2022/lib/components/sidebar/sidebar.theme.mjs +0 -11
  482. package/esm2022/lib/components/sidebar/sidebar.theme.service.mjs +0 -17
  483. package/esm2022/lib/directives/flowbite-router-link-active.directive.mjs +0 -51
  484. package/esm2022/lib/directives/flowbite-router-link.directive.mjs +0 -44
  485. package/esm2022/lib/directives/index.mjs +0 -3
  486. package/esm2022/lib/pipes/index.mjs +0 -2
  487. package/esm2022/lib/pipes/sanitize-html/index.mjs +0 -2
  488. package/esm2022/lib/pipes/sanitize-html/sanitize-html.pipe.mjs +0 -32
  489. package/esm2022/lib/services/flowbite.theme.service.mjs +0 -16
  490. package/esm2022/lib/services/index.mjs +0 -2
  491. package/esm2022/lib/utils/boolean.util.mjs +0 -10
  492. package/esm2022/lib/utils/directives/index.mjs +0 -3
  493. package/esm2022/lib/utils/directives/inputs/index.mjs +0 -3
  494. package/esm2022/lib/utils/directives/inputs/router-link-active.input.mjs +0 -8
  495. package/esm2022/lib/utils/directives/inputs/router-link.inputs.mjs +0 -20
  496. package/esm2022/lib/utils/directives/outputs/index.mjs +0 -3
  497. package/esm2022/lib/utils/directives/outputs/router-link-active.output.mjs +0 -8
  498. package/esm2022/lib/utils/directives/outputs/router-link.output.mjs +0 -8
  499. package/esm2022/lib/utils/icon.list.mjs +0 -39
  500. package/esm2022/lib/utils/id.generator.mjs +0 -81
  501. package/esm2022/lib/utils/index.mjs +0 -9
  502. package/esm2022/lib/utils/theme/clone-deep.mjs +0 -18
  503. package/esm2022/lib/utils/theme/create-class.mjs +0 -10
  504. package/esm2022/lib/utils/theme/create-theme.mjs +0 -10
  505. package/esm2022/lib/utils/theme/is-object.mjs +0 -10
  506. package/esm2022/lib/utils/theme/merge-theme.mjs +0 -29
  507. package/esm2022/lib/utils/theme/to-string.mjs +0 -10
  508. package/esm2022/public-api.mjs +0 -7
  509. package/lib/common/index.d.ts +0 -2
  510. package/lib/common/type-definitions/flowbite.boolean.d.ts +0 -7
  511. package/lib/components/form-field/directives/addon.directive.d.ts +0 -13
  512. package/lib/components/form-field/directives/addon.directive.theme.d.ts +0 -10
  513. package/lib/components/form-field/directives/addon.directive.theme.service.d.ts +0 -8
  514. package/lib/components/form-field/directives/base-input.directive.d.ts +0 -14
  515. package/lib/components/form-field/directives/helper.directive.d.ts +0 -18
  516. package/lib/components/form-field/directives/helper.directive.theme.d.ts +0 -13
  517. package/lib/components/form-field/directives/helper.directive.theme.service.d.ts +0 -8
  518. package/lib/components/form-field/directives/icon.directive.d.ts +0 -13
  519. package/lib/components/form-field/directives/icon.directive.theme.d.ts +0 -10
  520. package/lib/components/form-field/directives/icon.directive.theme.service.d.ts +0 -8
  521. package/lib/components/form-field/directives/index.d.ts +0 -21
  522. package/lib/components/form-field/directives/input.directive.d.ts +0 -100
  523. package/lib/components/form-field/directives/input.directive.theme.d.ts +0 -24
  524. package/lib/components/form-field/directives/input.directive.theme.service.d.ts +0 -8
  525. package/lib/components/form-field/directives/label.directive.d.ts +0 -62
  526. package/lib/components/form-field/directives/label.directive.theme.d.ts +0 -20
  527. package/lib/components/form-field/directives/label.directive.theme.service.d.ts +0 -8
  528. package/lib/components/form-field/form-field.component.d.ts +0 -20
  529. package/lib/components/form-field/form-field.theme.d.ts +0 -45
  530. package/lib/components/form-field/form-field.theme.service.d.ts +0 -8
  531. package/lib/components/form-field/index.d.ts +0 -5
  532. package/lib/components/index.d.ts +0 -15
  533. package/lib/pipes/index.d.ts +0 -1
  534. package/lib/services/index.d.ts +0 -1
  535. package/lib/utils/directives/index.d.ts +0 -2
  536. package/lib/utils/directives/inputs/index.d.ts +0 -2
  537. package/lib/utils/directives/inputs/router-link-active.input.d.ts +0 -8
  538. package/lib/utils/directives/inputs/router-link.inputs.d.ts +0 -8
  539. package/lib/utils/directives/outputs/index.d.ts +0 -2
  540. package/lib/utils/directives/outputs/router-link-active.output.d.ts +0 -8
  541. package/lib/utils/directives/outputs/router-link.output.d.ts +0 -8
  542. package/public-api.d.ts +0 -6
  543. /package/{lib/components/accordion → accordion}/index.d.ts +0 -0
  544. /package/{lib/components/alert → alert}/index.d.ts +0 -0
  545. /package/{lib/components/badge → badge}/index.d.ts +0 -0
  546. /package/{lib/components/breadcrumb → breadcrumb}/index.d.ts +0 -0
  547. /package/{lib/components/button → button}/index.d.ts +0 -0
  548. /package/{lib/common → core}/flowbite.theme.init.d.ts +0 -0
  549. /package/{lib/components/dropdown → dropdown}/index.d.ts +0 -0
  550. /package/{lib/components/icon → icon}/icon-registry.d.ts +0 -0
  551. /package/{lib/components/icon → icon}/index.d.ts +0 -0
  552. /package/{lib/components/icon → icon}/trusted-types.d.ts +0 -0
  553. /package/{lib/components/indicators → indicator}/index.d.ts +0 -0
  554. /package/{lib/components/modal → modal}/index.d.ts +0 -0
  555. /package/{lib/components/navbar → navbar}/index.d.ts +0 -0
  556. /package/{lib/directives → router-link}/flowbite-router-link.directive.d.ts +0 -0
  557. /package/{lib/directives → router-link-active}/flowbite-router-link-active.directive.d.ts +0 -0
  558. /package/{lib/pipes/sanitize-html → sanitize-html}/index.d.ts +0 -0
  559. /package/{lib/pipes/sanitize-html → sanitize-html}/sanitize-html.pipe.d.ts +0 -0
  560. /package/{lib/components/scroll-top → scroll-top}/index.d.ts +0 -0
  561. /package/{lib/components/sidebar → sidebar}/index.d.ts +0 -0
  562. /package/{lib/common/type-definitions → type-definitions}/colors/flowbite.colors.d.ts +0 -0
  563. /package/{lib/common/type-definitions → type-definitions}/colors/flowbite.gradient-colors.d.ts +0 -0
  564. /package/{lib/common/type-definitions → type-definitions}/colors/flowbite.gradient-duo-tone-colors.d.ts +0 -0
  565. /package/{lib/common/type-definitions → type-definitions}/colors/index.d.ts +0 -0
  566. /package/{lib/common/type-definitions → type-definitions}/flowbite.class.d.ts +0 -0
  567. /package/{lib/common/type-definitions → type-definitions}/flowbite.combination.d.ts +0 -0
  568. /package/{lib/common/type-definitions → type-definitions}/flowbite.content-positions.d.ts +0 -0
  569. /package/{lib/common/type-definitions → type-definitions}/flowbite.deep-partial.d.ts +0 -0
  570. /package/{lib/common/type-definitions → type-definitions}/flowbite.heading-levels.d.ts +0 -0
  571. /package/{lib/common/type-definitions → type-definitions}/flowbite.positions.d.ts +0 -0
  572. /package/{lib/common/type-definitions → type-definitions}/flowbite.router-link-parameter.d.ts +0 -0
  573. /package/{lib/common/type-definitions → type-definitions}/flowbite.sizes.d.ts +0 -0
  574. /package/{lib/common/type-definitions → type-definitions}/flowbite.themes.d.ts +0 -0
  575. /package/{lib/utils → utils}/icon.list.d.ts +0 -0
  576. /package/{lib/utils → utils}/id.generator.d.ts +0 -0
  577. /package/{lib/utils → utils}/theme/clone-deep.d.ts +0 -0
  578. /package/{lib/utils → utils}/theme/create-class.d.ts +0 -0
  579. /package/{lib/utils → utils}/theme/create-theme.d.ts +0 -0
  580. /package/{lib/utils → utils}/theme/is-object.d.ts +0 -0
  581. /package/{lib/utils → utils}/theme/merge-theme.d.ts +0 -0
  582. /package/{lib/utils → utils}/theme/to-string.d.ts +0 -0
@@ -0,0 +1,254 @@
1
+ import { DOCUMENT, isPlatformBrowser } from '@angular/common';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import * as i0 from '@angular/core';
4
+ import { inject, PLATFORM_ID, SecurityContext, Injectable, ElementRef, model, effect, Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
5
+ import { DomSanitizer } from '@angular/platform-browser';
6
+ import { of, throwError, map, tap, finalize, share, take } from 'rxjs';
7
+ import { BaseComponent } from 'flowbite-angular';
8
+
9
+ /**
10
+ * Thanks to Angular Material for Icon part of this library : https://github.com/angular/components
11
+ */
12
+ let policy;
13
+ function getPolicy() {
14
+ if (!policy) {
15
+ if (typeof window !== 'undefined') {
16
+ const tWindow = window;
17
+ if (tWindow.trustedTypes !== undefined) {
18
+ policy = tWindow.trustedTypes.createPolicy('angular#components', {
19
+ createHTML: (s) => s,
20
+ });
21
+ }
22
+ }
23
+ }
24
+ return policy;
25
+ }
26
+ function trustedHTMLFromString(raw) {
27
+ return getPolicy()?.createHTML(raw) || raw;
28
+ }
29
+
30
+ /**
31
+ * Thanks to Angular Material for Icon part of this library : https://github.com/angular/components
32
+ */
33
+ function getSvgIconFromNamedError(iconName) {
34
+ return Error(`Unable to find icon with name ${iconName}`);
35
+ }
36
+ function getSvgIconFailedToSanitizeRawError(raw) {
37
+ return Error(`The raw provided to IconRegistry was not trusted as safe HTML by ANGULAR's DOMSanitizer. Attempted raw was : ${raw}`);
38
+ }
39
+ function getSvgIconFailedToSanitizeUrlError(url) {
40
+ return Error(`The URL provided to IconRegistry was not trusted as a resource URL via Angular's DOMSanitizer. Attempted URL was : ${url}`);
41
+ }
42
+ function getSvgIconNoHttpClientProvidedError() {
43
+ return Error(`Could not fid HttpClient provider for use with flowbite-angular icons. Please include the HttpClientModule from @angular/common/http in your app imports`);
44
+ }
45
+ class SvgIconConfig {
46
+ constructor(url, svgText, options) {
47
+ this.url = url;
48
+ this.svgText = svgText;
49
+ this.options = options;
50
+ this.svgElement = null;
51
+ }
52
+ }
53
+ class IconRegistry {
54
+ constructor() {
55
+ this.platformId = inject(PLATFORM_ID);
56
+ this._httpClient = inject(HttpClient, { optional: true });
57
+ this._sanitizer = inject(DomSanitizer);
58
+ this._document = inject(DOCUMENT);
59
+ this._svgIconConfig = new Map();
60
+ this._cachedSvgIconByUrl = new Map();
61
+ this._inProgressSvgIconFetch = new Map();
62
+ }
63
+ addSvgIcon(iconName, url, options) {
64
+ return this.addSvgIconInNamespace('', iconName, url, options);
65
+ }
66
+ addRawSvgIcon(iconName, raw, options) {
67
+ return this.addRawSvgIconInNamepsace('', iconName, raw, options);
68
+ }
69
+ addSvgIconInNamespace(namespace, iconName, url, options) {
70
+ return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig(url, undefined, options));
71
+ }
72
+ addRawSvgIconInNamepsace(namespace, iconName, raw, options) {
73
+ const cleanRaw = this._sanitizer.sanitize(SecurityContext.HTML, raw);
74
+ if (!cleanRaw) {
75
+ throw getSvgIconFailedToSanitizeRawError(raw);
76
+ }
77
+ const trustedRaw = trustedHTMLFromString(cleanRaw);
78
+ return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig('', trustedRaw, options));
79
+ }
80
+ getSvgIconFromUrl(safeUrl) {
81
+ const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);
82
+ if (!url) {
83
+ throw getSvgIconFailedToSanitizeUrlError(safeUrl);
84
+ }
85
+ const cachedIcon = this._cachedSvgIconByUrl.get(url);
86
+ if (cachedIcon) {
87
+ return of(cloneSvg(cachedIcon));
88
+ }
89
+ return this._loadSvgIconFromConfig(new SvgIconConfig(safeUrl, undefined));
90
+ }
91
+ getSvgIconFromName(iconName, namespace) {
92
+ const key = iconKey(namespace, iconName);
93
+ const config = this._svgIconConfig.get(key);
94
+ if (config) {
95
+ return this._getSvgIconFromConfig(config);
96
+ }
97
+ return throwError(() => getSvgIconFromNamedError(key));
98
+ }
99
+ ngOnDestroy() {
100
+ this._svgIconConfig.clear();
101
+ this._cachedSvgIconByUrl.clear();
102
+ }
103
+ _addSvgIconConfig(namespace, iconName, config) {
104
+ this._svgIconConfig.set(iconKey(namespace, iconName), config);
105
+ return this;
106
+ }
107
+ _getSvgIconFromConfig(config) {
108
+ if (config.svgText) {
109
+ return of(cloneSvg(this._svgElementFromConfig(config)));
110
+ }
111
+ else {
112
+ return this._loadSvgIconFromConfig(config).pipe(map((svg) => cloneSvg(svg)));
113
+ }
114
+ }
115
+ _loadSvgIconFromConfig(config) {
116
+ return this._fetchIcon(config).pipe(tap((svgText) => (config.svgText = svgText)), map(() => this._svgElementFromConfig(config)));
117
+ }
118
+ _setSvgAttributes(svg, options) {
119
+ svg.setAttribute('fit', '');
120
+ svg.setAttribute('height', '100%');
121
+ svg.setAttribute('width', '100%');
122
+ svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');
123
+ svg.setAttribute('focusable', 'false');
124
+ if (options?.viewBox) {
125
+ svg.setAttribute('viewBox', options.viewBox);
126
+ }
127
+ return svg;
128
+ }
129
+ _svgElementFromConfig(config) {
130
+ if (!config.svgElement) {
131
+ const svg = this._svgElementFromString(config.svgText);
132
+ this._setSvgAttributes(svg, config.options);
133
+ config.svgElement = svg;
134
+ }
135
+ return config.svgElement;
136
+ }
137
+ _svgElementFromString(str) {
138
+ const div = this._document.createElement('div');
139
+ div.innerHTML = str;
140
+ const svg = div.querySelector('svg');
141
+ return svg;
142
+ }
143
+ _fetchIcon(iconConfig) {
144
+ if (isPlatformBrowser(this.platformId)) {
145
+ if (!this._httpClient) {
146
+ throw getSvgIconNoHttpClientProvidedError();
147
+ }
148
+ const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, iconConfig.url);
149
+ if (!url) {
150
+ throw getSvgIconFailedToSanitizeUrlError(iconConfig.url);
151
+ }
152
+ const inProgressFetch = this._inProgressSvgIconFetch.get(url);
153
+ if (inProgressFetch) {
154
+ return inProgressFetch;
155
+ }
156
+ const req = this._httpClient.get(url, { responseType: 'text' }).pipe(map((svg) => {
157
+ return trustedHTMLFromString(svg);
158
+ }), finalize(() => this._inProgressSvgIconFetch.delete(url)), share());
159
+ this._inProgressSvgIconFetch.set(url, req);
160
+ return req;
161
+ }
162
+ else {
163
+ return of(trustedHTMLFromString('<svg></svg>'));
164
+ }
165
+ }
166
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: IconRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
167
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: IconRegistry, providedIn: 'root' }); }
168
+ }
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: IconRegistry, decorators: [{
170
+ type: Injectable,
171
+ args: [{
172
+ providedIn: 'root',
173
+ }]
174
+ }] });
175
+ function cloneSvg(svg) {
176
+ return svg.cloneNode(true);
177
+ }
178
+ function iconKey(namespace, iconName) {
179
+ return `${namespace}:${iconName}`;
180
+ }
181
+
182
+ /**
183
+ * Thanks to Angular Material for Icon part of this library : https://github.com/angular/components
184
+ */
185
+ class IconComponent extends BaseComponent {
186
+ constructor() {
187
+ super(...arguments);
188
+ this._elementRef = inject((ElementRef));
189
+ this._iconRegistry = inject(IconRegistry);
190
+ this.svgIcon = model.required();
191
+ }
192
+ init() {
193
+ effect(() => {
194
+ this._updateSvgIcon();
195
+ }, { injector: this.injector });
196
+ }
197
+ fetchClass() {
198
+ return { rootClass: '' };
199
+ }
200
+ _splitIconName(iconName) {
201
+ if (!iconName) {
202
+ return ['', ''];
203
+ }
204
+ const parts = iconName.split(':');
205
+ switch (parts.length) {
206
+ case 1:
207
+ return ['', parts[0]];
208
+ case 2:
209
+ return parts;
210
+ default:
211
+ throw Error(`Invalid icon name: "${iconName}"`);
212
+ }
213
+ }
214
+ _updateSvgIcon() {
215
+ const [namespace, iconName] = this._splitIconName(this.svgIcon());
216
+ this._iconRegistry
217
+ .getSvgIconFromName(iconName, namespace)
218
+ .pipe(take(1))
219
+ .subscribe((svg) => this._setSvgElement(svg));
220
+ }
221
+ _setSvgElement(svg) {
222
+ this._clearSvgElements();
223
+ this._elementRef.nativeElement.appendChild(svg);
224
+ }
225
+ _clearSvgElements() {
226
+ const layoutElement = this._elementRef.nativeElement;
227
+ let childCount = layoutElement.childNodes.length;
228
+ while (childCount--) {
229
+ const child = layoutElement.childNodes[childCount];
230
+ if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {
231
+ child.remove();
232
+ }
233
+ }
234
+ }
235
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: IconComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
236
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.0", type: IconComponent, isStandalone: true, selector: "flowbite-icon", inputs: { svgIcon: { classPropertyName: "svgIcon", publicName: "svgIcon", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { svgIcon: "svgIconChange" }, usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
237
+ }
238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: IconComponent, decorators: [{
239
+ type: Component,
240
+ args: [{
241
+ selector: 'flowbite-icon',
242
+ standalone: true,
243
+ template: `<ng-content />`,
244
+ encapsulation: ViewEncapsulation.None,
245
+ changeDetection: ChangeDetectionStrategy.OnPush,
246
+ }]
247
+ }] });
248
+
249
+ /**
250
+ * Generated bundle index. Do not edit.
251
+ */
252
+
253
+ export { IconComponent, IconRegistry, SvgIconConfig, getSvgIconFailedToSanitizeRawError, getSvgIconFailedToSanitizeUrlError, getSvgIconFromNamedError, getSvgIconNoHttpClientProvidedError, trustedHTMLFromString };
254
+ //# sourceMappingURL=flowbite-angular-icon.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flowbite-angular-icon.mjs","sources":["../../../../libs/flowbite-angular/icon/trusted-types.ts","../../../../libs/flowbite-angular/icon/icon-registry.ts","../../../../libs/flowbite-angular/icon/icon.component.ts","../../../../libs/flowbite-angular/icon/flowbite-angular-icon.ts"],"sourcesContent":["/**\n * Thanks to Angular Material for Icon part of this library : https://github.com/angular/components\n */\n\nexport declare interface TrustedHTML {\n __brand__: 'TrustedHTML';\n}\n\nexport declare interface TrustedTypePolicyFactory {\n createPolicy(\n policyName: string,\n policyOptions: {\n createHTML?: (input: string) => string;\n }\n ): TrustedTypePolicy;\n}\n\nexport declare interface TrustedTypePolicy {\n createHTML(input: string): TrustedHTML;\n}\n\nlet policy: TrustedTypePolicy | undefined;\n\nfunction getPolicy(): TrustedTypePolicy | undefined {\n if (!policy) {\n if (typeof window !== 'undefined') {\n const tWindow = window as unknown as { trustedTypes?: TrustedTypePolicyFactory };\n\n if (tWindow.trustedTypes !== undefined) {\n policy = tWindow.trustedTypes.createPolicy('angular#components', {\n createHTML: (s: string) => s,\n });\n }\n }\n }\n\n return policy;\n}\n\nexport function trustedHTMLFromString(raw: string): TrustedHTML {\n return getPolicy()?.createHTML(raw) || (raw as unknown as TrustedHTML);\n}\n","/**\n * Thanks to Angular Material for Icon part of this library : https://github.com/angular/components\n */\n\nimport { trustedHTMLFromString } from './trusted-types';\nimport type { TrustedHTML } from './trusted-types';\n\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport type { OnDestroy } from '@angular/core';\nimport { inject, Injectable, PLATFORM_ID, SecurityContext } from '@angular/core';\nimport type { SafeHtml } from '@angular/platform-browser';\nimport { DomSanitizer, type SafeResourceUrl } from '@angular/platform-browser';\nimport { finalize, map, of, share, tap, throwError, type Observable } from 'rxjs';\n\nexport function getSvgIconFromNamedError(iconName: string): Error {\n return Error(`Unable to find icon with name ${iconName}`);\n}\n\nexport function getSvgIconFailedToSanitizeRawError(raw: SafeHtml): Error {\n return Error(\n `The raw provided to IconRegistry was not trusted as safe HTML by ANGULAR's DOMSanitizer. Attempted raw was : ${raw as string}`\n );\n}\n\nexport function getSvgIconFailedToSanitizeUrlError(url: SafeResourceUrl): Error {\n return Error(\n `The URL provided to IconRegistry was not trusted as a resource URL via Angular's DOMSanitizer. Attempted URL was : ${url as string}`\n );\n}\n\nexport function getSvgIconNoHttpClientProvidedError(): Error {\n return Error(\n `Could not fid HttpClient provider for use with flowbite-angular icons. Please include the HttpClientModule from @angular/common/http in your app imports`\n );\n}\n\nexport interface SvgIconOptions {\n viewBox: string;\n}\n\nexport class SvgIconConfig {\n svgElement: SVGElement | null = null;\n\n constructor(\n public url: SafeResourceUrl,\n public svgText: TrustedHTML | undefined,\n public options?: SvgIconOptions\n ) {}\n}\n\ntype LoadedSvgIconConfig = SvgIconConfig & { svgText: TrustedHTML };\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconRegistry implements OnDestroy {\n private platformId = inject(PLATFORM_ID);\n\n private _httpClient = inject(HttpClient, { optional: true });\n private _sanitizer = inject(DomSanitizer);\n private _document = inject(DOCUMENT);\n\n private _svgIconConfig = new Map<string, SvgIconConfig>();\n private _cachedSvgIconByUrl = new Map<string, SVGElement>();\n private _inProgressSvgIconFetch = new Map<string, Observable<TrustedHTML>>();\n\n public addSvgIcon(iconName: string, url: SafeResourceUrl, options?: SvgIconOptions): this {\n return this.addSvgIconInNamespace('', iconName, url, options);\n }\n\n public addRawSvgIcon(iconName: string, raw: SafeHtml, options?: SvgIconOptions): this {\n return this.addRawSvgIconInNamepsace('', iconName, raw, options);\n }\n\n public addSvgIconInNamespace(\n namespace: string,\n iconName: string,\n url: SafeResourceUrl,\n options?: SvgIconOptions\n ): this {\n return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig(url, undefined, options));\n }\n\n public addRawSvgIconInNamepsace(\n namespace: string,\n iconName: string,\n raw: SafeHtml,\n options?: SvgIconOptions\n ): this {\n const cleanRaw = this._sanitizer.sanitize(SecurityContext.HTML, raw);\n\n if (!cleanRaw) {\n throw getSvgIconFailedToSanitizeRawError(raw);\n }\n\n const trustedRaw = trustedHTMLFromString(cleanRaw);\n return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig('', trustedRaw, options));\n }\n\n public getSvgIconFromUrl(safeUrl: SafeResourceUrl): Observable<SVGElement> {\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n\n if (!url) {\n throw getSvgIconFailedToSanitizeUrlError(safeUrl);\n }\n\n const cachedIcon = this._cachedSvgIconByUrl.get(url);\n\n if (cachedIcon) {\n return of(cloneSvg(cachedIcon));\n }\n\n return this._loadSvgIconFromConfig(new SvgIconConfig(safeUrl, undefined));\n }\n\n public getSvgIconFromName(iconName: string, namespace: string): Observable<SVGElement> {\n const key = iconKey(namespace, iconName);\n const config = this._svgIconConfig.get(key);\n\n if (config) {\n return this._getSvgIconFromConfig(config);\n }\n\n return throwError(() => getSvgIconFromNamedError(key));\n }\n\n public ngOnDestroy(): void {\n this._svgIconConfig.clear();\n this._cachedSvgIconByUrl.clear();\n }\n\n private _addSvgIconConfig(namespace: string, iconName: string, config: SvgIconConfig): this {\n this._svgIconConfig.set(iconKey(namespace, iconName), config);\n\n return this;\n }\n\n private _getSvgIconFromConfig(config: SvgIconConfig): Observable<SVGElement> {\n if (config.svgText) {\n return of(cloneSvg(this._svgElementFromConfig(config as LoadedSvgIconConfig)));\n } else {\n return this._loadSvgIconFromConfig(config).pipe(map((svg) => cloneSvg(svg)));\n }\n }\n\n private _loadSvgIconFromConfig(config: SvgIconConfig): Observable<SVGElement> {\n return this._fetchIcon(config).pipe(\n tap((svgText) => (config.svgText = svgText)),\n map(() => this._svgElementFromConfig(config as LoadedSvgIconConfig))\n );\n }\n\n private _setSvgAttributes(svg: SVGElement, options?: SvgIconOptions): SVGElement {\n svg.setAttribute('fit', '');\n svg.setAttribute('height', '100%');\n svg.setAttribute('width', '100%');\n svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');\n svg.setAttribute('focusable', 'false');\n\n if (options?.viewBox) {\n svg.setAttribute('viewBox', options.viewBox);\n }\n\n return svg;\n }\n\n private _svgElementFromConfig(config: LoadedSvgIconConfig): SVGElement {\n if (!config.svgElement) {\n const svg = this._svgElementFromString(config.svgText);\n\n this._setSvgAttributes(svg, config.options);\n config.svgElement = svg;\n }\n\n return config.svgElement;\n }\n\n private _svgElementFromString(str: TrustedHTML): SVGElement {\n const div = this._document.createElement('div');\n div.innerHTML = str as unknown as string;\n\n const svg = div.querySelector('svg') as SVGElement;\n\n return svg;\n }\n\n private _fetchIcon(iconConfig: SvgIconConfig): Observable<TrustedHTML> {\n if (isPlatformBrowser(this.platformId)) {\n if (!this._httpClient) {\n throw getSvgIconNoHttpClientProvidedError();\n }\n\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, iconConfig.url);\n\n if (!url) {\n throw getSvgIconFailedToSanitizeUrlError(iconConfig.url);\n }\n\n const inProgressFetch = this._inProgressSvgIconFetch.get(url);\n\n if (inProgressFetch) {\n return inProgressFetch;\n }\n\n const req = this._httpClient.get(url, { responseType: 'text' }).pipe(\n map((svg) => {\n return trustedHTMLFromString(svg);\n }),\n finalize(() => this._inProgressSvgIconFetch.delete(url)),\n share()\n );\n\n this._inProgressSvgIconFetch.set(url, req);\n return req;\n } else {\n return of(trustedHTMLFromString('<svg></svg>'));\n }\n }\n}\n\nfunction cloneSvg(svg: SVGElement): SVGElement {\n return svg.cloneNode(true) as SVGElement;\n}\n\nfunction iconKey(namespace: string, iconName: string): string {\n return `${namespace}:${iconName}`;\n}\n","/**\n * Thanks to Angular Material for Icon part of this library : https://github.com/angular/components\n */\n\nimport { IconRegistry } from './icon-registry';\n\nimport type { FlowbiteClass } from 'flowbite-angular';\nimport { BaseComponent } from 'flowbite-angular';\n\nimport type { OnInit } from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n model,\n ViewEncapsulation,\n} from '@angular/core';\nimport { take } from 'rxjs';\n\n@Component({\n selector: 'flowbite-icon',\n standalone: true,\n template: `<ng-content />`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconComponent extends BaseComponent<FlowbiteClass> implements OnInit {\n public _elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\n public _iconRegistry = inject(IconRegistry);\n\n public svgIcon = model.required<string>();\n\n public override init(): void {\n effect(\n () => {\n this._updateSvgIcon();\n },\n { injector: this.injector }\n );\n }\n\n public override fetchClass(): FlowbiteClass {\n return { rootClass: '' };\n }\n\n private _splitIconName(iconName: string): [string, string] {\n if (!iconName) {\n return ['', ''];\n }\n\n const parts = iconName.split(':');\n switch (parts.length) {\n case 1:\n return ['', parts[0]];\n case 2:\n return <[string, string]>parts;\n default:\n throw Error(`Invalid icon name: \"${iconName}\"`);\n }\n }\n\n private _updateSvgIcon() {\n const [namespace, iconName] = this._splitIconName(this.svgIcon());\n\n this._iconRegistry\n .getSvgIconFromName(iconName, namespace)\n .pipe(take(1))\n .subscribe((svg) => this._setSvgElement(svg));\n }\n\n private _setSvgElement(svg: SVGElement) {\n this._clearSvgElements();\n\n this._elementRef.nativeElement.appendChild(svg);\n }\n\n private _clearSvgElements() {\n const layoutElement: HTMLElement = this._elementRef.nativeElement;\n let childCount = layoutElement.childNodes.length;\n\n while (childCount--) {\n const child = layoutElement.childNodes[childCount];\n\n if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {\n child.remove();\n }\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ import { mergeTheme, createTheme } from 'flowbite-angular/utils';
2
+ import * as i0 from '@angular/core';
3
+ import { InjectionToken, inject, model, Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';
6
+ import { NgClass } from '@angular/common';
7
+
8
+ const FLOWBITE_INDICATOR_THEME_TOKEN = new InjectionToken('FLOWBITE_INDICATOR_THEME_TOKEN');
9
+ class IndicatorThemeService {
10
+ constructor() {
11
+ this.baseTheme = inject(FLOWBITE_INDICATOR_THEME_TOKEN);
12
+ }
13
+ getClasses(properties) {
14
+ const theme = mergeTheme(this.baseTheme, properties.customStyle);
15
+ const output = {
16
+ rootClass: twMerge(theme.root.base, theme.root.hasBorder[properties.hasBorder], theme.root.color[properties.color], theme.root.isDisabled[properties.isDisabled], properties.placement &&
17
+ properties.hasOffset == 'enabled' &&
18
+ theme.root.hasOffset[properties.placement], theme.root.isOutline[properties.isOutline], theme.root.isPill[properties.isPill], properties.placement && 'absolute ' + theme.root.placement[properties.placement], theme.root.isRounded[properties.isRounded], theme.root.size[properties.size]),
19
+ };
20
+ return output;
21
+ }
22
+ }
23
+
24
+ /**
25
+ * @see https://flowbite.com/docs/components/indicators/
26
+ */
27
+ class IndicatorComponent extends BaseComponent {
28
+ constructor() {
29
+ super(...arguments);
30
+ this.themeService = inject(IndicatorThemeService);
31
+ //#region properties
32
+ this.isPill = model(false);
33
+ this.isOutline = model(false);
34
+ this.isDisabled = model(false);
35
+ this.hasOffset = model(false);
36
+ this.isRounded = model(false);
37
+ this.hasBorder = model(false);
38
+ this.color = model('primary');
39
+ this.size = model('md');
40
+ this.placement = model(undefined);
41
+ this.customStyle = model({});
42
+ }
43
+ //#endregion
44
+ //#region BaseComponent implementation
45
+ fetchClass() {
46
+ return this.themeService.getClasses({
47
+ hasBorder: booleanToFlowbiteBoolean(this.hasBorder()),
48
+ color: this.color(),
49
+ isDisabled: booleanToFlowbiteBoolean(this.isDisabled()),
50
+ hasOffset: booleanToFlowbiteBoolean(this.hasOffset()),
51
+ isOutline: booleanToFlowbiteBoolean(this.isOutline()),
52
+ isPill: booleanToFlowbiteBoolean(this.isPill()),
53
+ isRounded: booleanToFlowbiteBoolean(this.isRounded()),
54
+ size: this.size(),
55
+ placement: this.placement(),
56
+ customStyle: this.customStyle(),
57
+ });
58
+ }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: IndicatorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.0", type: IndicatorComponent, isStandalone: true, selector: "flowbite-indicator", inputs: { isPill: { classPropertyName: "isPill", publicName: "isPill", isSignal: true, isRequired: false, transformFunction: null }, isOutline: { classPropertyName: "isOutline", publicName: "isOutline", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, hasOffset: { classPropertyName: "hasOffset", publicName: "hasOffset", 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 }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, customStyle: { classPropertyName: "customStyle", publicName: "customStyle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isPill: "isPillChange", isOutline: "isOutlineChange", isDisabled: "isDisabledChange", hasOffset: "hasOffsetChange", isRounded: "isRoundedChange", hasBorder: "hasBorderChange", color: "colorChange", size: "sizeChange", placement: "placementChange", customStyle: "customStyleChange" }, usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: IndicatorComponent, decorators: [{
63
+ type: Component,
64
+ args: [{
65
+ standalone: true,
66
+ imports: [NgClass],
67
+ selector: 'flowbite-indicator',
68
+ template: `<ng-content />`,
69
+ encapsulation: ViewEncapsulation.None,
70
+ changeDetection: ChangeDetectionStrategy.OnPush,
71
+ }]
72
+ }] });
73
+
74
+ const indicatorTheme = createTheme({
75
+ root: {
76
+ base: 'inline-flex items-center justify-center shrink-0 font-bold',
77
+ hasBorder: {
78
+ enabled: 'border-2',
79
+ disabled: '',
80
+ },
81
+ color: {
82
+ dark: 'bg-gray-900 dark:bg-gray-700 border-white dark:border-gray-800 text-white',
83
+ primary: 'bg-primary-500 border-white dark:border-gray-800 text-white',
84
+ gray: 'bg-gray-200 border-white dark:border-gray-800 text-gray-900',
85
+ blue: 'bg-blue-600 border-white dark:border-gray-800 text-white',
86
+ green: 'bg-green-500 border-white dark:border-gray-800 text-white',
87
+ red: 'bg-red-500 border-white dark:border-gray-800 text-white',
88
+ purple: 'bg-purple-500 border-white dark:border-gray-800 text-white',
89
+ indigo: 'bg-indigo-500 border-white dark:border-gray-800 text-white',
90
+ yellow: 'bg-yellow-300 border-white dark:border-gray-800 text-gray-900',
91
+ teal: 'bg-teal-500 border-white dark:border-gray-800 text-white',
92
+ },
93
+ isDisabled: {
94
+ enabled: 'opacity-50',
95
+ disabled: '',
96
+ },
97
+ hasOffset: {
98
+ 'top-left': '-translate-x-1/3 -translate-y-1/3',
99
+ 'top-center': '-translate-y-1/3',
100
+ 'top-right': 'translate-x-1/3 -translate-y-1/3',
101
+ 'center-left': '-translate-x-1/3',
102
+ center: '',
103
+ 'center-right': 'translate-x-1/3',
104
+ 'bottom-left': '-translate-x-1/3 translate-y-1/3',
105
+ 'bottom-center': 'translate-y-1/3',
106
+ 'bottom-right': 'translate-x-1/3 translate-y-1/3',
107
+ },
108
+ placement: {
109
+ 'top-left': 'top-0 left-0',
110
+ 'top-center': 'top-0 left-1/2 -translate-x-1/2',
111
+ 'top-right': 'top-0 right-0',
112
+ 'center-left': 'top-1/2 -translate-y-1/2 left-0',
113
+ center: 'top-1/2 -translate-y-1/2 left-1/2 -translate-x-1/2',
114
+ 'center-right': 'top-1/2 -translate-y-1/2 right-0',
115
+ 'bottom-left': 'bottom-0 left-0',
116
+ 'bottom-center': 'bottom-0 left-1/2 -translate-x-1/2',
117
+ 'bottom-right': 'bottom-0 right-0',
118
+ },
119
+ isOutline: {
120
+ enabled: '',
121
+ disabled: '',
122
+ },
123
+ isPill: {
124
+ enabled: '',
125
+ disabled: '',
126
+ },
127
+ isRounded: {
128
+ enabled: 'rounded',
129
+ disabled: 'rounded-full',
130
+ },
131
+ size: {
132
+ xs: 'w-2 h-2 text-xs',
133
+ sm: 'w-2.5 h-2.5 text-sm',
134
+ md: 'w-3 h-3 text-sm',
135
+ lg: 'w-3.5 h-3.5 text-sm',
136
+ xl: 'w-6 h-6 text-sm',
137
+ },
138
+ },
139
+ });
140
+
141
+ /**
142
+ * Generated bundle index. Do not edit.
143
+ */
144
+
145
+ export { FLOWBITE_INDICATOR_THEME_TOKEN, IndicatorComponent, IndicatorThemeService, indicatorTheme };
146
+ //# sourceMappingURL=flowbite-angular-indicator.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flowbite-angular-indicator.mjs","sources":["../../../../libs/flowbite-angular/indicator/indicators.theme.service.ts","../../../../libs/flowbite-angular/indicator/indicators.component.ts","../../../../libs/flowbite-angular/indicator/indicators.theme.ts","../../../../libs/flowbite-angular/indicator/flowbite-angular-indicator.ts"],"sourcesContent":["import type { indicatorClass, IndicatorProperties, IndicatorTheme } from './indicators.theme';\n\nimport type { FlowbiteThemeService } from 'flowbite-angular';\nimport { mergeTheme } from 'flowbite-angular/utils';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_INDICATOR_THEME_TOKEN = new InjectionToken<IndicatorTheme>(\n 'FLOWBITE_INDICATOR_THEME_TOKEN'\n);\n\nexport class IndicatorThemeService implements FlowbiteThemeService<IndicatorProperties> {\n private readonly baseTheme = inject(FLOWBITE_INDICATOR_THEME_TOKEN);\n\n public getClasses(properties: IndicatorProperties): indicatorClass {\n const theme: IndicatorTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: indicatorClass = {\n rootClass: twMerge(\n theme.root.base,\n theme.root.hasBorder[properties.hasBorder],\n theme.root.color[properties.color],\n theme.root.isDisabled[properties.isDisabled],\n properties.placement &&\n properties.hasOffset == 'enabled' &&\n theme.root.hasOffset[properties.placement],\n theme.root.isOutline[properties.isOutline],\n theme.root.isPill[properties.isPill],\n properties.placement && 'absolute ' + theme.root.placement[properties.placement],\n theme.root.isRounded[properties.isRounded],\n theme.root.size[properties.size]\n ),\n };\n\n return output;\n }\n}\n","import type {\n indicatorClass,\n IndicatorColors,\n IndicatorPositions,\n IndicatorSizes,\n IndicatorTheme,\n} from './indicators.theme';\nimport { IndicatorThemeService } from './indicators.theme.service';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';\n\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n model,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * @see https://flowbite.com/docs/components/indicators/\n */\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-indicator',\n template: `<ng-content />`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IndicatorComponent extends BaseComponent<indicatorClass> {\n public readonly themeService = inject(IndicatorThemeService);\n\n //#region properties\n public isPill = model<boolean>(false);\n public isOutline = model<boolean>(false);\n public isDisabled = model<boolean>(false);\n public hasOffset = model<boolean>(false);\n public isRounded = model<boolean>(false);\n public hasBorder = model<boolean>(false);\n public color = model<keyof IndicatorColors>('primary');\n public size = model<keyof IndicatorSizes>('md');\n public placement = model<keyof IndicatorPositions | undefined>(undefined);\n public customStyle = model<DeepPartial<IndicatorTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): indicatorClass {\n return this.themeService.getClasses({\n hasBorder: booleanToFlowbiteBoolean(this.hasBorder()),\n color: this.color(),\n isDisabled: booleanToFlowbiteBoolean(this.isDisabled()),\n hasOffset: booleanToFlowbiteBoolean(this.hasOffset()),\n isOutline: booleanToFlowbiteBoolean(this.isOutline()),\n isPill: booleanToFlowbiteBoolean(this.isPill()),\n isRounded: booleanToFlowbiteBoolean(this.isRounded()),\n size: this.size(),\n placement: this.placement(),\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","import type {\n DeepPartial,\n FlowbiteBoolean,\n FlowbiteClass,\n FlowbiteColors,\n FlowbitePositions,\n FlowbiteSizes,\n} from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\n//#region Component theme option\nexport interface IndicatorColors\n extends Pick<\n FlowbiteColors,\n 'primary' | 'dark' | 'gray' | 'blue' | 'green' | 'red' | 'purple' | 'indigo' | 'yellow' | 'teal'\n > {\n [key: string]: string;\n}\n\nexport interface IndicatorSizes extends Pick<FlowbiteSizes, 'xs' | 'sm' | 'md' | 'lg' | 'xl'> {\n [key: string]: string;\n}\n\nexport interface IndicatorPositions\n extends Pick<\n FlowbitePositions,\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'center-left'\n | 'center'\n | 'center-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right'\n > {\n [key: string]: string;\n}\n//#endregion\n\nexport interface IndicatorProperties {\n isPill: keyof FlowbiteBoolean;\n isOutline: keyof FlowbiteBoolean;\n isDisabled: keyof FlowbiteBoolean;\n hasOffset: keyof FlowbiteBoolean;\n isRounded: keyof FlowbiteBoolean;\n hasBorder: keyof FlowbiteBoolean;\n color: keyof IndicatorColors;\n size: keyof IndicatorSizes;\n placement?: keyof IndicatorPositions;\n customStyle: DeepPartial<IndicatorTheme>;\n}\n\nexport interface IndicatorTheme {\n root: {\n base: string;\n isPill: FlowbiteBoolean;\n isOutline: FlowbiteBoolean;\n isDisabled: FlowbiteBoolean;\n hasOffset: IndicatorPositions;\n isRounded: FlowbiteBoolean;\n hasBorder: FlowbiteBoolean;\n color: IndicatorColors;\n size: IndicatorSizes;\n placement: IndicatorPositions;\n };\n}\n\nexport const indicatorTheme: IndicatorTheme = createTheme({\n root: {\n base: 'inline-flex items-center justify-center shrink-0 font-bold',\n hasBorder: {\n enabled: 'border-2',\n disabled: '',\n },\n color: {\n dark: 'bg-gray-900 dark:bg-gray-700 border-white dark:border-gray-800 text-white',\n primary: 'bg-primary-500 border-white dark:border-gray-800 text-white',\n gray: 'bg-gray-200 border-white dark:border-gray-800 text-gray-900',\n blue: 'bg-blue-600 border-white dark:border-gray-800 text-white',\n green: 'bg-green-500 border-white dark:border-gray-800 text-white',\n red: 'bg-red-500 border-white dark:border-gray-800 text-white',\n purple: 'bg-purple-500 border-white dark:border-gray-800 text-white',\n indigo: 'bg-indigo-500 border-white dark:border-gray-800 text-white',\n yellow: 'bg-yellow-300 border-white dark:border-gray-800 text-gray-900',\n teal: 'bg-teal-500 border-white dark:border-gray-800 text-white',\n },\n isDisabled: {\n enabled: 'opacity-50',\n disabled: '',\n },\n hasOffset: {\n 'top-left': '-translate-x-1/3 -translate-y-1/3',\n 'top-center': '-translate-y-1/3',\n 'top-right': 'translate-x-1/3 -translate-y-1/3',\n 'center-left': '-translate-x-1/3',\n center: '',\n 'center-right': 'translate-x-1/3',\n 'bottom-left': '-translate-x-1/3 translate-y-1/3',\n 'bottom-center': 'translate-y-1/3',\n 'bottom-right': 'translate-x-1/3 translate-y-1/3',\n },\n placement: {\n 'top-left': 'top-0 left-0',\n 'top-center': 'top-0 left-1/2 -translate-x-1/2',\n 'top-right': 'top-0 right-0',\n 'center-left': 'top-1/2 -translate-y-1/2 left-0',\n center: 'top-1/2 -translate-y-1/2 left-1/2 -translate-x-1/2',\n 'center-right': 'top-1/2 -translate-y-1/2 right-0',\n 'bottom-left': 'bottom-0 left-0',\n 'bottom-center': 'bottom-0 left-1/2 -translate-x-1/2',\n 'bottom-right': 'bottom-0 right-0',\n },\n isOutline: {\n enabled: '',\n disabled: '',\n },\n isPill: {\n enabled: '',\n disabled: '',\n },\n isRounded: {\n enabled: 'rounded',\n disabled: 'rounded-full',\n },\n size: {\n xs: 'w-2 h-2 text-xs',\n sm: 'w-2.5 h-2.5 text-sm',\n md: 'w-3 h-3 text-sm',\n lg: 'w-3.5 h-3.5 text-sm',\n xl: 'w-6 h-6 text-sm',\n },\n },\n});\n\nexport type indicatorClass = FlowbiteClass;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}