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,255 @@
1
+ /*
2
+ * rshow theme "default": tokens
3
+ *
4
+ * The design system is IBM Carbon v11. This theme carries two modes: Carbon
5
+ * "white" (light) and Carbon "g100" (dark). Every value below is copied by
6
+ * hand from the Carbon source; nothing is fetched from Carbon at runtime and no
7
+ * Carbon class is used. The shape of the system is Carbon's: square corners,
8
+ * one thin border per edge, one blue for interactive elements, and a
9
+ * categorical data palette of eight.
10
+ *
11
+ * One theme, two modes, system by default. The light values sit on :root. The
12
+ * dark values appear twice, on purpose: once for the system preference and once
13
+ * for an explicit choice, so a reader can override the system.
14
+ *
15
+ * <html> follow the system
16
+ * <html data-mode="light"> force light
17
+ * <html data-mode="dark"> force dark
18
+ *
19
+ * mode.js sets that attribute from localStorage key "rshow-mode"; the page
20
+ * still works with JavaScript off, because the system preference is the
21
+ * default. Print is always light, so a printed page and a PDF keep one ground.
22
+ *
23
+ * Every declaration in this file is a CSS custom property. The only selectors
24
+ * are :root and :root with a mode attribute, so a page links this file, links
25
+ * deck.css, page.css or report.css and then restyles the whole thing from its
26
+ * own <style>:root{...}</style>.
27
+ *
28
+ * Roles. Each colour has one job and only that job:
29
+ * --bg the ground of a page, a deck slide, a report
30
+ * --bg-shell the area around the deck canvas
31
+ * --layer-01 a filled block inside the ground: code, inset panels
32
+ * --layer-02 a second level, used sparingly
33
+ * --border-subtle a row rule in a table, the lightest line
34
+ * --border-strong an axis line, a diagram outline
35
+ * --fg all body and heading text
36
+ * --muted a caption, a source line, a label beside a number
37
+ * --placeholder decorative only. Never text.
38
+ * --accent a link, a focus ring, a single-series chart, the one line
39
+ * that matters in a figure
40
+ * --support-* a data mark. Never text, because they fail 4.5:1 on white.
41
+ * --chart-1..8 a categorical series, in Carbon order
42
+ *
43
+ * Charts. A figure with one series draws that series in --accent, the same blue
44
+ * as a link, because one series is not a category. A figure with two or more
45
+ * series uses --chart-1, --chart-2 and so on, in order, one per series, and
46
+ * keeps that order across every figure in the document.
47
+ *
48
+ * Contrast of text on a ground (WCAG 2.1 AA, needs 4.5:1):
49
+ * light ground: --fg 18.1:1, --muted 7.8:1, --accent 5.0:1
50
+ * light layer: --fg 16.5:1, --muted 7.1:1, --accent 4.6:1
51
+ * dark ground: --fg 16.5:1, --muted 10.6:1, --accent 7.7:1
52
+ * dark layer: --fg 13.8:1, --muted 8.9:1, --accent 6.4:1
53
+ */
54
+
55
+ :root {
56
+ /* -------------------------------------------------------- colour scheme --
57
+ * "light" or "dark". Tells the browser which way to render scrollbars and
58
+ * form controls. Each mode block below sets it with the rest.
59
+ */
60
+ color-scheme: light;
61
+ --color-scheme: light;
62
+
63
+ /* ----------------------------------------------------- ground, Carbon --
64
+ * Carbon white.
65
+ */
66
+ --bg: #ffffff;
67
+ --bg-shell: #f4f4f4;
68
+ --layer-01: #f4f4f4;
69
+ --layer-02: #ffffff;
70
+ --border-subtle: #e0e0e0;
71
+ --border-strong: #8d8d8d;
72
+ --fg: #161616;
73
+ --muted: #525252;
74
+ --placeholder: #a8a8a8;
75
+ --accent: #0f62fe;
76
+ --focus: #0f62fe;
77
+ --support-error: #da1e28;
78
+ --support-success: #24a148;
79
+ --support-warning: #f1c21b;
80
+
81
+ /* -------------------------------------------------- data, categorical ---
82
+ * Carbon's eight series colours, in Carbon order. Data marks only.
83
+ */
84
+ --chart-1: #6929c4;
85
+ --chart-2: #1192e8;
86
+ --chart-3: #005d5d;
87
+ --chart-4: #9f1853;
88
+ --chart-5: #fa4d56;
89
+ --chart-6: #570408;
90
+ --chart-7: #198038;
91
+ --chart-8: #002d9c;
92
+
93
+ /* ------------------------------------------------------------- fonts --
94
+ * Self hosted, see fonts.css and fonts/OFL.txt. The stacks end in system
95
+ * fonts so the document still reads if the files do not load.
96
+ */
97
+ --font-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
98
+ --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
99
+
100
+ /* ------------------------------------------------------- type scale ---
101
+ * Two scales in one set. The steps up to --text-lg are for running text and
102
+ * labels. The steps from --text-xl up are Carbon's expressive heading sizes
103
+ * 32, 42, 54, 60, 76, used for one idea per slide on a 1280x720 canvas.
104
+ */
105
+ --text-2xs: 14px;
106
+ --text-xs: 16px;
107
+ --text-sm: 18px;
108
+ --text-base: 20px;
109
+ --text-md: 24px;
110
+ --text-lg: 28px;
111
+ --text-xl: 32px;
112
+ --text-2xl: 42px;
113
+ --text-3xl: 54px;
114
+ --text-4xl: 60px;
115
+ --text-5xl: 76px;
116
+
117
+ /* ---------------------------------------------------- line heights ---- */
118
+ --lh-flat: 1;
119
+ --lh-heading: 1.25;
120
+ --lh-list: 1.4;
121
+ --lh-body: 1.45;
122
+ --lh-read: 1.6;
123
+ --lh-code: 1.6;
124
+
125
+ /* --------------------------------------------------------- tracking ---
126
+ * Zero for body and for headings up to 54px. A display line above 54px
127
+ * tightens, because Plex Sans opens up as it grows.
128
+ */
129
+ --tracking-display: -0.02em;
130
+
131
+ /* ----------------------------------------------------------- spacing --
132
+ * Carbon's spacing scale, in full.
133
+ */
134
+ --space-01: 2px;
135
+ --space-02: 4px;
136
+ --space-03: 8px;
137
+ --space-04: 12px;
138
+ --space-05: 16px;
139
+ --space-06: 24px;
140
+ --space-07: 32px;
141
+ --space-08: 40px;
142
+ --space-09: 48px;
143
+ --space-10: 64px;
144
+ --space-11: 80px;
145
+ --space-12: 96px;
146
+ --space-13: 160px;
147
+
148
+ /* ----------------------------------------------------------- shape ----
149
+ * Carbon is square: no radius, no shadow. The tokens stay so a page can
150
+ * soften a corner on purpose.
151
+ */
152
+ --radius: 0;
153
+ --radius-sm: 0;
154
+ --pad-x: var(--space-12);
155
+ --pad-y: var(--space-10);
156
+ }
157
+
158
+ /* ------------------------------------------------------------ dark mode --
159
+ * Carbon g100. Two selectors, one body: the system preference (unless the
160
+ * reader has chosen light) and an explicit choice from mode.js.
161
+ */
162
+ @media (prefers-color-scheme: dark) {
163
+ :root:not([data-mode="light"]) {
164
+ color-scheme: dark;
165
+ --color-scheme: dark;
166
+ --bg: #161616;
167
+ --bg-shell: #262626;
168
+ --layer-01: #262626;
169
+ --layer-02: #393939;
170
+ --border-subtle: #393939;
171
+ --border-strong: #6f6f6f;
172
+ --fg: #f4f4f4;
173
+ --muted: #c6c6c6;
174
+ --placeholder: #6f6f6f;
175
+ --accent: #78a9ff;
176
+ --focus: #ffffff;
177
+ --support-error: #fa4d56;
178
+ --support-success: #42be65;
179
+ --support-warning: #f1c21b;
180
+
181
+ --chart-1: #8a3ffc;
182
+ --chart-2: #33b1ff;
183
+ --chart-3: #007d79;
184
+ --chart-4: #ff7eb6;
185
+ --chart-5: #fa4d56;
186
+ --chart-6: #fff1f1;
187
+ --chart-7: #6fdc8c;
188
+ --chart-8: #4589ff;
189
+ }
190
+ }
191
+
192
+ :root[data-mode="dark"] {
193
+ color-scheme: dark;
194
+ --color-scheme: dark;
195
+ --bg: #161616;
196
+ --bg-shell: #262626;
197
+ --layer-01: #262626;
198
+ --layer-02: #393939;
199
+ --border-subtle: #393939;
200
+ --border-strong: #6f6f6f;
201
+ --fg: #f4f4f4;
202
+ --muted: #c6c6c6;
203
+ --placeholder: #6f6f6f;
204
+ --accent: #78a9ff;
205
+ --focus: #ffffff;
206
+ --support-error: #fa4d56;
207
+ --support-success: #42be65;
208
+ --support-warning: #f1c21b;
209
+
210
+ --chart-1: #8a3ffc;
211
+ --chart-2: #33b1ff;
212
+ --chart-3: #007d79;
213
+ --chart-4: #ff7eb6;
214
+ --chart-5: #fa4d56;
215
+ --chart-6: #fff1f1;
216
+ --chart-7: #6fdc8c;
217
+ --chart-8: #4589ff;
218
+ }
219
+
220
+ /* --------------------------------------------------------------- print --
221
+ * Print is always light: black text on white paper, whichever mode the screen
222
+ * was in. The selectors repeat the mode selectors above so they win on
223
+ * specificity as well as on order.
224
+ */
225
+ @media print {
226
+ :root,
227
+ :root:not([data-mode="light"]),
228
+ :root[data-mode="dark"] {
229
+ color-scheme: light;
230
+ --color-scheme: light;
231
+ --bg: #ffffff;
232
+ --bg-shell: #ffffff;
233
+ --layer-01: #f4f4f4;
234
+ --layer-02: #ffffff;
235
+ --border-subtle: #e0e0e0;
236
+ --border-strong: #161616;
237
+ --fg: #161616;
238
+ --muted: #525252;
239
+ --placeholder: #a8a8a8;
240
+ --accent: #0f62fe;
241
+ --focus: #0f62fe;
242
+ --support-error: #da1e28;
243
+ --support-success: #24a148;
244
+ --support-warning: #f1c21b;
245
+
246
+ --chart-1: #6929c4;
247
+ --chart-2: #1192e8;
248
+ --chart-3: #005d5d;
249
+ --chart-4: #9f1853;
250
+ --chart-5: #fa4d56;
251
+ --chart-6: #570408;
252
+ --chart-7: #198038;
253
+ --chart-8: #002d9c;
254
+ }
255
+ }