sheer-ui 0.0.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 (635) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +42 -0
  3. package/package.json +369 -0
  4. package/src/lib/VENDORED.md +109 -0
  5. package/src/lib/assets/ui.css +733 -0
  6. package/src/lib/blocks/Appearance.svelte +104 -0
  7. package/src/lib/blocks/BoundaryFailed.svelte +33 -0
  8. package/src/lib/blocks/ErrorPage.svelte +65 -0
  9. package/src/lib/blocks/Footer.svelte +71 -0
  10. package/src/lib/blocks/Header.svelte +67 -0
  11. package/src/lib/blocks/Heading.svelte +86 -0
  12. package/src/lib/blocks/MobileNav.svelte +169 -0
  13. package/src/lib/blocks/PhoneInput.svelte +68 -0
  14. package/src/lib/blocks/Section.svelte +34 -0
  15. package/src/lib/blocks/alert-modal/AlertModal.svelte +83 -0
  16. package/src/lib/blocks/alert-modal/alert-modal.svelte.ts +81 -0
  17. package/src/lib/blocks/alert-modal/index.ts +2 -0
  18. package/src/lib/blocks/calendar.svelte +155 -0
  19. package/src/lib/blocks/copy-button/copy-button.svelte +43 -0
  20. package/src/lib/blocks/copy-button/copy.svelte.ts +52 -0
  21. package/src/lib/blocks/copy-button/index.ts +2 -0
  22. package/src/lib/blocks/date-picker/date-picker-with-presets.svelte +109 -0
  23. package/src/lib/blocks/date-picker/date-picker.svelte +91 -0
  24. package/src/lib/blocks/date-picker/index.ts +13 -0
  25. package/src/lib/blocks/date-picker/range-date-picker.svelte +128 -0
  26. package/src/lib/blocks/index.ts +12 -0
  27. package/src/lib/blocks/mockups/Browser.svelte +22 -0
  28. package/src/lib/blocks/mockups/Phone.svelte +44 -0
  29. package/src/lib/blocks/mockups/index.ts +2 -0
  30. package/src/lib/blocks/tab-nav/index.ts +1 -0
  31. package/src/lib/blocks/tab-nav/tab-nav.svelte +46 -0
  32. package/src/lib/blocks/time-picker/index.ts +16 -0
  33. package/src/lib/blocks/time-picker/time-input.svelte +118 -0
  34. package/src/lib/blocks/time-picker/time-picker.svelte +93 -0
  35. package/src/lib/blocks/time-picker/time-range-input.svelte +34 -0
  36. package/src/lib/blocks/time-picker/time-range-picker.svelte +180 -0
  37. package/src/lib/blocks/time-picker/time-slots.ts +61 -0
  38. package/src/lib/blocks/user-avatar/UserAvatar.svelte +36 -0
  39. package/src/lib/blocks/user-avatar/index.ts +1 -0
  40. package/src/lib/blocks/verification-code-field/VerificationCodeField.svelte +57 -0
  41. package/src/lib/blocks/verification-code-field/index.ts +1 -0
  42. package/src/lib/components/accordion/accordion.svelte.ts +43 -0
  43. package/src/lib/components/accordion/components/accordion-content.svelte +17 -0
  44. package/src/lib/components/accordion/components/accordion-item.svelte +58 -0
  45. package/src/lib/components/accordion/components/accordion-trigger.svelte +38 -0
  46. package/src/lib/components/accordion/components/accordion.svelte +24 -0
  47. package/src/lib/components/accordion/index.ts +11 -0
  48. package/src/lib/components/accordion/types.ts +19 -0
  49. package/src/lib/components/alert/alert-action.svelte +11 -0
  50. package/src/lib/components/alert/alert-description.svelte +18 -0
  51. package/src/lib/components/alert/alert-title.svelte +18 -0
  52. package/src/lib/components/alert/alert.svelte +37 -0
  53. package/src/lib/components/alert/index.ts +17 -0
  54. package/src/lib/components/avatar/avatar.svelte.ts +154 -0
  55. package/src/lib/components/avatar/components/avatar-fallback.svelte +38 -0
  56. package/src/lib/components/avatar/components/avatar-image.svelte +47 -0
  57. package/src/lib/components/avatar/components/avatar.svelte +57 -0
  58. package/src/lib/components/avatar/index.ts +9 -0
  59. package/src/lib/components/avatar/types.ts +46 -0
  60. package/src/lib/components/badge/badge.svelte +49 -0
  61. package/src/lib/components/badge/index.ts +1 -0
  62. package/src/lib/components/breadcrumb/breadcrumb-ellipsis.svelte +23 -0
  63. package/src/lib/components/breadcrumb/breadcrumb-item.svelte +11 -0
  64. package/src/lib/components/breadcrumb/breadcrumb-link.svelte +32 -0
  65. package/src/lib/components/breadcrumb/breadcrumb-list.svelte +15 -0
  66. package/src/lib/components/breadcrumb/breadcrumb-page.svelte +18 -0
  67. package/src/lib/components/breadcrumb/breadcrumb-separator.svelte +22 -0
  68. package/src/lib/components/breadcrumb/breadcrumb.svelte +10 -0
  69. package/src/lib/components/breadcrumb/index.ts +25 -0
  70. package/src/lib/components/button/button.svelte +55 -0
  71. package/src/lib/components/button/index.ts +12 -0
  72. package/src/lib/components/button/variants.ts +51 -0
  73. package/src/lib/components/calendar/calendar.svelte.ts +1081 -0
  74. package/src/lib/components/calendar/components/calendar-cell.svelte +34 -0
  75. package/src/lib/components/calendar/components/calendar-day.svelte +36 -0
  76. package/src/lib/components/calendar/components/calendar-grid-body.svelte +29 -0
  77. package/src/lib/components/calendar/components/calendar-grid-head.svelte +29 -0
  78. package/src/lib/components/calendar/components/calendar-grid-row.svelte +29 -0
  79. package/src/lib/components/calendar/components/calendar-grid.svelte +29 -0
  80. package/src/lib/components/calendar/components/calendar-head-cell.svelte +29 -0
  81. package/src/lib/components/calendar/components/calendar-header.svelte +29 -0
  82. package/src/lib/components/calendar/components/calendar-heading.svelte +33 -0
  83. package/src/lib/components/calendar/components/calendar-month-select.svelte +50 -0
  84. package/src/lib/components/calendar/components/calendar-next-button.svelte +37 -0
  85. package/src/lib/components/calendar/components/calendar-prev-button.svelte +37 -0
  86. package/src/lib/components/calendar/components/calendar-year-select.svelte +50 -0
  87. package/src/lib/components/calendar/components/calendar.svelte +123 -0
  88. package/src/lib/components/calendar/exports.ts +31 -0
  89. package/src/lib/components/calendar/index.ts +2 -0
  90. package/src/lib/components/calendar/types.ts +417 -0
  91. package/src/lib/components/card/card-action.svelte +15 -0
  92. package/src/lib/components/card/card-content.svelte +11 -0
  93. package/src/lib/components/card/card-description.svelte +11 -0
  94. package/src/lib/components/card/card-footer.svelte +11 -0
  95. package/src/lib/components/card/card-header.svelte +18 -0
  96. package/src/lib/components/card/card-title.svelte +11 -0
  97. package/src/lib/components/card/card.svelte +15 -0
  98. package/src/lib/components/card/index.ts +25 -0
  99. package/src/lib/components/carousel/carousel-arrow.svelte +42 -0
  100. package/src/lib/components/carousel/carousel-content.svelte +25 -0
  101. package/src/lib/components/carousel/carousel-dots.svelte +21 -0
  102. package/src/lib/components/carousel/carousel-item.svelte +21 -0
  103. package/src/lib/components/carousel/carousel-next.svelte +9 -0
  104. package/src/lib/components/carousel/carousel-previous.svelte +9 -0
  105. package/src/lib/components/carousel/carousel.svelte +245 -0
  106. package/src/lib/components/carousel/carouselState.svelte.ts +30 -0
  107. package/src/lib/components/carousel/index.ts +24 -0
  108. package/src/lib/components/chart/chart-container.svelte +52 -0
  109. package/src/lib/components/chart/chart-style.svelte +29 -0
  110. package/src/lib/components/chart/chart-tooltip.svelte +163 -0
  111. package/src/lib/components/chart/chart-utils.ts +50 -0
  112. package/src/lib/components/chart/index.ts +6 -0
  113. package/src/lib/components/checkbox/checkbox.svelte.ts +199 -0
  114. package/src/lib/components/checkbox/components/checkbox-group-label.svelte +29 -0
  115. package/src/lib/components/checkbox/components/checkbox-group.svelte +48 -0
  116. package/src/lib/components/checkbox/components/checkbox.svelte +85 -0
  117. package/src/lib/components/checkbox/index.ts +9 -0
  118. package/src/lib/components/checkbox/types.ts +131 -0
  119. package/src/lib/components/checkbox-native/checkbox.svelte +96 -0
  120. package/src/lib/components/checkbox-native/index.ts +8 -0
  121. package/src/lib/components/collapsible/components/collapsible-content.svelte +16 -0
  122. package/src/lib/components/collapsible/components/collapsible-trigger.svelte +14 -0
  123. package/src/lib/components/collapsible/components/collapsible.svelte +68 -0
  124. package/src/lib/components/collapsible/index.ts +9 -0
  125. package/src/lib/components/collapsible/types.ts +25 -0
  126. package/src/lib/components/combobox/components/combobox-arrow.svelte +8 -0
  127. package/src/lib/components/combobox/components/combobox-input.svelte +46 -0
  128. package/src/lib/components/combobox/components/combobox-trigger.svelte +44 -0
  129. package/src/lib/components/combobox/components/combobox.svelte +83 -0
  130. package/src/lib/components/combobox/index.ts +30 -0
  131. package/src/lib/components/combobox/select/components/select-content-static.svelte +56 -0
  132. package/src/lib/components/combobox/select/components/select-content.svelte +95 -0
  133. package/src/lib/components/combobox/select/components/select-group-heading.svelte +51 -0
  134. package/src/lib/components/combobox/select/components/select-group.svelte +51 -0
  135. package/src/lib/components/combobox/select/components/select-hidden-input.svelte +16 -0
  136. package/src/lib/components/combobox/select/components/select-item.svelte +86 -0
  137. package/src/lib/components/combobox/select/components/select-scroll-down-button.svelte +41 -0
  138. package/src/lib/components/combobox/select/components/select-scroll-up-button.svelte +34 -0
  139. package/src/lib/components/combobox/select/components/select-trigger.svelte +32 -0
  140. package/src/lib/components/combobox/select/components/select-value.svelte +40 -0
  141. package/src/lib/components/combobox/select/components/select-viewport.svelte +29 -0
  142. package/src/lib/components/combobox/select/components/select.svelte +92 -0
  143. package/src/lib/components/combobox/select/select.svelte.ts +1596 -0
  144. package/src/lib/components/combobox/select/types.ts +291 -0
  145. package/src/lib/components/combobox/types.ts +77 -0
  146. package/src/lib/components/command/command-dialog.svelte +42 -0
  147. package/src/lib/components/command/command.svelte.ts +1506 -0
  148. package/src/lib/components/command/components/_command-label.svelte +31 -0
  149. package/src/lib/components/command/components/command-empty.svelte +34 -0
  150. package/src/lib/components/command/components/command-group-heading.svelte +29 -0
  151. package/src/lib/components/command/components/command-group-items.svelte +31 -0
  152. package/src/lib/components/command/components/command-group.svelte +76 -0
  153. package/src/lib/components/command/components/command-input.svelte +55 -0
  154. package/src/lib/components/command/components/command-item.svelte +61 -0
  155. package/src/lib/components/command/components/command-link-item.svelte +61 -0
  156. package/src/lib/components/command/components/command-list.svelte +41 -0
  157. package/src/lib/components/command/components/command-loading.svelte +30 -0
  158. package/src/lib/components/command/components/command-separator.svelte +34 -0
  159. package/src/lib/components/command/components/command-viewport.svelte +29 -0
  160. package/src/lib/components/command/components/command.svelte +143 -0
  161. package/src/lib/components/command/compute-command-score.ts +207 -0
  162. package/src/lib/components/command/index.ts +29 -0
  163. package/src/lib/components/command/types.ts +222 -0
  164. package/src/lib/components/command/utils.ts +30 -0
  165. package/src/lib/components/context-menu/components/context-menu-content-static.svelte +22 -0
  166. package/src/lib/components/context-menu/components/context-menu-content.svelte +22 -0
  167. package/src/lib/components/context-menu/components/context-menu-trigger.svelte +46 -0
  168. package/src/lib/components/context-menu/components/context-menu.svelte +8 -0
  169. package/src/lib/components/context-menu/index.ts +39 -0
  170. package/src/lib/components/context-menu/types.ts +56 -0
  171. package/src/lib/components/data-table/column-helpers.ts +97 -0
  172. package/src/lib/components/data-table/data-table-checkbox.svelte +25 -0
  173. package/src/lib/components/data-table/data-table-sort-button.svelte +16 -0
  174. package/src/lib/components/data-table/flex-render.svelte +42 -0
  175. package/src/lib/components/data-table/index.ts +29 -0
  176. package/src/lib/components/data-table/render-helpers.ts +105 -0
  177. package/src/lib/components/data-table/table-cell.svelte +9 -0
  178. package/src/lib/components/data-table/table-column-header.svelte +51 -0
  179. package/src/lib/components/data-table/table-faceted-filter.svelte +109 -0
  180. package/src/lib/components/data-table/table-pagination.svelte +54 -0
  181. package/src/lib/components/data-table/table-priority-cell.svelte +22 -0
  182. package/src/lib/components/data-table/table-row-actions.svelte +29 -0
  183. package/src/lib/components/data-table/table-status-cell.svelte +34 -0
  184. package/src/lib/components/data-table/table-title-cell.svelte +24 -0
  185. package/src/lib/components/data-table/table-toolbar.svelte +55 -0
  186. package/src/lib/components/data-table/table-view-options.svelte +25 -0
  187. package/src/lib/components/date-field/components/date-field-hidden-input.svelte +9 -0
  188. package/src/lib/components/date-field/components/date-field-input.svelte +33 -0
  189. package/src/lib/components/date-field/components/date-field-label.svelte +29 -0
  190. package/src/lib/components/date-field/components/date-field-segment.svelte +29 -0
  191. package/src/lib/components/date-field/components/date-field.svelte +106 -0
  192. package/src/lib/components/date-field/date-field.svelte.ts +1474 -0
  193. package/src/lib/components/date-field/index.ts +11 -0
  194. package/src/lib/components/date-field/types.ts +165 -0
  195. package/src/lib/components/date-range-field/components/date-range-field-input.svelte +36 -0
  196. package/src/lib/components/date-range-field/components/date-range-field-label.svelte +29 -0
  197. package/src/lib/components/date-range-field/components/date-range-field.svelte +106 -0
  198. package/src/lib/components/date-range-field/date-range-field.svelte.ts +212 -0
  199. package/src/lib/components/date-range-field/index.ts +11 -0
  200. package/src/lib/components/date-range-field/types.ts +171 -0
  201. package/src/lib/components/dialog/components/dialog-close.svelte +31 -0
  202. package/src/lib/components/dialog/components/dialog-content-headless.svelte +104 -0
  203. package/src/lib/components/dialog/components/dialog-content.svelte +69 -0
  204. package/src/lib/components/dialog/components/dialog-description.svelte +29 -0
  205. package/src/lib/components/dialog/components/dialog-overlay.svelte +31 -0
  206. package/src/lib/components/dialog/components/dialog-title.svelte +30 -0
  207. package/src/lib/components/dialog/components/dialog-trigger.svelte +30 -0
  208. package/src/lib/components/dialog/components/dialog.svelte +21 -0
  209. package/src/lib/components/dialog/components/modal-surface.svelte +131 -0
  210. package/src/lib/components/dialog/dialog.svelte.ts +371 -0
  211. package/src/lib/components/dialog/index.ts +19 -0
  212. package/src/lib/components/dialog/types.ts +105 -0
  213. package/src/lib/components/drawer/drawer-close.svelte +7 -0
  214. package/src/lib/components/drawer/drawer-content.svelte +91 -0
  215. package/src/lib/components/drawer/drawer-description.svelte +8 -0
  216. package/src/lib/components/drawer/drawer-footer.svelte +11 -0
  217. package/src/lib/components/drawer/drawer-header.svelte +11 -0
  218. package/src/lib/components/drawer/drawer-nested.svelte +44 -0
  219. package/src/lib/components/drawer/drawer-overlay.svelte +60 -0
  220. package/src/lib/components/drawer/drawer-portal.svelte +10 -0
  221. package/src/lib/components/drawer/drawer-title.svelte +8 -0
  222. package/src/lib/components/drawer/drawer-trigger.svelte +7 -0
  223. package/src/lib/components/drawer/drawer.svelte +290 -0
  224. package/src/lib/components/drawer/index.ts +37 -0
  225. package/src/lib/components/dropdown-menu/components/dropdown-menu-content-static.svelte +22 -0
  226. package/src/lib/components/dropdown-menu/components/dropdown-menu-content.svelte +22 -0
  227. package/src/lib/components/dropdown-menu/index.ts +39 -0
  228. package/src/lib/components/dropdown-menu/types.ts +41 -0
  229. package/src/lib/components/empty/empty-content.svelte +15 -0
  230. package/src/lib/components/empty/empty-description.svelte +15 -0
  231. package/src/lib/components/empty/empty-header.svelte +15 -0
  232. package/src/lib/components/empty/empty-media.svelte +21 -0
  233. package/src/lib/components/empty/empty-title.svelte +11 -0
  234. package/src/lib/components/empty/empty.svelte +18 -0
  235. package/src/lib/components/empty/index.ts +22 -0
  236. package/src/lib/components/empty/variants.ts +16 -0
  237. package/src/lib/components/field/field-content.svelte +14 -0
  238. package/src/lib/components/field/field-description.svelte +19 -0
  239. package/src/lib/components/field/field-error.svelte +47 -0
  240. package/src/lib/components/field/field-group.svelte +17 -0
  241. package/src/lib/components/field/field-label.svelte +18 -0
  242. package/src/lib/components/field/field-legend.svelte +23 -0
  243. package/src/lib/components/field/field-separator.svelte +32 -0
  244. package/src/lib/components/field/field-set.svelte +14 -0
  245. package/src/lib/components/field/field-title.svelte +14 -0
  246. package/src/lib/components/field/field.svelte +36 -0
  247. package/src/lib/components/field/index.ts +32 -0
  248. package/src/lib/components/field/variants.ts +19 -0
  249. package/src/lib/components/input/file-input.svelte +26 -0
  250. package/src/lib/components/input/index.ts +12 -0
  251. package/src/lib/components/input/input.svelte +24 -0
  252. package/src/lib/components/input/variants.ts +28 -0
  253. package/src/lib/components/item/index.ts +34 -0
  254. package/src/lib/components/item/item-actions.svelte +11 -0
  255. package/src/lib/components/item/item-content.svelte +15 -0
  256. package/src/lib/components/item/item-description.svelte +18 -0
  257. package/src/lib/components/item/item-footer.svelte +11 -0
  258. package/src/lib/components/item/item-group.svelte +16 -0
  259. package/src/lib/components/item/item-header.svelte +11 -0
  260. package/src/lib/components/item/item-media.svelte +37 -0
  261. package/src/lib/components/item/item-separator.svelte +9 -0
  262. package/src/lib/components/item/item-title.svelte +15 -0
  263. package/src/lib/components/item/item.svelte +61 -0
  264. package/src/lib/components/kbd/index.ts +10 -0
  265. package/src/lib/components/kbd/kbd-group.svelte +11 -0
  266. package/src/lib/components/kbd/kbd.svelte +18 -0
  267. package/src/lib/components/label/exports.ts +2 -0
  268. package/src/lib/components/label/index.ts +2 -0
  269. package/src/lib/components/label/label.svelte +39 -0
  270. package/src/lib/components/label/label.svelte.ts +39 -0
  271. package/src/lib/components/label/types.ts +7 -0
  272. package/src/lib/components/link-preview/components/link-preview-content.svelte +60 -0
  273. package/src/lib/components/link-preview/components/link-preview-trigger.svelte +29 -0
  274. package/src/lib/components/link-preview/components/link-preview.svelte +34 -0
  275. package/src/lib/components/link-preview/exports.ts +11 -0
  276. package/src/lib/components/link-preview/index.ts +2 -0
  277. package/src/lib/components/link-preview/link-preview.svelte.ts +270 -0
  278. package/src/lib/components/link-preview/types.ts +102 -0
  279. package/src/lib/components/menu/components/menu-arrow.svelte +14 -0
  280. package/src/lib/components/menu/components/menu-checkbox-group.svelte +42 -0
  281. package/src/lib/components/menu/components/menu-checkbox-item.svelte +85 -0
  282. package/src/lib/components/menu/components/menu-content.svelte +98 -0
  283. package/src/lib/components/menu/components/menu-group-heading.svelte +47 -0
  284. package/src/lib/components/menu/components/menu-group.svelte +36 -0
  285. package/src/lib/components/menu/components/menu-item.svelte +58 -0
  286. package/src/lib/components/menu/components/menu-radio-group.svelte +44 -0
  287. package/src/lib/components/menu/components/menu-radio-item.svelte +65 -0
  288. package/src/lib/components/menu/components/menu-separator.svelte +38 -0
  289. package/src/lib/components/menu/components/menu-sub-content-static.svelte +8 -0
  290. package/src/lib/components/menu/components/menu-sub-content.svelte +133 -0
  291. package/src/lib/components/menu/components/menu-sub-trigger.svelte +60 -0
  292. package/src/lib/components/menu/components/menu-sub.svelte +23 -0
  293. package/src/lib/components/menu/components/menu-trigger.svelte +50 -0
  294. package/src/lib/components/menu/components/menu.svelte +58 -0
  295. package/src/lib/components/menu/exports.ts +38 -0
  296. package/src/lib/components/menu/menu.svelte.ts +1599 -0
  297. package/src/lib/components/menu/types.ts +285 -0
  298. package/src/lib/components/menu/utils.ts +68 -0
  299. package/src/lib/components/menubar/components/menubar-content-static.svelte +50 -0
  300. package/src/lib/components/menubar/components/menubar-content.svelte +54 -0
  301. package/src/lib/components/menubar/components/menubar-menu.svelte +34 -0
  302. package/src/lib/components/menubar/components/menubar-trigger.svelte +50 -0
  303. package/src/lib/components/menubar/components/menubar.svelte +57 -0
  304. package/src/lib/components/menubar/exports.ts +44 -0
  305. package/src/lib/components/menubar/index.ts +2 -0
  306. package/src/lib/components/menubar/menubar.svelte.ts +394 -0
  307. package/src/lib/components/menubar/types.ts +97 -0
  308. package/src/lib/components/meter/components/meter.svelte +41 -0
  309. package/src/lib/components/meter/exports.ts +2 -0
  310. package/src/lib/components/meter/index.ts +2 -0
  311. package/src/lib/components/meter/meter.svelte.ts +47 -0
  312. package/src/lib/components/meter/types.ts +28 -0
  313. package/src/lib/components/navigation-menu/components/navigation-menu-content-impl.svelte +85 -0
  314. package/src/lib/components/navigation-menu/components/navigation-menu-content.svelte +58 -0
  315. package/src/lib/components/navigation-menu/components/navigation-menu-indicator-impl.svelte +29 -0
  316. package/src/lib/components/navigation-menu/components/navigation-menu-indicator.svelte +56 -0
  317. package/src/lib/components/navigation-menu/components/navigation-menu-item.svelte +56 -0
  318. package/src/lib/components/navigation-menu/components/navigation-menu-link.svelte +64 -0
  319. package/src/lib/components/navigation-menu/components/navigation-menu-list.svelte +59 -0
  320. package/src/lib/components/navigation-menu/components/navigation-menu-sub.svelte +46 -0
  321. package/src/lib/components/navigation-menu/components/navigation-menu-trigger.svelte +80 -0
  322. package/src/lib/components/navigation-menu/components/navigation-menu-viewport.svelte +63 -0
  323. package/src/lib/components/navigation-menu/components/navigation-menu.svelte +80 -0
  324. package/src/lib/components/navigation-menu/index.ts +28 -0
  325. package/src/lib/components/navigation-menu/navigation-menu.svelte.ts +1092 -0
  326. package/src/lib/components/navigation-menu/types.ts +189 -0
  327. package/src/lib/components/pagination/components/pagination-next-button.svelte +60 -0
  328. package/src/lib/components/pagination/components/pagination-page.svelte +65 -0
  329. package/src/lib/components/pagination/components/pagination-prev-button.svelte +60 -0
  330. package/src/lib/components/pagination/components/pagination.svelte +65 -0
  331. package/src/lib/components/pagination/index.ts +11 -0
  332. package/src/lib/components/pagination/pagination.svelte.ts +275 -0
  333. package/src/lib/components/pagination/types.ts +100 -0
  334. package/src/lib/components/pin-input/components/pin-input-cell.svelte +49 -0
  335. package/src/lib/components/pin-input/components/pin-input.svelte +76 -0
  336. package/src/lib/components/pin-input/exports.ts +4 -0
  337. package/src/lib/components/pin-input/index.ts +2 -0
  338. package/src/lib/components/pin-input/pin-input.svelte.ts +541 -0
  339. package/src/lib/components/pin-input/types.ts +118 -0
  340. package/src/lib/components/pin-input/usePasswordManager.svelte.ts +122 -0
  341. package/src/lib/components/popover/components/popover-close.svelte +38 -0
  342. package/src/lib/components/popover/components/popover-content.svelte +70 -0
  343. package/src/lib/components/popover/components/popover-header.svelte +11 -0
  344. package/src/lib/components/popover/components/popover-title.svelte +11 -0
  345. package/src/lib/components/popover/components/popover-trigger.svelte +44 -0
  346. package/src/lib/components/popover/components/popover.svelte +26 -0
  347. package/src/lib/components/popover/exports.ts +13 -0
  348. package/src/lib/components/popover/index.ts +2 -0
  349. package/src/lib/components/popover/popover.svelte.ts +392 -0
  350. package/src/lib/components/popover/types.ts +92 -0
  351. package/src/lib/components/progress/components/progress.svelte +56 -0
  352. package/src/lib/components/progress/exports.ts +3 -0
  353. package/src/lib/components/progress/index.ts +2 -0
  354. package/src/lib/components/progress/progress.svelte.ts +58 -0
  355. package/src/lib/components/progress/types.ts +28 -0
  356. package/src/lib/components/radio-group/context.ts +13 -0
  357. package/src/lib/components/radio-group/index.ts +10 -0
  358. package/src/lib/components/radio-group/radio-group-item.svelte +67 -0
  359. package/src/lib/components/radio-group/radio-group.svelte +87 -0
  360. package/src/lib/components/range-calendar/components/range-calendar-cell.svelte +31 -0
  361. package/src/lib/components/range-calendar/components/range-calendar-day.svelte +33 -0
  362. package/src/lib/components/range-calendar/components/range-calendar.svelte +120 -0
  363. package/src/lib/components/range-calendar/exports.ts +31 -0
  364. package/src/lib/components/range-calendar/index.ts +2 -0
  365. package/src/lib/components/range-calendar/range-calendar.svelte.ts +739 -0
  366. package/src/lib/components/range-calendar/types.ts +258 -0
  367. package/src/lib/components/resizable/index.ts +15 -0
  368. package/src/lib/components/resizable/resizable-handle.svelte +30 -0
  369. package/src/lib/components/resizable/resizable-pane-group.svelte +19 -0
  370. package/src/lib/components/scroll-area/components/scroll-area-corner-impl.svelte +34 -0
  371. package/src/lib/components/scroll-area/components/scroll-area-corner.svelte +18 -0
  372. package/src/lib/components/scroll-area/components/scroll-area-scrollbar-auto.svelte +15 -0
  373. package/src/lib/components/scroll-area/components/scroll-area-scrollbar-hover.svelte +22 -0
  374. package/src/lib/components/scroll-area/components/scroll-area-scrollbar-scroll.svelte +16 -0
  375. package/src/lib/components/scroll-area/components/scroll-area-scrollbar-shared.svelte +19 -0
  376. package/src/lib/components/scroll-area/components/scroll-area-scrollbar-visible.svelte +16 -0
  377. package/src/lib/components/scroll-area/components/scroll-area-scrollbar-x.svelte +23 -0
  378. package/src/lib/components/scroll-area/components/scroll-area-scrollbar-y.svelte +24 -0
  379. package/src/lib/components/scroll-area/components/scroll-area-scrollbar.svelte +56 -0
  380. package/src/lib/components/scroll-area/components/scroll-area-thumb-impl.svelte +49 -0
  381. package/src/lib/components/scroll-area/components/scroll-area-thumb.svelte +21 -0
  382. package/src/lib/components/scroll-area/components/scroll-area-viewport.svelte +39 -0
  383. package/src/lib/components/scroll-area/components/scroll-area.svelte +82 -0
  384. package/src/lib/components/scroll-area/exports.ts +13 -0
  385. package/src/lib/components/scroll-area/index.ts +2 -0
  386. package/src/lib/components/scroll-area/scroll-area.svelte.ts +946 -0
  387. package/src/lib/components/scroll-area/types.ts +67 -0
  388. package/src/lib/components/select/index.ts +5 -0
  389. package/src/lib/components/select/select-opt-group.svelte +10 -0
  390. package/src/lib/components/select/select-option.svelte +15 -0
  391. package/src/lib/components/select/select.svelte +281 -0
  392. package/src/lib/components/separator/components/separator.svelte +49 -0
  393. package/src/lib/components/separator/index.ts +3 -0
  394. package/src/lib/components/separator/separator.svelte.ts +43 -0
  395. package/src/lib/components/separator/types.ts +22 -0
  396. package/src/lib/components/sheet/components/sheet-close.svelte +8 -0
  397. package/src/lib/components/sheet/components/sheet-content.svelte +108 -0
  398. package/src/lib/components/sheet/components/sheet-description.svelte +9 -0
  399. package/src/lib/components/sheet/components/sheet-footer.svelte +11 -0
  400. package/src/lib/components/sheet/components/sheet-header.svelte +11 -0
  401. package/src/lib/components/sheet/components/sheet-overlay.svelte +13 -0
  402. package/src/lib/components/sheet/components/sheet-title.svelte +9 -0
  403. package/src/lib/components/sheet/components/sheet-trigger.svelte +8 -0
  404. package/src/lib/components/sheet/index.ts +47 -0
  405. package/src/lib/components/sheet/variants.ts +20 -0
  406. package/src/lib/components/sidebar/constants.ts +6 -0
  407. package/src/lib/components/sidebar/context.svelte.ts +54 -0
  408. package/src/lib/components/sidebar/index.ts +77 -0
  409. package/src/lib/components/sidebar/sidebar-content.svelte +16 -0
  410. package/src/lib/components/sidebar/sidebar-desktop-surface.svelte +60 -0
  411. package/src/lib/components/sidebar/sidebar-footer.svelte +11 -0
  412. package/src/lib/components/sidebar/sidebar-group-action.svelte +34 -0
  413. package/src/lib/components/sidebar/sidebar-group-content.svelte +16 -0
  414. package/src/lib/components/sidebar/sidebar-group-label.svelte +34 -0
  415. package/src/lib/components/sidebar/sidebar-group.svelte +16 -0
  416. package/src/lib/components/sidebar/sidebar-header.svelte +11 -0
  417. package/src/lib/components/sidebar/sidebar-input.svelte +14 -0
  418. package/src/lib/components/sidebar/sidebar-inset.svelte +18 -0
  419. package/src/lib/components/sidebar/sidebar-menu-action.svelte +38 -0
  420. package/src/lib/components/sidebar/sidebar-menu-badge.svelte +19 -0
  421. package/src/lib/components/sidebar/sidebar-menu-button.svelte +99 -0
  422. package/src/lib/components/sidebar/sidebar-menu-item.svelte +21 -0
  423. package/src/lib/components/sidebar/sidebar-menu-skeleton.svelte +34 -0
  424. package/src/lib/components/sidebar/sidebar-menu-sub-button.svelte +40 -0
  425. package/src/lib/components/sidebar/sidebar-menu-sub-item.svelte +16 -0
  426. package/src/lib/components/sidebar/sidebar-menu-sub.svelte +19 -0
  427. package/src/lib/components/sidebar/sidebar-menu.svelte +21 -0
  428. package/src/lib/components/sidebar/sidebar-mobile-surface.svelte +48 -0
  429. package/src/lib/components/sidebar/sidebar-provider.svelte +60 -0
  430. package/src/lib/components/sidebar/sidebar-rail.svelte +36 -0
  431. package/src/lib/components/sidebar/sidebar-separator.svelte +9 -0
  432. package/src/lib/components/sidebar/sidebar-trigger.svelte +35 -0
  433. package/src/lib/components/sidebar/sidebar.svelte +30 -0
  434. package/src/lib/components/sidebar/types.ts +14 -0
  435. package/src/lib/components/skeleton/index.ts +7 -0
  436. package/src/lib/components/skeleton/skeleton.svelte +9 -0
  437. package/src/lib/components/slider/components/slider-range.svelte +37 -0
  438. package/src/lib/components/slider/components/slider-thumb-label.svelte +42 -0
  439. package/src/lib/components/slider/components/slider-thumb.svelte +46 -0
  440. package/src/lib/components/slider/components/slider-tick-label.svelte +42 -0
  441. package/src/lib/components/slider/components/slider-tick.svelte +28 -0
  442. package/src/lib/components/slider/components/slider.svelte +136 -0
  443. package/src/lib/components/slider/helpers.ts +249 -0
  444. package/src/lib/components/slider/index.ts +15 -0
  445. package/src/lib/components/slider/slider.svelte.ts +979 -0
  446. package/src/lib/components/slider/types.ts +294 -0
  447. package/src/lib/components/sonner/Toast.svelte +558 -0
  448. package/src/lib/components/sonner/Toaster.svelte +603 -0
  449. package/src/lib/components/sonner/index.ts +15 -0
  450. package/src/lib/components/sonner/toast-state.svelte.ts +217 -0
  451. package/src/lib/components/sonner/types.ts +384 -0
  452. package/src/lib/components/switch/index.ts +8 -0
  453. package/src/lib/components/switch/switch.svelte +78 -0
  454. package/src/lib/components/table/index.ts +28 -0
  455. package/src/lib/components/table/table-body.svelte +15 -0
  456. package/src/lib/components/table/table-caption.svelte +10 -0
  457. package/src/lib/components/table/table-cell.svelte +14 -0
  458. package/src/lib/components/table/table-footer.svelte +19 -0
  459. package/src/lib/components/table/table-head.svelte +17 -0
  460. package/src/lib/components/table/table-header.svelte +15 -0
  461. package/src/lib/components/table/table-row.svelte +14 -0
  462. package/src/lib/components/table/table.svelte +12 -0
  463. package/src/lib/components/tabs/components/tabs-content.svelte +30 -0
  464. package/src/lib/components/tabs/components/tabs-list.svelte +38 -0
  465. package/src/lib/components/tabs/components/tabs-trigger.svelte +51 -0
  466. package/src/lib/components/tabs/components/tabs.svelte +52 -0
  467. package/src/lib/components/tabs/index.ts +11 -0
  468. package/src/lib/components/tabs/tabs.svelte.ts +253 -0
  469. package/src/lib/components/tabs/types.ts +86 -0
  470. package/src/lib/components/textarea/index.ts +7 -0
  471. package/src/lib/components/textarea/textarea.svelte +23 -0
  472. package/src/lib/components/theme-toggle/index.ts +5 -0
  473. package/src/lib/components/theme-toggle/theme-toggle.svelte +49 -0
  474. package/src/lib/components/theme-toggle/theme.svelte.ts +81 -0
  475. package/src/lib/components/time-field/components/time-field-hidden-input.svelte +9 -0
  476. package/src/lib/components/time-field/components/time-field-input.svelte +33 -0
  477. package/src/lib/components/time-field/components/time-field-label.svelte +29 -0
  478. package/src/lib/components/time-field/components/time-field-segment.svelte +29 -0
  479. package/src/lib/components/time-field/components/time-field.svelte +99 -0
  480. package/src/lib/components/time-field/index.ts +11 -0
  481. package/src/lib/components/time-field/time-field.svelte.ts +1198 -0
  482. package/src/lib/components/time-field/types.ts +174 -0
  483. package/src/lib/components/time-range-field/components/time-range-field-input.svelte +36 -0
  484. package/src/lib/components/time-range-field/components/time-range-field-label.svelte +29 -0
  485. package/src/lib/components/time-range-field/components/time-range-field.svelte +104 -0
  486. package/src/lib/components/time-range-field/index.ts +11 -0
  487. package/src/lib/components/time-range-field/time-range-field.svelte.ts +235 -0
  488. package/src/lib/components/time-range-field/types.ts +181 -0
  489. package/src/lib/components/toggle/components/toggle.svelte +55 -0
  490. package/src/lib/components/toggle/index.ts +3 -0
  491. package/src/lib/components/toggle/toggle.svelte.ts +57 -0
  492. package/src/lib/components/toggle/types.ts +33 -0
  493. package/src/lib/components/toggle/variants.ts +25 -0
  494. package/src/lib/components/toggle-group/components/toggle-group-item.svelte +67 -0
  495. package/src/lib/components/toggle-group/components/toggle-group.svelte +109 -0
  496. package/src/lib/components/toggle-group/index.ts +7 -0
  497. package/src/lib/components/toggle-group/toggle-group.svelte.ts +235 -0
  498. package/src/lib/components/toggle-group/types.ts +89 -0
  499. package/src/lib/components/toolbar/components/toolbar-button.svelte +46 -0
  500. package/src/lib/components/toolbar/components/toolbar-group-item.svelte +56 -0
  501. package/src/lib/components/toolbar/components/toolbar-group.svelte +69 -0
  502. package/src/lib/components/toolbar/components/toolbar-link.svelte +39 -0
  503. package/src/lib/components/toolbar/components/toolbar.svelte +39 -0
  504. package/src/lib/components/toolbar/index.ts +13 -0
  505. package/src/lib/components/toolbar/toolbar.svelte.ts +373 -0
  506. package/src/lib/components/toolbar/types.ts +60 -0
  507. package/src/lib/components/tooltip/components/tooltip-content.svelte +81 -0
  508. package/src/lib/components/tooltip/components/tooltip-provider.svelte +26 -0
  509. package/src/lib/components/tooltip/components/tooltip-trigger.svelte +48 -0
  510. package/src/lib/components/tooltip/components/tooltip.svelte +55 -0
  511. package/src/lib/components/tooltip/index.ts +17 -0
  512. package/src/lib/components/tooltip/tooltip.svelte.ts +796 -0
  513. package/src/lib/components/tooltip/types.ts +175 -0
  514. package/src/lib/components/tooltip/utils.ts +1 -0
  515. package/src/lib/icons/google-icon.svelte +10 -0
  516. package/src/lib/icons/google-workspace.svelte +18 -0
  517. package/src/lib/icons/icon.d.ts +19 -0
  518. package/src/lib/icons/instagram.svelte +9 -0
  519. package/src/lib/icons/instantly.svelte +10 -0
  520. package/src/lib/icons/linkedin.svelte +9 -0
  521. package/src/lib/icons/mailshake.svelte +10 -0
  522. package/src/lib/icons/microsoft-365.svelte +7 -0
  523. package/src/lib/icons/passcode.svelte +12 -0
  524. package/src/lib/icons/replyio.svelte +10 -0
  525. package/src/lib/icons/smartlead.svelte +19 -0
  526. package/src/lib/icons/smtp.svelte +10 -0
  527. package/src/lib/icons/x-logo.svelte +9 -0
  528. package/src/lib/internal/animations-settled.svelte.ts +119 -0
  529. package/src/lib/internal/arrays.ts +253 -0
  530. package/src/lib/internal/attribute-types.ts +53 -0
  531. package/src/lib/internal/attrs.ts +64 -0
  532. package/src/lib/internal/body-scroll-lock.svelte.ts +330 -0
  533. package/src/lib/internal/create-id.ts +12 -0
  534. package/src/lib/internal/date-time/announcer.ts +74 -0
  535. package/src/lib/internal/date-time/calendar-helpers.svelte.ts +399 -0
  536. package/src/lib/internal/date-time/field/helpers.ts +431 -0
  537. package/src/lib/internal/date-time/field/parts.ts +15 -0
  538. package/src/lib/internal/date-time/field/range-field.svelte.ts +45 -0
  539. package/src/lib/internal/date-time/field/segments.ts +89 -0
  540. package/src/lib/internal/date-time/field/time-helpers.ts +311 -0
  541. package/src/lib/internal/date-time/formatter.ts +86 -0
  542. package/src/lib/internal/date-time/placeholders.ts +131 -0
  543. package/src/lib/internal/date-time/types.ts +121 -0
  544. package/src/lib/internal/date-time/utils.ts +243 -0
  545. package/src/lib/internal/dismissible-layer/index.ts +3 -0
  546. package/src/lib/internal/dismissible-layer/scheduler.ts +48 -0
  547. package/src/lib/internal/dismissible-layer/types.ts +57 -0
  548. package/src/lib/internal/dismissible-layer/use-dismissable-layer.svelte.ts +291 -0
  549. package/src/lib/internal/escape-layer/index.ts +3 -0
  550. package/src/lib/internal/escape-layer/types.ts +34 -0
  551. package/src/lib/internal/escape-layer/use-escape-layer.svelte.ts +91 -0
  552. package/src/lib/internal/floating-layer/components/floating-layer-arrow.svelte +35 -0
  553. package/src/lib/internal/floating-layer/components/floating-layer-content-static.svelte +19 -0
  554. package/src/lib/internal/floating-layer/components/floating-layer-content.svelte +52 -0
  555. package/src/lib/internal/floating-layer/components/floating-layer.svelte +12 -0
  556. package/src/lib/internal/floating-layer/components/index.ts +6 -0
  557. package/src/lib/internal/floating-layer/index.ts +2 -0
  558. package/src/lib/internal/floating-layer/types.ts +126 -0
  559. package/src/lib/internal/floating-layer/use-floating-layer.svelte.ts +471 -0
  560. package/src/lib/internal/focus-scope/focus-scope.svelte.ts +310 -0
  561. package/src/lib/internal/focus-scope/index.ts +4 -0
  562. package/src/lib/internal/focus-scope/types.ts +45 -0
  563. package/src/lib/internal/focus.ts +14 -0
  564. package/src/lib/internal/global-singleton.ts +10 -0
  565. package/src/lib/internal/group-value.svelte.ts +36 -0
  566. package/src/lib/internal/hover-intent-geometry.ts +96 -0
  567. package/src/lib/internal/index.ts +44 -0
  568. package/src/lib/internal/kbd.ts +60 -0
  569. package/src/lib/internal/layer-stack.ts +37 -0
  570. package/src/lib/internal/math.ts +11 -0
  571. package/src/lib/internal/merge-props.ts +7 -0
  572. package/src/lib/internal/native-dialog-controller.svelte.ts +102 -0
  573. package/src/lib/internal/native-popover.svelte.ts +173 -0
  574. package/src/lib/internal/open-cell.svelte.ts +41 -0
  575. package/src/lib/internal/paneforge/index.ts +5 -0
  576. package/src/lib/internal/paneforge/internal/constants.ts +2 -0
  577. package/src/lib/internal/paneforge/internal/helpers.ts +354 -0
  578. package/src/lib/internal/paneforge/internal/types.ts +33 -0
  579. package/src/lib/internal/paneforge/internal/utils/adjust-layout.ts +122 -0
  580. package/src/lib/internal/paneforge/internal/utils/aria.ts +36 -0
  581. package/src/lib/internal/paneforge/internal/utils/compare.ts +15 -0
  582. package/src/lib/internal/paneforge/internal/utils/is.ts +13 -0
  583. package/src/lib/internal/paneforge/internal/utils/resize.ts +31 -0
  584. package/src/lib/internal/paneforge/internal/utils/storage.ts +116 -0
  585. package/src/lib/internal/paneforge/internal/utils/style.ts +104 -0
  586. package/src/lib/internal/paneforge/pane-group.svelte +48 -0
  587. package/src/lib/internal/paneforge/pane-resizer.svelte +40 -0
  588. package/src/lib/internal/paneforge/pane.svelte +60 -0
  589. package/src/lib/internal/paneforge/paneforge.svelte.ts +821 -0
  590. package/src/lib/internal/paneforge/types.ts +179 -0
  591. package/src/lib/internal/popper-layer/index.ts +2 -0
  592. package/src/lib/internal/popper-layer/popper-content.svelte +19 -0
  593. package/src/lib/internal/popper-layer/popper-layer-inner.svelte +122 -0
  594. package/src/lib/internal/popper-layer/popper-layer.svelte +71 -0
  595. package/src/lib/internal/popper-layer/types.ts +65 -0
  596. package/src/lib/internal/portal/index.ts +2 -0
  597. package/src/lib/internal/portal/portal.svelte +61 -0
  598. package/src/lib/internal/prop-resolvers.ts +14 -0
  599. package/src/lib/internal/roving-focus-group.ts +147 -0
  600. package/src/lib/internal/roving-focus-item.svelte.ts +51 -0
  601. package/src/lib/internal/safe-polygon.svelte.ts +239 -0
  602. package/src/lib/internal/shared-state.svelte.ts +39 -0
  603. package/src/lib/internal/state-machine.ts +32 -0
  604. package/src/lib/internal/svelte-resize-observer.svelte.ts +37 -0
  605. package/src/lib/internal/tabbable.ts +398 -0
  606. package/src/lib/internal/table/core.ts +53 -0
  607. package/src/lib/internal/table/filter-fns.ts +10 -0
  608. package/src/lib/internal/table/index.ts +2 -0
  609. package/src/lib/internal/table/sorting-fns.ts +84 -0
  610. package/src/lib/internal/table/table.svelte.ts +330 -0
  611. package/src/lib/internal/table/types.ts +33 -0
  612. package/src/lib/internal/timeout-fn.svelte.ts +36 -0
  613. package/src/lib/internal/tools/box.svelte.ts +153 -0
  614. package/src/lib/internal/tools/index.ts +22 -0
  615. package/src/lib/internal/tools/types.ts +44 -0
  616. package/src/lib/internal/tools/utils/attach-ref.ts +74 -0
  617. package/src/lib/internal/tools/utils/compose-handlers.ts +36 -0
  618. package/src/lib/internal/tools/utils/dom-context.svelte.ts +63 -0
  619. package/src/lib/internal/tools/utils/dom.ts +62 -0
  620. package/src/lib/internal/tools/utils/events.ts +1 -0
  621. package/src/lib/internal/tools/utils/index.ts +5 -0
  622. package/src/lib/internal/tools/utils/strings.ts +28 -0
  623. package/src/lib/internal/typeahead.svelte.ts +48 -0
  624. package/src/lib/internal/types.ts +119 -0
  625. package/src/lib/internal/utils.ts +10 -0
  626. package/src/lib/internal/vaul/browser.ts +8 -0
  627. package/src/lib/internal/vaul/constants.ts +19 -0
  628. package/src/lib/internal/vaul/helpers.ts +39 -0
  629. package/src/lib/internal/vaul/types.ts +142 -0
  630. package/src/lib/internal/vaul/use-drawer-content.svelte.ts +219 -0
  631. package/src/lib/internal/vaul/use-drawer-root.svelte.ts +682 -0
  632. package/src/lib/internal/vaul/use-position-fixed.svelte.ts +142 -0
  633. package/src/lib/internal/vaul/use-prevent-scroll.svelte.ts +267 -0
  634. package/src/lib/internal/vaul/use-snap-points.svelte.ts +246 -0
  635. package/src/lib/time.ts +73 -0
@@ -0,0 +1,207 @@
1
+ // oxlint-disable ban-ts-comment
2
+ // @ts-nocheck
3
+ // The scores are arranged so that a continuous match of characters will
4
+ // result in a total score of 1.
5
+ //
6
+ // The best case, this character is a match, and either this is the start
7
+ // of the string, or the previous character was also a match.
8
+ const SCORE_CONTINUE_MATCH = 1;
9
+ // A new match at the start of a word scores better than a new match
10
+ // elsewhere as it's more likely that the user will type the starts
11
+ // of fragments.
12
+ // NOTE: We score word jumps between spaces slightly higher than slashes, brackets
13
+ // hyphens, etc.
14
+ const SCORE_SPACE_WORD_JUMP = 0.9;
15
+ const SCORE_NON_SPACE_WORD_JUMP = 0.8;
16
+ // Any other match isn't ideal, but we include it for completeness.
17
+ const SCORE_CHARACTER_JUMP = 0.17;
18
+ // If the user transposed two letters, it should be significantly penalized.
19
+ //
20
+ // i.e. "ouch" is more likely than "curtain" when "uc" is typed.
21
+ const SCORE_TRANSPOSITION = 0.1;
22
+ // The goodness of a match should decay slightly with each missing
23
+ // character.
24
+ //
25
+ // i.e. "bad" is more likely than "bard" when "bd" is typed.
26
+ //
27
+ // This will not change the order of suggestions based on SCORE_* until
28
+ // 100 characters are inserted between matches.
29
+ const PENALTY_SKIPPED = 0.999;
30
+ // The goodness of an exact-case match should be higher than a
31
+ // case-insensitive match by a small amount.
32
+ //
33
+ // i.e. "HTML" is more likely than "haml" when "HM" is typed.
34
+ //
35
+ // This will not change the order of suggestions based on SCORE_* until
36
+ // 1000 characters are inserted between matches.
37
+ const PENALTY_CASE_MISMATCH = 0.9999;
38
+ // Match higher for letters closer to the beginning of the word
39
+ // If the word has more characters than the user typed, it should
40
+ // be penalized slightly.
41
+ //
42
+ // i.e. "html" is more likely than "html5" if I type "html".
43
+ //
44
+ // However, it may well be the case that there's a sensible secondary
45
+ // ordering (like alphabetical) that it makes sense to rely on when
46
+ // there are many prefix matches, so we don't make the penalty increase
47
+ // with the number of tokens.
48
+ const PENALTY_NOT_COMPLETE = 0.99;
49
+
50
+ const IS_GAP_REGEXP = /[\\/_+.#"@[({&]/;
51
+ const COUNT_GAPS_REGEXP = /[\\/_+.#"@[({&]/g;
52
+ const IS_SPACE_REGEXP = /[\s-]/;
53
+ const COUNT_SPACE_REGEXP = /[\s-]/g;
54
+
55
+ function computeCommandScoreInner(
56
+ string,
57
+ abbreviation,
58
+ lowerString,
59
+ lowerAbbreviation,
60
+ stringIndex,
61
+ abbreviationIndex,
62
+ memoizedResults
63
+ ) {
64
+ if (abbreviationIndex === abbreviation.length) {
65
+ if (stringIndex === string.length) return SCORE_CONTINUE_MATCH;
66
+ return PENALTY_NOT_COMPLETE;
67
+ }
68
+
69
+ const memoizeKey = `${stringIndex},${abbreviationIndex}`;
70
+ if (memoizedResults[memoizeKey] !== undefined) return memoizedResults[memoizeKey];
71
+
72
+ const abbreviationChar = lowerAbbreviation.charAt(abbreviationIndex);
73
+ let index = lowerString.indexOf(abbreviationChar, stringIndex);
74
+ let highScore = 0;
75
+
76
+ let score, transposedScore, wordBreaks, spaceBreaks;
77
+
78
+ while (index >= 0) {
79
+ score = computeCommandScoreInner(
80
+ string,
81
+ abbreviation,
82
+ lowerString,
83
+ lowerAbbreviation,
84
+ index + 1,
85
+ abbreviationIndex + 1,
86
+ memoizedResults
87
+ );
88
+ if (score > highScore) {
89
+ if (index === stringIndex) {
90
+ score *= SCORE_CONTINUE_MATCH;
91
+ } else if (IS_GAP_REGEXP.test(string.charAt(index - 1))) {
92
+ score *= SCORE_NON_SPACE_WORD_JUMP;
93
+ wordBreaks = string.slice(stringIndex, index - 1).match(COUNT_GAPS_REGEXP);
94
+ if (wordBreaks && stringIndex > 0) {
95
+ score *= PENALTY_SKIPPED ** wordBreaks.length;
96
+ }
97
+ } else if (IS_SPACE_REGEXP.test(string.charAt(index - 1))) {
98
+ score *= SCORE_SPACE_WORD_JUMP;
99
+ spaceBreaks = string.slice(stringIndex, index - 1).match(COUNT_SPACE_REGEXP);
100
+ if (spaceBreaks && stringIndex > 0) {
101
+ score *= PENALTY_SKIPPED ** spaceBreaks.length;
102
+ }
103
+ } else {
104
+ score *= SCORE_CHARACTER_JUMP;
105
+ if (stringIndex > 0) {
106
+ score *= PENALTY_SKIPPED ** (index - stringIndex);
107
+ }
108
+ }
109
+
110
+ if (string.charAt(index) !== abbreviation.charAt(abbreviationIndex)) {
111
+ score *= PENALTY_CASE_MISMATCH;
112
+ }
113
+ }
114
+
115
+ if (
116
+ (score < SCORE_TRANSPOSITION &&
117
+ lowerString.charAt(index - 1) ===
118
+ lowerAbbreviation.charAt(abbreviationIndex + 1)) ||
119
+ (lowerAbbreviation.charAt(abbreviationIndex + 1) ===
120
+ lowerAbbreviation.charAt(abbreviationIndex) &&
121
+ lowerString.charAt(index - 1) !== lowerAbbreviation.charAt(abbreviationIndex))
122
+ ) {
123
+ transposedScore = computeCommandScoreInner(
124
+ string,
125
+ abbreviation,
126
+ lowerString,
127
+ lowerAbbreviation,
128
+ index + 1,
129
+ abbreviationIndex + 2,
130
+ memoizedResults
131
+ );
132
+
133
+ if (transposedScore * SCORE_TRANSPOSITION > score) {
134
+ score = transposedScore * SCORE_TRANSPOSITION;
135
+ }
136
+ }
137
+
138
+ if (score > highScore) {
139
+ highScore = score;
140
+ }
141
+
142
+ index = lowerString.indexOf(abbreviationChar, index + 1);
143
+ }
144
+
145
+ memoizedResults[memoizeKey] = highScore;
146
+ return highScore;
147
+ }
148
+
149
+ /**
150
+ *
151
+ * @param string
152
+ * @returns
153
+ */
154
+ function formatInput(string) {
155
+ // convert all valid space characters to space so they match each other
156
+ return string.toLowerCase().replace(COUNT_SPACE_REGEXP, " ");
157
+ }
158
+
159
+ /**
160
+ * Given a command, a search query, and (optionally) a list of keywords for the command,
161
+ * computes a score between 0 and 1 that represents how well the search query matches the
162
+ * abbreviation and keywords. 1 is a perfect match, 0 is no match.
163
+ *
164
+ * The score is calculated based on the following rules:
165
+ * - The scores are arranged so that a continuous match of characters will result in a total
166
+ * score of 1. The best case, this character is a match, and either this is the start of the string
167
+ * or the previous character was also a match.
168
+ * - A new match at the start of a word scores better than a new match elsewhere as it's more likely
169
+ * that the user will type the starts of fragments.
170
+ * - Word jumps between spaces are scored slightly higher than slashes, brackets, hyphens, etc.
171
+ * - A continuous match of characters will result in a total score of 1.
172
+ * - A new match at the start of a word scores better than a new match elsewhere as it's more likely that the user will type the starts of fragments.
173
+ * - Any other match isn't ideal, but we include it for completeness.
174
+ * - If the user transposed two letters, it should be significantly penalized.
175
+ * - The goodness of a match should decay slightly with each missing character.
176
+ * - Match higher for letters closer to the beginning of the word.
177
+ *
178
+ * @param command - The value to score against the search string (e.g. a command name like "Calculator")
179
+ * @param search - The search string to score against the value/aliases
180
+ * @param commandKeywords - An optional list of aliases/keywords to score against the search string - e.g. ["math", "add", "divide", "multiply", "subtract"]
181
+ * @returns A score between 0 and 1 that represents how well the search string matches the
182
+ * command (and keywords)
183
+ */
184
+ export function computeCommandScore(
185
+ command: string,
186
+ search: string,
187
+ commandKeywords?: string[]
188
+ ): number {
189
+ /**
190
+ * NOTE: We used to do lower-casing on each recursive call, but this meant that `toLowerCase()`
191
+ * was the dominating cost in the algorithm. Passing both is a little ugly, but considerably
192
+ * faster.
193
+ */
194
+ command =
195
+ commandKeywords && commandKeywords.length > 0
196
+ ? `${`${command} ${commandKeywords?.join(" ")}`}`
197
+ : command;
198
+ return computeCommandScoreInner(
199
+ command,
200
+ search,
201
+ formatInput(command),
202
+ formatInput(search),
203
+ 0,
204
+ 0,
205
+ {}
206
+ );
207
+ }
@@ -0,0 +1,29 @@
1
+ export { default as Root } from './components/command.svelte';
2
+ export { default as Empty } from './components/command-empty.svelte';
3
+ export { default as Group } from './components/command-group.svelte';
4
+ export { default as GroupHeading } from './components/command-group-heading.svelte';
5
+ export { default as GroupItems } from './components/command-group-items.svelte';
6
+ export { default as Input } from './components/command-input.svelte';
7
+ export { default as Item } from './components/command-item.svelte';
8
+ export { default as LinkItem } from './components/command-link-item.svelte';
9
+ export { default as List } from './components/command-list.svelte';
10
+ export { default as Viewport } from './components/command-viewport.svelte';
11
+ export { default as Loading } from './components/command-loading.svelte';
12
+ export { default as Separator } from './components/command-separator.svelte';
13
+
14
+ export type {
15
+ CommandRootProps as RootProps,
16
+ CommandEmptyProps as EmptyProps,
17
+ CommandGroupProps as GroupProps,
18
+ CommandGroupHeadingProps as GroupHeadingProps,
19
+ CommandGroupItemsProps as GroupItemsProps,
20
+ CommandItemProps as ItemProps,
21
+ CommandLinkItemProps as LinkItemProps,
22
+ CommandInputProps as InputProps,
23
+ CommandSeparatorProps as SeparatorProps,
24
+ CommandListProps as ListProps,
25
+ CommandLoadingProps as LoadingProps,
26
+ CommandViewportProps as ViewportProps,
27
+ } from './types.js';
28
+
29
+ export { computeCommandScore } from './compute-command-score.js';
@@ -0,0 +1,222 @@
1
+ import type {
2
+ BitsPrimitiveAnchorAttributes,
3
+ BitsPrimitiveDivAttributes,
4
+ BitsPrimitiveInputAttributes,
5
+ WithChild,
6
+ Without,
7
+ } from "../../internal/index.js";
8
+
9
+ export type CommandState = {
10
+ /** The value of the search query */
11
+ search: string;
12
+ /** The value of the selected command menu item */
13
+ value: string;
14
+ /** The filtered items */
15
+ filtered: {
16
+ /** The count of all visible items. */
17
+ count: number;
18
+ /** Map from visible item value to its search store. */
19
+ items: Map<string, number>;
20
+ /** Set of groups with at least one visible item. */
21
+ groups: Set<string>;
22
+ };
23
+ };
24
+
25
+ export type CommandRootPropsWithoutHTML = WithChild<{
26
+ /**
27
+ * An accessible label for the command menu.
28
+ * Not visible & only used for screen readers.
29
+ */
30
+ label?: string;
31
+
32
+ /**
33
+ * Optionally set to `false` to turn off the automatic filtering
34
+ * and sorting. If `false`, you must conditionally render valid
35
+ * items yourself.
36
+ */
37
+ shouldFilter?: boolean;
38
+
39
+ /**
40
+ * A custom filter function for whether each command item should
41
+ * match the query. It should return a number between `0` and `1`,
42
+ * with `1` being a perfect match, and `0` being no match, resulting
43
+ * in the item being hidden entirely.
44
+ *
45
+ * By default, it will use the `computeCommandScore` function exported
46
+ * by this package to compute the score.
47
+ */
48
+ filter?: (value: string, search: string, keywords?: string[]) => number;
49
+
50
+ /**
51
+ * A function that is called when the command state changes.
52
+ */
53
+ onStateChange?: (state: Readonly<CommandState>) => void;
54
+
55
+ /**
56
+ * Optionally provide or bind to the selected command menu item.
57
+ */
58
+ value?: string;
59
+
60
+ /**
61
+ * A function that is called when the selected command menu item
62
+ * changes. It receives the new value as an argument.
63
+ */
64
+ onValueChange?: (value: string) => void;
65
+
66
+ /**
67
+ * Optionally set to `true` to enable looping through the items
68
+ * when the user reaches the end of the list using the keyboard.
69
+ */
70
+ loop?: boolean;
71
+
72
+ /**
73
+ * Optionally set to `true` to disable selection via pointer events.
74
+ */
75
+ disablePointerSelection?: boolean;
76
+
77
+ /**
78
+ * Set this prop to `false` to disable the option to use ctrl+n/j/p/k (vim style) navigation.
79
+ *
80
+ * @default true
81
+ */
82
+ vimBindings?: boolean;
83
+
84
+ /**
85
+ * The number of columns in a grid layout.
86
+ *
87
+ * @default null
88
+ */
89
+ columns?: number | null;
90
+
91
+ /**
92
+ * Whether to disable scrolling the selected item into view on initial mount.
93
+ * When `true`, prevents automatic scrolling when the command menu first renders
94
+ * and selects its first item, but still allows scrolling on subsequent selections.
95
+ *
96
+ * @default false
97
+ */
98
+ disableInitialScroll?: boolean;
99
+ }>;
100
+
101
+ export type CommandRootProps = CommandRootPropsWithoutHTML &
102
+ Without<BitsPrimitiveDivAttributes, CommandRootPropsWithoutHTML>;
103
+
104
+ export type CommandEmptyPropsWithoutHTML = WithChild<{
105
+ /**
106
+ * Whether to force mount the group container regardless of
107
+ * filtering logic.
108
+ */
109
+ forceMount?: boolean;
110
+ }>;
111
+
112
+ export type CommandEmptyProps = CommandEmptyPropsWithoutHTML &
113
+ Without<BitsPrimitiveDivAttributes, CommandEmptyPropsWithoutHTML>;
114
+
115
+ export type CommandGroupPropsWithoutHTML = WithChild<{
116
+ /**
117
+ * A unique value for the group.
118
+ */
119
+ value?: string;
120
+
121
+ /**
122
+ * Whether to force mount the group container regardless of
123
+ * filtering logic.
124
+ */
125
+ forceMount?: boolean;
126
+ }>;
127
+
128
+ export type CommandGroupProps = CommandGroupPropsWithoutHTML &
129
+ Without<BitsPrimitiveDivAttributes, CommandGroupPropsWithoutHTML>;
130
+
131
+ export type CommandGroupHeadingPropsWithoutHTML = WithChild;
132
+
133
+ export type CommandGroupHeadingProps = CommandGroupHeadingPropsWithoutHTML &
134
+ Without<BitsPrimitiveDivAttributes, CommandGroupHeadingPropsWithoutHTML>;
135
+
136
+ export type CommandGroupItemsPropsWithoutHTML = WithChild;
137
+
138
+ export type CommandGroupItemsProps = CommandGroupItemsPropsWithoutHTML &
139
+ Without<BitsPrimitiveDivAttributes, CommandGroupItemsPropsWithoutHTML>;
140
+
141
+ export type CommandItemPropsWithoutHTML = WithChild<{
142
+ /**
143
+ * Whether the item is disabled.
144
+ *
145
+ * @default false
146
+ */
147
+ disabled?: boolean;
148
+
149
+ /**
150
+ * A callback that is fired when the item is selected, either via
151
+ * click or keyboard selection.
152
+ */
153
+ onSelect?: () => void;
154
+
155
+ /**
156
+ * A unique value for this item that will be used when filtering
157
+ * and ranking the items. If not provided, an attempt will be made
158
+ * to use the `textContent` of the item. If the `textContent` is dynamic,
159
+ * you will need to provide a stable unique value for the item.
160
+ */
161
+ value?: string;
162
+
163
+ /**
164
+ * A list of keywords that will be used to filter the item.
165
+ */
166
+ keywords?: string[];
167
+
168
+ /**
169
+ * Whether to always mount the item regardless of filtering logic.
170
+ */
171
+ forceMount?: boolean;
172
+ }>;
173
+
174
+ export type CommandItemProps = CommandItemPropsWithoutHTML &
175
+ Without<BitsPrimitiveDivAttributes, CommandItemPropsWithoutHTML>;
176
+
177
+ export type CommandLinkItemPropsWithoutHTML = CommandItemPropsWithoutHTML;
178
+
179
+ export type CommandLinkItemProps = CommandLinkItemPropsWithoutHTML &
180
+ Without<BitsPrimitiveAnchorAttributes, CommandLinkItemPropsWithoutHTML>;
181
+
182
+ export type CommandInputPropsWithoutHTML = WithChild<{
183
+ /**
184
+ * The value of the input element, used to search/filter items.
185
+ */
186
+ value?: string;
187
+ }>;
188
+
189
+ export type CommandInputProps = CommandInputPropsWithoutHTML &
190
+ Without<BitsPrimitiveInputAttributes, CommandInputPropsWithoutHTML>;
191
+
192
+ export type CommandListPropsWithoutHTML = WithChild;
193
+
194
+ export type CommandListProps = CommandListPropsWithoutHTML &
195
+ Without<BitsPrimitiveDivAttributes, CommandListPropsWithoutHTML>;
196
+
197
+ export type CommandSeparatorPropsWithoutHTML = WithChild<{
198
+ /**
199
+ * Whether to force mount the separator container regardless of
200
+ * filtering logic.
201
+ */
202
+ forceMount?: boolean;
203
+ }>;
204
+
205
+ export type CommandSeparatorProps = CommandSeparatorPropsWithoutHTML &
206
+ Without<BitsPrimitiveDivAttributes, CommandSeparatorPropsWithoutHTML>;
207
+
208
+ export type CommandLoadingPropsWithoutHTML = WithChild<{
209
+ /**
210
+ * The current progress of the loading state.
211
+ * This is a number between `0` and `100`.
212
+ */
213
+ progress?: number;
214
+ }>;
215
+
216
+ export type CommandLoadingProps = CommandLoadingPropsWithoutHTML &
217
+ Without<BitsPrimitiveDivAttributes, CommandLoadingPropsWithoutHTML>;
218
+
219
+ export type CommandViewportPropsWithoutHTML = WithChild;
220
+
221
+ export type CommandViewportProps = CommandViewportPropsWithoutHTML &
222
+ Without<BitsPrimitiveDivAttributes, CommandViewportPropsWithoutHTML>;
@@ -0,0 +1,30 @@
1
+ export function findNextSibling(el: Element, selector: string) {
2
+ let sibling = el.nextElementSibling;
3
+
4
+ while (sibling) {
5
+ if (sibling.matches(selector)) return sibling;
6
+ sibling = sibling.nextElementSibling;
7
+ }
8
+ }
9
+
10
+ export function findPreviousSibling(el: Element, selector: string) {
11
+ let sibling = el.previousElementSibling;
12
+
13
+ while (sibling) {
14
+ if (sibling.matches(selector)) return sibling;
15
+ sibling = sibling.previousElementSibling;
16
+ }
17
+ }
18
+
19
+ export function findFirstStartMarkerWithImmediateSiblingAsEnd(el: Element, type: 'item' | 'group') {
20
+ const startMarkers = el.querySelectorAll<HTMLElement>(`[data-bits-command-${type}-start]`);
21
+
22
+ for (const startMarker of startMarkers) {
23
+ const endMarker = startMarker.nextElementSibling;
24
+ if (endMarker && endMarker.hasAttribute(`data-bits-command-${type}-end`)) {
25
+ return startMarker;
26
+ }
27
+ }
28
+
29
+ return null;
30
+ }
@@ -0,0 +1,22 @@
1
+ <script lang="ts">
2
+ import { mergeProps } from '../../../internal/merge-props.js';
3
+ import type { ContextMenuContentStaticProps } from '../types.js';
4
+ import MenuContent from '../../menu/components/menu-content.svelte';
5
+ import { getFloatingContentCSSVars } from '../../../internal/floating-layer/index.js';
6
+
7
+ let { ref = $bindable(null), ...restProps }: ContextMenuContentStaticProps = $props();
8
+
9
+ const mergedProps = $derived(
10
+ mergeProps(
11
+ {
12
+ 'data-slot': 'context-menu-content',
13
+ class:
14
+ 'bg-popover text-popover-foreground popup-surface popup-surface-static z-50 min-w-32 origin-(--bits-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md',
15
+ style: getFloatingContentCSSVars('context-menu'),
16
+ },
17
+ restProps,
18
+ ),
19
+ );
20
+ </script>
21
+
22
+ <MenuContent bind:ref {...mergedProps} isStatic />
@@ -0,0 +1,22 @@
1
+ <script lang="ts">
2
+ import { mergeProps } from '../../../internal/merge-props.js';
3
+ import type { ContextMenuContentProps } from '../types.js';
4
+ import MenuContent from '../../menu/components/menu-content.svelte';
5
+ import { getFloatingContentCSSVars } from '../../../internal/floating-layer/index.js';
6
+
7
+ let { ref = $bindable(null), side = 'right', sideOffset = 2, align = 'start', trapFocus = false, ...restProps }: ContextMenuContentProps = $props();
8
+
9
+ const mergedProps = $derived(
10
+ mergeProps(
11
+ {
12
+ 'data-slot': 'context-menu-content',
13
+ class:
14
+ 'bg-popover text-popover-foreground popup-surface z-50 min-w-32 origin-(--bits-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md',
15
+ style: getFloatingContentCSSVars('context-menu'),
16
+ },
17
+ restProps,
18
+ ),
19
+ );
20
+ </script>
21
+
22
+ <MenuContent bind:ref {...mergedProps} {side} {sideOffset} {align} {trapFocus} />
@@ -0,0 +1,46 @@
1
+ <script lang="ts">
2
+ import { boxWith } from '../../../internal/tools/index.js';
3
+ import { mergeProps } from '../../../internal/merge-props.js';
4
+ import type { ContextMenuTriggerProps } from '../types.js';
5
+ import { ContextMenuTriggerState } from '../../menu/menu.svelte.js';
6
+ import { createId } from '../../../internal/create-id.js';
7
+ import { setFloatingAnchor } from '../../../internal/floating-layer/index.js';
8
+
9
+ const uid = $props.id();
10
+
11
+ let { id = createId(uid), ref = $bindable(null), child, children, disabled = false, ...restProps }: ContextMenuTriggerProps = $props();
12
+
13
+ const triggerState = ContextMenuTriggerState.create({
14
+ id: boxWith(() => id),
15
+ disabled: boxWith(() => disabled),
16
+ ref: boxWith(
17
+ () => ref,
18
+ (v) => (ref = v),
19
+ ),
20
+ });
21
+
22
+ const mergedProps = $derived(
23
+ mergeProps(
24
+ {
25
+ 'data-slot': 'context-menu-trigger',
26
+ },
27
+ restProps,
28
+ triggerState.props,
29
+ { style: { pointerEvents: 'auto' } },
30
+ {
31
+ style: restProps.style,
32
+ tabindex: restProps.tabindex,
33
+ },
34
+ ),
35
+ );
36
+
37
+ setFloatingAnchor(triggerState.virtualElement);
38
+ </script>
39
+
40
+ {#if child}
41
+ {@render child({ props: mergedProps })}
42
+ {:else}
43
+ <div {...mergedProps}>
44
+ {@render children?.()}
45
+ </div>
46
+ {/if}
@@ -0,0 +1,8 @@
1
+ <script lang="ts">
2
+ import type { ContextMenuRootProps } from '../types.js';
3
+ import Menu from '../../menu/components/menu.svelte';
4
+
5
+ let { ...restProps }: ContextMenuRootProps = $props();
6
+ </script>
7
+
8
+ <Menu _internal_variant="context-menu" {...restProps} />
@@ -0,0 +1,39 @@
1
+ export { default as Root } from './components/context-menu.svelte';
2
+ export { default as Sub } from '../menu/components/menu-sub.svelte';
3
+ export { default as Item } from '../menu/components/menu-item.svelte';
4
+ export { default as Group } from '../menu/components/menu-group.svelte';
5
+ export { default as GroupHeading } from '../menu/components/menu-group-heading.svelte';
6
+ export { default as Arrow } from '../menu/components/menu-arrow.svelte';
7
+ export { default as Content } from './components/context-menu-content.svelte';
8
+ export { default as ContentStatic } from './components/context-menu-content-static.svelte';
9
+ export { default as Trigger } from './components/context-menu-trigger.svelte';
10
+ export { default as RadioItem } from '../menu/components/menu-radio-item.svelte';
11
+ export { default as Separator } from '../menu/components/menu-separator.svelte';
12
+ export { default as RadioGroup } from '../menu/components/menu-radio-group.svelte';
13
+ export { default as SubContent } from '../menu/components/menu-sub-content.svelte';
14
+ export { default as SubContentStatic } from '../menu/components/menu-sub-content-static.svelte';
15
+ export { default as SubTrigger } from '../menu/components/menu-sub-trigger.svelte';
16
+ export { default as CheckboxItem } from '../menu/components/menu-checkbox-item.svelte';
17
+ export { default as Portal } from '../../internal/portal/portal.svelte';
18
+ export { default as CheckboxGroup } from '../menu/components/menu-checkbox-group.svelte';
19
+
20
+ export type {
21
+ ContextMenuArrowProps as ArrowProps,
22
+ ContextMenuCheckboxItemProps as CheckboxItemProps,
23
+ ContextMenuGroupProps as GroupProps,
24
+ ContextMenuItemProps as ItemProps,
25
+ ContextMenuGroupHeadingProps as GroupHeadingProps,
26
+ ContextMenuRootProps as RootProps,
27
+ ContextMenuRadioGroupProps as RadioGroupProps,
28
+ ContextMenuRadioItemProps as RadioItemProps,
29
+ ContextMenuSeparatorProps as SeparatorProps,
30
+ ContextMenuSubContentProps as SubContentProps,
31
+ ContextMenuSubContentStaticProps as SubContentStaticProps,
32
+ ContextMenuSubProps as SubProps,
33
+ ContextMenuSubTriggerProps as SubTriggerProps,
34
+ ContextMenuContentProps as ContentProps,
35
+ ContextMenuContentStaticProps as ContentStaticProps,
36
+ ContextMenuTriggerProps as TriggerProps,
37
+ ContextMenuPortalProps as PortalProps,
38
+ ContextMenuCheckboxGroupProps as CheckboxGroupProps,
39
+ } from './types.js';
@@ -0,0 +1,56 @@
1
+ import type { MenuContentProps, MenuContentPropsWithoutHTML } from "../menu/types.js";
2
+ import type { WithChild, Without } from "../../internal/types.js";
3
+ import type { BitsPrimitiveDivAttributes } from "../../internal/attribute-types.js";
4
+
5
+ export type ContextMenuContentPropsWithoutHTML = MenuContentPropsWithoutHTML;
6
+
7
+ export type ContextMenuContentProps = MenuContentProps;
8
+
9
+ export type ContextMenuTriggerPropsWithoutHTML = WithChild<{
10
+ /**
11
+ * Whether the context menu trigger is disabled. If disabled, the trigger will not
12
+ * open the menu when right-clicked.
13
+ */
14
+ disabled?: boolean;
15
+ }>;
16
+
17
+ export type ContextMenuTriggerProps = ContextMenuTriggerPropsWithoutHTML &
18
+ Without<BitsPrimitiveDivAttributes, ContextMenuTriggerPropsWithoutHTML>;
19
+
20
+ export type {
21
+ MenuArrowProps as ContextMenuArrowProps,
22
+ MenuContentStaticProps as ContextMenuContentStaticProps,
23
+ MenuCheckboxItemProps as ContextMenuCheckboxItemProps,
24
+ MenuGroupProps as ContextMenuGroupProps,
25
+ MenuItemProps as ContextMenuItemProps,
26
+ MenuGroupHeadingProps as ContextMenuGroupHeadingProps,
27
+ MenuRootProps as ContextMenuRootProps,
28
+ MenuRadioGroupProps as ContextMenuRadioGroupProps,
29
+ MenuRadioItemProps as ContextMenuRadioItemProps,
30
+ MenuSeparatorProps as ContextMenuSeparatorProps,
31
+ MenuSubContentProps as ContextMenuSubContentProps,
32
+ MenuSubContentStaticProps as ContextMenuSubContentStaticProps,
33
+ MenuSubProps as ContextMenuSubProps,
34
+ MenuSubTriggerProps as ContextMenuSubTriggerProps,
35
+ MenuPortalProps as ContextMenuPortalProps,
36
+ MenuCheckboxGroupProps as ContextMenuCheckboxGroupProps,
37
+ } from "../menu/types.js";
38
+
39
+ export type {
40
+ MenuRootPropsWithoutHTML as ContextMenuRootPropsWithoutHTML,
41
+ MenuContentStaticPropsWithoutHTML as ContextMenuContentStaticPropsWithoutHTML,
42
+ MenuArrowPropsWithoutHTML as ContextMenuArrowPropsWithoutHTML,
43
+ MenuCheckboxItemPropsWithoutHTML as ContextMenuCheckboxItemPropsWithoutHTML,
44
+ MenuGroupPropsWithoutHTML as ContextMenuGroupPropsWithoutHTML,
45
+ MenuItemPropsWithoutHTML as ContextMenuItemPropsWithoutHTML,
46
+ MenuGroupHeadingPropsWithoutHTML as ContextMenuGroupHeadingPropsWithoutHTML,
47
+ MenuRadioGroupPropsWithoutHTML as ContextMenuRadioGroupPropsWithoutHTML,
48
+ MenuRadioItemPropsWithoutHTML as ContextMenuRadioItemPropsWithoutHTML,
49
+ MenuSeparatorPropsWithoutHTML as ContextMenuSeparatorPropsWithoutHTML,
50
+ MenuSubPropsWithoutHTML as ContextMenuSubPropsWithoutHTML,
51
+ MenuSubTriggerPropsWithoutHTML as ContextMenuSubTriggerPropsWithoutHTML,
52
+ MenuSubContentPropsWithoutHTML as ContextMenuSubContentPropsWithoutHTML,
53
+ MenuSubContentStaticPropsWithoutHTML as ContextMenuSubContentStaticPropsWithoutHTML,
54
+ MenuPortalPropsWithoutHTML as ContextMenuPortalPropsWithoutHTML,
55
+ MenuCheckboxGroupPropsWithoutHTML as ContextMenuCheckboxGroupPropsWithoutHTML,
56
+ } from "../menu/types.js";