rikiki-deck 0.6.0 → 0.7.2
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/.claude/skills/rikiki-debug/SKILL.md +17 -7
- package/.claude/skills/rikiki-deck/SKILL.md +362 -77
- package/.claude/skills/rikiki-theme/SKILL.md +1 -1
- package/README.md +69 -50
- package/bin/lib/assemble.mjs +154 -0
- package/bin/lib/box-geometry.mjs +66 -0
- package/bin/lib/browser.mjs +302 -0
- package/bin/lib/check-api.d.ts +28 -0
- package/bin/lib/check-api.mjs +6 -0
- package/bin/lib/check-plugins.mjs +228 -0
- package/bin/lib/check.mjs +1347 -0
- package/bin/lib/cli-error.mjs +26 -0
- package/bin/lib/component-deps.mjs +69 -0
- package/bin/lib/diff.mjs +275 -0
- package/bin/lib/export-pdf.mjs +65 -0
- package/bin/lib/graph-hit.mjs +86 -0
- package/bin/lib/inline.mjs +137 -39
- package/bin/lib/narrative.mjs +77 -0
- package/bin/lib/prune-icons.mjs +104 -0
- package/bin/lib/render.mjs +195 -0
- package/bin/lib/scan-external.mjs +126 -0
- package/bin/lib/starter.mjs +27 -14
- package/bin/lib/visual.mjs +120 -0
- package/bin/rikiki.mjs +420 -35
- package/dist/annotation-marks.d.ts +60 -0
- package/dist/annotation-marks.js +1 -0
- package/dist/bar-segments.d.ts +28 -0
- package/dist/bar-segments.js +1 -0
- package/dist/browser-location.d.ts +3 -0
- package/dist/browser-location.js +1 -0
- package/dist/cards-syntax.d.ts +31 -0
- package/dist/cards-syntax.js +6 -0
- package/dist/{plugins/click-stages.d.ts → click-stages.d.ts} +1 -1
- package/dist/deck-agenda.d.ts +25 -0
- package/dist/deck-agenda.js +6 -0
- package/dist/deck-annotate.d.ts +108 -0
- package/dist/deck-annotate.js +18 -0
- package/dist/deck-bar.d.ts +32 -0
- package/dist/deck-bar.js +19 -0
- package/dist/deck-bento.d.ts +38 -0
- package/dist/deck-bento.js +4 -0
- package/dist/{molecules/deck-callout.d.ts → deck-callout.d.ts} +2 -0
- package/dist/deck-callout.js +1 -1
- package/dist/deck-cell.d.ts +19 -0
- package/dist/deck-cell.js +1 -0
- package/dist/deck-checklist.d.ts +20 -0
- package/dist/deck-checklist.js +1 -0
- package/dist/{layouts/deck-cover.d.ts → deck-cover.d.ts} +8 -0
- package/dist/deck-cover.js +9 -6
- package/dist/deck-csv.d.ts +38 -0
- package/dist/deck-csv.js +15 -0
- package/dist/deck-feature-cards.js +2 -2
- package/dist/deck-feature.d.ts +18 -0
- package/dist/deck-feature.js +2 -2
- package/dist/deck-figure.d.ts +26 -0
- package/dist/deck-figure.js +8 -0
- package/dist/deck-fit.d.ts +14 -0
- package/dist/deck-fit.js +1 -0
- package/dist/deck-flow.d.ts +41 -0
- package/dist/deck-flow.js +7 -0
- package/dist/deck-graph.d.ts +92 -0
- package/dist/deck-graph.js +25 -0
- package/dist/deck-grid.js +1 -1
- package/dist/deck-icon.d.ts +20 -0
- package/dist/deck-icon.js +1 -0
- package/dist/{atoms/deck-kicker.d.ts → deck-kicker.d.ts} +5 -0
- package/dist/deck-kicker.js +1 -1
- package/dist/deck-kpi-grid.d.ts +26 -0
- package/dist/deck-kpi-grid.js +4 -0
- package/dist/deck-link.d.ts +21 -0
- package/dist/deck-link.js +1 -0
- package/dist/{molecules/deck-md.d.ts → deck-md.d.ts} +3 -0
- package/dist/deck-md.js +8 -3
- package/dist/deck-mermaid.js +15 -3
- package/dist/deck-outline.d.ts +50 -0
- package/dist/deck-outline.js +1 -0
- package/dist/deck-overview.js +53 -39
- package/dist/deck-persona.d.ts +31 -0
- package/dist/deck-persona.js +6 -0
- package/dist/deck-photo.js +1 -1
- package/dist/deck-point.d.ts +22 -0
- package/dist/deck-point.js +1 -0
- package/dist/deck-presenter.js +120 -48
- package/dist/deck-pull.d.ts +13 -0
- package/dist/deck-pull.js +1 -0
- package/dist/{atoms/deck-punch.d.ts → deck-punch.d.ts} +6 -0
- package/dist/deck-punch.js +1 -1
- package/dist/deck-quote.d.ts +28 -0
- package/dist/deck-quote.js +6 -0
- package/dist/{runtime/deck-root.d.ts → deck-root.d.ts} +88 -8
- package/dist/deck-root.js +17 -13
- package/dist/deck-section.js +2 -2
- package/dist/deck-source.d.ts +12 -0
- package/dist/deck-source.js +2 -0
- package/dist/deck-split.d.ts +30 -0
- package/dist/deck-split.js +5 -3
- package/dist/{molecules/deck-stat.d.ts → deck-stat.d.ts} +2 -0
- package/dist/deck-stat.js +2 -2
- package/dist/{molecules/deck-step-list.d.ts → deck-step-list.d.ts} +8 -0
- package/dist/deck-step-list.js +4 -2
- package/dist/deck-table.d.ts +26 -0
- package/dist/deck-table.js +1 -0
- package/dist/deck-takeaway.d.ts +18 -0
- package/dist/deck-takeaway.js +2 -2
- package/dist/deck-timeline.d.ts +37 -0
- package/dist/deck-timeline.js +5 -0
- package/dist/deck-transition.js +3 -3
- package/dist/deck-versus.d.ts +18 -0
- package/dist/deck-versus.js +9 -0
- package/dist/deep-link.d.ts +29 -0
- package/dist/deep-link.js +1 -0
- package/dist/escape-html.d.ts +3 -0
- package/dist/escape-html.js +1 -0
- package/dist/fit-controller.d.ts +27 -0
- package/dist/fit-controller.js +1 -0
- package/dist/graph-layout.d.ts +35 -0
- package/dist/graph-layout.js +1 -0
- package/dist/grid-tracks.d.ts +17 -0
- package/dist/grid-tracks.js +1 -0
- package/dist/icon-set.d.ts +6 -0
- package/dist/icon-set.js +1 -0
- package/dist/index.d.ts +37 -31
- package/dist/index.js +95 -49
- package/dist/keymap.d.ts +40 -0
- package/dist/keymap.js +1 -0
- package/dist/mouse-nav.d.ts +12 -0
- package/dist/mouse-nav.js +1 -0
- package/dist/navigation.d.ts +25 -0
- package/dist/navigation.js +1 -0
- package/dist/parse-csv.d.ts +9 -0
- package/dist/parse-csv.js +3 -0
- package/dist/shared-styles.js +1 -1
- package/dist/shiki.d.ts +8 -0
- package/dist/signature.d.ts +2 -0
- package/dist/signature.js +1 -0
- package/dist/slide-fill.d.ts +8 -0
- package/dist/slide-fill.js +1 -0
- package/dist/standalone.js +301 -169
- package/dist/vendor/THIRD-PARTY-NOTICES.txt +4347 -0
- package/dist/vendor/inventory.json +3029 -0
- package/dist/vendor/lit.js +62 -2
- package/dist/vendor/mermaid.min.js +95 -95
- package/dist/vendor/shiki.js +1 -57
- package/dist/viewport.d.ts +42 -0
- package/dist/viewport.js +1 -0
- package/docs/llms/rikiki-reference.md +955 -64
- package/docs/llms/rikiki-workflow.md +536 -0
- package/llms.txt +39 -12
- package/package.json +33 -12
- package/themes/rikiki.css +173 -47
- package/themes/siliceum.css +171 -51
- package/dist/layouts/deck-feature.d.ts +0 -11
- package/dist/layouts/deck-split.d.ts +0 -18
- package/dist/layouts/deck-takeaway.d.ts +0 -11
- package/dist/plugins/shiki.d.ts +0 -8
- /package/dist/{runtime/color.d.ts → color.d.ts} +0 -0
- /package/dist/{atoms/deck-badge.d.ts → deck-badge.d.ts} +0 -0
- /package/dist/{molecules/deck-card.d.ts → deck-card.d.ts} +0 -0
- /package/dist/{atoms/deck-code-highlighter.d.ts → deck-code-highlighter.d.ts} +0 -0
- /package/dist/{atoms/deck-code.d.ts → deck-code.d.ts} +0 -0
- /package/dist/{layouts/deck-feature-cards.d.ts → deck-feature-cards.d.ts} +0 -0
- /package/dist/{molecules/deck-grid.d.ts → deck-grid.d.ts} +0 -0
- /package/dist/{runtime/deck-help.d.ts → deck-help.d.ts} +0 -0
- /package/dist/{molecules/deck-mermaid.d.ts → deck-mermaid.d.ts} +0 -0
- /package/dist/{molecules/deck-metric.d.ts → deck-metric.d.ts} +0 -0
- /package/dist/{runtime/deck-notes.d.ts → deck-notes.d.ts} +0 -0
- /package/dist/{runtime/deck-overview.d.ts → deck-overview.d.ts} +0 -0
- /package/dist/{layouts/deck-photo.d.ts → deck-photo.d.ts} +0 -0
- /package/dist/{runtime/deck-presenter.d.ts → deck-presenter.d.ts} +0 -0
- /package/dist/{layouts/deck-section.d.ts → deck-section.d.ts} +0 -0
- /package/dist/{molecules/deck-shortcut.d.ts → deck-shortcut.d.ts} +0 -0
- /package/dist/{molecules/deck-stack.d.ts → deck-stack.d.ts} +0 -0
- /package/dist/{molecules/deck-tier-list.d.ts → deck-tier-list.d.ts} +0 -0
- /package/dist/{runtime/deck-transition.d.ts → deck-transition.d.ts} +0 -0
package/dist/deck-root.js
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
|
-
var m=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var o=(d,h,t,e)=>{for(var i=e>1?void 0:e?b(h,t):h,s=d.length-1,n;s>=0;s--)(n=d[s])&&(i=(e?n(h,t,i):n(i))||i);return e&&i&&m(h,t,i),i};import{LitElement as y,html as c,css as g}from"./vendor/lit.js";import{customElement as w,property as l,state as _}from"./vendor/lit.js";function f(d){if(!d||d==="transparent")return!1;let h=d.match(/^(?:rgb|hsl)a?\(([^)]*)\)$/i);if(h){let e=h[1].split(",");return e.length<4||parseFloat(e[3])>=1}let t=d.match(/\/\s*([\d.]+%?)\s*\)$/);if(t){let e=t[1];return(e.endsWith("%")?parseFloat(e)/100:parseFloat(e))>=1}return!0}var r=class extends y{constructor(){super(...arguments);this.current=0;this.step=0;this.blank=null;this.presenterActive=!1;this.overview=!1;this.fluid=!1;this.width=1920;this.height=1080;this.noHint=!1;this.noArrows=!1;this.noCounter=!1;this.preview=!1;this.noZoom=!1;this.transition=null;this.autoplay=0;this.loop=!1;this.swipe=!1;this.mouseNav=null;this.nav=null;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._navDownX=0;this._navDownY=0;this._wheelAccum=0;this._wheelLockUntil=0;this._zoom=1;this._panX=0;this._panY=0;this._plugins=[];this._ctx=null;this._applyScale=()=>{if(this._effectiveFluid()){this.style.removeProperty("--deck-scale");return}let t=Math.min(this.clientWidth/this.width,this.clientHeight/this.height);t>0&&this.style.setProperty("--deck-scale",String(t)),this._zoom>1&&(this._clampPan(),this._applyZoom())};this._resizeObserver=null;this._panning=!1;this._panLastX=0;this._panLastY=0;this._onPanDown=t=>{this._zoom<=1||!this._zoomEnabled()||t.pointerType==="mouse"&&t.button!==0||t.target?.closest("a, button, input, textarea, select, [contenteditable]")||(this._panning=!0,this._panLastX=t.clientX,this._panLastY=t.clientY,this.toggleAttribute("data-panning",!0),this.setPointerCapture?.(t.pointerId))};this._onPanMove=t=>{this._panning&&(this._panBy(t.clientX-this._panLastX,t.clientY-this._panLastY),this._panLastX=t.clientX,this._panLastY=t.clientY)};this._onPanUp=t=>{this._panning&&(this._panning=!1,this.toggleAttribute("data-panning",!1),this.releasePointerCapture?.(t.pointerId))};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;if(this._zoom>1){this._swipePointerId=null;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._restartAutoplay())};this._onNavPointerDown=t=>{this._navDownX=t.clientX,this._navDownY=t.clientY};this._onClickNav=t=>{if(!this._mouseEnabled("click")||this.overview||this.blank||this._zoom>1||this.shadowRoot?.querySelector("#kb-overlay.open")||Math.hypot(t.clientX-this._navDownX,t.clientY-this._navDownY)>5)return;let e=window.getSelection();e&&!e.isCollapsed||t.composedPath().some(s=>s instanceof HTMLElement?s.matches?.("a, button, input, textarea, select, [contenteditable], [data-no-advance]")?!0:s.id==="blank"||s.id==="kb-overlay"||s.id==="overview-grid"||s.id==="nav-arrows"||s.id==="kb-hint":!1)||(this._restartAutoplay(),t.shiftKey?this._back():this._advance())};this._onWheel=t=>{if(t.ctrlKey||t.metaKey){if(!this._zoomEnabled())return;t.preventDefault(),this._zoomAt(Math.exp(-t.deltaY*r.ZOOM_WHEEL_SENSITIVITY),t.clientX,t.clientY);return}if(this._zoom>1&&this._zoomEnabled()){t.preventDefault(),this._panBy(-t.deltaX,-t.deltaY);return}if(!this._mouseEnabled("wheel")||this.overview||this.blank||this._wheelTargetScrolls(t))return;t.preventDefault();let e=performance.now();if(e<this._wheelLockUntil||(this._wheelAccum+=t.deltaY,Math.abs(this._wheelAccum)<50))return;let i=this._wheelAccum>0;this._wheelAccum=0,this._wheelLockUntil=e+400,this._restartAutoplay(),i?this._advance():this._back()};this._onAuxUp=t=>{this._mouseEnabled("aux")&&(t.button!==3&&t.button!==4||(t.preventDefault(),this._restartAutoplay(),t.button===3?this._back():this._advance()))};this._onAuxClick=t=>{this._mouseEnabled("aux")&&(t.button===3||t.button===4)&&t.preventDefault()};this._onHash=()=>{this._readHash(!1)};this._onKey=t=>{if(!(t.target&&t.target.matches?.("input,textarea,[contenteditable]"))){if(this._restartAutoplay(),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(this._zoomEnabled()&&(t.key==="+"||t.key==="="||t.key==="-")){t.preventDefault();let e=this.getBoundingClientRect(),i=e.left+e.width/2,s=e.top+e.height/2,n=t.key==="-"?1/r.ZOOM_STEP:r.ZOOM_STEP;this._zoomAt(n,i,s);return}if(t.key==="0"&&this._zoom>1){t.preventDefault(),this._resetZoom();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}}}}}_context(){if(this._ctx)return this._ctx;let t=this;return this._ctx={host:t,get current(){return t.current},get step(){return t.step},get slides(){return t.slides},requestUpdate:()=>t.requestUpdate()},this._ctx}use(t){if(this._plugins.some(i=>i.name===t.name))return()=>{};t.navigate&&this._plugins.some(i=>i.navigate)&&console.warn(`[rikiki] plugin "${t.name}" has a navigate hook but another plugin already owns navigation \xB7 it will be ignored`),this._plugins.push(t);let e=t.setup?.(this._context());return this._applyStep(),this._updateUI(),()=>{let i=this._plugins.indexOf(t);i>=0&&this._plugins.splice(i,1),typeof e=="function"&&e()}}firstUpdated(){this._installRuntime(),this._scopeSlideStyles(),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()}_installRuntime(){this._applyCanvasVars(),this._applyScale(),this._resizeObserver=new ResizeObserver(this._applyScale),this._resizeObserver.observe(this),!this.preview&&(window.addEventListener("keydown",this._onKey),window.addEventListener("hashchange",this._onHash),this.addEventListener("pointerdown",this._onNavPointerDown),this.addEventListener("click",this._onClickNav),this.addEventListener("wheel",this._onWheel,{passive:!1}),this.addEventListener("pointerdown",this._onPanDown),this.addEventListener("pointermove",this._onPanMove),this.addEventListener("pointerup",this._onPanUp),this.addEventListener("pointercancel",this._onPanUp),window.addEventListener("mouseup",this._onAuxUp),window.addEventListener("auxclick",this._onAuxClick),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)))}_scopeSlideStyles(){this.querySelectorAll("style[scoped]").forEach(t=>{t.dataset.rikScoped||(t.dataset.rikScoped="1",t.textContent=`@scope {
|
|
1
|
+
var K=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var p=(n,i,t,e)=>{for(var r=e>1?void 0:e?j(i,t):i,o=n.length-1,a;o>=0;o--)(a=n[o])&&(r=(e?a(i,t,r):a(r))||r);return e&&r&&K(i,t,r),r};import{LitElement as et,html as v,css as it}from"./vendor/lit.js";import{customElement as nt,property as d,state as E}from"./vendor/lit.js";function A(n){if(!n||n==="transparent")return!1;let i=n.match(/^(?:rgb|hsl)a?\(([^)]*)\)$/i);if(i){let e=i[1].split(",");return e.length<4||parseFloat(e[3])>=1}let t=n.match(/\/\s*([\d.]+%?)\s*\)$/);if(t){let e=t[1];return(e.endsWith("%")?parseFloat(e)/100:parseFloat(e))>=1}return!0}var M={slideCount:0,chapters:[]};function z(n){let i=[];return n.forEach((t,e)=>{if(t.toLowerCase()==="deck-section"||i.length===0)i.push({start:e,length:1});else{let o=i[i.length-1];i[i.length-1]={start:o.start,length:o.length+1}}}),{slideCount:n.length,chapters:i}}function O(n,i){return i&&n.chapters.length>1&&n.chapters.some(t=>t.length>1)}function f(n,i){for(let t=0;t<n.chapters.length;t++){let e=n.chapters[t],r=i-e.start;if(r>=0&&r<e.length)return{chapter:t,index:r}}return{chapter:0,index:0}}function T(n,i){if(n.chapters.length===0)return null;let t=_(i.chapter,0,n.chapters.length-1),e=n.chapters[t],r=_(i.index,0,e.length-1);return e.start+r}function _(n,i,t){return Number.isNaN(n)?i:Math.max(i,Math.min(t,n))}var G=/^#(\d+)\.(\d+)(?:s(\d+))?$/,J=/^#(\d+)(?:\.(\d+))?$/;function g(n,i){if(i){let e=G.exec(n);if(e)return{kind:"coords",coords:{chapter:Number(e[1])-1,index:Number(e[2])-1},step:e[3]?Number(e[3]):0}}let t=J.exec(n);return t?{kind:"slide",slide:Number(t[1])-1,step:t[2]?Number(t[2]):0}:null}function I(n,i){if(i.twoD&&i.coords){let{chapter:t,index:e}=i.coords,r=n.step>0?`s${n.step}`:"";return`#${t+1}.${e+1}${r}`}return`#${n.slide+1}${n.step>0?`.${n.step}`:""}`}var L=n=>n.slideCount<=0;function w(n,i,t){if(L(n))return null;let e=_(i.slide,0,n.slideCount-1),r=Math.max(0,t(e));return{slide:e,step:_(i.step,0,r)}}function k(n,i,t,e){if(L(n))return null;let r=Math.max(0,e(t.slide));return t.step<r?{slide:t.slide,step:t.step+1}:t.slide<n.slideCount-1?{slide:t.slide+1,step:0}:i.loop?{slide:0,step:0}:null}function x(n,i,t,e){if(L(n))return null;if(t.step>0)return{slide:t.slide,step:t.step-1};if(t.slide>0){let r=t.slide-1;return{slide:r,step:Math.max(0,e(r))}}if(i.loop){let r=n.slideCount-1;return{slide:r,step:Math.max(0,e(r))}}return null}function m(n,i,t){return w(n,{slide:i,step:0},t)}function u(n,i,t){let e=T(n,i);return e===null?null:w(n,{slide:e,step:0},t)}function H(n,i){return m(n,0,i)}function N(n,i){return m(n,n.slideCount-1,i)}function C(n,i){return n===null||i===null?n===i:n.slide===i.slide&&n.step===i.step}function $(n,i,t=!1){if(!i.ownsUrl)return null;let e=g(n.read(),i.twoD);if(!e)return null;let r=e.kind==="coords"?u(i.outline,e.coords,i.stepsOf):m(i.outline,e.slide,i.stepsOf);return r?i.stepsOf(r.slide)>0||!t?w(i.outline,{slide:r.slide,step:e.step},i.stepsOf):{slide:r.slide,step:Math.max(0,e.step)}:null}function Y(n,i,t){if(!t.ownsUrl)return;let e=I(i,{twoD:t.twoD,coords:t.twoD?f(t.outline,i.slide):void 0});n.read()!==e&&n.write(e)}var D={intent:"none",preventDefault:!1},h=(n,i=!0)=>({intent:n,preventDefault:i}),b=(n,...i)=>i.some(t=>t.toLowerCase()===n.toLowerCase());function U(n){let{key:i}=n;return n.overview?b(i,"Escape","o","Enter")?h("close-overview"):D:n.blanked?h("clear-blank"):b(i,".","b")?h("blank-black"):b(i,",","w")?h("blank-white"):n.zoomEnabled&&(i==="+"||i==="=")?h("zoom-in"):n.zoomEnabled&&i==="-"?h("zoom-out"):i==="0"&&n.zoomed?h("zoom-reset"):b(i,"?","h")?h("toggle-help",!1):i==="Escape"?h("close-help",!1):i==="Home"?h("first",!1):i==="End"?h("last",!1):b(i,"o")?h("open-overview"):b(i,"p")?h("toggle-presenter"):i===" "||i==="PageDown"?h("advance"):i==="PageUp"?h("back"):n.twoD?i==="ArrowRight"?h("next-chapter"):i==="ArrowLeft"?h("prev-chapter"):i==="ArrowDown"?h("next-in-chapter"):i==="ArrowUp"?h("prev-in-chapter"):D:i==="ArrowRight"||i==="ArrowDown"?h("advance"):i==="ArrowLeft"||i==="ArrowUp"?h("back"):D}var Q=new Set(["first","last","advance","back","next-chapter","prev-chapter","next-in-chapter","prev-in-chapter"]),X=n=>Q.has(n);function F(n,i,t,e,r){let o=()=>k(i,t,e,r),a=()=>x(i,t,e,r),{chapter:l,index:c}=f(i,e.slide);switch(n){case"first":return H(i,r);case"last":return N(i,r);case"advance":return o();case"back":return a();case"next-chapter":return l+1<i.chapters.length?u(i,{chapter:l+1,index:0},r):o();case"prev-chapter":return l>0?u(i,{chapter:l-1,index:0},r):a();case"next-in-chapter":{let y=i.chapters[l];return y&&c+1<y.length?u(i,{chapter:l,index:c+1},r):o()}case"prev-in-chapter":return c>0?u(i,{chapter:l,index:c-1},r):a()}}function B(n,i){let t=(n??"all").trim();return t==="none"?!1:t===""||t==="all"?!0:t.split(/\s+/).includes(i)}var W={zoom:1,panX:0,panY:0};function R(n,i){return!i.width||!i.height||!n.width||!n.height?1:Math.min(i.width/n.width,i.height/n.height)}function tt(n,i,t){let e=R(n,i)*t;return{x:Math.max(0,(n.width*e-i.width)/2),y:Math.max(0,(n.height*e-i.height)/2)}}function P(n,i,t){let e=tt(i,t,n.zoom);return{zoom:n.zoom,panX:Math.max(-e.x,Math.min(e.x,n.panX)),panY:Math.max(-e.y,Math.min(e.y,n.panY))}}function Z(n,i,t,e,r,o,a){let l=Math.max(1,Math.min(a.max,n.zoom*i));if(l===n.zoom)return n;let c=l/n.zoom;return P({zoom:l,panX:n.panX+(t-n.panX)*(1-c),panY:n.panY+(e-n.panY)*(1-c)},r,o)}function q(n,i,t,e,r){return P({zoom:n.zoom,panX:n.panX+i,panY:n.panY+t},e,r)}var V=n=>n.zoom===1&&n.panX===0&&n.panY===0;var S={read(){return typeof location>"u"?"":location.hash},write(n){if(!(typeof history>"u"))try{history.replaceState(null,"",n)}catch{}}};var s=class extends et{constructor(){super(...arguments);this.current=0;this.step=0;this.blank=null;this.presenterActive=!1;this.overview=!1;this.fluid=!1;this.width=1920;this.height=1080;this.noHint=!1;this.noArrows=!1;this.noCounter=!1;this.preview=!1;this.noZoom=!1;this.transition=null;this.autoplay=0;this.loop=!1;this.swipe=!1;this.mouseNav=null;this.nav=null;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._navDownX=0;this._navDownY=0;this._wheelAccum=0;this._wheelLockUntil=0;this._zoom=1;this._panX=0;this._panY=0;this._plugins=[];this._ctx=null;this._applyScale=()=>{if(this._effectiveFluid()){this.style.removeProperty("--deck-scale");return}let t=Math.min(this.clientWidth/this.width,this.clientHeight/this.height);t>0&&this.style.setProperty("--deck-scale",String(t)),this._zoom>1&&(this._clampPan(),this._applyZoom())};this._resizeObserver=null;this._pendingStep=null;this._stepWatcher=null;this._panning=!1;this._panLastX=0;this._panLastY=0;this._onPanDown=t=>{this._zoom<=1||!this._zoomEnabled()||t.pointerType==="mouse"&&t.button!==0||t.target?.closest("a, button, input, textarea, select, [contenteditable]")||(this._panning=!0,this._panLastX=t.clientX,this._panLastY=t.clientY,this.toggleAttribute("data-panning",!0),this.setPointerCapture?.(t.pointerId))};this._onPanMove=t=>{this._panning&&(this._panBy(t.clientX-this._panLastX,t.clientY-this._panLastY),this._panLastX=t.clientX,this._panLastY=t.clientY)};this._onPanUp=t=>{this._panning&&(this._panning=!1,this.toggleAttribute("data-panning",!1),this.releasePointerCapture?.(t.pointerId))};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;if(this._zoom>1){this._swipePointerId=null;return}let e=t.clientX-this._swipeStartX,r=t.clientY-this._swipeStartY;this._swipePointerId=null,!(Math.abs(e)<60||Math.abs(e)<Math.abs(r)*2)&&(this._stopAutoplay(),e<0?this._advance():this._back(),this._restartAutoplay())};this._onNavPointerDown=t=>{this._navDownX=t.clientX,this._navDownY=t.clientY};this._onClickNav=t=>{if(!this._mouseEnabled("click")||this.overview||this.blank||this._zoom>1||this.shadowRoot?.querySelector("#kb-overlay.open")||Math.hypot(t.clientX-this._navDownX,t.clientY-this._navDownY)>5)return;let e=window.getSelection();e&&!e.isCollapsed||t.composedPath().some(o=>o instanceof HTMLElement?o.matches?.("a, button, input, textarea, select, [contenteditable], [data-no-advance]")?!0:o.id==="blank"||o.id==="kb-overlay"||o.id==="overview-grid"||o.id==="nav-arrows"||o.id==="kb-hint":!1)||(this._restartAutoplay(),t.shiftKey?this._back():this._advance())};this._onWheel=t=>{if(!this._isFullPage()&&!t.ctrlKey&&!t.metaKey&&this._zoom<=1)return;if(t.ctrlKey||t.metaKey){if(!this._zoomEnabled())return;t.preventDefault(),this._zoomAt(Math.exp(-t.deltaY*s.ZOOM_WHEEL_SENSITIVITY),t.clientX,t.clientY);return}if(this._zoom>1&&this._zoomEnabled()){t.preventDefault(),this._panBy(-t.deltaX,-t.deltaY);return}if(!this._mouseEnabled("wheel")||this.overview||this.blank||this._wheelTargetScrolls(t))return;t.preventDefault();let e=performance.now();if(e<this._wheelLockUntil||(this._wheelAccum+=t.deltaY,Math.abs(this._wheelAccum)<50))return;let r=this._wheelAccum>0;this._wheelAccum=0,this._wheelLockUntil=e+400,this._restartAutoplay(),r?this._advance():this._back()};this._onAuxUp=t=>{this._mouseEnabled("aux")&&(t.button!==3&&t.button!==4||(t.preventDefault(),this._restartAutoplay(),t.button===3?this._back():this._advance()))};this._onAuxClick=t=>{this._mouseEnabled("aux")&&(t.button===3||t.button===4)&&t.preventDefault()};this._outline=M;this._onHash=()=>{this._readHash(!1)};this._onKey=t=>{if(!this._ownsKeyboard()||t.target&&t.target.matches?.("input,textarea,[contenteditable]"))return;this._restartAutoplay();let{intent:e,preventDefault:r}=U({key:t.key,overview:this.overview,blanked:this.blank!==null,zoomEnabled:this._zoomEnabled(),zoomed:this._zoom>1,twoD:this._has2DNav()});if(e!=="none"){if(r&&t.preventDefault(),X(e)){this._applyPosition(F(e,this._outline,{loop:this.loop},this._position,this._maxStepsFor));return}switch(e){case"close-overview":this.overview=!1;return;case"open-overview":this.overview=!0;return;case"clear-blank":this.blank=null;return;case"blank-black":this.blank="black";return;case"blank-white":this.blank="white";return;case"zoom-in":case"zoom-out":{let o=this.getBoundingClientRect(),a=e==="zoom-out"?1/s.ZOOM_STEP:s.ZOOM_STEP;this._zoomAt(a,o.left+o.width/2,o.top+o.height/2);return}case"zoom-reset":this._resetZoom();return;case"toggle-help":this._toggleHelp();return;case"close-help":this._closeHelp();return;case"toggle-presenter":this._togglePresenter();return}}};this._maxStepsFor=t=>{let e=this._baseMaxSteps(t),r=this.slides[t];if(r)for(let o of this._plugins)o.steps&&(e=Math.max(e,o.steps(r,this._context())));return e}}get _overviewSnapshot(){return this.hasAttribute("data-overview-snapshot")}_context(){if(this._ctx)return this._ctx;let t=this;return this._ctx={host:t,get current(){return t.current},get step(){return t.step},get slides(){return t.slides},requestUpdate:()=>t.requestUpdate()},this._ctx}use(t){if(this._plugins.some(r=>r.name===t.name))return()=>{};t.navigate&&this._plugins.some(r=>r.navigate)&&console.warn(`[rikiki] plugin "${t.name}" has a navigate hook but another plugin already owns navigation \xB7 it will be ignored`),this._plugins.push(t);let e=t.setup?.(this._context());return this._applyStep(),this._updateUI(),()=>{let r=this._plugins.indexOf(t);r>=0&&this._plugins.splice(r,1),typeof e=="function"&&e()}}firstUpdated(){if(!this._overviewSnapshot&&(this._installRuntime(),this._scopeSlideStyles(),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(),!this.hasAttribute("preview"))){let t=()=>{!this.isConnected||this.overview||(this.setAttribute("data-overview-warming",""),this._renderOverviewIfActive(!0))};document.fonts.ready.then(()=>{"requestIdleCallback"in window?window.requestIdleCallback(t,{timeout:1500}):setTimeout(t,300)})}}_installRuntime(){this._applyCanvasVars(),this._applyScale(),this._resizeObserver=new ResizeObserver(this._applyScale),this._resizeObserver.observe(this),!this.preview&&(window.addEventListener("keydown",this._onKey),window.addEventListener("hashchange",this._onHash),this.addEventListener("pointerdown",this._onNavPointerDown),this.addEventListener("click",this._onClickNav),this.addEventListener("wheel",this._onWheel,{passive:!1}),this.addEventListener("pointerdown",this._onPanDown),this.addEventListener("pointermove",this._onPanMove),this.addEventListener("pointerup",this._onPanUp),this.addEventListener("pointercancel",this._onPanUp),window.addEventListener("mouseup",this._onAuxUp),window.addEventListener("auxclick",this._onAuxClick),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)))}_scopeSlideStyles(){this.querySelectorAll("style[scoped]").forEach(t=>{t.dataset.rikScoped||(t.dataset.rikScoped="1",t.textContent=`@scope {
|
|
2
2
|
${t.textContent??""}
|
|
3
|
-
}`)})}_effectiveFluid(){return this.fluid||(this.slides[this.current]?.hasAttribute("fluid")??!1)}_applySlideFluid(){let t=!this.fluid&&(this.slides[this.current]?.hasAttribute("fluid")??!1);this.toggleAttribute("unfixed",t),this._applyCanvasVars(),this._applyScale()}_applyCanvasVars(){let t=document.documentElement;if(this._effectiveFluid()){t.style.removeProperty("--deck-canvas-w"),t.style.removeProperty("--deck-canvas-h");return}t.style.setProperty("--deck-canvas-w",String(this.width)),t.style.setProperty("--deck-canvas-h",String(this.height))}_zoomEnabled(){return!this.noZoom&&!this._effectiveFluid()&&!this.overview&&!this.blank}_applyZoom(){this.style.setProperty("--deck-zoom",String(this._zoom)),this.style.setProperty("--deck-pan-x",`${this._panX}px`),this.style.setProperty("--deck-pan-y",`${this._panY}px`),this.toggleAttribute("data-zoomed",this._zoom>1)}_clampPan(){let e=(this.clientWidth&&this.clientHeight?Math.min(this.clientWidth/this.width,this.clientHeight/this.height):1)*this._zoom,i=Math.max(0,(this.width*e-this.clientWidth)/2),s=Math.max(0,(this.height*e-this.clientHeight)/2);this._panX=Math.max(-i,Math.min(i,this._panX)),this._panY=Math.max(-s,Math.min(s,this._panY))}_zoomAt(t,e,i){if(!this._zoomEnabled())return;let s=this._zoom,n=Math.max(1,Math.min(r.ZOOM_MAX,s*t));if(n===s)return;let a=this.getBoundingClientRect(),p=a.left+a.width/2,u=a.top+a.height/2,v=n/s;this._panX+=(e-p-this._panX)*(1-v),this._panY+=(i-u-this._panY)*(1-v),this._zoom=n,this._clampPan(),this._applyZoom()}_resetZoom(){this._zoom===1&&this._panX===0&&this._panY===0||(this._zoom=1,this._panX=0,this._panY=0,this._applyZoom())}_panBy(t,e){this._panX+=t,this._panY+=e,this._clampPan(),this._applyZoom()}_applyLetterbox(t){if(this._effectiveFluid()){this.style.removeProperty("--deck-letterbox-bg");return}let e=t?getComputedStyle(t).backgroundColor:"";e&&f(e)?this.style.setProperty("--deck-letterbox-bg",e):this.style.removeProperty("--deck-letterbox-bg")}static _injectGlobals(){if(typeof document>"u"||document.getElementById("rik-deck-globals"))return;let t=document.createElement("style");t.id="rik-deck-globals",t.textContent="html:has(> body > deck-root){overflow:hidden;height:100%}html:has(> body > deck-root) body{margin:0;overflow:hidden;height:100%}html:has(> body > deck-root:not([fluid])){font-size:calc(var(--deck-canvas-h,1080)*0.0235px)}html:has(> body > deck-root[fluid]){font-size:clamp(14px,2.35vh,42px)}html:has(> body > deck-root[unfixed]){font-size:clamp(14px,2.35vh,42px)}",document.head.appendChild(t)}connectedCallback(){super.connectedCallback(),r._injectGlobals(),this.hasUpdated&&this._installRuntime()}disconnectedCallback(){super.disconnectedCallback(),document.documentElement.style.removeProperty("--deck-canvas-w"),document.documentElement.style.removeProperty("--deck-canvas-h"),document.querySelector("deck-root")||document.getElementById("rik-deck-globals")?.remove(),this._resizeObserver?.disconnect(),this._resizeObserver=null,window.removeEventListener("keydown",this._onKey),window.removeEventListener("hashchange",this._onHash),this.removeEventListener("pointerdown",this._onNavPointerDown),this.removeEventListener("click",this._onClickNav),this.removeEventListener("wheel",this._onWheel),this.removeEventListener("pointerdown",this._onPanDown),this.removeEventListener("pointermove",this._onPanMove),this.removeEventListener("pointerup",this._onPanUp),this.removeEventListener("pointercancel",this._onPanUp),window.removeEventListener("mouseup",this._onAuxUp),window.removeEventListener("auxclick",this._onAuxClick),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),this._panning=!1,this.toggleAttribute("data-panning",!1)}_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()}_restartAutoplay(){this.autoplay>0&&!this._autoplayPaused&&this._startAutoplay()}_wheelTargetScrolls(t){let e=t.deltaY>0,i=t.deltaX>0;for(let s of t.composedPath()){if(s===this)return!1;if(!(s instanceof Element))continue;let n=s.scrollHeight>s.clientHeight,a=s.scrollWidth>s.clientWidth;if(!n&&!a)continue;let p=getComputedStyle(s);if(n&&/auto|scroll/.test(p.overflowY)&&(e?s.scrollTop+s.clientHeight<s.scrollHeight-1:s.scrollTop>0)||a&&/auto|scroll/.test(p.overflowX)&&(i?s.scrollLeft+s.clientWidth<s.scrollWidth-1:s.scrollLeft>0))return!0}return!1}_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.nav==="2d"&&this.chapters.length>1&&this.chapters.some(t=>t.slides.length>1)}_mouseEnabled(t){let e=(this.mouseNav??"all").trim();return e==="none"?!1:e===""||e==="all"?!0:e.split(/\s+/).includes(t)}_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[Math.max(0,Math.min(this.chapters.length-1,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+))?$/),n=this.current,a=this.step;if(this._has2DNav()&&i){let u=parseInt(i[1],10)-1,v=parseInt(i[2],10)-1;n=this._flatFromCoords(Math.max(0,u),Math.max(0,v)),a=i[3]?parseInt(i[3],10):0}else if(s)n=parseInt(s[1],10)-1,a=s[2]?parseInt(s[2],10):0;else return;if(n===this.current&&a===this.step&&!t)return;this.current=Math.max(0,Math.min(this.slides.length-1,n));let p=this._maxSteps();this.step=p>0?Math.max(0,Math.min(p,a)):Math.max(0,a),t||(this._resetZoom(),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._baseMaxSteps(),e=this.slides[this.current];if(e)for(let i of this._plugins)i.steps&&(t=Math.max(t,i.steps(e,this._context())));return t}_baseMaxSteps(){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._plugins.find(i=>i.navigate)?.navigate?.(t,this._context(),()=>this._goToNow(t))||this._goToNow(t)}_goToNow(t){this._resetZoom(),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 n=Math.max(0,Math.min(s.slides.length-1,e));this._goTo(this._flatFromCoords(i,n))}_applyActive(){let t=this.slides.find(i=>i.hasAttribute("active"))??null,e=this.slides[this.current]??null;this.slides.forEach((i,s)=>{let n=s===this.current;i.toggleAttribute("active",n),n&&i.querySelectorAll("deck-mermaid").forEach(a=>{a.render?.()})}),this._applySlideFluid(),this._applyLetterbox(e),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];if(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"});for(let e of this._plugins)e.applyStep?.(this.step,t,this._context())}}_counterHidden(){let t=this.slides[this.current];return this.overview||this.blank!==null||t?.tagName.toLowerCase()==="deck-cover"}_updateUI(){let t=this.slides.length,e=this.current+1,i=this.renderRoot.querySelector("#progress"),s=this.renderRoot.querySelector("#counter"),n=this.renderRoot.querySelector("#step-dots");i&&(i.style.width=`${t>0?e/t*100:0}%`),s&&(s.textContent=`${e} / ${t}`);let a=this._maxSteps();n&&(n.innerHTML=a===0?"":Array.from({length:a},(p,u)=>`<div class="dot${u<this.step?" active":""}"></div>`).join(""))}updated(t){(t.has("width")||t.has("height")||t.has("fluid"))&&(this._applyCanvasVars(),this._applyScale()),t.has("fluid")&&this._applyLetterbox(this.slides[this.current]??null),(t.has("overview")&&this.overview||t.has("blank")&&this.blank||t.has("noZoom")&&this.noZoom||t.has("fluid")&&this.fluid)&&this._resetZoom(),this._updateUI(),this._renderOverviewIfActive()}_navArrows(){if(this.noArrows||this.presenterActive||!this._mouseEnabled("arrows")||this.overview)return"";let t=this.slides.length;if(t===0)return"";let e=this.current===0&&this.step===0,i=this.current>=t-1&&this.step>=this._maxSteps();if(this._has2DNav()){let{c:s,i:n}=this._coords(this.current),a=this.chapters[s];return c`<div id="nav-arrows"> <button class="nav-btn" title="Previous chapter" ?disabled=${!this.loop&&this.current===0} @click=${()=>s>0?this._goToCoords(s-1,0):this._back()}>‹</button> <button class="nav-btn" title="Up" ?disabled=${n===0} @click=${()=>this._goToCoords(s,n-1)}>↑</button> <button class="nav-btn" title="Down" ?disabled=${!a||n+1>=a.slides.length} @click=${()=>this._goToCoords(s,n+1)}>↓</button> <button class="nav-btn" title="Next chapter" ?disabled=${!this.loop&&i} @click=${()=>s+1<this.chapters.length?this._goToCoords(s+1,0):this._advance()}>›</button> </div>`}return c`<div id="nav-arrows"> <button class="nav-btn" title="Previous" ?disabled=${!this.loop&&e} @click=${()=>this._back()}>‹</button> <button class="nav-btn" title="Next" ?disabled=${!this.loop&&i} @click=${()=>this._advance()}>›</button> </div>`}render(){return c`<div id="progress"></div> <div id="counter" class=${this._counterHidden()?"hidden":""}></div> <div id="step-dots"></div> ${this.noHint||this.presenterActive?"":c`
|
|
3
|
+
}`)})}_effectiveFluid(){return this.fluid||(this.slides[this.current]?.hasAttribute("fluid")??!1)}_applySlideFluid(){let t=!this.fluid&&(this.slides[this.current]?.hasAttribute("fluid")??!1);this.toggleAttribute("unfixed",t),this._applyCanvasVars(),this._applyScale()}_applyCanvasVars(){let t=document.documentElement;if(this._effectiveFluid()){t.style.removeProperty("--deck-canvas-w"),t.style.removeProperty("--deck-canvas-h");return}t.style.setProperty("--deck-canvas-w",String(this.width)),t.style.setProperty("--deck-canvas-h",String(this.height)),this._applyPageSize()}_zoomEnabled(){return!this.noZoom&&!this._effectiveFluid()&&!this.overview&&!this.blank}_applyZoom(){this.style.setProperty("--deck-zoom",String(this._zoom)),this.style.setProperty("--deck-pan-x",`${this._panX}px`),this.style.setProperty("--deck-pan-y",`${this._panY}px`),this.toggleAttribute("data-zoomed",this._zoom>1)}get _view(){return{zoom:this._zoom,panX:this._panX,panY:this._panY}}set _view(t){this._zoom=t.zoom,this._panX=t.panX,this._panY=t.panY}get _canvas(){return{width:this.width,height:this.height}}get _box(){return{width:this.clientWidth,height:this.clientHeight}}_clampPan(){this._view=P(this._view,this._canvas,this._box)}_zoomAt(t,e,r){if(!this._zoomEnabled())return;let o=this.getBoundingClientRect(),a=Z(this._view,t,e-(o.left+o.width/2),r-(o.top+o.height/2),this._canvas,this._box,{max:s.ZOOM_MAX});a!==this._view&&(this._view=a,this._applyZoom())}_resetZoom(){V(this._view)||(this._view=W,this._applyZoom())}_panBy(t,e){this._view=q(this._view,t,e,this._canvas,this._box),this._applyZoom()}_applyLetterbox(t){if(this._effectiveFluid()){this.style.removeProperty("--deck-letterbox-bg");return}let e=t?getComputedStyle(t).backgroundColor:"";e&&A(e)?this.style.setProperty("--deck-letterbox-bg",e):this.style.removeProperty("--deck-letterbox-bg"),t&&this._repaintLetterboxWhenDefined(t)}_repaintLetterboxWhenDefined(t){let e=t.localName;!e.startsWith("deck-")||customElements.get(e)||customElements.whenDefined(e).then(async()=>{await t.updateComplete,this.slides[this.current]===t&&this._applyLetterbox(t)})}_liveLabel(){let t=this.slides.length;if(!t)return"";let r=this.slides[this.current]?.querySelector('h1, [slot="title"]')?.textContent?.trim(),o=`Slide ${this.current+1} of ${t}`;return r?`${o} \xB7 ${r}`:o}_applyPageSize(){if(typeof document>"u")return;let t="rik-deck-page",e=document.getElementById(t);e||(e=document.createElement("style"),e.id=t,document.head.appendChild(e)),e.textContent=`@page { size: ${this.width}px ${this.height}px; margin: 0 }@media print{html:has(> body > deck-root),html:has(> body > deck-root) body{overflow:visible;height:auto}}`}static _injectGlobals(){if(typeof document>"u"||document.getElementById("rik-deck-globals"))return;let t=document.createElement("style");t.id="rik-deck-globals",t.textContent="html:has(> body > deck-root){overflow:hidden;height:100%}html:has(> body > deck-root) body{margin:0;overflow:hidden;height:100%}html:has(> body > deck-root:not([fluid])){font-size:calc(var(--deck-canvas-h,1080)*0.0235px)}html:has(> body > deck-root[fluid]){font-size:clamp(14px,2.35vh,42px)}html:has(> body > deck-root[unfixed]){font-size:clamp(14px,2.35vh,42px)}",document.head.appendChild(t)}connectedCallback(){super.connectedCallback(),!this._overviewSnapshot&&(!this.hasAttribute("tabindex")&&typeof document<"u"&&queueMicrotask(()=>{!this._isFullPage()&&!this.hasAttribute("tabindex")&&(this.tabIndex=0)}),s._injectGlobals(),this.hasUpdated&&this._installRuntime())}disconnectedCallback(){super.disconnectedCallback(),!this._overviewSnapshot&&(this._overviewTeardown?.(),this._overviewTeardown=null,document.documentElement.style.removeProperty("--deck-canvas-w"),document.documentElement.style.removeProperty("--deck-canvas-h"),document.querySelector("deck-root")||document.getElementById("rik-deck-globals")?.remove(),this._resizeObserver?.disconnect(),this._resizeObserver=null,this._forgetPendingStep(),window.removeEventListener("keydown",this._onKey),window.removeEventListener("hashchange",this._onHash),this.removeEventListener("pointerdown",this._onNavPointerDown),this.removeEventListener("click",this._onClickNav),this.removeEventListener("wheel",this._onWheel),this.removeEventListener("pointerdown",this._onPanDown),this.removeEventListener("pointermove",this._onPanMove),this.removeEventListener("pointerup",this._onPanUp),this.removeEventListener("pointercancel",this._onPanUp),window.removeEventListener("mouseup",this._onAuxUp),window.removeEventListener("auxclick",this._onAuxClick),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),this._panning=!1,this.toggleAttribute("data-panning",!1))}_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()}_restartAutoplay(){this.autoplay>0&&!this._autoplayPaused&&this._startAutoplay()}_wheelTargetScrolls(t){let e=t.deltaY>0,r=t.deltaX>0;for(let o of t.composedPath()){if(o===this)return!1;if(!(o instanceof Element))continue;let a=o.scrollHeight>o.clientHeight,l=o.scrollWidth>o.clientWidth;if(!a&&!l)continue;let c=getComputedStyle(o);if(a&&/auto|scroll/.test(c.overflowY)&&(e?o.scrollTop+o.clientHeight<o.scrollHeight-1:o.scrollTop>0)||l&&/auto|scroll/.test(c.overflowX)&&(r?o.scrollLeft+o.clientWidth<o.scrollWidth-1:o.scrollLeft>0))return!0}return!1}_buildChapters(){this._outline=z(this.slides.map(e=>e.tagName?.toLowerCase()??"")),this.chapters=[];let t=null;this.slides.forEach((e,r)=>{e.tagName?.toLowerCase()==="deck-section"||!t?(t={startIdx:r,slides:[e]},this.chapters.push(t)):t.slides.push(e)})}_has2DNav(){return O(this._outline,this.nav==="2d")}_mouseEnabled(t){return B(this.mouseNav,t)}_coords(t){let{chapter:e,index:r}=f(this._outline,t);return{c:e,i:r}}_isFullPage(){return typeof document<"u"&&this.parentElement===document.body}_ownsKeyboard(){if(this._isFullPage())return!0;let t=document.activeElement;return t===this||t!==null&&this.contains(t)}_linkContext(){return{outline:this._outline,twoD:this._has2DNav(),stepsOf:this._maxStepsFor,ownsUrl:this._isFullPage()}}_readHash(t){let e=$(S,this._linkContext(),t);e&&(C(e,this._position)&&!t||(this.current=e.slide,this.step=e.step,t&&this._watchForLateSteps(e),t||(this._resetZoom(),this._applyActive(),this._applyStep(),this._updateUI())))}_watchForLateSteps(t){let e=g(S.read(),this._has2DNav());!e||e.step<=0||(this._pendingStep=Math.max(e.step,t.step),this._stepWatcher?.disconnect(),this._stepWatcher=new MutationObserver(()=>this._replayPendingStep()),this._stepWatcher.observe(this,{subtree:!0,attributes:!0,attributeFilter:["steps","data-steps"]}))}_replayPendingStep(){let t=this._pendingStep;t!==null&&(this._maxStepsFor(this.current)<t||(this._forgetPendingStep(),this.step=t,this._applyActive(),this._applyStep(),this._updateUI(),this._writeHash()))}_forgetPendingStep(){this._pendingStep=null,this._stepWatcher?.disconnect(),this._stepWatcher=null}_writeHash(){Y(S,this._position,this._linkContext())}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(t=!1){if(!this.overview&&!t)return;let{mountOverview:e}=await import("./deck-overview.js");this.isConnected&&(this._overviewTeardown=e(this,{slides:this.slides,chapters:this.chapters,currentIdx:this.current,onPick:r=>{this.overview=!1,this._goTo(r)}}))}_maxSteps(){return this._maxStepsFor(this.current)}_baseMaxSteps(t){let e=this.slides[t];if(!e)return 0;let r=parseInt(e.getAttribute("steps")||e.dataset?.steps||"0",10);if(r>0)return r;let o=e.querySelector("deck-code[step-groups]");if(o)try{return JSON.parse(o.getAttribute("step-groups")).length}catch{}return 0}get _position(){return{slide:this.current,step:this.step}}_applyPosition(t){if(t===null||C(t,this._position))return;if(this._forgetPendingStep(),t.slide===this.current){this.step=t.step,this._applyStep(),this._updateUI(),this._writeHash();return}let e=this._plugins.find(o=>o.navigate),r=()=>this._moveTo(t);e?.navigate?.(t.slide,this._context(),r)||r()}_moveTo(t){this._resetZoom(),this.current=t.slide,this.step=t.step,this._applyActive(),this._applyStep(),this._updateUI(),this._writeHash()}_advance(){this._applyPosition(k(this._outline,{loop:this.loop},this._position,this._maxStepsFor))}_back(){this._applyPosition(x(this._outline,{loop:this.loop},this._position,this._maxStepsFor))}_goTo(t){this._applyPosition(m(this._outline,t,this._maxStepsFor))}_goToCoords(t,e){this._applyPosition(u(this._outline,{chapter:t,index:e},this._maxStepsFor))}_applyActive(){let t=this.slides.find(r=>r.hasAttribute("active"))??null,e=this.slides[this.current]??null;this.slides.forEach((r,o)=>{let a=o===this.current;r.toggleAttribute("active",a),a&&r.querySelectorAll("deck-mermaid").forEach(l=>{l.render?.()})}),this._applySlideFluid(),this._applyLetterbox(e),this.transition&&!this._transitionLoaded&&(this._transitionLoaded=!0,import("./deck-transition.js").then(r=>r.installTransitions(this))),t!==e&&this.dispatchEvent(new CustomEvent("slide-change",{detail:{current:e,previous:t},bubbles:!1}))}_applyStep(){let t=this.slides[this.current];if(t){t.applyStep?.(this.step),t.querySelectorAll("*").forEach(e=>{e.applyStep?.(this.step)}),t.querySelectorAll("[data-step-block]").forEach(e=>{let r=parseInt(e.dataset.stepBlock,10);e.style.transition="opacity 0.25s ease",e.style.opacity=this.step===0||r<=this.step?"1":"0.15"});for(let e of this._plugins)e.applyStep?.(this.step,t,this._context());this.dispatchEvent(new CustomEvent("step-change",{detail:{step:this.step,steps:this._maxSteps()}}))}}_counterHidden(){return this.overview||this.blank!==null}_updateUI(){let t=this.slides.length,e=this.current+1,r=this.renderRoot.querySelector("#progress"),o=this.renderRoot.querySelector("#counter"),a=this.renderRoot.querySelector("#step-dots");r&&(r.style.width=`${t>0?e/t*100:0}%`),o&&(o.textContent=`${e} / ${t}`);let l=this._maxSteps();a&&(a.innerHTML=l===0?"":Array.from({length:l},(c,y)=>`<div class="dot${y<this.step?" active":""}"></div>`).join(""))}updated(t){this._overviewSnapshot||((t.has("width")||t.has("height")||t.has("fluid"))&&(this._applyCanvasVars(),this._applyScale()),t.has("fluid")&&this._applyLetterbox(this.slides[this.current]??null),(t.has("overview")&&this.overview||t.has("blank")&&this.blank||t.has("noZoom")&&this.noZoom||t.has("fluid")&&this.fluid)&&this._resetZoom(),this._updateUI(),this._renderOverviewIfActive())}_navArrows(){if(this.noArrows||this.presenterActive||!this._mouseEnabled("arrows")||this.overview)return"";let t=this.slides.length;if(t===0)return"";let e=this.current===0&&this.step===0,r=this.current>=t-1&&this.step>=this._maxSteps();if(this._has2DNav()){let{c:o,i:a}=this._coords(this.current),l=this.chapters[o];return v`<div id="nav-arrows"> <button class="nav-btn" aria-label="Previous chapter" title="Previous chapter" ?disabled=${!this.loop&&this.current===0} @click=${()=>o>0?this._goToCoords(o-1,0):this._back()}><svg viewBox="0 0 16 16" aria-hidden="true"><path d="m10 3-5 5 5 5" /></svg></button> <button class="nav-btn" aria-label="Previous slide in chapter" title="Up" ?disabled=${a===0} @click=${()=>this._goToCoords(o,a-1)}><svg viewBox="0 0 16 16" aria-hidden="true"><path d="m3 10 5-5 5 5" /></svg></button> <button class="nav-btn" aria-label="Next slide in chapter" title="Down" ?disabled=${!l||a+1>=l.slides.length} @click=${()=>this._goToCoords(o,a+1)}><svg viewBox="0 0 16 16" aria-hidden="true"><path d="m3 6 5 5 5-5" /></svg></button> <button class="nav-btn" aria-label="Next chapter" title="Next chapter" ?disabled=${!this.loop&&r} @click=${()=>o+1<this.chapters.length?this._goToCoords(o+1,0):this._advance()}><svg viewBox="0 0 16 16" aria-hidden="true"><path d="m6 3 5 5-5 5" /></svg></button> </div>`}return v`<div id="nav-arrows"> <button class="nav-btn" aria-label="Previous slide" title="Previous" ?disabled=${!this.loop&&e} @click=${()=>this._back()}><svg viewBox="0 0 16 16" aria-hidden="true"><path d="m10 3-5 5 5 5" /></svg></button> <button class="nav-btn" aria-label="Next slide" title="Next" ?disabled=${!this.loop&&r} @click=${()=>this._advance()}><svg viewBox="0 0 16 16" aria-hidden="true"><path d="m6 3 5 5-5 5" /></svg></button> </div>`}render(){return this._overviewSnapshot?v`<slot></slot>`:v`<div id="progress"></div> <div id="live" aria-live="polite" aria-atomic="true">${this._liveLabel()}</div> <div id="counter" class=${this._counterHidden()?"hidden":""}></div> <div id="step-dots"></div> ${this.noHint||this.presenterActive?"":v`
|
|
4
4
|
<div id="kb-hint">
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
<span>·</span>
|
|
11
|
-
<
|
|
12
|
-
<span>·</span>
|
|
13
|
-
<
|
|
5
|
+
<button type="button" aria-label="Previous slide" title="Previous"
|
|
6
|
+
@click=${()=>this._back()}>←</button
|
|
7
|
+
><button type="button" aria-label="Next slide" title="Next"
|
|
8
|
+
@click=${()=>this._advance()}>→</button>
|
|
9
|
+
${this._has2DNav()?v`<button type="button" aria-label="Previous slide" title="Previous" @click=${()=>this._back()}>↑</button ><button type="button" aria-label="Next slide" title="Next" @click=${()=>this._advance()}>↓</button>`:""}
|
|
10
|
+
<span aria-hidden="true">·</span>
|
|
11
|
+
<button type="button" aria-label="Slide overview" title="Overview" @click=${()=>{this.overview=!this.overview}}>O</button>
|
|
12
|
+
<span aria-hidden="true">·</span>
|
|
13
|
+
<button type="button" aria-label="Presenter window" title="Presenter"
|
|
14
|
+
@click=${()=>void this._togglePresenter()}>P</button>
|
|
15
|
+
<span aria-hidden="true">·</span>
|
|
16
|
+
<button type="button" aria-label="Keyboard help" title="Help"
|
|
17
|
+
@click=${()=>void this._toggleHelp()}>?</button>
|
|
14
18
|
</div>`}
|
|
15
19
|
${this._navArrows()}
|
|
16
20
|
<div id="stage"><slot></slot></div>
|
|
17
|
-
${this.blank?
|
|
18
|
-
`}};
|
|
21
|
+
${this.blank?v`<div id="blank" data-tone="${this.blank}" @click=${()=>{this.blank=null}}></div>`:""}
|
|
22
|
+
`}};s.styles=it`:host{display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;background:var(--deck-letterbox-bg,var(--deck-root-bg,var(--rik-surface-page)))}#stage{flex:none;width:calc(var(--deck-canvas-w,1920) * 1px);height:calc(var(--deck-canvas-h,1080) * 1px);transform:translate(var(--deck-pan-x,0px),var(--deck-pan-y,0px)) scale(calc(var(--deck-scale,1) * var(--deck-zoom,1)));transform-origin:center center;container-type:size}:host([fluid]) #stage,:host([unfixed]) #stage{width:100%;height:100%;transform:none}:host([data-zoomed]){cursor:grab}:host([data-zoomed][data-panning]){cursor:grabbing}#live{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}#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}:host([no-counter]) #counter{display:none}#counter.hidden{display:none}#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,var(--rik-border-default));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 button{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;cursor:pointer}#kb-hint button:hover{border-color:var(--rik-accent)}#kb-hint button:focus-visible,.nav-btn:focus-visible{outline:var(--rik-focus-ring--width,2px) solid var(--rik-focus-ring,currentColor);outline-offset:var(--rik-focus-ring--offset,2px)}#kb-hint .sep{opacity:0.4}#nav-arrows{position:fixed;bottom:2.4rem;right:1.5rem;display:flex;gap:4px;z-index:100;opacity:var(--deck-root-nav-opacity,0.35);transition:opacity 0.2s ease}#nav-arrows:hover{opacity:1}.nav-btn{appearance:none;cursor:pointer;width:30px;height:30px;display:grid;place-items:center;font:700 1rem/1 var(--rik-font-mono);color:var(--deck-root-nav-color,var(--rik-text-default));background:var(--deck-root-nav-bg,var(--rik-surface-raised));border:1px solid var(--rik-border-default);border-radius:6px;padding:0}.nav-btn svg{display:block;width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.nav-btn:hover:not(:disabled){border-color:var(--rik-accent)}.nav-btn:disabled{opacity:0.3;cursor:default}#blank{position:fixed;inset:0;z-index:9999;cursor:pointer}#blank[data-tone="black"]{background:#000}#blank[data-tone="white"]{background:#fff}@media print{:host{display:block;position:static;height:auto;overflow:visible;background:none}#stage{display:block;width:auto;height:auto;transform:none;container-type:normal}#counter,#progress,#nav-arrows,#kb-hint,#step-dots,#blank{display:none}}`,s.ZOOM_MAX=4,s.ZOOM_STEP=1.25,s.ZOOM_WHEEL_SENSITIVITY=.002,p([E()],s.prototype,"current",2),p([E()],s.prototype,"step",2),p([E()],s.prototype,"blank",2),p([E()],s.prototype,"presenterActive",2),p([d({type:Boolean,reflect:!0})],s.prototype,"overview",2),p([d({type:Boolean,reflect:!0})],s.prototype,"fluid",2),p([d({type:Number})],s.prototype,"width",2),p([d({type:Number})],s.prototype,"height",2),p([d({type:Boolean,reflect:!0,attribute:"no-hint"})],s.prototype,"noHint",2),p([d({type:Boolean,reflect:!0,attribute:"no-arrows"})],s.prototype,"noArrows",2),p([d({type:Boolean,reflect:!0,attribute:"no-counter"})],s.prototype,"noCounter",2),p([d({type:Boolean,reflect:!0})],s.prototype,"preview",2),p([d({type:Boolean,reflect:!0,attribute:"no-zoom"})],s.prototype,"noZoom",2),p([d({type:String,reflect:!0})],s.prototype,"transition",2),p([d({type:Number,reflect:!0})],s.prototype,"autoplay",2),p([d({type:Boolean,reflect:!0})],s.prototype,"loop",2),p([d({type:Boolean,reflect:!0})],s.prototype,"swipe",2),p([d({type:String,reflect:!0,attribute:"mouse-nav"})],s.prototype,"mouseNav",2),p([d({type:String,reflect:!0})],s.prototype,"nav",2),s=p([nt("deck-root")],s);export{s as DeckRoot};
|
package/dist/deck-section.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
1
|
+
var k=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var l=(i,r,a,o)=>{for(var e=o>1?void 0:o?p(r,a):r,n=i.length-1,s;n>=0;n--)(s=i[n])&&(e=(o?s(r,a,e):s(e))||e);return o&&e&&k(r,a,e),e};import{LitElement as h,html as f,css as u}from"./vendor/lit.js";import{customElement as x,property as b}from"./vendor/lit.js";import{css as c}from"./vendor/lit.js";var v=c`: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}.body,.col{justify-content:var(--_spread,var(--rik-slide-spread,center))}:host([fill]) .body > ::slotted(*),:host([fill]) .col > ::slotted(*){flex:1 1 0;min-height:0}:host([fill]) .body,:host([fill]) .col{justify-content:stretch}@media print{:host{display:flex;position:relative;inset:auto;width:calc(var(--deck-canvas-w,1920) * 1px);height:calc(var(--deck-canvas-h,1080) * 1px);break-inside:avoid;break-after:page;-webkit-print-color-adjust:exact;print-color-adjust:exact}:host(:last-child){break-after:auto}}`,m=c`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)}`,g=c`.lbl{display:inline-block;padding:var(--deck-eyebrow-padding-y,0) var(--deck-eyebrow-padding-x,0);background:var(--deck-eyebrow-bg,transparent);color:var(--deck-eyebrow-color,var(--rik-accent__text));border-radius:var(--deck-eyebrow-radius,0);font-size:var(--rik-font-size-body);font-weight:600;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)}`,d=[v,m,g];var t=class extends h{render(){return f`${this.num?f`<div class="sec-num" part="num">${this.num}</div>`:""}
|
|
2
2
|
<slot></slot>
|
|
3
|
-
`}};
|
|
3
|
+
`}};t.styles=[...d,u`: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:1.25rem;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}`],l([b({type:String})],t.prototype,"num",2),t=l([x("deck-section")],t);export{t as DeckSection};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export declare class DeckSource extends LitElement {
|
|
3
|
+
static styles: import("lit").CSSResult;
|
|
4
|
+
/** Optional URL for the source or credit. */
|
|
5
|
+
href?: string;
|
|
6
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
7
|
+
}
|
|
8
|
+
declare global {
|
|
9
|
+
interface HTMLElementTagNameMap {
|
|
10
|
+
'deck-source': DeckSource;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var m=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var n=(s,r,a,o)=>{for(var t=o>1?void 0:o?c(r,a):r,i=s.length-1,l;i>=0;i--)(l=s[i])&&(t=(o?l(r,a,t):l(t))||t);return o&&t&&m(r,a,t),t};import{LitElement as d,css as p,html as f}from"./vendor/lit.js";import{customElement as h,property as v}from"./vendor/lit.js";var e=class extends d{render(){return f`<cite part="source" >${this.href?f`<a href=${this.href}><slot></slot></a>`:f`<slot></slot>`}</cite
|
|
2
|
+
>`}};e.styles=p`:host{display:block;margin-top:var(--deck-source-gap,var(--rik-space-2));color:var(--deck-source-color,var(--rik-text-default--faint));font-family:var(--rik-font-mono);font-size:var(--rik-font-size-xs);font-style:normal}a{color:inherit;text-underline-offset:0.18em}`,n([v({type:String})],e.prototype,"href",2),e=n([h("deck-source")],e);export{e as DeckSource};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export type DeckSplitCols = '1-1' | '1-2' | '2-1' | '3';
|
|
3
|
+
export declare class DeckSplit extends LitElement {
|
|
4
|
+
static styles: import("lit").CSSResult[];
|
|
5
|
+
eyebrow?: string;
|
|
6
|
+
cols?: DeckSplitCols;
|
|
7
|
+
gap?: string;
|
|
8
|
+
colGap?: string;
|
|
9
|
+
/** Map '1'..'6' to var(--sp-N); fall through to raw values otherwise. */
|
|
10
|
+
private _resolveSp;
|
|
11
|
+
updated(): void;
|
|
12
|
+
/** Distribute the leftover vertical space of the body ·
|
|
13
|
+
* `between` / `around` / `evenly` / `center` / `end` / `start` (default). */
|
|
14
|
+
spread?: string;
|
|
15
|
+
/** Let the body's blocks take the leftover height instead of distributing it
|
|
16
|
+
* around them · pair with a `<deck-fit>` child to grow its text into it. */
|
|
17
|
+
fill: boolean;
|
|
18
|
+
/** Symbol or word between the two columns · turns a neutral split into a
|
|
19
|
+
* directed comparison. Two columns only; ignored in the three-column form. */
|
|
20
|
+
pivot?: string;
|
|
21
|
+
/** Which side carries the accent · `left` or `right`, or absent for neither. */
|
|
22
|
+
winner?: 'left' | 'right';
|
|
23
|
+
willUpdate(): void;
|
|
24
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
25
|
+
}
|
|
26
|
+
declare global {
|
|
27
|
+
interface HTMLElementTagNameMap {
|
|
28
|
+
'deck-split': DeckSplit;
|
|
29
|
+
}
|
|
30
|
+
}
|
package/dist/deck-split.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
var g=Object.defineProperty;var
|
|
1
|
+
var g=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var r=(l,i,o,e)=>{for(var s=e>1?void 0:e?h(i,o):i,d=l.length-1,c;d>=0;d--)(c=l[d])&&(s=(e?c(i,o,s):c(s))||s);return e&&s&&g(i,o,s),s};import{LitElement as y,html as n,css as x}from"./vendor/lit.js";import{customElement as w,property as a}from"./vendor/lit.js";import{css as p}from"./vendor/lit.js";var k=p`: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}.body,.col{justify-content:var(--_spread,var(--rik-slide-spread,center))}:host([fill]) .body > ::slotted(*),:host([fill]) .col > ::slotted(*){flex:1 1 0;min-height:0}:host([fill]) .body,:host([fill]) .col{justify-content:stretch}@media print{:host{display:flex;position:relative;inset:auto;width:calc(var(--deck-canvas-w,1920) * 1px);height:calc(var(--deck-canvas-h,1080) * 1px);break-inside:avoid;break-after:page;-webkit-print-color-adjust:exact;print-color-adjust:exact}:host(:last-child){break-after:auto}}`,m=p`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)}`,u=p`.lbl{display:inline-block;padding:var(--deck-eyebrow-padding-y,0) var(--deck-eyebrow-padding-x,0);background:var(--deck-eyebrow-bg,transparent);color:var(--deck-eyebrow-color,var(--rik-accent__text));border-radius:var(--deck-eyebrow-radius,0);font-size:var(--rik-font-size-body);font-weight:600;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)}`,f=[k,m,u];var b=new Map([["start","flex-start"],["center","center"],["end","flex-end"],["between","space-between"],["around","space-around"],["evenly","space-evenly"]]);function v(l){let i=(l??"").trim().toLowerCase();return i===""||i==="theme"?"":b.get(i)??""}var t=class extends y{constructor(){super(...arguments);this.fill=!1}_resolveSp(o){let e=parseInt(o,10);return!Number.isNaN(e)&&e>=1&&e<=6?`var(--rik-space-${e})`:o}updated(){this.gap&&this.style.setProperty("--_gap",this._resolveSp(this.gap)),this.colGap&&this.style.setProperty("--_col-gap",this._resolveSp(this.colGap))}willUpdate(){this.style.setProperty("--_spread",v(this.spread??null))}render(){let o=this.querySelector('[slot="a"]'),e=this.cols==="3"||!!o;return n`${this.eyebrow?n`<span class="lbl">${this.eyebrow}</span>`:""}
|
|
2
2
|
<slot name="title"></slot>
|
|
3
3
|
<slot name="lead"></slot>
|
|
4
4
|
<div class="body" part="body">
|
|
5
|
-
${
|
|
5
|
+
${e?n`<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>`:n`<div class="col" part="col"><slot name="left"></slot></div> ${this.pivot?n`<span class="pivot" part="pivot" aria-hidden="true"><span class="pivot-word" part="pivot-word">${this.pivot}</span></span>`:""}
|
|
6
|
+
<div class="col" part="col"><slot name="right"></slot></div>
|
|
7
|
+
`}
|
|
6
8
|
</div>
|
|
7
|
-
`}};
|
|
9
|
+
`}};t.styles=[...f,x`: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}.pivot{align-self:stretch;justify-self:center;display:grid;place-items:center;position:relative;padding-inline:var(--rik-space-3);flex:none}.pivot::before{content:'';position:absolute;top:0;bottom:0;left:50%;width:var(--deck-split-pivot-rule-width,4px);transform:translateX(-50%);background:var(--deck-split-pivot-rule,var(--rik-accent));border-radius:var(--rik-radius-pill)}.pivot-word{position:relative;font-family:var(--rik-font-display,var(--rik-font-sans));font-size:var(--deck-split-pivot-size,var(--rik-font-size-big));font-weight:900;line-height:1;color:var(--deck-split-pivot-color,var(--rik-accent));background:var(--deck-split-pivot-bg,var(--rik-surface-page));padding-block:var(--rik-space-2)}:host([pivot]) .body{grid-template-columns:1fr auto 1fr}:host([winner]) .col{padding-top:var(--rik-space-3);border-top:var(--deck-split-winner-width,3px) solid var(--rik-text-default--faint)}:host([winner='left']) .col:first-of-type,:host([winner='right']) .col:last-of-type{border-top-color:var(--deck-split-winner-ring,var(--rik-accent))}@media print{:host([winner]) .col{-webkit-print-color-adjust:exact;print-color-adjust:exact}}`],r([a({type:String})],t.prototype,"eyebrow",2),r([a({type:String})],t.prototype,"cols",2),r([a({type:String})],t.prototype,"gap",2),r([a({type:String,attribute:"col-gap"})],t.prototype,"colGap",2),r([a({type:String,reflect:!0})],t.prototype,"spread",2),r([a({type:Boolean,reflect:!0})],t.prototype,"fill",2),r([a({type:String,reflect:!0})],t.prototype,"pivot",2),r([a({type:String,reflect:!0})],t.prototype,"winner",2),t=r([w("deck-split")],t);export{t as DeckSplit};
|
|
@@ -5,6 +5,8 @@ export declare class DeckStat extends LitElement {
|
|
|
5
5
|
num?: string;
|
|
6
6
|
tone?: DeckStatTone;
|
|
7
7
|
updated(): void;
|
|
8
|
+
/** Smaller scale, for a row of stats rather than a single hero figure. */
|
|
9
|
+
compact: boolean;
|
|
8
10
|
render(): import("lit-html").TemplateResult<1>;
|
|
9
11
|
}
|
|
10
12
|
declare global {
|
package/dist/deck-stat.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var v=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var
|
|
1
|
+
var v=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var a=(o,e,s,i)=>{for(var r=i>1?void 0:i?m(e,s):e,n=o.length-1,c;n>=0;n--)(c=o[n])&&(r=(i?c(e,s,r):c(r))||r);return i&&r&&v(e,s,r),r};import{LitElement as p,html as d,css as k}from"./vendor/lit.js";import{customElement as f,property as l}from"./vendor/lit.js";var g={yellow:"var(--rik-accent__text)",orange:"var(--rik-status-warn__text)",green:"var(--rik-status-success__text)",red:"var(--rik-status-danger__text)",purple:"var(--rik-decor-orchid__text)",lime:"var(--rik-decor-lime__text)",cyan:"var(--rik-decor-canary__text)"},t=class extends p{constructor(){super(...arguments);this.compact=!1}updated(){this.tone?this.style.setProperty("--_c",g[this.tone]??this.tone):this.style.removeProperty("--_c")}render(){return d`${this.num?d`<div class="num" part="num">${this.num}</div>`:""}
|
|
2
2
|
<slot name="claim"></slot>
|
|
3
3
|
<div class="body" part="body"><slot></slot></div>
|
|
4
|
-
`}};t.styles=
|
|
4
|
+
`}};t.styles=k`: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,7cqw,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)}:host([compact]){--deck-stat-num-size:var(--rik-font-size-big);gap:var(--rik-space-1)}`,a([l({type:String})],t.prototype,"num",2),a([l({type:String})],t.prototype,"tone",2),a([l({type:Boolean,reflect:!0})],t.prototype,"compact",2),t=a([f("deck-stat")],t);export{t as DeckStat};
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
import { LitElement } from 'lit';
|
|
2
2
|
export declare class DeckStepList extends LitElement {
|
|
3
3
|
static styles: import("lit").CSSResult;
|
|
4
|
+
/** `column` (default) or `row` · a chain that wants the slide width. */
|
|
5
|
+
direction: 'column' | 'row';
|
|
6
|
+
/** Drop the connectors between steps in row direction. */
|
|
7
|
+
noConnectors: boolean;
|
|
4
8
|
render(): import("lit-html").TemplateResult<1>;
|
|
5
9
|
}
|
|
6
10
|
export declare class DeckStep extends LitElement {
|
|
7
11
|
static styles: import("lit").CSSResult;
|
|
12
|
+
/** Sequence number shown before the step label. */
|
|
8
13
|
n?: string;
|
|
14
|
+
/** Supporting explanation associated with this step. */
|
|
9
15
|
note?: string;
|
|
16
|
+
/** Put the note `inline` (default) or `below` its label. */
|
|
17
|
+
notePosition: 'inline' | 'below';
|
|
10
18
|
render(): import("lit-html").TemplateResult<1>;
|
|
11
19
|
}
|
|
12
20
|
declare global {
|
package/dist/deck-step-list.js
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
1
|
+
var v=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var t=(n,i,d,s)=>{for(var r=s>1?void 0:s?f(i,d):i,p=n.length-1,c;p>=0;p--)(c=n[p])&&(r=(s?c(i,d,r):c(r))||r);return s&&r&&v(i,d,r),r};import{LitElement as m,html as l,css as u}from"./vendor/lit.js";import{customElement as g,property as a}from"./vendor/lit.js";var o=class extends m{constructor(){super(...arguments);this.direction="column";this.noConnectors=!1}render(){return l`<slot></slot>`}};o.styles=u`:host{display:flex;flex-direction:column;gap:var(--deck-step-list-gap,var(--rik-space-2xs))}:host([direction='row']){flex-direction:row;align-items:stretch;gap:var(--deck-step-list-gap,var(--rik-space-4))}:host([direction='row']) ::slotted(*){flex:1 1 0;min-width:0;position:relative}:host([direction='row']:not([no-connectors])) ::slotted(* + *)::before{content:'';position:absolute;top:50%;right:100%;width:var(--deck-step-list-gap,var(--rik-space-4));height:var(--deck-step-list-arrow,2px);transform:translateY(-50%);background:var(--deck-step-list-connector,var(--rik-border-default))}`,t([a({type:String,reflect:!0})],o.prototype,"direction",2),t([a({type:Boolean,reflect:!0,attribute:"no-connectors"})],o.prototype,"noConnectors",2),o=t([g("deck-step-list")],o);var e=class extends m{constructor(){super(...arguments);this.notePosition="inline"}render(){return l`${this.n?l`<span class="step-num">${this.n}</span>`:""}
|
|
2
|
+
<span class="label"><slot></slot></span>
|
|
3
|
+
${this.note?l`<span class="note">${this.note}</span>`:""}
|
|
4
|
+
`}};e.styles=u`:host{display:flex;align-items:baseline;gap:var(--rik-space-3);padding:var(--deck-step-padding-y,var(--rik-space-2)) 0;border-bottom:1px solid var(--deck-step-rule,var(--rik-border-subtle,var(--rik-border-default)));font-family:var(--rik-font-sans);font-size:var(--rik-font-size-body)}:host(:last-of-type){border-bottom:0}.step-num{flex:0 0 auto;min-width:var(--deck-step-num-size,1.6em);color:var(--deck-step-num-color,var(--rik-accent));font:800 var(--deck-step-num-scale,1.15em)/1 var(--rik-font-sans);font-variant-numeric:tabular-nums}.label{flex:0 1 auto;font-weight:600;color:var(--deck-step-label-color,var(--rik-text-default))}.note{flex:0 1 auto;margin-right:auto;color:var(--deck-step-note-color,var(--rik-text-default--muted,var(--rik-text-default--faint)));font-size:var(--rik-font-size-sm)}:host([note-position='below']){display:grid;grid-template-columns:minmax(var(--deck-step-num-size,1.6em),auto) minmax(0,1fr);grid-template-rows:auto auto;column-gap:var(--rik-space-3);row-gap:var(--deck-step-note-gap,var(--rik-space-1));align-items:baseline}:host([note-position='below']) .step-num{grid-column:1;grid-row:1 / span 2}:host([note-position='below']) .label{grid-column:2;grid-row:1}:host([note-position='below']) .note{grid-column:2;grid-row:2;min-width:0;margin:0;line-height:1.35;overflow-wrap:anywhere}`,t([a({type:String})],e.prototype,"n",2),t([a({type:String})],e.prototype,"note",2),t([a({type:String,reflect:!0,attribute:"note-position"})],e.prototype,"notePosition",2),e=t([g("deck-step")],e);export{e as DeckStep,o as DeckStepList};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export declare class DeckTable extends LitElement {
|
|
3
|
+
static styles: import("lit").CSSResult;
|
|
4
|
+
/** 1-based body rows to emphasise · `2` or `2 5`. */
|
|
5
|
+
highlightRows?: string;
|
|
6
|
+
/** 1-based columns to emphasise. */
|
|
7
|
+
highlightCols?: string;
|
|
8
|
+
/** Reveal body rows one per step. */
|
|
9
|
+
reveal: boolean;
|
|
10
|
+
private _indices;
|
|
11
|
+
private get _bodyRows();
|
|
12
|
+
connectedCallback(): void;
|
|
13
|
+
updated(): void;
|
|
14
|
+
/** Write the emphasis onto the author's own markup · a light-DOM table cannot
|
|
15
|
+
* be styled from this shadow root, so the marks travel as attributes and the
|
|
16
|
+
* rules live in the theme (table[data-rik-table] in themes/*.css). */
|
|
17
|
+
private _paint;
|
|
18
|
+
/** Called by deck-root on every step change. */
|
|
19
|
+
applyStep(step: number): void;
|
|
20
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
21
|
+
}
|
|
22
|
+
declare global {
|
|
23
|
+
interface HTMLElementTagNameMap {
|
|
24
|
+
'deck-table': DeckTable;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var p=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var n=(o,s,t,e)=>{for(var i=e>1?void 0:e?c(s,t):s,r=o.length-1,a;r>=0;r--)(a=o[r])&&(i=(e?a(s,t,i):a(i))||i);return e&&i&&p(s,t,i),i};import{LitElement as g,css as m,html as u}from"./vendor/lit.js";import{customElement as b,property as d}from"./vendor/lit.js";function h(o,s){[...o.cells].forEach((t,e)=>{t.toggleAttribute("data-mark",s.has(e+1))})}var l=class extends g{constructor(){super(...arguments);this.reveal=!1}_indices(t){return new Set((t??"").split(/[\s,]+/).map(e=>Number.parseInt(e,10)).filter(e=>Number.isFinite(e)&&e>0))}get _bodyRows(){return[...this.querySelectorAll("tbody tr")]}connectedCallback(){if(super.connectedCallback(),this._paint(),!this.reveal)return;let t=this;for(;t?.parentElement&&t.parentElement.tagName.toLowerCase()!=="deck-root";)t=t.parentElement;if(!t?.parentElement)return;let e=this._bodyRows.length,i=Number(t.getAttribute("steps")??t.getAttribute("data-steps")??"0");e>i&&t.setAttribute("data-steps",String(e))}updated(){this._paint()}_paint(){let t=this._indices(this.highlightRows),e=this._indices(this.highlightCols);this.querySelector("table")?.setAttribute("data-rik-table",""),this._bodyRows.forEach((r,a)=>{r.toggleAttribute("data-mark",t.has(a+1)),h(r,e)});for(let r of this.querySelectorAll("thead tr"))h(r,e)}applyStep(t){this.reveal&&this._bodyRows.forEach((e,i)=>{e.toggleAttribute("data-pending",i+1>t)})}render(){return u`<slot @slotchange=${()=>this._paint()}></slot>`}};l.styles=m`:host{display:block;min-width:0;overflow:hidden}::slotted(table){width:100%;border-collapse:collapse}`,n([d({type:String,attribute:"highlight-rows"})],l.prototype,"highlightRows",2),n([d({type:String,attribute:"highlight-cols"})],l.prototype,"highlightCols",2),n([d({type:Boolean,reflect:!0})],l.prototype,"reveal",2),l=n([b("deck-table")],l);export{l as DeckTable};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export declare class DeckTakeaway extends LitElement {
|
|
3
|
+
static styles: import("lit").CSSResult[];
|
|
4
|
+
kicker?: string;
|
|
5
|
+
/** Distribute the leftover vertical space of the body ·
|
|
6
|
+
* `between` / `around` / `evenly` / `center` / `end` / `start` (default). */
|
|
7
|
+
spread?: string;
|
|
8
|
+
/** Let the body's blocks take the leftover height instead of distributing it
|
|
9
|
+
* around them · pair with a `<deck-fit>` child to grow its text into it. */
|
|
10
|
+
fill: boolean;
|
|
11
|
+
willUpdate(): void;
|
|
12
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
13
|
+
}
|
|
14
|
+
declare global {
|
|
15
|
+
interface HTMLElementTagNameMap {
|
|
16
|
+
'deck-takeaway': DeckTakeaway;
|
|
17
|
+
}
|
|
18
|
+
}
|
package/dist/deck-takeaway.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var
|
|
1
|
+
var v=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var i=(a,e,n,o)=>{for(var r=o>1?void 0:o?g(e,n):e,s=a.length-1,l;s>=0;s--)(l=a[s])&&(r=(o?l(e,n,r):l(r))||r);return o&&r&&v(e,n,r),r};import{LitElement as b,html as k,css as y}from"./vendor/lit.js";import{customElement as w,property as c}from"./vendor/lit.js";import{css as d}from"./vendor/lit.js";var m=d`: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}.body,.col{justify-content:var(--_spread,var(--rik-slide-spread,center))}:host([fill]) .body > ::slotted(*),:host([fill]) .col > ::slotted(*){flex:1 1 0;min-height:0}:host([fill]) .body,:host([fill]) .col{justify-content:stretch}@media print{:host{display:flex;position:relative;inset:auto;width:calc(var(--deck-canvas-w,1920) * 1px);height:calc(var(--deck-canvas-h,1080) * 1px);break-inside:avoid;break-after:page;-webkit-print-color-adjust:exact;print-color-adjust:exact}:host(:last-child){break-after:auto}}`,u=d`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)}`,h=d`.lbl{display:inline-block;padding:var(--deck-eyebrow-padding-y,0) var(--deck-eyebrow-padding-x,0);background:var(--deck-eyebrow-bg,transparent);color:var(--deck-eyebrow-color,var(--rik-accent__text));border-radius:var(--deck-eyebrow-radius,0);font-size:var(--rik-font-size-body);font-weight:600;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=[m,u,h];var x=new Map([["start","flex-start"],["center","center"],["end","flex-end"],["between","space-between"],["around","space-around"],["evenly","space-evenly"]]);function f(a){let e=(a??"").trim().toLowerCase();return e===""||e==="theme"?"":x.get(e)??""}var t=class extends b{constructor(){super(...arguments);this.fill=!1}willUpdate(){this.style.setProperty("--_spread",f(this.spread??null))}render(){return k`<div class="body" part="body"> ${this.kicker?k`<span class="kicker on-dark">${this.kicker}</span>`:""}
|
|
2
2
|
<slot></slot>
|
|
3
3
|
</div>
|
|
4
|
-
`}};
|
|
4
|
+
`}};t.styles=[...p,y`: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:75cqw}::slotted(.display){font-family:var(--rik-font-display,var(--rik-font-sans));font-size:clamp(3rem,7cqw,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))}`],i([c({type:String})],t.prototype,"kicker",2),i([c({type:String,reflect:!0})],t.prototype,"spread",2),i([c({type:Boolean,reflect:!0})],t.prototype,"fill",2),t=i([w("deck-takeaway")],t);export{t as DeckTakeaway};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export type DeckMilestoneTone = 'default' | 'accent' | 'ok' | 'warn' | 'danger';
|
|
3
|
+
export declare class DeckTimeline extends LitElement {
|
|
4
|
+
static styles: import("lit").CSSResult;
|
|
5
|
+
/** `row` (default) or `column`. */
|
|
6
|
+
direction: 'row' | 'column';
|
|
7
|
+
/** Row only · milestones alternate above and below the axis, each twice as wide. */
|
|
8
|
+
alternate: boolean;
|
|
9
|
+
/** Walk the trajectory one milestone per step.
|
|
10
|
+
*
|
|
11
|
+
* Emphasis, not concealment · at step 0 the whole span is visible, because
|
|
12
|
+
* the distance between the first and the last date is half the message. */
|
|
13
|
+
reveal: boolean;
|
|
14
|
+
connectedCallback(): void;
|
|
15
|
+
/** Called by deck-root on every step change. */
|
|
16
|
+
applyStep(step: number): void;
|
|
17
|
+
updated(): void;
|
|
18
|
+
/** Tell each milestone its side and column · a grid cannot count its items,
|
|
19
|
+
* so the index is written where the slotted rule can read it. */
|
|
20
|
+
private _arrange;
|
|
21
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
22
|
+
}
|
|
23
|
+
export declare class DeckMilestone extends LitElement {
|
|
24
|
+
static styles: import("lit").CSSResult;
|
|
25
|
+
date?: string;
|
|
26
|
+
label?: string;
|
|
27
|
+
note?: string;
|
|
28
|
+
tone: DeckMilestoneTone;
|
|
29
|
+
willUpdate(): void;
|
|
30
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
31
|
+
}
|
|
32
|
+
declare global {
|
|
33
|
+
interface HTMLElementTagNameMap {
|
|
34
|
+
'deck-timeline': DeckTimeline;
|
|
35
|
+
'deck-milestone': DeckMilestone;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
var h=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var a=(c,s,e,r)=>{for(var t=r>1?void 0:r?f(s,e):s,l=c.length-1,p;l>=0;l--)(p=c[l])&&(t=(r?p(s,e,t):p(t))||t);return r&&t&&h(s,e,t),t};import{LitElement as u,css as g,html as d}from"./vendor/lit.js";import{customElement as v,property as n}from"./vendor/lit.js";var m={default:"var(--rik-text-default--faint)",accent:"var(--rik-accent__text)",ok:"var(--rik-status-success__text)",warn:"var(--rik-status-warn__text)",danger:"var(--rik-status-danger__text)"},i=class extends u{constructor(){super(...arguments);this.direction="row";this.alternate=!1;this.reveal=!1;this._arrange=()=>{let e=[...this.querySelectorAll("deck-milestone")],r=this.alternate&&this.direction!=="column";e.forEach((t,l)=>{r?(t.setAttribute("side",l%2?"down":"up"),t.style.setProperty("--_col",String(l+1))):(t.removeAttribute("side"),t.style.removeProperty("--_col"))}),this.style.setProperty("--_cols",String(e.length+1))}}connectedCallback(){if(super.connectedCallback(),!this.reveal)return;let e=this;for(;e?.parentElement&&e.parentElement.tagName.toLowerCase()!=="deck-root";)e=e.parentElement;if(!e?.parentElement)return;let r=this.querySelectorAll("deck-milestone").length,t=Number(e.getAttribute("steps")??e.getAttribute("data-steps")??"0");r>t&&e.setAttribute("data-steps",String(r))}applyStep(e){this.reveal&&this.querySelectorAll("deck-milestone").forEach((r,t)=>{r.toggleAttribute("pending",e>0&&t+1>e),r.toggleAttribute("active",t+1===e)})}updated(){this._arrange()}render(){return d`<slot @slotchange=${this._arrange}></slot>`}};i.styles=g`:host{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:var(--deck-timeline-gap,var(--rik-space-3));position:relative;font-family:var(--rik-font-sans);padding-top:var(--rik-space-4)}:host::before{content:'';position:absolute;top:calc(var(--rik-space-4) + 0.5em);left:0;right:0;height:var(--deck-timeline-axis-width,2px);background:var(--deck-timeline-axis,var(--rik-text-default--faint))}:host([direction='column']){grid-auto-flow:row;grid-auto-columns:auto;padding-top:0;padding-left:var(--rik-space-4)}:host([direction='column'])::before{top:0;bottom:0;left:calc(var(--rik-space-4) - 1px);right:auto;width:var(--deck-timeline-axis-width,2px);height:auto}:host([alternate]:not([direction='column'])){grid-auto-flow:row;grid-template-columns:repeat(var(--_cols,2),minmax(0,1fr));grid-template-rows:1fr 1fr;row-gap:0;padding-top:0}:host([alternate]:not([direction='column']))::before{top:calc(50% - var(--deck-timeline-axis-width,2px) / 2)}::slotted(deck-milestone[side]){grid-column:var(--_col) / span 2}::slotted(deck-milestone[side='up']){grid-row:1;align-self:end}::slotted(deck-milestone[side='down']){grid-row:2;align-self:start}`,a([n({type:String,reflect:!0})],i.prototype,"direction",2),a([n({type:Boolean,reflect:!0})],i.prototype,"alternate",2),a([n({type:Boolean,reflect:!0})],i.prototype,"reveal",2),i=a([v("deck-timeline")],i);var o=class extends u{constructor(){super(...arguments);this.tone="default"}willUpdate(){this.style.setProperty("--_tone",m[this.tone]??m.default)}render(){return d`<span class="dot" part="dot" aria-hidden="true"></span> ${this.date?d`<span class="date" part="date">${this.date}</span>`:""}
|
|
2
|
+
${this.label?d`<span class="label" part="label">${this.label}</span>`:""}
|
|
3
|
+
${this.note?d`<span class="note" part="note">${this.note}</span>`:""}
|
|
4
|
+
<slot></slot>
|
|
5
|
+
`}};o.styles=g`:host{display:flex;flex-direction:column;gap:var(--rik-space-1);min-width:0;transition:opacity 0.2s ease}@media (prefers-reduced-motion:reduce){:host{transition:none}}:host([pending]){opacity:var(--deck-milestone-pending-opacity,0.25)}:host([active]) .dot{transform:scale(1.6)}.dot{width:var(--deck-milestone-dot-size,1em);height:var(--deck-milestone-dot-size,1em);border-radius:var(--rik-radius-pill);background:var(--deck-milestone-dot,var(--_tone));box-shadow:0 0 0 4px var(--rik-surface-page);flex:none}.date{font-size:var(--rik-font-size-body);color:var(--deck-milestone-date-color,var(--rik-text-default--muted));font-variant-numeric:tabular-nums}.label{font-size:var(--rik-font-size-lead);font-weight:700;line-height:1.25;color:var(--deck-milestone-label-color,var(--rik-text-default))}.note{font-size:var(--rik-font-size-body);color:var(--deck-milestone-note-color,var(--rik-text-default--muted));line-height:1.35}:host([side]){padding-block:var(--rik-space-2)}:host([side='up']) .dot{order:1;margin-bottom:calc(var(--deck-milestone-dot-size,1em) / -2 - var(--rik-space-2))}:host([side='down']) .dot{margin-top:calc(var(--deck-milestone-dot-size,1em) / -2 - var(--rik-space-2))}@media print{:host{opacity:1}.dot{-webkit-print-color-adjust:exact;print-color-adjust:exact}}`,a([n({type:String})],o.prototype,"date",2),a([n({type:String})],o.prototype,"label",2),a([n({type:String})],o.prototype,"note",2),a([n({type:String,reflect:!0})],o.prototype,"tone",2),o=a([v("deck-milestone")],o);export{o as DeckMilestone,i as DeckTimeline};
|
package/dist/deck-transition.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var e={slide:560,"slide-up":520,"slide-down":520,"slide-right":560,fade:480,zoom:520,flip:560},r="var(--rik-motion__ease-out, cubic-bezier(0.16, 1, 0.3, 1))"
|
|
1
|
+
var e={slide:560,"slide-up":520,"slide-down":520,"slide-right":560,fade:480,zoom:520,flip:560},y=new Set(["slide","slide-right","slide-up","slide-down"]),r="var(--rik-motion__ease-out, cubic-bezier(0.16, 1, 0.3, 1))",$="var(--rik-motion__ease-spring, cubic-bezier(0.5, 1.8, 0.3, 1))",x=`
|
|
2
2
|
/* Incoming \xB7 from right (forward) */
|
|
3
3
|
@keyframes rk-slide-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
|
|
4
4
|
/* Outgoing \xB7 pushed off to the left (forward) */
|
|
@@ -39,7 +39,7 @@ var e={slide:560,"slide-up":520,"slide-down":520,"slide-right":560,fade:480,zoom
|
|
|
39
39
|
::slotted(.rk-leaving.rk-exit-slide-down) { animation: rk-slide-down-out ${e["slide-down"]}ms ${r} both; }
|
|
40
40
|
::slotted([active].rk-enter-fade) { animation: rk-fade-in ${e.fade}ms ${r} both; }
|
|
41
41
|
::slotted(.rk-leaving.rk-exit-fade) { animation: rk-fade-out ${e.fade}ms ${r} both; }
|
|
42
|
-
::slotted([active].rk-enter-zoom) { animation: rk-zoom-in ${e.zoom}ms ${
|
|
42
|
+
::slotted([active].rk-enter-zoom) { animation: rk-zoom-in ${e.zoom}ms ${$} both; }
|
|
43
43
|
::slotted(.rk-leaving.rk-exit-zoom) { animation: rk-zoom-out ${e.zoom}ms ${r} both; }
|
|
44
44
|
::slotted([active].rk-enter-flip) { animation: rk-flip-in ${e.flip}ms ${r} both; }
|
|
45
45
|
::slotted(.rk-leaving.rk-exit-flip) { animation: rk-flip-out ${e.flip}ms ${r} both; }
|
|
@@ -48,4 +48,4 @@ var e={slide:560,"slide-up":520,"slide-down":520,"slide-right":560,fade:480,zoom
|
|
|
48
48
|
::slotted([active][class*='rk-enter-']),
|
|
49
49
|
::slotted(.rk-leaving) { animation: none; }
|
|
50
50
|
}
|
|
51
|
-
`,h=["rk-enter-slide","rk-enter-slide-up","rk-enter-slide-down","rk-enter-slide-right","rk-enter-fade","rk-enter-zoom","rk-enter-flip"],
|
|
51
|
+
`,h=["rk-enter-slide","rk-enter-slide-up","rk-enter-slide-down","rk-enter-slide-right","rk-enter-fade","rk-enter-zoom","rk-enter-flip"],E=["rk-exit-slide","rk-exit-slide-up","rk-exit-slide-down","rk-exit-slide-right","rk-exit-fade","rk-exit-zoom","rk-exit-flip"];function b(s){let a=s;if(a.__rkTransitions)return a.__rkTransitions;let k=s.shadowRoot;if(!k)return()=>{};let l=document.createElement("style");l.textContent=x,l.setAttribute("data-rik-transitions",""),k.appendChild(l);function w(f,n){if(!n)return 0;let t=f.compareDocumentPosition(n);return t&Node.DOCUMENT_POSITION_PRECEDING?1:t&Node.DOCUMENT_POSITION_FOLLOWING?-1:0}let m=f=>{if(s.__rkMorphActive)return;let n=f,t=n.detail.current,i=n.detail.previous;if(!t)return;let o=t.dataset.transition||s.transition||"fade",d=w(t,i);o==="slide"&&d<0?o="slide-right":o==="slide-right"&&d>0?o="slide":o==="slide-up"&&d<0?o="slide-down":o==="slide-down"&&d>0&&(o="slide-up");let p=`rk-enter-${o}`,v=`rk-exit-${o}`,g=e[o]??480;i&&i!==t&&y.has(o)&&(i.classList.remove(...h,...E,"rk-leaving"),i.style.display="flex",i.style.zIndex="1",i.offsetWidth,i.classList.add("rk-leaving",v),window.setTimeout(()=>{i.classList.remove("rk-leaving",v),i.style.display="",i.style.zIndex=""},g+40)),t.classList.remove(...h),t.style.zIndex="2",t.offsetWidth,t.classList.add(p),window.setTimeout(()=>{t.classList.remove(p),t.style.zIndex=""},g+40)};s.addEventListener("slide-change",m);let c=s.querySelector(":scope > [active]");c&&m(new CustomEvent("slide-change",{detail:{current:c,previous:null}}));let u=()=>{s.removeEventListener("slide-change",m),l.remove(),delete a.__rkTransitions};return a.__rkTransitions=u,u}export{b as installTransitions};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export declare class DeckVersus extends LitElement {
|
|
3
|
+
static styles: import("lit").CSSResult[];
|
|
4
|
+
/** Symbol or word between the two sides · omit for a plain two-up. */
|
|
5
|
+
pivot?: string;
|
|
6
|
+
/** Which side carries the accent. */
|
|
7
|
+
winner?: 'left' | 'right';
|
|
8
|
+
/** Make this comparison a direct deck-root slide. */
|
|
9
|
+
slide: boolean;
|
|
10
|
+
/** Optional context label shown above the title in slide mode. */
|
|
11
|
+
eyebrow?: string;
|
|
12
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
13
|
+
}
|
|
14
|
+
declare global {
|
|
15
|
+
interface HTMLElementTagNameMap {
|
|
16
|
+
'deck-versus': DeckVersus;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
var c=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var r=(s,i,n,a)=>{for(var e=a>1?void 0:a?f(i,n):i,d=s.length-1,l;d>=0;d--)(l=s[d])&&(e=(a?l(i,n,e):l(e))||e);return a&&e&&c(i,n,e),e};import{LitElement as m,css as h,html as v}from"./vendor/lit.js";import{customElement as k,property as o}from"./vendor/lit.js";import{css as g}from"./vendor/lit.js";var p=g`.mass{background:var(--rik-extras-mass,var(--rik-surface-inverse));color:var(--rik-extras-mass-text,var(--rik-text-inverse));padding:var(--rik-space-3) var(--rik-space-4);border-radius:var(--rik-radius-sm)}.statement{font-family:var(--rik-font-display,var(--rik-font-sans));font-size:var(--rik-extras-statement,var(--rik-font-size-mega));font-weight:800;line-height:0.95;letter-spacing:-0.02em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.reading{font-family:var(--rik-font-sans);font-size:var(--rik-extras-reading,var(--rik-font-size-body));font-weight:400;line-height:1.35;max-width:62ch}.quiet{color:var(--rik-extras-quiet,var(--rik-text-default--muted))}.edge{border:0;border-top:1px solid var(--rik-extras-edge,var(--rik-border-default));margin:0}@media (prefers-reduced-motion:reduce){*{transition:none !important;animation:none !important}}`;var t=class extends m{constructor(){super(...arguments);this.slide=!1}render(){return v`<div class="heading"> ${this.eyebrow?v`<span class="eyebrow" part="eyebrow">${this.eyebrow}</span>`:""}
|
|
2
|
+
<div class="title" part="title"><slot name="title"></slot></div>
|
|
3
|
+
<div class="lead" part="lead"><slot name="lead"></slot></div>
|
|
4
|
+
</div>
|
|
5
|
+
<div class="side left" part="left"><slot name="left"></slot></div>
|
|
6
|
+
${this.pivot?v`<span class="pivot reading" part="pivot" aria-hidden="true">${this.pivot}</span>`:""}
|
|
7
|
+
<div class="side right" part="right"><slot name="right"></slot></div>
|
|
8
|
+
<div class="footer" part="footer"><slot name="footer"></slot></div>
|
|
9
|
+
`}};t.styles=[p,h`:host{display:grid;grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);align-items:stretch;gap:var(--deck-versus-gap,var(--rik-space-3));font-family:var(--rik-font-sans)}:host([slide]){display:none;position:absolute;inset:0;box-sizing:border-box;grid-template-columns:minmax(0,1fr) 80px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch;gap:var(--rik-space-3) var(--deck-versus-gap,var(--rik-space-4));padding:var(--rik-slide-padding-y) var(--rik-slide-padding-x);overflow:hidden;background:var(--deck-versus-slide-bg,var(--rik-surface-page));color:var(--rik-text-default)}:host([slide][active]){display:grid}:host([slide]:not([pivot])){grid-template-columns:1fr 1fr}.heading{display:none}:host([slide]) .heading{display:flex;grid-column:1 / -1;flex-direction:column;align-items:flex-start;gap:var(--rik-space-2);min-width:0}.eyebrow{color:var(--deck-versus-eyebrow-color,var(--rik-accent__text));font-size:var(--rik-font-size-body);font-weight:600}.title,.lead{min-width:0}.footer{display:none}:host([slide]) .footer{display:block;grid-column:1 / -1;grid-row:3;margin-top:var(--deck-versus-footer-gap,var(--rik-space-3));font-family:var(--rik-font-sans);font-size:var(--rik-font-size-body);color:var(--rik-text-default--muted);line-height:1.5}:host([slide]) .side,:host([slide]) .pivot{grid-row:2;min-height:0}:host([slide]) .side{display:flex;flex-direction:column;justify-content:var(--deck-versus-side-align,center);overflow:hidden;padding-block:var(--rik-space-4)}:host(:not([pivot])){grid-template-columns:1fr 1fr}.side{min-width:0;padding:var(--rik-space-4) 0;border-block:var(--deck-versus-rule-width,2px) solid var(--deck-versus-rule,var(--rik-text-default--faint));transition:border-color 0.2s ease,color 0.2s ease}:host([winner='left']) .side.left,:host([winner='right']) .side.right{border-top-color:var(--deck-versus-winner-rule,var(--rik-accent))}:host([winner='right']) .side.left,:host([winner='left']) .side.right{color:var(--deck-versus-loser-color,var(--rik-text-default--faint))}:host([winner='right']) .side.left ::slotted(*),:host([winner='left']) .side.right ::slotted(*){color:inherit}.pivot{position:relative;display:grid;place-items:center;align-self:stretch;color:var(--deck-versus-pivot-color,var(--rik-accent--strong));font:800 var(--deck-versus-pivot-size,var(--rik-font-size-sm))/1 var(--rik-font-display);text-align:center;isolation:isolate}.pivot::before{content:'';position:absolute;inset-block:0;left:50%;width:1px;transform:translateX(-50%);background:var(--deck-versus-rule,var(--rik-border-default));z-index:-2}.pivot::after{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:52px;height:52px;border:1px solid var(--deck-versus-rule,var(--rik-border-default));border-radius:50%;background:var(--rik-surface-page);z-index:-1}::slotted(h3){margin:0 0 var(--rik-space-2);color:var(--rik-text-default);font:800 var(--rik-font-size-h3)/1.1 var(--rik-font-display)}::slotted(p){margin:0;color:var(--rik-text-default--muted);line-height:1.5}::slotted([slot='title']){display:inline-block;margin:0;padding-bottom:var(--rik-space-2);border-bottom:3px solid var(--rik-accent);color:var(--rik-text-default);font:800 var(--rik-font-size-h1)/1.1 var(--rik-font-display);letter-spacing:-0.022em}::slotted([slot='lead']){max-width:75ch;margin:0;color:var(--rik-text-default--muted);font-size:var(--rik-font-size-lead);line-height:1.5}@media (max-width:640px){:host,:host(:not([pivot])){grid-template-columns:1fr}:host([slide]),:host([slide]:not([pivot])){grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto minmax(0,1fr) auto}:host([slide]) .side.left{grid-row:2}:host([slide]) .pivot{grid-row:3}:host([slide]) .side.right{grid-row:4}:host([slide]) .footer{grid-row:5}.pivot{min-height:44px}.pivot::before{inset-block:50% auto;inset-inline:0;width:auto;height:1px;transform:translateY(-50%)}.pivot::after{width:44px;height:44px}}@media print{.side{-webkit-print-color-adjust:exact;print-color-adjust:exact}:host([slide]){display:grid;position:relative;inset:auto;width:calc(var(--deck-canvas-w,1920) * 1px);height:calc(var(--deck-canvas-h,1080) * 1px);break-inside:avoid;break-after:page;-webkit-print-color-adjust:exact;print-color-adjust:exact}:host([slide]:last-child){break-after:auto}}`],r([o({type:String,reflect:!0})],t.prototype,"pivot",2),r([o({type:String,reflect:!0})],t.prototype,"winner",2),r([o({type:Boolean,reflect:!0})],t.prototype,"slide",2),r([o({type:String})],t.prototype,"eyebrow",2),t=r([k("deck-versus")],t);export{t as DeckVersus};
|