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