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
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { DateRangeFieldInputProps } from "../types.js";
4
- import { useDateRangeFieldInput } from "../date-range-field.svelte.js";
4
+ import { DateRangeFieldInputState } from "../date-range-field.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
  import DateFieldHiddenInput from "../../date-field/components/date-field-hidden-input.svelte";
7
7
 
@@ -17,7 +17,7 @@
17
17
  ...restProps
18
18
  }: DateRangeFieldInputProps = $props();
19
19
 
20
- const inputState = useDateRangeFieldInput(
20
+ const inputState = DateRangeFieldInputState.create(
21
21
  {
22
22
  id: box.with(() => id),
23
23
  ref: box.with(
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
- import { useDateRangeFieldLabel } from "../date-range-field.svelte.js";
3
+ import { DateRangeFieldLabelState } from "../date-range-field.svelte.js";
4
4
  import type { DateRangeFieldLabelProps } from "../types.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
@@ -14,7 +14,7 @@
14
14
  ...restProps
15
15
  }: DateRangeFieldLabelProps = $props();
16
16
 
17
- const labelState = useDateRangeFieldLabel({
17
+ const labelState = DateRangeFieldLabelState.create({
18
18
  id: box.with(() => id),
19
19
  ref: box.with(
20
20
  () => ref,
@@ -2,7 +2,7 @@
2
2
  import { watch } from "runed";
3
3
  import { box, mergeProps } from "svelte-toolbelt";
4
4
  import type { DateValue } from "@internationalized/date";
5
- import { useDateRangeFieldRoot } from "../date-range-field.svelte.js";
5
+ import { DateRangeFieldRootState } from "../date-range-field.svelte.js";
6
6
  import type { DateRangeFieldRootProps } from "../types.js";
7
7
  import { createId } from "../../../internal/create-id.js";
8
8
  import { noop } from "../../../internal/noop.js";
@@ -79,7 +79,7 @@
79
79
  }
80
80
  );
81
81
 
82
- const rootState = useDateRangeFieldRoot({
82
+ const rootState = DateRangeFieldRootState.create({
83
83
  id: box.with(() => id),
84
84
  ref: box.with(
85
85
  () => ref,
@@ -1,20 +1,19 @@
1
1
  import type { DateValue } from "@internationalized/date";
2
- import { DOMContext } from "svelte-toolbelt";
2
+ import { DOMContext, type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
3
3
  import { Context } from "runed";
4
- import type { DateFieldRootState } from "../date-field/date-field.svelte.js";
5
- import { DateFieldInputState } from "../date-field/date-field.svelte.js";
6
- import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
4
+ import { DateFieldInputState, DateFieldRootState } from "../date-field/date-field.svelte.js";
7
5
  import type { DateOnInvalid, DateRange, DateRangeValidator, SegmentPart } from "../../shared/index.js";
8
- import type { WithRefProps } from "../../internal/types.js";
6
+ import type { WithRefOpts } from "../../internal/types.js";
9
7
  import type { Granularity } from "../../shared/date/types.js";
10
8
  import { type Formatter } from "../../internal/date-time/formatter.js";
11
- export declare const dateRangeFieldAttrs: import("../../internal/attrs.js").BitsAttrs<readonly ["root", "label"]>;
12
- type DateRangeFieldRootStateProps = WithRefProps<WritableBoxedValues<{
9
+ export declare const dateRangeFieldAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["root", "label"]>;
10
+ export declare const DateRangeFieldRootContext: Context<DateRangeFieldRootState>;
11
+ interface DateRangeFieldRootStateOpts extends WithRefOpts, WritableBoxedValues<{
13
12
  value: DateRange;
14
13
  placeholder: DateValue;
15
14
  startValue: DateValue | undefined;
16
15
  endValue: DateValue | undefined;
17
- }> & ReadableBoxedValues<{
16
+ }>, ReadableBoxedValues<{
18
17
  readonlySegments: SegmentPart[];
19
18
  validate: DateRangeValidator | undefined;
20
19
  onInvalid: DateOnInvalid | undefined;
@@ -28,10 +27,12 @@ type DateRangeFieldRootStateProps = WithRefProps<WritableBoxedValues<{
28
27
  hideTimeZone: boolean;
29
28
  required: boolean;
30
29
  errorMessageId: string | undefined;
31
- }>>;
30
+ }> {
31
+ }
32
32
  export declare class DateRangeFieldRootState {
33
33
  #private;
34
- readonly opts: DateRangeFieldRootStateProps;
34
+ static create(opts: DateRangeFieldRootStateOpts): DateRangeFieldRootState;
35
+ readonly opts: DateRangeFieldRootStateOpts;
35
36
  startFieldState: DateFieldRootState | undefined;
36
37
  endFieldState: DateFieldRootState | undefined;
37
38
  descriptionId: string;
@@ -39,12 +40,12 @@ export declare class DateRangeFieldRootState {
39
40
  fieldNode: HTMLElement | null;
40
41
  labelNode: HTMLElement | null;
41
42
  descriptionNode: HTMLElement | null;
42
- startValueComplete: boolean;
43
- endValueComplete: boolean;
44
- rangeComplete: boolean;
43
+ readonly startValueComplete: boolean;
44
+ readonly endValueComplete: boolean;
45
+ readonly rangeComplete: boolean;
45
46
  domContext: DOMContext;
46
- constructor(opts: DateRangeFieldRootStateProps);
47
- validationStatus: false | {
47
+ constructor(opts: DateRangeFieldRootStateOpts);
48
+ readonly validationStatus: false | {
48
49
  readonly reason: "custom";
49
50
  readonly message: string | string[];
50
51
  } | {
@@ -54,33 +55,35 @@ export declare class DateRangeFieldRootState {
54
55
  readonly reason: "max";
55
56
  readonly message?: undefined;
56
57
  };
57
- isInvalid: boolean;
58
- props: {
58
+ readonly isInvalid: boolean;
59
+ readonly props: {
59
60
  readonly id: string;
60
61
  readonly role: "group";
61
62
  readonly "data-invalid": "" | undefined;
62
63
  };
63
64
  }
64
- type DateRangeFieldLabelStateProps = WithRefProps;
65
- declare class DateRangeFieldLabelState {
65
+ interface DateRangeFieldLabelStateOpts extends WithRefOpts {
66
+ }
67
+ export declare class DateRangeFieldLabelState {
66
68
  #private;
67
- readonly opts: DateRangeFieldLabelStateProps;
69
+ static create(opts: DateRangeFieldLabelStateOpts): DateRangeFieldLabelState;
70
+ readonly opts: DateRangeFieldLabelStateOpts;
68
71
  readonly root: DateRangeFieldRootState;
69
- constructor(opts: DateRangeFieldLabelStateProps, root: DateRangeFieldRootState);
70
- props: {
72
+ constructor(opts: DateRangeFieldLabelStateOpts, root: DateRangeFieldRootState);
73
+ readonly props: {
71
74
  readonly id: string;
72
75
  readonly "data-invalid": "" | undefined;
73
76
  readonly "data-disabled": "" | undefined;
74
77
  readonly onclick: () => void;
75
78
  };
76
79
  }
77
- type DateRangeFieldInputStateProps = WritableBoxedValues<{
80
+ interface DateRangeFieldInputStateOpts extends WithRefOpts, WritableBoxedValues<{
78
81
  value: DateValue | undefined;
79
- }> & ReadableBoxedValues<{
82
+ }>, ReadableBoxedValues<{
80
83
  name: string;
81
- }> & WithRefProps;
82
- export declare const DateRangeFieldRootContext: Context<DateRangeFieldRootState>;
83
- export declare function useDateRangeFieldRoot(props: DateRangeFieldRootStateProps): DateRangeFieldRootState;
84
- export declare function useDateRangeFieldLabel(props: DateRangeFieldLabelStateProps): DateRangeFieldLabelState;
85
- export declare function useDateRangeFieldInput(props: Omit<DateRangeFieldInputStateProps, "value">, type: "start" | "end"): DateFieldInputState;
84
+ }> {
85
+ }
86
+ export declare class DateRangeFieldInputState {
87
+ static create(opts: Omit<DateRangeFieldInputStateOpts, "value">, type: "start" | "end"): DateFieldInputState;
88
+ }
86
89
  export {};
@@ -1,6 +1,6 @@
1
- import { box, onDestroyEffect, attachRef, DOMContext } from "svelte-toolbelt";
1
+ import { box, onDestroyEffect, attachRef, DOMContext, } from "svelte-toolbelt";
2
2
  import { Context, watch } from "runed";
3
- import { DateFieldInputState, useDateFieldRoot } from "../date-field/date-field.svelte.js";
3
+ import { DateFieldInputState, DateFieldRootState } from "../date-field/date-field.svelte.js";
4
4
  import { useId } from "../../internal/use-id.js";
5
5
  import { createBitsAttrs, getDataDisabled, getDataInvalid } from "../../internal/attrs.js";
6
6
  import { createFormatter } from "../../internal/date-time/formatter.js";
@@ -11,7 +11,11 @@ export const dateRangeFieldAttrs = createBitsAttrs({
11
11
  component: "date-range-field",
12
12
  parts: ["root", "label"],
13
13
  });
14
+ export const DateRangeFieldRootContext = new Context("DateRangeField.Root");
14
15
  export class DateRangeFieldRootState {
16
+ static create(opts) {
17
+ return DateRangeFieldRootContext.set(new DateRangeFieldRootState(opts));
18
+ }
15
19
  opts;
16
20
  startFieldState = undefined;
17
21
  endFieldState = undefined;
@@ -141,7 +145,10 @@ export class DateRangeFieldRootState {
141
145
  ...attachRef(this.opts.ref, (v) => (this.fieldNode = v)),
142
146
  }));
143
147
  }
144
- class DateRangeFieldLabelState {
148
+ export class DateRangeFieldLabelState {
149
+ static create(opts) {
150
+ return new DateRangeFieldLabelState(opts, DateRangeFieldRootContext.get());
151
+ }
145
152
  opts;
146
153
  root;
147
154
  constructor(opts, root) {
@@ -158,7 +165,6 @@ class DateRangeFieldLabelState {
158
165
  };
159
166
  props = $derived.by(() => ({
160
167
  id: this.opts.id.current,
161
- // TODO: invalid state for field
162
168
  "data-invalid": getDataInvalid(this.root.isInvalid),
163
169
  "data-disabled": getDataDisabled(this.root.opts.disabled.current),
164
170
  [dateRangeFieldAttrs.label]: "",
@@ -166,32 +172,27 @@ class DateRangeFieldLabelState {
166
172
  ...attachRef(this.opts.ref, (v) => (this.root.labelNode = v)),
167
173
  }));
168
174
  }
169
- export const DateRangeFieldRootContext = new Context("DateRangeField.Root");
170
- export function useDateRangeFieldRoot(props) {
171
- return DateRangeFieldRootContext.set(new DateRangeFieldRootState(props));
172
- }
173
- export function useDateRangeFieldLabel(props) {
174
- return new DateRangeFieldLabelState(props, DateRangeFieldRootContext.get());
175
- }
176
- export function useDateRangeFieldInput(props, type) {
177
- const root = DateRangeFieldRootContext.get();
178
- const fieldState = useDateFieldRoot({
179
- value: type === "start" ? root.opts.startValue : root.opts.endValue,
180
- disabled: root.opts.disabled,
181
- readonly: root.opts.readonly,
182
- readonlySegments: root.opts.readonlySegments,
183
- validate: box.with(() => undefined),
184
- minValue: root.opts.minValue,
185
- maxValue: root.opts.maxValue,
186
- hourCycle: root.opts.hourCycle,
187
- locale: root.opts.locale,
188
- hideTimeZone: root.opts.hideTimeZone,
189
- required: root.opts.required,
190
- granularity: root.opts.granularity,
191
- placeholder: root.opts.placeholder,
192
- onInvalid: root.opts.onInvalid,
193
- errorMessageId: root.opts.errorMessageId,
194
- isInvalidProp: box.with(() => root.isInvalid),
195
- }, root);
196
- return new DateFieldInputState({ name: props.name, id: props.id, ref: props.ref }, fieldState);
175
+ export class DateRangeFieldInputState {
176
+ static create(opts, type) {
177
+ const root = DateRangeFieldRootContext.get();
178
+ const fieldState = DateFieldRootState.create({
179
+ value: type === "start" ? root.opts.startValue : root.opts.endValue,
180
+ disabled: root.opts.disabled,
181
+ readonly: root.opts.readonly,
182
+ readonlySegments: root.opts.readonlySegments,
183
+ validate: box.with(() => undefined),
184
+ minValue: root.opts.minValue,
185
+ maxValue: root.opts.maxValue,
186
+ hourCycle: root.opts.hourCycle,
187
+ locale: root.opts.locale,
188
+ hideTimeZone: root.opts.hideTimeZone,
189
+ required: root.opts.required,
190
+ granularity: root.opts.granularity,
191
+ placeholder: root.opts.placeholder,
192
+ onInvalid: root.opts.onInvalid,
193
+ errorMessageId: root.opts.errorMessageId,
194
+ isInvalidProp: box.with(() => root.isInvalid),
195
+ }, root);
196
+ return new DateFieldInputState({ name: opts.name, id: opts.id, ref: opts.ref }, fieldState);
197
+ }
197
198
  }
@@ -3,7 +3,7 @@
3
3
  import type { DateRangePickerCalendarProps } from "../types.js";
4
4
  import { DateRangePickerRootContext } from "../date-range-picker.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
- import { useRangeCalendarRoot } from "../../range-calendar/range-calendar.svelte.js";
6
+ import { RangeCalendarRootState } from "../../range-calendar/range-calendar.svelte.js";
7
7
 
8
8
  const uid = $props.id();
9
9
 
@@ -17,7 +17,7 @@
17
17
 
18
18
  const dateRangePickerRootState = DateRangePickerRootContext.get();
19
19
 
20
- const rangeCalendarState = useRangeCalendarRoot({
20
+ const rangeCalendarState = RangeCalendarRootState.create({
21
21
  id: box.with(() => id),
22
22
  ref: box.with(
23
23
  () => ref,
@@ -2,11 +2,11 @@
2
2
  import { watch } from "runed";
3
3
  import { box, mergeProps } from "svelte-toolbelt";
4
4
  import type { DateValue } from "@internationalized/date";
5
- import { useDateRangePickerRoot } from "../date-range-picker.svelte.js";
5
+ import { DateRangePickerRootState } from "../date-range-picker.svelte.js";
6
6
  import type { DateRangePickerRootProps } from "../types.js";
7
7
  import { noop } from "../../../internal/noop.js";
8
- import { usePopoverRoot } from "../../popover/popover.svelte.js";
9
- import { useDateRangeFieldRoot } from "../../date-range-field/date-range-field.svelte.js";
8
+ import { PopoverRootState } from "../../popover/popover.svelte.js";
9
+ import { DateRangeFieldRootState } from "../../date-range-field/date-range-field.svelte.js";
10
10
  import FloatingLayer from "../../utilities/floating-layer/components/floating-layer.svelte";
11
11
  import { useId } from "../../../internal/use-id.js";
12
12
  import type { DateRange } from "../../../shared/index.js";
@@ -16,6 +16,7 @@
16
16
  let {
17
17
  open = $bindable(false),
18
18
  onOpenChange = noop,
19
+ onOpenChangeComplete = noop,
19
20
  value = $bindable(),
20
21
  id = useId(),
21
22
  ref = $bindable(null),
@@ -112,7 +113,7 @@
112
113
  }
113
114
  }
114
115
 
115
- const pickerRootState = useDateRangePickerRoot({
116
+ const pickerRootState = DateRangePickerRootState.create({
116
117
  open: box.with(
117
118
  () => open,
118
119
  (v) => {
@@ -177,11 +178,12 @@
177
178
  defaultPlaceholder,
178
179
  });
179
180
 
180
- usePopoverRoot({
181
+ PopoverRootState.create({
181
182
  open: pickerRootState.opts.open,
183
+ onOpenChangeComplete: box.with(() => onOpenChangeComplete),
182
184
  });
183
185
 
184
- const fieldRootState = useDateRangeFieldRoot({
186
+ const fieldRootState = DateRangeFieldRootState.create({
185
187
  value: pickerRootState.opts.value,
186
188
  disabled: pickerRootState.opts.disabled,
187
189
  readonly: pickerRootState.opts.readonly,
@@ -1,15 +1,16 @@
1
1
  import type { DateValue } from "@internationalized/date";
2
+ import { type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
2
3
  import { Context } from "runed";
3
- import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
4
4
  import type { DateMatcher, DateRange, SegmentPart } from "../../shared/index.js";
5
5
  import type { Granularity, HourCycle, WeekStartsOn } from "../../shared/date/types.js";
6
- type DateRangePickerRootStateProps = WritableBoxedValues<{
6
+ export declare const DateRangePickerRootContext: Context<DateRangePickerRootState>;
7
+ interface DateRangePickerRootStateOpts extends WritableBoxedValues<{
7
8
  value: DateRange;
8
9
  startValue: DateValue | undefined;
9
10
  endValue: DateValue | undefined;
10
11
  open: boolean;
11
12
  placeholder: DateValue;
12
- }> & ReadableBoxedValues<{
13
+ }>, ReadableBoxedValues<{
13
14
  readonlySegments: SegmentPart[];
14
15
  isDateUnavailable: DateMatcher;
15
16
  isDateDisabled: DateMatcher;
@@ -36,13 +37,12 @@ type DateRangePickerRootStateProps = WritableBoxedValues<{
36
37
  onRangeSelect?: () => void;
37
38
  monthFormat: Intl.DateTimeFormatOptions["month"] | ((month: number) => string);
38
39
  yearFormat: Intl.DateTimeFormatOptions["year"] | ((year: number) => string);
39
- }> & {
40
+ }> {
40
41
  defaultPlaceholder: DateValue;
41
- };
42
- declare class DateRangePickerRootState {
43
- readonly opts: DateRangePickerRootStateProps;
44
- constructor(opts: DateRangePickerRootStateProps);
45
42
  }
46
- export declare const DateRangePickerRootContext: Context<DateRangePickerRootState>;
47
- export declare function useDateRangePickerRoot(props: DateRangePickerRootStateProps): DateRangePickerRootState;
43
+ export declare class DateRangePickerRootState {
44
+ static create(opts: DateRangePickerRootStateOpts): DateRangePickerRootState;
45
+ readonly opts: DateRangePickerRootStateOpts;
46
+ constructor(opts: DateRangePickerRootStateOpts);
47
+ }
48
48
  export {};
@@ -1,11 +1,12 @@
1
+ import {} from "svelte-toolbelt";
1
2
  import { Context } from "runed";
2
- class DateRangePickerRootState {
3
+ export const DateRangePickerRootContext = new Context("DateRangePicker.Root");
4
+ export class DateRangePickerRootState {
5
+ static create(opts) {
6
+ return DateRangePickerRootContext.set(new DateRangePickerRootState(opts));
7
+ }
3
8
  opts;
4
9
  constructor(opts) {
5
10
  this.opts = opts;
6
11
  }
7
12
  }
8
- export const DateRangePickerRootContext = new Context("DateRangePicker.Root");
9
- export function useDateRangePickerRoot(props) {
10
- return DateRangePickerRootContext.set(new DateRangePickerRootState(props));
11
- }
@@ -35,6 +35,10 @@ export type DateRangePickerRootPropsWithoutHTML = WithChild<{
35
35
  * A callback function called when the open state changes.
36
36
  */
37
37
  onOpenChange?: OnChangeFn<boolean>;
38
+ /**
39
+ * A callback function called when the open state changes complete.
40
+ */
41
+ onOpenChangeComplete?: OnChangeFn<boolean>;
38
42
  /**
39
43
  * A function that returns true if the given date is unavailable,
40
44
  * where if selected, the date field will be marked as invalid.
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
- import { useDialogClose } from "../dialog.svelte.js";
3
+ import { DialogCloseState } from "../dialog.svelte.js";
4
4
  import type { DialogCloseProps } from "../types.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
@@ -15,7 +15,7 @@
15
15
  ...restProps
16
16
  }: DialogCloseProps = $props();
17
17
 
18
- const closeState = useDialogClose({
18
+ const closeState = DialogCloseState.create({
19
19
  variant: box.with(() => "close"),
20
20
  id: box.with(() => id),
21
21
  ref: box.with(
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
- import { useDialogContent } from "../dialog.svelte.js";
3
+ import { DialogContentState } from "../dialog.svelte.js";
4
4
  import type { DialogContentProps } from "../types.js";
5
5
  import DismissibleLayer from "../../utilities/dismissible-layer/dismissible-layer.svelte";
6
6
  import EscapeLayer from "../../utilities/escape-layer/escape-layer.svelte";
@@ -30,7 +30,7 @@
30
30
  ...restProps
31
31
  }: DialogContentProps = $props();
32
32
 
33
- const contentState = useDialogContent({
33
+ const contentState = DialogContentState.create({
34
34
  id: box.with(() => id),
35
35
  ref: box.with(
36
36
  () => ref,
@@ -44,7 +44,7 @@
44
44
  <PresenceLayer
45
45
  {...mergedProps}
46
46
  {forceMount}
47
- present={contentState.root.opts.open.current || forceMount}
47
+ open={contentState.root.opts.open.current || forceMount}
48
48
  ref={contentState.opts.ref}
49
49
  >
50
50
  {#snippet presence()}
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
- import { useDialogDescription } from "../dialog.svelte.js";
3
+ import { DialogDescriptionState } from "../dialog.svelte.js";
4
4
  import type { DialogDescriptionProps } from "../types.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
@@ -14,7 +14,7 @@
14
14
  ...restProps
15
15
  }: DialogDescriptionProps = $props();
16
16
 
17
- const descriptionState = useDialogDescription({
17
+ const descriptionState = DialogDescriptionState.create({
18
18
  id: box.with(() => id),
19
19
  ref: box.with(
20
20
  () => ref,
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
- import { useDialogOverlay } from "../dialog.svelte.js";
3
+ import { DialogOverlayState } from "../dialog.svelte.js";
4
4
  import type { DialogOverlayProps } from "../types.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
  import PresenceLayer from "../../utilities/presence-layer/presence-layer.svelte";
@@ -16,7 +16,7 @@
16
16
  ...restProps
17
17
  }: DialogOverlayProps = $props();
18
18
 
19
- const overlayState = useDialogOverlay({
19
+ const overlayState = DialogOverlayState.create({
20
20
  id: box.with(() => id),
21
21
  ref: box.with(
22
22
  () => ref,
@@ -27,10 +27,7 @@
27
27
  const mergedProps = $derived(mergeProps(restProps, overlayState.props));
28
28
  </script>
29
29
 
30
- <PresenceLayer
31
- present={overlayState.root.opts.open.current || forceMount}
32
- ref={overlayState.opts.ref}
33
- >
30
+ <PresenceLayer open={overlayState.root.opts.open.current || forceMount} ref={overlayState.opts.ref}>
34
31
  {#snippet presence()}
35
32
  {#if child}
36
33
  {@render child({ props: mergeProps(mergedProps), ...overlayState.snippetProps })}
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
- import { useDialogTitle } from "../dialog.svelte.js";
3
+ import { DialogTitleState } from "../dialog.svelte.js";
4
4
  import type { DialogTitleProps } from "../types.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
@@ -15,7 +15,7 @@
15
15
  ...restProps
16
16
  }: DialogTitleProps = $props();
17
17
 
18
- const titleState = useDialogTitle({
18
+ const titleState = DialogTitleState.create({
19
19
  id: box.with(() => id),
20
20
  level: box.with(() => level),
21
21
  ref: box.with(
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
- import { useDialogTrigger } from "../dialog.svelte.js";
3
+ import { DialogTriggerState } from "../dialog.svelte.js";
4
4
  import type { DialogTriggerProps } from "../types.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
@@ -15,7 +15,7 @@
15
15
  ...restProps
16
16
  }: DialogTriggerProps = $props();
17
17
 
18
- const triggerState = useDialogTrigger({
18
+ const triggerState = DialogTriggerState.create({
19
19
  id: box.with(() => id),
20
20
  ref: box.with(
21
21
  () => ref,
@@ -1,12 +1,17 @@
1
1
  <script lang="ts">
2
2
  import { box } from "svelte-toolbelt";
3
- import { useDialogRoot } from "../dialog.svelte.js";
3
+ import { DialogRootState } from "../dialog.svelte.js";
4
4
  import type { DialogRootProps } from "../types.js";
5
5
  import { noop } from "../../../internal/noop.js";
6
6
 
7
- let { open = $bindable(false), onOpenChange = noop, children }: DialogRootProps = $props();
7
+ let {
8
+ open = $bindable(false),
9
+ onOpenChange = noop,
10
+ onOpenChangeComplete = noop,
11
+ children,
12
+ }: DialogRootProps = $props();
8
13
 
9
- useDialogRoot({
14
+ DialogRootState.create({
10
15
  variant: box.with(() => "dialog"),
11
16
  open: box.with(
12
17
  () => open,
@@ -15,6 +20,7 @@
15
20
  onOpenChange(v);
16
21
  }
17
22
  ),
23
+ onOpenChangeComplete: box.with(() => onOpenChangeComplete),
18
24
  });
19
25
  </script>
20
26