@getgreenline/blaze-ui 1.0.3 → 1.0.4-5.02-beta

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 (258) hide show
  1. package/dist/components/accordion.d.ts +8 -0
  2. package/dist/components/accordion.d.ts.map +1 -0
  3. package/dist/components/accordion.js +19 -0
  4. package/dist/components/alert-dialog.d.ts +18 -0
  5. package/dist/components/alert-dialog.d.ts.map +1 -0
  6. package/dist/components/alert-dialog.js +41 -0
  7. package/dist/components/alert.d.ts +10 -0
  8. package/dist/components/alert.d.ts.map +1 -0
  9. package/dist/components/alert.js +26 -0
  10. package/dist/components/aspect-ratio.d.ts +4 -0
  11. package/dist/components/aspect-ratio.d.ts.map +1 -0
  12. package/dist/components/aspect-ratio.js +8 -0
  13. package/dist/components/avatar.d.ts +7 -0
  14. package/dist/components/avatar.d.ts.map +1 -0
  15. package/dist/components/avatar.js +15 -0
  16. package/dist/components/badge.d.ts +10 -0
  17. package/dist/components/badge.d.ts.map +1 -0
  18. package/dist/components/badge.js +24 -0
  19. package/dist/components/breadcrumb.d.ts +12 -0
  20. package/dist/components/breadcrumb.d.ts.map +1 -0
  21. package/dist/components/breadcrumb.js +29 -0
  22. package/dist/components/button-group.d.ts +12 -0
  23. package/dist/components/button-group.d.ts.map +1 -0
  24. package/dist/components/button-group.js +29 -0
  25. package/dist/components/button.d.ts +16 -0
  26. package/dist/components/button.d.ts.map +1 -0
  27. package/dist/components/button.js +37 -0
  28. package/dist/components/card.d.ts +10 -0
  29. package/dist/components/card.d.ts.map +1 -0
  30. package/dist/components/card.js +26 -0
  31. package/dist/components/carousel.d.ts +20 -0
  32. package/dist/components/carousel.d.ts.map +1 -0
  33. package/dist/components/carousel.js +92 -0
  34. package/dist/components/chart.d.ts +63 -0
  35. package/dist/components/chart.d.ts.map +1 -0
  36. package/dist/components/chart.js +133 -0
  37. package/dist/components/checkbox.d.ts +5 -0
  38. package/dist/components/checkbox.d.ts.map +1 -0
  39. package/dist/components/checkbox.js +10 -0
  40. package/dist/components/collapsible.d.ts +6 -0
  41. package/dist/components/collapsible.d.ts.map +1 -0
  42. package/dist/components/collapsible.js +15 -0
  43. package/dist/components/command.d.ts +19 -0
  44. package/dist/components/command.d.ts.map +1 -0
  45. package/dist/components/command.js +35 -0
  46. package/dist/components/context-menu.d.ts +26 -0
  47. package/dist/components/context-menu.d.ts.map +1 -0
  48. package/dist/components/context-menu.js +52 -0
  49. package/dist/components/data-table.d.ts +85 -0
  50. package/dist/components/data-table.d.ts.map +1 -0
  51. package/dist/components/data-table.js +390 -0
  52. package/dist/components/dialog.d.ts +16 -0
  53. package/dist/components/dialog.d.ts.map +1 -0
  54. package/dist/components/dialog.js +37 -0
  55. package/dist/components/drawer.d.ts +14 -0
  56. package/dist/components/drawer.d.ts.map +1 -0
  57. package/dist/components/drawer.js +36 -0
  58. package/dist/components/dropdown-menu.d.ts +26 -0
  59. package/dist/components/dropdown-menu.d.ts.map +1 -0
  60. package/dist/components/dropdown-menu.js +52 -0
  61. package/dist/components/empty.d.ts +12 -0
  62. package/dist/components/empty.d.ts.map +1 -0
  63. package/dist/components/empty.js +35 -0
  64. package/dist/components/field.d.ts +25 -0
  65. package/dist/components/field.d.ts.map +1 -0
  66. package/dist/components/field.js +74 -0
  67. package/dist/components/form.d.ts +25 -0
  68. package/dist/components/form.d.ts.map +1 -0
  69. package/dist/components/form.js +60 -0
  70. package/dist/components/header-app-switcher.d.ts +53 -0
  71. package/dist/components/header-app-switcher.d.ts.map +1 -0
  72. package/dist/components/header-app-switcher.js +154 -0
  73. package/dist/components/hierarchical-select.d.ts +31 -0
  74. package/dist/components/hierarchical-select.d.ts.map +1 -0
  75. package/dist/components/hierarchical-select.js +143 -0
  76. package/dist/components/hover-card.d.ts +7 -0
  77. package/dist/components/hover-card.d.ts.map +1 -0
  78. package/dist/components/hover-card.js +15 -0
  79. package/dist/components/input-group.d.ts +17 -0
  80. package/dist/components/input-group.d.ts.map +1 -0
  81. package/dist/components/input-group.js +66 -0
  82. package/dist/components/input-otp.d.ts +12 -0
  83. package/dist/components/input-otp.d.ts.map +1 -0
  84. package/dist/components/input-otp.js +22 -0
  85. package/dist/components/input.d.ts +8 -0
  86. package/dist/components/input.d.ts.map +1 -0
  87. package/dist/components/input.js +15 -0
  88. package/dist/components/item.d.ts +24 -0
  89. package/dist/components/item.d.ts.map +1 -0
  90. package/dist/components/item.js +68 -0
  91. package/dist/components/kbd.d.ts +4 -0
  92. package/dist/components/kbd.d.ts.map +1 -0
  93. package/dist/components/kbd.js +11 -0
  94. package/dist/components/label.d.ts +8 -0
  95. package/dist/components/label.d.ts.map +1 -0
  96. package/dist/components/label.js +9 -0
  97. package/dist/components/login-screen.d.ts +4 -0
  98. package/dist/components/login-screen.d.ts.map +1 -0
  99. package/dist/components/login-screen.js +300 -0
  100. package/dist/components/login-screen.types.d.ts +82 -0
  101. package/dist/components/login-screen.types.d.ts.map +1 -0
  102. package/dist/components/login-screen.views.d.ts +114 -0
  103. package/dist/components/login-screen.views.d.ts.map +1 -0
  104. package/dist/components/login-screen.views.js +53 -0
  105. package/dist/components/menubar.d.ts +27 -0
  106. package/dist/components/menubar.d.ts.map +1 -0
  107. package/dist/components/menubar.js +55 -0
  108. package/dist/components/multi-search-select.d.ts +24 -0
  109. package/dist/components/multi-search-select.d.ts.map +1 -0
  110. package/dist/components/multi-search-select.js +125 -0
  111. package/dist/components/multi-select.d.ts +19 -0
  112. package/dist/components/multi-select.d.ts.map +1 -0
  113. package/dist/components/multi-select.js +87 -0
  114. package/dist/components/navigation-menu.d.ts +15 -0
  115. package/dist/components/navigation-menu.d.ts.map +1 -0
  116. package/dist/components/navigation-menu.js +33 -0
  117. package/dist/components/page-header/actions.d.ts +9 -0
  118. package/dist/components/page-header/actions.d.ts.map +1 -0
  119. package/dist/components/page-header/actions.js +21 -0
  120. package/dist/components/page-header/types.d.ts +33 -0
  121. package/dist/components/page-header/types.d.ts.map +1 -0
  122. package/dist/components/page-header/utils.d.ts +4 -0
  123. package/dist/components/page-header/utils.d.ts.map +1 -0
  124. package/dist/components/page-header/utils.js +17 -0
  125. package/dist/components/page-header.d.ts +4 -0
  126. package/dist/components/page-header.d.ts.map +1 -0
  127. package/dist/components/page-header.js +12 -0
  128. package/dist/components/pagination.d.ts +14 -0
  129. package/dist/components/pagination.d.ts.map +1 -0
  130. package/dist/components/pagination.js +31 -0
  131. package/dist/components/popover.d.ts +8 -0
  132. package/dist/components/popover.d.ts.map +1 -0
  133. package/dist/components/popover.js +18 -0
  134. package/dist/components/progress.d.ts +5 -0
  135. package/dist/components/progress.d.ts.map +1 -0
  136. package/dist/components/progress.js +9 -0
  137. package/dist/components/radio-group.d.ts +6 -0
  138. package/dist/components/radio-group.d.ts.map +1 -0
  139. package/dist/components/radio-group.js +13 -0
  140. package/dist/components/resizable.d.ts +9 -0
  141. package/dist/components/resizable.d.ts.map +1 -0
  142. package/dist/components/resizable.js +16 -0
  143. package/dist/components/scroll-area.d.ts +6 -0
  144. package/dist/components/scroll-area.d.ts.map +1 -0
  145. package/dist/components/scroll-area.js +14 -0
  146. package/dist/components/search-bar.d.ts +15 -0
  147. package/dist/components/search-bar.d.ts.map +1 -0
  148. package/dist/components/search-bar.js +25 -0
  149. package/dist/components/segmented-control.d.ts +24 -0
  150. package/dist/components/segmented-control.d.ts.map +1 -0
  151. package/dist/components/segmented-control.js +88 -0
  152. package/dist/components/select.d.ts +16 -0
  153. package/dist/components/select.d.ts.map +1 -0
  154. package/dist/components/select.js +39 -0
  155. package/dist/components/selection-panel.d.ts +29 -0
  156. package/dist/components/selection-panel.d.ts.map +1 -0
  157. package/dist/components/selection-panel.js +255 -0
  158. package/dist/components/separator.d.ts +5 -0
  159. package/dist/components/separator.d.ts.map +1 -0
  160. package/dist/components/separator.js +11 -0
  161. package/dist/components/sheet.d.ts +17 -0
  162. package/dist/components/sheet.d.ts.map +1 -0
  163. package/dist/components/sheet.js +42 -0
  164. package/dist/components/sidebar.d.ts +70 -0
  165. package/dist/components/sidebar.d.ts.map +1 -0
  166. package/dist/components/sidebar.js +213 -0
  167. package/dist/components/skeleton.d.ts +3 -0
  168. package/dist/components/skeleton.d.ts.map +1 -0
  169. package/dist/components/skeleton.js +8 -0
  170. package/dist/components/slider.d.ts +5 -0
  171. package/dist/components/slider.d.ts.map +1 -0
  172. package/dist/components/slider.js +19 -0
  173. package/dist/components/sonner.d.ts +4 -0
  174. package/dist/components/sonner.d.ts.map +1 -0
  175. package/dist/components/sonner.js +22 -0
  176. package/dist/components/spinner.d.ts +4 -0
  177. package/dist/components/spinner.d.ts.map +1 -0
  178. package/dist/components/spinner.js +9 -0
  179. package/dist/components/switch.d.ts +5 -0
  180. package/dist/components/switch.d.ts.map +1 -0
  181. package/dist/components/switch.js +9 -0
  182. package/dist/components/table.d.ts +11 -0
  183. package/dist/components/table.d.ts.map +1 -0
  184. package/dist/components/table.js +29 -0
  185. package/dist/components/tabs.d.ts +8 -0
  186. package/dist/components/tabs.d.ts.map +1 -0
  187. package/dist/components/tabs.js +18 -0
  188. package/dist/components/textarea.d.ts +8 -0
  189. package/dist/components/textarea.d.ts.map +1 -0
  190. package/dist/components/textarea.js +15 -0
  191. package/dist/components/toggle-group.d.ts +8 -0
  192. package/dist/components/toggle-group.d.ts.map +1 -0
  193. package/dist/components/toggle-group.js +22 -0
  194. package/dist/components/toggle.d.ts +10 -0
  195. package/dist/components/toggle.d.ts.map +1 -0
  196. package/dist/components/toggle.js +27 -0
  197. package/dist/components/tooltip.d.ts +8 -0
  198. package/dist/components/tooltip.d.ts.map +1 -0
  199. package/dist/components/tooltip.js +18 -0
  200. package/dist/components/visually-hidden.d.ts +16 -0
  201. package/dist/components/visually-hidden.d.ts.map +1 -0
  202. package/dist/components/visually-hidden.js +22 -0
  203. package/dist/globals.css +719 -0
  204. package/dist/hooks/use-invalid-attention.d.ts +20 -0
  205. package/dist/hooks/use-invalid-attention.d.ts.map +1 -0
  206. package/dist/hooks/use-invalid-attention.js +65 -0
  207. package/dist/hooks/use-mobile.d.ts +2 -0
  208. package/dist/hooks/use-mobile.d.ts.map +1 -0
  209. package/dist/hooks/use-mobile.js +18 -0
  210. package/dist/index.d.ts +68 -0
  211. package/dist/index.d.ts.map +1 -0
  212. package/dist/index.js +68 -0
  213. package/dist/lib/portal-wrapper.d.ts +32 -0
  214. package/dist/lib/portal-wrapper.d.ts.map +1 -0
  215. package/dist/lib/portal-wrapper.js +34 -0
  216. package/dist/lib/utils.js +8 -0
  217. package/dist/svgs/blaze-dispatch-logo.d.ts +5 -0
  218. package/dist/svgs/blaze-dispatch-logo.d.ts.map +1 -0
  219. package/dist/svgs/blaze-ecom-logo.d.ts +7 -0
  220. package/dist/svgs/blaze-ecom-logo.d.ts.map +1 -0
  221. package/dist/svgs/blaze-insights-logo.d.ts +5 -0
  222. package/dist/svgs/blaze-insights-logo.d.ts.map +1 -0
  223. package/dist/svgs/blaze-lighthouse-logo.d.ts +6 -0
  224. package/dist/svgs/blaze-lighthouse-logo.d.ts.map +1 -0
  225. package/dist/svgs/blaze-pay-logo.d.ts +5 -0
  226. package/dist/svgs/blaze-pay-logo.d.ts.map +1 -0
  227. package/dist/svgs/blaze-pos-logo.d.ts +5 -0
  228. package/dist/svgs/blaze-pos-logo.d.ts.map +1 -0
  229. package/dist/svgs/blaze-retail-logo.d.ts +7 -0
  230. package/dist/svgs/blaze-retail-logo.d.ts.map +1 -0
  231. package/dist/svgs/blaze-sites-logo.d.ts +5 -0
  232. package/dist/svgs/blaze-sites-logo.d.ts.map +1 -0
  233. package/dist/svgs/header-app-switcher-logos.d.ts +15 -0
  234. package/dist/svgs/header-app-switcher-logos.d.ts.map +1 -0
  235. package/dist/svgs/header-app-switcher-logos.js +22 -0
  236. package/package.json +95 -31
  237. package/README.md +0 -80
  238. package/build/components/button.d.ts +0 -12
  239. package/build/components/button.d.ts.map +0 -1
  240. package/build/components/button.js +0 -106
  241. package/build/components/button.js.map +0 -1
  242. package/build/index.d.ts +0 -4
  243. package/build/index.d.ts.map +0 -1
  244. package/build/index.js +0 -11
  245. package/build/index.js.map +0 -1
  246. package/build/index.mjs +0 -6
  247. package/build/lib/utils.js +0 -9
  248. package/build/lib/utils.js.map +0 -1
  249. package/build/styles/blaze-ui.css +0 -97
  250. package/build/styles/blaze-ui.css.map +0 -1
  251. package/build/styles/styles.d.ts +0 -3
  252. package/build/styles/styles.d.ts.map +0 -1
  253. package/build/styles/styles.js +0 -8
  254. package/build/styles/styles.js.map +0 -1
  255. package/src/styles/blaze-ui.css +0 -157
  256. package/src/styles/styles.ts +0 -5
  257. /package/{build → dist}/lib/utils.d.ts +0 -0
  258. /package/{build → dist}/lib/utils.d.ts.map +0 -0
@@ -0,0 +1,63 @@
1
+ import * as React from "react";
2
+ import * as RechartsPrimitive from "recharts";
3
+ declare const THEMES: {
4
+ readonly light: "";
5
+ readonly dark: ".dark";
6
+ };
7
+ export type ChartConfig = {
8
+ [k in string]: {
9
+ label?: React.ReactNode;
10
+ icon?: React.ComponentType;
11
+ } & ({
12
+ color?: string;
13
+ theme?: never;
14
+ } | {
15
+ color?: never;
16
+ theme: Record<keyof typeof THEMES, string>;
17
+ });
18
+ };
19
+ type ChartPayloadItem = {
20
+ color?: string;
21
+ dataKey?: string | number;
22
+ name?: string | number;
23
+ payload?: (Record<string, unknown> & {
24
+ fill?: string;
25
+ }) | null;
26
+ type?: string;
27
+ value?: string | number;
28
+ [key: string]: unknown;
29
+ };
30
+ type ChartTooltipContentProps = React.ComponentProps<"div"> & {
31
+ active?: boolean;
32
+ color?: string;
33
+ formatter?: (value: NonNullable<ChartPayloadItem["value"]>, name: NonNullable<ChartPayloadItem["name"]>, item: ChartPayloadItem, index: number, payload: ChartPayloadItem["payload"]) => React.ReactNode;
34
+ hideIndicator?: boolean;
35
+ hideLabel?: boolean;
36
+ indicator?: "line" | "dot" | "dashed";
37
+ label?: React.ReactNode;
38
+ labelClassName?: string;
39
+ labelFormatter?: (value: React.ReactNode, payload: ChartPayloadItem[]) => React.ReactNode;
40
+ labelKey?: string;
41
+ nameKey?: string;
42
+ payload?: ChartPayloadItem[];
43
+ };
44
+ type ChartLegendContentProps = React.ComponentProps<"div"> & {
45
+ hideIcon?: boolean;
46
+ nameKey?: string;
47
+ payload?: ChartPayloadItem[];
48
+ verticalAlign?: "top" | "middle" | "bottom";
49
+ };
50
+ declare function ChartContainer({ id, className, children, config, ...props }: React.ComponentProps<"div"> & {
51
+ config: ChartConfig;
52
+ children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
53
+ }): import("react/jsx-runtime").JSX.Element;
54
+ declare const ChartStyle: ({ id, config }: {
55
+ id: string;
56
+ config: ChartConfig;
57
+ }) => import("react/jsx-runtime").JSX.Element | null;
58
+ declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
59
+ declare function ChartTooltipContent({ active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }: ChartTooltipContentProps): import("react/jsx-runtime").JSX.Element | null;
60
+ declare const ChartLegend: React.MemoExoticComponent<(outsideProps: RechartsPrimitive.LegendProps) => React.ReactPortal | null>;
61
+ declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, nameKey, }: ChartLegendContentProps): import("react/jsx-runtime").JSX.Element | null;
62
+ export { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, ChartStyle, };
63
+ //# sourceMappingURL=chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../src/components/chart.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,iBAAiB,MAAM,UAAU,CAAA;AAK7C,QAAA,MAAM,MAAM;;;CAAwC,CAAA;AAEpD,MAAM,MAAM,WAAW,GAAG;KACvB,CAAC,IAAI,MAAM,GAAG;QACb,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACvB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;KAC3B,GAAG,CACA;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,GACjC;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,OAAO,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAChE;CACF,CAAA;AAMD,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAED,KAAK,wBAAwB,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC5D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,CACV,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAC7C,IAAI,EAAE,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAC3C,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,KACjC,KAAK,CAAC,SAAS,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAA;IACrC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,CACf,KAAK,EAAE,KAAK,CAAC,SAAS,EACtB,OAAO,EAAE,gBAAgB,EAAE,KACxB,KAAK,CAAC,SAAS,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAC7B,CAAA;AAED,KAAK,uBAAuB,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;CAC5C,CAAA;AAcD,iBAAS,cAAc,CAAC,EACtB,EAAE,EACF,SAAS,EACT,QAAQ,EACR,MAAM,EACN,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,MAAM,EAAE,WAAW,CAAA;IACnB,QAAQ,EAAE,KAAK,CAAC,cAAc,CAC5B,OAAO,iBAAiB,CAAC,mBAAmB,CAC7C,CAAC,UAAU,CAAC,CAAA;CACd,2CAsBA;AAED,QAAA,MAAM,UAAU,GAAI,gBAAgB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,mDA+BtE,CAAA;AAED,QAAA,MAAM,YAAY,kCAA4B,CAAA;AAE9C,iBAAS,mBAAmB,CAAC,EAC3B,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAiB,EACjB,SAAiB,EACjB,aAAqB,EACrB,KAAK,EACL,cAAc,EACd,cAAc,EACd,SAAS,EACT,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE,wBAAwB,kDA2H1B;AAED,QAAA,MAAM,WAAW,sGAA2B,CAAA;AAE5C,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,QAAgB,EAChB,OAAO,EACP,aAAwB,EACxB,OAAO,GACR,EAAE,uBAAuB,kDA4CzB;AAyCD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,UAAU,GACX,CAAA"}
@@ -0,0 +1,133 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import * as RechartsPrimitive from 'recharts';
4
+ import { cn } from '../lib/utils.js';
5
+
6
+ // Format: { THEME_NAME: CSS_SELECTOR }
7
+ const THEMES = { light: "", dark: ".dark" };
8
+ const ChartContext = React.createContext(null);
9
+ function useChart() {
10
+ const context = React.useContext(ChartContext);
11
+ if (!context) {
12
+ throw new Error("useChart must be used within a <ChartContainer />");
13
+ }
14
+ return context;
15
+ }
16
+ function ChartContainer({ id, className, children, config, ...props }) {
17
+ const uniqueId = React.useId();
18
+ const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
19
+ return (jsx(ChartContext.Provider, { value: { config }, children: jsxs("div", { "data-slot": "chart", "data-chart": chartId, className: cn("[&_.recharts-cartesian-axis-tick_text]:tw:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:tw:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:tw:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:tw:stroke-border [&_.recharts-radial-bar-background-sector]:tw:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:tw:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:tw:stroke-border tw:flex tw:aspect-video tw:justify-center tw:text-xs [&_.recharts-dot[stroke='#fff']]:tw:stroke-transparent [&_.recharts-layer]:tw:outline-hidden [&_.recharts-sector]:tw:outline-hidden [&_.recharts-sector[stroke='#fff']]:tw:stroke-transparent [&_.recharts-surface]:tw:outline-hidden", className), ...props, children: [jsx(ChartStyle, { id: chartId, config: config }), jsx(RechartsPrimitive.ResponsiveContainer, { children: children })] }) }));
20
+ }
21
+ const ChartStyle = ({ id, config }) => {
22
+ const colorConfig = Object.entries(config).filter(([, config]) => config.theme || config.color);
23
+ if (!colorConfig.length) {
24
+ return null;
25
+ }
26
+ return (jsx("style", { dangerouslySetInnerHTML: {
27
+ __html: Object.entries(THEMES)
28
+ .map(([theme, prefix]) => `
29
+ ${prefix} [data-chart=${id}] {
30
+ ${colorConfig
31
+ .map(([key, itemConfig]) => {
32
+ const color = itemConfig.theme?.[theme] ||
33
+ itemConfig.color;
34
+ return color ? ` --color-${key}: ${color};` : null;
35
+ })
36
+ .join("\n")}
37
+ }
38
+ `)
39
+ .join("\n"),
40
+ } }));
41
+ };
42
+ const ChartTooltip = RechartsPrimitive.Tooltip;
43
+ function ChartTooltipContent({ active, payload, className, indicator = "dot", hideLabel = false, hideIndicator = false, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }) {
44
+ const { config } = useChart();
45
+ const tooltipLabel = React.useMemo(() => {
46
+ if (hideLabel || !payload?.length) {
47
+ return null;
48
+ }
49
+ const [item] = payload;
50
+ const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
51
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
52
+ const value = !labelKey && typeof label === "string"
53
+ ? config[label]?.label || label
54
+ : itemConfig?.label;
55
+ if (labelFormatter) {
56
+ return (jsx("div", { className: cn("tw:font-medium", labelClassName), children: labelFormatter(value, payload) }));
57
+ }
58
+ if (!value) {
59
+ return null;
60
+ }
61
+ return jsx("div", { className: cn("tw:font-medium", labelClassName), children: value });
62
+ }, [
63
+ label,
64
+ labelFormatter,
65
+ payload,
66
+ hideLabel,
67
+ labelClassName,
68
+ config,
69
+ labelKey,
70
+ ]);
71
+ if (!active || !payload?.length) {
72
+ return null;
73
+ }
74
+ const nestLabel = payload.length === 1 && indicator !== "dot";
75
+ return (jsxs("div", { className: cn("tw:border-border/50 tw:bg-background tw:grid tw:min-w-[8rem] tw:items-start tw:gap-1.5 tw:rounded-lg tw:border tw:px-2.5 tw:py-1.5 tw:text-xs tw:shadow-xl", className), children: [!nestLabel ? tooltipLabel : null, jsx("div", { className: "tw:grid tw:gap-1.5", children: payload
76
+ .filter((item) => item.type !== "none")
77
+ .map((item, index) => {
78
+ const key = `${nameKey || item.name || item.dataKey || "value"}`;
79
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
80
+ const indicatorColor = color || item.payload?.fill || item.color;
81
+ return (jsx("div", { className: cn("[&>svg]:tw:text-muted-foreground tw:flex tw:w-full tw:flex-wrap tw:items-stretch tw:gap-2 [&>svg]:tw:h-2.5 [&>svg]:tw:w-2.5", indicator === "dot" && "tw:items-center"), children: formatter && item?.value !== undefined && item.name ? (formatter(item.value, item.name, item, index, item.payload)) : (jsxs(Fragment, { children: [itemConfig?.icon ? (jsx(itemConfig.icon, {})) : (!hideIndicator && (jsx("div", { className: cn("tw:shrink-0 tw:rounded-[2px] tw:border-(--color-border) tw:bg-(--color-bg)", {
82
+ "tw:h-2.5 tw:w-2.5": indicator === "dot",
83
+ "tw:w-1": indicator === "line",
84
+ "tw:w-0 tw:border-[1.5px] tw:border-dashed tw:bg-transparent": indicator === "dashed",
85
+ "tw:my-0.5": nestLabel && indicator === "dashed",
86
+ }), style: {
87
+ "--color-bg": indicatorColor,
88
+ "--color-border": indicatorColor,
89
+ } }))), jsxs("div", { className: cn("tw:flex tw:flex-1 tw:justify-between tw:leading-none", nestLabel ? "tw:items-end" : "tw:items-center"), children: [jsxs("div", { className: "tw:grid tw:gap-1.5", children: [nestLabel ? tooltipLabel : null, jsx("span", { className: "tw:text-muted-foreground", children: itemConfig?.label || item.name })] }), item.value && (jsx("span", { className: "tw:text-foreground tw:font-mono tw:font-medium tw:tabular-nums", children: item.value.toLocaleString() }))] })] })) }, String(item.dataKey ?? item.name ?? index)));
90
+ }) })] }));
91
+ }
92
+ const ChartLegend = RechartsPrimitive.Legend;
93
+ function ChartLegendContent({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey, }) {
94
+ const { config } = useChart();
95
+ if (!payload?.length) {
96
+ return null;
97
+ }
98
+ return (jsx("div", { className: cn("tw:flex tw:items-center tw:justify-center tw:gap-4", verticalAlign === "top" ? "tw:pb-3" : "tw:pt-3", className), children: payload
99
+ .filter((item) => item.type !== "none")
100
+ .map((item) => {
101
+ const key = `${nameKey || item.dataKey || "value"}`;
102
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
103
+ return (jsxs("div", { className: cn("[&>svg]:tw:text-muted-foreground tw:flex tw:items-center tw:gap-1.5 [&>svg]:tw:h-3 [&>svg]:tw:w-3"), children: [itemConfig?.icon && !hideIcon ? (jsx(itemConfig.icon, {})) : (jsx("div", { className: "tw:h-2 tw:w-2 tw:shrink-0 tw:rounded-[2px]", style: {
104
+ backgroundColor: item.color,
105
+ } })), itemConfig?.label] }, String(item.value ?? item.dataKey ?? item.name)));
106
+ }) }));
107
+ }
108
+ // Helper to extract item config from a payload.
109
+ function getPayloadConfigFromPayload(config, payload, key) {
110
+ if (typeof payload !== "object" || payload === null) {
111
+ return undefined;
112
+ }
113
+ const payloadPayload = "payload" in payload &&
114
+ typeof payload.payload === "object" &&
115
+ payload.payload !== null
116
+ ? payload.payload
117
+ : undefined;
118
+ let configLabelKey = key;
119
+ if (key in payload &&
120
+ typeof payload[key] === "string") {
121
+ configLabelKey = payload[key];
122
+ }
123
+ else if (payloadPayload &&
124
+ key in payloadPayload &&
125
+ typeof payloadPayload[key] === "string") {
126
+ configLabelKey = payloadPayload[key];
127
+ }
128
+ return configLabelKey in config
129
+ ? config[configLabelKey]
130
+ : config[key];
131
+ }
132
+
133
+ export { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
3
+ declare function Checkbox({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ export { Checkbox };
5
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../src/components/checkbox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAA;AAK7D,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,2CAkBrD;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
3
+ import { CheckIcon } from 'lucide-react';
4
+ import { cn } from '../lib/utils.js';
5
+
6
+ function Checkbox({ className, ...props }) {
7
+ return (jsx(CheckboxPrimitive.Root, { "data-slot": "checkbox", className: cn("tw:peer tw:!border-border tw:dark:!bg-input/30 tw:data-[state=checked]:!bg-primary tw:data-[state=checked]:!text-primary-foreground tw:dark:data-[state=checked]:!bg-primary tw:data-[state=checked]:!border-primary tw:focus-visible:!border-ring tw:focus-visible:!ring-ring/50 tw:aria-invalid:!ring-destructive/20 tw:dark:aria-invalid:!ring-destructive/40 tw:aria-invalid:!border-destructive tw:!size-4 tw:!shrink-0 tw:!rounded-[4px] tw:!border tw:!shadow-xs tw:!transition-shadow tw:!outline-none tw:focus-visible:!ring-[3px] tw:disabled:!cursor-not-allowed tw:disabled:!opacity-50 tw:data-[disabled]:!cursor-not-allowed tw:data-[disabled]:!opacity-50 tw:aria-disabled:!cursor-not-allowed tw:aria-disabled:!opacity-50 tw:!align-middle", className), ...props, children: jsx(CheckboxPrimitive.Indicator, { "data-slot": "checkbox-indicator", className: "tw:flex tw:items-center tw:justify-center tw:text-current tw:transition-none", children: jsx(CheckIcon, { className: "tw:size-[80%]" }) }) }));
8
+ }
9
+
10
+ export { Checkbox };
@@ -0,0 +1,6 @@
1
+ import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
2
+ declare function Collapsible({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root>): import("react/jsx-runtime").JSX.Element;
3
+ declare function CollapsibleTrigger({ className, ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>): import("react/jsx-runtime").JSX.Element;
4
+ declare function CollapsibleContent({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>): import("react/jsx-runtime").JSX.Element;
5
+ export { Collapsible, CollapsibleTrigger, CollapsibleContent };
6
+ //# sourceMappingURL=collapsible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.d.ts","sourceRoot":"","sources":["../../src/components/collapsible.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAA;AAInE,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,2CAExD;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,kBAAkB,CAAC,2CAWtE;AAED,iBAAS,kBAAkB,CAAC,EAC1B,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,kBAAkB,CAAC,2CAOtE;AAED,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
3
+ import { cn } from '../lib/utils.js';
4
+
5
+ function Collapsible({ ...props }) {
6
+ return jsx(CollapsiblePrimitive.Root, { "data-slot": "collapsible", ...props });
7
+ }
8
+ function CollapsibleTrigger({ className, ...props }) {
9
+ return (jsx(CollapsiblePrimitive.CollapsibleTrigger, { "data-slot": "collapsible-trigger", className: cn("tw:cursor-pointer tw:transition-colors tw:hover:bg-accent/60", className), ...props }));
10
+ }
11
+ function CollapsibleContent({ ...props }) {
12
+ return (jsx(CollapsiblePrimitive.CollapsibleContent, { "data-slot": "collapsible-content", ...props }));
13
+ }
14
+
15
+ export { Collapsible, CollapsibleContent, CollapsibleTrigger };
@@ -0,0 +1,19 @@
1
+ import * as React from "react";
2
+ import { Command as CommandPrimitive } from "cmdk";
3
+ import { Dialog } from "../components/dialog";
4
+ declare function Command({ className, ...props }: React.ComponentProps<typeof CommandPrimitive>): import("react/jsx-runtime").JSX.Element;
5
+ declare function CommandDialog({ title, description, children, className, showCloseButton, ...props }: React.ComponentProps<typeof Dialog> & {
6
+ title?: string;
7
+ description?: string;
8
+ className?: string;
9
+ showCloseButton?: boolean;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ declare function CommandInput({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Input>): import("react/jsx-runtime").JSX.Element;
12
+ declare function CommandList({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.List>): import("react/jsx-runtime").JSX.Element;
13
+ declare function CommandEmpty({ ...props }: React.ComponentProps<typeof CommandPrimitive.Empty>): import("react/jsx-runtime").JSX.Element;
14
+ declare function CommandGroup({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
15
+ declare function CommandSeparator({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
16
+ declare function CommandItem({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
17
+ declare function CommandShortcut({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
18
+ export { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator, };
19
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/components/command.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,MAAM,CAAA;AAIlD,OAAO,EACL,MAAM,EAKP,MAAM,sBAAsB,CAAA;AAE7B,iBAAS,OAAO,CAAC,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,2CAW/C;AAED,iBAAS,aAAa,CAAC,EACrB,KAAyB,EACzB,WAA8C,EAC9C,QAAQ,EACR,SAAS,EACT,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IACvC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,2CAiBA;AAED,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAiBrD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAWpD;AAED,iBAAS,YAAY,CAAC,EACpB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAQrD;AAED,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAWrD;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,2CAQzD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAWpD;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,2CAW9B;AAED,OAAO,EACL,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,GACjB,CAAA"}
@@ -0,0 +1,35 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { Command as Command$1 } from 'cmdk';
3
+ import { SearchIcon } from 'lucide-react';
4
+ import { cn } from '../lib/utils.js';
5
+ import { Dialog, DialogHeader, DialogTitle, DialogDescription, DialogContent } from './dialog.js';
6
+
7
+ function Command({ className, ...props }) {
8
+ return (jsx(Command$1, { "data-slot": "command", className: cn("tw:bg-popover tw:text-popover-foreground tw:flex tw:h-full tw:w-full tw:flex-col tw:overflow-hidden tw:rounded-md", className), ...props }));
9
+ }
10
+ function CommandDialog({ title = "Command Palette", description = "Search for a command to run...", children, className, showCloseButton = true, ...props }) {
11
+ return (jsxs(Dialog, { ...props, children: [jsxs(DialogHeader, { className: "tw:sr-only", children: [jsx(DialogTitle, { children: title }), jsx(DialogDescription, { children: description })] }), jsx(DialogContent, { className: cn("tw:overflow-hidden tw:p-0", className), showCloseButton: showCloseButton, children: jsx(Command, { className: "[&_[cmdk-group-heading]]:tw:text-muted-foreground **:data-[slot=command-input-wrapper]:tw:h-12 [&_[cmdk-group-heading]]:tw:px-2 [&_[cmdk-group-heading]]:tw:font-medium [&_[cmdk-group]]:tw:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:tw:pt-0 [&_[cmdk-input-wrapper]_svg]:tw:h-5 [&_[cmdk-input-wrapper]_svg]:tw:w-5 [&_[cmdk-input]]:tw:h-12 [&_[cmdk-item]]:tw:px-2 [&_[cmdk-item]]:tw:py-3 [&_[cmdk-item]_svg]:tw:h-5 [&_[cmdk-item]_svg]:tw:w-5", children: children }) })] }));
12
+ }
13
+ function CommandInput({ className, ...props }) {
14
+ return (jsxs("div", { "data-slot": "command-input-wrapper", className: "tw:flex tw:h-9 tw:items-center tw:gap-2 tw:border-b tw:px-3", children: [jsx(SearchIcon, { className: "tw:size-4 tw:shrink-0 tw:opacity-50" }), jsx(Command$1.Input, { "data-slot": "command-input", className: cn("placeholder:tw:text-muted-foreground tw:flex tw:h-10 tw:w-full tw:rounded-md tw:bg-transparent tw:py-3 tw:text-sm tw:outline-hidden disabled:tw:cursor-not-allowed disabled:tw:opacity-50", className), ...props })] }));
15
+ }
16
+ function CommandList({ className, ...props }) {
17
+ return (jsx(Command$1.List, { "data-slot": "command-list", className: cn("tw:max-h-[300px] tw:scroll-py-1 tw:overflow-x-hidden tw:overflow-y-auto", className), ...props }));
18
+ }
19
+ function CommandEmpty({ ...props }) {
20
+ return (jsx(Command$1.Empty, { "data-slot": "command-empty", className: "tw:py-6 tw:text-center tw:text-sm", ...props }));
21
+ }
22
+ function CommandGroup({ className, ...props }) {
23
+ return (jsx(Command$1.Group, { "data-slot": "command-group", className: cn("tw:text-foreground [&_[cmdk-group-heading]]:tw:text-muted-foreground tw:overflow-hidden tw:p-1 [&_[cmdk-group-heading]]:tw:px-2 [&_[cmdk-group-heading]]:tw:py-1.5 [&_[cmdk-group-heading]]:tw:text-xs [&_[cmdk-group-heading]]:tw:font-medium", className), ...props }));
24
+ }
25
+ function CommandSeparator({ className, ...props }) {
26
+ return (jsx(Command$1.Separator, { "data-slot": "command-separator", className: cn("tw:bg-border tw:-mx-1 tw:h-px", className), ...props }));
27
+ }
28
+ function CommandItem({ className, ...props }) {
29
+ return (jsx(Command$1.Item, { "data-slot": "command-item", className: cn("data-[selected=true]:tw:bg-accent data-[selected=true]:tw:text-accent-foreground [&_svg:not([class*='text-'])]:tw:text-muted-foreground tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-2 tw:rounded-sm tw:px-2 tw:py-1.5 tw:text-sm tw:outline-hidden tw:select-none data-[disabled=true]:tw:pointer-events-none data-[disabled=true]:tw:opacity-50 [&_svg]:tw:pointer-events-none [&_svg]:tw:shrink-0 [&_svg:not([class*='size-'])]:tw:size-4", className), ...props }));
30
+ }
31
+ function CommandShortcut({ className, ...props }) {
32
+ return (jsx("span", { "data-slot": "command-shortcut", className: cn("tw:text-muted-foreground tw:ml-auto tw:text-xs tw:tracking-widest", className), ...props }));
33
+ }
34
+
35
+ export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
@@ -0,0 +1,26 @@
1
+ import * as React from "react";
2
+ import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
3
+ declare function ContextMenu({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function ContextMenuTrigger({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
5
+ declare function ContextMenuGroup({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
6
+ declare function ContextMenuPortal({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
7
+ declare function ContextMenuSub({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Sub>): import("react/jsx-runtime").JSX.Element;
8
+ declare function ContextMenuRadioGroup({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>): import("react/jsx-runtime").JSX.Element;
9
+ declare function ContextMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {
10
+ inset?: boolean;
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ declare function ContextMenuSubContent({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>): import("react/jsx-runtime").JSX.Element;
13
+ declare function ContextMenuContent({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
14
+ declare function ContextMenuItem({ className, inset, variant, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Item> & {
15
+ inset?: boolean;
16
+ variant?: "default" | "destructive";
17
+ }): import("react/jsx-runtime").JSX.Element;
18
+ declare function ContextMenuCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem>): import("react/jsx-runtime").JSX.Element;
19
+ declare function ContextMenuRadioItem({ className, children, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.RadioItem>): import("react/jsx-runtime").JSX.Element;
20
+ declare function ContextMenuLabel({ className, inset, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Label> & {
21
+ inset?: boolean;
22
+ }): import("react/jsx-runtime").JSX.Element;
23
+ declare function ContextMenuSeparator({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
24
+ declare function ContextMenuShortcut({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
25
+ export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuCheckboxItem, ContextMenuRadioItem, ContextMenuLabel, ContextMenuSeparator, ContextMenuShortcut, ContextMenuGroup, ContextMenuPortal, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuRadioGroup, };
26
+ //# sourceMappingURL=context-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.d.ts","sourceRoot":"","sources":["../../src/components/context-menu.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
3
+ import { CheckIcon, CircleIcon, ChevronRightIcon } from 'lucide-react';
4
+ import { cn } from '../lib/utils.js';
5
+
6
+ function ContextMenu({ ...props }) {
7
+ return jsx(ContextMenuPrimitive.Root, { "data-slot": "context-menu", ...props });
8
+ }
9
+ function ContextMenuTrigger({ ...props }) {
10
+ return (jsx(ContextMenuPrimitive.Trigger, { "data-slot": "context-menu-trigger", ...props }));
11
+ }
12
+ function ContextMenuGroup({ ...props }) {
13
+ return (jsx(ContextMenuPrimitive.Group, { "data-slot": "context-menu-group", ...props }));
14
+ }
15
+ function ContextMenuPortal({ ...props }) {
16
+ return (jsx(ContextMenuPrimitive.Portal, { "data-slot": "context-menu-portal", ...props }));
17
+ }
18
+ function ContextMenuSub({ ...props }) {
19
+ return jsx(ContextMenuPrimitive.Sub, { "data-slot": "context-menu-sub", ...props });
20
+ }
21
+ function ContextMenuRadioGroup({ ...props }) {
22
+ return (jsx(ContextMenuPrimitive.RadioGroup, { "data-slot": "context-menu-radio-group", ...props }));
23
+ }
24
+ function ContextMenuSubTrigger({ className, inset, children, ...props }) {
25
+ return (jsxs(ContextMenuPrimitive.SubTrigger, { "data-slot": "context-menu-sub-trigger", "data-inset": inset, className: cn("tw:focus:bg-accent tw:focus:text-accent-foreground tw:data-[state=open]:bg-accent tw:data-[state=open]:text-accent-foreground tw:[&_svg:not([class*='text-'])]:text-muted-foreground tw:flex tw:cursor-default tw:items-center tw:rounded-sm tw:px-2 tw:py-1.5 tw:text-sm tw:outline-hidden tw:select-none tw:data-[inset]:pl-8 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*='size-'])]:size-4", className), ...props, children: [children, jsx(ChevronRightIcon, { className: "tw:ml-auto" })] }));
26
+ }
27
+ function ContextMenuSubContent({ className, ...props }) {
28
+ return (jsx(ContextMenuPrimitive.SubContent, { "data-slot": "context-menu-sub-content", className: cn("tw:bg-popover tw:text-popover-foreground tw:data-[state=open]:animate-in tw:data-[state=closed]:animate-out tw:data-[state=closed]:fade-out-0 tw:data-[state=open]:fade-in-0 tw:data-[state=closed]:zoom-out-95 tw:data-[state=open]:zoom-in-95 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:z-50 tw:min-w-[8rem] tw:origin-(--radix-context-menu-content-transform-origin) tw:overflow-hidden tw:rounded-md tw:border tw:p-1 tw:shadow-lg", className), ...props }));
29
+ }
30
+ function ContextMenuContent({ className, ...props }) {
31
+ return (jsx(ContextMenuPrimitive.Portal, { children: jsx(ContextMenuPrimitive.Content, { "data-slot": "context-menu-content", className: cn("tw:bg-popover tw:text-popover-foreground tw:data-[state=open]:animate-in tw:data-[state=closed]:animate-out tw:data-[state=closed]:fade-out-0 tw:data-[state=open]:fade-in-0 tw:data-[state=closed]:zoom-out-95 tw:data-[state=open]:zoom-in-95 tw:data-[side=bottom]:slide-in-from-top-2 tw:data-[side=left]:slide-in-from-right-2 tw:data-[side=right]:slide-in-from-left-2 tw:data-[side=top]:slide-in-from-bottom-2 tw:z-50 tw:max-h-(--radix-context-menu-content-available-height) tw:min-w-[8rem] tw:origin-(--radix-context-menu-content-transform-origin) tw:overflow-x-hidden tw:overflow-y-auto tw:rounded-md tw:border tw:p-1 tw:shadow-md", className), ...props }) }));
32
+ }
33
+ function ContextMenuItem({ className, inset, variant = "default", ...props }) {
34
+ return (jsx(ContextMenuPrimitive.Item, { "data-slot": "context-menu-item", "data-inset": inset, "data-variant": variant, className: cn("tw:focus:bg-accent tw:focus:text-accent-foreground tw:data-[variant=destructive]:text-destructive tw:data-[variant=destructive]:focus:bg-destructive/10 tw:dark:data-[variant=destructive]:focus:bg-destructive/20 tw:data-[variant=destructive]:focus:text-destructive tw:data-[variant=destructive]:*:[svg]:!text-destructive tw:[&_svg:not([class*='text-'])]:text-muted-foreground tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-2 tw:rounded-sm tw:px-2 tw:py-1.5 tw:text-sm tw:outline-hidden tw:select-none tw:data-[disabled]:pointer-events-none tw:data-[disabled]:opacity-50 tw:data-[inset]:pl-8 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*='size-'])]:size-4", className), ...props }));
35
+ }
36
+ function ContextMenuCheckboxItem({ className, children, checked, ...props }) {
37
+ return (jsxs(ContextMenuPrimitive.CheckboxItem, { "data-slot": "context-menu-checkbox-item", className: cn("tw:focus:bg-accent tw:focus:text-accent-foreground tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-2 tw:rounded-sm tw:py-1.5 tw:pr-2 tw:pl-8 tw:text-sm tw:outline-hidden tw:select-none tw:data-[disabled]:pointer-events-none tw:data-[disabled]:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*='size-'])]:size-4", className), checked: checked, ...props, children: [jsx("span", { className: "tw:pointer-events-none tw:absolute tw:left-2 tw:flex tw:size-3.5 tw:items-center tw:justify-center", children: jsx(ContextMenuPrimitive.ItemIndicator, { children: jsx(CheckIcon, { className: "tw:size-4" }) }) }), children] }));
38
+ }
39
+ function ContextMenuRadioItem({ className, children, ...props }) {
40
+ return (jsxs(ContextMenuPrimitive.RadioItem, { "data-slot": "context-menu-radio-item", className: cn("tw:focus:bg-accent tw:focus:text-accent-foreground tw:relative tw:flex tw:cursor-default tw:items-center tw:gap-2 tw:rounded-sm tw:py-1.5 tw:pr-2 tw:pl-8 tw:text-sm tw:outline-hidden tw:select-none tw:data-[disabled]:pointer-events-none tw:data-[disabled]:opacity-50 tw:[&_svg]:pointer-events-none tw:[&_svg]:shrink-0 tw:[&_svg:not([class*='size-'])]:size-4", className), ...props, children: [jsx("span", { className: "tw:pointer-events-none tw:absolute tw:left-2 tw:flex tw:size-3.5 tw:items-center tw:justify-center", children: jsx(ContextMenuPrimitive.ItemIndicator, { children: jsx(CircleIcon, { className: "tw:size-2 tw:fill-current" }) }) }), children] }));
41
+ }
42
+ function ContextMenuLabel({ className, inset, ...props }) {
43
+ return (jsx(ContextMenuPrimitive.Label, { "data-slot": "context-menu-label", "data-inset": inset, className: cn("tw:text-foreground tw:px-2 tw:py-1.5 tw:text-sm tw:font-medium tw:data-[inset]:pl-8", className), ...props }));
44
+ }
45
+ function ContextMenuSeparator({ className, ...props }) {
46
+ return (jsx(ContextMenuPrimitive.Separator, { "data-slot": "context-menu-separator", className: cn("tw:bg-border tw:-mx-1 tw:my-1 tw:h-px", className), ...props }));
47
+ }
48
+ function ContextMenuShortcut({ className, ...props }) {
49
+ return (jsx("span", { "data-slot": "context-menu-shortcut", className: cn("tw:text-muted-foreground tw:ml-auto tw:text-xs tw:tracking-widest", className), ...props }));
50
+ }
51
+
52
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
@@ -0,0 +1,85 @@
1
+ import * as React from "react";
2
+ import { CheckIcon, XIcon } from "lucide-react";
3
+ export type SortDirection = "asc" | "desc" | null;
4
+ export type DataTableCellValue = React.ReactNode | Record<string, unknown> | DataTableRow[];
5
+ export interface DataTableColumn<T> {
6
+ key: string;
7
+ label: string;
8
+ sortable?: boolean;
9
+ align?: "left" | "center" | "right";
10
+ width?: string;
11
+ className?: string;
12
+ render?: (value: DataTableCellValue, row: T, index: number, depth: number) => React.ReactNode;
13
+ }
14
+ export interface DataTableRow {
15
+ id: string;
16
+ children?: DataTableRow[];
17
+ [key: string]: DataTableCellValue;
18
+ }
19
+ export interface IClickableField<T = DataTableRow> {
20
+ field: string;
21
+ onClick: (row: T) => void;
22
+ }
23
+ export interface DataTableAction<T> {
24
+ label: string;
25
+ icon?: React.ReactNode;
26
+ onClick: (row: T) => void;
27
+ variant?: "default" | "destructive";
28
+ condition?: (row: T) => boolean;
29
+ }
30
+ export type PaginationMode = "offset" | "cursor";
31
+ export interface DataTablePaginationProps {
32
+ currentPage: number;
33
+ totalPages: number;
34
+ onPageChange: (page: number) => void;
35
+ pageSize?: number;
36
+ totalItems?: number;
37
+ pageSizeOptions?: number[];
38
+ onPageSizeChange?: (pageSize: number) => void;
39
+ mode?: PaginationMode;
40
+ serverSide?: boolean;
41
+ showTotalItems?: boolean;
42
+ disableNext?: boolean;
43
+ disablePrevious?: boolean;
44
+ }
45
+ export interface DataTableProps<T extends DataTableRow> {
46
+ columns: DataTableColumn<T>[];
47
+ data: T[];
48
+ onRowClick?: (row: T) => void;
49
+ onSelectionChange?: (selectedIds: string[]) => void;
50
+ selectedRowIds?: string[];
51
+ onSort?: (key: string, direction: SortDirection) => void;
52
+ sortState?: {
53
+ key: string;
54
+ direction: SortDirection;
55
+ };
56
+ expandable?: boolean;
57
+ renderExpandedRow?: (row: T) => React.ReactNode;
58
+ actions?: DataTableAction<T>[];
59
+ className?: string;
60
+ pagination?: DataTablePaginationProps;
61
+ treeData?: boolean;
62
+ reorderable?: boolean;
63
+ onReorder?: (rowId: string, direction: "up" | "down", parentId?: string) => void;
64
+ onDragReorder?: (draggedId: string, targetId: string, parentId?: string) => void;
65
+ customFilterColumnsWhiteList?: string[];
66
+ loading?: boolean;
67
+ loadingRows?: number;
68
+ emptyState?: {
69
+ title?: string;
70
+ description?: string;
71
+ icon?: React.ReactNode;
72
+ };
73
+ clickableFields?: IClickableField<T>[];
74
+ showColumnVisibility?: boolean;
75
+ footerContent?: React.ReactNode;
76
+ expandedRowIds?: string[];
77
+ onExpandedChange?: (expandedIds: string[]) => void;
78
+ reservePaginationSpace?: boolean;
79
+ striped?: boolean;
80
+ selectContentClassName?: string;
81
+ menuPopupClassName?: string;
82
+ }
83
+ export declare function DataTable<T extends DataTableRow>({ columns, data, onRowClick, onSelectionChange, selectedRowIds, onSort, sortState, expandable, renderExpandedRow, actions, className, pagination, treeData, reorderable, onReorder, onDragReorder, customFilterColumnsWhiteList, loading, loadingRows, emptyState, clickableFields, showColumnVisibility, footerContent, expandedRowIds, onExpandedChange, reservePaginationSpace, striped, selectContentClassName, menuPopupClassName, }: DataTableProps<T>): import("react/jsx-runtime").JSX.Element;
84
+ export { CheckIcon, XIcon };
85
+ //# sourceMappingURL=data-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../src/components/data-table.tsx"],"names":[],"mappings":"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"}