@portel/photon 1.18.0 → 1.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auto-ui/beam.d.ts.map +1 -1
- package/dist/auto-ui/beam.js +14 -4
- package/dist/auto-ui/beam.js.map +1 -1
- package/dist/beam-form.bundle.js +5 -3
- package/dist/beam-form.bundle.js.map +2 -2
- package/dist/beam.bundle.js +686 -30
- package/dist/beam.bundle.js.map +3 -3
- package/dist/claude-code-plugin.js +1 -1
- package/dist/cli/commands/beam.d.ts.map +1 -1
- package/dist/cli/commands/beam.js +8 -2
- package/dist/cli/commands/beam.js.map +1 -1
- package/dist/cli/commands/changelog.d.ts +9 -0
- package/dist/cli/commands/changelog.d.ts.map +1 -0
- package/dist/cli/commands/changelog.js +133 -0
- package/dist/cli/commands/changelog.js.map +1 -0
- package/dist/cli/commands/maker.d.ts.map +1 -1
- package/dist/cli/commands/maker.js +23 -2
- package/dist/cli/commands/maker.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +53 -0
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/package.d.ts.map +1 -1
- package/dist/cli/commands/package.js +18 -2
- package/dist/cli/commands/package.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +1 -0
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/update.d.ts +3 -2
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +50 -43
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +16 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli-alias.js +1 -1
- package/dist/cli-alias.js.map +1 -1
- package/dist/context-store.d.ts +23 -33
- package/dist/context-store.d.ts.map +1 -1
- package/dist/context-store.js +147 -97
- package/dist/context-store.js.map +1 -1
- package/dist/context.d.ts +15 -10
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +37 -13
- package/dist/context.js.map +1 -1
- package/dist/daemon/server.js +4 -2
- package/dist/daemon/server.js.map +1 -1
- package/dist/data-migration.d.ts +27 -0
- package/dist/data-migration.d.ts.map +1 -0
- package/dist/data-migration.js +307 -0
- package/dist/data-migration.js.map +1 -0
- package/dist/editor-support/docblock-tag-catalog.d.ts.map +1 -1
- package/dist/editor-support/docblock-tag-catalog.js +6 -0
- package/dist/editor-support/docblock-tag-catalog.js.map +1 -1
- package/dist/loader.d.ts +10 -0
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +97 -12
- package/dist/loader.js.map +1 -1
- package/dist/marketplace-manager.d.ts.map +1 -1
- package/dist/marketplace-manager.js +25 -5
- package/dist/marketplace-manager.js.map +1 -1
- package/dist/photon-cli-runner.d.ts.map +1 -1
- package/dist/photon-cli-runner.js +47 -21
- package/dist/photon-cli-runner.js.map +1 -1
- package/dist/photon-doc-extractor.d.ts +1 -0
- package/dist/photon-doc-extractor.d.ts.map +1 -1
- package/dist/photon-doc-extractor.js +6 -0
- package/dist/photon-doc-extractor.js.map +1 -1
- package/dist/readme-syncer.d.ts.map +1 -1
- package/dist/readme-syncer.js +6 -1
- package/dist/readme-syncer.js.map +1 -1
- package/dist/server.d.ts +40 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +143 -28
- package/dist/server.js.map +1 -1
- package/dist/shared/audit.js +4 -4
- package/dist/shared/audit.js.map +1 -1
- package/dist/tasks/store.d.ts.map +1 -1
- package/dist/tasks/store.js +6 -2
- package/dist/tasks/store.js.map +1 -1
- package/dist/version-notify.d.ts +27 -0
- package/dist/version-notify.d.ts.map +1 -0
- package/dist/version-notify.js +142 -0
- package/dist/version-notify.js.map +1 -0
- package/package.json +2 -2
- package/dist/auto-ui/bridge/openai-shim.d.ts +0 -20
- package/dist/auto-ui/bridge/openai-shim.d.ts.map +0 -1
- package/dist/auto-ui/bridge/openai-shim.js +0 -231
- package/dist/auto-ui/bridge/openai-shim.js.map +0 -1
- package/dist/auto-ui/bridge/photon-app.d.ts +0 -162
- package/dist/auto-ui/bridge/photon-app.d.ts.map +0 -1
- package/dist/auto-ui/bridge/photon-app.js +0 -460
- package/dist/auto-ui/bridge/photon-app.js.map +0 -1
- package/dist/auto-ui/daemon-tools.d.ts +0 -45
- package/dist/auto-ui/daemon-tools.d.ts.map +0 -1
- package/dist/auto-ui/daemon-tools.js +0 -581
- package/dist/auto-ui/daemon-tools.js.map +0 -1
- package/dist/auto-ui/design-system/index.d.ts +0 -21
- package/dist/auto-ui/design-system/index.d.ts.map +0 -1
- package/dist/auto-ui/design-system/index.js +0 -27
- package/dist/auto-ui/design-system/index.js.map +0 -1
- package/dist/auto-ui/design-system/transaction-ui.d.ts +0 -70
- package/dist/auto-ui/design-system/transaction-ui.d.ts.map +0 -1
- package/dist/auto-ui/design-system/transaction-ui.js +0 -982
- package/dist/auto-ui/design-system/transaction-ui.js.map +0 -1
- package/dist/auto-ui/playground-server.d.ts +0 -7
- package/dist/auto-ui/playground-server.d.ts.map +0 -1
- package/dist/auto-ui/playground-server.js +0 -840
- package/dist/auto-ui/playground-server.js.map +0 -1
- package/dist/auto-ui/rendering/components.d.ts +0 -29
- package/dist/auto-ui/rendering/components.d.ts.map +0 -1
- package/dist/auto-ui/rendering/components.js +0 -1341
- package/dist/auto-ui/rendering/components.js.map +0 -1
- package/dist/auto-ui/rendering/field-analyzer.d.ts +0 -104
- package/dist/auto-ui/rendering/field-analyzer.d.ts.map +0 -1
- package/dist/auto-ui/rendering/field-analyzer.js +0 -447
- package/dist/auto-ui/rendering/field-analyzer.js.map +0 -1
- package/dist/auto-ui/rendering/field-renderers.d.ts +0 -64
- package/dist/auto-ui/rendering/field-renderers.d.ts.map +0 -1
- package/dist/auto-ui/rendering/field-renderers.js +0 -317
- package/dist/auto-ui/rendering/field-renderers.js.map +0 -1
- package/dist/auto-ui/rendering/index.d.ts +0 -28
- package/dist/auto-ui/rendering/index.d.ts.map +0 -1
- package/dist/auto-ui/rendering/index.js +0 -60
- package/dist/auto-ui/rendering/index.js.map +0 -1
- package/dist/auto-ui/rendering/layout-selector.d.ts +0 -60
- package/dist/auto-ui/rendering/layout-selector.d.ts.map +0 -1
- package/dist/auto-ui/rendering/layout-selector.js +0 -476
- package/dist/auto-ui/rendering/layout-selector.js.map +0 -1
- package/dist/markdown-utils.d.ts +0 -8
- package/dist/markdown-utils.d.ts.map +0 -1
- package/dist/markdown-utils.js +0 -64
- package/dist/markdown-utils.js.map +0 -1
- package/dist/mcp-client.d.ts +0 -9
- package/dist/mcp-client.d.ts.map +0 -1
- package/dist/mcp-client.js +0 -11
- package/dist/mcp-client.js.map +0 -1
- package/dist/mcp-elicitation.d.ts +0 -32
- package/dist/mcp-elicitation.d.ts.map +0 -1
- package/dist/mcp-elicitation.js +0 -26
- package/dist/mcp-elicitation.js.map +0 -1
- package/dist/photons/builder-compass.photon.d.ts +0 -167
- package/dist/photons/builder-compass.photon.d.ts.map +0 -1
- package/dist/photons/builder-compass.photon.js +0 -816
- package/dist/photons/builder-compass.photon.js.map +0 -1
- package/dist/photons/builder-compass.photon.ts +0 -1129
- package/dist/photons/docs/ui/docs.html +0 -441
- package/dist/photons/docs.photon.d.ts +0 -237
- package/dist/photons/docs.photon.d.ts.map +0 -1
- package/dist/photons/docs.photon.js +0 -483
- package/dist/photons/docs.photon.js.map +0 -1
- package/dist/photons/docs.photon.ts +0 -536
- package/dist/photons/slides.photon.d.ts +0 -212
- package/dist/photons/slides.photon.d.ts.map +0 -1
- package/dist/photons/slides.photon.js +0 -355
- package/dist/photons/slides.photon.js.map +0 -1
- package/dist/photons/slides.photon.ts +0 -370
- package/dist/photons/spreadsheet/ui/spreadsheet.html +0 -779
- package/dist/photons/spreadsheet.photon.d.ts +0 -554
- package/dist/photons/spreadsheet.photon.d.ts.map +0 -1
- package/dist/photons/spreadsheet.photon.js +0 -1050
- package/dist/photons/spreadsheet.photon.js.map +0 -1
- package/dist/photons/spreadsheet.photon.ts +0 -1239
- package/dist/photons/ui/builder-compass.html +0 -1199
- package/dist/photons/ui/builder-compass.photon.html +0 -380
- package/dist/security-scanner.d.ts +0 -52
- package/dist/security-scanner.d.ts.map +0 -1
- package/dist/security-scanner.js +0 -181
- package/dist/security-scanner.js.map +0 -1
- package/dist/shared/performance.d.ts +0 -65
- package/dist/shared/performance.d.ts.map +0 -1
- package/dist/shared/performance.js +0 -136
- package/dist/shared/performance.js.map +0 -1
package/dist/beam.bundle.js
CHANGED
|
@@ -19402,7 +19402,7 @@ ConfirmDialog.styles = [
|
|
|
19402
19402
|
}
|
|
19403
19403
|
|
|
19404
19404
|
.btn-cancel:hover {
|
|
19405
|
-
background: var(--bg-glass-strong
|
|
19405
|
+
background: var(--bg-glass-strong);
|
|
19406
19406
|
}
|
|
19407
19407
|
|
|
19408
19408
|
.btn-confirm {
|
|
@@ -19442,10 +19442,12 @@ ConfirmDialog = __decorateClass([
|
|
|
19442
19442
|
t4("confirm-dialog")
|
|
19443
19443
|
], ConfirmDialog);
|
|
19444
19444
|
async function confirmDialog(message, options) {
|
|
19445
|
-
|
|
19445
|
+
const beamApp = document.querySelector("beam-app");
|
|
19446
|
+
const root = beamApp?.shadowRoot ?? document.body;
|
|
19447
|
+
let dialog = root.querySelector("confirm-dialog");
|
|
19446
19448
|
if (!dialog) {
|
|
19447
19449
|
dialog = document.createElement("confirm-dialog");
|
|
19448
|
-
|
|
19450
|
+
root.appendChild(dialog);
|
|
19449
19451
|
}
|
|
19450
19452
|
return dialog.show(message, options);
|
|
19451
19453
|
}
|
|
@@ -23181,11 +23183,19 @@ var BeamApp = class extends i4 {
|
|
|
23181
23183
|
};
|
|
23182
23184
|
this._handleDeletePhoton = async () => {
|
|
23183
23185
|
this._closeSettingsMenu();
|
|
23184
|
-
if (await confirmDialog(
|
|
23185
|
-
|
|
23186
|
-
|
|
23187
|
-
)) {
|
|
23188
|
-
|
|
23186
|
+
if (await confirmDialog(`Remove "${this._selectedPhoton?.name}"? It will be moved to trash.`, {
|
|
23187
|
+
confirm: "Remove",
|
|
23188
|
+
destructive: true
|
|
23189
|
+
})) {
|
|
23190
|
+
const deletedName = this._selectedPhoton?.name;
|
|
23191
|
+
await this._invokeMakerMethod("delete");
|
|
23192
|
+
if (deletedName) {
|
|
23193
|
+
this._photons = this._photons.filter((p5) => p5.name !== deletedName);
|
|
23194
|
+
this._selectedPhoton = this._photons[0] || null;
|
|
23195
|
+
this._selectedMethod = null;
|
|
23196
|
+
this._lastResult = null;
|
|
23197
|
+
this.requestUpdate();
|
|
23198
|
+
}
|
|
23189
23199
|
}
|
|
23190
23200
|
};
|
|
23191
23201
|
/**
|
|
@@ -24335,6 +24345,7 @@ var BeamApp = class extends i4 {
|
|
|
24335
24345
|
"stack",
|
|
24336
24346
|
"columns",
|
|
24337
24347
|
"qr",
|
|
24348
|
+
"guide",
|
|
24338
24349
|
"slides",
|
|
24339
24350
|
"presentation"
|
|
24340
24351
|
]);
|
|
@@ -35462,6 +35473,12 @@ var ResultViewer = class extends i4 {
|
|
|
35462
35473
|
// per-slide bg (color, url, gradient)
|
|
35463
35474
|
this._slidesEffects = /* @__PURE__ */ new Map();
|
|
35464
35475
|
// per-slide element effect
|
|
35476
|
+
this._slidesMoods = /* @__PURE__ */ new Map();
|
|
35477
|
+
// per-slide mood (dramatic, techy, etc.)
|
|
35478
|
+
this._slidesGlobalMood = "";
|
|
35479
|
+
// frontmatter mood default
|
|
35480
|
+
this._slidesBgEffects = /* @__PURE__ */ new Map();
|
|
35481
|
+
// per-slide bg effect (gradient-mesh, etc.)
|
|
35465
35482
|
this._slidesCols = /* @__PURE__ */ new Map();
|
|
35466
35483
|
// per-slide column count
|
|
35467
35484
|
this._slidesBuilds = /* @__PURE__ */ new Map();
|
|
@@ -36423,6 +36440,7 @@ var ResultViewer = class extends i4 {
|
|
|
36423
36440
|
case "slides":
|
|
36424
36441
|
return typeof data === "string";
|
|
36425
36442
|
case "checklist":
|
|
36443
|
+
case "guide":
|
|
36426
36444
|
return Array.isArray(data);
|
|
36427
36445
|
case "magazine":
|
|
36428
36446
|
case "article":
|
|
@@ -36495,6 +36513,8 @@ var ResultViewer = class extends i4 {
|
|
|
36495
36513
|
return this._renderSlides(filteredData);
|
|
36496
36514
|
case "checklist":
|
|
36497
36515
|
return this._renderChecklist(filteredData);
|
|
36516
|
+
case "guide":
|
|
36517
|
+
return this._renderGuide(filteredData);
|
|
36498
36518
|
case "magazine":
|
|
36499
36519
|
case "article":
|
|
36500
36520
|
return this._renderMagazine(filteredData);
|
|
@@ -37427,6 +37447,8 @@ ${code}</pre>`;
|
|
|
37427
37447
|
this._slidesTransitions.clear();
|
|
37428
37448
|
this._slidesBackgrounds.clear();
|
|
37429
37449
|
this._slidesEffects.clear();
|
|
37450
|
+
this._slidesMoods.clear();
|
|
37451
|
+
this._slidesBgEffects.clear();
|
|
37430
37452
|
this._slidesCols.clear();
|
|
37431
37453
|
this._slidesBuilds.clear();
|
|
37432
37454
|
slides.forEach((slide, i7) => {
|
|
@@ -37436,10 +37458,15 @@ ${code}</pre>`;
|
|
|
37436
37458
|
if (bgMatch) this._slidesBackgrounds.set(i7, bgMatch[1].trim());
|
|
37437
37459
|
const fxMatch = slide.match(/<!--\s*effect:\s*(\S+)\s*-->/);
|
|
37438
37460
|
if (fxMatch) this._slidesEffects.set(i7, fxMatch[1].trim());
|
|
37461
|
+
const moodMatch = slide.match(/<!--\s*mood:\s*(\w+)\s*-->/);
|
|
37462
|
+
if (moodMatch) this._slidesMoods.set(i7, moodMatch[1].trim());
|
|
37463
|
+
const bgFxMatch = slide.match(/<!--\s*background:\s*(\S+)\s*-->/);
|
|
37464
|
+
if (bgFxMatch) this._slidesBgEffects.set(i7, bgFxMatch[1].trim());
|
|
37439
37465
|
const colMatch = slide.match(/<!--\s*cols:\s*(\d+)\s*-->/);
|
|
37440
37466
|
if (colMatch) this._slidesCols.set(i7, Math.min(Math.max(parseInt(colMatch[1], 10), 2), 4));
|
|
37441
37467
|
if (/<!--\s*build\s*-->/.test(slide)) this._slidesBuilds.set(i7, true);
|
|
37442
37468
|
});
|
|
37469
|
+
this._slidesGlobalMood = config3.mood || "";
|
|
37443
37470
|
const defaultTheme2 = "auto";
|
|
37444
37471
|
return { slides, theme: config3.theme || defaultTheme2, config: config3 };
|
|
37445
37472
|
}
|
|
@@ -37491,7 +37518,7 @@ ${code}</pre>`;
|
|
|
37491
37518
|
return this._slidesBridgeScript || "";
|
|
37492
37519
|
}
|
|
37493
37520
|
/** Build an iframe srcdoc for a slide with the bridge loaded */
|
|
37494
|
-
_buildSlideSrcdoc(slideHtml, codeBlocks, headerText, footerText, pageNum, slideBg, slideEffect) {
|
|
37521
|
+
_buildSlideSrcdoc(slideHtml, codeBlocks, headerText, footerText, pageNum, slideBg, slideEffect, slideBgEffect) {
|
|
37495
37522
|
const bridge = this._slidesBridgeScript || "";
|
|
37496
37523
|
const photonPrefix = this.photonName ? this.photonName + "/" : "";
|
|
37497
37524
|
let html = slideHtml;
|
|
@@ -37516,11 +37543,15 @@ ${code}</pre>`;
|
|
|
37516
37543
|
}
|
|
37517
37544
|
}
|
|
37518
37545
|
const themeClass = this._slidesThemeClass || "slides-theme-default";
|
|
37546
|
+
const themeName = themeClass.replace("slides-theme-", "");
|
|
37547
|
+
const fontSpec = ResultViewer._THEME_FONTS[themeName];
|
|
37548
|
+
const fontLink = fontSpec ? `<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=${fontSpec}&display=swap">` : "";
|
|
37519
37549
|
return `<!doctype html>
|
|
37520
37550
|
<html lang="en" class="${themeClass}">
|
|
37521
37551
|
<head>
|
|
37522
37552
|
<meta charset="UTF-8">
|
|
37523
37553
|
<meta name="photon-template" content="true">
|
|
37554
|
+
${fontLink}
|
|
37524
37555
|
${bridge}
|
|
37525
37556
|
<style>
|
|
37526
37557
|
/* reveal.js-style scaling: fixed design canvas + transform:scale() */
|
|
@@ -37578,6 +37609,20 @@ ${bridge}
|
|
|
37578
37609
|
[data-enter="flip-in"] { animation: motion-flip-in 0.5s cubic-bezier(0.16,1,0.3,1) both; }
|
|
37579
37610
|
[data-enter="fade-in"] { animation: motion-fade-in 0.3s cubic-bezier(0.16,1,0.3,1) both; }
|
|
37580
37611
|
[data-enter="drop-in"] { animation: motion-drop-in 0.5s cubic-bezier(0.16,1,0.3,1) both; }
|
|
37612
|
+
[data-enter="mood-dramatic"] { animation: mood-dramatic 0.6s ease both; }
|
|
37613
|
+
[data-enter="mood-techy"] { animation: mood-techy 0.3s ease-out both; }
|
|
37614
|
+
[data-enter="mood-playful"] { animation: mood-playful 0.4s ease both; }
|
|
37615
|
+
[data-enter="mood-calm"] { animation: mood-calm 0.8s ease-in-out both; }
|
|
37616
|
+
/* Hide slide children initially, auto-reveal after 1.5s fallback if stagger doesn't fire */
|
|
37617
|
+
.slide-body > :not(.slide-content-area):not([data-enter]) {
|
|
37618
|
+
opacity: 0;
|
|
37619
|
+
animation: stagger-fallback 0.3s ease 1.5s both;
|
|
37620
|
+
}
|
|
37621
|
+
.slide-content-area > :not([data-enter]) {
|
|
37622
|
+
opacity: 0;
|
|
37623
|
+
animation: stagger-fallback 0.3s ease 1.5s both;
|
|
37624
|
+
}
|
|
37625
|
+
@keyframes stagger-fallback { to { opacity: 1; } }
|
|
37581
37626
|
@media (prefers-reduced-motion: reduce) {
|
|
37582
37627
|
[data-enter] { animation: none !important; opacity: 1 !important; }
|
|
37583
37628
|
}
|
|
@@ -37708,6 +37753,8 @@ ${bridge}
|
|
|
37708
37753
|
/* Full-bleed image */
|
|
37709
37754
|
.hero { width: 100%; border-radius: var(--radius-lg, 14px);
|
|
37710
37755
|
box-shadow: var(--shadow-lg, 0 24px 60px rgba(0,0,0,0.28)); }
|
|
37756
|
+
/* Theme presets (shared with outer shadow DOM) */
|
|
37757
|
+
${ResultViewer._BRIDGE_THEME_CSS}
|
|
37711
37758
|
</style>
|
|
37712
37759
|
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/prism.min.js"><\/script>
|
|
37713
37760
|
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-typescript.min.js"><\/script>
|
|
@@ -37726,7 +37773,8 @@ ${bridge}
|
|
|
37726
37773
|
</head>
|
|
37727
37774
|
<body>
|
|
37728
37775
|
${this._buildSlideBgHtml(slideBg || "")}
|
|
37729
|
-
|
|
37776
|
+
${slideBgEffect ? `<div style="position:absolute;inset:0;pointer-events:none;z-index:0;${slideBgEffect === "gradient-mesh" ? "background:radial-gradient(ellipse at 20% 50%,rgba(120,80,255,0.15) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(255,100,80,0.12) 0%,transparent 50%),radial-gradient(ellipse at 50% 80%,rgba(80,200,255,0.1) 0%,transparent 50%);animation:bgdrift 12s ease-in-out infinite alternate;" : slideBgEffect === "noise" ? "opacity:0.06;background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%27200%27 height=%27200%27%3E%3Cfilter id=%27n%27%3E%3CfeTurbulence type=%27fractalNoise%27 baseFrequency=%270.75%27 numOctaves=%274%27 stitchTiles=%27stitch%27/%3E%3C/filter%3E%3Crect width=%27100%25%27 height=%27100%25%27 filter=%27url(%23n)%27/%3E%3C/svg%3E");" : slideBgEffect === "grid" ? "background-image:linear-gradient(rgba(255,255,255,0.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.05) 1px,transparent 1px);background-size:32px 32px;" : slideBgEffect === "particles" ? "overflow:hidden;" : ""}"></div>` : ""}
|
|
37777
|
+
<div class="slide-canvas"${slideEffect ? ` data-effect="${slideEffect}"` : ""} style="position:relative;z-index:1;">
|
|
37730
37778
|
${headerText ? `<div class="slide-header">${headerText}</div>` : ""}
|
|
37731
37779
|
<div class="slide-body">${html}</div>
|
|
37732
37780
|
${footerText || pageNum ? `<div class="slide-footer"><span>${footerText || ""}</span><span>${pageNum || ""}</span></div>` : ""}
|
|
@@ -37779,6 +37827,74 @@ ${footerText || pageNum ? `<div class="slide-footer"><span>${footerText || ""}</
|
|
|
37779
37827
|
return document.querySelectorAll('.slide-fragment:not(.visible)').length === 0;
|
|
37780
37828
|
};
|
|
37781
37829
|
<\/script>
|
|
37830
|
+
<script>
|
|
37831
|
+
// Text effects for bridge slides
|
|
37832
|
+
(function() {
|
|
37833
|
+
var canvas = document.querySelector('.slide-canvas');
|
|
37834
|
+
var effect = canvas ? canvas.getAttribute('data-effect') : '';
|
|
37835
|
+
if (!effect) return;
|
|
37836
|
+
var heading = document.querySelector('.slide-body h1, .slide-body h2');
|
|
37837
|
+
if (!heading) return;
|
|
37838
|
+
var text = heading.textContent || '';
|
|
37839
|
+
if (!text) return;
|
|
37840
|
+
|
|
37841
|
+
if (effect === 'typing') {
|
|
37842
|
+
heading.textContent = '';
|
|
37843
|
+
heading.style.borderRight = '2px solid currentColor';
|
|
37844
|
+
var i = 0;
|
|
37845
|
+
function typeChar() {
|
|
37846
|
+
if (i < text.length) {
|
|
37847
|
+
heading.textContent += text[i]; i++;
|
|
37848
|
+
requestAnimationFrame(function() { setTimeout(typeChar, 40 + Math.random() * 30); });
|
|
37849
|
+
} else { setTimeout(function() { heading.style.borderRight = 'none'; }, 800); }
|
|
37850
|
+
}
|
|
37851
|
+
setTimeout(typeChar, 300);
|
|
37852
|
+
} else if (effect === 'scramble') {
|
|
37853
|
+
var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
37854
|
+
var revealed = new Array(text.length).fill(false);
|
|
37855
|
+
var iter = 0;
|
|
37856
|
+
function scrambleStep() {
|
|
37857
|
+
var d = '';
|
|
37858
|
+
for (var j = 0; j < text.length; j++) {
|
|
37859
|
+
d += (revealed[j] || text[j] === ' ') ? text[j] : chars[Math.floor(Math.random() * chars.length)];
|
|
37860
|
+
}
|
|
37861
|
+
heading.textContent = d;
|
|
37862
|
+
if (iter > 5) {
|
|
37863
|
+
var ur = []; for (var k = 0; k < revealed.length; k++) { if (!revealed[k] && text[k] !== ' ') ur.push(k); }
|
|
37864
|
+
if (ur.length > 0) revealed[ur[Math.floor(Math.random() * ur.length)]] = true;
|
|
37865
|
+
}
|
|
37866
|
+
iter++;
|
|
37867
|
+
if (ur && ur.length > 0) requestAnimationFrame(scrambleStep);
|
|
37868
|
+
else heading.textContent = text;
|
|
37869
|
+
}
|
|
37870
|
+
setTimeout(scrambleStep, 300);
|
|
37871
|
+
} else if (effect === 'wave') {
|
|
37872
|
+
heading.innerHTML = '';
|
|
37873
|
+
text.split('').forEach(function(ch, idx) {
|
|
37874
|
+
var s = document.createElement('span');
|
|
37875
|
+
s.textContent = ch === ' ' ? '\\u00A0' : ch;
|
|
37876
|
+
s.style.display = 'inline-block';
|
|
37877
|
+
s.style.opacity = '0';
|
|
37878
|
+
s.style.transform = 'translateY(20px)';
|
|
37879
|
+
s.style.transition = 'all 0.4s ease ' + (idx * 30) + 'ms';
|
|
37880
|
+
heading.appendChild(s);
|
|
37881
|
+
requestAnimationFrame(function() { s.style.opacity = '1'; s.style.transform = 'none'; });
|
|
37882
|
+
});
|
|
37883
|
+
} else if (effect === 'fly-in') {
|
|
37884
|
+
heading.innerHTML = '';
|
|
37885
|
+
text.split(' ').forEach(function(word, idx) {
|
|
37886
|
+
var s = document.createElement('span');
|
|
37887
|
+
s.textContent = word + ' ';
|
|
37888
|
+
s.style.display = 'inline-block';
|
|
37889
|
+
s.style.opacity = '0';
|
|
37890
|
+
s.style.transform = 'translate(' + ((Math.random()-0.5)*200) + 'px,' + ((Math.random()-0.5)*100) + 'px)';
|
|
37891
|
+
s.style.transition = 'all 0.6s cubic-bezier(0.16,1,0.3,1) ' + (idx * 80) + 'ms';
|
|
37892
|
+
heading.appendChild(s);
|
|
37893
|
+
requestAnimationFrame(function() { s.style.opacity = '1'; s.style.transform = 'none'; });
|
|
37894
|
+
});
|
|
37895
|
+
}
|
|
37896
|
+
})();
|
|
37897
|
+
<\/script>
|
|
37782
37898
|
</body>
|
|
37783
37899
|
</html>`;
|
|
37784
37900
|
}
|
|
@@ -37855,6 +37971,17 @@ ${footerText || pageNum ? `<div class="slide-footer"><span>${footerText || ""}</
|
|
|
37855
37971
|
const resolvedTheme = rawTheme === "auto" || rawTheme === "default" ? this.theme === "light" ? "uncover" : "default" : rawTheme;
|
|
37856
37972
|
const themeClass = `slides-theme-${resolvedTheme}`;
|
|
37857
37973
|
this._slidesThemeClass = themeClass;
|
|
37974
|
+
const fontSpec = ResultViewer._THEME_FONTS[resolvedTheme];
|
|
37975
|
+
if (fontSpec) {
|
|
37976
|
+
const linkId = `photon-font-${resolvedTheme}`;
|
|
37977
|
+
if (!document.getElementById(linkId)) {
|
|
37978
|
+
const link2 = document.createElement("link");
|
|
37979
|
+
link2.id = linkId;
|
|
37980
|
+
link2.rel = "stylesheet";
|
|
37981
|
+
link2.href = `https://fonts.googleapis.com/css2?family=${fontSpec}&display=swap`;
|
|
37982
|
+
document.head.appendChild(link2);
|
|
37983
|
+
}
|
|
37984
|
+
}
|
|
37858
37985
|
const bgOverride = config3.backgroundColor ? `background:${config3.backgroundColor};` : "";
|
|
37859
37986
|
const colorOverride = config3.color ? `color:${config3.color};` : "";
|
|
37860
37987
|
const viewportStyle = bgOverride + colorOverride;
|
|
@@ -37864,6 +37991,7 @@ ${footerText || pageNum ? `<div class="slide-footer"><span>${footerText || ""}</
|
|
|
37864
37991
|
const currentTransition = this._getSlideTransition(idx);
|
|
37865
37992
|
const slideBg = this._slidesBackgrounds.get(idx) || "";
|
|
37866
37993
|
const slideEffect = this._slidesEffects.get(idx) || "";
|
|
37994
|
+
const slideBgEffect = this._slidesBgEffects.get(idx) || "";
|
|
37867
37995
|
const slideBgStyle = this._buildSlideBgStyle(slideBg);
|
|
37868
37996
|
const isVideoBg = /\.(mp4|webm|mov)(\?|$)/i.test(slideBg) || slideBg.startsWith("video:");
|
|
37869
37997
|
return b2`
|
|
@@ -37886,6 +38014,7 @@ ${footerText || pageNum ? `<div class="slide-footer"><span>${footerText || ""}</
|
|
|
37886
38014
|
loop
|
|
37887
38015
|
playsinline
|
|
37888
38016
|
></video>` : b2`<div class="slides-bg-layer" style="${slideBgStyle}"></div>` : ""}
|
|
38017
|
+
${slideBgEffect ? b2`<div class="slides-bgfx slides-bgfx-${slideBgEffect}"></div>` : ""}
|
|
37889
38018
|
<div class="slides-content">
|
|
37890
38019
|
${this._slidesBridgeScript ? b2`<iframe
|
|
37891
38020
|
class="slide-bridge-frame"
|
|
@@ -37896,7 +38025,8 @@ ${footerText || pageNum ? `<div class="slide-footer"><span>${footerText || ""}</
|
|
|
37896
38025
|
footerText,
|
|
37897
38026
|
showPaginate ? `${idx + 1} / ${total}` : "",
|
|
37898
38027
|
slideBg,
|
|
37899
|
-
slideEffect
|
|
38028
|
+
slideEffect,
|
|
38029
|
+
slideBgEffect
|
|
37900
38030
|
)}
|
|
37901
38031
|
sandbox="allow-scripts allow-same-origin allow-popups"
|
|
37902
38032
|
frameborder="0"
|
|
@@ -37974,8 +38104,6 @@ ${footerText || pageNum ? `<div class="slide-footer"><span>${footerText || ""}</
|
|
|
37974
38104
|
position: relative;
|
|
37975
38105
|
border-radius: var(--radius-md, 8px);
|
|
37976
38106
|
outline: none;
|
|
37977
|
-
background: #1a1a2e;
|
|
37978
|
-
color: #e5e5e5;
|
|
37979
38107
|
font-family:
|
|
37980
38108
|
system-ui,
|
|
37981
38109
|
-apple-system,
|
|
@@ -37990,14 +38118,14 @@ ${footerText || pageNum ? `<div class="slide-footer"><span>${footerText || ""}</
|
|
|
37990
38118
|
display: flex;
|
|
37991
38119
|
align-items: center;
|
|
37992
38120
|
justify-content: center;
|
|
37993
|
-
padding: 48px 64px;
|
|
38121
|
+
padding: clamp(24px, 4vw, 48px) clamp(32px, 5vw, 64px);
|
|
37994
38122
|
overflow: hidden;
|
|
37995
38123
|
position: relative;
|
|
37996
38124
|
}
|
|
37997
38125
|
.slides-container:fullscreen .slides-viewport {
|
|
37998
38126
|
flex: 1;
|
|
37999
38127
|
aspect-ratio: auto;
|
|
38000
|
-
padding: 64px 120px;
|
|
38128
|
+
padding: clamp(32px, 5vh, 64px) clamp(48px, 8vw, 120px);
|
|
38001
38129
|
}
|
|
38002
38130
|
.slides-container:fullscreen .slides-viewport:has(.slide-bridge-frame) {
|
|
38003
38131
|
padding: 0;
|
|
@@ -38052,26 +38180,26 @@ ${footerText || pageNum ? `<div class="slide-footer"><span>${footerText || ""}</
|
|
|
38052
38180
|
z-index: -1;
|
|
38053
38181
|
}
|
|
38054
38182
|
.slides-content h1 {
|
|
38055
|
-
font-size:
|
|
38183
|
+
font-size: clamp(1.8rem, 5vw, 3.5rem);
|
|
38056
38184
|
margin: 0 0 0.4em;
|
|
38057
38185
|
font-weight: 800;
|
|
38058
38186
|
letter-spacing: -0.02em;
|
|
38059
38187
|
line-height: 1.15;
|
|
38060
38188
|
}
|
|
38061
38189
|
.slides-content h2 {
|
|
38062
|
-
font-size: 1.
|
|
38190
|
+
font-size: clamp(1.4rem, 3.5vw, 2.4rem);
|
|
38063
38191
|
margin: 0 0 0.4em;
|
|
38064
38192
|
font-weight: 700;
|
|
38065
38193
|
letter-spacing: -0.01em;
|
|
38066
38194
|
}
|
|
38067
38195
|
.slides-content h3 {
|
|
38068
|
-
font-size: 1.
|
|
38196
|
+
font-size: clamp(1.1rem, 2.5vw, 1.6rem);
|
|
38069
38197
|
margin: 0 0 0.3em;
|
|
38070
38198
|
font-weight: 600;
|
|
38071
38199
|
}
|
|
38072
38200
|
.slides-content p {
|
|
38073
38201
|
margin: 0.5em 0;
|
|
38074
|
-
font-size: 1.
|
|
38202
|
+
font-size: clamp(0.95rem, 1.8vw, 1.25rem);
|
|
38075
38203
|
line-height: 1.65;
|
|
38076
38204
|
}
|
|
38077
38205
|
.slides-content ul,
|
|
@@ -38376,6 +38504,300 @@ ${footerText || pageNum ? `<div class="slide-footer"><span>${footerText || ""}</
|
|
|
38376
38504
|
background: #191a21;
|
|
38377
38505
|
}
|
|
38378
38506
|
|
|
38507
|
+
/* ═══ AUTO THEME — inherits MCP client colors ═══ */
|
|
38508
|
+
.slides-theme-auto {
|
|
38509
|
+
background: var(--bg-panel, #1a1a2e);
|
|
38510
|
+
color: var(--t-primary, #e0e0e0);
|
|
38511
|
+
}
|
|
38512
|
+
.slides-theme-auto .slides-content h1,
|
|
38513
|
+
.slides-theme-auto .slides-content h2 {
|
|
38514
|
+
color: var(--accent, #6366f1);
|
|
38515
|
+
}
|
|
38516
|
+
.slides-theme-auto .slides-controls {
|
|
38517
|
+
background: var(--bg-glass, rgba(0, 0, 0, 0.4));
|
|
38518
|
+
}
|
|
38519
|
+
|
|
38520
|
+
/* ═══ NEON THEME ═══ */
|
|
38521
|
+
.slides-theme-neon {
|
|
38522
|
+
background: #0a0a1a;
|
|
38523
|
+
color: #e0e0ff;
|
|
38524
|
+
font-family: 'JetBrains Mono', var(--font-mono), monospace;
|
|
38525
|
+
}
|
|
38526
|
+
.slides-theme-neon .slides-content h1,
|
|
38527
|
+
.slides-theme-neon .slides-content h2 {
|
|
38528
|
+
color: #00f0ff;
|
|
38529
|
+
text-shadow:
|
|
38530
|
+
0 0 10px rgba(0, 240, 255, 0.5),
|
|
38531
|
+
0 0 40px rgba(0, 240, 255, 0.2);
|
|
38532
|
+
}
|
|
38533
|
+
.slides-theme-neon .slides-content blockquote {
|
|
38534
|
+
border-left: 3px solid #00f0ff;
|
|
38535
|
+
box-shadow: -4px 0 20px rgba(0, 240, 255, 0.15);
|
|
38536
|
+
}
|
|
38537
|
+
.slides-theme-neon .slides-content pre {
|
|
38538
|
+
border: 1px solid rgba(0, 240, 255, 0.2);
|
|
38539
|
+
box-shadow: 0 0 15px rgba(0, 240, 255, 0.1);
|
|
38540
|
+
}
|
|
38541
|
+
.slides-theme-neon .slides-viewport::after {
|
|
38542
|
+
content: '';
|
|
38543
|
+
position: absolute;
|
|
38544
|
+
inset: 0;
|
|
38545
|
+
pointer-events: none;
|
|
38546
|
+
background: repeating-linear-gradient(
|
|
38547
|
+
0deg,
|
|
38548
|
+
transparent,
|
|
38549
|
+
transparent 2px,
|
|
38550
|
+
rgba(0, 240, 255, 0.015) 2px,
|
|
38551
|
+
rgba(0, 240, 255, 0.015) 4px
|
|
38552
|
+
);
|
|
38553
|
+
z-index: 2;
|
|
38554
|
+
}
|
|
38555
|
+
.slides-theme-neon .slides-controls {
|
|
38556
|
+
background: #050510;
|
|
38557
|
+
}
|
|
38558
|
+
|
|
38559
|
+
/* ═══ EDITORIAL THEME ═══ */
|
|
38560
|
+
.slides-theme-editorial,
|
|
38561
|
+
.slides-theme-editorial .slides-viewport {
|
|
38562
|
+
background: #faf8f5;
|
|
38563
|
+
color: #2c2c2c;
|
|
38564
|
+
font-family: Georgia, 'Times New Roman', serif;
|
|
38565
|
+
}
|
|
38566
|
+
.slides-theme-editorial .slides-content h1,
|
|
38567
|
+
.slides-theme-editorial .slides-content h2 {
|
|
38568
|
+
font-family: 'Cormorant Garamond', Georgia, serif;
|
|
38569
|
+
color: #1a1a1a;
|
|
38570
|
+
font-weight: 600;
|
|
38571
|
+
}
|
|
38572
|
+
.slides-theme-editorial .slides-content h1 {
|
|
38573
|
+
letter-spacing: -0.03em;
|
|
38574
|
+
}
|
|
38575
|
+
.slides-theme-editorial .slides-content p:first-of-type::first-letter {
|
|
38576
|
+
float: left;
|
|
38577
|
+
font-size: 3.4em;
|
|
38578
|
+
line-height: 0.8;
|
|
38579
|
+
padding-right: 8px;
|
|
38580
|
+
padding-top: 4px;
|
|
38581
|
+
font-weight: 700;
|
|
38582
|
+
color: #c0392b;
|
|
38583
|
+
font-family: 'Cormorant Garamond', Georgia, serif;
|
|
38584
|
+
}
|
|
38585
|
+
.slides-theme-editorial .slides-content blockquote {
|
|
38586
|
+
border-left: 2px solid #c0392b;
|
|
38587
|
+
font-style: italic;
|
|
38588
|
+
font-size: 1.15em;
|
|
38589
|
+
color: #555;
|
|
38590
|
+
}
|
|
38591
|
+
.slides-theme-editorial .slides-content hr {
|
|
38592
|
+
border: none;
|
|
38593
|
+
height: 1px;
|
|
38594
|
+
background: linear-gradient(to right, transparent, #ccc, transparent);
|
|
38595
|
+
margin: 1.5em 0;
|
|
38596
|
+
}
|
|
38597
|
+
.slides-theme-editorial .slides-controls {
|
|
38598
|
+
background: #f0ece6;
|
|
38599
|
+
color: #666;
|
|
38600
|
+
}
|
|
38601
|
+
|
|
38602
|
+
/* ═══ BOLD-SIGNAL THEME ═══ */
|
|
38603
|
+
.slides-theme-bold-signal {
|
|
38604
|
+
background: linear-gradient(135deg, #0f0c29, #1a1a3e, #24243e);
|
|
38605
|
+
color: #e8e8f0;
|
|
38606
|
+
font-family: 'Space Grotesk', var(--font-sans), sans-serif;
|
|
38607
|
+
}
|
|
38608
|
+
.slides-theme-bold-signal .slides-content h1 {
|
|
38609
|
+
color: #ff6b35;
|
|
38610
|
+
font-weight: 700;
|
|
38611
|
+
}
|
|
38612
|
+
.slides-theme-bold-signal .slides-content h2 {
|
|
38613
|
+
color: #ffd166;
|
|
38614
|
+
}
|
|
38615
|
+
.slides-theme-bold-signal .slides-content blockquote {
|
|
38616
|
+
background: rgba(255, 107, 53, 0.1);
|
|
38617
|
+
border-left: 4px solid #ff6b35;
|
|
38618
|
+
border-radius: 0 8px 8px 0;
|
|
38619
|
+
padding: 16px 20px;
|
|
38620
|
+
}
|
|
38621
|
+
.slides-theme-bold-signal .slides-controls {
|
|
38622
|
+
background: #0a0820;
|
|
38623
|
+
}
|
|
38624
|
+
|
|
38625
|
+
/* ═══ SWISS THEME ═══ */
|
|
38626
|
+
.slides-theme-swiss,
|
|
38627
|
+
.slides-theme-swiss .slides-viewport {
|
|
38628
|
+
background: #ffffff;
|
|
38629
|
+
color: #1a1a1a;
|
|
38630
|
+
font-family: 'Helvetica Neue', 'Inter', Arial, sans-serif;
|
|
38631
|
+
}
|
|
38632
|
+
.slides-theme-swiss .slides-viewport::before {
|
|
38633
|
+
content: '';
|
|
38634
|
+
position: absolute;
|
|
38635
|
+
inset: 0;
|
|
38636
|
+
pointer-events: none;
|
|
38637
|
+
background-image:
|
|
38638
|
+
linear-gradient(rgba(0, 0, 0, 0.04) 1px, transparent 1px),
|
|
38639
|
+
linear-gradient(90deg, rgba(0, 0, 0, 0.04) 1px, transparent 1px);
|
|
38640
|
+
background-size: 40px 40px;
|
|
38641
|
+
z-index: 0;
|
|
38642
|
+
}
|
|
38643
|
+
.slides-theme-swiss .slides-content {
|
|
38644
|
+
position: relative;
|
|
38645
|
+
z-index: 1;
|
|
38646
|
+
}
|
|
38647
|
+
.slides-theme-swiss .slides-content h1 {
|
|
38648
|
+
color: #e63946;
|
|
38649
|
+
text-transform: uppercase;
|
|
38650
|
+
letter-spacing: 0.05em;
|
|
38651
|
+
font-weight: 900;
|
|
38652
|
+
}
|
|
38653
|
+
.slides-theme-swiss .slides-content h2 {
|
|
38654
|
+
color: #1d3557;
|
|
38655
|
+
font-weight: 700;
|
|
38656
|
+
}
|
|
38657
|
+
.slides-theme-swiss .slides-controls {
|
|
38658
|
+
background: #f1f1f1;
|
|
38659
|
+
color: #333;
|
|
38660
|
+
}
|
|
38661
|
+
|
|
38662
|
+
/* ═══ NOTEBOOK THEME ═══ */
|
|
38663
|
+
.slides-theme-notebook {
|
|
38664
|
+
background: #1a1a2e;
|
|
38665
|
+
color: #3c3c3c;
|
|
38666
|
+
}
|
|
38667
|
+
.slides-theme-notebook .slides-viewport {
|
|
38668
|
+
background: #fdf6e3;
|
|
38669
|
+
border-radius: 8px;
|
|
38670
|
+
margin: 12px;
|
|
38671
|
+
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
|
|
38672
|
+
border-left: 5px solid #e74c3c;
|
|
38673
|
+
}
|
|
38674
|
+
.slides-theme-notebook .slides-content h1,
|
|
38675
|
+
.slides-theme-notebook .slides-content h2 {
|
|
38676
|
+
font-family: 'Caveat', cursive, sans-serif;
|
|
38677
|
+
color: #2c3e50;
|
|
38678
|
+
}
|
|
38679
|
+
.slides-theme-notebook .slides-content h1 {
|
|
38680
|
+
font-size: clamp(2rem, 6vw, 4rem);
|
|
38681
|
+
}
|
|
38682
|
+
.slides-theme-notebook .slides-controls {
|
|
38683
|
+
background: #f5edd6;
|
|
38684
|
+
color: #666;
|
|
38685
|
+
}
|
|
38686
|
+
|
|
38687
|
+
/* ═══ MOOD KEYFRAMES ═══ */
|
|
38688
|
+
@keyframes mood-dramatic {
|
|
38689
|
+
from {
|
|
38690
|
+
opacity: 0;
|
|
38691
|
+
transform: scale(0.95) translateY(10px);
|
|
38692
|
+
}
|
|
38693
|
+
to {
|
|
38694
|
+
opacity: 1;
|
|
38695
|
+
transform: none;
|
|
38696
|
+
}
|
|
38697
|
+
}
|
|
38698
|
+
@keyframes mood-techy {
|
|
38699
|
+
0% {
|
|
38700
|
+
opacity: 0;
|
|
38701
|
+
transform: translateY(8px);
|
|
38702
|
+
filter: blur(4px);
|
|
38703
|
+
}
|
|
38704
|
+
50% {
|
|
38705
|
+
opacity: 1;
|
|
38706
|
+
filter: blur(0);
|
|
38707
|
+
}
|
|
38708
|
+
100% {
|
|
38709
|
+
transform: none;
|
|
38710
|
+
}
|
|
38711
|
+
}
|
|
38712
|
+
@keyframes mood-playful {
|
|
38713
|
+
0% {
|
|
38714
|
+
opacity: 0;
|
|
38715
|
+
transform: translateY(20px);
|
|
38716
|
+
}
|
|
38717
|
+
60% {
|
|
38718
|
+
transform: translateY(-4px);
|
|
38719
|
+
}
|
|
38720
|
+
80% {
|
|
38721
|
+
transform: translateY(2px);
|
|
38722
|
+
}
|
|
38723
|
+
100% {
|
|
38724
|
+
opacity: 1;
|
|
38725
|
+
transform: none;
|
|
38726
|
+
}
|
|
38727
|
+
}
|
|
38728
|
+
@keyframes mood-calm {
|
|
38729
|
+
from {
|
|
38730
|
+
opacity: 0;
|
|
38731
|
+
}
|
|
38732
|
+
to {
|
|
38733
|
+
opacity: 1;
|
|
38734
|
+
}
|
|
38735
|
+
}
|
|
38736
|
+
|
|
38737
|
+
/* ═══ BACKGROUND EFFECTS ═══ */
|
|
38738
|
+
.slides-bgfx {
|
|
38739
|
+
position: absolute;
|
|
38740
|
+
inset: 0;
|
|
38741
|
+
pointer-events: none;
|
|
38742
|
+
z-index: 0;
|
|
38743
|
+
}
|
|
38744
|
+
.slides-bgfx-gradient-mesh {
|
|
38745
|
+
background:
|
|
38746
|
+
radial-gradient(ellipse at 20% 50%, rgba(120, 80, 255, 0.15) 0%, transparent 50%),
|
|
38747
|
+
radial-gradient(ellipse at 80% 20%, rgba(255, 100, 80, 0.12) 0%, transparent 50%),
|
|
38748
|
+
radial-gradient(ellipse at 50% 80%, rgba(80, 200, 255, 0.1) 0%, transparent 50%);
|
|
38749
|
+
animation: bgfx-drift 12s ease-in-out infinite alternate;
|
|
38750
|
+
}
|
|
38751
|
+
@keyframes bgfx-drift {
|
|
38752
|
+
0% {
|
|
38753
|
+
transform: translate(0, 0) scale(1);
|
|
38754
|
+
}
|
|
38755
|
+
50% {
|
|
38756
|
+
transform: translate(5%, -3%) scale(1.05);
|
|
38757
|
+
}
|
|
38758
|
+
100% {
|
|
38759
|
+
transform: translate(-3%, 4%) scale(1.02);
|
|
38760
|
+
}
|
|
38761
|
+
}
|
|
38762
|
+
.slides-bgfx-noise {
|
|
38763
|
+
opacity: 0.06;
|
|
38764
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
|
|
38765
|
+
}
|
|
38766
|
+
.slides-bgfx-grid {
|
|
38767
|
+
background-image:
|
|
38768
|
+
linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
|
|
38769
|
+
linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
|
|
38770
|
+
background-size: 32px 32px;
|
|
38771
|
+
}
|
|
38772
|
+
.slides-bgfx-particles::before,
|
|
38773
|
+
.slides-bgfx-particles::after {
|
|
38774
|
+
content: '';
|
|
38775
|
+
position: absolute;
|
|
38776
|
+
width: 4px;
|
|
38777
|
+
height: 4px;
|
|
38778
|
+
border-radius: 50%;
|
|
38779
|
+
background: rgba(255, 255, 255, 0.2);
|
|
38780
|
+
box-shadow:
|
|
38781
|
+
40px 80px 0 rgba(255, 255, 255, 0.15),
|
|
38782
|
+
120px 40px 0 rgba(255, 255, 255, 0.1),
|
|
38783
|
+
200px 120px 0 rgba(255, 255, 255, 0.12),
|
|
38784
|
+
300px 60px 0 rgba(255, 255, 255, 0.08),
|
|
38785
|
+
400px 140px 0 rgba(255, 255, 255, 0.15);
|
|
38786
|
+
animation: bgfx-float 8s ease-in-out infinite alternate;
|
|
38787
|
+
}
|
|
38788
|
+
.slides-bgfx-particles::after {
|
|
38789
|
+
animation-delay: -4s;
|
|
38790
|
+
animation-direction: alternate-reverse;
|
|
38791
|
+
}
|
|
38792
|
+
@keyframes bgfx-float {
|
|
38793
|
+
from {
|
|
38794
|
+
transform: translateY(0);
|
|
38795
|
+
}
|
|
38796
|
+
to {
|
|
38797
|
+
transform: translateY(-15px);
|
|
38798
|
+
}
|
|
38799
|
+
}
|
|
38800
|
+
|
|
38379
38801
|
/* ═══ VIEW TRANSITIONS ═══ */
|
|
38380
38802
|
.slides-content {
|
|
38381
38803
|
view-transition-name: slide-content;
|
|
@@ -38691,11 +39113,14 @@ ${footerText || pageNum ? `<div class="slide-footer"><span>${footerText || ""}</
|
|
|
38691
39113
|
{ once: true }
|
|
38692
39114
|
);
|
|
38693
39115
|
}
|
|
38694
|
-
/** Trigger stagger-in animation on slide content children after transition.
|
|
38695
|
-
* Uses the universal data-enter attribute from the motion system. */
|
|
38696
39116
|
_slidesStaggerIn() {
|
|
38697
|
-
const
|
|
38698
|
-
const
|
|
39117
|
+
const idx = this._slidesCurrentIndex;
|
|
39118
|
+
const mood = this._slidesMoods.get(idx) || this._slidesGlobalMood;
|
|
39119
|
+
const moodCfg = ResultViewer._MOOD_CONFIG[mood];
|
|
39120
|
+
const slideEffect = this._slidesEffects.get(idx) || "";
|
|
39121
|
+
const enterValue = moodCfg ? moodCfg.enter : ResultViewer._EFFECT_MAP[slideEffect] || (slideEffect ? slideEffect : "slide-up");
|
|
39122
|
+
const delayMs = moodCfg?.delayMs ?? 60;
|
|
39123
|
+
const durationMs = moodCfg?.durationMs ?? 300;
|
|
38699
39124
|
const CHILD_SELECTOR = ":scope > h1, :scope > h2, :scope > h3, :scope > p, :scope > ul, :scope > ol, :scope > table, :scope > blockquote, :scope > pre, :scope > div:not(.slide-header):not(.slide-footer), :scope > figure, :scope > img, :scope > .slide-content-area";
|
|
38700
39125
|
const applyToChildren = (container) => {
|
|
38701
39126
|
const children = container.querySelectorAll(CHILD_SELECTOR);
|
|
@@ -38704,7 +39129,8 @@ ${footerText || pageNum ? `<div class="slide-footer"><span>${footerText || ""}</
|
|
|
38704
39129
|
htmlEl.removeAttribute("data-enter");
|
|
38705
39130
|
void htmlEl.offsetWidth;
|
|
38706
39131
|
htmlEl.setAttribute("data-enter", enterValue);
|
|
38707
|
-
htmlEl.style.animationDelay = `${i7 *
|
|
39132
|
+
htmlEl.style.animationDelay = `${i7 * delayMs}ms`;
|
|
39133
|
+
htmlEl.style.animationDuration = `${durationMs}ms`;
|
|
38708
39134
|
});
|
|
38709
39135
|
};
|
|
38710
39136
|
const iframe = this.shadowRoot?.querySelector(".slide-bridge-frame");
|
|
@@ -38724,6 +39150,97 @@ ${footerText || pageNum ? `<div class="slide-footer"><span>${footerText || ""}</
|
|
|
38724
39150
|
const content2 = this.shadowRoot?.querySelector(".slides-content");
|
|
38725
39151
|
if (content2) applyToChildren(content2);
|
|
38726
39152
|
}
|
|
39153
|
+
_slidesApplyTextEffect() {
|
|
39154
|
+
const effect = this._slidesEffects.get(this._slidesCurrentIndex) || "";
|
|
39155
|
+
if (!ResultViewer._PRETEXT_EFFECTS.has(effect)) return;
|
|
39156
|
+
const content2 = this.shadowRoot?.querySelector(".slides-content");
|
|
39157
|
+
if (!content2) return;
|
|
39158
|
+
const heading2 = content2.querySelector("h1, h2");
|
|
39159
|
+
if (!heading2) return;
|
|
39160
|
+
const text = heading2.textContent || "";
|
|
39161
|
+
if (!text) return;
|
|
39162
|
+
switch (effect) {
|
|
39163
|
+
case "typing": {
|
|
39164
|
+
heading2.textContent = "";
|
|
39165
|
+
heading2.style.borderRight = "2px solid currentColor";
|
|
39166
|
+
let i7 = 0;
|
|
39167
|
+
const type = () => {
|
|
39168
|
+
if (i7 < text.length) {
|
|
39169
|
+
heading2.textContent += text[i7];
|
|
39170
|
+
i7++;
|
|
39171
|
+
requestAnimationFrame(() => setTimeout(type, 40 + Math.random() * 30));
|
|
39172
|
+
} else {
|
|
39173
|
+
setTimeout(() => {
|
|
39174
|
+
heading2.style.borderRight = "none";
|
|
39175
|
+
}, 800);
|
|
39176
|
+
}
|
|
39177
|
+
};
|
|
39178
|
+
setTimeout(type, 200);
|
|
39179
|
+
break;
|
|
39180
|
+
}
|
|
39181
|
+
case "scramble": {
|
|
39182
|
+
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@#$%&";
|
|
39183
|
+
const revealed = new Array(text.length).fill(false);
|
|
39184
|
+
let iterations = 0;
|
|
39185
|
+
const scramble = () => {
|
|
39186
|
+
let display = "";
|
|
39187
|
+
for (let j2 = 0; j2 < text.length; j2++) {
|
|
39188
|
+
if (revealed[j2] || text[j2] === " ") {
|
|
39189
|
+
display += text[j2];
|
|
39190
|
+
} else {
|
|
39191
|
+
display += chars[Math.floor(Math.random() * chars.length)];
|
|
39192
|
+
}
|
|
39193
|
+
}
|
|
39194
|
+
heading2.textContent = display;
|
|
39195
|
+
if (iterations > 5) {
|
|
39196
|
+
const unrevealed = revealed.map((r7, idx) => !r7 && text[idx] !== " " ? idx : -1).filter((x3) => x3 >= 0);
|
|
39197
|
+
if (unrevealed.length > 0) {
|
|
39198
|
+
const pick2 = unrevealed[Math.floor(Math.random() * unrevealed.length)];
|
|
39199
|
+
revealed[pick2] = true;
|
|
39200
|
+
}
|
|
39201
|
+
}
|
|
39202
|
+
iterations++;
|
|
39203
|
+
if (revealed.some((r7) => !r7) && revealed.filter((r7) => r7).length < text.length) {
|
|
39204
|
+
requestAnimationFrame(scramble);
|
|
39205
|
+
} else {
|
|
39206
|
+
heading2.textContent = text;
|
|
39207
|
+
}
|
|
39208
|
+
};
|
|
39209
|
+
setTimeout(scramble, 200);
|
|
39210
|
+
break;
|
|
39211
|
+
}
|
|
39212
|
+
case "wave": {
|
|
39213
|
+
heading2.innerHTML = "";
|
|
39214
|
+
const chars = text.split("");
|
|
39215
|
+
chars.forEach((char, i7) => {
|
|
39216
|
+
const span = document.createElement("span");
|
|
39217
|
+
span.textContent = char === " " ? "\xA0" : char;
|
|
39218
|
+
span.style.display = "inline-block";
|
|
39219
|
+
span.style.animation = `mood-playful 0.5s ease ${i7 * 30}ms both`;
|
|
39220
|
+
heading2.appendChild(span);
|
|
39221
|
+
});
|
|
39222
|
+
break;
|
|
39223
|
+
}
|
|
39224
|
+
case "fly-in": {
|
|
39225
|
+
heading2.innerHTML = "";
|
|
39226
|
+
const words = text.split(" ");
|
|
39227
|
+
words.forEach((word, i7) => {
|
|
39228
|
+
const span = document.createElement("span");
|
|
39229
|
+
span.textContent = word + " ";
|
|
39230
|
+
span.style.display = "inline-block";
|
|
39231
|
+
span.style.opacity = "0";
|
|
39232
|
+
span.style.transform = `translate(${(Math.random() - 0.5) * 200}px, ${(Math.random() - 0.5) * 100}px)`;
|
|
39233
|
+
span.style.transition = `all 0.6s cubic-bezier(0.16, 1, 0.3, 1) ${i7 * 80}ms`;
|
|
39234
|
+
heading2.appendChild(span);
|
|
39235
|
+
requestAnimationFrame(() => {
|
|
39236
|
+
span.style.opacity = "1";
|
|
39237
|
+
span.style.transform = "none";
|
|
39238
|
+
});
|
|
39239
|
+
});
|
|
39240
|
+
break;
|
|
39241
|
+
}
|
|
39242
|
+
}
|
|
39243
|
+
}
|
|
38727
39244
|
/** Advance the next hidden build fragment. Returns true if a fragment was revealed. */
|
|
38728
39245
|
_slidesAdvanceBuild() {
|
|
38729
39246
|
const hasBuild = this._slidesBuilds.get(this._slidesCurrentIndex);
|
|
@@ -38788,6 +39305,7 @@ ${footerText || pageNum ? `<div class="slide-footer"><span>${footerText || ""}</
|
|
|
38788
39305
|
this._afterSlideRender();
|
|
38789
39306
|
}
|
|
38790
39307
|
this._slidesStaggerIn();
|
|
39308
|
+
this._slidesApplyTextEffect();
|
|
38791
39309
|
};
|
|
38792
39310
|
if (transition === "none" || !("startViewTransition" in document) || this._slidesBridgeScript) {
|
|
38793
39311
|
this._slidesCurrentIndex = newIndex;
|
|
@@ -39663,6 +40181,77 @@ ${footerText || pageNum ? `<div class="slide-footer"><span>${footerText || ""}</
|
|
|
39663
40181
|
</div>
|
|
39664
40182
|
`;
|
|
39665
40183
|
}
|
|
40184
|
+
// ── Guide Renderer — horizontal stepper for multi-step flows ──
|
|
40185
|
+
_renderGuide(data) {
|
|
40186
|
+
const steps2 = Array.isArray(data) ? data : [];
|
|
40187
|
+
if (steps2.length === 0) {
|
|
40188
|
+
return b2`<div class="empty-state">No steps</div>`;
|
|
40189
|
+
}
|
|
40190
|
+
return b2`
|
|
40191
|
+
<div
|
|
40192
|
+
style="display: flex; align-items: flex-start; gap: 0; padding: 16px 8px; overflow-x: auto;"
|
|
40193
|
+
>
|
|
40194
|
+
${steps2.map((step, i7) => {
|
|
40195
|
+
const status = step.status || "pending";
|
|
40196
|
+
const isDone = status === "done";
|
|
40197
|
+
const isActive = status === "active";
|
|
40198
|
+
const circleColor = isDone ? "var(--accent-primary, #3b82f6)" : isActive ? "var(--accent-primary, #3b82f6)" : "var(--bg-tertiary, #374151)";
|
|
40199
|
+
const circleBorder = isActive ? "2px solid var(--accent-primary, #3b82f6)" : "none";
|
|
40200
|
+
const circleText = isDone ? "#fff" : isActive ? "var(--accent-primary, #3b82f6)" : "var(--t-muted, #9ca3af)";
|
|
40201
|
+
const circleBg = isDone ? circleColor : isActive ? "transparent" : circleColor;
|
|
40202
|
+
const labelColor = isDone || isActive ? "var(--t-primary, #f5f5f5)" : "var(--t-muted, #9ca3af)";
|
|
40203
|
+
const lineColor = isDone ? "var(--accent-primary, #3b82f6)" : "var(--bg-tertiary, #374151)";
|
|
40204
|
+
return b2`
|
|
40205
|
+
<div style="display: flex; align-items: flex-start; flex: 1; min-width: 0;">
|
|
40206
|
+
<div
|
|
40207
|
+
style="display: flex; flex-direction: column; align-items: center; flex-shrink: 0; width: 100%;"
|
|
40208
|
+
>
|
|
40209
|
+
<div
|
|
40210
|
+
style="
|
|
40211
|
+
width: 28px; height: 28px; border-radius: 50%;
|
|
40212
|
+
background: ${circleBg}; border: ${circleBorder};
|
|
40213
|
+
display: flex; align-items: center; justify-content: center;
|
|
40214
|
+
font-size: 12px; font-weight: 600; color: ${circleText};
|
|
40215
|
+
transition: all 0.2s ease;
|
|
40216
|
+
"
|
|
40217
|
+
>
|
|
40218
|
+
${isDone ? b2`<svg
|
|
40219
|
+
width="14"
|
|
40220
|
+
height="14"
|
|
40221
|
+
viewBox="0 0 12 12"
|
|
40222
|
+
fill="none"
|
|
40223
|
+
stroke="currentColor"
|
|
40224
|
+
stroke-width="2"
|
|
40225
|
+
stroke-linecap="round"
|
|
40226
|
+
>
|
|
40227
|
+
<path d="M2.5 6l2.5 2.5 4.5-5" />
|
|
40228
|
+
</svg>` : i7 + 1}
|
|
40229
|
+
</div>
|
|
40230
|
+
<div
|
|
40231
|
+
style="margin-top: 6px; font-size: 12px; font-weight: ${isActive ? "600" : "500"}; color: ${labelColor}; text-align: center; line-height: 1.3; padding: 0 4px;"
|
|
40232
|
+
>
|
|
40233
|
+
${step.label}
|
|
40234
|
+
</div>
|
|
40235
|
+
${step.detail ? b2`<div
|
|
40236
|
+
style="margin-top: 2px; font-size: 11px; color: var(--t-muted, #9ca3af); text-align: center; padding: 0 4px;"
|
|
40237
|
+
>
|
|
40238
|
+
${step.detail}
|
|
40239
|
+
</div>` : ""}
|
|
40240
|
+
</div>
|
|
40241
|
+
${i7 < steps2.length - 1 ? b2`<div
|
|
40242
|
+
style="
|
|
40243
|
+
position: relative; top: 14px;
|
|
40244
|
+
flex: 1; height: 2px; min-width: 20px;
|
|
40245
|
+
background: ${lineColor};
|
|
40246
|
+
transition: background 0.2s ease;
|
|
40247
|
+
"
|
|
40248
|
+
></div>` : ""}
|
|
40249
|
+
</div>
|
|
40250
|
+
`;
|
|
40251
|
+
})}
|
|
40252
|
+
</div>
|
|
40253
|
+
`;
|
|
40254
|
+
}
|
|
39666
40255
|
// ── Magazine Renderer — markdown-powered multi-column layout ──
|
|
39667
40256
|
_renderMagazine(data) {
|
|
39668
40257
|
const text = typeof data === "string" ? data : data?.text || "";
|
|
@@ -43525,6 +44114,52 @@ ResultViewer._TIMESTAMP_FIELDS = [
|
|
|
43525
44114
|
// ReactiveArray auto-stamp (fallback for creation)
|
|
43526
44115
|
];
|
|
43527
44116
|
// Map slide effect directives to universal motion data-enter values
|
|
44117
|
+
// Shared theme CSS injected into both shadow DOM styles and bridge srcdoc
|
|
44118
|
+
ResultViewer._BRIDGE_THEME_CSS = `
|
|
44119
|
+
.slides-theme-default { background: #1a1a2e; color: #e6e6e6; }
|
|
44120
|
+
.slides-theme-default h1, .slides-theme-default h2 { color: #a5b4fc; }
|
|
44121
|
+
.slides-theme-uncover { background: #f8f8f8; color: #333; }
|
|
44122
|
+
.slides-theme-uncover h1, .slides-theme-uncover h2 { color: #1a1a1a; }
|
|
44123
|
+
.slides-theme-gaia { background: #1a472a; color: #e0f0e0; }
|
|
44124
|
+
.slides-theme-gaia h1, .slides-theme-gaia h2 { color: #66bb6a; }
|
|
44125
|
+
.slides-theme-rose { background: #2d1b2e; color: #f0e0e8; }
|
|
44126
|
+
.slides-theme-rose h1, .slides-theme-rose h2 { color: #f48fb1; }
|
|
44127
|
+
.slides-theme-dracula { background: #282a36; color: #f8f8f2; }
|
|
44128
|
+
.slides-theme-dracula h1, .slides-theme-dracula h2 { color: #bd93f9; }
|
|
44129
|
+
.slides-theme-auto { background: var(--bg-panel, #1a1a2e); color: var(--t-primary, #e0e0e0); }
|
|
44130
|
+
.slides-theme-auto h1, .slides-theme-auto h2 { color: var(--accent, #6366f1); }
|
|
44131
|
+
.slides-theme-neon { background: #0a0a1a; color: #e0e0ff; font-family: 'JetBrains Mono', monospace; }
|
|
44132
|
+
.slides-theme-neon h1, .slides-theme-neon h2 { color: #00f0ff; text-shadow: 0 0 10px rgba(0,240,255,0.5), 0 0 40px rgba(0,240,255,0.2); }
|
|
44133
|
+
.slides-theme-editorial { background: #faf8f5; color: #2c2c2c; font-family: Georgia, 'Times New Roman', serif; }
|
|
44134
|
+
.slides-theme-editorial h1, .slides-theme-editorial h2 { font-family: 'Cormorant Garamond', Georgia, serif; color: #1a1a1a; }
|
|
44135
|
+
.slides-theme-bold-signal { background: linear-gradient(135deg, #0f0c29, #1a1a3e, #24243e); color: #e8e8f0; font-family: 'Space Grotesk', sans-serif; }
|
|
44136
|
+
.slides-theme-bold-signal h1 { color: #ff6b35; }
|
|
44137
|
+
.slides-theme-bold-signal h2 { color: #ffd166; }
|
|
44138
|
+
.slides-theme-swiss { background: #ffffff; color: #1a1a1a; font-family: 'Helvetica Neue', 'Inter', Arial, sans-serif; }
|
|
44139
|
+
.slides-theme-swiss h1 { color: #e63946; text-transform: uppercase; letter-spacing: 0.05em; }
|
|
44140
|
+
.slides-theme-swiss h2 { color: #1d3557; }
|
|
44141
|
+
.slides-theme-notebook { background: #1a1a2e; color: #3c3c3c; }
|
|
44142
|
+
.slides-theme-notebook .slide-canvas { background: #fdf6e3; border-left: 5px solid #e74c3c; border-radius: 8px; }
|
|
44143
|
+
.slides-theme-notebook h1, .slides-theme-notebook h2 { font-family: 'Caveat', cursive; color: #2c3e50; }
|
|
44144
|
+
@keyframes mood-dramatic { from { opacity: 0; transform: scale(0.95) translateY(10px); } to { opacity: 1; transform: none; } }
|
|
44145
|
+
@keyframes mood-techy { 0% { opacity: 0; transform: translateY(8px); filter: blur(4px); } 50% { opacity: 1; filter: blur(0); } 100% { transform: none; } }
|
|
44146
|
+
@keyframes mood-playful { 0% { opacity: 0; transform: translateY(20px); } 60% { transform: translateY(-4px); } 80% { transform: translateY(2px); } 100% { opacity: 1; transform: none; } }
|
|
44147
|
+
@keyframes mood-calm { from { opacity: 0; } to { opacity: 1; } }
|
|
44148
|
+
@keyframes bgdrift { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(5%,-3%) scale(1.05); } 100% { transform: translate(-3%,4%) scale(1.02); } }
|
|
44149
|
+
.slides-theme-neon body::after { content: ''; position: fixed; inset: 0; pointer-events: none; background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,240,255,0.015) 2px, rgba(0,240,255,0.015) 4px); z-index: 100; }
|
|
44150
|
+
.slides-theme-neon .slide-body blockquote { border-left: 3px solid #00f0ff; box-shadow: -4px 0 20px rgba(0,240,255,0.15); }
|
|
44151
|
+
.slides-theme-neon .slide-body pre { border: 1px solid rgba(0,240,255,0.2); box-shadow: 0 0 15px rgba(0,240,255,0.1); }
|
|
44152
|
+
.slides-theme-editorial .slide-body p:first-of-type::first-letter { float: left; font-size: 3.4em; line-height: 0.8; padding-right: 8px; padding-top: 4px; font-weight: 700; color: #c0392b; font-family: 'Cormorant Garamond', Georgia, serif; }
|
|
44153
|
+
.slides-theme-editorial .slide-body blockquote { border-left: 2px solid #c0392b; font-style: italic; color: #555; }
|
|
44154
|
+
.slides-theme-bold-signal .slide-body blockquote { background: rgba(255,107,53,0.1); border-left: 4px solid #ff6b35; border-radius: 0 8px 8px 0; padding: 16px 20px; }
|
|
44155
|
+
.slides-theme-swiss body::before { content: ''; position: fixed; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(0,0,0,0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(0,0,0,0.04) 1px, transparent 1px); background-size: 40px 40px; z-index: 0; }
|
|
44156
|
+
`;
|
|
44157
|
+
// Google Fonts per theme
|
|
44158
|
+
ResultViewer._THEME_FONTS = {
|
|
44159
|
+
editorial: "Cormorant+Garamond:wght@400;600;700",
|
|
44160
|
+
"bold-signal": "Space+Grotesk:wght@500;700",
|
|
44161
|
+
notebook: "Caveat:wght@400;700"
|
|
44162
|
+
};
|
|
43528
44163
|
ResultViewer._EFFECT_MAP = {
|
|
43529
44164
|
"fade-up": "slide-up",
|
|
43530
44165
|
"fade-down": "slide-down",
|
|
@@ -43543,6 +44178,18 @@ ResultViewer._EFFECT_MAP = {
|
|
|
43543
44178
|
"scale-up": "scale-up",
|
|
43544
44179
|
"flip-in": "flip-in"
|
|
43545
44180
|
};
|
|
44181
|
+
/** Trigger stagger-in animation on slide content children after transition.
|
|
44182
|
+
* Uses the universal data-enter attribute from the motion system. */
|
|
44183
|
+
// Mood → animation config
|
|
44184
|
+
ResultViewer._MOOD_CONFIG = {
|
|
44185
|
+
dramatic: { enter: "mood-dramatic", delayMs: 100, durationMs: 600 },
|
|
44186
|
+
techy: { enter: "mood-techy", delayMs: 40, durationMs: 300 },
|
|
44187
|
+
playful: { enter: "mood-playful", delayMs: 80, durationMs: 400 },
|
|
44188
|
+
professional: { enter: "fade-in", delayMs: 30, durationMs: 200 },
|
|
44189
|
+
calm: { enter: "mood-calm", delayMs: 120, durationMs: 800 }
|
|
44190
|
+
};
|
|
44191
|
+
// Pretext-powered text effects: typing, scramble, wave, fly-in
|
|
44192
|
+
ResultViewer._PRETEXT_EFFECTS = /* @__PURE__ */ new Set(["typing", "scramble", "wave", "fly-in"]);
|
|
43546
44193
|
__decorateClass([
|
|
43547
44194
|
n4({ type: Object })
|
|
43548
44195
|
], ResultViewer.prototype, "result", 2);
|
|
@@ -92284,6 +92931,12 @@ function buildPhotonDocblockTagCatalog(runtimeVersion) {
|
|
|
92284
92931
|
apply: "@stateful true",
|
|
92285
92932
|
type: "keyword"
|
|
92286
92933
|
},
|
|
92934
|
+
{
|
|
92935
|
+
label: "@channel",
|
|
92936
|
+
detail: "Channel support \u2014 sends messages into client conversations (e.g. @channel claude)",
|
|
92937
|
+
apply: "@channel claude",
|
|
92938
|
+
type: "keyword"
|
|
92939
|
+
},
|
|
92287
92940
|
{
|
|
92288
92941
|
label: "@idleTimeout",
|
|
92289
92942
|
detail: "Idle timeout in ms",
|
|
@@ -96283,6 +96936,7 @@ var ElicitationModal = class extends i4 {
|
|
|
96283
96936
|
case "confirm":
|
|
96284
96937
|
return this._renderConfirm();
|
|
96285
96938
|
case "oauth":
|
|
96939
|
+
case "url":
|
|
96286
96940
|
return this._renderOAuth();
|
|
96287
96941
|
case "form":
|
|
96288
96942
|
return this._renderForm();
|
|
@@ -96467,17 +97121,19 @@ var ElicitationModal = class extends i4 {
|
|
|
96467
97121
|
};
|
|
96468
97122
|
const provider = this.data?.provider || "OAuth";
|
|
96469
97123
|
const icon2 = providerIcons[provider.toLowerCase()] || providerIcons.default;
|
|
96470
|
-
const scopes = (this.data?.scopes || []).join(", ")
|
|
97124
|
+
const scopes = (this.data?.scopes || []).join(", ");
|
|
97125
|
+
const customMessage = this.data?.message;
|
|
97126
|
+
const buttonLabel = customMessage ? "Open" : `Authorize ${provider}`;
|
|
96471
97127
|
return b2`
|
|
96472
97128
|
<div class="oauth-content">
|
|
96473
97129
|
<div class="oauth-icon">${icon2}</div>
|
|
96474
|
-
<p class="oauth-message">
|
|
96475
|
-
|
|
97130
|
+
<p class="oauth-message">
|
|
97131
|
+
${customMessage || `Authorization is required to access ${provider}.`}
|
|
97132
|
+
</p>
|
|
97133
|
+
${scopes ? b2`<p class="oauth-scopes">Requested permissions: ${scopes}</p>` : ""}
|
|
96476
97134
|
<div class="actions" style="justify-content: center;">
|
|
96477
97135
|
<button class="btn-secondary" @click=${() => this._cancel()}>Cancel</button>
|
|
96478
|
-
<button class="btn-primary" @click=${() => this._startOAuth()}>
|
|
96479
|
-
Authorize ${provider}
|
|
96480
|
-
</button>
|
|
97136
|
+
<button class="btn-primary" @click=${() => this._startOAuth()}>${buttonLabel}</button>
|
|
96481
97137
|
</div>
|
|
96482
97138
|
</div>
|
|
96483
97139
|
`;
|