bits-ui 1.8.0 → 2.1.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 (287) 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.js +4 -4
  14. package/dist/bits/avatar/components/avatar-fallback.svelte +4 -2
  15. package/dist/bits/avatar/components/avatar-image.svelte +4 -2
  16. package/dist/bits/avatar/components/avatar.svelte +4 -2
  17. package/dist/bits/button/components/button.svelte +1 -1
  18. package/dist/bits/calendar/calendar.svelte.d.ts +1 -9
  19. package/dist/bits/calendar/calendar.svelte.js +47 -38
  20. package/dist/bits/calendar/components/calendar-cell.svelte +4 -2
  21. package/dist/bits/calendar/components/calendar-day.svelte +4 -2
  22. package/dist/bits/calendar/components/calendar-grid-body.svelte +4 -2
  23. package/dist/bits/calendar/components/calendar-grid-head.svelte +4 -2
  24. package/dist/bits/calendar/components/calendar-grid-row.svelte +4 -2
  25. package/dist/bits/calendar/components/calendar-grid.svelte +4 -2
  26. package/dist/bits/calendar/components/calendar-head-cell.svelte +4 -2
  27. package/dist/bits/calendar/components/calendar-header.svelte +4 -2
  28. package/dist/bits/calendar/components/calendar-heading.svelte +4 -2
  29. package/dist/bits/calendar/components/calendar-next-button.svelte +4 -2
  30. package/dist/bits/calendar/components/calendar-prev-button.svelte +4 -2
  31. package/dist/bits/checkbox/checkbox.svelte.js +4 -14
  32. package/dist/bits/checkbox/components/checkbox-group-label.svelte +4 -2
  33. package/dist/bits/checkbox/components/checkbox-group.svelte +4 -2
  34. package/dist/bits/checkbox/components/checkbox.svelte +4 -2
  35. package/dist/bits/collapsible/collapsible.svelte.js +4 -10
  36. package/dist/bits/collapsible/components/collapsible-content.svelte +5 -3
  37. package/dist/bits/collapsible/components/collapsible-trigger.svelte +4 -2
  38. package/dist/bits/collapsible/components/collapsible.svelte +4 -2
  39. package/dist/bits/combobox/components/combobox-input.svelte +1 -1
  40. package/dist/bits/combobox/components/combobox.svelte +1 -1
  41. package/dist/bits/command/command.svelte.js +13 -45
  42. package/dist/bits/command/components/_command-label.svelte +6 -7
  43. package/dist/bits/command/components/_command-label.svelte.d.ts +1 -1
  44. package/dist/bits/command/components/command-empty.svelte +4 -2
  45. package/dist/bits/command/components/command-group-heading.svelte +4 -2
  46. package/dist/bits/command/components/command-group-items.svelte +4 -2
  47. package/dist/bits/command/components/command-group.svelte +4 -2
  48. package/dist/bits/command/components/command-input.svelte +4 -2
  49. package/dist/bits/command/components/command-item.svelte +4 -2
  50. package/dist/bits/command/components/command-link-item.svelte +4 -2
  51. package/dist/bits/command/components/command-list.svelte +4 -2
  52. package/dist/bits/command/components/command-loading.svelte +4 -2
  53. package/dist/bits/command/components/command-separator.svelte +4 -2
  54. package/dist/bits/command/components/command-viewport.svelte +4 -2
  55. package/dist/bits/command/components/command.svelte +4 -2
  56. package/dist/bits/context-menu/components/context-menu-content-static.svelte +2 -3
  57. package/dist/bits/context-menu/components/context-menu-content.svelte +2 -3
  58. package/dist/bits/context-menu/components/context-menu-trigger.svelte +1 -1
  59. package/dist/bits/date-field/components/date-field-input.svelte +4 -2
  60. package/dist/bits/date-field/components/date-field-label.svelte +4 -2
  61. package/dist/bits/date-field/components/date-field-segment.svelte +4 -2
  62. package/dist/bits/date-field/date-field.svelte.d.ts +4 -4
  63. package/dist/bits/date-field/date-field.svelte.js +15 -33
  64. package/dist/bits/date-picker/components/date-picker-calendar.svelte +4 -2
  65. package/dist/bits/date-range-field/components/date-range-field-input.svelte +4 -2
  66. package/dist/bits/date-range-field/components/date-range-field-label.svelte +4 -2
  67. package/dist/bits/date-range-field/components/date-range-field.svelte +4 -2
  68. package/dist/bits/date-range-field/date-range-field.svelte.js +3 -13
  69. package/dist/bits/date-range-picker/components/date-range-picker-calendar.svelte +4 -2
  70. package/dist/bits/dialog/components/dialog-close.svelte +4 -2
  71. package/dist/bits/dialog/components/dialog-content.svelte +8 -2
  72. package/dist/bits/dialog/components/dialog-description.svelte +4 -2
  73. package/dist/bits/dialog/components/dialog-overlay.svelte +8 -3
  74. package/dist/bits/dialog/components/dialog-title.svelte +4 -2
  75. package/dist/bits/dialog/components/dialog-trigger.svelte +4 -2
  76. package/dist/bits/dialog/dialog.svelte.d.ts +1 -1
  77. package/dist/bits/dialog/dialog.svelte.js +19 -47
  78. package/dist/bits/dropdown-menu/components/dropdown-menu-content-static.svelte +6 -5
  79. package/dist/bits/dropdown-menu/components/dropdown-menu-content.svelte +6 -5
  80. package/dist/bits/index.d.ts +2 -0
  81. package/dist/bits/index.js +2 -0
  82. package/dist/bits/label/components/label.svelte +4 -2
  83. package/dist/bits/label/label.svelte.js +2 -2
  84. package/dist/bits/link-preview/components/link-preview-content-static.svelte +6 -2
  85. package/dist/bits/link-preview/components/link-preview-content.svelte +6 -2
  86. package/dist/bits/link-preview/components/link-preview-trigger.svelte +5 -3
  87. package/dist/bits/link-preview/link-preview.svelte.js +3 -14
  88. package/dist/bits/menu/components/menu-checkbox-group.svelte +4 -2
  89. package/dist/bits/menu/components/menu-checkbox-item.svelte +6 -4
  90. package/dist/bits/menu/components/menu-content-static.svelte +6 -5
  91. package/dist/bits/menu/components/menu-content.svelte +6 -5
  92. package/dist/bits/menu/components/menu-group-heading.svelte +4 -2
  93. package/dist/bits/menu/components/menu-group.svelte +4 -2
  94. package/dist/bits/menu/components/menu-item.svelte +4 -2
  95. package/dist/bits/menu/components/menu-radio-group.svelte +4 -2
  96. package/dist/bits/menu/components/menu-radio-item.svelte +4 -2
  97. package/dist/bits/menu/components/menu-separator.svelte +4 -2
  98. package/dist/bits/menu/components/menu-sub-content-static.svelte +6 -5
  99. package/dist/bits/menu/components/menu-sub-content.svelte +6 -5
  100. package/dist/bits/menu/components/menu-sub-trigger.svelte +6 -3
  101. package/dist/bits/menu/components/menu-trigger.svelte +5 -3
  102. package/dist/bits/menu/menu.svelte.d.ts +7 -20
  103. package/dist/bits/menu/menu.svelte.js +26 -54
  104. package/dist/bits/menubar/components/menubar-content-static.svelte +4 -2
  105. package/dist/bits/menubar/components/menubar-content.svelte +4 -2
  106. package/dist/bits/menubar/components/menubar-menu.svelte +4 -2
  107. package/dist/bits/menubar/components/menubar-trigger.svelte +14 -6
  108. package/dist/bits/menubar/components/menubar.svelte +4 -2
  109. package/dist/bits/menubar/menubar.svelte.d.ts +24 -20
  110. package/dist/bits/menubar/menubar.svelte.js +40 -56
  111. package/dist/bits/meter/components/meter.svelte +4 -2
  112. package/dist/bits/meter/meter.svelte.js +2 -2
  113. package/dist/bits/navigation-menu/components/navigation-menu-content-impl.svelte +5 -2
  114. package/dist/bits/navigation-menu/components/navigation-menu-content.svelte +8 -3
  115. package/dist/bits/navigation-menu/components/navigation-menu-indicator-impl.svelte +4 -2
  116. package/dist/bits/navigation-menu/components/navigation-menu-indicator.svelte +6 -4
  117. package/dist/bits/navigation-menu/components/navigation-menu-item.svelte +6 -3
  118. package/dist/bits/navigation-menu/components/navigation-menu-link.svelte +4 -2
  119. package/dist/bits/navigation-menu/components/navigation-menu-list.svelte +4 -2
  120. package/dist/bits/navigation-menu/components/navigation-menu-sub.svelte +4 -2
  121. package/dist/bits/navigation-menu/components/navigation-menu-trigger.svelte +4 -2
  122. package/dist/bits/navigation-menu/components/navigation-menu-viewport.svelte +5 -3
  123. package/dist/bits/navigation-menu/components/navigation-menu.svelte +4 -2
  124. package/dist/bits/navigation-menu/navigation-menu.svelte.js +13 -50
  125. package/dist/bits/pagination/components/pagination-next-button.svelte +4 -2
  126. package/dist/bits/pagination/components/pagination-page.svelte +4 -2
  127. package/dist/bits/pagination/components/pagination-prev-button.svelte +4 -2
  128. package/dist/bits/pagination/components/pagination.svelte +4 -2
  129. package/dist/bits/pagination/pagination.svelte.js +4 -4
  130. package/dist/bits/pin-input/components/pin-input-cell.svelte +4 -2
  131. package/dist/bits/pin-input/components/pin-input.svelte +5 -3
  132. package/dist/bits/pin-input/pin-input.svelte.js +4 -10
  133. package/dist/bits/popover/components/popover-close.svelte +4 -2
  134. package/dist/bits/popover/components/popover-content-static.svelte +6 -2
  135. package/dist/bits/popover/components/popover-content.svelte +6 -2
  136. package/dist/bits/popover/components/popover-trigger.svelte +5 -3
  137. package/dist/bits/popover/popover.svelte.js +4 -18
  138. package/dist/bits/progress/components/progress.svelte +4 -2
  139. package/dist/bits/progress/progress.svelte.js +2 -2
  140. package/dist/bits/radio-group/components/radio-group-item.svelte +4 -2
  141. package/dist/bits/radio-group/components/radio-group.svelte +4 -2
  142. package/dist/bits/radio-group/radio-group.svelte.js +4 -7
  143. package/dist/bits/range-calendar/components/range-calendar-cell.svelte +4 -2
  144. package/dist/bits/range-calendar/components/range-calendar-day.svelte +4 -2
  145. package/dist/bits/range-calendar/components/range-calendar.svelte +4 -2
  146. package/dist/bits/range-calendar/range-calendar.svelte.js +4 -4
  147. package/dist/bits/scroll-area/components/scroll-area-corner.svelte +8 -2
  148. package/dist/bits/scroll-area/components/scroll-area-scrollbar-auto.svelte +4 -1
  149. package/dist/bits/scroll-area/components/scroll-area-scrollbar-hover.svelte +1 -1
  150. package/dist/bits/scroll-area/components/scroll-area-scrollbar-scroll.svelte +5 -1
  151. package/dist/bits/scroll-area/components/scroll-area-scrollbar.svelte +4 -2
  152. package/dist/bits/scroll-area/components/scroll-area-thumb.svelte +8 -3
  153. package/dist/bits/scroll-area/components/scroll-area-viewport.svelte +4 -2
  154. package/dist/bits/scroll-area/components/scroll-area.svelte +4 -2
  155. package/dist/bits/scroll-area/scroll-area.svelte.js +13 -47
  156. package/dist/bits/select/components/select-content-static.svelte +6 -2
  157. package/dist/bits/select/components/select-content.svelte +6 -2
  158. package/dist/bits/select/components/select-group-heading.svelte +3 -2
  159. package/dist/bits/select/components/select-group.svelte +4 -2
  160. package/dist/bits/select/components/select-item.svelte +4 -2
  161. package/dist/bits/select/components/select-scroll-down-button.svelte +4 -2
  162. package/dist/bits/select/components/select-scroll-up-button.svelte +4 -2
  163. package/dist/bits/select/components/select-trigger.svelte +5 -3
  164. package/dist/bits/select/components/select-viewport.svelte +4 -2
  165. package/dist/bits/select/components/select.svelte +1 -1
  166. package/dist/bits/select/select.svelte.d.ts +0 -18
  167. package/dist/bits/select/select.svelte.js +10 -43
  168. package/dist/bits/separator/components/separator.svelte +4 -2
  169. package/dist/bits/separator/separator.svelte.js +2 -2
  170. package/dist/bits/slider/components/slider-range.svelte +4 -2
  171. package/dist/bits/slider/components/slider-thumb-label.svelte +50 -0
  172. package/dist/bits/slider/components/slider-thumb-label.svelte.d.ts +4 -0
  173. package/dist/bits/slider/components/slider-thumb.svelte +4 -2
  174. package/dist/bits/slider/components/slider-tick-label.svelte +50 -0
  175. package/dist/bits/slider/components/slider-tick-label.svelte.d.ts +4 -0
  176. package/dist/bits/slider/components/slider-tick.svelte +4 -2
  177. package/dist/bits/slider/components/slider.svelte +24 -5
  178. package/dist/bits/slider/exports.d.ts +3 -1
  179. package/dist/bits/slider/exports.js +2 -0
  180. package/dist/bits/slider/helpers.d.ts +14 -0
  181. package/dist/bits/slider/helpers.js +122 -0
  182. package/dist/bits/slider/slider.svelte.d.ts +91 -5
  183. package/dist/bits/slider/slider.svelte.js +194 -101
  184. package/dist/bits/slider/types.d.ts +105 -11
  185. package/dist/bits/switch/components/switch-thumb.svelte +4 -2
  186. package/dist/bits/switch/components/switch.svelte +4 -2
  187. package/dist/bits/switch/switch.svelte.js +3 -3
  188. package/dist/bits/tabs/components/tabs-content.svelte +4 -2
  189. package/dist/bits/tabs/components/tabs-list.svelte +4 -2
  190. package/dist/bits/tabs/components/tabs-trigger.svelte +4 -2
  191. package/dist/bits/tabs/components/tabs.svelte +4 -2
  192. package/dist/bits/tabs/tabs.svelte.js +6 -6
  193. package/dist/bits/time-field/components/time-field-hidden-input.svelte +10 -0
  194. package/dist/bits/{date-field/components/date-field-error.svelte.d.ts → time-field/components/time-field-hidden-input.svelte.d.ts} +6 -14
  195. package/dist/bits/time-field/components/time-field-input.svelte +39 -0
  196. package/dist/bits/time-field/components/time-field-input.svelte.d.ts +4 -0
  197. package/dist/bits/time-field/components/time-field-label.svelte +34 -0
  198. package/dist/bits/time-field/components/time-field-label.svelte.d.ts +4 -0
  199. package/dist/bits/time-field/components/time-field-segment.svelte +37 -0
  200. package/dist/bits/time-field/components/time-field-segment.svelte.d.ts +4 -0
  201. package/dist/bits/time-field/components/time-field.svelte +94 -0
  202. package/dist/bits/time-field/components/time-field.svelte.d.ts +20 -0
  203. package/dist/bits/time-field/exports.d.ts +5 -0
  204. package/dist/bits/time-field/exports.js +4 -0
  205. package/dist/bits/time-field/index.d.ts +1 -0
  206. package/dist/bits/time-field/index.js +1 -0
  207. package/dist/bits/time-field/time-field.svelte.d.ts +415 -0
  208. package/dist/bits/time-field/time-field.svelte.js +971 -0
  209. package/dist/bits/time-field/types.d.ts +137 -0
  210. package/dist/bits/time-field/types.js +1 -0
  211. package/dist/bits/time-range-field/components/time-range-field-input.svelte +43 -0
  212. package/dist/bits/time-range-field/components/time-range-field-input.svelte.d.ts +4 -0
  213. package/dist/bits/time-range-field/components/time-range-field-label.svelte +34 -0
  214. package/dist/bits/time-range-field/components/time-range-field-label.svelte.d.ts +4 -0
  215. package/dist/bits/time-range-field/components/time-range-field.svelte +144 -0
  216. package/dist/bits/time-range-field/components/time-range-field.svelte.d.ts +20 -0
  217. package/dist/bits/time-range-field/exports.d.ts +5 -0
  218. package/dist/bits/time-range-field/exports.js +4 -0
  219. package/dist/bits/time-range-field/index.d.ts +1 -0
  220. package/dist/bits/time-range-field/index.js +1 -0
  221. package/dist/bits/time-range-field/time-range-field.svelte.d.ts +90 -0
  222. package/dist/bits/time-range-field/time-range-field.svelte.js +210 -0
  223. package/dist/bits/time-range-field/types.d.ts +150 -0
  224. package/dist/bits/time-range-field/types.js +1 -0
  225. package/dist/bits/toggle/components/toggle.svelte +4 -2
  226. package/dist/bits/toggle/toggle.svelte.js +2 -2
  227. package/dist/bits/toggle-group/components/toggle-group-item.svelte +4 -2
  228. package/dist/bits/toggle-group/components/toggle-group.svelte +4 -2
  229. package/dist/bits/toggle-group/toggle-group.svelte.js +4 -4
  230. package/dist/bits/toolbar/components/toolbar-button.svelte +4 -2
  231. package/dist/bits/toolbar/components/toolbar-group-item.svelte +4 -2
  232. package/dist/bits/toolbar/components/toolbar-group.svelte +4 -2
  233. package/dist/bits/toolbar/components/toolbar-link.svelte +4 -2
  234. package/dist/bits/toolbar/components/toolbar.svelte +4 -2
  235. package/dist/bits/toolbar/toolbar.svelte.js +7 -7
  236. package/dist/bits/tooltip/components/tooltip-content-static.svelte +6 -2
  237. package/dist/bits/tooltip/components/tooltip-content.svelte +6 -2
  238. package/dist/bits/tooltip/components/tooltip-trigger.svelte +5 -3
  239. package/dist/bits/tooltip/tooltip.svelte.js +3 -14
  240. package/dist/bits/utilities/dismissible-layer/dismissible-layer.svelte +2 -0
  241. package/dist/bits/utilities/dismissible-layer/types.d.ts +2 -0
  242. package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.d.ts +3 -3
  243. package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.js +16 -25
  244. package/dist/bits/utilities/floating-layer/components/floating-layer-anchor.svelte +2 -1
  245. package/dist/bits/utilities/floating-layer/types.d.ts +1 -0
  246. package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.d.ts +3 -2
  247. package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.js +5 -26
  248. package/dist/bits/utilities/focus-scope/focus-scope.svelte +2 -0
  249. package/dist/bits/utilities/focus-scope/types.d.ts +2 -0
  250. package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.d.ts +2 -1
  251. package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.js +2 -8
  252. package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte +4 -0
  253. package/dist/bits/utilities/popper-layer/popper-layer.svelte +3 -1
  254. package/dist/bits/utilities/presence-layer/presence-layer.svelte +2 -2
  255. package/dist/bits/utilities/presence-layer/types.d.ts +2 -1
  256. package/dist/bits/utilities/presence-layer/use-presence.svelte.d.ts +1 -1
  257. package/dist/bits/utilities/presence-layer/use-presence.svelte.js +19 -36
  258. package/dist/bits/utilities/text-selection-layer/text-selection-layer.svelte +2 -0
  259. package/dist/bits/utilities/text-selection-layer/types.d.ts +2 -0
  260. package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.d.ts +3 -1
  261. package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.js +2 -8
  262. package/dist/index.d.ts +1 -1
  263. package/dist/index.js +1 -1
  264. package/dist/internal/create-id.d.ts +8 -0
  265. package/dist/internal/create-id.js +5 -0
  266. package/dist/internal/date-time/field/helpers.d.ts +1 -0
  267. package/dist/internal/date-time/field/helpers.js +8 -2
  268. package/dist/internal/date-time/field/parts.d.ts +3 -1
  269. package/dist/internal/date-time/field/parts.js +10 -2
  270. package/dist/internal/date-time/field/segments.d.ts +9 -0
  271. package/dist/internal/date-time/field/segments.js +65 -0
  272. package/dist/internal/date-time/field/time-helpers.d.ts +77 -0
  273. package/dist/internal/date-time/field/time-helpers.js +301 -0
  274. package/dist/internal/date-time/field/types.d.ts +2 -2
  275. package/dist/internal/date-time/formatter.d.ts +11 -1
  276. package/dist/internal/date-time/formatter.js +56 -0
  277. package/dist/internal/date-time/utils.d.ts +7 -2
  278. package/dist/internal/date-time/utils.js +15 -1
  279. package/dist/internal/dom-context.svelte.d.ts +9 -0
  280. package/dist/internal/dom-context.svelte.js +26 -0
  281. package/dist/internal/use-roving-focus.svelte.d.ts +3 -3
  282. package/dist/internal/use-roving-focus.svelte.js +10 -11
  283. package/dist/shared/date/types.d.ts +27 -4
  284. package/dist/shared/index.d.ts +2 -2
  285. package/dist/types.d.ts +2 -0
  286. package/package.json +18 -16
  287. package/dist/bits/date-field/components/date-field-error.svelte +0 -0
@@ -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,5 +1,5 @@
1
1
  import { getLocalTimeZone, isSameDay, isSameMonth, isToday, } from "@internationalized/date";
2
- import { useRefById } from "svelte-toolbelt";
2
+ import { attachRef } 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";
@@ -21,7 +21,6 @@ export class RangeCalendarRootState {
21
21
  this.opts = opts;
22
22
  this.announcer = getAnnouncer();
23
23
  this.formatter = createFormatter(this.opts.locale.current);
24
- useRefById(opts);
25
24
  this.months = createMonths({
26
25
  dateObj: this.opts.placeholder.current,
27
26
  weekStartsOn: this.opts.weekStartsOn.current,
@@ -416,6 +415,7 @@ export class RangeCalendarRootState {
416
415
  [this.getBitsAttr("root")]: "",
417
416
  //
418
417
  onkeydown: this.onkeydown,
418
+ ...attachRef(this.opts.ref),
419
419
  }));
420
420
  }
421
421
  export class RangeCalendarCellState {
@@ -443,7 +443,6 @@ export class RangeCalendarCellState {
443
443
  constructor(opts, root) {
444
444
  this.opts = opts;
445
445
  this.root = root;
446
- useRefById(opts);
447
446
  }
448
447
  snippetProps = $derived.by(() => ({
449
448
  disabled: this.isDisabled,
@@ -477,6 +476,7 @@ export class RangeCalendarCellState {
477
476
  "aria-disabled": getAriaDisabled(this.ariaDisabled),
478
477
  ...this.sharedDataAttrs,
479
478
  [this.root.getBitsAttr("cell")]: "",
479
+ ...attachRef(this.opts.ref),
480
480
  }));
481
481
  }
482
482
  class RangeCalendarDayState {
@@ -485,7 +485,6 @@ class RangeCalendarDayState {
485
485
  constructor(opts, cell) {
486
486
  this.opts = opts;
487
487
  this.cell = cell;
488
- useRefById(opts);
489
488
  this.onclick = this.onclick.bind(this);
490
489
  this.onmouseenter = this.onmouseenter.bind(this);
491
490
  this.onfocusin = this.onfocusin.bind(this);
@@ -531,6 +530,7 @@ class RangeCalendarDayState {
531
530
  onclick: this.onclick,
532
531
  onmouseenter: this.onmouseenter,
533
532
  onfocusin: this.onfocusin,
533
+ ...attachRef(this.opts.ref),
534
534
  }));
535
535
  }
536
536
  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,
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { Context, useDebounce } from "runed";
8
8
  import { untrack } from "svelte";
9
- import { box, executeCallbacks, useRefById } from "svelte-toolbelt";
9
+ import { box, executeCallbacks, attachRef } from "svelte-toolbelt";
10
10
  import { addEventListener } from "../../internal/events.js";
11
11
  import { mergeProps, useId } from "../../shared/index.js";
12
12
  import { useStateMachine } from "../../internal/use-state-machine.svelte.js";
@@ -31,12 +31,6 @@ class ScrollAreaRootState {
31
31
  scrollbarYEnabled = $state(false);
32
32
  constructor(opts) {
33
33
  this.opts = opts;
34
- useRefById({
35
- ...opts,
36
- onRefChange: (node) => {
37
- this.scrollAreaNode = node;
38
- },
39
- });
40
34
  }
41
35
  props = $derived.by(() => ({
42
36
  id: this.opts.id.current,
@@ -47,6 +41,7 @@ class ScrollAreaRootState {
47
41
  "--bits-scroll-area-corner-width": `${this.cornerWidth}px`,
48
42
  },
49
43
  [SCROLL_AREA_ROOT_ATTR]: "",
44
+ ...attachRef(this.opts.ref, (v) => (this.scrollAreaNode = v)),
50
45
  }));
51
46
  }
52
47
  class ScrollAreaViewportState {
@@ -57,19 +52,6 @@ class ScrollAreaViewportState {
57
52
  constructor(opts, root) {
58
53
  this.opts = opts;
59
54
  this.root = root;
60
- useRefById({
61
- ...opts,
62
- onRefChange: (node) => {
63
- this.root.viewportNode = node;
64
- },
65
- });
66
- useRefById({
67
- id: this.#contentId,
68
- ref: this.#contentRef,
69
- onRefChange: (node) => {
70
- this.root.contentNode = node;
71
- },
72
- });
73
55
  }
74
56
  props = $derived.by(() => ({
75
57
  id: this.opts.id.current,
@@ -78,6 +60,7 @@ class ScrollAreaViewportState {
78
60
  overflowY: this.root.scrollbarYEnabled ? "scroll" : "hidden",
79
61
  },
80
62
  [SCROLL_AREA_VIEWPORT_ATTR]: "",
63
+ ...attachRef(this.opts.ref, (v) => (this.root.viewportNode = v)),
81
64
  }));
82
65
  contentProps = $derived.by(() => ({
83
66
  id: this.#contentId.current,
@@ -90,6 +73,7 @@ class ScrollAreaViewportState {
90
73
  * be constrained by the parent container to enable `text-overflow: ellipsis`
91
74
  */
92
75
  style: { minWidth: this.root.scrollbarXEnabled ? "fit-content" : undefined },
76
+ ...attachRef(this.#contentRef, (v) => (this.root.contentNode = v)),
93
77
  }));
94
78
  }
95
79
  class ScrollAreaScrollbarState {
@@ -261,7 +245,7 @@ class ScrollAreaScrollbarVisibleState {
261
245
  $effect(() => {
262
246
  this.scrollbar.hasThumb = this.hasThumb;
263
247
  });
264
- $effect.pre(() => {
248
+ $effect(() => {
265
249
  if (!this.scrollbar.hasThumb && this.thumbNode) {
266
250
  this.prevTransformStyle = this.thumbNode.style.transform;
267
251
  }
@@ -338,13 +322,6 @@ class ScrollAreaScrollbarXState {
338
322
  this.scrollbarVis = scrollbarVis;
339
323
  this.root = scrollbarVis.root;
340
324
  this.scrollbar = scrollbarVis.scrollbar;
341
- useRefById({
342
- ...this.scrollbar.opts,
343
- onRefChange: (node) => {
344
- this.root.scrollbarXNode = node;
345
- },
346
- deps: () => this.opts.mounted.current,
347
- });
348
325
  $effect(() => {
349
326
  if (!this.scrollbar.opts.ref.current)
350
327
  return;
@@ -409,6 +386,7 @@ class ScrollAreaScrollbarXState {
409
386
  : 0,
410
387
  "--bits-scroll-area-thumb-width": `${this.thumbSize}px`,
411
388
  },
389
+ ...attachRef(this.scrollbar.opts.ref, (v) => (this.root.scrollbarXNode = v)),
412
390
  }));
413
391
  }
414
392
  class ScrollAreaScrollbarYState {
@@ -422,13 +400,6 @@ class ScrollAreaScrollbarYState {
422
400
  this.scrollbarVis = scrollbarVis;
423
401
  this.root = scrollbarVis.root;
424
402
  this.scrollbar = scrollbarVis.scrollbar;
425
- useRefById({
426
- ...this.scrollbar.opts,
427
- onRefChange: (node) => {
428
- this.root.scrollbarYNode = node;
429
- },
430
- deps: () => this.opts.mounted.current,
431
- });
432
403
  $effect(() => {
433
404
  if (!this.scrollbar.opts.ref.current)
434
405
  return;
@@ -496,6 +467,7 @@ class ScrollAreaScrollbarYState {
496
467
  bottom: "var(--bits-scroll-area-corner-height)",
497
468
  "--bits-scroll-area-thumb-height": `${this.thumbSize}px`,
498
469
  },
470
+ ...attachRef(this.scrollbar.opts.ref, (v) => (this.root.scrollbarYNode = v)),
499
471
  }));
500
472
  }
501
473
  class ScrollAreaScrollbarSharedState {
@@ -542,9 +514,9 @@ class ScrollAreaScrollbarSharedState {
542
514
  this.scrollbarVis.sizes;
543
515
  untrack(() => this.handleThumbPositionChange());
544
516
  });
545
- $effect.pre(() => {
546
- this.handleThumbPositionChange();
547
- });
517
+ // $effect.pre(() => {
518
+ // this.handleThumbPositionChange();
519
+ // });
548
520
  useResizeObserver(() => this.scrollbar.opts.ref.current, this.handleResize);
549
521
  useResizeObserver(() => this.root.contentNode, this.handleResize);
550
522
  this.onpointerdown = this.onpointerdown.bind(this);
@@ -612,13 +584,6 @@ class ScrollAreaThumbImplState {
612
584
  this.opts = opts;
613
585
  this.scrollbarState = scrollbarState;
614
586
  this.#root = scrollbarState.root;
615
- useRefById({
616
- ...opts,
617
- onRefChange: (node) => {
618
- this.scrollbarState.scrollbarVis.thumbNode = node;
619
- },
620
- deps: () => this.opts.mounted.current,
621
- });
622
587
  $effect(() => {
623
588
  const viewportNode = this.#root.viewportNode;
624
589
  if (!viewportNode)
@@ -631,7 +596,7 @@ class ScrollAreaThumbImplState {
631
596
  this.scrollbarState.handleThumbPositionChange();
632
597
  }
633
598
  };
634
- this.scrollbarState.handleThumbPositionChange();
599
+ untrack(() => this.scrollbarState.handleThumbPositionChange());
635
600
  const unsubListener = addEventListener(viewportNode, "scroll", handleScroll);
636
601
  return unsubListener;
637
602
  });
@@ -661,6 +626,7 @@ class ScrollAreaThumbImplState {
661
626
  onpointerdowncapture: this.onpointerdowncapture,
662
627
  onpointerup: this.onpointerup,
663
628
  [SCROLL_AREA_THUMB_ATTR]: "",
629
+ ...attachRef(this.opts.ref, (v) => (this.scrollbarState.scrollbarVis.thumbNode = v)),
664
630
  }));
665
631
  }
666
632
  class ScrollAreaCornerImplState {
@@ -682,7 +648,6 @@ class ScrollAreaCornerImplState {
682
648
  this.root.cornerWidth = width;
683
649
  this.#width = width;
684
650
  });
685
- useRefById(opts);
686
651
  }
687
652
  props = $derived.by(() => ({
688
653
  id: this.opts.id.current,
@@ -695,6 +660,7 @@ class ScrollAreaCornerImplState {
695
660
  bottom: 0,
696
661
  },
697
662
  [SCROLL_AREA_CORNER_ATTR]: "",
663
+ ...attachRef(this.opts.ref),
698
664
  }));
699
665
  }
700
666
  export const ScrollAreaRootContext = new Context("ScrollArea.Root");
@@ -3,12 +3,14 @@
3
3
  import type { SelectContentStaticProps } from "../types.js";
4
4
  import { useSelectContent } from "../select.svelte.js";
5
5
  import PopperLayer from "../../utilities/popper-layer/popper-layer.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
  import PopperLayerForceMount from "../../utilities/popper-layer/popper-layer-force-mount.svelte";
9
9
 
10
+ const uid = $props.id();
11
+
10
12
  let {
11
- id = useId(),
13
+ id = createId(uid),
12
14
  ref = $bindable(null),
13
15
  forceMount = false,
14
16
  onInteractOutside = noop,
@@ -36,6 +38,7 @@
36
38
  <PopperLayerForceMount
37
39
  {...mergedProps}
38
40
  {...contentState.popperProps}
41
+ ref={contentState.opts.ref}
39
42
  isStatic
40
43
  enabled={contentState.root.opts.open.current}
41
44
  {id}
@@ -57,6 +60,7 @@
57
60
  <PopperLayer
58
61
  {...mergedProps}
59
62
  {...contentState.popperProps}
63
+ ref={contentState.opts.ref}
60
64
  isStatic
61
65
  present={contentState.root.opts.open.current}
62
66
  {id}
@@ -3,12 +3,14 @@
3
3
  import type { SelectContentProps } from "../types.js";
4
4
  import { useSelectContent } from "../select.svelte.js";
5
5
  import PopperLayer from "../../utilities/popper-layer/popper-layer.svelte";
6
- import { useId } from "../../../internal/use-id.js";
7
6
  import { noop } from "../../../internal/noop.js";
8
7
  import PopperLayerForceMount from "../../utilities/popper-layer/popper-layer-force-mount.svelte";
8
+ import { createId } from "../../../internal/create-id.js";
9
+
10
+ const uid = $props.id();
9
11
 
10
12
  let {
11
- id = useId(),
13
+ id = createId(uid),
12
14
  ref = $bindable(null),
13
15
  forceMount = false,
14
16
  side = "bottom",
@@ -37,6 +39,7 @@
37
39
  <PopperLayerForceMount
38
40
  {...mergedProps}
39
41
  {...contentState.popperProps}
42
+ ref={contentState.opts.ref}
40
43
  {side}
41
44
  enabled={contentState.root.opts.open.current}
42
45
  {id}
@@ -60,6 +63,7 @@
60
63
  <PopperLayer
61
64
  {...mergedProps}
62
65
  {...contentState.popperProps}
66
+ ref={contentState.opts.ref}
63
67
  {side}
64
68
  present={contentState.root.opts.open.current}
65
69
  {id}
@@ -2,10 +2,11 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { SelectGroupHeadingProps } from "../types.js";
4
4
  import { useSelectGroupHeading } from "../select.svelte.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
6
 
7
+ const uid = $props.id();
7
8
  let {
8
- id = useId(),
9
+ id = createId(uid),
9
10
  ref = $bindable(null),
10
11
  child,
11
12
  children,
@@ -2,10 +2,12 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import { useSelectGroup } from "../select.svelte.js";
4
4
  import type { SelectGroupProps } from "../types.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
  ref = $bindable(null),
10
12
  children,
11
13
  child,
@@ -2,12 +2,14 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import { useSelectItem } from "../select.svelte.js";
4
4
  import type { SelectItemProps } from "../types.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
6
  import { noop } from "../../../internal/noop.js";
7
7
  import Mounted from "../../utilities/mounted.svelte";
8
8
 
9
+ const uid = $props.id();
10
+
9
11
  let {
10
- id = useId(),
12
+ id = createId(uid),
11
13
  ref = $bindable(null),
12
14
  value,
13
15
  label = value,
@@ -2,11 +2,13 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { SelectScrollDownButtonProps } from "../types.js";
4
4
  import { useSelectScrollDownButton } from "../select.svelte.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
6
  import { Mounted } from "../../utilities/index.js";
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
  delay = () => 50,
12
14
  child,
@@ -2,11 +2,13 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { SelectScrollUpButtonProps } from "../types.js";
4
4
  import { useSelectScrollUpButton } from "../select.svelte.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
6
  import { Mounted } from "../../utilities/index.js";
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
  delay = () => 50,
12
14
  child,