@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,2 @@
1
+ import { t as drawer_header_default } from "./chunks/drawer-header.js";
2
+ export { drawer_header_default as default };
@@ -0,0 +1,2 @@
1
+ import { t as drawer_title_default } from "./chunks/drawer-title.js";
2
+ export { drawer_title_default as default };
@@ -0,0 +1,2 @@
1
+ import { t as drawer_trigger_default } from "./chunks/drawer-trigger.js";
2
+ export { drawer_trigger_default as default };
@@ -0,0 +1,2 @@
1
+ import { t as drawer_default } from "./chunks/drawer.js";
2
+ export { drawer_default as default };
package/dist/es/index.js CHANGED
@@ -23,6 +23,11 @@ import { t as dropdown_menu_sub_trigger_default } from "./chunks/dropdown-menu-s
23
23
  import { t as popover_content_default } from "./chunks/popover-content.js";
24
24
  import { t as popover_trigger_default } from "./chunks/popover-trigger.js";
25
25
  import { t as range_calendar_default } from "./chunks/range-calendar.js";
26
+ import { t as drawer_content_default } from "./chunks/drawer-content.js";
27
+ import { t as drawer_description_default } from "./chunks/drawer-description.js";
28
+ import { t as drawer_title_default } from "./chunks/drawer-title.js";
29
+ import { t as drawer_trigger_default } from "./chunks/drawer-trigger.js";
30
+ import { t as drawer_body_default } from "./chunks/drawer-body.js";
26
31
  import { t as dropdown_menu_group_default } from "./chunks/dropdown-menu-group.js";
27
32
  import { t as dropdown_menu_sub_default } from "./chunks/dropdown-menu-sub.js";
28
33
  import { t as dropdown_menu_trigger_default } from "./chunks/dropdown-menu-trigger.js";
@@ -91,6 +96,10 @@ import { t as combobox_default } from "./chunks/combobox.js";
91
96
  import { t as date_picker_default } from "./chunks/date-picker.js";
92
97
  import { t as digit_input_group_default } from "./chunks/digit-input-group.js";
93
98
  import { t as digit_input_default } from "./chunks/digit-input.js";
99
+ import { t as drawer_close_default } from "./chunks/drawer-close.js";
100
+ import { t as drawer_footer_default } from "./chunks/drawer-footer.js";
101
+ import { t as drawer_header_default } from "./chunks/drawer-header.js";
102
+ import { t as drawer_default } from "./chunks/drawer.js";
94
103
  import { t as dropdown_menu_default } from "./chunks/dropdown-menu.js";
95
104
  import { t as file_upload_area_default } from "./chunks/file-upload-area.js";
96
105
  import { t as hint_text_default } from "./chunks/hint-text.js";
@@ -224,4 +233,4 @@ var Celeste = { install(vue) {
224
233
  });
225
234
  } };
226
235
  //#endregion
227
- export { alert_default as Alert, alpha_slider_default as AlphaSlider, badge_default as Badge, bar_chart_default as BarChart, button_default as Button, CHART_DURATION, CHART_SERIES_COLORS, COLOR_NUMBER_VALIDATION_PATTERN, calendar_default as Calendar, Celeste, chart_card_default as ChartCard, chart_legend_default as ChartLegend, chart_plot_default as ChartPlot, checkbox_default as Checkbox, checkbox_card_default as CheckboxCard, checkbox_label_default as CheckboxLabel, collapsible_default as Collapsible, collapsible_content_default as CollapsibleContent, collapsible_trigger_default as CollapsibleTrigger, color_area_default as ColorArea, color_picker_default as ColorPicker, color_swatch_default as ColorSwatch, combobox_default as Combobox, combobox_anchor_default as ComboboxAnchor, combobox_empty_default as ComboboxEmpty, combobox_group_default as ComboboxGroup, combobox_input_default as ComboboxInput, combobox_item_default as ComboboxItem, combobox_list_default as ComboboxList, combobox_root_default as ComboboxRoot, combobox_separator_default as ComboboxSeparator, combobox_trigger_default as ComboboxTrigger, compact_button_default as CompactButton, content_divider_default as ContentDivider, counter_input_default as CounterInput, DEFAULT_SWATCH, date_picker_default as DatePicker, digit_input_default as DigitInput, digit_input_group_default as DigitInputGroup, digit_input_slot_default as DigitInputSlot, dropdown_menu_default as DropdownMenu, dropdown_menu_content_default as DropdownMenuContent, dropdown_menu_group_default as DropdownMenuGroup, dropdown_menu_item_default as DropdownMenuItem, dropdown_menu_label_default as DropdownMenuLabel, dropdown_menu_separator_default as DropdownMenuSeparator, dropdown_menu_sub_default as DropdownMenuSub, dropdown_menu_sub_content_default as DropdownMenuSubContent, dropdown_menu_sub_trigger_default as DropdownMenuSubTrigger, dropdown_menu_trigger_default as DropdownMenuTrigger, fancy_button_default as FancyButton, file_upload_area_default as FileUploadArea, HEX_VALIDATION_PATTERN, hint_text_default as HintText, hue_slider_default as HueSlider, label_default as Label, link_button_default as LinkButton, mochi_default as Mochi, modal_default as Modal, modal_body_default as ModalBody, modal_close_default as ModalClose, modal_content_default as ModalContent, modal_footer_default as ModalFooter, modal_header_default as ModalHeader, modal_trigger_default as ModalTrigger, pagination_default as Pagination, pagination_content_default as PaginationContent, pagination_ellipsis_default as PaginationEllipsis, pagination_first_default as PaginationFirst, pagination_item_default as PaginationItem, pagination_last_default as PaginationLast, pagination_next_default as PaginationNext, pagination_previous_default as PaginationPrevious, popover_default as Popover, popover_content_default as PopoverContent, popover_trigger_default as PopoverTrigger, progress_bar_default as ProgressBar, progress_circle_default as ProgressCircle, radio_group_default as RadioGroup, radio_group_card_default as RadioGroupCard, radio_group_item_default as RadioGroupItem, radio_group_label_default as RadioGroupLabel, range_calendar_default as RangeCalendar, range_picker_default as RangePicker, rich_editor_default as RichEditor, SIDEBAR_COOKIE_MAX_AGE, SIDEBAR_COOKIE_NAME, SIDEBAR_KEYBOARD_SHORTCUT, SIDEBAR_WIDTH, SIDEBAR_WIDTH_ICON, SIDEBAR_WIDTH_MOBILE, scroll_area_default as ScrollArea, segmented_control_default as SegmentedControl, segmented_control_item_default as SegmentedControlItem, select_default as Select, select_content_default as SelectContent, select_group_default as SelectGroup, select_icon_default as SelectIcon, select_item_default as SelectItem, select_label_default as SelectLabel, select_separator_default as SelectSeparator, select_trigger_default as SelectTrigger, select_value_default as SelectValue, sheet_default as Sheet, sheet_close_default as SheetClose, sheet_content_default as SheetContent, sheet_description_default as SheetDescription, sheet_footer_default as SheetFooter, sheet_header_default as SheetHeader, sheet_title_default as SheetTitle, sheet_trigger_default as SheetTrigger, sidebar_default as Sidebar, sidebar_content_default as SidebarContent, sidebar_element_default as SidebarElement, sidebar_footer_default as SidebarFooter, sidebar_group_default as SidebarGroup, sidebar_group_content_default as SidebarGroupContent, sidebar_group_label_default as SidebarGroupLabel, sidebar_header_default as SidebarHeader, sidebar_menu_default as SidebarMenu, sidebar_menu_action_default as SidebarMenuAction, sidebar_menu_badge_default as SidebarMenuBadge, sidebar_menu_button_default as SidebarMenuButton, sidebar_menu_item_default as SidebarMenuItem, sidebar_menu_sub_default as SidebarMenuSub, sidebar_menu_sub_button_default as SidebarMenuSubButton, sidebar_menu_sub_item_default as SidebarMenuSubItem, sidebar_provider_default as SidebarProvider, sidebar_separator_default as SidebarSeparator, sidebar_trigger_default as SidebarTrigger, slider_default as Slider, social_button_default as SocialButton, sonner_default as Sonner, sonner_alert_default as SonnerAlert, status_badge_default as StatusBadge, switch_default as Switch, tab_menu_default as TabMenu, tab_menu_content_default as TabMenuContent, tab_menu_item_default as TabMenuItem, tab_menu_list_default as TabMenuList, table_default as Table, table_body_default as TableBody, table_caption_default as TableCaption, table_cell_default as TableCell, table_empty_default as TableEmpty, table_footer_default as TableFooter, table_head_default as TableHead, table_header_default as TableHeader, table_row_default as TableRow, tag_default as Tag, text_input_default as TextInput, text_input_affix_default as TextInputAffix, text_input_button_default as TextInputButton, textarea_default as Textarea, tooltip_default as Tooltip, tooltip_content_default as TooltipContent, tooltip_provider_default as TooltipProvider, tooltip_root_default as TooltipRoot, tooltip_trigger_default as TooltipTrigger, bumpColorValue, chartColor, chartTooltip, clamp, formatCompact, formatNumber, getAbsolutePosition, getColorConstraints, getFractionDigit, getPageXYFromEvent, getScrollXY, niceTicks, provideSidebarContext, resolveArrowDirection, toast, truncColorValue, uid, useChartMotion, useDelegatedProps, useDirection, useLocale, useSidebar, useTabObserver };
236
+ export { alert_default as Alert, alpha_slider_default as AlphaSlider, badge_default as Badge, bar_chart_default as BarChart, button_default as Button, CHART_DURATION, CHART_SERIES_COLORS, COLOR_NUMBER_VALIDATION_PATTERN, calendar_default as Calendar, Celeste, chart_card_default as ChartCard, chart_legend_default as ChartLegend, chart_plot_default as ChartPlot, checkbox_default as Checkbox, checkbox_card_default as CheckboxCard, checkbox_label_default as CheckboxLabel, collapsible_default as Collapsible, collapsible_content_default as CollapsibleContent, collapsible_trigger_default as CollapsibleTrigger, color_area_default as ColorArea, color_picker_default as ColorPicker, color_swatch_default as ColorSwatch, combobox_default as Combobox, combobox_anchor_default as ComboboxAnchor, combobox_empty_default as ComboboxEmpty, combobox_group_default as ComboboxGroup, combobox_input_default as ComboboxInput, combobox_item_default as ComboboxItem, combobox_list_default as ComboboxList, combobox_root_default as ComboboxRoot, combobox_separator_default as ComboboxSeparator, combobox_trigger_default as ComboboxTrigger, compact_button_default as CompactButton, content_divider_default as ContentDivider, counter_input_default as CounterInput, DEFAULT_SWATCH, date_picker_default as DatePicker, digit_input_default as DigitInput, digit_input_group_default as DigitInputGroup, digit_input_slot_default as DigitInputSlot, drawer_default as Drawer, drawer_body_default as DrawerBody, drawer_close_default as DrawerClose, drawer_content_default as DrawerContent, drawer_description_default as DrawerDescription, drawer_footer_default as DrawerFooter, drawer_header_default as DrawerHeader, drawer_title_default as DrawerTitle, drawer_trigger_default as DrawerTrigger, dropdown_menu_default as DropdownMenu, dropdown_menu_content_default as DropdownMenuContent, dropdown_menu_group_default as DropdownMenuGroup, dropdown_menu_item_default as DropdownMenuItem, dropdown_menu_label_default as DropdownMenuLabel, dropdown_menu_separator_default as DropdownMenuSeparator, dropdown_menu_sub_default as DropdownMenuSub, dropdown_menu_sub_content_default as DropdownMenuSubContent, dropdown_menu_sub_trigger_default as DropdownMenuSubTrigger, dropdown_menu_trigger_default as DropdownMenuTrigger, fancy_button_default as FancyButton, file_upload_area_default as FileUploadArea, HEX_VALIDATION_PATTERN, hint_text_default as HintText, hue_slider_default as HueSlider, label_default as Label, link_button_default as LinkButton, mochi_default as Mochi, modal_default as Modal, modal_body_default as ModalBody, modal_close_default as ModalClose, modal_content_default as ModalContent, modal_footer_default as ModalFooter, modal_header_default as ModalHeader, modal_trigger_default as ModalTrigger, pagination_default as Pagination, pagination_content_default as PaginationContent, pagination_ellipsis_default as PaginationEllipsis, pagination_first_default as PaginationFirst, pagination_item_default as PaginationItem, pagination_last_default as PaginationLast, pagination_next_default as PaginationNext, pagination_previous_default as PaginationPrevious, popover_default as Popover, popover_content_default as PopoverContent, popover_trigger_default as PopoverTrigger, progress_bar_default as ProgressBar, progress_circle_default as ProgressCircle, radio_group_default as RadioGroup, radio_group_card_default as RadioGroupCard, radio_group_item_default as RadioGroupItem, radio_group_label_default as RadioGroupLabel, range_calendar_default as RangeCalendar, range_picker_default as RangePicker, rich_editor_default as RichEditor, SIDEBAR_COOKIE_MAX_AGE, SIDEBAR_COOKIE_NAME, SIDEBAR_KEYBOARD_SHORTCUT, SIDEBAR_WIDTH, SIDEBAR_WIDTH_ICON, SIDEBAR_WIDTH_MOBILE, scroll_area_default as ScrollArea, segmented_control_default as SegmentedControl, segmented_control_item_default as SegmentedControlItem, select_default as Select, select_content_default as SelectContent, select_group_default as SelectGroup, select_icon_default as SelectIcon, select_item_default as SelectItem, select_label_default as SelectLabel, select_separator_default as SelectSeparator, select_trigger_default as SelectTrigger, select_value_default as SelectValue, sheet_default as Sheet, sheet_close_default as SheetClose, sheet_content_default as SheetContent, sheet_description_default as SheetDescription, sheet_footer_default as SheetFooter, sheet_header_default as SheetHeader, sheet_title_default as SheetTitle, sheet_trigger_default as SheetTrigger, sidebar_default as Sidebar, sidebar_content_default as SidebarContent, sidebar_element_default as SidebarElement, sidebar_footer_default as SidebarFooter, sidebar_group_default as SidebarGroup, sidebar_group_content_default as SidebarGroupContent, sidebar_group_label_default as SidebarGroupLabel, sidebar_header_default as SidebarHeader, sidebar_menu_default as SidebarMenu, sidebar_menu_action_default as SidebarMenuAction, sidebar_menu_badge_default as SidebarMenuBadge, sidebar_menu_button_default as SidebarMenuButton, sidebar_menu_item_default as SidebarMenuItem, sidebar_menu_sub_default as SidebarMenuSub, sidebar_menu_sub_button_default as SidebarMenuSubButton, sidebar_menu_sub_item_default as SidebarMenuSubItem, sidebar_provider_default as SidebarProvider, sidebar_separator_default as SidebarSeparator, sidebar_trigger_default as SidebarTrigger, slider_default as Slider, social_button_default as SocialButton, sonner_default as Sonner, sonner_alert_default as SonnerAlert, status_badge_default as StatusBadge, switch_default as Switch, tab_menu_default as TabMenu, tab_menu_content_default as TabMenuContent, tab_menu_item_default as TabMenuItem, tab_menu_list_default as TabMenuList, table_default as Table, table_body_default as TableBody, table_caption_default as TableCaption, table_cell_default as TableCell, table_empty_default as TableEmpty, table_footer_default as TableFooter, table_head_default as TableHead, table_header_default as TableHeader, table_row_default as TableRow, tag_default as Tag, text_input_default as TextInput, text_input_affix_default as TextInputAffix, text_input_button_default as TextInputButton, textarea_default as Textarea, tooltip_default as Tooltip, tooltip_content_default as TooltipContent, tooltip_provider_default as TooltipProvider, tooltip_root_default as TooltipRoot, tooltip_trigger_default as TooltipTrigger, bumpColorValue, chartColor, chartTooltip, clamp, formatCompact, formatNumber, getAbsolutePosition, getColorConstraints, getFractionDigit, getPageXYFromEvent, getScrollXY, niceTicks, provideSidebarContext, resolveArrowDirection, toast, truncColorValue, uid, useChartMotion, useDelegatedProps, useDirection, useLocale, useSidebar, useTabObserver };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@youcan/celeste",
3
3
  "type": "module",
4
- "version": "0.15.0",
4
+ "version": "0.16.0",
5
5
  "author": "YouCan <tech@youcan.shop>",
6
6
  "repository": {
7
7
  "type": "git",
@@ -49,11 +49,11 @@
49
49
  "@unovis/vue": "1.6.7",
50
50
  "@vueuse/core": "^14.4.0",
51
51
  "clsx": "^2.1.1",
52
- "reka-ui": "^2.10.1",
52
+ "reka-ui": "~2.10.5",
53
53
  "tinycolor2": "^1.6.0",
54
54
  "vue-sonner": "^2.0.9",
55
- "@youcan/celeste-tokens": "0.15.0",
56
- "@youcan/celeste-icons": "0.15.0"
55
+ "@youcan/celeste-tokens": "0.16.0",
56
+ "@youcan/celeste-icons": "0.16.0"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@chromatic-com/storybook": "^5.3.0",
@@ -0,0 +1,30 @@
1
+ <script setup lang="ts">
2
+ import type { DrawerViewportProps as RekaDrawerViewportProps } from 'reka-ui';
3
+ import type { HTMLAttributes } from 'vue';
4
+ import { reactiveOmit } from '@vueuse/core';
5
+ import clsx from 'clsx';
6
+ import { DrawerViewport } from 'reka-ui';
7
+
8
+ export interface DrawerBodyProps extends RekaDrawerViewportProps {
9
+ class?: HTMLAttributes['class'];
10
+ }
11
+
12
+ const props = defineProps<DrawerBodyProps>();
13
+
14
+ const delegated = reactiveOmit(props, 'class');
15
+ </script>
16
+
17
+ <template>
18
+ <DrawerViewport :class="clsx('celeste-drawer-body', props.class)" v-bind="delegated">
19
+ <slot />
20
+ </DrawerViewport>
21
+ </template>
22
+
23
+ <style scoped>
24
+ .celeste-drawer-body {
25
+ flex: 1 1 auto;
26
+ min-height: 0;
27
+ overflow-y: auto;
28
+ overscroll-behavior: contain;
29
+ }
30
+ </style>
@@ -0,0 +1,14 @@
1
+ <script setup lang="ts">
2
+ import type { DrawerCloseProps as RekaDrawerCloseProps } from 'reka-ui';
3
+ import { DrawerClose } from 'reka-ui';
4
+
5
+ export interface DrawerCloseProps extends RekaDrawerCloseProps {}
6
+
7
+ const props = defineProps<DrawerCloseProps>();
8
+ </script>
9
+
10
+ <template>
11
+ <DrawerClose v-bind="props">
12
+ <slot />
13
+ </DrawerClose>
14
+ </template>
@@ -0,0 +1,259 @@
1
+ <script setup lang="ts">
2
+ import type { DrawerContentEmits, DrawerContentProps as RekaDrawerContentProps } from 'reka-ui';
3
+ import type { HTMLAttributes } from 'vue';
4
+ import { reactiveOmit } from '@vueuse/core';
5
+ import clsx from 'clsx';
6
+ import {
7
+ DrawerContent,
8
+ DrawerHandle,
9
+ DrawerOverlay,
10
+ DrawerPortal,
11
+ useForwardPropsEmits,
12
+ } from 'reka-ui';
13
+
14
+ export interface DrawerContentProps extends RekaDrawerContentProps {
15
+ class?: HTMLAttributes['class'];
16
+ }
17
+
18
+ defineOptions({
19
+ inheritAttrs: false,
20
+ });
21
+
22
+ const props = defineProps<DrawerContentProps>();
23
+
24
+ const emits = defineEmits<DrawerContentEmits>();
25
+
26
+ const forwarded = useForwardPropsEmits(reactiveOmit(props, 'class'), emits);
27
+ </script>
28
+
29
+ <template>
30
+ <DrawerPortal>
31
+ <DrawerOverlay class="celeste-drawer-overlay" />
32
+ <DrawerContent
33
+ :class="clsx('celeste-drawer-content', props.class)"
34
+ v-bind="{ ...forwarded, ...$attrs }"
35
+ >
36
+ <DrawerHandle class="celeste-drawer-handle" />
37
+ <slot />
38
+ </DrawerContent>
39
+ </DrawerPortal>
40
+ </template>
41
+
42
+ <style scoped>
43
+ .celeste-drawer-overlay {
44
+ position: fixed;
45
+ z-index: 50;
46
+ transition: opacity 450ms cubic-bezier(0.32, 0.72, 0, 1);
47
+ opacity: calc(1 - var(--drawer-swipe-progress, 0));
48
+ background: var(--color-overlay-overlay);
49
+ inset: 0;
50
+ backdrop-filter: blur(10px);
51
+
52
+ &[data-state='open'] {
53
+ animation: celeste-drawer-fade-in 450ms cubic-bezier(0.32, 0.72, 0, 1);
54
+ }
55
+
56
+ &[data-state='closed'] {
57
+ animation: celeste-drawer-fade-out 300ms cubic-bezier(0.32, 0.72, 0, 1) forwards;
58
+ }
59
+
60
+ &[data-swiping] {
61
+ transition-duration: 0ms;
62
+ }
63
+ }
64
+
65
+ .celeste-drawer-content {
66
+ --drawer-duration: 450ms;
67
+ --drawer-ease: cubic-bezier(0.32, 0.72, 0, 1);
68
+
69
+ display: flex;
70
+ position: fixed;
71
+ z-index: 50;
72
+ flex-direction: column;
73
+ transition: transform var(--drawer-duration) var(--drawer-ease);
74
+ outline: none;
75
+ background-color: var(--color-bg-white-0);
76
+ box-shadow: var(--shadow-regular-md);
77
+
78
+ &[data-swiping] {
79
+ transition-duration: 0ms;
80
+ }
81
+
82
+ &[data-swipe-direction='right'],
83
+ &[data-swipe-direction='left'] {
84
+ top: 0;
85
+ bottom: 0;
86
+ width: 100%;
87
+ max-width: 400px;
88
+ transform: translateX(var(--drawer-swipe-movement-x, 0%));
89
+ }
90
+
91
+ &[data-swipe-direction='right'] {
92
+ right: 0;
93
+ border-left: 1px solid var(--color-stroke-soft-200);
94
+
95
+ &[data-state='open'] {
96
+ animation: celeste-drawer-in-right var(--drawer-duration) var(--drawer-ease);
97
+ }
98
+
99
+ &[data-state='closed'] {
100
+ animation: celeste-drawer-out-right 300ms var(--drawer-ease) forwards;
101
+ }
102
+ }
103
+
104
+ &[data-swipe-direction='left'] {
105
+ left: 0;
106
+ border-right: 1px solid var(--color-stroke-soft-200);
107
+
108
+ &[data-state='open'] {
109
+ animation: celeste-drawer-in-left var(--drawer-duration) var(--drawer-ease);
110
+ }
111
+
112
+ &[data-state='closed'] {
113
+ animation: celeste-drawer-out-left 300ms var(--drawer-ease) forwards;
114
+ }
115
+ }
116
+
117
+ &[data-swipe-direction='down'],
118
+ &[data-swipe-direction='up'] {
119
+ right: 0;
120
+ left: 0;
121
+ max-height: calc(100dvh - var(--spacing-48));
122
+ transform: translateY(calc(var(--drawer-snap-point-offset, 0%) + var(--drawer-swipe-movement-y, 0%)));
123
+ }
124
+
125
+ &[data-swipe-direction='down'] {
126
+ bottom: 0;
127
+ border-top: 1px solid var(--color-stroke-soft-200);
128
+ border-radius: var(--radius-20) var(--radius-20) 0 0;
129
+
130
+ &[data-state='open'] {
131
+ animation: celeste-drawer-in-down var(--drawer-duration) var(--drawer-ease);
132
+ }
133
+
134
+ &[data-state='closed'] {
135
+ animation: celeste-drawer-out-down 300ms var(--drawer-ease) forwards;
136
+ }
137
+ }
138
+
139
+ &[data-swipe-direction='up'] {
140
+ top: 0;
141
+ border-bottom: 1px solid var(--color-stroke-soft-200);
142
+ border-radius: 0 0 var(--radius-20) var(--radius-20);
143
+
144
+ &[data-state='open'] {
145
+ animation: celeste-drawer-in-up var(--drawer-duration) var(--drawer-ease);
146
+ }
147
+
148
+ &[data-state='closed'] {
149
+ animation: celeste-drawer-out-up 300ms var(--drawer-ease) forwards;
150
+ }
151
+ }
152
+ }
153
+
154
+ .celeste-drawer-handle {
155
+ display: none;
156
+ flex-shrink: 0;
157
+ align-self: center;
158
+ width: 32px;
159
+ height: 4px;
160
+ margin: var(--spacing-8) 0 0;
161
+ border-radius: var(--radius-full);
162
+ background-color: var(--color-bg-soft-200);
163
+ cursor: grab;
164
+ }
165
+
166
+ .celeste-drawer-content[data-swipe-direction='down'] .celeste-drawer-handle {
167
+ display: block;
168
+ }
169
+
170
+ .celeste-drawer-content[data-swipe-direction='up'] .celeste-drawer-handle {
171
+ display: block;
172
+ order: 1;
173
+ margin: 0 0 var(--spacing-8);
174
+ }
175
+
176
+ @media (prefers-reduced-motion: reduce) {
177
+ .celeste-drawer-overlay,
178
+ .celeste-drawer-content {
179
+ transition-duration: 0ms;
180
+ animation-duration: 1ms !important;
181
+ }
182
+ }
183
+
184
+ @keyframes celeste-drawer-fade-in {
185
+ from {
186
+ opacity: 0;
187
+ }
188
+ }
189
+
190
+ @keyframes celeste-drawer-fade-out {
191
+ to {
192
+ opacity: 0;
193
+ }
194
+ }
195
+
196
+ @keyframes celeste-drawer-in-right {
197
+ from {
198
+ transform: translateX(100%);
199
+ }
200
+ }
201
+
202
+ @keyframes celeste-drawer-out-right {
203
+ from {
204
+ transform: translateX(var(--drawer-swipe-movement-x, 0%));
205
+ }
206
+
207
+ to {
208
+ transform: translateX(100%);
209
+ }
210
+ }
211
+
212
+ @keyframes celeste-drawer-in-left {
213
+ from {
214
+ transform: translateX(-100%);
215
+ }
216
+ }
217
+
218
+ @keyframes celeste-drawer-out-left {
219
+ from {
220
+ transform: translateX(var(--drawer-swipe-movement-x, 0%));
221
+ }
222
+
223
+ to {
224
+ transform: translateX(-100%);
225
+ }
226
+ }
227
+
228
+ @keyframes celeste-drawer-in-down {
229
+ from {
230
+ transform: translateY(100%);
231
+ }
232
+ }
233
+
234
+ @keyframes celeste-drawer-out-down {
235
+ from {
236
+ transform: translateY(calc(var(--drawer-snap-point-offset, 0%) + var(--drawer-swipe-movement-y, 0%)));
237
+ }
238
+
239
+ to {
240
+ transform: translateY(100%);
241
+ }
242
+ }
243
+
244
+ @keyframes celeste-drawer-in-up {
245
+ from {
246
+ transform: translateY(-100%);
247
+ }
248
+ }
249
+
250
+ @keyframes celeste-drawer-out-up {
251
+ from {
252
+ transform: translateY(calc(var(--drawer-snap-point-offset, 0%) + var(--drawer-swipe-movement-y, 0%)));
253
+ }
254
+
255
+ to {
256
+ transform: translateY(-100%);
257
+ }
258
+ }
259
+ </style>
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import type { DrawerDescriptionProps as RekaDrawerDescriptionProps } from 'reka-ui';
3
+ import type { HTMLAttributes } from 'vue';
4
+ import { reactiveOmit } from '@vueuse/core';
5
+ import clsx from 'clsx';
6
+ import { DrawerDescription } from 'reka-ui';
7
+
8
+ export interface DrawerDescriptionProps extends RekaDrawerDescriptionProps {
9
+ class?: HTMLAttributes['class'];
10
+ }
11
+
12
+ const props = defineProps<DrawerDescriptionProps>();
13
+
14
+ const delegated = reactiveOmit(props, 'class');
15
+ </script>
16
+
17
+ <template>
18
+ <DrawerDescription :class="clsx('celeste-drawer-description', props.class)" v-bind="delegated">
19
+ <slot />
20
+ </DrawerDescription>
21
+ </template>
22
+
23
+ <style scoped>
24
+ .celeste-drawer-description {
25
+ margin: 0;
26
+ color: var(--color-text-sub-600);
27
+ font: var(--paragraph-sm);
28
+ }
29
+ </style>
@@ -0,0 +1,27 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue';
3
+ import clsx from 'clsx';
4
+
5
+ export interface DrawerFooterProps {
6
+ class?: HTMLAttributes['class'];
7
+ }
8
+
9
+ const props = defineProps<DrawerFooterProps>();
10
+ </script>
11
+
12
+ <template>
13
+ <div :class="clsx('celeste-drawer-footer', props.class)">
14
+ <slot />
15
+ </div>
16
+ </template>
17
+
18
+ <style scoped>
19
+ .celeste-drawer-footer {
20
+ display: flex;
21
+ flex-shrink: 0;
22
+ align-items: center;
23
+ padding: var(--spacing-20);
24
+ border-top: 1px solid var(--color-stroke-soft-200);
25
+ gap: var(--spacing-16);
26
+ }
27
+ </style>
@@ -0,0 +1,95 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue';
3
+ import clsx from 'clsx';
4
+ import { DrawerClose } from 'reka-ui';
5
+ import CompactButton from '@/components/button/compact-button.vue';
6
+ import DrawerDescription from './drawer-description.vue';
7
+ import DrawerTitle from './drawer-title.vue';
8
+
9
+ export interface DrawerHeaderProps {
10
+ title: string;
11
+ description?: string;
12
+ icon?: string;
13
+ dismissible?: boolean;
14
+ divider?: boolean;
15
+ class?: HTMLAttributes['class'];
16
+ }
17
+
18
+ const props = withDefaults(defineProps<DrawerHeaderProps>(), {
19
+ dismissible: true,
20
+ });
21
+ </script>
22
+
23
+ <template>
24
+ <div
25
+ :class="clsx('celeste-drawer-header', props.class)"
26
+ :data-size="description ? 'lg' : 'sm'"
27
+ :data-divider="divider"
28
+ >
29
+ <span v-if="icon" class="icon">
30
+ <i :class="icon" />
31
+ </span>
32
+ <div class="content">
33
+ <DrawerTitle>{{ title }}</DrawerTitle>
34
+ <DrawerDescription v-if="description">
35
+ {{ description }}
36
+ </DrawerDescription>
37
+ </div>
38
+ <slot name="actions" />
39
+ <DrawerClose v-if="dismissible" as-child>
40
+ <CompactButton
41
+ icon="i-celeste-close-line"
42
+ variant="ghost"
43
+ size="lg"
44
+ />
45
+ </DrawerClose>
46
+ </div>
47
+ </template>
48
+
49
+ <style scoped>
50
+ .celeste-drawer-header {
51
+ display: flex;
52
+ flex-shrink: 0;
53
+ align-items: center;
54
+ padding: var(--spacing-20);
55
+ gap: var(--spacing-12);
56
+
57
+ &[data-size='lg'] {
58
+ align-items: flex-start;
59
+ gap: var(--spacing-16);
60
+ }
61
+
62
+ &[data-divider='true'] {
63
+ border-bottom: 1px solid var(--color-stroke-soft-200);
64
+ }
65
+
66
+ .icon {
67
+ display: flex;
68
+ flex-shrink: 0;
69
+ align-items: center;
70
+ justify-content: center;
71
+ color: var(--color-text-sub-600);
72
+
73
+ i {
74
+ width: 24px;
75
+ height: 24px;
76
+ }
77
+ }
78
+
79
+ &[data-size='lg'] .icon {
80
+ padding: var(--spacing-12);
81
+ border: 1px solid var(--color-stroke-soft-200);
82
+ border-radius: var(--radius-full);
83
+ background-color: var(--color-bg-white-0);
84
+ box-shadow: var(--shadow-regular-xs);
85
+ }
86
+
87
+ .content {
88
+ display: flex;
89
+ flex: 1;
90
+ flex-direction: column;
91
+ min-width: 0;
92
+ gap: var(--spacing-4);
93
+ }
94
+ }
95
+ </style>
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import type { DrawerTitleProps as RekaDrawerTitleProps } from 'reka-ui';
3
+ import type { HTMLAttributes } from 'vue';
4
+ import { reactiveOmit } from '@vueuse/core';
5
+ import clsx from 'clsx';
6
+ import { DrawerTitle } from 'reka-ui';
7
+
8
+ export interface DrawerTitleProps extends RekaDrawerTitleProps {
9
+ class?: HTMLAttributes['class'];
10
+ }
11
+
12
+ const props = defineProps<DrawerTitleProps>();
13
+
14
+ const delegated = reactiveOmit(props, 'class');
15
+ </script>
16
+
17
+ <template>
18
+ <DrawerTitle :class="clsx('celeste-drawer-title', props.class)" v-bind="delegated">
19
+ <slot />
20
+ </DrawerTitle>
21
+ </template>
22
+
23
+ <style scoped>
24
+ .celeste-drawer-title {
25
+ margin: 0;
26
+ color: var(--color-text-strong-950);
27
+ font: var(--label-lg);
28
+ }
29
+ </style>
@@ -0,0 +1,14 @@
1
+ <script setup lang="ts">
2
+ import type { DrawerTriggerProps as RekaDrawerTriggerProps } from 'reka-ui';
3
+ import { DrawerTrigger } from 'reka-ui';
4
+
5
+ export interface DrawerTriggerProps extends RekaDrawerTriggerProps {}
6
+
7
+ const props = defineProps<DrawerTriggerProps>();
8
+ </script>
9
+
10
+ <template>
11
+ <DrawerTrigger v-bind="props">
12
+ <slot />
13
+ </DrawerTrigger>
14
+ </template>
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import type { DrawerRootEmits, DrawerRootProps } from 'reka-ui';
3
+ import { reactiveOmit } from '@vueuse/core';
4
+ import { DrawerRoot, useForwardPropsEmits } from 'reka-ui';
5
+
6
+ export type DrawerSide = 'right' | 'left' | 'bottom' | 'top';
7
+
8
+ export interface DrawerProps extends Omit<DrawerRootProps, 'swipeDirection'> {
9
+ side?: DrawerSide;
10
+ }
11
+
12
+ const props = withDefaults(defineProps<DrawerProps>(), {
13
+ side: 'right',
14
+ open: undefined,
15
+ modal: true,
16
+ });
17
+
18
+ const emits = defineEmits<DrawerRootEmits>();
19
+
20
+ const directions = { right: 'right', left: 'left', bottom: 'down', top: 'up' } as const;
21
+
22
+ const forwarded = useForwardPropsEmits(reactiveOmit(props, 'side'), emits);
23
+ </script>
24
+
25
+ <template>
26
+ <DrawerRoot v-bind="forwarded" :swipe-direction="directions[side]">
27
+ <slot />
28
+ </DrawerRoot>
29
+ </template>
@@ -0,0 +1,18 @@
1
+ export * from './drawer-body.vue';
2
+ export { default as DrawerBody } from './drawer-body.vue';
3
+ export * from './drawer-close.vue';
4
+ export { default as DrawerClose } from './drawer-close.vue';
5
+ export * from './drawer-content.vue';
6
+ export { default as DrawerContent } from './drawer-content.vue';
7
+ export * from './drawer-description.vue';
8
+ export { default as DrawerDescription } from './drawer-description.vue';
9
+ export * from './drawer-footer.vue';
10
+ export { default as DrawerFooter } from './drawer-footer.vue';
11
+ export * from './drawer-header.vue';
12
+ export { default as DrawerHeader } from './drawer-header.vue';
13
+ export * from './drawer-title.vue';
14
+ export { default as DrawerTitle } from './drawer-title.vue';
15
+ export * from './drawer-trigger.vue';
16
+ export { default as DrawerTrigger } from './drawer-trigger.vue';
17
+ export * from './drawer.vue';
18
+ export { default as Drawer } from './drawer.vue';