@arcblock/ux 2.13.60 → 2.13.62

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.
@@ -8,7 +8,7 @@ export type CurrentAppInfo = {
8
8
  appName: string;
9
9
  appUrl: string;
10
10
  };
11
- export default function AuthApps({ requestAppInfo, currentAppInfo, }: {
11
+ export default function AuthAppsInfo({ requestAppInfo, currentAppInfo, }: {
12
12
  requestAppInfo: RequestAppInfo;
13
13
  currentAppInfo: CurrentAppInfo;
14
14
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Typography } from '@mui/material';
3
3
  import Img from '../../Img';
4
- export default function AuthApps({
4
+ export default function AuthAppsInfo({
5
5
  requestAppInfo,
6
6
  currentAppInfo
7
7
  }) {
@@ -1,9 +1,10 @@
1
+ import { BoxProps } from '@mui/material';
1
2
  import type { UserPublicInfo } from '@blocklet/js-sdk';
2
3
  import { type RequestAppInfo, type CurrentAppInfo } from './auth-apps-info';
3
4
  /**
4
5
  * @example app/connect-to-did-space?appPid=zNKp8tdZUanWKnvhwZWvF2hKRutwM9ykLaY8&appDid=zNKp8tdZUanWKnvhwZWvF2hKRutwM9ykLaY8&appName=233&appDescription=456&appUrl=https://bbqaw5mgxc6fnihrwqcejcxvukkdgkk4anwxwk5msvm.did.abtnet.io/zh
5
6
  */
6
- export default function AuthApps({ session, requestAppInfo, currentAppInfo, children, userInfo, hideSwitchConnect, hideAuthorize, hideCancel, notThisText, authorizeText, connectText, cancelText, useAnotherText, onConnect, onAuthorize, onSwitchConnect, onCancel, }: {
7
+ export default function AuthApps({ session, requestAppInfo, currentAppInfo, children, userInfo, hideSwitchConnect, hideAuthorize, hideCancel, notThisText, authorizeText, connectText, cancelText, useAnotherText, slotProps, onConnect, onAuthorize, onSwitchConnect, onCancel, }: {
7
8
  session: any;
8
9
  requestAppInfo: RequestAppInfo;
9
10
  currentAppInfo: CurrentAppInfo;
@@ -17,6 +18,11 @@ export default function AuthApps({ session, requestAppInfo, currentAppInfo, chil
17
18
  connectText?: string;
18
19
  cancelText?: string;
19
20
  useAnotherText?: string;
21
+ slotProps?: {
22
+ root?: BoxProps;
23
+ didConnectContainer?: object;
24
+ contentContainer?: BoxProps;
25
+ };
20
26
  onConnect?: (done: () => void) => void;
21
27
  onAuthorize?: (done: () => void) => void;
22
28
  onSwitchConnect?: (done: () => void) => void;
@@ -10,6 +10,7 @@ import { translate } from '../../Locale/util';
10
10
  import { useLocaleContext } from '../../Locale/context';
11
11
  import UserCard from '../../UserCard';
12
12
  import { CardType, InfoType } from '../../UserCard/types';
13
+ import { mergeSx } from '../../Util/style';
13
14
  const translations = {
14
15
  en: {
15
16
  notThis: 'Not this?',
@@ -44,6 +45,7 @@ export default function AuthApps({
44
45
  connectText,
45
46
  cancelText,
46
47
  useAnotherText,
48
+ slotProps,
47
49
  onConnect = noop,
48
50
  onAuthorize = noop,
49
51
  onSwitchConnect = noop,
@@ -84,14 +86,17 @@ export default function AuthApps({
84
86
  did: window.blocklet?.appPid,
85
87
  standalone: true,
86
88
  children: /*#__PURE__*/_jsx(Box, {
87
- sx: {
89
+ ...slotProps?.root,
90
+ sx: mergeSx({
88
91
  width: 420,
89
92
  maxWidth: '100%'
90
- },
93
+ }, slotProps?.root?.sx),
91
94
  children: /*#__PURE__*/_jsx(DIDConnectContainer, {
92
95
  hideCloseButton: true,
96
+ ...slotProps?.didConnectContainer,
93
97
  children: /*#__PURE__*/_jsxs(Box, {
94
- sx: {
98
+ ...slotProps?.contentContainer,
99
+ sx: mergeSx({
95
100
  display: 'flex',
96
101
  flexDirection: 'column',
97
102
  gap: 1.5,
@@ -105,7 +110,7 @@ export default function AuthApps({
105
110
  xl: 4
106
111
  },
107
112
  bgcolor: 'background.paper'
108
- },
113
+ }, slotProps?.contentContainer?.sx),
109
114
  children: [/*#__PURE__*/_jsx(AuthAppsInfo, {
110
115
  requestAppInfo: requestAppInfo,
111
116
  currentAppInfo: currentAppInfo
@@ -1535,7 +1535,7 @@ export default function Products({
1535
1535
  return [{
1536
1536
  type: 'Group',
1537
1537
  label: t('groups.applications'),
1538
- children: [[{
1538
+ children: [{
1539
1539
  label: /*#__PURE__*/_jsx(Link, {
1540
1540
  to: `https://www.nftstudio.rocks/${locale}`,
1541
1541
  target: "_blank",
@@ -1553,7 +1553,16 @@ export default function Products({
1553
1553
  }),
1554
1554
  description: t('products.creatorStudio.description'),
1555
1555
  icon: /*#__PURE__*/_jsx(CreatorStudioSvg, {})
1556
- }], [{
1556
+ }, {
1557
+ label: /*#__PURE__*/_jsx(Link, {
1558
+ to: `https://www.aistro.io/${locale}`,
1559
+ target: "_blank",
1560
+ rel: "noreferrer noopener",
1561
+ children: "Aistro"
1562
+ }),
1563
+ description: t('products.aistro.description'),
1564
+ icon: /*#__PURE__*/_jsx(AistroSvg, {})
1565
+ }, {
1557
1566
  label: /*#__PURE__*/_jsx(Link, {
1558
1567
  to: "https://www.aigne.io/",
1559
1568
  target: "_blank",
@@ -1575,20 +1584,11 @@ export default function Products({
1575
1584
  }),
1576
1585
  description: t('products.arcsphere.description'),
1577
1586
  icon: /*#__PURE__*/_jsx(ArcSphereSvg, {})
1578
- }, {
1579
- label: /*#__PURE__*/_jsx(Link, {
1580
- to: `https://www.aistro.io/${locale}`,
1581
- target: "_blank",
1582
- rel: "noreferrer noopener",
1583
- children: "Aistro"
1584
- }),
1585
- description: t('products.aistro.description'),
1586
- icon: /*#__PURE__*/_jsx(AistroSvg, {})
1587
- }]]
1587
+ }]
1588
1588
  }, {
1589
1589
  type: 'Group',
1590
1590
  label: t('groups.components'),
1591
- children: [[{
1591
+ children: [{
1592
1592
  label: /*#__PURE__*/_jsx(Link, {
1593
1593
  to: `https://launcher.arcblock.io/${locale}`,
1594
1594
  target: "_blank",
@@ -1618,7 +1618,7 @@ export default function Products({
1618
1618
  src: PaymentKitPng,
1619
1619
  alt: "Payment Kit"
1620
1620
  })
1621
- }], [{
1621
+ }, {
1622
1622
  label: /*#__PURE__*/_jsx(Link, {
1623
1623
  to: `https://store.blocklet.dev/?locale=${locale}`,
1624
1624
  target: "_blank",
@@ -1636,11 +1636,11 @@ export default function Products({
1636
1636
  }),
1637
1637
  description: t('products.web3Kit.description'),
1638
1638
  icon: /*#__PURE__*/_jsx(Web3KitSvg, {})
1639
- }]]
1639
+ }]
1640
1640
  }, {
1641
1641
  type: 'Group',
1642
1642
  label: t('groups.computeStorage'),
1643
- children: [[{
1643
+ children: [{
1644
1644
  label: /*#__PURE__*/_jsx(Link, {
1645
1645
  to: `https://www.arcblock.io/content/collections/${locale}/blocklet`,
1646
1646
  target: "_blank",
@@ -1667,7 +1667,7 @@ export default function Products({
1667
1667
  }),
1668
1668
  description: t('products.abtNetwork.description'),
1669
1669
  icon: /*#__PURE__*/_jsx(AbtNetworkSvg, {})
1670
- }], [{
1670
+ }, {
1671
1671
  label: /*#__PURE__*/_jsx(Link, {
1672
1672
  to: `https://www.blocklet.io/${locale}/blocklet-server`,
1673
1673
  target: "_blank",
@@ -1685,11 +1685,11 @@ export default function Products({
1685
1685
  }),
1686
1686
  description: t('products.ocap.description'),
1687
1687
  icon: /*#__PURE__*/_jsx(OCAPSvg, {})
1688
- }]]
1688
+ }]
1689
1689
  }, {
1690
1690
  type: 'Group',
1691
1691
  label: t('groups.identity'),
1692
- children: [[{
1692
+ children: [{
1693
1693
  label: /*#__PURE__*/_jsx(Link, {
1694
1694
  to: `https://www.arcblock.io/content/collections/${locale}/did`,
1695
1695
  target: "_blank",
@@ -1716,7 +1716,7 @@ export default function Products({
1716
1716
  }),
1717
1717
  description: t('products.didNameService.description'),
1718
1718
  icon: /*#__PURE__*/_jsx(DidNameServiceSvg, {})
1719
- }], [{
1719
+ }, {
1720
1720
  label: /*#__PURE__*/_jsx(Link, {
1721
1721
  to: `https://www.arcblock.io/content/collections/${locale}/verifiable-credential`,
1722
1722
  target: "_blank",
@@ -1734,7 +1734,7 @@ export default function Products({
1734
1734
  }),
1735
1735
  description: t('products.didConnect.description'),
1736
1736
  icon: /*#__PURE__*/_jsx(DidConnectSvg, {})
1737
- }]]
1737
+ }]
1738
1738
  }];
1739
1739
  }, [t, locale, palette]);
1740
1740
  return /*#__PURE__*/_jsx(Wrapper, {
@@ -1743,11 +1743,11 @@ export default function Products({
1743
1743
  ...rest,
1744
1744
  children: groups.map(group => /*#__PURE__*/_jsx(SubItemGroup, {
1745
1745
  label: group.label,
1746
- children: group.children.map((rows, i) => /*#__PURE__*/_jsx(Grid, {
1746
+ children: /*#__PURE__*/_jsx(Grid, {
1747
1747
  container: true,
1748
1748
  columnSpacing: 1,
1749
1749
  rowSpacing: 1,
1750
- children: rows.map((item, j) => /*#__PURE__*/_jsx(Grid, {
1750
+ children: group.children.map(item => /*#__PURE__*/_jsx(Grid, {
1751
1751
  item: true,
1752
1752
  xs: 12,
1753
1753
  md: 6,
@@ -1759,8 +1759,8 @@ export default function Products({
1759
1759
  },
1760
1760
  ...item
1761
1761
  })
1762
- }, j))
1763
- }, i))
1762
+ }, item.description))
1763
+ })
1764
1764
  }, group.label))
1765
1765
  });
1766
1766
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcblock/ux",
3
- "version": "2.13.60",
3
+ "version": "2.13.62",
4
4
  "description": "Common used react components for arcblock products",
5
5
  "keywords": [
6
6
  "react",
@@ -71,14 +71,14 @@
71
71
  "react": ">=18.2.0",
72
72
  "react-router-dom": ">=6.22.3"
73
73
  },
74
- "gitHead": "76eb26b12d8ccc1190e5fce847372babca7515c5",
74
+ "gitHead": "36a4594299167a1bff28fc11cb590e552576f687",
75
75
  "dependencies": {
76
76
  "@arcblock/did-motif": "^1.1.13",
77
- "@arcblock/icons": "^2.13.60",
78
- "@arcblock/nft-display": "^2.13.60",
79
- "@arcblock/react-hooks": "^2.13.60",
77
+ "@arcblock/icons": "^2.13.62",
78
+ "@arcblock/nft-display": "^2.13.62",
79
+ "@arcblock/react-hooks": "^2.13.62",
80
80
  "@babel/plugin-syntax-dynamic-import": "^7.8.3",
81
- "@blocklet/theme": "^2.13.60",
81
+ "@blocklet/theme": "^2.13.62",
82
82
  "@fontsource/roboto": "~5.1.1",
83
83
  "@fontsource/ubuntu-mono": "^5.0.18",
84
84
  "@iconify-icons/logos": "^1.2.36",
@@ -13,7 +13,7 @@ export type CurrentAppInfo = {
13
13
  appUrl: string;
14
14
  };
15
15
 
16
- export default function AuthApps({
16
+ export default function AuthAppsInfo({
17
17
  requestAppInfo,
18
18
  currentAppInfo,
19
19
  }: {
@@ -1,4 +1,4 @@
1
- import { Box, Button, CircularProgress, Link, Stack, Typography } from '@mui/material';
1
+ import { Box, BoxProps, Button, CircularProgress, Link, Stack, SxProps, Typography } from '@mui/material';
2
2
  import { useMemoizedFn, useReactive } from 'ahooks';
3
3
  import noop from 'lodash/noop';
4
4
  import type { UserPublicInfo } from '@blocklet/js-sdk';
@@ -11,6 +11,7 @@ import { translate } from '../../Locale/util';
11
11
  import { useLocaleContext } from '../../Locale/context';
12
12
  import UserCard from '../../UserCard';
13
13
  import { CardType, InfoType } from '../../UserCard/types';
14
+ import { mergeSx } from '../../Util/style';
14
15
 
15
16
  const translations = {
16
17
  en: {
@@ -49,6 +50,8 @@ export default function AuthApps({
49
50
  cancelText,
50
51
  useAnotherText,
51
52
 
53
+ slotProps,
54
+
52
55
  onConnect = noop,
53
56
  onAuthorize = noop,
54
57
  onSwitchConnect = noop,
@@ -70,6 +73,12 @@ export default function AuthApps({
70
73
  cancelText?: string;
71
74
  useAnotherText?: string;
72
75
 
76
+ slotProps?: {
77
+ root?: BoxProps;
78
+ didConnectContainer?: object;
79
+ contentContainer?: BoxProps;
80
+ };
81
+
73
82
  onConnect?: (done: () => void) => void;
74
83
  onAuthorize?: (done: () => void) => void;
75
84
  onSwitchConnect?: (done: () => void) => void;
@@ -114,27 +123,35 @@ export default function AuthApps({
114
123
  return (
115
124
  <LandingPage did={window.blocklet?.appPid} standalone>
116
125
  <Box
117
- sx={{
118
- width: 420,
119
- maxWidth: '100%',
120
- }}>
121
- <DIDConnectContainer hideCloseButton>
126
+ {...slotProps?.root}
127
+ sx={mergeSx(
128
+ {
129
+ width: 420,
130
+ maxWidth: '100%',
131
+ },
132
+ slotProps?.root?.sx as SxProps
133
+ )}>
134
+ <DIDConnectContainer hideCloseButton {...slotProps?.didConnectContainer}>
122
135
  <Box
123
- sx={{
124
- display: 'flex',
125
- flexDirection: 'column',
126
- gap: 1.5,
127
- p: {
128
- xs: 2,
129
- lg: 3,
130
- xl: 4,
131
- },
132
- pt: {
133
- xs: 3,
134
- xl: 4,
136
+ {...slotProps?.contentContainer}
137
+ sx={mergeSx(
138
+ {
139
+ display: 'flex',
140
+ flexDirection: 'column',
141
+ gap: 1.5,
142
+ p: {
143
+ xs: 2,
144
+ lg: 3,
145
+ xl: 4,
146
+ },
147
+ pt: {
148
+ xs: 3,
149
+ xl: 4,
150
+ },
151
+ bgcolor: 'background.paper',
135
152
  },
136
- bgcolor: 'background.paper',
137
- }}>
153
+ slotProps?.contentContainer?.sx as SxProps
154
+ )}>
138
155
  <AuthAppsInfo requestAppInfo={requestAppInfo} currentAppInfo={currentAppInfo} />
139
156
 
140
157
  {user ? (
@@ -213,238 +213,219 @@ export default function Products({ className, isOpen, ...rest }: ProductsProps)
213
213
  type: 'Group',
214
214
  label: t('groups.applications'),
215
215
  children: [
216
- [
217
- {
218
- label: (
219
- <Link to={`https://www.nftstudio.rocks/${locale}`} target="_blank" rel="noreferrer noopener">
220
- NFT Studio
221
- </Link>
222
- ),
223
- description: t('products.nftStudio.description'),
224
- icon: <NftStudioSvg />,
225
- },
226
- {
227
- label: (
228
- <Link
229
- to={`https://www.arcblock.io/content/collections/${locale}/creator-studio`}
230
- target="_blank"
231
- rel="noreferrer noopener">
232
- Creator Studio
233
- </Link>
234
- ),
235
- description: t('products.creatorStudio.description'),
236
- icon: <CreatorStudioSvg />,
237
- },
238
- ],
239
- [
240
- {
241
- label: (
242
- <Link to="https://www.aigne.io/" target="_blank" rel="noreferrer noopener">
243
- AIGNE
244
- </Link>
245
- ),
246
- description: t('products.aigne.description'),
247
- icon: <AigneSvg style={{ filter: palette.mode === 'dark' ? 'invert(1)' : 'none' }} />,
248
- },
249
- {
250
- label: (
251
- <Link to={`https://www.arcsphere.io/${locale}`} target="_blank" rel="noreferrer noopener">
252
- ArcSphere
253
- </Link>
254
- ),
255
- description: t('products.arcsphere.description'),
256
- icon: <ArcSphereSvg />,
257
- },
258
- {
259
- label: (
260
- <Link to={`https://www.aistro.io/${locale}`} target="_blank" rel="noreferrer noopener">
261
- Aistro
262
- </Link>
263
- ),
264
- description: t('products.aistro.description'),
265
- icon: <AistroSvg />,
266
- },
267
- ],
216
+ {
217
+ label: (
218
+ <Link to={`https://www.nftstudio.rocks/${locale}`} target="_blank" rel="noreferrer noopener">
219
+ NFT Studio
220
+ </Link>
221
+ ),
222
+ description: t('products.nftStudio.description'),
223
+ icon: <NftStudioSvg />,
224
+ },
225
+ {
226
+ label: (
227
+ <Link
228
+ to={`https://www.arcblock.io/content/collections/${locale}/creator-studio`}
229
+ target="_blank"
230
+ rel="noreferrer noopener">
231
+ Creator Studio
232
+ </Link>
233
+ ),
234
+ description: t('products.creatorStudio.description'),
235
+ icon: <CreatorStudioSvg />,
236
+ },
237
+ {
238
+ label: (
239
+ <Link to={`https://www.aistro.io/${locale}`} target="_blank" rel="noreferrer noopener">
240
+ Aistro
241
+ </Link>
242
+ ),
243
+ description: t('products.aistro.description'),
244
+ icon: <AistroSvg />,
245
+ },
246
+ {
247
+ label: (
248
+ <Link to="https://www.aigne.io/" target="_blank" rel="noreferrer noopener">
249
+ AIGNE
250
+ </Link>
251
+ ),
252
+ description: t('products.aigne.description'),
253
+ icon: <AigneSvg style={{ filter: palette.mode === 'dark' ? 'invert(1)' : 'none' }} />,
254
+ },
255
+ {
256
+ label: (
257
+ <Link to={`https://www.arcsphere.io/${locale}`} target="_blank" rel="noreferrer noopener">
258
+ ArcSphere
259
+ </Link>
260
+ ),
261
+ description: t('products.arcsphere.description'),
262
+ icon: <ArcSphereSvg />,
263
+ },
268
264
  ],
269
265
  },
270
266
  {
271
267
  type: 'Group',
272
268
  label: t('groups.components'),
273
269
  children: [
274
- [
275
- {
276
- label: (
277
- <Link to={`https://launcher.arcblock.io/${locale}`} target="_blank" rel="noreferrer noopener">
278
- Blocklet Launcher
279
- </Link>
280
- ),
281
- description: t('products.blockletLauncher.description'),
282
- icon: <BlockletLauncherSvg />,
283
- },
284
- {
285
- label: (
286
- <Link to={`https://www.aikit.rocks/${locale}`} target="_blank" rel="noreferrer noopener">
287
- AI Kit
288
- </Link>
289
- ),
290
- description: t('products.aiKit.description'),
291
- icon: <AIKitSvg />,
292
- },
293
- {
294
- label: (
295
- <Link to={`https://www.blocklet.io/${locale}/payment-kit`} target="_blank" rel="noreferrer noopener">
296
- Payment Kit
297
- </Link>
298
- ),
299
- description: t('products.paymentKit.description'),
300
- icon: <img src={PaymentKitPng} alt="Payment Kit" />,
301
- },
302
- ],
303
- [
304
- {
305
- label: (
306
- <Link to={`https://store.blocklet.dev/?locale=${locale}`} target="_blank" rel="noreferrer noopener">
307
- Blocklet Store
308
- </Link>
309
- ),
310
- description: t('products.blockletStore.description'),
311
- icon: <BlockletStoreSvg />,
312
- },
313
- {
314
- label: (
315
- <Link to={`https://www.web3kit.rocks/${locale}`} target="_blank" rel="noreferrer noopener">
316
- Web3 Kit
317
- </Link>
318
- ),
319
- description: t('products.web3Kit.description'),
320
- icon: <Web3KitSvg />,
321
- },
322
- ],
270
+ {
271
+ label: (
272
+ <Link to={`https://launcher.arcblock.io/${locale}`} target="_blank" rel="noreferrer noopener">
273
+ Blocklet Launcher
274
+ </Link>
275
+ ),
276
+ description: t('products.blockletLauncher.description'),
277
+ icon: <BlockletLauncherSvg />,
278
+ },
279
+ {
280
+ label: (
281
+ <Link to={`https://www.aikit.rocks/${locale}`} target="_blank" rel="noreferrer noopener">
282
+ AI Kit
283
+ </Link>
284
+ ),
285
+ description: t('products.aiKit.description'),
286
+ icon: <AIKitSvg />,
287
+ },
288
+ {
289
+ label: (
290
+ <Link to={`https://www.blocklet.io/${locale}/payment-kit`} target="_blank" rel="noreferrer noopener">
291
+ Payment Kit
292
+ </Link>
293
+ ),
294
+ description: t('products.paymentKit.description'),
295
+ icon: <img src={PaymentKitPng} alt="Payment Kit" />,
296
+ },
297
+ {
298
+ label: (
299
+ <Link to={`https://store.blocklet.dev/?locale=${locale}`} target="_blank" rel="noreferrer noopener">
300
+ Blocklet Store
301
+ </Link>
302
+ ),
303
+ description: t('products.blockletStore.description'),
304
+ icon: <BlockletStoreSvg />,
305
+ },
306
+ {
307
+ label: (
308
+ <Link to={`https://www.web3kit.rocks/${locale}`} target="_blank" rel="noreferrer noopener">
309
+ Web3 Kit
310
+ </Link>
311
+ ),
312
+ description: t('products.web3Kit.description'),
313
+ icon: <Web3KitSvg />,
314
+ },
323
315
  ],
324
316
  },
325
317
  {
326
318
  type: 'Group',
327
319
  label: t('groups.computeStorage'),
328
320
  children: [
329
- [
330
- {
331
- label: (
332
- <Link
333
- to={`https://www.arcblock.io/content/collections/${locale}/blocklet`}
334
- target="_blank"
335
- rel="noreferrer noopener">
336
- Blocklet Framework
337
- </Link>
338
- ),
339
- description: t('products.blockletFramework.description'),
340
- icon: <BlockletFrameworkSvg />,
341
- },
342
- {
343
- label: (
344
- <Link to={`https://www.didspaces.com/${locale}`} target="_blank" rel="noreferrer noopener">
345
- DID Spaces
346
- </Link>
347
- ),
348
- description: t('products.didSpaces.description'),
349
- icon: <DidSvg />,
350
- },
351
- {
352
- label: (
353
- <Link to="https://main.abtnetwork.io/" target="_blank" rel="noreferrer noopener">
354
- ABT Network
355
- </Link>
356
- ),
357
- description: t('products.abtNetwork.description'),
358
- icon: <AbtNetworkSvg />,
359
- },
360
- ],
361
- [
362
- {
363
- label: (
364
- <Link
365
- to={`https://www.blocklet.io/${locale}/blocklet-server`}
366
- target="_blank"
367
- rel="noreferrer noopener">
368
- Blocklet Server
369
- </Link>
370
- ),
371
- description: t('products.blockletServer.description'),
372
- icon: <BlockletServerSvg />,
373
- },
374
- {
375
- label: (
376
- <Link
377
- to={`https://www.arcblock.io/content/collections/${locale}/ocap`}
378
- target="_blank"
379
- rel="noreferrer noopener">
380
- ОСАР
381
- </Link>
382
- ),
383
- description: t('products.ocap.description'),
384
- icon: <OCAPSvg />,
385
- },
386
- ],
321
+ {
322
+ label: (
323
+ <Link
324
+ to={`https://www.arcblock.io/content/collections/${locale}/blocklet`}
325
+ target="_blank"
326
+ rel="noreferrer noopener">
327
+ Blocklet Framework
328
+ </Link>
329
+ ),
330
+ description: t('products.blockletFramework.description'),
331
+ icon: <BlockletFrameworkSvg />,
332
+ },
333
+ {
334
+ label: (
335
+ <Link to={`https://www.didspaces.com/${locale}`} target="_blank" rel="noreferrer noopener">
336
+ DID Spaces
337
+ </Link>
338
+ ),
339
+ description: t('products.didSpaces.description'),
340
+ icon: <DidSvg />,
341
+ },
342
+ {
343
+ label: (
344
+ <Link to="https://main.abtnetwork.io/" target="_blank" rel="noreferrer noopener">
345
+ ABT Network
346
+ </Link>
347
+ ),
348
+ description: t('products.abtNetwork.description'),
349
+ icon: <AbtNetworkSvg />,
350
+ },
351
+ {
352
+ label: (
353
+ <Link to={`https://www.blocklet.io/${locale}/blocklet-server`} target="_blank" rel="noreferrer noopener">
354
+ Blocklet Server
355
+ </Link>
356
+ ),
357
+ description: t('products.blockletServer.description'),
358
+ icon: <BlockletServerSvg />,
359
+ },
360
+ {
361
+ label: (
362
+ <Link
363
+ to={`https://www.arcblock.io/content/collections/${locale}/ocap`}
364
+ target="_blank"
365
+ rel="noreferrer noopener">
366
+ ОСАР
367
+ </Link>
368
+ ),
369
+ description: t('products.ocap.description'),
370
+ icon: <OCAPSvg />,
371
+ },
387
372
  ],
388
373
  },
389
374
  {
390
375
  type: 'Group',
391
376
  label: t('groups.identity'),
392
377
  children: [
393
- [
394
- {
395
- label: (
396
- <Link
397
- to={`https://www.arcblock.io/content/collections/${locale}/did`}
398
- target="_blank"
399
- rel="noreferrer noopener">
400
- DID
401
- </Link>
402
- ),
403
- description: t('products.did.description'),
404
- icon: <DidSvg />,
405
- },
406
- {
407
- label: (
408
- <Link to={`https://www.didwallet.io/${locale}`} target="_blank" rel="noreferrer noopener">
409
- DID Wallet
410
- </Link>
411
- ),
412
- description: t('products.didWallet.description'),
413
- icon: <DidWalletSvg />,
414
- },
415
- {
416
- label: (
417
- <Link to={`https://www.didnames.io/${locale}`} target="_blank" rel="noreferrer noopener">
418
- DID Names
419
- </Link>
420
- ),
421
- description: t('products.didNameService.description'),
422
- icon: <DidNameServiceSvg />,
423
- },
424
- ],
425
- [
426
- {
427
- label: (
428
- <Link
429
- to={`https://www.arcblock.io/content/collections/${locale}/verifiable-credential`}
430
- target="_blank"
431
- rel="noreferrer noopener">
432
- VC
433
- </Link>
434
- ),
435
- description: t('products.vc.description'),
436
- icon: <VCSvg />,
437
- },
438
- {
439
- label: (
440
- <Link to={`https://www.didconnect.io/${locale}`} target="_blank" rel="noreferrer noopener">
441
- DID Connect
442
- </Link>
443
- ),
444
- description: t('products.didConnect.description'),
445
- icon: <DidConnectSvg />,
446
- },
447
- ],
378
+ {
379
+ label: (
380
+ <Link
381
+ to={`https://www.arcblock.io/content/collections/${locale}/did`}
382
+ target="_blank"
383
+ rel="noreferrer noopener">
384
+ DID
385
+ </Link>
386
+ ),
387
+ description: t('products.did.description'),
388
+ icon: <DidSvg />,
389
+ },
390
+ {
391
+ label: (
392
+ <Link to={`https://www.didwallet.io/${locale}`} target="_blank" rel="noreferrer noopener">
393
+ DID Wallet
394
+ </Link>
395
+ ),
396
+ description: t('products.didWallet.description'),
397
+ icon: <DidWalletSvg />,
398
+ },
399
+ {
400
+ label: (
401
+ <Link to={`https://www.didnames.io/${locale}`} target="_blank" rel="noreferrer noopener">
402
+ DID Names
403
+ </Link>
404
+ ),
405
+ description: t('products.didNameService.description'),
406
+ icon: <DidNameServiceSvg />,
407
+ },
408
+ {
409
+ label: (
410
+ <Link
411
+ to={`https://www.arcblock.io/content/collections/${locale}/verifiable-credential`}
412
+ target="_blank"
413
+ rel="noreferrer noopener">
414
+ VC
415
+ </Link>
416
+ ),
417
+ description: t('products.vc.description'),
418
+ icon: <VCSvg />,
419
+ },
420
+ {
421
+ label: (
422
+ <Link to={`https://www.didconnect.io/${locale}`} target="_blank" rel="noreferrer noopener">
423
+ DID Connect
424
+ </Link>
425
+ ),
426
+ description: t('products.didConnect.description'),
427
+ icon: <DidConnectSvg />,
428
+ },
448
429
  ],
449
430
  },
450
431
  ];
@@ -454,15 +435,13 @@ export default function Products({ className, isOpen, ...rest }: ProductsProps)
454
435
  <Wrapper ref={wrapperRef} className={`is-${mode} ${className}`} {...rest}>
455
436
  {groups.map((group) => (
456
437
  <SubItemGroup key={group.label} label={group.label}>
457
- {group.children.map((rows, i) => (
458
- <Grid container key={i} columnSpacing={1} rowSpacing={1}>
459
- {rows.map((item, j) => (
460
- <Grid item xs={12} md={6} lg={4} key={j}>
461
- <Item variant="panel" style={{ padding: '8px' }} {...item} />
462
- </Grid>
463
- ))}
464
- </Grid>
465
- ))}
438
+ <Grid container columnSpacing={1} rowSpacing={1}>
439
+ {group.children.map((item) => (
440
+ <Grid item xs={12} md={6} lg={4} key={item.description}>
441
+ <Item variant="panel" style={{ padding: '8px' }} {...item} />
442
+ </Grid>
443
+ ))}
444
+ </Grid>
466
445
  </SubItemGroup>
467
446
  ))}
468
447
  </Wrapper>