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,36 @@
1
+ import { chain } from 'overrule/props';
2
+
3
+ import type { EventCallback } from './events.js';
4
+ import type { ReadableBox } from '../box.svelte.js';
5
+
6
+ /**
7
+ * Composes event handlers into a single function that can be called with an event.
8
+ * If the previous handler cancels the event using `event.preventDefault()`, the handlers
9
+ * that follow will not be called. Stays local rather than overrule's
10
+ * composeEventHandlers because handlers may arrive boxed.
11
+ */
12
+ export function composeHandlers<E extends Event = Event, T extends Element = Element>(
13
+ ...handlers: Array<EventCallback<E> | ReadableBox<EventCallback<E>> | undefined>
14
+ ): (e: E) => void {
15
+ return function (this: T, e: E) {
16
+ for (const handler of handlers) {
17
+ if (!handler) continue;
18
+ if (e.defaultPrevented) return;
19
+ if (typeof handler === 'function') {
20
+ handler.call(this, e);
21
+ } else {
22
+ handler.current?.call(this, e);
23
+ }
24
+ }
25
+ };
26
+ }
27
+
28
+ /**
29
+ * Merges event handlers into one function that calls all of them with the same event, regardless
30
+ * of whether an earlier handler called `event.preventDefault()`. Use this instead of
31
+ * `composeHandlers` when every handler must run unconditionally — e.g. internal bookkeeping that
32
+ * has to stay correct even if some unrelated code already prevented default on the event.
33
+ */
34
+ export function mergeHandlers<E extends Event = Event>(...handlers: Array<EventCallback<E> | null | undefined | false>): (e: E) => void {
35
+ return chain(...handlers.filter((handler): handler is EventCallback<E> => typeof handler === 'function'));
36
+ }
@@ -0,0 +1,63 @@
1
+ import { boxWith } from '../box.svelte.js';
2
+ import type { Box } from '../types.js';
3
+
4
+ function getActiveElement(rootNode: Document | ShadowRoot): HTMLElement | null {
5
+ let activeElement = rootNode.activeElement as HTMLElement | null;
6
+ while (activeElement?.shadowRoot) {
7
+ const next = activeElement.shadowRoot.activeElement as HTMLElement | null;
8
+ if (!next || next === activeElement) break;
9
+ activeElement = next;
10
+ }
11
+ return activeElement;
12
+ }
13
+
14
+ export class DOMContext {
15
+ readonly element: Box<HTMLElement | null>;
16
+ readonly root: Document | ShadowRoot = $derived.by(() => {
17
+ if (!this.element.current) return document;
18
+ const rootNode = this.element.current.getRootNode() ?? document;
19
+ return rootNode as Document | ShadowRoot;
20
+ });
21
+
22
+ constructor(element: Box<HTMLElement | null> | (() => HTMLElement | null)) {
23
+ if (typeof element === 'function') {
24
+ this.element = boxWith(element);
25
+ } else {
26
+ this.element = element;
27
+ }
28
+ }
29
+
30
+ getDocument = () => {
31
+ return this.element.current?.ownerDocument ?? document;
32
+ };
33
+
34
+ getWindow = () => {
35
+ return this.getDocument().defaultView ?? window;
36
+ };
37
+
38
+ getActiveElement = () => {
39
+ return getActiveElement(this.root);
40
+ };
41
+
42
+ getElementById<T extends Element = HTMLElement>(id: string) {
43
+ return this.root.getElementById(id) as T | null;
44
+ }
45
+
46
+ querySelector = (selector: string) => {
47
+ if (!this.root) return null;
48
+ return this.root.querySelector(selector);
49
+ };
50
+
51
+ querySelectorAll = (selector: string) => {
52
+ if (!this.root) return [] as unknown as NodeListOf<Element>;
53
+ return this.root.querySelectorAll(selector);
54
+ };
55
+
56
+ setTimeout = (callback: () => void, delay: number) => {
57
+ return this.getWindow().setTimeout(callback, delay);
58
+ };
59
+
60
+ clearTimeout = (timeoutId: number) => {
61
+ return this.getWindow().clearTimeout(timeoutId);
62
+ };
63
+ }
@@ -0,0 +1,62 @@
1
+ import { BROWSER } from 'esm-env';
2
+
3
+ const ELEMENT_NODE = 1;
4
+ const DOCUMENT_NODE = 9;
5
+ const DOCUMENT_FRAGMENT_NODE = 11;
6
+
7
+ const isObject = (node: unknown): node is Record<string, unknown> =>
8
+ typeof node === 'object' && node !== null && !Array.isArray(node);
9
+ const hasNodeType = (node: unknown): node is { nodeType: number } => isObject(node) && typeof node.nodeType === 'number';
10
+ const isNode = (node: unknown): node is Node => hasNodeType(node);
11
+ export const isElement = (node: unknown): node is Element => hasNodeType(node) && node.nodeType === ELEMENT_NODE;
12
+ const isDocument = (node: unknown): node is Document => hasNodeType(node) && node.nodeType === DOCUMENT_NODE;
13
+ const isShadowRoot = (node: unknown): node is ShadowRoot => hasNodeType(node) && node.nodeType === DOCUMENT_FRAGMENT_NODE && 'host' in node;
14
+
15
+ export const isHTMLElement = (node: unknown): node is HTMLElement =>
16
+ isElement(node) && node.namespaceURI === 'http://www.w3.org/1999/xhtml';
17
+
18
+ export const isElementOrSVGElement = (node: unknown): node is Element | SVGElement => isElement(node);
19
+
20
+ export const isIOS =
21
+ BROWSER &&
22
+ !!window.navigator.userAgent &&
23
+ (/iP(ad|hone|od)/.test(window.navigator.userAgent) ||
24
+ // iPad Pro Gen3 reports as Macintosh, so fall back to touch-point sniffing.
25
+ (window.navigator.maxTouchPoints > 2 && /iPad|Macintosh/.test(window.navigator.userAgent)));
26
+
27
+ /**
28
+ * Yields `element` and then each of its ancestor elements, innermost first. The walk stays inside
29
+ * `element`'s own tree — a shadow root ends it rather than continuing through the host.
30
+ */
31
+ export function* selfAndAncestors(element: Element | null | undefined): Generator<Element> {
32
+ for (let current = element; current; current = current.parentElement) yield current;
33
+ }
34
+
35
+ type Target = Node | EventTarget | null | undefined;
36
+
37
+ export function contains(parent: Target, child: Target) {
38
+ if (!parent || !child) return false;
39
+ if (!isNode(parent) || !isNode(child)) return false;
40
+ if (parent === child) return true;
41
+ if (parent.contains(child)) return true;
42
+ // `parent.contains` already covered the same-tree case, so this only has to climb out of shadow
43
+ // roots via their host — a composed walk, which is why it can't use `selfAndAncestors`.
44
+ let current: Node | null = child;
45
+ while (current) {
46
+ if (current === parent) return true;
47
+ const root = current.getRootNode?.();
48
+ if (isShadowRoot(root) && current === root) {
49
+ current = root.host;
50
+ } else {
51
+ current = current.parentNode;
52
+ }
53
+ }
54
+ return false;
55
+ }
56
+
57
+ export function getWindow(node: Node | ShadowRoot | Document | null | undefined) {
58
+ if (isShadowRoot(node)) return getWindow(node.host);
59
+ if (isDocument(node)) return node.defaultView ?? window;
60
+ if (isNode(node)) return node.ownerDocument?.defaultView ?? window;
61
+ return window;
62
+ }
@@ -0,0 +1 @@
1
+ export type EventCallback<E extends Event = Event> = (event: E) => void;
@@ -0,0 +1,5 @@
1
+ export { attachRef, mountedAttachment, type RefAttachment, type RefSetter, type WritableRef } from './attach-ref.js';
2
+ export { composeHandlers, mergeHandlers } from './compose-handlers.js';
3
+ export { contains, getWindow, isElement, isElementOrSVGElement, isHTMLElement, isIOS } from './dom.js';
4
+ export { DOMContext } from './dom-context.svelte.js';
5
+ export * from './strings.js';
@@ -0,0 +1,28 @@
1
+ import { styleToString as serializeStyle } from 'overrule/props';
2
+
3
+ import type { StyleProperties } from '../types.js';
4
+
5
+ export const srOnlyStyles: StyleProperties = {
6
+ position: 'absolute',
7
+ width: '1px',
8
+ height: '1px',
9
+ padding: '0',
10
+ margin: '-1px',
11
+ overflow: 'hidden',
12
+ clip: 'rect(0, 0, 0, 0)',
13
+ clipPath: 'inset(50%)',
14
+ whiteSpace: 'nowrap',
15
+ borderWidth: '0',
16
+ };
17
+
18
+ // Adapter over overrule's serializer: this one also passes strings through
19
+ // and tolerates null, the shapes floating-layer feeds it.
20
+ export function styleToString(style: string | StyleProperties | null | undefined = {}): string {
21
+ if (!style) return '';
22
+ if (typeof style === 'string') return style;
23
+ return serializeStyle(style as Record<string, string | number | null | undefined>);
24
+ }
25
+
26
+ // Runs at module load, so it must not sit above `styleToString` (temporal
27
+ // dead zone → ReferenceError during SSR).
28
+ export const srOnlyStylesString = styleToString(srOnlyStyles);
@@ -0,0 +1,48 @@
1
+ import { boxAutoReset, type WritableBox } from './tools/index.js';
2
+ import { getNextMatch } from './arrays.js';
3
+
4
+ export const textContentOf = (node: HTMLElement) => node.textContent?.trim() ?? '';
5
+
6
+ type TypeaheadOpts<T> = {
7
+ getSearchText: (candidate: T) => string;
8
+ getCurrentCandidate: () => T | null;
9
+ onMatch: (candidate: T) => void;
10
+ getWindow: () => Window & typeof globalThis;
11
+ };
12
+
13
+ export class Typeahead<T> {
14
+ readonly #opts: TypeaheadOpts<T>;
15
+ readonly #search: WritableBox<string>;
16
+
17
+ constructor(opts: TypeaheadOpts<T>) {
18
+ this.#opts = opts;
19
+ this.#search = boxAutoReset('', {
20
+ afterMs: 1000,
21
+ getWindow: opts.getWindow,
22
+ });
23
+ }
24
+
25
+ get search() {
26
+ return this.#search.current;
27
+ }
28
+
29
+ handleKey(key: string, candidates: T[]) {
30
+ if (!candidates.length) return;
31
+
32
+ this.#search.current = this.#search.current + key;
33
+
34
+ const currentCandidate = this.#opts.getCurrentCandidate();
35
+ const current = candidates.find((candidate) => candidate === currentCandidate);
36
+ const currentMatch = current === undefined ? '' : this.#opts.getSearchText(current);
37
+
38
+ const values = candidates.map((candidate) => this.#opts.getSearchText(candidate));
39
+ const nextMatch = getNextMatch(values, this.#search.current, currentMatch);
40
+ const newCandidate = candidates.find((candidate) => this.#opts.getSearchText(candidate) === nextMatch);
41
+ if (newCandidate) this.#opts.onMatch(newCandidate);
42
+ return newCandidate;
43
+ }
44
+
45
+ reset() {
46
+ this.#search.current = '';
47
+ }
48
+ }
@@ -0,0 +1,119 @@
1
+ // oxlint-disable no-explicit-any
2
+ import type { Snippet } from 'svelte';
3
+
4
+ import type { Box, ReadableBoxedValues, WritableBoxedValues, RefAttachment as InternalRefAttachment } from './tools/index.js';
5
+ import type { StyleProperties } from './tools/types.js';
6
+
7
+ export type OnChangeFn<T> = (value: T) => void;
8
+
9
+ export type ElementRef = Box<HTMLElement | null>;
10
+
11
+ export type WithChild<
12
+ /**
13
+ * The props that the component accepts.
14
+ */
15
+ Props extends Record<PropertyKey, unknown> = {},
16
+ /**
17
+ * The props that are passed to the `child` and `children` snippets. The `ElementProps` are
18
+ * merged with these props for the `child` snippet.
19
+ */
20
+ SnippetProps extends Record<PropertyKey, unknown> = { _default: never },
21
+ /**
22
+ * The underlying DOM element being rendered. You can bind to this prop to
23
+ * programmatically interact with the element.
24
+ */
25
+ Ref = HTMLElement,
26
+ > = Omit<Props, 'child' | 'children'> & {
27
+ child?: SnippetProps extends { _default: never }
28
+ ? Snippet<[{ props: Record<string, unknown> }]>
29
+ : Snippet<[SnippetProps & { props: Record<string, unknown> }]>;
30
+ children?: SnippetProps extends { _default: never } ? Snippet : Snippet<[SnippetProps]>;
31
+ style?: StyleProperties | string | null | undefined;
32
+ ref?: Ref | null | undefined;
33
+ };
34
+
35
+ export type WithChildNoChildrenSnippetProps<
36
+ /**
37
+ * The props that the component accepts.
38
+ */
39
+ Props extends Record<PropertyKey, unknown> = {},
40
+ /**
41
+ * The props that are passed to the `child` and `children` snippets. The `ElementProps` are
42
+ * merged with these props for the `child` snippet.
43
+ */
44
+ SnippetProps extends Record<PropertyKey, unknown> = { _default: never },
45
+ /**
46
+ * The underlying DOM element being rendered. You can bind to this prop to
47
+ * programmatically interact with the element.
48
+ */
49
+ Ref = HTMLElement,
50
+ > = Omit<Props, 'child' | 'children'> & {
51
+ child?: SnippetProps extends { _default: never }
52
+ ? Snippet<[{ props: Record<string, unknown> }]>
53
+ : Snippet<[SnippetProps & { props: Record<string, unknown> }]>;
54
+ children?: Snippet;
55
+ style?: StyleProperties | string | null | undefined;
56
+ ref?: Ref | null | undefined;
57
+ };
58
+
59
+ export type WithChildren<Props = {}> = Props & {
60
+ children?: Snippet | undefined;
61
+ };
62
+
63
+ /**
64
+ * Constructs a new type by omitting properties from type
65
+ * 'T' that exist in type 'U'.
66
+ *
67
+ * @template T - The base object type from which properties will be omitted.
68
+ * @template U - The object type whose properties will be omitted from 'T'.
69
+ * @example
70
+ * type Result = Without<{ a: number; b: string; }, { b: string; }>;
71
+ * // Result type will be { a: number; }
72
+ */
73
+ export type Without<T extends object, U extends object> = Omit<T, keyof U>;
74
+
75
+ export type Arrayable<T> = T[] | T;
76
+
77
+ export type Fn = () => void;
78
+ export type AnyFn = (...args: any[]) => any;
79
+
80
+ export type WithRefOpts<T = {}> = T & ReadableBoxedValues<{ id: string }> & WritableBoxedValues<{ ref: HTMLElement | null }>;
81
+
82
+ export type BitsEvent<T extends Event = Event, U extends HTMLElement = HTMLElement> = T & {
83
+ currentTarget: U;
84
+ };
85
+
86
+ export type BitsPointerEvent<T extends HTMLElement = HTMLElement> = BitsEvent<PointerEvent, T>;
87
+ export type BitsKeyboardEvent<T extends HTMLElement = HTMLElement> = BitsEvent<KeyboardEvent, T>;
88
+ export type BitsMouseEvent<T extends HTMLElement = HTMLElement> = BitsEvent<MouseEvent, T>;
89
+ export type BitsFocusEvent<T extends HTMLElement = HTMLElement> = BitsEvent<FocusEvent, T>;
90
+ export type BitsInputEvent<T extends HTMLElement = HTMLElement> = BitsEvent<InputEvent, T>;
91
+
92
+ export type RefAttachment<T extends HTMLElement = HTMLElement> = InternalRefAttachment<T>;
93
+
94
+ export type FloatingContentSnippetProps = {
95
+ /**
96
+ * Whether the content is open or closed.
97
+ */
98
+ open: boolean;
99
+ };
100
+
101
+ export type StaticContentSnippetProps = FloatingContentSnippetProps;
102
+
103
+ /**
104
+ * Accepted for API compatibility on Dialog and Popover content and ignored: every surface is
105
+ * mounted while closed now (native top layer, or hidden inline with a CSS exit).
106
+ */
107
+ export type PresenceProps = {
108
+ forceMount?: boolean;
109
+ };
110
+
111
+ export type TextSelectionGuardProps = {
112
+ /**
113
+ * Whether to prevent a drag that starts inside the surface from selecting page text behind
114
+ * it: the open surface is flagged for the `user-select` guard in ui.css.
115
+ *
116
+ * @default true
117
+ */
118
+ preventOverflowTextSelection?: boolean;
119
+ };
@@ -0,0 +1,10 @@
1
+ // Snippet/ref prop helpers used across the styled bits-ui components (the
2
+ // shadcn-svelte convention). The reactive accessor/box types live in
3
+ // `#lib/internal/tools` and `#lib/internal/types` — these are only the surface props.
4
+
5
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
+ export type WithoutChild<T> = T extends { child?: any } ? Omit<T, 'child'> : T;
7
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
+ export type WithoutChildren<T> = T extends { children?: any } ? Omit<T, 'children'> : T;
9
+ export type WithoutChildrenOrChild<T> = WithoutChildren<WithoutChild<T>>;
10
+ export type WithElementRef<T, U extends HTMLElement = HTMLElement> = T & { ref?: U | null };
@@ -0,0 +1,8 @@
1
+ // FxiOS is a WebKit shell yet resizes window.innerHeight on keyboard toggle (mozilla-mobile/firefox-ios#17929)
2
+ export const isIOSFirefox = () => /FxiOS/.test(navigator.userAgent);
3
+
4
+ // On iOS this is every engine except EU alt-engine ports (allowed since iOS 17.4) — Safari, WKWebView shells, FxiOS, CriOS all carry AppleWebKit.
5
+ export const isWebKit = () => /AppleWebKit/.test(navigator.userAgent);
6
+
7
+ export const needsIOSFixedBodyScrollLock = () =>
8
+ /iPad|iPhone|iPod/.test(navigator.userAgent) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);
@@ -0,0 +1,19 @@
1
+ // Mirrored as --vaul-duration/--vaul-ease in drawer.svelte's stylesheet — keep in sync.
2
+ export const TRANSITIONS = {
3
+ DURATION: 0.5,
4
+ EASE: [0.32, 0.72, 0, 1],
5
+ };
6
+
7
+ export const VELOCITY_THRESHOLD = 0.4;
8
+
9
+ export const CLOSE_THRESHOLD = 0.25;
10
+
11
+ export const SCROLL_LOCK_TIMEOUT = 100;
12
+
13
+ export const BORDER_RADIUS = 8;
14
+
15
+ export const NESTED_DISPLACEMENT = 16;
16
+
17
+ export const WINDOW_TOP_OFFSET = 26;
18
+
19
+ export const DRAG_CLASS = 'vaul-dragging';
@@ -0,0 +1,39 @@
1
+ import type { DrawerDirection } from './types.js';
2
+
3
+ type StyleValue = string | number | null | undefined;
4
+ type Style = Record<string, StyleValue>;
5
+
6
+ export const applyStyle = (element: Element | HTMLElement | null | undefined, style: Style) => {
7
+ if (!(element instanceof HTMLElement)) return;
8
+
9
+ for (const [key, value] of Object.entries(style)) {
10
+ if (value != null) Object.assign(element.style, { [key]: String(value) });
11
+ }
12
+ };
13
+
14
+ export const assignStyle = (element: HTMLElement | null | undefined, style: Style) => {
15
+ if (!element) return () => {};
16
+
17
+ const prevStyle = element.style.cssText;
18
+
19
+ applyStyle(element, style);
20
+
21
+ return () => {
22
+ element.style.cssText = prevStyle;
23
+ };
24
+ };
25
+
26
+ export const isVertical = (direction: DrawerDirection) => direction === 'top' || direction === 'bottom';
27
+
28
+ export const getTranslate = (element: HTMLElement, direction: DrawerDirection) => {
29
+ const win = element.ownerDocument.defaultView ?? window;
30
+ const transform = win.getComputedStyle(element).transform;
31
+
32
+ if (transform === 'none') return 0;
33
+
34
+ const matrix = new win.DOMMatrixReadOnly(transform);
35
+
36
+ return isVertical(direction) ? matrix.m42 : matrix.m41;
37
+ };
38
+
39
+ export const dampenValue = (value: number) => 8 * (Math.log(value + 1) - 2);
@@ -0,0 +1,142 @@
1
+ import type { BitsPrimitiveDivAttributes } from "../attribute-types.js";
2
+ import type {
3
+ DialogContentPropsWithoutHTML,
4
+ DialogOverlayPropsWithoutHTML,
5
+ DialogRootProps,
6
+ } from "../../components/dialog/types.js";
7
+ import type { WithChildren, Without } from "../types.js";
8
+ import type { WithoutChildrenOrChild } from "../utils.js";
9
+
10
+ export type DrawerDirection = "left" | "right" | "top" | "bottom";
11
+
12
+ export type Getters<T> = {
13
+ [K in keyof T]: () => T[K];
14
+ };
15
+
16
+ type WithFadeFromProps = {
17
+ /**
18
+ * Array of numbers from 0 to 100 that corresponds to % of the screen a given snap point should take up.
19
+ * Should go from least visible. Example `[0.2, 0.5, 0.8]`.
20
+ * You can also use px values, which doesn't take screen height into account.
21
+ */
22
+ snapPoints: (number | string)[];
23
+ /**
24
+ * Index of a `snapPoint` from which the overlay fade should be applied. Defaults to the last snap point.
25
+ */
26
+ fadeFromIndex: number;
27
+ };
28
+
29
+ type WithoutFadeFromProps = {
30
+ /**
31
+ * Array of numbers from 0 to 100 that corresponds to % of the screen a given snap point should take up.
32
+ * Should go from least visible. Example `[0.2, 0.5, 0.8]`.
33
+ * You can also use px values, which doesn't take screen height into account.
34
+ */
35
+ snapPoints?: (number | string)[];
36
+ fadeFromIndex?: never;
37
+ };
38
+
39
+ type BaseDrawerRootPropsWithoutHTML = WithChildren<{
40
+ activeSnapPoint?: number | string | null;
41
+ onActiveSnapPointChange?: (snapPoint: number | string | null) => void;
42
+ open?: boolean;
43
+ /**
44
+ * Number between 0 and 1 that determines when the drawer should be closed.
45
+ * Example: threshold of 0.5 would close the drawer if the user swiped for 50% of the height of the drawer or more.
46
+ * @default 0.25
47
+ */
48
+ closeThreshold?: number;
49
+ /**
50
+ * When `true` the `body` doesn't get any styles assigned from Vaul
51
+ */
52
+ noBodyStyles?: boolean;
53
+ onOpenChange?: (open: boolean) => void;
54
+ shouldScaleBackground?: boolean;
55
+ /**
56
+ * When `false` we don't change body's background color when the drawer is open.
57
+ * @default true
58
+ */
59
+ setBackgroundColorOnScale?: boolean;
60
+ /**
61
+ * Duration for which the drawer is not draggable after scrolling content inside of the drawer.
62
+ * @default 500ms
63
+ */
64
+ scrollLockTimeout?: number;
65
+ /**
66
+ * When `true`, don't move the drawer upwards if there's space, but rather only change it's height so it's fully scrollable when the keyboard is open
67
+ */
68
+ fixed?: boolean;
69
+ /**
70
+ * When `true` only allows the drawer to be dragged by the `<Drawer.Handle />` component.
71
+ * @default false
72
+ */
73
+ handleOnly?: boolean;
74
+ /**
75
+ * When `false` dragging, clicking outside, pressing esc, etc. will not close the drawer.
76
+ * Use this in combination with the `open` prop, otherwise you won't be able to open/close the drawer.
77
+ * @default true
78
+ */
79
+ dismissible?: boolean;
80
+ onDrag?: (event: PointerEvent, percentageDragged: number) => void;
81
+ onRelease?: (event: PointerEvent, open: boolean) => void;
82
+ /**
83
+ * When `false` it allows to interact with elements outside of the drawer without closing it.
84
+ * @default true
85
+ */
86
+ modal?: boolean;
87
+ nested?: boolean;
88
+ onClose?: () => void;
89
+ /**
90
+ * Direction of the drawer. Can be `top` or `bottom`, `left`, `right`.
91
+ * @default 'bottom'
92
+ */
93
+ direction?: "top" | "bottom" | "left" | "right";
94
+ /**
95
+ * Opened by default, skips initial enter animation. Still reacts to `open` state changes
96
+ * @default false
97
+ */
98
+ defaultOpen?: boolean;
99
+ /**
100
+ * When set to `true` prevents scrolling on the document body on mount, and restores it on unmount.
101
+ * @default false
102
+ */
103
+ disablePreventScroll?: boolean;
104
+ /**
105
+ * When `true` Vaul will reposition inputs rather than scroll then into view if the keyboard is in the way.
106
+ * Setting it to `false` will fall back to the default browser behavior.
107
+ * @default true when {@link snapPoints} is defined
108
+ */
109
+ repositionInputs?: boolean;
110
+ /**
111
+ * Disabled velocity based swiping for snap points.
112
+ * This means that a snap point won't be skipped even if the velocity is high enough.
113
+ * Useful if each snap point in a drawer is equally important.
114
+ * @default false
115
+ */
116
+ snapToSequentialPoint?: boolean;
117
+ container?: HTMLElement | null;
118
+ /**
119
+ * Gets triggered after the open or close animation ends, it receives an `open` argument with the `open` state of the drawer by the time the function was triggered.
120
+ * Useful to revert any state changes for example.
121
+ */
122
+ onAnimationEnd?: (open: boolean) => void;
123
+ preventScrollRestoration?: boolean;
124
+ autoFocus?: boolean;
125
+ }> &
126
+ (WithFadeFromProps | WithoutFadeFromProps);
127
+
128
+ export type DrawerRootProps = BaseDrawerRootPropsWithoutHTML &
129
+ Without<DialogRootProps, BaseDrawerRootPropsWithoutHTML>;
130
+
131
+ type DrawerContentPropsWithoutHTML = WithChildren<
132
+ WithoutChildrenOrChild<Omit<DialogContentPropsWithoutHTML, "preventScroll">>
133
+ >;
134
+
135
+ export type DrawerContentProps = DrawerContentPropsWithoutHTML &
136
+ Without<BitsPrimitiveDivAttributes, DrawerContentPropsWithoutHTML>;
137
+
138
+ type DrawerOverlayPropsWithoutHTML = WithChildren<
139
+ WithoutChildrenOrChild<DialogOverlayPropsWithoutHTML>
140
+ >;
141
+ export type DrawerOverlayProps = DrawerOverlayPropsWithoutHTML &
142
+ Without<BitsPrimitiveDivAttributes, DrawerOverlayPropsWithoutHTML>;