@shapesos/clay 0.12.0 → 0.13.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 (49) hide show
  1. package/dist/artifacts.cjs +695 -246
  2. package/dist/artifacts.cjs.map +1 -1
  3. package/dist/artifacts.d.cts +133 -5
  4. package/dist/artifacts.d.ts +133 -5
  5. package/dist/artifacts.js +7 -2
  6. package/dist/blocks.cjs +705 -259
  7. package/dist/blocks.cjs.map +1 -1
  8. package/dist/blocks.css +1 -1
  9. package/dist/blocks.d.cts +8 -10
  10. package/dist/blocks.d.ts +8 -10
  11. package/dist/blocks.js +3 -2
  12. package/dist/capture.cjs +220 -0
  13. package/dist/capture.cjs.map +1 -0
  14. package/dist/capture.d.cts +113 -0
  15. package/dist/capture.d.ts +113 -0
  16. package/dist/capture.js +17 -0
  17. package/dist/chat.cjs +724 -287
  18. package/dist/chat.cjs.map +1 -1
  19. package/dist/chat.d.cts +2 -2
  20. package/dist/chat.d.ts +2 -2
  21. package/dist/chat.js +4 -3
  22. package/dist/{chunk-36CB624W.js → chunk-26XVDY6Z.js} +3 -3
  23. package/dist/chunk-26XVDY6Z.js.map +1 -0
  24. package/dist/{chunk-Z5JWF24N.js → chunk-DT44KNCV.js} +367 -82
  25. package/dist/chunk-DT44KNCV.js.map +1 -0
  26. package/dist/chunk-JAGNXEWK.js +116 -0
  27. package/dist/chunk-JAGNXEWK.js.map +1 -0
  28. package/dist/chunk-LXYCT4YO.js +7 -0
  29. package/dist/chunk-LXYCT4YO.js.map +1 -0
  30. package/dist/{chunk-FFX3CAOX.js → chunk-QH2WW2MW.js} +3 -3
  31. package/dist/chunk-RSRNSWJN.js +1 -0
  32. package/dist/chunk-RSRNSWJN.js.map +1 -0
  33. package/dist/dom-to-image-NATF3446.js +21 -0
  34. package/dist/dom-to-image-NATF3446.js.map +1 -0
  35. package/dist/index.cjs +763 -317
  36. package/dist/index.cjs.map +1 -1
  37. package/dist/index.d.cts +3 -3
  38. package/dist/index.d.ts +3 -3
  39. package/dist/index.js +9 -4
  40. package/dist/{types-C0BvwliI.d.cts → types-BzXPBy6s.d.cts} +39 -41
  41. package/dist/{types-uPfn67Dc.d.ts → types-CW45GBXl.d.cts} +25 -13
  42. package/dist/{types-DCutaXjZ.d.cts → types-D1b8v7EY.d.ts} +25 -13
  43. package/dist/{types-C5bFH4v3.d.ts → types-GCkXbyFm.d.ts} +39 -41
  44. package/package.json +12 -2
  45. package/dist/chunk-36CB624W.js.map +0 -1
  46. package/dist/chunk-AQEJRMRN.js +0 -1
  47. package/dist/chunk-Z5JWF24N.js.map +0 -1
  48. /package/dist/{chunk-AQEJRMRN.js.map → capture.js.map} +0 -0
  49. /package/dist/{chunk-FFX3CAOX.js.map → chunk-QH2WW2MW.js.map} +0 -0
@@ -5,6 +5,9 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __esm = (fn, res) => function __init() {
9
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
10
+ };
8
11
  var __export = (target, all) => {
9
12
  for (var name in all)
10
13
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -27,10 +30,245 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
30
  ));
28
31
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
32
 
33
+ // src/capture/capture-exclude-attribute.ts
34
+ var CAPTURE_EXCLUDE_ATTRIBUTE;
35
+ var init_capture_exclude_attribute = __esm({
36
+ "src/capture/capture-exclude-attribute.ts"() {
37
+ "use strict";
38
+ CAPTURE_EXCLUDE_ATTRIBUTE = "data-clay-capture-exclude";
39
+ }
40
+ });
41
+
42
+ // src/tokens/colors.ts
43
+ var colors;
44
+ var init_colors = __esm({
45
+ "src/tokens/colors.ts"() {
46
+ "use strict";
47
+ colors = {
48
+ // White
49
+ white: "#FFFFFF",
50
+ "white-alpha-85": "rgba(255, 255, 255, 0.85)",
51
+ "white-alpha-40": "rgba(255, 255, 255, 0.40)",
52
+ // Brown
53
+ "brown-10": "#FAF9F8",
54
+ "brown-20": "#F5F3F0",
55
+ "brown-30": "#EEEBE5",
56
+ "brown-40": "#E6E2DA",
57
+ "brown-50": "#CFCBC4",
58
+ "brown-60": "#A19E99",
59
+ "brown-70": "#73716D",
60
+ "brown-80": "#5C5A57",
61
+ "brown-90": "#2E2D2C",
62
+ "brown-100": "#171716",
63
+ "brown-alpha-12": "rgba(23, 23, 22, 0.12)",
64
+ "brown-alpha-20": "rgba(23, 23, 22, 0.20)",
65
+ "brown-alpha-55": "rgba(23, 23, 22, 0.55)",
66
+ "brown-alpha-70": "rgba(23, 23, 22, 0.70)",
67
+ "brown-alpha-80": "rgba(23, 23, 22, 0.80)",
68
+ "brown-alpha-90": "rgba(23, 23, 22, 0.90)",
69
+ // Fuchsia
70
+ "fuchsia-50": "#FAF5FF",
71
+ "fuchsia-300": "#F0ABFC",
72
+ "fuchsia-500": "#D946EF",
73
+ "fuchsia-600": "#C026D3",
74
+ "fuchsia-800": "#86198F",
75
+ // Pink
76
+ "pink-50": "#FDF2F8",
77
+ "pink-400": "#F472B6",
78
+ "pink-600": "#DB2777",
79
+ "pink-800": "#9D174D",
80
+ // Violet
81
+ "violet-50": "#F5F3FF",
82
+ "violet-400": "#A78BFA",
83
+ "violet-600": "#7C3AED",
84
+ "violet-800": "#5B21B6",
85
+ // Indigo
86
+ "indigo-50": "#EEF2FF",
87
+ "indigo-400": "#818CF8",
88
+ "indigo-500": "#6366F1",
89
+ "indigo-600": "#4F46E5",
90
+ "indigo-800": "#3730A3",
91
+ // Cyan
92
+ "cyan-50": "#E7FEFF",
93
+ "cyan-300": "#67E8F9",
94
+ "cyan-600": "#0891B2",
95
+ "cyan-900": "#164E63",
96
+ // Teal
97
+ "teal-50": "#EBFDF9",
98
+ "teal-300": "#5EEAD4",
99
+ "teal-600": "#0D9488",
100
+ // Rose
101
+ "rose-400": "#FB7185",
102
+ // Purple
103
+ "purple-400": "#C084FC",
104
+ // Blue
105
+ "blue-50": "#EFF6FF",
106
+ "blue-100": "#DBEAFE",
107
+ "blue-300": "#93C5FD",
108
+ "blue-400": "#60A5FA",
109
+ "blue-600": "#2563EB",
110
+ "blue-800": "#1E40AF",
111
+ // Sky
112
+ "sky-300": "#7DD3FC",
113
+ // Green
114
+ "green-50": "#ECF9F0",
115
+ "green-100": "#D4F1D9",
116
+ "green-400": "#3DC269",
117
+ "green-700": "#277C43",
118
+ "green-800": "#1C5930",
119
+ // Orange
120
+ "orange-50": "#FFF7ED",
121
+ "orange-100": "#FFEDD5",
122
+ "orange-200": "#FED7AA",
123
+ "orange-500": "#F97316",
124
+ "orange-600": "#EA580C",
125
+ // Red
126
+ "red-50": "#FEF2F2",
127
+ "red-100": "#FEE2E2",
128
+ "red-200": "#FECACA",
129
+ "red-400": "#F7776C",
130
+ "red-500": "#EF4444",
131
+ "red-600": "#DC2626"
132
+ };
133
+ }
134
+ });
135
+
136
+ // src/capture/_font-data-urls.generated.ts
137
+ var GEIST_LATIN_WOFF2_DATA_URL, CRIMSON_PRO_LATIN_WOFF2_DATA_URL;
138
+ var init_font_data_urls_generated = __esm({
139
+ "src/capture/_font-data-urls.generated.ts"() {
140
+ "use strict";
141
+ GEIST_LATIN_WOFF2_DATA_URL = "data:font/woff2;base64,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";
142
+ CRIMSON_PRO_LATIN_WOFF2_DATA_URL = "data:font/woff2;base64,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";
143
+ }
144
+ });
145
+
146
+ // src/capture/font-embed.ts
147
+ var CLAY_FONTS_EMBED_CSS;
148
+ var init_font_embed = __esm({
149
+ "src/capture/font-embed.ts"() {
150
+ "use strict";
151
+ init_font_data_urls_generated();
152
+ CLAY_FONTS_EMBED_CSS = `
153
+ @font-face {
154
+ font-family: 'Geist';
155
+ font-style: normal;
156
+ font-weight: 100 900;
157
+ font-display: swap;
158
+ src: url(${GEIST_LATIN_WOFF2_DATA_URL}) format('woff2-variations');
159
+ }
160
+ @font-face {
161
+ font-family: 'Crimson Pro';
162
+ font-style: normal;
163
+ font-weight: 200 900;
164
+ font-display: swap;
165
+ src: url(${CRIMSON_PRO_LATIN_WOFF2_DATA_URL}) format('woff2-variations');
166
+ }
167
+ `.trim();
168
+ }
169
+ });
170
+
171
+ // src/capture/dom-to-image.ts
172
+ var dom_to_image_exports = {};
173
+ __export(dom_to_image_exports, {
174
+ CAPTURE_EXCLUDE_ATTRIBUTE: () => CAPTURE_EXCLUDE_ATTRIBUTE,
175
+ _resetFontEmbedCacheForTests: () => _resetFontEmbedCacheForTests,
176
+ copyNodeAsPng: () => copyNodeAsPng,
177
+ downloadNodeAsPng: () => downloadNodeAsPng,
178
+ nodeToPngBlob: () => nodeToPngBlob,
179
+ truncateErrorMessage: () => truncateErrorMessage
180
+ });
181
+ function defaultFilter(node) {
182
+ if (typeof node.getAttribute !== "function") return true;
183
+ return !node.hasAttribute(CAPTURE_EXCLUDE_ATTRIBUTE);
184
+ }
185
+ function composeFilter(caller) {
186
+ if (!caller) return defaultFilter;
187
+ return (node) => defaultFilter(node) && caller(node);
188
+ }
189
+ async function resolveFontEmbedCSS(node) {
190
+ if (cachedFontEmbedCSS !== null) return cachedFontEmbedCSS;
191
+ if (inflightFontEmbedCSS !== null) return inflightFontEmbedCSS;
192
+ inflightFontEmbedCSS = (0, import_html_to_image.getFontEmbedCSS)(node).catch(() => "").then((dynamicCss) => {
193
+ const combined = `${CLAY_FONTS_EMBED_CSS}
194
+ ${dynamicCss}`;
195
+ cachedFontEmbedCSS = combined;
196
+ return combined;
197
+ }).finally(() => {
198
+ inflightFontEmbedCSS = null;
199
+ });
200
+ return inflightFontEmbedCSS;
201
+ }
202
+ function _resetFontEmbedCacheForTests() {
203
+ cachedFontEmbedCSS = null;
204
+ inflightFontEmbedCSS = null;
205
+ }
206
+ async function nodeToPngBlob(node, options = {}) {
207
+ const fontEmbedCSS = options.fontEmbedCSS ?? await resolveFontEmbedCSS(node).catch(() => void 0);
208
+ const rect = node.getBoundingClientRect();
209
+ const width = options.width ?? rect.width;
210
+ const height = options.height ?? rect.height;
211
+ const blob = await (0, import_html_to_image.toBlob)(node, {
212
+ backgroundColor: options.backgroundColor ?? DEFAULT_BACKGROUND,
213
+ cacheBust: options.cacheBust ?? true,
214
+ filter: composeFilter(options.filter),
215
+ pixelRatio: options.pixelRatio,
216
+ width,
217
+ height,
218
+ fontEmbedCSS
219
+ });
220
+ if (!blob) throw new Error("Failed to rasterise node \u2014 toBlob returned null (possible cross-origin canvas taint).");
221
+ return blob;
222
+ }
223
+ async function copyNodeAsPng(node, options = {}) {
224
+ if (typeof ClipboardItem === "undefined") {
225
+ throw new Error("Clipboard image writes are not supported in this environment (ClipboardItem missing).");
226
+ }
227
+ if (!navigator.clipboard) {
228
+ throw new Error("Clipboard API unavailable \u2014 secure context (HTTPS) required.");
229
+ }
230
+ const blobPromise = nodeToPngBlob(node, options);
231
+ void blobPromise.catch(() => void 0);
232
+ const item = new ClipboardItem({ "image/png": blobPromise });
233
+ await Promise.all([navigator.clipboard.write([item]), blobPromise]);
234
+ }
235
+ async function downloadNodeAsPng(node, filename, options = {}) {
236
+ const blob = await nodeToPngBlob(node, options);
237
+ const url = URL.createObjectURL(blob);
238
+ const a = document.createElement("a");
239
+ a.href = url;
240
+ a.download = filename;
241
+ a.rel = "noopener noreferrer";
242
+ document.body.appendChild(a);
243
+ a.click();
244
+ a.remove();
245
+ setTimeout(() => URL.revokeObjectURL(url), OBJECT_URL_REVOKE_DELAY_MS);
246
+ }
247
+ function truncateErrorMessage(message, max = MAX_ERROR_MESSAGE_CHARS) {
248
+ return message.length <= max ? message : `${message.slice(0, max - 1)}\u2026`;
249
+ }
250
+ var import_html_to_image, DEFAULT_BACKGROUND, MAX_ERROR_MESSAGE_CHARS, cachedFontEmbedCSS, inflightFontEmbedCSS, OBJECT_URL_REVOKE_DELAY_MS;
251
+ var init_dom_to_image = __esm({
252
+ "src/capture/dom-to-image.ts"() {
253
+ "use strict";
254
+ import_html_to_image = require("html-to-image");
255
+ init_colors();
256
+ init_capture_exclude_attribute();
257
+ init_font_embed();
258
+ DEFAULT_BACKGROUND = colors.white;
259
+ MAX_ERROR_MESSAGE_CHARS = 120;
260
+ cachedFontEmbedCSS = null;
261
+ inflightFontEmbedCSS = null;
262
+ OBJECT_URL_REVOKE_DELAY_MS = 3e4;
263
+ }
264
+ });
265
+
30
266
  // src/components/artifacts/index.ts
31
267
  var artifacts_exports = {};
32
268
  __export(artifacts_exports, {
269
+ ArtifactCopyAsImageButton: () => ArtifactCopyAsImageButton,
33
270
  ArtifactDownloadButton: () => ArtifactDownloadButton,
271
+ ArtifactDownloadMenu: () => ArtifactDownloadMenu,
34
272
  ArtifactServices: () => ArtifactServices,
35
273
  ChartArtifact: () => ChartArtifact,
36
274
  DEFAULT_CHART_ARTIFACT_LABELS: () => DEFAULT_CHART_ARTIFACT_LABELS,
@@ -50,7 +288,10 @@ var artifactTypes = {
50
288
 
51
289
  // src/components/artifacts/chart-artifact/types.ts
52
290
  var DEFAULT_CHART_ARTIFACT_LABELS = {
53
- download: "Download CSV",
291
+ download: "Download",
292
+ downloadCsv: "Download CSV",
293
+ downloadPng: "Download PNG",
294
+ copyAsImage: "Copy Image",
54
295
  unavailable: "Chart data is unavailable.",
55
296
  loadError: "Couldn't load chart data.",
56
297
  loading: "Loading chart\u2026",
@@ -68,7 +309,10 @@ var DEFAULT_TABLE_ARTIFACT_LABELS = {
68
309
  };
69
310
 
70
311
  // src/components/artifacts/chart-artifact/chart-artifact.tsx
71
- var import_react9 = require("react");
312
+ var import_react13 = require("react");
313
+
314
+ // src/components/ai-elements/artifact.tsx
315
+ var import_react = require("react");
72
316
 
73
317
  // src/lib/utils.ts
74
318
  var import_clsx = require("clsx");
@@ -79,20 +323,25 @@ function cn(...inputs) {
79
323
 
80
324
  // src/components/ai-elements/artifact.tsx
81
325
  var import_jsx_runtime = require("react/jsx-runtime");
82
- var Artifact = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
326
+ var Artifact = (0, import_react.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
83
327
  "div",
84
328
  {
329
+ ref,
85
330
  className: cn("flex flex-col overflow-hidden rounded-lg border bg-background shadow-sm", className),
86
331
  ...props
87
332
  }
88
- );
333
+ ));
334
+ Artifact.displayName = "Artifact";
89
335
  var ArtifactHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: cn("flex items-center justify-between border-b bg-muted/50 px-4 py-3", className), ...props });
90
336
  var ArtifactTitle = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: cn("font-medium text-foreground text-sm", className), ...props });
91
337
  var ArtifactActions = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: cn("flex items-center gap-1", className), ...props });
92
338
  var ArtifactContent = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: cn("flex-1 overflow-auto p-4", className), ...props });
93
339
 
340
+ // src/components/artifacts/chart-artifact/chart-artifact.tsx
341
+ init_capture_exclude_attribute();
342
+
94
343
  // node_modules/@tabler/icons-react/dist/esm/createReactComponent.mjs
95
- var import_react = require("react");
344
+ var import_react2 = require("react");
96
345
 
97
346
  // node_modules/@tabler/icons-react/dist/esm/defaultAttributes.mjs
98
347
  var defaultAttributes = {
@@ -119,8 +368,8 @@ var defaultAttributes = {
119
368
 
120
369
  // node_modules/@tabler/icons-react/dist/esm/createReactComponent.mjs
121
370
  var createReactComponent = (type, iconName, iconNamePascal, iconNode) => {
122
- const Component = (0, import_react.forwardRef)(
123
- ({ color = "currentColor", size = 24, stroke = 2, title, className, children, ...rest }, ref) => (0, import_react.createElement)(
371
+ const Component = (0, import_react2.forwardRef)(
372
+ ({ color = "currentColor", size = 24, stroke = 2, title, className, children, ...rest }, ref) => (0, import_react2.createElement)(
124
373
  "svg",
125
374
  {
126
375
  ref,
@@ -137,8 +386,8 @@ var createReactComponent = (type, iconName, iconNamePascal, iconNode) => {
137
386
  ...rest
138
387
  },
139
388
  [
140
- title && (0, import_react.createElement)("title", { key: "svg-title" }, title),
141
- ...iconNode.map(([tag, attrs]) => (0, import_react.createElement)(tag, attrs)),
389
+ title && (0, import_react2.createElement)("title", { key: "svg-title" }, title),
390
+ ...iconNode.map(([tag, attrs]) => (0, import_react2.createElement)(tag, attrs)),
142
391
  ...Array.isArray(children) ? children : [children]
143
392
  ]
144
393
  )
@@ -147,15 +396,42 @@ var createReactComponent = (type, iconName, iconNamePascal, iconNode) => {
147
396
  return Component;
148
397
  };
149
398
 
399
+ // node_modules/@tabler/icons-react/dist/esm/icons/IconAlertCircle.mjs
400
+ var __iconNode = [["path", { "d": "M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0", "key": "svg-0" }], ["path", { "d": "M12 8v4", "key": "svg-1" }], ["path", { "d": "M12 16h.01", "key": "svg-2" }]];
401
+ var IconAlertCircle = createReactComponent("outline", "alert-circle", "AlertCircle", __iconNode);
402
+
403
+ // node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.mjs
404
+ var __iconNode2 = [["path", { "d": "M5 12l5 5l10 -10", "key": "svg-0" }]];
405
+ var IconCheck = createReactComponent("outline", "check", "Check", __iconNode2);
406
+
407
+ // node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.mjs
408
+ var __iconNode3 = [["path", { "d": "M7 9.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667l0 -8.666", "key": "svg-0" }], ["path", { "d": "M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1", "key": "svg-1" }]];
409
+ var IconCopy = createReactComponent("outline", "copy", "Copy", __iconNode3);
410
+
150
411
  // node_modules/@tabler/icons-react/dist/esm/icons/IconDownload.mjs
151
- var __iconNode = [["path", { "d": "M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2", "key": "svg-0" }], ["path", { "d": "M7 11l5 5l5 -5", "key": "svg-1" }], ["path", { "d": "M12 4l0 12", "key": "svg-2" }]];
152
- var IconDownload = createReactComponent("outline", "download", "Download", __iconNode);
412
+ var __iconNode4 = [["path", { "d": "M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2", "key": "svg-0" }], ["path", { "d": "M7 11l5 5l5 -5", "key": "svg-1" }], ["path", { "d": "M12 4l0 12", "key": "svg-2" }]];
413
+ var IconDownload = createReactComponent("outline", "download", "Download", __iconNode4);
414
+
415
+ // node_modules/@tabler/icons-react/dist/esm/icons/IconFileSpreadsheet.mjs
416
+ var __iconNode5 = [["path", { "d": "M14 3v4a1 1 0 0 0 1 1h4", "key": "svg-0" }], ["path", { "d": "M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2", "key": "svg-1" }], ["path", { "d": "M8 11h8v7h-8l0 -7", "key": "svg-2" }], ["path", { "d": "M8 15h8", "key": "svg-3" }], ["path", { "d": "M11 11v7", "key": "svg-4" }]];
417
+ var IconFileSpreadsheet = createReactComponent("outline", "file-spreadsheet", "FileSpreadsheet", __iconNode5);
418
+
419
+ // node_modules/@tabler/icons-react/dist/esm/icons/IconLoader2.mjs
420
+ var __iconNode6 = [["path", { "d": "M12 3a9 9 0 1 0 9 9", "key": "svg-0" }]];
421
+ var IconLoader2 = createReactComponent("outline", "loader-2", "Loader2", __iconNode6);
422
+
423
+ // node_modules/@tabler/icons-react/dist/esm/icons/IconPhoto.mjs
424
+ var __iconNode7 = [["path", { "d": "M15 8h.01", "key": "svg-0" }], ["path", { "d": "M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-12", "key": "svg-1" }], ["path", { "d": "M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5", "key": "svg-2" }], ["path", { "d": "M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3", "key": "svg-3" }]];
425
+ var IconPhoto = createReactComponent("outline", "photo", "Photo", __iconNode7);
426
+
427
+ // src/components/artifacts/artifact-copy-as-image-button/artifact-copy-as-image-button.tsx
428
+ var import_react6 = require("react");
153
429
 
154
430
  // src/components/icon-button/icon-button.tsx
155
- var import_react3 = require("react");
431
+ var import_react4 = require("react");
156
432
 
157
433
  // src/components/icon/icon.tsx
158
- var import_react2 = require("react");
434
+ var import_react3 = require("react");
159
435
 
160
436
  // src/components/icon/icon-styles.ts
161
437
  var import_styled_components = __toESM(require("styled-components"), 1);
@@ -182,7 +458,7 @@ var IconWrapper = import_styled_components.default.span`
182
458
  // src/components/icon/icon.tsx
183
459
  var import_jsx_runtime2 = require("react/jsx-runtime");
184
460
  var DEFAULT_SIZE = 16;
185
- var Icon = (0, import_react2.forwardRef)(function Icon2({ icon: IconComponent, size = DEFAULT_SIZE, color, className, "aria-label": ariaLabel }, ref) {
461
+ var Icon = (0, import_react3.forwardRef)(function Icon2({ icon: IconComponent, size = DEFAULT_SIZE, color, className, "aria-label": ariaLabel }, ref) {
186
462
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
187
463
  IconWrapper,
188
464
  {
@@ -198,96 +474,7 @@ var Icon = (0, import_react2.forwardRef)(function Icon2({ icon: IconComponent, s
198
474
 
199
475
  // src/components/icon-button/icon-button-styles.ts
200
476
  var import_styled_components2 = __toESM(require("styled-components"), 1);
201
-
202
- // src/tokens/colors.ts
203
- var colors = {
204
- // White
205
- white: "#FFFFFF",
206
- "white-alpha-85": "rgba(255, 255, 255, 0.85)",
207
- "white-alpha-40": "rgba(255, 255, 255, 0.40)",
208
- // Brown
209
- "brown-10": "#FAF9F8",
210
- "brown-20": "#F5F3F0",
211
- "brown-30": "#EEEBE5",
212
- "brown-40": "#E6E2DA",
213
- "brown-50": "#CFCBC4",
214
- "brown-60": "#A19E99",
215
- "brown-70": "#73716D",
216
- "brown-80": "#5C5A57",
217
- "brown-90": "#2E2D2C",
218
- "brown-100": "#171716",
219
- "brown-alpha-12": "rgba(23, 23, 22, 0.12)",
220
- "brown-alpha-20": "rgba(23, 23, 22, 0.20)",
221
- "brown-alpha-55": "rgba(23, 23, 22, 0.55)",
222
- "brown-alpha-70": "rgba(23, 23, 22, 0.70)",
223
- "brown-alpha-80": "rgba(23, 23, 22, 0.80)",
224
- "brown-alpha-90": "rgba(23, 23, 22, 0.90)",
225
- // Fuchsia
226
- "fuchsia-50": "#FAF5FF",
227
- "fuchsia-300": "#F0ABFC",
228
- "fuchsia-500": "#D946EF",
229
- "fuchsia-600": "#C026D3",
230
- "fuchsia-800": "#86198F",
231
- // Pink
232
- "pink-50": "#FDF2F8",
233
- "pink-400": "#F472B6",
234
- "pink-600": "#DB2777",
235
- "pink-800": "#9D174D",
236
- // Violet
237
- "violet-50": "#F5F3FF",
238
- "violet-400": "#A78BFA",
239
- "violet-600": "#7C3AED",
240
- "violet-800": "#5B21B6",
241
- // Indigo
242
- "indigo-50": "#EEF2FF",
243
- "indigo-400": "#818CF8",
244
- "indigo-500": "#6366F1",
245
- "indigo-600": "#4F46E5",
246
- "indigo-800": "#3730A3",
247
- // Cyan
248
- "cyan-50": "#E7FEFF",
249
- "cyan-300": "#67E8F9",
250
- "cyan-600": "#0891B2",
251
- "cyan-900": "#164E63",
252
- // Teal
253
- "teal-50": "#EBFDF9",
254
- "teal-300": "#5EEAD4",
255
- "teal-600": "#0D9488",
256
- // Rose
257
- "rose-400": "#FB7185",
258
- // Purple
259
- "purple-400": "#C084FC",
260
- // Blue
261
- "blue-50": "#EFF6FF",
262
- "blue-100": "#DBEAFE",
263
- "blue-300": "#93C5FD",
264
- "blue-400": "#60A5FA",
265
- "blue-600": "#2563EB",
266
- "blue-800": "#1E40AF",
267
- // Sky
268
- "sky-300": "#7DD3FC",
269
- // Green
270
- "green-50": "#ECF9F0",
271
- "green-100": "#D4F1D9",
272
- "green-400": "#3DC269",
273
- "green-700": "#277C43",
274
- "green-800": "#1C5930",
275
- // Orange
276
- "orange-50": "#FFF7ED",
277
- "orange-100": "#FFEDD5",
278
- "orange-200": "#FED7AA",
279
- "orange-500": "#F97316",
280
- "orange-600": "#EA580C",
281
- // Red
282
- "red-50": "#FEF2F2",
283
- "red-100": "#FEE2E2",
284
- "red-200": "#FECACA",
285
- "red-400": "#F7776C",
286
- "red-500": "#EF4444",
287
- "red-600": "#DC2626"
288
- };
289
-
290
- // src/components/icon-button/icon-button-styles.ts
477
+ init_colors();
291
478
  var PADDING = {
292
479
  short: {
293
480
  small: "4px",
@@ -335,7 +522,7 @@ var ICON_SIZE_BY_BUTTON_SIZE = {
335
522
  small: 16,
336
523
  medium: 20
337
524
  };
338
- var IconButton = (0, import_react3.forwardRef)(function IconButton2({
525
+ var IconButton = (0, import_react4.forwardRef)(function IconButton2({
339
526
  icon,
340
527
  size = "small",
341
528
  variant = "short",
@@ -390,17 +577,119 @@ var TooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props },
390
577
  ));
391
578
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
392
579
 
393
- // src/components/artifacts/artifact-download-button/artifact-download-button.tsx
580
+ // src/components/artifacts/artifact-copy-as-image-button/use-copy-as-image.ts
581
+ var import_react5 = require("react");
582
+ var DEFAULT_RESET_AFTER_MS = 1500;
583
+ function useCopyAsImage(targetRef, options = {}) {
584
+ const [status, setStatus] = (0, import_react5.useState)("idle");
585
+ const [error, setError] = (0, import_react5.useState)(null);
586
+ const resetTimerRef = (0, import_react5.useRef)(null);
587
+ (0, import_react5.useEffect)(() => {
588
+ return () => {
589
+ if (resetTimerRef.current !== null) clearTimeout(resetTimerRef.current);
590
+ };
591
+ }, []);
592
+ const copy = (0, import_react5.useCallback)(async () => {
593
+ if (resetTimerRef.current !== null) {
594
+ clearTimeout(resetTimerRef.current);
595
+ resetTimerRef.current = null;
596
+ }
597
+ const { resetAfterMs = DEFAULT_RESET_AFTER_MS, ...nodeOptions } = options;
598
+ const scheduleReset = () => {
599
+ if (resetAfterMs <= 0) return;
600
+ resetTimerRef.current = setTimeout(() => {
601
+ resetTimerRef.current = null;
602
+ setStatus("idle");
603
+ setError(null);
604
+ }, resetAfterMs);
605
+ };
606
+ const node = targetRef.current;
607
+ if (!node) {
608
+ const err = new Error("ArtifactCopyAsImageButton: target ref is not attached to a DOM node.");
609
+ setError(err);
610
+ setStatus("error");
611
+ scheduleReset();
612
+ throw err;
613
+ }
614
+ setError(null);
615
+ setStatus("working");
616
+ try {
617
+ const { copyNodeAsPng: copyNodeAsPng2 } = await Promise.resolve().then(() => (init_dom_to_image(), dom_to_image_exports));
618
+ await copyNodeAsPng2(node, nodeOptions);
619
+ setStatus("success");
620
+ scheduleReset();
621
+ } catch (err) {
622
+ const wrapped = err instanceof Error ? err : new Error(String(err));
623
+ setError(wrapped);
624
+ setStatus("error");
625
+ scheduleReset();
626
+ throw wrapped;
627
+ }
628
+ }, [targetRef, options]);
629
+ return { status, error, copy };
630
+ }
631
+
632
+ // src/components/artifacts/artifact-copy-as-image-button/artifact-copy-as-image-button.tsx
394
633
  var import_jsx_runtime5 = require("react/jsx-runtime");
395
- var DEFAULT_LABEL = "Download CSV";
396
- function ArtifactDownloadButton({
397
- href,
634
+ var MAX_ERROR_MESSAGE_CHARS2 = 120;
635
+ function truncateErrorMessage2(message, max = MAX_ERROR_MESSAGE_CHARS2) {
636
+ return message.length <= max ? message : `${message.slice(0, max - 1)}\u2026`;
637
+ }
638
+ var DEFAULT_LABEL = "Copy Image";
639
+ var ICON_BY_STATUS = {
640
+ // `IconCopy` reads as the clipboard-copy affordance (action-shaped), distinct from the
641
+ // download menu's format-shaped icons. The button only ever puts bytes on the clipboard, so
642
+ // the visual signal stays consistent across copy-aware artifact types.
643
+ idle: IconCopy,
644
+ working: IconLoader2,
645
+ success: IconCheck,
646
+ error: IconAlertCircle
647
+ };
648
+ var TRANSIENT_TOOLTIP_BY_STATUS = {
649
+ working: "Copying\u2026",
650
+ success: "Copied",
651
+ error: "Copy failed"
652
+ };
653
+ function ArtifactCopyAsImageButton({
654
+ targetRef,
398
655
  label = DEFAULT_LABEL,
656
+ disabled = false,
399
657
  onClick
400
658
  }) {
401
- if (!isSafeDownloadUrl(href)) return null;
659
+ const { status, error, copy } = useCopyAsImage(targetRef);
660
+ const handleClick = (0, import_react6.useCallback)(() => {
661
+ onClick?.();
662
+ copy().catch((err) => {
663
+ console.warn("[clay] ArtifactCopyAsImageButton: copy failed", err);
664
+ });
665
+ }, [copy, onClick]);
666
+ const statusLabel = status === "idle" ? label : status === "error" && error ? `Copy failed: ${truncateErrorMessage2(error.message)}` : TRANSIENT_TOOLTIP_BY_STATUS[status] ?? label;
402
667
  return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(Tooltip, { children: [
403
668
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
669
+ IconButton,
670
+ {
671
+ icon: ICON_BY_STATUS[status],
672
+ size: "small",
673
+ onClick: handleClick,
674
+ disabled: disabled || status === "working",
675
+ "aria-label": statusLabel
676
+ }
677
+ ) }),
678
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(TooltipContent, { children: statusLabel })
679
+ ] }) });
680
+ }
681
+
682
+ // src/components/artifacts/artifact-download-button/artifact-download-button.tsx
683
+ var import_jsx_runtime6 = require("react/jsx-runtime");
684
+ var DEFAULT_LABEL2 = "Download CSV";
685
+ function ArtifactDownloadButton({
686
+ href,
687
+ label = DEFAULT_LABEL2,
688
+ onClick
689
+ }) {
690
+ if (!isSafeDownloadUrl(href)) return null;
691
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(Tooltip, { children: [
692
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
404
693
  IconButton,
405
694
  {
406
695
  as: "a",
@@ -413,7 +702,7 @@ function ArtifactDownloadButton({
413
702
  "aria-label": label
414
703
  }
415
704
  ) }),
416
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(TooltipContent, { children: label })
705
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(TooltipContent, { children: label })
417
706
  ] }) });
418
707
  }
419
708
  function isSafeDownloadUrl(url) {
@@ -425,10 +714,120 @@ function isSafeDownloadUrl(url) {
425
714
  }
426
715
  }
427
716
 
717
+ // src/components/artifacts/artifact-download-menu/artifact-download-menu.tsx
718
+ var import_react7 = require("react");
719
+
720
+ // src/components/ui/dropdown-menu.tsx
721
+ var React2 = __toESM(require("react"), 1);
722
+ var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"), 1);
723
+ var import_jsx_runtime7 = require("react/jsx-runtime");
724
+ var DropdownMenu = DropdownMenuPrimitive.Root;
725
+ var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
726
+ var DropdownMenuContent = React2.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
727
+ DropdownMenuPrimitive.Content,
728
+ {
729
+ ref,
730
+ sideOffset,
731
+ className: cn(
732
+ // Stacking is consumer-configurable via the `--z-popover` CSS variable (default `99999`,
733
+ // declared in clay's generated `_theme-tokens.css` :root block). Consumers whose chat or
734
+ // modal layer sits even higher override on their own root once:
735
+ // :root { --z-popover: 9999999; }
736
+ // and every clay floating surface picks the new value up via cascade. The fallback in
737
+ // `var(...,99999)` only kicks in if the consumer also strips the clay stylesheet — which
738
+ // they shouldn't, but the safety net costs nothing.
739
+ "z-[var(--z-popover,99999)] min-w-[10rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
740
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
741
+ "data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
742
+ className
743
+ ),
744
+ ...props
745
+ }
746
+ ) }));
747
+ DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
748
+ var DropdownMenuItem = React2.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
749
+ DropdownMenuPrimitive.Item,
750
+ {
751
+ ref,
752
+ className: cn(
753
+ "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors",
754
+ "focus:bg-accent focus:text-accent-foreground",
755
+ "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
756
+ "[&_svg]:size-4 [&_svg]:shrink-0",
757
+ inset && "pl-8",
758
+ className
759
+ ),
760
+ ...props
761
+ }
762
+ ));
763
+ DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
764
+ var DropdownMenuSeparator = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DropdownMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
765
+ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
766
+ var DropdownMenuLabel = React2.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
767
+ DropdownMenuPrimitive.Label,
768
+ {
769
+ ref,
770
+ className: cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className),
771
+ ...props
772
+ }
773
+ ));
774
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
775
+
776
+ // src/components/artifacts/artifact-download-menu/artifact-download-menu.tsx
777
+ var import_jsx_runtime8 = require("react/jsx-runtime");
778
+ var DEFAULT_TRIGGER_LABEL = "Download";
779
+ var DEFAULT_CSV_LABEL = "Download CSV";
780
+ var DEFAULT_PNG_LABEL = "Download PNG";
781
+ var DEFAULT_PNG_BASENAME = "artifact";
782
+ function ArtifactDownloadMenu({
783
+ actions,
784
+ triggerLabel = DEFAULT_TRIGGER_LABEL
785
+ }) {
786
+ const { csv, png } = actions;
787
+ const showCsv = csv !== void 0 && isSafeDownloadUrl(csv.href);
788
+ const showPng = png !== void 0;
789
+ const handlePngSelect = (0, import_react7.useCallback)(async () => {
790
+ if (!png) return;
791
+ png.onSelect?.();
792
+ const node = png.targetRef.current;
793
+ if (!node) return;
794
+ const filename = `${png.filename ?? DEFAULT_PNG_BASENAME}.png`;
795
+ try {
796
+ const { downloadNodeAsPng: downloadNodeAsPng2 } = await Promise.resolve().then(() => (init_dom_to_image(), dom_to_image_exports));
797
+ await downloadNodeAsPng2(node, filename);
798
+ } catch (err) {
799
+ console.warn("[clay] ArtifactDownloadMenu: PNG download failed", err);
800
+ }
801
+ }, [png]);
802
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(DropdownMenu, { children: [
803
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(Tooltip, { children: [
804
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(IconButton, { icon: IconDownload, size: "small", "aria-label": triggerLabel }) }) }),
805
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(TooltipContent, { children: triggerLabel })
806
+ ] }) }),
807
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(DropdownMenuContent, { align: "end", children: [
808
+ showCsv ? (
809
+ // `asChild` lets Radix render the item as our anchor — the browser handles the
810
+ // download natively and respects `Content-Disposition`. The analytics callback rides
811
+ // on the anchor's own `onClick` (rather than Radix's `onSelect`) so the same handler
812
+ // fires whether the user mouse-clicks the item, hits Enter on it, or activates it via
813
+ // touch — `onSelect` is reliable only for keyboard activation when `asChild` is in use.
814
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("a", { href: csv.href, download: true, rel: "noopener noreferrer", onClick: csv.onSelect, children: [
815
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(IconFileSpreadsheet, {}),
816
+ csv.label ?? DEFAULT_CSV_LABEL
817
+ ] }) })
818
+ ) : null,
819
+ showPng ? /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(DropdownMenuItem, { onSelect: handlePngSelect, disabled: png.disabled ?? false, children: [
820
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(IconPhoto, {}),
821
+ png.label ?? DEFAULT_PNG_LABEL
822
+ ] }) : null
823
+ ] })
824
+ ] });
825
+ }
826
+
428
827
  // src/components/artifacts/status-message.tsx
429
- var import_react4 = require("react");
828
+ var import_react8 = require("react");
430
829
  function StatusMessage({ $tone, children }) {
431
- return (0, import_react4.createElement)(
830
+ return (0, import_react8.createElement)(
432
831
  "div",
433
832
  {
434
833
  className: `py-6 px-2 text-center text-sm font-medium leading-5 ${$tone === "error" ? "text-red-600" : "text-brown-70"}`
@@ -438,12 +837,12 @@ function StatusMessage({ $tone, children }) {
438
837
  }
439
838
 
440
839
  // src/components/chart/bar-chart/bar-chart.tsx
441
- var import_react5 = require("react");
840
+ var import_react9 = require("react");
442
841
  var import_recharts2 = require("recharts");
443
842
 
444
843
  // src/components/chart/chart-container.tsx
445
844
  var import_recharts = require("recharts");
446
- var import_jsx_runtime6 = require("react/jsx-runtime");
845
+ var import_jsx_runtime9 = require("react/jsx-runtime");
447
846
  function ChartContainer({
448
847
  children,
449
848
  height = 320,
@@ -451,23 +850,23 @@ function ChartContainer({
451
850
  className,
452
851
  style
453
852
  }) {
454
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: cn("text-xs text-foreground", className), style: { width, height, ...style }, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_recharts.ResponsiveContainer, { width: "100%", height: "100%", children }) });
853
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: cn("text-xs text-foreground", className), style: { width, height, ...style }, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_recharts.ResponsiveContainer, { width: "100%", height: "100%", children }) });
455
854
  }
456
855
 
457
856
  // src/components/chart/chart-legend-content.tsx
458
- var import_jsx_runtime7 = require("react/jsx-runtime");
857
+ var import_jsx_runtime10 = require("react/jsx-runtime");
459
858
  function ChartLegendContent({ payload, className, iconType = "square" }) {
460
859
  if (!payload || payload.length === 0) return null;
461
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
860
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
462
861
  "ul",
463
862
  {
464
863
  className: cn("flex flex-wrap items-center justify-center gap-x-4 gap-y-2 text-xs text-brown-80", className),
465
864
  children: payload.map((entry, i) => {
466
865
  const swatchColor = typeof entry.color === "string" ? entry.color : "transparent";
467
866
  const label = entry.value !== void 0 ? String(entry.value) : "";
468
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("li", { className: "flex items-center gap-1.5", children: [
469
- iconType === "square" ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "inline-block h-2.5 w-2.5 shrink-0 rounded-sm", style: { background: swatchColor } }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "inline-block h-[3px] w-4 shrink-0 rounded-full", style: { background: swatchColor } }),
470
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { children: label })
867
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("li", { className: "flex items-center gap-1.5", children: [
868
+ iconType === "square" ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "inline-block h-2.5 w-2.5 shrink-0 rounded-sm", style: { background: swatchColor } }) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "inline-block h-[3px] w-4 shrink-0 rounded-full", style: { background: swatchColor } }),
869
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { children: label })
471
870
  ] }, `${label}-${i}`);
472
871
  })
473
872
  }
@@ -475,7 +874,7 @@ function ChartLegendContent({ payload, className, iconType = "square" }) {
475
874
  }
476
875
 
477
876
  // src/components/chart/chart-tooltip-content.tsx
478
- var import_jsx_runtime8 = require("react/jsx-runtime");
877
+ var import_jsx_runtime11 = require("react/jsx-runtime");
479
878
  function ChartTooltipContent({
480
879
  active,
481
880
  payload,
@@ -485,7 +884,7 @@ function ChartTooltipContent({
485
884
  formatValue
486
885
  }) {
487
886
  if (!active || !payload || payload.length === 0) return null;
488
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
887
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
489
888
  "div",
490
889
  {
491
890
  className: cn(
@@ -494,16 +893,16 @@ function ChartTooltipContent({
494
893
  className
495
894
  ),
496
895
  children: [
497
- showLabel && label !== void 0 && label !== null ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "mb-1.5 font-medium text-brown-90", children: String(label) }) : null,
498
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("ul", { className: "space-y-1", children: payload.map((entry, i) => {
896
+ showLabel && label !== void 0 && label !== null ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "mb-1.5 font-medium text-brown-90", children: String(label) }) : null,
897
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("ul", { className: "space-y-1", children: payload.map((entry, i) => {
499
898
  const name = entry.name !== void 0 ? String(entry.name) : "";
500
899
  const rawValue = entry.value;
501
900
  const display = formatValue ? formatValue(rawValue, name) : rawValue === void 0 ? "" : String(rawValue);
502
901
  const swatch = typeof entry.color === "string" ? entry.color : "transparent";
503
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("li", { className: "flex items-center gap-2", children: [
504
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "inline-block h-2.5 w-2.5 shrink-0 rounded-sm", style: { background: swatch } }),
505
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "text-brown-70", children: name }),
506
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "ml-auto font-semibold tabular-nums text-brown-90", children: display })
902
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("li", { className: "flex items-center gap-2", children: [
903
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "inline-block h-2.5 w-2.5 shrink-0 rounded-sm", style: { background: swatch } }),
904
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "text-brown-70", children: name }),
905
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "ml-auto font-semibold tabular-nums text-brown-90", children: display })
507
906
  ] }, `${name}-${i}`);
508
907
  }) })
509
908
  ]
@@ -511,6 +910,9 @@ function ChartTooltipContent({
511
910
  );
512
911
  }
513
912
 
913
+ // src/tokens/index.ts
914
+ init_colors();
915
+
514
916
  // src/components/chart/chart-palette.ts
515
917
  var CHART_PALETTE = [
516
918
  colors["blue-600"],
@@ -627,7 +1029,7 @@ function coerceNumericColumns(rows, numericKeys) {
627
1029
  }
628
1030
 
629
1031
  // src/components/chart/bar-chart/bar-chart.tsx
630
- var import_jsx_runtime9 = require("react/jsx-runtime");
1032
+ var import_jsx_runtime12 = require("react/jsx-runtime");
631
1033
  function BarChart({
632
1034
  data,
633
1035
  xKey,
@@ -647,23 +1049,23 @@ function BarChart({
647
1049
  xAxisAngle,
648
1050
  xAxisTickFormatter
649
1051
  }) {
650
- const seriesKeys = (0, import_react5.useMemo)(() => series.map((s) => s.key), [series]);
651
- const coercedData = (0, import_react5.useMemo)(
1052
+ const seriesKeys = (0, import_react9.useMemo)(() => series.map((s) => s.key), [series]);
1053
+ const coercedData = (0, import_react9.useMemo)(
652
1054
  () => coerceNumericColumns(data, seriesKeys),
653
1055
  [data, seriesKeys]
654
1056
  );
655
1057
  const resolvedShowLegend = showLegend ?? series.length > 1;
656
1058
  const resolvedShowValueLabels = showValueLabels ?? (!stacked && series.length === 1);
657
1059
  const resolvedAngle = xAxisAngle ?? (coercedData.length >= 8 ? -30 : 0);
658
- const resolvedTickFormatter = (0, import_react5.useMemo)(
1060
+ const resolvedTickFormatter = (0, import_react9.useMemo)(
659
1061
  () => xAxisTickFormatter ?? defaultBarTickFormatter(coercedData.length),
660
1062
  [xAxisTickFormatter, coercedData.length]
661
1063
  );
662
1064
  const angledLabelPad = resolvedAngle === 0 ? 0 : Math.min(Math.abs(resolvedAngle) * 0.7, 40);
663
1065
  const chartMargin = { ...CHART_MARGIN, bottom: CHART_MARGIN.bottom + angledLabelPad };
664
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(ChartContainer, { height, width, className, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_recharts2.BarChart, { data: coercedData, margin: chartMargin, barCategoryGap: "22%", children: [
665
- showGrid ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_recharts2.CartesianGrid, { ...CHART_GRID_PROPS }) : null,
666
- showXAxis ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1066
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChartContainer, { height, width, className, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_recharts2.BarChart, { data: coercedData, margin: chartMargin, barCategoryGap: "22%", children: [
1067
+ showGrid ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_recharts2.CartesianGrid, { ...CHART_GRID_PROPS }) : null,
1068
+ showXAxis ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
667
1069
  import_recharts2.XAxis,
668
1070
  {
669
1071
  dataKey: xKey,
@@ -676,19 +1078,19 @@ function BarChart({
676
1078
  tickFormatter: resolvedTickFormatter
677
1079
  }
678
1080
  ) : null,
679
- showYAxis ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_recharts2.YAxis, { ...CHART_AXIS_PROPS, width: 40 }) : null,
680
- showTooltip ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_recharts2.Tooltip, { cursor: { fill: BAR_TOOLTIP_CURSOR_FILL }, content: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(ChartTooltipContent, {}) }) : null,
681
- resolvedShowLegend ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1081
+ showYAxis ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_recharts2.YAxis, { ...CHART_AXIS_PROPS, width: 40 }) : null,
1082
+ showTooltip ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_recharts2.Tooltip, { cursor: { fill: BAR_TOOLTIP_CURSOR_FILL }, content: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChartTooltipContent, {}) }) : null,
1083
+ resolvedShowLegend ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
682
1084
  import_recharts2.Legend,
683
1085
  {
684
1086
  verticalAlign: "top",
685
1087
  align: "center",
686
1088
  wrapperStyle: { top: 0 },
687
1089
  itemSorter: null,
688
- content: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(ChartLegendContent, { iconType: "square" })
1090
+ content: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChartLegendContent, { iconType: "square" })
689
1091
  }
690
1092
  ) : null,
691
- series.map((s, i) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1093
+ series.map((s, i) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
692
1094
  import_recharts2.Bar,
693
1095
  {
694
1096
  dataKey: s.key,
@@ -696,7 +1098,7 @@ function BarChart({
696
1098
  fill: colorForSeriesIndex(i, palette),
697
1099
  stackId: stacked ? "default" : s.key,
698
1100
  radius: barRadius(stacked, i, series.length),
699
- children: resolvedShowValueLabels ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_recharts2.LabelList, { dataKey: s.key, position: "top", style: CHART_VALUE_LABEL_STYLE }) : null
1101
+ children: resolvedShowValueLabels ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_recharts2.LabelList, { dataKey: s.key, position: "top", style: CHART_VALUE_LABEL_STYLE }) : null
700
1102
  },
701
1103
  s.key
702
1104
  ))
@@ -712,9 +1114,9 @@ function barRadius(stacked, seriesIndex, seriesCount) {
712
1114
  var VARIANT_CHART_HEIGHT = "100%";
713
1115
 
714
1116
  // src/components/artifacts/chart-artifact/chart-variant-services/bar-chart-variant-component.tsx
715
- var import_jsx_runtime10 = require("react/jsx-runtime");
1117
+ var import_jsx_runtime13 = require("react/jsx-runtime");
716
1118
  function BarChartVariantComponent({ config, rows }) {
717
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1119
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
718
1120
  BarChart,
719
1121
  {
720
1122
  data: rows,
@@ -761,9 +1163,9 @@ var BarChartVariantService = {
761
1163
  };
762
1164
 
763
1165
  // src/components/chart/line-chart/line-chart.tsx
764
- var import_react6 = require("react");
1166
+ var import_react10 = require("react");
765
1167
  var import_recharts3 = require("recharts");
766
- var import_jsx_runtime11 = require("react/jsx-runtime");
1168
+ var import_jsx_runtime14 = require("react/jsx-runtime");
767
1169
  var TARGET_VISIBLE_LABELS = 5;
768
1170
  function LineChart({
769
1171
  data,
@@ -786,23 +1188,23 @@ function LineChart({
786
1188
  xAxisAngle = 0,
787
1189
  xAxisTickFormatter
788
1190
  }) {
789
- const seriesKeys = (0, import_react6.useMemo)(() => series.map((s) => s.key), [series]);
790
- const coercedData = (0, import_react6.useMemo)(
1191
+ const seriesKeys = (0, import_react10.useMemo)(() => series.map((s) => s.key), [series]);
1192
+ const coercedData = (0, import_react10.useMemo)(
791
1193
  () => coerceNumericColumns(data, seriesKeys),
792
1194
  [data, seriesKeys]
793
1195
  );
794
1196
  const lineType = smooth ? "monotone" : "linear";
795
1197
  const resolvedShowLegend = showLegend ?? series.length > 1;
796
- const resolvedTickFormatter = (0, import_react6.useMemo)(() => {
1198
+ const resolvedTickFormatter = (0, import_react10.useMemo)(() => {
797
1199
  if (xAxisTickFormatter) return xAxisTickFormatter;
798
1200
  const visible = evenlyDistributedVisibleIndices(coercedData.length, TARGET_VISIBLE_LABELS);
799
1201
  return defaultLineChartTickFormatter(coercedData.length, visible);
800
1202
  }, [xAxisTickFormatter, coercedData.length]);
801
1203
  const angledLabelPad = xAxisAngle === 0 ? 0 : Math.min(Math.abs(xAxisAngle) * 0.7, 40);
802
1204
  const chartMargin = { ...CHART_MARGIN, right: CHART_MARGIN.right + 16, bottom: CHART_MARGIN.bottom + angledLabelPad };
803
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ChartContainer, { height, width, className, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_recharts3.LineChart, { data: coercedData, margin: chartMargin, children: [
804
- showGrid ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_recharts3.CartesianGrid, { ...CHART_GRID_PROPS }) : null,
805
- showXAxis ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1205
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ChartContainer, { height, width, className, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_recharts3.LineChart, { data: coercedData, margin: chartMargin, children: [
1206
+ showGrid ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_recharts3.CartesianGrid, { ...CHART_GRID_PROPS }) : null,
1207
+ showXAxis ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
806
1208
  import_recharts3.XAxis,
807
1209
  {
808
1210
  dataKey: xKey,
@@ -815,21 +1217,21 @@ function LineChart({
815
1217
  tickFormatter: resolvedTickFormatter
816
1218
  }
817
1219
  ) : null,
818
- showYAxis ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_recharts3.YAxis, { ...CHART_AXIS_PROPS, width: 40 }) : null,
819
- showTooltip ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_recharts3.Tooltip, { content: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ChartTooltipContent, {}) }) : null,
820
- resolvedShowLegend ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1220
+ showYAxis ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_recharts3.YAxis, { ...CHART_AXIS_PROPS, width: 40 }) : null,
1221
+ showTooltip ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_recharts3.Tooltip, { content: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ChartTooltipContent, {}) }) : null,
1222
+ resolvedShowLegend ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
821
1223
  import_recharts3.Legend,
822
1224
  {
823
1225
  verticalAlign: "top",
824
1226
  align: "center",
825
1227
  wrapperStyle: { top: 0 },
826
1228
  itemSorter: null,
827
- content: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ChartLegendContent, { iconType: "line" })
1229
+ content: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ChartLegendContent, { iconType: "line" })
828
1230
  }
829
1231
  ) : null,
830
1232
  series.map((s, i) => {
831
1233
  const color = colorForSeriesIndex(i, palette);
832
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1234
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
833
1235
  import_recharts3.Line,
834
1236
  {
835
1237
  type: lineType,
@@ -839,7 +1241,7 @@ function LineChart({
839
1241
  strokeWidth,
840
1242
  dot: showDots ? { r: 3, fill: color, stroke: color, strokeWidth: 0 } : false,
841
1243
  activeDot: { r: 5, fill: color, stroke: LINE_ACTIVE_DOT_STROKE, strokeWidth: 2 },
842
- children: showValueLabels ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_recharts3.LabelList, { dataKey: s.key, position: "top", style: CHART_VALUE_LABEL_STYLE }) : null
1244
+ children: showValueLabels ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_recharts3.LabelList, { dataKey: s.key, position: "top", style: CHART_VALUE_LABEL_STYLE }) : null
843
1245
  },
844
1246
  s.key
845
1247
  );
@@ -848,9 +1250,9 @@ function LineChart({
848
1250
  }
849
1251
 
850
1252
  // src/components/artifacts/chart-artifact/chart-variant-services/line-chart-variant-component.tsx
851
- var import_jsx_runtime12 = require("react/jsx-runtime");
1253
+ var import_jsx_runtime15 = require("react/jsx-runtime");
852
1254
  function LineChartVariantComponent({ config, rows }) {
853
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(LineChart, { data: rows, xKey: config.xKey, series: config.series, height: VARIANT_CHART_HEIGHT });
1255
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(LineChart, { data: rows, xKey: config.xKey, series: config.series, height: VARIANT_CHART_HEIGHT });
854
1256
  }
855
1257
 
856
1258
  // src/components/artifacts/chart-artifact/chart-variant-services/line-chart-variant-service.tsx
@@ -871,9 +1273,9 @@ var LineChartVariantService = {
871
1273
  };
872
1274
 
873
1275
  // src/components/chart/pie-chart/pie-chart.tsx
874
- var import_react7 = require("react");
1276
+ var import_react11 = require("react");
875
1277
  var import_recharts4 = require("recharts");
876
- var import_jsx_runtime13 = require("react/jsx-runtime");
1278
+ var import_jsx_runtime16 = require("react/jsx-runtime");
877
1279
  function PieChart({
878
1280
  data,
879
1281
  categoryKey,
@@ -889,7 +1291,7 @@ function PieChart({
889
1291
  outerRadius = "68%",
890
1292
  othersCategoryLabels = DEFAULT_OTHERS_CATEGORY_LABELS
891
1293
  }) {
892
- const { orderedData, sliceColors } = (0, import_react7.useMemo)(() => {
1294
+ const { orderedData, sliceColors } = (0, import_react11.useMemo)(() => {
893
1295
  const coerced = coerceNumericColumns(data, [valueKey]);
894
1296
  const namedRows = [];
895
1297
  const namedColors = [];
@@ -909,19 +1311,19 @@ function PieChart({
909
1311
  sliceColors: [...namedColors, ...othersColors]
910
1312
  };
911
1313
  }, [data, valueKey, categoryKey, othersCategoryLabels, palette]);
912
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ChartContainer, { height, width, className, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_recharts4.PieChart, { margin: PIE_CHART_MARGIN, children: [
913
- showTooltip ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_recharts4.Tooltip, { content: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ChartTooltipContent, {}) }) : null,
914
- showLegend ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1314
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ChartContainer, { height, width, className, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_recharts4.PieChart, { margin: PIE_CHART_MARGIN, children: [
1315
+ showTooltip ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_recharts4.Tooltip, { content: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ChartTooltipContent, {}) }) : null,
1316
+ showLegend ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
915
1317
  import_recharts4.Legend,
916
1318
  {
917
1319
  verticalAlign: "top",
918
1320
  align: "center",
919
1321
  wrapperStyle: { top: 0 },
920
1322
  itemSorter: null,
921
- content: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ChartLegendContent, { iconType: "square" })
1323
+ content: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ChartLegendContent, { iconType: "square" })
922
1324
  }
923
1325
  ) : null,
924
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1326
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
925
1327
  import_recharts4.Pie,
926
1328
  {
927
1329
  data: orderedData,
@@ -936,7 +1338,7 @@ function PieChart({
936
1338
  label: showLabels ? (entry) => {
937
1339
  const v = entry.value;
938
1340
  if (v === void 0 || v === null) return null;
939
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1341
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
940
1342
  "text",
941
1343
  {
942
1344
  x: entry.x,
@@ -953,20 +1355,20 @@ function PieChart({
953
1355
  labelLine: false,
954
1356
  stroke: "none",
955
1357
  strokeWidth: 0,
956
- children: orderedData.map((_row, i) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_recharts4.Cell, { fill: sliceColors[i] }, i))
1358
+ children: orderedData.map((_row, i) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_recharts4.Cell, { fill: sliceColors[i] }, i))
957
1359
  }
958
1360
  )
959
1361
  ] }) });
960
1362
  }
961
1363
 
962
1364
  // src/components/artifacts/chart-artifact/chart-variant-services/pie-chart-variant-component.tsx
963
- var import_jsx_runtime14 = require("react/jsx-runtime");
1365
+ var import_jsx_runtime17 = require("react/jsx-runtime");
964
1366
  function PieChartVariantComponent({
965
1367
  config,
966
1368
  rows,
967
1369
  labels
968
1370
  }) {
969
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1371
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
970
1372
  PieChart,
971
1373
  {
972
1374
  data: rows,
@@ -1003,14 +1405,14 @@ var ChartVariantServices = {
1003
1405
  };
1004
1406
 
1005
1407
  // src/components/artifacts/chart-artifact/chart-artifact-content.tsx
1006
- var import_jsx_runtime15 = require("react/jsx-runtime");
1408
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1007
1409
  function ChartArtifactContent({ config, rows, labels }) {
1008
1410
  const service = ChartVariantServices[config.variant];
1009
1411
  if (!service) {
1010
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(StatusMessage, { $tone: "info", children: labels.unavailable });
1412
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(StatusMessage, { $tone: "info", children: labels.unavailable });
1011
1413
  }
1012
1414
  const Component = service.Component;
1013
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Component, { config, rows, labels });
1415
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Component, { config, rows, labels });
1014
1416
  }
1015
1417
 
1016
1418
  // src/components/artifacts/parse-csv.ts
@@ -1035,7 +1437,7 @@ function parseCsv(text, columns) {
1035
1437
  }
1036
1438
 
1037
1439
  // src/components/artifacts/use-rows-artifact-data.ts
1038
- var import_react8 = require("react");
1440
+ var import_react12 = require("react");
1039
1441
  var LOADING = { status: "loading", rows: null, error: null };
1040
1442
  var UNAVAILABLE = { status: "unavailable", rows: null, error: null };
1041
1443
  var INITIAL_INTERNAL = { cacheKey: null, data: LOADING };
@@ -1047,11 +1449,11 @@ function scrubUrl(url) {
1047
1449
  return q === -1 ? url : `${url.slice(0, q)}?<redacted>`;
1048
1450
  }
1049
1451
  function useRowsArtifactData(presignedUrl, columns, parse) {
1050
- const colsKey = (0, import_react8.useMemo)(() => columnsFingerprint(columns), [columns]);
1452
+ const colsKey = (0, import_react12.useMemo)(() => columnsFingerprint(columns), [columns]);
1051
1453
  const safeUrl = presignedUrl && isSafeDownloadUrl(presignedUrl) ? presignedUrl : null;
1052
1454
  const cacheKey = safeUrl ? `${safeUrl}::${colsKey}` : null;
1053
- const [state, setState] = (0, import_react8.useState)(INITIAL_INTERNAL);
1054
- (0, import_react8.useEffect)(() => {
1455
+ const [state, setState] = (0, import_react12.useState)(INITIAL_INTERNAL);
1456
+ (0, import_react12.useEffect)(() => {
1055
1457
  if (!safeUrl) return;
1056
1458
  const controller = new AbortController();
1057
1459
  fetch(safeUrl, {
@@ -1108,32 +1510,71 @@ function isValidChartConfig(config) {
1108
1510
  }
1109
1511
 
1110
1512
  // src/components/artifacts/chart-artifact/chart-artifact.tsx
1111
- var import_jsx_runtime16 = require("react/jsx-runtime");
1513
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1112
1514
  var TITLE_CLASSES = "text-sm font-semibold text-foreground";
1113
1515
  var CHART_HEIGHT = 320;
1114
1516
  function ChartArtifact({ artifact, labels, callbacks }) {
1115
1517
  const validConfig = isValidChartConfig(artifact.config);
1116
- (0, import_react9.useEffect)(() => {
1518
+ const cardRef = (0, import_react13.useRef)(null);
1519
+ (0, import_react13.useEffect)(() => {
1117
1520
  if (validConfig) return;
1118
1521
  console.warn("[clay] ChartArtifact: malformed `config` \u2014 skipping render.");
1119
1522
  }, [validConfig]);
1120
1523
  const presignedUrl = artifact.protectedAsset?.presignedUrl ?? null;
1121
- const resolvedLabels = (0, import_react9.useMemo)(
1122
- () => ({ ...DEFAULT_CHART_ARTIFACT_LABELS, ...labels?.[artifactTypes.CHART] ?? {} }),
1524
+ const resolvedLabels = (0, import_react13.useMemo)(
1525
+ () => ({ ...DEFAULT_CHART_ARTIFACT_LABELS, ...labels ?? {} }),
1123
1526
  [labels]
1124
1527
  );
1125
1528
  const data = useChartArtifactData(
1126
1529
  validConfig ? presignedUrl : null,
1127
1530
  validConfig ? artifact.config : { variant: "LINE", series: [], xKey: "x" }
1128
1531
  );
1129
- const onDownload = callbacks?.[artifactTypes.CHART]?.onDownload;
1130
- const handleDownloadClick = onDownload ? () => onDownload(artifact) : void 0;
1131
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Artifact, { className: "shadow-none w-full rounded-2xl bg-background/70", children: [
1132
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(ArtifactHeader, { className: "bg-background/70", children: [
1133
- artifact.title ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ArtifactTitle, { className: TITLE_CLASSES, children: artifact.title }) : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", {}),
1134
- presignedUrl ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ArtifactActions, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ArtifactDownloadButton, { href: presignedUrl, label: resolvedLabels.download, onClick: handleDownloadClick }) }) : null
1532
+ const { onDownload, onDownloadPng, onCopyAsImage } = callbacks ?? {};
1533
+ const handleDownloadCsvSelect = onDownload ? () => onDownload(artifact) : void 0;
1534
+ const handleDownloadPngSelect = onDownloadPng ? () => onDownloadPng(artifact) : void 0;
1535
+ const handleCopyAsImageClick = onCopyAsImage ? () => onCopyAsImage(artifact) : void 0;
1536
+ const canCopyAsImage = data.status === "ready" && data.rows.length > 0;
1537
+ const canDownloadPng = data.status === "ready" && data.rows.length > 0;
1538
+ const isCsvDownloadAvailable = presignedUrl !== null && isSafeDownloadUrl(presignedUrl);
1539
+ const showDownloadMenu = validConfig && canDownloadPng || isCsvDownloadAvailable;
1540
+ const showActions = validConfig || showDownloadMenu;
1541
+ const pngFilename = (artifact.title ?? "").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean).join("-") || "chart";
1542
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Artifact, { ref: cardRef, className: "shadow-none w-full rounded-2xl bg-background/70", children: [
1543
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(ArtifactHeader, { className: "bg-background/70", children: [
1544
+ artifact.title ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ArtifactTitle, { className: TITLE_CLASSES, children: artifact.title }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", {}),
1545
+ showActions ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(ArtifactActions, { ...{ [CAPTURE_EXCLUDE_ATTRIBUTE]: "" }, children: [
1546
+ validConfig ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1547
+ ArtifactCopyAsImageButton,
1548
+ {
1549
+ targetRef: cardRef,
1550
+ label: resolvedLabels.copyAsImage,
1551
+ disabled: !canCopyAsImage,
1552
+ onClick: handleCopyAsImageClick
1553
+ }
1554
+ ) : null,
1555
+ showDownloadMenu ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1556
+ ArtifactDownloadMenu,
1557
+ {
1558
+ triggerLabel: resolvedLabels.download,
1559
+ actions: {
1560
+ csv: isCsvDownloadAvailable ? {
1561
+ href: presignedUrl ?? "",
1562
+ label: resolvedLabels.downloadCsv,
1563
+ onSelect: handleDownloadCsvSelect
1564
+ } : void 0,
1565
+ png: validConfig ? {
1566
+ targetRef: cardRef,
1567
+ filename: pngFilename,
1568
+ label: resolvedLabels.downloadPng,
1569
+ disabled: !canDownloadPng,
1570
+ onSelect: handleDownloadPngSelect
1571
+ } : void 0
1572
+ }
1573
+ }
1574
+ ) : null
1575
+ ] }) : null
1135
1576
  ] }),
1136
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1577
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1137
1578
  ArtifactContent,
1138
1579
  {
1139
1580
  className: "p-4 overflow-visible flex flex-none items-center justify-center",
@@ -1145,21 +1586,21 @@ function ChartArtifact({ artifact, labels, callbacks }) {
1145
1586
  }
1146
1587
  function renderBody(validConfig, artifact, data, labels) {
1147
1588
  if (!validConfig) {
1148
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(StatusMessage, { $tone: "info", children: labels.unavailable });
1589
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StatusMessage, { $tone: "info", children: labels.unavailable });
1149
1590
  }
1150
1591
  if (data.status === "error") {
1151
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(StatusMessage, { $tone: "error", children: labels.loadError });
1592
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StatusMessage, { $tone: "error", children: labels.loadError });
1152
1593
  }
1153
1594
  if (data.status === "unavailable") {
1154
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(StatusMessage, { $tone: "info", children: labels.unavailable });
1595
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StatusMessage, { $tone: "info", children: labels.unavailable });
1155
1596
  }
1156
1597
  if (data.status === "loading") {
1157
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(StatusMessage, { $tone: "info", children: labels.loading });
1598
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StatusMessage, { $tone: "info", children: labels.loading });
1158
1599
  }
1159
1600
  if (data.rows.length === 0) {
1160
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(StatusMessage, { $tone: "info", children: labels.empty });
1601
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StatusMessage, { $tone: "info", children: labels.empty });
1161
1602
  }
1162
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ChartArtifactContent, { config: artifact.config, rows: data.rows, labels });
1603
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ChartArtifactContent, { config: artifact.config, rows: data.rows, labels });
1163
1604
  }
1164
1605
 
1165
1606
  // src/components/artifacts/chart-artifact/to-clipboard-text.ts
@@ -1176,27 +1617,27 @@ var ChartArtifactService = {
1176
1617
  };
1177
1618
 
1178
1619
  // src/components/artifacts/table-artifact/table-artifact.tsx
1179
- var import_react11 = require("react");
1620
+ var import_react15 = require("react");
1180
1621
 
1181
1622
  // src/components/ui/table.tsx
1182
- var React2 = __toESM(require("react"), 1);
1183
- var import_jsx_runtime17 = require("react/jsx-runtime");
1184
- var Table = React2.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: cn("relative w-full overflow-auto", containerClassName), children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("table", { ref, className: cn("w-full caption-bottom text-sm", className), ...props }) }));
1623
+ var React3 = __toESM(require("react"), 1);
1624
+ var import_jsx_runtime20 = require("react/jsx-runtime");
1625
+ var Table = React3.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: cn("relative w-full overflow-auto", containerClassName), children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("table", { ref, className: cn("w-full caption-bottom text-sm", className), ...props }) }));
1185
1626
  Table.displayName = "Table";
1186
- var TableHeader = React2.forwardRef(
1187
- ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("thead", { ref, className: cn("[&_tr]:border-b", className), ...props })
1627
+ var TableHeader = React3.forwardRef(
1628
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("thead", { ref, className: cn("[&_tr]:border-b", className), ...props })
1188
1629
  );
1189
1630
  TableHeader.displayName = "TableHeader";
1190
- var TableBody = React2.forwardRef(
1191
- ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props })
1631
+ var TableBody = React3.forwardRef(
1632
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props })
1192
1633
  );
1193
1634
  TableBody.displayName = "TableBody";
1194
- var TableFooter = React2.forwardRef(
1195
- ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("tfoot", { ref, className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className), ...props })
1635
+ var TableFooter = React3.forwardRef(
1636
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("tfoot", { ref, className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className), ...props })
1196
1637
  );
1197
1638
  TableFooter.displayName = "TableFooter";
1198
- var TableRow = React2.forwardRef(
1199
- ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1639
+ var TableRow = React3.forwardRef(
1640
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1200
1641
  "tr",
1201
1642
  {
1202
1643
  ref,
@@ -1206,8 +1647,8 @@ var TableRow = React2.forwardRef(
1206
1647
  )
1207
1648
  );
1208
1649
  TableRow.displayName = "TableRow";
1209
- var TableHead = React2.forwardRef(
1210
- ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1650
+ var TableHead = React3.forwardRef(
1651
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1211
1652
  "th",
1212
1653
  {
1213
1654
  ref,
@@ -1220,21 +1661,21 @@ var TableHead = React2.forwardRef(
1220
1661
  )
1221
1662
  );
1222
1663
  TableHead.displayName = "TableHead";
1223
- var TableCell = React2.forwardRef(
1224
- ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("td", { ref, className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className), ...props })
1664
+ var TableCell = React3.forwardRef(
1665
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("td", { ref, className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className), ...props })
1225
1666
  );
1226
1667
  TableCell.displayName = "TableCell";
1227
- var TableCaption = React2.forwardRef(
1228
- ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("caption", { ref, className: cn("mt-4 text-sm text-muted-foreground", className), ...props })
1668
+ var TableCaption = React3.forwardRef(
1669
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("caption", { ref, className: cn("mt-4 text-sm text-muted-foreground", className), ...props })
1229
1670
  );
1230
1671
  TableCaption.displayName = "TableCaption";
1231
1672
 
1232
1673
  // src/components/table/use-scroll-shadow.ts
1233
- var import_react10 = require("react");
1674
+ var import_react14 = require("react");
1234
1675
  function useScrollShadow() {
1235
- const targetRef = (0, import_react10.useRef)(null);
1236
- const [isScrolled, setIsScrolled] = (0, import_react10.useState)(false);
1237
- (0, import_react10.useEffect)(() => {
1676
+ const targetRef = (0, import_react14.useRef)(null);
1677
+ const [isScrolled, setIsScrolled] = (0, import_react14.useState)(false);
1678
+ (0, import_react14.useEffect)(() => {
1238
1679
  const target = targetRef.current;
1239
1680
  if (!target) return;
1240
1681
  let scrollContainer = target;
@@ -1274,7 +1715,7 @@ var DATA_ROW_CLASSES = `${ROW_CLASSES} animate-in fade-in duration-300`;
1274
1715
  var SCROLL_SHADOW = "0 1px 2px rgb(0 0 0 / 0.01), 0 6px 12px -2px rgb(0 0 0 / 0.03)";
1275
1716
 
1276
1717
  // src/components/artifacts/table-artifact/table-artifact-content.tsx
1277
- var import_jsx_runtime18 = require("react/jsx-runtime");
1718
+ var import_jsx_runtime21 = require("react/jsx-runtime");
1278
1719
  function TableArtifactContent({
1279
1720
  columns,
1280
1721
  data,
@@ -1284,43 +1725,43 @@ function TableArtifactContent({
1284
1725
  labels
1285
1726
  }) {
1286
1727
  if (data.status === TABLE_STATUS.ERROR) {
1287
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(StatusMessage, { $tone: "error", children: labels.loadError });
1728
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(StatusMessage, { $tone: "error", children: labels.loadError });
1288
1729
  }
1289
1730
  if (data.status === TABLE_STATUS.UNAVAILABLE) {
1290
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(StatusMessage, { $tone: "info", children: labels.unavailable });
1731
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(StatusMessage, { $tone: "info", children: labels.unavailable });
1291
1732
  }
1292
1733
  if (data.status === TABLE_STATUS.LOADING) {
1293
1734
  if (typeof knownRowCount === "number" && knownRowCount > 0) {
1294
1735
  const shimmerCount = Math.min(knownRowCount, maxShimmerRows);
1295
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ArtifactTable, { columns, maxBodyHeight, children: renderShimmerRows(columns, shimmerCount) });
1736
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ArtifactTable, { columns, maxBodyHeight, children: renderShimmerRows(columns, shimmerCount) });
1296
1737
  }
1297
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(StatusMessage, { $tone: "info", children: labels.loading });
1738
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(StatusMessage, { $tone: "info", children: labels.loading });
1298
1739
  }
1299
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ArtifactTable, { columns, maxBodyHeight, children: data.rows.length === 0 ? renderEmptyRow(columns.length, labels.empty) : renderDataRows(columns, data.rows) });
1740
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ArtifactTable, { columns, maxBodyHeight, children: data.rows.length === 0 ? renderEmptyRow(columns.length, labels.empty) : renderDataRows(columns, data.rows) });
1300
1741
  }
1301
1742
  function ArtifactTable({ columns, maxBodyHeight, children }) {
1302
1743
  const { targetRef, isScrolled } = useScrollShadow();
1303
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { ref: targetRef, className: "overscroll-none", style: { maxHeight: maxBodyHeight, overflowY: "auto" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Table, { containerClassName: "overflow-visible", children: [
1304
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1744
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { ref: targetRef, className: "overscroll-none", style: { maxHeight: maxBodyHeight, overflowY: "auto" }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Table, { containerClassName: "overflow-visible", children: [
1745
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1305
1746
  TableHeader,
1306
1747
  {
1307
1748
  "data-scrolled": isScrolled ? "true" : void 0,
1308
1749
  className: "sticky top-0 z-10 bg-background/70 backdrop-blur-lg transition-shadow",
1309
1750
  style: isScrolled ? { boxShadow: SCROLL_SHADOW } : void 0,
1310
- children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TableRow, { className: "hover:bg-transparent", children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TableHead, { scope: "col", className: HEAD_CLASS, children: column.label }, column.key)) })
1751
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TableRow, { className: "hover:bg-transparent", children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TableHead, { scope: "col", className: HEAD_CLASS, children: column.label }, column.key)) })
1311
1752
  }
1312
1753
  ),
1313
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TableBody, { children })
1754
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TableBody, { children })
1314
1755
  ] }) });
1315
1756
  }
1316
1757
  function renderShimmerRows(columns, count) {
1317
- return Array.from({ length: count }).map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TableRow, { className: ROW_CLASSES, "aria-hidden": "true", children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TableCell, { className: CELL_CLASS, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "block h-3 w-3/4 animate-pulse rounded bg-muted-foreground/20" }) }, column.key)) }, `shimmer-${index}`));
1758
+ return Array.from({ length: count }).map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TableRow, { className: ROW_CLASSES, "aria-hidden": "true", children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TableCell, { className: CELL_CLASS, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "block h-3 w-3/4 animate-pulse rounded bg-muted-foreground/20" }) }, column.key)) }, `shimmer-${index}`));
1318
1759
  }
1319
1760
  function renderDataRows(columns, rows) {
1320
- return rows.map((row, index) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TableRow, { className: DATA_ROW_CLASSES, children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TableCell, { className: CELL_CLASS, children: formatCell(row, column) }, column.key)) }, index));
1761
+ return rows.map((row, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TableRow, { className: DATA_ROW_CLASSES, children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TableCell, { className: CELL_CLASS, children: formatCell(row, column) }, column.key)) }, index));
1321
1762
  }
1322
1763
  function renderEmptyRow(colSpan, emptyMessage) {
1323
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TableCell, { colSpan, className: "py-6 text-center text-sm text-muted-foreground", children: emptyMessage }) });
1764
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TableCell, { colSpan, className: "py-6 text-center text-sm text-muted-foreground", children: emptyMessage }) });
1324
1765
  }
1325
1766
 
1326
1767
  // src/components/artifacts/table-artifact/use-table-artifact-data.ts
@@ -1345,19 +1786,19 @@ function isValidTableColumn(column) {
1345
1786
  }
1346
1787
 
1347
1788
  // src/components/artifacts/table-artifact/table-artifact.tsx
1348
- var import_jsx_runtime19 = require("react/jsx-runtime");
1789
+ var import_jsx_runtime22 = require("react/jsx-runtime");
1349
1790
  var TITLE_CLASSES2 = "text-sm font-semibold text-foreground";
1350
1791
  var TABLE_MAX_BODY_HEIGHT = 480;
1351
1792
  var MAX_SHIMMER_ROWS = 10;
1352
1793
  function TableArtifact({ artifact, labels, callbacks }) {
1353
1794
  const validConfig = isValidTableConfig(artifact.config);
1354
1795
  const validColumns = validConfig ? artifact.config.columns : null;
1355
- (0, import_react11.useEffect)(() => {
1796
+ (0, import_react15.useEffect)(() => {
1356
1797
  if (validConfig) return;
1357
1798
  console.warn("[clay] TableArtifact: malformed `config` \u2014 skipping render.");
1358
1799
  }, [validConfig]);
1359
- const resolvedLabels = (0, import_react11.useMemo)(
1360
- () => ({ ...DEFAULT_TABLE_ARTIFACT_LABELS, ...labels?.[artifactTypes.TABLE] ?? {} }),
1800
+ const resolvedLabels = (0, import_react15.useMemo)(
1801
+ () => ({ ...DEFAULT_TABLE_ARTIFACT_LABELS, ...labels ?? {} }),
1361
1802
  [labels]
1362
1803
  );
1363
1804
  const data = useTableArtifactData(
@@ -1365,13 +1806,13 @@ function TableArtifact({ artifact, labels, callbacks }) {
1365
1806
  validColumns ?? []
1366
1807
  );
1367
1808
  const presignedUrl = artifact.protectedAsset?.presignedUrl ?? null;
1368
- const onDownload = callbacks?.[artifactTypes.TABLE]?.onDownload;
1809
+ const onDownload = callbacks?.onDownload;
1369
1810
  const handleDownloadClick = onDownload ? () => onDownload(artifact) : void 0;
1370
1811
  if (!validConfig || !validColumns) {
1371
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Artifact, { className: "shadow-none w-full rounded-2xl bg-background/70", children: [
1372
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(ArtifactHeader, { className: "bg-background/70", children: [
1373
- artifact.title ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ArtifactTitle, { className: TITLE_CLASSES2, children: artifact.title }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", {}),
1374
- presignedUrl ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ArtifactActions, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1812
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Artifact, { className: "shadow-none w-full rounded-2xl bg-background/70", children: [
1813
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(ArtifactHeader, { className: "bg-background/70", children: [
1814
+ artifact.title ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ArtifactTitle, { className: TITLE_CLASSES2, children: artifact.title }) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", {}),
1815
+ presignedUrl ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ArtifactActions, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1375
1816
  ArtifactDownloadButton,
1376
1817
  {
1377
1818
  href: presignedUrl,
@@ -1380,17 +1821,17 @@ function TableArtifact({ artifact, labels, callbacks }) {
1380
1821
  }
1381
1822
  ) }) : null
1382
1823
  ] }),
1383
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ArtifactContent, { className: "p-0 overflow-auto", style: { maxHeight: TABLE_MAX_BODY_HEIGHT }, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StatusMessage, { $tone: "info", children: resolvedLabels.unavailable }) })
1824
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ArtifactContent, { className: "p-0 overflow-auto", style: { maxHeight: TABLE_MAX_BODY_HEIGHT }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(StatusMessage, { $tone: "info", children: resolvedLabels.unavailable }) })
1384
1825
  ] });
1385
1826
  }
1386
1827
  return (
1387
1828
  // The table body owns its own scroll container (`ArtifactTable` inside `TableArtifactContent`).
1388
1829
  // Disable the outer overflow container so only one scroll context exists — this prevents
1389
1830
  // double-scroll nesting and lets `useScrollShadow` find the correct scroll ancestor.
1390
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Artifact, { className: "shadow-none w-full rounded-2xl bg-background/70", children: [
1391
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(ArtifactHeader, { className: "bg-background/70", children: [
1392
- artifact.title ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ArtifactTitle, { className: TITLE_CLASSES2, children: artifact.title }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", {}),
1393
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ArtifactActions, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1831
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Artifact, { className: "shadow-none w-full rounded-2xl bg-background/70", children: [
1832
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(ArtifactHeader, { className: "bg-background/70", children: [
1833
+ artifact.title ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ArtifactTitle, { className: TITLE_CLASSES2, children: artifact.title }) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", {}),
1834
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ArtifactActions, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1394
1835
  ArtifactDownloadButton,
1395
1836
  {
1396
1837
  href: presignedUrl ?? "",
@@ -1399,7 +1840,7 @@ function TableArtifact({ artifact, labels, callbacks }) {
1399
1840
  }
1400
1841
  ) })
1401
1842
  ] }),
1402
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ArtifactContent, { className: "p-0 overflow-visible", style: { maxHeight: "none" }, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1843
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ArtifactContent, { className: "p-0 overflow-visible", style: { maxHeight: "none" }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1403
1844
  TableArtifactContent,
1404
1845
  {
1405
1846
  columns: validColumns,
@@ -1441,7 +1882,9 @@ function artifactToClipboardText(artifact) {
1441
1882
  }
1442
1883
  // Annotate the CommonJS export names for ESM import in node:
1443
1884
  0 && (module.exports = {
1885
+ ArtifactCopyAsImageButton,
1444
1886
  ArtifactDownloadButton,
1887
+ ArtifactDownloadMenu,
1445
1888
  ArtifactServices,
1446
1889
  ChartArtifact,
1447
1890
  DEFAULT_CHART_ARTIFACT_LABELS,
@@ -1455,7 +1898,13 @@ function artifactToClipboardText(artifact) {
1455
1898
 
1456
1899
  @tabler/icons-react/dist/esm/defaultAttributes.mjs:
1457
1900
  @tabler/icons-react/dist/esm/createReactComponent.mjs:
1901
+ @tabler/icons-react/dist/esm/icons/IconAlertCircle.mjs:
1902
+ @tabler/icons-react/dist/esm/icons/IconCheck.mjs:
1903
+ @tabler/icons-react/dist/esm/icons/IconCopy.mjs:
1458
1904
  @tabler/icons-react/dist/esm/icons/IconDownload.mjs:
1905
+ @tabler/icons-react/dist/esm/icons/IconFileSpreadsheet.mjs:
1906
+ @tabler/icons-react/dist/esm/icons/IconLoader2.mjs:
1907
+ @tabler/icons-react/dist/esm/icons/IconPhoto.mjs:
1459
1908
  @tabler/icons-react/dist/esm/tabler-icons-react.mjs:
1460
1909
  (**
1461
1910
  * @license @tabler/icons-react v3.37.1 - MIT