@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,91 @@
1
+ import {
2
+ cn
3
+ } from "../chunk-DN2AEEA2.js";
4
+
5
+ // src/components/typography.tsx
6
+ import { jsx } from "react/jsx-runtime";
7
+ function H1({ className, ...props }) {
8
+ return /* @__PURE__ */ jsx(
9
+ "h1",
10
+ {
11
+ className: cn(
12
+ "scroll-m-20 text-center text-4xl font-extrabold tracking-tight text-balance",
13
+ className
14
+ ),
15
+ ...props
16
+ }
17
+ );
18
+ }
19
+ function H2({ className, ...props }) {
20
+ return /* @__PURE__ */ jsx(
21
+ "h2",
22
+ {
23
+ className: cn("scroll-m-20 pb-2 text-3xl font-semibold tracking-tight", className),
24
+ ...props
25
+ }
26
+ );
27
+ }
28
+ function H3({ className, ...props }) {
29
+ return /* @__PURE__ */ jsx("h3", { className: cn("scroll-m-20 text-2xl font-semibold tracking-tight", className), ...props });
30
+ }
31
+ function H4({ className, ...props }) {
32
+ return /* @__PURE__ */ jsx("h4", { className: cn("scroll-m-20 text-xl font-semibold tracking-tight", className), ...props });
33
+ }
34
+ function P({ className, ...props }) {
35
+ return /* @__PURE__ */ jsx("p", { className: cn("leading-7 [&:not(:first-child)]:mt-6", className), ...props });
36
+ }
37
+ function Blockquote({ className, ...props }) {
38
+ return /* @__PURE__ */ jsx("blockquote", { className: cn("mt-6 border-l-2 pl-6 italic", className), ...props });
39
+ }
40
+ function Ul({ className, ...props }) {
41
+ return /* @__PURE__ */ jsx("ul", { className: cn("my-6 ml-6 list-disc [&>li]:mt-2", className), ...props });
42
+ }
43
+ function InlineCode({ className, ...props }) {
44
+ return /* @__PURE__ */ jsx(
45
+ "code",
46
+ {
47
+ className: cn(
48
+ "bg-muted relative rounded px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold",
49
+ className
50
+ ),
51
+ ...props
52
+ }
53
+ );
54
+ }
55
+ function Lead({ className, ...props }) {
56
+ return /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground text-xl", className), ...props });
57
+ }
58
+ function Large({ className, ...props }) {
59
+ return /* @__PURE__ */ jsx("p", { className: cn("text-lg font-semibold", className), ...props });
60
+ }
61
+ function Small({ className, ...props }) {
62
+ return /* @__PURE__ */ jsx("small", { className: cn("text-sm leading-none font-medium", className), ...props });
63
+ }
64
+ function Muted({ className, ...props }) {
65
+ return /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground text-sm", className), ...props });
66
+ }
67
+ function A({ className, ...props }) {
68
+ return /* @__PURE__ */ jsx(
69
+ "a",
70
+ {
71
+ className: cn("text-text-accent hover:text-text-accent-hover hover:underline", className),
72
+ ...props
73
+ }
74
+ );
75
+ }
76
+ export {
77
+ A,
78
+ Blockquote,
79
+ H1,
80
+ H2,
81
+ H3,
82
+ H4,
83
+ InlineCode,
84
+ Large,
85
+ Lead,
86
+ Muted,
87
+ P,
88
+ Small,
89
+ Ul
90
+ };
91
+ //# sourceMappingURL=typography.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/typography.tsx"],"sourcesContent":["import { cn } from \"@hyunsdev/ui/lib/utils\"\n\nexport function H1({ className, ...props }: React.ComponentPropsWithRef<\"h1\">) {\n return (\n <h1\n className={cn(\n \"scroll-m-20 text-center text-4xl font-extrabold tracking-tight text-balance\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport function H2({ className, ...props }: React.ComponentPropsWithRef<\"h2\">) {\n return (\n <h2\n className={cn(\"scroll-m-20 pb-2 text-3xl font-semibold tracking-tight\", className)}\n {...props}\n />\n )\n}\n\nexport function H3({ className, ...props }: React.ComponentPropsWithRef<\"h3\">) {\n return (\n <h3 className={cn(\"scroll-m-20 text-2xl font-semibold tracking-tight\", className)} {...props} />\n )\n}\n\nexport function H4({ className, ...props }: React.ComponentPropsWithRef<\"h4\">) {\n return (\n <h4 className={cn(\"scroll-m-20 text-xl font-semibold tracking-tight\", className)} {...props} />\n )\n}\n\nexport function P({ className, ...props }: React.ComponentPropsWithRef<\"p\">) {\n return <p className={cn(\"leading-7 [&:not(:first-child)]:mt-6\", className)} {...props} />\n}\n\nexport function Blockquote({ className, ...props }: React.ComponentPropsWithRef<\"blockquote\">) {\n return <blockquote className={cn(\"mt-6 border-l-2 pl-6 italic\", className)} {...props} />\n}\n\nexport function Ul({ className, ...props }: React.ComponentPropsWithRef<\"ul\">) {\n return <ul className={cn(\"my-6 ml-6 list-disc [&>li]:mt-2\", className)} {...props} />\n}\n\nexport function InlineCode({ className, ...props }: React.ComponentPropsWithRef<\"code\">) {\n return (\n <code\n className={cn(\n \"bg-muted relative rounded px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport function Lead({ className, ...props }: React.ComponentPropsWithRef<\"p\">) {\n return <p className={cn(\"text-muted-foreground text-xl\", className)} {...props} />\n}\n\nexport function Large({ className, ...props }: React.ComponentPropsWithRef<\"p\">) {\n return <p className={cn(\"text-lg font-semibold\", className)} {...props} />\n}\n\nexport function Small({ className, ...props }: React.ComponentPropsWithRef<\"small\">) {\n return <small className={cn(\"text-sm leading-none font-medium\", className)} {...props} />\n}\n\nexport function Muted({ className, ...props }: React.ComponentPropsWithRef<\"p\">) {\n return <p className={cn(\"text-muted-foreground text-sm\", className)} {...props} />\n}\n\nexport function A({ className, ...props }: React.ComponentPropsWithRef<\"a\">) {\n return (\n <a\n className={cn(\"text-text-accent hover:text-text-accent-hover hover:underline\", className)}\n {...props}\n />\n )\n}\n"],"mappings":";;;;;AAII;AAFG,SAAS,GAAG,EAAE,WAAW,GAAG,MAAM,GAAsC;AAC7E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEO,SAAS,GAAG,EAAE,WAAW,GAAG,MAAM,GAAsC;AAC7E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,0DAA0D,SAAS;AAAA,MAChF,GAAG;AAAA;AAAA,EACN;AAEJ;AAEO,SAAS,GAAG,EAAE,WAAW,GAAG,MAAM,GAAsC;AAC7E,SACE,oBAAC,QAAG,WAAW,GAAG,qDAAqD,SAAS,GAAI,GAAG,OAAO;AAElG;AAEO,SAAS,GAAG,EAAE,WAAW,GAAG,MAAM,GAAsC;AAC7E,SACE,oBAAC,QAAG,WAAW,GAAG,oDAAoD,SAAS,GAAI,GAAG,OAAO;AAEjG;AAEO,SAAS,EAAE,EAAE,WAAW,GAAG,MAAM,GAAqC;AAC3E,SAAO,oBAAC,OAAE,WAAW,GAAG,wCAAwC,SAAS,GAAI,GAAG,OAAO;AACzF;AAEO,SAAS,WAAW,EAAE,WAAW,GAAG,MAAM,GAA8C;AAC7F,SAAO,oBAAC,gBAAW,WAAW,GAAG,+BAA+B,SAAS,GAAI,GAAG,OAAO;AACzF;AAEO,SAAS,GAAG,EAAE,WAAW,GAAG,MAAM,GAAsC;AAC7E,SAAO,oBAAC,QAAG,WAAW,GAAG,mCAAmC,SAAS,GAAI,GAAG,OAAO;AACrF;AAEO,SAAS,WAAW,EAAE,WAAW,GAAG,MAAM,GAAwC;AACvF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEO,SAAS,KAAK,EAAE,WAAW,GAAG,MAAM,GAAqC;AAC9E,SAAO,oBAAC,OAAE,WAAW,GAAG,iCAAiC,SAAS,GAAI,GAAG,OAAO;AAClF;AAEO,SAAS,MAAM,EAAE,WAAW,GAAG,MAAM,GAAqC;AAC/E,SAAO,oBAAC,OAAE,WAAW,GAAG,yBAAyB,SAAS,GAAI,GAAG,OAAO;AAC1E;AAEO,SAAS,MAAM,EAAE,WAAW,GAAG,MAAM,GAAyC;AACnF,SAAO,oBAAC,WAAM,WAAW,GAAG,oCAAoC,SAAS,GAAI,GAAG,OAAO;AACzF;AAEO,SAAS,MAAM,EAAE,WAAW,GAAG,MAAM,GAAqC;AAC/E,SAAO,oBAAC,OAAE,WAAW,GAAG,iCAAiC,SAAS,GAAI,GAAG,OAAO;AAClF;AAEO,SAAS,EAAE,EAAE,WAAW,GAAG,MAAM,GAAqC;AAC3E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,iEAAiE,SAAS;AAAA,MACvF,GAAG;AAAA;AAAA,EACN;AAEJ;","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function useIsMobile(): boolean;
2
+
3
+ export { useIsMobile };
@@ -0,0 +1,7 @@
1
+ import {
2
+ useIsMobile
3
+ } from "../chunk-WJRJBMFN.js";
4
+ export {
5
+ useIsMobile
6
+ };
7
+ //# sourceMappingURL=use-mobile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,3 @@
1
+ export { useTheme } from '../components/theme-provider.js';
2
+ export { AccentPreset, ResolvedTheme, ThemeContextValue, ThemeMode } from '../lib/theme.js';
3
+ import 'react';
@@ -0,0 +1,8 @@
1
+ import {
2
+ useTheme
3
+ } from "../chunk-UXCBLYG6.js";
4
+ import "../chunk-3RTSANKB.js";
5
+ export {
6
+ useTheme
7
+ };
8
+ //# sourceMappingURL=use-theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,7 @@
1
+ export { Button, buttonVariants } from './components/button.js';
2
+ export { MainProvider } from './components/main-provider.js';
3
+ export { ThemeProvider, useTheme } from './components/theme-provider.js';
4
+ export { AccentPreset, ResolvedTheme, ThemeContextValue, ThemeMode, getThemeInitScript } from './lib/theme.js';
5
+ import 'class-variance-authority/types';
6
+ import 'react';
7
+ import 'class-variance-authority';
package/dist/index.js ADDED
@@ -0,0 +1,27 @@
1
+ import {
2
+ MainProvider
3
+ } from "./chunk-WIZ4OLOB.js";
4
+ import "./chunk-23KUNTRD.js";
5
+ import "./chunk-D3SP7GL3.js";
6
+ import {
7
+ ThemeProvider,
8
+ useTheme
9
+ } from "./chunk-UXCBLYG6.js";
10
+ import {
11
+ getThemeInitScript
12
+ } from "./chunk-3RTSANKB.js";
13
+ import {
14
+ Button,
15
+ buttonVariants
16
+ } from "./chunk-TU5CYBB4.js";
17
+ import "./chunk-O2BG2KSY.js";
18
+ import "./chunk-DN2AEEA2.js";
19
+ export {
20
+ Button,
21
+ MainProvider,
22
+ ThemeProvider,
23
+ buttonVariants,
24
+ getThemeInitScript,
25
+ useTheme
26
+ };
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,18 @@
1
+ import React__default from 'react';
2
+ import { Card } from '../../components/card.js';
3
+
4
+ declare function CenterLayout({ className, children, ...props }: React__default.ComponentProps<"div">): React__default.JSX.Element;
5
+ declare function CenterHeader({ className, ...props }: React__default.ComponentProps<"div">): React__default.JSX.Element;
6
+ declare function CenterContent({ children, className, width, ...props }: React__default.ComponentProps<"div"> & {
7
+ width?: string;
8
+ }): React__default.JSX.Element;
9
+ declare function CenterContentHeader({ children }: {
10
+ children: React__default.ReactNode;
11
+ }): React__default.JSX.Element;
12
+ declare function CenterContentBody({ children }: {
13
+ children: React__default.ReactNode;
14
+ }): React__default.JSX.Element;
15
+ declare function CenterCard({ children, className, ...props }: React__default.ComponentProps<typeof Card>): React__default.JSX.Element;
16
+ declare function CenterFooter({ className, ...props }: React__default.ComponentProps<"div">): React__default.JSX.Element;
17
+
18
+ export { CenterCard, CenterContent, CenterContentBody, CenterContentHeader, CenterFooter, CenterHeader, CenterLayout };
@@ -0,0 +1,73 @@
1
+ import {
2
+ Card
3
+ } from "../../chunk-HZT6RQYZ.js";
4
+ import "../../chunk-O2BG2KSY.js";
5
+ import {
6
+ cn
7
+ } from "../../chunk-DN2AEEA2.js";
8
+
9
+ // src/layouts/center/core/CenterLayout.tsx
10
+ import "react";
11
+ import { jsx } from "react/jsx-runtime";
12
+ function CenterLayout({ className, children, ...props }) {
13
+ return /* @__PURE__ */ jsx(
14
+ "div",
15
+ {
16
+ className: cn(
17
+ "bg-center-background flex min-h-svh flex-col items-center justify-between",
18
+ className
19
+ ),
20
+ ...props,
21
+ children
22
+ }
23
+ );
24
+ }
25
+ function CenterHeader({ className, ...props }) {
26
+ return /* @__PURE__ */ jsx(
27
+ "div",
28
+ {
29
+ className: cn("flex w-full flex-col items-center justify-between", className),
30
+ ...props
31
+ }
32
+ );
33
+ }
34
+ function CenterContent({
35
+ children,
36
+ className,
37
+ width = "400px",
38
+ ...props
39
+ }) {
40
+ return /* @__PURE__ */ jsx(
41
+ "div",
42
+ {
43
+ className: cn("flex w-full flex-1 flex-col items-center justify-center", className),
44
+ style: {
45
+ maxWidth: width
46
+ },
47
+ ...props,
48
+ children
49
+ }
50
+ );
51
+ }
52
+ function CenterContentHeader({ children }) {
53
+ return /* @__PURE__ */ jsx("div", { className: "flex w-full flex-col items-center justify-center", children });
54
+ }
55
+ function CenterContentBody({ children }) {
56
+ return /* @__PURE__ */ jsx("div", { className: "flex w-full flex-col items-center justify-center", children });
57
+ }
58
+ function CenterCard({ children, className, ...props }) {
59
+ return /* @__PURE__ */ jsx(Card, { className: cn("w-full", className), ...props, children });
60
+ }
61
+ function CenterFooter({ className, ...props }) {
62
+ return /* @__PURE__ */ jsx("div", { className: cn("flex w-full flex-col items-center justify-center", className), ...props });
63
+ }
64
+ export {
65
+ CenterCard,
66
+ CenterContent,
67
+ CenterContentBody,
68
+ CenterContentHeader,
69
+ CenterFooter,
70
+ CenterHeader,
71
+ CenterLayout
72
+ };
73
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/layouts/center/core/CenterLayout.tsx"],"sourcesContent":["import React from \"react\"\n\nimport { Card } from \"@hyunsdev/ui/components/card\"\nimport { cn } from \"@hyunsdev/ui/lib/utils\"\n\nexport function CenterLayout({ className, children, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"bg-center-background flex min-h-svh flex-col items-center justify-between\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nexport function CenterHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\"flex w-full flex-col items-center justify-between\", className)}\n {...props}\n />\n )\n}\n\nexport function CenterContent({\n children,\n className,\n width = \"400px\",\n ...props\n}: React.ComponentProps<\"div\"> & {\n width?: string\n}) {\n return (\n <div\n className={cn(\"flex w-full flex-1 flex-col items-center justify-center\", className)}\n style={{\n maxWidth: width,\n }}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nexport function CenterContentHeader({ children }: { children: React.ReactNode }) {\n return <div className=\"flex w-full flex-col items-center justify-center\">{children}</div>\n}\n\nexport function CenterContentBody({ children }: { children: React.ReactNode }) {\n return <div className=\"flex w-full flex-col items-center justify-center\">{children}</div>\n}\n\nexport function CenterCard({ children, className, ...props }: React.ComponentProps<typeof Card>) {\n return (\n <Card className={cn(\"w-full\", className)} {...props}>\n {children}\n </Card>\n )\n}\n\nexport function CenterFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div className={cn(\"flex w-full flex-col items-center justify-center\", className)} {...props} />\n )\n}\n"],"mappings":";;;;;;;;;AAAA,OAAkB;AAOd;AAFG,SAAS,aAAa,EAAE,WAAW,UAAU,GAAG,MAAM,GAAgC;AAC3F,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;AAEO,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAAgC;AACjF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,qDAAqD,SAAS;AAAA,MAC3E,GAAG;AAAA;AAAA,EACN;AAEJ;AAEO,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,GAAG;AACL,GAEG;AACD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,2DAA2D,SAAS;AAAA,MAClF,OAAO;AAAA,QACL,UAAU;AAAA,MACZ;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;AAEO,SAAS,oBAAoB,EAAE,SAAS,GAAkC;AAC/E,SAAO,oBAAC,SAAI,WAAU,oDAAoD,UAAS;AACrF;AAEO,SAAS,kBAAkB,EAAE,SAAS,GAAkC;AAC7E,SAAO,oBAAC,SAAI,WAAU,oDAAoD,UAAS;AACrF;AAEO,SAAS,WAAW,EAAE,UAAU,WAAW,GAAG,MAAM,GAAsC;AAC/F,SACE,oBAAC,QAAK,WAAW,GAAG,UAAU,SAAS,GAAI,GAAG,OAC3C,UACH;AAEJ;AAEO,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAAgC;AACjF,SACE,oBAAC,SAAI,WAAW,GAAG,oDAAoD,SAAS,GAAI,GAAG,OAAO;AAElG;","names":[]}
@@ -0,0 +1,42 @@
1
+ import * as React$1 from 'react';
2
+ import * as AvatarPrimitive from '@radix-ui/react-avatar';
3
+
4
+ declare function ChatLayout({ children, className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
5
+ declare function ChatHeader({ children, className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
6
+ declare function ChatHeaderLeading({ children, className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
7
+ declare function ChatHeaderTrailing({ children, className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
8
+
9
+ declare function IncomingMessageItem({ children }: {
10
+ children?: React.ReactNode;
11
+ }): React$1.JSX.Element;
12
+ declare function IncomingMessageAvatar(props: React.ComponentProps<typeof AvatarPrimitive.Root>): React$1.JSX.Element;
13
+ declare function IncomingMessageContent({ children }: {
14
+ children?: React.ReactNode;
15
+ }): React$1.JSX.Element;
16
+ declare function IncomingMessageBubble({ children }: {
17
+ children?: React.ReactNode;
18
+ }): React$1.JSX.Element;
19
+ declare function IncomingMessageDescription({ children }: {
20
+ children?: React.ReactNode;
21
+ }): React$1.JSX.Element;
22
+
23
+ declare function UserMessageItem({ children }: {
24
+ children?: React.ReactNode;
25
+ }): React$1.JSX.Element;
26
+ declare function UserMessageBubble({ children }: {
27
+ children?: React.ReactNode;
28
+ }): React$1.JSX.Element;
29
+
30
+ declare function SystemMessageItem({ children }: {
31
+ children?: React.ReactNode;
32
+ }): React$1.JSX.Element;
33
+
34
+ declare function MessageComposer({ children, className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
35
+ declare function MessageComposerBox({ children, className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
36
+ declare function MessageComposerTextarea({ className, ...props }: React.ComponentProps<"textarea">): React$1.JSX.Element;
37
+ declare function MessageComposerBoxFooter({ children, className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
38
+ declare function MessageComposerDescription({ children, className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
39
+
40
+ declare function MessageList({ children, className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
41
+
42
+ export { ChatHeader, ChatHeaderLeading, ChatHeaderTrailing, ChatLayout, IncomingMessageAvatar, IncomingMessageBubble, IncomingMessageContent, IncomingMessageDescription, IncomingMessageItem, MessageComposer, MessageComposerBox, MessageComposerBoxFooter, MessageComposerDescription, MessageComposerTextarea, MessageList, SystemMessageItem, UserMessageBubble, UserMessageItem };
@@ -0,0 +1,191 @@
1
+ import {
2
+ ScrollArea,
3
+ ScrollBar
4
+ } from "../../chunk-GJT7TDBS.js";
5
+ import {
6
+ Avatar
7
+ } from "../../chunk-POG5DZBT.js";
8
+ import {
9
+ cn
10
+ } from "../../chunk-DN2AEEA2.js";
11
+
12
+ // src/layouts/chat/ChatLayout.tsx
13
+ import { jsx } from "react/jsx-runtime";
14
+ function ChatLayout({ children, className, ...props }) {
15
+ return /* @__PURE__ */ jsx("div", { className: cn("flex h-full w-full flex-col", className), ...props, children });
16
+ }
17
+ function ChatHeader({ children, className, ...props }) {
18
+ return /* @__PURE__ */ jsx(
19
+ "div",
20
+ {
21
+ "data-slot": "chat-header",
22
+ className: cn("flex h-11 items-center justify-between px-3 text-sm", className),
23
+ ...props,
24
+ children
25
+ }
26
+ );
27
+ }
28
+ function ChatHeaderLeading({ children, className, ...props }) {
29
+ return /* @__PURE__ */ jsx(
30
+ "div",
31
+ {
32
+ "data-slot": "chat-header-leading",
33
+ className: cn("flex items-center gap-0.5", className),
34
+ ...props,
35
+ children
36
+ }
37
+ );
38
+ }
39
+ function ChatHeaderTrailing({ children, className, ...props }) {
40
+ return /* @__PURE__ */ jsx(
41
+ "div",
42
+ {
43
+ "data-slot": "chat-header-trailing",
44
+ className: cn("ml-auto flex items-center gap-0.5", className),
45
+ ...props,
46
+ children
47
+ }
48
+ );
49
+ }
50
+
51
+ // src/layouts/chat/message-item/IncomingMessageItem.tsx
52
+ import "@radix-ui/react-avatar";
53
+ import { jsx as jsx2 } from "react/jsx-runtime";
54
+ function IncomingMessageItem({ children }) {
55
+ return /* @__PURE__ */ jsx2("div", { className: "flex w-full items-end gap-1 p-2", children });
56
+ }
57
+ function IncomingMessageAvatar(props) {
58
+ return /* @__PURE__ */ jsx2(Avatar, { size: "default", ...props });
59
+ }
60
+ function IncomingMessageContent({ children }) {
61
+ return /* @__PURE__ */ jsx2("div", { className: "flex flex-col gap-1", children });
62
+ }
63
+ function IncomingMessageBubble({ children }) {
64
+ return /* @__PURE__ */ jsx2("div", { className: "bg-background max-w-[80%] rounded-t-xl rounded-r-xl border px-3 py-1 text-sm", children });
65
+ }
66
+ function IncomingMessageDescription({ children }) {
67
+ return /* @__PURE__ */ jsx2("div", { className: "text-muted-foreground px-1 text-xs", children });
68
+ }
69
+
70
+ // src/layouts/chat/message-item/UserMessageItem.tsx
71
+ import { jsx as jsx3 } from "react/jsx-runtime";
72
+ function UserMessageItem({ children }) {
73
+ return /* @__PURE__ */ jsx3("div", { className: "flex w-full items-start p-2", children });
74
+ }
75
+ function UserMessageBubble({ children }) {
76
+ return /* @__PURE__ */ jsx3("div", { className: "bg-primary text-background ml-auto max-w-[80%] rounded-t-xl rounded-l-xl px-3 py-1 text-sm", children });
77
+ }
78
+
79
+ // src/layouts/chat/message-item/SystemMessageItem.tsx
80
+ import { jsx as jsx4 } from "react/jsx-runtime";
81
+ function SystemMessageItem({ children }) {
82
+ return /* @__PURE__ */ jsx4("div", { className: "flex w-full justify-center p-2", children: /* @__PURE__ */ jsx4("div", { className: "bg-background rounded-full border px-3 py-1 text-sm", children }) });
83
+ }
84
+
85
+ // src/layouts/chat/MessageComposer.tsx
86
+ import { jsx as jsx5 } from "react/jsx-runtime";
87
+ function MessageComposer({ children, className, ...props }) {
88
+ return /* @__PURE__ */ jsx5(
89
+ "div",
90
+ {
91
+ "data-slot": "message-composer",
92
+ className: cn("flex w-full flex-col items-center gap-1.5 p-2", className),
93
+ ...props,
94
+ children
95
+ }
96
+ );
97
+ }
98
+ function MessageComposerBox({ children, className, ...props }) {
99
+ return /* @__PURE__ */ jsx5(
100
+ "div",
101
+ {
102
+ "data-slot": "message-composer-box",
103
+ className: cn(
104
+ "border-border bg-background-primary text-text-normal flex w-full flex-col rounded-xl border p-3",
105
+ className
106
+ ),
107
+ ...props,
108
+ children
109
+ }
110
+ );
111
+ }
112
+ function MessageComposerTextarea({ className, ...props }) {
113
+ return /* @__PURE__ */ jsx5(
114
+ "textarea",
115
+ {
116
+ name: "chat-input",
117
+ id: "chat-input",
118
+ placeholder: "Type your message here...",
119
+ className: cn("resize-none text-sm focus-visible:outline-none", className),
120
+ ...props
121
+ }
122
+ );
123
+ }
124
+ function MessageComposerBoxFooter({
125
+ children,
126
+ className,
127
+ ...props
128
+ }) {
129
+ return /* @__PURE__ */ jsx5(
130
+ "div",
131
+ {
132
+ "data-slot": "chat-input-footer",
133
+ className: cn("mt-2 flex items-center justify-end gap-2", className),
134
+ ...props,
135
+ children
136
+ }
137
+ );
138
+ }
139
+ function MessageComposerDescription({
140
+ children,
141
+ className,
142
+ ...props
143
+ }) {
144
+ return /* @__PURE__ */ jsx5(
145
+ "div",
146
+ {
147
+ "data-slot": "chat-input-footer",
148
+ className: cn("text-chat-description flex text-center text-xs", className),
149
+ ...props,
150
+ children
151
+ }
152
+ );
153
+ }
154
+
155
+ // src/layouts/chat/MessageList.tsx
156
+ import { jsx as jsx6, jsxs } from "react/jsx-runtime";
157
+ function MessageList({ children, className, ...props }) {
158
+ return /* @__PURE__ */ jsx6(
159
+ "div",
160
+ {
161
+ "data-slot": "message-list",
162
+ className: cn("flex h-full w-full flex-1 flex-col gap-4 overflow-hidden", className),
163
+ ...props,
164
+ children: /* @__PURE__ */ jsxs(ScrollArea, { className: "h-full", children: [
165
+ /* @__PURE__ */ jsx6("div", { className: "", children }),
166
+ /* @__PURE__ */ jsx6(ScrollBar, { orientation: "horizontal" })
167
+ ] })
168
+ }
169
+ );
170
+ }
171
+ export {
172
+ ChatHeader,
173
+ ChatHeaderLeading,
174
+ ChatHeaderTrailing,
175
+ ChatLayout,
176
+ IncomingMessageAvatar,
177
+ IncomingMessageBubble,
178
+ IncomingMessageContent,
179
+ IncomingMessageDescription,
180
+ IncomingMessageItem,
181
+ MessageComposer,
182
+ MessageComposerBox,
183
+ MessageComposerBoxFooter,
184
+ MessageComposerDescription,
185
+ MessageComposerTextarea,
186
+ MessageList,
187
+ SystemMessageItem,
188
+ UserMessageBubble,
189
+ UserMessageItem
190
+ };
191
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/layouts/chat/ChatLayout.tsx","../../../src/layouts/chat/message-item/IncomingMessageItem.tsx","../../../src/layouts/chat/message-item/UserMessageItem.tsx","../../../src/layouts/chat/message-item/SystemMessageItem.tsx","../../../src/layouts/chat/MessageComposer.tsx","../../../src/layouts/chat/MessageList.tsx"],"sourcesContent":["import { cn } from \"@hyunsdev/ui/lib/utils\"\n\nexport function ChatLayout({ children, className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div className={cn(\"flex h-full w-full flex-col\", className)} {...props}>\n {children}\n </div>\n )\n}\n\nexport function ChatHeader({ children, className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"chat-header\"\n className={cn(\"flex h-11 items-center justify-between px-3 text-sm\", className)}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nexport function ChatHeaderLeading({ children, className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"chat-header-leading\"\n className={cn(\"flex items-center gap-0.5\", className)}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nexport function ChatHeaderTrailing({ children, className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"chat-header-trailing\"\n className={cn(\"ml-auto flex items-center gap-0.5\", className)}\n {...props}\n >\n {children}\n </div>\n )\n}\n","import * as AvatarPrimitive from \"@radix-ui/react-avatar\"\n\nimport { Avatar } from \"@hyunsdev/ui/components/avatar\"\n\nexport function IncomingMessageItem({ children }: { children?: React.ReactNode }) {\n return <div className=\"flex w-full items-end gap-1 p-2\">{children}</div>\n}\n\nexport function IncomingMessageAvatar(props: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return <Avatar size=\"default\" {...props} />\n}\n\nexport function IncomingMessageContent({ children }: { children?: React.ReactNode }) {\n return <div className=\"flex flex-col gap-1\">{children}</div>\n}\n\nexport function IncomingMessageBubble({ children }: { children?: React.ReactNode }) {\n return (\n <div className=\"bg-background max-w-[80%] rounded-t-xl rounded-r-xl border px-3 py-1 text-sm\">\n {children}\n </div>\n )\n}\n\nexport function IncomingMessageDescription({ children }: { children?: React.ReactNode }) {\n return <div className=\"text-muted-foreground px-1 text-xs\">{children}</div>\n}\n","export function UserMessageItem({ children }: { children?: React.ReactNode }) {\n return <div className=\"flex w-full items-start p-2\">{children}</div>\n}\n\nexport function UserMessageBubble({ children }: { children?: React.ReactNode }) {\n return (\n <div className=\"bg-primary text-background ml-auto max-w-[80%] rounded-t-xl rounded-l-xl px-3 py-1 text-sm\">\n {children}\n </div>\n )\n}\n","export function SystemMessageItem({ children }: { children?: React.ReactNode }) {\n return (\n <div className=\"flex w-full justify-center p-2\">\n <div className=\"bg-background rounded-full border px-3 py-1 text-sm\">{children}</div>\n </div>\n )\n}\n","import { cn } from \"@hyunsdev/ui/lib/utils\"\n\nexport function MessageComposer({ children, className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"message-composer\"\n className={cn(\"flex w-full flex-col items-center gap-1.5 p-2\", className)}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nexport function MessageComposerBox({ children, className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"message-composer-box\"\n className={cn(\n \"border-border bg-background-primary text-text-normal flex w-full flex-col rounded-xl border p-3\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nexport function MessageComposerTextarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n name=\"chat-input\"\n id=\"chat-input\"\n placeholder=\"Type your message here...\"\n className={cn(\"resize-none text-sm focus-visible:outline-none\", className)}\n {...props}\n />\n )\n}\n\nexport function MessageComposerBoxFooter({\n children,\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"chat-input-footer\"\n className={cn(\"mt-2 flex items-center justify-end gap-2\", className)}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nexport function MessageComposerDescription({\n children,\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"chat-input-footer\"\n className={cn(\"text-chat-description flex text-center text-xs\", className)}\n {...props}\n >\n {children}\n </div>\n )\n}\n","import { ScrollArea, ScrollBar } from \"@hyunsdev/ui/components/scroll-area\"\nimport { cn } from \"@hyunsdev/ui/lib/utils\"\n\nexport function MessageList({ children, className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"message-list\"\n className={cn(\"flex h-full w-full flex-1 flex-col gap-4 overflow-hidden\", className)}\n {...props}\n >\n <ScrollArea className=\"h-full\">\n <div className=\"\">{children}</div>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n </div>\n )\n}\n"],"mappings":"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","names":["jsx","jsx","jsx","jsx","jsx"]}
@@ -0,0 +1,2 @@
1
+
2
+ export { }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,55 @@
1
+ import * as React$1 from 'react';
2
+ import React__default from 'react';
3
+
4
+ declare function PanelBreadcrumb({ className, ...props }: React$1.ComponentProps<"nav">): React$1.JSX.Element;
5
+ declare function PanelBreadcrumbList({ className, ...props }: React$1.ComponentProps<"ol">): React$1.JSX.Element;
6
+ declare function PanelBreadcrumbItem({ className, ...props }: React$1.ComponentProps<"li">): React$1.JSX.Element;
7
+ declare function PanelBreadcrumbLink({ asChild, className, ...props }: React$1.ComponentProps<"a"> & {
8
+ asChild?: boolean;
9
+ }): React$1.JSX.Element;
10
+ declare function PanelBreadcrumbPage({ className, ...props }: React$1.ComponentProps<"span">): React$1.JSX.Element;
11
+ declare function PanelBreadcrumbSeparator({ children, className, ...props }: React$1.ComponentProps<"li">): React$1.JSX.Element;
12
+ declare function PanelBreadcrumbEllipsis({ className, ...props }: React$1.ComponentProps<"span">): React$1.JSX.Element;
13
+
14
+ declare function Panel({ children, className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
15
+ declare function PanelBody({ className, children, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
16
+ declare function PanelFooter({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
17
+ declare function PanelHeader({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
18
+ declare function PanelHeaderLeading({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
19
+ declare function PanelHeaderTrailing({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
20
+
21
+ declare function PanelSidebar({ side, variant, collapsible, className, children, ...props }: React$1.ComponentProps<"div"> & {
22
+ side?: "left" | "right";
23
+ variant?: "sidebar" | "floating" | "inset";
24
+ collapsible?: "offcanvas" | "icon" | "none";
25
+ }): React$1.JSX.Element;
26
+ declare function PanelSidebarInset({ className, ...props }: React$1.ComponentProps<"main">): React$1.JSX.Element;
27
+ declare function PanelSidebarRail({ className, ...props }: React$1.ComponentProps<"button">): React$1.JSX.Element;
28
+
29
+ declare const PANEL_SIDEBAR_MIN_WIDTH = "250px";
30
+ declare const PANEL_SIDEBAR_DEFAULT_WIDTH = "280px";
31
+ declare const PANEL_SIDEBAR_MAX_WIDTH = "400px";
32
+ type PanelSidebarContextProps = {
33
+ currentSide: "left" | "right";
34
+ hasSidebar: boolean;
35
+ isResizing: boolean;
36
+ sidebarWidth: number;
37
+ state: "expanded" | "collapsed";
38
+ open: boolean;
39
+ setOpen: React__default.Dispatch<React__default.SetStateAction<boolean>>;
40
+ toggleSidebar: () => void;
41
+ setHasSidebar: React__default.Dispatch<React__default.SetStateAction<boolean>>;
42
+ setCurrentSide: React__default.Dispatch<React__default.SetStateAction<"left" | "right">>;
43
+ handleRailClick: (event: React__default.MouseEvent<HTMLButtonElement>) => void;
44
+ handleRailKeyDown: (event: React__default.KeyboardEvent<HTMLButtonElement>) => void;
45
+ handleRailPointerDown: (event: React__default.PointerEvent<HTMLButtonElement>) => void;
46
+ };
47
+ declare const PanelSidebarContext: React__default.Context<PanelSidebarContextProps | null>;
48
+ declare function PanelSidebarProvider({ defaultOpen, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }: React__default.ComponentProps<"div"> & {
49
+ defaultOpen?: boolean;
50
+ open?: boolean;
51
+ onOpenChange?: (open: boolean) => void;
52
+ }): React__default.JSX.Element;
53
+ declare function usePanelSidebar(): PanelSidebarContextProps;
54
+
55
+ export { PANEL_SIDEBAR_DEFAULT_WIDTH, PANEL_SIDEBAR_MAX_WIDTH, PANEL_SIDEBAR_MIN_WIDTH, Panel, PanelBody, PanelBreadcrumb, PanelBreadcrumbEllipsis, PanelBreadcrumbItem, PanelBreadcrumbLink, PanelBreadcrumbList, PanelBreadcrumbPage, PanelBreadcrumbSeparator, PanelFooter, PanelHeader, PanelHeaderLeading, PanelHeaderTrailing, PanelSidebar, PanelSidebarContext, type PanelSidebarContextProps, PanelSidebarInset, PanelSidebarProvider, PanelSidebarRail, usePanelSidebar };