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,10 +2,12 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { CommandGroupItemsProps } from "../types.js";
4
4
  import { useCommandGroupItems } from "../command.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
  ref = $bindable(null),
10
12
  children,
11
13
  child,
@@ -2,10 +2,12 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { CommandGroupProps } from "../types.js";
4
4
  import { useCommandGroupContainer } from "../command.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
  ref = $bindable(null),
10
12
  value = "",
11
13
  forceMount = false,
@@ -2,12 +2,14 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { CommandInputProps } from "../types.js";
4
4
  import { useCommandInput } from "../command.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
  value = $bindable(""),
9
11
  autofocus = false,
10
- id = useId(),
12
+ id = createId(uid),
11
13
  ref = $bindable(null),
12
14
  child,
13
15
  ...restProps
@@ -3,10 +3,12 @@
3
3
  import type { CommandItemProps } from "../types.js";
4
4
  import { useCommandItem } from "../command.svelte.js";
5
5
  import { noop } from "../../../internal/noop.js";
6
- import { useId } from "../../../internal/use-id.js";
6
+ import { createId } from "../../../internal/create-id.js";
7
+
8
+ const uid = $props.id();
7
9
 
8
10
  let {
9
- id = useId(),
11
+ id = createId(uid),
10
12
  ref = $bindable(null),
11
13
  value = "",
12
14
  disabled = false,
@@ -3,10 +3,12 @@
3
3
  import type { CommandLinkItemProps } from "../types.js";
4
4
  import { useCommandItem } from "../command.svelte.js";
5
5
  import { noop } from "../../../internal/noop.js";
6
- import { useId } from "../../../internal/use-id.js";
6
+ import { createId } from "../../../internal/create-id.js";
7
+
8
+ const uid = $props.id();
7
9
 
8
10
  let {
9
- id = useId(),
11
+ id = createId(uid),
10
12
  ref = $bindable(null),
11
13
  value = "",
12
14
  disabled = false,
@@ -2,10 +2,12 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { CommandListProps } from "../types.js";
4
4
  import { useCommandList } from "../command.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
  ref = $bindable(null),
10
12
  child,
11
13
  children,
@@ -2,11 +2,13 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { CommandLoadingProps } from "../types.js";
4
4
  import { useCommandLoading } from "../command.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
  progress = 0,
9
- id = useId(),
11
+ id = createId(uid),
10
12
  ref = $bindable(null),
11
13
  children,
12
14
  child,
@@ -2,10 +2,12 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { CommandSeparatorProps } from "../types.js";
4
4
  import { useCommandSeparator } from "../command.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
  ref = $bindable(null),
10
12
  forceMount = false,
11
13
  children,
@@ -2,10 +2,12 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import { useCommandViewport } from "../command.svelte.js";
4
4
  import type { CommandViewportProps } 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,
@@ -4,11 +4,13 @@
4
4
  import type { CommandRootProps } from "../types.js";
5
5
  import CommandLabel from "./_command-label.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 { computeCommandScore } from "../index.js";
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
  value = $bindable(""),
14
16
  onValueChange = noop,
@@ -5,7 +5,6 @@
5
5
  import { useId } from "../../../internal/use-id.js";
6
6
  import { noop } from "../../../internal/noop.js";
7
7
  import PopperLayer from "../../utilities/popper-layer/popper-layer.svelte";
8
- import Mounted from "../../utilities/mounted.svelte";
9
8
  import { getFloatingContentCSSVars } from "../../../internal/floating-svelte/floating-utils.svelte.js";
10
9
  import PopperLayerForceMount from "../../utilities/popper-layer/popper-layer-force-mount.svelte";
11
10
 
@@ -66,6 +65,7 @@
66
65
  <PopperLayerForceMount
67
66
  {...mergedProps}
68
67
  {...contentState.popperProps}
68
+ ref={contentState.opts.ref}
69
69
  isStatic
70
70
  side="right"
71
71
  sideOffset={2}
@@ -91,13 +91,13 @@
91
91
  {@render children?.()}
92
92
  </div>
93
93
  {/if}
94
- <Mounted bind:mounted={contentState.mounted} />
95
94
  {/snippet}
96
95
  </PopperLayerForceMount>
97
96
  {:else if !forceMount}
98
97
  <PopperLayer
99
98
  {...mergedProps}
100
99
  {...contentState.popperProps}
100
+ ref={contentState.opts.ref}
101
101
  isStatic
102
102
  side="right"
103
103
  sideOffset={2}
@@ -123,7 +123,6 @@
123
123
  {@render children?.()}
124
124
  </div>
125
125
  {/if}
126
- <Mounted bind:mounted={contentState.mounted} />
127
126
  {/snippet}
128
127
  </PopperLayer>
129
128
  {/if}
@@ -5,7 +5,6 @@
5
5
  import { useId } from "../../../internal/use-id.js";
6
6
  import { noop } from "../../../internal/noop.js";
7
7
  import PopperLayer from "../../utilities/popper-layer/popper-layer.svelte";
8
- import Mounted from "../../utilities/mounted.svelte";
9
8
  import { getFloatingContentCSSVars } from "../../../internal/floating-svelte/floating-utils.svelte.js";
10
9
  import PopperLayerForceMount from "../../utilities/popper-layer/popper-layer-force-mount.svelte";
11
10
 
@@ -68,6 +67,7 @@
68
67
  <PopperLayerForceMount
69
68
  {...mergedProps}
70
69
  {...contentState.popperProps}
70
+ ref={contentState.opts.ref}
71
71
  side="right"
72
72
  sideOffset={2}
73
73
  align="start"
@@ -94,13 +94,13 @@
94
94
  </div>
95
95
  </div>
96
96
  {/if}
97
- <Mounted bind:mounted={contentState.mounted} />
98
97
  {/snippet}
99
98
  </PopperLayerForceMount>
100
99
  {:else if !forceMount}
101
100
  <PopperLayer
102
101
  {...mergedProps}
103
102
  {...contentState.popperProps}
103
+ ref={contentState.opts.ref}
104
104
  side="right"
105
105
  sideOffset={2}
106
106
  align="start"
@@ -127,7 +127,6 @@
127
127
  </div>
128
128
  </div>
129
129
  {/if}
130
- <Mounted bind:mounted={contentState.mounted} />
131
130
  {/snippet}
132
131
  </PopperLayer>
133
132
  {/if}
@@ -28,7 +28,7 @@
28
28
  );
29
29
  </script>
30
30
 
31
- <FloatingLayer.Anchor {id} virtualEl={triggerState.virtualElement}>
31
+ <FloatingLayer.Anchor {id} virtualEl={triggerState.virtualElement} ref={triggerState.opts.ref}>
32
32
  {#if child}
33
33
  {@render child({ props: mergedProps })}
34
34
  {:else}
@@ -3,10 +3,12 @@
3
3
  import { useDateFieldInput } from "../date-field.svelte.js";
4
4
  import type { DateFieldInputProps } from "../types.js";
5
5
  import DateFieldHiddenInput from "./date-field-hidden-input.svelte";
6
- import { useId } from "../../../internal/use-id.js";
6
+ import { createId } from "../../../internal/create-id.js";
7
+
8
+ const uid = $props.id();
7
9
 
8
10
  let {
9
- id = useId(),
11
+ id = createId(uid),
10
12
  ref = $bindable(null),
11
13
  name = "",
12
14
  children,
@@ -2,10 +2,12 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import { useDateFieldLabel } from "../date-field.svelte.js";
4
4
  import type { DateFieldLabelProps } 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,10 +2,12 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import { useDateFieldSegment } from "../date-field.svelte.js";
4
4
  import type { DateFieldSegmentProps } 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,
@@ -1,10 +1,10 @@
1
1
  import type { Updater } from "svelte/store";
2
2
  import type { DateValue } from "@internationalized/date";
3
- import { type WritableBox } from "svelte-toolbelt";
3
+ import { type WritableBox, DOMContext } from "svelte-toolbelt";
4
4
  import type { DateRangeFieldRootState } from "../date-range-field/date-range-field.svelte.js";
5
5
  import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
6
6
  import type { BitsFocusEvent, BitsKeyboardEvent, BitsMouseEvent, WithRefProps } from "../../internal/types.js";
7
- import type { DateAndTimeSegmentObj, DateOnInvalid, DateSegmentObj, DateSegmentPart, DateValidator, Granularity, HourCycle, SegmentPart, SegmentValueObj, TimeSegmentObj, TimeSegmentPart } from "../../shared/date/types.js";
7
+ import type { DateAndTimeSegmentObj, DateOnInvalid, DateSegmentObj, DateSegmentPart, DateValidator, Granularity, HourCycle, SegmentPart, SegmentValueObj, TimeSegmentObj, EditableTimeSegmentPart } from "../../shared/date/types.js";
8
8
  import { type Formatter } from "../../internal/date-time/formatter.js";
9
9
  import { type Announcer } from "../../internal/date-time/announcer.js";
10
10
  export declare const DATE_FIELD_INPUT_ATTR = "data-date-field-input";
@@ -74,6 +74,7 @@ export declare class DateFieldRootState {
74
74
  dayPeriodNode: HTMLElement | null;
75
75
  rangeRoot: DateRangeFieldRootState | undefined;
76
76
  name: string;
77
+ domContext: DOMContext;
77
78
  constructor(props: DateFieldRootStateProps, rangeRoot?: DateRangeFieldRootState);
78
79
  setName(name: string): void;
79
80
  /**
@@ -134,7 +135,7 @@ export declare class DateFieldRootState {
134
135
  caretColor: string;
135
136
  };
136
137
  };
137
- updateSegment<T extends keyof DateAndTimeSegmentObj>(part: T, cb: T extends DateSegmentPart ? Updater<DateSegmentObj[T]> : T extends TimeSegmentPart ? Updater<TimeSegmentObj[T]> : Updater<DateAndTimeSegmentObj[T]>): void;
138
+ updateSegment<T extends keyof DateAndTimeSegmentObj>(part: T, cb: T extends DateSegmentPart ? Updater<DateSegmentObj[T]> : T extends EditableTimeSegmentPart ? Updater<TimeSegmentObj[T]> : Updater<DateAndTimeSegmentObj[T]>): void;
138
139
  handleSegmentClick(e: BitsMouseEvent): void;
139
140
  getBaseSegmentAttrs(part: SegmentPart, segmentId: string): {
140
141
  "aria-invalid": "true" | undefined;
@@ -165,6 +166,7 @@ export declare class DateFieldInputState {
165
166
  #private;
166
167
  readonly opts: DateFieldInputStateProps;
167
168
  readonly root: DateFieldRootState;
169
+ readonly domContext: DOMContext;
168
170
  constructor(opts: DateFieldInputStateProps, root: DateFieldRootState);
169
171
  props: {
170
172
  readonly id: string;
@@ -319,7 +321,7 @@ declare class DateFieldDayPeriodSegmentState {
319
321
  "aria-label": string;
320
322
  "aria-valuemin": number;
321
323
  "aria-valuemax": number;
322
- "aria-valuenow": number | "AM" | "PM";
324
+ "aria-valuenow": number;
323
325
  "aria-valuetext": "AM" | "PM";
324
326
  onkeydown: (e: BitsKeyboardEvent) => void;
325
327
  onclick: (e: BitsMouseEvent) => void;
@@ -349,7 +351,7 @@ declare class DateFieldDayPeriodSegmentState {
349
351
  "aria-label": string;
350
352
  "aria-valuemin": number;
351
353
  "aria-valuemax": number;
352
- "aria-valuenow": number | "AM" | "PM";
354
+ "aria-valuenow": number;
353
355
  "aria-valuetext": "AM" | "PM";
354
356
  onkeydown: (e: BitsKeyboardEvent) => void;
355
357
  onclick: (e: BitsMouseEvent) => void;
@@ -1,6 +1,6 @@
1
- import { box, onDestroyEffect, useRefById } from "svelte-toolbelt";
1
+ import { box, onDestroyEffect, attachRef, DOMContext } from "svelte-toolbelt";
2
2
  import { onMount, untrack } from "svelte";
3
- import { Context } from "runed";
3
+ import { Context, watch } from "runed";
4
4
  import { getAriaDisabled, getAriaHidden, getAriaInvalid, getAriaReadonly, getDataDisabled, getDataInvalid, getDataReadonly, } from "../../internal/attrs.js";
5
5
  import { isBrowser, isNumberString } from "../../internal/is.js";
6
6
  import { kbd } from "../../internal/kbd.js";
@@ -8,7 +8,7 @@ import { useId } from "../../internal/use-id.js";
8
8
  import { createFormatter } from "../../internal/date-time/formatter.js";
9
9
  import { getAnnouncer } from "../../internal/date-time/announcer.js";
10
10
  import { areAllSegmentsFilled, createContent, getValueFromSegments, inferGranularity, initSegmentStates, initializeSegmentValues, isAcceptableSegmentKey, isDateAndTimeSegmentObj, isDateSegmentPart, isFirstSegment, removeDescriptionElement, setDescription, } from "../../internal/date-time/field/helpers.js";
11
- import { DATE_SEGMENT_PARTS, TIME_SEGMENT_PARTS } from "../../internal/date-time/field/parts.js";
11
+ import { DATE_SEGMENT_PARTS, EDITABLE_TIME_SEGMENT_PARTS, } from "../../internal/date-time/field/parts.js";
12
12
  import { getDaysInMonth, isBefore, toDate } from "../../internal/date-time/utils.js";
13
13
  import { getFirstSegment, handleSegmentNavigation, isSegmentNavigationKey, moveToNextSegment, moveToPrevSegment, } from "../../internal/date-time/field/segments.js";
14
14
  export const DATE_FIELD_INPUT_ATTR = "data-date-field-input";
@@ -99,6 +99,7 @@ export class DateFieldRootState {
99
99
  dayPeriodNode = $state(null);
100
100
  rangeRoot = undefined;
101
101
  name = $state("");
102
+ domContext = new DOMContext(() => null);
102
103
  constructor(props, rangeRoot) {
103
104
  this.rangeRoot = rangeRoot;
104
105
  /**
@@ -127,7 +128,7 @@ export class DateFieldRootState {
127
128
  this.formatter = createFormatter(this.locale.current);
128
129
  this.initialSegments = initializeSegmentValues(this.inferredGranularity);
129
130
  this.segmentValues = this.initialSegments;
130
- this.announcer = getAnnouncer();
131
+ this.announcer = getAnnouncer(null);
131
132
  this.getFieldNode = this.getFieldNode.bind(this);
132
133
  this.updateSegment = this.updateSegment.bind(this);
133
134
  this.handleSegmentClick = this.handleSegmentClick.bind(this);
@@ -138,12 +139,12 @@ export class DateFieldRootState {
138
139
  });
139
140
  });
140
141
  onMount(() => {
141
- this.announcer = getAnnouncer();
142
+ this.announcer = getAnnouncer(this.domContext.getDocument());
142
143
  });
143
144
  onDestroyEffect(() => {
144
145
  if (rangeRoot)
145
146
  return;
146
- removeDescriptionElement(this.descriptionId);
147
+ removeDescriptionElement(this.descriptionId, this.domContext.getDocument());
147
148
  });
148
149
  $effect(() => {
149
150
  if (rangeRoot)
@@ -157,7 +158,12 @@ export class DateFieldRootState {
157
158
  return;
158
159
  if (this.value.current) {
159
160
  const descriptionId = untrack(() => this.descriptionId);
160
- setDescription(descriptionId, this.formatter, this.value.current);
161
+ setDescription({
162
+ id: descriptionId,
163
+ formatter: this.formatter,
164
+ value: this.value.current,
165
+ doc: this.domContext.getDocument(),
166
+ });
161
167
  }
162
168
  const placeholder = untrack(() => this.placeholder.current);
163
169
  if (this.value.current && placeholder !== this.value.current) {
@@ -183,13 +189,10 @@ export class DateFieldRootState {
183
189
  this.segmentValues = initializeSegmentValues(this.inferredGranularity);
184
190
  }
185
191
  });
186
- $effect(() => {
187
- this.validationStatus;
188
- untrack(() => {
189
- if (this.validationStatus !== false) {
190
- this.onInvalid.current?.(this.validationStatus.reason, this.validationStatus.message);
191
- }
192
- });
192
+ watch(() => this.validationStatus, () => {
193
+ if (this.validationStatus !== false) {
194
+ this.onInvalid.current?.(this.validationStatus.reason, this.validationStatus.message);
195
+ }
193
196
  });
194
197
  }
195
198
  setName(name) {
@@ -281,7 +284,7 @@ export class DateFieldRootState {
281
284
  return [part, `${partValue}`];
282
285
  });
283
286
  if ("hour" in value) {
284
- const timeValues = TIME_SEGMENT_PARTS.map((part) => {
287
+ const timeValues = EDITABLE_TIME_SEGMENT_PARTS.map((part) => {
285
288
  if (part === "dayPeriod") {
286
289
  if (this.states.dayPeriod.updating) {
287
290
  return [part, this.states.dayPeriod.updating];
@@ -556,23 +559,20 @@ export class DateFieldRootState {
556
559
  export class DateFieldInputState {
557
560
  opts;
558
561
  root;
562
+ domContext;
559
563
  constructor(opts, root) {
560
564
  this.opts = opts;
561
565
  this.root = root;
566
+ this.domContext = new DOMContext(opts.ref);
567
+ this.root.domContext = this.domContext;
562
568
  $effect(() => {
563
569
  this.root.setName(this.opts.name.current);
564
570
  });
565
- useRefById({
566
- ...opts,
567
- onRefChange: (node) => {
568
- this.root.setFieldNode(node);
569
- },
570
- });
571
571
  }
572
572
  #ariaDescribedBy = $derived.by(() => {
573
573
  if (!isBrowser)
574
574
  return undefined;
575
- const doesDescriptionExist = document.getElementById(this.root.descriptionId);
575
+ const doesDescriptionExist = this.domContext.getElementById(this.root.descriptionId);
576
576
  if (!doesDescriptionExist)
577
577
  return undefined;
578
578
  return this.root.descriptionId;
@@ -586,6 +586,7 @@ export class DateFieldInputState {
586
586
  "data-invalid": this.root.isInvalid ? "" : undefined,
587
587
  "data-disabled": getDataDisabled(this.root.disabled.current),
588
588
  [DATE_FIELD_INPUT_ATTR]: "",
589
+ ...attachRef(this.opts.ref, (v) => this.root.setFieldNode(v)),
589
590
  }));
590
591
  }
591
592
  class DateFieldHiddenInputState {
@@ -610,12 +611,6 @@ class DateFieldLabelState {
610
611
  this.opts = opts;
611
612
  this.root = root;
612
613
  this.onclick = this.onclick.bind(this);
613
- useRefById({
614
- ...opts,
615
- onRefChange: (node) => {
616
- this.root.setLabelNode(node);
617
- },
618
- });
619
614
  }
620
615
  onclick(_) {
621
616
  if (this.root.disabled.current)
@@ -631,6 +626,7 @@ class DateFieldLabelState {
631
626
  "data-disabled": getDataDisabled(this.root.disabled.current),
632
627
  [DATE_FIELD_LABEL_ATTR]: "",
633
628
  onclick: this.onclick,
629
+ ...attachRef(this.opts.ref, (v) => this.root.setLabelNode(v)),
634
630
  }));
635
631
  }
636
632
  // Base class for numeric segments
@@ -648,7 +644,6 @@ class BaseNumericSegmentState {
648
644
  this.announcer = root.announcer;
649
645
  this.onkeydown = this.onkeydown.bind(this);
650
646
  this.onfocusout = this.onfocusout.bind(this);
651
- useRefById(opts);
652
647
  }
653
648
  #getMax() {
654
649
  return typeof this.config.max === "function" ? this.config.max(this.root) : this.config.max;
@@ -893,6 +888,7 @@ class BaseNumericSegmentState {
893
888
  onfocusout: this.onfocusout,
894
889
  onclick: this.root.handleSegmentClick,
895
890
  ...this.root.getBaseSegmentAttrs(this.part, this.opts.id.current),
891
+ ...attachRef(this.opts.ref),
896
892
  };
897
893
  });
898
894
  }
@@ -1074,12 +1070,6 @@ class DateFieldDayPeriodSegmentState {
1074
1070
  this.root = root;
1075
1071
  this.#announcer = this.root.announcer;
1076
1072
  this.onkeydown = this.onkeydown.bind(this);
1077
- useRefById({
1078
- ...opts,
1079
- onRefChange: (node) => {
1080
- this.root.dayPeriodNode = node;
1081
- },
1082
- });
1083
1073
  }
1084
1074
  onkeydown(e) {
1085
1075
  if (e.ctrlKey || e.metaKey || this.root.disabled.current)
@@ -1126,7 +1116,7 @@ class DateFieldDayPeriodSegmentState {
1126
1116
  return;
1127
1117
  const valueMin = 0;
1128
1118
  const valueMax = 12;
1129
- const valueNow = segmentValues.dayPeriod ?? 0;
1119
+ const valueNow = segmentValues.dayPeriod === "AM" ? 0 : 12;
1130
1120
  const valueText = segmentValues.dayPeriod ?? "AM";
1131
1121
  return {
1132
1122
  ...this.root.sharedSegmentAttrs,
@@ -1140,6 +1130,7 @@ class DateFieldDayPeriodSegmentState {
1140
1130
  onkeydown: this.onkeydown,
1141
1131
  onclick: this.root.handleSegmentClick,
1142
1132
  ...this.root.getBaseSegmentAttrs("dayPeriod", this.opts.id.current),
1133
+ ...attachRef(this.opts.ref, (v) => (this.root.dayPeriodNode = v)),
1143
1134
  };
1144
1135
  });
1145
1136
  }
@@ -1149,12 +1140,12 @@ class DateFieldDayLiteralSegmentState {
1149
1140
  constructor(opts, root) {
1150
1141
  this.opts = opts;
1151
1142
  this.root = root;
1152
- useRefById(opts);
1153
1143
  }
1154
1144
  props = $derived.by(() => ({
1155
1145
  id: this.opts.id.current,
1156
1146
  "aria-hidden": getAriaHidden(true),
1157
1147
  ...this.root.getBaseSegmentAttrs("literal", this.opts.id.current),
1148
+ ...attachRef(this.opts.ref),
1158
1149
  }));
1159
1150
  }
1160
1151
  class DateFieldTimeZoneSegmentState {
@@ -1164,7 +1155,6 @@ class DateFieldTimeZoneSegmentState {
1164
1155
  this.opts = opts;
1165
1156
  this.root = root;
1166
1157
  this.onkeydown = this.onkeydown.bind(this);
1167
- useRefById(opts);
1168
1158
  }
1169
1159
  onkeydown(e) {
1170
1160
  if (e.key !== kbd.TAB)
@@ -1186,6 +1176,7 @@ class DateFieldTimeZoneSegmentState {
1186
1176
  tabindex: 0,
1187
1177
  ...this.root.getBaseSegmentAttrs("timeZoneName", this.opts.id.current),
1188
1178
  "data-readonly": getDataReadonly(true),
1179
+ ...attachRef(this.opts.ref),
1189
1180
  }));
1190
1181
  }
1191
1182
  // Utils/helpers
@@ -2,13 +2,15 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { DatePickerCalendarProps } from "../types.js";
4
4
  import { DatePickerRootContext } from "../date-picker.svelte.js";
5
- import { useId } from "../../../internal/use-id.js";
6
5
  import { useCalendarRoot } from "../../calendar/calendar.svelte.js";
6
+ import { createId } from "../../../internal/create-id.js";
7
+
8
+ const uid = $props.id();
7
9
 
8
10
  let {
9
11
  children,
10
12
  child,
11
- id = useId(),
13
+ id = createId(uid),
12
14
  ref = $bindable(null),
13
15
  ...restProps
14
16
  }: DatePickerCalendarProps = $props();
@@ -2,11 +2,13 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { DateRangeFieldInputProps } from "../types.js";
4
4
  import { useDateRangeFieldInput } from "../date-range-field.svelte.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
6
  import DateFieldHiddenInput from "../../date-field/components/date-field-hidden-input.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
  name = "",
12
14
  child,
@@ -2,10 +2,12 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import { useDateRangeFieldLabel } from "../date-range-field.svelte.js";
4
4
  import type { DateRangeFieldLabelProps } 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,
@@ -3,14 +3,16 @@
3
3
  import type { DateValue } from "@internationalized/date";
4
4
  import { useDateRangeFieldRoot } from "../date-range-field.svelte.js";
5
5
  import type { DateRangeFieldRootProps } from "../types.js";
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 type { DateRange } from "../../../shared/index.js";
9
9
  import { getDefaultDate } from "../../../internal/date-time/utils.js";
10
10
  import { watch } from "runed";
11
11
 
12
+ const uid = $props.id();
13
+
12
14
  let {
13
- id = useId(),
15
+ id = createId(uid),
14
16
  ref = $bindable(null),
15
17
  value = $bindable(),
16
18
  onValueChange = noop,
@@ -1,4 +1,5 @@
1
1
  import type { DateValue } from "@internationalized/date";
2
+ import { DOMContext } from "svelte-toolbelt";
2
3
  import { Context } from "runed";
3
4
  import type { DateFieldRootState } from "../date-field/date-field.svelte.js";
4
5
  import { DateFieldInputState } from "../date-field/date-field.svelte.js";
@@ -41,6 +42,7 @@ export declare class DateRangeFieldRootState {
41
42
  startValueComplete: boolean;
42
43
  endValueComplete: boolean;
43
44
  rangeComplete: boolean;
45
+ domContext: DOMContext;
44
46
  constructor(opts: DateRangeFieldRootStateProps);
45
47
  validationStatus: false | {
46
48
  readonly reason: "custom";