termcast 1.3.21 → 1.3.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/build.d.ts.map +1 -1
- package/dist/build.js +2 -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 +67 -31
- 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.map +1 -1
- package/dist/compile.js +22 -5
- 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 +100 -28
- 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 +140 -62
- 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/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/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 +25 -1
- package/dist/utils/run-command.d.ts.map +1 -1
- package/dist/utils/run-command.js +47 -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 -10
- 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/build.test.tsx +52 -0
- package/src/build.tsx +2 -1
- package/src/cli.tsx +78 -37
- package/src/compile.tsx +22 -5
- 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 +152 -34
- 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 +193 -74
- 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 +198 -92
- 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 +213 -89
- package/src/examples/list-with-toast.vitest.tsx +4 -4
- package/src/examples/simple-file-picker.vitest.tsx +61 -471
- package/src/examples/simple-grid.vitest.tsx +238 -233
- package/src/examples/simple-navigation.tsx +15 -7
- package/src/examples/simple-navigation.vitest.tsx +121 -210
- 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/extensions/dev.tsx +74 -7
- package/src/extensions/dev.vitest.tsx +97 -31
- 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/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 +75 -6
|
@@ -6,9 +6,12 @@ import { Action, ActionPanel } from 'termcast'
|
|
|
6
6
|
import { useNavigation } from 'termcast/src/internal/navigation'
|
|
7
7
|
import { TermcastProvider } from 'termcast/src/internal/providers'
|
|
8
8
|
|
|
9
|
-
function
|
|
9
|
+
function GoBackAction(): any {
|
|
10
10
|
const { pop } = useNavigation()
|
|
11
|
+
return <Action title='Go Back' onAction={() => pop()} />
|
|
12
|
+
}
|
|
11
13
|
|
|
14
|
+
function DetailView({ title }: { title: string }): any {
|
|
12
15
|
return (
|
|
13
16
|
<List
|
|
14
17
|
searchBarPlaceholder='Detail view - Press ESC to go back'
|
|
@@ -21,7 +24,7 @@ function DetailView({ title }: { title: string }): any {
|
|
|
21
24
|
subtitle='Press Enter to go back or ESC to navigate back'
|
|
22
25
|
actions={
|
|
23
26
|
<ActionPanel>
|
|
24
|
-
<
|
|
27
|
+
<GoBackAction />
|
|
25
28
|
<Action.CopyToClipboard content={title} title='Copy Title' />
|
|
26
29
|
</ActionPanel>
|
|
27
30
|
}
|
|
@@ -31,9 +34,17 @@ function DetailView({ title }: { title: string }): any {
|
|
|
31
34
|
)
|
|
32
35
|
}
|
|
33
36
|
|
|
34
|
-
function
|
|
37
|
+
function OpenDetailsAction({ title }: { title: string }): any {
|
|
35
38
|
const { push } = useNavigation()
|
|
39
|
+
return (
|
|
40
|
+
<Action
|
|
41
|
+
title='Open Details'
|
|
42
|
+
onAction={() => push(<DetailView title={title} />)}
|
|
43
|
+
/>
|
|
44
|
+
)
|
|
45
|
+
}
|
|
36
46
|
|
|
47
|
+
function MainView(): any {
|
|
37
48
|
const items = [
|
|
38
49
|
{
|
|
39
50
|
id: 'first',
|
|
@@ -62,10 +73,7 @@ function MainView(): any {
|
|
|
62
73
|
subtitle={item.subtitle}
|
|
63
74
|
actions={
|
|
64
75
|
<ActionPanel>
|
|
65
|
-
<
|
|
66
|
-
title='Open Details'
|
|
67
|
-
onAction={() => push(<DetailView title={item.title} />)}
|
|
68
|
-
/>
|
|
76
|
+
<OpenDetailsAction title={item.title} />
|
|
69
77
|
<Action.CopyToClipboard
|
|
70
78
|
content={item.title}
|
|
71
79
|
title='Copy Title'
|
|
@@ -19,13 +19,14 @@ afterEach(() => {
|
|
|
19
19
|
test('navigation between main and detail views', async () => {
|
|
20
20
|
await session.text({
|
|
21
21
|
waitFor: (text) => {
|
|
22
|
-
// wait for main view to show up
|
|
23
|
-
return /Navigation Example/i.test(text)
|
|
22
|
+
// wait for main view with items to show up
|
|
23
|
+
return /Navigation Example/i.test(text) && /First Item/i.test(text)
|
|
24
24
|
},
|
|
25
25
|
})
|
|
26
26
|
|
|
27
|
-
//
|
|
27
|
+
// Ensure all items are rendered and registered
|
|
28
28
|
await session.waitIdle()
|
|
29
|
+
await new Promise((resolve) => setTimeout(resolve, 200))
|
|
29
30
|
|
|
30
31
|
const initialSnapshot = await session.text()
|
|
31
32
|
|
|
@@ -53,11 +54,12 @@ test('navigation between main and detail views', async () => {
|
|
|
53
54
|
|
|
54
55
|
|
|
55
56
|
|
|
56
|
-
↵
|
|
57
|
+
↵ open details ↑↓ navigate ^k actions"
|
|
57
58
|
`)
|
|
58
59
|
|
|
59
60
|
// Navigate to second item
|
|
60
61
|
await session.press('down')
|
|
62
|
+
await session.waitIdle()
|
|
61
63
|
|
|
62
64
|
const afterDownSnapshot = await session.text()
|
|
63
65
|
expect(afterDownSnapshot).toMatchInlineSnapshot(`
|
|
@@ -84,52 +86,19 @@ test('navigation between main and detail views', async () => {
|
|
|
84
86
|
|
|
85
87
|
|
|
86
88
|
|
|
87
|
-
↵
|
|
89
|
+
↵ open details ↑↓ navigate ^k actions"
|
|
88
90
|
`)
|
|
89
91
|
|
|
90
|
-
// Press Enter to open actions panel
|
|
91
|
-
await session.press('enter')
|
|
92
|
-
|
|
93
|
-
const actionsOpenSnapshot = await session.text()
|
|
94
|
-
expect(actionsOpenSnapshot).toMatchInlineSnapshot(`
|
|
95
|
-
"
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
Navigation Example ─────────────────────────────────────────────
|
|
99
|
-
|
|
100
|
-
Main view
|
|
101
|
-
|
|
102
|
-
Items
|
|
103
|
-
┃ ┃
|
|
104
|
-
┃ esc ┃
|
|
105
|
-
┃ ┃
|
|
106
|
-
┃ Search actions... ┃
|
|
107
|
-
┃ ┃
|
|
108
|
-
┃ ›Open Details ┃
|
|
109
|
-
┃ Copy Title ┃
|
|
110
|
-
┃ ┃
|
|
111
|
-
┃ ┃
|
|
112
|
-
┃ ┃
|
|
113
|
-
┃ ┃
|
|
114
|
-
┃ ┃
|
|
115
|
-
┃ ┃
|
|
116
|
-
┃ ┃
|
|
117
|
-
┃ ┃
|
|
118
|
-
┃ ┃
|
|
119
|
-
┃ ↵ select ↑↓ navigate ┃
|
|
120
|
-
┃ ┃"
|
|
121
|
-
`)
|
|
122
|
-
|
|
123
|
-
// Press Enter again to select "Open Details" action
|
|
92
|
+
// Press Enter to open actions panel (auto-executes first action)
|
|
124
93
|
await session.press('enter')
|
|
94
|
+
await session.waitIdle()
|
|
95
|
+
await new Promise((resolve) => setTimeout(resolve, 200))
|
|
125
96
|
|
|
126
|
-
const
|
|
127
|
-
waitFor: (text) =>
|
|
128
|
-
|
|
129
|
-
return /Detail: Second Item/i.test(text)
|
|
130
|
-
},
|
|
97
|
+
const actionsOpenSnapshot = await session.text({
|
|
98
|
+
waitFor: (text) => /Detail: Second Item/i.test(text),
|
|
99
|
+
timeout: 3000,
|
|
131
100
|
})
|
|
132
|
-
expect(
|
|
101
|
+
expect(actionsOpenSnapshot).toMatchInlineSnapshot(`
|
|
133
102
|
"
|
|
134
103
|
|
|
135
104
|
|
|
@@ -153,18 +122,22 @@ test('navigation between main and detail views', async () => {
|
|
|
153
122
|
|
|
154
123
|
|
|
155
124
|
|
|
156
|
-
↵
|
|
125
|
+
↵ go back ↑↓ navigate ^k actions"
|
|
157
126
|
`)
|
|
158
127
|
|
|
159
|
-
// Press
|
|
160
|
-
await session.press('
|
|
128
|
+
// Press Enter in detail view triggers "Go Back" action, returning to main view
|
|
129
|
+
await session.press('enter')
|
|
130
|
+
await session.waitIdle()
|
|
131
|
+
await new Promise((resolve) => setTimeout(resolve, 200))
|
|
161
132
|
|
|
162
133
|
const backToMainSnapshot = await session.text({
|
|
163
134
|
waitFor: (text) => {
|
|
164
|
-
// wait for main view to show up
|
|
165
|
-
return /
|
|
135
|
+
// wait for main view to show up after going back
|
|
136
|
+
return /Main view/i.test(text) && /Second Item/i.test(text)
|
|
166
137
|
},
|
|
138
|
+
timeout: 3000,
|
|
167
139
|
})
|
|
140
|
+
// After "Go Back" action, we should be back on main view
|
|
168
141
|
expect(backToMainSnapshot).toMatchInlineSnapshot(`
|
|
169
142
|
"
|
|
170
143
|
|
|
@@ -189,10 +162,10 @@ test('navigation between main and detail views', async () => {
|
|
|
189
162
|
|
|
190
163
|
|
|
191
164
|
|
|
192
|
-
↵
|
|
165
|
+
↵ open details ↑↓ navigate ^k actions"
|
|
193
166
|
`)
|
|
194
167
|
|
|
195
|
-
// Navigate down to third item
|
|
168
|
+
// Navigate down to third item
|
|
196
169
|
await session.press('down')
|
|
197
170
|
await session.press('down')
|
|
198
171
|
|
|
@@ -221,7 +194,7 @@ test('navigation between main and detail views', async () => {
|
|
|
221
194
|
|
|
222
195
|
|
|
223
196
|
|
|
224
|
-
↵
|
|
197
|
+
↵ open details ↑↓ navigate ^k actions"
|
|
225
198
|
`)
|
|
226
199
|
|
|
227
200
|
// Open action panel for third item
|
|
@@ -232,43 +205,6 @@ test('navigation between main and detail views', async () => {
|
|
|
232
205
|
"
|
|
233
206
|
|
|
234
207
|
|
|
235
|
-
Navigation Example ─────────────────────────────────────────────
|
|
236
|
-
|
|
237
|
-
Main view
|
|
238
|
-
|
|
239
|
-
Items
|
|
240
|
-
┃ ┃
|
|
241
|
-
┃ esc ┃
|
|
242
|
-
┃ ┃
|
|
243
|
-
┃ Search actions... ┃
|
|
244
|
-
┃ ┃
|
|
245
|
-
┃ ›Open Details ┃
|
|
246
|
-
┃ Copy Title ┃
|
|
247
|
-
┃ ┃
|
|
248
|
-
┃ ┃
|
|
249
|
-
┃ ┃
|
|
250
|
-
┃ ┃
|
|
251
|
-
┃ ┃
|
|
252
|
-
┃ ┃
|
|
253
|
-
┃ ┃
|
|
254
|
-
┃ ┃
|
|
255
|
-
┃ ┃
|
|
256
|
-
┃ ↵ select ↑↓ navigate ┃
|
|
257
|
-
┃ ┃"
|
|
258
|
-
`)
|
|
259
|
-
|
|
260
|
-
// Navigate to detail
|
|
261
|
-
await session.press('enter')
|
|
262
|
-
|
|
263
|
-
const thirdDetailSnapshot = await session.text({
|
|
264
|
-
waitFor: (text) => {
|
|
265
|
-
return /Detail: Third Item/i.test(text)
|
|
266
|
-
},
|
|
267
|
-
})
|
|
268
|
-
expect(thirdDetailSnapshot).toMatchInlineSnapshot(`
|
|
269
|
-
"
|
|
270
|
-
|
|
271
|
-
|
|
272
208
|
Detail: Third Item ─────────────────────────────────────────────
|
|
273
209
|
|
|
274
210
|
Detail view - Press ESC to go back
|
|
@@ -289,49 +225,18 @@ test('navigation between main and detail views', async () => {
|
|
|
289
225
|
|
|
290
226
|
|
|
291
227
|
|
|
292
|
-
↵
|
|
228
|
+
↵ go back ↑↓ navigate ^k actions"
|
|
293
229
|
`)
|
|
294
230
|
|
|
295
|
-
//
|
|
296
|
-
await session.press('enter')
|
|
297
|
-
|
|
298
|
-
const thirdDetailActionsSnapshot = await session.text()
|
|
299
|
-
expect(thirdDetailActionsSnapshot).toMatchInlineSnapshot(`
|
|
300
|
-
"
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
Detail: Third Item ─────────────────────────────────────────────
|
|
304
|
-
|
|
305
|
-
Detail view - Press ESC to go back
|
|
306
|
-
|
|
307
|
-
Details
|
|
308
|
-
┃ ┃
|
|
309
|
-
┃ esc ┃
|
|
310
|
-
┃ ┃
|
|
311
|
-
┃ Search actions... ┃
|
|
312
|
-
┃ ┃
|
|
313
|
-
┃ ›Go Back ┃
|
|
314
|
-
┃ Copy Title ┃
|
|
315
|
-
┃ ┃
|
|
316
|
-
┃ ┃
|
|
317
|
-
┃ ┃
|
|
318
|
-
┃ ┃
|
|
319
|
-
┃ ┃
|
|
320
|
-
┃ ┃
|
|
321
|
-
┃ ┃
|
|
322
|
-
┃ ┃
|
|
323
|
-
┃ ┃
|
|
324
|
-
┃ ↵ select ↑↓ navigate ┃
|
|
325
|
-
┃ ┃"
|
|
326
|
-
`)
|
|
327
|
-
|
|
328
|
-
// Select "Go Back" action
|
|
231
|
+
// Press enter in detail view triggers "Go Back" action, returning to main view
|
|
329
232
|
await session.press('enter')
|
|
233
|
+
await session.waitIdle()
|
|
330
234
|
|
|
331
235
|
const backFromThirdSnapshot = await session.text({
|
|
332
236
|
waitFor: (text) => {
|
|
333
|
-
return /
|
|
237
|
+
return /Main view/i.test(text)
|
|
334
238
|
},
|
|
239
|
+
timeout: 3000,
|
|
335
240
|
})
|
|
336
241
|
expect(backFromThirdSnapshot).toMatchInlineSnapshot(`
|
|
337
242
|
"
|
|
@@ -357,7 +262,7 @@ test('navigation between main and detail views', async () => {
|
|
|
357
262
|
|
|
358
263
|
|
|
359
264
|
|
|
360
|
-
↵
|
|
265
|
+
↵ open details ↑↓ navigate ^k actions"
|
|
361
266
|
`)
|
|
362
267
|
}, 15000)
|
|
363
268
|
|
|
@@ -377,29 +282,29 @@ test('navigation with actions panel', async () => {
|
|
|
377
282
|
"
|
|
378
283
|
|
|
379
284
|
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
285
|
+
Navigation Example ─────────────────────────────────────────────
|
|
286
|
+
|
|
287
|
+
Main view
|
|
288
|
+
|
|
289
|
+
Items
|
|
290
|
+
›First Item Navigate to first detail
|
|
291
|
+
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
292
|
+
┃
|
|
293
|
+
┃ esc
|
|
294
|
+
┃
|
|
295
|
+
┃ Search actions...
|
|
296
|
+
┃
|
|
297
|
+
┃ ›Open Details
|
|
298
|
+
┃ Copy Title
|
|
299
|
+
┃
|
|
300
|
+
┃
|
|
301
|
+
┃
|
|
302
|
+
┃
|
|
303
|
+
┃
|
|
304
|
+
┃
|
|
305
|
+
┃
|
|
306
|
+
┃
|
|
307
|
+
┃"
|
|
403
308
|
`)
|
|
404
309
|
|
|
405
310
|
// Navigate down in actions panel
|
|
@@ -410,29 +315,29 @@ test('navigation with actions panel', async () => {
|
|
|
410
315
|
"
|
|
411
316
|
|
|
412
317
|
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
318
|
+
Navigation Example ─────────────────────────────────────────────
|
|
319
|
+
|
|
320
|
+
Main view
|
|
321
|
+
|
|
322
|
+
Items
|
|
323
|
+
›First Item Navigate to first detail
|
|
324
|
+
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
325
|
+
┃
|
|
326
|
+
┃ esc
|
|
327
|
+
┃
|
|
328
|
+
┃ Search actions...
|
|
329
|
+
┃
|
|
330
|
+
┃ Open Details
|
|
331
|
+
┃ ›Copy Title
|
|
332
|
+
┃
|
|
333
|
+
┃
|
|
334
|
+
┃
|
|
335
|
+
┃
|
|
336
|
+
┃
|
|
337
|
+
┃
|
|
338
|
+
┃
|
|
339
|
+
┃
|
|
340
|
+
┃"
|
|
436
341
|
`)
|
|
437
342
|
|
|
438
343
|
// Select the Copy Title action
|
|
@@ -463,15 +368,21 @@ test('navigation with actions panel', async () => {
|
|
|
463
368
|
|
|
464
369
|
|
|
465
370
|
|
|
466
|
-
↵
|
|
371
|
+
↵ open detail┌────────────────────────────────────┐
|
|
467
372
|
│ ✓ Copied to Clipboard - First Item │
|
|
468
373
|
└────────────────────────────────────┘"
|
|
469
374
|
`)
|
|
470
375
|
|
|
471
|
-
//
|
|
376
|
+
// Wait for toast to clear, then navigate to second item
|
|
377
|
+
await new Promise((resolve) => setTimeout(resolve, 500))
|
|
378
|
+
|
|
472
379
|
await session.press('down')
|
|
380
|
+
await session.waitIdle()
|
|
381
|
+
await new Promise((resolve) => setTimeout(resolve, 200))
|
|
382
|
+
|
|
473
383
|
await session.press('enter')
|
|
474
|
-
await session.
|
|
384
|
+
await session.waitIdle()
|
|
385
|
+
await new Promise((resolve) => setTimeout(resolve, 200))
|
|
475
386
|
|
|
476
387
|
const secondDetailSnapshot = await session.text({
|
|
477
388
|
waitFor: (text) => {
|
|
@@ -502,7 +413,7 @@ test('navigation with actions panel', async () => {
|
|
|
502
413
|
|
|
503
414
|
|
|
504
415
|
|
|
505
|
-
↵
|
|
416
|
+
↵ go back ↑↓┌────────────────────────────────────┐
|
|
506
417
|
│ ✓ Copied to Clipboard - First Item │
|
|
507
418
|
└────────────────────────────────────┘"
|
|
508
419
|
`)
|
|
@@ -515,29 +426,29 @@ test('navigation with actions panel', async () => {
|
|
|
515
426
|
"
|
|
516
427
|
|
|
517
428
|
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
429
|
+
Detail: Second Item ────────────────────────────────────────────
|
|
430
|
+
|
|
431
|
+
Detail view - Press ESC to go back
|
|
432
|
+
|
|
433
|
+
Details
|
|
434
|
+
›This is the detail view for Second Item Press Enter to go back
|
|
435
|
+
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
436
|
+
┃
|
|
437
|
+
┃ esc
|
|
438
|
+
┃
|
|
439
|
+
┃ Search actions...
|
|
440
|
+
┃
|
|
441
|
+
┃ ›Go Back
|
|
442
|
+
┃ Copy Title
|
|
443
|
+
┃
|
|
444
|
+
┃
|
|
445
|
+
┃
|
|
446
|
+
┃
|
|
447
|
+
┃
|
|
448
|
+
┃
|
|
449
|
+
┃ ┌────────────────────────────────────┐
|
|
450
|
+
┃ │ ✓ Copied to Clipboard - First Item │
|
|
451
|
+
┃ └────────────────────────────────────┘"
|
|
541
452
|
`)
|
|
542
453
|
|
|
543
454
|
// Select Go Back action
|
|
@@ -572,7 +483,7 @@ test('navigation with actions panel', async () => {
|
|
|
572
483
|
|
|
573
484
|
|
|
574
485
|
|
|
575
|
-
↵
|
|
486
|
+
↵ open detail┌────────────────────────────────────┐
|
|
576
487
|
│ ✓ Copied to Clipboard - First Item │
|
|
577
488
|
└────────────────────────────────────┘"
|
|
578
489
|
`)
|
|
@@ -618,7 +529,7 @@ test('search functionality in main and detail views', async () => {
|
|
|
618
529
|
|
|
619
530
|
|
|
620
531
|
|
|
621
|
-
↵
|
|
532
|
+
↵ open details ↑↓ navigate ^k actions"
|
|
622
533
|
`)
|
|
623
534
|
|
|
624
535
|
// Clear search
|
|
@@ -654,19 +565,19 @@ test('search functionality in main and detail views', async () => {
|
|
|
654
565
|
|
|
655
566
|
|
|
656
567
|
|
|
657
|
-
↵
|
|
568
|
+
↵ open details ↑↓ navigate ^k actions"
|
|
658
569
|
`)
|
|
659
570
|
|
|
660
|
-
// Open
|
|
661
|
-
await session.press('enter')
|
|
662
|
-
|
|
663
|
-
// Navigate to first item detail
|
|
571
|
+
// Open first item detail (auto-executes Open Details action)
|
|
664
572
|
await session.press('enter')
|
|
573
|
+
await session.waitIdle()
|
|
574
|
+
await new Promise((resolve) => setTimeout(resolve, 200))
|
|
665
575
|
|
|
666
576
|
const firstDetailSnapshot = await session.text({
|
|
667
577
|
waitFor: (text) => {
|
|
668
578
|
return /Detail: First Item/i.test(text)
|
|
669
579
|
},
|
|
580
|
+
timeout: 3000,
|
|
670
581
|
})
|
|
671
582
|
expect(firstDetailSnapshot).toMatchInlineSnapshot(`
|
|
672
583
|
"
|
|
@@ -692,7 +603,7 @@ test('search functionality in main and detail views', async () => {
|
|
|
692
603
|
|
|
693
604
|
|
|
694
605
|
|
|
695
|
-
↵
|
|
606
|
+
↵ go back ↑↓ navigate ^k actions"
|
|
696
607
|
`)
|
|
697
608
|
|
|
698
609
|
// Type in detail view search bar
|
|
@@ -727,7 +638,7 @@ test('search functionality in main and detail views', async () => {
|
|
|
727
638
|
|
|
728
639
|
|
|
729
640
|
|
|
730
|
-
↵
|
|
641
|
+
↵ go back ↑↓ navigate ^k actions"
|
|
731
642
|
`)
|
|
732
643
|
|
|
733
644
|
// Press ESC to go back
|
|
@@ -762,6 +673,6 @@ test('search functionality in main and detail views', async () => {
|
|
|
762
673
|
|
|
763
674
|
|
|
764
675
|
|
|
765
|
-
↵
|
|
676
|
+
↵ open details ↑↓ navigate ^k actions"
|
|
766
677
|
`)
|
|
767
678
|
}, 10000)
|