@grapesjs/studio-sdk-plugins 1.0.34 → 1.0.35
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/aiChat/clientTools.d.ts +3 -3
- package/dist/aiChat/clientToolsProcessors.d.ts +5 -2
- package/dist/aiChat/components/AiChatHeader.d.ts +22 -2
- package/dist/aiChat/components/AiChatToolGenerateImage.d.ts +7 -0
- package/dist/aiChat/components/utils.d.ts +2 -0
- package/dist/aiChat/index.cjs.js +88 -99
- package/dist/aiChat/index.es.js +12677 -11001
- package/dist/aiChat/index.js +88 -99
- package/dist/aiChat/index.umd.js +97 -108
- package/dist/aiChat/locales/en.d.ts +38 -0
- package/dist/aiChat/server/index.cjs.js +91 -237
- package/dist/aiChat/server/index.es.js +721 -631
- package/dist/aiChat/server/index.js +91 -237
- package/dist/aiChat/server/index.umd.js +91 -237
- package/dist/aiChat/server/prompts.d.ts +15 -11
- package/dist/aiChat/server/tools.d.ts +74 -122
- package/dist/aiChat/server/types.d.ts +61 -3
- package/dist/aiChat/types.d.ts +69 -11
- package/dist/aiChat/typesSchema.d.ts +27 -0
- package/dist/googleFontsAssetProvider/index.cjs.js +1 -1
- package/dist/googleFontsAssetProvider/index.es.js +11 -11
- package/dist/googleFontsAssetProvider/index.umd.js +1 -1
- package/dist/iconifyComponent/index.cjs.js +2 -2
- package/dist/iconifyComponent/index.es.js +11 -11
- package/dist/iconifyComponent/index.umd.js +2 -2
- package/dist/index.cjs.js +20 -20
- package/dist/index.es.js +208 -208
- package/dist/index.umd.js +1 -1
- package/dist/layoutSidebarButtons/index.cjs.js +1 -1
- package/dist/layoutSidebarButtons/index.es.js +7 -7
- package/dist/layoutSidebarButtons/index.umd.js +1 -1
- package/dist/presetPrintable/index.cjs.js +2 -2
- package/dist/presetPrintable/index.es.js +5 -5
- package/dist/presetPrintable/index.umd.js +3 -3
- package/dist/prosemirror/index.cjs.js +1 -1
- package/dist/prosemirror/index.es.js +1 -1
- package/dist/prosemirror/index.umd.js +1 -1
- package/dist/rteTinyMce/index.cjs.js +2 -2
- package/dist/rteTinyMce/index.es.js +12 -12
- package/dist/rteTinyMce/index.umd.js +2 -2
- package/dist/tableComponent/index.cjs.js +1 -1
- package/dist/tableComponent/index.es.js +83 -83
- package/dist/tableComponent/index.umd.js +1 -1
- package/dist/youtubeAssetProvider/index.cjs.js +1 -1
- package/dist/youtubeAssetProvider/index.es.js +15 -15
- package/dist/youtubeAssetProvider/index.umd.js +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LanguageModelV3 } from '@ai-sdk/provider';
|
|
2
|
-
import { createUIMessageStream, Tool, UIMessageStreamWriter } from 'ai';
|
|
3
|
-
import {
|
|
4
|
-
import { AgentCodeOptions, CreateStreamResponseOptions, CreateToolStatusWriterOptions, OnEndCallback, ToolStatusWriter } from './types';
|
|
2
|
+
import { createUIMessageStream, generateImage, Tool, GeneratedFile, ImageModel, UIMessageStreamWriter } from 'ai';
|
|
3
|
+
import { ToolBuiltInCommands, ProjectContext, ToolGenerateImageInput } from '../types';
|
|
4
|
+
import { AgentCodeOptions, CreateServerCommandToolOptions, CreateStreamResponseOptions, CreateToolStatusWriterOptions, CreateToolStatusWriterOptionsFactory, OnEndCallback, ToolStatusWriter } from './types';
|
|
5
5
|
interface BuildDefaultToolsOptions extends CreateStreamResponseOptions {
|
|
6
6
|
writer: Parameters<Parameters<typeof createUIMessageStream>[0]['execute']>[0]['writer'];
|
|
7
7
|
chatModel: LanguageModelV3;
|
|
@@ -10,25 +10,85 @@ interface BuildDefaultToolsOptions extends CreateStreamResponseOptions {
|
|
|
10
10
|
* Create a tool status writer for sending progress updates from custom tools.
|
|
11
11
|
*/
|
|
12
12
|
export declare function createToolStatusWriter(options: CreateToolStatusWriterOptions): ToolStatusWriter;
|
|
13
|
+
export declare function stripGeneratedWrapper(code: string): string;
|
|
13
14
|
export declare function createTool<INPUT, OUTPUT>(options: Tool<INPUT, OUTPUT>): Tool<INPUT, OUTPUT>;
|
|
14
15
|
export declare function createTool<INPUT>(options: Tool<INPUT, never>): Tool<INPUT, never>;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
type GenerateImageCallOptions = Parameters<typeof generateImage>[0];
|
|
17
|
+
type GenerateImageCallResult = Awaited<ReturnType<typeof generateImage>>;
|
|
18
|
+
type GenerateImageUsage = GenerateImageCallResult['usage'];
|
|
19
|
+
type GenerateImageAdditionalOptions = Partial<Omit<GenerateImageCallOptions, 'model' | 'prompt'>>;
|
|
20
|
+
export interface ToolGenerateImageUploadProps {
|
|
21
|
+
files: File[];
|
|
22
|
+
images: GeneratedFile[];
|
|
23
|
+
input: ToolGenerateImageInput;
|
|
24
|
+
toolCallId: string;
|
|
25
|
+
}
|
|
26
|
+
export interface ToolGenerateImageUploadResult {
|
|
27
|
+
urls: string[];
|
|
28
|
+
[key: string]: unknown;
|
|
29
|
+
}
|
|
30
|
+
export interface ToolGenerateImageOnStartProps {
|
|
31
|
+
statusWriter?: ToolStatusWriter;
|
|
32
|
+
input: ToolGenerateImageInput;
|
|
33
|
+
toolCallId: string;
|
|
34
|
+
options: GenerateImageCallOptions;
|
|
35
|
+
}
|
|
36
|
+
export interface ToolGenerateImageOnEndGenerationProps extends ToolGenerateImageOnStartProps {
|
|
37
|
+
result: GenerateImageCallResult;
|
|
38
|
+
usage: GenerateImageUsage;
|
|
39
|
+
}
|
|
40
|
+
export interface ToolGenerateImageOnEndProps extends ToolGenerateImageOnEndGenerationProps {
|
|
41
|
+
uploadResult: string[] | ToolGenerateImageUploadResult;
|
|
42
|
+
uploadedUrls: string[];
|
|
43
|
+
}
|
|
44
|
+
export interface CreateToolGenerateImageOptions {
|
|
45
|
+
model: ImageModel;
|
|
46
|
+
uploadImages: (props: ToolGenerateImageUploadProps) => Promise<string[]>;
|
|
47
|
+
createToolStatusWriter?: (options: CreateToolStatusWriterOptionsFactory) => ToolStatusWriter;
|
|
48
|
+
onStart?: (props: ToolGenerateImageOnStartProps) => Promise<GenerateImageAdditionalOptions | void> | GenerateImageAdditionalOptions | void;
|
|
49
|
+
onEndGeneration?: (props: ToolGenerateImageOnEndGenerationProps) => Promise<void> | void;
|
|
50
|
+
onEnd?: (props: ToolGenerateImageOnEndProps) => Promise<void> | void;
|
|
51
|
+
generateImageOptions?: GenerateImageAdditionalOptions;
|
|
52
|
+
abortSignal?: AbortSignal;
|
|
53
|
+
defaultN?: number;
|
|
54
|
+
sizes?: string[];
|
|
55
|
+
ratios?: string[];
|
|
56
|
+
maxImages?: number;
|
|
57
|
+
description?: string;
|
|
58
|
+
}
|
|
59
|
+
export declare function createToolGenerateImage(options: CreateToolGenerateImageOptions): Tool<ToolGenerateImageInput, {
|
|
60
|
+
urls: string[];
|
|
61
|
+
}>;
|
|
22
62
|
export interface CreateToolAgentCodeProps {
|
|
23
63
|
writer: UIMessageStreamWriter;
|
|
24
64
|
projectContext: ProjectContext;
|
|
25
65
|
model: LanguageModelV3;
|
|
26
66
|
abortSignal?: AbortSignal;
|
|
27
67
|
streamOptions?: AgentCodeOptions['streamOptions'];
|
|
68
|
+
postStream?: AgentCodeOptions['postStream'];
|
|
28
69
|
onEnd?: OnEndCallback;
|
|
29
70
|
}
|
|
71
|
+
export declare const toolRemoveComponent: Tool<{
|
|
72
|
+
componentId: string;
|
|
73
|
+
}, never>;
|
|
74
|
+
export declare const toolMoveComponent: Tool<{
|
|
75
|
+
sourceId: string;
|
|
76
|
+
targetId: string;
|
|
77
|
+
targetIndex: number;
|
|
78
|
+
}, never>;
|
|
79
|
+
export declare const toolGetPageContent: Tool<{
|
|
80
|
+
pageId: string;
|
|
81
|
+
}, never>;
|
|
82
|
+
export declare const toolListPages: Tool<Record<string, never>, never>;
|
|
83
|
+
export declare const toolAddComponent: Tool<{
|
|
84
|
+
name: string;
|
|
85
|
+
plan: string;
|
|
86
|
+
componentId: string;
|
|
87
|
+
position: "before" | "beforeInside" | "afterInside" | "after";
|
|
88
|
+
imageUrls: string[];
|
|
89
|
+
}, never>;
|
|
30
90
|
/**
|
|
31
|
-
* Returns
|
|
91
|
+
* Returns addComponent tool that runs on the server and uses the stream writer
|
|
32
92
|
* to send data-tool-status (in-progress, streaming, done) for real-time UI updates.
|
|
33
93
|
* @see https://ai-sdk.dev/docs/reference/ai-sdk-ui/create-ui-message-stream
|
|
34
94
|
*/
|
|
@@ -52,22 +112,6 @@ export declare function createToolEditComponent(props: CreateToolAgentCodeProps)
|
|
|
52
112
|
plan: string;
|
|
53
113
|
imageUrls: string[];
|
|
54
114
|
}, Record<string, unknown>>;
|
|
55
|
-
export declare const toolRemoveComponent: Tool<{
|
|
56
|
-
componentId: string;
|
|
57
|
-
}, never>;
|
|
58
|
-
export declare const toolMoveComponent: Tool<{
|
|
59
|
-
sourceId: string;
|
|
60
|
-
targetId: string;
|
|
61
|
-
targetIndex: number;
|
|
62
|
-
}, never>;
|
|
63
|
-
export declare const toolGetPageContent: Tool<{
|
|
64
|
-
pageId: string;
|
|
65
|
-
}, never>;
|
|
66
|
-
export declare const toolListPages: Tool<Record<string, never>, never>;
|
|
67
|
-
export declare const toolFetchWebsite: Tool<{
|
|
68
|
-
url: string;
|
|
69
|
-
name: string;
|
|
70
|
-
}, never>;
|
|
71
115
|
export declare const toolAddNewPage: Tool<{
|
|
72
116
|
name: string;
|
|
73
117
|
plan: string;
|
|
@@ -86,7 +130,6 @@ export declare function createToolAddPage(props: CreateToolAgentCodeProps): Tool
|
|
|
86
130
|
export declare const toolAddNewProjectPage: Tool<{
|
|
87
131
|
name: string;
|
|
88
132
|
plan: string;
|
|
89
|
-
imageUrls: string[];
|
|
90
133
|
}, never>;
|
|
91
134
|
/**
|
|
92
135
|
* Returns addNewProjectPage tool that runs on the server and uses the stream writer
|
|
@@ -96,101 +139,10 @@ export declare const toolAddNewProjectPage: Tool<{
|
|
|
96
139
|
export declare function createToolAddProjectPage(props: CreateToolAgentCodeProps): Tool<{
|
|
97
140
|
name: string;
|
|
98
141
|
plan: string;
|
|
99
|
-
imageUrls: string[];
|
|
100
142
|
}, Record<string, unknown>>;
|
|
101
|
-
export declare const
|
|
102
|
-
|
|
143
|
+
export declare const defaultCommandDescriptions: Partial<Record<ToolBuiltInCommands, string>>;
|
|
144
|
+
export declare function createCommandTool(options?: CreateServerCommandToolOptions): Tool<{
|
|
145
|
+
commandId: ToolBuiltInCommands;
|
|
103
146
|
}, never>;
|
|
104
|
-
export declare const toolsNewProject: {
|
|
105
|
-
addNewProjectPage: Tool<{
|
|
106
|
-
name: string;
|
|
107
|
-
plan: string;
|
|
108
|
-
imageUrls: string[];
|
|
109
|
-
}, never>;
|
|
110
|
-
};
|
|
111
|
-
export declare const toolsWeb: {
|
|
112
|
-
addNewPage: Tool<{
|
|
113
|
-
name: string;
|
|
114
|
-
plan: string;
|
|
115
|
-
imageUrls: string[];
|
|
116
|
-
}, never>;
|
|
117
|
-
addNewComponent: Tool<{
|
|
118
|
-
name: string;
|
|
119
|
-
plan: string;
|
|
120
|
-
componentId: string;
|
|
121
|
-
position: "before" | "beforeInside" | "afterInside" | "after";
|
|
122
|
-
imageUrls: string[];
|
|
123
|
-
}, never>;
|
|
124
|
-
removeComponent: Tool<{
|
|
125
|
-
componentId: string;
|
|
126
|
-
}, never>;
|
|
127
|
-
moveComponent: Tool<{
|
|
128
|
-
sourceId: string;
|
|
129
|
-
targetId: string;
|
|
130
|
-
targetIndex: number;
|
|
131
|
-
}, never>;
|
|
132
|
-
editComponent: Tool<{
|
|
133
|
-
plan: string;
|
|
134
|
-
imageUrls: string[];
|
|
135
|
-
}, never>;
|
|
136
|
-
getPageContent: Tool<{
|
|
137
|
-
pageId: string;
|
|
138
|
-
}, never>;
|
|
139
|
-
listPages: Tool<Record<string, never>, never>;
|
|
140
|
-
};
|
|
141
|
-
export declare const toolsEmail: {
|
|
142
|
-
addNewComponent: Tool<{
|
|
143
|
-
name: string;
|
|
144
|
-
plan: string;
|
|
145
|
-
componentId: string;
|
|
146
|
-
position: "before" | "beforeInside" | "afterInside" | "after";
|
|
147
|
-
imageUrls: string[];
|
|
148
|
-
}, never>;
|
|
149
|
-
editComponent: Tool<{
|
|
150
|
-
plan: string;
|
|
151
|
-
imageUrls: string[];
|
|
152
|
-
}, never>;
|
|
153
|
-
removeComponent: Tool<{
|
|
154
|
-
componentId: string;
|
|
155
|
-
}, never>;
|
|
156
|
-
moveComponent: Tool<{
|
|
157
|
-
sourceId: string;
|
|
158
|
-
targetId: string;
|
|
159
|
-
targetIndex: number;
|
|
160
|
-
}, never>;
|
|
161
|
-
getPageContent: Tool<{
|
|
162
|
-
pageId: string;
|
|
163
|
-
}, never>;
|
|
164
|
-
};
|
|
165
|
-
export declare function getDefaultProjectTools({ isEmail, isNewProject }?: Partial<ProjectContext>): {
|
|
166
|
-
addNewProjectPage: Tool<{
|
|
167
|
-
name: string;
|
|
168
|
-
plan: string;
|
|
169
|
-
imageUrls: string[];
|
|
170
|
-
}, never>;
|
|
171
|
-
} | {
|
|
172
|
-
addNewComponent: Tool<{
|
|
173
|
-
name: string;
|
|
174
|
-
plan: string;
|
|
175
|
-
componentId: string;
|
|
176
|
-
position: "before" | "beforeInside" | "afterInside" | "after";
|
|
177
|
-
imageUrls: string[];
|
|
178
|
-
}, never>;
|
|
179
|
-
editComponent: Tool<{
|
|
180
|
-
plan: string;
|
|
181
|
-
imageUrls: string[];
|
|
182
|
-
}, never>;
|
|
183
|
-
removeComponent: Tool<{
|
|
184
|
-
componentId: string;
|
|
185
|
-
}, never>;
|
|
186
|
-
moveComponent: Tool<{
|
|
187
|
-
sourceId: string;
|
|
188
|
-
targetId: string;
|
|
189
|
-
targetIndex: number;
|
|
190
|
-
}, never>;
|
|
191
|
-
getPageContent: Tool<{
|
|
192
|
-
pageId: string;
|
|
193
|
-
}, never>;
|
|
194
|
-
};
|
|
195
147
|
export declare function buildDefaultTools(options: BuildDefaultToolsOptions): Record<string, Tool>;
|
|
196
148
|
export {};
|
|
@@ -1,7 +1,48 @@
|
|
|
1
1
|
import { LanguageModelV3 } from '@ai-sdk/provider';
|
|
2
|
-
import { FinishReason, LanguageModelUsage, Tool, UIMessage, UIMessageStreamOptions, UIMessageStreamWriter, streamText } from 'ai';
|
|
3
|
-
import { ProjectContext } from '../types';
|
|
2
|
+
import { FinishReason, LanguageModelUsage, ModelMessage, Tool, UIMessage, UIMessageStreamOptions, UIMessageStreamWriter, streamText } from 'ai';
|
|
3
|
+
import { ChatToolAgentCode, ProjectContext, ToolBuiltInCommands } from '../types';
|
|
4
|
+
export declare enum ChatPromptKeys {
|
|
5
|
+
SELECTED_PAGE_ID = "SELECTED_PAGE_ID",
|
|
6
|
+
SELECTED_PAGE_NAME = "SELECTED_PAGE_NAME",
|
|
7
|
+
SELECTED_COMPONENT_IDS = "SELECTED_COMPONENT_IDS",
|
|
8
|
+
IS_PROJECT_EMPTY = "IS_PROJECT_EMPTY"
|
|
9
|
+
}
|
|
4
10
|
export type StreamTextOptions = Parameters<typeof streamText>[0];
|
|
11
|
+
export interface AgentCodePromptOptions {
|
|
12
|
+
preamble?: string;
|
|
13
|
+
postamble?: string;
|
|
14
|
+
currentCode?: string;
|
|
15
|
+
mainPage?: string;
|
|
16
|
+
design?: string;
|
|
17
|
+
imageRefs?: string;
|
|
18
|
+
media?: string;
|
|
19
|
+
icons?: string;
|
|
20
|
+
pageLinking?: string;
|
|
21
|
+
css?: string;
|
|
22
|
+
responsiveStyles?: string;
|
|
23
|
+
globalStyles?: string;
|
|
24
|
+
plugins?: string;
|
|
25
|
+
scripts?: string;
|
|
26
|
+
output?: string;
|
|
27
|
+
}
|
|
28
|
+
export type AgentCodeStreamOptions = Partial<Omit<StreamTextOptions, 'model' | 'prompt' | 'abortSignal' | 'toolChoice' | 'messages' | 'tools' | 'onToolCall'>>;
|
|
29
|
+
export interface AgentCodeStreamOptionsFnProps<TInput = unknown> {
|
|
30
|
+
options: AgentCodeStreamOptions & Pick<StreamTextOptions, 'model' | 'prompt' | 'abortSignal'>;
|
|
31
|
+
toolName: ChatToolAgentCode;
|
|
32
|
+
projectContext: ProjectContext;
|
|
33
|
+
input: TInput;
|
|
34
|
+
prompt: string | ModelMessage[];
|
|
35
|
+
getSystemPrompt: (projectContext: ProjectContext, options?: AgentCodePromptOptions) => string;
|
|
36
|
+
}
|
|
37
|
+
export type AgentCodeStreamOptionsFn<TInput = unknown> = (props: AgentCodeStreamOptionsFnProps<TInput>) => AgentCodeStreamOptions | void;
|
|
38
|
+
export interface AgentCodePostStreamProps<TInput = unknown> {
|
|
39
|
+
content: string;
|
|
40
|
+
statusWriter: ToolStatusWriter;
|
|
41
|
+
toolName: ChatToolAgentCode;
|
|
42
|
+
projectContext: ProjectContext;
|
|
43
|
+
input: TInput;
|
|
44
|
+
}
|
|
45
|
+
export type AgentCodePostStream<TInput = unknown> = (props: AgentCodePostStreamProps<TInput>) => void | Promise<void>;
|
|
5
46
|
/**
|
|
6
47
|
* Callback invoked when a streamText call finishes, useful for tracking LLM usage.
|
|
7
48
|
*/
|
|
@@ -28,7 +69,11 @@ export interface AgentCodeOptions {
|
|
|
28
69
|
/**
|
|
29
70
|
* Additional stream text options passed to the agent's internal streamText calls
|
|
30
71
|
*/
|
|
31
|
-
streamOptions?:
|
|
72
|
+
streamOptions?: AgentCodeStreamOptions | AgentCodeStreamOptionsFn;
|
|
73
|
+
/**
|
|
74
|
+
* Hook executed after the sub-agent stream ends and before the final done status is emitted.
|
|
75
|
+
*/
|
|
76
|
+
postStream?: AgentCodePostStream;
|
|
32
77
|
}
|
|
33
78
|
/**
|
|
34
79
|
* Return type of createToolStatusWriter function
|
|
@@ -64,6 +109,15 @@ export interface CreateToolStatusWriterOptions {
|
|
|
64
109
|
*/
|
|
65
110
|
export interface CreateToolStatusWriterOptionsFactory extends Omit<CreateToolStatusWriterOptions, 'writer'> {
|
|
66
111
|
}
|
|
112
|
+
export interface CommandToolServerDefinition {
|
|
113
|
+
description?: string;
|
|
114
|
+
}
|
|
115
|
+
export type CommandToolServerDefinitions = Partial<Record<ToolBuiltInCommands | string, CommandToolServerDefinition>>;
|
|
116
|
+
export interface CreateServerCommandToolOptions {
|
|
117
|
+
skipDefault?: boolean;
|
|
118
|
+
commands?: CommandToolServerDefinitions;
|
|
119
|
+
projectContext?: Partial<ProjectContext>;
|
|
120
|
+
}
|
|
67
121
|
/**
|
|
68
122
|
* Options passed to the tools callback function
|
|
69
123
|
*/
|
|
@@ -101,6 +155,10 @@ export interface ToolsCallbackOptions {
|
|
|
101
155
|
* ```
|
|
102
156
|
*/
|
|
103
157
|
createToolStatusWriter: (options: CreateToolStatusWriterOptionsFactory) => ToolStatusWriter;
|
|
158
|
+
/**
|
|
159
|
+
* Create a server-side runCommand tool using built-in command definitions.
|
|
160
|
+
*/
|
|
161
|
+
createCommandTool: (options?: CreateServerCommandToolOptions) => Tool;
|
|
104
162
|
}
|
|
105
163
|
export interface ChatSystemPrompt {
|
|
106
164
|
/**
|
package/dist/aiChat/types.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Chat, UIMessage, useChat, UseChatHelpers } from '@ai-sdk/react';
|
|
2
2
|
import { ChatInit, DynamicToolUIPart, HttpChatTransportInitOptions, ToolUIPart } from 'ai';
|
|
3
3
|
import { Component, Editor } from 'grapesjs';
|
|
4
|
-
import { LicenseCheckResult } from '../utils';
|
|
5
4
|
import { StudioLayoutComponentsConfig } from '../types';
|
|
6
|
-
import {
|
|
5
|
+
import { LicenseCheckResult } from '../utils';
|
|
7
6
|
import { ToolStatusProgressMap } from './clientToolsProcessors';
|
|
7
|
+
import { AiChatLayoutComponentsRegistryEntries } from './components/index';
|
|
8
8
|
import { AiChatOptions as AiChatOptionsSchema, CommonComponentPropsSchema } from './typesSchema';
|
|
9
9
|
/**
|
|
10
10
|
* ChatMessage is a direct alias of AI SDK's UIMessage
|
|
@@ -23,7 +23,8 @@ export declare enum AiChatToolName {
|
|
|
23
23
|
GET_PAGE_CONTENT = "getPageContent",
|
|
24
24
|
LIST_PAGES = "listPages",
|
|
25
25
|
FETCH_WEBSITE = "fetchWebsite",
|
|
26
|
-
|
|
26
|
+
GENERATE_IMAGE = "generateImage",
|
|
27
|
+
RUN_COMMAND = "runCommand"
|
|
27
28
|
}
|
|
28
29
|
export declare enum ChatToolAgentCode {
|
|
29
30
|
ADD_COMPONENT_CODE = "addComponentCode",
|
|
@@ -31,18 +32,25 @@ export declare enum ChatToolAgentCode {
|
|
|
31
32
|
ADD_PAGE_CODE = "addPageCode",
|
|
32
33
|
ADD_PROJECT_PAGE_CODE = "addProjectPageCode"
|
|
33
34
|
}
|
|
34
|
-
export declare enum
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
export declare enum ToolBuiltInCommands {
|
|
36
|
+
SHOW_CODE = "showCode",
|
|
37
|
+
IMPORT_CODE = "importCode",
|
|
37
38
|
PAGE_SETTINGS = "pageSettings",
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
PREVIEW = "preview",
|
|
40
|
+
PUBLISH = "publish"
|
|
40
41
|
}
|
|
41
42
|
export declare enum AiChatCommands {
|
|
42
43
|
getChatManager = "aiChat:getChatManager",
|
|
43
44
|
getChatState = "aiChat:getChatState",
|
|
44
45
|
getChatApi = "aiChat:getChatApi"
|
|
45
46
|
}
|
|
47
|
+
export interface ToolGenerateImageInput extends Record<string, unknown> {
|
|
48
|
+
prompt: string;
|
|
49
|
+
images?: string[];
|
|
50
|
+
n?: number;
|
|
51
|
+
size?: string;
|
|
52
|
+
aspectRatio?: string;
|
|
53
|
+
}
|
|
46
54
|
export interface AiChatToolsArguments {
|
|
47
55
|
[AiChatToolName.ADD_NEW_COMPONENT]: {
|
|
48
56
|
name: string;
|
|
@@ -76,14 +84,15 @@ export interface AiChatToolsArguments {
|
|
|
76
84
|
plan: string;
|
|
77
85
|
imageUrls: string[];
|
|
78
86
|
};
|
|
79
|
-
[AiChatToolName.
|
|
80
|
-
|
|
87
|
+
[AiChatToolName.RUN_COMMAND]: {
|
|
88
|
+
commandId: ToolBuiltInCommands;
|
|
81
89
|
};
|
|
82
90
|
[AiChatToolName.LIST_PAGES]: Record<string, never>;
|
|
83
91
|
[AiChatToolName.FETCH_WEBSITE]: {
|
|
84
92
|
url: string;
|
|
85
93
|
name: string;
|
|
86
94
|
};
|
|
95
|
+
[AiChatToolName.GENERATE_IMAGE]: ToolGenerateImageInput;
|
|
87
96
|
}
|
|
88
97
|
export interface ProjectContext {
|
|
89
98
|
/**
|
|
@@ -176,6 +185,45 @@ export interface AiChatMessagePartLayoutProps extends AiChatMessageLayoutProps {
|
|
|
176
185
|
export interface AiChatMessageToolDetailLayoutProps extends AiChatMessagePartLayoutProps {
|
|
177
186
|
part: ToolUIPart | DynamicToolUIPart;
|
|
178
187
|
toolName: string;
|
|
188
|
+
isProcessing: boolean;
|
|
189
|
+
isCompleted?: boolean;
|
|
190
|
+
input?: unknown;
|
|
191
|
+
output?: unknown;
|
|
192
|
+
}
|
|
193
|
+
export interface AiChatToolData<TInput extends Record<string, unknown> = Record<string, unknown>> {
|
|
194
|
+
type: 'data-tool-status';
|
|
195
|
+
id: string;
|
|
196
|
+
data: {
|
|
197
|
+
name: string;
|
|
198
|
+
input: TInput;
|
|
199
|
+
status: 'in-progress' | 'streaming' | 'done' | 'complete' | 'error';
|
|
200
|
+
content?: string;
|
|
201
|
+
error?: string;
|
|
202
|
+
metadata?: Record<string, unknown>;
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
export interface AiChatClientToolOnDataProps<TInput extends Record<string, unknown> = Record<string, unknown>> {
|
|
206
|
+
editor: Editor;
|
|
207
|
+
chatApi: ChatApi;
|
|
208
|
+
toolStatus: AiChatToolData<TInput>;
|
|
209
|
+
toolStatusProgress: ToolStatusProgressMap;
|
|
210
|
+
}
|
|
211
|
+
export interface CommandLabelProps {
|
|
212
|
+
isExecuted: boolean;
|
|
213
|
+
}
|
|
214
|
+
type CommandToolResult = string | Record<string, unknown> | void;
|
|
215
|
+
export interface CommandToolClientDefinition {
|
|
216
|
+
label?: (props: CommandLabelProps) => StudioLayoutComponentsConfig | undefined | void;
|
|
217
|
+
execute?: (props: {
|
|
218
|
+
editor: Editor;
|
|
219
|
+
input: AiChatToolsArguments[AiChatToolName.RUN_COMMAND];
|
|
220
|
+
context: AiChatToolContext;
|
|
221
|
+
}) => Promise<CommandToolResult> | CommandToolResult;
|
|
222
|
+
}
|
|
223
|
+
export type CommandToolClientDefinitions = Partial<Record<ToolBuiltInCommands | string, CommandToolClientDefinition>>;
|
|
224
|
+
export interface CreateCommandToolOptions {
|
|
225
|
+
skipDefault?: boolean;
|
|
226
|
+
commands?: CommandToolClientDefinitions;
|
|
179
227
|
}
|
|
180
228
|
/**
|
|
181
229
|
* Client-side tool definition
|
|
@@ -185,6 +233,14 @@ export interface AiChatClientTool<TInput extends Record<string, unknown> = any>
|
|
|
185
233
|
* Execute the tool on the client side
|
|
186
234
|
*/
|
|
187
235
|
execute?: (input: TInput, context: AiChatToolContext) => Promise<string | Record<string, unknown>>;
|
|
236
|
+
/**
|
|
237
|
+
* Custom label for tool in the message.
|
|
238
|
+
*/
|
|
239
|
+
layoutToolLabel?: (props: AiChatMessageToolDetailLayoutProps) => StudioLayoutComponentsConfig | undefined | void;
|
|
240
|
+
/**
|
|
241
|
+
* Callback on incoming status data for this tool.
|
|
242
|
+
*/
|
|
243
|
+
onData?: (props: AiChatClientToolOnDataProps<TInput>) => void;
|
|
188
244
|
/**
|
|
189
245
|
* Custom layout for tool in the message.
|
|
190
246
|
*/
|
|
@@ -203,7 +259,8 @@ export interface AiChatToolContext {
|
|
|
203
259
|
/**
|
|
204
260
|
* Default tools type
|
|
205
261
|
*/
|
|
206
|
-
export type
|
|
262
|
+
export type AiChatDefaultToolName = AiChatToolName.REMOVE_COMPONENT | AiChatToolName.MOVE_COMPONENT | AiChatToolName.GET_PAGE_CONTENT | AiChatToolName.LIST_PAGES | AiChatToolName.GENERATE_IMAGE | AiChatToolName.RUN_COMMAND;
|
|
263
|
+
export type AiChatDefaultTools = Record<AiChatDefaultToolName, AiChatClientTool>;
|
|
207
264
|
/**
|
|
208
265
|
* Custom tools type
|
|
209
266
|
*/
|
|
@@ -214,6 +271,7 @@ export type AiChatTools = Record<string, AiChatClientTool>;
|
|
|
214
271
|
export type AiChatToolsFn = (props: {
|
|
215
272
|
defaultTools: AiChatDefaultTools;
|
|
216
273
|
editor: Editor;
|
|
274
|
+
createCommandTool: (options?: CreateCommandToolOptions) => AiChatClientTool<AiChatToolsArguments[AiChatToolName.RUN_COMMAND]>;
|
|
217
275
|
}) => AiChatTools;
|
|
218
276
|
/**
|
|
219
277
|
* Props for custom message component
|
|
@@ -112,6 +112,28 @@ export interface AiChatPanelPropsSchema extends CommonComponentPropsSchema {
|
|
|
112
112
|
pluginOptions: object;
|
|
113
113
|
}
|
|
114
114
|
export interface AiChatHeaderPropsSchema {
|
|
115
|
+
/**
|
|
116
|
+
* Custom title for the header.
|
|
117
|
+
*/
|
|
118
|
+
title?: string;
|
|
119
|
+
/**
|
|
120
|
+
* Custom layout rendered before the header content.
|
|
121
|
+
*/
|
|
122
|
+
layoutBefore?: '__fn__';
|
|
123
|
+
/**
|
|
124
|
+
* Custom layout rendered after the header content.
|
|
125
|
+
*/
|
|
126
|
+
layoutAfter?: '__fn__';
|
|
127
|
+
/**
|
|
128
|
+
* Props forwarded to the clear button.
|
|
129
|
+
* Use `onClear` to customize clear behavior.
|
|
130
|
+
*/
|
|
131
|
+
clearButtonProps?: object;
|
|
132
|
+
/**
|
|
133
|
+
* Custom clear handler.
|
|
134
|
+
* Receives `chatApi`, `clear`, and click `event`.
|
|
135
|
+
*/
|
|
136
|
+
onClear?: '__fn__';
|
|
115
137
|
}
|
|
116
138
|
export interface AiChatErrorPropsSchema {
|
|
117
139
|
}
|
|
@@ -197,6 +219,11 @@ export interface AiChatMessagePropsSchema {
|
|
|
197
219
|
* Indicates if the message is currently streaming
|
|
198
220
|
*/
|
|
199
221
|
isStreaming?: boolean;
|
|
222
|
+
/**
|
|
223
|
+
* Render source parts (source-url/source-document) when available.
|
|
224
|
+
* @default false
|
|
225
|
+
*/
|
|
226
|
+
showSources?: boolean;
|
|
200
227
|
/**
|
|
201
228
|
* Custom layout before the message
|
|
202
229
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var p=(t=>(t.free="free",t.startup="startup",t.business="business",t.enterprise="enterprise",t))(p||{}),v=(t=>(t.toastAdd="studio:toastAdd",t.toastRemove="studio:toastRemove",t.dialogOpen="studio:dialogOpen",t.dialogClose="studio:dialogClose",t.dialogExportCode="studio:dialogExportCode",t.sidebarLeftSet="studio:sidebarLeft:set",t.sidebarLeftGet="studio:sidebarLeft:get",t.sidebarLeftToggle="studio:sidebarLeft:toggle",t.sidebarRightSet="studio:sidebarRight:set",t.sidebarRightGet="studio:sidebarRight:get",t.sidebarRightToggle="studio:sidebarRight:toggle",t.sidebarTopSet="studio:sidebarTop:set",t.sidebarTopGet="studio:sidebarTop:get",t.sidebarTopToggle="studio:sidebarTop:toggle",t.sidebarBottomSet="studio:sidebarBottom:set",t.sidebarBottomGet="studio:sidebarBottom:get",t.sidebarBottomToggle="studio:sidebarBottom:toggle",t.symbolAdd="studio:symbolAdd",t.symbolDetach="studio:symbolDetach",t.symbolOverride="studio:symbolOverride",t.symbolPropagateStyles="studio:propagateStyles",t.getPagesConfig="studio:getPagesConfig",t.setPagesConfig="studio:setPagesConfig",t.getPageSettings="studio:getPageSettings",t.setPageSettings="studio:setPageSettings",t.clearPage="studio:clearPage",t.projectFiles="studio:projectFiles",t.validateCode="studio:validateCode",t.canvasReload="studio:canvasReload",t.getBlocksPanel="studio:getBlocksPanel",t.setBlocksPanel="studio:setBlocksPanel",t.getStateContextMenu="studio:getStateContextMenu",t.setStateContextMenu="studio:setStateContextMenu",t.contextMenuComponent="studio:contextMenuComponent",t.layoutAdd="studio:layoutAdd",t.layoutRemove="studio:layoutRemove",t.layoutToggle="studio:layoutToggle",t.layoutUpdate="studio:layoutUpdate",t.layoutGet="studio:layoutGet",t.layoutConfigGet="studio:layoutConfigGet",t.layoutConfigSet="studio:layoutConfigSet",t.layoutComponentAdd="studio:layoutComponentAdd",t.layoutComponentGet="studio:layoutComponentGet",t.layoutComponentRemove="studio:layoutComponentRemove",t.layoutComponentRender="studio:layoutComponentRender",t.getStateTheme="studio:getStateTheme",t.setStateTheme="studio:setStateTheme",t.assetProviderGet="studio:assetProviderGet",t.assetProviderAdd="studio:assetProviderAdd",t.assetProviderRemove="studio:assetProviderRemove",t.fontGet="studio:fontGet",t.fontAdd="studio:fontAdd",t.fontRemove="studio:fontRemove",t.fontManagerOpen="studio:fontManagerOpen",t.menuFontLoad="studio:menuFontLoad",t.toggleStateDataSource="studio:toggleStateDataSource",t.getStateDataSource="studio:getStateDataSource",t.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",t.dataSourceSetImporter="studio:dataSourceSetImporter",t.dataSourceSetExporter="studio:dataSourceSetExporter",t.setDragAbsolute="studio:setDragAbsolute",t))(v||{});const D="app.grapesjs.com",G="app-stage.grapesjs.com",
|
|
1
|
+
"use strict";var p=(t=>(t.free="free",t.startup="startup",t.business="business",t.enterprise="enterprise",t))(p||{}),v=(t=>(t.toastAdd="studio:toastAdd",t.toastRemove="studio:toastRemove",t.dialogOpen="studio:dialogOpen",t.dialogClose="studio:dialogClose",t.dialogExportCode="studio:dialogExportCode",t.dialogImportCode="studio:dialogImportCode",t.sidebarLeftSet="studio:sidebarLeft:set",t.sidebarLeftGet="studio:sidebarLeft:get",t.sidebarLeftToggle="studio:sidebarLeft:toggle",t.sidebarRightSet="studio:sidebarRight:set",t.sidebarRightGet="studio:sidebarRight:get",t.sidebarRightToggle="studio:sidebarRight:toggle",t.sidebarTopSet="studio:sidebarTop:set",t.sidebarTopGet="studio:sidebarTop:get",t.sidebarTopToggle="studio:sidebarTop:toggle",t.sidebarBottomSet="studio:sidebarBottom:set",t.sidebarBottomGet="studio:sidebarBottom:get",t.sidebarBottomToggle="studio:sidebarBottom:toggle",t.symbolAdd="studio:symbolAdd",t.symbolDetach="studio:symbolDetach",t.symbolOverride="studio:symbolOverride",t.symbolPropagateStyles="studio:propagateStyles",t.getPagesConfig="studio:getPagesConfig",t.setPagesConfig="studio:setPagesConfig",t.getPageSettings="studio:getPageSettings",t.setPageSettings="studio:setPageSettings",t.clearPage="studio:clearPage",t.projectFiles="studio:projectFiles",t.validateCode="studio:validateCode",t.canvasReload="studio:canvasReload",t.getBlocksPanel="studio:getBlocksPanel",t.setBlocksPanel="studio:setBlocksPanel",t.getStateContextMenu="studio:getStateContextMenu",t.setStateContextMenu="studio:setStateContextMenu",t.contextMenuComponent="studio:contextMenuComponent",t.layoutAdd="studio:layoutAdd",t.layoutRemove="studio:layoutRemove",t.layoutToggle="studio:layoutToggle",t.layoutUpdate="studio:layoutUpdate",t.layoutGet="studio:layoutGet",t.layoutConfigGet="studio:layoutConfigGet",t.layoutConfigSet="studio:layoutConfigSet",t.layoutComponentAdd="studio:layoutComponentAdd",t.layoutComponentGet="studio:layoutComponentGet",t.layoutComponentRemove="studio:layoutComponentRemove",t.layoutComponentRender="studio:layoutComponentRender",t.getStateTheme="studio:getStateTheme",t.setStateTheme="studio:setStateTheme",t.assetProviderGet="studio:assetProviderGet",t.assetProviderAdd="studio:assetProviderAdd",t.assetProviderRemove="studio:assetProviderRemove",t.fontGet="studio:fontGet",t.fontAdd="studio:fontAdd",t.fontRemove="studio:fontRemove",t.fontManagerOpen="studio:fontManagerOpen",t.menuFontLoad="studio:menuFontLoad",t.toggleStateDataSource="studio:toggleStateDataSource",t.getStateDataSource="studio:getStateDataSource",t.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",t.dataSourceSetImporter="studio:dataSourceSetImporter",t.dataSourceSetExporter="studio:dataSourceSetExporter",t.setDragAbsolute="studio:setDragAbsolute",t))(v||{});const D="app.grapesjs.com",G="app-stage.grapesjs.com",R="app2.grapesjs.com",$="app-stage2.grapesjs.com",w=[D,R,G,$,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],E="license:check:start",M="license:check:end",U=()=>typeof window<"u",j=({isDev:t,isStage:e,isPlatform:s})=>`${t?"":`https://${e?G:D}`}/${s?"platform-api":"api"}`,N=()=>{const t=U()&&window.location.hostname;return!!t&&(w.includes(t)||w.some(e=>t.endsWith(e)))};async function B({path:t,baseApiUrl:e,method:s="GET",headers:a={},params:o,body:r}){const l=`${e||j({isDev:!1,isStage:!1})}${t}`,c={method:s,headers:{"Content-Type":"application/json",...a}};r&&(c.body=JSON.stringify(r));const u=o?new URLSearchParams(o).toString():"",g=u?`?${u}`:"",n=await fetch(`${l}${g}`,c);if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);return n.json()}const F={[p.free]:0,[p.startup]:10,[p.business]:20,[p.enterprise]:30};function k(t){const e=t;return e.init=s=>a=>t(a,s),e}const W=t=>k(t);async function _({editor:t,plan:e,pluginName:s,licenseKey:a,onLicenseCheckResponse:o,cleanup:r}){let i="",l=!1;const c=N(),u=n=>{console.warn("Cleanup plugin:",s,"Reason:",n),r()},g=(n={})=>{var A;const{error:d,sdkLicense:f}=n,b=(A=n.plan)==null?void 0:A.category;if(!(f||n.license)||d)u(d||"Invalid license");else if(b){const O=F[e],I=F[b];O>I&&u({pluginRequiredPlan:e,licensePlan:b})}};t.on(E,n=>{i=n==null?void 0:n.baseApiUrl,l=!0}),t.on(M,n=>{o==null||o(n),g(n)}),setTimeout(async()=>{if(!l){if(c)return;if(a){const n=await K({licenseKey:a,pluginName:s,baseApiUrl:i});o==null||o(n),n&&g(n)}else u("The `licenseKey` option not provided")}},2e3)}async function K(t){const{licenseKey:e,pluginName:s,baseApiUrl:a}=t;try{return(await B({baseApiUrl:a,path:`/sdk/${e||"na"}`,method:"POST",params:{d:window.location.hostname,pn:s}})).result||{}}catch(o){return console.error("Error during SDK license check:",o),!1}}const y=t=>t.replaceAll('"',"").replaceAll("'",""),P=t=>t.includes(",")?t:/\s/.test(t)?`'${y(t)}'`:y(t),T=(t,e,s)=>({family:t,variant:e,...s}),L=(t,e)=>{t=P(t);const{menuVariant:s,variants:a}=e;return{family:t,familyLabel:y(t),menuVariant:s&&T(P(`menuFont-${y(t)}`),"regular",s),variants:Object.assign({},...Object.entries(a).map(([o,r])=>({[o]:T(t,o,r)})))}},x=(t,e)=>{var l;const s=L(t.family,t),a=s.menuVariant??((l=Object.values(s.variants))==null?void 0:l[0]);if(!a)return"Arial, Helvetica, sans-serif";const{source:o,descriptors:r}=a,i=y(a.family);if(!e){const c=new FontFace(i,`url("${o}")`,r),u=Array.from(document.fonts.values()).filter(g=>g.family===i);for(const g of u)document.fonts.delete(g);document.fonts.add(c),c.load().catch(()=>{})}return P(i)},V=t=>{const{family:e,menu:s,axes:a}=t,o=!!a,r=Object.assign({},...t.variants.map(i=>{var g,n;let l,c;if(o){const d=a.find(f=>f.tag==="wght");if(d){const{start:f,end:b}=d;l=`${f} ${b}`}}return l||(l=((g=i.match(/\d+/))==null?void 0:g[0])??"400"),c=((n=i.match(/[a-zA-Z]+/))==null?void 0:n[0])==="italic"?"italic":void 0,{[i]:{source:t.files[i],descriptors:{style:c,weight:l}}}}));return L(e,{menuVariant:{source:s},variants:r})},H=t=>({id:`${t.family}/${t.version}`,type:"font",src:t.menu,name:t.family,customData:{font:V(t),needsLoading:!0}}),z=t=>{const{font:e}=t.customData;return t.customData.needsLoading?(t.customData.needsLoading=!1,x(e)):x(e,!0)};let h;const q=t=>{const e=[];for(const s of Object.keys(t)){let a=t[s];a&&(Array.isArray(a)?e.push(...a.map(o=>[s,o.toString()])):(a=a.toString(),e.push([s,a])))}return new URLSearchParams(e)},J=t=>{const{apiKey:e,searchParams:s}=t,a=(o={})=>{const r="https://www.googleapis.com/webfonts/v1/webfonts",i=q(o);return`${r}?${i}`};return{id:"google-fonts",types:["font"],label:({editor:o})=>o.I18n.t("googleFontsAssetProvider.providerLabel"),search:{reloadOnInput:!1},async onLoad(){var u;if(h)return h;const o={key:e,sort:"alpha",subset:"latin",capability:["WOFF2","VF"]},r=s==null?void 0:s(),i={...o,...r},c=await(await fetch(a(i))).json();return(u=c.items)!=null&&u.length?(h=c.items.map(H),h):[]},itemLayout:o=>{const r=h.find(l=>l.id===o.assetProps.id),i=z(r);return{type:"column",onClick:()=>o.onSelect(r),htmlAttrs:{title:r.name},style:{borderWidth:"1px",borderRadius:8,overflow:"hidden",cursor:"pointer"},children:[{type:"text",content:r.name,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:i,fontSize:"24px",paddingLeft:"8px",paddingRight:"8px"}},{type:"text",content:r.name,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"16px",paddingLeft:"8px",paddingRight:"8px"}}]}}}},Q={googleFontsAssetProvider:{searchBtn:"Search on Google Fonts",modalTitle:"Select Font",providerLabel:"Google Fonts"}},S="googleFontsAssetProvider",Z=p.startup,X=function(t,e){const{i18n:s={}}=e,a=J(e);t.runCommand(v.assetProviderAdd,{provider:a}),t.I18n.addMessages({en:Q,...s}),_({editor:t,licenseKey:e.licenseKey,plan:Z,pluginName:S,cleanup:()=>{t.runCommand(v.assetProviderRemove,{id:a.id})}})},Y=W(X);module.exports=Y;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
var p = /* @__PURE__ */ ((t) => (t.free = "free", t.startup = "startup", t.business = "business", t.enterprise = "enterprise", t))(p || {}), v = /* @__PURE__ */ ((t) => (t.toastAdd = "studio:toastAdd", t.toastRemove = "studio:toastRemove", t.dialogOpen = "studio:dialogOpen", t.dialogClose = "studio:dialogClose", t.dialogExportCode = "studio:dialogExportCode", t.sidebarLeftSet = "studio:sidebarLeft:set", t.sidebarLeftGet = "studio:sidebarLeft:get", t.sidebarLeftToggle = "studio:sidebarLeft:toggle", t.sidebarRightSet = "studio:sidebarRight:set", t.sidebarRightGet = "studio:sidebarRight:get", t.sidebarRightToggle = "studio:sidebarRight:toggle", t.sidebarTopSet = "studio:sidebarTop:set", t.sidebarTopGet = "studio:sidebarTop:get", t.sidebarTopToggle = "studio:sidebarTop:toggle", t.sidebarBottomSet = "studio:sidebarBottom:set", t.sidebarBottomGet = "studio:sidebarBottom:get", t.sidebarBottomToggle = "studio:sidebarBottom:toggle", t.symbolAdd = "studio:symbolAdd", t.symbolDetach = "studio:symbolDetach", t.symbolOverride = "studio:symbolOverride", t.symbolPropagateStyles = "studio:propagateStyles", t.getPagesConfig = "studio:getPagesConfig", t.setPagesConfig = "studio:setPagesConfig", t.getPageSettings = "studio:getPageSettings", t.setPageSettings = "studio:setPageSettings", t.clearPage = "studio:clearPage", t.projectFiles = "studio:projectFiles", t.validateCode = "studio:validateCode", t.canvasReload = "studio:canvasReload", t.getBlocksPanel = "studio:getBlocksPanel", t.setBlocksPanel = "studio:setBlocksPanel", t.getStateContextMenu = "studio:getStateContextMenu", t.setStateContextMenu = "studio:setStateContextMenu", t.contextMenuComponent = "studio:contextMenuComponent", t.layoutAdd = "studio:layoutAdd", t.layoutRemove = "studio:layoutRemove", t.layoutToggle = "studio:layoutToggle", t.layoutUpdate = "studio:layoutUpdate", t.layoutGet = "studio:layoutGet", t.layoutConfigGet = "studio:layoutConfigGet", t.layoutConfigSet = "studio:layoutConfigSet", t.layoutComponentAdd = "studio:layoutComponentAdd", t.layoutComponentGet = "studio:layoutComponentGet", t.layoutComponentRemove = "studio:layoutComponentRemove", t.layoutComponentRender = "studio:layoutComponentRender", t.getStateTheme = "studio:getStateTheme", t.setStateTheme = "studio:setStateTheme", t.assetProviderGet = "studio:assetProviderGet", t.assetProviderAdd = "studio:assetProviderAdd", t.assetProviderRemove = "studio:assetProviderRemove", t.fontGet = "studio:fontGet", t.fontAdd = "studio:fontAdd", t.fontRemove = "studio:fontRemove", t.fontManagerOpen = "studio:fontManagerOpen", t.menuFontLoad = "studio:menuFontLoad", t.toggleStateDataSource = "studio:toggleStateDataSource", t.getStateDataSource = "studio:getStateDataSource", t.dataSourceSetGlobalData = "studio:dataSourceSetGlobalData", t.dataSourceSetImporter = "studio:dataSourceSetImporter", t.dataSourceSetExporter = "studio:dataSourceSetExporter", t.setDragAbsolute = "studio:setDragAbsolute", t))(v || {});
|
|
2
|
-
const D = "app.grapesjs.com", G = "app-stage.grapesjs.com",
|
|
1
|
+
var p = /* @__PURE__ */ ((t) => (t.free = "free", t.startup = "startup", t.business = "business", t.enterprise = "enterprise", t))(p || {}), v = /* @__PURE__ */ ((t) => (t.toastAdd = "studio:toastAdd", t.toastRemove = "studio:toastRemove", t.dialogOpen = "studio:dialogOpen", t.dialogClose = "studio:dialogClose", t.dialogExportCode = "studio:dialogExportCode", t.dialogImportCode = "studio:dialogImportCode", t.sidebarLeftSet = "studio:sidebarLeft:set", t.sidebarLeftGet = "studio:sidebarLeft:get", t.sidebarLeftToggle = "studio:sidebarLeft:toggle", t.sidebarRightSet = "studio:sidebarRight:set", t.sidebarRightGet = "studio:sidebarRight:get", t.sidebarRightToggle = "studio:sidebarRight:toggle", t.sidebarTopSet = "studio:sidebarTop:set", t.sidebarTopGet = "studio:sidebarTop:get", t.sidebarTopToggle = "studio:sidebarTop:toggle", t.sidebarBottomSet = "studio:sidebarBottom:set", t.sidebarBottomGet = "studio:sidebarBottom:get", t.sidebarBottomToggle = "studio:sidebarBottom:toggle", t.symbolAdd = "studio:symbolAdd", t.symbolDetach = "studio:symbolDetach", t.symbolOverride = "studio:symbolOverride", t.symbolPropagateStyles = "studio:propagateStyles", t.getPagesConfig = "studio:getPagesConfig", t.setPagesConfig = "studio:setPagesConfig", t.getPageSettings = "studio:getPageSettings", t.setPageSettings = "studio:setPageSettings", t.clearPage = "studio:clearPage", t.projectFiles = "studio:projectFiles", t.validateCode = "studio:validateCode", t.canvasReload = "studio:canvasReload", t.getBlocksPanel = "studio:getBlocksPanel", t.setBlocksPanel = "studio:setBlocksPanel", t.getStateContextMenu = "studio:getStateContextMenu", t.setStateContextMenu = "studio:setStateContextMenu", t.contextMenuComponent = "studio:contextMenuComponent", t.layoutAdd = "studio:layoutAdd", t.layoutRemove = "studio:layoutRemove", t.layoutToggle = "studio:layoutToggle", t.layoutUpdate = "studio:layoutUpdate", t.layoutGet = "studio:layoutGet", t.layoutConfigGet = "studio:layoutConfigGet", t.layoutConfigSet = "studio:layoutConfigSet", t.layoutComponentAdd = "studio:layoutComponentAdd", t.layoutComponentGet = "studio:layoutComponentGet", t.layoutComponentRemove = "studio:layoutComponentRemove", t.layoutComponentRender = "studio:layoutComponentRender", t.getStateTheme = "studio:getStateTheme", t.setStateTheme = "studio:setStateTheme", t.assetProviderGet = "studio:assetProviderGet", t.assetProviderAdd = "studio:assetProviderAdd", t.assetProviderRemove = "studio:assetProviderRemove", t.fontGet = "studio:fontGet", t.fontAdd = "studio:fontAdd", t.fontRemove = "studio:fontRemove", t.fontManagerOpen = "studio:fontManagerOpen", t.menuFontLoad = "studio:menuFontLoad", t.toggleStateDataSource = "studio:toggleStateDataSource", t.getStateDataSource = "studio:getStateDataSource", t.dataSourceSetGlobalData = "studio:dataSourceSetGlobalData", t.dataSourceSetImporter = "studio:dataSourceSetImporter", t.dataSourceSetExporter = "studio:dataSourceSetExporter", t.setDragAbsolute = "studio:setDragAbsolute", t))(v || {});
|
|
2
|
+
const D = "app.grapesjs.com", G = "app-stage.grapesjs.com", R = "app2.grapesjs.com", $ = "app-stage2.grapesjs.com", w = [
|
|
3
3
|
D,
|
|
4
|
-
|
|
4
|
+
R,
|
|
5
5
|
G,
|
|
6
6
|
$,
|
|
7
7
|
"localhost",
|
|
@@ -69,8 +69,8 @@ async function _({
|
|
|
69
69
|
if (!(f || n.license) || d)
|
|
70
70
|
u(d || "Invalid license");
|
|
71
71
|
else if (b) {
|
|
72
|
-
const O = F[e],
|
|
73
|
-
O >
|
|
72
|
+
const O = F[e], I = F[b];
|
|
73
|
+
O > I && u({ pluginRequiredPlan: e, licensePlan: b });
|
|
74
74
|
}
|
|
75
75
|
};
|
|
76
76
|
t.on(E, (n) => {
|
|
@@ -184,7 +184,7 @@ const q = (t) => {
|
|
|
184
184
|
a && (Array.isArray(a) ? e.push(...a.map((o) => [s, o.toString()])) : (a = a.toString(), e.push([s, a])));
|
|
185
185
|
}
|
|
186
186
|
return new URLSearchParams(e);
|
|
187
|
-
},
|
|
187
|
+
}, J = (t) => {
|
|
188
188
|
const { apiKey: e, searchParams: s } = t, a = (o = {}) => {
|
|
189
189
|
const r = "https://www.googleapis.com/webfonts/v1/webfonts", i = q(o);
|
|
190
190
|
return `${r}?${i}`;
|
|
@@ -253,22 +253,22 @@ const q = (t) => {
|
|
|
253
253
|
};
|
|
254
254
|
}
|
|
255
255
|
};
|
|
256
|
-
},
|
|
256
|
+
}, Q = {
|
|
257
257
|
googleFontsAssetProvider: {
|
|
258
258
|
searchBtn: "Search on Google Fonts",
|
|
259
259
|
modalTitle: "Select Font",
|
|
260
260
|
providerLabel: "Google Fonts"
|
|
261
261
|
}
|
|
262
|
-
},
|
|
263
|
-
const { i18n: s = {} } = e, a =
|
|
262
|
+
}, S = "googleFontsAssetProvider", Z = p.startup, X = function(t, e) {
|
|
263
|
+
const { i18n: s = {} } = e, a = J(e);
|
|
264
264
|
t.runCommand(v.assetProviderAdd, { provider: a }), t.I18n.addMessages({
|
|
265
|
-
en:
|
|
265
|
+
en: Q,
|
|
266
266
|
...s
|
|
267
267
|
}), _({
|
|
268
268
|
editor: t,
|
|
269
269
|
licenseKey: e.licenseKey,
|
|
270
270
|
plan: Z,
|
|
271
|
-
pluginName:
|
|
271
|
+
pluginName: S,
|
|
272
272
|
cleanup: () => {
|
|
273
273
|
t.runCommand(v.assetProviderRemove, { id: a.id });
|
|
274
274
|
}
|