bits-ui 2.6.2 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/README.md +4 -4
  2. package/dist/bits/accordion/accordion.svelte.d.ts +66 -58
  3. package/dist/bits/accordion/accordion.svelte.js +56 -51
  4. package/dist/bits/accordion/components/accordion-content.svelte +4 -4
  5. package/dist/bits/accordion/components/accordion-header.svelte +2 -2
  6. package/dist/bits/accordion/components/accordion-item.svelte +2 -2
  7. package/dist/bits/accordion/components/accordion-trigger.svelte +2 -2
  8. package/dist/bits/accordion/components/accordion.svelte +2 -2
  9. package/dist/bits/alert-dialog/components/alert-dialog-action.svelte +2 -2
  10. package/dist/bits/alert-dialog/components/alert-dialog-cancel.svelte +2 -2
  11. package/dist/bits/alert-dialog/components/alert-dialog-content.svelte +3 -3
  12. package/dist/bits/alert-dialog/components/alert-dialog.svelte +9 -3
  13. package/dist/bits/aspect-ratio/aspect-ratio.svelte.d.ts +10 -16
  14. package/dist/bits/aspect-ratio/aspect-ratio.svelte.js +4 -11
  15. package/dist/bits/aspect-ratio/components/aspect-ratio.svelte +2 -2
  16. package/dist/bits/avatar/avatar.svelte.d.ts +25 -33
  17. package/dist/bits/avatar/avatar.svelte.js +20 -21
  18. package/dist/bits/avatar/components/avatar-fallback.svelte +2 -2
  19. package/dist/bits/avatar/components/avatar-image.svelte +2 -2
  20. package/dist/bits/avatar/components/avatar.svelte +2 -2
  21. package/dist/bits/calendar/calendar.svelte.d.ts +117 -106
  22. package/dist/bits/calendar/calendar.svelte.js +51 -52
  23. package/dist/bits/calendar/components/calendar-cell.svelte +2 -2
  24. package/dist/bits/calendar/components/calendar-day.svelte +2 -2
  25. package/dist/bits/calendar/components/calendar-grid-body.svelte +2 -2
  26. package/dist/bits/calendar/components/calendar-grid-head.svelte +2 -2
  27. package/dist/bits/calendar/components/calendar-grid-row.svelte +2 -2
  28. package/dist/bits/calendar/components/calendar-grid.svelte +2 -2
  29. package/dist/bits/calendar/components/calendar-head-cell.svelte +2 -2
  30. package/dist/bits/calendar/components/calendar-header.svelte +2 -2
  31. package/dist/bits/calendar/components/calendar-heading.svelte +5 -5
  32. package/dist/bits/calendar/components/calendar-month-select.svelte +2 -2
  33. package/dist/bits/calendar/components/calendar-next-button.svelte +2 -2
  34. package/dist/bits/calendar/components/calendar-prev-button.svelte +2 -2
  35. package/dist/bits/calendar/components/calendar-year-select.svelte +2 -2
  36. package/dist/bits/calendar/components/calendar.svelte +2 -2
  37. package/dist/bits/checkbox/checkbox.svelte.d.ts +37 -34
  38. package/dist/bits/checkbox/checkbox.svelte.js +19 -22
  39. package/dist/bits/checkbox/components/checkbox-group-label.svelte +2 -2
  40. package/dist/bits/checkbox/components/checkbox-group.svelte +2 -2
  41. package/dist/bits/checkbox/components/checkbox-input.svelte +2 -2
  42. package/dist/bits/checkbox/components/checkbox.svelte +2 -2
  43. package/dist/bits/collapsible/collapsible.svelte.d.ts +30 -27
  44. package/dist/bits/collapsible/collapsible.svelte.js +23 -15
  45. package/dist/bits/collapsible/components/collapsible-content.svelte +5 -5
  46. package/dist/bits/collapsible/components/collapsible-content.svelte.d.ts +1 -4
  47. package/dist/bits/collapsible/components/collapsible-trigger.svelte +2 -2
  48. package/dist/bits/collapsible/components/collapsible.svelte +4 -2
  49. package/dist/bits/collapsible/types.d.ts +4 -0
  50. package/dist/bits/combobox/components/combobox-input.svelte +2 -2
  51. package/dist/bits/combobox/components/combobox-trigger.svelte +2 -2
  52. package/dist/bits/combobox/components/combobox.svelte +4 -2
  53. package/dist/bits/command/command.svelte.d.ts +103 -92
  54. package/dist/bits/command/command.svelte.js +55 -57
  55. package/dist/bits/command/components/_command-label.svelte +2 -2
  56. package/dist/bits/command/components/command-empty.svelte +2 -2
  57. package/dist/bits/command/components/command-group-heading.svelte +2 -2
  58. package/dist/bits/command/components/command-group-items.svelte +2 -2
  59. package/dist/bits/command/components/command-group.svelte +2 -2
  60. package/dist/bits/command/components/command-input.svelte +2 -2
  61. package/dist/bits/command/components/command-item.svelte +2 -2
  62. package/dist/bits/command/components/command-link-item.svelte +2 -2
  63. package/dist/bits/command/components/command-list.svelte +2 -2
  64. package/dist/bits/command/components/command-loading.svelte +2 -2
  65. package/dist/bits/command/components/command-separator.svelte +2 -2
  66. package/dist/bits/command/components/command-viewport.svelte +2 -2
  67. package/dist/bits/command/components/command.svelte +2 -2
  68. package/dist/bits/context-menu/components/context-menu-content-static.svelte +3 -3
  69. package/dist/bits/context-menu/components/context-menu-content.svelte +3 -3
  70. package/dist/bits/context-menu/components/context-menu-trigger.svelte +2 -2
  71. package/dist/bits/context-menu/components/context-menu.svelte +16 -11
  72. package/dist/bits/date-field/components/date-field-hidden-input.svelte +2 -2
  73. package/dist/bits/date-field/components/date-field-input.svelte +2 -2
  74. package/dist/bits/date-field/components/date-field-label.svelte +2 -2
  75. package/dist/bits/date-field/components/date-field-segment.svelte +2 -2
  76. package/dist/bits/date-field/components/date-field.svelte +2 -2
  77. package/dist/bits/date-field/date-field.svelte.d.ts +85 -74
  78. package/dist/bits/date-field/date-field.svelte.js +55 -53
  79. package/dist/bits/date-picker/components/date-picker-calendar.svelte +2 -2
  80. package/dist/bits/date-picker/components/date-picker.svelte +8 -6
  81. package/dist/bits/date-picker/date-picker.svelte.d.ts +10 -10
  82. package/dist/bits/date-picker/date-picker.svelte.js +6 -5
  83. package/dist/bits/date-picker/types.d.ts +4 -0
  84. package/dist/bits/date-range-field/components/date-range-field-input.svelte +2 -2
  85. package/dist/bits/date-range-field/components/date-range-field-label.svelte +2 -2
  86. package/dist/bits/date-range-field/components/date-range-field.svelte +2 -2
  87. package/dist/bits/date-range-field/date-range-field.svelte.d.ts +32 -29
  88. package/dist/bits/date-range-field/date-range-field.svelte.js +33 -32
  89. package/dist/bits/date-range-picker/components/date-range-picker-calendar.svelte +2 -2
  90. package/dist/bits/date-range-picker/components/date-range-picker.svelte +8 -6
  91. package/dist/bits/date-range-picker/date-range-picker.svelte.d.ts +10 -10
  92. package/dist/bits/date-range-picker/date-range-picker.svelte.js +6 -5
  93. package/dist/bits/date-range-picker/types.d.ts +4 -0
  94. package/dist/bits/dialog/components/dialog-close.svelte +2 -2
  95. package/dist/bits/dialog/components/dialog-content.svelte +3 -3
  96. package/dist/bits/dialog/components/dialog-description.svelte +2 -2
  97. package/dist/bits/dialog/components/dialog-overlay.svelte +3 -6
  98. package/dist/bits/dialog/components/dialog-title.svelte +2 -2
  99. package/dist/bits/dialog/components/dialog-trigger.svelte +2 -2
  100. package/dist/bits/dialog/components/dialog.svelte +9 -3
  101. package/dist/bits/dialog/dialog.svelte.d.ts +75 -65
  102. package/dist/bits/dialog/dialog.svelte.js +47 -38
  103. package/dist/bits/dialog/types.d.ts +4 -0
  104. package/dist/bits/dropdown-menu/components/dropdown-menu-content-static.svelte +3 -3
  105. package/dist/bits/dropdown-menu/components/dropdown-menu-content.svelte +3 -3
  106. package/dist/bits/label/components/label.svelte +2 -2
  107. package/dist/bits/label/label.svelte.d.ts +8 -7
  108. package/dist/bits/label/label.svelte.js +4 -4
  109. package/dist/bits/link-preview/components/link-preview-content-static.svelte +3 -3
  110. package/dist/bits/link-preview/components/link-preview-content.svelte +3 -3
  111. package/dist/bits/link-preview/components/link-preview-trigger.svelte +2 -2
  112. package/dist/bits/link-preview/components/link-preview.svelte +4 -2
  113. package/dist/bits/link-preview/link-preview.svelte.d.ts +28 -25
  114. package/dist/bits/link-preview/link-preview.svelte.js +24 -16
  115. package/dist/bits/link-preview/types.d.ts +4 -0
  116. package/dist/bits/menu/components/menu-arrow.svelte +2 -2
  117. package/dist/bits/menu/components/menu-checkbox-group.svelte +2 -2
  118. package/dist/bits/menu/components/menu-checkbox-item.svelte +2 -2
  119. package/dist/bits/menu/components/menu-content-static.svelte +3 -3
  120. package/dist/bits/menu/components/menu-content.svelte +3 -3
  121. package/dist/bits/menu/components/menu-group-heading.svelte +2 -2
  122. package/dist/bits/menu/components/menu-group.svelte +2 -2
  123. package/dist/bits/menu/components/menu-item.svelte +2 -2
  124. package/dist/bits/menu/components/menu-radio-group.svelte +2 -2
  125. package/dist/bits/menu/components/menu-radio-item.svelte +2 -2
  126. package/dist/bits/menu/components/menu-separator.svelte +2 -2
  127. package/dist/bits/menu/components/menu-sub-content-static.svelte +3 -3
  128. package/dist/bits/menu/components/menu-sub-content.svelte +3 -3
  129. package/dist/bits/menu/components/menu-sub-trigger.svelte +2 -2
  130. package/dist/bits/menu/components/menu-sub.svelte +9 -3
  131. package/dist/bits/menu/components/menu-trigger.svelte +2 -2
  132. package/dist/bits/menu/components/menu.svelte +16 -11
  133. package/dist/bits/menu/menu.svelte.d.ts +136 -119
  134. package/dist/bits/menu/menu.svelte.js +106 -96
  135. package/dist/bits/menu/types.d.ts +8 -0
  136. package/dist/bits/menubar/components/menubar-content-static.svelte +2 -2
  137. package/dist/bits/menubar/components/menubar-content.svelte +2 -2
  138. package/dist/bits/menubar/components/menubar-menu.svelte +2 -2
  139. package/dist/bits/menubar/components/menubar-trigger.svelte +4 -4
  140. package/dist/bits/menubar/components/menubar.svelte +2 -2
  141. package/dist/bits/menubar/menubar.svelte.d.ts +37 -34
  142. package/dist/bits/menubar/menubar.svelte.js +21 -21
  143. package/dist/bits/meter/components/meter.svelte +2 -2
  144. package/dist/bits/meter/meter.svelte.d.ts +10 -9
  145. package/dist/bits/meter/meter.svelte.js +4 -4
  146. package/dist/bits/navigation-menu/components/navigation-menu-content-impl.svelte +2 -2
  147. package/dist/bits/navigation-menu/components/navigation-menu-content.svelte +3 -3
  148. package/dist/bits/navigation-menu/components/navigation-menu-indicator-impl.svelte +2 -2
  149. package/dist/bits/navigation-menu/components/navigation-menu-indicator.svelte +3 -3
  150. package/dist/bits/navigation-menu/components/navigation-menu-item.svelte +2 -2
  151. package/dist/bits/navigation-menu/components/navigation-menu-link.svelte +2 -2
  152. package/dist/bits/navigation-menu/components/navigation-menu-list.svelte +2 -2
  153. package/dist/bits/navigation-menu/components/navigation-menu-sub.svelte +2 -2
  154. package/dist/bits/navigation-menu/components/navigation-menu-trigger.svelte +2 -2
  155. package/dist/bits/navigation-menu/components/navigation-menu-viewport.svelte +3 -3
  156. package/dist/bits/navigation-menu/components/navigation-menu.svelte +2 -2
  157. package/dist/bits/navigation-menu/navigation-menu.svelte.d.ts +116 -109
  158. package/dist/bits/navigation-menu/navigation-menu.svelte.js +78 -81
  159. package/dist/bits/pagination/components/pagination-next-button.svelte +2 -2
  160. package/dist/bits/pagination/components/pagination-page.svelte +2 -2
  161. package/dist/bits/pagination/components/pagination-prev-button.svelte +2 -2
  162. package/dist/bits/pagination/components/pagination.svelte +2 -2
  163. package/dist/bits/pagination/pagination.svelte.d.ts +34 -32
  164. package/dist/bits/pagination/pagination.svelte.js +15 -15
  165. package/dist/bits/pin-input/components/pin-input-cell.svelte +2 -2
  166. package/dist/bits/pin-input/components/pin-input.svelte +2 -2
  167. package/dist/bits/pin-input/pin-input.svelte.d.ts +22 -21
  168. package/dist/bits/pin-input/pin-input.svelte.js +9 -9
  169. package/dist/bits/popover/components/popover-close.svelte +2 -2
  170. package/dist/bits/popover/components/popover-content-static.svelte +3 -3
  171. package/dist/bits/popover/components/popover-content.svelte +3 -3
  172. package/dist/bits/popover/components/popover-trigger.svelte +2 -2
  173. package/dist/bits/popover/components/popover.svelte +9 -3
  174. package/dist/bits/popover/popover.svelte.d.ts +36 -31
  175. package/dist/bits/popover/popover.svelte.js +26 -21
  176. package/dist/bits/popover/types.d.ts +4 -0
  177. package/dist/bits/progress/components/progress.svelte +2 -2
  178. package/dist/bits/progress/progress.svelte.d.ts +10 -9
  179. package/dist/bits/progress/progress.svelte.js +4 -4
  180. package/dist/bits/radio-group/components/radio-group-input.svelte +2 -2
  181. package/dist/bits/radio-group/components/radio-group-item.svelte +2 -2
  182. package/dist/bits/radio-group/components/radio-group.svelte +4 -2
  183. package/dist/bits/radio-group/radio-group.svelte.d.ts +26 -19
  184. package/dist/bits/radio-group/radio-group.svelte.js +26 -19
  185. package/dist/bits/radio-group/types.d.ts +13 -6
  186. package/dist/bits/range-calendar/components/range-calendar-cell.svelte +2 -2
  187. package/dist/bits/range-calendar/components/range-calendar-day.svelte +2 -2
  188. package/dist/bits/range-calendar/components/range-calendar.svelte +2 -2
  189. package/dist/bits/range-calendar/range-calendar.svelte.d.ts +21 -20
  190. package/dist/bits/range-calendar/range-calendar.svelte.js +12 -12
  191. package/dist/bits/rating-group/components/rating-group-input.svelte +2 -2
  192. package/dist/bits/rating-group/components/rating-group-item.svelte +2 -2
  193. package/dist/bits/rating-group/components/rating-group.svelte +2 -2
  194. package/dist/bits/rating-group/rating-group.svelte.d.ts +19 -18
  195. package/dist/bits/rating-group/rating-group.svelte.js +16 -17
  196. package/dist/bits/scroll-area/components/scroll-area-corner-impl.svelte +2 -2
  197. package/dist/bits/scroll-area/components/scroll-area-scrollbar-auto.svelte +3 -3
  198. package/dist/bits/scroll-area/components/scroll-area-scrollbar-hover.svelte +6 -6
  199. package/dist/bits/scroll-area/components/scroll-area-scrollbar-scroll.svelte +3 -3
  200. package/dist/bits/scroll-area/components/scroll-area-scrollbar-shared.svelte +2 -2
  201. package/dist/bits/scroll-area/components/scroll-area-scrollbar-visible.svelte +2 -2
  202. package/dist/bits/scroll-area/components/scroll-area-scrollbar-x.svelte +2 -2
  203. package/dist/bits/scroll-area/components/scroll-area-scrollbar-y.svelte +2 -2
  204. package/dist/bits/scroll-area/components/scroll-area-scrollbar.svelte +2 -2
  205. package/dist/bits/scroll-area/components/scroll-area-thumb-impl.svelte +2 -2
  206. package/dist/bits/scroll-area/components/scroll-area-thumb.svelte +2 -5
  207. package/dist/bits/scroll-area/components/scroll-area-viewport.svelte +2 -2
  208. package/dist/bits/scroll-area/components/scroll-area.svelte +2 -2
  209. package/dist/bits/scroll-area/scroll-area.svelte.d.ts +98 -78
  210. package/dist/bits/scroll-area/scroll-area.svelte.js +78 -74
  211. package/dist/bits/select/components/select-content-static.svelte +3 -3
  212. package/dist/bits/select/components/select-content.svelte +3 -3
  213. package/dist/bits/select/components/select-group-heading.svelte +2 -2
  214. package/dist/bits/select/components/select-group.svelte +2 -2
  215. package/dist/bits/select/components/select-hidden-input.svelte +2 -2
  216. package/dist/bits/select/components/select-item.svelte +2 -2
  217. package/dist/bits/select/components/select-scroll-down-button.svelte +2 -2
  218. package/dist/bits/select/components/select-scroll-up-button.svelte +2 -2
  219. package/dist/bits/select/components/select-trigger.svelte +2 -2
  220. package/dist/bits/select/components/select-viewport.svelte +2 -2
  221. package/dist/bits/select/components/select.svelte +4 -2
  222. package/dist/bits/select/select.svelte.d.ts +127 -113
  223. package/dist/bits/select/select.svelte.js +74 -62
  224. package/dist/bits/select/types.d.ts +4 -0
  225. package/dist/bits/separator/components/separator.svelte +2 -2
  226. package/dist/bits/separator/separator.svelte.d.ts +9 -8
  227. package/dist/bits/separator/separator.svelte.js +4 -4
  228. package/dist/bits/slider/components/slider-range.svelte +2 -2
  229. package/dist/bits/slider/components/slider-thumb-label.svelte +2 -2
  230. package/dist/bits/slider/components/slider-thumb.svelte +2 -2
  231. package/dist/bits/slider/components/slider-tick-label.svelte +2 -2
  232. package/dist/bits/slider/components/slider-tick.svelte +2 -2
  233. package/dist/bits/slider/components/slider.svelte +2 -2
  234. package/dist/bits/slider/slider.svelte.d.ts +82 -73
  235. package/dist/bits/slider/slider.svelte.js +30 -28
  236. package/dist/bits/switch/components/switch-input.svelte +2 -2
  237. package/dist/bits/switch/components/switch-thumb.svelte +2 -2
  238. package/dist/bits/switch/components/switch.svelte +2 -2
  239. package/dist/bits/switch/switch.svelte.d.ts +19 -17
  240. package/dist/bits/switch/switch.svelte.js +13 -13
  241. package/dist/bits/tabs/components/tabs-content.svelte +2 -2
  242. package/dist/bits/tabs/components/tabs-list.svelte +2 -2
  243. package/dist/bits/tabs/components/tabs-trigger.svelte +2 -2
  244. package/dist/bits/tabs/components/tabs.svelte +2 -2
  245. package/dist/bits/tabs/tabs.svelte.d.ts +33 -29
  246. package/dist/bits/tabs/tabs.svelte.js +19 -19
  247. package/dist/bits/time-field/components/time-field-hidden-input.svelte +2 -2
  248. package/dist/bits/time-field/components/time-field-input.svelte +2 -2
  249. package/dist/bits/time-field/components/time-field-label.svelte +2 -2
  250. package/dist/bits/time-field/components/time-field-segment.svelte +2 -2
  251. package/dist/bits/time-field/components/time-field.svelte +2 -2
  252. package/dist/bits/time-field/time-field.svelte.d.ts +72 -66
  253. package/dist/bits/time-field/time-field.svelte.js +37 -42
  254. package/dist/bits/time-range-field/components/time-range-field-input.svelte +2 -2
  255. package/dist/bits/time-range-field/components/time-range-field-label.svelte +2 -2
  256. package/dist/bits/time-range-field/components/time-range-field.svelte +2 -2
  257. package/dist/bits/time-range-field/time-range-field.svelte.d.ts +35 -31
  258. package/dist/bits/time-range-field/time-range-field.svelte.js +34 -32
  259. package/dist/bits/toggle/components/toggle.svelte +2 -2
  260. package/dist/bits/toggle/toggle.svelte.d.ts +11 -10
  261. package/dist/bits/toggle/toggle.svelte.js +4 -4
  262. package/dist/bits/toggle-group/components/toggle-group-item.svelte +2 -2
  263. package/dist/bits/toggle-group/components/toggle-group.svelte +2 -2
  264. package/dist/bits/toggle-group/toggle-group.svelte.d.ts +48 -43
  265. package/dist/bits/toggle-group/toggle-group.svelte.js +24 -25
  266. package/dist/bits/toolbar/components/toolbar-button.svelte +2 -2
  267. package/dist/bits/toolbar/components/toolbar-group-item.svelte +2 -2
  268. package/dist/bits/toolbar/components/toolbar-group.svelte +2 -2
  269. package/dist/bits/toolbar/components/toolbar-link.svelte +2 -2
  270. package/dist/bits/toolbar/components/toolbar.svelte +2 -2
  271. package/dist/bits/toolbar/toolbar.svelte.d.ts +59 -51
  272. package/dist/bits/toolbar/toolbar.svelte.js +32 -30
  273. package/dist/bits/tooltip/components/tooltip-content-static.svelte +3 -3
  274. package/dist/bits/tooltip/components/tooltip-content.svelte +3 -3
  275. package/dist/bits/tooltip/components/tooltip-provider.svelte +2 -2
  276. package/dist/bits/tooltip/components/tooltip-trigger.svelte +2 -2
  277. package/dist/bits/tooltip/components/tooltip.svelte +4 -2
  278. package/dist/bits/tooltip/tooltip.svelte.d.ts +33 -29
  279. package/dist/bits/tooltip/tooltip.svelte.js +33 -28
  280. package/dist/bits/tooltip/types.d.ts +4 -0
  281. package/dist/bits/utilities/config/bits-config.d.ts +1 -1
  282. package/dist/bits/utilities/dismissible-layer/dismissible-layer.svelte +2 -2
  283. package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.d.ts +6 -7
  284. package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.js +3 -3
  285. package/dist/bits/utilities/escape-layer/escape-layer.svelte +2 -2
  286. package/dist/bits/utilities/escape-layer/use-escape-layer.svelte.d.ts +6 -7
  287. package/dist/bits/utilities/escape-layer/use-escape-layer.svelte.js +3 -3
  288. package/dist/bits/utilities/floating-layer/components/floating-layer-anchor.svelte +2 -2
  289. package/dist/bits/utilities/floating-layer/components/floating-layer-arrow.svelte +2 -2
  290. package/dist/bits/utilities/floating-layer/components/floating-layer-content.svelte +2 -2
  291. package/dist/bits/utilities/floating-layer/components/floating-layer.svelte +2 -2
  292. package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.d.ts +25 -23
  293. package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.js +25 -25
  294. package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.d.ts +1 -1
  295. package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.js +1 -1
  296. package/dist/bits/utilities/popper-layer/popper-layer-force-mount.svelte +1 -1
  297. package/dist/bits/utilities/popper-layer/popper-layer-force-mount.svelte.d.ts +1 -1
  298. package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte +1 -1
  299. package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte.d.ts +1 -1
  300. package/dist/bits/utilities/popper-layer/popper-layer.svelte +3 -3
  301. package/dist/bits/utilities/presence-layer/presence-layer.svelte +8 -8
  302. package/dist/bits/utilities/presence-layer/presence.svelte.d.ts +42 -0
  303. package/dist/bits/utilities/presence-layer/presence.svelte.js +116 -0
  304. package/dist/bits/utilities/presence-layer/types.d.ts +3 -5
  305. package/dist/bits/utilities/scroll-lock/scroll-lock.svelte +2 -2
  306. package/dist/bits/utilities/text-selection-layer/text-selection-layer.svelte +2 -2
  307. package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.d.ts +7 -7
  308. package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.js +3 -3
  309. package/dist/internal/animations-complete.d.ts +12 -0
  310. package/dist/internal/animations-complete.js +55 -0
  311. package/dist/internal/arrays.js +20 -36
  312. package/dist/internal/attrs.d.ts +9 -2
  313. package/dist/internal/attrs.js +21 -11
  314. package/dist/internal/body-scroll-lock.svelte.d.ts +10 -0
  315. package/dist/internal/body-scroll-lock.svelte.js +106 -0
  316. package/dist/internal/data-typeahead.svelte.d.ts +15 -0
  317. package/dist/internal/data-typeahead.svelte.js +33 -0
  318. package/dist/internal/date-time/calendar-helpers.svelte.d.ts +1 -1
  319. package/dist/internal/dom-typeahead.svelte.d.ts +14 -0
  320. package/dist/internal/dom-typeahead.svelte.js +44 -0
  321. package/dist/internal/dom.d.ts +0 -2
  322. package/dist/internal/dom.js +0 -15
  323. package/dist/internal/{use-grace-area.svelte.d.ts → grace-area.svelte.d.ts} +5 -4
  324. package/dist/internal/{use-grace-area.svelte.js → grace-area.svelte.js} +60 -56
  325. package/dist/internal/open-change-complete.d.ts +13 -0
  326. package/dist/internal/open-change-complete.js +24 -0
  327. package/dist/internal/{use-roving-focus.svelte.d.ts → roving-focus-group.d.ts} +9 -8
  328. package/dist/internal/{use-roving-focus.svelte.js → roving-focus-group.js} +30 -34
  329. package/dist/internal/shared-state.svelte.d.ts +6 -0
  330. package/dist/internal/shared-state.svelte.js +31 -0
  331. package/dist/internal/should-trap-focus.js +1 -2
  332. package/dist/internal/state-machine.d.ts +16 -0
  333. package/dist/internal/state-machine.js +18 -0
  334. package/dist/internal/svelte-resize-observer.svelte.d.ts +6 -0
  335. package/dist/internal/svelte-resize-observer.svelte.js +25 -0
  336. package/dist/internal/tabbable.d.ts +0 -1
  337. package/dist/internal/tabbable.js +0 -11
  338. package/dist/internal/timeout-fn.d.ts +16 -0
  339. package/dist/internal/timeout-fn.js +38 -0
  340. package/dist/internal/types.d.ts +2 -2
  341. package/package.json +1 -1
  342. package/dist/bits/utilities/presence-layer/use-presence.svelte.d.ts +0 -4
  343. package/dist/bits/utilities/presence-layer/use-presence.svelte.js +0 -97
  344. package/dist/internal/box.svelte.d.ts +0 -21
  345. package/dist/internal/box.svelte.js +0 -26
  346. package/dist/internal/create-event-hook.svelte.d.ts +0 -18
  347. package/dist/internal/create-event-hook.svelte.js +0 -29
  348. package/dist/internal/create-shared-hook.svelte.d.ts +0 -2
  349. package/dist/internal/create-shared-hook.svelte.js +0 -27
  350. package/dist/internal/sleep.d.ts +0 -1
  351. package/dist/internal/sleep.js +0 -3
  352. package/dist/internal/use-after-animations.svelte.d.ts +0 -5
  353. package/dist/internal/use-after-animations.svelte.js +0 -27
  354. package/dist/internal/use-body-scroll-lock.svelte.d.ts +0 -6
  355. package/dist/internal/use-body-scroll-lock.svelte.js +0 -106
  356. package/dist/internal/use-data-typeahead.svelte.d.ts +0 -15
  357. package/dist/internal/use-data-typeahead.svelte.js +0 -34
  358. package/dist/internal/use-dom-typeahead.svelte.d.ts +0 -13
  359. package/dist/internal/use-dom-typeahead.svelte.js +0 -32
  360. package/dist/internal/use-form-control.svelte.d.ts +0 -4
  361. package/dist/internal/use-form-control.svelte.js +0 -16
  362. package/dist/internal/use-resize-observer.svelte.d.ts +0 -2
  363. package/dist/internal/use-resize-observer.svelte.js +0 -17
  364. package/dist/internal/use-state-machine.svelte.d.ts +0 -24
  365. package/dist/internal/use-state-machine.svelte.js +0 -28
  366. package/dist/internal/use-timeout-fn.svelte.d.ts +0 -25
  367. package/dist/internal/use-timeout-fn.svelte.js +0 -39
@@ -2,7 +2,7 @@
2
2
  import { watch } from "runed";
3
3
  import { box } from "svelte-toolbelt";
4
4
  import type { DateValue } from "@internationalized/date";
5
- import { useDateFieldRoot } from "../date-field.svelte.js";
5
+ import { DateFieldRootState } from "../date-field.svelte.js";
6
6
  import type { DateFieldRootProps } from "../types.js";
7
7
  import { noop } from "../../../internal/noop.js";
8
8
  import { getDefaultDate } from "../../../internal/date-time/utils.js";
@@ -55,7 +55,7 @@
55
55
  }
56
56
  );
57
57
 
58
- useDateFieldRoot({
58
+ DateFieldRootState.create({
59
59
  value: box.with(
60
60
  () => value,
61
61
  (v) => {
@@ -1,14 +1,13 @@
1
1
  import type { Updater } from "svelte/store";
2
2
  import type { DateValue } from "@internationalized/date";
3
- import { type WritableBox, DOMContext } from "svelte-toolbelt";
3
+ import { type WritableBox, DOMContext, type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
4
4
  import type { DateRangeFieldRootState } from "../date-range-field/date-range-field.svelte.js";
5
- import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
6
- import type { BitsFocusEvent, BitsKeyboardEvent, BitsMouseEvent, WithRefProps } from "../../internal/types.js";
5
+ import type { BitsFocusEvent, BitsKeyboardEvent, BitsMouseEvent, WithRefOpts } from "../../internal/types.js";
7
6
  import type { DateAndTimeSegmentObj, DateOnInvalid, DateSegmentObj, DateSegmentPart, DateValidator, Granularity, HourCycle, SegmentPart, SegmentValueObj, TimeSegmentObj, EditableTimeSegmentPart } from "../../shared/date/types.js";
8
7
  import { type Formatter } from "../../internal/date-time/formatter.js";
9
8
  import { type Announcer } from "../../internal/date-time/announcer.js";
10
- export declare const dateFieldAttrs: import("../../internal/attrs.js").BitsAttrs<readonly ["input", "label", "segment"]>;
11
- type SegmentConfig = {
9
+ export declare const dateFieldAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["input", "label", "segment"]>;
10
+ interface SegmentConfig {
12
11
  min: number | ((root: DateFieldRootState) => number);
13
12
  max: number | ((root: DateFieldRootState) => number);
14
13
  cycle: number;
@@ -23,11 +22,11 @@ type SegmentConfig = {
23
22
  value: boolean;
24
23
  };
25
24
  }) => string | null;
26
- };
27
- export type DateFieldRootStateProps = WritableBoxedValues<{
25
+ }
26
+ interface DateFieldRootStateOpts extends WritableBoxedValues<{
28
27
  value: DateValue | undefined;
29
28
  placeholder: DateValue;
30
- }> & ReadableBoxedValues<{
29
+ }>, ReadableBoxedValues<{
31
30
  readonlySegments: SegmentPart[];
32
31
  validate: DateValidator | undefined;
33
32
  onInvalid: DateOnInvalid | undefined;
@@ -42,31 +41,33 @@ export type DateFieldRootStateProps = WritableBoxedValues<{
42
41
  required: boolean;
43
42
  errorMessageId: string | undefined;
44
43
  isInvalidProp: boolean | undefined;
45
- }>;
44
+ }> {
45
+ }
46
46
  export declare class DateFieldRootState {
47
47
  #private;
48
- value: DateFieldRootStateProps["value"];
48
+ static create(opts: DateFieldRootStateOpts, rangeRoot?: DateRangeFieldRootState): DateFieldRootState;
49
+ value: DateFieldRootStateOpts["value"];
49
50
  placeholder: WritableBox<DateValue>;
50
- validate: DateFieldRootStateProps["validate"];
51
- minValue: DateFieldRootStateProps["minValue"];
52
- maxValue: DateFieldRootStateProps["maxValue"];
53
- disabled: DateFieldRootStateProps["disabled"];
54
- readonly: DateFieldRootStateProps["readonly"];
55
- granularity: DateFieldRootStateProps["granularity"];
56
- readonlySegments: DateFieldRootStateProps["readonlySegments"];
57
- hourCycle: DateFieldRootStateProps["hourCycle"];
58
- locale: DateFieldRootStateProps["locale"];
59
- hideTimeZone: DateFieldRootStateProps["hideTimeZone"];
60
- required: DateFieldRootStateProps["required"];
61
- onInvalid: DateFieldRootStateProps["onInvalid"];
62
- errorMessageId: DateFieldRootStateProps["errorMessageId"];
63
- isInvalidProp: DateFieldRootStateProps["isInvalidProp"];
51
+ validate: DateFieldRootStateOpts["validate"];
52
+ minValue: DateFieldRootStateOpts["minValue"];
53
+ maxValue: DateFieldRootStateOpts["maxValue"];
54
+ disabled: DateFieldRootStateOpts["disabled"];
55
+ readonly: DateFieldRootStateOpts["readonly"];
56
+ granularity: DateFieldRootStateOpts["granularity"];
57
+ readonlySegments: DateFieldRootStateOpts["readonlySegments"];
58
+ hourCycle: DateFieldRootStateOpts["hourCycle"];
59
+ locale: DateFieldRootStateOpts["locale"];
60
+ hideTimeZone: DateFieldRootStateOpts["hideTimeZone"];
61
+ required: DateFieldRootStateOpts["required"];
62
+ onInvalid: DateFieldRootStateOpts["onInvalid"];
63
+ errorMessageId: DateFieldRootStateOpts["errorMessageId"];
64
+ isInvalidProp: DateFieldRootStateOpts["isInvalidProp"];
64
65
  descriptionId: string;
65
66
  formatter: Formatter;
66
67
  initialSegments: SegmentValueObj;
67
68
  segmentValues: SegmentValueObj;
68
69
  announcer: Announcer;
69
- readonlySegmentsSet: Set<SegmentPart>;
70
+ readonly readonlySegmentsSet: Set<SegmentPart>;
70
71
  segmentStates: import("../../internal/date-time/field/types.js").SegmentStateMap;
71
72
  descriptionNode: HTMLElement | null;
72
73
  validationNode: HTMLElement | null;
@@ -75,7 +76,7 @@ export declare class DateFieldRootState {
75
76
  rangeRoot: DateRangeFieldRootState | undefined;
76
77
  name: string;
77
78
  domContext: DOMContext;
78
- constructor(props: DateFieldRootStateProps, rangeRoot?: DateRangeFieldRootState);
79
+ constructor(props: DateFieldRootStateOpts, rangeRoot?: DateRangeFieldRootState);
79
80
  setName(name: string): void;
80
81
  /**
81
82
  * Sets the field node for the `DateFieldRootState` instance. We use this method so we can
@@ -99,7 +100,7 @@ export declare class DateFieldRootState {
99
100
  getLabelNode(): HTMLElement | null;
100
101
  setValue(value: DateValue | undefined): void;
101
102
  syncSegmentValues(value: DateValue): void;
102
- validationStatus: false | {
103
+ readonly validationStatus: false | {
103
104
  readonly reason: "custom";
104
105
  readonly message: string | string[];
105
106
  } | {
@@ -109,21 +110,21 @@ export declare class DateFieldRootState {
109
110
  readonly reason: "max";
110
111
  readonly message?: undefined;
111
112
  };
112
- isInvalid: boolean;
113
- inferredGranularity: Granularity;
114
- dateRef: DateValue;
115
- allSegmentContent: {
113
+ readonly isInvalid: boolean;
114
+ readonly inferredGranularity: Granularity;
115
+ readonly dateRef: DateValue;
116
+ readonly allSegmentContent: {
116
117
  obj: import("../../internal/date-time/field/types.js").SegmentContentObj;
117
118
  arr: {
118
119
  part: import("../../internal/date-time/field/types.js").SegmentPart;
119
120
  value: string;
120
121
  }[];
121
122
  };
122
- segmentContents: {
123
+ readonly segmentContents: {
123
124
  part: import("../../internal/date-time/field/types.js").SegmentPart;
124
125
  value: string;
125
126
  }[];
126
- sharedSegmentAttrs: {
127
+ readonly sharedSegmentAttrs: {
127
128
  role: string;
128
129
  contenteditable: string;
129
130
  tabindex: number;
@@ -160,16 +161,18 @@ export declare class DateFieldRootState {
160
161
  "data-segment": string;
161
162
  };
162
163
  }
163
- type DateFieldInputStateProps = WithRefProps & ReadableBoxedValues<{
164
+ interface DateFieldInputStateOpts extends WithRefOpts, ReadableBoxedValues<{
164
165
  name: string;
165
- }>;
166
+ }> {
167
+ }
166
168
  export declare class DateFieldInputState {
167
169
  #private;
168
- readonly opts: DateFieldInputStateProps;
170
+ static create(opts: DateFieldInputStateOpts): DateFieldInputState;
171
+ readonly opts: DateFieldInputStateOpts;
169
172
  readonly root: DateFieldRootState;
170
173
  readonly domContext: DOMContext;
171
- constructor(opts: DateFieldInputStateProps, root: DateFieldRootState);
172
- props: {
174
+ constructor(opts: DateFieldInputStateOpts, root: DateFieldRootState);
175
+ readonly props: {
173
176
  readonly id: string;
174
177
  readonly role: "group";
175
178
  readonly "aria-labelledby": string | undefined;
@@ -179,24 +182,27 @@ export declare class DateFieldInputState {
179
182
  readonly "data-disabled": "" | undefined;
180
183
  };
181
184
  }
182
- declare class DateFieldHiddenInputState {
185
+ export declare class DateFieldHiddenInputState {
186
+ static create(): DateFieldHiddenInputState;
183
187
  readonly root: DateFieldRootState;
184
- shouldRender: boolean;
185
- isoValue: string;
188
+ readonly shouldRender: boolean;
189
+ readonly isoValue: string;
186
190
  constructor(root: DateFieldRootState);
187
- props: {
191
+ readonly props: {
188
192
  name: string;
189
193
  value: string;
190
194
  required: boolean;
191
195
  };
192
196
  }
193
- type DateFieldLabelStateProps = WithRefProps;
194
- declare class DateFieldLabelState {
195
- readonly opts: DateFieldLabelStateProps;
197
+ interface DateFieldLabelStateOpts extends WithRefOpts {
198
+ }
199
+ export declare class DateFieldLabelState {
200
+ static create(opts: DateFieldLabelStateOpts): DateFieldLabelState;
201
+ readonly opts: DateFieldLabelStateOpts;
196
202
  readonly root: DateFieldRootState;
197
- constructor(opts: DateFieldLabelStateProps, root: DateFieldRootState);
203
+ constructor(opts: DateFieldLabelStateOpts, root: DateFieldRootState);
198
204
  onclick(_: BitsMouseEvent): void;
199
- props: {
205
+ readonly props: {
200
206
  readonly id: string;
201
207
  readonly "data-invalid": "" | undefined;
202
208
  readonly "data-disabled": "" | undefined;
@@ -205,12 +211,12 @@ declare class DateFieldLabelState {
205
211
  }
206
212
  declare abstract class BaseNumericSegmentState {
207
213
  #private;
208
- readonly opts: WithRefProps;
214
+ readonly opts: WithRefOpts;
209
215
  readonly root: DateFieldRootState;
210
216
  readonly announcer: Announcer;
211
217
  readonly part: string;
212
218
  readonly config: SegmentConfig;
213
- constructor(opts: WithRefProps, root: DateFieldRootState, part: string, config: SegmentConfig);
219
+ constructor(opts: WithRefOpts, root: DateFieldRootState, part: string, config: SegmentConfig);
214
220
  onkeydown(e: BitsKeyboardEvent): void;
215
221
  onfocusout(_: BitsFocusEvent): void;
216
222
  getSegmentProps(): {
@@ -280,34 +286,36 @@ declare abstract class BaseNumericSegmentState {
280
286
  }
281
287
  declare class DateFieldYearSegmentState extends BaseNumericSegmentState {
282
288
  #private;
283
- constructor(opts: WithRefProps, root: DateFieldRootState);
289
+ constructor(opts: WithRefOpts, root: DateFieldRootState);
284
290
  onkeydown(e: BitsKeyboardEvent): void;
285
291
  onfocusout(_: BitsFocusEvent): void;
286
292
  }
287
293
  declare class DateFieldDaySegmentState extends BaseNumericSegmentState {
288
- constructor(opts: WithRefProps, root: DateFieldRootState);
294
+ constructor(opts: WithRefOpts, root: DateFieldRootState);
289
295
  }
290
296
  declare class DateFieldMonthSegmentState extends BaseNumericSegmentState {
291
- constructor(opts: WithRefProps, root: DateFieldRootState);
297
+ constructor(opts: WithRefOpts, root: DateFieldRootState);
292
298
  }
293
299
  declare class DateFieldHourSegmentState extends BaseNumericSegmentState {
294
- constructor(opts: WithRefProps, root: DateFieldRootState);
300
+ constructor(opts: WithRefOpts, root: DateFieldRootState);
295
301
  onkeydown(e: BitsKeyboardEvent): void;
296
302
  }
297
303
  declare class DateFieldMinuteSegmentState extends BaseNumericSegmentState {
298
- constructor(opts: WithRefProps, root: DateFieldRootState);
304
+ constructor(opts: WithRefOpts, root: DateFieldRootState);
299
305
  }
300
306
  declare class DateFieldSecondSegmentState extends BaseNumericSegmentState {
301
- constructor(opts: WithRefProps, root: DateFieldRootState);
307
+ constructor(opts: WithRefOpts, root: DateFieldRootState);
302
308
  }
303
- type DateFieldDayPeriodSegmentStateProps = WithRefProps;
304
- declare class DateFieldDayPeriodSegmentState {
309
+ interface DateFieldDayPeriodSegmentStateOpts extends WithRefOpts {
310
+ }
311
+ export declare class DateFieldDayPeriodSegmentState {
305
312
  #private;
306
- readonly opts: DateFieldDayPeriodSegmentStateProps;
313
+ static create(opts: DateFieldDayPeriodSegmentStateOpts): DateFieldDayPeriodSegmentState;
314
+ readonly opts: DateFieldDayPeriodSegmentStateOpts;
307
315
  readonly root: DateFieldRootState;
308
- constructor(opts: DateFieldDayPeriodSegmentStateProps, root: DateFieldRootState);
316
+ constructor(opts: DateFieldDayPeriodSegmentStateOpts, root: DateFieldRootState);
309
317
  onkeydown(e: BitsKeyboardEvent): void;
310
- props: {
318
+ readonly props: {
311
319
  "aria-invalid": "true" | undefined;
312
320
  "aria-disabled": "true" | "false";
313
321
  "aria-readonly": "true" | "false";
@@ -363,12 +371,14 @@ declare class DateFieldDayPeriodSegmentState {
363
371
  };
364
372
  } | undefined;
365
373
  }
366
- type DateFieldLiteralSegmentStateProps = WithRefProps;
367
- declare class DateFieldDayLiteralSegmentState {
368
- readonly opts: DateFieldLiteralSegmentStateProps;
374
+ interface DateFieldLiteralSegmentStateOpts extends WithRefOpts {
375
+ }
376
+ export declare class DateFieldLiteralSegmentState {
377
+ static create(opts: DateFieldLiteralSegmentStateOpts): DateFieldLiteralSegmentState;
378
+ readonly opts: DateFieldLiteralSegmentStateOpts;
369
379
  readonly root: DateFieldRootState;
370
- constructor(opts: DateFieldLiteralSegmentStateProps, root: DateFieldRootState);
371
- props: {
380
+ constructor(opts: DateFieldLiteralSegmentStateOpts, root: DateFieldRootState);
381
+ readonly props: {
372
382
  readonly "aria-invalid": "true" | undefined;
373
383
  readonly "aria-disabled": "true" | "false";
374
384
  readonly "aria-readonly": "true" | "false";
@@ -394,12 +404,15 @@ declare class DateFieldDayLiteralSegmentState {
394
404
  readonly "aria-hidden": "true" | undefined;
395
405
  };
396
406
  }
397
- declare class DateFieldTimeZoneSegmentState {
398
- readonly opts: DateFieldLiteralSegmentStateProps;
407
+ interface DateFieldTimeZoneSegmentStateOpts extends WithRefOpts {
408
+ }
409
+ export declare class DateFieldTimeZoneSegmentState {
410
+ static create(opts: DateFieldTimeZoneSegmentStateOpts): DateFieldTimeZoneSegmentState;
411
+ readonly opts: DateFieldTimeZoneSegmentStateOpts;
399
412
  readonly root: DateFieldRootState;
400
- constructor(opts: DateFieldLiteralSegmentStateProps, root: DateFieldRootState);
413
+ constructor(opts: DateFieldTimeZoneSegmentStateOpts, root: DateFieldRootState);
401
414
  onkeydown(e: BitsKeyboardEvent): void;
402
- props: {
415
+ readonly props: {
403
416
  readonly "data-readonly": "" | undefined;
404
417
  readonly "aria-invalid": "true" | undefined;
405
418
  readonly "aria-disabled": "true" | "false";
@@ -435,9 +448,7 @@ declare class DateFieldTimeZoneSegmentState {
435
448
  readonly onkeydown: (e: BitsKeyboardEvent) => void;
436
449
  };
437
450
  }
438
- export declare function useDateFieldRoot(props: DateFieldRootStateProps, rangeRoot?: DateRangeFieldRootState): DateFieldRootState;
439
- export declare function useDateFieldInput(props: DateFieldInputStateProps): DateFieldInputState;
440
- export declare function useDateFieldHiddenInput(): DateFieldHiddenInputState;
441
- export declare function useDateFieldSegment(part: SegmentPart, props: WithRefProps): DateFieldYearSegmentState | DateFieldDaySegmentState | DateFieldMonthSegmentState | DateFieldHourSegmentState | DateFieldMinuteSegmentState | DateFieldSecondSegmentState | DateFieldDayPeriodSegmentState | DateFieldDayLiteralSegmentState | DateFieldTimeZoneSegmentState;
442
- export declare function useDateFieldLabel(props: DateFieldLabelStateProps): DateFieldLabelState;
451
+ export declare class DateFieldSegmentState {
452
+ static create(part: SegmentPart, opts: WithRefOpts): DateFieldYearSegmentState | DateFieldDaySegmentState | DateFieldMonthSegmentState | DateFieldHourSegmentState | DateFieldMinuteSegmentState | DateFieldSecondSegmentState | DateFieldDayPeriodSegmentState | DateFieldLiteralSegmentState | DateFieldTimeZoneSegmentState;
453
+ }
443
454
  export {};
@@ -1,4 +1,4 @@
1
- import { box, onDestroyEffect, attachRef, DOMContext } from "svelte-toolbelt";
1
+ import { box, onDestroyEffect, attachRef, DOMContext, } from "svelte-toolbelt";
2
2
  import { onMount, untrack } from "svelte";
3
3
  import { Context, watch } from "runed";
4
4
  import { createBitsAttrs, getAriaDisabled, getAriaHidden, getAriaInvalid, getAriaReadonly, getDataDisabled, getDataInvalid, getDataReadonly, } from "../../internal/attrs.js";
@@ -69,7 +69,11 @@ const SEGMENT_CONFIGS = {
69
69
  padZero: true,
70
70
  },
71
71
  };
72
+ const DateFieldRootContext = new Context("DateField.Root");
72
73
  export class DateFieldRootState {
74
+ static create(opts, rangeRoot) {
75
+ return DateFieldRootContext.set(new DateFieldRootState(opts, rangeRoot));
76
+ }
73
77
  value;
74
78
  placeholder;
75
79
  validate;
@@ -564,6 +568,9 @@ export class DateFieldRootState {
564
568
  }
565
569
  }
566
570
  export class DateFieldInputState {
571
+ static create(opts) {
572
+ return new DateFieldInputState(opts, DateFieldRootContext.get());
573
+ }
567
574
  opts;
568
575
  root;
569
576
  domContext;
@@ -572,8 +579,8 @@ export class DateFieldInputState {
572
579
  this.root = root;
573
580
  this.domContext = new DOMContext(opts.ref);
574
581
  this.root.domContext = this.domContext;
575
- $effect(() => {
576
- this.root.setName(this.opts.name.current);
582
+ watch(() => this.opts.name.current, (v) => {
583
+ this.root.setName(v);
577
584
  });
578
585
  }
579
586
  #ariaDescribedBy = $derived.by(() => {
@@ -596,7 +603,10 @@ export class DateFieldInputState {
596
603
  ...attachRef(this.opts.ref, (v) => this.root.setFieldNode(v)),
597
604
  }));
598
605
  }
599
- class DateFieldHiddenInputState {
606
+ export class DateFieldHiddenInputState {
607
+ static create() {
608
+ return new DateFieldHiddenInputState(DateFieldRootContext.get());
609
+ }
600
610
  root;
601
611
  shouldRender = $derived.by(() => this.root.name !== "");
602
612
  isoValue = $derived.by(() => this.root.value.current ? this.root.value.current.toString() : "");
@@ -611,7 +621,10 @@ class DateFieldHiddenInputState {
611
621
  };
612
622
  });
613
623
  }
614
- class DateFieldLabelState {
624
+ export class DateFieldLabelState {
625
+ static create(opts) {
626
+ return new DateFieldLabelState(opts, DateFieldRootContext.get());
627
+ }
615
628
  opts;
616
629
  root;
617
630
  constructor(opts, root) {
@@ -899,7 +912,6 @@ class BaseNumericSegmentState {
899
912
  };
900
913
  });
901
914
  }
902
- // Year segment needs special handling
903
915
  class DateFieldYearSegmentState extends BaseNumericSegmentState {
904
916
  #pressedKeys = [];
905
917
  #backspaceCount = 0;
@@ -1018,7 +1030,6 @@ class DateFieldYearSegmentState extends BaseNumericSegmentState {
1018
1030
  });
1019
1031
  }
1020
1032
  }
1021
- // Create segment states using the base class
1022
1033
  class DateFieldDaySegmentState extends BaseNumericSegmentState {
1023
1034
  constructor(opts, root) {
1024
1035
  super(opts, root, "day", SEGMENT_CONFIGS.day);
@@ -1068,7 +1079,10 @@ class DateFieldSecondSegmentState extends BaseNumericSegmentState {
1068
1079
  super(opts, root, "second", SEGMENT_CONFIGS.second);
1069
1080
  }
1070
1081
  }
1071
- class DateFieldDayPeriodSegmentState {
1082
+ export class DateFieldDayPeriodSegmentState {
1083
+ static create(opts) {
1084
+ return new DateFieldDayPeriodSegmentState(opts, DateFieldRootContext.get());
1085
+ }
1072
1086
  opts;
1073
1087
  root;
1074
1088
  #announcer;
@@ -1141,7 +1155,10 @@ class DateFieldDayPeriodSegmentState {
1141
1155
  };
1142
1156
  });
1143
1157
  }
1144
- class DateFieldDayLiteralSegmentState {
1158
+ export class DateFieldLiteralSegmentState {
1159
+ static create(opts) {
1160
+ return new DateFieldLiteralSegmentState(opts, DateFieldRootContext.get());
1161
+ }
1145
1162
  opts;
1146
1163
  root;
1147
1164
  constructor(opts, root) {
@@ -1155,7 +1172,10 @@ class DateFieldDayLiteralSegmentState {
1155
1172
  ...attachRef(this.opts.ref),
1156
1173
  }));
1157
1174
  }
1158
- class DateFieldTimeZoneSegmentState {
1175
+ export class DateFieldTimeZoneSegmentState {
1176
+ static create(opts) {
1177
+ return new DateFieldTimeZoneSegmentState(opts, DateFieldRootContext.get());
1178
+ }
1159
1179
  opts;
1160
1180
  root;
1161
1181
  constructor(opts, root) {
@@ -1185,7 +1205,31 @@ class DateFieldTimeZoneSegmentState {
1185
1205
  ...attachRef(this.opts.ref),
1186
1206
  }));
1187
1207
  }
1188
- // Utils/helpers
1208
+ export class DateFieldSegmentState {
1209
+ static create(part, opts) {
1210
+ const root = DateFieldRootContext.get();
1211
+ switch (part) {
1212
+ case "day":
1213
+ return new DateFieldDaySegmentState(opts, root);
1214
+ case "month":
1215
+ return new DateFieldMonthSegmentState(opts, root);
1216
+ case "year":
1217
+ return new DateFieldYearSegmentState(opts, root);
1218
+ case "hour":
1219
+ return new DateFieldHourSegmentState(opts, root);
1220
+ case "minute":
1221
+ return new DateFieldMinuteSegmentState(opts, root);
1222
+ case "second":
1223
+ return new DateFieldSecondSegmentState(opts, root);
1224
+ case "dayPeriod":
1225
+ return new DateFieldDayPeriodSegmentState(opts, root);
1226
+ case "literal":
1227
+ return new DateFieldLiteralSegmentState(opts, root);
1228
+ case "timeZoneName":
1229
+ return new DateFieldTimeZoneSegmentState(opts, root);
1230
+ }
1231
+ }
1232
+ }
1189
1233
  function isAcceptableDayPeriodKey(key) {
1190
1234
  return (isAcceptableSegmentKey(key) ||
1191
1235
  key === kbd.A ||
@@ -1202,48 +1246,6 @@ function isArrowDown(key) {
1202
1246
  function isBackspace(key) {
1203
1247
  return key === kbd.BACKSPACE;
1204
1248
  }
1205
- const DateFieldRootContext = new Context("DateField.Root");
1206
- export function useDateFieldRoot(props, rangeRoot) {
1207
- return DateFieldRootContext.set(new DateFieldRootState(props, rangeRoot));
1208
- }
1209
- export function useDateFieldInput(props) {
1210
- return new DateFieldInputState(props, DateFieldRootContext.get());
1211
- }
1212
- export function useDateFieldHiddenInput() {
1213
- return new DateFieldHiddenInputState(DateFieldRootContext.get());
1214
- }
1215
- export function useDateFieldSegment(part, props) {
1216
- return segmentPartToInstance({
1217
- part,
1218
- segmentProps: props,
1219
- root: DateFieldRootContext.get(),
1220
- });
1221
- }
1222
- export function useDateFieldLabel(props) {
1223
- return new DateFieldLabelState(props, DateFieldRootContext.get());
1224
- }
1225
- function segmentPartToInstance(props) {
1226
- switch (props.part) {
1227
- case "day":
1228
- return new DateFieldDaySegmentState(props.segmentProps, props.root);
1229
- case "month":
1230
- return new DateFieldMonthSegmentState(props.segmentProps, props.root);
1231
- case "year":
1232
- return new DateFieldYearSegmentState(props.segmentProps, props.root);
1233
- case "hour":
1234
- return new DateFieldHourSegmentState(props.segmentProps, props.root);
1235
- case "minute":
1236
- return new DateFieldMinuteSegmentState(props.segmentProps, props.root);
1237
- case "second":
1238
- return new DateFieldSecondSegmentState(props.segmentProps, props.root);
1239
- case "dayPeriod":
1240
- return new DateFieldDayPeriodSegmentState(props.segmentProps, props.root);
1241
- case "literal":
1242
- return new DateFieldDayLiteralSegmentState(props.segmentProps, props.root);
1243
- case "timeZoneName":
1244
- return new DateFieldTimeZoneSegmentState(props.segmentProps, props.root);
1245
- }
1246
- }
1247
1249
  function prependYearZeros(year) {
1248
1250
  const digits = String(year).length;
1249
1251
  const diff = 4 - digits;
@@ -2,7 +2,7 @@
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 { useCalendarRoot } from "../../calendar/calendar.svelte.js";
5
+ import { CalendarRootState } from "../../calendar/calendar.svelte.js";
6
6
  import { createId } from "../../../internal/create-id.js";
7
7
 
8
8
  const uid = $props.id();
@@ -17,7 +17,7 @@
17
17
 
18
18
  const datePickerRootState = DatePickerRootContext.get();
19
19
 
20
- const calendarState = useCalendarRoot({
20
+ const calendarState = CalendarRootState.create({
21
21
  id: box.with(() => id),
22
22
  ref: box.with(
23
23
  () => ref,
@@ -3,11 +3,11 @@
3
3
  import { watch } from "runed";
4
4
  import { box } from "svelte-toolbelt";
5
5
  import type { DateValue } from "@internationalized/date";
6
- import { useDatePickerRoot } from "../date-picker.svelte.js";
6
+ import { DatePickerRootState } from "../date-picker.svelte.js";
7
7
  import type { DatePickerRootProps } from "../types.js";
8
8
  import { noop } from "../../../internal/noop.js";
9
- import { usePopoverRoot } from "../../popover/popover.svelte.js";
10
- import { useDateFieldRoot } from "../../date-field/date-field.svelte.js";
9
+ import { PopoverRootState } from "../../popover/popover.svelte.js";
10
+ import { DateFieldRootState } from "../../date-field/date-field.svelte.js";
11
11
  import { FloatingLayer } from "../../utilities/floating-layer/index.js";
12
12
  import { getDefaultDate } from "../../../internal/date-time/utils.js";
13
13
  import { resolveLocaleProp } from "../../utilities/config/prop-resolvers.js";
@@ -15,6 +15,7 @@
15
15
  let {
16
16
  open = $bindable(false),
17
17
  onOpenChange = noop,
18
+ onOpenChangeComplete = noop,
18
19
  value = $bindable(),
19
20
  onValueChange = noop,
20
21
  placeholder = $bindable(),
@@ -80,7 +81,7 @@
80
81
  }
81
82
  }
82
83
 
83
- const pickerRootState = useDatePickerRoot({
84
+ const pickerRootState = DatePickerRootState.create({
84
85
  open: box.with(
85
86
  () => open,
86
87
  (v) => {
@@ -129,11 +130,12 @@
129
130
  yearFormat: box.with(() => yearFormat),
130
131
  });
131
132
 
132
- usePopoverRoot({
133
+ PopoverRootState.create({
133
134
  open: pickerRootState.opts.open,
135
+ onOpenChangeComplete: box.with(() => onOpenChangeComplete),
134
136
  });
135
137
 
136
- useDateFieldRoot({
138
+ DateFieldRootState.create({
137
139
  value: pickerRootState.opts.value,
138
140
  disabled: pickerRootState.opts.disabled,
139
141
  readonly: pickerRootState.opts.readonly,
@@ -1,13 +1,14 @@
1
1
  import type { DateValue } from "@internationalized/date";
2
2
  import { Context } from "runed";
3
- import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
3
+ import { type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
4
4
  import type { DateMatcher, SegmentPart } from "../../shared/index.js";
5
5
  import type { Granularity, HourCycle, WeekStartsOn } from "../../shared/date/types.js";
6
- type DatePickerRootStateProps = WritableBoxedValues<{
6
+ export declare const DatePickerRootContext: Context<DatePickerRootState>;
7
+ interface DatePickerRootStateOpts extends WritableBoxedValues<{
7
8
  value: DateValue | undefined;
8
9
  open: boolean;
9
10
  placeholder: DateValue;
10
- }> & ReadableBoxedValues<{
11
+ }>, ReadableBoxedValues<{
11
12
  readonlySegments: SegmentPart[];
12
13
  isDateUnavailable: DateMatcher;
13
14
  isDateDisabled: DateMatcher;
@@ -32,13 +33,12 @@ type DatePickerRootStateProps = WritableBoxedValues<{
32
33
  onDateSelect?: () => void;
33
34
  monthFormat: Intl.DateTimeFormatOptions["month"] | ((month: number) => string);
34
35
  yearFormat: Intl.DateTimeFormatOptions["year"] | ((year: number) => string);
35
- }> & {
36
+ }> {
36
37
  defaultPlaceholder: DateValue;
37
- };
38
- declare class DatePickerRootState {
39
- readonly opts: DatePickerRootStateProps;
40
- constructor(opts: DatePickerRootStateProps);
41
38
  }
42
- export declare const DatePickerRootContext: Context<DatePickerRootState>;
43
- export declare function useDatePickerRoot(props: DatePickerRootStateProps): DatePickerRootState;
39
+ export declare class DatePickerRootState {
40
+ static create(opts: DatePickerRootStateOpts): DatePickerRootState;
41
+ readonly opts: DatePickerRootStateOpts;
42
+ constructor(opts: DatePickerRootStateOpts);
43
+ }
44
44
  export {};
@@ -1,11 +1,12 @@
1
1
  import { Context } from "runed";
2
- class DatePickerRootState {
2
+ import {} from "svelte-toolbelt";
3
+ export const DatePickerRootContext = new Context("DatePicker.Root");
4
+ export class DatePickerRootState {
5
+ static create(opts) {
6
+ return DatePickerRootContext.set(new DatePickerRootState(opts));
7
+ }
3
8
  opts;
4
9
  constructor(opts) {
5
10
  this.opts = opts;
6
11
  }
7
12
  }
8
- export const DatePickerRootContext = new Context("DatePicker.Root");
9
- export function useDatePickerRoot(props) {
10
- return DatePickerRootContext.set(new DatePickerRootState(props));
11
- }
@@ -36,6 +36,10 @@ export type DatePickerRootPropsWithoutHTML = WithChildren<{
36
36
  * A callback function called when the open state changes.
37
37
  */
38
38
  onOpenChange?: OnChangeFn<boolean>;
39
+ /**
40
+ * A callback function called when the open state changes complete.
41
+ */
42
+ onOpenChangeComplete?: OnChangeFn<boolean>;
39
43
  /**
40
44
  * A function that returns true if the given date is unavailable,
41
45
  * where if selected, the date field will be marked as invalid.