termcast 1.3.54 → 1.4.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/dist/action-utils.d.ts.map +1 -1
- package/dist/action-utils.js +17 -132
- package/dist/action-utils.js.map +1 -1
- package/dist/apis/cache.d.ts +8 -30
- package/dist/apis/cache.d.ts.map +1 -1
- package/dist/apis/cache.js +9 -271
- package/dist/apis/cache.js.map +1 -1
- package/dist/apis/clipboard.d.ts +4 -2
- package/dist/apis/clipboard.d.ts.map +1 -1
- package/dist/apis/clipboard.js +18 -31
- package/dist/apis/clipboard.js.map +1 -1
- package/dist/apis/environment.d.ts.map +1 -1
- package/dist/apis/environment.js +14 -49
- package/dist/apis/environment.js.map +1 -1
- package/dist/apis/localstorage.d.ts +7 -12
- package/dist/apis/localstorage.d.ts.map +1 -1
- package/dist/apis/localstorage.js +7 -184
- package/dist/apis/localstorage.js.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +16 -15
- package/dist/app.js.map +1 -1
- package/dist/cli.js +7 -6
- package/dist/cli.js.map +1 -1
- package/dist/components/actions.d.ts.map +1 -1
- package/dist/components/actions.js +13 -2
- package/dist/components/actions.js.map +1 -1
- package/dist/components/extension-preferences.d.ts.map +1 -1
- package/dist/components/extension-preferences.js +7 -8
- package/dist/components/extension-preferences.js.map +1 -1
- package/dist/components/form/file-autocomplete.js +2 -2
- package/dist/components/form/file-autocomplete.js.map +1 -1
- package/dist/components/list.d.ts.map +1 -1
- package/dist/components/list.js +242 -14
- package/dist/components/list.js.map +1 -1
- package/dist/e2e-node.d.ts.map +1 -1
- package/dist/e2e-node.js +5 -4
- package/dist/e2e-node.js.map +1 -1
- package/dist/extensions/dev.d.ts.map +1 -1
- package/dist/extensions/dev.js +5 -2
- package/dist/extensions/dev.js.map +1 -1
- package/dist/globals.d.ts.map +1 -1
- package/dist/globals.js +2 -1
- package/dist/globals.js.map +1 -1
- package/dist/internal/error-handler.d.ts.map +1 -1
- package/dist/internal/error-handler.js +21 -19
- package/dist/internal/error-handler.js.map +1 -1
- package/dist/internal/providers.d.ts.map +1 -1
- package/dist/internal/providers.js +41 -1
- package/dist/internal/providers.js.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +31 -29
- package/dist/logger.js.map +1 -1
- package/dist/platform/browser/cache.d.ts +41 -0
- package/dist/platform/browser/cache.d.ts.map +1 -0
- package/dist/platform/browser/cache.js +262 -0
- package/dist/platform/browser/cache.js.map +1 -0
- package/dist/platform/browser/localstorage.d.ts +20 -0
- package/dist/platform/browser/localstorage.d.ts.map +1 -0
- package/dist/platform/browser/localstorage.js +102 -0
- package/dist/platform/browser/localstorage.js.map +1 -0
- package/dist/platform/browser/runtime.d.ts +51 -0
- package/dist/platform/browser/runtime.d.ts.map +1 -0
- package/dist/platform/browser/runtime.js +164 -0
- package/dist/platform/browser/runtime.js.map +1 -0
- package/dist/platform/bun/sqlite.d.ts +17 -0
- package/dist/platform/bun/sqlite.d.ts.map +1 -0
- package/dist/platform/bun/sqlite.js +6 -0
- package/dist/platform/bun/sqlite.js.map +1 -0
- package/dist/platform/node/cache.d.ts +35 -0
- package/dist/platform/node/cache.d.ts.map +1 -0
- package/dist/platform/node/cache.js +269 -0
- package/dist/platform/node/cache.js.map +1 -0
- package/dist/platform/node/localstorage.d.ts +17 -0
- package/dist/platform/node/localstorage.d.ts.map +1 -0
- package/dist/platform/node/localstorage.js +186 -0
- package/dist/platform/node/localstorage.js.map +1 -0
- package/dist/platform/node/runtime.d.ts +52 -0
- package/dist/platform/node/runtime.d.ts.map +1 -0
- package/dist/platform/node/runtime.js +230 -0
- package/dist/platform/node/runtime.js.map +1 -0
- package/dist/platform/node/sqlite.d.ts +27 -0
- package/dist/platform/node/sqlite.d.ts.map +1 -0
- package/dist/platform/node/sqlite.js +21 -0
- package/dist/platform/node/sqlite.js.map +1 -0
- package/dist/state.d.ts +5 -0
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +6 -28
- package/dist/state.js.map +1 -1
- package/dist/utils/file-system.d.ts.map +1 -1
- package/dist/utils/file-system.js +17 -22
- package/dist/utils/file-system.js.map +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +42 -47
- package/dist/utils.js.map +1 -1
- package/dist/vim-mode.d.ts +40 -0
- package/dist/vim-mode.d.ts.map +1 -0
- package/dist/vim-mode.js +135 -0
- package/dist/vim-mode.js.map +1 -0
- package/fonts/Inconsolata.otf +0 -0
- package/fonts/SIL Open Font License.txt +41 -0
- package/package.json +60 -8
- package/src/action-utils.tsx +27 -124
- package/src/apis/cache.test.ts +1 -1
- package/src/apis/cache.tsx +9 -373
- package/src/apis/clipboard.tsx +29 -38
- package/src/apis/environment.tsx +25 -52
- package/src/apis/localstorage.tsx +8 -214
- package/src/app.tsx +16 -15
- package/src/cli.tsx +14 -15
- package/src/compile.vitest.tsx +2 -2
- package/src/components/actions.tsx +19 -1
- package/src/components/extension-preferences.tsx +7 -8
- package/src/components/form/file-autocomplete.tsx +2 -2
- package/src/components/list.tsx +279 -14
- package/src/e2e-node.tsx +7 -7
- package/src/examples/action-shortcut.vitest.tsx +2 -2
- package/src/examples/actions-context.vitest.tsx +1 -1
- package/src/examples/bar-graph-weekly.vitest.tsx +10 -36
- package/src/examples/detail-metadata-showcase.vitest.tsx +36 -36
- package/src/examples/form-basic.vitest.tsx +21 -17
- package/src/examples/github.vitest.tsx +4 -4
- package/src/examples/graph-bar-chart.vitest.tsx +13 -11
- package/src/examples/graph-polymarket.vitest.tsx +2 -2
- package/src/examples/graph-row.vitest.tsx +66 -66
- package/src/examples/graph-styles.vitest.tsx +12 -12
- package/src/examples/internal/simple-scrollbox.vitest.tsx +14 -48
- package/src/examples/list-detail-metadata.vitest.tsx +5 -5
- package/src/examples/list-fetch-data.vitest.tsx +3 -3
- package/src/examples/list-item-accessories.vitest.tsx +2 -2
- package/src/examples/list-loading-empty-view.vitest.tsx +1 -1
- package/src/examples/list-no-actions.vitest.tsx +2 -2
- package/src/examples/list-scrollbox.vitest.tsx +5 -5
- package/src/examples/list-spacing-mode.vitest.tsx +3 -3
- package/src/examples/list-with-detail.vitest.tsx +68 -68
- package/src/examples/list-with-dropdown.vitest.tsx +5 -5
- package/src/examples/list-with-sections.vitest.tsx +27 -27
- package/src/examples/simple-candle-chart.vitest.tsx +7 -7
- package/src/examples/simple-detail-markdown.vitest.tsx +8 -8
- package/src/examples/simple-detail-table.vitest.tsx +8 -8
- package/src/examples/simple-graph.vitest.tsx +3 -3
- package/src/examples/simple-grid.vitest.tsx +14 -14
- package/src/examples/simple-heatmap.vitest.tsx +1 -1
- package/src/examples/simple-navigation.vitest.tsx +17 -17
- package/src/examples/simple-progress-bar.vitest.tsx +1 -1
- package/src/examples/store.vitest.tsx +1 -1
- package/src/examples/swift-extension.vitest.tsx +2 -2
- package/src/examples/table-edge-cases.vitest.tsx +18 -18
- package/src/examples/toast-action.vitest.tsx +2 -2
- package/src/extensions/dev.tsx +5 -2
- package/src/extensions/dev.vitest.tsx +3 -3
- package/src/globals.ts +2 -1
- package/src/internal/error-handler.tsx +19 -21
- package/src/internal/providers.tsx +39 -0
- package/src/logger.tsx +38 -41
- package/src/platform/browser/cache.ts +327 -0
- package/src/platform/browser/localstorage.ts +119 -0
- package/src/platform/browser/runtime.ts +209 -0
- package/src/platform/bun/sqlite.ts +19 -0
- package/src/platform/node/cache.ts +372 -0
- package/src/platform/node/localstorage.ts +214 -0
- package/src/platform/node/runtime.ts +264 -0
- package/src/platform/node/sqlite.ts +43 -0
- package/src/state.tsx +17 -28
- package/src/utils/file-system.ts +17 -22
- package/src/utils.test.tsx +1 -1
- package/src/utils.tsx +56 -47
- package/src/vim-mode.tsx +153 -0
- package/src/apis/sqlite.ts +0 -14
|
@@ -59,7 +59,7 @@ test('list with sections navigation', async () => {
|
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
|
|
62
|
-
↵ view details ↑↓ navigate ^k actions
|
|
62
|
+
↵ view details ↑↓ navigate ^k actions :vim
|
|
63
63
|
|
|
64
64
|
"
|
|
65
65
|
`)
|
|
@@ -92,7 +92,7 @@ test('list with sections navigation', async () => {
|
|
|
92
92
|
|
|
93
93
|
|
|
94
94
|
|
|
95
|
-
↵ view details ↑↓ navigate ^k actions
|
|
95
|
+
↵ view details ↑↓ navigate ^k actions :vim
|
|
96
96
|
|
|
97
97
|
"
|
|
98
98
|
`)
|
|
@@ -119,7 +119,7 @@ test('list with sections navigation', async () => {
|
|
|
119
119
|
|
|
120
120
|
|
|
121
121
|
|
|
122
|
-
↑↓ navigate ^k actions
|
|
122
|
+
↑↓ navigate ^k actions :vim
|
|
123
123
|
|
|
124
124
|
"
|
|
125
125
|
`)
|
|
@@ -150,7 +150,7 @@ test('list with sections navigation', async () => {
|
|
|
150
150
|
|
|
151
151
|
|
|
152
152
|
|
|
153
|
-
↑↓ navigate ^k actions
|
|
153
|
+
↑↓ navigate ^k actions :vim
|
|
154
154
|
|
|
155
155
|
"
|
|
156
156
|
`)
|
|
@@ -191,7 +191,7 @@ test('list with sections search functionality', async () => {
|
|
|
191
191
|
|
|
192
192
|
|
|
193
193
|
|
|
194
|
-
↵ view details ↑↓ navigate ^k actions
|
|
194
|
+
↵ view details ↑↓ navigate ^k actions :vim
|
|
195
195
|
|
|
196
196
|
|
|
197
197
|
|
|
@@ -227,7 +227,7 @@ test('list with sections search functionality', async () => {
|
|
|
227
227
|
|
|
228
228
|
|
|
229
229
|
|
|
230
|
-
↵ view details ↑↓ navigate ^k actions
|
|
230
|
+
↵ view details ↑↓ navigate ^k actions :vim
|
|
231
231
|
|
|
232
232
|
|
|
233
233
|
|
|
@@ -260,7 +260,7 @@ test('list with sections search functionality', async () => {
|
|
|
260
260
|
|
|
261
261
|
|
|
262
262
|
|
|
263
|
-
↵ view details ↑↓ navigate ^k actions
|
|
263
|
+
↵ view details ↑↓ navigate ^k actions :vim
|
|
264
264
|
|
|
265
265
|
"
|
|
266
266
|
`)
|
|
@@ -290,7 +290,7 @@ test('list with sections search functionality', async () => {
|
|
|
290
290
|
|
|
291
291
|
|
|
292
292
|
|
|
293
|
-
↵ view details ↑↓ navigate ^k actions
|
|
293
|
+
↵ view details ↑↓ navigate ^k actions :vim
|
|
294
294
|
|
|
295
295
|
|
|
296
296
|
|
|
@@ -310,8 +310,8 @@ test('list with sections search functionality', async () => {
|
|
|
310
310
|
|
|
311
311
|
Bread
|
|
312
312
|
|
|
313
|
-
Freshly baked bread from our bakery.
|
|
314
313
|
|
|
314
|
+
Freshly baked bread from our bakery.
|
|
315
315
|
Product Details
|
|
316
316
|
|
|
317
317
|
- Baked fresh daily
|
|
@@ -320,9 +320,9 @@ test('list with sections search functionality', async () => {
|
|
|
320
320
|
- Perfect for sandwiches or toast
|
|
321
321
|
|
|
322
322
|
|
|
323
|
-
|
|
324
323
|
esc go back ^k actions
|
|
325
324
|
|
|
325
|
+
|
|
326
326
|
"
|
|
327
327
|
`)
|
|
328
328
|
}, 10000)
|
|
@@ -346,8 +346,8 @@ test('list click functionality', async () => {
|
|
|
346
346
|
|
|
347
347
|
Banana
|
|
348
348
|
|
|
349
|
-
A yellow tropical fruit that's nutritious and energy-rich.
|
|
350
349
|
|
|
350
|
+
A yellow tropical fruit that's nutritious and energy-rich.
|
|
351
351
|
Benefits
|
|
352
352
|
|
|
353
353
|
- High in potassium
|
|
@@ -355,10 +355,10 @@ test('list click functionality', async () => {
|
|
|
355
355
|
- Aids digestion
|
|
356
356
|
|
|
357
357
|
|
|
358
|
-
|
|
359
358
|
esc go back ^k actions
|
|
360
359
|
|
|
361
360
|
|
|
361
|
+
|
|
362
362
|
"
|
|
363
363
|
`)
|
|
364
364
|
expect(afterClickBanana).toContain('Banana')
|
|
@@ -380,8 +380,8 @@ test('list click functionality', async () => {
|
|
|
380
380
|
|
|
381
381
|
Apple
|
|
382
382
|
|
|
383
|
-
A delicious red fruit that's sweet and crunchy.
|
|
384
383
|
|
|
384
|
+
A delicious red fruit that's sweet and crunchy.
|
|
385
385
|
Nutrition Facts
|
|
386
386
|
|
|
387
387
|
- High in fiber
|
|
@@ -389,10 +389,10 @@ test('list click functionality', async () => {
|
|
|
389
389
|
- Good source of vitamin C
|
|
390
390
|
|
|
391
391
|
|
|
392
|
-
|
|
393
392
|
esc go back ^k actions
|
|
394
393
|
|
|
395
394
|
|
|
395
|
+
|
|
396
396
|
"
|
|
397
397
|
`)
|
|
398
398
|
expect(afterClickApple).toContain('Apple')
|
|
@@ -425,7 +425,7 @@ test('list click functionality', async () => {
|
|
|
425
425
|
|
|
426
426
|
|
|
427
427
|
|
|
428
|
-
↑↓ navigate ^k actions
|
|
428
|
+
↑↓ navigate ^k actions :vim
|
|
429
429
|
|
|
430
430
|
"
|
|
431
431
|
`)
|
|
@@ -469,12 +469,12 @@ test('list actions panel with ctrl+k', async () => {
|
|
|
469
469
|
│ │
|
|
470
470
|
│ Settings │
|
|
471
471
|
│ Change Theme... │
|
|
472
|
+
│ Enable Vim Mode │
|
|
472
473
|
│ Toggle Console Logs │
|
|
473
474
|
│ │
|
|
474
475
|
│ │
|
|
475
476
|
│ │
|
|
476
477
|
│ │
|
|
477
|
-
│ │
|
|
478
478
|
│ ↵ select ↑↓ navigate │"
|
|
479
479
|
`)
|
|
480
480
|
|
|
@@ -497,12 +497,12 @@ test('list actions panel with ctrl+k', async () => {
|
|
|
497
497
|
│ │
|
|
498
498
|
│ Settings │
|
|
499
499
|
│ Change Theme... │
|
|
500
|
+
│ Enable Vim Mode │
|
|
500
501
|
│ Toggle Console Logs │
|
|
501
502
|
│ │
|
|
502
503
|
│ │
|
|
503
504
|
│ │
|
|
504
505
|
│ │
|
|
505
|
-
│ │
|
|
506
506
|
│ ↵ select ↑↓ navigate │"
|
|
507
507
|
`)
|
|
508
508
|
|
|
@@ -579,7 +579,7 @@ test('filtering selects first visible item and navigation works', async () => {
|
|
|
579
579
|
|
|
580
580
|
|
|
581
581
|
|
|
582
|
-
↑↓ navigate ^k actions
|
|
582
|
+
↑↓ navigate ^k actions :vim
|
|
583
583
|
|
|
584
584
|
|
|
585
585
|
|
|
@@ -607,7 +607,7 @@ test('filtering selects first visible item and navigation works', async () => {
|
|
|
607
607
|
|
|
608
608
|
|
|
609
609
|
|
|
610
|
-
↵ view details ↑↓ navigate ^k actions
|
|
610
|
+
↵ view details ↑↓ navigate ^k actions :vim
|
|
611
611
|
|
|
612
612
|
|
|
613
613
|
|
|
@@ -635,7 +635,7 @@ test('filtering selects first visible item and navigation works', async () => {
|
|
|
635
635
|
|
|
636
636
|
|
|
637
637
|
|
|
638
|
-
↵ view details ↑↓ navigate ^k actions
|
|
638
|
+
↵ view details ↑↓ navigate ^k actions :vim
|
|
639
639
|
|
|
640
640
|
|
|
641
641
|
|
|
@@ -663,7 +663,7 @@ test('filtering selects first visible item and navigation works', async () => {
|
|
|
663
663
|
|
|
664
664
|
|
|
665
665
|
|
|
666
|
-
↵ view details ↑↓ navigate ^k actions
|
|
666
|
+
↵ view details ↑↓ navigate ^k actions :vim
|
|
667
667
|
|
|
668
668
|
|
|
669
669
|
|
|
@@ -702,7 +702,7 @@ test('list scrollbox scrolling with sections', async () => {
|
|
|
702
702
|
|
|
703
703
|
|
|
704
704
|
|
|
705
|
-
↵ view details ↑↓ navigate ^k actions
|
|
705
|
+
↵ view details ↑↓ navigate ^k actions :vim
|
|
706
706
|
|
|
707
707
|
"
|
|
708
708
|
`)
|
|
@@ -735,7 +735,7 @@ test('list scrollbox scrolling with sections', async () => {
|
|
|
735
735
|
|
|
736
736
|
|
|
737
737
|
|
|
738
|
-
↑↓ navigate ^k actions
|
|
738
|
+
↑↓ navigate ^k actions :vim
|
|
739
739
|
|
|
740
740
|
"
|
|
741
741
|
`)
|
|
@@ -765,7 +765,7 @@ test('list scrollbox scrolling with sections', async () => {
|
|
|
765
765
|
Bread Freshly baked Today New
|
|
766
766
|
|
|
767
767
|
|
|
768
|
-
↑↓ navigate ^k actions
|
|
768
|
+
↑↓ navigate ^k actions :vim
|
|
769
769
|
|
|
770
770
|
"
|
|
771
771
|
`)
|
|
@@ -797,7 +797,7 @@ test('list scrollbox scrolling with sections', async () => {
|
|
|
797
797
|
›Bread Freshly baked Today New
|
|
798
798
|
|
|
799
799
|
|
|
800
|
-
↵ view details ↑↓ navigate ^k actions
|
|
800
|
+
↵ view details ↑↓ navigate ^k actions :vim
|
|
801
801
|
|
|
802
802
|
"
|
|
803
803
|
`)
|
|
@@ -827,7 +827,7 @@ test('list scrollbox scrolling with sections', async () => {
|
|
|
827
827
|
|
|
828
828
|
|
|
829
829
|
|
|
830
|
-
↵ view details ↑↓ navigate ^k actions
|
|
830
|
+
↵ view details ↑↓ navigate ^k actions :vim
|
|
831
831
|
|
|
832
832
|
"
|
|
833
833
|
`)
|
|
@@ -901,7 +901,7 @@ test('list does not wrap at top boundary', async () => {
|
|
|
901
901
|
|
|
902
902
|
|
|
903
903
|
|
|
904
|
-
↵ view details ↑↓ navigate ^k actions
|
|
904
|
+
↵ view details ↑↓ navigate ^k actions :vim
|
|
905
905
|
|
|
906
906
|
"
|
|
907
907
|
`)
|
|
@@ -58,7 +58,7 @@ test('candle chart renders in list detail with axes', async () => {
|
|
|
58
58
|
│
|
|
59
59
|
│ ────────────────────────────────────────────
|
|
60
60
|
│
|
|
61
|
-
↵ open detail ↑↓ navigate ^k actions
|
|
61
|
+
↵ open detail ↑↓ navigate ^k actions :vi │ BTC-USD Hourly OHLC
|
|
62
62
|
|
|
63
63
|
|
|
64
64
|
"
|
|
@@ -88,13 +88,11 @@ test('push to full-page detail view on Enter', async () => {
|
|
|
88
88
|
|
|
89
89
|
BTC - Bitcoin
|
|
90
90
|
|
|
91
|
-
Category: Store of Value
|
|
92
91
|
|
|
92
|
+
Category: Store of Value
|
|
93
93
|
Price: $67,641
|
|
94
94
|
24h change: -0.2%
|
|
95
|
-
|
|
96
95
|
Mode: candle-only
|
|
97
|
-
|
|
98
96
|
300 hourly candles from Coinbase Exchange, frozen so the example stays deterministic.
|
|
99
97
|
|
|
100
98
|
$74,678│ │
|
|
@@ -107,6 +105,8 @@ test('push to full-page detail view on Enter', async () => {
|
|
|
107
105
|
│ ▌▘▌▌▘▌▖│ ││ │ ▌││▘▌▖│▌▌▖▖▌ ▌▖▖▖▖▖▖▖
|
|
108
106
|
│ ▖▌ │││ ▌▌▘▌▌▌ │▖▖▖ ││ ││ ▌ │▌│▌││▘▘ ││ ▘▘│▘
|
|
109
107
|
$66,197│▖▖▖ │ ▌ ▘▘ │ ▘▌▖ │▌▘ ▘▌▌▌│▖▌▌▖▌ ▘▌▌
|
|
108
|
+
│▘│▌▖ ▖▖▖▌ │▘▌▌▘▌ │▌▘│ ▘▌▌││▌▌
|
|
109
|
+
│ │▌▖▖ ││ ▌││ │││ ▌ ▖▌ ││
|
|
110
110
|
|
|
111
111
|
|
|
112
112
|
esc go back ^k actions ↵ Go Back powered by termcast.app
|
|
@@ -161,7 +161,7 @@ test('candle + line overlay (mixed components)', async () => {
|
|
|
161
161
|
│
|
|
162
162
|
│ Price: $1,971
|
|
163
163
|
│
|
|
164
|
-
↵ open detail ↑↓ navigate ^k actions
|
|
164
|
+
↵ open detail ↑↓ navigate ^k actions :vi │ Change: -0.3%
|
|
165
165
|
|
|
166
166
|
"
|
|
167
167
|
`)
|
|
@@ -206,7 +206,7 @@ test('candle + volume bar chart (mixed components)', async () => {
|
|
|
206
206
|
│
|
|
207
207
|
│ Price: $83.31
|
|
208
208
|
│
|
|
209
|
-
↵ open detail ↑↓ navigate ^k actions
|
|
209
|
+
↵ open detail ↑↓ navigate ^k actions :vi │ Change: -0.4%
|
|
210
210
|
|
|
211
211
|
|
|
212
212
|
|
|
@@ -255,7 +255,7 @@ test('side-by-side candle charts in Row', async () => {
|
|
|
255
255
|
│ Change: -0.2%
|
|
256
256
|
│
|
|
257
257
|
│
|
|
258
|
-
↵ open detail ↑↓ navigate ^k actions
|
|
258
|
+
↵ open detail ↑↓ navigate ^k actions :vi │
|
|
259
259
|
|
|
260
260
|
|
|
261
261
|
|
|
@@ -34,21 +34,20 @@ test('detail renders markdown with headings, lists, links, tables, code and diag
|
|
|
34
34
|
|
|
35
35
|
█
|
|
36
36
|
█
|
|
37
|
-
Architecture Overview
|
|
37
|
+
Architecture Overview █
|
|
38
38
|
|
|
39
|
-
This document describes the system architecture.
|
|
40
39
|
|
|
40
|
+
This document describes the system architecture.
|
|
41
41
|
Components
|
|
42
42
|
|
|
43
|
-
The system has three main components:
|
|
44
43
|
|
|
44
|
+
The system has three main components:
|
|
45
45
|
- Client - handles user interaction
|
|
46
46
|
- Server - processes requests
|
|
47
47
|
- Database - stores data
|
|
48
|
-
|
|
49
|
-
|
|
50
48
|
Links
|
|
51
49
|
|
|
50
|
+
|
|
52
51
|
Check out the GitHub repository for the source code.
|
|
53
52
|
|
|
54
53
|
See the API documentation for more details.
|
|
@@ -59,6 +58,7 @@ test('detail renders markdown with headings, lists, links, tables, code and diag
|
|
|
59
58
|
|
|
60
59
|
Configuration Table
|
|
61
60
|
|
|
61
|
+
|
|
62
62
|
Setting Default Description
|
|
63
63
|
Host localhost Database host address
|
|
64
64
|
Port 5432 Database port number
|
|
@@ -67,12 +67,14 @@ test('detail renders markdown with headings, lists, links, tables, code and diag
|
|
|
67
67
|
|
|
68
68
|
Flow Diagram
|
|
69
69
|
|
|
70
|
+
|
|
70
71
|
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
71
72
|
│ Client │────▶│ Server │────▶│ Database │
|
|
72
73
|
└─────────────┘ └─────────────┘ └─────────────┘
|
|
73
74
|
|
|
74
75
|
Vertical Flow
|
|
75
76
|
|
|
77
|
+
|
|
76
78
|
┌─────────┐
|
|
77
79
|
│ Start │
|
|
78
80
|
└────┬────┘
|
|
@@ -89,12 +91,10 @@ test('detail renders markdown with headings, lists, links, tables, code and diag
|
|
|
89
91
|
|
|
90
92
|
Code Example
|
|
91
93
|
|
|
94
|
+
|
|
92
95
|
interface Config {
|
|
93
96
|
host: string
|
|
94
97
|
port: number
|
|
95
|
-
ssl: boolean
|
|
96
|
-
}
|
|
97
|
-
|
|
98
98
|
|
|
99
99
|
|
|
100
100
|
esc go back ^k actions powered by termcast.app
|
|
@@ -41,8 +41,10 @@ test('markdown tables render with borderless layout', async () => {
|
|
|
41
41
|
|
|
42
42
|
Server Status
|
|
43
43
|
|
|
44
|
+
|
|
44
45
|
Active Services
|
|
45
46
|
|
|
47
|
+
|
|
46
48
|
Service Status Uptime Memory
|
|
47
49
|
API Gateway Running 14d 3h 256MB
|
|
48
50
|
Auth Server Running 14d 3h 128MB
|
|
@@ -51,6 +53,7 @@ test('markdown tables render with borderless layout', async () => {
|
|
|
51
53
|
|
|
52
54
|
Configuration
|
|
53
55
|
|
|
56
|
+
|
|
54
57
|
Key Value Description
|
|
55
58
|
max_connections 1000 Maximum concurrent connections
|
|
56
59
|
timeout_ms 5000 Request timeout in ms
|
|
@@ -60,6 +63,7 @@ test('markdown tables render with borderless layout', async () => {
|
|
|
60
63
|
|
|
61
64
|
The system is operating normally.
|
|
62
65
|
|
|
66
|
+
|
|
63
67
|
Region Latency Endpoint RPS
|
|
64
68
|
us-east-1 12ms /api/auth 1200
|
|
65
69
|
eu-west-1 45ms /api/data 3400
|
|
@@ -80,10 +84,6 @@ test('markdown tables render with borderless layout', async () => {
|
|
|
80
84
|
|
|
81
85
|
|
|
82
86
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
87
|
"
|
|
88
88
|
`)
|
|
89
89
|
|
|
@@ -141,8 +141,10 @@ test('two tables render side by side in a Row', async () => {
|
|
|
141
141
|
|
|
142
142
|
Server Status
|
|
143
143
|
|
|
144
|
+
|
|
144
145
|
Active Services
|
|
145
146
|
|
|
147
|
+
|
|
146
148
|
Service Status Uptime Memory
|
|
147
149
|
API Gateway Running 14d 3h 256MB
|
|
148
150
|
Auth Server Running 14d 3h 128MB
|
|
@@ -151,6 +153,7 @@ test('two tables render side by side in a Row', async () => {
|
|
|
151
153
|
|
|
152
154
|
Configuration
|
|
153
155
|
|
|
156
|
+
|
|
154
157
|
Key Value Description
|
|
155
158
|
max_connections 1000 Maximum concurrent connections
|
|
156
159
|
timeout_ms 5000 Request timeout in ms
|
|
@@ -160,6 +163,7 @@ test('two tables render side by side in a Row', async () => {
|
|
|
160
163
|
|
|
161
164
|
The system is operating normally.
|
|
162
165
|
|
|
166
|
+
|
|
163
167
|
Region Latency Endpoint RPS
|
|
164
168
|
us-east-1 12ms /api/auth 1200
|
|
165
169
|
eu-west-1 45ms /api/data 3400
|
|
@@ -180,10 +184,6 @@ test('two tables render side by side in a Row', async () => {
|
|
|
180
184
|
|
|
181
185
|
|
|
182
186
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
187
|
"
|
|
188
188
|
`)
|
|
189
189
|
|
|
@@ -33,6 +33,7 @@ test('graph renders with braille characters and axis labels', async () => {
|
|
|
33
33
|
|
|
34
34
|
AAPL Stock - 30 Day
|
|
35
35
|
|
|
36
|
+
|
|
36
37
|
Price range: $148.70 - $201.40
|
|
37
38
|
204.0│ ⢀
|
|
38
39
|
│ ⢀⣴⣾⣿
|
|
@@ -55,7 +56,6 @@ test('graph renders with braille characters and axis labels', async () => {
|
|
|
55
56
|
esc go back ^k actions powered by termcast.app
|
|
56
57
|
|
|
57
58
|
|
|
58
|
-
|
|
59
59
|
"
|
|
60
60
|
`)
|
|
61
61
|
|
|
@@ -96,7 +96,8 @@ test('graph renders at different terminal sizes', async () => {
|
|
|
96
96
|
|
|
97
97
|
█
|
|
98
98
|
█
|
|
99
|
-
AAPL Stock - 30 Day
|
|
99
|
+
AAPL Stock - 30 Day ▀
|
|
100
|
+
|
|
100
101
|
|
|
101
102
|
Price range: $148.70 - $201.40
|
|
102
103
|
204.0│ ⢀
|
|
@@ -110,7 +111,6 @@ test('graph renders at different terminal sizes', async () => {
|
|
|
110
111
|
169.3│ ⢀⣾⣦⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
111
112
|
│ ⢀⣦⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
112
113
|
│ ⡄ ⣀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
113
|
-
157.7│ ⣼⣿⣄ ⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
|
|
114
114
|
|
|
115
115
|
|
|
116
116
|
esc go back ^k actions
|
|
@@ -54,7 +54,7 @@ test('grid navigation and display', async () => {
|
|
|
54
54
|
🚀 Rocket
|
|
55
55
|
|
|
56
56
|
|
|
57
|
-
↵ show details ↑↓ navigate ^k actions
|
|
57
|
+
↵ show details ↑↓ navigate ^k actions :vim
|
|
58
58
|
|
|
59
59
|
"
|
|
60
60
|
`)
|
|
@@ -87,7 +87,7 @@ test('grid navigation and display', async () => {
|
|
|
87
87
|
🚀 Rocket
|
|
88
88
|
|
|
89
89
|
|
|
90
|
-
↵ show details ↑↓ navigate ^k actions
|
|
90
|
+
↵ show details ↑↓ navigate ^k actions :vim
|
|
91
91
|
|
|
92
92
|
"
|
|
93
93
|
`)
|
|
@@ -121,7 +121,7 @@ test('grid navigation and display', async () => {
|
|
|
121
121
|
🚀 Rocket
|
|
122
122
|
|
|
123
123
|
|
|
124
|
-
↵ show details ↑↓ navigate ^k actions
|
|
124
|
+
↵ show details ↑↓ navigate ^k actions :vim
|
|
125
125
|
|
|
126
126
|
"
|
|
127
127
|
`)
|
|
@@ -148,12 +148,12 @@ test('grid navigation and display', async () => {
|
|
|
148
148
|
│ │
|
|
149
149
|
│ Settings │
|
|
150
150
|
│ Change Theme... │
|
|
151
|
+
│ Enable Vim Mode │
|
|
151
152
|
│ Toggle Console Logs │
|
|
152
153
|
│ │
|
|
153
154
|
│ │
|
|
154
155
|
│ │
|
|
155
156
|
│ │
|
|
156
|
-
│ │
|
|
157
157
|
│ ↵ select ↑↓ navigate │
|
|
158
158
|
│ │
|
|
159
159
|
╰────────────────────────────────────────────────────────────────╯"
|
|
@@ -187,7 +187,7 @@ test('grid navigation and display', async () => {
|
|
|
187
187
|
🚀 Rocket
|
|
188
188
|
|
|
189
189
|
|
|
190
|
-
↵ show details ↑↓ navigate ^k actions
|
|
190
|
+
↵ show details ↑↓ navigate ^k actions :vim
|
|
191
191
|
|
|
192
192
|
"
|
|
193
193
|
`)
|
|
@@ -231,7 +231,7 @@ test('grid search functionality', async () => {
|
|
|
231
231
|
☀ Sun
|
|
232
232
|
|
|
233
233
|
|
|
234
|
-
↵ show details ↑↓ navigate ^k actions
|
|
234
|
+
↵ show details ↑↓ navigate ^k actions :vim
|
|
235
235
|
|
|
236
236
|
|
|
237
237
|
|
|
@@ -271,7 +271,7 @@ test('grid search functionality', async () => {
|
|
|
271
271
|
☀ Sun
|
|
272
272
|
|
|
273
273
|
|
|
274
|
-
↵ show details ↑↓ navigate ^k actions
|
|
274
|
+
↵ show details ↑↓ navigate ^k actions :vim
|
|
275
275
|
|
|
276
276
|
|
|
277
277
|
|
|
@@ -310,7 +310,7 @@ test('grid search functionality', async () => {
|
|
|
310
310
|
🚀 Rocket
|
|
311
311
|
|
|
312
312
|
|
|
313
|
-
↵ show details ↑↓ navigate ^k actions
|
|
313
|
+
↵ show details ↑↓ navigate ^k actions :vim
|
|
314
314
|
|
|
315
315
|
"
|
|
316
316
|
`)
|
|
@@ -345,7 +345,7 @@ test('grid search functionality', async () => {
|
|
|
345
345
|
☀ Sun
|
|
346
346
|
|
|
347
347
|
|
|
348
|
-
↵ show details ↑↓ navigate ^k actions
|
|
348
|
+
↵ show details ↑↓ navigate ^k actions :vim
|
|
349
349
|
|
|
350
350
|
|
|
351
351
|
|
|
@@ -389,7 +389,7 @@ test('grid item selection and actions', async () => {
|
|
|
389
389
|
🚀 Rocket
|
|
390
390
|
|
|
391
391
|
|
|
392
|
-
↵ show details ↑↓ navigate ^k actions
|
|
392
|
+
↵ show details ↑↓ navigate ^k actions :vim
|
|
393
393
|
|
|
394
394
|
"
|
|
395
395
|
`)
|
|
@@ -422,7 +422,7 @@ test('grid item selection and actions', async () => {
|
|
|
422
422
|
🚀 Rocket
|
|
423
423
|
|
|
424
424
|
|
|
425
|
-
↵ show details ↑↓ navigate ^k actions
|
|
425
|
+
↵ show details ↑↓ navigate ^k actions :vim
|
|
426
426
|
|
|
427
427
|
"
|
|
428
428
|
`)
|
|
@@ -455,7 +455,7 @@ test('grid item selection and actions', async () => {
|
|
|
455
455
|
🚀 Rocket
|
|
456
456
|
|
|
457
457
|
|
|
458
|
-
↵ show details ↑↓ navigate ^k actions
|
|
458
|
+
↵ show details ↑↓ navigate ^k actions :vim
|
|
459
459
|
|
|
460
460
|
"
|
|
461
461
|
`)
|
|
@@ -497,7 +497,7 @@ test('grid mouse interaction', async () => {
|
|
|
497
497
|
🚀 Rocket
|
|
498
498
|
|
|
499
499
|
|
|
500
|
-
↵ show details ↑↓ navigate ^k actions
|
|
500
|
+
↵ show details ↑↓ navigate ^k actions :vim
|
|
501
501
|
|
|
502
502
|
"
|
|
503
503
|
`)
|
|
@@ -539,7 +539,7 @@ test('grid mouse interaction', async () => {
|
|
|
539
539
|
|
|
540
540
|
|
|
541
541
|
|
|
542
|
-
↵ show details ↑↓ navigate ^k actions
|
|
542
|
+
↵ show details ↑↓ navigate ^k actions :vim
|
|
543
543
|
|
|
544
544
|
"
|
|
545
545
|
`)
|
|
@@ -35,6 +35,7 @@ test('renders calendar heatmaps with various color combinations', async () => {
|
|
|
35
35
|
|
|
36
36
|
Calendar Heatmap Color Showcase
|
|
37
37
|
|
|
38
|
+
|
|
38
39
|
Each heatmap demonstrates a different color combination.
|
|
39
40
|
Data has a late-fall gap to show that empty weeks are skipped.
|
|
40
41
|
Last heatmap renders multi-year data to verify width truncation.
|
|
@@ -73,7 +74,6 @@ test('renders calendar heatmaps with various color combinations', async () => {
|
|
|
73
74
|
■ ◼ ◼ ◼ ■ ■ ■ ◼ ◼ ■ ■ ■ ◼ ◼ ◼ ■ ■ ◼ ◼ ◼ ■
|
|
74
75
|
■ ■ ◼ ◼ ◼ ■ ■ ■ ◼ ◼ ■ ■ ■ ◼ ◼ ◼ ■ ■ ◼ ◼ ◼ ■ Wed
|
|
75
76
|
■ ■ ◼ ◼ ◼ ■ ■ ◼ ◼ ◼ ■ ■ ■ ◼ ◼ ◼ ■ ■ ◼ ◼ ◼ ■
|
|
76
|
-
■ ■ ◼ ◼ ◼ ■ ■ ◼ ◼ ◼ ■ ■ ■ ◼ ◼ ■ ■ ■ ◼ ◼ ◼ ■ Fri
|
|
77
77
|
|
|
78
78
|
|
|
79
79
|
esc go back ^k actions powered by termcast.app
|