@arcblock/ux 0.78.26 → 1.6.60
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.
- package/LICENSE +1 -1
- package/README.md +0 -56
- package/lib/ActionButton/index.js +6 -4
- package/lib/ActivityIndicator/index.js +75 -23
- package/lib/Alert/index.js +15 -11
- package/lib/Async/index.js +1 -1
- package/lib/Badge/index.js +17 -15
- package/lib/Blocklet/index.js +261 -0
- package/lib/Button/wrap.js +96 -43
- package/lib/ButtonGroup/index.js +3 -16
- package/lib/Center/index.js +30 -4
- package/lib/ClickToCopy/index.js +10 -8
- package/lib/CodeBlock/index.js +40 -13
- package/lib/Colors/index.js +15 -0
- package/lib/Colors/themes/default.js +85 -0
- package/lib/ContactForm/index.js +9 -10
- package/lib/CookieConsent/index.js +98 -0
- package/lib/CountDown/index.js +18 -14
- package/lib/Dialog/confirm.js +84 -0
- package/lib/Dialog/dialog.js +137 -0
- package/lib/Dialog/index.js +23 -0
- package/lib/Earth/index.js +33 -33
- package/lib/Empty/index.js +61 -0
- package/lib/Footer/index.js +16 -18
- package/lib/Icon/image.js +10 -13
- package/lib/Icon/index.js +10 -8
- package/lib/Img/index.js +212 -0
- package/lib/InfoRow/index.js +7 -6
- package/lib/Layout/dashboard/header.js +60 -42
- package/lib/Layout/dashboard/index.js +72 -60
- package/lib/Layout/dashboard/sidebar.js +41 -25
- package/lib/Layout/index.js +113 -51
- package/lib/Locale/browser-lang.js +0 -2
- package/lib/Locale/context.js +85 -61
- package/lib/Locale/selector.js +33 -20
- package/lib/Logo/index.js +15 -13
- package/lib/Metric/index.js +5 -6
- package/lib/NFTDisplay/README.md +59 -0
- package/lib/NFTDisplay/aspect-ratio-container.js +52 -0
- package/lib/NFTDisplay/broken.js +25 -0
- package/lib/NFTDisplay/index.js +317 -0
- package/lib/NFTDisplay/loading.js +23 -0
- package/lib/NFTDisplay/svg-embedder/img.js +68 -0
- package/lib/NFTDisplay/svg-embedder/inline-svg.js +54 -0
- package/lib/PageScroller/index.js +10 -11
- package/lib/PageScroller/usePrevValue.js +2 -2
- package/lib/PricingTable/PricingPlan.js +12 -15
- package/lib/PricingTable/index.js +5 -5
- package/lib/QRCode/index.js +89 -0
- package/lib/Result/common.js +176 -0
- package/lib/Result/index.js +61 -0
- package/lib/Result/result.js +69 -0
- package/lib/Result/translations.js +61 -0
- package/lib/Screenshot/index.js +14 -13
- package/lib/Spinner/index.js +37 -0
- package/lib/SplitButton/index.js +126 -0
- package/lib/Switch/index.js +107 -0
- package/lib/Tabs/index.js +24 -47
- package/lib/Tag/index.js +15 -13
- package/lib/Terminal/Player.js +43 -45
- package/lib/Terminal/index.js +3 -1
- package/lib/Terminal/util.js +2 -3
- package/lib/TextCollapse/index.js +21 -14
- package/lib/Theme/index.js +79 -63
- package/lib/Theme/responsiveFontSizes.js +8 -8
- package/lib/Toast/index.js +12 -11
- package/lib/Util/index.js +197 -26
- package/lib/Video/index.js +8 -11
- package/lib/Wallet/Action.js +15 -13
- package/lib/Wallet/Download.js +60 -58
- package/lib/Wallet/Open.js +2 -2
- package/lib/WechatPrompt/index.js +10 -10
- package/lib/index.js +6 -6
- package/lib/withTheme/index.js +5 -17
- package/lib/withTracker/error_boundary.js +3 -3
- package/lib/withTracker/index.js +6 -7
- package/package.json +23 -17
- package/src/ActionButton/index.js +65 -0
- package/src/ActivityIndicator/index.js +141 -0
- package/src/Alert/index.js +104 -0
- package/src/Async/index.js +39 -0
- package/src/Badge/index.js +71 -0
- package/src/Blocklet/index.js +424 -0
- package/src/Button/index.js +4 -0
- package/src/Button/wrap.js +101 -0
- package/src/ButtonGroup/index.js +6 -0
- package/src/Center/index.js +40 -0
- package/src/ClickToCopy/index.js +90 -0
- package/src/CodeBlock/index.js +160 -0
- package/src/Colors/index.js +1 -0
- package/src/Colors/themes/default.js +54 -0
- package/src/ContactForm/index.js +240 -0
- package/src/CookieConsent/index.js +90 -0
- package/src/CountDown/index.js +151 -0
- package/src/Dialog/confirm.js +76 -0
- package/src/Dialog/dialog.js +162 -0
- package/src/Dialog/index.js +2 -0
- package/src/DriftBot/index.js +81 -0
- package/src/Earth/countries.json +8057 -0
- package/src/Earth/index.js +511 -0
- package/src/Earth/util.js +69 -0
- package/src/Empty/index.js +41 -0
- package/src/Footer/index.js +110 -0
- package/src/Icon/image.js +55 -0
- package/src/Icon/index.js +69 -0
- package/src/Img/index.js +172 -0
- package/src/InfoRow/index.js +83 -0
- package/src/Layout/dashboard/header.js +157 -0
- package/src/Layout/dashboard/index.js +150 -0
- package/src/Layout/dashboard/sidebar.js +122 -0
- package/src/Layout/index.js +318 -0
- package/src/Locale/browser-lang.js +63 -0
- package/src/Locale/context.js +94 -0
- package/src/Locale/images/globe-dark.png +0 -0
- package/src/Locale/images/globe-light.png +0 -0
- package/src/Locale/selector.js +135 -0
- package/src/Logo/images/logo-dark-text.svg +3 -0
- package/src/Logo/images/logo-dark-top.svg +6 -0
- package/src/Logo/images/logo-light-text.svg +3 -0
- package/src/Logo/images/logo-light-top.svg +6 -0
- package/src/Logo/index.js +47 -0
- package/src/Metric/index.js +115 -0
- package/src/NFTDisplay/README.md +59 -0
- package/src/NFTDisplay/aspect-ratio-container.js +34 -0
- package/src/NFTDisplay/broken.js +18 -0
- package/src/NFTDisplay/index.js +257 -0
- package/src/NFTDisplay/loading.js +17 -0
- package/src/NFTDisplay/svg-embedder/img.js +36 -0
- package/src/NFTDisplay/svg-embedder/inline-svg.js +37 -0
- package/src/PageScroller/index.js +342 -0
- package/src/PageScroller/usePrevValue.js +12 -0
- package/src/PricingTable/PricingPlan.js +112 -0
- package/src/PricingTable/index.js +43 -0
- package/src/QRCode/index.js +56 -0
- package/src/Result/common.js +116 -0
- package/src/Result/index.js +31 -0
- package/src/Result/result.js +57 -0
- package/src/Result/translations.js +56 -0
- package/src/Screenshot/devices.css +1366 -0
- package/src/Screenshot/index.js +181 -0
- package/src/Spinner/index.js +19 -0
- package/src/SplitButton/index.js +112 -0
- package/src/Switch/index.js +78 -0
- package/src/Tabs/index.js +46 -0
- package/src/Tag/index.js +73 -0
- package/src/Terminal/Player.js +364 -0
- package/src/Terminal/index.js +150 -0
- package/src/Terminal/player.css +378 -0
- package/src/Terminal/util.js +167 -0
- package/src/Terminal/xterm.css +171 -0
- package/src/TextCollapse/index.js +92 -0
- package/src/Theme/index.js +184 -0
- package/src/Theme/responsiveFontSizes.js +94 -0
- package/src/Toast/index.js +118 -0
- package/src/Util/index.js +281 -0
- package/src/Video/index.js +72 -0
- package/src/Wallet/Action.js +105 -0
- package/src/Wallet/Download.js +130 -0
- package/src/Wallet/Open.js +50 -0
- package/src/Wallet/images/abtwallet.png +0 -0
- package/src/Wallet/images/android_download.svg +23 -0
- package/src/Wallet/images/app-store.svg +20 -0
- package/src/Wallet/images/google-play.svg +70 -0
- package/src/WechatPrompt/images/android.png +0 -0
- package/src/WechatPrompt/images/ios.png +0 -0
- package/src/WechatPrompt/index.js +81 -0
- package/src/index.js +63 -0
- package/src/withTheme/index.js +72 -0
- package/src/withTracker/README.md +34 -0
- package/src/withTracker/error_boundary.js +34 -0
- package/src/withTracker/index.js +70 -0
- package/lib/GraphQLPlayground/graphiql.css +0 -1850
- package/lib/GraphQLPlayground/index.js +0 -302
- package/lib/GraphQLPlayground/util.js +0 -55
package/lib/Locale/selector.js
CHANGED
|
@@ -11,6 +11,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
11
11
|
|
|
12
12
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
13
|
|
|
14
|
+
var _styles = require("@material-ui/core/styles");
|
|
15
|
+
|
|
14
16
|
var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
|
|
15
17
|
|
|
16
18
|
var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
|
|
@@ -27,7 +29,7 @@ var _MenuList = _interopRequireDefault(require("@material-ui/core/MenuList"));
|
|
|
27
29
|
|
|
28
30
|
var _Check = _interopRequireDefault(require("@material-ui/icons/Check"));
|
|
29
31
|
|
|
30
|
-
var _Util = require("
|
|
32
|
+
var _Util = require("../Util");
|
|
31
33
|
|
|
32
34
|
var _context = require("./context");
|
|
33
35
|
|
|
@@ -35,11 +37,13 @@ var _globeDark = _interopRequireDefault(require("./images/globe-dark.png"));
|
|
|
35
37
|
|
|
36
38
|
var _globeLight = _interopRequireDefault(require("./images/globe-light.png"));
|
|
37
39
|
|
|
40
|
+
const _excluded = ["dark", "showText", "popperProps"];
|
|
41
|
+
|
|
38
42
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
39
43
|
|
|
40
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
44
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
41
45
|
|
|
42
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
46
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
43
47
|
|
|
44
48
|
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; }
|
|
45
49
|
|
|
@@ -51,14 +55,15 @@ function LocaleSelector(props) {
|
|
|
51
55
|
showText,
|
|
52
56
|
popperProps
|
|
53
57
|
} = props,
|
|
54
|
-
rest = _objectWithoutProperties(props,
|
|
58
|
+
rest = _objectWithoutProperties(props, _excluded);
|
|
55
59
|
|
|
56
60
|
const {
|
|
57
61
|
locale,
|
|
58
62
|
changeLocale
|
|
59
63
|
} = (0, _react.useContext)(_context.LocaleContext);
|
|
60
|
-
const
|
|
64
|
+
const anchorEl = (0, _react.useRef)(null);
|
|
61
65
|
const [open, setOpen] = (0, _react.useState)(false);
|
|
66
|
+
const theme = (0, _styles.useTheme)();
|
|
62
67
|
|
|
63
68
|
const onSelect = newLocale => {
|
|
64
69
|
changeLocale(newLocale);
|
|
@@ -69,40 +74,48 @@ function LocaleSelector(props) {
|
|
|
69
74
|
}
|
|
70
75
|
};
|
|
71
76
|
|
|
77
|
+
function onClose(e) {
|
|
78
|
+
var _anchorEl$current;
|
|
79
|
+
|
|
80
|
+
if ((_anchorEl$current = anchorEl.current) !== null && _anchorEl$current !== void 0 && _anchorEl$current.contains(e.target)) return;
|
|
81
|
+
setOpen(false);
|
|
82
|
+
}
|
|
83
|
+
|
|
72
84
|
const ButtonComponent = showText ? _Button.default : _IconButton.default;
|
|
73
|
-
return _react.default.createElement(Div, Object.assign({
|
|
85
|
+
return /*#__PURE__*/_react.default.createElement(Div, Object.assign({
|
|
74
86
|
component: "div",
|
|
75
|
-
dark: dark
|
|
76
|
-
|
|
77
|
-
|
|
87
|
+
dark: dark,
|
|
88
|
+
theme: theme
|
|
89
|
+
}, rest), /*#__PURE__*/_react.default.createElement(ButtonComponent, {
|
|
90
|
+
ref: anchorEl,
|
|
78
91
|
className: "trigger",
|
|
79
92
|
onClick: () => setOpen(!open)
|
|
80
|
-
}, _react.default.createElement("img", {
|
|
93
|
+
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
81
94
|
src: dark ? _globeDark.default : _globeLight.default,
|
|
82
95
|
className: "trigger-image",
|
|
83
96
|
alt: "globe"
|
|
84
|
-
}), showText ? _react.default.createElement(_Typography.default, {
|
|
97
|
+
}), showText ? /*#__PURE__*/_react.default.createElement(_Typography.default, {
|
|
85
98
|
component: "strong",
|
|
86
99
|
className: "trigger-text"
|
|
87
|
-
}, _context.languages.find(x => x.value === locale).text) : ''), _react.default.createElement(_Popper.default, Object.assign({
|
|
100
|
+
}, _context.languages.find(x => x.value === locale).text) : ''), /*#__PURE__*/_react.default.createElement(_Popper.default, Object.assign({
|
|
88
101
|
open: open,
|
|
89
|
-
anchorEl: anchorEl
|
|
102
|
+
anchorEl: anchorEl.current
|
|
90
103
|
}, popperProps, {
|
|
91
104
|
disablePortal: true
|
|
92
|
-
}), _react.default.createElement("div", {
|
|
105
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
93
106
|
className: "locales"
|
|
94
|
-
}, _react.default.createElement(_ClickAwayListener.default, {
|
|
95
|
-
onClickAway:
|
|
96
|
-
}, _react.default.createElement(_MenuList.default, null, _context.languages.map(
|
|
107
|
+
}, /*#__PURE__*/_react.default.createElement(_ClickAwayListener.default, {
|
|
108
|
+
onClickAway: onClose
|
|
109
|
+
}, /*#__PURE__*/_react.default.createElement(_MenuList.default, null, _context.languages.map(_ref => {
|
|
97
110
|
let {
|
|
98
111
|
value,
|
|
99
112
|
text
|
|
100
113
|
} = _ref;
|
|
101
|
-
return _react.default.createElement(_MenuItem.default, {
|
|
114
|
+
return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
|
|
102
115
|
key: value,
|
|
103
116
|
className: "locale-item",
|
|
104
117
|
onClick: () => onSelect(value, text)
|
|
105
|
-
}, _react.default.createElement(_Check.default, {
|
|
118
|
+
}, /*#__PURE__*/_react.default.createElement(_Check.default, {
|
|
106
119
|
className: value === locale ? 'check-icon check-icon-visible' : 'check-icon',
|
|
107
120
|
fontSize: "small"
|
|
108
121
|
}), text);
|
|
@@ -128,5 +141,5 @@ exports.default = _default;
|
|
|
128
141
|
|
|
129
142
|
const Div = _styledComponents.default.div.withConfig({
|
|
130
143
|
displayName: "selector__Div",
|
|
131
|
-
componentId: "wfz3sf-0"
|
|
144
|
+
componentId: "sc-wfz3sf-0"
|
|
132
145
|
})([".trigger{display:flex;flex-direction:column;justify-content:center;font-size:14px;.trigger-image{width:", "px;height:", "px;}.trigger-text{margin-left:5px;font-size:14px;}}.locales{background:", ";}.locale-item{font-size:16px;font-style:normal;font-stretch:normal;line-height:normal;letter-spacing:2px;text-align:center;color:", ";cursor:pointer;display:flex;padding:16px;align-items:center;.check-icon{visibility:hidden;margin-right:4px;}.check-icon-visible{visibility:visible;}}"], props => props.size, props => props.size, props => (0, _Util.getBackground)(props), props => (0, _Util.getColor)(props));
|
package/lib/Logo/index.js
CHANGED
|
@@ -11,6 +11,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
11
11
|
|
|
12
12
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
13
|
|
|
14
|
+
const _excluded = ["showText", "showLogo", "mode", "layout"];
|
|
15
|
+
|
|
14
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
17
|
|
|
16
18
|
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; }
|
|
@@ -18,13 +20,13 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
|
|
|
18
20
|
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; }
|
|
19
21
|
|
|
20
22
|
var LightLogo = function LightLogo(props) {
|
|
21
|
-
return _react.default.createElement("svg", props, _react.default.createElement("g", {
|
|
23
|
+
return /*#__PURE__*/_react.default.createElement("svg", props, /*#__PURE__*/_react.default.createElement("g", {
|
|
22
24
|
fill: "none",
|
|
23
25
|
fillRule: "evenodd",
|
|
24
26
|
stroke: "#FFF"
|
|
25
|
-
}, _react.default.createElement("path", {
|
|
27
|
+
}, /*#__PURE__*/_react.default.createElement("path", {
|
|
26
28
|
d: "M.5 13.077L22.15.577l21.651 12.5v25l-21.65 12.5L.5 38.077zM22.15.577v50M.5 13.077l43.301 25m-43.301 0l43.301-25"
|
|
27
|
-
}), _react.default.createElement("path", {
|
|
29
|
+
}), /*#__PURE__*/_react.default.createElement("path", {
|
|
28
30
|
d: "M22.15 38.077l10.826-6.25-10.825-18.75-10.825 18.75z"
|
|
29
31
|
})));
|
|
30
32
|
};
|
|
@@ -37,7 +39,7 @@ LightLogo.defaultProps = {
|
|
|
37
39
|
};
|
|
38
40
|
|
|
39
41
|
var LightText = function LightText(props) {
|
|
40
|
-
return _react.default.createElement("svg", props, _react.default.createElement("path", {
|
|
42
|
+
return /*#__PURE__*/_react.default.createElement("svg", props, /*#__PURE__*/_react.default.createElement("path", {
|
|
41
43
|
fill: "#FFF",
|
|
42
44
|
fillRule: "evenodd",
|
|
43
45
|
d: "M6.5.053h2.864L16.028 18h-2.114l-1.391-3.795H3.504L2.14 18H0L6.5.053zm1.474 1.481L4.04 12.563h7.895L7.975 1.534zm14.44 3.542c1.27 0 2.198.296 2.78.892.58.597.871 1.52.871 2.765v.36c0 .117-.008.245-.026.385h-1.826c.018-.14.027-.292.027-.452v-.48c0-.766-.186-1.283-.551-1.55-.367-.266-.916-.4-1.65-.4-.968 0-1.698.24-2.189.723-.493.48-.738 1.208-.738 2.187v8.308h-1.88V5.341h1.824l-.079 1.443c.376-.614.863-1.053 1.463-1.316a4.868 4.868 0 0 1 1.974-.392zM35.95 15.903c.501-.328.752-1.205.752-2.63h1.852c0 1.924-.403 3.178-1.208 3.765-.806.589-2.158.882-4.055.882-2.65 0-4.24-.538-4.766-1.616-.529-1.076-.793-2.781-.793-5.114 0-2.118.367-3.645 1.102-4.581.732-.934 2.209-1.401 4.43-1.401 1.378 0 2.569.221 3.572.665 1.002.446 1.503 1.497 1.503 3.153v.188a.234.234 0 0 0-.027.106v.106h-1.826c0-1.12-.228-1.851-.685-2.188-.455-.34-1.23-.507-2.322-.507-1.665 0-2.713.259-3.142.782-.43.524-.646 1.67-.646 3.44V12.2c0 1.4.161 2.448.485 3.15.322.7 1.297 1.048 2.926 1.048 1.397 0 2.346-.165 2.848-.495zm15.87-.318c.606-.328.912-1.263.912-2.805 0-.924-.147-1.69-.444-2.302-.294-.611-1.007-.917-2.133-.917h-7.09v6.516h5.528c1.543 0 2.617-.165 3.226-.492zm-8.754-13.85v6.036h5.665c1.325 0 2.239-.214 2.737-.643.503-.428.755-1.288.755-2.575 0-1.09-.192-1.834-.577-2.226-.385-.394-1.116-.591-2.19-.591h-6.39zM52 8.466c1.185.322 1.956.816 2.314 1.482.359.67.54 1.581.54 2.739 0 1.6-.325 2.858-.97 3.764-.647.909-1.874 1.363-3.686 1.363H41.05V0h8.62c1.592 0 2.759.312 3.503.934.744.624 1.115 1.78 1.115 3.473 0 1.014-.129 1.855-.386 2.522-.258.669-.89 1.181-1.903 1.536zm5.43 9.348V.001h1.907v17.812H57.43zm13.374-6.168v-.708c0-1.539-.141-2.636-.426-3.297-.284-.658-1.191-.99-2.718-.99h-.401c-1.617 0-2.625.25-3.025.75-.399.5-.599 1.632-.599 3.4v2.021c0 .206.008.407.024.602a9.48 9.48 0 0 0 .216 1.474c.106.465.275.822.505 1.072.196.179.435.302.72.373.283.072.586.116.905.135h1.254c1.083 0 1.914-.151 2.492-.456.577-.302.9-1.043.972-2.22a18.338 18.338 0 0 0 .054-1.447c.015-.233.027-.47.027-.71zm-3.786-6.518c2.399 0 3.956.414 4.672 1.243.717.828 1.074 2.418 1.074 4.766 0 2.048-.219 3.704-.657 4.966C71.668 17.367 70.16 18 67.581 18c-2.237 0-3.782-.347-4.632-1.042-.85-.694-1.275-2.205-1.275-4.54v-1.174c0-2.12.318-3.669.954-4.646.635-.98 2.099-1.471 4.39-1.471zm16.434 10.776c.501-.328.752-1.205.752-2.63h1.853c0 1.924-.403 3.178-1.209 3.765-.804.589-2.157.882-4.054.882-2.648 0-4.24-.538-4.767-1.616-.528-1.076-.79-2.781-.79-5.114 0-2.118.365-3.645 1.1-4.581.732-.934 2.21-1.401 4.43-1.401 1.377 0 2.568.221 3.571.665 1.003.446 1.504 1.497 1.504 3.153v.188a.232.232 0 0 0-.026.106v.106H83.99c0-1.12-.229-1.851-.686-2.188-.455-.34-1.23-.507-2.323-.507-1.665 0-2.712.259-3.142.782-.43.524-.643 1.67-.643 3.44V12.2c0 1.4.16 2.448.482 3.15.324.7 1.298 1.048 2.927 1.048 1.397 0 2.346-.165 2.847-.495zm9.236-4.82L99 17.813h-2.47l-5.317-6.01h-.752v6.01h-1.907V0h1.907v10.362h.752l4.512-5.02h2.309l-5.346 5.741z"
|
|
@@ -52,13 +54,13 @@ LightText.defaultProps = {
|
|
|
52
54
|
};
|
|
53
55
|
|
|
54
56
|
var DarkLogo = function DarkLogo(props) {
|
|
55
|
-
return _react.default.createElement("svg", props, _react.default.createElement("g", {
|
|
57
|
+
return /*#__PURE__*/_react.default.createElement("svg", props, /*#__PURE__*/_react.default.createElement("g", {
|
|
56
58
|
fill: "none",
|
|
57
59
|
fillRule: "evenodd",
|
|
58
60
|
stroke: "#000"
|
|
59
|
-
}, _react.default.createElement("path", {
|
|
61
|
+
}, /*#__PURE__*/_react.default.createElement("path", {
|
|
60
62
|
d: "M.5 13.077L22.15.577l21.651 12.5v25l-21.65 12.5L.5 38.077zM22.15.577v50M.5 13.077l43.301 25m-43.301 0l43.301-25"
|
|
61
|
-
}), _react.default.createElement("path", {
|
|
63
|
+
}), /*#__PURE__*/_react.default.createElement("path", {
|
|
62
64
|
d: "M22.15 38.077l10.826-6.25-10.825-18.75-10.825 18.75z"
|
|
63
65
|
})));
|
|
64
66
|
};
|
|
@@ -71,7 +73,7 @@ DarkLogo.defaultProps = {
|
|
|
71
73
|
};
|
|
72
74
|
|
|
73
75
|
var DarkText = function DarkText(props) {
|
|
74
|
-
return _react.default.createElement("svg", props, _react.default.createElement("path", {
|
|
76
|
+
return /*#__PURE__*/_react.default.createElement("svg", props, /*#__PURE__*/_react.default.createElement("path", {
|
|
75
77
|
fillRule: "evenodd",
|
|
76
78
|
d: "M6.5.053h2.864L16.028 18h-2.114l-1.391-3.795H3.504L2.14 18H0L6.5.053zm1.474 1.481L4.04 12.563h7.895L7.975 1.534zm14.44 3.542c1.27 0 2.198.296 2.78.892.58.597.871 1.52.871 2.765v.36c0 .117-.008.245-.026.385h-1.826c.018-.14.027-.292.027-.452v-.48c0-.766-.186-1.283-.551-1.55-.367-.266-.916-.4-1.65-.4-.968 0-1.698.24-2.189.723-.493.48-.738 1.208-.738 2.187v8.308h-1.88V5.341h1.824l-.079 1.443c.376-.614.863-1.053 1.463-1.316a4.868 4.868 0 0 1 1.974-.392zM35.95 15.903c.501-.328.752-1.205.752-2.63h1.852c0 1.924-.403 3.178-1.208 3.765-.806.589-2.158.882-4.055.882-2.65 0-4.24-.538-4.766-1.616-.529-1.076-.793-2.781-.793-5.114 0-2.118.367-3.645 1.102-4.581.732-.934 2.209-1.401 4.43-1.401 1.378 0 2.569.221 3.572.665 1.002.446 1.503 1.497 1.503 3.153v.188a.234.234 0 0 0-.027.106v.106h-1.826c0-1.12-.228-1.851-.685-2.188-.455-.34-1.23-.507-2.322-.507-1.665 0-2.713.259-3.142.782-.43.524-.646 1.67-.646 3.44V12.2c0 1.4.161 2.448.485 3.15.322.7 1.297 1.048 2.926 1.048 1.397 0 2.346-.165 2.848-.495zm15.87-.318c.606-.328.912-1.263.912-2.805 0-.924-.147-1.69-.444-2.302-.294-.611-1.007-.917-2.133-.917h-7.09v6.516h5.528c1.543 0 2.617-.165 3.226-.492zm-8.754-13.85v6.036h5.665c1.325 0 2.239-.214 2.737-.643.503-.428.755-1.288.755-2.575 0-1.09-.192-1.834-.577-2.226-.385-.394-1.116-.591-2.19-.591h-6.39zM52 8.466c1.185.322 1.956.816 2.314 1.482.359.67.54 1.581.54 2.739 0 1.6-.325 2.858-.97 3.764-.647.909-1.874 1.363-3.686 1.363H41.05V0h8.62c1.592 0 2.759.312 3.503.934.744.624 1.115 1.78 1.115 3.473 0 1.014-.129 1.855-.386 2.522-.258.669-.89 1.181-1.903 1.536zm5.43 9.348V.001h1.907v17.812H57.43zm13.374-6.168v-.708c0-1.539-.141-2.636-.426-3.297-.284-.658-1.191-.99-2.718-.99h-.401c-1.617 0-2.625.25-3.025.75-.399.5-.599 1.632-.599 3.4v2.021c0 .206.008.407.024.602a9.48 9.48 0 0 0 .216 1.474c.106.465.275.822.505 1.072.196.179.435.302.72.373.283.072.586.116.905.135h1.254c1.083 0 1.914-.151 2.492-.456.577-.302.9-1.043.972-2.22a18.338 18.338 0 0 0 .054-1.447c.015-.233.027-.47.027-.71zm-3.786-6.518c2.399 0 3.956.414 4.672 1.243.717.828 1.074 2.418 1.074 4.766 0 2.048-.219 3.704-.657 4.966C71.668 17.367 70.16 18 67.581 18c-2.237 0-3.782-.347-4.632-1.042-.85-.694-1.275-2.205-1.275-4.54v-1.174c0-2.12.318-3.669.954-4.646.635-.98 2.099-1.471 4.39-1.471zm16.434 10.776c.501-.328.752-1.205.752-2.63h1.853c0 1.924-.403 3.178-1.209 3.765-.804.589-2.157.882-4.054.882-2.648 0-4.24-.538-4.767-1.616-.528-1.076-.79-2.781-.79-5.114 0-2.118.365-3.645 1.1-4.581.732-.934 2.21-1.401 4.43-1.401 1.377 0 2.568.221 3.571.665 1.003.446 1.504 1.497 1.504 3.153v.188a.232.232 0 0 0-.026.106v.106H83.99c0-1.12-.229-1.851-.686-2.188-.455-.34-1.23-.507-2.323-.507-1.665 0-2.712.259-3.142.782-.43.524-.643 1.67-.643 3.44V12.2c0 1.4.16 2.448.482 3.15.324.7 1.298 1.048 2.927 1.048 1.397 0 2.346-.165 2.847-.495zm9.236-4.82L99 17.813h-2.47l-5.317-6.01h-.752v6.01h-1.907V0h1.907v10.362h.752l4.512-5.02h2.309l-5.346 5.741z"
|
|
77
79
|
}));
|
|
@@ -91,15 +93,15 @@ function Logo(_ref) {
|
|
|
91
93
|
mode,
|
|
92
94
|
layout
|
|
93
95
|
} = _ref,
|
|
94
|
-
rest = _objectWithoutProperties(_ref,
|
|
96
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
95
97
|
|
|
96
|
-
const logo = mode === 'light' ? _react.default.createElement(LightLogo, null) : _react.default.createElement(DarkLogo, null);
|
|
97
|
-
const text = mode === 'light' ? _react.default.createElement(LightText, {
|
|
98
|
+
const logo = mode === 'light' ? /*#__PURE__*/_react.default.createElement(LightLogo, null) : /*#__PURE__*/_react.default.createElement(DarkLogo, null);
|
|
99
|
+
const text = mode === 'light' ? /*#__PURE__*/_react.default.createElement(LightText, {
|
|
98
100
|
className: "logo-text"
|
|
99
|
-
}) : _react.default.createElement(DarkText, {
|
|
101
|
+
}) : /*#__PURE__*/_react.default.createElement(DarkText, {
|
|
100
102
|
className: "logo-text"
|
|
101
103
|
});
|
|
102
|
-
return _react.default.createElement(Container, Object.assign({
|
|
104
|
+
return /*#__PURE__*/_react.default.createElement(Container, Object.assign({
|
|
103
105
|
layout: layout
|
|
104
106
|
}, rest), showLogo && logo, showText && text);
|
|
105
107
|
}
|
package/lib/Metric/index.js
CHANGED
|
@@ -16,7 +16,6 @@ var _image = _interopRequireDefault(require("../Icon/image"));
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
|
|
18
18
|
/* eslint-disable react/no-danger */
|
|
19
|
-
// eslint-disable-next-line object-curly-newline
|
|
20
19
|
function Metric(_ref) {
|
|
21
20
|
let {
|
|
22
21
|
icon,
|
|
@@ -28,24 +27,24 @@ function Metric(_ref) {
|
|
|
28
27
|
prefix
|
|
29
28
|
} = _ref;
|
|
30
29
|
|
|
31
|
-
const metric = _react.default.createElement(_react.default.Fragment, null, _react.default.createElement("div", {
|
|
30
|
+
const metric = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
32
31
|
className: "metric__image"
|
|
33
|
-
}, _react.default.createElement(_image.default, {
|
|
32
|
+
}, /*#__PURE__*/_react.default.createElement(_image.default, {
|
|
34
33
|
name: icon,
|
|
35
34
|
alt: name,
|
|
36
35
|
size: 30,
|
|
37
36
|
prefix: prefix,
|
|
38
37
|
color: "#222222"
|
|
39
|
-
})), _react.default.createElement("div", null, _react.default.createElement("div", {
|
|
38
|
+
})), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
|
|
40
39
|
className: "metric__number ".concat(animated ? 'metric__number--animated' : ''),
|
|
41
40
|
dangerouslySetInnerHTML: {
|
|
42
41
|
__html: value
|
|
43
42
|
}
|
|
44
|
-
}), _react.default.createElement("div", {
|
|
43
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
45
44
|
className: "metric__name"
|
|
46
45
|
}, name)));
|
|
47
46
|
|
|
48
|
-
return _react.default.createElement(Container, null, url ? _react.default.createElement(LinkComponent, {
|
|
47
|
+
return /*#__PURE__*/_react.default.createElement(Container, null, url ? /*#__PURE__*/_react.default.createElement(LinkComponent, {
|
|
49
48
|
to: url
|
|
50
49
|
}, metric) : metric);
|
|
51
50
|
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# NFTDisplay
|
|
2
|
+
|
|
3
|
+
## 01 使用
|
|
4
|
+
|
|
5
|
+
### 01.01 默认样式
|
|
6
|
+
|
|
7
|
+
NFTDisplay 组件默认尺寸为 *150x150*, 可以通过 css 设置 width/height. 固定尺寸的使用场景感觉比较少, 多数情况应该都需要将 NFTDisplay 应用于响应式布局中.
|
|
8
|
+
|
|
9
|
+
### 01.02 aspect ratio
|
|
10
|
+
|
|
11
|
+
可以使用 aspect prop 设置 NFTDisplay 的宽高比, NFTDisplay 包裹一两层 div/span 标签 (用来控制布局, 没有直接把 img 标签渲染出来), 所以这里说的长宽比指的不是 img 的长宽比, 图片的尺寸大小不一, 长宽比也是既定的, aspect prop 控制的是包裹 img 容器的长宽比.
|
|
12
|
+
|
|
13
|
+
NFTDisplay 宽高比的计算是根据父容器的 width 来确定的 (NFTDisplay 会填充整个宽度), 所以可以通过控制父容器的 width 来控制 NFTDisplay 的大小.
|
|
14
|
+
|
|
15
|
+
### 01.03 inset
|
|
16
|
+
|
|
17
|
+
inset 设置为 true 时 NFTDisplay 会镶嵌/填满父容器 (并垂直+水平居中显示图片), 所以父容器必须有明确的宽高 (尤其是高度). 响应式布局中应该会比较常用.
|
|
18
|
+
|
|
19
|
+
注: inset 比 aspect ratio 优先级高, 如果同时设置了 inset 和 aspect, 则后者不生效.
|
|
20
|
+
|
|
21
|
+
### 01.04 asset data (prop)
|
|
22
|
+
|
|
23
|
+
可以为 asset data prop 传入 raw data 或 parsed data, 避免多次解析 asset data.
|
|
24
|
+
|
|
25
|
+
### 01.05 broken image & error handling
|
|
26
|
+
|
|
27
|
+
* display 加载失败时会显示一个 broken-image, 可以从外部覆盖 `.nft-display--broken` 的样式来调整尺寸/颜色等样式
|
|
28
|
+
* error handling, 这部分感觉出错原因可能性会很多, 有 json 解析错误、某字段缺失、某 object 指定路径的值缺失、nft type 不支持等等, 暂时没想到如何更合理的捕获和处理这些错误.
|
|
29
|
+
|
|
30
|
+
### 02 svg 加载
|
|
31
|
+
|
|
32
|
+
基于 `img` 标签加载 NFT Display. 几种 nft type 的加载:
|
|
33
|
+
|
|
34
|
+
- url
|
|
35
|
+
直接使用 `<img>`
|
|
36
|
+
- svg_gzipped
|
|
37
|
+
content => ungzip => svgToImgUrl => `<img>`
|
|
38
|
+
- svg (未测试, 需要测试数据)
|
|
39
|
+
content => svgToImgUrl => `<img>`
|
|
40
|
+
- html (TODO)
|
|
41
|
+
基于 `<img>` 的加载方式不适用, 目前没有发现这种 nft type 的测试数据
|
|
42
|
+
|
|
43
|
+
基于 `<img>` 标签的加载方式没有样式污染问题, 加载、尺寸控制也比较方便, 不过据说有些情况下 svg 可能无法正确显示 (比如 svg 加载了 font|image 资源), 目前没有发现问题, 还需要更多的观察
|
|
44
|
+
|
|
45
|
+
## 03 iframe 第三方嵌入 (TODO)
|
|
46
|
+
|
|
47
|
+
需要设计 iframe 的 API (iframe#src 查询参数), 目前想到的参数:
|
|
48
|
+
|
|
49
|
+
- address : asset address
|
|
50
|
+
调用 getAssetState 接口获取 display 数据进行展示
|
|
51
|
+
- 样式控制相关的参数 ?
|
|
52
|
+
|
|
53
|
+
## 04 参考
|
|
54
|
+
|
|
55
|
+
* [提供一个 NFT display 组件 · Issue #199 · ArcBlock/ux](https://github.com/ArcBlock/ux/issues/199)
|
|
56
|
+
* [2021徽章出现奇怪的渲染 · Issue #230 · blocklet/nft-marketplace](https://github.com/blocklet/nft-marketplace/issues/230)
|
|
57
|
+
* [Adding vector graphics to the Web - Learn web development | MDN](https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web)
|
|
58
|
+
* [The Best Way to Embed SVG on HTML (2021)](https://vecta.io/blog/best-way-to-embed-svg)
|
|
59
|
+
* [javascript - Do I always need to call URL.revokeObjectURL() explicitly? - Stack Overflow](https://stackoverflow.com/questions/49209756/do-i-always-need-to-call-url-revokeobjecturl-explicitly)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
|
+
|
|
14
|
+
const _excluded = ["aspect", "children"];
|
|
15
|
+
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
|
|
18
|
+
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; }
|
|
19
|
+
|
|
20
|
+
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; }
|
|
21
|
+
|
|
22
|
+
function AspectRatioContainer(_ref) {
|
|
23
|
+
let {
|
|
24
|
+
aspect,
|
|
25
|
+
children
|
|
26
|
+
} = _ref,
|
|
27
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
28
|
+
|
|
29
|
+
return /*#__PURE__*/_react.default.createElement(Root, Object.assign({
|
|
30
|
+
aspect: aspect
|
|
31
|
+
}, rest), /*#__PURE__*/_react.default.createElement("span", {
|
|
32
|
+
className: "aspect-ratio-container__inner"
|
|
33
|
+
}, children));
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
AspectRatioContainer.propTypes = {
|
|
37
|
+
aspect: _propTypes.default.number.isRequired,
|
|
38
|
+
children: _propTypes.default.node.isRequired
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const Root = _styledComponents.default.span.withConfig({
|
|
42
|
+
displayName: "aspect-ratio-container__Root",
|
|
43
|
+
componentId: "sc-qqh9bx-0"
|
|
44
|
+
})(["display:block;position:relative;width:100%;height:0;padding-bottom:", "%;.aspect-ratio-container__inner{position:absolute;top:0;bottom:0;left:0;right:0;}"], _ref2 => {
|
|
45
|
+
let {
|
|
46
|
+
aspect
|
|
47
|
+
} = _ref2;
|
|
48
|
+
return 1 / aspect * 100;
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
var _default = AspectRatioContainer;
|
|
52
|
+
exports.default = _default;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = Broken;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
+
|
|
12
|
+
var _BrokenImage = _interopRequireDefault(require("@material-ui/icons/BrokenImage"));
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
function Broken() {
|
|
17
|
+
return /*#__PURE__*/_react.default.createElement(Root, {
|
|
18
|
+
className: "nft-display__broken"
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const Root = (0, _styledComponents.default)(_BrokenImage.default).withConfig({
|
|
23
|
+
displayName: "broken__Root",
|
|
24
|
+
componentId: "sc-8n0p34-0"
|
|
25
|
+
})(["&&{width:100%;max-width:200px;height:auto;max-width:100%;max-height:100%;fill:#ddd;}"]);
|