@mirai/ui 1.0.176 → 1.0.182

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.
Files changed (43) hide show
  1. package/README.md +3 -2
  2. package/build/components/Calendar/Calendar.Week.js +1 -1
  3. package/build/components/Calendar/Calendar.Week.js.map +1 -1
  4. package/build/components/Calendar/Calendar.module.css +1 -3
  5. package/build/components/Calendar/__tests__/__snapshots__/Calendar.test.jsx.snap +122 -122
  6. package/build/components/InputOption/InputOption.js +4 -8
  7. package/build/components/InputOption/InputOption.js.map +1 -1
  8. package/build/components/InputText/InputText.js +2 -1
  9. package/build/components/InputText/InputText.js.map +1 -1
  10. package/build/components/InputText/partials/InputText.Label.js +1 -1
  11. package/build/components/InputText/partials/InputText.Label.js.map +1 -1
  12. package/build/components/Table/Table.ColumnFilter.js +28 -15
  13. package/build/components/Table/Table.ColumnFilter.js.map +1 -1
  14. package/build/components/Table/Table.Filter.js +18 -8
  15. package/build/components/Table/Table.Filter.js.map +1 -1
  16. package/build/components/Table/Table.Row.js +5 -1
  17. package/build/components/Table/Table.Row.js.map +1 -1
  18. package/build/components/Table/Table.constants.js +18 -0
  19. package/build/components/Table/Table.constants.js.map +1 -0
  20. package/build/components/Table/Table.js +26 -10
  21. package/build/components/Table/Table.js.map +1 -1
  22. package/build/components/Table/Table.module.css +18 -9
  23. package/build/components/Table/Table.stories.js +15 -4
  24. package/build/components/Table/Table.stories.js.map +1 -1
  25. package/build/components/Table/Table.stories.module.css +10 -2
  26. package/build/components/Table/__tests__/__snapshots__/Table.ColumnFilter.test.js.snap +762 -0
  27. package/build/components/Table/__tests__/__snapshots__/Table.test.js.snap +371 -9
  28. package/build/components/Table/helpers/index.js +11 -0
  29. package/build/components/Table/helpers/index.js.map +1 -1
  30. package/build/components/Table/helpers/select.js +16 -11
  31. package/build/components/Table/helpers/select.js.map +1 -1
  32. package/build/components/Table/helpers/storage.js +28 -0
  33. package/build/components/Table/helpers/storage.js.map +1 -0
  34. package/build/primitives/Text/Text.js +8 -3
  35. package/build/primitives/Text/Text.js.map +1 -1
  36. package/build/primitives/Text/Text.module.css +5 -0
  37. package/build/primitives/Text/Text.stories.js +1 -0
  38. package/build/primitives/Text/Text.stories.js.map +1 -1
  39. package/build/primitives/Text/__tests__/__snapshots__/Text.test.js.snap +30 -0
  40. package/build/primitives/Text/helpers/parseMarkdown.js +9 -10
  41. package/build/primitives/Text/helpers/parseMarkdown.js.map +1 -1
  42. package/build/theme/default.theme.css +2 -2
  43. package/package.json +1 -1
@@ -10,10 +10,11 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _helpers = require("../../helpers");
11
11
  var _primitives = require("../../primitives");
12
12
  var _helpers2 = require("./helpers");
13
- var _Table = require("./Table.Filter");
13
+ var _Table = require("./Table.constants");
14
+ var _Table2 = require("./Table.Filter");
14
15
  var _TableModule = _interopRequireDefault(require("./Table.module.css"));
15
- var _Table2 = require("./Table.Row");
16
- var _excluded = ["dataSource", "filter", "inline", "schema", "search", "selected", "onPress", "onScroll", "onSelect"];
16
+ var _Table3 = require("./Table.Row");
17
+ var _excluded = ["dataSource", "filter", "inline", "l10n", "schema", "search", "selected", "store", "onPress", "onScroll", "onSelect"];
17
18
  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); }
18
19
  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; }
19
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -42,15 +43,17 @@ var Table = function Table(_ref) {
42
43
  propFilter = _ref$filter === void 0 ? [] : _ref$filter,
43
44
  _ref$inline = _ref.inline,
44
45
  inline = _ref$inline === void 0 ? true : _ref$inline,
46
+ l10n = _ref.l10n,
45
47
  schema = _ref.schema,
46
48
  search = _ref.search,
47
49
  _ref$selected = _ref.selected,
48
50
  propSelected = _ref$selected === void 0 ? [] : _ref$selected,
51
+ store = _ref.store,
49
52
  onPress = _ref.onPress,
50
53
  onScroll = _ref.onScroll,
51
54
  onSelect = _ref.onSelect,
52
55
  others = _objectWithoutProperties(_ref, _excluded);
53
- var _useState = (0, _react.useState)(propFilter),
56
+ var _useState = (0, _react.useState)([]),
54
57
  _useState2 = _slicedToArray(_useState, 2),
55
58
  filter = _useState2[0],
56
59
  setFilter = _useState2[1];
@@ -63,14 +66,23 @@ var Table = function Table(_ref) {
63
66
  sort = _useState6[0],
64
67
  setSort = _useState6[1];
65
68
  (0, _react.useEffect)(function () {
66
- if (JSON.stringify(filter) !== JSON.stringify(propFilter)) setFilter(propFilter);
69
+ var nextFilter = propFilter;
70
+ if (store) {
71
+ var storeFilter = _helpers2.Storage.get("".concat(store, ":filter"));
72
+ if (storeFilter !== null && storeFilter !== void 0 && storeFilter.length) nextFilter = storeFilter;
73
+ }
74
+ setFilter(nextFilter);
67
75
  // eslint-disable-next-line react-hooks/exhaustive-deps
68
- }, [propFilter]);
76
+ }, []);
77
+ (0, _react.useEffect)(function () {
78
+ if (!store) return;
79
+ _helpers2.Storage.set("".concat(store, ":filter"), filter);
80
+ }, [filter, store]);
69
81
  var handleAddFilter = function handleAddFilter(item) {
70
82
  setFilter([].concat(_toConsumableArray(filter), [item]));
71
83
  };
72
84
  var handleRemoveFilter = function handleRemoveFilter(index) {
73
- filter.splice(index, 1);
85
+ filter === null || filter === void 0 ? void 0 : filter.splice(index, 1);
74
86
  setFilter(_toConsumableArray(filter));
75
87
  };
76
88
  var handleHeadSelect = function handleHeadSelect(row, event) {
@@ -99,8 +111,9 @@ var Table = function Table(_ref) {
99
111
  role: others.role || 'table',
100
112
  onScroll: onScroll,
101
113
  className: (0, _helpers.styles)(!inline && _TableModule.default.outlined, others.className)
102
- }) : undefined, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, filter.length > 0 && /*#__PURE__*/_react.default.createElement(_Table.Filter, {
114
+ }) : undefined, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (filter === null || filter === void 0 ? void 0 : filter.length) > 0 && /*#__PURE__*/_react.default.createElement(_Table2.Filter, {
103
115
  filter: filter,
116
+ schema: schema,
104
117
  role: "table-filter",
105
118
  onRemove: function onRemove(index) {
106
119
  return handleRemoveFilter(index);
@@ -112,9 +125,10 @@ var Table = function Table(_ref) {
112
125
  className: (0, _helpers.styles)(_TableModule.default.table, !onScroll && !inline && others.className)
113
126
  }), /*#__PURE__*/_react.default.createElement(_primitives.Primitive, {
114
127
  tag: "thead"
115
- }, /*#__PURE__*/_react.default.createElement(_Table2.Row, {
128
+ }, /*#__PURE__*/_react.default.createElement(_Table3.Row, {
116
129
  checked: selected.length === dataSource.length,
117
130
  indeterminate: selected.length > 0,
131
+ l10n: l10n,
118
132
  schema: schema,
119
133
  sort: sort,
120
134
  onFilter: handleAddFilter,
@@ -132,7 +146,7 @@ var Table = function Table(_ref) {
132
146
  sort: sort
133
147
  });
134
148
  }, [dataSource, filter, schema, search, sort]).map(function (row, index) {
135
- return /*#__PURE__*/_react.default.createElement(_Table2.Row, {
149
+ return /*#__PURE__*/_react.default.createElement(_Table3.Row, {
136
150
  checked: !!selected.find(function (item) {
137
151
  return JSON.stringify(item) === JSON.stringify(row);
138
152
  }),
@@ -151,8 +165,10 @@ Table.propTypes = {
151
165
  dataSource: _propTypes.default.arrayOf(_propTypes.default.shape({})),
152
166
  filter: _propTypes.default.arrayOf(_propTypes.default.shape({})),
153
167
  inline: _propTypes.default.bool,
168
+ l10n: _Table.L10N_SHAPE,
154
169
  schema: _propTypes.default.shape({}).isRequired,
155
170
  search: _propTypes.default.string,
171
+ store: _propTypes.default.string,
156
172
  selected: _propTypes.default.arrayOf(_propTypes.default.shape()),
157
173
  onPress: _propTypes.default.func,
158
174
  onScroll: _propTypes.default.func,
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","names":["Table","dataSource","filter","propFilter","inline","schema","search","selected","propSelected","onPress","onScroll","onSelect","others","useState","setFilter","setSelected","sort","setSort","useEffect","JSON","stringify","handleAddFilter","item","handleRemoveFilter","index","splice","handleHeadSelect","row","event","next","length","handleSelect","exists","includes","push","handleSort","field","undefined","testId","React","createElement","ScrollView","View","Fragment","role","className","styles","style","outlined","table","useMemo","select","map","find","displayName","propTypes","PropTypes","arrayOf","shape","bool","isRequired","string","func"],"sources":["../../../src/components/Table/Table.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { Fragment, useEffect, useMemo, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { Primitive, ScrollView, View } from '../../primitives';\nimport { select } from './helpers';\nimport { Filter } from './Table.Filter';\nimport style from './Table.module.css';\nimport { Row } from './Table.Row';\n\nexport const Table = ({\n dataSource = [],\n filter: propFilter = [],\n inline = true,\n schema,\n search,\n selected: propSelected = [],\n onPress,\n onScroll,\n onSelect,\n ...others\n}) => {\n const [filter, setFilter] = useState(propFilter);\n const [selected, setSelected] = useState(propSelected);\n const [sort, setSort] = useState({});\n\n useEffect(() => {\n if (JSON.stringify(filter) !== JSON.stringify(propFilter)) setFilter(propFilter);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [propFilter]);\n\n const handleAddFilter = (item) => {\n setFilter([...filter, item]);\n };\n\n const handleRemoveFilter = (index) => {\n filter.splice(index, 1);\n setFilter([...filter]);\n };\n\n const handleHeadSelect = (row, event) => {\n setSelected(() => {\n const next = selected.length !== dataSource.length ? dataSource : [];\n onSelect(next, event);\n\n return next;\n });\n };\n\n const handleSelect = (row, event) => {\n setSelected(() => {\n const exists = selected.includes(row);\n const next = selected.filter((item) => item !== row);\n if (!exists) next.push(row);\n onSelect(next, event);\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 { testId } = others;\n\n return React.createElement(\n onScroll ? ScrollView : !inline ? View : Fragment,\n onScroll || !inline\n ? {\n ...others,\n role: others.role || 'table',\n onScroll,\n className: styles(!inline && style.outlined, others.className),\n }\n : undefined,\n <>\n {filter.length > 0 && (\n <Filter filter={filter} role=\"table-filter\" onRemove={(index) => handleRemoveFilter(index)} />\n )}\n <Primitive\n role=\"table\"\n tag=\"table\"\n {...(!onScroll ? others : undefined)}\n className={styles(style.table, !onScroll && !inline && others.className)}\n >\n <Primitive tag=\"thead\">\n <Row\n checked={selected.length === dataSource.length}\n indeterminate={selected.length > 0}\n schema={schema}\n sort={sort}\n onFilter={handleAddFilter}\n onSelect={onSelect ? handleHeadSelect : undefined}\n onSort={handleSort}\n testId={testId ? `${testId}-head` : undefined}\n />\n </Primitive>\n <Primitive tag=\"tbody\">\n {useMemo(\n () => select({ dataSource, filter, schema, search, sort }),\n [dataSource, filter, schema, search, sort],\n ).map((row, index) => (\n <Row\n checked={!!selected.find((item) => JSON.stringify(item) === JSON.stringify(row))}\n dataSource={row}\n key={index}\n schema={schema}\n onPress={onPress}\n onSelect={onSelect ? handleSelect : undefined}\n testId={testId ? `${testId}-${index}` : undefined}\n />\n ))}\n </Primitive>\n </Primitive>\n </>,\n );\n};\n\nTable.displayName = 'Component:Table';\n\nTable.propTypes = {\n dataSource: PropTypes.arrayOf(PropTypes.shape({})),\n filter: PropTypes.arrayOf(PropTypes.shape({})),\n inline: PropTypes.bool,\n schema: PropTypes.shape({}).isRequired,\n search: PropTypes.string,\n selected: PropTypes.arrayOf(PropTypes.shape()),\n onPress: PropTypes.func,\n onScroll: PropTypes.func,\n onSelect: PropTypes.func,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"Table.js","names":["Table","dataSource","filter","propFilter","inline","l10n","schema","search","selected","propSelected","store","onPress","onScroll","onSelect","others","useState","setFilter","setSelected","sort","setSort","useEffect","nextFilter","storeFilter","Storage","get","length","set","handleAddFilter","item","handleRemoveFilter","index","splice","handleHeadSelect","row","event","next","handleSelect","exists","includes","push","handleSort","field","undefined","testId","React","createElement","ScrollView","View","Fragment","role","className","styles","style","outlined","table","useMemo","select","map","find","JSON","stringify","displayName","propTypes","PropTypes","arrayOf","shape","bool","L10N_SHAPE","isRequired","string","func"],"sources":["../../../src/components/Table/Table.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { Fragment, useEffect, useMemo, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { Primitive, ScrollView, View } from '../../primitives';\nimport { select, Storage } from './helpers';\nimport { L10N_SHAPE } from './Table.constants';\nimport { Filter } from './Table.Filter';\nimport style from './Table.module.css';\nimport { Row } from './Table.Row';\n\nexport const Table = ({\n dataSource = [],\n filter: propFilter = [],\n inline = true,\n l10n,\n schema,\n search,\n selected: propSelected = [],\n store,\n onPress,\n onScroll,\n onSelect,\n ...others\n}) => {\n const [filter, setFilter] = useState([]);\n const [selected, setSelected] = useState(propSelected);\n const [sort, setSort] = useState({});\n\n useEffect(() => {\n let nextFilter = propFilter;\n if (store) {\n const storeFilter = Storage.get(`${store}:filter`);\n if (storeFilter?.length) nextFilter = storeFilter;\n }\n\n setFilter(nextFilter);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!store) return;\n Storage.set(`${store}:filter`, filter);\n }, [filter, store]);\n\n const handleAddFilter = (item) => {\n setFilter([...filter, item]);\n };\n\n const handleRemoveFilter = (index) => {\n filter?.splice(index, 1);\n setFilter([...filter]);\n };\n\n const handleHeadSelect = (row, event) => {\n setSelected(() => {\n const next = selected.length !== dataSource.length ? dataSource : [];\n onSelect(next, event);\n\n return next;\n });\n };\n\n const handleSelect = (row, event) => {\n setSelected(() => {\n const exists = selected.includes(row);\n const next = selected.filter((item) => item !== row);\n if (!exists) next.push(row);\n onSelect(next, event);\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 { testId } = others;\n\n return React.createElement(\n onScroll ? ScrollView : !inline ? View : Fragment,\n onScroll || !inline\n ? {\n ...others,\n role: others.role || 'table',\n onScroll,\n className: styles(!inline && style.outlined, others.className),\n }\n : undefined,\n <>\n {filter?.length > 0 && (\n <Filter filter={filter} schema={schema} role=\"table-filter\" onRemove={(index) => handleRemoveFilter(index)} />\n )}\n <Primitive\n role=\"table\"\n tag=\"table\"\n {...(!onScroll ? others : undefined)}\n className={styles(style.table, !onScroll && !inline && others.className)}\n >\n <Primitive tag=\"thead\">\n <Row\n checked={selected.length === dataSource.length}\n indeterminate={selected.length > 0}\n l10n={l10n}\n schema={schema}\n sort={sort}\n onFilter={handleAddFilter}\n onSelect={onSelect ? handleHeadSelect : undefined}\n onSort={handleSort}\n testId={testId ? `${testId}-head` : undefined}\n />\n </Primitive>\n <Primitive tag=\"tbody\">\n {useMemo(\n () => select({ dataSource, filter, schema, search, sort }),\n [dataSource, filter, schema, search, sort],\n ).map((row, index) => (\n <Row\n checked={!!selected.find((item) => JSON.stringify(item) === JSON.stringify(row))}\n dataSource={row}\n key={index}\n schema={schema}\n onPress={onPress}\n onSelect={onSelect ? handleSelect : undefined}\n testId={testId ? `${testId}-${index}` : undefined}\n />\n ))}\n </Primitive>\n </Primitive>\n </>,\n );\n};\n\nTable.displayName = 'Component:Table';\n\nTable.propTypes = {\n dataSource: PropTypes.arrayOf(PropTypes.shape({})),\n filter: PropTypes.arrayOf(PropTypes.shape({})),\n inline: PropTypes.bool,\n l10n: L10N_SHAPE,\n schema: PropTypes.shape({}).isRequired,\n search: PropTypes.string,\n store: PropTypes.string,\n selected: PropTypes.arrayOf(PropTypes.shape()),\n onPress: PropTypes.func,\n onScroll: PropTypes.func,\n onSelect: PropTypes.func,\n};\n"],"mappings":"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"}
@@ -118,24 +118,29 @@
118
118
  background-color: var(--mirai-ui-table-background);
119
119
  box-shadow: inset 0 calc(var(--mirai-ui-border-width) * -1) var(--mirai-ui-table-border-color);
120
120
  flex-wrap: wrap;
121
- gap: var(--mirai-ui-space-XS);
121
+ gap: calc(var(--mirai-ui-table-padding-y) / 2);
122
122
  left: 0;
123
- padding: var(--mirai-ui-table-padding-y) var(--mirai-ui-table-padding-x);
123
+ padding: calc(var(--mirai-ui-table-padding-y) / 2) var(--mirai-ui-table-padding-x);
124
124
  position: sticky;
125
125
  width: 100%;
126
126
  }
127
127
 
128
- .filters .filter {
129
- background-color: var(--mirai-ui-table-color);
130
- background-color: var(--mirai-ui-table-selected-background);
131
- border-radius: var(--mirai-ui-table-border-radius);
128
+ .filters .item {
129
+ box-shadow: inset 0 0 0 var(--mirai-ui-border-width) var(--mirai-ui-table-border-color);
130
+ border-radius: var(--mirai-ui-border-radius);
132
131
  gap: calc(var(--mirai-ui-space-XS) / 2);
133
- padding: calc(var(--mirai-ui-space-XS) / 2) var(--mirai-ui-space-XS);
132
+ padding: calc(var(--mirai-ui-space-XS) / 2) calc(var(--mirai-ui-space-XS) / 2) calc(var(--mirai-ui-space-XS) / 2)
133
+ var(--mirai-ui-space-S);
134
134
  user-select: none;
135
135
  }
136
136
 
137
- .filters .filter * {
138
- color: var(--mirai-ui-table-selected-color);
137
+ .filters .item .buttonRemove {
138
+ align-items: center;
139
+ border-radius: var(--mirai-ui-border-radius);
140
+ display: flex;
141
+ height: var(--mirai-ui-space-L);
142
+ justify-content: center;
143
+ width: var(--mirai-ui-space-L);
139
144
  }
140
145
 
141
146
  @media only screen and (max-width: 430px) {
@@ -160,4 +165,8 @@
160
165
  margin: var(--mirai-ui-space-M) 0;
161
166
  width: calc(var(--mirai-ui-breakpoint-S) * 0.8);
162
167
  }
168
+
169
+ .filters .item .buttonRemove:hover {
170
+ background-color: var(--mirai-ui-content-background);
171
+ }
163
172
  }
@@ -32,7 +32,7 @@ var tags = function tags(value) {
32
32
  return /*#__PURE__*/_react.default.createElement(_.Text, {
33
33
  key: language,
34
34
  bold: true,
35
- small: true,
35
+ tiny: true,
36
36
  className: _TableStoriesModule.default.tag
37
37
  }, language);
38
38
  });
@@ -135,6 +135,9 @@ Story.args = {
135
135
  filter: [{
136
136
  field: 'email',
137
137
  value: '@mirai.com'
138
+ }, {
139
+ field: 'nonExistent',
140
+ value: '@mirai.com'
138
141
  }, {
139
142
  field: 'email',
140
143
  value: '@soyjavi.com'
@@ -144,6 +147,12 @@ Story.args = {
144
147
  max: 2023
145
148
  }],
146
149
  inline: true,
150
+ l10n: {
151
+ actionCancel: 'Cancel',
152
+ actionSubmit: 'Submit',
153
+ labelMax: 'Max',
154
+ labelMin: 'Min'
155
+ },
147
156
  schema: {
148
157
  username: {
149
158
  label: 'User Name',
@@ -153,7 +162,10 @@ Story.args = {
153
162
  label: 'Email'
154
163
  },
155
164
  tags: {
156
- label: 'Tags',
165
+ label: /*#__PURE__*/_react.default.createElement(_.View, {
166
+ row: true,
167
+ className: _TableStoriesModule.default.label
168
+ }, /*#__PURE__*/_react.default.createElement(_.Text, null, "\uD83C\uDFF7\uFE0F"), "Tags"),
157
169
  type: 'component',
158
170
  bind: 'languages'
159
171
  },
@@ -184,9 +196,8 @@ Story.args = {
184
196
  search: '',
185
197
  // inherited properties
186
198
  testId: 'test-story',
199
+ store: 'mirai',
187
200
  style: {
188
- height: '128px !important;',
189
- width: 128,
190
201
  background: 'green'
191
202
  }
192
203
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Table.stories.js","names":["title","tags","value","map","language","style","tag","Story","props","useState","selected","setSelected","search","setSearch","useEffect","handleScroll","others","console","log","handlePress","handleSelect","table","dataSource","username","email","year","languages","action","twitter","undefined","actionTitle","storyName","args","filter","field","min","max","inline","schema","label","type","bind","bio","testId","height","width","background","argTypes"],"sources":["../../../src/components/Table/Table.stories.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\n\nimport { Button, InputText, Text } from '../../';\nimport { Table } from './Table';\nimport style from './Table.stories.module.css';\n\nexport default { title: 'Components' };\n\nconst tags = (value) =>\n value.map((language) => (\n <Text key={language} bold small className={style.tag}>\n {language}\n </Text>\n ));\n\nexport const Story = (props) => {\n const [selected, setSelected] = useState();\n const [search, setSearch] = useState();\n\n useEffect(() => {\n setSearch(props.search);\n }, [props.search]);\n\n const handleScroll = (...others) => console.log('<Table>::onScroll', ...others);\n\n const handlePress = (...others) => console.log('<Table>::onPress', ...others);\n\n const handleSelect = (...others) => {\n console.log('<Table>::onSelect', ...others);\n setSelected(...others);\n };\n\n return (\n <>\n <InputText name=\"search\" placeholder=\"search...\" type=\"search\" value={search} onChange={setSearch} />\n\n <Table\n {...props}\n search={search}\n selected={selected}\n onPress={handlePress}\n onScroll={handleScroll}\n onSelect={handleSelect}\n className={style.table}\n />\n </>\n );\n};\n\nconst dataSource = [\n {\n username: 'jose',\n email: 'jose@mirai.com',\n year: 1,\n languages: ['ES', 'EN'],\n tags: tags(['ES', 'EN']),\n action: null,\n },\n {\n username: 'mario/1',\n email: 'mario.1@mirai.com',\n languages: ['ES'],\n tags: null,\n year: 2005,\n },\n {\n username: 'svet',\n email: 'svet@mirai.com',\n tags: tags(['RU', 'ES', 'EN']),\n languages: ['RU', 'ES', 'EN'],\n year: 2021,\n twitter: undefined,\n action: <Button small>Click Me</Button>,\n actionTitle: 'Click Me',\n },\n {\n username: 'javi',\n email: 'hi@soyjavi.com',\n tags: null,\n languages: ['EU', 'ES', 'EN', 'TH'],\n tags: tags(['EU', 'ES', 'EN', 'TH']),\n year: 2022,\n twitter: 'soyjavi',\n bio: \"Hi, I'm Javi. For as long as I can remember, I have always loved build software and helping people through it. I strive to design simple, clean, and beautiful products in the hope that they will make a difference in the world.\",\n },\n {\n username: 'victor',\n email: 'victor@mirai.com',\n languages: ['ES'],\n tags: tags(['ES']),\n year: 2021,\n },\n {\n username: 'mario/2',\n email: 'mario.2@mirai.com',\n languages: ['ES'],\n tags: tags(['ES']),\n year: 2022,\n },\n];\n\nStory.storyName = 'Table';\n\nStory.args = {\n dataSource,\n filter: [\n { field: 'email', value: '@mirai.com' },\n { field: 'email', value: '@soyjavi.com' },\n { field: 'year', min: 2020, max: 2023 },\n ],\n inline: true,\n schema: {\n username: { label: 'User Name', type: 'text' },\n email: { label: 'Email' },\n tags: { label: 'Tags', type: 'component', bind: 'languages' },\n languages: { label: 'Languages (hidden)', type: 'hidden' },\n year: { label: 'Year', type: 'number' },\n twitter: { label: 'Twitter' },\n bio: { label: 'Biography' },\n action: { label: 'Action', type: 'component', bind: 'actionTitle' },\n actionTitle: { label: 'Action (hidden)', type: 'hidden' },\n },\n search: '',\n // inherited properties\n testId: 'test-story',\n style: { height: '128px !important;', width: 128, background: 'green' },\n};\n\nStory.argTypes = {};\n"],"mappings":"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"}
1
+ {"version":3,"file":"Table.stories.js","names":["title","tags","value","map","language","style","tag","Story","props","useState","selected","setSelected","search","setSearch","useEffect","handleScroll","others","console","log","handlePress","handleSelect","table","dataSource","username","email","year","languages","action","twitter","undefined","actionTitle","storyName","args","filter","field","min","max","inline","l10n","actionCancel","actionSubmit","labelMax","labelMin","schema","label","type","bind","bio","testId","store","background","argTypes"],"sources":["../../../src/components/Table/Table.stories.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\n\nimport { Button, Icon, ICON, InputText, Text, View } from '../../';\nimport { Table } from './Table';\nimport style from './Table.stories.module.css';\n\nexport default { title: 'Components' };\n\nconst tags = (value) =>\n value.map((language) => (\n <Text key={language} bold tiny className={style.tag}>\n {language}\n </Text>\n ));\n\nexport const Story = (props) => {\n const [selected, setSelected] = useState();\n const [search, setSearch] = useState();\n\n useEffect(() => {\n setSearch(props.search);\n }, [props.search]);\n\n const handleScroll = (...others) => console.log('<Table>::onScroll', ...others);\n\n const handlePress = (...others) => console.log('<Table>::onPress', ...others);\n\n const handleSelect = (...others) => {\n console.log('<Table>::onSelect', ...others);\n setSelected(...others);\n };\n\n return (\n <>\n <InputText name=\"search\" placeholder=\"search...\" type=\"search\" value={search} onChange={setSearch} />\n\n <Table\n {...props}\n search={search}\n selected={selected}\n onPress={handlePress}\n onScroll={handleScroll}\n onSelect={handleSelect}\n className={style.table}\n />\n </>\n );\n};\n\nconst dataSource = [\n {\n username: 'jose',\n email: 'jose@mirai.com',\n year: 1,\n languages: ['ES', 'EN'],\n tags: tags(['ES', 'EN']),\n action: null,\n },\n {\n username: 'mario/1',\n email: 'mario.1@mirai.com',\n languages: ['ES'],\n tags: null,\n year: 2005,\n },\n {\n username: 'svet',\n email: 'svet@mirai.com',\n tags: tags(['RU', 'ES', 'EN']),\n languages: ['RU', 'ES', 'EN'],\n year: 2021,\n twitter: undefined,\n action: <Button small>Click Me</Button>,\n actionTitle: 'Click Me',\n },\n {\n username: 'javi',\n email: 'hi@soyjavi.com',\n tags: null,\n languages: ['EU', 'ES', 'EN', 'TH'],\n tags: tags(['EU', 'ES', 'EN', 'TH']),\n year: 2022,\n twitter: 'soyjavi',\n bio: \"Hi, I'm Javi. For as long as I can remember, I have always loved build software and helping people through it. I strive to design simple, clean, and beautiful products in the hope that they will make a difference in the world.\",\n },\n {\n username: 'victor',\n email: 'victor@mirai.com',\n languages: ['ES'],\n tags: tags(['ES']),\n year: 2021,\n },\n {\n username: 'mario/2',\n email: 'mario.2@mirai.com',\n languages: ['ES'],\n tags: tags(['ES']),\n year: 2022,\n },\n];\n\nStory.storyName = 'Table';\n\nStory.args = {\n dataSource,\n filter: [\n { field: 'email', value: '@mirai.com' },\n { field: 'nonExistent', value: '@mirai.com' },\n { field: 'email', value: '@soyjavi.com' },\n { field: 'year', min: 2020, max: 2023 },\n ],\n inline: true,\n l10n: {\n actionCancel: 'Cancel',\n actionSubmit: 'Submit',\n labelMax: 'Max',\n labelMin: 'Min',\n },\n schema: {\n username: { label: 'User Name', type: 'text' },\n email: {\n label: 'Email',\n },\n tags: {\n label: (\n <View row className={style.label}>\n <Text>🏷️</Text>\n Tags\n </View>\n ),\n type: 'component',\n bind: 'languages',\n },\n languages: { label: 'Languages (hidden)', type: 'hidden' },\n year: { label: 'Year', type: 'number' },\n twitter: { label: 'Twitter' },\n bio: { label: 'Biography' },\n action: { label: 'Action', type: 'component', bind: 'actionTitle' },\n actionTitle: { label: 'Action (hidden)', type: 'hidden' },\n },\n search: '',\n // inherited properties\n testId: 'test-story',\n store: 'mirai',\n style: {\n background: 'green',\n },\n};\n\nStory.argTypes = {};\n"],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ .table {
2
+ width: 100%;
3
+ }
4
+
1
5
  .table td:nth-child(6) {
2
6
  max-width: 20vw;
3
7
  }
@@ -10,6 +14,10 @@
10
14
  margin: 0 var(--mirai-ui-border-radius);
11
15
  }
12
16
 
17
+ .table .label {
18
+ gap: var(--mirai-ui-space-XS);
19
+ }
20
+
13
21
  @media only screen and (max-width: 430px) {
14
22
  .table {
15
23
  width: 100%;
@@ -18,7 +26,7 @@
18
26
 
19
27
  @media only screen and (min-width: 430px) {
20
28
  .table {
21
- max-height: 30vh;
22
- width: 60vw;
29
+ max-height: 50vh;
30
+ width: 90vw;
23
31
  }
24
32
  }