@shapesos/clay 0.18.0 → 0.19.1

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 (60) hide show
  1. package/dist/artifacts.cjs +207 -139
  2. package/dist/artifacts.cjs.map +1 -1
  3. package/dist/artifacts.js +5 -2
  4. package/dist/badge.cjs +70 -0
  5. package/dist/badge.cjs.map +1 -0
  6. package/dist/badge.d.cts +28 -0
  7. package/dist/badge.d.ts +28 -0
  8. package/dist/badge.js +9 -0
  9. package/dist/badge.js.map +1 -0
  10. package/dist/blocks.cjs +452 -185
  11. package/dist/blocks.cjs.map +1 -1
  12. package/dist/blocks.css +1 -1
  13. package/dist/blocks.d.cts +14 -3
  14. package/dist/blocks.d.ts +14 -3
  15. package/dist/blocks.js +17 -5
  16. package/dist/chat.cjs +457 -240
  17. package/dist/chat.cjs.map +1 -1
  18. package/dist/chat.d.cts +1 -1
  19. package/dist/chat.d.ts +1 -1
  20. package/dist/chat.js +10 -5
  21. package/dist/{chunk-JGMN6W72.js → chunk-2X4KUXYP.js} +1 -1
  22. package/dist/{chunk-QR4VBGK4.js → chunk-63AGNGKG.js} +81 -200
  23. package/dist/chunk-63AGNGKG.js.map +1 -0
  24. package/dist/chunk-CSTCTO3B.js +161 -0
  25. package/dist/chunk-CSTCTO3B.js.map +1 -0
  26. package/dist/chunk-EIAWZXE4.js +69 -0
  27. package/dist/chunk-EIAWZXE4.js.map +1 -0
  28. package/dist/chunk-EXRNGIQ2.js +41 -0
  29. package/dist/chunk-EXRNGIQ2.js.map +1 -0
  30. package/dist/{chunk-4MZZH3WX.js → chunk-HU5W7CGE.js} +37 -2
  31. package/dist/chunk-HU5W7CGE.js.map +1 -0
  32. package/dist/chunk-PISZYS2H.js +406 -0
  33. package/dist/chunk-PISZYS2H.js.map +1 -0
  34. package/dist/{chunk-CATIRDZP.js → chunk-PWSEEUVL.js} +10 -44
  35. package/dist/chunk-PWSEEUVL.js.map +1 -0
  36. package/dist/copy-button.cjs +439 -0
  37. package/dist/copy-button.cjs.map +1 -0
  38. package/dist/copy-button.d.cts +20 -0
  39. package/dist/copy-button.d.ts +20 -0
  40. package/dist/copy-button.js +12 -0
  41. package/dist/copy-button.js.map +1 -0
  42. package/dist/index.cjs +533 -298
  43. package/dist/index.cjs.map +1 -1
  44. package/dist/index.d.cts +4 -2
  45. package/dist/index.d.ts +4 -2
  46. package/dist/index.js +26 -9
  47. package/dist/table.cjs +40 -0
  48. package/dist/table.cjs.map +1 -1
  49. package/dist/table.d.cts +37 -2
  50. package/dist/table.d.ts +37 -2
  51. package/dist/table.js +11 -1
  52. package/dist/{types-BDYPVP2N.d.cts → types-Bhg0_ES8.d.cts} +74 -2
  53. package/dist/{types-BMwa4bPW.d.ts → types-orOQcI2z.d.ts} +74 -2
  54. package/package.json +11 -1
  55. package/dist/chunk-4MZZH3WX.js.map +0 -1
  56. package/dist/chunk-7MY4X4YL.js +0 -250
  57. package/dist/chunk-7MY4X4YL.js.map +0 -1
  58. package/dist/chunk-CATIRDZP.js.map +0 -1
  59. package/dist/chunk-QR4VBGK4.js.map +0 -1
  60. /package/dist/{chunk-JGMN6W72.js.map → chunk-2X4KUXYP.js.map} +0 -0
package/dist/chat.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { a as BlockRecord } from './types-BDYPVP2N.cjs';
2
+ import { a as BlockRecord } from './types-Bhg0_ES8.cjs';
3
3
  import * as React from 'react';
4
4
  import './types-DTdDFU3O.cjs';
5
5
  import './types-B2aYk82c.cjs';
package/dist/chat.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { a as BlockRecord } from './types-BMwa4bPW.js';
2
+ import { a as BlockRecord } from './types-orOQcI2z.js';
3
3
  import * as React from 'react';
4
4
  import './types-C8JtnwNY.js';
5
5
  import './types-B2aYk82c.js';
package/dist/chat.js CHANGED
@@ -3,20 +3,25 @@ import {
3
3
  ChatMessage,
4
4
  MESSAGE_ROLE,
5
5
  copyMessageText,
6
- useChatContext,
6
+ useChatContext
7
+ } from "./chunk-PWSEEUVL.js";
8
+ import "./chunk-PISZYS2H.js";
9
+ import {
7
10
  useCopyToClipboard
8
- } from "./chunk-CATIRDZP.js";
9
- import "./chunk-7MY4X4YL.js";
11
+ } from "./chunk-EIAWZXE4.js";
10
12
  import "./chunk-NMKKU2UG.js";
11
- import "./chunk-QR4VBGK4.js";
13
+ import "./chunk-63AGNGKG.js";
14
+ import "./chunk-CSTCTO3B.js";
15
+ import "./chunk-72TJUKMV.js";
12
16
  import "./chunk-E36VI2HA.js";
13
17
  import "./chunk-LXYCT4YO.js";
18
+ import "./chunk-EXRNGIQ2.js";
14
19
  import "./chunk-OLJIJYB5.js";
15
20
  import "./chunk-G4NXVFXU.js";
16
21
  import "./chunk-C77QMQNT.js";
17
22
  import "./chunk-UXT2H3FM.js";
18
23
  import "./chunk-SN3ORQSJ.js";
19
- import "./chunk-4MZZH3WX.js";
24
+ import "./chunk-HU5W7CGE.js";
20
25
  import "./chunk-P6GUNIAE.js";
21
26
  import "./chunk-5WRI5ZAA.js";
22
27
  export {
@@ -9,4 +9,4 @@ export {
9
9
  BlockContext,
10
10
  useBlockContext
11
11
  };
12
- //# sourceMappingURL=chunk-JGMN6W72.js.map
12
+ //# sourceMappingURL=chunk-2X4KUXYP.js.map
@@ -1,9 +1,29 @@
1
+ import {
2
+ IconAlertCircle,
3
+ IconArrowsMaximize,
4
+ IconArrowsMinimize,
5
+ IconCheck,
6
+ IconChevronLeft,
7
+ IconChevronRight,
8
+ IconCopy,
9
+ IconDownload,
10
+ IconFileSpreadsheet,
11
+ IconFlask2Filled,
12
+ IconLoader2,
13
+ IconPhoto
14
+ } from "./chunk-CSTCTO3B.js";
1
15
  import {
2
16
  IconButton
3
17
  } from "./chunk-E36VI2HA.js";
4
18
  import {
5
19
  CAPTURE_EXCLUDE_ATTRIBUTE
6
20
  } from "./chunk-LXYCT4YO.js";
21
+ import {
22
+ Badge
23
+ } from "./chunk-EXRNGIQ2.js";
24
+ import {
25
+ Icon
26
+ } from "./chunk-OLJIJYB5.js";
7
27
  import {
8
28
  BarChart,
9
29
  LineChart,
@@ -13,14 +33,14 @@ import {
13
33
  fontFamilies
14
34
  } from "./chunk-UXT2H3FM.js";
15
35
  import {
16
- Table,
17
- TableBody,
36
+ DATA_TABLE_CELL_CLASS,
37
+ DATA_TABLE_HEAD_CLASS,
38
+ DATA_TABLE_ROW_CLASS,
39
+ DataTable,
18
40
  TableCell,
19
41
  TableHead,
20
- TableHeader,
21
- TableRow,
22
- useScrollShadow
23
- } from "./chunk-4MZZH3WX.js";
42
+ TableRow
43
+ } from "./chunk-HU5W7CGE.js";
24
44
  import {
25
45
  cn
26
46
  } from "./chunk-P6GUNIAE.js";
@@ -82,114 +102,6 @@ var DEFAULT_DECK_ARTIFACT_LABELS = {
82
102
  table: DEFAULT_TABLE_ARTIFACT_LABELS
83
103
  };
84
104
 
85
- // node_modules/@tabler/icons-react/dist/esm/createReactComponent.mjs
86
- import { forwardRef, createElement } from "react";
87
-
88
- // node_modules/@tabler/icons-react/dist/esm/defaultAttributes.mjs
89
- var defaultAttributes = {
90
- outline: {
91
- xmlns: "http://www.w3.org/2000/svg",
92
- width: 24,
93
- height: 24,
94
- viewBox: "0 0 24 24",
95
- fill: "none",
96
- stroke: "currentColor",
97
- strokeWidth: 2,
98
- strokeLinecap: "round",
99
- strokeLinejoin: "round"
100
- },
101
- filled: {
102
- xmlns: "http://www.w3.org/2000/svg",
103
- width: 24,
104
- height: 24,
105
- viewBox: "0 0 24 24",
106
- fill: "currentColor",
107
- stroke: "none"
108
- }
109
- };
110
-
111
- // node_modules/@tabler/icons-react/dist/esm/createReactComponent.mjs
112
- var createReactComponent = (type, iconName, iconNamePascal, iconNode) => {
113
- const Component = forwardRef(
114
- ({ color = "currentColor", size = 24, stroke = 2, title, className, children, ...rest }, ref) => createElement(
115
- "svg",
116
- {
117
- ref,
118
- ...defaultAttributes[type],
119
- width: size,
120
- height: size,
121
- className: [`tabler-icon`, `tabler-icon-${iconName}`, className].join(" "),
122
- ...type === "filled" ? {
123
- fill: color
124
- } : {
125
- strokeWidth: stroke,
126
- stroke: color
127
- },
128
- ...rest
129
- },
130
- [
131
- title && createElement("title", { key: "svg-title" }, title),
132
- ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),
133
- ...Array.isArray(children) ? children : [children]
134
- ]
135
- )
136
- );
137
- Component.displayName = `${iconNamePascal}`;
138
- return Component;
139
- };
140
-
141
- // node_modules/@tabler/icons-react/dist/esm/icons/IconAlertCircle.mjs
142
- 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" }]];
143
- var IconAlertCircle = createReactComponent("outline", "alert-circle", "AlertCircle", __iconNode);
144
-
145
- // node_modules/@tabler/icons-react/dist/esm/icons/IconArrowsMaximize.mjs
146
- var __iconNode2 = [["path", { "d": "M16 4l4 0l0 4", "key": "svg-0" }], ["path", { "d": "M14 10l6 -6", "key": "svg-1" }], ["path", { "d": "M8 20l-4 0l0 -4", "key": "svg-2" }], ["path", { "d": "M4 20l6 -6", "key": "svg-3" }], ["path", { "d": "M16 20l4 0l0 -4", "key": "svg-4" }], ["path", { "d": "M14 14l6 6", "key": "svg-5" }], ["path", { "d": "M8 4l-4 0l0 4", "key": "svg-6" }], ["path", { "d": "M4 4l6 6", "key": "svg-7" }]];
147
- var IconArrowsMaximize = createReactComponent("outline", "arrows-maximize", "ArrowsMaximize", __iconNode2);
148
-
149
- // node_modules/@tabler/icons-react/dist/esm/icons/IconArrowsMinimize.mjs
150
- var __iconNode3 = [["path", { "d": "M5 9l4 0l0 -4", "key": "svg-0" }], ["path", { "d": "M3 3l6 6", "key": "svg-1" }], ["path", { "d": "M5 15l4 0l0 4", "key": "svg-2" }], ["path", { "d": "M3 21l6 -6", "key": "svg-3" }], ["path", { "d": "M19 9l-4 0l0 -4", "key": "svg-4" }], ["path", { "d": "M15 9l6 -6", "key": "svg-5" }], ["path", { "d": "M19 15l-4 0l0 4", "key": "svg-6" }], ["path", { "d": "M15 15l6 6", "key": "svg-7" }]];
151
- var IconArrowsMinimize = createReactComponent("outline", "arrows-minimize", "ArrowsMinimize", __iconNode3);
152
-
153
- // node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.mjs
154
- var __iconNode4 = [["path", { "d": "M5 12l5 5l10 -10", "key": "svg-0" }]];
155
- var IconCheck = createReactComponent("outline", "check", "Check", __iconNode4);
156
-
157
- // node_modules/@tabler/icons-react/dist/esm/icons/IconChevronLeft.mjs
158
- var __iconNode5 = [["path", { "d": "M15 6l-6 6l6 6", "key": "svg-0" }]];
159
- var IconChevronLeft = createReactComponent("outline", "chevron-left", "ChevronLeft", __iconNode5);
160
-
161
- // node_modules/@tabler/icons-react/dist/esm/icons/IconChevronRight.mjs
162
- var __iconNode6 = [["path", { "d": "M9 6l6 6l-6 6", "key": "svg-0" }]];
163
- var IconChevronRight = createReactComponent("outline", "chevron-right", "ChevronRight", __iconNode6);
164
-
165
- // node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.mjs
166
- var __iconNode7 = [["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" }]];
167
- var IconCopy = createReactComponent("outline", "copy", "Copy", __iconNode7);
168
-
169
- // node_modules/@tabler/icons-react/dist/esm/icons/IconDownload.mjs
170
- var __iconNode8 = [["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" }]];
171
- var IconDownload = createReactComponent("outline", "download", "Download", __iconNode8);
172
-
173
- // node_modules/@tabler/icons-react/dist/esm/icons/IconFileSpreadsheet.mjs
174
- var __iconNode9 = [["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" }]];
175
- var IconFileSpreadsheet = createReactComponent("outline", "file-spreadsheet", "FileSpreadsheet", __iconNode9);
176
-
177
- // node_modules/@tabler/icons-react/dist/esm/icons/IconLoader2.mjs
178
- var __iconNode10 = [["path", { "d": "M12 3a9 9 0 1 0 9 9", "key": "svg-0" }]];
179
- var IconLoader2 = createReactComponent("outline", "loader-2", "Loader2", __iconNode10);
180
-
181
- // node_modules/@tabler/icons-react/dist/esm/icons/IconPhoto.mjs
182
- var __iconNode11 = [["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" }]];
183
- var IconPhoto = createReactComponent("outline", "photo", "Photo", __iconNode11);
184
-
185
- // node_modules/@tabler/icons-react/dist/esm/icons/IconThumbDown.mjs
186
- var __iconNode12 = [["path", { "d": "M7 13v-8a1 1 0 0 0 -1 -1h-2a1 1 0 0 0 -1 1v7a1 1 0 0 0 1 1h3a4 4 0 0 1 4 4v1a2 2 0 0 0 4 0v-5h3a2 2 0 0 0 2 -2l-1 -5a2 3 0 0 0 -2 -2h-7a3 3 0 0 0 -3 3", "key": "svg-0" }]];
187
- var IconThumbDown = createReactComponent("outline", "thumb-down", "ThumbDown", __iconNode12);
188
-
189
- // node_modules/@tabler/icons-react/dist/esm/icons/IconThumbUp.mjs
190
- var __iconNode13 = [["path", { "d": "M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3", "key": "svg-0" }]];
191
- var IconThumbUp = createReactComponent("outline", "thumb-up", "ThumbUp", __iconNode13);
192
-
193
105
  // src/components/artifacts/artifact-copy-as-image-button/artifact-copy-as-image-button.tsx
194
106
  import { useCallback as useCallback2 } from "react";
195
107
 
@@ -465,9 +377,9 @@ function ArtifactDownloadMenu({
465
377
  import { useEffect as useEffect3, useMemo as useMemo2, useRef as useRef2 } from "react";
466
378
 
467
379
  // src/components/ai-elements/artifact.tsx
468
- import { forwardRef as forwardRef4 } from "react";
380
+ import { forwardRef as forwardRef3 } from "react";
469
381
  import { jsx as jsx6 } from "react/jsx-runtime";
470
- var Artifact = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
382
+ var Artifact = forwardRef3(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
471
383
  "div",
472
384
  {
473
385
  ref,
@@ -482,9 +394,9 @@ var ArtifactActions = ({ className, ...props }) => /* @__PURE__ */ jsx6("div", {
482
394
  var ArtifactContent = ({ className, ...props }) => /* @__PURE__ */ jsx6("div", { className: cn("flex-1 overflow-auto p-4", className), ...props });
483
395
 
484
396
  // src/components/artifacts/status-message.tsx
485
- import { createElement as createElement2 } from "react";
397
+ import { createElement } from "react";
486
398
  function StatusMessage({ $tone, children }) {
487
- return createElement2(
399
+ return createElement(
488
400
  "div",
489
401
  {
490
402
  className: `py-6 px-2 text-center text-sm font-medium leading-5 ${$tone === "error" ? "text-red-600" : "text-brown-70"}`
@@ -829,14 +741,10 @@ var TABLE_STATUS = {
829
741
  function formatCell(row, column) {
830
742
  return row[column.key] ?? "";
831
743
  }
832
- var HEAD_CLASS = "h-auto py-2 px-4 text-xs font-medium text-foreground whitespace-nowrap text-left";
833
- var CELL_CLASS = "p-4 text-sm font-normal text-foreground align-top min-w-[150px] text-left";
834
- var ROW_CLASSES = "border-b-brown-30 bg-background/70 hover:bg-secondary";
835
- var DATA_ROW_CLASSES = `${ROW_CLASSES} animate-in fade-in duration-300`;
836
- var SCROLL_SHADOW = "0 1px 2px rgb(0 0 0 / 0.01), 0 6px 12px -2px rgb(0 0 0 / 0.03)";
744
+ var DATA_ROW_CLASSES = `${DATA_TABLE_ROW_CLASS} animate-in fade-in duration-300`;
837
745
 
838
746
  // src/components/artifacts/table-artifact/table-artifact-content.tsx
839
- import { jsx as jsx12, jsxs as jsxs5 } from "react/jsx-runtime";
747
+ import { jsx as jsx12 } from "react/jsx-runtime";
840
748
  function TableArtifactContent({
841
749
  columns,
842
750
  data,
@@ -861,25 +769,20 @@ function TableArtifactContent({
861
769
  return /* @__PURE__ */ jsx12(ArtifactTable, { columns, maxBodyHeight, children: data.rows.length === 0 ? renderEmptyRow(columns.length, labels.empty) : renderDataRows(columns, data.rows) });
862
770
  }
863
771
  function ArtifactTable({ columns, maxBodyHeight, children }) {
864
- const { targetRef, isScrolled } = useScrollShadow();
865
- return /* @__PURE__ */ jsx12("div", { ref: targetRef, className: "overscroll-none", style: { maxHeight: maxBodyHeight, overflowY: "auto" }, children: /* @__PURE__ */ jsxs5(Table, { containerClassName: "overflow-visible", children: [
866
- /* @__PURE__ */ jsx12(
867
- TableHeader,
868
- {
869
- "data-scrolled": isScrolled ? "true" : void 0,
870
- className: "sticky top-0 z-10 bg-background/70 backdrop-blur-lg transition-shadow",
871
- style: isScrolled ? { boxShadow: SCROLL_SHADOW } : void 0,
872
- children: /* @__PURE__ */ jsx12(TableRow, { className: "hover:bg-transparent", children: columns.map((column) => /* @__PURE__ */ jsx12(TableHead, { scope: "col", className: HEAD_CLASS, children: column.label }, column.key)) })
873
- }
874
- ),
875
- /* @__PURE__ */ jsx12(TableBody, { children })
876
- ] }) });
772
+ return /* @__PURE__ */ jsx12(
773
+ DataTable,
774
+ {
775
+ maxBodyHeight,
776
+ header: /* @__PURE__ */ jsx12(TableRow, { className: "hover:bg-transparent", children: columns.map((column) => /* @__PURE__ */ jsx12(TableHead, { scope: "col", className: DATA_TABLE_HEAD_CLASS, children: column.label }, column.key)) }),
777
+ children
778
+ }
779
+ );
877
780
  }
878
781
  function renderShimmerRows(columns, count) {
879
- return Array.from({ length: count }).map((_, index) => /* @__PURE__ */ jsx12(TableRow, { className: ROW_CLASSES, "aria-hidden": "true", children: columns.map((column) => /* @__PURE__ */ jsx12(TableCell, { className: CELL_CLASS, children: /* @__PURE__ */ jsx12("span", { className: "block h-3 w-3/4 animate-pulse rounded bg-muted-foreground/20" }) }, column.key)) }, `shimmer-${index}`));
782
+ return Array.from({ length: count }).map((_, index) => /* @__PURE__ */ jsx12(TableRow, { className: DATA_TABLE_ROW_CLASS, "aria-hidden": "true", children: columns.map((column) => /* @__PURE__ */ jsx12(TableCell, { className: DATA_TABLE_CELL_CLASS, children: /* @__PURE__ */ jsx12("span", { className: "block h-3 w-3/4 animate-pulse rounded bg-muted-foreground/20" }) }, column.key)) }, `shimmer-${index}`));
880
783
  }
881
784
  function renderDataRows(columns, rows) {
882
- return rows.map((row, index) => /* @__PURE__ */ jsx12(TableRow, { className: DATA_ROW_CLASSES, children: columns.map((column) => /* @__PURE__ */ jsx12(TableCell, { className: CELL_CLASS, children: formatCell(row, column) }, column.key)) }, index));
785
+ return rows.map((row, index) => /* @__PURE__ */ jsx12(TableRow, { className: DATA_ROW_CLASSES, children: columns.map((column) => /* @__PURE__ */ jsx12(TableCell, { className: DATA_TABLE_CELL_CLASS, children: formatCell(row, column) }, column.key)) }, index));
883
786
  }
884
787
  function renderEmptyRow(colSpan, emptyMessage) {
885
788
  return /* @__PURE__ */ jsx12(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ jsx12(TableCell, { colSpan, className: "py-6 text-center text-sm text-muted-foreground", children: emptyMessage }) });
@@ -935,7 +838,7 @@ function DeckMarkdown({ markdown }) {
935
838
 
936
839
  // src/components/artifacts/deck-artifact/slide-renderers.tsx
937
840
  import { useLayoutEffect, useRef as useRef3, useState as useState3 } from "react";
938
- import { jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
841
+ import { jsx as jsx14, jsxs as jsxs5 } from "react/jsx-runtime";
939
842
  function safeLogoUrl(meta) {
940
843
  return meta?.logoUrl && isSafeDownloadUrl(meta.logoUrl) ? meta.logoUrl : null;
941
844
  }
@@ -962,7 +865,7 @@ function SlideFrame({ meta, children, accent = false, bare = false }) {
962
865
  const eyebrowColor = accent ? "text-white/70" : "text-brown-60";
963
866
  const borderColor = accent ? "border-white/20" : "border-brown-alpha-12";
964
867
  const logoSrc = safeLogoUrl(meta);
965
- return /* @__PURE__ */ jsx14("div", { ref: frameRef, className: `relative aspect-[16/9] w-full overflow-hidden rounded-lg ${bg}`, children: /* @__PURE__ */ jsxs6(
868
+ return /* @__PURE__ */ jsx14("div", { ref: frameRef, className: `relative aspect-[16/9] w-full overflow-hidden rounded-lg ${bg}`, children: /* @__PURE__ */ jsxs5(
966
869
  "div",
967
870
  {
968
871
  className: "absolute left-0 top-0 origin-top-left",
@@ -973,7 +876,7 @@ function SlideFrame({ meta, children, accent = false, bare = false }) {
973
876
  visibility: scale === null ? "hidden" : "visible"
974
877
  },
975
878
  children: [
976
- !bare ? /* @__PURE__ */ jsxs6(
879
+ !bare ? /* @__PURE__ */ jsxs5(
977
880
  "div",
978
881
  {
979
882
  className: `absolute inset-x-0 top-0 flex items-center justify-between border-b px-16 ${borderColor}`,
@@ -991,7 +894,7 @@ function SlideFrame({ meta, children, accent = false, bare = false }) {
991
894
  }
992
895
  function TitleSlide({ slide, meta }) {
993
896
  const logoSrc = safeLogoUrl(meta);
994
- return /* @__PURE__ */ jsx14(SlideFrame, { meta, bare: true, children: /* @__PURE__ */ jsxs6("div", { className: "flex h-full flex-col justify-center px-24 py-16", children: [
897
+ return /* @__PURE__ */ jsx14(SlideFrame, { meta, bare: true, children: /* @__PURE__ */ jsxs5("div", { className: "flex h-full flex-col justify-center px-24 py-16", children: [
995
898
  logoSrc ? /* @__PURE__ */ jsx14(
996
899
  "img",
997
900
  {
@@ -1016,29 +919,29 @@ function TitleSlide({ slide, meta }) {
1016
919
  }
1017
920
  function AgendaSlide({ slide, meta, labels }) {
1018
921
  const items = slide.items ?? [];
1019
- return /* @__PURE__ */ jsx14(SlideFrame, { meta, children: /* @__PURE__ */ jsxs6("div", { className: "h-full px-24 py-14", children: [
922
+ return /* @__PURE__ */ jsx14(SlideFrame, { meta, children: /* @__PURE__ */ jsxs5("div", { className: "h-full px-24 py-14", children: [
1020
923
  /* @__PURE__ */ jsx14("h2", { className: "mb-10 font-bold text-brown-90", style: { fontSize: 40 }, children: slide.title || labels.agenda }),
1021
- /* @__PURE__ */ jsx14("div", { className: "flex flex-col", children: items.map((item, i) => /* @__PURE__ */ jsxs6("div", { className: "flex items-baseline gap-6 border-b border-brown-alpha-12 py-5", children: [
924
+ /* @__PURE__ */ jsx14("div", { className: "flex flex-col", children: items.map((item, i) => /* @__PURE__ */ jsxs5("div", { className: "flex items-baseline gap-6 border-b border-brown-alpha-12 py-5", children: [
1022
925
  /* @__PURE__ */ jsx14("span", { className: "shrink-0 text-indigo-600", style: { ...ACCENT_FONT, fontSize: 28, width: 64 }, children: String(i + 1).padStart(2, "0") }),
1023
926
  /* @__PURE__ */ jsx14("span", { className: "text-brown-90", style: { fontSize: 28 }, children: item })
1024
927
  ] }, i)) })
1025
928
  ] }) });
1026
929
  }
1027
930
  function SectionSlide({ slide, meta }) {
1028
- return /* @__PURE__ */ jsx14(SlideFrame, { meta, accent: true, children: /* @__PURE__ */ jsxs6("div", { className: "flex h-full flex-col justify-center gap-6 px-24", children: [
931
+ return /* @__PURE__ */ jsx14(SlideFrame, { meta, accent: true, children: /* @__PURE__ */ jsxs5("div", { className: "flex h-full flex-col justify-center gap-6 px-24", children: [
1029
932
  /* @__PURE__ */ jsx14("h2", { className: "font-bold text-white", style: { fontSize: 72, lineHeight: 1.05, maxWidth: 940 }, children: slide.title }),
1030
933
  /* @__PURE__ */ jsx14("div", { className: "mt-2 bg-white/50", style: { width: 96, height: 5 } })
1031
934
  ] }) });
1032
935
  }
1033
936
  function ClosingSlide({ meta, labels }) {
1034
- return /* @__PURE__ */ jsx14(SlideFrame, { meta, children: /* @__PURE__ */ jsxs6("div", { className: "flex h-full flex-col items-center justify-center gap-6 px-24 text-center", children: [
937
+ return /* @__PURE__ */ jsx14(SlideFrame, { meta, children: /* @__PURE__ */ jsxs5("div", { className: "flex h-full flex-col items-center justify-center gap-6 px-24 text-center", children: [
1035
938
  /* @__PURE__ */ jsx14("h1", { className: "font-bold text-brown-100", style: { fontSize: 72 }, children: labels.thankYou }),
1036
939
  /* @__PURE__ */ jsx14("p", { className: "text-indigo-600", style: { ...ACCENT_FONT, fontSize: 36 }, children: labels.questions })
1037
940
  ] }) });
1038
941
  }
1039
942
 
1040
943
  // src/components/artifacts/deck-artifact/deck-artifact-content.tsx
1041
- import { jsx as jsx15, jsxs as jsxs7 } from "react/jsx-runtime";
944
+ import { jsx as jsx15, jsxs as jsxs6 } from "react/jsx-runtime";
1042
945
  var TABLE_BLOCK_MAX_SHIMMER_ROWS = 10;
1043
946
  var TABLE_CHROME_RESERVE = 56;
1044
947
  var VISUAL_FALLBACK_HEIGHT = 360;
@@ -1068,9 +971,9 @@ function DeckArtifactContent({
1068
971
  [slides.length, onNavigate, isControlled, onSlideChange]
1069
972
  );
1070
973
  const position = labels.position.replace("{current}", String(current + 1)).replace("{total}", String(slides.length));
1071
- return /* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-3 p-4", children: [
974
+ return /* @__PURE__ */ jsxs6("div", { className: "flex flex-col gap-3 p-4", children: [
1072
975
  /* @__PURE__ */ jsx15(SlideDispatch, { slide, labels, meta }),
1073
- /* @__PURE__ */ jsxs7(
976
+ /* @__PURE__ */ jsxs6(
1074
977
  "div",
1075
978
  {
1076
979
  className: `flex items-center justify-between border-t pt-2 ${onDark ? "border-white/20" : "border-brown-alpha-12"}`,
@@ -1129,8 +1032,8 @@ function ContentSlide({ slide, meta, labels }) {
1129
1032
  (b) => b.type === deckBlockTypes.TEXT
1130
1033
  );
1131
1034
  if (visuals.length === 1 && texts.length > 0) {
1132
- return /* @__PURE__ */ jsx15(SlideFrame, { meta, children: /* @__PURE__ */ jsxs7("div", { className: "flex h-full items-stretch gap-12 px-16 py-12", children: [
1133
- /* @__PURE__ */ jsx15("div", { className: "flex w-[42%] shrink-0 flex-col overflow-hidden", children: /* @__PURE__ */ jsxs7(AutoFit, { children: [
1035
+ return /* @__PURE__ */ jsx15(SlideFrame, { meta, children: /* @__PURE__ */ jsxs6("div", { className: "flex h-full items-stretch gap-12 px-16 py-12", children: [
1036
+ /* @__PURE__ */ jsx15("div", { className: "flex w-[42%] shrink-0 flex-col overflow-hidden", children: /* @__PURE__ */ jsxs6(AutoFit, { children: [
1134
1037
  /* @__PURE__ */ jsx15("h3", { className: "mb-5 font-bold leading-tight text-foreground", style: { fontSize: 34 }, children: slide.title }),
1135
1038
  texts.map((block, i) => /* @__PURE__ */ jsx15(DeckMarkdown, { markdown: block.markdown }, i))
1136
1039
  ] }) }),
@@ -1138,14 +1041,14 @@ function ContentSlide({ slide, meta, labels }) {
1138
1041
  ] }) });
1139
1042
  }
1140
1043
  if (visuals.length > 0) {
1141
- return /* @__PURE__ */ jsx15(SlideFrame, { meta, children: /* @__PURE__ */ jsxs7("div", { className: "flex h-full flex-col gap-5 px-16 py-10", children: [
1044
+ return /* @__PURE__ */ jsx15(SlideFrame, { meta, children: /* @__PURE__ */ jsxs6("div", { className: "flex h-full flex-col gap-5 px-16 py-10", children: [
1142
1045
  /* @__PURE__ */ jsx15("h3", { className: "shrink-0 font-bold leading-tight text-foreground", style: { fontSize: 32 }, children: slide.title }),
1143
1046
  content.map(
1144
1047
  (block, i) => isVisualBlock(block) ? /* @__PURE__ */ jsx15("div", { className: "min-h-0 min-w-0 flex-1", children: /* @__PURE__ */ jsx15(FillVisual, { block, labels }) }, i) : /* @__PURE__ */ jsx15("div", { className: "shrink-0 overflow-hidden", children: /* @__PURE__ */ jsx15(DeckMarkdown, { markdown: block.markdown }) }, i)
1145
1048
  )
1146
1049
  ] }) });
1147
1050
  }
1148
- return /* @__PURE__ */ jsx15(SlideFrame, { meta, children: /* @__PURE__ */ jsx15("div", { className: "h-full px-24 py-12", children: /* @__PURE__ */ jsxs7(AutoFit, { children: [
1051
+ return /* @__PURE__ */ jsx15(SlideFrame, { meta, children: /* @__PURE__ */ jsx15("div", { className: "h-full px-24 py-12", children: /* @__PURE__ */ jsxs6(AutoFit, { children: [
1149
1052
  /* @__PURE__ */ jsx15("h3", { className: "mb-6 font-bold leading-tight text-foreground", style: { fontSize: 38 }, children: slide.title }),
1150
1053
  texts.map((block, i) => /* @__PURE__ */ jsx15(DeckMarkdown, { markdown: block.markdown }, i))
1151
1054
  ] }) }) });
@@ -1267,7 +1170,7 @@ function isValidDeckBlock(block) {
1267
1170
  }
1268
1171
 
1269
1172
  // src/components/artifacts/deck-artifact/deck-artifact.tsx
1270
- import { Fragment, jsx as jsx16, jsxs as jsxs8 } from "react/jsx-runtime";
1173
+ import { Fragment, jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
1271
1174
  var TITLE_CLASSES2 = "text-sm font-semibold text-foreground";
1272
1175
  function DeckArtifact({ artifact, labels, callbacks }) {
1273
1176
  const validConfig = isValidDeckConfig(artifact.config);
@@ -1308,7 +1211,7 @@ function DeckArtifact({ artifact, labels, callbacks }) {
1308
1211
  const meta = artifact.config?.meta;
1309
1212
  const handleOpenFullscreen = () => setIsFullscreen(true);
1310
1213
  const handleCloseFullscreen = () => setIsFullscreen(false);
1311
- const actions = /* @__PURE__ */ jsxs8(ArtifactActions, { ...{ [CAPTURE_EXCLUDE_ATTRIBUTE]: "" }, children: [
1214
+ const actions = /* @__PURE__ */ jsxs7(ArtifactActions, { ...{ [CAPTURE_EXCLUDE_ATTRIBUTE]: "" }, children: [
1312
1215
  showDownload ? /* @__PURE__ */ jsx16(ArtifactDownloadButton, { href: presignedUrl ?? "", label: resolvedLabels.download, onClick: handleDownload }) : null,
1313
1216
  validConfig ? /* @__PURE__ */ jsx16(
1314
1217
  IconButton,
@@ -1320,19 +1223,26 @@ function DeckArtifact({ artifact, labels, callbacks }) {
1320
1223
  }
1321
1224
  ) : null
1322
1225
  ] });
1226
+ const heading = /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-2", children: [
1227
+ artifact.title ? /* @__PURE__ */ jsx16(ArtifactTitle, { className: TITLE_CLASSES2, children: artifact.title }) : null,
1228
+ /* @__PURE__ */ jsxs7(Badge, { tone: "violet", variant: "subtle", size: "sm", className: "gap-1 py-1", children: [
1229
+ /* @__PURE__ */ jsx16(Icon, { icon: IconFlask2Filled, size: 12 }),
1230
+ "Labs"
1231
+ ] })
1232
+ ] });
1323
1233
  if (!validConfig) {
1324
- return /* @__PURE__ */ jsxs8(Artifact, { className: "shadow-none w-full rounded-2xl bg-background/70", children: [
1325
- /* @__PURE__ */ jsxs8(ArtifactHeader, { className: "bg-background/70", children: [
1326
- artifact.title ? /* @__PURE__ */ jsx16(ArtifactTitle, { className: TITLE_CLASSES2, children: artifact.title }) : /* @__PURE__ */ jsx16("span", {}),
1234
+ return /* @__PURE__ */ jsxs7(Artifact, { className: "shadow-none w-full rounded-2xl bg-background/70", children: [
1235
+ /* @__PURE__ */ jsxs7(ArtifactHeader, { className: "bg-background/70", children: [
1236
+ heading,
1327
1237
  actions
1328
1238
  ] }),
1329
1239
  /* @__PURE__ */ jsx16(ArtifactContent, { className: "p-0", children: /* @__PURE__ */ jsx16(StatusMessage, { $tone: "info", children: resolvedLabels.unavailable }) })
1330
1240
  ] });
1331
1241
  }
1332
- return /* @__PURE__ */ jsxs8(Fragment, { children: [
1333
- /* @__PURE__ */ jsxs8(Artifact, { className: "shadow-none w-full rounded-2xl bg-background/70", children: [
1334
- /* @__PURE__ */ jsxs8(ArtifactHeader, { className: "bg-background/70", children: [
1335
- artifact.title ? /* @__PURE__ */ jsx16(ArtifactTitle, { className: TITLE_CLASSES2, children: artifact.title }) : /* @__PURE__ */ jsx16("span", {}),
1242
+ return /* @__PURE__ */ jsxs7(Fragment, { children: [
1243
+ /* @__PURE__ */ jsxs7(Artifact, { className: "shadow-none w-full rounded-2xl bg-background/70", children: [
1244
+ /* @__PURE__ */ jsxs7(ArtifactHeader, { className: "bg-background/70", children: [
1245
+ heading,
1336
1246
  actions
1337
1247
  ] }),
1338
1248
  /* @__PURE__ */ jsx16(ArtifactContent, { className: "p-0", children: /* @__PURE__ */ jsx16(
@@ -1379,7 +1289,7 @@ function FullscreenOverlay({
1379
1289
  role: "dialog",
1380
1290
  "aria-modal": "true",
1381
1291
  "aria-label": resolvedLabels.exitFullscreen,
1382
- children: /* @__PURE__ */ jsxs8("div", { className: "relative", style: { width: "min(94vw, calc(82vh * 16 / 9))" }, children: [
1292
+ children: /* @__PURE__ */ jsxs7("div", { className: "relative", style: { width: "min(94vw, calc(82vh * 16 / 9))" }, children: [
1383
1293
  /* @__PURE__ */ jsx16(
1384
1294
  DeckArtifactContent,
1385
1295
  {
@@ -1392,7 +1302,7 @@ function FullscreenOverlay({
1392
1302
  onDark: true
1393
1303
  }
1394
1304
  ),
1395
- /* @__PURE__ */ jsxs8(
1305
+ /* @__PURE__ */ jsxs7(
1396
1306
  "button",
1397
1307
  {
1398
1308
  className: "absolute -top-10 right-6 flex items-center gap-1.5 text-sm text-white/80 hover:text-white",
@@ -1418,7 +1328,7 @@ function useTableArtifactData(presignedUrl, columns) {
1418
1328
  }
1419
1329
 
1420
1330
  // src/components/artifacts/table-artifact/table-artifact.tsx
1421
- import { jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
1331
+ import { jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
1422
1332
  var TITLE_CLASSES3 = "text-sm font-semibold text-foreground";
1423
1333
  var TABLE_MAX_BODY_HEIGHT = 480;
1424
1334
  var MAX_SHIMMER_ROWS = 10;
@@ -1441,8 +1351,8 @@ function TableArtifact({ artifact, labels, callbacks }) {
1441
1351
  const onDownload = callbacks?.onDownload;
1442
1352
  const handleDownloadClick = onDownload ? () => onDownload(artifact) : void 0;
1443
1353
  if (!validConfig || !validColumns) {
1444
- return /* @__PURE__ */ jsxs9(Artifact, { className: "shadow-none w-full rounded-2xl bg-background/70", children: [
1445
- /* @__PURE__ */ jsxs9(ArtifactHeader, { className: "bg-background/70", children: [
1354
+ return /* @__PURE__ */ jsxs8(Artifact, { className: "shadow-none w-full rounded-2xl bg-background/70", children: [
1355
+ /* @__PURE__ */ jsxs8(ArtifactHeader, { className: "bg-background/70", children: [
1446
1356
  artifact.title ? /* @__PURE__ */ jsx17(ArtifactTitle, { className: TITLE_CLASSES3, children: artifact.title }) : /* @__PURE__ */ jsx17("span", {}),
1447
1357
  presignedUrl ? /* @__PURE__ */ jsx17(ArtifactActions, { children: /* @__PURE__ */ jsx17(
1448
1358
  ArtifactDownloadButton,
@@ -1460,8 +1370,8 @@ function TableArtifact({ artifact, labels, callbacks }) {
1460
1370
  // The table body owns its own scroll container (`ArtifactTable` inside `TableArtifactContent`).
1461
1371
  // Disable the outer overflow container so only one scroll context exists — this prevents
1462
1372
  // double-scroll nesting and lets `useScrollShadow` find the correct scroll ancestor.
1463
- /* @__PURE__ */ jsxs9(Artifact, { className: "shadow-none w-full rounded-2xl bg-background/70", children: [
1464
- /* @__PURE__ */ jsxs9(ArtifactHeader, { className: "bg-background/70", children: [
1373
+ /* @__PURE__ */ jsxs8(Artifact, { className: "shadow-none w-full rounded-2xl bg-background/70", children: [
1374
+ /* @__PURE__ */ jsxs8(ArtifactHeader, { className: "bg-background/70", children: [
1465
1375
  artifact.title ? /* @__PURE__ */ jsx17(ArtifactTitle, { className: TITLE_CLASSES3, children: artifact.title }) : /* @__PURE__ */ jsx17("span", {}),
1466
1376
  /* @__PURE__ */ jsx17(ArtifactActions, { children: /* @__PURE__ */ jsx17(
1467
1377
  ArtifactDownloadButton,
@@ -1593,10 +1503,6 @@ export {
1593
1503
  deckBlockTypes,
1594
1504
  deckSlideKinds,
1595
1505
  DEFAULT_DECK_ARTIFACT_LABELS,
1596
- IconCheck,
1597
- IconCopy,
1598
- IconThumbDown,
1599
- IconThumbUp,
1600
1506
  ArtifactCopyAsImageButton,
1601
1507
  ArtifactDownloadButton,
1602
1508
  isSafeDownloadUrl,
@@ -1607,29 +1513,4 @@ export {
1607
1513
  ArtifactServices,
1608
1514
  artifactToClipboardText
1609
1515
  };
1610
- /*! Bundled license information:
1611
-
1612
- @tabler/icons-react/dist/esm/defaultAttributes.mjs:
1613
- @tabler/icons-react/dist/esm/createReactComponent.mjs:
1614
- @tabler/icons-react/dist/esm/icons/IconAlertCircle.mjs:
1615
- @tabler/icons-react/dist/esm/icons/IconArrowsMaximize.mjs:
1616
- @tabler/icons-react/dist/esm/icons/IconArrowsMinimize.mjs:
1617
- @tabler/icons-react/dist/esm/icons/IconCheck.mjs:
1618
- @tabler/icons-react/dist/esm/icons/IconChevronLeft.mjs:
1619
- @tabler/icons-react/dist/esm/icons/IconChevronRight.mjs:
1620
- @tabler/icons-react/dist/esm/icons/IconCopy.mjs:
1621
- @tabler/icons-react/dist/esm/icons/IconDownload.mjs:
1622
- @tabler/icons-react/dist/esm/icons/IconFileSpreadsheet.mjs:
1623
- @tabler/icons-react/dist/esm/icons/IconLoader2.mjs:
1624
- @tabler/icons-react/dist/esm/icons/IconPhoto.mjs:
1625
- @tabler/icons-react/dist/esm/icons/IconThumbDown.mjs:
1626
- @tabler/icons-react/dist/esm/icons/IconThumbUp.mjs:
1627
- @tabler/icons-react/dist/esm/tabler-icons-react.mjs:
1628
- (**
1629
- * @license @tabler/icons-react v3.37.1 - MIT
1630
- *
1631
- * This source code is licensed under the MIT license.
1632
- * See the LICENSE file in the root directory of this source tree.
1633
- *)
1634
- */
1635
- //# sourceMappingURL=chunk-QR4VBGK4.js.map
1516
+ //# sourceMappingURL=chunk-63AGNGKG.js.map