@arcblock/ux 3.0.38 → 3.0.41
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/Layout/dashboard/index.d.ts +2 -0
- package/lib/Layout/dashboard/index.js +33 -32
- package/lib/NavMenu/images/aigne.svg.js +2 -4
- package/lib/NavMenu/images/aistro.png +0 -0
- package/lib/NavMenu/index.d.ts +1 -1
- package/lib/NavMenu/products.d.ts +3 -2
- package/lib/NavMenu/products.js +226 -85
- package/lib/NavMenu/style.js +5 -4
- package/lib/UserCard/index.js +9 -5
- package/package.json +7 -7
- package/src/Layout/dashboard/index.tsx +4 -1
- package/src/NavMenu/images/aigne.svg +6 -8
- package/src/NavMenu/images/aistro.png +0 -0
- package/src/NavMenu/index.ts +1 -1
- package/src/NavMenu/products.tsx +413 -231
- package/src/NavMenu/style.ts +2 -1
- package/src/UserCard/index.tsx +3 -3
- package/lib/NavMenu/images/aistro.svg.js +0 -5
- package/src/NavMenu/images/aistro.svg +0 -14
package/src/NavMenu/products.tsx
CHANGED
@@ -9,12 +9,10 @@ import { useNavMenuContext } from './nav-menu-context';
|
|
9
9
|
import { translate } from '../Locale/util';
|
10
10
|
import { useLocaleContext } from '../Locale/context';
|
11
11
|
|
12
|
+
// Arcblock Icons
|
12
13
|
import AIKitSvg from './images/ai-kit.svg?react';
|
13
14
|
import NftStudioSvg from './images/nft-studio.svg?react';
|
14
15
|
import CreatorStudioSvg from './images/creator-studio.svg?react';
|
15
|
-
import AigneSvg from './images/aigne.svg?react';
|
16
|
-
import ArcSphereSvg from './images/arcsphere.svg?react';
|
17
|
-
import AistroSvg from './images/aistro.svg?react';
|
18
16
|
import BlockletLauncherSvg from './images/blocklet-launcher.svg?react';
|
19
17
|
import BlockletStoreSvg from './images/blocklet-store.svg?react';
|
20
18
|
import Web3KitSvg from './images/web3-kit.svg?react';
|
@@ -29,6 +27,11 @@ import VCSvg from './images/vc.svg?react';
|
|
29
27
|
import DidConnectSvg from './images/did-connect.svg?react';
|
30
28
|
import PaymentKitPng from './images/payment-kit.png';
|
31
29
|
|
30
|
+
// AIGNE Icons
|
31
|
+
import AigneSvg from './images/aigne.svg?react';
|
32
|
+
import ArcSphereSvg from './images/arcsphere.svg?react';
|
33
|
+
import AistroPng from './images/aistro.png';
|
34
|
+
|
32
35
|
const translations = {
|
33
36
|
en: {
|
34
37
|
groups: {
|
@@ -36,6 +39,8 @@ const translations = {
|
|
36
39
|
components: 'Components',
|
37
40
|
computeStorage: 'Compute/Storage',
|
38
41
|
identity: 'Identity',
|
42
|
+
frameworkTools: 'Framework & tools',
|
43
|
+
modelsAdapters: 'Models adapters',
|
39
44
|
},
|
40
45
|
products: {
|
41
46
|
nftStudio: {
|
@@ -45,7 +50,7 @@ const translations = {
|
|
45
50
|
description: 'All-in-one creator tool',
|
46
51
|
},
|
47
52
|
aigne: {
|
48
|
-
description: '
|
53
|
+
description: 'The Agentic Ecosystem for AI Apps',
|
49
54
|
},
|
50
55
|
arcsphere: {
|
51
56
|
description: 'AI native browser',
|
@@ -98,6 +103,30 @@ const translations = {
|
|
98
103
|
didConnect: {
|
99
104
|
description: 'Passwordless login',
|
100
105
|
},
|
106
|
+
aigneCodeSmith: {
|
107
|
+
description: 'Review and improve your code with AI',
|
108
|
+
},
|
109
|
+
aigneDocSmith: {
|
110
|
+
description: 'Generate and update docs with AI',
|
111
|
+
},
|
112
|
+
aigneWebSmith: {
|
113
|
+
description: 'Build and deploy AI-powered web apps',
|
114
|
+
},
|
115
|
+
aigneCLI: {
|
116
|
+
description: 'Develop agents from the command line',
|
117
|
+
},
|
118
|
+
aigneObservability: {
|
119
|
+
description: 'Understand and inspect agent behavior',
|
120
|
+
},
|
121
|
+
aigneStudio: {
|
122
|
+
description: 'Create agents visually, no code needed',
|
123
|
+
},
|
124
|
+
aigneFramework: {
|
125
|
+
description: 'The functional core of agentic AI',
|
126
|
+
},
|
127
|
+
aigneHub: {
|
128
|
+
description: 'One API. Any Model',
|
129
|
+
},
|
101
130
|
},
|
102
131
|
},
|
103
132
|
zh: {
|
@@ -106,6 +135,8 @@ const translations = {
|
|
106
135
|
components: '组件',
|
107
136
|
computeStorage: '计算/存储',
|
108
137
|
identity: '身份',
|
138
|
+
frameworkTools: '框架与工具',
|
139
|
+
modelsAdapters: '模型适配器',
|
109
140
|
},
|
110
141
|
products: {
|
111
142
|
nftStudio: {
|
@@ -115,7 +146,7 @@ const translations = {
|
|
115
146
|
description: '一体化创作工具',
|
116
147
|
},
|
117
148
|
aigne: {
|
118
|
-
description: '
|
149
|
+
description: 'AI 应用的代理生态系统',
|
119
150
|
},
|
120
151
|
arcsphere: {
|
121
152
|
description: 'AI 原生浏览器',
|
@@ -168,6 +199,30 @@ const translations = {
|
|
168
199
|
didConnect: {
|
169
200
|
description: '无密码登录',
|
170
201
|
},
|
202
|
+
aigneCodeSmith: {
|
203
|
+
description: '使用 AI 审查并优化你的代码',
|
204
|
+
},
|
205
|
+
aigneDocSmith: {
|
206
|
+
description: '用 AI 生成和更新项目文档',
|
207
|
+
},
|
208
|
+
aigneWebSmith: {
|
209
|
+
description: '构建并部署 AI 驱动的 Web 应用',
|
210
|
+
},
|
211
|
+
aigneCLI: {
|
212
|
+
description: '通过命令行开发 Agent',
|
213
|
+
},
|
214
|
+
aigneObservability: {
|
215
|
+
description: '理解并分析 Agent 的行为',
|
216
|
+
},
|
217
|
+
aigneStudio: {
|
218
|
+
description: '零代码构建 Agent',
|
219
|
+
},
|
220
|
+
aigneFramework: {
|
221
|
+
description: 'Agent AI 的功能核心框架',
|
222
|
+
},
|
223
|
+
aigneHub: {
|
224
|
+
description: '一套 API,连接所有模型',
|
225
|
+
},
|
171
226
|
},
|
172
227
|
},
|
173
228
|
};
|
@@ -197,240 +252,367 @@ const Wrapper = styled(Box)`
|
|
197
252
|
}
|
198
253
|
`;
|
199
254
|
|
200
|
-
|
201
|
-
|
255
|
+
function AigneIcon({ color = 'black', backgroundColor = 'transparent' }: { color?: string; backgroundColor?: string }) {
|
256
|
+
return (
|
257
|
+
<Box
|
258
|
+
component="span"
|
259
|
+
sx={{
|
260
|
+
display: 'inline-flex',
|
261
|
+
alignItems: 'center',
|
262
|
+
justifyContent: 'center',
|
263
|
+
color,
|
264
|
+
backgroundColor,
|
265
|
+
borderRadius: '4px',
|
266
|
+
}}>
|
267
|
+
<AigneSvg />
|
268
|
+
</Box>
|
269
|
+
);
|
202
270
|
}
|
203
271
|
|
204
|
-
|
205
|
-
|
206
|
-
|
272
|
+
export type ProductsType = 'AIGNE' | 'ARCBLOCK';
|
273
|
+
export interface ProductsProps extends BoxProps {
|
274
|
+
type: ProductsType;
|
275
|
+
}
|
276
|
+
export default function Products({ className, type, ...rest }: ProductsProps) {
|
207
277
|
const { mode } = useNavMenuContext();
|
208
278
|
const { palette } = useTheme();
|
209
279
|
const wrapperRef = useRef<HTMLDivElement>(null);
|
210
280
|
const { locale = 'en' } = useLocaleContext() || {};
|
211
281
|
const t = useMemoizedFn((key, data = {}) => translate(translations, key, locale, 'en', data));
|
282
|
+
|
212
283
|
const groups = useCreation(() => {
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
<
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
<
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
<
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
<
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
<
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
284
|
+
if (type === 'ARCBLOCK') {
|
285
|
+
return [
|
286
|
+
{
|
287
|
+
type: 'Group',
|
288
|
+
label: t('groups.applications'),
|
289
|
+
children: [
|
290
|
+
{
|
291
|
+
label: (
|
292
|
+
<Link to={`https://www.nftstudio.rocks/${locale}`} target="_blank" rel="noreferrer noopener">
|
293
|
+
NFT Studio
|
294
|
+
</Link>
|
295
|
+
),
|
296
|
+
description: t('products.nftStudio.description'),
|
297
|
+
icon: <NftStudioSvg />,
|
298
|
+
},
|
299
|
+
{
|
300
|
+
label: (
|
301
|
+
<Link
|
302
|
+
to={`https://www.arcblock.io/content/collections/${locale}/creator-studio`}
|
303
|
+
target="_blank"
|
304
|
+
rel="noreferrer noopener">
|
305
|
+
Creator Studio
|
306
|
+
</Link>
|
307
|
+
),
|
308
|
+
description: t('products.creatorStudio.description'),
|
309
|
+
icon: <CreatorStudioSvg />,
|
310
|
+
},
|
311
|
+
{
|
312
|
+
label: (
|
313
|
+
<Link to="https://www.aigne.io/" target="_blank" rel="noreferrer noopener">
|
314
|
+
AIGNE
|
315
|
+
</Link>
|
316
|
+
),
|
317
|
+
description: t('products.aigne.description'),
|
318
|
+
icon: <AigneIcon color={palette.mode === 'dark' ? 'white' : 'black'} />,
|
319
|
+
},
|
320
|
+
{
|
321
|
+
label: (
|
322
|
+
<Link to={`https://www.arcsphere.io/${locale}`} target="_blank" rel="noreferrer noopener">
|
323
|
+
ArcSphere
|
324
|
+
</Link>
|
325
|
+
),
|
326
|
+
description: t('products.arcsphere.description'),
|
327
|
+
icon: <ArcSphereSvg />,
|
328
|
+
},
|
329
|
+
],
|
330
|
+
},
|
331
|
+
{
|
332
|
+
type: 'Group',
|
333
|
+
label: t('groups.components'),
|
334
|
+
children: [
|
335
|
+
{
|
336
|
+
label: (
|
337
|
+
<Link to={`https://launcher.arcblock.io/${locale}`} target="_blank" rel="noreferrer noopener">
|
338
|
+
Blocklet Launcher
|
339
|
+
</Link>
|
340
|
+
),
|
341
|
+
description: t('products.blockletLauncher.description'),
|
342
|
+
icon: <BlockletLauncherSvg />,
|
343
|
+
},
|
344
|
+
{
|
345
|
+
label: (
|
346
|
+
<Link to="https://www.aigne.io/hub" target="_blank" rel="noreferrer noopener">
|
347
|
+
AI Kit
|
348
|
+
</Link>
|
349
|
+
),
|
350
|
+
description: t('products.aiKit.description'),
|
351
|
+
icon: <AIKitSvg />,
|
352
|
+
},
|
353
|
+
{
|
354
|
+
label: (
|
355
|
+
<Link to={`https://www.blocklet.io/${locale}/payment-kit`} target="_blank" rel="noreferrer noopener">
|
356
|
+
Payment Kit
|
357
|
+
</Link>
|
358
|
+
),
|
359
|
+
description: t('products.paymentKit.description'),
|
360
|
+
icon: <img src={PaymentKitPng} alt="Payment Kit" />,
|
361
|
+
},
|
362
|
+
{
|
363
|
+
label: (
|
364
|
+
<Link to={`https://store.blocklet.dev/?locale=${locale}`} target="_blank" rel="noreferrer noopener">
|
365
|
+
Blocklet Store
|
366
|
+
</Link>
|
367
|
+
),
|
368
|
+
description: t('products.blockletStore.description'),
|
369
|
+
icon: <BlockletStoreSvg />,
|
370
|
+
},
|
371
|
+
{
|
372
|
+
label: (
|
373
|
+
<Link to={`https://www.web3kit.rocks/${locale}`} target="_blank" rel="noreferrer noopener">
|
374
|
+
Web3 Kit
|
375
|
+
</Link>
|
376
|
+
),
|
377
|
+
description: t('products.web3Kit.description'),
|
378
|
+
icon: <Web3KitSvg />,
|
379
|
+
},
|
380
|
+
],
|
381
|
+
},
|
382
|
+
{
|
383
|
+
type: 'Group',
|
384
|
+
label: t('groups.computeStorage'),
|
385
|
+
children: [
|
386
|
+
{
|
387
|
+
label: (
|
388
|
+
<Link
|
389
|
+
to={`https://www.arcblock.io/content/collections/${locale}/blocklet`}
|
390
|
+
target="_blank"
|
391
|
+
rel="noreferrer noopener">
|
392
|
+
Blocklet Framework
|
393
|
+
</Link>
|
394
|
+
),
|
395
|
+
description: t('products.blockletFramework.description'),
|
396
|
+
icon: <BlockletFrameworkSvg />,
|
397
|
+
},
|
398
|
+
{
|
399
|
+
label: (
|
400
|
+
<Link to={`https://www.didspaces.com/${locale}`} target="_blank" rel="noreferrer noopener">
|
401
|
+
DID Spaces
|
402
|
+
</Link>
|
403
|
+
),
|
404
|
+
description: t('products.didSpaces.description'),
|
405
|
+
icon: <DidSvg />,
|
406
|
+
},
|
407
|
+
{
|
408
|
+
label: (
|
409
|
+
<Link to="https://main.abtnetwork.io/" target="_blank" rel="noreferrer noopener">
|
410
|
+
ABT Network
|
411
|
+
</Link>
|
412
|
+
),
|
413
|
+
description: t('products.abtNetwork.description'),
|
414
|
+
icon: <AbtNetworkSvg />,
|
415
|
+
},
|
416
|
+
{
|
417
|
+
label: (
|
418
|
+
<Link
|
419
|
+
to={`https://www.blocklet.io/${locale}/blocklet-server`}
|
420
|
+
target="_blank"
|
421
|
+
rel="noreferrer noopener">
|
422
|
+
Blocklet Server
|
423
|
+
</Link>
|
424
|
+
),
|
425
|
+
description: t('products.blockletServer.description'),
|
426
|
+
icon: <BlockletServerSvg />,
|
427
|
+
},
|
428
|
+
{
|
429
|
+
label: (
|
430
|
+
<Link
|
431
|
+
to={`https://www.arcblock.io/content/collections/${locale}/ocap`}
|
432
|
+
target="_blank"
|
433
|
+
rel="noreferrer noopener">
|
434
|
+
ОСАР
|
435
|
+
</Link>
|
436
|
+
),
|
437
|
+
description: t('products.ocap.description'),
|
438
|
+
icon: <OCAPSvg />,
|
439
|
+
},
|
440
|
+
],
|
441
|
+
},
|
442
|
+
{
|
443
|
+
type: 'Group',
|
444
|
+
label: t('groups.identity'),
|
445
|
+
children: [
|
446
|
+
{
|
447
|
+
label: (
|
448
|
+
<Link
|
449
|
+
to={`https://www.arcblock.io/content/collections/${locale}/did`}
|
450
|
+
target="_blank"
|
451
|
+
rel="noreferrer noopener">
|
452
|
+
DID
|
453
|
+
</Link>
|
454
|
+
),
|
455
|
+
description: t('products.did.description'),
|
456
|
+
icon: <DidSvg />,
|
457
|
+
},
|
458
|
+
{
|
459
|
+
label: (
|
460
|
+
<Link to={`https://www.didwallet.io/${locale}`} target="_blank" rel="noreferrer noopener">
|
461
|
+
DID Wallet
|
462
|
+
</Link>
|
463
|
+
),
|
464
|
+
description: t('products.didWallet.description'),
|
465
|
+
icon: <DidWalletSvg />,
|
466
|
+
},
|
467
|
+
{
|
468
|
+
label: (
|
469
|
+
<Link to={`https://www.didnames.io/${locale}`} target="_blank" rel="noreferrer noopener">
|
470
|
+
DID Names
|
471
|
+
</Link>
|
472
|
+
),
|
473
|
+
description: t('products.didNameService.description'),
|
474
|
+
icon: <DidNameServiceSvg />,
|
475
|
+
},
|
476
|
+
{
|
477
|
+
label: (
|
478
|
+
<Link
|
479
|
+
to={`https://www.arcblock.io/content/collections/${locale}/verifiable-credential`}
|
480
|
+
target="_blank"
|
481
|
+
rel="noreferrer noopener">
|
482
|
+
VC
|
483
|
+
</Link>
|
484
|
+
),
|
485
|
+
description: t('products.vc.description'),
|
486
|
+
icon: <VCSvg />,
|
487
|
+
},
|
488
|
+
{
|
489
|
+
label: (
|
490
|
+
<Link to={`https://www.didconnect.io/${locale}`} target="_blank" rel="noreferrer noopener">
|
491
|
+
DID Connect
|
492
|
+
</Link>
|
493
|
+
),
|
494
|
+
description: t('products.didConnect.description'),
|
495
|
+
icon: <DidConnectSvg />,
|
496
|
+
},
|
497
|
+
],
|
498
|
+
},
|
499
|
+
];
|
500
|
+
}
|
501
|
+
|
502
|
+
if (type === 'AIGNE') {
|
503
|
+
return [
|
504
|
+
{
|
505
|
+
type: 'Group',
|
506
|
+
label: t('groups.applications'),
|
507
|
+
children: [
|
508
|
+
{
|
509
|
+
label: (
|
510
|
+
<Link to={`https://www.arcsphere.io/${locale}`} target="_blank" rel="noreferrer noopener">
|
511
|
+
ArcSphere
|
512
|
+
</Link>
|
513
|
+
),
|
514
|
+
description: t('products.arcsphere.description'),
|
515
|
+
icon: <ArcSphereSvg />,
|
516
|
+
},
|
517
|
+
{
|
518
|
+
label: (
|
519
|
+
<Link to={`https://www.aistro.io/${locale}`} target="_blank" rel="noreferrer noopener">
|
520
|
+
Aistro
|
521
|
+
</Link>
|
522
|
+
),
|
523
|
+
description: t('products.aistro.description'),
|
524
|
+
icon: <img src={AistroPng} alt="Aistro" />,
|
525
|
+
},
|
526
|
+
{
|
527
|
+
label: (
|
528
|
+
<Link to="https://www.aigne.io/doc-smith" target="_blank" rel="noreferrer noopener">
|
529
|
+
AIGNE CodeSmith
|
530
|
+
</Link>
|
531
|
+
),
|
532
|
+
description: t('products.aigneCodeSmith.description'),
|
533
|
+
icon: <AigneIcon color="#56a596" backgroundColor="#e9fcf6" />,
|
534
|
+
},
|
535
|
+
{
|
536
|
+
label: (
|
537
|
+
<Link to="https://www.aigne.io/code-smith" target="_blank" rel="noreferrer noopener">
|
538
|
+
AIGNE DocSmith
|
539
|
+
</Link>
|
540
|
+
),
|
541
|
+
description: t('products.aigneDocSmith.description'),
|
542
|
+
icon: <AigneIcon color="#e46f38" backgroundColor="#f7e0d7" />,
|
543
|
+
},
|
544
|
+
{
|
545
|
+
label: (
|
546
|
+
<Link to="https://www.aigne.io/web-smith" target="_blank" rel="noreferrer noopener">
|
547
|
+
AIGNE WebSmith
|
548
|
+
</Link>
|
549
|
+
),
|
550
|
+
description: t('products.aigneWebSmith.description'),
|
551
|
+
icon: <AigneIcon color="#7c45eb" backgroundColor="#f0e9ff" />,
|
552
|
+
},
|
553
|
+
],
|
554
|
+
},
|
555
|
+
{
|
556
|
+
type: 'Group',
|
557
|
+
label: t('groups.frameworkTools'),
|
558
|
+
children: [
|
559
|
+
{
|
560
|
+
label: (
|
561
|
+
<Link to="https://www.aigne.io/cli" target="_blank" rel="noreferrer noopener">
|
562
|
+
AIGNE CLI
|
563
|
+
</Link>
|
564
|
+
),
|
565
|
+
description: t('products.aigneCLI.description'),
|
566
|
+
icon: <AigneIcon color="#d05d4e" backgroundColor="#faeaea" />,
|
567
|
+
},
|
568
|
+
{
|
569
|
+
label: (
|
570
|
+
<Link to="https://www.aigne.io/observability" target="_blank" rel="noreferrer noopener">
|
571
|
+
AIGNE Observability
|
572
|
+
</Link>
|
573
|
+
),
|
574
|
+
description: t('products.aigneObservability.description'),
|
575
|
+
icon: <AigneIcon color="#6ba456" backgroundColor="#edfae8" />,
|
576
|
+
},
|
577
|
+
{
|
578
|
+
label: (
|
579
|
+
<Link to="https://www.aigne.io/studio" target="_blank" rel="noreferrer noopener">
|
580
|
+
AIGNE Studio
|
581
|
+
</Link>
|
582
|
+
),
|
583
|
+
description: t('products.aigneStudio.description'),
|
584
|
+
icon: <AigneIcon color="#676cbf" backgroundColor="#edeeff" />,
|
585
|
+
},
|
586
|
+
{
|
587
|
+
label: (
|
588
|
+
<Link to="https://www.aigne.io/framework" target="_blank" rel="noreferrer noopener">
|
589
|
+
AIGNE Framework
|
590
|
+
</Link>
|
591
|
+
),
|
592
|
+
description: t('products.aigneFramework.description'),
|
593
|
+
icon: <AigneIcon color="#5086d0" backgroundColor="#eef4ff" />,
|
594
|
+
},
|
595
|
+
],
|
596
|
+
},
|
597
|
+
{
|
598
|
+
type: 'Group',
|
599
|
+
label: t('groups.modelsAdapters'),
|
600
|
+
children: [
|
601
|
+
{
|
602
|
+
label: (
|
603
|
+
<Link to="https://www.aigne.io/hub" target="_blank" rel="noreferrer noopener">
|
604
|
+
AIGNE Hub
|
605
|
+
</Link>
|
606
|
+
),
|
607
|
+
description: t('products.aigneHub.description'),
|
608
|
+
icon: <AigneIcon color="#e4930b" backgroundColor="#fbf4d4" />,
|
609
|
+
},
|
610
|
+
],
|
611
|
+
},
|
612
|
+
];
|
613
|
+
}
|
614
|
+
|
615
|
+
return [];
|
434
616
|
}, [t, locale, palette]);
|
435
617
|
|
436
618
|
return (
|