react-miui 0.15.2 → 0.15.5
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 +24 -1
- package/dist/components/form/choice/Choice.d.ts +8 -5
- package/dist/components/form/choice/Choice.d.ts.map +1 -1
- package/dist/components/form/choice/Choice.js +4 -1
- package/dist/components/form/choice/Choice.js.map +1 -1
- package/dist/components/form/choice/Choice.module.scss +14 -1
- package/dist/components/form/choice/ChoiceItem.d.ts +4 -4
- package/dist/components/form/choice/ChoiceItem.d.ts.map +1 -1
- package/dist/components/form/choice/ChoiceItem.js.map +1 -1
- package/dist/components/layout/header/Header.module.scss +1 -0
- package/dist/components/layout/header/StickyHeader.d.ts +1 -0
- 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/layout/table/Table.js +1 -1
- package/dist/components/ui/pop/Pop.module.scss +28 -27
- package/dist/components/ui/pop/PopOption.d.ts.map +1 -1
- package/dist/components/ui/pop/PopOption.js +3 -3
- package/dist/components/ui/pop/PopOption.js.map +1 -1
- package/dist/components/ui/tabs/Selector.d.ts +3 -3
- package/dist/components/ui/tabs/Selector.d.ts.map +1 -1
- package/dist/components/ui/tabs/Selector.js.map +1 -1
- package/dist/components/utils/If.d.ts +7 -0
- package/dist/components/utils/If.d.ts.map +1 -0
- package/dist/components/utils/If.js +15 -0
- package/dist/components/utils/If.js.map +1 -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/types/form.d.ts +1 -1
- package/dist/types/form.d.ts.map +1 -1
- package/dist/utils/toObjectValue.d.ts +1 -1
- package/dist/utils/toObjectValue.d.ts.map +1 -1
- package/dist/utils/toObjectValue.js.map +1 -1
- package/docs/assets/js/search.js +1 -1
- package/docs/assets/js/search.json +1 -1
- package/docs/classes/Drawer.html +21 -18
- package/docs/classes/Pop.html +21 -18
- package/docs/classes/ToasterProvider.html +17 -14
- package/docs/enums/ICON.html +21 -18
- package/docs/index.html +13 -10
- 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 +4 -4
- package/docs/modules.html +111 -59
- package/docs/pages/Tutorials/Test.html +3 -3
- package/esm/components/form/choice/Choice.d.ts +8 -5
- package/esm/components/form/choice/Choice.d.ts.map +1 -1
- package/esm/components/form/choice/Choice.js +5 -2
- package/esm/components/form/choice/Choice.js.map +1 -1
- package/esm/components/form/choice/Choice.module.scss +14 -1
- package/esm/components/form/choice/ChoiceItem.d.ts +4 -4
- package/esm/components/form/choice/ChoiceItem.d.ts.map +1 -1
- package/esm/components/form/choice/ChoiceItem.js.map +1 -1
- package/esm/components/layout/header/Header.module.scss +1 -0
- package/esm/components/layout/header/StickyHeader.d.ts +1 -0
- 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/layout/table/Table.js +1 -1
- package/esm/components/ui/pop/Pop.module.scss +28 -27
- package/esm/components/ui/pop/PopOption.d.ts.map +1 -1
- package/esm/components/ui/pop/PopOption.js +3 -3
- package/esm/components/ui/pop/PopOption.js.map +1 -1
- package/esm/components/ui/tabs/Selector.d.ts +3 -3
- package/esm/components/ui/tabs/Selector.d.ts.map +1 -1
- package/esm/components/ui/tabs/Selector.js.map +1 -1
- package/esm/components/utils/If.d.ts +7 -0
- package/esm/components/utils/If.d.ts.map +1 -0
- package/esm/components/utils/If.js +9 -0
- package/esm/components/utils/If.js.map +1 -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/types/form.d.ts +1 -1
- package/esm/types/form.d.ts.map +1 -1
- package/esm/utils/toObjectValue.d.ts +1 -1
- package/esm/utils/toObjectValue.d.ts.map +1 -1
- package/esm/utils/toObjectValue.js.map +1 -1
- package/package.json +1 -1
- package/src/components/form/choice/Choice.module.scss +14 -1
- package/src/components/form/choice/Choice.tsx +22 -7
- package/src/components/form/choice/ChoiceItem.tsx +5 -5
- package/src/components/layout/header/Header.module.scss +1 -0
- package/src/components/layout/header/StickyHeader.tsx +2 -1
- package/src/components/layout/table/Table.tsx +1 -1
- package/src/components/ui/pop/Pop.module.scss +28 -27
- package/src/components/ui/pop/PopOption.tsx +4 -2
- package/src/components/ui/tabs/Selector.tsx +3 -3
- package/src/components/utils/If.tsx +14 -0
- package/src/demo/Main.module.scss +6 -0
- package/src/demo/Main.tsx +6 -15
- package/src/demo/components/form/Choice.module.scss +7 -0
- package/src/demo/components/form/Choice.tsx +46 -2
- package/src/demo/componentsMap.ts +7 -1
- package/src/index.ts +1 -0
- package/src/types/form.ts +1 -1
- package/src/utils/toObjectValue.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChoiceItem.js","sourceRoot":"","sources":["../../../../src/components/form/choice/ChoiceItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAU3C,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"ChoiceItem.js","sourceRoot":"","sources":["../../../../src/components/form/choice/ChoiceItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAU3C,MAAM,UAAU,GAAG,CAAmB,KAAe,EAAkC,EAAE;IACrF,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAsC,EAAE,EAAE;QACxE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,KAAuC,CAAC,CAAC;IAC5E,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAErB,OAAO,CACH,+BAAO,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;QACtC,+BACI,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EACxB,OAAO,EAAE,KAAK,CAAC,MAAM,EACrB,QAAQ,EAAE,YAAY,GACxB;QACF,kCAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAQ,CAC5B,CACX,CAAC;AACN,CAAC,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StickyHeader.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/header/StickyHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,UAAU,OAAO;IAEb,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;CACnC;AAED,UAAU,YAAY;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,KAAK;IACX,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"StickyHeader.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/header/StickyHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,UAAU,OAAO;IAEb,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;CACnC;AAED,UAAU,YAAY;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,KAAK;IACX,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,OAoCrC,CAAC;AAMF,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -15,7 +15,7 @@ const StickyHeader = (props) => {
|
|
|
15
15
|
}
|
|
16
16
|
header = header;
|
|
17
17
|
content = content;
|
|
18
|
-
const cls = classnames(styles.stickyHeader, styles[`stickyHeader--${position}`]);
|
|
18
|
+
const cls = classnames(styles.stickyHeader, styles[`stickyHeader--${position}`], props.className);
|
|
19
19
|
const contentCls = classnames(styles.stickyHeader__content, styles[`stickyHeader__content--${position}`], content.props.className);
|
|
20
20
|
return (React.createElement("div", { className: cls },
|
|
21
21
|
React.cloneElement(header, { position }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StickyHeader.js","sourceRoot":"","sources":["../../../../src/components/layout/header/StickyHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAEhD,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,mEAAmE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"StickyHeader.js","sourceRoot":"","sources":["../../../../src/components/layout/header/StickyHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAEhD,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,mEAAmE,CAAC,CAAC;AAgB/F,MAAM,YAAY,GAA8B,CAAC,KAAK,EAAE,EAAE;IACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC;IAEzC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAGxD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,MAAM,GAAG,CAAC;KACb;IAED,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EACtF,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC;IAE1G,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE;QACrB,MAAM,GAAG,CAAC;KACb;IAED,MAAM,GAAG,MAAe,CAAC;IACzB,OAAO,GAAG,OAAgB,CAAC;IAE3B,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,iBAAiB,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAElG,MAAM,UAAU,GAAG,UAAU,CACzB,MAAM,CAAC,qBAAqB,EAC5B,MAAM,CAAC,0BAA0B,QAAQ,EAAE,CAAC,EAC3C,OAAmC,CAAC,KAAK,CAAC,SAAS,CACvD,CAAC;IAEF,OAAO,CACH,6BAAK,SAAS,EAAE,GAAG;QACd,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC;QACzC,6BAAK,SAAS,EAAE,UAAU,IACrB,OAAO,CACN,CACJ,CACT,CAAC;AACN,CAAC,CAAC;AAEF,YAAY,CAAC,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACpC,OAAO,0CAAG,QAAQ,CAAI,CAAC;AAC3B,CAAC,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -7,7 +7,7 @@ const Table = ({ className, children, variant, ...props }) => {
|
|
|
7
7
|
const cls = classnames(className, {
|
|
8
8
|
[styles.table]: !v.includes("raw"),
|
|
9
9
|
[styles.striped]: v.includes("striped"),
|
|
10
|
-
[styles.
|
|
10
|
+
[styles.wide]: v.includes("wide"),
|
|
11
11
|
[styles.centered]: v.includes("centered"),
|
|
12
12
|
});
|
|
13
13
|
return React.createElement("table", { className: cls, ...props }, children);
|
|
@@ -14,42 +14,43 @@
|
|
|
14
14
|
background: white;
|
|
15
15
|
margin: 0;
|
|
16
16
|
padding: 0;
|
|
17
|
+
list-style-type: none;
|
|
18
|
+
}
|
|
17
19
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
20
|
+
.li {
|
|
21
|
+
margin: 0;
|
|
22
|
+
padding: 0;
|
|
23
|
+
list-style-type: none;
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
+ .li {
|
|
25
26
|
border-top: 1px solid var(--border);
|
|
26
27
|
}
|
|
28
|
+
}
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
svg {
|
|
43
|
-
fill: currentColor;
|
|
44
|
-
margin-right: calc(42px / var(--ratio-dimensions));
|
|
45
|
-
}
|
|
30
|
+
.button {
|
|
31
|
+
border: none;
|
|
32
|
+
background: white;
|
|
33
|
+
height: calc(116px / var(--ratio-dimensions));
|
|
34
|
+
padding: 0 calc(42px / var(--ratio-dimensions));
|
|
35
|
+
box-sizing: border-box;
|
|
36
|
+
width: 100%;
|
|
37
|
+
min-width: calc(460px / var(--ratio-dimensions));
|
|
38
|
+
text-align: left;
|
|
39
|
+
color: var(--pop-text);
|
|
40
|
+
font-size: calc(26px / var(--ratio-font));
|
|
41
|
+
display: flex;
|
|
42
|
+
align-items: center;
|
|
46
43
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
44
|
+
&:hover {
|
|
45
|
+
background: var(--active-bg);
|
|
50
46
|
}
|
|
51
47
|
}
|
|
52
48
|
|
|
49
|
+
.icon {
|
|
50
|
+
fill: currentColor;
|
|
51
|
+
margin-right: calc(42px / var(--ratio-dimensions));
|
|
52
|
+
}
|
|
53
|
+
|
|
53
54
|
.fakeIcon {
|
|
54
55
|
display: inline-block;
|
|
55
56
|
width: 16px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopOption.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/pop/PopOption.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAK7C,UAAU,KAAK;IACX,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"PopOption.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/pop/PopOption.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAK7C,UAAU,KAAK;IACX,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAU9B,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -4,10 +4,10 @@ import styles from "./Pop.module.scss";
|
|
|
4
4
|
const PopOption = (props) => {
|
|
5
5
|
var _a;
|
|
6
6
|
const ic = props.icon
|
|
7
|
-
? React.createElement(Icon, { name: props.icon })
|
|
7
|
+
? React.createElement(Icon, { name: props.icon, className: styles.icon })
|
|
8
8
|
: (((_a = props.forceEmptyIcon) !== null && _a !== void 0 ? _a : true) ? React.createElement("span", { className: styles.fakeIcon }) : null);
|
|
9
|
-
return (React.createElement("li",
|
|
10
|
-
React.createElement("button", { onClick: props.onClick },
|
|
9
|
+
return (React.createElement("li", { className: styles.li },
|
|
10
|
+
React.createElement("button", { onClick: props.onClick, className: styles.button },
|
|
11
11
|
ic,
|
|
12
12
|
props.children)));
|
|
13
13
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopOption.js","sourceRoot":"","sources":["../../../../src/components/ui/pop/PopOption.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAQvC,MAAM,SAAS,GAAoB,CAAC,KAAK,EAAE,EAAE;;IACzC,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI;QACjB,CAAC,CAAC,oBAAC,IAAI,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAI;
|
|
1
|
+
{"version":3,"file":"PopOption.js","sourceRoot":"","sources":["../../../../src/components/ui/pop/PopOption.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAQvC,MAAM,SAAS,GAAoB,CAAC,KAAK,EAAE,EAAE;;IACzC,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI;QACjB,CAAC,CAAC,oBAAC,IAAI,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,GAAI;QACpD,CAAC,CAAC,CAAC,CAAC,MAAA,KAAK,CAAC,cAAc,mCAAI,IAAI,CAAC,CAAC,CAAC,CAAC,8BAAM,SAAS,EAAE,MAAM,CAAC,QAAQ,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAErF,OAAO,CACH,4BAAI,SAAS,EAAE,MAAM,CAAC,EAAE;QACpB,gCAAQ,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM;YAAG,EAAE;YAAE,KAAK,CAAC,QAAQ,CAAU,CACtF,CACR,CAAC;AACN,CAAC,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { Value } from "../../../types/form";
|
|
3
|
-
interface Props {
|
|
4
|
-
values: Value[];
|
|
3
|
+
interface Props<T extends string> {
|
|
4
|
+
values: Value<T>[];
|
|
5
5
|
value?: string;
|
|
6
6
|
onChange?: (value: string) => void;
|
|
7
7
|
}
|
|
8
|
-
declare const Selector: React.
|
|
8
|
+
declare const Selector: <T extends string>(props: Props<T>) => React.ReactElement<any, any> | null;
|
|
9
9
|
export { Selector };
|
|
10
10
|
//# sourceMappingURL=Selector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Selector.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tabs/Selector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAErD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAKjD,UAAU,KAAK;
|
|
1
|
+
{"version":3,"file":"Selector.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tabs/Selector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAErD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAKjD,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM;IAC5B,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,QAAA,MAAM,QAAQ,4EAeb,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Selector.js","sourceRoot":"","sources":["../../../../src/components/ui/tabs/Selector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGrD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAQ5C,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"Selector.js","sourceRoot":"","sources":["../../../../src/components/ui/tabs/Selector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGrD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAQ5C,MAAM,QAAQ,GAAG,CAAmB,KAAe,EAAkC,EAAE;;IACnF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,KAAa,EAAE,EAAE;;QAChD,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,MAAA,KAAK,CAAC,QAAQ,+CAAd,KAAK,EAAY,KAAK,CAAC,CAAC;IAC5B,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAErB,MAAM,GAAG,GAAG,MAAA,KAAK,CAAC,KAAK,mCAAI,OAAO,CAAC;IAEnC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC9B,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5B,OAAO,oBAAC,IAAI,IAAC,GAAG,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,KAAK,GAAI,CAAC;IAChG,CAAC,CAAC,CAAC;IACH,OAAO,6BAAK,SAAS,EAAE,MAAM,CAAC,QAAQ,IAAG,IAAI,CAAO,CAAC;AACzD,CAAC,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"If.d.ts","sourceRoot":"","sources":["../../../src/components/utils/If.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,KAAK;IACX,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,QAAA,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAKvB,CAAC;AAEF,OAAO,EAAE,EAAE,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"If.js","sourceRoot":"","sources":["../../../src/components/utils/If.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,EAAE,GAAoB,CAAC,KAAK,EAAE,EAAE;IAClC,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;QAC1B,OAAO,0CAAG,KAAK,CAAC,QAAQ,CAAI,CAAC;KAChC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,OAAO,EAAE,EAAE,EAAE,CAAC"}
|
package/esm/index.d.ts
CHANGED
|
@@ -28,5 +28,6 @@ export * from "./components/ui/stats/Stats.js";
|
|
|
28
28
|
export * from "./components/ui/tabs/Selector.js";
|
|
29
29
|
export * from "./components/ui/toaster/Toaster.js";
|
|
30
30
|
export * from "./components/utils/HandleEsc.js";
|
|
31
|
+
export * from "./components/utils/If.js";
|
|
31
32
|
export * from "./components/utils/Spacer.js";
|
|
32
33
|
//# sourceMappingURL=index.d.ts.map
|
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,6BAA6B,CAAC;AAC5C,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;AACvD,cAAc,oCAAoC,CAAC;AAEnD,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,gCAAgC,CAAC;AAE/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AAEnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,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,6BAA6B,CAAC;AAC5C,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;AACvD,cAAc,oCAAoC,CAAC;AAEnD,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,gCAAgC,CAAC;AAE/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AAEnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC"}
|
package/esm/index.js
CHANGED
|
@@ -28,5 +28,6 @@ export * from "./components/ui/stats/Stats.js";
|
|
|
28
28
|
export * from "./components/ui/tabs/Selector.js";
|
|
29
29
|
export * from "./components/ui/toaster/Toaster.js";
|
|
30
30
|
export * from "./components/utils/HandleEsc.js";
|
|
31
|
+
export * from "./components/utils/If.js";
|
|
31
32
|
export * from "./components/utils/Spacer.js";
|
|
32
33
|
//# sourceMappingURL=index.js.map
|
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,6BAA6B,CAAC;AAC5C,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;AACvD,cAAc,oCAAoC,CAAC;AAEnD,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,gCAAgC,CAAC;AAE/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AAEnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,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,6BAA6B,CAAC;AAC5C,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;AACvD,cAAc,oCAAoC,CAAC;AAEnD,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,gCAAgC,CAAC;AAE/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AAEnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC"}
|
package/esm/types/form.d.ts
CHANGED
package/esm/types/form.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/types/form.ts"],"names":[],"mappings":"AAAA,UAAU,WAAW;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACtD,aAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/types/form.ts"],"names":[],"mappings":"AAAA,UAAU,WAAW;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACtD,aAAK,KAAK,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG,WAAW,CAAC;AAE/C,YAAY,EACR,WAAW,EACX,KAAK,GACR,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toObjectValue.d.ts","sourceRoot":"","sources":["../../src/utils/toObjectValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAExD,QAAA,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"toObjectValue.d.ts","sourceRoot":"","sources":["../../src/utils/toObjectValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAExD,QAAA,MAAM,aAAa,qCAAoC,WAEtD,CAAC;AAEF,OAAO,EACH,aAAa,GAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toObjectValue.js","sourceRoot":"","sources":["../../src/utils/toObjectValue.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"toObjectValue.js","sourceRoot":"","sources":["../../src/utils/toObjectValue.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG,CAAmB,CAAW,EAAe,EAAE;IACjE,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,OAAO,EACH,aAAa,GAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
span {
|
|
17
17
|
display: flex;
|
|
18
|
-
padding: 0;
|
|
18
|
+
padding: 0 1em;
|
|
19
19
|
flex: 1;
|
|
20
20
|
height: 100%;
|
|
21
21
|
align-items: center;
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
font-size: calc(24px / var(--ratio-font));
|
|
24
24
|
color: var(--choice-text);
|
|
25
25
|
background: var(--choice-bg);
|
|
26
|
+
white-space: nowrap;
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
display: flex;
|
|
@@ -30,6 +31,9 @@
|
|
|
30
31
|
position: relative;
|
|
31
32
|
border-radius: 8px;
|
|
32
33
|
overflow: hidden;
|
|
34
|
+
width: max-content;
|
|
35
|
+
margin-left: auto;
|
|
36
|
+
margin-right: auto;
|
|
33
37
|
|
|
34
38
|
label {
|
|
35
39
|
flex: 1;
|
|
@@ -41,3 +45,12 @@
|
|
|
41
45
|
}
|
|
42
46
|
}
|
|
43
47
|
}
|
|
48
|
+
|
|
49
|
+
.wide {
|
|
50
|
+
width: 100%;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.left {
|
|
54
|
+
margin-left: unset;
|
|
55
|
+
margin-right: unset;
|
|
56
|
+
}
|
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import classnames from "classnames";
|
|
2
3
|
|
|
3
|
-
import type { Value } from "../../../types/form";
|
|
4
|
-
import { toObjectValue } from "../../../utils";
|
|
4
|
+
import type { ObjectValue, Value } from "../../../types/form";
|
|
5
|
+
import { makeVariants, toObjectValue } from "../../../utils";
|
|
5
6
|
import { ChoiceItem } from "./ChoiceItem";
|
|
6
7
|
import styles from "./Choice.module.scss";
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
type Variant = "wide" | "left";
|
|
10
|
+
|
|
11
|
+
interface Props<T extends string> {
|
|
12
|
+
values: Value<T>[];
|
|
10
13
|
value: string;
|
|
11
14
|
name: string;
|
|
12
|
-
onChange: (value:
|
|
15
|
+
onChange: (value: Exclude<Value<T>, ObjectValue>) => void;
|
|
16
|
+
className?: string;
|
|
17
|
+
variant?: Variant | Variant[];
|
|
13
18
|
}
|
|
14
19
|
|
|
15
|
-
|
|
20
|
+
// @TODO auto width mode by default?
|
|
21
|
+
|
|
22
|
+
const Choice = <T extends string>(props: Props<T>): ReturnType<React.FC<Props<T>>> => {
|
|
16
23
|
const opts = props.values.map(option => {
|
|
17
24
|
const opt = toObjectValue(option);
|
|
18
25
|
return (
|
|
@@ -26,7 +33,15 @@ const Choice: React.FC<Props> = (props) => {
|
|
|
26
33
|
);
|
|
27
34
|
});
|
|
28
35
|
|
|
29
|
-
|
|
36
|
+
const v = makeVariants(props.variant);
|
|
37
|
+
|
|
38
|
+
const cls = classnames(
|
|
39
|
+
styles.choice, props.className,
|
|
40
|
+
{ [styles.wide]: v.includes("wide") },
|
|
41
|
+
{ [styles.left]: v.includes("left") },
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
return <div className={cls}>{opts}</div>;
|
|
30
45
|
};
|
|
31
46
|
|
|
32
47
|
export { Choice };
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import React, { useCallback } from "react";
|
|
2
|
-
import type { ObjectValue } from "../../../types/form";
|
|
2
|
+
import type { ObjectValue, Value } from "../../../types/form";
|
|
3
3
|
|
|
4
|
-
interface Props {
|
|
4
|
+
interface Props<T extends string> {
|
|
5
5
|
name: string;
|
|
6
6
|
value: ObjectValue;
|
|
7
|
-
onChange: (value:
|
|
7
|
+
onChange: (value: Exclude<Value<T>, ObjectValue>) => void;
|
|
8
8
|
active: boolean;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
const ChoiceItem: React.FC<Props
|
|
11
|
+
const ChoiceItem = <T extends string>(props: Props<T>): ReturnType<React.FC<Props<T>>> => {
|
|
12
12
|
const handleChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {
|
|
13
|
-
props.onChange(e.currentTarget.value);
|
|
13
|
+
props.onChange(e.currentTarget.value as Exclude<Value<T>, ObjectValue>);
|
|
14
14
|
}, [props.onChange]);
|
|
15
15
|
|
|
16
16
|
return (
|
|
@@ -17,6 +17,7 @@ interface ContentProps {
|
|
|
17
17
|
|
|
18
18
|
interface Props {
|
|
19
19
|
position?: "top" | "left" | "right" | "bottom";
|
|
20
|
+
className?: string;
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
const StickyHeader: React.FC<Props> & Content = (props) => {
|
|
@@ -39,7 +40,7 @@ const StickyHeader: React.FC<Props> & Content = (props) => {
|
|
|
39
40
|
header = header as never; // @TODO find a better way to silence TS on cloneElement
|
|
40
41
|
content = content as never;
|
|
41
42
|
|
|
42
|
-
const cls = classnames(styles.stickyHeader, styles[`stickyHeader--${position}`]);
|
|
43
|
+
const cls = classnames(styles.stickyHeader, styles[`stickyHeader--${position}`], props.className);
|
|
43
44
|
|
|
44
45
|
const contentCls = classnames(
|
|
45
46
|
styles.stickyHeader__content,
|
|
@@ -18,7 +18,7 @@ const Table: React.FC<React.TableHTMLAttributes<HTMLTableElement> & Props> = (
|
|
|
18
18
|
const cls = classnames(className, {
|
|
19
19
|
[styles.table]: !v.includes("raw"),
|
|
20
20
|
[styles.striped]: v.includes("striped"),
|
|
21
|
-
[styles.
|
|
21
|
+
[styles.wide]: v.includes("wide"),
|
|
22
22
|
[styles.centered]: v.includes("centered"),
|
|
23
23
|
});
|
|
24
24
|
return <table className={cls} {...props}>{children}</table>;
|
|
@@ -14,42 +14,43 @@
|
|
|
14
14
|
background: white;
|
|
15
15
|
margin: 0;
|
|
16
16
|
padding: 0;
|
|
17
|
+
list-style-type: none;
|
|
18
|
+
}
|
|
17
19
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
20
|
+
.li {
|
|
21
|
+
margin: 0;
|
|
22
|
+
padding: 0;
|
|
23
|
+
list-style-type: none;
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
+ .li {
|
|
25
26
|
border-top: 1px solid var(--border);
|
|
26
27
|
}
|
|
28
|
+
}
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
svg {
|
|
43
|
-
fill: currentColor;
|
|
44
|
-
margin-right: calc(42px / var(--ratio-dimensions));
|
|
45
|
-
}
|
|
30
|
+
.button {
|
|
31
|
+
border: none;
|
|
32
|
+
background: white;
|
|
33
|
+
height: calc(116px / var(--ratio-dimensions));
|
|
34
|
+
padding: 0 calc(42px / var(--ratio-dimensions));
|
|
35
|
+
box-sizing: border-box;
|
|
36
|
+
width: 100%;
|
|
37
|
+
min-width: calc(460px / var(--ratio-dimensions));
|
|
38
|
+
text-align: left;
|
|
39
|
+
color: var(--pop-text);
|
|
40
|
+
font-size: calc(26px / var(--ratio-font));
|
|
41
|
+
display: flex;
|
|
42
|
+
align-items: center;
|
|
46
43
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
44
|
+
&:hover {
|
|
45
|
+
background: var(--active-bg);
|
|
50
46
|
}
|
|
51
47
|
}
|
|
52
48
|
|
|
49
|
+
.icon {
|
|
50
|
+
fill: currentColor;
|
|
51
|
+
margin-right: calc(42px / var(--ratio-dimensions));
|
|
52
|
+
}
|
|
53
|
+
|
|
53
54
|
.fakeIcon {
|
|
54
55
|
display: inline-block;
|
|
55
56
|
width: 16px;
|
|
@@ -13,11 +13,13 @@ interface Props {
|
|
|
13
13
|
|
|
14
14
|
const PopOption: React.FC<Props> = (props) => {
|
|
15
15
|
const ic = props.icon
|
|
16
|
-
? <Icon name={props.icon} />
|
|
16
|
+
? <Icon name={props.icon} className={styles.icon} />
|
|
17
17
|
: ((props.forceEmptyIcon ?? true) ? <span className={styles.fakeIcon} /> : null);
|
|
18
18
|
|
|
19
19
|
return (
|
|
20
|
-
<li
|
|
20
|
+
<li className={styles.li}>
|
|
21
|
+
<button onClick={props.onClick} className={styles.button}>{ic}{props.children}</button>
|
|
22
|
+
</li>
|
|
21
23
|
);
|
|
22
24
|
};
|
|
23
25
|
|
|
@@ -5,13 +5,13 @@ import { toObjectValue } from "../../../utils";
|
|
|
5
5
|
import { Item } from "./Item";
|
|
6
6
|
import styles from "./Selector.module.scss";
|
|
7
7
|
|
|
8
|
-
interface Props {
|
|
9
|
-
values: Value[];
|
|
8
|
+
interface Props<T extends string> {
|
|
9
|
+
values: Value<T>[];
|
|
10
10
|
value?: string;
|
|
11
11
|
onChange?: (value: string) => void;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
const Selector: React.FC<Props
|
|
14
|
+
const Selector = <T extends string>(props: Props<T>): ReturnType<React.FC<Props<T>>> => {
|
|
15
15
|
const [current, setCurrent] = useState(props.value);
|
|
16
16
|
|
|
17
17
|
const handleCurrent = useCallback((value: string) => {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
interface Props {
|
|
4
|
+
condition?: unknown;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
const If: React.FC<Props> = (props) => {
|
|
8
|
+
if (Boolean(props.condition)) { // eslint-disable-line no-extra-boolean-cast
|
|
9
|
+
return <>{props.children}</>;
|
|
10
|
+
}
|
|
11
|
+
return null;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { If };
|
|
@@ -5,12 +5,18 @@
|
|
|
5
5
|
flex-direction: column;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
+
.header {
|
|
9
|
+
margin: 0;
|
|
10
|
+
padding: 20px 20px 0;
|
|
11
|
+
}
|
|
12
|
+
|
|
8
13
|
.component {
|
|
9
14
|
padding: 20px;
|
|
10
15
|
flex: 1;
|
|
11
16
|
overflow: auto;
|
|
12
17
|
display: flex;
|
|
13
18
|
flex-direction: column;
|
|
19
|
+
margin-top: 20px;
|
|
14
20
|
|
|
15
21
|
&--transparent {
|
|
16
22
|
background-position: 0px 0px, 10px 10px;
|
package/src/demo/Main.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useState } from "react";
|
|
2
2
|
import classnames from "classnames";
|
|
3
3
|
|
|
4
4
|
import type { AnyComponent } from "../types";
|
|
@@ -8,6 +8,7 @@ import styles from "./Main.module.scss";
|
|
|
8
8
|
|
|
9
9
|
import { safeUseHash } from "./utils/safeUseHash";
|
|
10
10
|
import { componentsMap } from "./componentsMap";
|
|
11
|
+
import { Choice } from "../components/form/choice/Choice";
|
|
11
12
|
|
|
12
13
|
type BG = "white" | "transparent" | "mobile";
|
|
13
14
|
|
|
@@ -41,23 +42,15 @@ const getComponentByHash = (hash: string): ComponentInfo | null => {
|
|
|
41
42
|
return null;
|
|
42
43
|
};
|
|
43
44
|
|
|
45
|
+
const values: BG[] = ["white", "transparent", "mobile"];
|
|
46
|
+
|
|
44
47
|
const Main: React.FC = (props) => {
|
|
45
|
-
const [bg,
|
|
48
|
+
const [bg, handleBgChange] = useState<BG>("white");
|
|
46
49
|
|
|
47
50
|
const hash = safeUseHash();
|
|
48
51
|
const hashWithoutHash = hash.substr(1);
|
|
49
52
|
const info = getComponentByHash(hashWithoutHash);
|
|
50
53
|
|
|
51
|
-
const handleTransparentBg = useCallback(() => {
|
|
52
|
-
setBg("transparent");
|
|
53
|
-
}, []);
|
|
54
|
-
const handleWhiteBg = useCallback(() => {
|
|
55
|
-
setBg("white");
|
|
56
|
-
}, []);
|
|
57
|
-
const handleMobileBg = useCallback(() => {
|
|
58
|
-
setBg("mobile");
|
|
59
|
-
}, []);
|
|
60
|
-
|
|
61
54
|
if (!info) {
|
|
62
55
|
return (
|
|
63
56
|
<div className={styles.container}>
|
|
@@ -77,9 +70,7 @@ const Main: React.FC = (props) => {
|
|
|
77
70
|
return (
|
|
78
71
|
<div className={styles.container}>
|
|
79
72
|
<h1 className={styles.header}>{info.name}</h1>
|
|
80
|
-
<
|
|
81
|
-
<button onClick={handleWhiteBg}>White</button>
|
|
82
|
-
<button onClick={handleMobileBg}>Mobile</button>
|
|
73
|
+
<Choice values={values} value={bg} name={"x"} onChange={handleBgChange} />
|
|
83
74
|
|
|
84
75
|
<div className={componentCls}>
|
|
85
76
|
<Component />
|