termcast 1.3.21 → 1.3.25
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.
- package/dist/ai.d.ts +104 -0
- package/dist/ai.d.ts.map +1 -0
- package/dist/ai.js +135 -0
- package/dist/ai.js.map +1 -0
- package/dist/apis/browser-extension.d.ts +18 -0
- package/dist/apis/browser-extension.d.ts.map +1 -0
- package/dist/apis/browser-extension.js +14 -0
- package/dist/apis/browser-extension.js.map +1 -0
- package/dist/apis/localstorage.d.ts.map +1 -1
- package/dist/apis/localstorage.js +4 -7
- package/dist/apis/localstorage.js.map +1 -1
- package/dist/apis/oauth.d.ts.map +1 -1
- package/dist/apis/oauth.js +5 -1
- package/dist/apis/oauth.js.map +1 -1
- package/dist/apis/preferences.d.ts.map +1 -1
- package/dist/apis/preferences.js +38 -19
- package/dist/apis/preferences.js.map +1 -1
- package/dist/apis/toast.d.ts +5 -0
- package/dist/apis/toast.d.ts.map +1 -1
- package/dist/apis/toast.js +7 -43
- package/dist/apis/toast.js.map +1 -1
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +3 -1
- package/dist/build.js.map +1 -1
- package/dist/cache.d.ts +32 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +205 -0
- package/dist/cache.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +87 -41
- package/dist/cli.js.map +1 -1
- package/dist/clipboard.d.ts +36 -0
- package/dist/clipboard.d.ts.map +1 -0
- package/dist/clipboard.js +154 -0
- package/dist/clipboard.js.map +1 -0
- package/dist/compile.d.ts +2 -1
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +31 -12
- package/dist/compile.js.map +1 -1
- package/dist/components/actions.d.ts.map +1 -1
- package/dist/components/actions.js +56 -30
- package/dist/components/actions.js.map +1 -1
- package/dist/components/detail.d.ts.map +1 -1
- package/dist/components/detail.js +4 -0
- package/dist/components/detail.js.map +1 -1
- package/dist/components/dropdown.d.ts.map +1 -1
- package/dist/components/dropdown.js +38 -15
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/extension-preferences.d.ts.map +1 -1
- package/dist/components/extension-preferences.js +40 -13
- package/dist/components/extension-preferences.js.map +1 -1
- package/dist/components/form/checkbox.d.ts.map +1 -1
- package/dist/components/form/checkbox.js +5 -3
- package/dist/components/form/checkbox.js.map +1 -1
- package/dist/components/form/date-picker.d.ts.map +1 -1
- package/dist/components/form/date-picker.js +5 -3
- package/dist/components/form/date-picker.js.map +1 -1
- package/dist/components/form/description.d.ts.map +1 -1
- package/dist/components/form/description.js +2 -2
- package/dist/components/form/description.js.map +1 -1
- package/dist/components/form/dropdown.d.ts.map +1 -1
- package/dist/components/form/dropdown.js +84 -80
- package/dist/components/form/dropdown.js.map +1 -1
- package/dist/components/form/file-autocomplete.d.ts +3 -6
- package/dist/components/form/file-autocomplete.d.ts.map +1 -1
- package/dist/components/form/file-autocomplete.js +61 -66
- package/dist/components/form/file-autocomplete.js.map +1 -1
- package/dist/components/form/file-picker.d.ts.map +1 -1
- package/dist/components/form/file-picker.js +33 -30
- package/dist/components/form/file-picker.js.map +1 -1
- package/dist/components/form/form-end.d.ts.map +1 -1
- package/dist/components/form/form-end.js +21 -1
- package/dist/components/form/form-end.js.map +1 -1
- package/dist/components/form/form-type-only.d.ts +174 -0
- package/dist/components/form/form-type-only.d.ts.map +1 -0
- package/dist/components/form/form-type-only.js +2 -0
- package/dist/components/form/form-type-only.js.map +1 -0
- package/dist/components/form/index.d.ts +3 -1
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +104 -30
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/form/password-field.d.ts.map +1 -1
- package/dist/components/form/password-field.js +5 -3
- package/dist/components/form/password-field.js.map +1 -1
- package/dist/components/form/text-area.d.ts.map +1 -1
- package/dist/components/form/text-area.js +5 -3
- package/dist/components/form/text-area.js.map +1 -1
- package/dist/components/form/text-field.d.ts.map +1 -1
- package/dist/components/form/text-field.js +6 -4
- package/dist/components/form/text-field.js.map +1 -1
- package/dist/components/form/types.d.ts +5 -0
- package/dist/components/form/types.d.ts.map +1 -1
- package/dist/components/form/use-form-handling.d.ts +4 -0
- package/dist/components/form/use-form-handling.d.ts.map +1 -0
- package/dist/components/form/use-form-handling.js +37 -0
- package/dist/components/form/use-form-handling.js.map +1 -0
- package/dist/components/form/with-left-border.d.ts +2 -1
- package/dist/components/form/with-left-border.d.ts.map +1 -1
- package/dist/components/form/with-left-border.js +27 -3
- package/dist/components/form/with-left-border.js.map +1 -1
- package/dist/components/icon.d.ts +1 -0
- package/dist/components/icon.d.ts.map +1 -1
- package/dist/components/icon.js +24 -8
- package/dist/components/icon.js.map +1 -1
- package/dist/components/list.d.ts +2 -2
- package/dist/components/list.d.ts.map +1 -1
- package/dist/components/list.js +155 -70
- package/dist/components/list.js.map +1 -1
- package/dist/components/loading-bar.d.ts.map +1 -1
- package/dist/components/loading-bar.js +2 -2
- package/dist/components/loading-bar.js.map +1 -1
- package/dist/components/loading-text.d.ts +8 -0
- package/dist/components/loading-text.d.ts.map +1 -0
- package/dist/components/loading-text.js +58 -0
- package/dist/components/loading-text.js.map +1 -0
- package/dist/descendants.js +1 -1
- package/dist/descendants.js.map +1 -1
- package/dist/dev-ui.d.ts +7 -0
- package/dist/dev-ui.d.ts.map +1 -0
- package/dist/dev-ui.js +118 -0
- package/dist/dev-ui.js.map +1 -0
- package/dist/environment.d.ts +63 -0
- package/dist/environment.d.ts.map +1 -0
- package/dist/environment.js +189 -0
- package/dist/environment.js.map +1 -0
- package/dist/examples/datepicker.d.ts +2 -0
- package/dist/examples/datepicker.d.ts.map +1 -0
- package/dist/examples/datepicker.js +344 -0
- package/dist/examples/datepicker.js.map +1 -0
- package/dist/examples/file-autocomplete.vitest.d.ts +2 -0
- package/dist/examples/file-autocomplete.vitest.d.ts.map +1 -0
- package/dist/examples/file-autocomplete.vitest.js +223 -0
- package/dist/examples/file-autocomplete.vitest.js.map +1 -0
- package/dist/examples/form-basic-arrow-keys.vitest.d.ts +2 -0
- package/dist/examples/form-basic-arrow-keys.vitest.d.ts.map +1 -0
- package/dist/examples/form-basic-arrow-keys.vitest.js +46 -0
- package/dist/examples/form-basic-arrow-keys.vitest.js.map +1 -0
- package/dist/examples/form-basic.vitest.d.ts +2 -0
- package/dist/examples/form-basic.vitest.d.ts.map +1 -0
- package/dist/examples/form-basic.vitest.js +630 -0
- package/dist/examples/form-basic.vitest.js.map +1 -0
- package/dist/examples/form-dropdown-with-sections.d.ts +2 -0
- package/dist/examples/form-dropdown-with-sections.d.ts.map +1 -0
- package/dist/examples/form-dropdown-with-sections.js +13 -0
- package/dist/examples/form-dropdown-with-sections.js.map +1 -0
- package/dist/examples/form-dropdown-with-sections.vitest.d.ts +2 -0
- package/dist/examples/form-dropdown-with-sections.vitest.d.ts.map +1 -0
- package/dist/examples/form-dropdown-with-sections.vitest.js +75 -0
- package/dist/examples/form-dropdown-with-sections.vitest.js.map +1 -0
- package/dist/examples/form-dropdown.vitest.d.ts +2 -0
- package/dist/examples/form-dropdown.vitest.d.ts.map +1 -0
- package/dist/examples/form-dropdown.vitest.js +854 -0
- package/dist/examples/form-dropdown.vitest.js.map +1 -0
- package/dist/examples/form-multiselect-dropdown.d.ts +2 -0
- package/dist/examples/form-multiselect-dropdown.d.ts.map +1 -0
- package/dist/examples/form-multiselect-dropdown.js +13 -0
- package/dist/examples/form-multiselect-dropdown.js.map +1 -0
- package/dist/examples/form-scroll.d.ts.map +1 -1
- package/dist/examples/form-scroll.js +7 -1
- package/dist/examples/form-scroll.js.map +1 -1
- package/dist/examples/form-scroll.vitest.d.ts +2 -0
- package/dist/examples/form-scroll.vitest.d.ts.map +1 -0
- package/dist/examples/form-scroll.vitest.js +211 -0
- package/dist/examples/form-scroll.vitest.js.map +1 -0
- package/dist/examples/form-tagpicker.vitest.d.ts +2 -0
- package/dist/examples/form-tagpicker.vitest.d.ts.map +1 -0
- package/dist/examples/form-tagpicker.vitest.js +736 -0
- package/dist/examples/form-tagpicker.vitest.js.map +1 -0
- package/dist/examples/internal/descendants-filtering.js +1 -1
- package/dist/examples/internal/descendants-filtering.js.map +1 -1
- package/dist/examples/internal/descendants.js +1 -1
- package/dist/examples/internal/descendants.js.map +1 -1
- package/dist/examples/internal/nested-boxes.d.ts +2 -0
- package/dist/examples/internal/nested-boxes.d.ts.map +1 -0
- package/dist/examples/internal/nested-boxes.js +7 -0
- package/dist/examples/internal/nested-boxes.js.map +1 -0
- package/dist/examples/internal/rhf-custom-ref.js +2 -2
- package/dist/examples/internal/rhf-custom-ref.js.map +1 -1
- package/dist/examples/internal/scrollbox-demo.js +3 -22
- package/dist/examples/internal/scrollbox-demo.js.map +1 -1
- package/dist/examples/internal/scrollbox-descendants.d.ts +2 -0
- package/dist/examples/internal/scrollbox-descendants.d.ts.map +1 -0
- package/dist/examples/internal/scrollbox-descendants.js +83 -0
- package/dist/examples/internal/scrollbox-descendants.js.map +1 -0
- package/dist/examples/internal/scrollbox-with-descendants.js +4 -8
- package/dist/examples/internal/scrollbox-with-descendants.js.map +1 -1
- package/dist/examples/internal/simple-scrollbox.vitest.d.ts +2 -0
- package/dist/examples/internal/simple-scrollbox.vitest.d.ts.map +1 -0
- package/dist/examples/internal/simple-scrollbox.vitest.js +96 -0
- package/dist/examples/internal/simple-scrollbox.vitest.js.map +1 -0
- package/dist/examples/internal/unicode-square-repro.d.ts +2 -0
- package/dist/examples/internal/unicode-square-repro.d.ts.map +1 -0
- package/dist/examples/internal/unicode-square-repro.js +7 -0
- package/dist/examples/internal/unicode-square-repro.js.map +1 -0
- package/dist/examples/list-detail-metadata.d.ts +2 -0
- package/dist/examples/list-detail-metadata.d.ts.map +1 -0
- package/dist/examples/list-detail-metadata.js +8 -0
- package/dist/examples/list-detail-metadata.js.map +1 -0
- package/dist/examples/list-dropdown-default.vitest.d.ts +2 -0
- package/dist/examples/list-dropdown-default.vitest.d.ts.map +1 -0
- package/dist/examples/list-dropdown-default.vitest.js +234 -0
- package/dist/examples/list-dropdown-default.vitest.js.map +1 -0
- package/dist/examples/list-fetch-data.vitest.d.ts +2 -0
- package/dist/examples/list-fetch-data.vitest.d.ts.map +1 -0
- package/dist/examples/list-fetch-data.vitest.js +111 -0
- package/dist/examples/list-fetch-data.vitest.js.map +1 -0
- package/dist/examples/list-filter-navigation.d.ts +2 -0
- package/dist/examples/list-filter-navigation.d.ts.map +1 -0
- package/dist/examples/list-filter-navigation.js +8 -0
- package/dist/examples/list-filter-navigation.js.map +1 -0
- package/dist/examples/list-scrollbox.vitest.d.ts +2 -0
- package/dist/examples/list-scrollbox.vitest.d.ts.map +1 -0
- package/dist/examples/list-scrollbox.vitest.js +93 -0
- package/dist/examples/list-scrollbox.vitest.js.map +1 -0
- package/dist/examples/list-with-detail-long.d.ts +2 -0
- package/dist/examples/list-with-detail-long.d.ts.map +1 -0
- package/dist/examples/list-with-detail-long.js +53 -0
- package/dist/examples/list-with-detail-long.js.map +1 -0
- package/dist/examples/list-with-detail.vitest.d.ts +2 -0
- package/dist/examples/list-with-detail.vitest.d.ts.map +1 -0
- package/dist/examples/list-with-detail.vitest.js +434 -0
- package/dist/examples/list-with-detail.vitest.js.map +1 -0
- package/dist/examples/list-with-dropdown.vitest.d.ts +2 -0
- package/dist/examples/list-with-dropdown.vitest.d.ts.map +1 -0
- package/dist/examples/list-with-dropdown.vitest.js +337 -0
- package/dist/examples/list-with-dropdown.vitest.js.map +1 -0
- package/dist/examples/list-with-sections.js +5 -1
- package/dist/examples/list-with-sections.js.map +1 -1
- package/dist/examples/list-with-sections.vitest.d.ts +2 -0
- package/dist/examples/list-with-sections.vitest.d.ts.map +1 -0
- package/dist/examples/list-with-sections.vitest.js +601 -0
- package/dist/examples/list-with-sections.vitest.js.map +1 -0
- package/dist/examples/scrollbox-vertical-centering.d.ts +6 -0
- package/dist/examples/scrollbox-vertical-centering.d.ts.map +1 -0
- package/dist/examples/scrollbox-vertical-centering.js +17 -0
- package/dist/examples/scrollbox-vertical-centering.js.map +1 -0
- package/dist/examples/simple-file-picker.vitest.d.ts +2 -0
- package/dist/examples/simple-file-picker.vitest.d.ts.map +1 -0
- package/dist/examples/simple-file-picker.vitest.js +678 -0
- package/dist/examples/simple-file-picker.vitest.js.map +1 -0
- package/dist/examples/simple-grid.vitest.d.ts +2 -0
- package/dist/examples/simple-grid.vitest.d.ts.map +1 -0
- package/dist/examples/simple-grid.vitest.js +521 -0
- package/dist/examples/simple-grid.vitest.js.map +1 -0
- package/dist/examples/simple-navigation.js +10 -4
- package/dist/examples/simple-navigation.js.map +1 -1
- package/dist/examples/simple-navigation.vitest.d.ts +2 -0
- package/dist/examples/simple-navigation.vitest.d.ts.map +1 -0
- package/dist/examples/simple-navigation.vitest.js +718 -0
- package/dist/examples/simple-navigation.vitest.js.map +1 -0
- package/dist/examples/store.vitest.d.ts +2 -0
- package/dist/examples/store.vitest.d.ts.map +1 -0
- package/dist/examples/store.vitest.js +69 -0
- package/dist/examples/store.vitest.js.map +1 -0
- package/dist/examples/toast-variations.d.ts +2 -0
- package/dist/examples/toast-variations.d.ts.map +1 -0
- package/dist/examples/toast-variations.js +122 -0
- package/dist/examples/toast-variations.js.map +1 -0
- package/dist/extensions/dev.d.ts +4 -2
- package/dist/extensions/dev.d.ts.map +1 -1
- package/dist/extensions/dev.js +61 -10
- package/dist/extensions/dev.js.map +1 -1
- package/dist/extensions/dev.vitest.d.ts +2 -0
- package/dist/extensions/dev.vitest.d.ts.map +1 -0
- package/dist/extensions/dev.vitest.js +197 -0
- package/dist/extensions/dev.vitest.js.map +1 -0
- package/dist/extensions/home.d.ts.map +1 -1
- package/dist/extensions/home.js +3 -0
- package/dist/extensions/home.js.map +1 -1
- package/dist/home-command.d.ts +8 -0
- package/dist/home-command.d.ts.map +1 -0
- package/dist/home-command.js +181 -0
- package/dist/home-command.js.map +1 -0
- package/dist/hover-repro.d.ts +2 -0
- package/dist/hover-repro.d.ts.map +1 -0
- package/dist/hover-repro.js +20 -0
- package/dist/hover-repro.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/dialog.d.ts +1 -0
- package/dist/internal/dialog.d.ts.map +1 -1
- package/dist/internal/dialog.js +27 -18
- package/dist/internal/dialog.js.map +1 -1
- package/dist/internal/navigation.d.ts +9 -1
- package/dist/internal/navigation.d.ts.map +1 -1
- package/dist/internal/navigation.js +5 -5
- package/dist/internal/navigation.js.map +1 -1
- package/dist/internal/offscreen.d.ts +6 -0
- package/dist/internal/offscreen.d.ts.map +1 -0
- package/dist/internal/offscreen.js +10 -0
- package/dist/internal/offscreen.js.map +1 -0
- package/dist/internal/providers.d.ts.map +1 -1
- package/dist/internal/providers.js +2 -2
- package/dist/internal/providers.js.map +1 -1
- package/dist/internal/scrollbox.d.ts +1 -10
- package/dist/internal/scrollbox.d.ts.map +1 -1
- package/dist/internal/scrollbox.js +2 -1
- package/dist/internal/scrollbox.js.map +1 -1
- package/dist/localstorage.d.ts +13 -0
- package/dist/localstorage.d.ts.map +1 -0
- package/dist/localstorage.js +190 -0
- package/dist/localstorage.js.map +1 -0
- package/dist/oauth.d.ts +142 -0
- package/dist/oauth.d.ts.map +1 -0
- package/dist/oauth.js +551 -0
- package/dist/oauth.js.map +1 -0
- package/dist/preferences.d.ts +23 -0
- package/dist/preferences.d.ts.map +1 -0
- package/dist/preferences.js +105 -0
- package/dist/preferences.js.map +1 -0
- package/dist/release.d.ts +1 -1
- package/dist/release.d.ts.map +1 -1
- package/dist/release.js +29 -33
- package/dist/release.js.map +1 -1
- package/dist/state.d.ts +2 -0
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +3 -0
- package/dist/state.js.map +1 -1
- package/dist/store.d.ts +21 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +84 -0
- package/dist/store.js.map +1 -0
- package/dist/swift-loader.d.ts +3 -0
- package/dist/swift-loader.d.ts.map +1 -0
- package/dist/swift-loader.js +193 -0
- package/dist/swift-loader.js.map +1 -0
- package/dist/swift-runtime.d.ts +2 -0
- package/dist/swift-runtime.d.ts.map +1 -0
- package/dist/swift-runtime.js +27 -0
- package/dist/swift-runtime.js.map +1 -0
- package/dist/toast.d.ts +44 -0
- package/dist/toast.d.ts.map +1 -0
- package/dist/toast.js +221 -0
- package/dist/toast.js.map +1 -0
- package/dist/utils/file-system.d.ts +9 -0
- package/dist/utils/file-system.d.ts.map +1 -1
- package/dist/utils/file-system.js +49 -0
- package/dist/utils/file-system.js.map +1 -1
- package/dist/utils/run-command.d.ts +26 -1
- package/dist/utils/run-command.d.ts.map +1 -1
- package/dist/utils/run-command.js +53 -4
- package/dist/utils/run-command.js.map +1 -1
- package/dist/window.d.ts +12 -0
- package/dist/window.d.ts.map +1 -0
- package/dist/window.js +48 -0
- package/dist/window.js.map +1 -0
- package/package.json +12 -12
- package/src/apis/browser-extension.tsx +29 -0
- package/src/apis/localstorage.test.ts +14 -6
- package/src/apis/localstorage.tsx +8 -5
- package/src/apis/oauth.tsx +5 -1
- package/src/apis/preferences.tsx +48 -22
- package/src/apis/toast.tsx +37 -62
- package/src/build.test.tsx +52 -0
- package/src/build.tsx +3 -1
- package/src/cli.tsx +99 -48
- package/src/compile.tsx +32 -11
- package/src/components/actions.tsx +94 -32
- package/src/components/detail.tsx +4 -0
- package/src/components/dropdown.tsx +47 -14
- package/src/components/extension-preferences.tsx +44 -16
- package/src/components/form/checkbox.tsx +12 -6
- package/src/components/form/date-picker.tsx +12 -6
- package/src/components/form/description.tsx +7 -2
- package/src/components/form/dropdown.tsx +131 -119
- package/src/components/form/file-autocomplete.tsx +90 -108
- package/src/components/form/file-picker.tsx +54 -43
- package/src/components/form/form-end.tsx +23 -2
- package/src/components/form/index.tsx +168 -41
- package/src/components/form/password-field.tsx +12 -6
- package/src/components/form/text-area.tsx +13 -6
- package/src/components/form/text-field.tsx +13 -6
- package/src/components/form/types.tsx +6 -0
- package/src/components/form/with-left-border.tsx +41 -8
- package/src/components/icon.tsx +27 -8
- package/src/components/list.tsx +243 -101
- package/src/components/loading-bar.tsx +3 -2
- package/src/components/loading-text.tsx +79 -0
- package/src/descendants.tsx +1 -0
- package/src/examples/file-autocomplete.vitest.tsx +130 -125
- package/src/examples/form-basic.vitest.tsx +376 -176
- package/src/examples/form-dropdown.vitest.tsx +126 -126
- package/src/examples/form-scroll.tsx +2 -0
- package/src/examples/form-scroll.vitest.tsx +58 -58
- package/src/examples/form-tagpicker.vitest.tsx +99 -99
- package/src/examples/internal/descendants-filtering.tsx +1 -0
- package/src/examples/internal/descendants.tsx +1 -0
- package/src/examples/internal/rhf-custom-ref.tsx +2 -0
- package/src/examples/internal/scrollbox-demo.tsx +3 -27
- package/src/examples/internal/scrollbox-with-descendants.tsx +4 -7
- package/src/examples/internal/simple-scrollbox.vitest.tsx +7 -5
- package/src/examples/list-detail-metadata.tsx +49 -0
- package/src/examples/list-detail-metadata.vitest.tsx +88 -0
- package/src/examples/list-dropdown-default.vitest.tsx +51 -51
- package/src/examples/list-fetch-data.vitest.tsx +4 -4
- package/src/examples/list-scrollbox.vitest.tsx +73 -14
- package/src/examples/list-with-detail-long.tsx +70 -0
- package/src/examples/list-with-detail.vitest.tsx +191 -85
- package/src/examples/list-with-dropdown.vitest.tsx +53 -53
- package/src/examples/list-with-sections.tsx +1 -0
- package/src/examples/list-with-sections.vitest.tsx +221 -97
- package/src/examples/list-with-toast.vitest.tsx +16 -16
- package/src/examples/simple-file-picker.vitest.tsx +63 -469
- package/src/examples/simple-grid.vitest.tsx +238 -233
- package/src/examples/simple-navigation.tsx +15 -7
- package/src/examples/simple-navigation.vitest.tsx +130 -219
- package/src/examples/store.vitest.tsx +1 -1
- package/src/examples/swift-extension.vitest.tsx +148 -0
- package/src/examples/synonyms.vitest.tsx +159 -0
- package/src/examples/toast-variations.tsx +150 -0
- package/src/examples/toast-variations.vitest.tsx +370 -0
- package/src/extensions/dev.tsx +74 -7
- package/src/extensions/dev.vitest.tsx +102 -34
- package/src/extensions/home.tsx +6 -0
- package/src/index.tsx +3 -0
- package/src/internal/dialog.tsx +43 -30
- package/src/internal/navigation.tsx +3 -1
- package/src/internal/offscreen.tsx +15 -0
- package/src/internal/providers.tsx +4 -2
- package/src/internal/scrollbox.tsx +4 -8
- package/src/keyboard.test.tsx +69 -0
- package/src/release.tsx +32 -38
- package/src/state.tsx +7 -0
- package/src/swift-loader.tsx +239 -0
- package/src/swift-runtime.tsx +36 -0
- package/src/utils/file-system.ts +61 -0
- package/src/utils/run-command.tsx +82 -6
|
@@ -0,0 +1,630 @@
|
|
|
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-basic.tsx'],
|
|
8
|
+
cols: 70,
|
|
9
|
+
rows: 50,
|
|
10
|
+
});
|
|
11
|
+
});
|
|
12
|
+
afterEach(() => {
|
|
13
|
+
session?.close();
|
|
14
|
+
});
|
|
15
|
+
test('form basic navigation and input', async () => {
|
|
16
|
+
await session.text({
|
|
17
|
+
waitFor: (text) => {
|
|
18
|
+
// wait for form to show up
|
|
19
|
+
return /Form Component Demo/i.test(text);
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
// Small delay to ensure all form components are rendered
|
|
23
|
+
await session.waitIdle();
|
|
24
|
+
const initialSnapshot = await session.text();
|
|
25
|
+
expect(initialSnapshot).toMatchInlineSnapshot(`
|
|
26
|
+
"
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
■ Form Component Demo █
|
|
30
|
+
┃ This demonstrates all available form input types. Use arrow █
|
|
31
|
+
┃ keys or Tab to navigate between fields.
|
|
32
|
+
┃
|
|
33
|
+
◇ Username
|
|
34
|
+
│ Enter your username
|
|
35
|
+
│
|
|
36
|
+
│ Required field
|
|
37
|
+
│
|
|
38
|
+
◇ Password
|
|
39
|
+
│ Enter secure password
|
|
40
|
+
│ Must be at least 8 characters
|
|
41
|
+
│
|
|
42
|
+
◇ Biography
|
|
43
|
+
│ Tell us about yourself...
|
|
44
|
+
│
|
|
45
|
+
│
|
|
46
|
+
│
|
|
47
|
+
│
|
|
48
|
+
│ Maximum 500 characters
|
|
49
|
+
│
|
|
50
|
+
◇ Email Preferences
|
|
51
|
+
│ ○ Subscribe to newsletter
|
|
52
|
+
│
|
|
53
|
+
│ Receive weekly updates
|
|
54
|
+
│
|
|
55
|
+
◇ Country
|
|
56
|
+
│ Select your country
|
|
57
|
+
│
|
|
58
|
+
│ Americas
|
|
59
|
+
│ ○ United States
|
|
60
|
+
│ ○ Canada
|
|
61
|
+
│ ○ Mexico
|
|
62
|
+
│ Europe
|
|
63
|
+
│ ○ United Kingdom
|
|
64
|
+
│ ↑↓ to see more options
|
|
65
|
+
│
|
|
66
|
+
│ Your country of residence
|
|
67
|
+
│
|
|
68
|
+
◇ Date of Birth
|
|
69
|
+
│
|
|
70
|
+
│ ← 2025 →
|
|
71
|
+
│ ← December →
|
|
72
|
+
│
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
ctrl ↵ submit ↑↓ navigate ^k actions"
|
|
76
|
+
`);
|
|
77
|
+
}, 10000);
|
|
78
|
+
test('password field always shows asterisks and submits real value', async () => {
|
|
79
|
+
await session.text({
|
|
80
|
+
waitFor: (text) => {
|
|
81
|
+
return /Form Component Demo/i.test(text);
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
// Tab to password field
|
|
85
|
+
await session.press('tab');
|
|
86
|
+
// Type password - should show asterisks
|
|
87
|
+
await session.type('secret123');
|
|
88
|
+
const passwordTypingSnapshot = await session.text({
|
|
89
|
+
waitFor: (text) => text.includes('*********'),
|
|
90
|
+
});
|
|
91
|
+
expect(passwordTypingSnapshot).toMatchInlineSnapshot(`
|
|
92
|
+
"
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
▪ Form Component Demo █
|
|
96
|
+
│ This demonstrates all available form input types. Use arrow █
|
|
97
|
+
│ keys or Tab to navigate between fields.
|
|
98
|
+
│
|
|
99
|
+
◇ Username
|
|
100
|
+
│ s
|
|
101
|
+
│
|
|
102
|
+
│ Required field
|
|
103
|
+
│
|
|
104
|
+
◆ Password
|
|
105
|
+
┃ ***************
|
|
106
|
+
┃ Must be at least 8 characters
|
|
107
|
+
┃
|
|
108
|
+
◇ Biography
|
|
109
|
+
│ Tell us about yourself...
|
|
110
|
+
│
|
|
111
|
+
│
|
|
112
|
+
│
|
|
113
|
+
│
|
|
114
|
+
│ Maximum 500 characters
|
|
115
|
+
│
|
|
116
|
+
◇ Email Preferences
|
|
117
|
+
│ ○ Subscribe to newsletter
|
|
118
|
+
│
|
|
119
|
+
│ Receive weekly updates
|
|
120
|
+
│
|
|
121
|
+
◇ Country
|
|
122
|
+
│ Select your country
|
|
123
|
+
│
|
|
124
|
+
│ Americas
|
|
125
|
+
│ ○ United States
|
|
126
|
+
│ ○ Canada
|
|
127
|
+
│ ○ Mexico
|
|
128
|
+
│ Europe
|
|
129
|
+
│ ○ United Kingdom
|
|
130
|
+
│ ↑↓ to see more options
|
|
131
|
+
│
|
|
132
|
+
│ Your country of residence
|
|
133
|
+
│
|
|
134
|
+
◇ Date of Birth
|
|
135
|
+
│
|
|
136
|
+
│ ← 2025 →
|
|
137
|
+
│ ← December →
|
|
138
|
+
│
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
ctrl ↵ submit ↑↓ navigate ^k actions"
|
|
142
|
+
`);
|
|
143
|
+
// Tab away - password should now show asterisks
|
|
144
|
+
await session.press('tab');
|
|
145
|
+
const passwordUnfocusedSnapshot = await session.text();
|
|
146
|
+
expect(passwordUnfocusedSnapshot).toMatchInlineSnapshot(`
|
|
147
|
+
"
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
▪ Form Component Demo █
|
|
151
|
+
│ This demonstrates all available form input types. Use arrow █
|
|
152
|
+
│ keys or Tab to navigate between fields.
|
|
153
|
+
│
|
|
154
|
+
◇ Username
|
|
155
|
+
│ s
|
|
156
|
+
│
|
|
157
|
+
│ Required field
|
|
158
|
+
│
|
|
159
|
+
◇ Password
|
|
160
|
+
│ ***************
|
|
161
|
+
│ Must be at least 8 characters
|
|
162
|
+
│
|
|
163
|
+
◆ Biography
|
|
164
|
+
┃ Tell us about yourself...
|
|
165
|
+
┃
|
|
166
|
+
┃
|
|
167
|
+
┃
|
|
168
|
+
┃
|
|
169
|
+
┃ Maximum 500 characters
|
|
170
|
+
┃
|
|
171
|
+
◇ Email Preferences
|
|
172
|
+
│ ○ Subscribe to newsletter
|
|
173
|
+
│
|
|
174
|
+
│ Receive weekly updates
|
|
175
|
+
│
|
|
176
|
+
◇ Country
|
|
177
|
+
│ Select your country
|
|
178
|
+
│
|
|
179
|
+
│ Americas
|
|
180
|
+
│ ○ United States
|
|
181
|
+
│ ○ Canada
|
|
182
|
+
│ ○ Mexico
|
|
183
|
+
│ Europe
|
|
184
|
+
│ ○ United Kingdom
|
|
185
|
+
│ ↑↓ to see more options
|
|
186
|
+
│
|
|
187
|
+
│ Your country of residence
|
|
188
|
+
│
|
|
189
|
+
◇ Date of Birth
|
|
190
|
+
│
|
|
191
|
+
│ ← 2025 →
|
|
192
|
+
│ ← December →
|
|
193
|
+
│
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
ctrl ↵ submit ↑↓ navigate ^k actions"
|
|
197
|
+
`);
|
|
198
|
+
// Submit form and check password value is real text not asterisks
|
|
199
|
+
await session.press(['ctrl', 'enter']);
|
|
200
|
+
await session.waitIdle();
|
|
201
|
+
// Scroll down to see submitted data
|
|
202
|
+
await session.scrollDown(10);
|
|
203
|
+
await session.scrollDown(10);
|
|
204
|
+
await session.scrollDown(10);
|
|
205
|
+
await session.scrollDown(10);
|
|
206
|
+
await session.scrollDown(10);
|
|
207
|
+
await session.scrollDown(10);
|
|
208
|
+
await session.scrollDown(10);
|
|
209
|
+
await session.scrollDown(200);
|
|
210
|
+
const submittedSnapshot = await session.text({
|
|
211
|
+
timeout: 3000,
|
|
212
|
+
waitFor: (text) => text.includes('"password"'),
|
|
213
|
+
});
|
|
214
|
+
expect(submittedSnapshot).toMatch(/"password": "s.+"/);
|
|
215
|
+
}, 10000);
|
|
216
|
+
test('form date picker selection with space and enter', async () => {
|
|
217
|
+
await session.text({
|
|
218
|
+
waitFor: (text) => {
|
|
219
|
+
return /Form Component Demo/i.test(text);
|
|
220
|
+
},
|
|
221
|
+
});
|
|
222
|
+
// Navigate to dropdown, then space to select first item which focuses date picker
|
|
223
|
+
// (This is what the dropdown test does and "Selected:" shows in that case)
|
|
224
|
+
await session.press('tab'); // -> password
|
|
225
|
+
await session.press('tab'); // -> bio
|
|
226
|
+
await session.press('tab'); // -> checkbox
|
|
227
|
+
await session.press('tab'); // -> dropdown
|
|
228
|
+
await session.press('tab'); // -> date picker
|
|
229
|
+
const datePickerFocusedSnapshot = await session.text();
|
|
230
|
+
expect(datePickerFocusedSnapshot).toMatchInlineSnapshot(`
|
|
231
|
+
"
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
▪ Form Component Demo █
|
|
235
|
+
│ This demonstrates all available form input types. Use arrow █
|
|
236
|
+
│ keys or Tab to navigate between fields.
|
|
237
|
+
│
|
|
238
|
+
◇ Username
|
|
239
|
+
│ Enter your username
|
|
240
|
+
│
|
|
241
|
+
│ Required field
|
|
242
|
+
│
|
|
243
|
+
◇ Password
|
|
244
|
+
│ Enter secure password
|
|
245
|
+
│ Must be at least 8 characters
|
|
246
|
+
│
|
|
247
|
+
◇ Biography
|
|
248
|
+
│ Tell us about yourself...
|
|
249
|
+
│
|
|
250
|
+
│
|
|
251
|
+
│
|
|
252
|
+
│
|
|
253
|
+
│ Maximum 500 characters
|
|
254
|
+
│
|
|
255
|
+
◇ Email Preferences
|
|
256
|
+
│ ○ Subscribe to newsletter
|
|
257
|
+
│
|
|
258
|
+
│ Receive weekly updates
|
|
259
|
+
│
|
|
260
|
+
◆ Country
|
|
261
|
+
┃ Select your country
|
|
262
|
+
┃
|
|
263
|
+
┃ Americas
|
|
264
|
+
┃› ○ United States
|
|
265
|
+
┃ ○ Canada
|
|
266
|
+
┃ ○ Mexico
|
|
267
|
+
┃ Europe
|
|
268
|
+
┃ ○ United Kingdom
|
|
269
|
+
┃ ↑↓ to see more options
|
|
270
|
+
┃
|
|
271
|
+
┃ Your country of residence
|
|
272
|
+
┃
|
|
273
|
+
◇ Date of Birth
|
|
274
|
+
│
|
|
275
|
+
│ ← 2025 →
|
|
276
|
+
│ ← December →
|
|
277
|
+
│
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
ctrl ↵ submit ↑↓ navigate ^k actions"
|
|
281
|
+
`);
|
|
282
|
+
// Select current date with space - should show "Selected:" text
|
|
283
|
+
await session.press('space');
|
|
284
|
+
const afterSpaceSelectSnapshot = await session.text();
|
|
285
|
+
expect(afterSpaceSelectSnapshot).toMatchInlineSnapshot(`
|
|
286
|
+
"
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
▪ Form Component Demo █
|
|
290
|
+
│ This demonstrates all available form input types. Use arrow █
|
|
291
|
+
│ keys or Tab to navigate between fields.
|
|
292
|
+
│
|
|
293
|
+
◇ Username
|
|
294
|
+
│ Enter your username
|
|
295
|
+
│
|
|
296
|
+
│ Required field
|
|
297
|
+
│
|
|
298
|
+
◇ Password
|
|
299
|
+
│ Enter secure password
|
|
300
|
+
│ Must be at least 8 characters
|
|
301
|
+
│
|
|
302
|
+
◇ Biography
|
|
303
|
+
│ Tell us about yourself...
|
|
304
|
+
│
|
|
305
|
+
│
|
|
306
|
+
│
|
|
307
|
+
│
|
|
308
|
+
│ Maximum 500 characters
|
|
309
|
+
│
|
|
310
|
+
◇ Email Preferences
|
|
311
|
+
│ ○ Subscribe to newsletter
|
|
312
|
+
│
|
|
313
|
+
│ Receive weekly updates
|
|
314
|
+
│
|
|
315
|
+
◆ Country
|
|
316
|
+
┃ United States
|
|
317
|
+
┃
|
|
318
|
+
┃ Americas
|
|
319
|
+
┃› ● United States
|
|
320
|
+
┃ ○ Canada
|
|
321
|
+
┃ ○ Mexico
|
|
322
|
+
┃ Europe
|
|
323
|
+
┃ ○ United Kingdom
|
|
324
|
+
┃ ↑↓ to see more options
|
|
325
|
+
┃
|
|
326
|
+
┃ Your country of residence
|
|
327
|
+
┃
|
|
328
|
+
◇ Date of Birth
|
|
329
|
+
│
|
|
330
|
+
│ ← 2025 →
|
|
331
|
+
│ ← December →
|
|
332
|
+
│
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
ctrl ↵ submit ↑↓ navigate ^k actions"
|
|
336
|
+
`);
|
|
337
|
+
// Navigate to a different day and select with enter
|
|
338
|
+
await session.press('right'); // move to next day
|
|
339
|
+
await session.press('enter');
|
|
340
|
+
const afterEnterSelectSnapshot = await session.text();
|
|
341
|
+
expect(afterEnterSelectSnapshot).toMatchInlineSnapshot(`
|
|
342
|
+
"
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
▪ Form Component Demo █
|
|
346
|
+
│ This demonstrates all available form input types. Use arrow █
|
|
347
|
+
│ keys or Tab to navigate between fields.
|
|
348
|
+
│
|
|
349
|
+
◇ Username
|
|
350
|
+
│ Enter your username
|
|
351
|
+
│
|
|
352
|
+
│ Required field
|
|
353
|
+
│
|
|
354
|
+
◇ Password
|
|
355
|
+
│ Enter secure password
|
|
356
|
+
│ Must be at least 8 characters
|
|
357
|
+
│
|
|
358
|
+
◇ Biography
|
|
359
|
+
│ Tell us about yourself...
|
|
360
|
+
│
|
|
361
|
+
│
|
|
362
|
+
│
|
|
363
|
+
│
|
|
364
|
+
│ Maximum 500 characters
|
|
365
|
+
│
|
|
366
|
+
◇ Email Preferences
|
|
367
|
+
│ ○ Subscribe to newsletter
|
|
368
|
+
│
|
|
369
|
+
│ Receive weekly updates
|
|
370
|
+
│
|
|
371
|
+
◆ Country
|
|
372
|
+
┃ United States
|
|
373
|
+
┃
|
|
374
|
+
┃ Americas
|
|
375
|
+
┃› ● United States
|
|
376
|
+
┃ ○ Canada
|
|
377
|
+
┃ ○ Mexico
|
|
378
|
+
┃ Europe
|
|
379
|
+
┃ ○ United Kingdom
|
|
380
|
+
┃ ↑↓ to see more options
|
|
381
|
+
┃
|
|
382
|
+
┃ Your country of residence
|
|
383
|
+
┃
|
|
384
|
+
◇ Date of Birth
|
|
385
|
+
│
|
|
386
|
+
│ ← 2025 →
|
|
387
|
+
│ ← December →
|
|
388
|
+
│
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
ctrl ↵ submit ↑↓ navigate ^k actions"
|
|
392
|
+
`);
|
|
393
|
+
}, 10000);
|
|
394
|
+
test('form dropdown navigation', async () => {
|
|
395
|
+
await session.text({
|
|
396
|
+
waitFor: (text) => {
|
|
397
|
+
// wait for form to show up
|
|
398
|
+
return /Form Component Demo/i.test(text);
|
|
399
|
+
},
|
|
400
|
+
});
|
|
401
|
+
// Navigate to dropdown
|
|
402
|
+
await session.press('tab'); // username
|
|
403
|
+
await session.press('tab'); // password
|
|
404
|
+
await session.press('tab'); // bio
|
|
405
|
+
await session.press('tab'); // checkbox
|
|
406
|
+
await session.press('tab'); // dropdown
|
|
407
|
+
// Navigate to dropdown area (already showing inline options)
|
|
408
|
+
await session.press('space');
|
|
409
|
+
const dropdownFocusedSnapshot = await session.text();
|
|
410
|
+
expect(dropdownFocusedSnapshot).toMatchInlineSnapshot(`
|
|
411
|
+
"
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
▪ Form Component Demo █
|
|
415
|
+
│ This demonstrates all available form input types. Use arrow █
|
|
416
|
+
│ keys or Tab to navigate between fields.
|
|
417
|
+
│
|
|
418
|
+
◇ Username
|
|
419
|
+
│ Enter your username
|
|
420
|
+
│
|
|
421
|
+
│ Required field
|
|
422
|
+
│
|
|
423
|
+
◇ Password
|
|
424
|
+
│ Enter secure password
|
|
425
|
+
│ Must be at least 8 characters
|
|
426
|
+
│
|
|
427
|
+
◇ Biography
|
|
428
|
+
│ Tell us about yourself...
|
|
429
|
+
│
|
|
430
|
+
│
|
|
431
|
+
│
|
|
432
|
+
│
|
|
433
|
+
│ Maximum 500 characters
|
|
434
|
+
│
|
|
435
|
+
◇ Email Preferences
|
|
436
|
+
│ ○ Subscribe to newsletter
|
|
437
|
+
│
|
|
438
|
+
│ Receive weekly updates
|
|
439
|
+
│
|
|
440
|
+
◆ Country
|
|
441
|
+
┃ United States
|
|
442
|
+
┃
|
|
443
|
+
┃ Americas
|
|
444
|
+
┃› ● United States
|
|
445
|
+
┃ ○ Canada
|
|
446
|
+
┃ ○ Mexico
|
|
447
|
+
┃ Europe
|
|
448
|
+
┃ ○ United Kingdom
|
|
449
|
+
┃ ↑↓ to see more options
|
|
450
|
+
┃
|
|
451
|
+
┃ Your country of residence
|
|
452
|
+
┃
|
|
453
|
+
◇ Date of Birth
|
|
454
|
+
│
|
|
455
|
+
│ ← 2025 →
|
|
456
|
+
│ ← December →
|
|
457
|
+
│
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
ctrl ↵ submit ↑↓ navigate ^k actions"
|
|
461
|
+
`);
|
|
462
|
+
// Navigate down in dropdown
|
|
463
|
+
await session.press('down');
|
|
464
|
+
const afterDownSnapshot = await session.text();
|
|
465
|
+
expect(afterDownSnapshot).toMatchInlineSnapshot(`
|
|
466
|
+
"
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
▪ Form Component Demo █
|
|
470
|
+
│ This demonstrates all available form input types. Use arrow █
|
|
471
|
+
│ keys or Tab to navigate between fields.
|
|
472
|
+
│
|
|
473
|
+
◇ Username
|
|
474
|
+
│ Enter your username
|
|
475
|
+
│
|
|
476
|
+
│ Required field
|
|
477
|
+
│
|
|
478
|
+
◇ Password
|
|
479
|
+
│ Enter secure password
|
|
480
|
+
│ Must be at least 8 characters
|
|
481
|
+
│
|
|
482
|
+
◇ Biography
|
|
483
|
+
│ Tell us about yourself...
|
|
484
|
+
│
|
|
485
|
+
│
|
|
486
|
+
│
|
|
487
|
+
│
|
|
488
|
+
│ Maximum 500 characters
|
|
489
|
+
│
|
|
490
|
+
◇ Email Preferences
|
|
491
|
+
│ ○ Subscribe to newsletter
|
|
492
|
+
│
|
|
493
|
+
│ Receive weekly updates
|
|
494
|
+
│
|
|
495
|
+
◆ Country
|
|
496
|
+
┃ United States
|
|
497
|
+
┃
|
|
498
|
+
┃ Americas
|
|
499
|
+
┃ ● United States
|
|
500
|
+
┃› ○ Canada
|
|
501
|
+
┃ ○ Mexico
|
|
502
|
+
┃ Europe
|
|
503
|
+
┃ ○ United Kingdom
|
|
504
|
+
┃ ↑↓ to see more options
|
|
505
|
+
┃
|
|
506
|
+
┃ Your country of residence
|
|
507
|
+
┃
|
|
508
|
+
◇ Date of Birth
|
|
509
|
+
│
|
|
510
|
+
│ ← 2025 →
|
|
511
|
+
│ ← December →
|
|
512
|
+
│
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
ctrl ↵ submit ↑↓ navigate ^k actions"
|
|
516
|
+
`);
|
|
517
|
+
// Navigate to Europe section
|
|
518
|
+
await session.press('down');
|
|
519
|
+
await session.press('down');
|
|
520
|
+
await session.press('down');
|
|
521
|
+
const europeSelectionSnapshot = await session.text();
|
|
522
|
+
expect(europeSelectionSnapshot).toMatchInlineSnapshot(`
|
|
523
|
+
"
|
|
524
|
+
|
|
525
|
+
|
|
526
|
+
▪ Form Component Demo █
|
|
527
|
+
│ This demonstrates all available form input types. Use arrow █
|
|
528
|
+
│ keys or Tab to navigate between fields.
|
|
529
|
+
│
|
|
530
|
+
◇ Username
|
|
531
|
+
│ Enter your username
|
|
532
|
+
│
|
|
533
|
+
│ Required field
|
|
534
|
+
│
|
|
535
|
+
◇ Password
|
|
536
|
+
│ Enter secure password
|
|
537
|
+
│ Must be at least 8 characters
|
|
538
|
+
│
|
|
539
|
+
◇ Biography
|
|
540
|
+
│ Tell us about yourself...
|
|
541
|
+
│
|
|
542
|
+
│
|
|
543
|
+
│
|
|
544
|
+
│
|
|
545
|
+
│ Maximum 500 characters
|
|
546
|
+
│
|
|
547
|
+
◇ Email Preferences
|
|
548
|
+
│ ○ Subscribe to newsletter
|
|
549
|
+
│
|
|
550
|
+
│ Receive weekly updates
|
|
551
|
+
│
|
|
552
|
+
◆ Country
|
|
553
|
+
┃ United States
|
|
554
|
+
┃
|
|
555
|
+
┃ Americas
|
|
556
|
+
┃ ○ Canada
|
|
557
|
+
┃ ○ Mexico
|
|
558
|
+
┃ Europe
|
|
559
|
+
┃ ○ United Kingdom
|
|
560
|
+
┃› ○ France
|
|
561
|
+
┃ ↑↓ to see more options
|
|
562
|
+
┃
|
|
563
|
+
┃ Your country of residence
|
|
564
|
+
┃
|
|
565
|
+
◇ Date of Birth
|
|
566
|
+
│
|
|
567
|
+
│ ← 2025 →
|
|
568
|
+
│ ← December →
|
|
569
|
+
│
|
|
570
|
+
|
|
571
|
+
|
|
572
|
+
ctrl ↵ submit ↑↓ navigate ^k actions"
|
|
573
|
+
`);
|
|
574
|
+
// Select France
|
|
575
|
+
await session.press('enter');
|
|
576
|
+
const afterFranceSelectSnapshot = await session.text();
|
|
577
|
+
expect(afterFranceSelectSnapshot).toMatchInlineSnapshot(`
|
|
578
|
+
"
|
|
579
|
+
|
|
580
|
+
|
|
581
|
+
▪ Form Component Demo █
|
|
582
|
+
│ This demonstrates all available form input types. Use arrow █
|
|
583
|
+
│ keys or Tab to navigate between fields.
|
|
584
|
+
│
|
|
585
|
+
◇ Username
|
|
586
|
+
│ Enter your username
|
|
587
|
+
│
|
|
588
|
+
│ Required field
|
|
589
|
+
│
|
|
590
|
+
◇ Password
|
|
591
|
+
│ Enter secure password
|
|
592
|
+
│ Must be at least 8 characters
|
|
593
|
+
│
|
|
594
|
+
◇ Biography
|
|
595
|
+
│ Tell us about yourself...
|
|
596
|
+
│
|
|
597
|
+
│
|
|
598
|
+
│
|
|
599
|
+
│
|
|
600
|
+
│ Maximum 500 characters
|
|
601
|
+
│
|
|
602
|
+
◇ Email Preferences
|
|
603
|
+
│ ○ Subscribe to newsletter
|
|
604
|
+
│
|
|
605
|
+
│ Receive weekly updates
|
|
606
|
+
│
|
|
607
|
+
◆ Country
|
|
608
|
+
┃ France
|
|
609
|
+
┃
|
|
610
|
+
┃ Americas
|
|
611
|
+
┃ ○ Canada
|
|
612
|
+
┃ ○ Mexico
|
|
613
|
+
┃ Europe
|
|
614
|
+
┃ ○ United Kingdom
|
|
615
|
+
┃› ● France
|
|
616
|
+
┃ ↑↓ to see more options
|
|
617
|
+
┃
|
|
618
|
+
┃ Your country of residence
|
|
619
|
+
┃
|
|
620
|
+
◇ Date of Birth
|
|
621
|
+
│
|
|
622
|
+
│ ← 2025 →
|
|
623
|
+
│ ← December →
|
|
624
|
+
│
|
|
625
|
+
|
|
626
|
+
|
|
627
|
+
ctrl ↵ submit ↑↓ navigate ^k actions"
|
|
628
|
+
`);
|
|
629
|
+
}, 10000);
|
|
630
|
+
//# sourceMappingURL=form-basic.vitest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-basic.vitest.js","sourceRoot":"","sources":["../../src/examples/form-basic.vitest.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-dropdown-with-sections.d.ts","sourceRoot":"","sources":["../../src/examples/form-dropdown-with-sections.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { renderWithProviders } from '@termcast/cli/src/utils';
|
|
4
|
+
import { Form, ActionPanel, Action } from '@termcast/cli';
|
|
5
|
+
function FormDropdownWithSectionsExample() {
|
|
6
|
+
const [submitted, setSubmitted] = useState(null);
|
|
7
|
+
const handleSubmit = (data) => {
|
|
8
|
+
setSubmitted(data);
|
|
9
|
+
};
|
|
10
|
+
return (_jsxs(Form, { actions: _jsx(ActionPanel, { children: _jsx(Action.SubmitForm, { title: 'Submit Form', onSubmit: handleSubmit }) }), children: [_jsx(Form.Description, { title: 'Dropdown With Sections Demo', text: 'Test dropdown with sections' }), _jsxs(Form.Dropdown, { id: 'fruit', title: 'Select Item', placeholder: 'Choose an item...', info: 'Items are grouped by category', children: [_jsxs(Form.Dropdown.Section, { title: 'Fruits', children: [_jsx(Form.Dropdown.Item, { value: 'apple', title: 'Apple', icon: '\uD83C\uDF4E' }), _jsx(Form.Dropdown.Item, { value: 'banana', title: 'Banana', icon: '\uD83C\uDF4C' }), _jsx(Form.Dropdown.Item, { value: 'orange', title: 'Orange', icon: '\uD83C\uDF4A' })] }), _jsxs(Form.Dropdown.Section, { title: 'Vegetables', children: [_jsx(Form.Dropdown.Item, { value: 'carrot', title: 'Carrot', icon: '\uD83E\uDD55' }), _jsx(Form.Dropdown.Item, { value: 'broccoli', title: 'Broccoli', icon: '\uD83E\uDD66' }), _jsx(Form.Dropdown.Item, { value: 'lettuce', title: 'Lettuce', icon: '\uD83E\uDD6C' })] }), _jsxs(Form.Dropdown.Section, { title: 'Dairy', children: [_jsx(Form.Dropdown.Item, { value: 'milk', title: 'Milk', icon: '\uD83E\uDD5B' }), _jsx(Form.Dropdown.Item, { value: 'cheese', title: 'Cheese', icon: '\uD83E\uDDC0' })] })] }), _jsxs(Form.Dropdown, { id: 'categories', title: 'Multiple Selection', placeholder: 'Select categories...', hasMultipleSelection: true, children: [_jsxs(Form.Dropdown.Section, { title: 'Programming', children: [_jsx(Form.Dropdown.Item, { value: 'js', title: 'JavaScript' }), _jsx(Form.Dropdown.Item, { value: 'ts', title: 'TypeScript' }), _jsx(Form.Dropdown.Item, { value: 'python', title: 'Python' })] }), _jsxs(Form.Dropdown.Section, { title: 'Frameworks', children: [_jsx(Form.Dropdown.Item, { value: 'react', title: 'React' }), _jsx(Form.Dropdown.Item, { value: 'vue', title: 'Vue' }), _jsx(Form.Dropdown.Item, { value: 'angular', title: 'Angular' })] })] }), submitted && (_jsx(Form.Description, { title: 'Submitted Data', text: JSON.stringify(submitted, null, 2) }))] }));
|
|
11
|
+
}
|
|
12
|
+
renderWithProviders(_jsx(FormDropdownWithSectionsExample, {}));
|
|
13
|
+
//# sourceMappingURL=form-dropdown-with-sections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-dropdown-with-sections.js","sourceRoot":"","sources":["../../src/examples/form-dropdown-with-sections.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-dropdown-with-sections.vitest.d.ts","sourceRoot":"","sources":["../../src/examples/form-dropdown-with-sections.vitest.tsx"],"names":[],"mappings":""}
|