termcast 1.3.21 → 1.3.24

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 (412) hide show
  1. package/dist/ai.d.ts +104 -0
  2. package/dist/ai.d.ts.map +1 -0
  3. package/dist/ai.js +135 -0
  4. package/dist/ai.js.map +1 -0
  5. package/dist/apis/browser-extension.d.ts +18 -0
  6. package/dist/apis/browser-extension.d.ts.map +1 -0
  7. package/dist/apis/browser-extension.js +14 -0
  8. package/dist/apis/browser-extension.js.map +1 -0
  9. package/dist/apis/localstorage.d.ts.map +1 -1
  10. package/dist/apis/localstorage.js +4 -7
  11. package/dist/apis/localstorage.js.map +1 -1
  12. package/dist/apis/oauth.d.ts.map +1 -1
  13. package/dist/apis/oauth.js +5 -1
  14. package/dist/apis/oauth.js.map +1 -1
  15. package/dist/apis/preferences.d.ts.map +1 -1
  16. package/dist/apis/preferences.js +38 -19
  17. package/dist/apis/preferences.js.map +1 -1
  18. package/dist/build.d.ts.map +1 -1
  19. package/dist/build.js +2 -1
  20. package/dist/build.js.map +1 -1
  21. package/dist/cache.d.ts +32 -0
  22. package/dist/cache.d.ts.map +1 -0
  23. package/dist/cache.js +205 -0
  24. package/dist/cache.js.map +1 -0
  25. package/dist/cli.d.ts.map +1 -1
  26. package/dist/cli.js +67 -31
  27. package/dist/cli.js.map +1 -1
  28. package/dist/clipboard.d.ts +36 -0
  29. package/dist/clipboard.d.ts.map +1 -0
  30. package/dist/clipboard.js +154 -0
  31. package/dist/clipboard.js.map +1 -0
  32. package/dist/compile.d.ts.map +1 -1
  33. package/dist/compile.js +22 -5
  34. package/dist/compile.js.map +1 -1
  35. package/dist/components/actions.d.ts.map +1 -1
  36. package/dist/components/actions.js +56 -30
  37. package/dist/components/actions.js.map +1 -1
  38. package/dist/components/detail.d.ts.map +1 -1
  39. package/dist/components/detail.js +4 -0
  40. package/dist/components/detail.js.map +1 -1
  41. package/dist/components/dropdown.d.ts.map +1 -1
  42. package/dist/components/dropdown.js +38 -15
  43. package/dist/components/dropdown.js.map +1 -1
  44. package/dist/components/extension-preferences.d.ts.map +1 -1
  45. package/dist/components/extension-preferences.js +40 -13
  46. package/dist/components/extension-preferences.js.map +1 -1
  47. package/dist/components/form/checkbox.d.ts.map +1 -1
  48. package/dist/components/form/checkbox.js +5 -3
  49. package/dist/components/form/checkbox.js.map +1 -1
  50. package/dist/components/form/date-picker.d.ts.map +1 -1
  51. package/dist/components/form/date-picker.js +5 -3
  52. package/dist/components/form/date-picker.js.map +1 -1
  53. package/dist/components/form/description.d.ts.map +1 -1
  54. package/dist/components/form/description.js +2 -2
  55. package/dist/components/form/description.js.map +1 -1
  56. package/dist/components/form/dropdown.d.ts.map +1 -1
  57. package/dist/components/form/dropdown.js +84 -80
  58. package/dist/components/form/dropdown.js.map +1 -1
  59. package/dist/components/form/file-autocomplete.d.ts +3 -6
  60. package/dist/components/form/file-autocomplete.d.ts.map +1 -1
  61. package/dist/components/form/file-autocomplete.js +61 -66
  62. package/dist/components/form/file-autocomplete.js.map +1 -1
  63. package/dist/components/form/file-picker.d.ts.map +1 -1
  64. package/dist/components/form/file-picker.js +33 -30
  65. package/dist/components/form/file-picker.js.map +1 -1
  66. package/dist/components/form/form-end.d.ts.map +1 -1
  67. package/dist/components/form/form-end.js +21 -1
  68. package/dist/components/form/form-end.js.map +1 -1
  69. package/dist/components/form/form-type-only.d.ts +174 -0
  70. package/dist/components/form/form-type-only.d.ts.map +1 -0
  71. package/dist/components/form/form-type-only.js +2 -0
  72. package/dist/components/form/form-type-only.js.map +1 -0
  73. package/dist/components/form/index.d.ts +3 -1
  74. package/dist/components/form/index.d.ts.map +1 -1
  75. package/dist/components/form/index.js +100 -28
  76. package/dist/components/form/index.js.map +1 -1
  77. package/dist/components/form/password-field.d.ts.map +1 -1
  78. package/dist/components/form/password-field.js +5 -3
  79. package/dist/components/form/password-field.js.map +1 -1
  80. package/dist/components/form/text-area.d.ts.map +1 -1
  81. package/dist/components/form/text-area.js +5 -3
  82. package/dist/components/form/text-area.js.map +1 -1
  83. package/dist/components/form/text-field.d.ts.map +1 -1
  84. package/dist/components/form/text-field.js +6 -4
  85. package/dist/components/form/text-field.js.map +1 -1
  86. package/dist/components/form/types.d.ts +5 -0
  87. package/dist/components/form/types.d.ts.map +1 -1
  88. package/dist/components/form/use-form-handling.d.ts +4 -0
  89. package/dist/components/form/use-form-handling.d.ts.map +1 -0
  90. package/dist/components/form/use-form-handling.js +37 -0
  91. package/dist/components/form/use-form-handling.js.map +1 -0
  92. package/dist/components/form/with-left-border.d.ts +2 -1
  93. package/dist/components/form/with-left-border.d.ts.map +1 -1
  94. package/dist/components/form/with-left-border.js +27 -3
  95. package/dist/components/form/with-left-border.js.map +1 -1
  96. package/dist/components/icon.d.ts +1 -0
  97. package/dist/components/icon.d.ts.map +1 -1
  98. package/dist/components/icon.js +24 -8
  99. package/dist/components/icon.js.map +1 -1
  100. package/dist/components/list.d.ts +2 -2
  101. package/dist/components/list.d.ts.map +1 -1
  102. package/dist/components/list.js +140 -62
  103. package/dist/components/list.js.map +1 -1
  104. package/dist/components/loading-bar.d.ts.map +1 -1
  105. package/dist/components/loading-bar.js +2 -2
  106. package/dist/components/loading-bar.js.map +1 -1
  107. package/dist/components/loading-text.d.ts +8 -0
  108. package/dist/components/loading-text.d.ts.map +1 -0
  109. package/dist/components/loading-text.js +58 -0
  110. package/dist/components/loading-text.js.map +1 -0
  111. package/dist/descendants.js +1 -1
  112. package/dist/descendants.js.map +1 -1
  113. package/dist/dev-ui.d.ts +7 -0
  114. package/dist/dev-ui.d.ts.map +1 -0
  115. package/dist/dev-ui.js +118 -0
  116. package/dist/dev-ui.js.map +1 -0
  117. package/dist/environment.d.ts +63 -0
  118. package/dist/environment.d.ts.map +1 -0
  119. package/dist/environment.js +189 -0
  120. package/dist/environment.js.map +1 -0
  121. package/dist/examples/datepicker.d.ts +2 -0
  122. package/dist/examples/datepicker.d.ts.map +1 -0
  123. package/dist/examples/datepicker.js +344 -0
  124. package/dist/examples/datepicker.js.map +1 -0
  125. package/dist/examples/file-autocomplete.vitest.d.ts +2 -0
  126. package/dist/examples/file-autocomplete.vitest.d.ts.map +1 -0
  127. package/dist/examples/file-autocomplete.vitest.js +223 -0
  128. package/dist/examples/file-autocomplete.vitest.js.map +1 -0
  129. package/dist/examples/form-basic-arrow-keys.vitest.d.ts +2 -0
  130. package/dist/examples/form-basic-arrow-keys.vitest.d.ts.map +1 -0
  131. package/dist/examples/form-basic-arrow-keys.vitest.js +46 -0
  132. package/dist/examples/form-basic-arrow-keys.vitest.js.map +1 -0
  133. package/dist/examples/form-basic.vitest.d.ts +2 -0
  134. package/dist/examples/form-basic.vitest.d.ts.map +1 -0
  135. package/dist/examples/form-basic.vitest.js +630 -0
  136. package/dist/examples/form-basic.vitest.js.map +1 -0
  137. package/dist/examples/form-dropdown-with-sections.d.ts +2 -0
  138. package/dist/examples/form-dropdown-with-sections.d.ts.map +1 -0
  139. package/dist/examples/form-dropdown-with-sections.js +13 -0
  140. package/dist/examples/form-dropdown-with-sections.js.map +1 -0
  141. package/dist/examples/form-dropdown-with-sections.vitest.d.ts +2 -0
  142. package/dist/examples/form-dropdown-with-sections.vitest.d.ts.map +1 -0
  143. package/dist/examples/form-dropdown-with-sections.vitest.js +75 -0
  144. package/dist/examples/form-dropdown-with-sections.vitest.js.map +1 -0
  145. package/dist/examples/form-dropdown.vitest.d.ts +2 -0
  146. package/dist/examples/form-dropdown.vitest.d.ts.map +1 -0
  147. package/dist/examples/form-dropdown.vitest.js +854 -0
  148. package/dist/examples/form-dropdown.vitest.js.map +1 -0
  149. package/dist/examples/form-multiselect-dropdown.d.ts +2 -0
  150. package/dist/examples/form-multiselect-dropdown.d.ts.map +1 -0
  151. package/dist/examples/form-multiselect-dropdown.js +13 -0
  152. package/dist/examples/form-multiselect-dropdown.js.map +1 -0
  153. package/dist/examples/form-scroll.d.ts.map +1 -1
  154. package/dist/examples/form-scroll.js +7 -1
  155. package/dist/examples/form-scroll.js.map +1 -1
  156. package/dist/examples/form-scroll.vitest.d.ts +2 -0
  157. package/dist/examples/form-scroll.vitest.d.ts.map +1 -0
  158. package/dist/examples/form-scroll.vitest.js +211 -0
  159. package/dist/examples/form-scroll.vitest.js.map +1 -0
  160. package/dist/examples/form-tagpicker.vitest.d.ts +2 -0
  161. package/dist/examples/form-tagpicker.vitest.d.ts.map +1 -0
  162. package/dist/examples/form-tagpicker.vitest.js +736 -0
  163. package/dist/examples/form-tagpicker.vitest.js.map +1 -0
  164. package/dist/examples/internal/descendants-filtering.js +1 -1
  165. package/dist/examples/internal/descendants-filtering.js.map +1 -1
  166. package/dist/examples/internal/descendants.js +1 -1
  167. package/dist/examples/internal/descendants.js.map +1 -1
  168. package/dist/examples/internal/nested-boxes.d.ts +2 -0
  169. package/dist/examples/internal/nested-boxes.d.ts.map +1 -0
  170. package/dist/examples/internal/nested-boxes.js +7 -0
  171. package/dist/examples/internal/nested-boxes.js.map +1 -0
  172. package/dist/examples/internal/rhf-custom-ref.js +2 -2
  173. package/dist/examples/internal/rhf-custom-ref.js.map +1 -1
  174. package/dist/examples/internal/scrollbox-demo.js +3 -22
  175. package/dist/examples/internal/scrollbox-demo.js.map +1 -1
  176. package/dist/examples/internal/scrollbox-descendants.d.ts +2 -0
  177. package/dist/examples/internal/scrollbox-descendants.d.ts.map +1 -0
  178. package/dist/examples/internal/scrollbox-descendants.js +83 -0
  179. package/dist/examples/internal/scrollbox-descendants.js.map +1 -0
  180. package/dist/examples/internal/scrollbox-with-descendants.js +4 -8
  181. package/dist/examples/internal/scrollbox-with-descendants.js.map +1 -1
  182. package/dist/examples/internal/simple-scrollbox.vitest.d.ts +2 -0
  183. package/dist/examples/internal/simple-scrollbox.vitest.d.ts.map +1 -0
  184. package/dist/examples/internal/simple-scrollbox.vitest.js +96 -0
  185. package/dist/examples/internal/simple-scrollbox.vitest.js.map +1 -0
  186. package/dist/examples/internal/unicode-square-repro.d.ts +2 -0
  187. package/dist/examples/internal/unicode-square-repro.d.ts.map +1 -0
  188. package/dist/examples/internal/unicode-square-repro.js +7 -0
  189. package/dist/examples/internal/unicode-square-repro.js.map +1 -0
  190. package/dist/examples/list-detail-metadata.d.ts +2 -0
  191. package/dist/examples/list-detail-metadata.d.ts.map +1 -0
  192. package/dist/examples/list-detail-metadata.js +8 -0
  193. package/dist/examples/list-detail-metadata.js.map +1 -0
  194. package/dist/examples/list-dropdown-default.vitest.d.ts +2 -0
  195. package/dist/examples/list-dropdown-default.vitest.d.ts.map +1 -0
  196. package/dist/examples/list-dropdown-default.vitest.js +234 -0
  197. package/dist/examples/list-dropdown-default.vitest.js.map +1 -0
  198. package/dist/examples/list-fetch-data.vitest.d.ts +2 -0
  199. package/dist/examples/list-fetch-data.vitest.d.ts.map +1 -0
  200. package/dist/examples/list-fetch-data.vitest.js +111 -0
  201. package/dist/examples/list-fetch-data.vitest.js.map +1 -0
  202. package/dist/examples/list-filter-navigation.d.ts +2 -0
  203. package/dist/examples/list-filter-navigation.d.ts.map +1 -0
  204. package/dist/examples/list-filter-navigation.js +8 -0
  205. package/dist/examples/list-filter-navigation.js.map +1 -0
  206. package/dist/examples/list-scrollbox.vitest.d.ts +2 -0
  207. package/dist/examples/list-scrollbox.vitest.d.ts.map +1 -0
  208. package/dist/examples/list-scrollbox.vitest.js +93 -0
  209. package/dist/examples/list-scrollbox.vitest.js.map +1 -0
  210. package/dist/examples/list-with-detail-long.d.ts +2 -0
  211. package/dist/examples/list-with-detail-long.d.ts.map +1 -0
  212. package/dist/examples/list-with-detail-long.js +53 -0
  213. package/dist/examples/list-with-detail-long.js.map +1 -0
  214. package/dist/examples/list-with-detail.vitest.d.ts +2 -0
  215. package/dist/examples/list-with-detail.vitest.d.ts.map +1 -0
  216. package/dist/examples/list-with-detail.vitest.js +434 -0
  217. package/dist/examples/list-with-detail.vitest.js.map +1 -0
  218. package/dist/examples/list-with-dropdown.vitest.d.ts +2 -0
  219. package/dist/examples/list-with-dropdown.vitest.d.ts.map +1 -0
  220. package/dist/examples/list-with-dropdown.vitest.js +337 -0
  221. package/dist/examples/list-with-dropdown.vitest.js.map +1 -0
  222. package/dist/examples/list-with-sections.js +5 -1
  223. package/dist/examples/list-with-sections.js.map +1 -1
  224. package/dist/examples/list-with-sections.vitest.d.ts +2 -0
  225. package/dist/examples/list-with-sections.vitest.d.ts.map +1 -0
  226. package/dist/examples/list-with-sections.vitest.js +601 -0
  227. package/dist/examples/list-with-sections.vitest.js.map +1 -0
  228. package/dist/examples/scrollbox-vertical-centering.d.ts +6 -0
  229. package/dist/examples/scrollbox-vertical-centering.d.ts.map +1 -0
  230. package/dist/examples/scrollbox-vertical-centering.js +17 -0
  231. package/dist/examples/scrollbox-vertical-centering.js.map +1 -0
  232. package/dist/examples/simple-file-picker.vitest.d.ts +2 -0
  233. package/dist/examples/simple-file-picker.vitest.d.ts.map +1 -0
  234. package/dist/examples/simple-file-picker.vitest.js +678 -0
  235. package/dist/examples/simple-file-picker.vitest.js.map +1 -0
  236. package/dist/examples/simple-grid.vitest.d.ts +2 -0
  237. package/dist/examples/simple-grid.vitest.d.ts.map +1 -0
  238. package/dist/examples/simple-grid.vitest.js +521 -0
  239. package/dist/examples/simple-grid.vitest.js.map +1 -0
  240. package/dist/examples/simple-navigation.js +10 -4
  241. package/dist/examples/simple-navigation.js.map +1 -1
  242. package/dist/examples/simple-navigation.vitest.d.ts +2 -0
  243. package/dist/examples/simple-navigation.vitest.d.ts.map +1 -0
  244. package/dist/examples/simple-navigation.vitest.js +718 -0
  245. package/dist/examples/simple-navigation.vitest.js.map +1 -0
  246. package/dist/examples/store.vitest.d.ts +2 -0
  247. package/dist/examples/store.vitest.d.ts.map +1 -0
  248. package/dist/examples/store.vitest.js +69 -0
  249. package/dist/examples/store.vitest.js.map +1 -0
  250. package/dist/extensions/dev.d.ts +4 -2
  251. package/dist/extensions/dev.d.ts.map +1 -1
  252. package/dist/extensions/dev.js +61 -10
  253. package/dist/extensions/dev.js.map +1 -1
  254. package/dist/extensions/dev.vitest.d.ts +2 -0
  255. package/dist/extensions/dev.vitest.d.ts.map +1 -0
  256. package/dist/extensions/dev.vitest.js +197 -0
  257. package/dist/extensions/dev.vitest.js.map +1 -0
  258. package/dist/extensions/home.d.ts.map +1 -1
  259. package/dist/extensions/home.js +3 -0
  260. package/dist/extensions/home.js.map +1 -1
  261. package/dist/home-command.d.ts +8 -0
  262. package/dist/home-command.d.ts.map +1 -0
  263. package/dist/home-command.js +181 -0
  264. package/dist/home-command.js.map +1 -0
  265. package/dist/hover-repro.d.ts +2 -0
  266. package/dist/hover-repro.d.ts.map +1 -0
  267. package/dist/hover-repro.js +20 -0
  268. package/dist/hover-repro.js.map +1 -0
  269. package/dist/index.d.ts +1 -0
  270. package/dist/index.d.ts.map +1 -1
  271. package/dist/index.js +2 -0
  272. package/dist/index.js.map +1 -1
  273. package/dist/internal/dialog.d.ts +1 -0
  274. package/dist/internal/dialog.d.ts.map +1 -1
  275. package/dist/internal/dialog.js +27 -18
  276. package/dist/internal/dialog.js.map +1 -1
  277. package/dist/internal/navigation.d.ts +9 -1
  278. package/dist/internal/navigation.d.ts.map +1 -1
  279. package/dist/internal/navigation.js +5 -5
  280. package/dist/internal/navigation.js.map +1 -1
  281. package/dist/internal/offscreen.d.ts +6 -0
  282. package/dist/internal/offscreen.d.ts.map +1 -0
  283. package/dist/internal/offscreen.js +10 -0
  284. package/dist/internal/offscreen.js.map +1 -0
  285. package/dist/internal/providers.d.ts.map +1 -1
  286. package/dist/internal/providers.js +2 -2
  287. package/dist/internal/providers.js.map +1 -1
  288. package/dist/internal/scrollbox.d.ts +1 -10
  289. package/dist/internal/scrollbox.d.ts.map +1 -1
  290. package/dist/internal/scrollbox.js +2 -1
  291. package/dist/internal/scrollbox.js.map +1 -1
  292. package/dist/localstorage.d.ts +13 -0
  293. package/dist/localstorage.d.ts.map +1 -0
  294. package/dist/localstorage.js +190 -0
  295. package/dist/localstorage.js.map +1 -0
  296. package/dist/oauth.d.ts +142 -0
  297. package/dist/oauth.d.ts.map +1 -0
  298. package/dist/oauth.js +551 -0
  299. package/dist/oauth.js.map +1 -0
  300. package/dist/preferences.d.ts +23 -0
  301. package/dist/preferences.d.ts.map +1 -0
  302. package/dist/preferences.js +105 -0
  303. package/dist/preferences.js.map +1 -0
  304. package/dist/state.d.ts +2 -0
  305. package/dist/state.d.ts.map +1 -1
  306. package/dist/state.js +3 -0
  307. package/dist/state.js.map +1 -1
  308. package/dist/store.d.ts +21 -0
  309. package/dist/store.d.ts.map +1 -0
  310. package/dist/store.js +84 -0
  311. package/dist/store.js.map +1 -0
  312. package/dist/swift-loader.d.ts +3 -0
  313. package/dist/swift-loader.d.ts.map +1 -0
  314. package/dist/swift-loader.js +193 -0
  315. package/dist/swift-loader.js.map +1 -0
  316. package/dist/swift-runtime.d.ts +2 -0
  317. package/dist/swift-runtime.d.ts.map +1 -0
  318. package/dist/swift-runtime.js +27 -0
  319. package/dist/swift-runtime.js.map +1 -0
  320. package/dist/toast.d.ts +44 -0
  321. package/dist/toast.d.ts.map +1 -0
  322. package/dist/toast.js +221 -0
  323. package/dist/toast.js.map +1 -0
  324. package/dist/utils/file-system.d.ts +9 -0
  325. package/dist/utils/file-system.d.ts.map +1 -1
  326. package/dist/utils/file-system.js +49 -0
  327. package/dist/utils/file-system.js.map +1 -1
  328. package/dist/utils/run-command.d.ts +25 -1
  329. package/dist/utils/run-command.d.ts.map +1 -1
  330. package/dist/utils/run-command.js +47 -4
  331. package/dist/utils/run-command.js.map +1 -1
  332. package/dist/window.d.ts +12 -0
  333. package/dist/window.d.ts.map +1 -0
  334. package/dist/window.js +48 -0
  335. package/dist/window.js.map +1 -0
  336. package/package.json +12 -10
  337. package/src/apis/browser-extension.tsx +29 -0
  338. package/src/apis/localstorage.test.ts +14 -6
  339. package/src/apis/localstorage.tsx +8 -5
  340. package/src/apis/oauth.tsx +5 -1
  341. package/src/apis/preferences.tsx +48 -22
  342. package/src/build.test.tsx +52 -0
  343. package/src/build.tsx +2 -1
  344. package/src/cli.tsx +78 -37
  345. package/src/compile.tsx +22 -5
  346. package/src/components/actions.tsx +94 -32
  347. package/src/components/detail.tsx +4 -0
  348. package/src/components/dropdown.tsx +47 -14
  349. package/src/components/extension-preferences.tsx +44 -16
  350. package/src/components/form/checkbox.tsx +12 -6
  351. package/src/components/form/date-picker.tsx +12 -6
  352. package/src/components/form/description.tsx +7 -2
  353. package/src/components/form/dropdown.tsx +131 -119
  354. package/src/components/form/file-autocomplete.tsx +90 -108
  355. package/src/components/form/file-picker.tsx +54 -43
  356. package/src/components/form/form-end.tsx +23 -2
  357. package/src/components/form/index.tsx +152 -34
  358. package/src/components/form/password-field.tsx +12 -6
  359. package/src/components/form/text-area.tsx +13 -6
  360. package/src/components/form/text-field.tsx +13 -6
  361. package/src/components/form/types.tsx +6 -0
  362. package/src/components/form/with-left-border.tsx +41 -8
  363. package/src/components/icon.tsx +27 -8
  364. package/src/components/list.tsx +193 -74
  365. package/src/components/loading-bar.tsx +3 -2
  366. package/src/components/loading-text.tsx +79 -0
  367. package/src/descendants.tsx +1 -0
  368. package/src/examples/file-autocomplete.vitest.tsx +130 -125
  369. package/src/examples/form-basic.vitest.tsx +376 -176
  370. package/src/examples/form-dropdown.vitest.tsx +126 -126
  371. package/src/examples/form-scroll.tsx +2 -0
  372. package/src/examples/form-scroll.vitest.tsx +58 -58
  373. package/src/examples/form-tagpicker.vitest.tsx +99 -99
  374. package/src/examples/internal/descendants-filtering.tsx +1 -0
  375. package/src/examples/internal/descendants.tsx +1 -0
  376. package/src/examples/internal/rhf-custom-ref.tsx +2 -0
  377. package/src/examples/internal/scrollbox-demo.tsx +3 -27
  378. package/src/examples/internal/scrollbox-with-descendants.tsx +4 -7
  379. package/src/examples/internal/simple-scrollbox.vitest.tsx +7 -5
  380. package/src/examples/list-detail-metadata.tsx +49 -0
  381. package/src/examples/list-detail-metadata.vitest.tsx +88 -0
  382. package/src/examples/list-dropdown-default.vitest.tsx +51 -51
  383. package/src/examples/list-fetch-data.vitest.tsx +4 -4
  384. package/src/examples/list-scrollbox.vitest.tsx +73 -14
  385. package/src/examples/list-with-detail-long.tsx +70 -0
  386. package/src/examples/list-with-detail.vitest.tsx +198 -92
  387. package/src/examples/list-with-dropdown.vitest.tsx +53 -53
  388. package/src/examples/list-with-sections.tsx +1 -0
  389. package/src/examples/list-with-sections.vitest.tsx +213 -89
  390. package/src/examples/list-with-toast.vitest.tsx +4 -4
  391. package/src/examples/simple-file-picker.vitest.tsx +61 -471
  392. package/src/examples/simple-grid.vitest.tsx +238 -233
  393. package/src/examples/simple-navigation.tsx +15 -7
  394. package/src/examples/simple-navigation.vitest.tsx +121 -210
  395. package/src/examples/store.vitest.tsx +1 -1
  396. package/src/examples/swift-extension.vitest.tsx +148 -0
  397. package/src/examples/synonyms.vitest.tsx +159 -0
  398. package/src/extensions/dev.tsx +74 -7
  399. package/src/extensions/dev.vitest.tsx +97 -31
  400. package/src/extensions/home.tsx +6 -0
  401. package/src/index.tsx +3 -0
  402. package/src/internal/dialog.tsx +43 -30
  403. package/src/internal/navigation.tsx +3 -1
  404. package/src/internal/offscreen.tsx +15 -0
  405. package/src/internal/providers.tsx +4 -2
  406. package/src/internal/scrollbox.tsx +4 -8
  407. package/src/keyboard.test.tsx +69 -0
  408. package/src/state.tsx +7 -0
  409. package/src/swift-loader.tsx +239 -0
  410. package/src/swift-runtime.tsx +36 -0
  411. package/src/utils/file-system.ts +61 -0
  412. package/src/utils/run-command.tsx +75 -6
@@ -39,9 +39,9 @@ test('form dropdown shows inline options', async () => {
39
39
 
40
40
 
41
41
  ■ Dropdown Component Demo
42
- Test dropdown with sections, multiple selection, and more
43
- features
44
-
42
+ Test dropdown with sections, multiple selection, and more
43
+ features
44
+
45
45
  ◇ Programming Languages
46
46
  │ TypeScript, Rust
47
47
 
@@ -50,7 +50,6 @@ test('form dropdown shows inline options', async () => {
50
50
  │ ○ JavaScript
51
51
  │ ○ React
52
52
  │ ○ Vue
53
- │ ↑↓ to see more options
54
53
 
55
54
  │ Choose your preferred programming languages
56
55
 
@@ -61,7 +60,7 @@ test('form dropdown shows inline options', async () => {
61
60
  │ ● Dracula
62
61
  │ ○ One Dark
63
62
  │ ○ Nord
64
- ↑↓ to see more options
63
+ GitHub Light
65
64
 
66
65
  │ Select your preferred editor color theme
67
66
 
@@ -72,14 +71,15 @@ test('form dropdown shows inline options', async () => {
72
71
  │ ○ High
73
72
  │ ○ Medium
74
73
  │ ○ Low
75
-
76
74
 
75
+
76
+
77
77
 
78
78
 
79
79
 
80
80
 
81
81
 
82
- ctrl ↵ submit ↑↓ navigate ^k actions"
82
+ ctrl ↵ submit tab navigate ^k actions"
83
83
  `)
84
84
 
85
85
  await session.press('space')
@@ -94,9 +94,9 @@ test('form dropdown shows inline options', async () => {
94
94
 
95
95
 
96
96
  ■ Dropdown Component Demo
97
- Test dropdown with sections, multiple selection, and more
98
- features
99
-
97
+ Test dropdown with sections, multiple selection, and more
98
+ features
99
+
100
100
  ◇ Programming Languages
101
101
  │ TypeScript, Rust
102
102
 
@@ -105,7 +105,6 @@ test('form dropdown shows inline options', async () => {
105
105
  │ ○ JavaScript
106
106
  │ ○ React
107
107
  │ ○ Vue
108
- │ ↑↓ to see more options
109
108
 
110
109
  │ Choose your preferred programming languages
111
110
 
@@ -116,7 +115,7 @@ test('form dropdown shows inline options', async () => {
116
115
  │ ● Dracula
117
116
  │ ○ One Dark
118
117
  │ ○ Nord
119
- ↑↓ to see more options
118
+ GitHub Light
120
119
 
121
120
  │ Select your preferred editor color theme
122
121
 
@@ -127,14 +126,15 @@ test('form dropdown shows inline options', async () => {
127
126
  │ ○ High
128
127
  │ ○ Medium
129
128
  │ ○ Low
130
-
131
129
 
130
+
131
+
132
132
 
133
133
 
134
134
 
135
135
 
136
136
 
137
- ctrl ↵ submit ↑↓ navigate ^k actions"
137
+ ctrl ↵ submit tab navigate ^k actions"
138
138
  `)
139
139
 
140
140
  await session.press('down')
@@ -149,9 +149,9 @@ test('form dropdown shows inline options', async () => {
149
149
 
150
150
 
151
151
  ■ Dropdown Component Demo
152
- Test dropdown with sections, multiple selection, and more
153
- features
154
-
152
+ Test dropdown with sections, multiple selection, and more
153
+ features
154
+
155
155
  ◇ Programming Languages
156
156
  │ TypeScript, Rust
157
157
 
@@ -160,7 +160,6 @@ test('form dropdown shows inline options', async () => {
160
160
  │ ○ JavaScript
161
161
  │ ○ React
162
162
  │ ○ Vue
163
- │ ↑↓ to see more options
164
163
 
165
164
  │ Choose your preferred programming languages
166
165
 
@@ -171,7 +170,7 @@ test('form dropdown shows inline options', async () => {
171
170
  │ ● Dracula
172
171
  │ ○ One Dark
173
172
  │ ○ Nord
174
- ↑↓ to see more options
173
+ GitHub Light
175
174
 
176
175
  │ Select your preferred editor color theme
177
176
 
@@ -182,14 +181,15 @@ test('form dropdown shows inline options', async () => {
182
181
  │ ○ High
183
182
  │ ○ Medium
184
183
  │ ○ Low
185
-
186
184
 
185
+
186
+
187
187
 
188
188
 
189
189
 
190
190
 
191
191
 
192
- ctrl ↵ submit ↑↓ navigate ^k actions"
192
+ ctrl ↵ submit tab navigate ^k actions"
193
193
  `)
194
194
 
195
195
  await session.press('down')
@@ -207,9 +207,9 @@ test('form dropdown shows inline options', async () => {
207
207
 
208
208
 
209
209
  ■ Dropdown Component Demo
210
- Test dropdown with sections, multiple selection, and more
211
- features
212
-
210
+ Test dropdown with sections, multiple selection, and more
211
+ features
212
+
213
213
  ◇ Programming Languages
214
214
  │ TypeScript, Rust
215
215
 
@@ -218,7 +218,6 @@ test('form dropdown shows inline options', async () => {
218
218
  │ ○ JavaScript
219
219
  │ ○ React
220
220
  │ ○ Vue
221
- │ ↑↓ to see more options
222
221
 
223
222
  │ Choose your preferred programming languages
224
223
 
@@ -229,7 +228,7 @@ test('form dropdown shows inline options', async () => {
229
228
  │ ● Dracula
230
229
  │ ○ One Dark
231
230
  │ ○ Nord
232
- ↑↓ to see more options
231
+ GitHub Light
233
232
 
234
233
  │ Select your preferred editor color theme
235
234
 
@@ -240,14 +239,15 @@ test('form dropdown shows inline options', async () => {
240
239
  │ ○ High
241
240
  │ ○ Medium
242
241
  │ ○ Low
243
-
244
242
 
243
+
244
+
245
245
 
246
246
 
247
247
 
248
248
 
249
249
 
250
- ctrl ↵ submit ↑↓ navigate ^k actions"
250
+ ctrl ↵ submit tab navigate ^k actions"
251
251
  `)
252
252
 
253
253
  await session.press('enter')
@@ -262,9 +262,9 @@ test('form dropdown shows inline options', async () => {
262
262
 
263
263
 
264
264
  ■ Dropdown Component Demo
265
- Test dropdown with sections, multiple selection, and more
266
- features
267
-
265
+ Test dropdown with sections, multiple selection, and more
266
+ features
267
+
268
268
  ◇ Programming Languages
269
269
  │ TypeScript, Rust
270
270
 
@@ -273,7 +273,6 @@ test('form dropdown shows inline options', async () => {
273
273
  │ ○ JavaScript
274
274
  │ ○ React
275
275
  │ ○ Vue
276
- │ ↑↓ to see more options
277
276
 
278
277
  │ Choose your preferred programming languages
279
278
 
@@ -284,7 +283,7 @@ test('form dropdown shows inline options', async () => {
284
283
  │ ● Dracula
285
284
  │ ○ One Dark
286
285
  │ ○ Nord
287
- ↑↓ to see more options
286
+ GitHub Light
288
287
 
289
288
  │ Select your preferred editor color theme
290
289
 
@@ -295,14 +294,15 @@ test('form dropdown shows inline options', async () => {
295
294
  │ ○ High
296
295
  │ ○ Medium
297
296
  │ ○ Low
298
-
299
297
 
298
+
299
+
300
300
 
301
301
 
302
302
 
303
303
 
304
304
 
305
- ctrl ↵ submit ↑↓ navigate ^k actions"
305
+ ctrl ↵ submit tab navigate ^k actions"
306
306
  `)
307
307
  }, 10000)
308
308
 
@@ -325,9 +325,9 @@ test('form dropdown keyboard navigation', async () => {
325
325
 
326
326
 
327
327
  ■ Dropdown Component Demo
328
- Test dropdown with sections, multiple selection, and more
329
- features
330
-
328
+ Test dropdown with sections, multiple selection, and more
329
+ features
330
+
331
331
  ◇ Programming Languages
332
332
  │ TypeScript, Rust
333
333
 
@@ -336,7 +336,6 @@ test('form dropdown keyboard navigation', async () => {
336
336
  │ ○ JavaScript
337
337
  │ ○ React
338
338
  │ ○ Vue
339
- │ ↑↓ to see more options
340
339
 
341
340
  │ Choose your preferred programming languages
342
341
 
@@ -347,7 +346,7 @@ test('form dropdown keyboard navigation', async () => {
347
346
  │ ● Dracula
348
347
  │ ○ One Dark
349
348
  │ ○ Nord
350
- ↑↓ to see more options
349
+ GitHub Light
351
350
 
352
351
  │ Select your preferred editor color theme
353
352
 
@@ -358,14 +357,15 @@ test('form dropdown keyboard navigation', async () => {
358
357
  │ ○ High
359
358
  │ ○ Medium
360
359
  │ ○ Low
361
-
362
360
 
361
+
362
+
363
363
 
364
364
 
365
365
 
366
366
 
367
367
 
368
- ctrl ↵ submit ↑↓ navigate ^k actions"
368
+ ctrl ↵ submit tab navigate ^k actions"
369
369
  `)
370
370
 
371
371
  await session.press('down')
@@ -383,9 +383,9 @@ test('form dropdown keyboard navigation', async () => {
383
383
 
384
384
 
385
385
  ■ Dropdown Component Demo
386
- Test dropdown with sections, multiple selection, and more
387
- features
388
-
386
+ Test dropdown with sections, multiple selection, and more
387
+ features
388
+
389
389
  ◇ Programming Languages
390
390
  │ TypeScript, Rust
391
391
 
@@ -394,7 +394,6 @@ test('form dropdown keyboard navigation', async () => {
394
394
  │ ○ JavaScript
395
395
  │ ○ React
396
396
  │ ○ Vue
397
- │ ↑↓ to see more options
398
397
 
399
398
  │ Choose your preferred programming languages
400
399
 
@@ -405,7 +404,7 @@ test('form dropdown keyboard navigation', async () => {
405
404
  │ ● Dracula
406
405
  │ ○ One Dark
407
406
  │ ○ Nord
408
- ↑↓ to see more options
407
+ GitHub Light
409
408
 
410
409
  │ Select your preferred editor color theme
411
410
 
@@ -416,14 +415,15 @@ test('form dropdown keyboard navigation', async () => {
416
415
  │ ○ High
417
416
  │ ○ Medium
418
417
  │ ○ Low
419
-
420
418
 
419
+
420
+
421
421
 
422
422
 
423
423
 
424
424
 
425
425
 
426
- ctrl ↵ submit ↑↓ navigate ^k actions"
426
+ ctrl ↵ submit tab navigate ^k actions"
427
427
  `)
428
428
 
429
429
  await session.press('down')
@@ -438,9 +438,9 @@ test('form dropdown keyboard navigation', async () => {
438
438
 
439
439
 
440
440
  ■ Dropdown Component Demo
441
- Test dropdown with sections, multiple selection, and more
442
- features
443
-
441
+ Test dropdown with sections, multiple selection, and more
442
+ features
443
+
444
444
  ◇ Programming Languages
445
445
  │ TypeScript, Rust
446
446
 
@@ -449,7 +449,6 @@ test('form dropdown keyboard navigation', async () => {
449
449
  │ ○ JavaScript
450
450
  │ ○ React
451
451
  │ ○ Vue
452
- │ ↑↓ to see more options
453
452
 
454
453
  │ Choose your preferred programming languages
455
454
 
@@ -460,7 +459,7 @@ test('form dropdown keyboard navigation', async () => {
460
459
  │ ● Dracula
461
460
  │ ○ One Dark
462
461
  │ ○ Nord
463
- ↑↓ to see more options
462
+ GitHub Light
464
463
 
465
464
  │ Select your preferred editor color theme
466
465
 
@@ -471,14 +470,15 @@ test('form dropdown keyboard navigation', async () => {
471
470
  │ ○ High
472
471
  │ ○ Medium
473
472
  │ ○ Low
474
-
475
473
 
474
+
475
+
476
476
 
477
477
 
478
478
 
479
479
 
480
480
 
481
- ctrl ↵ submit ↑↓ navigate ^k actions"
481
+ ctrl ↵ submit tab navigate ^k actions"
482
482
  `)
483
483
 
484
484
  await session.press('up')
@@ -493,9 +493,9 @@ test('form dropdown keyboard navigation', async () => {
493
493
 
494
494
 
495
495
  ■ Dropdown Component Demo
496
- Test dropdown with sections, multiple selection, and more
497
- features
498
-
496
+ Test dropdown with sections, multiple selection, and more
497
+ features
498
+
499
499
  ◇ Programming Languages
500
500
  │ TypeScript, Rust
501
501
 
@@ -504,7 +504,6 @@ test('form dropdown keyboard navigation', async () => {
504
504
  │ ○ JavaScript
505
505
  │ ○ React
506
506
  │ ○ Vue
507
- │ ↑↓ to see more options
508
507
 
509
508
  │ Choose your preferred programming languages
510
509
 
@@ -515,7 +514,7 @@ test('form dropdown keyboard navigation', async () => {
515
514
  │ ● Dracula
516
515
  │ ○ One Dark
517
516
  │ ○ Nord
518
- ↑↓ to see more options
517
+ GitHub Light
519
518
 
520
519
  │ Select your preferred editor color theme
521
520
 
@@ -526,14 +525,15 @@ test('form dropdown keyboard navigation', async () => {
526
525
  │ ○ High
527
526
  │ ○ Medium
528
527
  │ ○ Low
529
-
530
528
 
529
+
530
+
531
531
 
532
532
 
533
533
 
534
534
 
535
535
 
536
- ctrl ↵ submit ↑↓ navigate ^k actions"
536
+ ctrl ↵ submit tab navigate ^k actions"
537
537
  `)
538
538
 
539
539
  await session.press('esc')
@@ -548,9 +548,9 @@ test('form dropdown keyboard navigation', async () => {
548
548
 
549
549
 
550
550
  ■ Dropdown Component Demo
551
- Test dropdown with sections, multiple selection, and more
552
- features
553
-
551
+ Test dropdown with sections, multiple selection, and more
552
+ features
553
+
554
554
  ◇ Programming Languages
555
555
  │ TypeScript, Rust
556
556
 
@@ -559,7 +559,6 @@ test('form dropdown keyboard navigation', async () => {
559
559
  │ ○ JavaScript
560
560
  │ ○ React
561
561
  │ ○ Vue
562
- │ ↑↓ to see more options
563
562
 
564
563
  │ Choose your preferred programming languages
565
564
 
@@ -570,7 +569,7 @@ test('form dropdown keyboard navigation', async () => {
570
569
  │ ● Dracula
571
570
  │ ○ One Dark
572
571
  │ ○ Nord
573
- ↑↓ to see more options
572
+ GitHub Light
574
573
 
575
574
  │ Select your preferred editor color theme
576
575
 
@@ -581,14 +580,15 @@ test('form dropdown keyboard navigation', async () => {
581
580
  │ ○ High
582
581
  │ ○ Medium
583
582
  │ ○ Low
584
-
585
583
 
584
+
585
+
586
586
 
587
587
 
588
588
 
589
589
 
590
590
 
591
- ctrl ↵ submit ↑↓ navigate ^k actions"
591
+ ctrl ↵ submit tab navigate ^k actions"
592
592
  `)
593
593
  }, 10000)
594
594
 
@@ -615,17 +615,16 @@ test('form dropdown with default value', async () => {
615
615
  │ features
616
616
 
617
617
  ◆ Programming Languages
618
- TypeScript, Rust
619
-
620
- Frontend
621
- ┃› ● TypeScript
622
- ○ JavaScript
623
- ○ React
624
- ○ Vue
625
- ┃ ↑↓ to see more options
626
-
627
- ┃ Choose your preferred programming languages
628
-
618
+ TypeScript, Rust
619
+
620
+ Frontend
621
+ │› ● TypeScript
622
+ ○ JavaScript
623
+ ○ React
624
+ ○ Vue
625
+
626
+ │ Choose your preferred programming languages
627
+
629
628
  ◇ Editor Theme
630
629
  │ Dracula
631
630
 
@@ -633,7 +632,7 @@ test('form dropdown with default value', async () => {
633
632
  │ ● Dracula
634
633
  │ ○ One Dark
635
634
  │ ○ Nord
636
- ↑↓ to see more options
635
+ GitHub Light
637
636
 
638
637
  │ Select your preferred editor color theme
639
638
 
@@ -644,14 +643,15 @@ test('form dropdown with default value', async () => {
644
643
  │ ○ High
645
644
  │ ○ Medium
646
645
  │ ○ Low
647
-
648
646
 
647
+
648
+
649
649
 
650
650
 
651
651
 
652
652
 
653
653
 
654
- ctrl ↵ submit ↑↓ navigate ^k actions"
654
+ ctrl ↵ submit tab navigate ^k actions"
655
655
  `)
656
656
 
657
657
  await session.press('space')
@@ -670,17 +670,16 @@ test('form dropdown with default value', async () => {
670
670
  │ features
671
671
 
672
672
  ◆ Programming Languages
673
- Rust
674
-
675
- Frontend
676
- ┃› ○ TypeScript
677
- ○ JavaScript
678
- ○ React
679
- ○ Vue
680
- ┃ ↑↓ to see more options
681
-
682
- ┃ Choose your preferred programming languages
683
-
673
+ Rust
674
+
675
+ Frontend
676
+ │› ○ TypeScript
677
+ ○ JavaScript
678
+ ○ React
679
+ ○ Vue
680
+
681
+ │ Choose your preferred programming languages
682
+
684
683
  ◇ Editor Theme
685
684
  │ Dracula
686
685
 
@@ -688,7 +687,7 @@ test('form dropdown with default value', async () => {
688
687
  │ ● Dracula
689
688
  │ ○ One Dark
690
689
  │ ○ Nord
691
- ↑↓ to see more options
690
+ GitHub Light
692
691
 
693
692
  │ Select your preferred editor color theme
694
693
 
@@ -699,14 +698,15 @@ test('form dropdown with default value', async () => {
699
698
  │ ○ High
700
699
  │ ○ Medium
701
700
  │ ○ Low
702
-
703
701
 
702
+
703
+
704
704
 
705
705
 
706
706
 
707
707
 
708
708
 
709
- ctrl ↵ submit ↑↓ navigate ^k actions"
709
+ ctrl ↵ submit tab navigate ^k actions"
710
710
  `)
711
711
 
712
712
  await session.press('esc')
@@ -726,17 +726,16 @@ test('form dropdown with default value', async () => {
726
726
  │ features █
727
727
  │ █
728
728
  ◆ Programming Languages █
729
- Rust, TypeScript █
730
-
731
- Frontend █
732
- ┃› ● TypeScript █
733
- ○ JavaScript █
734
- ○ React
735
- ○ Vue
736
- ┃ ↑↓ to see more options █
737
- ┃ █
738
- ┃ Choose your preferred programming languages
739
-
729
+ Rust, TypeScript █
730
+
731
+ Frontend █
732
+ │› ● TypeScript █
733
+ ○ JavaScript █
734
+ ○ React
735
+ ○ Vue
736
+
737
+ │ Choose your preferred programming languages
738
+
740
739
  ◇ Editor Theme
741
740
  │ Dracula
742
741
 
@@ -744,7 +743,7 @@ test('form dropdown with default value', async () => {
744
743
  │ ● Dracula
745
744
  │ ○ One Dark
746
745
  │ ○ Nord
747
- ↑↓ to see more options
746
+ GitHub Light
748
747
 
749
748
  │ Select your preferred editor color theme
750
749
 
@@ -755,6 +754,8 @@ test('form dropdown with default value', async () => {
755
754
  │ ○ High
756
755
  │ ○ Medium
757
756
  │ ○ Low
757
+
758
+
758
759
  ▪ Submitted Data
759
760
  │ {
760
761
  │ "languages": [
@@ -763,10 +764,9 @@ test('form dropdown with default value', async () => {
763
764
  │ ],
764
765
  │ "theme": "dracula",
765
766
  │ "priority": ""
766
- │ }
767
767
 
768
768
 
769
- ctrl ↵ submit ↑↓ navigate ^k actions"
769
+ ctrl ↵ submit tab navigate ^k actions"
770
770
  `)
771
771
  }, 10000)
772
772
 
@@ -790,9 +790,9 @@ test('selecting second-to-last visible item should not scroll', async () => {
790
790
 
791
791
 
792
792
  ■ Dropdown Component Demo
793
- Test dropdown with sections, multiple selection, and more
794
- features
795
-
793
+ Test dropdown with sections, multiple selection, and more
794
+ features
795
+
796
796
  ◇ Programming Languages
797
797
  │ TypeScript, Rust
798
798
 
@@ -801,7 +801,6 @@ test('selecting second-to-last visible item should not scroll', async () => {
801
801
  │ ○ JavaScript
802
802
  │ ○ React
803
803
  │ ○ Vue
804
- │ ↑↓ to see more options
805
804
 
806
805
  │ Choose your preferred programming languages
807
806
 
@@ -812,7 +811,7 @@ test('selecting second-to-last visible item should not scroll', async () => {
812
811
  │ ● Dracula
813
812
  │ ○ One Dark
814
813
  │ ○ Nord
815
- ↑↓ to see more options
814
+ GitHub Light
816
815
 
817
816
  │ Select your preferred editor color theme
818
817
 
@@ -823,14 +822,15 @@ test('selecting second-to-last visible item should not scroll', async () => {
823
822
  │ ○ High
824
823
  │ ○ Medium
825
824
  │ ○ Low
826
-
827
825
 
826
+
827
+
828
828
 
829
829
 
830
830
 
831
831
 
832
832
 
833
- ctrl ↵ submit ↑↓ navigate ^k actions"
833
+ ctrl ↵ submit tab navigate ^k actions"
834
834
  `)
835
835
 
836
836
  await session.press('enter')
@@ -845,9 +845,9 @@ test('selecting second-to-last visible item should not scroll', async () => {
845
845
 
846
846
 
847
847
  ■ Dropdown Component Demo
848
- Test dropdown with sections, multiple selection, and more
849
- features
850
-
848
+ Test dropdown with sections, multiple selection, and more
849
+ features
850
+
851
851
  ◇ Programming Languages
852
852
  │ TypeScript, Rust
853
853
 
@@ -856,7 +856,6 @@ test('selecting second-to-last visible item should not scroll', async () => {
856
856
  │ ○ JavaScript
857
857
  │ ○ React
858
858
  │ ○ Vue
859
- │ ↑↓ to see more options
860
859
 
861
860
  │ Choose your preferred programming languages
862
861
 
@@ -867,7 +866,7 @@ test('selecting second-to-last visible item should not scroll', async () => {
867
866
  │ ● Dracula
868
867
  │ ○ One Dark
869
868
  │ ○ Nord
870
- ↑↓ to see more options
869
+ GitHub Light
871
870
 
872
871
  │ Select your preferred editor color theme
873
872
 
@@ -878,13 +877,14 @@ test('selecting second-to-last visible item should not scroll', async () => {
878
877
  │ ○ High
879
878
  │ ○ Medium
880
879
  │ ○ Low
881
-
882
880
 
881
+
882
+
883
883
 
884
884
 
885
885
 
886
886
 
887
887
 
888
- ctrl ↵ submit ↑↓ navigate ^k actions"
888
+ ctrl ↵ submit tab navigate ^k actions"
889
889
  `)
890
890
  }, 10000)