termcast 1.3.30 → 1.3.32
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/cache.d.ts.map +1 -1
- package/dist/apis/cache.js +4 -39
- package/dist/apis/cache.js.map +1 -1
- package/dist/apis/hud.d.ts.map +1 -1
- package/dist/apis/hud.js +13 -31
- package/dist/apis/hud.js.map +1 -1
- package/dist/apis/localstorage.d.ts.map +1 -1
- package/dist/apis/localstorage.js +3 -27
- package/dist/apis/localstorage.js.map +1 -1
- package/dist/apis/toast.d.ts +16 -43
- package/dist/apis/toast.d.ts.map +1 -1
- package/dist/apis/toast.js +78 -177
- package/dist/apis/toast.js.map +1 -1
- package/dist/build.d.ts +3 -1
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +52 -2
- package/dist/build.js.map +1 -1
- package/dist/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +206 -25
- package/dist/cli.js.map +1 -1
- package/dist/colors.d.ts.map +1 -1
- package/dist/colors.js +1 -0
- package/dist/colors.js.map +1 -1
- package/dist/compile.d.ts +0 -1
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +18 -23
- package/dist/compile.js.map +1 -1
- package/dist/components/actions.d.ts.map +1 -1
- package/dist/components/actions.js +30 -15
- package/dist/components/actions.js.map +1 -1
- package/dist/components/animation-tick.d.ts +12 -0
- package/dist/components/animation-tick.d.ts.map +1 -0
- package/dist/components/animation-tick.js +63 -0
- package/dist/components/animation-tick.js.map +1 -0
- package/dist/components/detail.d.ts.map +1 -1
- package/dist/components/detail.js +10 -13
- 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 +27 -26
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/extension-preferences.d.ts.map +1 -1
- package/dist/components/extension-preferences.js +15 -10
- package/dist/components/extension-preferences.js.map +1 -1
- package/dist/components/footer.d.ts +13 -0
- package/dist/components/footer.d.ts.map +1 -0
- package/dist/components/footer.js +106 -0
- package/dist/components/footer.js.map +1 -0
- package/dist/components/form/file-autocomplete.d.ts +19 -4
- package/dist/components/form/file-autocomplete.d.ts.map +1 -1
- package/dist/components/form/file-autocomplete.js +56 -55
- 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 +26 -15
- package/dist/components/form/file-picker.js.map +1 -1
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +17 -15
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/form/with-left-border.d.ts.map +1 -1
- package/dist/components/form/with-left-border.js +4 -12
- package/dist/components/form/with-left-border.js.map +1 -1
- package/dist/components/list.d.ts.map +1 -1
- package/dist/components/list.js +126 -86
- package/dist/components/list.js.map +1 -1
- package/dist/components/loading-bar.d.ts.map +1 -1
- package/dist/components/loading-bar.js +5 -22
- package/dist/components/loading-bar.js.map +1 -1
- package/dist/components/loading-text.d.ts.map +1 -1
- package/dist/components/loading-text.js +3 -22
- package/dist/components/loading-text.js.map +1 -1
- package/dist/components/theme-picker.d.ts +2 -0
- package/dist/components/theme-picker.d.ts.map +1 -0
- package/dist/components/theme-picker.js +37 -0
- package/dist/components/theme-picker.js.map +1 -0
- package/dist/descendants.d.ts +6 -0
- package/dist/descendants.d.ts.map +1 -1
- package/dist/descendants.js +74 -8
- package/dist/descendants.js.map +1 -1
- package/dist/examples/internal/descendants-rerender.d.ts +14 -0
- package/dist/examples/internal/descendants-rerender.d.ts.map +1 -0
- package/dist/examples/internal/descendants-rerender.js +145 -0
- package/dist/examples/internal/descendants-rerender.js.map +1 -0
- package/dist/examples/internal/simple-dialog.js +4 -1
- package/dist/examples/internal/simple-dialog.js.map +1 -1
- package/dist/examples/internal/simple-scrollbox.js +1 -1
- package/dist/examples/internal/simple-scrollbox.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/miscellaneous.js +1 -1
- package/dist/examples/miscellaneous.js.map +1 -1
- package/dist/examples/toast-action.d.ts +2 -0
- package/dist/examples/toast-action.d.ts.map +1 -0
- package/dist/examples/toast-action.js +76 -0
- package/dist/examples/toast-action.js.map +1 -0
- package/dist/examples/toast-variations.js +38 -36
- package/dist/examples/toast-variations.js.map +1 -1
- package/dist/extensions/dev.d.ts +1 -1
- package/dist/extensions/dev.d.ts.map +1 -1
- package/dist/extensions/dev.js +62 -30
- package/dist/extensions/dev.js.map +1 -1
- package/dist/extensions/home.d.ts.map +1 -1
- package/dist/extensions/home.js +4 -3
- package/dist/extensions/home.js.map +1 -1
- package/dist/extensions/react-refresh-init.d.ts +5 -0
- package/dist/extensions/react-refresh-init.d.ts.map +1 -0
- package/dist/extensions/react-refresh-init.js +52 -0
- package/dist/extensions/react-refresh-init.js.map +1 -0
- package/dist/internal/date-picker-widget.js +1 -1
- package/dist/internal/date-picker-widget.js.map +1 -1
- package/dist/internal/dialog.d.ts +8 -3
- package/dist/internal/dialog.d.ts.map +1 -1
- package/dist/internal/dialog.js +37 -53
- package/dist/internal/dialog.js.map +1 -1
- package/dist/internal/navigation.d.ts +1 -0
- package/dist/internal/navigation.d.ts.map +1 -1
- package/dist/internal/navigation.js +25 -1
- package/dist/internal/navigation.js.map +1 -1
- package/dist/internal/providers.d.ts.map +1 -1
- package/dist/internal/providers.js +9 -197
- package/dist/internal/providers.js.map +1 -1
- package/dist/internal/scrollbox.d.ts.map +1 -1
- package/dist/internal/scrollbox.js +1 -0
- package/dist/internal/scrollbox.js.map +1 -1
- package/dist/release.d.ts +1 -0
- package/dist/release.d.ts.map +1 -1
- package/dist/release.js +16 -9
- package/dist/release.js.map +1 -1
- package/dist/state.d.ts +27 -1
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +6 -0
- package/dist/state.js.map +1 -1
- package/dist/theme.d.ts +6 -19
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +76 -45
- package/dist/theme.js.map +1 -1
- package/dist/themes/aura.json +69 -0
- package/dist/themes/ayu.json +80 -0
- package/dist/themes/catppuccin-frappe.json +233 -0
- package/dist/themes/catppuccin-macchiato.json +233 -0
- package/dist/themes/catppuccin.json +112 -0
- package/dist/themes/cobalt2.json +228 -0
- package/dist/themes/cursor.json +249 -0
- package/dist/themes/dracula.json +219 -0
- package/dist/themes/everforest.json +241 -0
- package/dist/themes/flexoki.json +237 -0
- package/dist/themes/github-light.json +56 -0
- package/dist/themes/github.json +241 -0
- package/dist/themes/gruvbox.json +95 -0
- package/dist/themes/kanagawa.json +77 -0
- package/dist/themes/lucent-orng.json +227 -0
- package/dist/themes/material.json +235 -0
- package/dist/themes/matrix.json +77 -0
- package/dist/themes/mercury.json +245 -0
- package/dist/themes/monokai.json +221 -0
- package/dist/themes/nightowl.json +221 -0
- package/dist/themes/nord.json +223 -0
- package/dist/themes/one-dark.json +84 -0
- package/dist/themes/opencode-light.json +62 -0
- package/dist/themes/opencode.json +245 -0
- package/dist/themes/orng.json +245 -0
- package/dist/themes/palenight.json +222 -0
- package/dist/themes/rosepine.json +234 -0
- package/dist/themes/solarized.json +223 -0
- package/dist/themes/synthwave84.json +226 -0
- package/dist/themes/termcast.json +226 -0
- package/dist/themes/tokyonight.json +243 -0
- package/dist/themes/vercel.json +255 -0
- package/dist/themes/vesper.json +218 -0
- package/dist/themes/zenburn.json +223 -0
- package/dist/themes.d.ts +57 -0
- package/dist/themes.d.ts.map +1 -0
- package/dist/themes.js +181 -0
- package/dist/themes.js.map +1 -0
- package/dist/utils/run-command.d.ts +2 -1
- package/dist/utils/run-command.d.ts.map +1 -1
- package/dist/utils/run-command.js +20 -10
- package/dist/utils/run-command.js.map +1 -1
- package/dist/utils.d.ts +2 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +90 -17
- package/dist/utils.js.map +1 -1
- package/dist/watcher.d.ts +3 -0
- package/dist/watcher.d.ts.map +1 -0
- package/dist/watcher.js +16 -0
- package/dist/watcher.js.map +1 -0
- package/package.json +16 -10
- package/src/apis/cache.tsx +5 -44
- package/src/apis/hud.tsx +17 -62
- package/src/apis/localstorage.tsx +3 -32
- package/src/apis/toast.tsx +91 -275
- package/src/build.test.tsx +10 -0
- package/src/build.tsx +61 -1
- package/src/cli.tsx +365 -103
- package/src/colors.tsx +1 -0
- package/src/compile.tsx +21 -29
- package/src/compile.vitest.tsx +300 -0
- package/src/components/actions.tsx +64 -45
- package/src/components/animation-tick.tsx +85 -0
- package/src/components/detail.tsx +31 -35
- package/src/components/dropdown.tsx +32 -21
- package/src/components/extension-preferences.tsx +14 -10
- package/src/components/footer.tsx +241 -0
- package/src/components/form/file-autocomplete.tsx +80 -60
- package/src/components/form/file-picker.tsx +37 -25
- package/src/components/form/index.tsx +45 -41
- package/src/components/form/with-left-border.tsx +4 -14
- package/src/components/list.tsx +181 -121
- package/src/components/loading-bar.tsx +5 -25
- package/src/components/loading-text.tsx +4 -23
- package/src/components/theme-picker.tsx +57 -0
- package/src/descendants.tsx +98 -9
- package/src/examples/actions-dialog-layout.vitest.tsx +112 -0
- package/src/examples/file-autocomplete.vitest.tsx +131 -122
- package/src/examples/form-basic.vitest.tsx +463 -644
- package/src/examples/form-dropdown.vitest.tsx +553 -571
- package/src/examples/form-scroll.vitest.tsx +112 -102
- package/src/examples/form-tagpicker.vitest.tsx +364 -338
- package/src/examples/internal/descendants-rerender.tsx +273 -0
- package/src/examples/internal/descendants-rerender.vitest.tsx +194 -0
- package/src/examples/internal/simple-dialog.tsx +4 -4
- package/src/examples/internal/simple-scrollbox.tsx +2 -2
- package/src/examples/internal/simple-scrollbox.vitest.tsx +43 -31
- package/src/examples/list-detail-metadata.vitest.tsx +34 -30
- package/src/examples/list-dropdown-default.vitest.tsx +84 -72
- package/src/examples/list-empty-view.vitest.tsx +93 -0
- package/src/examples/list-fetch-data.vitest.tsx +36 -30
- package/src/examples/list-scrollbox.vitest.tsx +59 -39
- package/src/examples/list-with-detail.vitest.tsx +339 -314
- package/src/examples/list-with-dropdown.tsx +1 -0
- package/src/examples/list-with-dropdown.vitest.tsx +176 -150
- package/src/examples/list-with-sections.vitest.tsx +289 -270
- package/src/examples/list-with-toast.vitest.tsx +44 -44
- package/src/examples/miscellaneous.tsx +10 -0
- package/src/examples/simple-file-picker.vitest.tsx +90 -86
- package/src/examples/simple-grid.vitest.tsx +275 -249
- package/src/examples/simple-navigation.vitest.tsx +192 -168
- package/src/examples/store.vitest.tsx +6 -4
- package/src/examples/swift-extension.vitest.tsx +31 -19
- package/src/examples/synonyms.vitest.tsx +93 -83
- package/src/examples/toast-action.tsx +160 -0
- package/src/examples/toast-action.vitest.tsx +404 -0
- package/src/examples/toast-variations.tsx +58 -57
- package/src/examples/toast-variations.vitest.tsx +186 -166
- package/src/extensions/dev.tsx +74 -33
- package/src/extensions/dev.vitest.tsx +162 -69
- package/src/extensions/home.tsx +5 -6
- package/src/extensions/react-refresh-init.tsx +59 -0
- package/src/internal/date-picker-widget.tsx +1 -1
- package/src/internal/dialog.tsx +59 -83
- package/src/internal/navigation.tsx +37 -4
- package/src/internal/providers.tsx +27 -315
- package/src/internal/scrollbox.tsx +1 -0
- package/src/release.tsx +16 -10
- package/src/state.tsx +36 -3
- package/src/theme.tsx +82 -51
- package/src/themes/aura.json +69 -0
- package/src/themes/ayu.json +80 -0
- package/src/themes/catppuccin-frappe.json +233 -0
- package/src/themes/catppuccin-macchiato.json +233 -0
- package/src/themes/catppuccin.json +112 -0
- package/src/themes/cobalt2.json +228 -0
- package/src/themes/cursor.json +249 -0
- package/src/themes/dracula.json +219 -0
- package/src/themes/everforest.json +241 -0
- package/src/themes/flexoki.json +237 -0
- package/src/themes/github-light.json +56 -0
- package/src/themes/github.json +241 -0
- package/src/themes/gruvbox.json +95 -0
- package/src/themes/kanagawa.json +77 -0
- package/src/themes/lucent-orng.json +227 -0
- package/src/themes/material.json +235 -0
- package/src/themes/matrix.json +77 -0
- package/src/themes/mercury.json +252 -0
- package/src/themes/monokai.json +221 -0
- package/src/themes/nightowl.json +221 -0
- package/src/themes/nord.json +223 -0
- package/src/themes/one-dark.json +84 -0
- package/src/themes/opencode-light.json +62 -0
- package/src/themes/opencode.json +245 -0
- package/src/themes/orng.json +245 -0
- package/src/themes/palenight.json +222 -0
- package/src/themes/rosepine.json +234 -0
- package/src/themes/solarized.json +223 -0
- package/src/themes/synthwave84.json +226 -0
- package/src/themes/termcast.json +227 -0
- package/src/themes/tokyonight.json +243 -0
- package/src/themes/vercel.json +255 -0
- package/src/themes/vesper.json +218 -0
- package/src/themes/zenburn.json +223 -0
- package/src/themes.ts +291 -0
- package/src/utils/run-command.tsx +23 -12
- package/src/utils.tsx +115 -18
- package/src/watcher.tsx +19 -0
|
@@ -19,10 +19,14 @@ export function ExtensionPreferences({ extensionName, commandName, onSubmit, })
|
|
|
19
19
|
// First check extensionPath from state (dev mode), then fall back to store directory
|
|
20
20
|
const { extensionPath, extensionPackageJson } = useStore.getState();
|
|
21
21
|
let packageJson;
|
|
22
|
-
if (
|
|
23
|
-
// Dev mode - use package.json from state
|
|
22
|
+
if (extensionPackageJson?.name === extensionName) {
|
|
23
|
+
// Dev mode or compiled extension - use package.json from state
|
|
24
24
|
packageJson = extensionPackageJson;
|
|
25
25
|
}
|
|
26
|
+
else if (extensionPath && fs.existsSync(path.join(extensionPath, 'package.json'))) {
|
|
27
|
+
// Dev mode with extensionPath - read from disk
|
|
28
|
+
packageJson = JSON.parse(fs.readFileSync(path.join(extensionPath, 'package.json'), 'utf-8'));
|
|
29
|
+
}
|
|
26
30
|
else {
|
|
27
31
|
// Store extension - read from store directory
|
|
28
32
|
const storeDir = getStoreDirectory();
|
|
@@ -56,7 +60,7 @@ export function ExtensionPreferences({ extensionName, commandName, onSubmit, })
|
|
|
56
60
|
logger.error('Failed to parse saved preferences:', e);
|
|
57
61
|
}
|
|
58
62
|
}
|
|
59
|
-
return { preferences: prefsToUse, savedValues };
|
|
63
|
+
return { preferences: prefsToUse, savedValues, extensionTitle: packageJson.title || extensionName };
|
|
60
64
|
}
|
|
61
65
|
catch (error) {
|
|
62
66
|
logger.error(`Failed to load preferences for ${extensionName}:`, error);
|
|
@@ -65,12 +69,13 @@ export function ExtensionPreferences({ extensionName, commandName, onSubmit, })
|
|
|
65
69
|
title: 'Failed to load preferences',
|
|
66
70
|
message: String(error),
|
|
67
71
|
});
|
|
68
|
-
return { preferences: [], savedValues: {} };
|
|
72
|
+
return { preferences: [], savedValues: {}, extensionTitle: extensionName };
|
|
69
73
|
}
|
|
70
74
|
},
|
|
71
75
|
});
|
|
72
76
|
const preferences = data?.preferences ?? [];
|
|
73
77
|
const savedValues = data?.savedValues ?? {};
|
|
78
|
+
const extensionTitle = data?.extensionTitle ?? extensionName;
|
|
74
79
|
const handleSubmit = async (values) => {
|
|
75
80
|
try {
|
|
76
81
|
// Transform file/directory values from arrays to strings
|
|
@@ -98,8 +103,8 @@ export function ExtensionPreferences({ extensionName, commandName, onSubmit, })
|
|
|
98
103
|
style: Toast.Style.Success,
|
|
99
104
|
title: 'Preferences saved',
|
|
100
105
|
message: commandName
|
|
101
|
-
? `Preferences for ${
|
|
102
|
-
: `Preferences for ${
|
|
106
|
+
? `Preferences for ${extensionTitle}/${commandName} have been saved`
|
|
107
|
+
: `Preferences for ${extensionTitle} have been saved`,
|
|
103
108
|
});
|
|
104
109
|
if (onSubmit) {
|
|
105
110
|
onSubmit(transformedValues);
|
|
@@ -126,12 +131,12 @@ export function ExtensionPreferences({ extensionName, commandName, onSubmit, })
|
|
|
126
131
|
// return null
|
|
127
132
|
// }
|
|
128
133
|
return (_jsx(Form, { actions: _jsx(ActionPanel, { children: _jsx(Action.SubmitForm, { title: 'Close', onSubmit: () => pop() }) }), children: _jsx(Form.Description, { text: commandName
|
|
129
|
-
? `No preferences available for ${
|
|
130
|
-
: `No preferences available for ${
|
|
134
|
+
? `No preferences available for ${extensionTitle}/${commandName}`
|
|
135
|
+
: `No preferences available for ${extensionTitle}` }) }));
|
|
131
136
|
}
|
|
132
137
|
return (_jsx(Form, { actions: _jsx(ActionPanel, { children: _jsx(Action.SubmitForm, { title: 'Save Preferences', onSubmit: handleSubmit }) }), navigationTitle: commandName
|
|
133
|
-
? `${
|
|
134
|
-
: `${
|
|
138
|
+
? `${extensionTitle}/${commandName} Preferences`
|
|
139
|
+
: `${extensionTitle} Preferences`, children: preferences.map((pref) => {
|
|
135
140
|
const defaultValue = savedValues[pref.name] ?? pref.default;
|
|
136
141
|
switch (pref.type) {
|
|
137
142
|
case 'textfield':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-preferences.js","sourceRoot":"","sources":["../../src/components/extension-preferences.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AA2B7C,MAAM,UAAU,oBAAoB,CAAC,EACnC,aAAa,EACb,WAAW,EACX,QAAQ,GACkB;IAC1B,MAAM,EAAE,GAAG,EAAE,GAAG,aAAa,EAAE,CAAA;IAE/B,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;QACnC,QAAQ,EAAE,CAAC,uBAAuB,EAAE,aAAa,EAAE,WAAW,CAAC;QAC/D,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC;gBACH,qFAAqF;gBACrF,MAAM,EAAE,aAAa,EAAE,oBAAoB,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAA;gBAEnE,IAAI,WAA+B,CAAA;gBAEnC,IAAI,
|
|
1
|
+
{"version":3,"file":"extension-preferences.js","sourceRoot":"","sources":["../../src/components/extension-preferences.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
interface FooterProps {
|
|
3
|
+
children?: ReactNode;
|
|
4
|
+
paddingLeft?: number;
|
|
5
|
+
paddingRight?: number;
|
|
6
|
+
paddingTop?: number;
|
|
7
|
+
paddingBottom?: number;
|
|
8
|
+
marginTop?: number;
|
|
9
|
+
hidePoweredBy?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function Footer({ children, paddingLeft, paddingRight, paddingTop, paddingBottom, marginTop, hidePoweredBy, }: FooterProps): any;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=footer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../src/components/footer.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAA;AAmB7D,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAgKD,wBAAgB,MAAM,CAAC,EACrB,QAAQ,EACR,WAAe,EACf,YAAgB,EAChB,UAAc,EACd,aAAa,EACb,SAAa,EACb,aAAqB,GACtB,EAAE,WAAW,GAAG,GAAG,CA6CnB"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "@opentui/react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import { TextAttributes } from '@opentui/core';
|
|
4
|
+
import { useTerminalDimensions, useKeyboard } from '@opentui/react';
|
|
5
|
+
import { colord } from 'colord';
|
|
6
|
+
import { Theme } from 'termcast/src/theme';
|
|
7
|
+
import { openInBrowser } from 'termcast/src/action-utils';
|
|
8
|
+
import { useStore, toastPrimaryActionKey, toastSecondaryActionKey, } from 'termcast/src/state';
|
|
9
|
+
import { useIsInFocus } from 'termcast/src/internal/focus-context';
|
|
10
|
+
/** Returns white or black foreground color based on background lightness */
|
|
11
|
+
function getFgForBg(bgColor) {
|
|
12
|
+
return colord(bgColor).isLight() ? '#000000' : '#ffffff';
|
|
13
|
+
}
|
|
14
|
+
const MIN_WIDTH_FOR_POWERED_BY = 75;
|
|
15
|
+
function ToastInline({ toast }) {
|
|
16
|
+
const inFocus = useIsInFocus();
|
|
17
|
+
const [animationFrame, setAnimationFrame] = useState(0);
|
|
18
|
+
// Keyboard handling for toast actions
|
|
19
|
+
useKeyboard((evt) => {
|
|
20
|
+
if (!inFocus)
|
|
21
|
+
return;
|
|
22
|
+
if (evt.name === 'escape') {
|
|
23
|
+
toast.onHide();
|
|
24
|
+
}
|
|
25
|
+
else if (toast.primaryAction &&
|
|
26
|
+
evt.ctrl &&
|
|
27
|
+
evt.name === toastPrimaryActionKey.name) {
|
|
28
|
+
toast.primaryAction.onAction();
|
|
29
|
+
}
|
|
30
|
+
else if (toast.secondaryAction &&
|
|
31
|
+
evt.ctrl &&
|
|
32
|
+
evt.name === toastSecondaryActionKey.name) {
|
|
33
|
+
toast.secondaryAction.onAction();
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
// Animation for animated toasts
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
if (toast.style === 'ANIMATED') {
|
|
39
|
+
const interval = setInterval(() => {
|
|
40
|
+
setAnimationFrame((prev) => (prev + 1) % 8);
|
|
41
|
+
}, 100);
|
|
42
|
+
return () => clearInterval(interval);
|
|
43
|
+
}
|
|
44
|
+
}, [toast.style]);
|
|
45
|
+
// Auto-dismiss for non-animated toasts
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
if (toast.style !== 'ANIMATED') {
|
|
48
|
+
const duration = toast.style === 'FAILURE' ? 8000 : 5000;
|
|
49
|
+
const timer = setTimeout(() => {
|
|
50
|
+
toast.onHide();
|
|
51
|
+
}, duration);
|
|
52
|
+
return () => clearTimeout(timer);
|
|
53
|
+
}
|
|
54
|
+
}, [toast.style, toast.onHide]);
|
|
55
|
+
const getIcon = () => {
|
|
56
|
+
switch (toast.style) {
|
|
57
|
+
case 'SUCCESS':
|
|
58
|
+
return '✓';
|
|
59
|
+
case 'FAILURE':
|
|
60
|
+
return '✗';
|
|
61
|
+
case 'ANIMATED':
|
|
62
|
+
return '⣾⣽⣻⢿⡿⣟⣯⣷'[animationFrame];
|
|
63
|
+
default:
|
|
64
|
+
return '✓';
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
const getIconColor = () => {
|
|
68
|
+
switch (toast.style) {
|
|
69
|
+
case 'SUCCESS':
|
|
70
|
+
return Theme.success;
|
|
71
|
+
case 'FAILURE':
|
|
72
|
+
return Theme.error;
|
|
73
|
+
case 'ANIMATED':
|
|
74
|
+
return Theme.primary;
|
|
75
|
+
default:
|
|
76
|
+
return Theme.success;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
const primaryBg = Theme.primary;
|
|
80
|
+
const primaryFg = getFgForBg(primaryBg);
|
|
81
|
+
const keysBg = colord(primaryBg).darken(0.06).toHex();
|
|
82
|
+
const hasKeys = !!toast.primaryAction?.title || !!toast.secondaryAction?.title;
|
|
83
|
+
return (_jsxs("box", { flexDirection: 'row', marginLeft: -3, marginRight: -3, flexGrow: 1, overflow: 'hidden', children: [_jsxs("box", { flexDirection: 'row', flexShrink: 0, backgroundColor: colord(primaryBg).lighten(0.1).toHex(), paddingLeft: 3, paddingRight: 1, children: [_jsxs("text", { flexShrink: 0, fg: getIconColor(), children: [getIcon(), ' '] }), _jsx("text", { flexShrink: 0, fg: primaryFg, attributes: TextAttributes.BOLD, children: toast.title })] }), _jsx("box", { flexGrow: 1, backgroundColor: keysBg, paddingLeft: 1, paddingRight: 1, flexDirection: 'row', overflow: 'hidden', children: _jsx("text", { fg: primaryFg, wrapMode: 'none', children: toast.message || '' }) }), _jsxs("box", { backgroundColor: keysBg, paddingLeft: 1, paddingRight: 3, gap: 1, flexDirection: 'row', flexShrink: 0, children: [toast.primaryAction?.title && (_jsxs("box", { flexShrink: 0, flexDirection: 'row', onMouseDown: () => {
|
|
84
|
+
toast.primaryAction?.onAction();
|
|
85
|
+
}, children: [_jsx("text", { fg: primaryFg, attributes: TextAttributes.BOLD, children: toast.primaryAction.title }), _jsx("text", { fg: primaryFg, children: " ctrl t" })] })), toast.secondaryAction?.title && (_jsxs("box", { flexShrink: 0, flexDirection: 'row', onMouseDown: () => {
|
|
86
|
+
toast.secondaryAction?.onAction();
|
|
87
|
+
}, children: [_jsx("text", { fg: primaryFg, attributes: TextAttributes.BOLD, children: toast.secondaryAction.title }), _jsx("text", { fg: primaryFg, children: " ctrl g" })] }))] })] }));
|
|
88
|
+
}
|
|
89
|
+
export function Footer({ children, paddingLeft = 1, paddingRight = 1, paddingTop = 1, paddingBottom, marginTop = 1, hidePoweredBy = false, }) {
|
|
90
|
+
const { width } = useTerminalDimensions();
|
|
91
|
+
const showPoweredBy = !hidePoweredBy && width >= MIN_WIDTH_FOR_POWERED_BY;
|
|
92
|
+
const toast = useStore((state) => state.toast);
|
|
93
|
+
return (_jsx("box", { border: false, style: {
|
|
94
|
+
paddingLeft,
|
|
95
|
+
paddingRight,
|
|
96
|
+
paddingTop,
|
|
97
|
+
paddingBottom,
|
|
98
|
+
marginTop,
|
|
99
|
+
flexShrink: 0,
|
|
100
|
+
flexDirection: 'row',
|
|
101
|
+
justifyContent: 'space-between',
|
|
102
|
+
}, children: toast ? (_jsx(ToastInline, { toast: toast })) : (_jsxs(_Fragment, { children: [children, showPoweredBy && (_jsxs("box", { flexDirection: 'row', gap: 1, children: [_jsx("text", { flexShrink: 0, fg: Theme.textMuted, children: "powered by" }), _jsx("text", { flexShrink: 0, onMouseDown: () => {
|
|
103
|
+
openInBrowser('https://termcast.app');
|
|
104
|
+
}, fg: Theme.textMuted, attributes: TextAttributes.BOLD, children: "termcast" })] }))] })) }));
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=footer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"footer.js","sourceRoot":"","sources":["../../src/components/footer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
interface FileAutocompleteState {
|
|
2
|
+
filter: string;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Creates a local zustand store for sharing state between FilePicker and FileAutocompleteDialog.
|
|
6
|
+
* This is necessary because dialog.push() freezes props at creation time - props won't update.
|
|
7
|
+
* Using zustand allows the dialog to subscribe to state changes reactively.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createFileAutocompleteStore(): import("zustand").StoreApi<FileAutocompleteState>;
|
|
10
|
+
export type FileAutocompleteStore = ReturnType<typeof createFileAutocompleteStore>;
|
|
3
11
|
export interface FileAutocompleteDialogProps {
|
|
12
|
+
/**
|
|
13
|
+
* NOTE: Do not pass frequently-changing values as props here.
|
|
14
|
+
* dialog.push() freezes props at creation time - they won't update.
|
|
15
|
+
* Use the `store` prop for reactive state instead.
|
|
16
|
+
*/
|
|
17
|
+
store: FileAutocompleteStore;
|
|
4
18
|
onSelect: (path: string) => void;
|
|
5
19
|
onClose: () => void;
|
|
6
|
-
|
|
20
|
+
onNavigate: (path: string) => void;
|
|
7
21
|
canChooseFiles?: boolean;
|
|
8
22
|
canChooseDirectories?: boolean;
|
|
9
23
|
initialDirectory?: string;
|
|
10
24
|
}
|
|
11
|
-
export declare const FileAutocompleteDialog: ({ onSelect, onClose,
|
|
25
|
+
export declare const FileAutocompleteDialog: ({ store, onSelect, onClose, onNavigate, canChooseFiles, canChooseDirectories, initialDirectory, }: FileAutocompleteDialogProps) => any;
|
|
26
|
+
export {};
|
|
12
27
|
//# sourceMappingURL=file-autocomplete.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-autocomplete.d.ts","sourceRoot":"","sources":["../../../src/components/form/file-autocomplete.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-autocomplete.d.ts","sourceRoot":"","sources":["../../../src/components/form/file-autocomplete.tsx"],"names":[],"mappings":"AAWA,UAAU,qBAAqB;IAC7B,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,sDAI1C;AAED,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAElF,MAAM,WAAW,2BAA2B;IAC1C;;;;OAIG;IACH,KAAK,EAAE,qBAAqB,CAAA;IAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,eAAO,MAAM,sBAAsB,GAAI,mGAQpC,2BAA2B,KAAG,GAqGhC,CAAA"}
|
|
@@ -1,50 +1,53 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@opentui/react/jsx-runtime";
|
|
2
|
-
import { useState } from 'react';
|
|
2
|
+
import React, { useState } from 'react';
|
|
3
3
|
import { useQuery } from '@tanstack/react-query';
|
|
4
4
|
import { Theme } from 'termcast/src/theme';
|
|
5
|
-
import {
|
|
5
|
+
import { searchFiles, parsePath } from '../../utils/file-system';
|
|
6
6
|
import { useKeyboard } from '@opentui/react';
|
|
7
7
|
import { useIsInFocus } from 'termcast/src/internal/focus-context';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
8
|
+
import { createStore, useStore } from 'zustand';
|
|
9
|
+
import os from 'os';
|
|
10
|
+
const homedir = os.homedir();
|
|
11
|
+
/**
|
|
12
|
+
* Creates a local zustand store for sharing state between FilePicker and FileAutocompleteDialog.
|
|
13
|
+
* This is necessary because dialog.push() freezes props at creation time - props won't update.
|
|
14
|
+
* Using zustand allows the dialog to subscribe to state changes reactively.
|
|
15
|
+
*/
|
|
16
|
+
export function createFileAutocompleteStore() {
|
|
17
|
+
return createStore(() => ({
|
|
18
|
+
filter: '',
|
|
19
|
+
}));
|
|
20
20
|
}
|
|
21
|
-
export const FileAutocompleteDialog = ({ onSelect, onClose,
|
|
21
|
+
export const FileAutocompleteDialog = ({ store, onSelect, onClose, onNavigate, canChooseFiles = true, canChooseDirectories = false, initialDirectory, }) => {
|
|
22
22
|
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
23
|
-
const [filter, setFilter] = useState(() => inputRef.current?.plainText || '');
|
|
24
23
|
const isInFocus = useIsInFocus();
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
// Subscribe to filter from zustand store (reactive)
|
|
25
|
+
const filter = useStore(store, (s) => s.filter);
|
|
26
|
+
// Reset selection when filter changes
|
|
27
|
+
const prevFilterRef = React.useRef(filter);
|
|
28
|
+
if (prevFilterRef.current !== filter) {
|
|
29
|
+
prevFilterRef.current = filter;
|
|
30
|
+
setSelectedIndex(0);
|
|
31
|
+
}
|
|
32
|
+
// Parse the filter to extract base path and prefix
|
|
33
|
+
// When filter is empty, use initialDirectory with empty prefix to show all files
|
|
34
|
+
const { basePath, prefix } = filter
|
|
35
|
+
? parsePath(filter)
|
|
36
|
+
: { basePath: initialDirectory || '.', prefix: '' };
|
|
37
|
+
const { data: files = [], isLoading } = useQuery({
|
|
38
|
+
queryKey: ['file-search', basePath, prefix, canChooseFiles],
|
|
27
39
|
queryFn: async () => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
includeDirectories: true,
|
|
34
|
-
});
|
|
35
|
-
// Filter based on canChooseFiles/canChooseDirectories
|
|
36
|
-
return files.filter((f) => {
|
|
37
|
-
const isDir = f.endsWith('/');
|
|
38
|
-
if (isDir) {
|
|
39
|
-
return canChooseDirectories;
|
|
40
|
+
const items = await searchFiles(basePath, prefix);
|
|
41
|
+
// Always show directories for navigation, filter files based on canChooseFiles
|
|
42
|
+
return items.filter((item) => {
|
|
43
|
+
if (item.isDirectory) {
|
|
44
|
+
return true;
|
|
40
45
|
}
|
|
41
46
|
return canChooseFiles;
|
|
42
47
|
});
|
|
43
48
|
},
|
|
44
49
|
});
|
|
45
|
-
|
|
46
|
-
const filteredFiles = allFiles.filter((file) => fuzzyMatch(file, filter));
|
|
47
|
-
const visibleFiles = filteredFiles.slice(0, 10);
|
|
50
|
+
const visibleFiles = files.slice(0, 10);
|
|
48
51
|
useKeyboard((evt) => {
|
|
49
52
|
if (!isInFocus)
|
|
50
53
|
return;
|
|
@@ -57,31 +60,29 @@ export const FileAutocompleteDialog = ({ onSelect, onClose, inputRef, canChooseF
|
|
|
57
60
|
else if (evt.name === 'return' || evt.name === 'tab') {
|
|
58
61
|
const selected = visibleFiles[selectedIndex];
|
|
59
62
|
if (selected) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
63
|
+
if (selected.isDirectory) {
|
|
64
|
+
if (canChooseDirectories) {
|
|
65
|
+
// Select directory
|
|
66
|
+
onSelect(selected.path);
|
|
67
|
+
onClose();
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// Navigate into directory
|
|
71
|
+
onNavigate(selected.path + '/');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
// Select file
|
|
76
|
+
onSelect(selected.path);
|
|
77
|
+
onClose();
|
|
78
|
+
}
|
|
71
79
|
}
|
|
72
80
|
}
|
|
73
|
-
else if (evt.name && evt.name.length === 1 && !evt.ctrl && !evt.meta) {
|
|
74
|
-
// Single character input
|
|
75
|
-
const newFilter = filter + evt.name;
|
|
76
|
-
setFilter(newFilter);
|
|
77
|
-
setSelectedIndex(0);
|
|
78
|
-
}
|
|
79
81
|
});
|
|
80
82
|
const hintText = '↑↓ navigate ⏎/tab select esc close';
|
|
81
|
-
return (_jsxs("box", { flexDirection: 'column', paddingLeft: 1, paddingRight: 1, children: [_jsxs("box", { flexDirection: 'row', children: [_jsx("text", { fg: Theme.textMuted, children: "Filter: " }), _jsx("text", { fg: Theme.primary, children: filter
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}) })), _jsx("box", { height: 1 }), _jsx("text", { fg: Theme.textMuted, children: hintText })] }));
|
|
83
|
+
return (_jsxs("box", { flexDirection: 'column', paddingLeft: 1, paddingRight: 1, overflow: 'hidden', children: [_jsxs("box", { flexDirection: 'row', children: [_jsx("text", { fg: Theme.textMuted, wrapMode: 'none', children: "Filter: " }), _jsx("text", { fg: Theme.primary, wrapMode: 'none', children: filter ? filter.replace(homedir, '~') : '(type to filter)' })] }), _jsx("box", { height: 1 }), isLoading ? (_jsx("text", { fg: Theme.textMuted, children: "Loading files..." })) : visibleFiles.length === 0 ? (_jsx("text", { fg: Theme.textMuted, children: "No files found" })) : (_jsx(_Fragment, { children: visibleFiles.map((item, index) => {
|
|
84
|
+
const icon = item.isDirectory ? '▫ ' : '▪ ';
|
|
85
|
+
return (_jsxs("text", { fg: index === selectedIndex ? Theme.background : Theme.text, bg: index === selectedIndex ? Theme.primary : Theme.backgroundPanel, wrapMode: 'none', children: [' ', icon, item.name, item.isDirectory ? '/' : ''] }, item.path));
|
|
86
|
+
}) })), _jsx("box", { height: 1 }), _jsx("text", { fg: Theme.textMuted, wrapMode: 'none', children: hintText })] }));
|
|
86
87
|
};
|
|
87
88
|
//# sourceMappingURL=file-autocomplete.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-autocomplete.js","sourceRoot":"","sources":["../../../src/components/form/file-autocomplete.tsx"],"names":[],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"file-autocomplete.js","sourceRoot":"","sources":["../../../src/components/form/file-autocomplete.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-picker.d.ts","sourceRoot":"","sources":["../../../src/components/form/file-picker.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAUpD,MAAM,WAAW,eAAgB,SAAQ,aAAa,CAAC,MAAM,EAAE,CAAC;IAC9D;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,MAAM,aAAa,GAAG,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"file-picker.d.ts","sourceRoot":"","sources":["../../../src/components/form/file-picker.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAUpD,MAAM,WAAW,eAAgB,SAAQ,aAAa,CAAC,MAAM,EAAE,CAAC;IAC9D;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,MAAM,aAAa,GAAG,WAAW,CAAA;AA0KvC,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,KAAG,GAkDnD,CAAA"}
|
|
@@ -6,7 +6,7 @@ import { useFormContext, Controller } from 'react-hook-form';
|
|
|
6
6
|
import { useFocusContext, useFormFieldDescendant } from './index';
|
|
7
7
|
import { useKeyboard } from '@opentui/react';
|
|
8
8
|
import { useIsInFocus } from 'termcast/src/internal/focus-context';
|
|
9
|
-
import { FileAutocompleteDialog } from './file-autocomplete';
|
|
9
|
+
import { FileAutocompleteDialog, createFileAutocompleteStore } from './file-autocomplete';
|
|
10
10
|
import { useFormNavigationHelpers } from './use-form-navigation';
|
|
11
11
|
import { useDialog } from 'termcast/src/internal/dialog';
|
|
12
12
|
import { LoadingText } from 'termcast/src/components/loading-text';
|
|
@@ -14,27 +14,36 @@ const FilePickerField = ({ field, fieldState, formState, props, isFocused, setFo
|
|
|
14
14
|
const isInFocus = useIsInFocus();
|
|
15
15
|
const inputRef = React.useRef(null);
|
|
16
16
|
const dialog = useDialog();
|
|
17
|
+
// Create store once for sharing state with dialog
|
|
18
|
+
const [store] = React.useState(() => createFileAutocompleteStore());
|
|
17
19
|
const showAutocomplete = () => {
|
|
18
20
|
if (dialog.stack.length > 0)
|
|
19
21
|
return;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
22
|
+
dialog.push({
|
|
23
|
+
element: (_jsx(FileAutocompleteDialog, { store: store, onSelect: (path) => {
|
|
24
|
+
const currentFiles = field.value || [];
|
|
25
|
+
const newFiles = props.allowMultipleSelection !== false ? [...currentFiles, path] : [path];
|
|
26
|
+
field.onChange(newFiles);
|
|
27
|
+
if (props.onChange) {
|
|
28
|
+
props.onChange(newFiles);
|
|
29
|
+
}
|
|
30
|
+
inputRef.current?.setText('');
|
|
31
|
+
store.setState({ filter: '' });
|
|
32
|
+
dialog.clear();
|
|
33
|
+
}, onNavigate: (path) => {
|
|
34
|
+
inputRef.current?.setText(path);
|
|
35
|
+
store.setState({ filter: path });
|
|
36
|
+
}, onClose: () => {
|
|
37
|
+
dialog.clear();
|
|
38
|
+
}, canChooseFiles: props.canChooseFiles, canChooseDirectories: props.canChooseDirectories, initialDirectory: props.initialDirectory })),
|
|
39
|
+
});
|
|
33
40
|
};
|
|
34
41
|
// Handle Enter key and left arrow for removing last file
|
|
35
42
|
useKeyboard((evt) => {
|
|
36
43
|
if (!isFocused || !isInFocus)
|
|
37
44
|
return;
|
|
45
|
+
if (dialog.stack.length > 0)
|
|
46
|
+
return; // Let autocomplete handle keys
|
|
38
47
|
// Left arrow removes last selected file when input is empty
|
|
39
48
|
if (evt.name === 'left') {
|
|
40
49
|
const inputValue = inputRef.current?.plainText || '';
|
|
@@ -64,6 +73,7 @@ const FilePickerField = ({ field, fieldState, formState, props, isFocused, setFo
|
|
|
64
73
|
props.onChange(newFiles);
|
|
65
74
|
}
|
|
66
75
|
inputRef.current?.setText('');
|
|
76
|
+
store.setState({ filter: '' });
|
|
67
77
|
}
|
|
68
78
|
}
|
|
69
79
|
});
|
|
@@ -73,8 +83,9 @@ const FilePickerField = ({ field, fieldState, formState, props, isFocused, setFo
|
|
|
73
83
|
}, children: _jsx(LoadingText, { isLoading: isFocused && isFormLoading, color: isFocused ? Theme.primary : Theme.text, children: props.title || 'File Path' }) }) }), _jsx(WithLeftBorder, { isFocused: isFocused, children: _jsxs("box", { flexDirection: 'column', children: [_jsx("textarea", { ref: inputRef, height: 1, wrapMode: 'none', keyBindings: [
|
|
74
84
|
{ name: 'return', action: 'submit' },
|
|
75
85
|
{ name: 'linefeed', action: 'submit' },
|
|
76
|
-
], initialValue: "", placeholder: props.placeholder || 'Enter file path...', focused: isFocused, onMouseDown: () => setFocusedField(props.id), onContentChange: () => {
|
|
86
|
+
], initialValue: "", placeholder: props.placeholder || 'Enter file path...', focused: isFocused, showCursor: dialog.stack.length === 0, onMouseDown: () => setFocusedField(props.id), onContentChange: () => {
|
|
77
87
|
const value = inputRef.current?.plainText || '';
|
|
88
|
+
store.setState({ filter: value });
|
|
78
89
|
if (value && isFocused) {
|
|
79
90
|
showAutocomplete();
|
|
80
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-picker.js","sourceRoot":"","sources":["../../../src/components/form/file-picker.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"file-picker.js","sourceRoot":"","sources":["../../../src/components/form/file-picker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/form/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/form/index.tsx"],"names":[],"mappings":"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"}
|