bits-ui 2.7.0 → 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 (366) 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 +2 -2
  183. package/dist/bits/radio-group/radio-group.svelte.d.ts +21 -19
  184. package/dist/bits/radio-group/radio-group.svelte.js +15 -15
  185. package/dist/bits/range-calendar/components/range-calendar-cell.svelte +2 -2
  186. package/dist/bits/range-calendar/components/range-calendar-day.svelte +2 -2
  187. package/dist/bits/range-calendar/components/range-calendar.svelte +2 -2
  188. package/dist/bits/range-calendar/range-calendar.svelte.d.ts +21 -20
  189. package/dist/bits/range-calendar/range-calendar.svelte.js +12 -12
  190. package/dist/bits/rating-group/components/rating-group-input.svelte +2 -2
  191. package/dist/bits/rating-group/components/rating-group-item.svelte +2 -2
  192. package/dist/bits/rating-group/components/rating-group.svelte +2 -2
  193. package/dist/bits/rating-group/rating-group.svelte.d.ts +19 -18
  194. package/dist/bits/rating-group/rating-group.svelte.js +16 -17
  195. package/dist/bits/scroll-area/components/scroll-area-corner-impl.svelte +2 -2
  196. package/dist/bits/scroll-area/components/scroll-area-scrollbar-auto.svelte +3 -3
  197. package/dist/bits/scroll-area/components/scroll-area-scrollbar-hover.svelte +6 -6
  198. package/dist/bits/scroll-area/components/scroll-area-scrollbar-scroll.svelte +3 -3
  199. package/dist/bits/scroll-area/components/scroll-area-scrollbar-shared.svelte +2 -2
  200. package/dist/bits/scroll-area/components/scroll-area-scrollbar-visible.svelte +2 -2
  201. package/dist/bits/scroll-area/components/scroll-area-scrollbar-x.svelte +2 -2
  202. package/dist/bits/scroll-area/components/scroll-area-scrollbar-y.svelte +2 -2
  203. package/dist/bits/scroll-area/components/scroll-area-scrollbar.svelte +2 -2
  204. package/dist/bits/scroll-area/components/scroll-area-thumb-impl.svelte +2 -2
  205. package/dist/bits/scroll-area/components/scroll-area-thumb.svelte +2 -5
  206. package/dist/bits/scroll-area/components/scroll-area-viewport.svelte +2 -2
  207. package/dist/bits/scroll-area/components/scroll-area.svelte +2 -2
  208. package/dist/bits/scroll-area/scroll-area.svelte.d.ts +98 -78
  209. package/dist/bits/scroll-area/scroll-area.svelte.js +78 -74
  210. package/dist/bits/select/components/select-content-static.svelte +3 -3
  211. package/dist/bits/select/components/select-content.svelte +3 -3
  212. package/dist/bits/select/components/select-group-heading.svelte +2 -2
  213. package/dist/bits/select/components/select-group.svelte +2 -2
  214. package/dist/bits/select/components/select-hidden-input.svelte +2 -2
  215. package/dist/bits/select/components/select-item.svelte +2 -2
  216. package/dist/bits/select/components/select-scroll-down-button.svelte +2 -2
  217. package/dist/bits/select/components/select-scroll-up-button.svelte +2 -2
  218. package/dist/bits/select/components/select-trigger.svelte +2 -2
  219. package/dist/bits/select/components/select-viewport.svelte +2 -2
  220. package/dist/bits/select/components/select.svelte +4 -2
  221. package/dist/bits/select/select.svelte.d.ts +127 -113
  222. package/dist/bits/select/select.svelte.js +72 -62
  223. package/dist/bits/select/types.d.ts +4 -0
  224. package/dist/bits/separator/components/separator.svelte +2 -2
  225. package/dist/bits/separator/separator.svelte.d.ts +9 -8
  226. package/dist/bits/separator/separator.svelte.js +4 -4
  227. package/dist/bits/slider/components/slider-range.svelte +2 -2
  228. package/dist/bits/slider/components/slider-thumb-label.svelte +2 -2
  229. package/dist/bits/slider/components/slider-thumb.svelte +2 -2
  230. package/dist/bits/slider/components/slider-tick-label.svelte +2 -2
  231. package/dist/bits/slider/components/slider-tick.svelte +2 -2
  232. package/dist/bits/slider/components/slider.svelte +2 -2
  233. package/dist/bits/slider/slider.svelte.d.ts +82 -73
  234. package/dist/bits/slider/slider.svelte.js +30 -28
  235. package/dist/bits/switch/components/switch-input.svelte +2 -2
  236. package/dist/bits/switch/components/switch-thumb.svelte +2 -2
  237. package/dist/bits/switch/components/switch.svelte +2 -2
  238. package/dist/bits/switch/switch.svelte.d.ts +19 -17
  239. package/dist/bits/switch/switch.svelte.js +13 -13
  240. package/dist/bits/tabs/components/tabs-content.svelte +2 -2
  241. package/dist/bits/tabs/components/tabs-list.svelte +2 -2
  242. package/dist/bits/tabs/components/tabs-trigger.svelte +2 -2
  243. package/dist/bits/tabs/components/tabs.svelte +2 -2
  244. package/dist/bits/tabs/tabs.svelte.d.ts +33 -29
  245. package/dist/bits/tabs/tabs.svelte.js +19 -19
  246. package/dist/bits/time-field/components/time-field-hidden-input.svelte +2 -2
  247. package/dist/bits/time-field/components/time-field-input.svelte +2 -2
  248. package/dist/bits/time-field/components/time-field-label.svelte +2 -2
  249. package/dist/bits/time-field/components/time-field-segment.svelte +2 -2
  250. package/dist/bits/time-field/components/time-field.svelte +2 -2
  251. package/dist/bits/time-field/time-field.svelte.d.ts +72 -66
  252. package/dist/bits/time-field/time-field.svelte.js +37 -42
  253. package/dist/bits/time-range-field/components/time-range-field-input.svelte +2 -2
  254. package/dist/bits/time-range-field/components/time-range-field-label.svelte +2 -2
  255. package/dist/bits/time-range-field/components/time-range-field.svelte +2 -2
  256. package/dist/bits/time-range-field/time-range-field.svelte.d.ts +35 -31
  257. package/dist/bits/time-range-field/time-range-field.svelte.js +34 -32
  258. package/dist/bits/toggle/components/toggle.svelte +2 -2
  259. package/dist/bits/toggle/toggle.svelte.d.ts +11 -10
  260. package/dist/bits/toggle/toggle.svelte.js +4 -4
  261. package/dist/bits/toggle-group/components/toggle-group-item.svelte +2 -2
  262. package/dist/bits/toggle-group/components/toggle-group.svelte +2 -2
  263. package/dist/bits/toggle-group/toggle-group.svelte.d.ts +48 -43
  264. package/dist/bits/toggle-group/toggle-group.svelte.js +24 -25
  265. package/dist/bits/toolbar/components/toolbar-button.svelte +2 -2
  266. package/dist/bits/toolbar/components/toolbar-group-item.svelte +2 -2
  267. package/dist/bits/toolbar/components/toolbar-group.svelte +2 -2
  268. package/dist/bits/toolbar/components/toolbar-link.svelte +2 -2
  269. package/dist/bits/toolbar/components/toolbar.svelte +2 -2
  270. package/dist/bits/toolbar/toolbar.svelte.d.ts +59 -51
  271. package/dist/bits/toolbar/toolbar.svelte.js +32 -30
  272. package/dist/bits/tooltip/components/tooltip-content-static.svelte +3 -3
  273. package/dist/bits/tooltip/components/tooltip-content.svelte +3 -3
  274. package/dist/bits/tooltip/components/tooltip-provider.svelte +2 -2
  275. package/dist/bits/tooltip/components/tooltip-trigger.svelte +2 -2
  276. package/dist/bits/tooltip/components/tooltip.svelte +4 -2
  277. package/dist/bits/tooltip/tooltip.svelte.d.ts +33 -29
  278. package/dist/bits/tooltip/tooltip.svelte.js +33 -28
  279. package/dist/bits/tooltip/types.d.ts +4 -0
  280. package/dist/bits/utilities/config/bits-config.d.ts +1 -1
  281. package/dist/bits/utilities/dismissible-layer/dismissible-layer.svelte +2 -2
  282. package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.d.ts +6 -7
  283. package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.js +3 -3
  284. package/dist/bits/utilities/escape-layer/escape-layer.svelte +2 -2
  285. package/dist/bits/utilities/escape-layer/use-escape-layer.svelte.d.ts +6 -7
  286. package/dist/bits/utilities/escape-layer/use-escape-layer.svelte.js +3 -3
  287. package/dist/bits/utilities/floating-layer/components/floating-layer-anchor.svelte +2 -2
  288. package/dist/bits/utilities/floating-layer/components/floating-layer-arrow.svelte +2 -2
  289. package/dist/bits/utilities/floating-layer/components/floating-layer-content.svelte +2 -2
  290. package/dist/bits/utilities/floating-layer/components/floating-layer.svelte +2 -2
  291. package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.d.ts +25 -23
  292. package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.js +25 -25
  293. package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.d.ts +1 -1
  294. package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.js +1 -1
  295. package/dist/bits/utilities/popper-layer/popper-layer-force-mount.svelte +1 -1
  296. package/dist/bits/utilities/popper-layer/popper-layer-force-mount.svelte.d.ts +1 -1
  297. package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte +1 -1
  298. package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte.d.ts +1 -1
  299. package/dist/bits/utilities/popper-layer/popper-layer.svelte +3 -3
  300. package/dist/bits/utilities/presence-layer/presence-layer.svelte +8 -8
  301. package/dist/bits/utilities/presence-layer/presence.svelte.d.ts +42 -0
  302. package/dist/bits/utilities/presence-layer/presence.svelte.js +116 -0
  303. package/dist/bits/utilities/presence-layer/types.d.ts +3 -5
  304. package/dist/bits/utilities/scroll-lock/scroll-lock.svelte +2 -2
  305. package/dist/bits/utilities/text-selection-layer/text-selection-layer.svelte +2 -2
  306. package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.d.ts +7 -7
  307. package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.js +3 -3
  308. package/dist/internal/animations-complete.d.ts +12 -0
  309. package/dist/internal/animations-complete.js +55 -0
  310. package/dist/internal/arrays.js +20 -36
  311. package/dist/internal/attrs.d.ts +9 -2
  312. package/dist/internal/attrs.js +21 -11
  313. package/dist/internal/body-scroll-lock.svelte.d.ts +10 -0
  314. package/dist/internal/body-scroll-lock.svelte.js +106 -0
  315. package/dist/internal/data-typeahead.svelte.d.ts +15 -0
  316. package/dist/internal/data-typeahead.svelte.js +33 -0
  317. package/dist/internal/date-time/calendar-helpers.svelte.d.ts +1 -1
  318. package/dist/internal/dom-typeahead.svelte.d.ts +14 -0
  319. package/dist/internal/dom-typeahead.svelte.js +44 -0
  320. package/dist/internal/dom.d.ts +0 -2
  321. package/dist/internal/dom.js +0 -15
  322. package/dist/internal/{use-grace-area.svelte.d.ts → grace-area.svelte.d.ts} +5 -4
  323. package/dist/internal/{use-grace-area.svelte.js → grace-area.svelte.js} +60 -56
  324. package/dist/internal/open-change-complete.d.ts +13 -0
  325. package/dist/internal/open-change-complete.js +24 -0
  326. package/dist/internal/{use-roving-focus.svelte.d.ts → roving-focus-group.d.ts} +9 -8
  327. package/dist/internal/{use-roving-focus.svelte.js → roving-focus-group.js} +30 -34
  328. package/dist/internal/shared-state.svelte.d.ts +6 -0
  329. package/dist/internal/shared-state.svelte.js +31 -0
  330. package/dist/internal/should-trap-focus.js +1 -2
  331. package/dist/internal/state-machine.d.ts +16 -0
  332. package/dist/internal/state-machine.js +18 -0
  333. package/dist/internal/svelte-resize-observer.svelte.d.ts +6 -0
  334. package/dist/internal/svelte-resize-observer.svelte.js +25 -0
  335. package/dist/internal/tabbable.d.ts +0 -1
  336. package/dist/internal/tabbable.js +0 -11
  337. package/dist/internal/timeout-fn.d.ts +16 -0
  338. package/dist/internal/timeout-fn.js +38 -0
  339. package/dist/internal/types.d.ts +2 -2
  340. package/package.json +1 -1
  341. package/dist/bits/utilities/presence-layer/use-presence.svelte.d.ts +0 -4
  342. package/dist/bits/utilities/presence-layer/use-presence.svelte.js +0 -97
  343. package/dist/internal/box.svelte.d.ts +0 -21
  344. package/dist/internal/box.svelte.js +0 -26
  345. package/dist/internal/create-event-hook.svelte.d.ts +0 -18
  346. package/dist/internal/create-event-hook.svelte.js +0 -29
  347. package/dist/internal/create-shared-hook.svelte.d.ts +0 -2
  348. package/dist/internal/create-shared-hook.svelte.js +0 -27
  349. package/dist/internal/sleep.d.ts +0 -1
  350. package/dist/internal/sleep.js +0 -3
  351. package/dist/internal/use-after-animations.svelte.d.ts +0 -5
  352. package/dist/internal/use-after-animations.svelte.js +0 -27
  353. package/dist/internal/use-body-scroll-lock.svelte.d.ts +0 -6
  354. package/dist/internal/use-body-scroll-lock.svelte.js +0 -106
  355. package/dist/internal/use-data-typeahead.svelte.d.ts +0 -15
  356. package/dist/internal/use-data-typeahead.svelte.js +0 -34
  357. package/dist/internal/use-dom-typeahead.svelte.d.ts +0 -13
  358. package/dist/internal/use-dom-typeahead.svelte.js +0 -32
  359. package/dist/internal/use-form-control.svelte.d.ts +0 -4
  360. package/dist/internal/use-form-control.svelte.js +0 -16
  361. package/dist/internal/use-resize-observer.svelte.d.ts +0 -2
  362. package/dist/internal/use-resize-observer.svelte.js +0 -17
  363. package/dist/internal/use-state-machine.svelte.d.ts +0 -24
  364. package/dist/internal/use-state-machine.svelte.js +0 -28
  365. package/dist/internal/use-timeout-fn.svelte.d.ts +0 -25
  366. package/dist/internal/use-timeout-fn.svelte.js +0 -39
@@ -1,15 +1,14 @@
1
1
  import { Previous } from "runed";
2
- import { DOMContext } from "svelte-toolbelt";
3
- import type { Box, ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
4
- import type { BitsEvent, BitsFocusEvent, BitsKeyboardEvent, BitsMouseEvent, BitsPointerEvent, WithRefProps } from "../../internal/types.js";
2
+ import { DOMContext, type ReadableBoxedValues, type WritableBoxedValues, type Box } from "svelte-toolbelt";
3
+ import type { BitsEvent, BitsFocusEvent, BitsKeyboardEvent, BitsMouseEvent, BitsPointerEvent, OnChangeFn, WithRefOpts } from "../../internal/types.js";
5
4
  export declare const INTERACTION_KEYS: string[];
6
5
  export declare const FIRST_KEYS: string[];
7
6
  export declare const LAST_KEYS: string[];
8
7
  export declare const FIRST_LAST_KEYS: string[];
9
8
  export declare const SELECTION_KEYS: string[];
10
9
  export declare const CONTENT_MARGIN = 10;
11
- declare const selectAttrs: import("../../internal/attrs.js").BitsAttrs<readonly ["trigger", "content", "item", "viewport", "scroll-up-button", "scroll-down-button", "group", "group-label", "separator", "arrow", "input", "content-wrapper", "item-text", "value"]>;
12
- type SelectBaseRootStateProps = ReadableBoxedValues<{
10
+ declare const selectAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["trigger", "content", "item", "viewport", "scroll-up-button", "scroll-down-button", "group", "group-label", "separator", "arrow", "input", "content-wrapper", "item-text", "value"]>;
11
+ interface SelectBaseRootStateOpts extends ReadableBoxedValues<{
13
12
  disabled: boolean;
14
13
  required: boolean;
15
14
  name: string;
@@ -21,14 +20,15 @@ type SelectBaseRootStateProps = ReadableBoxedValues<{
21
20
  disabled?: boolean;
22
21
  }[];
23
22
  allowDeselect: boolean;
24
- }> & WritableBoxedValues<{
23
+ onOpenChangeComplete: OnChangeFn<boolean>;
24
+ }>, WritableBoxedValues<{
25
25
  open: boolean;
26
26
  inputValue: string;
27
- }> & {
27
+ }> {
28
28
  isCombobox: boolean;
29
- };
30
- declare class SelectBaseRootState {
31
- readonly opts: SelectBaseRootStateProps;
29
+ }
30
+ declare abstract class SelectBaseRootState {
31
+ readonly opts: SelectBaseRootStateOpts;
32
32
  touchedInput: boolean;
33
33
  inputNode: HTMLElement | null;
34
34
  contentNode: HTMLElement | null;
@@ -41,7 +41,7 @@ declare class SelectBaseRootState {
41
41
  isUsingKeyboard: boolean;
42
42
  isCombobox: boolean;
43
43
  domContext: DOMContext;
44
- constructor(opts: SelectBaseRootStateProps);
44
+ constructor(opts: SelectBaseRootStateOpts);
45
45
  setHighlightedNode(node: HTMLElement | null, initial?: boolean): void;
46
46
  getCandidateNodes(): HTMLElement[];
47
47
  setHighlightedToFirstCandidate(): void;
@@ -53,41 +53,69 @@ declare class SelectBaseRootState {
53
53
  toggleMenu(): void;
54
54
  getBitsAttr: typeof selectAttrs.getAttr;
55
55
  }
56
- type SelectSingleRootStateProps = SelectBaseRootStateProps & WritableBoxedValues<{
56
+ interface SelectSingleRootStateOpts extends SelectBaseRootStateOpts, WritableBoxedValues<{
57
57
  value: string;
58
- }>;
59
- declare class SelectSingleRootState extends SelectBaseRootState {
60
- readonly opts: SelectSingleRootStateProps;
58
+ }> {
59
+ }
60
+ export declare class SelectSingleRootState extends SelectBaseRootState {
61
+ readonly opts: SelectSingleRootStateOpts;
61
62
  readonly isMulti: false;
62
63
  readonly hasValue: boolean;
63
64
  readonly currentLabel: string;
64
65
  readonly candidateLabels: string[];
65
66
  readonly dataTypeaheadEnabled: boolean;
66
- constructor(opts: SelectSingleRootStateProps);
67
+ constructor(opts: SelectSingleRootStateOpts);
67
68
  includesItem(itemValue: string): boolean;
68
69
  toggleItem(itemValue: string, itemLabel?: string): void;
69
70
  setInitialHighlightedNode(): void;
70
71
  }
71
- type SelectMultipleRootStateProps = SelectBaseRootStateProps & WritableBoxedValues<{
72
+ interface SelectMultipleRootStateOpts extends SelectBaseRootStateOpts, WritableBoxedValues<{
72
73
  value: string[];
73
- }>;
74
+ }> {
75
+ }
74
76
  declare class SelectMultipleRootState extends SelectBaseRootState {
75
- readonly opts: SelectMultipleRootStateProps;
77
+ readonly opts: SelectMultipleRootStateOpts;
76
78
  readonly isMulti: true;
77
79
  readonly hasValue: boolean;
78
- constructor(opts: SelectMultipleRootStateProps);
80
+ constructor(opts: SelectMultipleRootStateOpts);
79
81
  includesItem(itemValue: string): boolean;
80
82
  toggleItem(itemValue: string, itemLabel?: string): void;
81
83
  setInitialHighlightedNode(): void;
82
84
  }
83
- type SelectRootState = SelectSingleRootState | SelectMultipleRootState;
84
- type SelectInputStateProps = WithRefProps & ReadableBoxedValues<{
85
+ interface SelectRootStateOpts extends ReadableBoxedValues<{
86
+ disabled: boolean;
87
+ required: boolean;
88
+ loop: boolean;
89
+ scrollAlignment: "nearest" | "center";
90
+ name: string;
91
+ items: {
92
+ value: string;
93
+ label: string;
94
+ disabled?: boolean;
95
+ }[];
96
+ allowDeselect: boolean;
97
+ onOpenChangeComplete: OnChangeFn<boolean>;
98
+ }>, WritableBoxedValues<{
99
+ open: boolean;
100
+ inputValue: string;
101
+ }> {
102
+ isCombobox: boolean;
103
+ type: "single" | "multiple";
104
+ value: Box<string> | Box<string[]>;
105
+ }
106
+ export declare class SelectRootState {
107
+ static create(props: SelectRootStateOpts): SelectRoot;
108
+ }
109
+ type SelectRoot = SelectSingleRootState | SelectMultipleRootState;
110
+ interface SelectInputStateOpts extends WithRefOpts, ReadableBoxedValues<{
85
111
  clearOnDeselect: boolean;
86
- }>;
87
- declare class SelectInputState {
88
- readonly opts: SelectInputStateProps;
89
- readonly root: SelectRootState;
90
- constructor(opts: SelectInputStateProps, root: SelectRootState);
112
+ }> {
113
+ }
114
+ export declare class SelectInputState {
115
+ static create(opts: SelectInputStateOpts): SelectInputState;
116
+ readonly opts: SelectInputStateOpts;
117
+ readonly root: SelectRoot;
118
+ constructor(opts: SelectInputStateOpts, root: SelectRoot);
91
119
  onkeydown(e: BitsKeyboardEvent): void;
92
120
  oninput(e: BitsEvent<Event, HTMLInputElement>): void;
93
121
  readonly props: {
@@ -103,11 +131,13 @@ declare class SelectInputState {
103
131
  readonly oninput: (e: BitsEvent<Event, HTMLInputElement>) => void;
104
132
  };
105
133
  }
106
- type SelectComboTriggerStateProps = WithRefProps;
107
- declare class SelectComboTriggerState {
108
- readonly opts: SelectComboTriggerStateProps;
134
+ interface SelectComboTriggerStateOpts extends WithRefOpts {
135
+ }
136
+ export declare class SelectComboTriggerState {
137
+ static create(opts: SelectComboTriggerStateOpts): SelectComboTriggerState;
138
+ readonly opts: SelectComboTriggerStateOpts;
109
139
  readonly root: SelectBaseRootState;
110
- constructor(opts: SelectComboTriggerStateProps, root: SelectBaseRootState);
140
+ constructor(opts: SelectComboTriggerStateOpts, root: SelectBaseRootState);
111
141
  onkeydown(e: BitsKeyboardEvent): void;
112
142
  /**
113
143
  * `pointerdown` fires before the `focus` event, so we can prevent the default
@@ -124,12 +154,14 @@ declare class SelectComboTriggerState {
124
154
  readonly onkeydown: (e: BitsKeyboardEvent) => void;
125
155
  };
126
156
  }
127
- type SelectTriggerStateProps = WithRefProps;
128
- declare class SelectTriggerState {
157
+ interface SelectTriggerStateOpts extends WithRefOpts {
158
+ }
159
+ export declare class SelectTriggerState {
129
160
  #private;
130
- readonly opts: SelectTriggerStateProps;
131
- readonly root: SelectRootState;
132
- constructor(opts: SelectTriggerStateProps, root: SelectRootState);
161
+ static create(opts: SelectTriggerStateOpts): SelectTriggerState;
162
+ readonly opts: SelectTriggerStateOpts;
163
+ readonly root: SelectRoot;
164
+ constructor(opts: SelectTriggerStateOpts, root: SelectRoot);
133
165
  onkeydown(e: BitsKeyboardEvent): void;
134
166
  onclick(e: BitsMouseEvent): void;
135
167
  onpointerdown(e: BitsPointerEvent): void;
@@ -149,18 +181,20 @@ declare class SelectTriggerState {
149
181
  readonly onpointerup: (e: BitsPointerEvent) => void;
150
182
  };
151
183
  }
152
- type SelectContentStateProps = WithRefProps & ReadableBoxedValues<{
184
+ interface SelectContentStateOpts extends WithRefOpts, ReadableBoxedValues<{
153
185
  onInteractOutside: (e: PointerEvent) => void;
154
186
  onEscapeKeydown: (e: KeyboardEvent) => void;
155
- }>;
156
- declare class SelectContentState {
187
+ }> {
188
+ }
189
+ export declare class SelectContentState {
157
190
  #private;
158
- readonly opts: SelectContentStateProps;
159
- readonly root: SelectRootState;
191
+ static create(opts: SelectContentStateOpts): SelectContentState;
192
+ readonly opts: SelectContentStateOpts;
193
+ readonly root: SelectRoot;
160
194
  viewportNode: HTMLElement | null;
161
195
  isPositioned: boolean;
162
196
  domContext: DOMContext;
163
- constructor(opts: SelectContentStateProps, root: SelectRootState);
197
+ constructor(opts: SelectContentStateOpts, root: SelectRoot);
164
198
  onpointermove(_: BitsPointerEvent): void;
165
199
  onInteractOutside: (e: PointerEvent) => void;
166
200
  onEscapeKeydown: (e: KeyboardEvent) => void;
@@ -193,21 +227,23 @@ declare class SelectContentState {
193
227
  onPlaced: () => void;
194
228
  };
195
229
  }
196
- type SelectItemStateProps = WithRefProps<ReadableBoxedValues<{
230
+ interface SelectItemStateOpts extends WithRefOpts, ReadableBoxedValues<{
197
231
  value: string;
198
232
  disabled: boolean;
199
233
  label: string;
200
234
  onHighlight: () => void;
201
235
  onUnhighlight: () => void;
202
- }>>;
203
- declare class SelectItemState {
204
- readonly opts: SelectItemStateProps;
205
- readonly root: SelectRootState;
236
+ }> {
237
+ }
238
+ export declare class SelectItemState {
239
+ static create(opts: SelectItemStateOpts): SelectItemState;
240
+ readonly opts: SelectItemStateOpts;
241
+ readonly root: SelectRoot;
206
242
  readonly isSelected: boolean;
207
243
  readonly isHighlighted: boolean;
208
244
  readonly prevHighlighted: Previous<boolean>;
209
245
  mounted: boolean;
210
- constructor(opts: SelectItemStateProps, root: SelectRootState);
246
+ constructor(opts: SelectItemStateOpts, root: SelectRoot);
211
247
  handleSelect(): void;
212
248
  snippetProps: {
213
249
  selected: boolean;
@@ -221,7 +257,7 @@ declare class SelectItemState {
221
257
  */
222
258
  onpointerup(e: BitsPointerEvent): void;
223
259
  onpointermove(e: BitsPointerEvent): void;
224
- props: {
260
+ readonly props: {
225
261
  readonly id: string;
226
262
  readonly role: "option";
227
263
  readonly "aria-selected": "true" | undefined;
@@ -235,35 +271,41 @@ declare class SelectItemState {
235
271
  readonly onpointerup: (e: BitsPointerEvent) => void;
236
272
  };
237
273
  }
238
- type SelectGroupStateProps = WithRefProps;
239
- declare class SelectGroupState {
240
- readonly opts: SelectGroupStateProps;
274
+ interface SelectGroupStateOpts extends WithRefOpts {
275
+ }
276
+ export declare class SelectGroupState {
277
+ static create(opts: SelectGroupStateOpts): SelectGroupState;
278
+ readonly opts: SelectGroupStateOpts;
241
279
  readonly root: SelectBaseRootState;
242
280
  labelNode: HTMLElement | null;
243
- constructor(opts: SelectGroupStateProps, root: SelectBaseRootState);
281
+ constructor(opts: SelectGroupStateOpts, root: SelectBaseRootState);
244
282
  readonly props: {
245
283
  readonly id: string;
246
284
  readonly role: "group";
247
285
  readonly "aria-labelledby": string | undefined;
248
286
  };
249
287
  }
250
- type SelectGroupHeadingStateProps = WithRefProps;
251
- declare class SelectGroupHeadingState {
252
- readonly opts: SelectGroupHeadingStateProps;
288
+ interface SelectGroupHeadingStateOpts extends WithRefOpts {
289
+ }
290
+ export declare class SelectGroupHeadingState {
291
+ static create(opts: SelectGroupHeadingStateOpts): SelectGroupHeadingState;
292
+ readonly opts: SelectGroupHeadingStateOpts;
253
293
  readonly group: SelectGroupState;
254
- constructor(opts: SelectGroupHeadingStateProps, group: SelectGroupState);
294
+ constructor(opts: SelectGroupHeadingStateOpts, group: SelectGroupState);
255
295
  readonly props: {
256
296
  readonly id: string;
257
297
  };
258
298
  }
259
- type SelectHiddenInputStateProps = ReadableBoxedValues<{
299
+ interface SelectHiddenInputStateOpts extends ReadableBoxedValues<{
260
300
  value: string;
261
- }>;
262
- declare class SelectHiddenInputState {
263
- readonly opts: SelectHiddenInputStateProps;
301
+ }> {
302
+ }
303
+ export declare class SelectHiddenInputState {
304
+ static create(opts: SelectHiddenInputStateOpts): SelectHiddenInputState;
305
+ readonly opts: SelectHiddenInputStateOpts;
264
306
  readonly root: SelectBaseRootState;
265
- shouldRender: boolean;
266
- constructor(opts: SelectHiddenInputStateProps, root: SelectBaseRootState);
307
+ readonly shouldRender: boolean;
308
+ constructor(opts: SelectHiddenInputStateOpts, root: SelectBaseRootState);
267
309
  onfocus(e: BitsFocusEvent): void;
268
310
  readonly props: {
269
311
  readonly disabled: true | undefined;
@@ -273,13 +315,15 @@ declare class SelectHiddenInputState {
273
315
  readonly onfocus: (e: BitsFocusEvent) => void;
274
316
  };
275
317
  }
276
- type SelectViewportStateProps = WithRefProps;
277
- declare class SelectViewportState {
278
- readonly opts: SelectViewportStateProps;
318
+ interface SelectViewportStateOpts extends WithRefOpts {
319
+ }
320
+ export declare class SelectViewportState {
321
+ static create(opts: SelectViewportStateOpts): SelectViewportState;
322
+ readonly opts: SelectViewportStateOpts;
279
323
  readonly content: SelectContentState;
280
- root: SelectBaseRootState;
324
+ readonly root: SelectBaseRootState;
281
325
  prevScrollTop: number;
282
- constructor(opts: SelectViewportStateProps, content: SelectContentState);
326
+ constructor(opts: SelectViewportStateOpts, content: SelectContentState);
283
327
  readonly props: {
284
328
  readonly id: string;
285
329
  readonly role: "presentation";
@@ -290,19 +334,20 @@ declare class SelectViewportState {
290
334
  };
291
335
  };
292
336
  }
293
- type SelectScrollButtonImplStateProps = WithRefProps & ReadableBoxedValues<{
337
+ interface SelectScrollButtonImplStateOpts extends WithRefOpts, ReadableBoxedValues<{
294
338
  delay: (tick: number) => number;
295
- }>;
296
- declare class SelectScrollButtonImplState {
297
- readonly opts: SelectScrollButtonImplStateProps;
339
+ }> {
340
+ }
341
+ export declare class SelectScrollButtonImplState {
342
+ readonly opts: SelectScrollButtonImplStateOpts;
298
343
  readonly content: SelectContentState;
299
- root: SelectBaseRootState;
344
+ readonly root: SelectBaseRootState;
300
345
  autoScrollTimer: number | null;
301
346
  userScrollTimer: number;
302
347
  isUserScrolling: boolean;
303
348
  onAutoScroll: () => void;
304
349
  mounted: boolean;
305
- constructor(opts: SelectScrollButtonImplStateProps, content: SelectContentState);
350
+ constructor(opts: SelectScrollButtonImplStateOpts, content: SelectContentState);
306
351
  handleUserScroll(): void;
307
352
  clearAutoScrollInterval(): void;
308
353
  onpointerdown(_: BitsPointerEvent): void;
@@ -319,10 +364,11 @@ declare class SelectScrollButtonImplState {
319
364
  readonly onpointerleave: (_: BitsPointerEvent) => void;
320
365
  };
321
366
  }
322
- declare class SelectScrollDownButtonState {
367
+ export declare class SelectScrollDownButtonState {
368
+ static create(opts: SelectScrollButtonImplStateOpts): SelectScrollDownButtonState;
323
369
  readonly scrollButtonState: SelectScrollButtonImplState;
324
- content: SelectContentState;
325
- root: SelectBaseRootState;
370
+ readonly content: SelectContentState;
371
+ readonly root: SelectBaseRootState;
326
372
  canScrollDown: boolean;
327
373
  scrollIntoViewTimer: ReturnType<typeof globalThis.setTimeout> | null;
328
374
  constructor(scrollButtonState: SelectScrollButtonImplState);
@@ -343,10 +389,11 @@ declare class SelectScrollDownButtonState {
343
389
  readonly onpointerleave: (_: BitsPointerEvent) => void;
344
390
  };
345
391
  }
346
- declare class SelectScrollUpButtonState {
392
+ export declare class SelectScrollUpButtonState {
393
+ static create(opts: SelectScrollButtonImplStateOpts): SelectScrollUpButtonState;
347
394
  readonly scrollButtonState: SelectScrollButtonImplState;
348
- content: SelectContentState;
349
- root: SelectBaseRootState;
395
+ readonly content: SelectContentState;
396
+ readonly root: SelectBaseRootState;
350
397
  canScrollUp: boolean;
351
398
  constructor(scrollButtonState: SelectScrollButtonImplState);
352
399
  /**
@@ -366,37 +413,4 @@ declare class SelectScrollUpButtonState {
366
413
  readonly onpointerleave: (_: BitsPointerEvent) => void;
367
414
  };
368
415
  }
369
- type InitSelectProps = {
370
- type: "single" | "multiple";
371
- value: Box<string> | Box<string[]>;
372
- } & ReadableBoxedValues<{
373
- disabled: boolean;
374
- required: boolean;
375
- loop: boolean;
376
- scrollAlignment: "nearest" | "center";
377
- name: string;
378
- items: {
379
- value: string;
380
- label: string;
381
- disabled?: boolean;
382
- }[];
383
- allowDeselect: boolean;
384
- }> & WritableBoxedValues<{
385
- open: boolean;
386
- inputValue: string;
387
- }> & {
388
- isCombobox: boolean;
389
- };
390
- export declare function useSelectRoot(props: InitSelectProps): SelectRootState;
391
- export declare function useSelectInput(props: SelectInputStateProps): SelectInputState;
392
- export declare function useSelectContent(props: SelectContentStateProps): SelectContentState;
393
- export declare function useSelectTrigger(props: SelectTriggerStateProps): SelectTriggerState;
394
- export declare function useSelectComboTrigger(props: SelectComboTriggerStateProps): SelectComboTriggerState;
395
- export declare function useSelectItem(props: SelectItemStateProps): SelectItemState;
396
- export declare function useSelectViewport(props: SelectViewportStateProps): SelectViewportState;
397
- export declare function useSelectScrollUpButton(props: SelectScrollButtonImplStateProps): SelectScrollUpButtonState;
398
- export declare function useSelectScrollDownButton(props: SelectScrollButtonImplStateProps): SelectScrollDownButtonState;
399
- export declare function useSelectGroup(props: SelectGroupStateProps): SelectGroupState;
400
- export declare function useSelectGroupHeading(props: SelectGroupHeadingStateProps): SelectGroupHeadingState;
401
- export declare function useSelectHiddenInput(props: SelectHiddenInputStateProps): SelectHiddenInputState;
402
416
  export {};
@@ -1,15 +1,16 @@
1
1
  import { Context, Previous, watch } from "runed";
2
- import { afterSleep, afterTick, onDestroyEffect, attachRef, DOMContext } from "svelte-toolbelt";
2
+ import { afterSleep, afterTick, onDestroyEffect, attachRef, DOMContext, box, } from "svelte-toolbelt";
3
3
  import { on } from "svelte/events";
4
4
  import { backward, forward, next, prev } from "../../internal/arrays.js";
5
5
  import { getAriaExpanded, getAriaHidden, getDataDisabled, getDataOpenClosed, getDisabled, getRequired, } from "../../internal/attrs.js";
6
6
  import { kbd } from "../../internal/kbd.js";
7
7
  import { noop } from "../../internal/noop.js";
8
- import { useDOMTypeahead } from "../../internal/use-dom-typeahead.svelte.js";
9
- import { useDataTypeahead } from "../../internal/use-data-typeahead.svelte.js";
10
8
  import { isIOS } from "../../internal/is.js";
11
9
  import { createBitsAttrs } from "../../internal/attrs.js";
12
10
  import { getFloatingContentCSSVars } from "../../internal/floating-svelte/floating-utils.svelte.js";
11
+ import { DataTypeahead } from "../../internal/data-typeahead.svelte.js";
12
+ import { DOMTypeahead } from "../../internal/dom-typeahead.svelte.js";
13
+ import { OpenChangeComplete } from "../../internal/open-change-complete.js";
13
14
  // prettier-ignore
14
15
  export const INTERACTION_KEYS = [kbd.ARROW_LEFT, kbd.ESCAPE, kbd.ARROW_RIGHT, kbd.SHIFT, kbd.CAPS_LOCK, kbd.CONTROL, kbd.ALT, kbd.META, kbd.ENTER, kbd.F1, kbd.F2, kbd.F3, kbd.F4, kbd.F5, kbd.F6, kbd.F7, kbd.F8, kbd.F9, kbd.F10, kbd.F11, kbd.F12];
15
16
  export const FIRST_KEYS = [kbd.ARROW_DOWN, kbd.PAGE_UP, kbd.HOME];
@@ -36,6 +37,9 @@ const selectAttrs = createBitsAttrs({
36
37
  "value",
37
38
  ],
38
39
  });
40
+ const SelectRootContext = new Context("Select.Root | Combobox.Root");
41
+ const SelectGroupContext = new Context("Select.Group | Combobox.Group");
42
+ const SelectContentContext = new Context("Select.Content | Combobox.Content");
39
43
  class SelectBaseRootState {
40
44
  opts;
41
45
  touchedInput = $state(false);
@@ -65,6 +69,13 @@ class SelectBaseRootState {
65
69
  constructor(opts) {
66
70
  this.opts = opts;
67
71
  this.isCombobox = opts.isCombobox;
72
+ new OpenChangeComplete({
73
+ ref: box.with(() => this.contentNode),
74
+ open: this.opts.open,
75
+ onComplete: () => {
76
+ this.opts.onOpenChangeComplete.current(this.opts.open.current);
77
+ },
78
+ });
68
79
  $effect.pre(() => {
69
80
  if (!this.opts.open.current) {
70
81
  this.setHighlightedNode(null);
@@ -114,7 +125,7 @@ class SelectBaseRootState {
114
125
  return selectAttrs.getAttr(part, this.isCombobox ? "combobox" : undefined);
115
126
  };
116
127
  }
117
- class SelectSingleRootState extends SelectBaseRootState {
128
+ export class SelectSingleRootState extends SelectBaseRootState {
118
129
  opts;
119
130
  isMulti = false;
120
131
  hasValue = $derived.by(() => this.opts.value.current !== "");
@@ -230,7 +241,19 @@ class SelectMultipleRootState extends SelectBaseRootState {
230
241
  });
231
242
  }
232
243
  }
233
- class SelectInputState {
244
+ export class SelectRootState {
245
+ static create(props) {
246
+ const { type, ...rest } = props;
247
+ const rootState = type === "single"
248
+ ? new SelectSingleRootState(rest)
249
+ : new SelectMultipleRootState(rest);
250
+ return SelectRootContext.set(rootState);
251
+ }
252
+ }
253
+ export class SelectInputState {
254
+ static create(opts) {
255
+ return new SelectInputState(opts, SelectRootContext.get());
256
+ }
234
257
  opts;
235
258
  root;
236
259
  constructor(opts, root) {
@@ -364,7 +387,10 @@ class SelectInputState {
364
387
  ...attachRef(this.opts.ref, (v) => (this.root.inputNode = v)),
365
388
  }));
366
389
  }
367
- class SelectComboTriggerState {
390
+ export class SelectComboTriggerState {
391
+ static create(opts) {
392
+ return new SelectComboTriggerState(opts, SelectRootContext.get());
393
+ }
368
394
  opts;
369
395
  root;
370
396
  constructor(opts, root) {
@@ -409,7 +435,10 @@ class SelectComboTriggerState {
409
435
  ...attachRef(this.opts.ref),
410
436
  }));
411
437
  }
412
- class SelectTriggerState {
438
+ export class SelectTriggerState {
439
+ static create(opts) {
440
+ return new SelectTriggerState(opts, SelectRootContext.get());
441
+ }
413
442
  opts;
414
443
  root;
415
444
  #domTypeahead;
@@ -418,7 +447,7 @@ class SelectTriggerState {
418
447
  this.opts = opts;
419
448
  this.root = root;
420
449
  this.root.domContext = new DOMContext(opts.ref);
421
- this.#domTypeahead = useDOMTypeahead({
450
+ this.#domTypeahead = new DOMTypeahead({
422
451
  getCurrentItem: () => this.root.highlightedNode,
423
452
  onMatch: (node) => {
424
453
  this.root.setHighlightedNode(node);
@@ -426,7 +455,7 @@ class SelectTriggerState {
426
455
  getActiveElement: () => this.root.domContext.getActiveElement(),
427
456
  getWindow: () => this.root.domContext.getWindow(),
428
457
  });
429
- this.#dataTypeahead = useDataTypeahead({
458
+ this.#dataTypeahead = new DataTypeahead({
430
459
  getCurrentItem: () => {
431
460
  if (this.root.isMulti)
432
461
  return "";
@@ -523,7 +552,7 @@ class SelectTriggerState {
523
552
  // if we're currently "typing ahead", we don't want to select the item
524
553
  // just yet as the item the user is trying to get to may have a space in it,
525
554
  // so we defer handling the close for this case until further down
526
- (e.key === kbd.SPACE && this.#domTypeahead.search.current === "")) &&
555
+ (e.key === kbd.SPACE && this.#domTypeahead.search === "")) &&
527
556
  !e.isComposing) {
528
557
  e.preventDefault();
529
558
  const shouldReturn = this.#handleKeyboardSelection();
@@ -644,7 +673,10 @@ class SelectTriggerState {
644
673
  ...attachRef(this.opts.ref, (v) => (this.root.triggerNode = v)),
645
674
  }));
646
675
  }
647
- class SelectContentState {
676
+ export class SelectContentState {
677
+ static create(opts) {
678
+ return SelectContentContext.set(new SelectContentState(opts, SelectRootContext.get()));
679
+ }
648
680
  opts;
649
681
  root;
650
682
  viewportNode = $state(null);
@@ -730,7 +762,10 @@ class SelectContentState {
730
762
  },
731
763
  };
732
764
  }
733
- class SelectItemState {
765
+ export class SelectItemState {
766
+ static create(opts) {
767
+ return new SelectItemState(opts, SelectRootContext.get());
768
+ }
734
769
  opts;
735
770
  root;
736
771
  isSelected = $derived.by(() => this.root.includesItem(this.opts.value.current));
@@ -846,7 +881,10 @@ class SelectItemState {
846
881
  ...attachRef(this.opts.ref),
847
882
  }));
848
883
  }
849
- class SelectGroupState {
884
+ export class SelectGroupState {
885
+ static create(opts) {
886
+ return SelectGroupContext.set(new SelectGroupState(opts, SelectRootContext.get()));
887
+ }
850
888
  opts;
851
889
  root;
852
890
  labelNode = $state(null);
@@ -862,7 +900,10 @@ class SelectGroupState {
862
900
  ...attachRef(this.opts.ref),
863
901
  }));
864
902
  }
865
- class SelectGroupHeadingState {
903
+ export class SelectGroupHeadingState {
904
+ static create(opts) {
905
+ return new SelectGroupHeadingState(opts, SelectGroupContext.get());
906
+ }
866
907
  opts;
867
908
  group;
868
909
  constructor(opts, group) {
@@ -875,7 +916,10 @@ class SelectGroupHeadingState {
875
916
  ...attachRef(this.opts.ref, (v) => (this.group.labelNode = v)),
876
917
  }));
877
918
  }
878
- class SelectHiddenInputState {
919
+ export class SelectHiddenInputState {
920
+ static create(opts) {
921
+ return new SelectHiddenInputState(opts, SelectRootContext.get());
922
+ }
879
923
  opts;
880
924
  root;
881
925
  shouldRender = $derived.by(() => this.root.opts.name.current !== "");
@@ -901,7 +945,10 @@ class SelectHiddenInputState {
901
945
  onfocus: this.onfocus,
902
946
  }));
903
947
  }
904
- class SelectViewportState {
948
+ export class SelectViewportState {
949
+ static create(opts) {
950
+ return new SelectViewportState(opts, SelectContentContext.get());
951
+ }
905
952
  opts;
906
953
  content;
907
954
  root;
@@ -926,7 +973,7 @@ class SelectViewportState {
926
973
  ...attachRef(this.opts.ref, (v) => (this.content.viewportNode = v)),
927
974
  }));
928
975
  }
929
- class SelectScrollButtonImplState {
976
+ export class SelectScrollButtonImplState {
930
977
  opts;
931
978
  content;
932
979
  root;
@@ -996,7 +1043,10 @@ class SelectScrollButtonImplState {
996
1043
  ...attachRef(this.opts.ref),
997
1044
  }));
998
1045
  }
999
- class SelectScrollDownButtonState {
1046
+ export class SelectScrollDownButtonState {
1047
+ static create(opts) {
1048
+ return new SelectScrollDownButtonState(new SelectScrollButtonImplState(opts, SelectContentContext.get()));
1049
+ }
1000
1050
  scrollButtonState;
1001
1051
  content;
1002
1052
  root;
@@ -1052,7 +1102,10 @@ class SelectScrollDownButtonState {
1052
1102
  [this.root.getBitsAttr("scroll-down-button")]: "",
1053
1103
  }));
1054
1104
  }
1055
- class SelectScrollUpButtonState {
1105
+ export class SelectScrollUpButtonState {
1106
+ static create(opts) {
1107
+ return new SelectScrollUpButtonState(new SelectScrollButtonImplState(opts, SelectContentContext.get()));
1108
+ }
1056
1109
  scrollButtonState;
1057
1110
  content;
1058
1111
  root;
@@ -1093,46 +1146,3 @@ class SelectScrollUpButtonState {
1093
1146
  [this.root.getBitsAttr("scroll-up-button")]: "",
1094
1147
  }));
1095
1148
  }
1096
- const SelectRootContext = new Context("Select.Root | Combobox.Root");
1097
- const SelectGroupContext = new Context("Select.Group | Combobox.Group");
1098
- const SelectContentContext = new Context("Select.Content | Combobox.Content");
1099
- export function useSelectRoot(props) {
1100
- const { type, ...rest } = props;
1101
- const rootState = type === "single"
1102
- ? new SelectSingleRootState(rest)
1103
- : new SelectMultipleRootState(rest);
1104
- return SelectRootContext.set(rootState);
1105
- }
1106
- export function useSelectInput(props) {
1107
- return new SelectInputState(props, SelectRootContext.get());
1108
- }
1109
- export function useSelectContent(props) {
1110
- return SelectContentContext.set(new SelectContentState(props, SelectRootContext.get()));
1111
- }
1112
- export function useSelectTrigger(props) {
1113
- return new SelectTriggerState(props, SelectRootContext.get());
1114
- }
1115
- export function useSelectComboTrigger(props) {
1116
- return new SelectComboTriggerState(props, SelectRootContext.get());
1117
- }
1118
- export function useSelectItem(props) {
1119
- return new SelectItemState(props, SelectRootContext.get());
1120
- }
1121
- export function useSelectViewport(props) {
1122
- return new SelectViewportState(props, SelectContentContext.get());
1123
- }
1124
- export function useSelectScrollUpButton(props) {
1125
- return new SelectScrollUpButtonState(new SelectScrollButtonImplState(props, SelectContentContext.get()));
1126
- }
1127
- export function useSelectScrollDownButton(props) {
1128
- return new SelectScrollDownButtonState(new SelectScrollButtonImplState(props, SelectContentContext.get()));
1129
- }
1130
- export function useSelectGroup(props) {
1131
- return SelectGroupContext.set(new SelectGroupState(props, SelectRootContext.get()));
1132
- }
1133
- export function useSelectGroupHeading(props) {
1134
- return new SelectGroupHeadingState(props, SelectGroupContext.get());
1135
- }
1136
- export function useSelectHiddenInput(props) {
1137
- return new SelectHiddenInputState(props, SelectRootContext.get());
1138
- }