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,60 @@
1
+ <script lang="ts">
2
+ import { join } from 'overrule';
3
+ import * as DialogPrimitive from '../dialog/index.js';
4
+ import { type WithChildren, boxWith, attachRef } from '../../internal/tools/index.js';
5
+ import { mergeProps } from '../../internal/merge-props.js';
6
+ import type { WithoutChildrenOrChild } from '../../internal/utils.js';
7
+ import { createId } from '../../internal/create-id.js';
8
+ import { getDrawer } from '../../internal/vaul/use-drawer-root.svelte.js';
9
+ import type { DrawerOverlayProps as OverlayProps } from '../../internal/vaul/types.js';
10
+
11
+ const uid = $props.id();
12
+
13
+ let {
14
+ id = createId(uid),
15
+ ref = $bindable(null),
16
+ class: className,
17
+ children,
18
+ ...restProps
19
+ }: WithChildren<WithoutChildrenOrChild<OverlayProps>> = $props();
20
+
21
+ const ctx = getDrawer();
22
+
23
+ // The element is rendered by DialogPrimitive.Overlay; the attachment forwards
24
+ // through to it, capturing the node straight into context on mount and clearing
25
+ // it on unmount — no id lookup or mounted flag needed.
26
+ const attachment = attachRef(
27
+ boxWith(
28
+ () => ref,
29
+ (v) => (ref = v),
30
+ ),
31
+ (node) => ctx.setOverlayNode(node),
32
+ );
33
+
34
+ const hasSnapPoints = $derived(ctx.snapPoints.current && ctx.snapPoints.current.length > 0);
35
+
36
+ const mergedProps = $derived(
37
+ mergeProps(
38
+ {
39
+ 'data-slot': 'drawer-overlay',
40
+ class: join('fixed inset-0 z-50 bg-black/50 transition-opacity data-closed:opacity-0', className),
41
+ },
42
+ restProps,
43
+ {
44
+ id,
45
+ onmouseup: ctx.onRelease,
46
+ 'data-vaul-overlay': '',
47
+ 'data-vaul-snap-points': ctx.open.current && hasSnapPoints ? 'true' : 'false',
48
+ 'data-vaul-snap-points-overlay': ctx.open.current && ctx.shouldFade ? 'true' : 'false',
49
+ 'data-vaul-animate': ctx.shouldAnimate ? 'true' : 'false',
50
+ },
51
+ attachment,
52
+ ),
53
+ );
54
+ </script>
55
+
56
+ {#if ctx.modal.current}
57
+ <DialogPrimitive.Overlay {...mergedProps}>
58
+ {@render children?.()}
59
+ </DialogPrimitive.Overlay>
60
+ {/if}
@@ -0,0 +1,10 @@
1
+ <script lang="ts">
2
+ import { Portal, type PortalProps } from '../dialog/index.js';
3
+ import { getDrawer } from '../../internal/vaul/use-drawer-root.svelte.js';
4
+
5
+ const ctx = getDrawer();
6
+
7
+ let { to = ctx.container.current ?? undefined, ...restProps }: PortalProps = $props();
8
+ </script>
9
+
10
+ <Portal {to} {...restProps} />
@@ -0,0 +1,8 @@
1
+ <script lang="ts">
2
+ import { join } from 'overrule';
3
+ import { Title, type TitleProps } from '../dialog/index.js';
4
+
5
+ let { ref = $bindable(null), class: className, ...restProps }: TitleProps = $props();
6
+ </script>
7
+
8
+ <Title bind:ref data-slot="drawer-title" class={join('text-foreground font-semibold', className)} {...restProps} />
@@ -0,0 +1,7 @@
1
+ <script lang="ts">
2
+ import { Trigger, type TriggerProps } from '../dialog/index.js';
3
+
4
+ let { ref = $bindable(null), ...restProps }: TriggerProps = $props();
5
+ </script>
6
+
7
+ <Trigger bind:ref data-slot="drawer-trigger" {...restProps} />
@@ -0,0 +1,290 @@
1
+ <script lang="ts">
2
+ import { untrack } from 'svelte';
3
+ import { DialogRootState, DialogState } from '../dialog/dialog.svelte.js';
4
+ import { OpenCell } from '../../internal/open-cell.svelte.js';
5
+ import { boxWith } from '../../internal/tools/index.js';
6
+ import type { DrawerRootProps as RootProps } from '../../internal/vaul/types.js';
7
+ import { CLOSE_THRESHOLD, SCROLL_LOCK_TIMEOUT } from '../../internal/vaul/constants.js';
8
+ import { useDrawerRoot } from '../../internal/vaul/use-drawer-root.svelte.js';
9
+
10
+ let {
11
+ open = false,
12
+ state: givenCell,
13
+ _internal_onOpenChange = () => {},
14
+ onDrag = () => {},
15
+ onRelease = () => {},
16
+ snapPoints,
17
+ shouldScaleBackground = true,
18
+ setBackgroundColorOnScale = true,
19
+ closeThreshold = CLOSE_THRESHOLD,
20
+ scrollLockTimeout = SCROLL_LOCK_TIMEOUT,
21
+ dismissible = true,
22
+ handleOnly = false,
23
+ fadeFromIndex = snapPoints && snapPoints.length - 1,
24
+ activeSnapPoint = $bindable(snapPoints?.[0] ?? null),
25
+ onActiveSnapPointChange = () => {},
26
+ fixed = false,
27
+ modal = true,
28
+ onClose = () => {},
29
+ nested = false,
30
+ noBodyStyles = false,
31
+ direction = 'bottom',
32
+ snapToSequentialPoint = false,
33
+ preventScrollRestoration = false,
34
+ repositionInputs = true,
35
+ onAnimationEnd = () => {},
36
+ onOpenChangeComplete = () => {},
37
+ container = null,
38
+ autoFocus = false,
39
+ disablePreventScroll = true,
40
+ ...restProps
41
+ }: Omit<RootProps, 'open' | 'onOpenChange'> & {
42
+ /**
43
+ * The derivation source for the drawer's open state: the internal cell
44
+ * re-derives whenever this prop changes, and interactions (drag-dismiss,
45
+ * a snippet-cell write) override it until the next change. Not bindable.
46
+ */
47
+ open?: boolean;
48
+ /**
49
+ * A caller-constructed cell (own source and, optionally, a delegate writer)
50
+ * used instead of building one from `open`. When given, `open` is ignored.
51
+ */
52
+ state?: OpenCell;
53
+ /** Machine-level open notification for the nested-drawer wiring — not a consumer API. */
54
+ _internal_onOpenChange?: (open: boolean) => void;
55
+ } = $props();
56
+
57
+ function handleOpenChangeComplete(o: boolean) {
58
+ rootState.handleOpenChangeComplete(o);
59
+ onOpenChangeComplete(o);
60
+ }
61
+
62
+ // Consumer cell over the source prop; vaul's machine keeps its boxed-open input
63
+ // (vendored, ADR 0006) — the box is a bridge over the cell, so the cell owns the
64
+ // consumer-facing `open` while the machine still drives dismissal internally.
65
+ // svelte-ignore state_referenced_locally
66
+ const cell = givenCell ?? new OpenCell(() => open);
67
+
68
+ const rootState = useDrawerRoot({
69
+ open: boxWith(
70
+ () => cell.open,
71
+ (o) => (cell.open = o),
72
+ ),
73
+ closeThreshold: boxWith(() => closeThreshold),
74
+ scrollLockTimeout: boxWith(() => scrollLockTimeout),
75
+ snapPoints: boxWith(() => snapPoints),
76
+ fadeFromIndex: boxWith(() => fadeFromIndex),
77
+ nested: boxWith(() => nested),
78
+ shouldScaleBackground: boxWith(() => shouldScaleBackground),
79
+ activeSnapPoint: boxWith(
80
+ () => activeSnapPoint,
81
+ (v) => {
82
+ activeSnapPoint = v;
83
+ onActiveSnapPointChange(v);
84
+ },
85
+ ),
86
+ onRelease: boxWith(() => onRelease),
87
+ onDrag: boxWith(() => onDrag),
88
+ onClose: boxWith(() => onClose),
89
+ dismissible: boxWith(() => dismissible),
90
+ direction: boxWith(() => direction),
91
+ fixed: boxWith(() => fixed),
92
+ modal: boxWith(() => modal),
93
+ handleOnly: boxWith(() => handleOnly),
94
+ noBodyStyles: boxWith(() => noBodyStyles),
95
+ preventScrollRestoration: boxWith(() => preventScrollRestoration),
96
+ setBackgroundColorOnScale: boxWith(() => setBackgroundColorOnScale),
97
+ repositionInputs: boxWith(() => repositionInputs),
98
+ autoFocus: boxWith(() => autoFocus),
99
+ snapToSequentialPoint: boxWith(() => snapToSequentialPoint),
100
+ container: boxWith(() => container),
101
+ disablePreventScroll: boxWith(() => disablePreventScroll),
102
+ onOpenChange: boxWith(() => _internal_onOpenChange),
103
+ onAnimationEnd: boxWith(() => onAnimationEnd),
104
+ });
105
+
106
+ // The drawer (vendored vaul) is an external state machine that owns `open`;
107
+ // the dialog cell derives from it. Dialog-initiated closes (a Close button,
108
+ // the dialog layers) write the cell, and this adapter routes them through
109
+ // the drawer's own animated close instead of just flipping the signal.
110
+ // The drawer acts as its own dialog root (the sheet.svelte pattern) so the
111
+ // cell stays internal — no consumer-facing state surface exists.
112
+ const dialogCell = new DialogState(() => rootState.open.current);
113
+ $effect(() => {
114
+ const o = dialogCell.open;
115
+ untrack(() => {
116
+ if (o !== rootState.open.current) rootState.onDialogOpenChange(o);
117
+ });
118
+ });
119
+
120
+ DialogRootState.create({
121
+ variant: boxWith(() => 'dialog'),
122
+ cell: dialogCell,
123
+ onOpenChangeComplete: boxWith(() => handleOpenChangeComplete),
124
+ });
125
+ </script>
126
+
127
+ {@render restProps.children?.()}
128
+
129
+ <style global>
130
+ /* Mirrors TRANSITIONS in internal/vaul/constants.ts — keep the two in sync. */
131
+ :global([data-vaul-drawer]),
132
+ :global([data-vaul-overlay]) {
133
+ --vaul-duration: 0.5s;
134
+ --vaul-ease: cubic-bezier(0.32, 0.72, 0, 1);
135
+ }
136
+
137
+ :global([data-vaul-drawer]) {
138
+ touch-action: none;
139
+ will-change: transform;
140
+ transition: transform var(--vaul-duration) var(--vaul-ease);
141
+ animation-duration: var(--vaul-duration);
142
+ animation-timing-function: var(--vaul-ease);
143
+ }
144
+
145
+ :global([data-vaul-overlay]) {
146
+ transition: opacity var(--vaul-duration) var(--vaul-ease);
147
+ }
148
+
149
+ :global([data-vaul-drawer][data-vaul-snap-points='false'][data-vaul-drawer-direction='bottom'][data-state='open']) {
150
+ animation-name: slideFromBottom;
151
+ }
152
+ :global([data-vaul-drawer][data-vaul-snap-points='false'][data-vaul-drawer-direction='bottom'][data-state='closed']) {
153
+ animation-name: slideToBottom;
154
+ }
155
+
156
+ :global([data-vaul-drawer][data-vaul-snap-points='false'][data-vaul-drawer-direction='top'][data-state='open']) {
157
+ animation-name: slideFromTop;
158
+ }
159
+ :global([data-vaul-drawer][data-vaul-snap-points='false'][data-vaul-drawer-direction='top'][data-state='closed']) {
160
+ animation-name: slideToTop;
161
+ }
162
+
163
+ :global([data-vaul-drawer][data-vaul-snap-points='false'][data-vaul-drawer-direction='left'][data-state='open']) {
164
+ animation-name: slideFromLeft;
165
+ }
166
+ :global([data-vaul-drawer][data-vaul-snap-points='false'][data-vaul-drawer-direction='left'][data-state='closed']) {
167
+ animation-name: slideToLeft;
168
+ }
169
+
170
+ :global([data-vaul-drawer][data-vaul-snap-points='false'][data-vaul-drawer-direction='right'][data-state='open']) {
171
+ animation-name: slideFromRight;
172
+ }
173
+ :global([data-vaul-drawer][data-vaul-snap-points='false'][data-vaul-drawer-direction='right'][data-state='closed']) {
174
+ animation-name: slideToRight;
175
+ }
176
+
177
+ /* Snap-point drawers exit by transform transition, not keyframes: hold visibility for its length. */
178
+ :global([data-vaul-drawer][data-vaul-snap-points='true'][data-state='closed']) {
179
+ transition: transform var(--vaul-duration) var(--vaul-ease), visibility var(--vaul-duration);
180
+ }
181
+
182
+ :global([data-vaul-drawer][data-vaul-snap-points='true'][data-vaul-drawer-direction='bottom']) {
183
+ transform: translate3d(0, var(--initial-transform, 100%), 0);
184
+ }
185
+
186
+ :global([data-vaul-drawer][data-vaul-snap-points='true'][data-vaul-drawer-direction='top']) {
187
+ transform: translate3d(0, calc(var(--initial-transform, 100%) * -1), 0);
188
+ }
189
+
190
+ :global([data-vaul-drawer][data-vaul-snap-points='true'][data-vaul-drawer-direction='left']) {
191
+ transform: translate3d(calc(var(--initial-transform, 100%) * -1), 0, 0);
192
+ }
193
+
194
+ :global([data-vaul-drawer][data-vaul-snap-points='true'][data-vaul-drawer-direction='right']) {
195
+ transform: translate3d(var(--initial-transform, 100%), 0, 0);
196
+ }
197
+
198
+ :global([data-vaul-drawer][data-vaul-delayed-snap-points='true'][data-vaul-drawer-direction='top']) {
199
+ transform: translate3d(0, var(--snap-point-height, 0), 0);
200
+ }
201
+
202
+ :global([data-vaul-drawer][data-vaul-delayed-snap-points='true'][data-vaul-drawer-direction='bottom']) {
203
+ transform: translate3d(0, var(--snap-point-height, 0), 0);
204
+ }
205
+
206
+ :global([data-vaul-drawer][data-vaul-delayed-snap-points='true'][data-vaul-drawer-direction='left']) {
207
+ transform: translate3d(var(--snap-point-height, 0), 0, 0);
208
+ }
209
+
210
+ :global([data-vaul-drawer][data-vaul-delayed-snap-points='true'][data-vaul-drawer-direction='right']) {
211
+ transform: translate3d(var(--snap-point-height, 0), 0, 0);
212
+ }
213
+
214
+ :global([data-vaul-overlay][data-vaul-snap-points='false']) {
215
+ animation-duration: var(--vaul-duration);
216
+ animation-timing-function: var(--vaul-ease);
217
+ }
218
+ :global([data-vaul-overlay][data-vaul-snap-points='false'][data-state='open']) {
219
+ animation-name: fadeIn;
220
+ }
221
+ :global([data-vaul-overlay][data-state='closed']) {
222
+ animation-name: fadeOut;
223
+ }
224
+
225
+ :global([data-vaul-animate='false']) {
226
+ animation: none !important;
227
+ }
228
+
229
+ :global([data-vaul-overlay][data-vaul-snap-points='true']) {
230
+ opacity: 1;
231
+ }
232
+
233
+ :global([data-vaul-drawer].vaul-dragging),
234
+ :global([data-vaul-overlay].vaul-dragging) {
235
+ transition: none;
236
+ }
237
+
238
+ :global([data-vaul-drawer]:not([data-vaul-custom-container='true'])::after) {
239
+ content: '';
240
+ position: absolute;
241
+ background: inherit;
242
+ background-color: inherit;
243
+ }
244
+
245
+ :global([data-vaul-drawer][data-vaul-drawer-direction='top']::after) {
246
+ top: initial;
247
+ bottom: 100%;
248
+ left: 0;
249
+ right: 0;
250
+ height: 200%;
251
+ }
252
+
253
+ :global([data-vaul-drawer][data-vaul-drawer-direction='bottom']::after) {
254
+ top: 100%;
255
+ bottom: initial;
256
+ left: 0;
257
+ right: 0;
258
+ height: 200%;
259
+ }
260
+
261
+ :global([data-vaul-drawer][data-vaul-drawer-direction='left']::after) {
262
+ left: initial;
263
+ right: 100%;
264
+ top: 0;
265
+ bottom: 0;
266
+ width: 200%;
267
+ }
268
+
269
+ :global([data-vaul-drawer][data-vaul-drawer-direction='right']::after) {
270
+ left: 100%;
271
+ right: initial;
272
+ top: 0;
273
+ bottom: 0;
274
+ width: 200%;
275
+ }
276
+
277
+ :global([data-vaul-overlay][data-vaul-snap-points='true']:not([data-vaul-snap-points-overlay='true']):not([data-state='closed'])) {
278
+ opacity: 0;
279
+ }
280
+
281
+ :global([data-vaul-overlay][data-vaul-snap-points-overlay='true']) {
282
+ opacity: 1;
283
+ }
284
+
285
+ @media (hover: hover) and (pointer: fine) {
286
+ :global([data-vaul-drawer]) {
287
+ user-select: none !important;
288
+ }
289
+ }
290
+ </style>
@@ -0,0 +1,37 @@
1
+ import Root from './drawer.svelte';
2
+ import Close from './drawer-close.svelte';
3
+ import Content from './drawer-content.svelte';
4
+ import Description from './drawer-description.svelte';
5
+ import Footer from './drawer-footer.svelte';
6
+ import Header from './drawer-header.svelte';
7
+ import NestedRoot from './drawer-nested.svelte';
8
+ import Overlay from './drawer-overlay.svelte';
9
+ import Portal from './drawer-portal.svelte';
10
+ import Title from './drawer-title.svelte';
11
+ import Trigger from './drawer-trigger.svelte';
12
+
13
+ export {
14
+ Root,
15
+ NestedRoot,
16
+ Content,
17
+ Description,
18
+ Overlay,
19
+ Footer,
20
+ Header,
21
+ Title,
22
+ Trigger,
23
+ Portal,
24
+ Close,
25
+ //
26
+ Root as Drawer,
27
+ NestedRoot as DrawerNestedRoot,
28
+ Content as DrawerContent,
29
+ Description as DrawerDescription,
30
+ Overlay as DrawerOverlay,
31
+ Footer as DrawerFooter,
32
+ Header as DrawerHeader,
33
+ Title as DrawerTitle,
34
+ Trigger as DrawerTrigger,
35
+ Portal as DrawerPortal,
36
+ Close as DrawerClose,
37
+ };
@@ -0,0 +1,22 @@
1
+ <script lang="ts">
2
+ import { mergeProps } from '../../../internal/merge-props.js';
3
+ import type { DropdownMenuContentStaticProps } 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 }: DropdownMenuContentStaticProps = $props();
8
+
9
+ const mergedProps = $derived(
10
+ mergeProps(
11
+ {
12
+ 'data-slot': 'dropdown-menu-content',
13
+ class:
14
+ 'bg-popover text-popover-foreground popup-surface popup-surface-static z-50 min-w-32 origin-(--bits-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md outline-none',
15
+ style: getFloatingContentCSSVars('dropdown-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 { DropdownMenuContentProps } 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), sideOffset = 4, trapFocus = false, ...restProps }: DropdownMenuContentProps = $props();
8
+
9
+ const mergedProps = $derived(
10
+ mergeProps(
11
+ {
12
+ 'data-slot': 'dropdown-menu-content',
13
+ class:
14
+ 'bg-popover text-popover-foreground popup-surface z-50 min-w-32 origin-(--bits-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md outline-none',
15
+ style: getFloatingContentCSSVars('dropdown-menu'),
16
+ },
17
+ restProps,
18
+ ),
19
+ );
20
+ </script>
21
+
22
+ <MenuContent bind:ref {...mergedProps} {sideOffset} {trapFocus} />
@@ -0,0 +1,39 @@
1
+ export { default as Root } from '../menu/components/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/dropdown-menu-content.svelte';
8
+ export { default as ContentStatic } from './components/dropdown-menu-content-static.svelte';
9
+ export { default as Trigger } from '../menu/components/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
+ DropdownMenuArrowProps as ArrowProps,
22
+ DropdownMenuCheckboxItemProps as CheckboxItemProps,
23
+ DropdownMenuContentProps as ContentProps,
24
+ DropdownMenuContentStaticProps as ContentStaticProps,
25
+ DropdownMenuGroupProps as GroupProps,
26
+ DropdownMenuItemProps as ItemProps,
27
+ DropdownMenuGroupHeadingProps as GroupHeadingProps,
28
+ DropdownMenuRootProps as RootProps,
29
+ DropdownMenuRadioGroupProps as RadioGroupProps,
30
+ DropdownMenuRadioItemProps as RadioItemProps,
31
+ DropdownMenuSeparatorProps as SeparatorProps,
32
+ DropdownMenuSubContentProps as SubContentProps,
33
+ DropdownMenuSubContentStaticProps as SubContentStaticProps,
34
+ DropdownMenuSubProps as SubProps,
35
+ DropdownMenuSubTriggerProps as SubTriggerProps,
36
+ DropdownMenuTriggerProps as TriggerProps,
37
+ DropdownMenuPortalProps as PortalProps,
38
+ DropdownMenuCheckboxGroupProps as CheckboxGroupProps,
39
+ } from './types.js';
@@ -0,0 +1,41 @@
1
+ export type {
2
+ MenuArrowProps as DropdownMenuArrowProps,
3
+ MenuCheckboxItemProps as DropdownMenuCheckboxItemProps,
4
+ MenuContentProps as DropdownMenuContentProps,
5
+ MenuContentStaticProps as DropdownMenuContentStaticProps,
6
+ MenuGroupProps as DropdownMenuGroupProps,
7
+ MenuItemProps as DropdownMenuItemProps,
8
+ MenuGroupHeadingProps as DropdownMenuGroupHeadingProps,
9
+ MenuRootProps as DropdownMenuRootProps,
10
+ MenuRadioGroupProps as DropdownMenuRadioGroupProps,
11
+ MenuRadioItemProps as DropdownMenuRadioItemProps,
12
+ MenuSeparatorProps as DropdownMenuSeparatorProps,
13
+ MenuSubContentProps as DropdownMenuSubContentProps,
14
+ MenuSubContentStaticProps as DropdownMenuSubContentStaticProps,
15
+ MenuSubProps as DropdownMenuSubProps,
16
+ MenuSubTriggerProps as DropdownMenuSubTriggerProps,
17
+ MenuTriggerProps as DropdownMenuTriggerProps,
18
+ MenuPortalProps as DropdownMenuPortalProps,
19
+ MenuCheckboxGroupProps as DropdownMenuCheckboxGroupProps,
20
+ } from "../menu/types.js";
21
+
22
+ export type {
23
+ MenuRootPropsWithoutHTML as DropdownMenuRootPropsWithoutHTML,
24
+ MenuArrowPropsWithoutHTML as DropdownMenuArrowPropsWithoutHTML,
25
+ MenuCheckboxItemPropsWithoutHTML as DropdownMenuCheckboxItemPropsWithoutHTML,
26
+ MenuContentPropsWithoutHTML as DropdownMenuContentPropsWithoutHTML,
27
+ MenuContentStaticPropsWithoutHTML as DropdownMenuContentStaticPropsWithoutHTML,
28
+ MenuGroupPropsWithoutHTML as DropdownMenuGroupPropsWithoutHTML,
29
+ MenuItemPropsWithoutHTML as DropdownMenuItemPropsWithoutHTML,
30
+ MenuGroupHeadingPropsWithoutHTML as DropdownMenuGroupHeadingPropsWithoutHTML,
31
+ MenuRadioGroupPropsWithoutHTML as DropdownMenuRadioGroupPropsWithoutHTML,
32
+ MenuRadioItemPropsWithoutHTML as DropdownMenuRadioItemPropsWithoutHTML,
33
+ MenuSeparatorPropsWithoutHTML as DropdownMenuSeparatorPropsWithoutHTML,
34
+ MenuSubPropsWithoutHTML as DropdownMenuSubPropsWithoutHTML,
35
+ MenuSubTriggerPropsWithoutHTML as DropdownMenuSubTriggerPropsWithoutHTML,
36
+ MenuSubContentPropsWithoutHTML as DropdownMenuSubContentPropsWithoutHTML,
37
+ MenuSubContentStaticPropsWithoutHTML as DropdownMenuSubContentStaticPropsWithoutHTML,
38
+ MenuTriggerPropsWithoutHTML as DropdownMenuTriggerPropsWithoutHTML,
39
+ MenuPortalPropsWithoutHTML as DropdownMenuPortalPropsWithoutHTML,
40
+ MenuCheckboxGroupPropsWithoutHTML as DropdownMenuCheckboxGroupPropsWithoutHTML,
41
+ } from "../menu/types.js";
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import { join } from 'overrule';
3
+ import type { WithElementRef } from '../../internal/utils.js';
4
+ import type { HTMLAttributes } from 'svelte/elements';
5
+
6
+ let { ref = $bindable(null), class: className, children, ...restProps }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
7
+ </script>
8
+
9
+ <div
10
+ bind:this={ref}
11
+ data-slot="empty-content"
12
+ class={join('flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance', className)}
13
+ {...restProps}>
14
+ {@render children?.()}
15
+ </div>
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import { join } from 'overrule';
3
+ import type { WithElementRef } from '../../internal/utils.js';
4
+ import type { HTMLAttributes } from 'svelte/elements';
5
+
6
+ let { ref = $bindable(null), class: className, children, ...restProps }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
7
+ </script>
8
+
9
+ <div
10
+ bind:this={ref}
11
+ data-slot="empty-description"
12
+ class={join('text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4', className)}
13
+ {...restProps}>
14
+ {@render children?.()}
15
+ </div>
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import { join } from 'overrule';
3
+ import type { WithElementRef } from '../../internal/utils.js';
4
+ import type { HTMLAttributes } from 'svelte/elements';
5
+
6
+ let { ref = $bindable(null), class: className, children, ...restProps }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
7
+ </script>
8
+
9
+ <div
10
+ bind:this={ref}
11
+ data-slot="empty-header"
12
+ class={join('flex max-w-sm flex-col items-center gap-2 text-center', className)}
13
+ {...restProps}>
14
+ {@render children?.()}
15
+ </div>
@@ -0,0 +1,21 @@
1
+ <script lang="ts" module>
2
+ import { emptyMediaVariants, type EmptyMediaVariant } from './variants';
3
+ export { emptyMediaVariants, type EmptyMediaVariant };
4
+ </script>
5
+
6
+ <script lang="ts">
7
+ import type { WithElementRef } from '../../internal/utils.js';
8
+ import type { HTMLAttributes } from 'svelte/elements';
9
+
10
+ let {
11
+ ref = $bindable(null),
12
+ class: className,
13
+ children,
14
+ variant = 'default',
15
+ ...restProps
16
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> & { variant?: EmptyMediaVariant } = $props();
17
+ </script>
18
+
19
+ <div bind:this={ref} data-slot="empty-icon" data-variant={variant} class={emptyMediaVariants({ variant, class: className })} {...restProps}>
20
+ {@render children?.()}
21
+ </div>
@@ -0,0 +1,11 @@
1
+ <script lang="ts">
2
+ import { join } from 'overrule';
3
+ import type { WithElementRef } from '../../internal/utils.js';
4
+ import type { HTMLAttributes } from 'svelte/elements';
5
+
6
+ let { ref = $bindable(null), class: className, children, ...restProps }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
7
+ </script>
8
+
9
+ <div bind:this={ref} data-slot="empty-title" class={join('text-lg font-medium tracking-tight', className)} {...restProps}>
10
+ {@render children?.()}
11
+ </div>
@@ -0,0 +1,18 @@
1
+ <script lang="ts">
2
+ import { join } from 'overrule';
3
+ import type { WithElementRef } from '../../internal/utils.js';
4
+ import type { HTMLAttributes } from 'svelte/elements';
5
+
6
+ let { ref = $bindable(null), class: className, children, ...restProps }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
7
+ </script>
8
+
9
+ <div
10
+ bind:this={ref}
11
+ data-slot="empty"
12
+ class={join(
13
+ 'flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12',
14
+ className,
15
+ )}
16
+ {...restProps}>
17
+ {@render children?.()}
18
+ </div>
@@ -0,0 +1,22 @@
1
+ import Root from './empty.svelte';
2
+ import Header from './empty-header.svelte';
3
+ import Media from './empty-media.svelte';
4
+ import Title from './empty-title.svelte';
5
+ import Description from './empty-description.svelte';
6
+ import Content from './empty-content.svelte';
7
+
8
+ export {
9
+ Root,
10
+ Header,
11
+ Media,
12
+ Title,
13
+ Description,
14
+ Content,
15
+ //
16
+ Root as Empty,
17
+ Header as EmptyHeader,
18
+ Media as EmptyMedia,
19
+ Title as EmptyTitle,
20
+ Description as EmptyDescription,
21
+ Content as EmptyContent,
22
+ };