rikiki-deck 0.1.1 → 0.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/dist/click-stages.js +1 -0
- package/dist/deck-presenter.js +18 -13
- package/dist/deck-root.js +3 -3
- package/dist/index.js +8 -8
- package/dist/livereload.js +1 -1
- package/dist/plugins/click-stages.d.ts +2 -0
- package/dist/plugins/click-stages.d.ts.map +1 -0
- package/dist/runtime/deck-presenter.d.ts.map +1 -1
- package/dist/runtime/deck-root.d.ts.map +1 -1
- package/dist/standalone.js +58 -53
- package/package.json +5 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var l="data-click",i="data-click-hide";function m(t){let e=0,s=0;return t.querySelectorAll(`[${l}], [${i}]`).forEach(n=>{let r=n.getAttribute(l)??n.getAttribute(i)??"",o=parseInt(r,10);Number.isFinite(o)&&o>0?s=Math.max(s,o):e+=1}),Math.max(s,e)}function f(t){let e=0,s=[];return t.querySelectorAll(`[${l}], [${i}]`).forEach(a=>{let n=a.hasAttribute(i),r=a.getAttribute(n?i:l)??"",o=parseInt(r,10),c=Number.isFinite(o)&&o>0?o:++e;s.push({el:a,step:c,hide:n})}),s}var p=new WeakSet;function h(t,e){if(p.has(t))return;p.add(t);let s=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;t.style.transition=s?"opacity 0.01s linear":"opacity 0.32s ease, transform 0.32s cubic-bezier(0.22,1,0.36,1)",t.style.willChange="opacity, transform",d(t,e)}function k(t){switch(t.getAttribute("data-anim")){case"slide-up":return"translateY(16px)";case"slide-left":return"translateX(16px)";case"scale":return"scale(0.92)";default:return"none"}}function d(t,e){t.style.opacity=e?"1":"0",t.style.transform=e?"none":k(t),t.style.pointerEvents=e?"":"none"}function y(){let t=customElements.get("deck-root");if(!t){console.warn("[rikiki/click-stages] <deck-root> is not defined yet \xB7 import rikiki first");return}let e=t.prototype;if(e._clickStagesInstalled)return;e._clickStagesInstalled=!0;let s=e._maxSteps;e._maxSteps=function(){let n=s.call(this),r=this.slides?.[this.current],o=r?m(r):0;return Math.max(n,o)};let a=e._applyStep;e._applyStep=function(){a.call(this);let n=this.slides?.[this.current];n&&f(n).forEach(({el:r,step:o,hide:c})=>{h(r,c);let u=this.step>=o;d(r,c?!u:u)})},document.querySelectorAll("deck-root").forEach(n=>{n._applyStep?.()})}export{y as installClickStages};
|
package/dist/deck-presenter.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var c="rik-presenter",t=null,i=null,o=null;function m(e){let r=Array.from(e.children).filter(l=>l.tagName.toLowerCase().startsWith("deck-")),s=r.findIndex(l=>l.hasAttribute("active")),a=r[s]??null,n=r[s+1]??null,p=(a?.querySelector("deck-notes")?.textContent??"").trim(),u=document.querySelector('link[rel="stylesheet"][href*="rikiki"], link[rel="stylesheet"][href*="tokens"], link[rel="stylesheet"][href*="theme"]')?.href??"";return{current:s+1,total:r.length,slideHtml:a?.outerHTML??"",nextHtml:n?.outerHTML??null,notes:p,themeHref:u}}function d(e){i&&i.postMessage({type:"state",state:m(e)})}var h=e=>`<!doctype html>
|
|
1
|
+
var c="rik-presenter",f=new URL("./index.js",import.meta.url).href,t=null,i=null,o=null;function m(e){let r=Array.from(e.children).filter(l=>l.tagName.toLowerCase().startsWith("deck-")),s=r.findIndex(l=>l.hasAttribute("active")),a=r[s]??null,n=r[s+1]??null,p=(a?.querySelector("deck-notes")?.textContent??"").trim(),u=document.querySelector('link[rel="stylesheet"][href*="rikiki"], link[rel="stylesheet"][href*="tokens"], link[rel="stylesheet"][href*="theme"]')?.href??"";return{current:s+1,total:r.length,slideHtml:a?.outerHTML??"",nextHtml:n?.outerHTML??null,notes:p,themeHref:u,bundleHref:f}}function d(e){i&&i.postMessage({type:"state",state:m(e)})}var h=e=>`<!doctype html>
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
@@ -10,11 +10,14 @@ ${e.themeHref?`<link rel="stylesheet" href="${e.themeHref}">`:""}
|
|
|
10
10
|
display: grid;
|
|
11
11
|
grid-template-columns: 2fr 1fr;
|
|
12
12
|
grid-template-rows: 1fr auto;
|
|
13
|
-
gap: 16px;
|
|
14
|
-
padding: 16px;
|
|
13
|
+
gap: clamp(8px, 1.5vw, 16px);
|
|
14
|
+
padding: clamp(8px, 1.5vw, 16px);
|
|
15
15
|
height: 100vh;
|
|
16
16
|
box-sizing: border-box;
|
|
17
17
|
}
|
|
18
|
+
@media (max-width: 1000px) {
|
|
19
|
+
.grid { grid-template-columns: 1fr; grid-template-rows: 1fr 1fr auto auto; }
|
|
20
|
+
}
|
|
18
21
|
.panel {
|
|
19
22
|
background: #1e2840;
|
|
20
23
|
border-radius: 12px;
|
|
@@ -31,8 +34,8 @@ ${e.themeHref?`<link rel="stylesheet" href="${e.themeHref}">`:""}
|
|
|
31
34
|
color: rgba(232,228,240,0.45);
|
|
32
35
|
background: #161c2e;
|
|
33
36
|
}
|
|
34
|
-
.panel .body { flex: 1; min-height: 0; padding: 16px; overflow: hidden; }
|
|
35
|
-
.panel iframe { width: 100%; height: 100%; border: 0; background:
|
|
37
|
+
.panel .body { flex: 1; min-height: 0; padding: 16px; overflow: hidden; border-radius: 8px; }
|
|
38
|
+
.panel iframe { width: 100%; height: 100%; border: 0; background: #0f1422; display: block; }
|
|
36
39
|
#notes { font-size: 17px; line-height: 1.6; white-space: pre-wrap; padding: 20px; overflow: auto; color: #e8e4f0; }
|
|
37
40
|
#notes:empty::before { content: 'No notes for this slide.'; color: rgba(232,228,240,0.4); font-style: italic; }
|
|
38
41
|
#footer {
|
|
@@ -110,15 +113,17 @@ ${e.themeHref?`<link rel="stylesheet" href="${e.themeHref}">`:""}
|
|
|
110
113
|
resetBtn.onclick = () => { startedAt = Date.now(); elapsed = 0; running = true; toggleBtn.textContent = 'Pause'; };
|
|
111
114
|
|
|
112
115
|
function wrapFrame(slideHtml) {
|
|
113
|
-
const themeHref
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
//
|
|
117
|
-
|
|
116
|
+
const themeHref = ${JSON.stringify(e.themeHref)};
|
|
117
|
+
const bundleHref = ${JSON.stringify(e.bundleHref)};
|
|
118
|
+
const themeLink = themeHref ? '<link rel="stylesheet" href="' + themeHref + '">' : '';
|
|
119
|
+
// Mark the cloned slide [active] so its real component CSS applies
|
|
120
|
+
// (:host([active]){display:flex}) instead of forcing display via !important.
|
|
121
|
+
const activeSlide = slideHtml.replace(/^(\\s*<deck-[a-z-]+)/i, '$1 active');
|
|
118
122
|
return '<!doctype html><html><head><meta charset="UTF-8">' + themeLink +
|
|
119
123
|
'<script type="module" src="' + bundleHref + '"><' + '/script>' +
|
|
120
|
-
'<style>html,body{margin:0;padding:0;height:100%;overflow:hidden}
|
|
121
|
-
'
|
|
124
|
+
'<style>html,body{margin:0;padding:0;height:100%;overflow:hidden;background:#0f1422}' +
|
|
125
|
+
'deck-root{position:absolute;inset:0}</style>' +
|
|
126
|
+
'</head><body><deck-root>' + activeSlide + '</deck-root></body></html>';
|
|
122
127
|
}
|
|
123
128
|
|
|
124
129
|
channel.onmessage = (e) => {
|
|
@@ -145,4 +150,4 @@ ${e.themeHref?`<link rel="stylesheet" href="${e.themeHref}">`:""}
|
|
|
145
150
|
channel.postMessage({ type: 'hello' });
|
|
146
151
|
<\/script>
|
|
147
152
|
</body>
|
|
148
|
-
</html>`;function
|
|
153
|
+
</html>`;function k(e){if(o=o??new WeakSet,o.has(e)){t?.close(),t=null;return}o.add(e),i=new BroadcastChannel(c),e.addEventListener("slide-change",()=>d(e)),i.addEventListener("message",a=>{let n=a.data;n?.type==="key"&&n.key&&window.dispatchEvent(new KeyboardEvent("keydown",{key:n.key,shiftKey:!!n.shift,bubbles:!0})),n?.type==="hello"&&d(e)});let r=m(e);if(t=window.open("","rikiki-presenter","width=1280,height=800,popup=yes"),!t){console.warn("[rikiki/presenter] popup was blocked \xB7 allow popups for this site"),o.delete(e);return}t.document.open(),t.document.write(h(r)),t.document.close();let s=setInterval(()=>{t&&t.closed&&(clearInterval(s),o?.delete(e),t=null)},1e3)}export{k as installPresenter};
|
package/dist/deck-root.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var f=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var o=(p,h,t,e)=>{for(var i=e>1?void 0:e?_(h,t):h,s=p.length-1,r;s>=0;s--)(r=p[s])&&(i=(e?r(h,t,i):r(i))||i);return e&&i&&f(h,t,i),i};import{LitElement as m,html as
|
|
1
|
+
var f=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var o=(p,h,t,e)=>{for(var i=e>1?void 0:e?_(h,t):h,s=p.length-1,r;s>=0;s--)(r=p[s])&&(i=(e?r(h,t,i):r(i))||i);return e&&i&&f(h,t,i),i};import{LitElement as m,html as c,css as y}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as k,property as l,state as u}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var a=class extends m{constructor(){super(...arguments);this.current=0;this.step=0;this.blank=null;this.overview=!1;this.transition=null;this.autoplay=0;this.loop=!1;this.swipe=!1;this.slides=[];this.chapters=[];this._overviewTeardown=null;this._transitionLoaded=!1;this._autoplayTimer=null;this._autoplayPaused=!1;this._swipeStartX=0;this._swipeStartY=0;this._swipePointerId=null;this._onHoverEnter=()=>{this._autoplayPaused=!0,this._stopAutoplay()};this._onHoverLeave=()=>{this._autoplayPaused=!1,this.autoplay>0&&this._startAutoplay()};this._onPointerDown=t=>{!this.swipe||t.pointerType==="mouse"&&t.button!==0||t.target?.closest("a, button, input, textarea, [contenteditable]")||(this._swipePointerId=t.pointerId,this._swipeStartX=t.clientX,this._swipeStartY=t.clientY)};this._onPointerUp=t=>{if(this._swipePointerId===null||t.pointerId!==this._swipePointerId)return;let e=t.clientX-this._swipeStartX,i=t.clientY-this._swipeStartY;this._swipePointerId=null,!(Math.abs(e)<60||Math.abs(e)<Math.abs(i)*2)&&(this._stopAutoplay(),e<0?this._advance():this._back(),this.autoplay>0&&!this._autoplayPaused&&this._startAutoplay())};this._onHash=()=>{this._readHash(!1)};this._onKey=t=>{if(!(t.target&&t.target.matches?.("input,textarea,[contenteditable]"))){if(this.autoplay>0&&!this._autoplayPaused&&this._startAutoplay(),this.overview){(t.key==="Escape"||t.key==="o"||t.key==="O"||t.key==="Enter")&&(t.preventDefault(),this.overview=!1);return}if(this.blank){t.preventDefault(),this.blank=null;return}if(t.key==="."||t.key==="b"||t.key==="B"){t.preventDefault(),this.blank="black";return}if(t.key===","||t.key==="w"||t.key==="W"){t.preventDefault(),this.blank="white";return}if(t.key==="?"||t.key==="h"||t.key==="H"){this._toggleHelp();return}if(t.key==="Escape"){this._closeHelp();return}if(t.key==="o"||t.key==="O"){t.preventDefault(),this.overview=!0;return}if(t.key==="p"||t.key==="P"){t.preventDefault(),this._togglePresenter();return}if(t.key==="Home"){this._goTo(0);return}if(t.key==="End"){this._goTo(this.slides.length-1);return}if(t.key===" "||t.key==="PageDown"){t.preventDefault(),this._advance();return}if(t.key==="PageUp"){t.preventDefault(),this._back();return}if(this._has2DNav()){let{c:e,i}=this._coords(this.current);if(t.key==="ArrowRight"){t.preventDefault(),e+1<this.chapters.length?this._goToCoords(e+1,0):this._advance();return}if(t.key==="ArrowLeft"){t.preventDefault(),e-1>=0?this._goToCoords(e-1,0):this._back();return}if(t.key==="ArrowDown"){t.preventDefault();let s=this.chapters[e];s&&i+1<s.slides.length?this._goToCoords(e,i+1):this._advance();return}if(t.key==="ArrowUp"){t.preventDefault(),i-1>=0?this._goToCoords(e,i-1):this._back();return}}else{if(t.key==="ArrowRight"||t.key==="ArrowDown"){t.preventDefault(),this._advance();return}if(t.key==="ArrowLeft"||t.key==="ArrowUp"){t.preventDefault(),this._back();return}}}}}firstUpdated(){this.slides=Array.from(this.querySelectorAll(":scope > *")).filter(t=>t.tagName?.toLowerCase().startsWith("deck-")&&t.tagName?.toLowerCase()!=="deck-root"),this._buildChapters(),this._readHash(!0),this._applyActive(),this._applyStep(),this._updateUI(),this.requestUpdate(),window.addEventListener("keydown",this._onKey),window.addEventListener("hashchange",this._onHash),this.autoplay>0&&this._startAutoplay(),this.swipe?(this.addEventListener("pointerdown",this._onPointerDown),this.addEventListener("pointerup",this._onPointerUp),this.addEventListener("pointercancel",this._onPointerUp),this.addEventListener("mouseenter",this._onHoverEnter),this.addEventListener("mouseleave",this._onHoverLeave)):this.autoplay>0&&(this.addEventListener("mouseenter",this._onHoverEnter),this.addEventListener("mouseleave",this._onHoverLeave))}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("keydown",this._onKey),window.removeEventListener("hashchange",this._onHash),this._stopAutoplay(),this.removeEventListener("pointerdown",this._onPointerDown),this.removeEventListener("pointerup",this._onPointerUp),this.removeEventListener("pointercancel",this._onPointerUp),this.removeEventListener("mouseenter",this._onHoverEnter),this.removeEventListener("mouseleave",this._onHoverLeave)}_startAutoplay(){this._stopAutoplay(),!(this.autoplay<=0||this._autoplayPaused)&&(this._autoplayTimer=window.setInterval(()=>this._autoTick(),this.autoplay))}_stopAutoplay(){this._autoplayTimer!==null&&(window.clearInterval(this._autoplayTimer),this._autoplayTimer=null)}_autoTick(){if(this.overview)return;this.current>=this.slides.length-1&&this.step>=this._maxSteps()&&this.loop?this._goTo(0):this._advance()}_buildChapters(){this.chapters=[];let t=null;this.slides.forEach((e,i)=>{e.tagName?.toLowerCase()==="deck-section"||!t?(t={startIdx:i,slides:[e]},this.chapters.push(t)):t.slides.push(e)})}_has2DNav(){return this.chapters.some(t=>t.slides.length>1)&&this.chapters.length>1}_coords(t){for(let e=0;e<this.chapters.length;e++){let i=this.chapters[e],s=t-i.startIdx;if(s>=0&&s<i.slides.length)return{c:e,i:s}}return{c:0,i:0}}_flatFromCoords(t,e){let i=this.chapters[t];return i?i.startIdx+Math.max(0,Math.min(i.slides.length-1,e)):0}_readHash(t){let e=location.hash,i=e.match(/^#(\d+)\.(\d+)(?:s(\d+))?$/),s=e.match(/^#(\d+)(?:\.(\d+))?$/),r=this.current,n=this.step;if(this._has2DNav()&&i){let v=parseInt(i[1],10)-1,d=parseInt(i[2],10)-1;r=this._flatFromCoords(Math.max(0,v),Math.max(0,d)),n=i[3]?parseInt(i[3],10):0}else if(s)r=parseInt(s[1],10)-1,n=s[2]?parseInt(s[2],10):0;else return;r===this.current&&n===this.step&&!t||(this.current=Math.max(0,Math.min(this.slides.length-1,r)),this.step=Math.max(0,n),t||(this._applyActive(),this._applyStep(),this._updateUI()))}_writeHash(){let t=`#${this.current+1}`+(this.step>0?`.${this.step}`:"");if(location.hash!==t)try{history.replaceState(null,"",t)}catch{}}async _toggleHelp(){(await import("./deck-help.js")).toggleHelp(this)}async _togglePresenter(){(await import("./deck-presenter.js")).installPresenter(this)}async _closeHelp(){(await import("./deck-help.js")).closeHelp(this)}async _renderOverviewIfActive(){if(!this.overview){this._overviewTeardown?.(),this._overviewTeardown=null;return}let{mountOverview:t}=await import("./deck-overview.js");this._overviewTeardown=t(this,{slides:this.slides,chapters:this.chapters,currentIdx:this.current,onPick:e=>{this.overview=!1,this._goTo(e)}})}_maxSteps(){let t=this.slides[this.current];if(!t)return 0;let e=parseInt(t.getAttribute("steps")||t.dataset?.steps||"0",10);if(e>0)return e;let i=t.querySelector("deck-code[step-groups]");if(i)try{return JSON.parse(i.getAttribute("step-groups")).length}catch{}return 0}_advance(){let t=this._maxSteps();this.step<t?(this.step++,this._applyStep(),this._updateUI(),this._writeHash()):this.current<this.slides.length-1?this._goTo(this.current+1):this.loop&&this._goTo(0)}_back(){this.step>0?(this.step--,this._applyStep(),this._updateUI(),this._writeHash()):this.current>0?(this._goTo(this.current-1),this.step=this._maxSteps(),this._applyStep(),this._updateUI(),this._writeHash()):this.loop&&(this._goTo(this.slides.length-1),this.step=this._maxSteps(),this._applyStep(),this._updateUI(),this._writeHash())}_goTo(t){this.current=Math.max(0,Math.min(this.slides.length-1,t)),this.step=0,this._applyActive(),this._applyStep(),this._updateUI(),this._writeHash()}_goToCoords(t,e){let i=Math.max(0,Math.min(this.chapters.length-1,t)),s=this.chapters[i];if(!s)return;let r=Math.max(0,Math.min(s.slides.length-1,e));this._goTo(this._flatFromCoords(i,r))}_applyActive(){let t=this.slides.find(i=>i.hasAttribute("active"))??null,e=this.slides[this.current]??null;this.slides.forEach((i,s)=>{let r=s===this.current;i.toggleAttribute("active",r),r&&i.querySelectorAll("deck-mermaid").forEach(n=>n.render?.())}),this.transition&&!this._transitionLoaded&&(this._transitionLoaded=!0,import("./deck-transition.js").then(i=>i.installTransitions(this))),t!==e&&this.dispatchEvent(new CustomEvent("slide-change",{detail:{current:e,previous:t},bubbles:!1}))}_applyStep(){let t=this.slides[this.current];t&&(t.applyStep?.(this.step),t.querySelectorAll("*").forEach(e=>e.applyStep?.(this.step)),t.querySelectorAll("[data-step-block]").forEach(e=>{let i=parseInt(e.dataset.stepBlock,10);e.style.transition="opacity 0.25s ease",e.style.opacity=this.step===0||i<=this.step?"1":"0.15"}))}_updateUI(){let t=this.slides.length,e=this.current+1,i=this.renderRoot.querySelector("#progress"),s=this.renderRoot.querySelector("#counter"),r=this.renderRoot.querySelector("#step-dots");i&&(i.style.width=e/t*100+"%"),s&&(s.textContent=`${e} / ${t}`);let n=this._maxSteps();r&&(r.innerHTML=n===0?"":Array.from({length:n},(v,d)=>`<div class="dot${d<this.step?" active":""}"></div>`).join(""))}updated(){this._updateUI(),this._renderOverviewIfActive()}render(){return c`<div id="progress"></div> <div id="counter"></div> <div id="step-dots"></div> <div id="kb-hint"> <kbd>←</kbd><kbd>→</kbd> ${this._has2DNav()?c`<kbd>↑</kbd><kbd>↓</kbd>`:""}
|
|
2
2
|
<span>·</span>
|
|
3
3
|
<kbd>O</kbd>
|
|
4
4
|
<span>·</span>
|
|
@@ -7,5 +7,5 @@ var f=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var o=(p,h,t,e
|
|
|
7
7
|
<kbd>?</kbd>
|
|
8
8
|
</div>
|
|
9
9
|
<slot></slot>
|
|
10
|
-
${this.blank?
|
|
11
|
-
`}};a.styles=y`:host{display:block;width:100vw;height:100vh;position:relative;background:var(--deck-root-bg,var(--rik-surface-page))}#progress{position:fixed;bottom:0;left:0;height:var(--deck-root-progress-height,3px);background:var(--deck-root-progress-color,linear-gradient(90deg,var(--rik-accent),var(--rik-accent--soft)));transition:width 0.25s ease;z-index:100}#counter{position:fixed;bottom:1rem;right:1.5rem;font-size:var(--rik-font-size-xs);color:var(--deck-root-counter-color,var(--rik-text-default--faint));font-family:var(--rik-font-mono);z-index:100}#step-dots{position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:100}.dot{width:6px;height:6px;border-radius:50%;background:var(--deck-root-dot-bg,#d4d4d0);transition:background 0.2s}.dot.active{background:var(--deck-root-dot-active-bg,var(--rik-accent))}#kb-hint{position:fixed;bottom:1rem;left:1.5rem;display:inline-flex;align-items:center;gap:6px;font:600 0.62rem/1 var(--rik-font-mono);color:var(--deck-root-kb-hint-color,var(--rik-text-default--faint));z-index:100;opacity:0.5;transition:opacity 0.2s ease;cursor:help}#kb-hint:hover{opacity:1}#kb-hint kbd{background:var(--rik-surface-raised);border:1px solid var(--rik-border-default);border-bottom:2px solid var(--rik-border-default);border-radius:4px;padding:2px 6px;color:var(--rik-text-default);font:inherit;min-width:16px;text-align:center}#kb-hint .sep{opacity:0.4}#blank{position:fixed;inset:0;z-index:9999;cursor:pointer}#blank[data-tone="black"]{background:#000}#blank[data-tone="white"]{background:#fff}`,o([
|
|
10
|
+
${this.blank?c`<div id="blank" data-tone="${this.blank}" @click=${()=>{this.blank=null}}></div>`:""}
|
|
11
|
+
`}};a.styles=y`:host{display:block;width:100vw;height:100vh;position:relative;background:var(--deck-root-bg,var(--rik-surface-page))}#progress{position:fixed;bottom:0;left:0;height:var(--deck-root-progress-height,3px);background:var(--deck-root-progress-color,linear-gradient(90deg,var(--rik-accent),var(--rik-accent--soft)));transition:width 0.25s ease;z-index:100}#counter{position:fixed;bottom:1rem;right:1.5rem;font-size:var(--rik-font-size-xs);color:var(--deck-root-counter-color,var(--rik-text-default--faint));font-family:var(--rik-font-mono);z-index:100}#step-dots{position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:100}.dot{width:6px;height:6px;border-radius:50%;background:var(--deck-root-dot-bg,#d4d4d0);transition:background 0.2s}.dot.active{background:var(--deck-root-dot-active-bg,var(--rik-accent))}#kb-hint{position:fixed;bottom:1rem;left:1.5rem;display:inline-flex;align-items:center;gap:6px;font:600 0.62rem/1 var(--rik-font-mono);color:var(--deck-root-kb-hint-color,var(--rik-text-default--faint));z-index:100;opacity:0.5;transition:opacity 0.2s ease;cursor:help}#kb-hint:hover{opacity:1}#kb-hint kbd{background:var(--rik-surface-raised);border:1px solid var(--rik-border-default);border-bottom:2px solid var(--rik-border-default);border-radius:4px;padding:2px 6px;color:var(--rik-text-default);font:inherit;min-width:16px;text-align:center}#kb-hint .sep{opacity:0.4}#blank{position:fixed;inset:0;z-index:9999;cursor:pointer}#blank[data-tone="black"]{background:#000}#blank[data-tone="white"]{background:#fff}`,o([u()],a.prototype,"current",2),o([u()],a.prototype,"step",2),o([u()],a.prototype,"blank",2),o([l({type:Boolean,reflect:!0})],a.prototype,"overview",2),o([l({type:String,reflect:!0})],a.prototype,"transition",2),o([l({type:Number,reflect:!0})],a.prototype,"autoplay",2),o([l({type:Boolean,reflect:!0})],a.prototype,"loop",2),o([l({type:Boolean,reflect:!0})],a.prototype,"swipe",2),a=o([k("deck-root")],a);export{a as DeckRoot};
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Oe=Object.defineProperty;var Be=Object.getOwnPropertyDescriptor;var t=(s,a,e,r)=>{for(var i=r>1?void 0:r?Be(a,e):a,l=s.length-1,n;l>=0;l--)(n=s[l])&&(i=(r?n(a,e,i):n(i))||i);return r&&i&&Oe(a,e,i),i};import{LitElement as Re,html as re,css as
|
|
1
|
+
var Oe=Object.defineProperty;var Be=Object.getOwnPropertyDescriptor;var t=(s,a,e,r)=>{for(var i=r>1?void 0:r?Be(a,e):a,l=s.length-1,n;l>=0;l--)(n=s[l])&&(i=(r?n(a,e,i):n(i))||i);return r&&i&&Oe(a,e,i),i};import{LitElement as Re,html as re,css as Ue}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as qe,property as q,state as ie}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var p=class extends Re{constructor(){super(...arguments);this.current=0;this.step=0;this.blank=null;this.overview=!1;this.transition=null;this.autoplay=0;this.loop=!1;this.swipe=!1;this.slides=[];this.chapters=[];this._overviewTeardown=null;this._transitionLoaded=!1;this._autoplayTimer=null;this._autoplayPaused=!1;this._swipeStartX=0;this._swipeStartY=0;this._swipePointerId=null;this._onHoverEnter=()=>{this._autoplayPaused=!0,this._stopAutoplay()};this._onHoverLeave=()=>{this._autoplayPaused=!1,this.autoplay>0&&this._startAutoplay()};this._onPointerDown=e=>{!this.swipe||e.pointerType==="mouse"&&e.button!==0||e.target?.closest("a, button, input, textarea, [contenteditable]")||(this._swipePointerId=e.pointerId,this._swipeStartX=e.clientX,this._swipeStartY=e.clientY)};this._onPointerUp=e=>{if(this._swipePointerId===null||e.pointerId!==this._swipePointerId)return;let r=e.clientX-this._swipeStartX,i=e.clientY-this._swipeStartY;this._swipePointerId=null,!(Math.abs(r)<60||Math.abs(r)<Math.abs(i)*2)&&(this._stopAutoplay(),r<0?this._advance():this._back(),this.autoplay>0&&!this._autoplayPaused&&this._startAutoplay())};this._onHash=()=>{this._readHash(!1)};this._onKey=e=>{if(!(e.target&&e.target.matches?.("input,textarea,[contenteditable]"))){if(this.autoplay>0&&!this._autoplayPaused&&this._startAutoplay(),this.overview){(e.key==="Escape"||e.key==="o"||e.key==="O"||e.key==="Enter")&&(e.preventDefault(),this.overview=!1);return}if(this.blank){e.preventDefault(),this.blank=null;return}if(e.key==="."||e.key==="b"||e.key==="B"){e.preventDefault(),this.blank="black";return}if(e.key===","||e.key==="w"||e.key==="W"){e.preventDefault(),this.blank="white";return}if(e.key==="?"||e.key==="h"||e.key==="H"){this._toggleHelp();return}if(e.key==="Escape"){this._closeHelp();return}if(e.key==="o"||e.key==="O"){e.preventDefault(),this.overview=!0;return}if(e.key==="p"||e.key==="P"){e.preventDefault(),this._togglePresenter();return}if(e.key==="Home"){this._goTo(0);return}if(e.key==="End"){this._goTo(this.slides.length-1);return}if(e.key===" "||e.key==="PageDown"){e.preventDefault(),this._advance();return}if(e.key==="PageUp"){e.preventDefault(),this._back();return}if(this._has2DNav()){let{c:r,i}=this._coords(this.current);if(e.key==="ArrowRight"){e.preventDefault(),r+1<this.chapters.length?this._goToCoords(r+1,0):this._advance();return}if(e.key==="ArrowLeft"){e.preventDefault(),r-1>=0?this._goToCoords(r-1,0):this._back();return}if(e.key==="ArrowDown"){e.preventDefault();let l=this.chapters[r];l&&i+1<l.slides.length?this._goToCoords(r,i+1):this._advance();return}if(e.key==="ArrowUp"){e.preventDefault(),i-1>=0?this._goToCoords(r,i-1):this._back();return}}else{if(e.key==="ArrowRight"||e.key==="ArrowDown"){e.preventDefault(),this._advance();return}if(e.key==="ArrowLeft"||e.key==="ArrowUp"){e.preventDefault(),this._back();return}}}}}firstUpdated(){this.slides=Array.from(this.querySelectorAll(":scope > *")).filter(e=>e.tagName?.toLowerCase().startsWith("deck-")&&e.tagName?.toLowerCase()!=="deck-root"),this._buildChapters(),this._readHash(!0),this._applyActive(),this._applyStep(),this._updateUI(),this.requestUpdate(),window.addEventListener("keydown",this._onKey),window.addEventListener("hashchange",this._onHash),this.autoplay>0&&this._startAutoplay(),this.swipe?(this.addEventListener("pointerdown",this._onPointerDown),this.addEventListener("pointerup",this._onPointerUp),this.addEventListener("pointercancel",this._onPointerUp),this.addEventListener("mouseenter",this._onHoverEnter),this.addEventListener("mouseleave",this._onHoverLeave)):this.autoplay>0&&(this.addEventListener("mouseenter",this._onHoverEnter),this.addEventListener("mouseleave",this._onHoverLeave))}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("keydown",this._onKey),window.removeEventListener("hashchange",this._onHash),this._stopAutoplay(),this.removeEventListener("pointerdown",this._onPointerDown),this.removeEventListener("pointerup",this._onPointerUp),this.removeEventListener("pointercancel",this._onPointerUp),this.removeEventListener("mouseenter",this._onHoverEnter),this.removeEventListener("mouseleave",this._onHoverLeave)}_startAutoplay(){this._stopAutoplay(),!(this.autoplay<=0||this._autoplayPaused)&&(this._autoplayTimer=window.setInterval(()=>this._autoTick(),this.autoplay))}_stopAutoplay(){this._autoplayTimer!==null&&(window.clearInterval(this._autoplayTimer),this._autoplayTimer=null)}_autoTick(){if(this.overview)return;this.current>=this.slides.length-1&&this.step>=this._maxSteps()&&this.loop?this._goTo(0):this._advance()}_buildChapters(){this.chapters=[];let e=null;this.slides.forEach((r,i)=>{r.tagName?.toLowerCase()==="deck-section"||!e?(e={startIdx:i,slides:[r]},this.chapters.push(e)):e.slides.push(r)})}_has2DNav(){return this.chapters.some(e=>e.slides.length>1)&&this.chapters.length>1}_coords(e){for(let r=0;r<this.chapters.length;r++){let i=this.chapters[r],l=e-i.startIdx;if(l>=0&&l<i.slides.length)return{c:r,i:l}}return{c:0,i:0}}_flatFromCoords(e,r){let i=this.chapters[e];return i?i.startIdx+Math.max(0,Math.min(i.slides.length-1,r)):0}_readHash(e){let r=location.hash,i=r.match(/^#(\d+)\.(\d+)(?:s(\d+))?$/),l=r.match(/^#(\d+)(?:\.(\d+))?$/),n=this.current,o=this.step;if(this._has2DNav()&&i){let h=parseInt(i[1],10)-1,b=parseInt(i[2],10)-1;n=this._flatFromCoords(Math.max(0,h),Math.max(0,b)),o=i[3]?parseInt(i[3],10):0}else if(l)n=parseInt(l[1],10)-1,o=l[2]?parseInt(l[2],10):0;else return;n===this.current&&o===this.step&&!e||(this.current=Math.max(0,Math.min(this.slides.length-1,n)),this.step=Math.max(0,o),e||(this._applyActive(),this._applyStep(),this._updateUI()))}_writeHash(){let e=`#${this.current+1}`+(this.step>0?`.${this.step}`:"");if(location.hash!==e)try{history.replaceState(null,"",e)}catch{}}async _toggleHelp(){(await import("./deck-help.js")).toggleHelp(this)}async _togglePresenter(){(await import("./deck-presenter.js")).installPresenter(this)}async _closeHelp(){(await import("./deck-help.js")).closeHelp(this)}async _renderOverviewIfActive(){if(!this.overview){this._overviewTeardown?.(),this._overviewTeardown=null;return}let{mountOverview:e}=await import("./deck-overview.js");this._overviewTeardown=e(this,{slides:this.slides,chapters:this.chapters,currentIdx:this.current,onPick:r=>{this.overview=!1,this._goTo(r)}})}_maxSteps(){let e=this.slides[this.current];if(!e)return 0;let r=parseInt(e.getAttribute("steps")||e.dataset?.steps||"0",10);if(r>0)return r;let i=e.querySelector("deck-code[step-groups]");if(i)try{return JSON.parse(i.getAttribute("step-groups")).length}catch{}return 0}_advance(){let e=this._maxSteps();this.step<e?(this.step++,this._applyStep(),this._updateUI(),this._writeHash()):this.current<this.slides.length-1?this._goTo(this.current+1):this.loop&&this._goTo(0)}_back(){this.step>0?(this.step--,this._applyStep(),this._updateUI(),this._writeHash()):this.current>0?(this._goTo(this.current-1),this.step=this._maxSteps(),this._applyStep(),this._updateUI(),this._writeHash()):this.loop&&(this._goTo(this.slides.length-1),this.step=this._maxSteps(),this._applyStep(),this._updateUI(),this._writeHash())}_goTo(e){this.current=Math.max(0,Math.min(this.slides.length-1,e)),this.step=0,this._applyActive(),this._applyStep(),this._updateUI(),this._writeHash()}_goToCoords(e,r){let i=Math.max(0,Math.min(this.chapters.length-1,e)),l=this.chapters[i];if(!l)return;let n=Math.max(0,Math.min(l.slides.length-1,r));this._goTo(this._flatFromCoords(i,n))}_applyActive(){let e=this.slides.find(i=>i.hasAttribute("active"))??null,r=this.slides[this.current]??null;this.slides.forEach((i,l)=>{let n=l===this.current;i.toggleAttribute("active",n),n&&i.querySelectorAll("deck-mermaid").forEach(o=>o.render?.())}),this.transition&&!this._transitionLoaded&&(this._transitionLoaded=!0,import("./deck-transition.js").then(i=>i.installTransitions(this))),e!==r&&this.dispatchEvent(new CustomEvent("slide-change",{detail:{current:r,previous:e},bubbles:!1}))}_applyStep(){let e=this.slides[this.current];e&&(e.applyStep?.(this.step),e.querySelectorAll("*").forEach(r=>r.applyStep?.(this.step)),e.querySelectorAll("[data-step-block]").forEach(r=>{let i=parseInt(r.dataset.stepBlock,10);r.style.transition="opacity 0.25s ease",r.style.opacity=this.step===0||i<=this.step?"1":"0.15"}))}_updateUI(){let e=this.slides.length,r=this.current+1,i=this.renderRoot.querySelector("#progress"),l=this.renderRoot.querySelector("#counter"),n=this.renderRoot.querySelector("#step-dots");i&&(i.style.width=r/e*100+"%"),l&&(l.textContent=`${r} / ${e}`);let o=this._maxSteps();n&&(n.innerHTML=o===0?"":Array.from({length:o},(h,b)=>`<div class="dot${b<this.step?" active":""}"></div>`).join(""))}updated(){this._updateUI(),this._renderOverviewIfActive()}render(){return re`<div id="progress"></div> <div id="counter"></div> <div id="step-dots"></div> <div id="kb-hint"> <kbd>←</kbd><kbd>→</kbd> ${this._has2DNav()?re`<kbd>↑</kbd><kbd>↓</kbd>`:""}
|
|
2
2
|
<span>·</span>
|
|
3
3
|
<kbd>O</kbd>
|
|
4
4
|
<span>·</span>
|
|
@@ -8,7 +8,7 @@ var Oe=Object.defineProperty;var Be=Object.getOwnPropertyDescriptor;var t=(s,a,e
|
|
|
8
8
|
</div>
|
|
9
9
|
<slot></slot>
|
|
10
10
|
${this.blank?re`<div id="blank" data-tone="${this.blank}" @click=${()=>{this.blank=null}}></div>`:""}
|
|
11
|
-
`}};p.styles=
|
|
11
|
+
`}};p.styles=Ue`:host{display:block;width:100vw;height:100vh;position:relative;background:var(--deck-root-bg,var(--rik-surface-page))}#progress{position:fixed;bottom:0;left:0;height:var(--deck-root-progress-height,3px);background:var(--deck-root-progress-color,linear-gradient(90deg,var(--rik-accent),var(--rik-accent--soft)));transition:width 0.25s ease;z-index:100}#counter{position:fixed;bottom:1rem;right:1.5rem;font-size:var(--rik-font-size-xs);color:var(--deck-root-counter-color,var(--rik-text-default--faint));font-family:var(--rik-font-mono);z-index:100}#step-dots{position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:100}.dot{width:6px;height:6px;border-radius:50%;background:var(--deck-root-dot-bg,#d4d4d0);transition:background 0.2s}.dot.active{background:var(--deck-root-dot-active-bg,var(--rik-accent))}#kb-hint{position:fixed;bottom:1rem;left:1.5rem;display:inline-flex;align-items:center;gap:6px;font:600 0.62rem/1 var(--rik-font-mono);color:var(--deck-root-kb-hint-color,var(--rik-text-default--faint));z-index:100;opacity:0.5;transition:opacity 0.2s ease;cursor:help}#kb-hint:hover{opacity:1}#kb-hint kbd{background:var(--rik-surface-raised);border:1px solid var(--rik-border-default);border-bottom:2px solid var(--rik-border-default);border-radius:4px;padding:2px 6px;color:var(--rik-text-default);font:inherit;min-width:16px;text-align:center}#kb-hint .sep{opacity:0.4}#blank{position:fixed;inset:0;z-index:9999;cursor:pointer}#blank[data-tone="black"]{background:#000}#blank[data-tone="white"]{background:#fff}`,t([ie()],p.prototype,"current",2),t([ie()],p.prototype,"step",2),t([ie()],p.prototype,"blank",2),t([q({type:Boolean,reflect:!0})],p.prototype,"overview",2),t([q({type:String,reflect:!0})],p.prototype,"transition",2),t([q({type:Number,reflect:!0})],p.prototype,"autoplay",2),t([q({type:Boolean,reflect:!0})],p.prototype,"loop",2),t([q({type:Boolean,reflect:!0})],p.prototype,"swipe",2),p=t([qe("deck-root")],p);var c={slide:560,"slide-up":520,"slide-down":520,"slide-right":560,fade:480,zoom:520,flip:560},v="var(--rik-motion__ease-out, cubic-bezier(0.16, 1, 0.3, 1))",Ye="var(--rik-motion__ease-spring, cubic-bezier(0.5, 1.8, 0.3, 1))",zr=`
|
|
12
12
|
/* Incoming \xB7 from right (forward) */
|
|
13
13
|
@keyframes rk-slide-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
|
|
14
14
|
/* Outgoing \xB7 pushed off to the left (forward) */
|
|
@@ -58,7 +58,7 @@ var Oe=Object.defineProperty;var Be=Object.getOwnPropertyDescriptor;var t=(s,a,e
|
|
|
58
58
|
::slotted([active][class*='rk-enter-']),
|
|
59
59
|
::slotted(.rk-leaving) { animation: none; }
|
|
60
60
|
}
|
|
61
|
-
`;import{LitElement as Xe,css as We,html as Ge}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as
|
|
61
|
+
`;var Nr=new URL("./index.js",import.meta.url).href;import{LitElement as Xe,css as We,html as Ge}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as Ke}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var Y=class extends Xe{get notes(){return(this.textContent??"").trim()}render(){return Ge`<slot></slot>`}};Y.styles=We`:host{display:none}`,Y=t([Ke("deck-notes")],Y);import{LitElement as Ze,html as I,css as Ve}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as Qe,property as f}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";import{css as ae}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";var se=ae`:host{display:none;position:absolute;inset:0;padding:var(--rik-slide-padding-y) var(--rik-slide-padding-x);flex-direction:column;overflow:hidden;background:var(--rik-surface-page);font-family:var(--rik-font-sans);color:var(--rik-text-default)}:host([active]){display:flex}`,Je=ae`h1{font-size:var(--rik-font-size-h1);font-weight:700;color:var(--rik-text-default);letter-spacing:-0.022em;line-height:1.15;margin-bottom:var(--rik-space-4);padding-bottom:var(--rik-space-2);border-bottom:3px solid var(--rik-accent);display:inline-block;align-self:flex-start;flex:0 0 auto}h1 .accent{color:var(--rik-accent)}::slotted(p),p{font-size:var(--rik-font-size-body);line-height:1.65;color:var(--rik-text-default--muted);margin:0}::slotted(strong),strong{color:var(--rik-text-default);font-weight:700}::slotted(code),code{font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono-sm);background:rgba(0,0,0,0.06);padding:2px 6px;border-radius:var(--rik-radius-sm);color:var(--rik-text-default)}`,Fe=ae`.lbl{display:inline-block;padding:var(--deck-eyebrow-padding-y,4px) var(--deck-eyebrow-padding-x,12px);background:var(--deck-eyebrow-bg,var(--rik-accent));color:var(--deck-eyebrow-color,var(--rik-accent__on,var(--rik-surface-inverse)));border-radius:var(--deck-eyebrow-radius,var(--rik-radius-pill));font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--rik-space-1);align-self:flex-start}.lead{font-size:var(--rik-font-size-lead);color:var(--rik-text-default--faint);line-height:1.5;margin-bottom:var(--rik-space-4);max-width:75ch;flex:0 0 auto}.kicker{font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--rik-text-default--faint);margin-bottom:var(--rik-space-3);display:block}.kicker.on-dark{color:rgba(255,255,255,0.35)}.caption{font-size:var(--rik-font-size-sm);color:var(--rik-text-default--faint);line-height:1.55}.caption.on-dark{color:rgba(255,255,255,0.5)}.col-label{font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--rik-text-default--faint);margin-bottom:var(--rik-space-2)}`,m=[se,Je,Fe];var d=class extends Ze{render(){let a=(this.brand??"").split("\xB7").map(n=>n.trim()).filter(Boolean),e=a[0]??"",r=a.slice(1).join(" \xB7 "),i=[this.speaker&&{l:this.speakerLabel??"Pr\xE9sent\xE9 par",v:this.speaker},this.company&&{l:this.companyLabel??"Entreprise",v:this.company},this.duration&&{l:this.durationLabel??"Dur\xE9e",v:this.duration},this.audience&&{l:this.audienceLabel??"Audience",v:this.audience},this.runtime&&{l:this.runtimeLabel??"Runtime",v:this.runtime}].filter(n=>!!n),l=!!this.brandSrc;return I`<div class="brand" part="brand"> ${l?I`<span class="brand-tile"><img src="${this.brandSrc}" alt="${e}"></span>`:""}
|
|
62
62
|
${e?I`<span class="brand-name">${e}</span>`:""}
|
|
63
63
|
${r?I`<span class="brand-context">${r}</span>`:""}
|
|
64
64
|
</div>
|
|
@@ -92,17 +92,17 @@ var Oe=Object.defineProperty;var Be=Object.getOwnPropertyDescriptor;var t=(s,a,e
|
|
|
92
92
|
</div>
|
|
93
93
|
`}};j.styles=[...m,bt`:host{background:var(--deck-takeaway-bg,var(--rik-surface-inverse));color:var(--rik-text-inverse);justify-content:center;align-items:center;text-align:center}.body{display:flex;flex-direction:column;align-items:center;gap:var(--deck-takeaway-gap,var(--rik-space-4));max-width:75vw}::slotted(.display){font-family:var(--rik-font-display,var(--rik-font-sans));font-size:clamp(3rem,7vw,5.5rem);font-weight:900;color:var(--deck-takeaway-display-color,var(--rik-accent));letter-spacing:-0.03em;line-height:1.05;margin:0}::slotted(.display.danger){color:var(--rik-status-danger)}::slotted(.caption){font-size:var(--rik-font-size-lead);color:var(--deck-takeaway-caption-color,var(--rik-text-inverse--faint))}`],t([xt({type:String})],j.prototype,"kicker",2),j=t([yt("deck-takeaway")],j);import{LitElement as wt,html as _t,css as Et}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as St,property as Lt}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var xe={info:'<circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/>',warn:'<path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"/><path d="M12 9v4"/><path d="M12 17h.01"/>',danger:'<circle cx="12" cy="12" r="10"/><path d="M12 8v4"/><path d="M12 16h.01"/>',ok:'<path d="M20 6 9 17l-5-5"/>'},O=class extends wt{render(){let a=this.type??"info",e=xe[a]??xe.info;return _t`<div class="icon-box"> <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" .innerHTML="${e}"></svg> </div> <div class="content"><slot></slot></div>`}};O.styles=Et`:host{display:flex;gap:var(--rik-space-3);padding:var(--deck-callout-padding-y,var(--rik-space-3)) var(--deck-callout-padding-x,var(--rik-space-4));border-radius:var(--deck-callout-radius,var(--rik-radius-md));background:var(--deck-callout-bg,var(--rik-status-info__bg--mid));border:1px solid var(--deck-callout-border,var(--rik-status-info__border));box-shadow:var(--rik-elevation-2);align-items:center;color:var(--rik-text-default--muted);font-family:var(--rik-font-sans);font-size:var(--rik-font-size-body);line-height:1.55}:host([type="info"]){--deck-callout-bg:var(--rik-status-info__bg--mid);--deck-callout-border:var(--rik-status-info__border);--deck-callout-stroke:var(--rik-accent)}:host([type="warn"]){--deck-callout-bg:var(--rik-status-warn__bg);--deck-callout-border:var(--rik-status-warn__border);--deck-callout-stroke:var(--rik-status-warn)}:host([type="danger"]){--deck-callout-bg:var(--rik-status-danger__bg);--deck-callout-border:var(--rik-status-danger__border);--deck-callout-stroke:var(--rik-status-danger)}:host([type="ok"]){--deck-callout-bg:var(--rik-status-success__bg);--deck-callout-border:var(--rik-status-success__border);--deck-callout-stroke:var(--rik-status-success)}.icon-box{flex-shrink:0;width:var(--rik-icon-2xl);height:var(--rik-icon-2xl);display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--rik-surface-tint)}.icon-box svg{width:var(--rik-icon-lg);height:var(--rik-icon-lg);stroke:var(--deck-callout-stroke,var(--rik-accent));stroke-width:2.2}.content{flex:1}::slotted(p){margin:0}::slotted(strong){color:var(--rik-text-default);font-weight:700}::slotted(code){font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono-sm);background:var(--rik-surface-tint);padding:2px 6px;border-radius:var(--rik-radius-sm);color:var(--rik-text-default)}`,t([Lt({type:String})],O.prototype,"type",2),O=t([St("deck-callout")],O);import{LitElement as Tt,html as zt,css as Mt}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as Ht,property as oe}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var S=class extends Tt{constructor(){super(...arguments);this.center=!1;this.compact=!1}render(){return zt`<slot></slot>`}};S.styles=Mt`:host{display:flex;flex-direction:column;gap:var(--deck-card-gap,var(--rik-space-2));background:var(--deck-card-bg,var(--rik-surface-raised--strong));border:1px solid var(--deck-card-border,var(--rik-border-default));border-radius:var(--deck-card-radius,var(--rik-radius-lg));padding:var(--deck-card-padding-y,var(--rik-space-3)) var(--deck-card-padding-x,var(--rik-space-4));box-shadow:var(--deck-card-shadow,var(--rik-elevation-2));min-height:0;font-family:var(--rik-font-sans);color:var(--deck-card-text,var(--rik-text-default--muted))}:host([color="yellow"]){background:var(--deck-card-bg,var(--rik-status-info__bg));border:4px solid var(--deck-card-border,var(--rik-status-info__border))}:host([color="orange"]){background:var(--deck-card-bg,var(--rik-status-warn__bg));border:4px solid var(--deck-card-border,var(--rik-status-warn__border))}:host([color="green"]){background:var(--deck-card-bg,var(--rik-status-success__bg));border:4px solid var(--deck-card-border,var(--rik-status-success__border))}:host([color="red"]){background:var(--deck-card-bg,var(--rik-status-danger__bg));border:4px solid var(--deck-card-border,var(--rik-status-danger__border))}::slotted(h3){font-family:var(--rik-font-display,var(--rik-font-sans));font-size:var(--rik-font-size-h2);font-weight:700;color:var(--deck-card-title-color,var(--rik-text-default));letter-spacing:-0.01em;line-height:1.25;margin:0}::slotted(p){font-size:var(--rik-font-size-body);line-height:1.55;margin:0}::slotted(strong){color:var(--rik-text-default);font-weight:700}:host([center]){text-align:center;align-items:center}:host([compact]){padding:var(--rik-space-2) var(--rik-space-3)}`,t([oe({type:String})],S.prototype,"color",2),t([oe({type:Boolean})],S.prototype,"center",2),t([oe({type:Boolean})],S.prototype,"compact",2),S=t([Ht("deck-card")],S);import{LitElement as $t,html as Nt,css as It}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as Ct,state as Pt}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";import{marked as we}from"https://cdn.jsdelivr.net/npm/marked@12/+esm";we.setOptions({gfm:!0,breaks:!1});var B=class extends $t{constructor(){super(...arguments);this._html=""}connectedCallback(){super.connectedCallback(),this._parse()}_parse(){let e=this.textContent??"",r=e.split(`
|
|
94
94
|
`),i=r.filter(n=>n.trim().length>0).reduce((n,o)=>Math.min(n,o.match(/^ */)?.[0].length??0),1/0),l=i===1/0?e:r.map(n=>n.slice(i)).join(`
|
|
95
|
-
`);this._html=we.parse(l.trim()),this.textContent=""}render(){return Nt`<div class="content" .innerHTML="${this._html}"></div>`}};B.styles=It`:host{display:block;color:var(--rik-text-default--muted);font-family:var(--rik-font-sans)}h1,h2,h3,h4{color:var(--rik-text-default);font-weight:700;letter-spacing:-0.01em}h2{font-size:var(--rik-font-size-h2);margin-bottom:var(--rik-space-2)}h3{font-size:var(--rik-font-size-lead);margin-bottom:var(--rik-space-2);margin-top:var(--rik-space-3)}h4{font-size:var(--rik-font-size-body);margin-bottom:var(--rik-space-1);margin-top:var(--rik-space-3)}p{font-size:var(--rik-font-size-body);line-height:1.65;margin:0 0 var(--rik-space-3)}p:last-child{margin-bottom:0}strong{color:var(--rik-text-default);font-weight:700}em{font-style:italic}code{font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono-sm);background:var(--rik-surface-tint);padding:2px 6px;border-radius:var(--rik-radius-sm);color:var(--rik-text-default)}pre{background:var(--deck-md-pre-bg,var(--rik-code__bg));border:1px solid var(--deck-md-pre-border,var(--rik-code__border));border-radius:var(--rik-radius-md);padding:var(--rik-space-3) var(--rik-space-4);overflow:auto;font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono);line-height:1.75;color:var(--deck-md-pre-text,var(--rik-code__text));margin:0 0 var(--rik-space-3);box-shadow:var(--rik-elevation-2)}pre code{background:none;padding:0;color:inherit;border-radius:0}ul,ol{padding-left:1.4rem;margin:0 0 var(--rik-space-3)}li{margin-bottom:var(--rik-space-1);font-size:var(--rik-font-size-body);line-height:1.55}li::marker{color:var(--rik-accent)}a{color:var(--rik-accent);text-decoration:underline;text-decoration-thickness:1px}blockquote{border-left:3px solid var(--rik-accent);padding:var(--rik-space-1) var(--rik-space-3);color:var(--rik-text-default--faint);font-style:italic;margin:0 0 var(--rik-space-3)}hr{border:none;border-top:1px solid var(--rik-border-default);margin:var(--rik-space-4) 0}.content{display:contents}`,t([Pt()],B.prototype,"_html",2),B=t([Ct("deck-md")],B);import{LitElement as At,html as jt,css as Ot}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as Bt,property as Rt,state as
|
|
95
|
+
`);this._html=we.parse(l.trim()),this.textContent=""}render(){return Nt`<div class="content" .innerHTML="${this._html}"></div>`}};B.styles=It`:host{display:block;color:var(--rik-text-default--muted);font-family:var(--rik-font-sans)}h1,h2,h3,h4{color:var(--rik-text-default);font-weight:700;letter-spacing:-0.01em}h2{font-size:var(--rik-font-size-h2);margin-bottom:var(--rik-space-2)}h3{font-size:var(--rik-font-size-lead);margin-bottom:var(--rik-space-2);margin-top:var(--rik-space-3)}h4{font-size:var(--rik-font-size-body);margin-bottom:var(--rik-space-1);margin-top:var(--rik-space-3)}p{font-size:var(--rik-font-size-body);line-height:1.65;margin:0 0 var(--rik-space-3)}p:last-child{margin-bottom:0}strong{color:var(--rik-text-default);font-weight:700}em{font-style:italic}code{font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono-sm);background:var(--rik-surface-tint);padding:2px 6px;border-radius:var(--rik-radius-sm);color:var(--rik-text-default)}pre{background:var(--deck-md-pre-bg,var(--rik-code__bg));border:1px solid var(--deck-md-pre-border,var(--rik-code__border));border-radius:var(--rik-radius-md);padding:var(--rik-space-3) var(--rik-space-4);overflow:auto;font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono);line-height:1.75;color:var(--deck-md-pre-text,var(--rik-code__text));margin:0 0 var(--rik-space-3);box-shadow:var(--rik-elevation-2)}pre code{background:none;padding:0;color:inherit;border-radius:0}ul,ol{padding-left:1.4rem;margin:0 0 var(--rik-space-3)}li{margin-bottom:var(--rik-space-1);font-size:var(--rik-font-size-body);line-height:1.55}li::marker{color:var(--rik-accent)}a{color:var(--rik-accent);text-decoration:underline;text-decoration-thickness:1px}blockquote{border-left:3px solid var(--rik-accent);padding:var(--rik-space-1) var(--rik-space-3);color:var(--rik-text-default--faint);font-style:italic;margin:0 0 var(--rik-space-3)}hr{border:none;border-top:1px solid var(--rik-border-default);margin:var(--rik-space-4) 0}.content{display:contents}`,t([Pt()],B.prototype,"_html",2),B=t([Ct("deck-md")],B);import{LitElement as At,html as jt,css as Ot}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as Bt,property as Rt,state as Ut}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var _e=!1;async function qt(){_e||(window.mermaid||await new Promise((s,a)=>{let e=document.createElement("script");e.src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js",e.onload=()=>s(),e.onerror=()=>a(new Error("mermaid failed to load")),document.head.appendChild(e)}),window.mermaid.initialize({startOnLoad:!1,theme:"dark",themeVariables:{background:"#0f0f10",mainBkg:"#2a2a2a",nodeBorder:"#555",lineColor:"#777",textColor:"#e5e5e5",fontSize:"13px",edgeLabelBackground:"#111"},flowchart:{curve:"basis",htmlLabels:!0,padding:12},securityLevel:"loose"}),_e=!0)}var Yt=0,T=class extends At{constructor(){super(...arguments);this.rendered=!1;this._svg="";this._source=""}connectedCallback(){super.connectedCallback(),this._source=(this.textContent??"").trim();let e=this._source.split(`
|
|
96
96
|
`),r=e.filter(i=>i.trim()).reduce((i,l)=>Math.min(i,l.match(/^ */)?.[0].length??0),1/0);r<1/0&&(this._source=e.map(i=>i.slice(r)).join(`
|
|
97
|
-
`)),this._render()}async _render(){if(!this._source)return;await
|
|
97
|
+
`)),this._render()}async _render(){if(!this._source)return;await qt();let e=`mmd-${++Yt}`;try{let{svg:r}=await window.mermaid.render(e,this._source);this._svg=r,this.rendered=!0}catch(r){console.error("Mermaid render error",r);let i=r instanceof Error?r.message:String(r);this._svg=`<pre style="color:#f87171">${i}</pre>`}}render(){return jt`<div class="canvas" .innerHTML="${this._svg}"></div>`}};T.styles=Ot`:host{display:flex;align-items:center;justify-content:center;background:var(--deck-mermaid-bg,var(--rik-code__bg));border:1px solid var(--deck-mermaid-border,var(--rik-code__border));border-radius:var(--deck-mermaid-radius,var(--rik-radius-md));padding:var(--deck-mermaid-padding,var(--rik-space-4));box-shadow:var(--rik-elevation-2);overflow:hidden;min-width:0}:host([compact]){padding:var(--rik-space-2)}.canvas{width:100%;max-width:100%;text-align:center;overflow:hidden}.canvas svg{width:100% !important;height:auto !important;max-width:100% !important;max-height:60vh}:host([compact]) .canvas{max-width:60%}:host([compact]) .canvas svg{max-height:22vh}`,t([Rt({type:Boolean,reflect:!0})],T.prototype,"rendered",2),t([Ut()],T.prototype,"_svg",2),T=t([Bt("deck-mermaid")],T);import{LitElement as Xt,html as Ee,css as Wt}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as Gt,property as Se}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var Kt={yellow:"var(--rik-accent)",orange:"var(--rik-status-warn)",green:"var(--rik-status-success)",red:"var(--rik-status-danger)",purple:"var(--rik-decor-orchid)",lime:"var(--rik-decor-lime)",cyan:"var(--rik-decor-canary)"},z=class extends Xt{updated(){this.tone?this.style.setProperty("--_c",Kt[this.tone]??this.tone):this.style.removeProperty("--_c")}render(){return Ee`${this.num?Ee`<div class="num" part="num">${this.num}</div>`:""}
|
|
98
98
|
<slot name="claim"></slot>
|
|
99
99
|
<div class="body" part="body"><slot></slot></div>
|
|
100
|
-
`}};z.styles=Wt`:host{display:flex;flex-direction:column;gap:var(--deck-stat-gap,var(--rik-space-2));padding:var(--deck-stat-padding-y,var(--rik-space-4)) var(--deck-stat-padding-x,var(--rik-space-3));border-left:var(--deck-stat-border-width,4px) solid var(--_c,var(--deck-stat-color,var(--rik-accent)));min-width:0;font-family:var(--rik-font-sans)}.num{font-family:var(--rik-font-display,var(--rik-font-sans));font-size:var(--deck-stat-num-size,clamp(3.5rem,7vw,6rem));font-weight:var(--deck-stat-num-weight,900);line-height:0.9;color:var(--_c,var(--deck-stat-color,var(--rik-accent)));letter-spacing:-0.04em}::slotted([slot="claim"]){font-family:var(--rik-font-display,var(--rik-font-sans));font-size:var(--rik-font-size-strong);font-weight:800;color:var(--deck-stat-claim-color,var(--rik-text-default));line-height:1.1;letter-spacing:-0.02em;margin:0}.body{font-size:var(--rik-font-size-body);color:var(--deck-stat-body-color,var(--rik-text-default--faint));line-height:1.45;margin-top:var(--rik-space-2)}::slotted(strong){color:var(--rik-text-default);font-weight:700}::slotted(code){font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono-sm);background:var(--rik-surface-tint);color:var(--rik-text-default);padding:2px 6px;border-radius:var(--rik-radius-sm)}`,t([Se({type:String})],z.prototype,"num",2),t([Se({type:String})],z.prototype,"tone",2),z=t([Gt("deck-stat")],z);import{LitElement as Le,html as Te,css as ze}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as Me,property as ne}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var W=class extends Le{render(){return Te`<slot></slot>`}};W.styles=ze`:host{display:flex;flex-direction:column;gap:var(--rik-space-2)}`,W=t([Me("deck-metric-list")],W);var L=class extends Le{constructor(){super(...arguments);this.mono=!1}render(){return Te`<span class="label ${this.mono?"mono":""}"><slot></slot></span> <span class="value" data-severity="${this.severity??""}">${this.value}</span>`}};L.styles=ze`:host{display:flex;justify-content:space-between;align-items:center;background:var(--deck-metric-bg,var(--rik-surface-raised--strong));border:1px solid var(--deck-metric-border,var(--rik-border-default));border-radius:var(--deck-metric-radius,var(--rik-radius-md));padding:var(--deck-metric-padding-y,var(--rik-space-2)) var(--deck-metric-padding-x,var(--rik-space-4));font-family:var(--rik-font-sans);font-size:var(--rik-font-size-body);color:var(--deck-metric-text,var(--rik-text-default--muted));box-shadow:var(--deck-metric-shadow,var(--rik-elevation-2))}.label{font-family:inherit}.label.mono{font-family:var(--rik-font-mono);font-size:var(--rik-font-size-sm);color:var(--deck-metric-label-color,var(--rik-text-default--faint))}.value{font-weight:700}.value[data-severity="bad"]{color:var(--deck-metric-value-bad,var(--rik-status-danger))}.value[data-severity="warn"]{color:var(--deck-metric-value-warn,var(--rik-status-warn))}.value[data-severity="ok"]{color:var(--deck-metric-value-ok,var(--rik-status-success))}.value[data-severity="info"]{color:var(--deck-metric-value-info,var(--rik-status-info__text))}`,t([ne({type:String})],L.prototype,"value",2),t([ne({type:String})],L.prototype,"severity",2),t([ne({type:Boolean})],L.prototype,"mono",2),L=t([Me("deck-metric")],L);import{LitElement as le,html as de,css as ce}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as pe,property as Q}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var G=class extends le{render(){return de`<slot></slot>`}};G.styles=ce`:host{display:flex;flex-direction:column;gap:var(--rik-space-2xs)}`,G=t([pe("deck-tier-list")],G);var x=class extends le{constructor(){super(...arguments);this.hot=!1}render(){return de`<div class="head"> <span class="name">${this.name}</span> <span class="speed" data-severity="${this.severity??(this.hot?"hot":"")}">${this.speed}</span> </div> <div class="desc"><slot></slot></div>`}};x.styles=ce`:host{display:flex;flex-direction:column;gap:var(--rik-space-hair);background:var(--deck-tier-bg,var(--rik-surface-raised--strong));border:1px solid var(--deck-tier-border,var(--rik-border-default));border-radius:var(--deck-tier-radius,var(--rik-radius-md));padding:var(--deck-tier-padding-y,var(--rik-space-2)) var(--deck-tier-padding-x,var(--rik-space-4));box-shadow:var(--deck-tier-shadow,var(--rik-elevation-2));font-family:var(--rik-font-sans)}:host([hot]){border-color:var(--deck-tier-hot-border,var(--rik-status-info__border));background:var(--deck-tier-hot-bg,var(--rik-status-info__bg))}.head{display:flex;justify-content:space-between;align-items:baseline}.name{font:700 var(--rik-font-size-body)/1 var(--rik-font-mono);color:var(--deck-tier-name-color,var(--rik-text-default))}:host([hot]) .name{color:var(--deck-tier-hot-color,var(--rik-accent))}.speed{font:700 var(--rik-font-size-body)/1 var(--rik-font-mono)}.speed[data-severity="muted"]{color:var(--deck-tier-speed-muted,var(--rik-text-default--faint))}.speed[data-severity="warn"]{color:var(--deck-tier-speed-warn,var(--rik-status-warn))}.speed[data-severity="ok"]{color:var(--deck-tier-speed-ok,var(--rik-status-success))}:host([hot]) .speed{color:var(--deck-tier-hot-color,var(--rik-accent))}.desc{font-size:var(--rik-font-size-sm);color:var(--deck-tier-desc-color,var(--rik-text-default--faint));line-height:1.4}`,t([Q({type:String})],x.prototype,"name",2),t([Q({type:String})],x.prototype,"speed",2),t([Q({type:String})],x.prototype,"severity",2),t([Q({type:Boolean,reflect:!0})],x.prototype,"hot",2),x=t([pe("deck-tier")],x);var
|
|
100
|
+
`}};z.styles=Wt`:host{display:flex;flex-direction:column;gap:var(--deck-stat-gap,var(--rik-space-2));padding:var(--deck-stat-padding-y,var(--rik-space-4)) var(--deck-stat-padding-x,var(--rik-space-3));border-left:var(--deck-stat-border-width,4px) solid var(--_c,var(--deck-stat-color,var(--rik-accent)));min-width:0;font-family:var(--rik-font-sans)}.num{font-family:var(--rik-font-display,var(--rik-font-sans));font-size:var(--deck-stat-num-size,clamp(3.5rem,7vw,6rem));font-weight:var(--deck-stat-num-weight,900);line-height:0.9;color:var(--_c,var(--deck-stat-color,var(--rik-accent)));letter-spacing:-0.04em}::slotted([slot="claim"]){font-family:var(--rik-font-display,var(--rik-font-sans));font-size:var(--rik-font-size-strong);font-weight:800;color:var(--deck-stat-claim-color,var(--rik-text-default));line-height:1.1;letter-spacing:-0.02em;margin:0}.body{font-size:var(--rik-font-size-body);color:var(--deck-stat-body-color,var(--rik-text-default--faint));line-height:1.45;margin-top:var(--rik-space-2)}::slotted(strong){color:var(--rik-text-default);font-weight:700}::slotted(code){font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono-sm);background:var(--rik-surface-tint);color:var(--rik-text-default);padding:2px 6px;border-radius:var(--rik-radius-sm)}`,t([Se({type:String})],z.prototype,"num",2),t([Se({type:String})],z.prototype,"tone",2),z=t([Gt("deck-stat")],z);import{LitElement as Le,html as Te,css as ze}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as Me,property as ne}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var W=class extends Le{render(){return Te`<slot></slot>`}};W.styles=ze`:host{display:flex;flex-direction:column;gap:var(--rik-space-2)}`,W=t([Me("deck-metric-list")],W);var L=class extends Le{constructor(){super(...arguments);this.mono=!1}render(){return Te`<span class="label ${this.mono?"mono":""}"><slot></slot></span> <span class="value" data-severity="${this.severity??""}">${this.value}</span>`}};L.styles=ze`:host{display:flex;justify-content:space-between;align-items:center;background:var(--deck-metric-bg,var(--rik-surface-raised--strong));border:1px solid var(--deck-metric-border,var(--rik-border-default));border-radius:var(--deck-metric-radius,var(--rik-radius-md));padding:var(--deck-metric-padding-y,var(--rik-space-2)) var(--deck-metric-padding-x,var(--rik-space-4));font-family:var(--rik-font-sans);font-size:var(--rik-font-size-body);color:var(--deck-metric-text,var(--rik-text-default--muted));box-shadow:var(--deck-metric-shadow,var(--rik-elevation-2))}.label{font-family:inherit}.label.mono{font-family:var(--rik-font-mono);font-size:var(--rik-font-size-sm);color:var(--deck-metric-label-color,var(--rik-text-default--faint))}.value{font-weight:700}.value[data-severity="bad"]{color:var(--deck-metric-value-bad,var(--rik-status-danger))}.value[data-severity="warn"]{color:var(--deck-metric-value-warn,var(--rik-status-warn))}.value[data-severity="ok"]{color:var(--deck-metric-value-ok,var(--rik-status-success))}.value[data-severity="info"]{color:var(--deck-metric-value-info,var(--rik-status-info__text))}`,t([ne({type:String})],L.prototype,"value",2),t([ne({type:String})],L.prototype,"severity",2),t([ne({type:Boolean})],L.prototype,"mono",2),L=t([Me("deck-metric")],L);import{LitElement as le,html as de,css as ce}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as pe,property as Q}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var G=class extends le{render(){return de`<slot></slot>`}};G.styles=ce`:host{display:flex;flex-direction:column;gap:var(--rik-space-2xs)}`,G=t([pe("deck-tier-list")],G);var x=class extends le{constructor(){super(...arguments);this.hot=!1}render(){return de`<div class="head"> <span class="name">${this.name}</span> <span class="speed" data-severity="${this.severity??(this.hot?"hot":"")}">${this.speed}</span> </div> <div class="desc"><slot></slot></div>`}};x.styles=ce`:host{display:flex;flex-direction:column;gap:var(--rik-space-hair);background:var(--deck-tier-bg,var(--rik-surface-raised--strong));border:1px solid var(--deck-tier-border,var(--rik-border-default));border-radius:var(--deck-tier-radius,var(--rik-radius-md));padding:var(--deck-tier-padding-y,var(--rik-space-2)) var(--deck-tier-padding-x,var(--rik-space-4));box-shadow:var(--deck-tier-shadow,var(--rik-elevation-2));font-family:var(--rik-font-sans)}:host([hot]){border-color:var(--deck-tier-hot-border,var(--rik-status-info__border));background:var(--deck-tier-hot-bg,var(--rik-status-info__bg))}.head{display:flex;justify-content:space-between;align-items:baseline}.name{font:700 var(--rik-font-size-body)/1 var(--rik-font-mono);color:var(--deck-tier-name-color,var(--rik-text-default))}:host([hot]) .name{color:var(--deck-tier-hot-color,var(--rik-accent))}.speed{font:700 var(--rik-font-size-body)/1 var(--rik-font-mono)}.speed[data-severity="muted"]{color:var(--deck-tier-speed-muted,var(--rik-text-default--faint))}.speed[data-severity="warn"]{color:var(--deck-tier-speed-warn,var(--rik-status-warn))}.speed[data-severity="ok"]{color:var(--deck-tier-speed-ok,var(--rik-status-success))}:host([hot]) .speed{color:var(--deck-tier-hot-color,var(--rik-accent))}.desc{font-size:var(--rik-font-size-sm);color:var(--deck-tier-desc-color,var(--rik-text-default--faint));line-height:1.4}`,t([Q({type:String})],x.prototype,"name",2),t([Q({type:String})],x.prototype,"speed",2),t([Q({type:String})],x.prototype,"severity",2),t([Q({type:Boolean,reflect:!0})],x.prototype,"hot",2),x=t([pe("deck-tier")],x);var K=class extends le{render(){return de`<slot></slot>`}};K.styles=ce`:host{display:block;text-align:center;color:var(--rik-text-default--faint);opacity:var(--rik-opacity-soft);font-size:var(--rik-font-size-xs);padding:2px 0}`,K=t([pe("deck-tier-arrow")],K);import{LitElement as $e,html as ve,css as Ne}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as Ie,property as He}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var J=class extends $e{render(){return ve`<slot></slot>`}};J.styles=Ne`:host{display:flex;flex-direction:column;gap:var(--rik-space-2xs)}`,J=t([Ie("deck-step-list")],J);var M=class extends $e{render(){return ve`<span class="step-num">${this.n}</span> <span class="label"><slot></slot></span> ${this.note?ve`<span class="chip">${this.note}</span>`:""}
|
|
101
101
|
`}};M.styles=Ne`:host{display:flex;align-items:center;gap:var(--rik-space-3);background:var(--deck-step-bg,var(--rik-surface-raised--strong));border:1px solid var(--deck-step-border,var(--rik-border-default));border-radius:var(--deck-step-radius,var(--rik-radius-md));padding:var(--deck-step-padding-y,var(--rik-space-2xs)) var(--deck-step-padding-x,var(--rik-space-3));box-shadow:var(--deck-step-shadow,var(--rik-elevation-2));font-family:var(--rik-font-sans);font-size:var(--rik-font-size-body)}.step-num{flex:0 0 auto;width:var(--deck-step-num-size,var(--rik-icon-sm));height:var(--deck-step-num-size,var(--rik-icon-sm));display:inline-flex;align-items:center;justify-content:center;background:var(--deck-step-num-bg,var(--rik-accent));color:var(--deck-step-num-color,var(--rik-accent__on,var(--rik-surface-inverse)));border-radius:50%;font:700 var(--rik-font-size-xs)/1 var(--rik-font-sans)}.label{flex:1;font-family:var(--rik-font-mono);font-weight:600;color:var(--deck-step-label-color,var(--rik-text-default))}.chip{flex:0 0 auto;display:inline-block;padding:2px var(--rik-space-2);background:var(--deck-step-chip-bg,var(--rik-surface-tint));color:var(--deck-step-chip-color,var(--rik-text-default--faint));border-radius:var(--rik-radius-pill);font:600 var(--rik-font-size-sm)/1.4 var(--rik-font-sans)}`,t([He({type:String})],M.prototype,"n",2),t([He({type:String})],M.prototype,"note",2),M=t([Ie("deck-step")],M);import{LitElement as me,html as $,css as fe}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as he,property as N}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var R=class extends me{render(){return $`<slot></slot>`}};R.styles=fe`:host{display:inline-flex;align-items:center;justify-content:center;background:var(--deck-kbd-bg,var(--rik-surface-raised--strong));border:1px solid var(--deck-kbd-border,var(--rik-border-default));border-bottom:3px solid var(--rik-surface-tint--strong,rgba(0,0,0,0.10));border-radius:var(--deck-kbd-radius,5px);padding:var(--deck-kbd-padding-y,3px) var(--deck-kbd-padding-x,8px);font:700 0.92rem/1 var(--rik-font-mono);color:var(--deck-kbd-color,var(--rik-text-default));min-width:22px;text-align:center;box-shadow:0 1px 0 rgba(255,255,255,0.5) inset}:host([tone="accent"]){background:var(--deck-kbd-accent-bg,var(--rik-accent));color:var(--deck-kbd-color,var(--rik-accent__on,var(--rik-surface-inverse)));border-color:rgba(0,0,0,0.15)}:host([tone="ok"]){background:var(--deck-kbd-ok-bg,var(--rik-status-success));color:var(--deck-kbd-color,var(--rik-surface-inverse));border-color:rgba(0,0,0,0.15)}`,t([N({type:String})],R.prototype,"tone",2),R=t([he("deck-kbd")],R);var w=class extends me{render(){let a=(this.keys??"").trim().split(/\s+/).filter(Boolean);return $`<span class="keys" part="keys"> ${a.map(e=>$`<span class="k">${e}</span>`)}
|
|
102
102
|
</span>
|
|
103
103
|
<div class="body" part="body">
|
|
104
104
|
${this.label?$`<div class="label">${this.label}</div>`:""}
|
|
105
105
|
${this.note?$`<div class="note">${this.note}</div>`:$`<div class="note"><slot></slot></div>`}
|
|
106
106
|
</div>
|
|
107
|
-
`}};w.styles=fe`:host{display:flex;align-items:center;gap:var(--rik-space-3);padding:var(--rik-space-2) 0;font-family:var(--rik-font-sans)}.keys{display:inline-flex;gap:4px;flex-shrink:0}.keys deck-kbd,.keys .k{display:inline-flex;align-items:center;justify-content:center;background:var(--rik-surface-raised--strong);border:1px solid var(--rik-border-default);border-bottom:3px solid rgba(0,0,0,0.10);border-radius:5px;padding:3px 8px;font:700 0.92rem/1 var(--rik-font-mono);color:var(--rik-text-default);min-width:22px;text-align:center}.body{flex:1;min-width:0}.label{font:700 var(--rik-font-size-body)/1.2 var(--rik-font-sans);color:var(--rik-text-default)}.note{font:400 var(--rik-font-size-sm)/1.4 var(--rik-font-sans);color:var(--rik-text-default--faint);margin-top:2px}:host([tone="accent"]) .keys .k{background:var(--rik-accent);color:var(--rik-surface-inverse);border-color:rgba(0,0,0,0.15)}:host([tone="ok"]) .keys .k{background:var(--rik-status-success);color:var(--rik-surface-inverse);border-color:rgba(0,0,0,0.15)}`,t([N({type:String})],w.prototype,"keys",2),t([N({type:String})],w.prototype,"label",2),t([N({type:String})],w.prototype,"note",2),t([N({type:String})],w.prototype,"tone",2),w=t([he("deck-shortcut")],w);var H=class extends me{updated(){if(this.colGap){let a=parseInt(this.colGap,10),e=!Number.isNaN(a)&&a>=1&&a<=6?`var(--sp-${a})`:this.colGap;this.style.setProperty("--_col-gap",e)}}render(){return $`<slot></slot>`}};H.styles=fe`:host{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--_col-gap,var(--rik-space-5));font-family:var(--rik-font-sans)}:host([cols="1"]){grid-template-columns:1fr}::slotted(deck-shortcut){border-bottom:1px solid var(--rik-border-default)}`,t([N({type:String})],H.prototype,"cols",2),t([N({type:String,attribute:"col-gap"})],H.prototype,"colGap",2),H=t([he("deck-shortcut-list")],H);import{LitElement as Jt,html as Kt,css as Zt}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as Vt,property as D}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var Qt={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around"},Dt={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch"},_=class extends Jt{updated(){if(this.gap){let a=parseInt(this.gap,10);!Number.isNaN(a)&&a>=1&&a<=6?this.style.setProperty("--_gap",`var(--rik-space-${a})`):this.style.setProperty("--_gap",this.gap)}else this.style.removeProperty("--_gap");this.style.setProperty("--_dir",this.direction==="row"?"row":"column"),this.align&&this.style.setProperty("--_align",Dt[this.align]??this.align),this.justify&&this.style.setProperty("--_justify",Qt[this.justify]??this.justify)}render(){return Kt`<slot></slot>`}};_.styles=Zt`:host{display:flex;flex-direction:var(--_dir,column);gap:var(--_gap,var(--deck-stack-gap,var(--rik-space-3)));align-items:var(--_align,stretch);justify-content:var(--_justify,flex-start);min-width:0;min-height:0}:host([fill]){flex:1 1 auto}`,t([D({type:String})],_.prototype,"gap",2),t([D({type:String})],_.prototype,"direction",2),t([D({type:String})],_.prototype,"align",2),t([D({type:String})],_.prototype,"justify",2),_=t([Vt("deck-stack")],_);import{LitElement as er,html as tr,css as rr}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as ir,property as K}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var Ce={start:"start",center:"center",end:"end",stretch:"stretch"};function Pe(s){if(!s)return null;let a=parseInt(s,10);return!Number.isNaN(a)&&String(a)===s.trim()&&a>=1&&a<=12?`repeat(${a}, minmax(0, 1fr))`:s}function ar(s){if(!s)return null;let a=parseInt(s,10);return!Number.isNaN(a)&&a>=1&&a<=6?`var(--rik-space-${a})`:s}var g=class extends er{updated(){let a=Pe(this.cols),e=Pe(this.rows),r=ar(this.gap);a&&this.style.setProperty("--_cols",a),e&&this.style.setProperty("--_rows",e),r&&this.style.setProperty("--_gap",r),this.align&&this.style.setProperty("--_align",Ce[this.align]??this.align),this.justify&&this.style.setProperty("--_justify",Ce[this.justify]??this.justify)}render(){return tr`<slot></slot>`}};g.styles=rr`:host{display:grid;grid-template-columns:var(--_cols,1fr);grid-template-rows:var(--_rows,auto);gap:var(--_gap,var(--deck-grid-gap,var(--rik-space-3)));align-items:var(--_align,stretch);justify-items:var(--_justify,stretch);min-width:0;min-height:0}:host([fill]){flex:1 1 auto;height:100%}`,t([K({type:String})],g.prototype,"cols",2),t([K({type:String})],g.prototype,"rows",2),t([K({type:String})],g.prototype,"gap",2),t([K({type:String})],g.prototype,"align",2),t([K({type:String})],g.prototype,"justify",2),g=t([ir("deck-grid")],g);import{LitElement as sr,html as or,css as nr}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as lr,property as dr}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var q=class extends sr{render(){return or`<slot></slot>`}};q.styles=nr`:host{display:inline-block;padding:var(--deck-badge-padding-y,var(--rik-space-1)) var(--deck-badge-padding-x,var(--rik-space-3));margin-bottom:var(--rik-space-2);font:700 var(--rik-font-size-xs)/1.2 var(--rik-font-sans);letter-spacing:0.1em;text-transform:uppercase;border-radius:var(--deck-badge-radius,var(--rik-radius-pill));background:var(--deck-badge-bg,var(--rik-surface-tint));color:var(--deck-badge-fg,var(--rik-text-default--faint));border:1px solid var(--deck-badge-border,var(--rik-border-default))}:host([type="bad"]){--deck-badge-bg:var(--rik-status-danger__bg);--deck-badge-fg:var(--rik-status-danger);--deck-badge-border:var(--rik-status-danger__border)}:host([type="ok"]){--deck-badge-bg:var(--rik-status-success__bg);--deck-badge-fg:var(--rik-status-success);--deck-badge-border:var(--rik-status-success__border)}:host([type="info"]){--deck-badge-bg:var(--rik-status-info__bg--strong);--deck-badge-fg:var(--rik-status-info__text);--deck-badge-border:var(--rik-status-info__border)}:host([type="warn"]){--deck-badge-bg:var(--rik-status-warn__bg);--deck-badge-fg:var(--rik-status-warn);--deck-badge-border:var(--rik-status-warn__border)}`,t([dr({type:String})],q.prototype,"type",2),q=t([lr("deck-badge")],q);import{LitElement as cr,html as pr,css as vr}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";var ue=class extends cr{static{this.styles=vr`:host{display:block;font:700 var(--deck-kicker-font-size,var(--rik-font-size-xs))/1.2 var(--rik-font-sans);letter-spacing:var(--deck-kicker-tracking,0.14em);text-transform:uppercase;color:var(--deck-kicker-color,var(--rik-text-default--faint));margin-bottom:var(--deck-kicker-margin,var(--rik-space-2))}:host([on-dark]){color:var(--deck-kicker-on-dark-color,var(--rik-text-inverse--faint))}`}render(){return pr`<slot></slot>`}};customElements.define("deck-kicker",ue);import{LitElement as mr,html as fr,css as hr}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as ur,property as ee}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var Ae={warn:"var(--rik-status-warn)",danger:"var(--rik-status-danger)",ok:"var(--rik-status-success)",info:"var(--rik-accent)",muted:"var(--rik-text-default--faint)",accent:"var(--rik-accent)"},je={lead:"var(--rik-font-size-lead)",big:"var(--rik-font-size-big)",mega:"var(--rik-font-size-mega)",stat:"var(--rik-font-size-stat)",display:"clamp(2.6rem, 6vw, 5rem)"},E=class extends mr{updated(){this.tone&&Ae[this.tone]?this.style.setProperty("--_color",Ae[this.tone]):this.style.removeProperty("--_color"),this.size&&je[this.size]?this.style.setProperty("--_size",je[this.size]):this.style.removeProperty("--_size")}render(){return fr`<slot></slot>`}};E.styles=hr`:host{display:block;margin:0;font-family:var(--rik-font-display,var(--rik-font-sans));font-weight:900;line-height:1.1;letter-spacing:-0.02em;font-size:var(--deck-punch-size,var(--_size,var(--rik-font-size-lead)));color:var(--deck-punch-color,var(--_color,inherit))}:host([weight="700"]){font-weight:700}:host([weight="800"]){font-weight:800}:host([align="center"]){text-align:center}:host([align="right"]){text-align:right}`,t([ee({type:String})],E.prototype,"tone",2),t([ee({type:String})],E.prototype,"size",2),t([ee({type:String,reflect:!0})],E.prototype,"weight",2),t([ee({type:String,reflect:!0})],E.prototype,"align",2),E=t([ur("deck-punch")],E);import{LitElement as gr,html as kr,css as br}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as yr,property as te,state as xr}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";function wr(s,a){let e=s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),r=[],i=(o,h)=>{let b="P"+r.length+"E";return r.push('<span class="'+o+'">'+h+"</span>"),b};return a==="html"||a==="xml"||a==="svg"?(e=e.replace(/(<!--[\s\S]*?-->)/g,o=>i("cmt",o)),e=e.replace(/(<!doctype[^&]*>)/gi,o=>i("cmt",o)),e=e.replace(/("[^"]*"|'[^']*')/g,o=>i("str",o)),e=e.replace(/(<\/?)([a-zA-Z][a-zA-Z0-9:-]*)/g,(o,h,b)=>h+i("kw",b)),e=e.replace(/\b([a-zA-Z][a-zA-Z0-9-]*)(?==)/g,o=>i("prop",o))):a==="css"||a==="scss"||a==="less"?(e=e.replace(/(\/\*[\s\S]*?\*\/)/g,o=>i("cmt",o)),e=e.replace(/("[^"]*"|'[^']*')/g,o=>i("str",o)),e=e.replace(/([a-zA-Z-]+)(?=\s*:)/g,o=>i("prop",o)),e=e.replace(/(#[0-9a-fA-F]{3,8})\b/g,o=>i("num",o)),e=e.replace(/\b(\d+(?:\.\d+)?)(px|rem|em|%|vh|vw|vmin|vmax|s|ms|deg)?/g,(o,h,b)=>i("num",h+(b??"")))):(e=e.replace(/(\/\/[^\n]*)/g,o=>i("cmt",o)),e=e.replace(/(['"`])((?:\\.|(?!\1)[^\\])*)\1/g,o=>i("str",o)),e=e.replace(/\b(const|let|var|function|return|if|else|for|while|class|extends|new|export|import|from|as|await|async|of|in|typeof|instanceof|true|false|null|undefined)\b/g,o=>i("kw",o)),e=e.replace(/\b(\d+(?:\.\d+)?)\b/g,o=>i("num",o))),e=e.replace(/P(\d+)E/g,(o,h)=>r[+h]??""),e}var k=class extends gr{constructor(){super(...arguments);this.lang="";this.hero=!1;this.nested=!1;this._html="";this._groups=null}connectedCallback(){super.connectedCallback(),this._highlight();try{this._groups=JSON.parse(this.getAttribute("step-groups")??"null")}catch{this._groups=null}}_highlight(){let r=(this.textContent??"").split(`
|
|
108
|
-
`);for(;r.length&&!r[0].trim();)r.shift();for(;r.length&&!r[r.length-1].trim();)r.pop();let i=r.filter(n=>n.trim().length>0).reduce((n,o)=>Math.min(n,o.match(/^ */)?.[0].length??0),1/0),l=i===1/0?r:r.map(n=>n.slice(i));this._html=l.map((n,o)=>'<span class="line" data-line="'+(o+1)+'">'+wr(n||" ",this.lang)+"</span>").join("")}applyStep(e){if(!this._groups)return;let r=this.shadowRoot?.querySelectorAll(".line");if(r)if(e===0)r.forEach(i=>i.classList.remove("dim","lit"));else{let i=this._groups[Math.min(e-1,this._groups.length-1)]??[];r.forEach(l=>{let n=parseInt(l.dataset.line??"0",10);l.classList.toggle("lit",i.includes(n)),l.classList.toggle("dim",!i.includes(n))})}}render(){return kr`<pre><code .innerHTML="${this._html}"></code></pre>`}};k.styles=br`:host{display:block;background:var(--deck-code-bg,var(--rik-code__bg));border:1px solid var(--deck-code-border,var(--rik-code__border));border-radius:var(--deck-code-radius,var(--rik-radius-md));padding:var(--deck-code-padding-y,var(--rik-space-3)) var(--deck-code-padding-x,var(--rik-space-4));font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono);line-height:1.7;color:var(--deck-code-text,var(--rik-code__text));box-shadow:var(--rik-elevation-2);overflow:auto;white-space:pre}:host([hero]){display:flex;align-items:safe center;padding:var(--deck-code-padding-y,var(--rik-space-4)) var(--deck-code-padding-x,var(--rik-space-5))}:host([nested]){box-shadow:none;border-radius:var(--rik-radius-sm);padding:var(--deck-code-padding-y,var(--rik-space-2)) var(--deck-code-padding-x,var(--rik-space-3))}pre{margin:0;font:inherit;color:inherit}code{display:block;width:100%;font:inherit;color:inherit}.line{transition:opacity 0.25s ease;display:block}.line.dim{opacity:0.25}.line.lit{opacity:1}.kw{color:var(--deck-code-syntax-kw,var(--rik-code__syntax-keyword))}.fn{color:var(--deck-code-syntax-fn,var(--rik-code__syntax-function))}.str{color:var(--deck-code-syntax-str,var(--rik-code__syntax-string))}.num{color:var(--deck-code-syntax-num,var(--rik-code__syntax-number))}.cmt{color:var(--deck-code-syntax-cmt,var(--rik-code__syntax-comment));font-style:italic}.ty{color:var(--deck-code-syntax-ty,var(--rik-code__syntax-type))}.prop{color:var(--deck-code-syntax-prop,var(--rik-code__syntax-property))}`,t([te({type:String})],k.prototype,"lang",2),t([te({type:Boolean,reflect:!0})],k.prototype,"hero",2),t([te({type:Boolean,reflect:!0})],k.prototype,"nested",2),t([te({type:String,attribute:"step-groups"})],k.prototype,"stepGroups",2),t([xr()],k.prototype,"_html",2),k=t([yr("deck-code")],k);
|
|
107
|
+
`}};w.styles=fe`:host{display:flex;align-items:center;gap:var(--rik-space-3);padding:var(--rik-space-2) 0;font-family:var(--rik-font-sans)}.keys{display:inline-flex;gap:4px;flex-shrink:0}.keys deck-kbd,.keys .k{display:inline-flex;align-items:center;justify-content:center;background:var(--rik-surface-raised--strong);border:1px solid var(--rik-border-default);border-bottom:3px solid rgba(0,0,0,0.10);border-radius:5px;padding:3px 8px;font:700 0.92rem/1 var(--rik-font-mono);color:var(--rik-text-default);min-width:22px;text-align:center}.body{flex:1;min-width:0}.label{font:700 var(--rik-font-size-body)/1.2 var(--rik-font-sans);color:var(--rik-text-default)}.note{font:400 var(--rik-font-size-sm)/1.4 var(--rik-font-sans);color:var(--rik-text-default--faint);margin-top:2px}:host([tone="accent"]) .keys .k{background:var(--rik-accent);color:var(--rik-surface-inverse);border-color:rgba(0,0,0,0.15)}:host([tone="ok"]) .keys .k{background:var(--rik-status-success);color:var(--rik-surface-inverse);border-color:rgba(0,0,0,0.15)}`,t([N({type:String})],w.prototype,"keys",2),t([N({type:String})],w.prototype,"label",2),t([N({type:String})],w.prototype,"note",2),t([N({type:String})],w.prototype,"tone",2),w=t([he("deck-shortcut")],w);var H=class extends me{updated(){if(this.colGap){let a=parseInt(this.colGap,10),e=!Number.isNaN(a)&&a>=1&&a<=6?`var(--sp-${a})`:this.colGap;this.style.setProperty("--_col-gap",e)}}render(){return $`<slot></slot>`}};H.styles=fe`:host{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--_col-gap,var(--rik-space-5));font-family:var(--rik-font-sans)}:host([cols="1"]){grid-template-columns:1fr}::slotted(deck-shortcut){border-bottom:1px solid var(--rik-border-default)}`,t([N({type:String})],H.prototype,"cols",2),t([N({type:String,attribute:"col-gap"})],H.prototype,"colGap",2),H=t([he("deck-shortcut-list")],H);import{LitElement as Jt,html as Ft,css as Zt}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as Vt,property as D}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var Qt={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around"},Dt={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch"},_=class extends Jt{updated(){if(this.gap){let a=parseInt(this.gap,10);!Number.isNaN(a)&&a>=1&&a<=6?this.style.setProperty("--_gap",`var(--rik-space-${a})`):this.style.setProperty("--_gap",this.gap)}else this.style.removeProperty("--_gap");this.style.setProperty("--_dir",this.direction==="row"?"row":"column"),this.align&&this.style.setProperty("--_align",Dt[this.align]??this.align),this.justify&&this.style.setProperty("--_justify",Qt[this.justify]??this.justify)}render(){return Ft`<slot></slot>`}};_.styles=Zt`:host{display:flex;flex-direction:var(--_dir,column);gap:var(--_gap,var(--deck-stack-gap,var(--rik-space-3)));align-items:var(--_align,stretch);justify-content:var(--_justify,flex-start);min-width:0;min-height:0}:host([fill]){flex:1 1 auto}`,t([D({type:String})],_.prototype,"gap",2),t([D({type:String})],_.prototype,"direction",2),t([D({type:String})],_.prototype,"align",2),t([D({type:String})],_.prototype,"justify",2),_=t([Vt("deck-stack")],_);import{LitElement as er,html as tr,css as rr}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as ir,property as F}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var Ce={start:"start",center:"center",end:"end",stretch:"stretch"};function Pe(s){if(!s)return null;let a=parseInt(s,10);return!Number.isNaN(a)&&String(a)===s.trim()&&a>=1&&a<=12?`repeat(${a}, minmax(0, 1fr))`:s}function ar(s){if(!s)return null;let a=parseInt(s,10);return!Number.isNaN(a)&&a>=1&&a<=6?`var(--rik-space-${a})`:s}var g=class extends er{updated(){let a=Pe(this.cols),e=Pe(this.rows),r=ar(this.gap);a&&this.style.setProperty("--_cols",a),e&&this.style.setProperty("--_rows",e),r&&this.style.setProperty("--_gap",r),this.align&&this.style.setProperty("--_align",Ce[this.align]??this.align),this.justify&&this.style.setProperty("--_justify",Ce[this.justify]??this.justify)}render(){return tr`<slot></slot>`}};g.styles=rr`:host{display:grid;grid-template-columns:var(--_cols,1fr);grid-template-rows:var(--_rows,auto);gap:var(--_gap,var(--deck-grid-gap,var(--rik-space-3)));align-items:var(--_align,stretch);justify-items:var(--_justify,stretch);min-width:0;min-height:0}:host([fill]){flex:1 1 auto;height:100%}`,t([F({type:String})],g.prototype,"cols",2),t([F({type:String})],g.prototype,"rows",2),t([F({type:String})],g.prototype,"gap",2),t([F({type:String})],g.prototype,"align",2),t([F({type:String})],g.prototype,"justify",2),g=t([ir("deck-grid")],g);import{LitElement as sr,html as or,css as nr}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as lr,property as dr}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var U=class extends sr{render(){return or`<slot></slot>`}};U.styles=nr`:host{display:inline-block;padding:var(--deck-badge-padding-y,var(--rik-space-1)) var(--deck-badge-padding-x,var(--rik-space-3));margin-bottom:var(--rik-space-2);font:700 var(--rik-font-size-xs)/1.2 var(--rik-font-sans);letter-spacing:0.1em;text-transform:uppercase;border-radius:var(--deck-badge-radius,var(--rik-radius-pill));background:var(--deck-badge-bg,var(--rik-surface-tint));color:var(--deck-badge-fg,var(--rik-text-default--faint));border:1px solid var(--deck-badge-border,var(--rik-border-default))}:host([type="bad"]){--deck-badge-bg:var(--rik-status-danger__bg);--deck-badge-fg:var(--rik-status-danger);--deck-badge-border:var(--rik-status-danger__border)}:host([type="ok"]){--deck-badge-bg:var(--rik-status-success__bg);--deck-badge-fg:var(--rik-status-success);--deck-badge-border:var(--rik-status-success__border)}:host([type="info"]){--deck-badge-bg:var(--rik-status-info__bg--strong);--deck-badge-fg:var(--rik-status-info__text);--deck-badge-border:var(--rik-status-info__border)}:host([type="warn"]){--deck-badge-bg:var(--rik-status-warn__bg);--deck-badge-fg:var(--rik-status-warn);--deck-badge-border:var(--rik-status-warn__border)}`,t([dr({type:String})],U.prototype,"type",2),U=t([lr("deck-badge")],U);import{LitElement as cr,html as pr,css as vr}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";var ue=class extends cr{static{this.styles=vr`:host{display:block;font:700 var(--deck-kicker-font-size,var(--rik-font-size-xs))/1.2 var(--rik-font-sans);letter-spacing:var(--deck-kicker-tracking,0.14em);text-transform:uppercase;color:var(--deck-kicker-color,var(--rik-text-default--faint));margin-bottom:var(--deck-kicker-margin,var(--rik-space-2))}:host([on-dark]){color:var(--deck-kicker-on-dark-color,var(--rik-text-inverse--faint))}`}render(){return pr`<slot></slot>`}};customElements.define("deck-kicker",ue);import{LitElement as mr,html as fr,css as hr}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as ur,property as ee}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var Ae={warn:"var(--rik-status-warn)",danger:"var(--rik-status-danger)",ok:"var(--rik-status-success)",info:"var(--rik-accent)",muted:"var(--rik-text-default--faint)",accent:"var(--rik-accent)"},je={lead:"var(--rik-font-size-lead)",big:"var(--rik-font-size-big)",mega:"var(--rik-font-size-mega)",stat:"var(--rik-font-size-stat)",display:"clamp(2.6rem, 6vw, 5rem)"},E=class extends mr{updated(){this.tone&&Ae[this.tone]?this.style.setProperty("--_color",Ae[this.tone]):this.style.removeProperty("--_color"),this.size&&je[this.size]?this.style.setProperty("--_size",je[this.size]):this.style.removeProperty("--_size")}render(){return fr`<slot></slot>`}};E.styles=hr`:host{display:block;margin:0;font-family:var(--rik-font-display,var(--rik-font-sans));font-weight:900;line-height:1.1;letter-spacing:-0.02em;font-size:var(--deck-punch-size,var(--_size,var(--rik-font-size-lead)));color:var(--deck-punch-color,var(--_color,inherit))}:host([weight="700"]){font-weight:700}:host([weight="800"]){font-weight:800}:host([align="center"]){text-align:center}:host([align="right"]){text-align:right}`,t([ee({type:String})],E.prototype,"tone",2),t([ee({type:String})],E.prototype,"size",2),t([ee({type:String,reflect:!0})],E.prototype,"weight",2),t([ee({type:String,reflect:!0})],E.prototype,"align",2),E=t([ur("deck-punch")],E);import{LitElement as gr,html as kr,css as br}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as yr,property as te,state as xr}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";function wr(s,a){let e=s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),r=[],i=(o,h)=>{let b="P"+r.length+"E";return r.push('<span class="'+o+'">'+h+"</span>"),b};return a==="html"||a==="xml"||a==="svg"?(e=e.replace(/(<!--[\s\S]*?-->)/g,o=>i("cmt",o)),e=e.replace(/(<!doctype[^&]*>)/gi,o=>i("cmt",o)),e=e.replace(/("[^"]*"|'[^']*')/g,o=>i("str",o)),e=e.replace(/(<\/?)([a-zA-Z][a-zA-Z0-9:-]*)/g,(o,h,b)=>h+i("kw",b)),e=e.replace(/\b([a-zA-Z][a-zA-Z0-9-]*)(?==)/g,o=>i("prop",o))):a==="css"||a==="scss"||a==="less"?(e=e.replace(/(\/\*[\s\S]*?\*\/)/g,o=>i("cmt",o)),e=e.replace(/("[^"]*"|'[^']*')/g,o=>i("str",o)),e=e.replace(/([a-zA-Z-]+)(?=\s*:)/g,o=>i("prop",o)),e=e.replace(/(#[0-9a-fA-F]{3,8})\b/g,o=>i("num",o)),e=e.replace(/\b(\d+(?:\.\d+)?)(px|rem|em|%|vh|vw|vmin|vmax|s|ms|deg)?/g,(o,h,b)=>i("num",h+(b??"")))):(e=e.replace(/(\/\/[^\n]*)/g,o=>i("cmt",o)),e=e.replace(/(['"`])((?:\\.|(?!\1)[^\\])*)\1/g,o=>i("str",o)),e=e.replace(/\b(const|let|var|function|return|if|else|for|while|class|extends|new|export|import|from|as|await|async|of|in|typeof|instanceof|true|false|null|undefined)\b/g,o=>i("kw",o)),e=e.replace(/\b(\d+(?:\.\d+)?)\b/g,o=>i("num",o))),e=e.replace(/P(\d+)E/g,(o,h)=>r[+h]??""),e}var k=class extends gr{constructor(){super(...arguments);this.lang="";this.hero=!1;this.nested=!1;this._html="";this._groups=null}connectedCallback(){super.connectedCallback(),this._highlight();try{this._groups=JSON.parse(this.getAttribute("step-groups")??"null")}catch{this._groups=null}}_highlight(){let r=(this.textContent??"").split(`
|
|
108
|
+
`);for(;r.length&&!r[0].trim();)r.shift();for(;r.length&&!r[r.length-1].trim();)r.pop();let i=r.filter(n=>n.trim().length>0).reduce((n,o)=>Math.min(n,o.match(/^ */)?.[0].length??0),1/0),l=i===1/0?r:r.map(n=>n.slice(i));this._html=l.map((n,o)=>'<span class="line" data-line="'+(o+1)+'">'+wr(n||" ",this.lang)+"</span>").join("")}applyStep(e){if(!this._groups)return;let r=this.shadowRoot?.querySelectorAll(".line");if(r)if(e===0)r.forEach(i=>i.classList.remove("dim","lit"));else{let i=this._groups[Math.min(e-1,this._groups.length-1)]??[];r.forEach(l=>{let n=parseInt(l.dataset.line??"0",10);l.classList.toggle("lit",i.includes(n)),l.classList.toggle("dim",!i.includes(n))})}}render(){return kr`<pre><code .innerHTML="${this._html}"></code></pre>`}};k.styles=br`:host{display:block;background:var(--deck-code-bg,var(--rik-code__bg));border:1px solid var(--deck-code-border,var(--rik-code__border));border-radius:var(--deck-code-radius,var(--rik-radius-md));padding:var(--deck-code-padding-y,var(--rik-space-3)) var(--deck-code-padding-x,var(--rik-space-4));font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono);line-height:1.7;color:var(--deck-code-text,var(--rik-code__text));box-shadow:var(--rik-elevation-2);overflow:auto;white-space:pre}:host([hero]){display:flex;align-items:safe center;padding:var(--deck-code-padding-y,var(--rik-space-4)) var(--deck-code-padding-x,var(--rik-space-5))}:host([nested]){box-shadow:none;border-radius:var(--rik-radius-sm);padding:var(--deck-code-padding-y,var(--rik-space-2)) var(--deck-code-padding-x,var(--rik-space-3))}pre{margin:0;font:inherit;color:inherit}code{display:block;width:100%;font:inherit;color:inherit}.line{transition:opacity 0.25s ease;display:block}.line.dim{opacity:0.25}.line.lit{opacity:1}.kw{color:var(--deck-code-syntax-kw,var(--rik-code__syntax-keyword))}.fn{color:var(--deck-code-syntax-fn,var(--rik-code__syntax-function))}.str{color:var(--deck-code-syntax-str,var(--rik-code__syntax-string))}.num{color:var(--deck-code-syntax-num,var(--rik-code__syntax-number))}.cmt{color:var(--deck-code-syntax-cmt,var(--rik-code__syntax-comment));font-style:italic}.ty{color:var(--deck-code-syntax-ty,var(--rik-code__syntax-type))}.prop{color:var(--deck-code-syntax-prop,var(--rik-code__syntax-property))}`,t([te({type:String})],k.prototype,"lang",2),t([te({type:Boolean,reflect:!0})],k.prototype,"hero",2),t([te({type:Boolean,reflect:!0})],k.prototype,"nested",2),t([te({type:String,attribute:"step-groups"})],k.prototype,"stepGroups",2),t([xr()],k.prototype,"_html",2),k=t([yr("deck-code")],k);new URLSearchParams(location.search).has("live")&&import("./livereload.js");
|
package/dist/livereload.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=t=>new URL(t,import.meta.url).href,
|
|
1
|
+
var e=t=>new URL(t,import.meta.url).href,l=t=>{try{return new URL(t,location.href).origin===location.origin}catch{return!1}},p=Array.from(document.querySelectorAll('link[rel="stylesheet"]')).map(t=>t.href).filter(l),r=[...p,e("./index.js"),e("./deck-root.js"),e("./deck-cover.js"),e("./deck-section.js"),e("./deck-feature.js"),e("./deck-split.js"),e("./deck-feature-cards.js"),e("./deck-takeaway.js"),e("./deck-md.js"),e("./deck-code.js"),e("./deck-callout.js"),e("./deck-card.js"),e("./deck-mermaid.js"),e("./shared-styles.js"),e("./deck-stack.js"),e("./deck-grid.js"),e("./deck-punch.js"),location.pathname],a=new Map,o;function c(t,s="#0a0a0a"){o||(o=document.createElement("div"),o.style.cssText=`position:fixed;bottom:12px;left:12px;z-index:9999;padding:6px 12px;background:${s};color:#F7CB44;font:600 11px/1.4 monospace;border-radius:6px;letter-spacing:.08em;text-transform:uppercase;opacity:0;transition:opacity .2s;pointer-events:none;border:1px solid #F7CB44`,document.body.appendChild(o)),o.textContent=t,o.style.opacity="1",o._t&&clearTimeout(o._t),o._t=setTimeout(()=>{o&&(o.style.opacity="0")},1500)}async function d(t){try{let s=await fetch(t+"?_lr="+Date.now(),{method:"HEAD",cache:"no-store"}),n=s.headers.get("last-modified")??s.headers.get("etag")??s.headers.get("content-length");if(!n)return!1;let i=a.get(t);return a.set(t,n),i!==void 0&&i!==n}catch{return!1}}async function m(){for(;;){for(let t of r)if(await d(t)){c(`reload \xB7 ${t.split("/").pop()}`),await new Promise(s=>setTimeout(s,150)),location.reload();return}await new Promise(t=>setTimeout(t,800))}}(async()=>(await Promise.all(r.map(d)),c("livereload on"),m()))();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"click-stages.d.ts","sourceRoot":"","sources":["../../src/plugins/click-stages.ts"],"names":[],"mappings":"AA+FA,wBAAgB,kBAAkB,IAAI,IAAI,CAqCzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deck-presenter.d.ts","sourceRoot":"","sources":["../../src/runtime/deck-presenter.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"deck-presenter.d.ts","sourceRoot":"","sources":["../../src/runtime/deck-presenter.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAsN/C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAkDrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deck-root.d.ts","sourceRoot":"","sources":["../../src/runtime/deck-root.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAU5C,qBACa,QAAS,SAAQ,UAAU;IAMtC,OAAgB,MAAM,0BAoEpB;IAEO,OAAO,SAAK;IACZ,IAAI,SAAK;IAClB;gFAC4E;IACnE,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAAQ;IACJ,QAAQ,UAAS;IAC7D;;sEAEkE;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5E;;iEAE6D;IAClB,QAAQ,SAAK;IACxD;+EAC2E;IAC/B,IAAI,UAAS;IACzD;wEACoE;IACxB,KAAK,UAAS;IAG1D,OAAO,CAAC,MAAM,CAAe;IAE7B,OAAO,CAAC,QAAQ,CAAiB;IAEjC,OAAO,CAAC,iBAAiB,CAA6B;IAEtD,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,eAAe,CAAS;IAEhC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAAuB;IAErC,YAAY,IAAI,IAAI;IA4BpB,oBAAoB,IAAI,IAAI;IAarC,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,aAAa,CAAsE;IAC3F,OAAO,CAAC,aAAa,CAA+F;IAGpH,OAAO,CAAC,cAAc,CAQpB;IACF,OAAO,CAAC,YAAY,CAUlB;IAEF,oEAAoE;IACpE,OAAO,CAAC,cAAc;IActB,oFAAoF;IACpF,OAAO,CAAC,SAAS;IAIjB,mDAAmD;IACnD,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,OAAO,CAA0C;IAEzD,OAAO,CAAC,SAAS;IA8BjB,OAAO,CAAC,UAAU;
|
|
1
|
+
{"version":3,"file":"deck-root.d.ts","sourceRoot":"","sources":["../../src/runtime/deck-root.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAU5C,qBACa,QAAS,SAAQ,UAAU;IAMtC,OAAgB,MAAM,0BAoEpB;IAEO,OAAO,SAAK;IACZ,IAAI,SAAK;IAClB;gFAC4E;IACnE,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAAQ;IACJ,QAAQ,UAAS;IAC7D;;sEAEkE;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5E;;iEAE6D;IAClB,QAAQ,SAAK;IACxD;+EAC2E;IAC/B,IAAI,UAAS;IACzD;wEACoE;IACxB,KAAK,UAAS;IAG1D,OAAO,CAAC,MAAM,CAAe;IAE7B,OAAO,CAAC,QAAQ,CAAiB;IAEjC,OAAO,CAAC,iBAAiB,CAA6B;IAEtD,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,eAAe,CAAS;IAEhC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAAuB;IAErC,YAAY,IAAI,IAAI;IA4BpB,oBAAoB,IAAI,IAAI;IAarC,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,aAAa,CAAsE;IAC3F,OAAO,CAAC,aAAa,CAA+F;IAGpH,OAAO,CAAC,cAAc,CAQpB;IACF,OAAO,CAAC,YAAY,CAUlB;IAEF,oEAAoE;IACpE,OAAO,CAAC,cAAc;IActB,oFAAoF;IACpF,OAAO,CAAC,SAAS;IAIjB,mDAAmD;IACnD,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,OAAO,CAA0C;IAEzD,OAAO,CAAC,SAAS;IA8BjB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,MAAM,CAuEZ;IAEF,oEAAoE;YACtD,WAAW;IAKzB,gFAAgF;YAClE,gBAAgB;YAIhB,UAAU;IAKxB,wEAAwE;YAC1D,uBAAuB;IAkBrC,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,KAAK;IAqBb,OAAO,CAAC,KAAK;IASb,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,SAAS;IAiBR,OAAO,IAAI,IAAI;IAKf,MAAM,IAAI,OAAO;CAmB3B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
|
package/dist/standalone.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var
|
|
1
|
+
var ht=Object.defineProperty;var er=Object.getOwnPropertyDescriptor;var ke=(i,t)=>()=>(i&&(t=i(i=0)),t);var He=(i,t)=>{for(var e in t)ht(i,e,{get:t[e],enumerable:!0})};var o=(i,t,e,r)=>{for(var s=r>1?void 0:r?er(t,e):t,a=i.length-1,n;a>=0;a--)(n=i[a])&&(s=(r?n(t,e,s):n(s))||s);return r&&s&&ht(t,e,s),s};var rt={};He(rt,{closeHelp:()=>Mt,toggleHelp:()=>yr});function kr(i){let t=i.querySelector("#kb-overlay");if(t)return t;if(!i.querySelector(`style[${zt}]`)){let s=document.createElement("style");s.setAttribute(zt,"1"),s.textContent=fr,i.appendChild(s)}let e=document.createElement("div");return e.innerHTML=gr,t=e.firstElementChild,i.appendChild(t),t.addEventListener("click",()=>Mt(i.host)),t.querySelector(".kb-card")?.addEventListener("click",s=>s.stopPropagation()),t}function yr(i){if(!i.shadowRoot)return;kr(i.shadowRoot).classList.toggle("open")}function Mt(i){i.shadowRoot?.querySelector("#kb-overlay")?.classList.remove("open")}var zt,fr,gr,Re=ke(()=>{"use strict";zt="data-deck-help",fr=`
|
|
2
2
|
#kb-overlay {
|
|
3
3
|
position: fixed; inset: 0;
|
|
4
4
|
background: rgba(10,10,10,0.7);
|
|
@@ -61,7 +61,7 @@ var ct=Object.defineProperty;var Gt=Object.getOwnPropertyDescriptor;var Le=(s,t)
|
|
|
61
61
|
box-shadow: 0 1px 0 rgba(255,255,255,0.5) inset;
|
|
62
62
|
}
|
|
63
63
|
.kb-row .desc { color: var(--rik-text-default--muted); }
|
|
64
|
-
`,
|
|
64
|
+
`,gr=`
|
|
65
65
|
<div id="kb-overlay">
|
|
66
66
|
<div class="kb-card">
|
|
67
67
|
<div class="kb-card-header">
|
|
@@ -79,23 +79,26 @@ var ct=Object.defineProperty;var Gt=Object.getOwnPropertyDescriptor;var Le=(s,t)
|
|
|
79
79
|
<div class="kb-row"><span class="desc">Show this help</span><span class="keys"><kbd>?</kbd><kbd>H</kbd></span></div>
|
|
80
80
|
</div>
|
|
81
81
|
</div>
|
|
82
|
-
`});var
|
|
82
|
+
`});var Nt={};He(Nt,{installPresenter:()=>wr});function Pt(i){let t=Array.from(i.children).filter(v=>v.tagName.toLowerCase().startsWith("deck-")),e=t.findIndex(v=>v.hasAttribute("active")),r=t[e]??null,s=t[e+1]??null,n=(r?.querySelector("deck-notes")?.textContent??"").trim(),h=document.querySelector('link[rel="stylesheet"][href*="rikiki"], link[rel="stylesheet"][href*="tokens"], link[rel="stylesheet"][href*="theme"]')?.href??"";return{current:e+1,total:t.length,slideHtml:r?.outerHTML??"",nextHtml:s?.outerHTML??null,notes:n,themeHref:h,bundleHref:br}}function Ht(i){Ue&&Ue.postMessage({type:"state",state:Pt(i)})}function wr(i){if(de=de??new WeakSet,de.has(i)){j?.close(),j=null;return}de.add(i),Ue=new BroadcastChannel(Ct),i.addEventListener("slide-change",()=>Ht(i)),Ue.addEventListener("message",r=>{let s=r.data;s?.type==="key"&&s.key&&window.dispatchEvent(new KeyboardEvent("keydown",{key:s.key,shiftKey:!!s.shift,bubbles:!0})),s?.type==="hello"&&Ht(i)});let t=Pt(i);if(j=window.open("","rikiki-presenter","width=1280,height=800,popup=yes"),!j){console.warn("[rikiki/presenter] popup was blocked \xB7 allow popups for this site"),de.delete(i);return}j.document.open(),j.document.write(xr(t)),j.document.close();let e=setInterval(()=>{j&&j.closed&&(clearInterval(e),de?.delete(i),j=null)},1e3)}var Ct,br,j,Ue,de,xr,it=ke(()=>{"use strict";Ct="rik-presenter",br=new URL("./index.js",import.meta.url).href,j=null,Ue=null,de=null;xr=i=>`<!doctype html>
|
|
83
83
|
<html lang="en">
|
|
84
84
|
<head>
|
|
85
85
|
<meta charset="utf-8">
|
|
86
86
|
<title>Rikiki \xB7 presenter</title>
|
|
87
|
-
${
|
|
87
|
+
${i.themeHref?`<link rel="stylesheet" href="${i.themeHref}">`:""}
|
|
88
88
|
<style>
|
|
89
89
|
html, body { margin: 0; padding: 0; height: 100%; background: #0f1422; color: #fafafa; font-family: var(--rik-font-sans, system-ui); }
|
|
90
90
|
.grid {
|
|
91
91
|
display: grid;
|
|
92
92
|
grid-template-columns: 2fr 1fr;
|
|
93
93
|
grid-template-rows: 1fr auto;
|
|
94
|
-
gap: 16px;
|
|
95
|
-
padding: 16px;
|
|
94
|
+
gap: clamp(8px, 1.5vw, 16px);
|
|
95
|
+
padding: clamp(8px, 1.5vw, 16px);
|
|
96
96
|
height: 100vh;
|
|
97
97
|
box-sizing: border-box;
|
|
98
98
|
}
|
|
99
|
+
@media (max-width: 1000px) {
|
|
100
|
+
.grid { grid-template-columns: 1fr; grid-template-rows: 1fr 1fr auto auto; }
|
|
101
|
+
}
|
|
99
102
|
.panel {
|
|
100
103
|
background: #1e2840;
|
|
101
104
|
border-radius: 12px;
|
|
@@ -112,8 +115,8 @@ ${s.themeHref?`<link rel="stylesheet" href="${s.themeHref}">`:""}
|
|
|
112
115
|
color: rgba(232,228,240,0.45);
|
|
113
116
|
background: #161c2e;
|
|
114
117
|
}
|
|
115
|
-
.panel .body { flex: 1; min-height: 0; padding: 16px; overflow: hidden; }
|
|
116
|
-
.panel iframe { width: 100%; height: 100%; border: 0; background:
|
|
118
|
+
.panel .body { flex: 1; min-height: 0; padding: 16px; overflow: hidden; border-radius: 8px; }
|
|
119
|
+
.panel iframe { width: 100%; height: 100%; border: 0; background: #0f1422; display: block; }
|
|
117
120
|
#notes { font-size: 17px; line-height: 1.6; white-space: pre-wrap; padding: 20px; overflow: auto; color: #e8e4f0; }
|
|
118
121
|
#notes:empty::before { content: 'No notes for this slide.'; color: rgba(232,228,240,0.4); font-style: italic; }
|
|
119
122
|
#footer {
|
|
@@ -155,12 +158,12 @@ ${s.themeHref?`<link rel="stylesheet" href="${s.themeHref}">`:""}
|
|
|
155
158
|
</section>
|
|
156
159
|
<div id="footer">
|
|
157
160
|
<div><span id="timer">00:00</span> <button id="timer-toggle">Pause</button> <button id="timer-reset">Reset</button></div>
|
|
158
|
-
<div id="counter">${
|
|
161
|
+
<div id="counter">${i.current} / ${i.total}</div>
|
|
159
162
|
<div><span class="ghost">P to close</span></div>
|
|
160
163
|
</div>
|
|
161
164
|
</div>
|
|
162
165
|
<script>
|
|
163
|
-
const channel = new BroadcastChannel('${
|
|
166
|
+
const channel = new BroadcastChannel('${Ct}');
|
|
164
167
|
const current = document.getElementById('current-frame');
|
|
165
168
|
const next = document.getElementById('next-frame');
|
|
166
169
|
const notes = document.getElementById('notes');
|
|
@@ -191,15 +194,17 @@ ${s.themeHref?`<link rel="stylesheet" href="${s.themeHref}">`:""}
|
|
|
191
194
|
resetBtn.onclick = () => { startedAt = Date.now(); elapsed = 0; running = true; toggleBtn.textContent = 'Pause'; };
|
|
192
195
|
|
|
193
196
|
function wrapFrame(slideHtml) {
|
|
194
|
-
const themeHref
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
//
|
|
198
|
-
|
|
197
|
+
const themeHref = ${JSON.stringify(i.themeHref)};
|
|
198
|
+
const bundleHref = ${JSON.stringify(i.bundleHref)};
|
|
199
|
+
const themeLink = themeHref ? '<link rel="stylesheet" href="' + themeHref + '">' : '';
|
|
200
|
+
// Mark the cloned slide [active] so its real component CSS applies
|
|
201
|
+
// (:host([active]){display:flex}) instead of forcing display via !important.
|
|
202
|
+
const activeSlide = slideHtml.replace(/^(\\s*<deck-[a-z-]+)/i, '$1 active');
|
|
199
203
|
return '<!doctype html><html><head><meta charset="UTF-8">' + themeLink +
|
|
200
204
|
'<script type="module" src="' + bundleHref + '"><' + '/script>' +
|
|
201
|
-
'<style>html,body{margin:0;padding:0;height:100%;overflow:hidden}
|
|
202
|
-
'
|
|
205
|
+
'<style>html,body{margin:0;padding:0;height:100%;overflow:hidden;background:#0f1422}' +
|
|
206
|
+
'deck-root{position:absolute;inset:0}</style>' +
|
|
207
|
+
'</head><body><deck-root>' + activeSlide + '</deck-root></body></html>';
|
|
203
208
|
}
|
|
204
209
|
|
|
205
210
|
channel.onmessage = (e) => {
|
|
@@ -213,7 +218,7 @@ ${s.themeHref?`<link rel="stylesheet" href="${s.themeHref}">`:""}
|
|
|
213
218
|
};
|
|
214
219
|
|
|
215
220
|
// Initial paint from the seed state
|
|
216
|
-
const seed = ${JSON.stringify(
|
|
221
|
+
const seed = ${JSON.stringify(i)};
|
|
217
222
|
channel.postMessage({ type: 'state', state: seed });
|
|
218
223
|
|
|
219
224
|
// Forward keys back to the main window (so the speaker can drive nav from the laptop)
|
|
@@ -226,7 +231,7 @@ ${s.themeHref?`<link rel="stylesheet" href="${s.themeHref}">`:""}
|
|
|
226
231
|
channel.postMessage({ type: 'hello' });
|
|
227
232
|
<\/script>
|
|
228
233
|
</body>
|
|
229
|
-
</html>`});var
|
|
234
|
+
</html>`});var Rt={};He(Rt,{mountOverview:()=>Ar});function Er(i){if(i.querySelector(`style[${It}]`))return;let t=document.createElement("style");t.setAttribute(It,"1"),t.textContent=_r,i.appendChild(t)}function $r(i,t){if(i.querySelector(`link[${Ot}]`))return;let e=document.createElement("link");e.rel="stylesheet",e.setAttribute(Ot,"1"),e.href=new URL("../tokens.css",t).href,i.appendChild(e)}function jt(i){let e=i.slides[0]?.querySelector("h1");return e?Array.from(e.childNodes).map(r=>r.nodeName==="BR"?" ":r.textContent??"").join("").replace(/\s+/g," ").trim()||`Slide ${i.startIdx+1}`:`Slide ${i.startIdx+1}`}function Sr(i){return(i.textContent||"").replace(/\s+/g," ").trim().slice(0,400).toLowerCase()}function Ar(i,t){let e=i.shadowRoot;if(!e)return()=>{};Er(e),$r(e,import.meta.url);let r=e.querySelector("#overview-grid");r||(r=document.createElement("div"),r.id="overview-grid",e.appendChild(r)),r.innerHTML="";let s=t.slides.length,a=s>60,n=s>300?140:s>150?160:s>60?180:220;r.style.setProperty("--ov-cell-min",n+"px");let d=window.innerWidth,h=window.innerHeight;r.style.setProperty("--ov-thumb-w",`${d}px`),r.style.setProperty("--ov-thumb-h",`${h}px`),requestAnimationFrame(()=>{let k=r.querySelector(".ov-cell")?.clientWidth??n;r.style.setProperty("--overview-scale",String(k/d))});let v=document.createElement("div");v.className="ov-bar";let g=document.createElement("input");g.className="ov-search",g.type="search",g.placeholder=`Search ${s} slides \xB7 type to filter`,g.spellcheck=!1,v.appendChild(g);let f=document.createElement("span");f.className="ov-count",f.textContent=`${s} slides \xB7 ${t.chapters.length} chapters`,v.appendChild(f);let x=document.createElement("span");x.className="ov-hint",x.textContent="O \xB7 Esc \xB7 close",v.appendChild(x),r.appendChild(v);let S=document.createElement("div");S.className="ov-body"+(a?"":" compact"),r.appendChild(S);let L=a?document.createElement("aside"):null;L&&(L.className="ov-aside",S.appendChild(L));let Z=document.createElement("div");Z.className="ov-main"+(a?"":" ov-path"),S.appendChild(Z);let Be=[],lt=[],dt=new WeakMap,qe=new IntersectionObserver(k=>{for(let A of k){if(!A.isIntersecting)continue;let b=A.target;if(b.dataset.loaded)continue;let H=dt.get(b);if(!H)continue;let y=document.createElement("div");y.className="ov-thumb";let I=H.cloneNode(!0);I.setAttribute("active",""),y.appendChild(I),b.insertBefore(y,b.firstChild),b.dataset.loaded="1",qe.unobserve(b)}},{root:null,rootMargin:"300px 0px",threshold:0});t.chapters.forEach((k,A)=>{let b=document.createElement("section");if(b.className="ov-chapter",b.id=`ov-chapter-${A}`,a){let y=document.createElement("header");y.className="ov-chapter-head";let I=document.createElement("span");I.className="ov-chapter-num",I.textContent=String(A+1).padStart(2,"0"),y.appendChild(I);let C=document.createElement("span");C.className="ov-chapter-title",C.textContent=jt(k),y.appendChild(C);let w=document.createElement("span");w.className="ov-chapter-count",w.textContent=`${k.slides.length} slide${k.slides.length>1?"s":""}`,y.appendChild(w),b.appendChild(y)}let H=document.createElement("div");if(H.className="ov-row",k.slides.forEach((y,I)=>{if(!a&&I>0){let pt=document.createElement("div");pt.className="ov-connector",H.appendChild(pt)}let C=k.startIdx+I,w=document.createElement("div");w.className="ov-cell",w.dataset.idx=String(C),w.dataset.search=Sr(y),C===t.currentIdx&&(w.dataset.current="1"),dt.set(w,y),qe.observe(w);let Q=document.createElement("span");Q.className="ov-cell-label",Q.textContent=String(C+1),w.appendChild(Q),w.addEventListener("click",()=>t.onPick(C)),H.appendChild(w)}),b.appendChild(H),Z.appendChild(b),Be.push(b),L){let y=document.createElement("button");y.type="button",y.className="ov-aside-item",t.currentIdx>=k.startIdx&&t.currentIdx<k.startIdx+k.slides.length&&(y.dataset.active="1");let C=document.createElement("span");C.className="ov-aside-num",C.textContent=String(A+1).padStart(2,"0"),y.appendChild(C);let w=document.createElement("span");w.className="ov-aside-text",w.textContent=jt(k);let Q=document.createElement("div");Q.className="ov-aside-count",Q.textContent=`${k.slides.length} slide${k.slides.length>1?"s":""}`,w.appendChild(Q),y.appendChild(w),y.addEventListener("click",()=>{b.scrollIntoView({behavior:"smooth",block:"start"})}),L.appendChild(y),lt.push(y)}});let Ye=null;L&&(Ye=new IntersectionObserver(k=>{let A=k.filter(b=>b.isIntersecting).sort((b,H)=>b.boundingClientRect.top-H.boundingClientRect.top);if(A.length>0){let b=Be.indexOf(A[0].target);b>=0&<.forEach((H,y)=>{y===b?H.dataset.active="1":delete H.dataset.active})}},{root:Z,rootMargin:"0px 0px -70% 0px",threshold:0}),Be.forEach(k=>Ye.observe(k)));let ct=r.querySelectorAll(".ov-cell");return g.addEventListener("input",()=>{let k=g.value.trim().toLowerCase();if(!k){ct.forEach(A=>delete A.dataset.filteredOut);return}ct.forEach(A=>{(A.dataset.search||"").includes(k)?delete A.dataset.filteredOut:A.dataset.filteredOut="1"})}),requestAnimationFrame(()=>{let k=r.querySelector(".ov-cell[data-current]");k&&k.scrollIntoView({block:"center"})}),()=>{Ye?.disconnect(),qe.disconnect(),r&&(r.innerHTML="")}}var It,Ot,_r,st=ke(()=>{"use strict";It="data-deck-overview",Ot="data-overview-tokens",_r=`
|
|
230
235
|
:host([overview]) ::slotted(*) { display: none !important; }
|
|
231
236
|
:host([overview]) #overview-grid {
|
|
232
237
|
position: fixed; inset: 0;
|
|
@@ -427,7 +432,7 @@ ${s.themeHref?`<link rel="stylesheet" href="${s.themeHref}">`:""}
|
|
|
427
432
|
pointer-events: none;
|
|
428
433
|
}
|
|
429
434
|
:host(:not([overview])) #overview-grid { display: none; }
|
|
430
|
-
`});var
|
|
435
|
+
`});var Bt={};He(Bt,{installTransitions:()=>Mr});function Mr(i){if(i.__rkTransitions)return i.__rkTransitions;let t=i.shadowRoot;if(!t)return()=>{};let e=document.createElement("style");e.textContent=Lr,e.setAttribute("data-rik-transitions",""),t.appendChild(e);function r(d,h){if(!h)return 0;let v=d.compareDocumentPosition(h);return v&Node.DOCUMENT_POSITION_PRECEDING?1:v&Node.DOCUMENT_POSITION_FOLLOWING?-1:0}let s=d=>{let h=d,v=h.detail.current,g=h.detail.previous;if(!v)return;let f=v.dataset.transition||i.transition||"fade",x=r(v,g);f==="slide"&&x<0?f="slide-right":f==="slide-right"&&x>0?f="slide":f==="slide-up"&&x<0?f="slide-down":f==="slide-down"&&x>0&&(f="slide-up");let S=`rk-enter-${f}`,L=`rk-exit-${f}`,Z=T[f]??480;g&&g!==v&&(g.classList.remove(...Ut,...zr,"rk-leaving"),g.style.display="flex",g.style.zIndex="1",g.offsetWidth,g.classList.add("rk-leaving",L),window.setTimeout(()=>{g.classList.remove("rk-leaving",L),g.style.display="",g.style.zIndex=""},Z+40)),v.classList.remove(...Ut),v.style.zIndex="2",v.offsetWidth,v.classList.add(S),window.setTimeout(()=>{v.classList.remove(S),v.style.zIndex=""},Z+40)};i.addEventListener("slide-change",s);let a=i.querySelector(":scope > [active]");a&&s(new CustomEvent("slide-change",{detail:{current:a,previous:null}}));let n=()=>{i.removeEventListener("slide-change",s),e.remove(),delete i.__rkTransitions};return i.__rkTransitions=n,n}var T,z,Tr,Lr,Ut,zr,ot=ke(()=>{"use strict";T={slide:560,"slide-up":520,"slide-down":520,"slide-right":560,fade:480,zoom:520,flip:560},z="var(--rik-motion__ease-out, cubic-bezier(0.16, 1, 0.3, 1))",Tr="var(--rik-motion__ease-spring, cubic-bezier(0.5, 1.8, 0.3, 1))",Lr=`
|
|
431
436
|
/* Incoming \xB7 from right (forward) */
|
|
432
437
|
@keyframes rk-slide-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
|
|
433
438
|
/* Outgoing \xB7 pushed off to the left (forward) */
|
|
@@ -458,28 +463,28 @@ ${s.themeHref?`<link rel="stylesheet" href="${s.themeHref}">`:""}
|
|
|
458
463
|
a placeholder so the selector resolves cleanly in shadow CSS. */
|
|
459
464
|
::slotted(.rk-leaving) { }
|
|
460
465
|
|
|
461
|
-
::slotted([active].rk-enter-slide) { animation: rk-slide-in ${
|
|
462
|
-
::slotted(.rk-leaving.rk-exit-slide) { animation: rk-slide-out ${
|
|
463
|
-
::slotted([active].rk-enter-slide-right) { animation: rk-slide-right-in ${
|
|
464
|
-
::slotted(.rk-leaving.rk-exit-slide-right){ animation: rk-slide-right-out ${
|
|
465
|
-
::slotted([active].rk-enter-slide-up) { animation: rk-slide-up-in ${
|
|
466
|
-
::slotted(.rk-leaving.rk-exit-slide-up) { animation: rk-slide-up-out ${
|
|
467
|
-
::slotted([active].rk-enter-slide-down) { animation: rk-slide-down-in ${
|
|
468
|
-
::slotted(.rk-leaving.rk-exit-slide-down) { animation: rk-slide-down-out ${
|
|
469
|
-
::slotted([active].rk-enter-fade) { animation: rk-fade-in ${
|
|
470
|
-
::slotted(.rk-leaving.rk-exit-fade) { animation: rk-fade-out ${
|
|
471
|
-
::slotted([active].rk-enter-zoom) { animation: rk-zoom-in ${
|
|
472
|
-
::slotted(.rk-leaving.rk-exit-zoom) { animation: rk-zoom-out ${
|
|
473
|
-
::slotted([active].rk-enter-flip) { animation: rk-flip-in ${
|
|
474
|
-
::slotted(.rk-leaving.rk-exit-flip) { animation: rk-flip-out ${
|
|
466
|
+
::slotted([active].rk-enter-slide) { animation: rk-slide-in ${T.slide}ms ${z} both; }
|
|
467
|
+
::slotted(.rk-leaving.rk-exit-slide) { animation: rk-slide-out ${T.slide}ms ${z} both; }
|
|
468
|
+
::slotted([active].rk-enter-slide-right) { animation: rk-slide-right-in ${T["slide-right"]}ms ${z} both; }
|
|
469
|
+
::slotted(.rk-leaving.rk-exit-slide-right){ animation: rk-slide-right-out ${T["slide-right"]}ms ${z} both; }
|
|
470
|
+
::slotted([active].rk-enter-slide-up) { animation: rk-slide-up-in ${T["slide-up"]}ms ${z} both; }
|
|
471
|
+
::slotted(.rk-leaving.rk-exit-slide-up) { animation: rk-slide-up-out ${T["slide-up"]}ms ${z} both; }
|
|
472
|
+
::slotted([active].rk-enter-slide-down) { animation: rk-slide-down-in ${T["slide-down"]}ms ${z} both; }
|
|
473
|
+
::slotted(.rk-leaving.rk-exit-slide-down) { animation: rk-slide-down-out ${T["slide-down"]}ms ${z} both; }
|
|
474
|
+
::slotted([active].rk-enter-fade) { animation: rk-fade-in ${T.fade}ms ${z} both; }
|
|
475
|
+
::slotted(.rk-leaving.rk-exit-fade) { animation: rk-fade-out ${T.fade}ms ${z} both; }
|
|
476
|
+
::slotted([active].rk-enter-zoom) { animation: rk-zoom-in ${T.zoom}ms ${Tr} both; }
|
|
477
|
+
::slotted(.rk-leaving.rk-exit-zoom) { animation: rk-zoom-out ${T.zoom}ms ${z} both; }
|
|
478
|
+
::slotted([active].rk-enter-flip) { animation: rk-flip-in ${T.flip}ms ${z} both; }
|
|
479
|
+
::slotted(.rk-leaving.rk-exit-flip) { animation: rk-flip-out ${T.flip}ms ${z} both; }
|
|
475
480
|
|
|
476
481
|
@media (prefers-reduced-motion: reduce) {
|
|
477
482
|
::slotted([active][class*='rk-enter-']),
|
|
478
483
|
::slotted(.rk-leaving) { animation: none; }
|
|
479
484
|
}
|
|
480
|
-
`,Ut=["rk-enter-slide","rk-enter-slide-up","rk-enter-slide-down","rk-enter-slide-right","rk-enter-fade","rk-enter-zoom","rk-enter-flip"],
|
|
481
|
-
\f\r]`,
|
|
482
|
-
\f\r"'\`<>=]|("|')|))|$)`,"g"),bt=/'/g,xt=/"/g,$t=/^(?:script|style|textarea|title)$/i,Qe=s=>(t,...e)=>({_$litType$:s,strings:t,values:e}),c=Qe(1),Ur=Qe(2),Rr=Qe(3),ee=Symbol.for("lit-noChange"),w=Symbol.for("lit-nothing"),_t=new WeakMap,Q=D.createTreeWalker(D,129);function St(s,t){if(!Ze(s)||!s.hasOwnProperty("raw"))throw Error("invalid template strings array");return gt!==void 0?gt.createHTML(t):t}var sr=(s,t)=>{let e=s.length-1,r=[],i,a=t===2?"<svg>":t===3?"<math>":"",n=ye;for(let d=0;d<e;d++){let h=s[d],v,g,f=-1,x=0;for(;x<h.length&&(n.lastIndex=x,g=n.exec(h),g!==null);)x=n.lastIndex,n===ye?g[1]==="!--"?n=kt:g[1]!==void 0?n=yt:g[2]!==void 0?($t.test(g[2])&&(i=RegExp("</"+g[2],"g")),n=Z):g[3]!==void 0&&(n=Z):n===Z?g[0]===">"?(n=i??ye,f=-1):g[1]===void 0?f=-2:(f=n.lastIndex-g[2].length,v=g[1],n=g[3]===void 0?Z:g[3]==='"'?xt:bt):n===xt||n===bt?n=Z:n===kt||n===yt?n=ye:(n=Z,i=void 0);let $=n===Z&&s[d+1].startsWith("/>")?" ":"";a+=n===ye?h+rr:f>=0?(r.push(v),h.slice(0,f)+wt+h.slice(f)+X+$):h+X+(f===-2?d:$)}return[St(s,a+(s[e]||"<?>")+(t===2?"</svg>":t===3?"</math>":"")),r]},_e=class s{constructor({strings:t,_$litType$:e},r){let i;this.parts=[];let a=0,n=0,d=t.length-1,h=this.parts,[v,g]=sr(t,e);if(this.el=s.createElement(v,r),Q.currentNode=this.el.content,e===2||e===3){let f=this.el.content.firstChild;f.replaceWith(...f.childNodes)}for(;(i=Q.nextNode())!==null&&h.length<d;){if(i.nodeType===1){if(i.hasAttributes())for(let f of i.getAttributeNames())if(f.endsWith(wt)){let x=g[n++],$=i.getAttribute(f).split(X),T=/([.?@])?(.*)/.exec(x);h.push({type:1,index:a,name:T[2],strings:$,ctor:T[1]==="."?Xe:T[1]==="?"?Ge:T[1]==="@"?Ke:ae}),i.removeAttribute(f)}else f.startsWith(X)&&(h.push({type:6,index:a}),i.removeAttribute(f));if($t.test(i.tagName)){let f=i.textContent.split(X),x=f.length-1;if(x>0){i.textContent=Ne?Ne.emptyScript:"";for(let $=0;$<x;$++)i.append(f[$],be()),Q.nextNode(),h.push({type:2,index:++a});i.append(f[x],be())}}}else if(i.nodeType===8)if(i.data===Et)h.push({type:2,index:a});else{let f=-1;for(;(f=i.data.indexOf(X,f+1))!==-1;)h.push({type:7,index:a}),f+=X.length-1}a++}}static createElement(t,e){let r=D.createElement("template");return r.innerHTML=t,r}};function oe(s,t,e=s,r){if(t===ee)return t;let i=r!==void 0?e._$Co?.[r]:e._$Cl,a=xe(t)?void 0:t._$litDirective$;return i?.constructor!==a&&(i?._$AO?.(!1),a===void 0?i=void 0:(i=new a(s),i._$AT(s,e,r)),r!==void 0?(e._$Co??=[])[r]=i:e._$Cl=i),i!==void 0&&(t=oe(s,i._$AS(s,t.values),i,r)),t}var Ve=class{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){let{el:{content:e},parts:r}=this._$AD,i=(t?.creationScope??D).importNode(e,!0);Q.currentNode=i;let a=Q.nextNode(),n=0,d=0,h=r[0];for(;h!==void 0;){if(n===h.index){let v;h.type===2?v=new we(a,a.nextSibling,this,t):h.type===1?v=new h.ctor(a,h.name,h.strings,this,t):h.type===6&&(v=new Fe(a,this,t)),this._$AV.push(v),h=r[++d]}n!==h?.index&&(a=Q.nextNode(),n++)}return Q.currentNode=D,i}p(t){let e=0;for(let r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,e),e+=r.strings.length-2):r._$AI(t[e])),e++}},we=class s{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,r,i){this.type=2,this._$AH=w,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=r,this.options=i,this._$Cv=i?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode,e=this._$AM;return e!==void 0&&t?.nodeType===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=oe(this,t,e),xe(t)?t===w||t==null||t===""?(this._$AH!==w&&this._$AR(),this._$AH=w):t!==this._$AH&&t!==ee&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):ir(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==w&&xe(this._$AH)?this._$AA.nextSibling.data=t:this.T(D.createTextNode(t)),this._$AH=t}$(t){let{values:e,_$litType$:r}=t,i=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=_e.createElement(St(r.h,r.h[0]),this.options)),r);if(this._$AH?._$AD===i)this._$AH.p(e);else{let a=new Ve(i,this),n=a.u(this.options);a.p(e),this.T(n),this._$AH=a}}_$AC(t){let e=_t.get(t.strings);return e===void 0&&_t.set(t.strings,e=new _e(t)),e}k(t){Ze(this._$AH)||(this._$AH=[],this._$AR());let e=this._$AH,r,i=0;for(let a of t)i===e.length?e.push(r=new s(this.O(be()),this.O(be()),this,this.options)):r=e[i],r._$AI(a),i++;i<e.length&&(this._$AR(r&&r._$AB.nextSibling,i),e.length=i)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t!==this._$AB;){let r=ft(t).nextSibling;ft(t).remove(),t=r}}setConnected(t){this._$AM===void 0&&(this._$Cv=t,this._$AP?.(t))}},ae=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,r,i,a){this.type=1,this._$AH=w,this._$AN=void 0,this.element=t,this.name=e,this._$AM=i,this.options=a,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=w}_$AI(t,e=this,r,i){let a=this.strings,n=!1;if(a===void 0)t=oe(this,t,e,0),n=!xe(t)||t!==this._$AH&&t!==ee,n&&(this._$AH=t);else{let d=t,h,v;for(t=a[0],h=0;h<a.length-1;h++)v=oe(this,d[r+h],e,h),v===ee&&(v=this._$AH[h]),n||=!xe(v)||v!==this._$AH[h],v===w?t=w:t!==w&&(t+=(v??"")+a[h+1]),this._$AH[h]=v}n&&!i&&this.j(t)}j(t){t===w?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}},Xe=class extends ae{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===w?void 0:t}},Ge=class extends ae{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==w)}},Ke=class extends ae{constructor(t,e,r,i,a){super(t,e,r,i,a),this.type=5}_$AI(t,e=this){if((t=oe(this,t,e,0)??w)===ee)return;let r=this._$AH,i=t===w&&r!==w||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,a=t!==w&&(r===w||i);i&&this.element.removeEventListener(this.name,this,r),a&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}},Fe=class{constructor(t,e,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){oe(this,t)}};var or=Je.litHtmlPolyfillSupport;or?.(_e,we),(Je.litHtmlVersions??=[]).push("3.3.3");var At=(s,t,e)=>{let r=e?.renderBefore??t,i=r._$litPart$;if(i===void 0){let a=e?.renderBefore??null;r._$litPart$=i=new we(t.insertBefore(be(),a),a,void 0,e??{})}return i._$AI(s),i};var De=globalThis,p=class extends j{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){let e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=At(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return ee}};p._$litElement$=!0,p.finalized=!0,De.litElementHydrateSupport?.({LitElement:p});var ar=De.litElementPolyfillSupport;ar?.({LitElement:p});(De.litElementVersions??=[]).push("4.2.2");var u=s=>(t,e)=>{e!==void 0?e.addInitializer(()=>{customElements.define(s,t)}):customElements.define(s,t)};var nr={attribute:!0,type:String,converter:ke,reflect:!1,hasChanged:Pe},lr=(s=nr,t,e)=>{let{kind:r,metadata:i}=e,a=globalThis.litPropertyMetadata.get(i);if(a===void 0&&globalThis.litPropertyMetadata.set(i,a=new Map),r==="setter"&&((s=Object.create(s)).wrapped=!0),a.set(e.name,s),r==="accessor"){let{name:n}=e;return{set(d){let h=t.get.call(this);t.set.call(this,d),this.requestUpdate(n,h,s,!0,d)},init(d){return d!==void 0&&this.C(n,void 0,s,d),d}}}if(r==="setter"){let{name:n}=e;return function(d){let h=this[n];t.call(this,d),this.requestUpdate(n,h,s,!0,d)}}throw Error("Unsupported decorator location: "+r)};function l(s){return(t,e)=>typeof e=="object"?lr(s,t,e):((r,i,a)=>{let n=i.hasOwnProperty(a);return i.constructor.createProperty(a,r),n?Object.getOwnPropertyDescriptor(i,a):void 0})(s,t,e)}function N(s){return l({...s,state:!0,attribute:!1})}var z=class extends p{constructor(){super(...arguments);this.current=0;this.step=0;this.blank=null;this.overview=!1;this.transition=null;this.autoplay=0;this.loop=!1;this.swipe=!1;this.slides=[];this.chapters=[];this._overviewTeardown=null;this._transitionLoaded=!1;this._autoplayTimer=null;this._autoplayPaused=!1;this._swipeStartX=0;this._swipeStartY=0;this._swipePointerId=null;this._onHoverEnter=()=>{this._autoplayPaused=!0,this._stopAutoplay()};this._onHoverLeave=()=>{this._autoplayPaused=!1,this.autoplay>0&&this._startAutoplay()};this._onPointerDown=e=>{!this.swipe||e.pointerType==="mouse"&&e.button!==0||e.target?.closest("a, button, input, textarea, [contenteditable]")||(this._swipePointerId=e.pointerId,this._swipeStartX=e.clientX,this._swipeStartY=e.clientY)};this._onPointerUp=e=>{if(this._swipePointerId===null||e.pointerId!==this._swipePointerId)return;let r=e.clientX-this._swipeStartX,i=e.clientY-this._swipeStartY;this._swipePointerId=null,!(Math.abs(r)<60||Math.abs(r)<Math.abs(i)*2)&&(this._stopAutoplay(),r<0?this._advance():this._back(),this.autoplay>0&&!this._autoplayPaused&&this._startAutoplay())};this._onHash=()=>{this._readHash(!1)};this._onKey=e=>{if(!(e.target&&e.target.matches?.("input,textarea,[contenteditable]"))){if(this.autoplay>0&&!this._autoplayPaused&&this._startAutoplay(),this.overview){(e.key==="Escape"||e.key==="o"||e.key==="O"||e.key==="Enter")&&(e.preventDefault(),this.overview=!1);return}if(this.blank){e.preventDefault(),this.blank=null;return}if(e.key==="."||e.key==="b"||e.key==="B"){e.preventDefault(),this.blank="black";return}if(e.key===","||e.key==="w"||e.key==="W"){e.preventDefault(),this.blank="white";return}if(e.key==="?"||e.key==="h"||e.key==="H"){this._toggleHelp();return}if(e.key==="Escape"){this._closeHelp();return}if(e.key==="o"||e.key==="O"){e.preventDefault(),this.overview=!0;return}if(e.key==="p"||e.key==="P"){e.preventDefault(),this._togglePresenter();return}if(e.key==="Home"){this._goTo(0);return}if(e.key==="End"){this._goTo(this.slides.length-1);return}if(e.key===" "||e.key==="PageDown"){e.preventDefault(),this._advance();return}if(e.key==="PageUp"){e.preventDefault(),this._back();return}if(this._has2DNav()){let{c:r,i}=this._coords(this.current);if(e.key==="ArrowRight"){e.preventDefault(),r+1<this.chapters.length?this._goToCoords(r+1,0):this._advance();return}if(e.key==="ArrowLeft"){e.preventDefault(),r-1>=0?this._goToCoords(r-1,0):this._back();return}if(e.key==="ArrowDown"){e.preventDefault();let a=this.chapters[r];a&&i+1<a.slides.length?this._goToCoords(r,i+1):this._advance();return}if(e.key==="ArrowUp"){e.preventDefault(),i-1>=0?this._goToCoords(r,i-1):this._back();return}}else{if(e.key==="ArrowRight"||e.key==="ArrowDown"){e.preventDefault(),this._advance();return}if(e.key==="ArrowLeft"||e.key==="ArrowUp"){e.preventDefault(),this._back();return}}}}}firstUpdated(){this.slides=Array.from(this.querySelectorAll(":scope > *")).filter(e=>e.tagName?.toLowerCase().startsWith("deck-")&&e.tagName?.toLowerCase()!=="deck-root"),this._buildChapters(),this._readHash(!0),this._applyActive(),this._applyStep(),this._updateUI(),this.requestUpdate(),window.addEventListener("keydown",this._onKey),window.addEventListener("hashchange",this._onHash),this.autoplay>0&&this._startAutoplay(),this.swipe?(this.addEventListener("pointerdown",this._onPointerDown),this.addEventListener("pointerup",this._onPointerUp),this.addEventListener("pointercancel",this._onPointerUp),this.addEventListener("mouseenter",this._onHoverEnter),this.addEventListener("mouseleave",this._onHoverLeave)):this.autoplay>0&&(this.addEventListener("mouseenter",this._onHoverEnter),this.addEventListener("mouseleave",this._onHoverLeave))}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("keydown",this._onKey),window.removeEventListener("hashchange",this._onHash),this._stopAutoplay(),this.removeEventListener("pointerdown",this._onPointerDown),this.removeEventListener("pointerup",this._onPointerUp),this.removeEventListener("pointercancel",this._onPointerUp),this.removeEventListener("mouseenter",this._onHoverEnter),this.removeEventListener("mouseleave",this._onHoverLeave)}_startAutoplay(){this._stopAutoplay(),!(this.autoplay<=0||this._autoplayPaused)&&(this._autoplayTimer=window.setInterval(()=>this._autoTick(),this.autoplay))}_stopAutoplay(){this._autoplayTimer!==null&&(window.clearInterval(this._autoplayTimer),this._autoplayTimer=null)}_autoTick(){if(this.overview)return;this.current>=this.slides.length-1&&this.step>=this._maxSteps()&&this.loop?this._goTo(0):this._advance()}_buildChapters(){this.chapters=[];let e=null;this.slides.forEach((r,i)=>{r.tagName?.toLowerCase()==="deck-section"||!e?(e={startIdx:i,slides:[r]},this.chapters.push(e)):e.slides.push(r)})}_has2DNav(){return this.chapters.some(e=>e.slides.length>1)&&this.chapters.length>1}_coords(e){for(let r=0;r<this.chapters.length;r++){let i=this.chapters[r],a=e-i.startIdx;if(a>=0&&a<i.slides.length)return{c:r,i:a}}return{c:0,i:0}}_flatFromCoords(e,r){let i=this.chapters[e];return i?i.startIdx+Math.max(0,Math.min(i.slides.length-1,r)):0}_readHash(e){let r=location.hash,i=r.match(/^#(\d+)\.(\d+)(?:s(\d+))?$/),a=r.match(/^#(\d+)(?:\.(\d+))?$/),n=this.current,d=this.step;if(this._has2DNav()&&i){let h=parseInt(i[1],10)-1,v=parseInt(i[2],10)-1;n=this._flatFromCoords(Math.max(0,h),Math.max(0,v)),d=i[3]?parseInt(i[3],10):0}else if(a)n=parseInt(a[1],10)-1,d=a[2]?parseInt(a[2],10):0;else return;n===this.current&&d===this.step&&!e||(this.current=Math.max(0,Math.min(this.slides.length-1,n)),this.step=Math.max(0,d),e||(this._applyActive(),this._applyStep(),this._updateUI()))}_writeHash(){let e=`#${this.current+1}`+(this.step>0?`.${this.step}`:"");location.hash!==e&&history.replaceState(null,"",e)}async _toggleHelp(){(await Promise.resolve().then(()=>(Oe(),et))).toggleHelp(this)}async _togglePresenter(){(await Promise.resolve().then(()=>(tt(),Ct))).installPresenter(this)}async _closeHelp(){(await Promise.resolve().then(()=>(Oe(),et))).closeHelp(this)}async _renderOverviewIfActive(){if(!this.overview){this._overviewTeardown?.(),this._overviewTeardown=null;return}let{mountOverview:e}=await Promise.resolve().then(()=>(rt(),Ot));this._overviewTeardown=e(this,{slides:this.slides,chapters:this.chapters,currentIdx:this.current,onPick:r=>{this.overview=!1,this._goTo(r)}})}_maxSteps(){let e=this.slides[this.current];if(!e)return 0;let r=parseInt(e.getAttribute("steps")||e.dataset?.steps||"0",10);if(r>0)return r;let i=e.querySelector("deck-code[step-groups]");if(i)try{return JSON.parse(i.getAttribute("step-groups")).length}catch{}return 0}_advance(){let e=this._maxSteps();this.step<e?(this.step++,this._applyStep(),this._updateUI(),this._writeHash()):this.current<this.slides.length-1?this._goTo(this.current+1):this.loop&&this._goTo(0)}_back(){this.step>0?(this.step--,this._applyStep(),this._updateUI(),this._writeHash()):this.current>0?(this._goTo(this.current-1),this.step=this._maxSteps(),this._applyStep(),this._updateUI(),this._writeHash()):this.loop&&(this._goTo(this.slides.length-1),this.step=this._maxSteps(),this._applyStep(),this._updateUI(),this._writeHash())}_goTo(e){this.current=Math.max(0,Math.min(this.slides.length-1,e)),this.step=0,this._applyActive(),this._applyStep(),this._updateUI(),this._writeHash()}_goToCoords(e,r){let i=Math.max(0,Math.min(this.chapters.length-1,e)),a=this.chapters[i];if(!a)return;let n=Math.max(0,Math.min(a.slides.length-1,r));this._goTo(this._flatFromCoords(i,n))}_applyActive(){let e=this.slides.find(i=>i.hasAttribute("active"))??null,r=this.slides[this.current]??null;this.slides.forEach((i,a)=>{let n=a===this.current;i.toggleAttribute("active",n),n&&i.querySelectorAll("deck-mermaid").forEach(d=>d.render?.())}),this.transition&&!this._transitionLoaded&&(this._transitionLoaded=!0,Promise.resolve().then(()=>(it(),Rt)).then(i=>i.installTransitions(this))),e!==r&&this.dispatchEvent(new CustomEvent("slide-change",{detail:{current:r,previous:e},bubbles:!1}))}_applyStep(){let e=this.slides[this.current];e&&(e.applyStep?.(this.step),e.querySelectorAll("*").forEach(r=>r.applyStep?.(this.step)),e.querySelectorAll("[data-step-block]").forEach(r=>{let i=parseInt(r.dataset.stepBlock,10);r.style.transition="opacity 0.25s ease",r.style.opacity=this.step===0||i<=this.step?"1":"0.15"}))}_updateUI(){let e=this.slides.length,r=this.current+1,i=this.renderRoot.querySelector("#progress"),a=this.renderRoot.querySelector("#counter"),n=this.renderRoot.querySelector("#step-dots");i&&(i.style.width=r/e*100+"%"),a&&(a.textContent=`${r} / ${e}`);let d=this._maxSteps();n&&(n.innerHTML=d===0?"":Array.from({length:d},(h,v)=>`<div class="dot${v<this.step?" active":""}"></div>`).join(""))}updated(){this._updateUI(),this._renderOverviewIfActive()}render(){return c`<div id="progress"></div> <div id="counter"></div> <div id="step-dots"></div> <div id="kb-hint"> <kbd>←</kbd><kbd>→</kbd> ${this._has2DNav()?c`<kbd>↑</kbd><kbd>↓</kbd>`:""}
|
|
485
|
+
`,Ut=["rk-enter-slide","rk-enter-slide-up","rk-enter-slide-down","rk-enter-slide-right","rk-enter-fade","rk-enter-zoom","rk-enter-flip"],zr=["rk-exit-slide","rk-exit-slide-up","rk-exit-slide-down","rk-exit-slide-right","rk-exit-fade","rk-exit-zoom","rk-exit-flip"]});var Wr={};function Zt(i,t="#0a0a0a"){N||(N=document.createElement("div"),N.style.cssText=`position:fixed;bottom:12px;left:12px;z-index:9999;padding:6px 12px;background:${t};color:#F7CB44;font:600 11px/1.4 monospace;border-radius:6px;letter-spacing:.08em;text-transform:uppercase;opacity:0;transition:opacity .2s;pointer-events:none;border:1px solid #F7CB44`,document.body.appendChild(N)),N.textContent=i,N.style.opacity="1",N._t&&clearTimeout(N._t),N._t=setTimeout(()=>{N&&(N.style.opacity="0")},1500)}async function Qt(i){try{let t=await fetch(i+"?_lr="+Date.now(),{method:"HEAD",cache:"no-store"}),e=t.headers.get("last-modified")??t.headers.get("etag")??t.headers.get("content-length");if(!e)return!1;let r=Gt.get(i);return Gt.set(i,e),r!==void 0&&r!==e}catch{return!1}}async function Yr(){for(;;){for(let i of Jt)if(await Qt(i)){Zt(`reload \xB7 ${i.split("/").pop()}`),await new Promise(t=>setTimeout(t,150)),location.reload();return}await new Promise(i=>setTimeout(i,800))}}var $,Br,qr,Jt,Gt,N,Dt=ke(()=>{"use strict";$=i=>new URL(i,import.meta.url).href,Br=i=>{try{return new URL(i,location.href).origin===location.origin}catch{return!1}},qr=Array.from(document.querySelectorAll('link[rel="stylesheet"]')).map(i=>i.href).filter(Br),Jt=[...qr,$("./index.js"),$("./deck-root.js"),$("./deck-cover.js"),$("./deck-section.js"),$("./deck-feature.js"),$("./deck-split.js"),$("./deck-feature-cards.js"),$("./deck-takeaway.js"),$("./deck-md.js"),$("./deck-code.js"),$("./deck-callout.js"),$("./deck-card.js"),$("./deck-mermaid.js"),$("./shared-styles.js"),$("./deck-stack.js"),$("./deck-grid.js"),$("./deck-punch.js"),location.pathname],Gt=new Map;(async()=>(await Promise.all(Jt.map(Qt)),Zt("livereload on"),Yr()))()});var Ce=globalThis,Pe=Ce.ShadowRoot&&(Ce.ShadyCSS===void 0||Ce.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,We=Symbol(),mt=new WeakMap,ye=class{constructor(t,e,r){if(this._$cssResult$=!0,r!==We)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o,e=this.t;if(Pe&&t===void 0){let r=e!==void 0&&e.length===1;r&&(t=mt.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&mt.set(e,t))}return t}toString(){return this.cssText}},vt=i=>new ye(typeof i=="string"?i:i+"",void 0,We),m=(i,...t)=>{let e=i.length===1?i[0]:t.reduce((r,s,a)=>r+(n=>{if(n._$cssResult$===!0)return n.cssText;if(typeof n=="number")return n;throw Error("Value passed to 'css' function must be a 'css' function result: "+n+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+i[a+1],i[0]);return new ye(e,i,We)},ut=(i,t)=>{if(Pe)i.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(let e of t){let r=document.createElement("style"),s=Ce.litNonce;s!==void 0&&r.setAttribute("nonce",s),r.textContent=e.cssText,i.appendChild(r)}},Fe=Pe?i=>i:i=>i instanceof CSSStyleSheet?(t=>{let e="";for(let r of t.cssRules)e+=r.cssText;return vt(e)})(i):i;var{is:tr,defineProperty:rr,getOwnPropertyDescriptor:ir,getOwnPropertyNames:sr,getOwnPropertySymbols:or,getPrototypeOf:ar}=Object,Ne=globalThis,ft=Ne.trustedTypes,nr=ft?ft.emptyScript:"",lr=Ne.reactiveElementPolyfillSupport,be=(i,t)=>i,xe={toAttribute(i,t){switch(t){case Boolean:i=i?nr:null;break;case Object:case Array:i=i==null?i:JSON.stringify(i)}return i},fromAttribute(i,t){let e=i;switch(t){case Boolean:e=i!==null;break;case Number:e=i===null?null:Number(i);break;case Object:case Array:try{e=JSON.parse(i)}catch{e=null}}return e}},Ie=(i,t)=>!tr(i,t),gt={attribute:!0,type:String,converter:xe,reflect:!1,useDefault:!1,hasChanged:Ie};Symbol.metadata??=Symbol("metadata"),Ne.litPropertyMetadata??=new WeakMap;var q=class extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=gt){if(e.state&&(e.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((e=Object.create(e)).wrapped=!0),this.elementProperties.set(t,e),!e.noAccessor){let r=Symbol(),s=this.getPropertyDescriptor(t,r,e);s!==void 0&&rr(this.prototype,t,s)}}static getPropertyDescriptor(t,e,r){let{get:s,set:a}=ir(this.prototype,t)??{get(){return this[e]},set(n){this[e]=n}};return{get:s,set(n){let d=s?.call(this);a?.call(this,n),this.requestUpdate(t,d,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??gt}static _$Ei(){if(this.hasOwnProperty(be("elementProperties")))return;let t=ar(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(be("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(be("properties"))){let e=this.properties,r=[...sr(e),...or(e)];for(let s of r)this.createProperty(s,e[s])}let t=this[Symbol.metadata];if(t!==null){let e=litPropertyMetadata.get(t);if(e!==void 0)for(let[r,s]of e)this.elementProperties.set(r,s)}this._$Eh=new Map;for(let[e,r]of this.elementProperties){let s=this._$Eu(e,r);s!==void 0&&this._$Eh.set(s,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){let e=[];if(Array.isArray(t)){let r=new Set(t.flat(1/0).reverse());for(let s of r)e.unshift(Fe(s))}else t!==void 0&&e.push(Fe(t));return e}static _$Eu(t,e){let r=e.attribute;return r===!1?void 0:typeof r=="string"?r:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),this.renderRoot!==void 0&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){let t=new Map,e=this.constructor.elementProperties;for(let r of e.keys())this.hasOwnProperty(r)&&(t.set(r,this[r]),delete this[r]);t.size>0&&(this._$Ep=t)}createRenderRoot(){let t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return ut(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,e,r){this._$AK(t,r)}_$ET(t,e){let r=this.constructor.elementProperties.get(t),s=this.constructor._$Eu(t,r);if(s!==void 0&&r.reflect===!0){let a=(r.converter?.toAttribute!==void 0?r.converter:xe).toAttribute(e,r.type);this._$Em=t,a==null?this.removeAttribute(s):this.setAttribute(s,a),this._$Em=null}}_$AK(t,e){let r=this.constructor,s=r._$Eh.get(t);if(s!==void 0&&this._$Em!==s){let a=r.getPropertyOptions(s),n=typeof a.converter=="function"?{fromAttribute:a.converter}:a.converter?.fromAttribute!==void 0?a.converter:xe;this._$Em=s;let d=n.fromAttribute(e,a.type);this[s]=d??this._$Ej?.get(s)??d,this._$Em=null}}requestUpdate(t,e,r,s=!1,a){if(t!==void 0){let n=this.constructor;if(s===!1&&(a=this[t]),r??=n.getPropertyOptions(t),!((r.hasChanged??Ie)(a,e)||r.useDefault&&r.reflect&&a===this._$Ej?.get(t)&&!this.hasAttribute(n._$Eu(t,r))))return;this.C(t,e,r)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(t,e,{useDefault:r,reflect:s,wrapped:a},n){r&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,n??e??this[t]),a!==!0||n!==void 0)||(this._$AL.has(t)||(this.hasUpdated||r||(e=void 0),this._$AL.set(t,e)),s===!0&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[s,a]of this._$Ep)this[s]=a;this._$Ep=void 0}let r=this.constructor.elementProperties;if(r.size>0)for(let[s,a]of r){let{wrapped:n}=a,d=this[s];n!==!0||this._$AL.has(s)||d===void 0||this.C(s,void 0,a,d)}}let t=!1,e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach(r=>r.hostUpdate?.()),this.update(e)):this._$EM()}catch(r){throw t=!1,this._$EM(),r}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(t){}firstUpdated(t){}};q.elementStyles=[],q.shadowRootOptions={mode:"open"},q[be("elementProperties")]=new Map,q[be("finalized")]=new Map,lr?.({ReactiveElement:q}),(Ne.reactiveElementVersions??=[]).push("2.1.2");var Qe=globalThis,kt=i=>i,Oe=Qe.trustedTypes,yt=Oe?Oe.createPolicy("lit-html",{createHTML:i=>i}):void 0,$t="$lit$",X=`lit$${Math.random().toFixed(9).slice(2)}$`,St="?"+X,dr=`<${St}>`,te=document,_e=()=>te.createComment(""),Ee=i=>i===null||typeof i!="object"&&typeof i!="function",De=Array.isArray,cr=i=>De(i)||typeof i?.[Symbol.iterator]=="function",Ke=`[
|
|
486
|
+
\f\r]`,we=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,bt=/-->/g,xt=/>/g,D=RegExp(`>|${Ke}(?:([^\\s"'>=/]+)(${Ke}*=${Ke}*(?:[^
|
|
487
|
+
\f\r"'\`<>=]|("|')|))|$)`,"g"),wt=/'/g,_t=/"/g,At=/^(?:script|style|textarea|title)$/i,et=i=>(t,...e)=>({_$litType$:i,strings:t,values:e}),c=et(1),Jr=et(2),Zr=et(3),re=Symbol.for("lit-noChange"),_=Symbol.for("lit-nothing"),Et=new WeakMap,ee=te.createTreeWalker(te,129);function Tt(i,t){if(!De(i)||!i.hasOwnProperty("raw"))throw Error("invalid template strings array");return yt!==void 0?yt.createHTML(t):t}var pr=(i,t)=>{let e=i.length-1,r=[],s,a=t===2?"<svg>":t===3?"<math>":"",n=we;for(let d=0;d<e;d++){let h=i[d],v,g,f=-1,x=0;for(;x<h.length&&(n.lastIndex=x,g=n.exec(h),g!==null);)x=n.lastIndex,n===we?g[1]==="!--"?n=bt:g[1]!==void 0?n=xt:g[2]!==void 0?(At.test(g[2])&&(s=RegExp("</"+g[2],"g")),n=D):g[3]!==void 0&&(n=D):n===D?g[0]===">"?(n=s??we,f=-1):g[1]===void 0?f=-2:(f=n.lastIndex-g[2].length,v=g[1],n=g[3]===void 0?D:g[3]==='"'?_t:wt):n===_t||n===wt?n=D:n===bt||n===xt?n=we:(n=D,s=void 0);let S=n===D&&i[d+1].startsWith("/>")?" ":"";a+=n===we?h+dr:f>=0?(r.push(v),h.slice(0,f)+$t+h.slice(f)+X+S):h+X+(f===-2?d:S)}return[Tt(i,a+(i[e]||"<?>")+(t===2?"</svg>":t===3?"</math>":"")),r]},$e=class i{constructor({strings:t,_$litType$:e},r){let s;this.parts=[];let a=0,n=0,d=t.length-1,h=this.parts,[v,g]=pr(t,e);if(this.el=i.createElement(v,r),ee.currentNode=this.el.content,e===2||e===3){let f=this.el.content.firstChild;f.replaceWith(...f.childNodes)}for(;(s=ee.nextNode())!==null&&h.length<d;){if(s.nodeType===1){if(s.hasAttributes())for(let f of s.getAttributeNames())if(f.endsWith($t)){let x=g[n++],S=s.getAttribute(f).split(X),L=/([.?@])?(.*)/.exec(x);h.push({type:1,index:a,name:L[2],strings:S,ctor:L[1]==="."?Xe:L[1]==="?"?Ge:L[1]==="@"?Je:le}),s.removeAttribute(f)}else f.startsWith(X)&&(h.push({type:6,index:a}),s.removeAttribute(f));if(At.test(s.tagName)){let f=s.textContent.split(X),x=f.length-1;if(x>0){s.textContent=Oe?Oe.emptyScript:"";for(let S=0;S<x;S++)s.append(f[S],_e()),ee.nextNode(),h.push({type:2,index:++a});s.append(f[x],_e())}}}else if(s.nodeType===8)if(s.data===St)h.push({type:2,index:a});else{let f=-1;for(;(f=s.data.indexOf(X,f+1))!==-1;)h.push({type:7,index:a}),f+=X.length-1}a++}}static createElement(t,e){let r=te.createElement("template");return r.innerHTML=t,r}};function ne(i,t,e=i,r){if(t===re)return t;let s=r!==void 0?e._$Co?.[r]:e._$Cl,a=Ee(t)?void 0:t._$litDirective$;return s?.constructor!==a&&(s?._$AO?.(!1),a===void 0?s=void 0:(s=new a(i),s._$AT(i,e,r)),r!==void 0?(e._$Co??=[])[r]=s:e._$Cl=s),s!==void 0&&(t=ne(i,s._$AS(i,t.values),s,r)),t}var Ve=class{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){let{el:{content:e},parts:r}=this._$AD,s=(t?.creationScope??te).importNode(e,!0);ee.currentNode=s;let a=ee.nextNode(),n=0,d=0,h=r[0];for(;h!==void 0;){if(n===h.index){let v;h.type===2?v=new Se(a,a.nextSibling,this,t):h.type===1?v=new h.ctor(a,h.name,h.strings,this,t):h.type===6&&(v=new Ze(a,this,t)),this._$AV.push(v),h=r[++d]}n!==h?.index&&(a=ee.nextNode(),n++)}return ee.currentNode=te,s}p(t){let e=0;for(let r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,e),e+=r.strings.length-2):r._$AI(t[e])),e++}},Se=class i{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,r,s){this.type=2,this._$AH=_,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=r,this.options=s,this._$Cv=s?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode,e=this._$AM;return e!==void 0&&t?.nodeType===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=ne(this,t,e),Ee(t)?t===_||t==null||t===""?(this._$AH!==_&&this._$AR(),this._$AH=_):t!==this._$AH&&t!==re&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):cr(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==_&&Ee(this._$AH)?this._$AA.nextSibling.data=t:this.T(te.createTextNode(t)),this._$AH=t}$(t){let{values:e,_$litType$:r}=t,s=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=$e.createElement(Tt(r.h,r.h[0]),this.options)),r);if(this._$AH?._$AD===s)this._$AH.p(e);else{let a=new Ve(s,this),n=a.u(this.options);a.p(e),this.T(n),this._$AH=a}}_$AC(t){let e=Et.get(t.strings);return e===void 0&&Et.set(t.strings,e=new $e(t)),e}k(t){De(this._$AH)||(this._$AH=[],this._$AR());let e=this._$AH,r,s=0;for(let a of t)s===e.length?e.push(r=new i(this.O(_e()),this.O(_e()),this,this.options)):r=e[s],r._$AI(a),s++;s<e.length&&(this._$AR(r&&r._$AB.nextSibling,s),e.length=s)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t!==this._$AB;){let r=kt(t).nextSibling;kt(t).remove(),t=r}}setConnected(t){this._$AM===void 0&&(this._$Cv=t,this._$AP?.(t))}},le=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,r,s,a){this.type=1,this._$AH=_,this._$AN=void 0,this.element=t,this.name=e,this._$AM=s,this.options=a,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=_}_$AI(t,e=this,r,s){let a=this.strings,n=!1;if(a===void 0)t=ne(this,t,e,0),n=!Ee(t)||t!==this._$AH&&t!==re,n&&(this._$AH=t);else{let d=t,h,v;for(t=a[0],h=0;h<a.length-1;h++)v=ne(this,d[r+h],e,h),v===re&&(v=this._$AH[h]),n||=!Ee(v)||v!==this._$AH[h],v===_?t=_:t!==_&&(t+=(v??"")+a[h+1]),this._$AH[h]=v}n&&!s&&this.j(t)}j(t){t===_?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}},Xe=class extends le{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===_?void 0:t}},Ge=class extends le{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==_)}},Je=class extends le{constructor(t,e,r,s,a){super(t,e,r,s,a),this.type=5}_$AI(t,e=this){if((t=ne(this,t,e,0)??_)===re)return;let r=this._$AH,s=t===_&&r!==_||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,a=t!==_&&(r===_||s);s&&this.element.removeEventListener(this.name,this,r),a&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}},Ze=class{constructor(t,e,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){ne(this,t)}};var hr=Qe.litHtmlPolyfillSupport;hr?.($e,Se),(Qe.litHtmlVersions??=[]).push("3.3.3");var Lt=(i,t,e)=>{let r=e?.renderBefore??t,s=r._$litPart$;if(s===void 0){let a=e?.renderBefore??null;r._$litPart$=s=new Se(t.insertBefore(_e(),a),a,void 0,e??{})}return s._$AI(i),s};var tt=globalThis,p=class extends q{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){let e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=Lt(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return re}};p._$litElement$=!0,p.finalized=!0,tt.litElementHydrateSupport?.({LitElement:p});var mr=tt.litElementPolyfillSupport;mr?.({LitElement:p});(tt.litElementVersions??=[]).push("4.2.2");var u=i=>(t,e)=>{e!==void 0?e.addInitializer(()=>{customElements.define(i,t)}):customElements.define(i,t)};var vr={attribute:!0,type:String,converter:xe,reflect:!1,hasChanged:Ie},ur=(i=vr,t,e)=>{let{kind:r,metadata:s}=e,a=globalThis.litPropertyMetadata.get(s);if(a===void 0&&globalThis.litPropertyMetadata.set(s,a=new Map),r==="setter"&&((i=Object.create(i)).wrapped=!0),a.set(e.name,i),r==="accessor"){let{name:n}=e;return{set(d){let h=t.get.call(this);t.set.call(this,d),this.requestUpdate(n,h,i,!0,d)},init(d){return d!==void 0&&this.C(n,void 0,i,d),d}}}if(r==="setter"){let{name:n}=e;return function(d){let h=this[n];t.call(this,d),this.requestUpdate(n,h,i,!0,d)}}throw Error("Unsupported decorator location: "+r)};function l(i){return(t,e)=>typeof e=="object"?ur(i,t,e):((r,s,a)=>{let n=s.hasOwnProperty(a);return s.constructor.createProperty(a,r),n?Object.getOwnPropertyDescriptor(s,a):void 0})(i,t,e)}function O(i){return l({...i,state:!0,attribute:!1})}var M=class extends p{constructor(){super(...arguments);this.current=0;this.step=0;this.blank=null;this.overview=!1;this.transition=null;this.autoplay=0;this.loop=!1;this.swipe=!1;this.slides=[];this.chapters=[];this._overviewTeardown=null;this._transitionLoaded=!1;this._autoplayTimer=null;this._autoplayPaused=!1;this._swipeStartX=0;this._swipeStartY=0;this._swipePointerId=null;this._onHoverEnter=()=>{this._autoplayPaused=!0,this._stopAutoplay()};this._onHoverLeave=()=>{this._autoplayPaused=!1,this.autoplay>0&&this._startAutoplay()};this._onPointerDown=e=>{!this.swipe||e.pointerType==="mouse"&&e.button!==0||e.target?.closest("a, button, input, textarea, [contenteditable]")||(this._swipePointerId=e.pointerId,this._swipeStartX=e.clientX,this._swipeStartY=e.clientY)};this._onPointerUp=e=>{if(this._swipePointerId===null||e.pointerId!==this._swipePointerId)return;let r=e.clientX-this._swipeStartX,s=e.clientY-this._swipeStartY;this._swipePointerId=null,!(Math.abs(r)<60||Math.abs(r)<Math.abs(s)*2)&&(this._stopAutoplay(),r<0?this._advance():this._back(),this.autoplay>0&&!this._autoplayPaused&&this._startAutoplay())};this._onHash=()=>{this._readHash(!1)};this._onKey=e=>{if(!(e.target&&e.target.matches?.("input,textarea,[contenteditable]"))){if(this.autoplay>0&&!this._autoplayPaused&&this._startAutoplay(),this.overview){(e.key==="Escape"||e.key==="o"||e.key==="O"||e.key==="Enter")&&(e.preventDefault(),this.overview=!1);return}if(this.blank){e.preventDefault(),this.blank=null;return}if(e.key==="."||e.key==="b"||e.key==="B"){e.preventDefault(),this.blank="black";return}if(e.key===","||e.key==="w"||e.key==="W"){e.preventDefault(),this.blank="white";return}if(e.key==="?"||e.key==="h"||e.key==="H"){this._toggleHelp();return}if(e.key==="Escape"){this._closeHelp();return}if(e.key==="o"||e.key==="O"){e.preventDefault(),this.overview=!0;return}if(e.key==="p"||e.key==="P"){e.preventDefault(),this._togglePresenter();return}if(e.key==="Home"){this._goTo(0);return}if(e.key==="End"){this._goTo(this.slides.length-1);return}if(e.key===" "||e.key==="PageDown"){e.preventDefault(),this._advance();return}if(e.key==="PageUp"){e.preventDefault(),this._back();return}if(this._has2DNav()){let{c:r,i:s}=this._coords(this.current);if(e.key==="ArrowRight"){e.preventDefault(),r+1<this.chapters.length?this._goToCoords(r+1,0):this._advance();return}if(e.key==="ArrowLeft"){e.preventDefault(),r-1>=0?this._goToCoords(r-1,0):this._back();return}if(e.key==="ArrowDown"){e.preventDefault();let a=this.chapters[r];a&&s+1<a.slides.length?this._goToCoords(r,s+1):this._advance();return}if(e.key==="ArrowUp"){e.preventDefault(),s-1>=0?this._goToCoords(r,s-1):this._back();return}}else{if(e.key==="ArrowRight"||e.key==="ArrowDown"){e.preventDefault(),this._advance();return}if(e.key==="ArrowLeft"||e.key==="ArrowUp"){e.preventDefault(),this._back();return}}}}}firstUpdated(){this.slides=Array.from(this.querySelectorAll(":scope > *")).filter(e=>e.tagName?.toLowerCase().startsWith("deck-")&&e.tagName?.toLowerCase()!=="deck-root"),this._buildChapters(),this._readHash(!0),this._applyActive(),this._applyStep(),this._updateUI(),this.requestUpdate(),window.addEventListener("keydown",this._onKey),window.addEventListener("hashchange",this._onHash),this.autoplay>0&&this._startAutoplay(),this.swipe?(this.addEventListener("pointerdown",this._onPointerDown),this.addEventListener("pointerup",this._onPointerUp),this.addEventListener("pointercancel",this._onPointerUp),this.addEventListener("mouseenter",this._onHoverEnter),this.addEventListener("mouseleave",this._onHoverLeave)):this.autoplay>0&&(this.addEventListener("mouseenter",this._onHoverEnter),this.addEventListener("mouseleave",this._onHoverLeave))}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("keydown",this._onKey),window.removeEventListener("hashchange",this._onHash),this._stopAutoplay(),this.removeEventListener("pointerdown",this._onPointerDown),this.removeEventListener("pointerup",this._onPointerUp),this.removeEventListener("pointercancel",this._onPointerUp),this.removeEventListener("mouseenter",this._onHoverEnter),this.removeEventListener("mouseleave",this._onHoverLeave)}_startAutoplay(){this._stopAutoplay(),!(this.autoplay<=0||this._autoplayPaused)&&(this._autoplayTimer=window.setInterval(()=>this._autoTick(),this.autoplay))}_stopAutoplay(){this._autoplayTimer!==null&&(window.clearInterval(this._autoplayTimer),this._autoplayTimer=null)}_autoTick(){if(this.overview)return;this.current>=this.slides.length-1&&this.step>=this._maxSteps()&&this.loop?this._goTo(0):this._advance()}_buildChapters(){this.chapters=[];let e=null;this.slides.forEach((r,s)=>{r.tagName?.toLowerCase()==="deck-section"||!e?(e={startIdx:s,slides:[r]},this.chapters.push(e)):e.slides.push(r)})}_has2DNav(){return this.chapters.some(e=>e.slides.length>1)&&this.chapters.length>1}_coords(e){for(let r=0;r<this.chapters.length;r++){let s=this.chapters[r],a=e-s.startIdx;if(a>=0&&a<s.slides.length)return{c:r,i:a}}return{c:0,i:0}}_flatFromCoords(e,r){let s=this.chapters[e];return s?s.startIdx+Math.max(0,Math.min(s.slides.length-1,r)):0}_readHash(e){let r=location.hash,s=r.match(/^#(\d+)\.(\d+)(?:s(\d+))?$/),a=r.match(/^#(\d+)(?:\.(\d+))?$/),n=this.current,d=this.step;if(this._has2DNav()&&s){let h=parseInt(s[1],10)-1,v=parseInt(s[2],10)-1;n=this._flatFromCoords(Math.max(0,h),Math.max(0,v)),d=s[3]?parseInt(s[3],10):0}else if(a)n=parseInt(a[1],10)-1,d=a[2]?parseInt(a[2],10):0;else return;n===this.current&&d===this.step&&!e||(this.current=Math.max(0,Math.min(this.slides.length-1,n)),this.step=Math.max(0,d),e||(this._applyActive(),this._applyStep(),this._updateUI()))}_writeHash(){let e=`#${this.current+1}`+(this.step>0?`.${this.step}`:"");if(location.hash!==e)try{history.replaceState(null,"",e)}catch{}}async _toggleHelp(){(await Promise.resolve().then(()=>(Re(),rt))).toggleHelp(this)}async _togglePresenter(){(await Promise.resolve().then(()=>(it(),Nt))).installPresenter(this)}async _closeHelp(){(await Promise.resolve().then(()=>(Re(),rt))).closeHelp(this)}async _renderOverviewIfActive(){if(!this.overview){this._overviewTeardown?.(),this._overviewTeardown=null;return}let{mountOverview:e}=await Promise.resolve().then(()=>(st(),Rt));this._overviewTeardown=e(this,{slides:this.slides,chapters:this.chapters,currentIdx:this.current,onPick:r=>{this.overview=!1,this._goTo(r)}})}_maxSteps(){let e=this.slides[this.current];if(!e)return 0;let r=parseInt(e.getAttribute("steps")||e.dataset?.steps||"0",10);if(r>0)return r;let s=e.querySelector("deck-code[step-groups]");if(s)try{return JSON.parse(s.getAttribute("step-groups")).length}catch{}return 0}_advance(){let e=this._maxSteps();this.step<e?(this.step++,this._applyStep(),this._updateUI(),this._writeHash()):this.current<this.slides.length-1?this._goTo(this.current+1):this.loop&&this._goTo(0)}_back(){this.step>0?(this.step--,this._applyStep(),this._updateUI(),this._writeHash()):this.current>0?(this._goTo(this.current-1),this.step=this._maxSteps(),this._applyStep(),this._updateUI(),this._writeHash()):this.loop&&(this._goTo(this.slides.length-1),this.step=this._maxSteps(),this._applyStep(),this._updateUI(),this._writeHash())}_goTo(e){this.current=Math.max(0,Math.min(this.slides.length-1,e)),this.step=0,this._applyActive(),this._applyStep(),this._updateUI(),this._writeHash()}_goToCoords(e,r){let s=Math.max(0,Math.min(this.chapters.length-1,e)),a=this.chapters[s];if(!a)return;let n=Math.max(0,Math.min(a.slides.length-1,r));this._goTo(this._flatFromCoords(s,n))}_applyActive(){let e=this.slides.find(s=>s.hasAttribute("active"))??null,r=this.slides[this.current]??null;this.slides.forEach((s,a)=>{let n=a===this.current;s.toggleAttribute("active",n),n&&s.querySelectorAll("deck-mermaid").forEach(d=>d.render?.())}),this.transition&&!this._transitionLoaded&&(this._transitionLoaded=!0,Promise.resolve().then(()=>(ot(),Bt)).then(s=>s.installTransitions(this))),e!==r&&this.dispatchEvent(new CustomEvent("slide-change",{detail:{current:r,previous:e},bubbles:!1}))}_applyStep(){let e=this.slides[this.current];e&&(e.applyStep?.(this.step),e.querySelectorAll("*").forEach(r=>r.applyStep?.(this.step)),e.querySelectorAll("[data-step-block]").forEach(r=>{let s=parseInt(r.dataset.stepBlock,10);r.style.transition="opacity 0.25s ease",r.style.opacity=this.step===0||s<=this.step?"1":"0.15"}))}_updateUI(){let e=this.slides.length,r=this.current+1,s=this.renderRoot.querySelector("#progress"),a=this.renderRoot.querySelector("#counter"),n=this.renderRoot.querySelector("#step-dots");s&&(s.style.width=r/e*100+"%"),a&&(a.textContent=`${r} / ${e}`);let d=this._maxSteps();n&&(n.innerHTML=d===0?"":Array.from({length:d},(h,v)=>`<div class="dot${v<this.step?" active":""}"></div>`).join(""))}updated(){this._updateUI(),this._renderOverviewIfActive()}render(){return c`<div id="progress"></div> <div id="counter"></div> <div id="step-dots"></div> <div id="kb-hint"> <kbd>←</kbd><kbd>→</kbd> ${this._has2DNav()?c`<kbd>↑</kbd><kbd>↓</kbd>`:""}
|
|
483
488
|
<span>·</span>
|
|
484
489
|
<kbd>O</kbd>
|
|
485
490
|
<span>·</span>
|
|
@@ -489,28 +494,28 @@ ${s.themeHref?`<link rel="stylesheet" href="${s.themeHref}">`:""}
|
|
|
489
494
|
</div>
|
|
490
495
|
<slot></slot>
|
|
491
496
|
${this.blank?c`<div id="blank" data-tone="${this.blank}" @click=${()=>{this.blank=null}}></div>`:""}
|
|
492
|
-
`}};
|
|
497
|
+
`}};M.styles=m`:host{display:block;width:100vw;height:100vh;position:relative;background:var(--deck-root-bg,var(--rik-surface-page))}#progress{position:fixed;bottom:0;left:0;height:var(--deck-root-progress-height,3px);background:var(--deck-root-progress-color,linear-gradient(90deg,var(--rik-accent),var(--rik-accent--soft)));transition:width 0.25s ease;z-index:100}#counter{position:fixed;bottom:1rem;right:1.5rem;font-size:var(--rik-font-size-xs);color:var(--deck-root-counter-color,var(--rik-text-default--faint));font-family:var(--rik-font-mono);z-index:100}#step-dots{position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:100}.dot{width:6px;height:6px;border-radius:50%;background:var(--deck-root-dot-bg,#d4d4d0);transition:background 0.2s}.dot.active{background:var(--deck-root-dot-active-bg,var(--rik-accent))}#kb-hint{position:fixed;bottom:1rem;left:1.5rem;display:inline-flex;align-items:center;gap:6px;font:600 0.62rem/1 var(--rik-font-mono);color:var(--deck-root-kb-hint-color,var(--rik-text-default--faint));z-index:100;opacity:0.5;transition:opacity 0.2s ease;cursor:help}#kb-hint:hover{opacity:1}#kb-hint kbd{background:var(--rik-surface-raised);border:1px solid var(--rik-border-default);border-bottom:2px solid var(--rik-border-default);border-radius:4px;padding:2px 6px;color:var(--rik-text-default);font:inherit;min-width:16px;text-align:center}#kb-hint .sep{opacity:0.4}#blank{position:fixed;inset:0;z-index:9999;cursor:pointer}#blank[data-tone="black"]{background:#000}#blank[data-tone="white"]{background:#fff}`,o([O()],M.prototype,"current",2),o([O()],M.prototype,"step",2),o([O()],M.prototype,"blank",2),o([l({type:Boolean,reflect:!0})],M.prototype,"overview",2),o([l({type:String,reflect:!0})],M.prototype,"transition",2),o([l({type:Number,reflect:!0})],M.prototype,"autoplay",2),o([l({type:Boolean,reflect:!0})],M.prototype,"loop",2),o([l({type:Boolean,reflect:!0})],M.prototype,"swipe",2),M=o([u("deck-root")],M);ot();Re();st();it();var Ae=class extends p{get notes(){return(this.textContent??"").trim()}render(){return c`<slot></slot>`}};Ae.styles=m`:host{display:none}`,Ae=o([u("deck-notes")],Ae);var at=m`:host{display:none;position:absolute;inset:0;padding:var(--rik-slide-padding-y) var(--rik-slide-padding-x);flex-direction:column;overflow:hidden;background:var(--rik-surface-page);font-family:var(--rik-font-sans);color:var(--rik-text-default)}:host([active]){display:flex}`,Hr=m`h1{font-size:var(--rik-font-size-h1);font-weight:700;color:var(--rik-text-default);letter-spacing:-0.022em;line-height:1.15;margin-bottom:var(--rik-space-4);padding-bottom:var(--rik-space-2);border-bottom:3px solid var(--rik-accent);display:inline-block;align-self:flex-start;flex:0 0 auto}h1 .accent{color:var(--rik-accent)}::slotted(p),p{font-size:var(--rik-font-size-body);line-height:1.65;color:var(--rik-text-default--muted);margin:0}::slotted(strong),strong{color:var(--rik-text-default);font-weight:700}::slotted(code),code{font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono-sm);background:rgba(0,0,0,0.06);padding:2px 6px;border-radius:var(--rik-radius-sm);color:var(--rik-text-default)}`,Cr=m`.lbl{display:inline-block;padding:var(--deck-eyebrow-padding-y,4px) var(--deck-eyebrow-padding-x,12px);background:var(--deck-eyebrow-bg,var(--rik-accent));color:var(--deck-eyebrow-color,var(--rik-accent__on,var(--rik-surface-inverse)));border-radius:var(--deck-eyebrow-radius,var(--rik-radius-pill));font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--rik-space-1);align-self:flex-start}.lead{font-size:var(--rik-font-size-lead);color:var(--rik-text-default--faint);line-height:1.5;margin-bottom:var(--rik-space-4);max-width:75ch;flex:0 0 auto}.kicker{font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--rik-text-default--faint);margin-bottom:var(--rik-space-3);display:block}.kicker.on-dark{color:rgba(255,255,255,0.35)}.caption{font-size:var(--rik-font-size-sm);color:var(--rik-text-default--faint);line-height:1.55}.caption.on-dark{color:rgba(255,255,255,0.5)}.col-label{font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--rik-text-default--faint);margin-bottom:var(--rik-space-2)}`,P=[at,Hr,Cr];var E=class extends p{render(){let t=(this.brand??"").split("\xB7").map(n=>n.trim()).filter(Boolean),e=t[0]??"",r=t.slice(1).join(" \xB7 "),s=[this.speaker&&{l:this.speakerLabel??"Pr\xE9sent\xE9 par",v:this.speaker},this.company&&{l:this.companyLabel??"Entreprise",v:this.company},this.duration&&{l:this.durationLabel??"Dur\xE9e",v:this.duration},this.audience&&{l:this.audienceLabel??"Audience",v:this.audience},this.runtime&&{l:this.runtimeLabel??"Runtime",v:this.runtime}].filter(n=>!!n),a=!!this.brandSrc;return c`<div class="brand" part="brand"> ${a?c`<span class="brand-tile"><img src="${this.brandSrc}" alt="${e}"></span>`:""}
|
|
493
498
|
${e?c`<span class="brand-name">${e}</span>`:""}
|
|
494
499
|
${r?c`<span class="brand-context">${r}</span>`:""}
|
|
495
500
|
</div>
|
|
496
501
|
<slot></slot>
|
|
497
|
-
${
|
|
502
|
+
${s.length?c`<div class="meta" part="meta"> ${s.map(n=>c`
|
|
498
503
|
<div class="meta-item"><strong>${n.l}</strong><span>${n.v}</span></div>
|
|
499
504
|
`)}
|
|
500
505
|
</div>`:""}
|
|
501
|
-
`}};E.styles=[...
|
|
506
|
+
`}};E.styles=[...P,m`:host{background:var(--deck-cover-bg,var(--rik-surface-inverse));justify-content:center;color:var(--deck-cover-text,var(--rik-text-inverse))}.brand{display:inline-flex;align-items:center;gap:var(--rik-space-3);margin-bottom:var(--rik-space-5);align-self:flex-start}.brand-tile{width:64px;height:64px;display:inline-flex;align-items:center;justify-content:center}.brand-tile img{width:100%;height:100%;display:block}.brand-name{font-family:var(--rik-font-display,inherit);font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:var(--deck-cover-soft,var(--rik-text-inverse--muted))}.brand-context{font-size:var(--rik-font-size-xs);font-weight:700;color:var(--deck-cover-muted,var(--rik-text-inverse--faint));letter-spacing:0.2em;text-transform:uppercase;padding-left:var(--rik-space-3);border-left:1px solid var(--deck-cover-border,var(--rik-border-inverse))}::slotted(h1){font-size:clamp(3.6rem,9vw,8.5rem);font-weight:900;color:var(--deck-cover-text,var(--rik-text-inverse));line-height:1.02;letter-spacing:-0.035em;margin-bottom:var(--rik-space-4);border:none;padding:0}::slotted(.sub){font-size:var(--rik-font-size-h2);color:var(--deck-cover-muted,var(--rik-text-inverse--faint));margin-bottom:var(--rik-space-6);max-width:60ch;line-height:1.45;display:block}.meta{display:flex;gap:var(--rik-space-6);border-top:1px solid var(--deck-cover-border,var(--rik-border-inverse));padding-top:var(--rik-space-4)}.meta-item strong{display:block;font-size:var(--rik-font-size-xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--deck-cover-faint,var(--rik-text-inverse--ghost));margin-bottom:6px;font-weight:700}.meta-item span{color:var(--deck-cover-text,var(--rik-text-inverse));font-size:var(--rik-font-size-body);font-weight:600}`],o([l({type:String})],E.prototype,"brand",2),o([l({type:String,attribute:"brand-src"})],E.prototype,"brandSrc",2),o([l({type:String})],E.prototype,"speaker",2),o([l({type:String})],E.prototype,"company",2),o([l({type:String})],E.prototype,"duration",2),o([l({type:String})],E.prototype,"audience",2),o([l({type:String})],E.prototype,"runtime",2),o([l({type:String,attribute:"speaker-label"})],E.prototype,"speakerLabel",2),o([l({type:String,attribute:"company-label"})],E.prototype,"companyLabel",2),o([l({type:String,attribute:"duration-label"})],E.prototype,"durationLabel",2),o([l({type:String,attribute:"audience-label"})],E.prototype,"audienceLabel",2),o([l({type:String,attribute:"runtime-label"})],E.prototype,"runtimeLabel",2),E=o([u("deck-cover")],E);var ce=class extends p{render(){return c`${this.num?c`<div class="sec-num" part="num">${this.num}</div>`:""}
|
|
502
507
|
<slot></slot>
|
|
503
|
-
`}};
|
|
508
|
+
`}};ce.styles=[...P,m`:host{background:var(--deck-section-bg,var(--rik-surface-inverse));color:var(--rik-text-inverse);justify-content:center;align-items:center;text-align:center}.sec-num{font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--deck-section-num-color,var(--rik-text-inverse--ghost));margin-bottom:var(--rik-space-3);display:inline-flex;align-items:center;gap:0.8rem;font-family:var(--rik-font-mono)}.sec-num::before,.sec-num::after{content:'';width:32px;height:1px;background:var(--deck-section-rule-color,var(--rik-border-inverse))}::slotted(h1){font-size:var(--rik-font-size-section);font-weight:900;color:var(--deck-section-title-color,var(--rik-accent));line-height:1.02;letter-spacing:-0.03em;max-width:18ch;border:none;padding:0;margin:0;text-align:center;align-self:center}::slotted(h1 em){color:var(--deck-section-em-color,var(--rik-text-inverse--muted));font-style:normal;font-weight:700}`],o([l({type:String})],ce.prototype,"num",2),ce=o([u("deck-section")],ce);var pe=class extends p{render(){return c`${this.eyebrow?c`<span class="lbl">${this.eyebrow}</span>`:""}
|
|
504
509
|
<slot name="title"></slot>
|
|
505
510
|
<slot name="lead"></slot>
|
|
506
511
|
<div class="body" part="body"><slot></slot></div>
|
|
507
|
-
`}};
|
|
512
|
+
`}};pe.styles=[...P,m`:host{justify-content:flex-start}.body{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:flex-start;gap:var(--rik-space-3);overflow:hidden}::slotted(deck-code:not([nested])),::slotted(deck-mermaid),::slotted(table),::slotted(pre),::slotted(svg),::slotted(.hero-main){max-height:100%;flex:0 1 auto}`],o([l({type:String})],pe.prototype,"eyebrow",2),pe=o([u("deck-feature")],pe);var Y=class extends p{_resolveSp(t){let e=parseInt(t,10);return!Number.isNaN(e)&&e>=1&&e<=6?`var(--rik-space-${e})`:t}updated(){this.gap&&this.style.setProperty("--_gap",this._resolveSp(this.gap)),this.colGap&&this.style.setProperty("--_col-gap",this._resolveSp(this.colGap))}render(){let t=this.querySelector('[slot="a"]'),e=this.cols==="3"||!!t;return c`${this.eyebrow?c`<span class="lbl">${this.eyebrow}</span>`:""}
|
|
508
513
|
<slot name="title"></slot>
|
|
509
514
|
<slot name="lead"></slot>
|
|
510
515
|
<div class="body" part="body">
|
|
511
516
|
${e?c`<div class="col" part="col"><slot name="a"></slot></div> <div class="col" part="col"><slot name="b"></slot></div> <div class="col" part="col"><slot name="c"></slot></div>`:c`<div class="col" part="col"><slot name="left"></slot></div> <div class="col" part="col"><slot name="right"></slot></div>`}
|
|
512
517
|
</div>
|
|
513
|
-
`}};
|
|
518
|
+
`}};Y.styles=[...P,m`:host{justify-content:flex-start}.body{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1fr);gap:var(--_gap,var(--deck-split-gap,var(--rik-space-5)))}:host([cols="1-2"]) .body{grid-template-columns:1fr 2fr}:host([cols="2-1"]) .body{grid-template-columns:2fr 1fr}:host([cols="3"]) .body{grid-template-columns:1fr 1fr 1fr;gap:var(--_gap,var(--deck-split-gap,var(--rik-space-4)))}.col{display:flex;flex-direction:column;min-height:0;min-width:0;gap:var(--_col-gap,var(--deck-split-col-gap,var(--rik-space-3)));overflow:hidden}.col.center{justify-content:center}`],o([l({type:String})],Y.prototype,"eyebrow",2),o([l({type:String})],Y.prototype,"cols",2),o([l({type:String})],Y.prototype,"gap",2),o([l({type:String,attribute:"col-gap"})],Y.prototype,"colGap",2),Y=o([u("deck-split")],Y);var he=class extends p{render(){return c`${this.eyebrow?c`<span class="lbl">${this.eyebrow}</span>`:""}
|
|
514
519
|
<slot name="title"></slot>
|
|
515
520
|
<slot name="lead"></slot>
|
|
516
521
|
<div class="hero" part="hero"><slot></slot></div>
|
|
@@ -518,22 +523,22 @@ ${s.themeHref?`<link rel="stylesheet" href="${s.themeHref}">`:""}
|
|
|
518
523
|
<div class="col"><slot name="left"></slot></div>
|
|
519
524
|
<div class="col"><slot name="right"></slot></div>
|
|
520
525
|
</div>
|
|
521
|
-
`}};
|
|
526
|
+
`}};he.styles=[...P,m`:host{justify-content:flex-start}.hero{flex:var(--deck-feature-cards-hero-flex,1 1 50%);min-height:0;display:flex;flex-direction:column;overflow:hidden}::slotted(deck-code),::slotted(deck-mermaid),::slotted(pre),::slotted(table),::slotted(svg){max-height:100%;flex:1 1 auto}.detail{flex:var(--deck-feature-cards-detail-flex,0 1 40%);min-height:0;margin-top:var(--deck-feature-cards-gap,var(--rik-space-3));display:grid;grid-template-columns:1fr 1fr;gap:var(--deck-feature-cards-col-gap,var(--rik-space-4));overflow:hidden}.col{display:flex;flex-direction:column;gap:var(--rik-space-2);min-width:0;min-height:0;overflow:hidden}`],o([l({type:String})],he.prototype,"eyebrow",2),he=o([u("deck-feature-cards")],he);var R=class extends p{updated(){this.position&&this.style.setProperty("--_pos",this.position),typeof this.darken=="number"&&this.style.setProperty("--_dim",String(this.darken));let t=this.align==="top"?"flex-start":this.align==="bottom"?"flex-end":"center";if(this.style.setProperty("--_align",t),this.textAlign){this.style.setProperty("--_text-align",this.textAlign);let e=this.textAlign==="center"?"center":this.textAlign==="right"?"flex-end":"flex-start";this.style.setProperty("--_text-align-items",e)}}render(){let t=this.src?`background-image: url("${this.src.replace(/"/g,"%22")}")`:"";return c`<div class="bg" part="bg" style=${t}></div> <div class="overlay" part="overlay"></div> <div class="content" part="content"><slot></slot></div>`}};R.styles=[at,m`:host{padding:0;color:var(--deck-photo-text-color,var(--rik-text-inverse));overflow:hidden}.bg{position:absolute;inset:0;background-size:cover;background-position:var(--_pos,center);background-repeat:no-repeat}.overlay{position:absolute;inset:0;background:var(--deck-photo-overlay-color,rgba(0,0,0,var(--_dim,0.35)))}.content{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--rik-space-3);padding:var(--deck-photo-padding-y,var(--rik-slide-padding-y)) var(--deck-photo-padding-x,var(--rik-slide-padding-x));width:100%;height:100%;max-width:100%;box-sizing:border-box;justify-content:var(--_align,center);text-align:var(--_text-align,left);align-items:var(--_text-align-items,flex-start)}.content > *{max-width:var(--deck-photo-content-max-width,36ch)}::slotted(h1){font-family:var(--rik-font-display,var(--rik-font-sans));font-size:clamp(2.5rem,6vw,5.5rem);font-weight:900;letter-spacing:-0.035em;line-height:1.02;color:var(--deck-photo-text-color,var(--rik-text-inverse));margin:0;text-shadow:0 2px 16px rgba(0,0,0,0.35)}::slotted(h2){font-family:var(--rik-font-display,var(--rik-font-sans));font-size:clamp(1.6rem,3vw,2.6rem);font-weight:800;letter-spacing:-0.025em;line-height:1.1;color:var(--deck-photo-text-color,var(--rik-text-inverse));margin:0;text-shadow:0 2px 12px rgba(0,0,0,0.35)}::slotted(p),::slotted(.sub){font-size:var(--rik-font-size-lead);color:var(--deck-photo-text-muted,var(--rik-text-inverse--muted));line-height:1.5;margin:0;text-shadow:0 1px 8px rgba(0,0,0,0.35)}::slotted(.kicker){font:700 var(--rik-font-size-xs)/1 var(--rik-font-mono);letter-spacing:0.18em;text-transform:uppercase;color:var(--deck-photo-text-muted,var(--rik-text-inverse--muted));margin:0}`],o([l({type:String})],R.prototype,"src",2),o([l({type:String})],R.prototype,"position",2),o([l({type:Number})],R.prototype,"darken",2),o([l({type:String})],R.prototype,"align",2),o([l({type:String,attribute:"text-align"})],R.prototype,"textAlign",2),R=o([u("deck-photo")],R);var me=class extends p{render(){return c`<div class="body" part="body"> ${this.kicker?c`<span class="kicker on-dark">${this.kicker}</span>`:""}
|
|
522
527
|
<slot></slot>
|
|
523
528
|
</div>
|
|
524
|
-
`}};
|
|
525
|
-
`),
|
|
526
|
-
`);this._html=
|
|
527
|
-
`),r=e.filter(
|
|
528
|
-
`)),this._render()}async _render(){if(!this._source)return;await
|
|
529
|
+
`}};me.styles=[...P,m`:host{background:var(--deck-takeaway-bg,var(--rik-surface-inverse));color:var(--rik-text-inverse);justify-content:center;align-items:center;text-align:center}.body{display:flex;flex-direction:column;align-items:center;gap:var(--deck-takeaway-gap,var(--rik-space-4));max-width:75vw}::slotted(.display){font-family:var(--rik-font-display,var(--rik-font-sans));font-size:clamp(3rem,7vw,5.5rem);font-weight:900;color:var(--deck-takeaway-display-color,var(--rik-accent));letter-spacing:-0.03em;line-height:1.05;margin:0}::slotted(.display.danger){color:var(--rik-status-danger)}::slotted(.caption){font-size:var(--rik-font-size-lead);color:var(--deck-takeaway-caption-color,var(--rik-text-inverse--faint))}`],o([l({type:String})],me.prototype,"kicker",2),me=o([u("deck-takeaway")],me);var qt={info:'<circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/>',warn:'<path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"/><path d="M12 9v4"/><path d="M12 17h.01"/>',danger:'<circle cx="12" cy="12" r="10"/><path d="M12 8v4"/><path d="M12 16h.01"/>',ok:'<path d="M20 6 9 17l-5-5"/>'},ve=class extends p{render(){let t=this.type??"info",e=qt[t]??qt.info;return c`<div class="icon-box"> <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" .innerHTML="${e}"></svg> </div> <div class="content"><slot></slot></div>`}};ve.styles=m`:host{display:flex;gap:var(--rik-space-3);padding:var(--deck-callout-padding-y,var(--rik-space-3)) var(--deck-callout-padding-x,var(--rik-space-4));border-radius:var(--deck-callout-radius,var(--rik-radius-md));background:var(--deck-callout-bg,var(--rik-status-info__bg--mid));border:1px solid var(--deck-callout-border,var(--rik-status-info__border));box-shadow:var(--rik-elevation-2);align-items:center;color:var(--rik-text-default--muted);font-family:var(--rik-font-sans);font-size:var(--rik-font-size-body);line-height:1.55}:host([type="info"]){--deck-callout-bg:var(--rik-status-info__bg--mid);--deck-callout-border:var(--rik-status-info__border);--deck-callout-stroke:var(--rik-accent)}:host([type="warn"]){--deck-callout-bg:var(--rik-status-warn__bg);--deck-callout-border:var(--rik-status-warn__border);--deck-callout-stroke:var(--rik-status-warn)}:host([type="danger"]){--deck-callout-bg:var(--rik-status-danger__bg);--deck-callout-border:var(--rik-status-danger__border);--deck-callout-stroke:var(--rik-status-danger)}:host([type="ok"]){--deck-callout-bg:var(--rik-status-success__bg);--deck-callout-border:var(--rik-status-success__border);--deck-callout-stroke:var(--rik-status-success)}.icon-box{flex-shrink:0;width:var(--rik-icon-2xl);height:var(--rik-icon-2xl);display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--rik-surface-tint)}.icon-box svg{width:var(--rik-icon-lg);height:var(--rik-icon-lg);stroke:var(--deck-callout-stroke,var(--rik-accent));stroke-width:2.2}.content{flex:1}::slotted(p){margin:0}::slotted(strong){color:var(--rik-text-default);font-weight:700}::slotted(code){font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono-sm);background:var(--rik-surface-tint);padding:2px 6px;border-radius:var(--rik-radius-sm);color:var(--rik-text-default)}`,o([l({type:String})],ve.prototype,"type",2),ve=o([u("deck-callout")],ve);var G=class extends p{constructor(){super(...arguments);this.center=!1;this.compact=!1}render(){return c`<slot></slot>`}};G.styles=m`:host{display:flex;flex-direction:column;gap:var(--deck-card-gap,var(--rik-space-2));background:var(--deck-card-bg,var(--rik-surface-raised--strong));border:1px solid var(--deck-card-border,var(--rik-border-default));border-radius:var(--deck-card-radius,var(--rik-radius-lg));padding:var(--deck-card-padding-y,var(--rik-space-3)) var(--deck-card-padding-x,var(--rik-space-4));box-shadow:var(--deck-card-shadow,var(--rik-elevation-2));min-height:0;font-family:var(--rik-font-sans);color:var(--deck-card-text,var(--rik-text-default--muted))}:host([color="yellow"]){background:var(--deck-card-bg,var(--rik-status-info__bg));border:4px solid var(--deck-card-border,var(--rik-status-info__border))}:host([color="orange"]){background:var(--deck-card-bg,var(--rik-status-warn__bg));border:4px solid var(--deck-card-border,var(--rik-status-warn__border))}:host([color="green"]){background:var(--deck-card-bg,var(--rik-status-success__bg));border:4px solid var(--deck-card-border,var(--rik-status-success__border))}:host([color="red"]){background:var(--deck-card-bg,var(--rik-status-danger__bg));border:4px solid var(--deck-card-border,var(--rik-status-danger__border))}::slotted(h3){font-family:var(--rik-font-display,var(--rik-font-sans));font-size:var(--rik-font-size-h2);font-weight:700;color:var(--deck-card-title-color,var(--rik-text-default));letter-spacing:-0.01em;line-height:1.25;margin:0}::slotted(p){font-size:var(--rik-font-size-body);line-height:1.55;margin:0}::slotted(strong){color:var(--rik-text-default);font-weight:700}:host([center]){text-align:center;align-items:center}:host([compact]){padding:var(--rik-space-2) var(--rik-space-3)}`,o([l({type:String})],G.prototype,"color",2),o([l({type:Boolean})],G.prototype,"center",2),o([l({type:Boolean})],G.prototype,"compact",2),G=o([u("deck-card")],G);import{marked as Yt}from"https://cdn.jsdelivr.net/npm/marked@12/+esm";Yt.setOptions({gfm:!0,breaks:!1});var ue=class extends p{constructor(){super(...arguments);this._html=""}connectedCallback(){super.connectedCallback(),this._parse()}_parse(){let e=this.textContent??"",r=e.split(`
|
|
530
|
+
`),s=r.filter(n=>n.trim().length>0).reduce((n,d)=>Math.min(n,d.match(/^ */)?.[0].length??0),1/0),a=s===1/0?e:r.map(n=>n.slice(s)).join(`
|
|
531
|
+
`);this._html=Yt.parse(a.trim()),this.textContent=""}render(){return c`<div class="content" .innerHTML="${this._html}"></div>`}};ue.styles=m`:host{display:block;color:var(--rik-text-default--muted);font-family:var(--rik-font-sans)}h1,h2,h3,h4{color:var(--rik-text-default);font-weight:700;letter-spacing:-0.01em}h2{font-size:var(--rik-font-size-h2);margin-bottom:var(--rik-space-2)}h3{font-size:var(--rik-font-size-lead);margin-bottom:var(--rik-space-2);margin-top:var(--rik-space-3)}h4{font-size:var(--rik-font-size-body);margin-bottom:var(--rik-space-1);margin-top:var(--rik-space-3)}p{font-size:var(--rik-font-size-body);line-height:1.65;margin:0 0 var(--rik-space-3)}p:last-child{margin-bottom:0}strong{color:var(--rik-text-default);font-weight:700}em{font-style:italic}code{font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono-sm);background:var(--rik-surface-tint);padding:2px 6px;border-radius:var(--rik-radius-sm);color:var(--rik-text-default)}pre{background:var(--deck-md-pre-bg,var(--rik-code__bg));border:1px solid var(--deck-md-pre-border,var(--rik-code__border));border-radius:var(--rik-radius-md);padding:var(--rik-space-3) var(--rik-space-4);overflow:auto;font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono);line-height:1.75;color:var(--deck-md-pre-text,var(--rik-code__text));margin:0 0 var(--rik-space-3);box-shadow:var(--rik-elevation-2)}pre code{background:none;padding:0;color:inherit;border-radius:0}ul,ol{padding-left:1.4rem;margin:0 0 var(--rik-space-3)}li{margin-bottom:var(--rik-space-1);font-size:var(--rik-font-size-body);line-height:1.55}li::marker{color:var(--rik-accent)}a{color:var(--rik-accent);text-decoration:underline;text-decoration-thickness:1px}blockquote{border-left:3px solid var(--rik-accent);padding:var(--rik-space-1) var(--rik-space-3);color:var(--rik-text-default--faint);font-style:italic;margin:0 0 var(--rik-space-3)}hr{border:none;border-top:1px solid var(--rik-border-default);margin:var(--rik-space-4) 0}.content{display:contents}`,o([O()],ue.prototype,"_html",2),ue=o([u("deck-md")],ue);var Wt=!1;async function Pr(){Wt||(window.mermaid||await new Promise((i,t)=>{let e=document.createElement("script");e.src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js",e.onload=()=>i(),e.onerror=()=>t(new Error("mermaid failed to load")),document.head.appendChild(e)}),window.mermaid.initialize({startOnLoad:!1,theme:"dark",themeVariables:{background:"#0f0f10",mainBkg:"#2a2a2a",nodeBorder:"#555",lineColor:"#777",textColor:"#e5e5e5",fontSize:"13px",edgeLabelBackground:"#111"},flowchart:{curve:"basis",htmlLabels:!0,padding:12},securityLevel:"loose"}),Wt=!0)}var Nr=0,ie=class extends p{constructor(){super(...arguments);this.rendered=!1;this._svg="";this._source=""}connectedCallback(){super.connectedCallback(),this._source=(this.textContent??"").trim();let e=this._source.split(`
|
|
532
|
+
`),r=e.filter(s=>s.trim()).reduce((s,a)=>Math.min(s,a.match(/^ */)?.[0].length??0),1/0);r<1/0&&(this._source=e.map(s=>s.slice(r)).join(`
|
|
533
|
+
`)),this._render()}async _render(){if(!this._source)return;await Pr();let e=`mmd-${++Nr}`;try{let{svg:r}=await window.mermaid.render(e,this._source);this._svg=r,this.rendered=!0}catch(r){console.error("Mermaid render error",r);let s=r instanceof Error?r.message:String(r);this._svg=`<pre style="color:#f87171">${s}</pre>`}}render(){return c`<div class="canvas" .innerHTML="${this._svg}"></div>`}};ie.styles=m`:host{display:flex;align-items:center;justify-content:center;background:var(--deck-mermaid-bg,var(--rik-code__bg));border:1px solid var(--deck-mermaid-border,var(--rik-code__border));border-radius:var(--deck-mermaid-radius,var(--rik-radius-md));padding:var(--deck-mermaid-padding,var(--rik-space-4));box-shadow:var(--rik-elevation-2);overflow:hidden;min-width:0}:host([compact]){padding:var(--rik-space-2)}.canvas{width:100%;max-width:100%;text-align:center;overflow:hidden}.canvas svg{width:100% !important;height:auto !important;max-width:100% !important;max-height:60vh}:host([compact]) .canvas{max-width:60%}:host([compact]) .canvas svg{max-height:22vh}`,o([l({type:Boolean,reflect:!0})],ie.prototype,"rendered",2),o([O()],ie.prototype,"_svg",2),ie=o([u("deck-mermaid")],ie);var Ir={yellow:"var(--rik-accent)",orange:"var(--rik-status-warn)",green:"var(--rik-status-success)",red:"var(--rik-status-danger)",purple:"var(--rik-decor-orchid)",lime:"var(--rik-decor-lime)",cyan:"var(--rik-decor-canary)"},se=class extends p{updated(){this.tone?this.style.setProperty("--_c",Ir[this.tone]??this.tone):this.style.removeProperty("--_c")}render(){return c`${this.num?c`<div class="num" part="num">${this.num}</div>`:""}
|
|
529
534
|
<slot name="claim"></slot>
|
|
530
535
|
<div class="body" part="body"><slot></slot></div>
|
|
531
|
-
`}};
|
|
532
|
-
`}};
|
|
536
|
+
`}};se.styles=m`:host{display:flex;flex-direction:column;gap:var(--deck-stat-gap,var(--rik-space-2));padding:var(--deck-stat-padding-y,var(--rik-space-4)) var(--deck-stat-padding-x,var(--rik-space-3));border-left:var(--deck-stat-border-width,4px) solid var(--_c,var(--deck-stat-color,var(--rik-accent)));min-width:0;font-family:var(--rik-font-sans)}.num{font-family:var(--rik-font-display,var(--rik-font-sans));font-size:var(--deck-stat-num-size,clamp(3.5rem,7vw,6rem));font-weight:var(--deck-stat-num-weight,900);line-height:0.9;color:var(--_c,var(--deck-stat-color,var(--rik-accent)));letter-spacing:-0.04em}::slotted([slot="claim"]){font-family:var(--rik-font-display,var(--rik-font-sans));font-size:var(--rik-font-size-strong);font-weight:800;color:var(--deck-stat-claim-color,var(--rik-text-default));line-height:1.1;letter-spacing:-0.02em;margin:0}.body{font-size:var(--rik-font-size-body);color:var(--deck-stat-body-color,var(--rik-text-default--faint));line-height:1.45;margin-top:var(--rik-space-2)}::slotted(strong){color:var(--rik-text-default);font-weight:700}::slotted(code){font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono-sm);background:var(--rik-surface-tint);color:var(--rik-text-default);padding:2px 6px;border-radius:var(--rik-radius-sm)}`,o([l({type:String})],se.prototype,"num",2),o([l({type:String})],se.prototype,"tone",2),se=o([u("deck-stat")],se);var Te=class extends p{render(){return c`<slot></slot>`}};Te.styles=m`:host{display:flex;flex-direction:column;gap:var(--rik-space-2)}`,Te=o([u("deck-metric-list")],Te);var J=class extends p{constructor(){super(...arguments);this.mono=!1}render(){return c`<span class="label ${this.mono?"mono":""}"><slot></slot></span> <span class="value" data-severity="${this.severity??""}">${this.value}</span>`}};J.styles=m`:host{display:flex;justify-content:space-between;align-items:center;background:var(--deck-metric-bg,var(--rik-surface-raised--strong));border:1px solid var(--deck-metric-border,var(--rik-border-default));border-radius:var(--deck-metric-radius,var(--rik-radius-md));padding:var(--deck-metric-padding-y,var(--rik-space-2)) var(--deck-metric-padding-x,var(--rik-space-4));font-family:var(--rik-font-sans);font-size:var(--rik-font-size-body);color:var(--deck-metric-text,var(--rik-text-default--muted));box-shadow:var(--deck-metric-shadow,var(--rik-elevation-2))}.label{font-family:inherit}.label.mono{font-family:var(--rik-font-mono);font-size:var(--rik-font-size-sm);color:var(--deck-metric-label-color,var(--rik-text-default--faint))}.value{font-weight:700}.value[data-severity="bad"]{color:var(--deck-metric-value-bad,var(--rik-status-danger))}.value[data-severity="warn"]{color:var(--deck-metric-value-warn,var(--rik-status-warn))}.value[data-severity="ok"]{color:var(--deck-metric-value-ok,var(--rik-status-success))}.value[data-severity="info"]{color:var(--deck-metric-value-info,var(--rik-status-info__text))}`,o([l({type:String})],J.prototype,"value",2),o([l({type:String})],J.prototype,"severity",2),o([l({type:Boolean})],J.prototype,"mono",2),J=o([u("deck-metric")],J);var Le=class extends p{render(){return c`<slot></slot>`}};Le.styles=m`:host{display:flex;flex-direction:column;gap:var(--rik-space-2xs)}`,Le=o([u("deck-tier-list")],Le);var W=class extends p{constructor(){super(...arguments);this.hot=!1}render(){return c`<div class="head"> <span class="name">${this.name}</span> <span class="speed" data-severity="${this.severity??(this.hot?"hot":"")}">${this.speed}</span> </div> <div class="desc"><slot></slot></div>`}};W.styles=m`:host{display:flex;flex-direction:column;gap:var(--rik-space-hair);background:var(--deck-tier-bg,var(--rik-surface-raised--strong));border:1px solid var(--deck-tier-border,var(--rik-border-default));border-radius:var(--deck-tier-radius,var(--rik-radius-md));padding:var(--deck-tier-padding-y,var(--rik-space-2)) var(--deck-tier-padding-x,var(--rik-space-4));box-shadow:var(--deck-tier-shadow,var(--rik-elevation-2));font-family:var(--rik-font-sans)}:host([hot]){border-color:var(--deck-tier-hot-border,var(--rik-status-info__border));background:var(--deck-tier-hot-bg,var(--rik-status-info__bg))}.head{display:flex;justify-content:space-between;align-items:baseline}.name{font:700 var(--rik-font-size-body)/1 var(--rik-font-mono);color:var(--deck-tier-name-color,var(--rik-text-default))}:host([hot]) .name{color:var(--deck-tier-hot-color,var(--rik-accent))}.speed{font:700 var(--rik-font-size-body)/1 var(--rik-font-mono)}.speed[data-severity="muted"]{color:var(--deck-tier-speed-muted,var(--rik-text-default--faint))}.speed[data-severity="warn"]{color:var(--deck-tier-speed-warn,var(--rik-status-warn))}.speed[data-severity="ok"]{color:var(--deck-tier-speed-ok,var(--rik-status-success))}:host([hot]) .speed{color:var(--deck-tier-hot-color,var(--rik-accent))}.desc{font-size:var(--rik-font-size-sm);color:var(--deck-tier-desc-color,var(--rik-text-default--faint));line-height:1.4}`,o([l({type:String})],W.prototype,"name",2),o([l({type:String})],W.prototype,"speed",2),o([l({type:String})],W.prototype,"severity",2),o([l({type:Boolean,reflect:!0})],W.prototype,"hot",2),W=o([u("deck-tier")],W);var ze=class extends p{render(){return c`<slot></slot>`}};ze.styles=m`:host{display:block;text-align:center;color:var(--rik-text-default--faint);opacity:var(--rik-opacity-soft);font-size:var(--rik-font-size-xs);padding:2px 0}`,ze=o([u("deck-tier-arrow")],ze);var Me=class extends p{render(){return c`<slot></slot>`}};Me.styles=m`:host{display:flex;flex-direction:column;gap:var(--rik-space-2xs)}`,Me=o([u("deck-step-list")],Me);var oe=class extends p{render(){return c`<span class="step-num">${this.n}</span> <span class="label"><slot></slot></span> ${this.note?c`<span class="chip">${this.note}</span>`:""}
|
|
537
|
+
`}};oe.styles=m`:host{display:flex;align-items:center;gap:var(--rik-space-3);background:var(--deck-step-bg,var(--rik-surface-raised--strong));border:1px solid var(--deck-step-border,var(--rik-border-default));border-radius:var(--deck-step-radius,var(--rik-radius-md));padding:var(--deck-step-padding-y,var(--rik-space-2xs)) var(--deck-step-padding-x,var(--rik-space-3));box-shadow:var(--deck-step-shadow,var(--rik-elevation-2));font-family:var(--rik-font-sans);font-size:var(--rik-font-size-body)}.step-num{flex:0 0 auto;width:var(--deck-step-num-size,var(--rik-icon-sm));height:var(--deck-step-num-size,var(--rik-icon-sm));display:inline-flex;align-items:center;justify-content:center;background:var(--deck-step-num-bg,var(--rik-accent));color:var(--deck-step-num-color,var(--rik-accent__on,var(--rik-surface-inverse)));border-radius:50%;font:700 var(--rik-font-size-xs)/1 var(--rik-font-sans)}.label{flex:1;font-family:var(--rik-font-mono);font-weight:600;color:var(--deck-step-label-color,var(--rik-text-default))}.chip{flex:0 0 auto;display:inline-block;padding:2px var(--rik-space-2);background:var(--deck-step-chip-bg,var(--rik-surface-tint));color:var(--deck-step-chip-color,var(--rik-text-default--faint));border-radius:var(--rik-radius-pill);font:600 var(--rik-font-size-sm)/1.4 var(--rik-font-sans)}`,o([l({type:String})],oe.prototype,"n",2),o([l({type:String})],oe.prototype,"note",2),oe=o([u("deck-step")],oe);var fe=class extends p{render(){return c`<slot></slot>`}};fe.styles=m`:host{display:inline-flex;align-items:center;justify-content:center;background:var(--deck-kbd-bg,var(--rik-surface-raised--strong));border:1px solid var(--deck-kbd-border,var(--rik-border-default));border-bottom:3px solid var(--rik-surface-tint--strong,rgba(0,0,0,0.10));border-radius:var(--deck-kbd-radius,5px);padding:var(--deck-kbd-padding-y,3px) var(--deck-kbd-padding-x,8px);font:700 0.92rem/1 var(--rik-font-mono);color:var(--deck-kbd-color,var(--rik-text-default));min-width:22px;text-align:center;box-shadow:0 1px 0 rgba(255,255,255,0.5) inset}:host([tone="accent"]){background:var(--deck-kbd-accent-bg,var(--rik-accent));color:var(--deck-kbd-color,var(--rik-accent__on,var(--rik-surface-inverse)));border-color:rgba(0,0,0,0.15)}:host([tone="ok"]){background:var(--deck-kbd-ok-bg,var(--rik-status-success));color:var(--deck-kbd-color,var(--rik-surface-inverse));border-color:rgba(0,0,0,0.15)}`,o([l({type:String})],fe.prototype,"tone",2),fe=o([u("deck-kbd")],fe);var F=class extends p{render(){let t=(this.keys??"").trim().split(/\s+/).filter(Boolean);return c`<span class="keys" part="keys"> ${t.map(e=>c`<span class="k">${e}</span>`)}
|
|
533
538
|
</span>
|
|
534
539
|
<div class="body" part="body">
|
|
535
540
|
${this.label?c`<div class="label">${this.label}</div>`:""}
|
|
536
541
|
${this.note?c`<div class="note">${this.note}</div>`:c`<div class="note"><slot></slot></div>`}
|
|
537
542
|
</div>
|
|
538
|
-
`}};
|
|
539
|
-
`);for(;r.length&&!r[0].trim();)r.shift();for(;r.length&&!r[r.length-1].trim();)r.pop();let
|
|
543
|
+
`}};F.styles=m`:host{display:flex;align-items:center;gap:var(--rik-space-3);padding:var(--rik-space-2) 0;font-family:var(--rik-font-sans)}.keys{display:inline-flex;gap:4px;flex-shrink:0}.keys deck-kbd,.keys .k{display:inline-flex;align-items:center;justify-content:center;background:var(--rik-surface-raised--strong);border:1px solid var(--rik-border-default);border-bottom:3px solid rgba(0,0,0,0.10);border-radius:5px;padding:3px 8px;font:700 0.92rem/1 var(--rik-font-mono);color:var(--rik-text-default);min-width:22px;text-align:center}.body{flex:1;min-width:0}.label{font:700 var(--rik-font-size-body)/1.2 var(--rik-font-sans);color:var(--rik-text-default)}.note{font:400 var(--rik-font-size-sm)/1.4 var(--rik-font-sans);color:var(--rik-text-default--faint);margin-top:2px}:host([tone="accent"]) .keys .k{background:var(--rik-accent);color:var(--rik-surface-inverse);border-color:rgba(0,0,0,0.15)}:host([tone="ok"]) .keys .k{background:var(--rik-status-success);color:var(--rik-surface-inverse);border-color:rgba(0,0,0,0.15)}`,o([l({type:String})],F.prototype,"keys",2),o([l({type:String})],F.prototype,"label",2),o([l({type:String})],F.prototype,"note",2),o([l({type:String})],F.prototype,"tone",2),F=o([u("deck-shortcut")],F);var ae=class extends p{updated(){if(this.colGap){let t=parseInt(this.colGap,10),e=!Number.isNaN(t)&&t>=1&&t<=6?`var(--sp-${t})`:this.colGap;this.style.setProperty("--_col-gap",e)}}render(){return c`<slot></slot>`}};ae.styles=m`:host{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--_col-gap,var(--rik-space-5));font-family:var(--rik-font-sans)}:host([cols="1"]){grid-template-columns:1fr}::slotted(deck-shortcut){border-bottom:1px solid var(--rik-border-default)}`,o([l({type:String})],ae.prototype,"cols",2),o([l({type:String,attribute:"col-gap"})],ae.prototype,"colGap",2),ae=o([u("deck-shortcut-list")],ae);var Or={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around"},jr={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch"},K=class extends p{updated(){if(this.gap){let t=parseInt(this.gap,10);!Number.isNaN(t)&&t>=1&&t<=6?this.style.setProperty("--_gap",`var(--rik-space-${t})`):this.style.setProperty("--_gap",this.gap)}else this.style.removeProperty("--_gap");this.style.setProperty("--_dir",this.direction==="row"?"row":"column"),this.align&&this.style.setProperty("--_align",jr[this.align]??this.align),this.justify&&this.style.setProperty("--_justify",Or[this.justify]??this.justify)}render(){return c`<slot></slot>`}};K.styles=m`:host{display:flex;flex-direction:var(--_dir,column);gap:var(--_gap,var(--deck-stack-gap,var(--rik-space-3)));align-items:var(--_align,stretch);justify-content:var(--_justify,flex-start);min-width:0;min-height:0}:host([fill]){flex:1 1 auto}`,o([l({type:String})],K.prototype,"gap",2),o([l({type:String})],K.prototype,"direction",2),o([l({type:String})],K.prototype,"align",2),o([l({type:String})],K.prototype,"justify",2),K=o([u("deck-stack")],K);var Ft={start:"start",center:"center",end:"end",stretch:"stretch"};function Kt(i){if(!i)return null;let t=parseInt(i,10);return!Number.isNaN(t)&&String(t)===i.trim()&&t>=1&&t<=12?`repeat(${t}, minmax(0, 1fr))`:i}function Rr(i){if(!i)return null;let t=parseInt(i,10);return!Number.isNaN(t)&&t>=1&&t<=6?`var(--rik-space-${t})`:i}var U=class extends p{updated(){let t=Kt(this.cols),e=Kt(this.rows),r=Rr(this.gap);t&&this.style.setProperty("--_cols",t),e&&this.style.setProperty("--_rows",e),r&&this.style.setProperty("--_gap",r),this.align&&this.style.setProperty("--_align",Ft[this.align]??this.align),this.justify&&this.style.setProperty("--_justify",Ft[this.justify]??this.justify)}render(){return c`<slot></slot>`}};U.styles=m`:host{display:grid;grid-template-columns:var(--_cols,1fr);grid-template-rows:var(--_rows,auto);gap:var(--_gap,var(--deck-grid-gap,var(--rik-space-3)));align-items:var(--_align,stretch);justify-items:var(--_justify,stretch);min-width:0;min-height:0}:host([fill]){flex:1 1 auto;height:100%}`,o([l({type:String})],U.prototype,"cols",2),o([l({type:String})],U.prototype,"rows",2),o([l({type:String})],U.prototype,"gap",2),o([l({type:String})],U.prototype,"align",2),o([l({type:String})],U.prototype,"justify",2),U=o([u("deck-grid")],U);var ge=class extends p{render(){return c`<slot></slot>`}};ge.styles=m`:host{display:inline-block;padding:var(--deck-badge-padding-y,var(--rik-space-1)) var(--deck-badge-padding-x,var(--rik-space-3));margin-bottom:var(--rik-space-2);font:700 var(--rik-font-size-xs)/1.2 var(--rik-font-sans);letter-spacing:0.1em;text-transform:uppercase;border-radius:var(--deck-badge-radius,var(--rik-radius-pill));background:var(--deck-badge-bg,var(--rik-surface-tint));color:var(--deck-badge-fg,var(--rik-text-default--faint));border:1px solid var(--deck-badge-border,var(--rik-border-default))}:host([type="bad"]){--deck-badge-bg:var(--rik-status-danger__bg);--deck-badge-fg:var(--rik-status-danger);--deck-badge-border:var(--rik-status-danger__border)}:host([type="ok"]){--deck-badge-bg:var(--rik-status-success__bg);--deck-badge-fg:var(--rik-status-success);--deck-badge-border:var(--rik-status-success__border)}:host([type="info"]){--deck-badge-bg:var(--rik-status-info__bg--strong);--deck-badge-fg:var(--rik-status-info__text);--deck-badge-border:var(--rik-status-info__border)}:host([type="warn"]){--deck-badge-bg:var(--rik-status-warn__bg);--deck-badge-fg:var(--rik-status-warn);--deck-badge-border:var(--rik-status-warn__border)}`,o([l({type:String})],ge.prototype,"type",2),ge=o([u("deck-badge")],ge);var nt=class extends p{static{this.styles=m`:host{display:block;font:700 var(--deck-kicker-font-size,var(--rik-font-size-xs))/1.2 var(--rik-font-sans);letter-spacing:var(--deck-kicker-tracking,0.14em);text-transform:uppercase;color:var(--deck-kicker-color,var(--rik-text-default--faint));margin-bottom:var(--deck-kicker-margin,var(--rik-space-2))}:host([on-dark]){color:var(--deck-kicker-on-dark-color,var(--rik-text-inverse--faint))}`}render(){return c`<slot></slot>`}};customElements.define("deck-kicker",nt);var Vt={warn:"var(--rik-status-warn)",danger:"var(--rik-status-danger)",ok:"var(--rik-status-success)",info:"var(--rik-accent)",muted:"var(--rik-text-default--faint)",accent:"var(--rik-accent)"},Xt={lead:"var(--rik-font-size-lead)",big:"var(--rik-font-size-big)",mega:"var(--rik-font-size-mega)",stat:"var(--rik-font-size-stat)",display:"clamp(2.6rem, 6vw, 5rem)"},V=class extends p{updated(){this.tone&&Vt[this.tone]?this.style.setProperty("--_color",Vt[this.tone]):this.style.removeProperty("--_color"),this.size&&Xt[this.size]?this.style.setProperty("--_size",Xt[this.size]):this.style.removeProperty("--_size")}render(){return c`<slot></slot>`}};V.styles=m`:host{display:block;margin:0;font-family:var(--rik-font-display,var(--rik-font-sans));font-weight:900;line-height:1.1;letter-spacing:-0.02em;font-size:var(--deck-punch-size,var(--_size,var(--rik-font-size-lead)));color:var(--deck-punch-color,var(--_color,inherit))}:host([weight="700"]){font-weight:700}:host([weight="800"]){font-weight:800}:host([align="center"]){text-align:center}:host([align="right"]){text-align:right}`,o([l({type:String})],V.prototype,"tone",2),o([l({type:String})],V.prototype,"size",2),o([l({type:String,reflect:!0})],V.prototype,"weight",2),o([l({type:String,reflect:!0})],V.prototype,"align",2),V=o([u("deck-punch")],V);function Ur(i,t){let e=i.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),r=[],s=(d,h)=>{let v="P"+r.length+"E";return r.push('<span class="'+d+'">'+h+"</span>"),v};return t==="html"||t==="xml"||t==="svg"?(e=e.replace(/(<!--[\s\S]*?-->)/g,d=>s("cmt",d)),e=e.replace(/(<!doctype[^&]*>)/gi,d=>s("cmt",d)),e=e.replace(/("[^"]*"|'[^']*')/g,d=>s("str",d)),e=e.replace(/(<\/?)([a-zA-Z][a-zA-Z0-9:-]*)/g,(d,h,v)=>h+s("kw",v)),e=e.replace(/\b([a-zA-Z][a-zA-Z0-9-]*)(?==)/g,d=>s("prop",d))):t==="css"||t==="scss"||t==="less"?(e=e.replace(/(\/\*[\s\S]*?\*\/)/g,d=>s("cmt",d)),e=e.replace(/("[^"]*"|'[^']*')/g,d=>s("str",d)),e=e.replace(/([a-zA-Z-]+)(?=\s*:)/g,d=>s("prop",d)),e=e.replace(/(#[0-9a-fA-F]{3,8})\b/g,d=>s("num",d)),e=e.replace(/\b(\d+(?:\.\d+)?)(px|rem|em|%|vh|vw|vmin|vmax|s|ms|deg)?/g,(d,h,v)=>s("num",h+(v??"")))):(e=e.replace(/(\/\/[^\n]*)/g,d=>s("cmt",d)),e=e.replace(/(['"`])((?:\\.|(?!\1)[^\\])*)\1/g,d=>s("str",d)),e=e.replace(/\b(const|let|var|function|return|if|else|for|while|class|extends|new|export|import|from|as|await|async|of|in|typeof|instanceof|true|false|null|undefined)\b/g,d=>s("kw",d)),e=e.replace(/\b(\d+(?:\.\d+)?)\b/g,d=>s("num",d))),e=e.replace(/P(\d+)E/g,(d,h)=>r[+h]??""),e}var B=class extends p{constructor(){super(...arguments);this.lang="";this.hero=!1;this.nested=!1;this._html="";this._groups=null}connectedCallback(){super.connectedCallback(),this._highlight();try{this._groups=JSON.parse(this.getAttribute("step-groups")??"null")}catch{this._groups=null}}_highlight(){let r=(this.textContent??"").split(`
|
|
544
|
+
`);for(;r.length&&!r[0].trim();)r.shift();for(;r.length&&!r[r.length-1].trim();)r.pop();let s=r.filter(n=>n.trim().length>0).reduce((n,d)=>Math.min(n,d.match(/^ */)?.[0].length??0),1/0),a=s===1/0?r:r.map(n=>n.slice(s));this._html=a.map((n,d)=>'<span class="line" data-line="'+(d+1)+'">'+Ur(n||" ",this.lang)+"</span>").join("")}applyStep(e){if(!this._groups)return;let r=this.shadowRoot?.querySelectorAll(".line");if(r)if(e===0)r.forEach(s=>s.classList.remove("dim","lit"));else{let s=this._groups[Math.min(e-1,this._groups.length-1)]??[];r.forEach(a=>{let n=parseInt(a.dataset.line??"0",10);a.classList.toggle("lit",s.includes(n)),a.classList.toggle("dim",!s.includes(n))})}}render(){return c`<pre><code .innerHTML="${this._html}"></code></pre>`}};B.styles=m`:host{display:block;background:var(--deck-code-bg,var(--rik-code__bg));border:1px solid var(--deck-code-border,var(--rik-code__border));border-radius:var(--deck-code-radius,var(--rik-radius-md));padding:var(--deck-code-padding-y,var(--rik-space-3)) var(--deck-code-padding-x,var(--rik-space-4));font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono);line-height:1.7;color:var(--deck-code-text,var(--rik-code__text));box-shadow:var(--rik-elevation-2);overflow:auto;white-space:pre}:host([hero]){display:flex;align-items:safe center;padding:var(--deck-code-padding-y,var(--rik-space-4)) var(--deck-code-padding-x,var(--rik-space-5))}:host([nested]){box-shadow:none;border-radius:var(--rik-radius-sm);padding:var(--deck-code-padding-y,var(--rik-space-2)) var(--deck-code-padding-x,var(--rik-space-3))}pre{margin:0;font:inherit;color:inherit}code{display:block;width:100%;font:inherit;color:inherit}.line{transition:opacity 0.25s ease;display:block}.line.dim{opacity:0.25}.line.lit{opacity:1}.kw{color:var(--deck-code-syntax-kw,var(--rik-code__syntax-keyword))}.fn{color:var(--deck-code-syntax-fn,var(--rik-code__syntax-function))}.str{color:var(--deck-code-syntax-str,var(--rik-code__syntax-string))}.num{color:var(--deck-code-syntax-num,var(--rik-code__syntax-number))}.cmt{color:var(--deck-code-syntax-cmt,var(--rik-code__syntax-comment));font-style:italic}.ty{color:var(--deck-code-syntax-ty,var(--rik-code__syntax-type))}.prop{color:var(--deck-code-syntax-prop,var(--rik-code__syntax-property))}`,o([l({type:String})],B.prototype,"lang",2),o([l({type:Boolean,reflect:!0})],B.prototype,"hero",2),o([l({type:Boolean,reflect:!0})],B.prototype,"nested",2),o([l({type:String,attribute:"step-groups"})],B.prototype,"stepGroups",2),o([O()],B.prototype,"_html",2),B=o([u("deck-code")],B);new URLSearchParams(location.search).has("live")&&Promise.resolve().then(()=>(Dt(),Wr));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rikiki-deck",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "A tiny Lit Web Components framework for technical presentations · zero-build for consumers, TypeScript for contributors.",
|
|
5
5
|
"homepage": "https://rikiki.tordu-jardin.fr",
|
|
6
6
|
"repository": {
|
|
@@ -33,11 +33,13 @@
|
|
|
33
33
|
"README.md"
|
|
34
34
|
],
|
|
35
35
|
"scripts": {
|
|
36
|
-
"build": "node build.mjs && tsc --emitDeclarationOnly",
|
|
36
|
+
"build": "node build.mjs && node build-standalone.mjs && tsc --emitDeclarationOnly",
|
|
37
37
|
"watch": "node build.mjs --watch",
|
|
38
38
|
"typecheck": "tsc --noEmit",
|
|
39
39
|
"clean": "rm -rf dist",
|
|
40
|
-
"bundle": "node bundle.mjs"
|
|
40
|
+
"bundle": "node bundle.mjs",
|
|
41
|
+
"deck": "node build/vite-deck.mjs",
|
|
42
|
+
"deck:example": "node build/vite-deck.mjs decks/example/deck.config.js"
|
|
41
43
|
},
|
|
42
44
|
"devDependencies": {
|
|
43
45
|
"esbuild": "^0.24.0",
|