flowbite-svelte 1.11.1 → 1.11.3

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 (324) hide show
  1. package/dist/accordion/Accordion.svelte +14 -10
  2. package/dist/accordion/Accordion.svelte.d.ts +1 -1
  3. package/dist/accordion/AccordionItem.svelte +13 -10
  4. package/dist/accordion/AccordionItem.svelte.d.ts +1 -1
  5. package/dist/alert/Alert.svelte +3 -4
  6. package/dist/alert/Alert.svelte.d.ts +1 -2
  7. package/dist/avatar/Avatar.svelte +1 -1
  8. package/dist/avatar/Avatar.svelte.d.ts +1 -1
  9. package/dist/badge/Badge.svelte +4 -5
  10. package/dist/badge/Badge.svelte.d.ts +1 -2
  11. package/dist/banner/Banner.svelte +3 -4
  12. package/dist/banner/Banner.svelte.d.ts +1 -2
  13. package/dist/bottom-navigation/BottomNav.svelte +4 -5
  14. package/dist/bottom-navigation/BottomNav.svelte.d.ts +1 -1
  15. package/dist/bottom-navigation/BottomNavHeader.svelte +1 -1
  16. package/dist/bottom-navigation/BottomNavHeader.svelte.d.ts +1 -1
  17. package/dist/bottom-navigation/BottomNavHeaderItem.svelte +1 -1
  18. package/dist/bottom-navigation/BottomNavHeaderItem.svelte.d.ts +1 -1
  19. package/dist/bottom-navigation/BottomNavItem.svelte +1 -1
  20. package/dist/bottom-navigation/BottomNavItem.svelte.d.ts +1 -1
  21. package/dist/breadcrumb/Breadcrumb.svelte +1 -1
  22. package/dist/breadcrumb/Breadcrumb.svelte.d.ts +1 -1
  23. package/dist/breadcrumb/BreadcrumbItem.svelte +1 -1
  24. package/dist/breadcrumb/BreadcrumbItem.svelte.d.ts +1 -1
  25. package/dist/button-group/ButtonGroup.svelte +1 -1
  26. package/dist/button-group/ButtonGroup.svelte.d.ts +1 -1
  27. package/dist/buttons/Button.svelte +1 -1
  28. package/dist/buttons/Button.svelte.d.ts +1 -1
  29. package/dist/buttons/GradientButton.svelte +1 -1
  30. package/dist/buttons/GradientButton.svelte.d.ts +1 -1
  31. package/dist/card/Card.svelte +1 -1
  32. package/dist/card/Card.svelte.d.ts +1 -1
  33. package/dist/carousel/Carousel.svelte +25 -35
  34. package/dist/carousel/Carousel.svelte.d.ts +1 -1
  35. package/dist/carousel/CarouselIndicators.svelte +11 -18
  36. package/dist/carousel/CarouselIndicators.svelte.d.ts +1 -1
  37. package/dist/carousel/ControlButton.svelte +1 -1
  38. package/dist/carousel/ControlButton.svelte.d.ts +1 -1
  39. package/dist/carousel/Controls.svelte +13 -26
  40. package/dist/carousel/Controls.svelte.d.ts +1 -1
  41. package/dist/carousel/Slide.svelte +9 -10
  42. package/dist/carousel/Slide.svelte.d.ts +1 -1
  43. package/dist/carousel/Thumbnail.svelte +1 -1
  44. package/dist/carousel/Thumbnail.svelte.d.ts +1 -1
  45. package/dist/carousel/Thumbnails.svelte +13 -20
  46. package/dist/carousel/Thumbnails.svelte.d.ts +1 -1
  47. package/dist/clipboard/Clipboard.svelte +1 -1
  48. package/dist/clipboard/Clipboard.svelte.d.ts +1 -1
  49. package/dist/darkmode/DarkMode.svelte +1 -1
  50. package/dist/darkmode/DarkMode.svelte.d.ts +1 -1
  51. package/dist/datepicker/Datepicker.svelte +1 -1
  52. package/dist/datepicker/Datepicker.svelte.d.ts +1 -1
  53. package/dist/device-mockups/Android.svelte +1 -1
  54. package/dist/device-mockups/Android.svelte.d.ts +1 -1
  55. package/dist/device-mockups/DefaultMockup.svelte +1 -1
  56. package/dist/device-mockups/DefaultMockup.svelte.d.ts +1 -1
  57. package/dist/device-mockups/Desktop.svelte +2 -2
  58. package/dist/device-mockups/Desktop.svelte.d.ts +1 -1
  59. package/dist/device-mockups/DeviceMockup.svelte +1 -1
  60. package/dist/device-mockups/DeviceMockup.svelte.d.ts +1 -1
  61. package/dist/device-mockups/Ios.svelte +1 -1
  62. package/dist/device-mockups/Ios.svelte.d.ts +1 -1
  63. package/dist/device-mockups/Laptop.svelte +1 -1
  64. package/dist/device-mockups/Laptop.svelte.d.ts +1 -1
  65. package/dist/device-mockups/Smartwatch.svelte +1 -1
  66. package/dist/device-mockups/Smartwatch.svelte.d.ts +1 -1
  67. package/dist/device-mockups/Tablet.svelte +2 -2
  68. package/dist/device-mockups/Tablet.svelte.d.ts +1 -1
  69. package/dist/drawer/Drawer.svelte +3 -4
  70. package/dist/drawer/Drawer.svelte.d.ts +1 -2
  71. package/dist/drawer/Drawerhead.svelte +1 -1
  72. package/dist/drawer/Drawerhead.svelte.d.ts +1 -1
  73. package/dist/dropdown/Dropdown.svelte +6 -7
  74. package/dist/dropdown/Dropdown.svelte.d.ts +1 -1
  75. package/dist/dropdown/DropdownDivider.svelte +1 -1
  76. package/dist/dropdown/DropdownDivider.svelte.d.ts +1 -1
  77. package/dist/dropdown/DropdownGroup.svelte +1 -1
  78. package/dist/dropdown/DropdownGroup.svelte.d.ts +1 -1
  79. package/dist/dropdown/DropdownHeader.svelte +1 -1
  80. package/dist/dropdown/DropdownHeader.svelte.d.ts +1 -1
  81. package/dist/dropdown/DropdownItem.svelte +3 -10
  82. package/dist/dropdown/DropdownItem.svelte.d.ts +1 -1
  83. package/dist/footer/Footer.svelte +1 -1
  84. package/dist/footer/Footer.svelte.d.ts +1 -1
  85. package/dist/footer/FooterBrand.svelte +1 -1
  86. package/dist/footer/FooterBrand.svelte.d.ts +1 -1
  87. package/dist/footer/FooterCopyright.svelte +1 -1
  88. package/dist/footer/FooterCopyright.svelte.d.ts +1 -1
  89. package/dist/footer/FooterIcon.svelte +1 -1
  90. package/dist/footer/FooterIcon.svelte.d.ts +1 -1
  91. package/dist/footer/FooterLink.svelte +1 -1
  92. package/dist/footer/FooterLink.svelte.d.ts +1 -1
  93. package/dist/footer/FooterLinkGroup.svelte +1 -1
  94. package/dist/footer/FooterLinkGroup.svelte.d.ts +1 -1
  95. package/dist/forms/button-toggle/ButtonToggle.svelte +1 -1
  96. package/dist/forms/button-toggle/ButtonToggle.svelte.d.ts +1 -1
  97. package/dist/forms/button-toggle/CheckIcon.svelte +1 -1
  98. package/dist/forms/button-toggle/CheckIcon.svelte.d.ts +1 -1
  99. package/dist/forms/checkbox/CheckboxButton.svelte +1 -1
  100. package/dist/forms/checkbox/CheckboxButton.svelte.d.ts +1 -1
  101. package/dist/forms/dropzone/Dropzone.svelte +1 -1
  102. package/dist/forms/dropzone/Dropzone.svelte.d.ts +1 -1
  103. package/dist/forms/fileupload/Fileupload.svelte +1 -1
  104. package/dist/forms/fileupload/Fileupload.svelte.d.ts +1 -1
  105. package/dist/forms/floating-label/FloatingLabelInput.svelte +4 -5
  106. package/dist/forms/floating-label/FloatingLabelInput.svelte.d.ts +1 -2
  107. package/dist/forms/helper/Helper.svelte +1 -1
  108. package/dist/forms/helper/Helper.svelte.d.ts +1 -1
  109. package/dist/forms/input-addon/InputAddon.svelte +1 -1
  110. package/dist/forms/input-addon/InputAddon.svelte.d.ts +1 -1
  111. package/dist/forms/input-field/Input.svelte +1 -1
  112. package/dist/forms/input-field/index.d.ts +1 -1
  113. package/dist/forms/label/Label.svelte +1 -1
  114. package/dist/forms/label/Label.svelte.d.ts +1 -1
  115. package/dist/forms/radio/Radio.svelte +1 -1
  116. package/dist/forms/range/Range.svelte +1 -1
  117. package/dist/forms/range/Range.svelte.d.ts +1 -1
  118. package/dist/forms/search/Search.svelte +1 -1
  119. package/dist/forms/search/Search.svelte.d.ts +1 -1
  120. package/dist/forms/tags/Tags.svelte +1 -1
  121. package/dist/forms/tags/Tags.svelte.d.ts +1 -1
  122. package/dist/forms/textarea/Textarea.svelte +1 -1
  123. package/dist/forms/textarea/Textarea.svelte.d.ts +1 -1
  124. package/dist/forms/textarea/theme.js +1 -1
  125. package/dist/forms/timepicker/Timepicker.svelte +1 -1
  126. package/dist/forms/timepicker/Timepicker.svelte.d.ts +1 -1
  127. package/dist/forms/toggle/Toggle.svelte +1 -1
  128. package/dist/forms/toggle/Toggle.svelte.d.ts +1 -1
  129. package/dist/gallery/Gallery.svelte +1 -1
  130. package/dist/gallery/Gallery.svelte.d.ts +1 -1
  131. package/dist/indicator/Indicator.svelte +1 -1
  132. package/dist/indicator/Indicator.svelte.d.ts +1 -1
  133. package/dist/kbd/Kbd.svelte +1 -1
  134. package/dist/kbd/Kbd.svelte.d.ts +1 -1
  135. package/dist/list-group/Listgroup.svelte +1 -1
  136. package/dist/list-group/Listgroup.svelte.d.ts +1 -1
  137. package/dist/list-group/ListgroupItem.svelte +1 -1
  138. package/dist/list-group/ListgroupItem.svelte.d.ts +1 -1
  139. package/dist/mega-menu/MegaMenu.svelte +1 -1
  140. package/dist/mega-menu/MegaMenu.svelte.d.ts +1 -1
  141. package/dist/modal/Modal.svelte +1 -1
  142. package/dist/modal/Modal.svelte.d.ts +1 -1
  143. package/dist/navbar/Menu.svelte +1 -1
  144. package/dist/navbar/Menu.svelte.d.ts +1 -1
  145. package/dist/navbar/NavBrand.svelte +1 -1
  146. package/dist/navbar/NavBrand.svelte.d.ts +1 -1
  147. package/dist/navbar/NavContainer.svelte +1 -1
  148. package/dist/navbar/NavContainer.svelte.d.ts +1 -1
  149. package/dist/navbar/NavHamburger.svelte +1 -1
  150. package/dist/navbar/NavHamburger.svelte.d.ts +1 -1
  151. package/dist/navbar/NavLi.svelte +4 -11
  152. package/dist/navbar/NavLi.svelte.d.ts +1 -1
  153. package/dist/navbar/NavUl.svelte +9 -16
  154. package/dist/navbar/NavUl.svelte.d.ts +3 -3
  155. package/dist/navbar/Navbar.svelte +1 -1
  156. package/dist/navbar/Navbar.svelte.d.ts +1 -1
  157. package/dist/navbar/theme.js +1 -1
  158. package/dist/pagination/Pagination.svelte +1 -1
  159. package/dist/pagination/Pagination.svelte.d.ts +1 -1
  160. package/dist/pagination/PaginationButton.svelte +1 -1
  161. package/dist/pagination/PaginationButton.svelte.d.ts +1 -1
  162. package/dist/pagination/PaginationItem.svelte +1 -1
  163. package/dist/pagination/PaginationItem.svelte.d.ts +1 -1
  164. package/dist/pagination/PaginationNav.svelte +1 -1
  165. package/dist/pagination/PaginationNav.svelte.d.ts +1 -1
  166. package/dist/popover/Popover.svelte +1 -1
  167. package/dist/popover/Popover.svelte.d.ts +1 -1
  168. package/dist/progress/Progressbar.svelte +1 -1
  169. package/dist/progress/Progressbar.svelte.d.ts +1 -1
  170. package/dist/progress/Progressradial.svelte +1 -1
  171. package/dist/progress/Progressradial.svelte.d.ts +1 -1
  172. package/dist/rating/AdvancedRating.svelte +1 -1
  173. package/dist/rating/AdvancedRating.svelte.d.ts +1 -1
  174. package/dist/rating/CustomIcon.svelte +1 -1
  175. package/dist/rating/CustomIcon.svelte.d.ts +1 -1
  176. package/dist/rating/Heart.svelte +1 -1
  177. package/dist/rating/Heart.svelte.d.ts +1 -1
  178. package/dist/rating/Rating.svelte +1 -1
  179. package/dist/rating/Rating.svelte.d.ts +1 -1
  180. package/dist/rating/RatingComment.svelte +1 -1
  181. package/dist/rating/RatingComment.svelte.d.ts +1 -1
  182. package/dist/rating/Review.svelte +1 -1
  183. package/dist/rating/Review.svelte.d.ts +1 -1
  184. package/dist/rating/ScoreRating.svelte +1 -1
  185. package/dist/rating/ScoreRating.svelte.d.ts +1 -1
  186. package/dist/rating/Star.svelte +1 -1
  187. package/dist/rating/Star.svelte.d.ts +1 -1
  188. package/dist/rating/Thumbup.svelte +1 -1
  189. package/dist/rating/Thumbup.svelte.d.ts +1 -1
  190. package/dist/sidebar/Sidebar.svelte +7 -8
  191. package/dist/sidebar/Sidebar.svelte.d.ts +1 -1
  192. package/dist/sidebar/SidebarBrand.svelte +1 -1
  193. package/dist/sidebar/SidebarBrand.svelte.d.ts +1 -1
  194. package/dist/sidebar/SidebarButton.svelte +1 -1
  195. package/dist/sidebar/SidebarButton.svelte.d.ts +1 -1
  196. package/dist/sidebar/SidebarCta.svelte +1 -1
  197. package/dist/sidebar/SidebarCta.svelte.d.ts +1 -1
  198. package/dist/sidebar/SidebarDropdownWrapper.svelte +6 -6
  199. package/dist/sidebar/SidebarDropdownWrapper.svelte.d.ts +1 -1
  200. package/dist/sidebar/SidebarGroup.svelte +1 -1
  201. package/dist/sidebar/SidebarGroup.svelte.d.ts +1 -1
  202. package/dist/sidebar/SidebarItem.svelte +5 -14
  203. package/dist/sidebar/SidebarItem.svelte.d.ts +1 -1
  204. package/dist/skeleton/CardPlaceholder.svelte +1 -1
  205. package/dist/skeleton/CardPlaceholder.svelte.d.ts +1 -1
  206. package/dist/skeleton/ImagePlaceholder.svelte +1 -1
  207. package/dist/skeleton/ImagePlaceholder.svelte.d.ts +1 -1
  208. package/dist/skeleton/ListPlaceholder.svelte +1 -1
  209. package/dist/skeleton/ListPlaceholder.svelte.d.ts +1 -1
  210. package/dist/skeleton/Skeleton.svelte +1 -1
  211. package/dist/skeleton/Skeleton.svelte.d.ts +1 -1
  212. package/dist/skeleton/TestimonialPlaceholder.svelte +1 -1
  213. package/dist/skeleton/TestimonialPlaceholder.svelte.d.ts +1 -1
  214. package/dist/skeleton/TextPlaceholder.svelte +1 -1
  215. package/dist/skeleton/TextPlaceholder.svelte.d.ts +1 -1
  216. package/dist/skeleton/VideoPlaceholder.svelte +1 -1
  217. package/dist/skeleton/VideoPlaceholder.svelte.d.ts +1 -1
  218. package/dist/skeleton/WidgetPlaceholder.svelte +1 -1
  219. package/dist/skeleton/WidgetPlaceholder.svelte.d.ts +1 -1
  220. package/dist/speed-dial/SpeedDial.svelte +1 -1
  221. package/dist/speed-dial/SpeedDial.svelte.d.ts +1 -1
  222. package/dist/speed-dial/SpeedDialButton.svelte +1 -1
  223. package/dist/speed-dial/SpeedDialButton.svelte.d.ts +1 -1
  224. package/dist/speed-dial/SpeedDialTrigger.svelte +1 -1
  225. package/dist/speed-dial/SpeedDialTrigger.svelte.d.ts +1 -1
  226. package/dist/spinner/Spinner.svelte +1 -1
  227. package/dist/spinner/Spinner.svelte.d.ts +1 -1
  228. package/dist/stepindicator/StepIndicator.svelte +1 -1
  229. package/dist/stepindicator/StepIndicator.svelte.d.ts +1 -1
  230. package/dist/stepper/BreadcrumbStepper.svelte +1 -1
  231. package/dist/stepper/BreadcrumbStepper.svelte.d.ts +1 -1
  232. package/dist/stepper/DetailedStepper.svelte +1 -1
  233. package/dist/stepper/DetailedStepper.svelte.d.ts +1 -1
  234. package/dist/stepper/ProgressStepper.svelte +1 -1
  235. package/dist/stepper/ProgressStepper.svelte.d.ts +1 -1
  236. package/dist/stepper/Stepper.svelte +1 -1
  237. package/dist/stepper/Stepper.svelte.d.ts +1 -1
  238. package/dist/stepper/TimelineStepper.svelte +1 -1
  239. package/dist/stepper/TimelineStepper.svelte.d.ts +1 -1
  240. package/dist/stepper/VerticalStepper.svelte +1 -1
  241. package/dist/stepper/VerticalStepper.svelte.d.ts +1 -1
  242. package/dist/table/Table.svelte +1 -1
  243. package/dist/table/Table.svelte.d.ts +1 -1
  244. package/dist/table/TableBody.svelte +1 -1
  245. package/dist/table/TableBody.svelte.d.ts +1 -1
  246. package/dist/table/TableBodyCell.svelte +1 -1
  247. package/dist/table/TableBodyCell.svelte.d.ts +1 -1
  248. package/dist/table/TableBodyRow.svelte +1 -1
  249. package/dist/table/TableBodyRow.svelte.d.ts +1 -1
  250. package/dist/table/TableHead.svelte +1 -1
  251. package/dist/table/TableHead.svelte.d.ts +1 -1
  252. package/dist/table/TableHeadCell.svelte +1 -1
  253. package/dist/table/TableHeadCell.svelte.d.ts +1 -1
  254. package/dist/table/TableSearch.svelte +1 -1
  255. package/dist/table/TableSearch.svelte.d.ts +1 -1
  256. package/dist/tabs/TabItem.svelte +14 -27
  257. package/dist/tabs/TabItem.svelte.d.ts +3 -3
  258. package/dist/tabs/Tabs.svelte +16 -18
  259. package/dist/tabs/Tabs.svelte.d.ts +1 -1
  260. package/dist/tabs/theme.d.ts +0 -3
  261. package/dist/tabs/theme.js +1 -2
  262. package/dist/timeline/Activity.svelte +1 -1
  263. package/dist/timeline/Activity.svelte.d.ts +1 -1
  264. package/dist/timeline/ActivityItem.svelte +1 -1
  265. package/dist/timeline/ActivityItem.svelte.d.ts +1 -1
  266. package/dist/timeline/Group.svelte +1 -1
  267. package/dist/timeline/Group.svelte.d.ts +1 -1
  268. package/dist/timeline/GroupItem.svelte +1 -1
  269. package/dist/timeline/GroupItem.svelte.d.ts +1 -1
  270. package/dist/timeline/Timeline.svelte +1 -1
  271. package/dist/timeline/Timeline.svelte.d.ts +1 -1
  272. package/dist/timeline/TimelineItem.svelte +1 -1
  273. package/dist/timeline/TimelineItem.svelte.d.ts +1 -1
  274. package/dist/toast/Toast.svelte +3 -4
  275. package/dist/toast/Toast.svelte.d.ts +1 -2
  276. package/dist/toolbar/Toolbar.svelte +7 -8
  277. package/dist/toolbar/Toolbar.svelte.d.ts +1 -1
  278. package/dist/toolbar/ToolbarButton.svelte +1 -1
  279. package/dist/toolbar/ToolbarButton.svelte.d.ts +1 -1
  280. package/dist/toolbar/ToolbarGroup.svelte +7 -7
  281. package/dist/toolbar/ToolbarGroup.svelte.d.ts +1 -1
  282. package/dist/tooltip/Tooltip.svelte +1 -1
  283. package/dist/tooltip/Tooltip.svelte.d.ts +1 -1
  284. package/dist/types.d.ts +12 -18
  285. package/dist/types.js +1 -1
  286. package/dist/typography/anchor/A.svelte +1 -1
  287. package/dist/typography/anchor/A.svelte.d.ts +1 -1
  288. package/dist/typography/blockquote/Blockquote.svelte +1 -1
  289. package/dist/typography/blockquote/Blockquote.svelte.d.ts +1 -1
  290. package/dist/typography/descriptionlist/DescriptionList.svelte +1 -1
  291. package/dist/typography/descriptionlist/DescriptionList.svelte.d.ts +1 -1
  292. package/dist/typography/heading/Heading.svelte +1 -1
  293. package/dist/typography/heading/Heading.svelte.d.ts +1 -1
  294. package/dist/typography/hr/Hr.svelte +1 -1
  295. package/dist/typography/hr/Hr.svelte.d.ts +1 -1
  296. package/dist/typography/img/EnhancedImg.svelte +1 -1
  297. package/dist/typography/img/EnhancedImg.svelte.d.ts +1 -1
  298. package/dist/typography/img/Img.svelte +1 -1
  299. package/dist/typography/img/Img.svelte.d.ts +1 -1
  300. package/dist/typography/layout/Layout.svelte +1 -1
  301. package/dist/typography/layout/Layout.svelte.d.ts +1 -1
  302. package/dist/typography/list/Li.svelte +1 -1
  303. package/dist/typography/list/Li.svelte.d.ts +1 -1
  304. package/dist/typography/list/List.svelte +1 -1
  305. package/dist/typography/list/List.svelte.d.ts +1 -1
  306. package/dist/typography/mark/Mark.svelte +1 -1
  307. package/dist/typography/mark/Mark.svelte.d.ts +1 -1
  308. package/dist/typography/paragraph/P.svelte +1 -1
  309. package/dist/typography/paragraph/P.svelte.d.ts +1 -1
  310. package/dist/typography/secondary/Secondary.svelte +1 -1
  311. package/dist/typography/secondary/Secondary.svelte.d.ts +1 -1
  312. package/dist/typography/span/Span.svelte +1 -1
  313. package/dist/typography/span/Span.svelte.d.ts +1 -1
  314. package/dist/utils/Arrow.svelte +1 -1
  315. package/dist/utils/Arrow.svelte.d.ts +1 -1
  316. package/dist/utils/CloseButton.svelte +1 -1
  317. package/dist/utils/CloseButton.svelte.d.ts +1 -1
  318. package/dist/utils/Popper.svelte +1 -1
  319. package/dist/utils/Popper.svelte.d.ts +1 -1
  320. package/dist/utils/singleselection.svelte.d.ts +6 -0
  321. package/dist/utils/singleselection.svelte.js +21 -0
  322. package/dist/video/Video.svelte +1 -1
  323. package/dist/video/Video.svelte.d.ts +1 -1
  324. package/package.json +10 -10
@@ -1,24 +1,28 @@
1
1
  <script lang="ts">
2
+ import { type AccordionCtxType, type AccordionProps } from "..";
3
+ import { getTheme } from "../theme/themeUtils";
4
+ import clsx from "clsx";
2
5
  import { setContext } from "svelte";
3
- import { writable } from "svelte/store";
4
6
  import { accordion } from "./";
5
- import clsx from "clsx";
6
- import { type AccordionProps } from "..";
7
- import { getTheme } from "../theme/themeUtils";
7
+ import { createSingleSelectionContext } from "../utils/singleselection.svelte";
8
8
 
9
9
  let { children, flush, activeClass, inactiveClass, multiple = false, class: className, transitionType, ...restProps }: AccordionProps = $props();
10
10
 
11
11
  const theme = getTheme("accordion");
12
12
 
13
- const ctx = {
13
+ const ctx: AccordionCtxType = $state({
14
14
  flush,
15
15
  activeClass,
16
16
  inactiveClass,
17
- selected: multiple ? undefined : writable()
18
- };
17
+ transitionType
18
+ });
19
+
20
+ setContext<AccordionCtxType>("ctx", ctx);
21
+
22
+ if (!multiple) {
23
+ createSingleSelectionContext();
24
+ }
19
25
 
20
- setContext("ctx", ctx);
21
- setContext("ctxTransitionType", transitionType);
22
26
  const base = $derived(accordion({ flush, class: clsx(theme, className) }));
23
27
  </script>
24
28
 
@@ -30,7 +34,7 @@
30
34
  @component
31
35
  [Go to docs](https://flowbite-svelte.com/)
32
36
  ## Type
33
- [AccordionProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L179)
37
+ [AccordionProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L168)
34
38
  ## Props
35
39
  @prop children
36
40
  @prop flush
@@ -2,7 +2,7 @@ import { type AccordionProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [AccordionProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L179)
5
+ * [AccordionProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L168)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop flush
@@ -1,9 +1,9 @@
1
1
  <script lang="ts">
2
2
  import { type AccordionCtxType, type AccordionItemProps, type ParamsType } from "..";
3
3
  import { getTheme, warnThemeDeprecation } from "../theme/themeUtils";
4
+ import { useSingleSelection } from "../utils/singleselection.svelte";
4
5
  import clsx from "clsx";
5
6
  import { getContext } from "svelte";
6
- import { writable } from "svelte/store";
7
7
  import { slide } from "svelte/transition";
8
8
  import { accordionItem } from ".";
9
9
 
@@ -27,24 +27,27 @@
27
27
 
28
28
  let styling: typeof classes = $derived(classes ?? { button: headerClass, content: contentClass, active: activeClass, inactive: inactiveClass });
29
29
 
30
- const ctxTransitionType = getContext("ctxTransitionType");
30
+ const ctx: AccordionCtxType = getContext("ctx") ?? {};
31
+
32
+ const ctxTransitionType = ctx.transitionType ?? transitionType;
31
33
  // Check if transitionType is explicitly set to undefined in props
32
34
  const useTransition = transitionType === "none" ? false : ctxTransitionType === "none" ? false : true;
33
35
 
34
36
  // Theme context
35
37
  const theme = getTheme("accordionItem");
36
38
 
37
- const ctx: AccordionCtxType = getContext("ctx") ?? {};
38
-
39
39
  // single selection
40
- const self = {};
41
- const selected = ctx.selected ?? writable();
40
+ const self = Symbol("accordion-item");
42
41
 
43
- if (open) selected.set(self);
42
+ const updateSingleSelection = useSingleSelection<symbol>((value) => (open = value === self));
44
43
 
45
- selected.subscribe((x) => (open = x === self));
44
+ $effect(() => {
45
+ updateSingleSelection(open, self);
46
+ });
46
47
 
47
- const handleToggle = () => selected.set(open ? {} : self);
48
+ const handleToggle = () => {
49
+ open = !open;
50
+ };
48
51
 
49
52
  const { base, button, content, active, inactive } = $derived(accordionItem({ flush: ctx.flush, open }));
50
53
 
@@ -94,7 +97,7 @@
94
97
  @component
95
98
  [Go to docs](https://flowbite-svelte.com/)
96
99
  ## Type
97
- [AccordionItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L187)
100
+ [AccordionItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L176)
98
101
  ## Props
99
102
  @prop children
100
103
  @prop header
@@ -2,7 +2,7 @@ import { type AccordionItemProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [AccordionItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L187)
5
+ * [AccordionItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L176)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop header
@@ -6,7 +6,7 @@
6
6
  import { getTheme } from "../theme/themeUtils";
7
7
  import { createDismissableContext } from "../utils/dismissable.svelte";
8
8
 
9
- let { children, icon, alertStatus = $bindable(true), closeIcon: CloseIcon, color = "primary", rounded = true, border, class: className, dismissable, transition = fade, params, onclose, ...restProps }: AlertProps = $props();
9
+ let { children, icon, alertStatus = $bindable(true), closeIcon: CloseIcon, color = "primary", rounded = true, border, class: className, dismissable, transition = fade, params, ...restProps }: AlertProps = $props();
10
10
 
11
11
  // Theme context
12
12
  const theme = getTheme("alert");
@@ -34,7 +34,7 @@
34
34
  </script>
35
35
 
36
36
  {#if alertStatus}
37
- <div role="alert" bind:this={ref} {...restProps} {onclose} transition:transition={params as ParamsType} class={divCls}>
37
+ <div role="alert" bind:this={ref} {...restProps} transition:transition={params as ParamsType} class={divCls}>
38
38
  {#if icon}
39
39
  {@render icon()}
40
40
  {/if}
@@ -63,7 +63,7 @@
63
63
  @component
64
64
  [Go to docs](https://flowbite-svelte.com/)
65
65
  ## Type
66
- [AlertProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L201)
66
+ [AlertProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L190)
67
67
  ## Props
68
68
  @prop children
69
69
  @prop icon
@@ -76,6 +76,5 @@
76
76
  @prop dismissable
77
77
  @prop transition = fade
78
78
  @prop params
79
- @prop onclose
80
79
  @prop ...restProps
81
80
  -->
@@ -2,7 +2,7 @@ import { type AlertProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [AlertProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L201)
5
+ * [AlertProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L190)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop icon
@@ -15,7 +15,6 @@ import { type AlertProps } from "..";
15
15
  * @prop dismissable
16
16
  * @prop transition = fade
17
17
  * @prop params
18
- * @prop onclose
19
18
  * @prop ...restProps
20
19
  */
21
20
  declare const Alert: import("svelte").Component<AlertProps, {}, "alertStatus">;
@@ -48,7 +48,7 @@
48
48
  @component
49
49
  [Go to docs](https://flowbite-svelte.com/)
50
50
  ## Type
51
- [AvatarProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L212)
51
+ [AvatarProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L201)
52
52
  ## Props
53
53
  @prop children
54
54
  @prop indicator
@@ -2,7 +2,7 @@ import { type AvatarProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [AvatarProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L212)
5
+ * [AvatarProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L201)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop indicator
@@ -6,7 +6,7 @@
6
6
  import { badge } from ".";
7
7
  import { createDismissableContext } from "../utils/dismissable.svelte";
8
8
 
9
- let { children, icon, badgeStatus = $bindable(true), color = "primary", large = false, dismissable = false, class: className, classes, border, href, target, rounded, transition = fade, params, aClass, onclose, ...restProps }: BadgeProps = $props();
9
+ let { children, icon, badgeStatus = $bindable(true), color = "primary", large = false, dismissable = false, class: className, classes, border, href, target, rounded, transition = fade, params, aClass, ...restProps }: BadgeProps = $props();
10
10
 
11
11
  warnThemeDeprecation("Badge", { aClass }, { aClass: "linkClass" });
12
12
 
@@ -19,7 +19,7 @@
19
19
 
20
20
  let ref: HTMLDivElement | undefined = $state(undefined);
21
21
 
22
- const close = (ev: MouseEvent) => {
22
+ const close = (ev: Event) => {
23
23
  if (ref?.dispatchEvent(new Event("close", { bubbles: true, cancelable: true }))) {
24
24
  badgeStatus = false;
25
25
  }
@@ -29,7 +29,7 @@
29
29
  </script>
30
30
 
31
31
  {#if badgeStatus}
32
- <div {...restProps} bind:this={ref} transition:transition={params as ParamsType} {onclose} class={base({ class: clsx(theme?.base, className) })}>
32
+ <div {...restProps} bind:this={ref} transition:transition={params as ParamsType} class={base({ class: clsx(theme?.base, className) })}>
33
33
  {#if href}
34
34
  <a {href} {target} class={linkClass({ class: clsx(theme?.linkClass, styling.linkClass) })}>
35
35
  {@render children()}
@@ -54,7 +54,7 @@
54
54
  @component
55
55
  [Go to docs](https://flowbite-svelte.com/)
56
56
  ## Type
57
- [BadgeProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L224)
57
+ [BadgeProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L213)
58
58
  ## Props
59
59
  @prop children
60
60
  @prop icon
@@ -71,6 +71,5 @@
71
71
  @prop transition = fade
72
72
  @prop params
73
73
  @prop aClass
74
- @prop onclose
75
74
  @prop ...restProps
76
75
  -->
@@ -2,7 +2,7 @@ import { type BadgeProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [BadgeProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L224)
5
+ * [BadgeProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L213)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop icon
@@ -19,7 +19,6 @@ import { type BadgeProps } from "..";
19
19
  * @prop transition = fade
20
20
  * @prop params
21
21
  * @prop aClass
22
- * @prop onclose
23
22
  * @prop ...restProps
24
23
  */
25
24
  declare const Badge: import("svelte").Component<BadgeProps, {}, "badgeStatus">;
@@ -6,7 +6,7 @@
6
6
  import { getTheme, warnThemeDeprecation } from "../theme/themeUtils";
7
7
  import { createDismissableContext } from "../utils/dismissable.svelte";
8
8
 
9
- let { children, header, open = $bindable(true), dismissable = true, color = "gray", type, class: className, classes, innerClass, transition = fade, params, closeClass, onclose, ...restProps }: BannerProps = $props();
9
+ let { children, header, open = $bindable(true), dismissable = true, color = "gray", type, class: className, classes, innerClass, transition = fade, params, closeClass, ...restProps }: BannerProps = $props();
10
10
 
11
11
  warnThemeDeprecation("Banner", { innerClass, closeClass }, { innerClass: "insideDiv", closeClass: "dismissable" });
12
12
 
@@ -27,7 +27,7 @@
27
27
  </script>
28
28
 
29
29
  {#if open}
30
- <div tabindex="-1" bind:this={ref} {onclose} class={base({ class: clsx(theme?.base, className) })} {...restProps} transition:transition={params as ParamsType}>
30
+ <div tabindex="-1" bind:this={ref} class={base({ class: clsx(theme?.base, className) })} {...restProps} transition:transition={params as ParamsType}>
31
31
  <div class={insideDiv({ class: clsx(theme?.insideDiv, styling.insideDiv) })}>
32
32
  {@render children?.()}
33
33
  </div>
@@ -44,7 +44,7 @@
44
44
  @component
45
45
  [Go to docs](https://flowbite-svelte.com/)
46
46
  ## Type
47
- [BannerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L239)
47
+ [BannerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L227)
48
48
  ## Props
49
49
  @prop children
50
50
  @prop header
@@ -58,6 +58,5 @@
58
58
  @prop transition = fade
59
59
  @prop params
60
60
  @prop closeClass
61
- @prop onclose
62
61
  @prop ...restProps
63
62
  -->
@@ -2,7 +2,7 @@ import { type BannerProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [BannerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L239)
5
+ * [BannerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L227)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop header
@@ -16,7 +16,6 @@ import { type BannerProps } from "..";
16
16
  * @prop transition = fade
17
17
  * @prop params
18
18
  * @prop closeClass
19
- * @prop onclose
20
19
  * @prop ...restProps
21
20
  */
22
21
  declare const Banner: import("svelte").Component<BannerProps, {}, "open">;
@@ -1,10 +1,9 @@
1
1
  <script lang="ts">
2
+ import { type BottomNavContextType, type BottomNavProps, cn } from "..";
3
+ import { getTheme, warnThemeDeprecation } from "../theme/themeUtils";
4
+ import clsx from "clsx";
2
5
  import { setContext } from "svelte";
3
- import { writable } from "svelte/store";
4
6
  import { bottomNav } from ".";
5
- import clsx from "clsx";
6
- import { type BottomNavProps, type BottomNavContextType, cn } from "..";
7
- import { getTheme, warnThemeDeprecation } from "../theme/themeUtils";
8
7
 
9
8
  let { children, header, position = "fixed", navType = "default", class: className, classes, outerClass, innerClass, activeClass, activeUrl = "", ...restProps }: BottomNavProps = $props();
10
9
 
@@ -42,7 +41,7 @@
42
41
  @component
43
42
  [Go to docs](https://flowbite-svelte.com/)
44
43
  ## Type
45
- [BottomNavProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L257)
44
+ [BottomNavProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L245)
46
45
  ## Props
47
46
  @prop children
48
47
  @prop header
@@ -2,7 +2,7 @@ import { type BottomNavProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [BottomNavProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L257)
5
+ * [BottomNavProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L245)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop header
@@ -26,7 +26,7 @@
26
26
  @component
27
27
  [Go to docs](https://flowbite-svelte.com/)
28
28
  ## Type
29
- [BottomNavHeaderProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L276)
29
+ [BottomNavHeaderProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L264)
30
30
  ## Props
31
31
  @prop children
32
32
  @prop class: className
@@ -2,7 +2,7 @@ import { type BottomNavHeaderProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [BottomNavHeaderProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L276)
5
+ * [BottomNavHeaderProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L264)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -20,7 +20,7 @@
20
20
  @component
21
21
  [Go to docs](https://flowbite-svelte.com/)
22
22
  ## Type
23
- [BottomNavHeaderItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L282)
23
+ [BottomNavHeaderItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L270)
24
24
  ## Props
25
25
  @prop itemName
26
26
  @prop active
@@ -2,7 +2,7 @@ import { type BottomNavHeaderItemProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [BottomNavHeaderItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L282)
5
+ * [BottomNavHeaderItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L270)
6
6
  * ## Props
7
7
  * @prop itemName
8
8
  * @prop active
@@ -67,7 +67,7 @@
67
67
  @component
68
68
  [Go to docs](https://flowbite-svelte.com/)
69
69
  ## Type
70
- [BottomNavItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L266)
70
+ [BottomNavItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L254)
71
71
  ## Props
72
72
  @prop children
73
73
  @prop btnName
@@ -2,7 +2,7 @@ import { type BottomNavItemProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [BottomNavItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L266)
5
+ * [BottomNavItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L254)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop btnName
@@ -26,7 +26,7 @@
26
26
  @component
27
27
  [Go to docs](https://flowbite-svelte.com/)
28
28
  ## Type
29
- [BreadcrumbProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L288)
29
+ [BreadcrumbProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L276)
30
30
  ## Props
31
31
  @prop children
32
32
  @prop solid = false
@@ -2,7 +2,7 @@ import { type BreadcrumbProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [BreadcrumbProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L288)
5
+ * [BreadcrumbProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L276)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop solid = false
@@ -56,7 +56,7 @@
56
56
  @component
57
57
  [Go to docs](https://flowbite-svelte.com/)
58
58
  ## Type
59
- [BreadcrumbItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L295)
59
+ [BreadcrumbItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L283)
60
60
  ## Props
61
61
  @prop children
62
62
  @prop icon
@@ -2,7 +2,7 @@ import { type BreadcrumbItemProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [BreadcrumbItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L295)
5
+ * [BreadcrumbItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L283)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop icon
@@ -22,7 +22,7 @@
22
22
  @component
23
23
  [Go to docs](https://flowbite-svelte.com/)
24
24
  ## Type
25
- [ButtonGroupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L306)
25
+ [ButtonGroupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L294)
26
26
  ## Props
27
27
  @prop children
28
28
  @prop size = "md"
@@ -2,7 +2,7 @@ import { type ButtonGroupProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [ButtonGroupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L306)
5
+ * [ButtonGroupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L294)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop size = "md"
@@ -44,7 +44,7 @@
44
44
  @component
45
45
  [Go to docs](https://flowbite-svelte.com/)
46
46
  ## Type
47
- [ButtonProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L316)
47
+ [ButtonProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L304)
48
48
  ## Props
49
49
  @prop children
50
50
  @prop pill
@@ -2,7 +2,7 @@ import { type ButtonProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [ButtonProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L316)
5
+ * [ButtonProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L304)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop pill
@@ -30,7 +30,7 @@
30
30
  @component
31
31
  [Go to docs](https://flowbite-svelte.com/)
32
32
  ## Type
33
- [GradientButtonProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L325)
33
+ [GradientButtonProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L313)
34
34
  ## Props
35
35
  @prop children
36
36
  @prop outline
@@ -2,7 +2,7 @@ import { type GradientButtonProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [GradientButtonProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L325)
5
+ * [GradientButtonProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L313)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop outline
@@ -47,7 +47,7 @@
47
47
  @component
48
48
  [Go to docs](https://flowbite-svelte.com/)
49
49
  ## Type
50
- [CardProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L366)
50
+ [CardProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L354)
51
51
  ## Props
52
52
  @prop children
53
53
  @prop color = "gray"
@@ -2,7 +2,7 @@ import { type CardProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [CardProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L366)
5
+ * [CardProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L354)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop color = "gray"
@@ -1,11 +1,10 @@
1
1
  <script lang="ts">
2
+ import { type CarouselProps, type State, Slide } from "..";
3
+ import { getTheme } from "../theme/themeUtils";
4
+ import clsx from "clsx";
2
5
  import { onMount, setContext } from "svelte";
3
- import { writable } from "svelte/store";
4
6
  import { canChangeSlide } from "./CarouselSlide";
5
7
  import { carousel } from "./theme";
6
- import clsx from "clsx";
7
- import { type CarouselProps, type State, Slide } from "..";
8
- import { getTheme } from "../theme/themeUtils";
9
8
 
10
9
  const SLIDE_DURATION_RATIO = 0.25;
11
10
 
@@ -13,20 +12,14 @@
13
12
 
14
13
  const theme = getTheme("carousel");
15
14
 
16
- const { set, subscribe, update } = writable<State>({ images, index: index ?? 0, forward: true, slideDuration, lastSlideChange: new Date() });
15
+ const _state: State = $state({ images, index: index ?? 0, forward: true, slideDuration, lastSlideChange: new Date() });
17
16
 
18
- setContext("state", {
19
- set: (_state: State) => set({ index: _state.index, images: _state.images, lastSlideChange: new Date(), slideDuration, forward }),
20
- subscribe,
21
- update
22
- });
17
+ setContext("state", _state);
23
18
 
24
- let forward = $state(true);
25
19
  let initialized = false;
26
20
 
27
- subscribe((_state) => {
21
+ $effect(() => {
28
22
  index = _state.index;
29
- forward = _state.forward;
30
23
  onchange?.(images[index]);
31
24
  });
32
25
 
@@ -36,29 +29,23 @@
36
29
  });
37
30
 
38
31
  const nextSlide = () => {
39
- update((_state) => {
40
- if (!canChangeSlide({ lastSlideChange: _state.lastSlideChange, slideDuration, slideDurationRatio: SLIDE_DURATION_RATIO })) return _state;
41
-
42
- return {
43
- ..._state,
44
- forward: true,
45
- index: _state.index >= images.length - 1 ? 0 : _state.index + 1,
46
- lastSlideChange: new Date()
47
- };
48
- });
32
+ if (!canChangeSlide({ lastSlideChange: _state.lastSlideChange, slideDuration, slideDurationRatio: SLIDE_DURATION_RATIO })) return _state;
33
+
34
+ _state.forward = true;
35
+ _state.index = _state.index >= images.length - 1 ? 0 : _state.index + 1;
36
+ _state.lastSlideChange = new Date();
37
+
38
+ return _state;
49
39
  };
50
40
 
51
41
  const prevSlide = () => {
52
- update((_state) => {
53
- if (!canChangeSlide({ lastSlideChange: _state.lastSlideChange, slideDuration, slideDurationRatio: SLIDE_DURATION_RATIO })) return _state;
54
-
55
- return {
56
- ..._state,
57
- forward: false,
58
- index: _state.index <= 0 ? images.length - 1 : _state.index - 1,
59
- lastSlideChange: new Date()
60
- };
61
- });
42
+ if (!canChangeSlide({ lastSlideChange: _state.lastSlideChange, slideDuration, slideDurationRatio: SLIDE_DURATION_RATIO })) return _state;
43
+
44
+ _state.forward = false;
45
+ _state.index = _state.index <= 0 ? images.length - 1 : _state.index - 1;
46
+ _state.lastSlideChange = new Date();
47
+
48
+ return _state;
62
49
  };
63
50
 
64
51
  const loop = (node: HTMLElement) => {
@@ -68,7 +55,10 @@
68
55
 
69
56
  if (duration > 0) {
70
57
  intervalId = setInterval(nextSlide, duration);
71
- if (initialized) forward ? nextSlide() : prevSlide();
58
+ if (initialized) {
59
+ if (_state.forward) nextSlide();
60
+ else prevSlide();
61
+ }
72
62
  }
73
63
 
74
64
  return () => clearInterval(intervalId);
@@ -189,7 +179,7 @@
189
179
  @component
190
180
  [Go to docs](https://flowbite-svelte.com/)
191
181
  ## Type
192
- [CarouselProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L384)
182
+ [CarouselProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L372)
193
183
  ## Props
194
184
  @prop children
195
185
  @prop slide
@@ -2,7 +2,7 @@ import { type CarouselProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [CarouselProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L384)
5
+ * [CarouselProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L372)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop slide