@mirai/ui 1.0.4 → 1.0.7
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/README.md +134 -2
- package/build/components/Calendar/Calendar.Week.js +26 -25
- package/build/components/Calendar/Calendar.Week.js.map +1 -1
- package/build/components/Calendar/Calendar.js +3 -3
- package/build/components/Calendar/Calendar.js.map +1 -1
- package/build/components/Calendar/Calendar.module.css +25 -15
- package/build/components/Calendar/__tests__/__snapshots__/Calendar.test.jsx.snap +2628 -180
- package/build/components/Calendar/helpers/getWeekdays.js +1 -1
- package/build/components/Calendar/helpers/getWeekdays.js.map +1 -1
- package/build/components/InputNumber/InputNumber.js +2 -2
- package/build/components/InputNumber/InputNumber.js.map +1 -1
- package/build/components/InputNumber/__tests__/__snapshots__/InputNumber.test.js.snap +10 -5
- package/build/components/InputOption/InputOption.constants.js +13 -0
- package/build/components/InputOption/InputOption.constants.js.map +1 -0
- package/build/components/InputOption/InputOption.js +63 -0
- package/build/components/InputOption/InputOption.js.map +1 -0
- package/build/components/InputOption/InputOption.module.css +38 -0
- package/build/components/InputOption/__tests__/__snapshots__/InputOption.test.js.snap +232 -0
- package/build/components/InputOption/index.js +19 -0
- package/build/components/InputOption/index.js.map +1 -0
- package/build/components/Modal/Modal.module.css +2 -1
- package/build/components/Table/Table.Row.js +76 -0
- package/build/components/Table/Table.Row.js.map +1 -0
- package/build/components/Table/Table.js +92 -0
- package/build/components/Table/Table.js.map +1 -0
- package/build/components/Table/Table.module.css +76 -0
- package/build/components/Table/__tests__/__snapshots__/Table.test.js.snap +2285 -0
- package/build/components/Table/helpers/index.js +19 -0
- package/build/components/Table/helpers/index.js.map +1 -0
- package/build/components/Table/helpers/select.js +29 -0
- package/build/components/Table/helpers/select.js.map +1 -0
- package/build/components/Table/index.js +19 -0
- package/build/components/Table/index.js.map +1 -0
- package/build/components/index.js +26 -0
- package/build/components/index.js.map +1 -1
- package/build/primitives/Checkbox/Checkbox.js +52 -0
- package/build/primitives/Checkbox/Checkbox.js.map +1 -0
- package/build/primitives/Checkbox/Checkbox.module.css +45 -0
- package/build/primitives/Checkbox/__tests__/__snapshots__/Checkbox.test.js.snap +127 -0
- package/build/primitives/Checkbox/index.js +19 -0
- package/build/primitives/Checkbox/index.js.map +1 -0
- package/build/primitives/Icon/Icon.constants.js +3 -1
- package/build/primitives/Icon/Icon.constants.js.map +1 -1
- package/build/primitives/Input/Input.module.css +4 -0
- package/build/primitives/Layer/Layer.js +89 -0
- package/build/primitives/Layer/Layer.js.map +1 -0
- package/build/primitives/Layer/Layer.module.css +10 -0
- package/build/primitives/Layer/LayerContent.js +22 -0
- package/build/primitives/Layer/LayerContent.js.map +1 -0
- package/build/primitives/Layer/__tests__/__snapshots__/Layer.test.js.snap +55 -0
- package/build/primitives/Layer/helpers/getElementLayout.js +23 -0
- package/build/primitives/Layer/helpers/getElementLayout.js.map +1 -0
- package/build/primitives/Layer/helpers/getLayerPosition.js +43 -0
- package/build/primitives/Layer/helpers/getLayerPosition.js.map +1 -0
- package/build/primitives/Layer/helpers/index.js +32 -0
- package/build/primitives/Layer/helpers/index.js.map +1 -0
- package/build/primitives/Layer/index.js +32 -0
- package/build/primitives/Layer/index.js.map +1 -0
- package/build/primitives/Radio/Radio.js +49 -0
- package/build/primitives/Radio/Radio.js.map +1 -0
- package/build/primitives/Radio/Radio.module.css +59 -0
- package/build/primitives/Radio/__tests__/__snapshots__/Radio.test.js.snap +126 -0
- package/build/primitives/Radio/index.js +19 -0
- package/build/primitives/Radio/index.js.map +1 -0
- package/build/primitives/Select/Select.module.css +1 -0
- package/build/primitives/Switch/Switch.js +50 -0
- package/build/primitives/Switch/Switch.js.map +1 -0
- package/build/primitives/Switch/Switch.module.css +57 -0
- package/build/primitives/Switch/__tests__/__snapshots__/Switch.test.js.snap +109 -0
- package/build/primitives/Switch/index.js +19 -0
- package/build/primitives/Switch/index.js.map +1 -0
- package/build/primitives/View/View.js +12 -3
- package/build/primitives/View/View.js.map +1 -1
- package/build/primitives/index.js +64 -12
- package/build/primitives/index.js.map +1 -1
- package/build/theme/default.theme.css +8 -1
- package/package.json +1 -1
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.Table = void 0;
|
|
11
|
+
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
|
|
17
|
+
|
|
18
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
+
|
|
20
|
+
var _helpers = require("../../helpers");
|
|
21
|
+
|
|
22
|
+
var _helpers2 = require("./helpers");
|
|
23
|
+
|
|
24
|
+
var _TableModule = _interopRequireDefault(require("./Table.module.css"));
|
|
25
|
+
|
|
26
|
+
var _Table = require("./Table.Row");
|
|
27
|
+
|
|
28
|
+
var _excluded = ["dataSource", "schema", "search", "onPress", "onSelect"];
|
|
29
|
+
|
|
30
|
+
var Table = function Table(_ref) {
|
|
31
|
+
var _ref$dataSource = _ref.dataSource,
|
|
32
|
+
dataSource = _ref$dataSource === void 0 ? [] : _ref$dataSource,
|
|
33
|
+
schema = _ref.schema,
|
|
34
|
+
search = _ref.search,
|
|
35
|
+
onPress = _ref.onPress,
|
|
36
|
+
onSelect = _ref.onSelect,
|
|
37
|
+
others = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
38
|
+
|
|
39
|
+
var _useState = (0, _react.useState)([]),
|
|
40
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
41
|
+
selected = _useState2[0],
|
|
42
|
+
setSelected = _useState2[1];
|
|
43
|
+
|
|
44
|
+
var _useState3 = (0, _react.useState)({}),
|
|
45
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
46
|
+
sort = _useState4[0],
|
|
47
|
+
setSort = _useState4[1];
|
|
48
|
+
|
|
49
|
+
var handleSelect = function handleSelect(row) {
|
|
50
|
+
setSelected(function () {
|
|
51
|
+
var exists = selected.includes(row);
|
|
52
|
+
var next = selected.filter(function (item) {
|
|
53
|
+
return item !== row;
|
|
54
|
+
});
|
|
55
|
+
if (!exists) next.push(row);
|
|
56
|
+
onSelect(next);
|
|
57
|
+
return next;
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
var handleSort = function handleSort(field) {
|
|
62
|
+
setSort(sort[field] === undefined ? (0, _defineProperty2.default)({}, field, true) : sort[field] ? (0, _defineProperty2.default)({}, field, false) : {});
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
var testId = others['data-testid'];
|
|
66
|
+
return /*#__PURE__*/_react.default.createElement("table", Object.assign({}, others, {
|
|
67
|
+
className: (0, _helpers.styles)(_TableModule.default.table, others.className)
|
|
68
|
+
}), /*#__PURE__*/_react.default.createElement("thead", null, /*#__PURE__*/_react.default.createElement(_Table.TableRow, {
|
|
69
|
+
schema: schema,
|
|
70
|
+
sort: sort,
|
|
71
|
+
onSelect: onSelect ? function () {} : undefined,
|
|
72
|
+
onSort: handleSort
|
|
73
|
+
})), /*#__PURE__*/_react.default.createElement("tbody", null, (0, _react.useMemo)(function () {
|
|
74
|
+
return (0, _helpers2.select)(dataSource, {
|
|
75
|
+
search: search,
|
|
76
|
+
sort: sort
|
|
77
|
+
});
|
|
78
|
+
}, [dataSource, search, sort]).map(function (row, index) {
|
|
79
|
+
return /*#__PURE__*/_react.default.createElement(_Table.TableRow, {
|
|
80
|
+
"data-testid": testId ? "".concat(testId, "-").concat(index) : undefined,
|
|
81
|
+
dataSource: row,
|
|
82
|
+
key: index,
|
|
83
|
+
schema: schema,
|
|
84
|
+
selected: selected.includes(row),
|
|
85
|
+
onPress: onPress,
|
|
86
|
+
onSelect: onSelect ? handleSelect : undefined
|
|
87
|
+
});
|
|
88
|
+
})));
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
exports.Table = Table;
|
|
92
|
+
//# sourceMappingURL=Table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Table/Table.jsx"],"names":["Table","dataSource","schema","search","onPress","onSelect","others","selected","setSelected","sort","setSort","handleSelect","row","exists","includes","next","filter","item","push","handleSort","field","undefined","testId","style","table","className","map","index"],"mappings":";;;;;;;;;;;;;;;;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;AAEO,IAAMA,KAAK,GAAG,SAARA,KAAQ,OAAuE;AAAA,6BAApEC,UAAoE;AAAA,MAApEA,UAAoE,gCAAvD,EAAuD;AAAA,MAAnDC,MAAmD,QAAnDA,MAAmD;AAAA,MAA3CC,MAA2C,QAA3CA,MAA2C;AAAA,MAAnCC,OAAmC,QAAnCA,OAAmC;AAAA,MAA1BC,QAA0B,QAA1BA,QAA0B;AAAA,MAAbC,MAAa;;AAC1F,kBAAgC,qBAAS,EAAT,CAAhC;AAAA;AAAA,MAAOC,QAAP;AAAA,MAAiBC,WAAjB;;AACA,mBAAwB,qBAAS,EAAT,CAAxB;AAAA;AAAA,MAAOC,IAAP;AAAA,MAAaC,OAAb;;AAEA,MAAMC,YAAY,GAAG,SAAfA,YAAe,CAACC,GAAD,EAAS;AAC5BJ,IAAAA,WAAW,CAAC,YAAM;AAChB,UAAMK,MAAM,GAAGN,QAAQ,CAACO,QAAT,CAAkBF,GAAlB,CAAf;AACA,UAAMG,IAAI,GAAGR,QAAQ,CAACS,MAAT,CAAgB,UAACC,IAAD;AAAA,eAAUA,IAAI,KAAKL,GAAnB;AAAA,OAAhB,CAAb;AACA,UAAI,CAACC,MAAL,EAAaE,IAAI,CAACG,IAAL,CAAUN,GAAV;AAEbP,MAAAA,QAAQ,CAACU,IAAD,CAAR;AAEA,aAAOA,IAAP;AACD,KARU,CAAX;AASD,GAVD;;AAYA,MAAMI,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD,EAAW;AAC5BV,IAAAA,OAAO,CAACD,IAAI,CAACW,KAAD,CAAJ,KAAgBC,SAAhB,qCAA+BD,KAA/B,EAAuC,IAAvC,IAAgDX,IAAI,CAACW,KAAD,CAAJ,qCAAiBA,KAAjB,EAAyB,KAAzB,IAAmC,EAApF,CAAP;AACD,GAFD;;AAIA,MAAyBE,MAAzB,GAAoChB,MAApC,CAAS,aAAT;AAEA,sBACE,wDAAWA,MAAX;AAAmB,IAAA,SAAS,EAAE,qBAAOiB,qBAAMC,KAAb,EAAoBlB,MAAM,CAACmB,SAA3B;AAA9B,mBACE,yDACE,6BAAC,eAAD;AAAU,IAAA,MAAM,EAAEvB,MAAlB;AAA0B,IAAA,IAAI,EAAEO,IAAhC;AAAsC,IAAA,QAAQ,EAAEJ,QAAQ,GAAG,YAAM,CAAE,CAAX,GAAcgB,SAAtE;AAAiF,IAAA,MAAM,EAAEF;AAAzF,IADF,CADF,eAIE,4CACG,oBAAQ;AAAA,WAAM,sBAAOlB,UAAP,EAAmB;AAAEE,MAAAA,MAAM,EAANA,MAAF;AAAUM,MAAAA,IAAI,EAAJA;AAAV,KAAnB,CAAN;AAAA,GAAR,EAAoD,CAACR,UAAD,EAAaE,MAAb,EAAqBM,IAArB,CAApD,EAAgFiB,GAAhF,CAAoF,UAACd,GAAD,EAAMe,KAAN;AAAA,wBACnF,6BAAC,eAAD;AACE,qBAAaL,MAAM,aAAMA,MAAN,cAAgBK,KAAhB,IAA0BN,SAD/C;AAEE,MAAA,UAAU,EAAET,GAFd;AAGE,MAAA,GAAG,EAAEe,KAHP;AAIE,MAAA,MAAM,EAAEzB,MAJV;AAKE,MAAA,QAAQ,EAAEK,QAAQ,CAACO,QAAT,CAAkBF,GAAlB,CALZ;AAME,MAAA,OAAO,EAAER,OANX;AAOE,MAAA,QAAQ,EAAEC,QAAQ,GAAGM,YAAH,GAAkBU;AAPtC,MADmF;AAAA,GAApF,CADH,CAJF,CADF;AAoBD,CA1CM","sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useMemo, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { select } from './helpers';\nimport style from './Table.module.css';\nimport { TableRow } from './Table.Row';\n\nexport const Table = ({ dataSource = [], schema, search, onPress, onSelect, ...others }) => {\n const [selected, setSelected] = useState([]);\n const [sort, setSort] = useState({});\n\n const handleSelect = (row) => {\n setSelected(() => {\n const exists = selected.includes(row);\n const next = selected.filter((item) => item !== row);\n if (!exists) next.push(row);\n\n onSelect(next);\n\n return next;\n });\n };\n\n const handleSort = (field) => {\n setSort(sort[field] === undefined ? { [field]: true } : sort[field] ? { [field]: false } : {});\n };\n\n const { ['data-testid']: testId } = others;\n\n return (\n <table {...others} className={styles(style.table, others.className)}>\n <thead>\n <TableRow schema={schema} sort={sort} onSelect={onSelect ? () => {} : undefined} onSort={handleSort} />\n </thead>\n <tbody>\n {useMemo(() => select(dataSource, { search, sort }), [dataSource, search, sort]).map((row, index) => (\n <TableRow\n data-testid={testId ? `${testId}-${index}` : undefined}\n dataSource={row}\n key={index}\n schema={schema}\n selected={selected.includes(row)}\n onPress={onPress}\n onSelect={onSelect ? handleSelect : undefined}\n />\n ))}\n </tbody>\n </table>\n );\n};\n\nTable.propTypes = {\n dataSource: PropTypes.arrayOf(PropTypes.shape({})),\n schema: PropTypes.shape({}).isRequired,\n search: PropTypes.string,\n onPress: PropTypes.func,\n onSelect: PropTypes.func,\n};\n"],"file":"Table.js"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--mirai-ui-table-base: var(--mirai-ui-base);
|
|
3
|
+
--mirai-ui-table-border-color: var(--mirai-ui-disabled);
|
|
4
|
+
--mirai-ui-table-content: var(--mirai-ui-content);
|
|
5
|
+
--mirai-ui-table-lighten: var(--mirai-ui-lighten);
|
|
6
|
+
--mirai-ui-table-color-selected: var(--mirai-ui-accent);
|
|
7
|
+
--mirai-ui-table-color-selected-lighten: var(--mirai-ui-accent-lighten);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.table {
|
|
11
|
+
background-color: var(--mirai-ui-table-base);
|
|
12
|
+
border-collapse: collapse;
|
|
13
|
+
font-family: var(--mirai-ui-font);
|
|
14
|
+
font-size: var(--mirai-ui-font-size-action);
|
|
15
|
+
table-layout: auto;
|
|
16
|
+
text-align: left;
|
|
17
|
+
width: 100%;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.table thead tr {
|
|
21
|
+
color: var(--mirai-ui-table-lighten);
|
|
22
|
+
font-family: var(--mirai-ui-font-bold);
|
|
23
|
+
font-size: var(--mirai-ui-font-size-small);
|
|
24
|
+
font-weight: var(--mirai-ui-font-bold-weight);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.table thead tr th {
|
|
28
|
+
height: var(--mirai-ui-space-M);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.table thead tr th:hover {
|
|
32
|
+
color: var(--mirai-ui-table-content);
|
|
33
|
+
cursor: pointer;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.table tbody tr.selected {
|
|
37
|
+
background-color: var(--mirai-ui-table-color-selected-lighten);
|
|
38
|
+
color: var(--mirai-ui-table-color-selected);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.table tbody tr:hover.onPress {
|
|
42
|
+
background-color: var(--mirai-ui-table-border-color);
|
|
43
|
+
cursor: pointer;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.table tr:not(:last-child) {
|
|
47
|
+
border-bottom: solid 1px var(--mirai-ui-table-border-color);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.table th,
|
|
51
|
+
.table td {
|
|
52
|
+
padding: var(--mirai-ui-space-S) 0;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.table th:first-child,
|
|
56
|
+
.table td:first-child {
|
|
57
|
+
padding-left: var(--mirai-ui-space-M);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.table th:last-child,
|
|
61
|
+
.table td:last-child {
|
|
62
|
+
padding-right: var(--mirai-ui-space-M);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.table th.select,
|
|
66
|
+
.table td.select {
|
|
67
|
+
width: calc(var(--mirai-ui-space-XL) + var(--mirai-ui-space-S));
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.table th .hideIcon {
|
|
71
|
+
color: var(--mirai-ui-table-base);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.table .checkbox {
|
|
75
|
+
margin: 0;
|
|
76
|
+
}
|