termcast 1.3.48 → 1.3.49

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 (255) hide show
  1. package/dist/build.d.ts.map +1 -1
  2. package/dist/build.js +12 -0
  3. package/dist/build.js.map +1 -1
  4. package/dist/cli.js +5 -40
  5. package/dist/cli.js.map +1 -1
  6. package/dist/colors.d.ts +7 -7
  7. package/dist/colors.js +7 -7
  8. package/dist/compile.d.ts +6 -1
  9. package/dist/compile.d.ts.map +1 -1
  10. package/dist/compile.js +45 -26
  11. package/dist/compile.js.map +1 -1
  12. package/dist/components/actions.js +1 -1
  13. package/dist/components/actions.js.map +1 -1
  14. package/dist/components/bar-chart.d.ts +38 -0
  15. package/dist/components/bar-chart.d.ts.map +1 -0
  16. package/dist/components/bar-chart.js +158 -0
  17. package/dist/components/bar-chart.js.map +1 -0
  18. package/dist/components/bar-graph.d.ts +41 -0
  19. package/dist/components/bar-graph.d.ts.map +1 -0
  20. package/dist/components/bar-graph.js +95 -0
  21. package/dist/components/bar-graph.js.map +1 -0
  22. package/dist/components/detail.d.ts.map +1 -1
  23. package/dist/components/detail.js +5 -7
  24. package/dist/components/detail.js.map +1 -1
  25. package/dist/components/footer.d.ts.map +1 -1
  26. package/dist/components/footer.js +8 -9
  27. package/dist/components/footer.js.map +1 -1
  28. package/dist/components/form/date-picker.d.ts.map +1 -1
  29. package/dist/components/form/date-picker.js +7 -1
  30. package/dist/components/form/date-picker.js.map +1 -1
  31. package/dist/components/form/dropdown.d.ts.map +1 -1
  32. package/dist/components/form/dropdown.js +10 -2
  33. package/dist/components/form/dropdown.js.map +1 -1
  34. package/dist/components/form/index.d.ts.map +1 -1
  35. package/dist/components/form/index.js +4 -5
  36. package/dist/components/form/index.js.map +1 -1
  37. package/dist/components/form/use-form-navigation.d.ts.map +1 -1
  38. package/dist/components/form/use-form-navigation.js +6 -0
  39. package/dist/components/form/use-form-navigation.js.map +1 -1
  40. package/dist/components/graph.d.ts +111 -0
  41. package/dist/components/graph.d.ts.map +1 -0
  42. package/dist/components/graph.js +392 -0
  43. package/dist/components/graph.js.map +1 -0
  44. package/dist/components/icon.js +5 -5
  45. package/dist/components/icon.js.map +1 -1
  46. package/dist/components/list.d.ts +53 -5
  47. package/dist/components/list.d.ts.map +1 -1
  48. package/dist/components/list.js +125 -71
  49. package/dist/components/list.js.map +1 -1
  50. package/dist/components/loading-bar.js +3 -3
  51. package/dist/components/loading-bar.js.map +1 -1
  52. package/dist/components/loading-text.d.ts +1 -1
  53. package/dist/components/loading-text.d.ts.map +1 -1
  54. package/dist/components/loading-text.js +3 -1
  55. package/dist/components/loading-text.js.map +1 -1
  56. package/dist/components/metadata.js +2 -2
  57. package/dist/components/metadata.js.map +1 -1
  58. package/dist/components/row.d.ts +10 -0
  59. package/dist/components/row.d.ts.map +1 -0
  60. package/dist/components/row.js +12 -0
  61. package/dist/components/row.js.map +1 -0
  62. package/dist/components/table.d.ts +57 -0
  63. package/dist/components/table.d.ts.map +1 -0
  64. package/dist/components/table.js +365 -0
  65. package/dist/components/table.js.map +1 -0
  66. package/dist/descendants.js +13 -13
  67. package/dist/descendants.js.map +1 -1
  68. package/dist/examples/bar-graph-weekly.d.ts +2 -0
  69. package/dist/examples/bar-graph-weekly.d.ts.map +1 -0
  70. package/dist/examples/bar-graph-weekly.js +95 -0
  71. package/dist/examples/bar-graph-weekly.js.map +1 -0
  72. package/dist/examples/components-weird-places.d.ts +2 -0
  73. package/dist/examples/components-weird-places.d.ts.map +1 -0
  74. package/dist/examples/components-weird-places.js +46 -0
  75. package/dist/examples/components-weird-places.js.map +1 -0
  76. package/dist/examples/graph-bar-chart.d.ts +2 -0
  77. package/dist/examples/graph-bar-chart.d.ts.map +1 -0
  78. package/dist/examples/graph-bar-chart.js +270 -0
  79. package/dist/examples/graph-bar-chart.js.map +1 -0
  80. package/dist/examples/graph-multi-series.d.ts +2 -0
  81. package/dist/examples/graph-multi-series.d.ts.map +1 -0
  82. package/dist/examples/graph-multi-series.js +23 -0
  83. package/dist/examples/graph-multi-series.js.map +1 -0
  84. package/dist/examples/graph-polymarket.d.ts +2 -0
  85. package/dist/examples/graph-polymarket.d.ts.map +1 -0
  86. package/dist/examples/graph-polymarket.js +109 -0
  87. package/dist/examples/graph-polymarket.js.map +1 -0
  88. package/dist/examples/graph-row.d.ts +2 -0
  89. package/dist/examples/graph-row.d.ts.map +1 -0
  90. package/dist/examples/graph-row.js +226 -0
  91. package/dist/examples/graph-row.js.map +1 -0
  92. package/dist/examples/graph-styles.d.ts +2 -0
  93. package/dist/examples/graph-styles.d.ts.map +1 -0
  94. package/dist/examples/graph-styles.js +316 -0
  95. package/dist/examples/graph-styles.js.map +1 -0
  96. package/dist/examples/list-accessory-table.d.ts +2 -0
  97. package/dist/examples/list-accessory-table.d.ts.map +1 -0
  98. package/dist/examples/list-accessory-table.js +46 -0
  99. package/dist/examples/list-accessory-table.js.map +1 -0
  100. package/dist/examples/list-item-accessories.d.ts +2 -0
  101. package/dist/examples/list-item-accessories.d.ts.map +1 -0
  102. package/dist/examples/list-item-accessories.js +27 -0
  103. package/dist/examples/list-item-accessories.js.map +1 -0
  104. package/dist/examples/list-no-actions.d.ts +2 -0
  105. package/dist/examples/list-no-actions.d.ts.map +1 -0
  106. package/dist/examples/list-no-actions.js +7 -0
  107. package/dist/examples/list-no-actions.js.map +1 -0
  108. package/dist/examples/simple-detail-table.d.ts +2 -0
  109. package/dist/examples/simple-detail-table.d.ts.map +1 -0
  110. package/dist/examples/simple-detail-table.js +45 -0
  111. package/dist/examples/simple-detail-table.js.map +1 -0
  112. package/dist/examples/simple-graph.d.ts +2 -0
  113. package/dist/examples/simple-graph.d.ts.map +1 -0
  114. package/dist/examples/simple-graph.js +32 -0
  115. package/dist/examples/simple-graph.js.map +1 -0
  116. package/dist/examples/simple-table-wrap.d.ts +2 -0
  117. package/dist/examples/simple-table-wrap.d.ts.map +1 -0
  118. package/dist/examples/simple-table-wrap.js +37 -0
  119. package/dist/examples/simple-table-wrap.js.map +1 -0
  120. package/dist/examples/table-edge-cases.d.ts +2 -0
  121. package/dist/examples/table-edge-cases.d.ts.map +1 -0
  122. package/dist/examples/table-edge-cases.js +70 -0
  123. package/dist/examples/table-edge-cases.js.map +1 -0
  124. package/dist/examples/table-flex-grow.d.ts +2 -0
  125. package/dist/examples/table-flex-grow.d.ts.map +1 -0
  126. package/dist/examples/table-flex-grow.js +18 -0
  127. package/dist/examples/table-flex-grow.js.map +1 -0
  128. package/dist/extensions/dev.d.ts.map +1 -1
  129. package/dist/extensions/dev.js +5 -1
  130. package/dist/extensions/dev.js.map +1 -1
  131. package/dist/globals.d.ts +1 -0
  132. package/dist/globals.d.ts.map +1 -1
  133. package/dist/globals.js +2 -0
  134. package/dist/globals.js.map +1 -1
  135. package/dist/index.d.ts +10 -0
  136. package/dist/index.d.ts.map +1 -1
  137. package/dist/index.js +10 -0
  138. package/dist/index.js.map +1 -1
  139. package/dist/internal/date-picker-widget.d.ts.map +1 -1
  140. package/dist/internal/date-picker-widget.js +4 -0
  141. package/dist/internal/date-picker-widget.js.map +1 -1
  142. package/dist/internal/providers.d.ts.map +1 -1
  143. package/dist/internal/providers.js +1 -3
  144. package/dist/internal/providers.js.map +1 -1
  145. package/dist/markdown-utils.d.ts +22 -1
  146. package/dist/markdown-utils.d.ts.map +1 -1
  147. package/dist/markdown-utils.js +66 -1
  148. package/dist/markdown-utils.js.map +1 -1
  149. package/dist/opentui.d.ts +4 -0
  150. package/dist/opentui.d.ts.map +1 -0
  151. package/dist/opentui.js +3 -0
  152. package/dist/opentui.js.map +1 -0
  153. package/dist/release.d.ts +2 -1
  154. package/dist/release.d.ts.map +1 -1
  155. package/dist/release.js +2 -1
  156. package/dist/release.js.map +1 -1
  157. package/dist/state.d.ts +1 -0
  158. package/dist/state.d.ts.map +1 -1
  159. package/dist/state.js +1 -1
  160. package/dist/state.js.map +1 -1
  161. package/dist/theme.d.ts +1 -0
  162. package/dist/theme.d.ts.map +1 -1
  163. package/dist/theme.js +13 -0
  164. package/dist/theme.js.map +1 -1
  165. package/dist/themes/nerv.json +227 -0
  166. package/dist/themes/termcast.json +72 -71
  167. package/dist/themes.d.ts +2 -1
  168. package/dist/themes.d.ts.map +1 -1
  169. package/dist/themes.js +7 -5
  170. package/dist/themes.js.map +1 -1
  171. package/dist/utils.d.ts.map +1 -1
  172. package/dist/utils.js +3 -0
  173. package/dist/utils.js.map +1 -1
  174. package/package.json +12 -4
  175. package/src/build.tsx +13 -0
  176. package/src/cli.tsx +5 -49
  177. package/src/colors.tsx +7 -7
  178. package/src/compile.tsx +52 -29
  179. package/src/components/actions.tsx +1 -1
  180. package/src/components/bar-chart.tsx +271 -0
  181. package/src/components/bar-graph.tsx +214 -0
  182. package/src/components/detail.tsx +7 -8
  183. package/src/components/footer.tsx +14 -15
  184. package/src/components/form/date-picker.tsx +9 -0
  185. package/src/components/form/dropdown.tsx +13 -3
  186. package/src/components/form/index.tsx +4 -6
  187. package/src/components/form/use-form-navigation.tsx +6 -0
  188. package/src/components/graph.tsx +506 -0
  189. package/src/components/icon.tsx +5 -5
  190. package/src/components/list.tsx +210 -102
  191. package/src/components/loading-bar.tsx +3 -3
  192. package/src/components/loading-text.tsx +4 -2
  193. package/src/components/metadata.tsx +2 -2
  194. package/src/components/row.tsx +31 -0
  195. package/src/components/table.tsx +511 -0
  196. package/src/descendants.tsx +13 -13
  197. package/src/examples/action-shortcut.vitest.tsx +1 -1
  198. package/src/examples/actions-context.vitest.tsx +1 -1
  199. package/src/examples/bar-graph-weekly.tsx +264 -0
  200. package/src/examples/bar-graph-weekly.vitest.tsx +275 -0
  201. package/src/examples/detail-metadata-showcase.vitest.tsx +8 -8
  202. package/src/examples/form-basic.vitest.tsx +239 -0
  203. package/src/examples/form-dropdown.vitest.tsx +29 -29
  204. package/src/examples/form-tagpicker.vitest.tsx +27 -27
  205. package/src/examples/github.vitest.tsx +4 -4
  206. package/src/examples/graph-bar-chart.tsx +408 -0
  207. package/src/examples/graph-bar-chart.vitest.tsx +283 -0
  208. package/src/examples/graph-multi-series.tsx +36 -0
  209. package/src/examples/graph-multi-series.vitest.tsx +89 -0
  210. package/src/examples/graph-polymarket.tsx +182 -0
  211. package/src/examples/graph-polymarket.vitest.tsx +130 -0
  212. package/src/examples/graph-row.tsx +347 -0
  213. package/src/examples/graph-row.vitest.tsx +295 -0
  214. package/src/examples/graph-styles.tsx +457 -0
  215. package/src/examples/graph-styles.vitest.tsx +322 -0
  216. package/src/examples/list-accessory-table.tsx +77 -0
  217. package/src/examples/list-detail-metadata.vitest.tsx +21 -21
  218. package/src/examples/list-dropdown-default.vitest.tsx +12 -12
  219. package/src/examples/list-item-accessories.tsx +106 -0
  220. package/src/examples/list-item-accessories.vitest.tsx +115 -0
  221. package/src/examples/list-no-actions.tsx +18 -0
  222. package/src/examples/list-no-actions.vitest.tsx +97 -0
  223. package/src/examples/list-spacing-mode.vitest.tsx +6 -6
  224. package/src/examples/list-with-detail.vitest.tsx +92 -92
  225. package/src/examples/list-with-dropdown.vitest.tsx +49 -6
  226. package/src/examples/list-with-sections.vitest.tsx +61 -56
  227. package/src/examples/simple-detail-markdown.vitest.tsx +21 -17
  228. package/src/examples/simple-detail-table.tsx +65 -0
  229. package/src/examples/simple-detail-table.vitest.tsx +200 -0
  230. package/src/examples/simple-graph.tsx +51 -0
  231. package/src/examples/simple-graph.vitest.tsx +124 -0
  232. package/src/examples/simple-grid.vitest.tsx +3 -3
  233. package/src/examples/simple-list-search.vitest.tsx +65 -0
  234. package/src/examples/simple-navigation.vitest.tsx +3 -3
  235. package/src/examples/simple-table-wrap.tsx +55 -0
  236. package/src/examples/simple-table-wrap.vitest.tsx +91 -0
  237. package/src/examples/store.vitest.tsx +1 -1
  238. package/src/examples/table-edge-cases.tsx +72 -0
  239. package/src/examples/table-edge-cases.vitest.tsx +307 -0
  240. package/src/examples/table-flex-grow.tsx +53 -0
  241. package/src/examples/table-flex-grow.vitest.tsx +124 -0
  242. package/src/extensions/dev.tsx +7 -1
  243. package/src/globals.ts +3 -0
  244. package/src/index.tsx +31 -0
  245. package/src/internal/date-picker-widget.tsx +4 -0
  246. package/src/internal/providers.tsx +1 -4
  247. package/src/markdown-utils.tsx +82 -1
  248. package/src/opentui.tsx +5 -0
  249. package/src/release.tsx +3 -0
  250. package/src/state.tsx +2 -1
  251. package/src/theme.tsx +14 -0
  252. package/src/themes/nerv.json +231 -0
  253. package/src/themes/termcast.json +75 -71
  254. package/src/themes.ts +8 -5
  255. package/src/utils.tsx +4 -0
@@ -37,13 +37,12 @@ test('list with detail view display and navigation', async () => {
37
37
 
38
38
  > Search Pokemon...
39
39
 
40
- ›bulbasaur #001
41
- ivysaur #002 │ bulbasaur ▲
42
- charmander #004 │
43
- charmeleon #005 │ Illustration
44
- squirtle #007 │
45
- wartortle #008 │ Types
46
-
40
+ ›bulbasaur #001 │ bulbasaur ▲
41
+ ivysaur #002 │
42
+ charmander #004 │ Illustration
43
+ charmeleon #005 │
44
+ squirtle #007 │ Types
45
+ wartortle #008 │
47
46
  │ Grass / Poison
48
47
 
49
48
  │ Characteristics
@@ -58,10 +57,11 @@ test('list with detail view display and navigation', async () => {
58
57
  │ - Overgrow
59
58
 
60
59
 
61
-
62
60
  │ Types
63
61
 
64
- ↵ toggle detail ↑↓ navigate ^k a │ Grass
62
+ │ Grass
63
+
64
+ ↵ toggle detail ↑↓ navigate ^k a │ ───────────────────────────────── ▼
65
65
 
66
66
  "
67
67
  `)
@@ -79,13 +79,12 @@ test('list with detail view display and navigation', async () => {
79
79
 
80
80
  > Search Pokemon...
81
81
 
82
- bulbasaur #001
83
- ›ivysaur #002 │ ivysaur ▲
84
- charmander #004 │
85
- charmeleon #005 │ Illustration
86
- squirtle #007 │
87
- wartortle #008 │ Types
88
-
82
+ bulbasaur #001 │ ivysaur ▲
83
+ ›ivysaur #002 │
84
+ charmander #004 │ Illustration
85
+ charmeleon #005 │
86
+ squirtle #007 │ Types
87
+ wartortle #008 │
89
88
  │ Grass / Poison
90
89
 
91
90
  │ Characteristics
@@ -100,10 +99,11 @@ test('list with detail view display and navigation', async () => {
100
99
  │ - Overgrow
101
100
 
102
101
 
103
-
104
102
  │ Types
105
103
 
106
- ↵ toggle detail ↑↓ navigate ^k a │ Grass
104
+ │ Grass
105
+
106
+ ↵ toggle detail ↑↓ navigate ^k a │ ───────────────────────────────── ▼
107
107
 
108
108
  "
109
109
  `)
@@ -119,13 +119,12 @@ test('list with detail view display and navigation', async () => {
119
119
 
120
120
  > Search Pokemon...
121
121
 
122
- bulbasaur #001
123
- ivysaur #002 │ charmander ▲
124
- ›charmander #004 │
125
- charmeleon #005 │ Illustration
126
- squirtle #007 │
127
- wartortle #008 │ Types
128
-
122
+ bulbasaur #001 │ charmander ▲
123
+ ivysaur #002 │
124
+ ›charmander #004 │ Illustration
125
+ charmeleon #005 │
126
+ squirtle #007 │ Types
127
+ wartortle #008 │
129
128
  │ Fire
130
129
 
131
130
  │ Characteristics
@@ -140,10 +139,11 @@ test('list with detail view display and navigation', async () => {
140
139
  │ - Solar Power
141
140
 
142
141
 
143
-
144
142
  │ Types
145
143
 
146
- ↵ toggle detail ↑↓ navigate ^k a │ Fire
144
+ │ Fire
145
+
146
+ ↵ toggle detail ↑↓ navigate ^k a │ ───────────────────────────────── ▼
147
147
 
148
148
  "
149
149
  `)
@@ -162,9 +162,9 @@ test('list with detail view display and navigation', async () => {
162
162
 
163
163
  > Search Pokemon...
164
164
 
165
- bulbasaur #001
166
- ivysaur #002 │ charmander ▲
167
- ›charmander #004 │
165
+ bulbasaur #001 │ charmander ▲
166
+ ivysaur #002 │
167
+ ›charmander #004 │ Illustration
168
168
  ╭──────────────────────────────────────────────────────────────────────────╮
169
169
  │ │
170
170
  │ Actions esc │
@@ -176,7 +176,7 @@ test('list with detail view display and navigation', async () => {
176
176
  │ │
177
177
  │ Settings │
178
178
  │ Change Theme... │
179
- See Console Logs
179
+ Toggle Console Logs
180
180
  │ │
181
181
  │ │
182
182
  │ │
@@ -186,7 +186,7 @@ test('list with detail view display and navigation', async () => {
186
186
  │ │
187
187
  ╰──────────────────────────────────────────────────────────────────────────╯
188
188
 
189
- ↵ toggle detail ↑↓ navigate ^k a │ Fire
189
+ ↵ toggle detail ↑↓ navigate ^k a │ ─────────────────────────────────
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
217
+ ↵ toggle detail ↑↓ navigate ^k actions powered by termcast.app
218
218
 
219
219
 
220
220
 
@@ -251,13 +251,12 @@ test('list with detail view display and navigation', async () => {
251
251
 
252
252
  > Search Pokemon...
253
253
 
254
- bulbasaur #001
255
- ivysaur #002 │ charmander ▲
256
- ›charmander #004 │
257
- charmeleon #005 │ Illustration
258
- squirtle #007 │
259
- wartortle #008 │ Types
260
-
254
+ bulbasaur #001 │ charmander ▲
255
+ ivysaur #002 │
256
+ ›charmander #004 │ Illustration
257
+ charmeleon #005 │
258
+ squirtle #007 │ Types
259
+ wartortle #008 │
261
260
  │ Fire
262
261
 
263
262
  │ Characteristics
@@ -272,10 +271,11 @@ test('list with detail view display and navigation', async () => {
272
271
  │ - Solar Power
273
272
 
274
273
 
275
-
276
274
  │ Types
277
275
 
278
- ↵ toggle detail ↑↓ navigate ^k a │ Fire
276
+ │ Fire
277
+
278
+ ↵ toggle detail ↑↓ navigate ^k a │ ───────────────────────────────── ▼
279
279
 
280
280
  "
281
281
  `)
@@ -303,9 +303,8 @@ test('list detail view search functionality', async () => {
303
303
 
304
304
  > char
305
305
 
306
- ›charmander #004
307
- charmeleon #005 │ charmander ▲
308
- │ █
306
+ ›charmander #004 │ charmander ▲
307
+ charmeleon #005 │
309
308
  │ Illustration
310
309
 
311
310
  │ Types
@@ -324,10 +323,11 @@ test('list detail view search functionality', async () => {
324
323
  │ - Solar Power
325
324
 
326
325
 
327
-
328
326
  │ Types
329
327
 
330
- ↵ toggle detail ↑↓ navigate ^k a │ Fire
328
+ │ Fire
329
+
330
+ ↵ toggle detail ↑↓ navigate ^k a │ ───────────────────────────────── ▼
331
331
 
332
332
  "
333
333
  `)
@@ -352,10 +352,9 @@ test('list detail view search functionality', async () => {
352
352
 
353
353
  > water
354
354
 
355
-
356
355
  │ wartortle ▲
357
- No items found │ █
358
- │ Illustration
356
+ │ █
357
+ No items found │ Illustration
359
358
 
360
359
  │ Types
361
360
 
@@ -373,10 +372,11 @@ test('list detail view search functionality', async () => {
373
372
  │ - Rain Dish
374
373
 
375
374
 
376
-
377
375
  │ Types
378
376
 
379
- ↵ toggle detail ↑↓ navigate ^k a │ Water
377
+ │ Water
378
+
379
+ ↵ toggle detail ↑↓ navigate ^k a │ ───────────────────────────────── ▼
380
380
 
381
381
  "
382
382
  `)
@@ -392,10 +392,9 @@ test('list detail view search functionality', async () => {
392
392
 
393
393
  > water
394
394
 
395
-
396
395
  │ wartortle ▲
397
- No items found │ █
398
- │ Illustration
396
+ │ █
397
+ No items found │ Illustration
399
398
 
400
399
  │ Types
401
400
 
@@ -413,10 +412,11 @@ test('list detail view search functionality', async () => {
413
412
  │ - Rain Dish
414
413
 
415
414
 
416
-
417
415
  │ Types
418
416
 
419
- ↵ toggle detail ↑↓ navigate ^k a │ Water
417
+ │ Water
418
+
419
+ ↵ toggle detail ↑↓ navigate ^k a │ ───────────────────────────────── ▼
420
420
 
421
421
  "
422
422
  `)
@@ -444,13 +444,12 @@ test('list detail metadata rendering', async () => {
444
444
 
445
445
  > Search Pokemon...
446
446
 
447
- ›bulbasaur #001
448
- ivysaur #002 │ bulbasaur ▲
449
- charmander #004 │
450
- charmeleon #005 │ Illustration
451
- squirtle #007 │
452
- wartortle #008 │ Types
453
-
447
+ ›bulbasaur #001 │ bulbasaur ▲
448
+ ivysaur #002 │
449
+ charmander #004 │ Illustration
450
+ charmeleon #005 │
451
+ squirtle #007 │ Types
452
+ wartortle #008 │
454
453
  │ Grass / Poison
455
454
 
456
455
  │ Characteristics
@@ -465,10 +464,11 @@ test('list detail metadata rendering', async () => {
465
464
  │ - Overgrow
466
465
 
467
466
 
468
-
469
467
  │ Types
470
468
 
471
- ↵ toggle detail ↑↓ navigate ^k a │ Grass
469
+ │ Grass
470
+
471
+ ↵ toggle detail ↑↓ navigate ^k a │ ───────────────────────────────── ▼
472
472
 
473
473
  "
474
474
  `)
@@ -491,13 +491,12 @@ test('list detail metadata rendering', async () => {
491
491
 
492
492
  > Search Pokemon...
493
493
 
494
- bulbasaur #001
495
- ivysaur #002 │ squirtle ▲
496
- charmander #004 │
497
- charmeleon #005 │ Illustration
498
- ›squirtle #007 │
499
- wartortle #008 │ Types
500
-
494
+ bulbasaur #001 │ squirtle ▲
495
+ ivysaur #002 │
496
+ charmander #004 │ Illustration
497
+ charmeleon #005 │
498
+ ›squirtle #007 │ Types
499
+ wartortle #008 │
501
500
  │ Water
502
501
 
503
502
  │ Characteristics
@@ -512,10 +511,11 @@ test('list detail metadata rendering', async () => {
512
511
  │ - Rain Dish
513
512
 
514
513
 
515
-
516
514
  │ Types
517
515
 
518
- ↵ toggle detail ↑↓ navigate ^k a │ Water
516
+ │ Water
517
+
518
+ ↵ toggle detail ↑↓ navigate ^k a │ ───────────────────────────────── ▼
519
519
 
520
520
  "
521
521
  `)
@@ -565,24 +565,24 @@ test('list with detail layout consistency - short vs long detail content', async
565
565
 
566
566
  > Search...
567
567
 
568
- ›Short Detail
569
- Long Detail │ Brief content
570
- Another Item │
571
- This is short.
568
+ ›Short Detail │ Brief content
569
+ Long Detail │
570
+ Another Item │ This is short.
571
+
572
+
573
+
574
+
575
+
576
+
577
+
578
+
579
+
572
580
 
573
581
 
574
582
 
575
583
 
576
584
  ↑↓ navigate ^k actions │
577
585
 
578
-
579
-
580
-
581
-
582
-
583
-
584
-
585
-
586
586
  "
587
587
  `)
588
588
  expect(longDetailSnapshot).toMatchInlineSnapshot(`
@@ -593,10 +593,9 @@ test('list with detail layout consistency - short vs long detail content', async
593
593
 
594
594
  > Search...
595
595
 
596
- Short Detail
597
- ›Long Detail │ This item has extensive detail ▲
598
- Another Item │ content ▀
599
-
596
+ Short Detail │ This item has extensive detail ▲
597
+ ›Long Detail │ content ▀
598
+ Another Item │
600
599
  │ Section 1
601
600
 
602
601
  │ This is a very long description
@@ -609,7 +608,8 @@ test('list with detail layout consistency - short vs long detail content', async
609
608
 
610
609
  │ More content here to ensure we
611
610
  │ have enough text to cause
612
- ↑↓ navigate ^k actions │ vertical overflow in the detail
611
+ │ vertical overflow in the detail
612
+ ↑↓ navigate ^k actions │ panel scrollbox. ▼
613
613
 
614
614
  "
615
615
  `)
@@ -35,7 +35,6 @@ test('list with dropdown navigation', async () => {
35
35
 
36
36
  Search Beers ───────────────────────────────────────────────────
37
37
 
38
-
39
38
  > Search... All ▾
40
39
 
41
40
  ›Augustiner Helles Beer
@@ -55,6 +54,7 @@ test('list with dropdown navigation', async () => {
55
54
 
56
55
 
57
56
 
57
+
58
58
  "
59
59
  `)
60
60
 
@@ -205,7 +205,6 @@ test('list with dropdown navigation', async () => {
205
205
 
206
206
  Search Beers ───────────────────────────────────────────────────
207
207
 
208
-
209
208
  > Search... Wine ▾
210
209
 
211
210
  ›Chateau Margaux Wine
@@ -225,10 +224,54 @@ test('list with dropdown navigation', async () => {
225
224
 
226
225
 
227
226
 
227
+
228
228
  "
229
229
  `)
230
230
  }, 10000)
231
231
 
232
+ test('small screen: dropdown accessory wastes vertical space', async () => {
233
+ const smallSession = await launchTerminal({
234
+ command: 'bun',
235
+ args: ['src/examples/list-with-dropdown.tsx'],
236
+ cols: 60,
237
+ rows: 15,
238
+ })
239
+
240
+ try {
241
+ const snapshot = await smallSession.text({
242
+ waitFor: (text) => {
243
+ return (
244
+ /search beers/i.test(text) &&
245
+ text.includes('All ▾') &&
246
+ text.includes('Augustiner Helles')
247
+ )
248
+ },
249
+ timeout: 10000,
250
+ })
251
+
252
+ expect(snapshot).toMatchInlineSnapshot(`
253
+ "
254
+
255
+
256
+ Search Beers ─────────────────────────────────────────
257
+
258
+ > Search... All ▾
259
+
260
+ ›Augustiner Helles Beer
261
+ Camden Hells Beer
262
+ Leffe Blonde Beer
263
+ Sierra Nevada IPA Beer
264
+ Chateau Margaux Wine
265
+ Pinot Noir Wine
266
+
267
+
268
+ ↑↓ navigate ^p dropdown ^k actions"
269
+ `)
270
+ } finally {
271
+ smallSession.close()
272
+ }
273
+ }, 15000)
274
+
232
275
  test('list with dropdown search and filter', async () => {
233
276
  await session.text({
234
277
  waitFor: (text) => {
@@ -293,9 +336,9 @@ test('list with dropdown search and filter', async () => {
293
336
 
294
337
  Search Beers ───────────────────────────────────────────────────
295
338
 
296
-
297
339
  > Search... All ▾
298
340
 
341
+ ›Augustiner Helles Beer
299
342
  ╭────────────────────────────────────────────────────────────────╮
300
343
  │ │
301
344
  │ Select Drink Type esc │
@@ -308,7 +351,7 @@ test('list with dropdown search and filter', async () => {
308
351
  │ ↵ select ↑↓ navigate │
309
352
  │ │
310
353
  ╰────────────────────────────────────────────────────────────────╯
311
- ↑↓ navigate ^p dropdown ^k actions
354
+
312
355
 
313
356
 
314
357
 
@@ -329,7 +372,6 @@ test('list with dropdown search and filter', async () => {
329
372
 
330
373
  Search Beers ───────────────────────────────────────────────────
331
374
 
332
-
333
375
  > Search... Wine ▾
334
376
 
335
377
  ›Chateau Margaux Wine
@@ -349,6 +391,7 @@ test('list with dropdown search and filter', async () => {
349
391
 
350
392
 
351
393
 
394
+
352
395
  "
353
396
  `)
354
397
 
@@ -365,7 +408,6 @@ test('list with dropdown search and filter', async () => {
365
408
 
366
409
  Search Beers ───────────────────────────────────────────────────
367
410
 
368
-
369
411
  > pinot Wine ▾
370
412
 
371
413
  ›Pinot Noir Wine
@@ -385,6 +427,7 @@ test('list with dropdown search and filter', async () => {
385
427
 
386
428
 
387
429
 
430
+
388
431
  "
389
432
  `)
390
433
  }, 10000)