@gram-ai/elements 1.25.2 → 1.26.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 (160) hide show
  1. package/dist/components/Chat/stories/Charts.stories.d.ts +37 -0
  2. package/dist/components/Chat/stories/GenerativeUI.stories.d.ts +17 -0
  3. package/dist/components/ui/button.d.ts +1 -1
  4. package/dist/components/ui/buttonVariants.d.ts +1 -1
  5. package/dist/components/ui/charts.stories.d.ts +43 -0
  6. package/dist/components/ui/generative-ui.stories.d.ts +53 -0
  7. package/dist/elements.cjs +1 -1
  8. package/dist/elements.css +1 -1
  9. package/dist/elements.js +6 -6
  10. package/dist/index-BJnv49-A.js +37057 -0
  11. package/dist/index-BJnv49-A.js.map +1 -0
  12. package/dist/index-BpJstUh1.cjs +280 -0
  13. package/dist/index-BpJstUh1.cjs.map +1 -0
  14. package/dist/index-CUitXazZ.js +30426 -0
  15. package/dist/index-CUitXazZ.js.map +1 -0
  16. package/dist/index-ChW-CSuu.cjs +147 -0
  17. package/dist/index-ChW-CSuu.cjs.map +1 -0
  18. package/dist/plugins/chart/catalog.d.ts +123 -0
  19. package/dist/plugins/chart/index.d.ts +1 -1
  20. package/dist/plugins/chart/ui/area-chart.d.ts +16 -0
  21. package/dist/plugins/chart/ui/bar-chart.d.ts +16 -0
  22. package/dist/plugins/chart/ui/donut-chart.d.ts +17 -0
  23. package/dist/plugins/chart/ui/index.d.ts +7 -0
  24. package/dist/plugins/chart/ui/line-chart.d.ts +17 -0
  25. package/dist/plugins/chart/ui/pie-chart.d.ts +15 -0
  26. package/dist/plugins/chart/ui/radar-chart.d.ts +14 -0
  27. package/dist/plugins/chart/ui/scatter-chart.d.ts +18 -0
  28. package/dist/plugins/components/MacOSWindowFrame.d.ts +13 -0
  29. package/dist/plugins/components/PluginLoadingState.d.ts +1 -1
  30. package/dist/plugins/generative-ui/catalog.d.ts +293 -0
  31. package/dist/plugins/generative-ui/ui/accordion-wrapper.d.ts +18 -0
  32. package/dist/plugins/generative-ui/ui/accordion.d.ts +7 -0
  33. package/dist/plugins/generative-ui/ui/action-button.d.ts +10 -0
  34. package/dist/plugins/generative-ui/ui/alert-wrapper.d.ts +9 -0
  35. package/dist/plugins/generative-ui/ui/alert.d.ts +9 -0
  36. package/dist/plugins/generative-ui/ui/avatar-wrapper.d.ts +9 -0
  37. package/dist/plugins/generative-ui/ui/avatar.d.ts +11 -0
  38. package/dist/plugins/generative-ui/ui/badge.d.ts +12 -0
  39. package/dist/plugins/generative-ui/ui/button-wrapper.d.ts +15 -0
  40. package/dist/plugins/generative-ui/ui/button.d.ts +10 -0
  41. package/dist/plugins/generative-ui/ui/card-wrapper.d.ts +10 -0
  42. package/dist/plugins/generative-ui/ui/card.d.ts +9 -0
  43. package/dist/plugins/generative-ui/ui/checkbox-wrapper.d.ts +10 -0
  44. package/dist/plugins/generative-ui/ui/checkbox.d.ts +4 -0
  45. package/dist/plugins/generative-ui/ui/data-table.d.ts +10 -0
  46. package/dist/plugins/generative-ui/ui/dialog.d.ts +17 -0
  47. package/dist/plugins/generative-ui/ui/dropdown-menu.d.ts +25 -0
  48. package/dist/plugins/generative-ui/ui/grid.d.ts +6 -0
  49. package/dist/plugins/generative-ui/ui/index.d.ts +40 -0
  50. package/dist/plugins/generative-ui/ui/input-wrapper.d.ts +11 -0
  51. package/dist/plugins/generative-ui/ui/input.d.ts +3 -0
  52. package/dist/plugins/generative-ui/ui/label.d.ts +4 -0
  53. package/dist/plugins/generative-ui/ui/list.d.ts +6 -0
  54. package/dist/plugins/generative-ui/ui/metric.d.ts +7 -0
  55. package/dist/plugins/generative-ui/ui/pagination.d.ts +13 -0
  56. package/dist/plugins/generative-ui/ui/popover.d.ts +10 -0
  57. package/dist/plugins/generative-ui/ui/progress.d.ts +10 -0
  58. package/dist/plugins/generative-ui/ui/radio-group.d.ts +5 -0
  59. package/dist/plugins/generative-ui/ui/select-wrapper.d.ts +13 -0
  60. package/dist/plugins/generative-ui/ui/select.d.ts +15 -0
  61. package/dist/plugins/generative-ui/ui/separator.d.ts +4 -0
  62. package/dist/plugins/generative-ui/ui/skeleton-wrapper.d.ts +9 -0
  63. package/dist/plugins/generative-ui/ui/skeleton.d.ts +2 -0
  64. package/dist/plugins/generative-ui/ui/stack.d.ts +8 -0
  65. package/dist/plugins/generative-ui/ui/switch.d.ts +6 -0
  66. package/dist/plugins/generative-ui/ui/table.d.ts +10 -0
  67. package/dist/plugins/generative-ui/ui/tabs-wrapper.d.ts +21 -0
  68. package/dist/plugins/generative-ui/ui/tabs.d.ts +11 -0
  69. package/dist/plugins/generative-ui/ui/text.d.ts +7 -0
  70. package/dist/plugins/generative-ui/ui/textarea.d.ts +3 -0
  71. package/dist/plugins/generative-ui/ui/tooltip.d.ts +7 -0
  72. package/dist/plugins.cjs +1 -1
  73. package/dist/plugins.js +1 -1
  74. package/dist/{profiler-BaG0scxd.js → profiler-D4Tw5ecI.js} +2 -2
  75. package/dist/{profiler-BaG0scxd.js.map → profiler-D4Tw5ecI.js.map} +1 -1
  76. package/dist/{profiler-CuqENACf.cjs → profiler-DCWYDZ1F.cjs} +2 -2
  77. package/dist/{profiler-CuqENACf.cjs.map → profiler-DCWYDZ1F.cjs.map} +1 -1
  78. package/dist/{startRecording-BiLmoqZa.cjs → startRecording-3sTskM3H.cjs} +2 -2
  79. package/dist/{startRecording-BiLmoqZa.cjs.map → startRecording-3sTskM3H.cjs.map} +1 -1
  80. package/dist/{startRecording-86bHmd-l.js → startRecording-BHhcCWQE.js} +2 -2
  81. package/dist/{startRecording-86bHmd-l.js.map → startRecording-BHhcCWQE.js.map} +1 -1
  82. package/package.json +4 -1
  83. package/src/components/Chat/stories/Charts.stories.tsx +260 -0
  84. package/src/components/Chat/stories/ConnectionConfiguration.stories.tsx +6 -6
  85. package/src/components/Chat/stories/GenerativeUI.stories.tsx +113 -0
  86. package/src/components/Replay.stories.tsx +1 -1
  87. package/src/components/Replay.tsx +18 -13
  88. package/src/components/ui/charts.stories.tsx +246 -0
  89. package/src/components/ui/generative-ui.stories.tsx +557 -0
  90. package/src/components/ui/generative-ui.tsx +60 -360
  91. package/src/components/ui/tool-ui.stories.tsx +6 -3
  92. package/src/hooks/useAuth.ts +17 -1
  93. package/src/hooks/useFollowOnSuggestions.ts +6 -1
  94. package/src/plugins/chart/catalog.ts +141 -0
  95. package/src/plugins/chart/component.tsx +79 -125
  96. package/src/plugins/chart/index.ts +141 -89
  97. package/src/plugins/chart/ui/area-chart.tsx +133 -0
  98. package/src/plugins/chart/ui/bar-chart.tsx +137 -0
  99. package/src/plugins/chart/ui/donut-chart.tsx +167 -0
  100. package/src/plugins/chart/ui/index.ts +7 -0
  101. package/src/plugins/chart/ui/line-chart.tsx +135 -0
  102. package/src/plugins/chart/ui/pie-chart.tsx +148 -0
  103. package/src/plugins/chart/ui/radar-chart.tsx +105 -0
  104. package/src/plugins/chart/ui/scatter-chart.tsx +132 -0
  105. package/src/plugins/components/MacOSWindowFrame.tsx +55 -0
  106. package/src/plugins/components/PluginLoadingState.tsx +9 -13
  107. package/src/plugins/generative-ui/catalog.ts +277 -0
  108. package/src/plugins/generative-ui/component.tsx +112 -21
  109. package/src/plugins/generative-ui/index.ts +20 -141
  110. package/src/plugins/generative-ui/ui/accordion-wrapper.tsx +57 -0
  111. package/src/plugins/generative-ui/ui/accordion.tsx +66 -0
  112. package/src/plugins/generative-ui/ui/action-button.tsx +68 -0
  113. package/src/plugins/generative-ui/ui/alert-wrapper.tsx +26 -0
  114. package/src/plugins/generative-ui/ui/alert.tsx +66 -0
  115. package/src/plugins/generative-ui/ui/avatar-wrapper.tsx +22 -0
  116. package/src/plugins/generative-ui/ui/avatar.tsx +109 -0
  117. package/src/plugins/generative-ui/ui/badge.tsx +65 -0
  118. package/src/plugins/generative-ui/ui/button-wrapper.tsx +32 -0
  119. package/src/plugins/generative-ui/ui/button.tsx +65 -0
  120. package/src/plugins/generative-ui/ui/card-wrapper.tsx +36 -0
  121. package/src/plugins/generative-ui/ui/card.tsx +92 -0
  122. package/src/plugins/generative-ui/ui/checkbox-wrapper.tsx +39 -0
  123. package/src/plugins/generative-ui/ui/checkbox.tsx +32 -0
  124. package/src/plugins/generative-ui/ui/data-table.tsx +53 -0
  125. package/src/plugins/generative-ui/ui/dialog.tsx +158 -0
  126. package/src/plugins/generative-ui/ui/dropdown-menu.tsx +257 -0
  127. package/src/plugins/generative-ui/ui/grid.tsx +29 -0
  128. package/src/plugins/generative-ui/ui/index.ts +43 -0
  129. package/src/plugins/generative-ui/ui/input-wrapper.tsx +38 -0
  130. package/src/plugins/generative-ui/ui/input.tsx +21 -0
  131. package/src/plugins/generative-ui/ui/label.tsx +24 -0
  132. package/src/plugins/generative-ui/ui/list.tsx +34 -0
  133. package/src/plugins/generative-ui/ui/metric.tsx +53 -0
  134. package/src/plugins/generative-ui/ui/pagination.tsx +127 -0
  135. package/src/plugins/generative-ui/ui/popover.tsx +89 -0
  136. package/src/plugins/generative-ui/ui/progress.tsx +57 -0
  137. package/src/plugins/generative-ui/ui/radio-group.tsx +45 -0
  138. package/src/plugins/generative-ui/ui/select-wrapper.tsx +41 -0
  139. package/src/plugins/generative-ui/ui/select.tsx +190 -0
  140. package/src/plugins/generative-ui/ui/separator.tsx +28 -0
  141. package/src/plugins/generative-ui/ui/skeleton-wrapper.tsx +30 -0
  142. package/src/plugins/generative-ui/ui/skeleton.tsx +13 -0
  143. package/src/plugins/generative-ui/ui/stack.tsx +54 -0
  144. package/src/plugins/generative-ui/ui/switch.tsx +35 -0
  145. package/src/plugins/generative-ui/ui/table.tsx +116 -0
  146. package/src/plugins/generative-ui/ui/tabs-wrapper.tsx +51 -0
  147. package/src/plugins/generative-ui/ui/tabs.tsx +92 -0
  148. package/src/plugins/generative-ui/ui/text.tsx +33 -0
  149. package/src/plugins/generative-ui/ui/textarea.tsx +18 -0
  150. package/src/plugins/generative-ui/ui/tooltip.tsx +57 -0
  151. package/dist/components/Chat/stories/Plugins.stories.d.ts +0 -12
  152. package/dist/index-B8nSCdu4.cjs +0 -251
  153. package/dist/index-B8nSCdu4.cjs.map +0 -1
  154. package/dist/index-CAtaLV1E.cjs +0 -187
  155. package/dist/index-CAtaLV1E.cjs.map +0 -1
  156. package/dist/index-CJrwma08.js +0 -27232
  157. package/dist/index-CJrwma08.js.map +0 -1
  158. package/dist/index-DLWQ91ow.js +0 -40049
  159. package/dist/index-DLWQ91ow.js.map +0 -1
  160. package/src/components/Chat/stories/Plugins.stories.tsx +0 -158
@@ -0,0 +1,123 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Chart Catalog
4
+ *
5
+ * Defines all available chart components for LLM-generated visualizations.
6
+ * Uses Recharts under the hood for rendering.
7
+ */
8
+ export declare const chartCatalog: import('@json-render/core').Catalog<{
9
+ BarChart: {
10
+ props: z.ZodObject<{
11
+ title: z.ZodOptional<z.ZodString>;
12
+ data: z.ZodArray<z.ZodObject<{
13
+ label: z.ZodString;
14
+ value: z.ZodNumber;
15
+ color: z.ZodOptional<z.ZodString>;
16
+ }, z.core.$strip>>;
17
+ layout: z.ZodOptional<z.ZodEnum<{
18
+ vertical: "vertical";
19
+ horizontal: "horizontal";
20
+ }>>;
21
+ showGrid: z.ZodOptional<z.ZodBoolean>;
22
+ showLegend: z.ZodOptional<z.ZodBoolean>;
23
+ className: z.ZodOptional<z.ZodString>;
24
+ }, z.core.$strip>;
25
+ description: string;
26
+ };
27
+ LineChart: {
28
+ props: z.ZodObject<{
29
+ title: z.ZodOptional<z.ZodString>;
30
+ data: z.ZodArray<z.ZodObject<{
31
+ label: z.ZodString;
32
+ }, z.core.$catchall<z.ZodNumber>>>;
33
+ series: z.ZodOptional<z.ZodArray<z.ZodString>>;
34
+ showGrid: z.ZodOptional<z.ZodBoolean>;
35
+ showLegend: z.ZodOptional<z.ZodBoolean>;
36
+ showDots: z.ZodOptional<z.ZodBoolean>;
37
+ curved: z.ZodOptional<z.ZodBoolean>;
38
+ className: z.ZodOptional<z.ZodString>;
39
+ }, z.core.$strip>;
40
+ description: string;
41
+ };
42
+ AreaChart: {
43
+ props: z.ZodObject<{
44
+ title: z.ZodOptional<z.ZodString>;
45
+ data: z.ZodArray<z.ZodObject<{
46
+ label: z.ZodString;
47
+ }, z.core.$catchall<z.ZodNumber>>>;
48
+ series: z.ZodOptional<z.ZodArray<z.ZodString>>;
49
+ stacked: z.ZodOptional<z.ZodBoolean>;
50
+ showGrid: z.ZodOptional<z.ZodBoolean>;
51
+ showLegend: z.ZodOptional<z.ZodBoolean>;
52
+ className: z.ZodOptional<z.ZodString>;
53
+ }, z.core.$strip>;
54
+ description: string;
55
+ };
56
+ PieChart: {
57
+ props: z.ZodObject<{
58
+ title: z.ZodOptional<z.ZodString>;
59
+ data: z.ZodArray<z.ZodObject<{
60
+ label: z.ZodString;
61
+ value: z.ZodNumber;
62
+ color: z.ZodOptional<z.ZodString>;
63
+ }, z.core.$strip>>;
64
+ showLabels: z.ZodOptional<z.ZodBoolean>;
65
+ showLegend: z.ZodOptional<z.ZodBoolean>;
66
+ className: z.ZodOptional<z.ZodString>;
67
+ }, z.core.$strip>;
68
+ description: string;
69
+ };
70
+ DonutChart: {
71
+ props: z.ZodObject<{
72
+ title: z.ZodOptional<z.ZodString>;
73
+ data: z.ZodArray<z.ZodObject<{
74
+ label: z.ZodString;
75
+ value: z.ZodNumber;
76
+ color: z.ZodOptional<z.ZodString>;
77
+ }, z.core.$strip>>;
78
+ showLabels: z.ZodOptional<z.ZodBoolean>;
79
+ showLegend: z.ZodOptional<z.ZodBoolean>;
80
+ innerLabel: z.ZodOptional<z.ZodString>;
81
+ innerValue: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
82
+ className: z.ZodOptional<z.ZodString>;
83
+ }, z.core.$strip>;
84
+ description: string;
85
+ };
86
+ ScatterChart: {
87
+ props: z.ZodObject<{
88
+ title: z.ZodOptional<z.ZodString>;
89
+ data: z.ZodArray<z.ZodObject<{
90
+ x: z.ZodNumber;
91
+ y: z.ZodNumber;
92
+ label: z.ZodOptional<z.ZodString>;
93
+ size: z.ZodOptional<z.ZodNumber>;
94
+ color: z.ZodOptional<z.ZodString>;
95
+ }, z.core.$strip>>;
96
+ xLabel: z.ZodOptional<z.ZodString>;
97
+ yLabel: z.ZodOptional<z.ZodString>;
98
+ showGrid: z.ZodOptional<z.ZodBoolean>;
99
+ className: z.ZodOptional<z.ZodString>;
100
+ }, z.core.$strip>;
101
+ description: string;
102
+ };
103
+ RadarChart: {
104
+ props: z.ZodObject<{
105
+ title: z.ZodOptional<z.ZodString>;
106
+ data: z.ZodArray<z.ZodObject<{
107
+ label: z.ZodString;
108
+ value: z.ZodNumber;
109
+ color: z.ZodOptional<z.ZodString>;
110
+ }, z.core.$strip>>;
111
+ showLegend: z.ZodOptional<z.ZodBoolean>;
112
+ className: z.ZodOptional<z.ZodString>;
113
+ }, z.core.$strip>;
114
+ description: string;
115
+ };
116
+ }, Record<string, import('@json-render/core').ActionDefinition<Record<string, unknown>>>, Record<string, import('@json-render/core').ValidationFunction>>;
117
+ export type ChartCatalogComponentProps = typeof chartCatalog extends {
118
+ components: infer C;
119
+ } ? {
120
+ [K in keyof C]: C[K] extends {
121
+ props: infer P;
122
+ } ? z.infer<P extends z.ZodType ? P : never> : never;
123
+ } : never;
@@ -1,5 +1,5 @@
1
1
  import { Plugin } from '../../types/plugins';
2
2
  /**
3
- * This plugin renders Vega charts.
3
+ * This plugin renders charts using json-render format.
4
4
  */
5
5
  export declare const chart: Plugin;
@@ -0,0 +1,16 @@
1
+ import { FC } from 'react';
2
+ interface SeriesDataPoint {
3
+ label: string;
4
+ [key: string]: string | number;
5
+ }
6
+ export interface AreaChartProps {
7
+ title?: string;
8
+ data: SeriesDataPoint[];
9
+ series?: string[];
10
+ stacked?: boolean;
11
+ showGrid?: boolean;
12
+ showLegend?: boolean;
13
+ className?: string;
14
+ }
15
+ export declare const AreaChart: FC<AreaChartProps>;
16
+ export {};
@@ -0,0 +1,16 @@
1
+ import { FC } from 'react';
2
+ interface DataPoint {
3
+ label: string;
4
+ value: number;
5
+ color?: string;
6
+ }
7
+ export interface BarChartProps {
8
+ title?: string;
9
+ data: DataPoint[];
10
+ layout?: 'vertical' | 'horizontal';
11
+ showGrid?: boolean;
12
+ showLegend?: boolean;
13
+ className?: string;
14
+ }
15
+ export declare const BarChart: FC<BarChartProps>;
16
+ export {};
@@ -0,0 +1,17 @@
1
+ import { FC } from 'react';
2
+ interface DataPoint {
3
+ label: string;
4
+ value: number;
5
+ color?: string;
6
+ }
7
+ export interface DonutChartProps {
8
+ title?: string;
9
+ data: DataPoint[];
10
+ showLabels?: boolean;
11
+ showLegend?: boolean;
12
+ innerLabel?: string;
13
+ innerValue?: string | number;
14
+ className?: string;
15
+ }
16
+ export declare const DonutChart: FC<DonutChartProps>;
17
+ export {};
@@ -0,0 +1,7 @@
1
+ export { BarChart, type BarChartProps } from './bar-chart';
2
+ export { LineChart, type LineChartProps } from './line-chart';
3
+ export { AreaChart, type AreaChartProps } from './area-chart';
4
+ export { PieChart, type PieChartProps } from './pie-chart';
5
+ export { DonutChart, type DonutChartProps } from './donut-chart';
6
+ export { ScatterChart, type ScatterChartProps } from './scatter-chart';
7
+ export { RadarChart, type RadarChartProps } from './radar-chart';
@@ -0,0 +1,17 @@
1
+ import { FC } from 'react';
2
+ interface SeriesDataPoint {
3
+ label: string;
4
+ [key: string]: string | number;
5
+ }
6
+ export interface LineChartProps {
7
+ title?: string;
8
+ data: SeriesDataPoint[];
9
+ series?: string[];
10
+ showGrid?: boolean;
11
+ showLegend?: boolean;
12
+ showDots?: boolean;
13
+ curved?: boolean;
14
+ className?: string;
15
+ }
16
+ export declare const LineChart: FC<LineChartProps>;
17
+ export {};
@@ -0,0 +1,15 @@
1
+ import { FC } from 'react';
2
+ interface DataPoint {
3
+ label: string;
4
+ value: number;
5
+ color?: string;
6
+ }
7
+ export interface PieChartProps {
8
+ title?: string;
9
+ data: DataPoint[];
10
+ showLabels?: boolean;
11
+ showLegend?: boolean;
12
+ className?: string;
13
+ }
14
+ export declare const PieChart: FC<PieChartProps>;
15
+ export {};
@@ -0,0 +1,14 @@
1
+ import { FC } from 'react';
2
+ interface DataPoint {
3
+ label: string;
4
+ value: number;
5
+ color?: string;
6
+ }
7
+ export interface RadarChartProps {
8
+ title?: string;
9
+ data: DataPoint[];
10
+ showLegend?: boolean;
11
+ className?: string;
12
+ }
13
+ export declare const RadarChart: FC<RadarChartProps>;
14
+ export {};
@@ -0,0 +1,18 @@
1
+ import { FC } from 'react';
2
+ interface ScatterDataPoint {
3
+ x: number;
4
+ y: number;
5
+ label?: string;
6
+ size?: number;
7
+ color?: string;
8
+ }
9
+ export interface ScatterChartProps {
10
+ title?: string;
11
+ data: ScatterDataPoint[];
12
+ xLabel?: string;
13
+ yLabel?: string;
14
+ showGrid?: boolean;
15
+ className?: string;
16
+ }
17
+ export declare const ScatterChart: FC<ScatterChartProps>;
18
+ export {};
@@ -0,0 +1,13 @@
1
+ import { FC, ReactNode } from 'react';
2
+ interface MacOSWindowFrameProps {
3
+ children: ReactNode;
4
+ className?: string;
5
+ /** Optional title to display in the title bar */
6
+ title?: string;
7
+ }
8
+ /**
9
+ * A macOS-style window frame with traffic light buttons.
10
+ * Wraps content in a bordered container with a title bar.
11
+ */
12
+ export declare const MacOSWindowFrame: FC<MacOSWindowFrameProps>;
13
+ export {};
@@ -5,7 +5,7 @@ interface PluginLoadingStateProps {
5
5
  }
6
6
  /**
7
7
  * Shared loading state component for plugins.
8
- * Displays a shimmer effect with loading text.
8
+ * Displays a shimmer effect with loading text inside a macOS-style window.
9
9
  */
10
10
  export declare const PluginLoadingState: FC<PluginLoadingStateProps>;
11
11
  export {};
@@ -0,0 +1,293 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Generative UI Catalog
4
+ *
5
+ * Defines all available components for LLM-generated UI.
6
+ * Components map to shadcn/ui primitives in the ui/ directory.
7
+ */
8
+ export declare const catalog: import('@json-render/core').Catalog<{
9
+ Stack: {
10
+ props: z.ZodObject<{
11
+ direction: z.ZodOptional<z.ZodEnum<{
12
+ vertical: "vertical";
13
+ horizontal: "horizontal";
14
+ }>>;
15
+ gap: z.ZodOptional<z.ZodEnum<{
16
+ sm: "sm";
17
+ md: "md";
18
+ lg: "lg";
19
+ }>>;
20
+ align: z.ZodOptional<z.ZodEnum<{
21
+ end: "end";
22
+ start: "start";
23
+ center: "center";
24
+ stretch: "stretch";
25
+ }>>;
26
+ justify: z.ZodOptional<z.ZodEnum<{
27
+ end: "end";
28
+ start: "start";
29
+ center: "center";
30
+ between: "between";
31
+ around: "around";
32
+ }>>;
33
+ className: z.ZodOptional<z.ZodString>;
34
+ }, z.core.$strip>;
35
+ hasChildren: true;
36
+ description: string;
37
+ };
38
+ Grid: {
39
+ props: z.ZodObject<{
40
+ columns: z.ZodOptional<z.ZodNumber>;
41
+ gap: z.ZodOptional<z.ZodEnum<{
42
+ sm: "sm";
43
+ md: "md";
44
+ lg: "lg";
45
+ }>>;
46
+ className: z.ZodOptional<z.ZodString>;
47
+ }, z.core.$strip>;
48
+ hasChildren: true;
49
+ description: string;
50
+ };
51
+ Card: {
52
+ props: z.ZodObject<{
53
+ title: z.ZodOptional<z.ZodString>;
54
+ className: z.ZodOptional<z.ZodString>;
55
+ }, z.core.$strip>;
56
+ hasChildren: true;
57
+ description: string;
58
+ };
59
+ Text: {
60
+ props: z.ZodObject<{
61
+ content: z.ZodString;
62
+ variant: z.ZodOptional<z.ZodEnum<{
63
+ code: "code";
64
+ body: "body";
65
+ caption: "caption";
66
+ heading: "heading";
67
+ }>>;
68
+ className: z.ZodOptional<z.ZodString>;
69
+ }, z.core.$strip>;
70
+ description: string;
71
+ };
72
+ Metric: {
73
+ props: z.ZodObject<{
74
+ label: z.ZodString;
75
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
76
+ format: z.ZodOptional<z.ZodEnum<{
77
+ number: "number";
78
+ percent: "percent";
79
+ currency: "currency";
80
+ }>>;
81
+ className: z.ZodOptional<z.ZodString>;
82
+ }, z.core.$strip>;
83
+ description: string;
84
+ };
85
+ Badge: {
86
+ props: z.ZodObject<{
87
+ content: z.ZodOptional<z.ZodString>;
88
+ variant: z.ZodOptional<z.ZodEnum<{
89
+ success: "success";
90
+ default: "default";
91
+ destructive: "destructive";
92
+ secondary: "secondary";
93
+ warning: "warning";
94
+ outline: "outline";
95
+ }>>;
96
+ className: z.ZodOptional<z.ZodString>;
97
+ }, z.core.$strip>;
98
+ hasChildren: true;
99
+ description: string;
100
+ };
101
+ Progress: {
102
+ props: z.ZodObject<{
103
+ value: z.ZodNumber;
104
+ max: z.ZodOptional<z.ZodNumber>;
105
+ className: z.ZodOptional<z.ZodString>;
106
+ }, z.core.$strip>;
107
+ description: string;
108
+ };
109
+ Table: {
110
+ props: z.ZodObject<{
111
+ headers: z.ZodOptional<z.ZodArray<z.ZodString>>;
112
+ rows: z.ZodArray<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
113
+ className: z.ZodOptional<z.ZodString>;
114
+ }, z.core.$strip>;
115
+ description: string;
116
+ };
117
+ List: {
118
+ props: z.ZodObject<{
119
+ items: z.ZodArray<z.ZodString>;
120
+ ordered: z.ZodOptional<z.ZodBoolean>;
121
+ className: z.ZodOptional<z.ZodString>;
122
+ }, z.core.$strip>;
123
+ description: string;
124
+ };
125
+ Alert: {
126
+ props: z.ZodObject<{
127
+ title: z.ZodString;
128
+ description: z.ZodOptional<z.ZodString>;
129
+ variant: z.ZodOptional<z.ZodEnum<{
130
+ default: "default";
131
+ destructive: "destructive";
132
+ }>>;
133
+ }, z.core.$strip>;
134
+ description: string;
135
+ };
136
+ Separator: {
137
+ props: z.ZodObject<{
138
+ orientation: z.ZodOptional<z.ZodEnum<{
139
+ vertical: "vertical";
140
+ horizontal: "horizontal";
141
+ }>>;
142
+ className: z.ZodOptional<z.ZodString>;
143
+ }, z.core.$strip>;
144
+ description: string;
145
+ };
146
+ Divider: {
147
+ props: z.ZodObject<{
148
+ orientation: z.ZodOptional<z.ZodEnum<{
149
+ vertical: "vertical";
150
+ horizontal: "horizontal";
151
+ }>>;
152
+ className: z.ZodOptional<z.ZodString>;
153
+ }, z.core.$strip>;
154
+ description: string;
155
+ };
156
+ Accordion: {
157
+ props: z.ZodObject<{
158
+ type: z.ZodOptional<z.ZodEnum<{
159
+ single: "single";
160
+ multiple: "multiple";
161
+ }>>;
162
+ }, z.core.$strip>;
163
+ hasChildren: true;
164
+ description: string;
165
+ };
166
+ AccordionItem: {
167
+ props: z.ZodObject<{
168
+ value: z.ZodString;
169
+ title: z.ZodString;
170
+ }, z.core.$strip>;
171
+ hasChildren: true;
172
+ description: string;
173
+ };
174
+ Tabs: {
175
+ props: z.ZodObject<{
176
+ defaultValue: z.ZodOptional<z.ZodString>;
177
+ tabs: z.ZodArray<z.ZodObject<{
178
+ value: z.ZodString;
179
+ label: z.ZodString;
180
+ }, z.core.$strip>>;
181
+ }, z.core.$strip>;
182
+ hasChildren: true;
183
+ description: string;
184
+ };
185
+ TabContent: {
186
+ props: z.ZodObject<{
187
+ value: z.ZodString;
188
+ }, z.core.$strip>;
189
+ hasChildren: true;
190
+ description: string;
191
+ };
192
+ Button: {
193
+ props: z.ZodObject<{
194
+ label: z.ZodString;
195
+ variant: z.ZodOptional<z.ZodEnum<{
196
+ default: "default";
197
+ destructive: "destructive";
198
+ secondary: "secondary";
199
+ outline: "outline";
200
+ ghost: "ghost";
201
+ }>>;
202
+ size: z.ZodOptional<z.ZodEnum<{
203
+ default: "default";
204
+ icon: "icon";
205
+ sm: "sm";
206
+ lg: "lg";
207
+ }>>;
208
+ disabled: z.ZodOptional<z.ZodBoolean>;
209
+ action: z.ZodOptional<z.ZodString>;
210
+ actionParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
211
+ }, z.core.$strip>;
212
+ description: string;
213
+ };
214
+ ActionButton: {
215
+ props: z.ZodObject<{
216
+ label: z.ZodString;
217
+ action: z.ZodString;
218
+ args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
219
+ variant: z.ZodOptional<z.ZodEnum<{
220
+ default: "default";
221
+ destructive: "destructive";
222
+ secondary: "secondary";
223
+ outline: "outline";
224
+ ghost: "ghost";
225
+ }>>;
226
+ size: z.ZodOptional<z.ZodEnum<{
227
+ default: "default";
228
+ icon: "icon";
229
+ sm: "sm";
230
+ lg: "lg";
231
+ }>>;
232
+ className: z.ZodOptional<z.ZodString>;
233
+ }, z.core.$strip>;
234
+ description: string;
235
+ };
236
+ Input: {
237
+ props: z.ZodObject<{
238
+ label: z.ZodOptional<z.ZodString>;
239
+ placeholder: z.ZodOptional<z.ZodString>;
240
+ type: z.ZodOptional<z.ZodEnum<{
241
+ number: "number";
242
+ text: "text";
243
+ tel: "tel";
244
+ email: "email";
245
+ password: "password";
246
+ }>>;
247
+ valuePath: z.ZodString;
248
+ }, z.core.$strip>;
249
+ description: string;
250
+ };
251
+ Checkbox: {
252
+ props: z.ZodObject<{
253
+ label: z.ZodOptional<z.ZodString>;
254
+ valuePath: z.ZodString;
255
+ defaultChecked: z.ZodOptional<z.ZodBoolean>;
256
+ }, z.core.$strip>;
257
+ description: string;
258
+ };
259
+ Select: {
260
+ props: z.ZodObject<{
261
+ placeholder: z.ZodOptional<z.ZodString>;
262
+ valuePath: z.ZodString;
263
+ options: z.ZodArray<z.ZodObject<{
264
+ value: z.ZodString;
265
+ label: z.ZodString;
266
+ }, z.core.$strip>>;
267
+ }, z.core.$strip>;
268
+ description: string;
269
+ };
270
+ Avatar: {
271
+ props: z.ZodObject<{
272
+ src: z.ZodOptional<z.ZodString>;
273
+ alt: z.ZodOptional<z.ZodString>;
274
+ fallback: z.ZodString;
275
+ }, z.core.$strip>;
276
+ description: string;
277
+ };
278
+ Skeleton: {
279
+ props: z.ZodObject<{
280
+ width: z.ZodOptional<z.ZodString>;
281
+ height: z.ZodOptional<z.ZodString>;
282
+ className: z.ZodOptional<z.ZodString>;
283
+ }, z.core.$strip>;
284
+ description: string;
285
+ };
286
+ }, Record<string, import('@json-render/core').ActionDefinition<Record<string, unknown>>>, Record<string, import('@json-render/core').ValidationFunction>>;
287
+ export type CatalogComponentProps = typeof catalog extends {
288
+ components: infer C;
289
+ } ? {
290
+ [K in keyof C]: C[K] extends {
291
+ props: infer P;
292
+ } ? z.infer<P extends z.ZodType ? P : never> : never;
293
+ } : never;
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ export interface AccordionWrapperProps {
3
+ type?: 'single' | 'multiple';
4
+ children?: React.ReactNode;
5
+ }
6
+ /**
7
+ * Accordion wrapper that adapts the compound Accordion to the catalog's props-based API.
8
+ */
9
+ export declare function AccordionWrapper({ type, children, }: AccordionWrapperProps): import("react/jsx-runtime").JSX.Element;
10
+ export interface AccordionItemWrapperProps {
11
+ value: string;
12
+ title: string;
13
+ children?: React.ReactNode;
14
+ }
15
+ /**
16
+ * AccordionItem wrapper that takes title as a prop and renders trigger + content.
17
+ */
18
+ export declare function AccordionItemWrapper({ value, title, children, }: AccordionItemWrapperProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { Accordion as AccordionPrimitive } from 'radix-ui';
2
+ import * as React from 'react';
3
+ declare function Accordion({ ...props }: React.ComponentProps<typeof AccordionPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function AccordionItem({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
5
+ declare function AccordionTrigger({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
6
+ declare function AccordionContent({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
7
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
@@ -0,0 +1,10 @@
1
+ import { buttonVariants } from './button';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ import * as React from 'react';
4
+ export interface ActionButtonProps extends Omit<React.ComponentProps<'button'>, 'onClick'>, VariantProps<typeof buttonVariants> {
5
+ label: string;
6
+ /** Tool name to invoke when clicked (matches LLM prompt) */
7
+ action: string;
8
+ args?: Record<string, unknown>;
9
+ }
10
+ export declare function ActionButton({ label, action, args, variant, size, className, disabled, ...props }: ActionButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ export interface AlertWrapperProps {
2
+ title: string;
3
+ description?: string;
4
+ variant?: 'default' | 'destructive';
5
+ }
6
+ /**
7
+ * Alert wrapper that takes title and description as props.
8
+ */
9
+ export declare function AlertWrapper({ title, description, variant, }: AlertWrapperProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ declare const alertVariants: (props?: ({
4
+ variant?: "default" | "destructive" | null | undefined;
5
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
+ declare function Alert({ className, variant, ...props }: React.ComponentProps<'div'> & VariantProps<typeof alertVariants>): import("react/jsx-runtime").JSX.Element;
7
+ declare function AlertTitle({ className, ...props }: React.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
8
+ declare function AlertDescription({ className, ...props }: React.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
9
+ export { Alert, AlertTitle, AlertDescription };
@@ -0,0 +1,9 @@
1
+ export interface AvatarWrapperProps {
2
+ src?: string;
3
+ alt?: string;
4
+ fallback: string;
5
+ }
6
+ /**
7
+ * Avatar wrapper that takes src, alt, and fallback as props.
8
+ */
9
+ export declare function AvatarWrapper({ src, alt, fallback }: AvatarWrapperProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { Avatar as AvatarPrimitive } from 'radix-ui';
2
+ import * as React from 'react';
3
+ declare function Avatar({ className, size, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root> & {
4
+ size?: 'default' | 'sm' | 'lg';
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ declare function AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>): import("react/jsx-runtime").JSX.Element;
7
+ declare function AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>): import("react/jsx-runtime").JSX.Element;
8
+ declare function AvatarBadge({ className, ...props }: React.ComponentProps<'span'>): import("react/jsx-runtime").JSX.Element;
9
+ declare function AvatarGroup({ className, ...props }: React.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
10
+ declare function AvatarGroupCount({ className, ...props }: React.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
11
+ export { Avatar, AvatarImage, AvatarFallback, AvatarBadge, AvatarGroup, AvatarGroupCount, };
@@ -0,0 +1,12 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ declare const badgeVariants: (props?: ({
4
+ variant?: "success" | "default" | "error" | "destructive" | "secondary" | "warning" | "outline" | null | undefined;
5
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
+ interface BadgeProps extends React.ComponentProps<'span'>, VariantProps<typeof badgeVariants> {
7
+ asChild?: boolean;
8
+ /** Content text (matches LLM prompt) - rendered as children */
9
+ content?: string;
10
+ }
11
+ declare function Badge({ className, variant, asChild, content, children, ...props }: BadgeProps): import("react/jsx-runtime").JSX.Element;
12
+ export { Badge, badgeVariants };