@hyunsdev/ui 0.1.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 (340) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +89 -0
  3. package/SKILL.md +38 -0
  4. package/dist/WindowContext-DybYtZJa.d.ts +50 -0
  5. package/dist/_styles-BbTx89aX.d.ts +3 -0
  6. package/dist/chunk-23KUNTRD.js +49 -0
  7. package/dist/chunk-23KUNTRD.js.map +1 -0
  8. package/dist/chunk-3RTSANKB.js +51 -0
  9. package/dist/chunk-3RTSANKB.js.map +1 -0
  10. package/dist/chunk-4QIWBOF4.js +129 -0
  11. package/dist/chunk-4QIWBOF4.js.map +1 -0
  12. package/dist/chunk-5JCWC7IU.js +293 -0
  13. package/dist/chunk-5JCWC7IU.js.map +1 -0
  14. package/dist/chunk-6ANDNGHD.js +33 -0
  15. package/dist/chunk-6ANDNGHD.js.map +1 -0
  16. package/dist/chunk-7W7QZHEZ.js +42 -0
  17. package/dist/chunk-7W7QZHEZ.js.map +1 -0
  18. package/dist/chunk-BHO4WT2N.js +51 -0
  19. package/dist/chunk-BHO4WT2N.js.map +1 -0
  20. package/dist/chunk-BI3KKBIC.js +11 -0
  21. package/dist/chunk-BI3KKBIC.js.map +1 -0
  22. package/dist/chunk-D3SP7GL3.js +55 -0
  23. package/dist/chunk-D3SP7GL3.js.map +1 -0
  24. package/dist/chunk-D7W4RSQX.js +115 -0
  25. package/dist/chunk-D7W4RSQX.js.map +1 -0
  26. package/dist/chunk-DN2AEEA2.js +11 -0
  27. package/dist/chunk-DN2AEEA2.js.map +1 -0
  28. package/dist/chunk-ETTKFCO6.js +84 -0
  29. package/dist/chunk-ETTKFCO6.js.map +1 -0
  30. package/dist/chunk-GJT7TDBS.js +66 -0
  31. package/dist/chunk-GJT7TDBS.js.map +1 -0
  32. package/dist/chunk-HZT6RQYZ.js +109 -0
  33. package/dist/chunk-HZT6RQYZ.js.map +1 -0
  34. package/dist/chunk-JB2QZV7K.js +60 -0
  35. package/dist/chunk-JB2QZV7K.js.map +1 -0
  36. package/dist/chunk-KJJB2PVC.js +21 -0
  37. package/dist/chunk-KJJB2PVC.js.map +1 -0
  38. package/dist/chunk-NE3IVPMO.js +31 -0
  39. package/dist/chunk-NE3IVPMO.js.map +1 -0
  40. package/dist/chunk-O2BG2KSY.js +23 -0
  41. package/dist/chunk-O2BG2KSY.js.map +1 -0
  42. package/dist/chunk-OUFGNJ3V.js +1726 -0
  43. package/dist/chunk-OUFGNJ3V.js.map +1 -0
  44. package/dist/chunk-PLZMCJSL.js +351 -0
  45. package/dist/chunk-PLZMCJSL.js.map +1 -0
  46. package/dist/chunk-POG5DZBT.js +104 -0
  47. package/dist/chunk-POG5DZBT.js.map +1 -0
  48. package/dist/chunk-SECZM6JE.js +170 -0
  49. package/dist/chunk-SECZM6JE.js.map +1 -0
  50. package/dist/chunk-T64WPXSC.js +48 -0
  51. package/dist/chunk-T64WPXSC.js.map +1 -0
  52. package/dist/chunk-TU5CYBB4.js +90 -0
  53. package/dist/chunk-TU5CYBB4.js.map +1 -0
  54. package/dist/chunk-UVAI2U6X.js +153 -0
  55. package/dist/chunk-UVAI2U6X.js.map +1 -0
  56. package/dist/chunk-UXCBLYG6.js +142 -0
  57. package/dist/chunk-UXCBLYG6.js.map +1 -0
  58. package/dist/chunk-VUR4MQMH.js +53 -0
  59. package/dist/chunk-VUR4MQMH.js.map +1 -0
  60. package/dist/chunk-WIEKNG4S.js +26 -0
  61. package/dist/chunk-WIEKNG4S.js.map +1 -0
  62. package/dist/chunk-WIZ4OLOB.js +23 -0
  63. package/dist/chunk-WIZ4OLOB.js.map +1 -0
  64. package/dist/chunk-WJRJBMFN.js +21 -0
  65. package/dist/chunk-WJRJBMFN.js.map +1 -0
  66. package/dist/chunk-YUPLJP3F.js +33 -0
  67. package/dist/chunk-YUPLJP3F.js.map +1 -0
  68. package/dist/chunk-Z7ITPSUF.js +184 -0
  69. package/dist/chunk-Z7ITPSUF.js.map +1 -0
  70. package/dist/chunk-ZC76ALSI.js +75 -0
  71. package/dist/chunk-ZC76ALSI.js.map +1 -0
  72. package/dist/code-block-core-xkE94Rk5.d.ts +30 -0
  73. package/dist/components/accordion.d.ts +9 -0
  74. package/dist/components/accordion.js +98 -0
  75. package/dist/components/accordion.js.map +1 -0
  76. package/dist/components/alert-dialog.d.ts +26 -0
  77. package/dist/components/alert-dialog.js +341 -0
  78. package/dist/components/alert-dialog.js.map +1 -0
  79. package/dist/components/alert.d.ts +13 -0
  80. package/dist/components/alert.js +76 -0
  81. package/dist/components/alert.js.map +1 -0
  82. package/dist/components/aspect-ratio.d.ts +6 -0
  83. package/dist/components/aspect-ratio.js +12 -0
  84. package/dist/components/aspect-ratio.js.map +1 -0
  85. package/dist/components/avatar.d.ts +13 -0
  86. package/dist/components/avatar.js +19 -0
  87. package/dist/components/avatar.js.map +1 -0
  88. package/dist/components/badge.d.ts +12 -0
  89. package/dist/components/badge.js +11 -0
  90. package/dist/components/badge.js.map +1 -0
  91. package/dist/components/breadcrumb.d.ts +13 -0
  92. package/dist/components/breadcrumb.js +102 -0
  93. package/dist/components/breadcrumb.js.map +1 -0
  94. package/dist/components/button-group.d.ts +16 -0
  95. package/dist/components/button-group.js +15 -0
  96. package/dist/components/button-group.js.map +1 -0
  97. package/dist/components/button.d.ts +14 -0
  98. package/dist/components/button.js +11 -0
  99. package/dist/components/button.js.map +1 -0
  100. package/dist/components/calendar.d.ts +14 -0
  101. package/dist/components/calendar.js +13 -0
  102. package/dist/components/calendar.js.map +1 -0
  103. package/dist/components/card.d.ts +13 -0
  104. package/dist/components/card.js +21 -0
  105. package/dist/components/card.js.map +1 -0
  106. package/dist/components/carousel.d.ts +32 -0
  107. package/dist/components/carousel.js +196 -0
  108. package/dist/components/carousel.js.map +1 -0
  109. package/dist/components/chart.d.ts +46 -0
  110. package/dist/components/chart.js +254 -0
  111. package/dist/components/chart.js.map +1 -0
  112. package/dist/components/checkbox.d.ts +6 -0
  113. package/dist/components/checkbox.js +41 -0
  114. package/dist/components/checkbox.js.map +1 -0
  115. package/dist/components/code-block-core.d.ts +3 -0
  116. package/dist/components/code-block-core.js +13 -0
  117. package/dist/components/code-block-core.js.map +1 -0
  118. package/dist/components/code-block-custom.d.ts +20 -0
  119. package/dist/components/code-block-custom.js +16 -0
  120. package/dist/components/code-block-custom.js.map +1 -0
  121. package/dist/components/code-block-shiki.d.ts +13 -0
  122. package/dist/components/code-block-shiki.js +15 -0
  123. package/dist/components/code-block-shiki.js.map +1 -0
  124. package/dist/components/code-block.d.ts +5 -0
  125. package/dist/components/code-block.js +14 -0
  126. package/dist/components/code-block.js.map +1 -0
  127. package/dist/components/collapsible.d.ts +8 -0
  128. package/dist/components/collapsible.js +24 -0
  129. package/dist/components/collapsible.js.map +1 -0
  130. package/dist/components/collection.d.ts +63 -0
  131. package/dist/components/collection.js +598 -0
  132. package/dist/components/collection.js.map +1 -0
  133. package/dist/components/color-dot.d.ts +19 -0
  134. package/dist/components/color-dot.js +41 -0
  135. package/dist/components/color-dot.js.map +1 -0
  136. package/dist/components/color-picker.d.ts +12 -0
  137. package/dist/components/color-picker.js +142 -0
  138. package/dist/components/color-picker.js.map +1 -0
  139. package/dist/components/combobox.d.ts +74 -0
  140. package/dist/components/combobox.js +610 -0
  141. package/dist/components/combobox.js.map +1 -0
  142. package/dist/components/command.d.ts +21 -0
  143. package/dist/components/command.js +31 -0
  144. package/dist/components/command.js.map +1 -0
  145. package/dist/components/date-picker.d.ts +43 -0
  146. package/dist/components/date-picker.js +235 -0
  147. package/dist/components/date-picker.js.map +1 -0
  148. package/dist/components/dialog.d.ts +25 -0
  149. package/dist/components/dialog.js +31 -0
  150. package/dist/components/dialog.js.map +1 -0
  151. package/dist/components/drawer.d.ts +15 -0
  152. package/dist/components/drawer.js +124 -0
  153. package/dist/components/drawer.js.map +1 -0
  154. package/dist/components/dropdown-menu.d.ts +34 -0
  155. package/dist/components/dropdown-menu.js +248 -0
  156. package/dist/components/dropdown-menu.js.map +1 -0
  157. package/dist/components/empty.d.ts +15 -0
  158. package/dist/components/empty.js +104 -0
  159. package/dist/components/empty.js.map +1 -0
  160. package/dist/components/field.d.ts +29 -0
  161. package/dist/components/field.js +214 -0
  162. package/dist/components/field.js.map +1 -0
  163. package/dist/components/format-bytes.d.ts +12 -0
  164. package/dist/components/format-bytes.js +30 -0
  165. package/dist/components/format-bytes.js.map +1 -0
  166. package/dist/components/format-number.d.ts +12 -0
  167. package/dist/components/format-number.js +30 -0
  168. package/dist/components/format-number.js.map +1 -0
  169. package/dist/components/gauge.d.ts +11 -0
  170. package/dist/components/gauge.js +82 -0
  171. package/dist/components/gauge.js.map +1 -0
  172. package/dist/components/hover-card.d.ts +8 -0
  173. package/dist/components/hover-card.js +45 -0
  174. package/dist/components/hover-card.js.map +1 -0
  175. package/dist/components/input-group.d.ts +24 -0
  176. package/dist/components/input-group.js +23 -0
  177. package/dist/components/input-group.js.map +1 -0
  178. package/dist/components/input-otp.d.ts +20 -0
  179. package/dist/components/input-otp.js +95 -0
  180. package/dist/components/input-otp.js.map +1 -0
  181. package/dist/components/input.d.ts +9 -0
  182. package/dist/components/input.js +9 -0
  183. package/dist/components/input.js.map +1 -0
  184. package/dist/components/item.d.ts +27 -0
  185. package/dist/components/item.js +182 -0
  186. package/dist/components/item.js.map +1 -0
  187. package/dist/components/kbd.d.ts +6 -0
  188. package/dist/components/kbd.js +34 -0
  189. package/dist/components/kbd.js.map +1 -0
  190. package/dist/components/label.d.ts +6 -0
  191. package/dist/components/label.js +9 -0
  192. package/dist/components/label.js.map +1 -0
  193. package/dist/components/loading-bar.d.ts +8 -0
  194. package/dist/components/loading-bar.js +127 -0
  195. package/dist/components/loading-bar.js.map +1 -0
  196. package/dist/components/loading-dots.d.ts +5 -0
  197. package/dist/components/loading-dots.js +45 -0
  198. package/dist/components/loading-dots.js.map +1 -0
  199. package/dist/components/main-provider.d.ts +7 -0
  200. package/dist/components/main-provider.js +12 -0
  201. package/dist/components/main-provider.js.map +1 -0
  202. package/dist/components/mark.d.ts +11 -0
  203. package/dist/components/mark.js +44 -0
  204. package/dist/components/mark.js.map +1 -0
  205. package/dist/components/pagination.d.ts +21 -0
  206. package/dist/components/pagination.js +114 -0
  207. package/dist/components/pagination.js.map +1 -0
  208. package/dist/components/popover.d.ts +12 -0
  209. package/dist/components/popover.js +22 -0
  210. package/dist/components/popover.js.map +1 -0
  211. package/dist/components/prev-next-navigation.d.ts +15 -0
  212. package/dist/components/prev-next-navigation.js +85 -0
  213. package/dist/components/prev-next-navigation.js.map +1 -0
  214. package/dist/components/progress.d.ts +6 -0
  215. package/dist/components/progress.js +38 -0
  216. package/dist/components/progress.js.map +1 -0
  217. package/dist/components/radio-group.d.ts +7 -0
  218. package/dist/components/radio-group.js +57 -0
  219. package/dist/components/radio-group.js.map +1 -0
  220. package/dist/components/relative-time.d.ts +16 -0
  221. package/dist/components/relative-time.js +75 -0
  222. package/dist/components/relative-time.js.map +1 -0
  223. package/dist/components/resizable.d.ts +10 -0
  224. package/dist/components/resizable.js +45 -0
  225. package/dist/components/resizable.js.map +1 -0
  226. package/dist/components/scroll-area.d.ts +7 -0
  227. package/dist/components/scroll-area.js +11 -0
  228. package/dist/components/scroll-area.js.map +1 -0
  229. package/dist/components/select.d.ts +20 -0
  230. package/dist/components/select.js +189 -0
  231. package/dist/components/select.js.map +1 -0
  232. package/dist/components/separator.d.ts +6 -0
  233. package/dist/components/separator.js +9 -0
  234. package/dist/components/separator.js.map +1 -0
  235. package/dist/components/sheet.d.ts +16 -0
  236. package/dist/components/sheet.js +25 -0
  237. package/dist/components/sheet.js.map +1 -0
  238. package/dist/components/show-more.d.ts +15 -0
  239. package/dist/components/show-more.js +79 -0
  240. package/dist/components/show-more.js.map +1 -0
  241. package/dist/components/skeleton.d.ts +5 -0
  242. package/dist/components/skeleton.js +8 -0
  243. package/dist/components/skeleton.js.map +1 -0
  244. package/dist/components/slider.d.ts +6 -0
  245. package/dist/components/slider.js +65 -0
  246. package/dist/components/slider.js.map +1 -0
  247. package/dist/components/snippet.d.ts +13 -0
  248. package/dist/components/snippet.js +135 -0
  249. package/dist/components/snippet.js.map +1 -0
  250. package/dist/components/sonner.d.ts +6 -0
  251. package/dist/components/sonner.js +10 -0
  252. package/dist/components/sonner.js.map +1 -0
  253. package/dist/components/spinner.d.ts +5 -0
  254. package/dist/components/spinner.js +8 -0
  255. package/dist/components/spinner.js.map +1 -0
  256. package/dist/components/stat.d.ts +17 -0
  257. package/dist/components/stat.js +71 -0
  258. package/dist/components/stat.js.map +1 -0
  259. package/dist/components/steps.d.ts +17 -0
  260. package/dist/components/steps.js +133 -0
  261. package/dist/components/steps.js.map +1 -0
  262. package/dist/components/switch.d.ts +8 -0
  263. package/dist/components/switch.js +44 -0
  264. package/dist/components/switch.js.map +1 -0
  265. package/dist/components/table.d.ts +12 -0
  266. package/dist/components/table.js +101 -0
  267. package/dist/components/table.js.map +1 -0
  268. package/dist/components/tabs.d.ts +14 -0
  269. package/dist/components/tabs.js +88 -0
  270. package/dist/components/tabs.js.map +1 -0
  271. package/dist/components/textarea.d.ts +5 -0
  272. package/dist/components/textarea.js +9 -0
  273. package/dist/components/textarea.js.map +1 -0
  274. package/dist/components/theme-provider.d.ts +10 -0
  275. package/dist/components/theme-provider.js +14 -0
  276. package/dist/components/theme-provider.js.map +1 -0
  277. package/dist/components/time-picker.d.ts +17 -0
  278. package/dist/components/time-picker.js +219 -0
  279. package/dist/components/time-picker.js.map +1 -0
  280. package/dist/components/timeline.d.ts +17 -0
  281. package/dist/components/timeline.js +138 -0
  282. package/dist/components/timeline.js.map +1 -0
  283. package/dist/components/toggle-group.d.ts +14 -0
  284. package/dist/components/toggle-group.js +82 -0
  285. package/dist/components/toggle-group.js.map +1 -0
  286. package/dist/components/toggle.d.ts +12 -0
  287. package/dist/components/toggle.js +11 -0
  288. package/dist/components/toggle.js.map +1 -0
  289. package/dist/components/tooltip.d.ts +9 -0
  290. package/dist/components/tooltip.js +15 -0
  291. package/dist/components/tooltip.js.map +1 -0
  292. package/dist/components/typography.d.ts +17 -0
  293. package/dist/components/typography.js +91 -0
  294. package/dist/components/typography.js.map +1 -0
  295. package/dist/hooks/use-mobile.d.ts +3 -0
  296. package/dist/hooks/use-mobile.js +7 -0
  297. package/dist/hooks/use-mobile.js.map +1 -0
  298. package/dist/hooks/use-theme.d.ts +3 -0
  299. package/dist/hooks/use-theme.js +8 -0
  300. package/dist/hooks/use-theme.js.map +1 -0
  301. package/dist/index.d.ts +7 -0
  302. package/dist/index.js +27 -0
  303. package/dist/index.js.map +1 -0
  304. package/dist/layouts/center/index.d.ts +18 -0
  305. package/dist/layouts/center/index.js +73 -0
  306. package/dist/layouts/center/index.js.map +1 -0
  307. package/dist/layouts/chat/index.d.ts +42 -0
  308. package/dist/layouts/chat/index.js +191 -0
  309. package/dist/layouts/chat/index.js.map +1 -0
  310. package/dist/layouts/command/index.d.ts +2 -0
  311. package/dist/layouts/command/index.js +1 -0
  312. package/dist/layouts/command/index.js.map +1 -0
  313. package/dist/layouts/panel/index.d.ts +55 -0
  314. package/dist/layouts/panel/index.js +513 -0
  315. package/dist/layouts/panel/index.js.map +1 -0
  316. package/dist/layouts/presentation/index.d.ts +14 -0
  317. package/dist/layouts/presentation/index.js +100 -0
  318. package/dist/layouts/presentation/index.js.map +1 -0
  319. package/dist/layouts/site/index.d.ts +17 -0
  320. package/dist/layouts/site/index.js +82 -0
  321. package/dist/layouts/site/index.js.map +1 -0
  322. package/dist/layouts/window/index.d.ts +223 -0
  323. package/dist/layouts/window/index.js +127 -0
  324. package/dist/layouts/window/index.js.map +1 -0
  325. package/dist/layouts/workbench/index.d.ts +281 -0
  326. package/dist/layouts/workbench/index.js +2457 -0
  327. package/dist/layouts/workbench/index.js.map +1 -0
  328. package/dist/lib/format.d.ts +15 -0
  329. package/dist/lib/format.js +9 -0
  330. package/dist/lib/format.js.map +1 -0
  331. package/dist/lib/theme.d.ts +22 -0
  332. package/dist/lib/theme.js +25 -0
  333. package/dist/lib/theme.js.map +1 -0
  334. package/dist/lib/utils.d.ts +5 -0
  335. package/dist/lib/utils.js +7 -0
  336. package/dist/lib/utils.js.map +1 -0
  337. package/dist/styles/fonts.css +1 -0
  338. package/dist/styles/globals.css +717 -0
  339. package/dist/styles/tokens.css +693 -0
  340. package/package.json +137 -0
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import { Command as Command$1 } from 'cmdk';
3
+ import { Dialog } from './dialog.js';
4
+ import '@radix-ui/react-dialog';
5
+
6
+ declare function Command({ className, ...props }: React.ComponentProps<typeof Command$1>): React.JSX.Element;
7
+ declare function CommandDialog({ title, description, children, className, showCloseButton, ...props }: React.ComponentProps<typeof Dialog> & {
8
+ title?: string;
9
+ description?: string;
10
+ className?: string;
11
+ showCloseButton?: boolean;
12
+ }): React.JSX.Element;
13
+ declare function CommandInput({ className, ...props }: React.ComponentProps<typeof Command$1.Input>): React.JSX.Element;
14
+ declare function CommandList({ className, ...props }: React.ComponentProps<typeof Command$1.List>): React.JSX.Element;
15
+ declare function CommandEmpty({ className, ...props }: React.ComponentProps<typeof Command$1.Empty>): React.JSX.Element;
16
+ declare function CommandGroup({ className, ...props }: React.ComponentProps<typeof Command$1.Group>): React.JSX.Element;
17
+ declare function CommandSeparator({ className, ...props }: React.ComponentProps<typeof Command$1.Separator>): React.JSX.Element;
18
+ declare function CommandItem({ className, children, ...props }: React.ComponentProps<typeof Command$1.Item>): React.JSX.Element;
19
+ declare function CommandShortcut({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
20
+
21
+ export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
@@ -0,0 +1,31 @@
1
+ "use client";
2
+ import {
3
+ Command,
4
+ CommandDialog,
5
+ CommandEmpty,
6
+ CommandGroup,
7
+ CommandInput,
8
+ CommandItem,
9
+ CommandList,
10
+ CommandSeparator,
11
+ CommandShortcut
12
+ } from "../chunk-Z7ITPSUF.js";
13
+ import "../chunk-PLZMCJSL.js";
14
+ import "../chunk-UVAI2U6X.js";
15
+ import "../chunk-NE3IVPMO.js";
16
+ import "../chunk-YUPLJP3F.js";
17
+ import "../chunk-TU5CYBB4.js";
18
+ import "../chunk-O2BG2KSY.js";
19
+ import "../chunk-DN2AEEA2.js";
20
+ export {
21
+ Command,
22
+ CommandDialog,
23
+ CommandEmpty,
24
+ CommandGroup,
25
+ CommandInput,
26
+ CommandItem,
27
+ CommandList,
28
+ CommandSeparator,
29
+ CommandShortcut
30
+ };
31
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,43 @@
1
+ import * as React from 'react';
2
+ import { Locale } from 'date-fns/locale';
3
+ import { Button } from './button.js';
4
+ import { PopoverContent } from './popover.js';
5
+ import { PropsBase, DateRange, PropsRange } from 'react-day-picker';
6
+ import 'class-variance-authority/types';
7
+ import 'class-variance-authority';
8
+ import '@radix-ui/react-popover';
9
+
10
+ type CalendarBaseProps = Omit<PropsBase, "defaultMonth" | "locale" | "mode" | "required"> & {
11
+ buttonVariant?: React.ComponentProps<typeof Button>["variant"];
12
+ defaultMonth?: Date | undefined;
13
+ };
14
+ type DatePickerCalendarProps = CalendarBaseProps;
15
+ type DateRangePickerCalendarProps = CalendarBaseProps & Pick<PropsRange, "excludeDisabled" | "max" | "min" | "resetOnSelect">;
16
+ type DatePickerTriggerProps = Omit<React.ComponentProps<typeof Button>, "children">;
17
+ type DatePickerSharedProps = {
18
+ open?: boolean | undefined;
19
+ defaultOpen?: boolean | undefined;
20
+ onOpenChange?: (open: boolean) => void;
21
+ locale?: Locale | undefined;
22
+ placeholder?: React.ReactNode | undefined;
23
+ triggerProps?: DatePickerTriggerProps | undefined;
24
+ popoverContentProps?: React.ComponentProps<typeof PopoverContent> | undefined;
25
+ };
26
+ type DatePickerProps = DatePickerSharedProps & {
27
+ value?: Date | undefined;
28
+ defaultValue?: Date | undefined;
29
+ onValueChange?: (date: Date | undefined) => void;
30
+ formatValue?: (date: Date, locale?: Locale) => React.ReactNode;
31
+ calendarProps?: DatePickerCalendarProps | undefined;
32
+ };
33
+ type DateRangePickerProps = DatePickerSharedProps & {
34
+ value?: DateRange | undefined;
35
+ defaultValue?: DateRange | undefined;
36
+ onValueChange?: (range: DateRange | undefined) => void;
37
+ formatValue?: (range: DateRange, locale?: Locale) => React.ReactNode;
38
+ calendarProps?: DateRangePickerCalendarProps | undefined;
39
+ };
40
+ declare function DatePicker(props: DatePickerProps): React.JSX.Element;
41
+ declare function DateRangePicker(props: DateRangePickerProps): React.JSX.Element;
42
+
43
+ export { DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps };
@@ -0,0 +1,235 @@
1
+ "use client";
2
+ import {
3
+ Popover,
4
+ PopoverContent,
5
+ PopoverTrigger
6
+ } from "../chunk-ZC76ALSI.js";
7
+ import {
8
+ Calendar
9
+ } from "../chunk-SECZM6JE.js";
10
+ import {
11
+ Button
12
+ } from "../chunk-TU5CYBB4.js";
13
+ import "../chunk-O2BG2KSY.js";
14
+ import {
15
+ cn
16
+ } from "../chunk-DN2AEEA2.js";
17
+
18
+ // src/components/date-picker.tsx
19
+ import * as React from "react";
20
+ import { format } from "date-fns";
21
+ import { ko } from "date-fns/locale";
22
+ import { CalendarIcon } from "lucide-react";
23
+ import { jsx, jsxs } from "react/jsx-runtime";
24
+ function useControllableState({
25
+ controlled,
26
+ defaultValue,
27
+ onChange,
28
+ value
29
+ }) {
30
+ const [internalValue, setInternalValue] = React.useState(defaultValue);
31
+ const currentValue = controlled ? value : internalValue;
32
+ const setValue = React.useCallback(
33
+ (nextValue) => {
34
+ if (!controlled) {
35
+ setInternalValue(nextValue);
36
+ }
37
+ onChange?.(nextValue);
38
+ },
39
+ [controlled, onChange]
40
+ );
41
+ return [currentValue, setValue];
42
+ }
43
+ function formatDateValue(date, locale) {
44
+ return format(date, "PPP", locale !== void 0 ? { locale } : void 0);
45
+ }
46
+ function formatDateRangeValue(range, locale) {
47
+ if (!range.from) {
48
+ return "";
49
+ }
50
+ if (!range.to) {
51
+ return format(range.from, "PPP", locale !== void 0 ? { locale } : void 0);
52
+ }
53
+ const formatOptions = locale !== void 0 ? { locale } : void 0;
54
+ return `${format(range.from, "PPP", formatOptions)} - ${format(range.to, "PPP", formatOptions)}`;
55
+ }
56
+ function omitDefaultMonth(value) {
57
+ const { defaultMonth, ...props } = value;
58
+ void defaultMonth;
59
+ return props;
60
+ }
61
+ function DatePicker(props) {
62
+ const {
63
+ calendarProps,
64
+ defaultOpen = false,
65
+ defaultValue,
66
+ formatValue = formatDateValue,
67
+ locale = ko,
68
+ onOpenChange,
69
+ onValueChange,
70
+ open,
71
+ placeholder = "\uB0A0\uC9DC \uC120\uD0DD",
72
+ popoverContentProps,
73
+ triggerProps,
74
+ value
75
+ } = props;
76
+ const [selectedDate, setSelectedDate] = useControllableState({
77
+ controlled: "value" in props,
78
+ defaultValue,
79
+ onChange: onValueChange,
80
+ value
81
+ });
82
+ const [isOpen, setIsOpen] = useControllableState({
83
+ controlled: open !== void 0,
84
+ defaultValue: defaultOpen,
85
+ onChange: onOpenChange,
86
+ value: open ?? defaultOpen
87
+ });
88
+ const {
89
+ className: triggerClassName,
90
+ type = "button",
91
+ variant = "outline",
92
+ ...buttonProps
93
+ } = triggerProps ?? {};
94
+ const {
95
+ align = "start",
96
+ className: popoverContentClassName,
97
+ ...contentProps
98
+ } = popoverContentProps ?? {};
99
+ const defaultMonth = calendarProps?.defaultMonth;
100
+ const calendarPropsRest = calendarProps === void 0 ? {} : omitDefaultMonth(calendarProps);
101
+ const resolvedDefaultMonth = defaultMonth ?? selectedDate;
102
+ return /* @__PURE__ */ jsxs(Popover, { open: isOpen, onOpenChange: setIsOpen, children: [
103
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
104
+ Button,
105
+ {
106
+ type,
107
+ variant,
108
+ "data-empty": !selectedDate,
109
+ className: cn(
110
+ "data-[empty=true]:text-text-muted justify-start text-left font-normal",
111
+ triggerClassName
112
+ ),
113
+ ...buttonProps,
114
+ children: [
115
+ /* @__PURE__ */ jsx(CalendarIcon, {}),
116
+ selectedDate ? formatValue(selectedDate, locale) : /* @__PURE__ */ jsx("span", { children: placeholder })
117
+ ]
118
+ }
119
+ ) }),
120
+ /* @__PURE__ */ jsx(
121
+ PopoverContent,
122
+ {
123
+ align,
124
+ className: cn("w-auto overflow-hidden p-0", popoverContentClassName),
125
+ ...contentProps,
126
+ children: /* @__PURE__ */ jsx(
127
+ Calendar,
128
+ {
129
+ mode: "single",
130
+ locale,
131
+ ...selectedDate !== void 0 ? { selected: selectedDate } : {},
132
+ ...resolvedDefaultMonth !== void 0 ? { defaultMonth: resolvedDefaultMonth } : {},
133
+ onSelect: (nextDate) => {
134
+ setSelectedDate(nextDate);
135
+ setIsOpen(false);
136
+ },
137
+ ...calendarPropsRest
138
+ }
139
+ )
140
+ }
141
+ )
142
+ ] });
143
+ }
144
+ function DateRangePicker(props) {
145
+ const {
146
+ calendarProps,
147
+ defaultOpen = false,
148
+ defaultValue,
149
+ formatValue = formatDateRangeValue,
150
+ locale = ko,
151
+ onOpenChange,
152
+ onValueChange,
153
+ open,
154
+ placeholder = "\uB0A0\uC9DC \uC120\uD0DD",
155
+ popoverContentProps,
156
+ triggerProps,
157
+ value
158
+ } = props;
159
+ const [selectedRange, setSelectedRange] = useControllableState({
160
+ controlled: "value" in props,
161
+ defaultValue,
162
+ onChange: onValueChange,
163
+ value
164
+ });
165
+ const [isOpen, setIsOpen] = useControllableState({
166
+ controlled: open !== void 0,
167
+ defaultValue: defaultOpen,
168
+ onChange: onOpenChange,
169
+ value: open ?? defaultOpen
170
+ });
171
+ const {
172
+ className: triggerClassName,
173
+ type = "button",
174
+ variant = "outline",
175
+ ...buttonProps
176
+ } = triggerProps ?? {};
177
+ const {
178
+ align = "start",
179
+ className: popoverContentClassName,
180
+ ...contentProps
181
+ } = popoverContentProps ?? {};
182
+ const defaultMonth = calendarProps?.defaultMonth;
183
+ const calendarPropsRest = calendarProps === void 0 ? {} : omitDefaultMonth(calendarProps);
184
+ const resolvedDefaultMonth = defaultMonth ?? selectedRange?.from;
185
+ const hasSelectedRange = selectedRange?.from !== void 0;
186
+ const selectedRangeLabel = selectedRange?.from ? formatValue(selectedRange, locale) : null;
187
+ return /* @__PURE__ */ jsxs(Popover, { open: isOpen, onOpenChange: setIsOpen, children: [
188
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
189
+ Button,
190
+ {
191
+ type,
192
+ variant,
193
+ "data-empty": !hasSelectedRange,
194
+ className: cn(
195
+ "data-[empty=true]:text-text-muted justify-start text-left font-normal",
196
+ triggerClassName
197
+ ),
198
+ ...buttonProps,
199
+ children: [
200
+ /* @__PURE__ */ jsx(CalendarIcon, {}),
201
+ selectedRangeLabel ?? /* @__PURE__ */ jsx("span", { children: placeholder })
202
+ ]
203
+ }
204
+ ) }),
205
+ /* @__PURE__ */ jsx(
206
+ PopoverContent,
207
+ {
208
+ align,
209
+ className: cn("w-auto overflow-hidden p-0", popoverContentClassName),
210
+ ...contentProps,
211
+ children: /* @__PURE__ */ jsx(
212
+ Calendar,
213
+ {
214
+ mode: "range",
215
+ locale,
216
+ ...selectedRange !== void 0 ? { selected: selectedRange } : {},
217
+ ...resolvedDefaultMonth !== void 0 ? { defaultMonth: resolvedDefaultMonth } : {},
218
+ onSelect: (nextRange) => {
219
+ setSelectedRange(nextRange);
220
+ if (nextRange?.from && nextRange.to) {
221
+ setIsOpen(false);
222
+ }
223
+ },
224
+ ...calendarPropsRest
225
+ }
226
+ )
227
+ }
228
+ )
229
+ ] });
230
+ }
231
+ export {
232
+ DatePicker,
233
+ DateRangePicker
234
+ };
235
+ //# sourceMappingURL=date-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/date-picker.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { format } from \"date-fns\"\nimport { ko, type Locale as DateFnsLocale } from \"date-fns/locale\"\nimport { CalendarIcon } from \"lucide-react\"\n\nimport { cn } from \"@hyunsdev/ui/lib/utils\"\n\nimport { Button } from \"./button\"\nimport { Calendar } from \"./calendar\"\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover\"\n\nimport type { DateRange, PropsBase, PropsRange } from \"react-day-picker\"\n\ntype CalendarBaseProps = Omit<PropsBase, \"defaultMonth\" | \"locale\" | \"mode\" | \"required\"> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"]\n defaultMonth?: Date | undefined\n}\n\ntype DatePickerCalendarProps = CalendarBaseProps\ntype DateRangePickerCalendarProps = CalendarBaseProps &\n Pick<PropsRange, \"excludeDisabled\" | \"max\" | \"min\" | \"resetOnSelect\">\n\ntype DatePickerTriggerProps = Omit<React.ComponentProps<typeof Button>, \"children\">\n\ntype DatePickerSharedProps = {\n open?: boolean | undefined\n defaultOpen?: boolean | undefined\n onOpenChange?: (open: boolean) => void\n locale?: DateFnsLocale | undefined\n placeholder?: React.ReactNode | undefined\n triggerProps?: DatePickerTriggerProps | undefined\n popoverContentProps?: React.ComponentProps<typeof PopoverContent> | undefined\n}\n\ntype DatePickerProps = DatePickerSharedProps & {\n value?: Date | undefined\n defaultValue?: Date | undefined\n onValueChange?: (date: Date | undefined) => void\n formatValue?: (date: Date, locale?: DateFnsLocale) => React.ReactNode\n calendarProps?: DatePickerCalendarProps | undefined\n}\n\ntype DateRangePickerProps = DatePickerSharedProps & {\n value?: DateRange | undefined\n defaultValue?: DateRange | undefined\n onValueChange?: (range: DateRange | undefined) => void\n formatValue?: (range: DateRange, locale?: DateFnsLocale) => React.ReactNode\n calendarProps?: DateRangePickerCalendarProps | undefined\n}\n\nfunction useControllableState<T>({\n controlled,\n defaultValue,\n onChange,\n value,\n}: {\n controlled: boolean\n defaultValue: T\n onChange?: ((value: T) => void) | undefined\n value: T\n}) {\n const [internalValue, setInternalValue] = React.useState(defaultValue)\n const currentValue = controlled ? value : internalValue\n\n const setValue = React.useCallback(\n (nextValue: T) => {\n if (!controlled) {\n setInternalValue(nextValue)\n }\n\n onChange?.(nextValue)\n },\n [controlled, onChange],\n )\n\n return [currentValue, setValue] as const\n}\n\nfunction formatDateValue(date: Date, locale?: DateFnsLocale) {\n return format(date, \"PPP\", locale !== undefined ? { locale } : undefined)\n}\n\nfunction formatDateRangeValue(range: DateRange, locale?: DateFnsLocale) {\n if (!range.from) {\n return \"\"\n }\n\n if (!range.to) {\n return format(range.from, \"PPP\", locale !== undefined ? { locale } : undefined)\n }\n\n const formatOptions = locale !== undefined ? { locale } : undefined\n\n return `${format(range.from, \"PPP\", formatOptions)} - ${format(range.to, \"PPP\", formatOptions)}`\n}\n\nfunction omitDefaultMonth<T extends { defaultMonth?: Date | undefined }>(\n value: T,\n): Omit<T, \"defaultMonth\"> {\n const { defaultMonth, ...props } = value\n void defaultMonth\n\n return props\n}\n\nfunction DatePicker(props: DatePickerProps) {\n const {\n calendarProps,\n defaultOpen = false,\n defaultValue,\n formatValue = formatDateValue,\n locale = ko,\n onOpenChange,\n onValueChange,\n open,\n placeholder = \"날짜 선택\",\n popoverContentProps,\n triggerProps,\n value,\n } = props\n const [selectedDate, setSelectedDate] = useControllableState<Date | undefined>({\n controlled: \"value\" in props,\n defaultValue,\n onChange: onValueChange,\n value,\n })\n const [isOpen, setIsOpen] = useControllableState<boolean>({\n controlled: open !== undefined,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n value: open ?? defaultOpen,\n })\n\n const {\n className: triggerClassName,\n type = \"button\",\n variant = \"outline\",\n ...buttonProps\n } = triggerProps ?? {}\n const {\n align = \"start\",\n className: popoverContentClassName,\n ...contentProps\n } = popoverContentProps ?? {}\n const defaultMonth = calendarProps?.defaultMonth\n const calendarPropsRest = calendarProps === undefined ? {} : omitDefaultMonth(calendarProps)\n const resolvedDefaultMonth = defaultMonth ?? selectedDate\n\n return (\n <Popover open={isOpen} onOpenChange={setIsOpen}>\n <PopoverTrigger asChild>\n <Button\n type={type}\n variant={variant}\n data-empty={!selectedDate}\n className={cn(\n \"data-[empty=true]:text-text-muted justify-start text-left font-normal\",\n triggerClassName,\n )}\n {...buttonProps}\n >\n <CalendarIcon />\n {selectedDate ? formatValue(selectedDate, locale) : <span>{placeholder}</span>}\n </Button>\n </PopoverTrigger>\n <PopoverContent\n align={align}\n className={cn(\"w-auto overflow-hidden p-0\", popoverContentClassName)}\n {...contentProps}\n >\n <Calendar\n mode=\"single\"\n locale={locale}\n {...(selectedDate !== undefined ? { selected: selectedDate } : {})}\n {...(resolvedDefaultMonth !== undefined ? { defaultMonth: resolvedDefaultMonth } : {})}\n onSelect={(nextDate) => {\n setSelectedDate(nextDate)\n setIsOpen(false)\n }}\n {...calendarPropsRest}\n />\n </PopoverContent>\n </Popover>\n )\n}\n\nfunction DateRangePicker(props: DateRangePickerProps) {\n const {\n calendarProps,\n defaultOpen = false,\n defaultValue,\n formatValue = formatDateRangeValue,\n locale = ko,\n onOpenChange,\n onValueChange,\n open,\n placeholder = \"날짜 선택\",\n popoverContentProps,\n triggerProps,\n value,\n } = props\n const [selectedRange, setSelectedRange] = useControllableState<DateRange | undefined>({\n controlled: \"value\" in props,\n defaultValue,\n onChange: onValueChange,\n value,\n })\n const [isOpen, setIsOpen] = useControllableState<boolean>({\n controlled: open !== undefined,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n value: open ?? defaultOpen,\n })\n\n const {\n className: triggerClassName,\n type = \"button\",\n variant = \"outline\",\n ...buttonProps\n } = triggerProps ?? {}\n const {\n align = \"start\",\n className: popoverContentClassName,\n ...contentProps\n } = popoverContentProps ?? {}\n const defaultMonth = calendarProps?.defaultMonth\n const calendarPropsRest = calendarProps === undefined ? {} : omitDefaultMonth(calendarProps)\n const resolvedDefaultMonth = defaultMonth ?? selectedRange?.from\n const hasSelectedRange = selectedRange?.from !== undefined\n const selectedRangeLabel = selectedRange?.from ? formatValue(selectedRange, locale) : null\n\n return (\n <Popover open={isOpen} onOpenChange={setIsOpen}>\n <PopoverTrigger asChild>\n <Button\n type={type}\n variant={variant}\n data-empty={!hasSelectedRange}\n className={cn(\n \"data-[empty=true]:text-text-muted justify-start text-left font-normal\",\n triggerClassName,\n )}\n {...buttonProps}\n >\n <CalendarIcon />\n {selectedRangeLabel ?? <span>{placeholder}</span>}\n </Button>\n </PopoverTrigger>\n <PopoverContent\n align={align}\n className={cn(\"w-auto overflow-hidden p-0\", popoverContentClassName)}\n {...contentProps}\n >\n <Calendar\n mode=\"range\"\n locale={locale}\n {...(selectedRange !== undefined ? { selected: selectedRange } : {})}\n {...(resolvedDefaultMonth !== undefined ? { defaultMonth: resolvedDefaultMonth } : {})}\n onSelect={(nextRange) => {\n setSelectedRange(nextRange)\n\n if (nextRange?.from && nextRange.to) {\n setIsOpen(false)\n }\n }}\n {...calendarPropsRest}\n />\n </PopoverContent>\n </Popover>\n )\n}\n\nexport { DatePicker, DateRangePicker, type DatePickerProps, type DateRangePickerProps }\n"],"mappings":"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","names":[]}
@@ -0,0 +1,25 @@
1
+ import * as React from 'react';
2
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
3
+
4
+ type DialogCloseReason = "close-button" | "escape-key" | "outside-click" | "programmatic";
5
+ type DialogRootProps = React.ComponentProps<typeof DialogPrimitive.Root> & {
6
+ onCloseRequest?: (reason: DialogCloseReason) => boolean | Promise<boolean>;
7
+ };
8
+ declare function Dialog({ defaultOpen, onCloseRequest, onOpenChange, open, ...props }: DialogRootProps): React.JSX.Element;
9
+ declare function DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>): React.JSX.Element;
10
+ declare function DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>): React.JSX.Element;
11
+ declare function DialogPrimitiveClose({ asChild, onClick, type, ...props }: React.ComponentProps<typeof DialogPrimitive.Close>): React.JSX.Element;
12
+ declare function DialogClose({ asChild, onClick, type, ...props }: React.ComponentProps<typeof DialogPrimitive.Close>): React.JSX.Element;
13
+ declare function DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>): React.JSX.Element;
14
+ declare const DialogContent: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React.RefAttributes<HTMLDivElement> & {
15
+ blockedInteractionCount?: number;
16
+ showCloseButton?: boolean;
17
+ }, "ref"> & React.RefAttributes<HTMLDivElement>>;
18
+ declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
19
+ declare function DialogFooter({ className, showCloseButton, children, ...props }: React.ComponentProps<"div"> & {
20
+ showCloseButton?: boolean;
21
+ }): React.JSX.Element;
22
+ declare function DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>): React.JSX.Element;
23
+ declare function DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>): React.JSX.Element;
24
+
25
+ export { Dialog, DialogClose, type DialogCloseReason, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogPrimitiveClose, DialogTitle, DialogTrigger };
@@ -0,0 +1,31 @@
1
+ "use client";
2
+ import {
3
+ Dialog,
4
+ DialogClose,
5
+ DialogContent,
6
+ DialogDescription,
7
+ DialogFooter,
8
+ DialogHeader,
9
+ DialogOverlay,
10
+ DialogPortal,
11
+ DialogPrimitiveClose,
12
+ DialogTitle,
13
+ DialogTrigger
14
+ } from "../chunk-PLZMCJSL.js";
15
+ import "../chunk-TU5CYBB4.js";
16
+ import "../chunk-O2BG2KSY.js";
17
+ import "../chunk-DN2AEEA2.js";
18
+ export {
19
+ Dialog,
20
+ DialogClose,
21
+ DialogContent,
22
+ DialogDescription,
23
+ DialogFooter,
24
+ DialogHeader,
25
+ DialogOverlay,
26
+ DialogPortal,
27
+ DialogPrimitiveClose,
28
+ DialogTitle,
29
+ DialogTrigger
30
+ };
31
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ import { Drawer as Drawer$1 } from 'vaul';
3
+
4
+ declare function Drawer({ ...props }: React.ComponentProps<typeof Drawer$1.Root>): React.JSX.Element;
5
+ declare function DrawerTrigger({ ...props }: React.ComponentProps<typeof Drawer$1.Trigger>): React.JSX.Element;
6
+ declare function DrawerPortal({ ...props }: React.ComponentProps<typeof Drawer$1.Portal>): React.JSX.Element;
7
+ declare function DrawerClose({ ...props }: React.ComponentProps<typeof Drawer$1.Close>): React.JSX.Element;
8
+ declare function DrawerOverlay({ className, ...props }: React.ComponentProps<typeof Drawer$1.Overlay>): React.JSX.Element;
9
+ declare function DrawerContent({ className, children, ...props }: React.ComponentProps<typeof Drawer$1.Content>): React.JSX.Element;
10
+ declare function DrawerHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
11
+ declare function DrawerFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
12
+ declare function DrawerTitle({ className, ...props }: React.ComponentProps<typeof Drawer$1.Title>): React.JSX.Element;
13
+ declare function DrawerDescription({ className, ...props }: React.ComponentProps<typeof Drawer$1.Description>): React.JSX.Element;
14
+
15
+ export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger };
@@ -0,0 +1,124 @@
1
+ "use client";
2
+ import {
3
+ overlayScrimClass
4
+ } from "../chunk-O2BG2KSY.js";
5
+ import {
6
+ cn
7
+ } from "../chunk-DN2AEEA2.js";
8
+
9
+ // src/components/drawer.tsx
10
+ import "react";
11
+ import { Drawer as DrawerPrimitive } from "vaul";
12
+ import { jsx, jsxs } from "react/jsx-runtime";
13
+ function Drawer({ ...props }) {
14
+ return /* @__PURE__ */ jsx(DrawerPrimitive.Root, { "data-slot": "drawer", ...props });
15
+ }
16
+ function DrawerTrigger({ ...props }) {
17
+ return /* @__PURE__ */ jsx(DrawerPrimitive.Trigger, { "data-slot": "drawer-trigger", ...props });
18
+ }
19
+ function DrawerPortal({ ...props }) {
20
+ return /* @__PURE__ */ jsx(DrawerPrimitive.Portal, { "data-slot": "drawer-portal", ...props });
21
+ }
22
+ function DrawerClose({ ...props }) {
23
+ return /* @__PURE__ */ jsx(DrawerPrimitive.Close, { "data-slot": "drawer-close", ...props });
24
+ }
25
+ function DrawerOverlay({
26
+ className,
27
+ ...props
28
+ }) {
29
+ return /* @__PURE__ */ jsx(
30
+ DrawerPrimitive.Overlay,
31
+ {
32
+ "data-slot": "drawer-overlay",
33
+ className: cn(
34
+ "data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 fixed inset-0 z-[var(--layer-dialog)]",
35
+ overlayScrimClass,
36
+ className
37
+ ),
38
+ ...props
39
+ }
40
+ );
41
+ }
42
+ function DrawerContent({
43
+ className,
44
+ children,
45
+ ...props
46
+ }) {
47
+ return /* @__PURE__ */ jsxs(DrawerPortal, { "data-slot": "drawer-portal", children: [
48
+ /* @__PURE__ */ jsx(DrawerOverlay, {}),
49
+ /* @__PURE__ */ jsxs(
50
+ DrawerPrimitive.Content,
51
+ {
52
+ "data-slot": "drawer-content",
53
+ className: cn(
54
+ "group/drawer-content border-dialog-border bg-dialog-background text-dialog-text shadow-dialog fixed z-[var(--layer-dialog)] flex h-auto flex-col text-sm data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-[var(--radius-dialog)] data-[vaul-drawer-direction=bottom]:border-t data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-r-[var(--radius-dialog)] data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-l-[var(--radius-dialog)] data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-[var(--radius-dialog)] data-[vaul-drawer-direction=top]:border-b data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm",
55
+ className
56
+ ),
57
+ ...props,
58
+ children: [
59
+ /* @__PURE__ */ jsx("div", { className: "bg-background-secondary-alt mx-auto mt-4 hidden h-1 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
60
+ children
61
+ ]
62
+ }
63
+ )
64
+ ] });
65
+ }
66
+ function DrawerHeader({ className, ...props }) {
67
+ return /* @__PURE__ */ jsx(
68
+ "div",
69
+ {
70
+ "data-slot": "drawer-header",
71
+ className: cn(
72
+ "flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-0.5 md:text-left",
73
+ className
74
+ ),
75
+ ...props
76
+ }
77
+ );
78
+ }
79
+ function DrawerFooter({ className, ...props }) {
80
+ return /* @__PURE__ */ jsx(
81
+ "div",
82
+ {
83
+ "data-slot": "drawer-footer",
84
+ className: cn("mt-auto flex flex-col gap-2 p-4", className),
85
+ ...props
86
+ }
87
+ );
88
+ }
89
+ function DrawerTitle({ className, ...props }) {
90
+ return /* @__PURE__ */ jsx(
91
+ DrawerPrimitive.Title,
92
+ {
93
+ "data-slot": "drawer-title",
94
+ className: cn("font-heading text-dialog-text text-base font-medium", className),
95
+ ...props
96
+ }
97
+ );
98
+ }
99
+ function DrawerDescription({
100
+ className,
101
+ ...props
102
+ }) {
103
+ return /* @__PURE__ */ jsx(
104
+ DrawerPrimitive.Description,
105
+ {
106
+ "data-slot": "drawer-description",
107
+ className: cn("text-text-muted text-sm", className),
108
+ ...props
109
+ }
110
+ );
111
+ }
112
+ export {
113
+ Drawer,
114
+ DrawerClose,
115
+ DrawerContent,
116
+ DrawerDescription,
117
+ DrawerFooter,
118
+ DrawerHeader,
119
+ DrawerOverlay,
120
+ DrawerPortal,
121
+ DrawerTitle,
122
+ DrawerTrigger
123
+ };
124
+ //# sourceMappingURL=drawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/drawer.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { Drawer as DrawerPrimitive } from \"vaul\"\n\nimport { cn } from \"@hyunsdev/ui/lib/utils\"\n\nimport { overlayScrimClass } from \"./_styles\"\n\nfunction Drawer({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return <DrawerPrimitive.Root data-slot=\"drawer\" {...props} />\n}\n\nfunction DrawerTrigger({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />\n}\n\nfunction DrawerPortal({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Portal>) {\n return <DrawerPrimitive.Portal data-slot=\"drawer-portal\" {...props} />\n}\n\nfunction DrawerClose({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Close>) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />\n}\n\nfunction DrawerOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {\n return (\n <DrawerPrimitive.Overlay\n data-slot=\"drawer-overlay\"\n className={cn(\n \"data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 fixed inset-0 z-[var(--layer-dialog)]\",\n overlayScrimClass,\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DrawerContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Content>) {\n return (\n <DrawerPortal data-slot=\"drawer-portal\">\n <DrawerOverlay />\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(\n \"group/drawer-content border-dialog-border bg-dialog-background text-dialog-text shadow-dialog fixed z-[var(--layer-dialog)] flex h-auto flex-col text-sm data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-[var(--radius-dialog)] data-[vaul-drawer-direction=bottom]:border-t data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-r-[var(--radius-dialog)] data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-l-[var(--radius-dialog)] data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-[var(--radius-dialog)] data-[vaul-drawer-direction=top]:border-b data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm\",\n className,\n )}\n {...props}\n >\n <div className=\"bg-background-secondary-alt mx-auto mt-4 hidden h-1 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n )\n}\n\nfunction DrawerHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n \"flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-0.5 md:text-left\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction DrawerTitle({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Title>) {\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn(\"font-heading text-dialog-text text-base font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction DrawerDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Description>) {\n return (\n <DrawerPrimitive.Description\n data-slot=\"drawer-description\"\n className={cn(\"text-text-muted text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n}\n"],"mappings":";;;;;;;;;AAEA,OAAuB;AAEvB,SAAS,UAAU,uBAAuB;AAOjC,cAwCH,YAxCG;AADT,SAAS,OAAO,EAAE,GAAG,MAAM,GAAsD;AAC/E,SAAO,oBAAC,gBAAgB,MAAhB,EAAqB,aAAU,UAAU,GAAG,OAAO;AAC7D;AAEA,SAAS,cAAc,EAAE,GAAG,MAAM,GAAyD;AACzF,SAAO,oBAAC,gBAAgB,SAAhB,EAAwB,aAAU,kBAAkB,GAAG,OAAO;AACxE;AAEA,SAAS,aAAa,EAAE,GAAG,MAAM,GAAwD;AACvF,SAAO,oBAAC,gBAAgB,QAAhB,EAAuB,aAAU,iBAAiB,GAAG,OAAO;AACtE;AAEA,SAAS,YAAY,EAAE,GAAG,MAAM,GAAuD;AACrF,SAAO,oBAAC,gBAAgB,OAAhB,EAAsB,aAAU,gBAAgB,GAAG,OAAO;AACpE;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA,GAAG;AACL,GAAyD;AACvD,SACE;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyD;AACvD,SACE,qBAAC,gBAAa,aAAU,iBACtB;AAAA,wBAAC,iBAAc;AAAA,IACf;AAAA,MAAC,gBAAgB;AAAA,MAAhB;AAAA,QACC,aAAU;AAAA,QACV,WAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEJ;AAAA,8BAAC,SAAI,WAAU,sJAAqJ;AAAA,UACnK;AAAA;AAAA;AAAA,IACH;AAAA,KACF;AAEJ;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAAgC;AAC1E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAAgC;AAC1E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,mCAAmC,SAAS;AAAA,MACzD,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,MAAM,GAAuD;AAChG,SACE;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,uDAAuD,SAAS;AAAA,MAC7E,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA,GAAG;AACL,GAA6D;AAC3D,SACE;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,2BAA2B,SAAS;AAAA,MACjD,GAAG;AAAA;AAAA,EACN;AAEJ;","names":[]}
@@ -0,0 +1,34 @@
1
+ import * as React from 'react';
2
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
3
+
4
+ declare function DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>): React.JSX.Element;
5
+ declare function DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>): React.JSX.Element;
6
+ declare function DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>): React.JSX.Element;
7
+ type DropdownMenuContentProps = React.ComponentProps<typeof DropdownMenuPrimitive.Content> & {
8
+ portalContainer?: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>["container"];
9
+ };
10
+ declare function DropdownMenuContent({ className, align, sideOffset, portalContainer, ...props }: DropdownMenuContentProps): React.JSX.Element;
11
+ declare function DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>): React.JSX.Element;
12
+ declare function DropdownMenuItem({ className, inset, variant, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
13
+ inset?: boolean;
14
+ variant?: "default" | "destructive";
15
+ }): React.JSX.Element;
16
+ declare function DropdownMenuCheckboxItem({ className, children, checked, inset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem> & {
17
+ inset?: boolean;
18
+ }): React.JSX.Element;
19
+ declare function DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>): React.JSX.Element;
20
+ declare function DropdownMenuRadioItem({ className, children, inset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem> & {
21
+ inset?: boolean;
22
+ }): React.JSX.Element;
23
+ declare function DropdownMenuLabel({ className, inset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {
24
+ inset?: boolean;
25
+ }): React.JSX.Element;
26
+ declare function DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>): React.JSX.Element;
27
+ declare function DropdownMenuShortcut({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
28
+ declare function DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>): React.JSX.Element;
29
+ declare function DropdownMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
30
+ inset?: boolean;
31
+ }): React.JSX.Element;
32
+ declare function DropdownMenuSubContent({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>): React.JSX.Element;
33
+
34
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };