termcast 1.3.21 → 1.3.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/dist/ai.d.ts +104 -0
  2. package/dist/ai.d.ts.map +1 -0
  3. package/dist/ai.js +135 -0
  4. package/dist/ai.js.map +1 -0
  5. package/dist/apis/browser-extension.d.ts +18 -0
  6. package/dist/apis/browser-extension.d.ts.map +1 -0
  7. package/dist/apis/browser-extension.js +14 -0
  8. package/dist/apis/browser-extension.js.map +1 -0
  9. package/dist/apis/localstorage.d.ts.map +1 -1
  10. package/dist/apis/localstorage.js +4 -7
  11. package/dist/apis/localstorage.js.map +1 -1
  12. package/dist/apis/oauth.d.ts.map +1 -1
  13. package/dist/apis/oauth.js +5 -1
  14. package/dist/apis/oauth.js.map +1 -1
  15. package/dist/apis/preferences.d.ts.map +1 -1
  16. package/dist/apis/preferences.js +38 -19
  17. package/dist/apis/preferences.js.map +1 -1
  18. package/dist/build.d.ts.map +1 -1
  19. package/dist/build.js +2 -1
  20. package/dist/build.js.map +1 -1
  21. package/dist/cache.d.ts +32 -0
  22. package/dist/cache.d.ts.map +1 -0
  23. package/dist/cache.js +205 -0
  24. package/dist/cache.js.map +1 -0
  25. package/dist/cli.d.ts.map +1 -1
  26. package/dist/cli.js +67 -31
  27. package/dist/cli.js.map +1 -1
  28. package/dist/clipboard.d.ts +36 -0
  29. package/dist/clipboard.d.ts.map +1 -0
  30. package/dist/clipboard.js +154 -0
  31. package/dist/clipboard.js.map +1 -0
  32. package/dist/compile.d.ts.map +1 -1
  33. package/dist/compile.js +22 -5
  34. package/dist/compile.js.map +1 -1
  35. package/dist/components/actions.d.ts.map +1 -1
  36. package/dist/components/actions.js +56 -30
  37. package/dist/components/actions.js.map +1 -1
  38. package/dist/components/detail.d.ts.map +1 -1
  39. package/dist/components/detail.js +4 -0
  40. package/dist/components/detail.js.map +1 -1
  41. package/dist/components/dropdown.d.ts.map +1 -1
  42. package/dist/components/dropdown.js +38 -15
  43. package/dist/components/dropdown.js.map +1 -1
  44. package/dist/components/extension-preferences.d.ts.map +1 -1
  45. package/dist/components/extension-preferences.js +40 -13
  46. package/dist/components/extension-preferences.js.map +1 -1
  47. package/dist/components/form/checkbox.d.ts.map +1 -1
  48. package/dist/components/form/checkbox.js +5 -3
  49. package/dist/components/form/checkbox.js.map +1 -1
  50. package/dist/components/form/date-picker.d.ts.map +1 -1
  51. package/dist/components/form/date-picker.js +5 -3
  52. package/dist/components/form/date-picker.js.map +1 -1
  53. package/dist/components/form/description.d.ts.map +1 -1
  54. package/dist/components/form/description.js +2 -2
  55. package/dist/components/form/description.js.map +1 -1
  56. package/dist/components/form/dropdown.d.ts.map +1 -1
  57. package/dist/components/form/dropdown.js +84 -80
  58. package/dist/components/form/dropdown.js.map +1 -1
  59. package/dist/components/form/file-autocomplete.d.ts +3 -6
  60. package/dist/components/form/file-autocomplete.d.ts.map +1 -1
  61. package/dist/components/form/file-autocomplete.js +61 -66
  62. package/dist/components/form/file-autocomplete.js.map +1 -1
  63. package/dist/components/form/file-picker.d.ts.map +1 -1
  64. package/dist/components/form/file-picker.js +33 -30
  65. package/dist/components/form/file-picker.js.map +1 -1
  66. package/dist/components/form/form-end.d.ts.map +1 -1
  67. package/dist/components/form/form-end.js +21 -1
  68. package/dist/components/form/form-end.js.map +1 -1
  69. package/dist/components/form/form-type-only.d.ts +174 -0
  70. package/dist/components/form/form-type-only.d.ts.map +1 -0
  71. package/dist/components/form/form-type-only.js +2 -0
  72. package/dist/components/form/form-type-only.js.map +1 -0
  73. package/dist/components/form/index.d.ts +3 -1
  74. package/dist/components/form/index.d.ts.map +1 -1
  75. package/dist/components/form/index.js +100 -28
  76. package/dist/components/form/index.js.map +1 -1
  77. package/dist/components/form/password-field.d.ts.map +1 -1
  78. package/dist/components/form/password-field.js +5 -3
  79. package/dist/components/form/password-field.js.map +1 -1
  80. package/dist/components/form/text-area.d.ts.map +1 -1
  81. package/dist/components/form/text-area.js +5 -3
  82. package/dist/components/form/text-area.js.map +1 -1
  83. package/dist/components/form/text-field.d.ts.map +1 -1
  84. package/dist/components/form/text-field.js +6 -4
  85. package/dist/components/form/text-field.js.map +1 -1
  86. package/dist/components/form/types.d.ts +5 -0
  87. package/dist/components/form/types.d.ts.map +1 -1
  88. package/dist/components/form/use-form-handling.d.ts +4 -0
  89. package/dist/components/form/use-form-handling.d.ts.map +1 -0
  90. package/dist/components/form/use-form-handling.js +37 -0
  91. package/dist/components/form/use-form-handling.js.map +1 -0
  92. package/dist/components/form/with-left-border.d.ts +2 -1
  93. package/dist/components/form/with-left-border.d.ts.map +1 -1
  94. package/dist/components/form/with-left-border.js +27 -3
  95. package/dist/components/form/with-left-border.js.map +1 -1
  96. package/dist/components/icon.d.ts +1 -0
  97. package/dist/components/icon.d.ts.map +1 -1
  98. package/dist/components/icon.js +24 -8
  99. package/dist/components/icon.js.map +1 -1
  100. package/dist/components/list.d.ts +2 -2
  101. package/dist/components/list.d.ts.map +1 -1
  102. package/dist/components/list.js +140 -62
  103. package/dist/components/list.js.map +1 -1
  104. package/dist/components/loading-bar.d.ts.map +1 -1
  105. package/dist/components/loading-bar.js +2 -2
  106. package/dist/components/loading-bar.js.map +1 -1
  107. package/dist/components/loading-text.d.ts +8 -0
  108. package/dist/components/loading-text.d.ts.map +1 -0
  109. package/dist/components/loading-text.js +58 -0
  110. package/dist/components/loading-text.js.map +1 -0
  111. package/dist/descendants.js +1 -1
  112. package/dist/descendants.js.map +1 -1
  113. package/dist/dev-ui.d.ts +7 -0
  114. package/dist/dev-ui.d.ts.map +1 -0
  115. package/dist/dev-ui.js +118 -0
  116. package/dist/dev-ui.js.map +1 -0
  117. package/dist/environment.d.ts +63 -0
  118. package/dist/environment.d.ts.map +1 -0
  119. package/dist/environment.js +189 -0
  120. package/dist/environment.js.map +1 -0
  121. package/dist/examples/datepicker.d.ts +2 -0
  122. package/dist/examples/datepicker.d.ts.map +1 -0
  123. package/dist/examples/datepicker.js +344 -0
  124. package/dist/examples/datepicker.js.map +1 -0
  125. package/dist/examples/file-autocomplete.vitest.d.ts +2 -0
  126. package/dist/examples/file-autocomplete.vitest.d.ts.map +1 -0
  127. package/dist/examples/file-autocomplete.vitest.js +223 -0
  128. package/dist/examples/file-autocomplete.vitest.js.map +1 -0
  129. package/dist/examples/form-basic-arrow-keys.vitest.d.ts +2 -0
  130. package/dist/examples/form-basic-arrow-keys.vitest.d.ts.map +1 -0
  131. package/dist/examples/form-basic-arrow-keys.vitest.js +46 -0
  132. package/dist/examples/form-basic-arrow-keys.vitest.js.map +1 -0
  133. package/dist/examples/form-basic.vitest.d.ts +2 -0
  134. package/dist/examples/form-basic.vitest.d.ts.map +1 -0
  135. package/dist/examples/form-basic.vitest.js +630 -0
  136. package/dist/examples/form-basic.vitest.js.map +1 -0
  137. package/dist/examples/form-dropdown-with-sections.d.ts +2 -0
  138. package/dist/examples/form-dropdown-with-sections.d.ts.map +1 -0
  139. package/dist/examples/form-dropdown-with-sections.js +13 -0
  140. package/dist/examples/form-dropdown-with-sections.js.map +1 -0
  141. package/dist/examples/form-dropdown-with-sections.vitest.d.ts +2 -0
  142. package/dist/examples/form-dropdown-with-sections.vitest.d.ts.map +1 -0
  143. package/dist/examples/form-dropdown-with-sections.vitest.js +75 -0
  144. package/dist/examples/form-dropdown-with-sections.vitest.js.map +1 -0
  145. package/dist/examples/form-dropdown.vitest.d.ts +2 -0
  146. package/dist/examples/form-dropdown.vitest.d.ts.map +1 -0
  147. package/dist/examples/form-dropdown.vitest.js +854 -0
  148. package/dist/examples/form-dropdown.vitest.js.map +1 -0
  149. package/dist/examples/form-multiselect-dropdown.d.ts +2 -0
  150. package/dist/examples/form-multiselect-dropdown.d.ts.map +1 -0
  151. package/dist/examples/form-multiselect-dropdown.js +13 -0
  152. package/dist/examples/form-multiselect-dropdown.js.map +1 -0
  153. package/dist/examples/form-scroll.d.ts.map +1 -1
  154. package/dist/examples/form-scroll.js +7 -1
  155. package/dist/examples/form-scroll.js.map +1 -1
  156. package/dist/examples/form-scroll.vitest.d.ts +2 -0
  157. package/dist/examples/form-scroll.vitest.d.ts.map +1 -0
  158. package/dist/examples/form-scroll.vitest.js +211 -0
  159. package/dist/examples/form-scroll.vitest.js.map +1 -0
  160. package/dist/examples/form-tagpicker.vitest.d.ts +2 -0
  161. package/dist/examples/form-tagpicker.vitest.d.ts.map +1 -0
  162. package/dist/examples/form-tagpicker.vitest.js +736 -0
  163. package/dist/examples/form-tagpicker.vitest.js.map +1 -0
  164. package/dist/examples/internal/descendants-filtering.js +1 -1
  165. package/dist/examples/internal/descendants-filtering.js.map +1 -1
  166. package/dist/examples/internal/descendants.js +1 -1
  167. package/dist/examples/internal/descendants.js.map +1 -1
  168. package/dist/examples/internal/nested-boxes.d.ts +2 -0
  169. package/dist/examples/internal/nested-boxes.d.ts.map +1 -0
  170. package/dist/examples/internal/nested-boxes.js +7 -0
  171. package/dist/examples/internal/nested-boxes.js.map +1 -0
  172. package/dist/examples/internal/rhf-custom-ref.js +2 -2
  173. package/dist/examples/internal/rhf-custom-ref.js.map +1 -1
  174. package/dist/examples/internal/scrollbox-demo.js +3 -22
  175. package/dist/examples/internal/scrollbox-demo.js.map +1 -1
  176. package/dist/examples/internal/scrollbox-descendants.d.ts +2 -0
  177. package/dist/examples/internal/scrollbox-descendants.d.ts.map +1 -0
  178. package/dist/examples/internal/scrollbox-descendants.js +83 -0
  179. package/dist/examples/internal/scrollbox-descendants.js.map +1 -0
  180. package/dist/examples/internal/scrollbox-with-descendants.js +4 -8
  181. package/dist/examples/internal/scrollbox-with-descendants.js.map +1 -1
  182. package/dist/examples/internal/simple-scrollbox.vitest.d.ts +2 -0
  183. package/dist/examples/internal/simple-scrollbox.vitest.d.ts.map +1 -0
  184. package/dist/examples/internal/simple-scrollbox.vitest.js +96 -0
  185. package/dist/examples/internal/simple-scrollbox.vitest.js.map +1 -0
  186. package/dist/examples/internal/unicode-square-repro.d.ts +2 -0
  187. package/dist/examples/internal/unicode-square-repro.d.ts.map +1 -0
  188. package/dist/examples/internal/unicode-square-repro.js +7 -0
  189. package/dist/examples/internal/unicode-square-repro.js.map +1 -0
  190. package/dist/examples/list-detail-metadata.d.ts +2 -0
  191. package/dist/examples/list-detail-metadata.d.ts.map +1 -0
  192. package/dist/examples/list-detail-metadata.js +8 -0
  193. package/dist/examples/list-detail-metadata.js.map +1 -0
  194. package/dist/examples/list-dropdown-default.vitest.d.ts +2 -0
  195. package/dist/examples/list-dropdown-default.vitest.d.ts.map +1 -0
  196. package/dist/examples/list-dropdown-default.vitest.js +234 -0
  197. package/dist/examples/list-dropdown-default.vitest.js.map +1 -0
  198. package/dist/examples/list-fetch-data.vitest.d.ts +2 -0
  199. package/dist/examples/list-fetch-data.vitest.d.ts.map +1 -0
  200. package/dist/examples/list-fetch-data.vitest.js +111 -0
  201. package/dist/examples/list-fetch-data.vitest.js.map +1 -0
  202. package/dist/examples/list-filter-navigation.d.ts +2 -0
  203. package/dist/examples/list-filter-navigation.d.ts.map +1 -0
  204. package/dist/examples/list-filter-navigation.js +8 -0
  205. package/dist/examples/list-filter-navigation.js.map +1 -0
  206. package/dist/examples/list-scrollbox.vitest.d.ts +2 -0
  207. package/dist/examples/list-scrollbox.vitest.d.ts.map +1 -0
  208. package/dist/examples/list-scrollbox.vitest.js +93 -0
  209. package/dist/examples/list-scrollbox.vitest.js.map +1 -0
  210. package/dist/examples/list-with-detail-long.d.ts +2 -0
  211. package/dist/examples/list-with-detail-long.d.ts.map +1 -0
  212. package/dist/examples/list-with-detail-long.js +53 -0
  213. package/dist/examples/list-with-detail-long.js.map +1 -0
  214. package/dist/examples/list-with-detail.vitest.d.ts +2 -0
  215. package/dist/examples/list-with-detail.vitest.d.ts.map +1 -0
  216. package/dist/examples/list-with-detail.vitest.js +434 -0
  217. package/dist/examples/list-with-detail.vitest.js.map +1 -0
  218. package/dist/examples/list-with-dropdown.vitest.d.ts +2 -0
  219. package/dist/examples/list-with-dropdown.vitest.d.ts.map +1 -0
  220. package/dist/examples/list-with-dropdown.vitest.js +337 -0
  221. package/dist/examples/list-with-dropdown.vitest.js.map +1 -0
  222. package/dist/examples/list-with-sections.js +5 -1
  223. package/dist/examples/list-with-sections.js.map +1 -1
  224. package/dist/examples/list-with-sections.vitest.d.ts +2 -0
  225. package/dist/examples/list-with-sections.vitest.d.ts.map +1 -0
  226. package/dist/examples/list-with-sections.vitest.js +601 -0
  227. package/dist/examples/list-with-sections.vitest.js.map +1 -0
  228. package/dist/examples/scrollbox-vertical-centering.d.ts +6 -0
  229. package/dist/examples/scrollbox-vertical-centering.d.ts.map +1 -0
  230. package/dist/examples/scrollbox-vertical-centering.js +17 -0
  231. package/dist/examples/scrollbox-vertical-centering.js.map +1 -0
  232. package/dist/examples/simple-file-picker.vitest.d.ts +2 -0
  233. package/dist/examples/simple-file-picker.vitest.d.ts.map +1 -0
  234. package/dist/examples/simple-file-picker.vitest.js +678 -0
  235. package/dist/examples/simple-file-picker.vitest.js.map +1 -0
  236. package/dist/examples/simple-grid.vitest.d.ts +2 -0
  237. package/dist/examples/simple-grid.vitest.d.ts.map +1 -0
  238. package/dist/examples/simple-grid.vitest.js +521 -0
  239. package/dist/examples/simple-grid.vitest.js.map +1 -0
  240. package/dist/examples/simple-navigation.js +10 -4
  241. package/dist/examples/simple-navigation.js.map +1 -1
  242. package/dist/examples/simple-navigation.vitest.d.ts +2 -0
  243. package/dist/examples/simple-navigation.vitest.d.ts.map +1 -0
  244. package/dist/examples/simple-navigation.vitest.js +718 -0
  245. package/dist/examples/simple-navigation.vitest.js.map +1 -0
  246. package/dist/examples/store.vitest.d.ts +2 -0
  247. package/dist/examples/store.vitest.d.ts.map +1 -0
  248. package/dist/examples/store.vitest.js +69 -0
  249. package/dist/examples/store.vitest.js.map +1 -0
  250. package/dist/extensions/dev.d.ts +4 -2
  251. package/dist/extensions/dev.d.ts.map +1 -1
  252. package/dist/extensions/dev.js +61 -10
  253. package/dist/extensions/dev.js.map +1 -1
  254. package/dist/extensions/dev.vitest.d.ts +2 -0
  255. package/dist/extensions/dev.vitest.d.ts.map +1 -0
  256. package/dist/extensions/dev.vitest.js +197 -0
  257. package/dist/extensions/dev.vitest.js.map +1 -0
  258. package/dist/extensions/home.d.ts.map +1 -1
  259. package/dist/extensions/home.js +3 -0
  260. package/dist/extensions/home.js.map +1 -1
  261. package/dist/home-command.d.ts +8 -0
  262. package/dist/home-command.d.ts.map +1 -0
  263. package/dist/home-command.js +181 -0
  264. package/dist/home-command.js.map +1 -0
  265. package/dist/hover-repro.d.ts +2 -0
  266. package/dist/hover-repro.d.ts.map +1 -0
  267. package/dist/hover-repro.js +20 -0
  268. package/dist/hover-repro.js.map +1 -0
  269. package/dist/index.d.ts +1 -0
  270. package/dist/index.d.ts.map +1 -1
  271. package/dist/index.js +2 -0
  272. package/dist/index.js.map +1 -1
  273. package/dist/internal/dialog.d.ts +1 -0
  274. package/dist/internal/dialog.d.ts.map +1 -1
  275. package/dist/internal/dialog.js +27 -18
  276. package/dist/internal/dialog.js.map +1 -1
  277. package/dist/internal/navigation.d.ts +9 -1
  278. package/dist/internal/navigation.d.ts.map +1 -1
  279. package/dist/internal/navigation.js +5 -5
  280. package/dist/internal/navigation.js.map +1 -1
  281. package/dist/internal/offscreen.d.ts +6 -0
  282. package/dist/internal/offscreen.d.ts.map +1 -0
  283. package/dist/internal/offscreen.js +10 -0
  284. package/dist/internal/offscreen.js.map +1 -0
  285. package/dist/internal/providers.d.ts.map +1 -1
  286. package/dist/internal/providers.js +2 -2
  287. package/dist/internal/providers.js.map +1 -1
  288. package/dist/internal/scrollbox.d.ts +1 -10
  289. package/dist/internal/scrollbox.d.ts.map +1 -1
  290. package/dist/internal/scrollbox.js +2 -1
  291. package/dist/internal/scrollbox.js.map +1 -1
  292. package/dist/localstorage.d.ts +13 -0
  293. package/dist/localstorage.d.ts.map +1 -0
  294. package/dist/localstorage.js +190 -0
  295. package/dist/localstorage.js.map +1 -0
  296. package/dist/oauth.d.ts +142 -0
  297. package/dist/oauth.d.ts.map +1 -0
  298. package/dist/oauth.js +551 -0
  299. package/dist/oauth.js.map +1 -0
  300. package/dist/preferences.d.ts +23 -0
  301. package/dist/preferences.d.ts.map +1 -0
  302. package/dist/preferences.js +105 -0
  303. package/dist/preferences.js.map +1 -0
  304. package/dist/state.d.ts +2 -0
  305. package/dist/state.d.ts.map +1 -1
  306. package/dist/state.js +3 -0
  307. package/dist/state.js.map +1 -1
  308. package/dist/store.d.ts +21 -0
  309. package/dist/store.d.ts.map +1 -0
  310. package/dist/store.js +84 -0
  311. package/dist/store.js.map +1 -0
  312. package/dist/swift-loader.d.ts +3 -0
  313. package/dist/swift-loader.d.ts.map +1 -0
  314. package/dist/swift-loader.js +193 -0
  315. package/dist/swift-loader.js.map +1 -0
  316. package/dist/swift-runtime.d.ts +2 -0
  317. package/dist/swift-runtime.d.ts.map +1 -0
  318. package/dist/swift-runtime.js +27 -0
  319. package/dist/swift-runtime.js.map +1 -0
  320. package/dist/toast.d.ts +44 -0
  321. package/dist/toast.d.ts.map +1 -0
  322. package/dist/toast.js +221 -0
  323. package/dist/toast.js.map +1 -0
  324. package/dist/utils/file-system.d.ts +9 -0
  325. package/dist/utils/file-system.d.ts.map +1 -1
  326. package/dist/utils/file-system.js +49 -0
  327. package/dist/utils/file-system.js.map +1 -1
  328. package/dist/utils/run-command.d.ts +25 -1
  329. package/dist/utils/run-command.d.ts.map +1 -1
  330. package/dist/utils/run-command.js +47 -4
  331. package/dist/utils/run-command.js.map +1 -1
  332. package/dist/window.d.ts +12 -0
  333. package/dist/window.d.ts.map +1 -0
  334. package/dist/window.js +48 -0
  335. package/dist/window.js.map +1 -0
  336. package/package.json +12 -10
  337. package/src/apis/browser-extension.tsx +29 -0
  338. package/src/apis/localstorage.test.ts +14 -6
  339. package/src/apis/localstorage.tsx +8 -5
  340. package/src/apis/oauth.tsx +5 -1
  341. package/src/apis/preferences.tsx +48 -22
  342. package/src/build.test.tsx +52 -0
  343. package/src/build.tsx +2 -1
  344. package/src/cli.tsx +78 -37
  345. package/src/compile.tsx +22 -5
  346. package/src/components/actions.tsx +94 -32
  347. package/src/components/detail.tsx +4 -0
  348. package/src/components/dropdown.tsx +47 -14
  349. package/src/components/extension-preferences.tsx +44 -16
  350. package/src/components/form/checkbox.tsx +12 -6
  351. package/src/components/form/date-picker.tsx +12 -6
  352. package/src/components/form/description.tsx +7 -2
  353. package/src/components/form/dropdown.tsx +131 -119
  354. package/src/components/form/file-autocomplete.tsx +90 -108
  355. package/src/components/form/file-picker.tsx +54 -43
  356. package/src/components/form/form-end.tsx +23 -2
  357. package/src/components/form/index.tsx +152 -34
  358. package/src/components/form/password-field.tsx +12 -6
  359. package/src/components/form/text-area.tsx +13 -6
  360. package/src/components/form/text-field.tsx +13 -6
  361. package/src/components/form/types.tsx +6 -0
  362. package/src/components/form/with-left-border.tsx +41 -8
  363. package/src/components/icon.tsx +27 -8
  364. package/src/components/list.tsx +193 -74
  365. package/src/components/loading-bar.tsx +3 -2
  366. package/src/components/loading-text.tsx +79 -0
  367. package/src/descendants.tsx +1 -0
  368. package/src/examples/file-autocomplete.vitest.tsx +130 -125
  369. package/src/examples/form-basic.vitest.tsx +376 -176
  370. package/src/examples/form-dropdown.vitest.tsx +126 -126
  371. package/src/examples/form-scroll.tsx +2 -0
  372. package/src/examples/form-scroll.vitest.tsx +58 -58
  373. package/src/examples/form-tagpicker.vitest.tsx +99 -99
  374. package/src/examples/internal/descendants-filtering.tsx +1 -0
  375. package/src/examples/internal/descendants.tsx +1 -0
  376. package/src/examples/internal/rhf-custom-ref.tsx +2 -0
  377. package/src/examples/internal/scrollbox-demo.tsx +3 -27
  378. package/src/examples/internal/scrollbox-with-descendants.tsx +4 -7
  379. package/src/examples/internal/simple-scrollbox.vitest.tsx +7 -5
  380. package/src/examples/list-detail-metadata.tsx +49 -0
  381. package/src/examples/list-detail-metadata.vitest.tsx +88 -0
  382. package/src/examples/list-dropdown-default.vitest.tsx +51 -51
  383. package/src/examples/list-fetch-data.vitest.tsx +4 -4
  384. package/src/examples/list-scrollbox.vitest.tsx +73 -14
  385. package/src/examples/list-with-detail-long.tsx +70 -0
  386. package/src/examples/list-with-detail.vitest.tsx +198 -92
  387. package/src/examples/list-with-dropdown.vitest.tsx +53 -53
  388. package/src/examples/list-with-sections.tsx +1 -0
  389. package/src/examples/list-with-sections.vitest.tsx +213 -89
  390. package/src/examples/list-with-toast.vitest.tsx +4 -4
  391. package/src/examples/simple-file-picker.vitest.tsx +61 -471
  392. package/src/examples/simple-grid.vitest.tsx +238 -233
  393. package/src/examples/simple-navigation.tsx +15 -7
  394. package/src/examples/simple-navigation.vitest.tsx +121 -210
  395. package/src/examples/store.vitest.tsx +1 -1
  396. package/src/examples/swift-extension.vitest.tsx +148 -0
  397. package/src/examples/synonyms.vitest.tsx +159 -0
  398. package/src/extensions/dev.tsx +74 -7
  399. package/src/extensions/dev.vitest.tsx +97 -31
  400. package/src/extensions/home.tsx +6 -0
  401. package/src/index.tsx +3 -0
  402. package/src/internal/dialog.tsx +43 -30
  403. package/src/internal/navigation.tsx +3 -1
  404. package/src/internal/offscreen.tsx +15 -0
  405. package/src/internal/providers.tsx +4 -2
  406. package/src/internal/scrollbox.tsx +4 -8
  407. package/src/keyboard.test.tsx +69 -0
  408. package/src/state.tsx +7 -0
  409. package/src/swift-loader.tsx +239 -0
  410. package/src/swift-runtime.tsx +36 -0
  411. package/src/utils/file-system.ts +61 -0
  412. package/src/utils/run-command.tsx +75 -6
@@ -0,0 +1,736 @@
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-tagpicker.tsx'],
8
+ cols: 70,
9
+ rows: 50,
10
+ });
11
+ });
12
+ afterEach(() => {
13
+ session?.close();
14
+ });
15
+ test('form tagpicker shows inline options', async () => {
16
+ await session.text({
17
+ waitFor: (text) => {
18
+ return /TagPicker Component Demo/i.test(text);
19
+ },
20
+ });
21
+ await session.waitIdle();
22
+ const initialSnapshot = await session.text();
23
+ expect(initialSnapshot).toMatchInlineSnapshot(`
24
+ "
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+ ▪ TagPicker Component Demo
38
+ │ Test tag picker with multiple selection support
39
+
40
+ ◆ Favorite Sport
41
+ ┃ Choose your favorite sport...
42
+
43
+ ┃› ○ Basketball
44
+ ┃ ○ Football
45
+ ┃ ○ Tennis
46
+ ┃ ○ Baseball
47
+ ┃ ↑↓ to see more options
48
+
49
+ ┃ Select your favorite sport from the list
50
+
51
+ ◇ Country
52
+ │ Germany
53
+
54
+ │ ● Germany
55
+ │ ○ India
56
+ │ ○ Netherlands
57
+ │ ○ Norway
58
+ │ ↑↓ to see more options
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+ alt ↵ submit ↑↓ navigate ^k actions"
73
+ `);
74
+ await session.press('space');
75
+ const afterSelectBasketballSnapshot = await session.text();
76
+ expect(afterSelectBasketballSnapshot).toMatchInlineSnapshot(`
77
+ "
78
+
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+ ▪ TagPicker Component Demo
91
+ │ Test tag picker with multiple selection support
92
+
93
+ ◆ Favorite Sport
94
+ ┃ Basketball
95
+
96
+ ┃› ● Basketball
97
+ ┃ ○ Football
98
+ ┃ ○ Tennis
99
+ ┃ ○ Baseball
100
+ ┃ ↑↓ to see more options
101
+
102
+ ┃ Select your favorite sport from the list
103
+
104
+ ◇ Country
105
+ │ Germany
106
+
107
+ │ ● Germany
108
+ │ ○ India
109
+ │ ○ Netherlands
110
+ │ ○ Norway
111
+ │ ↑↓ to see more options
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+ alt ↵ submit ↑↓ navigate ^k actions"
126
+ `);
127
+ await session.press('down');
128
+ const afterDownSnapshot = await session.text();
129
+ expect(afterDownSnapshot).toMatchInlineSnapshot(`
130
+ "
131
+
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+ ▪ TagPicker Component Demo
144
+ │ Test tag picker with multiple selection support
145
+
146
+ ◆ Favorite Sport
147
+ ┃ Basketball
148
+
149
+ ┃ ● Basketball
150
+ ┃› ○ Football
151
+ ┃ ○ Tennis
152
+ ┃ ○ Baseball
153
+ ┃ ↑↓ to see more options
154
+
155
+ ┃ Select your favorite sport from the list
156
+
157
+ ◇ Country
158
+ │ Germany
159
+
160
+ │ ● Germany
161
+ │ ○ India
162
+ │ ○ Netherlands
163
+ │ ○ Norway
164
+ │ ↑↓ to see more options
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+ alt ↵ submit ↑↓ navigate ^k actions"
179
+ `);
180
+ await session.press('down');
181
+ await session.press('down');
182
+ await session.press('down');
183
+ await session.press('down');
184
+ const afterMultipleDownSnapshot = await session.text();
185
+ expect(afterMultipleDownSnapshot).toMatchInlineSnapshot(`
186
+ "
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+ ▪ TagPicker Component Demo
200
+ │ Test tag picker with multiple selection support
201
+
202
+ ◆ Favorite Sport
203
+ ┃ Basketball
204
+
205
+ ┃ ○ Tennis
206
+ ┃ ○ Baseball
207
+ ┃ ○ Golf
208
+ ┃› ○ Swimming
209
+ ┃ ↑↓ to see more options
210
+
211
+ ┃ Select your favorite sport from the list
212
+
213
+ ◇ Country
214
+ │ Germany
215
+
216
+ │ ● Germany
217
+ │ ○ India
218
+ │ ○ Netherlands
219
+ │ ○ Norway
220
+ │ ↑↓ to see more options
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+ alt ↵ submit ↑↓ navigate ^k actions"
235
+ `);
236
+ await session.press('enter');
237
+ const afterSelectSnapshot = await session.text();
238
+ expect(afterSelectSnapshot).toMatchInlineSnapshot(`
239
+ "
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+ ▪ TagPicker Component Demo
253
+ │ Test tag picker with multiple selection support
254
+
255
+ ◆ Favorite Sport
256
+ ┃ Basketball, Swimming
257
+
258
+ ┃ ○ Tennis
259
+ ┃ ○ Baseball
260
+ ┃ ○ Golf
261
+ ┃› ● Swimming
262
+ ┃ ↑↓ to see more options
263
+
264
+ ┃ Select your favorite sport from the list
265
+
266
+ ◇ Country
267
+ │ Germany
268
+
269
+ │ ● Germany
270
+ │ ○ India
271
+ │ ○ Netherlands
272
+ │ ○ Norway
273
+ │ ↑↓ to see more options
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+ alt ↵ submit ↑↓ navigate ^k actions"
288
+ `);
289
+ }, 15000);
290
+ test('form tagpicker keyboard navigation', async () => {
291
+ await session.text({
292
+ waitFor: (text) => {
293
+ return /TagPicker Component Demo/i.test(text);
294
+ },
295
+ });
296
+ await session.press('space');
297
+ const afterSelectSnapshot = await session.text();
298
+ expect(afterSelectSnapshot).toMatchInlineSnapshot(`
299
+ "
300
+
301
+
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+ ▪ TagPicker Component Demo
313
+ │ Test tag picker with multiple selection support
314
+
315
+ ◆ Favorite Sport
316
+ ┃ Basketball
317
+
318
+ ┃› ● Basketball
319
+ ┃ ○ Football
320
+ ┃ ○ Tennis
321
+ ┃ ○ Baseball
322
+ ┃ ↑↓ to see more options
323
+
324
+ ┃ Select your favorite sport from the list
325
+
326
+ ◇ Country
327
+ │ Germany
328
+
329
+ │ ● Germany
330
+ │ ○ India
331
+ │ ○ Netherlands
332
+ │ ○ Norway
333
+ │ ↑↓ to see more options
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+
342
+
343
+
344
+
345
+
346
+
347
+ alt ↵ submit ↑↓ navigate ^k actions"
348
+ `);
349
+ await session.press('down');
350
+ await session.press('down');
351
+ await session.press('down');
352
+ await session.press('down');
353
+ const lastVisibleSnapshot = await session.text();
354
+ expect(lastVisibleSnapshot).toMatchInlineSnapshot(`
355
+ "
356
+
357
+
358
+
359
+
360
+
361
+
362
+
363
+
364
+
365
+
366
+
367
+
368
+ ▪ TagPicker Component Demo
369
+ │ Test tag picker with multiple selection support
370
+
371
+ ◆ Favorite Sport
372
+ ┃ Basketball
373
+
374
+ ┃ ○ Football
375
+ ┃ ○ Tennis
376
+ ┃ ○ Baseball
377
+ ┃› ○ Golf
378
+ ┃ ↑↓ to see more options
379
+
380
+ ┃ Select your favorite sport from the list
381
+
382
+ ◇ Country
383
+ │ Germany
384
+
385
+ │ ● Germany
386
+ │ ○ India
387
+ │ ○ Netherlands
388
+ │ ○ Norway
389
+ │ ↑↓ to see more options
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+ alt ↵ submit ↑↓ navigate ^k actions"
404
+ `);
405
+ await session.press('down');
406
+ const nextPageSnapshot = await session.text();
407
+ expect(nextPageSnapshot).toMatchInlineSnapshot(`
408
+ "
409
+
410
+
411
+
412
+
413
+
414
+
415
+
416
+
417
+
418
+
419
+
420
+
421
+ ▪ TagPicker Component Demo
422
+ │ Test tag picker with multiple selection support
423
+
424
+ ◆ Favorite Sport
425
+ ┃ Basketball
426
+
427
+ ┃ ○ Tennis
428
+ ┃ ○ Baseball
429
+ ┃ ○ Golf
430
+ ┃› ○ Swimming
431
+ ┃ ↑↓ to see more options
432
+
433
+ ┃ Select your favorite sport from the list
434
+
435
+ ◇ Country
436
+ │ Germany
437
+
438
+ │ ● Germany
439
+ │ ○ India
440
+ │ ○ Netherlands
441
+ │ ○ Norway
442
+ │ ↑↓ to see more options
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+
456
+ alt ↵ submit ↑↓ navigate ^k actions"
457
+ `);
458
+ await session.press('up');
459
+ const backToPreviousPageSnapshot = await session.text();
460
+ expect(backToPreviousPageSnapshot).toMatchInlineSnapshot(`
461
+ "
462
+
463
+
464
+
465
+
466
+
467
+
468
+
469
+
470
+
471
+
472
+
473
+
474
+ ▪ TagPicker Component Demo
475
+ │ Test tag picker with multiple selection support
476
+
477
+ ◆ Favorite Sport
478
+ ┃ Basketball
479
+
480
+ ┃ ○ Tennis
481
+ ┃ ○ Baseball
482
+ ┃› ○ Golf
483
+ ┃ ○ Swimming
484
+ ┃ ↑↓ to see more options
485
+
486
+ ┃ Select your favorite sport from the list
487
+
488
+ ◇ Country
489
+ │ Germany
490
+
491
+ │ ● Germany
492
+ │ ○ India
493
+ │ ○ Netherlands
494
+ │ ○ Norway
495
+ │ ↑↓ to see more options
496
+
497
+
498
+
499
+
500
+
501
+
502
+
503
+
504
+
505
+
506
+
507
+
508
+
509
+ alt ↵ submit ↑↓ navigate ^k actions"
510
+ `);
511
+ await session.press('esc');
512
+ const afterEscapeSnapshot = await session.text();
513
+ expect(afterEscapeSnapshot).toMatchInlineSnapshot(`
514
+ "
515
+
516
+
517
+
518
+
519
+
520
+
521
+
522
+
523
+
524
+
525
+
526
+
527
+ ▪ TagPicker Component Demo
528
+ │ Test tag picker with multiple selection support
529
+
530
+ ◆ Favorite Sport
531
+ ┃ Basketball
532
+
533
+ ┃ ○ Tennis
534
+ ┃ ○ Baseball
535
+ ┃› ○ Golf
536
+ ┃ ○ Swimming
537
+ ┃ ↑↓ to see more options
538
+
539
+ ┃ Select your favorite sport from the list
540
+
541
+ ◇ Country
542
+ │ Germany
543
+
544
+ │ ● Germany
545
+ │ ○ India
546
+ │ ○ Netherlands
547
+ │ ○ Norway
548
+ │ ↑↓ to see more options
549
+
550
+
551
+
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+
561
+
562
+ alt ↵ submit ↑↓ navigate ^k actions"
563
+ `);
564
+ }, 15000);
565
+ test('form tagpicker with default value', async () => {
566
+ await session.text({
567
+ waitFor: (text) => {
568
+ return /TagPicker Component Demo/i.test(text);
569
+ },
570
+ });
571
+ await session.press('tab');
572
+ const secondTagpickerFocusedSnapshot = await session.text();
573
+ expect(secondTagpickerFocusedSnapshot).toMatchInlineSnapshot(`
574
+ "
575
+
576
+
577
+
578
+
579
+
580
+
581
+
582
+
583
+
584
+
585
+
586
+
587
+ ▪ TagPicker Component Demo
588
+ │ Test tag picker with multiple selection support
589
+
590
+ ◇ Favorite Sport
591
+ │ Choose your favorite sport...
592
+
593
+ │ ○ Basketball
594
+ │ ○ Football
595
+ │ ○ Tennis
596
+ │ ○ Baseball
597
+ │ ↑↓ to see more options
598
+
599
+ │ Select your favorite sport from the list
600
+
601
+ ◆ Country
602
+ ┃ Germany
603
+
604
+ ┃› ● Germany
605
+ ┃ ○ India
606
+ ┃ ○ Netherlands
607
+ ┃ ○ Norway
608
+ ┃ ↑↓ to see more options
609
+
610
+
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+
619
+
620
+
621
+
622
+ alt ↵ submit ↑↓ navigate ^k actions"
623
+ `);
624
+ await session.press('space');
625
+ const afterDeselectGermanySnapshot = await session.text();
626
+ expect(afterDeselectGermanySnapshot).toMatchInlineSnapshot(`
627
+ "
628
+
629
+
630
+
631
+
632
+
633
+
634
+
635
+
636
+
637
+
638
+
639
+
640
+ ▪ TagPicker Component Demo
641
+ │ Test tag picker with multiple selection support
642
+
643
+ ◇ Favorite Sport
644
+ │ Choose your favorite sport...
645
+
646
+ │ ○ Basketball
647
+ │ ○ Football
648
+ │ ○ Tennis
649
+ │ ○ Baseball
650
+ │ ↑↓ to see more options
651
+
652
+ │ Select your favorite sport from the list
653
+
654
+ ◆ Country
655
+ ┃ Select a country
656
+
657
+ ┃› ○ Germany
658
+ ┃ ○ India
659
+ ┃ ○ Netherlands
660
+ ┃ ○ Norway
661
+ ┃ ↑↓ to see more options
662
+
663
+
664
+
665
+
666
+
667
+
668
+
669
+
670
+
671
+
672
+
673
+
674
+
675
+ alt ↵ submit ↑↓ navigate ^k actions"
676
+ `);
677
+ await session.press('esc');
678
+ await session.press(['alt', 'enter']);
679
+ const afterSubmitSnapshot = await session.text({
680
+ waitFor: (text) => {
681
+ return /Submitted Data/i.test(text);
682
+ },
683
+ });
684
+ expect(afterSubmitSnapshot).toMatchInlineSnapshot(`
685
+ "
686
+
687
+
688
+
689
+
690
+
691
+
692
+
693
+
694
+ ▪ TagPicker Component Demo
695
+ │ Test tag picker with multiple selection support
696
+
697
+ ◇ Favorite Sport
698
+ │ Choose your favorite sport...
699
+
700
+ │ ○ Basketball
701
+ │ ○ Football
702
+ │ ○ Tennis
703
+ │ ○ Baseball
704
+ │ ↑↓ to see more options
705
+
706
+ │ Select your favorite sport from the list
707
+
708
+ ◆ Country
709
+ ┃ Germany
710
+
711
+ ┃› ● Germany
712
+ ┃ ○ India
713
+ ┃ ○ Netherlands
714
+ ┃ ○ Norway
715
+ ┃ ↑↓ to see more options
716
+
717
+ ▪ Submitted Data
718
+ │ {
719
+ │ "sports": [],
720
+ │ "countries": [
721
+ │ "ger"
722
+ │ ]
723
+ │ }
724
+
725
+
726
+
727
+
728
+
729
+
730
+
731
+
732
+
733
+ alt ↵ submit ↑↓ navigate ^k actions"
734
+ `);
735
+ }, 15000);
736
+ //# sourceMappingURL=form-tagpicker.vitest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-tagpicker.vitest.js","sourceRoot":"","sources":["../../src/examples/form-tagpicker.vitest.tsx"],"names":[],"mappings":"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"}