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
@@ -1,11 +1,11 @@
1
- import { type Box, type ReadableBox, DOMContext } from "svelte-toolbelt";
1
+ import { type Box, type ReadableBox, DOMContext, type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
2
2
  import { Context } from "runed";
3
- import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
4
- import type { BitsKeyboardEvent, OnChangeFn, WithRefProps } from "../../internal/types.js";
3
+ import type { BitsKeyboardEvent, OnChangeFn, WithRefOpts } from "../../internal/types.js";
5
4
  import type { Direction, Orientation, SliderThumbPositioning } from "../../shared/index.js";
6
5
  import type { SliderLabelPosition } from "./types.js";
7
- declare const sliderAttrs: import("../../internal/attrs.js").BitsAttrs<readonly ["root", "thumb", "range", "tick", "tick-label", "thumb-label"]>;
8
- type SliderBaseRootStateProps = WithRefProps<ReadableBoxedValues<{
6
+ declare const sliderAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["root", "thumb", "range", "tick", "tick-label", "thumb-label"]>;
7
+ export declare const SliderRootContext: Context<SliderRoot>;
8
+ interface SliderBaseRootStateOpts extends WithRefOpts, ReadableBoxedValues<{
9
9
  disabled: boolean;
10
10
  orientation: Orientation;
11
11
  min: number;
@@ -15,37 +15,39 @@ type SliderBaseRootStateProps = WithRefProps<ReadableBoxedValues<{
15
15
  autoSort: boolean;
16
16
  thumbPositioning: SliderThumbPositioning;
17
17
  trackPadding?: number;
18
- }>>;
19
- declare class SliderBaseRootState {
18
+ }> {
19
+ }
20
+ declare abstract class SliderBaseRootState {
20
21
  #private;
21
- readonly opts: SliderBaseRootStateProps;
22
+ readonly opts: SliderBaseRootStateOpts;
22
23
  isActive: boolean;
23
- direction: "rl" | "lr" | "tb" | "bt";
24
- normalizedSteps: number[];
24
+ readonly direction: "rl" | "lr" | "tb" | "bt";
25
+ readonly normalizedSteps: number[];
25
26
  domContext: DOMContext;
26
- constructor(opts: SliderBaseRootStateProps);
27
+ constructor(opts: SliderBaseRootStateOpts);
27
28
  isThumbActive(_index: number): boolean;
28
29
  getAllThumbs: () => HTMLElement[];
29
30
  getThumbScale: () => [number, number];
30
31
  getPositionFromValue: (thumbValue: number) => number;
31
- props: {
32
+ readonly props: {
32
33
  readonly id: string;
33
34
  readonly "data-orientation": "horizontal" | "vertical";
34
35
  readonly "data-disabled": "" | undefined;
35
36
  readonly style: {
36
- readonly touchAction: string | undefined;
37
+ readonly touchAction: "pan-x" | "pan-y" | undefined;
37
38
  };
38
39
  };
39
40
  }
40
- type SliderSingleRootStateProps = SliderBaseRootStateProps & ReadableBoxedValues<{
41
+ interface SliderSingleRootStateOpts extends SliderBaseRootStateOpts, ReadableBoxedValues<{
41
42
  onValueCommit: OnChangeFn<number>;
42
- }> & WritableBoxedValues<{
43
+ }>, WritableBoxedValues<{
43
44
  value: number;
44
- }>;
45
+ }> {
46
+ }
45
47
  declare class SliderSingleRootState extends SliderBaseRootState {
46
- readonly opts: SliderSingleRootStateProps;
48
+ readonly opts: SliderSingleRootStateOpts;
47
49
  isMulti: false;
48
- constructor(opts: SliderSingleRootStateProps);
50
+ constructor(opts: SliderSingleRootStateOpts);
49
51
  isTickValueSelected: (tickValue: number) => boolean;
50
52
  applyPosition({ clientXY, start, end }: {
51
53
  clientXY: number;
@@ -56,7 +58,7 @@ declare class SliderSingleRootState extends SliderBaseRootState {
56
58
  handlePointerMove: (e: PointerEvent) => void;
57
59
  handlePointerDown: (e: PointerEvent) => void;
58
60
  handlePointerUp: () => void;
59
- thumbsPropsArr: {
61
+ readonly thumbsPropsArr: {
60
62
  readonly [sliderAttrs.thumb]: "";
61
63
  readonly role: "slider";
62
64
  readonly "aria-valuemin": number;
@@ -68,8 +70,8 @@ declare class SliderSingleRootState extends SliderBaseRootState {
68
70
  readonly "data-orientation": "horizontal" | "vertical";
69
71
  readonly style: import("../../shared/index.js").StyleProperties;
70
72
  }[];
71
- thumbsRenderArr: number[];
72
- ticksPropsArr: {
73
+ readonly thumbsRenderArr: number[];
74
+ readonly ticksPropsArr: {
73
75
  readonly [sliderAttrs.tick]: "";
74
76
  readonly "data-disabled": "" | undefined;
75
77
  readonly "data-orientation": "horizontal" | "vertical";
@@ -78,16 +80,16 @@ declare class SliderSingleRootState extends SliderBaseRootState {
78
80
  readonly "data-selected": "" | undefined;
79
81
  readonly style: import("../../shared/index.js").StyleProperties;
80
82
  }[];
81
- ticksRenderArr: number[];
82
- tickItemsArr: {
83
+ readonly ticksRenderArr: number[];
84
+ readonly tickItemsArr: {
83
85
  value: number;
84
86
  index: number;
85
87
  }[];
86
- thumbItemsArr: {
88
+ readonly thumbItemsArr: {
87
89
  value: number;
88
90
  index: number;
89
91
  }[];
90
- snippetProps: {
92
+ readonly snippetProps: {
91
93
  readonly ticks: number[];
92
94
  readonly thumbs: number[];
93
95
  readonly tickItems: {
@@ -100,21 +102,22 @@ declare class SliderSingleRootState extends SliderBaseRootState {
100
102
  }[];
101
103
  };
102
104
  }
103
- type SliderMultiRootStateProps = SliderBaseRootStateProps & ReadableBoxedValues<{
105
+ interface SliderMultiRootStateOpts extends SliderBaseRootStateOpts, ReadableBoxedValues<{
104
106
  onValueCommit: OnChangeFn<number[]>;
105
- }> & WritableBoxedValues<{
107
+ }>, WritableBoxedValues<{
106
108
  value: number[];
107
- }>;
109
+ }> {
110
+ }
108
111
  declare class SliderMultiRootState extends SliderBaseRootState {
109
112
  #private;
110
- readonly opts: SliderMultiRootStateProps;
113
+ readonly opts: SliderMultiRootStateOpts;
111
114
  isMulti: true;
112
115
  activeThumb: {
113
116
  node: HTMLElement;
114
117
  idx: number;
115
118
  } | null;
116
119
  currentThumbIdx: number;
117
- constructor(opts: SliderMultiRootStateProps);
120
+ constructor(opts: SliderMultiRootStateOpts);
118
121
  isTickValueSelected: (tickValue: number) => boolean;
119
122
  isThumbActive(index: number): boolean;
120
123
  applyPosition({ clientXY, activeThumbIdx, start, end, }: {
@@ -171,11 +174,22 @@ declare class SliderMultiRootState extends SliderBaseRootState {
171
174
  }[];
172
175
  };
173
176
  }
174
- type SliderRangeStateProps = WithRefProps;
175
- declare class SliderRangeState {
176
- readonly opts: SliderRangeStateProps;
177
- readonly root: SliderRootState;
178
- constructor(opts: SliderRangeStateProps, root: SliderRootState);
177
+ type SliderRoot = SliderSingleRootState | SliderMultiRootState;
178
+ interface SliderRootStateOpts extends Omit<SliderBaseRootStateOpts, "type"> {
179
+ type: "single" | "multiple";
180
+ value: Box<number> | Box<number[]>;
181
+ onValueCommit: ReadableBox<OnChangeFn<number>> | ReadableBox<OnChangeFn<number[]>>;
182
+ }
183
+ export declare class SliderRootState {
184
+ static create(opts: SliderRootStateOpts): SliderRoot;
185
+ }
186
+ interface SliderRangeStateOpts extends WithRefOpts {
187
+ }
188
+ export declare class SliderRangeState {
189
+ static create(opts: SliderRangeStateOpts): SliderRangeState;
190
+ readonly opts: SliderRangeStateOpts;
191
+ readonly root: SliderRoot;
192
+ constructor(opts: SliderRangeStateOpts, root: SliderRoot);
179
193
  readonly rangeStyles: {
180
194
  accentColor?: import("csstype").Property.AccentColor | undefined;
181
195
  alignContent?: import("csstype").Property.AlignContent | undefined;
@@ -1836,15 +1850,17 @@ declare class SliderRangeState {
1836
1850
  };
1837
1851
  };
1838
1852
  }
1839
- type SliderThumbStateProps = WithRefProps & ReadableBoxedValues<{
1853
+ interface SliderThumbStateOpts extends WithRefOpts, ReadableBoxedValues<{
1840
1854
  index: number;
1841
1855
  disabled: boolean;
1842
- }>;
1843
- declare class SliderThumbState {
1856
+ }> {
1857
+ }
1858
+ export declare class SliderThumbState {
1844
1859
  #private;
1845
- readonly opts: SliderThumbStateProps;
1846
- readonly root: SliderRootState;
1847
- constructor(opts: SliderThumbStateProps, root: SliderRootState);
1860
+ static create(opts: SliderThumbStateOpts): SliderThumbState;
1861
+ readonly opts: SliderThumbStateOpts;
1862
+ readonly root: SliderRoot;
1863
+ constructor(opts: SliderThumbStateOpts, root: SliderRoot);
1848
1864
  onkeydown(e: BitsKeyboardEvent): void;
1849
1865
  readonly props: {
1850
1866
  readonly id: string;
@@ -1878,13 +1894,15 @@ declare class SliderThumbState {
1878
1894
  readonly style: import("../../shared/index.js").StyleProperties;
1879
1895
  };
1880
1896
  }
1881
- type SliderTickStateProps = WithRefProps & ReadableBoxedValues<{
1897
+ interface SliderTickStateOpts extends WithRefOpts, ReadableBoxedValues<{
1882
1898
  index: number;
1883
- }>;
1884
- declare class SliderTickState {
1885
- readonly opts: SliderTickStateProps;
1886
- readonly root: SliderRootState;
1887
- constructor(opts: SliderTickStateProps, root: SliderRootState);
1899
+ }> {
1900
+ }
1901
+ export declare class SliderTickState {
1902
+ static create(opts: SliderTickStateOpts): SliderTickState;
1903
+ readonly opts: SliderTickStateOpts;
1904
+ readonly root: SliderRoot;
1905
+ constructor(opts: SliderTickStateOpts, root: SliderRoot);
1888
1906
  readonly props: {
1889
1907
  readonly id: string;
1890
1908
  readonly "data-disabled": "" | undefined;
@@ -1902,14 +1920,16 @@ declare class SliderTickState {
1902
1920
  readonly style: import("../../shared/index.js").StyleProperties;
1903
1921
  };
1904
1922
  }
1905
- type SliderTickLabelStateProps = WithRefProps & ReadableBoxedValues<{
1923
+ interface SliderTickLabelStateOpts extends WithRefOpts, ReadableBoxedValues<{
1906
1924
  index: number;
1907
1925
  position?: SliderLabelPosition;
1908
- }>;
1909
- declare class SliderTickLabelState {
1910
- readonly opts: SliderTickLabelStateProps;
1911
- readonly root: SliderRootState;
1912
- constructor(opts: SliderTickLabelStateProps, root: SliderRootState);
1926
+ }> {
1927
+ }
1928
+ export declare class SliderTickLabelState {
1929
+ static create(opts: SliderTickLabelStateOpts): SliderTickLabelState;
1930
+ readonly opts: SliderTickLabelStateOpts;
1931
+ readonly root: SliderRoot;
1932
+ constructor(opts: SliderTickLabelStateOpts, root: SliderRoot);
1913
1933
  readonly props: {
1914
1934
  readonly id: string;
1915
1935
  readonly "data-orientation": "horizontal" | "vertical";
@@ -1921,15 +1941,17 @@ declare class SliderTickLabelState {
1921
1941
  readonly style: import("../../shared/index.js").StyleProperties;
1922
1942
  };
1923
1943
  }
1924
- type SliderThumbLabelStateProps = WithRefProps & ReadableBoxedValues<{
1944
+ interface SliderThumbLabelStateOpts extends WithRefOpts, ReadableBoxedValues<{
1925
1945
  index: number;
1926
1946
  position?: SliderLabelPosition;
1927
- }>;
1928
- declare class SliderThumbLabelState {
1929
- readonly opts: SliderThumbLabelStateProps;
1930
- readonly root: SliderRootState;
1931
- constructor(opts: SliderThumbLabelStateProps, root: SliderRootState);
1932
- props: {
1947
+ }> {
1948
+ }
1949
+ export declare class SliderThumbLabelState {
1950
+ static create(opts: SliderThumbLabelStateOpts): SliderThumbLabelState;
1951
+ readonly opts: SliderThumbLabelStateOpts;
1952
+ readonly root: SliderRoot;
1953
+ constructor(opts: SliderThumbLabelStateOpts, root: SliderRoot);
1954
+ readonly props: {
1933
1955
  readonly id: string;
1934
1956
  readonly "data-orientation": "horizontal" | "vertical";
1935
1957
  readonly "data-disabled": "" | undefined;
@@ -1939,17 +1961,4 @@ declare class SliderThumbLabelState {
1939
1961
  readonly style: import("../../shared/index.js").StyleProperties;
1940
1962
  };
1941
1963
  }
1942
- type SliderRootState = SliderSingleRootState | SliderMultiRootState;
1943
- type InitSliderRootStateProps = {
1944
- type: "single" | "multiple";
1945
- value: Box<number> | Box<number[]>;
1946
- onValueCommit: ReadableBox<OnChangeFn<number>> | ReadableBox<OnChangeFn<number[]>>;
1947
- } & Omit<SliderBaseRootStateProps, "type">;
1948
- export declare const SliderRootContext: Context<SliderRootState>;
1949
- export declare function useSliderRoot(props: InitSliderRootStateProps): SliderRootState;
1950
- export declare function useSliderRange(props: SliderRangeStateProps): SliderRangeState;
1951
- export declare function useSliderThumb(props: SliderThumbStateProps): SliderThumbState;
1952
- export declare function useSliderTick(props: SliderTickStateProps): SliderTickState;
1953
- export declare function useSliderTickLabel(props: SliderTickLabelStateProps): SliderTickLabelState;
1954
- export declare function useSliderThumbLabel(props: SliderThumbLabelStateProps): SliderThumbLabelState;
1955
1964
  export {};
@@ -16,6 +16,7 @@ const sliderAttrs = createBitsAttrs({
16
16
  component: "slider",
17
17
  parts: ["root", "thumb", "range", "tick", "tick-label", "thumb-label"],
18
18
  });
19
+ export const SliderRootContext = new Context("Slider.Root");
19
20
  class SliderBaseRootState {
20
21
  opts;
21
22
  isActive = $state(false);
@@ -540,6 +541,15 @@ class SliderMultiRootState extends SliderBaseRootState {
540
541
  thumbItems: this.thumbItemsArr,
541
542
  }));
542
543
  }
544
+ export class SliderRootState {
545
+ static create(opts) {
546
+ const { type, ...rest } = opts;
547
+ const rootState = type === "single"
548
+ ? new SliderSingleRootState(rest)
549
+ : new SliderMultiRootState(rest);
550
+ return SliderRootContext.set(rootState);
551
+ }
552
+ }
543
553
  const VALID_SLIDER_KEYS = [
544
554
  kbd.ARROW_LEFT,
545
555
  kbd.ARROW_RIGHT,
@@ -548,7 +558,10 @@ const VALID_SLIDER_KEYS = [
548
558
  kbd.HOME,
549
559
  kbd.END,
550
560
  ];
551
- class SliderRangeState {
561
+ export class SliderRangeState {
562
+ static create(opts) {
563
+ return new SliderRangeState(opts, SliderRootContext.get());
564
+ }
552
565
  opts;
553
566
  root;
554
567
  constructor(opts, root) {
@@ -595,7 +608,10 @@ class SliderRangeState {
595
608
  ...attachRef(this.opts.ref),
596
609
  }));
597
610
  }
598
- class SliderThumbState {
611
+ export class SliderThumbState {
612
+ static create(opts) {
613
+ return new SliderThumbState(opts, SliderRootContext.get());
614
+ }
599
615
  opts;
600
616
  root;
601
617
  #isDisabled = $derived.by(() => this.root.opts.disabled.current || this.opts.disabled.current);
@@ -704,7 +720,10 @@ class SliderThumbState {
704
720
  ...attachRef(this.opts.ref),
705
721
  }));
706
722
  }
707
- class SliderTickState {
723
+ export class SliderTickState {
724
+ static create(opts) {
725
+ return new SliderTickState(opts, SliderRootContext.get());
726
+ }
708
727
  opts;
709
728
  root;
710
729
  constructor(opts, root) {
@@ -717,7 +736,10 @@ class SliderTickState {
717
736
  ...attachRef(this.opts.ref),
718
737
  }));
719
738
  }
720
- class SliderTickLabelState {
739
+ export class SliderTickLabelState {
740
+ static create(opts) {
741
+ return new SliderTickLabelState(opts, SliderRootContext.get());
742
+ }
721
743
  opts;
722
744
  root;
723
745
  constructor(opts, root) {
@@ -745,7 +767,10 @@ class SliderTickLabelState {
745
767
  };
746
768
  });
747
769
  }
748
- class SliderThumbLabelState {
770
+ export class SliderThumbLabelState {
771
+ static create(opts) {
772
+ return new SliderThumbLabelState(opts, SliderRootContext.get());
773
+ }
749
774
  opts;
750
775
  root;
751
776
  constructor(opts, root) {
@@ -771,26 +796,3 @@ class SliderThumbLabelState {
771
796
  };
772
797
  });
773
798
  }
774
- export const SliderRootContext = new Context("Slider.Root");
775
- export function useSliderRoot(props) {
776
- const { type, ...rest } = props;
777
- const rootState = type === "single"
778
- ? new SliderSingleRootState(rest)
779
- : new SliderMultiRootState(rest);
780
- return SliderRootContext.set(rootState);
781
- }
782
- export function useSliderRange(props) {
783
- return new SliderRangeState(props, SliderRootContext.get());
784
- }
785
- export function useSliderThumb(props) {
786
- return new SliderThumbState(props, SliderRootContext.get());
787
- }
788
- export function useSliderTick(props) {
789
- return new SliderTickState(props, SliderRootContext.get());
790
- }
791
- export function useSliderTickLabel(props) {
792
- return new SliderTickLabelState(props, SliderRootContext.get());
793
- }
794
- export function useSliderThumbLabel(props) {
795
- return new SliderThumbLabelState(props, SliderRootContext.get());
796
- }
@@ -1,8 +1,8 @@
1
1
  <script lang="ts">
2
2
  import HiddenInput from "../../utilities/hidden-input.svelte";
3
- import { useSwitchInput } from "../switch.svelte.js";
3
+ import { SwitchInputState } from "../switch.svelte.js";
4
4
 
5
- const inputState = useSwitchInput();
5
+ const inputState = SwitchInputState.create();
6
6
  </script>
7
7
 
8
8
  {#if inputState.shouldRender}
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { SwitchThumbProps } from "../types.js";
4
- import { useSwitchThumb } from "../switch.svelte.js";
4
+ import { SwitchThumbState } from "../switch.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
7
7
  const uid = $props.id();
@@ -14,7 +14,7 @@
14
14
  ...restProps
15
15
  }: SwitchThumbProps = $props();
16
16
 
17
- const thumbState = useSwitchThumb({
17
+ const thumbState = SwitchThumbState.create({
18
18
  id: box.with(() => id),
19
19
  ref: box.with(
20
20
  () => ref,
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { SwitchRootProps } from "../types.js";
4
- import { useSwitchRoot } from "../switch.svelte.js";
4
+ import { SwitchRootState } from "../switch.svelte.js";
5
5
  import SwitchInput from "./switch-input.svelte";
6
6
  import { createId } from "../../../internal/create-id.js";
7
7
  import { noop } from "../../../internal/noop.js";
@@ -23,7 +23,7 @@
23
23
  ...restProps
24
24
  }: SwitchRootProps = $props();
25
25
 
26
- const rootState = useSwitchRoot({
26
+ const rootState = SwitchRootState.create({
27
27
  checked: box.with(
28
28
  () => checked,
29
29
  (v) => {
@@ -1,17 +1,19 @@
1
- import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
2
- import type { BitsKeyboardEvent, BitsPointerEvent, WithRefProps } from "../../internal/types.js";
3
- type SwitchRootStateProps = WithRefProps<ReadableBoxedValues<{
1
+ import { type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
2
+ import type { BitsKeyboardEvent, BitsPointerEvent, WithRefOpts } from "../../internal/types.js";
3
+ interface SwitchRootStateOpts extends WithRefOpts, ReadableBoxedValues<{
4
4
  disabled: boolean;
5
5
  required: boolean;
6
6
  name: string | undefined;
7
7
  value: string;
8
- }> & WritableBoxedValues<{
8
+ }>, WritableBoxedValues<{
9
9
  checked: boolean;
10
- }>>;
11
- declare class SwitchRootState {
10
+ }> {
11
+ }
12
+ export declare class SwitchRootState {
12
13
  #private;
13
- readonly opts: SwitchRootStateProps;
14
- constructor(opts: SwitchRootStateProps);
14
+ static create(opts: SwitchRootStateOpts): SwitchRootState;
15
+ readonly opts: SwitchRootStateOpts;
16
+ constructor(opts: SwitchRootStateOpts);
15
17
  onkeydown(e: BitsKeyboardEvent): void;
16
18
  onclick(_: BitsPointerEvent): void;
17
19
  readonly sharedProps: {
@@ -35,11 +37,12 @@ declare class SwitchRootState {
35
37
  readonly "data-required": "" | undefined;
36
38
  };
37
39
  }
38
- declare class SwitchInputState {
40
+ export declare class SwitchInputState {
41
+ static create(): SwitchInputState;
39
42
  readonly root: SwitchRootState;
40
43
  readonly shouldRender: boolean;
41
44
  constructor(root: SwitchRootState);
42
- props: {
45
+ readonly props: {
43
46
  readonly type: "checkbox";
44
47
  readonly name: string | undefined;
45
48
  readonly value: string;
@@ -48,11 +51,13 @@ declare class SwitchInputState {
48
51
  readonly required: boolean;
49
52
  };
50
53
  }
51
- type SwitchThumbStateProps = WithRefProps;
52
- declare class SwitchThumbState {
53
- readonly opts: SwitchThumbStateProps;
54
+ interface SwitchThumbStateOpts extends WithRefOpts {
55
+ }
56
+ export declare class SwitchThumbState {
57
+ static create(opts: SwitchThumbStateOpts): SwitchThumbState;
58
+ readonly opts: SwitchThumbStateOpts;
54
59
  readonly root: SwitchRootState;
55
- constructor(opts: SwitchThumbStateProps, root: SwitchRootState);
60
+ constructor(opts: SwitchThumbStateOpts, root: SwitchRootState);
56
61
  readonly snippetProps: {
57
62
  checked: boolean;
58
63
  };
@@ -63,7 +68,4 @@ declare class SwitchThumbState {
63
68
  readonly "data-required": "" | undefined;
64
69
  };
65
70
  }
66
- export declare function useSwitchRoot(props: SwitchRootStateProps): SwitchRootState;
67
- export declare function useSwitchInput(): SwitchInputState;
68
- export declare function useSwitchThumb(props: SwitchThumbStateProps): SwitchThumbState;
69
71
  export {};
@@ -6,7 +6,11 @@ const switchAttrs = createBitsAttrs({
6
6
  component: "switch",
7
7
  parts: ["root", "thumb"],
8
8
  });
9
- class SwitchRootState {
9
+ const SwitchRootContext = new Context("Switch.Root");
10
+ export class SwitchRootState {
11
+ static create(opts) {
12
+ return SwitchRootContext.set(new SwitchRootState(opts));
13
+ }
10
14
  opts;
11
15
  constructor(opts) {
12
16
  this.opts = opts;
@@ -49,7 +53,10 @@ class SwitchRootState {
49
53
  ...attachRef(this.opts.ref),
50
54
  }));
51
55
  }
52
- class SwitchInputState {
56
+ export class SwitchInputState {
57
+ static create() {
58
+ return new SwitchInputState(SwitchRootContext.get());
59
+ }
53
60
  root;
54
61
  shouldRender = $derived.by(() => this.root.opts.name.current !== undefined);
55
62
  constructor(root) {
@@ -64,7 +71,10 @@ class SwitchInputState {
64
71
  required: this.root.opts.required.current,
65
72
  }));
66
73
  }
67
- class SwitchThumbState {
74
+ export class SwitchThumbState {
75
+ static create(opts) {
76
+ return new SwitchThumbState(opts, SwitchRootContext.get());
77
+ }
68
78
  opts;
69
79
  root;
70
80
  constructor(opts, root) {
@@ -81,13 +91,3 @@ class SwitchThumbState {
81
91
  ...attachRef(this.opts.ref),
82
92
  }));
83
93
  }
84
- const SwitchRootContext = new Context("Switch.Root");
85
- export function useSwitchRoot(props) {
86
- return SwitchRootContext.set(new SwitchRootState(props));
87
- }
88
- export function useSwitchInput() {
89
- return new SwitchInputState(SwitchRootContext.get());
90
- }
91
- export function useSwitchThumb(props) {
92
- return new SwitchThumbState(props, SwitchRootContext.get());
93
- }
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { TabsContentProps } from "../types.js";
4
- import { useTabsContent } from "../tabs.svelte.js";
4
+ import { TabsContentState } from "../tabs.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
7
7
  const uid = $props.id();
@@ -15,7 +15,7 @@
15
15
  ...restProps
16
16
  }: TabsContentProps = $props();
17
17
 
18
- const contentState = useTabsContent({
18
+ const contentState = TabsContentState.create({
19
19
  value: box.with(() => value),
20
20
  id: box.with(() => id),
21
21
  ref: box.with(
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { TabsListProps } from "../types.js";
4
- import { useTabsList } from "../tabs.svelte.js";
4
+ import { TabsListState } from "../tabs.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
7
7
  const uid = $props.id();
@@ -14,7 +14,7 @@
14
14
  ...restProps
15
15
  }: TabsListProps = $props();
16
16
 
17
- const listState = useTabsList({
17
+ const listState = TabsListState.create({
18
18
  id: box.with(() => id),
19
19
  ref: box.with(
20
20
  () => ref,
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { TabsTriggerProps } from "../types.js";
4
- import { useTabsTrigger } from "../tabs.svelte.js";
4
+ import { TabsTriggerState } from "../tabs.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
7
7
  const uid = $props.id();
@@ -17,7 +17,7 @@
17
17
  ...restProps
18
18
  }: TabsTriggerProps = $props();
19
19
 
20
- const triggerState = useTabsTrigger({
20
+ const triggerState = TabsTriggerState.create({
21
21
  id: box.with(() => id),
22
22
  disabled: box.with(() => disabled ?? false),
23
23
  value: box.with(() => value),
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { TabsRootProps } from "../types.js";
4
- import { useTabsRoot } from "../tabs.svelte.js";
4
+ import { TabsRootState } from "../tabs.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
  import { noop } from "../../../internal/noop.js";
7
7
 
@@ -21,7 +21,7 @@
21
21
  ...restProps
22
22
  }: TabsRootProps = $props();
23
23
 
24
- const rootState = useTabsRoot({
24
+ const rootState = TabsRootState.create({
25
25
  id: box.with(() => id),
26
26
  value: box.with(
27
27
  () => value,