sheer-ui 0.4.2 → 0.5.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 (1531) hide show
  1. package/dist/blocks/Appearance.svelte.d.ts +6 -0
  2. package/dist/blocks/BoundaryFailed.svelte.d.ts +9 -0
  3. package/dist/blocks/ErrorPage.svelte.d.ts +15 -0
  4. package/dist/blocks/Footer.svelte.d.ts +22 -0
  5. package/dist/blocks/Header.svelte.d.ts +21 -0
  6. package/dist/blocks/Heading.svelte.d.ts +38 -0
  7. package/dist/blocks/MobileNav.svelte.d.ts +30 -0
  8. package/dist/blocks/PhoneInput.svelte.d.ts +11 -0
  9. package/dist/blocks/Section.svelte.d.ts +12 -0
  10. package/dist/blocks/alert-modal/AlertModal.svelte.d.ts +3 -0
  11. package/dist/blocks/alert-modal/alert-modal.svelte.d.ts +30 -0
  12. package/dist/blocks/alert-modal/alert-modal.svelte.js +57 -0
  13. package/dist/blocks/alert-modal/index.js +2 -0
  14. package/dist/blocks/calendar.svelte.d.ts +25 -0
  15. package/dist/blocks/copy-button/copy-button.svelte.d.ts +8 -0
  16. package/dist/blocks/copy-button/copy.svelte.d.ts +15 -0
  17. package/dist/blocks/copy-button/copy.svelte.js +46 -0
  18. package/dist/blocks/copy-button/index.js +2 -0
  19. package/dist/blocks/date-picker/date-picker-with-presets.svelte.d.ts +32 -0
  20. package/dist/blocks/date-picker/date-picker.svelte.d.ts +29 -0
  21. package/dist/blocks/date-picker/index.d.ts +5 -0
  22. package/dist/blocks/date-picker/index.js +6 -0
  23. package/dist/blocks/date-picker/range-date-picker.svelte.d.ts +23 -0
  24. package/dist/blocks/index.js +12 -0
  25. package/dist/blocks/mockups/Browser.svelte.d.ts +8 -0
  26. package/dist/blocks/mockups/Phone.svelte.d.ts +8 -0
  27. package/dist/blocks/mockups/index.js +2 -0
  28. package/dist/blocks/tab-nav/index.js +1 -0
  29. package/dist/blocks/tab-nav/tab-nav.svelte.d.ts +14 -0
  30. package/dist/blocks/time-picker/index.d.ts +5 -0
  31. package/dist/blocks/time-picker/index.js +7 -0
  32. package/dist/blocks/time-picker/time-input.svelte.d.ts +13 -0
  33. package/dist/blocks/time-picker/time-picker.svelte.d.ts +23 -0
  34. package/dist/blocks/time-picker/time-range-input.svelte.d.ts +15 -0
  35. package/dist/blocks/time-picker/time-range-picker.svelte.d.ts +27 -0
  36. package/dist/blocks/time-picker/time-slots.d.ts +27 -0
  37. package/dist/blocks/time-picker/time-slots.js +46 -0
  38. package/dist/blocks/user-avatar/UserAvatar.svelte.d.ts +14 -0
  39. package/dist/blocks/user-avatar/index.js +1 -0
  40. package/dist/blocks/verification-code-field/VerificationCodeField.svelte.d.ts +15 -0
  41. package/dist/blocks/verification-code-field/index.js +1 -0
  42. package/dist/components/accordion/components/accordion-content.svelte.d.ts +4 -0
  43. package/dist/components/accordion/components/accordion-item.svelte.d.ts +4 -0
  44. package/dist/components/accordion/components/accordion-trigger.svelte.d.ts +4 -0
  45. package/dist/components/accordion/components/accordion.svelte.d.ts +6 -0
  46. package/dist/components/accordion/index.d.ts +5 -0
  47. package/dist/components/accordion/index.js +4 -0
  48. package/dist/components/accordion/types.d.ts +15 -0
  49. package/dist/components/accordion/types.js +1 -0
  50. package/dist/components/alert/alert-action.svelte.d.ts +5 -0
  51. package/dist/components/alert/alert-description.svelte.d.ts +5 -0
  52. package/dist/components/alert/alert-title.svelte.d.ts +5 -0
  53. package/dist/components/alert/alert.svelte.d.ts +16 -0
  54. package/dist/components/alert/index.d.ts +6 -0
  55. package/dist/components/alert/index.js +8 -0
  56. package/dist/components/avatar/avatar.svelte.d.ts +64 -0
  57. package/dist/components/avatar/avatar.svelte.js +109 -0
  58. package/dist/components/avatar/components/avatar-fallback.svelte +41 -0
  59. package/dist/components/avatar/components/avatar-fallback.svelte.d.ts +4 -0
  60. package/dist/components/avatar/components/avatar-image.svelte +56 -0
  61. package/dist/components/avatar/components/avatar-image.svelte.d.ts +4 -0
  62. package/dist/components/avatar/components/avatar.svelte +61 -0
  63. package/dist/components/avatar/components/avatar.svelte.d.ts +4 -0
  64. package/dist/components/avatar/index.d.ts +4 -0
  65. package/dist/components/avatar/index.js +3 -0
  66. package/dist/components/avatar/types.d.ts +32 -0
  67. package/dist/components/avatar/types.js +1 -0
  68. package/dist/components/badge/badge.svelte.d.ts +20 -0
  69. package/dist/components/badge/index.js +1 -0
  70. package/dist/components/breadcrumb/breadcrumb-ellipsis.svelte.d.ts +5 -0
  71. package/dist/components/breadcrumb/breadcrumb-item.svelte.d.ts +5 -0
  72. package/dist/components/breadcrumb/breadcrumb-link.svelte.d.ts +11 -0
  73. package/dist/components/breadcrumb/breadcrumb-list.svelte.d.ts +5 -0
  74. package/dist/components/breadcrumb/breadcrumb-page.svelte.d.ts +5 -0
  75. package/dist/components/breadcrumb/breadcrumb-separator.svelte.d.ts +5 -0
  76. package/dist/components/breadcrumb/breadcrumb.svelte.d.ts +5 -0
  77. package/dist/components/breadcrumb/index.d.ts +8 -0
  78. package/dist/components/breadcrumb/index.js +10 -0
  79. package/dist/components/button/button.svelte.d.ts +13 -0
  80. package/dist/components/button/index.d.ts +2 -0
  81. package/dist/components/button/index.js +4 -0
  82. package/dist/components/button/variants.d.ts +34 -0
  83. package/dist/components/button/variants.js +39 -0
  84. package/dist/components/calendar/calendar.svelte.d.ts +414 -0
  85. package/dist/components/calendar/calendar.svelte.js +841 -0
  86. package/dist/components/calendar/components/calendar-cell.svelte.d.ts +4 -0
  87. package/dist/components/calendar/components/calendar-day.svelte.d.ts +4 -0
  88. package/dist/components/calendar/components/calendar-grid-body.svelte.d.ts +4 -0
  89. package/dist/components/calendar/components/calendar-grid-head.svelte.d.ts +4 -0
  90. package/dist/components/calendar/components/calendar-grid-row.svelte.d.ts +4 -0
  91. package/dist/components/calendar/components/calendar-grid.svelte.d.ts +4 -0
  92. package/dist/components/calendar/components/calendar-head-cell.svelte.d.ts +4 -0
  93. package/dist/components/calendar/components/calendar-header.svelte.d.ts +4 -0
  94. package/dist/components/calendar/components/calendar-heading.svelte.d.ts +4 -0
  95. package/dist/components/calendar/components/calendar-month-select.svelte.d.ts +4 -0
  96. package/dist/components/calendar/components/calendar-next-button.svelte.d.ts +4 -0
  97. package/dist/components/calendar/components/calendar-prev-button.svelte.d.ts +4 -0
  98. package/dist/components/calendar/components/calendar-year-select.svelte.d.ts +4 -0
  99. package/dist/components/calendar/components/calendar.svelte.d.ts +4 -0
  100. package/dist/components/calendar/exports.d.ts +15 -0
  101. package/dist/components/calendar/exports.js +14 -0
  102. package/dist/components/calendar/index.js +2 -0
  103. package/dist/components/calendar/types.d.ts +330 -0
  104. package/dist/components/calendar/types.js +1 -0
  105. package/dist/components/card/card-action.svelte.d.ts +5 -0
  106. package/dist/components/card/card-content.svelte.d.ts +5 -0
  107. package/dist/components/card/card-description.svelte.d.ts +5 -0
  108. package/dist/components/card/card-footer.svelte.d.ts +5 -0
  109. package/dist/components/card/card-header.svelte.d.ts +5 -0
  110. package/dist/components/card/card-title.svelte.d.ts +5 -0
  111. package/dist/components/card/card.svelte.d.ts +5 -0
  112. package/dist/components/card/index.d.ts +8 -0
  113. package/dist/components/card/index.js +10 -0
  114. package/dist/components/carousel/carousel-arrow.svelte.d.ts +8 -0
  115. package/dist/components/carousel/carousel-content.svelte.d.ts +5 -0
  116. package/dist/components/carousel/carousel-dots.svelte.d.ts +5 -0
  117. package/dist/components/carousel/carousel-item.svelte.d.ts +5 -0
  118. package/dist/components/carousel/carousel-next.svelte.d.ts +4 -0
  119. package/dist/components/carousel/carousel-previous.svelte.d.ts +4 -0
  120. package/dist/components/carousel/carousel.svelte.d.ts +13 -0
  121. package/dist/components/carousel/carouselState.svelte.d.ts +23 -0
  122. package/dist/components/carousel/carouselState.svelte.js +3 -0
  123. package/dist/components/carousel/index.d.ts +8 -0
  124. package/dist/components/carousel/index.js +9 -0
  125. package/dist/components/chart/chart-container.svelte.d.ts +9 -0
  126. package/dist/components/chart/chart-style.svelte.d.ts +8 -0
  127. package/dist/components/chart/chart-tooltip.svelte.d.ts +26 -0
  128. package/dist/components/chart/chart-utils.d.ts +34 -0
  129. package/dist/components/chart/chart-utils.js +30 -0
  130. package/dist/components/chart/index.d.ts +4 -0
  131. package/dist/components/chart/index.js +4 -0
  132. package/dist/components/checkbox/checkbox.svelte.d.ts +77 -0
  133. package/dist/components/checkbox/checkbox.svelte.js +146 -0
  134. package/dist/components/checkbox/components/checkbox-group-label.svelte +32 -0
  135. package/dist/components/checkbox/components/checkbox-group-label.svelte.d.ts +4 -0
  136. package/dist/components/checkbox/components/checkbox-group.svelte +59 -0
  137. package/dist/components/checkbox/components/checkbox-group.svelte.d.ts +4 -0
  138. package/dist/components/checkbox/components/checkbox.svelte +103 -0
  139. package/dist/components/checkbox/components/checkbox.svelte.d.ts +4 -0
  140. package/dist/components/checkbox/index.d.ts +4 -0
  141. package/dist/components/checkbox/index.js +3 -0
  142. package/dist/components/checkbox/types.d.ts +105 -0
  143. package/dist/components/checkbox/types.js +1 -0
  144. package/dist/components/checkbox-native/checkbox.svelte.d.ts +18 -0
  145. package/dist/components/checkbox-native/index.d.ts +3 -0
  146. package/dist/components/checkbox-native/index.js +4 -0
  147. package/dist/components/collapsible/components/collapsible-content.svelte.d.ts +4 -0
  148. package/dist/components/collapsible/components/collapsible-trigger.svelte.d.ts +4 -0
  149. package/dist/components/collapsible/components/collapsible.svelte.d.ts +4 -0
  150. package/dist/components/collapsible/index.d.ts +4 -0
  151. package/dist/components/collapsible/index.js +3 -0
  152. package/dist/components/collapsible/types.d.ts +22 -0
  153. package/dist/components/collapsible/types.js +1 -0
  154. package/dist/components/combobox/components/combobox-arrow.svelte.d.ts +3 -0
  155. package/dist/components/combobox/components/combobox-input.svelte.d.ts +4 -0
  156. package/dist/components/combobox/components/combobox-trigger.svelte.d.ts +4 -0
  157. package/dist/components/combobox/components/combobox.svelte.d.ts +3 -0
  158. package/dist/components/combobox/index.d.ts +15 -0
  159. package/dist/components/combobox/index.js +14 -0
  160. package/dist/components/combobox/select/components/select-content-static.svelte.d.ts +4 -0
  161. package/dist/components/combobox/select/components/select-content.svelte.d.ts +9 -0
  162. package/dist/components/combobox/select/components/select-group-heading.svelte.d.ts +8 -0
  163. package/dist/components/combobox/select/components/select-group.svelte.d.ts +8 -0
  164. package/dist/components/combobox/select/components/select-hidden-input.svelte.d.ts +7 -0
  165. package/dist/components/combobox/select/components/select-item.svelte.d.ts +8 -0
  166. package/dist/components/combobox/select/components/select-scroll-down-button.svelte.d.ts +4 -0
  167. package/dist/components/combobox/select/components/select-scroll-up-button.svelte.d.ts +4 -0
  168. package/dist/components/combobox/select/components/select-trigger.svelte.d.ts +4 -0
  169. package/dist/components/combobox/select/components/select-value.svelte.d.ts +4 -0
  170. package/dist/components/combobox/select/components/select-viewport.svelte.d.ts +4 -0
  171. package/dist/components/combobox/select/components/select.svelte.d.ts +3 -0
  172. package/dist/components/combobox/select/select.svelte.d.ts +467 -0
  173. package/dist/components/combobox/select/select.svelte.js +1323 -0
  174. package/dist/components/combobox/select/types.d.ts +226 -0
  175. package/dist/components/combobox/select/types.js +1 -0
  176. package/dist/components/combobox/types.d.ts +37 -0
  177. package/dist/components/combobox/types.js +1 -0
  178. package/dist/components/command/command-dialog.svelte.d.ts +13 -0
  179. package/dist/components/command/command.svelte.d.ts +360 -0
  180. package/dist/components/command/command.svelte.js +1231 -0
  181. package/dist/components/command/components/_command-label.svelte.d.ts +5 -0
  182. package/dist/components/command/components/command-empty.svelte.d.ts +4 -0
  183. package/dist/components/command/components/command-group-heading.svelte.d.ts +4 -0
  184. package/dist/components/command/components/command-group-items.svelte.d.ts +4 -0
  185. package/dist/components/command/components/command-group.svelte.d.ts +7 -0
  186. package/dist/components/command/components/command-input.svelte.d.ts +4 -0
  187. package/dist/components/command/components/command-item.svelte.d.ts +4 -0
  188. package/dist/components/command/components/command-link-item.svelte.d.ts +4 -0
  189. package/dist/components/command/components/command-list.svelte.d.ts +4 -0
  190. package/dist/components/command/components/command-loading.svelte.d.ts +4 -0
  191. package/dist/components/command/components/command-separator.svelte.d.ts +4 -0
  192. package/dist/components/command/components/command-viewport.svelte.d.ts +4 -0
  193. package/dist/components/command/components/command.svelte.d.ts +59 -0
  194. package/dist/components/command/compute-command-score.d.ts +26 -0
  195. package/dist/components/command/compute-command-score.js +160 -0
  196. package/dist/components/command/index.d.ts +14 -0
  197. package/dist/components/command/index.js +13 -0
  198. package/dist/components/command/types.d.ts +164 -0
  199. package/dist/components/command/types.js +1 -0
  200. package/dist/components/command/utils.d.ts +3 -0
  201. package/dist/components/command/utils.js +26 -0
  202. package/dist/components/context-menu/components/context-menu-content-static.svelte.d.ts +4 -0
  203. package/dist/components/context-menu/components/context-menu-content.svelte.d.ts +3 -0
  204. package/dist/components/context-menu/components/context-menu-trigger.svelte.d.ts +4 -0
  205. package/dist/components/context-menu/components/context-menu.svelte.d.ts +3 -0
  206. package/dist/components/context-menu/index.d.ts +19 -0
  207. package/dist/components/context-menu/index.js +18 -0
  208. package/dist/components/context-menu/types.d.ts +15 -0
  209. package/dist/components/context-menu/types.js +1 -0
  210. package/dist/components/data-table/column-helpers.d.ts +35 -0
  211. package/dist/components/data-table/column-helpers.js +57 -0
  212. package/dist/components/data-table/data-table-checkbox.svelte.d.ts +12 -0
  213. package/dist/components/data-table/data-table-sort-button.svelte.d.ts +8 -0
  214. package/dist/components/data-table/flex-render.svelte.d.ts +33 -0
  215. package/dist/components/data-table/index.d.ts +18 -0
  216. package/dist/components/data-table/index.js +17 -0
  217. package/dist/components/data-table/render-helpers.d.ts +90 -0
  218. package/dist/components/data-table/render-helpers.js +95 -0
  219. package/dist/components/data-table/table-cell.svelte.d.ts +4 -0
  220. package/dist/components/data-table/table-column-header.svelte.d.ts +29 -0
  221. package/dist/components/data-table/table-content.svelte +62 -0
  222. package/dist/components/data-table/table-content.svelte.d.ts +32 -0
  223. package/dist/components/data-table/table-faceted-filter.svelte.d.ts +35 -0
  224. package/dist/components/data-table/table-pagination.svelte.d.ts +28 -0
  225. package/dist/components/data-table/table-priority-cell.svelte.d.ts +12 -0
  226. package/dist/components/data-table/table-row-actions.svelte.d.ts +32 -0
  227. package/dist/components/data-table/table-status-cell.svelte.d.ts +16 -0
  228. package/dist/components/data-table/table-title-cell.svelte.d.ts +11 -0
  229. package/dist/components/data-table/table-toolbar.svelte.d.ts +40 -0
  230. package/dist/components/data-table/table-view-options.svelte.d.ts +27 -0
  231. package/dist/components/data-table/text.svelte +7 -0
  232. package/dist/components/data-table/text.svelte.d.ts +23 -0
  233. package/dist/components/date-field/components/date-field-hidden-input.svelte.d.ts +18 -0
  234. package/dist/components/date-field/components/date-field-input.svelte.d.ts +4 -0
  235. package/dist/components/date-field/components/date-field-label.svelte.d.ts +4 -0
  236. package/dist/components/date-field/components/date-field-segment.svelte.d.ts +4 -0
  237. package/dist/components/date-field/components/date-field.svelte.d.ts +3 -0
  238. package/dist/components/date-field/date-field.svelte.d.ts +464 -0
  239. package/dist/components/date-field/date-field.svelte.js +1221 -0
  240. package/dist/components/date-field/index.d.ts +5 -0
  241. package/dist/components/date-field/index.js +4 -0
  242. package/dist/components/date-field/types.d.ts +141 -0
  243. package/dist/components/date-field/types.js +1 -0
  244. package/dist/components/date-range-field/components/date-range-field-input.svelte.d.ts +4 -0
  245. package/dist/components/date-range-field/components/date-range-field-label.svelte.d.ts +4 -0
  246. package/dist/components/date-range-field/components/date-range-field.svelte.d.ts +4 -0
  247. package/dist/components/date-range-field/date-range-field.svelte.d.ts +93 -0
  248. package/dist/components/date-range-field/date-range-field.svelte.js +146 -0
  249. package/dist/components/date-range-field/index.d.ts +5 -0
  250. package/dist/components/date-range-field/index.js +4 -0
  251. package/dist/components/date-range-field/types.d.ts +142 -0
  252. package/dist/components/date-range-field/types.js +1 -0
  253. package/dist/components/dialog/components/dialog-close.svelte +36 -0
  254. package/dist/components/dialog/components/dialog-close.svelte.d.ts +3 -0
  255. package/dist/components/dialog/components/dialog-content-headless.svelte +107 -0
  256. package/dist/components/dialog/components/dialog-content-headless.svelte.d.ts +4 -0
  257. package/dist/components/dialog/components/dialog-content.svelte.d.ts +8 -0
  258. package/dist/components/dialog/components/dialog-description.svelte +32 -0
  259. package/dist/components/dialog/components/dialog-description.svelte.d.ts +4 -0
  260. package/dist/components/dialog/components/dialog-overlay.svelte +34 -0
  261. package/dist/components/dialog/components/dialog-overlay.svelte.d.ts +4 -0
  262. package/dist/components/dialog/components/dialog-title.svelte +35 -0
  263. package/dist/components/dialog/components/dialog-title.svelte.d.ts +4 -0
  264. package/dist/components/dialog/components/dialog-trigger.svelte +35 -0
  265. package/dist/components/dialog/components/dialog-trigger.svelte.d.ts +4 -0
  266. package/dist/components/dialog/components/dialog.svelte +27 -0
  267. package/dist/components/dialog/components/dialog.svelte.d.ts +3 -0
  268. package/dist/components/dialog/components/modal-surface.svelte +134 -0
  269. package/dist/components/dialog/components/modal-surface.svelte.d.ts +9 -0
  270. package/dist/components/dialog/dialog.svelte.d.ts +164 -0
  271. package/dist/components/dialog/dialog.svelte.js +286 -0
  272. package/dist/components/dialog/index.d.ts +9 -0
  273. package/dist/components/dialog/index.js +8 -0
  274. package/dist/components/dialog/types.d.ts +60 -0
  275. package/dist/components/dialog/types.js +1 -0
  276. package/dist/components/drawer/drawer-close.svelte.d.ts +3 -0
  277. package/dist/components/drawer/drawer-content.svelte.d.ts +11 -0
  278. package/dist/components/drawer/drawer-description.svelte.d.ts +4 -0
  279. package/dist/components/drawer/drawer-footer.svelte.d.ts +5 -0
  280. package/dist/components/drawer/drawer-header.svelte.d.ts +5 -0
  281. package/dist/components/drawer/drawer-nested.svelte.d.ts +11 -0
  282. package/dist/components/drawer/drawer-overlay.svelte.d.ts +5 -0
  283. package/dist/components/drawer/drawer-portal.svelte.d.ts +3 -0
  284. package/dist/components/drawer/drawer-title.svelte.d.ts +4 -0
  285. package/dist/components/drawer/drawer-trigger.svelte.d.ts +4 -0
  286. package/dist/components/drawer/drawer.svelte +295 -0
  287. package/dist/components/drawer/drawer.svelte.d.ts +20 -0
  288. package/dist/components/drawer/index.d.ts +12 -0
  289. package/dist/components/drawer/index.js +14 -0
  290. package/dist/components/dropdown-menu/components/dropdown-menu-content-static.svelte.d.ts +4 -0
  291. package/dist/components/dropdown-menu/components/dropdown-menu-content.svelte.d.ts +4 -0
  292. package/dist/components/dropdown-menu/index.d.ts +19 -0
  293. package/dist/components/dropdown-menu/index.js +18 -0
  294. package/dist/components/dropdown-menu/types.d.ts +2 -0
  295. package/dist/components/dropdown-menu/types.js +1 -0
  296. package/dist/components/empty/empty-content.svelte.d.ts +5 -0
  297. package/dist/components/empty/empty-description.svelte.d.ts +5 -0
  298. package/dist/components/empty/empty-header.svelte.d.ts +5 -0
  299. package/dist/components/empty/empty-media.svelte.d.ts +10 -0
  300. package/dist/components/empty/empty-title.svelte.d.ts +5 -0
  301. package/dist/components/empty/empty.svelte.d.ts +5 -0
  302. package/dist/components/empty/index.d.ts +7 -0
  303. package/dist/components/empty/index.js +9 -0
  304. package/dist/components/empty/variants.d.ts +8 -0
  305. package/dist/components/empty/variants.js +13 -0
  306. package/dist/components/field/field-content.svelte.d.ts +5 -0
  307. package/dist/components/field/field-description.svelte.d.ts +5 -0
  308. package/dist/components/field/field-error.svelte.d.ts +12 -0
  309. package/dist/components/field/field-group.svelte.d.ts +5 -0
  310. package/dist/components/field/field-label.svelte.d.ts +10 -0
  311. package/dist/components/field/field-legend.svelte.d.ts +8 -0
  312. package/dist/components/field/field-separator.svelte.d.ts +10 -0
  313. package/dist/components/field/field-set.svelte.d.ts +5 -0
  314. package/dist/components/field/field-title.svelte.d.ts +5 -0
  315. package/dist/components/field/field.svelte.d.ts +17 -0
  316. package/dist/components/field/index.d.ts +11 -0
  317. package/dist/components/field/index.js +13 -0
  318. package/dist/components/field/variants.d.ts +9 -0
  319. package/dist/components/field/variants.js +14 -0
  320. package/dist/components/input/file-input.svelte.d.ts +9 -0
  321. package/dist/components/input/index.d.ts +4 -0
  322. package/dist/components/input/index.js +6 -0
  323. package/dist/components/input/input.svelte.d.ts +9 -0
  324. package/dist/components/input/variants.d.ts +17 -0
  325. package/dist/components/input/variants.js +22 -0
  326. package/dist/components/item/index.d.ts +11 -0
  327. package/dist/components/item/index.js +13 -0
  328. package/dist/components/item/item-actions.svelte.d.ts +5 -0
  329. package/dist/components/item/item-content.svelte.d.ts +5 -0
  330. package/dist/components/item/item-description.svelte.d.ts +5 -0
  331. package/dist/components/item/item-footer.svelte.d.ts +5 -0
  332. package/dist/components/item/item-group.svelte.d.ts +5 -0
  333. package/dist/components/item/item-header.svelte.d.ts +5 -0
  334. package/dist/components/item/item-media.svelte.d.ts +17 -0
  335. package/dist/components/item/item-separator.svelte.d.ts +13 -0
  336. package/dist/components/item/item-title.svelte.d.ts +5 -0
  337. package/dist/components/item/item.svelte.d.ts +28 -0
  338. package/dist/components/kbd/index.d.ts +3 -0
  339. package/dist/components/kbd/index.js +5 -0
  340. package/dist/components/kbd/kbd-group.svelte.d.ts +5 -0
  341. package/dist/components/kbd/kbd.svelte.d.ts +5 -0
  342. package/dist/components/label/exports.js +1 -0
  343. package/dist/components/label/index.js +2 -0
  344. package/dist/components/label/label.svelte.d.ts +4 -0
  345. package/dist/components/label/label.svelte.js +28 -0
  346. package/dist/components/label/types.d.ts +4 -0
  347. package/dist/components/label/types.js +1 -0
  348. package/dist/components/link-preview/components/link-preview-content.svelte +67 -0
  349. package/dist/components/link-preview/components/link-preview-content.svelte.d.ts +4 -0
  350. package/dist/components/link-preview/components/link-preview-trigger.svelte +32 -0
  351. package/dist/components/link-preview/components/link-preview-trigger.svelte.d.ts +4 -0
  352. package/dist/components/link-preview/components/link-preview.svelte +42 -0
  353. package/dist/components/link-preview/components/link-preview.svelte.d.ts +3 -0
  354. package/dist/components/link-preview/exports.d.ts +5 -0
  355. package/dist/components/link-preview/exports.js +4 -0
  356. package/dist/components/link-preview/index.js +2 -0
  357. package/dist/components/link-preview/link-preview.svelte.d.ts +78 -0
  358. package/dist/components/link-preview/link-preview.svelte.js +212 -0
  359. package/dist/components/link-preview/types.d.ts +68 -0
  360. package/dist/components/link-preview/types.js +1 -0
  361. package/dist/components/menu/components/menu-arrow.svelte.d.ts +3 -0
  362. package/dist/components/menu/components/menu-checkbox-group.svelte.d.ts +4 -0
  363. package/dist/components/menu/components/menu-checkbox-item.svelte.d.ts +4 -0
  364. package/dist/components/menu/components/menu-content.svelte.d.ts +7 -0
  365. package/dist/components/menu/components/menu-group-heading.svelte.d.ts +7 -0
  366. package/dist/components/menu/components/menu-group.svelte.d.ts +4 -0
  367. package/dist/components/menu/components/menu-item.svelte.d.ts +8 -0
  368. package/dist/components/menu/components/menu-radio-group.svelte.d.ts +4 -0
  369. package/dist/components/menu/components/menu-radio-item.svelte.d.ts +4 -0
  370. package/dist/components/menu/components/menu-separator.svelte.d.ts +4 -0
  371. package/dist/components/menu/components/menu-sub-content-static.svelte.d.ts +4 -0
  372. package/dist/components/menu/components/menu-sub-content.svelte.d.ts +7 -0
  373. package/dist/components/menu/components/menu-sub-trigger.svelte.d.ts +7 -0
  374. package/dist/components/menu/components/menu-sub.svelte.d.ts +3 -0
  375. package/dist/components/menu/components/menu-trigger.svelte.d.ts +4 -0
  376. package/dist/components/menu/components/menu.svelte.d.ts +8 -0
  377. package/dist/components/menu/exports.d.ts +18 -0
  378. package/dist/components/menu/exports.js +17 -0
  379. package/dist/components/menu/menu.svelte.d.ts +450 -0
  380. package/dist/components/menu/menu.svelte.js +1281 -0
  381. package/dist/components/menu/types.d.ts +195 -0
  382. package/dist/components/menu/types.js +1 -0
  383. package/dist/components/menu/utils.d.ts +20 -0
  384. package/dist/components/menu/utils.js +54 -0
  385. package/dist/components/menubar/components/menubar-content-static.svelte.d.ts +4 -0
  386. package/dist/components/menubar/components/menubar-content.svelte.d.ts +4 -0
  387. package/dist/components/menubar/components/menubar-menu.svelte.d.ts +3 -0
  388. package/dist/components/menubar/components/menubar-trigger.svelte.d.ts +4 -0
  389. package/dist/components/menubar/components/menubar.svelte.d.ts +4 -0
  390. package/dist/components/menubar/exports.d.ts +21 -0
  391. package/dist/components/menubar/exports.js +19 -0
  392. package/dist/components/menubar/index.js +2 -0
  393. package/dist/components/menubar/menubar.svelte.d.ts +138 -0
  394. package/dist/components/menubar/menubar.svelte.js +312 -0
  395. package/dist/components/menubar/types.d.ts +49 -0
  396. package/dist/components/menubar/types.js +1 -0
  397. package/dist/components/meter/components/meter.svelte +50 -0
  398. package/dist/components/meter/components/meter.svelte.d.ts +4 -0
  399. package/dist/components/meter/exports.js +1 -0
  400. package/dist/components/meter/index.js +2 -0
  401. package/dist/components/meter/meter.svelte.d.ts +23 -0
  402. package/dist/components/meter/meter.svelte.js +29 -0
  403. package/dist/components/meter/types.d.ts +23 -0
  404. package/dist/components/meter/types.js +1 -0
  405. package/dist/components/navigation-menu/components/navigation-menu-content-impl.svelte.d.ts +14 -0
  406. package/dist/components/navigation-menu/components/navigation-menu-content.svelte.d.ts +8 -0
  407. package/dist/components/navigation-menu/components/navigation-menu-indicator-impl.svelte.d.ts +4 -0
  408. package/dist/components/navigation-menu/components/navigation-menu-indicator.svelte.d.ts +8 -0
  409. package/dist/components/navigation-menu/components/navigation-menu-item.svelte.d.ts +8 -0
  410. package/dist/components/navigation-menu/components/navigation-menu-link.svelte.d.ts +8 -0
  411. package/dist/components/navigation-menu/components/navigation-menu-list.svelte.d.ts +8 -0
  412. package/dist/components/navigation-menu/components/navigation-menu-sub.svelte.d.ts +4 -0
  413. package/dist/components/navigation-menu/components/navigation-menu-trigger.svelte.d.ts +9 -0
  414. package/dist/components/navigation-menu/components/navigation-menu-viewport.svelte.d.ts +8 -0
  415. package/dist/components/navigation-menu/components/navigation-menu.svelte.d.ts +9 -0
  416. package/dist/components/navigation-menu/index.d.ts +9 -0
  417. package/dist/components/navigation-menu/index.js +11 -0
  418. package/dist/components/navigation-menu/navigation-menu.svelte.d.ts +359 -0
  419. package/dist/components/navigation-menu/navigation-menu.svelte.js +859 -0
  420. package/dist/components/navigation-menu/types.d.ts +134 -0
  421. package/dist/components/navigation-menu/types.js +1 -0
  422. package/dist/components/pagination/components/pagination-next-button.svelte.d.ts +4 -0
  423. package/dist/components/pagination/components/pagination-page.svelte.d.ts +8 -0
  424. package/dist/components/pagination/components/pagination-prev-button.svelte.d.ts +4 -0
  425. package/dist/components/pagination/components/pagination.svelte.d.ts +4 -0
  426. package/dist/components/pagination/index.d.ts +5 -0
  427. package/dist/components/pagination/index.js +4 -0
  428. package/dist/components/pagination/pagination.svelte.d.ts +84 -0
  429. package/dist/components/pagination/pagination.svelte.js +201 -0
  430. package/dist/components/pagination/types.d.ts +76 -0
  431. package/dist/components/pagination/types.js +1 -0
  432. package/dist/components/pin-input/components/pin-input-cell.svelte.d.ts +4 -0
  433. package/dist/components/pin-input/components/pin-input.svelte.d.ts +4 -0
  434. package/dist/components/pin-input/exports.d.ts +3 -0
  435. package/dist/components/pin-input/exports.js +2 -0
  436. package/dist/components/pin-input/index.js +2 -0
  437. package/dist/components/pin-input/pin-input.svelte.d.ts +120 -0
  438. package/dist/components/pin-input/pin-input.svelte.js +417 -0
  439. package/dist/components/pin-input/types.d.ts +88 -0
  440. package/dist/components/pin-input/types.js +1 -0
  441. package/dist/components/pin-input/usePasswordManager.svelte.d.ts +15 -0
  442. package/dist/components/pin-input/usePasswordManager.svelte.js +90 -0
  443. package/dist/components/popover/components/popover-close.svelte +41 -0
  444. package/dist/components/popover/components/popover-close.svelte.d.ts +4 -0
  445. package/dist/components/popover/components/popover-content.svelte +75 -0
  446. package/dist/components/popover/components/popover-content.svelte.d.ts +4 -0
  447. package/dist/components/popover/components/popover-header.svelte.d.ts +5 -0
  448. package/dist/components/popover/components/popover-title.svelte.d.ts +5 -0
  449. package/dist/components/popover/components/popover-trigger.svelte +55 -0
  450. package/dist/components/popover/components/popover-trigger.svelte.d.ts +4 -0
  451. package/dist/components/popover/components/popover.svelte +27 -0
  452. package/dist/components/popover/components/popover.svelte.d.ts +3 -0
  453. package/dist/components/popover/exports.d.ts +6 -0
  454. package/dist/components/popover/exports.js +5 -0
  455. package/dist/components/popover/index.js +2 -0
  456. package/dist/components/popover/popover.svelte.d.ts +103 -0
  457. package/dist/components/popover/popover.svelte.js +301 -0
  458. package/dist/components/popover/types.d.ts +69 -0
  459. package/dist/components/popover/types.js +1 -0
  460. package/dist/components/progress/components/progress.svelte +65 -0
  461. package/dist/components/progress/components/progress.svelte.d.ts +4 -0
  462. package/dist/components/progress/exports.d.ts +2 -0
  463. package/dist/components/progress/exports.js +1 -0
  464. package/dist/components/progress/index.js +2 -0
  465. package/dist/components/progress/progress.svelte.d.ts +26 -0
  466. package/dist/components/progress/progress.svelte.js +44 -0
  467. package/dist/components/progress/types.d.ts +24 -0
  468. package/dist/components/progress/types.js +1 -0
  469. package/dist/components/radio-group/context.d.ts +10 -0
  470. package/dist/components/radio-group/context.js +2 -0
  471. package/dist/components/radio-group/index.d.ts +5 -0
  472. package/dist/components/radio-group/index.js +3 -0
  473. package/dist/components/radio-group/radio-group-item.svelte.d.ts +11 -0
  474. package/dist/components/radio-group/radio-group.svelte.d.ts +19 -0
  475. package/dist/components/range-calendar/components/range-calendar-cell.svelte.d.ts +4 -0
  476. package/dist/components/range-calendar/components/range-calendar-day.svelte.d.ts +4 -0
  477. package/dist/components/range-calendar/components/range-calendar.svelte.d.ts +4 -0
  478. package/dist/components/range-calendar/exports.d.ts +15 -0
  479. package/dist/components/range-calendar/exports.js +14 -0
  480. package/dist/components/range-calendar/index.js +2 -0
  481. package/dist/components/range-calendar/range-calendar.svelte.d.ts +232 -0
  482. package/dist/components/range-calendar/range-calendar.svelte.js +582 -0
  483. package/dist/components/range-calendar/types.d.ts +200 -0
  484. package/dist/components/range-calendar/types.js +1 -0
  485. package/dist/components/resizable/index.d.ts +5 -0
  486. package/dist/components/resizable/index.js +6 -0
  487. package/dist/components/resizable/resizable-handle.svelte.d.ts +8 -0
  488. package/dist/components/resizable/resizable-pane-group.svelte.d.ts +7 -0
  489. package/dist/components/scroll-area/components/scroll-area-corner-impl.svelte.d.ts +7 -0
  490. package/dist/components/scroll-area/components/scroll-area-corner.svelte.d.ts +4 -0
  491. package/dist/components/scroll-area/components/scroll-area-scrollbar-auto.svelte.d.ts +4 -0
  492. package/dist/components/scroll-area/components/scroll-area-scrollbar-hover.svelte.d.ts +4 -0
  493. package/dist/components/scroll-area/components/scroll-area-scrollbar-scroll.svelte.d.ts +4 -0
  494. package/dist/components/scroll-area/components/scroll-area-scrollbar-shared.svelte.d.ts +4 -0
  495. package/dist/components/scroll-area/components/scroll-area-scrollbar-visible.svelte.d.ts +4 -0
  496. package/dist/components/scroll-area/components/scroll-area-scrollbar-x.svelte.d.ts +4 -0
  497. package/dist/components/scroll-area/components/scroll-area-scrollbar-y.svelte.d.ts +4 -0
  498. package/dist/components/scroll-area/components/scroll-area-scrollbar.svelte.d.ts +4 -0
  499. package/dist/components/scroll-area/components/scroll-area-thumb-impl.svelte.d.ts +8 -0
  500. package/dist/components/scroll-area/components/scroll-area-thumb.svelte.d.ts +4 -0
  501. package/dist/components/scroll-area/components/scroll-area-viewport.svelte.d.ts +4 -0
  502. package/dist/components/scroll-area/components/scroll-area.svelte.d.ts +11 -0
  503. package/dist/components/scroll-area/exports.d.ts +6 -0
  504. package/dist/components/scroll-area/exports.js +5 -0
  505. package/dist/components/scroll-area/index.js +2 -0
  506. package/dist/components/scroll-area/scroll-area.svelte.d.ts +368 -0
  507. package/dist/components/scroll-area/scroll-area.svelte.js +750 -0
  508. package/dist/components/scroll-area/types.d.ts +47 -0
  509. package/dist/components/scroll-area/types.js +1 -0
  510. package/dist/components/select/index.d.ts +4 -0
  511. package/dist/components/select/index.js +4 -0
  512. package/dist/components/select/select-opt-group.svelte.d.ts +5 -0
  513. package/dist/components/select/select-option.svelte.d.ts +5 -0
  514. package/dist/components/select/select.svelte.d.ts +22 -0
  515. package/dist/components/separator/components/separator.svelte +56 -0
  516. package/dist/components/separator/components/separator.svelte.d.ts +4 -0
  517. package/dist/components/separator/index.d.ts +2 -0
  518. package/dist/components/separator/index.js +1 -0
  519. package/dist/components/separator/separator.svelte.d.ts +20 -0
  520. package/dist/components/separator/separator.svelte.js +26 -0
  521. package/dist/components/separator/types.d.ts +18 -0
  522. package/dist/components/separator/types.js +1 -0
  523. package/dist/components/sheet/components/sheet-close.svelte.d.ts +3 -0
  524. package/dist/components/sheet/components/sheet-content.svelte.d.ts +11 -0
  525. package/dist/components/sheet/components/sheet-description.svelte.d.ts +4 -0
  526. package/dist/components/sheet/components/sheet-footer.svelte.d.ts +5 -0
  527. package/dist/components/sheet/components/sheet-header.svelte.d.ts +5 -0
  528. package/dist/components/sheet/components/sheet-overlay.svelte.d.ts +4 -0
  529. package/dist/components/sheet/components/sheet-title.svelte.d.ts +4 -0
  530. package/dist/components/sheet/components/sheet-trigger.svelte.d.ts +4 -0
  531. package/dist/components/sheet/index.d.ts +13 -0
  532. package/dist/components/sheet/index.js +14 -0
  533. package/dist/components/sheet/variants.d.ts +10 -0
  534. package/dist/components/sheet/variants.js +17 -0
  535. package/dist/components/sidebar/constants.d.ts +6 -0
  536. package/dist/components/sidebar/context.svelte.d.ts +36 -0
  537. package/dist/components/sidebar/context.svelte.js +48 -0
  538. package/dist/components/sidebar/index.d.ts +26 -0
  539. package/dist/components/sidebar/index.js +27 -0
  540. package/dist/components/sidebar/sidebar-content.svelte.d.ts +5 -0
  541. package/dist/components/sidebar/sidebar-desktop-surface.svelte.d.ts +9 -0
  542. package/dist/components/sidebar/sidebar-footer.svelte.d.ts +5 -0
  543. package/dist/components/sidebar/sidebar-group-action.svelte.d.ts +11 -0
  544. package/dist/components/sidebar/sidebar-group-content.svelte.d.ts +5 -0
  545. package/dist/components/sidebar/sidebar-group-label.svelte.d.ts +11 -0
  546. package/dist/components/sidebar/sidebar-group.svelte.d.ts +5 -0
  547. package/dist/components/sidebar/sidebar-header.svelte.d.ts +5 -0
  548. package/dist/components/sidebar/sidebar-input.svelte.d.ts +8 -0
  549. package/dist/components/sidebar/sidebar-inset.svelte.d.ts +5 -0
  550. package/dist/components/sidebar/sidebar-menu-action.svelte.d.ts +12 -0
  551. package/dist/components/sidebar/sidebar-menu-badge.svelte.d.ts +5 -0
  552. package/dist/components/sidebar/sidebar-menu-button.svelte.d.ts +31 -0
  553. package/dist/components/sidebar/sidebar-menu-item.svelte.d.ts +5 -0
  554. package/dist/components/sidebar/sidebar-menu-skeleton.svelte.d.ts +8 -0
  555. package/dist/components/sidebar/sidebar-menu-sub-button.svelte.d.ts +13 -0
  556. package/dist/components/sidebar/sidebar-menu-sub-item.svelte.d.ts +5 -0
  557. package/dist/components/sidebar/sidebar-menu-sub.svelte.d.ts +5 -0
  558. package/dist/components/sidebar/sidebar-menu.svelte.d.ts +5 -0
  559. package/dist/components/sidebar/sidebar-mobile-surface.svelte +58 -0
  560. package/dist/components/sidebar/sidebar-mobile-surface.svelte.d.ts +8 -0
  561. package/dist/components/sidebar/sidebar-provider.svelte.d.ts +15 -0
  562. package/dist/components/sidebar/sidebar-rail.svelte.d.ts +5 -0
  563. package/dist/components/sidebar/sidebar-separator.svelte.d.ts +13 -0
  564. package/dist/components/sidebar/sidebar-trigger.svelte.d.ts +8 -0
  565. package/dist/components/sidebar/sidebar.svelte.d.ts +4 -0
  566. package/dist/components/sidebar/types.d.ts +12 -0
  567. package/dist/components/sidebar/types.js +1 -0
  568. package/dist/components/skeleton/index.d.ts +2 -0
  569. package/dist/components/skeleton/index.js +4 -0
  570. package/dist/components/skeleton/skeleton.svelte.d.ts +5 -0
  571. package/dist/components/slider/components/slider-range.svelte.d.ts +4 -0
  572. package/dist/components/slider/components/slider-thumb-label.svelte.d.ts +4 -0
  573. package/dist/components/slider/components/slider-thumb.svelte.d.ts +4 -0
  574. package/dist/components/slider/components/slider-tick-label.svelte.d.ts +4 -0
  575. package/dist/components/slider/components/slider-tick.svelte.d.ts +4 -0
  576. package/dist/components/slider/components/slider.svelte.d.ts +4 -0
  577. package/dist/components/slider/helpers.d.ts +22 -0
  578. package/dist/components/slider/helpers.js +225 -0
  579. package/dist/components/slider/index.d.ts +7 -0
  580. package/dist/components/slider/index.js +6 -0
  581. package/dist/components/slider/slider.svelte.d.ts +1370 -0
  582. package/dist/components/slider/slider.svelte.js +772 -0
  583. package/dist/components/slider/types.d.ts +233 -0
  584. package/dist/components/slider/types.js +1 -0
  585. package/dist/components/sonner/Toast.svelte.d.ts +4 -0
  586. package/dist/components/sonner/Toaster.svelte +603 -0
  587. package/dist/components/sonner/Toaster.svelte.d.ts +4 -0
  588. package/dist/components/sonner/index.d.ts +21 -0
  589. package/dist/components/sonner/index.js +12 -0
  590. package/dist/components/sonner/toast-state.svelte.d.ts +43 -0
  591. package/dist/components/sonner/toast-state.svelte.js +164 -0
  592. package/dist/components/sonner/types.d.ts +326 -0
  593. package/dist/components/sonner/types.js +1 -0
  594. package/dist/components/switch/index.d.ts +3 -0
  595. package/dist/components/switch/index.js +4 -0
  596. package/dist/components/switch/switch.svelte.d.ts +15 -0
  597. package/dist/components/table/index.d.ts +9 -0
  598. package/dist/components/table/index.js +11 -0
  599. package/dist/components/table/table-body.svelte.d.ts +5 -0
  600. package/dist/components/table/table-caption.svelte.d.ts +5 -0
  601. package/dist/components/table/table-cell.svelte.d.ts +5 -0
  602. package/dist/components/table/table-footer.svelte.d.ts +5 -0
  603. package/dist/components/table/table-head.svelte.d.ts +5 -0
  604. package/dist/components/table/table-header.svelte.d.ts +5 -0
  605. package/dist/components/table/table-row.svelte.d.ts +5 -0
  606. package/dist/components/table/table.svelte.d.ts +5 -0
  607. package/dist/components/tabs/components/tabs-content.svelte.d.ts +4 -0
  608. package/dist/components/tabs/components/tabs-list.svelte.d.ts +4 -0
  609. package/dist/components/tabs/components/tabs-trigger.svelte.d.ts +4 -0
  610. package/dist/components/tabs/components/tabs.svelte.d.ts +4 -0
  611. package/dist/components/tabs/index.d.ts +5 -0
  612. package/dist/components/tabs/index.js +4 -0
  613. package/dist/components/tabs/tabs.svelte.d.ts +96 -0
  614. package/dist/components/tabs/tabs.svelte.js +183 -0
  615. package/dist/components/tabs/types.d.ts +64 -0
  616. package/dist/components/tabs/types.js +1 -0
  617. package/dist/components/textarea/index.d.ts +2 -0
  618. package/dist/components/textarea/index.js +4 -0
  619. package/dist/components/textarea/textarea.svelte.d.ts +5 -0
  620. package/dist/components/theme-toggle/index.d.ts +4 -0
  621. package/dist/components/theme-toggle/index.js +3 -0
  622. package/dist/components/theme-toggle/theme-toggle.svelte.d.ts +7 -0
  623. package/dist/components/theme-toggle/theme.svelte.d.ts +18 -0
  624. package/dist/components/theme-toggle/theme.svelte.js +70 -0
  625. package/dist/components/time-field/components/time-field-hidden-input.svelte.d.ts +18 -0
  626. package/dist/components/time-field/components/time-field-input.svelte.d.ts +4 -0
  627. package/dist/components/time-field/components/time-field-label.svelte.d.ts +4 -0
  628. package/dist/components/time-field/components/time-field-segment.svelte.d.ts +4 -0
  629. package/dist/components/time-field/components/time-field.svelte.d.ts +27 -0
  630. package/dist/components/time-field/index.d.ts +5 -0
  631. package/dist/components/time-field/index.js +4 -0
  632. package/dist/components/time-field/time-field.svelte.d.ts +430 -0
  633. package/dist/components/time-field/time-field.svelte.js +975 -0
  634. package/dist/components/time-field/types.d.ts +137 -0
  635. package/dist/components/time-field/types.js +1 -0
  636. package/dist/components/time-range-field/components/time-range-field-input.svelte.d.ts +4 -0
  637. package/dist/components/time-range-field/components/time-range-field-label.svelte.d.ts +4 -0
  638. package/dist/components/time-range-field/components/time-range-field.svelte.d.ts +27 -0
  639. package/dist/components/time-range-field/index.d.ts +5 -0
  640. package/dist/components/time-range-field/index.js +4 -0
  641. package/dist/components/time-range-field/time-range-field.svelte.d.ts +98 -0
  642. package/dist/components/time-range-field/time-range-field.svelte.js +166 -0
  643. package/dist/components/time-range-field/types.d.ts +138 -0
  644. package/dist/components/time-range-field/types.js +1 -0
  645. package/dist/components/toggle/components/toggle.svelte +60 -0
  646. package/dist/components/toggle/components/toggle.svelte.d.ts +9 -0
  647. package/dist/components/toggle/index.js +2 -0
  648. package/dist/components/toggle/toggle.svelte.d.ts +26 -0
  649. package/dist/components/toggle/toggle.svelte.js +37 -0
  650. package/dist/components/toggle/types.d.ts +24 -0
  651. package/dist/components/toggle/types.js +1 -0
  652. package/dist/components/toggle/variants.d.ts +15 -0
  653. package/dist/components/toggle/variants.js +20 -0
  654. package/dist/components/toggle-group/components/toggle-group-item.svelte.d.ts +9 -0
  655. package/dist/components/toggle-group/components/toggle-group.svelte.d.ts +14 -0
  656. package/dist/components/toggle-group/index.d.ts +3 -0
  657. package/dist/components/toggle-group/index.js +2 -0
  658. package/dist/components/toggle-group/toggle-group.svelte.d.ts +35 -0
  659. package/dist/components/toggle-group/toggle-group.svelte.js +51 -0
  660. package/dist/components/toggle-group/types.d.ts +61 -0
  661. package/dist/components/toggle-group/types.js +1 -0
  662. package/dist/components/toolbar/components/toolbar-button.svelte.d.ts +9 -0
  663. package/dist/components/toolbar/components/toolbar-group-item.svelte.d.ts +9 -0
  664. package/dist/components/toolbar/components/toolbar-group.svelte.d.ts +4 -0
  665. package/dist/components/toolbar/components/toolbar-link.svelte.d.ts +4 -0
  666. package/dist/components/toolbar/components/toolbar.svelte.d.ts +4 -0
  667. package/dist/components/toolbar/index.d.ts +6 -0
  668. package/dist/components/toolbar/index.js +5 -0
  669. package/dist/components/toolbar/toolbar.svelte.d.ts +95 -0
  670. package/dist/components/toolbar/toolbar.svelte.js +154 -0
  671. package/dist/components/toolbar/types.d.ts +34 -0
  672. package/dist/components/toolbar/types.js +1 -0
  673. package/dist/components/tooltip/components/tooltip-content.svelte +88 -0
  674. package/dist/components/tooltip/components/tooltip-content.svelte.d.ts +9 -0
  675. package/dist/components/tooltip/components/tooltip-provider.svelte +37 -0
  676. package/dist/components/tooltip/components/tooltip-provider.svelte.d.ts +3 -0
  677. package/dist/components/tooltip/components/tooltip-trigger.svelte +59 -0
  678. package/dist/components/tooltip/components/tooltip-trigger.svelte.d.ts +25 -0
  679. package/dist/components/tooltip/components/tooltip.svelte +68 -0
  680. package/dist/components/tooltip/components/tooltip.svelte.d.ts +25 -0
  681. package/dist/components/tooltip/index.d.ts +8 -0
  682. package/dist/components/tooltip/index.js +6 -0
  683. package/dist/components/tooltip/tooltip.svelte.d.ts +161 -0
  684. package/dist/components/tooltip/tooltip.svelte.js +646 -0
  685. package/dist/components/tooltip/types.d.ts +143 -0
  686. package/dist/components/tooltip/types.js +1 -0
  687. package/dist/components/tooltip/utils.d.ts +1 -0
  688. package/dist/icons/google-icon.svelte.d.ts +3 -0
  689. package/dist/icons/google-workspace.svelte.d.ts +3 -0
  690. package/dist/icons/instagram.svelte.d.ts +3 -0
  691. package/dist/icons/instantly.svelte.d.ts +3 -0
  692. package/dist/icons/linkedin.svelte.d.ts +3 -0
  693. package/dist/icons/mailshake.svelte.d.ts +3 -0
  694. package/dist/icons/microsoft-365.svelte.d.ts +3 -0
  695. package/dist/icons/passcode.svelte.d.ts +3 -0
  696. package/dist/icons/replyio.svelte.d.ts +3 -0
  697. package/dist/icons/smartlead.svelte.d.ts +3 -0
  698. package/dist/icons/smtp.svelte.d.ts +3 -0
  699. package/dist/icons/x-logo.svelte.d.ts +3 -0
  700. package/dist/internal/animations-settled.svelte.d.ts +46 -0
  701. package/dist/internal/animations-settled.svelte.js +104 -0
  702. package/dist/internal/arrays.d.ts +96 -0
  703. package/dist/internal/arrays.js +229 -0
  704. package/dist/internal/attribute-types.d.ts +40 -0
  705. package/dist/internal/attribute-types.js +1 -0
  706. package/dist/internal/attrs.d.ts +28 -0
  707. package/dist/internal/attrs.js +34 -0
  708. package/dist/internal/body-scroll-lock.svelte.d.ts +51 -0
  709. package/dist/internal/body-scroll-lock.svelte.js +267 -0
  710. package/dist/internal/create-id.d.ts +8 -0
  711. package/dist/internal/create-id.js +5 -0
  712. package/dist/internal/date-time/announcer.d.ts +9 -0
  713. package/dist/internal/date-time/announcer.js +61 -0
  714. package/dist/internal/date-time/calendar-helpers.svelte.d.ts +124 -0
  715. package/dist/internal/date-time/calendar-helpers.svelte.js +263 -0
  716. package/dist/internal/date-time/field/helpers.d.ts +84 -0
  717. package/dist/internal/date-time/field/helpers.js +362 -0
  718. package/dist/internal/date-time/field/parts.d.ts +6 -0
  719. package/dist/internal/date-time/field/parts.js +15 -0
  720. package/dist/internal/date-time/field/range-field.svelte.d.ts +17 -0
  721. package/dist/internal/date-time/field/range-field.svelte.js +41 -0
  722. package/dist/internal/date-time/field/segments.d.ts +26 -0
  723. package/dist/internal/date-time/field/segments.js +81 -0
  724. package/dist/internal/date-time/field/time-helpers.d.ts +73 -0
  725. package/dist/internal/date-time/field/time-helpers.js +249 -0
  726. package/dist/internal/date-time/formatter.d.ts +32 -0
  727. package/dist/internal/date-time/formatter.js +53 -0
  728. package/dist/internal/date-time/placeholders.d.ts +8 -0
  729. package/dist/internal/date-time/placeholders.js +116 -0
  730. package/dist/internal/date-time/types.d.ts +100 -0
  731. package/dist/internal/date-time/types.js +1 -0
  732. package/dist/internal/date-time/utils.d.ts +76 -0
  733. package/dist/internal/date-time/utils.js +189 -0
  734. package/dist/internal/dismissible-layer/index.d.ts +2 -0
  735. package/dist/internal/dismissible-layer/index.js +1 -0
  736. package/dist/internal/dismissible-layer/scheduler.d.ts +27 -0
  737. package/dist/internal/dismissible-layer/scheduler.js +29 -0
  738. package/dist/internal/dismissible-layer/types.d.ts +49 -0
  739. package/dist/internal/dismissible-layer/types.js +1 -0
  740. package/dist/internal/dismissible-layer/use-dismissable-layer.svelte.d.ts +51 -0
  741. package/dist/internal/dismissible-layer/use-dismissable-layer.svelte.js +226 -0
  742. package/dist/internal/escape-layer/index.d.ts +2 -0
  743. package/dist/internal/escape-layer/index.js +1 -0
  744. package/dist/internal/escape-layer/types.d.ts +29 -0
  745. package/dist/internal/escape-layer/types.js +1 -0
  746. package/dist/internal/escape-layer/use-escape-layer.svelte.d.ts +29 -0
  747. package/dist/internal/escape-layer/use-escape-layer.svelte.js +56 -0
  748. package/dist/internal/floating-layer/components/floating-layer-arrow.svelte.d.ts +4 -0
  749. package/dist/internal/floating-layer/components/floating-layer-content-static.svelte.d.ts +10 -0
  750. package/dist/internal/floating-layer/components/floating-layer-content.svelte.d.ts +4 -0
  751. package/dist/internal/floating-layer/components/floating-layer.svelte.d.ts +8 -0
  752. package/dist/internal/floating-layer/components/index.d.ts +5 -0
  753. package/dist/internal/floating-layer/components/index.js +4 -0
  754. package/dist/internal/floating-layer/index.js +2 -0
  755. package/dist/internal/floating-layer/types.d.ts +110 -0
  756. package/dist/internal/floating-layer/types.js +1 -0
  757. package/dist/internal/floating-layer/use-floating-layer.svelte.d.ts +110 -0
  758. package/dist/internal/floating-layer/use-floating-layer.svelte.js +389 -0
  759. package/dist/internal/focus-scope/focus-scope.svelte.d.ts +16 -0
  760. package/dist/internal/focus-scope/focus-scope.svelte.js +261 -0
  761. package/dist/internal/focus-scope/index.d.ts +3 -0
  762. package/dist/internal/focus-scope/index.js +1 -0
  763. package/dist/internal/focus-scope/types.d.ts +39 -0
  764. package/dist/internal/focus-scope/types.js +1 -0
  765. package/dist/internal/focus.d.ts +1 -0
  766. package/dist/internal/focus.js +12 -0
  767. package/dist/internal/global-singleton.d.ts +7 -0
  768. package/dist/internal/global-singleton.js +10 -0
  769. package/dist/internal/group-value.svelte.d.ts +17 -0
  770. package/dist/internal/group-value.svelte.js +25 -0
  771. package/dist/internal/hover-intent-geometry.d.ts +34 -0
  772. package/dist/internal/hover-intent-geometry.js +76 -0
  773. package/dist/internal/index.d.ts +21 -0
  774. package/dist/internal/index.js +3 -0
  775. package/dist/internal/kbd.d.ts +57 -0
  776. package/dist/internal/kbd.js +56 -0
  777. package/dist/internal/layer-stack.d.ts +16 -0
  778. package/dist/internal/layer-stack.js +19 -0
  779. package/dist/internal/math.d.ts +1 -0
  780. package/dist/internal/math.js +9 -0
  781. package/dist/internal/merge-props.d.ts +5 -0
  782. package/dist/internal/merge-props.js +6 -0
  783. package/dist/internal/native-dialog-controller.svelte.d.ts +21 -0
  784. package/dist/internal/native-dialog-controller.svelte.js +82 -0
  785. package/dist/internal/native-popover.svelte.d.ts +50 -0
  786. package/dist/internal/native-popover.svelte.js +142 -0
  787. package/dist/internal/open-cell.svelte.d.ts +27 -0
  788. package/dist/internal/open-cell.svelte.js +41 -0
  789. package/dist/internal/paneforge/index.js +3 -0
  790. package/dist/internal/paneforge/internal/constants.d.ts +2 -0
  791. package/dist/internal/paneforge/internal/helpers.d.ts +64 -0
  792. package/dist/internal/paneforge/internal/helpers.js +251 -0
  793. package/dist/internal/paneforge/internal/types.d.ts +26 -0
  794. package/dist/internal/paneforge/internal/types.js +1 -0
  795. package/dist/internal/paneforge/internal/utils/adjust-layout.d.ts +14 -0
  796. package/dist/internal/paneforge/internal/utils/adjust-layout.js +101 -0
  797. package/dist/internal/paneforge/internal/utils/aria.d.ts +14 -0
  798. package/dist/internal/paneforge/internal/utils/aria.js +25 -0
  799. package/dist/internal/paneforge/internal/utils/compare.d.ts +11 -0
  800. package/dist/internal/paneforge/internal/utils/compare.js +12 -0
  801. package/dist/internal/paneforge/internal/utils/is.d.ts +4 -0
  802. package/dist/internal/paneforge/internal/utils/is.js +9 -0
  803. package/dist/internal/paneforge/internal/utils/resize.d.ts +7 -0
  804. package/dist/internal/paneforge/internal/utils/resize.js +18 -0
  805. package/dist/internal/paneforge/internal/utils/storage.d.ts +34 -0
  806. package/dist/internal/paneforge/internal/utils/storage.js +74 -0
  807. package/dist/internal/paneforge/internal/utils/style.d.ts +27 -0
  808. package/dist/internal/paneforge/internal/utils/style.js +76 -0
  809. package/dist/internal/paneforge/pane-group.svelte.d.ts +8 -0
  810. package/dist/internal/paneforge/pane-resizer.svelte.d.ts +4 -0
  811. package/dist/internal/paneforge/pane.svelte.d.ts +12 -0
  812. package/dist/internal/paneforge/paneforge.svelte.d.ts +147 -0
  813. package/dist/internal/paneforge/paneforge.svelte.js +650 -0
  814. package/dist/internal/paneforge/types.d.ts +152 -0
  815. package/dist/internal/paneforge/types.js +1 -0
  816. package/dist/internal/popper-layer/index.js +1 -0
  817. package/dist/internal/popper-layer/popper-content.svelte.d.ts +7 -0
  818. package/dist/internal/popper-layer/popper-layer-inner.svelte.d.ts +8 -0
  819. package/dist/internal/popper-layer/popper-layer.svelte.d.ts +4 -0
  820. package/dist/internal/popper-layer/types.d.ts +44 -0
  821. package/dist/internal/popper-layer/types.js +1 -0
  822. package/dist/internal/portal/index.js +1 -0
  823. package/dist/internal/portal/portal.svelte.d.ts +23 -0
  824. package/dist/internal/prop-resolvers.d.ts +4 -0
  825. package/dist/internal/prop-resolvers.js +7 -0
  826. package/dist/internal/roving-focus-group.svelte.d.ts +53 -0
  827. package/dist/internal/roving-focus-group.svelte.js +93 -0
  828. package/dist/internal/roving-focus-item.svelte.d.ts +21 -0
  829. package/dist/internal/roving-focus-item.svelte.js +27 -0
  830. package/dist/internal/safe-polygon.svelte.d.ts +19 -0
  831. package/dist/internal/safe-polygon.svelte.js +188 -0
  832. package/dist/internal/selection.svelte.d.ts +72 -0
  833. package/dist/internal/selection.svelte.js +98 -0
  834. package/dist/internal/shared-state.svelte.d.ts +6 -0
  835. package/dist/internal/shared-state.svelte.js +30 -0
  836. package/dist/internal/state-machine.svelte.d.ts +15 -0
  837. package/dist/internal/state-machine.svelte.js +17 -0
  838. package/dist/internal/svelte-resize-observer.svelte.d.ts +6 -0
  839. package/dist/internal/svelte-resize-observer.svelte.js +29 -0
  840. package/dist/internal/tabbable.d.ts +30 -0
  841. package/dist/internal/tabbable.js +315 -0
  842. package/dist/internal/table/core.d.ts +14 -0
  843. package/dist/internal/table/core.js +47 -0
  844. package/dist/internal/table/filter-fns.d.ts +3 -0
  845. package/dist/internal/table/filter-fns.js +7 -0
  846. package/dist/internal/table/index.js +1 -0
  847. package/dist/internal/table/sorting-fns.d.ts +15 -0
  848. package/dist/internal/table/sorting-fns.js +63 -0
  849. package/dist/internal/table/table.svelte.d.ts +90 -0
  850. package/dist/internal/table/table.svelte.js +249 -0
  851. package/dist/internal/table/types.d.ts +35 -0
  852. package/dist/internal/table/types.js +1 -0
  853. package/dist/internal/timeout-fn.svelte.d.ts +10 -0
  854. package/dist/internal/timeout-fn.svelte.js +31 -0
  855. package/dist/internal/tools/box.svelte.d.ts +14 -0
  856. package/dist/internal/tools/box.svelte.js +29 -0
  857. package/dist/internal/tools/index.d.ts +3 -0
  858. package/dist/internal/tools/index.js +2 -0
  859. package/dist/internal/tools/types.d.ts +39 -0
  860. package/dist/internal/tools/types.js +1 -0
  861. package/dist/internal/tools/utils/attach-ref.d.ts +31 -0
  862. package/dist/internal/tools/utils/attach-ref.js +58 -0
  863. package/dist/internal/tools/utils/compose-handlers.d.ts +16 -0
  864. package/dist/internal/tools/utils/compose-handlers.js +32 -0
  865. package/dist/internal/tools/utils/dom-context.svelte.d.ts +14 -0
  866. package/dist/internal/tools/utils/dom-context.svelte.js +56 -0
  867. package/dist/internal/tools/utils/dom.d.ts +13 -0
  868. package/dist/internal/tools/utils/dom.js +59 -0
  869. package/dist/internal/tools/utils/events.js +1 -0
  870. package/dist/internal/tools/utils/index.js +5 -0
  871. package/dist/internal/tools/utils/strings.d.ts +4 -0
  872. package/dist/internal/tools/utils/strings.js +25 -0
  873. package/dist/internal/typeahead.svelte.d.ts +15 -0
  874. package/dist/internal/typeahead.svelte.js +31 -0
  875. package/dist/internal/types.d.ts +122 -0
  876. package/dist/internal/types.js +1 -0
  877. package/dist/internal/utils.d.ts +10 -0
  878. package/dist/internal/utils.js +4 -0
  879. package/dist/internal/vaul/browser.d.ts +3 -0
  880. package/dist/internal/vaul/browser.js +5 -0
  881. package/dist/internal/vaul/constants.d.ts +11 -0
  882. package/dist/internal/vaul/constants.js +12 -0
  883. package/dist/internal/vaul/helpers.d.ts +9 -0
  884. package/dist/internal/vaul/helpers.js +27 -0
  885. package/dist/internal/vaul/types.d.ts +122 -0
  886. package/dist/internal/vaul/types.js +1 -0
  887. package/dist/internal/vaul/use-drawer-content.svelte.d.ts +65 -0
  888. package/dist/internal/vaul/use-drawer-content.svelte.js +178 -0
  889. package/dist/internal/vaul/use-drawer-root.svelte.d.ts +87 -0
  890. package/dist/internal/vaul/use-drawer-root.svelte.js +561 -0
  891. package/dist/internal/vaul/use-position-fixed.svelte.d.ts +20 -0
  892. package/dist/internal/vaul/use-position-fixed.svelte.js +111 -0
  893. package/dist/internal/vaul/use-prevent-scroll.svelte.d.ts +23 -0
  894. package/dist/internal/vaul/use-prevent-scroll.svelte.js +232 -0
  895. package/dist/internal/vaul/use-snap-points.svelte.d.ts +33 -0
  896. package/dist/internal/vaul/use-snap-points.svelte.js +180 -0
  897. package/dist/time.d.ts +34 -0
  898. package/dist/time.js +51 -0
  899. package/package.json +184 -179
  900. package/src/lib/blocks/alert-modal/alert-modal.svelte.ts +0 -81
  901. package/src/lib/blocks/copy-button/copy.svelte.ts +0 -52
  902. package/src/lib/blocks/date-picker/index.ts +0 -13
  903. package/src/lib/blocks/time-picker/index.ts +0 -16
  904. package/src/lib/blocks/time-picker/time-slots.ts +0 -61
  905. package/src/lib/components/accordion/index.ts +0 -11
  906. package/src/lib/components/accordion/types.ts +0 -19
  907. package/src/lib/components/alert/index.ts +0 -17
  908. package/src/lib/components/avatar/avatar.svelte.ts +0 -154
  909. package/src/lib/components/avatar/components/avatar-fallback.svelte +0 -38
  910. package/src/lib/components/avatar/components/avatar-image.svelte +0 -47
  911. package/src/lib/components/avatar/components/avatar.svelte +0 -57
  912. package/src/lib/components/avatar/index.ts +0 -9
  913. package/src/lib/components/avatar/types.ts +0 -46
  914. package/src/lib/components/breadcrumb/index.ts +0 -25
  915. package/src/lib/components/button/index.ts +0 -12
  916. package/src/lib/components/button/variants.ts +0 -51
  917. package/src/lib/components/calendar/calendar.svelte.ts +0 -1081
  918. package/src/lib/components/calendar/exports.ts +0 -31
  919. package/src/lib/components/calendar/types.ts +0 -417
  920. package/src/lib/components/card/index.ts +0 -25
  921. package/src/lib/components/carousel/carouselState.svelte.ts +0 -30
  922. package/src/lib/components/carousel/index.ts +0 -24
  923. package/src/lib/components/chart/chart-utils.ts +0 -50
  924. package/src/lib/components/chart/index.ts +0 -6
  925. package/src/lib/components/checkbox/checkbox.svelte.ts +0 -199
  926. package/src/lib/components/checkbox/components/checkbox-group-label.svelte +0 -29
  927. package/src/lib/components/checkbox/components/checkbox-group.svelte +0 -50
  928. package/src/lib/components/checkbox/components/checkbox.svelte +0 -89
  929. package/src/lib/components/checkbox/index.ts +0 -9
  930. package/src/lib/components/checkbox/types.ts +0 -131
  931. package/src/lib/components/checkbox-native/index.ts +0 -8
  932. package/src/lib/components/collapsible/index.ts +0 -9
  933. package/src/lib/components/collapsible/types.ts +0 -25
  934. package/src/lib/components/combobox/index.ts +0 -30
  935. package/src/lib/components/combobox/select/select.svelte.ts +0 -1596
  936. package/src/lib/components/combobox/select/types.ts +0 -291
  937. package/src/lib/components/combobox/types.ts +0 -77
  938. package/src/lib/components/command/command.svelte.ts +0 -1506
  939. package/src/lib/components/command/compute-command-score.ts +0 -207
  940. package/src/lib/components/command/index.ts +0 -29
  941. package/src/lib/components/command/types.ts +0 -222
  942. package/src/lib/components/command/utils.ts +0 -30
  943. package/src/lib/components/context-menu/index.ts +0 -39
  944. package/src/lib/components/context-menu/types.ts +0 -56
  945. package/src/lib/components/data-table/column-helpers.ts +0 -97
  946. package/src/lib/components/data-table/index.ts +0 -29
  947. package/src/lib/components/data-table/render-helpers.ts +0 -105
  948. package/src/lib/components/date-field/date-field.svelte.ts +0 -1473
  949. package/src/lib/components/date-field/index.ts +0 -11
  950. package/src/lib/components/date-field/types.ts +0 -165
  951. package/src/lib/components/date-range-field/date-range-field.svelte.ts +0 -212
  952. package/src/lib/components/date-range-field/index.ts +0 -11
  953. package/src/lib/components/date-range-field/types.ts +0 -171
  954. package/src/lib/components/dialog/components/dialog-close.svelte +0 -31
  955. package/src/lib/components/dialog/components/dialog-content-headless.svelte +0 -104
  956. package/src/lib/components/dialog/components/dialog-description.svelte +0 -29
  957. package/src/lib/components/dialog/components/dialog-overlay.svelte +0 -31
  958. package/src/lib/components/dialog/components/dialog-title.svelte +0 -30
  959. package/src/lib/components/dialog/components/dialog-trigger.svelte +0 -30
  960. package/src/lib/components/dialog/components/dialog.svelte +0 -21
  961. package/src/lib/components/dialog/components/modal-surface.svelte +0 -131
  962. package/src/lib/components/dialog/dialog.svelte.ts +0 -371
  963. package/src/lib/components/dialog/index.ts +0 -19
  964. package/src/lib/components/dialog/types.ts +0 -105
  965. package/src/lib/components/drawer/drawer.svelte +0 -290
  966. package/src/lib/components/drawer/index.ts +0 -37
  967. package/src/lib/components/dropdown-menu/index.ts +0 -39
  968. package/src/lib/components/dropdown-menu/types.ts +0 -41
  969. package/src/lib/components/empty/index.ts +0 -22
  970. package/src/lib/components/empty/variants.ts +0 -16
  971. package/src/lib/components/field/index.ts +0 -32
  972. package/src/lib/components/field/variants.ts +0 -19
  973. package/src/lib/components/input/index.ts +0 -12
  974. package/src/lib/components/input/variants.ts +0 -28
  975. package/src/lib/components/item/index.ts +0 -34
  976. package/src/lib/components/kbd/index.ts +0 -10
  977. package/src/lib/components/label/label.svelte.ts +0 -39
  978. package/src/lib/components/label/types.ts +0 -7
  979. package/src/lib/components/link-preview/components/link-preview-content.svelte +0 -60
  980. package/src/lib/components/link-preview/components/link-preview-trigger.svelte +0 -29
  981. package/src/lib/components/link-preview/components/link-preview.svelte +0 -34
  982. package/src/lib/components/link-preview/exports.ts +0 -11
  983. package/src/lib/components/link-preview/link-preview.svelte.ts +0 -270
  984. package/src/lib/components/link-preview/types.ts +0 -102
  985. package/src/lib/components/menu/exports.ts +0 -38
  986. package/src/lib/components/menu/menu.svelte.ts +0 -1587
  987. package/src/lib/components/menu/types.ts +0 -265
  988. package/src/lib/components/menu/utils.ts +0 -68
  989. package/src/lib/components/menubar/exports.ts +0 -44
  990. package/src/lib/components/menubar/menubar.svelte.ts +0 -395
  991. package/src/lib/components/menubar/types.ts +0 -97
  992. package/src/lib/components/meter/components/meter.svelte +0 -41
  993. package/src/lib/components/meter/meter.svelte.ts +0 -47
  994. package/src/lib/components/meter/types.ts +0 -28
  995. package/src/lib/components/navigation-menu/index.ts +0 -28
  996. package/src/lib/components/navigation-menu/navigation-menu.svelte.ts +0 -1089
  997. package/src/lib/components/navigation-menu/types.ts +0 -189
  998. package/src/lib/components/pagination/index.ts +0 -11
  999. package/src/lib/components/pagination/pagination.svelte.ts +0 -259
  1000. package/src/lib/components/pagination/types.ts +0 -100
  1001. package/src/lib/components/pin-input/exports.ts +0 -4
  1002. package/src/lib/components/pin-input/pin-input.svelte.ts +0 -540
  1003. package/src/lib/components/pin-input/types.ts +0 -118
  1004. package/src/lib/components/pin-input/usePasswordManager.svelte.ts +0 -122
  1005. package/src/lib/components/popover/components/popover-close.svelte +0 -38
  1006. package/src/lib/components/popover/components/popover-content.svelte +0 -70
  1007. package/src/lib/components/popover/components/popover-trigger.svelte +0 -44
  1008. package/src/lib/components/popover/components/popover.svelte +0 -26
  1009. package/src/lib/components/popover/exports.ts +0 -13
  1010. package/src/lib/components/popover/popover.svelte.ts +0 -392
  1011. package/src/lib/components/popover/types.ts +0 -92
  1012. package/src/lib/components/progress/components/progress.svelte +0 -56
  1013. package/src/lib/components/progress/exports.ts +0 -3
  1014. package/src/lib/components/progress/progress.svelte.ts +0 -58
  1015. package/src/lib/components/progress/types.ts +0 -28
  1016. package/src/lib/components/radio-group/context.ts +0 -13
  1017. package/src/lib/components/radio-group/index.ts +0 -10
  1018. package/src/lib/components/range-calendar/exports.ts +0 -31
  1019. package/src/lib/components/range-calendar/range-calendar.svelte.ts +0 -739
  1020. package/src/lib/components/range-calendar/types.ts +0 -258
  1021. package/src/lib/components/resizable/index.ts +0 -15
  1022. package/src/lib/components/scroll-area/exports.ts +0 -13
  1023. package/src/lib/components/scroll-area/scroll-area.svelte.ts +0 -945
  1024. package/src/lib/components/scroll-area/types.ts +0 -67
  1025. package/src/lib/components/select/index.ts +0 -5
  1026. package/src/lib/components/separator/components/separator.svelte +0 -49
  1027. package/src/lib/components/separator/index.ts +0 -3
  1028. package/src/lib/components/separator/separator.svelte.ts +0 -43
  1029. package/src/lib/components/separator/types.ts +0 -22
  1030. package/src/lib/components/sheet/index.ts +0 -47
  1031. package/src/lib/components/sheet/variants.ts +0 -20
  1032. package/src/lib/components/sidebar/context.svelte.ts +0 -71
  1033. package/src/lib/components/sidebar/index.ts +0 -77
  1034. package/src/lib/components/sidebar/sidebar-mobile-surface.svelte +0 -54
  1035. package/src/lib/components/sidebar/types.ts +0 -14
  1036. package/src/lib/components/skeleton/index.ts +0 -7
  1037. package/src/lib/components/slider/helpers.ts +0 -249
  1038. package/src/lib/components/slider/index.ts +0 -15
  1039. package/src/lib/components/slider/slider.svelte.ts +0 -979
  1040. package/src/lib/components/slider/types.ts +0 -294
  1041. package/src/lib/components/sonner/Toaster.svelte +0 -603
  1042. package/src/lib/components/sonner/index.ts +0 -15
  1043. package/src/lib/components/sonner/toast-state.svelte.ts +0 -217
  1044. package/src/lib/components/sonner/types.ts +0 -384
  1045. package/src/lib/components/switch/index.ts +0 -8
  1046. package/src/lib/components/table/index.ts +0 -28
  1047. package/src/lib/components/tabs/index.ts +0 -11
  1048. package/src/lib/components/tabs/tabs.svelte.ts +0 -237
  1049. package/src/lib/components/tabs/types.ts +0 -86
  1050. package/src/lib/components/textarea/index.ts +0 -7
  1051. package/src/lib/components/theme-toggle/index.ts +0 -5
  1052. package/src/lib/components/theme-toggle/theme.svelte.ts +0 -81
  1053. package/src/lib/components/time-field/index.ts +0 -11
  1054. package/src/lib/components/time-field/time-field.svelte.ts +0 -1198
  1055. package/src/lib/components/time-field/types.ts +0 -174
  1056. package/src/lib/components/time-range-field/index.ts +0 -11
  1057. package/src/lib/components/time-range-field/time-range-field.svelte.ts +0 -235
  1058. package/src/lib/components/time-range-field/types.ts +0 -181
  1059. package/src/lib/components/toggle/components/toggle.svelte +0 -55
  1060. package/src/lib/components/toggle/toggle.svelte.ts +0 -57
  1061. package/src/lib/components/toggle/types.ts +0 -33
  1062. package/src/lib/components/toggle/variants.ts +0 -25
  1063. package/src/lib/components/toggle-group/index.ts +0 -7
  1064. package/src/lib/components/toggle-group/toggle-group.svelte.ts +0 -76
  1065. package/src/lib/components/toggle-group/types.ts +0 -89
  1066. package/src/lib/components/toolbar/index.ts +0 -13
  1067. package/src/lib/components/toolbar/toolbar.svelte.ts +0 -212
  1068. package/src/lib/components/toolbar/types.ts +0 -60
  1069. package/src/lib/components/tooltip/components/tooltip-content.svelte +0 -81
  1070. package/src/lib/components/tooltip/components/tooltip-provider.svelte +0 -26
  1071. package/src/lib/components/tooltip/components/tooltip-trigger.svelte +0 -48
  1072. package/src/lib/components/tooltip/components/tooltip.svelte +0 -55
  1073. package/src/lib/components/tooltip/index.ts +0 -17
  1074. package/src/lib/components/tooltip/tooltip.svelte.ts +0 -775
  1075. package/src/lib/components/tooltip/types.ts +0 -175
  1076. package/src/lib/internal/animations-settled.svelte.ts +0 -119
  1077. package/src/lib/internal/arrays.ts +0 -253
  1078. package/src/lib/internal/attribute-types.ts +0 -53
  1079. package/src/lib/internal/attrs.ts +0 -64
  1080. package/src/lib/internal/body-scroll-lock.svelte.ts +0 -330
  1081. package/src/lib/internal/create-id.ts +0 -12
  1082. package/src/lib/internal/date-time/announcer.ts +0 -74
  1083. package/src/lib/internal/date-time/calendar-helpers.svelte.ts +0 -399
  1084. package/src/lib/internal/date-time/field/helpers.ts +0 -431
  1085. package/src/lib/internal/date-time/field/parts.ts +0 -15
  1086. package/src/lib/internal/date-time/field/range-field.svelte.ts +0 -45
  1087. package/src/lib/internal/date-time/field/segments.ts +0 -89
  1088. package/src/lib/internal/date-time/field/time-helpers.ts +0 -311
  1089. package/src/lib/internal/date-time/formatter.ts +0 -86
  1090. package/src/lib/internal/date-time/placeholders.ts +0 -131
  1091. package/src/lib/internal/date-time/types.ts +0 -121
  1092. package/src/lib/internal/date-time/utils.ts +0 -243
  1093. package/src/lib/internal/dismissible-layer/index.ts +0 -3
  1094. package/src/lib/internal/dismissible-layer/scheduler.ts +0 -48
  1095. package/src/lib/internal/dismissible-layer/types.ts +0 -57
  1096. package/src/lib/internal/dismissible-layer/use-dismissable-layer.svelte.ts +0 -290
  1097. package/src/lib/internal/escape-layer/index.ts +0 -3
  1098. package/src/lib/internal/escape-layer/types.ts +0 -34
  1099. package/src/lib/internal/escape-layer/use-escape-layer.svelte.ts +0 -91
  1100. package/src/lib/internal/floating-layer/components/index.ts +0 -6
  1101. package/src/lib/internal/floating-layer/types.ts +0 -126
  1102. package/src/lib/internal/floating-layer/use-floating-layer.svelte.ts +0 -467
  1103. package/src/lib/internal/focus-scope/focus-scope.svelte.ts +0 -310
  1104. package/src/lib/internal/focus-scope/index.ts +0 -4
  1105. package/src/lib/internal/focus-scope/types.ts +0 -45
  1106. package/src/lib/internal/focus.ts +0 -14
  1107. package/src/lib/internal/global-singleton.ts +0 -10
  1108. package/src/lib/internal/group-value.svelte.ts +0 -36
  1109. package/src/lib/internal/hover-intent-geometry.ts +0 -96
  1110. package/src/lib/internal/index.ts +0 -44
  1111. package/src/lib/internal/kbd.ts +0 -60
  1112. package/src/lib/internal/layer-stack.ts +0 -37
  1113. package/src/lib/internal/math.ts +0 -11
  1114. package/src/lib/internal/merge-props.ts +0 -7
  1115. package/src/lib/internal/native-dialog-controller.svelte.ts +0 -102
  1116. package/src/lib/internal/native-popover.svelte.ts +0 -173
  1117. package/src/lib/internal/open-cell.svelte.ts +0 -41
  1118. package/src/lib/internal/paneforge/internal/helpers.ts +0 -354
  1119. package/src/lib/internal/paneforge/internal/types.ts +0 -33
  1120. package/src/lib/internal/paneforge/internal/utils/adjust-layout.ts +0 -122
  1121. package/src/lib/internal/paneforge/internal/utils/aria.ts +0 -36
  1122. package/src/lib/internal/paneforge/internal/utils/compare.ts +0 -15
  1123. package/src/lib/internal/paneforge/internal/utils/is.ts +0 -13
  1124. package/src/lib/internal/paneforge/internal/utils/resize.ts +0 -31
  1125. package/src/lib/internal/paneforge/internal/utils/storage.ts +0 -116
  1126. package/src/lib/internal/paneforge/internal/utils/style.ts +0 -104
  1127. package/src/lib/internal/paneforge/paneforge.svelte.ts +0 -821
  1128. package/src/lib/internal/paneforge/types.ts +0 -179
  1129. package/src/lib/internal/popper-layer/types.ts +0 -65
  1130. package/src/lib/internal/prop-resolvers.ts +0 -14
  1131. package/src/lib/internal/roving-focus-group.svelte.ts +0 -148
  1132. package/src/lib/internal/roving-focus-item.svelte.ts +0 -46
  1133. package/src/lib/internal/safe-polygon.svelte.ts +0 -239
  1134. package/src/lib/internal/selection.svelte.ts +0 -143
  1135. package/src/lib/internal/shared-state.svelte.ts +0 -39
  1136. package/src/lib/internal/state-machine.svelte.ts +0 -30
  1137. package/src/lib/internal/svelte-resize-observer.svelte.ts +0 -37
  1138. package/src/lib/internal/tabbable.ts +0 -398
  1139. package/src/lib/internal/table/core.ts +0 -53
  1140. package/src/lib/internal/table/filter-fns.ts +0 -10
  1141. package/src/lib/internal/table/sorting-fns.ts +0 -84
  1142. package/src/lib/internal/table/table.svelte.ts +0 -310
  1143. package/src/lib/internal/table/types.ts +0 -33
  1144. package/src/lib/internal/timeout-fn.svelte.ts +0 -38
  1145. package/src/lib/internal/tools/box.svelte.ts +0 -44
  1146. package/src/lib/internal/tools/index.ts +0 -12
  1147. package/src/lib/internal/tools/types.ts +0 -41
  1148. package/src/lib/internal/tools/utils/attach-ref.ts +0 -74
  1149. package/src/lib/internal/tools/utils/compose-handlers.ts +0 -36
  1150. package/src/lib/internal/tools/utils/dom-context.svelte.ts +0 -63
  1151. package/src/lib/internal/tools/utils/dom.ts +0 -62
  1152. package/src/lib/internal/tools/utils/strings.ts +0 -28
  1153. package/src/lib/internal/typeahead.svelte.ts +0 -44
  1154. package/src/lib/internal/types.ts +0 -125
  1155. package/src/lib/internal/utils.ts +0 -10
  1156. package/src/lib/internal/vaul/browser.ts +0 -8
  1157. package/src/lib/internal/vaul/constants.ts +0 -19
  1158. package/src/lib/internal/vaul/helpers.ts +0 -39
  1159. package/src/lib/internal/vaul/types.ts +0 -142
  1160. package/src/lib/internal/vaul/use-drawer-content.svelte.ts +0 -219
  1161. package/src/lib/internal/vaul/use-drawer-root.svelte.ts +0 -687
  1162. package/src/lib/internal/vaul/use-position-fixed.svelte.ts +0 -142
  1163. package/src/lib/internal/vaul/use-prevent-scroll.svelte.ts +0 -267
  1164. package/src/lib/internal/vaul/use-snap-points.svelte.ts +0 -246
  1165. package/src/lib/time.ts +0 -73
  1166. /package/{src/lib → dist}/VENDORED.md +0 -0
  1167. /package/{src/lib → dist}/assets/ui.css +0 -0
  1168. /package/{src/lib → dist}/blocks/Appearance.svelte +0 -0
  1169. /package/{src/lib → dist}/blocks/BoundaryFailed.svelte +0 -0
  1170. /package/{src/lib → dist}/blocks/ErrorPage.svelte +0 -0
  1171. /package/{src/lib → dist}/blocks/Footer.svelte +0 -0
  1172. /package/{src/lib → dist}/blocks/Header.svelte +0 -0
  1173. /package/{src/lib → dist}/blocks/Heading.svelte +0 -0
  1174. /package/{src/lib → dist}/blocks/MobileNav.svelte +0 -0
  1175. /package/{src/lib → dist}/blocks/PhoneInput.svelte +0 -0
  1176. /package/{src/lib → dist}/blocks/Section.svelte +0 -0
  1177. /package/{src/lib → dist}/blocks/alert-modal/AlertModal.svelte +0 -0
  1178. /package/{src/lib/blocks/alert-modal/index.ts → dist/blocks/alert-modal/index.d.ts} +0 -0
  1179. /package/{src/lib → dist}/blocks/calendar.svelte +0 -0
  1180. /package/{src/lib → dist}/blocks/copy-button/copy-button.svelte +0 -0
  1181. /package/{src/lib/blocks/copy-button/index.ts → dist/blocks/copy-button/index.d.ts} +0 -0
  1182. /package/{src/lib → dist}/blocks/date-picker/date-picker-with-presets.svelte +0 -0
  1183. /package/{src/lib → dist}/blocks/date-picker/date-picker.svelte +0 -0
  1184. /package/{src/lib → dist}/blocks/date-picker/range-date-picker.svelte +0 -0
  1185. /package/{src/lib/blocks/index.ts → dist/blocks/index.d.ts} +0 -0
  1186. /package/{src/lib → dist}/blocks/mockups/Browser.svelte +0 -0
  1187. /package/{src/lib → dist}/blocks/mockups/Phone.svelte +0 -0
  1188. /package/{src/lib/blocks/mockups/index.ts → dist/blocks/mockups/index.d.ts} +0 -0
  1189. /package/{src/lib/blocks/tab-nav/index.ts → dist/blocks/tab-nav/index.d.ts} +0 -0
  1190. /package/{src/lib → dist}/blocks/tab-nav/tab-nav.svelte +0 -0
  1191. /package/{src/lib → dist}/blocks/time-picker/time-input.svelte +0 -0
  1192. /package/{src/lib → dist}/blocks/time-picker/time-picker.svelte +0 -0
  1193. /package/{src/lib → dist}/blocks/time-picker/time-range-input.svelte +0 -0
  1194. /package/{src/lib → dist}/blocks/time-picker/time-range-picker.svelte +0 -0
  1195. /package/{src/lib → dist}/blocks/user-avatar/UserAvatar.svelte +0 -0
  1196. /package/{src/lib/blocks/user-avatar/index.ts → dist/blocks/user-avatar/index.d.ts} +0 -0
  1197. /package/{src/lib → dist}/blocks/verification-code-field/VerificationCodeField.svelte +0 -0
  1198. /package/{src/lib/blocks/verification-code-field/index.ts → dist/blocks/verification-code-field/index.d.ts} +0 -0
  1199. /package/{src/lib → dist}/components/accordion/components/accordion-content.svelte +0 -0
  1200. /package/{src/lib → dist}/components/accordion/components/accordion-item.svelte +0 -0
  1201. /package/{src/lib → dist}/components/accordion/components/accordion-trigger.svelte +0 -0
  1202. /package/{src/lib → dist}/components/accordion/components/accordion.svelte +0 -0
  1203. /package/{src/lib → dist}/components/alert/alert-action.svelte +0 -0
  1204. /package/{src/lib → dist}/components/alert/alert-description.svelte +0 -0
  1205. /package/{src/lib → dist}/components/alert/alert-title.svelte +0 -0
  1206. /package/{src/lib → dist}/components/alert/alert.svelte +0 -0
  1207. /package/{src/lib → dist}/components/badge/badge.svelte +0 -0
  1208. /package/{src/lib/components/badge/index.ts → dist/components/badge/index.d.ts} +0 -0
  1209. /package/{src/lib → dist}/components/breadcrumb/breadcrumb-ellipsis.svelte +0 -0
  1210. /package/{src/lib → dist}/components/breadcrumb/breadcrumb-item.svelte +0 -0
  1211. /package/{src/lib → dist}/components/breadcrumb/breadcrumb-link.svelte +0 -0
  1212. /package/{src/lib → dist}/components/breadcrumb/breadcrumb-list.svelte +0 -0
  1213. /package/{src/lib → dist}/components/breadcrumb/breadcrumb-page.svelte +0 -0
  1214. /package/{src/lib → dist}/components/breadcrumb/breadcrumb-separator.svelte +0 -0
  1215. /package/{src/lib → dist}/components/breadcrumb/breadcrumb.svelte +0 -0
  1216. /package/{src/lib → dist}/components/button/button.svelte +0 -0
  1217. /package/{src/lib → dist}/components/calendar/components/calendar-cell.svelte +0 -0
  1218. /package/{src/lib → dist}/components/calendar/components/calendar-day.svelte +0 -0
  1219. /package/{src/lib → dist}/components/calendar/components/calendar-grid-body.svelte +0 -0
  1220. /package/{src/lib → dist}/components/calendar/components/calendar-grid-head.svelte +0 -0
  1221. /package/{src/lib → dist}/components/calendar/components/calendar-grid-row.svelte +0 -0
  1222. /package/{src/lib → dist}/components/calendar/components/calendar-grid.svelte +0 -0
  1223. /package/{src/lib → dist}/components/calendar/components/calendar-head-cell.svelte +0 -0
  1224. /package/{src/lib → dist}/components/calendar/components/calendar-header.svelte +0 -0
  1225. /package/{src/lib → dist}/components/calendar/components/calendar-heading.svelte +0 -0
  1226. /package/{src/lib → dist}/components/calendar/components/calendar-month-select.svelte +0 -0
  1227. /package/{src/lib → dist}/components/calendar/components/calendar-next-button.svelte +0 -0
  1228. /package/{src/lib → dist}/components/calendar/components/calendar-prev-button.svelte +0 -0
  1229. /package/{src/lib → dist}/components/calendar/components/calendar-year-select.svelte +0 -0
  1230. /package/{src/lib → dist}/components/calendar/components/calendar.svelte +0 -0
  1231. /package/{src/lib/components/calendar/index.ts → dist/components/calendar/index.d.ts} +0 -0
  1232. /package/{src/lib → dist}/components/card/card-action.svelte +0 -0
  1233. /package/{src/lib → dist}/components/card/card-content.svelte +0 -0
  1234. /package/{src/lib → dist}/components/card/card-description.svelte +0 -0
  1235. /package/{src/lib → dist}/components/card/card-footer.svelte +0 -0
  1236. /package/{src/lib → dist}/components/card/card-header.svelte +0 -0
  1237. /package/{src/lib → dist}/components/card/card-title.svelte +0 -0
  1238. /package/{src/lib → dist}/components/card/card.svelte +0 -0
  1239. /package/{src/lib → dist}/components/carousel/carousel-arrow.svelte +0 -0
  1240. /package/{src/lib → dist}/components/carousel/carousel-content.svelte +0 -0
  1241. /package/{src/lib → dist}/components/carousel/carousel-dots.svelte +0 -0
  1242. /package/{src/lib → dist}/components/carousel/carousel-item.svelte +0 -0
  1243. /package/{src/lib → dist}/components/carousel/carousel-next.svelte +0 -0
  1244. /package/{src/lib → dist}/components/carousel/carousel-previous.svelte +0 -0
  1245. /package/{src/lib → dist}/components/carousel/carousel.svelte +0 -0
  1246. /package/{src/lib → dist}/components/chart/chart-container.svelte +0 -0
  1247. /package/{src/lib → dist}/components/chart/chart-style.svelte +0 -0
  1248. /package/{src/lib → dist}/components/chart/chart-tooltip.svelte +0 -0
  1249. /package/{src/lib → dist}/components/checkbox-native/checkbox.svelte +0 -0
  1250. /package/{src/lib → dist}/components/collapsible/components/collapsible-content.svelte +0 -0
  1251. /package/{src/lib → dist}/components/collapsible/components/collapsible-trigger.svelte +0 -0
  1252. /package/{src/lib → dist}/components/collapsible/components/collapsible.svelte +0 -0
  1253. /package/{src/lib → dist}/components/combobox/components/combobox-arrow.svelte +0 -0
  1254. /package/{src/lib → dist}/components/combobox/components/combobox-input.svelte +0 -0
  1255. /package/{src/lib → dist}/components/combobox/components/combobox-trigger.svelte +0 -0
  1256. /package/{src/lib → dist}/components/combobox/components/combobox.svelte +0 -0
  1257. /package/{src/lib → dist}/components/combobox/select/components/select-content-static.svelte +0 -0
  1258. /package/{src/lib → dist}/components/combobox/select/components/select-content.svelte +0 -0
  1259. /package/{src/lib → dist}/components/combobox/select/components/select-group-heading.svelte +0 -0
  1260. /package/{src/lib → dist}/components/combobox/select/components/select-group.svelte +0 -0
  1261. /package/{src/lib → dist}/components/combobox/select/components/select-hidden-input.svelte +0 -0
  1262. /package/{src/lib → dist}/components/combobox/select/components/select-item.svelte +0 -0
  1263. /package/{src/lib → dist}/components/combobox/select/components/select-scroll-down-button.svelte +0 -0
  1264. /package/{src/lib → dist}/components/combobox/select/components/select-scroll-up-button.svelte +0 -0
  1265. /package/{src/lib → dist}/components/combobox/select/components/select-trigger.svelte +0 -0
  1266. /package/{src/lib → dist}/components/combobox/select/components/select-value.svelte +0 -0
  1267. /package/{src/lib → dist}/components/combobox/select/components/select-viewport.svelte +0 -0
  1268. /package/{src/lib → dist}/components/combobox/select/components/select.svelte +0 -0
  1269. /package/{src/lib → dist}/components/command/command-dialog.svelte +0 -0
  1270. /package/{src/lib → dist}/components/command/components/_command-label.svelte +0 -0
  1271. /package/{src/lib → dist}/components/command/components/command-empty.svelte +0 -0
  1272. /package/{src/lib → dist}/components/command/components/command-group-heading.svelte +0 -0
  1273. /package/{src/lib → dist}/components/command/components/command-group-items.svelte +0 -0
  1274. /package/{src/lib → dist}/components/command/components/command-group.svelte +0 -0
  1275. /package/{src/lib → dist}/components/command/components/command-input.svelte +0 -0
  1276. /package/{src/lib → dist}/components/command/components/command-item.svelte +0 -0
  1277. /package/{src/lib → dist}/components/command/components/command-link-item.svelte +0 -0
  1278. /package/{src/lib → dist}/components/command/components/command-list.svelte +0 -0
  1279. /package/{src/lib → dist}/components/command/components/command-loading.svelte +0 -0
  1280. /package/{src/lib → dist}/components/command/components/command-separator.svelte +0 -0
  1281. /package/{src/lib → dist}/components/command/components/command-viewport.svelte +0 -0
  1282. /package/{src/lib → dist}/components/command/components/command.svelte +0 -0
  1283. /package/{src/lib → dist}/components/context-menu/components/context-menu-content-static.svelte +0 -0
  1284. /package/{src/lib → dist}/components/context-menu/components/context-menu-content.svelte +0 -0
  1285. /package/{src/lib → dist}/components/context-menu/components/context-menu-trigger.svelte +0 -0
  1286. /package/{src/lib → dist}/components/context-menu/components/context-menu.svelte +0 -0
  1287. /package/{src/lib → dist}/components/data-table/data-table-checkbox.svelte +0 -0
  1288. /package/{src/lib → dist}/components/data-table/data-table-sort-button.svelte +0 -0
  1289. /package/{src/lib → dist}/components/data-table/flex-render.svelte +0 -0
  1290. /package/{src/lib → dist}/components/data-table/table-cell.svelte +0 -0
  1291. /package/{src/lib → dist}/components/data-table/table-column-header.svelte +0 -0
  1292. /package/{src/lib → dist}/components/data-table/table-faceted-filter.svelte +0 -0
  1293. /package/{src/lib → dist}/components/data-table/table-pagination.svelte +0 -0
  1294. /package/{src/lib → dist}/components/data-table/table-priority-cell.svelte +0 -0
  1295. /package/{src/lib → dist}/components/data-table/table-row-actions.svelte +0 -0
  1296. /package/{src/lib → dist}/components/data-table/table-status-cell.svelte +0 -0
  1297. /package/{src/lib → dist}/components/data-table/table-title-cell.svelte +0 -0
  1298. /package/{src/lib → dist}/components/data-table/table-toolbar.svelte +0 -0
  1299. /package/{src/lib → dist}/components/data-table/table-view-options.svelte +0 -0
  1300. /package/{src/lib → dist}/components/date-field/components/date-field-hidden-input.svelte +0 -0
  1301. /package/{src/lib → dist}/components/date-field/components/date-field-input.svelte +0 -0
  1302. /package/{src/lib → dist}/components/date-field/components/date-field-label.svelte +0 -0
  1303. /package/{src/lib → dist}/components/date-field/components/date-field-segment.svelte +0 -0
  1304. /package/{src/lib → dist}/components/date-field/components/date-field.svelte +0 -0
  1305. /package/{src/lib → dist}/components/date-range-field/components/date-range-field-input.svelte +0 -0
  1306. /package/{src/lib → dist}/components/date-range-field/components/date-range-field-label.svelte +0 -0
  1307. /package/{src/lib → dist}/components/date-range-field/components/date-range-field.svelte +0 -0
  1308. /package/{src/lib → dist}/components/dialog/components/dialog-content.svelte +0 -0
  1309. /package/{src/lib → dist}/components/drawer/drawer-close.svelte +0 -0
  1310. /package/{src/lib → dist}/components/drawer/drawer-content.svelte +0 -0
  1311. /package/{src/lib → dist}/components/drawer/drawer-description.svelte +0 -0
  1312. /package/{src/lib → dist}/components/drawer/drawer-footer.svelte +0 -0
  1313. /package/{src/lib → dist}/components/drawer/drawer-header.svelte +0 -0
  1314. /package/{src/lib → dist}/components/drawer/drawer-nested.svelte +0 -0
  1315. /package/{src/lib → dist}/components/drawer/drawer-overlay.svelte +0 -0
  1316. /package/{src/lib → dist}/components/drawer/drawer-portal.svelte +0 -0
  1317. /package/{src/lib → dist}/components/drawer/drawer-title.svelte +0 -0
  1318. /package/{src/lib → dist}/components/drawer/drawer-trigger.svelte +0 -0
  1319. /package/{src/lib → dist}/components/dropdown-menu/components/dropdown-menu-content-static.svelte +0 -0
  1320. /package/{src/lib → dist}/components/dropdown-menu/components/dropdown-menu-content.svelte +0 -0
  1321. /package/{src/lib → dist}/components/empty/empty-content.svelte +0 -0
  1322. /package/{src/lib → dist}/components/empty/empty-description.svelte +0 -0
  1323. /package/{src/lib → dist}/components/empty/empty-header.svelte +0 -0
  1324. /package/{src/lib → dist}/components/empty/empty-media.svelte +0 -0
  1325. /package/{src/lib → dist}/components/empty/empty-title.svelte +0 -0
  1326. /package/{src/lib → dist}/components/empty/empty.svelte +0 -0
  1327. /package/{src/lib → dist}/components/field/field-content.svelte +0 -0
  1328. /package/{src/lib → dist}/components/field/field-description.svelte +0 -0
  1329. /package/{src/lib → dist}/components/field/field-error.svelte +0 -0
  1330. /package/{src/lib → dist}/components/field/field-group.svelte +0 -0
  1331. /package/{src/lib → dist}/components/field/field-label.svelte +0 -0
  1332. /package/{src/lib → dist}/components/field/field-legend.svelte +0 -0
  1333. /package/{src/lib → dist}/components/field/field-separator.svelte +0 -0
  1334. /package/{src/lib → dist}/components/field/field-set.svelte +0 -0
  1335. /package/{src/lib → dist}/components/field/field-title.svelte +0 -0
  1336. /package/{src/lib → dist}/components/field/field.svelte +0 -0
  1337. /package/{src/lib → dist}/components/input/file-input.svelte +0 -0
  1338. /package/{src/lib → dist}/components/input/input.svelte +0 -0
  1339. /package/{src/lib → dist}/components/item/item-actions.svelte +0 -0
  1340. /package/{src/lib → dist}/components/item/item-content.svelte +0 -0
  1341. /package/{src/lib → dist}/components/item/item-description.svelte +0 -0
  1342. /package/{src/lib → dist}/components/item/item-footer.svelte +0 -0
  1343. /package/{src/lib → dist}/components/item/item-group.svelte +0 -0
  1344. /package/{src/lib → dist}/components/item/item-header.svelte +0 -0
  1345. /package/{src/lib → dist}/components/item/item-media.svelte +0 -0
  1346. /package/{src/lib → dist}/components/item/item-separator.svelte +0 -0
  1347. /package/{src/lib → dist}/components/item/item-title.svelte +0 -0
  1348. /package/{src/lib → dist}/components/item/item.svelte +0 -0
  1349. /package/{src/lib → dist}/components/kbd/kbd-group.svelte +0 -0
  1350. /package/{src/lib → dist}/components/kbd/kbd.svelte +0 -0
  1351. /package/{src/lib/components/label/exports.ts → dist/components/label/exports.d.ts} +0 -0
  1352. /package/{src/lib/components/label/index.ts → dist/components/label/index.d.ts} +0 -0
  1353. /package/{src/lib → dist}/components/label/label.svelte +0 -0
  1354. /package/{src/lib/components/link-preview/index.ts → dist/components/link-preview/index.d.ts} +0 -0
  1355. /package/{src/lib → dist}/components/menu/components/menu-arrow.svelte +0 -0
  1356. /package/{src/lib → dist}/components/menu/components/menu-checkbox-group.svelte +0 -0
  1357. /package/{src/lib → dist}/components/menu/components/menu-checkbox-item.svelte +0 -0
  1358. /package/{src/lib → dist}/components/menu/components/menu-content.svelte +0 -0
  1359. /package/{src/lib → dist}/components/menu/components/menu-group-heading.svelte +0 -0
  1360. /package/{src/lib → dist}/components/menu/components/menu-group.svelte +0 -0
  1361. /package/{src/lib → dist}/components/menu/components/menu-item.svelte +0 -0
  1362. /package/{src/lib → dist}/components/menu/components/menu-radio-group.svelte +0 -0
  1363. /package/{src/lib → dist}/components/menu/components/menu-radio-item.svelte +0 -0
  1364. /package/{src/lib → dist}/components/menu/components/menu-separator.svelte +0 -0
  1365. /package/{src/lib → dist}/components/menu/components/menu-sub-content-static.svelte +0 -0
  1366. /package/{src/lib → dist}/components/menu/components/menu-sub-content.svelte +0 -0
  1367. /package/{src/lib → dist}/components/menu/components/menu-sub-trigger.svelte +0 -0
  1368. /package/{src/lib → dist}/components/menu/components/menu-sub.svelte +0 -0
  1369. /package/{src/lib → dist}/components/menu/components/menu-trigger.svelte +0 -0
  1370. /package/{src/lib → dist}/components/menu/components/menu.svelte +0 -0
  1371. /package/{src/lib → dist}/components/menubar/components/menubar-content-static.svelte +0 -0
  1372. /package/{src/lib → dist}/components/menubar/components/menubar-content.svelte +0 -0
  1373. /package/{src/lib → dist}/components/menubar/components/menubar-menu.svelte +0 -0
  1374. /package/{src/lib → dist}/components/menubar/components/menubar-trigger.svelte +0 -0
  1375. /package/{src/lib → dist}/components/menubar/components/menubar.svelte +0 -0
  1376. /package/{src/lib/components/menubar/index.ts → dist/components/menubar/index.d.ts} +0 -0
  1377. /package/{src/lib/components/meter/exports.ts → dist/components/meter/exports.d.ts} +0 -0
  1378. /package/{src/lib/components/meter/index.ts → dist/components/meter/index.d.ts} +0 -0
  1379. /package/{src/lib → dist}/components/navigation-menu/components/navigation-menu-content-impl.svelte +0 -0
  1380. /package/{src/lib → dist}/components/navigation-menu/components/navigation-menu-content.svelte +0 -0
  1381. /package/{src/lib → dist}/components/navigation-menu/components/navigation-menu-indicator-impl.svelte +0 -0
  1382. /package/{src/lib → dist}/components/navigation-menu/components/navigation-menu-indicator.svelte +0 -0
  1383. /package/{src/lib → dist}/components/navigation-menu/components/navigation-menu-item.svelte +0 -0
  1384. /package/{src/lib → dist}/components/navigation-menu/components/navigation-menu-link.svelte +0 -0
  1385. /package/{src/lib → dist}/components/navigation-menu/components/navigation-menu-list.svelte +0 -0
  1386. /package/{src/lib → dist}/components/navigation-menu/components/navigation-menu-sub.svelte +0 -0
  1387. /package/{src/lib → dist}/components/navigation-menu/components/navigation-menu-trigger.svelte +0 -0
  1388. /package/{src/lib → dist}/components/navigation-menu/components/navigation-menu-viewport.svelte +0 -0
  1389. /package/{src/lib → dist}/components/navigation-menu/components/navigation-menu.svelte +0 -0
  1390. /package/{src/lib → dist}/components/pagination/components/pagination-next-button.svelte +0 -0
  1391. /package/{src/lib → dist}/components/pagination/components/pagination-page.svelte +0 -0
  1392. /package/{src/lib → dist}/components/pagination/components/pagination-prev-button.svelte +0 -0
  1393. /package/{src/lib → dist}/components/pagination/components/pagination.svelte +0 -0
  1394. /package/{src/lib → dist}/components/pin-input/components/pin-input-cell.svelte +0 -0
  1395. /package/{src/lib → dist}/components/pin-input/components/pin-input.svelte +0 -0
  1396. /package/{src/lib/components/pin-input/index.ts → dist/components/pin-input/index.d.ts} +0 -0
  1397. /package/{src/lib → dist}/components/popover/components/popover-header.svelte +0 -0
  1398. /package/{src/lib → dist}/components/popover/components/popover-title.svelte +0 -0
  1399. /package/{src/lib/components/popover/index.ts → dist/components/popover/index.d.ts} +0 -0
  1400. /package/{src/lib/components/progress/index.ts → dist/components/progress/index.d.ts} +0 -0
  1401. /package/{src/lib → dist}/components/radio-group/radio-group-item.svelte +0 -0
  1402. /package/{src/lib → dist}/components/radio-group/radio-group.svelte +0 -0
  1403. /package/{src/lib → dist}/components/range-calendar/components/range-calendar-cell.svelte +0 -0
  1404. /package/{src/lib → dist}/components/range-calendar/components/range-calendar-day.svelte +0 -0
  1405. /package/{src/lib → dist}/components/range-calendar/components/range-calendar.svelte +0 -0
  1406. /package/{src/lib/components/range-calendar/index.ts → dist/components/range-calendar/index.d.ts} +0 -0
  1407. /package/{src/lib → dist}/components/resizable/resizable-handle.svelte +0 -0
  1408. /package/{src/lib → dist}/components/resizable/resizable-pane-group.svelte +0 -0
  1409. /package/{src/lib → dist}/components/scroll-area/components/scroll-area-corner-impl.svelte +0 -0
  1410. /package/{src/lib → dist}/components/scroll-area/components/scroll-area-corner.svelte +0 -0
  1411. /package/{src/lib → dist}/components/scroll-area/components/scroll-area-scrollbar-auto.svelte +0 -0
  1412. /package/{src/lib → dist}/components/scroll-area/components/scroll-area-scrollbar-hover.svelte +0 -0
  1413. /package/{src/lib → dist}/components/scroll-area/components/scroll-area-scrollbar-scroll.svelte +0 -0
  1414. /package/{src/lib → dist}/components/scroll-area/components/scroll-area-scrollbar-shared.svelte +0 -0
  1415. /package/{src/lib → dist}/components/scroll-area/components/scroll-area-scrollbar-visible.svelte +0 -0
  1416. /package/{src/lib → dist}/components/scroll-area/components/scroll-area-scrollbar-x.svelte +0 -0
  1417. /package/{src/lib → dist}/components/scroll-area/components/scroll-area-scrollbar-y.svelte +0 -0
  1418. /package/{src/lib → dist}/components/scroll-area/components/scroll-area-scrollbar.svelte +0 -0
  1419. /package/{src/lib → dist}/components/scroll-area/components/scroll-area-thumb-impl.svelte +0 -0
  1420. /package/{src/lib → dist}/components/scroll-area/components/scroll-area-thumb.svelte +0 -0
  1421. /package/{src/lib → dist}/components/scroll-area/components/scroll-area-viewport.svelte +0 -0
  1422. /package/{src/lib → dist}/components/scroll-area/components/scroll-area.svelte +0 -0
  1423. /package/{src/lib/components/scroll-area/index.ts → dist/components/scroll-area/index.d.ts} +0 -0
  1424. /package/{src/lib → dist}/components/select/select-opt-group.svelte +0 -0
  1425. /package/{src/lib → dist}/components/select/select-option.svelte +0 -0
  1426. /package/{src/lib → dist}/components/select/select.svelte +0 -0
  1427. /package/{src/lib → dist}/components/sheet/components/sheet-close.svelte +0 -0
  1428. /package/{src/lib → dist}/components/sheet/components/sheet-content.svelte +0 -0
  1429. /package/{src/lib → dist}/components/sheet/components/sheet-description.svelte +0 -0
  1430. /package/{src/lib → dist}/components/sheet/components/sheet-footer.svelte +0 -0
  1431. /package/{src/lib → dist}/components/sheet/components/sheet-header.svelte +0 -0
  1432. /package/{src/lib → dist}/components/sheet/components/sheet-overlay.svelte +0 -0
  1433. /package/{src/lib → dist}/components/sheet/components/sheet-title.svelte +0 -0
  1434. /package/{src/lib → dist}/components/sheet/components/sheet-trigger.svelte +0 -0
  1435. /package/{src/lib/components/sidebar/constants.ts → dist/components/sidebar/constants.js} +0 -0
  1436. /package/{src/lib → dist}/components/sidebar/sidebar-content.svelte +0 -0
  1437. /package/{src/lib → dist}/components/sidebar/sidebar-desktop-surface.svelte +0 -0
  1438. /package/{src/lib → dist}/components/sidebar/sidebar-footer.svelte +0 -0
  1439. /package/{src/lib → dist}/components/sidebar/sidebar-group-action.svelte +0 -0
  1440. /package/{src/lib → dist}/components/sidebar/sidebar-group-content.svelte +0 -0
  1441. /package/{src/lib → dist}/components/sidebar/sidebar-group-label.svelte +0 -0
  1442. /package/{src/lib → dist}/components/sidebar/sidebar-group.svelte +0 -0
  1443. /package/{src/lib → dist}/components/sidebar/sidebar-header.svelte +0 -0
  1444. /package/{src/lib → dist}/components/sidebar/sidebar-input.svelte +0 -0
  1445. /package/{src/lib → dist}/components/sidebar/sidebar-inset.svelte +0 -0
  1446. /package/{src/lib → dist}/components/sidebar/sidebar-menu-action.svelte +0 -0
  1447. /package/{src/lib → dist}/components/sidebar/sidebar-menu-badge.svelte +0 -0
  1448. /package/{src/lib → dist}/components/sidebar/sidebar-menu-button.svelte +0 -0
  1449. /package/{src/lib → dist}/components/sidebar/sidebar-menu-item.svelte +0 -0
  1450. /package/{src/lib → dist}/components/sidebar/sidebar-menu-skeleton.svelte +0 -0
  1451. /package/{src/lib → dist}/components/sidebar/sidebar-menu-sub-button.svelte +0 -0
  1452. /package/{src/lib → dist}/components/sidebar/sidebar-menu-sub-item.svelte +0 -0
  1453. /package/{src/lib → dist}/components/sidebar/sidebar-menu-sub.svelte +0 -0
  1454. /package/{src/lib → dist}/components/sidebar/sidebar-menu.svelte +0 -0
  1455. /package/{src/lib → dist}/components/sidebar/sidebar-provider.svelte +0 -0
  1456. /package/{src/lib → dist}/components/sidebar/sidebar-rail.svelte +0 -0
  1457. /package/{src/lib → dist}/components/sidebar/sidebar-separator.svelte +0 -0
  1458. /package/{src/lib → dist}/components/sidebar/sidebar-trigger.svelte +0 -0
  1459. /package/{src/lib → dist}/components/sidebar/sidebar.svelte +0 -0
  1460. /package/{src/lib → dist}/components/skeleton/skeleton.svelte +0 -0
  1461. /package/{src/lib → dist}/components/slider/components/slider-range.svelte +0 -0
  1462. /package/{src/lib → dist}/components/slider/components/slider-thumb-label.svelte +0 -0
  1463. /package/{src/lib → dist}/components/slider/components/slider-thumb.svelte +0 -0
  1464. /package/{src/lib → dist}/components/slider/components/slider-tick-label.svelte +0 -0
  1465. /package/{src/lib → dist}/components/slider/components/slider-tick.svelte +0 -0
  1466. /package/{src/lib → dist}/components/slider/components/slider.svelte +0 -0
  1467. /package/{src/lib → dist}/components/sonner/Toast.svelte +0 -0
  1468. /package/{src/lib → dist}/components/switch/switch.svelte +0 -0
  1469. /package/{src/lib → dist}/components/table/table-body.svelte +0 -0
  1470. /package/{src/lib → dist}/components/table/table-caption.svelte +0 -0
  1471. /package/{src/lib → dist}/components/table/table-cell.svelte +0 -0
  1472. /package/{src/lib → dist}/components/table/table-footer.svelte +0 -0
  1473. /package/{src/lib → dist}/components/table/table-head.svelte +0 -0
  1474. /package/{src/lib → dist}/components/table/table-header.svelte +0 -0
  1475. /package/{src/lib → dist}/components/table/table-row.svelte +0 -0
  1476. /package/{src/lib → dist}/components/table/table.svelte +0 -0
  1477. /package/{src/lib → dist}/components/tabs/components/tabs-content.svelte +0 -0
  1478. /package/{src/lib → dist}/components/tabs/components/tabs-list.svelte +0 -0
  1479. /package/{src/lib → dist}/components/tabs/components/tabs-trigger.svelte +0 -0
  1480. /package/{src/lib → dist}/components/tabs/components/tabs.svelte +0 -0
  1481. /package/{src/lib → dist}/components/textarea/textarea.svelte +0 -0
  1482. /package/{src/lib → dist}/components/theme-toggle/theme-toggle.svelte +0 -0
  1483. /package/{src/lib → dist}/components/time-field/components/time-field-hidden-input.svelte +0 -0
  1484. /package/{src/lib → dist}/components/time-field/components/time-field-input.svelte +0 -0
  1485. /package/{src/lib → dist}/components/time-field/components/time-field-label.svelte +0 -0
  1486. /package/{src/lib → dist}/components/time-field/components/time-field-segment.svelte +0 -0
  1487. /package/{src/lib → dist}/components/time-field/components/time-field.svelte +0 -0
  1488. /package/{src/lib → dist}/components/time-range-field/components/time-range-field-input.svelte +0 -0
  1489. /package/{src/lib → dist}/components/time-range-field/components/time-range-field-label.svelte +0 -0
  1490. /package/{src/lib → dist}/components/time-range-field/components/time-range-field.svelte +0 -0
  1491. /package/{src/lib/components/toggle/index.ts → dist/components/toggle/index.d.ts} +0 -0
  1492. /package/{src/lib → dist}/components/toggle-group/components/toggle-group-item.svelte +0 -0
  1493. /package/{src/lib → dist}/components/toggle-group/components/toggle-group.svelte +0 -0
  1494. /package/{src/lib → dist}/components/toolbar/components/toolbar-button.svelte +0 -0
  1495. /package/{src/lib → dist}/components/toolbar/components/toolbar-group-item.svelte +0 -0
  1496. /package/{src/lib → dist}/components/toolbar/components/toolbar-group.svelte +0 -0
  1497. /package/{src/lib → dist}/components/toolbar/components/toolbar-link.svelte +0 -0
  1498. /package/{src/lib → dist}/components/toolbar/components/toolbar.svelte +0 -0
  1499. /package/{src/lib/components/tooltip/utils.ts → dist/components/tooltip/utils.js} +0 -0
  1500. /package/{src/lib → dist}/icons/google-icon.svelte +0 -0
  1501. /package/{src/lib → dist}/icons/google-workspace.svelte +0 -0
  1502. /package/{src/lib → dist}/icons/icon.d.ts +0 -0
  1503. /package/{src/lib → dist}/icons/instagram.svelte +0 -0
  1504. /package/{src/lib → dist}/icons/instantly.svelte +0 -0
  1505. /package/{src/lib → dist}/icons/linkedin.svelte +0 -0
  1506. /package/{src/lib → dist}/icons/mailshake.svelte +0 -0
  1507. /package/{src/lib → dist}/icons/microsoft-365.svelte +0 -0
  1508. /package/{src/lib → dist}/icons/passcode.svelte +0 -0
  1509. /package/{src/lib → dist}/icons/replyio.svelte +0 -0
  1510. /package/{src/lib → dist}/icons/smartlead.svelte +0 -0
  1511. /package/{src/lib → dist}/icons/smtp.svelte +0 -0
  1512. /package/{src/lib → dist}/icons/x-logo.svelte +0 -0
  1513. /package/{src/lib → dist}/internal/floating-layer/components/floating-layer-arrow.svelte +0 -0
  1514. /package/{src/lib → dist}/internal/floating-layer/components/floating-layer-content-static.svelte +0 -0
  1515. /package/{src/lib → dist}/internal/floating-layer/components/floating-layer-content.svelte +0 -0
  1516. /package/{src/lib → dist}/internal/floating-layer/components/floating-layer.svelte +0 -0
  1517. /package/{src/lib/internal/floating-layer/index.ts → dist/internal/floating-layer/index.d.ts} +0 -0
  1518. /package/{src/lib/internal/paneforge/index.ts → dist/internal/paneforge/index.d.ts} +0 -0
  1519. /package/{src/lib/internal/paneforge/internal/constants.ts → dist/internal/paneforge/internal/constants.js} +0 -0
  1520. /package/{src/lib → dist}/internal/paneforge/pane-group.svelte +0 -0
  1521. /package/{src/lib → dist}/internal/paneforge/pane-resizer.svelte +0 -0
  1522. /package/{src/lib → dist}/internal/paneforge/pane.svelte +0 -0
  1523. /package/{src/lib/internal/popper-layer/index.ts → dist/internal/popper-layer/index.d.ts} +0 -0
  1524. /package/{src/lib → dist}/internal/popper-layer/popper-content.svelte +0 -0
  1525. /package/{src/lib → dist}/internal/popper-layer/popper-layer-inner.svelte +0 -0
  1526. /package/{src/lib → dist}/internal/popper-layer/popper-layer.svelte +0 -0
  1527. /package/{src/lib/internal/portal/index.ts → dist/internal/portal/index.d.ts} +0 -0
  1528. /package/{src/lib → dist}/internal/portal/portal.svelte +0 -0
  1529. /package/{src/lib/internal/table/index.ts → dist/internal/table/index.d.ts} +0 -0
  1530. /package/{src/lib/internal/tools/utils/events.ts → dist/internal/tools/utils/events.d.ts} +0 -0
  1531. /package/{src/lib/internal/tools/utils/index.ts → dist/internal/tools/utils/index.d.ts} +0 -0
@@ -1,1596 +0,0 @@
1
- import { attachRef, DOMContext, type ReadableBoxedValues, type WritableBoxedValues, type Box, boxWith } from '../../../internal/tools/index.js';
2
- import { on } from 'svelte/events';
3
- import { createContext, onDestroy, tick, untrack } from 'svelte';
4
- import { backward, forward, next, prev } from '../../../internal/arrays.js';
5
- import {
6
- boolToStr,
7
- boolToStrTrueOrUndef,
8
- boolToEmptyStrOrUndef,
9
- getDataOpenClosed,
10
- boolToTrueOrUndef,
11
- } from '../../../internal/attrs.js';
12
- import { kbd, FIRST_LAST_KEYS } from '../../../internal/kbd.js';
13
- import type {
14
- BitsEvent,
15
- BitsFocusEvent,
16
- BitsKeyboardEvent,
17
- BitsMouseEvent,
18
- BitsPointerEvent,
19
- OnChangeFn,
20
- WithRefOpts,
21
- RefAttachment,
22
- } from '../../../internal/types.js';
23
- import { isIOS } from '../../../internal/tools/utils/dom.js';
24
- import { createBitsAttrs } from '../../../internal/attrs.js';
25
- import { getFloatingContentCSSVars } from '../../../internal/floating-layer/index.js';
26
- import { Typeahead, textContentOf } from '../../../internal/typeahead.svelte.js';
27
- import { useOpenChangeComplete } from '../../../internal/animations-settled.svelte.js';
28
- import { DEV } from 'esm-env';
29
- import type { SelectValueSnippetProps } from './types.js';
30
-
31
- // prettier-ignore
32
- export const INTERACTION_KEYS: string[] = [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];
33
-
34
- export const CONTENT_MARGIN = 10;
35
-
36
- const selectAttrs = createBitsAttrs({
37
- component: 'select',
38
- parts: [
39
- 'trigger',
40
- 'content',
41
- 'item',
42
- 'viewport',
43
- 'scroll-up-button',
44
- 'scroll-down-button',
45
- 'group',
46
- 'group-label',
47
- 'separator',
48
- 'arrow',
49
- 'input',
50
- 'content-wrapper',
51
- 'item-text',
52
- 'value',
53
- ],
54
- });
55
-
56
- const [getSelectRoot, setSelectRoot] = createContext<SelectRoot>();
57
- const [getSelectGroup, setSelectGroup] = createContext<SelectGroupState>();
58
- const [getSelectContent, setSelectContent] = createContext<SelectContentState>();
59
-
60
- interface SelectBaseRootStateOpts
61
- extends
62
- ReadableBoxedValues<{
63
- disabled: boolean;
64
- required: boolean;
65
- name: string;
66
- loop: boolean;
67
- scrollAlignment: 'nearest' | 'center';
68
- items: { value: string; label: string; disabled?: boolean }[];
69
- allowDeselect: boolean;
70
- onOpenChangeComplete: OnChangeFn<boolean>;
71
- }>,
72
- WritableBoxedValues<{
73
- open: boolean;
74
- inputValue: string;
75
- }> {
76
- isCombobox: boolean;
77
- }
78
-
79
- abstract class SelectBaseRootState {
80
- readonly opts: SelectBaseRootStateOpts;
81
- touchedInput = $state(false);
82
- inputNode = $state<HTMLElement | null>(null);
83
- contentNode = $state<HTMLElement | null>(null);
84
- readonly #completion: { readonly pending: boolean };
85
- /** Rendered: open, or closing with the exit still settling — the window the popper layer's scroll lock covers. */
86
- readonly present = $derived.by(() => this.opts.open.current || this.#completion.pending);
87
- viewportNode = $state<HTMLElement | null>(null);
88
- triggerNode = $state<HTMLElement | null>(null);
89
- valueNode = $state<HTMLElement | null>(null);
90
- valueId = $state('');
91
- highlightedNode = $state<HTMLElement | null>(null);
92
- readonly highlightedValue = $derived.by(() => {
93
- if (!this.highlightedNode) return null;
94
- return this.highlightedNode.getAttribute('data-value');
95
- });
96
- readonly highlightedId = $derived.by(() => {
97
- if (!this.highlightedNode) return undefined;
98
- return this.highlightedNode.id;
99
- });
100
- readonly highlightedLabel = $derived.by(() => {
101
- if (!this.highlightedNode) return null;
102
- return this.highlightedNode.getAttribute('data-label');
103
- });
104
- contentIsPositioned = $state(false);
105
- isKeyboard = $state(false);
106
- isCombobox = false;
107
- domContext = new DOMContext(() => null);
108
-
109
- constructor(opts: SelectBaseRootStateOpts) {
110
- this.opts = opts;
111
- this.isCombobox = opts.isCombobox;
112
-
113
- // Content stays mounted through its exit transition (CSS owns the motion; the closed state
114
- // is the content's `contentStyle`); completion is settle-based on the content node.
115
- this.#completion = useOpenChangeComplete(
116
- () => this.opts.open.current,
117
- () => this.contentNode,
118
- (open) => this.opts.onOpenChangeComplete.current(open),
119
- );
120
-
121
- $effect.pre(() => {
122
- if (!this.opts.open.current) {
123
- this.setHighlightedNode(null);
124
- }
125
- });
126
- }
127
-
128
- setHighlightedNode(node: HTMLElement | null, initial = false) {
129
- this.highlightedNode = node;
130
- if (node && (this.isKeyboard || initial)) {
131
- this.scrollHighlightedNodeIntoView(node);
132
- }
133
- }
134
-
135
- scrollHighlightedNodeIntoView(node: HTMLElement) {
136
- if (!this.viewportNode || !this.contentIsPositioned) return;
137
- node.scrollIntoView({ block: this.opts.scrollAlignment.current });
138
- }
139
-
140
- getCandidateNodes(): HTMLElement[] {
141
- const node = this.contentNode;
142
- if (!node) return [];
143
- return Array.from(node.querySelectorAll<HTMLElement>(`[${this.getBitsAttr('item')}]:not([data-disabled])`));
144
- }
145
-
146
- setHighlightedToFirstCandidate(initial = false) {
147
- this.setHighlightedNode(null);
148
-
149
- let nodes = this.getCandidateNodes();
150
- if (!nodes.length) return;
151
-
152
- // don't consider nodes that aren't visible within the viewport
153
- if (this.viewportNode) {
154
- const viewportRect = this.viewportNode.getBoundingClientRect();
155
-
156
- nodes = nodes.filter((node) => {
157
- if (!this.viewportNode) return false;
158
-
159
- const nodeRect = node.getBoundingClientRect();
160
-
161
- const isNodeFullyVisible =
162
- nodeRect.right <= viewportRect.right &&
163
- nodeRect.left >= viewportRect.left &&
164
- nodeRect.bottom <= viewportRect.bottom &&
165
- nodeRect.top >= viewportRect.top;
166
-
167
- return isNodeFullyVisible;
168
- });
169
- }
170
-
171
- this.setHighlightedNode(nodes[0]!, initial);
172
- }
173
-
174
- getNodeByValue(value: string): HTMLElement | null {
175
- const candidateNodes = this.getCandidateNodes();
176
- return candidateNodes.find((node) => node.dataset.value === value) ?? null;
177
- }
178
-
179
- /**
180
- * Resolves the display label for a value: `items` entry when present, otherwise the
181
- * mounted item's `data-label` or its text content.
182
- */
183
- getLabelForValue(value: string): string {
184
- if (value === '') return '';
185
- const fromItems = this.opts.items.current.find((item) => item.value === value)?.label;
186
- if (fromItems !== undefined) return fromItems;
187
- const node = this.getNodeByValue(value);
188
- if (node) {
189
- const dataLabel = node.getAttribute('data-label');
190
- if (dataLabel !== null && dataLabel !== '') return dataLabel;
191
- return node.textContent?.trim() ?? value;
192
- }
193
- return value;
194
- }
195
-
196
- setOpen(open: boolean) {
197
- this.opts.open.current = open;
198
- }
199
-
200
- toggleOpen() {
201
- this.opts.open.current = !this.opts.open.current;
202
- }
203
-
204
- handleOpen() {
205
- this.setOpen(true);
206
- }
207
-
208
- handleClose() {
209
- this.setHighlightedNode(null);
210
- this.setOpen(false);
211
- }
212
-
213
- toggleMenu() {
214
- this.toggleOpen();
215
- }
216
-
217
- getBitsAttr: typeof selectAttrs.getAttr = (part) => {
218
- return selectAttrs.getAttr(part, this.isCombobox ? 'combobox' : undefined);
219
- };
220
- }
221
-
222
- interface SelectSingleRootStateOpts
223
- extends
224
- SelectBaseRootStateOpts,
225
- WritableBoxedValues<{
226
- value: string;
227
- }> {}
228
-
229
- export class SelectSingleRootState extends SelectBaseRootState {
230
- override readonly opts: SelectSingleRootStateOpts;
231
- readonly isMulti = false as const;
232
- readonly hasValue = $derived.by(() => this.opts.value.current !== '');
233
- readonly currentLabel = $derived.by(() => {
234
- if (!this.opts.items.current.length) return '';
235
- return this.opts.items.current.find((item) => item.value === this.opts.value.current)?.label ?? '';
236
- });
237
- readonly candidateLabels = $derived.by(() => {
238
- if (!this.opts.items.current.length) return [];
239
- const filteredItems = this.opts.items.current.filter((item) => !item.disabled);
240
- return filteredItems.map((item) => item.label);
241
- });
242
- readonly dataTypeaheadEnabled = $derived.by(() => {
243
- if (this.isMulti) return false;
244
- if (this.opts.items.current.length === 0) return false;
245
- return true;
246
- });
247
-
248
- constructor(opts: SelectSingleRootStateOpts) {
249
- super(opts);
250
-
251
- this.opts = opts;
252
-
253
- $effect(() => {
254
- if (!this.opts.open.current && this.highlightedNode) {
255
- this.setHighlightedNode(null);
256
- }
257
- });
258
-
259
- $effect(() => {
260
- this.opts.open.current;
261
- untrack(() => {
262
- if (!this.opts.open.current) return;
263
- this.setInitialHighlightedNode();
264
- });
265
- });
266
- }
267
-
268
- includesItem(itemValue: string) {
269
- return this.opts.value.current === itemValue;
270
- }
271
-
272
- toggleItem(itemValue: string, itemLabel: string = itemValue) {
273
- const newValue = this.includesItem(itemValue) ? '' : itemValue;
274
- this.opts.value.current = newValue;
275
- if (newValue !== '') {
276
- this.opts.inputValue.current = itemLabel;
277
- }
278
- }
279
-
280
- setInitialHighlightedNode() {
281
- tick().then(() => {
282
- if (this.highlightedNode && this.domContext.getDocument().contains(this.highlightedNode)) return;
283
- if (this.opts.value.current !== '') {
284
- const node = this.getNodeByValue(this.opts.value.current);
285
- if (node) {
286
- this.setHighlightedNode(node, true);
287
- return;
288
- }
289
- }
290
- // if no value is set, we want to highlight the first item
291
- this.setHighlightedToFirstCandidate(true);
292
- });
293
- }
294
- }
295
-
296
- interface SelectMultipleRootStateOpts
297
- extends
298
- SelectBaseRootStateOpts,
299
- WritableBoxedValues<{
300
- value: string[];
301
- }> {}
302
-
303
- class SelectMultipleRootState extends SelectBaseRootState {
304
- override readonly opts: SelectMultipleRootStateOpts;
305
- readonly isMulti = true as const;
306
- readonly hasValue = $derived.by(() => this.opts.value.current.length > 0);
307
-
308
- constructor(opts: SelectMultipleRootStateOpts) {
309
- super(opts);
310
-
311
- this.opts = opts;
312
-
313
- $effect(() => {
314
- if (!this.opts.open.current && this.highlightedNode) {
315
- this.setHighlightedNode(null);
316
- }
317
- });
318
-
319
- $effect(() => {
320
- this.opts.open.current;
321
- untrack(() => {
322
- if (!this.opts.open.current) return;
323
- this.setInitialHighlightedNode();
324
- });
325
- });
326
- }
327
-
328
- includesItem(itemValue: string) {
329
- return this.opts.value.current.includes(itemValue);
330
- }
331
-
332
- toggleItem(itemValue: string, itemLabel: string = itemValue) {
333
- if (this.includesItem(itemValue)) {
334
- this.opts.value.current = this.opts.value.current.filter((v) => v !== itemValue);
335
- } else {
336
- this.opts.value.current = [...this.opts.value.current, itemValue];
337
- }
338
- this.opts.inputValue.current = itemLabel;
339
- }
340
-
341
- setInitialHighlightedNode() {
342
- tick().then(() => {
343
- if (!this.domContext) return;
344
- if (this.highlightedNode && this.domContext.getDocument().contains(this.highlightedNode)) return;
345
- if (this.opts.value.current.length && this.opts.value.current[0] !== '') {
346
- const node = this.getNodeByValue(this.opts.value.current[0]!);
347
- if (node) {
348
- this.setHighlightedNode(node, true);
349
- return;
350
- }
351
- }
352
- // if no value is set, we want to highlight the first item
353
- this.setHighlightedToFirstCandidate(true);
354
- });
355
- }
356
- }
357
-
358
- interface SelectRootStateOpts
359
- extends
360
- ReadableBoxedValues<{
361
- disabled: boolean;
362
- required: boolean;
363
- loop: boolean;
364
- scrollAlignment: 'nearest' | 'center';
365
- name: string;
366
- items: { value: string; label: string; disabled?: boolean }[];
367
- allowDeselect: boolean;
368
- onOpenChangeComplete: OnChangeFn<boolean>;
369
- }>,
370
- WritableBoxedValues<{
371
- open: boolean;
372
- inputValue: string;
373
- }> {
374
- isCombobox: boolean;
375
- type: 'single' | 'multiple';
376
- value: Box<string> | Box<string[]>;
377
- }
378
-
379
- export class SelectRootState {
380
- static create(props: SelectRootStateOpts): SelectRoot {
381
- const { type, ...rest } = props;
382
-
383
- const rootState =
384
- type === 'single'
385
- ? new SelectSingleRootState(rest as SelectSingleRootStateOpts)
386
- : new SelectMultipleRootState(rest as SelectMultipleRootStateOpts);
387
-
388
- return setSelectRoot(rootState);
389
- }
390
- }
391
-
392
- type SelectRoot = SelectSingleRootState | SelectMultipleRootState;
393
-
394
- type SelectValueStateProps = WithRefOpts<
395
- ReadableBoxedValues<{
396
- placeholder: string | null | undefined;
397
- }>
398
- >;
399
-
400
- export class SelectValueState {
401
- static create(opts: SelectValueStateProps) {
402
- return new SelectValueState(opts, getSelectRoot());
403
- }
404
- readonly root: SelectRoot;
405
- readonly opts: SelectValueStateProps;
406
- readonly attachment: RefAttachment;
407
-
408
- constructor(opts: SelectValueStateProps, root: SelectRoot) {
409
- this.root = root;
410
- this.opts = opts;
411
- this.attachment = attachRef(opts.ref, (v) => (this.root.valueNode = v));
412
- this.setValue = this.setValue.bind(this);
413
- }
414
-
415
- setValue(value: string | string[]) {
416
- if (this.root.isMulti && !Array.isArray(value)) {
417
- if (DEV) throw new Error(`Expected an array of strings passed to \`setValue\` got ${typeof value}.`);
418
- return;
419
- }
420
- if (!this.root.isMulti && typeof value !== 'string') {
421
- if (DEV) throw new Error(`Expected a string passed to \`setValue\` got ${typeof value}.`);
422
- return;
423
- }
424
- this.root.opts.value.current = value;
425
- }
426
-
427
- // this way consumers get type narrowing for the value on `type`
428
- readonly snippetProps: SelectValueSnippetProps = $derived.by(() => {
429
- if (this.root.isMulti) {
430
- return {
431
- selection: {
432
- type: 'multiple' as const,
433
- selected:
434
- this.root.opts.value.current.length > 0
435
- ? this.root.opts.value.current.map((value) => ({
436
- value,
437
- label: this.root.getLabelForValue(value),
438
- }))
439
- : [],
440
- setValue: this.setValue,
441
- },
442
- placeholder: this.opts.placeholder.current ?? null,
443
- disabled: this.root.opts.disabled.current,
444
- };
445
- }
446
- const value = this.root.opts.value.current;
447
- return {
448
- selection: {
449
- type: 'single' as const,
450
- selected: value !== '' ? { value, label: value === '' ? '' : this.root.getLabelForValue(value) } : undefined,
451
- setValue: this.setValue,
452
- },
453
- placeholder: this.opts.placeholder.current ?? null,
454
- disabled: this.root.opts.disabled.current,
455
- };
456
- });
457
-
458
- readonly props = $derived.by(() => ({
459
- id: this.opts.id.current,
460
- 'data-placeholder': this.root.hasValue ? undefined : '',
461
- 'data-select-value': '',
462
- ...this.attachment,
463
- }));
464
- }
465
-
466
- interface SelectInputStateOpts
467
- extends
468
- WithRefOpts,
469
- ReadableBoxedValues<{
470
- clearOnDeselect: boolean;
471
- }> {}
472
-
473
- export class SelectInputState {
474
- static create(opts: SelectInputStateOpts) {
475
- return new SelectInputState(opts, getSelectRoot());
476
- }
477
- readonly opts: SelectInputStateOpts;
478
- readonly root: SelectRoot;
479
- readonly attachment: RefAttachment;
480
-
481
- constructor(opts: SelectInputStateOpts, root: SelectRoot) {
482
- this.opts = opts;
483
- this.root = root;
484
- this.attachment = attachRef(opts.ref, (v) => (this.root.inputNode = v));
485
- this.root.domContext = new DOMContext(opts.ref);
486
-
487
- this.onkeydown = this.onkeydown.bind(this);
488
- this.oninput = this.oninput.bind(this);
489
-
490
- let prevValue: string | string[] | undefined = undefined;
491
- $effect(() => {
492
- const value = this.root.opts.value.current;
493
- const clearOnDeselect = this.opts.clearOnDeselect.current;
494
- untrack(() => {
495
- if (!clearOnDeselect) return;
496
- if (Array.isArray(value) && Array.isArray(prevValue)) {
497
- if (value.length === 0 && prevValue.length !== 0) {
498
- this.root.opts.inputValue.current = '';
499
- }
500
- } else if (value === '' && prevValue !== '') {
501
- this.root.opts.inputValue.current = '';
502
- }
503
- });
504
- prevValue = value;
505
- });
506
- }
507
-
508
- onkeydown(e: BitsKeyboardEvent) {
509
- this.root.isKeyboard = true;
510
- if (e.key === kbd.ESCAPE) return;
511
-
512
- // prevent arrow up/down from moving the position of the cursor in the input
513
- if (e.key === kbd.ARROW_UP || e.key === kbd.ARROW_DOWN) e.preventDefault();
514
- if (!this.root.opts.open.current) {
515
- if (INTERACTION_KEYS.includes(e.key)) return;
516
- if (e.key === kbd.TAB) return;
517
- if (e.key === kbd.BACKSPACE && this.root.opts.inputValue.current === '') return;
518
- this.root.handleOpen();
519
- // we need to wait for a tick after the menu opens to ensure the highlighted nodes are
520
- // set correctly.
521
- if (this.root.hasValue) return;
522
- const candidateNodes = this.root.getCandidateNodes();
523
- if (!candidateNodes.length) return;
524
-
525
- if (e.key === kbd.ARROW_DOWN) {
526
- const firstCandidate = candidateNodes[0]!;
527
- this.root.setHighlightedNode(firstCandidate);
528
- } else if (e.key === kbd.ARROW_UP) {
529
- const lastCandidate = candidateNodes[candidateNodes.length - 1]!;
530
- this.root.setHighlightedNode(lastCandidate);
531
- }
532
- return;
533
- }
534
-
535
- if (e.key === kbd.TAB) {
536
- this.root.handleClose();
537
- return;
538
- }
539
-
540
- if (e.key === kbd.ENTER && !e.isComposing) {
541
- e.preventDefault();
542
-
543
- const isCurrentSelectedValue = this.root.highlightedValue === this.root.opts.value.current;
544
-
545
- if (!this.root.opts.allowDeselect.current && isCurrentSelectedValue && !this.root.isMulti) {
546
- this.root.handleClose();
547
- return;
548
- }
549
-
550
- if (this.root.highlightedValue && this.root.highlightedNode && this.root.highlightedNode.isConnected) {
551
- this.root.toggleItem(this.root.highlightedValue, this.root.highlightedLabel ?? undefined);
552
- }
553
- if (!this.root.isMulti && !isCurrentSelectedValue) {
554
- this.root.handleClose();
555
- }
556
- }
557
-
558
- if (e.key === kbd.ARROW_UP && e.altKey) {
559
- this.root.handleClose();
560
- }
561
-
562
- if (FIRST_LAST_KEYS.includes(e.key)) {
563
- e.preventDefault();
564
- const candidateNodes = this.root.getCandidateNodes();
565
- const currHighlightedNode = this.root.highlightedNode;
566
- const currIndex = currHighlightedNode ? candidateNodes.indexOf(currHighlightedNode) : -1;
567
-
568
- const loop = this.root.opts.loop.current;
569
- let nextItem: HTMLElement | undefined;
570
-
571
- if (e.key === kbd.ARROW_DOWN) {
572
- nextItem = next(candidateNodes, currIndex, loop);
573
- } else if (e.key === kbd.ARROW_UP) {
574
- nextItem = prev(candidateNodes, currIndex, loop);
575
- } else if (e.key === kbd.PAGE_DOWN) {
576
- nextItem = forward(candidateNodes, currIndex, 10, loop);
577
- } else if (e.key === kbd.PAGE_UP) {
578
- nextItem = backward(candidateNodes, currIndex, 10, loop);
579
- } else if (e.key === kbd.HOME) {
580
- nextItem = candidateNodes[0];
581
- } else if (e.key === kbd.END) {
582
- nextItem = candidateNodes[candidateNodes.length - 1];
583
- }
584
- if (!nextItem) return;
585
- this.root.setHighlightedNode(nextItem);
586
- return;
587
- }
588
-
589
- if (INTERACTION_KEYS.includes(e.key)) return;
590
- if (!this.root.highlightedNode) {
591
- this.root.setHighlightedToFirstCandidate();
592
- }
593
- }
594
-
595
- oninput(e: BitsEvent<Event, HTMLInputElement>) {
596
- this.root.opts.inputValue.current = e.currentTarget.value;
597
- this.root.setHighlightedToFirstCandidate();
598
- }
599
-
600
- readonly props = $derived.by(
601
- () =>
602
- ({
603
- id: this.opts.id.current,
604
- role: 'combobox',
605
- disabled: this.root.opts.disabled.current ? true : undefined,
606
- 'aria-activedescendant': this.root.highlightedId,
607
- 'aria-autocomplete': 'list',
608
- 'aria-expanded': boolToStr(this.root.opts.open.current),
609
- 'data-state': getDataOpenClosed(this.root.opts.open.current),
610
- 'data-disabled': boolToEmptyStrOrUndef(this.root.opts.disabled.current),
611
- onkeydown: this.onkeydown,
612
- oninput: this.oninput,
613
- [this.root.getBitsAttr('input')]: '',
614
- ...this.attachment,
615
- }) as const,
616
- );
617
- }
618
-
619
- interface SelectComboTriggerStateOpts extends WithRefOpts {}
620
-
621
- export class SelectComboTriggerState {
622
- static create(opts: SelectComboTriggerStateOpts) {
623
- return new SelectComboTriggerState(opts, getSelectRoot());
624
- }
625
- readonly opts: SelectComboTriggerStateOpts;
626
- readonly root: SelectBaseRootState;
627
- readonly attachment: RefAttachment;
628
-
629
- constructor(opts: SelectComboTriggerStateOpts, root: SelectBaseRootState) {
630
- this.opts = opts;
631
- this.root = root;
632
- this.attachment = attachRef(opts.ref);
633
- this.onkeydown = this.onkeydown.bind(this);
634
- this.onpointerdown = this.onpointerdown.bind(this);
635
- }
636
-
637
- onkeydown(e: BitsKeyboardEvent) {
638
- if (!this.root.domContext) return;
639
- if (e.key === kbd.ENTER || e.key === kbd.SPACE) {
640
- e.preventDefault();
641
- if (this.root.domContext.getActiveElement() !== this.root.inputNode) {
642
- this.root.inputNode?.focus();
643
- }
644
- this.root.toggleMenu();
645
- }
646
- }
647
-
648
- /**
649
- * `pointerdown` fires before the `focus` event, so we can prevent the default
650
- * behavior of focusing the button and keep focus on the input.
651
- */
652
- onpointerdown(e: BitsPointerEvent) {
653
- if (this.root.opts.disabled.current || !this.root.domContext) return;
654
- e.preventDefault();
655
- if (this.root.domContext.getActiveElement() !== this.root.inputNode) {
656
- this.root.inputNode?.focus();
657
- }
658
- this.root.toggleMenu();
659
- }
660
-
661
- readonly props = $derived.by(
662
- () =>
663
- ({
664
- id: this.opts.id.current,
665
- disabled: this.root.opts.disabled.current ? true : undefined,
666
- 'aria-haspopup': 'listbox',
667
- 'data-state': getDataOpenClosed(this.root.opts.open.current),
668
- 'data-disabled': boolToEmptyStrOrUndef(this.root.opts.disabled.current),
669
- [this.root.getBitsAttr('trigger')]: '',
670
- onpointerdown: this.onpointerdown,
671
- onkeydown: this.onkeydown,
672
- ...this.attachment,
673
- }) as const,
674
- );
675
- }
676
-
677
- interface SelectTriggerStateOpts extends WithRefOpts {}
678
-
679
- export class SelectTriggerState {
680
- static create(opts: SelectTriggerStateOpts) {
681
- return new SelectTriggerState(opts, getSelectRoot());
682
- }
683
- readonly opts: SelectTriggerStateOpts;
684
- readonly root: SelectRoot;
685
- readonly attachment: RefAttachment;
686
- readonly #typeahead: Typeahead<HTMLElement>;
687
- readonly #labelTypeahead: Typeahead<string>;
688
-
689
- constructor(opts: SelectTriggerStateOpts, root: SelectRoot) {
690
- this.opts = opts;
691
- this.root = root;
692
- this.attachment = attachRef(opts.ref, (v) => (this.root.triggerNode = v));
693
- this.root.domContext = new DOMContext(opts.ref);
694
-
695
- this.#typeahead = new Typeahead({
696
- getSearchText: textContentOf,
697
- getCurrentCandidate: () => this.root.highlightedNode,
698
- onMatch: (node) => {
699
- this.root.setHighlightedNode(node);
700
- },
701
- getWindow: () => this.root.domContext.getWindow(),
702
- });
703
-
704
- this.#labelTypeahead = new Typeahead({
705
- getSearchText: (label) => label,
706
- getCurrentCandidate: () => {
707
- if (this.root.isMulti) return '';
708
- return this.root.currentLabel;
709
- },
710
- onMatch: (label: string) => {
711
- if (this.root.isMulti) return;
712
- if (!this.root.opts.items.current) return;
713
- const matchedItem = this.root.opts.items.current.find((item) => item.label === label);
714
- if (!matchedItem) return;
715
- this.root.opts.value.current = matchedItem.value;
716
- },
717
- getWindow: () => this.root.domContext.getWindow(),
718
- });
719
-
720
- this.onkeydown = this.onkeydown.bind(this);
721
- this.onpointerdown = this.onpointerdown.bind(this);
722
- this.onpointerup = this.onpointerup.bind(this);
723
- this.onclick = this.onclick.bind(this);
724
- }
725
-
726
- #handleOpen() {
727
- this.root.opts.open.current = true;
728
- this.#labelTypeahead.reset();
729
- this.#typeahead.reset();
730
- }
731
-
732
- #handlePointerOpen(_: PointerEvent) {
733
- this.#handleOpen();
734
- }
735
-
736
- /**
737
- * Logic used to handle keyboard selection/deselection.
738
- *
739
- * If it returns true, it means the item was selected and whatever is calling
740
- * this function should return early
741
- *
742
- */
743
- #handleKeyboardSelection() {
744
- const isCurrentSelectedValue = this.root.highlightedValue === this.root.opts.value.current;
745
-
746
- if (!this.root.opts.allowDeselect.current && isCurrentSelectedValue && !this.root.isMulti) {
747
- this.root.handleClose();
748
- return true;
749
- }
750
-
751
- // "" is a valid value for a select item so we need to check for that
752
- if (this.root.highlightedValue !== null) {
753
- this.root.toggleItem(this.root.highlightedValue, this.root.highlightedLabel ?? undefined);
754
- }
755
-
756
- if (!this.root.isMulti && !isCurrentSelectedValue) {
757
- this.root.handleClose();
758
- return true;
759
- }
760
-
761
- return false;
762
- }
763
-
764
- onkeydown(e: BitsKeyboardEvent) {
765
- this.root.isKeyboard = true;
766
- if (e.key === kbd.ARROW_UP || e.key === kbd.ARROW_DOWN) e.preventDefault();
767
-
768
- if (!this.root.opts.open.current) {
769
- if (e.key === kbd.ENTER || e.key === kbd.SPACE || e.key === kbd.ARROW_DOWN || e.key === kbd.ARROW_UP) {
770
- e.preventDefault();
771
- this.root.handleOpen();
772
- } else if (!this.root.isMulti && this.root.dataTypeaheadEnabled) {
773
- this.#labelTypeahead.handleKey(e.key, this.root.candidateLabels);
774
- return;
775
- }
776
-
777
- // we need to wait for a tick after the menu opens to ensure
778
- // the highlighted nodes are set correctly
779
- if (this.root.hasValue) return;
780
- const candidateNodes = this.root.getCandidateNodes();
781
- if (!candidateNodes.length) return;
782
-
783
- if (e.key === kbd.ARROW_DOWN) {
784
- const firstCandidate = candidateNodes[0]!;
785
- this.root.setHighlightedNode(firstCandidate);
786
- } else if (e.key === kbd.ARROW_UP) {
787
- const lastCandidate = candidateNodes[candidateNodes.length - 1]!;
788
- this.root.setHighlightedNode(lastCandidate);
789
- }
790
- return;
791
- }
792
-
793
- if (e.key === kbd.TAB) {
794
- this.root.handleClose();
795
- return;
796
- }
797
-
798
- if (
799
- (e.key === kbd.ENTER ||
800
- // if we're currently "typing ahead", we don't want to select the item
801
- // just yet as the item the user is trying to get to may have a space in it,
802
- // so we defer handling the close for this case until further down
803
- (e.key === kbd.SPACE && this.#typeahead.search === '')) &&
804
- !e.isComposing
805
- ) {
806
- e.preventDefault();
807
- const shouldReturn = this.#handleKeyboardSelection();
808
- if (shouldReturn) return;
809
- }
810
-
811
- if (e.key === kbd.ARROW_UP && e.altKey) {
812
- this.root.handleClose();
813
- }
814
-
815
- if (FIRST_LAST_KEYS.includes(e.key)) {
816
- e.preventDefault();
817
- const candidateNodes = this.root.getCandidateNodes();
818
- const currHighlightedNode = this.root.highlightedNode;
819
- const currIndex = currHighlightedNode ? candidateNodes.indexOf(currHighlightedNode) : -1;
820
-
821
- const loop = this.root.opts.loop.current;
822
- let nextItem: HTMLElement | undefined;
823
-
824
- if (e.key === kbd.ARROW_DOWN) {
825
- nextItem = next(candidateNodes, currIndex, loop);
826
- } else if (e.key === kbd.ARROW_UP) {
827
- nextItem = prev(candidateNodes, currIndex, loop);
828
- } else if (e.key === kbd.PAGE_DOWN) {
829
- nextItem = forward(candidateNodes, currIndex, 10, loop);
830
- } else if (e.key === kbd.PAGE_UP) {
831
- nextItem = backward(candidateNodes, currIndex, 10, loop);
832
- } else if (e.key === kbd.HOME) {
833
- nextItem = candidateNodes[0];
834
- } else if (e.key === kbd.END) {
835
- nextItem = candidateNodes[candidateNodes.length - 1];
836
- }
837
- if (!nextItem) return;
838
- this.root.setHighlightedNode(nextItem);
839
- return;
840
- }
841
- const isModifierKey = e.ctrlKey || e.altKey || e.metaKey;
842
- const isCharacterKey = e.key.length === 1;
843
- const isSpaceKey = e.key === kbd.SPACE;
844
-
845
- const candidateNodes = this.root.getCandidateNodes();
846
-
847
- if (e.key === kbd.TAB) return;
848
-
849
- if (!isModifierKey && (isCharacterKey || isSpaceKey)) {
850
- const matchedNode = this.#typeahead.handleKey(e.key, candidateNodes);
851
- if (!matchedNode && isSpaceKey) {
852
- e.preventDefault();
853
- this.#handleKeyboardSelection();
854
- }
855
- return;
856
- }
857
-
858
- if (!this.root.highlightedNode) {
859
- this.root.setHighlightedToFirstCandidate();
860
- }
861
- }
862
-
863
- onclick(e: BitsMouseEvent) {
864
- // While browsers generally have no issue focusing the trigger when clicking
865
- // on a label, Safari seems to struggle with the fact that there's no `onClick`.
866
- // We force `focus` in this case. Note: this doesn't create any other side-effect
867
- // because we are preventing default in `onpointerdown` so effectively
868
- // this only runs for a label 'click'
869
- const currTarget = e.currentTarget as HTMLElement;
870
- currTarget.focus();
871
- }
872
-
873
- onpointerdown(e: BitsPointerEvent) {
874
- if (this.root.opts.disabled.current) return;
875
- // prevent opening on touch down which can be triggered when scrolling on touch devices
876
- if (e.pointerType === 'touch') return e.preventDefault();
877
-
878
- // prevent implicit pointer capture
879
- const target = e.target as HTMLElement;
880
- if (target?.hasPointerCapture(e.pointerId)) {
881
- target?.releasePointerCapture(e.pointerId);
882
- }
883
-
884
- // only call the handle if it's a left click, since pointerdown is triggered
885
- // by right clicks as well, but not when ctrl is pressed
886
- if (e.button === 0 && e.ctrlKey === false) {
887
- if (this.root.opts.open.current === false) {
888
- this.#handlePointerOpen(e);
889
- } else {
890
- this.root.handleClose();
891
- }
892
- }
893
- }
894
-
895
- onpointerup(e: BitsPointerEvent) {
896
- if (this.root.opts.disabled.current) return;
897
- e.preventDefault();
898
- if (e.pointerType === 'touch') {
899
- if (this.root.opts.open.current === false) {
900
- this.#handlePointerOpen(e);
901
- } else {
902
- this.root.handleClose();
903
- }
904
- }
905
- }
906
-
907
- readonly props = $derived.by(
908
- () =>
909
- ({
910
- id: this.opts.id.current,
911
- disabled: this.root.opts.disabled.current ? true : undefined,
912
- 'aria-haspopup': 'listbox',
913
- 'aria-expanded': boolToStr(this.root.opts.open.current),
914
- 'aria-activedescendant': this.root.highlightedId,
915
- 'data-state': getDataOpenClosed(this.root.opts.open.current),
916
- 'data-disabled': boolToEmptyStrOrUndef(this.root.opts.disabled.current),
917
- 'data-placeholder': this.root.hasValue ? undefined : '',
918
- [this.root.getBitsAttr('trigger')]: '',
919
- onpointerdown: this.onpointerdown,
920
- onkeydown: this.onkeydown,
921
- onclick: this.onclick,
922
- onpointerup: this.onpointerup,
923
- ...this.attachment,
924
- }) as const,
925
- );
926
- }
927
-
928
- interface SelectContentStateOpts
929
- extends
930
- WithRefOpts,
931
- ReadableBoxedValues<{
932
- onInteractOutside: (e: PointerEvent) => void;
933
- onEscapeKeydown: (e: KeyboardEvent) => void;
934
- }> {
935
- /** Rendered in flow (ContentStatic) rather than in a floating wrapper. */
936
- isStatic?: boolean;
937
- }
938
-
939
- export class SelectContentState {
940
- static create(opts: SelectContentStateOpts) {
941
- return setSelectContent(new SelectContentState(opts, getSelectRoot()));
942
- }
943
- readonly opts: SelectContentStateOpts;
944
- readonly root: SelectRoot;
945
- readonly attachment: RefAttachment;
946
- isPositioned = $state(false);
947
- domContext: DOMContext;
948
- #isStatic: boolean;
949
-
950
- constructor(opts: SelectContentStateOpts, root: SelectRoot) {
951
- this.opts = opts;
952
- this.root = root;
953
- this.#isStatic = opts.isStatic ?? false;
954
- this.attachment = attachRef(opts.ref, (v) => (this.root.contentNode = v));
955
- this.domContext = new DOMContext(this.opts.ref);
956
-
957
- if (this.root.domContext === null) {
958
- this.root.domContext = this.domContext;
959
- }
960
-
961
- onDestroy(() => {
962
- this.root.contentNode = null;
963
- this.root.contentIsPositioned = false;
964
- this.isPositioned = false;
965
- });
966
-
967
- $effect(() => {
968
- this.root.opts.open.current;
969
- untrack(() => {
970
- if (this.root.opts.open.current) return;
971
- this.root.contentIsPositioned = false;
972
- this.isPositioned = false;
973
- });
974
- });
975
-
976
- $effect(() => {
977
- this.isPositioned;
978
- this.root.highlightedNode;
979
- untrack(() => {
980
- if (!this.isPositioned || !this.root.highlightedNode) return;
981
- this.root.scrollHighlightedNodeIntoView(this.root.highlightedNode);
982
- });
983
- });
984
-
985
- this.onpointermove = this.onpointermove.bind(this);
986
- }
987
-
988
- onpointermove(_: BitsPointerEvent) {
989
- this.root.isKeyboard = false;
990
- }
991
-
992
- readonly #styles = $derived.by(() => {
993
- return getFloatingContentCSSVars(this.root.isCombobox ? 'combobox' : 'select');
994
- });
995
-
996
- onInteractOutside = (e: PointerEvent) => {
997
- if (e.target === this.root.triggerNode || e.target === this.root.inputNode) {
998
- e.preventDefault();
999
- return;
1000
- }
1001
- this.opts.onInteractOutside.current(e);
1002
- if (e.defaultPrevented) return;
1003
- this.root.handleClose();
1004
- };
1005
-
1006
- onEscapeKeydown = (e: KeyboardEvent) => {
1007
- this.opts.onEscapeKeydown.current(e);
1008
- if (e.defaultPrevented) return;
1009
- this.root.handleClose();
1010
- };
1011
-
1012
- onOpenAutoFocus = (e: Event) => {
1013
- e.preventDefault();
1014
- };
1015
-
1016
- onCloseAutoFocus = (e: Event) => {
1017
- e.preventDefault();
1018
- };
1019
-
1020
- readonly snippetProps = $derived.by(() => ({ open: this.root.opts.open.current }));
1021
-
1022
- readonly props = $derived.by(
1023
- () =>
1024
- ({
1025
- id: this.opts.id.current,
1026
- role: 'listbox',
1027
- 'aria-multiselectable': this.root.isMulti ? 'true' : undefined,
1028
- 'data-state': getDataOpenClosed(this.root.opts.open.current),
1029
- [this.root.getBitsAttr('content')]: '',
1030
- style: {
1031
- display: 'flex',
1032
- flexDirection: 'column',
1033
- outline: 'none',
1034
- boxSizing: 'border-box',
1035
- pointerEvents: 'auto',
1036
- ...this.#styles,
1037
- },
1038
- onpointermove: this.onpointermove,
1039
- ...this.attachment,
1040
- }) as const,
1041
- );
1042
-
1043
- /**
1044
- * Inline style for the content element alone — `props.style` also reaches the floating wrapper
1045
- * through PopperLayer, and hiding the wrapper would cancel the content's exit transition.
1046
- * Always mounted: closed floating content is visibility:hidden, closed static content is
1047
- * display:none (it must leave the flow); `popup-surface` in ui.css adds the motion.
1048
- */
1049
- readonly contentStyle = $derived.by(() => {
1050
- if (this.root.opts.open.current) return {};
1051
- return this.#isStatic ? { display: 'none' } : { visibility: 'hidden' };
1052
- });
1053
-
1054
- readonly popperProps = {
1055
- onInteractOutside: this.onInteractOutside,
1056
- onEscapeKeydown: this.onEscapeKeydown,
1057
- onOpenAutoFocus: this.onOpenAutoFocus,
1058
- onCloseAutoFocus: this.onCloseAutoFocus,
1059
- trapFocus: false,
1060
- loop: false,
1061
- onPlaced: () => {
1062
- // onPlaced is also called when the menu is closed, so we need to check if the menu
1063
- // is actually open to avoid setting positioning to true when the menu is closed
1064
- if (this.root.opts.open.current) {
1065
- this.root.contentIsPositioned = true;
1066
- this.isPositioned = true;
1067
- }
1068
- },
1069
- };
1070
- }
1071
-
1072
- interface SelectItemStateOpts
1073
- extends
1074
- WithRefOpts,
1075
- ReadableBoxedValues<{
1076
- value: string;
1077
- disabled: boolean;
1078
- label: string;
1079
- onHighlight: () => void;
1080
- onUnhighlight: () => void;
1081
- }> {}
1082
-
1083
- export class SelectItemState {
1084
- static create(opts: SelectItemStateOpts) {
1085
- return new SelectItemState(opts, getSelectRoot());
1086
- }
1087
- readonly opts: SelectItemStateOpts;
1088
- readonly root: SelectRoot;
1089
- readonly attachment: RefAttachment;
1090
- readonly isSelected = $derived.by(() => this.root.includesItem(this.opts.value.current));
1091
- readonly isHighlighted = $derived.by(() => this.root.highlightedValue === this.opts.value.current);
1092
- prevHighlighted = $state<boolean | undefined>(undefined);
1093
- mounted = $state(false);
1094
-
1095
- constructor(opts: SelectItemStateOpts, root: SelectRoot) {
1096
- this.opts = opts;
1097
- this.root = root;
1098
- this.attachment = attachRef(opts.ref);
1099
-
1100
- let lastHighlighted: boolean | undefined = undefined;
1101
- $effect.pre(() => {
1102
- const current = this.isHighlighted;
1103
- this.prevHighlighted = lastHighlighted;
1104
- lastHighlighted = current;
1105
- });
1106
-
1107
- $effect(() => {
1108
- this.isHighlighted;
1109
- this.prevHighlighted;
1110
- untrack(() => {
1111
- if (this.isHighlighted) {
1112
- this.opts.onHighlight.current();
1113
- } else if (this.prevHighlighted) {
1114
- this.opts.onUnhighlight.current();
1115
- }
1116
- });
1117
- });
1118
-
1119
- $effect(() => {
1120
- this.mounted;
1121
- untrack(() => {
1122
- if (!this.mounted) return;
1123
- this.root.setInitialHighlightedNode();
1124
- });
1125
- });
1126
-
1127
- this.onpointerdown = this.onpointerdown.bind(this);
1128
- this.onpointerup = this.onpointerup.bind(this);
1129
- this.onpointermove = this.onpointermove.bind(this);
1130
- }
1131
-
1132
- handleSelect() {
1133
- if (this.opts.disabled.current) return;
1134
- const isCurrentSelectedValue = this.opts.value.current === this.root.opts.value.current;
1135
-
1136
- // if allowDeselect is false and the item is already selected and we're not in a
1137
- // multi select, do nothing and close the menu
1138
- if (!this.root.opts.allowDeselect.current && isCurrentSelectedValue && !this.root.isMulti) {
1139
- this.root.handleClose();
1140
- return;
1141
- }
1142
-
1143
- // otherwise, toggle the item and if we're not in a multi select, close the menu
1144
- this.root.toggleItem(this.opts.value.current, this.opts.label.current);
1145
-
1146
- if (!this.root.isMulti && !isCurrentSelectedValue) {
1147
- this.root.handleClose();
1148
- }
1149
- }
1150
-
1151
- snippetProps = $derived.by(() => ({
1152
- selected: this.isSelected,
1153
- highlighted: this.isHighlighted,
1154
- }));
1155
-
1156
- onpointerdown(e: BitsPointerEvent) {
1157
- // prevent focus from leaving the input/select trigger
1158
- e.preventDefault();
1159
- }
1160
-
1161
- /**
1162
- * Using `pointerup` instead of `click` allows power users to pointerdown
1163
- * the trigger, then release pointerup on an item to select it vs having to do
1164
- * multiple clicks.
1165
- */
1166
- onpointerup(e: BitsPointerEvent) {
1167
- if (e.defaultPrevented || !this.opts.ref.current) return;
1168
- /**
1169
- * For one reason or another, when it's a touch pointer and _not_ on IOS,
1170
- * we need to listen for the immediate click event to handle the selection,
1171
- * otherwise a click event will fire on the element _behind_ the item.
1172
- */
1173
- if (e.pointerType === 'touch' && !isIOS) {
1174
- on(
1175
- this.opts.ref.current,
1176
- 'click',
1177
- () => {
1178
- this.handleSelect();
1179
- // set highlighted node since we don't do it on `pointermove` events
1180
- // for touch devices
1181
- this.root.setHighlightedNode(this.opts.ref.current);
1182
- },
1183
- { once: true },
1184
- );
1185
- return;
1186
- }
1187
- e.preventDefault();
1188
-
1189
- this.handleSelect();
1190
- if (e.pointerType === 'touch') {
1191
- // set highlighted node since we don't do it on `pointermove` events
1192
- // for touch devices
1193
- this.root.setHighlightedNode(this.opts.ref.current);
1194
- }
1195
- }
1196
-
1197
- onpointermove(e: BitsPointerEvent) {
1198
- /**
1199
- * We don't want to highlight items on touch devices when scrolling,
1200
- * as this is confusing behavior, so we return here and instead handle
1201
- * the highlighting on the `pointerup` (or following `click`) event for
1202
- * touch devices only.
1203
- */
1204
- if (e.pointerType === 'touch') return;
1205
- if (this.root.highlightedNode !== this.opts.ref.current) {
1206
- this.root.setHighlightedNode(this.opts.ref.current);
1207
- }
1208
- }
1209
-
1210
- readonly props = $derived.by(
1211
- () =>
1212
- ({
1213
- id: this.opts.id.current,
1214
- role: 'option',
1215
- 'aria-selected': this.root.includesItem(this.opts.value.current) ? 'true' : undefined,
1216
- 'data-value': this.opts.value.current,
1217
- 'data-disabled': boolToEmptyStrOrUndef(this.opts.disabled.current),
1218
- 'data-highlighted': this.root.highlightedValue === this.opts.value.current && !this.opts.disabled.current ? '' : undefined,
1219
- 'data-selected': this.root.includesItem(this.opts.value.current) ? '' : undefined,
1220
- 'data-label': this.opts.label.current,
1221
- [this.root.getBitsAttr('item')]: '',
1222
- onpointermove: this.onpointermove,
1223
- onpointerdown: this.onpointerdown,
1224
- onpointerup: this.onpointerup,
1225
- ...this.attachment,
1226
- }) as const,
1227
- );
1228
- }
1229
-
1230
- interface SelectGroupStateOpts extends WithRefOpts {}
1231
-
1232
- export class SelectGroupState {
1233
- static create(opts: SelectGroupStateOpts) {
1234
- return setSelectGroup(new SelectGroupState(opts, getSelectRoot()));
1235
- }
1236
- readonly opts: SelectGroupStateOpts;
1237
- readonly root: SelectBaseRootState;
1238
- labelNode = $state<HTMLElement | null>(null);
1239
- readonly attachment: RefAttachment;
1240
-
1241
- constructor(opts: SelectGroupStateOpts, root: SelectBaseRootState) {
1242
- this.opts = opts;
1243
- this.root = root;
1244
- this.attachment = attachRef(opts.ref);
1245
- }
1246
-
1247
- readonly props = $derived.by(
1248
- () =>
1249
- ({
1250
- id: this.opts.id.current,
1251
- role: 'group',
1252
- [this.root.getBitsAttr('group')]: '',
1253
- 'aria-labelledby': this.labelNode?.id ?? undefined,
1254
- ...this.attachment,
1255
- }) as const,
1256
- );
1257
- }
1258
-
1259
- interface SelectGroupHeadingStateOpts extends WithRefOpts {}
1260
-
1261
- export class SelectGroupHeadingState {
1262
- static create(opts: SelectGroupHeadingStateOpts) {
1263
- return new SelectGroupHeadingState(opts, getSelectGroup());
1264
- }
1265
- readonly opts: SelectGroupHeadingStateOpts;
1266
- readonly group: SelectGroupState;
1267
- readonly attachment: RefAttachment;
1268
-
1269
- constructor(opts: SelectGroupHeadingStateOpts, group: SelectGroupState) {
1270
- this.opts = opts;
1271
- this.group = group;
1272
- this.attachment = attachRef(opts.ref, (v) => (this.group.labelNode = v));
1273
- }
1274
-
1275
- readonly props = $derived.by(
1276
- () =>
1277
- ({
1278
- id: this.opts.id.current,
1279
- [this.group.root.getBitsAttr('group-label')]: '',
1280
- ...this.attachment,
1281
- }) as const,
1282
- );
1283
- }
1284
-
1285
- interface SelectHiddenInputStateOpts extends ReadableBoxedValues<{
1286
- value: string | undefined;
1287
- }> {}
1288
-
1289
- export class SelectHiddenInputState {
1290
- static create(opts: SelectHiddenInputStateOpts) {
1291
- return new SelectHiddenInputState(opts, getSelectRoot());
1292
- }
1293
- readonly opts: SelectHiddenInputStateOpts;
1294
- readonly root: SelectBaseRootState;
1295
- readonly shouldRender = $derived.by(() => this.root.opts.name.current !== '');
1296
-
1297
- constructor(opts: SelectHiddenInputStateOpts, root: SelectBaseRootState) {
1298
- this.opts = opts;
1299
- this.root = root;
1300
- this.onfocus = this.onfocus.bind(this);
1301
- }
1302
-
1303
- onfocus(e: BitsFocusEvent) {
1304
- e.preventDefault();
1305
-
1306
- if (!this.root.isCombobox) {
1307
- this.root.triggerNode?.focus();
1308
- } else {
1309
- this.root.inputNode?.focus();
1310
- }
1311
- }
1312
-
1313
- readonly props = $derived.by(
1314
- () =>
1315
- ({
1316
- disabled: boolToTrueOrUndef(this.root.opts.disabled.current),
1317
- required: boolToTrueOrUndef(this.root.opts.required.current),
1318
- name: this.root.opts.name.current,
1319
- value: this.opts.value.current,
1320
- onfocus: this.onfocus,
1321
- }) as const,
1322
- );
1323
- }
1324
-
1325
- interface SelectViewportStateOpts extends WithRefOpts {}
1326
-
1327
- export class SelectViewportState {
1328
- static create(opts: SelectViewportStateOpts) {
1329
- return new SelectViewportState(opts, getSelectContent());
1330
- }
1331
- readonly opts: SelectViewportStateOpts;
1332
- readonly content: SelectContentState;
1333
- readonly root: SelectBaseRootState;
1334
- readonly attachment: RefAttachment;
1335
- prevScrollTop = $state(0);
1336
-
1337
- constructor(opts: SelectViewportStateOpts, content: SelectContentState) {
1338
- this.opts = opts;
1339
- this.content = content;
1340
- this.root = content.root;
1341
- this.attachment = attachRef(opts.ref, (v) => {
1342
- this.root.viewportNode = v;
1343
- });
1344
- }
1345
-
1346
- readonly props = $derived.by(
1347
- () =>
1348
- ({
1349
- id: this.opts.id.current,
1350
- role: 'presentation',
1351
- [this.root.getBitsAttr('viewport')]: '',
1352
- style: {
1353
- // we use position: 'relative' here on the `viewport` so that when we call
1354
- // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport
1355
- // (independent of the scrollUpButton).
1356
- position: 'relative',
1357
- flex: 1,
1358
- overflow: 'auto',
1359
- },
1360
- ...this.attachment,
1361
- }) as const,
1362
- );
1363
- }
1364
-
1365
- interface SelectScrollButtonImplStateOpts
1366
- extends
1367
- WithRefOpts,
1368
- ReadableBoxedValues<{
1369
- delay: (tick: number) => number;
1370
- }> {}
1371
-
1372
- export class SelectScrollButtonImplState {
1373
- readonly opts: SelectScrollButtonImplStateOpts;
1374
- readonly content: SelectContentState;
1375
- readonly root: SelectBaseRootState;
1376
- readonly attachment: RefAttachment;
1377
- autoScrollTimer: number | null = null;
1378
- userScrollTimer = -1;
1379
- isUserScrolling = false;
1380
- onAutoScroll: () => void = () => {};
1381
- mounted = $state(false);
1382
-
1383
- constructor(opts: SelectScrollButtonImplStateOpts, content: SelectContentState) {
1384
- this.opts = opts;
1385
- this.content = content;
1386
- this.root = content.root;
1387
- this.attachment = attachRef(opts.ref);
1388
-
1389
- $effect(() => {
1390
- this.mounted;
1391
- untrack(() => {
1392
- if (!this.mounted) {
1393
- this.isUserScrolling = false;
1394
- return;
1395
- }
1396
- if (this.isUserScrolling) return;
1397
- });
1398
- });
1399
-
1400
- $effect(() => {
1401
- if (this.mounted) return;
1402
- this.clearAutoScrollInterval();
1403
- });
1404
-
1405
- this.onpointerdown = this.onpointerdown.bind(this);
1406
- this.onpointermove = this.onpointermove.bind(this);
1407
- this.onpointerleave = this.onpointerleave.bind(this);
1408
- }
1409
-
1410
- handleUserScroll() {
1411
- this.content.domContext.clearTimeout(this.userScrollTimer);
1412
- this.isUserScrolling = true;
1413
- this.userScrollTimer = this.content.domContext.setTimeout(() => {
1414
- this.isUserScrolling = false;
1415
- }, 200);
1416
- }
1417
-
1418
- clearAutoScrollInterval() {
1419
- if (this.autoScrollTimer === null) return;
1420
- this.content.domContext.clearTimeout(this.autoScrollTimer);
1421
- this.autoScrollTimer = null;
1422
- }
1423
-
1424
- onpointerdown(_: BitsPointerEvent) {
1425
- if (this.autoScrollTimer !== null) return;
1426
- const autoScroll = (tick: number) => {
1427
- this.onAutoScroll();
1428
- this.autoScrollTimer = this.content.domContext.setTimeout(() => autoScroll(tick + 1), this.opts.delay.current(tick));
1429
- };
1430
- this.autoScrollTimer = this.content.domContext.setTimeout(() => autoScroll(1), this.opts.delay.current(0));
1431
- }
1432
-
1433
- onpointermove(e: BitsPointerEvent) {
1434
- this.onpointerdown(e);
1435
- }
1436
-
1437
- onpointerleave(_: BitsPointerEvent) {
1438
- this.clearAutoScrollInterval();
1439
- }
1440
-
1441
- readonly props = $derived.by(
1442
- () =>
1443
- ({
1444
- id: this.opts.id.current,
1445
- 'aria-hidden': boolToStrTrueOrUndef(true),
1446
- style: {
1447
- flexShrink: 0,
1448
- },
1449
- onpointerdown: this.onpointerdown,
1450
- onpointermove: this.onpointermove,
1451
- onpointerleave: this.onpointerleave,
1452
- ...this.attachment,
1453
- }) as const,
1454
- );
1455
- }
1456
-
1457
- export class SelectScrollDownButtonState {
1458
- static create(opts: SelectScrollButtonImplStateOpts) {
1459
- return new SelectScrollDownButtonState(new SelectScrollButtonImplState(opts, getSelectContent()));
1460
- }
1461
- readonly scrollButtonState: SelectScrollButtonImplState;
1462
- readonly content: SelectContentState;
1463
- readonly root: SelectBaseRootState;
1464
- canScrollDown = $state(false);
1465
- scrollIntoViewTimer: ReturnType<typeof globalThis.setTimeout> | null = null;
1466
-
1467
- constructor(scrollButtonState: SelectScrollButtonImplState) {
1468
- this.scrollButtonState = scrollButtonState;
1469
- this.content = scrollButtonState.content;
1470
- this.root = scrollButtonState.root;
1471
- this.scrollButtonState.onAutoScroll = this.handleAutoScroll;
1472
-
1473
- $effect(() => {
1474
- this.root.viewportNode;
1475
- this.content.isPositioned;
1476
- return untrack(() => {
1477
- if (!this.root.viewportNode || !this.content.isPositioned) return;
1478
- this.handleScroll(true);
1479
-
1480
- return on(this.root.viewportNode, 'scroll', () => this.handleScroll());
1481
- });
1482
- });
1483
-
1484
- /**
1485
- * If the input value changes, this means that the filtered items may have changed,
1486
- * so we need to re-evaluate the scroll-ability of the list.
1487
- */
1488
- $effect(() => {
1489
- this.root.opts.inputValue.current;
1490
- this.root.viewportNode;
1491
- this.content.isPositioned;
1492
- untrack(() => {
1493
- if (!this.root.viewportNode || !this.content.isPositioned) return;
1494
- this.handleScroll(true);
1495
- });
1496
- });
1497
-
1498
- $effect(() => {
1499
- this.scrollButtonState.mounted;
1500
- untrack(() => {
1501
- if (!this.scrollButtonState.mounted) return;
1502
- if (this.scrollIntoViewTimer) {
1503
- clearTimeout(this.scrollIntoViewTimer);
1504
- }
1505
- this.scrollIntoViewTimer = setTimeout(() => {
1506
- const activeItem = this.root.highlightedNode;
1507
- if (!activeItem) return;
1508
- this.root.scrollHighlightedNodeIntoView(activeItem);
1509
- }, 5);
1510
- });
1511
- });
1512
- }
1513
- /**
1514
- * @param manual - if true, it means the function was invoked manually outside of an event
1515
- * listener, so we don't call `handleUserScroll` to prevent the auto scroll from kicking in.
1516
- */
1517
- handleScroll = (manual = false) => {
1518
- if (!manual) {
1519
- this.scrollButtonState.handleUserScroll();
1520
- }
1521
- if (!this.root.viewportNode) return;
1522
- const maxScroll = this.root.viewportNode.scrollHeight - this.root.viewportNode.clientHeight;
1523
- const paddingTop = Number.parseInt(getComputedStyle(this.root.viewportNode).paddingTop, 10);
1524
-
1525
- this.canScrollDown = Math.ceil(this.root.viewportNode.scrollTop) < maxScroll - paddingTop;
1526
- };
1527
-
1528
- handleAutoScroll = () => {
1529
- const viewport = this.root.viewportNode;
1530
- const selectedItem = this.root.highlightedNode;
1531
- if (!viewport || !selectedItem) return;
1532
- viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;
1533
- };
1534
-
1535
- readonly props = $derived.by(
1536
- () =>
1537
- ({
1538
- ...this.scrollButtonState.props,
1539
- [this.root.getBitsAttr('scroll-down-button')]: '',
1540
- }) as const,
1541
- );
1542
- }
1543
-
1544
- export class SelectScrollUpButtonState {
1545
- static create(opts: SelectScrollButtonImplStateOpts) {
1546
- return new SelectScrollUpButtonState(new SelectScrollButtonImplState(opts, getSelectContent()));
1547
- }
1548
- readonly scrollButtonState: SelectScrollButtonImplState;
1549
- readonly content: SelectContentState;
1550
- readonly root: SelectBaseRootState;
1551
- canScrollUp = $state(false);
1552
-
1553
- constructor(scrollButtonState: SelectScrollButtonImplState) {
1554
- this.scrollButtonState = scrollButtonState;
1555
- this.content = scrollButtonState.content;
1556
- this.root = scrollButtonState.root;
1557
- this.scrollButtonState.onAutoScroll = this.handleAutoScroll;
1558
-
1559
- $effect(() => {
1560
- this.root.viewportNode;
1561
- this.content.isPositioned;
1562
- return untrack(() => {
1563
- if (!this.root.viewportNode || !this.content.isPositioned) return;
1564
-
1565
- this.handleScroll(true);
1566
- return on(this.root.viewportNode, 'scroll', () => this.handleScroll());
1567
- });
1568
- });
1569
- }
1570
-
1571
- /**
1572
- * @param manual - if true, it means the function was invoked manually outside of an event
1573
- * listener, so we don't call `handleUserScroll` to prevent the auto scroll from kicking in.
1574
- */
1575
- handleScroll = (manual = false) => {
1576
- if (!manual) {
1577
- this.scrollButtonState.handleUserScroll();
1578
- }
1579
- if (!this.root.viewportNode) return;
1580
- const paddingTop = Number.parseInt(getComputedStyle(this.root.viewportNode).paddingTop, 10);
1581
- this.canScrollUp = this.root.viewportNode.scrollTop - paddingTop > 0.1;
1582
- };
1583
-
1584
- handleAutoScroll = () => {
1585
- if (!this.root.viewportNode || !this.root.highlightedNode) return;
1586
- this.root.viewportNode.scrollTop = this.root.viewportNode.scrollTop - this.root.highlightedNode.offsetHeight;
1587
- };
1588
-
1589
- readonly props = $derived.by(
1590
- () =>
1591
- ({
1592
- ...this.scrollButtonState.props,
1593
- [this.root.getBitsAttr('scroll-up-button')]: '',
1594
- }) as const,
1595
- );
1596
- }