rikiki-deck 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +183 -0
  3. package/dist/deck-badge.d.ts +13 -0
  4. package/dist/deck-badge.d.ts.map +1 -0
  5. package/dist/deck-badge.js +1 -0
  6. package/dist/deck-callout.d.ts +13 -0
  7. package/dist/deck-callout.d.ts.map +1 -0
  8. package/dist/deck-callout.js +1 -0
  9. package/dist/deck-card.d.ts +15 -0
  10. package/dist/deck-card.d.ts.map +1 -0
  11. package/dist/deck-card.js +1 -0
  12. package/dist/deck-code.d.ts +22 -0
  13. package/dist/deck-code.d.ts.map +1 -0
  14. package/dist/deck-code.js +2 -0
  15. package/dist/deck-cover.d.ts +23 -0
  16. package/dist/deck-cover.d.ts.map +1 -0
  17. package/dist/deck-cover.js +10 -0
  18. package/dist/deck-feature-cards.d.ts +12 -0
  19. package/dist/deck-feature-cards.d.ts.map +1 -0
  20. package/dist/deck-feature-cards.js +9 -0
  21. package/dist/deck-feature.d.ts +12 -0
  22. package/dist/deck-feature.d.ts.map +1 -0
  23. package/dist/deck-feature.js +5 -0
  24. package/dist/deck-grid.d.ts +18 -0
  25. package/dist/deck-grid.d.ts.map +1 -0
  26. package/dist/deck-grid.js +1 -0
  27. package/dist/deck-help.d.ts +3 -0
  28. package/dist/deck-help.d.ts.map +1 -0
  29. package/dist/deck-help.js +82 -0
  30. package/dist/deck-kicker.d.ts +6 -0
  31. package/dist/deck-kicker.d.ts.map +1 -0
  32. package/dist/deck-kicker.js +1 -0
  33. package/dist/deck-md.d.ts +14 -0
  34. package/dist/deck-md.d.ts.map +1 -0
  35. package/dist/deck-md.js +3 -0
  36. package/dist/deck-mermaid.d.ts +28 -0
  37. package/dist/deck-mermaid.d.ts.map +1 -0
  38. package/dist/deck-mermaid.js +3 -0
  39. package/dist/deck-metric.d.ts +20 -0
  40. package/dist/deck-metric.d.ts.map +1 -0
  41. package/dist/deck-metric.js +1 -0
  42. package/dist/deck-notes.d.ts +13 -0
  43. package/dist/deck-notes.d.ts.map +1 -0
  44. package/dist/deck-notes.js +1 -0
  45. package/dist/deck-overview.d.ts +16 -0
  46. package/dist/deck-overview.d.ts.map +1 -0
  47. package/dist/deck-overview.js +202 -0
  48. package/dist/deck-photo.d.ts +17 -0
  49. package/dist/deck-photo.d.ts.map +1 -0
  50. package/dist/deck-photo.js +1 -0
  51. package/dist/deck-presenter.d.ts +3 -0
  52. package/dist/deck-presenter.d.ts.map +1 -0
  53. package/dist/deck-presenter.js +148 -0
  54. package/dist/deck-punch.d.ts +18 -0
  55. package/dist/deck-punch.d.ts.map +1 -0
  56. package/dist/deck-punch.js +1 -0
  57. package/dist/deck-root.d.ts +76 -0
  58. package/dist/deck-root.d.ts.map +1 -0
  59. package/dist/deck-root.js +11 -0
  60. package/dist/deck-section.d.ts +12 -0
  61. package/dist/deck-section.d.ts.map +1 -0
  62. package/dist/deck-section.js +3 -0
  63. package/dist/deck-shortcut.d.ts +30 -0
  64. package/dist/deck-shortcut.d.ts.map +1 -0
  65. package/dist/deck-shortcut.js +7 -0
  66. package/dist/deck-split.d.ts +19 -0
  67. package/dist/deck-split.d.ts.map +1 -0
  68. package/dist/deck-split.js +7 -0
  69. package/dist/deck-stack.d.ts +19 -0
  70. package/dist/deck-stack.d.ts.map +1 -0
  71. package/dist/deck-stack.js +1 -0
  72. package/dist/deck-stat.d.ts +15 -0
  73. package/dist/deck-stat.d.ts.map +1 -0
  74. package/dist/deck-stat.js +4 -0
  75. package/dist/deck-step-list.d.ts +18 -0
  76. package/dist/deck-step-list.d.ts.map +1 -0
  77. package/dist/deck-step-list.js +2 -0
  78. package/dist/deck-takeaway.d.ts +12 -0
  79. package/dist/deck-takeaway.d.ts.map +1 -0
  80. package/dist/deck-takeaway.js +4 -0
  81. package/dist/deck-tier-list.d.ts +26 -0
  82. package/dist/deck-tier-list.d.ts.map +1 -0
  83. package/dist/deck-tier-list.js +1 -0
  84. package/dist/deck-transition.d.ts +3 -0
  85. package/dist/deck-transition.d.ts.map +1 -0
  86. package/dist/deck-transition.js +51 -0
  87. package/dist/index.d.ts +25 -0
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/index.js +58 -0
  90. package/dist/livereload.d.ts +2 -0
  91. package/dist/livereload.d.ts.map +1 -0
  92. package/dist/livereload.js +1 -0
  93. package/dist/shared-styles.d.ts +5 -0
  94. package/dist/shared-styles.d.ts.map +1 -0
  95. package/dist/shared-styles.js +1 -0
  96. package/dist/shiki-plugin.d.ts +11 -0
  97. package/dist/shiki-plugin.d.ts.map +1 -0
  98. package/dist/shiki-plugin.js +1 -0
  99. package/dist/standalone.js +539 -0
  100. package/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2 +0 -0
  101. package/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2 +0 -0
  102. package/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2 +0 -0
  103. package/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2 +0 -0
  104. package/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2 +0 -0
  105. package/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2 +0 -0
  106. package/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2 +0 -0
  107. package/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2 +0 -0
  108. package/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2 +0 -0
  109. package/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwlxdu.woff2 +0 -0
  110. package/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmBduz8A.woff2 +0 -0
  111. package/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmRduz8A.woff2 +0 -0
  112. package/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2 +0 -0
  113. package/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2 +0 -0
  114. package/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2 +0 -0
  115. package/package.json +61 -0
  116. package/themes/rikiki.css +430 -0
  117. package/themes/siliceum-fonts.css +126 -0
  118. package/themes/siliceum.css +380 -0
  119. package/tokens.css +10 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Cédric Chartier
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,183 @@
1
+ # Rikiki
2
+
3
+ A tiny **Lit Web Components** framework for technical presentations. Drop a folder anywhere, open `index.html`, give the talk. No build step on the consumer side · the framework itself is built from TypeScript, but the output is plain ES modules you import directly.
4
+
5
+ ## TL;DR
6
+
7
+ ```sh
8
+ cp starter.html my-deck.html
9
+ ```
10
+
11
+ Edit `my-deck.html`. Each slide is a custom element. Markdown is available anywhere via `<deck-md>`. Navigate with `←` / `→` for sections, `↑` / `↓` within a section, `Space` for linear, `O` for overview.
12
+
13
+ ## Layout
14
+
15
+ ```
16
+ rikiki/
17
+ ├── tokens.css ← entry point · re-exports the default theme
18
+ ├── themes/
19
+ │ ├── rikiki.css ← default theme (acid greens + mango, on dark)
20
+ │ ├── siliceum.css ← alternative theme (warm paper + yellow)
21
+ │ └── siliceum-fonts.css ← self-hosted Source Sans Pro + JetBrains Mono
22
+ ├── fonts/ ← woff2 files used by the Siliceum theme
23
+ ├── src/ ← TypeScript sources · contributors edit these
24
+ │ ├── deck-root.ts ← deck wrapper · navigation, overview, hash, kb hints
25
+ │ ├── deck-cover.ts ← layouts
26
+ │ ├── deck-section.ts
27
+ │ ├── deck-feature.ts
28
+ │ ├── deck-split.ts
29
+ │ ├── deck-feature-cards.ts
30
+ │ ├── deck-takeaway.ts
31
+ │ ├── deck-md.ts ← atoms
32
+ │ ├── deck-code.ts
33
+ │ ├── deck-callout.ts
34
+ │ ├── deck-card.ts
35
+ │ ├── … ← deck-badge, deck-metric, deck-tier-list, etc.
36
+ │ ├── shared-styles.ts
37
+ │ └── index.ts ← registers every component
38
+ ├── dist/ ← built output · consumers import from here
39
+ ├── build.mjs ← esbuild script
40
+ ├── tsconfig.json
41
+ └── starter.html ← blank template, one slide per layout type
42
+ ```
43
+
44
+ ## Three-layer styling
45
+
46
+ 1. **Theme tokens** (`themes/<name>.css`) at `:root` · custom properties cross the Shadow DOM, so they reach every component.
47
+ 2. **Shared styles** (`src/shared-styles.ts`) · base typography, helpers, imported by every component via `static styles`.
48
+ 3. **Layout-specific CSS** · each component's own Shadow DOM.
49
+
50
+ To re-theme: copy a theme file, change the values, that's it. All components follow.
51
+
52
+ ## Components
53
+
54
+ ### Layouts
55
+
56
+ | Tag | When to use it |
57
+ |---|---|
58
+ | `<deck-cover>` | Opening slide (dark, XL title, meta block) |
59
+ | `<deck-section>` | Chapter separator (dark, number + title) |
60
+ | `<deck-feature>` | One focal block, full width (code, table, mermaid) |
61
+ | `<deck-split cols="1-1\|1-2\|2-1\|3">` | Two or three columns |
62
+ | `<deck-feature-cards>` | Hero + two detail cards underneath |
63
+ | `<deck-takeaway>` | Centered punchline on dark · the take-home line |
64
+
65
+ ### Atoms
66
+
67
+ | Tag | When to use it |
68
+ |---|---|
69
+ | `<deck-md>` | Markdown content (headings, paragraphs, lists, inline code) |
70
+ | `<deck-code lang="js" hero?>` | Code block with light syntax highlighting |
71
+ | `<deck-callout type="info\|warn\|danger\|ok">` | Information callout |
72
+ | `<deck-card color="yellow\|orange\|green\|red?">` | Tinted card |
73
+ | `<deck-mermaid>` | Diagram via Mermaid (loaded on demand from CDN) |
74
+
75
+ Plus `<deck-badge>`, `<deck-metric>`, `<deck-tier-list>`, `<deck-step-list>`, `<deck-kicker>`, `<deck-stack>`, `<deck-grid>`, `<deck-punch>`.
76
+
77
+ ## Common patterns
78
+
79
+ ### Slide with markdown + code
80
+
81
+ ```html
82
+ <deck-feature eyebrow="Module">
83
+ <h1 slot="title">Side effects</h1>
84
+ <p slot="lead" class="lead">A module can **act** on import.</p>
85
+ <deck-code lang="ts" hero>
86
+ import './polyfill'; // executed at import time
87
+ </deck-code>
88
+ </deck-feature>
89
+ ```
90
+
91
+ ### Side-by-side comparison
92
+
93
+ ```html
94
+ <deck-split eyebrow="ESM">
95
+ <h1 slot="title">Static vs dynamic</h1>
96
+ <deck-card slot="left" color="yellow">
97
+ <h3>Static</h3>
98
+ <deck-md>Resolved at startup. **Tree-shakable.**</deck-md>
99
+ </deck-card>
100
+ <deck-card slot="right" color="green">
101
+ <h3>Dynamic</h3>
102
+ <deck-md>Loaded on demand. *Asynchronous.*</deck-md>
103
+ </deck-card>
104
+ </deck-split>
105
+ ```
106
+
107
+ ### Three columns
108
+
109
+ ```html
110
+ <deck-split eyebrow="Actions" cols="3">
111
+ <h1 slot="title">Three levers</h1>
112
+ <deck-card slot="a" color="yellow"><h3>① …</h3>…</deck-card>
113
+ <deck-card slot="b" color="orange"><h3>② …</h3>…</deck-card>
114
+ <deck-card slot="c" color="green"><h3>③ …</h3>…</deck-card>
115
+ </deck-split>
116
+ ```
117
+
118
+ ## Markdown support (`<deck-md>`)
119
+
120
+ Parser: `marked` 12 from CDN. Supports GFM (tables, task lists), code blocks, inline code, **bold**, *italic*, lists, blockquotes, links, `---`.
121
+
122
+ ## Navigation
123
+
124
+ | Key | Effect |
125
+ |---|---|
126
+ | `→` / `←` | Next / previous section (chapter) · falls back to linear at deck edges |
127
+ | `↓` / `↑` | Next / previous slide within the current section |
128
+ | `Space` / `PageDown` | Linear next (any axis) |
129
+ | `PageUp` | Linear back |
130
+ | `Home` / `End` | First / last slide |
131
+ | `O` | Toggle overview |
132
+ | `?` / `H` | Show keyboard help |
133
+
134
+ ## Themes
135
+
136
+ Picking a theme is one `<link>` change:
137
+
138
+ ```html
139
+ <!-- Default Rikiki theme (tropical, on dark) -->
140
+ <link rel="stylesheet" href="rikiki/tokens.css">
141
+
142
+ <!-- Alternative Siliceum theme (warm paper, yellow accent) -->
143
+ <link rel="stylesheet" href="rikiki/themes/siliceum.css">
144
+ ```
145
+
146
+ ### Override one token
147
+
148
+ ```css
149
+ :root { --yellow: #ff0066; }
150
+ ```
151
+
152
+ The whole system follows · titles, accents, callouts, etc.
153
+
154
+ ### Override one component locally
155
+
156
+ ```css
157
+ deck-cover::part(brand) { font-family: 'Comic Sans'; }
158
+ ```
159
+
160
+ ```html
161
+ <deck-cover style="--yellow: #00ffaa">...</deck-cover>
162
+ ```
163
+
164
+ ### Add a layout
165
+
166
+ Create `src/deck-my-layout.ts`, import `slideBase` from `shared-styles.js`, extend `LitElement`, register in `src/index.ts`. Rebuild.
167
+
168
+ ## Build
169
+
170
+ ```bash
171
+ npm install
172
+ npm run build # node build.mjs (esbuild) + tsc --emitDeclarationOnly
173
+ npm run watch # esbuild watch mode
174
+ npm run typecheck # tsc --noEmit
175
+ ```
176
+
177
+ `dist/` is versioned · consumers don't run a build.
178
+
179
+ ## Known limits
180
+
181
+ - **Step reveal on code blocks** uses `step-groups` on `<deck-code>` but is not exposed elsewhere yet.
182
+ - **No transitions** between slides · plain `display: none` toggle. Extend via opacity transition if needed.
183
+ - **Syntax highlighting** is ~10 keywords of JS/TS, no AST. Hook a real highlighter (Prism, Shiki) if you need more.
@@ -0,0 +1,13 @@
1
+ import { LitElement } from 'lit';
2
+ export type DeckBadgeType = 'bad' | 'ok' | 'info' | 'warn' | 'neutral';
3
+ export declare class DeckBadge extends LitElement {
4
+ static styles: import("lit").CSSResult;
5
+ type?: DeckBadgeType;
6
+ render(): import("lit-html").TemplateResult<1>;
7
+ }
8
+ declare global {
9
+ interface HTMLElementTagNameMap {
10
+ 'deck-badge': DeckBadge;
11
+ }
12
+ }
13
+ //# sourceMappingURL=deck-badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deck-badge.d.ts","sourceRoot":"","sources":["../src/deck-badge.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAEvE,qBACa,SAAU,SAAQ,UAAU;IACvC,OAAgB,MAAM,0BAgBpB;IAE0B,IAAI,CAAC,EAAE,aAAa,CAAC;IAExC,MAAM;CAGhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
@@ -0,0 +1 @@
1
+ var g=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var b=(d,a,s,t)=>{for(var r=t>1?void 0:t?k(a,s):a,i=d.length-1,o;i>=0;i--)(o=d[i])&&(r=(t?o(a,s,r):o(r))||r);return t&&r&&g(a,s,r),r};import{LitElement as c,html as n,css as v}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as p,property as u}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var e=class extends c{render(){return n`<slot></slot>`}};e.styles=v`:host{display:inline-block;padding:var(--deck-badge-padding-y,var(--rik-space-1)) var(--deck-badge-padding-x,var(--rik-space-3));margin-bottom:var(--rik-space-2);font:700 var(--rik-font-size-xs)/1.2 var(--rik-font-sans);letter-spacing:0.1em;text-transform:uppercase;border-radius:var(--deck-badge-radius,var(--rik-radius-pill));background:var(--deck-badge-bg,var(--rik-surface-tint));color:var(--deck-badge-fg,var(--rik-text-default--faint));border:1px solid var(--deck-badge-border,var(--rik-border-default))}:host([type="bad"]){--deck-badge-bg:var(--rik-status-danger__bg);--deck-badge-fg:var(--rik-status-danger);--deck-badge-border:var(--rik-status-danger__border)}:host([type="ok"]){--deck-badge-bg:var(--rik-status-success__bg);--deck-badge-fg:var(--rik-status-success);--deck-badge-border:var(--rik-status-success__border)}:host([type="info"]){--deck-badge-bg:var(--rik-status-info__bg--strong);--deck-badge-fg:var(--rik-status-info__text);--deck-badge-border:var(--rik-status-info__border)}:host([type="warn"]){--deck-badge-bg:var(--rik-status-warn__bg);--deck-badge-fg:var(--rik-status-warn);--deck-badge-border:var(--rik-status-warn__border)}`,b([u({type:String})],e.prototype,"type",2),e=b([p("deck-badge")],e);export{e as DeckBadge};
@@ -0,0 +1,13 @@
1
+ import { LitElement } from 'lit';
2
+ export type DeckCalloutType = 'info' | 'warn' | 'danger' | 'ok';
3
+ export declare class DeckCallout extends LitElement {
4
+ static styles: import("lit").CSSResult;
5
+ type?: DeckCalloutType;
6
+ render(): import("lit-html").TemplateResult<1>;
7
+ }
8
+ declare global {
9
+ interface HTMLElementTagNameMap {
10
+ 'deck-callout': DeckCallout;
11
+ }
12
+ }
13
+ //# sourceMappingURL=deck-callout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deck-callout.d.ts","sourceRoot":"","sources":["../src/deck-callout.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;AAahE,qBACa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,0BAuCpB;IAE0B,IAAI,CAAC,EAAE,eAAe,CAAC;IAE1C,MAAM;CAchB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
@@ -0,0 +1 @@
1
+ var l=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var d=(i,t,a,o)=>{for(var r=o>1?void 0:o?k(t,a):t,s=i.length-1,c;s>=0;s--)(c=i[s])&&(r=(o?c(t,a,r):c(r))||r);return o&&r&&l(t,a,r),r};import{LitElement as u,html as v,css as p}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as g,property as f}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var n={info:'<circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/>',warn:'<path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"/><path d="M12 9v4"/><path d="M12 17h.01"/>',danger:'<circle cx="12" cy="12" r="10"/><path d="M12 8v4"/><path d="M12 16h.01"/>',ok:'<path d="M20 6 9 17l-5-5"/>'},e=class extends u{render(){let t=this.type??"info",a=n[t]??n.info;return v`<div class="icon-box"> <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" .innerHTML="${a}"></svg> </div> <div class="content"><slot></slot></div>`}};e.styles=p`:host{display:flex;gap:var(--rik-space-3);padding:var(--deck-callout-padding-y,var(--rik-space-3)) var(--deck-callout-padding-x,var(--rik-space-4));border-radius:var(--deck-callout-radius,var(--rik-radius-md));background:var(--deck-callout-bg,var(--rik-status-info__bg--mid));border:1px solid var(--deck-callout-border,var(--rik-status-info__border));box-shadow:var(--rik-elevation-2);align-items:center;color:var(--rik-text-default--muted);font-family:var(--rik-font-sans);font-size:var(--rik-font-size-body);line-height:1.55}:host([type="info"]){--deck-callout-bg:var(--rik-status-info__bg--mid);--deck-callout-border:var(--rik-status-info__border);--deck-callout-stroke:var(--rik-accent)}:host([type="warn"]){--deck-callout-bg:var(--rik-status-warn__bg);--deck-callout-border:var(--rik-status-warn__border);--deck-callout-stroke:var(--rik-status-warn)}:host([type="danger"]){--deck-callout-bg:var(--rik-status-danger__bg);--deck-callout-border:var(--rik-status-danger__border);--deck-callout-stroke:var(--rik-status-danger)}:host([type="ok"]){--deck-callout-bg:var(--rik-status-success__bg);--deck-callout-border:var(--rik-status-success__border);--deck-callout-stroke:var(--rik-status-success)}.icon-box{flex-shrink:0;width:var(--rik-icon-2xl);height:var(--rik-icon-2xl);display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--rik-surface-tint)}.icon-box svg{width:var(--rik-icon-lg);height:var(--rik-icon-lg);stroke:var(--deck-callout-stroke,var(--rik-accent));stroke-width:2.2}.content{flex:1}::slotted(p){margin:0}::slotted(strong){color:var(--rik-text-default);font-weight:700}::slotted(code){font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono-sm);background:var(--rik-surface-tint);padding:2px 6px;border-radius:var(--rik-radius-sm);color:var(--rik-text-default)}`,d([f({type:String})],e.prototype,"type",2),e=d([g("deck-callout")],e);export{e as DeckCallout};
@@ -0,0 +1,15 @@
1
+ import { LitElement } from 'lit';
2
+ export type DeckCardColor = 'yellow' | 'orange' | 'green' | 'red';
3
+ export declare class DeckCard extends LitElement {
4
+ static styles: import("lit").CSSResult;
5
+ color?: DeckCardColor;
6
+ center: boolean;
7
+ compact: boolean;
8
+ render(): import("lit-html").TemplateResult<1>;
9
+ }
10
+ declare global {
11
+ interface HTMLElementTagNameMap {
12
+ 'deck-card': DeckCard;
13
+ }
14
+ }
15
+ //# sourceMappingURL=deck-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deck-card.d.ts","sourceRoot":"","sources":["../src/deck-card.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AAElE,qBACa,QAAS,SAAQ,UAAU;IAOtC,OAAgB,MAAM,0BAqCpB;IAE0B,KAAK,CAAC,EAAE,aAAa,CAAC;IACrB,MAAM,UAAS;IACf,OAAO,UAAS;IAEpC,MAAM;CAGhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
@@ -0,0 +1 @@
1
+ var l=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var o=(d,a,s,t)=>{for(var e=t>1?void 0:t?k(a,s):a,c=d.length-1,i;c>=0;c--)(i=d[c])&&(e=(t?i(a,s,e):i(e))||e);return t&&e&&l(a,s,e),e};import{LitElement as v,html as g,css as b}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as p,property as n}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var r=class extends v{constructor(){super(...arguments);this.center=!1;this.compact=!1}render(){return g`<slot></slot>`}};r.styles=b`:host{display:flex;flex-direction:column;gap:var(--deck-card-gap,var(--rik-space-2));background:var(--deck-card-bg,var(--rik-surface-raised--strong));border:1px solid var(--deck-card-border,var(--rik-border-default));border-radius:var(--deck-card-radius,var(--rik-radius-lg));padding:var(--deck-card-padding-y,var(--rik-space-3)) var(--deck-card-padding-x,var(--rik-space-4));box-shadow:var(--deck-card-shadow,var(--rik-elevation-2));min-height:0;font-family:var(--rik-font-sans);color:var(--deck-card-text,var(--rik-text-default--muted))}:host([color="yellow"]){background:var(--deck-card-bg,var(--rik-status-info__bg));border:4px solid var(--deck-card-border,var(--rik-status-info__border))}:host([color="orange"]){background:var(--deck-card-bg,var(--rik-status-warn__bg));border:4px solid var(--deck-card-border,var(--rik-status-warn__border))}:host([color="green"]){background:var(--deck-card-bg,var(--rik-status-success__bg));border:4px solid var(--deck-card-border,var(--rik-status-success__border))}:host([color="red"]){background:var(--deck-card-bg,var(--rik-status-danger__bg));border:4px solid var(--deck-card-border,var(--rik-status-danger__border))}::slotted(h3){font-family:var(--rik-font-display,var(--rik-font-sans));font-size:var(--rik-font-size-h2);font-weight:700;color:var(--deck-card-title-color,var(--rik-text-default));letter-spacing:-0.01em;line-height:1.25;margin:0}::slotted(p){font-size:var(--rik-font-size-body);line-height:1.55;margin:0}::slotted(strong){color:var(--rik-text-default);font-weight:700}:host([center]){text-align:center;align-items:center}:host([compact]){padding:var(--rik-space-2) var(--rik-space-3)}`,o([n({type:String})],r.prototype,"color",2),o([n({type:Boolean})],r.prototype,"center",2),o([n({type:Boolean})],r.prototype,"compact",2),r=o([p("deck-card")],r);export{r as DeckCard};
@@ -0,0 +1,22 @@
1
+ import { LitElement } from 'lit';
2
+ export type DeckCodeLang = 'js' | 'ts' | 'json' | 'html' | 'xml' | 'svg' | 'css' | 'scss' | 'less';
3
+ export declare class DeckCode extends LitElement {
4
+ static styles: import("lit").CSSResult;
5
+ lang: string;
6
+ hero: boolean;
7
+ nested: boolean;
8
+ stepGroups?: string;
9
+ private _html;
10
+ private _groups;
11
+ connectedCallback(): void;
12
+ private _highlight;
13
+ /** Public API · called by deck-root when stepping through code groups. */
14
+ applyStep(n: number): void;
15
+ render(): import("lit-html").TemplateResult<1>;
16
+ }
17
+ declare global {
18
+ interface HTMLElementTagNameMap {
19
+ 'deck-code': DeckCode;
20
+ }
21
+ }
22
+ //# sourceMappingURL=deck-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deck-code.d.ts","sourceRoot":"","sources":["../src/deck-code.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,MAAM,MAAM,YAAY,GACpB,IAAI,GAAG,IAAI,GAAG,MAAM,GACpB,MAAM,GAAG,KAAK,GAAG,KAAK,GACtB,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAiD5B,qBACa,QAAS,SAAQ,UAAU;IAMtC,OAAgB,MAAM,0BAiCpB;IAEmC,IAAI,EAAE,MAAM,CAAM;IACX,IAAI,UAAS;IACb,MAAM,UAAS;IACL,UAAU,CAAC,EAAE,MAAM,CAAC;IACjE,OAAO,CAAC,KAAK,CAAM;IAC5B,OAAO,CAAC,OAAO,CAA2B;IAEjC,iBAAiB;IAQ1B,OAAO,CAAC,UAAU;IAkBlB,0EAA0E;IAC1E,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAgBjB,MAAM;CAGhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
@@ -0,0 +1,2 @@
1
+ var m=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var l=(d,n,e,s)=>{for(var r=s>1?void 0:s?h(n,e):n,a=d.length-1,i;a>=0;a--)(i=d[a])&&(r=(s?i(n,e,r):i(r))||r);return s&&r&&m(n,e,r),r};import{LitElement as u,html as v,css as f}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as y,property as g,state as k}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";function _(d,n){let e=d.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),s=[],r=(t,c)=>{let p="P"+s.length+"E";return s.push('<span class="'+t+'">'+c+"</span>"),p};return n==="html"||n==="xml"||n==="svg"?(e=e.replace(/(&lt;!--[\s\S]*?--&gt;)/g,t=>r("cmt",t)),e=e.replace(/(&lt;!doctype[^&]*&gt;)/gi,t=>r("cmt",t)),e=e.replace(/("[^"]*"|'[^']*')/g,t=>r("str",t)),e=e.replace(/(&lt;\/?)([a-zA-Z][a-zA-Z0-9:-]*)/g,(t,c,p)=>c+r("kw",p)),e=e.replace(/\b([a-zA-Z][a-zA-Z0-9-]*)(?==)/g,t=>r("prop",t))):n==="css"||n==="scss"||n==="less"?(e=e.replace(/(\/\*[\s\S]*?\*\/)/g,t=>r("cmt",t)),e=e.replace(/("[^"]*"|'[^']*')/g,t=>r("str",t)),e=e.replace(/([a-zA-Z-]+)(?=\s*:)/g,t=>r("prop",t)),e=e.replace(/(#[0-9a-fA-F]{3,8})\b/g,t=>r("num",t)),e=e.replace(/\b(\d+(?:\.\d+)?)(px|rem|em|%|vh|vw|vmin|vmax|s|ms|deg)?/g,(t,c,p)=>r("num",c+(p??"")))):(e=e.replace(/(\/\/[^\n]*)/g,t=>r("cmt",t)),e=e.replace(/(['"`])((?:\\.|(?!\1)[^\\])*)\1/g,t=>r("str",t)),e=e.replace(/\b(const|let|var|function|return|if|else|for|while|class|extends|new|export|import|from|as|await|async|of|in|typeof|instanceof|true|false|null|undefined)\b/g,t=>r("kw",t)),e=e.replace(/\b(\d+(?:\.\d+)?)\b/g,t=>r("num",t))),e=e.replace(/P(\d+)E/g,(t,c)=>s[+c]??""),e}var o=class extends u{constructor(){super(...arguments);this.lang="";this.hero=!1;this.nested=!1;this._html="";this._groups=null}connectedCallback(){super.connectedCallback(),this._highlight();try{this._groups=JSON.parse(this.getAttribute("step-groups")??"null")}catch{this._groups=null}}_highlight(){let s=(this.textContent??"").split(`
2
+ `);for(;s.length&&!s[0].trim();)s.shift();for(;s.length&&!s[s.length-1].trim();)s.pop();let r=s.filter(i=>i.trim().length>0).reduce((i,t)=>Math.min(i,t.match(/^ */)?.[0].length??0),1/0),a=r===1/0?s:s.map(i=>i.slice(r));this._html=a.map((i,t)=>'<span class="line" data-line="'+(t+1)+'">'+_(i||" ",this.lang)+"</span>").join("")}applyStep(e){if(!this._groups)return;let s=this.shadowRoot?.querySelectorAll(".line");if(s)if(e===0)s.forEach(r=>r.classList.remove("dim","lit"));else{let r=this._groups[Math.min(e-1,this._groups.length-1)]??[];s.forEach(a=>{let i=parseInt(a.dataset.line??"0",10);a.classList.toggle("lit",r.includes(i)),a.classList.toggle("dim",!r.includes(i))})}}render(){return v`<pre><code .innerHTML="${this._html}"></code></pre>`}};o.styles=f`:host{display:block;background:var(--deck-code-bg,var(--rik-code__bg));border:1px solid var(--deck-code-border,var(--rik-code__border));border-radius:var(--deck-code-radius,var(--rik-radius-md));padding:var(--deck-code-padding-y,var(--rik-space-3)) var(--deck-code-padding-x,var(--rik-space-4));font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono);line-height:1.7;color:var(--deck-code-text,var(--rik-code__text));box-shadow:var(--rik-elevation-2);overflow:auto;white-space:pre}:host([hero]){display:flex;align-items:safe center;padding:var(--rik-space-4) var(--rik-space-5)}:host([nested]){box-shadow:none;border-radius:var(--rik-radius-sm);padding:var(--rik-space-2) var(--rik-space-3)}pre{margin:0;font:inherit;color:inherit}code{display:block;width:100%;font:inherit;color:inherit}.line{transition:opacity 0.25s ease;display:block}.line.dim{opacity:0.25}.line.lit{opacity:1}.kw{color:var(--deck-code-syntax-kw,var(--rik-code__syntax-keyword))}.fn{color:var(--deck-code-syntax-fn,var(--rik-code__syntax-function))}.str{color:var(--deck-code-syntax-str,var(--rik-code__syntax-string))}.num{color:var(--deck-code-syntax-num,var(--rik-code__syntax-number))}.cmt{color:var(--deck-code-syntax-cmt,var(--rik-code__syntax-comment));font-style:italic}.ty{color:var(--deck-code-syntax-ty,var(--rik-code__syntax-type))}.prop{color:var(--deck-code-syntax-prop,var(--rik-code__syntax-property))}`,l([g({type:String})],o.prototype,"lang",2),l([g({type:Boolean,reflect:!0})],o.prototype,"hero",2),l([g({type:Boolean,reflect:!0})],o.prototype,"nested",2),l([g({type:String,attribute:"step-groups"})],o.prototype,"stepGroups",2),l([k()],o.prototype,"_html",2),o=l([y("deck-code")],o);export{o as DeckCode};
@@ -0,0 +1,23 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class DeckCover extends LitElement {
3
+ static styles: import("lit").CSSResult[];
4
+ brand?: string;
5
+ brandSrc?: string;
6
+ speaker?: string;
7
+ company?: string;
8
+ duration?: string;
9
+ audience?: string;
10
+ runtime?: string;
11
+ speakerLabel?: string;
12
+ companyLabel?: string;
13
+ durationLabel?: string;
14
+ audienceLabel?: string;
15
+ runtimeLabel?: string;
16
+ render(): import("lit-html").TemplateResult<1>;
17
+ }
18
+ declare global {
19
+ interface HTMLElementTagNameMap {
20
+ 'deck-cover': DeckCover;
21
+ }
22
+ }
23
+ //# sourceMappingURL=deck-cover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deck-cover.d.ts","sourceRoot":"","sources":["../src/deck-cover.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAM5C,qBACa,SAAU,SAAQ,UAAU;IAQvC,OAAgB,MAAM,4BAyDnB;IAEyB,KAAK,CAAC,EAAE,MAAM,CAAC;IACS,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEY,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtE,MAAM;CA+BhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
@@ -0,0 +1,10 @@
1
+ var g=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var e=(c,n,s,o)=>{for(var i=o>1?void 0:o?v(n,s):n,d=c.length-1,a;d>=0;d--)(a=c[d])&&(i=(o?a(n,s,i):a(i))||i);return o&&i&&g(n,s,i),i};import{LitElement as u,html as l,css as h}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as x,property as r}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";import{css as p}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";var f=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}`,b=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)}`,k=p`.lbl{display:inline-block;padding:var(--deck-eyebrow-padding-y,4px) var(--deck-eyebrow-padding-x,12px);background:var(--deck-eyebrow-bg,var(--rik-accent));color:var(--deck-eyebrow-color,var(--rik-accent__on,var(--rik-surface-inverse)));border-radius:var(--deck-eyebrow-radius,var(--rik-radius-pill));font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--rik-space-1);align-self:flex-start}.lead{font-size:var(--rik-font-size-lead);color:var(--rik-text-default--faint);line-height:1.5;margin-bottom:var(--rik-space-4);max-width:75ch;flex:0 0 auto}.kicker{font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--rik-text-default--faint);margin-bottom:var(--rik-space-3);display:block}.kicker.on-dark{color:rgba(255,255,255,0.35)}.caption{font-size:var(--rik-font-size-sm);color:var(--rik-text-default--faint);line-height:1.55}.caption.on-dark{color:rgba(255,255,255,0.5)}.col-label{font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--rik-text-default--faint);margin-bottom:var(--rik-space-2)}`,m=[f,b,k];var t=class extends u{render(){let n=(this.brand??"").split("\xB7").map(a=>a.trim()).filter(Boolean),s=n[0]??"",o=n.slice(1).join(" \xB7 "),i=[this.speaker&&{l:this.speakerLabel??"Pr\xE9sent\xE9 par",v:this.speaker},this.company&&{l:this.companyLabel??"Entreprise",v:this.company},this.duration&&{l:this.durationLabel??"Dur\xE9e",v:this.duration},this.audience&&{l:this.audienceLabel??"Audience",v:this.audience},this.runtime&&{l:this.runtimeLabel??"Runtime",v:this.runtime}].filter(a=>!!a),d=!!this.brandSrc;return l`<div class="brand" part="brand"> ${d?l`<span class="brand-tile"><img src="${this.brandSrc}" alt="${s}"></span>`:""}
2
+ ${s?l`<span class="brand-name">${s}</span>`:""}
3
+ ${o?l`<span class="brand-context">${o}</span>`:""}
4
+ </div>
5
+ <slot></slot>
6
+ ${i.length?l`<div class="meta" part="meta"> ${i.map(a=>l`
7
+ <div class="meta-item"><strong>${a.l}</strong><span>${a.v}</span></div>
8
+ `)}
9
+ </div>`:""}
10
+ `}};t.styles=[...m,h`:host{background:var(--deck-cover-bg,var(--rik-surface-inverse));justify-content:center;color:var(--deck-cover-text,var(--rik-text-inverse))}.brand{display:inline-flex;align-items:center;gap:var(--rik-space-3);margin-bottom:var(--rik-space-5);align-self:flex-start}.brand-tile{width:64px;height:64px;display:inline-flex;align-items:center;justify-content:center}.brand-tile img{width:100%;height:100%;display:block}.brand-name{font-family:var(--rik-font-display,inherit);font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:var(--deck-cover-soft,var(--rik-text-inverse--muted))}.brand-context{font-size:var(--rik-font-size-xs);font-weight:700;color:var(--deck-cover-muted,var(--rik-text-inverse--faint));letter-spacing:0.2em;text-transform:uppercase;padding-left:var(--rik-space-3);border-left:1px solid var(--deck-cover-border,var(--rik-border-inverse))}::slotted(h1){font-size:clamp(3.6rem,9vw,8.5rem);font-weight:900;color:var(--deck-cover-text,var(--rik-text-inverse));line-height:1.02;letter-spacing:-0.035em;margin-bottom:var(--rik-space-4);border:none;padding:0}::slotted(.sub){font-size:var(--rik-font-size-h2);color:var(--deck-cover-muted,var(--rik-text-inverse--faint));margin-bottom:var(--rik-space-6);max-width:60ch;line-height:1.45;display:block}.meta{display:flex;gap:var(--rik-space-6);border-top:1px solid var(--deck-cover-border,var(--rik-border-inverse));padding-top:var(--rik-space-4)}.meta-item strong{display:block;font-size:var(--rik-font-size-xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--deck-cover-faint,var(--rik-text-inverse--ghost));margin-bottom:6px;font-weight:700}.meta-item span{color:var(--deck-cover-text,var(--rik-text-inverse));font-size:var(--rik-font-size-body);font-weight:600}`],e([r({type:String})],t.prototype,"brand",2),e([r({type:String,attribute:"brand-src"})],t.prototype,"brandSrc",2),e([r({type:String})],t.prototype,"speaker",2),e([r({type:String})],t.prototype,"company",2),e([r({type:String})],t.prototype,"duration",2),e([r({type:String})],t.prototype,"audience",2),e([r({type:String})],t.prototype,"runtime",2),e([r({type:String,attribute:"speaker-label"})],t.prototype,"speakerLabel",2),e([r({type:String,attribute:"company-label"})],t.prototype,"companyLabel",2),e([r({type:String,attribute:"duration-label"})],t.prototype,"durationLabel",2),e([r({type:String,attribute:"audience-label"})],t.prototype,"audienceLabel",2),e([r({type:String,attribute:"runtime-label"})],t.prototype,"runtimeLabel",2),t=e([x("deck-cover")],t);export{t as DeckCover};
@@ -0,0 +1,12 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class DeckFeatureCards extends LitElement {
3
+ static styles: import("lit").CSSResult[];
4
+ eyebrow?: string;
5
+ render(): import("lit-html").TemplateResult<1>;
6
+ }
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ 'deck-feature-cards': DeckFeatureCards;
10
+ }
11
+ }
12
+ //# sourceMappingURL=deck-feature-cards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deck-feature-cards.d.ts","sourceRoot":"","sources":["../src/deck-feature-cards.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,qBACa,gBAAiB,SAAQ,UAAU;IAC9C,OAAgB,MAAM,4BAmCnB;IAEyB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEpC,MAAM;CAYhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,gBAAgB,CAAC;KACxC;CACF"}
@@ -0,0 +1,9 @@
1
+ var p=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var n=(o,t,i,a)=>{for(var e=a>1?void 0:a?v(t,i):t,l=o.length-1,s;l>=0;l--)(s=o[l])&&(e=(a?s(t,i,e):s(e))||e);return a&&e&&p(t,i,e),e};import{LitElement as x,html as f,css as h}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as u,property as b}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";import{css as d}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";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}`,k=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)}`,g=d`.lbl{display:inline-block;padding:var(--deck-eyebrow-padding-y,4px) var(--deck-eyebrow-padding-x,12px);background:var(--deck-eyebrow-bg,var(--rik-accent));color:var(--deck-eyebrow-color,var(--rik-accent__on,var(--rik-surface-inverse)));border-radius:var(--deck-eyebrow-radius,var(--rik-radius-pill));font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--rik-space-1);align-self:flex-start}.lead{font-size:var(--rik-font-size-lead);color:var(--rik-text-default--faint);line-height:1.5;margin-bottom:var(--rik-space-4);max-width:75ch;flex:0 0 auto}.kicker{font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--rik-text-default--faint);margin-bottom:var(--rik-space-3);display:block}.kicker.on-dark{color:rgba(255,255,255,0.35)}.caption{font-size:var(--rik-font-size-sm);color:var(--rik-text-default--faint);line-height:1.55}.caption.on-dark{color:rgba(255,255,255,0.5)}.col-label{font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--rik-text-default--faint);margin-bottom:var(--rik-space-2)}`,c=[m,k,g];var r=class extends x{render(){return f`${this.eyebrow?f`<span class="lbl">${this.eyebrow}</span>`:""}
2
+ <slot name="title"></slot>
3
+ <slot name="lead"></slot>
4
+ <div class="hero" part="hero"><slot></slot></div>
5
+ <div class="detail" part="detail">
6
+ <div class="col"><slot name="left"></slot></div>
7
+ <div class="col"><slot name="right"></slot></div>
8
+ </div>
9
+ `}};r.styles=[...c,h`:host{justify-content:flex-start}.hero{flex:var(--deck-feature-cards-hero-flex,1 1 50%);min-height:0;display:flex;flex-direction:column;overflow:hidden}::slotted(deck-code),::slotted(deck-mermaid),::slotted(pre),::slotted(table),::slotted(svg){max-height:100%;flex:1 1 auto}.detail{flex:var(--deck-feature-cards-detail-flex,0 1 40%);min-height:0;margin-top:var(--deck-feature-cards-gap,var(--rik-space-3));display:grid;grid-template-columns:1fr 1fr;gap:var(--deck-feature-cards-col-gap,var(--rik-space-4));overflow:hidden}.col{display:flex;flex-direction:column;gap:var(--rik-space-2);min-width:0;min-height:0;overflow:hidden}`],n([b({type:String})],r.prototype,"eyebrow",2),r=n([u("deck-feature-cards")],r);export{r as DeckFeatureCards};
@@ -0,0 +1,12 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class DeckFeature extends LitElement {
3
+ static styles: import("lit").CSSResult[];
4
+ eyebrow?: string;
5
+ render(): import("lit-html").TemplateResult<1>;
6
+ }
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ 'deck-feature': DeckFeature;
10
+ }
11
+ }
12
+ //# sourceMappingURL=deck-feature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deck-feature.d.ts","sourceRoot":"","sources":["../src/deck-feature.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,qBACa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,4BAenB;IAEyB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEpC,MAAM;CAQhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
@@ -0,0 +1,5 @@
1
+ var p=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var n=(a,r,i,o)=>{for(var e=o>1?void 0:o?k(r,i):r,s=a.length-1,l;s>=0;s--)(l=a[s])&&(e=(o?l(r,i,e):l(e))||e);return o&&e&&p(r,i,e),e};import{LitElement as x,html as f,css as b}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as h,property as u}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";import{css as d}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";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}`,v=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)}`,g=d`.lbl{display:inline-block;padding:var(--deck-eyebrow-padding-y,4px) var(--deck-eyebrow-padding-x,12px);background:var(--deck-eyebrow-bg,var(--rik-accent));color:var(--deck-eyebrow-color,var(--rik-accent__on,var(--rik-surface-inverse)));border-radius:var(--deck-eyebrow-radius,var(--rik-radius-pill));font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--rik-space-1);align-self:flex-start}.lead{font-size:var(--rik-font-size-lead);color:var(--rik-text-default--faint);line-height:1.5;margin-bottom:var(--rik-space-4);max-width:75ch;flex:0 0 auto}.kicker{font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--rik-text-default--faint);margin-bottom:var(--rik-space-3);display:block}.kicker.on-dark{color:rgba(255,255,255,0.35)}.caption{font-size:var(--rik-font-size-sm);color:var(--rik-text-default--faint);line-height:1.55}.caption.on-dark{color:rgba(255,255,255,0.5)}.col-label{font-size:var(--rik-font-size-xs);font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--rik-text-default--faint);margin-bottom:var(--rik-space-2)}`,c=[m,v,g];var t=class extends x{render(){return f`${this.eyebrow?f`<span class="lbl">${this.eyebrow}</span>`:""}
2
+ <slot name="title"></slot>
3
+ <slot name="lead"></slot>
4
+ <div class="body" part="body"><slot></slot></div>
5
+ `}};t.styles=[...c,b`:host{justify-content:flex-start}.body{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:flex-start;gap:var(--rik-space-3);overflow:hidden}::slotted(deck-code:not([nested])),::slotted(deck-mermaid),::slotted(table),::slotted(pre),::slotted(svg),::slotted(.hero-main){max-height:100%;flex:0 1 auto}`],n([u({type:String})],t.prototype,"eyebrow",2),t=n([h("deck-feature")],t);export{t as DeckFeature};
@@ -0,0 +1,18 @@
1
+ import { LitElement } from 'lit';
2
+ export type DeckGridAlign = 'start' | 'center' | 'end' | 'stretch';
3
+ export declare class DeckGrid extends LitElement {
4
+ static styles: import("lit").CSSResult;
5
+ cols?: string;
6
+ rows?: string;
7
+ gap?: string;
8
+ align?: DeckGridAlign;
9
+ justify?: DeckGridAlign;
10
+ updated(): void;
11
+ render(): import("lit-html").TemplateResult<1>;
12
+ }
13
+ declare global {
14
+ interface HTMLElementTagNameMap {
15
+ 'deck-grid': DeckGrid;
16
+ }
17
+ }
18
+ //# sourceMappingURL=deck-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deck-grid.d.ts","sourceRoot":"","sources":["../src/deck-grid.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAyBnE,qBACa,QAAS,SAAQ,UAAU;IAEtC,OAAgB,MAAM,0BAYpB;IAE0B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,aAAa,CAAC;IAE3C,OAAO;IAWP,MAAM;CAGhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
@@ -0,0 +1 @@
1
+ var f=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var n=(r,t,a,e)=>{for(var i=e>1?void 0:e?h(t,a):t,g=r.length-1,l;g>=0;g--)(l=r[g])&&(i=(e?l(t,a,i):l(i))||i);return e&&i&&f(t,a,i),i};import{LitElement as y,html as d,css as u}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as m,property as o}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";var p={start:"start",center:"center",end:"end",stretch:"stretch"};function c(r){if(!r)return null;let t=parseInt(r,10);return!Number.isNaN(t)&&String(t)===r.trim()&&t>=1&&t<=12?`repeat(${t}, minmax(0, 1fr))`:r}function _(r){if(!r)return null;let t=parseInt(r,10);return!Number.isNaN(t)&&t>=1&&t<=6?`var(--rik-space-${t})`:r}var s=class extends y{updated(){let t=c(this.cols),a=c(this.rows),e=_(this.gap);t&&this.style.setProperty("--_cols",t),a&&this.style.setProperty("--_rows",a),e&&this.style.setProperty("--_gap",e),this.align&&this.style.setProperty("--_align",p[this.align]??this.align),this.justify&&this.style.setProperty("--_justify",p[this.justify]??this.justify)}render(){return d`<slot></slot>`}};s.styles=u`:host{display:grid;grid-template-columns:var(--_cols,1fr);grid-template-rows:var(--_rows,auto);gap:var(--_gap,var(--deck-grid-gap,var(--rik-space-3)));align-items:var(--_align,stretch);justify-items:var(--_justify,stretch);min-width:0;min-height:0}:host([fill]){flex:1 1 auto;height:100%}`,n([o({type:String})],s.prototype,"cols",2),n([o({type:String})],s.prototype,"rows",2),n([o({type:String})],s.prototype,"gap",2),n([o({type:String})],s.prototype,"align",2),n([o({type:String})],s.prototype,"justify",2),s=n([m("deck-grid")],s);export{s as DeckGrid};
@@ -0,0 +1,3 @@
1
+ export declare function toggleHelp(host: HTMLElement): void;
2
+ export declare function closeHelp(host: HTMLElement): void;
3
+ //# sourceMappingURL=deck-help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deck-help.d.ts","sourceRoot":"","sources":["../src/deck-help.ts"],"names":[],"mappings":"AA2HA,wBAAgB,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAIlD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAGjD"}
@@ -0,0 +1,82 @@
1
+ var t="data-deck-help",o=`
2
+ #kb-overlay {
3
+ position: fixed; inset: 0;
4
+ background: rgba(10,10,10,0.7);
5
+ display: none; align-items: center; justify-content: center;
6
+ z-index: 200;
7
+ backdrop-filter: blur(8px);
8
+ opacity: 0;
9
+ transition: opacity 0.2s ease;
10
+ }
11
+ #kb-overlay.open { display: flex; opacity: 1; }
12
+ .kb-card {
13
+ background: var(--rik-surface-raised); color: var(--rik-text-default);
14
+ border: 1px solid var(--rik-border-default);
15
+ border-radius: var(--rik-radius-lg);
16
+ padding: 2.2rem 2.5rem;
17
+ box-shadow: 0 24px 80px rgba(0,0,0,0.5);
18
+ width: min(560px, 90vw);
19
+ font-family: var(--rik-font-sans);
20
+ animation: kbSlideIn 0.22s ease;
21
+ }
22
+ @keyframes kbSlideIn {
23
+ from { transform: translateY(8px) scale(0.98); opacity: 0; }
24
+ to { transform: translateY(0) scale(1); opacity: 1; }
25
+ }
26
+ .kb-card-header {
27
+ display: flex; align-items: baseline; justify-content: space-between;
28
+ gap: 1rem;
29
+ margin-bottom: 1.4rem;
30
+ padding-bottom: 0.75rem;
31
+ border-bottom: 1px solid var(--rik-border-default);
32
+ }
33
+ .kb-card h3 {
34
+ font: 700 1.05rem/1.2 var(--rik-font-sans);
35
+ letter-spacing: -0.01em;
36
+ color: var(--rik-text-default);
37
+ }
38
+ .kb-group-label {
39
+ font: 700 0.62rem/1 var(--rik-font-mono);
40
+ letter-spacing: 0.14em;
41
+ text-transform: uppercase;
42
+ color: var(--rik-text-default--faint);
43
+ margin: 0.8rem 0 0.3rem;
44
+ }
45
+ .kb-group-label:first-of-type { margin-top: 0; }
46
+ .kb-row {
47
+ display: flex; justify-content: space-between; align-items: center;
48
+ padding: 0.4rem 0;
49
+ font-size: 0.88rem;
50
+ }
51
+ .kb-row .keys { display: flex; gap: 4px; align-items: center; }
52
+ .kb-row kbd {
53
+ background: linear-gradient(180deg, #fff 0%, var(--rik-surface-page) 100%);
54
+ border: 1px solid var(--rik-border-default);
55
+ border-bottom: 2px solid #c4c4be;
56
+ border-radius: 5px;
57
+ padding: 3px 9px;
58
+ font: 600 0.78rem/1 var(--rik-font-mono);
59
+ color: var(--rik-text-default);
60
+ min-width: 22px; text-align: center;
61
+ box-shadow: 0 1px 0 rgba(255,255,255,0.5) inset;
62
+ }
63
+ .kb-row .desc { color: var(--rik-text-default--muted); }
64
+ `,d=`
65
+ <div id="kb-overlay">
66
+ <div class="kb-card">
67
+ <div class="kb-card-header">
68
+ <h3>Keyboard shortcuts</h3>
69
+ <span class="esc"><kbd>Esc</kbd> to close</span>
70
+ </div>
71
+ <div class="kb-group-label">Navigation</div>
72
+ <div class="kb-row"><span class="desc">Next slide (linear)</span><span class="keys"><kbd>Space</kbd><kbd>PgDn</kbd></span></div>
73
+ <div class="kb-row"><span class="desc">Previous slide</span><span class="keys"><kbd>PgUp</kbd></span></div>
74
+ <div class="kb-row"><span class="desc">Previous / Next chapter</span><span class="keys"><kbd>&larr;</kbd><kbd>&rarr;</kbd></span></div>
75
+ <div class="kb-row"><span class="desc">Up / Down inside a chapter</span><span class="keys"><kbd>&uarr;</kbd><kbd>&darr;</kbd></span></div>
76
+ <div class="kb-row"><span class="desc">First / Last slide</span><span class="keys"><kbd>Home</kbd><kbd>End</kbd></span></div>
77
+ <div class="kb-group-label">View</div>
78
+ <div class="kb-row"><span class="desc">Toggle overview</span><span class="keys"><kbd>O</kbd></span></div>
79
+ <div class="kb-row"><span class="desc">Show this help</span><span class="keys"><kbd>?</kbd><kbd>H</kbd></span></div>
80
+ </div>
81
+ </div>
82
+ `;function n(e){let a=e.querySelector("#kb-overlay");if(a)return a;if(!e.querySelector(`style[${t}]`)){let s=document.createElement("style");s.setAttribute(t,"1"),s.textContent=o,e.appendChild(s)}let r=document.createElement("div");return r.innerHTML=d,a=r.firstElementChild,e.appendChild(a),a.addEventListener("click",()=>i(e.host)),a.querySelector(".kb-card")?.addEventListener("click",s=>s.stopPropagation()),a}function c(e){if(!e.shadowRoot)return;n(e.shadowRoot).classList.toggle("open")}function i(e){e.shadowRoot?.querySelector("#kb-overlay")?.classList.remove("open")}export{i as closeHelp,c as toggleHelp};
@@ -0,0 +1,6 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class DeckKicker extends LitElement {
3
+ static styles: import("lit").CSSResult;
4
+ render(): import("lit-html").TemplateResult<1>;
5
+ }
6
+ //# sourceMappingURL=deck-kicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deck-kicker.d.ts","sourceRoot":"","sources":["../src/deck-kicker.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,qBAAa,UAAW,SAAQ,UAAU;IAIxC,OAAgB,MAAM,0BAUpB;IACO,MAAM;CAChB"}
@@ -0,0 +1 @@
1
+ import{LitElement as e,html as t,css as o}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";var r=class extends e{static{this.styles=o`:host{display:block;font:700 var(--deck-kicker-font-size,var(--rik-font-size-xs))/1.2 var(--rik-font-sans);letter-spacing:var(--deck-kicker-tracking,0.14em);text-transform:uppercase;color:var(--deck-kicker-color,var(--rik-text-default--faint));margin-bottom:var(--deck-kicker-margin,var(--rik-space-2))}:host([on-dark]){color:var(--deck-kicker-on-dark-color,var(--rik-text-inverse--faint))}`}render(){return t`<slot></slot>`}};customElements.define("deck-kicker",r);export{r as DeckKicker};
@@ -0,0 +1,14 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class DeckMd extends LitElement {
3
+ static styles: import("lit").CSSResult;
4
+ private _html;
5
+ connectedCallback(): void;
6
+ private _parse;
7
+ render(): import("lit-html").TemplateResult<1>;
8
+ }
9
+ declare global {
10
+ interface HTMLElementTagNameMap {
11
+ 'deck-md': DeckMd;
12
+ }
13
+ }
14
+ //# sourceMappingURL=deck-md.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deck-md.d.ts","sourceRoot":"","sources":["../src/deck-md.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAO5C,qBACa,MAAO,SAAQ,UAAU;IACpC,OAAgB,MAAM,0BAuCpB;IAEO,OAAO,CAAC,KAAK,CAAM;IAEnB,iBAAiB;IAK1B,OAAO,CAAC,MAAM;IAcL,MAAM;CAGhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}
@@ -0,0 +1,3 @@
1
+ var m=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var d=(s,o,i,t)=>{for(var r=t>1?void 0:t?v(o,i):o,n=s.length-1,e;n>=0;n--)(e=s[n])&&(r=(t?e(o,i,r):e(r))||r);return t&&r&&m(o,i,r),r};import{LitElement as k,html as p,css as f}from"https://cdn.jsdelivr.net/npm/lit@3/+esm";import{customElement as g,state as h}from"https://cdn.jsdelivr.net/npm/lit@3/decorators.js/+esm";import{marked as c}from"https://cdn.jsdelivr.net/npm/marked@12/+esm";c.setOptions({gfm:!0,breaks:!1});var a=class extends k{constructor(){super(...arguments);this._html=""}connectedCallback(){super.connectedCallback(),this._parse()}_parse(){let i=this.textContent??"",t=i.split(`
2
+ `),r=t.filter(e=>e.trim().length>0).reduce((e,l)=>Math.min(e,l.match(/^ */)?.[0].length??0),1/0),n=r===1/0?i:t.map(e=>e.slice(r)).join(`
3
+ `);this._html=c.parse(n.trim()),this.textContent=""}render(){return p`<div class="content" .innerHTML="${this._html}"></div>`}};a.styles=f`:host{display:block;color:var(--rik-text-default--muted);font-family:var(--rik-font-sans)}h1,h2,h3,h4{color:var(--rik-text-default);font-weight:700;letter-spacing:-0.01em}h2{font-size:var(--rik-font-size-h2);margin-bottom:var(--rik-space-2)}h3{font-size:var(--rik-font-size-lead);margin-bottom:var(--rik-space-2);margin-top:var(--rik-space-3)}h4{font-size:var(--rik-font-size-body);margin-bottom:var(--rik-space-1);margin-top:var(--rik-space-3)}p{font-size:var(--rik-font-size-body);line-height:1.65;margin:0 0 var(--rik-space-3)}p:last-child{margin-bottom:0}strong{color:var(--rik-text-default);font-weight:700}em{font-style:italic}code{font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono-sm);background:var(--rik-surface-tint);padding:2px 6px;border-radius:var(--rik-radius-sm);color:var(--rik-text-default)}pre{background:var(--deck-md-pre-bg,var(--rik-code__bg));border:1px solid var(--deck-md-pre-border,var(--rik-code__border));border-radius:var(--rik-radius-md);padding:var(--rik-space-3) var(--rik-space-4);overflow:auto;font-family:var(--rik-font-mono);font-size:var(--rik-font-size-mono);line-height:1.75;color:var(--deck-md-pre-text,var(--rik-code__text));margin:0 0 var(--rik-space-3);box-shadow:var(--rik-elevation-2)}pre code{background:none;padding:0;color:inherit;border-radius:0}ul,ol{padding-left:1.4rem;margin:0 0 var(--rik-space-3)}li{margin-bottom:var(--rik-space-1);font-size:var(--rik-font-size-body);line-height:1.55}li::marker{color:var(--rik-accent)}a{color:var(--rik-accent);text-decoration:underline;text-decoration-thickness:1px}blockquote{border-left:3px solid var(--rik-accent);padding:var(--rik-space-1) var(--rik-space-3);color:var(--rik-text-default--faint);font-style:italic;margin:0 0 var(--rik-space-3)}hr{border:none;border-top:1px solid var(--rik-border-default);margin:var(--rik-space-4) 0}.content{display:contents}`,d([h()],a.prototype,"_html",2),a=d([g("deck-md")],a);export{a as DeckMd};