bits-ui 2.7.0 → 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 (366) 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 +2 -2
  183. package/dist/bits/radio-group/radio-group.svelte.d.ts +21 -19
  184. package/dist/bits/radio-group/radio-group.svelte.js +15 -15
  185. package/dist/bits/range-calendar/components/range-calendar-cell.svelte +2 -2
  186. package/dist/bits/range-calendar/components/range-calendar-day.svelte +2 -2
  187. package/dist/bits/range-calendar/components/range-calendar.svelte +2 -2
  188. package/dist/bits/range-calendar/range-calendar.svelte.d.ts +21 -20
  189. package/dist/bits/range-calendar/range-calendar.svelte.js +12 -12
  190. package/dist/bits/rating-group/components/rating-group-input.svelte +2 -2
  191. package/dist/bits/rating-group/components/rating-group-item.svelte +2 -2
  192. package/dist/bits/rating-group/components/rating-group.svelte +2 -2
  193. package/dist/bits/rating-group/rating-group.svelte.d.ts +19 -18
  194. package/dist/bits/rating-group/rating-group.svelte.js +16 -17
  195. package/dist/bits/scroll-area/components/scroll-area-corner-impl.svelte +2 -2
  196. package/dist/bits/scroll-area/components/scroll-area-scrollbar-auto.svelte +3 -3
  197. package/dist/bits/scroll-area/components/scroll-area-scrollbar-hover.svelte +6 -6
  198. package/dist/bits/scroll-area/components/scroll-area-scrollbar-scroll.svelte +3 -3
  199. package/dist/bits/scroll-area/components/scroll-area-scrollbar-shared.svelte +2 -2
  200. package/dist/bits/scroll-area/components/scroll-area-scrollbar-visible.svelte +2 -2
  201. package/dist/bits/scroll-area/components/scroll-area-scrollbar-x.svelte +2 -2
  202. package/dist/bits/scroll-area/components/scroll-area-scrollbar-y.svelte +2 -2
  203. package/dist/bits/scroll-area/components/scroll-area-scrollbar.svelte +2 -2
  204. package/dist/bits/scroll-area/components/scroll-area-thumb-impl.svelte +2 -2
  205. package/dist/bits/scroll-area/components/scroll-area-thumb.svelte +2 -5
  206. package/dist/bits/scroll-area/components/scroll-area-viewport.svelte +2 -2
  207. package/dist/bits/scroll-area/components/scroll-area.svelte +2 -2
  208. package/dist/bits/scroll-area/scroll-area.svelte.d.ts +98 -78
  209. package/dist/bits/scroll-area/scroll-area.svelte.js +78 -74
  210. package/dist/bits/select/components/select-content-static.svelte +3 -3
  211. package/dist/bits/select/components/select-content.svelte +3 -3
  212. package/dist/bits/select/components/select-group-heading.svelte +2 -2
  213. package/dist/bits/select/components/select-group.svelte +2 -2
  214. package/dist/bits/select/components/select-hidden-input.svelte +2 -2
  215. package/dist/bits/select/components/select-item.svelte +2 -2
  216. package/dist/bits/select/components/select-scroll-down-button.svelte +2 -2
  217. package/dist/bits/select/components/select-scroll-up-button.svelte +2 -2
  218. package/dist/bits/select/components/select-trigger.svelte +2 -2
  219. package/dist/bits/select/components/select-viewport.svelte +2 -2
  220. package/dist/bits/select/components/select.svelte +4 -2
  221. package/dist/bits/select/select.svelte.d.ts +127 -113
  222. package/dist/bits/select/select.svelte.js +72 -62
  223. package/dist/bits/select/types.d.ts +4 -0
  224. package/dist/bits/separator/components/separator.svelte +2 -2
  225. package/dist/bits/separator/separator.svelte.d.ts +9 -8
  226. package/dist/bits/separator/separator.svelte.js +4 -4
  227. package/dist/bits/slider/components/slider-range.svelte +2 -2
  228. package/dist/bits/slider/components/slider-thumb-label.svelte +2 -2
  229. package/dist/bits/slider/components/slider-thumb.svelte +2 -2
  230. package/dist/bits/slider/components/slider-tick-label.svelte +2 -2
  231. package/dist/bits/slider/components/slider-tick.svelte +2 -2
  232. package/dist/bits/slider/components/slider.svelte +2 -2
  233. package/dist/bits/slider/slider.svelte.d.ts +82 -73
  234. package/dist/bits/slider/slider.svelte.js +30 -28
  235. package/dist/bits/switch/components/switch-input.svelte +2 -2
  236. package/dist/bits/switch/components/switch-thumb.svelte +2 -2
  237. package/dist/bits/switch/components/switch.svelte +2 -2
  238. package/dist/bits/switch/switch.svelte.d.ts +19 -17
  239. package/dist/bits/switch/switch.svelte.js +13 -13
  240. package/dist/bits/tabs/components/tabs-content.svelte +2 -2
  241. package/dist/bits/tabs/components/tabs-list.svelte +2 -2
  242. package/dist/bits/tabs/components/tabs-trigger.svelte +2 -2
  243. package/dist/bits/tabs/components/tabs.svelte +2 -2
  244. package/dist/bits/tabs/tabs.svelte.d.ts +33 -29
  245. package/dist/bits/tabs/tabs.svelte.js +19 -19
  246. package/dist/bits/time-field/components/time-field-hidden-input.svelte +2 -2
  247. package/dist/bits/time-field/components/time-field-input.svelte +2 -2
  248. package/dist/bits/time-field/components/time-field-label.svelte +2 -2
  249. package/dist/bits/time-field/components/time-field-segment.svelte +2 -2
  250. package/dist/bits/time-field/components/time-field.svelte +2 -2
  251. package/dist/bits/time-field/time-field.svelte.d.ts +72 -66
  252. package/dist/bits/time-field/time-field.svelte.js +37 -42
  253. package/dist/bits/time-range-field/components/time-range-field-input.svelte +2 -2
  254. package/dist/bits/time-range-field/components/time-range-field-label.svelte +2 -2
  255. package/dist/bits/time-range-field/components/time-range-field.svelte +2 -2
  256. package/dist/bits/time-range-field/time-range-field.svelte.d.ts +35 -31
  257. package/dist/bits/time-range-field/time-range-field.svelte.js +34 -32
  258. package/dist/bits/toggle/components/toggle.svelte +2 -2
  259. package/dist/bits/toggle/toggle.svelte.d.ts +11 -10
  260. package/dist/bits/toggle/toggle.svelte.js +4 -4
  261. package/dist/bits/toggle-group/components/toggle-group-item.svelte +2 -2
  262. package/dist/bits/toggle-group/components/toggle-group.svelte +2 -2
  263. package/dist/bits/toggle-group/toggle-group.svelte.d.ts +48 -43
  264. package/dist/bits/toggle-group/toggle-group.svelte.js +24 -25
  265. package/dist/bits/toolbar/components/toolbar-button.svelte +2 -2
  266. package/dist/bits/toolbar/components/toolbar-group-item.svelte +2 -2
  267. package/dist/bits/toolbar/components/toolbar-group.svelte +2 -2
  268. package/dist/bits/toolbar/components/toolbar-link.svelte +2 -2
  269. package/dist/bits/toolbar/components/toolbar.svelte +2 -2
  270. package/dist/bits/toolbar/toolbar.svelte.d.ts +59 -51
  271. package/dist/bits/toolbar/toolbar.svelte.js +32 -30
  272. package/dist/bits/tooltip/components/tooltip-content-static.svelte +3 -3
  273. package/dist/bits/tooltip/components/tooltip-content.svelte +3 -3
  274. package/dist/bits/tooltip/components/tooltip-provider.svelte +2 -2
  275. package/dist/bits/tooltip/components/tooltip-trigger.svelte +2 -2
  276. package/dist/bits/tooltip/components/tooltip.svelte +4 -2
  277. package/dist/bits/tooltip/tooltip.svelte.d.ts +33 -29
  278. package/dist/bits/tooltip/tooltip.svelte.js +33 -28
  279. package/dist/bits/tooltip/types.d.ts +4 -0
  280. package/dist/bits/utilities/config/bits-config.d.ts +1 -1
  281. package/dist/bits/utilities/dismissible-layer/dismissible-layer.svelte +2 -2
  282. package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.d.ts +6 -7
  283. package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.js +3 -3
  284. package/dist/bits/utilities/escape-layer/escape-layer.svelte +2 -2
  285. package/dist/bits/utilities/escape-layer/use-escape-layer.svelte.d.ts +6 -7
  286. package/dist/bits/utilities/escape-layer/use-escape-layer.svelte.js +3 -3
  287. package/dist/bits/utilities/floating-layer/components/floating-layer-anchor.svelte +2 -2
  288. package/dist/bits/utilities/floating-layer/components/floating-layer-arrow.svelte +2 -2
  289. package/dist/bits/utilities/floating-layer/components/floating-layer-content.svelte +2 -2
  290. package/dist/bits/utilities/floating-layer/components/floating-layer.svelte +2 -2
  291. package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.d.ts +25 -23
  292. package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.js +25 -25
  293. package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.d.ts +1 -1
  294. package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.js +1 -1
  295. package/dist/bits/utilities/popper-layer/popper-layer-force-mount.svelte +1 -1
  296. package/dist/bits/utilities/popper-layer/popper-layer-force-mount.svelte.d.ts +1 -1
  297. package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte +1 -1
  298. package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte.d.ts +1 -1
  299. package/dist/bits/utilities/popper-layer/popper-layer.svelte +3 -3
  300. package/dist/bits/utilities/presence-layer/presence-layer.svelte +8 -8
  301. package/dist/bits/utilities/presence-layer/presence.svelte.d.ts +42 -0
  302. package/dist/bits/utilities/presence-layer/presence.svelte.js +116 -0
  303. package/dist/bits/utilities/presence-layer/types.d.ts +3 -5
  304. package/dist/bits/utilities/scroll-lock/scroll-lock.svelte +2 -2
  305. package/dist/bits/utilities/text-selection-layer/text-selection-layer.svelte +2 -2
  306. package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.d.ts +7 -7
  307. package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.js +3 -3
  308. package/dist/internal/animations-complete.d.ts +12 -0
  309. package/dist/internal/animations-complete.js +55 -0
  310. package/dist/internal/arrays.js +20 -36
  311. package/dist/internal/attrs.d.ts +9 -2
  312. package/dist/internal/attrs.js +21 -11
  313. package/dist/internal/body-scroll-lock.svelte.d.ts +10 -0
  314. package/dist/internal/body-scroll-lock.svelte.js +106 -0
  315. package/dist/internal/data-typeahead.svelte.d.ts +15 -0
  316. package/dist/internal/data-typeahead.svelte.js +33 -0
  317. package/dist/internal/date-time/calendar-helpers.svelte.d.ts +1 -1
  318. package/dist/internal/dom-typeahead.svelte.d.ts +14 -0
  319. package/dist/internal/dom-typeahead.svelte.js +44 -0
  320. package/dist/internal/dom.d.ts +0 -2
  321. package/dist/internal/dom.js +0 -15
  322. package/dist/internal/{use-grace-area.svelte.d.ts → grace-area.svelte.d.ts} +5 -4
  323. package/dist/internal/{use-grace-area.svelte.js → grace-area.svelte.js} +60 -56
  324. package/dist/internal/open-change-complete.d.ts +13 -0
  325. package/dist/internal/open-change-complete.js +24 -0
  326. package/dist/internal/{use-roving-focus.svelte.d.ts → roving-focus-group.d.ts} +9 -8
  327. package/dist/internal/{use-roving-focus.svelte.js → roving-focus-group.js} +30 -34
  328. package/dist/internal/shared-state.svelte.d.ts +6 -0
  329. package/dist/internal/shared-state.svelte.js +31 -0
  330. package/dist/internal/should-trap-focus.js +1 -2
  331. package/dist/internal/state-machine.d.ts +16 -0
  332. package/dist/internal/state-machine.js +18 -0
  333. package/dist/internal/svelte-resize-observer.svelte.d.ts +6 -0
  334. package/dist/internal/svelte-resize-observer.svelte.js +25 -0
  335. package/dist/internal/tabbable.d.ts +0 -1
  336. package/dist/internal/tabbable.js +0 -11
  337. package/dist/internal/timeout-fn.d.ts +16 -0
  338. package/dist/internal/timeout-fn.js +38 -0
  339. package/dist/internal/types.d.ts +2 -2
  340. package/package.json +1 -1
  341. package/dist/bits/utilities/presence-layer/use-presence.svelte.d.ts +0 -4
  342. package/dist/bits/utilities/presence-layer/use-presence.svelte.js +0 -97
  343. package/dist/internal/box.svelte.d.ts +0 -21
  344. package/dist/internal/box.svelte.js +0 -26
  345. package/dist/internal/create-event-hook.svelte.d.ts +0 -18
  346. package/dist/internal/create-event-hook.svelte.js +0 -29
  347. package/dist/internal/create-shared-hook.svelte.d.ts +0 -2
  348. package/dist/internal/create-shared-hook.svelte.js +0 -27
  349. package/dist/internal/sleep.d.ts +0 -1
  350. package/dist/internal/sleep.js +0 -3
  351. package/dist/internal/use-after-animations.svelte.d.ts +0 -5
  352. package/dist/internal/use-after-animations.svelte.js +0 -27
  353. package/dist/internal/use-body-scroll-lock.svelte.d.ts +0 -6
  354. package/dist/internal/use-body-scroll-lock.svelte.js +0 -106
  355. package/dist/internal/use-data-typeahead.svelte.d.ts +0 -15
  356. package/dist/internal/use-data-typeahead.svelte.js +0 -34
  357. package/dist/internal/use-dom-typeahead.svelte.d.ts +0 -13
  358. package/dist/internal/use-dom-typeahead.svelte.js +0 -32
  359. package/dist/internal/use-form-control.svelte.d.ts +0 -4
  360. package/dist/internal/use-form-control.svelte.js +0 -16
  361. package/dist/internal/use-resize-observer.svelte.d.ts +0 -2
  362. package/dist/internal/use-resize-observer.svelte.js +0 -17
  363. package/dist/internal/use-state-machine.svelte.d.ts +0 -24
  364. package/dist/internal/use-state-machine.svelte.js +0 -28
  365. package/dist/internal/use-timeout-fn.svelte.d.ts +0 -25
  366. package/dist/internal/use-timeout-fn.svelte.js +0 -39
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { ToggleRootProps } from "../types.js";
4
- import { useToggleRoot } from "../toggle.svelte.js";
4
+ import { ToggleRootState } from "../toggle.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
  import { noop } from "../../../internal/noop.js";
7
7
 
@@ -19,7 +19,7 @@
19
19
  ...restProps
20
20
  }: ToggleRootProps = $props();
21
21
 
22
- const toggleState = useToggleRoot({
22
+ const toggleState = ToggleRootState.create({
23
23
  pressed: box.with(
24
24
  () => pressed,
25
25
  (v) => {
@@ -1,15 +1,17 @@
1
- import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
2
- import type { BitsMouseEvent, WithRefProps } from "../../internal/types.js";
3
- export declare const toggleAttrs: import("../../internal/attrs.js").BitsAttrs<readonly ["root"]>;
4
- type ToggleRootStateProps = WithRefProps<ReadableBoxedValues<{
1
+ import { type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
2
+ import type { BitsMouseEvent, WithRefOpts } from "../../internal/types.js";
3
+ export declare const toggleAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["root"]>;
4
+ interface ToggleRootStateOpts extends WithRefOpts, ReadableBoxedValues<{
5
5
  disabled: boolean;
6
- }> & WritableBoxedValues<{
6
+ }>, WritableBoxedValues<{
7
7
  pressed: boolean;
8
- }>>;
9
- declare class ToggleRootState {
8
+ }> {
9
+ }
10
+ export declare class ToggleRootState {
10
11
  #private;
11
- readonly opts: ToggleRootStateProps;
12
- constructor(opts: ToggleRootStateProps);
12
+ static create(opts: ToggleRootStateOpts): ToggleRootState;
13
+ readonly opts: ToggleRootStateOpts;
14
+ constructor(opts: ToggleRootStateOpts);
13
15
  onclick(_: BitsMouseEvent): void;
14
16
  readonly snippetProps: {
15
17
  pressed: boolean;
@@ -23,6 +25,5 @@ declare class ToggleRootState {
23
25
  readonly onclick: (_: BitsMouseEvent) => void;
24
26
  };
25
27
  }
26
- export declare function useToggleRoot(props: ToggleRootStateProps): ToggleRootState;
27
28
  export declare function getToggleDataState(condition: boolean): "on" | "off";
28
29
  export {};
@@ -4,7 +4,10 @@ export const toggleAttrs = createBitsAttrs({
4
4
  component: "toggle",
5
5
  parts: ["root"],
6
6
  });
7
- class ToggleRootState {
7
+ export class ToggleRootState {
8
+ static create(opts) {
9
+ return new ToggleRootState(opts);
10
+ }
8
11
  opts;
9
12
  constructor(opts) {
10
13
  this.opts = opts;
@@ -34,9 +37,6 @@ class ToggleRootState {
34
37
  ...attachRef(this.opts.ref),
35
38
  }));
36
39
  }
37
- export function useToggleRoot(props) {
38
- return new ToggleRootState(props);
39
- }
40
40
  export function getToggleDataState(condition) {
41
41
  return condition ? "on" : "off";
42
42
  }
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { ToggleGroupItemProps } from "../types.js";
4
- import { useToggleGroupItem } from "../toggle-group.svelte.js";
4
+ import { ToggleGroupItemState } from "../toggle-group.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
  }: ToggleGroupItemProps = $props();
19
19
 
20
- const itemState = useToggleGroupItem({
20
+ const itemState = ToggleGroupItemState.create({
21
21
  id: box.with(() => id),
22
22
  value: box.with(() => value),
23
23
  disabled: box.with(() => disabled ?? false),
@@ -2,7 +2,7 @@
2
2
  import { type WritableBox, box } from "svelte-toolbelt";
3
3
  import { mergeProps } from "svelte-toolbelt";
4
4
  import type { ToggleGroupRootProps } from "../types.js";
5
- import { useToggleGroupRoot } from "../toggle-group.svelte.js";
5
+ import { ToggleGroupRootState } from "../toggle-group.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";
@@ -39,7 +39,7 @@
39
39
  }
40
40
  );
41
41
 
42
- const rootState = useToggleGroupRoot({
42
+ const rootState = ToggleGroupRootState.create({
43
43
  id: box.with(() => id),
44
44
  value: box.with(
45
45
  () => value!,
@@ -1,65 +1,81 @@
1
- import { type WritableBox } from "svelte-toolbelt";
2
- import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
1
+ import { type WritableBox, type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
3
2
  import type { Orientation } from "../../shared/index.js";
4
- import { type UseRovingFocusReturn } from "../../internal/use-roving-focus.svelte.js";
5
- import type { BitsKeyboardEvent, BitsMouseEvent, WithRefProps } from "../../internal/types.js";
6
- export declare const toggleGroupAttrs: import("../../internal/attrs.js").BitsAttrs<readonly ["root", "item"]>;
7
- type ToggleGroupBaseStateProps = 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 toggleGroupAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["root", "item"]>;
6
+ interface ToggleGroupBaseStateOpts extends WithRefOpts, ReadableBoxedValues<{
8
7
  disabled: boolean;
9
8
  rovingFocus: boolean;
10
9
  loop: boolean;
11
10
  orientation: Orientation;
12
- }>>;
13
- declare class ToggleGroupBaseState {
14
- readonly opts: ToggleGroupBaseStateProps;
15
- rovingFocusGroup: UseRovingFocusReturn;
16
- constructor(opts: ToggleGroupBaseStateProps);
17
- props: {
11
+ }> {
12
+ }
13
+ declare abstract class ToggleGroupBaseState {
14
+ readonly opts: ToggleGroupBaseStateOpts;
15
+ readonly rovingFocusGroup: RovingFocusGroup;
16
+ constructor(opts: ToggleGroupBaseStateOpts);
17
+ readonly props: {
18
18
  readonly id: string;
19
19
  readonly role: "group";
20
20
  readonly "data-orientation": "horizontal" | "vertical";
21
21
  readonly "data-disabled": "" | undefined;
22
22
  };
23
23
  }
24
- type ToggleGroupSingleStateProps = ToggleGroupBaseStateProps & WritableBoxedValues<{
24
+ interface ToggleGroupSingleStateOpts extends ToggleGroupBaseStateOpts, WritableBoxedValues<{
25
25
  value: string;
26
- }>;
26
+ }> {
27
+ }
27
28
  declare class ToggleGroupSingleState extends ToggleGroupBaseState {
28
- readonly opts: ToggleGroupSingleStateProps;
29
+ readonly opts: ToggleGroupSingleStateOpts;
29
30
  isMulti: boolean;
30
- anyPressed: boolean;
31
- constructor(opts: ToggleGroupSingleStateProps);
31
+ readonly anyPressed: boolean;
32
+ constructor(opts: ToggleGroupSingleStateOpts);
32
33
  includesItem(item: string): boolean;
33
34
  toggleItem(item: string, id: string): void;
34
35
  }
35
- type ToggleGroupMultipleStateProps = ToggleGroupBaseStateProps & WritableBoxedValues<{
36
+ interface ToggleGroupMultipleStateOpts extends ToggleGroupBaseStateOpts, WritableBoxedValues<{
36
37
  value: string[];
37
- }>;
38
+ }> {
39
+ }
38
40
  declare class ToggleGroupMultipleState extends ToggleGroupBaseState {
39
- readonly opts: ToggleGroupMultipleStateProps;
41
+ readonly opts: ToggleGroupMultipleStateOpts;
40
42
  isMulti: boolean;
41
- anyPressed: boolean;
42
- constructor(opts: ToggleGroupMultipleStateProps);
43
+ readonly anyPressed: boolean;
44
+ constructor(opts: ToggleGroupMultipleStateOpts);
43
45
  includesItem(item: string): boolean;
44
46
  toggleItem(item: string, id: string): void;
45
47
  }
46
- type ToggleGroupState = ToggleGroupSingleState | ToggleGroupMultipleState;
47
- type ToggleGroupItemStateProps = WithRefProps<ReadableBoxedValues<{
48
+ type ToggleGroup = ToggleGroupSingleState | ToggleGroupMultipleState;
49
+ interface ToggleGroupRootOpts extends WithRefOpts, ReadableBoxedValues<{
50
+ disabled: boolean;
51
+ rovingFocus: boolean;
52
+ loop: boolean;
53
+ orientation: Orientation;
54
+ }> {
55
+ type: "single" | "multiple";
56
+ value: WritableBox<string> | WritableBox<string[]>;
57
+ }
58
+ export declare class ToggleGroupRootState {
59
+ static create(opts: ToggleGroupRootOpts): ToggleGroup;
60
+ }
61
+ interface ToggleGroupItemStateOpts extends WithRefOpts, ReadableBoxedValues<{
48
62
  value: string;
49
63
  disabled: boolean;
50
- }>>;
51
- declare class ToggleGroupItemState {
64
+ }> {
65
+ }
66
+ export declare class ToggleGroupItemState {
52
67
  #private;
53
- readonly opts: ToggleGroupItemStateProps;
54
- readonly root: ToggleGroupState;
55
- constructor(opts: ToggleGroupItemStateProps, root: ToggleGroupState);
68
+ static create(opts: ToggleGroupItemStateOpts): ToggleGroupItemState;
69
+ readonly opts: ToggleGroupItemStateOpts;
70
+ readonly root: ToggleGroup;
71
+ readonly isPressed: boolean;
72
+ constructor(opts: ToggleGroupItemStateOpts, root: ToggleGroup);
56
73
  onclick(_: BitsMouseEvent): void;
57
74
  onkeydown(e: BitsKeyboardEvent): void;
58
- isPressed: boolean;
59
- snippetProps: {
75
+ readonly snippetProps: {
60
76
  pressed: boolean;
61
77
  };
62
- props: {
78
+ readonly props: {
63
79
  readonly id: string;
64
80
  readonly role: "radio" | undefined;
65
81
  readonly tabindex: number;
@@ -74,15 +90,4 @@ declare class ToggleGroupItemState {
74
90
  readonly onkeydown: (e: BitsKeyboardEvent) => void;
75
91
  };
76
92
  }
77
- type InitToggleGroupProps = WithRefProps<{
78
- type: "single" | "multiple";
79
- value: WritableBox<string> | WritableBox<string[]>;
80
- } & ReadableBoxedValues<{
81
- disabled: boolean;
82
- rovingFocus: boolean;
83
- loop: boolean;
84
- orientation: Orientation;
85
- }>>;
86
- export declare function useToggleGroupRoot(props: InitToggleGroupProps): ToggleGroupState;
87
- export declare function useToggleGroupItem(props: Omit<ToggleGroupItemStateProps, "rootState">): ToggleGroupItemState;
88
93
  export {};
@@ -1,18 +1,19 @@
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 toggleGroupAttrs = createBitsAttrs({
7
7
  component: "toggle-group",
8
8
  parts: ["root", "item"],
9
9
  });
10
+ const ToggleGroupRootContext = new Context("ToggleGroup.Root");
10
11
  class ToggleGroupBaseState {
11
12
  opts;
12
13
  rovingFocusGroup;
13
14
  constructor(opts) {
14
15
  this.opts = opts;
15
- this.rovingFocusGroup = useRovingFocus({
16
+ this.rovingFocusGroup = new RovingFocusGroup({
16
17
  candidateAttr: toggleGroupAttrs.item,
17
18
  rootNode: opts.ref,
18
19
  loop: opts.loop,
@@ -70,10 +71,29 @@ class ToggleGroupMultipleState extends ToggleGroupBaseState {
70
71
  }
71
72
  }
72
73
  }
73
- class ToggleGroupItemState {
74
+ export class ToggleGroupRootState {
75
+ static create(opts) {
76
+ const { type, ...rest } = opts;
77
+ const rootState = type === "single"
78
+ ? new ToggleGroupSingleState(rest)
79
+ : new ToggleGroupMultipleState(rest);
80
+ return ToggleGroupRootContext.set(rootState);
81
+ }
82
+ }
83
+ export class ToggleGroupItemState {
84
+ static create(opts) {
85
+ return new ToggleGroupItemState(opts, ToggleGroupRootContext.get());
86
+ }
74
87
  opts;
75
88
  root;
76
89
  #isDisabled = $derived.by(() => this.opts.disabled.current || this.root.opts.disabled.current);
90
+ isPressed = $derived.by(() => this.root.includesItem(this.opts.value.current));
91
+ #ariaChecked = $derived.by(() => {
92
+ return this.root.isMulti ? undefined : getAriaChecked(this.isPressed, false);
93
+ });
94
+ #ariaPressed = $derived.by(() => {
95
+ return this.root.isMulti ? getAriaPressed(this.isPressed) : undefined;
96
+ });
77
97
  constructor(opts, root) {
78
98
  this.opts = opts;
79
99
  this.root = root;
@@ -110,13 +130,6 @@ class ToggleGroupItemState {
110
130
  return;
111
131
  this.root.rovingFocusGroup.handleKeydown(this.opts.ref.current, e);
112
132
  }
113
- isPressed = $derived.by(() => this.root.includesItem(this.opts.value.current));
114
- #ariaChecked = $derived.by(() => {
115
- return this.root.isMulti ? undefined : getAriaChecked(this.isPressed, false);
116
- });
117
- #ariaPressed = $derived.by(() => {
118
- return this.root.isMulti ? getAriaPressed(this.isPressed) : undefined;
119
- });
120
133
  #tabIndex = $state(0);
121
134
  snippetProps = $derived.by(() => ({
122
135
  pressed: this.isPressed,
@@ -139,20 +152,6 @@ class ToggleGroupItemState {
139
152
  ...attachRef(this.opts.ref),
140
153
  }));
141
154
  }
142
- //
143
- // HELPERS
144
- //
145
155
  function getToggleItemDataState(condition) {
146
156
  return condition ? "on" : "off";
147
157
  }
148
- const ToggleGroupRootContext = new Context("ToggleGroup.Root");
149
- export function useToggleGroupRoot(props) {
150
- const { type, ...rest } = props;
151
- const rootState = type === "single"
152
- ? new ToggleGroupSingleState(rest)
153
- : new ToggleGroupMultipleState(rest);
154
- return ToggleGroupRootContext.set(rootState);
155
- }
156
- export function useToggleGroupItem(props) {
157
- return new ToggleGroupItemState(props, ToggleGroupRootContext.get());
158
- }
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { ToolbarButtonProps } from "../types.js";
4
- import { useToolbarButton } from "../toolbar.svelte.js";
4
+ import { ToolbarButtonState } 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
  }: ToolbarButtonProps = $props();
18
18
 
19
- const buttonState = useToolbarButton({
19
+ const buttonState = ToolbarButtonState.create({
20
20
  id: box.with(() => id),
21
21
  disabled: box.with(() => disabled ?? false),
22
22
  ref: box.with(
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { ToolbarGroupItemProps } from "../types.js";
4
- import { useToolbarGroupItem } from "../toolbar.svelte.js";
4
+ import { ToolbarGroupItemState } from "../toolbar.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
  }: ToolbarGroupItemProps = $props();
19
19
 
20
- const groupItemState = useToolbarGroupItem({
20
+ const groupItemState = ToolbarGroupItemState.create({
21
21
  id: box.with(() => id),
22
22
  value: box.with(() => value),
23
23
  disabled: box.with(() => disabled ?? false),
@@ -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 {};