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.
Files changed (174) hide show
  1. package/.claude/skills/rikiki-debug/SKILL.md +17 -7
  2. package/.claude/skills/rikiki-deck/SKILL.md +362 -77
  3. package/.claude/skills/rikiki-theme/SKILL.md +1 -1
  4. package/README.md +69 -50
  5. package/bin/lib/assemble.mjs +154 -0
  6. package/bin/lib/box-geometry.mjs +66 -0
  7. package/bin/lib/browser.mjs +302 -0
  8. package/bin/lib/check-api.d.ts +28 -0
  9. package/bin/lib/check-api.mjs +6 -0
  10. package/bin/lib/check-plugins.mjs +228 -0
  11. package/bin/lib/check.mjs +1347 -0
  12. package/bin/lib/cli-error.mjs +26 -0
  13. package/bin/lib/component-deps.mjs +69 -0
  14. package/bin/lib/diff.mjs +275 -0
  15. package/bin/lib/export-pdf.mjs +65 -0
  16. package/bin/lib/graph-hit.mjs +86 -0
  17. package/bin/lib/inline.mjs +137 -39
  18. package/bin/lib/narrative.mjs +77 -0
  19. package/bin/lib/prune-icons.mjs +104 -0
  20. package/bin/lib/render.mjs +195 -0
  21. package/bin/lib/scan-external.mjs +126 -0
  22. package/bin/lib/starter.mjs +27 -14
  23. package/bin/lib/visual.mjs +120 -0
  24. package/bin/rikiki.mjs +420 -35
  25. package/dist/annotation-marks.d.ts +60 -0
  26. package/dist/annotation-marks.js +1 -0
  27. package/dist/bar-segments.d.ts +28 -0
  28. package/dist/bar-segments.js +1 -0
  29. package/dist/browser-location.d.ts +3 -0
  30. package/dist/browser-location.js +1 -0
  31. package/dist/cards-syntax.d.ts +31 -0
  32. package/dist/cards-syntax.js +6 -0
  33. package/dist/{plugins/click-stages.d.ts → click-stages.d.ts} +1 -1
  34. package/dist/deck-agenda.d.ts +25 -0
  35. package/dist/deck-agenda.js +6 -0
  36. package/dist/deck-annotate.d.ts +108 -0
  37. package/dist/deck-annotate.js +18 -0
  38. package/dist/deck-bar.d.ts +32 -0
  39. package/dist/deck-bar.js +19 -0
  40. package/dist/deck-bento.d.ts +38 -0
  41. package/dist/deck-bento.js +4 -0
  42. package/dist/{molecules/deck-callout.d.ts → deck-callout.d.ts} +2 -0
  43. package/dist/deck-callout.js +1 -1
  44. package/dist/deck-cell.d.ts +19 -0
  45. package/dist/deck-cell.js +1 -0
  46. package/dist/deck-checklist.d.ts +20 -0
  47. package/dist/deck-checklist.js +1 -0
  48. package/dist/{layouts/deck-cover.d.ts → deck-cover.d.ts} +8 -0
  49. package/dist/deck-cover.js +9 -6
  50. package/dist/deck-csv.d.ts +38 -0
  51. package/dist/deck-csv.js +15 -0
  52. package/dist/deck-feature-cards.js +2 -2
  53. package/dist/deck-feature.d.ts +18 -0
  54. package/dist/deck-feature.js +2 -2
  55. package/dist/deck-figure.d.ts +26 -0
  56. package/dist/deck-figure.js +8 -0
  57. package/dist/deck-fit.d.ts +14 -0
  58. package/dist/deck-fit.js +1 -0
  59. package/dist/deck-flow.d.ts +41 -0
  60. package/dist/deck-flow.js +7 -0
  61. package/dist/deck-graph.d.ts +92 -0
  62. package/dist/deck-graph.js +25 -0
  63. package/dist/deck-grid.js +1 -1
  64. package/dist/deck-icon.d.ts +20 -0
  65. package/dist/deck-icon.js +1 -0
  66. package/dist/{atoms/deck-kicker.d.ts → deck-kicker.d.ts} +5 -0
  67. package/dist/deck-kicker.js +1 -1
  68. package/dist/deck-kpi-grid.d.ts +26 -0
  69. package/dist/deck-kpi-grid.js +4 -0
  70. package/dist/deck-link.d.ts +21 -0
  71. package/dist/deck-link.js +1 -0
  72. package/dist/{molecules/deck-md.d.ts → deck-md.d.ts} +3 -0
  73. package/dist/deck-md.js +8 -3
  74. package/dist/deck-mermaid.js +15 -3
  75. package/dist/deck-outline.d.ts +50 -0
  76. package/dist/deck-outline.js +1 -0
  77. package/dist/deck-overview.js +53 -39
  78. package/dist/deck-persona.d.ts +31 -0
  79. package/dist/deck-persona.js +6 -0
  80. package/dist/deck-photo.js +1 -1
  81. package/dist/deck-point.d.ts +22 -0
  82. package/dist/deck-point.js +1 -0
  83. package/dist/deck-presenter.js +120 -48
  84. package/dist/deck-pull.d.ts +13 -0
  85. package/dist/deck-pull.js +1 -0
  86. package/dist/{atoms/deck-punch.d.ts → deck-punch.d.ts} +6 -0
  87. package/dist/deck-punch.js +1 -1
  88. package/dist/deck-quote.d.ts +28 -0
  89. package/dist/deck-quote.js +6 -0
  90. package/dist/{runtime/deck-root.d.ts → deck-root.d.ts} +88 -8
  91. package/dist/deck-root.js +17 -13
  92. package/dist/deck-section.js +2 -2
  93. package/dist/deck-source.d.ts +12 -0
  94. package/dist/deck-source.js +2 -0
  95. package/dist/deck-split.d.ts +30 -0
  96. package/dist/deck-split.js +5 -3
  97. package/dist/{molecules/deck-stat.d.ts → deck-stat.d.ts} +2 -0
  98. package/dist/deck-stat.js +2 -2
  99. package/dist/{molecules/deck-step-list.d.ts → deck-step-list.d.ts} +8 -0
  100. package/dist/deck-step-list.js +4 -2
  101. package/dist/deck-table.d.ts +26 -0
  102. package/dist/deck-table.js +1 -0
  103. package/dist/deck-takeaway.d.ts +18 -0
  104. package/dist/deck-takeaway.js +2 -2
  105. package/dist/deck-timeline.d.ts +37 -0
  106. package/dist/deck-timeline.js +5 -0
  107. package/dist/deck-transition.js +3 -3
  108. package/dist/deck-versus.d.ts +18 -0
  109. package/dist/deck-versus.js +9 -0
  110. package/dist/deep-link.d.ts +29 -0
  111. package/dist/deep-link.js +1 -0
  112. package/dist/escape-html.d.ts +3 -0
  113. package/dist/escape-html.js +1 -0
  114. package/dist/fit-controller.d.ts +27 -0
  115. package/dist/fit-controller.js +1 -0
  116. package/dist/graph-layout.d.ts +35 -0
  117. package/dist/graph-layout.js +1 -0
  118. package/dist/grid-tracks.d.ts +17 -0
  119. package/dist/grid-tracks.js +1 -0
  120. package/dist/icon-set.d.ts +6 -0
  121. package/dist/icon-set.js +1 -0
  122. package/dist/index.d.ts +37 -31
  123. package/dist/index.js +95 -49
  124. package/dist/keymap.d.ts +40 -0
  125. package/dist/keymap.js +1 -0
  126. package/dist/mouse-nav.d.ts +12 -0
  127. package/dist/mouse-nav.js +1 -0
  128. package/dist/navigation.d.ts +25 -0
  129. package/dist/navigation.js +1 -0
  130. package/dist/parse-csv.d.ts +9 -0
  131. package/dist/parse-csv.js +3 -0
  132. package/dist/shared-styles.js +1 -1
  133. package/dist/shiki.d.ts +8 -0
  134. package/dist/signature.d.ts +2 -0
  135. package/dist/signature.js +1 -0
  136. package/dist/slide-fill.d.ts +8 -0
  137. package/dist/slide-fill.js +1 -0
  138. package/dist/standalone.js +301 -169
  139. package/dist/vendor/THIRD-PARTY-NOTICES.txt +4347 -0
  140. package/dist/vendor/inventory.json +3029 -0
  141. package/dist/vendor/lit.js +62 -2
  142. package/dist/vendor/mermaid.min.js +95 -95
  143. package/dist/vendor/shiki.js +1 -57
  144. package/dist/viewport.d.ts +42 -0
  145. package/dist/viewport.js +1 -0
  146. package/docs/llms/rikiki-reference.md +955 -64
  147. package/docs/llms/rikiki-workflow.md +536 -0
  148. package/llms.txt +39 -12
  149. package/package.json +33 -12
  150. package/themes/rikiki.css +173 -47
  151. package/themes/siliceum.css +171 -51
  152. package/dist/layouts/deck-feature.d.ts +0 -11
  153. package/dist/layouts/deck-split.d.ts +0 -18
  154. package/dist/layouts/deck-takeaway.d.ts +0 -11
  155. package/dist/plugins/shiki.d.ts +0 -8
  156. /package/dist/{runtime/color.d.ts → color.d.ts} +0 -0
  157. /package/dist/{atoms/deck-badge.d.ts → deck-badge.d.ts} +0 -0
  158. /package/dist/{molecules/deck-card.d.ts → deck-card.d.ts} +0 -0
  159. /package/dist/{atoms/deck-code-highlighter.d.ts → deck-code-highlighter.d.ts} +0 -0
  160. /package/dist/{atoms/deck-code.d.ts → deck-code.d.ts} +0 -0
  161. /package/dist/{layouts/deck-feature-cards.d.ts → deck-feature-cards.d.ts} +0 -0
  162. /package/dist/{molecules/deck-grid.d.ts → deck-grid.d.ts} +0 -0
  163. /package/dist/{runtime/deck-help.d.ts → deck-help.d.ts} +0 -0
  164. /package/dist/{molecules/deck-mermaid.d.ts → deck-mermaid.d.ts} +0 -0
  165. /package/dist/{molecules/deck-metric.d.ts → deck-metric.d.ts} +0 -0
  166. /package/dist/{runtime/deck-notes.d.ts → deck-notes.d.ts} +0 -0
  167. /package/dist/{runtime/deck-overview.d.ts → deck-overview.d.ts} +0 -0
  168. /package/dist/{layouts/deck-photo.d.ts → deck-photo.d.ts} +0 -0
  169. /package/dist/{runtime/deck-presenter.d.ts → deck-presenter.d.ts} +0 -0
  170. /package/dist/{layouts/deck-section.d.ts → deck-section.d.ts} +0 -0
  171. /package/dist/{molecules/deck-shortcut.d.ts → deck-shortcut.d.ts} +0 -0
  172. /package/dist/{molecules/deck-stack.d.ts → deck-stack.d.ts} +0 -0
  173. /package/dist/{molecules/deck-tier-list.d.ts → deck-tier-list.d.ts} +0 -0
  174. /package/dist/{runtime/deck-transition.d.ts → deck-transition.d.ts} +0 -0
@@ -0,0 +1,50 @@
1
+ /** A run of consecutive slides under one section heading. */
2
+ export interface Chapter {
3
+ /** Index of the chapter's first slide in the flat slide list. */
4
+ readonly start: number;
5
+ /** How many slides the chapter holds · always >= 1. */
6
+ readonly length: number;
7
+ }
8
+ /** Slide count plus chapter structure · everything navigation needs to know
9
+ * about the deck's shape, and nothing about its content. */
10
+ export interface DeckOutline {
11
+ readonly slideCount: number;
12
+ readonly chapters: readonly Chapter[];
13
+ }
14
+ /** Where the deck is · a slide and a step within it. */
15
+ export interface DeckPosition {
16
+ readonly slide: number;
17
+ readonly step: number;
18
+ }
19
+ /** A coordinate in the 2D (chapter × slide) model. */
20
+ export interface DeckCoords {
21
+ readonly chapter: number;
22
+ readonly index: number;
23
+ }
24
+ /** How many steps a slide has · injected, because the count comes from the DOM
25
+ * and from plugin hooks, which the domain must not know about. */
26
+ export type StepsOf = (slide: number) => number;
27
+ export declare const EMPTY_OUTLINE: DeckOutline;
28
+ /** Build an outline from the slides' tag names.
29
+ *
30
+ * A `deck-section` opens a new chapter; anything else joins the current one.
31
+ * The first slide always opens one, whatever its tag, so every slide belongs
32
+ * to exactly one chapter. */
33
+ export declare function outlineOf(tagNames: readonly string[]): DeckOutline;
34
+ /** Is 2D navigation meaningful for this outline?
35
+ *
36
+ * It is opt-in (`nav="2d"`) AND needs a structure that makes sense: more than
37
+ * one chapter, at least one of them holding more than one slide. Without the
38
+ * opt-in the arrows stay linear, so a sectioned deck does not surprise its
39
+ * author by remapping left/right to chapter jumps. */
40
+ export declare function supportsTwoD(outline: DeckOutline, optedIn: boolean): boolean;
41
+ /** Flat slide index → chapter coordinate. Falls back to the origin for an index
42
+ * that belongs to no chapter (an empty deck). */
43
+ export declare function coordsOf(outline: DeckOutline, slide: number): DeckCoords;
44
+ /** Chapter coordinate → flat slide index.
45
+ *
46
+ * An out-of-range chapter clamps to the nearest one rather than snapping back
47
+ * to slide 0: a deep link to a coordinate that no longer exists (a chapter
48
+ * removed while iterating) should land on the closest valid slide. */
49
+ export declare function slideAt(outline: DeckOutline, coords: DeckCoords): number | null;
50
+ export declare function clamp(value: number, min: number, max: number): number;
@@ -0,0 +1 @@
1
+ var s={slideCount:0,chapters:[]};function l(t){let e=[];return t.forEach((r,n)=>{if(r.toLowerCase()==="deck-section"||e.length===0)e.push({start:n,length:1});else{let c=e[e.length-1];e[e.length-1]={start:c.start,length:c.length+1}}}),{slideCount:t.length,chapters:e}}function p(t,e){return e&&t.chapters.length>1&&t.chapters.some(r=>r.length>1)}function h(t,e){for(let r=0;r<t.chapters.length;r++){let n=t.chapters[r],o=e-n.start;if(o>=0&&o<n.length)return{chapter:r,index:o}}return{chapter:0,index:0}}function u(t,e){if(t.chapters.length===0)return null;let r=a(e.chapter,0,t.chapters.length-1),n=t.chapters[r],o=a(e.index,0,n.length-1);return n.start+o}function a(t,e,r){return Number.isNaN(t)?e:Math.max(e,Math.min(r,t))}export{s as EMPTY_OUTLINE,a as clamp,h as coordsOf,l as outlineOf,u as slideAt,p as supportsTwoD};
@@ -1,6 +1,6 @@
1
- var q="data-deck-overview",I="data-overview-tokens",R=`
1
+ var F="data-deck-overview",K=new WeakMap,R=new WeakMap;function J(t){let r=t.outerHTML,o=r.indexOf(">");return r.slice(0,o).replace(/\sactive(?:="[^"]*")?/,"")+r.slice(o)}var Q=`
2
2
  :host([overview]) ::slotted(*) { display: none !important; }
3
- :host([overview]) #overview-grid {
3
+ :host(:is([overview], [data-overview-warming])) #overview-grid {
4
4
  position: fixed; inset: 0;
5
5
  background: var(--rik-surface-page);
6
6
  overflow: hidden;
@@ -10,7 +10,7 @@ var q="data-deck-overview",I="data-overview-tokens",R=`
10
10
  }
11
11
 
12
12
  /* \u2500\u2500 Top bar \xB7 search, slide count, close hint \u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
13
- :host([overview]) .ov-bar {
13
+ :host(:is([overview], [data-overview-warming])) .ov-bar {
14
14
  display: flex; align-items: center; gap: 16px;
15
15
  padding: 14px 28px;
16
16
  background: var(--rik-surface-raised);
@@ -19,7 +19,7 @@ var q="data-deck-overview",I="data-overview-tokens",R=`
19
19
  letter-spacing: 0.10em;
20
20
  color: var(--rik-text-default--faint);
21
21
  }
22
- :host([overview]) .ov-bar .ov-search {
22
+ :host(:is([overview], [data-overview-warming])) .ov-bar .ov-search {
23
23
  flex: 1;
24
24
  appearance: none;
25
25
  background: var(--rik-surface-raised--strong);
@@ -31,28 +31,28 @@ var q="data-deck-overview",I="data-overview-tokens",R=`
31
31
  letter-spacing: 0;
32
32
  max-width: 480px;
33
33
  }
34
- :host([overview]) .ov-bar .ov-search:focus {
34
+ :host(:is([overview], [data-overview-warming])) .ov-bar .ov-search:focus {
35
35
  outline: none;
36
36
  border-color: var(--rik-accent);
37
37
  box-shadow: 0 0 0 3px var(--rik-accent--soft);
38
38
  }
39
- :host([overview]) .ov-bar .ov-count { color: var(--rik-accent); }
40
- :host([overview]) .ov-bar .ov-hint { letter-spacing: 0.16em; text-transform: uppercase; }
39
+ :host(:is([overview], [data-overview-warming])) .ov-bar .ov-count { color: var(--rik-accent); }
40
+ :host(:is([overview], [data-overview-warming])) .ov-bar .ov-hint { letter-spacing: 0.16em; text-transform: uppercase; }
41
41
 
42
42
  /* \u2500\u2500 Sidebar layout (many slides) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
43
- :host([overview]) .ov-body {
43
+ :host(:is([overview], [data-overview-warming])) .ov-body {
44
44
  display: grid;
45
45
  grid-template-columns: 240px 1fr;
46
46
  min-height: 0;
47
47
  }
48
- :host([overview]) .ov-body.compact { grid-template-columns: 1fr; }
49
- :host([overview]) .ov-aside {
48
+ :host(:is([overview], [data-overview-warming])) .ov-body.compact { grid-template-columns: 1fr; }
49
+ :host(:is([overview], [data-overview-warming])) .ov-aside {
50
50
  border-right: 1px solid var(--rik-border-default);
51
51
  background: var(--rik-surface-raised);
52
52
  overflow-y: auto;
53
53
  padding: 16px 0;
54
54
  }
55
- :host([overview]) .ov-aside-item {
55
+ :host(:is([overview], [data-overview-warming])) .ov-aside-item {
56
56
  display: grid;
57
57
  grid-template-columns: 36px 1fr;
58
58
  gap: 10px;
@@ -63,84 +63,84 @@ var q="data-deck-overview",I="data-overview-tokens",R=`
63
63
  color: var(--rik-text-default--muted);
64
64
  transition: background 0.12s, color 0.12s, border-color 0.12s;
65
65
  }
66
- :host([overview]) .ov-aside-item:hover {
66
+ :host(:is([overview], [data-overview-warming])) .ov-aside-item:hover {
67
67
  background: var(--rik-surface-tint);
68
68
  color: var(--rik-text-default);
69
69
  }
70
- :host([overview]) .ov-aside-item[data-active] {
70
+ :host(:is([overview], [data-overview-warming])) .ov-aside-item[data-active] {
71
71
  background: var(--rik-accent--faint);
72
72
  border-left-color: var(--rik-accent);
73
73
  color: var(--rik-text-default);
74
74
  }
75
- :host([overview]) .ov-aside-num {
75
+ :host(:is([overview], [data-overview-warming])) .ov-aside-num {
76
76
  font: 800 0.85rem/1 var(--rik-font-mono);
77
77
  color: var(--rik-accent);
78
78
  }
79
- :host([overview]) .ov-aside-text {
79
+ :host(:is([overview], [data-overview-warming])) .ov-aside-text {
80
80
  font: 700 0.92rem/1.3 var(--rik-font-display, var(--rik-font-sans));
81
81
  letter-spacing: -0.005em;
82
82
  }
83
- :host([overview]) .ov-aside-count {
83
+ :host(:is([overview], [data-overview-warming])) .ov-aside-count {
84
84
  font: 600 0.70rem/1 var(--rik-font-mono);
85
85
  color: var(--rik-text-default--faint);
86
86
  margin-top: 4px;
87
87
  }
88
88
 
89
89
  /* \u2500\u2500 Main scroll area \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
90
- :host([overview]) .ov-main {
90
+ :host(:is([overview], [data-overview-warming])) .ov-main {
91
91
  overflow-y: auto;
92
92
  padding: 24px 32px 48px;
93
93
  display: flex; flex-direction: column;
94
94
  gap: 32px;
95
95
  min-width: 0;
96
96
  }
97
- :host([overview]) .ov-chapter {
97
+ :host(:is([overview], [data-overview-warming])) .ov-chapter {
98
98
  display: flex; flex-direction: column;
99
99
  gap: 12px;
100
100
  scroll-margin-top: 24px;
101
101
  }
102
- :host([overview]) .ov-chapter-head {
102
+ :host(:is([overview], [data-overview-warming])) .ov-chapter-head {
103
103
  display: flex; align-items: baseline; gap: 12px;
104
104
  padding-bottom: 6px;
105
105
  border-bottom: 2px solid var(--rik-accent);
106
106
  }
107
- :host([overview]) .ov-chapter-num {
107
+ :host(:is([overview], [data-overview-warming])) .ov-chapter-num {
108
108
  font: 800 0.85rem/1 var(--rik-font-mono);
109
109
  color: var(--rik-accent);
110
110
  letter-spacing: 0.12em;
111
111
  }
112
- :host([overview]) .ov-chapter-title {
112
+ :host(:is([overview], [data-overview-warming])) .ov-chapter-title {
113
113
  font: 800 1.2rem/1.2 var(--rik-font-display, var(--rik-font-sans));
114
114
  color: var(--rik-text-default);
115
115
  letter-spacing: -0.012em;
116
116
  flex: 1;
117
117
  min-width: 0;
118
118
  }
119
- :host([overview]) .ov-chapter-count {
119
+ :host(:is([overview], [data-overview-warming])) .ov-chapter-count {
120
120
  font: 700 0.72rem/1 var(--rik-font-mono);
121
121
  color: var(--rik-text-default--faint);
122
122
  letter-spacing: 0.1em;
123
123
  text-transform: uppercase;
124
124
  }
125
- :host([overview]) .ov-row {
125
+ :host(:is([overview], [data-overview-warming])) .ov-row {
126
126
  display: grid;
127
127
  grid-template-columns: repeat(auto-fill, minmax(var(--ov-cell-min, 180px), 1fr));
128
128
  gap: 12px;
129
129
  }
130
130
 
131
131
  /* \u2500\u2500 Path layout (\u2264 60 slides) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
132
- :host([overview]) .ov-path .ov-row {
132
+ :host(:is([overview], [data-overview-warming])) .ov-path .ov-row {
133
133
  display: flex; gap: 14px; align-items: center; flex-wrap: wrap;
134
134
  }
135
- :host([overview]) .ov-path .ov-connector {
135
+ :host(:is([overview], [data-overview-warming])) .ov-path .ov-connector {
136
136
  flex: 0 0 auto;
137
137
  width: 16px; height: 2px;
138
138
  background: var(--rik-border-default);
139
139
  }
140
- :host([overview]) .ov-path .ov-cell { flex: 0 0 auto; width: clamp(160px, 14vw, 260px); }
140
+ :host(:is([overview], [data-overview-warming])) .ov-path .ov-cell { flex: 0 0 auto; width: clamp(160px, 14vw, 260px); }
141
141
 
142
142
  /* \u2500\u2500 Thumbnail cell \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
143
- :host([overview]) .ov-cell {
143
+ :host(:is([overview], [data-overview-warming])) .ov-cell {
144
144
  position: relative;
145
145
  aspect-ratio: 16 / 9;
146
146
  background:
@@ -151,20 +151,33 @@ var q="data-deck-overview",I="data-overview-tokens",R=`
151
151
  cursor: pointer;
152
152
  transition: border-color 0.12s ease, transform 0.12s ease, box-shadow 0.12s ease, opacity 0.15s;
153
153
  box-shadow: var(--rik-elevation-1);
154
+ /* It is a <button> now \xB7 drop the UA chrome, keep the tile look. */
155
+ padding: 0;
156
+ font: inherit;
157
+ color: inherit;
158
+ text-align: left;
159
+ appearance: none;
160
+ }
161
+ /* The keyboard user must see where they are \xB7 without this the grid moves
162
+ focus invisibly. */
163
+ :host(:is([overview], [data-overview-warming])) .ov-cell:focus-visible {
164
+ outline: var(--rik-focus-ring--width, 2px) solid var(--rik-focus-ring, currentColor);
165
+ outline-offset: var(--rik-focus-ring--offset, 2px);
166
+ z-index: 2;
154
167
  }
155
- :host([overview]) .ov-cell:hover {
168
+ :host(:is([overview], [data-overview-warming])) .ov-cell:hover {
156
169
  transform: translateY(-2px) scale(1.015);
157
170
  border-color: var(--rik-accent--soft);
158
171
  box-shadow: var(--rik-elevation-3);
159
172
  z-index: 1;
160
173
  }
161
- :host([overview]) .ov-cell[data-current] {
174
+ :host(:is([overview], [data-overview-warming])) .ov-cell[data-current] {
162
175
  border-color: var(--rik-accent);
163
176
  box-shadow: 0 0 0 3px var(--rik-accent--soft), var(--rik-elevation-2);
164
177
  }
165
- :host([overview]) .ov-cell[data-filtered-out] { opacity: 0.10; pointer-events: none; transform: scale(0.96); }
166
- :host([overview]) .ov-cell:not([data-loaded]) .ov-thumb { display: none; }
167
- :host([overview]) .ov-cell:not([data-loaded])::before {
178
+ :host(:is([overview], [data-overview-warming])) .ov-cell[data-filtered-out] { opacity: 0.10; pointer-events: none; transform: scale(0.96); }
179
+ :host(:is([overview], [data-overview-warming])) .ov-cell:not([data-loaded]) .ov-thumb { display: none; }
180
+ :host(:is([overview], [data-overview-warming])) .ov-cell:not([data-loaded])::before {
168
181
  content: '';
169
182
  position: absolute; inset: 0;
170
183
  background:
@@ -184,7 +197,7 @@ var q="data-deck-overview",I="data-overview-tokens",R=`
184
197
  /* The thumb mirrors the letterboxed stage, so make it a size container too \xB7
185
198
  the cloned slide's cqw/cqh then resolve exactly as they do live instead of
186
199
  falling back to the (larger) window. */
187
- :host([overview]) .ov-thumb {
200
+ :host(:is([overview], [data-overview-warming])) .ov-thumb {
188
201
  position: absolute; top: 0; left: 0;
189
202
  width: var(--ov-thumb-w, 1920px); height: var(--ov-thumb-h, 1080px);
190
203
  transform: scale(var(--overview-scale, 0.2));
@@ -192,8 +205,8 @@ var q="data-deck-overview",I="data-overview-tokens",R=`
192
205
  pointer-events: none;
193
206
  container-type: size;
194
207
  }
195
- :host([overview]) .ov-thumb > * { display: flex !important; }
196
- :host([overview]) .ov-mermaid-snap {
208
+ :host(:is([overview], [data-overview-warming])) .ov-thumb > * { display: flex !important; }
209
+ :host(:is([overview], [data-overview-warming])) .ov-mermaid-snap {
197
210
  display: flex; align-items: center; justify-content: center;
198
211
  background: var(--rik-code__bg);
199
212
  border: 1px solid var(--rik-code__border);
@@ -201,11 +214,11 @@ var q="data-deck-overview",I="data-overview-tokens",R=`
201
214
  padding: var(--rik-space-4);
202
215
  overflow: hidden; min-width: 0;
203
216
  }
204
- :host([overview]) .ov-mermaid-snap svg {
217
+ :host(:is([overview], [data-overview-warming])) .ov-mermaid-snap svg {
205
218
  width: 100% !important; height: auto !important;
206
219
  max-width: 100% !important; max-height: 60cqh;
207
220
  }
208
- :host([overview]) .ov-cell-label {
221
+ :host(:is([overview], [data-overview-warming])) .ov-cell-label {
209
222
  position: absolute; bottom: 6px; right: 8px;
210
223
  font: 700 0.70rem/1 var(--rik-font-mono);
211
224
  color: var(--rik-text-default);
@@ -214,5 +227,6 @@ var q="data-deck-overview",I="data-overview-tokens",R=`
214
227
  z-index: 2;
215
228
  pointer-events: none;
216
229
  }
217
- :host(:not([overview])) #overview-grid { display: none; }
218
- `;function z(r){if(r.querySelector(`style[${q}]`))return;let o=document.createElement("style");o.setAttribute(q,"1"),o.textContent=R,r.appendChild(o)}function P(r,o){if(r.querySelector(`link[${I}]`))return;let e=document.createElement("link");e.rel="stylesheet",e.setAttribute(I,"1"),e.href=new URL("../tokens.css",o).href,r.appendChild(e)}function O(r){let e=r.slides[0]?.querySelector("h1");return e?Array.from(e.childNodes).map(t=>t.nodeName==="BR"?" ":t.textContent??"").join("").replace(/\s+/g," ").trim()||`Slide ${r.startIdx+1}`:`Slide ${r.startIdx+1}`}function W(r){return(r.textContent||"").replace(/\s+/g," ").trim().slice(0,400).toLowerCase()}var _=["fill","stroke","clip-path","mask","filter","marker-start","marker-mid","marker-end","style"];function B(r,o){let e=new Map;if(r.querySelectorAll("[id]").forEach(i=>{e.set(i.id,i.id+o),i.id=i.id+o}),e.size===0)return;let t=i=>i.replace(/url\(['"]?#([^'")]+)['"]?\)/g,(n,l)=>e.has(l)?`url(#${e.get(l)})`:n);r.querySelectorAll("*").forEach(i=>{for(let n of _){let l=i.getAttribute(n);l?.includes("url(")&&i.setAttribute(n,t(l))}for(let n of["href","xlink:href"]){let l=i.getAttribute(n);l?.startsWith("#")&&e.has(l.slice(1))&&i.setAttribute(n,`#${e.get(l.slice(1))}`)}});let v=r.querySelectorAll("style");if(v.length){let i=n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");v.forEach(n=>{let l=n.textContent??"";e.forEach((w,S)=>{l=l.replace(new RegExp(`#${i(S)}(?![\\w-])`,"g"),`#${w}`)}),n.textContent=l})}}function D(r,o){let e=r.querySelectorAll("svg");o.querySelectorAll("svg").forEach((t,v)=>{let i=e[v]?.getBoundingClientRect();if(i&&i.width>0)t.setAttribute("width",String(Math.round(i.width))),t.setAttribute("height",String(Math.round(i.height))),t.style.maxWidth="100%";else if(t.hasAttribute("viewBox")&&!t.hasAttribute("width")){let n=(t.getAttribute("viewBox")??"").split(/[\s,]+/).map(Number);n.length===4&&n[2]>0&&(t.setAttribute("width",String(n[2])),t.setAttribute("height",String(n[3])),t.style.maxWidth="100%",t.style.height="auto")}})}function G(r,o){let e=r.querySelectorAll("deck-mermaid");o.querySelectorAll("deck-mermaid").forEach((t,v)=>{let i=e[v],n=document.createElement("div");n.className="ov-mermaid-snap",n.innerHTML=i?.renderedSvg??"";let l=i?.getBoundingClientRect();l&&l.width>0&&(n.style.width=`${l.width}px`,n.style.height=`${l.height}px`),t.replaceWith(n)})}function V(r){r.querySelectorAll("[data-click], [data-click-auto], [data-click-children], [data-click-stagger] > *").forEach(o=>{o.style.opacity="",o.style.transform="",o.style.filter="",o.style.pointerEvents="",o.querySelectorAll("path, line, polyline, polygon, circle, ellipse, rect").forEach(e=>{e.style.strokeDashoffset=""})})}function F(r,o){let e=r.cloneNode(!0);return e.setAttribute("active",""),V(e),D(r,e),G(r,e),B(e,`-ov${o}`),e}async function U(r,o){let e=Array.from(o.querySelectorAll("deck-mermaid")).map(v=>v.whenRendered).filter(v=>!!v);e.length&&await Promise.all(e).catch(()=>{});let t=document.createElement("div");t.className="ov-thumb",t.appendChild(F(o,Number(r.dataset.idx))),r.insertBefore(t,r.firstChild),r.dataset.loaded="1",delete r.dataset.building}function Y(r,o){let e=r.shadowRoot;if(!e)return()=>{};z(e),P(e,import.meta.url);let t=e.querySelector("#overview-grid");t||(t=document.createElement("div"),t.id="overview-grid",e.appendChild(t)),t.innerHTML="";let v=o.slides.length,i=v>60,n=v>300?140:v>150?160:v>60?180:220;t.style.setProperty("--ov-cell-min",`${n}px`);let l=e.querySelector("#stage"),w=l?.clientWidth||window.innerWidth,S=l?.clientHeight||window.innerHeight;t.style.setProperty("--ov-thumb-w",`${w}px`),t.style.setProperty("--ov-thumb-h",`${S}px`),requestAnimationFrame(()=>{let s=t.querySelector(".ov-cell")?.clientWidth??n;t.style.setProperty("--overview-scale",String(s/w))});let b=document.createElement("div");b.className="ov-bar";let f=document.createElement("input");f.className="ov-search",f.type="search",f.placeholder=`Search ${v} slides \xB7 type to filter`,f.spellcheck=!1,b.appendChild(f);let C=document.createElement("span");C.className="ov-count",C.textContent=`${v} slides \xB7 ${o.chapters.length} chapters`,b.appendChild(C);let L=document.createElement("span");L.className="ov-hint",L.textContent="O \xB7 Esc \xB7 close",b.appendChild(L),t.appendChild(b);let k=document.createElement("div");k.className=`ov-body${i?"":" compact"}`,t.appendChild(k);let x=i?document.createElement("aside"):null;x&&(x.className="ov-aside",k.appendChild(x));let y=document.createElement("div");y.className=`ov-main${i?"":" ov-path"}`,k.appendChild(y);let T=[],A=[],N=new WeakMap,E=new IntersectionObserver(s=>{for(let m of s){if(!m.isIntersecting)continue;let a=m.target;if(a.dataset.loaded||a.dataset.building)continue;let p=N.get(a);p&&(a.dataset.building="1",E.unobserve(a),U(a,p).catch(d=>{let u=Number(a.dataset.tries??"0")+1;a.dataset.tries=String(u),console.warn("[rikiki/overview] thumbnail build failed",d),delete a.dataset.building,u<3&&E.observe(a)}))}},{root:null,rootMargin:"300px 0px",threshold:0});o.chapters.forEach((s,m)=>{let a=document.createElement("section");if(a.className="ov-chapter",a.id=`ov-chapter-${m}`,i){let d=document.createElement("header");d.className="ov-chapter-head";let u=document.createElement("span");u.className="ov-chapter-num",u.textContent=String(m+1).padStart(2,"0"),d.appendChild(u);let h=document.createElement("span");h.className="ov-chapter-title",h.textContent=O(s),d.appendChild(h);let c=document.createElement("span");c.className="ov-chapter-count",c.textContent=`${s.slides.length} slide${s.slides.length>1?"s":""}`,d.appendChild(c),a.appendChild(d)}let p=document.createElement("div");if(p.className="ov-row",s.slides.forEach((d,u)=>{if(!i&&u>0){let $=document.createElement("div");$.className="ov-connector",p.appendChild($)}let h=s.startIdx+u,c=document.createElement("div");c.className="ov-cell",c.dataset.idx=String(h),c.dataset.search=W(d),h===o.currentIdx&&(c.dataset.current="1"),N.set(c,d),E.observe(c);let g=document.createElement("span");g.className="ov-cell-label",g.textContent=String(h+1),c.appendChild(g),c.addEventListener("click",()=>o.onPick(h)),p.appendChild(c)}),a.appendChild(p),y.appendChild(a),T.push(a),x){let d=document.createElement("button");d.type="button",d.className="ov-aside-item",o.currentIdx>=s.startIdx&&o.currentIdx<s.startIdx+s.slides.length&&(d.dataset.active="1");let h=document.createElement("span");h.className="ov-aside-num",h.textContent=String(m+1).padStart(2,"0"),d.appendChild(h);let c=document.createElement("span");c.className="ov-aside-text",c.textContent=O(s);let g=document.createElement("div");g.className="ov-aside-count",g.textContent=`${s.slides.length} slide${s.slides.length>1?"s":""}`,c.appendChild(g),d.appendChild(c),d.addEventListener("click",()=>{a.scrollIntoView({behavior:"smooth",block:"start"})}),x.appendChild(d),A.push(d)}});let M=null;x&&(M=new IntersectionObserver(s=>{let m=s.filter(a=>a.isIntersecting).sort((a,p)=>a.boundingClientRect.top-p.boundingClientRect.top);if(m.length>0){let a=T.indexOf(m[0].target);a>=0&&A.forEach((p,d)=>{d===a?p.dataset.active="1":delete p.dataset.active})}},{root:y,rootMargin:"0px 0px -70% 0px",threshold:0}),T.forEach(s=>{M.observe(s)}));let H=t.querySelectorAll(".ov-cell");return f.addEventListener("input",()=>{let s=f.value.trim().toLowerCase();if(!s){H.forEach(m=>{delete m.dataset.filteredOut});return}H.forEach(m=>{(m.dataset.search||"").includes(s)?delete m.dataset.filteredOut:m.dataset.filteredOut="1"})}),requestAnimationFrame(()=>{let s=t.querySelector(".ov-cell[data-current]");s&&s.scrollIntoView({block:"center"})}),()=>{M?.disconnect(),E.disconnect(),t&&(t.innerHTML="")}}export{Y as mountOverview};
230
+ :host(:not([overview])) #overview-grid { visibility: hidden; pointer-events: none; }
231
+ :host(:not([overview]):not([data-overview-warming])) #overview-grid { display: none; }
232
+ `;function X(t){if(t.querySelector(`style[${F}]`))return;let r=document.createElement("style");r.setAttribute(F,"1"),r.textContent=Q,t.appendChild(r)}function G(t){let o=t.slides[0]?.querySelector("h1");return o?Array.from(o.childNodes).map(i=>i.nodeName==="BR"?" ":i.textContent??"").join("").replace(/\s+/g," ").trim()||`Slide ${t.startIdx+1}`:`Slide ${t.startIdx+1}`}function U(t){return(t.textContent||"").replace(/\s+/g," ").trim().slice(0,400).toLowerCase()}var Z=["fill","stroke","clip-path","mask","filter","marker-start","marker-mid","marker-end","style"];function ee(t,r){let o=new Map;if(t.querySelectorAll("[id]").forEach(s=>{o.set(s.id,s.id+r),s.id=s.id+r}),o.size===0)return;let i=s=>s.replace(/url\(['"]?#([^'")]+)['"]?\)/g,(n,l)=>o.has(l)?`url(#${o.get(l)})`:n);t.querySelectorAll("*").forEach(s=>{for(let n of Z){let l=s.getAttribute(n);l?.includes("url(")&&s.setAttribute(n,i(l))}for(let n of["href","xlink:href"]){let l=s.getAttribute(n);l?.startsWith("#")&&o.has(l.slice(1))&&s.setAttribute(n,`#${o.get(l.slice(1))}`)}});let u=t.querySelectorAll("style");if(u.length){let s=n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");u.forEach(n=>{let l=n.textContent??"";o.forEach((g,h)=>{l=l.replace(new RegExp(`#${s(h)}(?![\\w-])`,"g"),`#${g}`)}),n.textContent=l})}}function te(t,r){let o=t.querySelectorAll("svg");r.querySelectorAll("svg").forEach((i,u)=>{let s=o[u]?.getBoundingClientRect();if(s&&s.width>0)i.setAttribute("width",String(Math.round(s.width))),i.setAttribute("height",String(Math.round(s.height))),i.style.maxWidth="100%";else if(i.hasAttribute("viewBox")&&!i.hasAttribute("width")){let n=(i.getAttribute("viewBox")??"").split(/[\s,]+/).map(Number);n.length===4&&n[2]>0&&(i.setAttribute("width",String(n[2])),i.setAttribute("height",String(n[3])),i.style.maxWidth="100%",i.style.height="auto")}})}function re(t,r){let o=t.querySelectorAll("deck-mermaid");r.querySelectorAll("deck-mermaid").forEach((i,u)=>{let s=o[u],n=document.createElement("div");n.className="ov-mermaid-snap",n.innerHTML=s?.renderedSvg??"";let l=s?.getBoundingClientRect();l&&l.width>0&&(n.style.width=`${l.width}px`,n.style.height=`${l.height}px`),i.replaceWith(n)})}function ie(t){t.querySelectorAll("[data-click], [data-click-auto], [data-click-children], [data-click-stagger] > *").forEach(r=>{r.style.opacity="",r.style.transform="",r.style.filter="",r.style.pointerEvents="",r.querySelectorAll("path, line, polyline, polygon, circle, ellipse, rect").forEach(o=>{o.style.strokeDashoffset=""})})}function oe(t,r){let o=t.cloneNode(!0);return o.setAttribute("active",""),ie(o),te(t,o),re(t,o),ee(o,`-ov${r}`),o}async function ne(t,r,o,i){let u=i+":"+t.dataset.idx+":"+r.outerHTML,s=o.get(r);if(s?.key===u){t.insertBefore(s.thumb,t.firstChild),t.dataset.loaded="1",delete t.dataset.building;return}let n=Array.from(r.querySelectorAll("deck-mermaid")).map(f=>f.whenRendered).filter(f=>!!f);if(n.length&&await Promise.all(n).catch(()=>{}),!t.isConnected)return;s?.thumb.remove();let l=document.createElement("div");l.className="ov-thumb";let g=l.attachShadow({mode:"open"});for(let f of document.querySelectorAll('link[rel="stylesheet"], style'))g.appendChild(f.cloneNode(!0));let h=document.createElement("deck-root");h.setAttribute("data-overview-snapshot","");for(let f of["preview","no-hint","no-arrows","no-counter"])h.setAttribute(f,"");let b=r.closest("deck-root");for(let f of["width","height","class","lang","dir","style"]){let E=b?.getAttribute(f);E!=null&&h.setAttribute(f,E)}h.style.cssText+=";position:absolute;inset:0;width:100%;height:100%;",h.appendChild(oe(r,Number(t.dataset.idx))),g.appendChild(h),o.set(r,{key:u,thumb:l}),t.insertBefore(l,t.firstChild),t.dataset.loaded="1",delete t.dataset.building}function ae(t,r){let o=t.shadowRoot;if(!o)return()=>{};X(o);let i=o.querySelector("#overview-grid");i||(i=document.createElement("div"),i.id="overview-grid",o.appendChild(i));let u=K.get(t);u||(u=new Map,K.set(t,u));let s=new Set(r.slides);for(let[e,c]of u)s.has(e)||(c.thumb.remove(),u.delete(e));let n=Array.from(document.querySelectorAll('link[rel="stylesheet"], style')).filter(e=>!e.id.startsWith("rik-deck-")).map(e=>e.outerHTML).join("")+["width","height","class","lang","dir","style"].map(e=>t.getAttribute(e)).join("|"),l=n+r.slides.map(J).join("")+JSON.stringify(r.chapters.map(e=>e.startIdx)),g=R.get(t);if(g?.key===l)return i.querySelectorAll(".ov-cell").forEach(e=>{let c=Number(e.dataset.idx)===r.currentIdx;e.toggleAttribute("data-current",c),c?e.setAttribute("aria-current","true"):e.removeAttribute("aria-current")}),requestAnimationFrame(()=>{if(!t.hasAttribute("overview"))return;let e=i.querySelector(".ov-cell[data-current]");e?.scrollIntoView({block:"center"}),e?.focus({preventScroll:!0})}),g.dispose;g?.dispose(),i.innerHTML="";let h=r.slides.length,b=h>60,f=h>300?140:h>150?160:h>60?180:220;i.style.setProperty("--ov-cell-min",`${f}px`);let E=o.querySelector("#stage"),H=E?.clientWidth||window.innerWidth,Y=E?.clientHeight||window.innerHeight;i.style.setProperty("--ov-thumb-w",`${H}px`),i.style.setProperty("--ov-thumb-h",`${Y}px`);let W=new ResizeObserver(()=>{let e=i.querySelector(".ov-cell")?.clientWidth;e&&i.style.setProperty("--overview-scale",String(e/H))});W.observe(i),requestAnimationFrame(()=>{let e=i.querySelector(".ov-cell")?.clientWidth??f;i.style.setProperty("--overview-scale",String(e/H))});let S=document.createElement("div");S.className="ov-bar";let x=document.createElement("input");x.className="ov-search",x.type="search",x.placeholder=`Search ${h} slides \xB7 type to filter`,x.spellcheck=!1,S.appendChild(x);let q=document.createElement("span");q.className="ov-count",q.textContent=`${h} slides \xB7 ${r.chapters.length} chapters`,S.appendChild(q);let N=document.createElement("span");N.className="ov-hint",N.textContent="O \xB7 Esc \xB7 close",S.appendChild(N),i.appendChild(S);let C=document.createElement("div");C.className=`ov-body${b?"":" compact"}`,i.appendChild(C);let k=b?document.createElement("aside"):null;k&&(k.className="ov-aside",C.appendChild(k));let M=document.createElement("div");M.className=`ov-main${b?"":" ov-path"}`,C.appendChild(M);let $=[],z=[],P=new WeakMap,A=!1,T=[],I=!1,B=()=>{if(I||A||!T.length)return;I=!0;let e=()=>{I=!1,!A&&(T.shift()?.(),B())};"requestIdleCallback"in window?window.requestIdleCallback(e,{timeout:1e3}):setTimeout(e,32)},L=new IntersectionObserver(e=>{for(let c of e){if(!c.isIntersecting)continue;let a=c.target;if(a.dataset.loaded||a.dataset.building)continue;let p=P.get(a);if(!p)continue;a.dataset.building="1",L.unobserve(a);let d=()=>{ne(a,p,u,n).catch(w=>{let m=Number(a.dataset.tries??"0")+1;a.dataset.tries=String(m),console.warn("[rikiki/overview] thumbnail build failed",w),delete a.dataset.building,m<3&&!A&&L.observe(a)})};t.hasAttribute("overview")?d():(T.push(d),B())}},{root:null,rootMargin:"300px 0px",threshold:0});r.chapters.forEach((e,c)=>{let a=document.createElement("section");if(a.className="ov-chapter",a.id=`ov-chapter-${c}`,b){let d=document.createElement("header");d.className="ov-chapter-head";let w=document.createElement("span");w.className="ov-chapter-num",w.textContent=String(c+1).padStart(2,"0"),d.appendChild(w);let m=document.createElement("span");m.className="ov-chapter-title",m.textContent=G(e),d.appendChild(m);let v=document.createElement("span");v.className="ov-chapter-count",v.textContent=`${e.slides.length} slide${e.slides.length>1?"s":""}`,d.appendChild(v),a.appendChild(d)}let p=document.createElement("div");if(p.className="ov-row",e.slides.forEach((d,w)=>{if(!b&&w>0){let j=document.createElement("div");j.className="ov-connector",p.appendChild(j)}let m=e.startIdx+w,v=document.createElement("button");v.type="button",v.className="ov-cell",v.dataset.idx=String(m),v.dataset.search=U(d),m===r.currentIdx&&(v.dataset.current="1"),P.set(v,d),L.observe(v);let y=document.createElement("span");y.className="ov-cell-label",y.textContent=String(m+1),v.appendChild(y);let V=U(d).trim().slice(0,80);v.setAttribute("aria-label",`Slide ${m+1} of ${h}${V?` \xB7 ${V}`:""}`),m===r.currentIdx&&v.setAttribute("aria-current","true"),v.addEventListener("click",()=>r.onPick(m)),p.appendChild(v)}),a.appendChild(p),M.appendChild(a),$.push(a),k){let d=document.createElement("button");d.type="button",d.className="ov-aside-item",r.currentIdx>=e.startIdx&&r.currentIdx<e.startIdx+e.slides.length&&(d.dataset.active="1");let m=document.createElement("span");m.className="ov-aside-num",m.textContent=String(c+1).padStart(2,"0"),d.appendChild(m);let v=document.createElement("span");v.className="ov-aside-text",v.textContent=G(e);let y=document.createElement("div");y.className="ov-aside-count",y.textContent=`${e.slides.length} slide${e.slides.length>1?"s":""}`,v.appendChild(y),d.appendChild(v),d.addEventListener("click",()=>{a.scrollIntoView({behavior:"smooth",block:"start"})}),k.appendChild(d),z.push(d)}});let O=null;k&&(O=new IntersectionObserver(e=>{let c=e.filter(a=>a.isIntersecting).sort((a,p)=>a.boundingClientRect.top-p.boundingClientRect.top);if(c.length>0){let a=$.indexOf(c[0].target);a>=0&&z.forEach((p,d)=>{d===a?p.dataset.active="1":delete p.dataset.active})}},{root:M,rootMargin:"0px 0px -70% 0px",threshold:0}),$.forEach(e=>{O.observe(e)}));let _=i.querySelectorAll(".ov-cell");x.addEventListener("input",()=>{let e=x.value.trim().toLowerCase();if(!e){_.forEach(c=>{delete c.dataset.filteredOut});return}_.forEach(c=>{(c.dataset.search||"").includes(e)?delete c.dataset.filteredOut:c.dataset.filteredOut="1"})}),requestAnimationFrame(()=>{if(!t.hasAttribute("overview"))return;let e=i.querySelector(".ov-cell[data-current]");e&&(e.scrollIntoView({block:"center"}),e.focus({preventScroll:!0}))}),i.addEventListener("keydown",e=>{let c=e.key;if(c!=="ArrowLeft"&&c!=="ArrowRight")return;let a=[...i.querySelectorAll(".ov-cell")].filter(w=>!w.dataset.filteredOut),p=a.indexOf(document.activeElement);if(p<0)return;e.preventDefault();let d=a[p+(c==="ArrowRight"?1:-1)];d?.focus(),d?.scrollIntoView({block:"nearest"})});let D=()=>{A=!0,W.disconnect(),T.length=0,R.delete(t),O?.disconnect(),L.disconnect(),i&&(i.innerHTML="")};return R.set(t,{key:l,dispose:D}),D}export{ae as mountOverview};
@@ -0,0 +1,31 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class DeckPersona extends LitElement {
3
+ static styles: import("lit").CSSResult[];
4
+ name?: string;
5
+ /** Job title · NOT the `role` attribute, which belongs to ARIA. */
6
+ personRole?: string;
7
+ org?: string;
8
+ /** One line of situation · what makes the story concrete. */
9
+ context?: string;
10
+ /** A portrait · without one the initials stand in, so a deck with no photos
11
+ * still looks deliberate. */
12
+ src?: string;
13
+ onDark: boolean;
14
+ /** Reduce portrait, type and spacing for a supporting persona. */
15
+ compact: boolean;
16
+ /** Place name, role and context in a wrapping horizontal line. */
17
+ inline: boolean;
18
+ private get _initials();
19
+ /** The job and the company, written as a phrase.
20
+ *
21
+ * It used to be joined with a middle dot, which is one of the surest marks
22
+ * of a generated page and reads as a machine string rather than as a person
23
+ * being introduced. */
24
+ private get _line();
25
+ render(): import("lit-html").TemplateResult<1>;
26
+ }
27
+ declare global {
28
+ interface HTMLElementTagNameMap {
29
+ 'deck-persona': DeckPersona;
30
+ }
31
+ }
@@ -0,0 +1,6 @@
1
+ var m=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var e=(p,n,t,o)=>{for(var i=o>1?void 0:o?v(n,t):n,c=p.length-1,l;c>=0;c--)(l=p[c])&&(i=(o?l(n,t,i):l(i))||i);return o&&i&&m(n,t,i),i};import{LitElement as k,css as h,html as s}from"./vendor/lit.js";import{customElement as f,property as a}from"./vendor/lit.js";import{css as g}from"./vendor/lit.js";var d=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 r=class extends k{constructor(){super(...arguments);this.onDark=!1;this.compact=!1;this.inline=!1}get _initials(){return(this.name??"").split(/\s+/).filter(Boolean).slice(0,2).map(t=>t[0]?.toUpperCase()??"").join("")}get _line(){return this.personRole&&this.org?`${this.personRole} at ${this.org}`:this.personRole??this.org??""}render(){let t=this.src?s`<span class="avatar" part="avatar" aria-hidden="true"><img src=${this.src} alt="" /></span>`:this._initials?s`<span class="avatar" part="avatar" aria-hidden="true"><span class="statement">${this._initials}</span></span>`:"";return s`${t} <span class="who"> ${this.name?s`<span class="name statement" part="name">${this.name}</span>`:""}
2
+ ${this._line?s`<span class="role reading" part="role">${this._line}</span>`:""}
3
+ ${this.context?s`<span class="context reading quiet" part="context">${this.context}</span>`:""}
4
+ <slot></slot>
5
+ </span>
6
+ `}};r.styles=[d,h`:host{display:flex;align-items:start;gap:var(--deck-persona-gap,var(--rik-space-5))}.avatar{flex:none;box-sizing:border-box;width:var(--deck-persona-avatar-size,clamp(4.5rem,7cqw,8rem));height:var(--deck-persona-avatar-size,clamp(4.5rem,7cqw,8rem));display:grid;place-items:center;overflow:hidden;background:var(--deck-persona-avatar-bg,var(--rik-surface-inverse));color:var(--deck-persona-initials-color,var(--rik-text-inverse));border-radius:var(--rik-radius-sm)}.avatar .statement{font-size:var( --deck-persona-initials-size,calc(var(--deck-persona-avatar-size,clamp(4.5rem,7cqw,8rem)) * 0.42) );line-height:1}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.who{min-width:0;display:flex;flex-direction:column;gap:var(--rik-space-1);padding-top:var(--deck-persona-name-lift,0.12em)}.name{font-size:var(--deck-persona-name-size,clamp(1.75rem,2.6cqw,3rem));color:var(--deck-persona-name-color,var(--rik-text-default))}.role{color:var(--deck-persona-role-color,var(--rik-text-default--muted))}.context{margin-top:var(--rik-space-3);color:var(--deck-persona-context-color,var(--rik-text-default--muted))}:host([on-dark]) .avatar{background:var(--deck-persona-avatar-bg,var(--rik-surface-page));color:var(--deck-persona-initials-color,var(--rik-text-default))}:host([on-dark]) .name{color:var(--rik-text-inverse)}:host([on-dark]) .role,:host([on-dark]) .context{color:var(--rik-text-inverse--muted)}:host([compact]),:host([inline]){--deck-persona-avatar-size:var(--deck-persona-compact-avatar-size,clamp(3rem,4cqw,4.5rem));--deck-persona-name-size:var(--deck-persona-compact-name-size,clamp(1.35rem,2cqw,2.1rem));--deck-persona-gap:var(--rik-space-3)}:host([compact]) .context,:host([inline]) .context{margin-top:var(--rik-space-1);font-size:var(--rik-font-size-sm)}:host([inline]){align-items:center}:host([inline]) .who{flex:1 1 auto;flex-direction:row;align-items:baseline;flex-wrap:wrap;column-gap:var(--rik-space-2);row-gap:var(--rik-space-1);padding-top:0}:host([inline]) .context{margin-top:0}@media print{.avatar{-webkit-print-color-adjust:exact;print-color-adjust:exact}}`],e([a({type:String})],r.prototype,"name",2),e([a({type:String,attribute:"person-role"})],r.prototype,"personRole",2),e([a({type:String})],r.prototype,"org",2),e([a({type:String})],r.prototype,"context",2),e([a({type:String,reflect:!0})],r.prototype,"src",2),e([a({type:Boolean,reflect:!0,attribute:"on-dark"})],r.prototype,"onDark",2),e([a({type:Boolean,reflect:!0})],r.prototype,"compact",2),e([a({type:Boolean,reflect:!0})],r.prototype,"inline",2),r=e([f("deck-persona")],r);export{r as DeckPersona};
@@ -1 +1 @@
1
- var g=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var i=(s,e,o,n)=>{for(var r=n>1?void 0:n?v(e,o):e,l=s.length-1,d;l>=0;l--)(d=s[l])&&(r=(n?d(e,o,r):d(r))||r);return n&&r&&g(e,o,r),r};import{LitElement as f,html as x,css as k}from"./vendor/lit.js";import{customElement as m,property as a}from"./vendor/lit.js";import{css as c}from"./vendor/lit.js";var p=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}`,u=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)}`,y=c`.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)}`;var t=class extends f{updated(){this.position&&this.style.setProperty("--_pos",this.position),typeof this.darken=="number"&&this.style.setProperty("--_dim",String(this.darken));let e=this.align==="top"?"flex-start":this.align==="bottom"?"flex-end":"center";if(this.style.setProperty("--_align",e),this.textAlign){this.style.setProperty("--_text-align",this.textAlign);let o=this.textAlign==="center"?"center":this.textAlign==="right"?"flex-end":"flex-start";this.style.setProperty("--_text-align-items",o)}}render(){let e=this.src?`background-image: url("${this.src.replace(/"/g,"%22")}")`:"";return x`<div class="bg" part="bg" style=${e}></div> <div class="overlay" part="overlay"></div> <div class="content" part="content"><slot></slot></div>`}};t.styles=[p,k`:host{padding:0;color:var(--deck-photo-text-color,var(--rik-text-inverse));overflow:hidden}.bg{position:absolute;inset:0;background-size:cover;background-position:var(--_pos,center);background-repeat:no-repeat}.overlay{position:absolute;inset:0;background:var(--deck-photo-overlay-color,rgba(0,0,0,var(--_dim,0.35)))}.content{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--rik-space-3);padding:var(--deck-photo-padding-y,var(--rik-slide-padding-y)) var(--deck-photo-padding-x,var(--rik-slide-padding-x));width:100%;height:100%;max-width:100%;box-sizing:border-box;justify-content:var(--_align,center);text-align:var(--_text-align,left);align-items:var(--_text-align-items,flex-start)}.content > *{max-width:var(--deck-photo-content-max-width,36ch)}::slotted(h1){font-family:var(--rik-font-display,var(--rik-font-sans));font-size:clamp(2.5rem,6cqw,5.5rem);font-weight:900;letter-spacing:-0.035em;line-height:1.02;color:var(--deck-photo-text-color,var(--rik-text-inverse));margin:0;text-shadow:0 2px 16px rgba(0,0,0,0.35)}::slotted(h2){font-family:var(--rik-font-display,var(--rik-font-sans));font-size:clamp(1.6rem,3cqw,2.6rem);font-weight:800;letter-spacing:-0.025em;line-height:1.1;color:var(--deck-photo-text-color,var(--rik-text-inverse));margin:0;text-shadow:0 2px 12px rgba(0,0,0,0.35)}::slotted(p),::slotted(.sub){font-size:var(--rik-font-size-lead);color:var(--deck-photo-text-muted,var(--rik-text-inverse--muted));line-height:1.5;margin:0;text-shadow:0 1px 8px rgba(0,0,0,0.35)}::slotted(.kicker){font:700 var(--rik-font-size-xs)/1 var(--rik-font-mono);letter-spacing:0.18em;text-transform:uppercase;color:var(--deck-photo-text-muted,var(--rik-text-inverse--muted));margin:0}`],i([a({type:String})],t.prototype,"src",2),i([a({type:String})],t.prototype,"position",2),i([a({type:Number})],t.prototype,"darken",2),i([a({type:String})],t.prototype,"align",2),i([a({type:String,attribute:"text-align"})],t.prototype,"textAlign",2),t=i([m("deck-photo")],t);export{t as DeckPhoto};
1
+ var g=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var i=(s,e,o,n)=>{for(var r=n>1?void 0:n?f(e,o):e,l=s.length-1,d;l>=0;l--)(d=s[l])&&(r=(n?d(e,o,r):d(r))||r);return n&&r&&g(e,o,r),r};import{LitElement as v,html as k,css as x}from"./vendor/lit.js";import{customElement as h,property as a}from"./vendor/lit.js";import{css as c}from"./vendor/lit.js";var p=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}}`,u=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)}`,y=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)}`;var t=class extends v{updated(){this.position&&this.style.setProperty("--_pos",this.position),typeof this.darken=="number"&&this.style.setProperty("--_dim",String(this.darken));let e=this.align==="top"?"flex-start":this.align==="bottom"?"flex-end":"center";if(this.style.setProperty("--_align",e),this.textAlign){this.style.setProperty("--_text-align",this.textAlign);let o=this.textAlign==="center"?"center":this.textAlign==="right"?"flex-end":"flex-start";this.style.setProperty("--_text-align-items",o)}}render(){let e=this.src?`background-image: url("${this.src.replace(/"/g,"%22")}")`:"";return k`<div class="bg" part="bg" style=${e}></div> <div class="overlay" part="overlay"></div> <div class="content" part="content"><slot></slot></div>`}};t.styles=[p,x`:host{padding:0;color:var(--deck-photo-text-color,var(--rik-text-inverse));overflow:hidden}.bg{position:absolute;inset:0;background-size:cover;background-position:var(--_pos,center);background-repeat:no-repeat}.overlay{position:absolute;inset:0;background:var(--deck-photo-overlay-color,rgba(0,0,0,var(--_dim,0.35)))}.content{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--rik-space-3);padding:var(--deck-photo-padding-y,var(--rik-slide-padding-y)) var(--deck-photo-padding-x,var(--rik-slide-padding-x));width:100%;height:100%;max-width:100%;box-sizing:border-box;justify-content:var(--_align,center);text-align:var(--_text-align,left);align-items:var(--_text-align-items,flex-start)}.content > *{max-width:var(--deck-photo-content-max-width,36ch)}::slotted(h1){font-family:var(--rik-font-display,var(--rik-font-sans));font-size:clamp(2.5rem,6cqw,5.5rem);font-weight:900;letter-spacing:-0.035em;line-height:1.02;color:var(--deck-photo-text-color,var(--rik-text-inverse));margin:0;text-shadow:0 2px 16px rgba(0,0,0,0.35)}::slotted(h2){font-family:var(--rik-font-display,var(--rik-font-sans));font-size:clamp(1.6rem,3cqw,2.6rem);font-weight:800;letter-spacing:-0.025em;line-height:1.1;color:var(--deck-photo-text-color,var(--rik-text-inverse));margin:0;text-shadow:0 2px 12px rgba(0,0,0,0.35)}::slotted(p),::slotted(.sub){font-size:var(--rik-font-size-lead);color:var(--deck-photo-text-muted,var(--rik-text-inverse--muted));line-height:1.5;margin:0;text-shadow:0 1px 8px rgba(0,0,0,0.35)}::slotted(.kicker){font:700 var(--rik-font-size-xs)/1 var(--rik-font-mono);letter-spacing:0.18em;text-transform:uppercase;color:var(--deck-photo-text-muted,var(--rik-text-inverse--muted));margin:0}`],i([a({type:String})],t.prototype,"src",2),i([a({type:String})],t.prototype,"position",2),i([a({type:Number})],t.prototype,"darken",2),i([a({type:String})],t.prototype,"align",2),i([a({type:String,attribute:"text-align"})],t.prototype,"textAlign",2),t=i([h("deck-photo")],t);export{t as DeckPhoto};
@@ -0,0 +1,22 @@
1
+ import { LitElement } from 'lit';
2
+ export type DeckPointAlign = 'start' | 'center' | 'end' | 'stretch';
3
+ export declare class DeckPoint extends LitElement {
4
+ static styles: import("lit").CSSResult;
5
+ span?: string;
6
+ col?: string;
7
+ row?: string;
8
+ align?: DeckPointAlign;
9
+ tone?: string;
10
+ /** How many bands this point borrows from its bento · written by deck-bento,
11
+ * never by an author. Declared rather than read off the attribute so Lit
12
+ * re-runs updated() when the parent sets it; an undeclared attribute would
13
+ * change the CSS and leave the point spanning one band instead of all. */
14
+ banded?: string;
15
+ updated(): void;
16
+ render(): import("lit-html").TemplateResult<1>;
17
+ }
18
+ declare global {
19
+ interface HTMLElementTagNameMap {
20
+ 'deck-point': DeckPoint;
21
+ }
22
+ }
@@ -0,0 +1 @@
1
+ var p=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var n=(e,r,a,d)=>{for(var o=d>1?void 0:d?u(r,a):r,l=e.length-1,c;l>=0;l--)(c=e[l])&&(o=(d?c(r,a,o):c(o))||o);return d&&o&&p(r,a,o),o};import{LitElement as b,css as f,html as k}from"./vendor/lit.js";import{customElement as m,property as i}from"./vendor/lit.js";function s(e){if(!e)return"auto";let r=e.trim();return/^\d+$/.test(r)?`span ${r}`:r}function g(e){if(!e)return{col:"auto",row:"auto"};let[r,a]=e.toLowerCase().split("x");return{col:s(r),row:s(a)}}var h={start:"start",center:"center",end:"end",stretch:"stretch"},t=class extends b{updated(){let r=g(this.span);this.style.setProperty("--_col",this.col?s(this.col):r.col),this.style.setProperty("--_row",this.banded?`span ${this.banded}`:this.row?s(this.row):r.row),this.align&&this.style.setProperty("--_align",h[this.align]??this.align)}render(){return k`<slot></slot>`}};t.styles=f`:host{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:min-content;row-gap:var(--deck-cell-gap,var(--rik-space-2));justify-items:var(--_align,stretch);grid-column:var(--_col,auto);grid-row:var(--_row,auto);min-width:0;box-sizing:border-box;padding:var(--deck-cell-padding-y,var(--rik-space-3)) var(--deck-cell-padding-x,var(--rik-space-4));background:var(--deck-cell-bg,var(--rik-surface-raised--strong));border:1px solid var(--deck-cell-border,var(--rik-border-default));border-radius:var(--deck-cell-radius,var(--rik-radius-lg));font-family:var(--rik-font-sans);color:var(--rik-text-default--muted)}:host([banded]){grid-template-rows:subgrid;grid-auto-rows:initial;row-gap:0}:host([banded]) ::slotted(*){align-self:start}:host([tone="info"]){background:var(--deck-cell-bg,var(--rik-status-info__bg));border-color:var(--deck-cell-border,var(--rik-status-info__border))}:host([tone="warn"]){background:var(--deck-cell-bg,var(--rik-status-warn__bg));border-color:var(--deck-cell-border,var(--rik-status-warn__border))}:host([tone="ok"]){background:var(--deck-cell-bg,var(--rik-status-success__bg));border-color:var(--deck-cell-border,var(--rik-status-success__border))}:host([tone="danger"]){background:var(--deck-cell-bg,var(--rik-status-danger__bg));border-color:var(--deck-cell-border,var(--rik-status-danger__border))}:host([plain]){background:none;border-color:transparent;border-radius:0}:host([flat]){border:none}::slotted(h3){font-family:var(--rik-font-display,var(--rik-font-sans));font-size:var(--rik-font-size-h2);font-weight:700;color:var(--rik-text-default);letter-spacing:-0.01em;line-height:1.2;margin:0}::slotted(p){font-size:var(--rik-font-size-body);line-height:1.5;margin:0}`,n([i({type:String})],t.prototype,"span",2),n([i({type:String})],t.prototype,"col",2),n([i({type:String})],t.prototype,"row",2),n([i({type:String})],t.prototype,"align",2),n([i({type:String})],t.prototype,"tone",2),n([i({type:String,reflect:!0})],t.prototype,"banded",2),t=n([m("deck-point")],t);export{t as DeckPoint};