@blocklet/ui-react 2.9.13 → 2.9.14

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 (161) hide show
  1. package/build.config.ts +29 -0
  2. package/es/@types/index.d.ts +63 -0
  3. package/es/@types/index.js +0 -0
  4. package/es/@types/shims.d.ts +12 -0
  5. package/es/Dashboard/index.d.ts +41 -0
  6. package/es/Dashboard/index.js +63 -97
  7. package/es/Footer/brand.d.ts +22 -0
  8. package/es/Footer/brand.js +20 -37
  9. package/es/Footer/copyright.d.ts +18 -0
  10. package/es/Footer/copyright.js +14 -16
  11. package/es/Footer/index.d.ts +6 -0
  12. package/es/Footer/index.js +30 -56
  13. package/es/Footer/internal-footer.d.ts +29 -0
  14. package/es/Footer/internal-footer.js +67 -94
  15. package/es/Footer/layout/plain.d.ts +15 -0
  16. package/es/Footer/layout/plain.js +19 -37
  17. package/es/Footer/layout/row.d.ts +18 -0
  18. package/es/Footer/layout/row.js +9 -19
  19. package/es/Footer/layout/standard.d.ts +15 -0
  20. package/es/Footer/layout/standard.js +29 -57
  21. package/es/Footer/links.d.ts +22 -0
  22. package/es/Footer/links.js +72 -104
  23. package/es/Footer/social-media.d.ts +14 -0
  24. package/es/Footer/social-media.js +35 -35
  25. package/es/Header/index.d.ts +9 -0
  26. package/es/Header/index.js +55 -100
  27. package/es/Icon/index.d.ts +23 -0
  28. package/es/Icon/index.js +23 -58
  29. package/es/UserCenter/assets/banner.png +0 -0
  30. package/es/UserCenter/components/notification.d.ts +5 -0
  31. package/es/UserCenter/components/notification.js +276 -0
  32. package/es/UserCenter/components/passport.d.ts +6 -0
  33. package/es/UserCenter/components/passport.js +69 -0
  34. package/es/UserCenter/components/privacy.d.ts +11 -0
  35. package/es/UserCenter/components/privacy.js +99 -0
  36. package/es/UserCenter/components/settings.d.ts +10 -0
  37. package/es/UserCenter/components/settings.js +68 -0
  38. package/es/UserCenter/components/user-basic-info.d.ts +8 -0
  39. package/es/UserCenter/components/user-basic-info.js +66 -0
  40. package/es/UserCenter/components/user-center.d.ts +9 -0
  41. package/es/UserCenter/components/user-center.js +397 -0
  42. package/es/UserCenter/components/user-info-item.d.ts +10 -0
  43. package/es/UserCenter/components/user-info-item.js +54 -0
  44. package/es/UserCenter/components/user-info.d.ts +6 -0
  45. package/es/UserCenter/components/user-info.js +68 -0
  46. package/es/UserCenter/components/webhook-item.d.ts +3 -0
  47. package/es/UserCenter/components/webhook-item.js +243 -0
  48. package/es/UserCenter/index.d.ts +1 -0
  49. package/es/UserCenter/index.js +1 -0
  50. package/es/UserCenter/libs/client.d.ts +2 -0
  51. package/es/UserCenter/libs/client.js +2 -0
  52. package/es/UserCenter/libs/locales.d.ts +72 -0
  53. package/es/UserCenter/libs/locales.js +72 -0
  54. package/es/UserCenter/libs/utils.d.ts +4 -0
  55. package/es/UserCenter/libs/utils.js +14 -0
  56. package/es/blocklets.d.ts +16 -0
  57. package/es/blocklets.js +56 -45
  58. package/es/common/header-addons.d.ts +22 -0
  59. package/es/common/header-addons.js +41 -59
  60. package/es/common/link-blocker.d.ts +7 -0
  61. package/es/common/link-blocker.js +10 -17
  62. package/es/common/overridable-theme-provider.d.ts +18 -0
  63. package/es/common/overridable-theme-provider.js +6 -16
  64. package/es/common/wallet-hidden-topbar.d.ts +1 -0
  65. package/es/common/wallet-hidden-topbar.js +12 -10
  66. package/es/index.d.ts +5 -0
  67. package/es/index.js +5 -0
  68. package/es/types.d.ts +2 -0
  69. package/es/types.js +17 -11
  70. package/es/utils.d.ts +8 -0
  71. package/es/utils.js +21 -26
  72. package/lib/@types/index.d.ts +63 -0
  73. package/lib/@types/index.js +1 -0
  74. package/lib/@types/shims.d.ts +12 -0
  75. package/lib/Dashboard/index.d.ts +41 -0
  76. package/lib/Dashboard/index.js +44 -71
  77. package/lib/Footer/brand.d.ts +22 -0
  78. package/lib/Footer/brand.js +65 -30
  79. package/lib/Footer/copyright.d.ts +18 -0
  80. package/lib/Footer/copyright.js +18 -23
  81. package/lib/Footer/index.d.ts +6 -0
  82. package/lib/Footer/index.js +33 -42
  83. package/lib/Footer/internal-footer.d.ts +29 -0
  84. package/lib/Footer/internal-footer.js +43 -59
  85. package/lib/Footer/layout/plain.d.ts +15 -0
  86. package/lib/Footer/layout/plain.js +25 -30
  87. package/lib/Footer/layout/row.d.ts +18 -0
  88. package/lib/Footer/layout/row.js +34 -23
  89. package/lib/Footer/layout/standard.d.ts +15 -0
  90. package/lib/Footer/layout/standard.js +35 -41
  91. package/lib/Footer/links.d.ts +22 -0
  92. package/lib/Footer/links.js +163 -60
  93. package/lib/Footer/social-media.d.ts +14 -0
  94. package/lib/Footer/social-media.js +31 -25
  95. package/lib/Header/index.d.ts +9 -0
  96. package/lib/Header/index.js +83 -76
  97. package/lib/Icon/index.d.ts +23 -0
  98. package/lib/Icon/index.js +37 -51
  99. package/lib/UserCenter/assets/banner.png +0 -0
  100. package/lib/UserCenter/components/notification.d.ts +5 -0
  101. package/lib/UserCenter/components/notification.js +261 -0
  102. package/lib/UserCenter/components/passport.d.ts +6 -0
  103. package/lib/UserCenter/components/passport.js +86 -0
  104. package/lib/UserCenter/components/privacy.d.ts +11 -0
  105. package/lib/UserCenter/components/privacy.js +101 -0
  106. package/lib/UserCenter/components/settings.d.ts +10 -0
  107. package/lib/UserCenter/components/settings.js +81 -0
  108. package/lib/UserCenter/components/user-basic-info.d.ts +8 -0
  109. package/lib/UserCenter/components/user-basic-info.js +67 -0
  110. package/lib/UserCenter/components/user-center.d.ts +9 -0
  111. package/lib/UserCenter/components/user-center.js +376 -0
  112. package/lib/UserCenter/components/user-info-item.d.ts +10 -0
  113. package/lib/UserCenter/components/user-info-item.js +46 -0
  114. package/lib/UserCenter/components/user-info.d.ts +6 -0
  115. package/lib/UserCenter/components/user-info.js +94 -0
  116. package/lib/UserCenter/components/webhook-item.d.ts +3 -0
  117. package/lib/UserCenter/components/webhook-item.js +236 -0
  118. package/lib/UserCenter/index.d.ts +1 -0
  119. package/lib/UserCenter/index.js +13 -0
  120. package/lib/UserCenter/libs/client.d.ts +2 -0
  121. package/lib/UserCenter/libs/client.js +8 -0
  122. package/lib/UserCenter/libs/locales.d.ts +72 -0
  123. package/lib/UserCenter/libs/locales.js +78 -0
  124. package/lib/UserCenter/libs/utils.d.ts +4 -0
  125. package/lib/UserCenter/libs/utils.js +25 -0
  126. package/lib/blocklets.d.ts +16 -0
  127. package/lib/blocklets.js +28 -36
  128. package/lib/common/header-addons.d.ts +22 -0
  129. package/lib/common/header-addons.js +24 -36
  130. package/lib/common/link-blocker.d.ts +7 -0
  131. package/lib/common/link-blocker.js +10 -18
  132. package/lib/common/overridable-theme-provider.d.ts +18 -0
  133. package/lib/common/overridable-theme-provider.js +9 -14
  134. package/lib/common/wallet-hidden-topbar.d.ts +1 -0
  135. package/lib/common/wallet-hidden-topbar.js +1 -3
  136. package/lib/index.d.ts +5 -0
  137. package/lib/index.js +52 -0
  138. package/lib/types.d.ts +2 -0
  139. package/lib/types.js +3 -5
  140. package/lib/utils.d.ts +8 -0
  141. package/lib/utils.js +16 -23
  142. package/package.json +17 -11
  143. package/src/@types/index.ts +70 -0
  144. package/src/@types/shims.d.ts +12 -0
  145. package/src/UserCenter/assets/banner.png +0 -0
  146. package/src/UserCenter/components/notification.tsx +275 -0
  147. package/src/UserCenter/components/passport.tsx +83 -0
  148. package/src/UserCenter/components/privacy.tsx +107 -0
  149. package/src/UserCenter/components/settings.tsx +78 -0
  150. package/src/UserCenter/components/user-basic-info.tsx +70 -0
  151. package/src/UserCenter/components/user-center.tsx +410 -0
  152. package/src/UserCenter/components/user-info-item.tsx +50 -0
  153. package/src/UserCenter/components/user-info.tsx +85 -0
  154. package/src/UserCenter/components/webhook-item.tsx +243 -0
  155. package/src/UserCenter/index.tsx +1 -0
  156. package/src/UserCenter/libs/client.ts +3 -0
  157. package/src/UserCenter/libs/locales.ts +72 -0
  158. package/src/UserCenter/libs/utils.ts +21 -0
  159. package/src/blocklets.js +2 -0
  160. package/src/index.ts +9 -0
  161. /package/src/common/{link-blocker.js → link-blocker.jsx} +0 -0
@@ -3,53 +3,32 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = Links;
6
+ module.exports = Links;
7
+ var _jsxRuntime = require("react/jsx-runtime");
7
8
  var _react = require("react");
8
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
10
  var _Theme = require("@arcblock/ux/lib/Theme");
10
11
  var _clsx = _interopRequireDefault(require("clsx"));
11
12
  var _ExpandMore = _interopRequireDefault(require("@mui/icons-material/ExpandMore"));
12
13
  var _Icon = _interopRequireDefault(require("../Icon"));
13
- var _jsxRuntime = require("react/jsx-runtime");
14
- var _templateObject;
15
- const _excluded = ["links", "flowLayout"];
16
- /* eslint-disable react/no-array-index-key */
17
- /**
18
- * footer 中的 links (支持分组, 最多支持 2 级)
19
- * TODO: dark/light theme
20
- */
21
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
23
- 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; }
24
- 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; }
25
- 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; }
26
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
27
- 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); }
28
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
29
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
30
- function Links(_ref) {
31
- let {
32
- links,
33
- flowLayout
34
- } = _ref,
35
- rest = _objectWithoutProperties(_ref, _excluded);
15
+ function Links({
16
+ links,
17
+ flowLayout,
18
+ ...rest
19
+ }) {
36
20
  const [activeIndex, setActiveIndex] = (0, _react.useState)(-1);
37
- if (!(links !== null && links !== void 0 && links.length)) {
21
+ if (!links?.length) {
38
22
  return null;
39
23
  }
40
- // 只要发现一项元素有子元素, 就认为是分组 (大字号突出 group title)
41
- const isGroupMode = links.some(item => {
42
- var _item$items;
43
- return (_item$items = item.items) === null || _item$items === void 0 ? void 0 : _item$items.length;
44
- });
45
- const renderItem = _ref2 => {
46
- let {
47
- label,
48
- link,
49
- icon,
50
- render,
51
- props
52
- } = _ref2;
24
+ const isGroupMode = links.some(item => item.items?.length);
25
+ const renderItem = ({
26
+ label,
27
+ link,
28
+ icon,
29
+ render,
30
+ props
31
+ }) => {
53
32
  let result = label;
54
33
  if (render) {
55
34
  result = render({
@@ -58,16 +37,16 @@ function Links(_ref) {
58
37
  props
59
38
  });
60
39
  } else if (link) {
61
- result = /*#__PURE__*/(0, _jsxRuntime.jsx)("a", _objectSpread(_objectSpread({
40
+ result = /* @__PURE__ */(0, _jsxRuntime.jsx)("a", {
62
41
  href: link,
63
- "aria-label": "Footer link for ".concat(label)
64
- }, props), {}, {
42
+ "aria-label": `Footer link for ${label}`,
43
+ ...props,
65
44
  children: label
66
- }));
45
+ });
67
46
  }
68
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
69
- children: [icon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
70
- icon: icon,
47
+ return /* @__PURE__ */(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
48
+ children: [icon && /* @__PURE__ */(0, _jsxRuntime.jsx)(_Icon.default, {
49
+ icon,
71
50
  size: 20,
72
51
  sx: {
73
52
  mr: 0.5
@@ -75,14 +54,15 @@ function Links(_ref) {
75
54
  }), result]
76
55
  });
77
56
  };
78
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(Root, _objectSpread(_objectSpread({}, rest), {}, {
57
+ return /* @__PURE__ */(0, _jsxRuntime.jsx)(Root, {
58
+ ...rest,
79
59
  className: (0, _clsx.default)(rest.className, {
80
- 'footer-links--grouped': isGroupMode,
81
- 'footer-links--flow': flowLayout
60
+ "footer-links--grouped": isGroupMode,
61
+ "footer-links--flow": flowLayout
82
62
  }),
83
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
63
+ children: /* @__PURE__ */(0, _jsxRuntime.jsxs)("div", {
84
64
  className: "footer-links-inner",
85
- children: [flowLayout && links.map((item, i) => /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
65
+ children: [flowLayout && links.map((item, i) => /* @__PURE__ */(0, _jsxRuntime.jsx)("span", {
86
66
  className: "footer-links-item",
87
67
  children: renderItem(item)
88
68
  }, i)), !flowLayout && links.map((item, i) => {
@@ -90,24 +70,24 @@ function Links(_ref) {
90
70
  items
91
71
  } = item;
92
72
  const isActive = i === activeIndex;
93
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
94
- className: (0, _clsx.default)('footer-links-group', {
95
- 'footer-links-group--active': isActive
73
+ return /* @__PURE__ */(0, _jsxRuntime.jsxs)("div", {
74
+ className: (0, _clsx.default)("footer-links-group", {
75
+ "footer-links-group--active": isActive
96
76
  }),
97
77
  onClick: () => setActiveIndex(activeIndex === i ? -1 : i),
98
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
78
+ children: [/* @__PURE__ */(0, _jsxRuntime.jsxs)("span", {
99
79
  className: "footer-links-item",
100
- children: [renderItem(item), !!(items !== null && items !== void 0 && items.length) && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
80
+ children: [renderItem(item), !!items?.length && /* @__PURE__ */(0, _jsxRuntime.jsx)("span", {
101
81
  className: "footer-links-group-expand-icon",
102
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandMore.default, {
82
+ children: /* @__PURE__ */(0, _jsxRuntime.jsx)(_ExpandMore.default, {
103
83
  style: {
104
- transform: "rotate(".concat(isActive ? 180 : 0, "deg)")
84
+ transform: `rotate(${isActive ? 180 : 0}deg)`
105
85
  }
106
86
  })
107
87
  })]
108
- }), !!(items !== null && items !== void 0 && items.length) && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
88
+ }), !!items?.length && /* @__PURE__ */(0, _jsxRuntime.jsx)("div", {
109
89
  className: "footer-links-sub",
110
- children: items.map((child, j) => /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
90
+ children: items.map((child, j) => /* @__PURE__ */(0, _jsxRuntime.jsx)("span", {
111
91
  className: "footer-links-item",
112
92
  children: renderItem(child)
113
93
  }, j))
@@ -115,7 +95,7 @@ function Links(_ref) {
115
95
  }, i);
116
96
  })]
117
97
  })
118
- }));
98
+ });
119
99
  }
120
100
  Links.propTypes = {
121
101
  links: _propTypes.default.arrayOf(_propTypes.default.shape({
@@ -131,4 +111,127 @@ Links.defaultProps = {
131
111
  links: [],
132
112
  flowLayout: false
133
113
  };
134
- const Root = (0, _Theme.styled)('div')(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n overflow: hidden;\n color: ", ";\n .footer-links-inner {\n display: flex;\n justify-content: space-between;\n margin: 0 -8px;\n }\n .footer-links-group,\n .footer-links-sub {\n display: flex;\n flex-direction: column;\n }\n .footer-links-sub .footer-links-item {\n color: ", ";\n }\n .footer-links-group-expand-icon {\n display: none;\n position: absolute;\n right: 16px;\n top: 50%;\n transform: translate(0, -50%);\n line-height: 1;\n svg {\n width: auto;\n height: 0.75em;\n }\n }\n .footer-links-item {\n display: inline-flex;\n align-items: center;\n position: relative;\n padding: 4px 8px;\n font-size: 14px;\n }\n &.footer-links--grouped {\n .footer-links-group {\n > .footer-links-item {\n font-weight: bold;\n }\n .footer-links-sub {\n margin-top: 8px;\n }\n }\n }\n a {\n display: inline-block;\n max-width: 150px;\n color: inherit;\n text-decoration: none;\n &:hover {\n text-decoration: underline;\n }\n }\n\n &.footer-links--flow {\n display: inline-flex;\n .footer-links-inner {\n justify-content: center;\n flex-wrap: wrap;\n margin: 0 -8px;\n .footer-links-item {\n padding: 0 8px;\n }\n .footer-links-item + .footer-links-item::before {\n content: '';\n position: absolute;\n left: 0;\n top: 50%;\n transform: translate(0, -50%);\n height: 1em;\n border-left: 1px solid ", ";\n }\n }\n }\n\n ", " {\n .footer-links-inner {\n flex-direction: column;\n margin: 0;\n }\n .footer-links-sub {\n display: none;\n }\n .footer-links-group {\n position: relative;\n padding: 12px 0;\n .footer-links-item .footer-links-group-expand-icon {\n display: inline-block;\n }\n }\n .footer-links-group + .footer-links-group {\n border-top: 1px solid ", ";\n }\n .footer-links-group--active {\n .footer-links-sub {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n .footer-links-item {\n flex: 0 0 50%;\n }\n }\n }\n .footer-links-item {\n padding-left: 0;\n padding-right: 0;\n font-size: 13px;\n }\n &.footer-links--grouped {\n .footer-links-group {\n > .footer-links-item {\n font-size: 14px;\n }\n }\n }\n\n &.footer-links--flow {\n .footer-links-inner {\n flex-direction: row;\n }\n }\n }\n"])), props => props.theme.palette.grey[600], props => props.theme.palette.grey[900], props => props.theme.palette.grey[400], props => props.theme.breakpoints.down('md'), props => props.theme.palette.grey[200]);
114
+ const Root = (0, _Theme.styled)("div")`
115
+ overflow: hidden;
116
+ color: ${props => props.theme.palette.grey[600]};
117
+ .footer-links-inner {
118
+ display: flex;
119
+ justify-content: space-between;
120
+ margin: 0 -8px;
121
+ }
122
+ .footer-links-group,
123
+ .footer-links-sub {
124
+ display: flex;
125
+ flex-direction: column;
126
+ }
127
+ .footer-links-sub .footer-links-item {
128
+ color: ${props => props.theme.palette.grey[900]};
129
+ }
130
+ .footer-links-group-expand-icon {
131
+ display: none;
132
+ position: absolute;
133
+ right: 16px;
134
+ top: 50%;
135
+ transform: translate(0, -50%);
136
+ line-height: 1;
137
+ svg {
138
+ width: auto;
139
+ height: 0.75em;
140
+ }
141
+ }
142
+ .footer-links-item {
143
+ display: inline-flex;
144
+ align-items: center;
145
+ position: relative;
146
+ padding: 4px 8px;
147
+ font-size: 14px;
148
+ }
149
+ &.footer-links--grouped {
150
+ .footer-links-group {
151
+ > .footer-links-item {
152
+ font-weight: bold;
153
+ }
154
+ .footer-links-sub {
155
+ margin-top: 8px;
156
+ }
157
+ }
158
+ }
159
+ a {
160
+ display: inline-block;
161
+ max-width: 150px;
162
+ color: inherit;
163
+ text-decoration: none;
164
+ &:hover {
165
+ text-decoration: underline;
166
+ }
167
+ }
168
+
169
+ &.footer-links--flow {
170
+ display: inline-flex;
171
+ .footer-links-inner {
172
+ justify-content: center;
173
+ flex-wrap: wrap;
174
+ margin: 0 -8px;
175
+ .footer-links-item {
176
+ padding: 0 8px;
177
+ }
178
+ .footer-links-item + .footer-links-item::before {
179
+ content: '';
180
+ position: absolute;
181
+ left: 0;
182
+ top: 50%;
183
+ transform: translate(0, -50%);
184
+ height: 1em;
185
+ border-left: 1px solid ${props => props.theme.palette.grey[400]};
186
+ }
187
+ }
188
+ }
189
+
190
+ ${props => props.theme.breakpoints.down("md")} {
191
+ .footer-links-inner {
192
+ flex-direction: column;
193
+ margin: 0;
194
+ }
195
+ .footer-links-sub {
196
+ display: none;
197
+ }
198
+ .footer-links-group {
199
+ position: relative;
200
+ padding: 12px 0;
201
+ .footer-links-item .footer-links-group-expand-icon {
202
+ display: inline-block;
203
+ }
204
+ }
205
+ .footer-links-group + .footer-links-group {
206
+ border-top: 1px solid ${props => props.theme.palette.grey[200]};
207
+ }
208
+ .footer-links-group--active {
209
+ .footer-links-sub {
210
+ display: flex;
211
+ flex-direction: row;
212
+ flex-wrap: wrap;
213
+ .footer-links-item {
214
+ flex: 0 0 50%;
215
+ }
216
+ }
217
+ }
218
+ .footer-links-item {
219
+ padding-left: 0;
220
+ padding-right: 0;
221
+ font-size: 13px;
222
+ }
223
+ &.footer-links--grouped {
224
+ .footer-links-group {
225
+ > .footer-links-item {
226
+ font-size: 14px;
227
+ }
228
+ }
229
+ }
230
+
231
+ &.footer-links--flow {
232
+ .footer-links-inner {
233
+ flex-direction: row;
234
+ }
235
+ }
236
+ }
237
+ `;
@@ -0,0 +1,14 @@
1
+ declare function SocialMedia({ items, ...rest }: {
2
+ [x: string]: any;
3
+ items: any;
4
+ }): import("react").JSX.Element | null;
5
+ declare namespace SocialMedia {
6
+ namespace propTypes {
7
+ let items: any;
8
+ }
9
+ namespace defaultProps {
10
+ let items_1: null;
11
+ export { items_1 as items };
12
+ }
13
+ }
14
+ export default SocialMedia;
@@ -3,50 +3,40 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = SocialMedia;
6
+ module.exports = SocialMedia;
7
+ var _jsxRuntime = require("react/jsx-runtime");
7
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
8
9
  var _Theme = require("@arcblock/ux/lib/Theme");
9
10
  var _Icon = _interopRequireDefault(require("../Icon"));
10
- var _jsxRuntime = require("react/jsx-runtime");
11
- var _templateObject;
12
- const _excluded = ["items"];
13
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
15
- 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; }
16
- 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; }
17
- 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; }
18
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
19
- 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); }
20
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
21
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
22
- function SocialMedia(_ref) {
23
- let {
24
- items
25
- } = _ref,
26
- rest = _objectWithoutProperties(_ref, _excluded);
12
+ function SocialMedia({
13
+ items,
14
+ ...rest
15
+ }) {
27
16
  const theme = (0, _Theme.useTheme)();
28
- if (!(items !== null && items !== void 0 && items.length)) {
17
+ if (!items?.length) {
29
18
  return null;
30
19
  }
31
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(Root, _objectSpread(_objectSpread({}, rest), {}, {
20
+ return /* @__PURE__ */(0, _jsxRuntime.jsx)(Root, {
21
+ ...rest,
32
22
  children: items.map((item, i) => {
33
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
23
+ return /* @__PURE__ */(0, _jsxRuntime.jsx)("a", {
34
24
  href: item.link,
35
25
  target: "_blank",
36
- "aria-label": "Social media icon".concat(item.title ? " for ".concat(item.title) : ''),
26
+ "aria-label": `Social media icon${item.title ? ` for ${item.title}` : ""}`,
37
27
  rel: "noreferrer",
38
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
28
+ children: /* @__PURE__ */(0, _jsxRuntime.jsx)(_Icon.default, {
39
29
  icon: item.icon || item.title,
40
30
  sx: {
41
31
  bgcolor: theme.palette.grey[600],
42
- color: '#fff'
32
+ color: "#fff"
43
33
  },
44
34
  size: 24,
45
35
  component: "span"
46
36
  })
47
37
  }, i);
48
38
  })
49
- }));
39
+ });
50
40
  }
51
41
  SocialMedia.propTypes = {
52
42
  items: _propTypes.default.arrayOf(_propTypes.default.shape({
@@ -58,4 +48,20 @@ SocialMedia.propTypes = {
58
48
  SocialMedia.defaultProps = {
59
49
  items: null
60
50
  };
61
- const Root = (0, _Theme.styled)('div')(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n gap: 20px;\n a {\n color: ", ";\n text-decoration: none;\n &:hover {\n color: ", ";\n }\n }\n ", " {\n gap: 12px;\n }\n"])), props => props.theme.palette.grey[400], props => props.theme.palette.primary.light, props => props.theme.breakpoints.down('md'));
51
+ const Root = (0, _Theme.styled)("div")`
52
+ display: inline-flex;
53
+ flex-wrap: wrap;
54
+ align-items: center;
55
+ justify-content: center;
56
+ gap: 20px;
57
+ a {
58
+ color: ${props => props.theme.palette.grey[400]};
59
+ text-decoration: none;
60
+ &:hover {
61
+ color: ${props => props.theme.palette.primary.light};
62
+ }
63
+ }
64
+ ${props => props.theme.breakpoints.down("md")} {
65
+ gap: 12px;
66
+ }
67
+ `;
@@ -0,0 +1,9 @@
1
+ declare const _default: import("react").ComponentType<{
2
+ [x: string]: any;
3
+ meta: any;
4
+ addons: any;
5
+ sessionManagerProps: any;
6
+ homeLink: any;
7
+ theme: any;
8
+ }>;
9
+ export default _default;
@@ -3,7 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+
7
+ var _jsxRuntime = require("react/jsx-runtime");
7
8
  var _react = require("react");
8
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
10
  var _reactErrorBoundary = require("react-error-boundary");
@@ -19,20 +20,9 @@ var _utils = require("../utils");
19
20
  var _blocklets = require("../blocklets");
20
21
  var _headerAddons = _interopRequireDefault(require("../common/header-addons"));
21
22
  var _walletHiddenTopbar = require("../common/wallet-hidden-topbar");
22
- var _jsxRuntime = require("react/jsx-runtime");
23
- var _templateObject;
24
- const _excluded = ["meta", "addons", "sessionManagerProps", "homeLink", "theme"];
25
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
27
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
28
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
29
- 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; }
30
- 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; }
31
- 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; }
32
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
33
- 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); } // blocklet meta 中的 navigation 数据 => NavMenu 组件的 items
34
24
  const parseNavigation = navigation => {
35
- if (!(navigation !== null && navigation !== void 0 && navigation.length)) {
25
+ if (!navigation?.length) {
36
26
  return {
37
27
  navItems: [],
38
28
  activeId: null
@@ -40,37 +30,36 @@ const parseNavigation = navigation => {
40
30
  }
41
31
  let counter = 1;
42
32
  const parseItem = item => {
43
- var _item$link, _item$link2;
44
- const icon = item.icon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
33
+ const icon = item.icon ? /* @__PURE__ */(0, _jsxRuntime.jsx)(_Icon.default, {
45
34
  icon: item.icon
46
35
  }) : null;
47
36
  if (item.items) {
48
37
  return {
49
- id: "".concat(counter++),
38
+ id: `${counter++}`,
50
39
  label: item.title,
51
40
  icon,
52
41
  children: item.items
53
42
  };
54
43
  }
55
44
  let props = {};
56
- if ((_item$link = item.link) !== null && _item$link !== void 0 && _item$link.startsWith('http://') || (_item$link2 = item.link) !== null && _item$link2 !== void 0 && _item$link2.startsWith('https://')) {
45
+ if (item.link?.startsWith("http://") || item.link?.startsWith("https://")) {
57
46
  props = {
58
- target: '_blank',
59
- rel: 'noreferrer'
47
+ target: "_blank",
48
+ rel: "noreferrer"
60
49
  };
61
50
  }
62
51
  return {
63
- id: "".concat(counter++),
64
- label: /*#__PURE__*/(0, _jsxRuntime.jsx)("a", _objectSpread(_objectSpread({
65
- href: item.link
66
- }, props), {}, {
52
+ id: `${counter++}`,
53
+ label: /* @__PURE__ */(0, _jsxRuntime.jsx)("a", {
54
+ href: item.link,
55
+ ...props,
67
56
  children: item.title
68
- })),
57
+ }),
69
58
  icon,
70
59
  link: item.link
71
60
  };
72
61
  };
73
- const navItems = (0, _utils.mapRecursive)(navigation, parseItem, 'items');
62
+ const navItems = (0, _utils.mapRecursive)(navigation, parseItem, "items");
74
63
  const flattened = (0, _utils.flatRecursive)(navItems);
75
64
  const matchedIndex = (0, _utils.matchPaths)(flattened.map(item => item.link));
76
65
  return {
@@ -78,21 +67,14 @@ const parseNavigation = navigation => {
78
67
  activeId: matchedIndex >= 0 ? flattened[matchedIndex].id : null
79
68
  };
80
69
  };
81
-
82
- /**
83
- * 专门用于 (composable) blocklet 的 Header 组件, 解析 blocklet meta 中的数据, 通过组合 UX 中的 Header & NavMenu 组件来渲染
84
- */
85
- // eslint-disable-next-line no-shadow
86
- function Header(_ref) {
87
- var _formattedBlocklet$na, _theme$background;
88
- let {
89
- meta,
90
- addons,
91
- sessionManagerProps,
92
- homeLink,
93
- theme: themeOverrides
94
- } = _ref,
95
- rest = _objectWithoutProperties(_ref, _excluded);
70
+ function Header({
71
+ meta,
72
+ addons,
73
+ sessionManagerProps: sessionManagerProps2,
74
+ homeLink,
75
+ theme: themeOverrides,
76
+ ...rest
77
+ }) {
96
78
  (0, _walletHiddenTopbar.useWalletHiddenTopbar)();
97
79
  const {
98
80
  locale
@@ -102,7 +84,7 @@ function Header(_ref) {
102
84
  try {
103
85
  return (0, _blocklets.formatBlockletInfo)(blocklet);
104
86
  } catch (e) {
105
- console.error('Failed to format blocklet info', e, blocklet);
87
+ console.error("Failed to format blocklet info", e, blocklet);
106
88
  return blocklet;
107
89
  }
108
90
  }, [meta]);
@@ -114,45 +96,42 @@ function Header(_ref) {
114
96
  appLogoRect,
115
97
  theme
116
98
  } = formattedBlocklet;
117
- const navigation = (0, _blocklets.getLocalizedNavigation)(formattedBlocklet === null || formattedBlocklet === void 0 ? void 0 : (_formattedBlocklet$na = formattedBlocklet.navigation) === null || _formattedBlocklet$na === void 0 ? void 0 : _formattedBlocklet$na.header, locale);
99
+ const navigation = (0, _blocklets.getLocalizedNavigation)(formattedBlocklet?.navigation?.header, locale);
118
100
  const parsedNavigation = parseNavigation(navigation);
119
101
  const {
120
102
  navItems,
121
103
  activeId
122
104
  } = parsedNavigation;
123
- const _addons = typeof addons === 'function' ? builtInAddons => addons(builtInAddons, {
105
+ const _addons = typeof addons === "function" ? builtInAddons => addons(builtInAddons, {
124
106
  navigation: parsedNavigation
125
107
  }) : addons;
126
- const headerAddons = /*#__PURE__*/(0, _jsxRuntime.jsx)(_headerAddons.default, {
127
- formattedBlocklet: formattedBlocklet,
108
+ const headerAddons = /* @__PURE__ */(0, _jsxRuntime.jsx)(_headerAddons.default, {
109
+ formattedBlocklet,
128
110
  addons: _addons,
129
- sessionManagerProps: sessionManagerProps
111
+ sessionManagerProps: sessionManagerProps2
130
112
  });
131
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_overridableThemeProvider.default, {
113
+ return /* @__PURE__ */(0, _jsxRuntime.jsx)(_overridableThemeProvider.default, {
132
114
  theme: themeOverrides,
133
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledUxHeader, _objectSpread(_objectSpread({
134
- homeLink: homeLink,
135
- logo: /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
115
+ children: /* @__PURE__ */(0, _jsxRuntime.jsx)(StyledUxHeader, {
116
+ homeLink,
117
+ logo: /* @__PURE__ */(0, _jsxRuntime.jsx)("img", {
136
118
  src: appLogoRect || appLogo,
137
119
  alt: "logo"
138
120
  }),
139
- addons: headerAddons
140
- }, rest), {}, {
141
- $bgcolor: theme === null || theme === void 0 ? void 0 : (_theme$background = theme.background) === null || _theme$background === void 0 ? void 0 : _theme$background.header,
142
- children: !(navItems !== null && navItems !== void 0 && navItems.length) ? null : _ref2 => {
143
- let {
144
- isMobile
145
- } = _ref2;
146
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_NavMenu.default, {
147
- mode: isMobile ? 'inline' : 'horizontal',
148
- activeId: activeId,
149
- items: navItems,
150
- className: "header-nav",
151
- bgColor: "transparent",
152
- textColor: "#777"
153
- });
154
- }
155
- }))
121
+ addons: headerAddons,
122
+ ...rest,
123
+ $bgcolor: theme?.background?.header,
124
+ children: !navItems?.length ? null : ({
125
+ isMobile
126
+ }) => /* @__PURE__ */(0, _jsxRuntime.jsx)(_NavMenu.default, {
127
+ mode: isMobile ? "inline" : "horizontal",
128
+ activeId,
129
+ items: navItems,
130
+ className: "header-nav",
131
+ bgColor: "transparent",
132
+ textColor: "#777"
133
+ })
134
+ })
156
135
  });
157
136
  }
158
137
  Header.propTypes = {
@@ -175,13 +154,41 @@ Header.defaultProps = {
175
154
  homeLink: _blocklets.publicPath,
176
155
  theme: null
177
156
  };
178
- const StyledUxHeader = (0, _Theme.styled)(_Header.ResponsiveHeader)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n ", "\n font-family: Lato, Avenir, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif,\n 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n .header-logo {\n min-width: 44px;\n }\n ", " {\n .header-logo {\n min-width: 32px;\n }\n }\n .header-nav {\n .navmenu-sub .navmenu-item {\n min-width: 80px;\n }\n }\n .header-nav.navmenu--horizontal {\n .navmenu-root > .navmenu-sub,\n .navmenu-root > .navmenu-item {\n padding: 16px 4px;\n\n .navmenu-sub-container {\n padding-top: 0;\n }\n }\n .navmenu-item-icon > .MuiAvatar-root,\n .navmenu-sub-icon > .MuiAvatar-root {\n width: 20px;\n height: 20px;\n }\n }\n"])), _ref3 => {
179
- let {
180
- $bgcolor
181
- } = _ref3;
182
- return "background-color: ".concat($bgcolor || '#fff', ";");
183
- }, props => props.theme.breakpoints.down('md'));
184
- var _default = (0, _reactErrorBoundary.withErrorBoundary)(Header, {
157
+ const StyledUxHeader = (0, _Theme.styled)(_Header.ResponsiveHeader)`
158
+ ${({
159
+ $bgcolor
160
+ }) => `background-color: ${$bgcolor || "#fff"};`}
161
+ font-family: Lato, Avenir, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif,
162
+ 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
163
+ .header-logo {
164
+ min-width: 44px;
165
+ }
166
+ ${props => props.theme.breakpoints.down("md")} {
167
+ .header-logo {
168
+ min-width: 32px;
169
+ }
170
+ }
171
+ .header-nav {
172
+ .navmenu-sub .navmenu-item {
173
+ min-width: 80px;
174
+ }
175
+ }
176
+ .header-nav.navmenu--horizontal {
177
+ .navmenu-root > .navmenu-sub,
178
+ .navmenu-root > .navmenu-item {
179
+ padding: 16px 4px;
180
+
181
+ .navmenu-sub-container {
182
+ padding-top: 0;
183
+ }
184
+ }
185
+ .navmenu-item-icon > .MuiAvatar-root,
186
+ .navmenu-sub-icon > .MuiAvatar-root {
187
+ width: 20px;
188
+ height: 20px;
189
+ }
190
+ }
191
+ `;
192
+ module.exports = (0, _reactErrorBoundary.withErrorBoundary)(Header, {
185
193
  FallbackComponent: _ErrorBoundary.ErrorFallback
186
- });
187
- exports.default = _default;
194
+ });