netra-artifacts 0.1.0-alpha.10 → 0.1.0-alpha.12
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.
- package/dist/iframe/HtmlArtifactCard.d.ts.map +1 -1
- package/dist/iframe/HtmlArtifactCard.js +8 -3
- package/dist/iframe/HtmlArtifactCard.js.map +1 -1
- package/dist/iframe/HtmlArtifactModal.d.ts +7 -1
- package/dist/iframe/HtmlArtifactModal.d.ts.map +1 -1
- package/dist/iframe/HtmlArtifactModal.js +11 -2
- package/dist/iframe/HtmlArtifactModal.js.map +1 -1
- package/dist/iframe/HtmlArtifactPreview.d.ts +5 -0
- package/dist/iframe/HtmlArtifactPreview.d.ts.map +1 -1
- package/dist/iframe/HtmlArtifactPreview.js +57 -3
- package/dist/iframe/HtmlArtifactPreview.js.map +1 -1
- package/dist/iframe/HtmlArtifactToolbar.d.ts +2 -0
- package/dist/iframe/HtmlArtifactToolbar.d.ts.map +1 -1
- package/dist/iframe/HtmlArtifactToolbar.js +3 -2
- package/dist/iframe/HtmlArtifactToolbar.js.map +1 -1
- package/dist/iframe/iframeSizing.d.ts +0 -11
- package/dist/iframe/iframeSizing.d.ts.map +1 -1
- package/dist/iframe/iframeSizing.js +11 -1
- package/dist/iframe/iframeSizing.js.map +1 -1
- package/dist/iframe/styles.d.ts +1 -1
- package/dist/iframe/styles.d.ts.map +1 -1
- package/dist/iframe/styles.js +8 -0
- package/dist/iframe/styles.js.map +1 -1
- package/dist/prompts/threejsGamePrompt.d.ts +1 -1
- package/dist/prompts/threejsGamePrompt.d.ts.map +1 -1
- package/dist/prompts/threejsGamePrompt.js +14 -4
- package/dist/prompts/threejsGamePrompt.js.map +1 -1
- package/dist-cjs/iframe/HtmlArtifactCard.js +8 -3
- package/dist-cjs/iframe/HtmlArtifactCard.js.map +1 -1
- package/dist-cjs/iframe/HtmlArtifactModal.js +11 -2
- package/dist-cjs/iframe/HtmlArtifactModal.js.map +1 -1
- package/dist-cjs/iframe/HtmlArtifactPreview.js +57 -3
- package/dist-cjs/iframe/HtmlArtifactPreview.js.map +1 -1
- package/dist-cjs/iframe/HtmlArtifactToolbar.js +3 -2
- package/dist-cjs/iframe/HtmlArtifactToolbar.js.map +1 -1
- package/dist-cjs/iframe/iframeSizing.js +11 -1
- package/dist-cjs/iframe/iframeSizing.js.map +1 -1
- package/dist-cjs/iframe/styles.js +8 -0
- package/dist-cjs/iframe/styles.js.map +1 -1
- package/dist-cjs/prompts/threejsGamePrompt.js +14 -4
- package/dist-cjs/prompts/threejsGamePrompt.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlArtifactCard.d.ts","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactCard.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAI5B;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"HtmlArtifactCard.d.ts","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactCard.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAI5B;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,2CA0O5D"}
|
|
@@ -21,6 +21,10 @@ export function HtmlArtifactCard(props) {
|
|
|
21
21
|
const [tab, setTab] = React.useState(defaultTab);
|
|
22
22
|
const [copied, setCopied] = React.useState(false);
|
|
23
23
|
const [fullscreen, setFullscreen] = React.useState(false);
|
|
24
|
+
// Bumped by the "Re-run" action to force the preview iframe to reload and
|
|
25
|
+
// re-execute scripts/games from scratch.
|
|
26
|
+
const [runSignal, setRunSignal] = React.useState(0);
|
|
27
|
+
const onRerun = React.useCallback(() => setRunSignal((n) => n + 1), []);
|
|
24
28
|
const streaming = artifact.status === "streaming";
|
|
25
29
|
const errored = artifact.status === "error";
|
|
26
30
|
// While streaming, feed the raw growing HTML to the preview's progressive
|
|
@@ -102,17 +106,18 @@ export function HtmlArtifactCard(props) {
|
|
|
102
106
|
// sits inline like native chat content — no card frame, no window, no border.
|
|
103
107
|
// A faint action row appears only on hover so the clean UI stays clean.
|
|
104
108
|
if (effectivePresentation === "seamless") {
|
|
105
|
-
return (_jsxs("div", { className: `aha-scope${className ? ` ${className}` : ""}`, children: [_jsxs("div", { className: "aha-seamless", children: [_jsx(HtmlArtifactPreview, { html: previewHtml, streaming: streaming, errored: errored, title: artifact.title, theme: theme, bare: true, options: { minHeight: 0, ...previewOptions } }), showToolbar && !streaming && (_jsxs("div", { className: "aha-seamless-actions", children: [allowCopy && (_jsx("button", { type: "button", className: "aha-iconbtn", onClick: onCopy, title: "Copy HTML", "aria-label": "Copy HTML", children: copied ? CHECK_ICON : COPY_ICON })), allowPdf && (_jsx("button", { type: "button", className: "aha-iconbtn", onClick: onDownloadPdf, title: "Download PDF", "aria-label": "Download PDF", children: PDF_ICON })), allowFullscreen && (_jsx("button", { type: "button", className: "aha-iconbtn", onClick: () => setFullscreen(true), title: "Fullscreen", "aria-label": "Fullscreen", children: EXPAND_ICON }))] }))] }), allowFullscreen && (_jsx(HtmlArtifactModal, { open: fullscreen, onClose: () => setFullscreen(false), title: artifact.title, children: _jsx(HtmlArtifactPreview, { html: previewHtml, streaming: streaming, errored: errored, title: artifact.title, theme: theme, options: { ...previewOptions, autoResize: false, minHeight: 640, maxHeight: 100000 } }) }))] }));
|
|
109
|
+
return (_jsxs("div", { className: `aha-scope${className ? ` ${className}` : ""}`, children: [_jsxs("div", { className: "aha-seamless", children: [_jsx(HtmlArtifactPreview, { html: previewHtml, streaming: streaming, errored: errored, title: artifact.title, theme: theme, bare: true, options: { minHeight: 0, ...previewOptions }, reloadSignal: runSignal }), showToolbar && !streaming && (_jsxs("div", { className: "aha-seamless-actions", children: [_jsx("button", { type: "button", className: "aha-iconbtn", onClick: onRerun, title: "Re-run", "aria-label": "Re-run artifact", children: RERUN_ICON }), allowCopy && (_jsx("button", { type: "button", className: "aha-iconbtn", onClick: onCopy, title: "Copy HTML", "aria-label": "Copy HTML", children: copied ? CHECK_ICON : COPY_ICON })), allowPdf && (_jsx("button", { type: "button", className: "aha-iconbtn", onClick: onDownloadPdf, title: "Download PDF", "aria-label": "Download PDF", children: PDF_ICON })), allowFullscreen && (_jsx("button", { type: "button", className: "aha-iconbtn", onClick: () => setFullscreen(true), title: "Fullscreen", "aria-label": "Fullscreen", children: EXPAND_ICON }))] }))] }), allowFullscreen && (_jsx(HtmlArtifactModal, { open: fullscreen, onClose: () => setFullscreen(false), title: artifact.title, onViewChange: onRerun, children: _jsx(HtmlArtifactPreview, { html: previewHtml, streaming: streaming, errored: errored, title: artifact.title, theme: theme, options: { ...previewOptions, autoResize: false, minHeight: 640, maxHeight: 100000 }, reloadSignal: runSignal }) }))] }));
|
|
106
110
|
}
|
|
107
|
-
return (_jsxs("div", { className: `aha-scope${className ? ` ${className}` : ""}`, children: [_jsxs("div", { className: "aha-card", "data-variant": variant, style: { ["--aha-radius"]: `${RADIUS[radius]}px` }, children: [showToolbar && (_jsx(HtmlArtifactToolbar, { title: artifact.title, tab: tab, onTabChange: setTab, allowCopy: allowCopy, allowDownload: allowDownload, allowPdf: allowPdf, allowFullscreen: allowFullscreen, copied: copied, streaming: streaming, onCopy: onCopy, onDownload: onDownload, onDownloadPdf: onDownloadPdf, onFullscreen: () => setFullscreen(true) })), tab === "preview" ? (_jsx(HtmlArtifactPreview, { html: previewHtml, streaming: streaming, errored: errored, title: artifact.title, theme: theme, options: previewOptions })) : (_jsx(HtmlArtifactCodeView, { html: sourceHtml, maxHeight: previewOptions?.maxHeight ?? 900 }))] }), allowFullscreen && (_jsx(HtmlArtifactModal, { open: fullscreen, onClose: () => setFullscreen(false), title: artifact.title, children: _jsx(HtmlArtifactPreview, { html: previewHtml, streaming: streaming, errored: errored, title: artifact.title, theme: theme, options: {
|
|
111
|
+
return (_jsxs("div", { className: `aha-scope${className ? ` ${className}` : ""}`, children: [_jsxs("div", { className: "aha-card", "data-variant": variant, style: { ["--aha-radius"]: `${RADIUS[radius]}px` }, children: [showToolbar && (_jsx(HtmlArtifactToolbar, { title: artifact.title, tab: tab, onTabChange: setTab, allowCopy: allowCopy, allowDownload: allowDownload, allowPdf: allowPdf, allowFullscreen: allowFullscreen, copied: copied, streaming: streaming, onCopy: onCopy, onDownload: onDownload, onDownloadPdf: onDownloadPdf, onFullscreen: () => setFullscreen(true), onRerun: onRerun })), tab === "preview" ? (_jsx(HtmlArtifactPreview, { html: previewHtml, streaming: streaming, errored: errored, title: artifact.title, theme: theme, options: previewOptions, reloadSignal: runSignal })) : (_jsx(HtmlArtifactCodeView, { html: sourceHtml, maxHeight: previewOptions?.maxHeight ?? 900 }))] }), allowFullscreen && (_jsx(HtmlArtifactModal, { open: fullscreen, onClose: () => setFullscreen(false), title: artifact.title, onViewChange: onRerun, children: _jsx(HtmlArtifactPreview, { html: previewHtml, streaming: streaming, errored: errored, title: artifact.title, theme: theme, options: {
|
|
108
112
|
...previewOptions,
|
|
109
113
|
autoResize: false,
|
|
110
114
|
minHeight: 640,
|
|
111
115
|
maxHeight: 100000,
|
|
112
|
-
} }) }))] }));
|
|
116
|
+
}, reloadSignal: runSignal }) }))] }));
|
|
113
117
|
}
|
|
114
118
|
const COPY_ICON = (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: [_jsx("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2.5" }), _jsx("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })] }));
|
|
115
119
|
const CHECK_ICON = (_jsx("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: _jsx("polyline", { points: "20 6 9 17 4 12" }) }));
|
|
116
120
|
const EXPAND_ICON = (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: [_jsx("polyline", { points: "15 3 21 3 21 9" }), _jsx("polyline", { points: "9 21 3 21 3 15" }), _jsx("line", { x1: "21", y1: "3", x2: "14", y2: "10" }), _jsx("line", { x1: "3", y1: "21", x2: "10", y2: "14" })] }));
|
|
121
|
+
const RERUN_ICON = (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: [_jsx("polyline", { points: "23 4 23 10 17 10" }), _jsx("polyline", { points: "1 20 1 14 7 14" }), _jsx("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" })] }));
|
|
117
122
|
const PDF_ICON = (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: [_jsx("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), _jsx("polyline", { points: "14 2 14 8 20 8" }), _jsx("path", { d: "M9 15h1.2a1.3 1.3 0 0 0 0-2.6H9V18" }), _jsx("path", { d: "M15.5 12.4H14V18" }), _jsx("path", { d: "M14 15.4h1.3" })] }));
|
|
118
123
|
//# sourceMappingURL=HtmlArtifactCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlArtifactCard.js","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactCard.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAOhD,MAAM,MAAM,GAA+B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAEpF;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,iBAAiB,EAAE,CAAC;IACpB,MAAM,EACJ,QAAQ,EACR,OAAO,GAAG,UAAU,EACpB,MAAM,GAAG,KAAK,EACd,WAAW,GAAG,IAAI,EAClB,UAAU,GAAG,SAAS,EACtB,eAAe,GAAG,IAAI,EACtB,SAAS,GAAG,IAAI,EAChB,aAAa,GAAG,IAAI,EACpB,QAAQ,GAAG,IAAI,EACf,YAAY,GAAG,MAAM,EACrB,KAAK,EACL,cAAc,EACd,SAAS,GACV,GAAG,KAAK,CAAC;IACV,MAAM,qBAAqB,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;IAE9E,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAc,UAAU,CAAC,CAAC;IAC9D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"HtmlArtifactCard.js","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,12 @@ export interface HtmlArtifactModalProps {
|
|
|
4
4
|
onClose: () => void;
|
|
5
5
|
title?: string;
|
|
6
6
|
children: React.ReactNode;
|
|
7
|
+
/**
|
|
8
|
+
* Called when the view should re-run the artifact — on the Re-run button and
|
|
9
|
+
* automatically whenever the device width changes (so games/responsive layouts
|
|
10
|
+
* re-initialise at the new size). Wire this to the card's re-run signal.
|
|
11
|
+
*/
|
|
12
|
+
onViewChange?: () => void;
|
|
7
13
|
}
|
|
8
14
|
/**
|
|
9
15
|
* Premium fullscreen viewer with a responsive testbench: switch the artifact
|
|
@@ -12,5 +18,5 @@ export interface HtmlArtifactModalProps {
|
|
|
12
18
|
* light↔dark (hue-preserving) so a transparent, light-on-dark camouflage
|
|
13
19
|
* artifact is crystal-clear on a light surface too.
|
|
14
20
|
*/
|
|
15
|
-
export declare function HtmlArtifactModal({ open, onClose, title, children }: HtmlArtifactModalProps): import("react/jsx-runtime").JSX.Element | null;
|
|
21
|
+
export declare function HtmlArtifactModal({ open, onClose, title, children, onViewChange }: HtmlArtifactModalProps): import("react/jsx-runtime").JSX.Element | null;
|
|
16
22
|
//# sourceMappingURL=HtmlArtifactModal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlArtifactModal.d.ts","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactModal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AA+BD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"HtmlArtifactModal.d.ts","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactModal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AA+BD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,sBAAsB,kDA0KzG"}
|
|
@@ -29,10 +29,19 @@ const DEVICES = [
|
|
|
29
29
|
* light↔dark (hue-preserving) so a transparent, light-on-dark camouflage
|
|
30
30
|
* artifact is crystal-clear on a light surface too.
|
|
31
31
|
*/
|
|
32
|
-
export function HtmlArtifactModal({ open, onClose, title, children }) {
|
|
32
|
+
export function HtmlArtifactModal({ open, onClose, title, children, onViewChange }) {
|
|
33
33
|
useArtifactStyles();
|
|
34
34
|
const [device, setDevice] = React.useState("desktop");
|
|
35
35
|
const [inverted, setInverted] = React.useState(false);
|
|
36
|
+
// Switching device width must re-run the artifact so games/responsive layouts
|
|
37
|
+
// re-initialise to the new viewport (e.g. a game re-frames for 9:16 mobile).
|
|
38
|
+
const changeDevice = React.useCallback((id) => {
|
|
39
|
+
setDevice((prev) => {
|
|
40
|
+
if (prev !== id)
|
|
41
|
+
onViewChange?.();
|
|
42
|
+
return id;
|
|
43
|
+
});
|
|
44
|
+
}, [onViewChange]);
|
|
36
45
|
React.useEffect(() => {
|
|
37
46
|
if (!open)
|
|
38
47
|
return;
|
|
@@ -70,7 +79,7 @@ export function HtmlArtifactModal({ open, onClose, title, children }) {
|
|
|
70
79
|
margin: "0 auto",
|
|
71
80
|
width: "100%",
|
|
72
81
|
maxWidth: 1280,
|
|
73
|
-
}, children: [_jsxs("div", { className: "aha-toolbar", children: [_jsxs("span", { className: "aha-dots", "aria-hidden": true, children: [_jsx("span", { className: "aha-dot", style: { background: "#ff5f57" } }), _jsx("span", { className: "aha-dot", style: { background: "#febc2e" } }), _jsx("span", { className: "aha-dot", style: { background: "#28c840" } })] }), _jsx("strong", { className: "aha-title", children: title ?? "Artifact" }), _jsx("div", { style: { flex: 1 } }), _jsx("div", { className: "aha-seg", role: "tablist", "aria-label": "Preview width", children: DEVICES.map((d) => (_jsxs("button", { type: "button", role: "tab", "aria-selected": device === d.id, "data-active": device === d.id, onClick: () =>
|
|
82
|
+
}, children: [_jsxs("div", { className: "aha-toolbar", children: [_jsxs("span", { className: "aha-dots", "aria-hidden": true, children: [_jsx("span", { className: "aha-dot", style: { background: "#ff5f57" } }), _jsx("span", { className: "aha-dot", style: { background: "#febc2e" } }), _jsx("span", { className: "aha-dot", style: { background: "#28c840" } })] }), _jsx("strong", { className: "aha-title", children: title ?? "Artifact" }), _jsx("div", { style: { flex: 1 } }), _jsx("div", { className: "aha-seg", role: "tablist", "aria-label": "Preview width", children: DEVICES.map((d) => (_jsxs("button", { type: "button", role: "tab", "aria-selected": device === d.id, "data-active": device === d.id, onClick: () => changeDevice(d.id), title: d.label, style: { display: "inline-flex", alignItems: "center", gap: 6 }, children: [d.icon, _jsx("span", { className: "aha-seg-label", style: { fontSize: 12 }, children: d.label })] }, d.id))) }), onViewChange && (_jsx("button", { type: "button", className: "aha-iconbtn", onClick: () => onViewChange(), title: "Re-run", "aria-label": "Re-run artifact", children: _jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("polyline", { points: "23 4 23 10 17 10" }), _jsx("polyline", { points: "1 20 1 14 7 14" }), _jsx("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" })] }) })), _jsx("button", { type: "button", className: "aha-iconbtn", onClick: () => setInverted((v) => !v), title: inverted ? "Normal colors" : "Invert (light view)", "aria-label": "Invert colors", "data-active": inverted, style: inverted ? { background: "var(--aha-hover)", color: "var(--aha-fg)" } : undefined, children: _jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("circle", { cx: "12", cy: "12", r: "9" }), _jsx("path", { d: "M12 3a9 9 0 0 0 0 18z", fill: "currentColor", stroke: "none" })] }) }), _jsx("button", { type: "button", className: "aha-iconbtn", onClick: onClose, "aria-label": "Close", style: { fontSize: 18 }, children: "\u00D7" })] }), _jsx("div", { style: {
|
|
74
83
|
flex: 1,
|
|
75
84
|
minHeight: 0,
|
|
76
85
|
overflow: "auto",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlArtifactModal.js","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactModal.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"HtmlArtifactModal.js","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,11 @@ export interface HtmlArtifactPreviewProps {
|
|
|
10
10
|
theme?: ArtifactTheme;
|
|
11
11
|
/** Chromeless: transparent wrapper, no surface/skeleton box — for seamless mode. */
|
|
12
12
|
bare?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Bump this number to force a clean reload of the iframe — re-running scripts
|
|
15
|
+
* and games from scratch. The initial value is ignored; only changes re-run.
|
|
16
|
+
*/
|
|
17
|
+
reloadSignal?: number;
|
|
13
18
|
}
|
|
14
19
|
export declare function HtmlArtifactPreview(props: HtmlArtifactPreviewProps): import("react/jsx-runtime").JSX.Element;
|
|
15
20
|
//# sourceMappingURL=HtmlArtifactPreview.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlArtifactPreview.d.ts","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactPreview.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,4EAA4E;IAC5E,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,oFAAoF;IACpF,IAAI,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"HtmlArtifactPreview.d.ts","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactPreview.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,4EAA4E;IAC5E,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,oFAAoF;IACpF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,2CA0TlE"}
|
|
@@ -9,7 +9,7 @@ import { buildSrcDoc, resolveSandbox } from "./iframeSrcDoc.js";
|
|
|
9
9
|
import { useIframeAutoSize } from "./iframeSizing.js";
|
|
10
10
|
export function HtmlArtifactPreview(props) {
|
|
11
11
|
useArtifactStyles();
|
|
12
|
-
const { html, streaming = false, errored = false, title, options, theme, bare = false } = props;
|
|
12
|
+
const { html, streaming = false, errored = false, title, options, theme, bare = false, reloadSignal } = props;
|
|
13
13
|
const opts = React.useMemo(() => mergeConfig(DEFAULT_PREVIEW_OPTIONS, options), [options]);
|
|
14
14
|
const { ref: iframeRef, height, onLoad, measure } = useIframeAutoSize({
|
|
15
15
|
enabled: opts.autoResize,
|
|
@@ -17,6 +17,9 @@ export function HtmlArtifactPreview(props) {
|
|
|
17
17
|
maxHeight: opts.maxHeight,
|
|
18
18
|
});
|
|
19
19
|
const [srcDoc, setSrcDoc] = React.useState("");
|
|
20
|
+
// Bumped by `rerun()` and used as the iframe `key`, so a re-run remounts the
|
|
21
|
+
// frame and executes scripts/games again from a clean slate.
|
|
22
|
+
const [runNonce, setRunNonce] = React.useState(0);
|
|
20
23
|
// Tracks the last document we rendered and whether the iframe has loaded once.
|
|
21
24
|
// Lets us update the *live* document in place while streaming instead of
|
|
22
25
|
// reassigning `srcDoc` (which fully reloads the frame and flashes blank).
|
|
@@ -94,6 +97,57 @@ export function HtmlArtifactPreview(props) {
|
|
|
94
97
|
});
|
|
95
98
|
paint(doc, !streaming && (opts.allowScripts || opts.allowModuleImports));
|
|
96
99
|
}, [paint, theme, bare]);
|
|
100
|
+
// Force a clean reload of the current document: rebuild it and remount the
|
|
101
|
+
// iframe (via runNonce) so scripts and games execute again from zero. Used by
|
|
102
|
+
// the toolbar/seamless "Re-run" button.
|
|
103
|
+
const rerun = React.useCallback(() => {
|
|
104
|
+
const { html, opts } = stateRef.current;
|
|
105
|
+
if (!html)
|
|
106
|
+
return;
|
|
107
|
+
const doc = buildSrcDoc(html, {
|
|
108
|
+
sanitize: opts.sanitize,
|
|
109
|
+
seamless: true,
|
|
110
|
+
resizeBridge: opts.allowScripts || opts.allowVideoEmbeds || opts.allowModuleImports,
|
|
111
|
+
camouflage: bare,
|
|
112
|
+
theme,
|
|
113
|
+
sanitizeOptions: opts,
|
|
114
|
+
});
|
|
115
|
+
loadedRef.current = false;
|
|
116
|
+
lastDocRef.current = doc;
|
|
117
|
+
cleanupNavigationRef.current?.();
|
|
118
|
+
cleanupNavigationRef.current = null;
|
|
119
|
+
setSrcDoc(doc);
|
|
120
|
+
setRunNonce((n) => n + 1);
|
|
121
|
+
}, [theme, bare]);
|
|
122
|
+
// External re-run trigger: only fire when the signal actually changes.
|
|
123
|
+
const prevReloadRef = React.useRef(reloadSignal);
|
|
124
|
+
React.useEffect(() => {
|
|
125
|
+
if (prevReloadRef.current === reloadSignal)
|
|
126
|
+
return;
|
|
127
|
+
prevReloadRef.current = reloadSignal;
|
|
128
|
+
rerun();
|
|
129
|
+
}, [reloadSignal, rerun]);
|
|
130
|
+
// Auto-refresh when the artifact (re)enters the viewport — re-runs scripts/
|
|
131
|
+
// games and re-measures the height, which also recovers any frame that
|
|
132
|
+
// collapsed while off-screen. Skips the initial appearance and streaming.
|
|
133
|
+
const containerRef = React.useRef(null);
|
|
134
|
+
React.useEffect(() => {
|
|
135
|
+
const el = containerRef.current;
|
|
136
|
+
if (!el || typeof IntersectionObserver === "undefined")
|
|
137
|
+
return;
|
|
138
|
+
let wasVisible = false;
|
|
139
|
+
let first = true;
|
|
140
|
+
const io = new IntersectionObserver((entries) => {
|
|
141
|
+
const visible = entries.some((e) => e.isIntersecting);
|
|
142
|
+
if (visible && !wasVisible && !first && !stateRef.current.streaming) {
|
|
143
|
+
rerun();
|
|
144
|
+
}
|
|
145
|
+
first = false;
|
|
146
|
+
wasVisible = visible;
|
|
147
|
+
}, { threshold: 0.01 });
|
|
148
|
+
io.observe(el);
|
|
149
|
+
return () => io.disconnect();
|
|
150
|
+
}, [rerun]);
|
|
97
151
|
// Schedule a flush, throttled to at most once per `debounceMs` and aligned to
|
|
98
152
|
// an animation frame so rapid SSE deltas don't trigger a render storm.
|
|
99
153
|
const schedule = React.useCallback(() => {
|
|
@@ -162,7 +216,7 @@ export function HtmlArtifactPreview(props) {
|
|
|
162
216
|
const showSkeleton = !html && !errored && !bare;
|
|
163
217
|
const minHeight = bare ? 0 : opts.minHeight;
|
|
164
218
|
const iframeSrcDoc = html ? srcDoc : "";
|
|
165
|
-
return (_jsxs("div", { style: {
|
|
219
|
+
return (_jsxs("div", { ref: containerRef, style: {
|
|
166
220
|
position: "relative",
|
|
167
221
|
width: "100%",
|
|
168
222
|
background: bare ? "transparent" : "var(--aha-bg)",
|
|
@@ -187,7 +241,7 @@ export function HtmlArtifactPreview(props) {
|
|
|
187
241
|
pointerEvents: streaming && !iframeSrcDoc ? "none" : "auto",
|
|
188
242
|
opacity: showSkeleton ? 0 : 1,
|
|
189
243
|
transition: "opacity 0.2s ease",
|
|
190
|
-
} }), showSkeleton && (_jsxs("div", { className: "aha-skel", style: { minHeight: opts.minHeight }, children: [_jsx("div", { className: "row" }), _jsx("div", { className: "row" }), _jsx("div", { className: "row" }), _jsx("div", { className: "row" }), _jsx("div", { className: "row" }), _jsx("div", { className: "row" })] })), errored && (_jsx("div", { className: "aha-overlay", style: {
|
|
244
|
+
} }, runNonce), showSkeleton && (_jsxs("div", { className: "aha-skel", style: { minHeight: opts.minHeight }, children: [_jsx("div", { className: "row" }), _jsx("div", { className: "row" }), _jsx("div", { className: "row" }), _jsx("div", { className: "row" }), _jsx("div", { className: "row" }), _jsx("div", { className: "row" })] })), errored && (_jsx("div", { className: "aha-overlay", style: {
|
|
191
245
|
position: html ? "absolute" : "relative",
|
|
192
246
|
inset: html ? 0 : undefined,
|
|
193
247
|
minHeight: html ? undefined : opts.minHeight,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlArtifactPreview.js","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactPreview.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HtmlArtifactPreview.js","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactPreview.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,11 +7,13 @@ export interface HtmlArtifactToolbarProps {
|
|
|
7
7
|
allowDownload?: boolean;
|
|
8
8
|
allowPdf?: boolean;
|
|
9
9
|
allowFullscreen?: boolean;
|
|
10
|
+
allowRerun?: boolean;
|
|
10
11
|
copied?: boolean;
|
|
11
12
|
onCopy?: () => void;
|
|
12
13
|
onDownload?: () => void;
|
|
13
14
|
onDownloadPdf?: () => void;
|
|
14
15
|
onFullscreen?: () => void;
|
|
16
|
+
onRerun?: () => void;
|
|
15
17
|
streaming?: boolean;
|
|
16
18
|
/** Show macOS-style window dots on the left. */
|
|
17
19
|
showDots?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlArtifactToolbar.d.ts","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactToolbar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,WAAW,CAAC;IACjB,WAAW,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"HtmlArtifactToolbar.d.ts","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactToolbar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,WAAW,CAAC;IACjB,WAAW,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAmCD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,2CAwElE"}
|
|
@@ -6,9 +6,10 @@ const Icon = {
|
|
|
6
6
|
download: (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: [_jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), _jsx("polyline", { points: "7 10 12 15 17 10" }), _jsx("line", { x1: "12", y1: "15", x2: "12", y2: "3" })] })),
|
|
7
7
|
expand: (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: [_jsx("polyline", { points: "15 3 21 3 21 9" }), _jsx("polyline", { points: "9 21 3 21 3 15" }), _jsx("line", { x1: "21", y1: "3", x2: "14", y2: "10" }), _jsx("line", { x1: "3", y1: "21", x2: "10", y2: "14" })] })),
|
|
8
8
|
pdf: (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: [_jsx("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), _jsx("polyline", { points: "14 2 14 8 20 8" }), _jsx("path", { d: "M9 15h1.2a1.3 1.3 0 0 0 0-2.6H9V18" }), _jsx("path", { d: "M15.5 12.4H14V18" }), _jsx("path", { d: "M14 15.4h1.3" })] })),
|
|
9
|
+
rerun: (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: [_jsx("polyline", { points: "23 4 23 10 17 10" }), _jsx("polyline", { points: "1 20 1 14 7 14" }), _jsx("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" })] })),
|
|
9
10
|
};
|
|
10
11
|
export function HtmlArtifactToolbar(props) {
|
|
11
|
-
const { title, tab, onTabChange, allowCopy = true, allowDownload = true, allowPdf = true, allowFullscreen = true, copied = false, onCopy, onDownload, onDownloadPdf, onFullscreen, streaming = false, showDots = true, } = props;
|
|
12
|
-
return (_jsxs("div", { className: "aha-toolbar", children: [showDots && (_jsxs("span", { className: "aha-dots", "aria-hidden": true, children: [_jsx("span", { className: "aha-dot", style: { background: "#ff5f57" } }), _jsx("span", { className: "aha-dot", style: { background: "#febc2e" } }), _jsx("span", { className: "aha-dot", style: { background: "#28c840" } })] })), streaming && _jsx("span", { className: "aha-stream-dot", "aria-label": "streaming" }), _jsx("span", { className: "aha-title", title: title, children: title }), _jsx("div", { style: { flex: 1 } }), _jsxs("div", { className: "aha-seg", role: "tablist", "aria-label": "Artifact view", children: [_jsx("button", { type: "button", role: "tab", "aria-selected": tab === "preview", "data-active": tab === "preview", onClick: () => onTabChange("preview"), children: "Preview" }), _jsx("button", { type: "button", role: "tab", "aria-selected": tab === "code", "data-active": tab === "code", onClick: () => onTabChange("code"), children: "Code" })] }), allowCopy && (_jsx("button", { type: "button", className: "aha-iconbtn", onClick: onCopy, title: "Copy HTML", "aria-label": "Copy HTML", children: copied ? Icon.check : Icon.copy })), allowDownload && (_jsx("button", { type: "button", className: "aha-iconbtn", onClick: onDownload, title: "Download HTML", "aria-label": "Download HTML", children: Icon.download })), allowPdf && (_jsx("button", { type: "button", className: "aha-iconbtn", onClick: onDownloadPdf, title: "Download PDF", "aria-label": "Download PDF", children: Icon.pdf })), allowFullscreen && (_jsx("button", { type: "button", className: "aha-iconbtn", onClick: onFullscreen, title: "Fullscreen", "aria-label": "Open fullscreen", children: Icon.expand }))] }));
|
|
12
|
+
const { title, tab, onTabChange, allowCopy = true, allowDownload = true, allowPdf = true, allowFullscreen = true, allowRerun = true, copied = false, onCopy, onDownload, onDownloadPdf, onFullscreen, onRerun, streaming = false, showDots = true, } = props;
|
|
13
|
+
return (_jsxs("div", { className: "aha-toolbar", children: [showDots && (_jsxs("span", { className: "aha-dots", "aria-hidden": true, children: [_jsx("span", { className: "aha-dot", style: { background: "#ff5f57" } }), _jsx("span", { className: "aha-dot", style: { background: "#febc2e" } }), _jsx("span", { className: "aha-dot", style: { background: "#28c840" } })] })), streaming && _jsx("span", { className: "aha-stream-dot", "aria-label": "streaming" }), _jsx("span", { className: "aha-title", title: title, children: title }), _jsx("div", { style: { flex: 1 } }), _jsxs("div", { className: "aha-seg", role: "tablist", "aria-label": "Artifact view", children: [_jsx("button", { type: "button", role: "tab", "aria-selected": tab === "preview", "data-active": tab === "preview", onClick: () => onTabChange("preview"), children: "Preview" }), _jsx("button", { type: "button", role: "tab", "aria-selected": tab === "code", "data-active": tab === "code", onClick: () => onTabChange("code"), children: "Code" })] }), allowRerun && (_jsx("button", { type: "button", className: "aha-iconbtn", onClick: onRerun, title: "Re-run", "aria-label": "Re-run artifact", disabled: streaming, children: Icon.rerun })), allowCopy && (_jsx("button", { type: "button", className: "aha-iconbtn", onClick: onCopy, title: "Copy HTML", "aria-label": "Copy HTML", children: copied ? Icon.check : Icon.copy })), allowDownload && (_jsx("button", { type: "button", className: "aha-iconbtn", onClick: onDownload, title: "Download HTML", "aria-label": "Download HTML", children: Icon.download })), allowPdf && (_jsx("button", { type: "button", className: "aha-iconbtn", onClick: onDownloadPdf, title: "Download PDF", "aria-label": "Download PDF", children: Icon.pdf })), allowFullscreen && (_jsx("button", { type: "button", className: "aha-iconbtn", onClick: onFullscreen, title: "Fullscreen", "aria-label": "Open fullscreen", children: Icon.expand }))] }));
|
|
13
14
|
}
|
|
14
15
|
//# sourceMappingURL=HtmlArtifactToolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlArtifactToolbar.js","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactToolbar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;
|
|
1
|
+
{"version":3,"file":"HtmlArtifactToolbar.js","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactToolbar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,17 +3,6 @@ export interface AutoSizeOptions {
|
|
|
3
3
|
minHeight?: number;
|
|
4
4
|
maxHeight?: number;
|
|
5
5
|
}
|
|
6
|
-
/**
|
|
7
|
-
* Auto-size an iframe to its full content height so the artifact never shows an
|
|
8
|
-
* inner scrollbar — the page provides the single scroll. This requires reading
|
|
9
|
-
* the framed document, which works when the sandbox includes `allow-same-origin`
|
|
10
|
-
* (the default static path). Script-enabled previews are isolated without
|
|
11
|
-
* same-origin, so measurement gracefully falls back to the configured minimum.
|
|
12
|
-
*
|
|
13
|
-
* Measurement is resilient: it re-measures on load, on every content reflow
|
|
14
|
-
* (ResizeObserver), and after web fonts finish loading (which changes height).
|
|
15
|
-
* If the document is cross-origin/opaque it falls back to `minHeight`.
|
|
16
|
-
*/
|
|
17
6
|
export declare function useIframeAutoSize(options?: AutoSizeOptions): {
|
|
18
7
|
readonly ref: import("react").RefObject<HTMLIFrameElement | null>;
|
|
19
8
|
readonly height: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iframeSizing.d.ts","sourceRoot":"","sources":["../../src/iframe/iframeSizing.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"iframeSizing.d.ts","sourceRoot":"","sources":["../../src/iframe/iframeSizing.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwBD,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,eAAoB;;;;;EAqF9D"}
|
|
@@ -10,11 +10,21 @@ import { useCallback, useEffect, useRef, useState } from "react";
|
|
|
10
10
|
* (ResizeObserver), and after web fonts finish loading (which changes height).
|
|
11
11
|
* If the document is cross-origin/opaque it falls back to `minHeight`.
|
|
12
12
|
*/
|
|
13
|
+
/**
|
|
14
|
+
* Seed height used when `minHeight` is 0 (seamless/camouflage previews). Starting
|
|
15
|
+
* the iframe at 0 makes its viewport 0-tall, so any content sized by viewport or
|
|
16
|
+
* percentage height resolves to 0 → `scrollHeight` is 0 → the resize bridge never
|
|
17
|
+
* reports a height and the artifact stays hidden (seen on freshly-mounted saved
|
|
18
|
+
* generative-UI chats). A non-zero seed gives the first layout a real viewport;
|
|
19
|
+
* the measurement then converges to the true content height (and may shrink below
|
|
20
|
+
* the seed, since the clamp floor is `minHeight`).
|
|
21
|
+
*/
|
|
22
|
+
const MEASURE_SEED = 280;
|
|
13
23
|
export function useIframeAutoSize(options = {}) {
|
|
14
24
|
const { enabled = true, minHeight = 420, maxHeight = 900 } = options;
|
|
15
25
|
const ref = useRef(null);
|
|
16
26
|
const observerRef = useRef(null);
|
|
17
|
-
const [height, setHeight] = useState(minHeight);
|
|
27
|
+
const [height, setHeight] = useState(minHeight > 0 ? minHeight : MEASURE_SEED);
|
|
18
28
|
const measure = useCallback(() => {
|
|
19
29
|
if (!enabled)
|
|
20
30
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iframeSizing.js","sourceRoot":"","sources":["../../src/iframe/iframeSizing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAQjE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAA2B,EAAE;IAC7D,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,SAAS,GAAG,GAAG,EAAE,SAAS,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IACrE,MAAM,GAAG,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"iframeSizing.js","sourceRoot":"","sources":["../../src/iframe/iframeSizing.ts"],"names":[],"mappings":"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"}
|
package/dist/iframe/styles.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* on the host app's CSS. Uses the CSS `light-dark()` function (the card sets
|
|
5
5
|
* `color-scheme: light dark`) so it adapts to the OS theme automatically.
|
|
6
6
|
*/
|
|
7
|
-
export declare const ARTIFACT_CSS = "\n.aha-scope{\n color-scheme: light dark;\n --aha-bg: light-dark(#fbfbfc, #0c0c0f);\n --aha-elev: light-dark(#ffffff, #161619);\n --aha-fg: light-dark(#15161a, #f4f4f6);\n --aha-muted: light-dark(#6b7280, #9aa0ab);\n --aha-faint: light-dark(#9ca3af, #6b7280);\n --aha-hairline: light-dark(rgba(0,0,0,.07), rgba(255,255,255,.08));\n --aha-ring: light-dark(oklch(0 0 0 / .08), oklch(1 0 0 / .11));\n --aha-hover: light-dark(rgba(0,0,0,.05), rgba(255,255,255,.07));\n --aha-accent: light-dark(#3b3bff, #8aa0ff);\n font-family: ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", sans-serif;\n -webkit-font-smoothing: antialiased;\n}\n\n/* The premium ring + border + layered shadow treatment (no flat white box). */\n.aha-card{\n position: relative;\n border-radius: var(--aha-radius, 22px);\n background: var(--aha-bg);\n color: var(--aha-fg);\n overflow: hidden;\n box-shadow:\n 0 0 0 1px var(--aha-ring),\n light-dark(oklch(0 0 0 / .04), oklch(0 0 0 / .20)) 0px 2px 2px -1px,\n light-dark(oklch(0 0 0 / .035), oklch(0 0 0 / .22)) 0px 10px 20px -6px,\n light-dark(oklch(0 0 0 / .05), oklch(0 0 0 / .35)) 0px 30px 60px -18px;\n transition: box-shadow .25s ease, transform .25s ease;\n}\n.aha-card[data-variant=\"glass\"]{\n background: light-dark(rgba(255,255,255,.72), rgba(22,22,26,.66));\n backdrop-filter: blur(20px) saturate(140%);\n}\n\n.aha-toolbar{\n display:flex; align-items:center; gap:10px;\n padding: 9px 10px 9px 14px;\n background: light-dark(rgba(252,252,253,.82), rgba(20,20,24,.7));\n backdrop-filter: blur(12px);\n border-bottom: 1px solid var(--aha-hairline);\n position: relative; z-index: 2;\n}\n.aha-dots{ display:inline-flex; gap:6px; margin-right:4px; }\n.aha-dot{ width:11px; height:11px; border-radius:50%; }\n.aha-title{\n font-size:13px; font-weight:600; letter-spacing:-0.01em;\n color: var(--aha-fg);\n white-space:nowrap; overflow:hidden; text-overflow:ellipsis;\n min-width:0; flex: 0 1 auto;\n}\n.aha-stream-dot{\n width:7px;height:7px;border-radius:50%;flex:none;\n background:#22c55e; box-shadow:0 0 0 0 rgba(34,197,94,.55);\n animation: aha-pulse 1.5s infinite;\n}\n\n.aha-seg{\n display:inline-flex; padding:3px; gap:2px; border-radius:11px;\n background: light-dark(rgba(0,0,0,.05), rgba(255,255,255,.06));\n box-shadow: inset 0 0 0 1px var(--aha-ring);\n}\n.aha-seg button{\n appearance:none; border:none; cursor:pointer;\n font-size:12px; font-weight:600; letter-spacing:-0.01em;\n padding:5px 13px; border-radius:8px; color: var(--aha-muted);\n background:transparent; transition: all .15s ease;\n}\n.aha-seg button[data-active=\"true\"]{\n color: var(--aha-fg);\n background: var(--aha-elev);\n box-shadow: 0 1px 2px light-dark(rgba(0,0,0,.10), rgba(0,0,0,.4)), 0 0 0 .5px var(--aha-ring);\n}\n\n.aha-iconbtn{\n display:inline-flex; align-items:center; justify-content:center;\n width:32px; height:32px; border-radius:999px; flex:none;\n border:none; cursor:pointer; padding:0;\n color: var(--aha-muted); background:transparent;\n transition: background .15s ease, color .15s ease, transform .1s ease;\n}\n.aha-iconbtn:hover{ background: var(--aha-hover); color: var(--aha-fg); }\n.aha-iconbtn:active{ transform: scale(.94); }\n\n/* Seamless (\"camouflage\") presentation: chromeless, transparent, inline. The\n action row stays invisible until hover so the surface reads as native UI. */\n.aha-seamless{ position:relative; }\n.aha-seamless-actions{\n position:absolute; top:8px; right:8px; z-index:4;\n display:flex; gap:4px; padding:3px; border-radius:999px;\n background: color-mix(in srgb, var(--aha-bg) 70%, transparent);\n border:1px solid var(--aha-border);\n backdrop-filter: blur(8px);\n opacity:0; transform: translateY(-2px);\n transition: opacity .18s ease, transform .18s ease;\n}\n.aha-seamless:hover .aha-seamless-actions,\n.aha-seamless:focus-within .aha-seamless-actions{ opacity:1; transform: translateY(0); }\n\n/* Streaming progress shimmer along the top edge of the preview. */\n.aha-progress{\n position:absolute; top:0; left:0; right:0; height:2px; z-index:3;\n background: linear-gradient(90deg, transparent, var(--aha-accent), transparent);\n background-size: 40% 100%;\n animation: aha-progress 1.1s linear infinite;\n}\n\n.aha-frame{ display:block; width:100%; border:none; background:transparent; }\n.aha-frame[data-fade=\"in\"]{ animation: aha-fade .45s ease both; }\n\n.aha-skel{\n display:grid; gap:14px; padding:26px;\n background: light-dark(linear-gradient(180deg,#fcfcfd,#f4f5f7), linear-gradient(180deg,#121215,#0d0d10));\n}\n.aha-skel .row{\n height:16px; border-radius:8px;\n background: light-dark(\n linear-gradient(90deg, rgba(0,0,0,.05) 25%, rgba(0,0,0,.10) 37%, rgba(0,0,0,.05) 63%),\n linear-gradient(90deg, rgba(255,255,255,.05) 25%, rgba(255,255,255,.10) 37%, rgba(255,255,255,.05) 63%));\n background-size: 400% 100%;\n animation: aha-shimmer 1.4s ease infinite;\n opacity:0; animation-fill-mode: both;\n}\n/* Stagger the skeleton in so it reads as a layout being built up. */\n.aha-skel .row:nth-child(1){ width:42%; animation-delay:0s,.0s; }\n.aha-skel .row:nth-child(2){ width:88%; }\n.aha-skel .row:nth-child(3){ width:74%; }\n.aha-skel .row:nth-child(4){ height:130px; }\n.aha-skel .row:nth-child(5){ width:60%; }\n.aha-skel .row:nth-child(6){ width:80%; }\n.aha-skel .row{ animation: aha-shimmer 1.4s ease infinite, aha-rise .5s ease both; }\n.aha-skel .row:nth-child(2){ animation-delay: 0s, .07s; }\n.aha-skel .row:nth-child(3){ animation-delay: 0s, .14s; }\n.aha-skel .row:nth-child(4){ animation-delay: 0s, .21s; }\n.aha-skel .row:nth-child(5){ animation-delay: 0s, .28s; }\n.aha-skel .row:nth-child(6){ animation-delay: 0s, .35s; }\n\n.aha-overlay{\n display:flex; align-items:center; justify-content:center; text-align:center;\n padding:24px; color: var(--aha-muted); font-size:13px;\n background: light-dark(rgba(255,255,255,.82), rgba(12,12,15,.82));\n backdrop-filter: blur(3px);\n}\n\n@keyframes aha-pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}70%{box-shadow:0 0 0 6px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}\n@keyframes aha-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}\n@keyframes aha-progress{0%{background-position:120% 0}100%{background-position:-20% 0}}\n@keyframes aha-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}\n@keyframes aha-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}\n@media (prefers-reduced-motion: reduce){\n .aha-frame[data-fade=\"in\"], .aha-skel .row, .aha-progress, .aha-stream-dot{ animation: none !important; }\n .aha-skel .row{ opacity:1; }\n}\n";
|
|
7
|
+
export declare const ARTIFACT_CSS = "\n.aha-scope{\n color-scheme: light dark;\n --aha-bg: light-dark(#fbfbfc, #0c0c0f);\n --aha-elev: light-dark(#ffffff, #161619);\n --aha-fg: light-dark(#15161a, #f4f4f6);\n --aha-muted: light-dark(#6b7280, #9aa0ab);\n --aha-faint: light-dark(#9ca3af, #6b7280);\n --aha-hairline: light-dark(rgba(0,0,0,.07), rgba(255,255,255,.08));\n --aha-ring: light-dark(oklch(0 0 0 / .08), oklch(1 0 0 / .11));\n --aha-hover: light-dark(rgba(0,0,0,.05), rgba(255,255,255,.07));\n --aha-accent: light-dark(#3b3bff, #8aa0ff);\n font-family: ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", sans-serif;\n -webkit-font-smoothing: antialiased;\n}\n\n/* The premium ring + border + layered shadow treatment (no flat white box). */\n.aha-card{\n position: relative;\n border-radius: var(--aha-radius, 22px);\n background: var(--aha-bg);\n color: var(--aha-fg);\n overflow: hidden;\n box-shadow:\n 0 0 0 1px var(--aha-ring),\n light-dark(oklch(0 0 0 / .04), oklch(0 0 0 / .20)) 0px 2px 2px -1px,\n light-dark(oklch(0 0 0 / .035), oklch(0 0 0 / .22)) 0px 10px 20px -6px,\n light-dark(oklch(0 0 0 / .05), oklch(0 0 0 / .35)) 0px 30px 60px -18px;\n transition: box-shadow .25s ease, transform .25s ease;\n}\n.aha-card[data-variant=\"glass\"]{\n background: light-dark(rgba(255,255,255,.72), rgba(22,22,26,.66));\n backdrop-filter: blur(20px) saturate(140%);\n}\n\n.aha-toolbar{\n display:flex; align-items:center; gap:10px;\n flex-wrap: wrap; row-gap: 8px;\n padding: 9px 10px 9px 14px;\n background: light-dark(rgba(252,252,253,.82), rgba(20,20,24,.7));\n backdrop-filter: blur(12px);\n border-bottom: 1px solid var(--aha-hairline);\n position: relative; z-index: 2;\n}\n/* Fullscreen toolbar must never overflow on small screens: drop the device\n labels and tighten spacing so the controls wrap instead of clipping. */\n@media (max-width: 560px){\n .aha-toolbar{ gap:6px; padding:8px 8px 8px 12px; }\n .aha-seg-label{ display:none; }\n .aha-seg button{ padding:6px 9px; }\n}\n.aha-dots{ display:inline-flex; gap:6px; margin-right:4px; }\n.aha-dot{ width:11px; height:11px; border-radius:50%; }\n.aha-title{\n font-size:13px; font-weight:600; letter-spacing:-0.01em;\n color: var(--aha-fg);\n white-space:nowrap; overflow:hidden; text-overflow:ellipsis;\n min-width:0; flex: 0 1 auto;\n}\n.aha-stream-dot{\n width:7px;height:7px;border-radius:50%;flex:none;\n background:#22c55e; box-shadow:0 0 0 0 rgba(34,197,94,.55);\n animation: aha-pulse 1.5s infinite;\n}\n\n.aha-seg{\n display:inline-flex; padding:3px; gap:2px; border-radius:11px;\n background: light-dark(rgba(0,0,0,.05), rgba(255,255,255,.06));\n box-shadow: inset 0 0 0 1px var(--aha-ring);\n}\n.aha-seg button{\n appearance:none; border:none; cursor:pointer;\n font-size:12px; font-weight:600; letter-spacing:-0.01em;\n padding:5px 13px; border-radius:8px; color: var(--aha-muted);\n background:transparent; transition: all .15s ease;\n}\n.aha-seg button[data-active=\"true\"]{\n color: var(--aha-fg);\n background: var(--aha-elev);\n box-shadow: 0 1px 2px light-dark(rgba(0,0,0,.10), rgba(0,0,0,.4)), 0 0 0 .5px var(--aha-ring);\n}\n\n.aha-iconbtn{\n display:inline-flex; align-items:center; justify-content:center;\n width:32px; height:32px; border-radius:999px; flex:none;\n border:none; cursor:pointer; padding:0;\n color: var(--aha-muted); background:transparent;\n transition: background .15s ease, color .15s ease, transform .1s ease;\n}\n.aha-iconbtn:hover{ background: var(--aha-hover); color: var(--aha-fg); }\n.aha-iconbtn:active{ transform: scale(.94); }\n\n/* Seamless (\"camouflage\") presentation: chromeless, transparent, inline. The\n action row stays invisible until hover so the surface reads as native UI. */\n.aha-seamless{ position:relative; }\n.aha-seamless-actions{\n position:absolute; top:8px; right:8px; z-index:4;\n display:flex; gap:4px; padding:3px; border-radius:999px;\n background: color-mix(in srgb, var(--aha-bg) 70%, transparent);\n border:1px solid var(--aha-border);\n backdrop-filter: blur(8px);\n opacity:0; transform: translateY(-2px);\n transition: opacity .18s ease, transform .18s ease;\n}\n.aha-seamless:hover .aha-seamless-actions,\n.aha-seamless:focus-within .aha-seamless-actions{ opacity:1; transform: translateY(0); }\n\n/* Streaming progress shimmer along the top edge of the preview. */\n.aha-progress{\n position:absolute; top:0; left:0; right:0; height:2px; z-index:3;\n background: linear-gradient(90deg, transparent, var(--aha-accent), transparent);\n background-size: 40% 100%;\n animation: aha-progress 1.1s linear infinite;\n}\n\n.aha-frame{ display:block; width:100%; border:none; background:transparent; }\n.aha-frame[data-fade=\"in\"]{ animation: aha-fade .45s ease both; }\n\n.aha-skel{\n display:grid; gap:14px; padding:26px;\n background: light-dark(linear-gradient(180deg,#fcfcfd,#f4f5f7), linear-gradient(180deg,#121215,#0d0d10));\n}\n.aha-skel .row{\n height:16px; border-radius:8px;\n background: light-dark(\n linear-gradient(90deg, rgba(0,0,0,.05) 25%, rgba(0,0,0,.10) 37%, rgba(0,0,0,.05) 63%),\n linear-gradient(90deg, rgba(255,255,255,.05) 25%, rgba(255,255,255,.10) 37%, rgba(255,255,255,.05) 63%));\n background-size: 400% 100%;\n animation: aha-shimmer 1.4s ease infinite;\n opacity:0; animation-fill-mode: both;\n}\n/* Stagger the skeleton in so it reads as a layout being built up. */\n.aha-skel .row:nth-child(1){ width:42%; animation-delay:0s,.0s; }\n.aha-skel .row:nth-child(2){ width:88%; }\n.aha-skel .row:nth-child(3){ width:74%; }\n.aha-skel .row:nth-child(4){ height:130px; }\n.aha-skel .row:nth-child(5){ width:60%; }\n.aha-skel .row:nth-child(6){ width:80%; }\n.aha-skel .row{ animation: aha-shimmer 1.4s ease infinite, aha-rise .5s ease both; }\n.aha-skel .row:nth-child(2){ animation-delay: 0s, .07s; }\n.aha-skel .row:nth-child(3){ animation-delay: 0s, .14s; }\n.aha-skel .row:nth-child(4){ animation-delay: 0s, .21s; }\n.aha-skel .row:nth-child(5){ animation-delay: 0s, .28s; }\n.aha-skel .row:nth-child(6){ animation-delay: 0s, .35s; }\n\n.aha-overlay{\n display:flex; align-items:center; justify-content:center; text-align:center;\n padding:24px; color: var(--aha-muted); font-size:13px;\n background: light-dark(rgba(255,255,255,.82), rgba(12,12,15,.82));\n backdrop-filter: blur(3px);\n}\n\n@keyframes aha-pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}70%{box-shadow:0 0 0 6px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}\n@keyframes aha-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}\n@keyframes aha-progress{0%{background-position:120% 0}100%{background-position:-20% 0}}\n@keyframes aha-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}\n@keyframes aha-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}\n@media (prefers-reduced-motion: reduce){\n .aha-frame[data-fade=\"in\"], .aha-skel .row, .aha-progress, .aha-stream-dot{ animation: none !important; }\n .aha-skel .row{ opacity:1; }\n}\n";
|
|
8
8
|
/** Inject the artifact stylesheet once per document. */
|
|
9
9
|
export declare function useArtifactStyles(): void;
|
|
10
10
|
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/iframe/styles.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/iframe/styles.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,eAAO,MAAM,YAAY,03NAiKxB,CAAC;AAIF,wDAAwD;AACxD,wBAAgB,iBAAiB,IAAI,IAAI,CAaxC"}
|
package/dist/iframe/styles.js
CHANGED
|
@@ -44,12 +44,20 @@ export const ARTIFACT_CSS = `
|
|
|
44
44
|
|
|
45
45
|
.aha-toolbar{
|
|
46
46
|
display:flex; align-items:center; gap:10px;
|
|
47
|
+
flex-wrap: wrap; row-gap: 8px;
|
|
47
48
|
padding: 9px 10px 9px 14px;
|
|
48
49
|
background: light-dark(rgba(252,252,253,.82), rgba(20,20,24,.7));
|
|
49
50
|
backdrop-filter: blur(12px);
|
|
50
51
|
border-bottom: 1px solid var(--aha-hairline);
|
|
51
52
|
position: relative; z-index: 2;
|
|
52
53
|
}
|
|
54
|
+
/* Fullscreen toolbar must never overflow on small screens: drop the device
|
|
55
|
+
labels and tighten spacing so the controls wrap instead of clipping. */
|
|
56
|
+
@media (max-width: 560px){
|
|
57
|
+
.aha-toolbar{ gap:6px; padding:8px 8px 8px 12px; }
|
|
58
|
+
.aha-seg-label{ display:none; }
|
|
59
|
+
.aha-seg button{ padding:6px 9px; }
|
|
60
|
+
}
|
|
53
61
|
.aha-dots{ display:inline-flex; gap:6px; margin-right:4px; }
|
|
54
62
|
.aha-dot{ width:11px; height:11px; border-radius:50%; }
|
|
55
63
|
.aha-title{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/iframe/styles.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/iframe/styles.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiK3B,CAAC;AAEF,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,wDAAwD;AACxD,MAAM,UAAU,iBAAiB;IAC/B,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO;QACxD,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,QAAQ,GAAG,IAAI,CAAC;YAChB,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC;QACjB,EAAE,CAAC,WAAW,GAAG,YAAY,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC9B,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
|