termcast 1.3.34 → 1.3.36

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 (57) hide show
  1. package/dist/build.d.ts.map +1 -1
  2. package/dist/build.js +25 -0
  3. package/dist/build.js.map +1 -1
  4. package/dist/components/footer.d.ts.map +1 -1
  5. package/dist/components/footer.js +1 -1
  6. package/dist/components/footer.js.map +1 -1
  7. package/dist/components/icon.d.ts.map +1 -1
  8. package/dist/components/icon.js +386 -23
  9. package/dist/components/icon.js.map +1 -1
  10. package/dist/components/list.d.ts.map +1 -1
  11. package/dist/components/list.js +70 -7
  12. package/dist/components/list.js.map +1 -1
  13. package/dist/extensions/home.js +1 -1
  14. package/dist/extensions/home.js.map +1 -1
  15. package/dist/index.d.ts +1 -0
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/internal/dialog.d.ts.map +1 -1
  19. package/dist/internal/dialog.js +4 -5
  20. package/dist/internal/dialog.js.map +1 -1
  21. package/dist/internal/providers.d.ts.map +1 -1
  22. package/dist/internal/providers.js +18 -5
  23. package/dist/internal/providers.js.map +1 -1
  24. package/dist/state.d.ts +1 -0
  25. package/dist/state.d.ts.map +1 -1
  26. package/dist/state.js.map +1 -1
  27. package/dist/theme.d.ts.map +1 -1
  28. package/dist/theme.js +6 -2
  29. package/dist/theme.js.map +1 -1
  30. package/dist/utils.d.ts +16 -1
  31. package/dist/utils.d.ts.map +1 -1
  32. package/dist/utils.js +28 -1
  33. package/dist/utils.js.map +1 -1
  34. package/package.json +8 -4
  35. package/src/build.tsx +28 -0
  36. package/src/compile.vitest.tsx +18 -18
  37. package/src/components/footer.tsx +4 -2
  38. package/src/components/icon.tsx +385 -23
  39. package/src/components/list.tsx +84 -13
  40. package/src/examples/github.vitest.tsx +36 -36
  41. package/src/examples/list-detail-metadata.vitest.tsx +1 -1
  42. package/src/examples/list-dropdown-default.vitest.tsx +9 -9
  43. package/src/examples/list-scrollbox.vitest.tsx +41 -41
  44. package/src/examples/list-with-detail.vitest.tsx +35 -36
  45. package/src/examples/list-with-sections.vitest.tsx +117 -117
  46. package/src/examples/simple-grid.vitest.tsx +44 -44
  47. package/src/examples/simple-navigation.vitest.tsx +43 -12
  48. package/src/examples/store.vitest.tsx +1 -1
  49. package/src/examples/swift-extension.vitest.tsx +3 -3
  50. package/src/extensions/dev.vitest.tsx +21 -21
  51. package/src/extensions/home.tsx +1 -1
  52. package/src/index.tsx +1 -0
  53. package/src/internal/dialog.tsx +21 -23
  54. package/src/internal/providers.tsx +18 -5
  55. package/src/state.tsx +1 -0
  56. package/src/theme.tsx +6 -2
  57. package/src/utils.tsx +40 -1
@@ -72,21 +72,21 @@ test.skipIf(!extensionExists)('github extension shows command list on launch', a
72
72
  > Search commands...
73
73
 
74
74
  Commands
75
- ›My Pull Requests List pull requests you created, participated in, or view
76
- Search Pull Requests Search recent pull requests globally in all rep view
77
- Create Pull Request Create a pull request in one of your GitHub repo view
78
- My Issues List issues created by you, assigned to you or mentioning view
79
- Search Issues Search recent issues globally in all repositories. view
80
- Create Issue Create an issue in one of your GitHub repositories. view
81
- Create Branch Create a branch in one of your GitHub repositories view
82
- Search Repositories Search in your public or private repositories by view
83
- My Latest Repositories List your repositories by latest updated view
84
- My Starred Repositories List repositories you have starred view
85
- Workflow Runs Manage workflow runs for a selected GitHub repository. view
86
- Notifications List inbox notifications from all repositories or a se view
87
- Search Discussions Search recent Discussions globally in all reposit view
88
- My Discussions Show your Discussions view
89
- My Projects Show your Projects view
75
+ ›My Pull Requests List pull requests you created, participated in, or view
76
+ Search Pull Requests Search recent pull requests globally in all repo view
77
+ Create Pull Request Create a pull request in one of your GitHub repos view
78
+ My Issues List issues created by you, assigned to you or mentioning y view
79
+ Search Issues Search recent issues globally in all repositories. view
80
+ Create Issue Create an issue in one of your GitHub repositories. view
81
+ Create Branch Create a branch in one of your GitHub repositories view
82
+ Search Repositories Search in your public or private repositories by view
83
+ My Latest Repositories List your repositories by latest updated view
84
+ My Starred Repositories List repositories you have starred view
85
+ Workflow Runs Manage workflow runs for a selected GitHub repository. view
86
+ Notifications List inbox notifications from all repositories or a sel view
87
+ Search Discussions Search recent Discussions globally in all reposito view
88
+ My Discussions Show your Discussions view
89
+ My Projects Show your Projects view
90
90
 
91
91
 
92
92
 
@@ -121,21 +121,21 @@ test.skipIf(!extensionExists)('github extension can navigate commands', async ()
121
121
  > Search commands...
122
122
 
123
123
  Commands
124
- My Pull Requests List pull requests you created, participated in, or view
125
- Search Pull Requests Search recent pull requests globally in all rep view
126
- ›Create Pull Request Create a pull request in one of your GitHub repo view
127
- My Issues List issues created by you, assigned to you or mentioning view
128
- Search Issues Search recent issues globally in all repositories. view
129
- Create Issue Create an issue in one of your GitHub repositories. view
130
- Create Branch Create a branch in one of your GitHub repositories view
131
- Search Repositories Search in your public or private repositories by view
132
- My Latest Repositories List your repositories by latest updated view
133
- My Starred Repositories List repositories you have starred view
134
- Workflow Runs Manage workflow runs for a selected GitHub repository. view
135
- Notifications List inbox notifications from all repositories or a se view
136
- Search Discussions Search recent Discussions globally in all reposit view
137
- My Discussions Show your Discussions view
138
- My Projects Show your Projects view
124
+ My Pull Requests List pull requests you created, participated in, or view
125
+ Search Pull Requests Search recent pull requests globally in all repo view
126
+ ›Create Pull Request Create a pull request in one of your GitHub repos view
127
+ My Issues List issues created by you, assigned to you or mentioning y view
128
+ Search Issues Search recent issues globally in all repositories. view
129
+ Create Issue Create an issue in one of your GitHub repositories. view
130
+ Create Branch Create a branch in one of your GitHub repositories view
131
+ Search Repositories Search in your public or private repositories by view
132
+ My Latest Repositories List your repositories by latest updated view
133
+ My Starred Repositories List repositories you have starred view
134
+ Workflow Runs Manage workflow runs for a selected GitHub repository. view
135
+ Notifications List inbox notifications from all repositories or a sel view
136
+ Search Discussions Search recent Discussions globally in all reposito view
137
+ My Discussions Show your Discussions view
138
+ My Projects Show your Projects view
139
139
 
140
140
 
141
141
 
@@ -168,12 +168,12 @@ test.skipIf(!extensionExists)('github extension can open actions panel', async (
168
168
  "
169
169
 
170
170
 
171
+ GitHub ───────────────────────────────────────────────────────────────────
171
172
 
173
+ > Search commands...
172
174
 
173
-
174
-
175
-
176
-
175
+ Commands
176
+ ›My Pull Requests List pull requests you created, participated in, or view
177
177
  ╭──────────────────────────────────────────────────────────────────────────╮
178
178
  │ │
179
179
  │ Actions esc │
@@ -191,7 +191,7 @@ test.skipIf(!extensionExists)('github extension can open actions panel', async (
191
191
  │ ↵ select ↑↓ navigate │
192
192
  │ │
193
193
  ╰──────────────────────────────────────────────────────────────────────────╯
194
-
194
+ ↵ run command ↑↓ navigate ^k actions powered by termcast
195
195
 
196
196
 
197
197
 
@@ -224,7 +224,7 @@ test.skipIf(!extensionExists)('github extension can search commands', async () =
224
224
 
225
225
  > workflow
226
226
 
227
- ›Workflow Runs Manage workflow runs for a selected GitHub repository. view
227
+ ›Workflow Runs Manage workflow runs for a selected GitHub repository. view
228
228
 
229
229
 
230
230
 
@@ -37,7 +37,7 @@ test('list detail metadata label renders short values in row layout (key: value)
37
37
  > Search...
38
38
 
39
39
  ›Short Values
40
- Long Values │
40
+ Long Values │ Details
41
41
 
42
42
 
43
43
  │ Name: John Doe
@@ -44,8 +44,8 @@ test('dropdown defaults to first item when no value is provided', async () => {
44
44
 
45
45
 
46
46
 
47
- ↵ show selected ↑↓ navigate ^p dropdown ^k actionpowered by termcast
48
- fruit
47
+ ↵ show selected fruit ↑↓ navigate ^p dropdown ^k powered by termcast
48
+
49
49
 
50
50
 
51
51
 
@@ -89,7 +89,7 @@ test('dropdown opens and shows items', async () => {
89
89
  │ Orange │
90
90
  │ Grape │
91
91
  │ │
92
- │ │t
92
+ │ │
93
93
  │ ↵ select ↑↓ navigate powered by termcast │
94
94
  │ │
95
95
  ╰──────────────────────────────────────────────────────────────────────────╯
@@ -126,7 +126,7 @@ test('dropdown opens and shows items', async () => {
126
126
  │ Orange │
127
127
  │ Grape │
128
128
  │ │
129
- │ │t
129
+ │ │
130
130
  │ ↵ select ↑↓ navigate powered by termcast │
131
131
  │ │
132
132
  ╰──────────────────────────────────────────────────────────────────────────╯
@@ -163,8 +163,8 @@ test('dropdown opens and shows items', async () => {
163
163
 
164
164
 
165
165
 
166
- ↵ show selected ↑↓ navigate ^p dropdown ^k actionpowered by termcast
167
- fruit
166
+ ↵ show selected fruit ↑↓ navigate ^p dropdown ^k powered by termcast
167
+
168
168
 
169
169
 
170
170
 
@@ -208,7 +208,7 @@ test('clicking dropdown opens it', async () => {
208
208
  │ Orange │
209
209
  │ Grape │
210
210
  │ │
211
- │ │t
211
+ │ │
212
212
  │ ↵ select ↑↓ navigate powered by termcast │
213
213
  │ │
214
214
  ╰──────────────────────────────────────────────────────────────────────────╯
@@ -245,8 +245,8 @@ test('clicking dropdown opens it', async () => {
245
245
 
246
246
 
247
247
 
248
- ↵ show selected ↑↓ navigate ^p dropdown ^k actionpowered by termcast
249
- fruit
248
+ ↵ show selected fruit ↑↓ navigate ^p dropdown ^k powered by termcast
249
+
250
250
 
251
251
 
252
252
 
@@ -46,12 +46,12 @@ test('list scrollbox auto-scrolls when navigating down', async () => {
46
46
 
47
47
  > Search items...
48
48
 
49
- ›▲ Item 1 Description for item 1
50
- Item 2 Description for item 2
51
- Item 3 Description for item 3
52
- Item 4 Description for item 4
53
- Item 5 Description for item 5
54
- Item 6 Description for item 6"
49
+ ›○ Item 1 Description for item 1
50
+ Item 2 Description for item 2
51
+ Item 3 Description for item 3
52
+ Item 4 Description for item 4
53
+ Item 5 Description for item 5
54
+ Item 6 Description for item 6"
55
55
  `)
56
56
 
57
57
  await session.press('down')
@@ -69,12 +69,12 @@ test('list scrollbox auto-scrolls when navigating down', async () => {
69
69
 
70
70
  > Search items...
71
71
 
72
- Item 3 Description for item 3
73
- Item 4 Description for item 4
74
- Item 5 Description for item 5
75
- ›● Item 6 Description for item 6
76
- Item 7 Description for item 7
77
- Item 8 Description for item 8"
72
+ Item 3 Description for item 3
73
+ Item 4 Description for item 4
74
+ Item 5 Description for item 5
75
+ ›▦ Item 6 Description for item 6
76
+ Item 7 Description for item 7
77
+ Item 8 Description for item 8"
78
78
  `)
79
79
 
80
80
  await session.press('down')
@@ -90,12 +90,12 @@ test('list scrollbox auto-scrolls when navigating down', async () => {
90
90
 
91
91
  > Search items...
92
92
 
93
- Item 6 Description for item 6
94
- Item 7 Description for item 7
95
- Item 8 Description for item 8
96
- ›■ Item 9 Description for item 9
93
+ Item 6 Description for item 6
94
+ Item 7 Description for item 7
95
+ Item 8 Description for item 8
96
+ ›▤ Item 9 Description for item 9
97
97
  Item 10 Description for item 10
98
- Item 11 Description for item 11"
98
+ Item 11 Description for item 11"
99
99
  `)
100
100
 
101
101
  await session.press('up')
@@ -115,12 +115,12 @@ test('list scrollbox auto-scrolls when navigating down', async () => {
115
115
 
116
116
  > Search items...
117
117
 
118
- Item 1 Description for item 1
119
- ›■ Item 2 Description for item 2
120
- Item 3 Description for item 3
121
- Item 4 Description for item 4
122
- Item 5 Description for item 5
123
- Item 6 Description for item 6"
118
+ Item 1 Description for item 1
119
+ ›★ Item 2 Description for item 2
120
+ Item 3 Description for item 3
121
+ Item 4 Description for item 4
122
+ Item 5 Description for item 5
123
+ Item 6 Description for item 6"
124
124
  `)
125
125
  }, 15000)
126
126
 
@@ -140,12 +140,12 @@ test('list scrollbox scrolls with mouse wheel', async () => {
140
140
 
141
141
  > Search items...
142
142
 
143
- ›▲ Item 1 Description for item 1
144
- Item 2 Description for item 2
145
- Item 3 Description for item 3
146
- Item 4 Description for item 4
147
- Item 5 Description for item 5
148
- Item 6 Description for item 6"
143
+ ›○ Item 1 Description for item 1
144
+ Item 2 Description for item 2
145
+ Item 3 Description for item 3
146
+ Item 4 Description for item 4
147
+ Item 5 Description for item 5
148
+ Item 6 Description for item 6"
149
149
  `)
150
150
 
151
151
  await session.scrollDown(3)
@@ -163,12 +163,12 @@ test('list scrollbox scrolls with mouse wheel', async () => {
163
163
 
164
164
  > Search items...
165
165
 
166
- Item 2 Description for item 2
167
- Item 3 Description for item 3
168
- Item 4 Description for item 4
169
- Item 5 Description for item 5
170
- Item 6 Description for item 6
171
- Item 7 Description for item 7"
166
+ Item 2 Description for item 2
167
+ Item 3 Description for item 3
168
+ Item 4 Description for item 4
169
+ Item 5 Description for item 5
170
+ Item 6 Description for item 6
171
+ Item 7 Description for item 7"
172
172
  `)
173
173
 
174
174
  await session.scrollUp(2)
@@ -186,11 +186,11 @@ test('list scrollbox scrolls with mouse wheel', async () => {
186
186
 
187
187
  > Search items...
188
188
 
189
- ›▲ Item 1 Description for item 1
190
- Item 2 Description for item 2
191
- Item 3 Description for item 3
192
- Item 4 Description for item 4
193
- Item 5 Description for item 5
194
- Item 6 Description for item 6"
189
+ ›○ Item 1 Description for item 1
190
+ Item 2 Description for item 2
191
+ Item 3 Description for item 3
192
+ Item 4 Description for item 4
193
+ Item 5 Description for item 5
194
+ Item 6 Description for item 6"
195
195
  `)
196
196
  }, 15000)
@@ -57,8 +57,8 @@ test('list with detail view display and navigation', async () => {
57
57
  │ Types
58
58
 
59
59
  │ Grass
60
- ↵ toggle ↑↓ navigate ^k action│ ─────────────────
61
- detail │ ▼
60
+ │ ─────────────────
61
+ ↵ toggle detail ↑↓ navigate ^k a │ ▼
62
62
 
63
63
  "
64
64
  `)
@@ -96,8 +96,8 @@ test('list with detail view display and navigation', async () => {
96
96
  │ Types
97
97
 
98
98
  │ Grass
99
- ↵ toggle ↑↓ navigate ^k action│ ─────────────────
100
- detail │ ▼
99
+ │ ─────────────────
100
+ ↵ toggle detail ↑↓ navigate ^k a │ ▼
101
101
 
102
102
  "
103
103
  `)
@@ -133,8 +133,8 @@ test('list with detail view display and navigation', async () => {
133
133
  │ Types
134
134
 
135
135
  │ Fire
136
- ↵ toggle ↑↓ navigate ^k action│ ─────────────────
137
- detail │ ▼
136
+ │ ─────────────────
137
+ ↵ toggle detail ↑↓ navigate ^k a │ ▼
138
138
 
139
139
  "
140
140
  `)
@@ -142,21 +142,20 @@ test('list with detail view display and navigation', async () => {
142
142
  await session.press(['ctrl', 'k'])
143
143
 
144
144
  const actionsSnapshot = await session.text()
145
- // Fast feedback loop: fail if list/detail content leaks under the actions dialog
145
+ // Keep page content visible behind the actions dialog while preserving dialog layering
146
146
  expect(actionsSnapshot).toContain('Actions')
147
- expect(actionsSnapshot).not.toContain('charmander #004')
148
- expect(actionsSnapshot).not.toContain('Illustration')
147
+ expect(actionsSnapshot).toContain('charmander #004')
149
148
  expect(actionsSnapshot).toMatchInlineSnapshot(`
150
149
  "
151
150
 
152
151
 
152
+ Pokemon List ─────────────────────────────────────────────────────────────
153
153
 
154
+ > Search Pokemon...
154
155
 
155
-
156
-
157
-
158
-
159
-
156
+ bulbasaur #001
157
+ ivysaur #002 │ charmander ▲
158
+ ›charmander #004 │ █
160
159
  ╭──────────────────────────────────────────────────────────────────────────╮
161
160
  │ │
162
161
  │ Actions esc │
@@ -174,8 +173,8 @@ test('list with detail view display and navigation', async () => {
174
173
  │ ↵ select ↑↓ navigate │
175
174
  │ │
176
175
  ╰──────────────────────────────────────────────────────────────────────────╯
177
-
178
-
176
+ │ ─────────────────
177
+ ↵ toggle detail ↑↓ navigate ^k a │ ▼
179
178
 
180
179
  "
181
180
  `)
@@ -195,12 +194,12 @@ test('list with detail view display and navigation', async () => {
195
194
 
196
195
  > Search Pokemon...
197
196
 
198
- bulbasaur #001 Grass / Poison
199
- ivysaur #002 Grass / Poison
200
- ›charmander #004 Fire
201
- charmeleon #005 Fire
202
- squirtle #007 Water
203
- wartortle #008 Water
197
+ bulbasaur #001 Grass / Poison
198
+ ivysaur #002 Grass / Poison
199
+ ›charmander #004 Fire
200
+ charmeleon #005 Fire
201
+ squirtle #007 Water
202
+ wartortle #008 Water
204
203
 
205
204
 
206
205
  ↵ toggle detail ↑↓ navigate ^k actions powered by termcast
@@ -257,8 +256,8 @@ test('list with detail view display and navigation', async () => {
257
256
  │ Types
258
257
 
259
258
  │ Fire
260
- ↵ toggle ↑↓ navigate ^k action│ ─────────────────
261
- detail │ ▼
259
+ │ ─────────────────
260
+ ↵ toggle detail ↑↓ navigate ^k a │ ▼
262
261
 
263
262
  "
264
263
  `)
@@ -306,8 +305,8 @@ test('list detail view search functionality', async () => {
306
305
  │ Types
307
306
 
308
307
  │ Fire
309
- ↵ toggle ↑↓ navigate ^k action│ ─────────────────
310
- detail │ ▼
308
+ │ ─────────────────
309
+ ↵ toggle detail ↑↓ navigate ^k a │ ▼
311
310
 
312
311
  "
313
312
  `)
@@ -334,7 +333,7 @@ test('list detail view search functionality', async () => {
334
333
 
335
334
 
336
335
  │ wartortle ▲
337
- No items found │ █
336
+ No items found │ █
338
337
  │ Illustration
339
338
 
340
339
  │ Types
@@ -352,8 +351,8 @@ test('list detail view search functionality', async () => {
352
351
  │ Types
353
352
 
354
353
  │ Water
355
- ↵ toggle ↑↓ navigate ^k action│ ─────────────────
356
- detail │ ▼
354
+ │ ─────────────────
355
+ ↵ toggle detail ↑↓ navigate ^k a │ ▼
357
356
 
358
357
  "
359
358
  `)
@@ -371,7 +370,7 @@ test('list detail view search functionality', async () => {
371
370
 
372
371
 
373
372
  │ wartortle ▲
374
- No items found │ █
373
+ No items found │ █
375
374
  │ Illustration
376
375
 
377
376
  │ Types
@@ -389,8 +388,8 @@ test('list detail view search functionality', async () => {
389
388
  │ Types
390
389
 
391
390
  │ Water
392
- ↵ toggle ↑↓ navigate ^k action│ ─────────────────
393
- detail │ ▼
391
+ │ ─────────────────
392
+ ↵ toggle detail ↑↓ navigate ^k a │ ▼
394
393
 
395
394
  "
396
395
  `)
@@ -438,8 +437,8 @@ test('list detail metadata rendering', async () => {
438
437
  │ Types
439
438
 
440
439
  │ Grass
441
- ↵ toggle ↑↓ navigate ^k action│ ─────────────────
442
- detail │ ▼
440
+ │ ─────────────────
441
+ ↵ toggle detail ↑↓ navigate ^k a │ ▼
443
442
 
444
443
  "
445
444
  `)
@@ -482,8 +481,8 @@ test('list detail metadata rendering', async () => {
482
481
  │ Types
483
482
 
484
483
  │ Water
485
- ↵ toggle ↑↓ navigate ^k action│ ─────────────────
486
- detail │ ▼
484
+ │ ─────────────────
485
+ ↵ toggle detail ↑↓ navigate ^k a │ ▼
487
486
 
488
487
  "
489
488
  `)