bits-ui 2.6.2 → 2.8.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 (367) hide show
  1. package/README.md +4 -4
  2. package/dist/bits/accordion/accordion.svelte.d.ts +66 -58
  3. package/dist/bits/accordion/accordion.svelte.js +56 -51
  4. package/dist/bits/accordion/components/accordion-content.svelte +4 -4
  5. package/dist/bits/accordion/components/accordion-header.svelte +2 -2
  6. package/dist/bits/accordion/components/accordion-item.svelte +2 -2
  7. package/dist/bits/accordion/components/accordion-trigger.svelte +2 -2
  8. package/dist/bits/accordion/components/accordion.svelte +2 -2
  9. package/dist/bits/alert-dialog/components/alert-dialog-action.svelte +2 -2
  10. package/dist/bits/alert-dialog/components/alert-dialog-cancel.svelte +2 -2
  11. package/dist/bits/alert-dialog/components/alert-dialog-content.svelte +3 -3
  12. package/dist/bits/alert-dialog/components/alert-dialog.svelte +9 -3
  13. package/dist/bits/aspect-ratio/aspect-ratio.svelte.d.ts +10 -16
  14. package/dist/bits/aspect-ratio/aspect-ratio.svelte.js +4 -11
  15. package/dist/bits/aspect-ratio/components/aspect-ratio.svelte +2 -2
  16. package/dist/bits/avatar/avatar.svelte.d.ts +25 -33
  17. package/dist/bits/avatar/avatar.svelte.js +20 -21
  18. package/dist/bits/avatar/components/avatar-fallback.svelte +2 -2
  19. package/dist/bits/avatar/components/avatar-image.svelte +2 -2
  20. package/dist/bits/avatar/components/avatar.svelte +2 -2
  21. package/dist/bits/calendar/calendar.svelte.d.ts +117 -106
  22. package/dist/bits/calendar/calendar.svelte.js +51 -52
  23. package/dist/bits/calendar/components/calendar-cell.svelte +2 -2
  24. package/dist/bits/calendar/components/calendar-day.svelte +2 -2
  25. package/dist/bits/calendar/components/calendar-grid-body.svelte +2 -2
  26. package/dist/bits/calendar/components/calendar-grid-head.svelte +2 -2
  27. package/dist/bits/calendar/components/calendar-grid-row.svelte +2 -2
  28. package/dist/bits/calendar/components/calendar-grid.svelte +2 -2
  29. package/dist/bits/calendar/components/calendar-head-cell.svelte +2 -2
  30. package/dist/bits/calendar/components/calendar-header.svelte +2 -2
  31. package/dist/bits/calendar/components/calendar-heading.svelte +5 -5
  32. package/dist/bits/calendar/components/calendar-month-select.svelte +2 -2
  33. package/dist/bits/calendar/components/calendar-next-button.svelte +2 -2
  34. package/dist/bits/calendar/components/calendar-prev-button.svelte +2 -2
  35. package/dist/bits/calendar/components/calendar-year-select.svelte +2 -2
  36. package/dist/bits/calendar/components/calendar.svelte +2 -2
  37. package/dist/bits/checkbox/checkbox.svelte.d.ts +37 -34
  38. package/dist/bits/checkbox/checkbox.svelte.js +19 -22
  39. package/dist/bits/checkbox/components/checkbox-group-label.svelte +2 -2
  40. package/dist/bits/checkbox/components/checkbox-group.svelte +2 -2
  41. package/dist/bits/checkbox/components/checkbox-input.svelte +2 -2
  42. package/dist/bits/checkbox/components/checkbox.svelte +2 -2
  43. package/dist/bits/collapsible/collapsible.svelte.d.ts +30 -27
  44. package/dist/bits/collapsible/collapsible.svelte.js +23 -15
  45. package/dist/bits/collapsible/components/collapsible-content.svelte +5 -5
  46. package/dist/bits/collapsible/components/collapsible-content.svelte.d.ts +1 -4
  47. package/dist/bits/collapsible/components/collapsible-trigger.svelte +2 -2
  48. package/dist/bits/collapsible/components/collapsible.svelte +4 -2
  49. package/dist/bits/collapsible/types.d.ts +4 -0
  50. package/dist/bits/combobox/components/combobox-input.svelte +2 -2
  51. package/dist/bits/combobox/components/combobox-trigger.svelte +2 -2
  52. package/dist/bits/combobox/components/combobox.svelte +4 -2
  53. package/dist/bits/command/command.svelte.d.ts +103 -92
  54. package/dist/bits/command/command.svelte.js +55 -57
  55. package/dist/bits/command/components/_command-label.svelte +2 -2
  56. package/dist/bits/command/components/command-empty.svelte +2 -2
  57. package/dist/bits/command/components/command-group-heading.svelte +2 -2
  58. package/dist/bits/command/components/command-group-items.svelte +2 -2
  59. package/dist/bits/command/components/command-group.svelte +2 -2
  60. package/dist/bits/command/components/command-input.svelte +2 -2
  61. package/dist/bits/command/components/command-item.svelte +2 -2
  62. package/dist/bits/command/components/command-link-item.svelte +2 -2
  63. package/dist/bits/command/components/command-list.svelte +2 -2
  64. package/dist/bits/command/components/command-loading.svelte +2 -2
  65. package/dist/bits/command/components/command-separator.svelte +2 -2
  66. package/dist/bits/command/components/command-viewport.svelte +2 -2
  67. package/dist/bits/command/components/command.svelte +2 -2
  68. package/dist/bits/context-menu/components/context-menu-content-static.svelte +3 -3
  69. package/dist/bits/context-menu/components/context-menu-content.svelte +3 -3
  70. package/dist/bits/context-menu/components/context-menu-trigger.svelte +2 -2
  71. package/dist/bits/context-menu/components/context-menu.svelte +16 -11
  72. package/dist/bits/date-field/components/date-field-hidden-input.svelte +2 -2
  73. package/dist/bits/date-field/components/date-field-input.svelte +2 -2
  74. package/dist/bits/date-field/components/date-field-label.svelte +2 -2
  75. package/dist/bits/date-field/components/date-field-segment.svelte +2 -2
  76. package/dist/bits/date-field/components/date-field.svelte +2 -2
  77. package/dist/bits/date-field/date-field.svelte.d.ts +85 -74
  78. package/dist/bits/date-field/date-field.svelte.js +55 -53
  79. package/dist/bits/date-picker/components/date-picker-calendar.svelte +2 -2
  80. package/dist/bits/date-picker/components/date-picker.svelte +8 -6
  81. package/dist/bits/date-picker/date-picker.svelte.d.ts +10 -10
  82. package/dist/bits/date-picker/date-picker.svelte.js +6 -5
  83. package/dist/bits/date-picker/types.d.ts +4 -0
  84. package/dist/bits/date-range-field/components/date-range-field-input.svelte +2 -2
  85. package/dist/bits/date-range-field/components/date-range-field-label.svelte +2 -2
  86. package/dist/bits/date-range-field/components/date-range-field.svelte +2 -2
  87. package/dist/bits/date-range-field/date-range-field.svelte.d.ts +32 -29
  88. package/dist/bits/date-range-field/date-range-field.svelte.js +33 -32
  89. package/dist/bits/date-range-picker/components/date-range-picker-calendar.svelte +2 -2
  90. package/dist/bits/date-range-picker/components/date-range-picker.svelte +8 -6
  91. package/dist/bits/date-range-picker/date-range-picker.svelte.d.ts +10 -10
  92. package/dist/bits/date-range-picker/date-range-picker.svelte.js +6 -5
  93. package/dist/bits/date-range-picker/types.d.ts +4 -0
  94. package/dist/bits/dialog/components/dialog-close.svelte +2 -2
  95. package/dist/bits/dialog/components/dialog-content.svelte +3 -3
  96. package/dist/bits/dialog/components/dialog-description.svelte +2 -2
  97. package/dist/bits/dialog/components/dialog-overlay.svelte +3 -6
  98. package/dist/bits/dialog/components/dialog-title.svelte +2 -2
  99. package/dist/bits/dialog/components/dialog-trigger.svelte +2 -2
  100. package/dist/bits/dialog/components/dialog.svelte +9 -3
  101. package/dist/bits/dialog/dialog.svelte.d.ts +75 -65
  102. package/dist/bits/dialog/dialog.svelte.js +47 -38
  103. package/dist/bits/dialog/types.d.ts +4 -0
  104. package/dist/bits/dropdown-menu/components/dropdown-menu-content-static.svelte +3 -3
  105. package/dist/bits/dropdown-menu/components/dropdown-menu-content.svelte +3 -3
  106. package/dist/bits/label/components/label.svelte +2 -2
  107. package/dist/bits/label/label.svelte.d.ts +8 -7
  108. package/dist/bits/label/label.svelte.js +4 -4
  109. package/dist/bits/link-preview/components/link-preview-content-static.svelte +3 -3
  110. package/dist/bits/link-preview/components/link-preview-content.svelte +3 -3
  111. package/dist/bits/link-preview/components/link-preview-trigger.svelte +2 -2
  112. package/dist/bits/link-preview/components/link-preview.svelte +4 -2
  113. package/dist/bits/link-preview/link-preview.svelte.d.ts +28 -25
  114. package/dist/bits/link-preview/link-preview.svelte.js +24 -16
  115. package/dist/bits/link-preview/types.d.ts +4 -0
  116. package/dist/bits/menu/components/menu-arrow.svelte +2 -2
  117. package/dist/bits/menu/components/menu-checkbox-group.svelte +2 -2
  118. package/dist/bits/menu/components/menu-checkbox-item.svelte +2 -2
  119. package/dist/bits/menu/components/menu-content-static.svelte +3 -3
  120. package/dist/bits/menu/components/menu-content.svelte +3 -3
  121. package/dist/bits/menu/components/menu-group-heading.svelte +2 -2
  122. package/dist/bits/menu/components/menu-group.svelte +2 -2
  123. package/dist/bits/menu/components/menu-item.svelte +2 -2
  124. package/dist/bits/menu/components/menu-radio-group.svelte +2 -2
  125. package/dist/bits/menu/components/menu-radio-item.svelte +2 -2
  126. package/dist/bits/menu/components/menu-separator.svelte +2 -2
  127. package/dist/bits/menu/components/menu-sub-content-static.svelte +3 -3
  128. package/dist/bits/menu/components/menu-sub-content.svelte +3 -3
  129. package/dist/bits/menu/components/menu-sub-trigger.svelte +2 -2
  130. package/dist/bits/menu/components/menu-sub.svelte +9 -3
  131. package/dist/bits/menu/components/menu-trigger.svelte +2 -2
  132. package/dist/bits/menu/components/menu.svelte +16 -11
  133. package/dist/bits/menu/menu.svelte.d.ts +136 -119
  134. package/dist/bits/menu/menu.svelte.js +106 -96
  135. package/dist/bits/menu/types.d.ts +8 -0
  136. package/dist/bits/menubar/components/menubar-content-static.svelte +2 -2
  137. package/dist/bits/menubar/components/menubar-content.svelte +2 -2
  138. package/dist/bits/menubar/components/menubar-menu.svelte +2 -2
  139. package/dist/bits/menubar/components/menubar-trigger.svelte +4 -4
  140. package/dist/bits/menubar/components/menubar.svelte +2 -2
  141. package/dist/bits/menubar/menubar.svelte.d.ts +37 -34
  142. package/dist/bits/menubar/menubar.svelte.js +21 -21
  143. package/dist/bits/meter/components/meter.svelte +2 -2
  144. package/dist/bits/meter/meter.svelte.d.ts +10 -9
  145. package/dist/bits/meter/meter.svelte.js +4 -4
  146. package/dist/bits/navigation-menu/components/navigation-menu-content-impl.svelte +2 -2
  147. package/dist/bits/navigation-menu/components/navigation-menu-content.svelte +3 -3
  148. package/dist/bits/navigation-menu/components/navigation-menu-indicator-impl.svelte +2 -2
  149. package/dist/bits/navigation-menu/components/navigation-menu-indicator.svelte +3 -3
  150. package/dist/bits/navigation-menu/components/navigation-menu-item.svelte +2 -2
  151. package/dist/bits/navigation-menu/components/navigation-menu-link.svelte +2 -2
  152. package/dist/bits/navigation-menu/components/navigation-menu-list.svelte +2 -2
  153. package/dist/bits/navigation-menu/components/navigation-menu-sub.svelte +2 -2
  154. package/dist/bits/navigation-menu/components/navigation-menu-trigger.svelte +2 -2
  155. package/dist/bits/navigation-menu/components/navigation-menu-viewport.svelte +3 -3
  156. package/dist/bits/navigation-menu/components/navigation-menu.svelte +2 -2
  157. package/dist/bits/navigation-menu/navigation-menu.svelte.d.ts +116 -109
  158. package/dist/bits/navigation-menu/navigation-menu.svelte.js +78 -81
  159. package/dist/bits/pagination/components/pagination-next-button.svelte +2 -2
  160. package/dist/bits/pagination/components/pagination-page.svelte +2 -2
  161. package/dist/bits/pagination/components/pagination-prev-button.svelte +2 -2
  162. package/dist/bits/pagination/components/pagination.svelte +2 -2
  163. package/dist/bits/pagination/pagination.svelte.d.ts +34 -32
  164. package/dist/bits/pagination/pagination.svelte.js +15 -15
  165. package/dist/bits/pin-input/components/pin-input-cell.svelte +2 -2
  166. package/dist/bits/pin-input/components/pin-input.svelte +2 -2
  167. package/dist/bits/pin-input/pin-input.svelte.d.ts +22 -21
  168. package/dist/bits/pin-input/pin-input.svelte.js +9 -9
  169. package/dist/bits/popover/components/popover-close.svelte +2 -2
  170. package/dist/bits/popover/components/popover-content-static.svelte +3 -3
  171. package/dist/bits/popover/components/popover-content.svelte +3 -3
  172. package/dist/bits/popover/components/popover-trigger.svelte +2 -2
  173. package/dist/bits/popover/components/popover.svelte +9 -3
  174. package/dist/bits/popover/popover.svelte.d.ts +36 -31
  175. package/dist/bits/popover/popover.svelte.js +26 -21
  176. package/dist/bits/popover/types.d.ts +4 -0
  177. package/dist/bits/progress/components/progress.svelte +2 -2
  178. package/dist/bits/progress/progress.svelte.d.ts +10 -9
  179. package/dist/bits/progress/progress.svelte.js +4 -4
  180. package/dist/bits/radio-group/components/radio-group-input.svelte +2 -2
  181. package/dist/bits/radio-group/components/radio-group-item.svelte +2 -2
  182. package/dist/bits/radio-group/components/radio-group.svelte +4 -2
  183. package/dist/bits/radio-group/radio-group.svelte.d.ts +26 -19
  184. package/dist/bits/radio-group/radio-group.svelte.js +26 -19
  185. package/dist/bits/radio-group/types.d.ts +13 -6
  186. package/dist/bits/range-calendar/components/range-calendar-cell.svelte +2 -2
  187. package/dist/bits/range-calendar/components/range-calendar-day.svelte +2 -2
  188. package/dist/bits/range-calendar/components/range-calendar.svelte +2 -2
  189. package/dist/bits/range-calendar/range-calendar.svelte.d.ts +21 -20
  190. package/dist/bits/range-calendar/range-calendar.svelte.js +12 -12
  191. package/dist/bits/rating-group/components/rating-group-input.svelte +2 -2
  192. package/dist/bits/rating-group/components/rating-group-item.svelte +2 -2
  193. package/dist/bits/rating-group/components/rating-group.svelte +2 -2
  194. package/dist/bits/rating-group/rating-group.svelte.d.ts +19 -18
  195. package/dist/bits/rating-group/rating-group.svelte.js +16 -17
  196. package/dist/bits/scroll-area/components/scroll-area-corner-impl.svelte +2 -2
  197. package/dist/bits/scroll-area/components/scroll-area-scrollbar-auto.svelte +3 -3
  198. package/dist/bits/scroll-area/components/scroll-area-scrollbar-hover.svelte +6 -6
  199. package/dist/bits/scroll-area/components/scroll-area-scrollbar-scroll.svelte +3 -3
  200. package/dist/bits/scroll-area/components/scroll-area-scrollbar-shared.svelte +2 -2
  201. package/dist/bits/scroll-area/components/scroll-area-scrollbar-visible.svelte +2 -2
  202. package/dist/bits/scroll-area/components/scroll-area-scrollbar-x.svelte +2 -2
  203. package/dist/bits/scroll-area/components/scroll-area-scrollbar-y.svelte +2 -2
  204. package/dist/bits/scroll-area/components/scroll-area-scrollbar.svelte +2 -2
  205. package/dist/bits/scroll-area/components/scroll-area-thumb-impl.svelte +2 -2
  206. package/dist/bits/scroll-area/components/scroll-area-thumb.svelte +2 -5
  207. package/dist/bits/scroll-area/components/scroll-area-viewport.svelte +2 -2
  208. package/dist/bits/scroll-area/components/scroll-area.svelte +2 -2
  209. package/dist/bits/scroll-area/scroll-area.svelte.d.ts +98 -78
  210. package/dist/bits/scroll-area/scroll-area.svelte.js +78 -74
  211. package/dist/bits/select/components/select-content-static.svelte +3 -3
  212. package/dist/bits/select/components/select-content.svelte +3 -3
  213. package/dist/bits/select/components/select-group-heading.svelte +2 -2
  214. package/dist/bits/select/components/select-group.svelte +2 -2
  215. package/dist/bits/select/components/select-hidden-input.svelte +2 -2
  216. package/dist/bits/select/components/select-item.svelte +2 -2
  217. package/dist/bits/select/components/select-scroll-down-button.svelte +2 -2
  218. package/dist/bits/select/components/select-scroll-up-button.svelte +2 -2
  219. package/dist/bits/select/components/select-trigger.svelte +2 -2
  220. package/dist/bits/select/components/select-viewport.svelte +2 -2
  221. package/dist/bits/select/components/select.svelte +4 -2
  222. package/dist/bits/select/select.svelte.d.ts +127 -113
  223. package/dist/bits/select/select.svelte.js +74 -62
  224. package/dist/bits/select/types.d.ts +4 -0
  225. package/dist/bits/separator/components/separator.svelte +2 -2
  226. package/dist/bits/separator/separator.svelte.d.ts +9 -8
  227. package/dist/bits/separator/separator.svelte.js +4 -4
  228. package/dist/bits/slider/components/slider-range.svelte +2 -2
  229. package/dist/bits/slider/components/slider-thumb-label.svelte +2 -2
  230. package/dist/bits/slider/components/slider-thumb.svelte +2 -2
  231. package/dist/bits/slider/components/slider-tick-label.svelte +2 -2
  232. package/dist/bits/slider/components/slider-tick.svelte +2 -2
  233. package/dist/bits/slider/components/slider.svelte +2 -2
  234. package/dist/bits/slider/slider.svelte.d.ts +82 -73
  235. package/dist/bits/slider/slider.svelte.js +30 -28
  236. package/dist/bits/switch/components/switch-input.svelte +2 -2
  237. package/dist/bits/switch/components/switch-thumb.svelte +2 -2
  238. package/dist/bits/switch/components/switch.svelte +2 -2
  239. package/dist/bits/switch/switch.svelte.d.ts +19 -17
  240. package/dist/bits/switch/switch.svelte.js +13 -13
  241. package/dist/bits/tabs/components/tabs-content.svelte +2 -2
  242. package/dist/bits/tabs/components/tabs-list.svelte +2 -2
  243. package/dist/bits/tabs/components/tabs-trigger.svelte +2 -2
  244. package/dist/bits/tabs/components/tabs.svelte +2 -2
  245. package/dist/bits/tabs/tabs.svelte.d.ts +33 -29
  246. package/dist/bits/tabs/tabs.svelte.js +19 -19
  247. package/dist/bits/time-field/components/time-field-hidden-input.svelte +2 -2
  248. package/dist/bits/time-field/components/time-field-input.svelte +2 -2
  249. package/dist/bits/time-field/components/time-field-label.svelte +2 -2
  250. package/dist/bits/time-field/components/time-field-segment.svelte +2 -2
  251. package/dist/bits/time-field/components/time-field.svelte +2 -2
  252. package/dist/bits/time-field/time-field.svelte.d.ts +72 -66
  253. package/dist/bits/time-field/time-field.svelte.js +37 -42
  254. package/dist/bits/time-range-field/components/time-range-field-input.svelte +2 -2
  255. package/dist/bits/time-range-field/components/time-range-field-label.svelte +2 -2
  256. package/dist/bits/time-range-field/components/time-range-field.svelte +2 -2
  257. package/dist/bits/time-range-field/time-range-field.svelte.d.ts +35 -31
  258. package/dist/bits/time-range-field/time-range-field.svelte.js +34 -32
  259. package/dist/bits/toggle/components/toggle.svelte +2 -2
  260. package/dist/bits/toggle/toggle.svelte.d.ts +11 -10
  261. package/dist/bits/toggle/toggle.svelte.js +4 -4
  262. package/dist/bits/toggle-group/components/toggle-group-item.svelte +2 -2
  263. package/dist/bits/toggle-group/components/toggle-group.svelte +2 -2
  264. package/dist/bits/toggle-group/toggle-group.svelte.d.ts +48 -43
  265. package/dist/bits/toggle-group/toggle-group.svelte.js +24 -25
  266. package/dist/bits/toolbar/components/toolbar-button.svelte +2 -2
  267. package/dist/bits/toolbar/components/toolbar-group-item.svelte +2 -2
  268. package/dist/bits/toolbar/components/toolbar-group.svelte +2 -2
  269. package/dist/bits/toolbar/components/toolbar-link.svelte +2 -2
  270. package/dist/bits/toolbar/components/toolbar.svelte +2 -2
  271. package/dist/bits/toolbar/toolbar.svelte.d.ts +59 -51
  272. package/dist/bits/toolbar/toolbar.svelte.js +32 -30
  273. package/dist/bits/tooltip/components/tooltip-content-static.svelte +3 -3
  274. package/dist/bits/tooltip/components/tooltip-content.svelte +3 -3
  275. package/dist/bits/tooltip/components/tooltip-provider.svelte +2 -2
  276. package/dist/bits/tooltip/components/tooltip-trigger.svelte +2 -2
  277. package/dist/bits/tooltip/components/tooltip.svelte +4 -2
  278. package/dist/bits/tooltip/tooltip.svelte.d.ts +33 -29
  279. package/dist/bits/tooltip/tooltip.svelte.js +33 -28
  280. package/dist/bits/tooltip/types.d.ts +4 -0
  281. package/dist/bits/utilities/config/bits-config.d.ts +1 -1
  282. package/dist/bits/utilities/dismissible-layer/dismissible-layer.svelte +2 -2
  283. package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.d.ts +6 -7
  284. package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.js +3 -3
  285. package/dist/bits/utilities/escape-layer/escape-layer.svelte +2 -2
  286. package/dist/bits/utilities/escape-layer/use-escape-layer.svelte.d.ts +6 -7
  287. package/dist/bits/utilities/escape-layer/use-escape-layer.svelte.js +3 -3
  288. package/dist/bits/utilities/floating-layer/components/floating-layer-anchor.svelte +2 -2
  289. package/dist/bits/utilities/floating-layer/components/floating-layer-arrow.svelte +2 -2
  290. package/dist/bits/utilities/floating-layer/components/floating-layer-content.svelte +2 -2
  291. package/dist/bits/utilities/floating-layer/components/floating-layer.svelte +2 -2
  292. package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.d.ts +25 -23
  293. package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.js +25 -25
  294. package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.d.ts +1 -1
  295. package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.js +1 -1
  296. package/dist/bits/utilities/popper-layer/popper-layer-force-mount.svelte +1 -1
  297. package/dist/bits/utilities/popper-layer/popper-layer-force-mount.svelte.d.ts +1 -1
  298. package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte +1 -1
  299. package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte.d.ts +1 -1
  300. package/dist/bits/utilities/popper-layer/popper-layer.svelte +3 -3
  301. package/dist/bits/utilities/presence-layer/presence-layer.svelte +8 -8
  302. package/dist/bits/utilities/presence-layer/presence.svelte.d.ts +42 -0
  303. package/dist/bits/utilities/presence-layer/presence.svelte.js +116 -0
  304. package/dist/bits/utilities/presence-layer/types.d.ts +3 -5
  305. package/dist/bits/utilities/scroll-lock/scroll-lock.svelte +2 -2
  306. package/dist/bits/utilities/text-selection-layer/text-selection-layer.svelte +2 -2
  307. package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.d.ts +7 -7
  308. package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.js +3 -3
  309. package/dist/internal/animations-complete.d.ts +12 -0
  310. package/dist/internal/animations-complete.js +55 -0
  311. package/dist/internal/arrays.js +20 -36
  312. package/dist/internal/attrs.d.ts +9 -2
  313. package/dist/internal/attrs.js +21 -11
  314. package/dist/internal/body-scroll-lock.svelte.d.ts +10 -0
  315. package/dist/internal/body-scroll-lock.svelte.js +106 -0
  316. package/dist/internal/data-typeahead.svelte.d.ts +15 -0
  317. package/dist/internal/data-typeahead.svelte.js +33 -0
  318. package/dist/internal/date-time/calendar-helpers.svelte.d.ts +1 -1
  319. package/dist/internal/dom-typeahead.svelte.d.ts +14 -0
  320. package/dist/internal/dom-typeahead.svelte.js +44 -0
  321. package/dist/internal/dom.d.ts +0 -2
  322. package/dist/internal/dom.js +0 -15
  323. package/dist/internal/{use-grace-area.svelte.d.ts → grace-area.svelte.d.ts} +5 -4
  324. package/dist/internal/{use-grace-area.svelte.js → grace-area.svelte.js} +60 -56
  325. package/dist/internal/open-change-complete.d.ts +13 -0
  326. package/dist/internal/open-change-complete.js +24 -0
  327. package/dist/internal/{use-roving-focus.svelte.d.ts → roving-focus-group.d.ts} +9 -8
  328. package/dist/internal/{use-roving-focus.svelte.js → roving-focus-group.js} +30 -34
  329. package/dist/internal/shared-state.svelte.d.ts +6 -0
  330. package/dist/internal/shared-state.svelte.js +31 -0
  331. package/dist/internal/should-trap-focus.js +1 -2
  332. package/dist/internal/state-machine.d.ts +16 -0
  333. package/dist/internal/state-machine.js +18 -0
  334. package/dist/internal/svelte-resize-observer.svelte.d.ts +6 -0
  335. package/dist/internal/svelte-resize-observer.svelte.js +25 -0
  336. package/dist/internal/tabbable.d.ts +0 -1
  337. package/dist/internal/tabbable.js +0 -11
  338. package/dist/internal/timeout-fn.d.ts +16 -0
  339. package/dist/internal/timeout-fn.js +38 -0
  340. package/dist/internal/types.d.ts +2 -2
  341. package/package.json +1 -1
  342. package/dist/bits/utilities/presence-layer/use-presence.svelte.d.ts +0 -4
  343. package/dist/bits/utilities/presence-layer/use-presence.svelte.js +0 -97
  344. package/dist/internal/box.svelte.d.ts +0 -21
  345. package/dist/internal/box.svelte.js +0 -26
  346. package/dist/internal/create-event-hook.svelte.d.ts +0 -18
  347. package/dist/internal/create-event-hook.svelte.js +0 -29
  348. package/dist/internal/create-shared-hook.svelte.d.ts +0 -2
  349. package/dist/internal/create-shared-hook.svelte.js +0 -27
  350. package/dist/internal/sleep.d.ts +0 -1
  351. package/dist/internal/sleep.js +0 -3
  352. package/dist/internal/use-after-animations.svelte.d.ts +0 -5
  353. package/dist/internal/use-after-animations.svelte.js +0 -27
  354. package/dist/internal/use-body-scroll-lock.svelte.d.ts +0 -6
  355. package/dist/internal/use-body-scroll-lock.svelte.js +0 -106
  356. package/dist/internal/use-data-typeahead.svelte.d.ts +0 -15
  357. package/dist/internal/use-data-typeahead.svelte.js +0 -34
  358. package/dist/internal/use-dom-typeahead.svelte.d.ts +0 -13
  359. package/dist/internal/use-dom-typeahead.svelte.js +0 -32
  360. package/dist/internal/use-form-control.svelte.d.ts +0 -4
  361. package/dist/internal/use-form-control.svelte.js +0 -16
  362. package/dist/internal/use-resize-observer.svelte.d.ts +0 -2
  363. package/dist/internal/use-resize-observer.svelte.js +0 -17
  364. package/dist/internal/use-state-machine.svelte.d.ts +0 -24
  365. package/dist/internal/use-state-machine.svelte.js +0 -28
  366. package/dist/internal/use-timeout-fn.svelte.d.ts +0 -25
  367. package/dist/internal/use-timeout-fn.svelte.js +0 -39
@@ -2,7 +2,7 @@
2
2
  import { type WritableBox, box } from "svelte-toolbelt";
3
3
  import { mergeProps } from "svelte-toolbelt";
4
4
  import type { ToolbarGroupProps } from "../types.js";
5
- import { useToolbarGroup } from "../toolbar.svelte.js";
5
+ import { ToolbarGroupState } from "../toolbar.svelte.js";
6
6
  import { createId } from "../../../internal/create-id.js";
7
7
  import { noop } from "../../../internal/noop.js";
8
8
  import { watch } from "runed";
@@ -36,7 +36,7 @@
36
36
  }
37
37
  );
38
38
 
39
- const groupState = useToolbarGroup({
39
+ const groupState = ToolbarGroupState.create({
40
40
  id: box.with(() => id),
41
41
  disabled: box.with(() => disabled),
42
42
  type,
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
- import { useToolbarLink } from "../toolbar.svelte.js";
3
+ import { ToolbarLinkState } from "../toolbar.svelte.js";
4
4
  import type { ToolbarLinkProps } from "../types.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
@@ -15,7 +15,7 @@
15
15
  ...restProps
16
16
  }: ToolbarLinkProps = $props();
17
17
 
18
- const linkState = useToolbarLink({
18
+ const linkState = ToolbarLinkState.create({
19
19
  id: box.with(() => id),
20
20
  ref: box.with(
21
21
  () => ref,
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { ToolbarRootProps } from "../types.js";
4
- import { useToolbarRoot } from "../toolbar.svelte.js";
4
+ import { ToolbarRootState } from "../toolbar.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
7
7
  const uid = $props.id();
@@ -16,7 +16,7 @@
16
16
  ...restProps
17
17
  }: ToolbarRootProps = $props();
18
18
 
19
- const rootState = useToolbarRoot({
19
+ const rootState = ToolbarRootState.create({
20
20
  id: box.with(() => id),
21
21
  orientation: box.with(() => orientation),
22
22
  loop: box.with(() => loop),
@@ -1,30 +1,32 @@
1
- import { type WritableBox } from "svelte-toolbelt";
2
- import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
3
- import { type UseRovingFocusReturn } from "../../internal/use-roving-focus.svelte.js";
1
+ import { type WritableBox, type WritableBoxedValues, type ReadableBoxedValues } from "svelte-toolbelt";
4
2
  import type { Orientation } from "../../shared/index.js";
5
- import type { BitsKeyboardEvent, BitsMouseEvent, WithRefProps } from "../../internal/types.js";
6
- export declare const toolbarAttrs: import("../../internal/attrs.js").BitsAttrs<readonly ["root", "item", "group", "group-item", "link", "button"]>;
7
- type ToolbarRootStateProps = WithRefProps<ReadableBoxedValues<{
3
+ import type { BitsKeyboardEvent, BitsMouseEvent, WithRefOpts } from "../../internal/types.js";
4
+ import { RovingFocusGroup } from "../../internal/roving-focus-group.js";
5
+ export declare const toolbarAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["root", "item", "group", "group-item", "link", "button"]>;
6
+ interface ToolbarRootStateOpts extends WithRefOpts, ReadableBoxedValues<{
8
7
  orientation: Orientation;
9
8
  loop: boolean;
10
- }>>;
11
- declare class ToolbarRootState {
12
- readonly opts: ToolbarRootStateProps;
13
- rovingFocusGroup: UseRovingFocusReturn;
14
- constructor(opts: ToolbarRootStateProps);
9
+ }> {
10
+ }
11
+ export declare class ToolbarRootState {
12
+ static create(opts: ToolbarRootStateOpts): ToolbarRootState;
13
+ readonly opts: ToolbarRootStateOpts;
14
+ readonly rovingFocusGroup: RovingFocusGroup;
15
+ constructor(opts: ToolbarRootStateOpts);
15
16
  readonly props: {
16
17
  readonly id: string;
17
18
  readonly role: "toolbar";
18
19
  readonly "data-orientation": Orientation;
19
20
  };
20
21
  }
21
- type ToolbarGroupBaseStateProps = WithRefProps<ReadableBoxedValues<{
22
+ interface ToolbarGroupBaseStateOpts extends WithRefOpts, ReadableBoxedValues<{
22
23
  disabled: boolean;
23
- }>>;
24
- declare class ToolbarGroupBaseState {
25
- readonly opts: ToolbarGroupBaseStateProps;
24
+ }> {
25
+ }
26
+ declare abstract class ToolbarGroupBaseState {
27
+ readonly opts: ToolbarGroupBaseStateOpts;
26
28
  readonly root: ToolbarRootState;
27
- constructor(opts: ToolbarGroupBaseStateProps, root: ToolbarRootState);
29
+ constructor(opts: ToolbarGroupBaseStateOpts, root: ToolbarRootState);
28
30
  readonly props: {
29
31
  readonly id: string;
30
32
  readonly role: "group";
@@ -32,41 +34,54 @@ declare class ToolbarGroupBaseState {
32
34
  readonly "data-disabled": "" | undefined;
33
35
  };
34
36
  }
35
- type ToolbarGroupSingleStateProps = ToolbarGroupBaseStateProps & WritableBoxedValues<{
37
+ interface ToolbarGroupSingleStateOpts extends ToolbarGroupBaseStateOpts, WritableBoxedValues<{
36
38
  value: string;
37
- }>;
39
+ }> {
40
+ }
38
41
  declare class ToolbarGroupSingleState extends ToolbarGroupBaseState {
39
- readonly opts: ToolbarGroupSingleStateProps;
42
+ readonly opts: ToolbarGroupSingleStateOpts;
40
43
  readonly root: ToolbarRootState;
41
44
  readonly isMulti: false;
42
45
  readonly anyPressed: boolean;
43
- constructor(opts: ToolbarGroupSingleStateProps, root: ToolbarRootState);
46
+ constructor(opts: ToolbarGroupSingleStateOpts, root: ToolbarRootState);
44
47
  includesItem(item: string): boolean;
45
48
  toggleItem(item: string): void;
46
49
  }
47
- type ToolbarGroupMultipleStateProps = ToolbarGroupBaseStateProps & WritableBoxedValues<{
50
+ interface ToolbarGroupMultipleStateOpts extends ToolbarGroupBaseStateOpts, WritableBoxedValues<{
48
51
  value: string[];
49
- }>;
52
+ }> {
53
+ }
50
54
  declare class ToolbarGroupMultipleState extends ToolbarGroupBaseState {
51
- readonly opts: ToolbarGroupMultipleStateProps;
55
+ readonly opts: ToolbarGroupMultipleStateOpts;
52
56
  readonly root: ToolbarRootState;
53
57
  readonly isMulti: true;
54
58
  readonly anyPressed: boolean;
55
- constructor(opts: ToolbarGroupMultipleStateProps, root: ToolbarRootState);
59
+ constructor(opts: ToolbarGroupMultipleStateOpts, root: ToolbarRootState);
56
60
  includesItem(item: string): boolean;
57
61
  toggleItem(item: string): void;
58
62
  }
59
- type ToolbarGroupState = ToolbarGroupSingleState | ToolbarGroupMultipleState;
60
- type ToolbarGroupItemStateProps = WithRefProps<ReadableBoxedValues<{
63
+ type ToolbarGroup = ToolbarGroupSingleState | ToolbarGroupMultipleState;
64
+ interface ToolbarGroupRootOpts extends WithRefOpts, ReadableBoxedValues<{
65
+ disabled: boolean;
66
+ }> {
67
+ type: "single" | "multiple";
68
+ value: WritableBox<string> | WritableBox<string[]>;
69
+ }
70
+ export declare class ToolbarGroupState {
71
+ static create(opts: ToolbarGroupRootOpts): ToolbarGroup;
72
+ }
73
+ interface ToolbarGroupItemStateOpts extends WithRefOpts, ReadableBoxedValues<{
61
74
  value: string;
62
75
  disabled: boolean;
63
- }>>;
64
- declare class ToolbarGroupItemState {
76
+ }> {
77
+ }
78
+ export declare class ToolbarGroupItemState {
65
79
  #private;
66
- readonly opts: ToolbarGroupItemStateProps;
67
- readonly group: ToolbarGroupState;
80
+ static create(opts: ToolbarGroupItemStateOpts): ToolbarGroupItemState;
81
+ readonly opts: ToolbarGroupItemStateOpts;
82
+ readonly group: ToolbarGroup;
68
83
  readonly root: ToolbarRootState;
69
- constructor(opts: ToolbarGroupItemStateProps, group: ToolbarGroupState, root: ToolbarRootState);
84
+ constructor(opts: ToolbarGroupItemStateOpts, group: ToolbarGroup, root: ToolbarRootState);
70
85
  onclick(_: BitsMouseEvent): void;
71
86
  onkeydown(e: BitsKeyboardEvent): void;
72
87
  readonly isPressed: boolean;
@@ -85,12 +100,14 @@ declare class ToolbarGroupItemState {
85
100
  readonly onkeydown: (e: BitsKeyboardEvent) => void;
86
101
  };
87
102
  }
88
- type ToolbarLinkStateProps = WithRefProps;
89
- declare class ToolbarLinkState {
103
+ interface ToolbarLinkStateOpts extends WithRefOpts {
104
+ }
105
+ export declare class ToolbarLinkState {
90
106
  #private;
91
- readonly opts: ToolbarLinkStateProps;
107
+ static create(opts: ToolbarLinkStateOpts): ToolbarLinkState;
108
+ readonly opts: ToolbarLinkStateOpts;
92
109
  readonly root: ToolbarRootState;
93
- constructor(opts: ToolbarLinkStateProps, root: ToolbarRootState);
110
+ constructor(opts: ToolbarLinkStateOpts, root: ToolbarRootState);
94
111
  onkeydown(e: BitsKeyboardEvent): void;
95
112
  readonly props: {
96
113
  readonly id: string;
@@ -100,14 +117,16 @@ declare class ToolbarLinkState {
100
117
  readonly onkeydown: (e: BitsKeyboardEvent) => void;
101
118
  };
102
119
  }
103
- type ToolbarButtonStateProps = WithRefProps<ReadableBoxedValues<{
120
+ interface ToolbarButtonStateOpts extends WithRefOpts, ReadableBoxedValues<{
104
121
  disabled: boolean;
105
- }>>;
106
- declare class ToolbarButtonState {
122
+ }> {
123
+ }
124
+ export declare class ToolbarButtonState {
107
125
  #private;
108
- readonly opts: ToolbarButtonStateProps;
126
+ static create(opts: ToolbarButtonStateOpts): ToolbarButtonState;
127
+ readonly opts: ToolbarButtonStateOpts;
109
128
  readonly root: ToolbarRootState;
110
- constructor(opts: ToolbarButtonStateProps, root: ToolbarRootState);
129
+ constructor(opts: ToolbarButtonStateOpts, root: ToolbarRootState);
111
130
  onkeydown(e: BitsKeyboardEvent): void;
112
131
  readonly props: {
113
132
  readonly id: string;
@@ -119,15 +138,4 @@ declare class ToolbarButtonState {
119
138
  readonly onkeydown: (e: BitsKeyboardEvent) => void;
120
139
  };
121
140
  }
122
- export declare function useToolbarRoot(props: ToolbarRootStateProps): ToolbarRootState;
123
- type InitToolbarGroupProps = WithRefProps<{
124
- type: "single" | "multiple";
125
- value: WritableBox<string> | WritableBox<string[]>;
126
- } & ReadableBoxedValues<{
127
- disabled: boolean;
128
- }>>;
129
- export declare function useToolbarGroup(props: InitToolbarGroupProps): ToolbarGroupState;
130
- export declare function useToolbarGroupItem(props: ToolbarGroupItemStateProps): ToolbarGroupItemState;
131
- export declare function useToolbarButton(props: ToolbarButtonStateProps): ToolbarButtonState;
132
- export declare function useToolbarLink(props: ToolbarLinkStateProps): ToolbarLinkState;
133
141
  export {};
@@ -1,18 +1,23 @@
1
- import { attachRef } from "svelte-toolbelt";
1
+ import { attachRef, } from "svelte-toolbelt";
2
2
  import { Context } from "runed";
3
3
  import { createBitsAttrs, getAriaChecked, getAriaPressed, getDataDisabled, getDataOrientation, getDisabled, } from "../../internal/attrs.js";
4
4
  import { kbd } from "../../internal/kbd.js";
5
- import { useRovingFocus, } from "../../internal/use-roving-focus.svelte.js";
5
+ import { RovingFocusGroup } from "../../internal/roving-focus-group.js";
6
6
  export const toolbarAttrs = createBitsAttrs({
7
7
  component: "toolbar",
8
8
  parts: ["root", "item", "group", "group-item", "link", "button"],
9
9
  });
10
- class ToolbarRootState {
10
+ const ToolbarRootContext = new Context("Toolbar.Root");
11
+ const ToolbarGroupContext = new Context("Toolbar.Group");
12
+ export class ToolbarRootState {
13
+ static create(opts) {
14
+ return ToolbarRootContext.set(new ToolbarRootState(opts));
15
+ }
11
16
  opts;
12
17
  rovingFocusGroup;
13
18
  constructor(opts) {
14
19
  this.opts = opts;
15
- this.rovingFocusGroup = useRovingFocus({
20
+ this.rovingFocusGroup = new RovingFocusGroup({
16
21
  orientation: this.opts.orientation,
17
22
  loop: this.opts.loop,
18
23
  rootNode: this.opts.ref,
@@ -87,7 +92,21 @@ class ToolbarGroupMultipleState extends ToolbarGroupBaseState {
87
92
  }
88
93
  }
89
94
  }
90
- class ToolbarGroupItemState {
95
+ export class ToolbarGroupState {
96
+ static create(opts) {
97
+ const { type, ...rest } = opts;
98
+ const rootState = ToolbarRootContext.get();
99
+ const groupState = type === "single"
100
+ ? new ToolbarGroupSingleState(rest, rootState)
101
+ : new ToolbarGroupMultipleState(rest, rootState);
102
+ return ToolbarGroupContext.set(groupState);
103
+ }
104
+ }
105
+ export class ToolbarGroupItemState {
106
+ static create(opts) {
107
+ const group = ToolbarGroupContext.get();
108
+ return new ToolbarGroupItemState(opts, group, group.root);
109
+ }
91
110
  opts;
92
111
  group;
93
112
  root;
@@ -149,7 +168,10 @@ class ToolbarGroupItemState {
149
168
  ...attachRef(this.opts.ref),
150
169
  }));
151
170
  }
152
- class ToolbarLinkState {
171
+ export class ToolbarLinkState {
172
+ static create(opts) {
173
+ return new ToolbarLinkState(opts, ToolbarRootContext.get());
174
+ }
153
175
  opts;
154
176
  root;
155
177
  constructor(opts, root) {
@@ -184,7 +206,10 @@ class ToolbarLinkState {
184
206
  ...attachRef(this.opts.ref),
185
207
  }));
186
208
  }
187
- class ToolbarButtonState {
209
+ export class ToolbarButtonState {
210
+ static create(opts) {
211
+ return new ToolbarButtonState(opts, ToolbarRootContext.get());
212
+ }
188
213
  opts;
189
214
  root;
190
215
  constructor(opts, root) {
@@ -227,26 +252,3 @@ class ToolbarButtonState {
227
252
  function getToggleItemDataState(condition) {
228
253
  return condition ? "on" : "off";
229
254
  }
230
- const ToolbarRootContext = new Context("Toolbar.Root");
231
- const ToolbarGroupContext = new Context("Toolbar.Group");
232
- export function useToolbarRoot(props) {
233
- return ToolbarRootContext.set(new ToolbarRootState(props));
234
- }
235
- export function useToolbarGroup(props) {
236
- const { type, ...rest } = props;
237
- const rootState = ToolbarRootContext.get();
238
- const groupState = type === "single"
239
- ? new ToolbarGroupSingleState(rest, rootState)
240
- : new ToolbarGroupMultipleState(rest, rootState);
241
- return ToolbarGroupContext.set(groupState);
242
- }
243
- export function useToolbarGroupItem(props) {
244
- const group = ToolbarGroupContext.get();
245
- return new ToolbarGroupItemState(props, group, group.root);
246
- }
247
- export function useToolbarButton(props) {
248
- return new ToolbarButtonState(props, ToolbarRootContext.get());
249
- }
250
- export function useToolbarLink(props) {
251
- return new ToolbarLinkState(props, ToolbarRootContext.get());
252
- }
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { TooltipContentStaticProps } from "../types.js";
4
- import { useTooltipContent } from "../tooltip.svelte.js";
4
+ import { TooltipContentState } from "../tooltip.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
  import PopperLayer from "../../utilities/popper-layer/popper-layer.svelte";
7
7
  import { getFloatingContentCSSVars } from "../../../internal/floating-svelte/floating-utils.svelte.js";
@@ -21,7 +21,7 @@
21
21
  ...restProps
22
22
  }: TooltipContentStaticProps = $props();
23
23
 
24
- const contentState = useTooltipContent({
24
+ const contentState = TooltipContentState.create({
25
25
  id: box.with(() => id),
26
26
  ref: box.with(
27
27
  () => ref,
@@ -67,7 +67,7 @@
67
67
  {...contentState.popperProps}
68
68
  tooltip={true}
69
69
  isStatic
70
- present={contentState.root.opts.open.current}
70
+ open={contentState.root.opts.open.current}
71
71
  {id}
72
72
  trapFocus={false}
73
73
  loop={false}
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { TooltipContentProps } from "../types.js";
4
- import { useTooltipContent } from "../tooltip.svelte.js";
4
+ import { TooltipContentState } from "../tooltip.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
  import PopperLayer from "../../utilities/popper-layer/popper-layer.svelte";
7
7
  import { getFloatingContentCSSVars } from "../../../internal/floating-svelte/floating-utils.svelte.js";
@@ -29,7 +29,7 @@
29
29
  ...restProps
30
30
  }: TooltipContentProps = $props();
31
31
 
32
- const contentState = useTooltipContent({
32
+ const contentState = TooltipContentState.create({
33
33
  id: box.with(() => id),
34
34
  ref: box.with(
35
35
  () => ref,
@@ -85,7 +85,7 @@
85
85
  <PopperLayer
86
86
  {...mergedProps}
87
87
  {...contentState.popperProps}
88
- present={contentState.root.opts.open.current}
88
+ open={contentState.root.opts.open.current}
89
89
  {id}
90
90
  trapFocus={false}
91
91
  loop={false}
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box } from "svelte-toolbelt";
3
3
  import type { TooltipProviderProps } from "../types.js";
4
- import { useTooltipProvider } from "../tooltip.svelte.js";
4
+ import { TooltipProviderState } from "../tooltip.svelte.js";
5
5
 
6
6
  let {
7
7
  children,
@@ -13,7 +13,7 @@
13
13
  skipDelayDuration = 300,
14
14
  }: TooltipProviderProps = $props();
15
15
 
16
- useTooltipProvider({
16
+ TooltipProviderState.create({
17
17
  delayDuration: box.with(() => delayDuration),
18
18
  disableCloseOnTriggerClick: box.with(() => disableCloseOnTriggerClick),
19
19
  disableHoverableContent: box.with(() => disableHoverableContent),
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { TooltipTriggerProps } from "../types.js";
4
- import { useTooltipTrigger } from "../tooltip.svelte.js";
4
+ import { TooltipTriggerState } from "../tooltip.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
  import FloatingLayerAnchor from "../../utilities/floating-layer/components/floating-layer-anchor.svelte";
7
7
 
@@ -17,7 +17,7 @@
17
17
  ...restProps
18
18
  }: TooltipTriggerProps = $props();
19
19
 
20
- const triggerState = useTooltipTrigger({
20
+ const triggerState = TooltipTriggerState.create({
21
21
  id: box.with(() => id),
22
22
  disabled: box.with(() => disabled ?? false),
23
23
  ref: box.with(
@@ -1,13 +1,14 @@
1
1
  <script lang="ts">
2
2
  import { box } from "svelte-toolbelt";
3
3
  import type { TooltipRootProps } from "../types.js";
4
- import { useTooltipRoot } from "../tooltip.svelte.js";
4
+ import { TooltipRootState } from "../tooltip.svelte.js";
5
5
  import FloatingLayer from "../../utilities/floating-layer/components/floating-layer.svelte";
6
6
  import { noop } from "../../../internal/noop.js";
7
7
 
8
8
  let {
9
9
  open = $bindable(false),
10
10
  onOpenChange = noop,
11
+ onOpenChangeComplete = noop,
11
12
  disabled,
12
13
  delayDuration,
13
14
  disableCloseOnTriggerClick,
@@ -16,7 +17,7 @@
16
17
  children,
17
18
  }: TooltipRootProps = $props();
18
19
 
19
- useTooltipRoot({
20
+ TooltipRootState.create({
20
21
  open: box.with(
21
22
  () => open,
22
23
  (v) => {
@@ -29,6 +30,7 @@
29
30
  disableHoverableContent: box.with(() => disableHoverableContent),
30
31
  ignoreNonKeyboardFocus: box.with(() => ignoreNonKeyboardFocus),
31
32
  disabled: box.with(() => disabled),
33
+ onOpenChangeComplete: box.with(() => onOpenChangeComplete),
32
34
  });
33
35
  </script>
34
36
 
@@ -1,38 +1,42 @@
1
- import { DOMContext } from "svelte-toolbelt";
2
- import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
3
- import type { WithRefProps } from "../../internal/types.js";
1
+ import { DOMContext, type WritableBoxedValues, type ReadableBoxedValues } from "svelte-toolbelt";
2
+ import type { OnChangeFn, WithRefOpts } from "../../internal/types.js";
4
3
  import type { FocusEventHandler, MouseEventHandler, PointerEventHandler } from "svelte/elements";
5
- export declare const tooltipAttrs: import("../../internal/attrs.js").BitsAttrs<readonly ["content", "trigger"]>;
6
- type TooltipProviderStateProps = ReadableBoxedValues<{
4
+ export declare const tooltipAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["content", "trigger"]>;
5
+ interface TooltipProviderStateOpts extends ReadableBoxedValues<{
7
6
  delayDuration: number;
8
7
  disableHoverableContent: boolean;
9
8
  disableCloseOnTriggerClick: boolean;
10
9
  disabled: boolean;
11
10
  ignoreNonKeyboardFocus: boolean;
12
11
  skipDelayDuration: number;
13
- }>;
14
- declare class TooltipProviderState {
12
+ }> {
13
+ }
14
+ export declare class TooltipProviderState {
15
15
  #private;
16
- readonly opts: TooltipProviderStateProps;
16
+ static create(opts: TooltipProviderStateOpts): TooltipProviderState;
17
+ readonly opts: TooltipProviderStateOpts;
17
18
  isOpenDelayed: boolean;
18
19
  isPointerInTransit: import("svelte-toolbelt").WritableBox<boolean>;
19
- constructor(opts: TooltipProviderStateProps);
20
+ constructor(opts: TooltipProviderStateOpts);
20
21
  onOpen: (tooltip: TooltipRootState) => void;
21
22
  onClose: (tooltip: TooltipRootState) => void;
22
23
  isTooltipOpen: (tooltip: TooltipRootState) => boolean;
23
24
  }
24
- type TooltipRootStateProps = ReadableBoxedValues<{
25
+ interface TooltipRootStateOpts extends ReadableBoxedValues<{
25
26
  delayDuration: number | undefined;
26
27
  disableHoverableContent: boolean | undefined;
27
28
  disableCloseOnTriggerClick: boolean | undefined;
28
29
  disabled: boolean | undefined;
29
30
  ignoreNonKeyboardFocus: boolean | undefined;
30
- }> & WritableBoxedValues<{
31
+ onOpenChangeComplete: OnChangeFn<boolean>;
32
+ }>, WritableBoxedValues<{
31
33
  open: boolean;
32
- }>;
33
- declare class TooltipRootState {
34
+ }> {
35
+ }
36
+ export declare class TooltipRootState {
34
37
  #private;
35
- readonly opts: TooltipRootStateProps;
38
+ static create(opts: TooltipRootStateOpts): TooltipRootState;
39
+ readonly opts: TooltipRootStateOpts;
36
40
  readonly provider: TooltipProviderState;
37
41
  readonly delayDuration: number;
38
42
  readonly disableHoverableContent: boolean;
@@ -42,21 +46,23 @@ declare class TooltipRootState {
42
46
  contentNode: HTMLElement | null;
43
47
  triggerNode: HTMLElement | null;
44
48
  readonly stateAttr: string;
45
- constructor(opts: TooltipRootStateProps, provider: TooltipProviderState);
49
+ constructor(opts: TooltipRootStateOpts, provider: TooltipProviderState);
46
50
  handleOpen: () => void;
47
51
  handleClose: () => void;
48
52
  onTriggerEnter: () => void;
49
53
  onTriggerLeave: () => void;
50
54
  }
51
- type TooltipTriggerStateProps = WithRefProps<ReadableBoxedValues<{
55
+ interface TooltipTriggerStateOpts extends WithRefOpts, ReadableBoxedValues<{
52
56
  disabled: boolean;
53
- }>>;
54
- declare class TooltipTriggerState {
57
+ }> {
58
+ }
59
+ export declare class TooltipTriggerState {
55
60
  #private;
56
- readonly opts: TooltipTriggerStateProps;
61
+ static create(opts: TooltipTriggerStateOpts): TooltipTriggerState;
62
+ readonly opts: TooltipTriggerStateOpts;
57
63
  readonly root: TooltipRootState;
58
64
  domContext: DOMContext;
59
- constructor(opts: TooltipTriggerStateProps, root: TooltipRootState);
65
+ constructor(opts: TooltipTriggerStateOpts, root: TooltipRootState);
60
66
  handlePointerUp: () => void;
61
67
  readonly props: {
62
68
  readonly id: string;
@@ -75,14 +81,16 @@ declare class TooltipTriggerState {
75
81
  readonly onclick: MouseEventHandler<HTMLElement>;
76
82
  };
77
83
  }
78
- type TooltipContentStateProps = WithRefProps & ReadableBoxedValues<{
84
+ interface TooltipContentStateOpts extends WithRefOpts, ReadableBoxedValues<{
79
85
  onInteractOutside: (e: PointerEvent) => void;
80
86
  onEscapeKeydown: (e: KeyboardEvent) => void;
81
- }>;
82
- declare class TooltipContentState {
83
- readonly opts: TooltipContentStateProps;
87
+ }> {
88
+ }
89
+ export declare class TooltipContentState {
90
+ static create(opts: TooltipContentStateOpts): TooltipContentState;
91
+ readonly opts: TooltipContentStateOpts;
84
92
  readonly root: TooltipRootState;
85
- constructor(opts: TooltipContentStateProps, root: TooltipRootState);
93
+ constructor(opts: TooltipContentStateOpts, root: TooltipRootState);
86
94
  onInteractOutside: (e: PointerEvent) => void;
87
95
  onEscapeKeydown: (e: KeyboardEvent) => void;
88
96
  onOpenAutoFocus: (e: Event) => void;
@@ -106,8 +114,4 @@ declare class TooltipContentState {
106
114
  onCloseAutoFocus: (e: Event) => void;
107
115
  };
108
116
  }
109
- export declare function useTooltipProvider(props: TooltipProviderStateProps): TooltipProviderState;
110
- export declare function useTooltipRoot(props: TooltipRootStateProps): TooltipRootState;
111
- export declare function useTooltipTrigger(props: TooltipTriggerStateProps): TooltipTriggerState;
112
- export declare function useTooltipContent(props: TooltipContentStateProps): TooltipContentState;
113
117
  export {};