flowbite-angular 1.3.0 → 20.0.2

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 (309) 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/flowbite-angular.css +2 -0
  99. package/{alert → form}/README.md +2 -2
  100. package/form/index.d.ts +684 -0
  101. package/{breadcrumb → icon/brand}/README.md +2 -2
  102. package/icon/brand/index.d.ts +66 -0
  103. package/icon/index.d.ts +322 -5
  104. package/icon/outline/README.md +4 -0
  105. package/icon/outline/arrows/index.d.ts +46 -0
  106. package/icon/outline/e-commerce/index.d.ts +18 -0
  107. package/icon/outline/emoji/index.d.ts +8 -0
  108. package/icon/outline/files-folders/index.d.ts +37 -0
  109. package/icon/outline/general/index.d.ts +140 -0
  110. package/icon/outline/index.d.ts +2 -0
  111. package/icon/outline/media/index.d.ts +20 -0
  112. package/icon/outline/text/index.d.ts +15 -0
  113. package/icon/outline/user/index.d.ts +12 -0
  114. package/icon/outline/weather/index.d.ts +4 -0
  115. package/icon/solid/README.md +4 -0
  116. package/icon/solid/arrows/index.d.ts +12 -0
  117. package/icon/solid/brands/index.d.ts +28 -0
  118. package/icon/solid/e-commerce/index.d.ts +16 -0
  119. package/icon/solid/emoji/index.d.ts +8 -0
  120. package/icon/solid/files-folder/index.d.ts +37 -0
  121. package/icon/solid/general/index.d.ts +118 -0
  122. package/icon/solid/index.d.ts +2 -0
  123. package/icon/solid/media/index.d.ts +19 -0
  124. package/icon/solid/text/index.d.ts +6 -0
  125. package/icon/solid/user/index.d.ts +12 -0
  126. package/icon/solid/weather/index.d.ts +4 -0
  127. package/index.d.ts +126 -3
  128. package/indicator/index.d.ts +242 -4
  129. package/modal/index.d.ts +458 -16
  130. package/navbar/index.d.ts +1467 -24
  131. package/package.json +133 -38
  132. package/pagination/README.md +4 -0
  133. package/pagination/index.d.ts +1135 -0
  134. package/sidebar/index.d.ts +880 -24
  135. package/styles/flowbite-angular.css +8 -0
  136. package/styles/part/animation.css +0 -0
  137. package/styles/part/color.css +125 -0
  138. package/styles/part/font-size.css +67 -0
  139. package/styles/part/rounded.css +11 -0
  140. package/styles/part/shadow.css +9 -0
  141. package/styles/part/spacing.css +38 -0
  142. package/{badge → tab}/README.md +2 -2
  143. package/tab/index.d.ts +791 -0
  144. package/theme-toggle/README.md +4 -0
  145. package/theme-toggle/index.d.ts +342 -0
  146. package/{button → tooltip}/README.md +2 -2
  147. package/tooltip/index.d.ts +158 -0
  148. package/accordion/accordion-content.component.d.ts +0 -69
  149. package/accordion/accordion-content.theme.d.ts +0 -28
  150. package/accordion/accordion-content.theme.service.d.ts +0 -19
  151. package/accordion/accordion-panel.component.d.ts +0 -67
  152. package/accordion/accordion-panel.theme.d.ts +0 -23
  153. package/accordion/accordion-panel.theme.service.d.ts +0 -20
  154. package/accordion/accordion-title.component.d.ts +0 -106
  155. package/accordion/accordion-title.theme.d.ts +0 -35
  156. package/accordion/accordion-title.theme.service.d.ts +0 -19
  157. package/accordion/accordion.component.d.ts +0 -61
  158. package/accordion/accordion.theme.d.ts +0 -29
  159. package/accordion/accordion.theme.service.d.ts +0 -19
  160. package/alert/alert.component.d.ts +0 -150
  161. package/alert/alert.theme.d.ts +0 -39
  162. package/alert/alert.theme.service.d.ts +0 -19
  163. package/badge/badge.component.d.ts +0 -196
  164. package/badge/badge.theme.d.ts +0 -53
  165. package/badge/badge.theme.service.d.ts +0 -19
  166. package/base-component.directive.d.ts +0 -51
  167. package/breadcrumb/breadcrumb-item.component.d.ts +0 -84
  168. package/breadcrumb/breadcrumb-item.theme.d.ts +0 -33
  169. package/breadcrumb/breadcrumb-item.theme.service.d.ts +0 -19
  170. package/breadcrumb/breadcrumb.component.d.ts +0 -43
  171. package/breadcrumb/breadcrumb.theme.d.ts +0 -29
  172. package/breadcrumb/breadcrumb.theme.service.d.ts +0 -19
  173. package/button/button.component.d.ts +0 -250
  174. package/button/button.theme.d.ts +0 -79
  175. package/button/button.theme.service.d.ts +0 -19
  176. package/core/flowbite.theme.init.d.ts +0 -9
  177. package/core/index.d.ts +0 -1
  178. package/dark-theme-toggle/README.md +0 -4
  179. package/dark-theme-toggle/dark-theme-toggle.component.d.ts +0 -51
  180. package/dark-theme-toggle/dark-theme-toggle.theme.d.ts +0 -23
  181. package/dark-theme-toggle/dark-theme-toggle.theme.service.d.ts +0 -19
  182. package/dark-theme-toggle/index.d.ts +0 -3
  183. package/dropdown/README.md +0 -4
  184. package/dropdown/dropdown-divider.component.d.ts +0 -36
  185. package/dropdown/dropdown-divider.theme.d.ts +0 -23
  186. package/dropdown/dropdown-divider.theme.service.d.ts +0 -19
  187. package/dropdown/dropdown-header.component.d.ts +0 -42
  188. package/dropdown/dropdown-header.theme.d.ts +0 -28
  189. package/dropdown/dropdown-header.theme.service.d.ts +0 -19
  190. package/dropdown/dropdown-item.component.d.ts +0 -36
  191. package/dropdown/dropdown-item.theme.d.ts +0 -23
  192. package/dropdown/dropdown-item.theme.service.d.ts +0 -19
  193. package/dropdown/dropdown.component.d.ts +0 -136
  194. package/dropdown/dropdown.theme.d.ts +0 -56
  195. package/dropdown/dropdown.theme.service.d.ts +0 -19
  196. package/fesm2022/flowbite-angular-core.mjs +0 -322
  197. package/fesm2022/flowbite-angular-core.mjs.map +0 -1
  198. package/fesm2022/flowbite-angular-dark-theme-toggle.mjs +0 -139
  199. package/fesm2022/flowbite-angular-dark-theme-toggle.mjs.map +0 -1
  200. package/fesm2022/flowbite-angular-router-link-active.mjs +0 -68
  201. package/fesm2022/flowbite-angular-router-link-active.mjs.map +0 -1
  202. package/fesm2022/flowbite-angular-router-link.mjs +0 -73
  203. package/fesm2022/flowbite-angular-router-link.mjs.map +0 -1
  204. package/fesm2022/flowbite-angular-sanitize-html.mjs +0 -39
  205. package/fesm2022/flowbite-angular-sanitize-html.mjs.map +0 -1
  206. package/fesm2022/flowbite-angular-scroll-top.mjs +0 -193
  207. package/fesm2022/flowbite-angular-scroll-top.mjs.map +0 -1
  208. package/fesm2022/flowbite-angular-theme.mjs +0 -78
  209. package/fesm2022/flowbite-angular-theme.mjs.map +0 -1
  210. package/fesm2022/flowbite-angular-utils.mjs +0 -210
  211. package/fesm2022/flowbite-angular-utils.mjs.map +0 -1
  212. package/flowbite.theme.service.d.ts +0 -12
  213. package/icon/icon-registry.d.ts +0 -45
  214. package/icon/icon.component.d.ts +0 -22
  215. package/icon/trusted-types.d.ts +0 -15
  216. package/indicator/indicators.component.d.ts +0 -224
  217. package/indicator/indicators.theme.d.ts +0 -59
  218. package/indicator/indicators.theme.service.d.ts +0 -19
  219. package/modal/modal-body.component.d.ts +0 -36
  220. package/modal/modal-body.theme.d.ts +0 -23
  221. package/modal/modal-body.theme.service.d.ts +0 -19
  222. package/modal/modal-footer.component.d.ts +0 -36
  223. package/modal/modal-footer.theme.d.ts +0 -23
  224. package/modal/modal-footer.theme.service.d.ts +0 -19
  225. package/modal/modal-header.component.d.ts +0 -60
  226. package/modal/modal-header.theme.d.ts +0 -32
  227. package/modal/modal-header.theme.service.d.ts +0 -19
  228. package/modal/modal.component.d.ts +0 -146
  229. package/modal/modal.theme.d.ts +0 -35
  230. package/modal/modal.theme.service.d.ts +0 -19
  231. package/navbar/navbar-brand.component.d.ts +0 -36
  232. package/navbar/navbar-brand.theme.d.ts +0 -23
  233. package/navbar/navbar-brand.theme.service.d.ts +0 -19
  234. package/navbar/navbar-content.component.d.ts +0 -50
  235. package/navbar/navbar-content.theme.d.ts +0 -28
  236. package/navbar/navbar-content.theme.service.d.ts +0 -19
  237. package/navbar/navbar-icon-button.component.d.ts +0 -59
  238. package/navbar/navbar-icon-button.theme.d.ts +0 -26
  239. package/navbar/navbar-icon-button.theme.service.d.ts +0 -19
  240. package/navbar/navbar-item.component.d.ts +0 -67
  241. package/navbar/navbar-item.theme.d.ts +0 -26
  242. package/navbar/navbar-item.theme.service.d.ts +0 -19
  243. package/navbar/navbar-toggle.component.d.ts +0 -51
  244. package/navbar/navbar-toggle.theme.d.ts +0 -23
  245. package/navbar/navbar-toggle.theme.service.d.ts +0 -19
  246. package/navbar/navbar.component.d.ts +0 -121
  247. package/navbar/navbar.theme.d.ts +0 -21
  248. package/navbar/navbar.theme.service.d.ts +0 -19
  249. package/router-link/README.md +0 -4
  250. package/router-link/flowbite-router-link.directive.d.ts +0 -28
  251. package/router-link/index.d.ts +0 -1
  252. package/router-link-active/README.md +0 -4
  253. package/router-link-active/flowbite-router-link-active.directive.d.ts +0 -37
  254. package/router-link-active/index.d.ts +0 -1
  255. package/sanitize-html/README.md +0 -4
  256. package/sanitize-html/index.d.ts +0 -1
  257. package/sanitize-html/sanitize-html.pipe.d.ts +0 -20
  258. package/scroll-top/README.md +0 -4
  259. package/scroll-top/index.d.ts +0 -4
  260. package/scroll-top/scroll-top.component.d.ts +0 -114
  261. package/scroll-top/scroll-top.theme.d.ts +0 -39
  262. package/scroll-top/scroll-top.theme.service.d.ts +0 -19
  263. package/sidebar/sidebar-item-group.component.d.ts +0 -100
  264. package/sidebar/sidebar-item-group.theme.d.ts +0 -31
  265. package/sidebar/sidebar-item-group.theme.service.d.ts +0 -19
  266. package/sidebar/sidebar-item.component.d.ts +0 -101
  267. package/sidebar/sidebar-item.theme.d.ts +0 -33
  268. package/sidebar/sidebar-item.theme.service.d.ts +0 -19
  269. package/sidebar/sidebar-menu.component.d.ts +0 -93
  270. package/sidebar/sidebar-menu.theme.d.ts +0 -30
  271. package/sidebar/sidebar-menu.theme.service.d.ts +0 -19
  272. package/sidebar/sidebar-page-content.component.d.ts +0 -46
  273. package/sidebar/sidebar-page-content.theme.d.ts +0 -27
  274. package/sidebar/sidebar-page-content.theme.service.d.ts +0 -19
  275. package/sidebar/sidebar-toggle.component.d.ts +0 -95
  276. package/sidebar/sidebar-toggle.theme.d.ts +0 -34
  277. package/sidebar/sidebar-toggle.theme.service.d.ts +0 -19
  278. package/sidebar/sidebar.component.d.ts +0 -84
  279. package/sidebar/sidebar.theme.d.ts +0 -22
  280. package/sidebar/sidebar.theme.service.d.ts +0 -19
  281. package/tailwind.config.js +0 -303
  282. package/theme/README.md +0 -4
  283. package/theme/flowbite-theme.directive.d.ts +0 -36
  284. package/theme/index.d.ts +0 -1
  285. package/type-definitions/colors/flowbite.colors.d.ts +0 -19
  286. package/type-definitions/colors/flowbite.gradient-colors.d.ts +0 -11
  287. package/type-definitions/colors/flowbite.gradient-duo-tone-colors.d.ts +0 -12
  288. package/type-definitions/colors/index.d.ts +0 -3
  289. package/type-definitions/flowbite.boolean.d.ts +0 -14
  290. package/type-definitions/flowbite.class.d.ts +0 -6
  291. package/type-definitions/flowbite.combination.d.ts +0 -8
  292. package/type-definitions/flowbite.content-positions.d.ts +0 -6
  293. package/type-definitions/flowbite.deep-partial.d.ts +0 -6
  294. package/type-definitions/flowbite.heading-levels.d.ts +0 -4
  295. package/type-definitions/flowbite.positions.d.ts +0 -14
  296. package/type-definitions/flowbite.router-link-parameter.d.ts +0 -5
  297. package/type-definitions/flowbite.sizes.d.ts +0 -10
  298. package/type-definitions/flowbite.themes.d.ts +0 -4
  299. package/type-definitions/index.d.ts +0 -12
  300. package/utils/README.md +0 -4
  301. package/utils/icon.list.d.ts +0 -7
  302. package/utils/id.generator.d.ts +0 -59
  303. package/utils/index.d.ts +0 -8
  304. package/utils/theme/clone-deep.d.ts +0 -7
  305. package/utils/theme/create-class.d.ts +0 -7
  306. package/utils/theme/create-theme.d.ts +0 -7
  307. package/utils/theme/is-object.d.ts +0 -7
  308. package/utils/theme/merge-theme.d.ts +0 -8
  309. package/utils/theme/to-string.d.ts +0 -7
@@ -0,0 +1,994 @@
1
+ import { createTheme, mergeDeep, colorToTheme } from 'flowbite-angular';
2
+ import * as i0 from '@angular/core';
3
+ import { InjectionToken, inject, input, booleanAttribute, computed, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
4
+ import { createStateToken, createStateProvider, createStateInjector, createState } from 'ng-primitives/state';
5
+ import { provideButtonState } from 'ng-primitives/button';
6
+ import * as i2 from 'ng-primitives/interactions';
7
+ import { NgpFocus } from 'ng-primitives/interactions';
8
+ import * as i1 from 'ng-primitives/pagination';
9
+ import { NgpPaginationButton, NgpPaginationFirst, NgpPaginationLast, NgpPaginationNext, NgpPaginationPrevious, injectPaginationState, NgpPagination } from 'ng-primitives/pagination';
10
+ import { twMerge } from 'tailwind-merge';
11
+ import { Icon } from 'flowbite-angular/icon';
12
+ import { chevronDoubleLeft, chevronDoubleRight, chevronRight, chevronLeft } from 'flowbite-angular/icon/outline/arrows';
13
+ import { provideIcons } from '@ng-icons/core';
14
+
15
+ const flowbitePaginationTheme = createTheme({
16
+ host: {
17
+ base: '',
18
+ transition: '',
19
+ },
20
+ container: {
21
+ base: 'inline-flex -space-x-px text-sm',
22
+ transition: '',
23
+ },
24
+ });
25
+
26
+ const defaultFlowbitePaginationConfig = {
27
+ baseTheme: flowbitePaginationTheme,
28
+ tabs: 5,
29
+ color: 'default',
30
+ size: 'md',
31
+ customTheme: {},
32
+ };
33
+ const FlowbitePaginationConfigToken = new InjectionToken('FlowbitePaginationConfigToken');
34
+ /**
35
+ * Provide the default Pagination configuration
36
+ * @param config The Pagination configuration
37
+ * @returns The provider
38
+ */
39
+ const provideFlowbitePaginationConfig = (config) => [
40
+ {
41
+ provide: FlowbitePaginationConfigToken,
42
+ useValue: { ...defaultFlowbitePaginationConfig, ...config },
43
+ },
44
+ ];
45
+ /**
46
+ * Inject the Pagination configuration
47
+ * @see {@link defaultFlowbitePaginationConfig}
48
+ * @returns The configuration
49
+ */
50
+ const injectFlowbitePaginationConfig = () => inject(FlowbitePaginationConfigToken, { optional: true }) ?? defaultFlowbitePaginationConfig;
51
+
52
+ const flowbitePaginationButtonTheme = createTheme({
53
+ host: {
54
+ base: 'inline-flex h-full cursor-pointer items-center justify-center border border-transparent text-center font-medium',
55
+ transition: '',
56
+ focus: 'data-focus:outline-none data-focus-visible:outline-2',
57
+ disabled: 'data-disabled:cursor-not-allowed data-disabled:opacity-50',
58
+ size: {
59
+ xs: 'min-w-8 px-2 py-2 text-xs',
60
+ sm: 'min-w-9 px-2.5 py-2.5 text-sm',
61
+ md: 'text-md min-w-10 px-3 py-2.5',
62
+ lg: 'min-w-11 px-3.5 py-3.5 text-lg',
63
+ xl: 'min-w-12 px-4 py-4 text-xl',
64
+ },
65
+ colorOutline: {
66
+ default: {
67
+ light: 'border-gray-700 text-gray-700 data-hover:bg-gray-700 data-hover:text-gray-100 data-selected:bg-gray-700 data-selected:text-gray-100',
68
+ dark: 'dark:border-gray-300 dark:text-gray-300 dark:data-hover:bg-gray-300 dark:data-hover:text-gray-700 dark:data-selected:bg-gray-300 dark:data-selected:text-gray-700',
69
+ },
70
+ info: {
71
+ light: 'border-blue-700 text-blue-700 data-hover:bg-blue-700 data-hover:text-gray-100 data-selected:bg-blue-700 data-selected:text-gray-100',
72
+ dark: 'dark:border-blue-700 dark:text-blue-600 dark:data-hover:bg-blue-700 dark:data-hover:text-gray-100 dark:data-selected:bg-blue-700 dark:data-selected:text-gray-100',
73
+ },
74
+ failure: {
75
+ light: 'border-red-700 text-red-700 data-hover:bg-red-700 data-hover:text-red-100 data-selected:bg-red-700 data-selected:text-red-100',
76
+ dark: 'dark:border-red-700 dark:text-red-600 dark:data-hover:bg-red-700 dark:data-hover:text-gray-100 dark:data-selected:bg-red-700 dark:data-selected:text-gray-100',
77
+ },
78
+ success: {
79
+ light: 'border-green-700 text-green-700 data-hover:bg-green-700 data-hover:text-green-100 data-selected:bg-green-700 data-selected:text-green-100',
80
+ dark: 'dark:border-green-700 dark:text-green-600 dark:data-hover:bg-green-700 dark:data-hover:text-gray-100 dark:data-selected:bg-green-700 dark:data-selected:text-gray-100',
81
+ },
82
+ warning: {
83
+ light: 'border-yellow-700 text-yellow-700 data-hover:bg-yellow-700 data-hover:text-yellow-100 data-selected:bg-yellow-700 data-selected:text-yellow-100',
84
+ dark: 'dark:border-yellow-700 dark:text-yellow-600 dark:data-hover:bg-yellow-700 dark:data-hover:text-gray-100 dark:data-selected:bg-yellow-700 dark:data-selected:text-gray-100',
85
+ },
86
+ primary: {
87
+ light: 'border-primary-700 text-primary-700 data-hover:bg-primary-700 data-hover:text-primary-100 data-selected:bg-primary-700 data-selected:text-primary-100',
88
+ dark: 'dark:border-primary-700 dark:text-primary-600 dark:data-hover:bg-primary-700 dark:data-selected:bg-primary-700 dark:data-hover:text-gray-100 dark:data-selected:text-gray-100',
89
+ },
90
+ },
91
+ },
92
+ });
93
+
94
+ const defaultFlowbitePaginationButtonConfig = {
95
+ baseTheme: flowbitePaginationButtonTheme,
96
+ color: 'default',
97
+ size: 'md',
98
+ outline: false,
99
+ customTheme: {},
100
+ };
101
+ const FlowbitePaginationButtonConfigToken = new InjectionToken('FlowbitePaginationButtonConfigToken');
102
+ /**
103
+ * Provide the default PaginationButton configuration
104
+ * @param config The PaginationButton configuration
105
+ * @returns The provider
106
+ */
107
+ const provideFlowbitePaginationButtonConfig = (config) => [
108
+ {
109
+ provide: FlowbitePaginationButtonConfigToken,
110
+ useValue: { ...defaultFlowbitePaginationButtonConfig, ...config },
111
+ },
112
+ ];
113
+ /**
114
+ * Inject the PaginationButton configuration
115
+ * @see {@link defaultFlowbitePaginationButtonConfig}
116
+ * @returns The configuration
117
+ */
118
+ const injectFlowbitePaginationButtonConfig = () => inject(FlowbitePaginationButtonConfigToken, { optional: true }) ??
119
+ defaultFlowbitePaginationButtonConfig;
120
+
121
+ const FlowbitePaginationButtonStateToken = createStateToken('Flowbite PaginationButton');
122
+ const provideFlowbitePaginationButtonState = createStateProvider(FlowbitePaginationButtonStateToken);
123
+ const injectFlowbitePaginationButtonState = createStateInjector(FlowbitePaginationButtonStateToken);
124
+ const flowbitePaginationButtonState = createState(FlowbitePaginationButtonStateToken);
125
+
126
+ class PaginationButton {
127
+ constructor() {
128
+ this.config = injectFlowbitePaginationButtonConfig();
129
+ /**
130
+ * @see {@link injectFlowbitePaginationFirstConfig}
131
+ */
132
+ this.color = input(this.config.color);
133
+ /**
134
+ * @see {@link injectFlowbitePaginationFirstConfig}
135
+ */
136
+ this.size = input(this.config.size);
137
+ /**
138
+ * @see {@link injectFlowbitePaginationFirstConfig}
139
+ */
140
+ this.outline = input(this.config.outline, {
141
+ transform: booleanAttribute,
142
+ });
143
+ /**
144
+ * @see {@link injectFlowbitePaginationButtonConfig}
145
+ */
146
+ this.customTheme = input(this.config.customTheme);
147
+ this.theme = computed(() => {
148
+ const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
149
+ return {
150
+ host: {
151
+ root: twMerge(mergedTheme.host.base, mergedTheme.host.transition, mergedTheme.host.focus, mergedTheme.host.disabled, mergedTheme.host.size[this.state.size()], colorToTheme(mergedTheme.host.colorOutline, this.state.color())),
152
+ },
153
+ };
154
+ });
155
+ /**
156
+ * @internal
157
+ */
158
+ this.state = flowbitePaginationButtonState(this);
159
+ }
160
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PaginationButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
161
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: PaginationButton, isStandalone: true, selector: "\n button[flowbitePaginationButton]\n ", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, outline: { classPropertyName: "outline", publicName: "outline", isSignal: true, isRequired: false, transformFunction: null }, customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root" } }, providers: [provideFlowbitePaginationButtonState(), provideButtonState()], exportAs: ["flowbitePaginationButton"], hostDirectives: [{ directive: i1.NgpPaginationButton, inputs: ["ngpPaginationButtonDisabled", "disabled", "ngpPaginationButtonPage", "page"] }, { directive: i2.NgpFocus }], ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
162
+ }
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PaginationButton, decorators: [{
164
+ type: Component,
165
+ args: [{
166
+ standalone: true,
167
+ selector: `
168
+ button[flowbitePaginationButton]
169
+ `,
170
+ exportAs: 'flowbitePaginationButton',
171
+ hostDirectives: [
172
+ {
173
+ directive: NgpPaginationButton,
174
+ inputs: [' ngpPaginationButtonDisabled:disabled', 'ngpPaginationButtonPage:page'],
175
+ outputs: [],
176
+ },
177
+ {
178
+ directive: NgpFocus,
179
+ inputs: [],
180
+ outputs: [],
181
+ },
182
+ ],
183
+ imports: [],
184
+ providers: [provideFlowbitePaginationButtonState(), provideButtonState()],
185
+ host: { '[class]': `theme().host.root` },
186
+ template: `<ng-content />`,
187
+ encapsulation: ViewEncapsulation.None,
188
+ changeDetection: ChangeDetectionStrategy.OnPush,
189
+ }]
190
+ }] });
191
+
192
+ const flowbitePaginationFirstTheme = createTheme({
193
+ host: {
194
+ base: 'inline-flex h-full cursor-pointer items-center justify-center rounded-l-md border border-transparent text-center font-medium *:[flowbite-icon]:w-full *:[flowbite-icon]:stroke-3',
195
+ transition: '',
196
+ focus: 'data-focus:outline-none data-focus-visible:outline-2',
197
+ disabled: 'data-disabled:cursor-not-allowed data-disabled:opacity-50',
198
+ size: {
199
+ xs: 'w-8 px-2 py-2 text-xs',
200
+ sm: 'w-9 px-2.5 py-2.5 text-sm',
201
+ md: 'text-md w-10 px-3 py-2.5',
202
+ lg: 'w-11 px-3.5 py-3.5 text-lg',
203
+ xl: 'w-12 px-4 py-4 text-xl',
204
+ },
205
+ colorOutline: {
206
+ default: {
207
+ light: 'border-gray-700 text-gray-700 data-hover:bg-gray-700 data-hover:text-gray-100',
208
+ dark: 'dark:border-gray-300 dark:text-gray-300 dark:data-hover:bg-gray-300 dark:data-hover:text-gray-700',
209
+ },
210
+ info: {
211
+ light: 'border-blue-700 text-blue-700 data-hover:bg-blue-700 data-hover:text-gray-100',
212
+ dark: 'dark:border-blue-700 dark:text-blue-600 dark:data-hover:bg-blue-700 dark:data-hover:text-gray-100',
213
+ },
214
+ failure: {
215
+ light: 'border-red-700 text-red-700 data-hover:bg-red-700 data-hover:text-red-100',
216
+ dark: 'dark:border-red-700 dark:text-red-600 dark:data-hover:bg-red-700 dark:data-hover:text-gray-100',
217
+ },
218
+ success: {
219
+ light: 'border-green-700 text-green-700 data-hover:bg-green-700 data-hover:text-green-100',
220
+ dark: 'dark:border-green-700 dark:text-green-600 dark:data-hover:bg-green-700 dark:data-hover:text-gray-100',
221
+ },
222
+ warning: {
223
+ light: 'border-yellow-700 text-yellow-700 data-hover:bg-yellow-700 data-hover:text-yellow-100',
224
+ dark: 'dark:border-yellow-700 dark:text-yellow-600 dark:data-hover:bg-yellow-700 dark:data-hover:text-gray-100',
225
+ },
226
+ primary: {
227
+ light: 'border-primary-700 text-primary-700 data-hover:bg-primary-700 data-hover:text-primary-100',
228
+ dark: 'dark:border-primary-700 dark:text-primary-600 dark:data-hover:bg-primary-700 dark:data-hover:text-gray-100',
229
+ },
230
+ },
231
+ },
232
+ });
233
+
234
+ const defaultFlowbitePaginationFirstConfig = {
235
+ baseTheme: flowbitePaginationFirstTheme,
236
+ color: 'default',
237
+ size: 'md',
238
+ outline: false,
239
+ customTheme: {},
240
+ };
241
+ const FlowbitePaginationFirstConfigToken = new InjectionToken('FlowbitePaginationFirstConfigToken');
242
+ /**
243
+ * Provide the default PaginationFirst configuration
244
+ * @param config The PaginationFirst configuration
245
+ * @returns The provider
246
+ */
247
+ const provideFlowbitePaginationFirstConfig = (config) => [
248
+ {
249
+ provide: FlowbitePaginationFirstConfigToken,
250
+ useValue: { ...defaultFlowbitePaginationFirstConfig, ...config },
251
+ },
252
+ ];
253
+ /**
254
+ * Inject the PaginationFirst configuration
255
+ * @see {@link defaultFlowbitePaginationFirstConfig}
256
+ * @returns The configuration
257
+ */
258
+ const injectFlowbitePaginationFirstConfig = () => inject(FlowbitePaginationFirstConfigToken, { optional: true }) ??
259
+ defaultFlowbitePaginationFirstConfig;
260
+
261
+ const FlowbitePaginationFirstStateToken = createStateToken('Flowbite PaginationFirst');
262
+ const provideFlowbitePaginationFirstState = createStateProvider(FlowbitePaginationFirstStateToken);
263
+ const injectFlowbitePaginationFirstState = createStateInjector(FlowbitePaginationFirstStateToken);
264
+ const flowbitePaginationFirstState = createState(FlowbitePaginationFirstStateToken);
265
+
266
+ class PaginationFirst {
267
+ constructor() {
268
+ this.config = injectFlowbitePaginationFirstConfig();
269
+ /**
270
+ * @see {@link injectFlowbitePaginationFirstConfig}
271
+ */
272
+ this.color = input(this.config.color);
273
+ /**
274
+ * @see {@link injectFlowbitePaginationFirstConfig}
275
+ */
276
+ this.size = input(this.config.size);
277
+ /**
278
+ * @see {@link injectFlowbitePaginationFirstConfig}
279
+ */
280
+ this.outline = input(this.config.outline, {
281
+ transform: booleanAttribute,
282
+ });
283
+ /**
284
+ * @see {@link injectFlowbitePaginationFirstConfig}
285
+ */
286
+ this.customTheme = input(this.config.customTheme);
287
+ this.theme = computed(() => {
288
+ const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
289
+ return {
290
+ host: {
291
+ root: twMerge(mergedTheme.host.base, mergedTheme.host.transition, mergedTheme.host.focus, mergedTheme.host.disabled, mergedTheme.host.size[this.state.size()], colorToTheme(mergedTheme.host.colorOutline, this.state.color())),
292
+ },
293
+ };
294
+ });
295
+ /**
296
+ * @internal
297
+ */
298
+ this.state = flowbitePaginationFirstState(this);
299
+ }
300
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PaginationFirst, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
301
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: PaginationFirst, isStandalone: true, selector: "\n button[flowbitePaginationFirst]\n ", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, outline: { classPropertyName: "outline", publicName: "outline", isSignal: true, isRequired: false, transformFunction: null }, customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root" } }, providers: [
302
+ provideFlowbitePaginationFirstState(),
303
+ provideButtonState(),
304
+ provideIcons({ chevronDoubleLeft }),
305
+ ], exportAs: ["flowbitePaginationFirst"], hostDirectives: [{ directive: i1.NgpPaginationFirst, inputs: ["ngpPaginationFirstDisabled", "disabled"] }, { directive: i2.NgpFocus }], ngImport: i0, template: `<flowbite-icon name="chevronDoubleLeft" />`, isInline: true, dependencies: [{ kind: "component", type: Icon, selector: "flowbite-icon", inputs: ["name", "svg", "color", "customTheme"], exportAs: ["flowbiteIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
306
+ }
307
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PaginationFirst, decorators: [{
308
+ type: Component,
309
+ args: [{
310
+ standalone: true,
311
+ selector: `
312
+ button[flowbitePaginationFirst]
313
+ `,
314
+ exportAs: 'flowbitePaginationFirst',
315
+ hostDirectives: [
316
+ {
317
+ directive: NgpPaginationFirst,
318
+ inputs: ['ngpPaginationFirstDisabled:disabled'],
319
+ outputs: [],
320
+ },
321
+ {
322
+ directive: NgpFocus,
323
+ inputs: [],
324
+ outputs: [],
325
+ },
326
+ ],
327
+ imports: [Icon],
328
+ providers: [
329
+ provideFlowbitePaginationFirstState(),
330
+ provideButtonState(),
331
+ provideIcons({ chevronDoubleLeft }),
332
+ ],
333
+ host: { '[class]': `theme().host.root` },
334
+ template: `<flowbite-icon name="chevronDoubleLeft" />`,
335
+ encapsulation: ViewEncapsulation.None,
336
+ changeDetection: ChangeDetectionStrategy.OnPush,
337
+ }]
338
+ }] });
339
+
340
+ const flowbitePaginationLastTheme = createTheme({
341
+ host: {
342
+ base: 'inline-flex h-full cursor-pointer items-center justify-center rounded-r-md border border-transparent text-center font-medium *:[flowbite-icon]:w-full *:[flowbite-icon]:stroke-3',
343
+ transition: '',
344
+ focus: 'data-focus:outline-none data-focus-visible:outline-2',
345
+ disabled: 'data-disabled:cursor-not-allowed data-disabled:opacity-50',
346
+ size: {
347
+ xs: 'w-8 px-2 py-2 text-xs',
348
+ sm: 'w-9 px-2.5 py-2.5 text-sm',
349
+ md: 'text-md w-10 px-3 py-2.5',
350
+ lg: 'w-11 px-3.5 py-3.5 text-lg',
351
+ xl: 'w-12 px-4 py-4 text-xl',
352
+ },
353
+ colorOutline: {
354
+ default: {
355
+ light: 'border-gray-700 text-gray-700 data-hover:bg-gray-700 data-hover:text-gray-100',
356
+ dark: 'dark:border-gray-300 dark:text-gray-300 dark:data-hover:bg-gray-300 dark:data-hover:text-gray-700',
357
+ },
358
+ info: {
359
+ light: 'border-blue-700 text-blue-700 data-hover:bg-blue-700 data-hover:text-gray-100',
360
+ dark: 'dark:border-blue-700 dark:text-blue-600 dark:data-hover:bg-blue-700 dark:data-hover:text-gray-100',
361
+ },
362
+ failure: {
363
+ light: 'border-red-700 text-red-700 data-hover:bg-red-700 data-hover:text-red-100',
364
+ dark: 'dark:border-red-700 dark:text-red-600 dark:data-hover:bg-red-700 dark:data-hover:text-gray-100',
365
+ },
366
+ success: {
367
+ light: 'border-green-700 text-green-700 data-hover:bg-green-700 data-hover:text-green-100',
368
+ dark: 'dark:border-green-700 dark:text-green-600 dark:data-hover:bg-green-700 dark:data-hover:text-gray-100',
369
+ },
370
+ warning: {
371
+ light: 'border-yellow-700 text-yellow-700 data-hover:bg-yellow-700 data-hover:text-yellow-100',
372
+ dark: 'dark:border-yellow-700 dark:text-yellow-600 dark:data-hover:bg-yellow-700 dark:data-hover:text-gray-100',
373
+ },
374
+ primary: {
375
+ light: 'border-primary-700 text-primary-700 data-hover:bg-primary-700 data-hover:text-primary-100',
376
+ dark: 'dark:border-primary-700 dark:text-primary-600 dark:data-hover:bg-primary-700 dark:data-hover:text-gray-100',
377
+ },
378
+ },
379
+ },
380
+ });
381
+
382
+ const defaultFlowbitePaginationLastConfig = {
383
+ baseTheme: flowbitePaginationLastTheme,
384
+ color: 'default',
385
+ size: 'md',
386
+ outline: false,
387
+ customTheme: {},
388
+ };
389
+ const FlowbitePaginationLastConfigToken = new InjectionToken('FlowbitePaginationLastConfigToken');
390
+ /**
391
+ * Provide the default PaginationLast configuration
392
+ * @param config The PaginationLast configuration
393
+ * @returns The provider
394
+ */
395
+ const provideFlowbitePaginationLastConfig = (config) => [
396
+ {
397
+ provide: FlowbitePaginationLastConfigToken,
398
+ useValue: { ...defaultFlowbitePaginationLastConfig, ...config },
399
+ },
400
+ ];
401
+ /**
402
+ * Inject the PaginationLast configuration
403
+ * @see {@link defaultFlowbitePaginationLastConfig}
404
+ * @returns The configuration
405
+ */
406
+ const injectFlowbitePaginationLastConfig = () => inject(FlowbitePaginationLastConfigToken, { optional: true }) ??
407
+ defaultFlowbitePaginationLastConfig;
408
+
409
+ const FlowbitePaginationLastStateToken = createStateToken('Flowbite PaginationLast');
410
+ const provideFlowbitePaginationLastState = createStateProvider(FlowbitePaginationLastStateToken);
411
+ const injectFlowbitePaginationLastState = createStateInjector(FlowbitePaginationLastStateToken);
412
+ const flowbitePaginationLastState = createState(FlowbitePaginationLastStateToken);
413
+
414
+ class PaginationLast {
415
+ constructor() {
416
+ this.config = injectFlowbitePaginationLastConfig();
417
+ /**
418
+ * @see {@link injectFlowbitePaginationLastConfig}
419
+ */
420
+ this.color = input(this.config.color);
421
+ /**
422
+ * @see {@link injectFlowbitePaginationLastConfig}
423
+ */
424
+ this.size = input(this.config.size);
425
+ /**
426
+ * @see {@link injectFlowbitePaginationLastConfig}
427
+ */
428
+ this.outline = input(this.config.outline, {
429
+ transform: booleanAttribute,
430
+ });
431
+ /**
432
+ * @see {@link injectFlowbitePaginationLastConfig}
433
+ */
434
+ this.customTheme = input(this.config.customTheme);
435
+ this.theme = computed(() => {
436
+ const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
437
+ return {
438
+ host: {
439
+ root: twMerge(mergedTheme.host.base, mergedTheme.host.transition, mergedTheme.host.focus, mergedTheme.host.disabled, mergedTheme.host.size[this.state.size()], colorToTheme(mergedTheme.host.colorOutline, this.state.color())),
440
+ },
441
+ };
442
+ });
443
+ /**
444
+ * @internal
445
+ */
446
+ this.state = flowbitePaginationLastState(this);
447
+ }
448
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PaginationLast, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
449
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: PaginationLast, isStandalone: true, selector: "\n button[flowbitePaginationLast]\n ", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, outline: { classPropertyName: "outline", publicName: "outline", isSignal: true, isRequired: false, transformFunction: null }, customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root" } }, providers: [
450
+ provideFlowbitePaginationLastState(),
451
+ provideButtonState(),
452
+ provideIcons({ chevronDoubleRight }),
453
+ ], exportAs: ["flowbitePaginationLast"], hostDirectives: [{ directive: i1.NgpPaginationLast, inputs: ["ngpPaginationLastDisabled", "disabled"] }, { directive: i2.NgpFocus }], ngImport: i0, template: `<flowbite-icon name="chevronDoubleRight" />`, isInline: true, dependencies: [{ kind: "component", type: Icon, selector: "flowbite-icon", inputs: ["name", "svg", "color", "customTheme"], exportAs: ["flowbiteIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
454
+ }
455
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PaginationLast, decorators: [{
456
+ type: Component,
457
+ args: [{
458
+ standalone: true,
459
+ selector: `
460
+ button[flowbitePaginationLast]
461
+ `,
462
+ exportAs: 'flowbitePaginationLast',
463
+ hostDirectives: [
464
+ {
465
+ directive: NgpPaginationLast,
466
+ inputs: ['ngpPaginationLastDisabled:disabled'],
467
+ outputs: [],
468
+ },
469
+ {
470
+ directive: NgpFocus,
471
+ inputs: [],
472
+ outputs: [],
473
+ },
474
+ ],
475
+ imports: [Icon],
476
+ providers: [
477
+ provideFlowbitePaginationLastState(),
478
+ provideButtonState(),
479
+ provideIcons({ chevronDoubleRight }),
480
+ ],
481
+ host: { '[class]': `theme().host.root` },
482
+ template: `<flowbite-icon name="chevronDoubleRight" />`,
483
+ encapsulation: ViewEncapsulation.None,
484
+ changeDetection: ChangeDetectionStrategy.OnPush,
485
+ }]
486
+ }] });
487
+
488
+ const flowbitePaginationNextTheme = createTheme({
489
+ host: {
490
+ base: 'inline-flex h-full cursor-pointer items-center justify-center border border-transparent text-center font-medium *:[flowbite-icon]:w-full *:[flowbite-icon]:stroke-3',
491
+ transition: '',
492
+ focus: 'data-focus:outline-none data-focus-visible:outline-2',
493
+ disabled: 'data-disabled:cursor-not-allowed data-disabled:opacity-50',
494
+ size: {
495
+ xs: 'w-8 px-2 py-2 text-xs',
496
+ sm: 'w-9 px-2.5 py-2.5 text-sm',
497
+ md: 'text-md w-10 px-3 py-2.5',
498
+ lg: 'w-11 px-3.5 py-3.5 text-lg',
499
+ xl: 'w-12 px-4 py-4 text-xl',
500
+ },
501
+ colorOutline: {
502
+ default: {
503
+ light: 'border-gray-700 text-gray-700 data-hover:bg-gray-700 data-hover:text-gray-100',
504
+ dark: 'dark:border-gray-300 dark:text-gray-300 dark:data-hover:bg-gray-300 dark:data-hover:text-gray-700',
505
+ },
506
+ info: {
507
+ light: 'border-blue-700 text-blue-700 data-hover:bg-blue-700 data-hover:text-gray-100',
508
+ dark: 'dark:border-blue-700 dark:text-blue-600 dark:data-hover:bg-blue-700 dark:data-hover:text-gray-100',
509
+ },
510
+ failure: {
511
+ light: 'border-red-700 text-red-700 data-hover:bg-red-700 data-hover:text-red-100',
512
+ dark: 'dark:border-red-700 dark:text-red-600 dark:data-hover:bg-red-700 dark:data-hover:text-gray-100',
513
+ },
514
+ success: {
515
+ light: 'border-green-700 text-green-700 data-hover:bg-green-700 data-hover:text-green-100',
516
+ dark: 'dark:border-green-700 dark:text-green-600 dark:data-hover:bg-green-700 dark:data-hover:text-gray-100',
517
+ },
518
+ warning: {
519
+ light: 'border-yellow-700 text-yellow-700 data-hover:bg-yellow-700 data-hover:text-yellow-100',
520
+ dark: 'dark:border-yellow-700 dark:text-yellow-600 dark:data-hover:bg-yellow-700 dark:data-hover:text-gray-100',
521
+ },
522
+ primary: {
523
+ light: 'border-primary-700 text-primary-700 data-hover:bg-primary-700 data-hover:text-primary-100',
524
+ dark: 'dark:border-primary-700 dark:text-primary-600 dark:data-hover:bg-primary-700 dark:data-hover:text-gray-100',
525
+ },
526
+ },
527
+ },
528
+ });
529
+
530
+ const defaultFlowbitePaginationNextConfig = {
531
+ baseTheme: flowbitePaginationNextTheme,
532
+ color: 'default',
533
+ size: 'md',
534
+ outline: false,
535
+ customTheme: {},
536
+ };
537
+ const FlowbitePaginationNextConfigToken = new InjectionToken('FlowbitePaginationNextConfigToken');
538
+ /**
539
+ * Provide the default PaginationNext configuration
540
+ * @param config The PaginationNext configuration
541
+ * @returns The provider
542
+ */
543
+ const provideFlowbitePaginationNextConfig = (config) => [
544
+ {
545
+ provide: FlowbitePaginationNextConfigToken,
546
+ useValue: { ...defaultFlowbitePaginationNextConfig, ...config },
547
+ },
548
+ ];
549
+ /**
550
+ * Inject the PaginationNext configuration
551
+ * @see {@link defaultFlowbitePaginationNextConfig}
552
+ * @returns The configuration
553
+ */
554
+ const injectFlowbitePaginationNextConfig = () => inject(FlowbitePaginationNextConfigToken, { optional: true }) ??
555
+ defaultFlowbitePaginationNextConfig;
556
+
557
+ const FlowbitePaginationNextStateToken = createStateToken('Flowbite PaginationNext');
558
+ const provideFlowbitePaginationNextState = createStateProvider(FlowbitePaginationNextStateToken);
559
+ const injectFlowbitePaginationNextState = createStateInjector(FlowbitePaginationNextStateToken);
560
+ const flowbitePaginationNextState = createState(FlowbitePaginationNextStateToken);
561
+
562
+ class PaginationNext {
563
+ constructor() {
564
+ this.config = injectFlowbitePaginationNextConfig();
565
+ /**
566
+ * @see {@link injectFlowbitePaginationNextConfig}
567
+ */
568
+ this.color = input(this.config.color);
569
+ /**
570
+ * @see {@link injectFlowbitePaginationNextConfig}
571
+ */
572
+ this.size = input(this.config.size);
573
+ /**
574
+ * @see {@link injectFlowbitePaginationNextConfig}
575
+ */
576
+ this.outline = input(this.config.outline, {
577
+ transform: booleanAttribute,
578
+ });
579
+ /**
580
+ * @see {@link injectFlowbitePaginationFirstConfig}
581
+ */
582
+ /**
583
+ * @see {@link injectFlowbitePaginationNextConfig}
584
+ */
585
+ this.customTheme = input(this.config.customTheme);
586
+ this.theme = computed(() => {
587
+ const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
588
+ return {
589
+ host: {
590
+ root: twMerge(mergedTheme.host.base, mergedTheme.host.transition, mergedTheme.host.focus, mergedTheme.host.disabled, mergedTheme.host.size[this.state.size()], colorToTheme(mergedTheme.host.colorOutline, this.state.color())),
591
+ },
592
+ };
593
+ });
594
+ /**
595
+ * @internal
596
+ */
597
+ this.state = flowbitePaginationNextState(this);
598
+ }
599
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PaginationNext, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
600
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: PaginationNext, isStandalone: true, selector: "\n button[flowbitePaginationNext]\n ", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, outline: { classPropertyName: "outline", publicName: "outline", isSignal: true, isRequired: false, transformFunction: null }, customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root" } }, providers: [
601
+ provideFlowbitePaginationNextState(),
602
+ provideButtonState(),
603
+ provideIcons({ chevronRight }),
604
+ ], exportAs: ["flowbitePaginationNext"], hostDirectives: [{ directive: i1.NgpPaginationNext, inputs: ["ngpPaginationNextDisabled", "disabled"] }, { directive: i2.NgpFocus }], ngImport: i0, template: `<flowbite-icon name="chevronRight" />`, isInline: true, dependencies: [{ kind: "component", type: Icon, selector: "flowbite-icon", inputs: ["name", "svg", "color", "customTheme"], exportAs: ["flowbiteIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
605
+ }
606
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PaginationNext, decorators: [{
607
+ type: Component,
608
+ args: [{
609
+ standalone: true,
610
+ selector: `
611
+ button[flowbitePaginationNext]
612
+ `,
613
+ exportAs: 'flowbitePaginationNext',
614
+ hostDirectives: [
615
+ {
616
+ directive: NgpPaginationNext,
617
+ inputs: ['ngpPaginationNextDisabled:disabled'],
618
+ outputs: [],
619
+ },
620
+ {
621
+ directive: NgpFocus,
622
+ inputs: [],
623
+ outputs: [],
624
+ },
625
+ ],
626
+ imports: [Icon],
627
+ providers: [
628
+ provideFlowbitePaginationNextState(),
629
+ provideButtonState(),
630
+ provideIcons({ chevronRight }),
631
+ ],
632
+ host: { '[class]': `theme().host.root` },
633
+ template: `<flowbite-icon name="chevronRight" />`,
634
+ encapsulation: ViewEncapsulation.None,
635
+ changeDetection: ChangeDetectionStrategy.OnPush,
636
+ }]
637
+ }] });
638
+
639
+ const flowbitePaginationPreviousTheme = createTheme({
640
+ host: {
641
+ base: 'inline-flex h-full cursor-pointer items-center justify-center border border-transparent text-center font-medium *:[flowbite-icon]:w-full *:[flowbite-icon]:stroke-3',
642
+ transition: '',
643
+ focus: 'data-focus:outline-none data-focus-visible:outline-2',
644
+ disabled: 'data-disabled:cursor-not-allowed data-disabled:opacity-50',
645
+ size: {
646
+ xs: 'w-8 px-2 py-2 text-xs',
647
+ sm: 'w-9 px-2.5 py-2.5 text-sm',
648
+ md: 'text-md w-10 px-3 py-2.5',
649
+ lg: 'w-11 px-3.5 py-3.5 text-lg',
650
+ xl: 'w-12 px-4 py-4 text-xl',
651
+ },
652
+ colorOutline: {
653
+ default: {
654
+ light: 'border-gray-700 text-gray-700 data-hover:bg-gray-700 data-hover:text-gray-100',
655
+ dark: 'dark:border-gray-300 dark:text-gray-300 dark:data-hover:bg-gray-300 dark:data-hover:text-gray-700',
656
+ },
657
+ info: {
658
+ light: 'border-blue-700 text-blue-700 data-hover:bg-blue-700 data-hover:text-gray-100',
659
+ dark: 'dark:border-blue-700 dark:text-blue-600 dark:data-hover:bg-blue-700 dark:data-hover:text-gray-100',
660
+ },
661
+ failure: {
662
+ light: 'border-red-700 text-red-700 data-hover:bg-red-700 data-hover:text-red-100',
663
+ dark: 'dark:border-red-700 dark:text-red-600 dark:data-hover:bg-red-700 dark:data-hover:text-gray-100',
664
+ },
665
+ success: {
666
+ light: 'border-green-700 text-green-700 data-hover:bg-green-700 data-hover:text-green-100',
667
+ dark: 'dark:border-green-700 dark:text-green-600 dark:data-hover:bg-green-700 dark:data-hover:text-gray-100',
668
+ },
669
+ warning: {
670
+ light: 'border-yellow-700 text-yellow-700 data-hover:bg-yellow-700 data-hover:text-yellow-100',
671
+ dark: 'dark:border-yellow-700 dark:text-yellow-600 dark:data-hover:bg-yellow-700 dark:data-hover:text-gray-100',
672
+ },
673
+ primary: {
674
+ light: 'border-primary-700 text-primary-700 data-hover:bg-primary-700 data-hover:text-primary-100',
675
+ dark: 'dark:border-primary-700 dark:text-primary-600 dark:data-hover:bg-primary-700 dark:data-hover:text-gray-100',
676
+ },
677
+ },
678
+ },
679
+ });
680
+
681
+ const defaultFlowbitePaginationPreviousConfig = {
682
+ baseTheme: flowbitePaginationPreviousTheme,
683
+ color: 'default',
684
+ size: 'md',
685
+ outline: false,
686
+ customTheme: {},
687
+ };
688
+ const FlowbitePaginationPreviousConfigToken = new InjectionToken('FlowbitePaginationPreviousConfigToken');
689
+ /**
690
+ * Provide the default PaginationPrevious configuration
691
+ * @param config The PaginationPrevious configuration
692
+ * @returns The provider
693
+ */
694
+ const provideFlowbitePaginationPreviousConfig = (config) => [
695
+ {
696
+ provide: FlowbitePaginationPreviousConfigToken,
697
+ useValue: { ...defaultFlowbitePaginationPreviousConfig, ...config },
698
+ },
699
+ ];
700
+ /**
701
+ * Inject the PaginationPrevious configuration
702
+ * @see {@link defaultFlowbitePaginationPreviousConfig}
703
+ * @returns The configuration
704
+ */
705
+ const injectFlowbitePaginationPreviousConfig = () => inject(FlowbitePaginationPreviousConfigToken, { optional: true }) ??
706
+ defaultFlowbitePaginationPreviousConfig;
707
+
708
+ const FlowbitePaginationPreviousStateToken = createStateToken('Flowbite PaginationPrevious');
709
+ const provideFlowbitePaginationPreviousState = createStateProvider(FlowbitePaginationPreviousStateToken);
710
+ const injectFlowbitePaginationPreviousState = createStateInjector(FlowbitePaginationPreviousStateToken);
711
+ const flowbitePaginationPreviousState = createState(FlowbitePaginationPreviousStateToken);
712
+
713
+ class PaginationPrevious {
714
+ constructor() {
715
+ this.config = injectFlowbitePaginationPreviousConfig();
716
+ /**
717
+ * @see {@link injectFlowbitePaginationPreviousConfig}
718
+ */
719
+ this.color = input(this.config.color);
720
+ /**
721
+ * @see {@link injectFlowbitePaginationPreviousConfig}
722
+ */
723
+ this.size = input(this.config.size);
724
+ /**
725
+ * @see {@link injectFlowbitePaginationPreviousConfig}
726
+ */
727
+ this.outline = input(this.config.outline, {
728
+ transform: booleanAttribute,
729
+ });
730
+ /**
731
+ * @see {@link injectFlowbitePaginationPreviousConfig}
732
+ */
733
+ this.customTheme = input(this.config.customTheme);
734
+ this.theme = computed(() => {
735
+ const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
736
+ return {
737
+ host: {
738
+ root: twMerge(mergedTheme.host.base, mergedTheme.host.transition, mergedTheme.host.focus, mergedTheme.host.disabled, mergedTheme.host.size[this.state.size()], colorToTheme(mergedTheme.host.colorOutline, this.state.color())),
739
+ },
740
+ };
741
+ });
742
+ /**
743
+ * @internal
744
+ */
745
+ this.state = flowbitePaginationPreviousState(this);
746
+ }
747
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PaginationPrevious, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
748
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: PaginationPrevious, isStandalone: true, selector: "\n button[flowbitePaginationPrevious]\n ", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, outline: { classPropertyName: "outline", publicName: "outline", isSignal: true, isRequired: false, transformFunction: null }, customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root" } }, providers: [
749
+ provideFlowbitePaginationPreviousState(),
750
+ provideButtonState(),
751
+ provideIcons({ chevronLeft }),
752
+ ], exportAs: ["flowbitePaginationPrevious"], hostDirectives: [{ directive: i1.NgpPaginationPrevious, inputs: ["ngpPaginationPreviousDisabled", "disabled"] }, { directive: i2.NgpFocus }], ngImport: i0, template: `<flowbite-icon name="chevronLeft" />`, isInline: true, dependencies: [{ kind: "component", type: Icon, selector: "flowbite-icon", inputs: ["name", "svg", "color", "customTheme"], exportAs: ["flowbiteIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
753
+ }
754
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PaginationPrevious, decorators: [{
755
+ type: Component,
756
+ args: [{
757
+ standalone: true,
758
+ selector: `
759
+ button[flowbitePaginationPrevious]
760
+ `,
761
+ exportAs: 'flowbitePaginationPrevious',
762
+ hostDirectives: [
763
+ {
764
+ directive: NgpPaginationPrevious,
765
+ inputs: ['ngpPaginationPreviousDisabled:disabled'],
766
+ outputs: [],
767
+ },
768
+ {
769
+ directive: NgpFocus,
770
+ inputs: [],
771
+ outputs: [],
772
+ },
773
+ ],
774
+ imports: [Icon],
775
+ providers: [
776
+ provideFlowbitePaginationPreviousState(),
777
+ provideButtonState(),
778
+ provideIcons({ chevronLeft }),
779
+ ],
780
+ host: { '[class]': `theme().host.root` },
781
+ template: `<flowbite-icon name="chevronLeft" />`,
782
+ encapsulation: ViewEncapsulation.None,
783
+ changeDetection: ChangeDetectionStrategy.OnPush,
784
+ }]
785
+ }] });
786
+
787
+ const FlowbitePaginationStateToken = createStateToken('Flowbite Pagination');
788
+ const provideFlowbitePaginationState = createStateProvider(FlowbitePaginationStateToken);
789
+ const injectFlowbitePaginationState = createStateInjector(FlowbitePaginationStateToken);
790
+ const flowbitePaginationState = createState(FlowbitePaginationStateToken);
791
+
792
+ class Pagination {
793
+ constructor() {
794
+ this.paginationState = injectPaginationState();
795
+ this.config = injectFlowbitePaginationConfig();
796
+ /**
797
+ * Value of how many page tabs to display
798
+ */
799
+ this.visiblePagesCount = computed(() => {
800
+ return Math.min(this.state.tabs(), this.paginationState().pageCount());
801
+ });
802
+ /**
803
+ * Value of the first visible page
804
+ */
805
+ this.firstPageToShow = computed(() => {
806
+ if (this.paginationState().page() <= Math.floor(this.state.tabs() / 2)) {
807
+ return 1;
808
+ }
809
+ if (this.paginationState().page() >
810
+ this.paginationState().pageCount() - Math.ceil(this.state.tabs() / 2)) {
811
+ return this.paginationState().pageCount() - this.visiblePagesCount() + 1;
812
+ }
813
+ return this.paginationState().page() - Math.floor(this.tabs() / 2);
814
+ });
815
+ /**
816
+ * Array of the visible page tabs
817
+ */
818
+ this.visiblePages = computed(() => {
819
+ return Array.from({ length: this.visiblePagesCount() }, (_, i) => this.firstPageToShow() + i);
820
+ });
821
+ this.pages = computed(() => Array.from({ length: this.paginationState().pageCount() }).map((_, i) => i + 1));
822
+ /**
823
+ * @see {@link injectFlowbitePaginationConfig}
824
+ */
825
+ this.tabs = input(this.config.tabs);
826
+ /**
827
+ * @see {@link injectFlowbitePaginationConfig}
828
+ */
829
+ this.color = input(this.config.color);
830
+ /**
831
+ * @see {@link injectFlowbitePaginationConfig}
832
+ */
833
+ this.size = input(this.config.size);
834
+ /**
835
+ * @see {@link injectFlowbitePaginationConfig}
836
+ */
837
+ this.customTheme = input(this.config.customTheme);
838
+ this.theme = computed(() => {
839
+ const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
840
+ return {
841
+ host: {
842
+ root: twMerge(mergedTheme.host.base, mergedTheme.host.transition),
843
+ },
844
+ container: {
845
+ root: twMerge(mergedTheme.container.base, mergedTheme.container.transition),
846
+ },
847
+ };
848
+ });
849
+ /**
850
+ * @internal
851
+ */
852
+ this.state = flowbitePaginationState(this);
853
+ }
854
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: Pagination, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
855
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: Pagination, isStandalone: true, selector: "\n nav[flowbitePagination]\n ", inputs: { tabs: { classPropertyName: "tabs", publicName: "tabs", 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 }, customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root" } }, providers: [
856
+ provideFlowbitePaginationState(),
857
+ provideIcons({ chevronLeft, chevronDoubleLeft, chevronRight, chevronDoubleRight }),
858
+ ], exportAs: ["flowbitePagination"], hostDirectives: [{ directive: i1.NgpPagination, inputs: ["ngpPaginationPage", "page", "ngpPaginationPageCount", "pageCount", "ngpPaginationDisabled", "disabled"], outputs: ["ngpPaginationPageChange", "pageChange"] }], ngImport: i0, template: `
859
+ <ul [class]="theme().container.root">
860
+ <li>
861
+ <button
862
+ flowbitePaginationFirst
863
+ outline
864
+ [color]="state.color()"
865
+ [size]="state.size()"
866
+ aria-label="First Page"></button>
867
+ </li>
868
+ <li>
869
+ <button
870
+ flowbitePaginationPrevious
871
+ outline
872
+ [color]="state.color()"
873
+ [size]="state.size()"
874
+ aria-label="Previous Page"></button>
875
+ </li>
876
+ @for (page of visiblePages(); track $index) {
877
+ <li>
878
+ <button
879
+ flowbitePaginationButton
880
+ outline
881
+ [color]="state.color()"
882
+ [size]="state.size()"
883
+ [page]="page"
884
+ [attr.aria-label]="'Page' + page">
885
+ {{ page }}
886
+ </button>
887
+ </li>
888
+ }
889
+ <li>
890
+ <button
891
+ flowbitePaginationNext
892
+ outline
893
+ [color]="state.color()"
894
+ [size]="state.size()"
895
+ aria-label="Next Page"></button>
896
+ </li>
897
+ <li>
898
+ <button
899
+ flowbitePaginationLast
900
+ outline
901
+ [color]="state.color()"
902
+ [size]="state.size()"
903
+ aria-label="Last Page"></button>
904
+ </li>
905
+ </ul>
906
+ `, isInline: true, dependencies: [{ kind: "component", type: PaginationLast, selector: "\n button[flowbitePaginationLast]\n ", inputs: ["color", "size", "outline", "customTheme"], exportAs: ["flowbitePaginationLast"] }, { kind: "component", type: PaginationNext, selector: "\n button[flowbitePaginationNext]\n ", inputs: ["color", "size", "outline", "customTheme"], exportAs: ["flowbitePaginationNext"] }, { kind: "component", type: PaginationFirst, selector: "\n button[flowbitePaginationFirst]\n ", inputs: ["color", "size", "outline", "customTheme"], exportAs: ["flowbitePaginationFirst"] }, { kind: "component", type: PaginationButton, selector: "\n button[flowbitePaginationButton]\n ", inputs: ["color", "size", "outline", "customTheme"], exportAs: ["flowbitePaginationButton"] }, { kind: "component", type: PaginationPrevious, selector: "\n button[flowbitePaginationPrevious]\n ", inputs: ["color", "size", "outline", "customTheme"], exportAs: ["flowbitePaginationPrevious"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
907
+ }
908
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: Pagination, decorators: [{
909
+ type: Component,
910
+ args: [{
911
+ standalone: true,
912
+ selector: `
913
+ nav[flowbitePagination]
914
+ `,
915
+ exportAs: 'flowbitePagination',
916
+ hostDirectives: [
917
+ {
918
+ directive: NgpPagination,
919
+ inputs: [
920
+ 'ngpPaginationPage:page',
921
+ 'ngpPaginationPageCount:pageCount',
922
+ 'ngpPaginationDisabled:disabled',
923
+ ],
924
+ outputs: ['ngpPaginationPageChange:pageChange'],
925
+ },
926
+ ],
927
+ imports: [PaginationLast, PaginationNext, PaginationFirst, PaginationButton, PaginationPrevious],
928
+ providers: [
929
+ provideFlowbitePaginationState(),
930
+ provideIcons({ chevronLeft, chevronDoubleLeft, chevronRight, chevronDoubleRight }),
931
+ ],
932
+ host: { '[class]': `theme().host.root` },
933
+ template: `
934
+ <ul [class]="theme().container.root">
935
+ <li>
936
+ <button
937
+ flowbitePaginationFirst
938
+ outline
939
+ [color]="state.color()"
940
+ [size]="state.size()"
941
+ aria-label="First Page"></button>
942
+ </li>
943
+ <li>
944
+ <button
945
+ flowbitePaginationPrevious
946
+ outline
947
+ [color]="state.color()"
948
+ [size]="state.size()"
949
+ aria-label="Previous Page"></button>
950
+ </li>
951
+ @for (page of visiblePages(); track $index) {
952
+ <li>
953
+ <button
954
+ flowbitePaginationButton
955
+ outline
956
+ [color]="state.color()"
957
+ [size]="state.size()"
958
+ [page]="page"
959
+ [attr.aria-label]="'Page' + page">
960
+ {{ page }}
961
+ </button>
962
+ </li>
963
+ }
964
+ <li>
965
+ <button
966
+ flowbitePaginationNext
967
+ outline
968
+ [color]="state.color()"
969
+ [size]="state.size()"
970
+ aria-label="Next Page"></button>
971
+ </li>
972
+ <li>
973
+ <button
974
+ flowbitePaginationLast
975
+ outline
976
+ [color]="state.color()"
977
+ [size]="state.size()"
978
+ aria-label="Last Page"></button>
979
+ </li>
980
+ </ul>
981
+ `,
982
+ encapsulation: ViewEncapsulation.None,
983
+ changeDetection: ChangeDetectionStrategy.OnPush,
984
+ }]
985
+ }] });
986
+
987
+ /* Pagination */
988
+
989
+ /**
990
+ * Generated bundle index. Do not edit.
991
+ */
992
+
993
+ export { FlowbitePaginationButtonConfigToken, FlowbitePaginationButtonStateToken, FlowbitePaginationConfigToken, FlowbitePaginationFirstConfigToken, FlowbitePaginationFirstStateToken, FlowbitePaginationLastConfigToken, FlowbitePaginationLastStateToken, FlowbitePaginationNextConfigToken, FlowbitePaginationNextStateToken, FlowbitePaginationPreviousConfigToken, FlowbitePaginationPreviousStateToken, FlowbitePaginationStateToken, Pagination, PaginationButton, PaginationFirst, PaginationLast, PaginationNext, PaginationPrevious, defaultFlowbitePaginationButtonConfig, defaultFlowbitePaginationConfig, defaultFlowbitePaginationFirstConfig, defaultFlowbitePaginationLastConfig, defaultFlowbitePaginationNextConfig, defaultFlowbitePaginationPreviousConfig, flowbitePaginationButtonState, flowbitePaginationButtonTheme, flowbitePaginationFirstState, flowbitePaginationFirstTheme, flowbitePaginationLastState, flowbitePaginationLastTheme, flowbitePaginationNextState, flowbitePaginationNextTheme, flowbitePaginationPreviousState, flowbitePaginationPreviousTheme, flowbitePaginationState, flowbitePaginationTheme, injectFlowbitePaginationButtonConfig, injectFlowbitePaginationButtonState, injectFlowbitePaginationConfig, injectFlowbitePaginationFirstConfig, injectFlowbitePaginationFirstState, injectFlowbitePaginationLastConfig, injectFlowbitePaginationLastState, injectFlowbitePaginationNextConfig, injectFlowbitePaginationNextState, injectFlowbitePaginationPreviousConfig, injectFlowbitePaginationPreviousState, injectFlowbitePaginationState, provideFlowbitePaginationButtonConfig, provideFlowbitePaginationButtonState, provideFlowbitePaginationConfig, provideFlowbitePaginationFirstConfig, provideFlowbitePaginationFirstState, provideFlowbitePaginationLastConfig, provideFlowbitePaginationLastState, provideFlowbitePaginationNextConfig, provideFlowbitePaginationNextState, provideFlowbitePaginationPreviousConfig, provideFlowbitePaginationPreviousState, provideFlowbitePaginationState };
994
+ //# sourceMappingURL=flowbite-angular-pagination.mjs.map