bits-ui 1.8.0 → 2.2.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 (317) hide show
  1. package/dist/bits/accordion/accordion.svelte.d.ts +56 -53
  2. package/dist/bits/accordion/accordion.svelte.js +78 -89
  3. package/dist/bits/accordion/components/accordion-content.svelte +5 -3
  4. package/dist/bits/accordion/components/accordion-header.svelte +4 -2
  5. package/dist/bits/accordion/components/accordion-item.svelte +6 -3
  6. package/dist/bits/accordion/components/accordion-trigger.svelte +4 -2
  7. package/dist/bits/accordion/components/accordion.svelte +4 -2
  8. package/dist/bits/alert-dialog/components/alert-dialog-action.svelte +4 -2
  9. package/dist/bits/alert-dialog/components/alert-dialog-cancel.svelte +4 -2
  10. package/dist/bits/alert-dialog/components/alert-dialog-content.svelte +8 -3
  11. package/dist/bits/aspect-ratio/aspect-ratio.svelte.js +2 -2
  12. package/dist/bits/aspect-ratio/components/aspect-ratio.svelte +4 -2
  13. package/dist/bits/avatar/avatar.svelte.d.ts +2 -1
  14. package/dist/bits/avatar/avatar.svelte.js +8 -6
  15. package/dist/bits/avatar/components/avatar-fallback.svelte +4 -2
  16. package/dist/bits/avatar/components/avatar-image.svelte +4 -2
  17. package/dist/bits/avatar/components/avatar.svelte +4 -2
  18. package/dist/bits/button/components/button.svelte +1 -1
  19. package/dist/bits/calendar/calendar.svelte.d.ts +3 -9
  20. package/dist/bits/calendar/calendar.svelte.js +55 -41
  21. package/dist/bits/calendar/components/calendar-cell.svelte +4 -2
  22. package/dist/bits/calendar/components/calendar-day.svelte +4 -2
  23. package/dist/bits/calendar/components/calendar-grid-body.svelte +4 -2
  24. package/dist/bits/calendar/components/calendar-grid-head.svelte +4 -2
  25. package/dist/bits/calendar/components/calendar-grid-row.svelte +4 -2
  26. package/dist/bits/calendar/components/calendar-grid.svelte +4 -2
  27. package/dist/bits/calendar/components/calendar-head-cell.svelte +4 -2
  28. package/dist/bits/calendar/components/calendar-header.svelte +4 -2
  29. package/dist/bits/calendar/components/calendar-heading.svelte +4 -2
  30. package/dist/bits/calendar/components/calendar-next-button.svelte +4 -2
  31. package/dist/bits/calendar/components/calendar-prev-button.svelte +4 -2
  32. package/dist/bits/checkbox/checkbox.svelte.js +4 -14
  33. package/dist/bits/checkbox/components/checkbox-group-label.svelte +4 -2
  34. package/dist/bits/checkbox/components/checkbox-group.svelte +4 -2
  35. package/dist/bits/checkbox/components/checkbox.svelte +4 -2
  36. package/dist/bits/collapsible/collapsible.svelte.js +4 -10
  37. package/dist/bits/collapsible/components/collapsible-content.svelte +5 -3
  38. package/dist/bits/collapsible/components/collapsible-trigger.svelte +4 -2
  39. package/dist/bits/collapsible/components/collapsible.svelte +4 -2
  40. package/dist/bits/combobox/components/combobox-input.svelte +3 -3
  41. package/dist/bits/combobox/components/combobox.svelte +6 -1
  42. package/dist/bits/combobox/types.d.ts +18 -1
  43. package/dist/bits/command/command.svelte.js +13 -45
  44. package/dist/bits/command/components/_command-label.svelte +6 -7
  45. package/dist/bits/command/components/_command-label.svelte.d.ts +1 -1
  46. package/dist/bits/command/components/command-empty.svelte +4 -2
  47. package/dist/bits/command/components/command-group-heading.svelte +4 -2
  48. package/dist/bits/command/components/command-group-items.svelte +4 -2
  49. package/dist/bits/command/components/command-group.svelte +4 -2
  50. package/dist/bits/command/components/command-input.svelte +4 -2
  51. package/dist/bits/command/components/command-item.svelte +4 -2
  52. package/dist/bits/command/components/command-link-item.svelte +4 -2
  53. package/dist/bits/command/components/command-list.svelte +4 -2
  54. package/dist/bits/command/components/command-loading.svelte +4 -2
  55. package/dist/bits/command/components/command-separator.svelte +4 -2
  56. package/dist/bits/command/components/command-viewport.svelte +4 -2
  57. package/dist/bits/command/components/command.svelte +4 -2
  58. package/dist/bits/context-menu/components/context-menu-content-static.svelte +2 -3
  59. package/dist/bits/context-menu/components/context-menu-content.svelte +2 -3
  60. package/dist/bits/context-menu/components/context-menu-trigger.svelte +1 -1
  61. package/dist/bits/date-field/components/date-field-input.svelte +4 -2
  62. package/dist/bits/date-field/components/date-field-label.svelte +4 -2
  63. package/dist/bits/date-field/components/date-field-segment.svelte +4 -2
  64. package/dist/bits/date-field/date-field.svelte.d.ts +7 -5
  65. package/dist/bits/date-field/date-field.svelte.js +29 -38
  66. package/dist/bits/date-picker/components/date-picker-calendar.svelte +4 -2
  67. package/dist/bits/date-range-field/components/date-range-field-input.svelte +4 -2
  68. package/dist/bits/date-range-field/components/date-range-field-label.svelte +4 -2
  69. package/dist/bits/date-range-field/components/date-range-field.svelte +4 -2
  70. package/dist/bits/date-range-field/date-range-field.svelte.d.ts +2 -0
  71. package/dist/bits/date-range-field/date-range-field.svelte.js +6 -14
  72. package/dist/bits/date-range-picker/components/date-range-picker-calendar.svelte +4 -2
  73. package/dist/bits/dialog/components/dialog-close.svelte +4 -2
  74. package/dist/bits/dialog/components/dialog-content.svelte +8 -2
  75. package/dist/bits/dialog/components/dialog-description.svelte +4 -2
  76. package/dist/bits/dialog/components/dialog-overlay.svelte +8 -3
  77. package/dist/bits/dialog/components/dialog-title.svelte +4 -2
  78. package/dist/bits/dialog/components/dialog-trigger.svelte +4 -2
  79. package/dist/bits/dialog/dialog.svelte.d.ts +1 -1
  80. package/dist/bits/dialog/dialog.svelte.js +19 -47
  81. package/dist/bits/dropdown-menu/components/dropdown-menu-content-static.svelte +6 -5
  82. package/dist/bits/dropdown-menu/components/dropdown-menu-content.svelte +6 -5
  83. package/dist/bits/index.d.ts +2 -0
  84. package/dist/bits/index.js +2 -0
  85. package/dist/bits/label/components/label.svelte +4 -2
  86. package/dist/bits/label/label.svelte.js +2 -2
  87. package/dist/bits/link-preview/components/link-preview-content-static.svelte +6 -2
  88. package/dist/bits/link-preview/components/link-preview-content.svelte +6 -2
  89. package/dist/bits/link-preview/components/link-preview-trigger.svelte +5 -3
  90. package/dist/bits/link-preview/link-preview.svelte.d.ts +2 -0
  91. package/dist/bits/link-preview/link-preview.svelte.js +13 -19
  92. package/dist/bits/menu/components/menu-checkbox-group.svelte +4 -2
  93. package/dist/bits/menu/components/menu-checkbox-item.svelte +6 -4
  94. package/dist/bits/menu/components/menu-content-static.svelte +6 -5
  95. package/dist/bits/menu/components/menu-content.svelte +6 -5
  96. package/dist/bits/menu/components/menu-group-heading.svelte +4 -2
  97. package/dist/bits/menu/components/menu-group.svelte +4 -2
  98. package/dist/bits/menu/components/menu-item.svelte +4 -2
  99. package/dist/bits/menu/components/menu-radio-group.svelte +4 -2
  100. package/dist/bits/menu/components/menu-radio-item.svelte +4 -2
  101. package/dist/bits/menu/components/menu-separator.svelte +4 -2
  102. package/dist/bits/menu/components/menu-sub-content-static.svelte +6 -5
  103. package/dist/bits/menu/components/menu-sub-content.svelte +6 -5
  104. package/dist/bits/menu/components/menu-sub-trigger.svelte +6 -3
  105. package/dist/bits/menu/components/menu-trigger.svelte +5 -3
  106. package/dist/bits/menu/menu.svelte.d.ts +9 -20
  107. package/dist/bits/menu/menu.svelte.js +40 -63
  108. package/dist/bits/menubar/components/menubar-content-static.svelte +4 -2
  109. package/dist/bits/menubar/components/menubar-content.svelte +4 -2
  110. package/dist/bits/menubar/components/menubar-menu.svelte +4 -2
  111. package/dist/bits/menubar/components/menubar-trigger.svelte +14 -6
  112. package/dist/bits/menubar/components/menubar.svelte +4 -2
  113. package/dist/bits/menubar/menubar.svelte.d.ts +24 -20
  114. package/dist/bits/menubar/menubar.svelte.js +40 -56
  115. package/dist/bits/meter/components/meter.svelte +4 -2
  116. package/dist/bits/meter/meter.svelte.js +2 -2
  117. package/dist/bits/navigation-menu/components/navigation-menu-content-impl.svelte +5 -2
  118. package/dist/bits/navigation-menu/components/navigation-menu-content.svelte +8 -3
  119. package/dist/bits/navigation-menu/components/navigation-menu-indicator-impl.svelte +4 -2
  120. package/dist/bits/navigation-menu/components/navigation-menu-indicator.svelte +6 -4
  121. package/dist/bits/navigation-menu/components/navigation-menu-item.svelte +6 -3
  122. package/dist/bits/navigation-menu/components/navigation-menu-link.svelte +4 -2
  123. package/dist/bits/navigation-menu/components/navigation-menu-list.svelte +4 -2
  124. package/dist/bits/navigation-menu/components/navigation-menu-sub.svelte +4 -2
  125. package/dist/bits/navigation-menu/components/navigation-menu-trigger.svelte +4 -2
  126. package/dist/bits/navigation-menu/components/navigation-menu-viewport.svelte +5 -3
  127. package/dist/bits/navigation-menu/components/navigation-menu.svelte +4 -2
  128. package/dist/bits/navigation-menu/navigation-menu.svelte.d.ts +3 -1
  129. package/dist/bits/navigation-menu/navigation-menu.svelte.js +33 -60
  130. package/dist/bits/pagination/components/pagination-next-button.svelte +4 -2
  131. package/dist/bits/pagination/components/pagination-page.svelte +4 -2
  132. package/dist/bits/pagination/components/pagination-prev-button.svelte +4 -2
  133. package/dist/bits/pagination/components/pagination.svelte +4 -2
  134. package/dist/bits/pagination/pagination.svelte.js +4 -4
  135. package/dist/bits/pin-input/components/pin-input-cell.svelte +4 -2
  136. package/dist/bits/pin-input/components/pin-input.svelte +5 -3
  137. package/dist/bits/pin-input/pin-input.svelte.d.ts +4 -2
  138. package/dist/bits/pin-input/pin-input.svelte.js +20 -22
  139. package/dist/bits/pin-input/usePasswordManager.svelte.d.ts +3 -2
  140. package/dist/bits/pin-input/usePasswordManager.svelte.js +6 -5
  141. package/dist/bits/popover/components/popover-close.svelte +4 -2
  142. package/dist/bits/popover/components/popover-content-static.svelte +6 -2
  143. package/dist/bits/popover/components/popover-content.svelte +6 -2
  144. package/dist/bits/popover/components/popover-trigger.svelte +5 -3
  145. package/dist/bits/popover/popover.svelte.js +4 -18
  146. package/dist/bits/progress/components/progress.svelte +4 -2
  147. package/dist/bits/progress/progress.svelte.js +2 -2
  148. package/dist/bits/radio-group/components/radio-group-item.svelte +4 -2
  149. package/dist/bits/radio-group/components/radio-group.svelte +4 -2
  150. package/dist/bits/radio-group/radio-group.svelte.js +4 -7
  151. package/dist/bits/range-calendar/components/range-calendar-cell.svelte +4 -2
  152. package/dist/bits/range-calendar/components/range-calendar-day.svelte +4 -2
  153. package/dist/bits/range-calendar/components/range-calendar.svelte +4 -2
  154. package/dist/bits/range-calendar/range-calendar.svelte.d.ts +2 -0
  155. package/dist/bits/range-calendar/range-calendar.svelte.js +12 -6
  156. package/dist/bits/scroll-area/components/scroll-area-corner.svelte +8 -2
  157. package/dist/bits/scroll-area/components/scroll-area-scrollbar-auto.svelte +4 -1
  158. package/dist/bits/scroll-area/components/scroll-area-scrollbar-hover.svelte +1 -1
  159. package/dist/bits/scroll-area/components/scroll-area-scrollbar-scroll.svelte +5 -1
  160. package/dist/bits/scroll-area/components/scroll-area-scrollbar.svelte +4 -2
  161. package/dist/bits/scroll-area/components/scroll-area-thumb.svelte +8 -3
  162. package/dist/bits/scroll-area/components/scroll-area-viewport.svelte +4 -2
  163. package/dist/bits/scroll-area/components/scroll-area.svelte +4 -2
  164. package/dist/bits/scroll-area/scroll-area.svelte.d.ts +2 -0
  165. package/dist/bits/scroll-area/scroll-area.svelte.js +27 -58
  166. package/dist/bits/select/components/select-content-static.svelte +6 -2
  167. package/dist/bits/select/components/select-content.svelte +6 -2
  168. package/dist/bits/select/components/select-group-heading.svelte +3 -2
  169. package/dist/bits/select/components/select-group.svelte +4 -2
  170. package/dist/bits/select/components/select-item.svelte +4 -2
  171. package/dist/bits/select/components/select-scroll-down-button.svelte +4 -2
  172. package/dist/bits/select/components/select-scroll-up-button.svelte +4 -2
  173. package/dist/bits/select/components/select-trigger.svelte +5 -3
  174. package/dist/bits/select/components/select-viewport.svelte +4 -2
  175. package/dist/bits/select/components/select.svelte +7 -1
  176. package/dist/bits/select/select.svelte.d.ts +5 -19
  177. package/dist/bits/select/select.svelte.js +43 -60
  178. package/dist/bits/separator/components/separator.svelte +4 -2
  179. package/dist/bits/separator/separator.svelte.js +2 -2
  180. package/dist/bits/slider/components/slider-range.svelte +4 -2
  181. package/dist/bits/slider/components/slider-thumb-label.svelte +50 -0
  182. package/dist/bits/slider/components/slider-thumb-label.svelte.d.ts +4 -0
  183. package/dist/bits/slider/components/slider-thumb.svelte +4 -2
  184. package/dist/bits/slider/components/slider-tick-label.svelte +50 -0
  185. package/dist/bits/slider/components/slider-tick-label.svelte.d.ts +4 -0
  186. package/dist/bits/slider/components/slider-tick.svelte +4 -2
  187. package/dist/bits/slider/components/slider.svelte +24 -5
  188. package/dist/bits/slider/exports.d.ts +3 -1
  189. package/dist/bits/slider/exports.js +2 -0
  190. package/dist/bits/slider/helpers.d.ts +14 -0
  191. package/dist/bits/slider/helpers.js +122 -0
  192. package/dist/bits/slider/slider.svelte.d.ts +91 -5
  193. package/dist/bits/slider/slider.svelte.js +194 -101
  194. package/dist/bits/slider/types.d.ts +105 -11
  195. package/dist/bits/switch/components/switch-thumb.svelte +4 -2
  196. package/dist/bits/switch/components/switch.svelte +4 -2
  197. package/dist/bits/switch/switch.svelte.js +3 -3
  198. package/dist/bits/tabs/components/tabs-content.svelte +4 -2
  199. package/dist/bits/tabs/components/tabs-list.svelte +4 -2
  200. package/dist/bits/tabs/components/tabs-trigger.svelte +4 -2
  201. package/dist/bits/tabs/components/tabs.svelte +4 -2
  202. package/dist/bits/tabs/tabs.svelte.js +6 -6
  203. package/dist/bits/time-field/components/time-field-hidden-input.svelte +10 -0
  204. package/dist/bits/{date-field/components/date-field-error.svelte.d.ts → time-field/components/time-field-hidden-input.svelte.d.ts} +6 -14
  205. package/dist/bits/time-field/components/time-field-input.svelte +39 -0
  206. package/dist/bits/time-field/components/time-field-input.svelte.d.ts +4 -0
  207. package/dist/bits/time-field/components/time-field-label.svelte +34 -0
  208. package/dist/bits/time-field/components/time-field-label.svelte.d.ts +4 -0
  209. package/dist/bits/time-field/components/time-field-segment.svelte +37 -0
  210. package/dist/bits/time-field/components/time-field-segment.svelte.d.ts +4 -0
  211. package/dist/bits/time-field/components/time-field.svelte +94 -0
  212. package/dist/bits/time-field/components/time-field.svelte.d.ts +20 -0
  213. package/dist/bits/time-field/exports.d.ts +5 -0
  214. package/dist/bits/time-field/exports.js +4 -0
  215. package/dist/bits/time-field/index.d.ts +1 -0
  216. package/dist/bits/time-field/index.js +1 -0
  217. package/dist/bits/time-field/time-field.svelte.d.ts +417 -0
  218. package/dist/bits/time-field/time-field.svelte.js +980 -0
  219. package/dist/bits/time-field/types.d.ts +137 -0
  220. package/dist/bits/time-field/types.js +1 -0
  221. package/dist/bits/time-range-field/components/time-range-field-input.svelte +43 -0
  222. package/dist/bits/time-range-field/components/time-range-field-input.svelte.d.ts +4 -0
  223. package/dist/bits/time-range-field/components/time-range-field-label.svelte +34 -0
  224. package/dist/bits/time-range-field/components/time-range-field-label.svelte.d.ts +4 -0
  225. package/dist/bits/time-range-field/components/time-range-field.svelte +144 -0
  226. package/dist/bits/time-range-field/components/time-range-field.svelte.d.ts +20 -0
  227. package/dist/bits/time-range-field/exports.d.ts +5 -0
  228. package/dist/bits/time-range-field/exports.js +4 -0
  229. package/dist/bits/time-range-field/index.d.ts +1 -0
  230. package/dist/bits/time-range-field/index.js +1 -0
  231. package/dist/bits/time-range-field/time-range-field.svelte.d.ts +92 -0
  232. package/dist/bits/time-range-field/time-range-field.svelte.js +212 -0
  233. package/dist/bits/time-range-field/types.d.ts +150 -0
  234. package/dist/bits/time-range-field/types.js +1 -0
  235. package/dist/bits/toggle/components/toggle.svelte +4 -2
  236. package/dist/bits/toggle/toggle.svelte.js +2 -2
  237. package/dist/bits/toggle-group/components/toggle-group-item.svelte +4 -2
  238. package/dist/bits/toggle-group/components/toggle-group.svelte +4 -2
  239. package/dist/bits/toggle-group/toggle-group.svelte.js +4 -4
  240. package/dist/bits/toolbar/components/toolbar-button.svelte +4 -2
  241. package/dist/bits/toolbar/components/toolbar-group-item.svelte +4 -2
  242. package/dist/bits/toolbar/components/toolbar-group.svelte +4 -2
  243. package/dist/bits/toolbar/components/toolbar-link.svelte +4 -2
  244. package/dist/bits/toolbar/components/toolbar.svelte +4 -2
  245. package/dist/bits/toolbar/toolbar.svelte.js +7 -7
  246. package/dist/bits/tooltip/components/tooltip-content-static.svelte +6 -2
  247. package/dist/bits/tooltip/components/tooltip-content.svelte +6 -2
  248. package/dist/bits/tooltip/components/tooltip-trigger.svelte +5 -3
  249. package/dist/bits/tooltip/tooltip.svelte.d.ts +2 -0
  250. package/dist/bits/tooltip/tooltip.svelte.js +6 -15
  251. package/dist/bits/utilities/dismissible-layer/dismissible-layer.svelte +2 -0
  252. package/dist/bits/utilities/dismissible-layer/types.d.ts +2 -0
  253. package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.d.ts +3 -3
  254. package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.js +16 -25
  255. package/dist/bits/utilities/floating-layer/components/floating-layer-anchor.svelte +2 -1
  256. package/dist/bits/utilities/floating-layer/types.d.ts +1 -0
  257. package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.d.ts +3 -2
  258. package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.js +7 -27
  259. package/dist/bits/utilities/focus-scope/focus-scope.svelte +2 -0
  260. package/dist/bits/utilities/focus-scope/types.d.ts +2 -0
  261. package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.d.ts +2 -1
  262. package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.js +15 -16
  263. package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte +4 -0
  264. package/dist/bits/utilities/popper-layer/popper-layer.svelte +3 -1
  265. package/dist/bits/utilities/portal/types.d.ts +1 -1
  266. package/dist/bits/utilities/presence-layer/presence-layer.svelte +2 -2
  267. package/dist/bits/utilities/presence-layer/types.d.ts +2 -1
  268. package/dist/bits/utilities/presence-layer/use-presence.svelte.d.ts +1 -1
  269. package/dist/bits/utilities/presence-layer/use-presence.svelte.js +19 -36
  270. package/dist/bits/utilities/text-selection-layer/text-selection-layer.svelte +2 -0
  271. package/dist/bits/utilities/text-selection-layer/types.d.ts +2 -0
  272. package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.d.ts +5 -1
  273. package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.js +8 -14
  274. package/dist/index.d.ts +1 -1
  275. package/dist/index.js +1 -1
  276. package/dist/internal/box-auto-reset.svelte.d.ts +7 -1
  277. package/dist/internal/box-auto-reset.svelte.js +11 -6
  278. package/dist/internal/create-id.d.ts +8 -0
  279. package/dist/internal/create-id.js +5 -0
  280. package/dist/internal/date-time/announcer.d.ts +1 -1
  281. package/dist/internal/date-time/announcer.js +20 -20
  282. package/dist/internal/date-time/calendar-helpers.svelte.js +7 -5
  283. package/dist/internal/date-time/field/helpers.d.ts +9 -2
  284. package/dist/internal/date-time/field/helpers.js +16 -9
  285. package/dist/internal/date-time/field/parts.d.ts +3 -1
  286. package/dist/internal/date-time/field/parts.js +10 -2
  287. package/dist/internal/date-time/field/segments.d.ts +9 -0
  288. package/dist/internal/date-time/field/segments.js +65 -0
  289. package/dist/internal/date-time/field/time-helpers.d.ts +83 -0
  290. package/dist/internal/date-time/field/time-helpers.js +301 -0
  291. package/dist/internal/date-time/field/types.d.ts +2 -2
  292. package/dist/internal/date-time/formatter.d.ts +11 -1
  293. package/dist/internal/date-time/formatter.js +56 -0
  294. package/dist/internal/date-time/utils.d.ts +7 -2
  295. package/dist/internal/date-time/utils.js +15 -1
  296. package/dist/internal/dom.d.ts +0 -1
  297. package/dist/internal/dom.js +0 -3
  298. package/dist/internal/focus.d.ts +2 -2
  299. package/dist/internal/focus.js +14 -9
  300. package/dist/internal/math.d.ts +0 -4
  301. package/dist/internal/math.js +0 -28
  302. package/dist/internal/tabbable.d.ts +0 -2
  303. package/dist/internal/tabbable.js +10 -14
  304. package/dist/internal/use-data-typeahead.svelte.d.ts +1 -0
  305. package/dist/internal/use-data-typeahead.svelte.js +4 -1
  306. package/dist/internal/use-dom-typeahead.svelte.d.ts +3 -1
  307. package/dist/internal/use-dom-typeahead.svelte.js +5 -2
  308. package/dist/internal/use-grace-area.svelte.js +9 -5
  309. package/dist/internal/use-roving-focus.svelte.d.ts +3 -3
  310. package/dist/internal/use-roving-focus.svelte.js +10 -11
  311. package/dist/shared/date/types.d.ts +27 -4
  312. package/dist/shared/index.d.ts +2 -2
  313. package/dist/types.d.ts +2 -0
  314. package/package.json +18 -16
  315. package/dist/bits/date-field/components/date-field-error.svelte +0 -0
  316. package/dist/internal/use-size.svelte.d.ts +0 -7
  317. package/dist/internal/use-size.svelte.js +0 -54
@@ -2,12 +2,14 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { PopoverCloseProps } from "../types.js";
4
4
  import { usePopoverClose } from "../popover.svelte.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
+
7
+ const uid = $props.id();
6
8
 
7
9
  let {
8
10
  child,
9
11
  children,
10
- id = useId(),
12
+ id = createId(uid),
11
13
  ref = $bindable(null),
12
14
  ...restProps
13
15
  }: PopoverCloseProps = $props();
@@ -4,15 +4,17 @@
4
4
  import { usePopoverContent } from "../popover.svelte.js";
5
5
  import PopperLayer from "../../utilities/popper-layer/popper-layer.svelte";
6
6
  import { noop } from "../../../internal/noop.js";
7
- import { useId } from "../../../internal/use-id.js";
7
+ import { createId } from "../../../internal/create-id.js";
8
8
  import { getFloatingContentCSSVars } from "../../../internal/floating-svelte/floating-utils.svelte.js";
9
9
  import PopperLayerForceMount from "../../utilities/popper-layer/popper-layer-force-mount.svelte";
10
10
 
11
+ const uid = $props.id();
12
+
11
13
  let {
12
14
  child,
13
15
  children,
14
16
  ref = $bindable(null),
15
- id = useId(),
17
+ id = createId(uid),
16
18
  forceMount = false,
17
19
  onCloseAutoFocus = noop,
18
20
  onEscapeKeydown = noop,
@@ -40,6 +42,7 @@
40
42
  <PopperLayerForceMount
41
43
  {...mergedProps}
42
44
  {...contentState.popperProps}
45
+ ref={contentState.opts.ref}
43
46
  isStatic
44
47
  enabled={contentState.root.opts.open.current}
45
48
  {id}
@@ -65,6 +68,7 @@
65
68
  <PopperLayer
66
69
  {...mergedProps}
67
70
  {...contentState.popperProps}
71
+ ref={contentState.opts.ref}
68
72
  isStatic
69
73
  present={contentState.root.opts.open.current}
70
74
  {id}
@@ -4,15 +4,17 @@
4
4
  import { usePopoverContent } from "../popover.svelte.js";
5
5
  import PopperLayer from "../../utilities/popper-layer/popper-layer.svelte";
6
6
  import { noop } from "../../../internal/noop.js";
7
- import { useId } from "../../../internal/use-id.js";
7
+ import { createId } from "../../../internal/create-id.js";
8
8
  import { getFloatingContentCSSVars } from "../../../internal/floating-svelte/floating-utils.svelte.js";
9
9
  import PopperLayerForceMount from "../../utilities/popper-layer/popper-layer-force-mount.svelte";
10
10
 
11
+ const uid = $props.id();
12
+
11
13
  let {
12
14
  child,
13
15
  children,
14
16
  ref = $bindable(null),
15
- id = useId(),
17
+ id = createId(uid),
16
18
  forceMount = false,
17
19
  onCloseAutoFocus = noop,
18
20
  onEscapeKeydown = noop,
@@ -40,6 +42,7 @@
40
42
  <PopperLayerForceMount
41
43
  {...mergedProps}
42
44
  {...contentState.popperProps}
45
+ ref={contentState.opts.ref}
43
46
  enabled={contentState.root.opts.open.current}
44
47
  {id}
45
48
  {trapFocus}
@@ -66,6 +69,7 @@
66
69
  <PopperLayer
67
70
  {...mergedProps}
68
71
  {...contentState.popperProps}
72
+ ref={contentState.opts.ref}
69
73
  present={contentState.root.opts.open.current}
70
74
  {id}
71
75
  {trapFocus}
@@ -2,13 +2,15 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { PopoverTriggerProps } from "../types.js";
4
4
  import { usePopoverTrigger } from "../popover.svelte.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
6
  import FloatingLayerAnchor from "../../utilities/floating-layer/components/floating-layer-anchor.svelte";
7
7
 
8
+ const uid = $props.id();
9
+
8
10
  let {
9
11
  children,
10
12
  child,
11
- id = useId(),
13
+ id = createId(uid),
12
14
  ref = $bindable(null),
13
15
  type = "button",
14
16
  disabled = false,
@@ -27,7 +29,7 @@
27
29
  const mergedProps = $derived(mergeProps(restProps, triggerState.props, { type }));
28
30
  </script>
29
31
 
30
- <FloatingLayerAnchor {id}>
32
+ <FloatingLayerAnchor {id} ref={triggerState.opts.ref}>
31
33
  {#if child}
32
34
  {@render child({ props: mergedProps })}
33
35
  {:else}
@@ -1,4 +1,4 @@
1
- import { useRefById } from "svelte-toolbelt";
1
+ import { attachRef } from "svelte-toolbelt";
2
2
  import { Context } from "runed";
3
3
  import { kbd } from "../../internal/kbd.js";
4
4
  import { getAriaExpanded, getDataOpenClosed } from "../../internal/attrs.js";
@@ -25,12 +25,6 @@ class PopoverTriggerState {
25
25
  constructor(opts, root) {
26
26
  this.opts = opts;
27
27
  this.root = root;
28
- useRefById({
29
- ...opts,
30
- onRefChange: (node) => {
31
- this.root.triggerNode = node;
32
- },
33
- });
34
28
  this.onclick = this.onclick.bind(this);
35
29
  this.onkeydown = this.onkeydown.bind(this);
36
30
  }
@@ -66,6 +60,7 @@ class PopoverTriggerState {
66
60
  //
67
61
  onkeydown: this.onkeydown,
68
62
  onclick: this.onclick,
63
+ ...attachRef(this.opts.ref, (v) => (this.root.triggerNode = v)),
69
64
  }));
70
65
  }
71
66
  class PopoverContentState {
@@ -74,13 +69,6 @@ class PopoverContentState {
74
69
  constructor(opts, root) {
75
70
  this.opts = opts;
76
71
  this.root = root;
77
- useRefById({
78
- ...opts,
79
- deps: () => this.root.opts.open.current,
80
- onRefChange: (node) => {
81
- this.root.contentNode = node;
82
- },
83
- });
84
72
  }
85
73
  onInteractOutside = (e) => {
86
74
  this.opts.onInteractOutside.current(e);
@@ -115,6 +103,7 @@ class PopoverContentState {
115
103
  style: {
116
104
  pointerEvents: "auto",
117
105
  },
106
+ ...attachRef(this.opts.ref, (v) => (this.root.contentNode = v)),
118
107
  }));
119
108
  popperProps = {
120
109
  onInteractOutside: this.onInteractOutside,
@@ -128,10 +117,6 @@ class PopoverCloseState {
128
117
  constructor(opts, root) {
129
118
  this.opts = opts;
130
119
  this.root = root;
131
- useRefById({
132
- ...opts,
133
- deps: () => this.root.opts.open.current,
134
- });
135
120
  this.onclick = this.onclick.bind(this);
136
121
  this.onkeydown = this.onkeydown.bind(this);
137
122
  }
@@ -150,6 +135,7 @@ class PopoverCloseState {
150
135
  onkeydown: this.onkeydown,
151
136
  type: "button",
152
137
  "data-popover-close": "",
138
+ ...attachRef(this.opts.ref),
153
139
  }));
154
140
  }
155
141
  //
@@ -2,7 +2,9 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { ProgressRootProps } from "../types.js";
4
4
  import { useProgressRootState } from "../progress.svelte.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
+
7
+ const uid = $props.id();
6
8
 
7
9
  let {
8
10
  child,
@@ -10,7 +12,7 @@
10
12
  value = 0,
11
13
  max = 100,
12
14
  min = 0,
13
- id = useId(),
15
+ id = createId(uid),
14
16
  ref = $bindable(null),
15
17
  ...restProps
16
18
  }: ProgressRootProps = $props();
@@ -1,10 +1,9 @@
1
- import { useRefById } from "svelte-toolbelt";
1
+ import { attachRef } from "svelte-toolbelt";
2
2
  const ROOT_ATTR = "data-progress-root";
3
3
  class ProgressRootState {
4
4
  opts;
5
5
  constructor(opts) {
6
6
  this.opts = opts;
7
- useRefById(opts);
8
7
  }
9
8
  props = $derived.by(() => ({
10
9
  role: "progressbar",
@@ -18,6 +17,7 @@ class ProgressRootState {
18
17
  "data-min": this.opts.min.current,
19
18
  "data-indeterminate": this.opts.value.current === null ? "" : undefined,
20
19
  [ROOT_ATTR]: "",
20
+ ...attachRef(this.opts.ref),
21
21
  }));
22
22
  }
23
23
  function getProgressDataState(value, max) {
@@ -2,10 +2,12 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { RadioGroupItemProps } from "../types.js";
4
4
  import { useRadioGroupItem } from "../radio-group.svelte.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
+
7
+ const uid = $props.id();
6
8
 
7
9
  let {
8
- id = useId(),
10
+ id = createId(uid),
9
11
  children,
10
12
  child,
11
13
  value,
@@ -3,9 +3,11 @@
3
3
  import type { RadioGroupRootProps } from "../types.js";
4
4
  import { useRadioGroupRoot } from "../radio-group.svelte.js";
5
5
  import RadioGroupInput from "./radio-group-input.svelte";
6
- import { useId } from "../../../internal/use-id.js";
6
+ import { createId } from "../../../internal/create-id.js";
7
7
  import { noop } from "../../../internal/noop.js";
8
8
 
9
+ const uid = $props.id();
10
+
9
11
  let {
10
12
  disabled = false,
11
13
  children,
@@ -16,7 +18,7 @@
16
18
  loop = true,
17
19
  name = undefined,
18
20
  required = false,
19
- id = useId(),
21
+ id = createId(uid),
20
22
  onValueChange = noop,
21
23
  ...restProps
22
24
  }: RadioGroupRootProps = $props();
@@ -1,4 +1,4 @@
1
- import { useRefById } from "svelte-toolbelt";
1
+ import { attachRef } from "svelte-toolbelt";
2
2
  import { Context, watch } from "runed";
3
3
  import { getAriaChecked, getAriaRequired, getDataDisabled } from "../../internal/attrs.js";
4
4
  import { useRovingFocus, } from "../../internal/use-roving-focus.svelte.js";
@@ -12,15 +12,11 @@ class RadioGroupRootState {
12
12
  constructor(opts) {
13
13
  this.opts = opts;
14
14
  this.rovingFocusGroup = useRovingFocus({
15
- rootNodeId: this.opts.id,
15
+ rootNode: this.opts.ref,
16
16
  candidateAttr: RADIO_GROUP_ITEM_ATTR,
17
17
  loop: this.opts.loop,
18
18
  orientation: this.opts.orientation,
19
19
  });
20
- useRefById({
21
- id: this.opts.id,
22
- ref: this.opts.ref,
23
- });
24
20
  }
25
21
  isChecked(value) {
26
22
  return this.opts.value.current === value;
@@ -35,6 +31,7 @@ class RadioGroupRootState {
35
31
  "data-disabled": getDataDisabled(this.opts.disabled.current),
36
32
  "data-orientation": this.opts.orientation.current,
37
33
  [RADIO_GROUP_ROOT_ATTR]: "",
34
+ ...attachRef(this.opts.ref),
38
35
  }));
39
36
  }
40
37
  class RadioGroupItemState {
@@ -47,7 +44,6 @@ class RadioGroupItemState {
47
44
  constructor(opts, root) {
48
45
  this.opts = opts;
49
46
  this.root = root;
50
- useRefById(opts);
51
47
  if (this.opts.value.current === this.root.opts.value.current) {
52
48
  this.root.rovingFocusGroup.setCurrentTabStopId(this.opts.id.current);
53
49
  this.#tabIndex = 0;
@@ -105,6 +101,7 @@ class RadioGroupItemState {
105
101
  onkeydown: this.onkeydown,
106
102
  onfocus: this.onfocus,
107
103
  onclick: this.onclick,
104
+ ...attachRef(this.opts.ref),
108
105
  }));
109
106
  }
110
107
  //
@@ -2,12 +2,14 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { RangeCalendarCellProps } from "../types.js";
4
4
  import { useRangeCalendarCell } from "../range-calendar.svelte.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
+
7
+ const uid = $props.id();
6
8
 
7
9
  let {
8
10
  children,
9
11
  child,
10
- id = useId(),
12
+ id = createId(uid),
11
13
  ref = $bindable(null),
12
14
  date,
13
15
  month,
@@ -2,12 +2,14 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { RangeCalendarDayProps } from "../types.js";
4
4
  import { useRangeCalendarDay } from "../range-calendar.svelte.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
+
7
+ const uid = $props.id();
6
8
 
7
9
  let {
8
10
  children,
9
11
  child,
10
- id = useId(),
12
+ id = createId(uid),
11
13
  ref = $bindable(null),
12
14
  ...restProps
13
15
  }: RangeCalendarDayProps = $props();
@@ -4,14 +4,16 @@
4
4
  import type { RangeCalendarRootProps } from "../types.js";
5
5
  import { useRangeCalendarRoot } from "../range-calendar.svelte.js";
6
6
  import { noop } from "../../../internal/noop.js";
7
- import { useId } from "../../../internal/use-id.js";
7
+ import { createId } from "../../../internal/create-id.js";
8
8
  import { getDefaultDate } from "../../../internal/date-time/utils.js";
9
9
  import { watch } from "runed";
10
10
 
11
+ const uid = $props.id();
12
+
11
13
  let {
12
14
  children,
13
15
  child,
14
- id = useId(),
16
+ id = createId(uid),
15
17
  ref = $bindable(null),
16
18
  value = $bindable(),
17
19
  onValueChange = noop,
@@ -1,4 +1,5 @@
1
1
  import { type DateValue } from "@internationalized/date";
2
+ import { DOMContext } from "svelte-toolbelt";
2
3
  import type { DateRange, Month } from "../../shared/index.js";
3
4
  import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
4
5
  import type { BitsFocusEvent, BitsKeyboardEvent, BitsMouseEvent, WithRefProps } from "../../internal/types.js";
@@ -45,6 +46,7 @@ export declare class RangeCalendarRootState {
45
46
  accessibleHeadingId: string;
46
47
  focusedValue: DateValue | undefined;
47
48
  lastPressedDateValue: DateValue | undefined;
49
+ domContext: DOMContext;
48
50
  constructor(opts: RangeCalendarRootStateProps);
49
51
  setMonths: (months: Month<DateValue>[]) => void;
50
52
  /**
@@ -1,5 +1,5 @@
1
1
  import { getLocalTimeZone, isSameDay, isSameMonth, isToday, } from "@internationalized/date";
2
- import { useRefById } from "svelte-toolbelt";
2
+ import { attachRef, DOMContext } from "svelte-toolbelt";
3
3
  import { Context, watch } from "runed";
4
4
  import { CalendarRootContext } from "../calendar/calendar.svelte.js";
5
5
  import { useId } from "../../internal/use-id.js";
@@ -8,6 +8,7 @@ import { getAnnouncer } from "../../internal/date-time/announcer.js";
8
8
  import { createFormatter } from "../../internal/date-time/formatter.js";
9
9
  import { createMonths, getCalendarElementProps, getCalendarHeadingValue, getIsNextButtonDisabled, getIsPrevButtonDisabled, getWeekdays, handleCalendarKeydown, handleCalendarNextPage, handleCalendarPrevPage, shiftCalendarFocus, useEnsureNonDisabledPlaceholder, useMonthViewOptionsSync, useMonthViewPlaceholderSync, } from "../../internal/date-time/calendar-helpers.svelte.js";
10
10
  import { areAllDaysBetweenValid, getDateValueType, isAfter, isBefore, isBetweenInclusive, toDate, } from "../../internal/date-time/utils.js";
11
+ import { onMount } from "svelte";
11
12
  export class RangeCalendarRootState {
12
13
  opts;
13
14
  months = $state([]);
@@ -17,11 +18,12 @@ export class RangeCalendarRootState {
17
18
  accessibleHeadingId = useId();
18
19
  focusedValue = $state(undefined);
19
20
  lastPressedDateValue = undefined;
21
+ domContext;
20
22
  constructor(opts) {
21
23
  this.opts = opts;
22
- this.announcer = getAnnouncer();
24
+ this.domContext = new DOMContext(opts.ref);
25
+ this.announcer = getAnnouncer(null);
23
26
  this.formatter = createFormatter(this.opts.locale.current);
24
- useRefById(opts);
25
27
  this.months = createMonths({
26
28
  dateObj: this.opts.placeholder.current,
27
29
  weekStartsOn: this.opts.weekStartsOn.current,
@@ -34,6 +36,9 @@ export class RangeCalendarRootState {
34
36
  return;
35
37
  this.formatter.setLocale(this.opts.locale.current);
36
38
  });
39
+ onMount(() => {
40
+ this.announcer = getAnnouncer(this.domContext.getDocument());
41
+ });
37
42
  /**
38
43
  * Updates the displayed months based on changes in the placeholder values,
39
44
  * which determines the month to show in the calendar.
@@ -64,7 +69,7 @@ export class RangeCalendarRootState {
64
69
  * changes.
65
70
  */
66
71
  $effect(() => {
67
- const node = document.getElementById(this.accessibleHeadingId);
72
+ const node = this.domContext.getElementById(this.accessibleHeadingId);
68
73
  if (!node)
69
74
  return;
70
75
  node.textContent = this.fullCalendarLabel;
@@ -416,6 +421,7 @@ export class RangeCalendarRootState {
416
421
  [this.getBitsAttr("root")]: "",
417
422
  //
418
423
  onkeydown: this.onkeydown,
424
+ ...attachRef(this.opts.ref),
419
425
  }));
420
426
  }
421
427
  export class RangeCalendarCellState {
@@ -443,7 +449,6 @@ export class RangeCalendarCellState {
443
449
  constructor(opts, root) {
444
450
  this.opts = opts;
445
451
  this.root = root;
446
- useRefById(opts);
447
452
  }
448
453
  snippetProps = $derived.by(() => ({
449
454
  disabled: this.isDisabled,
@@ -477,6 +482,7 @@ export class RangeCalendarCellState {
477
482
  "aria-disabled": getAriaDisabled(this.ariaDisabled),
478
483
  ...this.sharedDataAttrs,
479
484
  [this.root.getBitsAttr("cell")]: "",
485
+ ...attachRef(this.opts.ref),
480
486
  }));
481
487
  }
482
488
  class RangeCalendarDayState {
@@ -485,7 +491,6 @@ class RangeCalendarDayState {
485
491
  constructor(opts, cell) {
486
492
  this.opts = opts;
487
493
  this.cell = cell;
488
- useRefById(opts);
489
494
  this.onclick = this.onclick.bind(this);
490
495
  this.onmouseenter = this.onmouseenter.bind(this);
491
496
  this.onfocusin = this.onfocusin.bind(this);
@@ -531,6 +536,7 @@ class RangeCalendarDayState {
531
536
  onclick: this.onclick,
532
537
  onmouseenter: this.onmouseenter,
533
538
  onfocusin: this.onfocusin,
539
+ ...attachRef(this.opts.ref),
534
540
  }));
535
541
  }
536
542
  const RangeCalendarCellContext = new Context("RangeCalendar.Cell");
@@ -2,9 +2,15 @@
2
2
  import type { ScrollAreaCornerProps } from "../types.js";
3
3
  import { ScrollAreaRootContext } from "../scroll-area.svelte.js";
4
4
  import ScrollAreaCornerImpl from "./scroll-area-corner-impl.svelte";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
6
 
7
- let { ref = $bindable(null), id = useId(), ...restProps }: ScrollAreaCornerProps = $props();
7
+ const uid = $props.id();
8
+
9
+ let {
10
+ ref = $bindable(null),
11
+ id = createId(uid),
12
+ ...restProps
13
+ }: ScrollAreaCornerProps = $props();
8
14
 
9
15
  const scrollAreaState = ScrollAreaRootContext.get();
10
16
 
@@ -11,7 +11,10 @@
11
11
  const mergedProps = $derived(mergeProps(restProps, scrollbarAutoState.props));
12
12
  </script>
13
13
 
14
- <PresenceLayer present={forceMount || scrollbarAutoState.isVisible} {...mergedProps}>
14
+ <PresenceLayer
15
+ present={forceMount || scrollbarAutoState.isVisible}
16
+ ref={scrollbarAutoState.scrollbar.opts.ref}
17
+ >
15
18
  {#snippet presence()}
16
19
  <ScrollAreaScrollbarVisible {...mergedProps} />
17
20
  {/snippet}
@@ -23,7 +23,7 @@
23
23
  );
24
24
  </script>
25
25
 
26
- <PresenceLayer {...mergedProps} {present}>
26
+ <PresenceLayer {present} ref={scrollbarAutoState.scrollbar.opts.ref}>
27
27
  {#snippet presence()}
28
28
  <ScrollAreaScrollbarVisible {...mergedProps} />
29
29
  {/snippet}
@@ -12,7 +12,11 @@
12
12
  const mergedProps = $derived(mergeProps(restProps, scrollbarScrollState.props));
13
13
  </script>
14
14
 
15
- <PresenceLayer {...mergedProps} present={forceMount || !scrollbarScrollState.isHidden}>
15
+ <PresenceLayer
16
+ {...mergedProps}
17
+ present={forceMount || !scrollbarScrollState.isHidden}
18
+ ref={scrollbarScrollState.scrollbar.opts.ref}
19
+ >
16
20
  {#snippet presence()}
17
21
  <ScrollAreaScrollbarVisible {...mergedProps} />
18
22
  {/snippet}
@@ -6,11 +6,13 @@
6
6
  import ScrollAreaScrollbarScroll from "./scroll-area-scrollbar-scroll.svelte";
7
7
  import ScrollAreaScrollbarHover from "./scroll-area-scrollbar-hover.svelte";
8
8
  import ScrollAreaScrollbarVisible from "./scroll-area-scrollbar-visible.svelte";
9
- import { useId } from "../../../internal/use-id.js";
9
+ import { createId } from "../../../internal/create-id.js";
10
+
11
+ const uid = $props.id();
10
12
 
11
13
  let {
12
14
  ref = $bindable(null),
13
- id = useId(),
15
+ id = createId(uid),
14
16
  orientation,
15
17
  ...restProps
16
18
  }: ScrollAreaScrollbarProps = $props();
@@ -2,11 +2,13 @@
2
2
  import type { ScrollAreaThumbProps } from "../types.js";
3
3
  import { ScrollAreaScrollbarVisibleContext } from "../scroll-area.svelte.js";
4
4
  import ScrollAreaThumbImpl from "./scroll-area-thumb-impl.svelte";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
6
  import PresenceLayer from "../../utilities/presence-layer/presence-layer.svelte";
7
7
 
8
+ const uid = $props.id();
9
+
8
10
  let {
9
- id = useId(),
11
+ id = createId(uid),
10
12
  ref = $bindable(null),
11
13
  forceMount = false,
12
14
  ...restProps
@@ -15,7 +17,10 @@
15
17
  const scrollbarState = ScrollAreaScrollbarVisibleContext.get();
16
18
  </script>
17
19
 
18
- <PresenceLayer present={forceMount || scrollbarState.hasThumb} {...restProps} {id}>
20
+ <PresenceLayer
21
+ present={forceMount || scrollbarState.hasThumb}
22
+ ref={scrollbarState.scrollbar.opts.ref}
23
+ >
19
24
  {#snippet presence({ present })}
20
25
  <ScrollAreaThumbImpl {...restProps} {id} bind:ref present={present.current} />
21
26
  {/snippet}
@@ -2,11 +2,13 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { ScrollAreaViewportProps } from "../types.js";
4
4
  import { useScrollAreaViewport } from "../scroll-area.svelte.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
+
7
+ const uid = $props.id();
6
8
 
7
9
  let {
8
10
  ref = $bindable(null),
9
- id = useId(),
11
+ id = createId(uid),
10
12
  children,
11
13
  ...restProps
12
14
  }: ScrollAreaViewportProps = $props();
@@ -2,11 +2,13 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { ScrollAreaRootProps } from "../types.js";
4
4
  import { useScrollAreaRoot } from "../scroll-area.svelte.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
+
7
+ const uid = $props.id();
6
8
 
7
9
  let {
8
10
  ref = $bindable(null),
9
- id = useId(),
11
+ id = createId(uid),
10
12
  type = "hover",
11
13
  dir = "ltr",
12
14
  scrollHideDelay = 600,
@@ -5,6 +5,7 @@
5
5
  * Incredible thought must have went into solving all the intricacies of this component.
6
6
  */
7
7
  import { Context } from "runed";
8
+ import { DOMContext } from "svelte-toolbelt";
8
9
  import type { ScrollAreaType } from "./types.js";
9
10
  import type { ReadableBoxedValues } from "../../internal/box.svelte.js";
10
11
  import type { BitsPointerEvent, WithRefProps } from "../../internal/types.js";
@@ -34,6 +35,7 @@ declare class ScrollAreaRootState {
34
35
  cornerHeight: number;
35
36
  scrollbarXEnabled: boolean;
36
37
  scrollbarYEnabled: boolean;
38
+ domContext: DOMContext;
37
39
  constructor(opts: ScrollAreaRootStateProps);
38
40
  props: {
39
41
  readonly id: string;