@docyrus/shadcn 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 (343) hide show
  1. package/README.md +158 -0
  2. package/dist/default/accordion.d.ts +9 -0
  3. package/dist/default/accordion.js +51 -0
  4. package/dist/default/accordion.js.map +1 -0
  5. package/dist/default/alert-dialog.d.ts +23 -0
  6. package/dist/default/alert-dialog.js +153 -0
  7. package/dist/default/alert-dialog.js.map +1 -0
  8. package/dist/default/alert.d.ts +11 -0
  9. package/dist/default/alert.js +56 -0
  10. package/dist/default/alert.js.map +1 -0
  11. package/dist/default/aspect-ratio.d.ts +6 -0
  12. package/dist/default/aspect-ratio.js +8 -0
  13. package/dist/default/aspect-ratio.js.map +1 -0
  14. package/dist/default/avatar.d.ts +8 -0
  15. package/dist/default/avatar.js +46 -0
  16. package/dist/default/avatar.js.map +1 -0
  17. package/dist/default/badge.d.ts +13 -0
  18. package/dist/default/badge.js +32 -0
  19. package/dist/default/badge.js.map +1 -0
  20. package/dist/default/breadcrumb.d.ts +22 -0
  21. package/dist/default/breadcrumb.js +94 -0
  22. package/dist/default/breadcrumb.js.map +1 -0
  23. package/dist/default/button-group.d.ts +17 -0
  24. package/dist/default/button-group.js +98 -0
  25. package/dist/default/button-group.js.map +1 -0
  26. package/dist/default/button.d.ts +14 -0
  27. package/dist/default/button.js +54 -0
  28. package/dist/default/button.js.map +1 -0
  29. package/dist/default/calendar.d.ts +13 -0
  30. package/dist/default/calendar.js +231 -0
  31. package/dist/default/calendar.js.map +1 -0
  32. package/dist/default/card.d.ts +10 -0
  33. package/dist/default/card.js +66 -0
  34. package/dist/default/card.js.map +1 -0
  35. package/dist/default/carousel.d.ts +23 -0
  36. package/dist/default/carousel.js +237 -0
  37. package/dist/default/carousel.js.map +1 -0
  38. package/dist/default/chart.d.ts +69 -0
  39. package/dist/default/chart.js +241 -0
  40. package/dist/default/chart.js.map +1 -0
  41. package/dist/default/checkbox.d.ts +6 -0
  42. package/dist/default/checkbox.js +34 -0
  43. package/dist/default/checkbox.js.map +1 -0
  44. package/dist/default/collapsible.d.ts +8 -0
  45. package/dist/default/collapsible.js +9 -0
  46. package/dist/default/collapsible.js.map +1 -0
  47. package/dist/default/command.d.ts +83 -0
  48. package/dist/default/command.js +169 -0
  49. package/dist/default/command.js.map +1 -0
  50. package/dist/default/context-menu.d.ts +30 -0
  51. package/dist/default/context-menu.js +146 -0
  52. package/dist/default/context-menu.js.map +1 -0
  53. package/dist/default/dialog.d.ts +22 -0
  54. package/dist/default/dialog.js +101 -0
  55. package/dist/default/dialog.js.map +1 -0
  56. package/dist/default/drawer.d.ts +27 -0
  57. package/dist/default/drawer.js +99 -0
  58. package/dist/default/drawer.js.map +1 -0
  59. package/dist/default/dropdown-menu.d.ts +30 -0
  60. package/dist/default/dropdown-menu.js +143 -0
  61. package/dist/default/dropdown-menu.js.map +1 -0
  62. package/dist/default/empty.d.ts +15 -0
  63. package/dist/default/empty.js +104 -0
  64. package/dist/default/empty.js.map +1 -0
  65. package/dist/default/field.d.ts +30 -0
  66. package/dist/default/field.js +253 -0
  67. package/dist/default/field.js.map +1 -0
  68. package/dist/default/form.d.ts +28 -0
  69. package/dist/default/form.js +121 -0
  70. package/dist/default/form.js.map +1 -0
  71. package/dist/default/hover-card.d.ts +8 -0
  72. package/dist/default/hover-card.js +30 -0
  73. package/dist/default/hover-card.js.map +1 -0
  74. package/dist/default/index.d.ts +95 -0
  75. package/dist/default/index.js +4029 -0
  76. package/dist/default/index.js.map +1 -0
  77. package/dist/default/input-group.d.ts +20 -0
  78. package/dist/default/input-group.js +225 -0
  79. package/dist/default/input-group.js.map +1 -0
  80. package/dist/default/input-otp.d.ts +37 -0
  81. package/dist/default/input-otp.js +53 -0
  82. package/dist/default/input-otp.js.map +1 -0
  83. package/dist/default/input.d.ts +5 -0
  84. package/dist/default/input.js +30 -0
  85. package/dist/default/input.js.map +1 -0
  86. package/dist/default/item.d.ts +28 -0
  87. package/dist/default/item.js +203 -0
  88. package/dist/default/item.js.map +1 -0
  89. package/dist/default/kbd.d.ts +6 -0
  90. package/dist/default/kbd.js +37 -0
  91. package/dist/default/kbd.js.map +1 -0
  92. package/dist/default/label.d.ts +8 -0
  93. package/dist/default/label.js +26 -0
  94. package/dist/default/label.js.map +1 -0
  95. package/dist/default/menubar.d.ts +31 -0
  96. package/dist/default/menubar.js +194 -0
  97. package/dist/default/menubar.js.map +1 -0
  98. package/dist/default/navigation-menu.d.ts +15 -0
  99. package/dist/default/navigation-menu.js +106 -0
  100. package/dist/default/navigation-menu.js.map +1 -0
  101. package/dist/default/pagination.d.ts +33 -0
  102. package/dist/default/pagination.js +146 -0
  103. package/dist/default/pagination.js.map +1 -0
  104. package/dist/default/popover.d.ts +8 -0
  105. package/dist/default/popover.js +30 -0
  106. package/dist/default/popover.js.map +1 -0
  107. package/dist/default/progress.d.ts +6 -0
  108. package/dist/default/progress.js +32 -0
  109. package/dist/default/progress.js.map +1 -0
  110. package/dist/default/radio-group.d.ts +7 -0
  111. package/dist/default/radio-group.js +41 -0
  112. package/dist/default/radio-group.js.map +1 -0
  113. package/dist/default/resizable.d.ts +27 -0
  114. package/dist/default/resizable.js +42 -0
  115. package/dist/default/resizable.js.map +1 -0
  116. package/dist/default/scroll-area.d.ts +7 -0
  117. package/dist/default/scroll-area.js +44 -0
  118. package/dist/default/scroll-area.js.map +1 -0
  119. package/dist/default/select.d.ts +15 -0
  120. package/dist/default/select.js +121 -0
  121. package/dist/default/select.js.map +1 -0
  122. package/dist/default/separator.d.ts +6 -0
  123. package/dist/default/separator.js +31 -0
  124. package/dist/default/separator.js.map +1 -0
  125. package/dist/default/sheet.d.ts +29 -0
  126. package/dist/default/sheet.js +112 -0
  127. package/dist/default/sheet.js.map +1 -0
  128. package/dist/default/sidebar.d.ts +71 -0
  129. package/dist/default/sidebar.js +780 -0
  130. package/dist/default/sidebar.js.map +1 -0
  131. package/dist/default/skeleton.d.ts +5 -0
  132. package/dist/default/skeleton.js +24 -0
  133. package/dist/default/skeleton.js.map +1 -0
  134. package/dist/default/slider.d.ts +6 -0
  135. package/dist/default/slider.js +30 -0
  136. package/dist/default/slider.js.map +1 -0
  137. package/dist/default/sonner.d.ts +7 -0
  138. package/dist/default/sonner.js +35 -0
  139. package/dist/default/sonner.js.map +1 -0
  140. package/dist/default/spinner.d.ts +5 -0
  141. package/dist/default/spinner.js +24 -0
  142. package/dist/default/spinner.js.map +1 -0
  143. package/dist/default/styles.css +149 -0
  144. package/dist/default/switch.d.ts +6 -0
  145. package/dist/default/switch.js +34 -0
  146. package/dist/default/switch.js.map +1 -0
  147. package/dist/default/table.d.ts +12 -0
  148. package/dist/default/table.js +87 -0
  149. package/dist/default/table.js.map +1 -0
  150. package/dist/default/tabs.d.ts +9 -0
  151. package/dist/default/tabs.js +51 -0
  152. package/dist/default/tabs.js.map +1 -0
  153. package/dist/default/textarea.d.ts +5 -0
  154. package/dist/default/textarea.js +27 -0
  155. package/dist/default/textarea.js.map +1 -0
  156. package/dist/default/toggle-group.d.ts +15 -0
  157. package/dist/default/toggle-group.js +77 -0
  158. package/dist/default/toggle-group.js.map +1 -0
  159. package/dist/default/toggle.d.ts +15 -0
  160. package/dist/default/toggle.js +44 -0
  161. package/dist/default/toggle.js.map +1 -0
  162. package/dist/default/tooltip.d.ts +9 -0
  163. package/dist/default/tooltip.js +29 -0
  164. package/dist/default/tooltip.js.map +1 -0
  165. package/dist/hooks/index.d.ts +1 -0
  166. package/dist/hooks/index.js +21 -0
  167. package/dist/hooks/index.js.map +1 -0
  168. package/dist/hooks/use-mobile.d.ts +3 -0
  169. package/dist/hooks/use-mobile.js +21 -0
  170. package/dist/hooks/use-mobile.js.map +1 -0
  171. package/dist/index.d.ts +98 -0
  172. package/dist/index.js +4029 -0
  173. package/dist/index.js.map +1 -0
  174. package/dist/lib/index.d.ts +2 -0
  175. package/dist/lib/index.js +11 -0
  176. package/dist/lib/index.js.map +1 -0
  177. package/dist/lib/utils.d.ts +5 -0
  178. package/dist/lib/utils.js +11 -0
  179. package/dist/lib/utils.js.map +1 -0
  180. package/dist/new-york/accordion.d.ts +10 -0
  181. package/dist/new-york/accordion.js +68 -0
  182. package/dist/new-york/accordion.js.map +1 -0
  183. package/dist/new-york/alert-dialog.d.ts +17 -0
  184. package/dist/new-york/alert-dialog.js +171 -0
  185. package/dist/new-york/alert-dialog.js.map +1 -0
  186. package/dist/new-york/alert.d.ts +13 -0
  187. package/dist/new-york/alert.js +71 -0
  188. package/dist/new-york/alert.js.map +1 -0
  189. package/dist/new-york/aspect-ratio.d.ts +6 -0
  190. package/dist/new-york/aspect-ratio.js +12 -0
  191. package/dist/new-york/aspect-ratio.js.map +1 -0
  192. package/dist/new-york/avatar.d.ts +9 -0
  193. package/dist/new-york/avatar.js +58 -0
  194. package/dist/new-york/avatar.js.map +1 -0
  195. package/dist/new-york/badge.d.ts +13 -0
  196. package/dist/new-york/badge.js +46 -0
  197. package/dist/new-york/badge.js.map +1 -0
  198. package/dist/new-york/breadcrumb.d.ts +14 -0
  199. package/dist/new-york/breadcrumb.js +104 -0
  200. package/dist/new-york/breadcrumb.js.map +1 -0
  201. package/dist/new-york/button-group.d.ts +17 -0
  202. package/dist/new-york/button-group.js +100 -0
  203. package/dist/new-york/button-group.js.map +1 -0
  204. package/dist/new-york/button.d.ts +14 -0
  205. package/dist/new-york/button.js +58 -0
  206. package/dist/new-york/button.js.map +1 -0
  207. package/dist/new-york/calendar.d.ts +13 -0
  208. package/dist/new-york/calendar.js +237 -0
  209. package/dist/new-york/calendar.js.map +1 -0
  210. package/dist/new-york/card.d.ts +12 -0
  211. package/dist/new-york/card.js +91 -0
  212. package/dist/new-york/card.js.map +1 -0
  213. package/dist/new-york/carousel.d.ts +24 -0
  214. package/dist/new-york/carousel.js +246 -0
  215. package/dist/new-york/carousel.js.map +1 -0
  216. package/dist/new-york/chart.d.ts +43 -0
  217. package/dist/new-york/chart.js +243 -0
  218. package/dist/new-york/chart.js.map +1 -0
  219. package/dist/new-york/checkbox.d.ts +7 -0
  220. package/dist/new-york/checkbox.js +37 -0
  221. package/dist/new-york/checkbox.js.map +1 -0
  222. package/dist/new-york/collapsible.d.ts +8 -0
  223. package/dist/new-york/collapsible.js +35 -0
  224. package/dist/new-york/collapsible.js.map +1 -0
  225. package/dist/new-york/command.d.ts +22 -0
  226. package/dist/new-york/command.js +266 -0
  227. package/dist/new-york/command.js.map +1 -0
  228. package/dist/new-york/context-menu.d.ts +28 -0
  229. package/dist/new-york/context-menu.js +215 -0
  230. package/dist/new-york/context-menu.js.map +1 -0
  231. package/dist/new-york/dialog.d.ts +18 -0
  232. package/dist/new-york/dialog.js +134 -0
  233. package/dist/new-york/dialog.js.map +1 -0
  234. package/dist/new-york/drawer.d.ts +16 -0
  235. package/dist/new-york/drawer.js +125 -0
  236. package/dist/new-york/drawer.js.map +1 -0
  237. package/dist/new-york/dropdown-menu.d.ts +28 -0
  238. package/dist/new-york/dropdown-menu.js +224 -0
  239. package/dist/new-york/dropdown-menu.js.map +1 -0
  240. package/dist/new-york/empty.d.ts +15 -0
  241. package/dist/new-york/empty.js +104 -0
  242. package/dist/new-york/empty.js.map +1 -0
  243. package/dist/new-york/field.d.ts +30 -0
  244. package/dist/new-york/field.js +263 -0
  245. package/dist/new-york/field.js.map +1 -0
  246. package/dist/new-york/form.d.ts +28 -0
  247. package/dist/new-york/form.js +131 -0
  248. package/dist/new-york/form.js.map +1 -0
  249. package/dist/new-york/hover-card.d.ts +9 -0
  250. package/dist/new-york/hover-card.js +42 -0
  251. package/dist/new-york/hover-card.js.map +1 -0
  252. package/dist/new-york/index.d.ts +92 -0
  253. package/dist/new-york/index.js +4965 -0
  254. package/dist/new-york/index.js.map +1 -0
  255. package/dist/new-york/input-group.d.ts +20 -0
  256. package/dist/new-york/input-group.js +226 -0
  257. package/dist/new-york/input-group.js.map +1 -0
  258. package/dist/new-york/input-otp.d.ts +14 -0
  259. package/dist/new-york/input-otp.js +70 -0
  260. package/dist/new-york/input-otp.js.map +1 -0
  261. package/dist/new-york/input.d.ts +6 -0
  262. package/dist/new-york/input.js +28 -0
  263. package/dist/new-york/input.js.map +1 -0
  264. package/dist/new-york/item.d.ts +28 -0
  265. package/dist/new-york/item.js +205 -0
  266. package/dist/new-york/item.js.map +1 -0
  267. package/dist/new-york/kbd.d.ts +6 -0
  268. package/dist/new-york/kbd.js +37 -0
  269. package/dist/new-york/kbd.js.map +1 -0
  270. package/dist/new-york/label.d.ts +7 -0
  271. package/dist/new-york/label.js +28 -0
  272. package/dist/new-york/label.js.map +1 -0
  273. package/dist/new-york/menubar.d.ts +29 -0
  274. package/dist/new-york/menubar.js +243 -0
  275. package/dist/new-york/menubar.js.map +1 -0
  276. package/dist/new-york/navigation-menu.d.ts +18 -0
  277. package/dist/new-york/navigation-menu.js +169 -0
  278. package/dist/new-york/navigation-menu.js.map +1 -0
  279. package/dist/new-york/pagination.d.ts +18 -0
  280. package/dist/new-york/pagination.js +147 -0
  281. package/dist/new-york/pagination.js.map +1 -0
  282. package/dist/new-york/popover.d.ts +10 -0
  283. package/dist/new-york/popover.js +47 -0
  284. package/dist/new-york/popover.js.map +1 -0
  285. package/dist/new-york/progress.d.ts +7 -0
  286. package/dist/new-york/progress.js +38 -0
  287. package/dist/new-york/progress.js.map +1 -0
  288. package/dist/new-york/radio-group.d.ts +8 -0
  289. package/dist/new-york/radio-group.js +50 -0
  290. package/dist/new-york/radio-group.js.map +1 -0
  291. package/dist/new-york/resizable.d.ts +11 -0
  292. package/dist/new-york/resizable.js +53 -0
  293. package/dist/new-york/resizable.js.map +1 -0
  294. package/dist/new-york/scroll-area.d.ts +8 -0
  295. package/dist/new-york/scroll-area.js +65 -0
  296. package/dist/new-york/scroll-area.js.map +1 -0
  297. package/dist/new-york/select.d.ts +18 -0
  298. package/dist/new-york/select.js +169 -0
  299. package/dist/new-york/select.js.map +1 -0
  300. package/dist/new-york/separator.d.ts +7 -0
  301. package/dist/new-york/separator.js +32 -0
  302. package/dist/new-york/separator.js.map +1 -0
  303. package/dist/new-york/sheet.d.ts +16 -0
  304. package/dist/new-york/sheet.js +126 -0
  305. package/dist/new-york/sheet.js.map +1 -0
  306. package/dist/new-york/sidebar.d.ts +75 -0
  307. package/dist/new-york/sidebar.js +859 -0
  308. package/dist/new-york/sidebar.js.map +1 -0
  309. package/dist/new-york/skeleton.d.ts +5 -0
  310. package/dist/new-york/skeleton.js +22 -0
  311. package/dist/new-york/skeleton.js.map +1 -0
  312. package/dist/new-york/slider.d.ts +7 -0
  313. package/dist/new-york/slider.js +69 -0
  314. package/dist/new-york/slider.js.map +1 -0
  315. package/dist/new-york/sonner.d.ts +6 -0
  316. package/dist/new-york/sonner.js +34 -0
  317. package/dist/new-york/sonner.js.map +1 -0
  318. package/dist/new-york/spinner.d.ts +5 -0
  319. package/dist/new-york/spinner.js +24 -0
  320. package/dist/new-york/spinner.js.map +1 -0
  321. package/dist/new-york/styles.css +129 -0
  322. package/dist/new-york/switch.d.ts +7 -0
  323. package/dist/new-york/switch.js +37 -0
  324. package/dist/new-york/switch.js.map +1 -0
  325. package/dist/new-york/table.d.ts +13 -0
  326. package/dist/new-york/table.js +114 -0
  327. package/dist/new-york/table.js.map +1 -0
  328. package/dist/new-york/tabs.d.ts +10 -0
  329. package/dist/new-york/tabs.js +70 -0
  330. package/dist/new-york/tabs.js.map +1 -0
  331. package/dist/new-york/textarea.d.ts +6 -0
  332. package/dist/new-york/textarea.js +25 -0
  333. package/dist/new-york/textarea.js.map +1 -0
  334. package/dist/new-york/toggle-group.d.ts +14 -0
  335. package/dist/new-york/toggle-group.js +95 -0
  336. package/dist/new-york/toggle-group.js.map +1 -0
  337. package/dist/new-york/toggle.d.ts +13 -0
  338. package/dist/new-york/toggle.js +49 -0
  339. package/dist/new-york/toggle.js.map +1 -0
  340. package/dist/new-york/tooltip.d.ts +10 -0
  341. package/dist/new-york/tooltip.js +58 -0
  342. package/dist/new-york/tooltip.js.map +1 -0
  343. package/package.json +133 -0
@@ -0,0 +1,243 @@
1
+ import * as React from 'react';
2
+ import * as RechartsPrimitive from 'recharts';
3
+ import { clsx } from 'clsx';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
+
7
+ function cn(...inputs) {
8
+ return twMerge(clsx(inputs));
9
+ }
10
+ var THEMES = { light: "", dark: ".dark" };
11
+ var ChartContext = React.createContext(null);
12
+ function useChart() {
13
+ const context = React.useContext(ChartContext);
14
+ if (!context) {
15
+ throw new Error("useChart must be used within a <ChartContainer />");
16
+ }
17
+ return context;
18
+ }
19
+ function ChartContainer({
20
+ id,
21
+ className,
22
+ children,
23
+ config,
24
+ ...props
25
+ }) {
26
+ const uniqueId = React.useId();
27
+ const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
28
+ return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
29
+ "div",
30
+ {
31
+ "data-slot": "chart",
32
+ "data-chart": chartId,
33
+ className: cn(
34
+ "[&_.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",
35
+ className
36
+ ),
37
+ ...props,
38
+ children: [
39
+ /* @__PURE__ */ jsx(ChartStyle, { id: chartId, config }),
40
+ /* @__PURE__ */ jsx(RechartsPrimitive.ResponsiveContainer, { children })
41
+ ]
42
+ }
43
+ ) });
44
+ }
45
+ var ChartStyle = ({ id, config }) => {
46
+ const colorConfig = Object.entries(config).filter(
47
+ ([, config2]) => config2.theme || config2.color
48
+ );
49
+ if (!colorConfig.length) {
50
+ return null;
51
+ }
52
+ return /* @__PURE__ */ jsx(
53
+ "style",
54
+ {
55
+ dangerouslySetInnerHTML: {
56
+ __html: Object.entries(THEMES).map(
57
+ ([theme, prefix]) => `
58
+ ${prefix} [data-chart=${id}] {
59
+ ${colorConfig.map(([key, itemConfig]) => {
60
+ const color = itemConfig.theme?.[theme] || itemConfig.color;
61
+ return color ? ` --color-${key}: ${color};` : null;
62
+ }).join("\n")}
63
+ }
64
+ `
65
+ ).join("\n")
66
+ }
67
+ }
68
+ );
69
+ };
70
+ var ChartTooltip = RechartsPrimitive.Tooltip;
71
+ function ChartTooltipContent({
72
+ active,
73
+ payload,
74
+ className,
75
+ indicator = "dot",
76
+ hideLabel = false,
77
+ hideIndicator = false,
78
+ label,
79
+ labelFormatter,
80
+ labelClassName,
81
+ formatter,
82
+ color,
83
+ nameKey,
84
+ labelKey
85
+ }) {
86
+ const { config } = useChart();
87
+ const tooltipLabel = React.useMemo(() => {
88
+ if (hideLabel || !payload?.length) {
89
+ return null;
90
+ }
91
+ const [item] = payload;
92
+ const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
93
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
94
+ const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
95
+ if (labelFormatter) {
96
+ return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
97
+ }
98
+ if (!value) {
99
+ return null;
100
+ }
101
+ return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: value });
102
+ }, [
103
+ label,
104
+ labelFormatter,
105
+ payload,
106
+ hideLabel,
107
+ labelClassName,
108
+ config,
109
+ labelKey
110
+ ]);
111
+ if (!active || !payload?.length) {
112
+ return null;
113
+ }
114
+ const nestLabel = payload.length === 1 && indicator !== "dot";
115
+ return /* @__PURE__ */ jsxs(
116
+ "div",
117
+ {
118
+ className: cn(
119
+ "border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",
120
+ className
121
+ ),
122
+ children: [
123
+ !nestLabel ? tooltipLabel : null,
124
+ /* @__PURE__ */ jsx("div", { className: "grid gap-1.5", children: payload.filter((item) => item.type !== "none").map((item, index) => {
125
+ const key = `${nameKey || item.name || item.dataKey || "value"}`;
126
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
127
+ const indicatorColor = color || item.payload.fill || item.color;
128
+ return /* @__PURE__ */ jsx(
129
+ "div",
130
+ {
131
+ className: cn(
132
+ "[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",
133
+ indicator === "dot" && "items-center"
134
+ ),
135
+ children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs(Fragment, { children: [
136
+ itemConfig?.icon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx(
137
+ "div",
138
+ {
139
+ className: cn(
140
+ "shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
141
+ {
142
+ "h-2.5 w-2.5": indicator === "dot",
143
+ "w-1": indicator === "line",
144
+ "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
145
+ "my-0.5": nestLabel && indicator === "dashed"
146
+ }
147
+ ),
148
+ style: {
149
+ "--color-bg": indicatorColor,
150
+ "--color-border": indicatorColor
151
+ }
152
+ }
153
+ ),
154
+ /* @__PURE__ */ jsxs(
155
+ "div",
156
+ {
157
+ className: cn(
158
+ "flex flex-1 justify-between leading-none",
159
+ nestLabel ? "items-end" : "items-center"
160
+ ),
161
+ children: [
162
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-1.5", children: [
163
+ nestLabel ? tooltipLabel : null,
164
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
165
+ ] }),
166
+ item.value && /* @__PURE__ */ jsx("span", { className: "text-foreground font-mono font-medium tabular-nums", children: item.value.toLocaleString() })
167
+ ]
168
+ }
169
+ )
170
+ ] })
171
+ },
172
+ item.dataKey
173
+ );
174
+ }) })
175
+ ]
176
+ }
177
+ );
178
+ }
179
+ var ChartLegend = RechartsPrimitive.Legend;
180
+ function ChartLegendContent({
181
+ className,
182
+ hideIcon = false,
183
+ payload,
184
+ verticalAlign = "bottom",
185
+ nameKey
186
+ }) {
187
+ const { config } = useChart();
188
+ if (!payload?.length) {
189
+ return null;
190
+ }
191
+ return /* @__PURE__ */ jsx(
192
+ "div",
193
+ {
194
+ className: cn(
195
+ "flex items-center justify-center gap-4",
196
+ verticalAlign === "top" ? "pb-3" : "pt-3",
197
+ className
198
+ ),
199
+ children: payload.filter((item) => item.type !== "none").map((item) => {
200
+ const key = `${nameKey || item.dataKey || "value"}`;
201
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
202
+ return /* @__PURE__ */ jsxs(
203
+ "div",
204
+ {
205
+ className: cn(
206
+ "[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"
207
+ ),
208
+ children: [
209
+ itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsx(
210
+ "div",
211
+ {
212
+ className: "h-2 w-2 shrink-0 rounded-[2px]",
213
+ style: {
214
+ backgroundColor: item.color
215
+ }
216
+ }
217
+ ),
218
+ itemConfig?.label
219
+ ]
220
+ },
221
+ item.value
222
+ );
223
+ })
224
+ }
225
+ );
226
+ }
227
+ function getPayloadConfigFromPayload(config, payload, key) {
228
+ if (typeof payload !== "object" || payload === null) {
229
+ return void 0;
230
+ }
231
+ const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
232
+ let configLabelKey = key;
233
+ if (key in payload && typeof payload[key] === "string") {
234
+ configLabelKey = payload[key];
235
+ } else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
236
+ configLabelKey = payloadPayload[key];
237
+ }
238
+ return configLabelKey in config ? config[configLabelKey] : config[key];
239
+ }
240
+
241
+ export { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };
242
+ //# sourceMappingURL=chart.js.map
243
+ //# sourceMappingURL=chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/utils.ts","../../src/new-york/chart.tsx"],"names":["config"],"mappings":"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","file":"chart.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as RechartsPrimitive from \"recharts\"\n\nimport { cn } from \"@/lib/utils\"\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const\n\nexport type ChartConfig = {\n [k in string]: {\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 ...props\n}: React.ComponentProps<\"div\"> & {\n config: ChartConfig\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"]\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>\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(\n ([, config]) => config.theme || config.color\n )\n\n if (!colorConfig.length) {\n return null\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color\n return color ? ` --color-${key}: ${color};` : null\n })\n .join(\"\\n\")}\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 }) {\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\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-medium\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n )\n }\n\n if (!value) {\n return null\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ])\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 grid min-w-[8rem] 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={item.dataKey}\n className={cn(\n \"[&>svg]:text-muted-foreground 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 <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={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\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-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"text-foreground font-mono font-medium tabular-nums\">\n {item.value.toLocaleString()}\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 Pick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & {\n hideIcon?: boolean\n nameKey?: string\n }) {\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) => {\n const key = `${nameKey || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n\n return (\n <div\n key={item.value}\n className={cn(\n \"[&>svg]:text-muted-foreground 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\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined\n\n let configLabelKey: string = key\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config]\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
4
+
5
+ declare function Checkbox({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>): react_jsx_runtime.JSX.Element;
6
+
7
+ export { Checkbox };
@@ -0,0 +1,37 @@
1
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
2
+ import { CheckIcon } from 'lucide-react';
3
+ import { clsx } from 'clsx';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ function cn(...inputs) {
8
+ return twMerge(clsx(inputs));
9
+ }
10
+ function Checkbox({
11
+ className,
12
+ ...props
13
+ }) {
14
+ return /* @__PURE__ */ jsx(
15
+ CheckboxPrimitive.Root,
16
+ {
17
+ "data-slot": "checkbox",
18
+ className: cn(
19
+ "peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
20
+ className
21
+ ),
22
+ ...props,
23
+ children: /* @__PURE__ */ jsx(
24
+ CheckboxPrimitive.Indicator,
25
+ {
26
+ "data-slot": "checkbox-indicator",
27
+ className: "grid place-content-center text-current transition-none",
28
+ children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5" })
29
+ }
30
+ )
31
+ }
32
+ );
33
+ }
34
+
35
+ export { Checkbox };
36
+ //# sourceMappingURL=checkbox.js.map
37
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/utils.ts","../../src/new-york/checkbox.tsx"],"names":[],"mappings":";;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACGA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwD;AACtD,EAAA,uBACE,GAAA;AAAA,IAAmB,iBAAA,CAAA,IAAA;AAAA,IAAlB;AAAA,MACC,WAAA,EAAU,UAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,6eAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA;AAAA,QAAmB,iBAAA,CAAA,SAAA;AAAA,QAAlB;AAAA,UACC,WAAA,EAAU,oBAAA;AAAA,UACV,SAAA,EAAU,wDAAA;AAAA,UAEV,QAAA,kBAAA,GAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,UAAA,EAAW;AAAA;AAAA;AAClC;AAAA,GACF;AAEJ","file":"checkbox.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { CheckIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n"]}
@@ -0,0 +1,8 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
3
+
4
+ declare function Collapsible({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root>): react_jsx_runtime.JSX.Element;
5
+ declare function CollapsibleTrigger({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>): react_jsx_runtime.JSX.Element;
6
+ declare function CollapsibleContent({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>): react_jsx_runtime.JSX.Element;
7
+
8
+ export { Collapsible, CollapsibleContent, CollapsibleTrigger };
@@ -0,0 +1,35 @@
1
+ import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ // src/new-york/collapsible.tsx
5
+ function Collapsible({
6
+ ...props
7
+ }) {
8
+ return /* @__PURE__ */ jsx(CollapsiblePrimitive.Root, { "data-slot": "collapsible", ...props });
9
+ }
10
+ function CollapsibleTrigger2({
11
+ ...props
12
+ }) {
13
+ return /* @__PURE__ */ jsx(
14
+ CollapsiblePrimitive.CollapsibleTrigger,
15
+ {
16
+ "data-slot": "collapsible-trigger",
17
+ ...props
18
+ }
19
+ );
20
+ }
21
+ function CollapsibleContent2({
22
+ ...props
23
+ }) {
24
+ return /* @__PURE__ */ jsx(
25
+ CollapsiblePrimitive.CollapsibleContent,
26
+ {
27
+ "data-slot": "collapsible-content",
28
+ ...props
29
+ }
30
+ );
31
+ }
32
+
33
+ export { Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger };
34
+ //# sourceMappingURL=collapsible.js.map
35
+ //# sourceMappingURL=collapsible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/new-york/collapsible.tsx"],"names":["CollapsibleTrigger","CollapsibleContent"],"mappings":";;;;AAEA,SAAS,WAAA,CAAY;AAAA,EACnB,GAAG;AACL,CAAA,EAA2D;AACzD,EAAA,2BAA6B,oBAAA,CAAA,IAAA,EAArB,EAA0B,WAAA,EAAU,aAAA,EAAe,GAAG,KAAA,EAAO,CAAA;AACvE;AAEA,SAASA,mBAAAA,CAAmB;AAAA,EAC1B,GAAG;AACL,CAAA,EAAyE;AACvE,EAAA,uBACE,GAAA;AAAA,IAAsB,oBAAA,CAAA,kBAAA;AAAA,IAArB;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAASC,mBAAAA,CAAmB;AAAA,EAC1B,GAAG;AACL,CAAA,EAAyE;AACvE,EAAA,uBACE,GAAA;AAAA,IAAsB,oBAAA,CAAA,kBAAA;AAAA,IAArB;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ","file":"collapsible.js","sourcesContent":["import * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nfunction Collapsible({\n ...props\n}: 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 (\n <CollapsiblePrimitive.CollapsibleTrigger\n data-slot=\"collapsible-trigger\"\n {...props}\n />\n )\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n data-slot=\"collapsible-content\"\n {...props}\n />\n )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n"]}
@@ -0,0 +1,22 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { Command as Command$1 } from 'cmdk';
4
+ import { Dialog } from './dialog.js';
5
+ import '@radix-ui/react-dialog';
6
+
7
+ declare function Command({ className, ...props }: React.ComponentProps<typeof Command$1>): react_jsx_runtime.JSX.Element;
8
+ declare function CommandDialog({ title, description, children, className, showCloseButton, ...props }: React.ComponentProps<typeof Dialog> & {
9
+ title?: string;
10
+ description?: string;
11
+ className?: string;
12
+ showCloseButton?: boolean;
13
+ }): react_jsx_runtime.JSX.Element;
14
+ declare function CommandInput({ className, ...props }: React.ComponentProps<typeof Command$1.Input>): react_jsx_runtime.JSX.Element;
15
+ declare function CommandList({ className, ...props }: React.ComponentProps<typeof Command$1.List>): react_jsx_runtime.JSX.Element;
16
+ declare function CommandEmpty({ ...props }: React.ComponentProps<typeof Command$1.Empty>): react_jsx_runtime.JSX.Element;
17
+ declare function CommandGroup({ className, ...props }: React.ComponentProps<typeof Command$1.Group>): react_jsx_runtime.JSX.Element;
18
+ declare function CommandSeparator({ className, ...props }: React.ComponentProps<typeof Command$1.Separator>): react_jsx_runtime.JSX.Element;
19
+ declare function CommandItem({ className, ...props }: React.ComponentProps<typeof Command$1.Item>): react_jsx_runtime.JSX.Element;
20
+ declare function CommandShortcut({ className, ...props }: React.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
21
+
22
+ export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };