@youcan/celeste 0.15.0 → 0.16.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 (328) hide show
  1. package/ai/README.md +1 -1
  2. package/ai/component-registry.json +520 -6
  3. package/ai/icons.json +2 -2
  4. package/ai/tokens.json +2 -2
  5. package/dist/celeste.css +276 -13
  6. package/dist/cjs/chunks/BubbleSelect.cjs +3 -3
  7. package/dist/cjs/chunks/CollapsibleRoot.cjs +1 -1
  8. package/dist/cjs/chunks/Collection.cjs +7 -1
  9. package/dist/cjs/chunks/ComboboxContent.cjs +9 -5
  10. package/dist/cjs/chunks/ComboboxGroup.cjs +2 -2
  11. package/dist/cjs/chunks/ComboboxInput.cjs +10 -6
  12. package/dist/cjs/chunks/ComboboxItem.cjs +4 -3
  13. package/dist/cjs/chunks/ComboboxLabel.cjs +1 -1
  14. package/dist/cjs/chunks/ComboboxRoot.cjs +69 -14
  15. package/dist/cjs/chunks/ComboboxSeparator.cjs +1 -1
  16. package/dist/cjs/chunks/ConfigProvider.cjs +1 -1
  17. package/dist/cjs/chunks/DialogClose.cjs +1 -1
  18. package/dist/cjs/chunks/DialogDescription.cjs +1 -1
  19. package/dist/cjs/chunks/DialogPortal.cjs +22 -19
  20. package/dist/cjs/chunks/DialogRoot.cjs +1 -1
  21. package/dist/cjs/chunks/DialogTitle.cjs +1 -1
  22. package/dist/cjs/chunks/DialogTrigger.cjs +1 -1
  23. package/dist/cjs/chunks/DismissableLayer.cjs +19 -9
  24. package/dist/cjs/chunks/DrawerClose.cjs +40 -0
  25. package/dist/cjs/chunks/DrawerRoot.cjs +366 -0
  26. package/dist/cjs/chunks/DropdownMenuPortal.cjs +2 -2
  27. package/dist/cjs/chunks/DropdownMenuRoot.cjs +1 -1
  28. package/dist/cjs/chunks/FocusScope.cjs +18 -9
  29. package/dist/cjs/chunks/Label.cjs +1 -1
  30. package/dist/cjs/chunks/MenuAnchor.cjs +1 -1
  31. package/dist/cjs/chunks/MenuContentImpl.cjs +2 -2
  32. package/dist/cjs/chunks/MenuGroup.cjs +1 -1
  33. package/dist/cjs/chunks/MenuItemImpl.cjs +3 -2
  34. package/dist/cjs/chunks/MenuRoot.cjs +2 -2
  35. package/dist/cjs/chunks/MenuSub.cjs +1 -1
  36. package/dist/cjs/chunks/PaginationRoot.cjs +1 -1
  37. package/dist/cjs/chunks/PinInputRoot.cjs +1 -1
  38. package/dist/cjs/chunks/PopoverRoot.cjs +1 -1
  39. package/dist/cjs/chunks/PopperAnchor.cjs +1 -1
  40. package/dist/cjs/chunks/PopperArrow.cjs +2 -2
  41. package/dist/cjs/chunks/PopperContent.cjs +2 -2
  42. package/dist/cjs/chunks/PopperRoot.cjs +1 -1
  43. package/dist/cjs/chunks/Presence.cjs +6 -5
  44. package/dist/cjs/chunks/Primitive.cjs +3 -3
  45. package/dist/cjs/chunks/ProgressIndicator.cjs +2 -2
  46. package/dist/cjs/chunks/RadioGroupRoot.cjs +1 -1
  47. package/dist/cjs/chunks/RovingFocusGroup.cjs +1 -1
  48. package/dist/cjs/chunks/RovingFocusItem.cjs +1 -1
  49. package/dist/cjs/chunks/SelectGroup.cjs +1 -1
  50. package/dist/cjs/chunks/SelectItemAlignedPosition.cjs +8 -4
  51. package/dist/cjs/chunks/TabsRoot.cjs +1 -1
  52. package/dist/cjs/chunks/Teleport.cjs +1 -1
  53. package/dist/cjs/chunks/ToggleGroupRoot.cjs +2 -2
  54. package/dist/cjs/chunks/TooltipProvider.cjs +1 -1
  55. package/dist/cjs/chunks/TooltipRoot.cjs +2 -2
  56. package/dist/cjs/chunks/VisuallyHidden.cjs +1 -1
  57. package/dist/cjs/chunks/VisuallyHiddenInput.cjs +2 -2
  58. package/dist/cjs/chunks/calendar.cjs +11 -11
  59. package/dist/cjs/chunks/checkbox.cjs +4 -4
  60. package/dist/cjs/chunks/clamp.cjs +1 -1
  61. package/dist/cjs/chunks/collapsible-content.cjs +1 -1
  62. package/dist/cjs/chunks/collapsible-trigger.cjs +1 -1
  63. package/dist/cjs/chunks/combobox-anchor.cjs +1 -1
  64. package/dist/cjs/chunks/combobox-empty.cjs +1 -1
  65. package/dist/cjs/chunks/combobox-list.cjs +2 -2
  66. package/dist/cjs/chunks/combobox-trigger.cjs +1 -1
  67. package/dist/cjs/chunks/components.cjs +18 -0
  68. package/dist/cjs/chunks/content-divider.cjs +2 -2
  69. package/dist/cjs/chunks/counter-input.cjs +67 -23
  70. package/dist/cjs/chunks/createContext.cjs +1 -1
  71. package/dist/cjs/chunks/digit-input-slot.cjs +28 -7
  72. package/dist/cjs/chunks/drawer-body.cjs +73 -0
  73. package/dist/cjs/chunks/drawer-close.cjs +27 -0
  74. package/dist/cjs/chunks/drawer-content.cjs +1201 -0
  75. package/dist/cjs/chunks/drawer-description.cjs +69 -0
  76. package/dist/cjs/chunks/drawer-footer.cjs +30 -0
  77. package/dist/cjs/chunks/drawer-header.cjs +75 -0
  78. package/dist/cjs/chunks/drawer-title.cjs +69 -0
  79. package/dist/cjs/chunks/drawer-trigger.cjs +75 -0
  80. package/dist/cjs/chunks/drawer.cjs +54 -0
  81. package/dist/cjs/chunks/dropdown-menu-content.cjs +4 -4
  82. package/dist/cjs/chunks/dropdown-menu-group.cjs +1 -1
  83. package/dist/cjs/chunks/dropdown-menu-item.cjs +2 -2
  84. package/dist/cjs/chunks/dropdown-menu-label.cjs +2 -2
  85. package/dist/cjs/chunks/dropdown-menu-separator.cjs +2 -2
  86. package/dist/cjs/chunks/dropdown-menu-sub-content.cjs +2 -2
  87. package/dist/cjs/chunks/dropdown-menu-sub-trigger.cjs +2 -2
  88. package/dist/cjs/chunks/dropdown-menu-sub.cjs +1 -1
  89. package/dist/cjs/chunks/dropdown-menu-trigger.cjs +1 -1
  90. package/dist/cjs/chunks/getActiveElement.cjs +1 -1
  91. package/dist/cjs/chunks/handleAndDispatchCustomEvent.cjs +1 -1
  92. package/dist/cjs/chunks/isValueEqualOrExist.cjs +1 -1
  93. package/dist/cjs/chunks/modal-content.cjs +11 -6
  94. package/dist/cjs/chunks/nullish.cjs +1 -1
  95. package/dist/cjs/chunks/pagination-content.cjs +2 -2
  96. package/dist/cjs/chunks/pagination-ellipsis.cjs +1 -1
  97. package/dist/cjs/chunks/pagination-first.cjs +1 -1
  98. package/dist/cjs/chunks/pagination-item.cjs +1 -1
  99. package/dist/cjs/chunks/pagination-last.cjs +1 -1
  100. package/dist/cjs/chunks/pagination-next.cjs +1 -1
  101. package/dist/cjs/chunks/pagination-previous.cjs +1 -1
  102. package/dist/cjs/chunks/popover-content.cjs +8 -8
  103. package/dist/cjs/chunks/popover-trigger.cjs +3 -2
  104. package/dist/cjs/chunks/radio-group-item.cjs +5 -5
  105. package/dist/cjs/chunks/range-calendar.cjs +11 -11
  106. package/dist/cjs/chunks/scroll-area.cjs +3 -3
  107. package/dist/cjs/chunks/scroll-bar.cjs +12 -12
  108. package/dist/cjs/chunks/segmented-control-item.cjs +2 -2
  109. package/dist/cjs/chunks/select-content.cjs +4 -4
  110. package/dist/cjs/chunks/select-item.cjs +3 -3
  111. package/dist/cjs/chunks/select-label.cjs +1 -1
  112. package/dist/cjs/chunks/select-separator.cjs +1 -1
  113. package/dist/cjs/chunks/select-trigger.cjs +3 -3
  114. package/dist/cjs/chunks/select-value.cjs +1 -1
  115. package/dist/cjs/chunks/slider.cjs +9 -9
  116. package/dist/cjs/chunks/switch.cjs +2 -2
  117. package/dist/cjs/chunks/tab-menu-content.cjs +1 -1
  118. package/dist/cjs/chunks/tab-menu-item.cjs +1 -1
  119. package/dist/cjs/chunks/tab-menu-list.cjs +1 -1
  120. package/dist/cjs/chunks/tooltip-content.cjs +28 -16
  121. package/dist/cjs/chunks/tooltip-trigger.cjs +5 -5
  122. package/dist/cjs/chunks/useArrowNavigation.cjs +1 -1
  123. package/dist/cjs/chunks/useCalendar.cjs +34 -11
  124. package/dist/cjs/chunks/useComposing.cjs +20 -1
  125. package/dist/cjs/chunks/useDirection.cjs +1 -1
  126. package/dist/cjs/chunks/useEmitAsProps.cjs +1 -1
  127. package/dist/cjs/chunks/useFocusGuards.cjs +1 -1
  128. package/dist/cjs/chunks/useFormControl.cjs +1 -1
  129. package/dist/cjs/chunks/useForwardExpose.cjs +1 -1
  130. package/dist/cjs/chunks/useForwardProps.cjs +1 -1
  131. package/dist/cjs/chunks/useForwardPropsEmits.cjs +1 -1
  132. package/dist/cjs/chunks/useForwardScopeId.cjs +1 -1
  133. package/dist/cjs/chunks/useHideOthers.cjs +1 -1
  134. package/dist/cjs/chunks/useId.cjs +1 -1
  135. package/dist/cjs/chunks/useKbd.cjs +1 -1
  136. package/dist/cjs/chunks/useLocale.cjs +1 -1
  137. package/dist/cjs/chunks/useNonce.cjs +1 -1
  138. package/dist/cjs/chunks/usePrimitiveElement.cjs +1 -1
  139. package/dist/cjs/chunks/useSize.cjs +1 -1
  140. package/dist/cjs/chunks/useTypeahead.cjs +1 -1
  141. package/dist/cjs/chunks/utils.cjs +1 -1
  142. package/dist/cjs/chunks/utils2.cjs +1 -1
  143. package/dist/cjs/chunks/utils3.cjs +1 -1
  144. package/dist/cjs/drawer-body.cjs +2 -0
  145. package/dist/cjs/drawer-close.cjs +2 -0
  146. package/dist/cjs/drawer-content.cjs +2 -0
  147. package/dist/cjs/drawer-description.cjs +2 -0
  148. package/dist/cjs/drawer-footer.cjs +2 -0
  149. package/dist/cjs/drawer-header.cjs +2 -0
  150. package/dist/cjs/drawer-title.cjs +2 -0
  151. package/dist/cjs/drawer-trigger.cjs +2 -0
  152. package/dist/cjs/drawer.cjs +2 -0
  153. package/dist/cjs/index.cjs +18 -0
  154. package/dist/components/digit-input/digit-input.d.ts +3 -3
  155. package/dist/components/drawer/drawer-body.d.ts +18 -0
  156. package/dist/components/drawer/drawer-close.d.ts +16 -0
  157. package/dist/components/drawer/drawer-content.d.ts +32 -0
  158. package/dist/components/drawer/drawer-description.d.ts +18 -0
  159. package/dist/components/drawer/drawer-footer.d.ts +17 -0
  160. package/dist/components/drawer/drawer-header.d.ts +24 -0
  161. package/dist/components/drawer/drawer-title.d.ts +18 -0
  162. package/dist/components/drawer/drawer-trigger.d.ts +16 -0
  163. package/dist/components/drawer/drawer.d.ts +30 -0
  164. package/dist/components/drawer/index.d.ts +18 -0
  165. package/dist/components/index.d.ts +1 -0
  166. package/dist/components/modal/modal-content.d.ts +2 -2
  167. package/dist/es/chunks/BubbleSelect.js +3 -3
  168. package/dist/es/chunks/CollapsibleRoot.js +1 -1
  169. package/dist/es/chunks/Collection.js +7 -1
  170. package/dist/es/chunks/ComboboxContent.js +11 -7
  171. package/dist/es/chunks/ComboboxGroup.js +2 -2
  172. package/dist/es/chunks/ComboboxInput.js +10 -6
  173. package/dist/es/chunks/ComboboxItem.js +4 -3
  174. package/dist/es/chunks/ComboboxLabel.js +1 -1
  175. package/dist/es/chunks/ComboboxRoot.js +69 -14
  176. package/dist/es/chunks/ComboboxSeparator.js +1 -1
  177. package/dist/es/chunks/ConfigProvider.js +1 -1
  178. package/dist/es/chunks/DialogClose.js +1 -1
  179. package/dist/es/chunks/DialogDescription.js +1 -1
  180. package/dist/es/chunks/DialogPortal.js +23 -20
  181. package/dist/es/chunks/DialogRoot.js +1 -1
  182. package/dist/es/chunks/DialogTitle.js +1 -1
  183. package/dist/es/chunks/DialogTrigger.js +1 -1
  184. package/dist/es/chunks/DismissableLayer.js +14 -10
  185. package/dist/es/chunks/DrawerClose.js +35 -0
  186. package/dist/es/chunks/DrawerRoot.js +325 -0
  187. package/dist/es/chunks/DropdownMenuPortal.js +2 -2
  188. package/dist/es/chunks/DropdownMenuRoot.js +1 -1
  189. package/dist/es/chunks/FocusScope.js +13 -10
  190. package/dist/es/chunks/Label.js +1 -1
  191. package/dist/es/chunks/MenuAnchor.js +1 -1
  192. package/dist/es/chunks/MenuContentImpl.js +3 -3
  193. package/dist/es/chunks/MenuGroup.js +1 -1
  194. package/dist/es/chunks/MenuItemImpl.js +3 -2
  195. package/dist/es/chunks/MenuRoot.js +2 -2
  196. package/dist/es/chunks/MenuSub.js +1 -1
  197. package/dist/es/chunks/PaginationRoot.js +1 -1
  198. package/dist/es/chunks/PinInputRoot.js +1 -1
  199. package/dist/es/chunks/PopoverRoot.js +1 -1
  200. package/dist/es/chunks/PopperAnchor.js +1 -1
  201. package/dist/es/chunks/PopperArrow.js +2 -2
  202. package/dist/es/chunks/PopperContent.js +2 -2
  203. package/dist/es/chunks/PopperRoot.js +1 -1
  204. package/dist/es/chunks/Presence.js +6 -5
  205. package/dist/es/chunks/Primitive.js +3 -3
  206. package/dist/es/chunks/ProgressIndicator.js +2 -2
  207. package/dist/es/chunks/RadioGroupRoot.js +1 -1
  208. package/dist/es/chunks/RovingFocusGroup.js +1 -1
  209. package/dist/es/chunks/RovingFocusItem.js +1 -1
  210. package/dist/es/chunks/SelectGroup.js +1 -1
  211. package/dist/es/chunks/SelectItemAlignedPosition.js +9 -5
  212. package/dist/es/chunks/TabsRoot.js +1 -1
  213. package/dist/es/chunks/Teleport.js +1 -1
  214. package/dist/es/chunks/ToggleGroupRoot.js +2 -2
  215. package/dist/es/chunks/TooltipProvider.js +1 -1
  216. package/dist/es/chunks/TooltipRoot.js +2 -2
  217. package/dist/es/chunks/VisuallyHidden.js +1 -1
  218. package/dist/es/chunks/VisuallyHiddenInput.js +2 -2
  219. package/dist/es/chunks/calendar.js +11 -11
  220. package/dist/es/chunks/checkbox.js +4 -4
  221. package/dist/es/chunks/clamp.js +1 -1
  222. package/dist/es/chunks/collapsible-content.js +1 -1
  223. package/dist/es/chunks/collapsible-trigger.js +1 -1
  224. package/dist/es/chunks/combobox-anchor.js +1 -1
  225. package/dist/es/chunks/combobox-empty.js +1 -1
  226. package/dist/es/chunks/combobox-list.js +2 -2
  227. package/dist/es/chunks/combobox-trigger.js +1 -1
  228. package/dist/es/chunks/components.js +18 -0
  229. package/dist/es/chunks/content-divider.js +2 -2
  230. package/dist/es/chunks/counter-input.js +68 -24
  231. package/dist/es/chunks/createContext.js +1 -1
  232. package/dist/es/chunks/digit-input-slot.js +28 -7
  233. package/dist/es/chunks/drawer-body.js +65 -0
  234. package/dist/es/chunks/drawer-close.js +22 -0
  235. package/dist/es/chunks/drawer-content.js +1193 -0
  236. package/dist/es/chunks/drawer-description.js +61 -0
  237. package/dist/es/chunks/drawer-footer.js +23 -0
  238. package/dist/es/chunks/drawer-header.js +69 -0
  239. package/dist/es/chunks/drawer-title.js +61 -0
  240. package/dist/es/chunks/drawer-trigger.js +70 -0
  241. package/dist/es/chunks/drawer.js +49 -0
  242. package/dist/es/chunks/dropdown-menu-content.js +4 -4
  243. package/dist/es/chunks/dropdown-menu-group.js +1 -1
  244. package/dist/es/chunks/dropdown-menu-item.js +2 -2
  245. package/dist/es/chunks/dropdown-menu-label.js +2 -2
  246. package/dist/es/chunks/dropdown-menu-separator.js +2 -2
  247. package/dist/es/chunks/dropdown-menu-sub-content.js +2 -2
  248. package/dist/es/chunks/dropdown-menu-sub-trigger.js +2 -2
  249. package/dist/es/chunks/dropdown-menu-sub.js +1 -1
  250. package/dist/es/chunks/dropdown-menu-trigger.js +1 -1
  251. package/dist/es/chunks/getActiveElement.js +1 -1
  252. package/dist/es/chunks/handleAndDispatchCustomEvent.js +1 -1
  253. package/dist/es/chunks/isValueEqualOrExist.js +1 -1
  254. package/dist/es/chunks/modal-content.js +12 -7
  255. package/dist/es/chunks/nullish.js +1 -1
  256. package/dist/es/chunks/pagination-content.js +2 -2
  257. package/dist/es/chunks/pagination-ellipsis.js +1 -1
  258. package/dist/es/chunks/pagination-first.js +1 -1
  259. package/dist/es/chunks/pagination-item.js +1 -1
  260. package/dist/es/chunks/pagination-last.js +1 -1
  261. package/dist/es/chunks/pagination-next.js +1 -1
  262. package/dist/es/chunks/pagination-previous.js +1 -1
  263. package/dist/es/chunks/popover-content.js +9 -9
  264. package/dist/es/chunks/popover-trigger.js +3 -2
  265. package/dist/es/chunks/radio-group-item.js +5 -5
  266. package/dist/es/chunks/range-calendar.js +11 -11
  267. package/dist/es/chunks/scroll-area.js +3 -3
  268. package/dist/es/chunks/scroll-bar.js +12 -12
  269. package/dist/es/chunks/segmented-control-item.js +2 -2
  270. package/dist/es/chunks/select-content.js +4 -4
  271. package/dist/es/chunks/select-item.js +3 -3
  272. package/dist/es/chunks/select-label.js +1 -1
  273. package/dist/es/chunks/select-separator.js +1 -1
  274. package/dist/es/chunks/select-trigger.js +3 -3
  275. package/dist/es/chunks/select-value.js +1 -1
  276. package/dist/es/chunks/slider.js +9 -9
  277. package/dist/es/chunks/switch.js +2 -2
  278. package/dist/es/chunks/tab-menu-content.js +1 -1
  279. package/dist/es/chunks/tab-menu-item.js +1 -1
  280. package/dist/es/chunks/tab-menu-list.js +1 -1
  281. package/dist/es/chunks/tooltip-content.js +28 -16
  282. package/dist/es/chunks/tooltip-trigger.js +6 -6
  283. package/dist/es/chunks/useArrowNavigation.js +1 -1
  284. package/dist/es/chunks/useCalendar.js +34 -11
  285. package/dist/es/chunks/useComposing.js +21 -2
  286. package/dist/es/chunks/useDirection.js +1 -1
  287. package/dist/es/chunks/useEmitAsProps.js +1 -1
  288. package/dist/es/chunks/useFocusGuards.js +1 -1
  289. package/dist/es/chunks/useFormControl.js +1 -1
  290. package/dist/es/chunks/useForwardExpose.js +1 -1
  291. package/dist/es/chunks/useForwardProps.js +1 -1
  292. package/dist/es/chunks/useForwardPropsEmits.js +1 -1
  293. package/dist/es/chunks/useForwardScopeId.js +1 -1
  294. package/dist/es/chunks/useHideOthers.js +1 -1
  295. package/dist/es/chunks/useId.js +1 -1
  296. package/dist/es/chunks/useKbd.js +1 -1
  297. package/dist/es/chunks/useLocale.js +1 -1
  298. package/dist/es/chunks/useNonce.js +1 -1
  299. package/dist/es/chunks/usePrimitiveElement.js +1 -1
  300. package/dist/es/chunks/useSize.js +1 -1
  301. package/dist/es/chunks/useTypeahead.js +1 -1
  302. package/dist/es/chunks/utils.js +1 -1
  303. package/dist/es/chunks/utils2.js +1 -1
  304. package/dist/es/chunks/utils3.js +1 -1
  305. package/dist/es/drawer-body.js +2 -0
  306. package/dist/es/drawer-close.js +2 -0
  307. package/dist/es/drawer-content.js +2 -0
  308. package/dist/es/drawer-description.js +2 -0
  309. package/dist/es/drawer-footer.js +2 -0
  310. package/dist/es/drawer-header.js +2 -0
  311. package/dist/es/drawer-title.js +2 -0
  312. package/dist/es/drawer-trigger.js +2 -0
  313. package/dist/es/drawer.js +2 -0
  314. package/dist/es/index.js +10 -1
  315. package/package.json +4 -4
  316. package/src/components/drawer/drawer-body.vue +30 -0
  317. package/src/components/drawer/drawer-close.vue +14 -0
  318. package/src/components/drawer/drawer-content.vue +259 -0
  319. package/src/components/drawer/drawer-description.vue +29 -0
  320. package/src/components/drawer/drawer-footer.vue +27 -0
  321. package/src/components/drawer/drawer-header.vue +95 -0
  322. package/src/components/drawer/drawer-title.vue +29 -0
  323. package/src/components/drawer/drawer-trigger.vue +14 -0
  324. package/src/components/drawer/drawer.vue +29 -0
  325. package/src/components/drawer/index.ts +18 -0
  326. package/src/components/drawer/stories/drawer.stories.ts +78 -0
  327. package/src/components/index.ts +1 -0
  328. package/src/components/modal/modal-content.vue +41 -17
@@ -0,0 +1,78 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import Button from '@/components/button/button.vue';
3
+ import DrawerBody from '../drawer-body.vue';
4
+ import DrawerClose from '../drawer-close.vue';
5
+ import DrawerContent from '../drawer-content.vue';
6
+ import DrawerFooter from '../drawer-footer.vue';
7
+ import DrawerHeader from '../drawer-header.vue';
8
+ import DrawerTrigger from '../drawer-trigger.vue';
9
+ import Drawer from '../drawer.vue';
10
+
11
+ const meta: Meta<typeof Drawer> = {
12
+ title: 'Components/Drawer',
13
+ component: Drawer,
14
+ argTypes: {
15
+ side: { control: 'select', options: ['right', 'left', 'bottom', 'top'] },
16
+ },
17
+ args: { side: 'right' },
18
+ };
19
+
20
+ export default meta;
21
+
22
+ type Story = StoryObj<typeof Drawer>;
23
+
24
+ const render: Story['render'] = args => ({
25
+ components: { Drawer, DrawerTrigger, DrawerContent, DrawerHeader, DrawerBody, DrawerFooter, DrawerClose, Button },
26
+ setup() {
27
+ return { args, items: Array.from({ length: 24 }, (_, i) => `Item ${i + 1}`) };
28
+ },
29
+ template: `
30
+ <Drawer v-bind="args">
31
+ <DrawerTrigger as-child>
32
+ <Button variant="stroke" intent="neutral">Open drawer</Button>
33
+ </DrawerTrigger>
34
+ <DrawerContent>
35
+ <DrawerHeader title="Virtual card" description="Manage the card and its recent transactions." icon="i-celeste-history-line" divider />
36
+ <DrawerBody>
37
+ <ul style="margin: 0; padding: 20px; display: grid; gap: 12px; list-style: none;">
38
+ <li v-for="item in items" :key="item">{{ item }}</li>
39
+ </ul>
40
+ </DrawerBody>
41
+ <DrawerFooter>
42
+ <DrawerClose as-child>
43
+ <Button intent="neutral" variant="stroke" style="flex: 1">Cancel</Button>
44
+ </DrawerClose>
45
+ <Button style="flex: 1">Continue</Button>
46
+ </DrawerFooter>
47
+ </DrawerContent>
48
+ </Drawer>
49
+ `,
50
+ });
51
+
52
+ export const Right: Story = { render };
53
+
54
+ export const Left: Story = { render, args: { side: 'left' } };
55
+
56
+ export const Bottom: Story = { render, args: { side: 'bottom' } };
57
+
58
+ export const Top: Story = { render, args: { side: 'top' } };
59
+
60
+ export const SmallHeader: Story = {
61
+ render: args => ({
62
+ components: { Drawer, DrawerTrigger, DrawerContent, DrawerHeader, DrawerBody, Button },
63
+ setup() {
64
+ return { args };
65
+ },
66
+ template: `
67
+ <Drawer v-bind="args">
68
+ <DrawerTrigger as-child>
69
+ <Button variant="stroke" intent="neutral">Open drawer</Button>
70
+ </DrawerTrigger>
71
+ <DrawerContent>
72
+ <DrawerHeader title="Insert title here" icon="i-celeste-history-line" />
73
+ <DrawerBody />
74
+ </DrawerContent>
75
+ </Drawer>
76
+ `,
77
+ }),
78
+ };
@@ -11,6 +11,7 @@ export * from './content-divider';
11
11
  export * from './counter-input';
12
12
  export * from './date-picker';
13
13
  export * from './digit-input';
14
+ export * from './drawer';
14
15
  export * from './dropdown-menu';
15
16
  export * from './file-upload';
16
17
  export * from './hint-text';
@@ -2,7 +2,7 @@
2
2
  import type { DialogContentEmits, DialogContentProps } from 'reka-ui';
3
3
  import type { HTMLAttributes } from 'vue';
4
4
  import clsx from 'clsx';
5
- import { DialogContent as ModalContent, DialogOverlay as ModalOverlay, DialogPortal as ModalPortal, useForwardPropsEmits } from 'reka-ui';
5
+ import { injectDialogRootContext, DialogContent as ModalContent, DialogOverlay as ModalOverlay, DialogPortal as ModalPortal, useForwardPropsEmits } from 'reka-ui';
6
6
  import { useDelegatedProps } from '@/composables/use-delegated-props';
7
7
 
8
8
  const props = defineProps<DialogContentProps & {
@@ -13,41 +13,65 @@ const emits = defineEmits<DialogContentEmits>();
13
13
 
14
14
  const delegatedProps = useDelegatedProps(props, 'class');
15
15
  const forwarded = useForwardPropsEmits(delegatedProps, emits);
16
+ const root = injectDialogRootContext();
16
17
  </script>
17
18
 
18
19
  <template>
19
20
  <ModalPortal>
20
- <ModalOverlay class="celeste-modal-overlay" />
21
- <Transition name="fade">
22
- <ModalContent
23
- v-bind="forwarded"
24
- :class="clsx('celeste-modal-content', props.class)"
25
- >
26
- <slot />
27
- </ModalContent>
28
- </Transition>
21
+ <component :is="root.modal.value ? ModalOverlay : 'div'" :class="root.modal.value ? 'celeste-modal-overlay' : 'celeste-modal-viewport'">
22
+ <Transition name="fade">
23
+ <ModalContent
24
+ v-bind="forwarded"
25
+ :class="clsx('celeste-modal-content', props.class)"
26
+ >
27
+ <slot />
28
+ </ModalContent>
29
+ </Transition>
30
+ </component>
29
31
  </ModalPortal>
30
32
  </template>
31
33
 
32
34
  <style scoped lang="scss">
33
- .celeste-modal-overlay {
35
+ .celeste-modal-overlay,
36
+ .celeste-modal-viewport {
37
+ display: flex;
34
38
  position: fixed;
35
39
  z-index: 50;
40
+ flex-direction: column;
41
+ padding: var(--spacing-16);
42
+ overflow-y: auto;
43
+ inset: 0;
44
+ }
45
+
46
+ .celeste-modal-overlay {
36
47
  background: var(--color-overlay-overlay);
37
48
  backdrop-filter: blur(5px);
38
- inset: 0;
49
+
50
+ &[data-state='open'] {
51
+ animation: celeste-fade-in var(--animation-fast) ease-out;
52
+ }
53
+
54
+ &[data-state='closed'] {
55
+ animation: celeste-fade-out var(--animation-fast) ease-in;
56
+ }
57
+ }
58
+
59
+ .celeste-modal-viewport {
60
+ pointer-events: none;
61
+
62
+ .celeste-modal-content {
63
+ pointer-events: auto;
64
+ }
39
65
  }
40
66
 
41
67
  .celeste-modal-content {
42
- position: fixed;
43
- z-index: 51;
44
- top: 50%;
45
- left: 50%;
68
+ position: relative;
69
+ max-width: 100%;
70
+ margin: auto;
46
71
  border: 1px solid var(--color-stroke-soft-200);
47
72
  border-radius: var(--radius-20);
48
73
  background: var(--color-bg-white-0);
49
74
  box-shadow: var(--shadow-regular-md);
50
- translate: -50% -50%;
51
75
  }
52
76
 
53
77
  .fade-enter-active,