termcast 1.3.30 → 1.3.32

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 (294) hide show
  1. package/dist/apis/cache.d.ts.map +1 -1
  2. package/dist/apis/cache.js +4 -39
  3. package/dist/apis/cache.js.map +1 -1
  4. package/dist/apis/hud.d.ts.map +1 -1
  5. package/dist/apis/hud.js +13 -31
  6. package/dist/apis/hud.js.map +1 -1
  7. package/dist/apis/localstorage.d.ts.map +1 -1
  8. package/dist/apis/localstorage.js +3 -27
  9. package/dist/apis/localstorage.js.map +1 -1
  10. package/dist/apis/toast.d.ts +16 -43
  11. package/dist/apis/toast.d.ts.map +1 -1
  12. package/dist/apis/toast.js +78 -177
  13. package/dist/apis/toast.js.map +1 -1
  14. package/dist/build.d.ts +3 -1
  15. package/dist/build.d.ts.map +1 -1
  16. package/dist/build.js +52 -2
  17. package/dist/build.js.map +1 -1
  18. package/dist/cli.d.ts +1 -0
  19. package/dist/cli.d.ts.map +1 -1
  20. package/dist/cli.js +206 -25
  21. package/dist/cli.js.map +1 -1
  22. package/dist/colors.d.ts.map +1 -1
  23. package/dist/colors.js +1 -0
  24. package/dist/colors.js.map +1 -1
  25. package/dist/compile.d.ts +0 -1
  26. package/dist/compile.d.ts.map +1 -1
  27. package/dist/compile.js +18 -23
  28. package/dist/compile.js.map +1 -1
  29. package/dist/components/actions.d.ts.map +1 -1
  30. package/dist/components/actions.js +30 -15
  31. package/dist/components/actions.js.map +1 -1
  32. package/dist/components/animation-tick.d.ts +12 -0
  33. package/dist/components/animation-tick.d.ts.map +1 -0
  34. package/dist/components/animation-tick.js +63 -0
  35. package/dist/components/animation-tick.js.map +1 -0
  36. package/dist/components/detail.d.ts.map +1 -1
  37. package/dist/components/detail.js +10 -13
  38. package/dist/components/detail.js.map +1 -1
  39. package/dist/components/dropdown.d.ts +1 -0
  40. package/dist/components/dropdown.d.ts.map +1 -1
  41. package/dist/components/dropdown.js +27 -26
  42. package/dist/components/dropdown.js.map +1 -1
  43. package/dist/components/extension-preferences.d.ts.map +1 -1
  44. package/dist/components/extension-preferences.js +15 -10
  45. package/dist/components/extension-preferences.js.map +1 -1
  46. package/dist/components/footer.d.ts +13 -0
  47. package/dist/components/footer.d.ts.map +1 -0
  48. package/dist/components/footer.js +106 -0
  49. package/dist/components/footer.js.map +1 -0
  50. package/dist/components/form/file-autocomplete.d.ts +19 -4
  51. package/dist/components/form/file-autocomplete.d.ts.map +1 -1
  52. package/dist/components/form/file-autocomplete.js +56 -55
  53. package/dist/components/form/file-autocomplete.js.map +1 -1
  54. package/dist/components/form/file-picker.d.ts.map +1 -1
  55. package/dist/components/form/file-picker.js +26 -15
  56. package/dist/components/form/file-picker.js.map +1 -1
  57. package/dist/components/form/index.d.ts.map +1 -1
  58. package/dist/components/form/index.js +17 -15
  59. package/dist/components/form/index.js.map +1 -1
  60. package/dist/components/form/with-left-border.d.ts.map +1 -1
  61. package/dist/components/form/with-left-border.js +4 -12
  62. package/dist/components/form/with-left-border.js.map +1 -1
  63. package/dist/components/list.d.ts.map +1 -1
  64. package/dist/components/list.js +126 -86
  65. package/dist/components/list.js.map +1 -1
  66. package/dist/components/loading-bar.d.ts.map +1 -1
  67. package/dist/components/loading-bar.js +5 -22
  68. package/dist/components/loading-bar.js.map +1 -1
  69. package/dist/components/loading-text.d.ts.map +1 -1
  70. package/dist/components/loading-text.js +3 -22
  71. package/dist/components/loading-text.js.map +1 -1
  72. package/dist/components/theme-picker.d.ts +2 -0
  73. package/dist/components/theme-picker.d.ts.map +1 -0
  74. package/dist/components/theme-picker.js +37 -0
  75. package/dist/components/theme-picker.js.map +1 -0
  76. package/dist/descendants.d.ts +6 -0
  77. package/dist/descendants.d.ts.map +1 -1
  78. package/dist/descendants.js +74 -8
  79. package/dist/descendants.js.map +1 -1
  80. package/dist/examples/internal/descendants-rerender.d.ts +14 -0
  81. package/dist/examples/internal/descendants-rerender.d.ts.map +1 -0
  82. package/dist/examples/internal/descendants-rerender.js +145 -0
  83. package/dist/examples/internal/descendants-rerender.js.map +1 -0
  84. package/dist/examples/internal/simple-dialog.js +4 -1
  85. package/dist/examples/internal/simple-dialog.js.map +1 -1
  86. package/dist/examples/internal/simple-scrollbox.js +1 -1
  87. package/dist/examples/internal/simple-scrollbox.js.map +1 -1
  88. package/dist/examples/list-with-dropdown.js +1 -1
  89. package/dist/examples/list-with-dropdown.js.map +1 -1
  90. package/dist/examples/miscellaneous.js +1 -1
  91. package/dist/examples/miscellaneous.js.map +1 -1
  92. package/dist/examples/toast-action.d.ts +2 -0
  93. package/dist/examples/toast-action.d.ts.map +1 -0
  94. package/dist/examples/toast-action.js +76 -0
  95. package/dist/examples/toast-action.js.map +1 -0
  96. package/dist/examples/toast-variations.js +38 -36
  97. package/dist/examples/toast-variations.js.map +1 -1
  98. package/dist/extensions/dev.d.ts +1 -1
  99. package/dist/extensions/dev.d.ts.map +1 -1
  100. package/dist/extensions/dev.js +62 -30
  101. package/dist/extensions/dev.js.map +1 -1
  102. package/dist/extensions/home.d.ts.map +1 -1
  103. package/dist/extensions/home.js +4 -3
  104. package/dist/extensions/home.js.map +1 -1
  105. package/dist/extensions/react-refresh-init.d.ts +5 -0
  106. package/dist/extensions/react-refresh-init.d.ts.map +1 -0
  107. package/dist/extensions/react-refresh-init.js +52 -0
  108. package/dist/extensions/react-refresh-init.js.map +1 -0
  109. package/dist/internal/date-picker-widget.js +1 -1
  110. package/dist/internal/date-picker-widget.js.map +1 -1
  111. package/dist/internal/dialog.d.ts +8 -3
  112. package/dist/internal/dialog.d.ts.map +1 -1
  113. package/dist/internal/dialog.js +37 -53
  114. package/dist/internal/dialog.js.map +1 -1
  115. package/dist/internal/navigation.d.ts +1 -0
  116. package/dist/internal/navigation.d.ts.map +1 -1
  117. package/dist/internal/navigation.js +25 -1
  118. package/dist/internal/navigation.js.map +1 -1
  119. package/dist/internal/providers.d.ts.map +1 -1
  120. package/dist/internal/providers.js +9 -197
  121. package/dist/internal/providers.js.map +1 -1
  122. package/dist/internal/scrollbox.d.ts.map +1 -1
  123. package/dist/internal/scrollbox.js +1 -0
  124. package/dist/internal/scrollbox.js.map +1 -1
  125. package/dist/release.d.ts +1 -0
  126. package/dist/release.d.ts.map +1 -1
  127. package/dist/release.js +16 -9
  128. package/dist/release.js.map +1 -1
  129. package/dist/state.d.ts +27 -1
  130. package/dist/state.d.ts.map +1 -1
  131. package/dist/state.js +6 -0
  132. package/dist/state.js.map +1 -1
  133. package/dist/theme.d.ts +6 -19
  134. package/dist/theme.d.ts.map +1 -1
  135. package/dist/theme.js +76 -45
  136. package/dist/theme.js.map +1 -1
  137. package/dist/themes/aura.json +69 -0
  138. package/dist/themes/ayu.json +80 -0
  139. package/dist/themes/catppuccin-frappe.json +233 -0
  140. package/dist/themes/catppuccin-macchiato.json +233 -0
  141. package/dist/themes/catppuccin.json +112 -0
  142. package/dist/themes/cobalt2.json +228 -0
  143. package/dist/themes/cursor.json +249 -0
  144. package/dist/themes/dracula.json +219 -0
  145. package/dist/themes/everforest.json +241 -0
  146. package/dist/themes/flexoki.json +237 -0
  147. package/dist/themes/github-light.json +56 -0
  148. package/dist/themes/github.json +241 -0
  149. package/dist/themes/gruvbox.json +95 -0
  150. package/dist/themes/kanagawa.json +77 -0
  151. package/dist/themes/lucent-orng.json +227 -0
  152. package/dist/themes/material.json +235 -0
  153. package/dist/themes/matrix.json +77 -0
  154. package/dist/themes/mercury.json +245 -0
  155. package/dist/themes/monokai.json +221 -0
  156. package/dist/themes/nightowl.json +221 -0
  157. package/dist/themes/nord.json +223 -0
  158. package/dist/themes/one-dark.json +84 -0
  159. package/dist/themes/opencode-light.json +62 -0
  160. package/dist/themes/opencode.json +245 -0
  161. package/dist/themes/orng.json +245 -0
  162. package/dist/themes/palenight.json +222 -0
  163. package/dist/themes/rosepine.json +234 -0
  164. package/dist/themes/solarized.json +223 -0
  165. package/dist/themes/synthwave84.json +226 -0
  166. package/dist/themes/termcast.json +226 -0
  167. package/dist/themes/tokyonight.json +243 -0
  168. package/dist/themes/vercel.json +255 -0
  169. package/dist/themes/vesper.json +218 -0
  170. package/dist/themes/zenburn.json +223 -0
  171. package/dist/themes.d.ts +57 -0
  172. package/dist/themes.d.ts.map +1 -0
  173. package/dist/themes.js +181 -0
  174. package/dist/themes.js.map +1 -0
  175. package/dist/utils/run-command.d.ts +2 -1
  176. package/dist/utils/run-command.d.ts.map +1 -1
  177. package/dist/utils/run-command.js +20 -10
  178. package/dist/utils/run-command.js.map +1 -1
  179. package/dist/utils.d.ts +2 -1
  180. package/dist/utils.d.ts.map +1 -1
  181. package/dist/utils.js +90 -17
  182. package/dist/utils.js.map +1 -1
  183. package/dist/watcher.d.ts +3 -0
  184. package/dist/watcher.d.ts.map +1 -0
  185. package/dist/watcher.js +16 -0
  186. package/dist/watcher.js.map +1 -0
  187. package/package.json +16 -10
  188. package/src/apis/cache.tsx +5 -44
  189. package/src/apis/hud.tsx +17 -62
  190. package/src/apis/localstorage.tsx +3 -32
  191. package/src/apis/toast.tsx +91 -275
  192. package/src/build.test.tsx +10 -0
  193. package/src/build.tsx +61 -1
  194. package/src/cli.tsx +365 -103
  195. package/src/colors.tsx +1 -0
  196. package/src/compile.tsx +21 -29
  197. package/src/compile.vitest.tsx +300 -0
  198. package/src/components/actions.tsx +64 -45
  199. package/src/components/animation-tick.tsx +85 -0
  200. package/src/components/detail.tsx +31 -35
  201. package/src/components/dropdown.tsx +32 -21
  202. package/src/components/extension-preferences.tsx +14 -10
  203. package/src/components/footer.tsx +241 -0
  204. package/src/components/form/file-autocomplete.tsx +80 -60
  205. package/src/components/form/file-picker.tsx +37 -25
  206. package/src/components/form/index.tsx +45 -41
  207. package/src/components/form/with-left-border.tsx +4 -14
  208. package/src/components/list.tsx +181 -121
  209. package/src/components/loading-bar.tsx +5 -25
  210. package/src/components/loading-text.tsx +4 -23
  211. package/src/components/theme-picker.tsx +57 -0
  212. package/src/descendants.tsx +98 -9
  213. package/src/examples/actions-dialog-layout.vitest.tsx +112 -0
  214. package/src/examples/file-autocomplete.vitest.tsx +131 -122
  215. package/src/examples/form-basic.vitest.tsx +463 -644
  216. package/src/examples/form-dropdown.vitest.tsx +553 -571
  217. package/src/examples/form-scroll.vitest.tsx +112 -102
  218. package/src/examples/form-tagpicker.vitest.tsx +364 -338
  219. package/src/examples/internal/descendants-rerender.tsx +273 -0
  220. package/src/examples/internal/descendants-rerender.vitest.tsx +194 -0
  221. package/src/examples/internal/simple-dialog.tsx +4 -4
  222. package/src/examples/internal/simple-scrollbox.tsx +2 -2
  223. package/src/examples/internal/simple-scrollbox.vitest.tsx +43 -31
  224. package/src/examples/list-detail-metadata.vitest.tsx +34 -30
  225. package/src/examples/list-dropdown-default.vitest.tsx +84 -72
  226. package/src/examples/list-empty-view.vitest.tsx +93 -0
  227. package/src/examples/list-fetch-data.vitest.tsx +36 -30
  228. package/src/examples/list-scrollbox.vitest.tsx +59 -39
  229. package/src/examples/list-with-detail.vitest.tsx +339 -314
  230. package/src/examples/list-with-dropdown.tsx +1 -0
  231. package/src/examples/list-with-dropdown.vitest.tsx +176 -150
  232. package/src/examples/list-with-sections.vitest.tsx +289 -270
  233. package/src/examples/list-with-toast.vitest.tsx +44 -44
  234. package/src/examples/miscellaneous.tsx +10 -0
  235. package/src/examples/simple-file-picker.vitest.tsx +90 -86
  236. package/src/examples/simple-grid.vitest.tsx +275 -249
  237. package/src/examples/simple-navigation.vitest.tsx +192 -168
  238. package/src/examples/store.vitest.tsx +6 -4
  239. package/src/examples/swift-extension.vitest.tsx +31 -19
  240. package/src/examples/synonyms.vitest.tsx +93 -83
  241. package/src/examples/toast-action.tsx +160 -0
  242. package/src/examples/toast-action.vitest.tsx +404 -0
  243. package/src/examples/toast-variations.tsx +58 -57
  244. package/src/examples/toast-variations.vitest.tsx +186 -166
  245. package/src/extensions/dev.tsx +74 -33
  246. package/src/extensions/dev.vitest.tsx +162 -69
  247. package/src/extensions/home.tsx +5 -6
  248. package/src/extensions/react-refresh-init.tsx +59 -0
  249. package/src/internal/date-picker-widget.tsx +1 -1
  250. package/src/internal/dialog.tsx +59 -83
  251. package/src/internal/navigation.tsx +37 -4
  252. package/src/internal/providers.tsx +27 -315
  253. package/src/internal/scrollbox.tsx +1 -0
  254. package/src/release.tsx +16 -10
  255. package/src/state.tsx +36 -3
  256. package/src/theme.tsx +82 -51
  257. package/src/themes/aura.json +69 -0
  258. package/src/themes/ayu.json +80 -0
  259. package/src/themes/catppuccin-frappe.json +233 -0
  260. package/src/themes/catppuccin-macchiato.json +233 -0
  261. package/src/themes/catppuccin.json +112 -0
  262. package/src/themes/cobalt2.json +228 -0
  263. package/src/themes/cursor.json +249 -0
  264. package/src/themes/dracula.json +219 -0
  265. package/src/themes/everforest.json +241 -0
  266. package/src/themes/flexoki.json +237 -0
  267. package/src/themes/github-light.json +56 -0
  268. package/src/themes/github.json +241 -0
  269. package/src/themes/gruvbox.json +95 -0
  270. package/src/themes/kanagawa.json +77 -0
  271. package/src/themes/lucent-orng.json +227 -0
  272. package/src/themes/material.json +235 -0
  273. package/src/themes/matrix.json +77 -0
  274. package/src/themes/mercury.json +252 -0
  275. package/src/themes/monokai.json +221 -0
  276. package/src/themes/nightowl.json +221 -0
  277. package/src/themes/nord.json +223 -0
  278. package/src/themes/one-dark.json +84 -0
  279. package/src/themes/opencode-light.json +62 -0
  280. package/src/themes/opencode.json +245 -0
  281. package/src/themes/orng.json +245 -0
  282. package/src/themes/palenight.json +222 -0
  283. package/src/themes/rosepine.json +234 -0
  284. package/src/themes/solarized.json +223 -0
  285. package/src/themes/synthwave84.json +226 -0
  286. package/src/themes/termcast.json +227 -0
  287. package/src/themes/tokyonight.json +243 -0
  288. package/src/themes/vercel.json +255 -0
  289. package/src/themes/vesper.json +218 -0
  290. package/src/themes/zenburn.json +223 -0
  291. package/src/themes.ts +291 -0
  292. package/src/utils/run-command.tsx +23 -12
  293. package/src/utils.tsx +115 -18
  294. package/src/watcher.tsx +19 -0
@@ -26,61 +26,15 @@ test('form dropdown shows inline options', async () => {
26
26
  text.includes('Editor Theme') &&
27
27
  text.includes('Task Priority') &&
28
28
  text.includes('Critical') &&
29
- text.includes('submit')
29
+ text.includes('submit')
30
30
  )
31
31
  },
32
32
  })
33
- expect(initialSnapshot).toMatchInlineSnapshot(`
34
- "
35
-
36
-
37
-
38
-
39
-
40
-
41
- ■ Dropdown Component Demo
42
- │ Test dropdown with sections, multiple selection, and more
43
- │ features
44
-
45
- ◇ Programming Languages
46
- │ TypeScript, Rust
47
-
48
- │ Frontend
49
- │ ● TypeScript
50
- │ ○ JavaScript
51
- │ ○ React
52
- │ ○ Vue
53
-
54
- │ Choose your preferred programming languages
55
-
56
- ◇ Editor Theme
57
- │ Dracula
58
-
59
- │ ○ Monokai
60
- │ ● Dracula
61
- │ ○ One Dark
62
- │ ○ Nord
63
- │ ○ GitHub Light
64
-
65
- │ Select your preferred editor color theme
66
-
67
- ◇ Task Priority
68
- │ Select priority level
69
-
70
- │ ○ Critical
71
- │ ○ High
72
- │ ○ Medium
73
- │ ○ Low
74
-
75
-
76
-
77
-
78
-
79
-
80
-
81
-
82
- ctrl ↵ submit tab navigate ^k actions"
83
- `)
33
+ // Verify all key elements are present (waitFor already validates most of this)
34
+ expect(initialSnapshot).toContain('Dropdown Component Demo')
35
+ expect(initialSnapshot).toContain('TypeScript, Rust')
36
+ expect(initialSnapshot).toContain('Dracula')
37
+ expect(initialSnapshot).toContain('Task Priority')
84
38
 
85
39
  await session.press('space')
86
40
 
@@ -91,50 +45,52 @@ test('form dropdown shows inline options', async () => {
91
45
 
92
46
 
93
47
 
48
+ ■ Dropdown Component Demo
49
+ │ Test dropdown with sections, multiple selection, and more
50
+ │ features
51
+
52
+ ◇ Programming Languages
53
+ │ TypeScript, Rust
54
+
55
+ │ Frontend
56
+ │ ● TypeScript
57
+ │ ○ JavaScript
58
+ │ ○ React
59
+ │ ○ Vue
60
+
61
+ │ Choose your preferred programming languages
62
+
63
+ ◇ Editor Theme
64
+ │ Dracula
65
+
66
+ │ ○ Monokai
67
+ │ ● Dracula
68
+ │ ○ One Dark
69
+ │ ○ Nord
70
+ │ ○ GitHub Light
71
+
72
+ │ Select your preferred editor color theme
73
+
74
+ ◇ Task Priority
75
+ │ Select priority level
76
+
77
+ │ ○ Critical
78
+ │ ○ High
79
+ │ ○ Medium
80
+ │ ○ Low
81
+
82
+
83
+
94
84
 
95
85
 
96
- ■ Dropdown Component Demo
97
- │ Test dropdown with sections, multiple selection, and more
98
- │ features
99
-
100
- ◇ Programming Languages
101
- │ TypeScript, Rust
102
-
103
- │ Frontend
104
- │ ● TypeScript
105
- │ ○ JavaScript
106
- │ ○ React
107
- │ ○ Vue
108
-
109
- │ Choose your preferred programming languages
110
-
111
- ◇ Editor Theme
112
- │ Dracula
113
-
114
- │ ○ Monokai
115
- │ ● Dracula
116
- │ ○ One Dark
117
- │ ○ Nord
118
- │ ○ GitHub Light
119
-
120
- │ Select your preferred editor color theme
121
-
122
- ◇ Task Priority
123
- │ Select priority level
124
-
125
- │ ○ Critical
126
- │ ○ High
127
- │ ○ Medium
128
- │ ○ Low
86
+ ctrl submit tab navigate ^k actions
129
87
 
130
-
131
-
132
88
 
133
89
 
134
90
 
135
91
 
136
92
 
137
- ctrl ↵ submit tab navigate ^k actions"
93
+ "
138
94
  `)
139
95
 
140
96
  await session.press('down')
@@ -146,50 +102,52 @@ test('form dropdown shows inline options', async () => {
146
102
 
147
103
 
148
104
 
105
+ ■ Dropdown Component Demo
106
+ │ Test dropdown with sections, multiple selection, and more
107
+ │ features
108
+
109
+ ◇ Programming Languages
110
+ │ TypeScript, Rust
111
+
112
+ │ Frontend
113
+ │ ● TypeScript
114
+ │ ○ JavaScript
115
+ │ ○ React
116
+ │ ○ Vue
117
+
118
+ │ Choose your preferred programming languages
119
+
120
+ ◇ Editor Theme
121
+ │ Dracula
122
+
123
+ │ ○ Monokai
124
+ │ ● Dracula
125
+ │ ○ One Dark
126
+ │ ○ Nord
127
+ │ ○ GitHub Light
128
+
129
+ │ Select your preferred editor color theme
130
+
131
+ ◇ Task Priority
132
+ │ Select priority level
133
+
134
+ │ ○ Critical
135
+ │ ○ High
136
+ │ ○ Medium
137
+ │ ○ Low
138
+
139
+
140
+
149
141
 
150
142
 
151
- ■ Dropdown Component Demo
152
- │ Test dropdown with sections, multiple selection, and more
153
- │ features
154
-
155
- ◇ Programming Languages
156
- │ TypeScript, Rust
157
-
158
- │ Frontend
159
- │ ● TypeScript
160
- │ ○ JavaScript
161
- │ ○ React
162
- │ ○ Vue
163
-
164
- │ Choose your preferred programming languages
165
-
166
- ◇ Editor Theme
167
- │ Dracula
168
-
169
- │ ○ Monokai
170
- │ ● Dracula
171
- │ ○ One Dark
172
- │ ○ Nord
173
- │ ○ GitHub Light
174
-
175
- │ Select your preferred editor color theme
176
-
177
- ◇ Task Priority
178
- │ Select priority level
179
-
180
- │ ○ Critical
181
- │ ○ High
182
- │ ○ Medium
183
- │ ○ Low
143
+ ctrl submit tab navigate ^k actions
184
144
 
185
-
186
-
187
145
 
188
146
 
189
147
 
190
148
 
191
149
 
192
- ctrl ↵ submit tab navigate ^k actions"
150
+ "
193
151
  `)
194
152
 
195
153
  await session.press('down')
@@ -204,50 +162,52 @@ test('form dropdown shows inline options', async () => {
204
162
 
205
163
 
206
164
 
165
+ ■ Dropdown Component Demo
166
+ │ Test dropdown with sections, multiple selection, and more
167
+ │ features
168
+
169
+ ◇ Programming Languages
170
+ │ TypeScript, Rust
171
+
172
+ │ Frontend
173
+ │ ● TypeScript
174
+ │ ○ JavaScript
175
+ │ ○ React
176
+ │ ○ Vue
177
+
178
+ │ Choose your preferred programming languages
179
+
180
+ ◇ Editor Theme
181
+ │ Dracula
182
+
183
+ │ ○ Monokai
184
+ │ ● Dracula
185
+ │ ○ One Dark
186
+ │ ○ Nord
187
+ │ ○ GitHub Light
188
+
189
+ │ Select your preferred editor color theme
190
+
191
+ ◇ Task Priority
192
+ │ Select priority level
193
+
194
+ │ ○ Critical
195
+ │ ○ High
196
+ │ ○ Medium
197
+ │ ○ Low
207
198
 
199
+
200
+
208
201
 
209
- ■ Dropdown Component Demo
210
- │ Test dropdown with sections, multiple selection, and more
211
- │ features
212
-
213
- ◇ Programming Languages
214
- │ TypeScript, Rust
215
-
216
- │ Frontend
217
- │ ● TypeScript
218
- │ ○ JavaScript
219
- │ ○ React
220
- │ ○ Vue
221
-
222
- │ Choose your preferred programming languages
223
-
224
- ◇ Editor Theme
225
- │ Dracula
226
-
227
- │ ○ Monokai
228
- │ ● Dracula
229
- │ ○ One Dark
230
- │ ○ Nord
231
- │ ○ GitHub Light
232
-
233
- │ Select your preferred editor color theme
234
-
235
- ◇ Task Priority
236
- │ Select priority level
237
-
238
- │ ○ Critical
239
- │ ○ High
240
- │ ○ Medium
241
- │ ○ Low
242
202
 
243
-
244
-
203
+ ctrl ↵ submit tab navigate ^k actions
245
204
 
246
205
 
247
206
 
248
207
 
249
208
 
250
- ctrl ↵ submit tab navigate ^k actions"
209
+
210
+ "
251
211
  `)
252
212
 
253
213
  await session.press('enter')
@@ -259,50 +219,52 @@ test('form dropdown shows inline options', async () => {
259
219
 
260
220
 
261
221
 
222
+ ■ Dropdown Component Demo
223
+ │ Test dropdown with sections, multiple selection, and more
224
+ │ features
225
+
226
+ ◇ Programming Languages
227
+ │ TypeScript, Rust
228
+
229
+ │ Frontend
230
+ │ ● TypeScript
231
+ │ ○ JavaScript
232
+ │ ○ React
233
+ │ ○ Vue
234
+
235
+ │ Choose your preferred programming languages
236
+
237
+ ◇ Editor Theme
238
+ │ Dracula
239
+
240
+ │ ○ Monokai
241
+ │ ● Dracula
242
+ │ ○ One Dark
243
+ │ ○ Nord
244
+ │ ○ GitHub Light
245
+
246
+ │ Select your preferred editor color theme
247
+
248
+ ◇ Task Priority
249
+ │ Select priority level
250
+
251
+ │ ○ Critical
252
+ │ ○ High
253
+ │ ○ Medium
254
+ │ ○ Low
255
+
256
+
257
+
262
258
 
263
259
 
264
- ■ Dropdown Component Demo
265
- │ Test dropdown with sections, multiple selection, and more
266
- │ features
267
-
268
- ◇ Programming Languages
269
- │ TypeScript, Rust
270
-
271
- │ Frontend
272
- │ ● TypeScript
273
- │ ○ JavaScript
274
- │ ○ React
275
- │ ○ Vue
276
-
277
- │ Choose your preferred programming languages
278
-
279
- ◇ Editor Theme
280
- │ Dracula
281
-
282
- │ ○ Monokai
283
- │ ● Dracula
284
- │ ○ One Dark
285
- │ ○ Nord
286
- │ ○ GitHub Light
287
-
288
- │ Select your preferred editor color theme
289
-
290
- ◇ Task Priority
291
- │ Select priority level
292
-
293
- │ ○ Critical
294
- │ ○ High
295
- │ ○ Medium
296
- │ ○ Low
260
+ ctrl submit tab navigate ^k actions
297
261
 
298
-
299
-
300
262
 
301
263
 
302
264
 
303
265
 
304
266
 
305
- ctrl ↵ submit tab navigate ^k actions"
267
+ "
306
268
  `)
307
269
  }, 10000)
308
270
 
@@ -322,50 +284,52 @@ test('form dropdown keyboard navigation', async () => {
322
284
 
323
285
 
324
286
 
287
+ ■ Dropdown Component Demo
288
+ │ Test dropdown with sections, multiple selection, and more
289
+ │ features
290
+
291
+ ◇ Programming Languages
292
+ │ TypeScript, Rust
293
+
294
+ │ Frontend
295
+ │ ● TypeScript
296
+ │ ○ JavaScript
297
+ │ ○ React
298
+ │ ○ Vue
299
+
300
+ │ Choose your preferred programming languages
301
+
302
+ ◇ Editor Theme
303
+ │ Dracula
304
+
305
+ │ ○ Monokai
306
+ │ ● Dracula
307
+ │ ○ One Dark
308
+ │ ○ Nord
309
+ │ ○ GitHub Light
310
+
311
+ │ Select your preferred editor color theme
312
+
313
+ ◇ Task Priority
314
+ │ Select priority level
315
+
316
+ │ ○ Critical
317
+ │ ○ High
318
+ │ ○ Medium
319
+ │ ○ Low
320
+
321
+
322
+
325
323
 
326
324
 
327
- ■ Dropdown Component Demo
328
- │ Test dropdown with sections, multiple selection, and more
329
- │ features
330
-
331
- ◇ Programming Languages
332
- │ TypeScript, Rust
333
-
334
- │ Frontend
335
- │ ● TypeScript
336
- │ ○ JavaScript
337
- │ ○ React
338
- │ ○ Vue
339
-
340
- │ Choose your preferred programming languages
341
-
342
- ◇ Editor Theme
343
- │ Dracula
344
-
345
- │ ○ Monokai
346
- │ ● Dracula
347
- │ ○ One Dark
348
- │ ○ Nord
349
- │ ○ GitHub Light
350
-
351
- │ Select your preferred editor color theme
352
-
353
- ◇ Task Priority
354
- │ Select priority level
355
-
356
- │ ○ Critical
357
- │ ○ High
358
- │ ○ Medium
359
- │ ○ Low
325
+ ctrl submit tab navigate ^k actions
360
326
 
361
-
362
-
363
327
 
364
328
 
365
329
 
366
330
 
367
331
 
368
- ctrl ↵ submit tab navigate ^k actions"
332
+ "
369
333
  `)
370
334
 
371
335
  await session.press('down')
@@ -380,50 +344,52 @@ test('form dropdown keyboard navigation', async () => {
380
344
 
381
345
 
382
346
 
347
+ ■ Dropdown Component Demo
348
+ │ Test dropdown with sections, multiple selection, and more
349
+ │ features
350
+
351
+ ◇ Programming Languages
352
+ │ TypeScript, Rust
353
+
354
+ │ Frontend
355
+ │ ● TypeScript
356
+ │ ○ JavaScript
357
+ │ ○ React
358
+ │ ○ Vue
359
+
360
+ │ Choose your preferred programming languages
361
+
362
+ ◇ Editor Theme
363
+ │ Dracula
364
+
365
+ │ ○ Monokai
366
+ │ ● Dracula
367
+ │ ○ One Dark
368
+ │ ○ Nord
369
+ │ ○ GitHub Light
370
+
371
+ │ Select your preferred editor color theme
372
+
373
+ ◇ Task Priority
374
+ │ Select priority level
375
+
376
+ │ ○ Critical
377
+ │ ○ High
378
+ │ ○ Medium
379
+ │ ○ Low
380
+
381
+
382
+
383
383
 
384
384
 
385
- ■ Dropdown Component Demo
386
- │ Test dropdown with sections, multiple selection, and more
387
- │ features
388
-
389
- ◇ Programming Languages
390
- │ TypeScript, Rust
391
-
392
- │ Frontend
393
- │ ● TypeScript
394
- │ ○ JavaScript
395
- │ ○ React
396
- │ ○ Vue
397
-
398
- │ Choose your preferred programming languages
399
-
400
- ◇ Editor Theme
401
- │ Dracula
402
-
403
- │ ○ Monokai
404
- │ ● Dracula
405
- │ ○ One Dark
406
- │ ○ Nord
407
- │ ○ GitHub Light
408
-
409
- │ Select your preferred editor color theme
410
-
411
- ◇ Task Priority
412
- │ Select priority level
413
-
414
- │ ○ Critical
415
- │ ○ High
416
- │ ○ Medium
417
- │ ○ Low
385
+ ctrl submit tab navigate ^k actions
418
386
 
419
-
420
-
421
387
 
422
388
 
423
389
 
424
390
 
425
391
 
426
- ctrl ↵ submit tab navigate ^k actions"
392
+ "
427
393
  `)
428
394
 
429
395
  await session.press('down')
@@ -435,50 +401,52 @@ test('form dropdown keyboard navigation', async () => {
435
401
 
436
402
 
437
403
 
404
+ ■ Dropdown Component Demo
405
+ │ Test dropdown with sections, multiple selection, and more
406
+ │ features
407
+
408
+ ◇ Programming Languages
409
+ │ TypeScript, Rust
410
+
411
+ │ Frontend
412
+ │ ● TypeScript
413
+ │ ○ JavaScript
414
+ │ ○ React
415
+ │ ○ Vue
416
+
417
+ │ Choose your preferred programming languages
418
+
419
+ ◇ Editor Theme
420
+ │ Dracula
421
+
422
+ │ ○ Monokai
423
+ │ ● Dracula
424
+ │ ○ One Dark
425
+ │ ○ Nord
426
+ │ ○ GitHub Light
427
+
428
+ │ Select your preferred editor color theme
429
+
430
+ ◇ Task Priority
431
+ │ Select priority level
432
+
433
+ │ ○ Critical
434
+ │ ○ High
435
+ │ ○ Medium
436
+ │ ○ Low
438
437
 
438
+
439
+
439
440
 
440
- ■ Dropdown Component Demo
441
- │ Test dropdown with sections, multiple selection, and more
442
- │ features
443
-
444
- ◇ Programming Languages
445
- │ TypeScript, Rust
446
-
447
- │ Frontend
448
- │ ● TypeScript
449
- │ ○ JavaScript
450
- │ ○ React
451
- │ ○ Vue
452
-
453
- │ Choose your preferred programming languages
454
-
455
- ◇ Editor Theme
456
- │ Dracula
457
-
458
- │ ○ Monokai
459
- │ ● Dracula
460
- │ ○ One Dark
461
- │ ○ Nord
462
- │ ○ GitHub Light
463
-
464
- │ Select your preferred editor color theme
465
-
466
- ◇ Task Priority
467
- │ Select priority level
468
-
469
- │ ○ Critical
470
- │ ○ High
471
- │ ○ Medium
472
- │ ○ Low
473
441
 
474
-
475
-
442
+ ctrl ↵ submit tab navigate ^k actions
476
443
 
477
444
 
478
445
 
479
446
 
480
447
 
481
- ctrl ↵ submit tab navigate ^k actions"
448
+
449
+ "
482
450
  `)
483
451
 
484
452
  await session.press('up')
@@ -490,105 +458,109 @@ test('form dropdown keyboard navigation', async () => {
490
458
 
491
459
 
492
460
 
461
+ ■ Dropdown Component Demo
462
+ │ Test dropdown with sections, multiple selection, and more
463
+ │ features
464
+
465
+ ◇ Programming Languages
466
+ │ TypeScript, Rust
467
+
468
+ │ Frontend
469
+ │ ● TypeScript
470
+ │ ○ JavaScript
471
+ │ ○ React
472
+ │ ○ Vue
473
+
474
+ │ Choose your preferred programming languages
475
+
476
+ ◇ Editor Theme
477
+ │ Dracula
478
+
479
+ │ ○ Monokai
480
+ │ ● Dracula
481
+ │ ○ One Dark
482
+ │ ○ Nord
483
+ │ ○ GitHub Light
484
+
485
+ │ Select your preferred editor color theme
486
+
487
+ ◇ Task Priority
488
+ │ Select priority level
489
+
490
+ │ ○ Critical
491
+ │ ○ High
492
+ │ ○ Medium
493
+ │ ○ Low
493
494
 
495
+
496
+
494
497
 
495
- ■ Dropdown Component Demo
496
- │ Test dropdown with sections, multiple selection, and more
497
- │ features
498
-
499
- ◇ Programming Languages
500
- │ TypeScript, Rust
501
-
502
- │ Frontend
503
- │ ● TypeScript
504
- │ ○ JavaScript
505
- │ ○ React
506
- │ ○ Vue
507
-
508
- │ Choose your preferred programming languages
509
-
510
- ◇ Editor Theme
511
- │ Dracula
512
-
513
- │ ○ Monokai
514
- │ ● Dracula
515
- │ ○ One Dark
516
- │ ○ Nord
517
- │ ○ GitHub Light
518
-
519
- │ Select your preferred editor color theme
520
-
521
- ◇ Task Priority
522
- │ Select priority level
523
-
524
- │ ○ Critical
525
- │ ○ High
526
- │ ○ Medium
527
- │ ○ Low
528
498
 
529
-
530
-
499
+ ctrl ↵ submit tab navigate ^k actions
531
500
 
532
501
 
533
502
 
534
503
 
535
504
 
536
- ctrl ↵ submit tab navigate ^k actions"
537
- `)
538
505
 
539
- await session.press('esc')
506
+ "
507
+ `)
540
508
 
541
- const afterEscapeSnapshot = await session.text()
542
- expect(afterEscapeSnapshot).toMatchInlineSnapshot(`
509
+ // Note: not pressing escape here since that would exit the app at root level
510
+ // The inline dropdown doesn't need escape to close - it stays visible
511
+ const afterNavigationSnapshot = await session.text()
512
+ expect(afterNavigationSnapshot).toMatchInlineSnapshot(`
543
513
  "
544
514
 
545
515
 
546
516
 
547
517
 
518
+ ■ Dropdown Component Demo
519
+ │ Test dropdown with sections, multiple selection, and more
520
+ │ features
521
+
522
+ ◇ Programming Languages
523
+ │ TypeScript, Rust
524
+
525
+ │ Frontend
526
+ │ ● TypeScript
527
+ │ ○ JavaScript
528
+ │ ○ React
529
+ │ ○ Vue
530
+
531
+ │ Choose your preferred programming languages
532
+
533
+ ◇ Editor Theme
534
+ │ Dracula
535
+
536
+ │ ○ Monokai
537
+ │ ● Dracula
538
+ │ ○ One Dark
539
+ │ ○ Nord
540
+ │ ○ GitHub Light
541
+
542
+ │ Select your preferred editor color theme
543
+
544
+ ◇ Task Priority
545
+ │ Select priority level
546
+
547
+ │ ○ Critical
548
+ │ ○ High
549
+ │ ○ Medium
550
+ │ ○ Low
551
+
552
+
553
+
548
554
 
549
555
 
550
- ■ Dropdown Component Demo
551
- │ Test dropdown with sections, multiple selection, and more
552
- │ features
553
-
554
- ◇ Programming Languages
555
- │ TypeScript, Rust
556
-
557
- │ Frontend
558
- │ ● TypeScript
559
- │ ○ JavaScript
560
- │ ○ React
561
- │ ○ Vue
562
-
563
- │ Choose your preferred programming languages
564
-
565
- ◇ Editor Theme
566
- │ Dracula
567
-
568
- │ ○ Monokai
569
- │ ● Dracula
570
- │ ○ One Dark
571
- │ ○ Nord
572
- │ ○ GitHub Light
573
-
574
- │ Select your preferred editor color theme
575
-
576
- ◇ Task Priority
577
- │ Select priority level
578
-
579
- │ ○ Critical
580
- │ ○ High
581
- │ ○ Medium
582
- │ ○ Low
556
+ ctrl submit tab navigate ^k actions
583
557
 
584
-
585
-
586
558
 
587
559
 
588
560
 
589
561
 
590
562
 
591
- ctrl ↵ submit tab navigate ^k actions"
563
+ "
592
564
  `)
593
565
  }, 10000)
594
566
 
@@ -608,50 +580,52 @@ test('form dropdown with default value', async () => {
608
580
 
609
581
 
610
582
 
583
+ ▪ Dropdown Component Demo
584
+ │ Test dropdown with sections, multiple selection, and more
585
+ │ features
586
+
587
+ ◆ Programming Languages
588
+ │ TypeScript, Rust
589
+
590
+ │ Frontend
591
+ │› ● TypeScript
592
+ │ ○ JavaScript
593
+ │ ○ React
594
+ │ ○ Vue
595
+
596
+ │ Choose your preferred programming languages
597
+
598
+ ◇ Editor Theme
599
+ │ Dracula
600
+
601
+ │ ○ Monokai
602
+ │ ● Dracula
603
+ │ ○ One Dark
604
+ │ ○ Nord
605
+ │ ○ GitHub Light
606
+
607
+ │ Select your preferred editor color theme
608
+
609
+ ◇ Task Priority
610
+ │ Select priority level
611
+
612
+ │ ○ Critical
613
+ │ ○ High
614
+ │ ○ Medium
615
+ │ ○ Low
616
+
617
+
618
+
611
619
 
612
620
 
613
- ▪ Dropdown Component Demo
614
- │ Test dropdown with sections, multiple selection, and more
615
- │ features
616
-
617
- ◆ Programming Languages
618
- │ TypeScript, Rust
619
-
620
- │ Frontend
621
- │› ● TypeScript
622
- │ ○ JavaScript
623
- │ ○ React
624
- │ ○ Vue
625
-
626
- │ Choose your preferred programming languages
627
-
628
- ◇ Editor Theme
629
- │ Dracula
630
-
631
- │ ○ Monokai
632
- │ ● Dracula
633
- │ ○ One Dark
634
- │ ○ Nord
635
- │ ○ GitHub Light
636
-
637
- │ Select your preferred editor color theme
638
-
639
- ◇ Task Priority
640
- │ Select priority level
641
-
642
- │ ○ Critical
643
- │ ○ High
644
- │ ○ Medium
645
- │ ○ Low
621
+ ctrl submit tab navigate ^k actions
646
622
 
647
-
648
-
649
623
 
650
624
 
651
625
 
652
626
 
653
627
 
654
- ctrl ↵ submit tab navigate ^k actions"
628
+ "
655
629
  `)
656
630
 
657
631
  await session.press('space')
@@ -663,53 +637,55 @@ test('form dropdown with default value', async () => {
663
637
 
664
638
 
665
639
 
640
+ ▪ Dropdown Component Demo
641
+ │ Test dropdown with sections, multiple selection, and more
642
+ │ features
643
+
644
+ ◆ Programming Languages
645
+ │ Rust
646
+
647
+ │ Frontend
648
+ │› ○ TypeScript
649
+ │ ○ JavaScript
650
+ │ ○ React
651
+ │ ○ Vue
652
+
653
+ │ Choose your preferred programming languages
654
+
655
+ ◇ Editor Theme
656
+ │ Dracula
657
+
658
+ │ ○ Monokai
659
+ │ ● Dracula
660
+ │ ○ One Dark
661
+ │ ○ Nord
662
+ │ ○ GitHub Light
663
+
664
+ │ Select your preferred editor color theme
665
+
666
+ ◇ Task Priority
667
+ │ Select priority level
668
+
669
+ │ ○ Critical
670
+ │ ○ High
671
+ │ ○ Medium
672
+ │ ○ Low
673
+
674
+
675
+
666
676
 
667
677
 
668
- ▪ Dropdown Component Demo
669
- │ Test dropdown with sections, multiple selection, and more
670
- │ features
671
-
672
- ◆ Programming Languages
673
- │ Rust
674
-
675
- │ Frontend
676
- │› ○ TypeScript
677
- │ ○ JavaScript
678
- │ ○ React
679
- │ ○ Vue
680
-
681
- │ Choose your preferred programming languages
682
-
683
- ◇ Editor Theme
684
- │ Dracula
685
-
686
- │ ○ Monokai
687
- │ ● Dracula
688
- │ ○ One Dark
689
- │ ○ Nord
690
- │ ○ GitHub Light
691
-
692
- │ Select your preferred editor color theme
693
-
694
- ◇ Task Priority
695
- │ Select priority level
696
-
697
- │ ○ Critical
698
- │ ○ High
699
- │ ○ Medium
700
- │ ○ Low
678
+ ctrl submit tab navigate ^k actions
701
679
 
702
-
703
-
704
680
 
705
681
 
706
682
 
707
683
 
708
684
 
709
- ctrl ↵ submit tab navigate ^k actions"
685
+ "
710
686
  `)
711
687
 
712
- await session.press('esc')
688
+ // Submit with alt+enter directly - no need to press esc first
713
689
  await session.press(['alt', 'enter'])
714
690
 
715
691
  const afterSubmitSnapshot = await session.text({
@@ -721,52 +697,54 @@ test('form dropdown with default value', async () => {
721
697
  "
722
698
 
723
699
 
724
- ▪ Dropdown Component Demo █
725
- │ Test dropdown with sections, multiple selection, and more █
726
- features
727
-
728
- Programming Languages
729
- Rust, TypeScript
730
-
731
- Frontend
732
- │› ● TypeScript █
733
- ○ JavaScript █
734
- │ ○ React ▀
735
- │ ○ Vue
736
-
737
- Choose your preferred programming languages
738
-
739
- Editor Theme
740
- Dracula
741
-
742
- ○ Monokai
743
- ● Dracula
744
- │ ○ One Dark
745
- Nord
746
- │ ○ GitHub Light
747
-
748
- Select your preferred editor color theme
749
-
750
- Task Priority
751
- Select priority level
752
-
753
- Critical
754
- ○ High
755
- │ ○ Medium
756
- │ ○ Low
757
-
758
-
759
- ▪ Submitted Data
760
- {
761
- │ "languages": [
762
- "rust",
763
- "typescript"
764
- ],
765
- "theme": "dracula",
766
- "priority": ""
767
-
768
-
769
- ctrl ↵ submit tab navigate ^k actions"
700
+
701
+
702
+ Dropdown Component Demo
703
+ Test dropdown with sections, multiple selection, and more
704
+ features
705
+
706
+ ◆ Programming Languages
707
+ Rust, TypeScript
708
+ │ ▀
709
+ Frontend
710
+ │› ● TypeScript
711
+ │ ○ JavaScript
712
+ ○ React
713
+ Vue
714
+
715
+ Choose your preferred programming languages
716
+
717
+ ◇ Editor Theme
718
+ Dracula
719
+
720
+ │ ○ Monokai
721
+ Dracula
722
+ │ ○ One Dark
723
+ ○ Nord
724
+ GitHub Light
725
+
726
+ Select your preferred editor color theme
727
+
728
+ ◇ Task Priority
729
+ Select priority level
730
+
731
+ │ ○ Critical
732
+ │ ○ High
733
+ │ ○ Medium
734
+ ○ Low
735
+
736
+
737
+ ▪ Submitted Data
738
+ {
739
+ "languages": [
740
+ "rust",
741
+ "typescript"
742
+ ],
743
+
744
+
745
+ ctrl ↵ submit tab navigate ^k actions
746
+
747
+ "
770
748
  `)
771
749
  }, 10000)
772
750
 
@@ -787,50 +765,52 @@ test('selecting second-to-last visible item should not scroll', async () => {
787
765
 
788
766
 
789
767
 
768
+ ■ Dropdown Component Demo
769
+ │ Test dropdown with sections, multiple selection, and more
770
+ │ features
771
+
772
+ ◇ Programming Languages
773
+ │ TypeScript, Rust
774
+
775
+ │ Frontend
776
+ │ ● TypeScript
777
+ │ ○ JavaScript
778
+ │ ○ React
779
+ │ ○ Vue
780
+
781
+ │ Choose your preferred programming languages
782
+
783
+ ◇ Editor Theme
784
+ │ Dracula
785
+
786
+ │ ○ Monokai
787
+ │ ● Dracula
788
+ │ ○ One Dark
789
+ │ ○ Nord
790
+ │ ○ GitHub Light
791
+
792
+ │ Select your preferred editor color theme
793
+
794
+ ◇ Task Priority
795
+ │ Select priority level
796
+
797
+ │ ○ Critical
798
+ │ ○ High
799
+ │ ○ Medium
800
+ │ ○ Low
801
+
802
+
803
+
790
804
 
791
805
 
792
- ■ Dropdown Component Demo
793
- │ Test dropdown with sections, multiple selection, and more
794
- │ features
795
-
796
- ◇ Programming Languages
797
- │ TypeScript, Rust
798
-
799
- │ Frontend
800
- │ ● TypeScript
801
- │ ○ JavaScript
802
- │ ○ React
803
- │ ○ Vue
804
-
805
- │ Choose your preferred programming languages
806
-
807
- ◇ Editor Theme
808
- │ Dracula
809
-
810
- │ ○ Monokai
811
- │ ● Dracula
812
- │ ○ One Dark
813
- │ ○ Nord
814
- │ ○ GitHub Light
815
-
816
- │ Select your preferred editor color theme
817
-
818
- ◇ Task Priority
819
- │ Select priority level
820
-
821
- │ ○ Critical
822
- │ ○ High
823
- │ ○ Medium
824
- │ ○ Low
806
+ ctrl submit tab navigate ^k actions
825
807
 
826
-
827
-
828
808
 
829
809
 
830
810
 
831
811
 
832
812
 
833
- ctrl ↵ submit tab navigate ^k actions"
813
+ "
834
814
  `)
835
815
 
836
816
  await session.press('enter')
@@ -842,49 +822,51 @@ test('selecting second-to-last visible item should not scroll', async () => {
842
822
 
843
823
 
844
824
 
825
+ ■ Dropdown Component Demo
826
+ │ Test dropdown with sections, multiple selection, and more
827
+ │ features
828
+
829
+ ◇ Programming Languages
830
+ │ TypeScript, Rust
831
+
832
+ │ Frontend
833
+ │ ● TypeScript
834
+ │ ○ JavaScript
835
+ │ ○ React
836
+ │ ○ Vue
837
+
838
+ │ Choose your preferred programming languages
839
+
840
+ ◇ Editor Theme
841
+ │ Dracula
842
+
843
+ │ ○ Monokai
844
+ │ ● Dracula
845
+ │ ○ One Dark
846
+ │ ○ Nord
847
+ │ ○ GitHub Light
848
+
849
+ │ Select your preferred editor color theme
850
+
851
+ ◇ Task Priority
852
+ │ Select priority level
853
+
854
+ │ ○ Critical
855
+ │ ○ High
856
+ │ ○ Medium
857
+ │ ○ Low
845
858
 
859
+
860
+
846
861
 
847
- ■ Dropdown Component Demo
848
- │ Test dropdown with sections, multiple selection, and more
849
- │ features
850
-
851
- ◇ Programming Languages
852
- │ TypeScript, Rust
853
-
854
- │ Frontend
855
- │ ● TypeScript
856
- │ ○ JavaScript
857
- │ ○ React
858
- │ ○ Vue
859
-
860
- │ Choose your preferred programming languages
861
-
862
- ◇ Editor Theme
863
- │ Dracula
864
-
865
- │ ○ Monokai
866
- │ ● Dracula
867
- │ ○ One Dark
868
- │ ○ Nord
869
- │ ○ GitHub Light
870
-
871
- │ Select your preferred editor color theme
872
-
873
- ◇ Task Priority
874
- │ Select priority level
875
-
876
- │ ○ Critical
877
- │ ○ High
878
- │ ○ Medium
879
- │ ○ Low
880
862
 
881
-
882
-
863
+ ctrl ↵ submit tab navigate ^k actions
883
864
 
884
865
 
885
866
 
886
867
 
887
868
 
888
- ctrl ↵ submit tab navigate ^k actions"
869
+
870
+ "
889
871
  `)
890
872
  }, 10000)