@blocklet/pages-kit 0.2.373 → 0.2.375
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/lib/cjs/builtin/async/ai-runtime/components/Header/SimpleHeader.js +4 -4
- package/lib/cjs/builtin/async/ai-runtime/components/ShareActions/index.js +60 -47
- package/lib/cjs/builtin/async/ai-runtime/hooks/use-appearances.js +5 -1
- package/lib/cjs/builtin/async/ai-runtime/runtime-components/AutoForm/index.js +2 -6
- package/lib/cjs/tsconfig.tsbuildinfo +1 -1
- package/lib/esm/builtin/async/ai-runtime/components/Header/SimpleHeader.js +4 -4
- package/lib/esm/builtin/async/ai-runtime/components/ShareActions/index.js +60 -47
- package/lib/esm/builtin/async/ai-runtime/hooks/use-appearances.js +5 -1
- package/lib/esm/builtin/async/ai-runtime/runtime-components/AutoForm/index.js +2 -6
- package/lib/esm/tsconfig.tsbuildinfo +1 -1
- package/lib/types/builtin/async/ai-runtime/hooks/use-appearances.d.ts +2 -0
- package/lib/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -13,11 +13,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
13
13
|
import { cx } from '@emotion/css';
|
|
14
14
|
import { Stack, Typography } from '@mui/material';
|
|
15
15
|
import Balancer, { Provider } from 'react-wrap-balancer';
|
|
16
|
+
import { useProfile } from '../../hooks/use-appearances';
|
|
16
17
|
import { useRuntimeState } from '../../state/runtime';
|
|
17
18
|
export default function SimpleHeader(_a) {
|
|
18
19
|
var { TitleProps, DescriptionProps } = _a, props = __rest(_a, ["TitleProps", "DescriptionProps"]);
|
|
19
|
-
const {
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
return (_jsx(Stack, Object.assign({ gap: 2, mt: 8, mb: 4 }, props, { className: cx('aigne-header aigne-simple-header', props.className), children: _jsxs(Provider, { children: [title && (_jsx(Typography, Object.assign({ width: "100%", variant: "h4", fontSize: 30, fontWeight: 700, textAlign: "center" }, TitleProps, { children: _jsx(Balancer, { children: title }) }))), description && (_jsx(Typography, Object.assign({ width: "100%", textAlign: "center" }, DescriptionProps, { children: _jsx(Balancer, { children: description }) })))] }) })));
|
|
20
|
+
const { aid } = useRuntimeState();
|
|
21
|
+
const { name, description } = useProfile({ aid });
|
|
22
|
+
return (_jsx(Stack, Object.assign({ gap: 2, mt: 8, mb: 4 }, props, { className: cx('aigne-header aigne-simple-header', props.className), children: _jsxs(Provider, { children: [name && (_jsx(Typography, Object.assign({ width: "100%", variant: "h4", fontSize: 30, fontWeight: 700, textAlign: "center" }, TitleProps, { children: _jsx(Balancer, { children: name }) }))), description && (_jsx(Typography, Object.assign({ width: "100%", textAlign: "center" }, DescriptionProps, { children: _jsx(Balancer, { children: description }) })))] }) })));
|
|
23
23
|
}
|
|
@@ -23,7 +23,6 @@ import { RuntimeOutputVariable } from '@blocklet/ai-runtime/types';
|
|
|
23
23
|
import { Icon } from '@iconify/react';
|
|
24
24
|
import { Box, Stack, styled } from '@mui/material';
|
|
25
25
|
import { saveAs } from 'file-saver';
|
|
26
|
-
import { fromPairs, identity, pickBy } from 'lodash';
|
|
27
26
|
import { useMemo } from 'react';
|
|
28
27
|
import { joinURL, withQuery } from 'ufo';
|
|
29
28
|
import { useLocaleContext } from '../../../../locale';
|
|
@@ -44,16 +43,16 @@ export default function ShareActions(_a) {
|
|
|
44
43
|
var _a, _b;
|
|
45
44
|
return (_b = (_a = agent.outputVariables) === null || _a === void 0 ? void 0 : _a.find((i) => i.name === RuntimeOutputVariable.share)) === null || _b === void 0 ? void 0 : _b.initialValue;
|
|
46
45
|
}, [agent]);
|
|
47
|
-
const
|
|
46
|
+
const inputs = useMemo(() => {
|
|
48
47
|
var _a;
|
|
49
|
-
return (_a = agent.parameters) === null || _a === void 0 ? void 0 : _a.filter(isValidInput).map((i) => { var _a, _b; return [((_a = i.label) === null || _a === void 0 ? void 0 : _a.trim()) || i.key, (_b = message.inputs) === null || _b === void 0 ? void 0 : _b[i.key]]; }).filter((i) => i[1]);
|
|
48
|
+
return ((_a = agent.parameters) === null || _a === void 0 ? void 0 : _a.filter(isValidInput).map((i) => { var _a, _b; return [((_a = i.label) === null || _a === void 0 ? void 0 : _a.trim()) || i.key, (_b = message.inputs) === null || _b === void 0 ? void 0 : _b[i.key]]; }).filter((i) => i[1]).map(([k, v]) => `${k}: ${v}`).join('\n')) || '';
|
|
50
49
|
}, [agent.parameters, message.inputs]);
|
|
51
50
|
const items = (_b = sharing === null || sharing === void 0 ? void 0 : sharing.items) === null || _b === void 0 ? void 0 : _b.map((item) => {
|
|
52
51
|
var _a, _b;
|
|
53
52
|
const C = ShareActionsMap[item.to];
|
|
54
53
|
if (!C)
|
|
55
54
|
return null;
|
|
56
|
-
return (_jsx(Box, { children: _jsx(C, { inputs:
|
|
55
|
+
return (_jsx(Box, { children: _jsx(C, { inputs: inputs, shareAttach: {
|
|
57
56
|
shareAttachInputs: (_a = sharing === null || sharing === void 0 ? void 0 : sharing.shareAttachInputs) !== null && _a !== void 0 ? _a : false,
|
|
58
57
|
shareAttachUrl: (_b = sharing === null || sharing === void 0 ? void 0 : sharing.shareAttachUrl) !== null && _b !== void 0 ? _b : false,
|
|
59
58
|
} }) }));
|
|
@@ -70,25 +69,33 @@ const ShareActionsMap = {
|
|
|
70
69
|
link: ShareLink,
|
|
71
70
|
};
|
|
72
71
|
function ShareTwitter({ inputs, shareAttach, }) {
|
|
73
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
74
72
|
const { t } = useLocaleContext();
|
|
75
73
|
const { message } = useCurrentMessage();
|
|
76
74
|
const { link } = useCurrentLink();
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
75
|
+
const query = useMemo(() => {
|
|
76
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
77
|
+
const content = ((_c = (_b = (_a = message.outputs) === null || _a === void 0 ? void 0 : _a.objects) === null || _b === void 0 ? void 0 : _b.find((i) => i === null || i === void 0 ? void 0 : i[RuntimeOutputVariable.text])) === null || _c === void 0 ? void 0 : _c[RuntimeOutputVariable.text]) ||
|
|
78
|
+
((_h = (_g = (_f = (_e = (_d = message.outputs) === null || _d === void 0 ? void 0 : _d.objects) === null || _e === void 0 ? void 0 : _e.find((i) => { var _a; return (_a = i === null || i === void 0 ? void 0 : i[RuntimeOutputVariable.images]) === null || _a === void 0 ? void 0 : _a.length; })) === null || _f === void 0 ? void 0 : _f[RuntimeOutputVariable.images]) === null || _g === void 0 ? void 0 : _g.at(0)) === null || _h === void 0 ? void 0 : _h.url);
|
|
79
|
+
if (!content)
|
|
80
|
+
return null;
|
|
81
|
+
const texts = [];
|
|
82
|
+
if (shareAttach.shareAttachInputs) {
|
|
83
|
+
texts.push(inputs);
|
|
84
|
+
}
|
|
85
|
+
texts.push(content);
|
|
86
|
+
let text = texts.join('\n\n');
|
|
87
|
+
// 如果 content 长度超过 100,截断
|
|
88
|
+
if (text.length > 250) {
|
|
89
|
+
text = `${text.slice(0, 250)}...`;
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
text,
|
|
90
93
|
url: link,
|
|
91
|
-
}
|
|
94
|
+
};
|
|
95
|
+
}, []);
|
|
96
|
+
if (!query)
|
|
97
|
+
return null;
|
|
98
|
+
return (_jsx(StyledActionButton, { tip: t('socialShare.shareToX'), title: _jsx(Icon, { icon: "tabler:brand-x" }), target: "_blank", href: withQuery('https://twitter.com/intent/tweet', query) }));
|
|
92
99
|
}
|
|
93
100
|
function ShareLink() {
|
|
94
101
|
const { t } = useLocaleContext();
|
|
@@ -104,19 +111,21 @@ function ShareCopy({ inputs, shareAttach, }) {
|
|
|
104
111
|
const { t } = useLocaleContext();
|
|
105
112
|
const { message } = useCurrentMessage();
|
|
106
113
|
const { link } = useCurrentLink();
|
|
107
|
-
|
|
114
|
+
const content = (_c = (_b = (_a = message.outputs) === null || _a === void 0 ? void 0 : _a.objects) === null || _b === void 0 ? void 0 : _b.find((i) => i === null || i === void 0 ? void 0 : i[RuntimeOutputVariable.text])) === null || _c === void 0 ? void 0 : _c[RuntimeOutputVariable.text];
|
|
108
115
|
const image = (_h = (_g = (_f = (_e = (_d = message.outputs) === null || _d === void 0 ? void 0 : _d.objects) === null || _e === void 0 ? void 0 : _e.find((i) => { var _a; return (_a = i === null || i === void 0 ? void 0 : i[RuntimeOutputVariable.images]) === null || _a === void 0 ? void 0 : _a.length; })) === null || _f === void 0 ? void 0 : _f[RuntimeOutputVariable.images]) === null || _g === void 0 ? void 0 : _g.at(0)) === null || _h === void 0 ? void 0 : _h.url;
|
|
109
116
|
if (!content && !image)
|
|
110
117
|
return null;
|
|
111
118
|
return (_jsx(StyledActionButton, { autoReset: true, tip: t('copy'), tipSucceed: t('copied'), title: _jsx(Icon, { icon: "tabler:copy" }), titleSucceed: _jsx(Icon, { icon: "tabler:copy-check" }), onClick: () => __awaiter(this, void 0, void 0, function* () {
|
|
112
119
|
if (content) {
|
|
113
|
-
|
|
114
|
-
content += `\nInputs: ${inputs}`;
|
|
115
|
-
}
|
|
120
|
+
const texts = [];
|
|
116
121
|
if (shareAttach.shareAttachUrl) {
|
|
117
|
-
|
|
122
|
+
texts.push(link);
|
|
123
|
+
}
|
|
124
|
+
if (shareAttach.shareAttachInputs) {
|
|
125
|
+
texts.push(inputs);
|
|
118
126
|
}
|
|
119
|
-
|
|
127
|
+
texts.push(content);
|
|
128
|
+
window.navigator.clipboard.writeText(texts.filter(Boolean).join('\n\n'));
|
|
120
129
|
}
|
|
121
130
|
else if (image) {
|
|
122
131
|
const imageBlob = yield convertImageToBlob(yield downloadImage({ url: image }));
|
|
@@ -140,13 +149,13 @@ function ShareSave({ inputs, shareAttach, }) {
|
|
|
140
149
|
const { default: html2pdf } = yield import('html2pdf.js');
|
|
141
150
|
if (content) {
|
|
142
151
|
const element = document.createElement('div');
|
|
143
|
-
element.innerHTML = content;
|
|
144
|
-
if (shareAttach.shareAttachInputs) {
|
|
145
|
-
element.innerHTML += `<br/>Inputs: ${inputs}`;
|
|
146
|
-
}
|
|
147
152
|
if (shareAttach.shareAttachUrl) {
|
|
148
|
-
element.innerHTML += `<
|
|
153
|
+
element.innerHTML += `<p><a href="{${link}}">${link}</a></p>`;
|
|
149
154
|
}
|
|
155
|
+
if (shareAttach.shareAttachInputs) {
|
|
156
|
+
element.innerHTML += `<p><blockquote>${inputs}</blockquote></p>`;
|
|
157
|
+
}
|
|
158
|
+
element.innerHTML += `<p>${content}</p>`;
|
|
150
159
|
yield html2pdf()
|
|
151
160
|
.set({
|
|
152
161
|
margin: 1,
|
|
@@ -164,28 +173,32 @@ function ShareSave({ inputs, shareAttach, }) {
|
|
|
164
173
|
}) }));
|
|
165
174
|
}
|
|
166
175
|
function ShareCommunity({ inputs, shareAttach, }) {
|
|
167
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
168
176
|
const { t } = useLocaleContext();
|
|
169
177
|
const { message } = useCurrentMessage();
|
|
170
178
|
const { link } = useCurrentLink();
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
179
|
+
const query = useMemo(() => {
|
|
180
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
181
|
+
const text = (_d = (_c = (_b = (_a = message.outputs) === null || _a === void 0 ? void 0 : _a.objects) === null || _b === void 0 ? void 0 : _b.find((i) => i === null || i === void 0 ? void 0 : i[RuntimeOutputVariable.text])) === null || _c === void 0 ? void 0 : _c[RuntimeOutputVariable.text]) !== null && _d !== void 0 ? _d : '';
|
|
182
|
+
const images = (_j = (_h = (_g = (_f = (_e = message.outputs) === null || _e === void 0 ? void 0 : _e.objects) === null || _f === void 0 ? void 0 : _f.find) === null || _g === void 0 ? void 0 : _g.call(_f, (i) => { var _a; return (_a = i === null || i === void 0 ? void 0 : i[RuntimeOutputVariable.images]) === null || _a === void 0 ? void 0 : _a.length; })) === null || _h === void 0 ? void 0 : _h[RuntimeOutputVariable.images]) === null || _j === void 0 ? void 0 : _j.map((i) => i.url);
|
|
183
|
+
let content = '';
|
|
184
|
+
if (shareAttach.shareAttachUrl) {
|
|
185
|
+
content += `${link}\n\n`;
|
|
186
|
+
}
|
|
187
|
+
if (shareAttach.shareAttachInputs) {
|
|
188
|
+
content += `> ${inputs}\n\n`;
|
|
189
|
+
}
|
|
190
|
+
if (images) {
|
|
191
|
+
content += images.map((image) => ``).join('\n');
|
|
192
|
+
}
|
|
193
|
+
content += text;
|
|
194
|
+
return {
|
|
184
195
|
boardId: 'aigne',
|
|
185
|
-
|
|
196
|
+
format: 'markdown',
|
|
197
|
+
title: `${((_k = message.inputs) === null || _k === void 0 ? void 0 : _k.question) || inputs}`,
|
|
186
198
|
content,
|
|
187
|
-
|
|
188
|
-
|
|
199
|
+
};
|
|
200
|
+
}, [inputs, shareAttach]);
|
|
201
|
+
return (_jsx(StyledActionButton, { tip: t('socialShare.shareToCommunity'), title: _jsx(CommunityIcon, {}), target: "_blank", href: withQuery('https://community.arcblock.io/discussions/add?', query) }));
|
|
189
202
|
}
|
|
190
203
|
const StyledActionButton = styled(ActionButton)(({ theme }) => theme.unstable_sx({
|
|
191
204
|
fontSize: 'inherit',
|
|
@@ -58,7 +58,11 @@ export function useProfile(args) {
|
|
|
58
58
|
const runtimeProfile = getOutputVariableInitialValue(runtimeAgent, RuntimeOutputVariable.profile);
|
|
59
59
|
return {
|
|
60
60
|
avatar: (profile === null || profile === void 0 ? void 0 : profile.avatar) || (runtimeProfile === null || runtimeProfile === void 0 ? void 0 : runtimeProfile.avatar) || getProjectIconUrl({ blockletDid, aid }),
|
|
61
|
-
name: (profile === null || profile === void 0 ? void 0 : profile.name) || (runtimeProfile === null || runtimeProfile === void 0 ? void 0 : runtimeProfile.name) ||
|
|
61
|
+
name: (profile === null || profile === void 0 ? void 0 : profile.name) || (runtimeProfile === null || runtimeProfile === void 0 ? void 0 : runtimeProfile.name) || runtimeAgent.name || runtimeAgent.project.name,
|
|
62
|
+
description: (profile === null || profile === void 0 ? void 0 : profile.description) ||
|
|
63
|
+
(runtimeProfile === null || runtimeProfile === void 0 ? void 0 : runtimeProfile.description) ||
|
|
64
|
+
runtimeAgent.description ||
|
|
65
|
+
runtimeAgent.project.description,
|
|
62
66
|
};
|
|
63
67
|
}, [agent, runtimeAgent]);
|
|
64
68
|
}
|
|
@@ -82,15 +82,11 @@ export default function AutoForm({ submitText, inlineLabel, autoFillLastForm = t
|
|
|
82
82
|
: undefined,
|
|
83
83
|
}, render: ({ field, fieldState }) => {
|
|
84
84
|
var _a;
|
|
85
|
-
return (_jsxs(Stack, { className: "form-item", children: [parameter.label && _jsx(FormLabel, { children: parameter.label }), _jsx(AgentInputField
|
|
86
|
-
// inputProps={{ 'data-testid': `runtime-input-${key}` }}
|
|
87
|
-
, {
|
|
88
|
-
// inputProps={{ 'data-testid': `runtime-input-${key}` }}
|
|
89
|
-
inputRef: field.ref, autoFocus: index === 0, size: "small", hiddenLabel: true, fullWidth: true, label: undefined, parameter: parameter, maxRows: !(parameter === null || parameter === void 0 ? void 0 : parameter.type) || (parameter === null || parameter === void 0 ? void 0 : parameter.type) === 'string' ? 5 : undefined, value: field.value || '', onChange: (value) => field.onChange({ target: { value } }), error: Boolean(fieldState.error), helperText: ((_a = fieldState.error) === null || _a === void 0 ? void 0 : _a.message) || (parameter === null || parameter === void 0 ? void 0 : parameter.helper), InputProps: Object.assign(Object.assign({}, (parameter.key === 'question' && submitInQuestionField
|
|
85
|
+
return (_jsxs(Stack, { className: "form-item", children: [parameter.label && _jsx(FormLabel, { children: parameter.label }), _jsx(AgentInputField, { inputRef: field.ref, autoFocus: index === 0, size: "small", hiddenLabel: true, fullWidth: true, label: undefined, parameter: parameter, maxRows: !(parameter === null || parameter === void 0 ? void 0 : parameter.type) || (parameter === null || parameter === void 0 ? void 0 : parameter.type) === 'string' ? 5 : undefined, value: field.value || '', onChange: (value) => field.onChange({ target: { value } }), error: Boolean(fieldState.error), helperText: ((_a = fieldState.error) === null || _a === void 0 ? void 0 : _a.message) || (parameter === null || parameter === void 0 ? void 0 : parameter.helper), InputProps: Object.assign(Object.assign({}, (parameter.key === 'question' && submitInQuestionField
|
|
90
86
|
? {
|
|
91
87
|
endAdornment: (_jsx(InputAdornment, { position: "end", sx: { py: 3, mr: -0.75, alignSelf: 'flex-end' }, children: _jsx(LoadingButton, { "data-testid": "runtime-submit-button", ref: submitRef, type: "submit", variant: "contained", loading: running, disabled: submitDisabled, sx: { borderRadius: 1.5 }, children: submitText }) })),
|
|
92
88
|
}
|
|
93
|
-
: {})),
|
|
89
|
+
: {})), { inputProps: { 'data-testid': `runtime-input-${key}` } }) })] }));
|
|
94
90
|
} }) }, parameter.id));
|
|
95
91
|
}), !(submitInQuestionField && (parameters === null || parameters === void 0 ? void 0 : parameters.some((i) => i.key === 'question'))) && (_jsx(LoadingButton, { "data-testid": "runtime-submit-button", ref: submitRef, type: "submit", variant: "contained", loading: running, disabled: submitDisabled, sx: { height: 40 }, children: submitText || t('generate') }))] }));
|
|
96
92
|
}
|