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