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/keymap.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { DeckOutline, DeckPosition, StepsOf } from '../domain/deck-outline.js';
|
|
2
|
+
import type { NavigationPolicy } from '../domain/navigation.js';
|
|
3
|
+
/** What the deck should do · an intent, not a mutation. */
|
|
4
|
+
export type DeckIntent = 'none' | 'close-overview' | 'open-overview' | 'clear-blank' | 'blank-black' | 'blank-white' | 'zoom-in' | 'zoom-out' | 'zoom-reset' | 'toggle-help' | 'close-help' | 'toggle-presenter' | 'first' | 'last' | 'advance' | 'back' | 'next-chapter' | 'prev-chapter' | 'next-in-chapter' | 'prev-in-chapter';
|
|
5
|
+
/** Everything the keymap needs to know · a snapshot, so it stays pure. */
|
|
6
|
+
export interface KeyState {
|
|
7
|
+
readonly key: string;
|
|
8
|
+
/** The overview overlay is open · it swallows almost everything. */
|
|
9
|
+
readonly overview: boolean;
|
|
10
|
+
/** The screen is blanked · any key restores it and does nothing else. */
|
|
11
|
+
readonly blanked: boolean;
|
|
12
|
+
readonly zoomEnabled: boolean;
|
|
13
|
+
/** Already magnified beyond fit · only then does `0` mean "reset". */
|
|
14
|
+
readonly zoomed: boolean;
|
|
15
|
+
readonly twoD: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface KeyDecision {
|
|
18
|
+
readonly intent: DeckIntent;
|
|
19
|
+
/** Whether the engine should call preventDefault · preserved key by key,
|
|
20
|
+
* because the browser's own behaviour for Escape, Home/End and `?` is
|
|
21
|
+
* deliberately left alone. */
|
|
22
|
+
readonly preventDefault: boolean;
|
|
23
|
+
}
|
|
24
|
+
/** Map a key press to an intent.
|
|
25
|
+
*
|
|
26
|
+
* Order matters and mirrors what a presenter expects: an open overlay wins
|
|
27
|
+
* over everything, a blanked screen wins over navigation, and zoom keys are
|
|
28
|
+
* only claimed when zoom is actually available. */
|
|
29
|
+
export declare function keyIntent(state: KeyState): KeyDecision;
|
|
30
|
+
/** Which intents are a move, and therefore resolve to a position. */
|
|
31
|
+
export type MoveIntent = Extract<DeckIntent, 'first' | 'last' | 'advance' | 'back' | 'next-chapter' | 'prev-chapter' | 'next-in-chapter' | 'prev-in-chapter'>;
|
|
32
|
+
export declare const isMove: (intent: DeckIntent) => intent is MoveIntent;
|
|
33
|
+
/**
|
|
34
|
+
* Where a move intent lands.
|
|
35
|
+
*
|
|
36
|
+
* The four 2D intents fall back to linear navigation at the edges, on purpose:
|
|
37
|
+
* holding ArrowDown walks the whole deck rather than stopping dead at every
|
|
38
|
+
* chapter boundary, and ArrowRight past the last chapter still advances.
|
|
39
|
+
*/
|
|
40
|
+
export declare function resolveMove(intent: MoveIntent, outline: DeckOutline, policy: NavigationPolicy, from: DeckPosition, stepsOf: StepsOf): DeckPosition | null;
|
package/dist/keymap.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function D(t,e){for(let n=0;n<t.chapters.length;n++){let i=t.chapters[n],r=e-i.start;if(r>=0&&r<i.length)return{chapter:n,index:r}}return{chapter:0,index:0}}function x(t,e){if(t.chapters.length===0)return null;let n=l(e.chapter,0,t.chapters.length-1),i=t.chapters[n],r=l(e.index,0,i.length-1);return i.start+r}function l(t,e,n){return Number.isNaN(t)?e:Math.max(e,Math.min(n,t))}var h=t=>t.slideCount<=0;function b(t,e,n){if(h(t))return null;let i=l(e.slide,0,t.slideCount-1),r=Math.max(0,n(i));return{slide:i,step:l(e.step,0,r)}}function v(t,e,n,i){if(h(t))return null;let r=Math.max(0,i(n.slide));return n.step<r?{slide:n.slide,step:n.step+1}:n.slide<t.slideCount-1?{slide:n.slide+1,step:0}:e.loop?{slide:0,step:0}:null}function m(t,e,n,i){if(h(t))return null;if(n.step>0)return{slide:n.slide,step:n.step-1};if(n.slide>0){let r=n.slide-1;return{slide:r,step:Math.max(0,i(r))}}if(e.loop){let r=t.slideCount-1;return{slide:r,step:Math.max(0,i(r))}}return null}function y(t,e,n){return b(t,{slide:e,step:0},n)}function s(t,e,n){let i=x(t,e);return i===null?null:b(t,{slide:i,step:0},n)}function g(t,e){return y(t,0,e)}function P(t,e){return y(t,t.slideCount-1,e)}var f={intent:"none",preventDefault:!1},o=(t,e=!0)=>({intent:t,preventDefault:e}),a=(t,...e)=>e.some(n=>n.toLowerCase()===t.toLowerCase());function M(t){let{key:e}=t;return t.overview?a(e,"Escape","o","Enter")?o("close-overview"):f:t.blanked?o("clear-blank"):a(e,".","b")?o("blank-black"):a(e,",","w")?o("blank-white"):t.zoomEnabled&&(e==="+"||e==="=")?o("zoom-in"):t.zoomEnabled&&e==="-"?o("zoom-out"):e==="0"&&t.zoomed?o("zoom-reset"):a(e,"?","h")?o("toggle-help",!1):e==="Escape"?o("close-help",!1):e==="Home"?o("first",!1):e==="End"?o("last",!1):a(e,"o")?o("open-overview"):a(e,"p")?o("toggle-presenter"):e===" "||e==="PageDown"?o("advance"):e==="PageUp"?o("back"):t.twoD?e==="ArrowRight"?o("next-chapter"):e==="ArrowLeft"?o("prev-chapter"):e==="ArrowDown"?o("next-in-chapter"):e==="ArrowUp"?o("prev-in-chapter"):f:e==="ArrowRight"||e==="ArrowDown"?o("advance"):e==="ArrowLeft"||e==="ArrowUp"?o("back"):f}var w=new Set(["first","last","advance","back","next-chapter","prev-chapter","next-in-chapter","prev-in-chapter"]),N=t=>w.has(t);function z(t,e,n,i,r){let u=()=>v(e,n,i,r),d=()=>m(e,n,i,r),{chapter:c,index:p}=D(e,i.slide);switch(t){case"first":return g(e,r);case"last":return P(e,r);case"advance":return u();case"back":return d();case"next-chapter":return c+1<e.chapters.length?s(e,{chapter:c+1,index:0},r):u();case"prev-chapter":return c>0?s(e,{chapter:c-1,index:0},r):d();case"next-in-chapter":{let k=e.chapters[c];return k&&p+1<k.length?s(e,{chapter:c,index:p+1},r):u()}case"prev-in-chapter":return p>0?s(e,{chapter:c,index:p-1},r):d()}}export{N as isMove,M as keyIntent,z as resolveMove};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** The pointer mechanisms a deck can claim. */
|
|
2
|
+
export type MouseMechanism = 'click' | 'wheel' | 'arrows' | 'aux';
|
|
3
|
+
export declare const MOUSE_MECHANISMS: readonly MouseMechanism[];
|
|
4
|
+
/**
|
|
5
|
+
* Is `mechanism` enabled by this `mouse-nav` value?
|
|
6
|
+
*
|
|
7
|
+
* Absent or `all` enables everything (the default), `none` disables everything,
|
|
8
|
+
* and anything else is a space-separated allowlist. An unknown word simply
|
|
9
|
+
* matches nothing, so `mouse-nav="whel"` disables the wheel rather than
|
|
10
|
+
* silently enabling it.
|
|
11
|
+
*/
|
|
12
|
+
export declare function mouseEnabled(raw: string | null | undefined, mechanism: MouseMechanism): boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var r=["click","wheel","arrows","aux"];function o(n,l){let e=(n??"all").trim();return e==="none"?!1:e===""||e==="all"?!0:e.split(/\s+/).includes(l)}export{r as MOUSE_MECHANISMS,o as mouseEnabled};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type DeckCoords, type DeckOutline, type DeckPosition, type StepsOf } from './deck-outline.js';
|
|
2
|
+
/** The author's navigation choices. */
|
|
3
|
+
export interface NavigationPolicy {
|
|
4
|
+
/** Wrap around at both ends. */
|
|
5
|
+
readonly loop: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare const LINEAR: NavigationPolicy;
|
|
8
|
+
/** Bring any position inside the deck · the invariant every verb returns under.
|
|
9
|
+
* Null for an empty deck, which has no valid position at all. */
|
|
10
|
+
export declare function clampPosition(outline: DeckOutline, position: DeckPosition, stepsOf: StepsOf): DeckPosition | null;
|
|
11
|
+
/** One step forward, then one slide forward, then wrap if the deck loops.
|
|
12
|
+
* Null at the very end of a deck that does not loop. */
|
|
13
|
+
export declare function advance(outline: DeckOutline, policy: NavigationPolicy, from: DeckPosition, stepsOf: StepsOf): DeckPosition | null;
|
|
14
|
+
/** One step back, then into the previous slide AT ITS LAST STEP, then wrap.
|
|
15
|
+
* Null at the very start of a deck that does not loop. */
|
|
16
|
+
export declare function back(outline: DeckOutline, policy: NavigationPolicy, from: DeckPosition, stepsOf: StepsOf): DeckPosition | null;
|
|
17
|
+
/** Jump to a slide, at its first step. Out-of-range clamps into the deck. */
|
|
18
|
+
export declare function goToSlide(outline: DeckOutline, slide: number, stepsOf: StepsOf): DeckPosition | null;
|
|
19
|
+
/** Jump to a chapter coordinate, at the target slide's first step. */
|
|
20
|
+
export declare function goToCoords(outline: DeckOutline, coords: DeckCoords, stepsOf: StepsOf): DeckPosition | null;
|
|
21
|
+
export declare function first(outline: DeckOutline, stepsOf: StepsOf): DeckPosition | null;
|
|
22
|
+
export declare function last(outline: DeckOutline, stepsOf: StepsOf): DeckPosition | null;
|
|
23
|
+
/** True when two positions name the same place · lets a caller skip the work
|
|
24
|
+
* of applying a move that changes nothing. */
|
|
25
|
+
export declare function samePosition(a: DeckPosition | null, b: DeckPosition | null): boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function s(e,t){if(e.chapters.length===0)return null;let n=l(t.chapter,0,e.chapters.length-1),r=e.chapters[n],o=l(t.index,0,r.length-1);return r.start+o}function l(e,t,n){return Number.isNaN(e)?t:Math.max(t,Math.min(n,e))}var d={loop:!1},i=e=>e.slideCount<=0;function c(e,t,n){if(i(e))return null;let r=l(t.slide,0,e.slideCount-1),o=Math.max(0,n(r));return{slide:r,step:l(t.step,0,o)}}function h(e,t,n,r){if(i(e))return null;let o=Math.max(0,r(n.slide));return n.step<o?{slide:n.slide,step:n.step+1}:n.slide<e.slideCount-1?{slide:n.slide+1,step:0}:t.loop?{slide:0,step:0}:null}function f(e,t,n,r){if(i(e))return null;if(n.step>0)return{slide:n.slide,step:n.step-1};if(n.slide>0){let o=n.slide-1;return{slide:o,step:Math.max(0,r(o))}}if(t.loop){let o=e.slideCount-1;return{slide:o,step:Math.max(0,r(o))}}return null}function u(e,t,n){return c(e,{slide:t,step:0},n)}function k(e,t,n){let r=s(e,t);return r===null?null:c(e,{slide:r,step:0},n)}function D(e,t){return u(e,0,t)}function x(e,t){return u(e,e.slideCount-1,t)}function O(e,t){return e===null||t===null?e===t:e.slide===t.slide&&e.step===t.step}export{d as LINEAR,h as advance,f as back,c as clampPosition,D as first,k as goToCoords,u as goToSlide,x as last,O as samePosition};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Parse CSV text into a matrix of rows × cells.
|
|
2
|
+
*
|
|
3
|
+
* A blank spacer line (a single UNQUOTED empty field) is dropped so an author
|
|
4
|
+
* can space the source out for readability. A quoted `""` is a value the author
|
|
5
|
+
* wrote on purpose and survives · dropping it silently loses data.
|
|
6
|
+
*
|
|
7
|
+
* Row terminators: `\n`, `\r\n` and a lone `\r` (some spreadsheet exports).
|
|
8
|
+
* The delimiter may be more than one character. */
|
|
9
|
+
export declare function parseCsv(text: string, delimiter?: string): string[][];
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
function h(l,r=","){let u=[],a=[],t=[],n="",i=!1,o=!1,g=()=>{t.push(n),n=""},f=()=>{g(),u.push(t),a.push(o),t=[],o=!1};for(let e=0;e<l.length;e++){let s=l[e];if(i){s==='"'?l[e+1]==='"'?(n+='"',e++):i=!1:n+=s;continue}s==='"'?(i=!0,o=!0):l.startsWith(r,e)?(g(),e+=r.length-1):s===`
|
|
2
|
+
`?f():s==="\r"?l[e+1]!==`
|
|
3
|
+
`&&f():n+=s}return(n.length>0||t.length>0)&&f(),u.filter((e,s)=>a[s]||!(e.length===1&&e[0]===""))}export{h as parseCsv};
|
package/dist/shared-styles.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{css as
|
|
1
|
+
import{css as t}from"./vendor/lit.js";var e=t`: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}}`,r=t`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)}`,o=t`.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)}`,i=[e,r,o];export{o as helpers,i as slideBase,e as slideShell,r as typo};
|
package/dist/shiki.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface InstallOpts {
|
|
2
|
+
/** Bundled theme · currently 'one-dark-pro'. */
|
|
3
|
+
theme?: string;
|
|
4
|
+
/** Bundled languages · ts, js, html, css and json (long aliases accepted). */
|
|
5
|
+
langs?: string[];
|
|
6
|
+
}
|
|
7
|
+
export declare function installShiki(opts?: InstallOpts): Promise<void>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{css as r}from"./vendor/lit.js";var a=r`.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}}`;export{a as signature};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** The `spread` vocabulary, and the flexbox value each one means. */
|
|
2
|
+
export declare const SPREAD: Map<string, string>;
|
|
3
|
+
/** Resolve a `spread` attribute to its flexbox value.
|
|
4
|
+
*
|
|
5
|
+
* An unknown value falls back to the default distribution instead of being
|
|
6
|
+
* passed through: a typo must degrade to the documented default, never remove
|
|
7
|
+
* the layout it was meant to change. */
|
|
8
|
+
export declare function spreadValue(raw: string | null | undefined): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var t=new Map([["start","flex-start"],["center","center"],["end","flex-end"],["between","space-between"],["around","space-around"],["evenly","space-evenly"]]);function r(n){let e=(n??"").trim().toLowerCase();return e===""||e==="theme"?"":t.get(e)??""}export{t as SPREAD,r as spreadValue};
|