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,14 +1,17 @@
1
- import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
2
- import type { BitsKeyboardEvent, BitsMouseEvent, WithRefProps } from "../../internal/types.js";
1
+ import { type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
2
+ import type { BitsKeyboardEvent, BitsMouseEvent, OnChangeFn, WithRefOpts } from "../../internal/types.js";
3
3
  type DialogVariant = "alert-dialog" | "dialog";
4
- declare const dialogAttrs: import("../../internal/attrs.js").BitsAttrs<readonly ["content", "trigger", "overlay", "title", "description", "close", "cancel", "action"]>;
5
- type DialogRootStateProps = WritableBoxedValues<{
4
+ declare const dialogAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["content", "trigger", "overlay", "title", "description", "close", "cancel", "action"]>;
5
+ interface DialogRootStateOpts extends WritableBoxedValues<{
6
6
  open: boolean;
7
- }> & ReadableBoxedValues<{
7
+ }>, ReadableBoxedValues<{
8
8
  variant: DialogVariant;
9
- }>;
10
- declare class DialogRootState {
11
- readonly opts: DialogRootStateProps;
9
+ onOpenChangeComplete: OnChangeFn<boolean>;
10
+ }> {
11
+ }
12
+ export declare class DialogRootState {
13
+ static create(opts: DialogRootStateOpts): DialogRootState;
14
+ readonly opts: DialogRootStateOpts;
12
15
  triggerNode: HTMLElement | null;
13
16
  contentNode: HTMLElement | null;
14
17
  descriptionNode: HTMLElement | null;
@@ -17,24 +20,26 @@ declare class DialogRootState {
17
20
  triggerId: string | undefined;
18
21
  descriptionId: string | undefined;
19
22
  cancelNode: HTMLElement | null;
20
- constructor(opts: DialogRootStateProps);
23
+ constructor(opts: DialogRootStateOpts);
21
24
  handleOpen(): void;
22
25
  handleClose(): void;
23
26
  getBitsAttr: typeof dialogAttrs.getAttr;
24
- sharedProps: {
27
+ readonly sharedProps: {
25
28
  readonly "data-state": "open" | "closed";
26
29
  };
27
30
  }
28
- type DialogTriggerStateProps = WithRefProps & ReadableBoxedValues<{
31
+ interface DialogTriggerStateOpts extends WithRefOpts, ReadableBoxedValues<{
29
32
  disabled: boolean;
30
- }>;
31
- declare class DialogTriggerState {
32
- readonly opts: DialogTriggerStateProps;
33
+ }> {
34
+ }
35
+ export declare class DialogTriggerState {
36
+ static create(opts: DialogTriggerStateOpts): DialogTriggerState;
37
+ readonly opts: DialogTriggerStateOpts;
33
38
  readonly root: DialogRootState;
34
- constructor(opts: DialogTriggerStateProps, root: DialogRootState);
39
+ constructor(opts: DialogTriggerStateOpts, root: DialogRootState);
35
40
  onclick(e: BitsMouseEvent): void;
36
41
  onkeydown(e: BitsKeyboardEvent): void;
37
- props: {
42
+ readonly props: {
38
43
  readonly "data-state": "open" | "closed";
39
44
  readonly id: string;
40
45
  readonly "aria-haspopup": "dialog";
@@ -45,17 +50,19 @@ declare class DialogTriggerState {
45
50
  readonly disabled: true | undefined;
46
51
  };
47
52
  }
48
- type DialogCloseStateProps = WithRefProps & ReadableBoxedValues<{
53
+ interface DialogCloseStateOpts extends WithRefOpts, ReadableBoxedValues<{
49
54
  variant: "action" | "cancel" | "close";
50
55
  disabled: boolean;
51
- }>;
52
- declare class DialogCloseState {
53
- readonly opts: DialogCloseStateProps;
56
+ }> {
57
+ }
58
+ export declare class DialogCloseState {
59
+ static create(opts: DialogCloseStateOpts): DialogCloseState;
60
+ readonly opts: DialogCloseStateOpts;
54
61
  readonly root: DialogRootState;
55
- constructor(opts: DialogCloseStateProps, root: DialogRootState);
62
+ constructor(opts: DialogCloseStateOpts, root: DialogRootState);
56
63
  onclick(e: BitsMouseEvent): void;
57
64
  onkeydown(e: BitsKeyboardEvent): void;
58
- props: {
65
+ readonly props: {
59
66
  readonly "data-state": "open" | "closed";
60
67
  readonly id: string;
61
68
  readonly onclick: (e: BitsMouseEvent) => void;
@@ -64,49 +71,57 @@ declare class DialogCloseState {
64
71
  readonly tabindex: 0;
65
72
  };
66
73
  }
67
- type DialogActionStateProps = WithRefProps;
68
- declare class DialogActionState {
69
- readonly opts: DialogActionStateProps;
74
+ interface DialogActionStateOpts extends WithRefOpts {
75
+ }
76
+ export declare class DialogActionState {
77
+ static create(opts: DialogActionStateOpts): DialogActionState;
78
+ readonly opts: DialogActionStateOpts;
70
79
  readonly root: DialogRootState;
71
- constructor(opts: DialogActionStateProps, root: DialogRootState);
72
- props: {
80
+ constructor(opts: DialogActionStateOpts, root: DialogRootState);
81
+ readonly props: {
73
82
  readonly "data-state": "open" | "closed";
74
83
  readonly id: string;
75
84
  };
76
85
  }
77
- type DialogTitleStateProps = WithRefProps<ReadableBoxedValues<{
86
+ interface DialogTitleStateOpts extends WithRefOpts, ReadableBoxedValues<{
78
87
  level: 1 | 2 | 3 | 4 | 5 | 6;
79
- }>>;
80
- declare class DialogTitleState {
81
- readonly opts: DialogTitleStateProps;
88
+ }> {
89
+ }
90
+ export declare class DialogTitleState {
91
+ static create(opts: DialogTitleStateOpts): DialogTitleState;
92
+ readonly opts: DialogTitleStateOpts;
82
93
  readonly root: DialogRootState;
83
- constructor(opts: DialogTitleStateProps, root: DialogRootState);
84
- props: {
94
+ constructor(opts: DialogTitleStateOpts, root: DialogRootState);
95
+ readonly props: {
85
96
  readonly "data-state": "open" | "closed";
86
97
  readonly id: string;
87
98
  readonly role: "heading";
88
99
  readonly "aria-level": 1 | 2 | 3 | 4 | 6 | 5;
89
100
  };
90
101
  }
91
- type DialogDescriptionStateProps = WithRefProps;
92
- declare class DialogDescriptionState {
93
- readonly opts: DialogDescriptionStateProps;
102
+ interface DialogDescriptionStateOpts extends WithRefOpts {
103
+ }
104
+ export declare class DialogDescriptionState {
105
+ static create(opts: DialogDescriptionStateOpts): DialogDescriptionState;
106
+ readonly opts: DialogDescriptionStateOpts;
94
107
  readonly root: DialogRootState;
95
- constructor(opts: DialogDescriptionStateProps, root: DialogRootState);
96
- props: {
108
+ constructor(opts: DialogDescriptionStateOpts, root: DialogRootState);
109
+ readonly props: {
97
110
  readonly "data-state": "open" | "closed";
98
111
  readonly id: string;
99
112
  };
100
113
  }
101
- type DialogContentStateProps = WithRefProps;
102
- declare class DialogContentState {
103
- readonly opts: DialogContentStateProps;
114
+ interface DialogContentStateOpts extends WithRefOpts {
115
+ }
116
+ export declare class DialogContentState {
117
+ static create(opts: DialogContentStateOpts): DialogContentState;
118
+ readonly opts: DialogContentStateOpts;
104
119
  readonly root: DialogRootState;
105
- constructor(opts: DialogContentStateProps, root: DialogRootState);
106
- snippetProps: {
120
+ constructor(opts: DialogContentStateOpts, root: DialogRootState);
121
+ readonly snippetProps: {
107
122
  open: boolean;
108
123
  };
109
- props: {
124
+ readonly props: {
110
125
  readonly "data-state": "open" | "closed";
111
126
  readonly id: string;
112
127
  readonly role: "dialog" | "alertdialog";
@@ -120,15 +135,17 @@ declare class DialogContentState {
120
135
  readonly tabindex: -1 | undefined;
121
136
  };
122
137
  }
123
- type DialogOverlayStateProps = WithRefProps;
124
- declare class DialogOverlayState {
125
- readonly opts: DialogOverlayStateProps;
138
+ interface DialogOverlayStateOpts extends WithRefOpts {
139
+ }
140
+ export declare class DialogOverlayState {
141
+ static create(opts: DialogOverlayStateOpts): DialogOverlayState;
142
+ readonly opts: DialogOverlayStateOpts;
126
143
  readonly root: DialogRootState;
127
- constructor(opts: DialogOverlayStateProps, root: DialogRootState);
128
- snippetProps: {
144
+ constructor(opts: DialogOverlayStateOpts, root: DialogRootState);
145
+ readonly snippetProps: {
129
146
  open: boolean;
130
147
  };
131
- props: {
148
+ readonly props: {
132
149
  readonly "data-state": "open" | "closed";
133
150
  readonly id: string;
134
151
  readonly style: {
@@ -136,16 +153,18 @@ declare class DialogOverlayState {
136
153
  };
137
154
  };
138
155
  }
139
- type AlertDialogCancelStateProps = WithRefProps & ReadableBoxedValues<{
156
+ interface AlertDialogCancelStateOpts extends WithRefOpts, ReadableBoxedValues<{
140
157
  disabled: boolean;
141
- }>;
142
- declare class AlertDialogCancelState {
143
- readonly opts: AlertDialogCancelStateProps;
158
+ }> {
159
+ }
160
+ export declare class AlertDialogCancelState {
161
+ static create(opts: AlertDialogCancelStateOpts): AlertDialogCancelState;
162
+ readonly opts: AlertDialogCancelStateOpts;
144
163
  readonly root: DialogRootState;
145
- constructor(opts: AlertDialogCancelStateProps, root: DialogRootState);
164
+ constructor(opts: AlertDialogCancelStateOpts, root: DialogRootState);
146
165
  onclick(e: BitsMouseEvent): void;
147
166
  onkeydown(e: BitsKeyboardEvent): void;
148
- props: {
167
+ readonly props: {
149
168
  readonly "data-state": "open" | "closed";
150
169
  readonly id: string;
151
170
  readonly onclick: (e: BitsMouseEvent) => void;
@@ -153,13 +172,4 @@ declare class AlertDialogCancelState {
153
172
  readonly tabindex: 0;
154
173
  };
155
174
  }
156
- export declare function useDialogRoot(props: DialogRootStateProps): DialogRootState;
157
- export declare function useDialogTrigger(props: DialogTriggerStateProps): DialogTriggerState;
158
- export declare function useDialogTitle(props: DialogTitleStateProps): DialogTitleState;
159
- export declare function useDialogContent(props: DialogContentStateProps): DialogContentState;
160
- export declare function useDialogOverlay(props: DialogOverlayStateProps): DialogOverlayState;
161
- export declare function useDialogDescription(props: DialogDescriptionStateProps): DialogDescriptionState;
162
- export declare function useDialogClose(props: DialogCloseStateProps): DialogCloseState;
163
- export declare function useAlertDialogCancel(props: AlertDialogCancelStateProps): AlertDialogCancelState;
164
- export declare function useAlertDialogAction(props: DialogActionStateProps): DialogActionState;
165
175
  export {};
@@ -1,13 +1,18 @@
1
- import { attachRef } from "svelte-toolbelt";
1
+ import { attachRef, box, } from "svelte-toolbelt";
2
2
  import { Context } from "runed";
3
3
  import { createBitsAttrs, getAriaExpanded, getDataOpenClosed } from "../../internal/attrs.js";
4
4
  import { kbd } from "../../internal/kbd.js";
5
5
  import { untrack } from "svelte";
6
+ import { OpenChangeComplete } from "../../internal/open-change-complete.js";
6
7
  const dialogAttrs = createBitsAttrs({
7
8
  component: "dialog",
8
9
  parts: ["content", "trigger", "overlay", "title", "description", "close", "cancel", "action"],
9
10
  });
10
- class DialogRootState {
11
+ const DialogRootContext = new Context("Dialog.Root | AlertDialog.Root");
12
+ export class DialogRootState {
13
+ static create(opts) {
14
+ return DialogRootContext.set(new DialogRootState(opts));
15
+ }
11
16
  opts;
12
17
  triggerNode = $state(null);
13
18
  contentNode = $state(null);
@@ -21,6 +26,14 @@ class DialogRootState {
21
26
  this.opts = opts;
22
27
  this.handleOpen = this.handleOpen.bind(this);
23
28
  this.handleClose = this.handleClose.bind(this);
29
+ new OpenChangeComplete({
30
+ ref: box.with(() => this.contentNode),
31
+ open: this.opts.open,
32
+ enabled: true,
33
+ onComplete: () => {
34
+ this.opts.onOpenChangeComplete.current(this.opts.open.current);
35
+ },
36
+ });
24
37
  }
25
38
  handleOpen() {
26
39
  if (this.opts.open.current)
@@ -39,7 +52,10 @@ class DialogRootState {
39
52
  "data-state": getDataOpenClosed(this.opts.open.current),
40
53
  }));
41
54
  }
42
- class DialogTriggerState {
55
+ export class DialogTriggerState {
56
+ static create(opts) {
57
+ return new DialogTriggerState(opts, DialogRootContext.get());
58
+ }
43
59
  opts;
44
60
  root;
45
61
  constructor(opts, root) {
@@ -79,7 +95,10 @@ class DialogTriggerState {
79
95
  })),
80
96
  }));
81
97
  }
82
- class DialogCloseState {
98
+ export class DialogCloseState {
99
+ static create(opts) {
100
+ return new DialogCloseState(opts, DialogRootContext.get());
101
+ }
83
102
  opts;
84
103
  root;
85
104
  constructor(opts, root) {
@@ -114,7 +133,10 @@ class DialogCloseState {
114
133
  ...attachRef(this.opts.ref),
115
134
  }));
116
135
  }
117
- class DialogActionState {
136
+ export class DialogActionState {
137
+ static create(opts) {
138
+ return new DialogActionState(opts, DialogRootContext.get());
139
+ }
118
140
  opts;
119
141
  root;
120
142
  constructor(opts, root) {
@@ -128,7 +150,10 @@ class DialogActionState {
128
150
  ...attachRef(this.opts.ref),
129
151
  }));
130
152
  }
131
- class DialogTitleState {
153
+ export class DialogTitleState {
154
+ static create(opts) {
155
+ return new DialogTitleState(opts, DialogRootContext.get());
156
+ }
132
157
  opts;
133
158
  root;
134
159
  constructor(opts, root) {
@@ -144,7 +169,10 @@ class DialogTitleState {
144
169
  ...attachRef(this.opts.ref, (v) => (this.root.titleId = v?.id)),
145
170
  }));
146
171
  }
147
- class DialogDescriptionState {
172
+ export class DialogDescriptionState {
173
+ static create(opts) {
174
+ return new DialogDescriptionState(opts, DialogRootContext.get());
175
+ }
148
176
  opts;
149
177
  root;
150
178
  constructor(opts, root) {
@@ -161,7 +189,10 @@ class DialogDescriptionState {
161
189
  }),
162
190
  }));
163
191
  }
164
- class DialogContentState {
192
+ export class DialogContentState {
193
+ static create(opts) {
194
+ return new DialogContentState(opts, DialogRootContext.get());
195
+ }
165
196
  opts;
166
197
  root;
167
198
  constructor(opts, root) {
@@ -188,7 +219,10 @@ class DialogContentState {
188
219
  }),
189
220
  }));
190
221
  }
191
- class DialogOverlayState {
222
+ export class DialogOverlayState {
223
+ static create(opts) {
224
+ return new DialogOverlayState(opts, DialogRootContext.get());
225
+ }
192
226
  opts;
193
227
  root;
194
228
  constructor(opts, root) {
@@ -206,7 +240,10 @@ class DialogOverlayState {
206
240
  ...attachRef(this.opts.ref),
207
241
  }));
208
242
  }
209
- class AlertDialogCancelState {
243
+ export class AlertDialogCancelState {
244
+ static create(opts) {
245
+ return new AlertDialogCancelState(opts, DialogRootContext.get());
246
+ }
210
247
  opts;
211
248
  root;
212
249
  constructor(opts, root) {
@@ -240,31 +277,3 @@ class AlertDialogCancelState {
240
277
  ...attachRef(this.opts.ref, (v) => (this.root.cancelNode = v)),
241
278
  }));
242
279
  }
243
- const DialogRootContext = new Context("Dialog.Root");
244
- export function useDialogRoot(props) {
245
- return DialogRootContext.set(new DialogRootState(props));
246
- }
247
- export function useDialogTrigger(props) {
248
- return new DialogTriggerState(props, DialogRootContext.get());
249
- }
250
- export function useDialogTitle(props) {
251
- return new DialogTitleState(props, DialogRootContext.get());
252
- }
253
- export function useDialogContent(props) {
254
- return new DialogContentState(props, DialogRootContext.get());
255
- }
256
- export function useDialogOverlay(props) {
257
- return new DialogOverlayState(props, DialogRootContext.get());
258
- }
259
- export function useDialogDescription(props) {
260
- return new DialogDescriptionState(props, DialogRootContext.get());
261
- }
262
- export function useDialogClose(props) {
263
- return new DialogCloseState(props, DialogRootContext.get());
264
- }
265
- export function useAlertDialogCancel(props) {
266
- return new AlertDialogCancelState(props, DialogRootContext.get());
267
- }
268
- export function useAlertDialogAction(props) {
269
- return new DialogActionState(props, DialogRootContext.get());
270
- }
@@ -16,6 +16,10 @@ export type DialogRootPropsWithoutHTML = WithChildren<{
16
16
  * A callback that is called when the popover's open state changes.
17
17
  */
18
18
  onOpenChange?: OnChangeFn<boolean>;
19
+ /**
20
+ * A callback called when the dialog finishes opening/closing animations.
21
+ */
22
+ onOpenChangeComplete?: OnChangeFn<boolean>;
19
23
  }>;
20
24
  export type DialogRootProps = DialogRootPropsWithoutHTML;
21
25
  export type DialogContentSnippetProps = {
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { DropdownMenuContentStaticProps } from "../types.js";
4
- import { useMenuContent } from "../../menu/menu.svelte.js";
4
+ import { MenuContentState } from "../../menu/menu.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
  import { noop } from "../../../internal/noop.js";
7
7
  import PopperLayer from "../../utilities/popper-layer/popper-layer.svelte";
@@ -23,7 +23,7 @@
23
23
  ...restProps
24
24
  }: DropdownMenuContentStaticProps = $props();
25
25
 
26
- const contentState = useMenuContent({
26
+ const contentState = MenuContentState.create({
27
27
  id: box.with(() => id),
28
28
  loop: box.with(() => loop),
29
29
  ref: box.with(
@@ -81,7 +81,7 @@
81
81
  {...mergedProps}
82
82
  {...contentState.popperProps}
83
83
  ref={contentState.opts.ref}
84
- present={contentState.parentMenu.opts.open.current}
84
+ open={contentState.parentMenu.opts.open.current}
85
85
  onInteractOutside={handleInteractOutside}
86
86
  onEscapeKeydown={handleEscapeKeydown}
87
87
  trapFocus
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { DropdownMenuContentProps } from "../types.js";
4
- import { useMenuContent } from "../../menu/menu.svelte.js";
4
+ import { MenuContentState } from "../../menu/menu.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
  import { noop } from "../../../internal/noop.js";
7
7
  import PopperLayer from "../../utilities/popper-layer/popper-layer.svelte";
@@ -23,7 +23,7 @@
23
23
  ...restProps
24
24
  }: DropdownMenuContentProps = $props();
25
25
 
26
- const contentState = useMenuContent({
26
+ const contentState = MenuContentState.create({
27
27
  id: box.with(() => id),
28
28
  loop: box.with(() => loop),
29
29
  ref: box.with(
@@ -82,7 +82,7 @@
82
82
  {...mergedProps}
83
83
  {...contentState.popperProps}
84
84
  ref={contentState.opts.ref}
85
- present={contentState.parentMenu.opts.open.current}
85
+ open={contentState.parentMenu.opts.open.current}
86
86
  onInteractOutside={handleInteractOutside}
87
87
  onEscapeKeydown={handleEscapeKeydown}
88
88
  trapFocus
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { LabelRootProps } from "../types.js";
4
- import { setLabelRootState } from "../label.svelte.js";
4
+ import { LabelRootState } from "../label.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
  }: LabelRootProps = $props();
17
17
 
18
- const rootState = setLabelRootState({
18
+ const rootState = LabelRootState.create({
19
19
  id: box.with(() => id),
20
20
  ref: box.with(
21
21
  () => ref,
@@ -1,13 +1,14 @@
1
- import type { BitsMouseEvent, WithRefProps } from "../../internal/types.js";
2
- type LabelRootStateProps = WithRefProps;
3
- declare class LabelRootState {
4
- readonly opts: LabelRootStateProps;
5
- constructor(opts: LabelRootStateProps);
1
+ import type { BitsMouseEvent, WithRefOpts } from "../../internal/types.js";
2
+ interface LabelRootStateOpts extends WithRefOpts {
3
+ }
4
+ export declare class LabelRootState {
5
+ static create(opts: LabelRootStateOpts): LabelRootState;
6
+ readonly opts: LabelRootStateOpts;
7
+ constructor(opts: LabelRootStateOpts);
6
8
  onmousedown(e: BitsMouseEvent): void;
7
- props: {
9
+ readonly props: {
8
10
  readonly id: string;
9
11
  readonly onmousedown: (e: BitsMouseEvent) => void;
10
12
  };
11
13
  }
12
- export declare function setLabelRootState(props: LabelRootStateProps): LabelRootState;
13
14
  export {};
@@ -4,7 +4,10 @@ const labelAttrs = createBitsAttrs({
4
4
  component: "label",
5
5
  parts: ["root"],
6
6
  });
7
- class LabelRootState {
7
+ export class LabelRootState {
8
+ static create(opts) {
9
+ return new LabelRootState(opts);
10
+ }
8
11
  opts;
9
12
  constructor(opts) {
10
13
  this.opts = opts;
@@ -21,6 +24,3 @@ class LabelRootState {
21
24
  ...attachRef(this.opts.ref),
22
25
  }));
23
26
  }
24
- export function setLabelRootState(props) {
25
- return new LabelRootState(props);
26
- }
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { LinkPreviewContentStaticProps } from "../types.js";
4
- import { useLinkPreviewContent } from "../link-preview.svelte.js";
4
+ import { LinkPreviewContentState } from "../link-preview.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
  import PopperLayer from "../../utilities/popper-layer/popper-layer.svelte";
7
7
  import { getFloatingContentCSSVars } from "../../../internal/floating-svelte/floating-utils.svelte.js";
@@ -21,7 +21,7 @@
21
21
  ...restProps
22
22
  }: LinkPreviewContentStaticProps = $props();
23
23
 
24
- const contentState = useLinkPreviewContent({
24
+ const contentState = LinkPreviewContentState.create({
25
25
  id: box.with(() => id),
26
26
  ref: box.with(
27
27
  () => ref,
@@ -65,7 +65,7 @@
65
65
  {...mergedProps}
66
66
  {...contentState.popperProps}
67
67
  ref={contentState.opts.ref}
68
- present={contentState.root.opts.open.current}
68
+ open={contentState.root.opts.open.current}
69
69
  isStatic
70
70
  {id}
71
71
  trapFocus={false}
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { LinkPreviewContentProps } from "../types.js";
4
- import { useLinkPreviewContent } from "../link-preview.svelte.js";
4
+ import { LinkPreviewContentState } from "../link-preview.svelte.js";
5
5
  import PopperLayer from "../../utilities/popper-layer/popper-layer.svelte";
6
6
  import { getFloatingContentCSSVars } from "../../../internal/floating-svelte/floating-utils.svelte.js";
7
7
  import PopperLayerForceMount from "../../utilities/popper-layer/popper-layer-force-mount.svelte";
@@ -30,7 +30,7 @@
30
30
  ...restProps
31
31
  }: LinkPreviewContentProps = $props();
32
32
 
33
- const contentState = useLinkPreviewContent({
33
+ const contentState = LinkPreviewContentState.create({
34
34
  id: box.with(() => id),
35
35
  ref: box.with(
36
36
  () => ref,
@@ -86,7 +86,7 @@
86
86
  {...mergedProps}
87
87
  {...contentState.popperProps}
88
88
  ref={contentState.opts.ref}
89
- present={contentState.root.opts.open.current}
89
+ open={contentState.root.opts.open.current}
90
90
  {id}
91
91
  trapFocus={false}
92
92
  loop={false}
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { LinkPreviewTriggerProps } from "../types.js";
4
- import { useLinkPreviewTrigger } from "../link-preview.svelte.js";
4
+ import { LinkPreviewTriggerState } from "../link-preview.svelte.js";
5
5
  import { createId } from "../../../internal/create-id.js";
6
6
  import { FloatingLayer } from "../../utilities/floating-layer/index.js";
7
7
 
@@ -15,7 +15,7 @@
15
15
  ...restProps
16
16
  }: LinkPreviewTriggerProps = $props();
17
17
 
18
- const triggerState = useLinkPreviewTrigger({
18
+ const triggerState = LinkPreviewTriggerState.create({
19
19
  id: box.with(() => id),
20
20
  ref: box.with(
21
21
  () => ref,
@@ -1,19 +1,20 @@
1
1
  <script lang="ts">
2
2
  import { box } from "svelte-toolbelt";
3
3
  import type { LinkPreviewRootProps } from "../types.js";
4
- import { useLinkPreviewRoot } from "../link-preview.svelte.js";
4
+ import { LinkPreviewRootState } from "../link-preview.svelte.js";
5
5
  import { noop } from "../../../internal/noop.js";
6
6
  import { FloatingLayer } from "../../utilities/floating-layer/index.js";
7
7
 
8
8
  let {
9
9
  open = $bindable(false),
10
10
  onOpenChange = noop,
11
+ onOpenChangeComplete = noop,
11
12
  openDelay = 700,
12
13
  closeDelay = 300,
13
14
  children,
14
15
  }: LinkPreviewRootProps = $props();
15
16
 
16
- useLinkPreviewRoot({
17
+ LinkPreviewRootState.create({
17
18
  open: box.with(
18
19
  () => open,
19
20
  (v) => {
@@ -23,6 +24,7 @@
23
24
  ),
24
25
  openDelay: box.with(() => openDelay),
25
26
  closeDelay: box.with(() => closeDelay),
27
+ onOpenChangeComplete: box.with(() => onOpenChangeComplete),
26
28
  });
27
29
  </script>
28
30