termcast 1.3.9

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 (699) hide show
  1. package/dist/action-utils.d.ts +25 -0
  2. package/dist/action-utils.d.ts.map +1 -0
  3. package/dist/action-utils.js +209 -0
  4. package/dist/action-utils.js.map +1 -0
  5. package/dist/ai.d.ts +104 -0
  6. package/dist/ai.d.ts.map +1 -0
  7. package/dist/ai.js +135 -0
  8. package/dist/ai.js.map +1 -0
  9. package/dist/apis/ai.d.ts +104 -0
  10. package/dist/apis/ai.d.ts.map +1 -0
  11. package/dist/apis/ai.js +135 -0
  12. package/dist/apis/ai.js.map +1 -0
  13. package/dist/apis/cache.d.ts +84 -0
  14. package/dist/apis/cache.d.ts.map +1 -0
  15. package/dist/apis/cache.js +307 -0
  16. package/dist/apis/cache.js.map +1 -0
  17. package/dist/apis/cache.test.d.ts +2 -0
  18. package/dist/apis/cache.test.d.ts.map +1 -0
  19. package/dist/apis/cache.test.js +246 -0
  20. package/dist/apis/cache.test.js.map +1 -0
  21. package/dist/apis/clipboard.d.ts +36 -0
  22. package/dist/apis/clipboard.d.ts.map +1 -0
  23. package/dist/apis/clipboard.js +154 -0
  24. package/dist/apis/clipboard.js.map +1 -0
  25. package/dist/apis/environment.d.ts +63 -0
  26. package/dist/apis/environment.d.ts.map +1 -0
  27. package/dist/apis/environment.js +189 -0
  28. package/dist/apis/environment.js.map +1 -0
  29. package/dist/apis/hud.d.ts +7 -0
  30. package/dist/apis/hud.d.ts.map +1 -0
  31. package/dist/apis/hud.js +45 -0
  32. package/dist/apis/hud.js.map +1 -0
  33. package/dist/apis/localstorage.d.ts +13 -0
  34. package/dist/apis/localstorage.d.ts.map +1 -0
  35. package/dist/apis/localstorage.js +190 -0
  36. package/dist/apis/localstorage.js.map +1 -0
  37. package/dist/apis/localstorage.test.d.ts +2 -0
  38. package/dist/apis/localstorage.test.d.ts.map +1 -0
  39. package/dist/apis/localstorage.test.js +131 -0
  40. package/dist/apis/localstorage.test.js.map +1 -0
  41. package/dist/apis/oauth.d.ts +142 -0
  42. package/dist/apis/oauth.d.ts.map +1 -0
  43. package/dist/apis/oauth.js +551 -0
  44. package/dist/apis/oauth.js.map +1 -0
  45. package/dist/apis/preferences.d.ts +23 -0
  46. package/dist/apis/preferences.d.ts.map +1 -0
  47. package/dist/apis/preferences.js +105 -0
  48. package/dist/apis/preferences.js.map +1 -0
  49. package/dist/apis/toast.d.ts +81 -0
  50. package/dist/apis/toast.d.ts.map +1 -0
  51. package/dist/apis/toast.js +275 -0
  52. package/dist/apis/toast.js.map +1 -0
  53. package/dist/apis/toast.test.d.ts +2 -0
  54. package/dist/apis/toast.test.d.ts.map +1 -0
  55. package/dist/apis/toast.test.js +67 -0
  56. package/dist/apis/toast.test.js.map +1 -0
  57. package/dist/apis/window.d.ts +12 -0
  58. package/dist/apis/window.d.ts.map +1 -0
  59. package/dist/apis/window.js +47 -0
  60. package/dist/apis/window.js.map +1 -0
  61. package/dist/build.d.ts +15 -0
  62. package/dist/build.d.ts.map +1 -0
  63. package/dist/build.js +213 -0
  64. package/dist/build.js.map +1 -0
  65. package/dist/build.test.d.ts +2 -0
  66. package/dist/build.test.d.ts.map +1 -0
  67. package/dist/build.test.js +73 -0
  68. package/dist/build.test.js.map +1 -0
  69. package/dist/cache.d.ts +32 -0
  70. package/dist/cache.d.ts.map +1 -0
  71. package/dist/cache.js +205 -0
  72. package/dist/cache.js.map +1 -0
  73. package/dist/cache.test.d.ts +2 -0
  74. package/dist/cache.test.d.ts.map +1 -0
  75. package/dist/cache.test.js +246 -0
  76. package/dist/cache.test.js.map +1 -0
  77. package/dist/cli.d.ts +2 -0
  78. package/dist/cli.d.ts.map +1 -0
  79. package/dist/cli.js +278 -0
  80. package/dist/cli.js.map +1 -0
  81. package/dist/clipboard.d.ts +36 -0
  82. package/dist/clipboard.d.ts.map +1 -0
  83. package/dist/clipboard.js +154 -0
  84. package/dist/clipboard.js.map +1 -0
  85. package/dist/colors.d.ts +15 -0
  86. package/dist/colors.d.ts.map +1 -0
  87. package/dist/colors.js +13 -0
  88. package/dist/colors.js.map +1 -0
  89. package/dist/components/actions.d.ts +120 -0
  90. package/dist/components/actions.d.ts.map +1 -0
  91. package/dist/components/actions.js +371 -0
  92. package/dist/components/actions.js.map +1 -0
  93. package/dist/components/alert.d.ts +25 -0
  94. package/dist/components/alert.d.ts.map +1 -0
  95. package/dist/components/alert.js +99 -0
  96. package/dist/components/alert.js.map +1 -0
  97. package/dist/components/detail.d.ts +65 -0
  98. package/dist/components/detail.d.ts.map +1 -0
  99. package/dist/components/detail.js +147 -0
  100. package/dist/components/detail.js.map +1 -0
  101. package/dist/components/dropdown.d.ts +40 -0
  102. package/dist/components/dropdown.d.ts.map +1 -0
  103. package/dist/components/dropdown.js +202 -0
  104. package/dist/components/dropdown.js.map +1 -0
  105. package/dist/components/extension-preferences.d.ts +8 -0
  106. package/dist/components/extension-preferences.d.ts.map +1 -0
  107. package/dist/components/extension-preferences.js +139 -0
  108. package/dist/components/extension-preferences.js.map +1 -0
  109. package/dist/components/form/assign-components.d.ts +2 -0
  110. package/dist/components/form/assign-components.d.ts.map +1 -0
  111. package/dist/components/form/assign-components.js +22 -0
  112. package/dist/components/form/assign-components.js.map +1 -0
  113. package/dist/components/form/checkbox.d.ts +7 -0
  114. package/dist/components/form/checkbox.d.ts.map +1 -0
  115. package/dist/components/form/checkbox.js +46 -0
  116. package/dist/components/form/checkbox.js.map +1 -0
  117. package/dist/components/form/date-picker.d.ts +18 -0
  118. package/dist/components/form/date-picker.d.ts.map +1 -0
  119. package/dist/components/form/date-picker.js +69 -0
  120. package/dist/components/form/date-picker.js.map +1 -0
  121. package/dist/components/form/description.d.ts +7 -0
  122. package/dist/components/form/description.d.ts.map +1 -0
  123. package/dist/components/form/description.js +8 -0
  124. package/dist/components/form/description.js.map +1 -0
  125. package/dist/components/form/dropdown.d.ts +25 -0
  126. package/dist/components/form/dropdown.d.ts.map +1 -0
  127. package/dist/components/form/dropdown.js +286 -0
  128. package/dist/components/form/dropdown.js.map +1 -0
  129. package/dist/components/form/file-autocomplete.d.ts +12 -0
  130. package/dist/components/form/file-autocomplete.d.ts.map +1 -0
  131. package/dist/components/form/file-autocomplete.js +84 -0
  132. package/dist/components/form/file-autocomplete.js.map +1 -0
  133. package/dist/components/form/file-picker.d.ts +31 -0
  134. package/dist/components/form/file-picker.d.ts.map +1 -0
  135. package/dist/components/form/file-picker.js +113 -0
  136. package/dist/components/form/file-picker.js.map +1 -0
  137. package/dist/components/form/form-end.d.ts +2 -0
  138. package/dist/components/form/form-end.d.ts.map +1 -0
  139. package/dist/components/form/form-end.js +6 -0
  140. package/dist/components/form/form-end.js.map +1 -0
  141. package/dist/components/form/form-type-only.d.ts +174 -0
  142. package/dist/components/form/form-type-only.d.ts.map +1 -0
  143. package/dist/components/form/form-type-only.js +2 -0
  144. package/dist/components/form/form-type-only.js.map +1 -0
  145. package/dist/components/form/index.d.ts +46 -0
  146. package/dist/components/form/index.d.ts.map +1 -0
  147. package/dist/components/form/index.js +106 -0
  148. package/dist/components/form/index.js.map +1 -0
  149. package/dist/components/form/password-field.d.ts +7 -0
  150. package/dist/components/form/password-field.d.ts.map +1 -0
  151. package/dist/components/form/password-field.js +34 -0
  152. package/dist/components/form/password-field.js.map +1 -0
  153. package/dist/components/form/separator.d.ts +2 -0
  154. package/dist/components/form/separator.d.ts.map +1 -0
  155. package/dist/components/form/separator.js +8 -0
  156. package/dist/components/form/separator.js.map +1 -0
  157. package/dist/components/form/tagpicker.d.ts +134 -0
  158. package/dist/components/form/tagpicker.d.ts.map +1 -0
  159. package/dist/components/form/tagpicker.js +79 -0
  160. package/dist/components/form/tagpicker.js.map +1 -0
  161. package/dist/components/form/text-area.d.ts +8 -0
  162. package/dist/components/form/text-area.d.ts.map +1 -0
  163. package/dist/components/form/text-area.js +26 -0
  164. package/dist/components/form/text-area.js.map +1 -0
  165. package/dist/components/form/text-field.d.ts +7 -0
  166. package/dist/components/form/text-field.d.ts.map +1 -0
  167. package/dist/components/form/text-field.js +28 -0
  168. package/dist/components/form/text-field.js.map +1 -0
  169. package/dist/components/form/types.d.ts +43 -0
  170. package/dist/components/form/types.d.ts.map +1 -0
  171. package/dist/components/form/types.js +2 -0
  172. package/dist/components/form/types.js.map +1 -0
  173. package/dist/components/form/use-form-handling.d.ts +4 -0
  174. package/dist/components/form/use-form-handling.d.ts.map +1 -0
  175. package/dist/components/form/use-form-handling.js +37 -0
  176. package/dist/components/form/use-form-handling.js.map +1 -0
  177. package/dist/components/form/use-form-navigation.d.ts +8 -0
  178. package/dist/components/form/use-form-navigation.d.ts.map +1 -0
  179. package/dist/components/form/use-form-navigation.js +58 -0
  180. package/dist/components/form/use-form-navigation.js.map +1 -0
  181. package/dist/components/form/with-left-border.d.ts +17 -0
  182. package/dist/components/form/with-left-border.d.ts.map +1 -0
  183. package/dist/components/form/with-left-border.js +10 -0
  184. package/dist/components/form/with-left-border.js.map +1 -0
  185. package/dist/components/icon.d.ts +9 -0
  186. package/dist/components/icon.d.ts.map +1 -0
  187. package/dist/components/icon.js +485 -0
  188. package/dist/components/icon.js.map +1 -0
  189. package/dist/components/image.d.ts +19 -0
  190. package/dist/components/image.d.ts.map +1 -0
  191. package/dist/components/image.js +32 -0
  192. package/dist/components/image.js.map +1 -0
  193. package/dist/components/list.d.ts +234 -0
  194. package/dist/components/list.d.ts.map +1 -0
  195. package/dist/components/list.js +667 -0
  196. package/dist/components/list.js.map +1 -0
  197. package/dist/components/loading-bar.d.ts +8 -0
  198. package/dist/components/loading-bar.d.ts.map +1 -0
  199. package/dist/components/loading-bar.js +107 -0
  200. package/dist/components/loading-bar.js.map +1 -0
  201. package/dist/components/menubar-extra.d.ts +68 -0
  202. package/dist/components/menubar-extra.d.ts.map +1 -0
  203. package/dist/components/menubar-extra.js +39 -0
  204. package/dist/components/menubar-extra.js.map +1 -0
  205. package/dist/descendants.d.ts +25 -0
  206. package/dist/descendants.d.ts.map +1 -0
  207. package/dist/descendants.js +81 -0
  208. package/dist/descendants.js.map +1 -0
  209. package/dist/dev-ui.d.ts +7 -0
  210. package/dist/dev-ui.d.ts.map +1 -0
  211. package/dist/dev-ui.js +118 -0
  212. package/dist/dev-ui.js.map +1 -0
  213. package/dist/e2e-node.d.ts +63 -0
  214. package/dist/e2e-node.d.ts.map +1 -0
  215. package/dist/e2e-node.js +255 -0
  216. package/dist/e2e-node.js.map +1 -0
  217. package/dist/e2e.d.ts +39 -0
  218. package/dist/e2e.d.ts.map +1 -0
  219. package/dist/e2e.js +127 -0
  220. package/dist/e2e.js.map +1 -0
  221. package/dist/environment.d.ts +63 -0
  222. package/dist/environment.d.ts.map +1 -0
  223. package/dist/environment.js +189 -0
  224. package/dist/environment.js.map +1 -0
  225. package/dist/examples/action-show-in-finder.d.ts +2 -0
  226. package/dist/examples/action-show-in-finder.d.ts.map +1 -0
  227. package/dist/examples/action-show-in-finder.js +13 -0
  228. package/dist/examples/action-show-in-finder.js.map +1 -0
  229. package/dist/examples/datepicker.d.ts +2 -0
  230. package/dist/examples/datepicker.d.ts.map +1 -0
  231. package/dist/examples/datepicker.js +344 -0
  232. package/dist/examples/datepicker.js.map +1 -0
  233. package/dist/examples/environment-test.d.ts +2 -0
  234. package/dist/examples/environment-test.d.ts.map +1 -0
  235. package/dist/examples/environment-test.js +28 -0
  236. package/dist/examples/environment-test.js.map +1 -0
  237. package/dist/examples/error-boundary.d.ts +6 -0
  238. package/dist/examples/error-boundary.d.ts.map +1 -0
  239. package/dist/examples/error-boundary.js +67 -0
  240. package/dist/examples/error-boundary.js.map +1 -0
  241. package/dist/examples/form-basic-arrow-keys.vitest.d.ts +2 -0
  242. package/dist/examples/form-basic-arrow-keys.vitest.d.ts.map +1 -0
  243. package/dist/examples/form-basic-arrow-keys.vitest.js +46 -0
  244. package/dist/examples/form-basic-arrow-keys.vitest.js.map +1 -0
  245. package/dist/examples/form-basic.d.ts +2 -0
  246. package/dist/examples/form-basic.d.ts.map +1 -0
  247. package/dist/examples/form-basic.js +21 -0
  248. package/dist/examples/form-basic.js.map +1 -0
  249. package/dist/examples/form-basic.vitest.d.ts +2 -0
  250. package/dist/examples/form-basic.vitest.d.ts.map +1 -0
  251. package/dist/examples/form-basic.vitest.js +995 -0
  252. package/dist/examples/form-basic.vitest.js.map +1 -0
  253. package/dist/examples/form-dropdown-with-sections.d.ts +2 -0
  254. package/dist/examples/form-dropdown-with-sections.d.ts.map +1 -0
  255. package/dist/examples/form-dropdown-with-sections.js +13 -0
  256. package/dist/examples/form-dropdown-with-sections.js.map +1 -0
  257. package/dist/examples/form-dropdown-with-sections.vitest.d.ts +2 -0
  258. package/dist/examples/form-dropdown-with-sections.vitest.d.ts.map +1 -0
  259. package/dist/examples/form-dropdown-with-sections.vitest.js +75 -0
  260. package/dist/examples/form-dropdown-with-sections.vitest.js.map +1 -0
  261. package/dist/examples/form-dropdown.d.ts +2 -0
  262. package/dist/examples/form-dropdown.d.ts.map +1 -0
  263. package/dist/examples/form-dropdown.js +13 -0
  264. package/dist/examples/form-dropdown.js.map +1 -0
  265. package/dist/examples/form-dropdown.vitest.d.ts +2 -0
  266. package/dist/examples/form-dropdown.vitest.d.ts.map +1 -0
  267. package/dist/examples/form-dropdown.vitest.js +722 -0
  268. package/dist/examples/form-dropdown.vitest.js.map +1 -0
  269. package/dist/examples/form-multiselect-dropdown.d.ts +2 -0
  270. package/dist/examples/form-multiselect-dropdown.d.ts.map +1 -0
  271. package/dist/examples/form-multiselect-dropdown.js +13 -0
  272. package/dist/examples/form-multiselect-dropdown.js.map +1 -0
  273. package/dist/examples/form-tagpicker.d.ts +2 -0
  274. package/dist/examples/form-tagpicker.d.ts.map +1 -0
  275. package/dist/examples/form-tagpicker.js +13 -0
  276. package/dist/examples/form-tagpicker.js.map +1 -0
  277. package/dist/examples/form-tagpicker.vitest.d.ts +2 -0
  278. package/dist/examples/form-tagpicker.vitest.d.ts.map +1 -0
  279. package/dist/examples/form-tagpicker.vitest.js +491 -0
  280. package/dist/examples/form-tagpicker.vitest.js.map +1 -0
  281. package/dist/examples/internal/descendants-filtering.d.ts +2 -0
  282. package/dist/examples/internal/descendants-filtering.d.ts.map +1 -0
  283. package/dist/examples/internal/descendants-filtering.js +144 -0
  284. package/dist/examples/internal/descendants-filtering.js.map +1 -0
  285. package/dist/examples/internal/descendants.d.ts +2 -0
  286. package/dist/examples/internal/descendants.d.ts.map +1 -0
  287. package/dist/examples/internal/descendants.js +134 -0
  288. package/dist/examples/internal/descendants.js.map +1 -0
  289. package/dist/examples/internal/nested-boxes.d.ts +2 -0
  290. package/dist/examples/internal/nested-boxes.d.ts.map +1 -0
  291. package/dist/examples/internal/nested-boxes.js +7 -0
  292. package/dist/examples/internal/nested-boxes.js.map +1 -0
  293. package/dist/examples/internal/scrollbox-demo.d.ts +2 -0
  294. package/dist/examples/internal/scrollbox-demo.d.ts.map +1 -0
  295. package/dist/examples/internal/scrollbox-demo.js +104 -0
  296. package/dist/examples/internal/scrollbox-demo.js.map +1 -0
  297. package/dist/examples/internal/simple-dialog.d.ts +2 -0
  298. package/dist/examples/internal/simple-dialog.d.ts.map +1 -0
  299. package/dist/examples/internal/simple-dialog.js +43 -0
  300. package/dist/examples/internal/simple-dialog.js.map +1 -0
  301. package/dist/examples/internal/text-stacking.d.ts +2 -0
  302. package/dist/examples/internal/text-stacking.d.ts.map +1 -0
  303. package/dist/examples/internal/text-stacking.js +53 -0
  304. package/dist/examples/internal/text-stacking.js.map +1 -0
  305. package/dist/examples/internal/unicode-square-repro.d.ts +2 -0
  306. package/dist/examples/internal/unicode-square-repro.d.ts.map +1 -0
  307. package/dist/examples/internal/unicode-square-repro.js +7 -0
  308. package/dist/examples/internal/unicode-square-repro.js.map +1 -0
  309. package/dist/examples/list-dropdown-default.d.ts +2 -0
  310. package/dist/examples/list-dropdown-default.d.ts.map +1 -0
  311. package/dist/examples/list-dropdown-default.js +14 -0
  312. package/dist/examples/list-dropdown-default.js.map +1 -0
  313. package/dist/examples/list-dropdown-default.vitest.d.ts +2 -0
  314. package/dist/examples/list-dropdown-default.vitest.d.ts.map +1 -0
  315. package/dist/examples/list-dropdown-default.vitest.js +164 -0
  316. package/dist/examples/list-dropdown-default.vitest.js.map +1 -0
  317. package/dist/examples/list-fetch-data.d.ts +2 -0
  318. package/dist/examples/list-fetch-data.d.ts.map +1 -0
  319. package/dist/examples/list-fetch-data.js +87 -0
  320. package/dist/examples/list-fetch-data.js.map +1 -0
  321. package/dist/examples/list-fetch-data.vitest.d.ts +2 -0
  322. package/dist/examples/list-fetch-data.vitest.d.ts.map +1 -0
  323. package/dist/examples/list-fetch-data.vitest.js +103 -0
  324. package/dist/examples/list-fetch-data.vitest.js.map +1 -0
  325. package/dist/examples/list-filter-navigation.d.ts +2 -0
  326. package/dist/examples/list-filter-navigation.d.ts.map +1 -0
  327. package/dist/examples/list-filter-navigation.js +8 -0
  328. package/dist/examples/list-filter-navigation.js.map +1 -0
  329. package/dist/examples/list-with-detail.d.ts +2 -0
  330. package/dist/examples/list-with-detail.d.ts.map +1 -0
  331. package/dist/examples/list-with-detail.js +94 -0
  332. package/dist/examples/list-with-detail.js.map +1 -0
  333. package/dist/examples/list-with-detail.vitest.d.ts +2 -0
  334. package/dist/examples/list-with-detail.vitest.d.ts.map +1 -0
  335. package/dist/examples/list-with-detail.vitest.js +438 -0
  336. package/dist/examples/list-with-detail.vitest.js.map +1 -0
  337. package/dist/examples/list-with-dropdown.d.ts +2 -0
  338. package/dist/examples/list-with-dropdown.d.ts.map +1 -0
  339. package/dist/examples/list-with-dropdown.js +43 -0
  340. package/dist/examples/list-with-dropdown.js.map +1 -0
  341. package/dist/examples/list-with-dropdown.vitest.d.ts +2 -0
  342. package/dist/examples/list-with-dropdown.vitest.d.ts.map +1 -0
  343. package/dist/examples/list-with-dropdown.vitest.js +297 -0
  344. package/dist/examples/list-with-dropdown.vitest.js.map +1 -0
  345. package/dist/examples/list-with-sections.d.ts +2 -0
  346. package/dist/examples/list-with-sections.d.ts.map +1 -0
  347. package/dist/examples/list-with-sections.js +67 -0
  348. package/dist/examples/list-with-sections.js.map +1 -0
  349. package/dist/examples/list-with-sections.vitest.d.ts +2 -0
  350. package/dist/examples/list-with-sections.vitest.d.ts.map +1 -0
  351. package/dist/examples/list-with-sections.vitest.js +441 -0
  352. package/dist/examples/list-with-sections.vitest.js.map +1 -0
  353. package/dist/examples/miscellaneous.d.ts +2 -0
  354. package/dist/examples/miscellaneous.d.ts.map +1 -0
  355. package/dist/examples/miscellaneous.js +313 -0
  356. package/dist/examples/miscellaneous.js.map +1 -0
  357. package/dist/examples/nested-navigation.d.ts +2 -0
  358. package/dist/examples/nested-navigation.d.ts.map +1 -0
  359. package/dist/examples/nested-navigation.js +35 -0
  360. package/dist/examples/nested-navigation.js.map +1 -0
  361. package/dist/examples/preferences-test.d.ts +2 -0
  362. package/dist/examples/preferences-test.d.ts.map +1 -0
  363. package/dist/examples/preferences-test.js +43 -0
  364. package/dist/examples/preferences-test.js.map +1 -0
  365. package/dist/examples/simple-dropdown.d.ts +2 -0
  366. package/dist/examples/simple-dropdown.d.ts.map +1 -0
  367. package/dist/examples/simple-dropdown.js +15 -0
  368. package/dist/examples/simple-dropdown.js.map +1 -0
  369. package/dist/examples/simple-file-picker.d.ts +2 -0
  370. package/dist/examples/simple-file-picker.d.ts.map +1 -0
  371. package/dist/examples/simple-file-picker.js +21 -0
  372. package/dist/examples/simple-file-picker.js.map +1 -0
  373. package/dist/examples/simple-file-picker.vitest.d.ts +2 -0
  374. package/dist/examples/simple-file-picker.vitest.d.ts.map +1 -0
  375. package/dist/examples/simple-file-picker.vitest.js +277 -0
  376. package/dist/examples/simple-file-picker.vitest.js.map +1 -0
  377. package/dist/examples/simple-grid.d.ts +2 -0
  378. package/dist/examples/simple-grid.d.ts.map +1 -0
  379. package/dist/examples/simple-grid.js +51 -0
  380. package/dist/examples/simple-grid.js.map +1 -0
  381. package/dist/examples/simple-grid.vitest.d.ts +2 -0
  382. package/dist/examples/simple-grid.vitest.d.ts.map +1 -0
  383. package/dist/examples/simple-grid.vitest.js +498 -0
  384. package/dist/examples/simple-grid.vitest.js.map +1 -0
  385. package/dist/examples/simple-hud.d.ts +2 -0
  386. package/dist/examples/simple-hud.d.ts.map +1 -0
  387. package/dist/examples/simple-hud.js +18 -0
  388. package/dist/examples/simple-hud.js.map +1 -0
  389. package/dist/examples/simple-list-search.d.ts +2 -0
  390. package/dist/examples/simple-list-search.d.ts.map +1 -0
  391. package/dist/examples/simple-list-search.js +26 -0
  392. package/dist/examples/simple-list-search.js.map +1 -0
  393. package/dist/examples/simple-list.d.ts +2 -0
  394. package/dist/examples/simple-list.d.ts.map +1 -0
  395. package/dist/examples/simple-list.js +50 -0
  396. package/dist/examples/simple-list.js.map +1 -0
  397. package/dist/examples/simple-navigation.d.ts +2 -0
  398. package/dist/examples/simple-navigation.d.ts.map +1 -0
  399. package/dist/examples/simple-navigation.js +36 -0
  400. package/dist/examples/simple-navigation.js.map +1 -0
  401. package/dist/examples/simple-navigation.vitest.d.ts +2 -0
  402. package/dist/examples/simple-navigation.vitest.d.ts.map +1 -0
  403. package/dist/examples/simple-navigation.vitest.js +522 -0
  404. package/dist/examples/simple-navigation.vitest.js.map +1 -0
  405. package/dist/examples/store.d.ts +2 -0
  406. package/dist/examples/store.d.ts.map +1 -0
  407. package/dist/examples/store.js +5 -0
  408. package/dist/examples/store.js.map +1 -0
  409. package/dist/examples/store.vitest.d.ts +2 -0
  410. package/dist/examples/store.vitest.d.ts.map +1 -0
  411. package/dist/examples/store.vitest.js +52 -0
  412. package/dist/examples/store.vitest.js.map +1 -0
  413. package/dist/examples/tanstack-demo.d.ts +2 -0
  414. package/dist/examples/tanstack-demo.d.ts.map +1 -0
  415. package/dist/examples/tanstack-demo.js +51 -0
  416. package/dist/examples/tanstack-demo.js.map +1 -0
  417. package/dist/examples/use-promise-demo.d.ts +2 -0
  418. package/dist/examples/use-promise-demo.d.ts.map +1 -0
  419. package/dist/examples/use-promise-demo.js +45 -0
  420. package/dist/examples/use-promise-demo.js.map +1 -0
  421. package/dist/extensions/dev.d.ts +7 -0
  422. package/dist/extensions/dev.d.ts.map +1 -0
  423. package/dist/extensions/dev.js +124 -0
  424. package/dist/extensions/dev.js.map +1 -0
  425. package/dist/extensions/home.d.ts +8 -0
  426. package/dist/extensions/home.d.ts.map +1 -0
  427. package/dist/extensions/home.js +184 -0
  428. package/dist/extensions/home.js.map +1 -0
  429. package/dist/extensions/store.d.ts +6 -0
  430. package/dist/extensions/store.d.ts.map +1 -0
  431. package/dist/extensions/store.js +203 -0
  432. package/dist/extensions/store.js.map +1 -0
  433. package/dist/globals.d.ts +9 -0
  434. package/dist/globals.d.ts.map +1 -0
  435. package/dist/globals.js +21 -0
  436. package/dist/globals.js.map +1 -0
  437. package/dist/home-command.d.ts +8 -0
  438. package/dist/home-command.d.ts.map +1 -0
  439. package/dist/home-command.js +181 -0
  440. package/dist/home-command.js.map +1 -0
  441. package/dist/hooks/hooks.test.d.ts +2 -0
  442. package/dist/hooks/hooks.test.d.ts.map +1 -0
  443. package/dist/hooks/hooks.test.js +37 -0
  444. package/dist/hooks/hooks.test.js.map +1 -0
  445. package/dist/hooks/index.d.ts +6 -0
  446. package/dist/hooks/index.d.ts.map +1 -0
  447. package/dist/hooks/index.js +6 -0
  448. package/dist/hooks/index.js.map +1 -0
  449. package/dist/hooks/use-action-panel.d.ts +16 -0
  450. package/dist/hooks/use-action-panel.d.ts.map +1 -0
  451. package/dist/hooks/use-action-panel.js +19 -0
  452. package/dist/hooks/use-action-panel.js.map +1 -0
  453. package/dist/hooks/use-id.d.ts +9 -0
  454. package/dist/hooks/use-id.d.ts.map +1 -0
  455. package/dist/hooks/use-id.js +17 -0
  456. package/dist/hooks/use-id.js.map +1 -0
  457. package/dist/hooks/use-unstable-ai.d.ts +9 -0
  458. package/dist/hooks/use-unstable-ai.d.ts.map +1 -0
  459. package/dist/hooks/use-unstable-ai.js +13 -0
  460. package/dist/hooks/use-unstable-ai.js.map +1 -0
  461. package/dist/hooks.d.ts +10 -0
  462. package/dist/hooks.d.ts.map +1 -0
  463. package/dist/hooks.js +20 -0
  464. package/dist/hooks.js.map +1 -0
  465. package/dist/hover-repro.d.ts +2 -0
  466. package/dist/hover-repro.d.ts.map +1 -0
  467. package/dist/hover-repro.js +20 -0
  468. package/dist/hover-repro.js.map +1 -0
  469. package/dist/index.d.ts +58 -0
  470. package/dist/index.d.ts.map +1 -0
  471. package/dist/index.js +71 -0
  472. package/dist/index.js.map +1 -0
  473. package/dist/internal/date-picker-widget.d.ts +9 -0
  474. package/dist/internal/date-picker-widget.d.ts.map +1 -0
  475. package/dist/internal/date-picker-widget.js +380 -0
  476. package/dist/internal/date-picker-widget.js.map +1 -0
  477. package/dist/internal/dialog.d.ts +21 -0
  478. package/dist/internal/dialog.d.ts.map +1 -0
  479. package/dist/internal/dialog.js +122 -0
  480. package/dist/internal/dialog.js.map +1 -0
  481. package/dist/internal/error-handler.d.ts +2 -0
  482. package/dist/internal/error-handler.d.ts.map +1 -0
  483. package/dist/internal/error-handler.js +29 -0
  484. package/dist/internal/error-handler.js.map +1 -0
  485. package/dist/internal/focus-context.d.ts +10 -0
  486. package/dist/internal/focus-context.d.ts.map +1 -0
  487. package/dist/internal/focus-context.js +12 -0
  488. package/dist/internal/focus-context.js.map +1 -0
  489. package/dist/internal/navigation.d.ts +18 -0
  490. package/dist/internal/navigation.d.ts.map +1 -0
  491. package/dist/internal/navigation.js +83 -0
  492. package/dist/internal/navigation.js.map +1 -0
  493. package/dist/internal/providers.d.ts +8 -0
  494. package/dist/internal/providers.d.ts.map +1 -0
  495. package/dist/internal/providers.js +262 -0
  496. package/dist/internal/providers.js.map +1 -0
  497. package/dist/localstorage.d.ts +13 -0
  498. package/dist/localstorage.d.ts.map +1 -0
  499. package/dist/localstorage.js +190 -0
  500. package/dist/localstorage.js.map +1 -0
  501. package/dist/localstorage.test.d.ts +2 -0
  502. package/dist/localstorage.test.d.ts.map +1 -0
  503. package/dist/localstorage.test.js +131 -0
  504. package/dist/localstorage.test.js.map +1 -0
  505. package/dist/logger.d.ts +7 -0
  506. package/dist/logger.d.ts.map +1 -0
  507. package/dist/logger.js +70 -0
  508. package/dist/logger.js.map +1 -0
  509. package/dist/oauth.d.ts +142 -0
  510. package/dist/oauth.d.ts.map +1 -0
  511. package/dist/oauth.js +551 -0
  512. package/dist/oauth.js.map +1 -0
  513. package/dist/package-json.d.ts +84 -0
  514. package/dist/package-json.d.ts.map +1 -0
  515. package/dist/package-json.js +77 -0
  516. package/dist/package-json.js.map +1 -0
  517. package/dist/preferences.d.ts +23 -0
  518. package/dist/preferences.d.ts.map +1 -0
  519. package/dist/preferences.js +105 -0
  520. package/dist/preferences.js.map +1 -0
  521. package/dist/preload.d.ts +2 -0
  522. package/dist/preload.d.ts.map +1 -0
  523. package/dist/preload.js +28 -0
  524. package/dist/preload.js.map +1 -0
  525. package/dist/state.d.ts +26 -0
  526. package/dist/state.d.ts.map +1 -0
  527. package/dist/state.js +18 -0
  528. package/dist/state.js.map +1 -0
  529. package/dist/store-api/download.d.ts +8 -0
  530. package/dist/store-api/download.d.ts.map +1 -0
  531. package/dist/store-api/download.js +37 -0
  532. package/dist/store-api/download.js.map +1 -0
  533. package/dist/store-api/download.test.d.ts +2 -0
  534. package/dist/store-api/download.test.d.ts.map +1 -0
  535. package/dist/store-api/download.test.js +36 -0
  536. package/dist/store-api/download.test.js.map +1 -0
  537. package/dist/store-api/extension.d.ts +87 -0
  538. package/dist/store-api/extension.d.ts.map +1 -0
  539. package/dist/store-api/extension.js +23 -0
  540. package/dist/store-api/extension.js.map +1 -0
  541. package/dist/store-api/extension.test.d.ts +2 -0
  542. package/dist/store-api/extension.test.d.ts.map +1 -0
  543. package/dist/store-api/extension.test.js +22 -0
  544. package/dist/store-api/extension.test.js.map +1 -0
  545. package/dist/store-api/search.d.ts +101 -0
  546. package/dist/store-api/search.d.ts.map +1 -0
  547. package/dist/store-api/search.js +29 -0
  548. package/dist/store-api/search.js.map +1 -0
  549. package/dist/store-api/search.test.d.ts +2 -0
  550. package/dist/store-api/search.test.d.ts.map +1 -0
  551. package/dist/store-api/search.test.js +45 -0
  552. package/dist/store-api/search.test.js.map +1 -0
  553. package/dist/store.d.ts +21 -0
  554. package/dist/store.d.ts.map +1 -0
  555. package/dist/store.js +84 -0
  556. package/dist/store.js.map +1 -0
  557. package/dist/theme.d.ts +20 -0
  558. package/dist/theme.d.ts.map +1 -0
  559. package/dist/theme.js +26 -0
  560. package/dist/theme.js.map +1 -0
  561. package/dist/toast.d.ts +44 -0
  562. package/dist/toast.d.ts.map +1 -0
  563. package/dist/toast.js +221 -0
  564. package/dist/toast.js.map +1 -0
  565. package/dist/utils/file-system.d.ts +11 -0
  566. package/dist/utils/file-system.d.ts.map +1 -0
  567. package/dist/utils/file-system.js +66 -0
  568. package/dist/utils/file-system.js.map +1 -0
  569. package/dist/utils.d.ts +234 -0
  570. package/dist/utils.d.ts.map +1 -0
  571. package/dist/utils.js +473 -0
  572. package/dist/utils.js.map +1 -0
  573. package/dist/utils.test.d.ts +2 -0
  574. package/dist/utils.test.d.ts.map +1 -0
  575. package/dist/utils.test.js +152 -0
  576. package/dist/utils.test.js.map +1 -0
  577. package/dist/window.d.ts +12 -0
  578. package/dist/window.d.ts.map +1 -0
  579. package/dist/window.js +48 -0
  580. package/dist/window.js.map +1 -0
  581. package/package.json +56 -0
  582. package/src/action-utils.tsx +207 -0
  583. package/src/apis/ai.tsx +177 -0
  584. package/src/apis/cache.test.ts +311 -0
  585. package/src/apis/cache.tsx +394 -0
  586. package/src/apis/clipboard.tsx +200 -0
  587. package/src/apis/environment.tsx +239 -0
  588. package/src/apis/hud.tsx +86 -0
  589. package/src/apis/localstorage.test.ts +164 -0
  590. package/src/apis/localstorage.tsx +215 -0
  591. package/src/apis/oauth.tsx +744 -0
  592. package/src/apis/preferences.tsx +140 -0
  593. package/src/apis/toast.tsx +388 -0
  594. package/src/apis/window.tsx +61 -0
  595. package/src/build.test.tsx +78 -0
  596. package/src/build.tsx +273 -0
  597. package/src/cli.tsx +328 -0
  598. package/src/colors.tsx +15 -0
  599. package/src/components/actions.tsx +718 -0
  600. package/src/components/alert.tsx +205 -0
  601. package/src/components/detail.tsx +359 -0
  602. package/src/components/dropdown.tsx +438 -0
  603. package/src/components/extension-preferences.tsx +269 -0
  604. package/src/components/form/assign-components.tsx +22 -0
  605. package/src/components/form/checkbox.tsx +96 -0
  606. package/src/components/form/date-picker.tsx +125 -0
  607. package/src/components/form/description.tsx +30 -0
  608. package/src/components/form/dropdown.tsx +512 -0
  609. package/src/components/form/file-autocomplete.tsx +141 -0
  610. package/src/components/form/file-picker.tsx +233 -0
  611. package/src/components/form/form-end.tsx +6 -0
  612. package/src/components/form/index.tsx +242 -0
  613. package/src/components/form/password-field.tsx +87 -0
  614. package/src/components/form/separator.tsx +15 -0
  615. package/src/components/form/tagpicker.tsx +245 -0
  616. package/src/components/form/text-area.tsx +82 -0
  617. package/src/components/form/text-field.tsx +82 -0
  618. package/src/components/form/types.tsx +49 -0
  619. package/src/components/form/use-form-navigation.tsx +65 -0
  620. package/src/components/form/with-left-border.tsx +53 -0
  621. package/src/components/icon.tsx +496 -0
  622. package/src/components/image.tsx +54 -0
  623. package/src/components/list.tsx +1564 -0
  624. package/src/components/loading-bar.tsx +141 -0
  625. package/src/components/menubar-extra.tsx +181 -0
  626. package/src/descendants.tsx +134 -0
  627. package/src/e2e-node.tsx +303 -0
  628. package/src/e2e.tsx +147 -0
  629. package/src/examples/action-show-in-finder.tsx +80 -0
  630. package/src/examples/environment-test.tsx +50 -0
  631. package/src/examples/error-boundary.tsx +217 -0
  632. package/src/examples/form-basic.tsx +122 -0
  633. package/src/examples/form-basic.vitest.tsx +1035 -0
  634. package/src/examples/form-dropdown.tsx +102 -0
  635. package/src/examples/form-dropdown.vitest.tsx +758 -0
  636. package/src/examples/form-tagpicker.tsx +66 -0
  637. package/src/examples/form-tagpicker.vitest.tsx +523 -0
  638. package/src/examples/internal/descendants-filtering.tsx +223 -0
  639. package/src/examples/internal/descendants.tsx +208 -0
  640. package/src/examples/internal/scrollbox-demo.tsx +149 -0
  641. package/src/examples/internal/simple-dialog.tsx +124 -0
  642. package/src/examples/internal/text-stacking.tsx +90 -0
  643. package/src/examples/list-dropdown-default.tsx +69 -0
  644. package/src/examples/list-dropdown-default.vitest.tsx +187 -0
  645. package/src/examples/list-fetch-data.tsx +123 -0
  646. package/src/examples/list-fetch-data.vitest.tsx +110 -0
  647. package/src/examples/list-with-detail.tsx +161 -0
  648. package/src/examples/list-with-detail.vitest.tsx +468 -0
  649. package/src/examples/list-with-dropdown.tsx +97 -0
  650. package/src/examples/list-with-dropdown.vitest.tsx +324 -0
  651. package/src/examples/list-with-sections.tsx +196 -0
  652. package/src/examples/list-with-sections.vitest.tsx +479 -0
  653. package/src/examples/miscellaneous.tsx +780 -0
  654. package/src/examples/nested-navigation.tsx +118 -0
  655. package/src/examples/preferences-test.tsx +82 -0
  656. package/src/examples/simple-dropdown.tsx +95 -0
  657. package/src/examples/simple-file-picker.tsx +75 -0
  658. package/src/examples/simple-file-picker.vitest.tsx +306 -0
  659. package/src/examples/simple-grid.tsx +149 -0
  660. package/src/examples/simple-grid.vitest.tsx +535 -0
  661. package/src/examples/simple-hud.tsx +60 -0
  662. package/src/examples/simple-list-search.tsx +93 -0
  663. package/src/examples/simple-list.tsx +149 -0
  664. package/src/examples/simple-navigation.tsx +89 -0
  665. package/src/examples/simple-navigation.vitest.tsx +571 -0
  666. package/src/examples/store.tsx +4 -0
  667. package/src/examples/store.vitest.tsx +59 -0
  668. package/src/examples/tanstack-demo.tsx +104 -0
  669. package/src/examples/use-promise-demo.tsx +96 -0
  670. package/src/extensions/dev.tsx +215 -0
  671. package/src/extensions/home.tsx +332 -0
  672. package/src/extensions/store.tsx +375 -0
  673. package/src/globals.ts +34 -0
  674. package/src/hooks/index.tsx +8 -0
  675. package/src/hooks/use-action-panel.tsx +28 -0
  676. package/src/hooks/use-id.tsx +19 -0
  677. package/src/hooks/use-unstable-ai.tsx +15 -0
  678. package/src/hooks.tsx +22 -0
  679. package/src/index.tsx +240 -0
  680. package/src/internal/date-picker-widget.tsx +500 -0
  681. package/src/internal/dialog.tsx +202 -0
  682. package/src/internal/error-handler.tsx +32 -0
  683. package/src/internal/focus-context.tsx +23 -0
  684. package/src/internal/navigation.tsx +149 -0
  685. package/src/internal/providers.tsx +430 -0
  686. package/src/logger.tsx +84 -0
  687. package/src/package-json.tsx +197 -0
  688. package/src/preload.tsx +32 -0
  689. package/src/state.tsx +49 -0
  690. package/src/store-api/download.test.tsx +38 -0
  691. package/src/store-api/download.tsx +52 -0
  692. package/src/store-api/extension.test.tsx +24 -0
  693. package/src/store-api/extension.tsx +123 -0
  694. package/src/store-api/search.test.tsx +50 -0
  695. package/src/store-api/search.tsx +146 -0
  696. package/src/theme.tsx +31 -0
  697. package/src/utils/file-system.ts +87 -0
  698. package/src/utils.test.tsx +204 -0
  699. package/src/utils.tsx +657 -0
@@ -0,0 +1,995 @@
1
+ // node-pty does not work in bun, so we use vitest to run this test
2
+ import { test, expect, afterEach, beforeEach } from 'vitest';
3
+ import { NodeTuiDriver } from '@termcast/cli/src/e2e-node';
4
+ let driver;
5
+ beforeEach(() => {
6
+ driver = new NodeTuiDriver('bun', ['src/examples/form-basic.tsx'], {
7
+ cols: 70,
8
+ rows: 50,
9
+ });
10
+ });
11
+ afterEach(() => {
12
+ driver?.dispose();
13
+ });
14
+ test('form basic navigation and input', async () => {
15
+ await driver.text({
16
+ waitFor: (text) => {
17
+ // wait for form to show up
18
+ return /Form Component Demo/i.test(text);
19
+ },
20
+ });
21
+ // Small delay to ensure all form components are rendered
22
+ await driver.waitIdle();
23
+ const initialSnapshot = await driver.text();
24
+ expect(initialSnapshot).toMatchInlineSnapshot(`
25
+ "
26
+
27
+ Form Component Demo
28
+ │ This demonstrates all available form input types. Use arrow key
29
+
30
+ ◆ Username
31
+ │ Enter your username
32
+ │ Required field
33
+
34
+ ◇ Password
35
+ │ Enter secure password
36
+ │ Must be at least 8 characters
37
+
38
+ ◇ Biography
39
+ │ Tell us about yourself...
40
+
41
+
42
+
43
+
44
+ │ Maximum 500 characters
45
+
46
+ ◇ Email Preferences
47
+ │ ○ Subscribe to newsletter
48
+
49
+ │ Receive weekly updates
50
+
51
+ ◇ Country
52
+ │ Select your country
53
+
54
+ │ Americas
55
+ │ ○ United States
56
+ │ ○ Canada
57
+ │ ○ Mexico
58
+ │ Europe
59
+ │ ○ United Kingdom
60
+ │ ↑↓ to see more options
61
+
62
+ │ Your country of residence
63
+
64
+ ◇ Date of Birth
65
+
66
+ │ ← 2025 →
67
+ │ ← September →
68
+
69
+ │ Mo Tu We Th Fr Sa Su
70
+ │ 1 2 3 4 5 6 7
71
+ │ 8 9 10 11 12 13 14
72
+ │ 15 16 17 18 19 20 21
73
+ │ 22 23 24 25 26 27 28
74
+ │ 29 30"
75
+ `);
76
+ // Type in username field
77
+ await driver.keys.type('johndoe');
78
+ const afterUsernameSnapshot = await driver.text();
79
+ expect(afterUsernameSnapshot).toMatchInlineSnapshot(`
80
+ "
81
+
82
+ Form Component Demo
83
+ │ This demonstrates all available form input types. Use arrow key
84
+
85
+ ◆ Username
86
+ │ johndoe
87
+ │ Required field
88
+
89
+ ◇ Password
90
+ │ Enter secure password
91
+ │ Must be at least 8 characters
92
+
93
+ ◇ Biography
94
+ │ Tell us about yourself...
95
+
96
+
97
+
98
+
99
+ │ Maximum 500 characters
100
+
101
+ ◇ Email Preferences
102
+ │ ○ Subscribe to newsletter
103
+
104
+ │ Receive weekly updates
105
+
106
+ ◇ Country
107
+ │ Select your country
108
+
109
+ │ Americas
110
+ │ ○ United States
111
+ │ ○ Canada
112
+ │ ○ Mexico
113
+ │ Europe
114
+ │ ○ United Kingdom
115
+ │ ↑↓ to see more options
116
+
117
+ │ Your country of residence
118
+
119
+ ◇ Date of Birth
120
+
121
+ │ ← 2025 →
122
+ │ ← September →
123
+
124
+ │ Mo Tu We Th Fr Sa Su
125
+ │ 1 2 3 4 5 6 7
126
+ │ 8 9 10 11 12 13 14
127
+ │ 15 16 17 18 19 20 21
128
+ │ 22 23 24 25 26 27 28
129
+ │ 29 30"
130
+ `);
131
+ // Tab to password field
132
+ await driver.keys.tab();
133
+ await driver.keys.type('securepass123');
134
+ const afterPasswordSnapshot = await driver.text();
135
+ expect(afterPasswordSnapshot).toMatchInlineSnapshot(`
136
+ "
137
+
138
+ Form Component Demo
139
+ │ This demonstrates all available form input types. Use arrow key
140
+
141
+ ◇ Username
142
+ │ johndoe
143
+ │ Required field
144
+
145
+ ◆ Password
146
+ │ securepass123
147
+ │ Must be at least 8 characters
148
+
149
+ ◇ Biography
150
+ │ Tell us about yourself...
151
+
152
+
153
+
154
+
155
+ │ Maximum 500 characters
156
+
157
+ ◇ Email Preferences
158
+ │ ○ Subscribe to newsletter
159
+
160
+ │ Receive weekly updates
161
+
162
+ ◇ Country
163
+ │ Select your country
164
+
165
+ │ Americas
166
+ │ ○ United States
167
+ │ ○ Canada
168
+ │ ○ Mexico
169
+ │ Europe
170
+ │ ○ United Kingdom
171
+ │ ↑↓ to see more options
172
+
173
+ │ Your country of residence
174
+
175
+ ◇ Date of Birth
176
+
177
+ │ ← 2025 →
178
+ │ ← September →
179
+
180
+ │ Mo Tu We Th Fr Sa Su
181
+ │ 1 2 3 4 5 6 7
182
+ │ 8 9 10 11 12 13 14
183
+ │ 15 16 17 18 19 20 21
184
+ │ 22 23 24 25 26 27 28
185
+ │ 29 30"
186
+ `);
187
+ // Tab to biography field
188
+ await driver.keys.tab();
189
+ await driver.keys.type('I am a software developer');
190
+ const afterBioSnapshot = await driver.text();
191
+ expect(afterBioSnapshot).toMatchInlineSnapshot(`
192
+ "
193
+
194
+ Form Component Demo
195
+ │ This demonstrates all available form input types. Use arrow key
196
+
197
+ ◇ Username
198
+ │ johndoe
199
+ │ Required field
200
+
201
+ ◇ Password
202
+ │ *************
203
+ │ Must be at least 8 characters
204
+
205
+ ◆ Biography
206
+ │ I am a software developer
207
+
208
+
209
+
210
+
211
+ │ Maximum 500 characters
212
+
213
+ ◇ Email Preferences
214
+ │ ○ Subscribe to newsletter
215
+
216
+ │ Receive weekly updates
217
+
218
+ ◇ Country
219
+ │ Select your country
220
+
221
+ │ Americas
222
+ │ ○ United States
223
+ │ ○ Canada
224
+ │ ○ Mexico
225
+ │ Europe
226
+ │ ○ United Kingdom
227
+ │ ↑↓ to see more options
228
+
229
+ │ Your country of residence
230
+
231
+ ◇ Date of Birth
232
+
233
+ │ ← 2025 →
234
+ │ ← September →
235
+
236
+ │ Mo Tu We Th Fr Sa Su
237
+ │ 1 2 3 4 5 6 7
238
+ │ 8 9 10 11 12 13 14
239
+ │ 15 16 17 18 19 20 21
240
+ │ 22 23 24 25 26 27 28
241
+ │ 29 30"
242
+ `);
243
+ // Tab to newsletter checkbox and toggle it
244
+ await driver.keys.tab();
245
+ await driver.keys.space();
246
+ const afterCheckboxSnapshot = await driver.text();
247
+ expect(afterCheckboxSnapshot).toMatchInlineSnapshot(`
248
+ "
249
+
250
+ Form Component Demo
251
+ │ This demonstrates all available form input types. Use arrow key
252
+
253
+ ◇ Username
254
+ │ johndoe
255
+ │ Required field
256
+
257
+ ◇ Password
258
+ │ *************
259
+ │ Must be at least 8 characters
260
+
261
+ ◇ Biography
262
+ │ I am a software developer
263
+
264
+
265
+
266
+
267
+ │ Maximum 500 characters
268
+
269
+ ◆ Email Preferences
270
+ │ ● Subscribe to newsletter
271
+
272
+ │ Receive weekly updates
273
+
274
+ ◇ Country
275
+ │ Select your country
276
+
277
+ │ Americas
278
+ │ ○ United States
279
+ │ ○ Canada
280
+ │ ○ Mexico
281
+ │ Europe
282
+ │ ○ United Kingdom
283
+ │ ↑↓ to see more options
284
+
285
+ │ Your country of residence
286
+
287
+ ◇ Date of Birth
288
+
289
+ │ ← 2025 →
290
+ │ ← September →
291
+
292
+ │ Mo Tu We Th Fr Sa Su
293
+ │ 1 2 3 4 5 6 7
294
+ │ 8 9 10 11 12 13 14
295
+ │ 15 16 17 18 19 20 21
296
+ │ 22 23 24 25 26 27 28
297
+ │ 29 30"
298
+ `);
299
+ // Tab to country dropdown and select United States
300
+ await driver.keys.tab();
301
+ await driver.keys.space();
302
+ const afterSelectUSSnapshot = await driver.text();
303
+ expect(afterSelectUSSnapshot).toMatchInlineSnapshot(`
304
+ "
305
+
306
+ Form Component Demo
307
+ │ This demonstrates all available form input types. Use arrow key
308
+
309
+ ◇ Username
310
+ │ johndoe
311
+ │ Required field
312
+
313
+ ◇ Password
314
+ │ *************
315
+ │ Must be at least 8 characters
316
+
317
+ ◇ Biography
318
+ │ I am a software developer
319
+
320
+
321
+
322
+
323
+ │ Maximum 500 characters
324
+
325
+ ◇ Email Preferences
326
+ │ ● Subscribe to newsletter
327
+
328
+ │ Receive weekly updates
329
+
330
+ ◆ Country
331
+ │ United States
332
+
333
+ │ Americas
334
+ │› ● United States
335
+ │ ○ Canada
336
+ │ ○ Mexico
337
+ │ Europe
338
+ │ ○ United Kingdom
339
+ │ ↑↓ to see more options
340
+
341
+ │ Your country of residence
342
+
343
+ ◇ Date of Birth
344
+
345
+ │ ← 2025 →
346
+ │ ← September →
347
+
348
+ │ Mo Tu We Th Fr Sa Su
349
+ │ 1 2 3 4 5 6 7
350
+ │ 8 9 10 11 12 13 14
351
+ │ 15 16 17 18 19 20 21
352
+ │ 22 23 24 25 26 27 28
353
+ │ 29 30"
354
+ `);
355
+ // Select United States
356
+ await driver.keys.enter();
357
+ const afterCountrySelectSnapshot = await driver.text();
358
+ expect(afterCountrySelectSnapshot).toMatchInlineSnapshot(`
359
+ "
360
+
361
+ Form Component Demo
362
+ │ This demonstrates all available form input types. Use arrow key
363
+
364
+ ◇ Username
365
+ │ johndoe
366
+ │ Required field
367
+
368
+ ◇ Password
369
+ │ *************
370
+ │ Must be at least 8 characters
371
+
372
+ ◇ Biography
373
+ │ I am a software developer
374
+
375
+
376
+
377
+
378
+ │ Maximum 500 characters
379
+
380
+ ◇ Email Preferences
381
+ │ ● Subscribe to newsletter
382
+
383
+ │ Receive weekly updates
384
+
385
+ ◆ Country
386
+ │ United States
387
+
388
+ │ Americas
389
+ │› ● United States
390
+ │ ○ Canada
391
+ │ ○ Mexico
392
+ │ Europe
393
+ │ ○ United Kingdom
394
+ │ ↑↓ to see more options
395
+
396
+ │ Your country of residence
397
+
398
+ ◇ Date of Birth
399
+
400
+ │ ← 2025 →
401
+ │ ← September →
402
+
403
+ │ Mo Tu We Th Fr Sa Su
404
+ │ 1 2 3 4 5 6 7
405
+ │ 8 9 10 11 12 13 14
406
+ │ 15 16 17 18 19 20 21
407
+ │ 22 23 24 25 26 27 28
408
+ │ 29 30"
409
+ `);
410
+ // Tab to date picker
411
+ await driver.keys.tab();
412
+ await driver.keys.type('1990-05-15');
413
+ const afterDateSnapshot = await driver.text();
414
+ expect(afterDateSnapshot).toMatchInlineSnapshot(`
415
+ "
416
+
417
+ Form Component Demo
418
+ │ This demonstrates all available form input types. Use arrow key
419
+
420
+ ◇ Username
421
+ │ johndoe
422
+ │ Required field
423
+
424
+ ◇ Password
425
+ │ *************
426
+ │ Must be at least 8 characters
427
+
428
+ ◇ Biography
429
+ │ I am a software developer
430
+
431
+
432
+
433
+
434
+ │ Maximum 500 characters
435
+
436
+ ◇ Email Preferences
437
+ │ ● Subscribe to newsletter
438
+
439
+ │ Receive weekly updates
440
+
441
+ ◇ Country
442
+ │ United States
443
+
444
+ │ Americas
445
+ │ ● United States
446
+ │ ○ Canada
447
+ │ ○ Mexico
448
+ │ Europe
449
+ │ ○ United Kingdom
450
+ │ ↑↓ to see more options
451
+
452
+ │ Your country of residence
453
+
454
+ ◆ Date of Birth
455
+
456
+ │ ← 2025 →
457
+ │ ← September →
458
+
459
+ │ Mo Tu We Th Fr Sa Su
460
+ │ 1 2 3 4 5 6 7
461
+ │ 8 9 10 11 12 13 14
462
+ │ 15 16 17 18 19 20 21
463
+ │ 22 23 24 25 26 27 28
464
+ │ 29 30"
465
+ `);
466
+ // Submit form with Cmd+Enter
467
+ await driver.keys.cmdEnter();
468
+ const afterSubmitSnapshot = await driver.text({
469
+ waitFor: (text) => {
470
+ // wait for submitted data to show
471
+ return /Submitted Data:/i.test(text);
472
+ },
473
+ });
474
+ expect(afterSubmitSnapshot).toMatchInlineSnapshot(`
475
+ "
476
+
477
+ Form Component Demo
478
+ │ This demonstrates all available form input types. Use arrow key
479
+
480
+ ◇ Username
481
+ │ johndoe
482
+ │ Required field
483
+
484
+ ◇ Password
485
+ │ *************
486
+ │ Must be at least 8 characters
487
+
488
+ ◇ Biography
489
+ │ I am a software developer
490
+
491
+
492
+
493
+
494
+ │ Maximum 500 characters
495
+
496
+ ◇ Email Preferences
497
+ │ ● Subscribe to newsletter
498
+
499
+ │ Receive weekly updates
500
+
501
+ ◇ Country
502
+ │ United States
503
+
504
+ │ Americas
505
+ │ ● United States
506
+ │ ○ Canada
507
+ │ ○ Mexico
508
+ │ Europe
509
+ │ ○ United Kingdom
510
+ │ ↑↓ to see more options
511
+
512
+ │ Your country of residence
513
+
514
+ ◆ Date of Birth
515
+
516
+ │ ← 2025 →
517
+ │ ← September →
518
+
519
+ │ Mo Tu We Th Fr Sa Su
520
+ │ 1 2 3 4 5 6 7
521
+ │ 8 9 10 11 12 13 14
522
+ │ 15 16 17 18 19 20 21
523
+ │ 22 23 24 25 26 27 28
524
+ │ 29 30"
525
+ `);
526
+ }, 15000);
527
+ test('form navigation with shift+tab', async () => {
528
+ await driver.text({
529
+ waitFor: (text) => {
530
+ // wait for form to show up
531
+ return /Form Component Demo/i.test(text);
532
+ },
533
+ });
534
+ // Fill some fields first
535
+ await driver.keys.type('testuser');
536
+ await driver.keys.tab();
537
+ await driver.keys.type('password');
538
+ await driver.keys.tab();
539
+ const afterForwardTabSnapshot = await driver.text();
540
+ expect(afterForwardTabSnapshot).toMatchInlineSnapshot(`
541
+ "
542
+
543
+ Form Component Demo
544
+ │ This demonstrates all available form input types. Use arrow key
545
+
546
+ ◇ Username
547
+ │ testuser
548
+ │ Required field
549
+
550
+ ◇ Password
551
+ │ ********
552
+ │ Must be at least 8 characters
553
+
554
+ ◆ Biography
555
+ │ Tell us about yourself...
556
+
557
+
558
+
559
+
560
+ │ Maximum 500 characters
561
+
562
+ ◇ Email Preferences
563
+ │ ○ Subscribe to newsletter
564
+
565
+ │ Receive weekly updates
566
+
567
+ ◇ Country
568
+ │ Select your country
569
+
570
+ │ Americas
571
+ │ ○ United States
572
+ │ ○ Canada
573
+ │ ○ Mexico
574
+ │ Europe
575
+ │ ○ United Kingdom
576
+ │ ↑↓ to see more options
577
+
578
+ │ Your country of residence
579
+
580
+ ◇ Date of Birth
581
+
582
+ │ ← 2025 →
583
+ │ ← September →
584
+
585
+ │ Mo Tu We Th Fr Sa Su
586
+ │ 1 2 3 4 5 6 7
587
+ │ 8 9 10 11 12 13 14
588
+ │ 15 16 17 18 19 20 21
589
+ │ 22 23 24 25 26 27 28
590
+ │ 29 30"
591
+ `);
592
+ // Navigate backwards with Shift+Tab
593
+ await driver.keys.shiftTab();
594
+ const afterBackwardTabSnapshot = await driver.text();
595
+ expect(afterBackwardTabSnapshot).toMatchInlineSnapshot(`
596
+ "
597
+
598
+ Form Component Demo
599
+ │ This demonstrates all available form input types. Use arrow key
600
+
601
+ ◇ Username
602
+ │ testuser
603
+ │ Required field
604
+
605
+ ◆ Password
606
+ │ password
607
+ │ Must be at least 8 characters
608
+
609
+ ◇ Biography
610
+ │ Tell us about yourself...
611
+
612
+
613
+
614
+
615
+ │ Maximum 500 characters
616
+
617
+ ◇ Email Preferences
618
+ │ ○ Subscribe to newsletter
619
+
620
+ │ Receive weekly updates
621
+
622
+ ◇ Country
623
+ │ Select your country
624
+
625
+ │ Americas
626
+ │ ○ United States
627
+ │ ○ Canada
628
+ │ ○ Mexico
629
+ │ Europe
630
+ │ ○ United Kingdom
631
+ │ ↑↓ to see more options
632
+
633
+ │ Your country of residence
634
+
635
+ ◇ Date of Birth
636
+
637
+ │ ← 2025 →
638
+ │ ← September →
639
+
640
+ │ Mo Tu We Th Fr Sa Su
641
+ │ 1 2 3 4 5 6 7
642
+ │ 8 9 10 11 12 13 14
643
+ │ 15 16 17 18 19 20 21
644
+ │ 22 23 24 25 26 27 28
645
+ │ 29 30"
646
+ `);
647
+ // Go back to username field
648
+ await driver.keys.shiftTab();
649
+ const backToUsernameSnapshot = await driver.text();
650
+ expect(backToUsernameSnapshot).toMatchInlineSnapshot(`
651
+ "
652
+
653
+ Form Component Demo
654
+ │ This demonstrates all available form input types. Use arrow key
655
+
656
+ ◆ Username
657
+ │ testuser
658
+ │ Required field
659
+
660
+ ◇ Password
661
+ │ ********
662
+ │ Must be at least 8 characters
663
+
664
+ ◇ Biography
665
+ │ Tell us about yourself...
666
+
667
+
668
+
669
+
670
+ │ Maximum 500 characters
671
+
672
+ ◇ Email Preferences
673
+ │ ○ Subscribe to newsletter
674
+
675
+ │ Receive weekly updates
676
+
677
+ ◇ Country
678
+ │ Select your country
679
+
680
+ │ Americas
681
+ │ ○ United States
682
+ │ ○ Canada
683
+ │ ○ Mexico
684
+ │ Europe
685
+ │ ○ United Kingdom
686
+ │ ↑↓ to see more options
687
+
688
+ │ Your country of residence
689
+
690
+ ◇ Date of Birth
691
+
692
+ │ ← 2025 →
693
+ │ ← September →
694
+
695
+ │ Mo Tu We Th Fr Sa Su
696
+ │ 1 2 3 4 5 6 7
697
+ │ 8 9 10 11 12 13 14
698
+ │ 15 16 17 18 19 20 21
699
+ │ 22 23 24 25 26 27 28
700
+ │ 29 30"
701
+ `);
702
+ // Clear and type new username
703
+ await driver.keys.ctrlA();
704
+ await driver.keys.type('newuser');
705
+ const afterEditUsernameSnapshot = await driver.text();
706
+ expect(afterEditUsernameSnapshot).toMatchInlineSnapshot(`
707
+ "
708
+
709
+ Form Component Demo
710
+ │ This demonstrates all available form input types. Use arrow key
711
+
712
+ ◆ Username
713
+ │ testusernewuser
714
+ │ Required field
715
+
716
+ ◇ Password
717
+ │ ********
718
+ │ Must be at least 8 characters
719
+
720
+ ◇ Biography
721
+ │ Tell us about yourself...
722
+
723
+
724
+
725
+
726
+ │ Maximum 500 characters
727
+
728
+ ◇ Email Preferences
729
+ │ ○ Subscribe to newsletter
730
+
731
+ │ Receive weekly updates
732
+
733
+ ◇ Country
734
+ │ Select your country
735
+
736
+ │ Americas
737
+ │ ○ United States
738
+ │ ○ Canada
739
+ │ ○ Mexico
740
+ │ Europe
741
+ │ ○ United Kingdom
742
+ │ ↑↓ to see more options
743
+
744
+ │ Your country of residence
745
+
746
+ ◇ Date of Birth
747
+
748
+ │ ← 2025 →
749
+ │ ← September →
750
+
751
+ │ Mo Tu We Th Fr Sa Su
752
+ │ 1 2 3 4 5 6 7
753
+ │ 8 9 10 11 12 13 14
754
+ │ 15 16 17 18 19 20 21
755
+ │ 22 23 24 25 26 27 28
756
+ │ 29 30"
757
+ `);
758
+ }, 10000);
759
+ test('form dropdown navigation', async () => {
760
+ await driver.text({
761
+ waitFor: (text) => {
762
+ // wait for form to show up
763
+ return /Form Component Demo/i.test(text);
764
+ },
765
+ });
766
+ // Navigate to dropdown
767
+ await driver.keys.tab(); // username
768
+ await driver.keys.tab(); // password
769
+ await driver.keys.tab(); // bio
770
+ await driver.keys.tab(); // checkbox
771
+ await driver.keys.tab(); // dropdown
772
+ // Navigate to dropdown area (already showing inline options)
773
+ await driver.keys.space();
774
+ const dropdownFocusedSnapshot = await driver.text();
775
+ expect(dropdownFocusedSnapshot).toMatchInlineSnapshot(`
776
+ "
777
+
778
+ Form Component Demo
779
+ │ This demonstrates all available form input types. Use arrow key
780
+
781
+ ◇ Username
782
+ │ Enter your username
783
+ │ Required field
784
+
785
+ ◇ Password
786
+ │ Enter secure password
787
+ │ Must be at least 8 characters
788
+
789
+ ◇ Biography
790
+ │ Tell us about yourself...
791
+
792
+
793
+
794
+
795
+ │ Maximum 500 characters
796
+
797
+ ◇ Email Preferences
798
+ │ ○ Subscribe to newsletter
799
+
800
+ │ Receive weekly updates
801
+
802
+ ◇ Country
803
+ │ Select your country
804
+
805
+ │ Americas
806
+ │ ○ United States
807
+ │ ○ Canada
808
+ │ ○ Mexico
809
+ │ Europe
810
+ │ ○ United Kingdom
811
+ │ ↑↓ to see more options
812
+
813
+ │ Your country of residence
814
+
815
+ ◆ Date of Birth
816
+
817
+ │ ← 2025 →
818
+ │ ← September →
819
+
820
+ │ Mo Tu We Th Fr Sa Su
821
+ │ 1 2 3 4 5 6 7
822
+ │ 8 9 10 11 12 13 14
823
+ │ 15 16 17 18 19 20 21
824
+ │ 22 23 24 25 26 27 28
825
+ │ 29 30"
826
+ `);
827
+ // Navigate down in dropdown
828
+ await driver.keys.down();
829
+ const afterDownSnapshot = await driver.text();
830
+ expect(afterDownSnapshot).toMatchInlineSnapshot(`
831
+ "
832
+
833
+ Form Component Demo
834
+ │ This demonstrates all available form input types. Use arrow key
835
+
836
+ ◇ Username
837
+ │ Enter your username
838
+ │ Required field
839
+
840
+ ◇ Password
841
+ │ Enter secure password
842
+ │ Must be at least 8 characters
843
+
844
+ ◇ Biography
845
+ │ Tell us about yourself...
846
+
847
+
848
+
849
+
850
+ │ Maximum 500 characters
851
+
852
+ ◇ Email Preferences
853
+ │ ○ Subscribe to newsletter
854
+
855
+ │ Receive weekly updates
856
+
857
+ ◇ Country
858
+ │ Select your country
859
+
860
+ │ Americas
861
+ │ ○ United States
862
+ │ ○ Canada
863
+ │ ○ Mexico
864
+ │ Europe
865
+ │ ○ United Kingdom
866
+ │ ↑↓ to see more options
867
+
868
+ │ Your country of residence
869
+
870
+ ◆ Date of Birth
871
+
872
+ │ ← 2025 →
873
+ │ ← September →
874
+
875
+ │ Mo Tu We Th Fr Sa Su
876
+ │ 1 2 3 4 5 6 7
877
+ │ 8 9 10 11 12 13 14
878
+ │ 15 16 17 18 19 20 21
879
+ │ 22 23 24 25 26 27 28
880
+ │ 29 30"
881
+ `);
882
+ // Navigate to Europe section
883
+ await driver.keys.down();
884
+ await driver.keys.down();
885
+ await driver.keys.down();
886
+ const europeSelectionSnapshot = await driver.text();
887
+ expect(europeSelectionSnapshot).toMatchInlineSnapshot(`
888
+ "
889
+
890
+ Form Component Demo
891
+ │ This demonstrates all available form input types. Use arrow key
892
+
893
+ ◇ Username
894
+ │ Enter your username
895
+ │ Required field
896
+
897
+ ◇ Password
898
+ │ Enter secure password
899
+ │ Must be at least 8 characters
900
+
901
+ ◇ Biography
902
+ │ Tell us about yourself...
903
+
904
+
905
+
906
+
907
+ │ Maximum 500 characters
908
+
909
+ ◇ Email Preferences
910
+ │ ○ Subscribe to newsletter
911
+
912
+ │ Receive weekly updates
913
+
914
+ ◇ Country
915
+ │ Select your country
916
+
917
+ │ Americas
918
+ │ ○ United States
919
+ │ ○ Canada
920
+ │ ○ Mexico
921
+ │ Europe
922
+ │ ○ United Kingdom
923
+ │ ↑↓ to see more options
924
+
925
+ │ Your country of residence
926
+
927
+ ◆ Date of Birth
928
+
929
+ │ ← 2025 →
930
+ │ ← September →
931
+
932
+ │ Mo Tu We Th Fr Sa Su
933
+ │ 1 2 3 4 5 6 7
934
+ │ 8 9 10 11 12 13 14
935
+ │ 15 16 17 18 19 20 21
936
+ │ 22 23 24 25 26 27 28
937
+ │ 29 30"
938
+ `);
939
+ // Select France
940
+ await driver.keys.enter();
941
+ const afterFranceSelectSnapshot = await driver.text();
942
+ expect(afterFranceSelectSnapshot).toMatchInlineSnapshot(`
943
+ "
944
+
945
+ Form Component Demo
946
+ │ This demonstrates all available form input types. Use arrow key
947
+
948
+ ◇ Username
949
+ │ Enter your username
950
+ │ Required field
951
+
952
+ ◇ Password
953
+ │ Enter secure password
954
+ │ Must be at least 8 characters
955
+
956
+ ◇ Biography
957
+ │ Tell us about yourself...
958
+
959
+
960
+
961
+
962
+ │ Maximum 500 characters
963
+
964
+ ◇ Email Preferences
965
+ │ ○ Subscribe to newsletter
966
+
967
+ │ Receive weekly updates
968
+
969
+ ◇ Country
970
+ │ Select your country
971
+
972
+ │ Americas
973
+ │ ○ United States
974
+ │ ○ Canada
975
+ │ ○ Mexico
976
+ │ Europe
977
+ │ ○ United Kingdom
978
+ │ ↑↓ to see more options
979
+
980
+ │ Your country of residence
981
+
982
+ ◆ Date of Birth
983
+
984
+ │ ← 2025 →
985
+ │ ← September →
986
+
987
+ │ Mo Tu We Th Fr Sa Su
988
+ │ 1 2 3 4 5 6 7
989
+ │ 8 9 10 11 12 13 14
990
+ │ 15 16 17 18 19 20 21
991
+ │ 22 23 24 25 26 27 28
992
+ │ 29 30"
993
+ `);
994
+ }, 10000);
995
+ //# sourceMappingURL=form-basic.vitest.js.map