termcast 1.3.54 → 1.4.1

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 (170) hide show
  1. package/dist/action-utils.d.ts.map +1 -1
  2. package/dist/action-utils.js +17 -132
  3. package/dist/action-utils.js.map +1 -1
  4. package/dist/apis/cache.d.ts +8 -30
  5. package/dist/apis/cache.d.ts.map +1 -1
  6. package/dist/apis/cache.js +9 -271
  7. package/dist/apis/cache.js.map +1 -1
  8. package/dist/apis/clipboard.d.ts +4 -2
  9. package/dist/apis/clipboard.d.ts.map +1 -1
  10. package/dist/apis/clipboard.js +18 -31
  11. package/dist/apis/clipboard.js.map +1 -1
  12. package/dist/apis/environment.d.ts.map +1 -1
  13. package/dist/apis/environment.js +14 -49
  14. package/dist/apis/environment.js.map +1 -1
  15. package/dist/apis/localstorage.d.ts +7 -12
  16. package/dist/apis/localstorage.d.ts.map +1 -1
  17. package/dist/apis/localstorage.js +7 -184
  18. package/dist/apis/localstorage.js.map +1 -1
  19. package/dist/app.d.ts.map +1 -1
  20. package/dist/app.js +16 -15
  21. package/dist/app.js.map +1 -1
  22. package/dist/cli.js +7 -6
  23. package/dist/cli.js.map +1 -1
  24. package/dist/components/actions.d.ts.map +1 -1
  25. package/dist/components/actions.js +13 -2
  26. package/dist/components/actions.js.map +1 -1
  27. package/dist/components/extension-preferences.d.ts.map +1 -1
  28. package/dist/components/extension-preferences.js +7 -8
  29. package/dist/components/extension-preferences.js.map +1 -1
  30. package/dist/components/form/file-autocomplete.js +2 -2
  31. package/dist/components/form/file-autocomplete.js.map +1 -1
  32. package/dist/components/list.d.ts.map +1 -1
  33. package/dist/components/list.js +242 -14
  34. package/dist/components/list.js.map +1 -1
  35. package/dist/e2e-node.d.ts.map +1 -1
  36. package/dist/e2e-node.js +5 -4
  37. package/dist/e2e-node.js.map +1 -1
  38. package/dist/extensions/dev.d.ts.map +1 -1
  39. package/dist/extensions/dev.js +5 -2
  40. package/dist/extensions/dev.js.map +1 -1
  41. package/dist/globals.d.ts.map +1 -1
  42. package/dist/globals.js +2 -1
  43. package/dist/globals.js.map +1 -1
  44. package/dist/internal/error-handler.d.ts.map +1 -1
  45. package/dist/internal/error-handler.js +21 -19
  46. package/dist/internal/error-handler.js.map +1 -1
  47. package/dist/internal/providers.d.ts.map +1 -1
  48. package/dist/internal/providers.js +41 -1
  49. package/dist/internal/providers.js.map +1 -1
  50. package/dist/logger.d.ts.map +1 -1
  51. package/dist/logger.js +40 -29
  52. package/dist/logger.js.map +1 -1
  53. package/dist/platform/browser/cache.d.ts +41 -0
  54. package/dist/platform/browser/cache.d.ts.map +1 -0
  55. package/dist/platform/browser/cache.js +262 -0
  56. package/dist/platform/browser/cache.js.map +1 -0
  57. package/dist/platform/browser/localstorage.d.ts +20 -0
  58. package/dist/platform/browser/localstorage.d.ts.map +1 -0
  59. package/dist/platform/browser/localstorage.js +102 -0
  60. package/dist/platform/browser/localstorage.js.map +1 -0
  61. package/dist/platform/browser/runtime.d.ts +51 -0
  62. package/dist/platform/browser/runtime.d.ts.map +1 -0
  63. package/dist/platform/browser/runtime.js +164 -0
  64. package/dist/platform/browser/runtime.js.map +1 -0
  65. package/dist/platform/bun/sqlite.d.ts +17 -0
  66. package/dist/platform/bun/sqlite.d.ts.map +1 -0
  67. package/dist/platform/bun/sqlite.js +6 -0
  68. package/dist/platform/bun/sqlite.js.map +1 -0
  69. package/dist/platform/node/cache.d.ts +35 -0
  70. package/dist/platform/node/cache.d.ts.map +1 -0
  71. package/dist/platform/node/cache.js +269 -0
  72. package/dist/platform/node/cache.js.map +1 -0
  73. package/dist/platform/node/localstorage.d.ts +17 -0
  74. package/dist/platform/node/localstorage.d.ts.map +1 -0
  75. package/dist/platform/node/localstorage.js +186 -0
  76. package/dist/platform/node/localstorage.js.map +1 -0
  77. package/dist/platform/node/runtime.d.ts +52 -0
  78. package/dist/platform/node/runtime.d.ts.map +1 -0
  79. package/dist/platform/node/runtime.js +230 -0
  80. package/dist/platform/node/runtime.js.map +1 -0
  81. package/dist/platform/node/sqlite.d.ts +27 -0
  82. package/dist/platform/node/sqlite.d.ts.map +1 -0
  83. package/dist/platform/node/sqlite.js +21 -0
  84. package/dist/platform/node/sqlite.js.map +1 -0
  85. package/dist/state.d.ts +5 -0
  86. package/dist/state.d.ts.map +1 -1
  87. package/dist/state.js +6 -28
  88. package/dist/state.js.map +1 -1
  89. package/dist/utils/file-system.d.ts.map +1 -1
  90. package/dist/utils/file-system.js +17 -22
  91. package/dist/utils/file-system.js.map +1 -1
  92. package/dist/utils.d.ts +1 -1
  93. package/dist/utils.d.ts.map +1 -1
  94. package/dist/utils.js +42 -47
  95. package/dist/utils.js.map +1 -1
  96. package/dist/vim-mode.d.ts +40 -0
  97. package/dist/vim-mode.d.ts.map +1 -0
  98. package/dist/vim-mode.js +135 -0
  99. package/dist/vim-mode.js.map +1 -0
  100. package/fonts/Inconsolata.otf +0 -0
  101. package/fonts/SIL Open Font License.txt +41 -0
  102. package/package.json +62 -10
  103. package/src/action-utils.tsx +27 -124
  104. package/src/apis/cache.test.ts +1 -1
  105. package/src/apis/cache.tsx +9 -373
  106. package/src/apis/clipboard.tsx +29 -38
  107. package/src/apis/environment.tsx +25 -52
  108. package/src/apis/localstorage.tsx +8 -214
  109. package/src/app.tsx +16 -15
  110. package/src/cli.tsx +14 -15
  111. package/src/compile.vitest.tsx +2 -2
  112. package/src/components/actions.tsx +19 -1
  113. package/src/components/extension-preferences.tsx +7 -8
  114. package/src/components/form/file-autocomplete.tsx +2 -2
  115. package/src/components/list.tsx +279 -14
  116. package/src/e2e-node.tsx +7 -7
  117. package/src/examples/action-shortcut.vitest.tsx +2 -2
  118. package/src/examples/actions-context.vitest.tsx +1 -1
  119. package/src/examples/bar-graph-weekly.vitest.tsx +10 -36
  120. package/src/examples/detail-metadata-showcase.vitest.tsx +37 -42
  121. package/src/examples/form-basic.vitest.tsx +45 -41
  122. package/src/examples/github.vitest.tsx +4 -4
  123. package/src/examples/graph-bar-chart.vitest.tsx +13 -11
  124. package/src/examples/graph-polymarket.vitest.tsx +2 -2
  125. package/src/examples/graph-row.vitest.tsx +66 -66
  126. package/src/examples/graph-styles.vitest.tsx +12 -12
  127. package/src/examples/internal/simple-scrollbox.vitest.tsx +14 -48
  128. package/src/examples/list-detail-metadata.vitest.tsx +5 -5
  129. package/src/examples/list-fetch-data.vitest.tsx +3 -3
  130. package/src/examples/list-item-accessories.vitest.tsx +2 -2
  131. package/src/examples/list-loading-empty-view.vitest.tsx +1 -1
  132. package/src/examples/list-no-actions.vitest.tsx +2 -2
  133. package/src/examples/list-scrollbox.vitest.tsx +5 -5
  134. package/src/examples/list-spacing-mode.vitest.tsx +3 -3
  135. package/src/examples/list-with-detail.vitest.tsx +68 -68
  136. package/src/examples/list-with-dropdown.vitest.tsx +5 -5
  137. package/src/examples/list-with-sections.vitest.tsx +27 -27
  138. package/src/examples/simple-candle-chart.vitest.tsx +7 -7
  139. package/src/examples/simple-detail-markdown.vitest.tsx +8 -8
  140. package/src/examples/simple-detail-table.vitest.tsx +8 -8
  141. package/src/examples/simple-graph.vitest.tsx +3 -3
  142. package/src/examples/simple-grid.vitest.tsx +14 -14
  143. package/src/examples/simple-heatmap.vitest.tsx +10 -10
  144. package/src/examples/simple-navigation.vitest.tsx +17 -17
  145. package/src/examples/simple-progress-bar.vitest.tsx +1 -1
  146. package/src/examples/store.vitest.tsx +1 -1
  147. package/src/examples/swift-extension.vitest.tsx +2 -2
  148. package/src/examples/table-edge-cases.vitest.tsx +18 -18
  149. package/src/examples/toast-action.vitest.tsx +2 -2
  150. package/src/examples/toast-variations.vitest.tsx +5 -5
  151. package/src/extensions/dev.tsx +5 -2
  152. package/src/extensions/dev.vitest.tsx +3 -3
  153. package/src/globals.ts +2 -1
  154. package/src/internal/error-handler.tsx +19 -21
  155. package/src/internal/providers.tsx +39 -0
  156. package/src/logger.tsx +48 -41
  157. package/src/platform/browser/cache.ts +327 -0
  158. package/src/platform/browser/localstorage.ts +119 -0
  159. package/src/platform/browser/runtime.ts +209 -0
  160. package/src/platform/bun/sqlite.ts +19 -0
  161. package/src/platform/node/cache.ts +372 -0
  162. package/src/platform/node/localstorage.ts +214 -0
  163. package/src/platform/node/runtime.ts +264 -0
  164. package/src/platform/node/sqlite.ts +43 -0
  165. package/src/state.tsx +17 -28
  166. package/src/utils/file-system.ts +17 -22
  167. package/src/utils.test.tsx +1 -1
  168. package/src/utils.tsx +56 -47
  169. package/src/vim-mode.tsx +153 -0
  170. package/src/apis/sqlite.ts +0 -14
@@ -39,28 +39,28 @@ test('list with detail view display and navigation', async () => {
39
39
 
40
40
  ›bulbasaur #001 │ bulbasaur ▲
41
41
  ivysaur #002 │ █
42
- charmander #004 │ Illustration
43
- charmeleon #005 │
42
+ charmander #004 │
43
+ charmeleon #005 │ Illustration
44
44
  squirtle #007 │ Types
45
45
  wartortle #008 │
46
46
  │ Grass / Poison
47
-
48
47
  │ Characteristics
49
48
 
50
49
  │ - Height: 0.7m
51
50
  │ - Weight: 6.9kg
52
-
53
-
54
51
  │ Abilities
55
52
 
56
53
  │ - Chlorophyll
57
54
  │ - Overgrow
58
55
 
59
-
60
56
  │ Types
61
57
 
62
58
  │ Grass
63
59
 
60
+ │ ─────────────────────────────────
61
+
62
+ │ Poison
63
+
64
64
  ↵ toggle detail ↑↓ navigate ^k a │ ───────────────────────────────── ▼
65
65
 
66
66
  "
@@ -81,28 +81,28 @@ test('list with detail view display and navigation', async () => {
81
81
 
82
82
  bulbasaur #001 │ ivysaur ▲
83
83
  ›ivysaur #002 │ █
84
- charmander #004 │ Illustration
85
- charmeleon #005 │
84
+ charmander #004 │
85
+ charmeleon #005 │ Illustration
86
86
  squirtle #007 │ Types
87
87
  wartortle #008 │
88
88
  │ Grass / Poison
89
-
90
89
  │ Characteristics
91
90
 
92
91
  │ - Height: 1m
93
92
  │ - Weight: 13kg
94
-
95
-
96
93
  │ Abilities
97
94
 
98
95
  │ - Chlorophyll
99
96
  │ - Overgrow
100
97
 
101
-
102
98
  │ Types
103
99
 
104
100
  │ Grass
105
101
 
102
+ │ ─────────────────────────────────
103
+
104
+ │ Poison
105
+
106
106
  ↵ toggle detail ↑↓ navigate ^k a │ ───────────────────────────────── ▼
107
107
 
108
108
  "
@@ -121,29 +121,29 @@ test('list with detail view display and navigation', async () => {
121
121
 
122
122
  bulbasaur #001 │ charmander ▲
123
123
  ivysaur #002 │ █
124
- ›charmander #004 │ Illustration
125
- charmeleon #005 │
124
+ ›charmander #004 │
125
+ charmeleon #005 │ Illustration
126
126
  squirtle #007 │ Types
127
127
  wartortle #008 │
128
128
  │ Fire
129
-
130
129
  │ Characteristics
131
130
 
132
131
  │ - Height: 0.6m
133
132
  │ - Weight: 8.5kg
134
-
135
-
136
133
  │ Abilities
137
134
 
138
135
  │ - Blaze
139
136
  │ - Solar Power
140
137
 
141
-
142
138
  │ Types
143
139
 
144
140
  │ Fire
145
141
 
146
- ↵ toggle detail ↑↓ navigate ^k a │ ─────────────────────────────────
142
+ │ ─────────────────────────────────
143
+
144
+ │ Characteristics
145
+
146
+ ↵ toggle detail ↑↓ navigate ^k a │ Height: 0.6m ▼
147
147
 
148
148
  "
149
149
  `)
@@ -164,7 +164,7 @@ test('list with detail view display and navigation', async () => {
164
164
 
165
165
  bulbasaur #001 │ charmander ▲
166
166
  ivysaur #002 │ █
167
- ›charmander #004 │ Illustration
167
+ ›charmander #004 │
168
168
  ╭──────────────────────────────────────────────────────────────────────────╮
169
169
  │ │
170
170
  │ Actions esc │
@@ -176,17 +176,17 @@ test('list with detail view display and navigation', async () => {
176
176
  │ │
177
177
  │ Settings │
178
178
  │ Change Theme... │
179
+ │ Enable Vim Mode │
179
180
  │ Toggle Console Logs │
180
181
  │ │
181
182
  │ │
182
183
  │ │
183
184
  │ │
184
- │ │
185
185
  │ ↵ select ↑↓ navigate │
186
186
  │ │
187
187
  ╰──────────────────────────────────────────────────────────────────────────╯
188
188
 
189
- ↵ toggle detail ↑↓ navigate ^k a │ ─────────────────────────────────
189
+ ↵ toggle detail ↑↓ navigate ^k a │ Height: 0.6m
190
190
 
191
191
  "
192
192
  `)
@@ -214,7 +214,7 @@ test('list with detail view display and navigation', async () => {
214
214
  wartortle #008 Water
215
215
 
216
216
 
217
- ↵ toggle detail ↑↓ navigate ^k actions powered by termcast.app
217
+ ↵ toggle detail ↑↓ navigate ^k actions :vim powered by termcast.app
218
218
 
219
219
 
220
220
 
@@ -253,29 +253,29 @@ test('list with detail view display and navigation', async () => {
253
253
 
254
254
  bulbasaur #001 │ charmander ▲
255
255
  ivysaur #002 │ █
256
- ›charmander #004 │ Illustration
257
- charmeleon #005 │
256
+ ›charmander #004 │
257
+ charmeleon #005 │ Illustration
258
258
  squirtle #007 │ Types
259
259
  wartortle #008 │
260
260
  │ Fire
261
-
262
261
  │ Characteristics
263
262
 
264
263
  │ - Height: 0.6m
265
264
  │ - Weight: 8.5kg
266
-
267
-
268
265
  │ Abilities
269
266
 
270
267
  │ - Blaze
271
268
  │ - Solar Power
272
269
 
273
-
274
270
  │ Types
275
271
 
276
272
  │ Fire
277
273
 
278
- ↵ toggle detail ↑↓ navigate ^k a │ ─────────────────────────────────
274
+ │ ─────────────────────────────────
275
+
276
+ │ Characteristics
277
+
278
+ ↵ toggle detail ↑↓ navigate ^k a │ Height: 0.6m ▼
279
279
 
280
280
  "
281
281
  `)
@@ -305,29 +305,29 @@ test('list detail view search functionality', async () => {
305
305
 
306
306
  ›charmander #004 │ charmander ▲
307
307
  charmeleon #005 │ █
308
+ │ ▀
308
309
  │ Illustration
309
-
310
310
  │ Types
311
311
 
312
312
  │ Fire
313
-
314
313
  │ Characteristics
315
314
 
316
315
  │ - Height: 0.6m
317
316
  │ - Weight: 8.5kg
318
-
319
-
320
317
  │ Abilities
321
318
 
322
319
  │ - Blaze
323
320
  │ - Solar Power
324
321
 
325
-
326
322
  │ Types
327
323
 
328
324
  │ Fire
329
325
 
330
- ↵ toggle detail ↑↓ navigate ^k a │ ─────────────────────────────────
326
+ │ ─────────────────────────────────
327
+
328
+ │ Characteristics
329
+
330
+ ↵ toggle detail ↑↓ navigate ^k a │ Height: 0.6m ▼
331
331
 
332
332
  "
333
333
  `)
@@ -354,29 +354,29 @@ test('list detail view search functionality', async () => {
354
354
 
355
355
  │ wartortle ▲
356
356
  │ █
357
- No items found │ Illustration
358
-
357
+ No items found │
358
+ Illustration
359
359
  │ Types
360
360
 
361
361
  │ Water
362
-
363
362
  │ Characteristics
364
363
 
365
364
  │ - Height: 1m
366
365
  │ - Weight: 22.5kg
367
-
368
-
369
366
  │ Abilities
370
367
 
371
368
  │ - Torrent
372
369
  │ - Rain Dish
373
370
 
374
-
375
371
  │ Types
376
372
 
377
373
  │ Water
378
374
 
379
- ↵ toggle detail ↑↓ navigate ^k a │ ─────────────────────────────────
375
+ │ ─────────────────────────────────
376
+
377
+ │ Characteristics
378
+
379
+ ↵ toggle detail ↑↓ navigate ^k a │ Height: 1m ▼
380
380
 
381
381
  "
382
382
  `)
@@ -394,29 +394,29 @@ test('list detail view search functionality', async () => {
394
394
 
395
395
  │ wartortle ▲
396
396
  │ █
397
- No items found │ Illustration
398
-
397
+ No items found │
398
+ Illustration
399
399
  │ Types
400
400
 
401
401
  │ Water
402
-
403
402
  │ Characteristics
404
403
 
405
404
  │ - Height: 1m
406
405
  │ - Weight: 22.5kg
407
-
408
-
409
406
  │ Abilities
410
407
 
411
408
  │ - Torrent
412
409
  │ - Rain Dish
413
410
 
414
-
415
411
  │ Types
416
412
 
417
413
  │ Water
418
414
 
419
- ↵ toggle detail ↑↓ navigate ^k a │ ─────────────────────────────────
415
+ │ ─────────────────────────────────
416
+
417
+ │ Characteristics
418
+
419
+ ↵ toggle detail ↑↓ navigate ^k a │ Height: 1m ▼
420
420
 
421
421
  "
422
422
  `)
@@ -446,28 +446,28 @@ test('list detail metadata rendering', async () => {
446
446
 
447
447
  ›bulbasaur #001 │ bulbasaur ▲
448
448
  ivysaur #002 │ █
449
- charmander #004 │ Illustration
450
- charmeleon #005 │
449
+ charmander #004 │
450
+ charmeleon #005 │ Illustration
451
451
  squirtle #007 │ Types
452
452
  wartortle #008 │
453
453
  │ Grass / Poison
454
-
455
454
  │ Characteristics
456
455
 
457
456
  │ - Height: 0.7m
458
457
  │ - Weight: 6.9kg
459
-
460
-
461
458
  │ Abilities
462
459
 
463
460
  │ - Chlorophyll
464
461
  │ - Overgrow
465
462
 
466
-
467
463
  │ Types
468
464
 
469
465
  │ Grass
470
466
 
467
+ │ ─────────────────────────────────
468
+
469
+ │ Poison
470
+
471
471
  ↵ toggle detail ↑↓ navigate ^k a │ ───────────────────────────────── ▼
472
472
 
473
473
  "
@@ -493,29 +493,29 @@ test('list detail metadata rendering', async () => {
493
493
 
494
494
  bulbasaur #001 │ squirtle ▲
495
495
  ivysaur #002 │ █
496
- charmander #004 │ Illustration
497
- charmeleon #005 │
496
+ charmander #004 │
497
+ charmeleon #005 │ Illustration
498
498
  ›squirtle #007 │ Types
499
499
  wartortle #008 │
500
500
  │ Water
501
-
502
501
  │ Characteristics
503
502
 
504
503
  │ - Height: 0.5m
505
504
  │ - Weight: 9kg
506
-
507
-
508
505
  │ Abilities
509
506
 
510
507
  │ - Torrent
511
508
  │ - Rain Dish
512
509
 
513
-
514
510
  │ Types
515
511
 
516
512
  │ Water
517
513
 
518
- ↵ toggle detail ↑↓ navigate ^k a │ ─────────────────────────────────
514
+ │ ─────────────────────────────────
515
+
516
+ │ Characteristics
517
+
518
+ ↵ toggle detail ↑↓ navigate ^k a │ Height: 0.5m ▼
519
519
 
520
520
  "
521
521
  `)
@@ -567,13 +567,13 @@ test('list with detail layout consistency - short vs long detail content', async
567
567
 
568
568
  ›Short Detail │ Brief content
569
569
  Long Detail │
570
- Another Item │ This is short.
571
-
570
+ Another Item │
571
+ This is short.
572
572
 
573
573
 
574
574
 
575
575
 
576
- ↑↓ navigate ^k actions
576
+ ↑↓ navigate ^k actions :vim
577
577
 
578
578
 
579
579
 
@@ -596,6 +596,7 @@ test('list with detail layout consistency - short vs long detail content', async
596
596
  Short Detail │ This item has extensive detail ▲
597
597
  ›Long Detail │ content ▀
598
598
  Another Item │
599
+
599
600
  │ Section 1
600
601
 
601
602
  │ This is a very long description
@@ -603,13 +604,12 @@ test('list with detail layout consistency - short vs long detail content', async
603
604
  │ and sections to test how the
604
605
  │ layout behaves when the detail
605
606
  │ panel content overflows.
606
-
607
607
  │ Section 2
608
608
 
609
609
  │ More content here to ensure we
610
610
  │ have enough text to cause
611
611
  │ vertical overflow in the detail
612
- ↑↓ navigate ^k actions │ panel scrollbox. ▼
612
+ ↑↓ navigate ^k actions :vim │ panel scrollbox. ▼
613
613
 
614
614
  "
615
615
  `)
@@ -49,7 +49,7 @@ test('list with dropdown navigation', async () => {
49
49
  Apple Juice Juice
50
50
 
51
51
 
52
- ↑↓ navigate ^k actions ^p select drink type
52
+ ↑↓ navigate ^k actions ^p select drink type :vim
53
53
 
54
54
 
55
55
 
@@ -215,7 +215,7 @@ test('list with dropdown navigation', async () => {
215
215
 
216
216
 
217
217
 
218
- ↑↓ navigate ^k actions ^p select drink type
218
+ ↑↓ navigate ^k actions ^p select drink type :vim
219
219
 
220
220
 
221
221
 
@@ -265,7 +265,7 @@ test('small screen: dropdown accessory wastes vertical space', async () => {
265
265
  Pinot Noir Wine
266
266
 
267
267
 
268
- ↑↓ navigate ^k actions ^p select drink type"
268
+ ↑↓ navigate ^k actions ^p select drink type :vim"
269
269
  `)
270
270
  } finally {
271
271
  smallSession.close()
@@ -382,7 +382,7 @@ test('list with dropdown search and filter', async () => {
382
382
 
383
383
 
384
384
 
385
- ↑↓ navigate ^k actions ^p select drink type
385
+ ↑↓ navigate ^k actions ^p select drink type :vim
386
386
 
387
387
 
388
388
 
@@ -418,7 +418,7 @@ test('list with dropdown search and filter', async () => {
418
418
 
419
419
 
420
420
 
421
- ↑↓ navigate ^k actions ^p select drink type
421
+ ↑↓ navigate ^k actions ^p select drink type :vim
422
422
 
423
423
 
424
424