@blocklet/ui-react 2.9.14 → 2.9.16

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.
@@ -0,0 +1,381 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _jsxRuntime = require("react/jsx-runtime");
8
+ var _material = require("@mui/material");
9
+ var _react = require("@iconify/react");
10
+ var _Colors = require("@arcblock/ux/lib/Colors");
11
+ var _Session = require("@arcblock/did-connect/lib/Session");
12
+ var _react2 = require("react");
13
+ var _SessionPermission = _interopRequireDefault(require("@arcblock/ux/lib/SessionPermission"));
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+ var _ahooks = require("ahooks");
16
+ var _util = require("@arcblock/ux/lib/Locale/util");
17
+ var _context = require("@arcblock/ux/lib/Locale/context");
18
+ var _useComponentInstalled = _interopRequireDefault(require("./use-component-installed"));
19
+ var _locales = _interopRequireDefault(require("./locales"));
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+ function ComponentInstaller({
22
+ warnIcon,
23
+ did,
24
+ noPermissionMute,
25
+ onInstalled,
26
+ onError,
27
+ children,
28
+ closeByOutSize,
29
+ onClose,
30
+ fallback,
31
+ roles = ["owner", "admin"]
32
+ }) {
33
+ const {
34
+ locale
35
+ } = (0, _context.useLocaleContext)();
36
+ const t = (0, _ahooks.useMemoizedFn)((key, data = {}) => {
37
+ return (0, _util.translate)(_locales.default, key, locale, "en", data);
38
+ });
39
+ const {
40
+ installed,
41
+ optionalComponent,
42
+ installUrl,
43
+ storeUrl,
44
+ installStatus,
45
+ installStatusDone,
46
+ definedInBlockletYML
47
+ } = (0, _useComponentInstalled.default)({
48
+ did,
49
+ onInstalled,
50
+ onError
51
+ });
52
+ const sessionCtx = (0, _react2.useContext)(_Session.SessionContext);
53
+ const handleInstall = () => {
54
+ window.open(installUrl, "_blank");
55
+ };
56
+ const handleClose = () => {
57
+ onClose?.(false);
58
+ };
59
+ const handleOpenStore = () => {
60
+ window.open(storeUrl, "_blank");
61
+ };
62
+ const handleRefresh = () => {
63
+ window.location.reload();
64
+ };
65
+ const size = 60;
66
+ return /* @__PURE__ */(0, _jsxRuntime.jsx)(_SessionPermission.default, {
67
+ session: sessionCtx?.session,
68
+ roles,
69
+ children: ({
70
+ hasPermission
71
+ }) => {
72
+ if (installed) {
73
+ return children;
74
+ }
75
+ if (noPermissionMute && !hasPermission) {
76
+ return fallback || null;
77
+ }
78
+ if (typeof children === "function") {
79
+ return /* @__PURE__ */(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
80
+ children: [fallback, children({
81
+ hasPermission,
82
+ optionalComponent,
83
+ installStatus,
84
+ handleOpenStore,
85
+ handleInstall,
86
+ handleRefresh
87
+ })]
88
+ });
89
+ }
90
+ return /* @__PURE__ */(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
91
+ children: [fallback, /* @__PURE__ */(0, _jsxRuntime.jsx)(_material.ClickAwayListener, {
92
+ onClickAway: e => {
93
+ e.preventDefault();
94
+ e.stopPropagation();
95
+ if (closeByOutSize) {
96
+ handleClose();
97
+ }
98
+ },
99
+ children: /* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Fade, {
100
+ in: true,
101
+ timeout: 350,
102
+ children: /* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Paper, {
103
+ variant: "outlined",
104
+ sx: {
105
+ position: "fixed",
106
+ top: 20,
107
+ right: 20,
108
+ zIndex: 3e3,
109
+ borderRadius: 3,
110
+ width: 400,
111
+ maxWidth: 400,
112
+ borderColor: _Colors.temp.lineStep,
113
+ border: "0 !important",
114
+ fontSize: "14px",
115
+ textAlign: "left",
116
+ boxShadow: `0px 8px 16px 0px ${_Colors.temp.gray6}, 0px 0px 0px 1px ${_Colors.temp.gray6}`
117
+ },
118
+ children: !definedInBlockletYML ? /* @__PURE__ */(0, _jsxRuntime.jsxs)(_material.Box, {
119
+ sx: {
120
+ display: "flex",
121
+ flexDirection: "column"
122
+ },
123
+ children: [/* @__PURE__ */(0, _jsxRuntime.jsxs)(_material.Box, {
124
+ sx: {
125
+ padding: "20px 24px",
126
+ marginLeft: 0,
127
+ display: "flex",
128
+ flexDirection: "row",
129
+ justifyContent: "flex-start"
130
+ },
131
+ children: [warnIcon || /* @__PURE__ */(0, _jsxRuntime.jsx)(_react.Icon, {
132
+ icon: "mdi:warning-box",
133
+ style: {
134
+ color: "yellowgreen",
135
+ fontSize: 24
136
+ }
137
+ }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Box, {
138
+ sx: {
139
+ marginLeft: 1,
140
+ fontSize: "16px",
141
+ fontWeight: "bold"
142
+ },
143
+ children: t("componentInstallerTitle")
144
+ })]
145
+ }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Box, {
146
+ sx: {
147
+ width: "100%",
148
+ height: "1px",
149
+ backgroundColor: _Colors.temp.gray6
150
+ }
151
+ }), /* @__PURE__ */(0, _jsxRuntime.jsxs)(_material.Box, {
152
+ sx: {
153
+ padding: "20px 24px",
154
+ marginTop: 0
155
+ },
156
+ children: [t("componentInstallerNoDefinedInBlockletYML"), ": ", did]
157
+ }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Box, {
158
+ sx: {
159
+ padding: "0px 24px"
160
+ },
161
+ children: onClose ? /* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Button, {
162
+ sx: {
163
+ marginBottom: 2
164
+ },
165
+ variant: "outlined",
166
+ className: "button",
167
+ onClick: handleClose,
168
+ children: t("componentInstallerClose")
169
+ }) : null
170
+ })]
171
+ }) : /* @__PURE__ */(0, _jsxRuntime.jsxs)(_material.Box, {
172
+ sx: {
173
+ display: "flex",
174
+ flexDirection: "column"
175
+ },
176
+ children: [/* @__PURE__ */(0, _jsxRuntime.jsxs)(_material.Box, {
177
+ sx: {
178
+ padding: "20px 24px",
179
+ marginLeft: 0,
180
+ display: "flex",
181
+ flexDirection: "row",
182
+ justifyContent: "flex-start"
183
+ },
184
+ children: [warnIcon || /* @__PURE__ */(0, _jsxRuntime.jsx)(_react.Icon, {
185
+ icon: "mdi:warning-box",
186
+ style: {
187
+ color: "yellowgreen",
188
+ fontSize: 24
189
+ }
190
+ }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Box, {
191
+ sx: {
192
+ marginLeft: 1,
193
+ fontSize: "16px",
194
+ fontWeight: "bold"
195
+ },
196
+ children: t("componentInstallerTitle")
197
+ })]
198
+ }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Box, {
199
+ sx: {
200
+ width: "100%",
201
+ height: "1px",
202
+ backgroundColor: _Colors.temp.gray6
203
+ }
204
+ }), /* @__PURE__ */(0, _jsxRuntime.jsxs)(_material.Box, {
205
+ sx: {
206
+ padding: "20px 24px",
207
+ paddingTop: 0.5,
208
+ marginTop: 2,
209
+ display: "flex",
210
+ flexDirection: "row",
211
+ justifyContent: "start",
212
+ alignItems: "flex-start"
213
+ },
214
+ children: [/* @__PURE__ */(0, _jsxRuntime.jsx)("img", {
215
+ style: {
216
+ width: size,
217
+ height: size,
218
+ minWidth: size,
219
+ minHeight: size
220
+ },
221
+ src: optionalComponent.logoUrl,
222
+ alt: optionalComponent.meta.title
223
+ }), /* @__PURE__ */(0, _jsxRuntime.jsxs)(_material.Box, {
224
+ sx: {
225
+ display: "flex",
226
+ flexDirection: "column",
227
+ justifyContent: "start",
228
+ alignItems: "start",
229
+ marginLeft: 2
230
+ },
231
+ children: [/* @__PURE__ */(0, _jsxRuntime.jsxs)(_material.Box, {
232
+ sx: {
233
+ fontSize: "16px",
234
+ fontWeight: "bold",
235
+ cursor: "pointer",
236
+ ".link-icon": {
237
+ opacity: 0
238
+ },
239
+ ":hover .link-icon": {
240
+ opacity: 1
241
+ }
242
+ },
243
+ onClick: handleOpenStore,
244
+ children: [optionalComponent.meta.title, /* @__PURE__ */(0, _jsxRuntime.jsxs)(_material.Box, {
245
+ sx: {
246
+ paddingLeft: 1,
247
+ fontSize: "13px",
248
+ fontWeight: "400"
249
+ },
250
+ component: "span",
251
+ children: [optionalComponent.meta.version, /* @__PURE__ */(0, _jsxRuntime.jsx)(_react.Icon, {
252
+ className: "link-icon",
253
+ icon: "fluent:open-20-filled",
254
+ style: {
255
+ color: _Colors.temp.primaryBase,
256
+ fontSize: 16,
257
+ transform: "translate(6px, 3px)",
258
+ transition: "all 0.3s"
259
+ }
260
+ })]
261
+ })]
262
+ }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Box, {
263
+ sx: {
264
+ marginTop: 0,
265
+ opacity: 0.7
266
+ },
267
+ children: optionalComponent.meta.description
268
+ }), /* @__PURE__ */(0, _jsxRuntime.jsxs)(_material.Box, {
269
+ sx: {
270
+ display: hasPermission ? "flex" : "none",
271
+ flexDirection: "row",
272
+ gap: 1
273
+ },
274
+ children: [installStatus ? /* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Box, {
275
+ sx: {
276
+ marginTop: 2,
277
+ opacity: 0.7
278
+ },
279
+ children: installStatusDone ? /* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Button, {
280
+ variant: "contained",
281
+ onClick: handleRefresh,
282
+ children: t("componentInstallerRefresh")
283
+ }, "refresh") : /* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Button, {
284
+ disabled: true,
285
+ sx: {
286
+ color: "#333"
287
+ },
288
+ startIcon: /* @__PURE__ */(0, _jsxRuntime.jsx)(_react.Icon, {
289
+ icon: "line-md:loading-loop",
290
+ style: {
291
+ color: "#333",
292
+ fontSize: 16
293
+ }
294
+ }),
295
+ variant: "contained",
296
+ children: installStatus
297
+ }, "status")
298
+ }) : /* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Button, {
299
+ sx: {
300
+ marginTop: 2
301
+ },
302
+ variant: "contained",
303
+ className: "button",
304
+ onClick: handleInstall,
305
+ children: t("componentInstallerInstall")
306
+ }, "install"), onClose ? /* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Button, {
307
+ sx: {
308
+ marginTop: 2
309
+ },
310
+ variant: "outlined",
311
+ className: "button",
312
+ onClick: handleClose,
313
+ children: t("componentInstallerClose")
314
+ }) : null]
315
+ }), installStatusDone ? /* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Box, {
316
+ sx: {
317
+ marginTop: 2,
318
+ opacity: 0.7
319
+ },
320
+ children: t("componentInstallerSuccessInstalled")
321
+ }) : null]
322
+ })]
323
+ }), hasPermission ? null : /* @__PURE__ */(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
324
+ children: [/* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Box, {
325
+ sx: {
326
+ width: "100%",
327
+ height: "1px",
328
+ backgroundColor: _Colors.temp.gray6
329
+ }
330
+ }), /* @__PURE__ */(0, _jsxRuntime.jsxs)(_material.Box, {
331
+ sx: {
332
+ padding: "20px 24px"
333
+ },
334
+ children: [/* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Box, {
335
+ sx: {
336
+ opacity: 1
337
+ },
338
+ children: t("componentInstallerSuggestions")
339
+ }), onClose ? /* @__PURE__ */(0, _jsxRuntime.jsx)(_material.Button, {
340
+ sx: {
341
+ marginTop: 2,
342
+ alignSelf: "flex-start"
343
+ },
344
+ variant: "outlined",
345
+ className: "button",
346
+ onClick: handleClose,
347
+ children: t("componentInstallerClose")
348
+ }) : null]
349
+ })]
350
+ })]
351
+ })
352
+ })
353
+ })
354
+ })]
355
+ });
356
+ }
357
+ });
358
+ }
359
+ ComponentInstaller.propTypes = {
360
+ warnIcon: _propTypes.default.node,
361
+ did: _propTypes.default.string.isRequired,
362
+ noPermissionMute: _propTypes.default.bool,
363
+ onInstalled: _propTypes.default.func,
364
+ onError: _propTypes.default.func,
365
+ children: _propTypes.default.any.isRequired,
366
+ closeByOutSize: _propTypes.default.bool,
367
+ onClose: _propTypes.default.func,
368
+ fallback: _propTypes.default.node,
369
+ roles: _propTypes.default.array
370
+ };
371
+ ComponentInstaller.defaultProps = {
372
+ warnIcon: null,
373
+ noPermissionMute: false,
374
+ onInstalled: null,
375
+ onError: null,
376
+ closeByOutSize: false,
377
+ onClose: null,
378
+ fallback: null,
379
+ roles: ["owner", "admin"]
380
+ };
381
+ module.exports = ComponentInstaller;
@@ -0,0 +1,28 @@
1
+ export default translations;
2
+ declare namespace translations {
3
+ namespace zh {
4
+ let componentInstallerTitle: string;
5
+ let componentInstallerInstall: string;
6
+ let componentInstallerClose: string;
7
+ let componentInstallerRefresh: string;
8
+ let componentInstallerSuccessInstalled: string;
9
+ let componentInstallerSuggestions: string;
10
+ let componentInstallerNoDefinedInBlockletYML: string;
11
+ }
12
+ namespace en {
13
+ let componentInstallerTitle_1: string;
14
+ export { componentInstallerTitle_1 as componentInstallerTitle };
15
+ let componentInstallerInstall_1: string;
16
+ export { componentInstallerInstall_1 as componentInstallerInstall };
17
+ let componentInstallerClose_1: string;
18
+ export { componentInstallerClose_1 as componentInstallerClose };
19
+ let componentInstallerRefresh_1: string;
20
+ export { componentInstallerRefresh_1 as componentInstallerRefresh };
21
+ let componentInstallerSuccessInstalled_1: string;
22
+ export { componentInstallerSuccessInstalled_1 as componentInstallerSuccessInstalled };
23
+ let componentInstallerSuggestions_1: string;
24
+ export { componentInstallerSuggestions_1 as componentInstallerSuggestions };
25
+ let componentInstallerNoDefinedInBlockletYML_1: string;
26
+ export { componentInstallerNoDefinedInBlockletYML_1 as componentInstallerNoDefinedInBlockletYML };
27
+ }
28
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ const translations = {
8
+ zh: {
9
+ componentInstallerTitle: '缺少组件',
10
+ componentInstallerInstall: '安装',
11
+ componentInstallerClose: '关闭',
12
+ componentInstallerRefresh: '重载页面',
13
+ componentInstallerSuccessInstalled: '安装成功,请重载页面查看变化。',
14
+ componentInstallerSuggestions: '请联系系统管理员安装该组件。',
15
+ componentInstallerNoDefinedInBlockletYML: '组件未在 blocklet.yml 中定义'
16
+ },
17
+ en: {
18
+ componentInstallerTitle: 'Missing component',
19
+ componentInstallerInstall: 'Install',
20
+ componentInstallerClose: 'Close',
21
+ componentInstallerRefresh: 'Refresh',
22
+ componentInstallerSuccessInstalled: 'Successfully installed, please refresh the page to see the changes.',
23
+ componentInstallerSuggestions: 'Please contact the system administrator to install the component.',
24
+ componentInstallerNoDefinedInBlockletYML: 'The component is not defined in blocklet.yml'
25
+ }
26
+ };
27
+ module.exports = translations;
@@ -0,0 +1,15 @@
1
+ export default useComponentInstalled;
2
+ declare function useComponentInstalled({ did, onInstalled, onError }: {
3
+ did: any;
4
+ onInstalled: any;
5
+ onError: any;
6
+ }): {
7
+ optionalComponent: any;
8
+ installed: any;
9
+ installUrl: string;
10
+ storeUrl: string;
11
+ installStatus: string;
12
+ setInstallStatus: import("react").Dispatch<import("react").SetStateAction<string>>;
13
+ installStatusDone: boolean;
14
+ definedInBlockletYML: any;
15
+ };
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _constant = require("@arcblock/did-connect/lib/constant");
8
+ var _react = require("react");
9
+ function useComponentInstalled({
10
+ did,
11
+ onInstalled,
12
+ onError
13
+ }) {
14
+ const {
15
+ optionalComponents,
16
+ componentMountPoints
17
+ } = window.blocklet;
18
+ const onInstalledRef = (0, _react.useRef)({
19
+ onInstalled,
20
+ onError
21
+ });
22
+ onInstalledRef.current = {
23
+ onInstalled,
24
+ onError
25
+ };
26
+ const optionalComponent = (0, _react.useMemo)(() => {
27
+ if (!optionalComponents || !optionalComponents.length) {
28
+ return null;
29
+ }
30
+ const component = optionalComponents.find(c => c.meta.did === did);
31
+ (component ? onInstalledRef.current.onError : onInstalledRef.current.onInstalled)?.(component);
32
+ return component;
33
+ }, [did, optionalComponents]);
34
+ const definedInBlockletYML = (0, _react.useMemo)(() => {
35
+ if (optionalComponent) {
36
+ return true;
37
+ }
38
+ return (componentMountPoints || []).find(item => item.did === did);
39
+ }, [optionalComponent, componentMountPoints, did]);
40
+ const installUrl = `${window.blocklet.appUrl}/${_constant.AUTH_SERVICE_PREFIX}/admin/components?install-component=${did}`;
41
+ const storeUrl = optionalComponent ? `${optionalComponent.meta.homepage}/blocklets/${did}` : '';
42
+ const [installStatus, setInstallStatus] = (0, _react.useState)('');
43
+ (0, _react.useEffect)(() => {
44
+ const handle = event => {
45
+ if (event.origin !== window.blocklet.appUrl) {
46
+ return;
47
+ }
48
+ if (event.data?.kind === 'component-installer' && event.data?.blocklet?.children) {
49
+ let hasChild = false;
50
+ event.data?.blocklet?.children.forEach(item => {
51
+ if (item.meta?.did === did) {
52
+ hasChild = true;
53
+ setInstallStatus(item.status || 'waiting');
54
+ }
55
+ });
56
+ if (!hasChild) {
57
+ setInstallStatus('');
58
+ }
59
+ }
60
+ };
61
+ window.addEventListener('message', handle);
62
+ return () => {
63
+ window.removeEventListener('message', handle);
64
+ };
65
+ }, [did]);
66
+ const installStatusDone = installStatus === 'stopped' || installStatus === 'running';
67
+ return {
68
+ optionalComponent,
69
+ installed: !optionalComponent && definedInBlockletYML,
70
+ installUrl,
71
+ storeUrl,
72
+ installStatus,
73
+ setInstallStatus,
74
+ installStatusDone,
75
+ definedInBlockletYML
76
+ };
77
+ }
78
+ module.exports = useComponentInstalled;
@@ -93,7 +93,7 @@ const StyledInternalFooter = (0, _Theme.styled)(_internalFooter.default)`
93
93
  ${({
94
94
  $bgcolor
95
95
  }) => $bgcolor && `background-color: ${$bgcolor};`}
96
- font-family: Lato, Avenir, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif,
96
+ font-family: Inter, Avenir, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif,
97
97
  'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
98
98
  `;
99
99
  module.exports = (0, _reactErrorBoundary.withErrorBoundary)(Footer, {
@@ -158,7 +158,7 @@ const StyledUxHeader = (0, _Theme.styled)(_Header.ResponsiveHeader)`
158
158
  ${({
159
159
  $bgcolor
160
160
  }) => `background-color: ${$bgcolor || "#fff"};`}
161
- font-family: Lato, Avenir, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif,
161
+ font-family: Inter, Avenir, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif,
162
162
  'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
163
163
  .header-logo {
164
164
  min-width: 44px;
@@ -62,7 +62,7 @@ function Passport({
62
62
  width: 200,
63
63
  color: window.blocklet.passportColor,
64
64
  createPassportSvg: _utils.createPassportSvg,
65
- title: currentRole.role === x.role ? t("currentPassport") : "",
65
+ title: currentRole && currentRole.role === x.role ? t("currentPassport") : "",
66
66
  sx: {
67
67
  flexDirection: "column",
68
68
  alignItems: "center",
@@ -75,7 +75,7 @@ function Passport({
75
75
  display: "flex",
76
76
  justifyContent: "center",
77
77
  backgroundColor: "white",
78
- boxShadow: currentRole.role === x.role ? `0px 2px 4px 0px ${activeColor}, 0px 1px 2px -1px ${activeColor}, 0px 0px 0px 1px ${activeColor} !important` : "0px 2px 4px 0px rgba(2, 7, 19, 0.04), 0px 1px 2px -1px rgba(2, 7, 19, 0.08), 0px 0px 0px 1px rgba(2, 7, 19, 0.08) !important"
78
+ boxShadow: currentRole && currentRole.role === x.role ? `0px 2px 4px 0px ${activeColor}, 0px 1px 2px -1px ${activeColor}, 0px 0px 0px 1px ${activeColor} !important` : "0px 2px 4px 0px rgba(2, 7, 19, 0.04), 0px 1px 2px -1px rgba(2, 7, 19, 0.08), 0px 0px 0px 1px rgba(2, 7, 19, 0.08) !important"
79
79
  },
80
80
  ".passport-item__body": {
81
81
  marginLeft: "0 !important"
package/lib/index.d.ts CHANGED
@@ -2,4 +2,6 @@ export { default as Header } from './Header';
2
2
  export { default as Footer } from './Footer';
3
3
  export { default as Dashboard } from './Dashboard';
4
4
  export { default as Icon } from './Icon';
5
+ export { default as ComponentInstaller } from './ComponentInstaller';
6
+ export { default as useComponentInstaller } from './ComponentInstaller/use-component-installer';
5
7
  export * from './UserCenter';
package/lib/index.js CHANGED
@@ -7,8 +7,16 @@ var _exportNames = {
7
7
  Header: true,
8
8
  Footer: true,
9
9
  Dashboard: true,
10
- Icon: true
10
+ Icon: true,
11
+ ComponentInstaller: true,
12
+ useComponentInstaller: true
11
13
  };
14
+ Object.defineProperty(exports, "ComponentInstaller", {
15
+ enumerable: true,
16
+ get: function () {
17
+ return _ComponentInstaller.default;
18
+ }
19
+ });
12
20
  Object.defineProperty(exports, "Dashboard", {
13
21
  enumerable: true,
14
22
  get: function () {
@@ -33,10 +41,18 @@ Object.defineProperty(exports, "Icon", {
33
41
  return _Icon.default;
34
42
  }
35
43
  });
44
+ Object.defineProperty(exports, "useComponentInstaller", {
45
+ enumerable: true,
46
+ get: function () {
47
+ return _useComponentInstaller.default;
48
+ }
49
+ });
36
50
  var _Header = _interopRequireDefault(require("./Header"));
37
51
  var _Footer = _interopRequireDefault(require("./Footer"));
38
52
  var _Dashboard = _interopRequireDefault(require("./Dashboard"));
39
53
  var _Icon = _interopRequireDefault(require("./Icon"));
54
+ var _ComponentInstaller = _interopRequireDefault(require("./ComponentInstaller"));
55
+ var _useComponentInstaller = _interopRequireDefault(require("./ComponentInstaller/use-component-installer"));
40
56
  var _UserCenter = require("./UserCenter");
41
57
  Object.keys(_UserCenter).forEach(function (key) {
42
58
  if (key === "default" || key === "__esModule") return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blocklet/ui-react",
3
- "version": "2.9.14",
3
+ "version": "2.9.16",
4
4
  "description": "Some useful front-end web components that can be used in Blocklets.",
5
5
  "keywords": [
6
6
  "react",
@@ -40,6 +40,10 @@
40
40
  "import": "./es/",
41
41
  "require": "./lib/"
42
42
  },
43
+ "./lib/ComponentInstaller": {
44
+ "import": "./es/ComponentInstaller/index.js",
45
+ "require": "./lib/ComponentInstaller/index.js"
46
+ },
43
47
  "./lib/Dashboard": {
44
48
  "import": "./es/Dashboard/index.js",
45
49
  "require": "./lib/Dashboard/index.js"
@@ -58,10 +62,10 @@
58
62
  }
59
63
  },
60
64
  "dependencies": {
61
- "@abtnode/constant": "^1.16.22",
62
- "@arcblock/did-connect": "^2.9.14",
63
- "@arcblock/ux": "^2.9.14",
64
- "@blocklet/js-sdk": "^1.16.22",
65
+ "@abtnode/constant": "1.16.23-beta-aeb9f5bd",
66
+ "@arcblock/did-connect": "^2.9.16",
67
+ "@arcblock/ux": "^2.9.16",
68
+ "@blocklet/js-sdk": "1.16.23-beta-aeb9f5bd",
65
69
  "@emotion/react": "^11.10.4",
66
70
  "@emotion/styled": "^11.10.4",
67
71
  "@iconify-icons/material-symbols": "^1.2.58",
@@ -71,6 +75,7 @@
71
75
  "axios": "^0.27.2",
72
76
  "core-js": "^3.25.5",
73
77
  "iconify-icon": "^1.0.8",
78
+ "iconify-icons-material-symbols-400": "^0.0.1",
74
79
  "is-url": "^1.2.4",
75
80
  "react-error-boundary": "^3.1.4",
76
81
  "ufo": "^1.3.2"
@@ -91,5 +96,5 @@
91
96
  "jest": "^28.1.3",
92
97
  "unbuild": "^2.0.0"
93
98
  },
94
- "gitHead": "7570827021dde66a0099a84256dfceaec07fd6b3"
99
+ "gitHead": "d970601a888adbd27f76ee9ce490bc8f93f11833"
95
100
  }