react-miui 0.11.0 → 0.12.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.
- package/CHANGELOG.md +12 -2
- package/assets/dots.svg +1 -0
- package/assets/sources/dots.fla +0 -0
- package/dist/components/icons/Dots.d.ts +7 -0
- package/dist/components/icons/Dots.d.ts.map +1 -0
- package/dist/components/icons/Dots.js +13 -0
- package/dist/components/icons/Dots.js.map +1 -0
- package/dist/components/icons/Icon.d.ts +2 -1
- package/dist/components/icons/Icon.d.ts.map +1 -1
- package/dist/components/icons/Icon.js +3 -0
- package/dist/components/icons/Icon.js.map +1 -1
- package/dist/components/layout/header/Header.d.ts +1 -1
- package/dist/components/layout/header/Header.d.ts.map +1 -1
- package/dist/components/layout/header/Header.js +1 -0
- package/dist/components/layout/header/Header.js.map +1 -1
- package/dist/components/layout/header/Header.module.scss +6 -0
- package/dist/components/layout/header/HeaderIconAction.module.scss +2 -1
- package/dist/components/layout/header/StickyHeader.d.ts +4 -1
- package/dist/components/layout/header/StickyHeader.d.ts.map +1 -1
- package/dist/components/layout/header/StickyHeader.js +1 -1
- package/dist/components/layout/header/StickyHeader.js.map +1 -1
- package/dist/components/ui/drawer/Drawer.d.ts +22 -0
- package/dist/components/ui/drawer/Drawer.d.ts.map +1 -0
- package/dist/components/ui/drawer/Drawer.js +84 -0
- package/dist/components/ui/drawer/Drawer.js.map +1 -0
- package/dist/components/ui/drawer/Drawer.module.scss +15 -0
- package/dist/components/ui/pop/Pop.d.ts +1 -0
- package/dist/components/ui/pop/Pop.d.ts.map +1 -1
- package/dist/components/ui/pop/Pop.js +5 -2
- package/dist/components/ui/pop/Pop.js.map +1 -1
- package/dist/components/ui/stats/Stats.d.ts +12 -0
- package/dist/components/ui/stats/Stats.d.ts.map +1 -0
- package/dist/components/ui/stats/Stats.js +24 -0
- package/dist/components/ui/stats/Stats.js.map +1 -0
- package/dist/components/ui/stats/Stats.module.scss +48 -0
- package/dist/components/{ui/pop → utils}/HandleEsc.d.ts +0 -0
- package/dist/components/utils/HandleEsc.d.ts.map +1 -0
- package/dist/components/{ui/pop → utils}/HandleEsc.js +0 -0
- package/dist/components/utils/HandleEsc.js.map +1 -0
- package/dist/global.scss +3 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/scrollbars.scss +22 -0
- package/docs/assets/js/search.js +1 -1
- package/docs/assets/js/search.json +1 -1
- package/docs/classes/Drawer.html +1085 -0
- package/docs/classes/Pop.html +15 -12
- package/docs/classes/ToasterProvider.html +11 -8
- package/docs/enums/ICON.html +28 -11
- package/docs/index.html +7 -4
- package/docs/modules/Item.html +3 -3
- package/docs/modules/List.html +3 -3
- package/docs/modules/Modal.html +3 -3
- package/docs/modules/ModalButtons.html +3 -3
- package/docs/modules/Section.html +3 -3
- package/docs/modules/StickyHeader.html +6 -11
- package/docs/modules.html +32 -28
- package/docs/pages/Tutorials/Test.html +3 -3
- package/esm/components/icons/Dots.d.ts +7 -0
- package/esm/components/icons/Dots.d.ts.map +1 -0
- package/esm/components/icons/Dots.js +7 -0
- package/esm/components/icons/Dots.js.map +1 -0
- package/esm/components/icons/Icon.d.ts +2 -1
- package/esm/components/icons/Icon.d.ts.map +1 -1
- package/esm/components/icons/Icon.js +3 -0
- package/esm/components/icons/Icon.js.map +1 -1
- package/esm/components/layout/header/Header.d.ts +1 -1
- package/esm/components/layout/header/Header.d.ts.map +1 -1
- package/esm/components/layout/header/Header.js +1 -0
- package/esm/components/layout/header/Header.js.map +1 -1
- package/esm/components/layout/header/Header.module.scss +6 -0
- package/esm/components/layout/header/HeaderIconAction.module.scss +2 -1
- package/esm/components/layout/header/StickyHeader.d.ts +4 -1
- package/esm/components/layout/header/StickyHeader.d.ts.map +1 -1
- package/esm/components/layout/header/StickyHeader.js +1 -1
- package/esm/components/layout/header/StickyHeader.js.map +1 -1
- package/esm/components/ui/drawer/Drawer.d.ts +22 -0
- package/esm/components/ui/drawer/Drawer.d.ts.map +1 -0
- package/esm/components/ui/drawer/Drawer.js +59 -0
- package/esm/components/ui/drawer/Drawer.js.map +1 -0
- package/esm/components/ui/drawer/Drawer.module.scss +15 -0
- package/esm/components/ui/pop/Pop.d.ts +1 -0
- package/esm/components/ui/pop/Pop.d.ts.map +1 -1
- package/esm/components/ui/pop/Pop.js +5 -2
- package/esm/components/ui/pop/Pop.js.map +1 -1
- package/esm/components/ui/stats/Stats.d.ts +12 -0
- package/esm/components/ui/stats/Stats.d.ts.map +1 -0
- package/esm/components/ui/stats/Stats.js +18 -0
- package/esm/components/ui/stats/Stats.js.map +1 -0
- package/esm/components/ui/stats/Stats.module.scss +48 -0
- package/esm/components/{ui/pop → utils}/HandleEsc.d.ts +0 -0
- package/esm/components/utils/HandleEsc.d.ts.map +1 -0
- package/esm/components/{ui/pop → utils}/HandleEsc.js +0 -0
- package/esm/components/utils/HandleEsc.js.map +1 -0
- package/esm/global.scss +3 -0
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/scrollbars.scss +22 -0
- package/package.json +3 -2
- package/src/components/icons/Dots.tsx +21 -0
- package/src/components/icons/Icon.tsx +3 -0
- package/src/components/layout/header/Header.module.scss +6 -0
- package/src/components/layout/header/Header.tsx +2 -1
- package/src/components/layout/header/HeaderIconAction.module.scss +2 -1
- package/src/components/layout/header/StickyHeader.tsx +12 -2
- package/src/components/ui/drawer/Drawer.module.scss +15 -0
- package/src/components/ui/drawer/Drawer.tsx +88 -0
- package/src/components/ui/pop/Pop.tsx +6 -2
- package/src/components/ui/stats/Stats.module.scss +48 -0
- package/src/components/ui/stats/Stats.tsx +42 -0
- package/src/components/{ui/pop → utils}/HandleEsc.tsx +0 -0
- package/src/demo/Menu.tsx +2 -1
- package/src/demo/components/layout/header/StickyHeader.module.scss +14 -0
- package/src/demo/components/layout/header/StickyHeader.tsx +28 -2
- package/src/demo/components/ui/drawer/Drawer.tsx +28 -0
- package/src/demo/components/ui/stats/Stats.module.scss +29 -0
- package/src/demo/components/ui/stats/Stats.tsx +61 -0
- package/src/demo/componentsMap.ts +21 -0
- package/src/global.scss +3 -0
- package/src/index.ts +1 -0
- package/src/pages/_app.tsx +1 -0
- package/src/scrollbars.scss +22 -0
- package/dist/components/ui/pop/HandleEsc.d.ts.map +0 -1
- package/dist/components/ui/pop/HandleEsc.js.map +0 -1
- package/esm/components/ui/pop/HandleEsc.d.ts.map +0 -1
- package/esm/components/ui/pop/HandleEsc.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React, { Component, createRef } from "react";
|
|
2
|
-
import { HandleEsc } from "./HandleEsc";
|
|
3
2
|
import { OnButtonClick } from "./OnButtonClick";
|
|
4
3
|
import { PopOption } from "./PopOption";
|
|
5
4
|
import styles from "./Pop.module.scss";
|
|
5
|
+
import { HandleEsc } from "../../utils/HandleEsc";
|
|
6
6
|
const html = typeof document === "object" ? document.getElementsByTagName("html")[0] : null;
|
|
7
7
|
const getElementDimensions = (elem) => {
|
|
8
8
|
return {
|
|
@@ -78,6 +78,7 @@ class Pop extends Component {
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
render() {
|
|
81
|
+
var _a;
|
|
81
82
|
const style = {};
|
|
82
83
|
if (this.state.vertical === "top") {
|
|
83
84
|
style.top = this.state.y;
|
|
@@ -94,8 +95,10 @@ class Pop extends Component {
|
|
|
94
95
|
if (!this.props.open) {
|
|
95
96
|
return null;
|
|
96
97
|
}
|
|
98
|
+
const closeOnEsc = (_a = this.props.closeOnEsc) !== null && _a !== void 0 ? _a : true;
|
|
99
|
+
const esc = closeOnEsc && React.createElement(HandleEsc, { onPress: this.handleEsc });
|
|
97
100
|
return (React.createElement("div", { className: styles.overlay, ref: this.rootRef, onClick: this.handleOverlayClick },
|
|
98
|
-
|
|
101
|
+
esc,
|
|
99
102
|
React.createElement(OnButtonClick, { onClick: this.handleEsc },
|
|
100
103
|
React.createElement("ul", { className: styles.pop, style: style }, this.props.children))));
|
|
101
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pop.js","sourceRoot":"","sources":["../../../../src/components/ui/pop/Pop.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Pop.js","sourceRoot":"","sources":["../../../../src/components/ui/pop/Pop.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Stats.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/stats/Stats.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,UAAU,IAAI;IACV,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,KAAK;IACX,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwB1B,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import classnames from "classnames";
|
|
3
|
+
import styles from "./Stats.module.scss";
|
|
4
|
+
const Stats = (props) => {
|
|
5
|
+
const list = props.stats.map((s, k) => (React.createElement("li", { key: String(k), className: styles.item },
|
|
6
|
+
React.createElement("span", { className: styles.value }, s.value),
|
|
7
|
+
React.createElement("span", { className: styles.label }, s.label))));
|
|
8
|
+
const len = list.length;
|
|
9
|
+
for (let i = 0; i < len - 1; i++) {
|
|
10
|
+
list.splice((i * 2) + 1, 0, React.createElement("li", { key: "separator" + String(i), className: styles.separator }));
|
|
11
|
+
}
|
|
12
|
+
const cls = classnames(styles.stats, {
|
|
13
|
+
[styles["stats-dark"]]: props.variant === "dark",
|
|
14
|
+
});
|
|
15
|
+
return (React.createElement("ul", { className: cls }, list));
|
|
16
|
+
};
|
|
17
|
+
export { Stats };
|
|
18
|
+
//# sourceMappingURL=Stats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Stats.js","sourceRoot":"","sources":["../../../../src/components/ui/stats/Stats.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,MAAM,MAAM,qBAAqB,CAAC;AAYzC,MAAM,KAAK,GAAoB,CAAC,KAAK,EAAE,EAAE;IACrC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACnC,4BAAI,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI;QACtC,8BAAM,SAAS,EAAE,MAAM,CAAC,KAAK,IAAG,CAAC,CAAC,KAAK,CAAQ;QAC/C,8BAAM,SAAS,EAAE,MAAM,CAAC,KAAK,IAAG,CAAC,CAAC,KAAK,CAAQ,CAC9C,CACR,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAE9B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,4BAAI,GAAG,EAAE,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,GAAI,CAAC,CAAC;KAClG;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE;QACjC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,KAAK,MAAM;KACnD,CAAC,CAAC;IAEH,OAAO,CACH,4BAAI,SAAS,EAAE,GAAG,IACb,IAAI,CACJ,CACR,CAAC;AACN,CAAC,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
.stats {
|
|
2
|
+
--stats-border: 1px solid rgba(255, 255, 255, .15);
|
|
3
|
+
--stats-bg: rgba(255, 255, 255, .05);
|
|
4
|
+
--stats-value-color: rgba(255, 255, 255, .9);
|
|
5
|
+
--stats-label-color: rgba(255, 255, 255, .61);
|
|
6
|
+
|
|
7
|
+
display: flex;
|
|
8
|
+
width: 100%;
|
|
9
|
+
padding: calc(60px / var(--ratio-dimensions)) 0;
|
|
10
|
+
margin: 0;
|
|
11
|
+
border-top: var(--stats-border);
|
|
12
|
+
background: var(--stats-bg);
|
|
13
|
+
background-clip: padding-box;
|
|
14
|
+
list-style-type: none;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.stats-dark {
|
|
18
|
+
--stats-border: 1px solid rgba(0, 0, 0, .15);
|
|
19
|
+
--stats-bg: rgba(0, 0, 0, .05);
|
|
20
|
+
--stats-value-color: rgba(0, 0, 0, .9);
|
|
21
|
+
--stats-label-color: rgba(0, 0, 0, .61);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.item {
|
|
25
|
+
flex: 1;
|
|
26
|
+
display: flex;
|
|
27
|
+
align-items: center;
|
|
28
|
+
justify-content: center;
|
|
29
|
+
flex-direction: column;
|
|
30
|
+
text-align: center;
|
|
31
|
+
gap: calc(20px / var(--ratio-dimensions));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.separator {
|
|
35
|
+
border-left: var(--stats-border);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.label {
|
|
39
|
+
display: block;
|
|
40
|
+
color: var(--stats-label-color);
|
|
41
|
+
font-size: calc(22px / var(--ratio-font));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.value {
|
|
45
|
+
display: block;
|
|
46
|
+
color: var(--stats-value-color);
|
|
47
|
+
font-size: calc(30px / var(--ratio-font));
|
|
48
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HandleEsc.d.ts","sourceRoot":"","sources":["../../../src/components/utils/HandleEsc.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,UAAU,KAAK;IACX,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAU9B,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HandleEsc.js","sourceRoot":"","sources":["../../../src/components/utils/HandleEsc.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMlC,MAAM,SAAS,GAAoB,CAAC,KAAK,EAAE,EAAE;IACzC,MAAM,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,OAAO,EAAE;YACT,KAAK,CAAC,OAAO,EAAE,CAAC;SACnB;IACL,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
package/esm/global.scss
CHANGED
package/esm/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export * from "./components/ui/action/Action.js";
|
|
|
17
17
|
export * from "./components/ui/action/EqualActions.js";
|
|
18
18
|
export * from "./components/ui/button/Button.js";
|
|
19
19
|
export * from "./components/ui/directionPad/Pad.js";
|
|
20
|
+
export * from "./components/ui/drawer/Drawer.js";
|
|
20
21
|
export * from "./components/ui/message/Message.js";
|
|
21
22
|
export * from "./components/ui/modal/Modal.js";
|
|
22
23
|
export * from "./components/ui/modal/ModalButtons.js";
|
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AAEvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AAEvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC"}
|
package/esm/index.js
CHANGED
|
@@ -17,6 +17,7 @@ export * from "./components/ui/action/Action.js";
|
|
|
17
17
|
export * from "./components/ui/action/EqualActions.js";
|
|
18
18
|
export * from "./components/ui/button/Button.js";
|
|
19
19
|
export * from "./components/ui/directionPad/Pad.js";
|
|
20
|
+
export * from "./components/ui/drawer/Drawer.js";
|
|
20
21
|
export * from "./components/ui/message/Message.js";
|
|
21
22
|
export * from "./components/ui/modal/Modal.js";
|
|
22
23
|
export * from "./components/ui/modal/ModalButtons.js";
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AAEvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AAEvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
.miui-scrollbars {
|
|
2
|
+
overflow-y: auto;
|
|
3
|
+
scrollbar-color: var(--scrollbars-thumb) var(--scrollbars-bg);
|
|
4
|
+
scrollbar-width: thin !important;
|
|
5
|
+
|
|
6
|
+
&::-webkit-scrollbar {
|
|
7
|
+
width: 6px;
|
|
8
|
+
background-color: transparent;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
&::-webkit-scrollbar-thumb:vertical {
|
|
12
|
+
background: var(--scrollbars-thumb);
|
|
13
|
+
background-clip: padding-box;
|
|
14
|
+
border: 2px solid var(--scrollbars-bg);
|
|
15
|
+
min-height: 10px;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&::-webkit-scrollbar-thumb:vertical:active {
|
|
19
|
+
background: var(--scrollbars-thumb);
|
|
20
|
+
border: 2px solid var(--scrollbars-bg);
|
|
21
|
+
}
|
|
22
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-miui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"author": "Jacek Nowacki",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"scripts": {
|
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
"types": "./esm/index.d.ts",
|
|
29
29
|
"module": "./esm/index.js",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"classnames": "^2.3.1"
|
|
31
|
+
"classnames": "^2.3.1",
|
|
32
|
+
"oop-timers": "^4.0.1"
|
|
32
33
|
},
|
|
33
34
|
"devDependencies": {
|
|
34
35
|
"@babel/core": "^7.12.10",
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
interface Props {
|
|
4
|
+
className?: string;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
const Dots: React.FC<Props> = (props) => {
|
|
8
|
+
return (
|
|
9
|
+
<svg
|
|
10
|
+
width={"16"}
|
|
11
|
+
height={"16"}
|
|
12
|
+
viewBox={"0 0 16 72"}
|
|
13
|
+
xmlns={"http://www.w3.org/2000/svg"}
|
|
14
|
+
className={props.className}
|
|
15
|
+
>
|
|
16
|
+
<path d={"M13.65 13.65Q16 11.3 16 8q0-3.3-2.35-5.65Q11.3 0 8 0 4.7 0 2.35 2.35 0 4.7 0 8q0 3.3 2.35 5.65Q4.7 16 8 16q3.3 0 5.65-2.35M8 44q3.3 0 5.65-2.35Q16 39.3 16 36q0-3.3-2.35-5.65Q11.3 28 8 28q-3.3 0-5.65 2.35Q0 32.7 0 36q0 3.3 2.35 5.65Q4.7 44 8 44M8 72q3.3 0 5.65-2.35Q16 67.3 16 64q0-3.3-2.35-5.65Q11.3 56 8 56q-3.3 0-5.65 2.35Q0 60.7 0 64q0 3.3 2.35 5.65Q4.7 72 8 72"} />
|
|
17
|
+
</svg>
|
|
18
|
+
);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export { Dots };
|
|
@@ -9,6 +9,7 @@ import { Battery } from "./Battery.js";
|
|
|
9
9
|
import { Heart } from "./Heart.js";
|
|
10
10
|
import { Trash } from "./Trash.js";
|
|
11
11
|
import { Config } from "./Config.js";
|
|
12
|
+
import { Dots } from "./Dots.js";
|
|
12
13
|
|
|
13
14
|
enum ICON {
|
|
14
15
|
checkmark = "checkmark",
|
|
@@ -19,6 +20,7 @@ enum ICON {
|
|
|
19
20
|
heart = "heart",
|
|
20
21
|
trash = "trash",
|
|
21
22
|
config = "config",
|
|
23
|
+
dots = "dots",
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
interface Props {
|
|
@@ -35,6 +37,7 @@ const iconsMap = new Map<ICON, AnyComponent>([
|
|
|
35
37
|
[ICON.heart, Heart],
|
|
36
38
|
[ICON.trash, Trash],
|
|
37
39
|
[ICON.config, Config],
|
|
40
|
+
[ICON.dots, Dots],
|
|
38
41
|
]);
|
|
39
42
|
|
|
40
43
|
const Icon: React.FC<Props> = ({ name: iconName, ...props }) => {
|
|
@@ -15,6 +15,12 @@
|
|
|
15
15
|
--background-color: var(--toolbar-bg);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
.header--colored {
|
|
19
|
+
--border-color: var(--custom-header-color);
|
|
20
|
+
--background-color: var(--custom-header-color);
|
|
21
|
+
color: var(--custom-text-color);
|
|
22
|
+
}
|
|
23
|
+
|
|
18
24
|
.header--top, .header--bottom {
|
|
19
25
|
padding: 0 16.666px;
|
|
20
26
|
min-height: 44px;
|
|
@@ -8,7 +8,7 @@ import { EqualActions } from "../../ui/action/EqualActions.js";
|
|
|
8
8
|
|
|
9
9
|
interface Props {
|
|
10
10
|
center?: boolean;
|
|
11
|
-
variant?: "toolbar";
|
|
11
|
+
variant?: "toolbar" | "colored";
|
|
12
12
|
/**
|
|
13
13
|
* This indicates just how the borders are drawn and how content is aligned, not the actual position on the screen.
|
|
14
14
|
* To set up position on the screen you need to properly style parent element.
|
|
@@ -34,6 +34,7 @@ const Header: React.FC<Props> = (props) => {
|
|
|
34
34
|
const cls = classnames(styles.header, {
|
|
35
35
|
[styles["header--center"]]: center,
|
|
36
36
|
[styles["header--toolbar"]]: variant === "toolbar",
|
|
37
|
+
[styles["header--colored"]]: variant === "colored",
|
|
37
38
|
}, styles[`header--${position}`], props.className);
|
|
38
39
|
|
|
39
40
|
let contents = children;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
border-radius: 666px;
|
|
5
5
|
display: inline-block;
|
|
6
6
|
border: calc(2px / var(--ratio-border)) solid transparent;
|
|
7
|
-
color:
|
|
7
|
+
color: currentColor;
|
|
8
8
|
|
|
9
9
|
&:hover {
|
|
10
10
|
background: #00000022;
|
|
@@ -19,4 +19,5 @@
|
|
|
19
19
|
width: 16px;
|
|
20
20
|
height: 16px;
|
|
21
21
|
display: block;
|
|
22
|
+
fill: currentColor;
|
|
22
23
|
}
|
|
@@ -7,7 +7,12 @@ import styles from "./StickyHeader.module.scss";
|
|
|
7
7
|
const err = new TypeError("StickyHeader needs two children - Header and StickyHeader.Content");
|
|
8
8
|
|
|
9
9
|
interface Content {
|
|
10
|
-
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
11
|
+
Content: React.FC<ContentProps>;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
interface ContentProps {
|
|
15
|
+
className?: string;
|
|
11
16
|
}
|
|
12
17
|
|
|
13
18
|
interface Props {
|
|
@@ -35,7 +40,12 @@ const StickyHeader: React.FC<Props> & Content = (props) => {
|
|
|
35
40
|
content = content as never;
|
|
36
41
|
|
|
37
42
|
const cls = classnames(styles.stickyHeader, styles[`stickyHeader--${position}`]);
|
|
38
|
-
|
|
43
|
+
|
|
44
|
+
const contentCls = classnames(
|
|
45
|
+
styles.stickyHeader__content,
|
|
46
|
+
styles[`stickyHeader__content--${position}`],
|
|
47
|
+
(content as { props: ContentProps }).props.className,
|
|
48
|
+
);
|
|
39
49
|
|
|
40
50
|
return (
|
|
41
51
|
<div className={cls}>
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import React, { Component } from "react";
|
|
2
|
+
import { Timeout } from "oop-timers";
|
|
3
|
+
|
|
4
|
+
import styles from "./Drawer.module.scss";
|
|
5
|
+
import { HandleEsc } from "../../utils/HandleEsc";
|
|
6
|
+
|
|
7
|
+
const RENDER_TIMEOUT = 500;
|
|
8
|
+
|
|
9
|
+
interface Props {
|
|
10
|
+
isOpen: boolean;
|
|
11
|
+
closeOnEsc?: boolean;
|
|
12
|
+
onClose: () => void;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface State {
|
|
16
|
+
shouldRenderWhenClosed: boolean;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
class Drawer extends Component<Props, State> {
|
|
20
|
+
public constructor(props: Props) {
|
|
21
|
+
super(props);
|
|
22
|
+
|
|
23
|
+
this.state = {
|
|
24
|
+
shouldRenderWhenClosed: false,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public componentDidMount() {
|
|
29
|
+
this.timeout = new Timeout(() => {
|
|
30
|
+
// eslint-disable-next-line react/no-did-mount-set-state
|
|
31
|
+
this.setState({ shouldRenderWhenClosed: false });
|
|
32
|
+
}, RENDER_TIMEOUT);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public componentDidUpdate(prevProps: Props) {
|
|
36
|
+
if (!prevProps.isOpen && this.props.isOpen) {
|
|
37
|
+
this.onOpen();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (prevProps.isOpen && !this.props.isOpen) {
|
|
41
|
+
this.onClose();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
public componentWillUnmount() {
|
|
46
|
+
this.timeout?.stop();
|
|
47
|
+
this.timeout = null;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
private timeout: Timeout | null = null;
|
|
51
|
+
|
|
52
|
+
private onOpen() {
|
|
53
|
+
this.timeout?.stop();
|
|
54
|
+
this.setState({ shouldRenderWhenClosed: true });
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
private onClose() {
|
|
58
|
+
this.timeout?.start();
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
private readonly handleEsc = () => {
|
|
62
|
+
this.props.onClose();
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
public render() {
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/no-magic-numbers
|
|
67
|
+
const y = this.props.isOpen ? 0 : 100;
|
|
68
|
+
const style = {
|
|
69
|
+
transform: `translateY(${y}%)`,
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
const shouldRender = this.props.isOpen || this.state.shouldRenderWhenClosed;
|
|
73
|
+
|
|
74
|
+
const closeOnEsc = this.props.closeOnEsc ?? true;
|
|
75
|
+
const esc = closeOnEsc && <HandleEsc onPress={this.handleEsc} />;
|
|
76
|
+
|
|
77
|
+
return (
|
|
78
|
+
<div className={styles.drawer} style={style}>
|
|
79
|
+
{esc}
|
|
80
|
+
<div className={styles.content}>
|
|
81
|
+
{shouldRender && this.props.children}
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export { Drawer };
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import React, { Component, createRef } from "react";
|
|
2
2
|
|
|
3
|
-
import { HandleEsc } from "./HandleEsc";
|
|
4
3
|
import { OnButtonClick } from "./OnButtonClick";
|
|
5
4
|
import { PopOption } from "./PopOption";
|
|
6
5
|
import styles from "./Pop.module.scss";
|
|
6
|
+
import { HandleEsc } from "../../utils/HandleEsc";
|
|
7
7
|
|
|
8
8
|
interface Props {
|
|
9
9
|
open: boolean;
|
|
10
10
|
onClose: () => void;
|
|
11
11
|
anchor?: HTMLElement | "prev" | "next";
|
|
12
|
+
closeOnEsc?: boolean;
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
interface State {
|
|
@@ -137,9 +138,12 @@ class Pop extends Component<Props, State> {
|
|
|
137
138
|
return null;
|
|
138
139
|
}
|
|
139
140
|
|
|
141
|
+
const closeOnEsc = this.props.closeOnEsc ?? true;
|
|
142
|
+
const esc = closeOnEsc && <HandleEsc onPress={this.handleEsc} />;
|
|
143
|
+
|
|
140
144
|
return (
|
|
141
145
|
<div className={styles.overlay} ref={this.rootRef} onClick={this.handleOverlayClick}>
|
|
142
|
-
|
|
146
|
+
{esc}
|
|
143
147
|
<OnButtonClick onClick={this.handleEsc}>
|
|
144
148
|
<ul className={styles.pop} style={style}>
|
|
145
149
|
{this.props.children}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
.stats {
|
|
2
|
+
--stats-border: 1px solid rgba(255, 255, 255, .15);
|
|
3
|
+
--stats-bg: rgba(255, 255, 255, .05);
|
|
4
|
+
--stats-value-color: rgba(255, 255, 255, .9);
|
|
5
|
+
--stats-label-color: rgba(255, 255, 255, .61);
|
|
6
|
+
|
|
7
|
+
display: flex;
|
|
8
|
+
width: 100%;
|
|
9
|
+
padding: calc(60px / var(--ratio-dimensions)) 0;
|
|
10
|
+
margin: 0;
|
|
11
|
+
border-top: var(--stats-border);
|
|
12
|
+
background: var(--stats-bg);
|
|
13
|
+
background-clip: padding-box;
|
|
14
|
+
list-style-type: none;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.stats-dark {
|
|
18
|
+
--stats-border: 1px solid rgba(0, 0, 0, .15);
|
|
19
|
+
--stats-bg: rgba(0, 0, 0, .05);
|
|
20
|
+
--stats-value-color: rgba(0, 0, 0, .9);
|
|
21
|
+
--stats-label-color: rgba(0, 0, 0, .61);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.item {
|
|
25
|
+
flex: 1;
|
|
26
|
+
display: flex;
|
|
27
|
+
align-items: center;
|
|
28
|
+
justify-content: center;
|
|
29
|
+
flex-direction: column;
|
|
30
|
+
text-align: center;
|
|
31
|
+
gap: calc(20px / var(--ratio-dimensions));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.separator {
|
|
35
|
+
border-left: var(--stats-border);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.label {
|
|
39
|
+
display: block;
|
|
40
|
+
color: var(--stats-label-color);
|
|
41
|
+
font-size: calc(22px / var(--ratio-font));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.value {
|
|
45
|
+
display: block;
|
|
46
|
+
color: var(--stats-value-color);
|
|
47
|
+
font-size: calc(30px / var(--ratio-font));
|
|
48
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import classnames from "classnames";
|
|
3
|
+
|
|
4
|
+
import styles from "./Stats.module.scss";
|
|
5
|
+
|
|
6
|
+
interface Stat {
|
|
7
|
+
label: string;
|
|
8
|
+
value: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
interface Props {
|
|
12
|
+
stats: Stat[];
|
|
13
|
+
variant?: "dark";
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const Stats: React.FC<Props> = (props) => {
|
|
17
|
+
const list = props.stats.map((s, k) => (
|
|
18
|
+
<li key={String(k)} className={styles.item}>
|
|
19
|
+
<span className={styles.value}>{s.value}</span>
|
|
20
|
+
<span className={styles.label}>{s.label}</span>
|
|
21
|
+
</li>
|
|
22
|
+
));
|
|
23
|
+
|
|
24
|
+
const len = list.length;
|
|
25
|
+
|
|
26
|
+
for (let i = 0; i < len - 1; i++) {
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-magic-numbers
|
|
28
|
+
list.splice((i * 2) + 1, 0, <li key={"separator" + String(i)} className={styles.separator} />);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const cls = classnames(styles.stats, {
|
|
32
|
+
[styles["stats-dark"]]: props.variant === "dark",
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<ul className={cls}>
|
|
37
|
+
{list}
|
|
38
|
+
</ul>
|
|
39
|
+
);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export { Stats };
|
|
File without changes
|
package/src/demo/Menu.tsx
CHANGED
|
@@ -2,6 +2,7 @@ import React from "react";
|
|
|
2
2
|
|
|
3
3
|
import styles from "./Menu.module.scss";
|
|
4
4
|
import type { componentsMap } from "./componentsMap";
|
|
5
|
+
import classnames from "classnames";
|
|
5
6
|
|
|
6
7
|
interface Props {
|
|
7
8
|
ancestors?: string[];
|
|
@@ -27,7 +28,7 @@ const Menu: React.FC<Props> = (props) => {
|
|
|
27
28
|
|
|
28
29
|
if (!props.ancestors!.length) {
|
|
29
30
|
cmp.unshift(<li key={"--main"}><a href={"#"}>Main</a></li>);
|
|
30
|
-
return <menu className={styles.menu}>{contents}</menu>;
|
|
31
|
+
return <menu className={classnames(styles.menu, "miui-scrollbars")}>{contents}</menu>;
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
return contents;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
.coloredBox {
|
|
2
|
+
height: 300px;
|
|
3
|
+
background: var(--green1-darker);
|
|
4
|
+
display: flex;
|
|
5
|
+
align-items: center;
|
|
6
|
+
justify-content: center;
|
|
7
|
+
color: white;
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.header {
|
|
12
|
+
--custom-header-color: var(--green1-darker);
|
|
13
|
+
--custom-text-color: white;
|
|
14
|
+
}
|