@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,189 @@
1
+ "use client";
2
+ import {
3
+ fieldFocusClass,
4
+ fieldInvalidClass,
5
+ floatingItemHighlightClass,
6
+ floatingSurfaceClass
7
+ } from "../chunk-O2BG2KSY.js";
8
+ import {
9
+ cn
10
+ } from "../chunk-DN2AEEA2.js";
11
+
12
+ // src/components/select.tsx
13
+ import "react";
14
+ import * as SelectPrimitive from "@radix-ui/react-select";
15
+ import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from "lucide-react";
16
+ import { jsx, jsxs } from "react/jsx-runtime";
17
+ function Select({ ...props }) {
18
+ return /* @__PURE__ */ jsx(SelectPrimitive.Root, { "data-slot": "select", ...props });
19
+ }
20
+ function SelectGroup({ className, ...props }) {
21
+ return /* @__PURE__ */ jsx(
22
+ SelectPrimitive.Group,
23
+ {
24
+ "data-slot": "select-group",
25
+ className: cn("scroll-my-1 p-1", className),
26
+ ...props
27
+ }
28
+ );
29
+ }
30
+ function SelectValue({ ...props }) {
31
+ return /* @__PURE__ */ jsx(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
32
+ }
33
+ function SelectTrigger({
34
+ className,
35
+ size = "default",
36
+ children,
37
+ ...props
38
+ }) {
39
+ return /* @__PURE__ */ jsxs(
40
+ SelectPrimitive.Trigger,
41
+ {
42
+ "data-slot": "select-trigger",
43
+ "data-size": size,
44
+ className: cn(
45
+ "border-field-border bg-field-background text-field-text disabled:bg-field-background-disabled data-placeholder:text-field-placeholder flex w-fit items-center justify-between gap-1.5 rounded-lg border py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
46
+ fieldFocusClass,
47
+ fieldInvalidClass,
48
+ className
49
+ ),
50
+ ...props,
51
+ children: [
52
+ children,
53
+ /* @__PURE__ */ jsx(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "text-field-label pointer-events-none size-4" }) })
54
+ ]
55
+ }
56
+ );
57
+ }
58
+ function SelectContent({
59
+ className,
60
+ children,
61
+ position = "item-aligned",
62
+ align = "center",
63
+ portalContainer,
64
+ ...props
65
+ }) {
66
+ return /* @__PURE__ */ jsx(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs(
67
+ SelectPrimitive.Content,
68
+ {
69
+ "data-slot": "select-content",
70
+ "data-align-trigger": position === "item-aligned",
71
+ className: cn(
72
+ "data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 relative z-(--layer-menu) max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-(--radius-floating) p-0.5 text-sm duration-100 data-[align-trigger=true]:animate-none",
73
+ floatingSurfaceClass,
74
+ position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
75
+ className
76
+ ),
77
+ position,
78
+ align,
79
+ ...props,
80
+ children: [
81
+ /* @__PURE__ */ jsx(SelectScrollUpButton, {}),
82
+ /* @__PURE__ */ jsx(
83
+ SelectPrimitive.Viewport,
84
+ {
85
+ "data-position": position,
86
+ className: cn(
87
+ "data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)",
88
+ position === "popper" && ""
89
+ ),
90
+ children
91
+ }
92
+ ),
93
+ /* @__PURE__ */ jsx(SelectScrollDownButton, {})
94
+ ]
95
+ }
96
+ ) });
97
+ }
98
+ function SelectLabel({ className, ...props }) {
99
+ return /* @__PURE__ */ jsx(
100
+ SelectPrimitive.Label,
101
+ {
102
+ "data-slot": "select-label",
103
+ className: cn("text-text-muted px-1.5 py-1 text-xs", className),
104
+ ...props
105
+ }
106
+ );
107
+ }
108
+ function SelectItem({
109
+ className,
110
+ children,
111
+ ...props
112
+ }) {
113
+ return /* @__PURE__ */ jsxs(
114
+ SelectPrimitive.Item,
115
+ {
116
+ "data-slot": "select-item",
117
+ className: cn(
118
+ "group/select-item text-text-normal relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-[state=checked]:font-medium [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:text-current [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
119
+ floatingItemHighlightClass,
120
+ className
121
+ ),
122
+ ...props,
123
+ children: [
124
+ /* @__PURE__ */ jsx("span", { className: "text-text-accent pointer-events-none absolute right-2 flex size-4 items-center justify-center", children: /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "pointer-events-none" }) }) }),
125
+ /* @__PURE__ */ jsx(SelectPrimitive.ItemText, { children })
126
+ ]
127
+ }
128
+ );
129
+ }
130
+ function SelectSeparator({
131
+ className,
132
+ ...props
133
+ }) {
134
+ return /* @__PURE__ */ jsx(
135
+ SelectPrimitive.Separator,
136
+ {
137
+ "data-slot": "select-separator",
138
+ className: cn("bg-border pointer-events-none -mx-1 my-1 h-px", className),
139
+ ...props
140
+ }
141
+ );
142
+ }
143
+ function SelectScrollUpButton({
144
+ className,
145
+ ...props
146
+ }) {
147
+ return /* @__PURE__ */ jsx(
148
+ SelectPrimitive.ScrollUpButton,
149
+ {
150
+ "data-slot": "select-scroll-up-button",
151
+ className: cn(
152
+ "bg-floating-background text-floating-text z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4",
153
+ className
154
+ ),
155
+ ...props,
156
+ children: /* @__PURE__ */ jsx(ChevronUpIcon, {})
157
+ }
158
+ );
159
+ }
160
+ function SelectScrollDownButton({
161
+ className,
162
+ ...props
163
+ }) {
164
+ return /* @__PURE__ */ jsx(
165
+ SelectPrimitive.ScrollDownButton,
166
+ {
167
+ "data-slot": "select-scroll-down-button",
168
+ className: cn(
169
+ "bg-floating-background text-floating-text z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4",
170
+ className
171
+ ),
172
+ ...props,
173
+ children: /* @__PURE__ */ jsx(ChevronDownIcon, {})
174
+ }
175
+ );
176
+ }
177
+ export {
178
+ Select,
179
+ SelectContent,
180
+ SelectGroup,
181
+ SelectItem,
182
+ SelectLabel,
183
+ SelectScrollDownButton,
184
+ SelectScrollUpButton,
185
+ SelectSeparator,
186
+ SelectTrigger,
187
+ SelectValue
188
+ };
189
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/select.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { ChevronDownIcon, CheckIcon, ChevronUpIcon } from \"lucide-react\"\n\nimport { cn } from \"@hyunsdev/ui/lib/utils\"\n\nimport {\n fieldFocusClass,\n fieldInvalidClass,\n floatingItemHighlightClass,\n floatingSurfaceClass,\n} from \"./_styles\"\n\nfunction Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />\n}\n\nfunction SelectGroup({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(\"scroll-my-1 p-1\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"border-field-border bg-field-background text-field-text disabled:bg-field-background-disabled data-placeholder:text-field-placeholder flex w-fit items-center justify-between gap-1.5 rounded-lg border py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n fieldFocusClass,\n fieldInvalidClass,\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"text-field-label pointer-events-none size-4\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n}\n\ntype SelectContentProps = React.ComponentProps<typeof SelectPrimitive.Content> & {\n portalContainer?: React.ComponentProps<typeof SelectPrimitive.Portal>[\"container\"]\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"item-aligned\",\n align = \"center\",\n portalContainer,\n ...props\n}: SelectContentProps) {\n return (\n <SelectPrimitive.Portal container={portalContainer}>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n data-align-trigger={position === \"item-aligned\"}\n className={cn(\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 relative z-(--layer-menu) max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-(--radius-floating) p-0.5 text-sm duration-100 data-[align-trigger=true]:animate-none\",\n floatingSurfaceClass,\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n data-position={position}\n className={cn(\n \"data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)\",\n position === \"popper\" && \"\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n}\n\nfunction SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\"text-text-muted px-1.5 py-1 text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"group/select-item text-text-normal relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-[state=checked]:font-medium [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:text-current [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n floatingItemHighlightClass,\n className,\n )}\n {...props}\n >\n <span className=\"text-text-accent pointer-events-none absolute right-2 flex size-4 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n )\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"bg-border pointer-events-none -mx-1 my-1 h-px\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"bg-floating-background text-floating-text z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon />\n </SelectPrimitive.ScrollUpButton>\n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"bg-floating-background text-floating-text z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon />\n </SelectPrimitive.ScrollDownButton>\n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ import * as SeparatorPrimitive from '@radix-ui/react-separator';
3
+
4
+ declare function Separator({ className, orientation, decorative, ...props }: React.ComponentProps<typeof SeparatorPrimitive.Root>): React.JSX.Element;
5
+
6
+ export { Separator };
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import {
3
+ Separator
4
+ } from "../chunk-6ANDNGHD.js";
5
+ import "../chunk-DN2AEEA2.js";
6
+ export {
7
+ Separator
8
+ };
9
+ //# sourceMappingURL=separator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
3
+
4
+ declare function Sheet({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>): React.JSX.Element;
5
+ declare function SheetTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>): React.JSX.Element;
6
+ declare function SheetClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>): React.JSX.Element;
7
+ declare function SheetContent({ className, children, side, showCloseButton, ...props }: React.ComponentProps<typeof DialogPrimitive.Content> & {
8
+ side?: "top" | "right" | "bottom" | "left";
9
+ showCloseButton?: boolean;
10
+ }): React.JSX.Element;
11
+ declare function SheetHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
12
+ declare function SheetFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
13
+ declare function SheetTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>): React.JSX.Element;
14
+ declare function SheetDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>): React.JSX.Element;
15
+
16
+ export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger };
@@ -0,0 +1,25 @@
1
+ "use client";
2
+ import {
3
+ Sheet,
4
+ SheetClose,
5
+ SheetContent,
6
+ SheetDescription,
7
+ SheetFooter,
8
+ SheetHeader,
9
+ SheetTitle,
10
+ SheetTrigger
11
+ } from "../chunk-4QIWBOF4.js";
12
+ import "../chunk-TU5CYBB4.js";
13
+ import "../chunk-O2BG2KSY.js";
14
+ import "../chunk-DN2AEEA2.js";
15
+ export {
16
+ Sheet,
17
+ SheetClose,
18
+ SheetContent,
19
+ SheetDescription,
20
+ SheetFooter,
21
+ SheetHeader,
22
+ SheetTitle,
23
+ SheetTrigger
24
+ };
25
+ //# sourceMappingURL=sheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+
3
+ type ShowMoreProps = React.ComponentProps<"div"> & {
4
+ label?: React.ReactNode;
5
+ moreLabel?: React.ReactNode;
6
+ lessLabel?: React.ReactNode;
7
+ pressed?: boolean;
8
+ defaultPressed?: boolean;
9
+ onPressedChange?: (pressed: boolean) => void;
10
+ disabled?: boolean;
11
+ triggerClassName?: string;
12
+ };
13
+ declare function ShowMore({ className, label, moreLabel, lessLabel, pressed, defaultPressed, onPressedChange, disabled, triggerClassName, ...props }: ShowMoreProps): React.JSX.Element;
14
+
15
+ export { ShowMore };
@@ -0,0 +1,79 @@
1
+ "use client";
2
+ import {
3
+ Button
4
+ } from "../chunk-TU5CYBB4.js";
5
+ import "../chunk-O2BG2KSY.js";
6
+ import {
7
+ cn
8
+ } from "../chunk-DN2AEEA2.js";
9
+
10
+ // src/components/show-more.tsx
11
+ import * as React from "react";
12
+ import { ChevronDownIcon } from "lucide-react";
13
+ import { jsx, jsxs } from "react/jsx-runtime";
14
+ function ShowMore({
15
+ className,
16
+ label,
17
+ moreLabel = "Show More",
18
+ lessLabel = "Show Less",
19
+ pressed,
20
+ defaultPressed = false,
21
+ onPressedChange,
22
+ disabled = false,
23
+ triggerClassName,
24
+ ...props
25
+ }) {
26
+ const isControlled = pressed !== void 0;
27
+ const [uncontrolledPressed, setUncontrolledPressed] = React.useState(defaultPressed);
28
+ const isPressed = isControlled ? pressed : uncontrolledPressed;
29
+ const resolvedLabel = label ?? (isPressed ? lessLabel : moreLabel);
30
+ const handlePressedChange = React.useCallback(() => {
31
+ if (disabled) {
32
+ return;
33
+ }
34
+ const nextPressed = !isPressed;
35
+ if (!isControlled) {
36
+ setUncontrolledPressed(nextPressed);
37
+ }
38
+ onPressedChange?.(nextPressed);
39
+ }, [disabled, isControlled, isPressed, onPressedChange]);
40
+ return /* @__PURE__ */ jsxs(
41
+ "div",
42
+ {
43
+ "data-slot": "show-more",
44
+ "data-state": isPressed ? "on" : "off",
45
+ className: cn("relative flex w-full items-center justify-center py-2", className),
46
+ ...props,
47
+ children: [
48
+ /* @__PURE__ */ jsx("div", { className: "bg-border absolute inset-x-0 top-1/2 h-px -translate-y-1/2" }),
49
+ /* @__PURE__ */ jsxs(
50
+ Button,
51
+ {
52
+ type: "button",
53
+ variant: "normal",
54
+ "aria-pressed": isPressed,
55
+ disabled,
56
+ onClick: handlePressedChange,
57
+ className: cn("relative z-10 rounded-full px-4 shadow-none", triggerClassName),
58
+ children: [
59
+ /* @__PURE__ */ jsx("span", { children: resolvedLabel }),
60
+ /* @__PURE__ */ jsx(
61
+ ChevronDownIcon,
62
+ {
63
+ className: cn(
64
+ "transition-transform duration-200 ease-out",
65
+ isPressed ? "-rotate-180" : void 0
66
+ )
67
+ }
68
+ )
69
+ ]
70
+ }
71
+ )
72
+ ]
73
+ }
74
+ );
75
+ }
76
+ export {
77
+ ShowMore
78
+ };
79
+ //# sourceMappingURL=show-more.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/show-more.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { ChevronDownIcon } from \"lucide-react\"\n\nimport { Button } from \"@hyunsdev/ui/components/button\"\nimport { cn } from \"@hyunsdev/ui/lib/utils\"\n\ntype ShowMoreProps = React.ComponentProps<\"div\"> & {\n label?: React.ReactNode\n moreLabel?: React.ReactNode\n lessLabel?: React.ReactNode\n pressed?: boolean\n defaultPressed?: boolean\n onPressedChange?: (pressed: boolean) => void\n disabled?: boolean\n triggerClassName?: string\n}\n\nfunction ShowMore({\n className,\n label,\n moreLabel = \"Show More\",\n lessLabel = \"Show Less\",\n pressed,\n defaultPressed = false,\n onPressedChange,\n disabled = false,\n triggerClassName,\n ...props\n}: ShowMoreProps) {\n const isControlled = pressed !== undefined\n const [uncontrolledPressed, setUncontrolledPressed] = React.useState(defaultPressed)\n const isPressed = isControlled ? pressed : uncontrolledPressed\n const resolvedLabel = label ?? (isPressed ? lessLabel : moreLabel)\n\n const handlePressedChange = React.useCallback(() => {\n if (disabled) {\n return\n }\n\n const nextPressed = !isPressed\n\n if (!isControlled) {\n setUncontrolledPressed(nextPressed)\n }\n\n onPressedChange?.(nextPressed)\n }, [disabled, isControlled, isPressed, onPressedChange])\n\n return (\n <div\n data-slot=\"show-more\"\n data-state={isPressed ? \"on\" : \"off\"}\n className={cn(\"relative flex w-full items-center justify-center py-2\", className)}\n {...props}\n >\n <div className=\"bg-border absolute inset-x-0 top-1/2 h-px -translate-y-1/2\" />\n\n <Button\n type=\"button\"\n variant=\"normal\"\n aria-pressed={isPressed}\n disabled={disabled}\n onClick={handlePressedChange}\n className={cn(\"relative z-10 rounded-full px-4 shadow-none\", triggerClassName)}\n >\n <span>{resolvedLabel}</span>\n <ChevronDownIcon\n className={cn(\n \"transition-transform duration-200 ease-out\",\n isPressed ? \"-rotate-180\" : undefined,\n )}\n />\n </Button>\n </div>\n )\n}\n\nexport { ShowMore }\n"],"mappings":";;;;;;;;;;AAEA,YAAY,WAAW;AAEvB,SAAS,uBAAuB;AAsD1B,cAEA,YAFA;AAtCN,SAAS,SAAS;AAAA,EAChB;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA,GAAG;AACL,GAAkB;AAChB,QAAM,eAAe,YAAY;AACjC,QAAM,CAAC,qBAAqB,sBAAsB,IAAU,eAAS,cAAc;AACnF,QAAM,YAAY,eAAe,UAAU;AAC3C,QAAM,gBAAgB,UAAU,YAAY,YAAY;AAExD,QAAM,sBAA4B,kBAAY,MAAM;AAClD,QAAI,UAAU;AACZ;AAAA,IACF;AAEA,UAAM,cAAc,CAAC;AAErB,QAAI,CAAC,cAAc;AACjB,6BAAuB,WAAW;AAAA,IACpC;AAEA,sBAAkB,WAAW;AAAA,EAC/B,GAAG,CAAC,UAAU,cAAc,WAAW,eAAe,CAAC;AAEvD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,cAAY,YAAY,OAAO;AAAA,MAC/B,WAAW,GAAG,yDAAyD,SAAS;AAAA,MAC/E,GAAG;AAAA,MAEJ;AAAA,4BAAC,SAAI,WAAU,8DAA6D;AAAA,QAE5E;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,gBAAc;AAAA,YACd;AAAA,YACA,SAAS;AAAA,YACT,WAAW,GAAG,+CAA+C,gBAAgB;AAAA,YAE7E;AAAA,kCAAC,UAAM,yBAAc;AAAA,cACrB;AAAA,gBAAC;AAAA;AAAA,kBACC,WAAW;AAAA,oBACT;AAAA,oBACA,YAAY,gBAAgB;AAAA,kBAC9B;AAAA;AAAA,cACF;AAAA;AAAA;AAAA,QACF;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -0,0 +1,5 @@
1
+ import * as React$1 from 'react';
2
+
3
+ declare function Skeleton({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
4
+
5
+ export { Skeleton };
@@ -0,0 +1,8 @@
1
+ import {
2
+ Skeleton
3
+ } from "../chunk-KJJB2PVC.js";
4
+ import "../chunk-DN2AEEA2.js";
5
+ export {
6
+ Skeleton
7
+ };
8
+ //# sourceMappingURL=skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ import * as SliderPrimitive from '@radix-ui/react-slider';
3
+
4
+ declare function Slider({ className, defaultValue, value, min, max, ...props }: React.ComponentProps<typeof SliderPrimitive.Root>): React.JSX.Element;
5
+
6
+ export { Slider };
@@ -0,0 +1,65 @@
1
+ "use client";
2
+ import {
3
+ cn
4
+ } from "../chunk-DN2AEEA2.js";
5
+
6
+ // src/components/slider.tsx
7
+ import * as React from "react";
8
+ import * as SliderPrimitive from "@radix-ui/react-slider";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+ function Slider({
11
+ className,
12
+ defaultValue,
13
+ value,
14
+ min = 0,
15
+ max = 100,
16
+ ...props
17
+ }) {
18
+ const _values = React.useMemo(
19
+ () => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
20
+ [value, defaultValue, min, max]
21
+ );
22
+ return /* @__PURE__ */ jsxs(
23
+ SliderPrimitive.Root,
24
+ {
25
+ "data-slot": "slider",
26
+ ...defaultValue !== void 0 ? { defaultValue } : {},
27
+ ...value !== void 0 ? { value } : {},
28
+ min,
29
+ max,
30
+ className: cn(
31
+ "relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col",
32
+ className
33
+ ),
34
+ ...props,
35
+ children: [
36
+ /* @__PURE__ */ jsx(
37
+ SliderPrimitive.Track,
38
+ {
39
+ "data-slot": "slider-track",
40
+ className: "bg-border relative grow overflow-hidden rounded-full data-horizontal:h-1 data-horizontal:w-full data-vertical:h-full data-vertical:w-1",
41
+ children: /* @__PURE__ */ jsx(
42
+ SliderPrimitive.Range,
43
+ {
44
+ "data-slot": "slider-range",
45
+ className: "bg-interactive-accent absolute select-none data-horizontal:h-full data-vertical:w-full"
46
+ }
47
+ )
48
+ }
49
+ ),
50
+ Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx(
51
+ SliderPrimitive.Thumb,
52
+ {
53
+ "data-slot": "slider-thumb",
54
+ className: "border-interactive-accent bg-background-primary ring-focus-ring/50 active:border-border-hover relative block size-3 shrink-0 rounded-full border-2 transition-[color,box-shadow,border-color,background-color] select-none after:absolute after:-inset-2 hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 disabled:pointer-events-none disabled:opacity-50"
55
+ },
56
+ index
57
+ ))
58
+ ]
59
+ }
60
+ );
61
+ }
62
+ export {
63
+ Slider
64
+ };
65
+ //# sourceMappingURL=slider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/slider.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\n\nimport { cn } from \"@hyunsdev/ui/lib/utils\"\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const _values = React.useMemo(\n () => (Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max]),\n [value, defaultValue, min, max],\n )\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n {...(defaultValue !== undefined ? { defaultValue } : {})}\n {...(value !== undefined ? { value } : {})}\n min={min}\n max={max}\n className={cn(\n \"relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col\",\n className,\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className=\"bg-border relative grow overflow-hidden rounded-full data-horizontal:h-1 data-horizontal:w-full data-vertical:h-full data-vertical:w-1\"\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className=\"bg-interactive-accent absolute select-none data-horizontal:h-full data-vertical:w-full\"\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"border-interactive-accent bg-background-primary ring-focus-ring/50 active:border-border-hover relative block size-3 shrink-0 rounded-full border-2 transition-[color,box-shadow,border-color,background-color] select-none after:absolute after:-inset-2 hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n"],"mappings":";;;;;;AAEA,YAAY,WAAW;AAEvB,YAAY,qBAAqB;AAkB7B,SAgBI,KAhBJ;AAdJ,SAAS,OAAO;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,MAAM;AAAA,EACN,MAAM;AAAA,EACN,GAAG;AACL,GAAsD;AACpD,QAAM,UAAgB;AAAA,IACpB,MAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,MAAM,QAAQ,YAAY,IAAI,eAAe,CAAC,KAAK,GAAG;AAAA,IAC5F,CAAC,OAAO,cAAc,KAAK,GAAG;AAAA,EAChC;AAEA,SACE;AAAA,IAAiB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACT,GAAI,iBAAiB,SAAY,EAAE,aAAa,IAAI,CAAC;AAAA,MACrD,GAAI,UAAU,SAAY,EAAE,MAAM,IAAI,CAAC;AAAA,MACxC;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA;AAAA,UAAiB;AAAA,UAAhB;AAAA,YACC,aAAU;AAAA,YACV,WAAU;AAAA,YAEV;AAAA,cAAiB;AAAA,cAAhB;AAAA,gBACC,aAAU;AAAA,gBACV,WAAU;AAAA;AAAA,YACZ;AAAA;AAAA,QACF;AAAA,QACC,MAAM,KAAK,EAAE,QAAQ,QAAQ,OAAO,GAAG,CAAC,GAAG,UAC1C;AAAA,UAAiB;AAAA,UAAhB;AAAA,YACC,aAAU;AAAA,YAEV,WAAU;AAAA;AAAA,UADL;AAAA,QAEP,CACD;AAAA;AAAA;AAAA,EACH;AAEJ;","names":[]}
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+
3
+ type SnippetProps = Omit<React.ComponentProps<"div">, "onCopy"> & {
4
+ text: string | string[];
5
+ prompt?: boolean | string;
6
+ width?: React.CSSProperties["width"];
7
+ onCopy?: (value: string) => void;
8
+ copyText?: string;
9
+ copyable?: boolean;
10
+ };
11
+ declare function Snippet({ className, text, prompt, width, onCopy, copyText, copyable, style, ...props }: SnippetProps): React.JSX.Element;
12
+
13
+ export { Snippet };
@@ -0,0 +1,135 @@
1
+ "use client";
2
+ import {
3
+ InputGroup,
4
+ InputGroupAddon,
5
+ InputGroupInput,
6
+ InputGroupTextarea
7
+ } from "../chunk-UVAI2U6X.js";
8
+ import "../chunk-NE3IVPMO.js";
9
+ import "../chunk-YUPLJP3F.js";
10
+ import {
11
+ ButtonGroup
12
+ } from "../chunk-ETTKFCO6.js";
13
+ import "../chunk-6ANDNGHD.js";
14
+ import {
15
+ Button
16
+ } from "../chunk-TU5CYBB4.js";
17
+ import "../chunk-O2BG2KSY.js";
18
+ import {
19
+ cn
20
+ } from "../chunk-DN2AEEA2.js";
21
+
22
+ // src/components/snippet.tsx
23
+ import * as React from "react";
24
+ import { CheckIcon, CopyIcon } from "lucide-react";
25
+ import { jsx, jsxs } from "react/jsx-runtime";
26
+ function Snippet({
27
+ className,
28
+ text,
29
+ prompt = "$",
30
+ width,
31
+ onCopy,
32
+ copyText,
33
+ copyable = true,
34
+ style,
35
+ ...props
36
+ }) {
37
+ const [copied, setCopied] = React.useState(false);
38
+ const resetTimerRef = React.useRef(null);
39
+ const lines = React.useMemo(() => Array.isArray(text) ? text : [text], [text]);
40
+ const isMultiline = lines.length > 1;
41
+ const displayValue = lines.join("\n");
42
+ const copyValue = copyText ?? lines.join("\n");
43
+ const promptText = prompt === false ? null : typeof prompt === "string" ? prompt : "$";
44
+ React.useEffect(() => {
45
+ return () => {
46
+ if (resetTimerRef.current !== null) {
47
+ window.clearTimeout(resetTimerRef.current);
48
+ }
49
+ };
50
+ }, []);
51
+ const handleCopy = React.useCallback(async () => {
52
+ if (!copyable || !navigator.clipboard?.writeText) {
53
+ return;
54
+ }
55
+ await navigator.clipboard.writeText(copyValue);
56
+ if (resetTimerRef.current !== null) {
57
+ window.clearTimeout(resetTimerRef.current);
58
+ }
59
+ setCopied(true);
60
+ onCopy?.(copyValue);
61
+ resetTimerRef.current = window.setTimeout(() => {
62
+ setCopied(false);
63
+ resetTimerRef.current = null;
64
+ }, 1500);
65
+ }, [copyValue, copyable, onCopy]);
66
+ return /* @__PURE__ */ jsx(
67
+ "div",
68
+ {
69
+ "data-slot": "snippet",
70
+ "data-multiline": isMultiline || void 0,
71
+ className: cn(
72
+ "[&_[data-slot=input-group]]:border-border [&_[data-slot=input-group]]:bg-background-primary [&_[data-slot=input-group]]:text-text-normal [&_[data-slot=input-group-addon]]:text-text-muted [&_[data-slot=input-group-control]]:text-text-normal",
73
+ isMultiline && "[&_[data-slot=input-group]]:h-auto [&_[data-slot=input-group]]:items-start",
74
+ className
75
+ ),
76
+ style: { ...style, width },
77
+ ...props,
78
+ children: /* @__PURE__ */ jsxs(ButtonGroup, { className: "w-full", children: [
79
+ /* @__PURE__ */ jsxs(
80
+ InputGroup,
81
+ {
82
+ className: cn(
83
+ "font-mono",
84
+ isMultiline && "items-start",
85
+ promptText ? "" : "[&>[data-slot=input-group-control]]:pl-3"
86
+ ),
87
+ children: [
88
+ promptText ? /* @__PURE__ */ jsx(
89
+ InputGroupAddon,
90
+ {
91
+ className: cn("font-mono text-sm", isMultiline && "self-start pt-2.5"),
92
+ children: promptText
93
+ }
94
+ ) : null,
95
+ isMultiline ? /* @__PURE__ */ jsx(
96
+ InputGroupTextarea,
97
+ {
98
+ readOnly: true,
99
+ rows: lines.length,
100
+ value: displayValue,
101
+ className: "min-h-0 overflow-hidden border-0 bg-transparent py-2 pr-0 pl-2 font-mono text-sm leading-relaxed shadow-none focus-visible:ring-0"
102
+ }
103
+ ) : /* @__PURE__ */ jsx(
104
+ InputGroupInput,
105
+ {
106
+ readOnly: true,
107
+ value: lines[0] ?? "",
108
+ className: "h-full border-0 bg-transparent px-0 font-mono text-sm shadow-none focus-visible:ring-0"
109
+ }
110
+ )
111
+ ]
112
+ }
113
+ ),
114
+ copyable ? /* @__PURE__ */ jsx(
115
+ Button,
116
+ {
117
+ type: "button",
118
+ size: "icon",
119
+ variant: "normal",
120
+ "aria-label": "Copy snippet",
121
+ className: cn("shrink-0", isMultiline && "h-auto min-h-8"),
122
+ onClick: () => {
123
+ void handleCopy();
124
+ },
125
+ children: copied ? /* @__PURE__ */ jsx(CheckIcon, { className: "size-3" }) : /* @__PURE__ */ jsx(CopyIcon, { className: "size-3" })
126
+ }
127
+ ) : null
128
+ ] })
129
+ }
130
+ );
131
+ }
132
+ export {
133
+ Snippet
134
+ };
135
+ //# sourceMappingURL=snippet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/snippet.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { CheckIcon, CopyIcon } from \"lucide-react\"\n\nimport { Button } from \"@hyunsdev/ui/components/button\"\nimport { ButtonGroup } from \"@hyunsdev/ui/components/button-group\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n InputGroupTextarea,\n} from \"@hyunsdev/ui/components/input-group\"\nimport { cn } from \"@hyunsdev/ui/lib/utils\"\n\ntype SnippetProps = Omit<React.ComponentProps<\"div\">, \"onCopy\"> & {\n text: string | string[]\n prompt?: boolean | string\n width?: React.CSSProperties[\"width\"]\n onCopy?: (value: string) => void\n copyText?: string\n copyable?: boolean\n}\n\nfunction Snippet({\n className,\n text,\n prompt = \"$\",\n width,\n onCopy,\n copyText,\n copyable = true,\n style,\n ...props\n}: SnippetProps) {\n const [copied, setCopied] = React.useState(false)\n const resetTimerRef = React.useRef<number | null>(null)\n\n const lines = React.useMemo(() => (Array.isArray(text) ? text : [text]), [text])\n const isMultiline = lines.length > 1\n const displayValue = lines.join(\"\\n\")\n const copyValue = copyText ?? lines.join(\"\\n\")\n const promptText = prompt === false ? null : typeof prompt === \"string\" ? prompt : \"$\"\n\n React.useEffect(() => {\n return () => {\n if (resetTimerRef.current !== null) {\n window.clearTimeout(resetTimerRef.current)\n }\n }\n }, [])\n\n const handleCopy = React.useCallback(async () => {\n if (!copyable || !navigator.clipboard?.writeText) {\n return\n }\n\n await navigator.clipboard.writeText(copyValue)\n\n if (resetTimerRef.current !== null) {\n window.clearTimeout(resetTimerRef.current)\n }\n\n setCopied(true)\n onCopy?.(copyValue)\n\n resetTimerRef.current = window.setTimeout(() => {\n setCopied(false)\n resetTimerRef.current = null\n }, 1500)\n }, [copyValue, copyable, onCopy])\n\n return (\n <div\n data-slot=\"snippet\"\n data-multiline={isMultiline || undefined}\n className={cn(\n \"[&_[data-slot=input-group]]:border-border [&_[data-slot=input-group]]:bg-background-primary [&_[data-slot=input-group]]:text-text-normal [&_[data-slot=input-group-addon]]:text-text-muted [&_[data-slot=input-group-control]]:text-text-normal\",\n isMultiline && \"[&_[data-slot=input-group]]:h-auto [&_[data-slot=input-group]]:items-start\",\n className,\n )}\n style={{ ...style, width }}\n {...props}\n >\n <ButtonGroup className=\"w-full\">\n <InputGroup\n className={cn(\n \"font-mono\",\n isMultiline && \"items-start\",\n promptText ? \"\" : \"[&>[data-slot=input-group-control]]:pl-3\",\n )}\n >\n {promptText ? (\n <InputGroupAddon\n className={cn(\"font-mono text-sm\", isMultiline && \"self-start pt-2.5\")}\n >\n {promptText}\n </InputGroupAddon>\n ) : null}\n\n {isMultiline ? (\n <InputGroupTextarea\n readOnly\n rows={lines.length}\n value={displayValue}\n className=\"min-h-0 overflow-hidden border-0 bg-transparent py-2 pr-0 pl-2 font-mono text-sm leading-relaxed shadow-none focus-visible:ring-0\"\n />\n ) : (\n <InputGroupInput\n readOnly\n value={lines[0] ?? \"\"}\n className=\"h-full border-0 bg-transparent px-0 font-mono text-sm shadow-none focus-visible:ring-0\"\n />\n )}\n </InputGroup>\n\n {copyable ? (\n <Button\n type=\"button\"\n size=\"icon\"\n variant=\"normal\"\n aria-label=\"Copy snippet\"\n className={cn(\"shrink-0\", isMultiline && \"h-auto min-h-8\")}\n onClick={() => {\n void handleCopy()\n }}\n >\n {copied ? <CheckIcon className=\"size-3\" /> : <CopyIcon className=\"size-3\" />}\n </Button>\n ) : null}\n </ButtonGroup>\n </div>\n )\n}\n\nexport { Snippet }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEA,YAAY,WAAW;AAEvB,SAAS,WAAW,gBAAgB;AAkF5B,SAQI,KARJ;AA7DR,SAAS,QAAQ;AAAA,EACf;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA,GAAG;AACL,GAAiB;AACf,QAAM,CAAC,QAAQ,SAAS,IAAU,eAAS,KAAK;AAChD,QAAM,gBAAsB,aAAsB,IAAI;AAEtD,QAAM,QAAc,cAAQ,MAAO,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI,GAAI,CAAC,IAAI,CAAC;AAC/E,QAAM,cAAc,MAAM,SAAS;AACnC,QAAM,eAAe,MAAM,KAAK,IAAI;AACpC,QAAM,YAAY,YAAY,MAAM,KAAK,IAAI;AAC7C,QAAM,aAAa,WAAW,QAAQ,OAAO,OAAO,WAAW,WAAW,SAAS;AAEnF,EAAM,gBAAU,MAAM;AACpB,WAAO,MAAM;AACX,UAAI,cAAc,YAAY,MAAM;AAClC,eAAO,aAAa,cAAc,OAAO;AAAA,MAC3C;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,aAAmB,kBAAY,YAAY;AAC/C,QAAI,CAAC,YAAY,CAAC,UAAU,WAAW,WAAW;AAChD;AAAA,IACF;AAEA,UAAM,UAAU,UAAU,UAAU,SAAS;AAE7C,QAAI,cAAc,YAAY,MAAM;AAClC,aAAO,aAAa,cAAc,OAAO;AAAA,IAC3C;AAEA,cAAU,IAAI;AACd,aAAS,SAAS;AAElB,kBAAc,UAAU,OAAO,WAAW,MAAM;AAC9C,gBAAU,KAAK;AACf,oBAAc,UAAU;AAAA,IAC1B,GAAG,IAAI;AAAA,EACT,GAAG,CAAC,WAAW,UAAU,MAAM,CAAC;AAEhC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,kBAAgB,eAAe;AAAA,MAC/B,WAAW;AAAA,QACT;AAAA,QACA,eAAe;AAAA,QACf;AAAA,MACF;AAAA,MACA,OAAO,EAAE,GAAG,OAAO,MAAM;AAAA,MACxB,GAAG;AAAA,MAEJ,+BAAC,eAAY,WAAU,UACrB;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA,eAAe;AAAA,cACf,aAAa,KAAK;AAAA,YACpB;AAAA,YAEC;AAAA,2BACC;AAAA,gBAAC;AAAA;AAAA,kBACC,WAAW,GAAG,qBAAqB,eAAe,mBAAmB;AAAA,kBAEpE;AAAA;AAAA,cACH,IACE;AAAA,cAEH,cACC;AAAA,gBAAC;AAAA;AAAA,kBACC,UAAQ;AAAA,kBACR,MAAM,MAAM;AAAA,kBACZ,OAAO;AAAA,kBACP,WAAU;AAAA;AAAA,cACZ,IAEA;AAAA,gBAAC;AAAA;AAAA,kBACC,UAAQ;AAAA,kBACR,OAAO,MAAM,CAAC,KAAK;AAAA,kBACnB,WAAU;AAAA;AAAA,cACZ;AAAA;AAAA;AAAA,QAEJ;AAAA,QAEC,WACC;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,cAAW;AAAA,YACX,WAAW,GAAG,YAAY,eAAe,gBAAgB;AAAA,YACzD,SAAS,MAAM;AACb,mBAAK,WAAW;AAAA,YAClB;AAAA,YAEC,mBAAS,oBAAC,aAAU,WAAU,UAAS,IAAK,oBAAC,YAAS,WAAU,UAAS;AAAA;AAAA,QAC5E,IACE;AAAA,SACN;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ import { ToasterProps } from 'sonner';
3
+
4
+ declare const Toaster: ({ ...props }: ToasterProps) => React.JSX.Element;
5
+
6
+ export { Toaster };