termcast 1.3.32 → 1.3.34
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/action-utils.d.ts.map +1 -1
- package/dist/action-utils.js +8 -0
- package/dist/action-utils.js.map +1 -1
- package/dist/apis/cache.d.ts +1 -2
- package/dist/apis/cache.d.ts.map +1 -1
- package/dist/apis/cache.js +138 -54
- package/dist/apis/cache.js.map +1 -1
- package/dist/apis/clipboard.d.ts.map +1 -1
- package/dist/apis/clipboard.js +4 -0
- package/dist/apis/clipboard.js.map +1 -1
- package/dist/apis/oauth.d.ts.map +1 -1
- package/dist/apis/oauth.js +31 -4
- package/dist/apis/oauth.js.map +1 -1
- package/dist/build.d.ts +0 -1
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +30 -51
- package/dist/build.js.map +1 -1
- package/dist/cli.js +31 -14
- package/dist/cli.js.map +1 -1
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +5 -1
- package/dist/compile.js.map +1 -1
- package/dist/components/actions.d.ts +14 -0
- package/dist/components/actions.d.ts.map +1 -1
- package/dist/components/actions.js +151 -59
- package/dist/components/actions.js.map +1 -1
- package/dist/components/alert.d.ts.map +1 -1
- package/dist/components/alert.js +6 -5
- package/dist/components/alert.js.map +1 -1
- package/dist/components/animation-tick.d.ts +1 -1
- package/dist/components/animation-tick.js +1 -1
- package/dist/components/animation-tick.js.map +1 -1
- package/dist/components/detail.d.ts +5 -31
- package/dist/components/detail.d.ts.map +1 -1
- package/dist/components/detail.js +36 -52
- package/dist/components/detail.js.map +1 -1
- package/dist/components/dropdown.d.ts +1 -1
- package/dist/components/dropdown.d.ts.map +1 -1
- package/dist/components/dropdown.js +50 -22
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/footer.d.ts.map +1 -1
- package/dist/components/footer.js +19 -18
- package/dist/components/footer.js.map +1 -1
- package/dist/components/form/checkbox.d.ts.map +1 -1
- package/dist/components/form/checkbox.js +12 -11
- 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 +7 -22
- package/dist/components/form/date-picker.js.map +1 -1
- package/dist/components/form/description.d.ts +1 -1
- package/dist/components/form/description.d.ts.map +1 -1
- package/dist/components/form/description.js +6 -5
- 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 +53 -50
- package/dist/components/form/dropdown.js.map +1 -1
- package/dist/components/form/file-autocomplete.d.ts.map +1 -1
- package/dist/components/form/file-autocomplete.js +5 -4
- 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 +23 -22
- 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 +6 -4
- package/dist/components/form/form-end.js.map +1 -1
- package/dist/components/form/form-field-wrapper.d.ts +15 -0
- package/dist/components/form/form-field-wrapper.d.ts.map +1 -0
- package/dist/components/form/form-field-wrapper.js +29 -0
- package/dist/components/form/form-field-wrapper.js.map +1 -0
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +31 -30
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/form/password-field.d.ts.map +1 -1
- package/dist/components/form/password-field.js +7 -6
- package/dist/components/form/password-field.js.map +1 -1
- package/dist/components/form/separator.d.ts.map +1 -1
- package/dist/components/form/separator.js +3 -2
- package/dist/components/form/separator.js.map +1 -1
- package/dist/components/form/tagpicker.d.ts.map +1 -1
- package/dist/components/form/tagpicker.js +2 -1
- package/dist/components/form/tagpicker.js.map +1 -1
- package/dist/components/form/text-area.d.ts.map +1 -1
- package/dist/components/form/text-area.js +7 -6
- 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 +7 -6
- package/dist/components/form/text-field.js.map +1 -1
- package/dist/components/form/use-form-navigation.d.ts.map +1 -1
- package/dist/components/form/use-form-navigation.js +4 -4
- package/dist/components/form/use-form-navigation.js.map +1 -1
- package/dist/components/form/with-left-border.d.ts +15 -0
- package/dist/components/form/with-left-border.d.ts.map +1 -1
- package/dist/components/form/with-left-border.js +21 -9
- package/dist/components/form/with-left-border.js.map +1 -1
- package/dist/components/icon.d.ts +14 -0
- package/dist/components/icon.d.ts.map +1 -1
- package/dist/components/icon.js +60 -0
- package/dist/components/icon.js.map +1 -1
- package/dist/components/image.d.ts +47 -2
- package/dist/components/image.d.ts.map +1 -1
- package/dist/components/image.js +46 -7
- package/dist/components/image.js.map +1 -1
- package/dist/components/list.d.ts +5 -0
- package/dist/components/list.d.ts.map +1 -1
- package/dist/components/list.js +188 -132
- package/dist/components/list.js.map +1 -1
- package/dist/components/loading-bar.d.ts.map +1 -1
- package/dist/components/loading-bar.js +4 -3
- package/dist/components/loading-bar.js.map +1 -1
- package/dist/components/metadata.d.ts +70 -0
- package/dist/components/metadata.d.ts.map +1 -0
- package/dist/components/metadata.js +82 -0
- package/dist/components/metadata.js.map +1 -0
- package/dist/components/theme-picker.d.ts.map +1 -1
- package/dist/components/theme-picker.js +3 -2
- package/dist/components/theme-picker.js.map +1 -1
- package/dist/descendants-v2.d.ts +60 -0
- package/dist/descendants-v2.d.ts.map +1 -0
- package/dist/descendants-v2.js +144 -0
- package/dist/descendants-v2.js.map +1 -0
- package/dist/examples/actions-context.d.ts +2 -0
- package/dist/examples/actions-context.d.ts.map +1 -0
- package/dist/examples/actions-context.js +33 -0
- package/dist/examples/actions-context.js.map +1 -0
- package/dist/examples/form-basic.d.ts.map +1 -1
- package/dist/examples/form-basic.js +1 -1
- 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/internal/custom-action-renderables.d.ts +70 -0
- package/dist/examples/internal/custom-action-renderables.d.ts.map +1 -0
- package/dist/examples/internal/custom-action-renderables.js +163 -0
- package/dist/examples/internal/custom-action-renderables.js.map +1 -0
- package/dist/examples/internal/custom-dropdown.d.ts +99 -0
- package/dist/examples/internal/custom-dropdown.d.ts.map +1 -0
- package/dist/examples/internal/custom-dropdown.js +270 -0
- package/dist/examples/internal/custom-dropdown.js.map +1 -0
- package/dist/examples/internal/custom-renderable-form.d.ts +43 -0
- package/dist/examples/internal/custom-renderable-form.d.ts.map +1 -0
- package/dist/examples/internal/custom-renderable-form.js +284 -0
- package/dist/examples/internal/custom-renderable-form.js.map +1 -0
- package/dist/examples/internal/custom-renderable-list-default-search.d.ts +2 -0
- package/dist/examples/internal/custom-renderable-list-default-search.d.ts.map +1 -0
- package/dist/examples/internal/custom-renderable-list-default-search.js +16 -0
- package/dist/examples/internal/custom-renderable-list-default-search.js.map +1 -0
- package/dist/examples/internal/custom-renderable-list-v2-default-search.d.ts +2 -0
- package/dist/examples/internal/custom-renderable-list-v2-default-search.d.ts.map +1 -0
- package/dist/examples/internal/custom-renderable-list-v2-default-search.js +24 -0
- package/dist/examples/internal/custom-renderable-list-v2-default-search.js.map +1 -0
- package/dist/examples/internal/custom-renderable-list-v2.d.ts +189 -0
- package/dist/examples/internal/custom-renderable-list-v2.d.ts.map +1 -0
- package/dist/examples/internal/custom-renderable-list-v2.js +708 -0
- package/dist/examples/internal/custom-renderable-list-v2.js.map +1 -0
- package/dist/examples/internal/custom-renderable-list.d.ts +72 -0
- package/dist/examples/internal/custom-renderable-list.d.ts.map +1 -0
- package/dist/examples/internal/custom-renderable-list.js +544 -0
- package/dist/examples/internal/custom-renderable-list.js.map +1 -0
- package/dist/examples/internal/rhf-custom-ref.js +5 -4
- package/dist/examples/internal/rhf-custom-ref.js.map +1 -1
- package/dist/examples/internal/scrollbox-with-descendants.js +4 -2
- package/dist/examples/internal/scrollbox-with-descendants.js.map +1 -1
- package/dist/examples/list-controlled-search.d.ts +2 -0
- package/dist/examples/list-controlled-search.d.ts.map +1 -0
- package/dist/examples/list-controlled-search.js +12 -0
- package/dist/examples/list-controlled-search.js.map +1 -0
- package/dist/examples/list-detail-metadata.js +1 -1
- package/dist/examples/list-detail-metadata.js.map +1 -1
- package/dist/examples/simple-image-mask.d.ts +8 -0
- package/dist/examples/simple-image-mask.d.ts.map +1 -0
- package/dist/examples/simple-image-mask.js +12 -0
- package/dist/examples/simple-image-mask.js.map +1 -0
- package/dist/examples/toast-variations.js +1 -1
- package/dist/examples/toast-variations.js.map +1 -1
- package/dist/extensions/dev.d.ts.map +1 -1
- package/dist/extensions/dev.js +3 -2
- package/dist/extensions/dev.js.map +1 -1
- package/dist/extensions/react-refresh-init.d.ts.map +1 -1
- package/dist/extensions/react-refresh-init.js +4 -3
- package/dist/extensions/react-refresh-init.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -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 +2 -1
- package/dist/internal/date-picker-widget.js.map +1 -1
- package/dist/internal/dialog.d.ts +6 -0
- package/dist/internal/dialog.d.ts.map +1 -1
- package/dist/internal/dialog.js +59 -18
- package/dist/internal/dialog.js.map +1 -1
- package/dist/internal/navigation.d.ts.map +1 -1
- package/dist/internal/navigation.js +8 -1
- package/dist/internal/navigation.js.map +1 -1
- package/dist/internal/offscreen.d.ts +3 -0
- package/dist/internal/offscreen.d.ts.map +1 -1
- package/dist/internal/offscreen.js +5 -0
- package/dist/internal/offscreen.js.map +1 -1
- package/dist/internal/providers.d.ts.map +1 -1
- package/dist/internal/providers.js +20 -3
- package/dist/internal/providers.js.map +1 -1
- package/dist/internal/scrollbox.d.ts.map +1 -1
- package/dist/internal/scrollbox.js +3 -2
- package/dist/internal/scrollbox.js.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +4 -0
- package/dist/logger.js.map +1 -1
- package/dist/preload.js +5 -17
- package/dist/preload.js.map +1 -1
- package/dist/state.d.ts +4 -0
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +4 -0
- package/dist/state.js.map +1 -1
- package/dist/test-border-overlay.d.ts +2 -0
- package/dist/test-border-overlay.d.ts.map +1 -0
- package/dist/test-border-overlay.js +7 -0
- package/dist/test-border-overlay.js.map +1 -0
- package/dist/test-layout-2.d.ts +2 -0
- package/dist/test-layout-2.d.ts.map +1 -0
- package/dist/test-layout-2.js +5 -0
- package/dist/test-layout-2.js.map +1 -0
- package/dist/test-layout.d.ts +2 -0
- package/dist/test-layout.d.ts.map +1 -0
- package/dist/test-layout.js +7 -0
- package/dist/test-layout.js.map +1 -0
- package/dist/theme.d.ts +1 -2
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +5 -9
- package/dist/theme.js.map +1 -1
- package/dist/utils/run-command.d.ts +1 -1
- package/dist/utils/run-command.d.ts.map +1 -1
- package/dist/utils/run-command.js +27 -7
- package/dist/utils/run-command.js.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +44 -23
- package/dist/utils.js.map +1 -1
- package/dist/watcher.d.ts.map +1 -1
- package/dist/watcher.js +24 -4
- package/dist/watcher.js.map +1 -1
- package/package.json +14 -12
- package/src/action-utils.tsx +10 -0
- package/src/apis/cache.test.ts +35 -3
- package/src/apis/cache.tsx +184 -59
- package/src/apis/clipboard.tsx +5 -0
- package/src/apis/oauth.tsx +33 -4
- package/src/build.tsx +35 -58
- package/src/cli.tsx +156 -134
- package/src/compile.tsx +6 -3
- package/src/compile.vitest.tsx +33 -15
- package/src/components/actions.tsx +230 -99
- package/src/components/alert.tsx +11 -10
- package/src/components/animation-tick.tsx +1 -1
- package/src/components/detail.tsx +56 -151
- package/src/components/dropdown.tsx +70 -36
- package/src/components/footer.tsx +58 -33
- package/src/components/form/checkbox.tsx +30 -32
- package/src/components/form/date-picker.tsx +27 -47
- package/src/components/form/description.tsx +19 -18
- package/src/components/form/dropdown.tsx +95 -103
- package/src/components/form/file-autocomplete.tsx +9 -8
- package/src/components/form/file-picker.tsx +46 -46
- package/src/components/form/form-end.tsx +6 -4
- package/src/components/form/index.tsx +38 -48
- package/src/components/form/password-field.tsx +25 -27
- package/src/components/form/separator.tsx +3 -2
- package/src/components/form/tagpicker.tsx +2 -1
- package/src/components/form/text-area.tsx +25 -30
- package/src/components/form/text-field.tsx +25 -27
- package/src/components/form/use-form-navigation.tsx +4 -5
- package/src/components/form/with-left-border.tsx +48 -10
- package/src/components/icon.tsx +69 -0
- package/src/components/image.tsx +60 -7
- package/src/components/list.tsx +270 -202
- package/src/components/loading-bar.tsx +4 -3
- package/src/components/metadata.tsx +217 -0
- package/src/components/theme-picker.tsx +3 -2
- package/src/examples/actions-context.tsx +63 -0
- package/src/examples/actions-context.vitest.tsx +110 -0
- package/src/examples/actions-dialog-layout.vitest.tsx +2 -1
- package/src/examples/file-autocomplete.vitest.tsx +15 -15
- package/src/examples/form-basic.tsx +12 -0
- package/src/examples/form-basic.vitest.tsx +74 -74
- package/src/examples/form-dropdown.tsx +8 -0
- package/src/examples/form-dropdown.vitest.tsx +364 -421
- package/src/examples/form-tagpicker.vitest.tsx +56 -54
- package/src/examples/github.vitest.tsx +252 -0
- package/src/examples/internal/rhf-custom-ref.tsx +16 -15
- package/src/examples/internal/scrollbox-with-descendants.tsx +4 -2
- package/src/examples/internal/simple-dialog.tsx +1 -1
- package/src/examples/internal/simple-scrollbox.vitest.tsx +14 -9
- package/src/examples/list-controlled-search.tsx +28 -0
- package/src/examples/list-controlled-search.vitest.tsx +49 -0
- package/src/examples/list-detail-metadata.tsx +8 -5
- package/src/examples/list-detail-metadata.vitest.tsx +22 -22
- package/src/examples/list-dropdown-default.vitest.tsx +12 -12
- package/src/examples/list-scrollbox.vitest.tsx +52 -38
- package/src/examples/list-with-detail.vitest.tsx +45 -41
- package/src/examples/list-with-dropdown.vitest.tsx +5 -5
- package/src/examples/list-with-sections.vitest.tsx +65 -12
- package/src/examples/list-with-toast.vitest.tsx +4 -4
- package/src/examples/simple-file-picker.vitest.tsx +12 -12
- package/src/examples/simple-grid.vitest.tsx +53 -53
- package/src/examples/simple-image-mask.tsx +58 -0
- package/src/examples/simple-navigation.vitest.tsx +19 -19
- package/src/examples/store.vitest.tsx +1 -1
- package/src/examples/swift-extension.vitest.tsx +4 -2
- package/src/examples/synonyms.vitest.tsx +31 -9
- package/src/examples/toast-action.vitest.tsx +8 -8
- package/src/examples/toast-variations.tsx +1 -1
- package/src/examples/toast-variations.vitest.tsx +69 -134
- package/src/extensions/dev.tsx +3 -2
- package/src/extensions/dev.vitest.tsx +65 -28
- package/src/extensions/react-refresh-init.tsx +4 -3
- package/src/index.tsx +3 -1
- package/src/internal/date-picker-widget.tsx +2 -1
- package/src/internal/dialog.tsx +100 -28
- package/src/internal/navigation.tsx +8 -1
- package/src/internal/offscreen.tsx +10 -0
- package/src/internal/providers.tsx +34 -8
- package/src/internal/scrollbox.tsx +4 -2
- package/src/logger.tsx +4 -0
- package/src/preload.tsx +5 -17
- package/src/state.tsx +12 -0
- package/src/theme.tsx +6 -9
- package/src/utils/run-command.tsx +32 -8
- package/src/utils.tsx +58 -23
- package/src/watcher.tsx +26 -6
|
@@ -1,18 +1,33 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
|
|
2
|
-
import React, { useRef } from 'react';
|
|
3
|
-
import {
|
|
4
|
-
import { WithLeftBorder } from './with-left-border';
|
|
2
|
+
import React, { useRef, useCallback } from 'react';
|
|
3
|
+
import { useTheme } from 'termcast/src/theme';
|
|
4
|
+
import { WithLeftBorder, TitleIndicator } from './with-left-border';
|
|
5
5
|
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
9
|
import { FileAutocompleteDialog, createFileAutocompleteStore } from './file-autocomplete';
|
|
10
|
-
import { useFormNavigationHelpers } from './use-form-navigation';
|
|
11
10
|
import { useDialog } from 'termcast/src/internal/dialog';
|
|
12
11
|
import { LoadingText } from 'termcast/src/components/loading-text';
|
|
12
|
+
import { useStore } from 'termcast/src/state';
|
|
13
13
|
const FilePickerField = ({ field, fieldState, formState, props, isFocused, setFocusedField, isFormLoading, }) => {
|
|
14
|
+
const theme = useTheme();
|
|
14
15
|
const isInFocus = useIsInFocus();
|
|
15
16
|
const inputRef = React.useRef(null);
|
|
17
|
+
// Ref callback that registers the textarea in global state for ESC handling
|
|
18
|
+
const setInputRef = useCallback((node) => {
|
|
19
|
+
if (!node)
|
|
20
|
+
return;
|
|
21
|
+
inputRef.current = node;
|
|
22
|
+
useStore.setState({ activeSearchInputRef: node });
|
|
23
|
+
// React 19: return cleanup function for unmount
|
|
24
|
+
return () => {
|
|
25
|
+
if (useStore.getState().activeSearchInputRef === node) {
|
|
26
|
+
useStore.setState({ activeSearchInputRef: null });
|
|
27
|
+
}
|
|
28
|
+
inputRef.current = null;
|
|
29
|
+
};
|
|
30
|
+
}, []);
|
|
16
31
|
const dialog = useDialog();
|
|
17
32
|
// Create store once for sharing state with dialog
|
|
18
33
|
const [store] = React.useState(() => createFileAutocompleteStore());
|
|
@@ -78,9 +93,9 @@ const FilePickerField = ({ field, fieldState, formState, props, isFocused, setFo
|
|
|
78
93
|
}
|
|
79
94
|
});
|
|
80
95
|
const selectedFiles = field.value || [];
|
|
81
|
-
return (
|
|
82
|
-
|
|
83
|
-
|
|
96
|
+
return (_jsx("box", { flexDirection: 'column', children: _jsxs(WithLeftBorder, { isFocused: isFocused, paddingBottom: 1, children: [_jsx(TitleIndicator, { isFocused: isFocused, isLoading: isFormLoading, children: _jsx("box", { onMouseDown: () => {
|
|
97
|
+
setFocusedField(props.id);
|
|
98
|
+
}, children: _jsx(LoadingText, { isLoading: isFocused && isFormLoading, color: isFocused ? theme.primary : theme.text, children: props.title || 'File Path' }) }) }), _jsxs("box", { flexDirection: 'column', children: [_jsx("textarea", { ref: setInputRef, height: 1, wrapMode: 'none', keyBindings: [
|
|
84
99
|
{ name: 'return', action: 'submit' },
|
|
85
100
|
{ name: 'linefeed', action: 'submit' },
|
|
86
101
|
], initialValue: "", placeholder: props.placeholder || 'Enter file path...', focused: isFocused, showCursor: dialog.stack.length === 0, onMouseDown: () => setFocusedField(props.id), onContentChange: () => {
|
|
@@ -89,7 +104,7 @@ const FilePickerField = ({ field, fieldState, formState, props, isFocused, setFo
|
|
|
89
104
|
if (value && isFocused) {
|
|
90
105
|
showAutocomplete();
|
|
91
106
|
}
|
|
92
|
-
} }), selectedFiles.length > 0 && (_jsxs("box", { flexDirection: 'column', marginTop: 1, children: [_jsx("text", { fg:
|
|
107
|
+
} }), selectedFiles.length > 0 && (_jsxs("box", { flexDirection: 'column', marginTop: 1, children: [_jsx("text", { fg: theme.textMuted, children: "Selected files:" }), selectedFiles.map((file, index) => (_jsxs("text", { fg: theme.text, children: ["\u2022 ", file] }, index)))] }))] }), (fieldState.error || props.error) && (_jsx("text", { fg: theme.error, children: fieldState.error?.message || props.error })), props.info && (_jsx("text", { fg: theme.textMuted, children: props.info }))] }) }));
|
|
93
108
|
};
|
|
94
109
|
export const FilePicker = (props) => {
|
|
95
110
|
const { control } = useFormContext();
|
|
@@ -103,20 +118,6 @@ export const FilePicker = (props) => {
|
|
|
103
118
|
id: props.id,
|
|
104
119
|
elementRef: elementRef.current,
|
|
105
120
|
});
|
|
106
|
-
const { navigateToPrevious, navigateToNext } = useFormNavigationHelpers(props.id);
|
|
107
|
-
// Handle keyboard navigation
|
|
108
|
-
useKeyboard((evt) => {
|
|
109
|
-
if (!isFocused || !isInFocus)
|
|
110
|
-
return;
|
|
111
|
-
if (evt.name === 'tab') {
|
|
112
|
-
if (evt.shift) {
|
|
113
|
-
navigateToPrevious();
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
navigateToNext();
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
121
|
return (_jsx(Controller, { name: props.id, control: control, defaultValue: props.defaultValue || props.value || [], render: (renderProps) => {
|
|
121
122
|
return (_jsx("box", { ref: elementRef, flexDirection: 'column', children: _jsx(FilePickerField, { ...renderProps, props: props, isFocused: isFocused, setFocusedField: setFocusedField, isFormLoading: focusContext.isLoading }) }));
|
|
122
123
|
} }));
|
|
@@ -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;
|
|
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":"form-end.d.ts","sourceRoot":"","sources":["../../../src/components/form/form-end.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,OAAO,QAAO,
|
|
1
|
+
{"version":3,"file":"form-end.d.ts","sourceRoot":"","sources":["../../../src/components/form/form-end.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,OAAO,QAAO,GAwB1B,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx } from "@opentui/react/jsx-runtime";
|
|
2
2
|
import { useState, useLayoutEffect } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { useTheme } from 'termcast/src/theme';
|
|
4
4
|
import { useFocusContext, useFormScrollContext } from './index';
|
|
5
5
|
export const FormEnd = () => {
|
|
6
|
+
const theme = useTheme();
|
|
6
7
|
const { focusedField } = useFocusContext();
|
|
7
8
|
const scrollContext = useFormScrollContext();
|
|
8
9
|
const [isLastFieldFocused, setIsLastFieldFocused] = useState(false);
|
|
@@ -11,7 +12,8 @@ export const FormEnd = () => {
|
|
|
11
12
|
setIsLastFieldFocused(false);
|
|
12
13
|
return;
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
+
// Use committedMap for stability
|
|
16
|
+
const descendants = Object.values(scrollContext.descendantsContext.committedMap)
|
|
15
17
|
.filter((item) => item.index !== -1 && item.props?.id)
|
|
16
18
|
.sort((a, b) => a.index - b.index);
|
|
17
19
|
if (descendants.length === 0) {
|
|
@@ -20,7 +22,7 @@ export const FormEnd = () => {
|
|
|
20
22
|
}
|
|
21
23
|
const lastField = descendants[descendants.length - 1];
|
|
22
24
|
setIsLastFieldFocused(lastField.props?.id === focusedField);
|
|
23
|
-
}, [focusedField]);
|
|
24
|
-
return _jsx("text", { fg: isLastFieldFocused ?
|
|
25
|
+
}, [focusedField, scrollContext?.descendantsContext.committedMap]);
|
|
26
|
+
return _jsx("text", { fg: isLastFieldFocused ? theme.accent : theme.text, children: "\u2514" });
|
|
25
27
|
};
|
|
26
28
|
//# sourceMappingURL=form-end.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-end.js","sourceRoot":"","sources":["../../../src/components/form/form-end.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACxD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"form-end.js","sourceRoot":"","sources":["../../../src/components/form/form-end.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE/D,MAAM,CAAC,MAAM,OAAO,GAAG,GAAQ,EAAE;IAC/B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAA;IAC1C,MAAM,aAAa,GAAG,oBAAoB,EAAE,CAAA;IAC5C,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEnE,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,EAAE,CAAC;YACpC,qBAAqB,CAAC,KAAK,CAAC,CAAA;YAC5B,OAAM;QACR,CAAC;QACD,iCAAiC;QACjC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,YAAY,CAAC;aAC7E,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;aACrD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,qBAAqB,CAAC,KAAK,CAAC,CAAA;YAC5B,OAAM;QACR,CAAC;QACD,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACrD,qBAAqB,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,KAAK,YAAY,CAAC,CAAA;IAC7D,CAAC,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAA;IAElE,OAAO,eAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,uBAAU,CAAA;AAC3E,CAAC,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { BoxRenderable } from '@opentui/core';
|
|
3
|
+
interface FormFieldWrapperProps {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
withDiamond?: boolean;
|
|
6
|
+
customCharacter?: {
|
|
7
|
+
focused: string;
|
|
8
|
+
unfocused: string;
|
|
9
|
+
};
|
|
10
|
+
isFocused: boolean;
|
|
11
|
+
isLoading?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare const FormFieldWrapper: React.ForwardRefExoticComponent<FormFieldWrapperProps & React.RefAttributes<BoxRenderable>>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=form-field-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-field-wrapper.d.ts","sourceRoot":"","sources":["../../../src/components/form/form-field-wrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAsB7C,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,eAAe,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IACxD,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,eAAO,MAAM,gBAAgB,6FAkC5B,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { useTheme } from 'termcast/src/theme';
|
|
4
|
+
import { colord } from 'colord';
|
|
5
|
+
import { useAnimationTick, TICK_DIVISORS } from 'termcast/src/components/animation-tick';
|
|
6
|
+
import { forwardRef } from 'react';
|
|
7
|
+
function Spinner() {
|
|
8
|
+
const theme = useTheme();
|
|
9
|
+
const tick = useAnimationTick(TICK_DIVISORS.SPINNER);
|
|
10
|
+
const spinnerFrames = [
|
|
11
|
+
{ char: ' ', color: theme.accent },
|
|
12
|
+
{ char: '·', color: theme.accent },
|
|
13
|
+
{ char: '•', color: colord(theme.accent).lighten(0.1).toHex() },
|
|
14
|
+
];
|
|
15
|
+
const frame = spinnerFrames[tick % spinnerFrames.length];
|
|
16
|
+
return (_jsx("text", { flexShrink: 0, fg: frame.color, children: _jsx("b", { children: frame.char }) }));
|
|
17
|
+
}
|
|
18
|
+
export const FormFieldWrapper = forwardRef(({ children, withDiamond, customCharacter, isFocused, isLoading }, ref) => {
|
|
19
|
+
const theme = useTheme();
|
|
20
|
+
return (_jsx("box", { ref: ref, flexDirection: 'column', children: React.Children.map(children, (child) => {
|
|
21
|
+
if (withDiamond || customCharacter) {
|
|
22
|
+
const chars = customCharacter || { focused: '◆', unfocused: '◇' };
|
|
23
|
+
const color = isFocused ? theme.accent : theme.text;
|
|
24
|
+
return (_jsxs("box", { flexDirection: 'row', children: [isFocused && isLoading ? (_jsx(Spinner, {})) : (_jsx("text", { flexShrink: 0, fg: color, children: _jsx("b", { children: isFocused ? chars.focused : chars.unfocused }) }, String(isFocused))), _jsx("box", { flexShrink: 0, flexGrow: 1, paddingLeft: 2, children: child })] }));
|
|
25
|
+
}
|
|
26
|
+
return (_jsx("box", { flexDirection: 'row', paddingLeft: 2, border: ['left'], borderColor: isFocused ? theme.accent : theme.text, children: _jsx("box", { flexGrow: 1, children: child }) }));
|
|
27
|
+
}) }));
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=form-field-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-field-wrapper.js","sourceRoot":"","sources":["../../../src/components/form/form-field-wrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAElC,SAAS,OAAO;IACd,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,IAAI,GAAG,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IACpD,MAAM,aAAa,GAAG;QACpB,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE;QAClC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE;QAClC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;KAChE,CAAA;IACD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACxD,OAAO,CACL,eAAM,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,YAClC,sBAAI,KAAK,CAAC,IAAI,GAAK,GACd,CACR,CAAA;AACH,CAAC;AAUD,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CACxC,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE;IACxE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IAExB,OAAO,CACL,cAAK,GAAG,EAAE,GAAG,EAAE,aAAa,EAAC,QAAQ,YAClC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YACtC,IAAI,WAAW,IAAI,eAAe,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,eAAe,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAA;gBACjE,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAA;gBACnD,OAAO,CACL,eAAK,aAAa,EAAC,KAAK,aACrB,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CACxB,KAAC,OAAO,KAAG,CACZ,CAAC,CAAC,CAAC,CACF,eAA8B,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,YACpD,sBAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,GAAK,IAD3C,MAAM,CAAC,SAAS,CAAC,CAErB,CACR,EACD,cAAK,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,YAC5C,KAAK,GACF,IACF,CACP,CAAA;YACH,CAAC;YACD,OAAO,CACL,cAAK,aAAa,EAAC,KAAK,EAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,YAC3G,cAAK,QAAQ,EAAE,CAAC,YAAG,KAAK,GAAO,GAC3B,CACP,CAAA;QACH,CAAC,CAAC,GACE,CACP,CAAA;AACH,CAAC,CACF,CAAA"}
|
|
@@ -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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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
|
|
2
2
|
import { useState, createContext, useContext, useRef, useEffect, } from 'react';
|
|
3
|
-
import { useKeyboard } from '@opentui/react';
|
|
3
|
+
import { useKeyboard, flushSync } from '@opentui/react';
|
|
4
4
|
import { useForm, FormProvider } from 'react-hook-form';
|
|
5
|
-
import { ActionPanel } from 'termcast/src/components/actions';
|
|
6
5
|
import { logger } from 'termcast/src/logger';
|
|
7
6
|
import { useIsInFocus } from 'termcast/src/internal/focus-context';
|
|
8
7
|
import { useDialog } from 'termcast/src/internal/dialog';
|
|
9
|
-
import {
|
|
8
|
+
import { Offscreen } from 'termcast/src/internal/offscreen';
|
|
9
|
+
import { useTheme } from 'termcast/src/theme';
|
|
10
10
|
import { useStore } from 'termcast/src/state';
|
|
11
11
|
import { Footer } from 'termcast/src/components/footer';
|
|
12
12
|
import { TextAttributes, } from '@opentui/core';
|
|
@@ -37,8 +37,9 @@ export const useFormSubmit = () => {
|
|
|
37
37
|
return context; // Can be null if not in a form
|
|
38
38
|
};
|
|
39
39
|
function FormFooter() {
|
|
40
|
+
const theme = useTheme();
|
|
40
41
|
const hasToast = useStore((s) => s.toast !== null);
|
|
41
|
-
const content = hasToast ? null : (_jsxs("box", { style: { flexDirection: 'row', gap: 3 }, children: [_jsxs("box", { style: { flexDirection: 'row', gap: 1 }, children: [_jsx("text", { flexShrink: 0, fg:
|
|
42
|
+
const content = hasToast ? null : (_jsxs("box", { style: { flexDirection: 'row', gap: 3 }, children: [_jsxs("box", { style: { flexDirection: 'row', gap: 1 }, children: [_jsx("text", { flexShrink: 0, fg: theme.text, attributes: TextAttributes.BOLD, children: "ctrl \u21B5" }), _jsx("text", { flexShrink: 0, fg: theme.textMuted, children: "submit" })] }), _jsxs("box", { style: { flexDirection: 'row', gap: 1 }, children: [_jsx("text", { flexShrink: 0, fg: theme.text, attributes: TextAttributes.BOLD, children: "tab" }), _jsx("text", { flexShrink: 0, fg: theme.textMuted, children: "navigate" })] }), _jsxs("box", { style: { flexDirection: 'row', gap: 1 }, children: [_jsx("text", { flexShrink: 0, fg: theme.text, attributes: TextAttributes.BOLD, children: "^k" }), _jsx("text", { flexShrink: 0, fg: theme.textMuted, children: "actions" })] })] }));
|
|
42
43
|
return _jsx(Footer, { children: content });
|
|
43
44
|
}
|
|
44
45
|
export const Form = ((props) => {
|
|
@@ -51,19 +52,12 @@ export const Form = ((props) => {
|
|
|
51
52
|
const navigationPending = useNavigationPending();
|
|
52
53
|
const scrollBoxRef = useRef(null);
|
|
53
54
|
const descendantsContext = useFormFieldDescendants();
|
|
54
|
-
// Helper to get sorted field IDs
|
|
55
|
-
const getFieldIds = () => {
|
|
56
|
-
return Object.values(descendantsContext.map.current)
|
|
57
|
-
.filter((item) => item.index !== -1 && item.props?.id)
|
|
58
|
-
.sort((a, b) => a.index - b.index)
|
|
59
|
-
.map((item) => item.props.id);
|
|
60
|
-
};
|
|
61
55
|
const scrollToField = (fieldId) => {
|
|
62
56
|
const scrollBox = scrollBoxRef.current;
|
|
63
57
|
if (!scrollBox)
|
|
64
58
|
return;
|
|
65
|
-
// Find field in
|
|
66
|
-
const field = Object.values(descendantsContext.
|
|
59
|
+
// Find field in committedMap by matching props.id
|
|
60
|
+
const field = Object.values(descendantsContext.committedMap).find((item) => item.props?.id === fieldId);
|
|
67
61
|
const elementRef = field?.props?.elementRef;
|
|
68
62
|
if (!elementRef)
|
|
69
63
|
return;
|
|
@@ -76,11 +70,20 @@ export const Form = ((props) => {
|
|
|
76
70
|
scrollBox.scrollTo(Math.max(0, targetScrollTop));
|
|
77
71
|
};
|
|
78
72
|
const setFocusedField = (id) => {
|
|
79
|
-
|
|
73
|
+
flushSync(() => {
|
|
74
|
+
setFocusedFieldRaw(id);
|
|
75
|
+
});
|
|
80
76
|
if (id) {
|
|
81
77
|
scrollToField(id);
|
|
82
78
|
}
|
|
83
79
|
};
|
|
80
|
+
// Helper to get sorted field IDs - uses committedMap for stability
|
|
81
|
+
const getFieldIds = () => {
|
|
82
|
+
return Object.values(descendantsContext.committedMap)
|
|
83
|
+
.filter((item) => item.index !== -1 && item.props?.id)
|
|
84
|
+
.sort((a, b) => a.index - b.index)
|
|
85
|
+
.map((item) => item.props.id);
|
|
86
|
+
};
|
|
84
87
|
// Focus first field helper
|
|
85
88
|
const focusFirstField = () => {
|
|
86
89
|
const fieldIds = getFieldIds();
|
|
@@ -102,16 +105,15 @@ export const Form = ((props) => {
|
|
|
102
105
|
return false;
|
|
103
106
|
};
|
|
104
107
|
// Auto-focus first field when descendants become available
|
|
105
|
-
// Runs on every render until a field is focused (handles async loading)
|
|
106
108
|
useEffect(() => {
|
|
107
109
|
if (focusedField)
|
|
108
110
|
return;
|
|
109
111
|
const fieldIds = getFieldIds();
|
|
110
112
|
if (fieldIds.length > 0) {
|
|
111
113
|
logger.log(`auto-focusing first field:`, fieldIds[0]);
|
|
112
|
-
|
|
114
|
+
setFocusedField(fieldIds[0]);
|
|
113
115
|
}
|
|
114
|
-
});
|
|
116
|
+
}, [descendantsContext.committedMap]);
|
|
115
117
|
// Get focus state and dialog
|
|
116
118
|
const inFocus = useIsInFocus();
|
|
117
119
|
const dialog = useDialog();
|
|
@@ -174,18 +176,16 @@ export const Form = ((props) => {
|
|
|
174
176
|
return;
|
|
175
177
|
}
|
|
176
178
|
if (evt.name === 'k' && evt.ctrl) {
|
|
177
|
-
// Ctrl+K shows actions
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
// Ctrl+Return executes first action directly
|
|
182
|
-
useStore.setState({ shouldAutoExecuteFirstAction: true });
|
|
183
|
-
dialog.pushActions(_jsx(FormSubmitContext.Provider, { value: submitContextValue, children: props.actions }), 'center');
|
|
179
|
+
// Ctrl+K shows actions dialog via portal
|
|
180
|
+
if (props.actions) {
|
|
181
|
+
useStore.setState({ showActionsDialog: true });
|
|
182
|
+
}
|
|
184
183
|
}
|
|
185
|
-
else if (evt.name === 'return' && evt.
|
|
186
|
-
// Cmd+Return
|
|
187
|
-
|
|
188
|
-
|
|
184
|
+
else if ((evt.name === 'return' && evt.ctrl) || (evt.name === 'return' && evt.meta)) {
|
|
185
|
+
// Ctrl+Return or Cmd+Return auto-executes first action via ActionPanel
|
|
186
|
+
if (props.actions) {
|
|
187
|
+
useStore.setState({ shouldAutoExecuteFirstAction: true });
|
|
188
|
+
}
|
|
189
189
|
}
|
|
190
190
|
});
|
|
191
191
|
const submitContextValue = {
|
|
@@ -208,7 +208,7 @@ export const Form = ((props) => {
|
|
|
208
208
|
contentOptions: {
|
|
209
209
|
justifyContent: 'center',
|
|
210
210
|
},
|
|
211
|
-
}, children: _jsx("box", { children: _jsxs(FormFieldDescendantsProvider, { value: descendantsContext, children: [props.children, _jsx(FormEnd, {})] }) }) }), _jsx(FormFooter, {})] }) }) }) }) }) }));
|
|
211
|
+
}, children: _jsx("box", { children: _jsxs(FormFieldDescendantsProvider, { value: descendantsContext, children: [props.children, _jsx(FormEnd, {})] }) }) }), _jsx(FormFooter, {}), props.actions && _jsx(Offscreen, { children: props.actions })] }) }) }) }) }) }));
|
|
212
212
|
});
|
|
213
213
|
// Import and assign components after Form is defined
|
|
214
214
|
import { TextField } from './text-field';
|
|
@@ -234,12 +234,13 @@ Form.Separator = Separator;
|
|
|
234
234
|
Form.Description = Description;
|
|
235
235
|
// LinkAccessory component - shows a link in the navigation bar
|
|
236
236
|
function LinkAccessory(props) {
|
|
237
|
+
const theme = useTheme();
|
|
237
238
|
return (_jsx("box", { style: {
|
|
238
239
|
flexShrink: 0,
|
|
239
240
|
maxWidth: '50%',
|
|
240
241
|
overflow: 'hidden',
|
|
241
242
|
paddingRight: 1,
|
|
242
|
-
}, children: _jsx("text", { fg:
|
|
243
|
+
}, children: _jsx("text", { fg: theme.textMuted, attributes: TextAttributes.UNDERLINE, wrapMode: 'none', children: props.text }) }));
|
|
243
244
|
}
|
|
244
245
|
Form.LinkAccessory = LinkAccessory;
|
|
245
246
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/form/index.tsx"],"names":[],"mappings":";AAAA,OAAc,EACZ,QAAQ,EACR,aAAa,EACb,UAAU,EAEV,MAAM,EACN,SAAS,GACV,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/form/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password-field.d.ts","sourceRoot":"","sources":["../../../src/components/form/password-field.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAMpD,MAAM,WAAW,kBAAmB,SAAQ,aAAa,CAAC,MAAM,CAAC;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAA;AAE1C,eAAO,MAAM,aAAa,GAAI,OAAO,kBAAkB,KAAG,
|
|
1
|
+
{"version":3,"file":"password-field.d.ts","sourceRoot":"","sources":["../../../src/components/form/password-field.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAMpD,MAAM,WAAW,kBAAmB,SAAQ,aAAa,CAAC,MAAM,CAAC;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAA;AAE1C,eAAO,MAAM,aAAa,GAAI,OAAO,kBAAkB,KAAG,GAuFzD,CAAA"}
|
|
@@ -2,11 +2,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
|
|
|
2
2
|
import { useRef, useState } from 'react';
|
|
3
3
|
import { useFormContext, Controller } from 'react-hook-form';
|
|
4
4
|
import { useFocusContext, useFormFieldDescendant } from './index';
|
|
5
|
-
import {
|
|
6
|
-
import { WithLeftBorder } from './with-left-border';
|
|
5
|
+
import { useTheme } from 'termcast/src/theme';
|
|
6
|
+
import { WithLeftBorder, TitleIndicator } from './with-left-border';
|
|
7
7
|
import { useFormNavigation } from './use-form-navigation';
|
|
8
8
|
import { LoadingText } from 'termcast/src/components/loading-text';
|
|
9
9
|
export const PasswordField = (props) => {
|
|
10
|
+
const theme = useTheme();
|
|
10
11
|
const { control } = useFormContext();
|
|
11
12
|
const focusContext = useFocusContext();
|
|
12
13
|
const { focusedField, setFocusedField } = focusContext;
|
|
@@ -21,9 +22,9 @@ export const PasswordField = (props) => {
|
|
|
21
22
|
useFormNavigation(props.id);
|
|
22
23
|
return (_jsx(Controller, { name: props.id, control: control, defaultValue: props.defaultValue || props.value || '', render: ({ field, fieldState }) => {
|
|
23
24
|
const displayValue = '*'.repeat(displayLength);
|
|
24
|
-
return (
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
return (_jsx("box", { ref: elementRef, flexDirection: "column", children: _jsxs(WithLeftBorder, { isFocused: isFocused, paddingBottom: 1, children: [_jsx(TitleIndicator, { isFocused: isFocused, isLoading: focusContext.isLoading, children: _jsx("box", { onMouseDown: () => {
|
|
26
|
+
setFocusedField(props.id);
|
|
27
|
+
}, children: _jsx(LoadingText, { isLoading: isFocused && focusContext.isLoading, color: isFocused ? theme.primary : theme.text, children: props.title || '' }) }) }), _jsx("input", { value: displayValue, onInput: (newDisplay) => {
|
|
27
28
|
if (!isFocused)
|
|
28
29
|
return;
|
|
29
30
|
const currentValue = realValueRef.current;
|
|
@@ -46,7 +47,7 @@ export const PasswordField = (props) => {
|
|
|
46
47
|
props.onChange?.(newValue);
|
|
47
48
|
}, placeholder: props.placeholder, focused: isFocused, onMouseDown: () => {
|
|
48
49
|
setFocusedField(props.id);
|
|
49
|
-
} })
|
|
50
|
+
} }), (fieldState.error || props.error || props.info) && _jsx("box", { height: 1 }), (fieldState.error || props.error) && (_jsx("text", { fg: theme.error, children: fieldState.error?.message || props.error })), props.info && (_jsx("text", { fg: theme.textMuted, children: props.info }))] }) }));
|
|
50
51
|
} }));
|
|
51
52
|
};
|
|
52
53
|
//# sourceMappingURL=password-field.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password-field.js","sourceRoot":"","sources":["../../../src/components/form/password-field.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE/C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAEjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"password-field.js","sourceRoot":"","sources":["../../../src/components/form/password-field.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../../../src/components/form/separator.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,QAAO,
|
|
1
|
+
{"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../../../src/components/form/separator.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,QAAO,GAW5B,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { useTheme } from 'termcast/src/theme';
|
|
3
3
|
import { WithLeftBorder } from './with-left-border';
|
|
4
4
|
export const Separator = () => {
|
|
5
|
+
const theme = useTheme();
|
|
5
6
|
return null;
|
|
6
|
-
return (_jsxs(_Fragment, { children: [_jsx(WithLeftBorder, { withDiamond: true, isFocused: false, children: _jsx("text", { fg:
|
|
7
|
+
return (_jsxs(_Fragment, { children: [_jsx(WithLeftBorder, { withDiamond: true, isFocused: false, children: _jsx("text", { fg: theme.border, children: ''.repeat(40) }) }), "|"] }));
|
|
7
8
|
};
|
|
8
9
|
//# sourceMappingURL=separator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"separator.js","sourceRoot":"","sources":["../../../src/components/form/separator.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"separator.js","sourceRoot":"","sources":["../../../src/components/form/separator.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAG,GAAQ,EAAE;IACjC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,OAAO,IAAI,CAAA;IACX,OAAO,CACL,8BACE,KAAC,cAAc,IAAC,WAAW,QAAC,SAAS,EAAE,KAAK,YAC1C,eAAM,EAAE,EAAE,KAAK,CAAC,MAAM,YAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAQ,GAC/B,SAEhB,CACJ,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tagpicker.d.ts","sourceRoot":"","sources":["../../../src/components/form/tagpicker.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EAEzB,SAAS,EACT,aAAa,EACd,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"tagpicker.d.ts","sourceRoot":"","sources":["../../../src/components/form/tagpicker.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EAEzB,SAAS,EACT,aAAa,EACd,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAIpD;;GAEG;AACH,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAE9E;;GAEG;AACH,KAAK,aAAa,GAAG,OAAO,GAAG,MAAM,CAAA;AAErC;;GAEG;AACH,UAAU,SAAS,CAAC,CAAC,SAAS,SAAS;IACrC,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,CAAC,EAAE,CAAC,CAAA;KACV,CAAA;IACD,IAAI,EAAE,aAAa,CAAA;CACpB;AAED;;GAEG;AACH,UAAU,aAAa,CAAC,CAAC,SAAS,SAAS;IACzC;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,CAAA;IACT;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,CAAA;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IACvC;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;CACvC;AAED;;GAEG;AACH,UAAU,WAAW;IACnB;;OAEG;IACH,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB;;;;;OAKG;IACH,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,aAAa,CAAC,MAAM,EAAE,CAAC;IAC7D;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,CAAA;AAEtC;;GAEG;AACH,UAAU,gBAAgB;IACxB;;OAEG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,GAAG,CAAA;CACzC;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,yBAAyB,CACnD,cAAc,GAAG,aAAa,CAAC,YAAY,CAAC,CAC7C,GACC,gBAAgB,CAAA;AA4FlB,eAAO,MAAM,SAAS,EAEhB,aAAa,CAAA"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx } from "@opentui/react/jsx-runtime";
|
|
2
2
|
import { forwardRef, useImperativeHandle, useRef } from 'react';
|
|
3
|
+
import { getIconValue } from 'termcast/src/components/icon';
|
|
3
4
|
import { Dropdown } from './dropdown';
|
|
4
5
|
// Implementation
|
|
5
6
|
const TagPickerItem = (props) => {
|
|
6
7
|
// Convert TagPickerItem props to DropdownItem props
|
|
7
|
-
return (_jsx(Dropdown.Item, { value: props.value, title: props.title || props.value, icon: props.icon }));
|
|
8
|
+
return (_jsx(Dropdown.Item, { value: props.value, title: props.title || props.value, icon: getIconValue(props.icon) || undefined }));
|
|
8
9
|
};
|
|
9
10
|
const TagPickerComponent = forwardRef((props, ref) => {
|
|
10
11
|
const dropdownRef = useRef(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tagpicker.js","sourceRoot":"","sources":["../../../src/components/form/tagpicker.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAQtE,OAAO,EAAE,QAAQ,EAAoC,MAAM,YAAY,CAAA;AAgJvE,iBAAiB;AAEjB,MAAM,aAAa,GAA0C,CAAC,KAAK,EAAO,EAAE;IAC1E,oDAAoD;IACpD,OAAO,CACL,KAAC,QAAQ,CAAC,IAAI,IACZ,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,EACjC,IAAI,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"tagpicker.js","sourceRoot":"","sources":["../../../src/components/form/tagpicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-area.d.ts","sourceRoot":"","sources":["../../../src/components/form/text-area.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAOpD,MAAM,WAAW,aAAc,SAAQ,aAAa,CAAC,MAAM,CAAC;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,CAAA;AAErC,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,KAAG,
|
|
1
|
+
{"version":3,"file":"text-area.d.ts","sourceRoot":"","sources":["../../../src/components/form/text-area.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAOpD,MAAM,WAAW,aAAc,SAAQ,aAAa,CAAC,MAAM,CAAC;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,CAAA;AAErC,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,KAAG,GAqF/C,CAAA"}
|
|
@@ -2,12 +2,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
|
|
|
2
2
|
import { useRef, useCallback } from 'react';
|
|
3
3
|
import { useFormContext } from 'react-hook-form';
|
|
4
4
|
import { useFocusContext, useFormFieldDescendant } from './index';
|
|
5
|
-
import {
|
|
6
|
-
import { WithLeftBorder } from './with-left-border';
|
|
5
|
+
import { useTheme } from 'termcast/src/theme';
|
|
6
|
+
import { WithLeftBorder, TitleIndicator } from './with-left-border';
|
|
7
7
|
import { useFormNavigation } from './use-form-navigation';
|
|
8
8
|
import { createTextareaFormRef } from './form-ref';
|
|
9
9
|
import { LoadingText } from 'termcast/src/components/loading-text';
|
|
10
10
|
export const TextArea = (props) => {
|
|
11
|
+
const theme = useTheme();
|
|
11
12
|
const { register, formState } = useFormContext();
|
|
12
13
|
const focusContext = useFocusContext();
|
|
13
14
|
const { focusedField, setFocusedField } = focusContext;
|
|
@@ -36,10 +37,10 @@ export const TextArea = (props) => {
|
|
|
36
37
|
props.onChange?.(formRef.value);
|
|
37
38
|
}, [props.onChange]);
|
|
38
39
|
const fieldError = formState.errors[props.id];
|
|
39
|
-
return (
|
|
40
|
-
setFocusedField(props.id);
|
|
41
|
-
}, children: _jsx(LoadingText, { isLoading: isFocused && focusContext.isLoading, color: isFocused ? Theme.primary : Theme.text, children: props.title || '' }) }) }), _jsx(WithLeftBorder, { isFocused: isFocused, children: _jsx("box", { flexGrow: 1, children: _jsx("textarea", { ref: handleRef, wrapMode: 'none', initialValue: props.defaultValue || props.value || '', onContentChange: handleContentChange, minHeight: 4, placeholder: props.placeholder, focused: isFocused, onMouseDown: () => {
|
|
40
|
+
return (_jsx("box", { ref: elementRef, flexDirection: "column", children: _jsxs(WithLeftBorder, { isFocused: isFocused, paddingBottom: 1, children: [_jsx(TitleIndicator, { isFocused: isFocused, isLoading: focusContext.isLoading, children: _jsx("box", { onMouseDown: () => {
|
|
42
41
|
setFocusedField(props.id);
|
|
43
|
-
}
|
|
42
|
+
}, children: _jsx(LoadingText, { isLoading: isFocused && focusContext.isLoading, color: isFocused ? theme.primary : theme.text, children: props.title || '' }) }) }), _jsx("box", { flexGrow: 1, paddingBottom: 1, children: _jsx("textarea", { ref: handleRef, wrapMode: 'none', initialValue: props.defaultValue || props.value || '', onContentChange: handleContentChange, minHeight: 4, placeholder: props.placeholder, focused: isFocused, onMouseDown: () => {
|
|
43
|
+
setFocusedField(props.id);
|
|
44
|
+
} }) }), (fieldError || props.error) && (_jsx("text", { fg: theme.error, children: fieldError?.message || props.error })), props.info && (_jsx("text", { fg: theme.textMuted, children: props.info }))] }) }));
|
|
44
45
|
};
|
|
45
46
|
//# sourceMappingURL=text-area.js.map
|