@alpaca-editor/core 1.0.4114 → 1.0.4118
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/components/FilterInput.js +3 -7
- package/dist/components/FilterInput.js.map +1 -1
- package/dist/components/ui/input.js +1 -1
- package/dist/components/ui/input.js.map +1 -1
- package/dist/config/config.js +1 -1
- package/dist/editor/AspectRatioSelector.js +3 -3
- package/dist/editor/AspectRatioSelector.js.map +1 -1
- package/dist/editor/EditorWarning.js +2 -2
- package/dist/editor/EditorWarning.js.map +1 -1
- package/dist/editor/FieldEditorPopup.js +7 -6
- package/dist/editor/FieldEditorPopup.js.map +1 -1
- package/dist/editor/FieldHistory.js +2 -1
- package/dist/editor/FieldHistory.js.map +1 -1
- package/dist/editor/LinkEditorDialog.d.ts +3 -1
- package/dist/editor/LinkEditorDialog.js +7 -3
- package/dist/editor/LinkEditorDialog.js.map +1 -1
- package/dist/editor/MainLayout.js +3 -3
- package/dist/editor/MainLayout.js.map +1 -1
- package/dist/editor/PictureCropper.js +3 -3
- package/dist/editor/PictureCropper.js.map +1 -1
- package/dist/editor/PictureEditorDialog.js +55 -50
- package/dist/editor/PictureEditorDialog.js.map +1 -1
- package/dist/editor/Terminal.js +4 -4
- package/dist/editor/Terminal.js.map +1 -1
- package/dist/editor/ai/AgentTerminal.js +137 -6
- package/dist/editor/ai/AgentTerminal.js.map +1 -1
- package/dist/editor/ai/Agents.js +2 -2
- package/dist/editor/ai/Agents.js.map +1 -1
- package/dist/editor/ai/ContextInfoBar.js +1 -1
- package/dist/editor/ai/ContextInfoBar.js.map +1 -1
- package/dist/editor/client/GenericDialog.js +3 -3
- package/dist/editor/client/GenericDialog.js.map +1 -1
- package/dist/editor/client/ui/EditorChrome.js +8 -2
- package/dist/editor/client/ui/EditorChrome.js.map +1 -1
- package/dist/editor/commands/localizeItem/LocalizeItemDialog.js +9 -7
- package/dist/editor/commands/localizeItem/LocalizeItemDialog.js.map +1 -1
- package/dist/editor/context-menu/CopyMoveMenu.js +3 -3
- package/dist/editor/context-menu/CopyMoveMenu.js.map +1 -1
- package/dist/editor/control-center/IndexOverview.js +39 -17
- package/dist/editor/control-center/IndexOverview.js.map +1 -1
- package/dist/editor/field-types/CheckboxEditor.js +2 -2
- package/dist/editor/field-types/CheckboxEditor.js.map +1 -1
- package/dist/editor/field-types/DateFieldEditor.js +2 -2
- package/dist/editor/field-types/DateFieldEditor.js.map +1 -1
- package/dist/editor/field-types/DateTimeFieldEditor.js.map +1 -1
- package/dist/editor/field-types/ImageFieldEditor.js +2 -2
- package/dist/editor/field-types/ImageFieldEditor.js.map +1 -1
- package/dist/editor/field-types/InternalLinkFieldEditor.js +2 -2
- package/dist/editor/field-types/InternalLinkFieldEditor.js.map +1 -1
- package/dist/editor/field-types/LinkFieldEditor.js +8 -3
- package/dist/editor/field-types/LinkFieldEditor.js.map +1 -1
- package/dist/editor/field-types/MultiLineText.js +2 -2
- package/dist/editor/field-types/MultiLineText.js.map +1 -1
- package/dist/editor/field-types/PictureFieldEditor.js +3 -2
- package/dist/editor/field-types/PictureFieldEditor.js.map +1 -1
- package/dist/editor/field-types/RawEditor.js +2 -2
- package/dist/editor/field-types/RawEditor.js.map +1 -1
- package/dist/editor/field-types/SingleLineText.js +2 -2
- package/dist/editor/field-types/SingleLineText.js.map +1 -1
- package/dist/editor/field-types/richtext/components/ReactSlate.js +2 -2
- package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
- package/dist/editor/field-types/richtext/components/SimpleRichTextEditor.js +2 -2
- package/dist/editor/field-types/richtext/components/SimpleRichTextEditor.js.map +1 -1
- package/dist/editor/fieldTypes.d.ts +1 -0
- package/dist/editor/media-selector/AiImageSearch.js +5 -4
- package/dist/editor/media-selector/AiImageSearch.js.map +1 -1
- package/dist/editor/media-selector/MediaFolderBrowser.js +8 -8
- package/dist/editor/media-selector/MediaFolderBrowser.js.map +1 -1
- package/dist/editor/media-selector/Thumbnails.js +2 -2
- package/dist/editor/media-selector/Thumbnails.js.map +1 -1
- package/dist/editor/media-selector/TreeSelector.js +2 -2
- package/dist/editor/media-selector/TreeSelector.js.map +1 -1
- package/dist/editor/media-selector/UploadZone.js +2 -2
- package/dist/editor/media-selector/UploadZone.js.map +1 -1
- package/dist/editor/menubar/NavButtons.js +3 -5
- package/dist/editor/menubar/NavButtons.js.map +1 -1
- package/dist/editor/menubar/Separator.js +2 -2
- package/dist/editor/menubar/Separator.js.map +1 -1
- package/dist/editor/menubar/SiteInfo.js +9 -9
- package/dist/editor/menubar/SiteInfo.js.map +1 -1
- package/dist/editor/page-editor-chrome/CommentHighlighting.js +2 -2
- package/dist/editor/page-editor-chrome/CommentHighlighting.js.map +1 -1
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js +2 -2
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +6 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
- package/dist/editor/page-editor-chrome/SuggestionHighlighting.js +2 -2
- package/dist/editor/page-editor-chrome/SuggestionHighlighting.js.map +1 -1
- package/dist/editor/page-viewer/DeviceToolbar.js +3 -3
- package/dist/editor/page-viewer/DeviceToolbar.js.map +1 -1
- package/dist/editor/reviews/Reviews.js +55 -54
- package/dist/editor/reviews/Reviews.js.map +1 -1
- package/dist/editor/services/agentService.d.ts +3 -3
- package/dist/editor/services/agentService.js.map +1 -1
- package/dist/editor/services/aiService.js +5 -5
- package/dist/editor/services/aiService.js.map +1 -1
- package/dist/editor/sidebar/ComponentPalette.js +3 -3
- package/dist/editor/sidebar/ComponentPalette.js.map +1 -1
- package/dist/editor/sidebar/ComponentTree.js +6 -1
- package/dist/editor/sidebar/ComponentTree.js.map +1 -1
- package/dist/editor/sidebar/DictionaryEditor.js +9 -9
- package/dist/editor/sidebar/DictionaryEditor.js.map +1 -1
- package/dist/editor/sidebar/EditHistory.js +4 -3
- package/dist/editor/sidebar/EditHistory.js.map +1 -1
- package/dist/editor/sidebar/SEOInfo.js +3 -2
- package/dist/editor/sidebar/SEOInfo.js.map +1 -1
- package/dist/editor/sidebar/SidebarView.js +5 -6
- package/dist/editor/sidebar/SidebarView.js.map +1 -1
- package/dist/editor/sidebar/Translations.js +5 -2
- package/dist/editor/sidebar/Translations.js.map +1 -1
- package/dist/editor/sidebar/Validation.js +2 -2
- package/dist/editor/sidebar/Validation.js.map +1 -1
- package/dist/editor/sidebar/ViewSelector.js +22 -5
- package/dist/editor/sidebar/ViewSelector.js.map +1 -1
- package/dist/editor/sidebar/Workbox.js +14 -13
- package/dist/editor/sidebar/Workbox.js.map +1 -1
- package/dist/editor/ui/ItemNameDialogNew.js +2 -2
- package/dist/editor/ui/ItemNameDialogNew.js.map +1 -1
- package/dist/editor/ui/PerfectTree.js +2 -2
- package/dist/editor/ui/PerfectTree.js.map +1 -1
- package/dist/editor/ui/Section.js +3 -3
- package/dist/editor/ui/Section.js.map +1 -1
- package/dist/editor/ui/SimpleTable.js +3 -3
- package/dist/editor/ui/SimpleTable.js.map +1 -1
- package/dist/editor/views/ItemEditor.js +1 -1
- package/dist/editor/views/ItemEditor.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/page-wizard/WizardSteps.js +2 -3
- package/dist/page-wizard/WizardSteps.js.map +1 -1
- package/dist/page-wizard/steps/CollectStep.js +2 -2
- package/dist/page-wizard/steps/CollectStep.js.map +1 -1
- package/dist/page-wizard/steps/ContentStep.js +3 -4
- package/dist/page-wizard/steps/ContentStep.js.map +1 -1
- package/dist/page-wizard/steps/Generate.js +2 -2
- package/dist/page-wizard/steps/Generate.js.map +1 -1
- package/dist/page-wizard/steps/ImagesStep.js +17 -15
- package/dist/page-wizard/steps/ImagesStep.js.map +1 -1
- package/dist/page-wizard/steps/MetaDataStep.js +2 -2
- package/dist/page-wizard/steps/MetaDataStep.js.map +1 -1
- package/dist/page-wizard/steps/SelectStep.js +5 -5
- package/dist/page-wizard/steps/SelectStep.js.map +1 -1
- package/dist/page-wizard/steps/StructureStep.js +3 -3
- package/dist/page-wizard/steps/StructureStep.js.map +1 -1
- package/dist/page-wizard/steps/TranslateStep.js +2 -2
- package/dist/page-wizard/steps/TranslateStep.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/splash-screen/NewPage.js +2 -2
- package/dist/splash-screen/NewPage.js.map +1 -1
- package/dist/splash-screen/SectionHeadline.js +2 -2
- package/dist/splash-screen/SectionHeadline.js.map +1 -1
- package/dist/styles.css +9 -26
- package/package.json +1 -1
- package/src/components/FilterInput.tsx +13 -16
- package/src/components/ui/input.tsx +1 -1
- package/src/config/config.tsx +1 -1
- package/src/editor/AspectRatioSelector.tsx +3 -3
- package/src/editor/EditorWarning.tsx +6 -6
- package/src/editor/FieldEditorPopup.tsx +36 -26
- package/src/editor/FieldHistory.tsx +2 -1
- package/src/editor/LinkEditorDialog.tsx +20 -0
- package/src/editor/MainLayout.tsx +3 -3
- package/src/editor/PictureCropper.tsx +3 -3
- package/src/editor/PictureEditorDialog.tsx +167 -145
- package/src/editor/Terminal.tsx +5 -6
- package/src/editor/ai/AgentTerminal.tsx +187 -23
- package/src/editor/ai/Agents.tsx +2 -2
- package/src/editor/ai/ContextInfoBar.tsx +8 -6
- package/src/editor/client/GenericDialog.tsx +13 -9
- package/src/editor/client/ui/EditorChrome.tsx +8 -4
- package/src/editor/commands/localizeItem/LocalizeItemDialog.tsx +30 -11
- package/src/editor/context-menu/CopyMoveMenu.tsx +5 -3
- package/src/editor/control-center/IndexOverview.tsx +63 -34
- package/src/editor/field-types/CheckboxEditor.tsx +2 -2
- package/src/editor/field-types/DateFieldEditor.tsx +2 -2
- package/src/editor/field-types/DateTimeFieldEditor.tsx +0 -1
- package/src/editor/field-types/ImageFieldEditor.tsx +3 -4
- package/src/editor/field-types/InternalLinkFieldEditor.tsx +2 -2
- package/src/editor/field-types/LinkFieldEditor.tsx +8 -2
- package/src/editor/field-types/MultiLineText.tsx +4 -5
- package/src/editor/field-types/PictureFieldEditor.tsx +5 -5
- package/src/editor/field-types/RawEditor.tsx +4 -5
- package/src/editor/field-types/SingleLineText.tsx +4 -6
- package/src/editor/field-types/richtext/components/ReactSlate.tsx +2 -2
- package/src/editor/field-types/richtext/components/SimpleRichTextEditor.tsx +2 -2
- package/src/editor/fieldTypes.ts +1 -0
- package/src/editor/media-selector/AiImageSearch.tsx +11 -14
- package/src/editor/media-selector/MediaFolderBrowser.tsx +42 -35
- package/src/editor/media-selector/Thumbnails.tsx +3 -3
- package/src/editor/media-selector/TreeSelector.tsx +2 -2
- package/src/editor/media-selector/UploadZone.tsx +2 -2
- package/src/editor/menubar/NavButtons.tsx +12 -14
- package/src/editor/menubar/Separator.tsx +2 -2
- package/src/editor/menubar/SiteInfo.tsx +29 -23
- package/src/editor/page-editor-chrome/CommentHighlighting.tsx +2 -2
- package/src/editor/page-editor-chrome/FieldActionIndicator.tsx +2 -2
- package/src/editor/page-editor-chrome/PlaceholderDropZone.tsx +6 -1
- package/src/editor/page-editor-chrome/SuggestionHighlighting.tsx +2 -2
- package/src/editor/page-viewer/DeviceToolbar.tsx +4 -3
- package/src/editor/reviews/Reviews.tsx +116 -106
- package/src/editor/services/agentService.ts +3 -3
- package/src/editor/services/aiService.ts +5 -5
- package/src/editor/sidebar/ComponentPalette.tsx +3 -3
- package/src/editor/sidebar/ComponentTree.tsx +10 -1
- package/src/editor/sidebar/DictionaryEditor.tsx +12 -13
- package/src/editor/sidebar/EditHistory.tsx +4 -3
- package/src/editor/sidebar/SEOInfo.tsx +9 -7
- package/src/editor/sidebar/SidebarView.tsx +8 -6
- package/src/editor/sidebar/Translations.tsx +9 -5
- package/src/editor/sidebar/Validation.tsx +2 -2
- package/src/editor/sidebar/ViewSelector.tsx +32 -6
- package/src/editor/sidebar/Workbox.tsx +81 -63
- package/src/editor/ui/ItemNameDialogNew.tsx +2 -2
- package/src/editor/ui/PerfectTree.tsx +2 -5
- package/src/editor/ui/Section.tsx +4 -4
- package/src/editor/ui/SimpleTable.tsx +3 -3
- package/src/editor/views/ItemEditor.tsx +1 -1
- package/src/index.ts +6 -0
- package/src/page-wizard/WizardSteps.tsx +2 -3
- package/src/page-wizard/steps/CollectStep.tsx +3 -3
- package/src/page-wizard/steps/ContentStep.tsx +4 -5
- package/src/page-wizard/steps/Generate.tsx +2 -2
- package/src/page-wizard/steps/ImagesStep.tsx +43 -24
- package/src/page-wizard/steps/MetaDataStep.tsx +5 -5
- package/src/page-wizard/steps/SelectStep.tsx +8 -6
- package/src/page-wizard/steps/StructureStep.tsx +9 -8
- package/src/page-wizard/steps/TranslateStep.tsx +5 -3
- package/src/revision.ts +2 -2
- package/src/splash-screen/NewPage.tsx +2 -2
- package/src/splash-screen/SectionHeadline.tsx +4 -4
- package/dist/editor/component-designer/ComponentDesigner.d.ts +0 -1
- package/dist/editor/component-designer/ComponentDesigner.js +0 -51
- package/dist/editor/component-designer/ComponentDesigner.js.map +0 -1
- package/dist/editor/component-designer/ComponentDesignerMenu.d.ts +0 -1
- package/dist/editor/component-designer/ComponentDesignerMenu.js +0 -65
- package/dist/editor/component-designer/ComponentDesignerMenu.js.map +0 -1
- package/dist/editor/component-designer/ComponentEditor.d.ts +0 -4
- package/dist/editor/component-designer/ComponentEditor.js +0 -55
- package/dist/editor/component-designer/ComponentEditor.js.map +0 -1
- package/dist/editor/component-designer/ComponentRenderingCodeEditor.d.ts +0 -5
- package/dist/editor/component-designer/ComponentRenderingCodeEditor.js +0 -11
- package/dist/editor/component-designer/ComponentRenderingCodeEditor.js.map +0 -1
- package/dist/editor/component-designer/ComponentRenderingEditor.d.ts +0 -1
- package/dist/editor/component-designer/ComponentRenderingEditor.js +0 -69
- package/dist/editor/component-designer/ComponentRenderingEditor.js.map +0 -1
- package/dist/editor/component-designer/ComponentsDropdown.d.ts +0 -4
- package/dist/editor/component-designer/ComponentsDropdown.js +0 -20
- package/dist/editor/component-designer/ComponentsDropdown.js.map +0 -1
- package/dist/editor/component-designer/PlaceholdersEditor.d.ts +0 -4
- package/dist/editor/component-designer/PlaceholdersEditor.js +0 -63
- package/dist/editor/component-designer/PlaceholdersEditor.js.map +0 -1
- package/dist/editor/component-designer/RenderingsDropdown.d.ts +0 -1
- package/dist/editor/component-designer/RenderingsDropdown.js +0 -23
- package/dist/editor/component-designer/RenderingsDropdown.js.map +0 -1
- package/dist/editor/component-designer/TemplateEditor.d.ts +0 -1
- package/dist/editor/component-designer/TemplateEditor.js +0 -142
- package/dist/editor/component-designer/TemplateEditor.js.map +0 -1
- package/dist/editor/component-designer/aiContext.d.ts +0 -5
- package/dist/editor/component-designer/aiContext.js +0 -14
- package/dist/editor/component-designer/aiContext.js.map +0 -1
- package/src/editor/component-designer/ComponentDesigner.tsx +0 -66
- package/src/editor/component-designer/ComponentDesignerMenu.tsx +0 -91
- package/src/editor/component-designer/ComponentEditor.tsx +0 -95
- package/src/editor/component-designer/ComponentRenderingCodeEditor.tsx +0 -31
- package/src/editor/component-designer/ComponentRenderingEditor.tsx +0 -104
- package/src/editor/component-designer/ComponentsDropdown.tsx +0 -39
- package/src/editor/component-designer/PlaceholdersEditor.tsx +0 -179
- package/src/editor/component-designer/RenderingsDropdown.tsx +0 -36
- package/src/editor/component-designer/TemplateEditor.tsx +0 -236
- package/src/editor/component-designer/aiContext.ts +0 -21
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Dialog } from "
|
|
2
|
+
import { Dialog, DialogContent, DialogHeader, DialogTitle, } from "../components/ui/dialog";
|
|
3
3
|
import { useEditContext } from "./client/editContext";
|
|
4
4
|
import { useCallback, useEffect, useState } from "react";
|
|
5
|
-
import { Button } from "
|
|
5
|
+
import { Button } from "../components/ui/button";
|
|
6
6
|
import DialogButtons from "./ui/DialogButtons";
|
|
7
7
|
import { getPictureValue } from "./services/editService";
|
|
8
8
|
import { getRenderedPictureVariant, } from "./picture-shared";
|
|
@@ -116,55 +116,60 @@ export function PictureEditorDialog({ field, onCancel, onOk, params, }) {
|
|
|
116
116
|
}
|
|
117
117
|
};
|
|
118
118
|
const usage = getUsage(pictureValue, params);
|
|
119
|
-
return (_jsx(_Fragment, { children: _jsx(Dialog, {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
119
|
+
return (_jsx(_Fragment, { children: _jsx(Dialog, { open: true, onOpenChange: (open) => {
|
|
120
|
+
if (!open) {
|
|
121
|
+
onCancel();
|
|
122
|
+
}
|
|
123
|
+
}, children: _jsxs(DialogContent, { className: "max-w-none", style: { width: "70vw", height: "70vh" }, children: [_jsx(DialogHeader, { children: _jsx(DialogTitle, { children: "Edit " + field.name }) }), _jsx("div", { className: "flex-1 overflow-auto", children: _jsxs("div", { className: "justify flex h-full flex-col gap-1", children: [_jsxs("div", { className: "flex flex-1 gap-2", children: [_jsxs("div", { className: "relative h-full w-48 border-r pt-3", children: [_jsx("div", { className: "absolute inset-0 flex flex-col gap-6 overflow-y-auto", children: pictureValue &&
|
|
124
|
+
pictureValue.variants?.map((variant) => (_jsxs("div", { onClick: () => setSelectedVariantName(variant.name), className: "flex cursor-pointer flex-col items-center justify-center gap-1 text-xs", children: [_jsx("div", { className: "relative flex h-40 w-40 items-center justify-center border" +
|
|
125
|
+
(selectedVariantName == variant.name
|
|
126
|
+
? " shadow-xl"
|
|
127
|
+
: ""), children: variant.src && _jsx("img", { src: variant.thumbSrc }) }), _jsxs("div", { className: "w-40", children: [_jsx("div", { children: variant.name }), _jsx("div", { children: variant.aspectRatioLockText }), _jsxs("div", { children: [_jsxs("div", { className: "break-all", children: ["Name: ", variant.mediaItemName] }), _jsxs("div", { children: ["Orig. size: ", variant.width, " x ", variant.height] }), (variant.width < 1 || variant.height < 1) && (_jsxs("span", { children: [" ", _jsx("i", { className: "pi pi-exclamation-triangle text-red-600" })] }))] })] })] }, variant.name))) }), usage && _jsx("div", { className: "text-xs", children: usage })] }), _jsx("div", { className: "relative flex-1 p-3", children: _jsxs("div", { className: "align-center absolute inset-0 top-3 flex justify-center overflow-auto select-none", children: [selectedVariant && (_jsxs("div", { className: "relative", onDoubleClick: () => selectMedia(), onMouseDown: (ev) => {
|
|
128
|
+
ev.preventDefault();
|
|
129
|
+
ev.stopPropagation();
|
|
130
|
+
const bounds = ev.currentTarget.getBoundingClientRect();
|
|
131
|
+
setRect({
|
|
132
|
+
left: (ev.clientX - bounds.left) / bounds.width,
|
|
133
|
+
top: (ev.clientY - bounds.top) / bounds.height,
|
|
134
|
+
width: 0,
|
|
135
|
+
height: 0,
|
|
136
|
+
});
|
|
137
|
+
}, onMouseMoveCapture: (ev) => {
|
|
138
|
+
if (ev.buttons === 1) {
|
|
139
|
+
const bounds = ev.currentTarget.getBoundingClientRect();
|
|
140
|
+
const width = (ev.clientX - bounds.left) / bounds.width -
|
|
141
|
+
rect.left;
|
|
142
|
+
const newRect = {
|
|
143
|
+
...rect,
|
|
144
|
+
width,
|
|
145
|
+
height: selectedVariant.aspectRatioLock
|
|
146
|
+
? width / selectedVariant.aspectRatioLock
|
|
147
|
+
: (ev.clientY - bounds.top) / bounds.height -
|
|
148
|
+
rect.top,
|
|
149
|
+
};
|
|
150
|
+
setRect(newRect);
|
|
151
|
+
ev.preventDefault();
|
|
152
|
+
ev.stopPropagation();
|
|
153
|
+
}
|
|
154
|
+
}, onMouseUp: () => setVariantCrop(), children: [_jsx("img", { src: selectedVariant.originalSrc ?? selectedVariant.src, className: "h-full w-full object-contain" }), _jsx("div", { className: "bg-opacity-70 absolute bg-gray-300", style: {
|
|
155
|
+
left: rect.left * 100 + "%",
|
|
156
|
+
top: rect.top * 100 + "%",
|
|
157
|
+
width: rect.width * 100 + "%",
|
|
158
|
+
height: rect.height * 100 + "%",
|
|
159
|
+
} })] })), selectedVariant && (_jsxs("div", { className: "bg-opacity-70 absolute top-0 right-0 flex cursor-pointer flex-col items-center gap-1 bg-gray-100 p-2 text-sm", onClick: () => selectMedia(), children: [_jsx("i", { className: "pi pi-pencil text-xl" }), "Choose"] }))] }) })] }), _jsxs(DialogButtons, { children: [_jsx(Button, { size: "sm", onClick: () => {
|
|
160
|
+
if (pictureValue) {
|
|
161
|
+
if (field) {
|
|
162
|
+
editContext?.operations.editField({
|
|
163
|
+
field: field.descriptor,
|
|
164
|
+
rawValue: JSON.stringify(rawValue),
|
|
165
|
+
refresh: "immediate",
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
onOk(pictureValue);
|
|
148
169
|
}
|
|
149
|
-
},
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
width: rect.width * 100 + "%",
|
|
153
|
-
height: rect.height * 100 + "%",
|
|
154
|
-
} })] })), selectedVariant && (_jsxs("div", { className: "absolute top-0 right-0 cursor-pointer text-sm flex flex-col gap-1 items-center p-2 bg-gray-100 bg-opacity-70", onClick: () => selectMedia(), children: [_jsx("i", { className: "pi pi-pencil text-xl" }), "Choose"] }))] }) })] }), _jsxs(DialogButtons, { children: [_jsx(Button, { size: "small", onClick: () => {
|
|
155
|
-
if (pictureValue) {
|
|
156
|
-
if (field) {
|
|
157
|
-
editContext?.operations.editField({
|
|
158
|
-
field: field.descriptor,
|
|
159
|
-
rawValue: JSON.stringify(rawValue),
|
|
160
|
-
refresh: "immediate",
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
onOk(pictureValue);
|
|
164
|
-
}
|
|
165
|
-
}, children: "Ok" }), _jsx(Button, { onClick: () => {
|
|
166
|
-
onCancel();
|
|
167
|
-
}, size: "small", children: "Cancel" })] })] }) }) }));
|
|
170
|
+
}, children: "Ok" }), _jsx(Button, { onClick: () => {
|
|
171
|
+
onCancel();
|
|
172
|
+
}, size: "sm", children: "Cancel" })] })] }) })] }) }) }));
|
|
168
173
|
}
|
|
169
174
|
function getUsage(pictureValue, params) {
|
|
170
175
|
if (!params)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PictureEditorDialog.js","sourceRoot":"","sources":["../../src/editor/PictureEditorDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"PictureEditorDialog.js","sourceRoot":"","sources":["../../src/editor/PictureEditorDialog.tsx"],"names":[],"mappings":"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"}
|
package/dist/editor/Terminal.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef, useEffect, useRef, useState, useImperativeHandle, } from "react";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { Textarea } from "../components/ui/textarea";
|
|
4
|
+
import { cn } from "../lib/utils";
|
|
5
5
|
import { SimpleIconButton } from "./ui/SimpleIconButton";
|
|
6
6
|
import { Trash2, Send } from "lucide-react";
|
|
7
7
|
import { TerminalService } from "primereact/terminalservice";
|
|
@@ -143,10 +143,10 @@ export const Terminal = forwardRef((props, ref) => {
|
|
|
143
143
|
}
|
|
144
144
|
},
|
|
145
145
|
}));
|
|
146
|
-
return (_jsxs("div", { className:
|
|
146
|
+
return (_jsxs("div", { className: cn("flex h-full flex-col", className), children: [_jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-gray-200 p-1 text-xs", children: [_jsx(SimpleIconButton, { onClick: () => {
|
|
147
147
|
setMessages([]);
|
|
148
148
|
onReset();
|
|
149
|
-
}, icon: _jsx(Trash2, { size: 16, strokeWidth: 1 }), label: "Clear terminal" }), toolbar] }), _jsx("div", { className: "flex-1 overflow-x-hidden overflow-y-auto p-2", children: _jsxs("div", { className: "flex flex-col items-end gap-3 select-text", children: [messages.map((m, i) => (_jsx("div", { className: getClasses(m), children: m.text }, i))), response != null && (_jsxs("div", { className: responseBoxClasses, children: [_jsx("div", { className: "flex text-xs", children: response }), _jsxs("div", { className: "mr-4 flex items-center justify-end space-x-1 text-xs text-gray-400", children: [_jsx("div", { className: "h-1 w-1 animate-bounce rounded-full bg-gray-400 [animation-delay:-0.3s]" }), _jsx("div", { className: "h-1 w-1 animate-bounce rounded-full bg-gray-400 [animation-delay:-0.15s]" }), _jsx("div", { className: "h-1 w-1 animate-bounce rounded-full bg-gray-400" })] })] })), _jsx("div", { ref: bottomRef })] }) }), _jsxs("div", { className: "flex flex-col p-1 pb-0", children: [infobar, _jsx(
|
|
149
|
+
}, icon: _jsx(Trash2, { size: 16, strokeWidth: 1 }), label: "Clear terminal" }), toolbar] }), _jsx("div", { className: "flex-1 overflow-x-hidden overflow-y-auto p-2", children: _jsxs("div", { className: "flex flex-col items-end gap-3 select-text", children: [messages.map((m, i) => (_jsx("div", { className: getClasses(m), children: m.text }, i))), response != null && (_jsxs("div", { className: responseBoxClasses, children: [_jsx("div", { className: "flex text-xs", children: response }), _jsxs("div", { className: "mr-4 flex items-center justify-end space-x-1 text-xs text-gray-400", children: [_jsx("div", { className: "h-1 w-1 animate-bounce rounded-full bg-gray-400 [animation-delay:-0.3s]" }), _jsx("div", { className: "h-1 w-1 animate-bounce rounded-full bg-gray-400 [animation-delay:-0.15s]" }), _jsx("div", { className: "h-1 w-1 animate-bounce rounded-full bg-gray-400" })] })] })), _jsx("div", { ref: bottomRef })] }) }), _jsxs("div", { className: "flex flex-col p-1 pb-0", children: [infobar, _jsx(Textarea, { ref: inputRef, value: prompt, className: "flex-1 resize-none self-stretch rounded border border-gray-300 text-xs", onKeyDown: handleKeyPress, onChange: (e) => {
|
|
150
150
|
setPrompt(e.target.value);
|
|
151
151
|
// Reset history index when user starts typing
|
|
152
152
|
if (currentHistoryIndex !== -1) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../../src/editor/Terminal.tsx"],"names":[],"mappings":";AAAA,OAAc,EACZ,UAAU,EACV,SAAS,EACT,MAAM,EACN,QAAQ,EACR,mBAAmB,GACpB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../../src/editor/Terminal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React, { useEffect, useState, useRef, useCallback, useLayoutEffect, } from "react";
|
|
3
|
-
import { Send, AlertCircle, Loader2, User, Wand2, Square } from "lucide-react";
|
|
3
|
+
import { Send, AlertCircle, Loader2, User, Wand2, Square, Mic, MicOff, } from "lucide-react";
|
|
4
4
|
import { DancingDots } from "./DancingDots";
|
|
5
5
|
import { getAgent, startAgent, connectToAgentStream, updateAgentMetadata, updateAgentSettings, updateAgentCostLimit, } from "../services/agentService";
|
|
6
6
|
import { useEditContext, useFieldsEditContext } from "../client/editContext";
|
|
@@ -115,6 +115,12 @@ export function AgentTerminal({ agentStub, initialMetadata, profiles, }) {
|
|
|
115
115
|
const [isConnecting, setIsConnecting] = useState(false);
|
|
116
116
|
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
117
117
|
const [agentMetadata, setAgentMetadata] = useState(null);
|
|
118
|
+
// Voice input state
|
|
119
|
+
const [isVoiceSupported, setIsVoiceSupported] = useState(false);
|
|
120
|
+
const [isListening, setIsListening] = useState(false);
|
|
121
|
+
const recognitionRef = useRef(null);
|
|
122
|
+
const prevPlaceholderRef = useRef(null);
|
|
123
|
+
const [voiceError, setVoiceError] = useState(null);
|
|
118
124
|
const [isWaitingForResponse, setIsWaitingForResponse] = useState(false);
|
|
119
125
|
const isWaitingRef = useRef(false);
|
|
120
126
|
useEffect(() => {
|
|
@@ -161,7 +167,7 @@ export function AgentTerminal({ agentStub, initialMetadata, profiles, }) {
|
|
|
161
167
|
const [showPredefined, setShowPredefined] = useState(false);
|
|
162
168
|
const [activeProfile, setActiveProfile] = useState(undefined);
|
|
163
169
|
const [selectedModelId, setSelectedModelId] = useState(undefined);
|
|
164
|
-
const [mode, setMode] = useState("
|
|
170
|
+
const [mode, setMode] = useState("restricted");
|
|
165
171
|
// Read deterministic flags from query string once
|
|
166
172
|
const deterministicFlags = React.useMemo(() => {
|
|
167
173
|
try {
|
|
@@ -221,6 +227,127 @@ export function AgentTerminal({ agentStub, initialMetadata, profiles, }) {
|
|
|
221
227
|
// Jump precisely to the bottom to avoid ending slightly above due to smooth scrolling animations
|
|
222
228
|
container.scrollTop = container.scrollHeight;
|
|
223
229
|
}, []);
|
|
230
|
+
// Detect speech recognition support (client-only)
|
|
231
|
+
useEffect(() => {
|
|
232
|
+
try {
|
|
233
|
+
if (typeof window === "undefined")
|
|
234
|
+
return;
|
|
235
|
+
const SR = window.SpeechRecognition ||
|
|
236
|
+
window.webkitSpeechRecognition;
|
|
237
|
+
setIsVoiceSupported(!!SR);
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
setIsVoiceSupported(false);
|
|
241
|
+
}
|
|
242
|
+
}, []);
|
|
243
|
+
// Start voice recognition
|
|
244
|
+
const startVoice = useCallback(() => {
|
|
245
|
+
try {
|
|
246
|
+
if (isListening)
|
|
247
|
+
return;
|
|
248
|
+
if (typeof window === "undefined")
|
|
249
|
+
return;
|
|
250
|
+
const SR = window.SpeechRecognition ||
|
|
251
|
+
window.webkitSpeechRecognition;
|
|
252
|
+
if (!SR) {
|
|
253
|
+
setVoiceError("Voice input is not supported in this browser");
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
const r = new SR();
|
|
257
|
+
r.lang = editContext?.currentItemDescriptor?.language || "en-US";
|
|
258
|
+
r.continuous = true;
|
|
259
|
+
r.interimResults = true;
|
|
260
|
+
r.onstart = () => {
|
|
261
|
+
setIsListening(true);
|
|
262
|
+
prevPlaceholderRef.current = inputPlaceholder;
|
|
263
|
+
setVoiceError(null);
|
|
264
|
+
setInputPlaceholder("Listening...");
|
|
265
|
+
};
|
|
266
|
+
r.onresult = (event) => {
|
|
267
|
+
let finalText = "";
|
|
268
|
+
let interimText = "";
|
|
269
|
+
for (let i = event.resultIndex; i < event.results.length; i++) {
|
|
270
|
+
const res = event.results[i];
|
|
271
|
+
if (res.isFinal)
|
|
272
|
+
finalText += res[0]?.transcript || "";
|
|
273
|
+
else
|
|
274
|
+
interimText += res[0]?.transcript || "";
|
|
275
|
+
}
|
|
276
|
+
if (interimText) {
|
|
277
|
+
setInputPlaceholder(`Listening... ${interimText.trim()}`);
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
setInputPlaceholder("Listening...");
|
|
281
|
+
}
|
|
282
|
+
if (finalText && finalText.trim()) {
|
|
283
|
+
setPrompt((prev) => {
|
|
284
|
+
const prefix = prev && !prev.endsWith(" ") ? prev + " " : prev;
|
|
285
|
+
return (prefix || "") + finalText.trim() + " ";
|
|
286
|
+
});
|
|
287
|
+
if (textareaRef.current) {
|
|
288
|
+
try {
|
|
289
|
+
const v = textareaRef.current.value || "";
|
|
290
|
+
textareaRef.current.selectionStart = v.length;
|
|
291
|
+
textareaRef.current.selectionEnd = v.length;
|
|
292
|
+
}
|
|
293
|
+
catch { }
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
};
|
|
297
|
+
r.onerror = (e) => {
|
|
298
|
+
console.warn("Speech recognition error", e);
|
|
299
|
+
setVoiceError(e?.error || "Voice input error");
|
|
300
|
+
};
|
|
301
|
+
r.onend = () => {
|
|
302
|
+
setIsListening(false);
|
|
303
|
+
if (prevPlaceholderRef.current !== null) {
|
|
304
|
+
setInputPlaceholder(prevPlaceholderRef.current);
|
|
305
|
+
prevPlaceholderRef.current = null;
|
|
306
|
+
}
|
|
307
|
+
recognitionRef.current = null;
|
|
308
|
+
};
|
|
309
|
+
recognitionRef.current = r;
|
|
310
|
+
r.start();
|
|
311
|
+
}
|
|
312
|
+
catch (e) {
|
|
313
|
+
console.error("Failed to start voice input", e);
|
|
314
|
+
setVoiceError("Failed to start voice input");
|
|
315
|
+
}
|
|
316
|
+
}, [
|
|
317
|
+
editContext?.currentItemDescriptor?.language,
|
|
318
|
+
inputPlaceholder,
|
|
319
|
+
isListening,
|
|
320
|
+
]);
|
|
321
|
+
const stopVoice = useCallback(() => {
|
|
322
|
+
try {
|
|
323
|
+
const r = recognitionRef.current;
|
|
324
|
+
if (r)
|
|
325
|
+
r.stop();
|
|
326
|
+
}
|
|
327
|
+
catch { }
|
|
328
|
+
}, []);
|
|
329
|
+
const toggleVoice = useCallback(() => {
|
|
330
|
+
if (isListening)
|
|
331
|
+
stopVoice();
|
|
332
|
+
else
|
|
333
|
+
startVoice();
|
|
334
|
+
}, [isListening, startVoice, stopVoice]);
|
|
335
|
+
// Cleanup any active recognition on unmount
|
|
336
|
+
useEffect(() => {
|
|
337
|
+
return () => {
|
|
338
|
+
try {
|
|
339
|
+
const r = recognitionRef.current;
|
|
340
|
+
if (r) {
|
|
341
|
+
r.onresult = null;
|
|
342
|
+
r.onerror = null;
|
|
343
|
+
r.onend = null;
|
|
344
|
+
r.stop();
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
catch { }
|
|
348
|
+
recognitionRef.current = null;
|
|
349
|
+
};
|
|
350
|
+
}, []);
|
|
224
351
|
// Check if user is at the bottom of the scroll container
|
|
225
352
|
const isAtBottom = useCallback(() => {
|
|
226
353
|
const container = messagesContainerRef.current;
|
|
@@ -960,7 +1087,9 @@ export function AgentTerminal({ agentStub, initialMetadata, profiles, }) {
|
|
|
960
1087
|
useEffect(() => {
|
|
961
1088
|
try {
|
|
962
1089
|
const metaMode = agentMetadata?.mode;
|
|
963
|
-
if (metaMode === "agent" ||
|
|
1090
|
+
if (metaMode === "agent" ||
|
|
1091
|
+
metaMode === "ask" ||
|
|
1092
|
+
metaMode === "restricted") {
|
|
964
1093
|
setMode(metaMode);
|
|
965
1094
|
return;
|
|
966
1095
|
}
|
|
@@ -968,7 +1097,9 @@ export function AgentTerminal({ agentStub, initialMetadata, profiles, }) {
|
|
|
968
1097
|
catch { }
|
|
969
1098
|
try {
|
|
970
1099
|
const serverMode = agent?.mode;
|
|
971
|
-
if (serverMode === "agent" ||
|
|
1100
|
+
if (serverMode === "agent" ||
|
|
1101
|
+
serverMode === "ask" ||
|
|
1102
|
+
serverMode === "restricted") {
|
|
972
1103
|
setMode(serverMode);
|
|
973
1104
|
}
|
|
974
1105
|
}
|
|
@@ -1844,7 +1975,7 @@ export function AgentTerminal({ agentStub, initialMetadata, profiles, }) {
|
|
|
1844
1975
|
catch (e2) {
|
|
1845
1976
|
console.error("Failed to persist mode change", e2);
|
|
1846
1977
|
}
|
|
1847
|
-
}, title: "Mode", "aria-label": "Mode", "data-testid": "agent-mode-select", children: [_jsx("option", { value: "agent", children: "Agent" }), _jsx("option", { value: "ask", children: "Ask" })] }), profiles?.length > 0 && (_jsx("select", { className: "h-5 rounded border px-1.5 text-[10px] text-gray-500", value: activeProfile?.id || "", onChange: (e) => {
|
|
1978
|
+
}, title: "Mode", "aria-label": "Mode", "data-testid": "agent-mode-select", children: [_jsx("option", { value: "restricted", children: "Restricted" }), _jsx("option", { value: "agent", children: "Agent" }), _jsx("option", { value: "ask", children: "Ask" })] }), profiles?.length > 0 && (_jsx("select", { className: "h-5 rounded border px-1.5 text-[10px] text-gray-500", value: activeProfile?.id || "", onChange: (e) => {
|
|
1848
1979
|
const p = profiles.find((x) => x.id === e.target.value);
|
|
1849
1980
|
if (p)
|
|
1850
1981
|
setActiveProfile(p);
|
|
@@ -1875,6 +2006,6 @@ export function AgentTerminal({ agentStub, initialMetadata, profiles, }) {
|
|
|
1875
2006
|
setShowPredefined(false);
|
|
1876
2007
|
if (textareaRef.current)
|
|
1877
2008
|
textareaRef.current.focus();
|
|
1878
|
-
}, children: p.title }, index))) }) })] })) : null, _jsx(
|
|
2009
|
+
}, children: p.title }, index))) }) })] })) : null] }), _jsxs("div", { className: "flex items-center gap-1 self-end", children: [isVoiceSupported ? (_jsx(Button, { onClick: toggleVoice, size: "sm", className: "h-5.5 w-5.5 cursor-pointer rounded-full", title: isListening ? "Stop voice input" : "Start voice input", "aria-label": isListening ? "Stop voice input" : "Start voice input", "aria-pressed": isListening, children: isListening ? (_jsx(MicOff, { className: "size-3", strokeWidth: 1 })) : (_jsx(Mic, { className: "size-3", strokeWidth: 1 })) })) : null, _jsx(Button, { onClick: isExecuting ? handleStop : handleSubmit, disabled: !isExecuting && !prompt.trim(), size: "sm", className: "h-5.5 w-5.5 cursor-pointer rounded-full", title: isExecuting ? "Stop" : "Send", "aria-label": isExecuting ? "Stop" : "Send", "data-testid": "agent-send-stop-button", "data-executing": isExecuting ? "true" : "false", children: isExecuting ? (_jsx(Square, { className: "size-3", strokeWidth: 1 })) : (_jsx(Send, { className: "size-3", strokeWidth: 1 })) })] })] }), _jsx("div", { className: "mt-1 flex justify-start", children: _jsx(AgentCostDisplay, { totalTokens: totalTokens }) })] })] }));
|
|
1879
2010
|
}
|
|
1880
2011
|
//# sourceMappingURL=AgentTerminal.js.map
|