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
@@ -4,21 +4,29 @@
4
4
  * Credit to Jenna Smith (@jjenzz) for the original implementation.
5
5
  * Incredible thought must have went into solving all the intricacies of this component.
6
6
  */
7
- import { Context, useDebounce } from "runed";
7
+ import { Context, useDebounce, watch } from "runed";
8
8
  import { untrack } from "svelte";
9
- import { box, executeCallbacks, attachRef, DOMContext, getWindow } from "svelte-toolbelt";
9
+ import { box, executeCallbacks, attachRef, DOMContext, getWindow, } from "svelte-toolbelt";
10
10
  import { addEventListener } from "../../internal/events.js";
11
11
  import { mergeProps, useId } from "../../shared/index.js";
12
- import { useStateMachine } from "../../internal/use-state-machine.svelte.js";
13
12
  import { clamp } from "../../internal/clamp.js";
14
- import { useResizeObserver } from "../../internal/use-resize-observer.svelte.js";
15
13
  import { on } from "svelte/events";
16
14
  import { createBitsAttrs } from "../../internal/attrs.js";
15
+ import { StateMachine } from "../../internal/state-machine.js";
16
+ import { SvelteResizeObserver } from "../../internal/svelte-resize-observer.svelte.js";
17
17
  const scrollAreaAttrs = createBitsAttrs({
18
18
  component: "scroll-area",
19
19
  parts: ["root", "viewport", "corner", "thumb", "scrollbar"],
20
20
  });
21
- class ScrollAreaRootState {
21
+ export const ScrollAreaRootContext = new Context("ScrollArea.Root");
22
+ export const ScrollAreaScrollbarContext = new Context("ScrollArea.Scrollbar");
23
+ export const ScrollAreaScrollbarVisibleContext = new Context("ScrollArea.ScrollbarVisible");
24
+ export const ScrollAreaScrollbarAxisContext = new Context("ScrollArea.ScrollbarAxis");
25
+ export const ScrollAreaScrollbarSharedContext = new Context("ScrollArea.ScrollbarShared");
26
+ export class ScrollAreaRootState {
27
+ static create(opts) {
28
+ return ScrollAreaRootContext.set(new ScrollAreaRootState(opts));
29
+ }
22
30
  opts;
23
31
  scrollAreaNode = $state(null);
24
32
  viewportNode = $state(null);
@@ -46,7 +54,10 @@ class ScrollAreaRootState {
46
54
  ...attachRef(this.opts.ref, (v) => (this.scrollAreaNode = v)),
47
55
  }));
48
56
  }
49
- class ScrollAreaViewportState {
57
+ export class ScrollAreaViewportState {
58
+ static create(opts) {
59
+ return new ScrollAreaViewportState(opts, ScrollAreaRootContext.get());
60
+ }
50
61
  opts;
51
62
  root;
52
63
  #contentId = box(useId());
@@ -78,7 +89,10 @@ class ScrollAreaViewportState {
78
89
  ...attachRef(this.#contentRef, (v) => (this.root.contentNode = v)),
79
90
  }));
80
91
  }
81
- class ScrollAreaScrollbarState {
92
+ export class ScrollAreaScrollbarState {
93
+ static create(opts) {
94
+ return ScrollAreaScrollbarContext.set(new ScrollAreaScrollbarState(opts, ScrollAreaRootContext.get()));
95
+ }
82
96
  opts;
83
97
  root;
84
98
  isHorizontal = $derived.by(() => this.opts.orientation.current === "horizontal");
@@ -86,19 +100,26 @@ class ScrollAreaScrollbarState {
86
100
  constructor(opts, root) {
87
101
  this.opts = opts;
88
102
  this.root = root;
89
- $effect(() => {
90
- this.isHorizontal
91
- ? (this.root.scrollbarXEnabled = true)
92
- : (this.root.scrollbarYEnabled = true);
93
- return () => {
94
- this.isHorizontal
95
- ? (this.root.scrollbarXEnabled = false)
96
- : (this.root.scrollbarYEnabled = false);
97
- };
103
+ watch(() => this.isHorizontal, (isHorizontal) => {
104
+ if (isHorizontal) {
105
+ this.root.scrollbarXEnabled = true;
106
+ return () => {
107
+ this.root.scrollbarXEnabled = false;
108
+ };
109
+ }
110
+ else {
111
+ this.root.scrollbarYEnabled = true;
112
+ return () => {
113
+ this.root.scrollbarYEnabled = false;
114
+ };
115
+ }
98
116
  });
99
117
  }
100
118
  }
101
- class ScrollAreaScrollbarHoverState {
119
+ export class ScrollAreaScrollbarHoverState {
120
+ static create() {
121
+ return new ScrollAreaScrollbarHoverState(ScrollAreaScrollbarContext.get());
122
+ }
102
123
  scrollbar;
103
124
  root;
104
125
  isVisible = $state(false);
@@ -136,10 +157,13 @@ class ScrollAreaScrollbarHoverState {
136
157
  "data-state": this.isVisible ? "visible" : "hidden",
137
158
  }));
138
159
  }
139
- class ScrollAreaScrollbarScrollState {
160
+ export class ScrollAreaScrollbarScrollState {
161
+ static create() {
162
+ return new ScrollAreaScrollbarScrollState(ScrollAreaScrollbarContext.get());
163
+ }
140
164
  scrollbar;
141
165
  root;
142
- machine = useStateMachine("hidden", {
166
+ machine = new StateMachine("hidden", {
143
167
  hidden: {
144
168
  SCROLL: "scrolling",
145
169
  },
@@ -203,7 +227,10 @@ class ScrollAreaScrollbarScrollState {
203
227
  onpointerleave: this.onpointerleave,
204
228
  }));
205
229
  }
206
- class ScrollAreaScrollbarAutoState {
230
+ export class ScrollAreaScrollbarAutoState {
231
+ static create() {
232
+ return new ScrollAreaScrollbarAutoState(ScrollAreaScrollbarContext.get());
233
+ }
207
234
  scrollbar;
208
235
  root;
209
236
  isVisible = $state(false);
@@ -218,14 +245,17 @@ class ScrollAreaScrollbarAutoState {
218
245
  const isOverflowY = viewportNode.offsetHeight < viewportNode.scrollHeight;
219
246
  this.isVisible = this.scrollbar.isHorizontal ? isOverflowX : isOverflowY;
220
247
  }, 10);
221
- useResizeObserver(() => this.root.viewportNode, handleResize);
222
- useResizeObserver(() => this.root.contentNode, handleResize);
248
+ new SvelteResizeObserver(() => this.root.viewportNode, handleResize);
249
+ new SvelteResizeObserver(() => this.root.contentNode, handleResize);
223
250
  }
224
251
  props = $derived.by(() => ({
225
252
  "data-state": this.isVisible ? "visible" : "hidden",
226
253
  }));
227
254
  }
228
- class ScrollAreaScrollbarVisibleState {
255
+ export class ScrollAreaScrollbarVisibleState {
256
+ static create() {
257
+ return ScrollAreaScrollbarVisibleContext.set(new ScrollAreaScrollbarVisibleState(ScrollAreaScrollbarContext.get()));
258
+ }
229
259
  scrollbar;
230
260
  root;
231
261
  thumbNode = $state(null);
@@ -313,12 +343,15 @@ class ScrollAreaScrollbarVisibleState {
313
343
  this.root.viewportNode.scrollTop = this.getScrollPosition(pointerPos, this.root.opts.dir.current);
314
344
  }
315
345
  }
316
- class ScrollAreaScrollbarXState {
346
+ export class ScrollAreaScrollbarXState {
347
+ static create(opts) {
348
+ return ScrollAreaScrollbarAxisContext.set(new ScrollAreaScrollbarXState(opts, ScrollAreaScrollbarVisibleContext.get()));
349
+ }
317
350
  opts;
318
351
  scrollbarVis;
319
352
  root;
320
- computedStyle = $state();
321
353
  scrollbar;
354
+ computedStyle = $state();
322
355
  constructor(opts, scrollbarVis) {
323
356
  this.opts = opts;
324
357
  this.scrollbarVis = scrollbarVis;
@@ -391,7 +424,10 @@ class ScrollAreaScrollbarXState {
391
424
  ...attachRef(this.scrollbar.opts.ref, (v) => (this.root.scrollbarXNode = v)),
392
425
  }));
393
426
  }
394
- class ScrollAreaScrollbarYState {
427
+ export class ScrollAreaScrollbarYState {
428
+ static create(opts) {
429
+ return ScrollAreaScrollbarAxisContext.set(new ScrollAreaScrollbarYState(opts, ScrollAreaScrollbarVisibleContext.get()));
430
+ }
395
431
  opts;
396
432
  scrollbarVis;
397
433
  root;
@@ -472,7 +508,10 @@ class ScrollAreaScrollbarYState {
472
508
  ...attachRef(this.scrollbar.opts.ref, (v) => (this.root.scrollbarYNode = v)),
473
509
  }));
474
510
  }
475
- class ScrollAreaScrollbarSharedState {
511
+ export class ScrollAreaScrollbarSharedState {
512
+ static create() {
513
+ return ScrollAreaScrollbarSharedContext.set(new ScrollAreaScrollbarSharedState(ScrollAreaScrollbarAxisContext.get()));
514
+ }
476
515
  scrollbarState;
477
516
  root;
478
517
  scrollbarVis;
@@ -519,8 +558,8 @@ class ScrollAreaScrollbarSharedState {
519
558
  // $effect.pre(() => {
520
559
  // this.handleThumbPositionChange();
521
560
  // });
522
- useResizeObserver(() => this.scrollbar.opts.ref.current, this.handleResize);
523
- useResizeObserver(() => this.root.contentNode, this.handleResize);
561
+ new SvelteResizeObserver(() => this.scrollbar.opts.ref.current, this.handleResize);
562
+ new SvelteResizeObserver(() => this.root.contentNode, this.handleResize);
524
563
  this.onpointerdown = this.onpointerdown.bind(this);
525
564
  this.onpointermove = this.onpointermove.bind(this);
526
565
  this.onpointerup = this.onpointerup.bind(this);
@@ -571,7 +610,10 @@ class ScrollAreaScrollbarSharedState {
571
610
  onpointerup: this.onpointerup,
572
611
  }));
573
612
  }
574
- class ScrollAreaThumbImplState {
613
+ export class ScrollAreaThumbImplState {
614
+ static create(opts) {
615
+ return new ScrollAreaThumbImplState(opts, ScrollAreaScrollbarSharedContext.get());
616
+ }
575
617
  opts;
576
618
  scrollbarState;
577
619
  #root;
@@ -631,7 +673,10 @@ class ScrollAreaThumbImplState {
631
673
  ...attachRef(this.opts.ref, (v) => (this.scrollbarState.scrollbarVis.thumbNode = v)),
632
674
  }));
633
675
  }
634
- class ScrollAreaCornerImplState {
676
+ export class ScrollAreaCornerImplState {
677
+ static create(opts) {
678
+ return new ScrollAreaCornerImplState(opts, ScrollAreaRootContext.get());
679
+ }
635
680
  opts;
636
681
  root;
637
682
  #width = $state(0);
@@ -640,12 +685,12 @@ class ScrollAreaCornerImplState {
640
685
  constructor(opts, root) {
641
686
  this.opts = opts;
642
687
  this.root = root;
643
- useResizeObserver(() => this.root.scrollbarXNode, () => {
688
+ new SvelteResizeObserver(() => this.root.scrollbarXNode, () => {
644
689
  const height = this.root.scrollbarXNode?.offsetHeight || 0;
645
690
  this.root.cornerHeight = height;
646
691
  this.#height = height;
647
692
  });
648
- useResizeObserver(() => this.root.scrollbarYNode, () => {
693
+ new SvelteResizeObserver(() => this.root.scrollbarYNode, () => {
649
694
  const width = this.root.scrollbarYNode?.offsetWidth || 0;
650
695
  this.root.cornerWidth = width;
651
696
  this.#width = width;
@@ -665,47 +710,6 @@ class ScrollAreaCornerImplState {
665
710
  ...attachRef(this.opts.ref),
666
711
  }));
667
712
  }
668
- export const ScrollAreaRootContext = new Context("ScrollArea.Root");
669
- export const ScrollAreaScrollbarContext = new Context("ScrollArea.Scrollbar");
670
- export const ScrollAreaScrollbarVisibleContext = new Context("ScrollArea.ScrollbarVisible");
671
- export const ScrollAreaScrollbarAxisContext = new Context("ScrollArea.ScrollbarAxis");
672
- export const ScrollAreaScrollbarSharedContext = new Context("ScrollArea.ScrollbarShared");
673
- export function useScrollAreaRoot(props) {
674
- return ScrollAreaRootContext.set(new ScrollAreaRootState(props));
675
- }
676
- export function useScrollAreaViewport(props) {
677
- return new ScrollAreaViewportState(props, ScrollAreaRootContext.get());
678
- }
679
- export function useScrollAreaScrollbar(props) {
680
- return ScrollAreaScrollbarContext.set(new ScrollAreaScrollbarState(props, ScrollAreaRootContext.get()));
681
- }
682
- export function useScrollAreaScrollbarVisible() {
683
- return ScrollAreaScrollbarVisibleContext.set(new ScrollAreaScrollbarVisibleState(ScrollAreaScrollbarContext.get()));
684
- }
685
- export function useScrollAreaScrollbarAuto() {
686
- return new ScrollAreaScrollbarAutoState(ScrollAreaScrollbarContext.get());
687
- }
688
- export function useScrollAreaScrollbarScroll() {
689
- return new ScrollAreaScrollbarScrollState(ScrollAreaScrollbarContext.get());
690
- }
691
- export function useScrollAreaScrollbarHover() {
692
- return new ScrollAreaScrollbarHoverState(ScrollAreaScrollbarContext.get());
693
- }
694
- export function useScrollAreaScrollbarX(props) {
695
- return ScrollAreaScrollbarAxisContext.set(new ScrollAreaScrollbarXState(props, ScrollAreaScrollbarVisibleContext.get()));
696
- }
697
- export function useScrollAreaScrollbarY(props) {
698
- return ScrollAreaScrollbarAxisContext.set(new ScrollAreaScrollbarYState(props, ScrollAreaScrollbarVisibleContext.get()));
699
- }
700
- export function useScrollAreaScrollbarShared() {
701
- return ScrollAreaScrollbarSharedContext.set(new ScrollAreaScrollbarSharedState(ScrollAreaScrollbarAxisContext.get()));
702
- }
703
- export function useScrollAreaThumb(props) {
704
- return new ScrollAreaThumbImplState(props, ScrollAreaScrollbarSharedContext.get());
705
- }
706
- export function useScrollAreaCorner(props) {
707
- return new ScrollAreaCornerImplState(props, ScrollAreaRootContext.get());
708
- }
709
713
  function toInt(value) {
710
714
  return value ? Number.parseInt(value, 10) : 0;
711
715
  }
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { SelectContentStaticProps } from "../types.js";
4
- import { useSelectContent } from "../select.svelte.js";
4
+ import { SelectContentState } from "../select.svelte.js";
5
5
  import PopperLayer from "../../utilities/popper-layer/popper-layer.svelte";
6
6
  import { createId } from "../../../internal/create-id.js";
7
7
  import { noop } from "../../../internal/noop.js";
@@ -21,7 +21,7 @@
21
21
  ...restProps
22
22
  }: SelectContentStaticProps = $props();
23
23
 
24
- const contentState = useSelectContent({
24
+ const contentState = SelectContentState.create({
25
25
  id: box.with(() => id),
26
26
  ref: box.with(
27
27
  () => ref,
@@ -62,7 +62,7 @@
62
62
  {...contentState.popperProps}
63
63
  ref={contentState.opts.ref}
64
64
  isStatic
65
- present={contentState.root.opts.open.current}
65
+ open={contentState.root.opts.open.current}
66
66
  {id}
67
67
  {preventScroll}
68
68
  forceMount={false}
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { SelectContentProps } from "../types.js";
4
- import { useSelectContent } from "../select.svelte.js";
4
+ import { SelectContentState } from "../select.svelte.js";
5
5
  import PopperLayer from "../../utilities/popper-layer/popper-layer.svelte";
6
6
  import { noop } from "../../../internal/noop.js";
7
7
  import PopperLayerForceMount from "../../utilities/popper-layer/popper-layer-force-mount.svelte";
@@ -22,7 +22,7 @@
22
22
  ...restProps
23
23
  }: SelectContentProps = $props();
24
24
 
25
- const contentState = useSelectContent({
25
+ const contentState = SelectContentState.create({
26
26
  id: box.with(() => id),
27
27
  ref: box.with(
28
28
  () => ref,
@@ -65,7 +65,7 @@
65
65
  {...contentState.popperProps}
66
66
  ref={contentState.opts.ref}
67
67
  {side}
68
- present={contentState.root.opts.open.current}
68
+ open={contentState.root.opts.open.current}
69
69
  {id}
70
70
  {preventScroll}
71
71
  forceMount={false}
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { SelectGroupHeadingProps } from "../types.js";
4
- import { useSelectGroupHeading } from "../select.svelte.js";
4
+ import { SelectGroupHeadingState } from "../select.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
7
7
  const uid = $props.id();
@@ -13,7 +13,7 @@
13
13
  ...restProps
14
14
  }: SelectGroupHeadingProps = $props();
15
15
 
16
- const groupHeadingState = useSelectGroupHeading({
16
+ const groupHeadingState = SelectGroupHeadingState.create({
17
17
  id: box.with(() => id),
18
18
  ref: box.with(
19
19
  () => ref,
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
- import { useSelectGroup } from "../select.svelte.js";
3
+ import { SelectGroupState } from "../select.svelte.js";
4
4
  import type { SelectGroupProps } from "../types.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
@@ -14,7 +14,7 @@
14
14
  ...restProps
15
15
  }: SelectGroupProps = $props();
16
16
 
17
- const groupState = useSelectGroup({
17
+ const groupState = SelectGroupState.create({
18
18
  id: box.with(() => id),
19
19
  ref: box.with(
20
20
  () => ref,
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { box } from "svelte-toolbelt";
3
- import { useSelectHiddenInput } from "../select.svelte.js";
3
+ import { SelectHiddenInputState } from "../select.svelte.js";
4
4
  import type { HTMLInputAttributes } from "svelte/elements";
5
5
  import HiddenInput from "../../utilities/hidden-input.svelte";
6
6
 
@@ -9,7 +9,7 @@
9
9
  autocomplete,
10
10
  }: { value?: string } & Omit<HTMLInputAttributes, "value"> = $props();
11
11
 
12
- const hiddenInputState = useSelectHiddenInput({
12
+ const hiddenInputState = SelectHiddenInputState.create({
13
13
  value: box.with(() => value),
14
14
  });
15
15
  </script>
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
- import { useSelectItem } from "../select.svelte.js";
3
+ import { SelectItemState } from "../select.svelte.js";
4
4
  import type { SelectItemProps } from "../types.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
  import { noop } from "../../../internal/noop.js";
@@ -21,7 +21,7 @@
21
21
  ...restProps
22
22
  }: SelectItemProps = $props();
23
23
 
24
- const itemState = useSelectItem({
24
+ const itemState = SelectItemState.create({
25
25
  id: box.with(() => id),
26
26
  ref: box.with(
27
27
  () => ref,
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { SelectScrollDownButtonProps } from "../types.js";
4
- import { useSelectScrollDownButton } from "../select.svelte.js";
4
+ import { SelectScrollDownButtonState } from "../select.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
  import { Mounted } from "../../utilities/index.js";
7
7
 
@@ -16,7 +16,7 @@
16
16
  ...restProps
17
17
  }: SelectScrollDownButtonProps = $props();
18
18
 
19
- const scrollButtonState = useSelectScrollDownButton({
19
+ const scrollButtonState = SelectScrollDownButtonState.create({
20
20
  id: box.with(() => id),
21
21
  ref: box.with(
22
22
  () => ref,
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { SelectScrollUpButtonProps } from "../types.js";
4
- import { useSelectScrollUpButton } from "../select.svelte.js";
4
+ import { SelectScrollUpButtonState } from "../select.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
  import { Mounted } from "../../utilities/index.js";
7
7
 
@@ -16,7 +16,7 @@
16
16
  ...restProps
17
17
  }: SelectScrollUpButtonProps = $props();
18
18
 
19
- const scrollButtonState = useSelectScrollUpButton({
19
+ const scrollButtonState = SelectScrollUpButtonState.create({
20
20
  id: box.with(() => id),
21
21
  ref: box.with(
22
22
  () => ref,
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
- import { useSelectTrigger } from "../select.svelte.js";
3
+ import { SelectTriggerState } from "../select.svelte.js";
4
4
  import type { SelectTriggerProps } from "../types.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
  import { FloatingLayer } from "../../utilities/floating-layer/index.js";
@@ -16,7 +16,7 @@
16
16
  ...restProps
17
17
  }: SelectTriggerProps = $props();
18
18
 
19
- const triggerState = useSelectTrigger({
19
+ const triggerState = SelectTriggerState.create({
20
20
  id: box.with(() => id),
21
21
  ref: box.with(
22
22
  () => ref,
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { SelectViewportProps } from "../types.js";
4
- import { useSelectViewport } from "../select.svelte.js";
4
+ import { SelectViewportState } from "../select.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
  }: SelectViewportProps = $props();
16
16
 
17
- const viewportState = useSelectViewport({
17
+ const viewportState = SelectViewportState.create({
18
18
  id: box.with(() => id),
19
19
  ref: box.with(
20
20
  () => ref,
@@ -2,7 +2,7 @@
2
2
  import FloatingLayer from "../../utilities/floating-layer/components/floating-layer.svelte";
3
3
  import { noop } from "../../../internal/noop.js";
4
4
  import { type WritableBox, box } from "svelte-toolbelt";
5
- import { useSelectRoot } from "../select.svelte.js";
5
+ import { SelectRootState } from "../select.svelte.js";
6
6
  import type { SelectRootProps } from "../types.js";
7
7
  import SelectHiddenInput from "./select-hidden-input.svelte";
8
8
  import { watch } from "runed";
@@ -15,6 +15,7 @@
15
15
  type,
16
16
  open = $bindable(false),
17
17
  onOpenChange = noop,
18
+ onOpenChangeComplete = noop,
18
19
  loop = false,
19
20
  scrollAlignment = "nearest",
20
21
  required = false,
@@ -41,7 +42,7 @@
41
42
 
42
43
  let inputValue = $state("");
43
44
 
44
- const rootState = useSelectRoot({
45
+ const rootState = SelectRootState.create({
45
46
  type,
46
47
  value: box.with(
47
48
  () => value!,
@@ -70,6 +71,7 @@
70
71
  () => inputValue,
71
72
  (v) => (inputValue = v)
72
73
  ),
74
+ onOpenChangeComplete: box.with(() => onOpenChangeComplete),
73
75
  });
74
76
  </script>
75
77