rshow 0.0.0-stage → 0.0.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 (84) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +50 -2
  3. package/dist/main.js +8500 -0
  4. package/package.json +48 -4
  5. package/skills/rshow/SKILL.md +144 -0
  6. package/skills/rshow/reference/cli.md +263 -0
  7. package/skills/rshow/reference/dashboard.md +122 -0
  8. package/skills/rshow/reference/mockups.md +113 -0
  9. package/skills/rshow/reference/page-contract.md +83 -0
  10. package/skills/rshow/reference/pages.md +174 -0
  11. package/skills/rshow/reference/poster.md +137 -0
  12. package/skills/rshow/reference/project-page.md +132 -0
  13. package/skills/rshow/reference/reports.md +158 -0
  14. package/skills/rshow/reference/sketch.md +78 -0
  15. package/skills/rshow/reference/terminal.md +148 -0
  16. package/skills/rshow/reference/themes.md +139 -0
  17. package/skills/rshow-implement/SKILL.md +112 -0
  18. package/skills/rshow-implement/reference/compare.md +156 -0
  19. package/skills/rshow-implement/reference/handoff.md +125 -0
  20. package/skills/rshow-implement/reference/map.md +151 -0
  21. package/skills/rshow-slides/SKILL.md +136 -0
  22. package/skills/rshow-slides/reference/layouts.md +251 -0
  23. package/themes/default/dashboard.css +521 -0
  24. package/themes/default/dashboard.js +1390 -0
  25. package/themes/default/deck.css +586 -0
  26. package/themes/default/deck.js +741 -0
  27. package/themes/default/example/capture.ans +1 -0
  28. package/themes/default/example/dashboard.html +106 -0
  29. package/themes/default/example/demo.cast +14 -0
  30. package/themes/default/example/drawing.excalidraw +377 -0
  31. package/themes/default/example/index.html +311 -0
  32. package/themes/default/example/mockup-desktop.html +331 -0
  33. package/themes/default/example/mockup-platforms.html +742 -0
  34. package/themes/default/example/mockup.html +416 -0
  35. package/themes/default/example/page.html +153 -0
  36. package/themes/default/example/poster-figure.svg +58 -0
  37. package/themes/default/example/poster.html +181 -0
  38. package/themes/default/example/project.html +229 -0
  39. package/themes/default/example/report.html +404 -0
  40. package/themes/default/example/results.csv +61 -0
  41. package/themes/default/example/sketch.html +178 -0
  42. package/themes/default/example/teaser.svg +66 -0
  43. package/themes/default/example/terminal.html +231 -0
  44. package/themes/default/example/tui.html +223 -0
  45. package/themes/default/fonts/IBMPlexMono-Regular-Latin1.woff2 +0 -0
  46. package/themes/default/fonts/IBMPlexSans-Light-Latin1.woff2 +0 -0
  47. package/themes/default/fonts/IBMPlexSans-Regular-Latin1.woff2 +0 -0
  48. package/themes/default/fonts/IBMPlexSans-SemiBold-Latin1.woff2 +0 -0
  49. package/themes/default/fonts/OFL.txt +93 -0
  50. package/themes/default/fonts.css +63 -0
  51. package/themes/default/index.html +573 -0
  52. package/themes/default/mockup.css +1078 -0
  53. package/themes/default/mockup.js +1433 -0
  54. package/themes/default/mode.js +242 -0
  55. package/themes/default/page.css +320 -0
  56. package/themes/default/poster.css +480 -0
  57. package/themes/default/poster.js +223 -0
  58. package/themes/default/project.css +482 -0
  59. package/themes/default/project.js +116 -0
  60. package/themes/default/report.css +776 -0
  61. package/themes/default/report.js +427 -0
  62. package/themes/default/sketch.css +166 -0
  63. package/themes/default/sketch.js +681 -0
  64. package/themes/default/skins/adwaita.css +669 -0
  65. package/themes/default/skins/custom.css +596 -0
  66. package/themes/default/skins/egui.css +639 -0
  67. package/themes/default/skins/fluent.css +1093 -0
  68. package/themes/default/skins/fluent.js +458 -0
  69. package/themes/default/skins/mac.css +647 -0
  70. package/themes/default/skins/material.css +692 -0
  71. package/themes/default/skins/sketch.css +436 -0
  72. package/themes/default/skins/sketch.js +494 -0
  73. package/themes/default/skins/wire.css +561 -0
  74. package/themes/default/terminal.css +292 -0
  75. package/themes/default/terminal.js +433 -0
  76. package/themes/default/theme.json +149 -0
  77. package/themes/default/tokens.css +255 -0
  78. package/themes/default/tui.css +703 -0
  79. package/themes/default/tui.js +472 -0
  80. package/worker/index.js +6918 -0
  81. package/worker/migrations/0001_init.sql +52 -0
  82. package/worker/migrations/0002_blobs.sql +5 -0
  83. package/worker/migrations/0003_projects.sql +31 -0
  84. package/worker/migrations/0004_page_data_blob.sql +19 -0
@@ -0,0 +1,251 @@
1
+ # Layouts
2
+
3
+ ## Contents
4
+
5
+ - title
6
+ - section
7
+ - statement
8
+ - bullets
9
+ - figure
10
+ - figure-two
11
+ - chart
12
+ - table
13
+ - code
14
+ - two-col
15
+ - quote
16
+ - big-number
17
+
18
+ One markup example per layout, all inside `<main class="deck">`.
19
+ Every slide carries `slide` plus one layout class, and the layout class goes second.
20
+ Nothing sits above a title: no kicker, no label, no number.
21
+
22
+ A sparse slide (`title`, `section`, `statement`, `quote`, `big-number`, `bullets`) is centred a little above the middle of the 1280x720 canvas, so the air sits under the block instead of closing it in.
23
+ A slide with a figure starts at the top and lets the figure take the rest.
24
+
25
+ ## title
26
+
27
+ The opener and the closer.
28
+ A display title, one line of subtitle and one plain line of who, where and when.
29
+
30
+ ```html
31
+ <section class="slide title">
32
+ <h1>A cache that survives a restart</h1>
33
+ <p class="subtitle">What we changed and what it cost us.</p>
34
+ <p class="byline">Dana Ruiz, cache group, lab meeting, 14 March</p>
35
+ <aside class="notes"><p>Who I am and what you get out of this.</p></aside>
36
+ </section>
37
+ ```
38
+
39
+ ## section
40
+
41
+ A divider.
42
+ One title and at most one line under it.
43
+
44
+ ```html
45
+ <section class="slide section">
46
+ <h2>The write path</h2>
47
+ <p>Where the last quarter went.</p>
48
+ <aside class="notes"><p>Transition. Do not read the heading out.</p></aside>
49
+ </section>
50
+ ```
51
+
52
+ ## statement
53
+
54
+ The claim of the slide as one sentence.
55
+ Use it when the sentence is the argument and there is nothing to show yet.
56
+
57
+ ```html
58
+ <section class="slide statement">
59
+ <p>A restart is not an outage if the log is already on disk.</p>
60
+ <aside class="notes"><p>Give it a moment before you move on.</p></aside>
61
+ </section>
62
+ ```
63
+
64
+ ## bullets
65
+
66
+ A list of points, one press each.
67
+ No nesting and no more than five items, because the theme sets a point at 28px with a 1.4 line, which is the size a room reads from the back.
68
+
69
+ ```html
70
+ <section class="slide bullets">
71
+ <h2>Three things broke</h2>
72
+ <ul>
73
+ <li class="step">The log doubled on a retry.</li>
74
+ <li class="step">A stale entry survived the flush.</li>
75
+ <li class="step">The counter drifted under load.</li>
76
+ </ul>
77
+ <aside class="notes"><p>Pause after the second one. That is the real bug.</p></aside>
78
+ </section>
79
+ ```
80
+
81
+ ## figure
82
+
83
+ One diagram or image, as large as the canvas allows, with a caption that says what to look at.
84
+ The title states the takeaway, so the room knows what the figure is evidence for.
85
+
86
+ ```html
87
+ <section class="slide figure">
88
+ <h2>The log is appended before the map is updated</h2>
89
+ <figure>
90
+ <img src="write-path.svg" alt="The log is appended before the map is updated, so a crash replays the tail.">
91
+ <figcaption>A crash after step 2 replays the tail and loses nothing.</figcaption>
92
+ </figure>
93
+ <aside class="notes"><p>Trace the arrows left to right. Do not read the text out.</p></aside>
94
+ </section>
95
+ ```
96
+
97
+ An inline `<svg>` works in the same slot.
98
+ Take its colours from tokens so both modes read the same file.
99
+
100
+ ## figure-two
101
+
102
+ Two diagrams side by side, each with a short label under it in the body font.
103
+ Use it for a before and after, or for two versions of one mechanism.
104
+
105
+ ```html
106
+ <section class="slide figure-two">
107
+ <h2>The same log, one flush later</h2>
108
+ <div class="pair">
109
+ <figure>
110
+ <svg viewBox="0 0 460 270" role="img" aria-label="One writer and one lock.">
111
+ <!-- rect and text in tokens: style="fill: var(--layer-01)" -->
112
+ </svg>
113
+ <figcaption>One writer, one lock.</figcaption>
114
+ </figure>
115
+ <figure>
116
+ <svg viewBox="0 0 460 270" role="img" aria-label="Two writers and an append log.">
117
+ <!-- rect and text in tokens: style="stroke: var(--accent)" -->
118
+ </svg>
119
+ <figcaption>Two writers, one append log.</figcaption>
120
+ </figure>
121
+ </div>
122
+ <aside class="notes"><p>Point at the second diagram last.</p></aside>
123
+ </section>
124
+ ```
125
+
126
+ ## chart
127
+
128
+ An inline SVG chart.
129
+ Label each series at the end of its line or above its bar, so there is no legend box and no looking back and forth.
130
+ One series is drawn in `--accent`, the same blue as a link, because one series is not a category.
131
+ Two or more series take `--chart-1`, `--chart-2` and so on, in order.
132
+ That order holds in every figure in the deck.
133
+ The numbers are `--fg`, the axis is `--border-strong` and the caption is `--muted`.
134
+
135
+ ```html
136
+ <section class="slide chart">
137
+ <h2>A republish uploads a fraction of the first one</h2>
138
+ <figure>
139
+ <svg viewBox="0 0 1088 430" role="img" aria-label="Bar chart of megabytes uploaded per publish: 120, 40, 18, 9, 6 and 6.">
140
+ <g style="fill: var(--accent)">
141
+ <rect x="40" y="80" width="88" height="300"></rect>
142
+ </g>
143
+ <text x="84" y="62" style="font-size: 22px; fill: var(--fg); text-anchor: middle">120</text>
144
+ <line x1="40" y1="380" x2="1048" y2="380" style="stroke: var(--border-strong)"></line>
145
+ </svg>
146
+ <figcaption>Example data, not a measurement.</figcaption>
147
+ </figure>
148
+ <aside class="notes"><p>The shape is the point. The numbers are illustrative.</p></aside>
149
+ </section>
150
+ ```
151
+
152
+ Keep gridlines light or leave them out, and never put a box around the plot.
153
+ A chart built with a library is fine when it draws the same labels and no legend.
154
+
155
+ ## table
156
+
157
+ A clean data table.
158
+ Numbers go right aligned in a `num-cell` and they stay in Plex Sans with tabular figures.
159
+
160
+ ```html
161
+ <section class="slide table">
162
+ <h2>Every version stays reachable at its own path</h2>
163
+ <div class="table">
164
+ <table>
165
+ <caption>Example data, five publishes of one folder.</caption>
166
+ <thead>
167
+ <tr><th scope="col">Version</th><th scope="col">Label</th><th scope="col" class="num-cell">Uploaded</th></tr>
168
+ </thead>
169
+ <tbody>
170
+ <tr><td>v1</td><td>first draft</td><td class="num-cell">240 KB</td></tr>
171
+ <tr><td>v2</td><td>fix the chart</td><td class="num-cell">18 KB</td></tr>
172
+ </tbody>
173
+ </table>
174
+ </div>
175
+ <aside class="notes"><p>The label is what a reader uses to pick a version.</p></aside>
176
+ </section>
177
+ ```
178
+
179
+ Six rows is the ceiling, and a table with more belongs on a page rather than a slide.
180
+
181
+ ## code
182
+
183
+ One command or one short block, in Plex Mono on `--layer-01`.
184
+ An optional takeaway title sits above it.
185
+
186
+ ```html
187
+ <section class="slide code">
188
+ <h2>Run it</h2>
189
+ <pre><code>rshow publish ./lab-talk \
190
+ --slug lab-talk \
191
+ --label "first draft"</code></pre>
192
+ <p class="source">The label is what changed, and it shows in the version list.</p>
193
+ <aside class="notes"><p>Point at the label last. Never put the token on the line.</p></aside>
194
+ </section>
195
+ ```
196
+
197
+ ## two-col
198
+
199
+ Two blocks of text with a plain heading each.
200
+ Use it for a comparison, a cause and an effect or a claim and its caveat.
201
+
202
+ ```html
203
+ <section class="slide two-col">
204
+ <h2>Before and after</h2>
205
+ <div class="col">
206
+ <h3>Before</h3>
207
+ <ul>
208
+ <li>One writer, one lock.</li>
209
+ <li>Full flush on every commit.</li>
210
+ </ul>
211
+ </div>
212
+ <div class="col">
213
+ <h3>After</h3>
214
+ <ul>
215
+ <li>Two writers, a log.</li>
216
+ <li>Flush on the group boundary.</li>
217
+ </ul>
218
+ </div>
219
+ <aside class="notes"><p>Point at the second column last.</p></aside>
220
+ </section>
221
+ ```
222
+
223
+ ## quote
224
+
225
+ One sentence and who said it.
226
+ Use it once in a deck, and never with a giant quote mark.
227
+
228
+ ```html
229
+ <section class="slide quote">
230
+ <blockquote>A restart is not an outage if the log is already on disk.</blockquote>
231
+ <cite>our postmortem, item 4</cite>
232
+ <aside class="notes"><p>Stop talking for a moment after this one.</p></aside>
233
+ </section>
234
+ ```
235
+
236
+ ## big-number
237
+
238
+ One number and the sentence that says what it means.
239
+ The value is a short statement with the figure inside it, never a bare digit, because a digit on a slide says nothing on its own.
240
+ The unit belongs in the statement and the source goes under it.
241
+
242
+ ```html
243
+ <section class="slide big-number">
244
+ <p class="value">5 versions, 1 link</p>
245
+ <p class="caption">Every publish adds a version and the link in the invitation keeps working.</p>
246
+ <p class="source">Example data, not a measurement. Count your own folder before the talk.</p>
247
+ <aside class="notes"><p>Say the number once, then say what it buys the room.</p></aside>
248
+ </section>
249
+ ```
250
+
251
+ A number you cannot measure is `[PLACEHOLDER]` until it is real, and a number that stands for an example says so in the source line.