@arcblock/ux 3.1.49 → 3.1.51
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/Datatable/CustomToolbar.js +69 -76
- package/lib/NavMenu/images/aigne-image-smith.svg.js +42 -0
- package/lib/NavMenu/products.js +80 -62
- package/lib/package.json.js +1 -1
- package/package.json +7 -7
- package/src/Datatable/CustomToolbar.jsx +2 -9
- package/src/NavMenu/images/aigne-image-smith.svg +26 -0
- package/src/NavMenu/products.tsx +18 -0
@@ -1,10 +1,10 @@
|
|
1
|
-
import { jsx as t, jsxs as
|
1
|
+
import { jsx as t, jsxs as l, Fragment as S } from "react/jsx-runtime";
|
2
2
|
import { useState as T, useRef as V, isValidElement as v } from "react";
|
3
|
-
import
|
3
|
+
import n from "prop-types";
|
4
4
|
import { TableFilter as ue, TableViewCol as pe } from "mui-datatables";
|
5
|
-
import
|
6
|
-
import { MoreVert as
|
7
|
-
import { Popover as xe, Tooltip as D, IconButton as R, ListItemIcon as L, ListItemText as j, MenuItem as U, Menu as
|
5
|
+
import me, { PrintContextConsumer as fe } from "react-to-print";
|
6
|
+
import { MoreVert as he, CloudDownload as be, ViewColumn as Ce, FilterList as we, Print as $ } from "@mui/icons-material";
|
7
|
+
import { Popover as xe, Tooltip as D, IconButton as R, ListItemIcon as L, ListItemText as j, MenuItem as U, Menu as ge, LinearProgress as ye, useTheme as Te, useMediaQuery as ve } from "@mui/material";
|
8
8
|
import { useDeepCompareEffect as Re } from "ahooks";
|
9
9
|
import { handleCSVDownload as ke } from "./utils.js";
|
10
10
|
import Fe from "./TableSearch.js";
|
@@ -15,7 +15,7 @@ function Ie() {
|
|
15
15
|
return ve(s.breakpoints.down("sm"));
|
16
16
|
}
|
17
17
|
function Be({ ...s }) {
|
18
|
-
const [
|
18
|
+
const [h, d] = T(null), k = V(null), F = Ie(), N = V(Math.random().toString(32).slice(2)), [O, A] = T(!1), { customPreButtons: b, customButtons: C, loading: u, disabled: w } = Pe(), {
|
19
19
|
data: Q = [],
|
20
20
|
options: o,
|
21
21
|
components: p = {},
|
@@ -31,20 +31,20 @@ function Be({ ...s }) {
|
|
31
31
|
searchText: Z = null,
|
32
32
|
searchTextUpdate: _,
|
33
33
|
searchClose: ee
|
34
|
-
} = s, [B,
|
34
|
+
} = s, [B, m] = T({}), te = o.customToolbar ? o.customToolbar(s) : "", { search: oe, downloadCsv: ne, print: f, viewColumns: ie, filterTable: re } = o.textLabels.toolbar, le = o.search === !1 || o.search === "false", x = o.print === !1 || o.print === "false", se = p.TableFilter || ue, ae = p.TableViewCol || pe;
|
35
35
|
Re(() => {
|
36
|
-
(u ||
|
37
|
-
}, [u,
|
38
|
-
const q = (e) => /* @__PURE__ */ t(
|
36
|
+
(u || w) && m({});
|
37
|
+
}, [u, w]);
|
38
|
+
const q = (e) => /* @__PURE__ */ t(me, { content: () => s.tableRef(), children: /* @__PURE__ */ t(fe, { children: e }) }), g = (e) => `toolbar-pop-${N.current}-${e}`, a = [];
|
39
39
|
o.download === !1 || o.download === "false" || a.push({
|
40
40
|
icon: /* @__PURE__ */ t(be, {}),
|
41
|
-
title:
|
41
|
+
title: ne,
|
42
42
|
onClick: () => {
|
43
43
|
ke(s);
|
44
44
|
}
|
45
45
|
}), o.viewColumns === !1 || o.viewColumns === "false" || a.push({
|
46
46
|
icon: /* @__PURE__ */ t(Ce, {}),
|
47
|
-
title:
|
47
|
+
title: ie,
|
48
48
|
// eslint-disable-next-line react/no-unstable-nested-components
|
49
49
|
popRender() {
|
50
50
|
return /* @__PURE__ */ t(
|
@@ -60,8 +60,8 @@ function Be({ ...s }) {
|
|
60
60
|
);
|
61
61
|
}
|
62
62
|
}), o.filter === !1 || o.filter === "false" || a.push({
|
63
|
-
icon: /* @__PURE__ */ t(
|
64
|
-
title:
|
63
|
+
icon: /* @__PURE__ */ t(we, {}),
|
64
|
+
title: re,
|
65
65
|
// eslint-disable-next-line react/no-unstable-nested-components
|
66
66
|
popRender() {
|
67
67
|
return /* @__PURE__ */ t(
|
@@ -83,50 +83,50 @@ function Be({ ...s }) {
|
|
83
83
|
const E = [...b, !x, ...a, ...C].filter((e) => !!e).length > 1 && F, M = [], ce = [...b, ...a, ...C].map((e, c) => {
|
84
84
|
if (v(e))
|
85
85
|
return e;
|
86
|
-
const
|
86
|
+
const i = g(c);
|
87
87
|
if (e.icon) {
|
88
|
-
const { popRender:
|
89
|
-
return
|
88
|
+
const { popRender: r, icon: y } = e;
|
89
|
+
return r && M.push(
|
90
90
|
/* @__PURE__ */ t(
|
91
91
|
xe,
|
92
92
|
{
|
93
|
-
open: !!B[
|
94
|
-
anchorEl: () => B[
|
93
|
+
open: !!B[i],
|
94
|
+
anchorEl: () => B[i],
|
95
95
|
onClose: () => {
|
96
|
-
|
96
|
+
m({});
|
97
97
|
},
|
98
98
|
anchorOrigin: {
|
99
99
|
vertical: "bottom",
|
100
100
|
horizontal: "right"
|
101
101
|
},
|
102
|
-
children: /* @__PURE__ */ t("div", { children:
|
102
|
+
children: /* @__PURE__ */ t("div", { children: r() })
|
103
103
|
},
|
104
|
-
|
104
|
+
i
|
105
105
|
)
|
106
106
|
), /* @__PURE__ */ t(D, { title: e.title, children: /* @__PURE__ */ t(
|
107
107
|
R,
|
108
108
|
{
|
109
109
|
"data-testid": `${e.title}-iconButton`,
|
110
|
-
id: `btn-${
|
110
|
+
id: `btn-${i}`,
|
111
111
|
"aria-label": e.title,
|
112
112
|
onClick: () => {
|
113
|
-
e.onClick && e.onClick(),
|
114
|
-
[
|
113
|
+
e.onClick && e.onClick(), r && m({
|
114
|
+
[i]: document.getElementById(`btn-${i}`)
|
115
115
|
});
|
116
116
|
},
|
117
117
|
children: /* @__PURE__ */ t("div", { className: "custom-toolbar-icon", children: y })
|
118
118
|
}
|
119
|
-
) },
|
119
|
+
) }, i);
|
120
120
|
}
|
121
121
|
return e;
|
122
122
|
}), de = [...b, ...a, ...C].map((e, c) => {
|
123
|
-
const
|
124
|
-
let
|
123
|
+
const i = g(c);
|
124
|
+
let r;
|
125
125
|
if (v(e))
|
126
|
-
|
126
|
+
r = e;
|
127
127
|
else if (e.icon) {
|
128
128
|
const { icon: y } = e;
|
129
|
-
|
129
|
+
r = /* @__PURE__ */ l(S, { children: [
|
130
130
|
/* @__PURE__ */ t(L, { children: y }),
|
131
131
|
/* @__PURE__ */ t(j, { children: e.title })
|
132
132
|
] });
|
@@ -135,17 +135,17 @@ function Be({ ...s }) {
|
|
135
135
|
U,
|
136
136
|
{
|
137
137
|
onClick: () => {
|
138
|
-
d(null), e.onClick && e.onClick(), e.popRender &&
|
139
|
-
[
|
138
|
+
d(null), e.onClick && e.onClick(), e.popRender && m({
|
139
|
+
[i]: k.current
|
140
140
|
});
|
141
141
|
},
|
142
|
-
children:
|
142
|
+
children: r
|
143
143
|
},
|
144
|
-
|
144
|
+
i
|
145
145
|
);
|
146
146
|
});
|
147
|
-
return /* @__PURE__ */
|
148
|
-
/* @__PURE__ */
|
147
|
+
return /* @__PURE__ */ l("div", { children: [
|
148
|
+
/* @__PURE__ */ l(qe, { children: [
|
149
149
|
/* @__PURE__ */ t(
|
150
150
|
"div",
|
151
151
|
{
|
@@ -153,8 +153,8 @@ function Be({ ...s }) {
|
|
153
153
|
children: /* @__PURE__ */ t("div", { className: "custom-toobar-title-inner", children: /* @__PURE__ */ t("span", { children: I }) })
|
154
154
|
}
|
155
155
|
),
|
156
|
-
/* @__PURE__ */
|
157
|
-
!
|
156
|
+
/* @__PURE__ */ l("div", { className: `custom-toobar-btns ${u || w ? "toobar-btns-disabled" : ""}`, children: [
|
157
|
+
!le && /* @__PURE__ */ t(
|
158
158
|
Fe,
|
159
159
|
{
|
160
160
|
search: oe,
|
@@ -165,12 +165,12 @@ function Be({ ...s }) {
|
|
165
165
|
onSearchOpen: A
|
166
166
|
}
|
167
167
|
),
|
168
|
-
!E && /* @__PURE__ */
|
169
|
-
!x && q(({ handlePrint: e }) => /* @__PURE__ */ t("span", { children: /* @__PURE__ */ t(D, { title:
|
168
|
+
!E && /* @__PURE__ */ l(S, { children: [
|
169
|
+
!x && q(({ handlePrint: e }) => /* @__PURE__ */ t("span", { children: /* @__PURE__ */ t(D, { title: f, children: /* @__PURE__ */ t(
|
170
170
|
R,
|
171
171
|
{
|
172
|
-
"data-testid": `${
|
173
|
-
"aria-label":
|
172
|
+
"data-testid": `${f}-iconButton`,
|
173
|
+
"aria-label": f,
|
174
174
|
disabled: o.print === "disabled",
|
175
175
|
onClick: e,
|
176
176
|
children: /* @__PURE__ */ t($, {})
|
@@ -183,20 +183,20 @@ function Be({ ...s }) {
|
|
183
183
|
{
|
184
184
|
ref: k,
|
185
185
|
"aria-haspopup": "true",
|
186
|
-
"aria-expanded":
|
186
|
+
"aria-expanded": h ? "true" : void 0,
|
187
187
|
onClick: (e) => d(e.currentTarget),
|
188
188
|
style: { flexShrink: 0 },
|
189
|
-
children: /* @__PURE__ */ t(
|
189
|
+
children: /* @__PURE__ */ t(he, {})
|
190
190
|
}
|
191
191
|
)
|
192
192
|
] }),
|
193
193
|
te
|
194
194
|
] }),
|
195
|
-
/* @__PURE__ */
|
196
|
-
|
195
|
+
/* @__PURE__ */ l(
|
196
|
+
ge,
|
197
197
|
{
|
198
|
-
anchorEl:
|
199
|
-
open: !!
|
198
|
+
anchorEl: h,
|
199
|
+
open: !!h,
|
200
200
|
onClose: () => d(null),
|
201
201
|
slotProps: {
|
202
202
|
list: {
|
@@ -204,7 +204,7 @@ function Be({ ...s }) {
|
|
204
204
|
}
|
205
205
|
},
|
206
206
|
children: [
|
207
|
-
!x && q(({ handlePrint: e }) => /* @__PURE__ */
|
207
|
+
!x && q(({ handlePrint: e }) => /* @__PURE__ */ l(
|
208
208
|
U,
|
209
209
|
{
|
210
210
|
onClick: () => {
|
@@ -212,7 +212,7 @@ function Be({ ...s }) {
|
|
212
212
|
},
|
213
213
|
children: [
|
214
214
|
/* @__PURE__ */ t(L, { children: /* @__PURE__ */ t($, { fontSize: "small" }) }),
|
215
|
-
/* @__PURE__ */ t(j, { children:
|
215
|
+
/* @__PURE__ */ t(j, { children: f })
|
216
216
|
]
|
217
217
|
}
|
218
218
|
)),
|
@@ -220,46 +220,39 @@ function Be({ ...s }) {
|
|
220
220
|
]
|
221
221
|
}
|
222
222
|
),
|
223
|
-
M.map((e, c) => /* @__PURE__ */ t("div", { children: e },
|
223
|
+
M.map((e, c) => /* @__PURE__ */ t("div", { children: e }, g(c))),
|
224
224
|
/* @__PURE__ */ t(Ee, { children: u && /* @__PURE__ */ t(ye, { className: "toolbar-progress" }) })
|
225
225
|
] });
|
226
226
|
}
|
227
227
|
Be.propTypes = {
|
228
|
-
data:
|
229
|
-
options:
|
230
|
-
components:
|
231
|
-
columns:
|
232
|
-
filterList:
|
233
|
-
filterData:
|
234
|
-
filterUpdate:
|
235
|
-
resetFilters:
|
236
|
-
updateFilterByType:
|
237
|
-
toggleViewColumn:
|
238
|
-
updateColumns:
|
239
|
-
title:
|
240
|
-
searchText:
|
241
|
-
searchTextUpdate:
|
242
|
-
searchClose:
|
243
|
-
tableRef:
|
228
|
+
data: n.array,
|
229
|
+
options: n.object.isRequired,
|
230
|
+
components: n.object,
|
231
|
+
columns: n.array.isRequired,
|
232
|
+
filterList: n.array,
|
233
|
+
filterData: n.array,
|
234
|
+
filterUpdate: n.func.isRequired,
|
235
|
+
resetFilters: n.func.isRequired,
|
236
|
+
updateFilterByType: n.func.isRequired,
|
237
|
+
toggleViewColumn: n.func.isRequired,
|
238
|
+
updateColumns: n.func.isRequired,
|
239
|
+
title: n.any,
|
240
|
+
searchText: n.any,
|
241
|
+
searchTextUpdate: n.func.isRequired,
|
242
|
+
searchClose: n.func.isRequired,
|
243
|
+
tableRef: n.func.isRequired
|
244
244
|
};
|
245
245
|
const qe = z("div")`
|
246
246
|
display: flex;
|
247
247
|
align-items: center;
|
248
|
-
|
248
|
+
flex-wrap: wrap;
|
249
249
|
.custom-toobar-title {
|
250
|
-
|
251
|
-
flex: 1;
|
250
|
+
flex: 1 1 auto;
|
252
251
|
font-size: 18px;
|
253
252
|
font-weight: 800;
|
254
|
-
height: 56px;
|
255
253
|
transition: all ease 0.3s;
|
256
254
|
&-inner {
|
257
|
-
line-height: 56px;
|
258
255
|
width: 100%;
|
259
|
-
height: 56px;
|
260
|
-
position: absolute;
|
261
|
-
left: 0;
|
262
|
-
top: 0;
|
263
256
|
span {
|
264
257
|
display: inline-block;
|
265
258
|
max-width: 100%;
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import * as t from "react";
|
2
|
+
const e = (o) => /* @__PURE__ */ t.createElement("svg", { viewBox: "0 0 902 902", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...o }, /* @__PURE__ */ t.createElement("rect", { width: 902, height: 902, rx: 212, fill: "url(#paint0_linear_3783_1258)", style: {} }), /* @__PURE__ */ t.createElement("rect", { x: 166, y: 247, width: 569, height: 409, rx: 80, stroke: "white", style: {
|
3
|
+
stroke: "white",
|
4
|
+
strokeOpacity: 1
|
5
|
+
}, strokeWidth: 40 }), /* @__PURE__ */ t.createElement("ellipse", { cx: 371, cy: 452, rx: 37, ry: 65, fill: "white", style: {
|
6
|
+
fill: "white",
|
7
|
+
fillOpacity: 1
|
8
|
+
} }), /* @__PURE__ */ t.createElement("ellipse", { cx: 531, cy: 452, rx: 37, ry: 65, fill: "white", style: {
|
9
|
+
fill: "white",
|
10
|
+
fillOpacity: 1
|
11
|
+
} }), /* @__PURE__ */ t.createElement("defs", null, /* @__PURE__ */ t.createElement("linearGradient", { id: "paint0_linear_3783_1258", x1: 84, y1: 78.5, x2: 811.5, y2: 850.5, gradientUnits: "userSpaceOnUse" }, /* @__PURE__ */ t.createElement("stop", { stopColor: "#AAF4EF", style: {
|
12
|
+
stopColor: "#AAF4EF",
|
13
|
+
stopColor: "color(display-p3 0.6667 0.9569 0.9373)",
|
14
|
+
stopOpacity: 1
|
15
|
+
} }), /* @__PURE__ */ t.createElement("stop", { offset: 0.180804, stopColor: "#C7F37F", style: {
|
16
|
+
stopColor: "#C7F37F",
|
17
|
+
stopColor: "color(display-p3 0.7798 0.9512 0.4996)",
|
18
|
+
stopOpacity: 1
|
19
|
+
} }), /* @__PURE__ */ t.createElement("stop", { offset: 0.361299, stopColor: "#FFD071", style: {
|
20
|
+
stopColor: "#FFD071",
|
21
|
+
stopColor: "color(display-p3 1.0000 0.8141 0.4422)",
|
22
|
+
stopOpacity: 1
|
23
|
+
} }), /* @__PURE__ */ t.createElement("stop", { offset: 0.546216, stopColor: "#FF9898", style: {
|
24
|
+
stopColor: "#FF9898",
|
25
|
+
stopColor: "color(display-p3 1.0000 0.5960 0.5960)",
|
26
|
+
stopOpacity: 1
|
27
|
+
} }), /* @__PURE__ */ t.createElement("stop", { offset: 0.72214, stopColor: "#FF89E0", style: {
|
28
|
+
stopColor: "#FF89E0",
|
29
|
+
stopColor: "color(display-p3 1.0000 0.5360 0.8769)",
|
30
|
+
stopOpacity: 1
|
31
|
+
} }), /* @__PURE__ */ t.createElement("stop", { offset: 0.898804, stopColor: "#B695FE", style: {
|
32
|
+
stopColor: "#B695FE",
|
33
|
+
stopColor: "color(display-p3 0.7137 0.5843 0.9961)",
|
34
|
+
stopOpacity: 1
|
35
|
+
} }), /* @__PURE__ */ t.createElement("stop", { offset: 1, stopColor: "#7C8EED", style: {
|
36
|
+
stopColor: "#7C8EED",
|
37
|
+
stopColor: "color(display-p3 0.4863 0.5569 0.9294)",
|
38
|
+
stopOpacity: 1
|
39
|
+
} }))));
|
40
|
+
export {
|
41
|
+
e as default
|
42
|
+
};
|
package/lib/NavMenu/products.js
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
2
|
-
import { useRef as
|
2
|
+
import { useRef as G, useState as T, useEffect as S } from "react";
|
3
3
|
import { Link as p } from "react-router-dom";
|
4
|
-
import { useMemoizedFn as A, useCreation as
|
5
|
-
import { Box as w, useTheme as
|
4
|
+
import { useMemoizedFn as A, useCreation as $ } from "ahooks";
|
5
|
+
import { Box as w, useTheme as F } from "@mui/material";
|
6
6
|
import B from "./sub-item-group.js";
|
7
|
-
import { Item as
|
7
|
+
import { Item as E } from "./nav-menu.js";
|
8
8
|
import { styled as C } from "../Theme/index.js";
|
9
|
-
import { useNavMenuContext as
|
9
|
+
import { useNavMenuContext as K } from "./nav-menu-context.js";
|
10
10
|
import { translate as L } from "../Locale/util.js";
|
11
11
|
import { useLocaleContext as _ } from "../Locale/context.js";
|
12
12
|
import M from "./images/nft-studio.svg.js";
|
13
13
|
import O from "./images/creator-studio.svg.js";
|
14
14
|
import P from "./images/blocklet-launcher.svg.js";
|
15
|
-
import
|
16
|
-
import
|
15
|
+
import R from "./images/blocklet-store.svg.js";
|
16
|
+
import H from "./images/web3-kit.svg.js";
|
17
17
|
import z from "./images/blocklet-framework.svg.js";
|
18
18
|
import U from "./images/abt-network.svg.js";
|
19
19
|
import j from "./images/blocklet-server.svg.js";
|
@@ -23,10 +23,11 @@ import J from "./images/did-wallet.svg.js";
|
|
23
23
|
import Q from "./images/vc.svg.js";
|
24
24
|
import X from "./images/payment-kit.png";
|
25
25
|
import Y from "./images/aigne.svg.js";
|
26
|
+
import Z from "./images/aigne-image-smith.svg.js";
|
26
27
|
import I from "./images/arcsphere.svg.js";
|
27
|
-
import
|
28
|
-
import { getUTMUrl as
|
29
|
-
const v = 260,
|
28
|
+
import ee from "./images/aistro.png";
|
29
|
+
import { getUTMUrl as ie } from "../withTracker/libs/utm.js";
|
30
|
+
const v = 260, te = {
|
30
31
|
en: {
|
31
32
|
groups: {
|
32
33
|
applications: "Applications",
|
@@ -106,6 +107,9 @@ const v = 260, ie = {
|
|
106
107
|
aigneWebSmith: {
|
107
108
|
description: "Build and deploy AI-powered web apps"
|
108
109
|
},
|
110
|
+
aigneImageSmith: {
|
111
|
+
description: "Generate and Refine Images with AI"
|
112
|
+
},
|
109
113
|
aigneCLI: {
|
110
114
|
description: "Develop agents from the command line"
|
111
115
|
},
|
@@ -202,6 +206,9 @@ const v = 260, ie = {
|
|
202
206
|
aigneWebSmith: {
|
203
207
|
description: "构建并部署 AI 驱动的 Web 应用"
|
204
208
|
},
|
209
|
+
aigneImageSmith: {
|
210
|
+
description: "使用 AI 生成和优化图像"
|
211
|
+
},
|
205
212
|
aigneCLI: {
|
206
213
|
description: "通过命令行开发 Agent"
|
207
214
|
},
|
@@ -298,6 +305,9 @@ const v = 260, ie = {
|
|
298
305
|
aigneWebSmith: {
|
299
306
|
description: "構建並部署 AI 驅動的 Web 應用"
|
300
307
|
},
|
308
|
+
aigneImageSmith: {
|
309
|
+
description: "使用 AI 生成和優化圖像"
|
310
|
+
},
|
301
311
|
aigneCLI: {
|
302
312
|
description: "透過命令列開發 Agent"
|
303
313
|
},
|
@@ -394,6 +404,9 @@ const v = 260, ie = {
|
|
394
404
|
aigneWebSmith: {
|
395
405
|
description: "AI駆動Webアプリの構築とデプロイ"
|
396
406
|
},
|
407
|
+
aigneImageSmith: {
|
408
|
+
description: "AIで画像を生成・最適化"
|
409
|
+
},
|
397
410
|
aigneCLI: {
|
398
411
|
description: "コマンドラインからエージェントを開発"
|
399
412
|
},
|
@@ -413,7 +426,7 @@ const v = 260, ie = {
|
|
413
426
|
}
|
414
427
|
}, oe = C(w)`
|
415
428
|
padding: 8px;
|
416
|
-
background: ${({ theme:
|
429
|
+
background: ${({ theme: o }) => o.palette.grey[100]};
|
417
430
|
border-radius: 8px;
|
418
431
|
|
419
432
|
&.is-inline {
|
@@ -432,20 +445,20 @@ const v = 260, ie = {
|
|
432
445
|
.MuiGrid-container + .MuiGrid-container {
|
433
446
|
margin-top: 0px;
|
434
447
|
}
|
435
|
-
`,
|
436
|
-
({ theme:
|
448
|
+
`, re = C(w, { shouldForwardProp: (o) => o !== "maxContent" })(
|
449
|
+
({ theme: o, maxContent: c }) => ({
|
437
450
|
display: "grid",
|
438
|
-
gap:
|
451
|
+
gap: o.spacing(1),
|
439
452
|
gridTemplateColumns: `repeat(1, ${c}px)`,
|
440
|
-
[
|
453
|
+
[o.breakpoints.up("md")]: {
|
441
454
|
gridTemplateColumns: `repeat(2, ${c}px)`
|
442
455
|
},
|
443
|
-
[
|
456
|
+
[o.breakpoints.up("lg")]: {
|
444
457
|
gridTemplateColumns: `repeat(3, ${c}px)`
|
445
458
|
}
|
446
459
|
})
|
447
460
|
);
|
448
|
-
function y({ color:
|
461
|
+
function y({ color: o = "black", backgroundColor: c = "transparent", children: a }) {
|
449
462
|
return /* @__PURE__ */ e(
|
450
463
|
w,
|
451
464
|
{
|
@@ -454,7 +467,7 @@ function y({ color: t = "black", backgroundColor: c = "transparent", children: a
|
|
454
467
|
display: "inline-flex",
|
455
468
|
alignItems: "center",
|
456
469
|
justifyContent: "center",
|
457
|
-
color:
|
470
|
+
color: o,
|
458
471
|
backgroundColor: c,
|
459
472
|
borderRadius: "4px"
|
460
473
|
},
|
@@ -462,24 +475,24 @@ function y({ color: t = "black", backgroundColor: c = "transparent", children: a
|
|
462
475
|
}
|
463
476
|
);
|
464
477
|
}
|
465
|
-
function h({ color:
|
466
|
-
return /* @__PURE__ */ e(y, { color:
|
478
|
+
function h({ color: o = "black", backgroundColor: c = "transparent" }) {
|
479
|
+
return /* @__PURE__ */ e(y, { color: o, backgroundColor: c, children: /* @__PURE__ */ e(q, { style: { width: "100%" } }) });
|
467
480
|
}
|
468
|
-
function s({ color:
|
469
|
-
return /* @__PURE__ */ e(y, { color:
|
481
|
+
function s({ color: o = "black", backgroundColor: c = "transparent" }) {
|
482
|
+
return /* @__PURE__ */ e(y, { color: o, backgroundColor: c, children: /* @__PURE__ */ e(Y, { style: { width: "100%", height: "100%" } }) });
|
470
483
|
}
|
471
|
-
const
|
484
|
+
const N = (o) => {
|
472
485
|
try {
|
473
|
-
return new URL(
|
486
|
+
return new URL(o).origin !== window.location.origin;
|
474
487
|
} catch {
|
475
488
|
return !1;
|
476
489
|
}
|
477
490
|
};
|
478
|
-
function
|
479
|
-
return
|
491
|
+
function t({ to: o, children: c, className: a = "", ...m }) {
|
492
|
+
return N(o) ? /* @__PURE__ */ e(p, { to: ie(o, "header"), target: "_blank", rel: "noreferrer noopener", className: a, ...m, children: c }) : /* @__PURE__ */ e(p, { to: o, className: a, ...m, children: c });
|
480
493
|
}
|
481
|
-
function
|
482
|
-
const { mode:
|
494
|
+
function Be({ className: o = "", type: c, ...a }) {
|
495
|
+
const { mode: m } = K(), k = F(), { locale: r = "en" } = _() || {}, l = G(null), { palette: f } = k, i = A((n, d = {}) => L(te, n, r, "en", d)), [W, D] = T(v), u = A(() => {
|
483
496
|
if (!l.current) return;
|
484
497
|
const n = l.current.querySelectorAll(".navmenu-item__content");
|
485
498
|
let d = v;
|
@@ -489,19 +502,19 @@ function Fe({ className: t = "", type: c, ...a }) {
|
|
489
502
|
}), D(d);
|
490
503
|
});
|
491
504
|
S(() => {
|
492
|
-
|
493
|
-
}, [k, r, c,
|
505
|
+
u();
|
506
|
+
}, [k, r, c, u]), S(() => {
|
494
507
|
if (!l.current) return;
|
495
508
|
const n = l.current.querySelector(".navmenu-item__content");
|
496
509
|
if (!n) return;
|
497
510
|
const d = new ResizeObserver(() => {
|
498
|
-
|
511
|
+
u();
|
499
512
|
});
|
500
513
|
return d.observe(n), () => {
|
501
514
|
d.disconnect();
|
502
515
|
};
|
503
|
-
}, [
|
504
|
-
const x =
|
516
|
+
}, [u]);
|
517
|
+
const x = $(() => {
|
505
518
|
if (c === "ARCBLOCK")
|
506
519
|
return [
|
507
520
|
{
|
@@ -509,7 +522,7 @@ function Fe({ className: t = "", type: c, ...a }) {
|
|
509
522
|
label: i("groups.applications"),
|
510
523
|
children: [
|
511
524
|
{
|
512
|
-
label: /* @__PURE__ */ e(
|
525
|
+
label: /* @__PURE__ */ e(t, { to: `https://www.nftstudio.rocks/${r}`, children: "NFT Studio" }),
|
513
526
|
description: i("products.nftStudio.description"),
|
514
527
|
icon: /* @__PURE__ */ e(M, {})
|
515
528
|
},
|
@@ -527,12 +540,12 @@ function Fe({ className: t = "", type: c, ...a }) {
|
|
527
540
|
icon: /* @__PURE__ */ e(O, {})
|
528
541
|
},
|
529
542
|
{
|
530
|
-
label: /* @__PURE__ */ e(
|
543
|
+
label: /* @__PURE__ */ e(t, { to: "https://www.aigne.io/", children: "AIGNE" }),
|
531
544
|
description: i("products.aigne.description"),
|
532
545
|
icon: /* @__PURE__ */ e(s, { color: f.mode === "dark" ? "white" : "black" })
|
533
546
|
},
|
534
547
|
{
|
535
|
-
label: /* @__PURE__ */ e(
|
548
|
+
label: /* @__PURE__ */ e(t, { to: `https://www.arcsphere.io/${r}`, children: "ArcSphere" }),
|
536
549
|
description: i("products.arcsphere.description"),
|
537
550
|
icon: /* @__PURE__ */ e(I, {})
|
538
551
|
}
|
@@ -543,24 +556,24 @@ function Fe({ className: t = "", type: c, ...a }) {
|
|
543
556
|
label: i("groups.components"),
|
544
557
|
children: [
|
545
558
|
{
|
546
|
-
label: /* @__PURE__ */ e(
|
559
|
+
label: /* @__PURE__ */ e(t, { to: `https://launcher.arcblock.io/${r}`, children: "Blocklet Launcher" }),
|
547
560
|
description: i("products.blockletLauncher.description"),
|
548
561
|
icon: /* @__PURE__ */ e(P, {})
|
549
562
|
},
|
550
563
|
{
|
551
|
-
label: /* @__PURE__ */ e(
|
564
|
+
label: /* @__PURE__ */ e(t, { to: `https://www.blocklet.io/${r}/payment-kit`, children: "Payment Kit" }),
|
552
565
|
description: i("products.paymentKit.description"),
|
553
566
|
icon: /* @__PURE__ */ e("img", { src: X, alt: "Payment Kit" })
|
554
567
|
},
|
555
568
|
{
|
556
|
-
label: /* @__PURE__ */ e(
|
569
|
+
label: /* @__PURE__ */ e(t, { to: `https://store.blocklet.dev/?locale=${r}`, children: "Blocklet Store" }),
|
557
570
|
description: i("products.blockletStore.description"),
|
558
|
-
icon: /* @__PURE__ */ e(
|
571
|
+
icon: /* @__PURE__ */ e(R, {})
|
559
572
|
},
|
560
573
|
{
|
561
|
-
label: /* @__PURE__ */ e(
|
574
|
+
label: /* @__PURE__ */ e(t, { to: `https://www.web3kit.rocks/${r}`, children: "Web3 Kit" }),
|
562
575
|
description: i("products.web3Kit.description"),
|
563
|
-
icon: /* @__PURE__ */ e(
|
576
|
+
icon: /* @__PURE__ */ e(H, {})
|
564
577
|
}
|
565
578
|
]
|
566
579
|
},
|
@@ -592,12 +605,12 @@ function Fe({ className: t = "", type: c, ...a }) {
|
|
592
605
|
icon: /* @__PURE__ */ e(U, {})
|
593
606
|
},
|
594
607
|
{
|
595
|
-
label: /* @__PURE__ */ e(
|
608
|
+
label: /* @__PURE__ */ e(t, { to: `https://www.blocklet.io/${r}/blocklet-server`, children: "Blocklet Server" }),
|
596
609
|
description: i("products.blockletServer.description"),
|
597
610
|
icon: /* @__PURE__ */ e(j, {})
|
598
611
|
},
|
599
612
|
{
|
600
|
-
label: /* @__PURE__ */ e(
|
613
|
+
label: /* @__PURE__ */ e(t, { to: `https://www.arcblock.io/content/collections/${r}/ocap`, children: "ОСАР" }),
|
601
614
|
description: i("products.ocap.description"),
|
602
615
|
icon: /* @__PURE__ */ e(V, {})
|
603
616
|
}
|
@@ -608,12 +621,12 @@ function Fe({ className: t = "", type: c, ...a }) {
|
|
608
621
|
label: i("groups.identity"),
|
609
622
|
children: [
|
610
623
|
{
|
611
|
-
label: /* @__PURE__ */ e(
|
624
|
+
label: /* @__PURE__ */ e(t, { to: `https://www.arcblock.io/content/collections/${r}/did`, children: "DID" }),
|
612
625
|
description: i("products.did.description"),
|
613
626
|
icon: /* @__PURE__ */ e(h, { color: "#5b96f3" })
|
614
627
|
},
|
615
628
|
{
|
616
|
-
label: /* @__PURE__ */ e(
|
629
|
+
label: /* @__PURE__ */ e(t, { to: `https://www.didwallet.io/${r}`, children: "DID Wallet" }),
|
617
630
|
description: i("products.didWallet.description"),
|
618
631
|
icon: /* @__PURE__ */ e(J, {})
|
619
632
|
},
|
@@ -623,12 +636,12 @@ function Fe({ className: t = "", type: c, ...a }) {
|
|
623
636
|
icon: /* @__PURE__ */ e(h, { color: "#678ab0" })
|
624
637
|
},
|
625
638
|
{
|
626
|
-
label: /* @__PURE__ */ e(
|
639
|
+
label: /* @__PURE__ */ e(t, { to: `https://www.arcblock.io/content/collections/${r}/verifiable-credential`, children: "VC" }),
|
627
640
|
description: i("products.vc.description"),
|
628
641
|
icon: /* @__PURE__ */ e(Q, {})
|
629
642
|
},
|
630
643
|
{
|
631
|
-
label: /* @__PURE__ */ e(
|
644
|
+
label: /* @__PURE__ */ e(t, { to: `https://www.didconnect.io/${r}`, children: "DID Connect" }),
|
632
645
|
description: i("products.didConnect.description"),
|
633
646
|
icon: /* @__PURE__ */ e(h, { color: "#5bbec5" })
|
634
647
|
}
|
@@ -639,7 +652,7 @@ function Fe({ className: t = "", type: c, ...a }) {
|
|
639
652
|
const n = {
|
640
653
|
onClick: (d) => {
|
641
654
|
d.preventDefault();
|
642
|
-
const b = d.currentTarget.href, g =
|
655
|
+
const b = d.currentTarget.href, g = N(b) ? "_blank" : "_self";
|
643
656
|
window.open(b, g);
|
644
657
|
}
|
645
658
|
};
|
@@ -649,29 +662,34 @@ function Fe({ className: t = "", type: c, ...a }) {
|
|
649
662
|
label: i("groups.applications"),
|
650
663
|
children: [
|
651
664
|
{
|
652
|
-
label: /* @__PURE__ */ e(
|
665
|
+
label: /* @__PURE__ */ e(t, { to: `https://www.arcsphere.io/${r}`, children: "ArcSphere" }),
|
653
666
|
description: i("products.arcsphere.description"),
|
654
667
|
icon: /* @__PURE__ */ e(I, {})
|
655
668
|
},
|
656
669
|
{
|
657
|
-
label: /* @__PURE__ */ e(
|
670
|
+
label: /* @__PURE__ */ e(t, { to: `https://www.aistro.io/${r}`, children: "Aistro" }),
|
658
671
|
description: i("products.aistro.description"),
|
659
|
-
icon: /* @__PURE__ */ e("img", { src:
|
672
|
+
icon: /* @__PURE__ */ e("img", { src: ee, alt: "Aistro" })
|
660
673
|
},
|
661
674
|
{
|
662
|
-
label: /* @__PURE__ */ e(
|
675
|
+
label: /* @__PURE__ */ e(t, { to: "https://www.aigne.io/code-smith", ...n, children: "AIGNE CodeSmith" }),
|
663
676
|
description: i("products.aigneCodeSmith.description"),
|
664
677
|
icon: /* @__PURE__ */ e(s, { color: "#3E5DF7", backgroundColor: "#e9f0ff" })
|
665
678
|
},
|
666
679
|
{
|
667
|
-
label: /* @__PURE__ */ e(
|
680
|
+
label: /* @__PURE__ */ e(t, { to: "https://www.aigne.io/doc-smith", ...n, children: "AIGNE DocSmith" }),
|
668
681
|
description: i("products.aigneDocSmith.description"),
|
669
682
|
icon: /* @__PURE__ */ e(s, { color: "#02A996", backgroundColor: "#e6f7f5" })
|
670
683
|
},
|
671
684
|
{
|
672
|
-
label: /* @__PURE__ */ e(
|
685
|
+
label: /* @__PURE__ */ e(t, { to: "https://www.aigne.io/web-smith", ...n, children: "AIGNE WebSmith" }),
|
673
686
|
description: i("products.aigneWebSmith.description"),
|
674
687
|
icon: /* @__PURE__ */ e(s, { color: "#7c45eb", backgroundColor: "#f0e9ff" })
|
688
|
+
},
|
689
|
+
{
|
690
|
+
label: /* @__PURE__ */ e(t, { to: "https://imagesmith.aigne.io/", children: "AIGNE ImageSmith" }),
|
691
|
+
description: i("products.aigneImageSmith.description"),
|
692
|
+
icon: /* @__PURE__ */ e(Z, {})
|
675
693
|
}
|
676
694
|
]
|
677
695
|
},
|
@@ -680,22 +698,22 @@ function Fe({ className: t = "", type: c, ...a }) {
|
|
680
698
|
label: i("groups.frameworkTools"),
|
681
699
|
children: [
|
682
700
|
{
|
683
|
-
label: /* @__PURE__ */ e(
|
701
|
+
label: /* @__PURE__ */ e(t, { to: "https://www.aigne.io/cli", ...n, children: "AIGNE CLI" }),
|
684
702
|
description: i("products.aigneCLI.description"),
|
685
703
|
icon: /* @__PURE__ */ e(s, { color: "#d05d4e", backgroundColor: "#faeaea" })
|
686
704
|
},
|
687
705
|
{
|
688
|
-
label: /* @__PURE__ */ e(
|
706
|
+
label: /* @__PURE__ */ e(t, { to: "https://www.aigne.io/observability", ...n, children: "AIGNE Observability" }),
|
689
707
|
description: i("products.aigneObservability.description"),
|
690
708
|
icon: /* @__PURE__ */ e(s, { color: "#6ba456", backgroundColor: "#edfae8" })
|
691
709
|
},
|
692
710
|
{
|
693
|
-
label: /* @__PURE__ */ e(
|
711
|
+
label: /* @__PURE__ */ e(t, { to: "https://www.aigne.io/studio", ...n, children: "AIGNE Studio" }),
|
694
712
|
description: i("products.aigneStudio.description"),
|
695
713
|
icon: /* @__PURE__ */ e(s, { color: "#676cbf", backgroundColor: "#edeeff" })
|
696
714
|
},
|
697
715
|
{
|
698
|
-
label: /* @__PURE__ */ e(
|
716
|
+
label: /* @__PURE__ */ e(t, { to: "https://www.aigne.io/framework", ...n, children: "AIGNE Framework" }),
|
699
717
|
description: i("products.aigneFramework.description"),
|
700
718
|
icon: /* @__PURE__ */ e(s, { color: "#5086d0", backgroundColor: "#eef4ff" })
|
701
719
|
}
|
@@ -706,7 +724,7 @@ function Fe({ className: t = "", type: c, ...a }) {
|
|
706
724
|
label: i("groups.modelsAdapters"),
|
707
725
|
children: [
|
708
726
|
{
|
709
|
-
label: /* @__PURE__ */ e(
|
727
|
+
label: /* @__PURE__ */ e(t, { to: "https://www.aigne.io/hub", ...n, children: "AIGNE Hub" }),
|
710
728
|
description: i("products.aigneHub.description"),
|
711
729
|
icon: /* @__PURE__ */ e(s, { color: "#e4930b", backgroundColor: "#fbf4d4" })
|
712
730
|
}
|
@@ -716,8 +734,8 @@ function Fe({ className: t = "", type: c, ...a }) {
|
|
716
734
|
}
|
717
735
|
return [];
|
718
736
|
}, [i, r, f]);
|
719
|
-
return /* @__PURE__ */ e(oe, { ref: l, className: `nav-menu-products is-${
|
737
|
+
return /* @__PURE__ */ e(oe, { ref: l, className: `nav-menu-products is-${m} ${o}`, ...a, children: x.map((n) => /* @__PURE__ */ e(B, { label: n.label, children: /* @__PURE__ */ e(re, { maxContent: W, children: n.children.map((d) => /* @__PURE__ */ e(E, { variant: "panel", style: { padding: "8px" }, ...d })) }) }, n.label)) });
|
720
738
|
}
|
721
739
|
export {
|
722
|
-
|
740
|
+
Be as default
|
723
741
|
};
|
package/lib/package.json.js
CHANGED
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@arcblock/ux",
|
3
|
-
"version": "3.1.
|
3
|
+
"version": "3.1.51",
|
4
4
|
"description": "Common used react components for arcblock products",
|
5
5
|
"keywords": [
|
6
6
|
"react",
|
@@ -68,16 +68,16 @@
|
|
68
68
|
"react": "^19.0.0",
|
69
69
|
"react-router-dom": "^6.22.3"
|
70
70
|
},
|
71
|
-
"gitHead": "
|
71
|
+
"gitHead": "8367c79c433cf59694b4aa72cbeef3b25185dd66",
|
72
72
|
"dependencies": {
|
73
|
-
"@arcblock/bridge": "3.1.
|
73
|
+
"@arcblock/bridge": "3.1.51",
|
74
74
|
"@arcblock/did": "^1.25.6",
|
75
75
|
"@arcblock/did-motif": "^1.1.14",
|
76
|
-
"@arcblock/icons": "3.1.
|
77
|
-
"@arcblock/nft-display": "3.1.
|
78
|
-
"@arcblock/react-hooks": "3.1.
|
76
|
+
"@arcblock/icons": "3.1.51",
|
77
|
+
"@arcblock/nft-display": "3.1.51",
|
78
|
+
"@arcblock/react-hooks": "3.1.51",
|
79
79
|
"@blocklet/js-sdk": "1.16.52",
|
80
|
-
"@blocklet/theme": "3.1.
|
80
|
+
"@blocklet/theme": "3.1.51",
|
81
81
|
"@fontsource/roboto": "~5.1.1",
|
82
82
|
"@fontsource/ubuntu-mono": "^5.2.6",
|
83
83
|
"@iconify-icons/logos": "^1.2.36",
|
@@ -353,21 +353,14 @@ CustomToolbar.propTypes = {
|
|
353
353
|
const Container = styled('div')`
|
354
354
|
display: flex;
|
355
355
|
align-items: center;
|
356
|
-
|
356
|
+
flex-wrap: wrap;
|
357
357
|
.custom-toobar-title {
|
358
|
-
|
359
|
-
flex: 1;
|
358
|
+
flex: 1 1 auto;
|
360
359
|
font-size: 18px;
|
361
360
|
font-weight: 800;
|
362
|
-
height: 56px;
|
363
361
|
transition: all ease 0.3s;
|
364
362
|
&-inner {
|
365
|
-
line-height: 56px;
|
366
363
|
width: 100%;
|
367
|
-
height: 56px;
|
368
|
-
position: absolute;
|
369
|
-
left: 0;
|
370
|
-
top: 0;
|
371
364
|
span {
|
372
365
|
display: inline-block;
|
373
366
|
max-width: 100%;
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<svg viewBox="0 0 902 902" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<rect width="902" height="902" rx="212" fill="url(#paint0_linear_3783_1258)" style=""></rect>
|
3
|
+
<rect x="166" y="247" width="569" height="409" rx="80" stroke="white" style="stroke:white;stroke-opacity:1;"
|
4
|
+
stroke-width="40"></rect>
|
5
|
+
<ellipse cx="371" cy="452" rx="37" ry="65" fill="white" style="fill:white;fill-opacity:1;"></ellipse>
|
6
|
+
<ellipse cx="531" cy="452" rx="37" ry="65" fill="white" style="fill:white;fill-opacity:1;"></ellipse>
|
7
|
+
<defs>
|
8
|
+
<linearGradient id="paint0_linear_3783_1258" x1="84" y1="78.5" x2="811.5" y2="850.5"
|
9
|
+
gradientUnits="userSpaceOnUse">
|
10
|
+
<stop stop-color="#AAF4EF"
|
11
|
+
style="stop-color:#AAF4EF;stop-color:color(display-p3 0.6667 0.9569 0.9373);stop-opacity:1;"></stop>
|
12
|
+
<stop offset="0.180804" stop-color="#C7F37F"
|
13
|
+
style="stop-color:#C7F37F;stop-color:color(display-p3 0.7798 0.9512 0.4996);stop-opacity:1;"></stop>
|
14
|
+
<stop offset="0.361299" stop-color="#FFD071"
|
15
|
+
style="stop-color:#FFD071;stop-color:color(display-p3 1.0000 0.8141 0.4422);stop-opacity:1;"></stop>
|
16
|
+
<stop offset="0.546216" stop-color="#FF9898"
|
17
|
+
style="stop-color:#FF9898;stop-color:color(display-p3 1.0000 0.5960 0.5960);stop-opacity:1;"></stop>
|
18
|
+
<stop offset="0.72214" stop-color="#FF89E0"
|
19
|
+
style="stop-color:#FF89E0;stop-color:color(display-p3 1.0000 0.5360 0.8769);stop-opacity:1;"></stop>
|
20
|
+
<stop offset="0.898804" stop-color="#B695FE"
|
21
|
+
style="stop-color:#B695FE;stop-color:color(display-p3 0.7137 0.5843 0.9961);stop-opacity:1;"></stop>
|
22
|
+
<stop offset="1" stop-color="#7C8EED"
|
23
|
+
style="stop-color:#7C8EED;stop-color:color(display-p3 0.4863 0.5569 0.9294);stop-opacity:1;"></stop>
|
24
|
+
</linearGradient>
|
25
|
+
</defs>
|
26
|
+
</svg>
|
package/src/NavMenu/products.tsx
CHANGED
@@ -24,6 +24,7 @@ import VCSvg from './images/vc.svg?react';
|
|
24
24
|
import PaymentKitPng from './images/payment-kit.png';
|
25
25
|
// AIGNE Icons
|
26
26
|
import AigneSvg from './images/aigne.svg?react';
|
27
|
+
import AigneImageSmithSvg from './images/aigne-image-smith.svg?react';
|
27
28
|
import ArcSphereSvg from './images/arcsphere.svg?react';
|
28
29
|
import AistroPng from './images/aistro.png';
|
29
30
|
import { getUTMUrl } from '../withTracker/libs/utm';
|
@@ -110,6 +111,9 @@ const translations = {
|
|
110
111
|
aigneWebSmith: {
|
111
112
|
description: 'Build and deploy AI-powered web apps',
|
112
113
|
},
|
114
|
+
aigneImageSmith: {
|
115
|
+
description: 'Generate and Refine Images with AI',
|
116
|
+
},
|
113
117
|
aigneCLI: {
|
114
118
|
description: 'Develop agents from the command line',
|
115
119
|
},
|
@@ -206,6 +210,9 @@ const translations = {
|
|
206
210
|
aigneWebSmith: {
|
207
211
|
description: '构建并部署 AI 驱动的 Web 应用',
|
208
212
|
},
|
213
|
+
aigneImageSmith: {
|
214
|
+
description: '使用 AI 生成和优化图像',
|
215
|
+
},
|
209
216
|
aigneCLI: {
|
210
217
|
description: '通过命令行开发 Agent',
|
211
218
|
},
|
@@ -302,6 +309,9 @@ const translations = {
|
|
302
309
|
aigneWebSmith: {
|
303
310
|
description: '構建並部署 AI 驅動的 Web 應用',
|
304
311
|
},
|
312
|
+
aigneImageSmith: {
|
313
|
+
description: '使用 AI 生成和優化圖像',
|
314
|
+
},
|
305
315
|
aigneCLI: {
|
306
316
|
description: '透過命令列開發 Agent',
|
307
317
|
},
|
@@ -398,6 +408,9 @@ const translations = {
|
|
398
408
|
aigneWebSmith: {
|
399
409
|
description: 'AI駆動Webアプリの構築とデプロイ',
|
400
410
|
},
|
411
|
+
aigneImageSmith: {
|
412
|
+
description: 'AIで画像を生成・最適化',
|
413
|
+
},
|
401
414
|
aigneCLI: {
|
402
415
|
description: 'コマンドラインからエージェントを開発',
|
403
416
|
},
|
@@ -788,6 +801,11 @@ export default function Products({ className = '', type, ...rest }: ProductsProp
|
|
788
801
|
description: t('products.aigneWebSmith.description'),
|
789
802
|
icon: <AigneIcon color="#7c45eb" backgroundColor="#f0e9ff" />,
|
790
803
|
},
|
804
|
+
{
|
805
|
+
label: <SmartLink to="https://imagesmith.aigne.io/">AIGNE ImageSmith</SmartLink>,
|
806
|
+
description: t('products.aigneImageSmith.description'),
|
807
|
+
icon: <AigneImageSmithSvg />,
|
808
|
+
},
|
791
809
|
],
|
792
810
|
},
|
793
811
|
{
|