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,24 +1,26 @@
1
1
  import { SvelteMap } from "svelte/reactivity";
2
+ import { type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
2
3
  import type { TabsActivationMode } from "./types.js";
3
- import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
4
- import type { BitsFocusEvent, BitsKeyboardEvent, BitsMouseEvent, WithRefProps } from "../../internal/types.js";
4
+ import type { BitsFocusEvent, BitsKeyboardEvent, BitsMouseEvent, WithRefOpts } from "../../internal/types.js";
5
5
  import type { Orientation } from "../../shared/index.js";
6
- import { type UseRovingFocusReturn } from "../../internal/use-roving-focus.svelte.js";
7
- type TabsRootStateProps = WithRefProps<ReadableBoxedValues<{
6
+ import { RovingFocusGroup } from "../../internal/roving-focus-group.js";
7
+ interface TabsRootStateOpts extends WithRefOpts, ReadableBoxedValues<{
8
8
  orientation: Orientation;
9
9
  loop: boolean;
10
10
  activationMode: TabsActivationMode;
11
11
  disabled: boolean;
12
- }> & WritableBoxedValues<{
12
+ }>, WritableBoxedValues<{
13
13
  value: string;
14
- }>>;
15
- declare class TabsRootState {
16
- readonly opts: TabsRootStateProps;
17
- rovingFocusGroup: UseRovingFocusReturn;
14
+ }> {
15
+ }
16
+ export declare class TabsRootState {
17
+ static create(opts: TabsRootStateOpts): TabsRootState;
18
+ readonly opts: TabsRootStateOpts;
19
+ readonly rovingFocusGroup: RovingFocusGroup;
18
20
  triggerIds: string[];
19
21
  readonly valueToTriggerId: SvelteMap<string, string>;
20
22
  readonly valueToContentId: SvelteMap<string, string>;
21
- constructor(opts: TabsRootStateProps);
23
+ constructor(opts: TabsRootStateOpts);
22
24
  registerTrigger(id: string, value: string): () => void;
23
25
  registerContent(id: string, value: string): () => void;
24
26
  setValue(v: string): void;
@@ -27,12 +29,14 @@ declare class TabsRootState {
27
29
  readonly "data-orientation": "horizontal" | "vertical";
28
30
  };
29
31
  }
30
- type TabsListStateProps = WithRefProps;
31
- declare class TabsListState {
32
+ interface TabsListStateOpts extends WithRefOpts {
33
+ }
34
+ export declare class TabsListState {
32
35
  #private;
33
- readonly opts: TabsListStateProps;
36
+ static create(opts: TabsListStateOpts): TabsListState;
37
+ readonly opts: TabsListStateOpts;
34
38
  readonly root: TabsRootState;
35
- constructor(opts: TabsListStateProps, root: TabsRootState);
39
+ constructor(opts: TabsListStateOpts, root: TabsRootState);
36
40
  readonly props: {
37
41
  readonly id: string;
38
42
  readonly role: "tablist";
@@ -41,15 +45,17 @@ declare class TabsListState {
41
45
  readonly "data-disabled": "" | undefined;
42
46
  };
43
47
  }
44
- type TabsTriggerStateProps = WithRefProps<ReadableBoxedValues<{
48
+ interface TabsTriggerStateOpts extends WithRefOpts, ReadableBoxedValues<{
45
49
  value: string;
46
50
  disabled: boolean;
47
- }>>;
48
- declare class TabsTriggerState {
51
+ }> {
52
+ }
53
+ export declare class TabsTriggerState {
49
54
  #private;
50
- readonly opts: TabsTriggerStateProps;
55
+ static create(opts: TabsTriggerStateOpts): TabsTriggerState;
56
+ readonly opts: TabsTriggerStateOpts;
51
57
  readonly root: TabsRootState;
52
- constructor(opts: TabsTriggerStateProps, root: TabsRootState);
58
+ constructor(opts: TabsTriggerStateOpts, root: TabsRootState);
53
59
  onfocus(_: BitsFocusEvent): void;
54
60
  onclick(_: BitsMouseEvent): void;
55
61
  onkeydown(e: BitsKeyboardEvent): void;
@@ -69,15 +75,17 @@ declare class TabsTriggerState {
69
75
  readonly onkeydown: (e: BitsKeyboardEvent) => void;
70
76
  };
71
77
  }
72
- type TabsContentStateProps = WithRefProps<ReadableBoxedValues<{
78
+ interface TabsContentStateOpts extends WithRefOpts, ReadableBoxedValues<{
73
79
  value: string;
74
- }>>;
75
- declare class TabsContentState {
80
+ }> {
81
+ }
82
+ export declare class TabsContentState {
76
83
  #private;
77
- readonly opts: TabsContentStateProps;
84
+ static create(opts: TabsContentStateOpts): TabsContentState;
85
+ readonly opts: TabsContentStateOpts;
78
86
  readonly root: TabsRootState;
79
- constructor(opts: TabsContentStateProps, root: TabsRootState);
80
- props: {
87
+ constructor(opts: TabsContentStateOpts, root: TabsRootState);
88
+ readonly props: {
81
89
  readonly id: string;
82
90
  readonly role: "tabpanel";
83
91
  readonly hidden: true | undefined;
@@ -88,8 +96,4 @@ declare class TabsContentState {
88
96
  readonly "data-orientation": "horizontal" | "vertical";
89
97
  };
90
98
  }
91
- export declare function useTabsRoot(props: TabsRootStateProps): TabsRootState;
92
- export declare function useTabsTrigger(props: TabsTriggerStateProps): TabsTriggerState;
93
- export declare function useTabsList(props: TabsListStateProps): TabsListState;
94
- export declare function useTabsContent(props: TabsContentStateProps): TabsContentState;
95
99
  export {};
@@ -3,12 +3,16 @@ import { attachRef } from "svelte-toolbelt";
3
3
  import { Context, watch } from "runed";
4
4
  import { createBitsAttrs, getAriaOrientation, getAriaSelected, getDataDisabled, getDataOrientation, getDisabled, getHidden, } from "../../internal/attrs.js";
5
5
  import { kbd } from "../../internal/kbd.js";
6
- import { useRovingFocus, } from "../../internal/use-roving-focus.svelte.js";
6
+ import { RovingFocusGroup } from "../../internal/roving-focus-group.js";
7
7
  const tabsAttrs = createBitsAttrs({
8
8
  component: "tabs",
9
9
  parts: ["root", "list", "trigger", "content"],
10
10
  });
11
- class TabsRootState {
11
+ const TabsRootContext = new Context("Tabs.Root");
12
+ export class TabsRootState {
13
+ static create(opts) {
14
+ return TabsRootContext.set(new TabsRootState(opts));
15
+ }
12
16
  opts;
13
17
  rovingFocusGroup;
14
18
  triggerIds = $state([]);
@@ -18,7 +22,7 @@ class TabsRootState {
18
22
  valueToContentId = new SvelteMap();
19
23
  constructor(opts) {
20
24
  this.opts = opts;
21
- this.rovingFocusGroup = useRovingFocus({
25
+ this.rovingFocusGroup = new RovingFocusGroup({
22
26
  candidateAttr: tabsAttrs.trigger,
23
27
  rootNode: this.opts.ref,
24
28
  loop: this.opts.loop,
@@ -51,7 +55,10 @@ class TabsRootState {
51
55
  ...attachRef(this.opts.ref),
52
56
  }));
53
57
  }
54
- class TabsListState {
58
+ export class TabsListState {
59
+ static create(opts) {
60
+ return new TabsListState(opts, TabsRootContext.get());
61
+ }
55
62
  opts;
56
63
  root;
57
64
  #isDisabled = $derived.by(() => this.root.opts.disabled.current);
@@ -69,7 +76,10 @@ class TabsListState {
69
76
  ...attachRef(this.opts.ref),
70
77
  }));
71
78
  }
72
- class TabsTriggerState {
79
+ export class TabsTriggerState {
80
+ static create(opts) {
81
+ return new TabsTriggerState(opts, TabsRootContext.get());
82
+ }
73
83
  opts;
74
84
  root;
75
85
  #tabIndex = $state(0);
@@ -139,7 +149,10 @@ class TabsTriggerState {
139
149
  ...attachRef(this.opts.ref),
140
150
  }));
141
151
  }
142
- class TabsContentState {
152
+ export class TabsContentState {
153
+ static create(opts) {
154
+ return new TabsContentState(opts, TabsRootContext.get());
155
+ }
143
156
  opts;
144
157
  root;
145
158
  #isActive = $derived.by(() => this.root.opts.value.current === this.opts.value.current);
@@ -164,19 +177,6 @@ class TabsContentState {
164
177
  ...attachRef(this.opts.ref),
165
178
  }));
166
179
  }
167
- const TabsRootContext = new Context("Tabs.Root");
168
- export function useTabsRoot(props) {
169
- return TabsRootContext.set(new TabsRootState(props));
170
- }
171
- export function useTabsTrigger(props) {
172
- return new TabsTriggerState(props, TabsRootContext.get());
173
- }
174
- export function useTabsList(props) {
175
- return new TabsListState(props, TabsRootContext.get());
176
- }
177
- export function useTabsContent(props) {
178
- return new TabsContentState(props, TabsRootContext.get());
179
- }
180
180
  function getTabDataState(condition) {
181
181
  return condition ? "active" : "inactive";
182
182
  }
@@ -1,8 +1,8 @@
1
1
  <script lang="ts">
2
- import { useTimeFieldHiddenInput } from "../time-field.svelte.js";
2
+ import { TimeFieldHiddenInputState } from "../time-field.svelte.js";
3
3
  import HiddenInput from "../../utilities/hidden-input.svelte";
4
4
 
5
- const hiddenInputState = useTimeFieldHiddenInput();
5
+ const hiddenInputState = TimeFieldHiddenInputState.create();
6
6
  </script>
7
7
 
8
8
  {#if hiddenInputState.shouldRender}
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
- import { useTimeFieldInput } from "../time-field.svelte.js";
3
+ import { TimeFieldInputState } from "../time-field.svelte.js";
4
4
  import type { TimeFieldInputProps } from "../types.js";
5
5
  import DateFieldHiddenInput from "./time-field-hidden-input.svelte";
6
6
  import { createId } from "../../../internal/create-id.js";
@@ -16,7 +16,7 @@
16
16
  ...restProps
17
17
  }: TimeFieldInputProps = $props();
18
18
 
19
- const inputState = useTimeFieldInput({
19
+ const inputState = TimeFieldInputState.create({
20
20
  id: box.with(() => id),
21
21
  ref: box.with(
22
22
  () => ref,
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
- import { useTimeFieldLabel } from "../time-field.svelte.js";
3
+ import { TimeFieldLabelState } from "../time-field.svelte.js";
4
4
  import type { TimeFieldLabelProps } from "../types.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
@@ -14,7 +14,7 @@
14
14
  ...restProps
15
15
  }: TimeFieldLabelProps = $props();
16
16
 
17
- const labelState = useTimeFieldLabel({
17
+ const labelState = TimeFieldLabelState.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 { useTimeFieldSegment } from "../time-field.svelte.js";
3
+ import { DateFieldSegmentState } from "../time-field.svelte.js";
4
4
  import type { TimeFieldSegmentProps } from "../types.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
@@ -15,7 +15,7 @@
15
15
  ...restProps
16
16
  }: TimeFieldSegmentProps = $props();
17
17
 
18
- const segmentState = useTimeFieldSegment(part, {
18
+ const segmentState = DateFieldSegmentState.create(part, {
19
19
  id: box.with(() => id),
20
20
  ref: box.with(
21
21
  () => ref,
@@ -7,7 +7,7 @@
7
7
  <script lang="ts" generics="T extends TimeValue = Time">
8
8
  import { watch } from "runed";
9
9
  import { box } from "svelte-toolbelt";
10
- import { useTimeFieldRoot } from "../time-field.svelte.js";
10
+ import { TimeFieldRootState } from "../time-field.svelte.js";
11
11
  import type { TimeFieldRootProps } from "../types.js";
12
12
  import { noop } from "../../../internal/noop.js";
13
13
  import { getDefaultTime } from "../../../internal/date-time/utils.js";
@@ -60,7 +60,7 @@
60
60
  }
61
61
  );
62
62
 
63
- useTimeFieldRoot({
63
+ TimeFieldRootState.create({
64
64
  value: box.with(
65
65
  () => value,
66
66
  (v) => {
@@ -1,25 +1,24 @@
1
1
  import type { Updater } from "svelte/store";
2
2
  import { Time } from "@internationalized/date";
3
- import { type WritableBox, DOMContext } from "svelte-toolbelt";
4
- import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
5
- import type { BitsFocusEvent, BitsKeyboardEvent, BitsMouseEvent, WithRefProps } from "../../internal/types.js";
3
+ import { type WritableBox, DOMContext, type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
4
+ import type { BitsFocusEvent, BitsKeyboardEvent, BitsMouseEvent, WithRefOpts } from "../../internal/types.js";
6
5
  import type { TimeSegmentObj, SegmentPart, HourCycle, TimeValidator, TimeOnInvalid, EditableTimeSegmentPart } from "../../shared/date/types.js";
7
6
  import { type TimeFormatter } from "../../internal/date-time/formatter.js";
8
7
  import { type Announcer } from "../../internal/date-time/announcer.js";
9
8
  import type { TimeValue } from "../../shared/date/types.js";
10
9
  import type { TimeRangeFieldRootState } from "../time-range-field/time-range-field.svelte.js";
11
- export declare const timeFieldAttrs: import("../../internal/attrs.js").BitsAttrs<readonly ["input", "label"]>;
12
- type SegmentConfig = {
10
+ export declare const timeFieldAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["input", "label"]>;
11
+ interface SegmentConfig {
13
12
  min: number | ((root: TimeFieldRootState) => number);
14
13
  max: number | ((root: TimeFieldRootState) => number);
15
14
  cycle: number;
16
15
  canBeZero?: boolean;
17
16
  padZero?: boolean;
18
- };
19
- export type TimeFieldRootStateProps<T extends TimeValue = Time> = WritableBoxedValues<{
17
+ }
18
+ export interface TimeFieldRootStateOpts<T extends TimeValue = Time> extends WritableBoxedValues<{
20
19
  value: T | undefined;
21
20
  placeholder: TimeValue;
22
- }> & ReadableBoxedValues<{
21
+ }>, ReadableBoxedValues<{
23
22
  readonlySegments: SegmentPart[];
24
23
  validate: TimeValidator<T> | undefined;
25
24
  onInvalid: TimeOnInvalid | undefined;
@@ -34,44 +33,46 @@ export type TimeFieldRootStateProps<T extends TimeValue = Time> = WritableBoxedV
34
33
  required: boolean;
35
34
  errorMessageId: string | undefined;
36
35
  isInvalidProp: boolean | undefined;
37
- }>;
36
+ }> {
37
+ }
38
38
  export declare class TimeFieldRootState<T extends TimeValue = Time> {
39
39
  #private;
40
- value: TimeFieldRootStateProps<T>["value"];
40
+ static create<T extends TimeValue = Time>(opts: TimeFieldRootStateOpts<T>, rangeRoot?: TimeRangeFieldRootState<T>): TimeFieldRootState<Time>;
41
+ value: TimeFieldRootStateOpts<T>["value"];
41
42
  placeholder: WritableBox<TimeValue>;
42
- validate: TimeFieldRootStateProps<T>["validate"];
43
- minValue: TimeFieldRootStateProps<T>["minValue"];
44
- maxValue: TimeFieldRootStateProps<T>["maxValue"];
45
- disabled: TimeFieldRootStateProps<T>["disabled"];
46
- readonly: TimeFieldRootStateProps<T>["readonly"];
47
- granularity: TimeFieldRootStateProps<T>["granularity"];
48
- readonlySegments: TimeFieldRootStateProps<T>["readonlySegments"];
49
- hourCycleProp: TimeFieldRootStateProps<T>["hourCycle"];
50
- locale: TimeFieldRootStateProps<T>["locale"];
51
- hideTimeZone: TimeFieldRootStateProps<T>["hideTimeZone"];
52
- required: TimeFieldRootStateProps<T>["required"];
53
- onInvalid: TimeFieldRootStateProps<T>["onInvalid"];
54
- errorMessageId: TimeFieldRootStateProps<T>["errorMessageId"];
55
- isInvalidProp: TimeFieldRootStateProps<T>["isInvalidProp"];
43
+ validate: TimeFieldRootStateOpts<T>["validate"];
44
+ minValue: TimeFieldRootStateOpts<T>["minValue"];
45
+ maxValue: TimeFieldRootStateOpts<T>["maxValue"];
46
+ disabled: TimeFieldRootStateOpts<T>["disabled"];
47
+ readonly: TimeFieldRootStateOpts<T>["readonly"];
48
+ granularity: TimeFieldRootStateOpts<T>["granularity"];
49
+ readonlySegments: TimeFieldRootStateOpts<T>["readonlySegments"];
50
+ hourCycleProp: TimeFieldRootStateOpts<T>["hourCycle"];
51
+ locale: TimeFieldRootStateOpts<T>["locale"];
52
+ hideTimeZone: TimeFieldRootStateOpts<T>["hideTimeZone"];
53
+ required: TimeFieldRootStateOpts<T>["required"];
54
+ onInvalid: TimeFieldRootStateOpts<T>["onInvalid"];
55
+ errorMessageId: TimeFieldRootStateOpts<T>["errorMessageId"];
56
+ isInvalidProp: TimeFieldRootStateOpts<T>["isInvalidProp"];
56
57
  descriptionId: string;
57
58
  formatter: TimeFormatter;
58
59
  initialSegments: TimeSegmentObj;
59
60
  segmentValues: TimeSegmentObj;
60
61
  announcer: Announcer;
61
- readonlySegmentsSet: Set<SegmentPart>;
62
+ readonly readonlySegmentsSet: Set<SegmentPart>;
62
63
  segmentStates: import("../../shared/date/types.js").TimeSegmentStateMap;
63
64
  descriptionNode: HTMLElement | null;
64
65
  validationNode: HTMLElement | null;
65
66
  states: import("../../shared/date/types.js").TimeSegmentStateMap;
66
67
  dayPeriodNode: HTMLElement | null;
67
68
  name: string;
68
- maxValueTime: Time | undefined;
69
- minValueTime: Time | undefined;
70
- valueTime: Time | undefined;
71
- hourCycle: HourCycle;
72
- rangeRoot: TimeRangeFieldRootState<T> | undefined;
69
+ readonly maxValueTime: Time | undefined;
70
+ readonly minValueTime: Time | undefined;
71
+ readonly valueTime: Time | undefined;
72
+ readonly hourCycle: HourCycle;
73
+ readonly rangeRoot: TimeRangeFieldRootState<T> | undefined;
73
74
  domContext: DOMContext;
74
- constructor(props: TimeFieldRootStateProps<T>, rangeRoot?: TimeRangeFieldRootState<T>);
75
+ constructor(props: TimeFieldRootStateOpts<T>, rangeRoot?: TimeRangeFieldRootState<T>);
75
76
  setName(name: string): void;
76
77
  setFieldNode(node: HTMLElement | null): void;
77
78
  /**
@@ -143,16 +144,18 @@ export declare class TimeFieldRootState<T extends TimeValue = Time> {
143
144
  "data-segment": string;
144
145
  };
145
146
  }
146
- type TimeFieldInputStateProps = WithRefProps & ReadableBoxedValues<{
147
+ interface TimeFieldInputStateOpts extends WithRefOpts, ReadableBoxedValues<{
147
148
  name: string;
148
- }>;
149
+ }> {
150
+ }
149
151
  export declare class TimeFieldInputState {
150
152
  #private;
151
- readonly opts: TimeFieldInputStateProps;
153
+ static create(opts: TimeFieldInputStateOpts): TimeFieldInputState;
154
+ readonly opts: TimeFieldInputStateOpts;
152
155
  readonly root: TimeFieldRootState;
153
156
  domContext: DOMContext;
154
- constructor(opts: TimeFieldInputStateProps, root: TimeFieldRootState);
155
- props: {
157
+ constructor(opts: TimeFieldInputStateOpts, root: TimeFieldRootState);
158
+ readonly props: {
156
159
  readonly id: string;
157
160
  readonly role: "group";
158
161
  readonly "aria-labelledby": string | undefined;
@@ -162,24 +165,27 @@ export declare class TimeFieldInputState {
162
165
  readonly "data-disabled": "" | undefined;
163
166
  };
164
167
  }
165
- declare class TimeFieldHiddenInputState {
168
+ export declare class TimeFieldHiddenInputState {
169
+ static create(): TimeFieldHiddenInputState;
166
170
  readonly root: TimeFieldRootState;
167
- shouldRender: boolean;
168
- isoValue: string | undefined;
171
+ readonly shouldRender: boolean;
172
+ readonly isoValue: string | undefined;
169
173
  constructor(root: TimeFieldRootState);
170
- props: {
174
+ readonly props: {
171
175
  readonly name: string;
172
176
  readonly value: string | undefined;
173
177
  readonly required: boolean;
174
178
  };
175
179
  }
176
- type TimeFieldLabelStateProps = WithRefProps;
177
- declare class TimeFieldLabelState {
178
- readonly opts: TimeFieldLabelStateProps;
180
+ interface TimeFieldLabelStateOpts extends WithRefOpts {
181
+ }
182
+ export declare class TimeFieldLabelState {
183
+ static create(opts: TimeFieldLabelStateOpts): TimeFieldLabelState;
184
+ readonly opts: TimeFieldLabelStateOpts;
179
185
  readonly root: TimeFieldRootState;
180
- constructor(opts: TimeFieldLabelStateProps, root: TimeFieldRootState);
186
+ constructor(opts: TimeFieldLabelStateOpts, root: TimeFieldRootState);
181
187
  onclick(_: BitsMouseEvent): void;
182
- props: {
188
+ readonly props: {
183
189
  readonly id: string;
184
190
  readonly "data-invalid": "" | undefined;
185
191
  readonly "data-disabled": "" | undefined;
@@ -188,12 +194,12 @@ declare class TimeFieldLabelState {
188
194
  }
189
195
  declare abstract class BaseTimeSegmentState {
190
196
  #private;
191
- readonly opts: WithRefProps;
197
+ readonly opts: WithRefOpts;
192
198
  readonly root: TimeFieldRootState;
193
199
  readonly announcer: Announcer;
194
200
  readonly part: string;
195
201
  readonly config: SegmentConfig;
196
- constructor(opts: WithRefProps, root: TimeFieldRootState, part: string, config: SegmentConfig);
202
+ constructor(opts: WithRefOpts, root: TimeFieldRootState, part: string, config: SegmentConfig);
197
203
  onkeydown(e: BitsKeyboardEvent): void;
198
204
  onfocusout(_: BitsFocusEvent): void;
199
205
  getSegmentProps(): {
@@ -262,23 +268,24 @@ declare abstract class BaseTimeSegmentState {
262
268
  };
263
269
  }
264
270
  declare class TimeFieldHourSegmentState extends BaseTimeSegmentState {
265
- constructor(opts: WithRefProps, root: TimeFieldRootState);
271
+ constructor(opts: WithRefOpts, root: TimeFieldRootState);
266
272
  onkeydown(e: BitsKeyboardEvent): void;
267
273
  }
268
274
  declare class TimeFieldMinuteSegmentState extends BaseTimeSegmentState {
269
- constructor(opts: WithRefProps, root: TimeFieldRootState);
275
+ constructor(opts: WithRefOpts, root: TimeFieldRootState);
270
276
  }
271
277
  declare class TimeFieldSecondSegmentState extends BaseTimeSegmentState {
272
- constructor(opts: WithRefProps, root: TimeFieldRootState);
278
+ constructor(opts: WithRefOpts, root: TimeFieldRootState);
279
+ }
280
+ interface TimeFieldDayPeriodSegmentStateOpts extends WithRefOpts {
273
281
  }
274
- type TimeFieldDayPeriodSegmentStateProps = WithRefProps;
275
282
  declare class TimeFieldDayPeriodSegmentState {
276
283
  #private;
277
- readonly opts: TimeFieldDayPeriodSegmentStateProps;
284
+ readonly opts: TimeFieldDayPeriodSegmentStateOpts;
278
285
  readonly root: TimeFieldRootState;
279
- constructor(opts: TimeFieldDayPeriodSegmentStateProps, root: TimeFieldRootState);
286
+ constructor(opts: TimeFieldDayPeriodSegmentStateOpts, root: TimeFieldRootState);
280
287
  onkeydown(e: BitsKeyboardEvent): void;
281
- props: {
288
+ readonly props: {
282
289
  "aria-invalid": "true" | undefined;
283
290
  "aria-disabled": "true" | "false";
284
291
  "aria-readonly": "true" | "false";
@@ -334,12 +341,13 @@ declare class TimeFieldDayPeriodSegmentState {
334
341
  };
335
342
  } | undefined;
336
343
  }
337
- type TimeFieldLiteralSegmentStateProps = WithRefProps;
344
+ interface TimeFieldLiteralSegmentStateOpts extends WithRefOpts {
345
+ }
338
346
  declare class TimeFieldLiteralSegmentState {
339
- readonly opts: TimeFieldLiteralSegmentStateProps;
347
+ readonly opts: TimeFieldLiteralSegmentStateOpts;
340
348
  readonly root: TimeFieldRootState;
341
- constructor(opts: TimeFieldLiteralSegmentStateProps, root: TimeFieldRootState);
342
- props: {
349
+ constructor(opts: TimeFieldLiteralSegmentStateOpts, root: TimeFieldRootState);
350
+ readonly props: {
343
351
  readonly "aria-invalid": "true" | undefined;
344
352
  readonly "aria-disabled": "true" | "false";
345
353
  readonly "aria-readonly": "true" | "false";
@@ -366,11 +374,11 @@ declare class TimeFieldLiteralSegmentState {
366
374
  };
367
375
  }
368
376
  declare class TimeFieldTimeZoneSegmentState {
369
- readonly opts: TimeFieldLiteralSegmentStateProps;
377
+ readonly opts: TimeFieldLiteralSegmentStateOpts;
370
378
  readonly root: TimeFieldRootState;
371
- constructor(opts: TimeFieldLiteralSegmentStateProps, root: TimeFieldRootState);
379
+ constructor(opts: TimeFieldLiteralSegmentStateOpts, root: TimeFieldRootState);
372
380
  onkeydown(e: BitsKeyboardEvent): void;
373
- props: {
381
+ readonly props: {
374
382
  readonly "data-readonly": "" | undefined;
375
383
  readonly "aria-invalid": "true" | undefined;
376
384
  readonly "aria-disabled": "true" | "false";
@@ -407,9 +415,7 @@ declare class TimeFieldTimeZoneSegmentState {
407
415
  readonly onkeydown: (e: BitsKeyboardEvent) => void;
408
416
  };
409
417
  }
410
- export declare function useTimeFieldRoot<T extends TimeValue = Time>(props: TimeFieldRootStateProps<T>, rangeRoot?: TimeRangeFieldRootState<T>): TimeFieldRootState<Time>;
411
- export declare function useTimeFieldInput(props: TimeFieldInputStateProps): TimeFieldInputState;
412
- export declare function useTimeFieldHiddenInput(): TimeFieldHiddenInputState;
413
- export declare function useTimeFieldSegment(part: SegmentPart, props: WithRefProps): TimeFieldHourSegmentState | TimeFieldMinuteSegmentState | TimeFieldSecondSegmentState | TimeFieldDayPeriodSegmentState | TimeFieldLiteralSegmentState | TimeFieldTimeZoneSegmentState;
414
- export declare function useTimeFieldLabel(props: TimeFieldLabelStateProps): TimeFieldLabelState;
418
+ export declare class DateFieldSegmentState {
419
+ static create(part: SegmentPart, opts: WithRefOpts): TimeFieldHourSegmentState | TimeFieldMinuteSegmentState | TimeFieldSecondSegmentState | TimeFieldDayPeriodSegmentState | TimeFieldLiteralSegmentState | TimeFieldTimeZoneSegmentState;
420
+ }
415
421
  export {};
@@ -1,5 +1,5 @@
1
1
  import { CalendarDateTime, Time, ZonedDateTime } from "@internationalized/date";
2
- import { onDestroyEffect, attachRef, box, DOMContext } from "svelte-toolbelt";
2
+ import { onDestroyEffect, attachRef, box, DOMContext, } from "svelte-toolbelt";
3
3
  import { onMount, untrack } from "svelte";
4
4
  import { Context, watch } from "runed";
5
5
  import { createBitsAttrs, getAriaDisabled, getAriaHidden, getAriaInvalid, getAriaReadonly, getDataDisabled, getDataInvalid, getDataReadonly, } from "../../internal/attrs.js";
@@ -17,6 +17,7 @@ export const timeFieldAttrs = createBitsAttrs({
17
17
  component: "time-field",
18
18
  parts: ["input", "label"],
19
19
  });
20
+ const TimeFieldRootContext = new Context("TimeField.Root");
20
21
  const SEGMENT_CONFIGS = {
21
22
  hour: {
22
23
  min: (root) => (root.hourCycle === 12 ? 1 : 0),
@@ -47,6 +48,9 @@ const SEGMENT_CONFIGS = {
47
48
  },
48
49
  };
49
50
  export class TimeFieldRootState {
51
+ static create(opts, rangeRoot) {
52
+ return TimeFieldRootContext.set(new TimeFieldRootState(opts, rangeRoot));
53
+ }
50
54
  value;
51
55
  placeholder;
52
56
  validate;
@@ -452,6 +456,9 @@ export class TimeFieldRootState {
452
456
  }
453
457
  }
454
458
  export class TimeFieldInputState {
459
+ static create(opts) {
460
+ return new TimeFieldInputState(opts, TimeFieldRootContext.get());
461
+ }
455
462
  opts;
456
463
  root;
457
464
  domContext;
@@ -484,7 +491,10 @@ export class TimeFieldInputState {
484
491
  ...attachRef(this.opts.ref, (v) => this.root.setFieldNode(v)),
485
492
  }));
486
493
  }
487
- class TimeFieldHiddenInputState {
494
+ export class TimeFieldHiddenInputState {
495
+ static create() {
496
+ return new TimeFieldHiddenInputState(TimeFieldRootContext.get());
497
+ }
488
498
  root;
489
499
  shouldRender = $derived.by(() => this.root.name !== "");
490
500
  isoValue = $derived.by(() => this.root.value.current ? getISOTimeValue(this.root.value.current) : undefined);
@@ -497,7 +507,10 @@ class TimeFieldHiddenInputState {
497
507
  required: this.root.required.current,
498
508
  }));
499
509
  }
500
- class TimeFieldLabelState {
510
+ export class TimeFieldLabelState {
511
+ static create(opts) {
512
+ return new TimeFieldLabelState(opts, TimeFieldRootContext.get());
513
+ }
501
514
  opts;
502
515
  root;
503
516
  constructor(opts, root) {
@@ -924,6 +937,27 @@ class TimeFieldTimeZoneSegmentState {
924
937
  ...attachRef(this.opts.ref),
925
938
  }));
926
939
  }
940
+ export class DateFieldSegmentState {
941
+ static create(part, opts) {
942
+ const root = TimeFieldRootContext.get();
943
+ switch (part) {
944
+ case "hour":
945
+ return new TimeFieldHourSegmentState(opts, root);
946
+ case "minute":
947
+ return new TimeFieldMinuteSegmentState(opts, root);
948
+ case "second":
949
+ return new TimeFieldSecondSegmentState(opts, root);
950
+ case "dayPeriod":
951
+ return new TimeFieldDayPeriodSegmentState(opts, root);
952
+ case "literal":
953
+ return new TimeFieldLiteralSegmentState(opts, root);
954
+ case "timeZoneName":
955
+ return new TimeFieldTimeZoneSegmentState(opts, root);
956
+ default:
957
+ throw new Error(`Invalid part: ${part}`);
958
+ }
959
+ }
960
+ }
927
961
  // Utils/helpers
928
962
  function isAcceptableDayPeriodKey(key) {
929
963
  return (isAcceptableSegmentKey(key) ||
@@ -941,42 +975,3 @@ function isArrowDown(key) {
941
975
  function isBackspace(key) {
942
976
  return key === kbd.BACKSPACE;
943
977
  }
944
- const TimeFieldRootContext = new Context("TimeField.Root");
945
- export function useTimeFieldRoot(props, rangeRoot) {
946
- return TimeFieldRootContext.set(new TimeFieldRootState(props, rangeRoot));
947
- }
948
- export function useTimeFieldInput(props) {
949
- return new TimeFieldInputState(props, TimeFieldRootContext.get());
950
- }
951
- export function useTimeFieldHiddenInput() {
952
- return new TimeFieldHiddenInputState(TimeFieldRootContext.get());
953
- }
954
- export function useTimeFieldSegment(part, props) {
955
- return segmentPartToInstance({
956
- part,
957
- segmentProps: props,
958
- root: TimeFieldRootContext.get(),
959
- });
960
- }
961
- export function useTimeFieldLabel(props) {
962
- return new TimeFieldLabelState(props, TimeFieldRootContext.get());
963
- }
964
- function segmentPartToInstance(props) {
965
- switch (props.part) {
966
- case "hour":
967
- return new TimeFieldHourSegmentState(props.segmentProps, props.root);
968
- case "minute":
969
- return new TimeFieldMinuteSegmentState(props.segmentProps, props.root);
970
- case "second":
971
- return new TimeFieldSecondSegmentState(props.segmentProps, props.root);
972
- case "dayPeriod":
973
- return new TimeFieldDayPeriodSegmentState(props.segmentProps, props.root);
974
- case "literal":
975
- return new TimeFieldLiteralSegmentState(props.segmentProps, props.root);
976
- case "timeZoneName":
977
- return new TimeFieldTimeZoneSegmentState(props.segmentProps, props.root);
978
- default:
979
- // For any date-related parts that shouldn't appear in time field
980
- throw new Error(`Invalid segment part for time field: ${props.part}`);
981
- }
982
- }