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,1587 +0,0 @@
1
- import {
2
- attachRef,
3
- DOMContext,
4
- getWindow,
5
- type ReadableBoxedValues,
6
- type WritableBoxedValues,
7
- boxWith,
8
- type ReadableBox,
9
- } from '../../internal/tools/index.js';
10
- import { mergeProps } from '../../internal/merge-props.js';
11
- import type { Measurable } from '../../internal/floating-layer/index.js';
12
- import { createContext, onDestroy, tick, untrack } from 'svelte';
13
- import { SUB_OPEN_KEYS, getCheckedState, isMouseEvent } from './utils.js';
14
- import { focusFirst } from '../../internal/focus.js';
15
- import type {
16
- AnyFn,
17
- BitsFocusEvent,
18
- BitsKeyboardEvent,
19
- BitsMouseEvent,
20
- BitsPointerEvent,
21
- OnChangeFn,
22
- RefAttachment,
23
- WithRefOpts,
24
- } from '../../internal/types.js';
25
- import { isElement, isElementOrSVGElement, isHTMLElement } from '../../internal/tools/utils/dom.js';
26
- import { kbd, FIRST_LAST_KEYS, LAST_KEYS, SELECTION_KEYS } from '../../internal/kbd.js';
27
- import {
28
- createBitsAttrs,
29
- getAriaChecked,
30
- boolToStr,
31
- getDataOpenClosed,
32
- boolToEmptyStrOrUndef,
33
- } from '../../internal/attrs.js';
34
- import type { Direction } from '../../internal/index.js';
35
- import { getTabbableFrom, isTabbable } from '../../internal/tabbable.js';
36
- import type { KeyboardEventHandler, PointerEventHandler, MouseEventHandler } from 'svelte/elements';
37
- import { Typeahead, textContentOf } from '../../internal/typeahead.svelte.js';
38
- import { RovingFocusGroup } from '../../internal/roving-focus-group.svelte.js';
39
- import { useOpenChangeComplete } from '../../internal/animations-settled.svelte.js';
40
- import { joinGroup } from '../../internal/group-value.svelte.js';
41
- import { createEffectTimeout } from '../../internal/timeout-fn.svelte.js';
42
- import { on } from 'svelte/events';
43
- import {
44
- AXIS_VERTICAL,
45
- DIR_POS,
46
- type Point,
47
- type SideBits,
48
- TARGET_CONTENT,
49
- TARGET_NONE,
50
- TARGET_TRIGGER,
51
- type TargetBits,
52
- flipSide,
53
- getCorridorPolygon,
54
- getSide,
55
- isInsideRect,
56
- isPointInPolygon,
57
- } from '../../internal/hover-intent-geometry.js';
58
-
59
- export const CONTEXT_MENU_TRIGGER_ATTR = 'data-context-menu-trigger';
60
- export const CONTEXT_MENU_CONTENT_ATTR = 'data-context-menu-content';
61
-
62
- const [getMenuRoot, setMenuRoot] = createContext<MenuRootState>();
63
- const [getMenuMenu, setMenuMenu] = createContext<MenuMenuState>();
64
- const [getMenuContent, setMenuContent] = createContext<MenuContentState>();
65
- const [getMenuGroup, setMenuGroup] = createContext<MenuGroupState | MenuRadioGroupState | MenuCheckboxGroupState>();
66
- const [getMenuRadioGroup, setMenuRadioGroup] = createContext<MenuRadioGroupState>();
67
- const [getMenuCheckboxGroup, setMenuCheckboxGroup, hasMenuCheckboxGroup] = createContext<MenuCheckboxGroupState>();
68
-
69
- type MenuVariant = 'context-menu' | 'dropdown-menu' | 'menubar';
70
-
71
- export interface MenuRootStateOpts extends ReadableBoxedValues<{
72
- dir: Direction;
73
- variant: MenuVariant;
74
- }> {
75
- onClose: AnyFn;
76
- /** When closing, if this returns true, exit animations are skipped (instant unmount). */
77
- shouldSkipExitAnimation?: () => boolean;
78
- }
79
-
80
- export const menuAttrs = createBitsAttrs({
81
- component: 'menu',
82
- parts: [
83
- 'trigger',
84
- 'content',
85
- 'sub-trigger',
86
- 'item',
87
- 'group',
88
- 'group-heading',
89
- 'checkbox-group',
90
- 'checkbox-item',
91
- 'radio-group',
92
- 'radio-item',
93
- 'separator',
94
- 'sub-content',
95
- 'arrow',
96
- ],
97
- });
98
-
99
- type Polygon = Point[];
100
-
101
- // const SVG_NS = "http://www.w3.org/2000/svg";
102
-
103
- export interface MenuSubmenuIntentOptions {
104
- enabled: () => boolean;
105
- triggerNode: () => HTMLElement | null;
106
- contentNode: () => HTMLElement | null;
107
- parentContentNode: () => HTMLElement | null;
108
- subContentSelector: () => string;
109
- onIntentExit: (pointerPoint: Point | null) => void;
110
- setIsPointerInTransit: (value: boolean) => void;
111
- }
112
-
113
- export class MenuSubmenuIntent {
114
- readonly #opts: MenuSubmenuIntentOptions;
115
- #cleanupDocMove: AnyFn | null = null;
116
- // Every `#active = false` write stops this timer first, so the callback only ever fires while active.
117
- #fallbackTimer = createEffectTimeout(() => this.#intentExit(), () => 500);
118
- #disengageTimer = createEffectTimeout(() => this.#opts.setIsPointerInTransit(false), () => 100);
119
- #active = false;
120
- #target: TargetBits = TARGET_NONE;
121
- #apex: Point | null = null;
122
- #pointerPoint: Point | null = null;
123
- #launchPoint: Point | null = null;
124
-
125
- constructor(opts: MenuSubmenuIntentOptions) {
126
- this.#opts = opts;
127
-
128
- $effect(() => {
129
- const triggerNode = opts.triggerNode();
130
- const contentNode = opts.contentNode();
131
- const enabled = opts.enabled();
132
- return untrack(() => {
133
- this.#reset();
134
- if (!triggerNode || !contentNode || !enabled) return;
135
-
136
- const onTriggerMove = (e: PointerEvent) => {
137
- if (!isMouseEvent(e)) return;
138
- this.#launchPoint = [e.clientX, e.clientY];
139
- if (!this.#active) this.#preview(e, TARGET_CONTENT);
140
- };
141
-
142
- const onTriggerLeave = (e: PointerEvent) => {
143
- if (!isMouseEvent(e)) return;
144
- this.#engage(e, TARGET_CONTENT);
145
- };
146
-
147
- const onContentMove = (e: PointerEvent) => {
148
- if (!isMouseEvent(e)) return;
149
- if (!this.#active) this.#preview(e, TARGET_TRIGGER);
150
- };
151
-
152
- const onContentLeave = (e: PointerEvent) => {
153
- if (!isMouseEvent(e)) return;
154
- if (isElement(e.relatedTarget)) {
155
- const selector = this.#opts.subContentSelector();
156
- const matchedSubContent = e.relatedTarget.closest(selector);
157
- if (matchedSubContent && matchedSubContent !== contentNode && matchedSubContent.id) {
158
- const isChild = !!contentNode.querySelector(`[aria-controls="${matchedSubContent.id}"]`);
159
- if (isChild) {
160
- return;
161
- }
162
- }
163
- }
164
- this.#engage(e, TARGET_TRIGGER);
165
- };
166
-
167
- const onTriggerEnter = (e: PointerEvent) => {
168
- if (!isMouseEvent(e)) return;
169
- this.#disengage();
170
- };
171
-
172
- const onContentEnter = (e: PointerEvent) => {
173
- if (!isMouseEvent(e)) return;
174
- this.#disengage();
175
- };
176
-
177
- const cleanup = [
178
- on(triggerNode, 'pointermove', onTriggerMove),
179
- on(triggerNode, 'pointerleave', onTriggerLeave),
180
- on(triggerNode, 'pointerenter', onTriggerEnter),
181
- on(contentNode, 'pointermove', onContentMove),
182
- on(contentNode, 'pointerleave', onContentLeave),
183
- on(contentNode, 'pointerenter', onContentEnter),
184
- ];
185
-
186
- return () => {
187
- cleanup.forEach((remove) => remove());
188
- this.#reset();
189
- };
190
- });
191
- });
192
-
193
- onDestroy(() => {
194
- this.#reset();
195
- });
196
- }
197
-
198
- #parentTargetRect(): DOMRect | null {
199
- const parent = this.#opts.parentContentNode();
200
- if (parent) return parent.getBoundingClientRect();
201
- return this.#opts.triggerNode()?.getBoundingClientRect() ?? null;
202
- }
203
-
204
- #computePolygons(
205
- pointerPt: Point,
206
- target: TargetBits,
207
- ): {
208
- corridor: Polygon;
209
- intent: Polygon;
210
- targetRect: DOMRect;
211
- side: SideBits;
212
- } | null {
213
- const triggerNode = this.#opts.triggerNode();
214
- const contentNode = this.#opts.contentNode();
215
- if (!triggerNode || !contentNode) return null;
216
-
217
- const triggerRect = triggerNode.getBoundingClientRect();
218
- const contentRect = contentNode.getBoundingClientRect();
219
- const side = getSide(triggerRect, contentRect);
220
-
221
- let apex: Point;
222
- let targetRect: DOMRect;
223
-
224
- let sourceRect: DOMRect | undefined;
225
-
226
- if (target & TARGET_CONTENT) {
227
- apex = this.#active ? (this.#apex ?? pointerPt) : pointerPt;
228
- targetRect = contentRect;
229
- } else {
230
- apex = this.#launchPoint ?? pointerPt;
231
- targetRect = this.#parentTargetRect() ?? triggerRect;
232
- sourceRect = contentRect;
233
- }
234
-
235
- this.#apex = apex;
236
-
237
- return {
238
- // this file's corridor has always used a fixed buffer of 2 (distinct from
239
- // SafePolygon's configurable buffer), preserved explicitly here
240
- corridor: getCorridorPolygon(triggerRect, contentRect, side, 2),
241
- intent: getIntentPolygon(apex, targetRect, side, target, sourceRect),
242
- targetRect,
243
- side,
244
- };
245
- }
246
-
247
- #isInSafeZone(pt: Point, corridor: Polygon, intent: Polygon): boolean {
248
- return isPointInPolygon(pt, corridor) || isPointInPolygon(pt, intent);
249
- }
250
-
251
- #preview(e: PointerEvent, target: TargetBits) {
252
- const pt: Point = [e.clientX, e.clientY];
253
- const geo = this.#computePolygons(pt, target);
254
- if (!geo) return;
255
-
256
- this.#target = target;
257
- this.#pointerPoint = pt;
258
- }
259
-
260
- #engage(e: PointerEvent, target: TargetBits) {
261
- if (!this.#opts.enabled()) return;
262
-
263
- const triggerNode = this.#opts.triggerNode();
264
- const contentNode = this.#opts.contentNode();
265
- if (!triggerNode || !contentNode) return;
266
-
267
- const related = e.relatedTarget;
268
- if (isElement(related)) {
269
- if (target & TARGET_CONTENT && contentNode.contains(related)) return;
270
- if (target & TARGET_TRIGGER && triggerNode.contains(related)) return;
271
- }
272
-
273
- const pt: Point = [e.clientX, e.clientY];
274
-
275
- const geo = this.#computePolygons(pt, target);
276
- if (!geo) return;
277
-
278
- if (!isInsideRect(pt, geo.targetRect) && !this.#isInSafeZone(pt, geo.corridor, geo.intent)) {
279
- this.#clearVisuals();
280
- return;
281
- }
282
-
283
- this.#active = true;
284
- this.#target = target;
285
- this.#pointerPoint = pt;
286
-
287
- this.#opts.setIsPointerInTransit(true);
288
- this.#attachDocMove();
289
- this.#fallbackTimer.start();
290
- }
291
-
292
- #disengage() {
293
- if (!this.#active) return;
294
- const wasReturning = (this.#target & TARGET_TRIGGER) !== 0;
295
- this.#detachDocMove();
296
- this.#fallbackTimer.stop();
297
- this.#active = false;
298
- this.#clearVisuals();
299
-
300
- if (wasReturning) {
301
- this.#disengageTimer.start();
302
- } else {
303
- this.#opts.setIsPointerInTransit(false);
304
- }
305
- }
306
-
307
- #intentExit() {
308
- const pointerPoint = this.#pointerPoint;
309
- this.#detachDocMove();
310
- this.#fallbackTimer.stop();
311
- this.#disengageTimer.stop();
312
- this.#active = false;
313
- this.#opts.setIsPointerInTransit(false);
314
- this.#clearVisuals();
315
- this.#opts.onIntentExit(pointerPoint);
316
- }
317
-
318
- #reset() {
319
- this.#detachDocMove();
320
- this.#fallbackTimer.stop();
321
- this.#disengageTimer.stop();
322
- if (this.#active) this.#opts.setIsPointerInTransit(false);
323
- this.#active = false;
324
- this.#target = TARGET_NONE;
325
- this.#apex = null;
326
- this.#pointerPoint = null;
327
- this.#launchPoint = null;
328
- }
329
-
330
- #isPointerInDescendantSubContent(pt: Point): boolean {
331
- const contentNode = this.#opts.contentNode();
332
- if (!contentNode) return false;
333
- const doc = contentNode.ownerDocument;
334
- const el = doc.elementFromPoint(pt[0], pt[1]);
335
- if (!el) return false;
336
- const selector = this.#opts.subContentSelector();
337
- const subContent = el.closest(selector);
338
- if (!subContent || subContent === contentNode) return false;
339
- if (subContent.id) return !!contentNode.querySelector(`[aria-controls="${subContent.id}"]`);
340
- return false;
341
- }
342
-
343
- #onDocMove = (e: PointerEvent) => {
344
- if (!this.#active || !this.#target) return;
345
- if (!isMouseEvent(e)) return;
346
-
347
- const triggerNode = this.#opts.triggerNode();
348
- const contentNode = this.#opts.contentNode();
349
- if (!triggerNode || !contentNode) {
350
- this.#intentExit();
351
- return;
352
- }
353
-
354
- this.#fallbackTimer.stop();
355
- const pt: Point = [e.clientX, e.clientY];
356
- this.#pointerPoint = pt;
357
-
358
- const triggerRect = triggerNode.getBoundingClientRect();
359
- const contentRect = contentNode.getBoundingClientRect();
360
- if (this.#target & TARGET_CONTENT && isInsideRect(pt, contentRect)) {
361
- this.#disengage();
362
- return;
363
- }
364
- if (this.#target & TARGET_TRIGGER && isInsideInsetRect(pt, triggerRect, 4)) {
365
- this.#disengage();
366
- return;
367
- }
368
-
369
- if (this.#isPointerInDescendantSubContent(pt)) {
370
- this.#fallbackTimer.start();
371
- return;
372
- }
373
-
374
- const geo = this.#computePolygons(pt, this.#target);
375
- if (!geo) {
376
- this.#intentExit();
377
- return;
378
- }
379
-
380
- if (this.#isInSafeZone(pt, geo.corridor, geo.intent)) {
381
- this.#fallbackTimer.start();
382
- return;
383
- }
384
-
385
- this.#intentExit();
386
- };
387
-
388
- #attachDocMove() {
389
- if (this.#cleanupDocMove) return;
390
- const doc = (this.#opts.triggerNode() ?? this.#opts.contentNode())?.ownerDocument ?? document;
391
- const remove = on(doc, 'pointermove', this.#onDocMove, { capture: true });
392
- this.#cleanupDocMove = () => {
393
- remove();
394
- this.#cleanupDocMove = null;
395
- };
396
- }
397
-
398
- #detachDocMove() {
399
- this.#cleanupDocMove?.();
400
- }
401
-
402
- #clearVisuals() {
403
- this.#target = TARGET_NONE;
404
- this.#apex = null;
405
- this.#pointerPoint = null;
406
- }
407
-
408
- }
409
-
410
- function isInsideInsetRect(point: Point, rect: DOMRect, inset: number): boolean {
411
- return point[0] >= rect.left + inset && point[0] <= rect.right - inset && point[1] >= rect.top + inset && point[1] <= rect.bottom - inset;
412
- }
413
-
414
- /**
415
- * The submenu-chain "intent" safe zone: a precise triangular cone from the exit point to the
416
- * target's near edge (optionally widened to also cover `sourceRect`, e.g. the content rect when
417
- * aiming back at a parent trigger). Deliberately narrower than SafePolygon's hexagonal safe zone —
418
- * densely-packed sibling menu items need more precision than a single floating trigger/content pair.
419
- */
420
- function getIntentPolygon(exitPoint: Point, targetRect: DOMRect, side: SideBits, target: TargetBits, sourceRect?: DOMRect): Polygon {
421
- const edgeBuffer = 8;
422
- const effectiveSide = target & TARGET_TRIGGER ? flipSide(side) : side;
423
-
424
- const top = sourceRect ? Math.min(targetRect.top, sourceRect.top) - edgeBuffer : targetRect.top - edgeBuffer;
425
- const bottom = sourceRect ? Math.max(targetRect.bottom, sourceRect.bottom) + edgeBuffer : targetRect.bottom + edgeBuffer;
426
- const left = sourceRect ? Math.min(targetRect.left, sourceRect.left) - edgeBuffer : targetRect.left - edgeBuffer;
427
- const right = sourceRect ? Math.max(targetRect.right, sourceRect.right) + edgeBuffer : targetRect.right + edgeBuffer;
428
-
429
- const dir = effectiveSide & DIR_POS;
430
-
431
- if (effectiveSide & AXIS_VERTICAL) {
432
- // dir 0 = top (target is below the apex; cone opens toward targetRect.bottom), 1 = bottom
433
- const edgeY = dir === 0 ? targetRect.bottom : targetRect.top;
434
- return [exitPoint, [left, edgeY], [right, edgeY]];
435
- }
436
- // dir 0 = left (target is to the right; cone opens toward targetRect.right), 1 = right
437
- const edgeX = dir === 0 ? targetRect.right : targetRect.left;
438
- return [exitPoint, [edgeX, top], [edgeX, bottom]];
439
- }
440
-
441
- export class MenuRootState {
442
- static create(opts: MenuRootStateOpts) {
443
- const root = new MenuRootState(opts);
444
- return setMenuRoot(root);
445
- }
446
-
447
- readonly opts: MenuRootStateOpts;
448
- isKeyboard = $state(false);
449
- ignoreCloseAutoFocus = $state(false);
450
- isPointerInTransit = $state(false);
451
-
452
- constructor(opts: MenuRootStateOpts) {
453
- this.opts = opts;
454
- }
455
-
456
- getBitsAttr: typeof menuAttrs.getAttr = (part) => {
457
- return menuAttrs.getAttr(part, this.opts.variant.current);
458
- };
459
- }
460
-
461
- interface MenuMenuStateOpts
462
- extends
463
- WritableBoxedValues<{
464
- open: boolean;
465
- }>,
466
- ReadableBoxedValues<{
467
- onOpenChangeComplete: OnChangeFn<boolean>;
468
- }> {}
469
-
470
- export class MenuMenuState {
471
- static create(opts: MenuMenuStateOpts, root: MenuRootState) {
472
- return setMenuMenu(new MenuMenuState(opts, root, null));
473
- }
474
-
475
- readonly opts: MenuMenuStateOpts;
476
- readonly root: MenuRootState;
477
- readonly parentMenu: MenuMenuState | null;
478
- contentId = boxWith<string>(() => '');
479
- contentNode = $state<HTMLElement | null>(null);
480
- triggerNode = $state<HTMLElement | null>(null);
481
- readonly #completion: { readonly pending: boolean };
482
- /** Rendered: open, or closing with the exit still settling — the window the popper layer's scroll lock covers. */
483
- readonly present = $derived.by(() => this.opts.open.current || this.#completion.pending);
484
- /** Registered by the mounted content: keyboard-driven opens land focus on the first item. */
485
- focusFirstItem: (() => void) | null = null;
486
-
487
- constructor(opts: MenuMenuStateOpts, root: MenuRootState, parentMenu: MenuMenuState | null) {
488
- this.opts = opts;
489
- this.root = root;
490
- this.parentMenu = parentMenu;
491
-
492
- // Content stays mounted through its exit transition (CSS owns the motion; the closed state
493
- // is the content's `contentStyle`); completion is settle-based on the content node.
494
- this.#completion = useOpenChangeComplete(
495
- () => this.opts.open.current,
496
- () => this.contentNode,
497
- (open) => this.opts.onOpenChangeComplete.current(open),
498
- (open) => !open && this.shouldSkipExitAnimation(),
499
- );
500
-
501
- if (parentMenu) {
502
- $effect(() => {
503
- parentMenu.opts.open.current;
504
- untrack(() => {
505
- if (parentMenu.opts.open.current) return;
506
- this.opts.open.current = false;
507
- });
508
- });
509
- }
510
- }
511
-
512
- /** A menubar swap between top-level menus closes the outgoing one without its exit transition. */
513
- shouldSkipExitAnimation() {
514
- if (this.root.opts.variant.current !== 'menubar' || this.parentMenu !== null) return false;
515
- return this.root.opts.shouldSkipExitAnimation?.() ?? false;
516
- }
517
-
518
- toggleOpen() {
519
- this.opts.open.current = !this.opts.open.current;
520
- }
521
-
522
- onOpen() {
523
- this.opts.open.current = true;
524
- }
525
-
526
- onClose() {
527
- this.opts.open.current = false;
528
- }
529
- }
530
-
531
- interface MenuContentStateOpts
532
- extends
533
- WithRefOpts,
534
- ReadableBoxedValues<{
535
- loop: boolean;
536
- onCloseAutoFocus: (event: Event) => void;
537
- }> {
538
- isSub?: boolean;
539
- /** Rendered in flow (ContentStatic) rather than in a floating wrapper. */
540
- isStatic?: boolean;
541
- }
542
-
543
- export class MenuContentState {
544
- static create(opts: MenuContentStateOpts) {
545
- return setMenuContent(new MenuContentState(opts, getMenuMenu()));
546
- }
547
-
548
- readonly opts: MenuContentStateOpts;
549
- readonly parentMenu: MenuMenuState;
550
- readonly rovingFocusGroup: RovingFocusGroup;
551
- readonly domContext: DOMContext;
552
- readonly attachment: RefAttachment;
553
- readonly #typeahead: Typeahead<HTMLElement>;
554
- #isSub: boolean;
555
- #isStatic: boolean;
556
- /** Items of a closed (still mounted) sub-content are hidden, not candidates. */
557
- readonly #candidateSelector: string;
558
-
559
- constructor(opts: MenuContentStateOpts, parentMenu: MenuMenuState) {
560
- this.opts = opts;
561
- this.parentMenu = parentMenu;
562
- this.domContext = new DOMContext(opts.ref);
563
- this.attachment = attachRef(this.opts.ref, (v) => {
564
- if (this.parentMenu.contentNode !== v) {
565
- this.parentMenu.contentNode = v;
566
- }
567
- });
568
-
569
- parentMenu.contentId = opts.id;
570
-
571
- this.#isSub = opts.isSub ?? false;
572
- this.#isStatic = opts.isStatic ?? false;
573
- const root = parentMenu.root;
574
- this.#candidateSelector = `[${root.getBitsAttr('item')}]:not([data-disabled]):not([${root.getBitsAttr('sub-content')}][data-state='closed'] *)`;
575
- this.onkeydown = this.onkeydown.bind(this);
576
- this.onblur = this.onblur.bind(this);
577
- this.onfocus = this.onfocus.bind(this);
578
- this.handleInteractOutside = this.handleInteractOutside.bind(this);
579
-
580
- new MenuSubmenuIntent({
581
- contentNode: () => this.parentMenu.contentNode,
582
- triggerNode: () => this.parentMenu.triggerNode,
583
- parentContentNode: () => this.parentMenu.parentMenu?.contentNode ?? null,
584
- subContentSelector: () => `[${this.parentMenu.root.getBitsAttr('sub-content')}]`,
585
- enabled: () =>
586
- this.parentMenu.opts.open.current &&
587
- Boolean(this.parentMenu.triggerNode?.hasAttribute(this.parentMenu.root.getBitsAttr('sub-trigger'))),
588
- onIntentExit: (pointerPoint) => {
589
- this.parentMenu.opts.open.current = false;
590
- this.#dispatchPointerMoveToHoveredSubTrigger(pointerPoint);
591
- },
592
- setIsPointerInTransit: (value) => {
593
- this.parentMenu.root.isPointerInTransit = value;
594
- },
595
- });
596
-
597
- this.#typeahead = new Typeahead({
598
- getSearchText: textContentOf,
599
- getCurrentCandidate: () => this.domContext.getActiveElement(),
600
- onMatch: (node) => node.focus(),
601
- getWindow: () => this.domContext.getWindow(),
602
- });
603
- this.rovingFocusGroup = new RovingFocusGroup({
604
- rootNode: () => this.parentMenu.contentNode,
605
- candidateSelector: this.#candidateSelector,
606
- loop: () => this.opts.loop.current,
607
- orientation: () => 'vertical',
608
- });
609
-
610
- $effect(() => {
611
- this.parentMenu.focusFirstItem = () => {
612
- tick().then(() => {
613
- if (!this.parentMenu.root.isKeyboard) return;
614
- this.rovingFocusGroup.focusFirstCandidate();
615
- });
616
- };
617
- return () => {
618
- this.parentMenu.focusFirstItem = null;
619
- };
620
- });
621
-
622
- $effect(() => {
623
- if (!this.parentMenu.opts.open.current) this.#typeahead.reset();
624
- });
625
- }
626
-
627
- #getCandidateNodes() {
628
- const node = this.parentMenu.contentNode;
629
- if (!node) return [];
630
- return Array.from(node.querySelectorAll<HTMLElement>(this.#candidateSelector));
631
- }
632
-
633
- #isPointerMovingToSubmenu() {
634
- return this.parentMenu.root.isPointerInTransit;
635
- }
636
-
637
- #dispatchPointerMoveToHoveredSubTrigger(pointerPoint: Point | null) {
638
- if (!pointerPoint) return;
639
- const parentContentNode = this.parentMenu.parentMenu?.contentNode;
640
- if (!parentContentNode) return;
641
- const hoveredNode = this.domContext.getDocument().elementFromPoint(pointerPoint[0], pointerPoint[1]);
642
- if (!isElement(hoveredNode)) return;
643
- const hoveredSubTrigger = hoveredNode.closest<HTMLElement>(`[${this.parentMenu.root.getBitsAttr('sub-trigger')}]`);
644
- if (!hoveredSubTrigger || !parentContentNode.contains(hoveredSubTrigger)) return;
645
- if (hoveredSubTrigger === this.parentMenu.triggerNode) return;
646
- hoveredSubTrigger.dispatchEvent(
647
- new PointerEvent('pointermove', {
648
- bubbles: true,
649
- cancelable: true,
650
- pointerType: 'mouse',
651
- clientX: pointerPoint[0],
652
- clientY: pointerPoint[1],
653
- }),
654
- );
655
- }
656
-
657
- onCloseAutoFocus = (e: Event) => {
658
- this.opts.onCloseAutoFocus.current?.(e);
659
- if (e.defaultPrevented || this.#isSub) return;
660
- if (this.parentMenu.root.ignoreCloseAutoFocus) {
661
- e.preventDefault();
662
- return;
663
- }
664
-
665
- if (this.parentMenu.triggerNode && isTabbable(this.parentMenu.triggerNode)) {
666
- e.preventDefault();
667
- this.parentMenu.triggerNode.focus();
668
- }
669
- };
670
-
671
- handleTabKeyDown(e: BitsKeyboardEvent) {
672
- /**
673
- * We locate the root `menu`'s trigger by going up the tree until
674
- * we find a menu that has no parent. This will allow us to focus the next
675
- * tabbable element before/after the root trigger.
676
- */
677
- let rootMenu = this.parentMenu;
678
- while (rootMenu.parentMenu !== null) {
679
- rootMenu = rootMenu.parentMenu;
680
- }
681
- if (!rootMenu.triggerNode) return;
682
- e.preventDefault();
683
- const nodeToFocus = getTabbableFrom(rootMenu.triggerNode, e.shiftKey ? 'prev' : 'next');
684
- if (nodeToFocus) {
685
- /**
686
- * We set a flag to ignore the `onCloseAutoFocus` event handler
687
- * as well as the fallbacks inside the focus scope to prevent
688
- * race conditions causing focus to fall back to the body even
689
- * though we're trying to focus the next tabbable element.
690
- */
691
- this.parentMenu.root.ignoreCloseAutoFocus = true;
692
- rootMenu.onClose();
693
- tick().then(() => {
694
- nodeToFocus.focus();
695
- tick().then(() => {
696
- this.parentMenu.root.ignoreCloseAutoFocus = false;
697
- });
698
- });
699
- } else {
700
- this.domContext.getDocument().body.focus();
701
- }
702
- }
703
-
704
- onkeydown(e: BitsKeyboardEvent) {
705
- if (e.defaultPrevented) return;
706
- if (e.key === kbd.TAB) {
707
- this.handleTabKeyDown(e);
708
- return;
709
- }
710
-
711
- const target = e.target;
712
- const currentTarget = e.currentTarget;
713
- if (!isHTMLElement(target) || !isHTMLElement(currentTarget)) return;
714
-
715
- const isKeydownInside = target.closest(`[${this.parentMenu.root.getBitsAttr('content')}]`)?.id === this.parentMenu.contentId.current;
716
-
717
- const isModifierKey = e.ctrlKey || e.altKey || e.metaKey;
718
- const isCharacterKey = e.key.length === 1;
719
-
720
- const kbdFocusedEl = this.rovingFocusGroup.handleKeydown(target, e);
721
- if (kbdFocusedEl) return;
722
-
723
- // prevent space from being considered with typeahead
724
- if (e.code === 'Space') return;
725
-
726
- const candidateNodes = this.#getCandidateNodes();
727
-
728
- if (isKeydownInside) {
729
- if (!isModifierKey && isCharacterKey) {
730
- this.#typeahead.handleKey(e.key, candidateNodes);
731
- }
732
- }
733
-
734
- // focus first/last based on key pressed
735
- if ((e.target as HTMLElement)?.id !== this.parentMenu.contentId.current) return;
736
-
737
- if (!FIRST_LAST_KEYS.includes(e.key)) return;
738
- e.preventDefault();
739
-
740
- if (LAST_KEYS.includes(e.key)) {
741
- candidateNodes.reverse();
742
- }
743
- focusFirst(candidateNodes, () => this.domContext.getActiveElement());
744
- }
745
-
746
- get isTypingAhead() {
747
- return this.#typeahead.search !== '';
748
- }
749
-
750
- onblur(e: BitsFocusEvent) {
751
- if (!isElement(e.currentTarget)) return;
752
- if (!isElement(e.target)) return;
753
- // clear search buffer when leaving the menu
754
- if (!e.currentTarget.contains?.(e.target)) this.#typeahead.reset();
755
- }
756
-
757
- onfocus(_: BitsFocusEvent) {
758
- if (!this.parentMenu.root.isKeyboard) return;
759
- tick().then(() => this.rovingFocusGroup.focusFirstCandidate());
760
- }
761
-
762
- onItemEnter() {
763
- return this.#isPointerMovingToSubmenu();
764
- }
765
-
766
- onItemLeave(e: BitsPointerEvent) {
767
- if (e.currentTarget.hasAttribute(this.parentMenu.root.getBitsAttr('sub-trigger'))) return;
768
- if (this.#isPointerMovingToSubmenu() || this.parentMenu.root.isKeyboard) return;
769
- const contentNode = this.parentMenu.contentNode;
770
- contentNode?.focus({ preventScroll: true });
771
- this.rovingFocusGroup.setCurrentTabStopId('');
772
- }
773
-
774
- onTriggerLeave() {
775
- return this.#isPointerMovingToSubmenu();
776
- }
777
-
778
- handleInteractOutside(e: PointerEvent) {
779
- if (!isElementOrSVGElement(e.target)) return;
780
- const triggerId = this.parentMenu.triggerNode?.id;
781
- if (e.target.id === triggerId) {
782
- e.preventDefault();
783
- return;
784
- }
785
- if (e.target.closest(`#${triggerId}`)) {
786
- e.preventDefault();
787
- return;
788
- }
789
- /**
790
- * when the menu closes due to an outside pointer interaction (for example,
791
- * clicking another dropdown trigger), avoid focusing this menu's trigger
792
- * to prevent stealing focus from the new interaction target.
793
- */
794
- this.parentMenu.root.ignoreCloseAutoFocus = true;
795
- tick().then(() => {
796
- this.parentMenu.root.ignoreCloseAutoFocus = false;
797
- });
798
- }
799
-
800
- readonly snippetProps = $derived.by(() => ({ open: this.parentMenu.opts.open.current }));
801
-
802
- readonly props = $derived.by(
803
- () =>
804
- ({
805
- id: this.opts.id.current,
806
- role: 'menu',
807
- 'aria-orientation': 'vertical' as const,
808
- [this.parentMenu.root.getBitsAttr('content')]: '',
809
- 'data-state': getDataOpenClosed(this.parentMenu.opts.open.current),
810
- onkeydown: this.onkeydown,
811
- onblur: this.onblur,
812
- onfocus: this.onfocus,
813
- dir: this.parentMenu.root.opts.dir.current,
814
- // no `contain: layout` (upstream had it): layout containment makes this element the
815
- // containing block of its fixed sub-content, shrinking the sub's anchor position area
816
- // to this box; floating-ui compensated for containing blocks, CSS anchor cannot.
817
- style: {
818
- pointerEvents: 'auto',
819
- },
820
- ...this.attachment,
821
- }) as const,
822
- );
823
-
824
- /**
825
- * Inline style for the content element alone — `props.style` also reaches the floating wrapper
826
- * through PopperLayer, and hiding the wrapper would cancel the content's exit transition.
827
- * Always mounted: closed floating content is visibility:hidden (out of the a11y tree, not
828
- * focusable, and transitionable in every engine — see `popup-surface` in ui.css); closed static
829
- * content is display:none since it must leave the flow. The `popup-surface` utilities add the
830
- * motion; a menubar swap zeroes the exit.
831
- */
832
- readonly contentStyle = $derived.by(() => {
833
- if (this.parentMenu.opts.open.current) return {};
834
- return {
835
- ...(this.#isStatic ? { display: 'none' } : { visibility: 'hidden' }),
836
- ...(this.parentMenu.shouldSkipExitAnimation() ? { transitionDuration: '0s', transitionDelay: '0s' } : {}),
837
- };
838
- });
839
-
840
- readonly popperProps = {
841
- onCloseAutoFocus: (e: Event) => this.onCloseAutoFocus(e),
842
- };
843
- }
844
-
845
- interface MenuItemSharedStateOpts
846
- extends
847
- WithRefOpts,
848
- ReadableBoxedValues<{
849
- disabled: boolean;
850
- }> {}
851
-
852
- class MenuItemSharedState {
853
- readonly opts: MenuItemSharedStateOpts;
854
- readonly content: MenuContentState;
855
- readonly attachment: RefAttachment;
856
- #isFocused = $state(false);
857
-
858
- constructor(opts: MenuItemSharedStateOpts, content: MenuContentState) {
859
- this.opts = opts;
860
- this.content = content;
861
- this.attachment = attachRef(this.opts.ref);
862
- this.onpointermove = this.onpointermove.bind(this);
863
- this.onpointerleave = this.onpointerleave.bind(this);
864
- this.onfocus = this.onfocus.bind(this);
865
- this.onblur = this.onblur.bind(this);
866
- }
867
-
868
- onpointermove(e: BitsPointerEvent) {
869
- if (e.defaultPrevented) return;
870
- if (!isMouseEvent(e)) return;
871
-
872
- if (this.opts.disabled.current) {
873
- this.content.onItemLeave(e);
874
- } else {
875
- const defaultPrevented = this.content.onItemEnter();
876
- if (defaultPrevented) return;
877
- const item = e.currentTarget;
878
- if (!isHTMLElement(item)) return;
879
- item.focus({ preventScroll: true });
880
- }
881
- }
882
-
883
- onpointerleave(e: BitsPointerEvent) {
884
- if (e.defaultPrevented) return;
885
- if (!isMouseEvent(e)) return;
886
- this.content.onItemLeave(e);
887
- }
888
-
889
- onfocus(e: BitsFocusEvent) {
890
- tick().then(() => {
891
- if (e.defaultPrevented || this.opts.disabled.current) return;
892
- this.#isFocused = true;
893
- });
894
- }
895
-
896
- onblur(e: BitsFocusEvent) {
897
- tick().then(() => {
898
- if (e.defaultPrevented) return;
899
- this.#isFocused = false;
900
- });
901
- }
902
-
903
- readonly props = $derived.by(
904
- () =>
905
- ({
906
- id: this.opts.id.current,
907
- tabindex: -1,
908
- role: 'menuitem',
909
- 'aria-disabled': boolToStr(this.opts.disabled.current),
910
- 'data-disabled': boolToEmptyStrOrUndef(this.opts.disabled.current),
911
- 'data-highlighted': this.#isFocused ? '' : undefined,
912
- [this.content.parentMenu.root.getBitsAttr('item')]: '',
913
- //
914
- onpointermove: this.onpointermove,
915
- onpointerleave: this.onpointerleave,
916
- onfocus: this.onfocus,
917
- onblur: this.onblur,
918
- ...this.attachment,
919
- }) as const,
920
- );
921
- }
922
-
923
- type MenuItemCombinedProps = MenuItemSharedStateOpts & MenuItemStateOpts;
924
-
925
- interface MenuItemStateOpts extends ReadableBoxedValues<{
926
- onSelect: AnyFn;
927
- }> {}
928
-
929
- /** What an item kind does when selected: its own action, and whether the menu closes afterwards. */
930
- interface MenuItemSelect {
931
- closes: boolean;
932
- act?: () => void;
933
- }
934
-
935
- export class MenuItemState {
936
- static create(opts: MenuItemCombinedProps) {
937
- const item = new MenuItemSharedState(opts, getMenuContent());
938
- return new MenuItemState(opts, item, { closes: true });
939
- }
940
-
941
- readonly opts: MenuItemStateOpts;
942
- readonly item: MenuItemSharedState;
943
- readonly root: MenuRootState;
944
- readonly #select: MenuItemSelect;
945
- #isPointerDown = false;
946
-
947
- constructor(opts: MenuItemStateOpts, item: MenuItemSharedState, select: MenuItemSelect) {
948
- this.opts = opts;
949
- this.item = item;
950
- this.root = item.content.parentMenu.root;
951
- this.#select = select;
952
-
953
- this.onkeydown = this.onkeydown.bind(this);
954
- this.onclick = this.onclick.bind(this);
955
- this.onpointerdown = this.onpointerdown.bind(this);
956
- this.onpointerup = this.onpointerup.bind(this);
957
- }
958
-
959
- // The consumer's onSelect runs first; preventDefault only keeps the menu open, the item's own action always runs.
960
- #handleSelect() {
961
- if (this.item.opts.disabled.current) return;
962
- const selectEvent = new CustomEvent('menuitemselect', { bubbles: true, cancelable: true });
963
- this.opts.onSelect.current(selectEvent);
964
- this.#select.act?.();
965
- if (this.#select.closes && !selectEvent.defaultPrevented) this.root.opts.onClose();
966
- }
967
-
968
- onkeydown(e: BitsKeyboardEvent) {
969
- const isTypingAhead = this.item.content.isTypingAhead;
970
- if (this.item.opts.disabled.current || (isTypingAhead && e.key === kbd.SPACE)) return;
971
- if (SELECTION_KEYS.includes(e.key)) {
972
- if (!isHTMLElement(e.currentTarget)) return;
973
- e.currentTarget.click();
974
- /**
975
- * We prevent default browser behavior for selection keys as they should trigger
976
- * a selection only:
977
- * - prevents space from scrolling the page.
978
- * - if keydown causes focus to move, prevents keydown from firing on the new target.
979
- */
980
- e.preventDefault();
981
- }
982
- }
983
-
984
- onclick(_: BitsMouseEvent) {
985
- if (this.item.opts.disabled.current) return;
986
- this.#handleSelect();
987
- }
988
-
989
- // A press that started elsewhere (on the trigger, dragged here) gets its click synthesised; a
990
- // press that started here gets the native one. The content stays mounted across openings and
991
- // a checkbox item outlives many selects, so the flag resets per press.
992
- onpointerup(e: BitsPointerEvent) {
993
- if (e.defaultPrevented) return;
994
- const pressedHere = this.#isPointerDown;
995
- this.#isPointerDown = false;
996
- if (!pressedHere && isHTMLElement(e.currentTarget)) e.currentTarget.click();
997
- }
998
-
999
- onpointerdown(_: BitsPointerEvent) {
1000
- this.#isPointerDown = true;
1001
- }
1002
-
1003
- readonly props = $derived.by(() =>
1004
- mergeProps(this.item.props, {
1005
- onclick: this.onclick,
1006
- onpointerdown: this.onpointerdown,
1007
- onpointerup: this.onpointerup,
1008
- onkeydown: this.onkeydown,
1009
- }),
1010
- );
1011
- }
1012
-
1013
- interface MenuSubTriggerStateOpts extends MenuItemSharedStateOpts, Pick<MenuItemStateOpts, 'onSelect'> {
1014
- openDelay: ReadableBox<number>;
1015
- }
1016
-
1017
- export class MenuSubTriggerState {
1018
- static create(opts: MenuSubTriggerStateOpts) {
1019
- const content = getMenuContent();
1020
- const item = new MenuItemSharedState(opts, content);
1021
- const submenu = getMenuMenu();
1022
- return new MenuSubTriggerState(opts, item, content, submenu);
1023
- }
1024
- readonly opts: MenuSubTriggerStateOpts;
1025
- readonly item: MenuItemSharedState;
1026
- readonly content: MenuContentState;
1027
- readonly submenu: MenuMenuState;
1028
- readonly attachment: RefAttachment;
1029
- #openTimer = createEffectTimeout(() => {
1030
- if (this.submenu.root.isPointerInTransit) return;
1031
- this.submenu.onOpen();
1032
- }, () => this.opts.openDelay.current);
1033
-
1034
- constructor(opts: MenuSubTriggerStateOpts, item: MenuItemSharedState, content: MenuContentState, submenu: MenuMenuState) {
1035
- this.opts = opts;
1036
- this.item = item;
1037
- this.content = content;
1038
- this.submenu = submenu;
1039
- this.attachment = attachRef(this.opts.ref, (v) => (this.submenu.triggerNode = v));
1040
- this.onpointerleave = this.onpointerleave.bind(this);
1041
- this.onpointermove = this.onpointermove.bind(this);
1042
- this.onkeydown = this.onkeydown.bind(this);
1043
- this.onclick = this.onclick.bind(this);
1044
- }
1045
-
1046
- onpointermove(e: BitsPointerEvent) {
1047
- if (!isMouseEvent(e)) return;
1048
- if (this.submenu.root.isPointerInTransit) {
1049
- this.#openTimer.stop();
1050
- return;
1051
- }
1052
-
1053
- if (!this.item.opts.disabled.current && !this.submenu.opts.open.current && !this.#openTimer.pending) {
1054
- if (this.opts.openDelay.current <= 0) {
1055
- this.submenu.onOpen();
1056
- return;
1057
- }
1058
-
1059
- this.#openTimer.start();
1060
- }
1061
- }
1062
-
1063
- onpointerleave(e: BitsPointerEvent) {
1064
- if (!isMouseEvent(e)) return;
1065
- this.#openTimer.stop();
1066
- }
1067
-
1068
- onkeydown(e: BitsKeyboardEvent) {
1069
- const isTypingAhead = this.content.isTypingAhead;
1070
- if (this.item.opts.disabled.current || (isTypingAhead && e.key === kbd.SPACE)) return;
1071
-
1072
- if (SUB_OPEN_KEYS[this.submenu.root.opts.dir.current].includes(e.key)) {
1073
- e.currentTarget.click();
1074
- e.preventDefault();
1075
- }
1076
- }
1077
-
1078
- onclick(e: BitsMouseEvent) {
1079
- if (this.item.opts.disabled.current) return;
1080
- /**
1081
- * We manually focus because iOS Safari doesn't always focus on click (e.g. buttons)
1082
- * and we rely heavily on `onFocusOutside` for submenus to close when switching
1083
- * between separate submenus.
1084
- */
1085
- if (!isHTMLElement(e.currentTarget)) return;
1086
- e.currentTarget.focus();
1087
- const selectEvent = new CustomEvent('menusubtriggerselect', {
1088
- bubbles: true,
1089
- cancelable: true,
1090
- });
1091
- this.opts.onSelect.current(selectEvent);
1092
- if (!this.submenu.opts.open.current) {
1093
- this.submenu.onOpen();
1094
- tick().then(() => {
1095
- if (!this.submenu.contentNode) return;
1096
- this.submenu.focusFirstItem?.();
1097
- });
1098
- }
1099
- }
1100
-
1101
- readonly props = $derived.by(() =>
1102
- mergeProps(
1103
- {
1104
- 'aria-haspopup': 'menu',
1105
- 'aria-expanded': boolToStr(this.submenu.opts.open.current),
1106
- 'data-state': getDataOpenClosed(this.submenu.opts.open.current),
1107
- 'aria-controls': this.submenu.opts.open.current ? this.submenu.contentId.current : undefined,
1108
- [this.submenu.root.getBitsAttr('sub-trigger')]: '',
1109
- onclick: this.onclick,
1110
- onpointermove: this.onpointermove,
1111
- onpointerleave: this.onpointerleave,
1112
- onkeydown: this.onkeydown,
1113
- ...this.attachment,
1114
- },
1115
- this.item.props,
1116
- ),
1117
- );
1118
- }
1119
-
1120
- interface MenuCheckboxItemStateOpts
1121
- extends
1122
- WritableBoxedValues<{
1123
- checked: boolean;
1124
- indeterminate: boolean;
1125
- }>,
1126
- ReadableBoxedValues<{
1127
- value: string;
1128
- }> {}
1129
-
1130
- export class MenuCheckboxItemState {
1131
- static create(opts: MenuItemCombinedProps & MenuCheckboxItemStateOpts) {
1132
- return new MenuCheckboxItemState(opts, new MenuItemSharedState(opts, getMenuContent()));
1133
- }
1134
-
1135
- readonly opts: MenuCheckboxItemStateOpts;
1136
- readonly item: MenuItemState;
1137
- readonly groupChecked: () => boolean | undefined;
1138
-
1139
- constructor(opts: MenuItemCombinedProps & MenuCheckboxItemStateOpts, shared: MenuItemSharedState) {
1140
- this.opts = opts;
1141
- this.item = new MenuItemState(opts, shared, { closes: false, act: () => this.#toggle() });
1142
- this.groupChecked = joinGroup(hasMenuCheckboxGroup() ? getMenuCheckboxGroup() : null, opts);
1143
- }
1144
-
1145
- #toggle() {
1146
- if (this.opts.indeterminate.current) {
1147
- this.opts.indeterminate.current = false;
1148
- this.opts.checked.current = true;
1149
- } else {
1150
- this.opts.checked.current = !this.opts.checked.current;
1151
- }
1152
- }
1153
-
1154
- readonly snippetProps = $derived.by(() => ({
1155
- checked: this.opts.checked.current,
1156
- indeterminate: this.opts.indeterminate.current,
1157
- }));
1158
-
1159
- readonly props = $derived.by(
1160
- () =>
1161
- ({
1162
- ...this.item.props,
1163
- role: 'menuitemcheckbox',
1164
- 'aria-checked': getAriaChecked(this.opts.checked.current, this.opts.indeterminate.current),
1165
- 'data-state': getCheckedState(this.opts.checked.current),
1166
- [this.item.root.getBitsAttr('checkbox-item')]: '',
1167
- }) as const,
1168
- );
1169
- }
1170
-
1171
- interface MenuGroupStateOpts extends WithRefOpts {}
1172
-
1173
- export class MenuGroupState {
1174
- static create(opts: MenuGroupStateOpts) {
1175
- return setMenuGroup(new MenuGroupState(opts, getMenuRoot()));
1176
- }
1177
-
1178
- readonly opts: MenuGroupStateOpts;
1179
- readonly root: MenuRootState;
1180
- readonly attachment: RefAttachment;
1181
- groupHeadingId = $state<string | undefined>(undefined);
1182
-
1183
- constructor(opts: MenuGroupStateOpts, root: MenuRootState) {
1184
- this.opts = opts;
1185
- this.root = root;
1186
- this.attachment = attachRef(this.opts.ref);
1187
- }
1188
-
1189
- readonly props = $derived.by(
1190
- () =>
1191
- ({
1192
- id: this.opts.id.current,
1193
- role: 'group',
1194
- 'aria-labelledby': this.groupHeadingId,
1195
- [this.root.getBitsAttr('group')]: '',
1196
- ...this.attachment,
1197
- }) as const,
1198
- );
1199
- }
1200
-
1201
- interface MenuGroupHeadingStateOpts extends WithRefOpts {}
1202
-
1203
- export class MenuGroupHeadingState {
1204
- static create(opts: MenuGroupHeadingStateOpts) {
1205
- return new MenuGroupHeadingState(opts, getMenuGroup());
1206
- }
1207
- readonly opts: MenuGroupHeadingStateOpts;
1208
- readonly group: MenuGroupState | MenuRadioGroupState | MenuCheckboxGroupState;
1209
- readonly attachment: RefAttachment;
1210
-
1211
- constructor(opts: MenuGroupHeadingStateOpts, group: MenuGroupState | MenuRadioGroupState | MenuCheckboxGroupState) {
1212
- this.opts = opts;
1213
- this.group = group;
1214
- this.attachment = attachRef(this.opts.ref, (v) => (this.group.groupHeadingId = v?.id));
1215
- }
1216
-
1217
- readonly props = $derived.by(
1218
- () =>
1219
- ({
1220
- id: this.opts.id.current,
1221
- role: 'group',
1222
- [this.group.root.getBitsAttr('group-heading')]: '',
1223
- ...this.attachment,
1224
- }) as const,
1225
- );
1226
- }
1227
-
1228
- interface MenuSeparatorStateOpts extends WithRefOpts {}
1229
-
1230
- export class MenuSeparatorState {
1231
- static create(opts: MenuSeparatorStateOpts) {
1232
- return new MenuSeparatorState(opts, getMenuRoot());
1233
- }
1234
-
1235
- readonly opts: MenuSeparatorStateOpts;
1236
- readonly root: MenuRootState;
1237
- readonly attachment: RefAttachment;
1238
-
1239
- constructor(opts: MenuSeparatorStateOpts, root: MenuRootState) {
1240
- this.opts = opts;
1241
- this.root = root;
1242
- this.attachment = attachRef(this.opts.ref);
1243
- }
1244
-
1245
- readonly props = $derived.by(
1246
- () =>
1247
- ({
1248
- id: this.opts.id.current,
1249
- role: 'group',
1250
- [this.root.getBitsAttr('separator')]: '',
1251
- ...this.attachment,
1252
- }) as const,
1253
- );
1254
- }
1255
-
1256
- export class MenuArrowState {
1257
- static create() {
1258
- return new MenuArrowState(getMenuRoot());
1259
- }
1260
-
1261
- readonly root: MenuRootState;
1262
-
1263
- constructor(root: MenuRootState) {
1264
- this.root = root;
1265
- }
1266
-
1267
- readonly props = $derived.by(
1268
- () =>
1269
- ({
1270
- [this.root.getBitsAttr('arrow')]: '',
1271
- }) as const,
1272
- );
1273
- }
1274
-
1275
- interface MenuRadioGroupStateOpts
1276
- extends
1277
- WithRefOpts,
1278
- WritableBoxedValues<{
1279
- value: string;
1280
- }> {}
1281
-
1282
- export class MenuRadioGroupState {
1283
- static create(opts: MenuRadioGroupStateOpts) {
1284
- return setMenuGroup(setMenuRadioGroup(new MenuRadioGroupState(opts, getMenuContent())));
1285
- }
1286
- readonly opts: MenuRadioGroupStateOpts;
1287
- readonly content: MenuContentState;
1288
- readonly attachment: RefAttachment;
1289
- groupHeadingId = $state<string | null>(null);
1290
- root: MenuRootState;
1291
-
1292
- constructor(opts: MenuRadioGroupStateOpts, content: MenuContentState) {
1293
- this.opts = opts;
1294
- this.content = content;
1295
- this.root = content.parentMenu.root;
1296
- this.attachment = attachRef(this.opts.ref);
1297
- }
1298
-
1299
- setValue(v: string) {
1300
- if (this.opts.value.current === v) return;
1301
- this.opts.value.current = v;
1302
- }
1303
-
1304
- readonly props = $derived.by(
1305
- () =>
1306
- ({
1307
- id: this.opts.id.current,
1308
- [this.root.getBitsAttr('radio-group')]: '',
1309
- role: 'group',
1310
- 'aria-labelledby': this.groupHeadingId,
1311
- ...this.attachment,
1312
- }) as const,
1313
- );
1314
- }
1315
-
1316
- interface MenuRadioItemStateOpts
1317
- extends
1318
- WithRefOpts,
1319
- ReadableBoxedValues<{
1320
- value: string;
1321
- }> {}
1322
-
1323
- export class MenuRadioItemState {
1324
- static create(opts: MenuRadioItemStateOpts & MenuItemCombinedProps) {
1325
- return new MenuRadioItemState(opts, getMenuRadioGroup());
1326
- }
1327
- readonly opts: MenuRadioItemStateOpts;
1328
- readonly item: MenuItemState;
1329
- readonly group: MenuRadioGroupState;
1330
- readonly isChecked = $derived.by(() => this.group.opts.value.current === this.opts.value.current);
1331
-
1332
- constructor(opts: MenuRadioItemStateOpts & MenuItemCombinedProps, group: MenuRadioGroupState) {
1333
- this.opts = opts;
1334
- this.group = group;
1335
- this.item = new MenuItemState(opts, new MenuItemSharedState(opts, group.content), {
1336
- closes: true,
1337
- act: () => group.setValue(opts.value.current),
1338
- });
1339
- }
1340
-
1341
- readonly props = $derived.by(
1342
- () =>
1343
- ({
1344
- [this.group.root.getBitsAttr('radio-item')]: '',
1345
- ...this.item.props,
1346
- role: 'menuitemradio',
1347
- 'aria-checked': getAriaChecked(this.isChecked, false),
1348
- 'data-state': getCheckedState(this.isChecked),
1349
- }) as const,
1350
- );
1351
- }
1352
-
1353
- //
1354
- // DROPDOWN MENU TRIGGER
1355
- //
1356
-
1357
- interface DropdownMenuTriggerStateOpts
1358
- extends
1359
- WithRefOpts,
1360
- ReadableBoxedValues<{
1361
- disabled: boolean;
1362
- }> {}
1363
-
1364
- export class DropdownMenuTriggerState {
1365
- static create(opts: DropdownMenuTriggerStateOpts) {
1366
- return new DropdownMenuTriggerState(opts, getMenuMenu());
1367
- }
1368
-
1369
- readonly opts: DropdownMenuTriggerStateOpts;
1370
- readonly parentMenu: MenuMenuState;
1371
- readonly attachment: RefAttachment;
1372
-
1373
- constructor(opts: DropdownMenuTriggerStateOpts, parentMenu: MenuMenuState) {
1374
- this.opts = opts;
1375
- this.parentMenu = parentMenu;
1376
- this.attachment = attachRef(this.opts.ref, (v) => (this.parentMenu.triggerNode = v));
1377
- }
1378
-
1379
- onclick: MouseEventHandler<HTMLElement> = (e) => {
1380
- /**
1381
- * MacOS VoiceOver sends a click in Safari/Firefox bypassing the keydown event
1382
- * when V0+Space is pressed. Since we already handle the keydown event and the
1383
- * pointerdown events separately, we ignore it if the detail is not 0.
1384
- */
1385
- if (this.opts.disabled.current || e.detail !== 0) return;
1386
- this.parentMenu.toggleOpen();
1387
- e.preventDefault();
1388
- };
1389
-
1390
- onpointerdown: PointerEventHandler<HTMLElement> = (e) => {
1391
- if (this.opts.disabled.current) return;
1392
- if (e.pointerType === 'touch') return e.preventDefault();
1393
-
1394
- if (e.button === 0 && e.ctrlKey === false) {
1395
- this.parentMenu.toggleOpen();
1396
- // prevent trigger focusing when opening to allow
1397
- // the content to be given focus without competition
1398
- if (!this.parentMenu.opts.open.current) e.preventDefault();
1399
- }
1400
- };
1401
-
1402
- onpointerup: PointerEventHandler<HTMLElement> = (e) => {
1403
- if (this.opts.disabled.current) return;
1404
- if (e.pointerType === 'touch') {
1405
- e.preventDefault();
1406
- this.parentMenu.toggleOpen();
1407
- }
1408
- };
1409
-
1410
- onkeydown: KeyboardEventHandler<HTMLElement> = (e) => {
1411
- if (this.opts.disabled.current) return;
1412
- if (e.key === kbd.SPACE || e.key === kbd.ENTER) {
1413
- this.parentMenu.toggleOpen();
1414
- e.preventDefault();
1415
- return;
1416
- }
1417
- if (e.key === kbd.ARROW_DOWN) {
1418
- this.parentMenu.onOpen();
1419
- e.preventDefault();
1420
- }
1421
- };
1422
-
1423
- readonly #ariaControls = $derived.by(() => {
1424
- if (this.parentMenu.opts.open.current && this.parentMenu.contentId.current) return this.parentMenu.contentId.current;
1425
- return undefined;
1426
- });
1427
-
1428
- readonly props = $derived.by(
1429
- () =>
1430
- ({
1431
- id: this.opts.id.current,
1432
- disabled: this.opts.disabled.current,
1433
- 'aria-haspopup': 'menu',
1434
- 'aria-expanded': boolToStr(this.parentMenu.opts.open.current),
1435
- 'aria-controls': this.#ariaControls,
1436
- 'data-disabled': boolToEmptyStrOrUndef(this.opts.disabled.current),
1437
- 'data-state': getDataOpenClosed(this.parentMenu.opts.open.current),
1438
- [this.parentMenu.root.getBitsAttr('trigger')]: '',
1439
- //
1440
- onclick: this.onclick,
1441
- onpointerdown: this.onpointerdown,
1442
- onpointerup: this.onpointerup,
1443
- onkeydown: this.onkeydown,
1444
- ...this.attachment,
1445
- }) as const,
1446
- );
1447
- }
1448
-
1449
- interface ContextMenuTriggerStateOpts
1450
- extends
1451
- WithRefOpts,
1452
- ReadableBoxedValues<{
1453
- disabled: boolean;
1454
- }> {}
1455
-
1456
- export class ContextMenuTriggerState {
1457
- static create(opts: ContextMenuTriggerStateOpts) {
1458
- return new ContextMenuTriggerState(opts, getMenuMenu());
1459
- }
1460
-
1461
- readonly opts: ContextMenuTriggerStateOpts;
1462
- readonly parentMenu: MenuMenuState;
1463
- readonly attachment: RefAttachment;
1464
- #point = $state.raw({ x: 0, y: 0 });
1465
- // One stable Measurable: readers that measure inside a derived track `#point` through it.
1466
- readonly virtualElement: Measurable = {
1467
- getBoundingClientRect: () => DOMRect.fromRect({ width: 0, height: 0, ...this.#point }),
1468
- };
1469
- #longPressTimer = createEffectTimeout((e: BitsPointerEvent) => this.#handleOpen(e), () => 700);
1470
-
1471
- constructor(opts: ContextMenuTriggerStateOpts, parentMenu: MenuMenuState) {
1472
- this.opts = opts;
1473
- this.parentMenu = parentMenu;
1474
- this.attachment = attachRef(this.opts.ref, (v) => (this.parentMenu.triggerNode = v));
1475
- this.oncontextmenu = this.oncontextmenu.bind(this);
1476
- this.onpointerdown = this.onpointerdown.bind(this);
1477
- this.onpointermove = this.onpointermove.bind(this);
1478
- this.onpointercancel = this.onpointercancel.bind(this);
1479
- this.onpointerup = this.onpointerup.bind(this);
1480
-
1481
- $effect(() => {
1482
- const isDisabled = this.opts.disabled.current;
1483
- untrack(() => {
1484
- if (isDisabled) {
1485
- this.#longPressTimer.stop();
1486
- }
1487
- });
1488
- });
1489
-
1490
- }
1491
-
1492
- #handleOpen(e: BitsMouseEvent | BitsPointerEvent) {
1493
- this.#point = { x: e.clientX, y: e.clientY };
1494
- this.parentMenu.onOpen();
1495
- }
1496
-
1497
- oncontextmenu(e: BitsMouseEvent) {
1498
- if (e.defaultPrevented || this.opts.disabled.current) return;
1499
-
1500
- this.#longPressTimer.stop();
1501
- this.#handleOpen(e);
1502
- e.preventDefault();
1503
- this.parentMenu.contentNode?.focus();
1504
- }
1505
-
1506
- onpointerdown(e: BitsPointerEvent) {
1507
- if (this.opts.disabled.current || isMouseEvent(e)) return;
1508
- this.#longPressTimer.start(e);
1509
- }
1510
-
1511
- onpointermove(e: BitsPointerEvent) {
1512
- if (this.opts.disabled.current || isMouseEvent(e)) return;
1513
- this.#longPressTimer.stop();
1514
- }
1515
-
1516
- onpointercancel(e: BitsPointerEvent) {
1517
- if (this.opts.disabled.current || isMouseEvent(e)) return;
1518
- this.#longPressTimer.stop();
1519
- }
1520
-
1521
- onpointerup(e: BitsPointerEvent) {
1522
- if (this.opts.disabled.current || isMouseEvent(e)) return;
1523
- this.#longPressTimer.stop();
1524
- }
1525
-
1526
- readonly props = $derived.by(
1527
- () =>
1528
- ({
1529
- id: this.opts.id.current,
1530
- disabled: this.opts.disabled.current,
1531
- 'data-disabled': boolToEmptyStrOrUndef(this.opts.disabled.current),
1532
- 'data-state': getDataOpenClosed(this.parentMenu.opts.open.current),
1533
- [CONTEXT_MENU_TRIGGER_ATTR]: '',
1534
- tabindex: -1,
1535
- onpointerdown: this.onpointerdown,
1536
- onpointermove: this.onpointermove,
1537
- onpointercancel: this.onpointercancel,
1538
- onpointerup: this.onpointerup,
1539
- oncontextmenu: this.oncontextmenu,
1540
- ...this.attachment,
1541
- }) as const,
1542
- );
1543
- }
1544
-
1545
- interface MenuCheckboxGroupStateOpts
1546
- extends
1547
- WithRefOpts,
1548
- WritableBoxedValues<{
1549
- value: string[];
1550
- }> {}
1551
-
1552
- export class MenuCheckboxGroupState {
1553
- static create(opts: MenuCheckboxGroupStateOpts) {
1554
- return setMenuGroup(setMenuCheckboxGroup(new MenuCheckboxGroupState(opts, getMenuContent())));
1555
- }
1556
-
1557
- readonly opts: MenuCheckboxGroupStateOpts;
1558
- readonly content: MenuContentState;
1559
- readonly root: MenuRootState;
1560
- readonly attachment: RefAttachment;
1561
- groupHeadingId = $state<string | null>(null);
1562
-
1563
- constructor(opts: MenuCheckboxGroupStateOpts, content: MenuContentState) {
1564
- this.opts = opts;
1565
- this.content = content;
1566
- this.root = content.parentMenu.root;
1567
- this.attachment = attachRef(this.opts.ref);
1568
- }
1569
-
1570
- readonly props = $derived.by(
1571
- () =>
1572
- ({
1573
- id: this.opts.id.current,
1574
- [this.root.getBitsAttr('checkbox-group')]: '',
1575
- role: 'group',
1576
- 'aria-labelledby': this.groupHeadingId,
1577
- ...this.attachment,
1578
- }) as const,
1579
- );
1580
- }
1581
-
1582
- export class MenuSubmenuState {
1583
- static create(opts: MenuMenuStateOpts) {
1584
- const menu = getMenuMenu();
1585
- return setMenuMenu(new MenuMenuState(opts, menu.root, menu));
1586
- }
1587
- }