@arcblock/ux 2.9.91 → 2.10.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (337) hide show
  1. package/lib/ActionButton/index.js +36 -48
  2. package/lib/ActivityIndicator/index.js +122 -75
  3. package/lib/Address/compact-text.js +48 -66
  4. package/lib/Address/did-address.js +114 -87
  5. package/lib/Address/index.js +15 -27
  6. package/lib/Address/responsive-did-address.js +48 -50
  7. package/lib/Alert/index.js +58 -52
  8. package/lib/AnimationWaiter/index.js +123 -69
  9. package/lib/Async/index.js +8 -22
  10. package/lib/Avatar/did-motif.js +38 -52
  11. package/lib/Avatar/etherscan-blockies.js +4 -10
  12. package/lib/Avatar/index.js +71 -77
  13. package/lib/Badge/index.js +49 -56
  14. package/lib/Blocklet/blocklet.js +181 -97
  15. package/lib/Blocklet/index.js +4 -24
  16. package/lib/Blocklet/utils.js +50 -13
  17. package/lib/BlockletContext/index.js +21 -31
  18. package/lib/BlockletNFT/index.js +255 -115
  19. package/lib/Button/index.js +5 -11
  20. package/lib/Button/wrap.js +45 -56
  21. package/lib/ButtonGroup/index.js +3 -9
  22. package/lib/CardSelector/index.js +67 -43
  23. package/lib/Center/index.js +19 -20
  24. package/lib/ClickToCopy/copy-button.js +37 -50
  25. package/lib/ClickToCopy/hook.js +10 -18
  26. package/lib/ClickToCopy/index.js +54 -66
  27. package/lib/CodeBlock/LightBox.js +84 -11
  28. package/lib/CodeBlock/index.js +175 -101
  29. package/lib/Colors/index.js +3 -20
  30. package/lib/Colors/themes/default.js +1 -7
  31. package/lib/Colors/themes/temp.js +1 -7
  32. package/lib/ContactForm/index.js +95 -60
  33. package/lib/CookieConsent/index.js +58 -52
  34. package/lib/CountDown/index.js +90 -59
  35. package/lib/DID/index.js +80 -96
  36. package/lib/Datatable/CustomToolbar.js +188 -137
  37. package/lib/Datatable/DatatableContext.js +14 -21
  38. package/lib/Datatable/TableSearch.js +99 -58
  39. package/lib/Datatable/index.js +312 -139
  40. package/lib/Datatable/utils.js +9 -17
  41. package/lib/Dialog/confirm.js +46 -58
  42. package/lib/Dialog/dialog.js +110 -66
  43. package/lib/Dialog/index.js +4 -27
  44. package/lib/Dialog/use-confirm.js +40 -65
  45. package/lib/DidLogo/index.js +14 -22
  46. package/lib/DriftBot/index.js +34 -19
  47. package/lib/Earth/index.js +214 -110
  48. package/lib/Earth/util.js +6 -19
  49. package/lib/Empty/index.js +33 -38
  50. package/lib/ErrorBoundary/fallback.js +45 -43
  51. package/lib/ErrorBoundary/index.js +1 -16
  52. package/lib/Footer/index.js +96 -48
  53. package/lib/Header/auto-hidden.js +28 -31
  54. package/lib/Header/header.js +151 -69
  55. package/lib/Header/index.js +2 -20
  56. package/lib/Header/responsive-header.js +67 -60
  57. package/lib/Icon/image.js +41 -45
  58. package/lib/Icon/index.js +51 -53
  59. package/lib/Img/index.js +77 -88
  60. package/lib/InfoRow/index.js +66 -48
  61. package/lib/Layout/dashboard/external-link.js +38 -53
  62. package/lib/Layout/dashboard/full-page.js +27 -41
  63. package/lib/Layout/dashboard/index.js +177 -132
  64. package/lib/Layout/dashboard/sidebar.js +164 -61
  65. package/lib/Layout/dashboard-legacy/header.js +119 -66
  66. package/lib/Layout/dashboard-legacy/index.js +90 -79
  67. package/lib/Layout/dashboard-legacy/sidebar.js +95 -62
  68. package/lib/Layout/index.js +200 -106
  69. package/lib/LoadingMask/index.js +31 -38
  70. package/lib/Locale/browser-lang.js +2 -8
  71. package/lib/Locale/context.js +46 -69
  72. package/lib/Locale/languages.js +6 -15
  73. package/lib/Locale/selector.js +116 -92
  74. package/lib/Locale/util.js +7 -16
  75. package/lib/Logo/index.js +54 -57
  76. package/lib/Metric/index.js +103 -40
  77. package/lib/NFTDisplay/aspect-ratio-container.js +33 -40
  78. package/lib/NFTDisplay/broken.js +68 -52
  79. package/lib/NFTDisplay/index.js +140 -129
  80. package/lib/NFTDisplay/loading.js +14 -13
  81. package/lib/NFTDisplay/svg-embedder/img.js +18 -33
  82. package/lib/NFTDisplay/svg-embedder/inline-svg.js +28 -32
  83. package/lib/NavMenu/index.js +2 -13
  84. package/lib/NavMenu/nav-menu.js +133 -148
  85. package/lib/NavMenu/style.js +179 -12
  86. package/lib/PageScroller/index.js +82 -93
  87. package/lib/PageScroller/story/FifthComponent.js +4 -10
  88. package/lib/PageScroller/story/FirstComponent.js +4 -10
  89. package/lib/PageScroller/story/FourthComponent.js +4 -10
  90. package/lib/PageScroller/story/FullPage.js +21 -28
  91. package/lib/PageScroller/story/PageContain.js +23 -30
  92. package/lib/PageScroller/story/SecondComponent.js +4 -10
  93. package/lib/PageScroller/story/ThirdComponent.js +4 -10
  94. package/lib/PageScroller/usePrevValue.js +4 -11
  95. package/lib/Passport/index.js +2 -9
  96. package/lib/Passport/passport.js +38 -51
  97. package/lib/PoweredByArcBlock/index.js +19 -33
  98. package/lib/PricingTable/PricingPlan.js +90 -34
  99. package/lib/PricingTable/index.js +28 -26
  100. package/lib/QRCode/index.js +38 -50
  101. package/lib/RelativeTime/index.js +44 -59
  102. package/lib/Result/common.js +85 -107
  103. package/lib/Result/index.js +22 -34
  104. package/lib/Result/result.js +35 -41
  105. package/lib/Result/translations.js +1 -7
  106. package/lib/Screenshot/BaseScreenshot/index.js +65 -43
  107. package/lib/Screenshot/BaseScreenshot/shells/Macbook.js +17 -27
  108. package/lib/Screenshot/BaseScreenshot/shells/Phone.js +14 -25
  109. package/lib/Screenshot/index.js +103 -92
  110. package/lib/SessionBlocklet/index.js +125 -143
  111. package/lib/SessionManager/index.js +2 -9
  112. package/lib/SessionPermission/index.js +13 -23
  113. package/lib/SessionUser/components/logged-in.js +139 -158
  114. package/lib/SessionUser/components/session-user-item.js +44 -58
  115. package/lib/SessionUser/components/session-user-switch.js +133 -152
  116. package/lib/SessionUser/components/un-login.js +27 -35
  117. package/lib/SessionUser/components/user-info.js +62 -74
  118. package/lib/SessionUser/index.js +26 -34
  119. package/lib/SessionUser/libs/translation.js +1 -7
  120. package/lib/SessionUser/libs/utils.js +13 -34
  121. package/lib/Sparkline/index.js +4 -10
  122. package/lib/Spinner/index.js +11 -17
  123. package/lib/SplitButton/index.js +72 -68
  124. package/lib/Success/index.js +28 -34
  125. package/lib/Switch/index.js +64 -75
  126. package/lib/Tabs/index.js +84 -103
  127. package/lib/Tag/index.js +52 -56
  128. package/lib/TextCollapse/index.js +57 -50
  129. package/lib/Theme/index.js +8 -47
  130. package/lib/Theme/theme-provider.js +19 -26
  131. package/lib/Theme/theme.js +49 -62
  132. package/lib/Toast/index.js +41 -73
  133. package/lib/Typography/index.js +44 -55
  134. package/lib/Util/constant.js +16 -22
  135. package/lib/Util/deprecate.js +14 -26
  136. package/lib/Util/federated.js +16 -38
  137. package/lib/Util/index.js +63 -113
  138. package/lib/Util/passport.js +23 -33
  139. package/lib/Util/wallet.js +5 -14
  140. package/lib/Video/index.js +34 -34
  141. package/lib/Wallet/Action.js +72 -49
  142. package/lib/Wallet/Download.js +132 -115
  143. package/lib/Wallet/Open.js +26 -25
  144. package/lib/WalletOSIcon/index.js +33 -42
  145. package/lib/WebWalletSWKeeper/index.js +42 -55
  146. package/lib/WechatPrompt/index.js +53 -33
  147. package/lib/index.js +38 -265
  148. package/lib/withTheme/index.js +53 -33
  149. package/lib/withTracker/error_boundary.js +7 -18
  150. package/lib/withTracker/index.js +25 -34
  151. package/package.json +9 -316
  152. package/src/WalletOSIcon/index.jsx +1 -1
  153. package/es/ActionButton/index.js +0 -99
  154. package/es/ActivityIndicator/index.js +0 -180
  155. package/es/Address/compact-text.js +0 -105
  156. package/es/Address/did-address.js +0 -222
  157. package/es/Address/index.js +0 -23
  158. package/es/Address/responsive-did-address.js +0 -87
  159. package/es/Alert/index.js +0 -134
  160. package/es/AnimationWaiter/default-animation.json +0 -1
  161. package/es/AnimationWaiter/index.js +0 -240
  162. package/es/Async/index.js +0 -38
  163. package/es/Avatar/did-motif.js +0 -68
  164. package/es/Avatar/etherscan-blockies.js +0 -83
  165. package/es/Avatar/index.js +0 -179
  166. package/es/Badge/index.js +0 -98
  167. package/es/Blocklet/blocklet.js +0 -298
  168. package/es/Blocklet/index.js +0 -4
  169. package/es/Blocklet/utils.js +0 -52
  170. package/es/BlockletContext/index.js +0 -65
  171. package/es/BlockletNFT/index.js +0 -412
  172. package/es/Button/index.js +0 -8
  173. package/es/Button/wrap.js +0 -140
  174. package/es/ButtonGroup/index.js +0 -6
  175. package/es/CardSelector/index.js +0 -149
  176. package/es/Center/index.js +0 -41
  177. package/es/ClickToCopy/copy-button.js +0 -72
  178. package/es/ClickToCopy/hook.js +0 -39
  179. package/es/ClickToCopy/index.js +0 -92
  180. package/es/CodeBlock/LightBox.js +0 -85
  181. package/es/CodeBlock/index.js +0 -222
  182. package/es/Colors/index.js +0 -3
  183. package/es/Colors/themes/default.js +0 -77
  184. package/es/Colors/themes/temp.js +0 -41
  185. package/es/ContactForm/index.js +0 -230
  186. package/es/CookieConsent/index.js +0 -113
  187. package/es/CountDown/index.js +0 -178
  188. package/es/DID/index.js +0 -249
  189. package/es/Datatable/CustomToolbar.js +0 -396
  190. package/es/Datatable/DatatableContext.js +0 -34
  191. package/es/Datatable/TableSearch.js +0 -166
  192. package/es/Datatable/index.js +0 -629
  193. package/es/Datatable/utils.js +0 -132
  194. package/es/Dialog/confirm.js +0 -123
  195. package/es/Dialog/dialog.js +0 -201
  196. package/es/Dialog/index.js +0 -4
  197. package/es/Dialog/types.d.ts +0 -17
  198. package/es/Dialog/use-confirm.js +0 -133
  199. package/es/DidLogo/index.js +0 -31
  200. package/es/DriftBot/index.js +0 -70
  201. package/es/Earth/countries.json +0 -8057
  202. package/es/Earth/index.js +0 -521
  203. package/es/Earth/util.js +0 -51
  204. package/es/Empty/index.js +0 -65
  205. package/es/ErrorBoundary/fallback.js +0 -73
  206. package/es/ErrorBoundary/index.js +0 -1
  207. package/es/Footer/index.js +0 -172
  208. package/es/Header/auto-hidden.js +0 -35
  209. package/es/Header/header.js +0 -223
  210. package/es/Header/index.js +0 -2
  211. package/es/Header/responsive-header.js +0 -146
  212. package/es/Icon/image.js +0 -65
  213. package/es/Icon/index.js +0 -84
  214. package/es/Img/index.js +0 -218
  215. package/es/InfoRow/index.js +0 -87
  216. package/es/Layout/dashboard/external-link.js +0 -58
  217. package/es/Layout/dashboard/full-page.js +0 -53
  218. package/es/Layout/dashboard/index.js +0 -282
  219. package/es/Layout/dashboard/sidebar.js +0 -209
  220. package/es/Layout/dashboard-legacy/header.js +0 -174
  221. package/es/Layout/dashboard-legacy/index.js +0 -148
  222. package/es/Layout/dashboard-legacy/sidebar.js +0 -129
  223. package/es/Layout/index.js +0 -335
  224. package/es/LoadingMask/index.js +0 -102
  225. package/es/Locale/browser-lang.js +0 -52
  226. package/es/Locale/context.js +0 -139
  227. package/es/Locale/languages.js +0 -60
  228. package/es/Locale/selector.js +0 -186
  229. package/es/Locale/util.js +0 -21
  230. package/es/Logo/images/logo-dark-text.svg +0 -3
  231. package/es/Logo/images/logo-dark-top.svg +0 -6
  232. package/es/Logo/images/logo-light-text.svg +0 -3
  233. package/es/Logo/images/logo-light-top.svg +0 -6
  234. package/es/Logo/index.js +0 -136
  235. package/es/Metric/index.js +0 -132
  236. package/es/NFTDisplay/NFTBroken.svg +0 -34
  237. package/es/NFTDisplay/README.md +0 -59
  238. package/es/NFTDisplay/aspect-ratio-container.js +0 -39
  239. package/es/NFTDisplay/broken.js +0 -132
  240. package/es/NFTDisplay/demo/data/asset-state-display-url.json +0 -7
  241. package/es/NFTDisplay/demo/data/asset-state-gzipped-svg-1-1.json +0 -10
  242. package/es/NFTDisplay/demo/data/asset-state-gzipped-svg-374-130.json +0 -10
  243. package/es/NFTDisplay/demo/data/asset-state-gzipped-svg-with-foreign-object.json +0 -20
  244. package/es/NFTDisplay/demo/data/asset-state-svg.json +0 -29
  245. package/es/NFTDisplay/demo/data/asset-state-url.json +0 -10
  246. package/es/NFTDisplay/index.js +0 -328
  247. package/es/NFTDisplay/loading.js +0 -18
  248. package/es/NFTDisplay/svg-embedder/img.js +0 -45
  249. package/es/NFTDisplay/svg-embedder/inline-svg.js +0 -39
  250. package/es/NavMenu/index.js +0 -2
  251. package/es/NavMenu/nav-menu.js +0 -358
  252. package/es/NavMenu/style.js +0 -181
  253. package/es/PageScroller/index.js +0 -286
  254. package/es/PageScroller/story/FifthComponent.js +0 -9
  255. package/es/PageScroller/story/FirstComponent.js +0 -9
  256. package/es/PageScroller/story/FourthComponent.js +0 -12
  257. package/es/PageScroller/story/FullPage.js +0 -47
  258. package/es/PageScroller/story/PageContain.js +0 -59
  259. package/es/PageScroller/story/SecondComponent.js +0 -9
  260. package/es/PageScroller/story/ThirdComponent.js +0 -9
  261. package/es/PageScroller/story/index.css +0 -115
  262. package/es/PageScroller/usePrevValue.js +0 -9
  263. package/es/Passport/index.js +0 -2
  264. package/es/Passport/passport.js +0 -103
  265. package/es/PoweredByArcBlock/index.js +0 -31
  266. package/es/PricingTable/PricingPlan.js +0 -124
  267. package/es/PricingTable/index.js +0 -53
  268. package/es/QRCode/index.js +0 -73
  269. package/es/RelativeTime/index.js +0 -107
  270. package/es/Result/common.js +0 -140
  271. package/es/Result/demo/fixtures/result-image-404.svg +0 -1
  272. package/es/Result/index.js +0 -33
  273. package/es/Result/result.js +0 -59
  274. package/es/Result/translations.js +0 -54
  275. package/es/Screenshot/BaseScreenshot/index.js +0 -91
  276. package/es/Screenshot/BaseScreenshot/shells/Macbook.js +0 -51
  277. package/es/Screenshot/BaseScreenshot/shells/Phone.js +0 -36
  278. package/es/Screenshot/demo/images/bg-00.jpg +0 -0
  279. package/es/Screenshot/demo/images/bg-01.jpg +0 -0
  280. package/es/Screenshot/demo/images/bg-02.jpg +0 -0
  281. package/es/Screenshot/demo/images/bg-03.jpg +0 -0
  282. package/es/Screenshot/demo/images/bg-04.jpg +0 -0
  283. package/es/Screenshot/demo/images/bg-05.jpg +0 -0
  284. package/es/Screenshot/demo/images/bg-06.jpg +0 -0
  285. package/es/Screenshot/demo/images/bg-07.jpg +0 -0
  286. package/es/Screenshot/demo/images/bg-08.jpg +0 -0
  287. package/es/Screenshot/demo/images/bg-09.jpg +0 -0
  288. package/es/Screenshot/devices.css +0 -1366
  289. package/es/Screenshot/index.js +0 -299
  290. package/es/SessionBlocklet/index.js +0 -173
  291. package/es/SessionManager/index.js +0 -2
  292. package/es/SessionPermission/index.js +0 -28
  293. package/es/SessionUser/components/logged-in.js +0 -229
  294. package/es/SessionUser/components/session-user-item.js +0 -102
  295. package/es/SessionUser/components/session-user-switch.js +0 -223
  296. package/es/SessionUser/components/un-login.js +0 -64
  297. package/es/SessionUser/components/user-info.js +0 -167
  298. package/es/SessionUser/index.js +0 -49
  299. package/es/SessionUser/libs/translation.js +0 -19
  300. package/es/SessionUser/libs/utils.js +0 -29
  301. package/es/Sparkline/index.js +0 -193
  302. package/es/Spinner/index.js +0 -28
  303. package/es/SplitButton/index.js +0 -145
  304. package/es/Success/index.js +0 -175
  305. package/es/Switch/index.js +0 -96
  306. package/es/Tabs/index.js +0 -214
  307. package/es/Tag/index.js +0 -108
  308. package/es/TextCollapse/index.js +0 -92
  309. package/es/Theme/index.js +0 -16
  310. package/es/Theme/theme-provider.js +0 -39
  311. package/es/Theme/theme.js +0 -145
  312. package/es/Toast/index.js +0 -97
  313. package/es/Typography/index.js +0 -95
  314. package/es/Util/constant.js +0 -42
  315. package/es/Util/deprecate.js +0 -28
  316. package/es/Util/federated.js +0 -91
  317. package/es/Util/index.js +0 -363
  318. package/es/Util/passport.js +0 -62
  319. package/es/Util/wallet.js +0 -32
  320. package/es/Video/index.js +0 -89
  321. package/es/Wallet/Action.js +0 -119
  322. package/es/Wallet/Download.js +0 -331
  323. package/es/Wallet/Open.js +0 -45
  324. package/es/Wallet/images/abtwallet.png +0 -0
  325. package/es/Wallet/images/android_download.svg +0 -23
  326. package/es/Wallet/images/app-store.svg +0 -20
  327. package/es/Wallet/images/google-play.svg +0 -70
  328. package/es/WalletOSIcon/index.js +0 -82
  329. package/es/WebWalletSWKeeper/index.js +0 -117
  330. package/es/WechatPrompt/images/android.png +0 -0
  331. package/es/WechatPrompt/images/ios.png +0 -0
  332. package/es/WechatPrompt/index.js +0 -88
  333. package/es/index.js +0 -38
  334. package/es/withTheme/index.js +0 -69
  335. package/es/withTracker/README.md +0 -34
  336. package/es/withTracker/error_boundary.js +0 -34
  337. package/es/withTracker/index.js +0 -55
@@ -1,172 +0,0 @@
1
- /* eslint-disable react/no-unused-prop-types */
2
- import PropTypes from 'prop-types';
3
- import Typography from '@mui/material/Typography';
4
- import MuiContainer from '@mui/material/Container';
5
- import Box from '@mui/material/Box';
6
- import { mergeProps } from '../Util';
7
- import Logo from '../Logo';
8
- import { styled } from '../Theme';
9
- import { jsxs as _jsxs } from "react/jsx-runtime";
10
- import { jsx as _jsx } from "react/jsx-runtime";
11
- export default function Footer(props) {
12
- const newProps = mergeProps(props, Footer, ['dark', 'style']);
13
- const {
14
- className,
15
- copyStart,
16
- style,
17
- brand,
18
- dark,
19
- addon
20
- } = newProps;
21
- const endYearString = `${new Date().getFullYear()}`;
22
- const copyStartString = `${copyStart}`;
23
- const copyYear = endYearString === copyStartString ? endYearString : `${copyStartString}-${endYearString}`;
24
- return /*#__PURE__*/_jsxs(Container, {
25
- className: className,
26
- style: style,
27
- dark: dark,
28
- children: [/*#__PURE__*/_jsx(MuiContainer, {
29
- maxWidth: false,
30
- children: /*#__PURE__*/_jsxs(Typography, {
31
- component: "div",
32
- className: "footer",
33
- children: [/*#__PURE__*/_jsxs(Typography, {
34
- component: "p",
35
- className: "footer-item",
36
- children: [/*#__PURE__*/_jsxs("span", {
37
- className: "footer-copy",
38
- children: ["Copyright \xA9 ", copyYear, " "]
39
- }), /*#__PURE__*/_jsx("span", {
40
- className: "footer-brand",
41
- children: brand
42
- })]
43
- }), addon && /*#__PURE__*/_jsx(Typography, {
44
- component: "div",
45
- className: "footer-item",
46
- sx: {
47
- order: {
48
- xs: '-1',
49
- md: 'initial'
50
- },
51
- ml: {
52
- xs: 0,
53
- md: 'auto'
54
- },
55
- width: {
56
- xs: '100%',
57
- md: 'auto'
58
- }
59
- },
60
- children: addon
61
- }), /*#__PURE__*/_jsxs(Typography, {
62
- component: "p",
63
- className: "footer-item",
64
- style: {
65
- justifyContent: 'flex-end',
66
- flexShrink: 0
67
- },
68
- children: ["Powered by", /*#__PURE__*/_jsx(Logo, {
69
- mode: dark ? 'light' : 'dark',
70
- layout: "horizontal",
71
- className: "logo-container"
72
- })]
73
- })]
74
- })
75
- }), /*#__PURE__*/_jsx(Box, {
76
- position: "absolute",
77
- right: 16,
78
- bottom: 0,
79
- fontSize: 12,
80
- sx: {
81
- color: 'transparent',
82
- '::selection': {
83
- background: '#000',
84
- color: '#fff'
85
- }
86
- },
87
- children: window?.blocklet?.version
88
- })]
89
- });
90
- }
91
- Footer.propTypes = {
92
- dark: PropTypes.bool,
93
- className: PropTypes.string,
94
- copyStart: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
95
- brand: PropTypes.string,
96
- style: PropTypes.object,
97
- addon: PropTypes.node
98
- };
99
- Footer.defaultProps = {
100
- dark: false,
101
- brand: 'ArcBlock',
102
- copyStart: '2017',
103
- className: '',
104
- style: {},
105
- addon: null
106
- };
107
- const Container = styled('div', {
108
- shouldForwardProp: prop => prop !== 'dark'
109
- })`
110
- position: relative;
111
- margin-top: 64px;
112
- padding: 24px 0 32px;
113
- border-top: 1px solid ${props => props.dark ? props.theme.palette.grey[900] : '#dee2e7'};
114
- box-sizing: border-box;
115
- width: 100%;
116
-
117
- @media (max-width: 540px) {
118
- padding: 8px 0;
119
- }
120
-
121
- .footer {
122
- display: flex;
123
- align-items: center;
124
- justify-content: space-between;
125
- flex-wrap: wrap;
126
-
127
- .footer-item {
128
- color: ${({
129
- theme,
130
- dark
131
- }) => dark ? theme.palette.grey[500] : theme.palette.grey[900]};
132
- display: flex;
133
- align-items: center;
134
- flex-wrap: wrap;
135
- font-size: 0.9rem;
136
- }
137
-
138
- .footer-brand {
139
- margin-left: 8px;
140
- margin-right: 8px;
141
- }
142
-
143
- .logo-container {
144
- margin-left: 24px;
145
- width: 90px;
146
- opacity: 0.5;
147
- }
148
-
149
- @media (max-width: 540px) {
150
- .footer-item {
151
- font-size: 0.7rem;
152
- }
153
-
154
- .logo-container {
155
- margin: 0 0 0 16px;
156
- width: 70px;
157
- height: 40px;
158
- }
159
- }
160
-
161
- @media (max-width: 380px) {
162
- .footer-item {
163
- font-size: 0.65rem;
164
- }
165
-
166
- .logo-container {
167
- margin: 0 0 0 8px;
168
- height: 24px;
169
- }
170
- }
171
- }
172
- `;
@@ -1,35 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import Box from '@mui/material/Box';
3
- import { styled } from '../Theme';
4
-
5
- /**
6
- * 一个容器组件, 当子元素 width 超出该容器时自动隐藏子元素, 必须设置明确的 height 值
7
- */
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
- function AutoHidden({
10
- height,
11
- ...rest
12
- }) {
13
- return /*#__PURE__*/_jsx(Root, {
14
- height: height,
15
- ...rest
16
- });
17
- }
18
- AutoHidden.propTypes = {
19
- height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired
20
- };
21
- const Root = styled(Box)`
22
- overflow: hidden;
23
- &:before {
24
- content: '';
25
- display: inline-block;
26
- width: 1px;
27
- height: 100%;
28
- float: left;
29
- }
30
- > * {
31
- float: left;
32
- white-space: nowrap;
33
- }
34
- `;
35
- export default AutoHidden;
@@ -1,223 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import Box from '@mui/material/Box';
3
- import Container from '@mui/material/Container';
4
- import { useRef, useState, useEffect } from 'react';
5
- import AutoHidden from './auto-hidden';
6
- import { styled } from '../Theme';
7
-
8
- /**
9
- * Header 组件
10
- * TODO: Layout/dashboard 可以复用此处的 header
11
- */
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { jsxs as _jsxs } from "react/jsx-runtime";
14
- import { Fragment as _Fragment } from "react/jsx-runtime";
15
- function Header({
16
- logo,
17
- brand,
18
- brandAddon,
19
- description,
20
- children,
21
- addons,
22
- prepend,
23
- align,
24
- maxWidth,
25
- homeLink,
26
- ...rest
27
- }) {
28
- const logoRef = useRef();
29
- const [brandWrapperMinWidth, setBrandWrapperMinWidth] = useState('0px');
30
- const style = {
31
- minWidth: brandWrapperMinWidth
32
- };
33
- useEffect(() => {
34
- if (logoRef.current) {
35
- setBrandWrapperMinWidth(`${logoRef.current.offsetWidth}px`);
36
- }
37
- }, []);
38
- const renderBrand = () => {
39
- const brandContent = /*#__PURE__*/_jsxs(_Fragment, {
40
- children: [logo && /*#__PURE__*/_jsx("div", {
41
- className: "header-logo",
42
- ref: logoRef,
43
- children: logo
44
- }), brand && /*#__PURE__*/_jsx(AutoHidden, {
45
- height: 44,
46
- sx: {
47
- flexShrink: {
48
- xs: 1
49
- }
50
- },
51
- children: /*#__PURE__*/_jsxs("div", {
52
- className: "header-brand",
53
- children: [/*#__PURE__*/_jsx("div", {
54
- className: "header-brand-title",
55
- children: /*#__PURE__*/_jsx("h2", {
56
- children: brand
57
- })
58
- }), /*#__PURE__*/_jsx("div", {
59
- className: "header-brand-desc",
60
- children: description
61
- })]
62
- })
63
- })]
64
- });
65
- if (typeof homeLink === 'function') {
66
- return homeLink(brandContent);
67
- }
68
- return /*#__PURE__*/_jsx("a", {
69
- href: homeLink,
70
- children: brandContent
71
- });
72
- };
73
- return /*#__PURE__*/_jsx(Root, {
74
- ...rest,
75
- children: /*#__PURE__*/_jsxs(Container, {
76
- maxWidth: maxWidth,
77
- className: "header-container",
78
- children: [prepend, /*#__PURE__*/_jsx("div", {
79
- className: "header-brand-wrapper",
80
- style: style,
81
- children: renderBrand()
82
- }), /*#__PURE__*/_jsx("div", {
83
- className: "header-brand-addon",
84
- children: brandAddon
85
- }), align === 'right' && /*#__PURE__*/_jsx(Box, {
86
- flexGrow: 1
87
- }), children, align === 'left' && /*#__PURE__*/_jsx(Box, {
88
- flexGrow: 1
89
- }), /*#__PURE__*/_jsx("div", {
90
- className: "header-addons",
91
- children: addons
92
- })]
93
- })
94
- });
95
- }
96
- Header.propTypes = {
97
- // logo img/svg, 可以包裹一个 a 标签
98
- logo: PropTypes.node,
99
- // 相当于 Title, 可以包裹一个 a 标签
100
- brand: PropTypes.node,
101
- // brand 右侧的内容区域, 可显示一个 badge 或 tag
102
- brandAddon: PropTypes.node,
103
- // brand 下方的描述
104
- description: PropTypes.node,
105
- children: PropTypes.node,
106
- // 右侧区域, 可以放置 icons/actions/login 等
107
- addons: PropTypes.node,
108
- // logo 左侧内容
109
- prepend: PropTypes.node,
110
- align: PropTypes.oneOf(['left', 'right']),
111
- maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false])]),
112
- homeLink: PropTypes.oneOfType([PropTypes.string, PropTypes.func])
113
- };
114
- Header.defaultProps = {
115
- logo: null,
116
- brand: null,
117
- brandAddon: null,
118
- description: null,
119
- children: null,
120
- addons: null,
121
- prepend: null,
122
- align: 'left',
123
- maxWidth: undefined,
124
- homeLink: '/'
125
- };
126
- const Root = styled('div')`
127
- position: relative;
128
- z-index: ${props => props.theme.zIndex.appBar};
129
- font-size: 14px;
130
- background: ${props => props.theme.palette.common.white};
131
- .header-container {
132
- display: flex;
133
- align-items: center;
134
- height: 64px;
135
- }
136
-
137
- .header-brand-wrapper {
138
- flex-shrink: 2;
139
- > a {
140
- display: flex;
141
- align-items: center;
142
- height: 100%;
143
- line-height: 1;
144
- color: inherit;
145
- text-decoration: none;
146
- }
147
- }
148
- .header-brand-wrapper .header-logo {
149
- display: inline-flex;
150
- position: relative;
151
- height: 44px;
152
- margin-right: 16px;
153
- img,
154
- svg {
155
- width: auto;
156
- height: 100%;
157
- max-height: 100%;
158
- }
159
- }
160
- .header-brand {
161
- display: flex;
162
- flex-direction: column;
163
- justify-content: center;
164
- height: 44px;
165
- margin-right: 16px;
166
- line-height: 1;
167
- a {
168
- color: inherit;
169
- text-decoration: none;
170
- }
171
- .header-brand-title {
172
- display: flex;
173
- align-items: center;
174
- h2 {
175
- margin: 0;
176
- font-size: 16px;
177
- }
178
- }
179
- .header-brand-desc {
180
- margin-top: 4px;
181
- color: #9397a1;
182
- }
183
- }
184
- .header-brand-addon {
185
- margin-right: 16px;
186
- }
187
- .header-addons {
188
- display: flex;
189
- align-items: center;
190
- }
191
- ${props => props.theme.breakpoints.down('lg')} {
192
- .header-brand {
193
- margin-right: 12px;
194
- .header-brand-title {
195
- h2 {
196
- font-size: 14px;
197
- }
198
- }
199
- }
200
- .header-brand-addon {
201
- display: none;
202
- }
203
- }
204
- ${props => props.theme.breakpoints.down('md')} {
205
- .header-menu {
206
- display: inline-block;
207
- }
208
- .header-logo {
209
- height: 32px;
210
- }
211
- .header-brand {
212
- .header-brand-title {
213
- h2 {
214
- font-size: 13px;
215
- }
216
- }
217
- .header-brand-desc {
218
- font-size: 12px;
219
- }
220
- }
221
- }
222
- `;
223
- export default Header;
@@ -1,2 +0,0 @@
1
- export { default as Header } from './header';
2
- export { default as ResponsiveHeader } from './responsive-header';
@@ -1,146 +0,0 @@
1
- import { useState } from 'react';
2
- import PropTypes from 'prop-types';
3
- import { useCreation, useReactive } from 'ahooks';
4
- import MenuIcon from '@mui/icons-material/Menu';
5
- import CloseIcon from '@mui/icons-material/Close';
6
- import Button from '@mui/material/IconButton';
7
- import Container from '@mui/material/Container';
8
- import useMediaQuery from '@mui/material/useMediaQuery';
9
- import Drawer from '@mui/material/Drawer';
10
- import Header from './header';
11
- import { styled, useTheme } from '../Theme';
12
-
13
- /**
14
- * ResponsiveHeader
15
- * - 窄屏下显示 burge menu
16
- * - 窄屏下将 children 区域显示到 menu 中
17
- *
18
- * 注意: 暂时不要通过 display: none 隐藏 logo, https://blog.patw.me/archives/1820/inline-svg-same-id-and-display-none-issue/
19
- */
20
- import { jsx as _jsx } from "react/jsx-runtime";
21
- import { jsxs as _jsxs } from "react/jsx-runtime";
22
- function ResponsiveHeader({
23
- menu,
24
- prepend,
25
- children,
26
- ...rest
27
- }) {
28
- const theme = useTheme();
29
- const isMobile = useMediaQuery(theme.breakpoints.down('md'));
30
- const [drawerOpen, setDrawerOpen] = useState(false);
31
- const _children = typeof children === 'function' ? children({
32
- isMobile,
33
- closeMenu: () => setDrawerOpen(false)
34
- }) : children;
35
-
36
- // HACK: MUI 的 modal 只会对 body 元素设置防滚动样式,还需要对 html 元素进行设置防滚动样式
37
- const htmlOverflowState = useReactive({
38
- changed: false,
39
- value: '',
40
- priority: ''
41
- });
42
- useCreation(() => {
43
- if (document.documentElement?.style) {
44
- const clean = () => {
45
- if (htmlOverflowState.changed) {
46
- if (htmlOverflowState.value) {
47
- document.documentElement.style.setProperty('overflow', htmlOverflowState.value, htmlOverflowState.priority);
48
- } else {
49
- document.documentElement.style.removeProperty('overflow');
50
- }
51
- htmlOverflowState.value = '';
52
- htmlOverflowState.priority = '';
53
- htmlOverflowState.changed = false;
54
- }
55
- };
56
- if (drawerOpen) {
57
- htmlOverflowState.changed = true;
58
- htmlOverflowState.value = document.documentElement.style.getPropertyValue('overflow');
59
- htmlOverflowState.priority = document.documentElement.style.getPropertyPriority('overflow');
60
- document.documentElement.style.setProperty('overflow', 'hidden', 'important');
61
- } else {
62
- clean();
63
- }
64
- return clean;
65
- }
66
- return () => {};
67
- }, [drawerOpen]);
68
-
69
- // 如果 children 没有值, 则使用普通的 Header 组件渲染 (此时并没有什么内容需要在 menu 中显示)
70
- if (!children) {
71
- return /*#__PURE__*/_jsx(Header, {
72
- prepend: prepend,
73
- ...rest
74
- });
75
- }
76
- return /*#__PURE__*/_jsxs(Root, {
77
- prepend: prepend || /*#__PURE__*/_jsx(Button, {
78
- sx: {
79
- color: theme.palette.grey[500]
80
- },
81
- edge: "start",
82
- className: "header-menu",
83
- "aria-label": "header menu button",
84
- onClick: () => setDrawerOpen(!drawerOpen),
85
- children: drawerOpen ? /*#__PURE__*/_jsx(CloseIcon, {}) : /*#__PURE__*/_jsx(MenuIcon, {})
86
- }),
87
- ...rest,
88
- children: [!isMobile && _children, isMobile && /*#__PURE__*/_jsx(Drawer, {
89
- open: drawerOpen,
90
- onClose: () => setDrawerOpen(false),
91
- ModalProps: {
92
- disablePortal: false,
93
- keepMounted: true,
94
- BackdropComponent: null
95
- },
96
- anchor: "top",
97
- sx: {
98
- top: 64,
99
- zIndex: theme.zIndex.appBar - 1
100
- },
101
- PaperProps: {
102
- style: {
103
- top: 64,
104
- bottom: 0,
105
- boxShadow: 'none'
106
- }
107
- },
108
- children: /*#__PURE__*/_jsx(MenuPanel, {
109
- children: _children
110
- })
111
- })]
112
- });
113
- }
114
- ResponsiveHeader.propTypes = {
115
- ...Header.PropTypes,
116
- // 如果是 function, 则
117
- // - 会传入一个 isMobile 参数, isMobile 为 true 时, 表示 children 会显示在 menu 中, 可以根据 isMobile 参数调整要渲染的内容, 比如如果 isMobile 为 true 则使用 inline 模式的 NavMenu (适用于移动端)
118
- // - 会传入一个 closeMenu 参数, 可以关闭 menu
119
- children: PropTypes.oneOfType([PropTypes.node, PropTypes.func])
120
- };
121
- ResponsiveHeader.defaultProps = {
122
- ...Header.defaultProps
123
- };
124
- const Root = styled(Header)`
125
- .header-menu {
126
- display: none;
127
- }
128
- ${props => props.theme.breakpoints.down('md')} {
129
- .header-menu {
130
- display: flex;
131
- margin-right: 12px;
132
- }
133
- }
134
- `;
135
- const MenuPanel = styled(Container)`
136
- padding-top: 8px;
137
- padding-bottom: 16px;
138
- .navmenu {
139
- margin: 0 -16px;
140
- .navmenu-root > .navmenu-item,
141
- .navmenu-root > .navmenu-sub {
142
- border: 0;
143
- }
144
- }
145
- `;
146
- export default ResponsiveHeader;
package/es/Icon/image.js DELETED
@@ -1,65 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import Img from '../Img';
3
- import { styled } from '../Theme';
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- import { jsxs as _jsxs } from "react/jsx-runtime";
6
- export default function ImageIcon({
7
- name,
8
- size,
9
- alt,
10
- color,
11
- style,
12
- prefix,
13
- showBadge,
14
- ...rest
15
- }) {
16
- const src = `${prefix}/${name}-${color.replace(/^#/, '')}.png`;
17
- return /*#__PURE__*/_jsxs(Div, {
18
- style: {
19
- width: size,
20
- height: size
21
- },
22
- children: [/*#__PURE__*/_jsx(Img, {
23
- width: size,
24
- height: size,
25
- alt: alt || name,
26
- src: src,
27
- style: Object.assign({
28
- width: size
29
- }, style),
30
- ...rest
31
- }), showBadge && /*#__PURE__*/_jsx("i", {
32
- className: "badge-point"
33
- })]
34
- });
35
- }
36
- ImageIcon.propTypes = {
37
- name: PropTypes.string.isRequired,
38
- size: PropTypes.number,
39
- color: PropTypes.string,
40
- alt: PropTypes.string,
41
- style: PropTypes.object,
42
- prefix: PropTypes.string,
43
- showBadge: PropTypes.bool
44
- };
45
- ImageIcon.defaultProps = {
46
- size: 36,
47
- color: '#000000',
48
- alt: '',
49
- style: {},
50
- prefix: '/images',
51
- showBadge: false
52
- };
53
- const Div = styled('div')`
54
- position: relative;
55
- .badge-point {
56
- position: absolute;
57
- width: 10px;
58
- height: 10px;
59
- border-radius: 10px;
60
- background-color: #fe4e44;
61
- right: -2px;
62
- top: 0;
63
- box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.3), 0px 0px 20px rgba(0, 0, 0, 0.1);
64
- }
65
- `;