@arcblock/ux 2.8.25 → 2.9.0

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.
Files changed (122) hide show
  1. package/es/Address/did-address.js +33 -21
  2. package/es/AnimationWaiter/index.js +2 -1
  3. package/es/Avatar/index.js +1 -1
  4. package/es/BlockletContext/index.js +1 -1
  5. package/es/CardSelector/index.js +2 -1
  6. package/es/Colors/index.js +2 -1
  7. package/es/Colors/themes/temp.js +17 -0
  8. package/es/Datatable/TableSearch.js +2 -1
  9. package/es/Header/header.js +0 -1
  10. package/es/Img/index.js +7 -6
  11. package/es/Locale/selector.js +15 -13
  12. package/es/NFTDisplay/index.js +2 -1
  13. package/es/QRCode/index.js +2 -1
  14. package/es/SessionBlocklet/index.js +169 -0
  15. package/es/SessionManager/index.js +2 -381
  16. package/es/SessionPermission/index.js +28 -0
  17. package/es/SessionUser/components/logged-in.js +224 -0
  18. package/es/SessionUser/components/session-user-item.js +148 -0
  19. package/es/SessionUser/components/session-user-switch.js +213 -0
  20. package/es/SessionUser/components/un-login.js +64 -0
  21. package/es/SessionUser/components/user-info.js +163 -0
  22. package/es/SessionUser/index.js +49 -0
  23. package/es/SessionUser/libs/translation.js +19 -0
  24. package/es/SessionUser/libs/utils.js +4 -0
  25. package/es/SplitButton/index.js +2 -1
  26. package/es/Toast/index.js +1 -1
  27. package/es/Util/constant.js +10 -0
  28. package/es/Util/index.js +11 -0
  29. package/lib/Address/did-address.js +36 -22
  30. package/lib/AnimationWaiter/index.js +2 -1
  31. package/lib/Avatar/index.js +1 -1
  32. package/lib/BlockletContext/index.js +1 -1
  33. package/lib/CardSelector/index.js +2 -1
  34. package/lib/Colors/index.js +7 -0
  35. package/lib/Colors/themes/temp.js +24 -0
  36. package/lib/Datatable/TableSearch.js +2 -1
  37. package/lib/Header/header.js +1 -1
  38. package/lib/Img/index.js +7 -6
  39. package/lib/Locale/selector.js +14 -13
  40. package/lib/NFTDisplay/index.js +2 -1
  41. package/lib/QRCode/index.js +2 -1
  42. package/lib/SessionBlocklet/index.js +187 -0
  43. package/lib/SessionManager/index.js +2 -390
  44. package/lib/SessionPermission/index.js +38 -0
  45. package/lib/SessionUser/components/logged-in.js +243 -0
  46. package/lib/SessionUser/components/session-user-item.js +163 -0
  47. package/lib/SessionUser/components/session-user-switch.js +232 -0
  48. package/lib/SessionUser/components/un-login.js +72 -0
  49. package/lib/SessionUser/components/user-info.js +175 -0
  50. package/lib/SessionUser/index.js +57 -0
  51. package/lib/SessionUser/libs/translation.js +26 -0
  52. package/lib/{SessionManager → SessionUser}/libs/utils.js +8 -1
  53. package/lib/SplitButton/index.js +2 -1
  54. package/lib/Toast/index.js +5 -5
  55. package/lib/Util/constant.js +26 -0
  56. package/lib/Util/index.js +16 -3
  57. package/package.json +19 -7
  58. package/src/Address/did-address.jsx +34 -20
  59. package/src/AnimationWaiter/index.js +2 -1
  60. package/src/Avatar/index.jsx +1 -1
  61. package/src/BlockletContext/index.jsx +1 -1
  62. package/src/CardSelector/index.jsx +2 -1
  63. package/src/Colors/index.js +1 -0
  64. package/src/Colors/themes/temp.js +18 -0
  65. package/src/Datatable/TableSearch.js +3 -1
  66. package/src/Header/header.jsx +0 -1
  67. package/src/Img/{index.js → index.jsx} +8 -6
  68. package/src/Locale/selector.jsx +11 -8
  69. package/src/NFTDisplay/index.js +2 -1
  70. package/src/QRCode/index.js +2 -1
  71. package/src/SessionBlocklet/index.jsx +181 -0
  72. package/src/SessionManager/index.jsx +2 -369
  73. package/src/SessionPermission/index.jsx +28 -0
  74. package/src/SessionUser/components/logged-in.jsx +194 -0
  75. package/src/SessionUser/components/session-user-item.jsx +96 -0
  76. package/src/SessionUser/components/session-user-switch.jsx +222 -0
  77. package/src/SessionUser/components/un-login.jsx +55 -0
  78. package/src/SessionUser/components/user-info.jsx +165 -0
  79. package/src/SessionUser/index.jsx +38 -0
  80. package/src/SessionUser/libs/translation.js +19 -0
  81. package/src/{SessionManager → SessionUser}/libs/utils.js +4 -0
  82. package/src/SplitButton/index.js +2 -1
  83. package/src/Toast/index.js +1 -1
  84. package/src/Util/constant.js +12 -0
  85. package/src/Util/index.js +13 -0
  86. package/es/SessionManager/components/account-item.js +0 -212
  87. package/es/SessionManager/components/add-account-item.js +0 -57
  88. package/es/SessionManager/components/federated-login-detecter.js +0 -183
  89. package/es/SessionManager/components/manage-accounts.js +0 -219
  90. package/es/SessionManager/components/manage-blocklet.js +0 -70
  91. package/es/SessionManager/components/menu-accordion.js +0 -103
  92. package/es/SessionManager/components/responsive-popper.js +0 -24
  93. package/es/SessionManager/components/user-drawer.js +0 -68
  94. package/es/SessionManager/components/user-info.js +0 -143
  95. package/es/SessionManager/components/user-popper.js +0 -110
  96. package/es/SessionManager/hooks/use-config.js +0 -34
  97. package/es/SessionManager/libs/translation.js +0 -52
  98. package/es/SessionManager/libs/utils.js +0 -2
  99. package/lib/SessionManager/components/account-item.js +0 -219
  100. package/lib/SessionManager/components/add-account-item.js +0 -66
  101. package/lib/SessionManager/components/federated-login-detecter.js +0 -193
  102. package/lib/SessionManager/components/manage-accounts.js +0 -232
  103. package/lib/SessionManager/components/manage-blocklet.js +0 -86
  104. package/lib/SessionManager/components/menu-accordion.js +0 -111
  105. package/lib/SessionManager/components/responsive-popper.js +0 -34
  106. package/lib/SessionManager/components/user-drawer.js +0 -75
  107. package/lib/SessionManager/components/user-info.js +0 -160
  108. package/lib/SessionManager/components/user-popper.js +0 -104
  109. package/lib/SessionManager/hooks/use-config.js +0 -41
  110. package/lib/SessionManager/libs/translation.js +0 -59
  111. package/src/SessionManager/components/account-item.jsx +0 -156
  112. package/src/SessionManager/components/add-account-item.jsx +0 -49
  113. package/src/SessionManager/components/federated-login-detecter.jsx +0 -167
  114. package/src/SessionManager/components/manage-accounts.jsx +0 -228
  115. package/src/SessionManager/components/manage-blocklet.jsx +0 -70
  116. package/src/SessionManager/components/menu-accordion.jsx +0 -93
  117. package/src/SessionManager/components/responsive-popper.jsx +0 -26
  118. package/src/SessionManager/components/user-drawer.jsx +0 -57
  119. package/src/SessionManager/components/user-info.jsx +0 -117
  120. package/src/SessionManager/components/user-popper.jsx +0 -95
  121. package/src/SessionManager/hooks/use-config.js +0 -33
  122. package/src/SessionManager/libs/translation.js +0 -52
@@ -0,0 +1,10 @@
1
+ export const DEFAULT_TIMEOUT = 5 * 60;
2
+ export const DEFAULT_WINDOW_TIMEOUT = 30 * 60;
3
+ export const AUTH_SERVICE_PREFIX = '/.well-known/service';
4
+ export const SESSION_TOKEN_STORAGE_KEY = 'login_token';
5
+ export const REFRESH_TOKEN_STORAGE_KEY = 'refresh_token';
6
+ export const RELAY_SOCKET_PREFIX = '/.well-known/service';
7
+ export const API_DID_PREFIX = '/api/did';
8
+ export const DASHBOARD_URL = `${AUTH_SERVICE_PREFIX}/admin`;
9
+ export const PROFILE_URL = `${AUTH_SERVICE_PREFIX}/user`;
10
+ export const NAVIGATION_URL = `${AUTH_SERVICE_PREFIX}/admin/navigation`;
package/es/Util/index.js CHANGED
@@ -305,4 +305,15 @@ export const sleep = (time = 0) => {
305
305
  };
306
306
  export const isUrl = str => {
307
307
  return /^https?:\/\//.test(str);
308
+ };
309
+ const visitorIdKey = '__visitor_id';
310
+ export const getVisitorId = () => {
311
+ return localStorage.getItem(visitorIdKey);
312
+ };
313
+ export const setVisitorId = value => {
314
+ if (value === null) {
315
+ localStorage.removeItem(visitorIdKey);
316
+ } else {
317
+ localStorage.setItem(visitorIdKey, value);
318
+ }
308
319
  };
@@ -7,11 +7,11 @@ exports.default = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  require("@fontsource/ubuntu-mono/400.css");
10
- var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
11
10
  var _colors = require("@mui/material/colors");
11
+ var _material = require("@mui/material");
12
12
  var _copyToClipboard = _interopRequireDefault(require("copy-to-clipboard"));
13
- var _ContentCopy = _interopRequireDefault(require("@mui/icons-material/ContentCopy"));
14
- var _Check = _interopRequireDefault(require("@mui/icons-material/Check"));
13
+ var _iconsMaterial = require("@mui/icons-material");
14
+ var _noop = _interopRequireDefault(require("lodash/noop"));
15
15
  var _Theme = require("../Theme");
16
16
  var _Util = require("../Util");
17
17
  var _compactText = _interopRequireDefault(require("./compact-text"));
@@ -90,12 +90,12 @@ const DidAddress = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
90
90
  copyElement = /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
91
91
  className: "did-address-copy-wrapper",
92
92
  title: copied ? '' : translations[locale].copy,
93
- children: copied ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
93
+ children: copied ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, {
94
94
  title: translations[locale].copied,
95
95
  placement: "bottom",
96
96
  arrow: true,
97
97
  open: copied,
98
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Check.default, {
98
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_iconsMaterial.Check, {
99
99
  className: "did-address-copy",
100
100
  style: {
101
101
  color: _colors.green[500]
@@ -104,7 +104,7 @@ const DidAddress = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
104
104
  }) :
105
105
  /*#__PURE__*/
106
106
  /* title prop 直接加在 icon 上不生效 */
107
- (0, _jsxRuntime.jsx)(_ContentCopy.default, {
107
+ (0, _jsxRuntime.jsx)(_iconsMaterial.ContentCopy, {
108
108
  className: "did-address-copy",
109
109
  onClick: onCopy
110
110
  })
@@ -115,21 +115,35 @@ const DidAddress = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
115
115
  size: size
116
116
  }, rest), {}, {
117
117
  ref: ref,
118
- children: [prepend, /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
119
- ref: textRef,
120
- className: "did-address-text did-address-truncate",
121
- style: {
122
- display: compact ? 'none' : 'inline'
123
- },
124
- children: children
125
- }), compact && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
126
- className: "did-address-text",
127
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_compactText.default, {
128
- startChars: startChars,
129
- endChars: endChars,
130
- showCopyButtonInTooltip: showCopyButtonInTooltip,
118
+ children: [prepend, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Tooltip, {
119
+ title: copyable ? '' : translations[locale].copied,
120
+ placement: "bottom",
121
+ arrow: true,
122
+ open: copied,
123
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
124
+ ref: textRef,
125
+ component: "span",
126
+ className: "did-address-text did-address-truncate",
127
+ sx: {
128
+ display: compact ? 'none' : 'inline',
129
+ cursor: copyable ? 'text' : 'pointer'
130
+ },
131
+ onDoubleClick: copyable ? _noop.default : onCopy,
131
132
  children: children
132
- })
133
+ }), compact && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
134
+ component: "span",
135
+ className: "did-address-text",
136
+ sx: {
137
+ cursor: copyable ? 'text' : 'pointer'
138
+ },
139
+ onDoubleClick: copyable ? _noop.default : onCopy,
140
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_compactText.default, {
141
+ startChars: startChars,
142
+ endChars: endChars,
143
+ showCopyButtonInTooltip: showCopyButtonInTooltip,
144
+ children: children
145
+ })
146
+ })]
133
147
  }), copyElement, append]
134
148
  }));
135
149
  });
@@ -167,9 +181,9 @@ DidAddress.defaultProps = {
167
181
  endChars: 6,
168
182
  locale: 'en'
169
183
  };
170
- const Root = (0, _Theme.styled)('div', {
184
+ const Root = (0, _Theme.styled)(_material.Box, {
171
185
  shouldForwardProp: prop => prop !== 'inline'
172
- })(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n font-family: 'Ubuntu Mono', monospace;\n && {\n display: ", ";\n align-items: center;\n max-width: 100%;\n overflow: hidden;\n color: #ccc;\n font-size: ", ";\n font-weight: 400;\n\n svg {\n fill: currentColor;\n }\n }\n\n .did-address-text {\n color: #666;\n }\n /* truncate string with ellipsis */\n .did-address-truncate {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .did-address-copy {\n flex: 0 0 auto;\n }\n .did-address-copy-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 1em;\n height: 1em;\n margin-left: 8px;\n }\n .did-address-copy {\n font-size: 1em;\n color: #999;\n cursor: pointer;\n }\n\n /* link */\n a {\n color: #666;\n }\n &:hover a {\n color: #222;\n text-decoration: underline;\n }\n"])), _ref2 => {
186
+ })(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n font-family: 'Ubuntu Mono', monospace;\n && {\n display: ", ";\n align-items: center;\n max-width: 100%;\n overflow: hidden;\n color: #ccc;\n font-size: ", ";\n font-weight: 400;\n\n svg {\n fill: currentColor;\n }\n }\n\n .did-address-text {\n color: #666;\n }\n /* truncate string with ellipsis */\n .did-address-truncate {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .did-address-copy-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 1em;\n height: 1em;\n margin-left: 8px;\n }\n .did-address-copy {\n flex: 0 0 auto;\n font-size: 1em;\n color: #999;\n cursor: pointer;\n }\n\n /* link */\n a {\n color: #666;\n }\n &:hover a {\n color: #222;\n text-decoration: underline;\n }\n"])), _ref2 => {
173
187
  let {
174
188
  inline
175
189
  } = _ref2;
@@ -7,6 +7,7 @@ exports.default = AnimationWaiter;
7
7
  var _react = require("react");
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _reactLottiePlayer = _interopRequireDefault(require("react-lottie-player"));
10
+ var _noop = _interopRequireDefault(require("lodash/noop"));
10
11
  var _defaultAnimation = _interopRequireDefault(require("./default-animation.json"));
11
12
  var _Theme = require("../Theme");
12
13
  var _jsxRuntime = require("react/jsx-runtime");
@@ -86,7 +87,7 @@ function AnimationWaiter(_ref) {
86
87
  // tips
87
88
  (0, _react.useEffect)(() => {
88
89
  if (!tips.length) {
89
- return () => {};
90
+ return _noop.default;
90
91
  }
91
92
  const timer = setTimeout(() => {
92
93
  let nextId = tipsId + 1;
@@ -141,7 +141,7 @@ Avatar.defaultProps = {
141
141
  shape: '',
142
142
  responsive: false
143
143
  };
144
- const BlockyIconContainer = (0, _Theme.styled)('div')(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n width: ", "px;\n height: ", "px;\n .blocky-icon-inner {\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n align-items: center;\n width: ", "px;\n height: ", "px;\n border-radius: ", "px;\n background: #ddd;\n }\n"])), props => props.$size, props => props.$size, props => props.$size, props => props.$size * 0.7, props => Math.min(10, Math.floor(0.1 * props.$size + 2)));
144
+ const BlockyIconContainer = (0, _Theme.styled)(_Box.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n width: ", "px;\n height: ", "px;\n .blocky-icon-inner {\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n align-items: center;\n width: ", "px;\n height: ", "px;\n border-radius: ", "px;\n background: #ddd;\n }\n"])), props => props.$size, props => props.$size, props => props.$size, props => props.$size * 0.7, props => Math.min(10, Math.floor(0.1 * props.$size + 2)));
145
145
  const StyledImg = (0, _Theme.styled)(_Img.default)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n &.avatar-img--rounded {\n border-radius: 4px;\n overflow: hidden;\n }\n &.avatar-img--circle {\n border-radius: 100%;\n overflow: hidden;\n }\n"])));
146
146
  function AvatarWithErrorBoundary(props) {
147
147
  const size = props.size || 36;
@@ -48,7 +48,7 @@ function BlockletProvider(_ref) {
48
48
  setBlockletData(data);
49
49
  } catch (_unused) {
50
50
  // NOTICE: 如果获取指定 blockletData 失败,则使用 window.blocklet
51
- const data = window.blocklet || window.env;
51
+ const data = globalThis.blocklet || globalThis.env;
52
52
  setBlockletData(data);
53
53
  }
54
54
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -7,6 +7,7 @@ exports.default = CardSelector;
7
7
  var _react = require("react");
8
8
  var _styled = _interopRequireDefault(require("@emotion/styled"));
9
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _noop = _interopRequireDefault(require("lodash/noop"));
10
11
  var _jsxRuntime = require("react/jsx-runtime");
11
12
  var _templateObject;
12
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -119,6 +120,6 @@ CardSelector.defaultProps = {
119
120
  width: 300,
120
121
  height: 400,
121
122
  cardSpace: 40,
122
- onSelect: () => {},
123
+ onSelect: _noop.default,
123
124
  defaultIndex: 0
124
125
  };
@@ -9,5 +9,12 @@ Object.defineProperty(exports, "default", {
9
9
  return _default.default;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "temp", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _temp.default;
16
+ }
17
+ });
12
18
  var _default = _interopRequireDefault(require("./themes/default"));
19
+ var _temp = _interopRequireDefault(require("./themes/temp"));
13
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ const colors = {
8
+ lineStep: 'rgba(18, 22, 24, 0.06)',
9
+ lineBorderStrong: 'rgba(18, 22, 24, 0.12)',
10
+ lineBorderBase: 'rgba(18, 22, 24, 0.06)',
11
+ borderBase: 'rgba(18, 22, 24, 0.06)',
12
+ textMuted: 'rgba(18, 22, 24, 0.36)',
13
+ textSubtitle: 'rgba(18, 22, 24, 0.6)',
14
+ textBase: 'rgba(18, 22, 24, 1)',
15
+ textPrimaryBase: 'rgba(18, 22, 24, 1)',
16
+ surfaceBgSubtitle: 'rgba(18, 22, 24, 0.03)',
17
+ surfacePrimarySubtitle: 'rgba(19, 125, 250, 0.06)',
18
+ surfaceSuccess: 'rgba(13, 202, 134, 1)',
19
+ primaryBase: 'rgba(19, 125, 250, 1)',
20
+ primary100: 'rgba(19, 125, 250, 1)',
21
+ gray6: 'rgba(17, 22, 24, 0.06)'
22
+ };
23
+ var _default = colors;
24
+ exports.default = _default;
@@ -12,6 +12,7 @@ var _Search = _interopRequireDefault(require("@mui/icons-material/Search"));
12
12
  var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
13
13
  var _Clear = _interopRequireDefault(require("@mui/icons-material/Clear"));
14
14
  var _clsx = _interopRequireDefault(require("clsx"));
15
+ var _noop = _interopRequireDefault(require("lodash/noop"));
15
16
  var _DatatableContext = require("./DatatableContext");
16
17
  var _Theme = require("../Theme");
17
18
  var _jsxRuntime = require("react/jsx-runtime");
@@ -119,6 +120,6 @@ TableSearch.propTypes = {
119
120
  TableSearch.defaultProps = {
120
121
  search: '',
121
122
  searchText: '',
122
- onSearchOpen: () => {}
123
+ onSearchOpen: _noop.default
123
124
  };
124
125
  const Container = (0, _Theme.styled)('div')(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n .toolbar-search-area {\n width: 0;\n transition: all ease 0.3s;\n overflow: hidden;\n .MuiFormControl-root {\n width: inherit;\n margin: 0 12px;\n }\n &.toolbar-btn-show {\n width: 260px;\n padding-left: 8px;\n\n ", " {\n width: 200px;\n }\n\n ", " {\n width: 180px;\n }\n &.small-textfield {\n width: 200px;\n }\n }\n }\n .toolbar-search-close {\n width: 0;\n transition: all ease 0.3s;\n overflow: hidden;\n &.toolbar-btn-show {\n width: 40px;\n }\n }\n .toolbar-search-icon-placeholder {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 40px;\n height: 40px;\n }\n &.search-always-open {\n .MuiFormControl-root {\n margin: 0 12px 0 0;\n }\n .toolbar-btn-show {\n padding-left: 0;\n }\n }\n"])), props => props.theme.breakpoints.down('md'), props => props.theme.breakpoints.down('sm'));
@@ -137,6 +137,6 @@ Header.defaultProps = {
137
137
  maxWidth: undefined,
138
138
  homeLink: '/'
139
139
  };
140
- const Root = (0, _Theme.styled)('div')(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n z-index: ", ";\n font-size: 14px;\n background: ", ";\n .header-container {\n display: flex;\n align-items: center;\n height: 64px;\n }\n\n .header-brand-wrapper {\n flex-shrink: 2;\n > a {\n display: flex;\n align-items: center;\n height: 100%;\n line-height: 1;\n color: inherit;\n text-decoration: none;\n }\n }\n .header-brand-wrapper .header-logo {\n display: inline-flex;\n position: relative;\n height: 44px;\n margin-right: 16px;\n img,\n svg {\n width: auto;\n height: 100%;\n max-height: 100%;\n }\n }\n .header-brand {\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 44px;\n margin-right: 16px;\n line-height: 1;\n a {\n color: inherit;\n text-decoration: none;\n }\n .header-brand-title {\n display: flex;\n align-items: center;\n h2 {\n margin: 0;\n font-size: 16px;\n }\n }\n .header-brand-desc {\n margin-top: 4px;\n color: #9397a1;\n }\n }\n .header-brand-addon {\n margin-right: 16px;\n }\n .header-addons {\n display: flex;\n align-items: center;\n min-width: 150px;\n }\n ", " {\n .header-brand {\n margin-right: 12px;\n .header-brand-title {\n h2 {\n font-size: 14px;\n }\n }\n }\n .header-brand-addon {\n display: none;\n }\n }\n ", " {\n .header-menu {\n display: inline-block;\n }\n .header-logo {\n height: 32px;\n }\n .header-brand {\n .header-brand-title {\n h2 {\n font-size: 13px;\n }\n }\n .header-brand-desc {\n font-size: 12px;\n }\n }\n }\n"])), props => props.theme.zIndex.appBar, props => props.theme.palette.common.white, props => props.theme.breakpoints.down('lg'), props => props.theme.breakpoints.down('md'));
140
+ const Root = (0, _Theme.styled)('div')(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n z-index: ", ";\n font-size: 14px;\n background: ", ";\n .header-container {\n display: flex;\n align-items: center;\n height: 64px;\n }\n\n .header-brand-wrapper {\n flex-shrink: 2;\n > a {\n display: flex;\n align-items: center;\n height: 100%;\n line-height: 1;\n color: inherit;\n text-decoration: none;\n }\n }\n .header-brand-wrapper .header-logo {\n display: inline-flex;\n position: relative;\n height: 44px;\n margin-right: 16px;\n img,\n svg {\n width: auto;\n height: 100%;\n max-height: 100%;\n }\n }\n .header-brand {\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 44px;\n margin-right: 16px;\n line-height: 1;\n a {\n color: inherit;\n text-decoration: none;\n }\n .header-brand-title {\n display: flex;\n align-items: center;\n h2 {\n margin: 0;\n font-size: 16px;\n }\n }\n .header-brand-desc {\n margin-top: 4px;\n color: #9397a1;\n }\n }\n .header-brand-addon {\n margin-right: 16px;\n }\n .header-addons {\n display: flex;\n align-items: center;\n }\n ", " {\n .header-brand {\n margin-right: 12px;\n .header-brand-title {\n h2 {\n font-size: 14px;\n }\n }\n }\n .header-brand-addon {\n display: none;\n }\n }\n ", " {\n .header-menu {\n display: inline-block;\n }\n .header-logo {\n height: 32px;\n }\n .header-brand {\n .header-brand-title {\n h2 {\n font-size: 13px;\n }\n }\n .header-brand-desc {\n font-size: 12px;\n }\n }\n }\n"])), props => props.theme.zIndex.appBar, props => props.theme.palette.common.white, props => props.theme.breakpoints.down('lg'), props => props.theme.breakpoints.down('md'));
141
141
  var _default = Header;
142
142
  exports.default = _default;
package/lib/Img/index.js CHANGED
@@ -7,9 +7,10 @@ exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _reactIntersectionObserver = require("react-intersection-observer");
10
- var _alert = _interopRequireDefault(require("@iconify-icons/mdi/alert"));
11
- var _image = _interopRequireDefault(require("@iconify-icons/mdi/image"));
10
+ var _warningRounded = _interopRequireDefault(require("@iconify-icons/material-symbols/warning-rounded"));
11
+ var _imageRounded = _interopRequireDefault(require("@iconify-icons/material-symbols/image-rounded"));
12
12
  var _react2 = require("@iconify/react");
13
+ var _noop = _interopRequireDefault(require("lodash/noop"));
13
14
  var _Theme = require("../Theme");
14
15
  var _jsxRuntime = require("react/jsx-runtime");
15
16
  const _excluded = ["lazy", "width", "height", "repeat", "ratio", "alt", "size", "position", "src", "placeholder", "fallback", "style", "className", "onError", "onSuccess"];
@@ -174,14 +175,14 @@ function Img(_ref) {
174
175
  className: "image--state",
175
176
  title: "loading image",
176
177
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.Icon, {
177
- icon: _alert.default,
178
+ icon: _warningRounded.default,
178
179
  className: "image--icon"
179
180
  })
180
181
  }), !placeholder && imgState === 'loading' && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
181
182
  className: "image--state",
182
183
  title: "Image load error",
183
184
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.Icon, {
184
- icon: _image.default,
185
+ icon: _imageRounded.default,
185
186
  className: "image--icon"
186
187
  })
187
188
  }), imgState === 'loaded' && /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
@@ -223,8 +224,8 @@ Img.defaultProps = {
223
224
  placeholder: null,
224
225
  fallback: null,
225
226
  className: '',
226
- onError: () => {},
227
- onSuccess: () => {}
227
+ onError: _noop.default,
228
+ onSuccess: _noop.default
228
229
  };
229
230
  var _default = Img;
230
231
  exports.default = _default;
@@ -7,9 +7,12 @@ exports.default = LocaleSelector;
7
7
  var _react = require("react");
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _material = require("@mui/material");
10
- var _Check = _interopRequireDefault(require("@mui/icons-material/Check"));
11
- var _Globe = _interopRequireDefault(require("@arcblock/icons/lib/Globe"));
10
+ var _react2 = require("@iconify/react");
11
+ var _language = _interopRequireDefault(require("@iconify-icons/material-symbols/language"));
12
+ var _check = _interopRequireDefault(require("@iconify-icons/material-symbols/check"));
13
+ var _noop = _interopRequireDefault(require("lodash/noop"));
12
14
  var _Util = require("../Util");
15
+ var _Colors = require("../Colors");
13
16
  var _context = require("./context");
14
17
  var _Theme = require("../Theme");
15
18
  var _jsxRuntime = require("react/jsx-runtime");
@@ -75,12 +78,10 @@ function LocaleSelector(props) {
75
78
  if (Icon) {
76
79
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Icon, {});
77
80
  }
78
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Globe.default, {
79
- style: {
80
- width: 'auto',
81
- height: size,
82
- color: theme.palette.text.secondary
83
- }
81
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.Icon, {
82
+ icon: _language.default,
83
+ fontSize: size,
84
+ color: theme.palette.text.secondary
84
85
  });
85
86
  }, [Icon, theme === null || theme === void 0 ? void 0 : (_theme$palette2 = theme.palette) === null || _theme$palette2 === void 0 ? void 0 : (_theme$palette2$text = _theme$palette2.text) === null || _theme$palette2$text === void 0 ? void 0 : _theme$palette2$text.secondary, size]);
86
87
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Div, _objectSpread(_objectSpread(_objectSpread({
@@ -120,9 +121,9 @@ function LocaleSelector(props) {
120
121
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
121
122
  className: "locale-item",
122
123
  onClick: () => onSelect(code, name),
123
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Check.default, {
124
- className: code === locale ? 'check-icon check-icon-visible' : 'check-icon',
125
- fontSize: "small"
124
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.Icon, {
125
+ icon: _check.default,
126
+ className: code === locale ? 'check-icon check-icon-visible' : 'check-icon'
126
127
  }), name]
127
128
  }, code);
128
129
  })
@@ -144,13 +145,13 @@ LocaleSelector.defaultProps = {
144
145
  showText: true,
145
146
  size: 24,
146
147
  popperProps: {},
147
- onChange: () => {},
148
+ onChange: _noop.default,
148
149
  popperType: 'click',
149
150
  icon: null
150
151
  };
151
152
  const Div = (0, _Theme.styled)('div', {
152
153
  shouldForwardProp: prop => prop !== 'dark'
153
- })(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: inline-block;\n\n .trigger {\n display: flex;\n flex-direction: column;\n justify-content: center;\n font-size: 14px;\n white-space: nowrap;\n\n .trigger-text {\n margin-left: 5px;\n font-size: 14px;\n color: ", ";\n }\n }\n\n .locales {\n background: ", ";\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.2);\n }\n\n .locale-item {\n font-size: 16px;\n font-style: normal;\n font-stretch: normal;\n line-height: normal;\n letter-spacing: 2px;\n text-align: center;\n color: ", ";\n cursor: pointer;\n display: flex;\n padding: 16px;\n align-items: center;\n .check-icon {\n visibility: hidden;\n margin-right: 4px;\n }\n .check-icon-visible {\n visibility: visible;\n }\n }\n"])), props => (0, _Util.getColor)(props), props => (0, _Util.getBackground)(props), props => (0, _Util.getColor)(props));
154
+ })(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: inline-block;\n\n .trigger {\n display: flex;\n flex-direction: column;\n justify-content: center;\n font-size: 14px;\n white-space: nowrap;\n\n .trigger-text {\n margin-left: 5px;\n font-size: 14px;\n color: ", ";\n }\n }\n\n .locales {\n background: ", ";\n box-shadow: 0px 8px 16px 0px ", ", 0px 0px 0px 1px ", ";\n border-radius: 8px;\n }\n\n .locale-item {\n font-size: 16px;\n font-style: normal;\n font-stretch: normal;\n line-height: normal;\n letter-spacing: 2px;\n text-align: center;\n color: ", ";\n cursor: pointer;\n display: flex;\n padding: 16px;\n align-items: center;\n .check-icon {\n visibility: hidden;\n margin-right: 4px;\n }\n .check-icon-visible {\n visibility: visible;\n }\n }\n"])), props => (0, _Util.getColor)(props), props => (0, _Util.getBackground)(props), _Colors.temp.gray6, _Colors.temp.gray6, props => (0, _Util.getColor)(props));
154
155
  const StyledPopper = (0, _Theme.styled)(_material.Popper)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n z-index: ", ";\n"])), _ref2 => {
155
156
  let {
156
157
  theme
@@ -14,6 +14,7 @@ var _pako = _interopRequireDefault(require("pako"));
14
14
  var _base64Url = _interopRequireDefault(require("base64-url"));
15
15
  var _isSvg = _interopRequireDefault(require("is-svg"));
16
16
  var _reactSvg = require("react-svg");
17
+ var _noop = _interopRequireDefault(require("lodash/noop"));
17
18
  var _aspectRatioContainer = _interopRequireDefault(require("./aspect-ratio-container"));
18
19
  var _img = _interopRequireDefault(require("./svg-embedder/img"));
19
20
  var _inlineSvg = _interopRequireDefault(require("./svg-embedder/inline-svg"));
@@ -284,7 +285,7 @@ NFTDisplay.defaultProps = {
284
285
  preferredSvgEmbedder: 'img',
285
286
  checkSvg: false,
286
287
  minimumLoadingTime: 0,
287
- onCompleted: () => {}
288
+ onCompleted: _noop.default
288
289
  };
289
290
  const Root = (0, _Theme.styled)('div')(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n /* \u9ED8\u8BA4\u5C3A\u5BF8 */\n width: 150px;\n height: 150px;\n overflow: hidden;\n\n &,\n img,\n object {\n max-width: 100%;\n max-height: 100%;\n }\n\n img,\n object {\n width: 100%;\n height: 100%;\n }\n\n &.nft-display--inset {\n width: 100%;\n height: 100%;\n }\n"])));
290
291
  function withAspectRatio(Component) {
@@ -7,6 +7,7 @@ exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _qrCodeStyling = _interopRequireDefault(require("@solana/qr-code-styling"));
10
+ var _material = require("@mui/material");
10
11
  var _jsxRuntime = require("react/jsx-runtime");
11
12
  const _excluded = ["data", "size", "image", "config"];
12
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -65,7 +66,7 @@ function QRCode(_ref) {
65
66
  qrCode.update(options);
66
67
  // eslint-disable-next-line react-hooks/exhaustive-deps
67
68
  }, [data, size, image, config]);
68
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread({
69
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, _objectSpread({
69
70
  ref: ref
70
71
  }, rest));
71
72
  }
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = SessionBlocklet;
7
+ var _react = require("react");
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _material = require("@mui/material");
10
+ var _react2 = require("@iconify/react");
11
+ var _dashboardOutlineRounded = _interopRequireDefault(require("@iconify-icons/material-symbols/dashboard-outline-rounded"));
12
+ var _widgetsOutlineRounded = _interopRequireDefault(require("@iconify-icons/material-symbols/widgets-outline-rounded"));
13
+ var _ahooks = require("ahooks");
14
+ var _Button = _interopRequireDefault(require("../Button"));
15
+ var _Colors = require("../Colors");
16
+ var _constant = require("../Util/constant");
17
+ var _SessionPermission = _interopRequireDefault(require("../SessionPermission"));
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
23
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
24
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
25
+ function SessionBlocklet(_ref) {
26
+ var _window;
27
+ let {
28
+ session,
29
+ locale,
30
+ size
31
+ } = _ref;
32
+ const blocklet = ((_window = window) === null || _window === void 0 ? void 0 : _window.blocklet) || {};
33
+ const sessionMenuList = (blocklet.navigation || []
34
+ // HACK 过滤掉默认插入的 /sessionManager 菜单
35
+ ).filter(item => item.section === 'sessionManager' && !['/sessionManager'].includes(item.id)).filter(item => {
36
+ var _session$user;
37
+ if (((item === null || item === void 0 ? void 0 : item.role) || []).includes((session === null || session === void 0 ? void 0 : (_session$user = session.user) === null || _session$user === void 0 ? void 0 : _session$user.role) || 'guest')) {
38
+ return true;
39
+ }
40
+ return false;
41
+ }).map(item => {
42
+ const component = ((blocklet === null || blocklet === void 0 ? void 0 : blocklet.componentMountPoints) || []).find(x => item.component === x.name);
43
+ return _objectSpread(_objectSpread({}, item), {}, {
44
+ component
45
+ });
46
+ });
47
+ const popperAnchorRef = (0, _react.useRef)(null);
48
+ const currentState = (0, _ahooks.useReactive)({
49
+ open: false
50
+ });
51
+ const onTogglePopper = (0, _ahooks.useMemoizedFn)(function () {
52
+ let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : !currentState.open;
53
+ currentState.open = value;
54
+ });
55
+ if (sessionMenuList.length === 0) {
56
+ return null;
57
+ }
58
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
59
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, {
60
+ size: "medium",
61
+ ref: popperAnchorRef,
62
+ onClick: () => onTogglePopper(),
63
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.Icon, {
64
+ icon: _dashboardOutlineRounded.default,
65
+ fontSize: size
66
+ })
67
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Popper, {
68
+ open: currentState.open,
69
+ onClose: () => onTogglePopper(false),
70
+ anchorEl: popperAnchorRef.current,
71
+ transition: true,
72
+ placement: "bottom-end",
73
+ sx: {
74
+ zIndex: 1600
75
+ },
76
+ children: _ref2 => {
77
+ let {
78
+ TransitionProps
79
+ } = _ref2;
80
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.ClickAwayListener, {
81
+ onClickAway: e => {
82
+ e.preventDefault();
83
+ e.stopPropagation();
84
+ onTogglePopper(false);
85
+ },
86
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Fade, _objectSpread(_objectSpread({}, TransitionProps), {}, {
87
+ timeout: 350,
88
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Paper, {
89
+ variant: "outlined",
90
+ sx: {
91
+ borderRadius: 3,
92
+ width: 350,
93
+ maxWidth: '90vw',
94
+ borderColor: _Colors.temp.lineStep,
95
+ p: 2,
96
+ border: '0 !important',
97
+ boxShadow: "0px 8px 16px 0px ".concat(_Colors.temp.gray6, ", 0px 0px 0px 1px ").concat(_Colors.temp.gray6)
98
+ },
99
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.List, {
100
+ sx: {
101
+ display: 'grid',
102
+ gridTemplateColumns: 'repeat(auto-fill, 100px)',
103
+ gridAutoRows: 'minmax(100px, max-content)',
104
+ justifyContent: 'space-between',
105
+ maxHeight: 350,
106
+ overflowY: 'auto',
107
+ p: 0
108
+ },
109
+ children: sessionMenuList.map(item => {
110
+ var _item$component, _item$title;
111
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.ListItem, {
112
+ disablePadding: true,
113
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.ListItemButton, {
114
+ href: item.link,
115
+ sx: {
116
+ p: 1,
117
+ display: 'flex',
118
+ flexDirection: 'column',
119
+ alignItems: 'center',
120
+ gap: 1,
121
+ width: '100%',
122
+ height: '100%',
123
+ borderRadius: 2,
124
+ '&:hover': {
125
+ backgroundColor: _Colors.temp.surfacePrimarySubtitle
126
+ }
127
+ },
128
+ children: [item !== null && item !== void 0 && (_item$component = item.component) !== null && _item$component !== void 0 && _item$component.did ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
129
+ component: "img",
130
+ src: "".concat(_constant.AUTH_SERVICE_PREFIX, "/blocklet/logo-bundle/").concat(item.component.did),
131
+ sx: {
132
+ borderRadius: 2,
133
+ width: 50,
134
+ height: 50,
135
+ objectFit: 'contain'
136
+ }
137
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.Icon, {
138
+ fontSize: 50,
139
+ icon: item.icon || _widgetsOutlineRounded.default,
140
+ color: _Colors.temp.textSubtitle
141
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
142
+ sx: {
143
+ fontSize: '12px',
144
+ color: _Colors.temp.textBase,
145
+ textAlign: 'center',
146
+ lineHeight: 'normal'
147
+ },
148
+ children: ((_item$title = item.title) === null || _item$title === void 0 ? void 0 : _item$title.zh) || item.title
149
+ })]
150
+ })
151
+ }, item.id);
152
+ })
153
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_SessionPermission.default, {
154
+ session: session,
155
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
156
+ variant: "outlined",
157
+ fullWidth: true,
158
+ href: _constant.NAVIGATION_URL,
159
+ sx: {
160
+ mt: 1,
161
+ borderRadius: 2,
162
+ color: _Colors.temp.textBase,
163
+ borderColor: _Colors.temp.lineBorderStrong,
164
+ '&:hover': {
165
+ color: _Colors.temp.primaryBase,
166
+ borderColor: _Colors.temp.primaryBase
167
+ }
168
+ },
169
+ children: locale === 'zh' ? '管理' : 'Manage'
170
+ })
171
+ })]
172
+ })
173
+ }))
174
+ });
175
+ }
176
+ })]
177
+ });
178
+ }
179
+ SessionBlocklet.propTypes = {
180
+ session: _propTypes.default.object.isRequired,
181
+ locale: _propTypes.default.string,
182
+ size: _propTypes.default.number
183
+ };
184
+ SessionBlocklet.defaultProps = {
185
+ locale: 'en',
186
+ size: 24
187
+ };