@sewadah/selaras 0.1.1

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 (500) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +131 -0
  3. package/dist/module.d.mts +22 -0
  4. package/dist/module.json +9 -0
  5. package/dist/module.mjs +127 -0
  6. package/dist/runtime/components/Accordion.d.vue.ts +59 -0
  7. package/dist/runtime/components/Accordion.vue +65 -0
  8. package/dist/runtime/components/Accordion.vue.d.ts +59 -0
  9. package/dist/runtime/components/Alert.d.vue.ts +39 -0
  10. package/dist/runtime/components/Alert.vue +64 -0
  11. package/dist/runtime/components/Alert.vue.d.ts +39 -0
  12. package/dist/runtime/components/AlertDialog.d.vue.ts +66 -0
  13. package/dist/runtime/components/AlertDialog.vue +116 -0
  14. package/dist/runtime/components/AlertDialog.vue.d.ts +66 -0
  15. package/dist/runtime/components/App.d.vue.ts +32 -0
  16. package/dist/runtime/components/App.vue +26 -0
  17. package/dist/runtime/components/App.vue.d.ts +32 -0
  18. package/dist/runtime/components/Autocomplete.d.vue.ts +61 -0
  19. package/dist/runtime/components/Autocomplete.vue +41 -0
  20. package/dist/runtime/components/Autocomplete.vue.d.ts +61 -0
  21. package/dist/runtime/components/Avatar.d.vue.ts +46 -0
  22. package/dist/runtime/components/Avatar.vue +64 -0
  23. package/dist/runtime/components/Avatar.vue.d.ts +46 -0
  24. package/dist/runtime/components/AvatarGroup.d.vue.ts +14 -0
  25. package/dist/runtime/components/AvatarGroup.vue +41 -0
  26. package/dist/runtime/components/AvatarGroup.vue.d.ts +14 -0
  27. package/dist/runtime/components/Badge.d.vue.ts +37 -0
  28. package/dist/runtime/components/Badge.vue +47 -0
  29. package/dist/runtime/components/Badge.vue.d.ts +37 -0
  30. package/dist/runtime/components/Breadcrumb.d.vue.ts +37 -0
  31. package/dist/runtime/components/Breadcrumb.vue +109 -0
  32. package/dist/runtime/components/Breadcrumb.vue.d.ts +37 -0
  33. package/dist/runtime/components/Button.d.vue.ts +45 -0
  34. package/dist/runtime/components/Button.vue +67 -0
  35. package/dist/runtime/components/Button.vue.d.ts +45 -0
  36. package/dist/runtime/components/ButtonGroup.d.vue.ts +22 -0
  37. package/dist/runtime/components/ButtonGroup.vue +21 -0
  38. package/dist/runtime/components/ButtonGroup.vue.d.ts +22 -0
  39. package/dist/runtime/components/Callout.d.vue.ts +27 -0
  40. package/dist/runtime/components/Callout.vue +47 -0
  41. package/dist/runtime/components/Callout.vue.d.ts +27 -0
  42. package/dist/runtime/components/Card.d.vue.ts +25 -0
  43. package/dist/runtime/components/Card.vue +30 -0
  44. package/dist/runtime/components/Card.vue.d.ts +25 -0
  45. package/dist/runtime/components/CardGroup.d.vue.ts +23 -0
  46. package/dist/runtime/components/CardGroup.vue +19 -0
  47. package/dist/runtime/components/CardGroup.vue.d.ts +23 -0
  48. package/dist/runtime/components/Checkbox.d.vue.ts +45 -0
  49. package/dist/runtime/components/Checkbox.vue +76 -0
  50. package/dist/runtime/components/Checkbox.vue.d.ts +45 -0
  51. package/dist/runtime/components/Chip.d.vue.ts +50 -0
  52. package/dist/runtime/components/Chip.vue +75 -0
  53. package/dist/runtime/components/Chip.vue.d.ts +50 -0
  54. package/dist/runtime/components/CodeButton.d.vue.ts +21 -0
  55. package/dist/runtime/components/CodeButton.vue +33 -0
  56. package/dist/runtime/components/CodeButton.vue.d.ts +21 -0
  57. package/dist/runtime/components/CodeGroup.d.vue.ts +3 -0
  58. package/dist/runtime/components/CodeGroup.vue +46 -0
  59. package/dist/runtime/components/CodeGroup.vue.d.ts +3 -0
  60. package/dist/runtime/components/CodeTree.d.vue.ts +17 -0
  61. package/dist/runtime/components/CodeTree.vue +56 -0
  62. package/dist/runtime/components/CodeTree.vue.d.ts +17 -0
  63. package/dist/runtime/components/Collapsible.d.vue.ts +44 -0
  64. package/dist/runtime/components/Collapsible.vue +52 -0
  65. package/dist/runtime/components/Collapsible.vue.d.ts +44 -0
  66. package/dist/runtime/components/ColorModeToggle.d.vue.ts +3 -0
  67. package/dist/runtime/components/ColorModeToggle.vue +24 -0
  68. package/dist/runtime/components/ColorModeToggle.vue.d.ts +3 -0
  69. package/dist/runtime/components/ColorPicker.d.vue.ts +30 -0
  70. package/dist/runtime/components/ColorPicker.vue +112 -0
  71. package/dist/runtime/components/ColorPicker.vue.d.ts +30 -0
  72. package/dist/runtime/components/Column.d.ts +72 -0
  73. package/dist/runtime/components/Column.js +34 -0
  74. package/dist/runtime/components/ColumnGroup.d.ts +33 -0
  75. package/dist/runtime/components/ColumnGroup.js +17 -0
  76. package/dist/runtime/components/CommandPalette.d.vue.ts +41 -0
  77. package/dist/runtime/components/CommandPalette.vue +208 -0
  78. package/dist/runtime/components/CommandPalette.vue.d.ts +41 -0
  79. package/dist/runtime/components/Container.d.vue.ts +22 -0
  80. package/dist/runtime/components/Container.vue +21 -0
  81. package/dist/runtime/components/Container.vue.d.ts +22 -0
  82. package/dist/runtime/components/ContentNavigation.d.vue.ts +31 -0
  83. package/dist/runtime/components/ContentNavigation.vue +64 -0
  84. package/dist/runtime/components/ContentNavigation.vue.d.ts +31 -0
  85. package/dist/runtime/components/ContentSurround.d.vue.ts +16 -0
  86. package/dist/runtime/components/ContentSurround.vue +46 -0
  87. package/dist/runtime/components/ContentSurround.vue.d.ts +16 -0
  88. package/dist/runtime/components/ContentToc.d.vue.ts +35 -0
  89. package/dist/runtime/components/ContentToc.vue +265 -0
  90. package/dist/runtime/components/ContentToc.vue.d.ts +35 -0
  91. package/dist/runtime/components/ContextMenu.d.vue.ts +33 -0
  92. package/dist/runtime/components/ContextMenu.vue +49 -0
  93. package/dist/runtime/components/ContextMenu.vue.d.ts +33 -0
  94. package/dist/runtime/components/DashboardGroup.d.vue.ts +24 -0
  95. package/dist/runtime/components/DashboardGroup.vue +52 -0
  96. package/dist/runtime/components/DashboardGroup.vue.d.ts +24 -0
  97. package/dist/runtime/components/DashboardNavbar.d.vue.ts +23 -0
  98. package/dist/runtime/components/DashboardNavbar.vue +33 -0
  99. package/dist/runtime/components/DashboardNavbar.vue.d.ts +23 -0
  100. package/dist/runtime/components/DashboardPanel.d.vue.ts +22 -0
  101. package/dist/runtime/components/DashboardPanel.vue +26 -0
  102. package/dist/runtime/components/DashboardPanel.vue.d.ts +22 -0
  103. package/dist/runtime/components/DashboardResizeHandle.d.vue.ts +8 -0
  104. package/dist/runtime/components/DashboardResizeHandle.vue +19 -0
  105. package/dist/runtime/components/DashboardResizeHandle.vue.d.ts +8 -0
  106. package/dist/runtime/components/DashboardSidebar.d.vue.ts +40 -0
  107. package/dist/runtime/components/DashboardSidebar.vue +117 -0
  108. package/dist/runtime/components/DashboardSidebar.vue.d.ts +40 -0
  109. package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +21 -0
  110. package/dist/runtime/components/DashboardSidebarToggle.vue +42 -0
  111. package/dist/runtime/components/DashboardSidebarToggle.vue.d.ts +21 -0
  112. package/dist/runtime/components/DatePicker.d.vue.ts +165 -0
  113. package/dist/runtime/components/DatePicker.vue +796 -0
  114. package/dist/runtime/components/DatePicker.vue.d.ts +165 -0
  115. package/dist/runtime/components/Drawer.d.vue.ts +74 -0
  116. package/dist/runtime/components/Drawer.vue +157 -0
  117. package/dist/runtime/components/Drawer.vue.d.ts +74 -0
  118. package/dist/runtime/components/DrawerRenderer.d.vue.ts +3 -0
  119. package/dist/runtime/components/DrawerRenderer.vue +30 -0
  120. package/dist/runtime/components/DrawerRenderer.vue.d.ts +3 -0
  121. package/dist/runtime/components/Dropdown.d.vue.ts +35 -0
  122. package/dist/runtime/components/Dropdown.vue +51 -0
  123. package/dist/runtime/components/Dropdown.vue.d.ts +35 -0
  124. package/dist/runtime/components/FileTree.d.vue.ts +28 -0
  125. package/dist/runtime/components/FileTree.vue +68 -0
  126. package/dist/runtime/components/FileTree.vue.d.ts +28 -0
  127. package/dist/runtime/components/FileUpload.d.vue.ts +68 -0
  128. package/dist/runtime/components/FileUpload.vue +226 -0
  129. package/dist/runtime/components/FileUpload.vue.d.ts +68 -0
  130. package/dist/runtime/components/FormField.d.vue.ts +37 -0
  131. package/dist/runtime/components/FormField.vue +72 -0
  132. package/dist/runtime/components/FormField.vue.d.ts +37 -0
  133. package/dist/runtime/components/Header.d.vue.ts +20 -0
  134. package/dist/runtime/components/Header.vue +23 -0
  135. package/dist/runtime/components/Header.vue.d.ts +20 -0
  136. package/dist/runtime/components/Icon.d.vue.ts +14 -0
  137. package/dist/runtime/components/Icon.vue +18 -0
  138. package/dist/runtime/components/Icon.vue.d.ts +14 -0
  139. package/dist/runtime/components/Input.d.vue.ts +41 -0
  140. package/dist/runtime/components/Input.vue +86 -0
  141. package/dist/runtime/components/Input.vue.d.ts +41 -0
  142. package/dist/runtime/components/InputGroup.d.vue.ts +22 -0
  143. package/dist/runtime/components/InputGroup.vue +21 -0
  144. package/dist/runtime/components/InputGroup.vue.d.ts +22 -0
  145. package/dist/runtime/components/InputNumber.d.vue.ts +37 -0
  146. package/dist/runtime/components/InputNumber.vue +173 -0
  147. package/dist/runtime/components/InputNumber.vue.d.ts +37 -0
  148. package/dist/runtime/components/Kbd.d.vue.ts +24 -0
  149. package/dist/runtime/components/Kbd.vue +42 -0
  150. package/dist/runtime/components/Kbd.vue.d.ts +24 -0
  151. package/dist/runtime/components/Modal.d.vue.ts +72 -0
  152. package/dist/runtime/components/Modal.vue +178 -0
  153. package/dist/runtime/components/Modal.vue.d.ts +72 -0
  154. package/dist/runtime/components/ModalRenderer.d.vue.ts +3 -0
  155. package/dist/runtime/components/ModalRenderer.vue +25 -0
  156. package/dist/runtime/components/ModalRenderer.vue.d.ts +3 -0
  157. package/dist/runtime/components/NavigationMenu.d.vue.ts +108 -0
  158. package/dist/runtime/components/NavigationMenu.vue +166 -0
  159. package/dist/runtime/components/NavigationMenu.vue.d.ts +108 -0
  160. package/dist/runtime/components/NavigationMenuAccordionItem.d.vue.ts +23 -0
  161. package/dist/runtime/components/NavigationMenuAccordionItem.vue +106 -0
  162. package/dist/runtime/components/NavigationMenuAccordionItem.vue.d.ts +23 -0
  163. package/dist/runtime/components/NavigationMenuFlyoutList.d.vue.ts +19 -0
  164. package/dist/runtime/components/NavigationMenuFlyoutList.vue +44 -0
  165. package/dist/runtime/components/NavigationMenuFlyoutList.vue.d.ts +19 -0
  166. package/dist/runtime/components/NavigationMenuFlyoutTrigger.d.vue.ts +49 -0
  167. package/dist/runtime/components/NavigationMenuFlyoutTrigger.vue +116 -0
  168. package/dist/runtime/components/NavigationMenuFlyoutTrigger.vue.d.ts +49 -0
  169. package/dist/runtime/components/PageAside.d.vue.ts +20 -0
  170. package/dist/runtime/components/PageAside.vue +26 -0
  171. package/dist/runtime/components/PageAside.vue.d.ts +20 -0
  172. package/dist/runtime/components/PageHeader.d.vue.ts +24 -0
  173. package/dist/runtime/components/PageHeader.vue +30 -0
  174. package/dist/runtime/components/PageHeader.vue.d.ts +24 -0
  175. package/dist/runtime/components/Pagination.d.vue.ts +42 -0
  176. package/dist/runtime/components/Pagination.vue +113 -0
  177. package/dist/runtime/components/Pagination.vue.d.ts +42 -0
  178. package/dist/runtime/components/PinInput.d.vue.ts +40 -0
  179. package/dist/runtime/components/PinInput.vue +66 -0
  180. package/dist/runtime/components/PinInput.vue.d.ts +40 -0
  181. package/dist/runtime/components/Popover.d.vue.ts +52 -0
  182. package/dist/runtime/components/Popover.vue +77 -0
  183. package/dist/runtime/components/Popover.vue.d.ts +52 -0
  184. package/dist/runtime/components/Progress.d.vue.ts +32 -0
  185. package/dist/runtime/components/Progress.vue +76 -0
  186. package/dist/runtime/components/Progress.vue.d.ts +32 -0
  187. package/dist/runtime/components/ProseH1.d.vue.ts +18 -0
  188. package/dist/runtime/components/ProseH1.vue +21 -0
  189. package/dist/runtime/components/ProseH1.vue.d.ts +18 -0
  190. package/dist/runtime/components/ProseH2.d.vue.ts +18 -0
  191. package/dist/runtime/components/ProseH2.vue +21 -0
  192. package/dist/runtime/components/ProseH2.vue.d.ts +18 -0
  193. package/dist/runtime/components/ProseH3.d.vue.ts +18 -0
  194. package/dist/runtime/components/ProseH3.vue +21 -0
  195. package/dist/runtime/components/ProseH3.vue.d.ts +18 -0
  196. package/dist/runtime/components/ProseH4.d.vue.ts +18 -0
  197. package/dist/runtime/components/ProseH4.vue +21 -0
  198. package/dist/runtime/components/ProseH4.vue.d.ts +18 -0
  199. package/dist/runtime/components/ProseH5.d.vue.ts +18 -0
  200. package/dist/runtime/components/ProseH5.vue +21 -0
  201. package/dist/runtime/components/ProseH5.vue.d.ts +18 -0
  202. package/dist/runtime/components/ProseH6.d.vue.ts +18 -0
  203. package/dist/runtime/components/ProseH6.vue +21 -0
  204. package/dist/runtime/components/ProseH6.vue.d.ts +18 -0
  205. package/dist/runtime/components/ProsePre.d.vue.ts +20 -0
  206. package/dist/runtime/components/ProsePre.vue +50 -0
  207. package/dist/runtime/components/ProsePre.vue.d.ts +20 -0
  208. package/dist/runtime/components/RadioGroup.d.vue.ts +50 -0
  209. package/dist/runtime/components/RadioGroup.vue +82 -0
  210. package/dist/runtime/components/RadioGroup.vue.d.ts +50 -0
  211. package/dist/runtime/components/Rating.d.vue.ts +36 -0
  212. package/dist/runtime/components/Rating.vue +83 -0
  213. package/dist/runtime/components/Rating.vue.d.ts +36 -0
  214. package/dist/runtime/components/ReadMore.d.vue.ts +20 -0
  215. package/dist/runtime/components/ReadMore.vue +59 -0
  216. package/dist/runtime/components/ReadMore.vue.d.ts +20 -0
  217. package/dist/runtime/components/ScrollArea.d.vue.ts +19 -0
  218. package/dist/runtime/components/ScrollArea.vue +37 -0
  219. package/dist/runtime/components/ScrollArea.vue.d.ts +19 -0
  220. package/dist/runtime/components/Select.d.vue.ts +60 -0
  221. package/dist/runtime/components/Select.vue +40 -0
  222. package/dist/runtime/components/Select.vue.d.ts +60 -0
  223. package/dist/runtime/components/Separator.d.vue.ts +27 -0
  224. package/dist/runtime/components/Separator.vue +36 -0
  225. package/dist/runtime/components/Separator.vue.d.ts +27 -0
  226. package/dist/runtime/components/Skeleton.d.vue.ts +13 -0
  227. package/dist/runtime/components/Skeleton.vue +17 -0
  228. package/dist/runtime/components/Skeleton.vue.d.ts +13 -0
  229. package/dist/runtime/components/Slideover.d.vue.ts +65 -0
  230. package/dist/runtime/components/Slideover.vue +140 -0
  231. package/dist/runtime/components/Slideover.vue.d.ts +65 -0
  232. package/dist/runtime/components/SlideoverRenderer.d.vue.ts +3 -0
  233. package/dist/runtime/components/SlideoverRenderer.vue +27 -0
  234. package/dist/runtime/components/SlideoverRenderer.vue.d.ts +3 -0
  235. package/dist/runtime/components/Slider.d.vue.ts +60 -0
  236. package/dist/runtime/components/Slider.vue +186 -0
  237. package/dist/runtime/components/Slider.vue.d.ts +60 -0
  238. package/dist/runtime/components/Splitter.d.vue.ts +41 -0
  239. package/dist/runtime/components/Splitter.vue +31 -0
  240. package/dist/runtime/components/Splitter.vue.d.ts +41 -0
  241. package/dist/runtime/components/SplitterPanel.d.vue.ts +55 -0
  242. package/dist/runtime/components/SplitterPanel.vue +52 -0
  243. package/dist/runtime/components/SplitterPanel.vue.d.ts +55 -0
  244. package/dist/runtime/components/SplitterResizeHandle.d.vue.ts +14 -0
  245. package/dist/runtime/components/SplitterResizeHandle.vue +22 -0
  246. package/dist/runtime/components/SplitterResizeHandle.vue.d.ts +14 -0
  247. package/dist/runtime/components/Stepper.d.vue.ts +57 -0
  248. package/dist/runtime/components/Stepper.vue +101 -0
  249. package/dist/runtime/components/Stepper.vue.d.ts +57 -0
  250. package/dist/runtime/components/Switch.d.vue.ts +49 -0
  251. package/dist/runtime/components/Switch.vue +73 -0
  252. package/dist/runtime/components/Switch.vue.d.ts +49 -0
  253. package/dist/runtime/components/Table.d.vue.ts +83 -0
  254. package/dist/runtime/components/Table.vue +339 -0
  255. package/dist/runtime/components/Table.vue.d.ts +83 -0
  256. package/dist/runtime/components/Tabs.d.vue.ts +43 -0
  257. package/dist/runtime/components/Tabs.vue +60 -0
  258. package/dist/runtime/components/Tabs.vue.d.ts +43 -0
  259. package/dist/runtime/components/Textarea.d.vue.ts +45 -0
  260. package/dist/runtime/components/Textarea.vue +110 -0
  261. package/dist/runtime/components/Textarea.vue.d.ts +45 -0
  262. package/dist/runtime/components/Theme.d.vue.ts +19 -0
  263. package/dist/runtime/components/Theme.vue +18 -0
  264. package/dist/runtime/components/Theme.vue.d.ts +19 -0
  265. package/dist/runtime/components/Toast.d.vue.ts +8 -0
  266. package/dist/runtime/components/Toast.vue +58 -0
  267. package/dist/runtime/components/Toast.vue.d.ts +8 -0
  268. package/dist/runtime/components/Toggle.d.vue.ts +38 -0
  269. package/dist/runtime/components/Toggle.vue +44 -0
  270. package/dist/runtime/components/Toggle.vue.d.ts +38 -0
  271. package/dist/runtime/components/ToggleGroup.d.vue.ts +48 -0
  272. package/dist/runtime/components/ToggleGroup.vue +61 -0
  273. package/dist/runtime/components/ToggleGroup.vue.d.ts +48 -0
  274. package/dist/runtime/components/Tooltip.d.vue.ts +28 -0
  275. package/dist/runtime/components/Tooltip.vue +40 -0
  276. package/dist/runtime/components/Tooltip.vue.d.ts +28 -0
  277. package/dist/runtime/components/Tree.d.vue.ts +64 -0
  278. package/dist/runtime/components/Tree.vue +139 -0
  279. package/dist/runtime/components/Tree.vue.d.ts +64 -0
  280. package/dist/runtime/composables/use-combobox-select.d.ts +45 -0
  281. package/dist/runtime/composables/use-combobox-select.js +80 -0
  282. package/dist/runtime/composables/use-command-palette.d.ts +8 -0
  283. package/dist/runtime/composables/use-command-palette.js +14 -0
  284. package/dist/runtime/composables/use-drawer.d.ts +42 -0
  285. package/dist/runtime/composables/use-drawer.js +44 -0
  286. package/dist/runtime/composables/use-form-field.d.ts +10 -0
  287. package/dist/runtime/composables/use-form-field.js +8 -0
  288. package/dist/runtime/composables/use-icons.d.ts +10 -0
  289. package/dist/runtime/composables/use-icons.js +7 -0
  290. package/dist/runtime/composables/use-locale.d.ts +12 -0
  291. package/dist/runtime/composables/use-locale.js +6 -0
  292. package/dist/runtime/composables/use-media-query.d.ts +11 -0
  293. package/dist/runtime/composables/use-media-query.js +15 -0
  294. package/dist/runtime/composables/use-messages.d.ts +12 -0
  295. package/dist/runtime/composables/use-messages.js +7 -0
  296. package/dist/runtime/composables/use-modal.d.ts +32 -0
  297. package/dist/runtime/composables/use-modal.js +39 -0
  298. package/dist/runtime/composables/use-ripple.d.ts +15 -0
  299. package/dist/runtime/composables/use-ripple.js +6 -0
  300. package/dist/runtime/composables/use-slideover.d.ts +36 -0
  301. package/dist/runtime/composables/use-slideover.js +41 -0
  302. package/dist/runtime/composables/use-table.d.ts +63 -0
  303. package/dist/runtime/composables/use-table.js +142 -0
  304. package/dist/runtime/composables/use-toast.d.ts +15 -0
  305. package/dist/runtime/composables/use-toast.js +16 -0
  306. package/dist/runtime/directives/index.d.ts +1 -0
  307. package/dist/runtime/directives/index.js +1 -0
  308. package/dist/runtime/directives/ripple.d.ts +16 -0
  309. package/dist/runtime/directives/ripple.js +80 -0
  310. package/dist/runtime/internal/ColorPickerBody.d.vue.ts +26 -0
  311. package/dist/runtime/internal/ColorPickerBody.vue +111 -0
  312. package/dist/runtime/internal/ColorPickerBody.vue.d.ts +26 -0
  313. package/dist/runtime/internal/ComboboxSelectBase.d.vue.ts +122 -0
  314. package/dist/runtime/internal/ComboboxSelectBase.vue +590 -0
  315. package/dist/runtime/internal/ComboboxSelectBase.vue.d.ts +122 -0
  316. package/dist/runtime/internal/ComboboxSelectBody.d.vue.ts +71 -0
  317. package/dist/runtime/internal/ComboboxSelectBody.vue +146 -0
  318. package/dist/runtime/internal/ComboboxSelectBody.vue.d.ts +71 -0
  319. package/dist/runtime/internal/DatePickerCalendarBody.d.vue.ts +71 -0
  320. package/dist/runtime/internal/DatePickerCalendarBody.vue +215 -0
  321. package/dist/runtime/internal/DatePickerCalendarBody.vue.d.ts +71 -0
  322. package/dist/runtime/internal/DatePickerRangeCalendarBody.d.vue.ts +37 -0
  323. package/dist/runtime/internal/DatePickerRangeCalendarBody.vue +96 -0
  324. package/dist/runtime/internal/DatePickerRangeCalendarBody.vue.d.ts +37 -0
  325. package/dist/runtime/internal/DatePickerTimeBody.d.vue.ts +33 -0
  326. package/dist/runtime/internal/DatePickerTimeBody.vue +53 -0
  327. package/dist/runtime/internal/DatePickerTimeBody.vue.d.ts +33 -0
  328. package/dist/runtime/internal/TimeStepper.d.vue.ts +28 -0
  329. package/dist/runtime/internal/TimeStepper.vue +99 -0
  330. package/dist/runtime/internal/TimeStepper.vue.d.ts +28 -0
  331. package/dist/runtime/prose.css +1 -0
  332. package/dist/runtime/server/tsconfig.json +3 -0
  333. package/dist/runtime/theme/accordion.d.ts +131 -0
  334. package/dist/runtime/theme/accordion.js +60 -0
  335. package/dist/runtime/theme/alert-dialog.d.ts +50 -0
  336. package/dist/runtime/theme/alert-dialog.js +30 -0
  337. package/dist/runtime/theme/alert.d.ts +62 -0
  338. package/dist/runtime/theme/alert.js +52 -0
  339. package/dist/runtime/theme/avatar-group.d.ts +59 -0
  340. package/dist/runtime/theme/avatar-group.js +18 -0
  341. package/dist/runtime/theme/avatar.d.ts +206 -0
  342. package/dist/runtime/theme/avatar.js +67 -0
  343. package/dist/runtime/theme/badge.d.ts +140 -0
  344. package/dist/runtime/theme/badge.js +90 -0
  345. package/dist/runtime/theme/breadcrumb.d.ts +86 -0
  346. package/dist/runtime/theme/breadcrumb.js +22 -0
  347. package/dist/runtime/theme/button-group.d.ts +53 -0
  348. package/dist/runtime/theme/button-group.js +21 -0
  349. package/dist/runtime/theme/button.d.ts +155 -0
  350. package/dist/runtime/theme/button.js +99 -0
  351. package/dist/runtime/theme/callout.d.ts +74 -0
  352. package/dist/runtime/theme/callout.js +23 -0
  353. package/dist/runtime/theme/card-group.d.ts +44 -0
  354. package/dist/runtime/theme/card-group.js +19 -0
  355. package/dist/runtime/theme/card.d.ts +62 -0
  356. package/dist/runtime/theme/card.js +23 -0
  357. package/dist/runtime/theme/checkbox.d.ts +218 -0
  358. package/dist/runtime/theme/checkbox.js +113 -0
  359. package/dist/runtime/theme/chip.d.ts +155 -0
  360. package/dist/runtime/theme/chip.js +86 -0
  361. package/dist/runtime/theme/code-button.d.ts +32 -0
  362. package/dist/runtime/theme/code-button.js +7 -0
  363. package/dist/runtime/theme/code-tree.d.ts +50 -0
  364. package/dist/runtime/theme/code-tree.js +13 -0
  365. package/dist/runtime/theme/collapsible.d.ts +95 -0
  366. package/dist/runtime/theme/collapsible.js +46 -0
  367. package/dist/runtime/theme/color-picker.d.ts +152 -0
  368. package/dist/runtime/theme/color-picker.js +83 -0
  369. package/dist/runtime/theme/command-palette.d.ts +110 -0
  370. package/dist/runtime/theme/command-palette.js +23 -0
  371. package/dist/runtime/theme/container.d.ts +62 -0
  372. package/dist/runtime/theme/container.js +18 -0
  373. package/dist/runtime/theme/content-navigation.d.ts +47 -0
  374. package/dist/runtime/theme/content-navigation.js +38 -0
  375. package/dist/runtime/theme/content-surround.d.ts +53 -0
  376. package/dist/runtime/theme/content-surround.js +22 -0
  377. package/dist/runtime/theme/content-toc.d.ts +56 -0
  378. package/dist/runtime/theme/content-toc.js +41 -0
  379. package/dist/runtime/theme/context-menu.d.ts +38 -0
  380. package/dist/runtime/theme/context-menu.js +21 -0
  381. package/dist/runtime/theme/dashboard-group.d.ts +26 -0
  382. package/dist/runtime/theme/dashboard-group.js +9 -0
  383. package/dist/runtime/theme/dashboard-navbar.d.ts +44 -0
  384. package/dist/runtime/theme/dashboard-navbar.js +9 -0
  385. package/dist/runtime/theme/dashboard-panel.d.ts +26 -0
  386. package/dist/runtime/theme/dashboard-panel.js +6 -0
  387. package/dist/runtime/theme/dashboard-resize-handle.d.ts +26 -0
  388. package/dist/runtime/theme/dashboard-resize-handle.js +17 -0
  389. package/dist/runtime/theme/dashboard-sidebar.d.ts +50 -0
  390. package/dist/runtime/theme/dashboard-sidebar.js +40 -0
  391. package/dist/runtime/theme/date-picker.d.ts +119 -0
  392. package/dist/runtime/theme/date-picker.js +75 -0
  393. package/dist/runtime/theme/drawer.d.ts +95 -0
  394. package/dist/runtime/theme/drawer.js +57 -0
  395. package/dist/runtime/theme/dropdown.d.ts +41 -0
  396. package/dist/runtime/theme/dropdown.js +21 -0
  397. package/dist/runtime/theme/file-tree.d.ts +56 -0
  398. package/dist/runtime/theme/file-tree.js +33 -0
  399. package/dist/runtime/theme/file-upload.d.ts +233 -0
  400. package/dist/runtime/theme/file-upload.js +63 -0
  401. package/dist/runtime/theme/form-field.d.ts +95 -0
  402. package/dist/runtime/theme/form-field.js +37 -0
  403. package/dist/runtime/theme/header.d.ts +38 -0
  404. package/dist/runtime/theme/header.js +8 -0
  405. package/dist/runtime/theme/icon.d.ts +80 -0
  406. package/dist/runtime/theme/icon.js +26 -0
  407. package/dist/runtime/theme/input-group.d.ts +95 -0
  408. package/dist/runtime/theme/input-group.js +39 -0
  409. package/dist/runtime/theme/input-number.d.ts +164 -0
  410. package/dist/runtime/theme/input-number.js +76 -0
  411. package/dist/runtime/theme/input.d.ts +185 -0
  412. package/dist/runtime/theme/input.js +72 -0
  413. package/dist/runtime/theme/kbd.d.ts +44 -0
  414. package/dist/runtime/theme/kbd.js +16 -0
  415. package/dist/runtime/theme/modal.d.ts +74 -0
  416. package/dist/runtime/theme/modal.js +58 -0
  417. package/dist/runtime/theme/navigation-menu.d.ts +224 -0
  418. package/dist/runtime/theme/navigation-menu.js +232 -0
  419. package/dist/runtime/theme/page-aside.d.ts +44 -0
  420. package/dist/runtime/theme/page-aside.js +17 -0
  421. package/dist/runtime/theme/page-header.d.ts +38 -0
  422. package/dist/runtime/theme/page-header.js +8 -0
  423. package/dist/runtime/theme/pagination.d.ts +68 -0
  424. package/dist/runtime/theme/pagination.js +21 -0
  425. package/dist/runtime/theme/pin-input.d.ts +131 -0
  426. package/dist/runtime/theme/pin-input.js +40 -0
  427. package/dist/runtime/theme/popover.d.ts +32 -0
  428. package/dist/runtime/theme/popover.js +7 -0
  429. package/dist/runtime/theme/progress.d.ts +185 -0
  430. package/dist/runtime/theme/progress.js +54 -0
  431. package/dist/runtime/theme/prose.d.ts +92 -0
  432. package/dist/runtime/theme/prose.js +17 -0
  433. package/dist/runtime/theme/radio-group.d.ts +239 -0
  434. package/dist/runtime/theme/radio-group.js +134 -0
  435. package/dist/runtime/theme/rating.d.ts +167 -0
  436. package/dist/runtime/theme/rating.js +77 -0
  437. package/dist/runtime/theme/read-more.d.ts +38 -0
  438. package/dist/runtime/theme/read-more.js +21 -0
  439. package/dist/runtime/theme/scroll-area.d.ts +50 -0
  440. package/dist/runtime/theme/scroll-area.js +10 -0
  441. package/dist/runtime/theme/select.d.ts +176 -0
  442. package/dist/runtime/theme/select.js +74 -0
  443. package/dist/runtime/theme/separator.d.ts +158 -0
  444. package/dist/runtime/theme/separator.js +63 -0
  445. package/dist/runtime/theme/skeleton.d.ts +35 -0
  446. package/dist/runtime/theme/skeleton.js +27 -0
  447. package/dist/runtime/theme/slideover.d.ts +107 -0
  448. package/dist/runtime/theme/slideover.js +62 -0
  449. package/dist/runtime/theme/slider.d.ts +227 -0
  450. package/dist/runtime/theme/slider.js +73 -0
  451. package/dist/runtime/theme/splitter-panel.d.ts +26 -0
  452. package/dist/runtime/theme/splitter-panel.js +9 -0
  453. package/dist/runtime/theme/splitter-resize-handle.d.ts +44 -0
  454. package/dist/runtime/theme/splitter-resize-handle.js +18 -0
  455. package/dist/runtime/theme/splitter.d.ts +35 -0
  456. package/dist/runtime/theme/splitter.js +15 -0
  457. package/dist/runtime/theme/stepper.d.ts +221 -0
  458. package/dist/runtime/theme/stepper.js +106 -0
  459. package/dist/runtime/theme/switch.d.ts +206 -0
  460. package/dist/runtime/theme/switch.js +84 -0
  461. package/dist/runtime/theme/table.d.ts +176 -0
  462. package/dist/runtime/theme/table.js +59 -0
  463. package/dist/runtime/theme/tabs.d.ts +59 -0
  464. package/dist/runtime/theme/tabs.js +44 -0
  465. package/dist/runtime/theme/textarea.d.ts +212 -0
  466. package/dist/runtime/theme/textarea.js +56 -0
  467. package/dist/runtime/theme/toast.d.ts +80 -0
  468. package/dist/runtime/theme/toast.js +31 -0
  469. package/dist/runtime/theme/toggle-group.d.ts +110 -0
  470. package/dist/runtime/theme/toggle-group.js +48 -0
  471. package/dist/runtime/theme/toggle.d.ts +92 -0
  472. package/dist/runtime/theme/toggle.js +48 -0
  473. package/dist/runtime/theme/tooltip.d.ts +44 -0
  474. package/dist/runtime/theme/tooltip.js +14 -0
  475. package/dist/runtime/theme/tree.d.ts +80 -0
  476. package/dist/runtime/theme/tree.js +32 -0
  477. package/dist/runtime/theme.css +1 -0
  478. package/dist/runtime/types/app-config.d.ts +15 -0
  479. package/dist/runtime/types/index.d.ts +82 -0
  480. package/dist/runtime/types/index.js +2 -0
  481. package/dist/runtime/utils/format-bytes.d.ts +2 -0
  482. package/dist/runtime/utils/format-bytes.js +9 -0
  483. package/dist/runtime/utils/fuzzy-match.d.ts +12 -0
  484. package/dist/runtime/utils/fuzzy-match.js +21 -0
  485. package/dist/runtime/utils/icons.d.ts +38 -0
  486. package/dist/runtime/utils/icons.js +51 -0
  487. package/dist/runtime/utils/injection-keys.d.ts +69 -0
  488. package/dist/runtime/utils/injection-keys.js +3 -0
  489. package/dist/runtime/utils/messages.d.ts +70 -0
  490. package/dist/runtime/utils/messages.js +68 -0
  491. package/dist/runtime/utils/navigation-menu.d.ts +32 -0
  492. package/dist/runtime/utils/navigation-menu.js +5 -0
  493. package/dist/runtime/utils/table-columns.d.ts +30 -0
  494. package/dist/runtime/utils/table-columns.js +89 -0
  495. package/dist/runtime/utils/table-export.d.ts +12 -0
  496. package/dist/runtime/utils/table-export.js +29 -0
  497. package/dist/runtime/utils/ui.d.ts +124 -0
  498. package/dist/runtime/utils/ui.js +74 -0
  499. package/dist/types.d.mts +3 -0
  500. package/package.json +99 -0
@@ -0,0 +1,165 @@
1
+ import type { DateValue } from '@internationalized/date';
2
+ import type { DateRange } from 'reka-ui';
3
+ import type { VariantProps } from 'tailwind-variants';
4
+ import type { buttonTheme } from '../theme/button.js';
5
+ import type { DatePickerThemeSlots } from '../theme/date-picker.js';
6
+ import type { UiProp } from '../utils/ui.js';
7
+ import { Time } from '@internationalized/date';
8
+ import { datePickerTheme } from '../theme/date-picker.js';
9
+ type DatePickerVariants = VariantProps<typeof datePickerTheme>;
10
+ type ButtonVariants = VariantProps<typeof buttonTheme>;
11
+ export interface DatePickerProps {
12
+ id?: string;
13
+ name?: string;
14
+ /** A single DateValue, Reka's own `{ start?, end? }` DateRange shape when `range` is set, or a bare date-less Time when `timeOnly` is set - Vue props can't express a type that depends on a sibling prop's value, so this stays a plain union documented here rather than enforced by the type checker. */
15
+ modelValue?: DateValue | DateRange | Time;
16
+ /** Switches to picking a start+end pair instead of one date - a real fork in which Reka primitive family renders (RangeCalendar/DateRangePicker vs Calendar/DatePicker), not just a different modelValue shape. */
17
+ range?: boolean;
18
+ /** Drops the date entirely - just a time-of-day picker. modelValue becomes a bare `Time` (no date component at all, not a DateValue). A third top-level mode alongside `range`; every date-grid-specific prop below (minValue/maxValue/isDateUnavailable/isDateDisabled/numberOfMonths/pagedNavigation/weekStartsOn/weekdayFormat/fixedWeeks/view) is simply inert here. `granularity` still applies ('hour'/'minute' only - defaults to 'minute' for a dedicated time picker). */
19
+ timeOnly?: boolean;
20
+ minValue?: DateValue;
21
+ maxValue?: DateValue;
22
+ isDateUnavailable?: (date: DateValue) => boolean;
23
+ isDateDisabled?: (date: DateValue) => boolean;
24
+ /** Range mode only - highlights a date without marking it unavailable or disabled. */
25
+ isDateHighlightable?: (date: DateValue) => boolean;
26
+ locale?: string;
27
+ /** Default 1 normally, 2 when `range` is set (overridable either way) - see effectiveNumberOfMonths. */
28
+ numberOfMonths?: number;
29
+ pagedNavigation?: boolean;
30
+ weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
31
+ weekdayFormat?: 'narrow' | 'short' | 'long';
32
+ fixedWeeks?: boolean;
33
+ /** Closes the popover once a selection is complete - unlike Reka's own Root components, this defaults true. In range mode "complete" means both start and end are set (Reka's own internal watcher already gates on that), so picking just a start date correctly leaves the popover open. */
34
+ closeOnSelect?: boolean;
35
+ /** 'field' (default) is the typeable day/month/year segmented input; 'button' is a single button showing the formatted date, matching a plainer "click to open" trigger. */
36
+ triggerMode?: 'field' | 'button';
37
+ /** Which grid the popover shows - 'date' (default), or drill up to 'month'/'year' by clicking the heading. Single-date mode only; range mode's heading stays static. */
38
+ view?: 'date' | 'month' | 'year';
39
+ /** The value's own precision - 'day' (default) keeps picking a full date. 'month'/'year' make picking a month/year the terminal action (day fixed to 1, and month too for 'year') instead of a waypoint to the day grid - the day grid never renders in that case. 'hour'/'minute' add a time-of-day section below the day grid instead (value becomes a time-capable CalendarDateTime, still just a plain DateValue). Single-date mode only. */
40
+ granularity?: 'year' | 'month' | 'day' | 'hour' | 'minute';
41
+ /** hour/minute granularity only - the minute stepper's ±click/arrow-key increment (default 1); typing still commits any exact minute. Pass 5/15/etc for a coarser "pick an appointment time" step. */
42
+ minuteStep?: number;
43
+ /** hour/minute granularity only - forces the hour stepper (and the typed field's own hour/dayPeriod segments) to 12-hour or 24-hour. Defaults to whatever `locale` itself resolves to (e.g. 12-hour for en-US, 24-hour for de-DE) - passed straight through to the underlying primitive, which already drives the typed field's own hour cycle. */
44
+ hourCycle?: 12 | 24;
45
+ /** Only meaningful in triggerMode "button" - the segmented field's own per-segment display is already locale-shaped by Reka's own DateFieldInput. Default: `{ dateStyle: 'medium' }`. */
46
+ format?: Intl.DateTimeFormatOptions;
47
+ /** Range mode only - lets the two ends of a range land in different, non-adjacent selections. */
48
+ allowNonContiguousRanges?: boolean;
49
+ /** Range mode only - locks one end of the range in place while re-picking the other. */
50
+ fixedDate?: 'start' | 'end';
51
+ /** Range mode only - caps how many days can separate start and end. */
52
+ maximumDays?: number;
53
+ disabled?: boolean;
54
+ /** Shows the value and blocks edits without disabling the control - unlike `disabled`, it stays focusable/readable, just not changeable. Not applicable to `timeOnly` (Reka's own TimeField has no readonly concept). */
55
+ readonly?: boolean;
56
+ /** Stops a click on the only selected day from deselecting it - not applicable to `timeOnly` (there's no calendar day to click). */
57
+ preventDeselect?: boolean;
58
+ /** `view="month"` only - disables a specific month in addition to whatever minValue/maxValue already disable (doesn't replace that check). */
59
+ isMonthDisabled?: (date: DateValue) => boolean;
60
+ /** `view="year"` only - disables a specific year in addition to whatever minValue/maxValue already disable (doesn't replace that check). */
61
+ isYearDisabled?: (year: number) => boolean;
62
+ invalid?: boolean;
63
+ clearable?: boolean;
64
+ /** Chrome color - the clear/trigger buttons and prev/next month nav. Only the color changes; each button keeps its own deliberately-different variant (icon-only buttons use `text`, nav arrows use `ghost`). */
65
+ color?: ButtonVariants['color'];
66
+ /** The color of whatever's currently "active" - the selected day/month/year cell and the Done button. */
67
+ activeColor?: ButtonVariants['color'];
68
+ size?: DatePickerVariants['size'];
69
+ /** Shows a small pointer triangle connecting the panel to its trigger. */
70
+ arrow?: boolean;
71
+ /** Below 768px viewport width, presents the calendar as a centered Modal instead of a small anchored panel - easier to tap with a finger. Opt-in (defaults `false`) rather than automatic, so an existing usage's look never changes without asking for it. */
72
+ mobileModal?: boolean;
73
+ ui?: UiProp<DatePickerThemeSlots>;
74
+ }
75
+ export interface DatePickerEmits {
76
+ 'update:modelValue': [value: DateValue | DateRange | Time | undefined];
77
+ 'update:view': [view: 'date' | 'month' | 'year'];
78
+ }
79
+ declare var __VLS_43: {}, __VLS_63: {}, __VLS_83: {}, __VLS_99: {}, __VLS_119: {
80
+ date: DateValue;
81
+ dayValue: string;
82
+ selected: boolean;
83
+ disabled: boolean;
84
+ selectionStart: boolean;
85
+ selectionEnd: boolean;
86
+ highlighted: boolean;
87
+ }, __VLS_122: {}, __VLS_145: {
88
+ date: DateValue;
89
+ dayValue: string;
90
+ selected: boolean;
91
+ disabled: boolean;
92
+ selectionStart: boolean;
93
+ selectionEnd: boolean;
94
+ highlighted: boolean;
95
+ }, __VLS_148: {}, __VLS_186: {}, __VLS_206: {}, __VLS_226: {}, __VLS_242: {}, __VLS_268: {}, __VLS_291: {}, __VLS_329: {}, __VLS_349: {}, __VLS_369: {}, __VLS_385: {}, __VLS_405: {
96
+ date: DateValue;
97
+ dayValue: string;
98
+ selected: boolean;
99
+ disabled: boolean;
100
+ }, __VLS_408: {}, __VLS_431: {
101
+ date: DateValue;
102
+ dayValue: string;
103
+ selected: boolean;
104
+ disabled: boolean;
105
+ }, __VLS_434: {};
106
+ type __VLS_Slots = {} & {
107
+ 'clear-icon'?: (props: typeof __VLS_43) => any;
108
+ } & {
109
+ 'trigger-icon'?: (props: typeof __VLS_63) => any;
110
+ } & {
111
+ 'trigger-icon'?: (props: typeof __VLS_83) => any;
112
+ } & {
113
+ 'clear-icon'?: (props: typeof __VLS_99) => any;
114
+ } & {
115
+ day?: (props: typeof __VLS_119) => any;
116
+ } & {
117
+ footer?: (props: typeof __VLS_122) => any;
118
+ } & {
119
+ day?: (props: typeof __VLS_145) => any;
120
+ } & {
121
+ footer?: (props: typeof __VLS_148) => any;
122
+ } & {
123
+ 'clear-icon'?: (props: typeof __VLS_186) => any;
124
+ } & {
125
+ 'trigger-icon'?: (props: typeof __VLS_206) => any;
126
+ } & {
127
+ 'trigger-icon'?: (props: typeof __VLS_226) => any;
128
+ } & {
129
+ 'clear-icon'?: (props: typeof __VLS_242) => any;
130
+ } & {
131
+ footer?: (props: typeof __VLS_268) => any;
132
+ } & {
133
+ footer?: (props: typeof __VLS_291) => any;
134
+ } & {
135
+ 'clear-icon'?: (props: typeof __VLS_329) => any;
136
+ } & {
137
+ 'trigger-icon'?: (props: typeof __VLS_349) => any;
138
+ } & {
139
+ 'trigger-icon'?: (props: typeof __VLS_369) => any;
140
+ } & {
141
+ 'clear-icon'?: (props: typeof __VLS_385) => any;
142
+ } & {
143
+ day?: (props: typeof __VLS_405) => any;
144
+ } & {
145
+ footer?: (props: typeof __VLS_408) => any;
146
+ } & {
147
+ day?: (props: typeof __VLS_431) => any;
148
+ } & {
149
+ footer?: (props: typeof __VLS_434) => any;
150
+ };
151
+ declare const __VLS_base: import("vue").DefineComponent<DatePickerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
152
+ "update:modelValue": (value: DateValue | DateRange | Time | undefined) => any;
153
+ "update:view": (view: "month" | "year" | "date") => any;
154
+ }, string, import("vue").PublicProps, Readonly<DatePickerProps> & Readonly<{
155
+ "onUpdate:modelValue"?: ((value: DateValue | DateRange | Time | undefined) => any) | undefined;
156
+ "onUpdate:view"?: ((view: "month" | "year" | "date") => any) | undefined;
157
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
158
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
159
+ declare const _default: typeof __VLS_export;
160
+ export default _default;
161
+ type __VLS_WithSlots<T, S> = T & {
162
+ new (): {
163
+ $slots: S;
164
+ };
165
+ };
@@ -0,0 +1,74 @@
1
+ import type { DrawerThemeSlots } from '../theme/drawer.js';
2
+ import type { UiProp } from '../utils/ui.js';
3
+ export interface DrawerProps {
4
+ open?: boolean;
5
+ title?: string;
6
+ description?: string;
7
+ /** Which edge the panel slides in from - also the direction it's swiped toward to dismiss it. */
8
+ side?: 'top' | 'right' | 'bottom' | 'left';
9
+ /** Shows a small grip bar at the top of the panel, signaling it's draggable. */
10
+ handle?: boolean;
11
+ /** Resting heights/widths the panel snaps to while dragging, before fully open - fractions (0-1), pixels (>1), or CSS length strings ('30rem'). */
12
+ snapPoints?: (number | string)[];
13
+ /** v-model:snapPoint - the currently active snap point. */
14
+ snapPoint?: number | string | null;
15
+ /** Snap to the next sequential point one step at a time, instead of whichever is nearest by drag distance. */
16
+ snapToSequentialPoints?: boolean;
17
+ /** When `false`, Escape, an outside click, and a drag-to-dismiss swipe no longer close the drawer - the `escapeKeyDown`/`pointerDownOutside`/`focusOutside` events still fire (a swipe gesture has no separate event of its own to intercept ahead of the close), so a consumer can still react, but none of them close it on their own anymore. */
18
+ dismissible?: boolean;
19
+ /** Set `false` to render no close button at all - usually paired with `dismissible={false}` for a drawer that only closes via an explicit footer action. */
20
+ close?: boolean;
21
+ /** Forwarded to Reka UI's own DrawerRoot `modal` prop - `'trap-focus'` traps focus but allows outside pointer events (non-modal side panels). `overlay` below is independent of this. */
22
+ modal?: boolean | 'trap-focus';
23
+ /** Set `false` to render no backdrop behind the drawer at all. */
24
+ overlay?: boolean;
25
+ /** Set `false` to skip the open/close animation entirely - this library's animation is CSS-only, so this just omits those classes rather than toggling a JS transition system. */
26
+ transition?: boolean;
27
+ ui?: UiProp<DrawerThemeSlots>;
28
+ }
29
+ export interface DrawerEmits {
30
+ 'update:open': [value: boolean];
31
+ 'update:snapPoint': [value: number | string | null];
32
+ 'escapeKeyDown': [event: KeyboardEvent];
33
+ 'pointerDownOutside': [event: Event];
34
+ 'focusOutside': [event: Event];
35
+ /** Fires once the close transition has actually finished (or immediately, if `transition` is off) - the signal a programmatic caller needs before it's safe to unmount this instance without cutting its exit animation short. */
36
+ 'afterLeave': [];
37
+ }
38
+ declare var __VLS_17: {}, __VLS_65: {}, __VLS_72: {}, __VLS_99: {}, __VLS_106: {}, __VLS_108: {};
39
+ type __VLS_Slots = {} & {
40
+ default?: (props: typeof __VLS_17) => any;
41
+ } & {
42
+ content?: (props: typeof __VLS_65) => any;
43
+ } & {
44
+ header?: (props: typeof __VLS_72) => any;
45
+ } & {
46
+ 'close-icon'?: (props: typeof __VLS_99) => any;
47
+ } & {
48
+ body?: (props: typeof __VLS_106) => any;
49
+ } & {
50
+ footer?: (props: typeof __VLS_108) => any;
51
+ };
52
+ declare const __VLS_base: import("vue").DefineComponent<DrawerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
53
+ "update:open": (value: boolean) => any;
54
+ escapeKeyDown: (event: KeyboardEvent) => any;
55
+ pointerDownOutside: (event: Event) => any;
56
+ afterLeave: () => any;
57
+ focusOutside: (event: Event) => any;
58
+ "update:snapPoint": (value: string | number | null) => any;
59
+ }, string, import("vue").PublicProps, Readonly<DrawerProps> & Readonly<{
60
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
61
+ onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
62
+ onPointerDownOutside?: ((event: Event) => any) | undefined;
63
+ onAfterLeave?: (() => any) | undefined;
64
+ onFocusOutside?: ((event: Event) => any) | undefined;
65
+ "onUpdate:snapPoint"?: ((value: string | number | null) => any) | undefined;
66
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
67
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
68
+ declare const _default: typeof __VLS_export;
69
+ export default _default;
70
+ type __VLS_WithSlots<T, S> = T & {
71
+ new (): {
72
+ $slots: S;
73
+ };
74
+ };
@@ -0,0 +1,157 @@
1
+ <script setup>
2
+ import { DrawerClose, DrawerContent, DrawerDescription, DrawerHandle, DrawerOverlay, DrawerPortal, DrawerRoot, DrawerTitle, DrawerTrigger, VisuallyHidden } from "reka-ui";
3
+ import { computed, ref, useSlots, watch, watchEffect } from "vue";
4
+ import { useIcons } from "../composables/use-icons";
5
+ import { useMessages } from "../composables/use-messages";
6
+ import { drawerTheme } from "../theme/drawer";
7
+ import { resolveSlot, useComponentTheme } from "../utils/ui";
8
+ import Button from "./Button.vue";
9
+ import Icon from "./Icon.vue";
10
+ const props = defineProps({
11
+ open: { type: Boolean, required: false },
12
+ title: { type: String, required: false },
13
+ description: { type: String, required: false },
14
+ side: { type: String, required: false, default: "bottom" },
15
+ handle: { type: Boolean, required: false, default: true },
16
+ snapPoints: { type: Array, required: false },
17
+ snapPoint: { type: [Number, String, null], required: false },
18
+ snapToSequentialPoints: { type: Boolean, required: false },
19
+ dismissible: { type: Boolean, required: false, default: true },
20
+ close: { type: Boolean, required: false, default: true },
21
+ modal: { type: [Boolean, String], required: false, default: true },
22
+ overlay: { type: Boolean, required: false, default: true },
23
+ transition: { type: Boolean, required: false, default: true },
24
+ ui: { type: Object, required: false }
25
+ });
26
+ const emit = defineEmits(["update:open", "update:snapPoint", "escapeKeyDown", "pointerDownOutside", "focusOutside", "afterLeave"]);
27
+ const swipeDirection = computed(() => ({ top: "up", bottom: "down", left: "left", right: "right" })[props.side]);
28
+ function onEscapeKeyDown(event) {
29
+ if (!props.dismissible)
30
+ event.preventDefault();
31
+ emit("escapeKeyDown", event);
32
+ }
33
+ function onPointerDownOutside(event) {
34
+ if (!props.dismissible)
35
+ event.preventDefault();
36
+ emit("pointerDownOutside", event);
37
+ }
38
+ function onFocusOutside(event) {
39
+ if (!props.dismissible)
40
+ event.preventDefault();
41
+ emit("focusOutside", event);
42
+ }
43
+ function onContentAnimationEnd(event) {
44
+ if (event.target !== event.currentTarget)
45
+ return;
46
+ if (event.target.getAttribute("data-state") === "closed")
47
+ emit("afterLeave");
48
+ }
49
+ const internalOpen = ref(props.open ?? false);
50
+ watch(() => props.open, (value) => {
51
+ if (value !== void 0)
52
+ internalOpen.value = value;
53
+ });
54
+ function onUpdateOpen(value, details) {
55
+ if (!props.dismissible && details?.reason === "swipe")
56
+ return;
57
+ internalOpen.value = value;
58
+ emit("update:open", value);
59
+ }
60
+ watch(internalOpen, (value) => {
61
+ if (!value && !props.transition)
62
+ emit("afterLeave");
63
+ });
64
+ const slots = useSlots();
65
+ if (import.meta.dev) {
66
+ watchEffect(() => {
67
+ if (!props.title && !slots.header && !slots.content)
68
+ console.warn("[SDrawer] no accessible name - pass a `title` prop, or a `header`/`content` slot containing a heading, so screen readers can announce this drawer.");
69
+ });
70
+ }
71
+ const icons = useIcons();
72
+ const messages = useMessages();
73
+ const theme = useComponentTheme("drawer", drawerTheme);
74
+ const ui = computed(() => theme.value({ side: props.side, transition: props.transition }));
75
+ const overlayProps = computed(() => resolveSlot(ui.value.overlay, props.ui?.overlay));
76
+ const contentProps = computed(() => resolveSlot(ui.value.content, props.ui?.content));
77
+ const handleProps = computed(() => resolveSlot(ui.value.handle, props.ui?.handle));
78
+ const headerProps = computed(() => resolveSlot(ui.value.header, props.ui?.header));
79
+ const titleProps = computed(() => resolveSlot(ui.value.title, props.ui?.title));
80
+ const descriptionProps = computed(() => resolveSlot(ui.value.description, props.ui?.description));
81
+ const closeProps = computed(() => resolveSlot(ui.value.close, props.ui?.close));
82
+ const bodyProps = computed(() => resolveSlot(ui.value.body, props.ui?.body));
83
+ const footerProps = computed(() => resolveSlot(ui.value.footer, props.ui?.footer));
84
+ </script>
85
+
86
+ <template>
87
+ <DrawerRoot
88
+ :open="internalOpen"
89
+ :modal="modal"
90
+ :swipe-direction="swipeDirection"
91
+ :snap-points="snapPoints"
92
+ :snap-point="snapPoint"
93
+ :snap-to-sequential-points="snapToSequentialPoints"
94
+ @update:open="onUpdateOpen"
95
+ @update:snap-point="(value) => $emit('update:snapPoint', value)"
96
+ >
97
+ <DrawerTrigger v-if="$slots.default" as-child>
98
+ <slot />
99
+ </DrawerTrigger>
100
+ <DrawerPortal>
101
+ <DrawerOverlay v-if="overlay" v-bind="overlayProps" />
102
+ <DrawerContent
103
+ v-bind="contentProps"
104
+ @escape-key-down="onEscapeKeyDown"
105
+ @pointer-down-outside="onPointerDownOutside"
106
+ @focus-outside="onFocusOutside"
107
+ @animationend="onContentAnimationEnd"
108
+ >
109
+ <template v-if="$slots.content">
110
+ <!-- See Modal.vue for why this stays registered with Reka even
111
+ though the content slot replaces our own header entirely. -->
112
+ <VisuallyHidden v-if="title" as-child>
113
+ <DrawerTitle v-bind="titleProps">
114
+ {{ title }}
115
+ </DrawerTitle>
116
+ </VisuallyHidden>
117
+ <VisuallyHidden v-if="description" as-child>
118
+ <DrawerDescription v-bind="descriptionProps">
119
+ {{ description }}
120
+ </DrawerDescription>
121
+ </VisuallyHidden>
122
+ <slot name="content" />
123
+ </template>
124
+ <template v-else>
125
+ <DrawerHandle v-if="handle" v-bind="handleProps" />
126
+ <div v-if="title || description || $slots.header || close" v-bind="headerProps">
127
+ <div>
128
+ <slot name="header">
129
+ <DrawerTitle v-if="title" v-bind="titleProps">
130
+ {{ title }}
131
+ </DrawerTitle>
132
+ <DrawerDescription v-if="description" v-bind="descriptionProps">
133
+ {{ description }}
134
+ </DrawerDescription>
135
+ </slot>
136
+ </div>
137
+ <DrawerClose v-if="close" as-child>
138
+ <Button size="sm" variant="ghost" color="neutral" :aria-label="messages.close" v-bind="closeProps">
139
+ <template #icon="{ class: iconClass }">
140
+ <slot name="close-icon">
141
+ <Icon :name="icons.close" :class="iconClass" />
142
+ </slot>
143
+ </template>
144
+ </Button>
145
+ </DrawerClose>
146
+ </div>
147
+ <div v-bind="bodyProps">
148
+ <slot name="body" />
149
+ </div>
150
+ <div v-if="$slots.footer" v-bind="footerProps">
151
+ <slot name="footer" />
152
+ </div>
153
+ </template>
154
+ </DrawerContent>
155
+ </DrawerPortal>
156
+ </DrawerRoot>
157
+ </template>
@@ -0,0 +1,74 @@
1
+ import type { DrawerThemeSlots } from '../theme/drawer.js';
2
+ import type { UiProp } from '../utils/ui.js';
3
+ export interface DrawerProps {
4
+ open?: boolean;
5
+ title?: string;
6
+ description?: string;
7
+ /** Which edge the panel slides in from - also the direction it's swiped toward to dismiss it. */
8
+ side?: 'top' | 'right' | 'bottom' | 'left';
9
+ /** Shows a small grip bar at the top of the panel, signaling it's draggable. */
10
+ handle?: boolean;
11
+ /** Resting heights/widths the panel snaps to while dragging, before fully open - fractions (0-1), pixels (>1), or CSS length strings ('30rem'). */
12
+ snapPoints?: (number | string)[];
13
+ /** v-model:snapPoint - the currently active snap point. */
14
+ snapPoint?: number | string | null;
15
+ /** Snap to the next sequential point one step at a time, instead of whichever is nearest by drag distance. */
16
+ snapToSequentialPoints?: boolean;
17
+ /** When `false`, Escape, an outside click, and a drag-to-dismiss swipe no longer close the drawer - the `escapeKeyDown`/`pointerDownOutside`/`focusOutside` events still fire (a swipe gesture has no separate event of its own to intercept ahead of the close), so a consumer can still react, but none of them close it on their own anymore. */
18
+ dismissible?: boolean;
19
+ /** Set `false` to render no close button at all - usually paired with `dismissible={false}` for a drawer that only closes via an explicit footer action. */
20
+ close?: boolean;
21
+ /** Forwarded to Reka UI's own DrawerRoot `modal` prop - `'trap-focus'` traps focus but allows outside pointer events (non-modal side panels). `overlay` below is independent of this. */
22
+ modal?: boolean | 'trap-focus';
23
+ /** Set `false` to render no backdrop behind the drawer at all. */
24
+ overlay?: boolean;
25
+ /** Set `false` to skip the open/close animation entirely - this library's animation is CSS-only, so this just omits those classes rather than toggling a JS transition system. */
26
+ transition?: boolean;
27
+ ui?: UiProp<DrawerThemeSlots>;
28
+ }
29
+ export interface DrawerEmits {
30
+ 'update:open': [value: boolean];
31
+ 'update:snapPoint': [value: number | string | null];
32
+ 'escapeKeyDown': [event: KeyboardEvent];
33
+ 'pointerDownOutside': [event: Event];
34
+ 'focusOutside': [event: Event];
35
+ /** Fires once the close transition has actually finished (or immediately, if `transition` is off) - the signal a programmatic caller needs before it's safe to unmount this instance without cutting its exit animation short. */
36
+ 'afterLeave': [];
37
+ }
38
+ declare var __VLS_17: {}, __VLS_65: {}, __VLS_72: {}, __VLS_99: {}, __VLS_106: {}, __VLS_108: {};
39
+ type __VLS_Slots = {} & {
40
+ default?: (props: typeof __VLS_17) => any;
41
+ } & {
42
+ content?: (props: typeof __VLS_65) => any;
43
+ } & {
44
+ header?: (props: typeof __VLS_72) => any;
45
+ } & {
46
+ 'close-icon'?: (props: typeof __VLS_99) => any;
47
+ } & {
48
+ body?: (props: typeof __VLS_106) => any;
49
+ } & {
50
+ footer?: (props: typeof __VLS_108) => any;
51
+ };
52
+ declare const __VLS_base: import("vue").DefineComponent<DrawerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
53
+ "update:open": (value: boolean) => any;
54
+ escapeKeyDown: (event: KeyboardEvent) => any;
55
+ pointerDownOutside: (event: Event) => any;
56
+ afterLeave: () => any;
57
+ focusOutside: (event: Event) => any;
58
+ "update:snapPoint": (value: string | number | null) => any;
59
+ }, string, import("vue").PublicProps, Readonly<DrawerProps> & Readonly<{
60
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
61
+ onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
62
+ onPointerDownOutside?: ((event: Event) => any) | undefined;
63
+ onAfterLeave?: (() => any) | undefined;
64
+ onFocusOutside?: ((event: Event) => any) | undefined;
65
+ "onUpdate:snapPoint"?: ((value: string | number | null) => any) | undefined;
66
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
67
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
68
+ declare const _default: typeof __VLS_export;
69
+ export default _default;
70
+ type __VLS_WithSlots<T, S> = T & {
71
+ new (): {
72
+ $slots: S;
73
+ };
74
+ };
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,30 @@
1
+ <script setup>
2
+ import { useDrawer } from "../composables/use-drawer";
3
+ import Drawer from "./Drawer.vue";
4
+ const { drawers, close, remove } = useDrawer();
5
+ </script>
6
+
7
+ <template>
8
+ <Drawer
9
+ v-for="instance in drawers"
10
+ :key="instance.id"
11
+ :open="instance.isOpen"
12
+ :title="instance.title"
13
+ :description="instance.description"
14
+ :side="instance.side"
15
+ :handle="instance.handle"
16
+ :snap-points="instance.snapPoints"
17
+ :snap-point="instance.snapPoint"
18
+ :snap-to-sequential-points="instance.snapToSequentialPoints"
19
+ :dismissible="instance.dismissible"
20
+ :modal="instance.modal"
21
+ :overlay="instance.overlay"
22
+ :transition="instance.transition"
23
+ @update:open="(open) => !open && close(instance.id)"
24
+ @after-leave="remove(instance.id)"
25
+ >
26
+ <template #content>
27
+ <component :is="instance.component" v-bind="instance.props" @close="(value) => close(instance.id, value)" />
28
+ </template>
29
+ </Drawer>
30
+ </template>
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,35 @@
1
+ import type { DropdownThemeSlots } from '../theme/dropdown.js';
2
+ import type { UiProp } from '../utils/ui.js';
3
+ export interface DropdownItem {
4
+ label: string;
5
+ icon?: string;
6
+ disabled?: boolean;
7
+ /** Styles this item for a delete/remove-style action (danger text, danger-tinted hover) - just this one flag rather than the full color palette, since a menu item realistically only ever needs this one special case. */
8
+ destructive?: boolean;
9
+ onSelect?: () => void;
10
+ /** Not read by Dropdown's own default item rendering - carried purely so a custom #item slot override can display one. */
11
+ shortcut?: string;
12
+ }
13
+ export interface DropdownProps {
14
+ items: DropdownItem[][];
15
+ /** Shows a small pointer triangle connecting the menu to its trigger. */
16
+ arrow?: boolean;
17
+ ui?: UiProp<DropdownThemeSlots>;
18
+ }
19
+ declare var __VLS_14: {}, __VLS_46: {
20
+ item: DropdownItem;
21
+ };
22
+ type __VLS_Slots = {} & {
23
+ default?: (props: typeof __VLS_14) => any;
24
+ } & {
25
+ item?: (props: typeof __VLS_46) => any;
26
+ };
27
+ declare const __VLS_base: import("vue").DefineComponent<DropdownProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DropdownProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
29
+ declare const _default: typeof __VLS_export;
30
+ export default _default;
31
+ type __VLS_WithSlots<T, S> = T & {
32
+ new (): {
33
+ $slots: S;
34
+ };
35
+ };
@@ -0,0 +1,51 @@
1
+ <script setup>
2
+ import { DropdownMenuArrow, DropdownMenuContent, DropdownMenuItem, DropdownMenuPortal, DropdownMenuRoot, DropdownMenuSeparator, DropdownMenuTrigger } from "reka-ui";
3
+ import { computed } from "vue";
4
+ import { dropdownTheme } from "../theme/dropdown";
5
+ import { resolveSlot, useComponentTheme } from "../utils/ui";
6
+ import Icon from "./Icon.vue";
7
+ const props = defineProps({
8
+ items: { type: Array, required: true },
9
+ arrow: { type: Boolean, required: false, default: false },
10
+ ui: { type: Object, required: false }
11
+ });
12
+ const theme = useComponentTheme("dropdown", dropdownTheme);
13
+ const ui = computed(() => theme.value());
14
+ const contentProps = computed(() => resolveSlot(ui.value.content, props.ui?.content));
15
+ const arrowProps = computed(() => resolveSlot(ui.value.arrow, props.ui?.arrow));
16
+ function itemPropsFor(item) {
17
+ return resolveSlot(theme.value({ destructive: item.destructive }).item, props.ui?.item);
18
+ }
19
+ function iconPropsFor(item) {
20
+ return resolveSlot(theme.value({ destructive: item.destructive }).icon, props.ui?.icon);
21
+ }
22
+ const separatorProps = computed(() => resolveSlot(ui.value.separator, props.ui?.separator));
23
+ </script>
24
+
25
+ <template>
26
+ <DropdownMenuRoot>
27
+ <DropdownMenuTrigger as-child>
28
+ <slot />
29
+ </DropdownMenuTrigger>
30
+ <DropdownMenuPortal>
31
+ <DropdownMenuContent :side-offset="6" align="start" v-bind="contentProps">
32
+ <template v-for="(group, groupIndex) in items" :key="groupIndex">
33
+ <DropdownMenuSeparator v-if="groupIndex > 0" v-bind="separatorProps" />
34
+ <DropdownMenuItem
35
+ v-for="(item, itemIndex) in group"
36
+ :key="itemIndex"
37
+ :disabled="item.disabled"
38
+ v-bind="itemPropsFor(item)"
39
+ @select="item.onSelect?.()"
40
+ >
41
+ <Icon v-if="item.icon" :name="item.icon" v-bind="iconPropsFor(item)" />
42
+ <slot name="item" :item="item">
43
+ {{ item.label }}
44
+ </slot>
45
+ </DropdownMenuItem>
46
+ </template>
47
+ <DropdownMenuArrow v-if="arrow" v-bind="arrowProps" />
48
+ </DropdownMenuContent>
49
+ </DropdownMenuPortal>
50
+ </DropdownMenuRoot>
51
+ </template>
@@ -0,0 +1,35 @@
1
+ import type { DropdownThemeSlots } from '../theme/dropdown.js';
2
+ import type { UiProp } from '../utils/ui.js';
3
+ export interface DropdownItem {
4
+ label: string;
5
+ icon?: string;
6
+ disabled?: boolean;
7
+ /** Styles this item for a delete/remove-style action (danger text, danger-tinted hover) - just this one flag rather than the full color palette, since a menu item realistically only ever needs this one special case. */
8
+ destructive?: boolean;
9
+ onSelect?: () => void;
10
+ /** Not read by Dropdown's own default item rendering - carried purely so a custom #item slot override can display one. */
11
+ shortcut?: string;
12
+ }
13
+ export interface DropdownProps {
14
+ items: DropdownItem[][];
15
+ /** Shows a small pointer triangle connecting the menu to its trigger. */
16
+ arrow?: boolean;
17
+ ui?: UiProp<DropdownThemeSlots>;
18
+ }
19
+ declare var __VLS_14: {}, __VLS_46: {
20
+ item: DropdownItem;
21
+ };
22
+ type __VLS_Slots = {} & {
23
+ default?: (props: typeof __VLS_14) => any;
24
+ } & {
25
+ item?: (props: typeof __VLS_46) => any;
26
+ };
27
+ declare const __VLS_base: import("vue").DefineComponent<DropdownProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DropdownProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
29
+ declare const _default: typeof __VLS_export;
30
+ export default _default;
31
+ type __VLS_WithSlots<T, S> = T & {
32
+ new (): {
33
+ $slots: S;
34
+ };
35
+ };