@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,254 @@
1
+ "use client";
2
+ import {
3
+ cn
4
+ } from "../chunk-DN2AEEA2.js";
5
+
6
+ // src/components/chart.tsx
7
+ import * as React from "react";
8
+ import * as RechartsPrimitive from "recharts";
9
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
+ var THEMES = { light: "", dark: ".dark" };
11
+ var INITIAL_DIMENSION = { width: 320, height: 200 };
12
+ var THEME_ENTRIES = [
13
+ ["light", THEMES.light],
14
+ ["dark", THEMES.dark]
15
+ ];
16
+ var ChartContext = React.createContext(null);
17
+ function useChart() {
18
+ const context = React.useContext(ChartContext);
19
+ if (!context) {
20
+ throw new Error("useChart must be used within a <ChartContainer />");
21
+ }
22
+ return context;
23
+ }
24
+ function ChartContainer({
25
+ id,
26
+ className,
27
+ children,
28
+ config,
29
+ initialDimension = INITIAL_DIMENSION,
30
+ ...props
31
+ }) {
32
+ const uniqueId = React.useId();
33
+ const chartId = `chart-${id ?? uniqueId.replace(/:/g, "")}`;
34
+ return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
35
+ "div",
36
+ {
37
+ "data-slot": "chart",
38
+ "data-chart": chartId,
39
+ className: cn(
40
+ "[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
41
+ className
42
+ ),
43
+ ...props,
44
+ children: [
45
+ /* @__PURE__ */ jsx(ChartStyle, { id: chartId, config }),
46
+ /* @__PURE__ */ jsx(RechartsPrimitive.ResponsiveContainer, { initialDimension, children })
47
+ ]
48
+ }
49
+ ) });
50
+ }
51
+ var ChartStyle = ({ id, config }) => {
52
+ const colorConfig = Object.entries(config).filter(([, config2]) => config2.theme ?? config2.color);
53
+ if (!colorConfig.length) {
54
+ return null;
55
+ }
56
+ return /* @__PURE__ */ jsx(
57
+ "style",
58
+ {
59
+ dangerouslySetInnerHTML: {
60
+ __html: THEME_ENTRIES.map(
61
+ ([theme, prefix]) => `
62
+ ${prefix} [data-chart=${id}] {
63
+ ${colorConfig.map(([key, itemConfig]) => {
64
+ const color = itemConfig.theme?.[theme] ?? itemConfig.color;
65
+ return color ? ` --color-${key}: ${color};` : null;
66
+ }).join("\n")}
67
+ }
68
+ `
69
+ ).join("\n")
70
+ }
71
+ }
72
+ );
73
+ };
74
+ var ChartTooltip = RechartsPrimitive.Tooltip;
75
+ function ChartTooltipContent({
76
+ active,
77
+ payload,
78
+ className,
79
+ indicator = "dot",
80
+ hideLabel = false,
81
+ hideIndicator = false,
82
+ label,
83
+ labelFormatter,
84
+ labelClassName,
85
+ formatter,
86
+ color,
87
+ nameKey,
88
+ labelKey
89
+ }) {
90
+ const { config } = useChart();
91
+ const tooltipLabel = React.useMemo(() => {
92
+ if (hideLabel || !payload?.length) {
93
+ return null;
94
+ }
95
+ const [item] = payload;
96
+ const key = `${labelKey ?? item?.dataKey ?? item?.name ?? "value"}`;
97
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
98
+ const value = !labelKey && typeof label === "string" ? config[label]?.label ?? label : itemConfig?.label;
99
+ if (labelFormatter) {
100
+ return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
101
+ }
102
+ if (!value) {
103
+ return null;
104
+ }
105
+ return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: value });
106
+ }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);
107
+ if (!active || !payload?.length) {
108
+ return null;
109
+ }
110
+ const nestLabel = payload.length === 1 && indicator !== "dot";
111
+ return /* @__PURE__ */ jsxs(
112
+ "div",
113
+ {
114
+ className: cn(
115
+ "border-border/50 bg-background-primary grid min-w-32 items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",
116
+ className
117
+ ),
118
+ children: [
119
+ !nestLabel ? tooltipLabel : null,
120
+ /* @__PURE__ */ jsx("div", { className: "grid gap-1.5", children: payload.filter((item) => item.type !== "none").map((item, index) => {
121
+ const key = `${nameKey ?? item.name ?? item.dataKey ?? "value"}`;
122
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
123
+ const indicatorColor = color ?? item.payload?.fill ?? item.color;
124
+ return /* @__PURE__ */ jsx(
125
+ "div",
126
+ {
127
+ className: cn(
128
+ "[&>svg]:text-text-muted flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",
129
+ indicator === "dot" && "items-center"
130
+ ),
131
+ children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs(Fragment, { children: [
132
+ itemConfig?.icon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : !hideIndicator && (() => {
133
+ const indicatorStyle = {
134
+ "--color-bg": indicatorColor,
135
+ "--color-border": indicatorColor
136
+ };
137
+ return /* @__PURE__ */ jsx(
138
+ "div",
139
+ {
140
+ className: cn(
141
+ "shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
142
+ {
143
+ "h-2.5 w-2.5": indicator === "dot",
144
+ "w-1": indicator === "line",
145
+ "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
146
+ "my-0.5": nestLabel && indicator === "dashed"
147
+ }
148
+ ),
149
+ style: indicatorStyle
150
+ }
151
+ );
152
+ })(),
153
+ /* @__PURE__ */ jsxs(
154
+ "div",
155
+ {
156
+ className: cn(
157
+ "flex flex-1 justify-between leading-none",
158
+ nestLabel ? "items-end" : "items-center"
159
+ ),
160
+ children: [
161
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-1.5", children: [
162
+ nestLabel ? tooltipLabel : null,
163
+ /* @__PURE__ */ jsx("span", { className: "text-text-muted", children: itemConfig?.label ?? item.name })
164
+ ] }),
165
+ item.value != null && /* @__PURE__ */ jsx("span", { className: "text-text-normal font-mono font-medium tabular-nums", children: typeof item.value === "number" ? item.value.toLocaleString() : String(item.value) })
166
+ ]
167
+ }
168
+ )
169
+ ] })
170
+ },
171
+ index
172
+ );
173
+ }) })
174
+ ]
175
+ }
176
+ );
177
+ }
178
+ var ChartLegend = RechartsPrimitive.Legend;
179
+ function ChartLegendContent({
180
+ className,
181
+ hideIcon = false,
182
+ payload,
183
+ verticalAlign = "bottom",
184
+ nameKey
185
+ }) {
186
+ const { config } = useChart();
187
+ if (!payload?.length) {
188
+ return null;
189
+ }
190
+ return /* @__PURE__ */ jsx(
191
+ "div",
192
+ {
193
+ className: cn(
194
+ "flex items-center justify-center gap-4",
195
+ verticalAlign === "top" ? "pb-3" : "pt-3",
196
+ className
197
+ ),
198
+ children: payload.filter((item) => item.type !== "none").map((item, index) => {
199
+ const key = `${nameKey ?? item.dataKey ?? "value"}`;
200
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
201
+ return /* @__PURE__ */ jsxs(
202
+ "div",
203
+ {
204
+ className: cn(
205
+ "[&>svg]:text-text-muted flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"
206
+ ),
207
+ children: [
208
+ itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsx(
209
+ "div",
210
+ {
211
+ className: "h-2 w-2 shrink-0 rounded-[2px]",
212
+ style: {
213
+ backgroundColor: item.color
214
+ }
215
+ }
216
+ ),
217
+ itemConfig?.label
218
+ ]
219
+ },
220
+ index
221
+ );
222
+ })
223
+ }
224
+ );
225
+ }
226
+ function getStringProperty(source, key) {
227
+ const entry = Object.entries(source).find(([entryKey]) => entryKey === key);
228
+ const value = entry?.[1];
229
+ return typeof value === "string" ? value : void 0;
230
+ }
231
+ function getPayloadConfigFromPayload(config, payload, key) {
232
+ if (typeof payload !== "object" || payload === null) {
233
+ return void 0;
234
+ }
235
+ const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
236
+ let configLabelKey = key;
237
+ const payloadValue = getStringProperty(payload, key);
238
+ const nestedPayloadValue = payloadPayload ? getStringProperty(payloadPayload, key) : void 0;
239
+ if (payloadValue !== void 0) {
240
+ configLabelKey = payloadValue;
241
+ } else if (nestedPayloadValue !== void 0) {
242
+ configLabelKey = nestedPayloadValue;
243
+ }
244
+ return configLabelKey in config ? config[configLabelKey] : config[key];
245
+ }
246
+ export {
247
+ ChartContainer,
248
+ ChartLegend,
249
+ ChartLegendContent,
250
+ ChartStyle,
251
+ ChartTooltip,
252
+ ChartTooltipContent
253
+ };
254
+ //# sourceMappingURL=chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/chart.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport * as RechartsPrimitive from \"recharts\"\n\nimport { cn } from \"@hyunsdev/ui/lib/utils\"\n\nimport type { TooltipValueType } from \"recharts\"\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const\n\nconst INITIAL_DIMENSION = { width: 320, height: 200 } as const\nconst THEME_ENTRIES = [\n [\"light\", THEMES.light],\n [\"dark\", THEMES.dark],\n] as const\ntype TooltipNameType = number | string\ntype ChartIndicatorStyle = React.CSSProperties & {\n \"--color-bg\"?: string\n \"--color-border\"?: string\n}\n\nexport type ChartConfig = Record<\n string,\n {\n label?: React.ReactNode\n icon?: React.ComponentType\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n )\n>\n\ntype ChartContextProps = {\n config: ChartConfig\n}\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null)\n\nfunction useChart() {\n const context = React.useContext(ChartContext)\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\")\n }\n\n return context\n}\n\nfunction ChartContainer({\n id,\n className,\n children,\n config,\n initialDimension = INITIAL_DIMENSION,\n ...props\n}: React.ComponentProps<\"div\"> & {\n config: ChartConfig\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>[\"children\"]\n initialDimension?: {\n width: number\n height: number\n }\n}) {\n const uniqueId = React.useId()\n const chartId = `chart-${id ?? uniqueId.replace(/:/g, \"\")}`\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-slot=\"chart\"\n data-chart={chartId}\n className={cn(\n \"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\n className,\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer initialDimension={initialDimension}>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n )\n}\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(([, config]) => config.theme ?? config.color)\n\n if (!colorConfig.length) {\n return null\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: THEME_ENTRIES.map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color = itemConfig.theme?.[theme] ?? itemConfig.color\n return color ? ` --color-${key}: ${color};` : null\n })\n .join(\"\\n\")}\n}\n`,\n ).join(\"\\n\"),\n }}\n />\n )\n}\n\nconst ChartTooltip = RechartsPrimitive.Tooltip\n\nfunction ChartTooltipContent({\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n}: React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<\"div\"> & {\n hideLabel?: boolean\n hideIndicator?: boolean\n indicator?: \"line\" | \"dot\" | \"dashed\"\n nameKey?: string\n labelKey?: string\n } & Omit<\n RechartsPrimitive.DefaultTooltipContentProps<TooltipValueType, TooltipNameType>,\n \"accessibilityLayer\"\n >) {\n const { config } = useChart()\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null\n }\n\n const [item] = payload\n const key = `${labelKey ?? item?.dataKey ?? item?.name ?? \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const value =\n !labelKey && typeof label === \"string\" ? (config[label]?.label ?? label) : itemConfig?.label\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-medium\", labelClassName)}>{labelFormatter(value, payload)}</div>\n )\n }\n\n if (!value) {\n return null\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey])\n\n if (!active || !payload?.length) {\n return null\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\"\n\n return (\n <div\n className={cn(\n \"border-border/50 bg-background-primary grid min-w-32 items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl\",\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item, index) => {\n const key = `${nameKey ?? item.name ?? item.dataKey ?? \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const indicatorColor = color ?? item.payload?.fill ?? item.color\n\n return (\n <div\n key={index}\n className={cn(\n \"[&>svg]:text-text-muted flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5\",\n indicator === \"dot\" && \"items-center\",\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator &&\n (() => {\n const indicatorStyle: ChartIndicatorStyle = {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n }\n\n return (\n <div\n className={cn(\n \"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n },\n )}\n style={indicatorStyle}\n />\n )\n })()\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\",\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-text-muted\">{itemConfig?.label ?? item.name}</span>\n </div>\n {item.value != null && (\n <span className=\"text-text-normal font-mono font-medium tabular-nums\">\n {typeof item.value === \"number\"\n ? item.value.toLocaleString()\n : String(item.value)}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n}\n\nconst ChartLegend = RechartsPrimitive.Legend\n\nfunction ChartLegendContent({\n className,\n hideIcon = false,\n payload,\n verticalAlign = \"bottom\",\n nameKey,\n}: React.ComponentProps<\"div\"> & {\n hideIcon?: boolean\n nameKey?: string\n} & RechartsPrimitive.DefaultLegendContentProps) {\n const { config } = useChart()\n\n if (!payload?.length) {\n return null\n }\n\n return (\n <div\n className={cn(\n \"flex items-center justify-center gap-4\",\n verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\n className,\n )}\n >\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item, index) => {\n const key = `${nameKey ?? item.dataKey ?? \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n\n return (\n <div\n key={index}\n className={cn(\n \"[&>svg]:text-text-muted flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3\",\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n )\n })}\n </div>\n )\n}\n\nfunction getStringProperty(source: object, key: string) {\n const entry = Object.entries(source).find(([entryKey]) => entryKey === key)\n const value = entry?.[1]\n\n return typeof value === \"string\" ? value : undefined\n}\n\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined\n }\n\n const payloadPayload =\n \"payload\" in payload && typeof payload.payload === \"object\" && payload.payload !== null\n ? payload.payload\n : undefined\n\n let configLabelKey: string = key\n\n const payloadValue = getStringProperty(payload, key)\n const nestedPayloadValue = payloadPayload ? getStringProperty(payloadPayload, key) : undefined\n\n if (payloadValue !== undefined) {\n configLabelKey = payloadValue\n } else if (nestedPayloadValue !== undefined) {\n configLabelKey = nestedPayloadValue\n }\n\n return configLabelKey in config ? config[configLabelKey] : config[key]\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n}\n"],"mappings":"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","names":["config"]}
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
3
+
4
+ declare function Checkbox({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>): React.JSX.Element;
5
+
6
+ export { Checkbox };
@@ -0,0 +1,41 @@
1
+ "use client";
2
+ import {
3
+ fieldFocusClass,
4
+ fieldInvalidClass
5
+ } from "../chunk-O2BG2KSY.js";
6
+ import {
7
+ cn
8
+ } from "../chunk-DN2AEEA2.js";
9
+
10
+ // src/components/checkbox.tsx
11
+ import "react";
12
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
13
+ import { CheckIcon } from "lucide-react";
14
+ import { jsx } from "react/jsx-runtime";
15
+ function Checkbox({ className, ...props }) {
16
+ return /* @__PURE__ */ jsx(
17
+ CheckboxPrimitive.Root,
18
+ {
19
+ "data-slot": "checkbox",
20
+ className: cn(
21
+ "peer border-field-border bg-field-background text-field-text disabled:bg-field-background-disabled aria-invalid:aria-checked:border-interactive-accent data-checked:border-interactive-accent data-checked:bg-interactive-accent data-checked:text-text-on-accent data-checked:hover:bg-interactive-accent-hover data-checked:hover:border-interactive-accent-hover data-checked:active:bg-interactive-accent-active-hover data-checked:active:border-interactive-accent-active-hover relative flex size-4 shrink-0 cursor-pointer items-center justify-center rounded-[4px] border transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 disabled:cursor-not-allowed disabled:opacity-50",
22
+ fieldFocusClass,
23
+ fieldInvalidClass,
24
+ className
25
+ ),
26
+ ...props,
27
+ children: /* @__PURE__ */ jsx(
28
+ CheckboxPrimitive.Indicator,
29
+ {
30
+ "data-slot": "checkbox-indicator",
31
+ className: "grid place-content-center text-current transition-none [&>svg]:size-3.5",
32
+ children: /* @__PURE__ */ jsx(CheckIcon, {})
33
+ }
34
+ )
35
+ }
36
+ );
37
+ }
38
+ export {
39
+ Checkbox
40
+ };
41
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/checkbox.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { CheckIcon } from \"lucide-react\"\n\nimport { cn } from \"@hyunsdev/ui/lib/utils\"\n\nimport { fieldFocusClass, fieldInvalidClass } from \"./_styles\"\n\nfunction Checkbox({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer border-field-border bg-field-background text-field-text disabled:bg-field-background-disabled aria-invalid:aria-checked:border-interactive-accent data-checked:border-interactive-accent data-checked:bg-interactive-accent data-checked:text-text-on-accent data-checked:hover:bg-interactive-accent-hover data-checked:hover:border-interactive-accent-hover data-checked:active:bg-interactive-accent-active-hover data-checked:active:border-interactive-accent-active-hover relative flex size-4 shrink-0 cursor-pointer items-center justify-center rounded-[4px] border transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 disabled:cursor-not-allowed disabled:opacity-50\",\n fieldFocusClass,\n fieldInvalidClass,\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none [&>svg]:size-3.5\"\n >\n <CheckIcon />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n"],"mappings":";;;;;;;;;;AAEA,OAAuB;AAEvB,YAAY,uBAAuB;AACnC,SAAS,iBAAiB;AAsBlB;AAhBR,SAAS,SAAS,EAAE,WAAW,GAAG,MAAM,GAAwD;AAC9F,SACE;AAAA,IAAmB;AAAA,IAAlB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,QAAmB;AAAA,QAAlB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,UAEV,8BAAC,aAAU;AAAA;AAAA,MACb;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -0,0 +1,3 @@
1
+ export { d as CodeBlock, b as CodeBlockHighlighter, c as CodeBlockLineNumbers, e as CodeBlockProps, a as CodeBlockThemeMap } from '../code-block-core-xkE94Rk5.js';
2
+ import 'react';
3
+ import 'shiki';
@@ -0,0 +1,13 @@
1
+ "use client";
2
+ import {
3
+ CodeBlockCore
4
+ } from "../chunk-5JCWC7IU.js";
5
+ import "../chunk-UXCBLYG6.js";
6
+ import "../chunk-3RTSANKB.js";
7
+ import "../chunk-TU5CYBB4.js";
8
+ import "../chunk-O2BG2KSY.js";
9
+ import "../chunk-DN2AEEA2.js";
10
+ export {
11
+ CodeBlockCore as CodeBlock
12
+ };
13
+ //# sourceMappingURL=code-block-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ import { C as CodeBlockCommonProps, a as CodeBlockThemeMap, b as CodeBlockHighlighter } from '../code-block-core-xkE94Rk5.js';
3
+ export { c as CodeBlockLineNumbers } from '../code-block-core-xkE94Rk5.js';
4
+ import { Awaitable, RegexEngine, LanguageInput, ThemeInput } from 'shiki';
5
+
6
+ type CodeBlockShikiBundle<LanguageName extends string = string, ThemeName extends string = string> = {
7
+ engine?: () => Awaitable<RegexEngine>;
8
+ fallbackLanguage?: LanguageName | string;
9
+ languages: Record<LanguageName, LanguageInput>;
10
+ themeNames: CodeBlockThemeMap<ThemeName>;
11
+ themes: Record<ThemeName, ThemeInput>;
12
+ };
13
+ type CodeBlockCustomProps = CodeBlockCommonProps & {
14
+ fallbackLanguage?: string | undefined;
15
+ shiki: CodeBlockShikiBundle;
16
+ };
17
+ declare function createCodeBlockShikiHighlighter(shiki: CodeBlockShikiBundle): () => Promise<CodeBlockHighlighter>;
18
+ declare function CodeBlockCustom({ fallbackLanguage, shiki, ...props }: CodeBlockCustomProps): React.JSX.Element;
19
+
20
+ export { CodeBlockCustom as CodeBlock, CodeBlockHighlighter, type CodeBlockCustomProps as CodeBlockProps, type CodeBlockShikiBundle, CodeBlockThemeMap, createCodeBlockShikiHighlighter };
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ import {
3
+ CodeBlockCustom,
4
+ createCodeBlockShikiHighlighter
5
+ } from "../chunk-T64WPXSC.js";
6
+ import "../chunk-5JCWC7IU.js";
7
+ import "../chunk-UXCBLYG6.js";
8
+ import "../chunk-3RTSANKB.js";
9
+ import "../chunk-TU5CYBB4.js";
10
+ import "../chunk-O2BG2KSY.js";
11
+ import "../chunk-DN2AEEA2.js";
12
+ export {
13
+ CodeBlockCustom as CodeBlock,
14
+ createCodeBlockShikiHighlighter
15
+ };
16
+ //# sourceMappingURL=code-block-custom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ import { C as CodeBlockCommonProps } from '../code-block-core-xkE94Rk5.js';
3
+ export { c as CodeBlockLineNumbers, a as CodeBlockThemeMap } from '../code-block-core-xkE94Rk5.js';
4
+ import { CodeBlockShikiBundle } from './code-block-custom.js';
5
+ import 'shiki';
6
+
7
+ type CodeBlockProps = CodeBlockCommonProps & {
8
+ fallbackLanguage?: string | undefined;
9
+ shiki?: CodeBlockShikiBundle;
10
+ };
11
+ declare function CodeBlock({ fallbackLanguage, shiki, ...props }: CodeBlockProps): React.JSX.Element;
12
+
13
+ export { CodeBlock, type CodeBlockProps, CodeBlockShikiBundle };
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ import {
3
+ CodeBlock
4
+ } from "../chunk-D7W4RSQX.js";
5
+ import "../chunk-T64WPXSC.js";
6
+ import "../chunk-5JCWC7IU.js";
7
+ import "../chunk-UXCBLYG6.js";
8
+ import "../chunk-3RTSANKB.js";
9
+ import "../chunk-TU5CYBB4.js";
10
+ import "../chunk-O2BG2KSY.js";
11
+ import "../chunk-DN2AEEA2.js";
12
+ export {
13
+ CodeBlock
14
+ };
15
+ //# sourceMappingURL=code-block-shiki.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,5 @@
1
+ export { CodeBlock, CodeBlockProps } from './code-block-shiki.js';
2
+ export { c as CodeBlockLineNumbers, a as CodeBlockThemeMap } from '../code-block-core-xkE94Rk5.js';
3
+ export { CodeBlockShikiBundle } from './code-block-custom.js';
4
+ import 'react';
5
+ import 'shiki';
@@ -0,0 +1,14 @@
1
+ import {
2
+ CodeBlock
3
+ } from "../chunk-D7W4RSQX.js";
4
+ import "../chunk-T64WPXSC.js";
5
+ import "../chunk-5JCWC7IU.js";
6
+ import "../chunk-UXCBLYG6.js";
7
+ import "../chunk-3RTSANKB.js";
8
+ import "../chunk-TU5CYBB4.js";
9
+ import "../chunk-O2BG2KSY.js";
10
+ import "../chunk-DN2AEEA2.js";
11
+ export {
12
+ CodeBlock
13
+ };
14
+ //# sourceMappingURL=code-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,8 @@
1
+ import * as React$1 from 'react';
2
+ import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
3
+
4
+ declare function Collapsible({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root>): React$1.JSX.Element;
5
+ declare function CollapsibleTrigger({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>): React$1.JSX.Element;
6
+ declare function CollapsibleContent({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>): React$1.JSX.Element;
7
+
8
+ export { Collapsible, CollapsibleContent, CollapsibleTrigger };
@@ -0,0 +1,24 @@
1
+ "use client";
2
+
3
+ // src/components/collapsible.tsx
4
+ import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
5
+ import { jsx } from "react/jsx-runtime";
6
+ function Collapsible({ ...props }) {
7
+ return /* @__PURE__ */ jsx(CollapsiblePrimitive.Root, { "data-slot": "collapsible", ...props });
8
+ }
9
+ function CollapsibleTrigger2({
10
+ ...props
11
+ }) {
12
+ return /* @__PURE__ */ jsx(CollapsiblePrimitive.CollapsibleTrigger, { "data-slot": "collapsible-trigger", ...props });
13
+ }
14
+ function CollapsibleContent2({
15
+ ...props
16
+ }) {
17
+ return /* @__PURE__ */ jsx(CollapsiblePrimitive.CollapsibleContent, { "data-slot": "collapsible-content", ...props });
18
+ }
19
+ export {
20
+ Collapsible,
21
+ CollapsibleContent2 as CollapsibleContent,
22
+ CollapsibleTrigger2 as CollapsibleTrigger
23
+ };
24
+ //# sourceMappingURL=collapsible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/collapsible.tsx"],"sourcesContent":["\"use client\"\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nfunction Collapsible({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return <CollapsiblePrimitive.CollapsibleTrigger data-slot=\"collapsible-trigger\" {...props} />\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return <CollapsiblePrimitive.CollapsibleContent data-slot=\"collapsible-content\" {...props} />\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n"],"mappings":";;;AAEA,YAAY,0BAA0B;AAG7B;AADT,SAAS,YAAY,EAAE,GAAG,MAAM,GAA2D;AACzF,SAAO,oBAAsB,2BAArB,EAA0B,aAAU,eAAe,GAAG,OAAO;AACvE;AAEA,SAASA,oBAAmB;AAAA,EAC1B,GAAG;AACL,GAAyE;AACvE,SAAO,oBAAsB,yCAArB,EAAwC,aAAU,uBAAuB,GAAG,OAAO;AAC7F;AAEA,SAASC,oBAAmB;AAAA,EAC1B,GAAG;AACL,GAAyE;AACvE,SAAO,oBAAsB,yCAArB,EAAwC,aAAU,uBAAuB,GAAG,OAAO;AAC7F;","names":["CollapsibleTrigger","CollapsibleContent"]}
@@ -0,0 +1,63 @@
1
+ import * as React$1 from 'react';
2
+ import { Button } from './button.js';
3
+ import 'class-variance-authority/types';
4
+ import 'class-variance-authority';
5
+
6
+ declare function Collection({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
7
+ declare function CollectionViewport({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
8
+
9
+ type PaginationItem = number | "ellipsis";
10
+ declare function CollectionFooter({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
11
+ declare function CollectionFooterStart({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
12
+ declare function CollectionFooterCenter({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
13
+ declare function CollectionFooterEnd({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
14
+ declare function getPaginationItems(currentPage: number, totalPages: number): PaginationItem[];
15
+ declare function CollectionPagination({ className, ...props }: React.ComponentProps<"nav">): React$1.JSX.Element;
16
+ declare function CollectionPaginationPrev({ className, variant, size, children, "aria-label": ariaLabel, ...props }: React.ComponentProps<typeof Button>): React$1.JSX.Element;
17
+ declare function CollectionPaginationEllipsis({ className, ...props }: React.ComponentProps<"span">): React$1.JSX.Element;
18
+ type CollectionPaginationValueProps = React.ComponentProps<typeof Button> & {
19
+ isActive?: boolean;
20
+ };
21
+ declare function CollectionPaginationValue({ className, variant, size, isActive, applied, ...props }: CollectionPaginationValueProps): React$1.JSX.Element;
22
+ declare function CollectionPaginationNext({ className, variant, size, children, "aria-label": ariaLabel, ...props }: React.ComponentProps<typeof Button>): React$1.JSX.Element;
23
+
24
+ declare function CollectionGrid({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
25
+ declare function CollectionGridItem({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
26
+ declare function CollectionGridItemHeader({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
27
+ declare function CollectionGridItemContent({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
28
+ declare function CollectionGridItemTitle({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
29
+ declare function CollectionGridItemDescription({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
30
+ declare function CollectionGridItemFooter({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
31
+
32
+ declare function CollectionHeader({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
33
+ declare function CollectionActionBar({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
34
+ declare function CollectionActionBarStart({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
35
+ declare function CollectionActionBarEnd({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
36
+ declare function CollectionActionButton({ className, variant, size, tooltip, ...props }: React.ComponentProps<typeof Button> & {
37
+ tooltip?: React.ReactNode;
38
+ }): React$1.JSX.Element;
39
+ declare function CollectionQueryBar({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
40
+ declare function CollectionQueryBarStart({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
41
+ declare function CollectionQueryBarEnd({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
42
+ declare function CollectionQueryBarStatus({ className, children, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
43
+
44
+ declare function CollectionList({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
45
+ declare function CollectionListItem({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
46
+ declare function CollectionListItemContent({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
47
+ declare function CollectionListItemTitle({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
48
+ declare function CollectionListItemDescription({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
49
+ declare function CollectionListItemMeta({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
50
+
51
+ declare function CollectionTable({ className, ...props }: React$1.ComponentProps<"table">): React$1.JSX.Element;
52
+ declare function CollectionTableHeader({ className, ...props }: React$1.ComponentProps<"thead">): React$1.JSX.Element;
53
+ declare function CollectionTableBody({ className, ...props }: React$1.ComponentProps<"tbody">): React$1.JSX.Element;
54
+ declare function CollectionTableFooter({ className, ...props }: React$1.ComponentProps<"tfoot">): React$1.JSX.Element;
55
+ declare function CollectionTableRow({ className, ...props }: React$1.ComponentProps<"tr">): React$1.JSX.Element;
56
+ declare function CollectionTableTextHead({ className, ...props }: React$1.ComponentProps<"th">): React$1.JSX.Element;
57
+ declare function CollectionTableMenuHead({ className, ...props }: React$1.ComponentProps<"th">): React$1.JSX.Element;
58
+ declare function CollectionTableMenuHeadInner({ className, ...props }: React$1.ComponentProps<"div">): React$1.JSX.Element;
59
+ declare function CollectionTableCell({ className, ...props }: React$1.ComponentProps<"td">): React$1.JSX.Element;
60
+ declare function CollectionTableCellActions({ className, ...props }: React$1.ComponentProps<"div">): React$1.JSX.Element;
61
+ declare function CollectionTableCellAction({ className, variant, size, ...props }: React$1.ComponentProps<typeof Button>): React$1.JSX.Element;
62
+
63
+ export { Collection, CollectionActionBar, CollectionActionBarEnd, CollectionActionBarStart, CollectionActionButton, CollectionFooter, CollectionFooterCenter, CollectionFooterEnd, CollectionFooterStart, CollectionGrid, CollectionGridItem, CollectionGridItemContent, CollectionGridItemDescription, CollectionGridItemFooter, CollectionGridItemHeader, CollectionGridItemTitle, CollectionHeader, CollectionList, CollectionListItem, CollectionListItemContent, CollectionListItemDescription, CollectionListItemMeta, CollectionListItemTitle, CollectionPagination, CollectionPaginationEllipsis, CollectionPaginationNext, CollectionPaginationPrev, CollectionPaginationValue, CollectionQueryBar, CollectionQueryBarEnd, CollectionQueryBarStart, CollectionQueryBarStatus, CollectionTable, CollectionTableBody, CollectionTableCell, CollectionTableCellAction, CollectionTableCellActions, CollectionTableFooter, CollectionTableHeader, CollectionTableMenuHead, CollectionTableMenuHeadInner, CollectionTableRow, CollectionTableTextHead, CollectionViewport, getPaginationItems };