@blocklet/ui-react 2.9.90 → 2.10.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 (209) hide show
  1. package/build.config.ts +1 -6
  2. package/lib/@types/index.d.ts +1 -0
  3. package/lib/@types/index.js +0 -1
  4. package/lib/BlockletStudio/index.js +50 -50
  5. package/lib/ComponentInstaller/index.js +122 -202
  6. package/lib/ComponentInstaller/installer-item.js +116 -138
  7. package/lib/ComponentInstaller/locales.js +5 -10
  8. package/lib/ComponentInstaller/use-component-installed.js +37 -41
  9. package/lib/ComponentManager/components/add-component.js +58 -67
  10. package/lib/ComponentManager/components/check-component.js +2 -9
  11. package/lib/ComponentManager/components/publish-component.js +50 -59
  12. package/lib/ComponentManager/components/resource-dialog.js +42 -39
  13. package/lib/ComponentManager/index.js +3 -27
  14. package/lib/ComponentManager/libs/locales.js +2 -8
  15. package/lib/Dashboard/index.js +74 -99
  16. package/lib/Footer/brand.js +21 -43
  17. package/lib/Footer/copyright.js +15 -24
  18. package/lib/Footer/index.js +47 -71
  19. package/lib/Footer/internal-footer.js +72 -100
  20. package/lib/Footer/layout/plain.js +26 -45
  21. package/lib/Footer/layout/row.js +12 -29
  22. package/lib/Footer/layout/standard.js +34 -64
  23. package/lib/Footer/links.js +74 -104
  24. package/lib/Footer/social-media.js +35 -42
  25. package/lib/Header/index.js +69 -117
  26. package/lib/Icon/index.js +18 -53
  27. package/{es/UserCenter/components/notification.d.ts → lib/UserCenter/components/config-profile.d.ts} +1 -1
  28. package/lib/UserCenter/components/config-profile.js +67 -0
  29. package/lib/UserCenter/components/notification.js +203 -186
  30. package/lib/UserCenter/components/passport.js +70 -79
  31. package/lib/UserCenter/components/privacy.js +86 -88
  32. package/lib/UserCenter/components/settings.js +74 -84
  33. package/lib/UserCenter/components/storage/connect-to.js +56 -75
  34. package/lib/UserCenter/components/storage/connected.js +16 -37
  35. package/lib/UserCenter/components/storage/delete.js +42 -51
  36. package/lib/UserCenter/components/storage/disconnect.js +15 -29
  37. package/lib/UserCenter/components/storage/index.js +20 -54
  38. package/lib/UserCenter/components/storage/item.js +94 -122
  39. package/lib/UserCenter/components/storage/preview-nft.js +77 -85
  40. package/lib/UserCenter/components/third-party-login/index.js +49 -61
  41. package/lib/UserCenter/components/third-party-login/third-party-item.js +159 -176
  42. package/lib/UserCenter/components/user-center.js +276 -287
  43. package/lib/UserCenter/components/user-info/index.js +3 -27
  44. package/lib/UserCenter/components/user-info/user-basic-info.js +134 -129
  45. package/lib/UserCenter/components/user-info/user-info-item.js +43 -37
  46. package/lib/UserCenter/components/user-info/user-info.js +41 -74
  47. package/lib/UserCenter/components/webhook-item.js +184 -177
  48. package/lib/UserCenter/index.js +1 -13
  49. package/lib/UserCenter/libs/api.js +4 -16
  50. package/lib/UserCenter/libs/locales.d.ts +10 -0
  51. package/lib/UserCenter/libs/locales.js +12 -8
  52. package/lib/UserCenter/libs/utils.js +7 -17
  53. package/lib/UserSessions/components/user-session-info.js +88 -85
  54. package/lib/UserSessions/components/user-sessions.js +177 -213
  55. package/lib/UserSessions/index.js +1 -13
  56. package/lib/UserSessions/libs/locales.js +2 -8
  57. package/lib/UserSessions/libs/utils.js +4 -11
  58. package/lib/blocklets.js +59 -63
  59. package/lib/common/header-addons.js +44 -60
  60. package/lib/common/link-blocker.js +9 -18
  61. package/lib/common/overridable-theme-provider.js +10 -23
  62. package/lib/common/wallet-hidden-topbar.js +7 -14
  63. package/lib/contexts/config-user-space.js +38 -46
  64. package/lib/hooks/use-mobile.js +5 -13
  65. package/lib/index.js +10 -100
  66. package/lib/libs/client.js +2 -8
  67. package/lib/libs/spaces.js +6 -13
  68. package/lib/types.js +39 -41
  69. package/lib/utils.js +25 -44
  70. package/package.json +8 -38
  71. package/src/@types/index.ts +1 -0
  72. package/src/Footer/brand.jsx +6 -1
  73. package/src/UserCenter/components/config-profile.tsx +70 -0
  74. package/src/UserCenter/components/notification.tsx +63 -47
  75. package/src/UserCenter/components/settings.tsx +6 -0
  76. package/src/UserCenter/libs/locales.ts +10 -0
  77. package/es/@types/index.d.ts +0 -101
  78. package/es/@types/index.js +0 -0
  79. package/es/@types/shims.d.ts +0 -16
  80. package/es/BlockletStudio/index.d.ts +0 -28
  81. package/es/BlockletStudio/index.js +0 -114
  82. package/es/ComponentInstaller/index.d.ts +0 -37
  83. package/es/ComponentInstaller/index.js +0 -200
  84. package/es/ComponentInstaller/installer-item.d.ts +0 -21
  85. package/es/ComponentInstaller/installer-item.js +0 -139
  86. package/es/ComponentInstaller/locales.d.ts +0 -28
  87. package/es/ComponentInstaller/locales.js +0 -22
  88. package/es/ComponentInstaller/use-component-installed.d.ts +0 -12
  89. package/es/ComponentInstaller/use-component-installed.js +0 -88
  90. package/es/ComponentManager/components/add-component.d.ts +0 -16
  91. package/es/ComponentManager/components/add-component.js +0 -114
  92. package/es/ComponentManager/components/check-component.d.ts +0 -2
  93. package/es/ComponentManager/components/check-component.js +0 -2
  94. package/es/ComponentManager/components/publish-component.d.ts +0 -10
  95. package/es/ComponentManager/components/publish-component.js +0 -76
  96. package/es/ComponentManager/components/resource-dialog.d.ts +0 -14
  97. package/es/ComponentManager/components/resource-dialog.js +0 -74
  98. package/es/ComponentManager/index.d.ts +0 -3
  99. package/es/ComponentManager/index.js +0 -3
  100. package/es/ComponentManager/libs/locales.d.ts +0 -14
  101. package/es/ComponentManager/libs/locales.js +0 -14
  102. package/es/Dashboard/index.d.ts +0 -40
  103. package/es/Dashboard/index.js +0 -118
  104. package/es/Footer/brand.d.ts +0 -22
  105. package/es/Footer/brand.js +0 -73
  106. package/es/Footer/copyright.d.ts +0 -18
  107. package/es/Footer/copyright.js +0 -25
  108. package/es/Footer/index.d.ts +0 -6
  109. package/es/Footer/index.js +0 -82
  110. package/es/Footer/internal-footer.d.ts +0 -29
  111. package/es/Footer/internal-footer.js +0 -117
  112. package/es/Footer/layout/plain.d.ts +0 -15
  113. package/es/Footer/layout/plain.js +0 -39
  114. package/es/Footer/layout/row.d.ts +0 -18
  115. package/es/Footer/layout/row.js +0 -41
  116. package/es/Footer/layout/standard.d.ts +0 -15
  117. package/es/Footer/layout/standard.js +0 -53
  118. package/es/Footer/links.d.ts +0 -22
  119. package/es/Footer/links.js +0 -207
  120. package/es/Footer/social-media.d.ts +0 -14
  121. package/es/Footer/social-media.js +0 -60
  122. package/es/Header/index.d.ts +0 -10
  123. package/es/Header/index.js +0 -155
  124. package/es/Icon/index.d.ts +0 -23
  125. package/es/Icon/index.js +0 -55
  126. package/es/UserCenter/assets/banner.png +0 -0
  127. package/es/UserCenter/components/notification.js +0 -248
  128. package/es/UserCenter/components/passport.d.ts +0 -6
  129. package/es/UserCenter/components/passport.js +0 -88
  130. package/es/UserCenter/components/privacy.d.ts +0 -11
  131. package/es/UserCenter/components/privacy.js +0 -99
  132. package/es/UserCenter/components/settings.d.ts +0 -9
  133. package/es/UserCenter/components/settings.js +0 -89
  134. package/es/UserCenter/components/storage/connect-to.d.ts +0 -7
  135. package/es/UserCenter/components/storage/connect-to.js +0 -108
  136. package/es/UserCenter/components/storage/connected.d.ts +0 -7
  137. package/es/UserCenter/components/storage/connected.js +0 -24
  138. package/es/UserCenter/components/storage/delete.d.ts +0 -7
  139. package/es/UserCenter/components/storage/delete.js +0 -62
  140. package/es/UserCenter/components/storage/disconnect.d.ts +0 -3
  141. package/es/UserCenter/components/storage/disconnect.js +0 -23
  142. package/es/UserCenter/components/storage/icons/empty-spaces-nft.svg +0 -58
  143. package/es/UserCenter/components/storage/icons/long-arrow.svg +0 -5
  144. package/es/UserCenter/components/storage/icons/space-connected.svg +0 -3
  145. package/es/UserCenter/components/storage/icons/space-disconnect.svg +0 -3
  146. package/es/UserCenter/components/storage/index.d.ts +0 -3
  147. package/es/UserCenter/components/storage/index.js +0 -27
  148. package/es/UserCenter/components/storage/item.d.ts +0 -9
  149. package/es/UserCenter/components/storage/item.js +0 -158
  150. package/es/UserCenter/components/storage/preview-nft.d.ts +0 -6
  151. package/es/UserCenter/components/storage/preview-nft.js +0 -80
  152. package/es/UserCenter/components/third-party-login/index.d.ts +0 -5
  153. package/es/UserCenter/components/third-party-login/index.js +0 -110
  154. package/es/UserCenter/components/third-party-login/third-party-item.d.ts +0 -13
  155. package/es/UserCenter/components/third-party-login/third-party-item.js +0 -224
  156. package/es/UserCenter/components/user-center.d.ts +0 -15
  157. package/es/UserCenter/components/user-center.js +0 -414
  158. package/es/UserCenter/components/user-info/index.d.ts +0 -3
  159. package/es/UserCenter/components/user-info/index.js +0 -3
  160. package/es/UserCenter/components/user-info/user-basic-info.d.ts +0 -11
  161. package/es/UserCenter/components/user-info/user-basic-info.js +0 -151
  162. package/es/UserCenter/components/user-info/user-info-item.d.ts +0 -11
  163. package/es/UserCenter/components/user-info/user-info-item.js +0 -47
  164. package/es/UserCenter/components/user-info/user-info.d.ts +0 -6
  165. package/es/UserCenter/components/user-info/user-info.js +0 -66
  166. package/es/UserCenter/components/webhook-item.d.ts +0 -3
  167. package/es/UserCenter/components/webhook-item.js +0 -243
  168. package/es/UserCenter/index.d.ts +0 -1
  169. package/es/UserCenter/index.js +0 -1
  170. package/es/UserCenter/libs/api.d.ts +0 -3
  171. package/es/UserCenter/libs/api.js +0 -4
  172. package/es/UserCenter/libs/locales.d.ts +0 -162
  173. package/es/UserCenter/libs/locales.js +0 -162
  174. package/es/UserCenter/libs/utils.d.ts +0 -4
  175. package/es/UserCenter/libs/utils.js +0 -14
  176. package/es/UserSessions/components/user-session-info.d.ts +0 -6
  177. package/es/UserSessions/components/user-session-info.js +0 -92
  178. package/es/UserSessions/components/user-sessions.d.ts +0 -9
  179. package/es/UserSessions/components/user-sessions.js +0 -265
  180. package/es/UserSessions/index.d.ts +0 -1
  181. package/es/UserSessions/index.js +0 -1
  182. package/es/UserSessions/libs/locales.d.ts +0 -58
  183. package/es/UserSessions/libs/locales.js +0 -58
  184. package/es/UserSessions/libs/utils.d.ts +0 -2
  185. package/es/UserSessions/libs/utils.js +0 -73
  186. package/es/blocklets.d.ts +0 -16
  187. package/es/blocklets.js +0 -178
  188. package/es/common/header-addons.d.ts +0 -21
  189. package/es/common/header-addons.js +0 -83
  190. package/es/common/link-blocker.d.ts +0 -7
  191. package/es/common/link-blocker.js +0 -18
  192. package/es/common/overridable-theme-provider.d.ts +0 -18
  193. package/es/common/overridable-theme-provider.js +0 -15
  194. package/es/common/wallet-hidden-topbar.d.ts +0 -1
  195. package/es/common/wallet-hidden-topbar.js +0 -14
  196. package/es/contexts/config-user-space.d.ts +0 -26
  197. package/es/contexts/config-user-space.js +0 -53
  198. package/es/hooks/use-mobile.d.ts +0 -4
  199. package/es/hooks/use-mobile.js +0 -5
  200. package/es/index.d.ts +0 -10
  201. package/es/index.js +0 -10
  202. package/es/libs/client.d.ts +0 -2
  203. package/es/libs/client.js +0 -2
  204. package/es/libs/spaces.d.ts +0 -2
  205. package/es/libs/spaces.js +0 -13
  206. package/es/types.d.ts +0 -2
  207. package/es/types.js +0 -43
  208. package/es/utils.d.ts +0 -8
  209. package/es/utils.js +0 -78
@@ -1,36 +1,23 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _react = require("react");
9
- var _propTypes = _interopRequireDefault(require("prop-types"));
10
- var _Theme = require("@arcblock/ux/lib/Theme");
11
- var _reactErrorBoundary = require("react-error-boundary");
12
- var _context = require("@arcblock/ux/lib/Locale/context");
13
- var _ErrorBoundary = require("@arcblock/ux/lib/ErrorBoundary");
14
- var _Colors = require("@arcblock/ux/lib/Colors");
15
- var _omit = _interopRequireDefault(require("lodash/omit"));
16
- var _overridableThemeProvider = _interopRequireDefault(require("../common/overridable-theme-provider"));
17
- var _internalFooter = _interopRequireDefault(require("./internal-footer"));
18
- var _utils = require("../utils");
19
- var _blocklets = require("../blocklets");
20
- var _types = require("../types");
21
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
- function Footer({
23
- meta,
24
- theme: themeOverrides,
25
- ...rest
26
- }) {
27
- const {
28
- locale
29
- } = (0, _context.useLocaleContext)() || {};
30
- const formattedBlocklet = (0, _react.useMemo)(() => {
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useMemo } from "react";
3
+ import PropTypes from "prop-types";
4
+ import { styled } from "@arcblock/ux/lib/Theme";
5
+ import { withErrorBoundary } from "react-error-boundary";
6
+ import { useLocaleContext } from "@arcblock/ux/lib/Locale/context";
7
+ import { ErrorFallback } from "@arcblock/ux/lib/ErrorBoundary";
8
+ import { temp as colors } from "@arcblock/ux/lib/Colors";
9
+ import omit from "lodash/omit";
10
+ import OverridableThemeProvider from "../common/overridable-theme-provider.js";
11
+ import InternalFooter from "./internal-footer.js";
12
+ import { mapRecursive } from "../utils.js";
13
+ import { formatBlockletInfo, getLocalizedNavigation } from "../blocklets.js";
14
+ import { BlockletMetaProps } from "../types.js";
15
+ function Footer({ meta, theme: themeOverrides, ...rest }) {
16
+ const { locale } = useLocaleContext() || {};
17
+ const formattedBlocklet = useMemo(() => {
31
18
  const blocklet = Object.assign({}, window.blocklet, meta);
32
19
  try {
33
- return (0, _blocklets.formatBlockletInfo)(blocklet);
20
+ return formatBlockletInfo(blocklet);
34
21
  } catch (e) {
35
22
  console.error("Failed to format blocklet info", e, blocklet);
36
23
  return blocklet;
@@ -39,19 +26,11 @@ function Footer({
39
26
  if (!formattedBlocklet.appName) {
40
27
  return null;
41
28
  }
42
- const {
43
- appLogo,
44
- appLogoRect,
45
- appName,
46
- appDescription,
47
- description,
48
- theme,
49
- copyright
50
- } = formattedBlocklet;
29
+ const { appLogo, appLogoRect, appName, appDescription, description, theme, copyright } = formattedBlocklet;
51
30
  const localized = {
52
- footerNav: (0, _blocklets.getLocalizedNavigation)(formattedBlocklet?.navigation?.footer, locale) || [],
53
- socialMedia: (0, _blocklets.getLocalizedNavigation)(formattedBlocklet?.navigation?.social, locale) || [],
54
- links: (0, _blocklets.getLocalizedNavigation)(formattedBlocklet?.navigation?.bottom, locale) || []
31
+ footerNav: getLocalizedNavigation(formattedBlocklet?.navigation?.footer, locale) || [],
32
+ socialMedia: getLocalizedNavigation(formattedBlocklet?.navigation?.social, locale) || [],
33
+ links: getLocalizedNavigation(formattedBlocklet?.navigation?.bottom, locale) || []
55
34
  };
56
35
  const props = {
57
36
  brand: {
@@ -59,48 +38,45 @@ function Footer({
59
38
  description: appDescription || description,
60
39
  logo: appLogoRect || appLogo
61
40
  },
62
- navigation: (0, _utils.mapRecursive)(localized.footerNav, item => ({
63
- ...item,
64
- label: item.title,
65
- link: item.link
66
- }), "items"),
41
+ navigation: mapRecursive(
42
+ localized.footerNav,
43
+ (item) => ({
44
+ ...item,
45
+ label: item.title,
46
+ link: item.link
47
+ }),
48
+ "items"
49
+ ),
67
50
  copyright,
68
51
  socialMedia: localized.socialMedia,
69
- links: localized.links.map(item => ({
70
- ...item,
71
- label: item.title
72
- }))
52
+ links: localized.links.map((item) => ({ ...item, label: item.title }))
73
53
  };
74
- return /* @__PURE__ */(0, _jsxRuntime.jsx)(_overridableThemeProvider.default, {
75
- theme: themeOverrides,
76
- children: /* @__PURE__ */(0, _jsxRuntime.jsx)(StyledInternalFooter, {
54
+ return /* @__PURE__ */ jsx(OverridableThemeProvider, { theme: themeOverrides, children: /* @__PURE__ */ jsx(
55
+ StyledInternalFooter,
56
+ {
77
57
  ...props,
78
- ...(0, _omit.default)(rest, ["bordered"]),
58
+ ...omit(rest, ["bordered"]),
79
59
  $bordered: rest?.bordered,
80
60
  $bgcolor: theme?.background?.footer
81
- })
82
- });
61
+ }
62
+ ) });
83
63
  }
84
64
  Footer.propTypes = {
85
- meta: _types.BlockletMetaProps,
65
+ meta: BlockletMetaProps,
86
66
  // 允许覆盖 footer 内置的 theme
87
- theme: _propTypes.default.object
67
+ theme: PropTypes.object
88
68
  };
89
69
  Footer.defaultProps = {
90
70
  meta: {},
91
71
  theme: null
92
72
  };
93
- const StyledInternalFooter = (0, _Theme.styled)(_internalFooter.default)`
94
- ${({
95
- $bordered
96
- }) => `border-top: 1px solid ${$bordered ? _Colors.temp.strokeSep : "#eee"};`}
97
- color: ${props => props.theme.palette.grey[600]};
98
- ${({
99
- $bgcolor
100
- }) => $bgcolor && `background-color: ${$bgcolor};`}
73
+ const StyledInternalFooter = styled(InternalFooter)`
74
+ ${({ $bordered }) => `border-top: 1px solid ${$bordered ? colors.strokeSep : "#eee"};`}
75
+ color: ${(props) => props.theme.palette.grey[600]};
76
+ ${({ $bgcolor }) => $bgcolor && `background-color: ${$bgcolor};`}
101
77
  font-family: Inter, Avenir, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif,
102
78
  'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
103
79
  `;
104
- module.exports = (0, _reactErrorBoundary.withErrorBoundary)(Footer, {
105
- FallbackComponent: _ErrorBoundary.ErrorFallback
106
- });
80
+ export default withErrorBoundary(Footer, {
81
+ FallbackComponent: ErrorFallback
82
+ });
@@ -1,74 +1,47 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _propTypes = _interopRequireDefault(require("prop-types"));
9
- var _Box = _interopRequireDefault(require("@mui/material/Box"));
10
- var _brand = _interopRequireDefault(require("./brand"));
11
- var _links = _interopRequireDefault(require("./links"));
12
- var _socialMedia = _interopRequireDefault(require("./social-media"));
13
- var _copyright = _interopRequireDefault(require("./copyright"));
14
- var _standard = _interopRequireDefault(require("./layout/standard"));
15
- var _plain = _interopRequireDefault(require("./layout/plain"));
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
- const layouts = [{
18
- name: "plain",
19
- // navigation 数据为空时, 使用简单布局
20
- support: (_, data) => !data.navigation?.length && !data.socialMedia?.length,
21
- component: _plain.default
22
- }, {
23
- name: "standard",
24
- // 默认标准布局
25
- support: () => true,
26
- component: _standard.default
27
- }];
28
- const layoutsKeyByName = layouts.reduce((acc, cur) => ({
29
- ...acc,
30
- [cur.name]: cur
31
- }), {});
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import PropTypes from "prop-types";
3
+ import Box from "@mui/material/Box";
4
+ import Brand from "./brand.js";
5
+ import Links from "./links.js";
6
+ import SocialMedia from "./social-media.js";
7
+ import Copyright from "./copyright.js";
8
+ import StandardLayout from "./layout/standard.js";
9
+ import PlainLayout from "./layout/plain.js";
10
+ const layouts = [
11
+ {
12
+ name: "plain",
13
+ // navigation 数据为空时, 使用简单布局
14
+ support: (_, data) => !data.navigation?.length && !data.socialMedia?.length,
15
+ component: PlainLayout
16
+ },
17
+ {
18
+ name: "standard",
19
+ // 默认标准布局
20
+ support: () => true,
21
+ component: StandardLayout
22
+ }
23
+ ];
24
+ const layoutsKeyByName = layouts.reduce((acc, cur) => ({ ...acc, [cur.name]: cur }), {});
32
25
  function InternalFooter(props) {
33
- const {
34
- brand,
35
- navigation,
36
- socialMedia,
37
- copyright,
38
- links,
39
- layout,
40
- ...rest
41
- } = props;
26
+ const { brand, navigation, socialMedia, copyright, links, layout, ...rest } = props;
42
27
  const renderBrand = () => {
43
- return brand ? /* @__PURE__ */(0, _jsxRuntime.jsx)(_brand.default, {
44
- ...brand
45
- }) : null;
28
+ return brand ? /* @__PURE__ */ jsx(Brand, { ...brand }) : null;
46
29
  };
47
30
  const renderNavigation = () => {
48
- return navigation?.length ? /* @__PURE__ */(0, _jsxRuntime.jsx)(_links.default, {
49
- links: navigation
50
- }) : null;
31
+ return navigation?.length ? /* @__PURE__ */ jsx(Links, { links: navigation }) : null;
51
32
  };
52
33
  const renderSocialMedia = () => {
53
- return socialMedia?.length ? /* @__PURE__ */(0, _jsxRuntime.jsx)(_socialMedia.default, {
54
- items: socialMedia
55
- }) : null;
34
+ return socialMedia?.length ? /* @__PURE__ */ jsx(SocialMedia, { items: socialMedia }) : null;
56
35
  };
57
36
  const renderCopyright = () => {
58
37
  const copyrightOwner = copyright?.owner || brand?.name;
59
38
  if (!copyrightOwner) {
60
39
  return null;
61
40
  }
62
- return /* @__PURE__ */(0, _jsxRuntime.jsx)(_copyright.default, {
63
- owner: copyrightOwner,
64
- year: copyright?.year || void 0
65
- });
41
+ return /* @__PURE__ */ jsx(Copyright, { owner: copyrightOwner, year: copyright?.year || void 0 });
66
42
  };
67
43
  const renderLinks = () => {
68
- return links?.length ? /* @__PURE__ */(0, _jsxRuntime.jsx)(_links.default, {
69
- flowLayout: true,
70
- links
71
- }) : null;
44
+ return links?.length ? /* @__PURE__ */ jsx(Links, { flowLayout: true, links }) : null;
72
45
  };
73
46
  const elements = {
74
47
  brand: renderBrand(),
@@ -79,60 +52,59 @@ function InternalFooter(props) {
79
52
  };
80
53
  let LayoutComponent = null;
81
54
  if (layout === "auto") {
82
- LayoutComponent = layouts.find(item => item.support(elements, props)).component;
55
+ LayoutComponent = layouts.find((item) => item.support(elements, props)).component;
83
56
  } else {
84
57
  LayoutComponent = layoutsKeyByName[layout]?.component;
85
58
  }
86
59
  if (!LayoutComponent) {
87
60
  throw new Error(`layout ${layout} is not supported.`);
88
61
  }
89
- return /* @__PURE__ */(0, _jsxRuntime.jsxs)(_Box.default, {
90
- position: "relative",
91
- ...rest,
92
- children: [/* @__PURE__ */(0, _jsxRuntime.jsx)(LayoutComponent, {
93
- elements,
94
- data: props
95
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_Box.default, {
96
- position: "absolute",
97
- right: 16,
98
- bottom: 0,
99
- fontSize: 12,
100
- sx: {
101
- color: "transparent",
102
- "::selection": {
103
- background: "#000",
104
- color: "#fff"
105
- }
106
- },
107
- children: window?.blocklet?.version
108
- })]
109
- });
62
+ return /* @__PURE__ */ jsxs(Box, { position: "relative", ...rest, children: [
63
+ /* @__PURE__ */ jsx(LayoutComponent, { elements, data: props }),
64
+ /* @__PURE__ */ jsx(
65
+ Box,
66
+ {
67
+ position: "absolute",
68
+ right: 16,
69
+ bottom: 0,
70
+ fontSize: 12,
71
+ sx: { color: "transparent", "::selection": { background: "#000", color: "#fff" } },
72
+ children: window?.blocklet?.version
73
+ }
74
+ )
75
+ ] });
110
76
  }
111
77
  InternalFooter.propTypes = {
112
- brand: _propTypes.default.shape({
113
- name: _propTypes.default.node,
114
- description: _propTypes.default.string,
115
- logo: _propTypes.default.node
78
+ brand: PropTypes.shape({
79
+ name: PropTypes.node,
80
+ description: PropTypes.string,
81
+ logo: PropTypes.node
116
82
  }),
117
- navigation: _propTypes.default.arrayOf(_propTypes.default.shape({
118
- label: _propTypes.default.node,
119
- link: _propTypes.default.string
120
- })),
121
- socialMedia: _propTypes.default.arrayOf(_propTypes.default.shape({
122
- icon: _propTypes.default.node,
123
- link: _propTypes.default.string
124
- })),
125
- copyright: _propTypes.default.shape({
126
- owner: _propTypes.default.string,
127
- year: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])
83
+ navigation: PropTypes.arrayOf(
84
+ PropTypes.shape({
85
+ label: PropTypes.node,
86
+ link: PropTypes.string
87
+ })
88
+ ),
89
+ socialMedia: PropTypes.arrayOf(
90
+ PropTypes.shape({
91
+ icon: PropTypes.node,
92
+ link: PropTypes.string
93
+ })
94
+ ),
95
+ copyright: PropTypes.shape({
96
+ owner: PropTypes.string,
97
+ year: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
128
98
  }),
129
99
  // privacy/legal 等链接, 常放于 footer 右下侧或最底部
130
- links: _propTypes.default.arrayOf(_propTypes.default.shape({
131
- label: _propTypes.default.node,
132
- link: _propTypes.default.string
133
- })),
100
+ links: PropTypes.arrayOf(
101
+ PropTypes.shape({
102
+ label: PropTypes.node,
103
+ link: PropTypes.string
104
+ })
105
+ ),
134
106
  // 可显式指定 footer layout, 默认根据内容自动决定 layout
135
- layout: _propTypes.default.oneOf(["auto", "standard", "plain"])
107
+ layout: PropTypes.oneOf(["auto", "standard", "plain"])
136
108
  };
137
109
  InternalFooter.defaultProps = {
138
110
  brand: null,
@@ -142,4 +114,4 @@ InternalFooter.defaultProps = {
142
114
  links: null,
143
115
  layout: "auto"
144
116
  };
145
- module.exports = InternalFooter;
117
+ export default InternalFooter;
@@ -1,51 +1,32 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _react = require("react");
9
- var _propTypes = _interopRequireDefault(require("prop-types"));
10
- var _Container = _interopRequireDefault(require("@mui/material/Container"));
11
- var _Theme = require("@arcblock/ux/lib/Theme");
12
- var _row = _interopRequireDefault(require("./row"));
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
- function PlainLayout({
15
- elements,
16
- data,
17
- ...rest
18
- }) {
19
- return /* @__PURE__ */(0, _jsxRuntime.jsx)(Root, {
20
- ...rest,
21
- children: /* @__PURE__ */(0, _jsxRuntime.jsxs)(_Container.default, {
22
- className: "plain-layout-container",
23
- children: [!!data.links && /* @__PURE__ */(0, _jsxRuntime.jsxs)(_row.default, {
24
- sx: {
25
- width: 1
26
- },
27
- autoCenter: true,
28
- children: [elements.copyright, elements.links]
29
- }), !data.links && /* @__PURE__ */(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
30
- children: [(0, _react.cloneElement)(elements.brand, {
31
- name: null,
32
- description: null
33
- }), elements.copyright]
34
- })]
35
- })
36
- });
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { cloneElement } from "react";
3
+ import PropTypes from "prop-types";
4
+ import Container from "@mui/material/Container";
5
+ import { styled } from "@arcblock/ux/lib/Theme";
6
+ import Row from "./row.js";
7
+ function PlainLayout({ elements, data, ...rest }) {
8
+ return /* @__PURE__ */ jsx(Root, { ...rest, children: /* @__PURE__ */ jsxs(Container, { className: "plain-layout-container", children: [
9
+ !!data.links && /* @__PURE__ */ jsxs(Row, { sx: { width: 1 }, autoCenter: true, children: [
10
+ elements.copyright,
11
+ elements.links
12
+ ] }),
13
+ !data.links && /* @__PURE__ */ jsxs(Fragment, { children: [
14
+ cloneElement(elements.brand, { name: null, description: null }),
15
+ elements.copyright
16
+ ] })
17
+ ] }) });
37
18
  }
38
19
  PlainLayout.propTypes = {
39
- elements: _propTypes.default.shape({
40
- brand: _propTypes.default.element,
41
- navigation: _propTypes.default.element,
42
- socialMedia: _propTypes.default.element,
43
- copyright: _propTypes.default.element,
44
- links: _propTypes.default.element
20
+ elements: PropTypes.shape({
21
+ brand: PropTypes.element,
22
+ navigation: PropTypes.element,
23
+ socialMedia: PropTypes.element,
24
+ copyright: PropTypes.element,
25
+ links: PropTypes.element
45
26
  }).isRequired,
46
- data: _propTypes.default.object.isRequired
27
+ data: PropTypes.object.isRequired
47
28
  };
48
- const Root = (0, _Theme.styled)("div")`
29
+ const Root = styled("div")`
49
30
  padding: 24px 0;
50
31
  .plain-layout-container {
51
32
  display: flex;
@@ -55,4 +36,4 @@ const Root = (0, _Theme.styled)("div")`
55
36
  gap: 8px;
56
37
  }
57
38
  `;
58
- module.exports = PlainLayout;
39
+ export default PlainLayout;
@@ -1,40 +1,23 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- module.exports = Row;
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _propTypes = _interopRequireDefault(require("prop-types"));
9
- var _Box = _interopRequireDefault(require("@mui/material/Box"));
10
- var _Theme = require("@arcblock/ux/lib/Theme");
11
- var _clsx = _interopRequireDefault(require("clsx"));
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
- function Row({
14
- children,
15
- autoCenter,
16
- ...rest
17
- }) {
1
+ import { jsx } from "react/jsx-runtime";
2
+ import PropTypes from "prop-types";
3
+ import Box from "@mui/material/Box";
4
+ import { styled } from "@arcblock/ux/lib/Theme";
5
+ import clsx from "clsx";
6
+ export default function Row({ children, autoCenter, ...rest }) {
18
7
  if (!children) {
19
8
  return null;
20
9
  }
21
- return /* @__PURE__ */(0, _jsxRuntime.jsx)(RowRoot, {
22
- ...rest,
23
- className: (0, _clsx.default)(rest.className, {
24
- "footer-row-auto-center": autoCenter
25
- }),
26
- children
27
- });
10
+ return /* @__PURE__ */ jsx(RowRoot, { ...rest, className: clsx(rest.className, { "footer-row-auto-center": autoCenter }), children });
28
11
  }
29
12
  Row.propTypes = {
30
- children: _propTypes.default.any,
31
- autoCenter: _propTypes.default.bool
13
+ children: PropTypes.any,
14
+ autoCenter: PropTypes.bool
32
15
  };
33
16
  Row.defaultProps = {
34
17
  children: null,
35
18
  autoCenter: false
36
19
  };
37
- const RowRoot = (0, _Theme.styled)(_Box.default)`
20
+ const RowRoot = styled(Box)`
38
21
  display: flex;
39
22
  justify-content: space-between;
40
23
  & + & {
@@ -44,7 +27,7 @@ const RowRoot = (0, _Theme.styled)(_Box.default)`
44
27
  margin: 0 auto;
45
28
  }
46
29
 
47
- ${props => props.theme.breakpoints.down("md")} {
30
+ ${(props) => props.theme.breakpoints.down("md")} {
48
31
  align-items: stretch;
49
32
  flex-direction: column;
50
33
  gap: 16px;
@@ -55,4 +38,4 @@ const RowRoot = (0, _Theme.styled)(_Box.default)`
55
38
  margin: 0 auto;
56
39
  }
57
40
  }
58
- `;
41
+ `;
@@ -1,76 +1,46 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _jsxRuntime = require("react/jsx-runtime");
8
- var _propTypes = _interopRequireDefault(require("prop-types"));
9
- var _Box = _interopRequireDefault(require("@mui/material/Box"));
10
- var _Container = _interopRequireDefault(require("@mui/material/Container"));
11
- var _Theme = require("@arcblock/ux/lib/Theme");
12
- var _row = _interopRequireDefault(require("./row"));
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
- function StandardLayout({
15
- elements,
16
- data,
17
- ...rest
18
- }) {
19
- return /* @__PURE__ */(0, _jsxRuntime.jsx)(Root, {
20
- ...rest,
21
- children: /* @__PURE__ */(0, _jsxRuntime.jsxs)(_Container.default, {
22
- children: [/* @__PURE__ */(0, _jsxRuntime.jsxs)(_Box.default, {
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import PropTypes from "prop-types";
3
+ import Box from "@mui/material/Box";
4
+ import Container from "@mui/material/Container";
5
+ import { styled } from "@arcblock/ux/lib/Theme";
6
+ import Row from "./row.js";
7
+ function StandardLayout({ elements, data, ...rest }) {
8
+ return /* @__PURE__ */ jsx(Root, { ...rest, children: /* @__PURE__ */ jsxs(Container, { children: [
9
+ /* @__PURE__ */ jsxs(
10
+ Box,
11
+ {
23
12
  sx: {
24
13
  display: "flex",
25
- flexDirection: {
26
- xs: "column",
27
- md: "row"
28
- },
14
+ flexDirection: { xs: "column", md: "row" },
29
15
  justifyContent: "space-between",
30
- alignItems: {
31
- xs: "center",
32
- md: "space-between"
33
- },
16
+ alignItems: { xs: "center", md: "space-between" },
34
17
  gap: 2,
35
18
  pb: 3
36
19
  },
37
- children: [/* @__PURE__ */(0, _jsxRuntime.jsx)(_Box.default, {
38
- children: elements.brand
39
- }), /* @__PURE__ */(0, _jsxRuntime.jsx)(_Box.default, {
40
- lineHeight: 1,
41
- children: elements.socialMedia
42
- })]
43
- }), !!data.navigation?.length && /* @__PURE__ */(0, _jsxRuntime.jsx)(_Box.default, {
44
- sx: {
45
- mb: 6,
46
- pt: 3,
47
- borderTop: 1,
48
- borderColor: "grey.200"
49
- },
50
- children: elements.navigation
51
- }), /* @__PURE__ */(0, _jsxRuntime.jsxs)(_row.default, {
52
- sx: {
53
- pt: 3,
54
- borderTop: 1,
55
- borderColor: "grey.200"
56
- },
57
- autoCenter: true,
58
- children: [elements.copyright, elements.links]
59
- })]
60
- })
61
- });
20
+ children: [
21
+ /* @__PURE__ */ jsx(Box, { children: elements.brand }),
22
+ /* @__PURE__ */ jsx(Box, { lineHeight: 1, children: elements.socialMedia })
23
+ ]
24
+ }
25
+ ),
26
+ !!data.navigation?.length && /* @__PURE__ */ jsx(Box, { sx: { mb: 6, pt: 3, borderTop: 1, borderColor: "grey.200" }, children: elements.navigation }),
27
+ /* @__PURE__ */ jsxs(Row, { sx: { pt: 3, borderTop: 1, borderColor: "grey.200" }, autoCenter: true, children: [
28
+ elements.copyright,
29
+ elements.links
30
+ ] })
31
+ ] }) });
62
32
  }
63
33
  StandardLayout.propTypes = {
64
- elements: _propTypes.default.shape({
65
- brand: _propTypes.default.element,
66
- navigation: _propTypes.default.element,
67
- socialMedia: _propTypes.default.element,
68
- copyright: _propTypes.default.element,
69
- links: _propTypes.default.element
34
+ elements: PropTypes.shape({
35
+ brand: PropTypes.element,
36
+ navigation: PropTypes.element,
37
+ socialMedia: PropTypes.element,
38
+ copyright: PropTypes.element,
39
+ links: PropTypes.element
70
40
  }).isRequired,
71
- data: _propTypes.default.object.isRequired
41
+ data: PropTypes.object.isRequired
72
42
  };
73
- const Root = (0, _Theme.styled)("div")`
43
+ const Root = styled("div")`
74
44
  padding: 32px 0 24px 0;
75
45
  .footer-brand-name,
76
46
  .footer-brand-desc {
@@ -80,4 +50,4 @@ const Root = (0, _Theme.styled)("div")`
80
50
  margin-right: 0;
81
51
  }
82
52
  `;
83
- module.exports = StandardLayout;
53
+ export default StandardLayout;