@davmash/bygone 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@davmash/bygone",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "See how change happened. Visual diff and file history.",
5
5
  "author": "David Mashburn",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/davidmashburn/bygone",
8
8
  "repository": {
9
9
  "type": "git",
10
- "url": "https://github.com/davidmashburn/bygone.git"
10
+ "url": "git+https://github.com/davidmashburn/bygone.git"
11
11
  },
12
12
  "bugs": {
13
13
  "url": "https://github.com/davidmashburn/bygone/issues"
14
14
  },
15
15
  "bin": {
16
- "bygone": "./bin/bygone.js"
16
+ "bygone": "bin/bygone.js"
17
17
  },
18
18
  "main": "./out/standalone-main.js",
19
19
  "files": [
package/web/index.html CHANGED
@@ -18,6 +18,18 @@
18
18
  <div id="tour-stats" class="tour-stats"></div>
19
19
  </div>
20
20
  </header>
21
+ <section class="tour-search" aria-label="Search tour">
22
+ <div class="tour-search-controls">
23
+ <input id="tour-search-input" type="search" placeholder="Search tour" aria-label="Search tour narrative and code">
24
+ <select id="tour-search-scope" aria-label="Tour search scope" title="Tour search scope">
25
+ <option value="all">Narrative + code</option>
26
+ <option value="narrative">Narrative</option>
27
+ <option value="code">Code</option>
28
+ </select>
29
+ </div>
30
+ <div id="tour-search-status" class="tour-search-status" role="status" aria-live="polite"></div>
31
+ <div id="tour-search-results" class="tour-search-results" role="listbox"></div>
32
+ </section>
21
33
  <div class="tour-rail-sections">
22
34
  <section class="tour-rail-section">
23
35
  <header class="tour-rail-heading">
@@ -66,6 +78,7 @@
66
78
  </div>
67
79
  </div>
68
80
  </section>
81
+ <div id="tour-narrative-resizer" class="tour-narrative-resizer" role="separator" aria-label="Resize tour header" aria-orientation="horizontal" aria-valuemin="180" tabindex="0"></div>
69
82
  <div class="web-toolbar">
70
83
  <div class="web-toolbar-group">
71
84
  <button id="web-compare-test" type="button" title="Compare sample files">Compare Test Files</button>
package/web/presenter.css CHANGED
@@ -23,6 +23,7 @@
23
23
  border-right: 1px solid var(--tour-border);
24
24
  background: var(--tour-surface);
25
25
  box-shadow: 18px 0 45px rgba(0, 0, 0, 0.22);
26
+ font: 12px var(--tour-body-font);
26
27
  }
27
28
 
28
29
  .tour-shell[hidden] {
@@ -130,7 +131,6 @@ body.tour-mode.tour-discussion #container {
130
131
  display: inline-block;
131
132
  margin-bottom: 10px;
132
133
  color: #bcb5ff;
133
- font-size: 12px;
134
134
  text-decoration: none;
135
135
  }
136
136
 
@@ -144,7 +144,6 @@ body.tour-mode.tour-discussion #container {
144
144
  gap: 0.5ch;
145
145
  align-items: baseline;
146
146
  color: var(--tour-muted);
147
- font-size: 11px;
148
147
  line-height: 1.55;
149
148
  }
150
149
 
@@ -159,6 +158,78 @@ body.tour-mode.tour-discussion #container {
159
158
  white-space: nowrap;
160
159
  }
161
160
 
161
+ .tour-search {
162
+ padding: 10px 12px;
163
+ border-bottom: 1px solid var(--tour-border);
164
+ background: rgba(0, 0, 0, 0.12);
165
+ }
166
+
167
+ .tour-search-controls {
168
+ display: grid;
169
+ grid-template-columns: minmax(0, 1fr) auto;
170
+ gap: 6px;
171
+ }
172
+
173
+ .tour-search input,
174
+ .tour-search select {
175
+ min-width: 0;
176
+ box-sizing: border-box;
177
+ padding: 6px 8px;
178
+ color: #f5f6fb;
179
+ border: 1px solid var(--tour-border);
180
+ border-radius: 5px;
181
+ background: rgba(255, 255, 255, 0.055);
182
+ font: inherit;
183
+ }
184
+
185
+ .tour-search input:focus,
186
+ .tour-search select:focus {
187
+ border-color: rgba(169, 159, 255, 0.7);
188
+ outline: none;
189
+ }
190
+
191
+ .tour-search-status {
192
+ min-height: 16px;
193
+ padding: 5px 2px 0;
194
+ color: var(--tour-faint);
195
+ }
196
+
197
+ .tour-search-results {
198
+ display: grid;
199
+ max-height: min(230px, 28vh);
200
+ gap: 2px;
201
+ overflow: auto;
202
+ }
203
+
204
+ .tour-search-result {
205
+ display: grid;
206
+ min-width: 0;
207
+ padding: 6px 8px;
208
+ color: #e5e7f0;
209
+ border: 1px solid transparent;
210
+ border-radius: 5px;
211
+ background: transparent;
212
+ text-align: left;
213
+ cursor: pointer;
214
+ }
215
+
216
+ .tour-search-result:hover,
217
+ .tour-search-result:focus-visible {
218
+ border-color: rgba(169, 159, 255, 0.28);
219
+ background: rgba(255, 255, 255, 0.055);
220
+ outline: none;
221
+ }
222
+
223
+ .tour-search-location,
224
+ .tour-search-preview {
225
+ overflow: hidden;
226
+ text-overflow: ellipsis;
227
+ white-space: nowrap;
228
+ }
229
+
230
+ .tour-search-location { color: #fff; font-weight: 650; }
231
+ .tour-search-preview { margin-top: 2px; color: var(--tour-muted); font-family: var(--vscode-editor-font-family, monospace); }
232
+
162
233
  .tour-narrative {
163
234
  position: fixed;
164
235
  top: 0;
@@ -175,13 +246,36 @@ body.tour-mode.tour-discussion #container {
175
246
  border-bottom: 1px solid var(--tour-border);
176
247
  background: #151821;
177
248
  scrollbar-gutter: stable;
178
- font-family: var(--tour-body-font);
249
+ font: 12px var(--tour-body-font);
179
250
  }
180
251
 
181
252
  .tour-narrative[hidden] {
182
253
  display: none;
183
254
  }
184
255
 
256
+ .tour-narrative-resizer {
257
+ position: fixed;
258
+ z-index: 120;
259
+ top: calc(var(--tour-narrative-height) - 4px);
260
+ right: 0;
261
+ left: var(--tour-rail-width);
262
+ height: 8px;
263
+ cursor: row-resize;
264
+ touch-action: none;
265
+ }
266
+
267
+ .tour-narrative-resizer:hover,
268
+ .tour-narrative-resizer:focus-visible,
269
+ body.is-resizing-tour-narrative .tour-narrative-resizer {
270
+ background: rgba(169, 159, 255, 0.75);
271
+ outline: none;
272
+ }
273
+
274
+ body:not(.tour-mode) .tour-narrative-resizer,
275
+ body.tour-discussion .tour-narrative-resizer {
276
+ display: none;
277
+ }
278
+
185
279
  .tour-narrative-nav {
186
280
  display: grid;
187
281
  grid-template-columns: auto minmax(0, 1fr) auto;
@@ -229,7 +323,6 @@ body.tour-mode.tour-discussion #container {
229
323
  min-width: 0;
230
324
  color: var(--tour-muted);
231
325
  font-family: var(--vscode-editor-font-family, monospace);
232
- font-size: 10px;
233
326
  text-align: center;
234
327
  white-space: nowrap;
235
328
  overflow: hidden;
@@ -260,13 +353,12 @@ body.tour-mode.tour-discussion #container {
260
353
  min-height: 30px;
261
354
  padding: 8px 12px 6px 18px;
262
355
  color: var(--tour-muted);
263
- font-size: 10px;
264
356
  font-weight: 750;
265
357
  letter-spacing: 0.09em;
266
358
  text-transform: uppercase;
267
359
  }
268
360
 
269
- .tour-rail-count { color: var(--tour-faint); font: 500 10px var(--vscode-editor-font-family, monospace); letter-spacing: 0; }
361
+ .tour-rail-count { color: var(--tour-faint); font-weight: 500; font-family: var(--vscode-editor-font-family, monospace); letter-spacing: 0; }
270
362
 
271
363
  .tour-return-focus {
272
364
  margin-left: auto;
@@ -276,7 +368,7 @@ body.tour-mode.tour-discussion #container {
276
368
  border-radius: 4px;
277
369
  background: transparent;
278
370
  cursor: pointer;
279
- font: 9px var(--tour-body-font);
371
+ font: inherit;
280
372
  letter-spacing: 0;
281
373
  text-transform: none;
282
374
  }
@@ -320,7 +412,6 @@ body.tour-mode.tour-discussion #container {
320
412
  .tour-file-marker {
321
413
  padding-top: 1px;
322
414
  color: var(--tour-faint);
323
- font-size: 10px;
324
415
  text-align: center;
325
416
  }
326
417
 
@@ -343,13 +434,11 @@ body.tour-mode.tour-discussion #container {
343
434
  .tour-file-path {
344
435
  color: #f5f6fb;
345
436
  font-family: var(--vscode-editor-font-family, monospace);
346
- font-size: 10px;
347
437
  }
348
438
 
349
439
  .tour-file-meta {
350
440
  margin-top: 2px;
351
441
  color: var(--tour-muted);
352
- font-size: 9px;
353
442
  }
354
443
 
355
444
  .tour-file.is-omitted .tour-file-meta { color: #d7aa7b; }
@@ -357,7 +446,6 @@ body.tour-mode.tour-discussion #container {
357
446
  .tour-chapter-title {
358
447
  margin: 15px 10px 7px;
359
448
  color: var(--tour-muted);
360
- font-size: 10px;
361
449
  font-weight: 750;
362
450
  letter-spacing: 0.09em;
363
451
  text-transform: uppercase;
@@ -390,7 +478,6 @@ body.tour-mode.tour-discussion #container {
390
478
  .tour-scene-number {
391
479
  padding-top: 1px;
392
480
  color: var(--tour-muted);
393
- font-size: 10px;
394
481
  }
395
482
 
396
483
  .tour-scene-copy {
@@ -409,7 +496,6 @@ body.tour-mode.tour-discussion #container {
409
496
  .tour-scene-title {
410
497
  margin-bottom: 3px;
411
498
  color: #fff;
412
- font-size: 12px;
413
499
  font-weight: 650;
414
500
  }
415
501
 
@@ -417,12 +503,10 @@ body.tour-mode.tour-discussion #container {
417
503
  margin-bottom: 3px;
418
504
  color: var(--tour-muted);
419
505
  font-family: var(--vscode-editor-font-family, monospace);
420
- font-size: 10px;
421
506
  }
422
507
 
423
508
  .tour-scene-note {
424
509
  color: var(--tour-muted);
425
- font-size: 10px;
426
510
  }
427
511
 
428
512
  .tour-commits-section {
@@ -439,7 +523,6 @@ body.tour-mode.tour-discussion #container {
439
523
  gap: 8px;
440
524
  margin: 0;
441
525
  color: var(--tour-muted);
442
- font-size: 10px;
443
526
  font-weight: 750;
444
527
  letter-spacing: 0.09em;
445
528
  text-transform: uppercase;
@@ -478,7 +561,6 @@ body.tour-mode.tour-discussion #container {
478
561
 
479
562
  .tour-commits li {
480
563
  color: var(--tour-faint);
481
- font-size: 10px;
482
564
  line-height: 1.35;
483
565
  }
484
566
 
@@ -509,7 +591,6 @@ body.tour-mode.tour-discussion #container {
509
591
  .tour-narrative-chapter {
510
592
  margin-bottom: 5px;
511
593
  color: var(--tour-accent-bright);
512
- font-size: 10px;
513
594
  font-weight: 800;
514
595
  letter-spacing: 0.12em;
515
596
  text-transform: uppercase;
@@ -534,7 +615,6 @@ body.tour-mode.tour-discussion #container {
534
615
  margin: 0 0 9px;
535
616
  padding-left: 18px;
536
617
  color: var(--tour-body);
537
- font-size: 11px;
538
618
  line-height: 1.5;
539
619
  }
540
620
 
@@ -543,7 +623,6 @@ body.tour-mode.tour-discussion #container {
543
623
  flex-wrap: wrap;
544
624
  gap: 0;
545
625
  color: var(--tour-muted);
546
- font-size: 9px;
547
626
  line-height: 1.45;
548
627
  }
549
628
 
@@ -551,7 +630,6 @@ body.tour-mode.tour-discussion #container {
551
630
  margin: 0 8px;
552
631
  color: var(--tour-faint);
553
632
  content: "·";
554
- font-size: 9px;
555
633
  }
556
634
 
557
635
  .tour-narrative-takeaway {
@@ -560,7 +638,6 @@ body.tour-mode.tour-discussion #container {
560
638
  color: var(--tour-body);
561
639
  border-left: 2px solid rgba(128, 117, 255, 0.28);
562
640
  background: rgba(255, 255, 255, 0.015);
563
- font-size: 11px;
564
641
  }
565
642
 
566
643
  .tour-step {
@@ -576,7 +653,7 @@ body.tour-mode.tour-discussion #container {
576
653
  }
577
654
 
578
655
  .tour-step-title { color: #fff; font-size: 13px; font-weight: 750; }
579
- .tour-step-body { margin: 3px 0 0; color: var(--tour-body); font-size: 11px; line-height: 1.45; }
656
+ .tour-step-body { margin: 3px 0 0; color: var(--tour-body); line-height: 1.45; }
580
657
 
581
658
  .tour-connection {
582
659
  margin-top: 7px;
@@ -584,7 +661,6 @@ body.tour-mode.tour-discussion #container {
584
661
  color: var(--tour-faint);
585
662
  border-top: 1px solid rgba(166, 140, 255, 0.2);
586
663
  font-family: var(--vscode-editor-font-family, monospace);
587
- font-size: 9px;
588
664
  }
589
665
 
590
666
  body.tour-discussion .tour-narrative {
@@ -659,7 +735,7 @@ body.tour-discussion .tour-narrative-takeaway {
659
735
  width: 100%;
660
736
  height: var(--tour-rail-height);
661
737
  grid-template-columns: minmax(190px, 0.85fr) minmax(0, 1.15fr);
662
- grid-template-rows: minmax(0, 1fr) auto;
738
+ grid-template-rows: auto minmax(0, 1fr) auto;
663
739
  border-right: 0;
664
740
  border-bottom: 1px solid var(--tour-border);
665
741
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.22);
@@ -674,7 +750,7 @@ body.tour-discussion .tour-narrative-takeaway {
674
750
  }
675
751
 
676
752
  .tour-overview {
677
- grid-row: 1 / span 2;
753
+ grid-row: 1 / span 3;
678
754
  overflow: auto;
679
755
  padding: 16px;
680
756
  border-right: 1px solid var(--tour-border);
@@ -685,14 +761,22 @@ body.tour-discussion .tour-narrative-takeaway {
685
761
  font-size: 17px;
686
762
  }
687
763
 
688
- .tour-rail-sections {
764
+ .tour-search {
689
765
  grid-column: 2;
690
766
  grid-row: 1;
767
+ padding: 7px 8px 4px;
691
768
  }
692
769
 
693
- .tour-commits-section {
770
+ .tour-search-results { max-height: 72px; }
771
+
772
+ .tour-rail-sections {
694
773
  grid-column: 2;
695
774
  grid-row: 2;
775
+ }
776
+
777
+ .tour-commits-section {
778
+ grid-column: 2;
779
+ grid-row: 3;
696
780
  max-height: 72px;
697
781
  }
698
782
 
@@ -702,6 +786,11 @@ body.tour-discussion .tour-narrative-takeaway {
702
786
  padding: 16px 18px;
703
787
  }
704
788
 
789
+ .tour-narrative-resizer {
790
+ top: calc(var(--tour-rail-height) + var(--tour-narrative-height) - 4px);
791
+ left: 0;
792
+ }
793
+
705
794
  body.tour-mode #container {
706
795
  width: 100vw;
707
796
  height: calc(100vh - var(--tour-rail-height) - var(--tour-narrative-height));