termcast 1.3.33 → 1.3.35
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/apis/cache.d.ts +1 -2
- package/dist/apis/cache.d.ts.map +1 -1
- package/dist/apis/cache.js +134 -52
- package/dist/apis/cache.js.map +1 -1
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +25 -0
- package/dist/build.js.map +1 -1
- package/dist/cli.js +6 -8
- package/dist/cli.js.map +1 -1
- package/dist/components/dropdown.js +3 -3
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/footer.d.ts.map +1 -1
- package/dist/components/footer.js +1 -1
- package/dist/components/footer.js.map +1 -1
- package/dist/components/icon.d.ts.map +1 -1
- package/dist/components/icon.js +386 -23
- package/dist/components/icon.js.map +1 -1
- package/dist/components/list.d.ts.map +1 -1
- package/dist/components/list.js +90 -22
- package/dist/components/list.js.map +1 -1
- package/dist/examples/list-controlled-search.d.ts +2 -0
- package/dist/examples/list-controlled-search.d.ts.map +1 -0
- package/dist/examples/list-controlled-search.js +12 -0
- package/dist/examples/list-controlled-search.js.map +1 -0
- package/dist/extensions/home.js +1 -1
- package/dist/extensions/home.js.map +1 -1
- package/dist/extensions/react-refresh-init.d.ts.map +1 -1
- package/dist/extensions/react-refresh-init.js +4 -3
- package/dist/extensions/react-refresh-init.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/dialog.d.ts.map +1 -1
- package/dist/internal/dialog.js +4 -5
- package/dist/internal/dialog.js.map +1 -1
- package/dist/internal/providers.d.ts.map +1 -1
- package/dist/internal/providers.js +18 -5
- package/dist/internal/providers.js.map +1 -1
- package/dist/state.d.ts +1 -0
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js.map +1 -1
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +6 -2
- package/dist/theme.js.map +1 -1
- package/dist/utils/run-command.js +3 -3
- package/dist/utils/run-command.js.map +1 -1
- package/dist/utils.d.ts +16 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +28 -1
- package/dist/utils.js.map +1 -1
- package/dist/watcher.d.ts.map +1 -1
- package/dist/watcher.js +24 -4
- package/dist/watcher.js.map +1 -1
- package/package.json +10 -9
- package/src/apis/cache.test.ts +35 -3
- package/src/apis/cache.tsx +180 -57
- package/src/build.tsx +28 -0
- package/src/cli.tsx +8 -10
- package/src/compile.vitest.tsx +42 -24
- package/src/components/dropdown.tsx +3 -3
- package/src/components/footer.tsx +4 -2
- package/src/components/icon.tsx +385 -23
- package/src/components/list.tsx +104 -28
- package/src/examples/github.vitest.tsx +37 -37
- package/src/examples/list-controlled-search.tsx +28 -0
- package/src/examples/list-controlled-search.vitest.tsx +49 -0
- package/src/examples/list-detail-metadata.vitest.tsx +1 -1
- package/src/examples/list-dropdown-default.vitest.tsx +9 -9
- package/src/examples/list-scrollbox.vitest.tsx +55 -41
- package/src/examples/list-with-detail.vitest.tsx +35 -36
- package/src/examples/list-with-dropdown.vitest.tsx +2 -2
- package/src/examples/list-with-sections.vitest.tsx +153 -118
- package/src/examples/simple-file-picker.vitest.tsx +1 -1
- package/src/examples/simple-grid.vitest.tsx +44 -44
- package/src/examples/simple-navigation.vitest.tsx +43 -12
- package/src/examples/store.vitest.tsx +1 -1
- package/src/examples/swift-extension.vitest.tsx +3 -3
- package/src/extensions/dev.vitest.tsx +69 -34
- package/src/extensions/home.tsx +1 -1
- package/src/extensions/react-refresh-init.tsx +4 -3
- package/src/index.tsx +1 -0
- package/src/internal/dialog.tsx +21 -23
- package/src/internal/providers.tsx +18 -5
- package/src/state.tsx +1 -0
- package/src/theme.tsx +6 -2
- package/src/utils/run-command.tsx +3 -3
- package/src/utils.tsx +41 -1
- package/src/watcher.tsx +26 -6
|
@@ -27,7 +27,8 @@ test('list startup shows first content near instantly', async () => {
|
|
|
27
27
|
})
|
|
28
28
|
|
|
29
29
|
const loadTimeMs = Date.now() - sessionStartMs
|
|
30
|
-
|
|
30
|
+
// Allow more headroom in CI where machine speed varies
|
|
31
|
+
expect(loadTimeMs).toBeLessThan(1500)
|
|
31
32
|
}, 10000)
|
|
32
33
|
|
|
33
34
|
test('list with sections navigation', async () => {
|
|
@@ -47,15 +48,15 @@ test('list with sections navigation', async () => {
|
|
|
47
48
|
|
|
48
49
|
> Search items...
|
|
49
50
|
|
|
50
|
-
Fruits
|
|
51
|
-
›Apple Red and sweet
|
|
52
|
-
Banana Yellow and nutritious
|
|
53
|
-
Orange Citrus and juicy
|
|
54
|
-
Grape Sweet clusters
|
|
55
|
-
Mango Tropical delight
|
|
51
|
+
Fruits
|
|
52
|
+
›Apple Red and sweet Fresh [Popular]
|
|
53
|
+
Banana Yellow and nutritious Ripe
|
|
54
|
+
Orange Citrus and juicy Fresh
|
|
55
|
+
Grape Sweet clusters [Seasonal]
|
|
56
|
+
Mango Tropical delight Imported
|
|
56
57
|
Pineapple Sweet and tangy
|
|
57
|
-
Strawberry Red and sweet
|
|
58
|
-
|
|
58
|
+
Strawberry Red and sweet [Popular]
|
|
59
|
+
|
|
59
60
|
|
|
60
61
|
|
|
61
62
|
↵ view details ↑↓ navigate ^k actions
|
|
@@ -80,15 +81,15 @@ test('list with sections navigation', async () => {
|
|
|
80
81
|
|
|
81
82
|
> Search items...
|
|
82
83
|
|
|
83
|
-
Fruits
|
|
84
|
-
Apple Red and sweet
|
|
85
|
-
›Banana Yellow and nutritious
|
|
86
|
-
Orange Citrus and juicy
|
|
87
|
-
Grape Sweet clusters
|
|
88
|
-
Mango Tropical delight
|
|
84
|
+
Fruits
|
|
85
|
+
Apple Red and sweet Fresh [Popular]
|
|
86
|
+
›Banana Yellow and nutritious Ripe
|
|
87
|
+
Orange Citrus and juicy Fresh
|
|
88
|
+
Grape Sweet clusters [Seasonal]
|
|
89
|
+
Mango Tropical delight Imported
|
|
89
90
|
Pineapple Sweet and tangy
|
|
90
|
-
Strawberry Red and sweet
|
|
91
|
-
|
|
91
|
+
Strawberry Red and sweet [Popular]
|
|
92
|
+
|
|
92
93
|
|
|
93
94
|
|
|
94
95
|
↵ view details ↑↓ navigate ^k actions
|
|
@@ -107,15 +108,15 @@ test('list with sections navigation', async () => {
|
|
|
107
108
|
|
|
108
109
|
> Search items...
|
|
109
110
|
|
|
110
|
-
Fruits
|
|
111
|
-
Apple Red and sweet
|
|
112
|
-
Banana Yellow and nutritious
|
|
113
|
-
›Orange Citrus and juicy
|
|
114
|
-
Grape Sweet clusters
|
|
115
|
-
Mango Tropical delight
|
|
111
|
+
Fruits
|
|
112
|
+
Apple Red and sweet Fresh [Popular]
|
|
113
|
+
Banana Yellow and nutritious Ripe
|
|
114
|
+
›Orange Citrus and juicy Fresh
|
|
115
|
+
Grape Sweet clusters [Seasonal]
|
|
116
|
+
Mango Tropical delight Imported
|
|
116
117
|
Pineapple Sweet and tangy
|
|
117
|
-
Strawberry Red and sweet
|
|
118
|
-
|
|
118
|
+
Strawberry Red and sweet [Popular]
|
|
119
|
+
|
|
119
120
|
|
|
120
121
|
|
|
121
122
|
↑↓ navigate ^k actions
|
|
@@ -138,15 +139,15 @@ test('list with sections navigation', async () => {
|
|
|
138
139
|
|
|
139
140
|
> Search items...
|
|
140
141
|
|
|
141
|
-
Fruits
|
|
142
|
-
Apple Red and sweet
|
|
143
|
-
Banana Yellow and nutritious
|
|
144
|
-
›Orange Citrus and juicy
|
|
145
|
-
Grape Sweet clusters
|
|
146
|
-
Mango Tropical delight
|
|
142
|
+
Fruits
|
|
143
|
+
Apple Red and sweet Fresh [Popular]
|
|
144
|
+
Banana Yellow and nutritious Ripe
|
|
145
|
+
›Orange Citrus and juicy Fresh
|
|
146
|
+
Grape Sweet clusters [Seasonal]
|
|
147
|
+
Mango Tropical delight Imported
|
|
147
148
|
Pineapple Sweet and tangy
|
|
148
|
-
Strawberry Red and sweet
|
|
149
|
-
|
|
149
|
+
Strawberry Red and sweet [Popular]
|
|
150
|
+
|
|
150
151
|
|
|
151
152
|
|
|
152
153
|
↑↓ navigate ^k actions
|
|
@@ -182,7 +183,7 @@ test('list with sections search functionality', async () => {
|
|
|
182
183
|
|
|
183
184
|
> ban
|
|
184
185
|
|
|
185
|
-
›Banana Yellow and nutritious
|
|
186
|
+
›Banana Yellow and nutritious Ripe
|
|
186
187
|
|
|
187
188
|
|
|
188
189
|
|
|
@@ -248,15 +249,15 @@ test('list with sections search functionality', async () => {
|
|
|
248
249
|
|
|
249
250
|
> Search items...
|
|
250
251
|
|
|
251
|
-
Fruits
|
|
252
|
-
›Apple Red and sweet
|
|
253
|
-
Banana Yellow and nutritious
|
|
254
|
-
Orange Citrus and juicy
|
|
255
|
-
Grape Sweet clusters
|
|
256
|
-
Mango Tropical delight
|
|
252
|
+
Fruits
|
|
253
|
+
›Apple Red and sweet Fresh [Popular]
|
|
254
|
+
Banana Yellow and nutritious Ripe
|
|
255
|
+
Orange Citrus and juicy Fresh
|
|
256
|
+
Grape Sweet clusters [Seasonal]
|
|
257
|
+
Mango Tropical delight Imported
|
|
257
258
|
Pineapple Sweet and tangy
|
|
258
|
-
Strawberry Red and sweet
|
|
259
|
-
|
|
259
|
+
Strawberry Red and sweet [Popular]
|
|
260
|
+
|
|
260
261
|
|
|
261
262
|
|
|
262
263
|
↵ view details ↑↓ navigate ^k actions
|
|
@@ -281,7 +282,7 @@ test('list with sections search functionality', async () => {
|
|
|
281
282
|
|
|
282
283
|
> bread
|
|
283
284
|
|
|
284
|
-
›Bread Freshly baked
|
|
285
|
+
›Bread Freshly baked Today [New]
|
|
285
286
|
|
|
286
287
|
|
|
287
288
|
|
|
@@ -345,15 +346,15 @@ test('list click functionality', async () => {
|
|
|
345
346
|
|
|
346
347
|
> Search items...
|
|
347
348
|
|
|
348
|
-
Fruits
|
|
349
|
-
Apple Red and sweet
|
|
350
|
-
›Banana Yellow and nutritious
|
|
351
|
-
Orange Citrus and juicy
|
|
352
|
-
Grape Sweet clusters
|
|
353
|
-
Mango Tropical delight
|
|
349
|
+
Fruits
|
|
350
|
+
Apple Red and sweet Fresh [Popular]
|
|
351
|
+
›Banana Yellow and nutritious Ripe
|
|
352
|
+
Orange Citrus and juicy Fresh
|
|
353
|
+
Grape Sweet clusters [Seasonal]
|
|
354
|
+
Mango Tropical delight Imported
|
|
354
355
|
Pineapple Sweet and tangy
|
|
355
|
-
Strawberry Red and sweet
|
|
356
|
-
|
|
356
|
+
Strawberry Red and sweet [Popular]
|
|
357
|
+
|
|
357
358
|
|
|
358
359
|
|
|
359
360
|
↵ view details ↑↓ navigate ^k actions
|
|
@@ -373,15 +374,15 @@ test('list click functionality', async () => {
|
|
|
373
374
|
|
|
374
375
|
> Search items...
|
|
375
376
|
|
|
376
|
-
Fruits
|
|
377
|
-
›Apple Red and sweet
|
|
378
|
-
Banana Yellow and nutritious
|
|
379
|
-
Orange Citrus and juicy
|
|
380
|
-
Grape Sweet clusters
|
|
381
|
-
Mango Tropical delight
|
|
377
|
+
Fruits
|
|
378
|
+
›Apple Red and sweet Fresh [Popular]
|
|
379
|
+
Banana Yellow and nutritious Ripe
|
|
380
|
+
Orange Citrus and juicy Fresh
|
|
381
|
+
Grape Sweet clusters [Seasonal]
|
|
382
|
+
Mango Tropical delight Imported
|
|
382
383
|
Pineapple Sweet and tangy
|
|
383
|
-
Strawberry Red and sweet
|
|
384
|
-
|
|
384
|
+
Strawberry Red and sweet [Popular]
|
|
385
|
+
|
|
385
386
|
|
|
386
387
|
|
|
387
388
|
↵ view details ↑↓ navigate ^k actions
|
|
@@ -401,15 +402,15 @@ test('list click functionality', async () => {
|
|
|
401
402
|
|
|
402
403
|
> Search items...
|
|
403
404
|
|
|
404
|
-
Fruits
|
|
405
|
-
Apple Red and sweet
|
|
406
|
-
Banana Yellow and nutritious
|
|
407
|
-
Orange Citrus and juicy
|
|
408
|
-
›Grape Sweet clusters
|
|
409
|
-
Mango Tropical delight
|
|
405
|
+
Fruits
|
|
406
|
+
Apple Red and sweet Fresh [Popular]
|
|
407
|
+
Banana Yellow and nutritious Ripe
|
|
408
|
+
Orange Citrus and juicy Fresh
|
|
409
|
+
›Grape Sweet clusters [Seasonal]
|
|
410
|
+
Mango Tropical delight Imported
|
|
410
411
|
Pineapple Sweet and tangy
|
|
411
|
-
Strawberry Red and sweet
|
|
412
|
-
|
|
412
|
+
Strawberry Red and sweet [Popular]
|
|
413
|
+
|
|
413
414
|
|
|
414
415
|
|
|
415
416
|
↑↓ navigate ^k actions
|
|
@@ -439,7 +440,7 @@ test('list actions panel with ctrl+k', async () => {
|
|
|
439
440
|
"
|
|
440
441
|
|
|
441
442
|
|
|
442
|
-
|
|
443
|
+
Simple List Example ────────────────────────────────────────────
|
|
443
444
|
|
|
444
445
|
╭────────────────────────────────────────────────────────────────╮
|
|
445
446
|
│ │
|
|
@@ -467,7 +468,7 @@ test('list actions panel with ctrl+k', async () => {
|
|
|
467
468
|
"
|
|
468
469
|
|
|
469
470
|
|
|
470
|
-
|
|
471
|
+
Simple List Example ────────────────────────────────────────────
|
|
471
472
|
|
|
472
473
|
╭────────────────────────────────────────────────────────────────╮
|
|
473
474
|
│ │
|
|
@@ -499,15 +500,15 @@ test('list actions panel with ctrl+k', async () => {
|
|
|
499
500
|
|
|
500
501
|
> Search items...
|
|
501
502
|
|
|
502
|
-
Fruits
|
|
503
|
-
›Apple Red and sweet
|
|
504
|
-
Banana Yellow and nutritious
|
|
505
|
-
Orange Citrus and juicy
|
|
506
|
-
Grape Sweet clusters
|
|
507
|
-
Mango Tropical delight
|
|
503
|
+
Fruits
|
|
504
|
+
›Apple Red and sweet Fresh [Popular]
|
|
505
|
+
Banana Yellow and nutritious Ripe
|
|
506
|
+
Orange Citrus and juicy Fresh
|
|
507
|
+
Grape Sweet clusters [Seasonal]
|
|
508
|
+
Mango Tropical delight Imported
|
|
508
509
|
Pineapple Sweet and tangy
|
|
509
|
-
Strawberry Red and sweet
|
|
510
|
-
|
|
510
|
+
Strawberry Red and sweet [Popular]
|
|
511
|
+
|
|
511
512
|
|
|
512
513
|
|
|
513
514
|
✓ Added to Cart Apple has been added to your cart
|
|
@@ -552,8 +553,8 @@ test('filtering selects first visible item and navigation works', async () => {
|
|
|
552
553
|
|
|
553
554
|
> ora
|
|
554
555
|
|
|
555
|
-
›Orange Citrus and juicy
|
|
556
|
-
Carrot Orange and crunchy
|
|
556
|
+
›Orange Citrus and juicy Fresh
|
|
557
|
+
Carrot Orange and crunchy [Healthy]
|
|
557
558
|
|
|
558
559
|
|
|
559
560
|
|
|
@@ -580,8 +581,8 @@ test('filtering selects first visible item and navigation works', async () => {
|
|
|
580
581
|
|
|
581
582
|
> ora
|
|
582
583
|
|
|
583
|
-
Orange Citrus and juicy
|
|
584
|
-
›Carrot Orange and crunchy
|
|
584
|
+
Orange Citrus and juicy Fresh
|
|
585
|
+
›Carrot Orange and crunchy [Healthy]
|
|
585
586
|
|
|
586
587
|
|
|
587
588
|
|
|
@@ -608,8 +609,8 @@ test('filtering selects first visible item and navigation works', async () => {
|
|
|
608
609
|
|
|
609
610
|
> ora
|
|
610
611
|
|
|
611
|
-
›Orange Citrus and juicy
|
|
612
|
-
Carrot Orange and crunchy
|
|
612
|
+
›Orange Citrus and juicy Fresh
|
|
613
|
+
Carrot Orange and crunchy [Healthy]
|
|
613
614
|
|
|
614
615
|
|
|
615
616
|
|
|
@@ -636,8 +637,8 @@ test('filtering selects first visible item and navigation works', async () => {
|
|
|
636
637
|
|
|
637
638
|
> ora
|
|
638
639
|
|
|
639
|
-
Orange Citrus and juicy
|
|
640
|
-
›Carrot Orange and crunchy
|
|
640
|
+
Orange Citrus and juicy Fresh
|
|
641
|
+
›Carrot Orange and crunchy [Healthy]
|
|
641
642
|
|
|
642
643
|
|
|
643
644
|
|
|
@@ -669,15 +670,15 @@ test('list scrollbox scrolling with sections', async () => {
|
|
|
669
670
|
|
|
670
671
|
> Search items...
|
|
671
672
|
|
|
672
|
-
Fruits
|
|
673
|
-
›Apple Red and sweet
|
|
674
|
-
Banana Yellow and nutritious
|
|
675
|
-
Orange Citrus and juicy
|
|
676
|
-
Grape Sweet clusters
|
|
677
|
-
Mango Tropical delight
|
|
673
|
+
Fruits
|
|
674
|
+
›Apple Red and sweet Fresh [Popular]
|
|
675
|
+
Banana Yellow and nutritious Ripe
|
|
676
|
+
Orange Citrus and juicy Fresh
|
|
677
|
+
Grape Sweet clusters [Seasonal]
|
|
678
|
+
Mango Tropical delight Imported
|
|
678
679
|
Pineapple Sweet and tangy
|
|
679
|
-
Strawberry Red and sweet
|
|
680
|
-
|
|
680
|
+
Strawberry Red and sweet [Popular]
|
|
681
|
+
|
|
681
682
|
|
|
682
683
|
|
|
683
684
|
↵ view details ↑↓ navigate ^k actions
|
|
@@ -702,15 +703,15 @@ test('list scrollbox scrolling with sections', async () => {
|
|
|
702
703
|
|
|
703
704
|
> Search items...
|
|
704
705
|
|
|
705
|
-
Orange Citrus and juicy
|
|
706
|
-
Grape Sweet clusters
|
|
707
|
-
Mango Tropical delight
|
|
708
|
-
Pineapple Sweet and tangy
|
|
709
|
-
›Strawberry Red and sweet
|
|
706
|
+
Orange Citrus and juicy Fresh
|
|
707
|
+
Grape Sweet clusters [Seasonal]
|
|
708
|
+
Mango Tropical delight Imported
|
|
709
|
+
Pineapple Sweet and tangy
|
|
710
|
+
›Strawberry Red and sweet [Popular]
|
|
710
711
|
|
|
711
712
|
Vegetables
|
|
712
|
-
Carrot Orange and crunchy
|
|
713
|
-
Lettuce Green and fresh
|
|
713
|
+
Carrot Orange and crunchy [Healthy]
|
|
714
|
+
Lettuce Green and fresh
|
|
714
715
|
|
|
715
716
|
|
|
716
717
|
↑↓ navigate ^k actions
|
|
@@ -732,15 +733,15 @@ test('list scrollbox scrolling with sections', async () => {
|
|
|
732
733
|
|
|
733
734
|
> Search items...
|
|
734
735
|
|
|
735
|
-
|
|
736
|
+
|
|
736
737
|
Vegetables
|
|
737
|
-
Carrot Orange and crunchy
|
|
738
|
+
Carrot Orange and crunchy [Healthy]
|
|
738
739
|
Lettuce Green and fresh
|
|
739
|
-
›Broccoli Green florets
|
|
740
|
-
Spinach Leafy greens
|
|
741
|
-
Tomato Red and ripe
|
|
740
|
+
›Broccoli Green florets [Healthy]
|
|
741
|
+
Spinach Leafy greens Organic
|
|
742
|
+
Tomato Red and ripe
|
|
742
743
|
Cucumber Cool and crisp
|
|
743
|
-
Bell Pepper Colorful and crunchy
|
|
744
|
+
Bell Pepper Colorful and crunchy [Fresh]
|
|
744
745
|
|
|
745
746
|
|
|
746
747
|
↑↓ navigate ^k actions
|
|
@@ -764,15 +765,15 @@ test('list scrollbox scrolling with sections', async () => {
|
|
|
764
765
|
|
|
765
766
|
> Search items...
|
|
766
767
|
|
|
767
|
-
Carrot Orange and crunchy
|
|
768
|
+
Carrot Orange and crunchy [Healthy]
|
|
768
769
|
Lettuce Green and fresh
|
|
769
|
-
Broccoli Green florets
|
|
770
|
-
Spinach Leafy greens
|
|
770
|
+
Broccoli Green florets [Healthy]
|
|
771
|
+
Spinach Leafy greens Organic
|
|
771
772
|
Tomato Red and ripe
|
|
772
773
|
Cucumber Cool and crisp
|
|
773
|
-
Bell Pepper Colorful and crunchy
|
|
774
|
-
|
|
775
|
-
›Bread Freshly baked
|
|
774
|
+
Bell Pepper Colorful and crunchy [Fresh]
|
|
775
|
+
|
|
776
|
+
›Bread Freshly baked Today [New]
|
|
776
777
|
|
|
777
778
|
|
|
778
779
|
↵ view details ↑↓ navigate ^k actions
|
|
@@ -794,15 +795,15 @@ test('list scrollbox scrolling with sections', async () => {
|
|
|
794
795
|
|
|
795
796
|
> Search items...
|
|
796
797
|
|
|
797
|
-
Carrot Orange and crunchy
|
|
798
|
+
Carrot Orange and crunchy [Healthy]
|
|
798
799
|
Lettuce Green and fresh
|
|
799
|
-
Broccoli Green florets
|
|
800
|
-
Spinach Leafy greens
|
|
800
|
+
Broccoli Green florets [Healthy]
|
|
801
|
+
Spinach Leafy greens Organic
|
|
801
802
|
Tomato Red and ripe
|
|
802
803
|
Cucumber Cool and crisp
|
|
803
|
-
Bell Pepper Colorful and crunchy
|
|
804
|
-
|
|
805
|
-
›Bread Freshly baked
|
|
804
|
+
Bell Pepper Colorful and crunchy [Fresh]
|
|
805
|
+
|
|
806
|
+
›Bread Freshly baked Today [New]
|
|
806
807
|
|
|
807
808
|
|
|
808
809
|
↵ view details ↑↓ navigate ^k actions
|
|
@@ -810,3 +811,37 @@ test('list scrollbox scrolling with sections', async () => {
|
|
|
810
811
|
"
|
|
811
812
|
`)
|
|
812
813
|
}, 15000)
|
|
814
|
+
|
|
815
|
+
test('search resets selection to first visible item without flash', async () => {
|
|
816
|
+
await session.text({
|
|
817
|
+
waitFor: (text) => {
|
|
818
|
+
return /search/i.test(text)
|
|
819
|
+
},
|
|
820
|
+
})
|
|
821
|
+
|
|
822
|
+
// Navigate down to select Grape (4th item, index 3)
|
|
823
|
+
await session.press('down')
|
|
824
|
+
await session.press('down')
|
|
825
|
+
await session.press('down')
|
|
826
|
+
|
|
827
|
+
const beforeSearch = await session.text()
|
|
828
|
+
expect(beforeSearch).toContain('›Grape')
|
|
829
|
+
|
|
830
|
+
// Type one char at a time and check each intermediate frame:
|
|
831
|
+
// After each keystroke, the › marker must be on the first visible match.
|
|
832
|
+
// A flash bug would show › on a stale item or missing entirely.
|
|
833
|
+
await session.press('l')
|
|
834
|
+
const afterL = await session.text()
|
|
835
|
+
// 'l' matches: Lettuce, Apple, Bell Pepper, … — first visible must be selected
|
|
836
|
+
expect(afterL).toMatch(/›\S/)
|
|
837
|
+
|
|
838
|
+
await session.press('e')
|
|
839
|
+
const afterLe = await session.text()
|
|
840
|
+
expect(afterLe).toMatch(/›\S/)
|
|
841
|
+
|
|
842
|
+
await session.press('t')
|
|
843
|
+
const afterLet = await session.text()
|
|
844
|
+
// Only "Lettuce" matches "let"
|
|
845
|
+
expect(afterLet).toContain('›Lettuce')
|
|
846
|
+
expect(afterLet).not.toContain('›Grape')
|
|
847
|
+
}, 10000)
|
|
@@ -51,6 +51,7 @@ test('file picker shows form fields', async () => {
|
|
|
51
51
|
└
|
|
52
52
|
|
|
53
53
|
|
|
54
|
+
ctrl ↵ submit tab navigate ^k actions
|
|
54
55
|
|
|
55
56
|
|
|
56
57
|
|
|
@@ -76,7 +77,6 @@ test('file picker shows form fields', async () => {
|
|
|
76
77
|
|
|
77
78
|
|
|
78
79
|
|
|
79
|
-
ctrl ↵ submit tab navigate ^k actions
|
|
80
80
|
|
|
81
81
|
"
|
|
82
82
|
`)
|