flowbite-svelte 1.20.0 → 1.21.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 (336) hide show
  1. package/dist/accordion/Accordion.svelte +1 -1
  2. package/dist/accordion/Accordion.svelte.d.ts +1 -1
  3. package/dist/accordion/AccordionItem.svelte +1 -1
  4. package/dist/accordion/AccordionItem.svelte.d.ts +1 -1
  5. package/dist/alert/Alert.svelte +1 -1
  6. package/dist/alert/Alert.svelte.d.ts +1 -1
  7. package/dist/avatar/Avatar.svelte +1 -1
  8. package/dist/avatar/Avatar.svelte.d.ts +1 -1
  9. package/dist/badge/Badge.svelte +1 -1
  10. package/dist/badge/Badge.svelte.d.ts +1 -1
  11. package/dist/banner/Banner.svelte +1 -1
  12. package/dist/banner/Banner.svelte.d.ts +1 -1
  13. package/dist/bottom-navigation/BottomNav.svelte +1 -1
  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 +1 -1
  34. package/dist/carousel/Carousel.svelte.d.ts +1 -1
  35. package/dist/carousel/CarouselIndicators.svelte +1 -1
  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 +1 -1
  40. package/dist/carousel/Controls.svelte.d.ts +1 -1
  41. package/dist/carousel/Slide.svelte +1 -1
  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 +1 -1
  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/device-mockups/Android.svelte +1 -1
  52. package/dist/device-mockups/Android.svelte.d.ts +1 -1
  53. package/dist/device-mockups/DefaultMockup.svelte +1 -1
  54. package/dist/device-mockups/DefaultMockup.svelte.d.ts +1 -1
  55. package/dist/device-mockups/Desktop.svelte +1 -1
  56. package/dist/device-mockups/Desktop.svelte.d.ts +1 -1
  57. package/dist/device-mockups/DeviceMockup.svelte +1 -1
  58. package/dist/device-mockups/DeviceMockup.svelte.d.ts +1 -1
  59. package/dist/device-mockups/Ios.svelte +1 -1
  60. package/dist/device-mockups/Ios.svelte.d.ts +1 -1
  61. package/dist/device-mockups/Laptop.svelte +1 -1
  62. package/dist/device-mockups/Laptop.svelte.d.ts +1 -1
  63. package/dist/device-mockups/Smartwatch.svelte +1 -1
  64. package/dist/device-mockups/Smartwatch.svelte.d.ts +1 -1
  65. package/dist/device-mockups/Tablet.svelte +1 -1
  66. package/dist/device-mockups/Tablet.svelte.d.ts +1 -1
  67. package/dist/dialog/Dialog.svelte +1 -1
  68. package/dist/dialog/Dialog.svelte.d.ts +1 -1
  69. package/dist/drawer/Drawer.svelte +1 -1
  70. package/dist/drawer/Drawer.svelte.d.ts +1 -1
  71. package/dist/drawer/DrawerHandle.svelte +1 -1
  72. package/dist/drawer/DrawerHandle.svelte.d.ts +1 -1
  73. package/dist/drawer/Drawerhead.svelte +1 -1
  74. package/dist/drawer/Drawerhead.svelte.d.ts +1 -1
  75. package/dist/dropdown/Dropdown.svelte +1 -1
  76. package/dist/dropdown/Dropdown.svelte.d.ts +1 -1
  77. package/dist/dropdown/DropdownDivider.svelte +1 -1
  78. package/dist/dropdown/DropdownDivider.svelte.d.ts +1 -1
  79. package/dist/dropdown/DropdownGroup.svelte +1 -1
  80. package/dist/dropdown/DropdownGroup.svelte.d.ts +1 -1
  81. package/dist/dropdown/DropdownHeader.svelte +1 -1
  82. package/dist/dropdown/DropdownHeader.svelte.d.ts +1 -1
  83. package/dist/dropdown/DropdownItem.svelte +1 -1
  84. package/dist/dropdown/DropdownItem.svelte.d.ts +1 -1
  85. package/dist/footer/Footer.svelte +1 -1
  86. package/dist/footer/Footer.svelte.d.ts +1 -1
  87. package/dist/footer/FooterBrand.svelte +1 -1
  88. package/dist/footer/FooterBrand.svelte.d.ts +1 -1
  89. package/dist/footer/FooterCopyright.svelte +1 -1
  90. package/dist/footer/FooterCopyright.svelte.d.ts +1 -1
  91. package/dist/footer/FooterIcon.svelte +1 -1
  92. package/dist/footer/FooterIcon.svelte.d.ts +1 -1
  93. package/dist/footer/FooterLink.svelte +1 -1
  94. package/dist/footer/FooterLink.svelte.d.ts +1 -1
  95. package/dist/footer/FooterLinkGroup.svelte +1 -1
  96. package/dist/footer/FooterLinkGroup.svelte.d.ts +1 -1
  97. package/dist/forms/button-toggle/ButtonToggle.svelte +1 -1
  98. package/dist/forms/button-toggle/ButtonToggle.svelte.d.ts +1 -1
  99. package/dist/forms/button-toggle/CheckIcon.svelte +1 -1
  100. package/dist/forms/button-toggle/CheckIcon.svelte.d.ts +1 -1
  101. package/dist/forms/checkbox/CheckboxButton.svelte +1 -1
  102. package/dist/forms/checkbox/CheckboxButton.svelte.d.ts +1 -1
  103. package/dist/forms/dropzone/Dropzone.svelte +1 -1
  104. package/dist/forms/dropzone/Dropzone.svelte.d.ts +1 -1
  105. package/dist/forms/fileupload/Fileupload.svelte +1 -1
  106. package/dist/forms/fileupload/Fileupload.svelte.d.ts +1 -1
  107. package/dist/forms/floating-label/FloatingLabelInput.svelte +1 -1
  108. package/dist/forms/floating-label/FloatingLabelInput.svelte.d.ts +1 -1
  109. package/dist/forms/helper/Helper.svelte +1 -1
  110. package/dist/forms/helper/Helper.svelte.d.ts +1 -1
  111. package/dist/forms/input-addon/InputAddon.svelte +1 -1
  112. package/dist/forms/input-addon/InputAddon.svelte.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/range/Range.svelte +1 -1
  116. package/dist/forms/range/Range.svelte.d.ts +1 -1
  117. package/dist/forms/search/Search.svelte +1 -1
  118. package/dist/forms/search/Search.svelte.d.ts +1 -1
  119. package/dist/forms/textarea/Textarea.svelte +1 -1
  120. package/dist/forms/textarea/Textarea.svelte.d.ts +1 -1
  121. package/dist/forms/timepicker/Timepicker.svelte +1 -1
  122. package/dist/forms/timepicker/Timepicker.svelte.d.ts +1 -1
  123. package/dist/forms/toggle/Toggle.svelte +1 -1
  124. package/dist/forms/toggle/Toggle.svelte.d.ts +1 -1
  125. package/dist/gallery/Gallery.svelte +1 -1
  126. package/dist/gallery/Gallery.svelte.d.ts +1 -1
  127. package/dist/index.d.ts +1 -0
  128. package/dist/index.js +1 -0
  129. package/dist/indicator/Indicator.svelte +1 -1
  130. package/dist/indicator/Indicator.svelte.d.ts +1 -1
  131. package/dist/kanban/KanbanCard.svelte +1 -1
  132. package/dist/kanban/KanbanCard.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 +1 -1
  152. package/dist/navbar/NavLi.svelte.d.ts +1 -1
  153. package/dist/navbar/NavUl.svelte +1 -1
  154. package/dist/navbar/NavUl.svelte.d.ts +1 -1
  155. package/dist/navbar/Navbar.svelte +1 -1
  156. package/dist/navbar/Navbar.svelte.d.ts +1 -1
  157. package/dist/pagination/Pagination.svelte +1 -1
  158. package/dist/pagination/Pagination.svelte.d.ts +1 -1
  159. package/dist/pagination/PaginationButton.svelte +1 -1
  160. package/dist/pagination/PaginationButton.svelte.d.ts +1 -1
  161. package/dist/pagination/PaginationItem.svelte +1 -1
  162. package/dist/pagination/PaginationItem.svelte.d.ts +1 -1
  163. package/dist/pagination/PaginationNav.svelte +1 -1
  164. package/dist/pagination/PaginationNav.svelte.d.ts +1 -1
  165. package/dist/popover/Popover.svelte +1 -1
  166. package/dist/popover/Popover.svelte.d.ts +1 -1
  167. package/dist/progress/Progressbar.svelte +1 -1
  168. package/dist/progress/Progressbar.svelte.d.ts +1 -1
  169. package/dist/progress/Progressradial.svelte +1 -1
  170. package/dist/progress/Progressradial.svelte.d.ts +1 -1
  171. package/dist/rating/AdvancedRating.svelte +1 -1
  172. package/dist/rating/AdvancedRating.svelte.d.ts +1 -1
  173. package/dist/rating/CustomIcon.svelte +1 -1
  174. package/dist/rating/CustomIcon.svelte.d.ts +1 -1
  175. package/dist/rating/Heart.svelte +1 -1
  176. package/dist/rating/Heart.svelte.d.ts +1 -1
  177. package/dist/rating/Rating.svelte +1 -1
  178. package/dist/rating/Rating.svelte.d.ts +1 -1
  179. package/dist/rating/RatingComment.svelte +1 -1
  180. package/dist/rating/RatingComment.svelte.d.ts +1 -1
  181. package/dist/rating/Review.svelte +1 -1
  182. package/dist/rating/Review.svelte.d.ts +1 -1
  183. package/dist/rating/ScoreRating.svelte +1 -1
  184. package/dist/rating/ScoreRating.svelte.d.ts +1 -1
  185. package/dist/rating/Star.svelte +1 -1
  186. package/dist/rating/Star.svelte.d.ts +1 -1
  187. package/dist/rating/Thumbup.svelte +1 -1
  188. package/dist/rating/Thumbup.svelte.d.ts +1 -1
  189. package/dist/sidebar/Sidebar.svelte +1 -1
  190. package/dist/sidebar/Sidebar.svelte.d.ts +1 -1
  191. package/dist/sidebar/SidebarBrand.svelte +1 -1
  192. package/dist/sidebar/SidebarBrand.svelte.d.ts +1 -1
  193. package/dist/sidebar/SidebarButton.svelte +1 -1
  194. package/dist/sidebar/SidebarButton.svelte.d.ts +1 -1
  195. package/dist/sidebar/SidebarCta.svelte +1 -1
  196. package/dist/sidebar/SidebarCta.svelte.d.ts +1 -1
  197. package/dist/sidebar/SidebarDropdownWrapper.svelte +1 -1
  198. package/dist/sidebar/SidebarDropdownWrapper.svelte.d.ts +1 -1
  199. package/dist/sidebar/SidebarGroup.svelte +1 -1
  200. package/dist/sidebar/SidebarGroup.svelte.d.ts +1 -1
  201. package/dist/sidebar/SidebarItem.svelte +1 -1
  202. package/dist/sidebar/SidebarItem.svelte.d.ts +1 -1
  203. package/dist/skeleton/CardPlaceholder.svelte +1 -1
  204. package/dist/skeleton/CardPlaceholder.svelte.d.ts +1 -1
  205. package/dist/skeleton/ImagePlaceholder.svelte +1 -1
  206. package/dist/skeleton/ImagePlaceholder.svelte.d.ts +1 -1
  207. package/dist/skeleton/ListPlaceholder.svelte +1 -1
  208. package/dist/skeleton/ListPlaceholder.svelte.d.ts +1 -1
  209. package/dist/skeleton/Skeleton.svelte +1 -1
  210. package/dist/skeleton/Skeleton.svelte.d.ts +1 -1
  211. package/dist/skeleton/TestimonialPlaceholder.svelte +1 -1
  212. package/dist/skeleton/TestimonialPlaceholder.svelte.d.ts +1 -1
  213. package/dist/skeleton/TextPlaceholder.svelte +1 -1
  214. package/dist/skeleton/TextPlaceholder.svelte.d.ts +1 -1
  215. package/dist/skeleton/VideoPlaceholder.svelte +1 -1
  216. package/dist/skeleton/VideoPlaceholder.svelte.d.ts +1 -1
  217. package/dist/skeleton/WidgetPlaceholder.svelte +1 -1
  218. package/dist/skeleton/WidgetPlaceholder.svelte.d.ts +1 -1
  219. package/dist/speed-dial/SpeedDial.svelte +1 -1
  220. package/dist/speed-dial/SpeedDial.svelte.d.ts +1 -1
  221. package/dist/speed-dial/SpeedDialButton.svelte +1 -1
  222. package/dist/speed-dial/SpeedDialButton.svelte.d.ts +1 -1
  223. package/dist/speed-dial/SpeedDialTrigger.svelte +1 -1
  224. package/dist/speed-dial/SpeedDialTrigger.svelte.d.ts +1 -1
  225. package/dist/spinner/Spinner.svelte +1 -1
  226. package/dist/spinner/Spinner.svelte.d.ts +1 -1
  227. package/dist/splitpane/Divider.svelte +47 -0
  228. package/dist/splitpane/Divider.svelte.d.ts +17 -0
  229. package/dist/splitpane/Pane.svelte +47 -0
  230. package/dist/splitpane/Pane.svelte.d.ts +13 -0
  231. package/dist/splitpane/SplitPane.svelte +403 -0
  232. package/dist/splitpane/SplitPane.svelte.d.ts +33 -0
  233. package/dist/splitpane/index.d.ts +4 -0
  234. package/dist/splitpane/index.js +4 -0
  235. package/dist/splitpane/theme.d.ts +65 -0
  236. package/dist/splitpane/theme.js +45 -0
  237. package/dist/step-indicator/StepIndicator.svelte +1 -1
  238. package/dist/step-indicator/StepIndicator.svelte.d.ts +1 -1
  239. package/dist/stepper/BreadcrumbStepper.svelte +1 -1
  240. package/dist/stepper/BreadcrumbStepper.svelte.d.ts +1 -1
  241. package/dist/stepper/DetailedStepper.svelte +1 -1
  242. package/dist/stepper/DetailedStepper.svelte.d.ts +1 -1
  243. package/dist/stepper/ProgressStepper.svelte +1 -1
  244. package/dist/stepper/ProgressStepper.svelte.d.ts +1 -1
  245. package/dist/stepper/Stepper.svelte +1 -1
  246. package/dist/stepper/Stepper.svelte.d.ts +1 -1
  247. package/dist/stepper/TimelineStepper.svelte +1 -1
  248. package/dist/stepper/TimelineStepper.svelte.d.ts +1 -1
  249. package/dist/stepper/VerticalStepper.svelte +1 -1
  250. package/dist/stepper/VerticalStepper.svelte.d.ts +1 -1
  251. package/dist/table/Table.svelte +1 -1
  252. package/dist/table/Table.svelte.d.ts +1 -1
  253. package/dist/table/TableBody.svelte +1 -1
  254. package/dist/table/TableBody.svelte.d.ts +1 -1
  255. package/dist/table/TableBodyCell.svelte +1 -1
  256. package/dist/table/TableBodyCell.svelte.d.ts +1 -1
  257. package/dist/table/TableBodyRow.svelte +1 -1
  258. package/dist/table/TableBodyRow.svelte.d.ts +1 -1
  259. package/dist/table/TableHead.svelte +1 -1
  260. package/dist/table/TableHead.svelte.d.ts +1 -1
  261. package/dist/table/TableHeadCell.svelte +1 -1
  262. package/dist/table/TableHeadCell.svelte.d.ts +1 -1
  263. package/dist/table/TableSearch.svelte +1 -1
  264. package/dist/table/TableSearch.svelte.d.ts +1 -1
  265. package/dist/tabs/TabItem.svelte +1 -1
  266. package/dist/tabs/TabItem.svelte.d.ts +1 -1
  267. package/dist/tabs/Tabs.svelte +1 -1
  268. package/dist/tabs/Tabs.svelte.d.ts +1 -1
  269. package/dist/theme/themes.d.ts +1 -0
  270. package/dist/theme/themes.js +1 -0
  271. package/dist/timeline/Activity.svelte +1 -1
  272. package/dist/timeline/Activity.svelte.d.ts +1 -1
  273. package/dist/timeline/ActivityItem.svelte +1 -1
  274. package/dist/timeline/ActivityItem.svelte.d.ts +1 -1
  275. package/dist/timeline/Group.svelte +1 -1
  276. package/dist/timeline/Group.svelte.d.ts +1 -1
  277. package/dist/timeline/GroupItem.svelte +1 -1
  278. package/dist/timeline/GroupItem.svelte.d.ts +1 -1
  279. package/dist/timeline/Timeline.svelte +1 -1
  280. package/dist/timeline/Timeline.svelte.d.ts +1 -1
  281. package/dist/timeline/TimelineItem.svelte +1 -1
  282. package/dist/timeline/TimelineItem.svelte.d.ts +1 -1
  283. package/dist/toast/Toast.svelte +1 -1
  284. package/dist/toast/Toast.svelte.d.ts +1 -1
  285. package/dist/toolbar/Toolbar.svelte +1 -1
  286. package/dist/toolbar/Toolbar.svelte.d.ts +1 -1
  287. package/dist/toolbar/ToolbarButton.svelte +1 -1
  288. package/dist/toolbar/ToolbarButton.svelte.d.ts +1 -1
  289. package/dist/toolbar/ToolbarGroup.svelte +1 -1
  290. package/dist/toolbar/ToolbarGroup.svelte.d.ts +1 -1
  291. package/dist/tooltip/Tooltip.svelte +1 -1
  292. package/dist/tooltip/Tooltip.svelte.d.ts +1 -1
  293. package/dist/tooltip/theme.d.ts +3 -0
  294. package/dist/tooltip/theme.js +8 -1
  295. package/dist/types.d.ts +32 -5
  296. package/dist/typography/a/A.svelte +1 -1
  297. package/dist/typography/a/A.svelte.d.ts +1 -1
  298. package/dist/typography/blockquote/Blockquote.svelte +1 -1
  299. package/dist/typography/blockquote/Blockquote.svelte.d.ts +1 -1
  300. package/dist/typography/descriptionlist/DescriptionList.svelte +1 -1
  301. package/dist/typography/descriptionlist/DescriptionList.svelte.d.ts +1 -1
  302. package/dist/typography/heading/Heading.svelte +1 -1
  303. package/dist/typography/heading/Heading.svelte.d.ts +1 -1
  304. package/dist/typography/img/EnhancedImg.svelte +1 -1
  305. package/dist/typography/img/EnhancedImg.svelte.d.ts +1 -1
  306. package/dist/typography/img/Img.svelte +1 -1
  307. package/dist/typography/img/Img.svelte.d.ts +1 -1
  308. package/dist/typography/layout/Layout.svelte +1 -1
  309. package/dist/typography/layout/Layout.svelte.d.ts +1 -1
  310. package/dist/typography/list/Li.svelte +1 -1
  311. package/dist/typography/list/Li.svelte.d.ts +1 -1
  312. package/dist/typography/list/List.svelte +1 -1
  313. package/dist/typography/list/List.svelte.d.ts +1 -1
  314. package/dist/typography/mark/Mark.svelte +1 -1
  315. package/dist/typography/mark/Mark.svelte.d.ts +1 -1
  316. package/dist/typography/paragraph/P.svelte +1 -1
  317. package/dist/typography/paragraph/P.svelte.d.ts +1 -1
  318. package/dist/typography/secondary/Secondary.svelte +1 -1
  319. package/dist/typography/secondary/Secondary.svelte.d.ts +1 -1
  320. package/dist/typography/span/Span.svelte +1 -1
  321. package/dist/typography/span/Span.svelte.d.ts +1 -1
  322. package/dist/utils/Arrow.svelte +1 -1
  323. package/dist/utils/Arrow.svelte.d.ts +1 -1
  324. package/dist/utils/CloseButton.svelte +1 -1
  325. package/dist/utils/CloseButton.svelte.d.ts +1 -1
  326. package/dist/utils/Popper.svelte +75 -65
  327. package/dist/utils/Popper.svelte.d.ts +7 -6
  328. package/dist/utils/debounce.d.ts +17 -0
  329. package/dist/utils/debounce.js +41 -0
  330. package/dist/video/Video.svelte +1 -1
  331. package/dist/video/Video.svelte.d.ts +1 -1
  332. package/dist/virtuallist/VirtualList.svelte +30 -10
  333. package/dist/virtuallist/VirtualList.svelte.d.ts +25 -2
  334. package/dist/virtuallist/theme.d.ts +21 -21
  335. package/dist/virtuallist/theme.js +11 -1
  336. package/package.json +13 -1
@@ -19,7 +19,7 @@
19
19
  @component
20
20
  [Go to docs](https://flowbite-svelte.com/)
21
21
  ## Type
22
- [HeadingProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1907)
22
+ [HeadingProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1937)
23
23
  ## Props
24
24
  @prop children
25
25
  @prop tag = "h1"
@@ -2,7 +2,7 @@ import type { HeadingProps } from "../../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [HeadingProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1907)
5
+ * [HeadingProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1937)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop tag = "h1"
@@ -50,7 +50,7 @@
50
50
  @component
51
51
  [Go to docs](https://flowbite-svelte.com/)
52
52
  ## Type
53
- [EnhandedImgProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1949)
53
+ [EnhandedImgProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1979)
54
54
  ## Props
55
55
  @prop src
56
56
  @prop href
@@ -2,7 +2,7 @@ import type { EnhandedImgProps } from "../../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [EnhandedImgProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1949)
5
+ * [EnhandedImgProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1979)
6
6
  * ## Props
7
7
  * @prop src
8
8
  * @prop href
@@ -61,7 +61,7 @@
61
61
  @component
62
62
  [Go to docs](https://flowbite-svelte.com/)
63
63
  ## Type
64
- [ImgProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1938)
64
+ [ImgProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1968)
65
65
  ## Props
66
66
  @prop children
67
67
  @prop size
@@ -2,7 +2,7 @@ import type { ImgProps } from "../../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [ImgProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1938)
5
+ * [ImgProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1968)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop size
@@ -19,7 +19,7 @@
19
19
  @component
20
20
  [Go to docs](https://flowbite-svelte.com/)
21
21
  ## Type
22
- [LayoutProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1962)
22
+ [LayoutProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1992)
23
23
  ## Props
24
24
  @prop children
25
25
  @prop class: className
@@ -2,7 +2,7 @@ import type { LayoutProps } from "../../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [LayoutProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1962)
5
+ * [LayoutProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1992)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -18,7 +18,7 @@
18
18
  @component
19
19
  [Go to docs](https://flowbite-svelte.com/)
20
20
  ## Type
21
- [LiProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1975)
21
+ [LiProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2005)
22
22
  ## Props
23
23
  @prop children
24
24
  @prop icon
@@ -2,7 +2,7 @@ import type { LiProps } from "../../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [LiProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1975)
5
+ * [LiProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2005)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop icon
@@ -28,7 +28,7 @@
28
28
  @component
29
29
  [Go to docs](https://flowbite-svelte.com/)
30
30
  ## Type
31
- [ListProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1967)
31
+ [ListProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1997)
32
32
  ## Props
33
33
  @prop children
34
34
  @prop tag = "ul"
@@ -2,7 +2,7 @@ import type { ListProps } from "../../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [ListProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1967)
5
+ * [ListProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1997)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop tag = "ul"
@@ -17,7 +17,7 @@
17
17
  @component
18
18
  [Go to docs](https://flowbite-svelte.com/)
19
19
  ## Type
20
- [MarkProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1981)
20
+ [MarkProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2011)
21
21
  ## Props
22
22
  @prop children
23
23
  @prop class: className
@@ -2,7 +2,7 @@ import type { MarkProps } from "../../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [MarkProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1981)
5
+ * [MarkProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2011)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -32,7 +32,7 @@
32
32
  @component
33
33
  [Go to docs](https://flowbite-svelte.com/)
34
34
  ## Type
35
- [ParagraphProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1986)
35
+ [ParagraphProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2016)
36
36
  ## Props
37
37
  @prop children
38
38
  @prop class: className = "text-gray-900 dark:text-white"
@@ -2,7 +2,7 @@ import type { ParagraphProps } from "../../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [ParagraphProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1986)
5
+ * [ParagraphProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2016)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className = "text-gray-900 dark:text-white"
@@ -17,7 +17,7 @@
17
17
  @component
18
18
  [Go to docs](https://flowbite-svelte.com/)
19
19
  ## Type
20
- [SecondaryProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1994)
20
+ [SecondaryProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2024)
21
21
  ## Props
22
22
  @prop children
23
23
  @prop class: className
@@ -2,7 +2,7 @@ import type { SecondaryProps } from "../../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [SecondaryProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1994)
5
+ * [SecondaryProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2024)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -34,7 +34,7 @@
34
34
  @component
35
35
  [Go to docs](https://flowbite-svelte.com/)
36
36
  ## Type
37
- [SpanProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1999)
37
+ [SpanProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2029)
38
38
  ## Props
39
39
  @prop children
40
40
  @prop class: className
@@ -2,7 +2,7 @@ import type { SpanProps } from "../../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [SpanProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1999)
5
+ * [SpanProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2029)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -50,7 +50,7 @@
50
50
  @component
51
51
  [Go to docs](https://flowbite-svelte.com/)
52
52
  ## Type
53
- [ArrowProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2042)
53
+ [ArrowProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2073)
54
54
  ## Props
55
55
  @prop placement = "top"
56
56
  @prop cords
@@ -2,7 +2,7 @@ import type { ArrowProps } from "../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [ArrowProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2042)
5
+ * [ArrowProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2073)
6
6
  * ## Props
7
7
  * @prop placement = "top"
8
8
  * @prop cords
@@ -53,7 +53,7 @@
53
53
  @component
54
54
  [Go to docs](https://flowbite-svelte.com/)
55
55
  ## Type
56
- [CloseButtonProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L113)
56
+ [CloseButtonProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L144)
57
57
  ## Props
58
58
  @prop children
59
59
  @prop color = "gray"
@@ -2,7 +2,7 @@ import type { CloseButtonProps } from "../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [CloseButtonProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L113)
5
+ * [CloseButtonProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L144)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop color = "gray"
@@ -1,31 +1,36 @@
1
1
  <script lang="ts">
2
+ import type { ParamsType, PopperProps, TriggeredToggleEvent } from "../types";
2
3
  import type { Coords, Middleware, Placement, Strategy } from "@floating-ui/dom";
3
4
  import * as dom from "@floating-ui/dom";
4
- import Arrow from "./Arrow.svelte";
5
- import type { ParamsType, PopperProps, TriggeredToggleEvent } from "../types";
6
- import { fade } from "svelte/transition";
7
- import { sineIn } from "svelte/easing";
8
5
  import clsx from "clsx";
6
+ import { sineIn } from "svelte/easing";
7
+ import { fade } from "svelte/transition";
8
+ import Arrow from "./Arrow.svelte";
9
+ import { createMutualDebounce } from "./debounce";
10
+
11
+ const DEFAULT_TRIGGER_DELAY = 200;
12
+ const DEFAULT_OFFSET = 8;
9
13
 
10
14
  let {
11
15
  triggeredBy,
12
- triggerDelay = 200,
16
+ triggerDelay = DEFAULT_TRIGGER_DELAY,
13
17
  trigger = "click",
14
18
  placement = "top",
15
- offset = 8,
19
+ offset = DEFAULT_OFFSET,
16
20
  arrow = false,
17
21
  yOnly = false,
18
22
  strategy = "absolute",
23
+ role = "tooltip",
19
24
  reference,
20
25
  middlewares = [dom.flip(), dom.shift()],
21
- onbeforetoggle: _onbeforetoggle,
22
- ontoggle: _ontoggle,
23
- onclose: _onclose,
24
26
  class: className = "",
25
27
  arrowClass = "",
26
28
  isOpen = $bindable(false),
27
29
  transitionParams,
28
30
  transition = fade,
31
+ onbeforetoggle,
32
+ ontoggle,
33
+ onclose,
29
34
  children,
30
35
  ...restProps
31
36
  }: PopperProps = $props();
@@ -44,6 +49,25 @@
44
49
  strategy
45
50
  });
46
51
 
52
+ $effect(() => {
53
+ if (reference && popover) {
54
+ referenceElement = popover.ownerDocument.querySelector<HTMLElement>(reference);
55
+ }
56
+ });
57
+
58
+ let arrowEl: HTMLElement | null = $state(null);
59
+ $effect(() => {
60
+ if (popover) {
61
+ arrowEl = popover.querySelector<HTMLElement>(".popover-arrow");
62
+ }
63
+ });
64
+
65
+ let middleware: Middleware[] = $derived.by(() => {
66
+ const base = [...middlewares, dom.offset(offset)];
67
+ if (arrowEl) base.push(dom.arrow({ element: arrowEl }));
68
+ return base;
69
+ });
70
+
47
71
  const paramsDefault = { duration: 100, easing: sineIn };
48
72
  const paramsOptions = $derived(transitionParams ?? paramsDefault);
49
73
 
@@ -54,11 +78,6 @@
54
78
  return;
55
79
  }
56
80
 
57
- const arrowEl: HTMLElement | null = popover.querySelector(".popover-arrow");
58
-
59
- let middleware: Middleware[] = [...middlewares, dom.offset(offset)];
60
- if (arrowEl) middleware.push(dom.arrow({ element: arrowEl }));
61
-
62
81
  return dom.computePosition(referenceElement ?? invoker, popover, { placement, middleware, strategy }).then(({ x, y, middlewareData: { arrow }, placement: pl, strategy }) => {
63
82
  if (popover) {
64
83
  Object.assign(popover.style, { position: strategy, left: yOnly ? "0" : px(x), top: px(y) });
@@ -70,23 +89,17 @@
70
89
  });
71
90
  }
72
91
 
73
- let isTriggered: boolean = false;
74
-
75
- async function open_popover(ev: Event) {
76
- // throttle
77
- isTriggered = true;
78
- await new Promise((resolve) => setTimeout(resolve, triggerDelay));
79
- if (!isTriggered) {
80
- return;
81
- }
82
-
92
+ async function _open_popover(ev: Event) {
83
93
  ev.preventDefault();
84
94
 
85
95
  if (ev.target !== invoker && triggerEls.includes(ev.target as HTMLElement)) {
86
96
  invoker = ev.target as HTMLElement;
87
- // if (invoker) invoker.popoverTargetElement = popover;
88
- isOpen = false;
89
- await new Promise((resolve) => setTimeout(resolve, triggerDelay));
97
+ if (isOpen) {
98
+ // invoker changed but the popover is open and stays open; pretend as if it toggles
99
+ popover?.dispatchEvent(new ToggleEvent("beforetoggle", { newState: "open", oldState: "open" }));
100
+ await updatePopoverPosition();
101
+ popover?.dispatchEvent(new ToggleEvent("toggle", { newState: "open", oldState: "open" }));
102
+ }
90
103
  }
91
104
 
92
105
  if (ev.type === "mousedown") {
@@ -96,7 +109,7 @@
96
109
  }
97
110
  }
98
111
 
99
- async function close_popover(ev: Event) {
112
+ async function _close_popover(ev: Event) {
100
113
  // For click triggers, don't close on focusout events from inside the popover
101
114
  if (trigger === "click" && ev.type === "focusout") {
102
115
  const relatedTarget = (ev as FocusEvent).relatedTarget as HTMLElement;
@@ -112,12 +125,6 @@
112
125
  }
113
126
  }
114
127
 
115
- isTriggered = false;
116
- await new Promise((resolve) => setTimeout(resolve, triggerDelay));
117
- if (isTriggered) {
118
- return;
119
- }
120
-
121
128
  // if popover has focus don't close when leaving the invoker
122
129
  if (ev?.type === "mouseleave" && popover?.contains(popover.ownerDocument.activeElement)) {
123
130
  return;
@@ -129,26 +136,31 @@
129
136
  isOpen = false;
130
137
  }
131
138
 
132
- let autoUpdateDestroy = () => {};
139
+ const [open_popover, close_popover] = createMutualDebounce(_open_popover, _close_popover, () => triggerDelay);
133
140
 
134
141
  function on_before_toggle(ev: ToggleEvent) {
135
142
  if (!invoker || !popover) return;
143
+ const evWithTrigger: TriggeredToggleEvent = Object.assign(ev, { trigger: invoker });
144
+ onbeforetoggle?.(evWithTrigger);
145
+ }
136
146
 
137
- (ev as TriggeredToggleEvent).trigger = invoker;
138
- _onbeforetoggle?.(ev as TriggeredToggleEvent);
139
-
147
+ $effect(() => {
140
148
  // Floating UI instance when it's closed we need to keep a autoUpdate destroy function
149
+ let autoUpdateDestroy: (() => void) | null = null;
141
150
 
142
- if (ev.newState === "open") {
151
+ if (isOpen && popover && invoker) {
143
152
  autoUpdateDestroy = dom.autoUpdate(referenceElement ?? invoker, popover, updatePopoverPosition);
144
153
  popover.ownerDocument.addEventListener("click", closeOnClickOutside);
145
154
  popover.ownerDocument.addEventListener("keydown", closeOnEscape);
146
- } else {
147
- autoUpdateDestroy();
148
- popover.ownerDocument.removeEventListener("click", closeOnClickOutside);
149
- popover.ownerDocument.removeEventListener("keydown", closeOnEscape);
150
155
  }
151
- }
156
+
157
+ return () => {
158
+ autoUpdateDestroy?.();
159
+ autoUpdateDestroy = null;
160
+ popover?.ownerDocument.removeEventListener("click", closeOnClickOutside);
161
+ popover?.ownerDocument.removeEventListener("keydown", closeOnEscape);
162
+ };
163
+ });
152
164
 
153
165
  function on_toggle(ev: ToggleEvent) {
154
166
  if (!invoker) return;
@@ -156,11 +168,11 @@
156
168
  // Update isOpen value when popover state changes through other means
157
169
  isOpen = ev.newState === "open";
158
170
 
159
- (ev as TriggeredToggleEvent).trigger = invoker;
160
- _ontoggle?.(ev as TriggeredToggleEvent);
171
+ const evWithTrigger: TriggeredToggleEvent = Object.assign(ev, { trigger: invoker });
172
+ ontoggle?.(evWithTrigger);
161
173
 
162
174
  if (ev.newState === "closed") {
163
- _onclose?.(ev as TriggeredToggleEvent);
175
+ onclose?.(evWithTrigger);
164
176
  }
165
177
  }
166
178
 
@@ -182,7 +194,6 @@
182
194
  return;
183
195
  }
184
196
 
185
- if (reference) referenceElement = node.ownerDocument.querySelector<HTMLElement>(reference);
186
197
  invoker = triggerEls[0];
187
198
 
188
199
  triggerEls.forEach((element: HTMLElement) => {
@@ -190,13 +201,11 @@
190
201
  for (const [name, handler, cond] of events) if (cond) element.addEventListener(name, handler);
191
202
  });
192
203
 
193
- $effect(() => {
194
- return () => {
195
- triggerEls.forEach((element: HTMLElement) => {
196
- for (const [name, handler, cond] of events) if (cond) element.removeEventListener(name, handler);
197
- });
198
- };
199
- });
204
+ return () => {
205
+ triggerEls.forEach((element: HTMLElement) => {
206
+ for (const [name, handler, cond] of events) if (cond) element.removeEventListener(name, handler);
207
+ });
208
+ };
200
209
  }
201
210
 
202
211
  function closeOnEscape(event: KeyboardEvent) {
@@ -223,22 +232,22 @@
223
232
  }
224
233
  </script>
225
234
 
226
- <div use:set_triggers hidden></div>
235
+ <div {@attach set_triggers} hidden></div>
227
236
 
228
237
  {#if isOpen}
229
238
  <div
230
239
  popover="manual"
231
- role="tooltip"
240
+ {role}
232
241
  bind:this={popover}
233
242
  class:overflow-visible={true}
234
243
  onfocusout={close_popover}
235
244
  onmouseleave={hoverable ? close_popover : undefined}
236
245
  onmouseenter={hoverable ? open_popover : undefined}
237
- onbeforetoggle={on_before_toggle}
238
- ontoggle={on_toggle}
239
246
  class={clsx(className)}
240
247
  transition:transition={paramsOptions as ParamsType}
241
248
  onintrostart={() => popover?.showPopover()}
249
+ onbeforetoggle={on_before_toggle}
250
+ ontoggle={on_toggle}
242
251
  onoutroend={() => popover?.hidePopover()}
243
252
  {...restProps}
244
253
  >
@@ -253,26 +262,27 @@
253
262
  @component
254
263
  [Go to docs](https://flowbite-svelte.com/)
255
264
  ## Type
256
- [PopperProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2021)
265
+ [PopperProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2051)
257
266
  ## Props
258
267
  @prop triggeredBy
259
- @prop triggerDelay = 200
268
+ @prop triggerDelay = DEFAULT_TRIGGER_DELAY
260
269
  @prop trigger = "click"
261
270
  @prop placement = "top"
262
- @prop offset = 8
271
+ @prop offset = DEFAULT_OFFSET
263
272
  @prop arrow = false
264
273
  @prop yOnly = false
265
274
  @prop strategy = "absolute"
275
+ @prop role = "tooltip"
266
276
  @prop reference
267
277
  @prop middlewares = [dom.flip(), dom.shift()]
268
- @prop onbeforetoggle: _onbeforetoggle
269
- @prop ontoggle: _ontoggle
270
- @prop onclose: _onclose
271
278
  @prop class: className = ""
272
279
  @prop arrowClass = ""
273
280
  @prop isOpen = $bindable(false)
274
281
  @prop transitionParams
275
282
  @prop transition = fade
283
+ @prop onbeforetoggle
284
+ @prop ontoggle
285
+ @prop onclose
276
286
  @prop children
277
287
  @prop ...restProps
278
288
  -->
@@ -2,26 +2,27 @@ import type { PopperProps } from "../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [PopperProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2021)
5
+ * [PopperProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2051)
6
6
  * ## Props
7
7
  * @prop triggeredBy
8
- * @prop triggerDelay = 200
8
+ * @prop triggerDelay = DEFAULT_TRIGGER_DELAY
9
9
  * @prop trigger = "click"
10
10
  * @prop placement = "top"
11
- * @prop offset = 8
11
+ * @prop offset = DEFAULT_OFFSET
12
12
  * @prop arrow = false
13
13
  * @prop yOnly = false
14
14
  * @prop strategy = "absolute"
15
+ * @prop role = "tooltip"
15
16
  * @prop reference
16
17
  * @prop middlewares = [dom.flip(), dom.shift()]
17
- * @prop onbeforetoggle: _onbeforetoggle
18
- * @prop ontoggle: _ontoggle
19
- * @prop onclose: _onclose
20
18
  * @prop class: className = ""
21
19
  * @prop arrowClass = ""
22
20
  * @prop isOpen = $bindable(false)
23
21
  * @prop transitionParams
24
22
  * @prop transition = fade
23
+ * @prop onbeforetoggle
24
+ * @prop ontoggle
25
+ * @prop onclose
25
26
  * @prop children
26
27
  * @prop ...restProps
27
28
  */
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Create a mutual debounce for two opposing actions.
3
+ * Calling one action cancels any pending execution of the other.
4
+ *
5
+ * @param actionA - First action (e.g., openDialog)
6
+ * @param actionB - Second action (e.g., closeDialog)
7
+ * @param delayFunc - Function returning delay in milliseconds (default: 300ms)
8
+ * @returns Object with mutual debounce control methods
9
+ *
10
+ * @example
11
+ * const [openDialogDeb, closeDialogDeb] = createMutualDebounce(openDialog, closeDialog, () => 300);
12
+ * openDialogDeb(); // Schedule open
13
+ * closeDialogDeb(); // Cancel open, schedule close
14
+ */
15
+ type Func = (...args: any[]) => any;
16
+ export declare function createMutualDebounce<A extends Func, B extends Func>(actionA: A, actionB: B, delayFunc: () => number): [(...args: Parameters<A>) => void, (...args: Parameters<B>) => void];
17
+ export {};
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Create a mutual debounce for two opposing actions.
3
+ * Calling one action cancels any pending execution of the other.
4
+ *
5
+ * @param actionA - First action (e.g., openDialog)
6
+ * @param actionB - Second action (e.g., closeDialog)
7
+ * @param delayFunc - Function returning delay in milliseconds (default: 300ms)
8
+ * @returns Object with mutual debounce control methods
9
+ *
10
+ * @example
11
+ * const [openDialogDeb, closeDialogDeb] = createMutualDebounce(openDialog, closeDialog, () => 300);
12
+ * openDialogDeb(); // Schedule open
13
+ * closeDialogDeb(); // Cancel open, schedule close
14
+ */
15
+ export function createMutualDebounce(actionA, actionB, delayFunc) {
16
+ let rafId = null;
17
+ function scheduleExecution(func, args, startTime) {
18
+ rafId = requestAnimationFrame((currentTime) => {
19
+ const elapsed = currentTime - (startTime || 0);
20
+ if (elapsed < delayFunc())
21
+ return scheduleExecution(func, args, startTime);
22
+ rafId = null;
23
+ func(...args);
24
+ });
25
+ }
26
+ function cancel() {
27
+ if (rafId !== null) {
28
+ cancelAnimationFrame(rafId);
29
+ rafId = null;
30
+ }
31
+ }
32
+ const debouncedA = (...args) => {
33
+ cancel();
34
+ scheduleExecution(actionA, args, performance.now());
35
+ };
36
+ const debouncedB = (...args) => {
37
+ cancel();
38
+ scheduleExecution(actionB, args, performance.now());
39
+ };
40
+ return [debouncedA, debouncedB];
41
+ }
@@ -21,7 +21,7 @@
21
21
  @component
22
22
  [Go to docs](https://flowbite-svelte.com/)
23
23
  ## Type
24
- [VideoProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2008)
24
+ [VideoProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2038)
25
25
  ## Props
26
26
  @prop children
27
27
  @prop type = "video/mp4"
@@ -2,7 +2,7 @@ import type { VideoProps } from "../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [VideoProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2008)
5
+ * [VideoProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2038)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop type = "video/mp4"