flowbite-svelte 1.8.6 → 1.10.0

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 (542) hide show
  1. package/dist/accordion/Accordion.svelte +8 -9
  2. package/dist/accordion/Accordion.svelte.d.ts +1 -1
  3. package/dist/accordion/AccordionItem.svelte +10 -11
  4. package/dist/accordion/AccordionItem.svelte.d.ts +1 -1
  5. package/dist/accordion/index.d.ts +1 -1
  6. package/dist/accordion/index.js +1 -1
  7. package/dist/accordion/theme.d.ts +18 -3
  8. package/dist/accordion/theme.js +6 -2
  9. package/dist/alert/Alert.svelte +8 -8
  10. package/dist/alert/Alert.svelte.d.ts +1 -1
  11. package/dist/alert/index.d.ts +1 -1
  12. package/dist/alert/theme.d.ts +1 -0
  13. package/dist/avatar/Avatar.svelte +8 -9
  14. package/dist/avatar/Avatar.svelte.d.ts +1 -1
  15. package/dist/avatar/index.d.ts +1 -1
  16. package/dist/avatar/theme.d.ts +1 -0
  17. package/dist/badge/Badge.svelte +9 -11
  18. package/dist/badge/Badge.svelte.d.ts +1 -1
  19. package/dist/badge/index.d.ts +1 -1
  20. package/dist/badge/theme.d.ts +5 -3
  21. package/dist/badge/theme.js +1 -1
  22. package/dist/banner/Banner.svelte +9 -5
  23. package/dist/banner/Banner.svelte.d.ts +1 -1
  24. package/dist/banner/index.d.ts +1 -1
  25. package/dist/banner/theme.d.ts +2 -0
  26. package/dist/bottom-navigation/BottomNav.svelte +8 -4
  27. package/dist/bottom-navigation/BottomNav.svelte.d.ts +1 -1
  28. package/dist/bottom-navigation/BottomNavHeader.svelte +11 -6
  29. package/dist/bottom-navigation/BottomNavHeader.svelte.d.ts +1 -1
  30. package/dist/bottom-navigation/BottomNavHeaderItem.svelte +9 -4
  31. package/dist/bottom-navigation/BottomNavHeaderItem.svelte.d.ts +1 -1
  32. package/dist/bottom-navigation/BottomNavItem.svelte +8 -4
  33. package/dist/bottom-navigation/BottomNavItem.svelte.d.ts +1 -1
  34. package/dist/bottom-navigation/index.d.ts +1 -1
  35. package/dist/bottom-navigation/index.js +1 -1
  36. package/dist/bottom-navigation/theme.d.ts +10 -2
  37. package/dist/bottom-navigation/theme.js +2 -2
  38. package/dist/breadcrumb/Breadcrumb.svelte +7 -10
  39. package/dist/breadcrumb/Breadcrumb.svelte.d.ts +1 -1
  40. package/dist/breadcrumb/BreadcrumbItem.svelte +13 -10
  41. package/dist/breadcrumb/BreadcrumbItem.svelte.d.ts +1 -1
  42. package/dist/breadcrumb/index.d.ts +1 -1
  43. package/dist/breadcrumb/index.js +1 -1
  44. package/dist/breadcrumb/theme.d.ts +33 -22
  45. package/dist/breadcrumb/theme.js +18 -12
  46. package/dist/button-group/ButtonGroup.svelte +5 -2
  47. package/dist/button-group/ButtonGroup.svelte.d.ts +1 -1
  48. package/dist/button-group/index.d.ts +1 -1
  49. package/dist/button-group/theme.d.ts +1 -0
  50. package/dist/buttons/Button.svelte +7 -3
  51. package/dist/buttons/Button.svelte.d.ts +1 -1
  52. package/dist/buttons/GradientButton.svelte +8 -5
  53. package/dist/buttons/GradientButton.svelte.d.ts +1 -1
  54. package/dist/buttons/index.d.ts +1 -1
  55. package/dist/buttons/theme.d.ts +4 -0
  56. package/dist/card/Card.svelte +9 -6
  57. package/dist/card/Card.svelte.d.ts +2 -2
  58. package/dist/card/index.d.ts +1 -1
  59. package/dist/card/theme.d.ts +2 -0
  60. package/dist/carousel/Carousel.svelte +5 -2
  61. package/dist/carousel/Carousel.svelte.d.ts +1 -1
  62. package/dist/carousel/{Indicators.svelte → CarouselIndicators.svelte} +8 -5
  63. package/dist/carousel/{Indicators.svelte.d.ts → CarouselIndicators.svelte.d.ts} +4 -4
  64. package/dist/carousel/ControlButton.svelte +5 -2
  65. package/dist/carousel/ControlButton.svelte.d.ts +1 -1
  66. package/dist/carousel/Controls.svelte +6 -3
  67. package/dist/carousel/Controls.svelte.d.ts +1 -1
  68. package/dist/carousel/Slide.svelte +5 -2
  69. package/dist/carousel/Slide.svelte.d.ts +1 -1
  70. package/dist/carousel/Thumbnail.svelte +5 -2
  71. package/dist/carousel/Thumbnail.svelte.d.ts +1 -1
  72. package/dist/carousel/Thumbnails.svelte +5 -2
  73. package/dist/carousel/Thumbnails.svelte.d.ts +1 -1
  74. package/dist/carousel/index.d.ts +2 -2
  75. package/dist/carousel/index.js +2 -2
  76. package/dist/carousel/theme.d.ts +8 -1
  77. package/dist/carousel/theme.js +1 -2
  78. package/dist/clipboard/Clipboard.svelte +6 -3
  79. package/dist/clipboard/Clipboard.svelte.d.ts +2 -2
  80. package/dist/clipboard/index.d.ts +1 -1
  81. package/dist/clipboard/theme.d.ts +1 -0
  82. package/dist/darkmode/DarkMode.svelte +5 -2
  83. package/dist/darkmode/DarkMode.svelte.d.ts +1 -1
  84. package/dist/darkmode/index.d.ts +1 -1
  85. package/dist/darkmode/theme.d.ts +1 -0
  86. package/dist/datepicker/Datepicker.svelte +127 -86
  87. package/dist/datepicker/Datepicker.svelte.d.ts +38 -5
  88. package/dist/datepicker/index.d.ts +1 -1
  89. package/dist/datepicker/theme.d.ts +2 -0
  90. package/dist/device-mockups/Android.svelte +1 -1
  91. package/dist/device-mockups/Android.svelte.d.ts +1 -1
  92. package/dist/device-mockups/DefaultMockup.svelte +1 -1
  93. package/dist/device-mockups/DefaultMockup.svelte.d.ts +1 -1
  94. package/dist/device-mockups/Desktop.svelte +1 -1
  95. package/dist/device-mockups/Desktop.svelte.d.ts +1 -1
  96. package/dist/device-mockups/DeviceMockup.svelte +1 -1
  97. package/dist/device-mockups/DeviceMockup.svelte.d.ts +1 -1
  98. package/dist/device-mockups/Ios.svelte +1 -1
  99. package/dist/device-mockups/Ios.svelte.d.ts +1 -1
  100. package/dist/device-mockups/Laptop.svelte +1 -1
  101. package/dist/device-mockups/Laptop.svelte.d.ts +1 -1
  102. package/dist/device-mockups/Smartwatch.svelte +1 -1
  103. package/dist/device-mockups/Smartwatch.svelte.d.ts +1 -1
  104. package/dist/device-mockups/Tablet.svelte +1 -1
  105. package/dist/device-mockups/Tablet.svelte.d.ts +1 -1
  106. package/dist/device-mockups/theme.d.ts +21 -21
  107. package/dist/drawer/Drawer.svelte +8 -5
  108. package/dist/drawer/Drawer.svelte.d.ts +1 -1
  109. package/dist/drawer/Drawerhead.svelte +8 -5
  110. package/dist/drawer/Drawerhead.svelte.d.ts +1 -1
  111. package/dist/drawer/index.d.ts +1 -1
  112. package/dist/drawer/theme.d.ts +16 -12
  113. package/dist/drawer/theme.js +4 -4
  114. package/dist/dropdown/Dropdown.svelte +5 -2
  115. package/dist/dropdown/Dropdown.svelte.d.ts +1 -1
  116. package/dist/dropdown/DropdownDivider.svelte +5 -2
  117. package/dist/dropdown/DropdownDivider.svelte.d.ts +1 -1
  118. package/dist/dropdown/DropdownGroup.svelte +5 -2
  119. package/dist/dropdown/DropdownGroup.svelte.d.ts +1 -1
  120. package/dist/dropdown/DropdownHeader.svelte +5 -2
  121. package/dist/dropdown/DropdownHeader.svelte.d.ts +1 -1
  122. package/dist/dropdown/DropdownItem.svelte +6 -3
  123. package/dist/dropdown/DropdownItem.svelte.d.ts +1 -1
  124. package/dist/dropdown/index.d.ts +1 -1
  125. package/dist/dropdown/theme.d.ts +7 -0
  126. package/dist/footer/Footer.svelte +5 -2
  127. package/dist/footer/Footer.svelte.d.ts +1 -1
  128. package/dist/footer/FooterBrand.svelte +8 -5
  129. package/dist/footer/FooterBrand.svelte.d.ts +1 -1
  130. package/dist/footer/FooterCopyright.svelte +8 -5
  131. package/dist/footer/FooterCopyright.svelte.d.ts +1 -1
  132. package/dist/footer/FooterIcon.svelte +5 -2
  133. package/dist/footer/FooterIcon.svelte.d.ts +1 -1
  134. package/dist/footer/FooterLink.svelte +8 -4
  135. package/dist/footer/FooterLink.svelte.d.ts +1 -1
  136. package/dist/footer/FooterLinkGroup.svelte +5 -2
  137. package/dist/footer/FooterLinkGroup.svelte.d.ts +1 -1
  138. package/dist/footer/index.d.ts +1 -1
  139. package/dist/footer/theme.d.ts +18 -10
  140. package/dist/footer/theme.js +6 -7
  141. package/dist/forms/button-toggle/ButtonToggle.svelte +8 -5
  142. package/dist/forms/button-toggle/ButtonToggle.svelte.d.ts +1 -1
  143. package/dist/forms/button-toggle/ButtonToggleGroup.svelte +4 -1
  144. package/dist/forms/button-toggle/CheckIcon.svelte +1 -1
  145. package/dist/forms/button-toggle/CheckIcon.svelte.d.ts +1 -1
  146. package/dist/forms/button-toggle/index.d.ts +1 -1
  147. package/dist/forms/button-toggle/theme.d.ts +152 -144
  148. package/dist/forms/button-toggle/theme.js +65 -63
  149. package/dist/forms/checkbox/Checkbox.svelte +8 -5
  150. package/dist/forms/checkbox/CheckboxButton.svelte +5 -2
  151. package/dist/forms/checkbox/CheckboxButton.svelte.d.ts +1 -1
  152. package/dist/forms/checkbox/index.d.ts +1 -1
  153. package/dist/forms/checkbox/theme.d.ts +3 -0
  154. package/dist/forms/dropzone/Dropzone.svelte +5 -2
  155. package/dist/forms/dropzone/Dropzone.svelte.d.ts +1 -1
  156. package/dist/forms/dropzone/index.d.ts +1 -1
  157. package/dist/forms/dropzone/theme.d.ts +1 -0
  158. package/dist/forms/fileupload/Fileupload.svelte +8 -5
  159. package/dist/forms/fileupload/Fileupload.svelte.d.ts +1 -1
  160. package/dist/forms/fileupload/index.d.ts +1 -1
  161. package/dist/forms/fileupload/theme.d.ts +2 -0
  162. package/dist/forms/floating-label/FloatingLabelInput.svelte +11 -8
  163. package/dist/forms/floating-label/FloatingLabelInput.svelte.d.ts +1 -1
  164. package/dist/forms/floating-label/index.d.ts +1 -1
  165. package/dist/forms/floating-label/theme.d.ts +5 -3
  166. package/dist/forms/floating-label/theme.js +1 -1
  167. package/dist/forms/helper/Helper.svelte +5 -2
  168. package/dist/forms/helper/Helper.svelte.d.ts +1 -1
  169. package/dist/forms/helper/index.d.ts +1 -1
  170. package/dist/forms/helper/theme.d.ts +1 -0
  171. package/dist/forms/input-addon/InputAddon.svelte +6 -2
  172. package/dist/forms/input-addon/InputAddon.svelte.d.ts +1 -1
  173. package/dist/forms/input-field/Input.svelte +13 -10
  174. package/dist/forms/input-field/index.d.ts +1 -1
  175. package/dist/forms/input-field/theme.d.ts +5 -3
  176. package/dist/forms/input-field/theme.js +1 -1
  177. package/dist/forms/label/Label.svelte +5 -2
  178. package/dist/forms/label/Label.svelte.d.ts +1 -1
  179. package/dist/forms/label/index.d.ts +1 -1
  180. package/dist/forms/label/theme.d.ts +1 -0
  181. package/dist/forms/phoneinput/PhoneInput.svelte +11 -8
  182. package/dist/forms/phoneinput/PhoneInput.svelte.d.ts +1 -1
  183. package/dist/forms/phoneinput/index.d.ts +1 -1
  184. package/dist/forms/phoneinput/theme.d.ts +2 -0
  185. package/dist/forms/radio/Radio.svelte +6 -3
  186. package/dist/forms/radio/RadioButton.svelte +4 -1
  187. package/dist/forms/radio/index.d.ts +1 -1
  188. package/dist/forms/radio/theme.d.ts +3 -0
  189. package/dist/forms/range/Range.svelte +5 -2
  190. package/dist/forms/range/Range.svelte.d.ts +1 -1
  191. package/dist/forms/range/theme.d.ts +1 -0
  192. package/dist/forms/search/Search.svelte +12 -9
  193. package/dist/forms/search/Search.svelte.d.ts +1 -1
  194. package/dist/forms/search/index.d.ts +1 -1
  195. package/dist/forms/search/theme.d.ts +5 -3
  196. package/dist/forms/search/theme.js +1 -1
  197. package/dist/forms/select/MultiSelect.svelte +7 -4
  198. package/dist/forms/select/Select.svelte +8 -5
  199. package/dist/forms/select/index.d.ts +1 -1
  200. package/dist/forms/select/index.js +1 -1
  201. package/dist/forms/select/theme.d.ts +7 -3
  202. package/dist/forms/select/theme.js +1 -1
  203. package/dist/forms/tags/Tags.svelte +10 -7
  204. package/dist/forms/tags/Tags.svelte.d.ts +1 -1
  205. package/dist/forms/tags/index.d.ts +1 -1
  206. package/dist/forms/tags/theme.d.ts +11 -9
  207. package/dist/forms/tags/theme.js +1 -1
  208. package/dist/forms/textarea/Textarea.svelte +14 -11
  209. package/dist/forms/textarea/Textarea.svelte.d.ts +1 -1
  210. package/dist/forms/textarea/index.d.ts +1 -1
  211. package/dist/forms/textarea/theme.d.ts +5 -3
  212. package/dist/forms/textarea/theme.js +1 -1
  213. package/dist/forms/timepicker/Timepicker.svelte +107 -64
  214. package/dist/forms/timepicker/Timepicker.svelte.d.ts +1 -1
  215. package/dist/forms/timepicker/index.d.ts +1 -0
  216. package/dist/forms/timepicker/index.js +1 -0
  217. package/dist/forms/timepicker/theme.d.ts +191 -0
  218. package/dist/forms/timepicker/theme.js +72 -0
  219. package/dist/forms/toggle/Toggle.svelte +8 -5
  220. package/dist/forms/toggle/Toggle.svelte.d.ts +1 -1
  221. package/dist/forms/toggle/index.d.ts +1 -1
  222. package/dist/forms/toggle/theme.d.ts +2 -0
  223. package/dist/gallery/Gallery.svelte +7 -4
  224. package/dist/gallery/Gallery.svelte.d.ts +1 -1
  225. package/dist/gallery/index.d.ts +1 -1
  226. package/dist/gallery/theme.d.ts +5 -3
  227. package/dist/index.d.ts +2 -2
  228. package/dist/index.js +5 -2
  229. package/dist/indicator/Indicator.svelte +6 -3
  230. package/dist/indicator/Indicator.svelte.d.ts +1 -1
  231. package/dist/indicator/index.d.ts +1 -1
  232. package/dist/indicator/theme.d.ts +121 -360
  233. package/dist/indicator/theme.js +48 -56
  234. package/dist/kbd/Kbd.svelte +6 -2
  235. package/dist/kbd/Kbd.svelte.d.ts +1 -1
  236. package/dist/kbd/index.d.ts +1 -1
  237. package/dist/kbd/theme.d.ts +1 -0
  238. package/dist/list-group/Listgroup.svelte +5 -2
  239. package/dist/list-group/Listgroup.svelte.d.ts +1 -1
  240. package/dist/list-group/ListgroupItem.svelte +7 -4
  241. package/dist/list-group/ListgroupItem.svelte.d.ts +1 -1
  242. package/dist/list-group/index.d.ts +1 -1
  243. package/dist/list-group/theme.d.ts +2 -0
  244. package/dist/mega-menu/MegaMenu.svelte +9 -6
  245. package/dist/mega-menu/MegaMenu.svelte.d.ts +1 -1
  246. package/dist/mega-menu/index.d.ts +1 -1
  247. package/dist/mega-menu/theme.d.ts +2 -0
  248. package/dist/modal/Modal.svelte +86 -70
  249. package/dist/modal/Modal.svelte.d.ts +5 -1
  250. package/dist/modal/index.d.ts +2 -3
  251. package/dist/modal/index.js +2 -3
  252. package/dist/modal/theme.d.ts +8 -3
  253. package/dist/modal/theme.js +2 -1
  254. package/dist/navbar/Menu.svelte +6 -2
  255. package/dist/navbar/Menu.svelte.d.ts +1 -1
  256. package/dist/navbar/NavBrand.svelte +7 -4
  257. package/dist/navbar/NavBrand.svelte.d.ts +1 -1
  258. package/dist/navbar/NavContainer.svelte +7 -4
  259. package/dist/navbar/NavContainer.svelte.d.ts +1 -1
  260. package/dist/navbar/NavHamburger.svelte +9 -6
  261. package/dist/navbar/NavHamburger.svelte.d.ts +1 -1
  262. package/dist/navbar/NavLi.svelte +7 -4
  263. package/dist/navbar/NavLi.svelte.d.ts +1 -1
  264. package/dist/navbar/NavUl.svelte +11 -8
  265. package/dist/navbar/NavUl.svelte.d.ts +1 -1
  266. package/dist/navbar/Navbar.svelte +6 -4
  267. package/dist/navbar/Navbar.svelte.d.ts +1 -1
  268. package/dist/navbar/index.d.ts +7 -7
  269. package/dist/navbar/index.js +7 -7
  270. package/dist/navbar/theme.d.ts +12 -5
  271. package/dist/navbar/theme.js +5 -5
  272. package/dist/pagination/Pagination.svelte +7 -3
  273. package/dist/pagination/Pagination.svelte.d.ts +1 -1
  274. package/dist/pagination/PaginationButton.svelte +18 -12
  275. package/dist/pagination/PaginationButton.svelte.d.ts +1 -1
  276. package/dist/pagination/PaginationItem.svelte +7 -4
  277. package/dist/pagination/PaginationItem.svelte.d.ts +1 -1
  278. package/dist/pagination/PaginationNav.svelte +13 -11
  279. package/dist/pagination/PaginationNav.svelte.d.ts +1 -1
  280. package/dist/pagination/index.d.ts +1 -1
  281. package/dist/pagination/index.js +1 -1
  282. package/dist/pagination/theme.d.ts +7 -2
  283. package/dist/pagination/theme.js +2 -2
  284. package/dist/popover/Popover.svelte +10 -7
  285. package/dist/popover/Popover.svelte.d.ts +1 -1
  286. package/dist/popover/index.d.ts +2 -3
  287. package/dist/popover/index.js +2 -3
  288. package/dist/popover/theme.d.ts +2 -3
  289. package/dist/popover/theme.js +1 -2
  290. package/dist/progress/Progressbar.svelte +12 -8
  291. package/dist/progress/Progressbar.svelte.d.ts +1 -1
  292. package/dist/progress/Progressradial.svelte +13 -9
  293. package/dist/progress/Progressradial.svelte.d.ts +1 -1
  294. package/dist/progress/index.d.ts +1 -1
  295. package/dist/progress/index.js +1 -1
  296. package/dist/progress/theme.d.ts +4 -0
  297. package/dist/rating/AdvancedRating.svelte +12 -9
  298. package/dist/rating/AdvancedRating.svelte.d.ts +1 -1
  299. package/dist/rating/CustomIcon.svelte +1 -1
  300. package/dist/rating/CustomIcon.svelte.d.ts +1 -1
  301. package/dist/rating/Heart.svelte +1 -1
  302. package/dist/rating/Heart.svelte.d.ts +1 -1
  303. package/dist/rating/Rating.svelte +8 -4
  304. package/dist/rating/Rating.svelte.d.ts +1 -1
  305. package/dist/rating/RatingComment.svelte +1 -1
  306. package/dist/rating/RatingComment.svelte.d.ts +1 -1
  307. package/dist/rating/Review.svelte +14 -11
  308. package/dist/rating/Review.svelte.d.ts +1 -1
  309. package/dist/rating/ScoreRating.svelte +14 -10
  310. package/dist/rating/ScoreRating.svelte.d.ts +1 -1
  311. package/dist/rating/Star.svelte +1 -1
  312. package/dist/rating/Star.svelte.d.ts +1 -1
  313. package/dist/rating/Thumbup.svelte +1 -1
  314. package/dist/rating/Thumbup.svelte.d.ts +1 -1
  315. package/dist/rating/index.d.ts +10 -11
  316. package/dist/rating/index.js +10 -11
  317. package/dist/rating/theme.d.ts +16 -14
  318. package/dist/rating/theme.js +2 -3
  319. package/dist/sidebar/Sidebar.svelte +12 -9
  320. package/dist/sidebar/Sidebar.svelte.d.ts +1 -1
  321. package/dist/sidebar/SidebarBrand.svelte +10 -7
  322. package/dist/sidebar/SidebarBrand.svelte.d.ts +1 -1
  323. package/dist/sidebar/SidebarButton.svelte +8 -4
  324. package/dist/sidebar/SidebarButton.svelte.d.ts +1 -1
  325. package/dist/sidebar/SidebarCta.svelte +11 -7
  326. package/dist/sidebar/SidebarCta.svelte.d.ts +1 -1
  327. package/dist/sidebar/SidebarDropdownWrapper.svelte +13 -10
  328. package/dist/sidebar/SidebarDropdownWrapper.svelte.d.ts +1 -1
  329. package/dist/sidebar/SidebarGroup.svelte +1 -1
  330. package/dist/sidebar/SidebarGroup.svelte.d.ts +1 -1
  331. package/dist/sidebar/SidebarItem.svelte +1 -1
  332. package/dist/sidebar/SidebarItem.svelte.d.ts +1 -1
  333. package/dist/sidebar/index.d.ts +10 -11
  334. package/dist/sidebar/index.js +10 -11
  335. package/dist/sidebar/theme.d.ts +22 -13
  336. package/dist/sidebar/theme.js +4 -4
  337. package/dist/skeleton/CardPlaceholder.svelte +17 -14
  338. package/dist/skeleton/CardPlaceholder.svelte.d.ts +1 -1
  339. package/dist/skeleton/ImagePlaceholder.svelte +17 -14
  340. package/dist/skeleton/ImagePlaceholder.svelte.d.ts +1 -1
  341. package/dist/skeleton/ListPlaceholder.svelte +12 -9
  342. package/dist/skeleton/ListPlaceholder.svelte.d.ts +1 -1
  343. package/dist/skeleton/Skeleton.svelte +15 -11
  344. package/dist/skeleton/Skeleton.svelte.d.ts +1 -1
  345. package/dist/skeleton/TestimonialPlaceholder.svelte +14 -10
  346. package/dist/skeleton/TestimonialPlaceholder.svelte.d.ts +1 -1
  347. package/dist/skeleton/TextPlaceholder.svelte +32 -28
  348. package/dist/skeleton/TextPlaceholder.svelte.d.ts +1 -1
  349. package/dist/skeleton/VideoPlaceholder.svelte +7 -3
  350. package/dist/skeleton/VideoPlaceholder.svelte.d.ts +1 -1
  351. package/dist/skeleton/WidgetPlaceholder.svelte +8 -4
  352. package/dist/skeleton/WidgetPlaceholder.svelte.d.ts +1 -1
  353. package/dist/skeleton/index.d.ts +9 -10
  354. package/dist/skeleton/index.js +9 -10
  355. package/dist/skeleton/theme.d.ts +29 -15
  356. package/dist/skeleton/theme.js +8 -9
  357. package/dist/speed-dial/SpeedDial.svelte +9 -9
  358. package/dist/speed-dial/SpeedDial.svelte.d.ts +1 -1
  359. package/dist/speed-dial/SpeedDialButton.svelte +9 -8
  360. package/dist/speed-dial/SpeedDialButton.svelte.d.ts +1 -1
  361. package/dist/speed-dial/SpeedDialTrigger.svelte +1 -1
  362. package/dist/speed-dial/SpeedDialTrigger.svelte.d.ts +1 -1
  363. package/dist/speed-dial/index.d.ts +4 -5
  364. package/dist/speed-dial/index.js +4 -5
  365. package/dist/speed-dial/theme.d.ts +8 -4
  366. package/dist/speed-dial/theme.js +2 -2
  367. package/dist/spinner/Spinner.svelte +6 -3
  368. package/dist/spinner/Spinner.svelte.d.ts +1 -1
  369. package/dist/spinner/index.d.ts +2 -3
  370. package/dist/spinner/index.js +2 -3
  371. package/dist/spinner/theme.d.ts +1 -0
  372. package/dist/stepindicator/StepIndicator.svelte +28 -49
  373. package/dist/stepindicator/StepIndicator.svelte.d.ts +3 -3
  374. package/dist/stepindicator/index.d.ts +1 -0
  375. package/dist/stepindicator/index.js +1 -0
  376. package/dist/stepindicator/theme.d.ts +246 -0
  377. package/dist/stepindicator/theme.js +103 -0
  378. package/dist/stepper/BreadcrumbStepper.svelte +15 -11
  379. package/dist/stepper/BreadcrumbStepper.svelte.d.ts +1 -1
  380. package/dist/stepper/DetailedStepper.svelte +9 -9
  381. package/dist/stepper/DetailedStepper.svelte.d.ts +1 -1
  382. package/dist/stepper/ProgressStepper.svelte +13 -11
  383. package/dist/stepper/ProgressStepper.svelte.d.ts +1 -1
  384. package/dist/stepper/Stepper.svelte +15 -13
  385. package/dist/stepper/Stepper.svelte.d.ts +1 -1
  386. package/dist/stepper/TimelineStepper.svelte +9 -9
  387. package/dist/stepper/TimelineStepper.svelte.d.ts +1 -1
  388. package/dist/stepper/VerticalStepper.svelte +9 -10
  389. package/dist/stepper/VerticalStepper.svelte.d.ts +1 -1
  390. package/dist/stepper/index.d.ts +1 -1
  391. package/dist/stepper/index.js +1 -1
  392. package/dist/stepper/theme.d.ts +303 -261
  393. package/dist/stepper/theme.js +198 -186
  394. package/dist/table/Table.svelte +8 -6
  395. package/dist/table/Table.svelte.d.ts +2 -2
  396. package/dist/table/TableBody.svelte +6 -2
  397. package/dist/table/TableBody.svelte.d.ts +1 -1
  398. package/dist/table/TableBodyCell.svelte +7 -4
  399. package/dist/table/TableBodyCell.svelte.d.ts +1 -1
  400. package/dist/table/TableBodyRow.svelte +8 -5
  401. package/dist/table/TableBodyRow.svelte.d.ts +1 -1
  402. package/dist/table/TableHead.svelte +8 -5
  403. package/dist/table/TableHead.svelte.d.ts +1 -1
  404. package/dist/table/TableHeadCell.svelte +7 -4
  405. package/dist/table/TableHeadCell.svelte.d.ts +1 -1
  406. package/dist/table/TableSearch.svelte +35 -30
  407. package/dist/table/TableSearch.svelte.d.ts +8 -8
  408. package/dist/table/index.d.ts +8 -9
  409. package/dist/table/index.js +8 -9
  410. package/dist/table/theme.d.ts +192 -4
  411. package/dist/table/theme.js +68 -4
  412. package/dist/tabs/TabItem.svelte +8 -5
  413. package/dist/tabs/TabItem.svelte.d.ts +1 -1
  414. package/dist/tabs/Tabs.svelte +9 -6
  415. package/dist/tabs/Tabs.svelte.d.ts +1 -1
  416. package/dist/tabs/index.d.ts +3 -4
  417. package/dist/tabs/index.js +3 -4
  418. package/dist/tabs/theme.d.ts +4 -0
  419. package/dist/theme/ThemeProvider.svelte +30 -0
  420. package/dist/theme/ThemeProvider.svelte.d.ts +17 -0
  421. package/dist/theme/index.d.ts +0 -10293
  422. package/dist/theme/index.js +2 -119
  423. package/dist/theme/themeUtils.d.ts +2 -0
  424. package/dist/theme/themeUtils.js +6 -0
  425. package/dist/timeline/Activity.svelte +6 -3
  426. package/dist/timeline/Activity.svelte.d.ts +1 -1
  427. package/dist/timeline/ActivityItem.svelte +15 -11
  428. package/dist/timeline/ActivityItem.svelte.d.ts +1 -1
  429. package/dist/timeline/Group.svelte +11 -5
  430. package/dist/timeline/Group.svelte.d.ts +1 -1
  431. package/dist/timeline/GroupItem.svelte +13 -8
  432. package/dist/timeline/GroupItem.svelte.d.ts +1 -1
  433. package/dist/timeline/Timeline.svelte +6 -2
  434. package/dist/timeline/Timeline.svelte.d.ts +1 -1
  435. package/dist/timeline/TimelineItem.svelte +13 -9
  436. package/dist/timeline/TimelineItem.svelte.d.ts +1 -1
  437. package/dist/timeline/index.d.ts +7 -8
  438. package/dist/timeline/index.js +7 -8
  439. package/dist/timeline/theme.d.ts +25 -15
  440. package/dist/timeline/theme.js +3 -3
  441. package/dist/toast/Toast.svelte +10 -6
  442. package/dist/toast/Toast.svelte.d.ts +1 -1
  443. package/dist/toast/index.d.ts +2 -3
  444. package/dist/toast/index.js +2 -3
  445. package/dist/toast/theme.d.ts +2 -0
  446. package/dist/toolbar/Toolbar.svelte +8 -4
  447. package/dist/toolbar/Toolbar.svelte.d.ts +1 -1
  448. package/dist/toolbar/ToolbarButton.svelte +6 -2
  449. package/dist/toolbar/ToolbarButton.svelte.d.ts +1 -1
  450. package/dist/toolbar/ToolbarGroup.svelte +6 -2
  451. package/dist/toolbar/ToolbarGroup.svelte.d.ts +1 -1
  452. package/dist/toolbar/index.d.ts +4 -5
  453. package/dist/toolbar/index.js +4 -5
  454. package/dist/toolbar/theme.d.ts +4 -0
  455. package/dist/tooltip/Tooltip.svelte +7 -3
  456. package/dist/tooltip/Tooltip.svelte.d.ts +1 -1
  457. package/dist/tooltip/index.d.ts +2 -3
  458. package/dist/tooltip/index.js +2 -3
  459. package/dist/tooltip/theme.d.ts +2 -0
  460. package/dist/types.d.ts +37 -29
  461. package/dist/types.js +1 -1
  462. package/dist/typography/anchor/A.svelte +7 -3
  463. package/dist/typography/anchor/A.svelte.d.ts +1 -1
  464. package/dist/typography/anchor/index.d.ts +2 -3
  465. package/dist/typography/anchor/index.js +2 -3
  466. package/dist/typography/anchor/theme.d.ts +1 -0
  467. package/dist/typography/blockquote/Blockquote.svelte +6 -2
  468. package/dist/typography/blockquote/Blockquote.svelte.d.ts +1 -1
  469. package/dist/typography/blockquote/theme.d.ts +1 -0
  470. package/dist/typography/descriptionlist/DescriptionList.svelte +7 -3
  471. package/dist/typography/descriptionlist/DescriptionList.svelte.d.ts +1 -1
  472. package/dist/typography/descriptionlist/index.d.ts +2 -3
  473. package/dist/typography/descriptionlist/index.js +2 -3
  474. package/dist/typography/descriptionlist/theme.d.ts +1 -0
  475. package/dist/typography/heading/Heading.svelte +7 -3
  476. package/dist/typography/heading/Heading.svelte.d.ts +1 -1
  477. package/dist/typography/heading/index.d.ts +2 -3
  478. package/dist/typography/heading/index.js +2 -3
  479. package/dist/typography/heading/theme.d.ts +1 -0
  480. package/dist/typography/hr/Hr.svelte +10 -6
  481. package/dist/typography/hr/Hr.svelte.d.ts +1 -1
  482. package/dist/typography/hr/index.d.ts +2 -3
  483. package/dist/typography/hr/index.js +2 -3
  484. package/dist/typography/hr/theme.d.ts +2 -0
  485. package/dist/typography/img/EnhancedImg.svelte +10 -6
  486. package/dist/typography/img/EnhancedImg.svelte.d.ts +1 -1
  487. package/dist/typography/img/Img.svelte +10 -6
  488. package/dist/typography/img/Img.svelte.d.ts +1 -1
  489. package/dist/typography/img/index.d.ts +3 -4
  490. package/dist/typography/img/index.js +3 -4
  491. package/dist/typography/img/theme.d.ts +2 -0
  492. package/dist/typography/layout/Layout.svelte +6 -2
  493. package/dist/typography/layout/Layout.svelte.d.ts +1 -1
  494. package/dist/typography/layout/index.d.ts +2 -3
  495. package/dist/typography/layout/index.js +2 -3
  496. package/dist/typography/layout/theme.d.ts +1 -0
  497. package/dist/typography/list/Li.svelte +6 -3
  498. package/dist/typography/list/Li.svelte.d.ts +1 -1
  499. package/dist/typography/list/List.svelte +6 -2
  500. package/dist/typography/list/List.svelte.d.ts +1 -1
  501. package/dist/typography/list/index.d.ts +3 -4
  502. package/dist/typography/list/index.js +3 -4
  503. package/dist/typography/list/theme.d.ts +1 -0
  504. package/dist/typography/mark/Mark.svelte +6 -2
  505. package/dist/typography/mark/Mark.svelte.d.ts +1 -1
  506. package/dist/typography/mark/index.d.ts +2 -3
  507. package/dist/typography/mark/index.js +2 -3
  508. package/dist/typography/mark/theme.d.ts +1 -0
  509. package/dist/typography/paragraph/P.svelte +6 -2
  510. package/dist/typography/paragraph/P.svelte.d.ts +1 -1
  511. package/dist/typography/paragraph/index.d.ts +2 -3
  512. package/dist/typography/paragraph/index.js +2 -3
  513. package/dist/typography/paragraph/theme.d.ts +1 -0
  514. package/dist/typography/secondary/Secondary.svelte +6 -2
  515. package/dist/typography/secondary/Secondary.svelte.d.ts +1 -1
  516. package/dist/typography/secondary/index.d.ts +2 -3
  517. package/dist/typography/secondary/index.js +2 -3
  518. package/dist/typography/secondary/theme.d.ts +1 -0
  519. package/dist/typography/span/Span.svelte +6 -2
  520. package/dist/typography/span/Span.svelte.d.ts +1 -1
  521. package/dist/typography/span/index.d.ts +2 -3
  522. package/dist/typography/span/index.js +2 -3
  523. package/dist/typography/span/theme.d.ts +1 -0
  524. package/dist/utils/Arrow.svelte +1 -1
  525. package/dist/utils/Arrow.svelte.d.ts +1 -1
  526. package/dist/utils/CloseButton.svelte +1 -1
  527. package/dist/utils/CloseButton.svelte.d.ts +1 -1
  528. package/dist/utils/Popper.svelte +1 -1
  529. package/dist/utils/Popper.svelte.d.ts +1 -1
  530. package/dist/video/Video.svelte +6 -2
  531. package/dist/video/Video.svelte.d.ts +1 -1
  532. package/dist/video/index.d.ts +1 -2
  533. package/dist/video/index.js +1 -2
  534. package/package.json +10 -12
  535. package/dist/chart/Chart.svelte +0 -45
  536. package/dist/chart/Chart.svelte.d.ts +0 -13
  537. package/dist/chart/chart.css +0 -166
  538. package/dist/chart/index.d.ts +0 -1
  539. package/dist/chart/index.js +0 -1
  540. package/dist/forms/button-toggle/button-toggle.txt +0 -25
  541. package/dist/theme/Theme.svelte +0 -60
  542. package/dist/theme/Theme.svelte.d.ts +0 -12
@@ -1,9 +1,13 @@
1
1
  <script lang="ts">
2
2
  import { kbd } from ".";
3
3
  import { type KbdProps, cn } from "..";
4
+ import { getTheme } from "../theme/themeUtils";
4
5
 
5
6
  let { children, class: className, ...restProps }: KbdProps = $props();
6
- const kbdCls = cn(kbd(), className);
7
+
8
+ const theme = getTheme("kbd");
9
+
10
+ const kbdCls = cn(kbd(), className, theme);
7
11
  </script>
8
12
 
9
13
  <kbd {...restProps} class={kbdCls}>
@@ -14,7 +18,7 @@
14
18
  @component
15
19
  [Go to docs](https://flowbite-svelte.com/)
16
20
  ## Type
17
- [KbdProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1012)
21
+ [KbdProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1007)
18
22
  ## Props
19
23
  @prop children
20
24
  @prop class: className
@@ -2,7 +2,7 @@ import { type KbdProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [KbdProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1012)
5
+ * [KbdProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1007)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -1,2 +1,2 @@
1
1
  export { default as Kbd } from "./Kbd.svelte";
2
- export { kbd } from "./theme";
2
+ export { kbd, type KbdTheme } from "./theme";
@@ -1 +1,2 @@
1
1
  export declare const kbd: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "px-2 py-1.5 text-xs font-semibold text-gray-800 bg-gray-100 border border-gray-200 rounded-lg dark:bg-gray-600 dark:text-gray-100 dark:border-gray-500", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "px-2 py-1.5 text-xs font-semibold text-gray-800 bg-gray-100 border border-gray-200 rounded-lg dark:bg-gray-600 dark:text-gray-100 dark:border-gray-500", unknown, unknown, undefined>>;
2
+ export type KbdTheme = string;
@@ -2,9 +2,12 @@
2
2
  import { setContext } from "svelte";
3
3
  import { listGroup } from ".";
4
4
  import { type ListgroupProps, ListgroupItem, cn } from "..";
5
+ import { getTheme } from "../theme/themeUtils";
5
6
 
6
7
  let { children, items, active, onclick, horizontal, rounded, border, class: className, itemClass, iconClass, ...restProps }: ListgroupProps = $props();
7
8
 
9
+ const theme = getTheme("listgroup");
10
+
8
11
  const base = $derived(listGroup({ rounded, border, horizontal }));
9
12
 
10
13
  let tag = active ? "div" : "ul";
@@ -22,7 +25,7 @@
22
25
  }
23
26
  </script>
24
27
 
25
- <svelte:element this={tag} {...restProps} class={cn(base, className)}>
28
+ <svelte:element this={tag} {...restProps} class={cn(base, className, theme)}>
26
29
  {#if items?.length}
27
30
  {#each items as item}
28
31
  {#if children}
@@ -42,7 +45,7 @@
42
45
  @component
43
46
  [Go to docs](https://flowbite-svelte.com/)
44
47
  ## Type
45
- [ListgroupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1031)
48
+ [ListgroupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1026)
46
49
  ## Props
47
50
  @prop children
48
51
  @prop items
@@ -2,7 +2,7 @@ import { type ListgroupProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [ListgroupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1031)
5
+ * [ListgroupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1026)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop items
@@ -2,9 +2,12 @@
2
2
  import { getContext } from "svelte";
3
3
  import { type ListgroupItemProps, cn } from "..";
4
4
  import { listGroupItem, type ListgroupItemVariants } from "./theme";
5
+ import { getTheme } from "../theme/themeUtils";
5
6
 
6
7
  let { children, active, current, disabled, horizontal, name, Icon, class: className, iconClass = "me-2.5 h-15 w-15", ...restProps }: ListgroupItemProps = $props();
7
8
 
9
+ const theme = getTheme("listgroupItem");
10
+
8
11
  active = active ?? getContext("listGrpActive");
9
12
  horizontal = horizontal ?? getContext("listGrpHorizontal");
10
13
 
@@ -24,15 +27,15 @@
24
27
  {/snippet}
25
28
 
26
29
  {#if restProps.href === undefined && !active}
27
- <li class={cn(itemClass, className)}>
30
+ <li class={cn(itemClass, className, theme)}>
28
31
  {@render nameOrChildren()}
29
32
  </li>
30
33
  {:else if restProps.href === undefined}
31
- <button type="button" {...restProps} class={cn(itemClass, className)} {disabled} aria-current={current}>
34
+ <button type="button" {...restProps} class={cn(itemClass, className, theme)} {disabled} aria-current={current}>
32
35
  {@render nameOrChildren()}
33
36
  </button>
34
37
  {:else}
35
- <a {...restProps} class={cn(itemClass, className)} aria-current={current}>
38
+ <a {...restProps} class={cn(itemClass, className, theme)} aria-current={current}>
36
39
  {@render nameOrChildren()}
37
40
  </a>
38
41
  {/if}
@@ -41,7 +44,7 @@
41
44
  @component
42
45
  [Go to docs](https://flowbite-svelte.com/)
43
46
  ## Type
44
- [ListgroupItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1042)
47
+ [ListgroupItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1037)
45
48
  ## Props
46
49
  @prop children
47
50
  @prop active
@@ -2,7 +2,7 @@ import { type ListgroupItemProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [ListgroupItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1042)
5
+ * [ListgroupItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1037)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop active
@@ -1,3 +1,3 @@
1
1
  export { default as Listgroup } from "./Listgroup.svelte";
2
2
  export { default as ListgroupItem } from "./ListgroupItem.svelte";
3
- export { listGroup, listGroupItem } from "./theme";
3
+ export { listGroup, listGroupItem, type ListGroupTheme, type ListGroupItemTheme } from "./theme";
@@ -40,6 +40,7 @@ export declare const listGroup: import("tailwind-variants").TVReturnType<{
40
40
  false: string;
41
41
  };
42
42
  }, undefined, "flex bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 divide-gray-200 dark:divide-gray-600", unknown, unknown, undefined>>;
43
+ export type ListGroupTheme = string;
43
44
  export type ListgroupItemVariants = VariantProps<typeof listGroupItem>;
44
45
  export declare const listGroupItem: import("tailwind-variants").TVReturnType<{
45
46
  state: {
@@ -84,3 +85,4 @@ export declare const listGroupItem: import("tailwind-variants").TVReturnType<{
84
85
  false: string;
85
86
  };
86
87
  }, undefined, "py-2 px-4 w-full text-sm font-medium list-none flex items-center text-left gap-2", unknown, unknown, undefined>>;
88
+ export type ListGroupItemTheme = string;
@@ -1,9 +1,12 @@
1
1
  <script lang="ts">
2
- import { megamenu } from "./theme";
2
+ import { megamenu, type MegaMenuTheme } from "./theme";
3
3
  import { type MegaMenuProps, type LinkType, Popper, cn } from "..";
4
+ import { getTheme } from "../theme/themeUtils";
4
5
 
5
6
  let { children, extra, items = [], full, ulClass, isOpen = $bindable(false), class: className, extraClass, ...restProps }: MegaMenuProps = $props();
6
7
 
8
+ const theme = getTheme("megaMenu");
9
+
7
10
  /* eslint-disable @typescript-eslint/no-explicit-any */
8
11
  interface LinkTypeLike extends LinkType {
9
12
  [propName: string]: any;
@@ -12,9 +15,9 @@
12
15
  const { base, div, ul, extra: extraCls } = $derived(megamenu({ full, extra: !!extra }));
13
16
  </script>
14
17
 
15
- <Popper color={full ? "default" : "dropdown"} arrow={false} bind:isOpen trigger="click" placement="bottom" yOnly={full} {...restProps} class={cn(base(), className)}>
16
- <div class={div()}>
17
- <ul class={cn(ul(), ulClass)}>
18
+ <Popper color={full ? "default" : "dropdown"} arrow={false} bind:isOpen trigger="click" placement="bottom" yOnly={full} {...restProps} class={cn(base(), className, (theme as MegaMenuTheme)?.base)}>
19
+ <div class={cn(div(), (theme as MegaMenuTheme)?.div)}>
20
+ <ul class={cn(ul(), ulClass, (theme as MegaMenuTheme)?.ul)}>
18
21
  {#each items as item, index}
19
22
  <li>
20
23
  {@render children({ item, index })}
@@ -23,7 +26,7 @@
23
26
  {@render children({ item: items[0], index: 0 })}
24
27
  {/each}
25
28
  </ul>
26
- {#if full && extra}<div class={cn(extraCls(), extraClass)}>{@render extra()}</div>{/if}
29
+ {#if full && extra}<div class={cn(extraCls(), extraClass, (theme as MegaMenuTheme)?.extra)}>{@render extra()}</div>{/if}
27
30
  </div>
28
31
  </Popper>
29
32
 
@@ -31,7 +34,7 @@
31
34
  @component
32
35
  [Go to docs](https://flowbite-svelte.com/)
33
36
  ## Type
34
- [MegaMenuProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1053)
37
+ [MegaMenuProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1048)
35
38
  ## Props
36
39
  @prop children
37
40
  @prop extra
@@ -2,7 +2,7 @@ import { type MegaMenuProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [MegaMenuProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1053)
5
+ * [MegaMenuProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1048)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop extra
@@ -1,2 +1,2 @@
1
1
  export { default as MegaMenu } from "./MegaMenu.svelte";
2
- export { megamenu } from "./theme";
2
+ export { megamenu, type MegaMenuTheme } from "./theme";
@@ -41,3 +41,5 @@ export declare const megamenu: import("tailwind-variants").TVReturnType<{
41
41
  ul: string;
42
42
  extra: string;
43
43
  }, undefined, unknown, unknown, undefined>>;
44
+ export type MegaMenuSlots = keyof typeof megamenu.slots;
45
+ export type MegaMenuTheme = Partial<Record<MegaMenuSlots, string>>;
@@ -1,104 +1,116 @@
1
1
  <script lang="ts">
2
- import { type ModalProps, type ParamsType, CloseButton, trapFocus } from "..";
2
+ import { type ModalProps, type ParamsType, CloseButton, trapFocus, cn } from "..";
3
3
  import clsx from "clsx";
4
4
  import { sineIn } from "svelte/easing";
5
5
  import { fade } from "svelte/transition";
6
- import { modal as modalTheme } from ".";
6
+ import { modal as modalStyle, type ModalTheme } from ".";
7
+ import { getTheme } from "../theme/themeUtils";
7
8
 
8
- let { children, oncancel, onsubmit, modal = true, autoclose = false, header, footer, title, open = $bindable(false), permanent = false, dismissable = true, closeBtnClass, headerClass, bodyClass, footerClass, outsideclose = true, size = "md", placement, class: className, params, transition = fade, ...restProps }: ModalProps = $props();
9
+ let { children, onaction = () => true, oncancel, onsubmit, ontoggle, form = false, modal = true, autoclose = false, focustrap = false, header, footer, title, open = $bindable(false), permanent = false, dismissable = true, closeBtnClass, headerClass, bodyClass, footerClass, outsideclose = true, size = "md", placement, class: className, params, transition = fade, ...restProps }: ModalProps = $props();
10
+
11
+ const theme = getTheme("modal");
9
12
 
10
13
  const paramsDefault = { duration: 100, easing: sineIn };
11
14
  const paramsOptions = $derived(params ?? paramsDefault);
12
15
 
13
- const { base, header: headerCls, footer: footerCls, body, closeBtn } = $derived(modalTheme({ placement, size }));
16
+ const { base, form: formCls, header: headerCls, footer: footerCls, body, closebutton } = $derived(modalStyle({ placement, size }));
17
+
18
+ const close = (dlg: HTMLDialogElement) => (open = false);
19
+ // @ts-expect-error: dlg.requestClose may not be supported
20
+ const cancel = (dlg: HTMLDialogElement) => (typeof dlg.requestClose === "function" ? dlg.requestClose() : close());
14
21
 
15
22
  function _oncancel(ev: Event & { currentTarget: HTMLDialogElement }) {
16
- // this event gets called when user presses ESC key
17
- // We'll handle ESC via the trapFocus action instead
18
- if (ev.currentTarget instanceof HTMLDialogElement) {
19
- // Stop the default ESC handling from dialog element
20
- // as we're handling it in our trapFocus action
21
- ev.preventDefault();
22
- oncancel?.(ev); // propagate the event to the user
23
- }
23
+ // this event gets called when user canceled the dialog:
24
+ // pressesed ESC key, clicked outside, pressed submit button with no 'value' like close button
25
+ oncancel?.(ev);
26
+ if (ev.defaultPrevented) return;
27
+
28
+ ev.preventDefault(); // prevent anyway, we need clean close
29
+ if (!permanent) close(ev.currentTarget);
24
30
  }
25
31
 
26
32
  function _onclick(ev: Event & { currentTarget: HTMLDialogElement }) {
27
- if (ev.currentTarget instanceof HTMLDialogElement) {
28
- if (outsideclose && ev.target === ev.currentTarget && !permanent) {
29
- open = false;
30
- }
31
- if (autoclose && ev.target instanceof HTMLButtonElement && !permanent) {
32
- open = false;
33
- }
33
+ const dlg: HTMLDialogElement = ev.currentTarget;
34
+ if (outsideclose && ev.target === dlg) {
35
+ cancel(dlg);
36
+ }
37
+ if (autoclose && ev.target instanceof HTMLButtonElement && !permanent) {
38
+ close(dlg);
34
39
  }
35
40
  }
36
41
 
37
- let dlg: HTMLDialogElement | undefined = $state();
38
-
39
- // This prevents total dialog closing and we want only to prevent cancelling
40
- // The close with user defined actions should be allowed
41
- // $effect(() => {
42
- // if (permanent && !open) {
43
- // open = true;
44
- // }
45
- // });
46
-
47
- // Handler for Escape key that respects component state
48
- const handleEscape = () => {
49
- if (!permanent) {
50
- oncancel?.({ currentTarget: dlg } as any);
51
- // If oncancel prevented default, we don't close
52
- if (oncancel && event?.defaultPrevented) return;
53
- open = false;
54
- }
55
- };
42
+ function _onsubmit(ev: SubmitEvent & { currentTarget: HTMLDialogElement }) {
43
+ // When dialog contains the <form method="dialog"> and when child with type="submit" was pressed
44
+
45
+ onsubmit?.(ev);
46
+ if (ev.defaultPrevented) return;
47
+
48
+ ev.preventDefault(); // stop dialog.close()
56
49
 
57
- function _onsubmit(ev: SubmitEvent) {
58
- if (!dlg) return;
50
+ const dlg: HTMLDialogElement = ev.currentTarget;
59
51
 
60
52
  if (ev.submitter instanceof HTMLButtonElement || ev.submitter instanceof HTMLInputElement) {
61
53
  dlg.returnValue = ev.submitter.value;
62
54
  }
63
55
 
64
- // @ts-ignore
65
- onsubmit?.(ev); // forward event to user handle
66
-
67
- if (!ev.defaultPrevented) {
68
- // stop dialog.close() and trigger close with transition
69
- ev.preventDefault();
70
- open = false;
56
+ if (!dlg.returnValue) {
57
+ return cancel(dlg); // if no action - treat that as cancel
71
58
  }
59
+
60
+ // explicit false from onaction blocks the form closing
61
+ if (typeof onaction === "function" && onaction({ action: dlg.returnValue, data: new FormData(ev.target as HTMLFormElement) }) === false) return;
62
+
63
+ close(dlg);
64
+ }
65
+
66
+ function _ontoggle(ev: ToggleEvent & { currentTarget: HTMLDialogElement }) {
67
+ ontoggle?.(ev);
68
+ open = ev.newState === "open"; // for cases when toggle by other means
72
69
  }
73
70
 
74
71
  function init(dlg: HTMLDialogElement) {
75
- modal ? dlg?.showModal() : dlg?.show();
76
- return () => dlg?.close();
72
+ modal ? dlg.showModal() : dlg.show();
73
+ return () => dlg.close();
77
74
  }
75
+
76
+ const focusTrap = (node: HTMLElement) => (focustrap ? trapFocus(node) : undefined);
77
+ const close_handler = (pred: boolean) => (pred ? undefined : () => (open = false));
78
78
  </script>
79
79
 
80
- {#if open}
81
- <dialog use:trapFocus={{ onEscape: handleEscape }} {@attach init} onsubmit={_onsubmit} bind:this={dlg} {...restProps} class={base({ class: clsx(className) })} tabindex="-1" oncancel={_oncancel} onclick={_onclick} transition:transition|global={paramsOptions as ParamsType}>
82
- {#if title || header}
83
- <div class={headerCls({ class: clsx(headerClass) })}>
84
- {#if title}
85
- <h3>{title}</h3>
86
- <CloseButton onclick={() => (open = false)} class={clsx(closeBtnClass)} />
87
- {:else if header}
88
- {@render header()}
80
+ {#snippet content()}
81
+ {#if title || header}
82
+ <div class={cn(headerCls({ class: clsx(headerClass) }), (theme as ModalTheme)?.header)}>
83
+ {#if title}
84
+ <h3>{title}</h3>
85
+ {#if dismissable && !permanent}
86
+ <CloseButton type="submit" onclick={close_handler(form)} class={clsx(closeBtnClass)} />
89
87
  {/if}
90
- </div>
91
- {/if}
92
- <div class={body({ class: clsx(bodyClass) })}>
93
- {@render children?.()}
88
+ {:else if header}
89
+ {@render header()}
90
+ {/if}
94
91
  </div>
95
- {#if footer}
96
- <div class={footerCls({ class: clsx(footerClass) })}>
97
- {@render footer()}
98
- </div>
99
- {/if}
100
- {#if dismissable && !permanent && !title}
101
- <CloseButton onclick={() => (open = false)} class={closeBtn({ class: clsx(closeBtnClass) })} />
92
+ {/if}
93
+ <div class={cn(body({ class: clsx(bodyClass) }), (theme as ModalTheme)?.body)}>
94
+ {@render children?.()}
95
+ </div>
96
+ {#if footer}
97
+ <div class={cn(footerCls({ class: clsx(footerClass) }), (theme as ModalTheme)?.footer)}>
98
+ {@render footer()}
99
+ </div>
100
+ {/if}
101
+ {#if dismissable && !permanent && !title}
102
+ <CloseButton type="submit" onclick={close_handler(form)} class={cn(closebutton({ class: clsx(closeBtnClass) }), (theme as ModalTheme)?.closebutton)} />
103
+ {/if}
104
+ {/snippet}
105
+
106
+ {#if open}
107
+ <dialog {@attach init} use:focusTrap class={cn(base({ class: clsx(className) }), (theme as ModalTheme)?.base)} tabindex="-1" onsubmit={_onsubmit} oncancel={_oncancel} onclick={_onclick} ontoggle={_ontoggle} transition:transition|global={paramsOptions as ParamsType} {...restProps}>
108
+ {#if form}
109
+ <form method="dialog" class={cn(formCls(), (theme as ModalTheme)?.form)}>
110
+ {@render content()}
111
+ </form>
112
+ {:else}
113
+ {@render content()}
102
114
  {/if}
103
115
  </dialog>
104
116
  {/if}
@@ -107,13 +119,17 @@
107
119
  @component
108
120
  [Go to docs](https://flowbite-svelte.com/)
109
121
  ## Type
110
- [ModalProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1064)
122
+ [ModalProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1059)
111
123
  ## Props
112
124
  @prop children
125
+ @prop onaction = ()
113
126
  @prop oncancel
114
127
  @prop onsubmit
128
+ @prop ontoggle
129
+ @prop form = false
115
130
  @prop modal = true
116
131
  @prop autoclose = false
132
+ @prop focustrap = false
117
133
  @prop header
118
134
  @prop footer
119
135
  @prop title
@@ -2,13 +2,17 @@ import { type ModalProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [ModalProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1064)
5
+ * [ModalProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1059)
6
6
  * ## Props
7
7
  * @prop children
8
+ * @prop onaction = ()
8
9
  * @prop oncancel
9
10
  * @prop onsubmit
11
+ * @prop ontoggle
12
+ * @prop form = false
10
13
  * @prop modal = true
11
14
  * @prop autoclose = false
15
+ * @prop focustrap = false
12
16
  * @prop header
13
17
  * @prop footer
14
18
  * @prop title
@@ -1,3 +1,2 @@
1
- import Modal from "./Modal.svelte";
2
- import { modal } from "./theme";
3
- export { Modal, modal };
1
+ export { default as Modal } from "./Modal.svelte";
2
+ export { modal, type ModalTheme } from "./theme";
@@ -1,3 +1,2 @@
1
- import Modal from "./Modal.svelte";
2
- import { modal } from "./theme";
3
- export { Modal, modal };
1
+ export { default as Modal } from "./Modal.svelte";
2
+ export { modal } from "./theme";
@@ -49,10 +49,11 @@ export declare const modal: import("tailwind-variants").TVReturnType<{
49
49
  };
50
50
  }, {
51
51
  base: string;
52
+ form: string;
52
53
  header: string;
53
54
  footer: string;
54
55
  body: string;
55
- closeBtn: string;
56
+ closebutton: string;
56
57
  }, undefined, {
57
58
  placement: {
58
59
  "top-left": {
@@ -102,10 +103,11 @@ export declare const modal: import("tailwind-variants").TVReturnType<{
102
103
  };
103
104
  }, {
104
105
  base: string;
106
+ form: string;
105
107
  header: string;
106
108
  footer: string;
107
109
  body: string;
108
- closeBtn: string;
110
+ closebutton: string;
109
111
  }, import("tailwind-variants").TVReturnType<{
110
112
  placement: {
111
113
  "top-left": {
@@ -155,8 +157,11 @@ export declare const modal: import("tailwind-variants").TVReturnType<{
155
157
  };
156
158
  }, {
157
159
  base: string;
160
+ form: string;
158
161
  header: string;
159
162
  footer: string;
160
163
  body: string;
161
- closeBtn: string;
164
+ closebutton: string;
162
165
  }, undefined, unknown, unknown, undefined>>;
166
+ export type ModalSlots = keyof typeof modal.slots;
167
+ export type ModalTheme = Partial<Record<ModalSlots, string>>;
@@ -2,10 +2,11 @@ import { tv } from "tailwind-variants";
2
2
  export const modal = tv({
3
3
  slots: {
4
4
  base: "backdrop:bg-black/80 open:flex flex-col w-full max-h-[90hv] rounded-lg divide-y text-gray-500 dark:text-gray-400 border-gray-300 dark:border-gray-800 divide-gray-300 dark:divide-gray-700 bg-white dark:bg-gray-800 pointer-events-auto",
5
+ form: "flex flex-col rounded-lg divide-y",
5
6
  header: "flex items-center p-4 md:p-5 justify-between rounded-t-lg shrink-0 text-xl font-semibold text-gray-900 dark:text-white",
6
7
  footer: "flex items-center p-4 md:p-5 space-x-3 rtl:space-x-reverse rounded-b-lg shrink-0",
7
8
  body: "p-4 md:p-5 space-y-4 overflow-y-auto overscroll-contain",
8
- closeBtn: "absolute top-3 end-2.5"
9
+ closebutton: "absolute top-3 end-2.5"
9
10
  },
10
11
  variants: {
11
12
  placement: {
@@ -1,9 +1,13 @@
1
1
  <script lang="ts">
2
2
  import type { MenuProps } from "../types";
3
3
  import clsx from "clsx";
4
+ import { getTheme } from "../theme/themeUtils";
5
+ import { cn } from "..";
4
6
 
5
7
  let { size = "24", color = "currentColor", variation = "outline", ariaLabel = "bars 3", class: className, ...restProps }: MenuProps = $props();
6
8
 
9
+ const theme = getTheme("memu");
10
+
7
11
  let viewBox: string = $state("0 0 24 24");
8
12
  let svgpath: string = $state("");
9
13
  let svgoutline = `<path stroke="${color}" stroke-linecap="round" stroke-linejoin="round" d="M4 6h16M4 12h16M4 18h16"></path> `;
@@ -25,7 +29,7 @@
25
29
  });
26
30
  </script>
27
31
 
28
- <svg xmlns="http://www.w3.org/2000/svg" role="button" tabindex="0" width={size} height={size} class={clsx(className)} {...restProps} aria-label={ariaLabel} fill="none" {viewBox} stroke-width="2">
32
+ <svg xmlns="http://www.w3.org/2000/svg" role="button" tabindex="0" width={size} height={size} class={cn(clsx(className), theme)} {...restProps} aria-label={ariaLabel} fill="none" {viewBox} stroke-width="2">
29
33
  {@html svgpath}
30
34
  </svg>
31
35
 
@@ -33,7 +37,7 @@
33
37
  @component
34
38
  [Go to docs](https://flowbite-svelte.com/)
35
39
  ## Type
36
- [MenuProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1082)
40
+ [MenuProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1080)
37
41
  ## Props
38
42
  @prop size = "24"
39
43
  @prop color = "currentColor"
@@ -2,7 +2,7 @@ import type { MenuProps } from "../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [MenuProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1082)
5
+ * [MenuProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1080)
6
6
  * ## Props
7
7
  * @prop size = "24"
8
8
  * @prop color = "currentColor"
@@ -1,13 +1,16 @@
1
1
  <script lang="ts">
2
- import { twMerge } from "tailwind-merge";
3
2
  import clsx from "clsx";
4
- import { navbar_brand } from "./theme";
3
+ import { cn } from "..";
4
+ import { navbarBrand } from "./theme";
5
5
  import type { NavBrandProps } from "../types";
6
+ import { getTheme } from "../theme/themeUtils";
6
7
 
7
8
  let { children, class: className, ...restProps }: NavBrandProps = $props();
9
+
10
+ const theme = getTheme("navBrand");
8
11
  </script>
9
12
 
10
- <a {...restProps} class={twMerge(navbar_brand(), clsx(className))}>
13
+ <a {...restProps} class={cn(navbarBrand(), clsx(className), theme)}>
11
14
  {@render children?.()}
12
15
  </a>
13
16
 
@@ -15,7 +18,7 @@
15
18
  @component
16
19
  [Go to docs](https://flowbite-svelte.com/)
17
20
  ## Type
18
- [NavBrandProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1102)
21
+ [NavBrandProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1100)
19
22
  ## Props
20
23
  @prop children
21
24
  @prop class: className
@@ -2,7 +2,7 @@ import type { NavBrandProps } from "../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [NavBrandProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1102)
5
+ * [NavBrandProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1100)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -1,13 +1,16 @@
1
1
  <script lang="ts">
2
- import { twMerge } from "tailwind-merge";
2
+ import { cn } from "..";
3
3
  import clsx from "clsx";
4
- import { navbar_container } from "./theme";
4
+ import { navbarContainer } from "./theme";
5
5
  import type { NavContainerProps } from "../types";
6
+ import { getTheme } from "../theme/themeUtils";
6
7
 
7
8
  let { children, fluid, class: clasName, ...restProps }: NavContainerProps = $props();
9
+
10
+ const theme = getTheme("navContainer");
8
11
  </script>
9
12
 
10
- <div {...restProps} class={twMerge(navbar_container({ fluid }), clsx(clasName))}>
13
+ <div {...restProps} class={cn(navbarContainer({ fluid }), clsx(clasName), theme)}>
11
14
  {@render children?.()}
12
15
  </div>
13
16
 
@@ -15,7 +18,7 @@
15
18
  @component
16
19
  [Go to docs](https://flowbite-svelte.com/)
17
20
  ## Type
18
- [NavContainerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1104)
21
+ [NavContainerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1102)
19
22
  ## Props
20
23
  @prop children
21
24
  @prop fluid
@@ -2,7 +2,7 @@ import type { NavContainerProps } from "../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [NavContainerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1104)
5
+ * [NavContainerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1102)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop fluid