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,436 @@
1
+ /*
2
+ * rshow theme "default": the sketch skin, layer 3.
3
+ *
4
+ * The same kit as the wire skin, drawn by hand. sketches.js loads rough.js at
5
+ * one pinned version and draws a rough outline behind every wf-* element, so a
6
+ * box looks like a box somebody sketched rather than a box a browser drew.
7
+ *
8
+ * This file holds the geometry and the type; the pencil is in sketch.js. The
9
+ * hand is a system stack, so nothing new is fetched for the type: Comic Sans
10
+ * MS on Windows and on macOS with Office, Chalkboard on macOS, Segoe Print on
11
+ * Windows, and a cursive fallback. It is set as --mk-hand and read as --mk-font
12
+ * for the same reason every other screen colour is a token: a skin should be
13
+ * one block of values.
14
+ *
15
+ * If rough.js does not load, sketch.js swaps the skin back to wire, so a reader
16
+ * never gets a half drawn screen.
17
+ */
18
+
19
+ .mockup[data-skin="sketch"] {
20
+ --mk-hand: "Comic Sans MS", "Chalkboard", "Segoe Print", cursive;
21
+ --mk-bg: #ffffff;
22
+ --mk-fg: #2b2b2b;
23
+ --mk-muted: #6b6b6b;
24
+ --mk-line: #3a3a3a;
25
+ --mk-fill: transparent;
26
+ --mk-accent: #1f4fd8;
27
+ --mk-radius: 0;
28
+ --mk-font: var(--mk-hand);
29
+ --mk-size: 15px;
30
+ --mk-gap: 12px;
31
+ --mk-pad: 20px;
32
+ --mk-line-h: 20px;
33
+ }
34
+
35
+ .mockup[data-skin="sketch"] .mk-screen {
36
+ /* The pencil sits under the content, so the screen is its own stacking
37
+ context and the rough layer can take z-index -1. */
38
+ isolation: isolate;
39
+ color: var(--mk-fg);
40
+ background: var(--mk-bg);
41
+ }
42
+
43
+ .mockup[data-skin="sketch"] .mk-rough {
44
+ position: absolute;
45
+ inset: 0;
46
+ z-index: -1;
47
+ width: 100%;
48
+ height: 100%;
49
+ overflow: visible;
50
+ pointer-events: none;
51
+ }
52
+
53
+ /* --------------------------------------------------------------- layout -- */
54
+
55
+ .mockup[data-skin="sketch"] .wf-row {
56
+ display: flex;
57
+ align-items: center;
58
+ gap: var(--mk-gap);
59
+ }
60
+
61
+ .mockup[data-skin="sketch"] .wf-col {
62
+ display: flex;
63
+ flex-direction: column;
64
+ gap: var(--mk-gap);
65
+ }
66
+
67
+ .mockup[data-skin="sketch"] .wf-row.wf-shell {
68
+ align-items: stretch;
69
+ }
70
+
71
+ .mockup[data-skin="sketch"] .wf-row.wf-top {
72
+ align-items: flex-start;
73
+ }
74
+
75
+ .mockup[data-skin="sketch"] .wf-spacer,
76
+ .mockup[data-skin="sketch"] .wf-grow {
77
+ flex: 1 1 auto;
78
+ min-width: 0;
79
+ }
80
+
81
+ /* ----------------------------------------------------------------- type -- */
82
+
83
+ .mockup[data-skin="sketch"] .wf-heading {
84
+ display: block;
85
+ width: 44%;
86
+ max-width: 320px;
87
+ height: 18px;
88
+ }
89
+
90
+ .mockup[data-skin="sketch"] .wf-heading:not(:empty) {
91
+ width: auto;
92
+ max-width: none;
93
+ height: auto;
94
+ font-size: 24px;
95
+ font-weight: 400;
96
+ line-height: 1.3;
97
+ }
98
+
99
+ .mockup[data-skin="sketch"] .wf-text {
100
+ --mk-lines: 2;
101
+ display: block;
102
+ height: calc(var(--mk-lines) * var(--mk-line-h));
103
+ }
104
+
105
+ .mockup[data-skin="sketch"] .wf-text[data-lines="1"] {
106
+ --mk-lines: 1;
107
+ }
108
+
109
+ .mockup[data-skin="sketch"] .wf-text[data-lines="2"] {
110
+ --mk-lines: 2;
111
+ }
112
+
113
+ .mockup[data-skin="sketch"] .wf-text[data-lines="3"] {
114
+ --mk-lines: 3;
115
+ }
116
+
117
+ .mockup[data-skin="sketch"] .wf-text[data-lines="4"] {
118
+ --mk-lines: 4;
119
+ }
120
+
121
+ .mockup[data-skin="sketch"] .wf-text[data-lines="5"] {
122
+ --mk-lines: 5;
123
+ }
124
+
125
+ .mockup[data-skin="sketch"] .wf-text[data-lines="6"] {
126
+ --mk-lines: 6;
127
+ }
128
+
129
+ .mockup[data-skin="sketch"] .wf-text[data-lines="7"] {
130
+ --mk-lines: 7;
131
+ }
132
+
133
+ .mockup[data-skin="sketch"] .wf-text[data-lines="8"] {
134
+ --mk-lines: 8;
135
+ }
136
+
137
+ .mockup[data-skin="sketch"] .wf-text:not(:empty) {
138
+ height: auto;
139
+ font-size: 14px;
140
+ line-height: 1.5;
141
+ color: var(--mk-muted);
142
+ }
143
+
144
+ /* --------------------------------------------------------------- blocks -- */
145
+
146
+ .mockup[data-skin="sketch"] .wf-box {
147
+ min-height: 48px;
148
+ padding: 12px;
149
+ }
150
+
151
+ .mockup[data-skin="sketch"] .wf-card {
152
+ display: flex;
153
+ flex-direction: column;
154
+ gap: var(--mk-gap);
155
+ padding: 16px;
156
+ }
157
+
158
+ .mockup[data-skin="sketch"] .wf-image {
159
+ min-height: 120px;
160
+ }
161
+
162
+ .mockup[data-skin="sketch"] .wf-avatar {
163
+ flex: 0 0 auto;
164
+ width: 40px;
165
+ height: 40px;
166
+ border-radius: 50%;
167
+ }
168
+
169
+ .mockup[data-skin="sketch"] .wf-avatar[data-size="sm"] {
170
+ width: 28px;
171
+ height: 28px;
172
+ }
173
+
174
+ .mockup[data-skin="sketch"] .wf-avatar[data-size="lg"] {
175
+ width: 56px;
176
+ height: 56px;
177
+ }
178
+
179
+ .mockup[data-skin="sketch"] .wf-icon {
180
+ display: inline-block;
181
+ flex: 0 0 auto;
182
+ width: 16px;
183
+ height: 16px;
184
+ }
185
+
186
+ .mockup[data-skin="sketch"] .wf-icon[data-size="lg"] {
187
+ width: 24px;
188
+ height: 24px;
189
+ }
190
+
191
+ /* ------------------------------------------------------------- controls -- */
192
+
193
+ .mockup[data-skin="sketch"] .wf-button {
194
+ display: inline-flex;
195
+ align-items: center;
196
+ justify-content: center;
197
+ gap: 6px;
198
+ height: 36px;
199
+ padding: 0 16px;
200
+ font: inherit;
201
+ font-size: 14px;
202
+ color: var(--mk-fg);
203
+ text-align: center;
204
+ text-decoration: none;
205
+ white-space: nowrap;
206
+ }
207
+
208
+ .mockup[data-skin="sketch"] .wf-button.primary {
209
+ color: var(--mk-accent);
210
+ }
211
+
212
+ .mockup[data-skin="sketch"] .wf-button.ghost {
213
+ color: var(--mk-muted);
214
+ }
215
+
216
+ .mockup[data-skin="sketch"] .wf-input {
217
+ position: relative;
218
+ display: flex;
219
+ align-items: center;
220
+ min-height: 42px;
221
+ padding: 0 12px;
222
+ font-size: 14px;
223
+ color: var(--mk-muted);
224
+ }
225
+
226
+ .mockup[data-skin="sketch"] .wf-input[data-label]::before {
227
+ content: attr(data-label);
228
+ }
229
+
230
+ .mockup[data-skin="sketch"] .wf-input[data-label]::before,
231
+ .mockup[data-skin="sketch"] .wf-label {
232
+ position: absolute;
233
+ top: -9px;
234
+ left: 10px;
235
+ padding: 0 4px;
236
+ font-size: 12px;
237
+ line-height: 1.4;
238
+ color: var(--mk-muted);
239
+ background: var(--mk-bg);
240
+ }
241
+
242
+ .mockup[data-skin="sketch"] .wf-select {
243
+ position: relative;
244
+ display: flex;
245
+ align-items: center;
246
+ min-height: 42px;
247
+ padding: 0 32px 0 12px;
248
+ font-size: 14px;
249
+ color: var(--mk-fg);
250
+ }
251
+
252
+ .mockup[data-skin="sketch"] .wf-select::after {
253
+ content: "";
254
+ position: absolute;
255
+ top: 50%;
256
+ right: 12px;
257
+ width: 0;
258
+ height: 0;
259
+ margin-top: -2px;
260
+ border-top: 5px solid var(--mk-fg);
261
+ border-right: 4px solid transparent;
262
+ border-left: 4px solid transparent;
263
+ }
264
+
265
+ .mockup[data-skin="sketch"] .wf-checkbox {
266
+ position: relative;
267
+ display: inline-block;
268
+ flex: 0 0 auto;
269
+ width: 18px;
270
+ height: 18px;
271
+ }
272
+
273
+ .mockup[data-skin="sketch"] .wf-checkbox[data-checked="true"]::after {
274
+ content: "";
275
+ position: absolute;
276
+ top: 1px;
277
+ left: 5px;
278
+ width: 6px;
279
+ height: 10px;
280
+ border: solid var(--mk-accent);
281
+ border-width: 0 2px 2px 0;
282
+ transform: rotate(45deg);
283
+ }
284
+
285
+ .mockup[data-skin="sketch"] .wf-toggle {
286
+ position: relative;
287
+ display: inline-block;
288
+ flex: 0 0 auto;
289
+ width: 38px;
290
+ height: 22px;
291
+ }
292
+
293
+ .mockup[data-skin="sketch"] .wf-toggle::after {
294
+ content: "";
295
+ position: absolute;
296
+ top: 4px;
297
+ left: 4px;
298
+ width: 14px;
299
+ height: 14px;
300
+ background: var(--mk-bg);
301
+ border: 1px solid var(--mk-line);
302
+ border-radius: 50%;
303
+ }
304
+
305
+ .mockup[data-skin="sketch"] .wf-toggle.on::after {
306
+ left: 20px;
307
+ }
308
+
309
+ .mockup[data-skin="sketch"] .wf-tabs {
310
+ display: flex;
311
+ align-items: center;
312
+ gap: 22px;
313
+ }
314
+
315
+ .mockup[data-skin="sketch"] .wf-tabs > * {
316
+ padding: 8px 0;
317
+ font-size: 14px;
318
+ color: var(--mk-muted);
319
+ white-space: nowrap;
320
+ }
321
+
322
+ .mockup[data-skin="sketch"] .wf-tabs > .is-active,
323
+ .mockup[data-skin="sketch"] .wf-tabs > [aria-selected="true"] {
324
+ color: var(--mk-fg);
325
+ border-bottom: 2px solid var(--mk-accent);
326
+ }
327
+
328
+ /* ---------------------------------------------------------------- shell -- */
329
+
330
+ .mockup[data-skin="sketch"] .wf-nav {
331
+ display: flex;
332
+ align-items: center;
333
+ gap: 16px;
334
+ min-height: 58px;
335
+ padding: 0 20px;
336
+ }
337
+
338
+ .mockup[data-skin="sketch"] .wf-sidebar {
339
+ display: flex;
340
+ flex: 0 0 auto;
341
+ flex-direction: column;
342
+ gap: 8px;
343
+ width: 220px;
344
+ padding: 16px;
345
+ }
346
+
347
+ /* ----------------------------------------------------------------- data -- */
348
+
349
+ .mockup[data-skin="sketch"] .wf-table {
350
+ height: calc(var(--mk-rows, 4) * 36px);
351
+ }
352
+
353
+ .mockup[data-skin="sketch"] .wf-table[data-rows="1"] {
354
+ --mk-rows: 1;
355
+ }
356
+
357
+ .mockup[data-skin="sketch"] .wf-table[data-rows="2"] {
358
+ --mk-rows: 2;
359
+ }
360
+
361
+ .mockup[data-skin="sketch"] .wf-table[data-rows="3"] {
362
+ --mk-rows: 3;
363
+ }
364
+
365
+ .mockup[data-skin="sketch"] .wf-table[data-rows="4"] {
366
+ --mk-rows: 4;
367
+ }
368
+
369
+ .mockup[data-skin="sketch"] .wf-table[data-rows="5"] {
370
+ --mk-rows: 5;
371
+ }
372
+
373
+ .mockup[data-skin="sketch"] .wf-table[data-rows="6"] {
374
+ --mk-rows: 6;
375
+ }
376
+
377
+ .mockup[data-skin="sketch"] .wf-table[data-rows="8"] {
378
+ --mk-rows: 8;
379
+ }
380
+
381
+ .mockup[data-skin="sketch"] .wf-table[data-rows="10"] {
382
+ --mk-rows: 10;
383
+ }
384
+
385
+ .mockup[data-skin="sketch"] .wf-chart {
386
+ display: flex;
387
+ align-items: flex-end;
388
+ gap: 10px;
389
+ height: 160px;
390
+ }
391
+
392
+ .mockup[data-skin="sketch"] .wf-chart > * {
393
+ flex: 1 1 0;
394
+ min-height: 8px;
395
+ }
396
+
397
+ /* -------------------------------------------------------------- overlay -- */
398
+
399
+ .mockup[data-skin="sketch"] .wf-scrim {
400
+ position: absolute;
401
+ inset: 0;
402
+ z-index: 2;
403
+ background: rgba(43, 43, 43, 0.3);
404
+ }
405
+
406
+ .mockup[data-skin="sketch"] .wf-modal {
407
+ position: absolute;
408
+ isolation: isolate;
409
+ top: 50%;
410
+ left: 50%;
411
+ z-index: 3;
412
+ display: flex;
413
+ flex-direction: column;
414
+ gap: 16px;
415
+ width: min(460px, 82%);
416
+ max-height: 84%;
417
+ padding: 20px;
418
+ background: var(--mk-bg);
419
+ transform: translate(-50%, -50%);
420
+ }
421
+
422
+ .mockup[data-skin="sketch"] .wf-toast {
423
+ position: absolute;
424
+ isolation: isolate;
425
+ bottom: 24px;
426
+ left: 50%;
427
+ z-index: 4;
428
+ display: flex;
429
+ align-items: center;
430
+ gap: 10px;
431
+ max-width: 82%;
432
+ padding: 10px 14px;
433
+ font-size: 14px;
434
+ background: var(--mk-bg);
435
+ transform: translateX(-50%);
436
+ }