artifactuse 0.2.0 → 0.2.3

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.
@@ -1,21 +1,21 @@
1
- import e, { useState as k, useMemo as M, useCallback as p, useRef as B, useEffect as z, createContext as Wt, useContext as Vt } from "react";
2
- import { g as Ue, f as vt, a as at, b as rt, n as zt, i as ft, c as Rt, D as ht, d as qt } from "../index-llShix6s.js";
3
- import { J as Dt } from "../jszip.min-CdmYyw5L.js";
4
- import { createPortal as Ut } from "react-dom";
5
- function jt({
1
+ import e, { useState as w, useMemo as C, useCallback as p, useRef as B, useEffect as z, createContext as Wt, useContext as zt } from "react";
2
+ import { g as Ue, f as ht, a as at, b as rt, n as Rt, i as pt, c as qt, D as gt, d as Dt } from "../index-B4BEvWtI.js";
3
+ import { J as Ut } from "../jszip.min-CdmYyw5L.js";
4
+ import { createPortal as jt } from "react-dom";
5
+ function Ot({
6
6
  artifact: t,
7
7
  isActive: a = !1,
8
8
  onOpen: l,
9
9
  onCopy: n,
10
- onDownload: i,
10
+ onDownload: o,
11
11
  className: u = ""
12
12
  }) {
13
- const [m, r] = k(!1), x = M(() => Ue(t.language), [t.language]), o = M(() => {
13
+ const [i, r] = w(!1), x = C(() => Ue(t.language), [t.language]), m = C(() => {
14
14
  var c;
15
- return vt(t.size || ((c = t.code) == null ? void 0 : c.length) || 0);
16
- }, [t.size, t.code]), w = M(() => at(t.language), [t.language]), P = p((c) => {
15
+ return ht(t.size || ((c = t.code) == null ? void 0 : c.length) || 0);
16
+ }, [t.size, t.code]), k = C(() => at(t.language), [t.language]), T = p((c) => {
17
17
  c.stopPropagation(), l && l(t);
18
- }, [t, l]), L = p(async (c) => {
18
+ }, [t, l]), M = p(async (c) => {
19
19
  c.stopPropagation();
20
20
  try {
21
21
  await navigator.clipboard.writeText(t.code), r(!0), n && n(t), setTimeout(() => {
@@ -36,30 +36,30 @@ function jt({
36
36
  }, [t, n]), $ = p((c) => {
37
37
  var q;
38
38
  c.stopPropagation();
39
- const E = new Blob([t.code], { type: "text/plain" }), g = URL.createObjectURL(E), D = document.createElement("a"), J = rt(t.language), S = ((q = t.title) == null ? void 0 : q.replace(/[^a-z0-9]/gi, "_").toLowerCase()) || "code";
40
- D.href = g, D.download = `${S}.${J}`, document.body.appendChild(D), D.click(), document.body.removeChild(D), URL.revokeObjectURL(g), i && i(t);
41
- }, [t, i]), h = [
39
+ const E = new Blob([t.code], { type: "text/plain" }), g = URL.createObjectURL(E), D = document.createElement("a"), J = rt(t.language), A = ((q = t.title) == null ? void 0 : q.replace(/[^a-z0-9]/gi, "_").toLowerCase()) || "code";
40
+ D.href = g, D.download = `${A}.${J}`, document.body.appendChild(D), D.click(), document.body.removeChild(D), URL.revokeObjectURL(g), o && o(t);
41
+ }, [t, o]), h = [
42
42
  "artifactuse-card",
43
43
  a && "artifactuse-card--active",
44
44
  u
45
45
  ].filter(Boolean).join(" ");
46
- return /* @__PURE__ */ e.createElement("div", { className: h, onClick: P }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-card__icon" }, /* @__PURE__ */ e.createElement(
46
+ return /* @__PURE__ */ e.createElement("div", { className: h, onClick: T }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-card__icon" }, /* @__PURE__ */ e.createElement(
47
47
  "svg",
48
48
  {
49
49
  viewBox: "0 0 24 24",
50
50
  fill: "none",
51
51
  stroke: "currentColor",
52
52
  strokeWidth: "1.5",
53
- dangerouslySetInnerHTML: { __html: w }
53
+ dangerouslySetInnerHTML: { __html: k }
54
54
  }
55
- )), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-card__content" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-card__title" }, t.title), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-card__meta" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-card__type" }, x), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-card__separator" }, "•"), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-card__size" }, o))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-card__actions" }, /* @__PURE__ */ e.createElement(
55
+ )), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-card__content" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-card__title" }, t.title), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-card__meta" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-card__type" }, x), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-card__separator" }, "•"), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-card__size" }, m))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-card__actions" }, /* @__PURE__ */ e.createElement(
56
56
  "button",
57
57
  {
58
58
  className: "artifactuse-card__action",
59
- title: m ? "Copied!" : "Copy code",
60
- onClick: L
59
+ title: i ? "Copied!" : "Copy code",
60
+ onClick: M
61
61
  },
62
- m ? /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "20 6 9 17 4 12" })) : /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2", ry: "2" }), /* @__PURE__ */ e.createElement("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" }))
62
+ i ? /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "20 6 9 17 4 12" })) : /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2", ry: "2" }), /* @__PURE__ */ e.createElement("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" }))
63
63
  ), /* @__PURE__ */ e.createElement(
64
64
  "button",
65
65
  {
@@ -70,127 +70,127 @@ function jt({
70
70
  /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), /* @__PURE__ */ e.createElement("polyline", { points: "7 10 12 15 17 10" }), /* @__PURE__ */ e.createElement("line", { x1: "12", y1: "15", x2: "12", y2: "3" }))
71
71
  )), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-card__arrow" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "9 18 15 12 9 6" }))));
72
72
  }
73
- function Ot(t) {
73
+ function Jt(t) {
74
74
  if (!t) return null;
75
75
  const a = t.trim();
76
76
  if (a.startsWith("#")) {
77
- let i = a.slice(1);
78
- if (i.length === 3 && (i = i.split("").map((u) => u + u).join("")), i.length === 6) {
79
- const u = parseInt(i.slice(0, 2), 16), m = parseInt(i.slice(2, 4), 16), r = parseInt(i.slice(4, 6), 16);
80
- if (!isNaN(u) && !isNaN(m) && !isNaN(r)) return `${u}, ${m}, ${r}`;
77
+ let o = a.slice(1);
78
+ if (o.length === 3 && (o = o.split("").map((u) => u + u).join("")), o.length === 6) {
79
+ const u = parseInt(o.slice(0, 2), 16), i = parseInt(o.slice(2, 4), 16), r = parseInt(o.slice(4, 6), 16);
80
+ if (!isNaN(u) && !isNaN(i) && !isNaN(r)) return `${u}, ${i}, ${r}`;
81
81
  }
82
82
  }
83
83
  const l = a.match(/^rgba?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/i);
84
84
  if (l) return `${l[1]}, ${l[2]}, ${l[3]}`;
85
- const n = a.split(/[\s,]+/).map(Number).filter((i) => !isNaN(i));
85
+ const n = a.split(/[\s,]+/).map(Number).filter((o) => !isNaN(o));
86
86
  return n.length >= 3 ? `${n[0]}, ${n[1]}, ${n[2]}` : null;
87
87
  }
88
- function pt(t) {
88
+ function Et(t) {
89
89
  return t ? t.map((a) => typeof a == "string" ? { label: a, value: a } : a) : [];
90
90
  }
91
- function Jt(t) {
91
+ function Xt(t) {
92
92
  return ["text", "email", "password", "tel", "url", "number", "date", "time", "datetime-local"].includes(t);
93
93
  }
94
- function Xt({
94
+ function Zt({
95
95
  artifact: t,
96
96
  onSubmit: a,
97
97
  onCancel: l,
98
98
  onReset: n,
99
- onButtonClick: i,
99
+ onButtonClick: o,
100
100
  className: u = "",
101
- theme: m = "dark",
101
+ theme: i = "dark",
102
102
  accent: r = null,
103
103
  initialState: x = "active"
104
104
  // 'active' | 'submitted' | 'cancelled' | 'inactive'
105
105
  }) {
106
- var ce, Q, pe;
107
- const o = B(null), [w, P] = k(x), L = w !== "active", $ = w === "active" ? "" : `artifactuse-form--${w}`, h = M(() => {
106
+ var ne, Q, Ee;
107
+ const m = B(null), [k, T] = w(x), M = k !== "active", $ = k === "active" ? "" : `artifactuse-form--${k}`, h = C(() => {
108
108
  try {
109
109
  return JSON.parse(t.code);
110
110
  } catch {
111
111
  return { title: "Invalid Form", variant: "fields", data: { fields: [] } };
112
112
  }
113
- }, [t.code]), c = t.id || h.id || `form-${Date.now()}`, E = ((ce = h.data) == null ? void 0 : ce.fields) || [], g = h.title || "Form", D = M(() => E.some((d) => d.type === "buttons"), [E]), J = M(() => h.variant === "buttons" ? E : [], [h.variant, E]), [S, q] = k(() => {
114
- var C;
113
+ }, [t.code]), c = t.id || h.id || `form-${Date.now()}`, E = ((ne = h.data) == null ? void 0 : ne.fields) || [], g = h.title || "Form", D = C(() => E.some((d) => d.type === "buttons"), [E]), J = C(() => h.variant === "buttons" ? E : [], [h.variant, E]), [A, q] = w(() => {
114
+ var L;
115
115
  const d = {};
116
- return E.forEach((y) => {
117
- ["buttons", "divider", "heading"].includes(y.type) || (y.defaultValue !== void 0 ? d[y.name] = y.defaultValue : y.type === "checkbox" ? d[y.name] = !1 : d[y.name] = "");
118
- }), (C = h.data) != null && C.defaults && Object.assign(d, h.data.defaults), d;
119
- }), [U, R] = k({}), [ae, A] = k(!1);
116
+ return E.forEach((_) => {
117
+ ["buttons", "divider", "heading"].includes(_.type) || (_.defaultValue !== void 0 ? d[_.name] = _.defaultValue : _.type === "checkbox" ? d[_.name] = !1 : d[_.name] = "");
118
+ }), (L = h.data) != null && L.defaults && Object.assign(d, h.data.defaults), d;
119
+ }), [U, R] = w({}), [ae, S] = w(!1);
120
120
  z(() => {
121
- P(x);
121
+ T(x);
122
122
  }, [x]), z(() => {
123
- var C;
123
+ var L;
124
124
  const d = {};
125
- E.forEach((y) => {
126
- ["buttons", "divider", "heading"].includes(y.type) || (y.defaultValue !== void 0 ? d[y.name] = y.defaultValue : y.type === "checkbox" ? d[y.name] = !1 : d[y.name] = "");
127
- }), (C = h.data) != null && C.defaults && Object.assign(d, h.data.defaults), q(d), R({});
125
+ E.forEach((_) => {
126
+ ["buttons", "divider", "heading"].includes(_.type) || (_.defaultValue !== void 0 ? d[_.name] = _.defaultValue : _.type === "checkbox" ? d[_.name] = !1 : d[_.name] = "");
127
+ }), (L = h.data) != null && L.defaults && Object.assign(d, h.data.defaults), q(d), R({});
128
128
  }, [t.code]), z(() => {
129
- if (o.current && (o.current.setAttribute("data-artifactuse-theme", m), r)) {
130
- const d = Ot(r);
131
- d && o.current.style.setProperty("--artifactuse-primary", d);
129
+ if (m.current && (m.current.setAttribute("data-artifactuse-theme", i), r)) {
130
+ const d = Jt(r);
131
+ d && m.current.style.setProperty("--artifactuse-primary", d);
132
132
  }
133
- }, [m, r]);
133
+ }, [i, r]);
134
134
  const j = p((d) => {
135
- P(d);
136
- }, []), ue = p((d, C) => {
137
- q((y) => ({ ...y, [d]: C })), R((y) => {
138
- const v = { ...y };
135
+ T(d);
136
+ }, []), ue = p((d, L) => {
137
+ q((_) => ({ ..._, [d]: L })), R((_) => {
138
+ const v = { ..._ };
139
139
  return delete v[d], v;
140
140
  });
141
141
  }, []), re = p(() => {
142
- var y;
142
+ var _;
143
143
  const d = {};
144
144
  E.forEach((v) => {
145
145
  if (["buttons", "divider", "heading"].includes(v.type)) return;
146
- const T = S[v.name];
147
- if (v.required && !T && T !== 0 && T !== !1) {
146
+ const P = A[v.name];
147
+ if (v.required && !P && P !== 0 && P !== !1) {
148
148
  d[v.name] = `${v.label || "This field"} is required`;
149
149
  return;
150
150
  }
151
- if (v.pattern && T && !new RegExp(v.pattern).test(T)) {
151
+ if (v.pattern && P && !new RegExp(v.pattern).test(P)) {
152
152
  d[v.name] = v.patternMessage || `${v.label || "This field"} is invalid`;
153
153
  return;
154
154
  }
155
- if (v.type === "email" && T && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(T)) {
155
+ if (v.type === "email" && P && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(P)) {
156
156
  d[v.name] = "Please enter a valid email address";
157
157
  return;
158
158
  }
159
- if (v.minLength && T && T.length < v.minLength) {
159
+ if (v.minLength && P && P.length < v.minLength) {
160
160
  d[v.name] = `Minimum ${v.minLength} characters required`;
161
161
  return;
162
162
  }
163
- if (v.maxLength && T && T.length > v.maxLength) {
163
+ if (v.maxLength && P && P.length > v.maxLength) {
164
164
  d[v.name] = `Maximum ${v.maxLength} characters allowed`;
165
165
  return;
166
166
  }
167
167
  });
168
- const C = (y = h.data) == null ? void 0 : y.validation;
169
- return C && Object.entries(C).forEach(([v, T]) => {
168
+ const L = (_ = h.data) == null ? void 0 : _.validation;
169
+ return L && Object.entries(L).forEach(([v, P]) => {
170
170
  if (d[v]) return;
171
- const G = S[v];
172
- T.pattern && G && (new RegExp(T.pattern).test(G) || (d[v] = T.message || `${v} is invalid`));
171
+ const G = A[v];
172
+ P.pattern && G && (new RegExp(P.pattern).test(G) || (d[v] = P.message || `${v} is invalid`));
173
173
  }), R(d), Object.keys(d).length === 0;
174
- }, [E, S, (Q = h.data) == null ? void 0 : Q.validation]), me = p(() => {
175
- var C;
174
+ }, [E, A, (Q = h.data) == null ? void 0 : Q.validation]), de = p(() => {
175
+ var L;
176
176
  const d = {};
177
- E.forEach((y) => {
178
- ["buttons", "divider", "heading"].includes(y.type) || (y.defaultValue !== void 0 ? d[y.name] = y.defaultValue : y.type === "checkbox" ? d[y.name] = !1 : d[y.name] = "");
179
- }), (C = h.data) != null && C.defaults && Object.assign(d, h.data.defaults), q(d), R({});
180
- }, [E, (pe = h.data) == null ? void 0 : pe.defaults]), de = p((d) => {
181
- d == null || d.preventDefault(), re() && (A(!0), a == null || a({
177
+ E.forEach((_) => {
178
+ ["buttons", "divider", "heading"].includes(_.type) || (_.defaultValue !== void 0 ? d[_.name] = _.defaultValue : _.type === "checkbox" ? d[_.name] = !1 : d[_.name] = "");
179
+ }), (L = h.data) != null && L.defaults && Object.assign(d, h.data.defaults), q(d), R({});
180
+ }, [E, (Ee = h.data) == null ? void 0 : Ee.defaults]), fe = p((d) => {
181
+ d == null || d.preventDefault(), re() && (S(!0), a == null || a({
182
182
  formId: c,
183
183
  action: "submit",
184
- values: { ...S },
184
+ values: { ...A },
185
185
  timestamp: Date.now()
186
186
  }), setTimeout(() => {
187
- A(!1), j("submitted");
187
+ S(!1), j("submitted");
188
188
  }, 300));
189
- }, [c, S, a, re, j]), fe = p((d) => {
190
- const C = d.action || "custom";
191
- switch (C) {
189
+ }, [c, A, a, re, j]), pe = p((d) => {
190
+ const L = d.action || "custom";
191
+ switch (L) {
192
192
  case "submit":
193
- de();
193
+ fe();
194
194
  break;
195
195
  case "cancel":
196
196
  l == null || l({
@@ -203,7 +203,7 @@ function Xt({
203
203
  }, 150);
204
204
  break;
205
205
  case "reset":
206
- me(), n == null || n({
206
+ de(), n == null || n({
207
207
  formId: c,
208
208
  action: "reset",
209
209
  buttonName: d.name || "reset",
@@ -212,42 +212,42 @@ function Xt({
212
212
  break;
213
213
  case "custom":
214
214
  default:
215
- i == null || i({
215
+ o == null || o({
216
216
  formId: c,
217
- action: C,
217
+ action: L,
218
218
  buttonName: d.name || d.label,
219
219
  buttonLabel: d.label,
220
- values: { ...S },
220
+ values: { ...A },
221
221
  timestamp: Date.now()
222
222
  }), setTimeout(() => {
223
223
  j("submitted");
224
224
  }, 150);
225
225
  break;
226
226
  }
227
- }, [c, S, de, l, n, i, me, j]);
228
- return L ? /* @__PURE__ */ e.createElement(
227
+ }, [c, A, fe, l, n, o, de, j]);
228
+ return M ? /* @__PURE__ */ e.createElement(
229
229
  "div",
230
230
  {
231
- ref: o,
231
+ ref: m,
232
232
  className: `artifactuse-inline-form artifactuse-form-${h.variant || "fields"} ${$} ${u}`,
233
- "data-artifactuse-theme": m
233
+ "data-artifactuse-theme": i
234
234
  },
235
- /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-collapsed" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-collapsed-icon" }, w === "submitted" && /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ e.createElement("polyline", { points: "20 6 9 17 4 12" })), w === "cancelled" && /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ e.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), /* @__PURE__ */ e.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })), w === "inactive" && /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ e.createElement("line", { x1: "5", y1: "12", x2: "19", y2: "12" }))), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-form-collapsed-title" }, g))
235
+ /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-collapsed" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-collapsed-icon" }, k === "submitted" && /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ e.createElement("polyline", { points: "20 6 9 17 4 12" })), k === "cancelled" && /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ e.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), /* @__PURE__ */ e.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })), k === "inactive" && /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ e.createElement("line", { x1: "5", y1: "12", x2: "19", y2: "12" }))), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-form-collapsed-title" }, g))
236
236
  ) : h.variant === "buttons" ? /* @__PURE__ */ e.createElement(
237
237
  "div",
238
238
  {
239
- ref: o,
239
+ ref: m,
240
240
  className: `artifactuse-inline-form artifactuse-form-buttons ${u}`,
241
- "data-artifactuse-theme": m
241
+ "data-artifactuse-theme": i
242
242
  },
243
243
  (h.title || h.description) && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-header" }, h.title && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-title" }, h.title), h.description && /* @__PURE__ */ e.createElement("p", { className: "artifactuse-form-description" }, h.description)),
244
- /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-buttons" }, J.map((d, C) => /* @__PURE__ */ e.createElement(
244
+ /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-buttons" }, J.map((d, L) => /* @__PURE__ */ e.createElement(
245
245
  "button",
246
246
  {
247
- key: d.name || d.label || C,
247
+ key: d.name || d.label || L,
248
248
  type: "button",
249
249
  className: `artifactuse-form-btn artifactuse-form-btn-${d.variant || "secondary"}`,
250
- onClick: () => fe(d),
250
+ onClick: () => pe(d),
251
251
  disabled: d.disabled || ae
252
252
  },
253
253
  d.icon && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-form-btn-icon", dangerouslySetInnerHTML: { __html: d.icon } }),
@@ -256,29 +256,29 @@ function Xt({
256
256
  ) : /* @__PURE__ */ e.createElement(
257
257
  "div",
258
258
  {
259
- ref: o,
259
+ ref: m,
260
260
  className: `artifactuse-inline-form artifactuse-form-fields ${u}`,
261
- "data-artifactuse-theme": m
261
+ "data-artifactuse-theme": i
262
262
  },
263
263
  (h.title || h.description) && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-header" }, h.title && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-title" }, h.title), h.description && /* @__PURE__ */ e.createElement("p", { className: "artifactuse-form-description" }, h.description)),
264
- /* @__PURE__ */ e.createElement("form", { onSubmit: de, className: "artifactuse-form" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-fields" }, E.map((d, C) => /* @__PURE__ */ e.createElement(
265
- Zt,
264
+ /* @__PURE__ */ e.createElement("form", { onSubmit: fe, className: "artifactuse-form" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-fields" }, E.map((d, L) => /* @__PURE__ */ e.createElement(
265
+ Kt,
266
266
  {
267
- key: d.name || C,
267
+ key: d.name || L,
268
268
  field: d,
269
269
  formId: c,
270
- value: S[d.name],
270
+ value: A[d.name],
271
271
  error: U[d.name],
272
272
  isSubmitting: ae,
273
- onChange: (y) => ue(d.name, y),
274
- onButtonAction: fe
273
+ onChange: (_) => ue(d.name, _),
274
+ onButtonAction: pe
275
275
  }
276
276
  ))), !D && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-buttons artifactuse-form-buttons-default" }, /* @__PURE__ */ e.createElement(
277
277
  "button",
278
278
  {
279
279
  type: "button",
280
280
  className: "artifactuse-form-btn artifactuse-form-btn-ghost",
281
- onClick: () => fe({ action: "cancel", label: "Cancel" })
281
+ onClick: () => pe({ action: "cancel", label: "Cancel" })
282
282
  },
283
283
  "Cancel"
284
284
  ), /* @__PURE__ */ e.createElement(
@@ -293,20 +293,20 @@ function Xt({
293
293
  )))
294
294
  );
295
295
  }
296
- function Zt({ field: t, formId: a, value: l, error: n, isSubmitting: i, onChange: u, onButtonAction: m }) {
296
+ function Kt({ field: t, formId: a, value: l, error: n, isSubmitting: o, onChange: u, onButtonAction: i }) {
297
297
  const r = `${a}-${t.name}`;
298
298
  if (t.type === "buttons")
299
- return /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-buttons" }, (t.fields || []).map((o, w) => /* @__PURE__ */ e.createElement(
299
+ return /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-buttons" }, (t.fields || []).map((m, k) => /* @__PURE__ */ e.createElement(
300
300
  "button",
301
301
  {
302
- key: o.name || o.label || w,
303
- type: o.action === "submit" ? "submit" : "button",
304
- className: `artifactuse-form-btn artifactuse-form-btn-${o.variant || "secondary"}`,
305
- onClick: o.action !== "submit" ? () => m(o) : void 0,
306
- disabled: o.disabled || o.action === "submit" && i
302
+ key: m.name || m.label || k,
303
+ type: m.action === "submit" ? "submit" : "button",
304
+ className: `artifactuse-form-btn artifactuse-form-btn-${m.variant || "secondary"}`,
305
+ onClick: m.action !== "submit" ? () => i(m) : void 0,
306
+ disabled: m.disabled || m.action === "submit" && o
307
307
  },
308
- i && o.action === "submit" ? /* @__PURE__ */ e.createElement("span", { className: "artifactuse-form-btn-spinner" }) : o.icon ? /* @__PURE__ */ e.createElement("span", { className: "artifactuse-form-btn-icon", dangerouslySetInnerHTML: { __html: o.icon } }) : null,
309
- i && o.action === "submit" ? "Submitting..." : o.label
308
+ o && m.action === "submit" ? /* @__PURE__ */ e.createElement("span", { className: "artifactuse-form-btn-spinner" }) : m.icon ? /* @__PURE__ */ e.createElement("span", { className: "artifactuse-form-btn-icon", dangerouslySetInnerHTML: { __html: m.icon } }) : null,
309
+ o && m.action === "submit" ? "Submitting..." : m.label
310
310
  )));
311
311
  if (t.type === "divider")
312
312
  return /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-divider" });
@@ -322,23 +322,23 @@ function Zt({ field: t, formId: a, value: l, error: n, isSubmitting: i, onChange
322
322
  checked: l || !1,
323
323
  disabled: t.disabled,
324
324
  className: "artifactuse-checkbox",
325
- onChange: (o) => u(o.target.checked)
325
+ onChange: (m) => u(m.target.checked)
326
326
  }
327
327
  ), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-checkbox-text" }, t.label, t.required && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-required" }, "*"))), t.helpText && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-help-text" }, t.helpText), n && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-error-text" }, n));
328
328
  if (t.type === "radio")
329
- return /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-field" }, t.label && /* @__PURE__ */ e.createElement("label", { className: "artifactuse-label" }, t.label, t.required && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-required" }, "*")), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-radio-group" }, pt(t.options).map((o) => /* @__PURE__ */ e.createElement("label", { key: o.value, className: "artifactuse-radio-label" }, /* @__PURE__ */ e.createElement(
329
+ return /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-field" }, t.label && /* @__PURE__ */ e.createElement("label", { className: "artifactuse-label" }, t.label, t.required && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-required" }, "*")), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-radio-group" }, Et(t.options).map((m) => /* @__PURE__ */ e.createElement("label", { key: m.value, className: "artifactuse-radio-label" }, /* @__PURE__ */ e.createElement(
330
330
  "input",
331
331
  {
332
332
  type: "radio",
333
333
  name: t.name,
334
- value: o.value,
335
- checked: l === o.value,
336
- disabled: o.disabled || t.disabled,
334
+ value: m.value,
335
+ checked: l === m.value,
336
+ disabled: m.disabled || t.disabled,
337
337
  className: "artifactuse-radio",
338
- onChange: () => u(o.value)
338
+ onChange: () => u(m.value)
339
339
  }
340
- ), /* @__PURE__ */ e.createElement("span", null, o.label)))), t.helpText && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-help-text" }, t.helpText), n && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-error-text" }, n));
341
- const x = () => Jt(t.type) ? /* @__PURE__ */ e.createElement(
340
+ ), /* @__PURE__ */ e.createElement("span", null, m.label)))), t.helpText && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-help-text" }, t.helpText), n && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-error-text" }, n));
341
+ const x = () => Xt(t.type) ? /* @__PURE__ */ e.createElement(
342
342
  "input",
343
343
  {
344
344
  type: t.type,
@@ -349,7 +349,7 @@ function Zt({ field: t, formId: a, value: l, error: n, isSubmitting: i, onChange
349
349
  disabled: t.disabled,
350
350
  required: t.required,
351
351
  className: "artifactuse-input",
352
- onChange: (o) => u(t.type === "number" ? Number(o.target.value) : o.target.value)
352
+ onChange: (m) => u(t.type === "number" ? Number(m.target.value) : m.target.value)
353
353
  }
354
354
  ) : t.type === "textarea" ? /* @__PURE__ */ e.createElement(
355
355
  "textarea",
@@ -362,7 +362,7 @@ function Zt({ field: t, formId: a, value: l, error: n, isSubmitting: i, onChange
362
362
  required: t.required,
363
363
  rows: t.rows || 3,
364
364
  className: "artifactuse-textarea",
365
- onChange: (o) => u(o.target.value)
365
+ onChange: (m) => u(m.target.value)
366
366
  }
367
367
  ) : t.type === "select" ? /* @__PURE__ */ e.createElement(
368
368
  "select",
@@ -373,10 +373,10 @@ function Zt({ field: t, formId: a, value: l, error: n, isSubmitting: i, onChange
373
373
  disabled: t.disabled,
374
374
  required: t.required,
375
375
  className: "artifactuse-select",
376
- onChange: (o) => u(o.target.value)
376
+ onChange: (m) => u(m.target.value)
377
377
  },
378
378
  /* @__PURE__ */ e.createElement("option", { value: "" }, t.placeholder || "Select..."),
379
- pt(t.options).map((o) => /* @__PURE__ */ e.createElement("option", { key: o.value, value: o.value, disabled: o.disabled }, o.label))
379
+ Et(t.options).map((m) => /* @__PURE__ */ e.createElement("option", { key: m.value, value: m.value, disabled: m.disabled }, m.label))
380
380
  ) : /* @__PURE__ */ e.createElement(
381
381
  "input",
382
382
  {
@@ -386,12 +386,12 @@ function Zt({ field: t, formId: a, value: l, error: n, isSubmitting: i, onChange
386
386
  value: l || "",
387
387
  disabled: t.disabled,
388
388
  className: "artifactuse-input",
389
- onChange: (o) => u(o.target.value)
389
+ onChange: (m) => u(m.target.value)
390
390
  }
391
391
  );
392
392
  return /* @__PURE__ */ e.createElement("div", { className: "artifactuse-form-field" }, /* @__PURE__ */ e.createElement("label", { htmlFor: r, className: "artifactuse-label" }, t.label, t.required && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-required" }, "*")), x(), t.helpText && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-help-text" }, t.helpText), n && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-error-text" }, n));
393
393
  }
394
- const O = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23888"><circle cx="12" cy="8" r="4"/><path d="M12 14c-6 0-8 3-8 6v2h16v-2c0-3-2-6-8-6z"/></svg>', Kt = {
394
+ const O = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23888"><circle cx="12" cy="8" r="4"/><path d="M12 14c-6 0-8 3-8 6v2h16v-2c0-3-2-6-8-6z"/></svg>', Yt = {
395
395
  twitter: 280,
396
396
  linkedin: 3e3,
397
397
  instagram: 2200,
@@ -399,7 +399,7 @@ const O = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0
399
399
  threads: 500,
400
400
  tiktok: 2200,
401
401
  youtube: 100
402
- }, Yt = {
402
+ }, Qt = {
403
403
  twitter: "X",
404
404
  linkedin: "LinkedIn",
405
405
  instagram: "Instagram",
@@ -407,7 +407,7 @@ const O = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0
407
407
  threads: "Threads",
408
408
  tiktok: "TikTok",
409
409
  youtube: "YouTube"
410
- }, je = ({ type: t = "blue" }) => /* @__PURE__ */ e.createElement("svg", { className: `artifactuse-social-verified artifactuse-social-verified-${t}`, viewBox: "0 0 24 24", fill: "currentColor" }, /* @__PURE__ */ e.createElement("path", { d: "M22.25 12c0-1.43-.88-2.67-2.19-3.34.46-1.39.2-2.9-.81-3.91s-2.52-1.27-3.91-.81c-.66-1.31-1.91-2.19-3.34-2.19s-2.67.88-3.34 2.19c-1.39-.46-2.9-.2-3.91.81s-1.27 2.52-.81 3.91C2.63 9.33 1.75 10.57 1.75 12s.88 2.67 2.19 3.34c-.46 1.39-.2 2.9.81 3.91s2.52 1.27 3.91.81c.66 1.31 1.91 2.19 3.34 2.19s2.67-.88 3.34-2.19c1.39.46 2.9.2 3.91-.81s1.27-2.52.81-3.91c1.31-.67 2.19-1.91 2.19-3.34zm-11.71 4.2L6.8 12.46l1.41-1.42 2.26 2.26 4.8-5.23 1.47 1.36-6.2 6.77z" })), F = (t) => t ? t >= 1e6 ? `${(t / 1e6).toFixed(1)}M` : t >= 1e3 ? `${(t / 1e3).toFixed(1)}K` : t.toString() : "0", st = (t) => {
410
+ }, je = ({ type: t = "blue" }) => /* @__PURE__ */ e.createElement("svg", { className: `artifactuse-social-verified artifactuse-social-verified-${t}`, viewBox: "0 0 24 24", fill: "currentColor" }, /* @__PURE__ */ e.createElement("path", { d: "M22.25 12c0-1.43-.88-2.67-2.19-3.34.46-1.39.2-2.9-.81-3.91s-2.52-1.27-3.91-.81c-.66-1.31-1.91-2.19-3.34-2.19s-2.67.88-3.34 2.19c-1.39-.46-2.9-.2-3.91.81s-1.27 2.52-.81 3.91C2.63 9.33 1.75 10.57 1.75 12s.88 2.67 2.19 3.34c-.46 1.39-.2 2.9.81 3.91s2.52 1.27 3.91.81c.66 1.31 1.91 2.19 3.34 2.19s2.67-.88 3.34-2.19c1.39.46 2.9.2 3.91-.81s1.27-2.52.81-3.91c1.31-.67 2.19-1.91 2.19-3.34zm-11.71 4.2L6.8 12.46l1.41-1.42 2.26 2.26 4.8-5.23 1.47 1.36-6.2 6.77z" })), V = (t) => t ? t >= 1e6 ? `${(t / 1e6).toFixed(1)}M` : t >= 1e3 ? `${(t / 1e3).toFixed(1)}K` : t.toString() : "0", st = (t) => {
411
411
  try {
412
412
  return new URL(t).hostname.replace("www.", "");
413
413
  } catch {
@@ -417,83 +417,83 @@ const O = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0
417
417
  if (!t) return "";
418
418
  let a = t.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
419
419
  return a = a.replace(/\n/g, "<br>"), a = a.replace(/#(\w+)/g, '<span class="artifactuse-social-hashtag">#$1</span>'), a = a.replace(/@(\w+)/g, '<span class="artifactuse-social-mention">@$1</span>'), a;
420
- }, Et = ({ author: t, content: a, engagement: l, meta: n }) => {
421
- var m, r, x;
422
- const i = a.media || [], u = l.likes || l.retweets || l.replies || l.views;
423
- return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-header" }, /* @__PURE__ */ e.createElement("img", { src: t.avatar || O, alt: t.name, className: "artifactuse-social-avatar", onError: (o) => o.target.src = O }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author-name" }, /* @__PURE__ */ e.createElement("span", null, t.name), t.verified && /* @__PURE__ */ e.createElement(je, { type: t.verifiedType || "blue" })), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author-meta" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-author-handle" }, t.handle), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-timestamp" }, "· ", n.timestamp || "Just now")))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-content" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-social-text", dangerouslySetInnerHTML: { __html: Me(a.text) } }), i.length > 0 && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-media" }, /* @__PURE__ */ e.createElement("div", { className: `artifactuse-social-media-grid ${i.length === 1 ? "artifactuse-social-media-single" : ""}`, "data-count": i.length }, i.slice(0, 4).map((o, w) => /* @__PURE__ */ e.createElement("img", { key: w, src: o.url, alt: o.alt || "", onError: (P) => P.target.style.display = "none" })))), a.link && !i.length && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-card" }, a.link.image && /* @__PURE__ */ e.createElement("img", { src: a.link.image, alt: a.link.title, className: "artifactuse-social-link-image", onError: (o) => o.target.style.display = "none" }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-info" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-domain" }, a.link.domain || st(a.link.url)), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-title" }, a.link.title), a.link.description && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-description" }, a.link.description))), a.poll && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-poll" }, a.poll.options.map((o, w) => {
424
- var P, L;
425
- return /* @__PURE__ */ e.createElement("div", { key: w, className: "artifactuse-social-poll-option" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-poll-bar", style: { width: `${((P = a.poll.votes) == null ? void 0 : P[w]) || 0}%` } }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-poll-label" }, /* @__PURE__ */ e.createElement("span", null, o), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-poll-percent" }, ((L = a.poll.votes) == null ? void 0 : L[w]) || 0, "%")));
426
- }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-poll-meta" }, F(a.poll.totalVotes || 0), " votes · ", a.poll.duration || "Poll ended")), a.quote && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-quote" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-quote-header" }, /* @__PURE__ */ e.createElement("img", { src: ((m = a.quote.author) == null ? void 0 : m.avatar) || O, className: "artifactuse-social-quote-avatar", alt: "" }), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-quote-author" }, (r = a.quote.author) == null ? void 0 : r.name), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-quote-handle" }, (x = a.quote.author) == null ? void 0 : x.handle)), /* @__PURE__ */ e.createElement("p", { className: "artifactuse-social-quote-text" }, a.quote.text))), u && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-engagement" }, /* @__PURE__ */ e.createElement("span", null, F(l.replies || 0), " replies"), /* @__PURE__ */ e.createElement("span", null, F(l.retweets || 0), " reposts"), /* @__PURE__ */ e.createElement("span", null, F(l.likes || 0), " likes"), /* @__PURE__ */ e.createElement("span", null, F(l.views || 0), " views")));
427
- }, Qt = ({ author: t, content: a, engagement: l, meta: n }) => {
428
- const i = l.likes || l.comments || l.shares || l.reposts;
429
- return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-header" }, /* @__PURE__ */ e.createElement("img", { src: t.avatar || O, alt: t.name, className: "artifactuse-social-avatar", onError: (u) => u.target.src = O }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author-info" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author-name" }, t.name, t.connection && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-author-connection" }, "· ", t.connection)), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author-headline" }, t.headline), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-timestamp" }, n.timestamp || "Just now", " · 🌐"))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-content" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-social-text", dangerouslySetInnerHTML: { __html: Me(a.text) } }), a.link && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-card" }, a.link.image && /* @__PURE__ */ e.createElement("img", { src: a.link.image, alt: a.link.title, className: "artifactuse-social-link-image", onError: (u) => u.target.style.display = "none" }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-info" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-title" }, a.link.title), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-domain" }, a.link.domain || st(a.link.url))))), i && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-engagement" }, /* @__PURE__ */ e.createElement("span", null, F(l.likes || 0), " reactions"), /* @__PURE__ */ e.createElement("span", null, F(l.comments || 0), " comments"), /* @__PURE__ */ e.createElement("span", null, F(l.shares || l.reposts || 0), " reposts")));
420
+ }, vt = ({ author: t, content: a, engagement: l, meta: n }) => {
421
+ var i, r, x;
422
+ const o = a.media || [], u = l.likes || l.retweets || l.replies || l.views;
423
+ return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-header" }, /* @__PURE__ */ e.createElement("img", { src: t.avatar || O, alt: t.name, className: "artifactuse-social-avatar", onError: (m) => m.target.src = O }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author-name" }, /* @__PURE__ */ e.createElement("span", null, t.name), t.verified && /* @__PURE__ */ e.createElement(je, { type: t.verifiedType || "blue" })), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author-meta" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-author-handle" }, t.handle), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-timestamp" }, "· ", n.timestamp || "Just now")))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-content" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-social-text", dangerouslySetInnerHTML: { __html: Me(a.text) } }), o.length > 0 && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-media" }, /* @__PURE__ */ e.createElement("div", { className: `artifactuse-social-media-grid ${o.length === 1 ? "artifactuse-social-media-single" : ""}`, "data-count": o.length }, o.slice(0, 4).map((m, k) => /* @__PURE__ */ e.createElement("img", { key: k, src: m.url, alt: m.alt || "", onError: (T) => T.target.style.display = "none" })))), a.link && !o.length && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-card" }, a.link.image && /* @__PURE__ */ e.createElement("img", { src: a.link.image, alt: a.link.title, className: "artifactuse-social-link-image", onError: (m) => m.target.style.display = "none" }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-info" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-domain" }, a.link.domain || st(a.link.url)), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-title" }, a.link.title), a.link.description && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-description" }, a.link.description))), a.poll && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-poll" }, a.poll.options.map((m, k) => {
424
+ var T, M;
425
+ return /* @__PURE__ */ e.createElement("div", { key: k, className: "artifactuse-social-poll-option" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-poll-bar", style: { width: `${((T = a.poll.votes) == null ? void 0 : T[k]) || 0}%` } }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-poll-label" }, /* @__PURE__ */ e.createElement("span", null, m), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-poll-percent" }, ((M = a.poll.votes) == null ? void 0 : M[k]) || 0, "%")));
426
+ }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-poll-meta" }, V(a.poll.totalVotes || 0), " votes · ", a.poll.duration || "Poll ended")), a.quote && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-quote" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-quote-header" }, /* @__PURE__ */ e.createElement("img", { src: ((i = a.quote.author) == null ? void 0 : i.avatar) || O, className: "artifactuse-social-quote-avatar", alt: "" }), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-quote-author" }, (r = a.quote.author) == null ? void 0 : r.name), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-quote-handle" }, (x = a.quote.author) == null ? void 0 : x.handle)), /* @__PURE__ */ e.createElement("p", { className: "artifactuse-social-quote-text" }, a.quote.text))), u && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-engagement" }, /* @__PURE__ */ e.createElement("span", null, V(l.replies || 0), " replies"), /* @__PURE__ */ e.createElement("span", null, V(l.retweets || 0), " reposts"), /* @__PURE__ */ e.createElement("span", null, V(l.likes || 0), " likes"), /* @__PURE__ */ e.createElement("span", null, V(l.views || 0), " views")));
430
427
  }, Gt = ({ author: t, content: a, engagement: l, meta: n }) => {
431
- const i = a.media || [];
432
- return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-header" }, /* @__PURE__ */ e.createElement("img", { src: t.avatar || O, alt: t.name, className: "artifactuse-social-avatar", onError: (u) => u.target.src = O }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author-name" }, t.name, t.verified && /* @__PURE__ */ e.createElement(je, { type: "blue" })), n.location && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-location" }, n.location))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-media" }, i[0] ? /* @__PURE__ */ e.createElement("img", { src: i[0].url, alt: i[0].alt || "", onError: (u) => u.target.style.display = "none" }) : /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-media-placeholder" })), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-likes" }, F(l.likes || 0), " likes"), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-caption" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-caption-author" }, t.name), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-caption-text", dangerouslySetInnerHTML: { __html: Me(a.text) } })), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-timestamp" }, n.timestamp || "JUST NOW"));
428
+ const o = l.likes || l.comments || l.shares || l.reposts;
429
+ return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-header" }, /* @__PURE__ */ e.createElement("img", { src: t.avatar || O, alt: t.name, className: "artifactuse-social-avatar", onError: (u) => u.target.src = O }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author-info" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author-name" }, t.name, t.connection && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-author-connection" }, "· ", t.connection)), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author-headline" }, t.headline), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-timestamp" }, n.timestamp || "Just now", " · 🌐"))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-content" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-social-text", dangerouslySetInnerHTML: { __html: Me(a.text) } }), a.link && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-card" }, a.link.image && /* @__PURE__ */ e.createElement("img", { src: a.link.image, alt: a.link.title, className: "artifactuse-social-link-image", onError: (u) => u.target.style.display = "none" }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-info" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-title" }, a.link.title), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-domain" }, a.link.domain || st(a.link.url))))), o && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-engagement" }, /* @__PURE__ */ e.createElement("span", null, V(l.likes || 0), " reactions"), /* @__PURE__ */ e.createElement("span", null, V(l.comments || 0), " comments"), /* @__PURE__ */ e.createElement("span", null, V(l.shares || l.reposts || 0), " reposts")));
433
430
  }, ea = ({ author: t, content: a, engagement: l, meta: n }) => {
434
- const i = a.media || [], u = M(() => {
435
- const r = l.reactions || {};
436
- return Object.values(r).reduce((x, o) => x + (o || 0), 0) || l.likes || 0;
437
- }, [l]), m = l.likes || l.comments || l.shares || u;
438
- return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-header" }, /* @__PURE__ */ e.createElement("img", { src: t.avatar || O, alt: t.name, className: "artifactuse-social-avatar", onError: (r) => r.target.src = O }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author-name" }, t.name), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-timestamp" }, n.timestamp || "Just now", " · 🌐"))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-content" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-social-text", dangerouslySetInnerHTML: { __html: Me(a.text) } }), i.length > 0 && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-media" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-media-grid", "data-count": i.length }, i.slice(0, 4).map((r, x) => /* @__PURE__ */ e.createElement("img", { key: x, src: r.url, alt: r.alt || "", onError: (o) => o.target.style.display = "none" })))), a.link && !i.length && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-card" }, a.link.image && /* @__PURE__ */ e.createElement("img", { src: a.link.image, alt: a.link.title, className: "artifactuse-social-link-image", onError: (r) => r.target.style.display = "none" }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-info" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-domain" }, a.link.domain || st(a.link.url)), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-title" }, a.link.title)))), m && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-engagement" }, /* @__PURE__ */ e.createElement("span", null, "👍❤️ ", F(u)), /* @__PURE__ */ e.createElement("span", null, F(l.comments || 0), " comments · ", F(l.shares || 0), " shares")));
431
+ const o = a.media || [];
432
+ return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-header" }, /* @__PURE__ */ e.createElement("img", { src: t.avatar || O, alt: t.name, className: "artifactuse-social-avatar", onError: (u) => u.target.src = O }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author-name" }, t.name, t.verified && /* @__PURE__ */ e.createElement(je, { type: "blue" })), n.location && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-location" }, n.location))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-media" }, o[0] ? /* @__PURE__ */ e.createElement("img", { src: o[0].url, alt: o[0].alt || "", onError: (u) => u.target.style.display = "none" }) : /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-media-placeholder" })), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-likes" }, V(l.likes || 0), " likes"), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-caption" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-caption-author" }, t.name), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-caption-text", dangerouslySetInnerHTML: { __html: Me(a.text) } })), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-timestamp" }, n.timestamp || "JUST NOW"));
439
433
  }, ta = ({ author: t, content: a, engagement: l, meta: n }) => {
440
- const i = l.likes || l.replies || l.reposts;
441
- return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-header" }, /* @__PURE__ */ e.createElement("img", { src: t.avatar || O, alt: t.name, className: "artifactuse-social-avatar", onError: (u) => u.target.src = O }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author-name" }, t.name, t.verified && /* @__PURE__ */ e.createElement(je, { type: "blue" }))), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-timestamp" }, n.timestamp || "Just now")), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-content" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-social-text", dangerouslySetInnerHTML: { __html: Me(a.text) } })), i && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-engagement" }, /* @__PURE__ */ e.createElement("span", null, F(l.likes || 0), " likes"), /* @__PURE__ */ e.createElement("span", null, F(l.replies || 0), " replies"), /* @__PURE__ */ e.createElement("span", null, F(l.reposts || 0), " reposts")));
434
+ const o = a.media || [], u = C(() => {
435
+ const r = l.reactions || {};
436
+ return Object.values(r).reduce((x, m) => x + (m || 0), 0) || l.likes || 0;
437
+ }, [l]), i = l.likes || l.comments || l.shares || u;
438
+ return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-header" }, /* @__PURE__ */ e.createElement("img", { src: t.avatar || O, alt: t.name, className: "artifactuse-social-avatar", onError: (r) => r.target.src = O }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author-name" }, t.name), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-timestamp" }, n.timestamp || "Just now", " · 🌐"))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-content" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-social-text", dangerouslySetInnerHTML: { __html: Me(a.text) } }), o.length > 0 && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-media" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-media-grid", "data-count": o.length }, o.slice(0, 4).map((r, x) => /* @__PURE__ */ e.createElement("img", { key: x, src: r.url, alt: r.alt || "", onError: (m) => m.target.style.display = "none" })))), a.link && !o.length && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-card" }, a.link.image && /* @__PURE__ */ e.createElement("img", { src: a.link.image, alt: a.link.title, className: "artifactuse-social-link-image", onError: (r) => r.target.style.display = "none" }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-info" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-domain" }, a.link.domain || st(a.link.url)), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-link-title" }, a.link.title)))), i && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-engagement" }, /* @__PURE__ */ e.createElement("span", null, "👍❤️ ", V(u)), /* @__PURE__ */ e.createElement("span", null, V(l.comments || 0), " comments · ", V(l.shares || 0), " shares")));
442
439
  }, aa = ({ author: t, content: a, engagement: l, meta: n }) => {
443
- const i = a.media || [], u = l.likes || l.comments || l.shares;
444
- return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-thumbnail" }, i[0] ? /* @__PURE__ */ e.createElement("img", { src: i[0].url, alt: "Video thumbnail", onError: (m) => m.target.style.display = "none" }) : /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-thumbnail-placeholder" }), a.duration && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-duration" }, a.duration)), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-info" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-header" }, /* @__PURE__ */ e.createElement("img", { src: t.avatar || O, alt: t.name, className: "artifactuse-social-avatar", onError: (m) => m.target.src = O }), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-author-name" }, "@", t.name), t.verified && /* @__PURE__ */ e.createElement(je, { type: "blue" })), /* @__PURE__ */ e.createElement("p", { className: "artifactuse-social-text", dangerouslySetInnerHTML: { __html: Me(a.text) } }), a.sound && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-sound" }, "🎵 ", a.sound)), u && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-engagement" }, /* @__PURE__ */ e.createElement("span", null, F(l.likes || 0), " likes"), /* @__PURE__ */ e.createElement("span", null, F(l.comments || 0), " comments"), /* @__PURE__ */ e.createElement("span", null, F(l.shares || 0), " shares")));
440
+ const o = l.likes || l.replies || l.reposts;
441
+ return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-header" }, /* @__PURE__ */ e.createElement("img", { src: t.avatar || O, alt: t.name, className: "artifactuse-social-avatar", onError: (u) => u.target.src = O }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-author-name" }, t.name, t.verified && /* @__PURE__ */ e.createElement(je, { type: "blue" }))), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-timestamp" }, n.timestamp || "Just now")), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-content" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-social-text", dangerouslySetInnerHTML: { __html: Me(a.text) } })), o && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-engagement" }, /* @__PURE__ */ e.createElement("span", null, V(l.likes || 0), " likes"), /* @__PURE__ */ e.createElement("span", null, V(l.replies || 0), " replies"), /* @__PURE__ */ e.createElement("span", null, V(l.reposts || 0), " reposts")));
445
442
  }, ra = ({ author: t, content: a, engagement: l, meta: n }) => {
446
- const i = a.media || [];
447
- return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-thumbnail" }, i[0] ? /* @__PURE__ */ e.createElement("img", { src: i[0].url, alt: "Video thumbnail", onError: (u) => u.target.style.display = "none" }) : /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-thumbnail-placeholder" }), a.duration && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-duration" }, a.duration)), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-info" }, /* @__PURE__ */ e.createElement("img", { src: t.avatar || O, alt: t.name, className: "artifactuse-social-avatar", onError: (u) => u.target.src = O }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-details" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-title" }, a.title), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-channel" }, t.name), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-meta" }, F(l.views || 0), " views · ", n.timestamp || "Just now"))));
443
+ const o = a.media || [], u = l.likes || l.comments || l.shares;
444
+ return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-thumbnail" }, o[0] ? /* @__PURE__ */ e.createElement("img", { src: o[0].url, alt: "Video thumbnail", onError: (i) => i.target.style.display = "none" }) : /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-thumbnail-placeholder" }), a.duration && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-duration" }, a.duration)), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-info" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-header" }, /* @__PURE__ */ e.createElement("img", { src: t.avatar || O, alt: t.name, className: "artifactuse-social-avatar", onError: (i) => i.target.src = O }), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-social-author-name" }, "@", t.name), t.verified && /* @__PURE__ */ e.createElement(je, { type: "blue" })), /* @__PURE__ */ e.createElement("p", { className: "artifactuse-social-text", dangerouslySetInnerHTML: { __html: Me(a.text) } }), a.sound && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-sound" }, "🎵 ", a.sound)), u && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-engagement" }, /* @__PURE__ */ e.createElement("span", null, V(l.likes || 0), " likes"), /* @__PURE__ */ e.createElement("span", null, V(l.comments || 0), " comments"), /* @__PURE__ */ e.createElement("span", null, V(l.shares || 0), " shares")));
445
+ }, sa = ({ author: t, content: a, engagement: l, meta: n }) => {
446
+ const o = a.media || [];
447
+ return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-thumbnail" }, o[0] ? /* @__PURE__ */ e.createElement("img", { src: o[0].url, alt: "Video thumbnail", onError: (u) => u.target.style.display = "none" }) : /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-thumbnail-placeholder" }), a.duration && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-duration" }, a.duration)), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-info" }, /* @__PURE__ */ e.createElement("img", { src: t.avatar || O, alt: t.name, className: "artifactuse-social-avatar", onError: (u) => u.target.src = O }), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-details" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-title" }, a.title), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-channel" }, t.name), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-meta" }, V(l.views || 0), " views · ", n.timestamp || "Just now"))));
448
448
  };
449
- function sa({ artifact: t, theme: a = "dark", onCopy: l }) {
450
- const [n, i] = k("Copy"), u = M(() => {
449
+ function na({ artifact: t, theme: a = "dark", onCopy: l }) {
450
+ const [n, o] = w("Copy"), u = C(() => {
451
451
  try {
452
452
  return JSON.parse(t.code);
453
453
  } catch {
454
454
  return { platform: "twitter", data: {} };
455
455
  }
456
- }, [t.code]), m = (u == null ? void 0 : u.platform) || "twitter", r = (u == null ? void 0 : u.data) || {}, { author: x = {}, content: o = {}, engagement: w = {}, meta: P = {} } = r, L = Kt[m] || 280, $ = (o.text || "").length, h = $ > L ? "error" : $ > L * 0.9 ? "warning" : "", c = p(() => {
457
- const g = o.text || "";
456
+ }, [t.code]), i = (u == null ? void 0 : u.platform) || "twitter", r = (u == null ? void 0 : u.data) || {}, { author: x = {}, content: m = {}, engagement: k = {}, meta: T = {} } = r, M = Yt[i] || 280, $ = (m.text || "").length, h = $ > M ? "error" : $ > M * 0.9 ? "warning" : "", c = p(() => {
457
+ const g = m.text || "";
458
458
  navigator.clipboard.writeText(g).then(() => {
459
- i("Copied!"), setTimeout(() => i("Copy"), 2e3), l == null || l({ platform: m, text: g });
459
+ o("Copied!"), setTimeout(() => o("Copy"), 2e3), l == null || l({ platform: i, text: g });
460
460
  });
461
- }, [o.text, m, l]), E = () => {
462
- const g = { author: x, content: o, engagement: w, meta: P };
463
- switch (m) {
461
+ }, [m.text, i, l]), E = () => {
462
+ const g = { author: x, content: m, engagement: k, meta: T };
463
+ switch (i) {
464
464
  case "twitter":
465
- return /* @__PURE__ */ e.createElement(Et, { ...g });
465
+ return /* @__PURE__ */ e.createElement(vt, { ...g });
466
466
  case "linkedin":
467
- return /* @__PURE__ */ e.createElement(Qt, { ...g });
468
- case "instagram":
469
467
  return /* @__PURE__ */ e.createElement(Gt, { ...g });
470
- case "facebook":
468
+ case "instagram":
471
469
  return /* @__PURE__ */ e.createElement(ea, { ...g });
472
- case "threads":
470
+ case "facebook":
473
471
  return /* @__PURE__ */ e.createElement(ta, { ...g });
474
- case "tiktok":
472
+ case "threads":
475
473
  return /* @__PURE__ */ e.createElement(aa, { ...g });
476
- case "youtube":
474
+ case "tiktok":
477
475
  return /* @__PURE__ */ e.createElement(ra, { ...g });
476
+ case "youtube":
477
+ return /* @__PURE__ */ e.createElement(sa, { ...g });
478
478
  default:
479
- return /* @__PURE__ */ e.createElement(Et, { ...g });
479
+ return /* @__PURE__ */ e.createElement(vt, { ...g });
480
480
  }
481
481
  };
482
- return /* @__PURE__ */ e.createElement("div", { className: `artifactuse-social artifactuse-social-${m}`, "data-artifactuse-theme": a }, E(), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-actions-bar" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-platform-badge" }, /* @__PURE__ */ e.createElement("span", null, Yt[m] || m)), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-actions-right" }, /* @__PURE__ */ e.createElement("span", { className: `artifactuse-social-char-counter ${h}` }, $, "/", L), /* @__PURE__ */ e.createElement("button", { className: "artifactuse-social-copy-btn", onClick: c }, n))));
482
+ return /* @__PURE__ */ e.createElement("div", { className: `artifactuse-social artifactuse-social-${i}`, "data-artifactuse-theme": a }, E(), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-actions-bar" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-platform-badge" }, /* @__PURE__ */ e.createElement("span", null, Qt[i] || i)), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-social-actions-right" }, /* @__PURE__ */ e.createElement("span", { className: `artifactuse-social-char-counter ${h}` }, $, "/", M), /* @__PURE__ */ e.createElement("button", { className: "artifactuse-social-copy-btn", onClick: c }, n))));
483
483
  }
484
- function na({
484
+ function la({
485
485
  isOpen: t = !1,
486
486
  type: a = "image",
487
487
  src: l = "",
488
488
  alt: n = "",
489
- caption: i = "",
489
+ caption: o = "",
490
490
  onClose: u,
491
- className: m = ""
491
+ className: i = ""
492
492
  }) {
493
- const r = B(null), [x, o] = k(!1), [w, P] = k(!1);
494
- z(() => (P(!0), () => P(!1)), []), z(() => {
493
+ const r = B(null), [x, m] = w(!1), [k, T] = w(!1);
494
+ z(() => (T(!0), () => T(!1)), []), z(() => {
495
495
  var E;
496
- return t ? (document.body.style.overflow = "hidden", (E = r.current) == null || E.focus()) : (document.body.style.overflow = "", o(!1)), () => {
496
+ return t ? (document.body.style.overflow = "hidden", (E = r.current) == null || E.focus()) : (document.body.style.overflow = "", m(!1)), () => {
497
497
  document.body.style.overflow = "";
498
498
  };
499
499
  }, [t]), z(() => {
@@ -502,22 +502,22 @@ function na({
502
502
  }
503
503
  return document.addEventListener("keydown", E), () => document.removeEventListener("keydown", E);
504
504
  }, [t, u]);
505
- const L = p(() => {
506
- o(!1), u && u();
505
+ const M = p(() => {
506
+ m(!1), u && u();
507
507
  }, [u]), $ = p(() => {
508
- a === "image" && o((E) => !E);
508
+ a === "image" && m((E) => !E);
509
509
  }, [a]), h = p(() => {
510
510
  const E = document.createElement("a");
511
511
  E.href = l, E.download = n || "download", document.body.appendChild(E), E.click(), document.body.removeChild(E);
512
512
  }, [l, n]);
513
- if (!t || !w)
513
+ if (!t || !k)
514
514
  return null;
515
515
  const c = /* @__PURE__ */ e.createElement(
516
516
  "div",
517
517
  {
518
518
  ref: r,
519
- className: `artifactuse-viewer-overlay ${m}`,
520
- onClick: L,
519
+ className: `artifactuse-viewer-overlay ${i}`,
520
+ onClick: M,
521
521
  tabIndex: -1,
522
522
  role: "dialog",
523
523
  "aria-modal": "true"
@@ -541,7 +541,7 @@ function na({
541
541
  "button",
542
542
  {
543
543
  className: "artifactuse-viewer-close",
544
- onClick: L,
544
+ onClick: M,
545
545
  title: "Close (Esc)"
546
546
  },
547
547
  /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), /* @__PURE__ */ e.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" }))
@@ -561,11 +561,11 @@ function na({
561
561
  title: "Download"
562
562
  },
563
563
  /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), /* @__PURE__ */ e.createElement("polyline", { points: "7 10 12 15 17 10" }), /* @__PURE__ */ e.createElement("line", { x1: "12", y1: "15", x2: "12", y2: "3" }))
564
- )), i && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-viewer-caption" }, i))
564
+ )), o && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-viewer-caption" }, o))
565
565
  );
566
- return Ut(c, document.body);
566
+ return jt(c, document.body);
567
567
  }
568
- function la(t) {
568
+ function ca(t) {
569
569
  if (!t) return null;
570
570
  try {
571
571
  const a = decodeURIComponent(escape(atob(t)));
@@ -580,18 +580,18 @@ function la(t) {
580
580
  }
581
581
  }
582
582
  }
583
- function ca(t) {
583
+ function ia(t) {
584
584
  const a = [];
585
585
  if (!t) return a;
586
586
  const l = /<div\s+class="artifactuse-placeholder[^"]*"[^>]*data-artifact-id="([^"]+)"[^>]*data-artifact-type="([^"]+)"[^>]*data-artifact=["']([^"']*)["'][^>]*><\/div>/gi;
587
- let n = 0, i;
588
- for (; (i = l.exec(t)) !== null; ) {
589
- if (i.index > n) {
590
- const r = t.slice(n, i.index);
587
+ let n = 0, o;
588
+ for (; (o = l.exec(t)) !== null; ) {
589
+ if (o.index > n) {
590
+ const r = t.slice(n, o.index);
591
591
  r.trim() && a.push({ type: "html", content: r });
592
592
  }
593
- const u = la(i[3]), m = i[2];
594
- u && (m === "form" && u.isInline ? a.push({ type: "form", artifact: u }) : m === "social" ? a.push({ type: "social", artifact: u }) : a.push({ type: "panel", artifact: u })), n = i.index + i[0].length;
593
+ const u = ca(o[3]), i = o[2];
594
+ u && (i === "form" && u.isInline ? a.push({ type: "form", artifact: u }) : i === "social" ? a.push({ type: "social", artifact: u }) : a.push({ type: "panel", artifact: u })), n = o.index + o[0].length;
595
595
  }
596
596
  if (n < t.length) {
597
597
  const u = t.slice(n);
@@ -599,24 +599,24 @@ function ca(t) {
599
599
  }
600
600
  return a.length === 0 && t.trim() && a.push({ type: "html", content: t }), a;
601
601
  }
602
- function ia() {
602
+ function oa() {
603
603
  return `msg-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
604
604
  }
605
- function oa({
605
+ function ma({
606
606
  content: t,
607
- messageId: a = ia(),
607
+ messageId: a = oa(),
608
608
  inlineCards: l = !0,
609
609
  typing: n = !1,
610
- isLastMessage: i = !1,
610
+ isLastMessage: o = !1,
611
611
  // Whether this is the last/most recent message
612
612
  inlinePreview: u = null,
613
- inlineCode: m = null,
613
+ inlineCode: i = null,
614
614
  tabs: r = null,
615
615
  viewMode: x = null,
616
- onArtifactDetected: o,
617
- onArtifactOpen: w,
618
- onArtifactCopy: P,
619
- onArtifactDownload: L,
616
+ onArtifactDetected: m,
617
+ onArtifactOpen: k,
618
+ onArtifactCopy: T,
619
+ onArtifactDownload: M,
620
620
  onFormSubmit: $,
621
621
  onFormCancel: h,
622
622
  onFormButtonClick: c,
@@ -624,186 +624,186 @@ function oa({
624
624
  onMediaOpen: g,
625
625
  className: D = ""
626
626
  }) {
627
- var xe;
627
+ var Ce;
628
628
  const {
629
629
  processMessage: J,
630
- openArtifact: S,
630
+ openArtifact: A,
631
631
  state: q,
632
632
  getTheme: U,
633
633
  instance: R
634
- } = Pe(), ae = B(null), A = B(null), j = B(null), ue = B(n), [re, me] = k(""), [de, fe] = k([]), [ce, Q] = k(!1), [pe, d] = k(!1), [C, y] = k("image"), [v, T] = k(""), [G, ye] = k(""), [Ne, $e] = k(""), Z = M(() => typeof U == "function" ? U() : "dark", [U]), He = (q == null ? void 0 : q.activeArtifactId) || null, Te = l ?? ((xe = R == null ? void 0 : R.config) == null ? void 0 : xe.inlineCards) ?? !0, be = M(() => ca(re), [re]), ke = M(() => ce || i ? "active" : "inactive", [ce, i]);
634
+ } = Te(), ae = B(null), S = B(null), j = B(null), ue = B(n), [re, de] = w(""), [fe, pe] = w([]), [ne, Q] = w(!1), [Ee, d] = w(!1), [L, _] = w("image"), [v, P] = w(""), [G, be] = w(""), [Ne, $e] = w(""), Z = C(() => typeof U == "function" ? U() : "dark", [U]), He = (q == null ? void 0 : q.activeArtifactId) || null, Pe = l ?? ((Ce = R == null ? void 0 : R.config) == null ? void 0 : Ce.inlineCards) ?? !0, we = C(() => ia(re), [re]), ke = C(() => ne || o ? "active" : "inactive", [ne, o]);
635
635
  z(() => {
636
636
  n && Q(!0);
637
637
  }, [n]);
638
- const ne = p((_) => {
639
- y(_.type || "image"), T(_.src || ""), ye(_.alt || ""), $e(_.caption || ""), d(!0), g && g(_);
638
+ const le = p((y) => {
639
+ _(y.type || "image"), P(y.src || ""), be(y.alt || ""), $e(y.caption || ""), d(!0), g && g(y);
640
640
  }, [g]), Ie = p(() => {
641
- d(!1), T(""), ye(""), $e("");
641
+ d(!1), P(""), be(""), $e("");
642
642
  }, []), Be = p(() => {
643
- if (!A.current) return;
644
- A.current.querySelectorAll('img[data-lightbox="true"]').forEach((f) => {
645
- f._lightboxHandler && f.removeEventListener("click", f._lightboxHandler), f._lightboxHandler = (W) => {
646
- W.preventDefault(), W.stopPropagation(), ne({
643
+ if (!S.current) return;
644
+ S.current.querySelectorAll('img[data-lightbox="true"]').forEach((f) => {
645
+ f._lightboxHandler && f.removeEventListener("click", f._lightboxHandler), f._lightboxHandler = (F) => {
646
+ F.preventDefault(), F.stopPropagation(), le({
647
647
  type: "image",
648
648
  src: f.src,
649
649
  alt: f.alt || "",
650
650
  caption: f.dataset.caption || f.alt || ""
651
651
  });
652
652
  }, f.addEventListener("click", f._lightboxHandler), f.style.cursor = "zoom-in";
653
- }), A.current.querySelectorAll(".artifactuse-image-container img").forEach((f) => {
654
- f._lightboxHandler || (f._lightboxHandler = (W) => {
655
- W.preventDefault(), W.stopPropagation();
656
- const V = f.closest(".artifactuse-image-container"), K = V == null ? void 0 : V.querySelector(".artifactuse-image-caption"), Ce = (K == null ? void 0 : K.textContent) || f.dataset.caption || f.alt || "";
657
- ne({
653
+ }), S.current.querySelectorAll(".artifactuse-image-container img").forEach((f) => {
654
+ f._lightboxHandler || (f._lightboxHandler = (F) => {
655
+ F.preventDefault(), F.stopPropagation();
656
+ const W = f.closest(".artifactuse-image-container"), K = W == null ? void 0 : W.querySelector(".artifactuse-image-caption"), me = (K == null ? void 0 : K.textContent) || f.dataset.caption || f.alt || "";
657
+ le({
658
658
  type: "image",
659
659
  src: f.src,
660
660
  alt: f.alt || "",
661
- caption: Ce
661
+ caption: me
662
662
  });
663
663
  }, f.addEventListener("click", f._lightboxHandler), f.style.cursor = "zoom-in");
664
- }), A.current.querySelectorAll(".artifactuse-gallery-item img, .artifactuse-image-gallery img").forEach((f) => {
665
- f._lightboxHandler || (f._lightboxHandler = (W) => {
666
- W.preventDefault(), W.stopPropagation();
667
- const V = f.closest(".artifactuse-gallery-item"), K = V == null ? void 0 : V.querySelector(".artifactuse-gallery-caption"), Ce = (K == null ? void 0 : K.textContent) || f.dataset.caption || f.alt || "";
668
- ne({
664
+ }), S.current.querySelectorAll(".artifactuse-gallery-item img, .artifactuse-image-gallery img").forEach((f) => {
665
+ f._lightboxHandler || (f._lightboxHandler = (F) => {
666
+ F.preventDefault(), F.stopPropagation();
667
+ const W = f.closest(".artifactuse-gallery-item"), K = W == null ? void 0 : W.querySelector(".artifactuse-gallery-caption"), me = (K == null ? void 0 : K.textContent) || f.dataset.caption || f.alt || "";
668
+ le({
669
669
  type: "image",
670
670
  src: f.src,
671
671
  alt: f.alt || "",
672
- caption: Ce
672
+ caption: me
673
673
  });
674
674
  }, f.addEventListener("click", f._lightboxHandler), f.style.cursor = "zoom-in");
675
- }), A.current.querySelectorAll('a[href$=".pdf"], a[data-type="pdf"]').forEach((f) => {
676
- f._pdfHandler && f.removeEventListener("click", f._pdfHandler), f._pdfHandler = (W) => {
677
- W.preventDefault(), W.stopPropagation(), ne({
675
+ }), S.current.querySelectorAll('a[href$=".pdf"], a[data-type="pdf"]').forEach((f) => {
676
+ f._pdfHandler && f.removeEventListener("click", f._pdfHandler), f._pdfHandler = (F) => {
677
+ F.preventDefault(), F.stopPropagation(), le({
678
678
  type: "pdf",
679
679
  src: f.href,
680
680
  alt: f.textContent || "PDF Document",
681
681
  caption: f.title || f.textContent || ""
682
682
  });
683
683
  }, f.addEventListener("click", f._pdfHandler);
684
- }), A.current.querySelectorAll(".artifactuse-pdf-container, [data-pdf-viewer]").forEach((f) => {
685
- var V;
684
+ }), S.current.querySelectorAll(".artifactuse-pdf-container, [data-pdf-viewer]").forEach((f) => {
685
+ var W;
686
686
  f._pdfHandler && f.removeEventListener("click", f._pdfHandler);
687
- const W = f.dataset.pdfSrc || ((V = f.querySelector("iframe")) == null ? void 0 : V.src) || "";
688
- W && (f._pdfHandler = (K) => {
689
- K.preventDefault(), K.stopPropagation(), ne({
687
+ const F = f.dataset.pdfSrc || ((W = f.querySelector("iframe")) == null ? void 0 : W.src) || "";
688
+ F && (f._pdfHandler = (K) => {
689
+ K.preventDefault(), K.stopPropagation(), le({
690
690
  type: "pdf",
691
- src: W,
691
+ src: F,
692
692
  alt: "PDF Document",
693
693
  caption: f.dataset.caption || ""
694
694
  });
695
695
  }, f.addEventListener("click", f._pdfHandler), f.style.cursor = "pointer");
696
- }), A.current.querySelectorAll(".artifactuse-video-preview-wrapper, .video-preview-wrapper").forEach((f) => {
697
- f._clickHandler && f.removeEventListener("click", f._clickHandler), f._clickHandler = (W) => {
698
- if (W.target.closest(".artifactuse-video-play-button")) return;
699
- const V = f.dataset.videoUrl || f.dataset.url;
700
- V && window.open(V, "_blank", "noopener,noreferrer");
696
+ }), S.current.querySelectorAll(".artifactuse-video-preview-wrapper, .video-preview-wrapper").forEach((f) => {
697
+ f._clickHandler && f.removeEventListener("click", f._clickHandler), f._clickHandler = (F) => {
698
+ if (F.target.closest(".artifactuse-video-play-button")) return;
699
+ const W = f.dataset.videoUrl || f.dataset.url;
700
+ W && window.open(W, "_blank", "noopener,noreferrer");
701
701
  }, f.addEventListener("click", f._clickHandler);
702
702
  });
703
- }, [ne]), Se = p(() => {
704
- if (!A.current) return;
705
- A.current.querySelectorAll("img").forEach((N) => {
703
+ }, [le]), Ae = p(() => {
704
+ if (!S.current) return;
705
+ S.current.querySelectorAll("img").forEach((N) => {
706
706
  N._lightboxHandler && (N.removeEventListener("click", N._lightboxHandler), delete N._lightboxHandler);
707
- }), A.current.querySelectorAll('a[href$=".pdf"], a[data-type="pdf"]').forEach((N) => {
707
+ }), S.current.querySelectorAll('a[href$=".pdf"], a[data-type="pdf"]').forEach((N) => {
708
708
  N._pdfHandler && (N.removeEventListener("click", N._pdfHandler), delete N._pdfHandler);
709
- }), A.current.querySelectorAll(".artifactuse-pdf-container, [data-pdf-viewer]").forEach((N) => {
709
+ }), S.current.querySelectorAll(".artifactuse-pdf-container, [data-pdf-viewer]").forEach((N) => {
710
710
  N._pdfHandler && (N.removeEventListener("click", N._pdfHandler), delete N._pdfHandler);
711
- }), A.current.querySelectorAll(".artifactuse-video-preview-wrapper, .video-preview-wrapper").forEach((N) => {
711
+ }), S.current.querySelectorAll(".artifactuse-video-preview-wrapper, .video-preview-wrapper").forEach((N) => {
712
712
  N._clickHandler && (N.removeEventListener("click", N._clickHandler), delete N._clickHandler);
713
713
  });
714
- }, []), Ee = p(() => {
714
+ }, []), ve = p(() => {
715
715
  j.current && clearTimeout(j.current), j.current = setTimeout(async () => {
716
- if (R != null && R.initializeContent && A.current)
716
+ if (R != null && R.initializeContent && S.current)
717
717
  try {
718
- await R.initializeContent(A.current);
719
- } catch (_) {
720
- console.error("Failed to initialize content:", _);
718
+ await R.initializeContent(S.current);
719
+ } catch (y) {
720
+ console.error("Failed to initialize content:", y);
721
721
  }
722
722
  Be();
723
723
  }, 100);
724
724
  }, [R, Be]);
725
725
  z(() => {
726
726
  if (t) {
727
- const _ = J(t, a, {
727
+ const y = J(t, a, {
728
728
  inlinePreview: u,
729
- inlineCode: m,
729
+ inlineCode: i,
730
730
  tabs: r,
731
731
  viewMode: x
732
732
  });
733
- me(_.html), fe(_.artifacts), _.artifacts.length > 0 && o && o(_.artifacts), n || Ee();
733
+ de(y.html), pe(y.artifacts), y.artifacts.length > 0 && m && m(y.artifacts), n || ve();
734
734
  }
735
- }, [t, a, J, n, Ee, o]), z(() => {
736
- ue.current === !0 && n === !1 && Ee(), ue.current = n;
737
- }, [n, Ee]), z(() => (n && Q(!0), n || Ee(), () => {
738
- j.current && clearTimeout(j.current), Se();
735
+ }, [t, a, J, n, ve, m]), z(() => {
736
+ ue.current === !0 && n === !1 && ve(), ue.current = n;
737
+ }, [n, ve]), z(() => (n && Q(!0), n || ve(), () => {
738
+ j.current && clearTimeout(j.current), Ae();
739
739
  }), []);
740
- const Fe = p((_) => {
741
- const le = _.target.closest(".artifactuse-inline-preview");
742
- if (le) {
743
- if (le.dataset.nonClickable) return;
744
- const oe = le.dataset.artifactId;
740
+ const Ve = p((y) => {
741
+ const ce = y.target.closest(".artifactuse-inline-preview");
742
+ if (ce) {
743
+ if (ce.dataset.nonClickable) return;
744
+ const oe = ce.dataset.artifactId;
745
745
  if (oe) {
746
746
  const ee = q.artifacts.find((N) => N.id === oe);
747
- ee && (S(ee), w && w(ee));
747
+ ee && (A(ee), k && k(ee));
748
748
  }
749
749
  }
750
- }, [q, S, w]), ie = p((_) => {
751
- S(_), w && w(_);
752
- }, [S, w]), We = p((_) => {
753
- P && P(_);
754
- }, [P]), we = p((_) => {
755
- L && L(_);
756
- }, [L]), Ve = p((_) => {
757
- $ && $(_);
758
- }, [$]), ve = p((_) => {
759
- h && h(_);
760
- }, [h]), he = p((_) => {
761
- c && c(_);
762
- }, [c]), Oe = p((_) => {
763
- E && E(_);
764
- }, [E]), ge = (_, le) => {
765
- switch (_.type) {
750
+ }, [q, A, k]), ie = p((y) => {
751
+ A(y), k && k(y);
752
+ }, [A, k]), Fe = p((y) => {
753
+ T && T(y);
754
+ }, [T]), xe = p((y) => {
755
+ M && M(y);
756
+ }, [M]), We = p((y) => {
757
+ $ && $(y);
758
+ }, [$]), he = p((y) => {
759
+ h && h(y);
760
+ }, [h]), ge = p((y) => {
761
+ c && c(y);
762
+ }, [c]), Oe = p((y) => {
763
+ E && E(y);
764
+ }, [E]), ye = (y, ce) => {
765
+ switch (y.type) {
766
766
  case "html":
767
767
  return /* @__PURE__ */ e.createElement(
768
768
  "div",
769
769
  {
770
- key: `html-${le}`,
771
- dangerouslySetInnerHTML: { __html: _.content }
770
+ key: `html-${ce}`,
771
+ dangerouslySetInnerHTML: { __html: y.content }
772
772
  }
773
773
  );
774
774
  case "form":
775
- return _.artifact.isInline ? /* @__PURE__ */ e.createElement(
776
- Xt,
775
+ return y.artifact.isInline ? /* @__PURE__ */ e.createElement(
776
+ Zt,
777
777
  {
778
- key: `form-${_.artifact.id}`,
779
- artifact: _.artifact,
778
+ key: `form-${y.artifact.id}`,
779
+ artifact: y.artifact,
780
780
  theme: Z,
781
781
  initialState: ke,
782
- onSubmit: Ve,
783
- onCancel: ve,
784
- onButtonClick: he
782
+ onSubmit: We,
783
+ onCancel: he,
784
+ onButtonClick: ge
785
785
  }
786
786
  ) : null;
787
787
  case "social":
788
788
  return /* @__PURE__ */ e.createElement(
789
- sa,
789
+ na,
790
790
  {
791
- key: `social-${_.artifact.id}`,
792
- artifact: _.artifact,
791
+ key: `social-${y.artifact.id}`,
792
+ artifact: y.artifact,
793
793
  theme: Z,
794
794
  onCopy: Oe
795
795
  }
796
796
  );
797
797
  case "panel":
798
- return Te ? /* @__PURE__ */ e.createElement(
799
- jt,
798
+ return Pe ? /* @__PURE__ */ e.createElement(
799
+ Ot,
800
800
  {
801
- key: `panel-${_.artifact.id}`,
802
- artifact: _.artifact,
803
- isActive: He === _.artifact.id,
801
+ key: `panel-${y.artifact.id}`,
802
+ artifact: y.artifact,
803
+ isActive: He === y.artifact.id,
804
804
  onOpen: ie,
805
- onCopy: We,
806
- onDownload: we
805
+ onCopy: Fe,
806
+ onDownload: xe
807
807
  }
808
808
  ) : null;
809
809
  default:
@@ -816,12 +816,12 @@ function oa({
816
816
  ref: ae,
817
817
  className: `artifactuse-agent-message ${D}`.trim()
818
818
  },
819
- /* @__PURE__ */ e.createElement("div", { ref: A, className: "artifactuse-message-content", onClick: Fe }, be.map(ge)),
819
+ /* @__PURE__ */ e.createElement("div", { ref: S, className: "artifactuse-message-content", onClick: Ve }, we.map(ye)),
820
820
  /* @__PURE__ */ e.createElement(
821
- na,
821
+ la,
822
822
  {
823
- isOpen: pe,
824
- type: C,
823
+ isOpen: Ee,
824
+ type: L,
825
825
  src: v,
826
826
  alt: G,
827
827
  caption: Ne,
@@ -830,7 +830,7 @@ function oa({
830
830
  )
831
831
  );
832
832
  }
833
- oa.propTypes = {
833
+ ma.propTypes = {
834
834
  /** The raw message content (markdown/HTML from AI) */
835
835
  content: (t, a) => {
836
836
  if (typeof t[a] != "string")
@@ -877,63 +877,68 @@ oa.propTypes = {
877
877
  return new Error(`${a} must be a string or null`);
878
878
  }
879
879
  };
880
- function ha({
880
+ function ga({
881
881
  onAIRequest: t,
882
882
  onSave: a,
883
883
  onExport: l,
884
884
  className: n = "",
885
- panelWidth: i,
885
+ panelWidth: o,
886
886
  splitPosition: u
887
887
  }) {
888
- var dt;
888
+ var ft;
889
889
  const {
890
- state: m,
890
+ state: i,
891
891
  activeArtifact: r,
892
892
  artifactCount: x,
893
- hasArtifacts: o,
894
- closePanel: w,
895
- toggleFullscreen: P,
896
- setViewMode: L,
893
+ hasArtifacts: m,
894
+ closePanel: k,
895
+ toggleFullscreen: T,
896
+ setViewMode: M,
897
897
  getPanelUrl: $,
898
898
  openArtifact: h,
899
899
  instance: c
900
- } = Pe(), E = B(null), g = B(null), D = B(null), J = B(null), S = B(null), q = B(null), U = B(null), [R, ae] = k(!1), [A, j] = k(!1), [ue, re] = k(!0), [me, de] = k(!1), [fe, ce] = k(!1), [Q, pe] = k(!1), [d, C] = k(!1), [y, v] = k("options"), [T, G] = k(""), [ye, Ne] = k(null), [$e, Z] = k(""), [He, Te] = k(!1), [be, ke] = k(!1), [ne, Ie] = k([]), [Be, Se] = k(!1), [Ee, Fe] = k(""), [ie, We] = k(
900
+ } = Te(), E = B(null), g = B(null), D = B(null), J = B(null), A = B(null), q = B(null), U = B(null), [R, ae] = w(!1), [S, j] = w(!1), [ue, re] = w(!0), [de, fe] = w(!1), [pe, ne] = w(!1), [Q, Ee] = w(!1), [d, L] = w(!1), [_, v] = w("options"), [P, G] = w(""), [be, Ne] = w(null), [$e, Z] = w(""), [He, Pe] = w(!1), [we, ke] = w(!1), [le, Ie] = w([]), [Be, Ae] = w(!1), [ve, Ve] = w(""), [ie, Fe] = w(
901
901
  () => {
902
902
  var s;
903
- return Math.min(Math.max(i ?? ((s = c == null ? void 0 : c.config) == null ? void 0 : s.panelWidth) ?? 65, 25), 75);
903
+ return Math.min(Math.max(o ?? ((s = c == null ? void 0 : c.config) == null ? void 0 : s.panelWidth) ?? 65, 25), 75);
904
904
  }
905
- ), [we, Ve] = k(
905
+ ), [xe, We] = w(
906
906
  () => {
907
907
  var s;
908
908
  return Math.min(Math.max(u ?? ((s = c == null ? void 0 : c.config) == null ? void 0 : s.splitPosition) ?? 50, 20), 80);
909
909
  }
910
- ), ve = B(null), he = B(null);
910
+ ), he = B(null), ge = B(null);
911
911
  z(() => {
912
- i !== void 0 && We(Math.min(Math.max(i, 25), 75));
913
- }, [i]), z(() => {
914
- u !== void 0 && Ve(Math.min(Math.max(u, 20), 80));
912
+ o !== void 0 && Fe(Math.min(Math.max(o, 25), 75));
913
+ }, [o]), z(() => {
914
+ u !== void 0 && We(Math.min(Math.max(u, 20), 80));
915
915
  }, [u]);
916
- const Oe = B(null), ge = B(null), xe = B(null), _ = M(() => r ? Ue(r.language) : "", [r]), le = M(() => r ? at(r.language) : "", [r]), oe = M(() => {
916
+ const Oe = B(null), ye = B(null), Ce = B(null), y = C(() => r ? Ue(r.language) : "", [r]), ce = C(() => r ? at(r.language) : "", [r]), oe = C(() => {
917
917
  if (!r) return null;
918
918
  let s = $(r);
919
919
  return s && r._refreshToken && (s += (s.includes("?") ? "&" : "?") + "_t=" + r._refreshToken), s;
920
- }, [r, $]), ee = M(() => r ? zt(r.language) : "plaintext", [r]), N = M(() => m.artifacts.filter((s) => !s.isInline), [m.artifacts]), se = M(() => r ? N.findIndex((s) => s.id === r.id) : -1, [r, N]), f = M(() => {
920
+ }, [r, $]), ee = C(() => r ? Rt(r.language) : "plaintext", [r]), N = C(() => i.artifacts.filter((s) => !s.isInline), [i.artifacts]), se = C(() => r ? N.findIndex((s) => s.id === r.id) : -1, [r, N]), f = C(() => {
921
921
  var s;
922
922
  return ((s = c == null ? void 0 : c.config) == null ? void 0 : s.branding) !== !1;
923
- }, [c]), W = M(() => {
923
+ }, [c]), F = C(() => {
924
924
  var s;
925
925
  return ((s = c == null ? void 0 : c.share) == null ? void 0 : s.enabled) !== !1;
926
- }, [c]), V = M(() => {
926
+ }, [c]), W = C(() => {
927
927
  var s;
928
928
  return ((s = c == null ? void 0 : c.share) == null ? void 0 : s.isAuthenticated()) || !1;
929
- }, [c]), K = M(() => r ? ie : Math.min(ie, 30), [r, ie]), Ce = p((s) => `<svg viewBox="0 0 24 24" fill="currentColor">${at(s)}</svg>`, []), _t = p(() => {
930
- ce(!1), c.state.clearActiveArtifact();
929
+ }, [c]), K = C(() => !r && !i.forceEmptyView ? Math.min(ie, 30) : ie, [r, ie, i.forceEmptyView]), me = C(() => {
930
+ var s;
931
+ return ((s = c == null ? void 0 : c.config) == null ? void 0 : s.multiTab) === !0;
932
+ }, [c]);
933
+ C(() => me ? i.openTabs.map((s) => i.artifacts.find((b) => b.id === s)).filter(Boolean) : [], [me, i.openTabs, i.artifacts]);
934
+ const nt = p((s) => `<svg viewBox="0 0 24 24" fill="currentColor">${at(s)}</svg>`, []), _t = p(() => {
935
+ ne(!1), c.state.clearActiveArtifact();
931
936
  }, [c]), ze = p((s) => {
932
937
  if (s.language !== "smartdiff") return null;
933
938
  try {
934
939
  const b = JSON.parse(s.code);
935
940
  if (b.oldCode === void 0 || b.newCode === void 0) return null;
936
- const H = b.language || "plaintext", I = ft() && window.Prism.languages[H], X = Rt(b.oldCode, b.newCode).split(`
941
+ const H = b.language || "plaintext", I = pt() && window.Prism.languages[H], X = qt(b.oldCode, b.newCode).split(`
937
942
  `);
938
943
  return { html: X.map((te) => {
939
944
  const Y = te[0], Le = te.slice(1), _e = I ? window.Prism.highlight(Le, I, H) : Le;
@@ -943,13 +948,13 @@ function ha({
943
948
  } catch {
944
949
  return null;
945
950
  }
946
- }, []), nt = p(() => {
951
+ }, []), lt = p(() => {
947
952
  if (!J.current || !(r != null && r.code)) return;
948
953
  const s = ze(r), b = s ? s.lineCount : r.code.split(`
949
954
  `).length, H = Array.from({ length: b }, (I, X) => `<div>${X + 1}</div>`).join("");
950
955
  J.current.innerHTML = H;
951
- }, [r, ze]), lt = p(() => {
952
- if (g.current && ft() && (r != null && r.code)) {
956
+ }, [r, ze]), ct = p(() => {
957
+ if (g.current && pt() && (r != null && r.code)) {
953
958
  const s = ze(r);
954
959
  if (s)
955
960
  g.current.innerHTML = s.html;
@@ -962,21 +967,21 @@ function ha({
962
967
  ) : g.current.textContent = r.code;
963
968
  }
964
969
  g.current.dataset.highlighted = "true", setTimeout(() => {
965
- yt();
970
+ bt();
966
971
  }, 0);
967
972
  }
968
- }, [r == null ? void 0 : r.code, ee, ze]), yt = p(() => {
973
+ }, [r == null ? void 0 : r.code, ee, ze]), bt = p(() => {
969
974
  var b;
970
975
  const s = (b = g.current) == null ? void 0 : b.closest("pre");
971
- if (s && S.current && J.current) {
976
+ if (s && A.current && J.current) {
972
977
  const I = window.getComputedStyle(s).backgroundColor;
973
- I && I !== "rgba(0, 0, 0, 0)" && I !== "transparent" && (S.current.style.backgroundColor = I, J.current.style.backgroundColor = I);
978
+ I && I !== "rgba(0, 0, 0, 0)" && I !== "transparent" && (A.current.style.backgroundColor = I, J.current.style.backgroundColor = I);
974
979
  }
975
- }, []), ct = p(() => {
976
- S.current && (S.current.style.backgroundColor = ""), J.current && (J.current.style.backgroundColor = "");
980
+ }, []), it = p(() => {
981
+ A.current && (A.current.style.backgroundColor = ""), J.current && (J.current.style.backgroundColor = "");
977
982
  }, []), Je = p(() => {
978
- nt(), lt();
979
- }, [nt, lt]), Xe = ((dt = c.editor) == null ? void 0 : dt.isAvailable()) || !1, it = p(() => {
983
+ lt(), ct();
984
+ }, [lt, ct]), Xe = ((ft = c.editor) == null ? void 0 : ft.isAvailable()) || !1, ot = p(() => {
980
985
  !Xe || !q.current || !r || (U.current && (U.current.destroy(), U.current = null), U.current = c.editor.create(q.current, {
981
986
  code: r.code || "",
982
987
  language: r.editorLanguage || r.language || "plaintext",
@@ -990,30 +995,30 @@ function ha({
990
995
  artifact: r,
991
996
  code: s
992
997
  });
993
- }, [r, c]), bt = p(() => {
994
- clearTimeout(ge.current), re(!1), E.current && r && (c.bridge.setIframe(E.current), c.bridge.loadArtifact(r));
998
+ }, [r, c]), wt = p(() => {
999
+ clearTimeout(ye.current), re(!1), E.current && r && (c.bridge.setIframe(E.current), c.bridge.loadArtifact(r));
995
1000
  }, [r, c]), kt = p(() => {
996
- clearTimeout(ge.current), re(!1);
997
- }, []), wt = p(() => {
998
- clearTimeout(ge.current), ge.current = setTimeout(() => {
1001
+ clearTimeout(ye.current), re(!1);
1002
+ }, []), xt = p(() => {
1003
+ clearTimeout(ye.current), ye.current = setTimeout(() => {
999
1004
  re(!1);
1000
1005
  }, 1e3);
1001
- }, []), xt = p(async () => {
1006
+ }, []), Ct = p(async () => {
1002
1007
  if (r)
1003
1008
  try {
1004
1009
  await navigator.clipboard.writeText(r.code), ae(!0), setTimeout(() => ae(!1), 2e3);
1005
1010
  } catch (s) {
1006
1011
  console.error("Failed to copy:", s);
1007
1012
  }
1008
- }, [r]), Ct = p(() => {
1013
+ }, [r]), Lt = p(() => {
1009
1014
  if (!r) return;
1010
- const { code: s, language: b, title: H } = r, I = rt(b), X = `${H.toLowerCase().replace(/\s+/g, "-")}.${I}`, Ae = new Blob([s], { type: "text/plain" }), te = URL.createObjectURL(Ae), Y = document.createElement("a");
1015
+ const { code: s, language: b, title: H } = r, I = rt(b), X = `${H.toLowerCase().replace(/\s+/g, "-")}.${I}`, Se = new Blob([s], { type: "text/plain" }), te = URL.createObjectURL(Se), Y = document.createElement("a");
1011
1016
  Y.href = te, Y.download = X, document.body.appendChild(Y), Y.click(), document.body.removeChild(Y), URL.revokeObjectURL(te);
1012
- }, [r]), Lt = p(async () => {
1017
+ }, [r]), Mt = p(async () => {
1013
1018
  if (!(Q || N.length === 0)) {
1014
- pe(!0);
1019
+ Ee(!0);
1015
1020
  try {
1016
- const s = new Dt(), b = /* @__PURE__ */ new Map();
1021
+ const s = new Ut(), b = /* @__PURE__ */ new Map();
1017
1022
  for (const Y of N) {
1018
1023
  if (!Y.code) continue;
1019
1024
  const Le = rt(Y.language);
@@ -1021,22 +1026,22 @@ function ha({
1021
1026
  const tt = b.get(et) || 0;
1022
1027
  tt > 0 && (et = `${_e}-${tt}.${Le}`), b.set(`${_e}.${Le}`, tt + 1), s.file(et, Y.code);
1023
1028
  }
1024
- const H = await s.generateAsync({ type: "blob" }), X = `artifacts-${(/* @__PURE__ */ new Date()).toISOString().slice(0, 10)}.zip`, Ae = URL.createObjectURL(H), te = document.createElement("a");
1025
- te.href = Ae, te.download = X, document.body.appendChild(te), te.click(), document.body.removeChild(te), URL.revokeObjectURL(Ae);
1029
+ const H = await s.generateAsync({ type: "blob" }), X = `artifacts-${(/* @__PURE__ */ new Date()).toISOString().slice(0, 10)}.zip`, Se = URL.createObjectURL(H), te = document.createElement("a");
1030
+ te.href = Se, te.download = X, document.body.appendChild(te), te.click(), document.body.removeChild(te), URL.revokeObjectURL(Se);
1026
1031
  } catch (s) {
1027
1032
  console.error("Failed to create ZIP:", s);
1028
1033
  } finally {
1029
- pe(!1);
1034
+ Ee(!1);
1030
1035
  }
1031
1036
  }
1032
- }, [Q, N]), ot = p((s) => s ? new Date(s).toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" }) : "", []), Mt = p(() => {
1037
+ }, [Q, N]), mt = p((s) => s ? new Date(s).toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" }) : "", []), Tt = p(() => {
1033
1038
  if (d) {
1034
- C(!1);
1039
+ L(!1);
1035
1040
  return;
1036
1041
  }
1037
- r && (v("options"), G(""), Ne(null), Z(""), Te(!1), ke(!1), Ie([]), Se(!1), Fe(""), C(!0));
1042
+ r && (v("options"), G(""), Ne(null), Z(""), Pe(!1), ke(!1), Ie([]), Ae(!1), Ve(""), L(!0));
1038
1043
  }, [r, c, d]), Pt = p(() => {
1039
- C(!1);
1044
+ L(!1);
1040
1045
  }, []), Ze = p(async () => {
1041
1046
  if (!(!r || !(c != null && c.share))) {
1042
1047
  v("loading"), Z("");
@@ -1048,7 +1053,7 @@ function ha({
1048
1053
  }
1049
1054
  }
1050
1055
  }, [r, c]), ut = p(async () => {
1051
- if (V)
1056
+ if (W)
1052
1057
  Re();
1053
1058
  else {
1054
1059
  v("loading");
@@ -1058,7 +1063,7 @@ function ha({
1058
1063
  s.message === "Authentication cancelled" ? v("options") : (Z(s.message || "Authentication failed"), v("error"));
1059
1064
  }
1060
1065
  }
1061
- }, [V, c]), Re = p(async () => {
1066
+ }, [W, c]), Re = p(async () => {
1062
1067
  if (!(!r || !(c != null && c.share))) {
1063
1068
  v("loading"), Z("");
1064
1069
  try {
@@ -1068,11 +1073,11 @@ function ha({
1068
1073
  Z(s.message || "Failed to save artifact"), v("error");
1069
1074
  }
1070
1075
  }
1071
- }, [r, c]), Tt = p(() => {
1072
- be ? Re() : Ze();
1073
- }, [be, Re, Ze]), St = p(async () => {
1076
+ }, [r, c]), At = p(() => {
1077
+ we ? Re() : Ze();
1078
+ }, [we, Re, Ze]), St = p(async () => {
1074
1079
  if (c != null && c.share) {
1075
- if (!V) {
1080
+ if (!W) {
1076
1081
  v("loading");
1077
1082
  try {
1078
1083
  await c.share.openAuthPopup();
@@ -1081,17 +1086,17 @@ function ha({
1081
1086
  return;
1082
1087
  }
1083
1088
  }
1084
- v("update-list"), Se(!0);
1089
+ v("update-list"), Ae(!0);
1085
1090
  try {
1086
1091
  const s = (r == null ? void 0 : r.language) || null, b = await c.share.listArtifacts(s);
1087
1092
  Ie(b.projects || []);
1088
1093
  } catch (s) {
1089
1094
  Z(s.message || "Failed to load artifacts"), v("error");
1090
1095
  } finally {
1091
- Se(!1);
1096
+ Ae(!1);
1092
1097
  }
1093
1098
  }
1094
- }, [r, c, V]), At = p(async (s) => {
1099
+ }, [r, c, W]), $t = p(async (s) => {
1095
1100
  var H, I;
1096
1101
  if (!r || !(c != null && c.share)) return;
1097
1102
  const b = (H = s.project) == null ? void 0 : H.uuid;
@@ -1099,86 +1104,110 @@ function ha({
1099
1104
  v("loading"), Z("");
1100
1105
  try {
1101
1106
  const X = await c.share.updateArtifact(b, r);
1102
- G(X.url || ""), Ne(null), ke(!0), Fe(((I = s.project) == null ? void 0 : I.name) || "Untitled"), v("success");
1107
+ G(X.url || ""), Ne(null), ke(!0), Ve(((I = s.project) == null ? void 0 : I.name) || "Untitled"), v("success");
1103
1108
  } catch (X) {
1104
1109
  Z(X.message || "Failed to update artifact"), v("error");
1105
1110
  }
1106
1111
  }
1107
- }, [r, c]), $t = p(async () => {
1108
- if (T)
1112
+ }, [r, c]), Ht = p(async () => {
1113
+ if (P)
1109
1114
  try {
1110
- await navigator.clipboard.writeText(T), Te(!0), setTimeout(() => Te(!1), 2e3);
1115
+ await navigator.clipboard.writeText(P), Pe(!0), setTimeout(() => Pe(!1), 2e3);
1111
1116
  } catch (s) {
1112
1117
  console.error("Failed to copy link:", s);
1113
1118
  }
1114
- }, [T]), Ht = p(() => {
1119
+ }, [P]);
1120
+ p((s) => {
1121
+ h(s);
1122
+ }, [h]), p((s) => {
1123
+ c.closeTab(s), i.openTabs.length === 0 && ne(!1);
1124
+ }, [c, i.openTabs]);
1125
+ const It = p(() => {
1115
1126
  se > 0 && h(N[se - 1]);
1116
- }, [se, h, N]), It = p(() => {
1127
+ }, [se, h, N]), Bt = p(() => {
1117
1128
  se < N.length - 1 && h(N[se + 1]);
1118
- }, [se, h, N]), mt = p((s) => {
1119
- ce(!0), h(s), j(!1);
1129
+ }, [se, h, N]), dt = p((s) => {
1130
+ ne(!0), h(s), j(!1);
1120
1131
  }, [h]), Ke = p((s) => {
1121
- ve.current = {
1132
+ he.current = {
1122
1133
  startX: s.clientX,
1123
1134
  startWidth: ie
1124
1135
  }, document.addEventListener("mousemove", Ye), document.addEventListener("mouseup", qe), document.body.style.cursor = "ew-resize", document.body.style.userSelect = "none", document.querySelectorAll("iframe").forEach((b) => {
1125
1136
  b.style.pointerEvents = "none";
1126
1137
  });
1127
1138
  }, [ie]), Ye = p((s) => {
1128
- if (!ve.current) return;
1129
- const b = window.innerWidth, I = (ve.current.startX - s.clientX) / b * 100, X = ve.current.startWidth + I;
1130
- We(Math.min(Math.max(X, 25), 75));
1139
+ if (!he.current) return;
1140
+ const b = window.innerWidth, I = (he.current.startX - s.clientX) / b * 100, X = he.current.startWidth + I;
1141
+ Fe(Math.min(Math.max(X, 25), 75));
1131
1142
  }, []), qe = p(() => {
1132
- ve.current = null, document.removeEventListener("mousemove", Ye), document.removeEventListener("mouseup", qe), document.body.style.cursor = "", document.body.style.userSelect = "", document.querySelectorAll("iframe").forEach((s) => {
1143
+ he.current = null, document.removeEventListener("mousemove", Ye), document.removeEventListener("mouseup", qe), document.body.style.cursor = "", document.body.style.userSelect = "", document.querySelectorAll("iframe").forEach((s) => {
1133
1144
  s.style.pointerEvents = "";
1134
1145
  });
1135
- }, [Ye]), Bt = p((s) => {
1146
+ }, [Ye]), Vt = p((s) => {
1136
1147
  if (!D.current) return;
1137
1148
  const b = D.current.getBoundingClientRect();
1138
- he.current = {
1149
+ ge.current = {
1139
1150
  startX: s.clientX,
1140
- startPosition: we,
1151
+ startPosition: xe,
1141
1152
  contentLeft: b.left,
1142
1153
  contentWidth: b.width
1143
1154
  }, document.addEventListener("mousemove", Qe), document.addEventListener("mouseup", De), document.body.style.cursor = "col-resize", document.body.style.userSelect = "none", document.querySelectorAll("iframe").forEach((H) => {
1144
1155
  H.style.pointerEvents = "none";
1145
1156
  });
1146
- }, [we]), Qe = p((s) => {
1147
- if (!he.current) return;
1148
- const H = (s.clientX - he.current.contentLeft) / he.current.contentWidth * 100;
1149
- Ve(Math.min(Math.max(H, 20), 80));
1157
+ }, [xe]), Qe = p((s) => {
1158
+ if (!ge.current) return;
1159
+ const H = (s.clientX - ge.current.contentLeft) / ge.current.contentWidth * 100;
1160
+ We(Math.min(Math.max(H, 20), 80));
1150
1161
  }, []), De = p(() => {
1151
- he.current = null, document.removeEventListener("mousemove", Qe), document.removeEventListener("mouseup", De), document.body.style.cursor = "", document.body.style.userSelect = "", document.querySelectorAll("iframe").forEach((s) => {
1162
+ ge.current = null, document.removeEventListener("mousemove", Qe), document.removeEventListener("mouseup", De), document.body.style.cursor = "", document.body.style.userSelect = "", document.querySelectorAll("iframe").forEach((s) => {
1152
1163
  s.style.pointerEvents = "";
1153
1164
  });
1154
1165
  }, [Qe]);
1155
1166
  if (z(() => {
1156
- r && (xe.current && xe.current.isPreviewable !== r.isPreviewable && (de(!0), setTimeout(() => de(!1), 150)), xe.current = r, ct(), re(!0), wt(), Je());
1157
- }, [r == null ? void 0 : r.id, ct]), z(() => {
1158
- (m.viewMode === "code" || m.viewMode === "split") && Je(), m.viewMode === "edit" && it();
1159
- }, [m.viewMode, Je, it]), z(() => (t && c.on("ai:request", t), a && c.on("save:request", a), l && c.on("export:complete", l), () => {
1167
+ r && (Ce.current && Ce.current.isPreviewable !== r.isPreviewable && (fe(!0), setTimeout(() => fe(!1), 150)), Ce.current = r, it(), re(!0), xt(), Je());
1168
+ }, [r == null ? void 0 : r.id, it]), z(() => {
1169
+ (i.viewMode === "code" || i.viewMode === "split") && Je(), i.viewMode === "edit" && ot();
1170
+ }, [i.viewMode, Je, ot]), z(() => (t && c.on("ai:request", t), a && c.on("save:request", a), l && c.on("export:complete", l), () => {
1160
1171
  t && c.off("ai:request", t), a && c.off("save:request", a), l && c.off("export:complete", l);
1161
1172
  }), [c, t, a, l]), z(() => () => {
1162
- qe(), De(), U.current && (U.current.destroy(), U.current = null), clearTimeout(Oe.current), clearTimeout(ge.current);
1163
- }, [qe, De]), !m.isPanelOpen) return null;
1173
+ qe(), De(), U.current && (U.current.destroy(), U.current = null), clearTimeout(Oe.current), clearTimeout(ye.current);
1174
+ }, [qe, De]), !i.isPanelOpen) return null;
1164
1175
  const Ge = [
1165
1176
  "artifactuse-panel",
1166
- m.isFullscreen && "artifactuse-panel--fullscreen",
1167
- !r && o && "artifactuse-panel--list",
1168
- !o && "artifactuse-panel--empty",
1177
+ i.isFullscreen && "artifactuse-panel--fullscreen",
1178
+ !r && m && !i.forceEmptyView && "artifactuse-panel--list",
1179
+ !m && !i.forceEmptyView && "artifactuse-panel--empty",
1169
1180
  n
1170
1181
  ].filter(Boolean).join(" "), Ft = [
1171
1182
  "artifactuse-panel__content",
1172
- `artifactuse-panel__content--${m.viewMode}`,
1173
- me && "artifactuse-panel__content--transitioning"
1183
+ `artifactuse-panel__content--${i.viewMode}`,
1184
+ de && "artifactuse-panel__content--transitioning"
1174
1185
  ].filter(Boolean).join(" ");
1175
- return o ? r ? /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(
1186
+ return !m || i.forceEmptyView ? /* @__PURE__ */ e.createElement("div", { className: Ge, style: i.isFullscreen ? void 0 : { width: `${K}%` } }, !i.isFullscreen && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__resize-handle", onMouseDown: Ke }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__resize-handle-line" })), /* @__PURE__ */ e.createElement("header", { className: "artifactuse-panel__header artifactuse-panel__header--simple" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__title" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__icon" }, i.forceEmptyView ? /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("path", { d: "M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z" }), /* @__PURE__ */ e.createElement("polyline", { points: "14 2 14 8 20 8" })) : /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "16 18 22 12 16 6" }), /* @__PURE__ */ e.createElement("polyline", { points: "8 6 2 12 8 18" }))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__title-content" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__name" }, i.forceEmptyView ? "Artifact Viewer" : "Artifacts"))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__actions" }, /* @__PURE__ */ e.createElement(
1187
+ "button",
1188
+ {
1189
+ className: "artifactuse-panel__action artifactuse-panel__action--close",
1190
+ title: "Close panel",
1191
+ onClick: k
1192
+ },
1193
+ /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), /* @__PURE__ */ e.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" }))
1194
+ ))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__empty" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__empty-icon" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5" }, /* @__PURE__ */ e.createElement("path", { d: "M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z" }), /* @__PURE__ */ e.createElement("polyline", { points: "14 2 14 8 20 8" }))), /* @__PURE__ */ e.createElement("h3", { className: "artifactuse-panel__empty-title" }, i.forceEmptyView ? "No artifact selected" : "No artifacts yet"), /* @__PURE__ */ e.createElement("p", { className: "artifactuse-panel__empty-text" }, i.forceEmptyView ? "Open an artifact to have it appear here" : "Code blocks, forms, and other interactive content will appear here as the AI generates them.")), /* @__PURE__ */ e.createElement("footer", { className: "artifactuse-panel__footer artifactuse-panel__footer--simple" }, f && /* @__PURE__ */ e.createElement(
1195
+ "a",
1196
+ {
1197
+ href: "https://artifactuse.com",
1198
+ target: "_blank",
1199
+ rel: "noopener noreferrer",
1200
+ className: "artifactuse-panel__branding"
1201
+ },
1202
+ /* @__PURE__ */ e.createElement("svg", { width: "16", height: "16", viewBox: "0 0 42 42", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ e.createElement("path", { d: "M16.6667 41.6673V10.4173C16.6667 9.86478 16.4472 9.33488 16.0565 8.94418C15.6658 8.55348 15.1359 8.33398 14.5833 8.33398H4.16667C3.0616 8.33398 2.00179 8.77297 1.22039 9.55437C0.438987 10.3358 0 11.3956 0 12.5007V37.5006C0 38.6057 0.438987 39.6655 1.22039 40.4469C2.00179 41.2283 3.0616 41.6673 4.16667 41.6673H29.1667C30.2717 41.6673 31.3315 41.2283 32.1129 40.4469C32.8943 39.6655 33.3333 38.6057 33.3333 37.5006V27.084C33.3333 26.5314 33.1138 26.0015 32.7231 25.6108C32.3324 25.2201 31.8025 25.0007 31.25 25.0007H0", fill: "#5F51C8" }), /* @__PURE__ */ e.createElement("path", { d: "M39.5833 0H27.0833C25.9327 0 25 0.93274 25 2.08333V14.5833C25 15.7339 25.9327 16.6667 27.0833 16.6667H39.5833C40.7339 16.6667 41.6667 15.7339 41.6667 14.5833V2.08333C41.6667 0.93274 40.7339 0 39.5833 0Z", fill: "#695AE0" })),
1203
+ /* @__PURE__ */ e.createElement("span", null, "Artifactuse")
1204
+ ))) : r ? /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(
1176
1205
  "div",
1177
1206
  {
1178
1207
  className: Ge,
1179
- style: m.isFullscreen ? void 0 : { width: `${ie}%` }
1208
+ style: i.isFullscreen ? void 0 : { width: `${ie}%` }
1180
1209
  },
1181
- !m.isFullscreen && /* @__PURE__ */ e.createElement(
1210
+ !i.isFullscreen && /* @__PURE__ */ e.createElement(
1182
1211
  "div",
1183
1212
  {
1184
1213
  className: "artifactuse-panel__resize-handle",
@@ -1186,11 +1215,11 @@ function ha({
1186
1215
  },
1187
1216
  /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__resize-handle-line" })
1188
1217
  ),
1189
- /* @__PURE__ */ e.createElement("header", { className: "artifactuse-panel__header" }, fe && /* @__PURE__ */ e.createElement(
1218
+ /* @__PURE__ */ e.createElement("header", { className: "artifactuse-panel__header" }, (me || pe) && /* @__PURE__ */ e.createElement(
1190
1219
  "button",
1191
1220
  {
1192
1221
  className: "artifactuse-panel__back",
1193
- title: "Back to list",
1222
+ title: me ? "Browse artifacts" : "Back to list",
1194
1223
  onClick: _t
1195
1224
  },
1196
1225
  /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "15 18 9 12 15 6" }))
@@ -1198,43 +1227,43 @@ function ha({
1198
1227
  "span",
1199
1228
  {
1200
1229
  className: "artifactuse-panel__icon",
1201
- dangerouslySetInnerHTML: { __html: `<svg viewBox="0 0 24 24" fill="currentColor">${le}</svg>` }
1230
+ dangerouslySetInnerHTML: { __html: `<svg viewBox="0 0 24 24" fill="currentColor">${ce}</svg>` }
1202
1231
  }
1203
- ), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__title-content" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__name" }, r.title || "Untitled"), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__meta" }, _, r.lineCount && ` • ${r.lineCount} lines`))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__tabs" }, (!r.tabs || r.tabs.includes("preview")) && /* @__PURE__ */ e.createElement(
1232
+ ), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__title-content" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__name" }, r.title || "Untitled"), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__meta" }, y, r.lineCount && ` • ${r.lineCount} lines`))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__tabs" }, (!r.tabs || r.tabs.includes("preview")) && /* @__PURE__ */ e.createElement(
1204
1233
  "button",
1205
1234
  {
1206
- className: `artifactuse-panel__tab ${m.viewMode === "preview" ? "artifactuse-panel__tab--active" : ""}`,
1235
+ className: `artifactuse-panel__tab ${i.viewMode === "preview" ? "artifactuse-panel__tab--active" : ""}`,
1207
1236
  disabled: !r.isPreviewable,
1208
1237
  title: "Preview",
1209
- onClick: () => L("preview")
1238
+ onClick: () => M("preview")
1210
1239
  },
1211
1240
  /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }), /* @__PURE__ */ e.createElement("circle", { cx: "12", cy: "12", r: "3" }))
1212
1241
  ), (!r.tabs || r.tabs.includes("code")) && /* @__PURE__ */ e.createElement(
1213
1242
  "button",
1214
1243
  {
1215
- className: `artifactuse-panel__tab ${m.viewMode === "code" ? "artifactuse-panel__tab--active" : ""}`,
1244
+ className: `artifactuse-panel__tab ${i.viewMode === "code" ? "artifactuse-panel__tab--active" : ""}`,
1216
1245
  title: "Code",
1217
- onClick: () => L("code")
1246
+ onClick: () => M("code")
1218
1247
  },
1219
1248
  /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "16 18 22 12 16 6" }), /* @__PURE__ */ e.createElement("polyline", { points: "8 6 2 12 8 18" }))
1220
1249
  ), (!r.tabs || r.tabs.includes("split")) && /* @__PURE__ */ e.createElement(
1221
1250
  "button",
1222
1251
  {
1223
- className: `artifactuse-panel__tab ${m.viewMode === "split" ? "artifactuse-panel__tab--active" : ""}`,
1252
+ className: `artifactuse-panel__tab ${i.viewMode === "split" ? "artifactuse-panel__tab--active" : ""}`,
1224
1253
  disabled: !r.isPreviewable,
1225
1254
  title: "Split view",
1226
- onClick: () => L("split")
1255
+ onClick: () => M("split")
1227
1256
  },
1228
1257
  /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2" }), /* @__PURE__ */ e.createElement("line", { x1: "12", y1: "3", x2: "12", y2: "21" }))
1229
1258
  ), r.tabs && r.tabs.includes("edit") && Xe && /* @__PURE__ */ e.createElement(
1230
1259
  "button",
1231
1260
  {
1232
- className: `artifactuse-panel__tab ${m.viewMode === "edit" ? "artifactuse-panel__tab--active" : ""}`,
1261
+ className: `artifactuse-panel__tab ${i.viewMode === "edit" ? "artifactuse-panel__tab--active" : ""}`,
1233
1262
  title: "Edit",
1234
- onClick: () => L("edit")
1263
+ onClick: () => M("edit")
1235
1264
  },
1236
1265
  /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("path", { d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }), /* @__PURE__ */ e.createElement("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" }))
1237
- )), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__actions" }, m.viewMode === "edit" && /* @__PURE__ */ e.createElement(
1266
+ )), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__actions" }, i.viewMode === "edit" && /* @__PURE__ */ e.createElement(
1238
1267
  "button",
1239
1268
  {
1240
1269
  className: "artifactuse-panel__action artifactuse-panel__action--save",
@@ -1246,24 +1275,24 @@ function ha({
1246
1275
  "button",
1247
1276
  {
1248
1277
  className: "artifactuse-panel__action",
1249
- title: m.isFullscreen ? "Exit fullscreen" : "Fullscreen",
1250
- onClick: P
1278
+ title: i.isFullscreen ? "Exit fullscreen" : "Fullscreen",
1279
+ onClick: T
1251
1280
  },
1252
- m.isFullscreen ? /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "4 14 10 14 10 20" }), /* @__PURE__ */ e.createElement("polyline", { points: "20 10 14 10 14 4" }), /* @__PURE__ */ e.createElement("line", { x1: "14", y1: "10", x2: "21", y2: "3" }), /* @__PURE__ */ e.createElement("line", { x1: "3", y1: "21", x2: "10", y2: "14" })) : /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "15 3 21 3 21 9" }), /* @__PURE__ */ e.createElement("polyline", { points: "9 21 3 21 3 15" }), /* @__PURE__ */ e.createElement("line", { x1: "21", y1: "3", x2: "14", y2: "10" }), /* @__PURE__ */ e.createElement("line", { x1: "3", y1: "21", x2: "10", y2: "14" }))
1281
+ i.isFullscreen ? /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "4 14 10 14 10 20" }), /* @__PURE__ */ e.createElement("polyline", { points: "20 10 14 10 14 4" }), /* @__PURE__ */ e.createElement("line", { x1: "14", y1: "10", x2: "21", y2: "3" }), /* @__PURE__ */ e.createElement("line", { x1: "3", y1: "21", x2: "10", y2: "14" })) : /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "15 3 21 3 21 9" }), /* @__PURE__ */ e.createElement("polyline", { points: "9 21 3 21 3 15" }), /* @__PURE__ */ e.createElement("line", { x1: "21", y1: "3", x2: "14", y2: "10" }), /* @__PURE__ */ e.createElement("line", { x1: "3", y1: "21", x2: "10", y2: "14" }))
1253
1282
  ), /* @__PURE__ */ e.createElement(
1254
1283
  "button",
1255
1284
  {
1256
1285
  className: "artifactuse-panel__action artifactuse-panel__action--close",
1257
1286
  title: "Close",
1258
- onClick: w
1287
+ onClick: k
1259
1288
  },
1260
1289
  /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), /* @__PURE__ */ e.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" }))
1261
1290
  ))),
1262
- /* @__PURE__ */ e.createElement("div", { className: Ft, ref: D }, me && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__loading" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__spinner" })), (m.viewMode === "preview" || m.viewMode === "split") && /* @__PURE__ */ e.createElement(
1291
+ /* @__PURE__ */ e.createElement("div", { className: Ft, ref: D }, de && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__loading" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__spinner" })), (i.viewMode === "preview" || i.viewMode === "split") && /* @__PURE__ */ e.createElement(
1263
1292
  "div",
1264
1293
  {
1265
1294
  className: "artifactuse-panel__preview",
1266
- style: m.viewMode === "split" ? { width: `${we}%` } : void 0
1295
+ style: i.viewMode === "split" ? { width: `${xe}%` } : void 0
1267
1296
  },
1268
1297
  ue && oe && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__loading" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__spinner" })),
1269
1298
  oe ? /* @__PURE__ */ e.createElement(
@@ -1274,28 +1303,28 @@ function ha({
1274
1303
  className: `artifactuse-panel__iframe ${ue ? "artifactuse-panel__iframe--loading" : ""}`,
1275
1304
  sandbox: "allow-scripts allow-same-origin allow-forms allow-popups allow-modals allow-downloads allow-top-navigation-by-user-activation",
1276
1305
  allow: "camera; microphone; fullscreen; geolocation; display-capture; autoplay; clipboard-write",
1277
- onLoad: bt,
1306
+ onLoad: wt,
1278
1307
  onError: kt
1279
1308
  }
1280
- ) : /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__no-preview" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5" }, /* @__PURE__ */ e.createElement("path", { d: "M9 17H7A5 5 0 0 1 7 7h2" }), /* @__PURE__ */ e.createElement("path", { d: "M15 7h2a5 5 0 1 1 0 10h-2" }), /* @__PURE__ */ e.createElement("line", { x1: "8", y1: "12", x2: "16", y2: "12" })), /* @__PURE__ */ e.createElement("p", null, "Preview not available for ", _))
1309
+ ) : /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__no-preview" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5" }, /* @__PURE__ */ e.createElement("path", { d: "M9 17H7A5 5 0 0 1 7 7h2" }), /* @__PURE__ */ e.createElement("path", { d: "M15 7h2a5 5 0 1 1 0 10h-2" }), /* @__PURE__ */ e.createElement("line", { x1: "8", y1: "12", x2: "16", y2: "12" })), /* @__PURE__ */ e.createElement("p", null, "Preview not available for ", y))
1281
1310
  ), /* @__PURE__ */ e.createElement(
1282
1311
  "div",
1283
1312
  {
1284
1313
  className: "artifactuse-panel__code",
1285
1314
  style: {
1286
- ...m.viewMode === "split" ? { width: `${100 - we}%` } : {},
1287
- display: m.viewMode === "code" || m.viewMode === "split" ? void 0 : "none"
1315
+ ...i.viewMode === "split" ? { width: `${100 - xe}%` } : {},
1316
+ display: i.viewMode === "code" || i.viewMode === "split" ? void 0 : "none"
1288
1317
  }
1289
1318
  },
1290
- m.viewMode === "split" && /* @__PURE__ */ e.createElement(
1319
+ i.viewMode === "split" && /* @__PURE__ */ e.createElement(
1291
1320
  "div",
1292
1321
  {
1293
1322
  className: "artifactuse-panel__split-handle",
1294
- onMouseDown: Bt
1323
+ onMouseDown: Vt
1295
1324
  },
1296
1325
  /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__split-handle-line" })
1297
1326
  ),
1298
- /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__code-scroll", ref: S }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__line-numbers", ref: J }), /* @__PURE__ */ e.createElement("pre", { className: `artifactuse-panel__code-block language-${ee}` }, /* @__PURE__ */ e.createElement(
1327
+ /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__code-scroll", ref: A }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__line-numbers", ref: J }), /* @__PURE__ */ e.createElement("pre", { className: `artifactuse-panel__code-block language-${ee}` }, /* @__PURE__ */ e.createElement(
1299
1328
  "code",
1300
1329
  {
1301
1330
  ref: g,
@@ -1306,7 +1335,7 @@ function ha({
1306
1335
  "div",
1307
1336
  {
1308
1337
  className: "artifactuse-panel__edit",
1309
- style: { display: m.viewMode === "edit" ? void 0 : "none" }
1338
+ style: { display: i.viewMode === "edit" ? void 0 : "none" }
1310
1339
  },
1311
1340
  /* @__PURE__ */ e.createElement("div", { ref: q, className: "artifactuse-panel__editor-container" })
1312
1341
  )),
@@ -1321,12 +1350,12 @@ function ha({
1321
1350
  },
1322
1351
  /* @__PURE__ */ e.createElement("svg", { width: "16", height: "16", viewBox: "0 0 42 42", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ e.createElement("path", { d: "M16.6667 41.6673V10.4173C16.6667 9.86478 16.4472 9.33488 16.0565 8.94418C15.6658 8.55348 15.1359 8.33398 14.5833 8.33398H4.16667C3.0616 8.33398 2.00179 8.77297 1.22039 9.55437C0.438987 10.3358 0 11.3956 0 12.5007V37.5006C0 38.6057 0.438987 39.6655 1.22039 40.4469C2.00179 41.2283 3.0616 41.6673 4.16667 41.6673H29.1667C30.2717 41.6673 31.3315 41.2283 32.1129 40.4469C32.8943 39.6655 33.3333 38.6057 33.3333 37.5006V27.084C33.3333 26.5314 33.1138 26.0015 32.7231 25.6108C32.3324 25.2201 31.8025 25.0007 31.25 25.0007H0", fill: "#5F51C8" }), /* @__PURE__ */ e.createElement("path", { d: "M39.5833 0H27.0833C25.9327 0 25 0.93274 25 2.08333V14.5833C25 15.7339 25.9327 16.6667 27.0833 16.6667H39.5833C40.7339 16.6667 41.6667 15.7339 41.6667 14.5833V2.08333C41.6667 0.93274 40.7339 0 39.5833 0Z", fill: "#695AE0" })),
1323
1352
  /* @__PURE__ */ e.createElement("span", null, "Artifactuse")
1324
- ), r.code && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__badge artifactuse-panel__badge--secondary" }, vt(r.size))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__footer-right" }, /* @__PURE__ */ e.createElement(
1353
+ ), r.code && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__badge artifactuse-panel__badge--secondary" }, ht(r.size))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__footer-right" }, /* @__PURE__ */ e.createElement(
1325
1354
  "button",
1326
1355
  {
1327
1356
  className: `artifactuse-panel__footer-action ${R ? "artifactuse-panel__footer-action--success" : ""}`,
1328
1357
  title: R ? "Copied!" : "Copy code",
1329
- onClick: xt
1358
+ onClick: Ct
1330
1359
  },
1331
1360
  R ? /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "20 6 9 17 4 12" })) : /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2", ry: "2" }), /* @__PURE__ */ e.createElement("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" }))
1332
1361
  ), /* @__PURE__ */ e.createElement(
@@ -1334,35 +1363,35 @@ function ha({
1334
1363
  {
1335
1364
  className: "artifactuse-panel__footer-action",
1336
1365
  title: "Download",
1337
- onClick: Ct
1366
+ onClick: Lt
1338
1367
  },
1339
1368
  /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), /* @__PURE__ */ e.createElement("polyline", { points: "7 10 12 15 17 10" }), /* @__PURE__ */ e.createElement("line", { x1: "12", y1: "15", x2: "12", y2: "3" }))
1340
- ), W && /* @__PURE__ */ e.createElement("div", { style: { position: "relative" } }, /* @__PURE__ */ e.createElement(
1369
+ ), F && /* @__PURE__ */ e.createElement("div", { style: { position: "relative" } }, /* @__PURE__ */ e.createElement(
1341
1370
  "button",
1342
1371
  {
1343
1372
  className: "artifactuse-panel__footer-action",
1344
1373
  title: "Share",
1345
- onClick: Mt
1374
+ onClick: Tt
1346
1375
  },
1347
1376
  /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("circle", { cx: "18", cy: "5", r: "3" }), /* @__PURE__ */ e.createElement("circle", { cx: "6", cy: "12", r: "3" }), /* @__PURE__ */ e.createElement("circle", { cx: "18", cy: "19", r: "3" }), /* @__PURE__ */ e.createElement("line", { x1: "8.59", y1: "13.51", x2: "15.42", y2: "17.49" }), /* @__PURE__ */ e.createElement("line", { x1: "15.41", y1: "6.51", x2: "8.59", y2: "10.49" }))
1348
- ), d && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__header" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-share-popup__title" }, y === "success" ? Ee ? "Artifact updated!" : "Link created!" : y === "update-list" ? "Update saved artifact" : "Share Artifact"), /* @__PURE__ */ e.createElement("button", { className: "artifactuse-share-popup__close", onClick: Pt }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), /* @__PURE__ */ e.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__body" }, y === "loading" && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__loading" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__spinner" }), /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__loading-text" }, "Creating link...")), y === "error" && /* @__PURE__ */ e.createElement("div", null, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__error" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__error-text" }, $e)), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__actions" }, /* @__PURE__ */ e.createElement("button", { className: "artifactuse-share-popup__btn artifactuse-share-popup__btn--secondary", onClick: () => v("options") }, "Back"), /* @__PURE__ */ e.createElement("button", { className: "artifactuse-share-popup__btn artifactuse-share-popup__btn--primary", onClick: Tt }, "Retry"))), y === "options" && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__options" }, /* @__PURE__ */ e.createElement("button", { className: "artifactuse-share-popup__option", onClick: Ze }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__option-icon" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("path", { d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" }), /* @__PURE__ */ e.createElement("path", { d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" }))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__option-content" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__option-title" }, "Share link"), /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__option-desc" }, "Expires in 30 days"))), /* @__PURE__ */ e.createElement("button", { className: "artifactuse-share-popup__option", onClick: ut }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__option-icon" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("path", { d: "M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z" }), /* @__PURE__ */ e.createElement("polyline", { points: "17 21 17 13 7 13 7 21" }), /* @__PURE__ */ e.createElement("polyline", { points: "7 3 7 8 15 8" }))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__option-content" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__option-title" }, "Save to account"), /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__option-desc" }, "Permanent, manageable"))), /* @__PURE__ */ e.createElement("button", { className: "artifactuse-share-popup__option", onClick: St }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__option-icon" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "23 4 23 10 17 10" }), /* @__PURE__ */ e.createElement("polyline", { points: "1 20 1 14 7 14" }), /* @__PURE__ */ e.createElement("path", { d: "M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15" }))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__option-content" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__option-title" }, "Update saved"), /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__option-desc" }, "Replace an existing artifact")))), y === "update-list" && /* @__PURE__ */ e.createElement("div", null, Be ? /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__loading" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__spinner" }), /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__loading-text" }, "Loading artifacts...")) : ne.length === 0 ? /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__empty" }, "No saved artifacts of this type") : /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__artifact-list" }, ne.map((s) => {
1377
+ ), d && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__header" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-share-popup__title" }, _ === "success" ? ve ? "Artifact updated!" : "Link created!" : _ === "update-list" ? "Update saved artifact" : "Share Artifact"), /* @__PURE__ */ e.createElement("button", { className: "artifactuse-share-popup__close", onClick: Pt }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), /* @__PURE__ */ e.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__body" }, _ === "loading" && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__loading" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__spinner" }), /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__loading-text" }, "Creating link...")), _ === "error" && /* @__PURE__ */ e.createElement("div", null, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__error" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__error-text" }, $e)), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__actions" }, /* @__PURE__ */ e.createElement("button", { className: "artifactuse-share-popup__btn artifactuse-share-popup__btn--secondary", onClick: () => v("options") }, "Back"), /* @__PURE__ */ e.createElement("button", { className: "artifactuse-share-popup__btn artifactuse-share-popup__btn--primary", onClick: At }, "Retry"))), _ === "options" && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__options" }, /* @__PURE__ */ e.createElement("button", { className: "artifactuse-share-popup__option", onClick: Ze }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__option-icon" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("path", { d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" }), /* @__PURE__ */ e.createElement("path", { d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" }))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__option-content" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__option-title" }, "Share link"), /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__option-desc" }, "Expires in 30 days"))), /* @__PURE__ */ e.createElement("button", { className: "artifactuse-share-popup__option", onClick: ut }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__option-icon" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("path", { d: "M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z" }), /* @__PURE__ */ e.createElement("polyline", { points: "17 21 17 13 7 13 7 21" }), /* @__PURE__ */ e.createElement("polyline", { points: "7 3 7 8 15 8" }))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__option-content" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__option-title" }, "Save to account"), /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__option-desc" }, "Permanent, manageable"))), /* @__PURE__ */ e.createElement("button", { className: "artifactuse-share-popup__option", onClick: St }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__option-icon" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "23 4 23 10 17 10" }), /* @__PURE__ */ e.createElement("polyline", { points: "1 20 1 14 7 14" }), /* @__PURE__ */ e.createElement("path", { d: "M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15" }))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__option-content" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__option-title" }, "Update saved"), /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__option-desc" }, "Replace an existing artifact")))), _ === "update-list" && /* @__PURE__ */ e.createElement("div", null, Be ? /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__loading" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__spinner" }), /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__loading-text" }, "Loading artifacts...")) : le.length === 0 ? /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__empty" }, "No saved artifacts of this type") : /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__artifact-list" }, le.map((s) => {
1349
1378
  var b, H, I;
1350
1379
  return /* @__PURE__ */ e.createElement(
1351
1380
  "button",
1352
1381
  {
1353
1382
  key: ((b = s.project) == null ? void 0 : b.uuid) || s.id,
1354
1383
  className: "artifactuse-share-popup__artifact-item",
1355
- onClick: () => At(s)
1384
+ onClick: () => $t(s)
1356
1385
  },
1357
1386
  /* @__PURE__ */ e.createElement("span", { className: "artifactuse-share-popup__artifact-name" }, ((H = s.project) == null ? void 0 : H.name) || "Untitled"),
1358
- /* @__PURE__ */ e.createElement("span", { className: "artifactuse-share-popup__artifact-date" }, ot((I = s.project) == null ? void 0 : I.created_at))
1387
+ /* @__PURE__ */ e.createElement("span", { className: "artifactuse-share-popup__artifact-date" }, mt((I = s.project) == null ? void 0 : I.created_at))
1359
1388
  );
1360
- })), /* @__PURE__ */ e.createElement("button", { className: "artifactuse-share-popup__back-btn", onClick: () => v("options") }, "Back")), y === "success" && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__success" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__success-icon" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "20 6 9 17 4 12" }))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__link-wrapper" }, /* @__PURE__ */ e.createElement(
1389
+ })), /* @__PURE__ */ e.createElement("button", { className: "artifactuse-share-popup__back-btn", onClick: () => v("options") }, "Back")), _ === "success" && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__success" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__success-icon" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "20 6 9 17 4 12" }))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__link-wrapper" }, /* @__PURE__ */ e.createElement(
1361
1390
  "input",
1362
1391
  {
1363
1392
  type: "text",
1364
1393
  className: "artifactuse-share-popup__link",
1365
- value: T,
1394
+ value: P,
1366
1395
  readOnly: !0,
1367
1396
  onClick: (s) => s.target.select()
1368
1397
  }
@@ -1370,23 +1399,23 @@ function ha({
1370
1399
  "button",
1371
1400
  {
1372
1401
  className: `artifactuse-share-popup__copy-btn ${He ? "artifactuse-share-popup__copy-btn--copied" : ""}`,
1373
- onClick: $t
1402
+ onClick: Ht
1374
1403
  },
1375
1404
  He ? "Copied!" : "Copy"
1376
- )), ye && !be && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__expiry" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-share-popup__expiry-icon" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("circle", { cx: "12", cy: "12", r: "10" }), /* @__PURE__ */ e.createElement("line", { x1: "12", y1: "8", x2: "12", y2: "12" }), /* @__PURE__ */ e.createElement("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" }))), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-share-popup__expiry-text" }, "Expires ", ot(ye))), !be && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__save-prompt" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__save-prompt-text" }, "Keep it permanently?"), /* @__PURE__ */ e.createElement("button", { className: "artifactuse-share-popup__save-prompt-btn", onClick: ut }, "Save to account")))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__footer" }, /* @__PURE__ */ e.createElement("a", { href: "https://artifactuse.com", target: "_blank", rel: "noopener noreferrer", className: "artifactuse-share-popup__branding" }, /* @__PURE__ */ e.createElement("svg", { width: "12", height: "12", viewBox: "0 0 42 42", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ e.createElement("path", { d: "M16.6667 41.6673V10.4173C16.6667 9.86478 16.4472 9.33488 16.0565 8.94418C15.6658 8.55348 15.1359 8.33398 14.5833 8.33398H4.16667C3.0616 8.33398 2.00179 8.77297 1.22039 9.55437C0.438987 10.3358 0 11.3956 0 12.5007V37.5006C0 38.6057 0.438987 39.6655 1.22039 40.4469C2.00179 41.2283 3.0616 41.6673 4.16667 41.6673H29.1667C30.2717 41.6673 31.3315 41.2283 32.1129 40.4469C32.8943 39.6655 33.3333 38.6057 33.3333 37.5006V27.084C33.3333 26.5314 33.1138 26.0015 32.7231 25.6108C32.3324 25.2201 31.8025 25.0007 31.25 25.0007H0", fill: "#5F51C8" }), /* @__PURE__ */ e.createElement("path", { d: "M39.5833 0H27.0833C25.9327 0 25 0.93274 25 2.08333V14.5833C25 15.7339 25.9327 16.6667 27.0833 16.6667H39.5833C40.7339 16.6667 41.6667 15.7339 41.6667 14.5833V2.08333C41.6667 0.93274 40.7339 0 39.5833 0Z", fill: "#695AE0" })), /* @__PURE__ */ e.createElement("span", null, "Powered by Artifactuse"))))), N.length > 1 && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__nav" }, /* @__PURE__ */ e.createElement(
1405
+ )), be && !we && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__expiry" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-share-popup__expiry-icon" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("circle", { cx: "12", cy: "12", r: "10" }), /* @__PURE__ */ e.createElement("line", { x1: "12", y1: "8", x2: "12", y2: "12" }), /* @__PURE__ */ e.createElement("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" }))), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-share-popup__expiry-text" }, "Expires ", mt(be))), !we && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__save-prompt" }, /* @__PURE__ */ e.createElement("p", { className: "artifactuse-share-popup__save-prompt-text" }, "Keep it permanently?"), /* @__PURE__ */ e.createElement("button", { className: "artifactuse-share-popup__save-prompt-btn", onClick: ut }, "Save to account")))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-share-popup__footer" }, /* @__PURE__ */ e.createElement("a", { href: "https://artifactuse.com", target: "_blank", rel: "noopener noreferrer", className: "artifactuse-share-popup__branding" }, /* @__PURE__ */ e.createElement("svg", { width: "12", height: "12", viewBox: "0 0 42 42", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ e.createElement("path", { d: "M16.6667 41.6673V10.4173C16.6667 9.86478 16.4472 9.33488 16.0565 8.94418C15.6658 8.55348 15.1359 8.33398 14.5833 8.33398H4.16667C3.0616 8.33398 2.00179 8.77297 1.22039 9.55437C0.438987 10.3358 0 11.3956 0 12.5007V37.5006C0 38.6057 0.438987 39.6655 1.22039 40.4469C2.00179 41.2283 3.0616 41.6673 4.16667 41.6673H29.1667C30.2717 41.6673 31.3315 41.2283 32.1129 40.4469C32.8943 39.6655 33.3333 38.6057 33.3333 37.5006V27.084C33.3333 26.5314 33.1138 26.0015 32.7231 25.6108C32.3324 25.2201 31.8025 25.0007 31.25 25.0007H0", fill: "#5F51C8" }), /* @__PURE__ */ e.createElement("path", { d: "M39.5833 0H27.0833C25.9327 0 25 0.93274 25 2.08333V14.5833C25 15.7339 25.9327 16.6667 27.0833 16.6667H39.5833C40.7339 16.6667 41.6667 15.7339 41.6667 14.5833V2.08333C41.6667 0.93274 40.7339 0 39.5833 0Z", fill: "#695AE0" })), /* @__PURE__ */ e.createElement("span", null, "Powered by Artifactuse"))))), N.length > 1 && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__nav" }, /* @__PURE__ */ e.createElement(
1377
1406
  "button",
1378
1407
  {
1379
1408
  className: "artifactuse-panel__nav-btn",
1380
1409
  disabled: se <= 0,
1381
1410
  title: "Previous artifact",
1382
- onClick: Ht
1411
+ onClick: It
1383
1412
  },
1384
1413
  /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "15 18 9 12 15 6" }))
1385
1414
  ), /* @__PURE__ */ e.createElement(
1386
1415
  "button",
1387
1416
  {
1388
1417
  className: "artifactuse-panel__nav-trigger",
1389
- onClick: () => j(!A)
1418
+ onClick: () => j(!S)
1390
1419
  },
1391
1420
  /* @__PURE__ */ e.createElement("span", null, se + 1, " / ", N.length),
1392
1421
  /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "6 9 12 15 18 9" }))
@@ -1396,10 +1425,10 @@ function ha({
1396
1425
  className: "artifactuse-panel__nav-btn",
1397
1426
  disabled: se >= N.length - 1,
1398
1427
  title: "Next artifact",
1399
- onClick: It
1428
+ onClick: Bt
1400
1429
  },
1401
1430
  /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "9 18 15 12 9 6" }))
1402
- ), A && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__artifact-list" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__artifact-list-header" }, /* @__PURE__ */ e.createElement("span", null, "All Artifacts (", N.length, ")"), /* @__PURE__ */ e.createElement(
1431
+ ), S && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__artifact-list" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__artifact-list-header" }, /* @__PURE__ */ e.createElement("span", null, "All Artifacts (", N.length, ")"), /* @__PURE__ */ e.createElement(
1403
1432
  "button",
1404
1433
  {
1405
1434
  className: "artifactuse-panel__artifact-list-close",
@@ -1411,25 +1440,25 @@ function ha({
1411
1440
  {
1412
1441
  key: s.id,
1413
1442
  className: `artifactuse-panel__artifact-item ${s.id === r.id ? "artifactuse-panel__artifact-item--active" : ""}`,
1414
- onClick: () => mt(s)
1443
+ onClick: () => dt(s)
1415
1444
  },
1416
1445
  /* @__PURE__ */ e.createElement(
1417
1446
  "span",
1418
1447
  {
1419
1448
  className: "artifactuse-panel__artifact-item-icon",
1420
- dangerouslySetInnerHTML: { __html: Ce(s.language) }
1449
+ dangerouslySetInnerHTML: { __html: nt(s.language) }
1421
1450
  }
1422
1451
  ),
1423
1452
  /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__artifact-item-content" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__artifact-item-title" }, s.title || "Untitled"), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__artifact-item-meta" }, Ue(s.language), s.lineCount && ` • ${s.lineCount} lines`)),
1424
1453
  /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__artifact-item-index" }, b + 1)
1425
1454
  )))))))
1426
- )) : /* @__PURE__ */ e.createElement("div", { className: Ge, style: m.isFullscreen ? void 0 : { width: `${K}%` } }, !m.isFullscreen && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__resize-handle", onMouseDown: Ke }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__resize-handle-line" })), /* @__PURE__ */ e.createElement("header", { className: "artifactuse-panel__header artifactuse-panel__header--simple" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__title" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__icon" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "16 18 22 12 16 6" }), /* @__PURE__ */ e.createElement("polyline", { points: "8 6 2 12 8 18" }))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__title-content" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__name" }, "Artifacts"), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__meta" }, N.length, " available"))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__actions" }, /* @__PURE__ */ e.createElement(
1455
+ )) : /* @__PURE__ */ e.createElement("div", { className: Ge, style: i.isFullscreen ? void 0 : { width: `${K}%` } }, !i.isFullscreen && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__resize-handle", onMouseDown: Ke }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__resize-handle-line" })), /* @__PURE__ */ e.createElement("header", { className: "artifactuse-panel__header artifactuse-panel__header--simple" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__title" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__icon" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "16 18 22 12 16 6" }), /* @__PURE__ */ e.createElement("polyline", { points: "8 6 2 12 8 18" }))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__title-content" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__name" }, "Artifacts"), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__meta" }, N.length, " available"))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__actions" }, /* @__PURE__ */ e.createElement(
1427
1456
  "button",
1428
1457
  {
1429
1458
  className: `artifactuse-panel__action ${Q ? "artifactuse-panel__action--loading" : ""}`,
1430
1459
  disabled: Q,
1431
1460
  title: "Download all as ZIP",
1432
- onClick: Lt
1461
+ onClick: Mt
1433
1462
  },
1434
1463
  Q ? /* @__PURE__ */ e.createElement("svg", { className: "artifactuse-panel__spinner-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("circle", { cx: "12", cy: "12", r: "10", strokeDasharray: "32", strokeDashoffset: "32" })) : /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), /* @__PURE__ */ e.createElement("polyline", { points: "7 10 12 15 17 10" }), /* @__PURE__ */ e.createElement("line", { x1: "12", y1: "15", x2: "12", y2: "3" }))
1435
1464
  ), /* @__PURE__ */ e.createElement(
@@ -1437,7 +1466,7 @@ function ha({
1437
1466
  {
1438
1467
  className: "artifactuse-panel__action artifactuse-panel__action--close",
1439
1468
  title: "Close panel",
1440
- onClick: w
1469
+ onClick: k
1441
1470
  },
1442
1471
  /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), /* @__PURE__ */ e.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" }))
1443
1472
  ))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__list" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__list-items" }, N.map((s, b) => /* @__PURE__ */ e.createElement(
@@ -1445,13 +1474,13 @@ function ha({
1445
1474
  {
1446
1475
  key: s.id,
1447
1476
  className: "artifactuse-panel__list-item",
1448
- onClick: () => mt(s)
1477
+ onClick: () => dt(s)
1449
1478
  },
1450
1479
  /* @__PURE__ */ e.createElement(
1451
1480
  "span",
1452
1481
  {
1453
1482
  className: "artifactuse-panel__list-item-icon",
1454
- dangerouslySetInnerHTML: { __html: Ce(s.language) }
1483
+ dangerouslySetInnerHTML: { __html: nt(s.language) }
1455
1484
  }
1456
1485
  ),
1457
1486
  /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__list-item-content" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__list-item-title" }, s.title || "Untitled"), /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__list-item-meta" }, Ue(s.language), s.lineCount && ` • ${s.lineCount} lines`)),
@@ -1466,28 +1495,10 @@ function ha({
1466
1495
  },
1467
1496
  /* @__PURE__ */ e.createElement("svg", { width: "16", height: "16", viewBox: "0 0 42 42", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ e.createElement("path", { d: "M16.6667 41.6673V10.4173C16.6667 9.86478 16.4472 9.33488 16.0565 8.94418C15.6658 8.55348 15.1359 8.33398 14.5833 8.33398H4.16667C3.0616 8.33398 2.00179 8.77297 1.22039 9.55437C0.438987 10.3358 0 11.3956 0 12.5007V37.5006C0 38.6057 0.438987 39.6655 1.22039 40.4469C2.00179 41.2283 3.0616 41.6673 4.16667 41.6673H29.1667C30.2717 41.6673 31.3315 41.2283 32.1129 40.4469C32.8943 39.6655 33.3333 38.6057 33.3333 37.5006V27.084C33.3333 26.5314 33.1138 26.0015 32.7231 25.6108C32.3324 25.2201 31.8025 25.0007 31.25 25.0007H0", fill: "#5F51C8" }), /* @__PURE__ */ e.createElement("path", { d: "M39.5833 0H27.0833C25.9327 0 25 0.93274 25 2.08333V14.5833C25 15.7339 25.9327 16.6667 27.0833 16.6667H39.5833C40.7339 16.6667 41.6667 15.7339 41.6667 14.5833V2.08333C41.6667 0.93274 40.7339 0 39.5833 0Z", fill: "#695AE0" })),
1468
1497
  /* @__PURE__ */ e.createElement("span", null, "Artifactuse")
1469
- ))) : /* @__PURE__ */ e.createElement("div", { className: Ge, style: m.isFullscreen ? void 0 : { width: `${K}%` } }, !m.isFullscreen && /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__resize-handle", onMouseDown: Ke }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__resize-handle-line" })), /* @__PURE__ */ e.createElement("header", { className: "artifactuse-panel__header artifactuse-panel__header--simple" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__title" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__icon" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("polyline", { points: "16 18 22 12 16 6" }), /* @__PURE__ */ e.createElement("polyline", { points: "8 6 2 12 8 18" }))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__title-content" }, /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel__name" }, "Artifacts"))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__actions" }, /* @__PURE__ */ e.createElement(
1470
- "button",
1471
- {
1472
- className: "artifactuse-panel__action artifactuse-panel__action--close",
1473
- title: "Close panel",
1474
- onClick: w
1475
- },
1476
- /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ e.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), /* @__PURE__ */ e.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" }))
1477
- ))), /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__empty" }, /* @__PURE__ */ e.createElement("div", { className: "artifactuse-panel__empty-icon" }, /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5" }, /* @__PURE__ */ e.createElement("path", { d: "M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z" }), /* @__PURE__ */ e.createElement("polyline", { points: "14 2 14 8 20 8" }))), /* @__PURE__ */ e.createElement("h3", { className: "artifactuse-panel__empty-title" }, "No artifacts yet"), /* @__PURE__ */ e.createElement("p", { className: "artifactuse-panel__empty-text" }, "Code blocks, forms, and other interactive content will appear here as the AI generates them.")), /* @__PURE__ */ e.createElement("footer", { className: "artifactuse-panel__footer artifactuse-panel__footer--simple" }, f && /* @__PURE__ */ e.createElement(
1478
- "a",
1479
- {
1480
- href: "https://artifactuse.com",
1481
- target: "_blank",
1482
- rel: "noopener noreferrer",
1483
- className: "artifactuse-panel__branding"
1484
- },
1485
- /* @__PURE__ */ e.createElement("svg", { width: "16", height: "16", viewBox: "0 0 42 42", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ e.createElement("path", { d: "M16.6667 41.6673V10.4173C16.6667 9.86478 16.4472 9.33488 16.0565 8.94418C15.6658 8.55348 15.1359 8.33398 14.5833 8.33398H4.16667C3.0616 8.33398 2.00179 8.77297 1.22039 9.55437C0.438987 10.3358 0 11.3956 0 12.5007V37.5006C0 38.6057 0.438987 39.6655 1.22039 40.4469C2.00179 41.2283 3.0616 41.6673 4.16667 41.6673H29.1667C30.2717 41.6673 31.3315 41.2283 32.1129 40.4469C32.8943 39.6655 33.3333 38.6057 33.3333 37.5006V27.084C33.3333 26.5314 33.1138 26.0015 32.7231 25.6108C32.3324 25.2201 31.8025 25.0007 31.25 25.0007H0", fill: "#5F51C8" }), /* @__PURE__ */ e.createElement("path", { d: "M39.5833 0H27.0833C25.9327 0 25 0.93274 25 2.08333V14.5833C25 15.7339 25.9327 16.6667 27.0833 16.6667H39.5833C40.7339 16.6667 41.6667 15.7339 41.6667 14.5833V2.08333C41.6667 0.93274 40.7339 0 39.5833 0Z", fill: "#695AE0" })),
1486
- /* @__PURE__ */ e.createElement("span", null, "Artifactuse")
1487
1498
  )));
1488
1499
  }
1489
- function ga({ className: t = "" }) {
1490
- const { state: a, artifactCount: l, hasArtifacts: n, togglePanel: i } = Pe(), u = M(() => l > 99 ? "99+" : String(l), [l]), m = [
1500
+ function ya({ className: t = "" }) {
1501
+ const { state: a, artifactCount: l, hasArtifacts: n, togglePanel: o } = Te(), u = C(() => l > 99 ? "99+" : String(l), [l]), i = [
1491
1502
  "artifactuse-panel-toggle",
1492
1503
  a.isPanelOpen && "artifactuse-panel-toggle--active",
1493
1504
  n && "artifactuse-panel-toggle--has-artifacts",
@@ -1496,25 +1507,28 @@ function ga({ className: t = "" }) {
1496
1507
  return /* @__PURE__ */ e.createElement(
1497
1508
  "button",
1498
1509
  {
1499
- className: m,
1500
- onClick: i,
1510
+ className: i,
1511
+ onClick: o,
1501
1512
  title: a.isPanelOpen ? "Close artifacts panel" : "Open artifacts panel"
1502
1513
  },
1503
1514
  /* @__PURE__ */ e.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ e.createElement("polyline", { points: "16 18 22 12 16 6" }), /* @__PURE__ */ e.createElement("polyline", { points: "8 6 2 12 8 18" })),
1504
1515
  l > 0 && /* @__PURE__ */ e.createElement("span", { className: "artifactuse-panel-toggle-badge" }, u)
1505
1516
  );
1506
1517
  }
1507
- const gt = Wt(null);
1518
+ const yt = Wt(null);
1508
1519
  function ua({ children: t, config: a = {} }) {
1509
1520
  const l = B(null);
1510
- l.current || (l.current = qt(a));
1511
- const n = l.current, [i, u] = k({
1521
+ l.current || (l.current = Dt(a));
1522
+ const n = l.current, [o, u] = w({
1512
1523
  artifacts: [],
1513
1524
  activeArtifactId: null,
1514
1525
  isPanelOpen: !1,
1515
1526
  viewMode: "preview",
1516
- isFullscreen: !1
1517
- }), [m, r] = k(() => n.getPanelTypes());
1527
+ isFullscreen: !1,
1528
+ openTabs: [],
1529
+ tabViewModes: {},
1530
+ forceEmptyView: !1
1531
+ }), [i, r] = w(() => n.getPanelTypes());
1518
1532
  z(() => {
1519
1533
  const E = n.state.subscribe((g) => {
1520
1534
  u({
@@ -1522,28 +1536,31 @@ function ua({ children: t, config: a = {} }) {
1522
1536
  activeArtifactId: g.activeArtifactId,
1523
1537
  isPanelOpen: g.isPanelOpen,
1524
1538
  viewMode: g.viewMode,
1525
- isFullscreen: g.isFullscreen
1539
+ isFullscreen: g.isFullscreen,
1540
+ openTabs: g.openTabs,
1541
+ tabViewModes: g.tabViewModes,
1542
+ forceEmptyView: g.forceEmptyView
1526
1543
  });
1527
1544
  });
1528
1545
  return n.applyTheme(), () => {
1529
1546
  E(), n.destroy();
1530
1547
  };
1531
1548
  }, [n]);
1532
- const x = M(() => i.activeArtifactId && i.artifacts.find((E) => E.id === i.activeArtifactId) || null, [i.artifacts, i.activeArtifactId]), o = i.artifacts.filter((E) => !E.isInline).length, w = o > 0, P = M(() => x ? n.getPanelUrl(x) : null, [x, n]), L = p((E) => {
1549
+ const x = C(() => o.activeArtifactId && o.artifacts.find((E) => E.id === o.activeArtifactId) || null, [o.artifacts, o.activeArtifactId]), m = o.artifacts.filter((E) => !E.isInline).length, k = m > 0, T = C(() => x ? n.getPanelUrl(x) : null, [x, n]), M = p((E) => {
1533
1550
  n.setTheme(E), n.applyTheme();
1534
1551
  }, [n]), $ = p((E, g) => {
1535
1552
  n.registerPanel(E, g), r(n.getPanelTypes());
1536
1553
  }, [n]), h = p((E) => {
1537
1554
  n.unregisterPanel(E), r(n.getPanelTypes());
1538
- }, [n]), c = M(() => ({
1555
+ }, [n]), c = C(() => ({
1539
1556
  instance: n,
1540
- state: i,
1557
+ state: o,
1541
1558
  activeArtifact: x,
1542
- artifactCount: o,
1543
- hasArtifacts: w,
1559
+ artifactCount: m,
1560
+ hasArtifacts: k,
1544
1561
  // Panel computed
1545
- panelTypes: m,
1546
- activePanelUrl: P,
1562
+ panelTypes: i,
1563
+ activePanelUrl: T,
1547
1564
  // Methods
1548
1565
  processMessage: n.processMessage,
1549
1566
  initializeContent: n.initializeContent,
@@ -1551,6 +1568,7 @@ function ua({ children: t, config: a = {} }) {
1551
1568
  openFile: n.openFile,
1552
1569
  openCode: n.openCode,
1553
1570
  updateFile: n.updateFile,
1571
+ openPanel: n.openPanel,
1554
1572
  closePanel: n.closePanel,
1555
1573
  togglePanel: n.togglePanel,
1556
1574
  toggleFullscreen: n.toggleFullscreen,
@@ -1562,6 +1580,10 @@ function ua({ children: t, config: a = {} }) {
1562
1580
  registerPanel: $,
1563
1581
  unregisterPanel: h,
1564
1582
  getPanelTypes: n.getPanelTypes,
1583
+ // Multi-tab
1584
+ closeTab: n.closeTab,
1585
+ closeOtherTabs: n.closeOtherTabs,
1586
+ closeAllTabs: n.closeAllTabs,
1565
1587
  // Events
1566
1588
  on: n.on,
1567
1589
  off: n.off,
@@ -1569,76 +1591,76 @@ function ua({ children: t, config: a = {} }) {
1569
1591
  clearArtifacts: () => n.state.clear(),
1570
1592
  // Theme
1571
1593
  applyTheme: n.applyTheme,
1572
- setTheme: L,
1594
+ setTheme: M,
1573
1595
  getTheme: n.getTheme
1574
1596
  }), [
1575
1597
  n,
1576
- i,
1577
- x,
1578
1598
  o,
1579
- w,
1599
+ x,
1580
1600
  m,
1581
- P,
1582
- L,
1601
+ k,
1602
+ i,
1603
+ T,
1604
+ M,
1583
1605
  $,
1584
1606
  h
1585
1607
  ]);
1586
- return /* @__PURE__ */ e.createElement(gt.Provider, { value: c }, t);
1608
+ return /* @__PURE__ */ e.createElement(yt.Provider, { value: c }, t);
1587
1609
  }
1588
- function Pe() {
1589
- const t = Vt(gt);
1610
+ function Te() {
1611
+ const t = zt(yt);
1590
1612
  if (!t)
1591
1613
  throw new Error("useArtifactuse must be used within an ArtifactuseProvider");
1592
1614
  return t;
1593
1615
  }
1594
- function ma(t, a) {
1595
- const { on: l, off: n } = Pe();
1616
+ function da(t, a) {
1617
+ const { on: l, off: n } = Te();
1596
1618
  z(() => {
1597
- const i = l(t, a);
1619
+ const o = l(t, a);
1598
1620
  return () => {
1599
- typeof i == "function" ? i() : n(t, a);
1621
+ typeof o == "function" ? o() : n(t, a);
1600
1622
  };
1601
1623
  }, [t, a, l, n]);
1602
1624
  }
1603
- function da() {
1625
+ function fa() {
1604
1626
  const {
1605
1627
  registerPanel: t,
1606
1628
  unregisterPanel: a,
1607
1629
  hasPanel: l,
1608
1630
  panelTypes: n,
1609
- instance: i
1610
- } = Pe(), u = p((r) => l({ type: r }), [l]), m = p((r, x = {}) => {
1611
- var o;
1612
- return ((o = i.panelResolver) == null ? void 0 : o.resolve(r, x)) || null;
1613
- }, [i]);
1631
+ instance: o
1632
+ } = Te(), u = p((r) => l({ type: r }), [l]), i = p((r, x = {}) => {
1633
+ var m;
1634
+ return ((m = o.panelResolver) == null ? void 0 : m.resolve(r, x)) || null;
1635
+ }, [o]);
1614
1636
  return {
1615
1637
  register: t,
1616
1638
  unregister: a,
1617
1639
  isRegistered: u,
1618
- getPanelUrl: m,
1640
+ getPanelUrl: i,
1619
1641
  types: n,
1620
- defaults: ht
1642
+ defaults: gt
1621
1643
  };
1622
1644
  }
1623
1645
  const _a = {
1624
1646
  ArtifactuseProvider: ua,
1625
- useArtifactuse: Pe,
1626
- useArtifactuseEvent: ma,
1627
- usePanelRegistry: da,
1628
- DEFAULT_PANELS: ht
1647
+ useArtifactuse: Te,
1648
+ useArtifactuseEvent: da,
1649
+ usePanelRegistry: fa,
1650
+ DEFAULT_PANELS: gt
1629
1651
  };
1630
1652
  export {
1631
- oa as ArtifactuseAgentMessage,
1632
- jt as ArtifactuseCard,
1633
- Xt as ArtifactuseInlineForm,
1634
- ha as ArtifactusePanel,
1635
- ga as ArtifactusePanelToggle,
1653
+ ma as ArtifactuseAgentMessage,
1654
+ Ot as ArtifactuseCard,
1655
+ Zt as ArtifactuseInlineForm,
1656
+ ga as ArtifactusePanel,
1657
+ ya as ArtifactusePanelToggle,
1636
1658
  ua as ArtifactuseProvider,
1637
- sa as ArtifactuseSocialPreview,
1638
- na as ArtifactuseViewer,
1639
- ht as DEFAULT_PANELS,
1659
+ na as ArtifactuseSocialPreview,
1660
+ la as ArtifactuseViewer,
1661
+ gt as DEFAULT_PANELS,
1640
1662
  _a as default,
1641
- Pe as useArtifactuse,
1642
- ma as useArtifactuseEvent,
1643
- da as usePanelRegistry
1663
+ Te as useArtifactuse,
1664
+ da as useArtifactuseEvent,
1665
+ fa as usePanelRegistry
1644
1666
  };