hono-decks 1.0.4 → 1.2.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/README.ja.md +221 -3
- package/README.md +241 -3
- package/dist/adapters/hono-markdown.d.ts +39 -0
- package/dist/adapters/hono-markdown.js +47 -0
- package/dist/advanced.d.ts +8 -1
- package/dist/advanced.js +165 -118
- package/dist/bin.js +356 -86
- package/dist/cli.js +356 -86
- package/dist/file-transaction-NjDxX6Gt.js +80 -0
- package/dist/honox.d.ts +21 -0
- package/dist/honox.js +47 -0
- package/dist/init-vite-EA_L4k2H.js +441 -0
- package/dist/mod.d.ts +8 -1
- package/dist/mod.js +7 -2
- package/dist/node.d.ts +121 -98
- package/dist/node.js +474 -157
- package/dist/vite.d.ts +4 -2
- package/dist/vite.js +441 -53
- package/package.json +15 -2
- package/skills/hono-decks/references/getting-started.md +40 -1
- package/skills/hono-decks/references/integrating.md +12 -0
- package/skills/hono-decks/references/styling.md +10 -0
- package/vite-env.d.ts +7 -0
package/dist/advanced.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Hono } from "hono";
|
|
2
2
|
import { raw } from "hono/html";
|
|
3
|
-
import { jsx } from "hono/jsx/jsx-runtime";
|
|
3
|
+
import { Fragment, jsx } from "hono/jsx/jsx-runtime";
|
|
4
4
|
import { HtmlEscapedCallbackPhase, resolveCallback } from "hono/utils/html";
|
|
5
5
|
//#region src/source/manifest-source.ts
|
|
6
6
|
function manifestDeckSource(manifest) {
|
|
@@ -440,6 +440,18 @@ function renderRegisteredComponent(name, definition, props, children, assets = [
|
|
|
440
440
|
children: element
|
|
441
441
|
});
|
|
442
442
|
}
|
|
443
|
+
function renderJsxValueSync(value) {
|
|
444
|
+
const resolved = value;
|
|
445
|
+
if (typeof resolved === "string") return resolved;
|
|
446
|
+
if (resolved === null || resolved === void 0 || typeof resolved === "boolean") return "";
|
|
447
|
+
if (typeof resolved === "number") return String(resolved);
|
|
448
|
+
const html = jsx(Fragment, { children: resolved }).toString();
|
|
449
|
+
if (html instanceof Promise) {
|
|
450
|
+
html.catch(() => void 0);
|
|
451
|
+
throw new Error("Async Hono JSX callbacks are not supported in sync rendering.");
|
|
452
|
+
}
|
|
453
|
+
return html;
|
|
454
|
+
}
|
|
443
455
|
async function renderJsxValue(value) {
|
|
444
456
|
const resolved = value instanceof Promise ? await value : value;
|
|
445
457
|
if (typeof resolved === "string") return resolved;
|
|
@@ -654,6 +666,108 @@ function controlIconPaths(name) {
|
|
|
654
666
|
}
|
|
655
667
|
}
|
|
656
668
|
//#endregion
|
|
669
|
+
//#region src/renderer/presentation-style.ts
|
|
670
|
+
const PRESENTATION_DESIGN_WIDTH = 1920;
|
|
671
|
+
const PRESENTATION_DESIGN_HEIGHT = 1080;
|
|
672
|
+
function presentationDesignCssVariables() {
|
|
673
|
+
return `--hono-decks-width:${PRESENTATION_DESIGN_WIDTH}px;--hono-decks-height:${PRESENTATION_DESIGN_HEIGHT}px`;
|
|
674
|
+
}
|
|
675
|
+
function basePresentationStyle() {
|
|
676
|
+
return `
|
|
677
|
+
:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:32px;${presentationDesignCssVariables()};--hono-decks-transition-duration:.24s;--hono-decks-transition-easing:ease;--hono-decks-background:#fff;--hono-decks-color:#172033;--hono-decks-muted-color:#475569;--hono-decks-accent-color:#0369a1;--hono-decks-border-color:#cbd5e1;--hono-decks-inline-code-background:#f1f5f9;--hono-decks-code-background:#f1f5f9;--hono-decks-card-background:#f1f5f9;--hono-decks-card-image-background:#e2e8f0;--hono-decks-warning-background:#fef3c7;--hono-decks-warning-color:#854d0e;background:var(--hono-decks-background);color:var(--hono-decks-color)}
|
|
678
|
+
html,body{margin:0;width:100%;height:100%;overflow:hidden}
|
|
679
|
+
.hono-decks-stage{width:100vw;height:100vh;overflow:hidden;position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);place-items:center}
|
|
680
|
+
.hono-decks-deck{display:grid;gap:1rem;width:var(--hono-decks-width);height:var(--hono-decks-height);box-sizing:border-box;transform-origin:center}
|
|
681
|
+
.slide{box-sizing:border-box;aspect-ratio:16/9;background:var(--hono-decks-background);color:var(--hono-decks-color);padding:1.8rem;overflow:hidden}
|
|
682
|
+
.hono-decks-slide-content{width:100%;height:100%}
|
|
683
|
+
.slide.layout-cover,.slide.layout-statement{display:flex;flex-direction:column;justify-content:center}
|
|
684
|
+
.slide.layout-cover>.hono-decks-slide-content,.slide.layout-statement>.hono-decks-slide-content{display:flex;flex-direction:column;justify-content:center}
|
|
685
|
+
.slide code{font-family:"SFMono-Regular","Cascadia Code","Liberation Mono",Menlo,Consolas,monospace;font-size:.9em;line-height:1.45}
|
|
686
|
+
.slide :not(pre)>code{border-radius:6px;background:var(--hono-decks-inline-code-background);padding:.12em .34em}
|
|
687
|
+
.slide pre{max-width:100%;overflow:auto;box-sizing:border-box;border:1px solid var(--hono-decks-border-color);border-radius:8px;background:var(--hono-decks-code-background);padding:1rem;tab-size:2;white-space:pre}
|
|
688
|
+
.slide pre code{display:block;min-width:max-content;background:transparent;padding:0}
|
|
689
|
+
.slide table{width:100%;margin:1rem 0;border-collapse:collapse}
|
|
690
|
+
.slide th,.slide td{border:1px solid var(--hono-decks-border-color);padding:.4em .75em;text-align:left}
|
|
691
|
+
.slide th{background:var(--hono-decks-card-background);font-weight:700}
|
|
692
|
+
.slide del{color:var(--hono-decks-muted-color)}
|
|
693
|
+
.slide li.task-list-item{list-style:none;margin-left:-1.4em}
|
|
694
|
+
.slide li.task-list-item input[type=checkbox]{margin-right:.5em;vertical-align:middle}
|
|
695
|
+
.hono-decks-code-block{margin:1rem 0;max-width:100%}
|
|
696
|
+
.hono-decks-code-caption{display:inline-flex;margin:0 0 .4rem;border:1px solid var(--hono-decks-border-color);border-radius:6px;padding:.2rem .5rem;background:var(--hono-decks-inline-code-background);color:var(--hono-decks-muted-color);font-size:.82rem}
|
|
697
|
+
.hono-decks-embed-frame{margin:1rem 0;max-width:100%}
|
|
698
|
+
.hono-decks-embed-viewport{width:min(100%,72rem);overflow:hidden}
|
|
699
|
+
.hono-decks-embed-viewport iframe{display:block;width:100%;height:100%;border:0}
|
|
700
|
+
.hono-decks-embed-print-fallback{display:none}
|
|
701
|
+
.hono-decks-embed-print-poster{display:block;width:100%;height:100%;object-fit:cover}
|
|
702
|
+
.hono-decks-embed-fallback{margin:.45rem 0 0;color:var(--hono-decks-muted-color);font-size:.84rem}
|
|
703
|
+
.hono-decks-embed-fallback a{color:inherit}
|
|
704
|
+
.hono-decks-social-embed{margin:1rem 0;max-width:min(100%,42rem)}
|
|
705
|
+
.hono-decks-social-card{margin:0;border:1px solid var(--hono-decks-border-color);border-radius:8px;background:var(--hono-decks-card-background);padding:1rem}
|
|
706
|
+
.hono-decks-social-card p{margin:0 0 .75rem;line-height:1.55}
|
|
707
|
+
.hono-decks-social-card footer{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;color:var(--hono-decks-muted-color);font-size:.9rem}
|
|
708
|
+
.hono-decks-social-card a{color:inherit}
|
|
709
|
+
.hono-decks-tweet-embed{margin:1rem 0;max-width:min(100%,42rem)}
|
|
710
|
+
.hono-decks-tweet-embed .twitter-tweet{margin:0;border:1px solid var(--hono-decks-border-color);border-radius:8px;background:var(--hono-decks-card-background);padding:1rem}
|
|
711
|
+
.hono-decks-tweet-embed .twitter-tweet a{color:inherit}
|
|
712
|
+
.hono-decks-tweet-print-fallback{display:none}
|
|
713
|
+
.hono-decks-link-card{margin:1rem 0;max-width:min(100%,42rem)}
|
|
714
|
+
.hono-decks-link-card-anchor{display:grid;grid-template-columns:minmax(9rem,32%) minmax(0,1fr);gap:.75rem;align-items:stretch;border:1px solid var(--hono-decks-border-color);border-radius:8px;background:var(--hono-decks-card-background);padding:1rem;color:inherit;text-decoration:none}
|
|
715
|
+
.hono-decks-link-card-body{display:grid;gap:.35rem;min-width:0}
|
|
716
|
+
.hono-decks-link-card-image{width:100%;height:100%;max-height:10rem;aspect-ratio:16/9;object-fit:cover;border-radius:6px;background:var(--hono-decks-card-image-background)}
|
|
717
|
+
.hono-decks-link-card-site{color:var(--hono-decks-accent-color);font-size:.8rem;text-transform:uppercase}
|
|
718
|
+
.hono-decks-link-card-title{font-weight:700}
|
|
719
|
+
.hono-decks-link-card-description{color:var(--hono-decks-muted-color);line-height:1.45}
|
|
720
|
+
.hono-decks-link-card-label{color:var(--hono-decks-accent-color);font-size:.88rem}
|
|
721
|
+
.mdx-hero{height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,42%);gap:1.8rem;align-items:center}
|
|
722
|
+
.mdx-hero:not(.has-image){grid-template-columns:1fr}
|
|
723
|
+
.mdx-hero-copy{min-width:0}
|
|
724
|
+
.mdx-hero-eyebrow{margin:0 0 .75rem;color:var(--hono-decks-accent-color);text-transform:uppercase;font-size:.85rem;letter-spacing:0}
|
|
725
|
+
.mdx-hero h1{margin:0;font-size:3rem;line-height:1.02}
|
|
726
|
+
.mdx-hero-subtitle{margin:1rem 0 0;font-size:1.125rem;line-height:1.45;color:var(--hono-decks-muted-color)}
|
|
727
|
+
.mdx-hero-image{width:100%;height:auto;max-height:756px;object-fit:contain;border-radius:8px}
|
|
728
|
+
[data-hono-decks-fire]{--fire-duration:.18s;--fire-easing:ease;--fire-opacity:0;--fire-transform:translateY(.35rem);--fire-filter:none;visibility:visible;opacity:1;transform:none;filter:none;transition:visibility 0s linear 0s,opacity var(--fire-duration) var(--fire-easing),transform var(--fire-duration) var(--fire-easing),filter var(--fire-duration) var(--fire-easing)}
|
|
729
|
+
[data-hono-decks-fire][data-fire-hidden]{visibility:hidden;opacity:var(--fire-opacity);transform:var(--fire-transform);filter:var(--fire-filter);transition-delay:var(--fire-duration),0s,0s,0s}
|
|
730
|
+
[data-fire-effect=none]{--fire-duration:0s;--fire-transform:none}
|
|
731
|
+
[data-fire-effect=fade]{--fire-transform:none}
|
|
732
|
+
[data-fire-effect=fade-up]{--fire-transform:translateY(.85rem)}
|
|
733
|
+
[data-fire-effect=scale]{--fire-transform:scale(.96)}
|
|
734
|
+
body:not([data-overview-mode]) .hono-decks-deck{position:relative}
|
|
735
|
+
body:not([data-overview-mode]) .slide{position:absolute;inset:0;width:100%;height:100%}
|
|
736
|
+
.slide[data-active-transition]{transition:opacity var(--hono-decks-active-transition-duration,var(--hono-decks-slide-transition-duration,var(--hono-decks-transition-duration))) var(--hono-decks-active-transition-easing,var(--hono-decks-slide-transition-easing,var(--hono-decks-transition-easing))),transform var(--hono-decks-active-transition-duration,var(--hono-decks-slide-transition-duration,var(--hono-decks-transition-duration))) var(--hono-decks-active-transition-easing,var(--hono-decks-slide-transition-easing,var(--hono-decks-transition-easing)));will-change:opacity,transform}
|
|
737
|
+
.slide[data-slide-state="inactive"]{visibility:hidden;pointer-events:none}
|
|
738
|
+
.slide[data-slide-state="active"]{visibility:visible;opacity:1;transform:translate3d(0,0,0) scale(1)}
|
|
739
|
+
.slide[data-active-transition="fade"][data-slide-state="entering"],.slide[data-active-transition="fade"][data-slide-state="leaving"],.slide[data-active-transition="view-transition"][data-slide-state="entering"],.slide[data-active-transition="view-transition"][data-slide-state="leaving"]{opacity:0}
|
|
740
|
+
.slide[data-active-transition="fade-out"][data-slide-state="entering"]{opacity:1}
|
|
741
|
+
.slide[data-active-transition="fade-out"][data-slide-state="leaving"]{opacity:0}
|
|
742
|
+
.slide[data-active-transition="slide-left"][data-slide-direction="forward"][data-slide-state="entering"],.slide[data-active-transition="slide-right"][data-slide-direction="backward"][data-slide-state="leaving"]{transform:translate3d(100%,0,0)}
|
|
743
|
+
.slide[data-active-transition="slide-left"][data-slide-direction="forward"][data-slide-state="leaving"],.slide[data-active-transition="slide-right"][data-slide-direction="backward"][data-slide-state="entering"]{transform:translate3d(-100%,0,0)}
|
|
744
|
+
.slide[data-active-transition="slide-left"][data-slide-direction="backward"][data-slide-state="entering"],.slide[data-active-transition="slide-right"][data-slide-direction="forward"][data-slide-state="leaving"]{transform:translate3d(-100%,0,0)}
|
|
745
|
+
.slide[data-active-transition="slide-left"][data-slide-direction="backward"][data-slide-state="leaving"],.slide[data-active-transition="slide-right"][data-slide-direction="forward"][data-slide-state="entering"]{transform:translate3d(100%,0,0)}
|
|
746
|
+
.slide[data-active-transition="slide-up"][data-slide-direction="forward"][data-slide-state="entering"],.slide[data-active-transition="slide-down"][data-slide-direction="backward"][data-slide-state="leaving"]{transform:translate3d(0,100%,0)}
|
|
747
|
+
.slide[data-active-transition="slide-up"][data-slide-direction="forward"][data-slide-state="leaving"],.slide[data-active-transition="slide-down"][data-slide-direction="backward"][data-slide-state="entering"]{transform:translate3d(0,-100%,0)}
|
|
748
|
+
.slide[data-active-transition="slide-up"][data-slide-direction="backward"][data-slide-state="entering"],.slide[data-active-transition="slide-down"][data-slide-direction="forward"][data-slide-state="leaving"]{transform:translate3d(0,-100%,0)}
|
|
749
|
+
.slide[data-active-transition="slide-up"][data-slide-direction="backward"][data-slide-state="leaving"],.slide[data-active-transition="slide-down"][data-slide-direction="forward"][data-slide-state="entering"]{transform:translate3d(0,100%,0)}
|
|
750
|
+
body:not([data-overview-mode]) .slide[hidden]{display:none}
|
|
751
|
+
body[data-overview-mode] .hono-decks-deck{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
|
|
752
|
+
body[data-overview-mode] .slide{cursor:pointer}
|
|
753
|
+
body[data-presenter-mode] .speaker-notes{display:block;margin-top:1rem;padding:.75rem;border-radius:8px;background:var(--hono-decks-card-image-background)}
|
|
754
|
+
.hono-decks-warnings{margin:1rem;padding:.75rem;border-radius:14px;background:var(--hono-decks-warning-background);color:var(--hono-decks-warning-color)}
|
|
755
|
+
@media screen{html[data-hono-decks-print-preview]{width:auto;height:auto;min-height:100%;overflow:visible}
|
|
756
|
+
body[data-hono-decks-print-preview]{min-height:100vh;overflow:auto;color-scheme:light;color:#000;--hono-decks-print-gap:6mm;--hono-decks-print-slot-height:80mm;--hono-decks-print-scale:.28}
|
|
757
|
+
body[data-hono-decks-print-preview] .hono-decks-stage{display:block;width:auto;height:auto;min-height:100vh;overflow:visible;padding:12mm 0;box-sizing:border-box}
|
|
758
|
+
body[data-hono-decks-print-preview] .hono-decks-deck{display:grid;grid-template-columns:1fr;grid-auto-rows:var(--hono-decks-print-slot-height);gap:var(--hono-decks-print-gap);width:calc(var(--hono-decks-print-slot-height) * 16 / 9);max-width:calc(100vw - 24px);height:auto;margin:0 auto;transform:none!important}
|
|
759
|
+
body[data-hono-decks-print-preview] .slide{position:static;width:100%;max-width:100%;height:var(--hono-decks-print-slot-height);aspect-ratio:16/9;justify-self:center;align-self:center;padding:0;box-shadow:0 2px 10px rgba(15,23,42,.16);transition:none!important;transform:none!important}
|
|
760
|
+
body[data-hono-decks-print-preview] .slide.layout-cover,body[data-hono-decks-print-preview] .slide.layout-statement{display:block}
|
|
761
|
+
body[data-hono-decks-print-preview] .hono-decks-slide-content{width:var(--hono-decks-width);height:var(--hono-decks-height);box-sizing:border-box;padding:1.8rem;transform:scale(var(--hono-decks-print-scale));transform-origin:left top;overflow:hidden}
|
|
762
|
+
body[data-hono-decks-print-preview]:not([data-overview-mode]) .slide[hidden]{display:block!important}
|
|
763
|
+
body[data-hono-decks-print-preview] .slide[data-slide-state]{visibility:visible!important;opacity:1!important;transform:none!important}
|
|
764
|
+
body[data-hono-decks-print-preview] [data-hono-decks-fire]{visibility:visible!important;opacity:1!important;transform:none!important;filter:none!important}}
|
|
765
|
+
@page{size:A4 portrait;margin:12mm}
|
|
766
|
+
@media print{:root{color-scheme:light;color:#000;--hono-decks-print-gap:6mm;--hono-decks-print-slot-height:80mm;--hono-decks-print-scale:.28}html,body{width:auto;height:auto;overflow:visible}.hono-decks-stage{display:block;width:auto;height:auto;overflow:visible}.hono-decks-deck{display:grid;grid-template-columns:1fr;grid-auto-rows:var(--hono-decks-print-slot-height);gap:var(--hono-decks-print-gap);width:calc(var(--hono-decks-print-slot-height) * 16 / 9);height:auto;margin:0 auto;transform:none!important}body:not([data-overview-mode]) .slide{position:relative}.slide{position:relative;width:100%;max-width:100%;height:var(--hono-decks-print-slot-height);aspect-ratio:16/9;justify-self:center;align-self:center;padding:0;page-break-after:auto;break-after:auto;break-inside:avoid;box-shadow:none;transition:none!important;transform:none!important}.slide.layout-cover,.slide.layout-statement{display:block}.hono-decks-slide-content{position:absolute;inset:0 auto auto 0;width:var(--hono-decks-width);height:var(--hono-decks-height);box-sizing:border-box;padding:1.8rem;zoom:var(--hono-decks-print-scale);overflow:hidden}.slide:nth-of-type(3n):not(:last-child){page-break-after:always;break-after:page}body:not([data-overview-mode]) .slide[hidden]{display:block!important}.slide[data-slide-state]{visibility:visible!important;opacity:1!important;transform:none!important}[data-hono-decks-fire]{visibility:visible!important;opacity:1!important;transform:none!important;filter:none!important}}
|
|
767
|
+
@media print{.hono-decks-embed-viewport iframe,.hono-decks-tweet-embed iframe,.hono-decks-tweet-embed .twitter-tweet{display:none!important}.hono-decks-embed-print-fallback{display:grid;width:100%;height:100%;place-items:center;overflow:hidden;background:var(--hono-decks-card-background);color:var(--hono-decks-accent-color);text-decoration:none}.hono-decks-embed-print-fallback:has(.hono-decks-embed-print-poster){display:block}.hono-decks-embed-print-poster+span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.hono-decks-tweet-print-fallback{display:flex;min-height:12rem;align-items:center;justify-content:center;border:1px solid var(--hono-decks-border-color);border-radius:8px;background:var(--hono-decks-card-background);color:var(--hono-decks-accent-color);text-decoration:none}}
|
|
768
|
+
@media (prefers-reduced-motion: reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}.slide[data-active-transition]{transform:none!important}}`;
|
|
769
|
+
}
|
|
770
|
+
//#endregion
|
|
657
771
|
//#region src/server/document.ts
|
|
658
772
|
async function resolveDeckDocument(input, options, overrides) {
|
|
659
773
|
const page = {
|
|
@@ -705,8 +819,8 @@ function renderPresentationScript(nonce) {
|
|
|
705
819
|
const slides = Array.from(document.querySelectorAll(".slide"));
|
|
706
820
|
const stage = document.querySelector("[data-hono-decks-stage]");
|
|
707
821
|
const deck = document.querySelector("[data-hono-decks-deck]");
|
|
708
|
-
const DESIGN_WIDTH =
|
|
709
|
-
const DESIGN_HEIGHT =
|
|
822
|
+
const DESIGN_WIDTH = ${PRESENTATION_DESIGN_WIDTH};
|
|
823
|
+
const DESIGN_HEIGHT = ${PRESENTATION_DESIGN_HEIGHT};
|
|
710
824
|
let index = 0;
|
|
711
825
|
let previousIndex = 0;
|
|
712
826
|
let stepIndex = 0;
|
|
@@ -1091,6 +1205,10 @@ function renderPresentationScript(nonce) {
|
|
|
1091
1205
|
});
|
|
1092
1206
|
|
|
1093
1207
|
document.addEventListener("keydown", (event) => {
|
|
1208
|
+
if (event.defaultPrevented || event.metaKey || event.ctrlKey || event.altKey) return;
|
|
1209
|
+
const target = event.target;
|
|
1210
|
+
if (target instanceof HTMLElement && (target.isContentEditable || target.closest("input,textarea,select,button,a[href],[role=textbox],[role=button],[role=slider]"))) return;
|
|
1211
|
+
if (["ArrowRight", "ArrowLeft", " "].includes(event.key)) event.preventDefault();
|
|
1094
1212
|
if (event.key === "ArrowRight" || event.key === " ") handleCommand("next");
|
|
1095
1213
|
if (event.key === "ArrowLeft") handleCommand("previous");
|
|
1096
1214
|
if (event.key === "f") handleCommand("fullscreen");
|
|
@@ -1110,6 +1228,9 @@ function renderPresentationScript(nonce) {
|
|
|
1110
1228
|
window.__honoDecksPresentationRuntime = { command: handleCommand };
|
|
1111
1229
|
|
|
1112
1230
|
window.addEventListener("resize", fitDeck);
|
|
1231
|
+
if (typeof ResizeObserver !== "undefined" && stage instanceof HTMLElement) {
|
|
1232
|
+
new ResizeObserver(fitDeck).observe(stage);
|
|
1233
|
+
}
|
|
1113
1234
|
fitDeck();
|
|
1114
1235
|
const initialState = readInitialState();
|
|
1115
1236
|
show(initialState.index, initialState.stepIndex);
|
|
@@ -1120,109 +1241,6 @@ function escapeHtml$6(value) {
|
|
|
1120
1241
|
return value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\"", """).replaceAll("'", "'");
|
|
1121
1242
|
}
|
|
1122
1243
|
//#endregion
|
|
1123
|
-
//#region src/renderer/presentation-style.ts
|
|
1124
|
-
const PRESENTATION_DESIGN_WIDTH = 1920;
|
|
1125
|
-
const PRESENTATION_DESIGN_HEIGHT = 1080;
|
|
1126
|
-
function presentationDesignCssVariables() {
|
|
1127
|
-
return `--hono-decks-width:${PRESENTATION_DESIGN_WIDTH}px;--hono-decks-height:${PRESENTATION_DESIGN_HEIGHT}px`;
|
|
1128
|
-
}
|
|
1129
|
-
function basePresentationStyle() {
|
|
1130
|
-
return `
|
|
1131
|
-
:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:32px;${presentationDesignCssVariables()};--hono-decks-transition-duration:.24s;--hono-decks-transition-easing:ease;--hono-decks-color:#eef2ff;--hono-decks-muted-color:#cbd5e1;--hono-decks-accent-color:#8bd3ff;--hono-decks-border-color:rgba(148,163,184,.24);--hono-decks-inline-code-background:rgba(15,23,42,.72);--hono-decks-code-background:rgba(15,23,42,.78);--hono-decks-card-background:rgba(15,23,42,.78);--hono-decks-card-image-background:rgba(255,255,255,.08);--hono-decks-warning-background:rgba(255,193,7,.12);--hono-decks-warning-color:#ffe59b;color:var(--hono-decks-color)}
|
|
1132
|
-
html,body{margin:0;width:100%;height:100%;overflow:hidden}
|
|
1133
|
-
.hono-decks-stage{width:100vw;height:100vh;overflow:hidden;position:relative;display:grid;place-items:center}
|
|
1134
|
-
.hono-decks-deck{display:grid;gap:1rem;width:var(--hono-decks-width);height:var(--hono-decks-height);box-sizing:border-box;transform-origin:left top}
|
|
1135
|
-
.slide{box-sizing:border-box;aspect-ratio:16/9;padding:clamp(1.2rem,3vw,3rem);overflow:hidden}
|
|
1136
|
-
.hono-decks-slide-content{width:100%;height:100%}
|
|
1137
|
-
.slide.layout-cover,.slide.layout-statement{display:flex;flex-direction:column;justify-content:center}
|
|
1138
|
-
.slide.layout-cover>.hono-decks-slide-content,.slide.layout-statement>.hono-decks-slide-content{display:flex;flex-direction:column;justify-content:center}
|
|
1139
|
-
.slide code{font-family:"SFMono-Regular","Cascadia Code","Liberation Mono",Menlo,Consolas,monospace;font-size:.9em;line-height:1.45}
|
|
1140
|
-
.slide :not(pre)>code{border-radius:6px;background:var(--hono-decks-inline-code-background);padding:.12em .34em}
|
|
1141
|
-
.slide pre{max-width:100%;overflow:auto;box-sizing:border-box;border:1px solid var(--hono-decks-border-color);border-radius:8px;background:var(--hono-decks-code-background);padding:1rem;tab-size:2;white-space:pre}
|
|
1142
|
-
.slide pre code{display:block;min-width:max-content;background:transparent;padding:0}
|
|
1143
|
-
.slide table{width:100%;margin:1rem 0;border-collapse:collapse}
|
|
1144
|
-
.slide th,.slide td{border:1px solid var(--hono-decks-border-color);padding:.4em .75em;text-align:left}
|
|
1145
|
-
.slide th{background:var(--hono-decks-card-background);font-weight:700}
|
|
1146
|
-
.slide del{color:var(--hono-decks-muted-color)}
|
|
1147
|
-
.slide li.task-list-item{list-style:none;margin-left:-1.4em}
|
|
1148
|
-
.slide li.task-list-item input[type=checkbox]{margin-right:.5em;vertical-align:middle}
|
|
1149
|
-
.hono-decks-code-block{margin:1rem 0;max-width:100%}
|
|
1150
|
-
.hono-decks-code-caption{display:inline-flex;margin:0 0 .4rem;border:1px solid var(--hono-decks-border-color);border-radius:6px;padding:.2rem .5rem;background:var(--hono-decks-inline-code-background);color:var(--hono-decks-muted-color);font-size:.82rem}
|
|
1151
|
-
.hono-decks-embed-frame{margin:1rem 0;max-width:100%}
|
|
1152
|
-
.hono-decks-embed-viewport{width:min(100%,72rem);overflow:hidden}
|
|
1153
|
-
.hono-decks-embed-viewport iframe{display:block;width:100%;height:100%;border:0}
|
|
1154
|
-
.hono-decks-embed-print-fallback{display:none}
|
|
1155
|
-
.hono-decks-embed-print-poster{display:block;width:100%;height:100%;object-fit:cover}
|
|
1156
|
-
.hono-decks-embed-fallback{margin:.45rem 0 0;color:var(--hono-decks-muted-color);font-size:.84rem}
|
|
1157
|
-
.hono-decks-embed-fallback a{color:inherit}
|
|
1158
|
-
.hono-decks-social-embed{margin:1rem 0;max-width:min(100%,42rem)}
|
|
1159
|
-
.hono-decks-social-card{margin:0;border:1px solid var(--hono-decks-border-color);border-radius:8px;background:var(--hono-decks-card-background);padding:1rem}
|
|
1160
|
-
.hono-decks-social-card p{margin:0 0 .75rem;line-height:1.55}
|
|
1161
|
-
.hono-decks-social-card footer{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;color:var(--hono-decks-muted-color);font-size:.9rem}
|
|
1162
|
-
.hono-decks-social-card a{color:inherit}
|
|
1163
|
-
.hono-decks-tweet-embed{margin:1rem 0;max-width:min(100%,42rem)}
|
|
1164
|
-
.hono-decks-tweet-embed .twitter-tweet{margin:0;border:1px solid var(--hono-decks-border-color);border-radius:8px;background:var(--hono-decks-card-background);padding:1rem}
|
|
1165
|
-
.hono-decks-tweet-embed .twitter-tweet a{color:inherit}
|
|
1166
|
-
.hono-decks-tweet-print-fallback{display:none}
|
|
1167
|
-
.hono-decks-link-card{margin:1rem 0;max-width:min(100%,42rem)}
|
|
1168
|
-
.hono-decks-link-card-anchor{display:grid;grid-template-columns:minmax(9rem,32%) minmax(0,1fr);gap:.75rem;align-items:stretch;border:1px solid var(--hono-decks-border-color);border-radius:8px;background:var(--hono-decks-card-background);padding:1rem;color:inherit;text-decoration:none}
|
|
1169
|
-
.hono-decks-link-card-body{display:grid;gap:.35rem;min-width:0}
|
|
1170
|
-
.hono-decks-link-card-image{width:100%;height:100%;max-height:10rem;aspect-ratio:16/9;object-fit:cover;border-radius:6px;background:var(--hono-decks-card-image-background)}
|
|
1171
|
-
.hono-decks-link-card-site{color:var(--hono-decks-accent-color);font-size:.8rem;text-transform:uppercase}
|
|
1172
|
-
.hono-decks-link-card-title{font-weight:700}
|
|
1173
|
-
.hono-decks-link-card-description{color:var(--hono-decks-muted-color);line-height:1.45}
|
|
1174
|
-
.hono-decks-link-card-label{color:var(--hono-decks-accent-color);font-size:.88rem}
|
|
1175
|
-
@media (max-width: 640px){.hono-decks-link-card-anchor{grid-template-columns:1fr}.hono-decks-link-card-image{height:auto;max-height:12rem}}
|
|
1176
|
-
.mdx-hero{height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,42%);gap:clamp(1rem,3vw,3rem);align-items:center}
|
|
1177
|
-
.mdx-hero:not(.has-image){grid-template-columns:1fr}
|
|
1178
|
-
.mdx-hero-copy{min-width:0}
|
|
1179
|
-
.mdx-hero-eyebrow{margin:0 0 .75rem;color:var(--hono-decks-accent-color);text-transform:uppercase;font-size:.85rem;letter-spacing:0}
|
|
1180
|
-
.mdx-hero h1{margin:0;font-size:clamp(2.2rem,5vw,5rem);line-height:1.02}
|
|
1181
|
-
.mdx-hero-subtitle{margin:1rem 0 0;font-size:clamp(1rem,1.8vw,1.5rem);line-height:1.45;color:var(--hono-decks-muted-color)}
|
|
1182
|
-
.mdx-hero-image{width:100%;height:auto;max-height:70vh;object-fit:contain;border-radius:8px}
|
|
1183
|
-
[data-hono-decks-fire]{--fire-duration:.18s;--fire-easing:ease;--fire-opacity:0;--fire-transform:translateY(.35rem);--fire-filter:none;visibility:visible;opacity:1;transform:none;filter:none;transition:visibility 0s linear 0s,opacity var(--fire-duration) var(--fire-easing),transform var(--fire-duration) var(--fire-easing),filter var(--fire-duration) var(--fire-easing)}
|
|
1184
|
-
[data-hono-decks-fire][data-fire-hidden]{visibility:hidden;opacity:var(--fire-opacity);transform:var(--fire-transform);filter:var(--fire-filter);transition-delay:var(--fire-duration),0s,0s,0s}
|
|
1185
|
-
[data-fire-effect=none]{--fire-duration:0s;--fire-transform:none}
|
|
1186
|
-
[data-fire-effect=fade]{--fire-transform:none}
|
|
1187
|
-
[data-fire-effect=fade-up]{--fire-transform:translateY(.85rem)}
|
|
1188
|
-
[data-fire-effect=scale]{--fire-transform:scale(.96)}
|
|
1189
|
-
body:not([data-overview-mode]) .hono-decks-deck{position:relative}
|
|
1190
|
-
body:not([data-overview-mode]) .slide{position:absolute;inset:0;width:100%;height:100%}
|
|
1191
|
-
.slide[data-active-transition]{transition:opacity var(--hono-decks-active-transition-duration,var(--hono-decks-slide-transition-duration,var(--hono-decks-transition-duration))) var(--hono-decks-active-transition-easing,var(--hono-decks-slide-transition-easing,var(--hono-decks-transition-easing))),transform var(--hono-decks-active-transition-duration,var(--hono-decks-slide-transition-duration,var(--hono-decks-transition-duration))) var(--hono-decks-active-transition-easing,var(--hono-decks-slide-transition-easing,var(--hono-decks-transition-easing)));will-change:opacity,transform}
|
|
1192
|
-
.slide[data-slide-state="inactive"]{visibility:hidden;pointer-events:none}
|
|
1193
|
-
.slide[data-slide-state="active"]{visibility:visible;opacity:1;transform:translate3d(0,0,0) scale(1)}
|
|
1194
|
-
.slide[data-active-transition="fade"][data-slide-state="entering"],.slide[data-active-transition="fade"][data-slide-state="leaving"],.slide[data-active-transition="view-transition"][data-slide-state="entering"],.slide[data-active-transition="view-transition"][data-slide-state="leaving"]{opacity:0}
|
|
1195
|
-
.slide[data-active-transition="fade-out"][data-slide-state="entering"]{opacity:1}
|
|
1196
|
-
.slide[data-active-transition="fade-out"][data-slide-state="leaving"]{opacity:0}
|
|
1197
|
-
.slide[data-active-transition="slide-left"][data-slide-direction="forward"][data-slide-state="entering"],.slide[data-active-transition="slide-right"][data-slide-direction="backward"][data-slide-state="leaving"]{transform:translate3d(100%,0,0)}
|
|
1198
|
-
.slide[data-active-transition="slide-left"][data-slide-direction="forward"][data-slide-state="leaving"],.slide[data-active-transition="slide-right"][data-slide-direction="backward"][data-slide-state="entering"]{transform:translate3d(-100%,0,0)}
|
|
1199
|
-
.slide[data-active-transition="slide-left"][data-slide-direction="backward"][data-slide-state="entering"],.slide[data-active-transition="slide-right"][data-slide-direction="forward"][data-slide-state="leaving"]{transform:translate3d(-100%,0,0)}
|
|
1200
|
-
.slide[data-active-transition="slide-left"][data-slide-direction="backward"][data-slide-state="leaving"],.slide[data-active-transition="slide-right"][data-slide-direction="forward"][data-slide-state="entering"]{transform:translate3d(100%,0,0)}
|
|
1201
|
-
.slide[data-active-transition="slide-up"][data-slide-direction="forward"][data-slide-state="entering"],.slide[data-active-transition="slide-down"][data-slide-direction="backward"][data-slide-state="leaving"]{transform:translate3d(0,100%,0)}
|
|
1202
|
-
.slide[data-active-transition="slide-up"][data-slide-direction="forward"][data-slide-state="leaving"],.slide[data-active-transition="slide-down"][data-slide-direction="backward"][data-slide-state="entering"]{transform:translate3d(0,-100%,0)}
|
|
1203
|
-
.slide[data-active-transition="slide-up"][data-slide-direction="backward"][data-slide-state="entering"],.slide[data-active-transition="slide-down"][data-slide-direction="forward"][data-slide-state="leaving"]{transform:translate3d(0,-100%,0)}
|
|
1204
|
-
.slide[data-active-transition="slide-up"][data-slide-direction="backward"][data-slide-state="leaving"],.slide[data-active-transition="slide-down"][data-slide-direction="forward"][data-slide-state="entering"]{transform:translate3d(0,100%,0)}
|
|
1205
|
-
body:not([data-overview-mode]) .slide[hidden]{display:none}
|
|
1206
|
-
body[data-overview-mode] .hono-decks-deck{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
|
|
1207
|
-
body[data-overview-mode] .slide{cursor:pointer}
|
|
1208
|
-
body[data-presenter-mode] .speaker-notes{display:block;margin-top:1rem;padding:.75rem;border-radius:8px;background:var(--hono-decks-card-image-background)}
|
|
1209
|
-
.hono-decks-warnings{margin:1rem;padding:.75rem;border-radius:14px;background:var(--hono-decks-warning-background);color:var(--hono-decks-warning-color)}
|
|
1210
|
-
@media screen{html[data-hono-decks-print-preview]{width:auto;height:auto;min-height:100%;overflow:visible}
|
|
1211
|
-
body[data-hono-decks-print-preview]{min-height:100vh;overflow:auto;color-scheme:light;color:#000;--hono-decks-print-gap:6mm;--hono-decks-print-slot-height:80mm;--hono-decks-print-scale:.28}
|
|
1212
|
-
body[data-hono-decks-print-preview] .hono-decks-stage{display:block;width:auto;height:auto;min-height:100vh;overflow:visible;padding:12mm 0;box-sizing:border-box}
|
|
1213
|
-
body[data-hono-decks-print-preview] .hono-decks-deck{display:grid;grid-template-columns:1fr;grid-auto-rows:var(--hono-decks-print-slot-height);gap:var(--hono-decks-print-gap);width:calc(var(--hono-decks-print-slot-height) * 16 / 9);max-width:calc(100vw - 24px);height:auto;margin:0 auto;transform:none!important}
|
|
1214
|
-
body[data-hono-decks-print-preview] .slide{position:static;width:100%;max-width:100%;height:var(--hono-decks-print-slot-height);aspect-ratio:16/9;justify-self:center;align-self:center;padding:0;box-shadow:0 2px 10px rgba(15,23,42,.16);transition:none!important;transform:none!important}
|
|
1215
|
-
body[data-hono-decks-print-preview] .slide.layout-cover,body[data-hono-decks-print-preview] .slide.layout-statement{display:block}
|
|
1216
|
-
body[data-hono-decks-print-preview] .hono-decks-slide-content{width:var(--hono-decks-width);height:var(--hono-decks-height);box-sizing:border-box;padding:clamp(1.2rem,3vw,3rem);transform:scale(var(--hono-decks-print-scale));transform-origin:left top;overflow:hidden}
|
|
1217
|
-
body[data-hono-decks-print-preview]:not([data-overview-mode]) .slide[hidden]{display:block!important}
|
|
1218
|
-
body[data-hono-decks-print-preview] .slide[data-slide-state]{visibility:visible!important;opacity:1!important;transform:none!important}
|
|
1219
|
-
body[data-hono-decks-print-preview] [data-hono-decks-fire]{visibility:visible!important;opacity:1!important;transform:none!important;filter:none!important}}
|
|
1220
|
-
@page{size:A4 portrait;margin:12mm}
|
|
1221
|
-
@media print{:root{color-scheme:light;color:#000;--hono-decks-print-gap:6mm;--hono-decks-print-slot-height:80mm;--hono-decks-print-scale:.28}html,body{width:auto;height:auto;overflow:visible}.hono-decks-stage{display:block;width:auto;height:auto;overflow:visible}.hono-decks-deck{display:grid;grid-template-columns:1fr;grid-auto-rows:var(--hono-decks-print-slot-height);gap:var(--hono-decks-print-gap);width:calc(var(--hono-decks-print-slot-height) * 16 / 9);height:auto;margin:0 auto;transform:none!important}body:not([data-overview-mode]) .slide{position:relative}.slide{position:relative;width:100%;max-width:100%;height:var(--hono-decks-print-slot-height);aspect-ratio:16/9;justify-self:center;align-self:center;padding:0;page-break-after:auto;break-after:auto;break-inside:avoid;box-shadow:none;transition:none!important;transform:none!important}.slide.layout-cover,.slide.layout-statement{display:block}.hono-decks-slide-content{position:absolute;inset:0 auto auto 0;width:var(--hono-decks-width);height:var(--hono-decks-height);box-sizing:border-box;padding:clamp(1.2rem,3vw,3rem);zoom:var(--hono-decks-print-scale);overflow:hidden}.slide:nth-of-type(3n):not(:last-child){page-break-after:always;break-after:page}body:not([data-overview-mode]) .slide[hidden]{display:block!important}.slide[data-slide-state]{visibility:visible!important;opacity:1!important;transform:none!important}[data-hono-decks-fire]{visibility:visible!important;opacity:1!important;transform:none!important;filter:none!important}}
|
|
1222
|
-
@media print{.hono-decks-embed-viewport iframe,.hono-decks-tweet-embed iframe,.hono-decks-tweet-embed .twitter-tweet{display:none!important}.hono-decks-embed-print-fallback{display:grid;width:100%;height:100%;place-items:center;overflow:hidden;background:var(--hono-decks-card-background);color:var(--hono-decks-accent-color);text-decoration:none}.hono-decks-embed-print-fallback:has(.hono-decks-embed-print-poster){display:block}.hono-decks-embed-print-poster+span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.hono-decks-tweet-print-fallback{display:flex;min-height:12rem;align-items:center;justify-content:center;border:1px solid var(--hono-decks-border-color);border-radius:8px;background:var(--hono-decks-card-background);color:var(--hono-decks-accent-color);text-decoration:none}}
|
|
1223
|
-
@media (prefers-reduced-motion: reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}.slide[data-active-transition]{transform:none!important}}`;
|
|
1224
|
-
}
|
|
1225
|
-
//#endregion
|
|
1226
1244
|
//#region src/renderer/presentation-page.ts
|
|
1227
1245
|
function presentationPageTitle(deck) {
|
|
1228
1246
|
return deck.meta.title ?? deck.slug;
|
|
@@ -1540,10 +1558,10 @@ function renderCompiledSlide(slide, assets = [], input = {}) {
|
|
|
1540
1558
|
].filter(Boolean).join(" ");
|
|
1541
1559
|
const notes = slide.notes ?? slide.meta.notes;
|
|
1542
1560
|
const notesHtml = input.speakerNotes === false || !notes ? "" : `<aside class="speaker-notes" hidden>${escapeHtml$4(notes)}</aside>`;
|
|
1543
|
-
const html =
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
})
|
|
1561
|
+
const html = renderSlideBodySync(slide, assets, {
|
|
1562
|
+
...input,
|
|
1563
|
+
components
|
|
1564
|
+
});
|
|
1547
1565
|
const style = slideStyleAttribute(slide, assets);
|
|
1548
1566
|
const transition = slide.meta.transition ? ` data-transition="${escapeHtml$4(safeClass(slide.meta.transition))}"` : "";
|
|
1549
1567
|
return `<section class="${classes}" data-slide-index="${slide.index}" data-slide-state="${slideState}"${slide.meta.title ? ` aria-label="${escapeHtml$4(slide.meta.title)}"` : ""}${transition}${style}><div class="hono-decks-slide-content">${html}</div>${notesHtml}</section>`;
|
|
@@ -1573,12 +1591,36 @@ function slideStyleAttribute(slide, assets) {
|
|
|
1573
1591
|
if (slide.meta.transitionEasing) declarations.push(`--hono-decks-slide-transition-easing:${slide.meta.transitionEasing}`);
|
|
1574
1592
|
return declarations.length ? ` style="${escapeHtml$4(declarations.join(";"))}"` : "";
|
|
1575
1593
|
}
|
|
1594
|
+
function renderSlideBodySync(slide, assets, input) {
|
|
1595
|
+
try {
|
|
1596
|
+
if (slide.render) {
|
|
1597
|
+
const value = slide.render({ components: createMdxComponents(input.components ?? builtInSlideComponents, { assets }) });
|
|
1598
|
+
if (value && typeof value === "object" && "then" in value && typeof value.then === "function") {
|
|
1599
|
+
Promise.resolve(value).catch(() => void 0);
|
|
1600
|
+
throw new RenderError("Async slide rendering requires renderCompiledSlideAsync() or renderCompiledDeckAsync().", "async-slide-render");
|
|
1601
|
+
}
|
|
1602
|
+
return renderJsxValueSync(value);
|
|
1603
|
+
}
|
|
1604
|
+
if (slide.nodes?.length) return renderSlideNodes(slide.nodes, {
|
|
1605
|
+
components: input.components,
|
|
1606
|
+
assets
|
|
1607
|
+
});
|
|
1608
|
+
return rewriteLocalAssetUrls(requireSlideHtml(slide), assets);
|
|
1609
|
+
} catch (error) {
|
|
1610
|
+
if (error instanceof RenderError) throw error;
|
|
1611
|
+
throw new RenderError(`Render failed in ${input.deck?.sourcePath ?? "unknown deck"} slide ${slide.index + 1}: ${formatErrorMessage$1(error)}. Use the async rendering API for async JSX.`, "slide-render-error", error);
|
|
1612
|
+
}
|
|
1613
|
+
}
|
|
1614
|
+
function requireSlideHtml(slide) {
|
|
1615
|
+
if (typeof slide.html !== "string") throw new RenderError("Slide has no renderable body. Import createDecks() from the generated module; compileDecks() returns build information only.", "slide-body-missing");
|
|
1616
|
+
return slide.html;
|
|
1617
|
+
}
|
|
1576
1618
|
async function renderSlideBodyAsync(slide, assets, input) {
|
|
1577
1619
|
try {
|
|
1578
1620
|
return slide.render ? await renderJsxValue(slide.render({ components: createMdxComponents(input.components ?? builtInSlideComponents, { assets }) })) : slide.nodes?.length ? await renderSlideNodesAsync(slide.nodes, {
|
|
1579
1621
|
components: input.components,
|
|
1580
1622
|
assets
|
|
1581
|
-
}) : rewriteLocalAssetUrls(slide
|
|
1623
|
+
}) : rewriteLocalAssetUrls(requireSlideHtml(slide), assets);
|
|
1582
1624
|
} catch (error) {
|
|
1583
1625
|
if (error instanceof RenderError) throw error;
|
|
1584
1626
|
throw new RenderError(`Render failed in ${input.deck?.sourcePath ?? "unknown deck"} slide ${slide.index + 1}: ${formatErrorMessage$1(error)}`, "slide-render-error", error);
|
|
@@ -1605,7 +1647,7 @@ function formatErrorMessage$1(error) {
|
|
|
1605
1647
|
function serveDecksClientEntry(clientEntry, options = {}) {
|
|
1606
1648
|
return (c) => {
|
|
1607
1649
|
const headers = { "content-type": options.contentType ?? "text/javascript; charset=utf-8" };
|
|
1608
|
-
const cacheControl = options.cacheControl ?? "
|
|
1650
|
+
const cacheControl = options.cacheControl ?? "no-cache";
|
|
1609
1651
|
if (cacheControl !== false) headers["cache-control"] = cacheControl;
|
|
1610
1652
|
return c.body(clientEntry, 200, headers);
|
|
1611
1653
|
};
|
|
@@ -1905,6 +1947,7 @@ function renderViewerScript(nonce) {
|
|
|
1905
1947
|
}
|
|
1906
1948
|
|
|
1907
1949
|
function handleKeydown(event) {
|
|
1950
|
+
if (event.defaultPrevented) return;
|
|
1908
1951
|
if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === "p" && printPath) {
|
|
1909
1952
|
event.preventDefault();
|
|
1910
1953
|
const printUrl = new URL(printPath, window.location.href);
|
|
@@ -1912,6 +1955,10 @@ function renderViewerScript(nonce) {
|
|
|
1912
1955
|
window.location.assign(printUrl);
|
|
1913
1956
|
return;
|
|
1914
1957
|
}
|
|
1958
|
+
if (event.metaKey || event.ctrlKey || event.altKey) return;
|
|
1959
|
+
const target = event.target;
|
|
1960
|
+
if (target instanceof HTMLElement && (target.isContentEditable || target.closest("input,textarea,select,button,a[href],[role=textbox],[role=button],[role=slider]"))) return;
|
|
1961
|
+
if (["ArrowRight", "ArrowLeft", " "].includes(event.key)) event.preventDefault();
|
|
1915
1962
|
if (event.key === "ArrowRight" || event.key === " ") sendCommand("next");
|
|
1916
1963
|
if (event.key === "ArrowLeft") sendCommand("previous");
|
|
1917
1964
|
if (event.key === "f") void toggleViewerFullscreen();
|
|
@@ -1975,7 +2022,7 @@ function baseViewerStyle() {
|
|
|
1975
2022
|
html,body{margin:0;width:100%;height:100%;min-height:100vh}
|
|
1976
2023
|
@supports (height:100dvh){html,body{height:100dvh;min-height:100dvh}}
|
|
1977
2024
|
body{overflow:hidden}
|
|
1978
|
-
*:focus-visible{outline:
|
|
2025
|
+
*:focus-visible{outline:2px solid currentColor;outline-offset:2px}
|
|
1979
2026
|
[data-hono-decks-viewer]{width:100%;height:100vh;min-height:0;display:grid;place-items:center;box-sizing:border-box;overflow:hidden}
|
|
1980
2027
|
@supports (height:100dvh){[data-hono-decks-viewer]{height:100dvh}}
|
|
1981
2028
|
.hono-decks-viewer-header{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
|
|
@@ -1993,7 +2040,7 @@ ${viewerViewportRule()}
|
|
|
1993
2040
|
.hono-decks-mobile-navigation:focus-visible{outline:2px solid currentColor;outline-offset:-4px}
|
|
1994
2041
|
.hono-decks-mobile-navigation:active{background:rgba(15,23,42,.28);color:#eef2ff;opacity:1}
|
|
1995
2042
|
.hono-decks-mobile-navigation .hono-decks-control-icon{width:22px;height:22px}
|
|
1996
|
-
.hono-decks-viewport>[data-hono-decks-position]{position:absolute;left:50%;bottom:max(8px,env(safe-area-inset-bottom,0));z-index:3;transform:translateX(-50%);border:0;background:
|
|
2043
|
+
.hono-decks-viewport>[data-hono-decks-position]{position:absolute;left:50%;bottom:max(8px,env(safe-area-inset-bottom,0));z-index:3;transform:translateX(-50%);border:0;border-radius:4px;background:rgba(15,23,42,.9);color:#eef2ff;padding:4px 6px;font:inherit;font-size:12px;line-height:1;opacity:1;pointer-events:none;white-space:nowrap}
|
|
1997
2044
|
.hono-decks-viewer-controls{position:absolute;left:50%;bottom:max(.25rem,env(safe-area-inset-bottom,0));display:flex;gap:8px;align-items:center;justify-content:center;max-width:calc(100% - 1rem);min-width:0;z-index:4;transform:translateX(-50%)}
|
|
1998
2045
|
.hono-decks-viewer-controls [data-hono-decks-navigation-control="previous"],.hono-decks-viewer-controls [data-hono-decks-navigation-control="next"],.hono-decks-viewer-controls [data-hono-decks-position]{position:absolute;visibility:hidden;pointer-events:none}
|
|
1999
2046
|
.hono-decks-viewer-controls button,.hono-decks-viewer-controls a,.hono-decks-viewer-controls span{border:1px solid rgba(148,163,184,.32);border-radius:8px;background:rgba(15,23,42,.78);color:inherit;padding:8px 10px;font:inherit;font-size:14px}
|
|
@@ -2010,7 +2057,7 @@ ${viewerViewportRule()}
|
|
|
2010
2057
|
function embeddedViewerStyle() {
|
|
2011
2058
|
const root = "[data-hono-decks-viewer][data-hono-decks-embed]";
|
|
2012
2059
|
return `${root}{color-scheme:dark;background:#050816;color:#eef2ff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;display:grid;gap:12px;width:100%;min-width:0;box-sizing:border-box}
|
|
2013
|
-
${root} *:focus-visible{outline:
|
|
2060
|
+
${root} *:focus-visible{outline:2px solid currentColor;outline-offset:2px}
|
|
2014
2061
|
${root} .hono-decks-viewer-shell{position:relative;display:grid;grid-template-rows:minmax(0,1fr);place-items:center;width:100%;min-width:0;min-height:0;box-sizing:border-box}
|
|
2015
2062
|
${root} .hono-decks-viewer-stage{display:grid;place-items:center;width:100%;min-width:0;min-height:0;container-type:inline-size}
|
|
2016
2063
|
${root} .hono-decks-viewport{width:100%;aspect-ratio:${VIEWER_ASPECT_RATIO};position:relative;overflow:hidden;touch-action:pan-y}
|
|
@@ -2023,7 +2070,7 @@ ${root} .hono-decks-mobile-navigation-next{right:.25rem}
|
|
|
2023
2070
|
${root} .hono-decks-mobile-navigation:focus-visible{outline:2px solid currentColor;outline-offset:-4px}
|
|
2024
2071
|
${root} .hono-decks-mobile-navigation:active{background:rgba(15,23,42,.28);color:#eef2ff;opacity:1}
|
|
2025
2072
|
${root} .hono-decks-mobile-navigation .hono-decks-control-icon{width:22px;height:22px}
|
|
2026
|
-
${root} .hono-decks-viewport>[data-hono-decks-position]{position:absolute;left:50%;bottom:8px;z-index:3;transform:translateX(-50%);border:0;background:
|
|
2073
|
+
${root} .hono-decks-viewport>[data-hono-decks-position]{position:absolute;left:50%;bottom:8px;z-index:3;transform:translateX(-50%);border:0;border-radius:4px;background:rgba(15,23,42,.9);color:#eef2ff;padding:4px 6px;font:inherit;font-size:12px;line-height:1;opacity:1;pointer-events:none;white-space:nowrap}
|
|
2027
2074
|
${root} .hono-decks-viewer-controls{position:absolute;left:50%;bottom:max(.25rem,env(safe-area-inset-bottom,0));display:flex;gap:8px;align-items:center;justify-content:center;max-width:calc(100% - 1rem);min-width:0;z-index:4;transform:translateX(-50%)}
|
|
2028
2075
|
${root} .hono-decks-viewer-controls [data-hono-decks-navigation-control="previous"],${root} .hono-decks-viewer-controls [data-hono-decks-navigation-control="next"],${root} .hono-decks-viewer-controls [data-hono-decks-position]{position:absolute;visibility:hidden;pointer-events:none}
|
|
2029
2076
|
${root} .hono-decks-viewer-controls button,${root} .hono-decks-viewer-controls a,${root} .hono-decks-viewer-controls span{border:1px solid rgba(148,163,184,.32);border-radius:8px;background:rgba(15,23,42,.78);color:inherit;padding:8px 10px;font:inherit;font-size:14px}
|
|
@@ -2664,7 +2711,7 @@ function decksRouter(options) {
|
|
|
2664
2711
|
slug,
|
|
2665
2712
|
surface: "render"
|
|
2666
2713
|
}, 404);
|
|
2667
|
-
const clientEntry = options.clientEntry ?? resolveGeneratedClientEntryUrl(options, mountPath);
|
|
2714
|
+
const clientEntry = options.clientEntry ?? (deck.clientEntryRequired === false ? void 0 : resolveGeneratedClientEntryUrl(options, mountPath));
|
|
2668
2715
|
try {
|
|
2669
2716
|
const document = await resolveRouterDocument(c, options, "render", mountPath, deck);
|
|
2670
2717
|
return c.html(await renderCompiledDeckPageAsync({
|
|
@@ -2769,7 +2816,7 @@ function decksRouter(options) {
|
|
|
2769
2816
|
slug,
|
|
2770
2817
|
surface: "presentation"
|
|
2771
2818
|
}, 404);
|
|
2772
|
-
const clientEntry = options.clientEntry ?? resolveGeneratedClientEntryUrl(options, mountPath);
|
|
2819
|
+
const clientEntry = options.clientEntry ?? (deck.clientEntryRequired === false ? void 0 : resolveGeneratedClientEntryUrl(options, mountPath));
|
|
2773
2820
|
try {
|
|
2774
2821
|
const document = await resolveRouterDocument(c, options, "presentation", mountPath, deck);
|
|
2775
2822
|
return c.html(await renderCompiledDeckPageAsync({
|