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
package/README.md CHANGED
@@ -19,10 +19,10 @@ Visit https://bits-ui.com/docs to view the documentation.
19
19
 
20
20
  ## Credits
21
21
 
22
- - [Bitworks](https://bitworks.cz) - The design team behind the Bits UI documentation and example components.
23
- - [Melt UI](https://melt-ui.com) - A powerful builder API that inspired the internal architecture of Bits UI.
24
- - [Radix UI](https://radix-ui.com) - The incredible headless component APIs that we've taken heavy inspiration from.
25
- - [React Spectrum](https://react-spectrum.adobe.com) - An incredible collection of headless components we've taken inspiration from.
22
+ - [Bitworks](https://bitworks.cz) - The design team behind the Bits UI documentation and example components.
23
+ - [Melt UI](https://melt-ui.com) - A powerful builder API that inspired the internal architecture of Bits UI.
24
+ - [Radix UI](https://radix-ui.com) - The incredible headless component APIs that we've taken heavy inspiration from.
25
+ - [React Spectrum](https://react-spectrum.adobe.com) - An incredible collection of headless components we've taken inspiration from.
26
26
 
27
27
  ## Sponsors
28
28
 
@@ -1,47 +1,53 @@
1
- import type { Box, ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
2
- import type { BitsKeyboardEvent, BitsMouseEvent, WithRefProps } from "../../internal/types.js";
3
- import { type UseRovingFocusReturn } from "../../internal/use-roving-focus.svelte.js";
1
+ import { type Box, type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
2
+ import type { BitsKeyboardEvent, BitsMouseEvent, WithRefOpts } from "../../internal/types.js";
4
3
  import type { Orientation } from "../../shared/index.js";
5
- type AccordionBaseStateProps = WithRefProps<ReadableBoxedValues<{
4
+ import { RovingFocusGroup } from "../../internal/roving-focus-group.js";
5
+ interface AccordionBaseStateOpts extends WithRefOpts, ReadableBoxedValues<{
6
6
  disabled: boolean;
7
7
  orientation: Orientation;
8
8
  loop: boolean;
9
- }>>;
10
- type AccordionSingleStateProps = AccordionBaseStateProps & WritableBoxedValues<{
9
+ }> {
10
+ }
11
+ interface AccordionSingleStateOpts extends AccordionBaseStateOpts, WritableBoxedValues<{
11
12
  value: string;
12
- }>;
13
- type AccordionMultiStateProps = AccordionBaseStateProps & WritableBoxedValues<{
13
+ }> {
14
+ }
15
+ interface AccordionMultiStateOpts extends AccordionBaseStateOpts, WritableBoxedValues<{
14
16
  value: string[];
15
- }>;
16
- type AccordionState = AccordionSingleState | AccordionMultiState;
17
- type AccordionItemStateProps = WithRefProps<ReadableBoxedValues<{
17
+ }> {
18
+ }
19
+ type AccordionRoot = AccordionSingleState | AccordionMultiState;
20
+ interface AccordionItemStateOpts extends WithRefOpts, ReadableBoxedValues<{
18
21
  value: string;
19
22
  disabled: boolean;
20
- }> & {
21
- rootState: AccordionState;
22
- }>;
23
- type AccordionTriggerStateProps = WithRefProps<ReadableBoxedValues<{
23
+ }> {
24
+ rootState: AccordionRoot;
25
+ }
26
+ interface AccordionTriggerStateOpts extends WithRefOpts, ReadableBoxedValues<{
24
27
  disabled: boolean | null | undefined;
25
- }>>;
26
- type AccordionContentStateProps = WithRefProps<ReadableBoxedValues<{
28
+ }> {
29
+ }
30
+ interface AccordionContentStateOpts extends WithRefOpts, ReadableBoxedValues<{
27
31
  forceMount: boolean;
28
- }>>;
29
- type AccordionHeaderStateProps = WithRefProps<ReadableBoxedValues<{
32
+ }> {
33
+ }
34
+ interface AccordionHeaderStateOpts extends WithRefOpts, ReadableBoxedValues<{
30
35
  level: 1 | 2 | 3 | 4 | 5 | 6;
31
- }>>;
32
- type InitAccordionProps = WithRefProps<{
33
- type: "single" | "multiple";
34
- value: Box<string> | Box<string[]>;
35
- } & ReadableBoxedValues<{
36
+ }> {
37
+ }
38
+ interface AccordionRootStateOpts extends WithRefOpts, ReadableBoxedValues<{
36
39
  disabled: boolean;
37
40
  orientation: Orientation;
38
41
  loop: boolean;
39
- }>>;
42
+ }> {
43
+ type: "single" | "multiple";
44
+ value: Box<string> | Box<string[]>;
45
+ }
40
46
  declare abstract class AccordionBaseState {
41
- readonly opts: AccordionBaseStateProps;
42
- readonly rovingFocusGroup: UseRovingFocusReturn;
47
+ readonly opts: AccordionBaseStateOpts;
48
+ readonly rovingFocusGroup: RovingFocusGroup;
43
49
  abstract readonly isMulti: boolean;
44
- constructor(opts: AccordionBaseStateProps);
50
+ constructor(opts: AccordionBaseStateOpts);
45
51
  abstract includesItem(item: string): boolean;
46
52
  abstract toggleItem(item: string): void;
47
53
  readonly props: {
@@ -50,27 +56,31 @@ declare abstract class AccordionBaseState {
50
56
  readonly "data-disabled": "" | undefined;
51
57
  };
52
58
  }
53
- export declare class AccordionSingleState extends AccordionBaseState {
54
- readonly opts: AccordionSingleStateProps;
59
+ declare class AccordionSingleState extends AccordionBaseState {
60
+ readonly opts: AccordionSingleStateOpts;
55
61
  readonly isMulti: false;
56
- constructor(opts: AccordionSingleStateProps);
57
- includesItem: (item: string) => boolean;
58
- toggleItem: (item: string) => void;
62
+ constructor(opts: AccordionSingleStateOpts);
63
+ includesItem(item: string): boolean;
64
+ toggleItem(item: string): void;
59
65
  }
60
- export declare class AccordionMultiState extends AccordionBaseState {
66
+ declare class AccordionMultiState extends AccordionBaseState {
61
67
  #private;
62
68
  readonly isMulti: true;
63
- constructor(props: AccordionMultiStateProps);
64
- includesItem: (item: string) => boolean;
65
- toggleItem: (item: string) => void;
69
+ constructor(props: AccordionMultiStateOpts);
70
+ includesItem(item: string): boolean;
71
+ toggleItem(item: string): void;
72
+ }
73
+ export declare class AccordionRootState {
74
+ static create(props: AccordionRootStateOpts): AccordionRoot;
66
75
  }
67
76
  export declare class AccordionItemState {
68
- readonly opts: AccordionItemStateProps;
69
- readonly root: AccordionState;
77
+ static create(props: Omit<AccordionItemStateOpts, "rootState">): AccordionItemState;
78
+ readonly opts: AccordionItemStateOpts;
79
+ readonly root: AccordionRoot;
70
80
  readonly isActive: boolean;
71
81
  readonly isDisabled: boolean;
72
- constructor(opts: AccordionItemStateProps);
73
- updateValue: () => void;
82
+ constructor(opts: AccordionItemStateOpts);
83
+ updateValue(): void;
74
84
  readonly props: {
75
85
  readonly id: string;
76
86
  readonly "data-state": "open" | "closed";
@@ -78,13 +88,14 @@ export declare class AccordionItemState {
78
88
  readonly "data-orientation": "horizontal" | "vertical";
79
89
  };
80
90
  }
81
- declare class AccordionTriggerState {
91
+ export declare class AccordionTriggerState {
82
92
  #private;
83
- readonly opts: AccordionTriggerStateProps;
93
+ readonly opts: AccordionTriggerStateOpts;
84
94
  readonly itemState: AccordionItemState;
85
- constructor(opts: AccordionTriggerStateProps, itemState: AccordionItemState);
86
- onclick: (e: BitsMouseEvent) => void;
87
- onkeydown: (e: BitsKeyboardEvent) => void;
95
+ constructor(opts: AccordionTriggerStateOpts, itemState: AccordionItemState);
96
+ static create(props: AccordionTriggerStateOpts): AccordionTriggerState;
97
+ onclick(e: BitsMouseEvent): void;
98
+ onkeydown(e: BitsKeyboardEvent): void;
88
99
  readonly props: {
89
100
  readonly id: string;
90
101
  readonly disabled: boolean;
@@ -98,12 +109,13 @@ declare class AccordionTriggerState {
98
109
  readonly onkeydown: (e: BitsKeyboardEvent) => void;
99
110
  };
100
111
  }
101
- declare class AccordionContentState {
112
+ export declare class AccordionContentState {
102
113
  #private;
103
- readonly opts: AccordionContentStateProps;
114
+ readonly opts: AccordionContentStateOpts;
104
115
  readonly item: AccordionItemState;
105
- readonly present: boolean;
106
- constructor(opts: AccordionContentStateProps, item: AccordionItemState);
116
+ readonly open: boolean;
117
+ constructor(opts: AccordionContentStateOpts, item: AccordionItemState);
118
+ static create(props: AccordionContentStateOpts): AccordionContentState;
107
119
  readonly snippetProps: {
108
120
  open: boolean;
109
121
  };
@@ -118,10 +130,11 @@ declare class AccordionContentState {
118
130
  };
119
131
  };
120
132
  }
121
- declare class AccordionHeaderState {
122
- readonly opts: AccordionHeaderStateProps;
133
+ export declare class AccordionHeaderState {
134
+ readonly opts: AccordionHeaderStateOpts;
123
135
  readonly item: AccordionItemState;
124
- constructor(opts: AccordionHeaderStateProps, item: AccordionItemState);
136
+ constructor(opts: AccordionHeaderStateOpts, item: AccordionItemState);
137
+ static create(props: AccordionHeaderStateOpts): AccordionHeaderState;
125
138
  readonly props: {
126
139
  readonly id: string;
127
140
  readonly role: "heading";
@@ -131,9 +144,4 @@ declare class AccordionHeaderState {
131
144
  readonly "data-orientation": "horizontal" | "vertical";
132
145
  };
133
146
  }
134
- export declare function useAccordionRoot(props: InitAccordionProps): AccordionState;
135
- export declare function useAccordionItem(props: Omit<AccordionItemStateProps, "rootState">): AccordionItemState;
136
- export declare function useAccordionTrigger(props: AccordionTriggerStateProps): AccordionTriggerState;
137
- export declare function useAccordionContent(props: AccordionContentStateProps): AccordionContentState;
138
- export declare function useAccordionHeader(props: AccordionHeaderStateProps): AccordionHeaderState;
139
147
  export {};
@@ -1,20 +1,21 @@
1
- import { afterTick, attachRef } from "svelte-toolbelt";
1
+ import { afterTick, attachRef, } from "svelte-toolbelt";
2
2
  import { Context, watch } from "runed";
3
3
  import { getAriaDisabled, getAriaExpanded, getDataDisabled, getDataOpenClosed, getDataOrientation, } from "../../internal/attrs.js";
4
4
  import { kbd } from "../../internal/kbd.js";
5
- import { useRovingFocus, } from "../../internal/use-roving-focus.svelte.js";
6
5
  import { createBitsAttrs } from "../../internal/attrs.js";
6
+ import { RovingFocusGroup } from "../../internal/roving-focus-group.js";
7
7
  const accordionAttrs = createBitsAttrs({
8
8
  component: "accordion",
9
9
  parts: ["root", "trigger", "content", "item", "header"],
10
10
  });
11
- // Base class
11
+ const AccordionRootContext = new Context("Accordion.Root");
12
+ const AccordionItemContext = new Context("Accordion.Item");
12
13
  class AccordionBaseState {
13
14
  opts;
14
15
  rovingFocusGroup;
15
16
  constructor(opts) {
16
17
  this.opts = opts;
17
- this.rovingFocusGroup = useRovingFocus({
18
+ this.rovingFocusGroup = new RovingFocusGroup({
18
19
  rootNode: this.opts.ref,
19
20
  candidateAttr: accordionAttrs.trigger,
20
21
  loop: this.opts.loop,
@@ -29,36 +30,53 @@ class AccordionBaseState {
29
30
  ...attachRef(this.opts.ref),
30
31
  }));
31
32
  }
32
- // Single accordion
33
- export class AccordionSingleState extends AccordionBaseState {
33
+ class AccordionSingleState extends AccordionBaseState {
34
34
  opts;
35
35
  isMulti = false;
36
36
  constructor(opts) {
37
37
  super(opts);
38
38
  this.opts = opts;
39
+ this.includesItem = this.includesItem.bind(this);
40
+ this.toggleItem = this.toggleItem.bind(this);
39
41
  }
40
- includesItem = (item) => this.opts.value.current === item;
41
- toggleItem = (item) => {
42
+ includesItem(item) {
43
+ return this.opts.value.current === item;
44
+ }
45
+ toggleItem(item) {
42
46
  this.opts.value.current = this.includesItem(item) ? "" : item;
43
- };
47
+ }
44
48
  }
45
- // Multiple accordion
46
- export class AccordionMultiState extends AccordionBaseState {
49
+ class AccordionMultiState extends AccordionBaseState {
47
50
  #value;
48
51
  isMulti = true;
49
52
  constructor(props) {
50
53
  super(props);
51
54
  this.#value = props.value;
55
+ this.includesItem = this.includesItem.bind(this);
56
+ this.toggleItem = this.toggleItem.bind(this);
57
+ }
58
+ includesItem(item) {
59
+ return this.#value.current.includes(item);
52
60
  }
53
- includesItem = (item) => this.#value.current.includes(item);
54
- toggleItem = (item) => {
61
+ toggleItem(item) {
55
62
  this.#value.current = this.includesItem(item)
56
63
  ? this.#value.current.filter((v) => v !== item)
57
64
  : [...this.#value.current, item];
58
- };
65
+ }
66
+ }
67
+ export class AccordionRootState {
68
+ static create(props) {
69
+ const { type, ...rest } = props;
70
+ const rootState = type === "single"
71
+ ? new AccordionSingleState(rest)
72
+ : new AccordionMultiState(rest);
73
+ return AccordionRootContext.set(rootState);
74
+ }
59
75
  }
60
- // Item state
61
76
  export class AccordionItemState {
77
+ static create(props) {
78
+ return AccordionItemContext.set(new AccordionItemState({ ...props, rootState: AccordionRootContext.get() }));
79
+ }
62
80
  opts;
63
81
  root;
64
82
  isActive = $derived.by(() => this.root.includesItem(this.opts.value.current));
@@ -66,10 +84,11 @@ export class AccordionItemState {
66
84
  constructor(opts) {
67
85
  this.opts = opts;
68
86
  this.root = opts.rootState;
87
+ this.updateValue = this.updateValue.bind(this);
69
88
  }
70
- updateValue = () => {
89
+ updateValue() {
71
90
  this.root.toggleItem(this.opts.value.current);
72
- };
91
+ }
73
92
  props = $derived.by(() => ({
74
93
  id: this.opts.id.current,
75
94
  "data-state": getDataOpenClosed(this.isActive),
@@ -79,8 +98,7 @@ export class AccordionItemState {
79
98
  ...attachRef(this.opts.ref),
80
99
  }));
81
100
  }
82
- // Trigger state
83
- class AccordionTriggerState {
101
+ export class AccordionTriggerState {
84
102
  opts;
85
103
  itemState;
86
104
  #root;
@@ -91,15 +109,20 @@ class AccordionTriggerState {
91
109
  this.opts = opts;
92
110
  this.itemState = itemState;
93
111
  this.#root = itemState.root;
112
+ this.onclick = this.onclick.bind(this);
113
+ this.onkeydown = this.onkeydown.bind(this);
114
+ }
115
+ static create(props) {
116
+ return new AccordionTriggerState(props, AccordionItemContext.get());
94
117
  }
95
- onclick = (e) => {
118
+ onclick(e) {
96
119
  if (this.#isDisabled || e.button !== 0) {
97
120
  e.preventDefault();
98
121
  return;
99
122
  }
100
123
  this.itemState.updateValue();
101
- };
102
- onkeydown = (e) => {
124
+ }
125
+ onkeydown(e) {
103
126
  if (this.#isDisabled)
104
127
  return;
105
128
  if (e.key === kbd.SPACE || e.key === kbd.ENTER) {
@@ -108,7 +131,7 @@ class AccordionTriggerState {
108
131
  return;
109
132
  }
110
133
  this.#root.rovingFocusGroup.handleKeydown(this.opts.ref.current, e);
111
- };
134
+ }
112
135
  props = $derived.by(() => ({
113
136
  id: this.opts.id.current,
114
137
  disabled: this.#isDisabled,
@@ -124,14 +147,13 @@ class AccordionTriggerState {
124
147
  ...attachRef(this.opts.ref),
125
148
  }));
126
149
  }
127
- // Content state with improved animation handling
128
- class AccordionContentState {
150
+ export class AccordionContentState {
129
151
  opts;
130
152
  item;
131
153
  #originalStyles = undefined;
132
154
  #isMountAnimationPrevented = false;
133
155
  #dimensions = $state({ width: 0, height: 0 });
134
- present = $derived.by(() => this.opts.forceMount.current || this.item.isActive);
156
+ open = $derived.by(() => this.opts.forceMount.current || this.item.isActive);
135
157
  constructor(opts, item) {
136
158
  this.opts = opts;
137
159
  this.item = item;
@@ -144,7 +166,10 @@ class AccordionContentState {
144
166
  return () => cancelAnimationFrame(rAF);
145
167
  });
146
168
  // Handle dimension updates
147
- watch([() => this.present, () => this.opts.ref.current], this.#updateDimensions);
169
+ watch([() => this.open, () => this.opts.ref.current], this.#updateDimensions);
170
+ }
171
+ static create(props) {
172
+ return new AccordionContentState(props, AccordionItemContext.get());
148
173
  }
149
174
  #updateDimensions = ([_, node]) => {
150
175
  if (!node)
@@ -184,14 +209,16 @@ class AccordionContentState {
184
209
  ...attachRef(this.opts.ref),
185
210
  }));
186
211
  }
187
- // Header state
188
- class AccordionHeaderState {
212
+ export class AccordionHeaderState {
189
213
  opts;
190
214
  item;
191
215
  constructor(opts, item) {
192
216
  this.opts = opts;
193
217
  this.item = item;
194
218
  }
219
+ static create(props) {
220
+ return new AccordionHeaderState(props, AccordionItemContext.get());
221
+ }
195
222
  props = $derived.by(() => ({
196
223
  id: this.opts.id.current,
197
224
  role: "heading",
@@ -203,25 +230,3 @@ class AccordionHeaderState {
203
230
  ...attachRef(this.opts.ref),
204
231
  }));
205
232
  }
206
- const AccordionRootContext = new Context("Accordion.Root");
207
- const AccordionItemContext = new Context("Accordion.Item");
208
- export function useAccordionRoot(props) {
209
- const { type, ...rest } = props;
210
- const rootState = type === "single"
211
- ? new AccordionSingleState(rest)
212
- : new AccordionMultiState(rest);
213
- return AccordionRootContext.set(rootState);
214
- }
215
- export function useAccordionItem(props) {
216
- const rootState = AccordionRootContext.get();
217
- return AccordionItemContext.set(new AccordionItemState({ ...props, rootState }));
218
- }
219
- export function useAccordionTrigger(props) {
220
- return new AccordionTriggerState(props, AccordionItemContext.get());
221
- }
222
- export function useAccordionContent(props) {
223
- return new AccordionContentState(props, AccordionItemContext.get());
224
- }
225
- export function useAccordionHeader(props) {
226
- return new AccordionHeaderState(props, AccordionItemContext.get());
227
- }
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
- import { useAccordionContent } from "../accordion.svelte.js";
3
+ import { AccordionContentState } from "../accordion.svelte.js";
4
4
  import type { AccordionContentProps } from "../types.js";
5
5
  import { PresenceLayer } from "../../utilities/presence-layer/index.js";
6
6
  import { createId } from "../../../internal/create-id.js";
@@ -16,7 +16,7 @@
16
16
  ...restProps
17
17
  }: AccordionContentProps = $props();
18
18
 
19
- const contentState = useAccordionContent({
19
+ const contentState = AccordionContentState.create({
20
20
  forceMount: box.with(() => forceMount),
21
21
  id: box.with(() => id),
22
22
  ref: box.with(
@@ -26,10 +26,10 @@
26
26
  });
27
27
  </script>
28
28
 
29
- <PresenceLayer forceMount={true} present={contentState.present} ref={contentState.opts.ref}>
29
+ <PresenceLayer forceMount={true} open={contentState.open} ref={contentState.opts.ref}>
30
30
  {#snippet presence({ present })}
31
31
  {@const mergedProps = mergeProps(restProps, contentState.props, {
32
- hidden: forceMount ? undefined : !present.current,
32
+ hidden: forceMount ? undefined : !present,
33
33
  })}
34
34
  {#if child}
35
35
  {@render child({
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { AccordionHeaderProps } from "../types.js";
4
- import { useAccordionHeader } from "../accordion.svelte.js";
4
+ import { AccordionHeaderState } from "../accordion.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
7
7
  const uid = $props.id();
@@ -15,7 +15,7 @@
15
15
  ...restProps
16
16
  }: AccordionHeaderProps = $props();
17
17
 
18
- const headerState = useAccordionHeader({
18
+ const headerState = AccordionHeaderState.create({
19
19
  id: box.with(() => id),
20
20
  level: box.with(() => level),
21
21
  ref: box.with(
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { AccordionItemProps } from "../types.js";
4
- import { useAccordionItem } from "../accordion.svelte.js";
4
+ import { AccordionItemState } from "../accordion.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
7
7
  const uid = $props.id();
@@ -17,7 +17,7 @@
17
17
  ...restProps
18
18
  }: AccordionItemProps = $props();
19
19
 
20
- const itemState = useAccordionItem({
20
+ const itemState = AccordionItemState.create({
21
21
  value: box.with(() => value),
22
22
  disabled: box.with(() => disabled),
23
23
  id: box.with(() => id),
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { AccordionTriggerProps } from "../types.js";
4
- import { useAccordionTrigger } from "../accordion.svelte.js";
4
+ import { AccordionTriggerState } from "../accordion.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
7
7
  const uid = $props.id();
@@ -15,7 +15,7 @@
15
15
  ...restProps
16
16
  }: AccordionTriggerProps = $props();
17
17
 
18
- const triggerState = useAccordionTrigger({
18
+ const triggerState = AccordionTriggerState.create({
19
19
  disabled: box.with(() => disabled),
20
20
  id: box.with(() => id),
21
21
  ref: box.with(
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { type WritableBox, box, mergeProps } from "svelte-toolbelt";
3
- import { useAccordionRoot } from "../accordion.svelte.js";
3
+ import { AccordionRootState } from "../accordion.svelte.js";
4
4
  import type { AccordionRootProps } from "../types.js";
5
5
  import { noop } from "../../../internal/noop.js";
6
6
  import { watch } from "runed";
@@ -37,7 +37,7 @@
37
37
  }
38
38
  );
39
39
 
40
- const rootState = useAccordionRoot({
40
+ const rootState = AccordionRootState.create({
41
41
  type,
42
42
  value: box.with(
43
43
  () => value!,
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { AlertDialogActionProps } from "../types.js";
4
- import { useAlertDialogAction } from "../../dialog/dialog.svelte.js";
4
+ import { DialogActionState } from "../../dialog/dialog.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
7
7
  const uid = $props.id();
@@ -14,7 +14,7 @@
14
14
  ...restProps
15
15
  }: AlertDialogActionProps = $props();
16
16
 
17
- const actionState = useAlertDialogAction({
17
+ const actionState = DialogActionState.create({
18
18
  id: box.with(() => id),
19
19
  ref: box.with(
20
20
  () => ref,
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { AlertDialogCancelProps } from "../types.js";
4
- import { useAlertDialogCancel } from "../../dialog/dialog.svelte.js";
4
+ import { AlertDialogCancelState } from "../../dialog/dialog.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
 
7
7
  const uid = $props.id();
@@ -15,7 +15,7 @@
15
15
  ...restProps
16
16
  }: AlertDialogCancelProps = $props();
17
17
 
18
- const cancelState = useAlertDialogCancel({
18
+ const cancelState = AlertDialogCancelState.create({
19
19
  id: box.with(() => id),
20
20
  ref: box.with(
21
21
  () => ref,
@@ -9,7 +9,7 @@
9
9
  import { createId } from "../../../internal/create-id.js";
10
10
  import { noop } from "../../../internal/noop.js";
11
11
  import ScrollLock from "../../utilities/scroll-lock/scroll-lock.svelte";
12
- import { useDialogContent } from "../../dialog/dialog.svelte.js";
12
+ import { DialogContentState } from "../../dialog/dialog.svelte.js";
13
13
  import { shouldTrapFocus } from "../../../internal/should-trap-focus.js";
14
14
 
15
15
  const uid = $props.id();
@@ -31,7 +31,7 @@
31
31
  ...restProps
32
32
  }: AlertDialogContentProps = $props();
33
33
 
34
- const contentState = useDialogContent({
34
+ const contentState = DialogContentState.create({
35
35
  id: box.with(() => id),
36
36
  ref: box.with(
37
37
  () => ref,
@@ -44,7 +44,7 @@
44
44
 
45
45
  <PresenceLayer
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()}
@@ -2,11 +2,16 @@
2
2
  import { box } from "svelte-toolbelt";
3
3
  import type { AlertDialogRootProps } from "../types.js";
4
4
  import { noop } from "../../../internal/noop.js";
5
- import { useDialogRoot } from "../../dialog/dialog.svelte.js";
5
+ import { DialogRootState } from "../../dialog/dialog.svelte.js";
6
6
 
7
- let { open = $bindable(false), onOpenChange = noop, children }: AlertDialogRootProps = $props();
7
+ let {
8
+ open = $bindable(false),
9
+ onOpenChange = noop,
10
+ onOpenChangeComplete = noop,
11
+ children,
12
+ }: AlertDialogRootProps = $props();
8
13
 
9
- useDialogRoot({
14
+ DialogRootState.create({
10
15
  variant: box.with(() => "alert-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
 
@@ -1,19 +1,14 @@
1
- import type { ReadableBoxedValues } from "../../internal/box.svelte.js";
2
- import type { WithRefProps } from "../../internal/types.js";
3
- type AspectRatioRootStateProps = WithRefProps<ReadableBoxedValues<{
1
+ import { type ReadableBoxedValues } from "svelte-toolbelt";
2
+ import type { WithRefOpts } from "../../internal/types.js";
3
+ interface AspectRatioRootStateOpts extends WithRefOpts, ReadableBoxedValues<{
4
4
  ratio: number;
5
- }>>;
6
- declare class AspectRatioRootState {
7
- readonly opts: AspectRatioRootStateProps;
8
- constructor(opts: AspectRatioRootStateProps);
9
- wrapperProps: {
10
- style: {
11
- position: string;
12
- width: string;
13
- paddingBottom: string;
14
- };
15
- };
16
- props: {
5
+ }> {
6
+ }
7
+ export declare class AspectRatioRootState {
8
+ static create(opts: AspectRatioRootStateOpts): AspectRatioRootState;
9
+ readonly opts: AspectRatioRootStateOpts;
10
+ constructor(opts: AspectRatioRootStateOpts);
11
+ readonly props: {
17
12
  readonly id: string;
18
13
  readonly style: {
19
14
  readonly position: "absolute";
@@ -24,5 +19,4 @@ declare class AspectRatioRootState {
24
19
  };
25
20
  };
26
21
  }
27
- export declare function useAspectRatioRoot(props: AspectRatioRootStateProps): AspectRatioRootState;
28
22
  export {};