@mirai/ui 1.0.3 → 1.0.6

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 (86) hide show
  1. package/README.md +134 -2
  2. package/build/components/Button/Button.js +3 -2
  3. package/build/components/Button/Button.js.map +1 -1
  4. package/build/components/Button/Button.module.css +8 -4
  5. package/build/components/Button/__tests__/__snapshots__/Button.test.js.snap +1 -1
  6. package/build/components/Calendar/Calendar.Week.js +26 -25
  7. package/build/components/Calendar/Calendar.Week.js.map +1 -1
  8. package/build/components/Calendar/Calendar.js +3 -3
  9. package/build/components/Calendar/Calendar.js.map +1 -1
  10. package/build/components/Calendar/Calendar.module.css +25 -15
  11. package/build/components/Calendar/__tests__/__snapshots__/Calendar.test.jsx.snap +3840 -1392
  12. package/build/components/Calendar/helpers/getWeekdays.js +1 -1
  13. package/build/components/Calendar/helpers/getWeekdays.js.map +1 -1
  14. package/build/components/InputNumber/InputNumber.js +2 -2
  15. package/build/components/InputNumber/InputNumber.js.map +1 -1
  16. package/build/components/InputNumber/__tests__/__snapshots__/InputNumber.test.js.snap +12 -7
  17. package/build/components/InputOption/InputOption.constants.js +13 -0
  18. package/build/components/InputOption/InputOption.constants.js.map +1 -0
  19. package/build/components/InputOption/InputOption.js +63 -0
  20. package/build/components/InputOption/InputOption.js.map +1 -0
  21. package/build/components/InputOption/InputOption.module.css +38 -0
  22. package/build/components/InputOption/__tests__/__snapshots__/InputOption.test.js.snap +232 -0
  23. package/build/components/InputOption/index.js +19 -0
  24. package/build/components/InputOption/index.js.map +1 -0
  25. package/build/components/Modal/Modal.module.css +2 -1
  26. package/build/components/Table/Table.Row.js +76 -0
  27. package/build/components/Table/Table.Row.js.map +1 -0
  28. package/build/components/Table/Table.js +92 -0
  29. package/build/components/Table/Table.js.map +1 -0
  30. package/build/components/Table/Table.module.css +76 -0
  31. package/build/components/Table/__tests__/__snapshots__/Table.test.js.snap +2285 -0
  32. package/build/components/Table/helpers/index.js +19 -0
  33. package/build/components/Table/helpers/index.js.map +1 -0
  34. package/build/components/Table/helpers/select.js +29 -0
  35. package/build/components/Table/helpers/select.js.map +1 -0
  36. package/build/components/Table/index.js +19 -0
  37. package/build/components/Table/index.js.map +1 -0
  38. package/build/components/index.js +26 -0
  39. package/build/components/index.js.map +1 -1
  40. package/build/primitives/Checkbox/Checkbox.js +52 -0
  41. package/build/primitives/Checkbox/Checkbox.js.map +1 -0
  42. package/build/primitives/Checkbox/Checkbox.module.css +45 -0
  43. package/build/primitives/Checkbox/__tests__/__snapshots__/Checkbox.test.js.snap +127 -0
  44. package/build/primitives/Checkbox/index.js +19 -0
  45. package/build/primitives/Checkbox/index.js.map +1 -0
  46. package/build/primitives/Icon/Icon.constants.js +3 -1
  47. package/build/primitives/Icon/Icon.constants.js.map +1 -1
  48. package/build/primitives/Input/Input.module.css +4 -0
  49. package/build/primitives/Layer/Layer.js +89 -0
  50. package/build/primitives/Layer/Layer.js.map +1 -0
  51. package/build/primitives/Layer/Layer.module.css +10 -0
  52. package/build/primitives/Layer/LayerContent.js +22 -0
  53. package/build/primitives/Layer/LayerContent.js.map +1 -0
  54. package/build/primitives/Layer/__tests__/__snapshots__/Layer.test.js.snap +55 -0
  55. package/build/primitives/Layer/helpers/getElementLayout.js +23 -0
  56. package/build/primitives/Layer/helpers/getElementLayout.js.map +1 -0
  57. package/build/primitives/Layer/helpers/getLayerPosition.js +43 -0
  58. package/build/primitives/Layer/helpers/getLayerPosition.js.map +1 -0
  59. package/build/primitives/Layer/helpers/index.js +32 -0
  60. package/build/primitives/Layer/helpers/index.js.map +1 -0
  61. package/build/primitives/Layer/index.js +32 -0
  62. package/build/primitives/Layer/index.js.map +1 -0
  63. package/build/primitives/Pressable/Pressable.js +1 -1
  64. package/build/primitives/Pressable/Pressable.js.map +1 -1
  65. package/build/primitives/Pressable/Pressable.module.css +1 -1
  66. package/build/primitives/Pressable/__tests__/__snapshots__/Pressable.test.js.snap +1 -1
  67. package/build/primitives/Radio/Radio.js +49 -0
  68. package/build/primitives/Radio/Radio.js.map +1 -0
  69. package/build/primitives/Radio/Radio.module.css +59 -0
  70. package/build/primitives/Radio/__tests__/__snapshots__/Radio.test.js.snap +126 -0
  71. package/build/primitives/Radio/index.js +19 -0
  72. package/build/primitives/Radio/index.js.map +1 -0
  73. package/build/primitives/Select/Select.module.css +1 -0
  74. package/build/primitives/Switch/Switch.js +50 -0
  75. package/build/primitives/Switch/Switch.js.map +1 -0
  76. package/build/primitives/Switch/Switch.module.css +57 -0
  77. package/build/primitives/Switch/__tests__/__snapshots__/Switch.test.js.snap +109 -0
  78. package/build/primitives/Switch/index.js +19 -0
  79. package/build/primitives/Switch/index.js.map +1 -0
  80. package/build/primitives/View/View.js +12 -3
  81. package/build/primitives/View/View.js.map +1 -1
  82. package/build/primitives/View/View.module.css +1 -0
  83. package/build/primitives/index.js +64 -12
  84. package/build/primitives/index.js.map +1 -1
  85. package/build/theme/default.theme.css +9 -2
  86. package/package.json +1 -1
package/README.md CHANGED
@@ -12,6 +12,30 @@ yarn add @mirai/ui
12
12
 
13
13
  ## Primitives
14
14
 
15
+ ### Checkbox
16
+
17
+ This primitive returns a checkbox button based on the following properties:
18
+
19
+ - `checked:boolean` if true, the checkbox button is checked
20
+ - `disabled:boolean` applying 'disabled' attribute
21
+ - `name:string` input name
22
+ - `onChange:function` executed when input value changes
23
+
24
+ ```js
25
+ import { Checkbox, View } from '@mirai/ui';
26
+
27
+ const MyComponent = () => (
28
+ <View>
29
+ <Checkbox
30
+ name="checkbox"
31
+ checked={false}
32
+ disabled={false}
33
+ value={primitive}
34
+ onChange={() => console.log('change')
35
+ />
36
+ </View>
37
+ ```
38
+
15
39
  ### Icon
16
40
 
17
41
  This primitive returns a span with an icon based on a mandatory string prop `name` with one of the following possible values: Left, Right, Up, Down, Close, CloseArrow, Plus, Minus, EyeOpen, EyeClose.
@@ -57,6 +81,34 @@ const MyComponent = () => (
57
81
  );
58
82
  ```
59
83
 
84
+ ### Layer
85
+
86
+ This primitive returns an element that displays with relative position to other element based on the following props:
87
+
88
+ - `children:node` two children elements are accepted, the first one is the element to be displayed and the second one is the LayerContent that wraps the element to be displayed if the visible prop is true
89
+ - `visible:boolean` showing or hiding the layer
90
+
91
+ The position of the layer is based on the position of the element to be displayed. If the layer can show on right or left because have a gap in this direction, the layer will be shown on the right or left of the element to be displayed. If the layer can open on top or bottom because have a gap in this direction, the layer will be shown on the top or bottom of the element to be displayed
92
+
93
+ ```js
94
+ import { Button, Calendar, Layer, LayerContent } from '@mirai/ui';
95
+
96
+ const MyComponent = () => {
97
+ const [visible, setVisible] = useState(false);
98
+
99
+ return (
100
+ <Layer visible={visible}>
101
+ <Button style={{ position: 'absolute', left: '500px', top: '100px' }} onPress={() => setVisible(!visible)}>
102
+ {visible ? 'close' : 'open'}
103
+ </Button>
104
+ <LayerContent>
105
+ <Calendar months={2} range />
106
+ </LayerContent>
107
+ </Layer>
108
+ );
109
+ };
110
+ ```
111
+
60
112
  ### Pressable
61
113
 
62
114
  This primitive returns pressable elements based on the following properties:
@@ -80,6 +132,30 @@ const MyComponent = () => (
80
132
  );
81
133
  ```
82
134
 
135
+ ### Radio
136
+
137
+ This primitive returns a radio button based on the following properties:
138
+
139
+ - `checked:boolean` if true, the radio button is checked
140
+ - `disabled:boolean` applying 'disabled' attribute
141
+ - `name:string` input name
142
+ - `onChange:function` executed when input value changes
143
+
144
+ ```js
145
+ import { Radio, View } from '@mirai/ui';
146
+
147
+ const MyComponent = () => (
148
+ <View>
149
+ <Radio
150
+ name="radio"
151
+ checked={false}
152
+ disabled={false}
153
+ value={primitive}
154
+ onChange={() => console.log('change')
155
+ />
156
+ </View>
157
+ ```
158
+
83
159
  ### ScrollView
84
160
 
85
161
  This primitive is used to make vertically scrollable views and receives the following props:
@@ -195,10 +271,12 @@ A calendar component that receives the following props:
195
271
  - `disabledWeekends` boolean: weekends to be shown as unavailable and can't be selected
196
272
  - `format:string` date display format (e.g. "DD/MM/YYYY")
197
273
  - `from:string` date in specific format (e.g. "31/03/2022")
274
+ - `highlights:[string]` highlights a determinate group of dates
198
275
  - `months:number` number of months to be visible
199
276
  - `locale:string` locale value
200
277
  - `range:boolean` Enable range selection
201
- - `rangeDays:number`
278
+ - `rangeMaxDays:number` Maximum days in a range
279
+ - `rangeMinDays:number` Minimum days in a range
202
280
  - `to:string` date in specific format (e.g. "31/03/2022")
203
281
  - `value:string|[string]`
204
282
  - `onChange:function` executed when input value changes
@@ -232,7 +310,7 @@ const MyComponent = props => {
232
310
 
233
311
  ### InputNumber
234
312
 
235
- Input number component controling the value with 2 buttons. Receives the following props:
313
+ Input number component controlling the value with 2 buttons. Receives the following props:
236
314
 
237
315
  - `hint:string` brief message
238
316
  - `label:string` input label
@@ -253,6 +331,60 @@ const MyComponent = (props) => {
253
331
  };
254
332
  ```
255
333
 
334
+ ### InputOption
335
+
336
+ This component is used to display a radio button or checkbox base on a mandatory string prop `type`. It receives the following props:
337
+
338
+ - `reverse:boolean` if true the label is placed on the left side of the input element (false by default)
339
+ - `checked:boolean` if true, the input is checked
340
+ - `disabled:boolean` applying 'disabled' attribute
341
+ - `label:string` input label
342
+ - `name:string` input name
343
+ - `type:string` type of input (radio or checkbox)
344
+ - `value:number` input value
345
+ - `onChange:function` executed when input value changes
346
+
347
+ ```js
348
+ import { InputOption, View } from '@mirai/ui';
349
+
350
+ const MyComponent = () => {
351
+ const [value, setValue] = useState('');
352
+ const [checked, setChecked] = useState(false);
353
+ return (
354
+ <View>
355
+ <InputOption
356
+ type="radio"
357
+ label="Option 1"
358
+ name="option"
359
+ checked={value === 'radio1'}
360
+ disabled={false}
361
+ value="radio1"
362
+ onChange={() => useState('radio1')}
363
+ />
364
+ <InputOption
365
+ type="radio"
366
+ label="Option 2"
367
+ name="option"
368
+ checked={value === 'radio2'}
369
+ disabled={false}
370
+ value="radio2"
371
+ onChange={() => useState('radio2')}
372
+ />
373
+ </View>
374
+ <View>
375
+ <InputOption
376
+ type="checkbox"
377
+ label="Option 3"
378
+ name="optionCheckbox"
379
+ checked={checked}
380
+ disabled={false}
381
+ onChange={() => useChecked(!checked)}
382
+ />
383
+ </View>
384
+ );
385
+ };
386
+ ```
387
+
256
388
  ### InputText
257
389
 
258
390
  Text input component receiving the following props:
@@ -19,13 +19,14 @@ var _primitives = require("../../primitives");
19
19
 
20
20
  var _ButtonModule = _interopRequireDefault(require("./Button.module.css"));
21
21
 
22
- var _excluded = ["children", "disabled", "large", "outlined", "small", "squared", "tag"];
22
+ var _excluded = ["children", "disabled", "large", "outlined", "rounded", "small", "squared", "tag"];
23
23
 
24
24
  var Button = function Button(_ref) {
25
25
  var children = _ref.children,
26
26
  disabled = _ref.disabled,
27
27
  large = _ref.large,
28
28
  outlined = _ref.outlined,
29
+ rounded = _ref.rounded,
29
30
  small = _ref.small,
30
31
  _ref$squared = _ref.squared,
31
32
  squared = _ref$squared === void 0 ? false : _ref$squared,
@@ -35,7 +36,7 @@ var Button = function Button(_ref) {
35
36
  return /*#__PURE__*/_react.default.createElement(_primitives.Pressable, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, others), {}, {
36
37
  disabled: disabled,
37
38
  tag: tag,
38
- className: (0, _helpers.styles)(_ButtonModule.default.button, large && _ButtonModule.default.large, small && _ButtonModule.default.small, squared && _ButtonModule.default.squared, outlined && !disabled && _ButtonModule.default.outlined, disabled && _ButtonModule.default.disabled, others.className)
39
+ className: (0, _helpers.styles)(_ButtonModule.default.button, large && _ButtonModule.default.large, small && _ButtonModule.default.small, rounded && _ButtonModule.default.rounded, squared && _ButtonModule.default.squared, outlined && !disabled && _ButtonModule.default.outlined, others.className)
39
40
  }), children);
40
41
  };
41
42
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Button/Button.jsx"],"names":["Button","children","disabled","large","outlined","small","squared","tag","others","React","createElement","Pressable","className","style","button","displayName"],"mappings":";;;;;;;;;;;;;AACA;;AAEA;;AACA;;AACA;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS;AAAA,MAAGC,QAAH,QAAGA,QAAH;AAAA,MAAaC,QAAb,QAAaA,QAAb;AAAA,MAAuBC,KAAvB,QAAuBA,KAAvB;AAAA,MAA8BC,QAA9B,QAA8BA,QAA9B;AAAA,MAAwCC,KAAxC,QAAwCA,KAAxC;AAAA,0BAA+CC,OAA/C;AAAA,MAA+CA,OAA/C,6BAAyD,KAAzD;AAAA,sBAAgEC,GAAhE;AAAA,MAAgEA,GAAhE,yBAAsE,QAAtE;AAAA,MAAmFC,MAAnF;AAAA,sBACbC,eAAMC,aAAN,CACEC,qBADF,8DAGOH,MAHP;AAIIN,IAAAA,QAAQ,EAARA,QAJJ;AAKIK,IAAAA,GAAG,EAAHA,GALJ;AAMIK,IAAAA,SAAS,EAAE,qBACTC,sBAAMC,MADG,EAETX,KAAK,IAAIU,sBAAMV,KAFN,EAGTE,KAAK,IAAIQ,sBAAMR,KAHN,EAITC,OAAO,IAAIO,sBAAMP,OAJR,EAKTF,QAAQ,IAAI,CAACF,QAAb,IAAyBW,sBAAMT,QALtB,EAMTF,QAAQ,IAAIW,sBAAMX,QANT,EAOTM,MAAM,CAACI,SAPE;AANf,MAgBEX,QAhBF,CADa;AAAA,CAAf;;;AAoBAD,MAAM,CAACe,WAAP,GAAqB,kBAArB","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { styles } from '../../helpers';\nimport { Pressable } from '../../primitives';\nimport style from './Button.module.css';\n\nconst Button = ({ children, disabled, large, outlined, small, squared = false, tag = 'button', ...others }) =>\n React.createElement(\n Pressable,\n {\n ...others,\n disabled,\n tag,\n className: styles(\n style.button,\n large && style.large,\n small && style.small,\n squared && style.squared,\n outlined && !disabled && style.outlined,\n disabled && style.disabled,\n others.className,\n ),\n },\n children,\n );\n\nButton.displayName = 'Component:Button';\n\nButton.propTypes = {\n children: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n disabled: PropTypes.bool,\n large: PropTypes.bool,\n outlined: PropTypes.bool,\n small: PropTypes.bool,\n squared: PropTypes.bool,\n tag: PropTypes.string,\n onEnter: PropTypes.func,\n onLeave: PropTypes.func,\n onPress: PropTypes.func,\n};\n\nexport { Button };\n"],"file":"Button.js"}
1
+ {"version":3,"sources":["../../../src/components/Button/Button.jsx"],"names":["Button","children","disabled","large","outlined","rounded","small","squared","tag","others","React","createElement","Pressable","className","style","button","displayName"],"mappings":";;;;;;;;;;;;;AACA;;AAEA;;AACA;;AACA;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS;AAAA,MAAGC,QAAH,QAAGA,QAAH;AAAA,MAAaC,QAAb,QAAaA,QAAb;AAAA,MAAuBC,KAAvB,QAAuBA,KAAvB;AAAA,MAA8BC,QAA9B,QAA8BA,QAA9B;AAAA,MAAwCC,OAAxC,QAAwCA,OAAxC;AAAA,MAAiDC,KAAjD,QAAiDA,KAAjD;AAAA,0BAAwDC,OAAxD;AAAA,MAAwDA,OAAxD,6BAAkE,KAAlE;AAAA,sBAAyEC,GAAzE;AAAA,MAAyEA,GAAzE,yBAA+E,QAA/E;AAAA,MAA4FC,MAA5F;AAAA,sBACbC,eAAMC,aAAN,CACEC,qBADF,8DAGOH,MAHP;AAIIP,IAAAA,QAAQ,EAARA,QAJJ;AAKIM,IAAAA,GAAG,EAAHA,GALJ;AAMIK,IAAAA,SAAS,EAAE,qBACTC,sBAAMC,MADG,EAETZ,KAAK,IAAIW,sBAAMX,KAFN,EAGTG,KAAK,IAAIQ,sBAAMR,KAHN,EAITD,OAAO,IAAIS,sBAAMT,OAJR,EAKTE,OAAO,IAAIO,sBAAMP,OALR,EAMTH,QAAQ,IAAI,CAACF,QAAb,IAAyBY,sBAAMV,QANtB,EAOTK,MAAM,CAACI,SAPE;AANf,MAgBEZ,QAhBF,CADa;AAAA,CAAf;;;AAoBAD,MAAM,CAACgB,WAAP,GAAqB,kBAArB","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { styles } from '../../helpers';\nimport { Pressable } from '../../primitives';\nimport style from './Button.module.css';\n\nconst Button = ({ children, disabled, large, outlined, rounded, small, squared = false, tag = 'button', ...others }) =>\n React.createElement(\n Pressable,\n {\n ...others,\n disabled,\n tag,\n className: styles(\n style.button,\n large && style.large,\n small && style.small,\n rounded && style.rounded,\n squared && style.squared,\n outlined && !disabled && style.outlined,\n others.className,\n ),\n },\n children,\n );\n\nButton.displayName = 'Component:Button';\n\nButton.propTypes = {\n children: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n disabled: PropTypes.bool,\n large: PropTypes.bool,\n outlined: PropTypes.bool,\n rounded: PropTypes.bool,\n small: PropTypes.bool,\n squared: PropTypes.bool,\n tag: PropTypes.string,\n onEnter: PropTypes.func,\n onLeave: PropTypes.func,\n onPress: PropTypes.func,\n};\n\nexport { Button };\n"],"file":"Button.js"}
@@ -23,7 +23,7 @@
23
23
  width: fit-content;
24
24
  }
25
25
 
26
- .disabled {
26
+ .button:disabled {
27
27
  background-color: var(--mirai-ui-disabled);
28
28
  color: var(--mirai-ui-lighten);
29
29
  }
@@ -34,7 +34,7 @@
34
34
  color: var(--mirai-ui-button-color);
35
35
  }
36
36
 
37
- .button:not(.disabled):active {
37
+ .button:not(:disabled):active {
38
38
  box-shadow: inset 0 0 var(--mirai-ui-space-XXL) var(--mirai-ui-space-XXL) var(--mirai-ui-button-color-active);
39
39
  }
40
40
 
@@ -48,6 +48,10 @@
48
48
  padding: var(--mirai-ui-space-XS) var(--mirai-ui-space-S);
49
49
  }
50
50
 
51
+ .rounded {
52
+ border-radius: 50%;
53
+ }
54
+
51
55
  .squared {
52
56
  padding: 0;
53
57
  height: var(--mirai-ui-space-XL);
@@ -68,12 +72,12 @@
68
72
  }
69
73
 
70
74
  @media only screen and (min-width: 600px) {
71
- .button:not(.disabled).outlined:hover {
75
+ .button:not(:disabled).outlined:hover {
72
76
  border-color: var(--mirai-ui-button-color-hover);
73
77
  color: var(--mirai-ui-button-color-focus);
74
78
  }
75
79
 
76
- .button:not(.disabled):not(.outlined):hover {
80
+ .button:not(:disabled):not(.outlined):hover {
77
81
  background-color: var(--mirai-ui-button-color-focus);
78
82
  }
79
83
  }
@@ -23,7 +23,7 @@ exports[`component:<Button> inherit:className 1`] = `
23
23
  exports[`component:<Button> prop:disabled 1`] = `
24
24
  <DocumentFragment>
25
25
  <button
26
- class="pressable disabled button disabled"
26
+ class="pressable button"
27
27
  disabled=""
28
28
  >
29
29
  children
@@ -25,7 +25,7 @@ var _CalendarModule = _interopRequireDefault(require("./Calendar.module.css"));
25
25
 
26
26
  var _helpers2 = require("./helpers");
27
27
 
28
- var _excluded = ["captions", "disabledDates", "disabledPast", "focus", "locale", "format", "from", "month", "number", "range", "selected", "to", "year", "onPress", "onFocus"];
28
+ var _excluded = ["captions", "disabledDates", "disabledPast", "focus", "locale", "format", "from", "highlights", "month", "number", "range", "rangeMinDays", "selected", "to", "year", "onPress", "onFocus"];
29
29
 
30
30
  var Week = function Week(_ref) {
31
31
  var captions = _ref.captions,
@@ -37,9 +37,12 @@ var Week = function Week(_ref) {
37
37
  locale = _ref.locale,
38
38
  format = _ref.format,
39
39
  from = _ref.from,
40
+ _ref$highlights = _ref.highlights,
41
+ highlights = _ref$highlights === void 0 ? [] : _ref$highlights,
40
42
  month = _ref.month,
41
43
  number = _ref.number,
42
44
  range = _ref.range,
45
+ rangeMinDays = _ref.rangeMinDays,
43
46
  selected = _ref.selected,
44
47
  to = _ref.to,
45
48
  year = _ref.year,
@@ -56,6 +59,7 @@ var Week = function Week(_ref) {
56
59
  var todayTS = (0, _helpers2.getToday)().getTime();
57
60
  var fromTS = from === null || from === void 0 ? void 0 : from.getTime();
58
61
  var toTS = to === null || to === void 0 ? void 0 : to.getTime();
62
+ var focusTS = focus === null || focus === void 0 ? void 0 : focus.getTime();
59
63
  var rangeTS = {};
60
64
 
61
65
  if (range) {
@@ -65,21 +69,17 @@ var Week = function Week(_ref) {
65
69
 
66
70
  rangeTS = {
67
71
  start: start ? start.getTime() : undefined,
68
- end: end ? end.getTime() : undefined
72
+ end: end ? end.getTime() : undefined,
73
+ min: start && rangeMinDays ? (0, _locale.dateCalc)(start, rangeMinDays, 'days').getTime() : undefined
69
74
  };
70
75
 
71
- if (focus) {
72
- var focusTS = focus.getTime();
76
+ var _disabledDatesTS$filt = disabledDatesTS.filter(function (ts) {
77
+ return ts > rangeTS.start;
78
+ }).sort(),
79
+ _disabledDatesTS$filt2 = (0, _slicedToArray2.default)(_disabledDatesTS$filt, 1),
80
+ outbound = _disabledDatesTS$filt2[0];
73
81
 
74
- var _disabledDatesTS$filt = disabledDatesTS.filter(function (ts) {
75
- return ts > rangeTS.start && focusTS >= ts;
76
- }).sort(),
77
- _disabledDatesTS$filt2 = (0, _slicedToArray2.default)(_disabledDatesTS$filt, 1),
78
- outbound = _disabledDatesTS$filt2[0];
79
-
80
- rangeTS.end = outbound ? outbound - 1 : focusTS;
81
- rangeTS.outbound = outbound - 1;
82
- }
82
+ rangeTS.outbound = outbound ? outbound - 1 : undefined;
83
83
  }
84
84
 
85
85
  return /*#__PURE__*/_react.default.createElement(_primitives.View, {
@@ -87,26 +87,29 @@ var Week = function Week(_ref) {
87
87
  }, _Calendar.DAYS.map(function (day) {
88
88
  var date = (0, _locale.UTC)(new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + day));
89
89
  var dateTS = date.getTime();
90
+ var dateString = (0, _locale.dateFormat)(date, {
91
+ format: format
92
+ });
90
93
  var is = {
91
- disabled: disabledPast && date.getTime() < todayTS || // past
94
+ disabled: disabledPast && dateTS < todayTS || // past
92
95
  !date.getMonth() === month || // days out of month
93
96
  disabledDatesTS.includes(dateTS) || // disabled dates
94
97
  dateTS < fromTS || // less than range
95
98
  dateTS > toTS,
96
99
  // more than range
100
+ highlight: highlights.includes(dateString),
97
101
  outOfRange: dateTS > rangeTS.outbound,
98
- range: dateTS > rangeTS.start && dateTS < rangeTS.end,
102
+ minRange: dateTS > rangeTS.start && dateTS < rangeTS.min,
103
+ range: dateTS > rangeTS.start && (dateTS < rangeTS.end || dateTS < rangeTS.min || dateTS < focusTS),
99
104
  rangeLimit: dateTS === rangeTS.start || dateTS === rangeTS.end,
100
- // ranged:
101
105
  ranging: range && (selected === null || selected === void 0 ? void 0 : selected[0]) && !selected[1],
106
+ selected: range && selected ? selected[0] && !selected[1] ? dateTS === selected[0].getTime() : selected[0] && selected[1] ? dateTS >= selected[0].getTime() && dateTS <= selected[1].getTime() : undefined : dateTS === (selected === null || selected === void 0 ? void 0 : selected.getTime()),
102
107
  today: dateTS === todayTS,
103
- touchable: true,
104
108
  visible: date.getMonth() === month
105
109
  };
106
- var isSelected = range && selected ? selected[0] && !selected[1] ? dateTS === selected[0].getTime() : selected[0] && selected[1] ? dateTS >= selected[0].getTime() && dateTS <= selected[1].getTime() : undefined : dateTS === (selected === null || selected === void 0 ? void 0 : selected.getTime());
107
- var textStyle = is.disabled ? _CalendarModule.default.textDisabled : isSelected || dateTS === rangeTS.end ? _CalendarModule.default.textSelected : undefined;
110
+ var textStyle = is.disabled ? _CalendarModule.default.textDisabled : is.selected || dateTS === rangeTS.end ? _CalendarModule.default.textSelected : is.highlight && !is.range ? _CalendarModule.default.textHighlight : undefined;
108
111
  return /*#__PURE__*/_react.default.createElement(_primitives.Pressable, {
109
- disabled: is.disabled || is.outOfRange || !is.visible,
112
+ disabled: is.disabled || is.minRange || is.outOfRange || !is.visible,
110
113
  key: day,
111
114
  tabIndex: is.visible && !is.disabled ? date.getDate() : undefined,
112
115
  "data-testid": "".concat(others['data-testid'] || 'calendar', "-").concat(number, "-").concat(day),
@@ -121,9 +124,9 @@ var Week = function Week(_ref) {
121
124
  return _onPress(date);
122
125
  }
123
126
  }, is.visible && /*#__PURE__*/_react.default.createElement(_primitives.View, {
124
- className: (0, _helpers.styles)(_CalendarModule.default.day, is.range && isSelected && _CalendarModule.default.daySelected, is.range && _CalendarModule.default.dayRange, (is.rangeLimit || !is.range && isSelected) && _CalendarModule.default.dayRangeLimit, !isSelected && !is.disabled && _CalendarModule.default.dayTouchable)
127
+ className: (0, _helpers.styles)(_CalendarModule.default.day, is.range && !is.disabled && !is.outOfRange && _CalendarModule.default.dayRange, (is.rangeLimit || !is.range && is.selected) && _CalendarModule.default.daySelected, is.rangeLimit && dateTS === rangeTS.start && _CalendarModule.default.daySelectedStart, is.rangeLimit && dateTS === rangeTS.end && _CalendarModule.default.daySelectedEnd, !is.selected && !is.disabled && !is.minRange && !is.outOfRange && _CalendarModule.default.dayTouchable)
125
128
  }, /*#__PURE__*/_react.default.createElement(_primitives.Text, {
126
- bold: is.today,
129
+ bold: is.today || is.highlight || is.selected && !is.range,
127
130
  className: textStyle
128
131
  }, (0, _locale.dateFormat)(date, {
129
132
  locale: locale,
@@ -131,9 +134,7 @@ var Week = function Week(_ref) {
131
134
  })), captions && /*#__PURE__*/_react.default.createElement(_primitives.Text, {
132
135
  small: true,
133
136
  className: (0, _helpers.styles)(textStyle, _CalendarModule.default.caption)
134
- }, captions[(0, _locale.dateFormat)(date, {
135
- format: format
136
- })] || '')));
137
+ }, captions[dateString] || '')));
137
138
  }));
138
139
  };
139
140
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Calendar/Calendar.Week.jsx"],"names":["Week","captions","disabledDates","disabledPast","focus","locale","format","from","month","number","range","selected","to","year","onPress","onFocus","others","disabledDatesTS","map","date","getTime","firstDate","todayTS","fromTS","toTS","rangeTS","start","end","undefined","focusTS","filter","ts","sort","outbound","DAYS","day","Date","getFullYear","getMonth","getDate","dateTS","is","disabled","includes","outOfRange","rangeLimit","ranging","today","touchable","visible","isSelected","textStyle","style","textDisabled","textSelected","cell","daySelected","dayRange","dayRangeLimit","dayTouchable","caption","displayName"],"mappings":"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","sourcesContent":["import { dateFormat, parseDate, UTC } from '@mirai/locale';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { styles } from '../../helpers';\nimport { Pressable, Text, View } from '../../primitives';\nimport { DAYS } from './Calendar.constants';\nimport style from './Calendar.module.css';\nimport { getFirstDateOfWeek, getToday } from './helpers';\n\nexport const Week = ({\n captions,\n disabledDates = [],\n disabledPast = false,\n focus,\n locale,\n format,\n from,\n month,\n number,\n range,\n selected,\n to,\n year,\n onPress = () => {},\n onFocus = () => {},\n ...others\n}) => {\n const disabledDatesTS = disabledDates.map((date) => UTC(parseDate(date, format)).getTime());\n const firstDate = getFirstDateOfWeek(number, year);\n const todayTS = getToday().getTime();\n const fromTS = from?.getTime();\n const toTS = to?.getTime();\n\n let rangeTS = {};\n if (range) {\n const [start, end] = selected;\n rangeTS = { start: start ? start.getTime() : undefined, end: end ? end.getTime() : undefined };\n\n if (focus) {\n const focusTS = focus.getTime();\n const [outbound] = disabledDatesTS.filter((ts) => ts > rangeTS.start && focusTS >= ts).sort();\n\n rangeTS.end = outbound ? outbound - 1 : focusTS;\n rangeTS.outbound = outbound - 1;\n }\n }\n\n return (\n <View row>\n {DAYS.map((day) => {\n const date = UTC(new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + day));\n const dateTS = date.getTime();\n\n const is = {\n disabled:\n (disabledPast && date.getTime() < todayTS) || // past\n !date.getMonth() === month || // days out of month\n disabledDatesTS.includes(dateTS) || // disabled dates\n dateTS < fromTS || // less than range\n dateTS > toTS, // more than range\n outOfRange: dateTS > rangeTS.outbound,\n range: dateTS > rangeTS.start && dateTS < rangeTS.end,\n rangeLimit: dateTS === rangeTS.start || dateTS === rangeTS.end,\n // ranged:\n ranging: range && selected?.[0] && !selected[1],\n today: dateTS === todayTS,\n touchable: true,\n visible: date.getMonth() === month,\n };\n\n const isSelected =\n range && selected\n ? selected[0] && !selected[1]\n ? dateTS === selected[0].getTime()\n : selected[0] && selected[1]\n ? dateTS >= selected[0].getTime() && dateTS <= selected[1].getTime()\n : undefined\n : dateTS === selected?.getTime();\n\n const textStyle = is.disabled\n ? style.textDisabled\n : isSelected || dateTS === rangeTS.end\n ? style.textSelected\n : undefined;\n\n return (\n <Pressable\n disabled={is.disabled || is.outOfRange || !is.visible}\n key={day}\n tabIndex={is.visible && !is.disabled ? date.getDate() : undefined}\n data-testid={`${others['data-testid'] || 'calendar'}-${number}-${day}`}\n className={style.cell}\n onEnter={is.ranging ? () => onFocus(date) : undefined}\n onLeave={is.ranging ? () => onFocus() : undefined}\n onPress={() => onPress(date)}\n >\n {is.visible && (\n <View\n className={styles(\n style.day,\n is.range && isSelected && style.daySelected,\n is.range && style.dayRange,\n (is.rangeLimit || (!is.range && isSelected)) && style.dayRangeLimit,\n !isSelected && !is.disabled && style.dayTouchable,\n )}\n >\n <Text bold={is.today} className={textStyle}>\n {dateFormat(date, { locale, day: 'numeric' })}\n </Text>\n\n {captions && (\n <Text small className={styles(textStyle, style.caption)}>\n {captions[dateFormat(date, { format })] || ''}\n </Text>\n )}\n </View>\n )}\n </Pressable>\n );\n })}\n </View>\n );\n};\n\nWeek.displayName = 'Component:Calendar:Week';\n\nWeek.propTypes = {\n captions: PropTypes.shape({}),\n disabledDates: PropTypes.arrayOf(PropTypes.string),\n disabledPast: PropTypes.bool,\n focus: PropTypes.object,\n locale: PropTypes.string,\n format: PropTypes.string,\n from: PropTypes.instanceOf(Date),\n to: PropTypes.instanceOf(Date),\n year: PropTypes.number.isRequired,\n month: PropTypes.number.isRequired,\n number: PropTypes.number.isRequired,\n range: PropTypes.bool,\n selected: PropTypes.oneOfType([PropTypes.object, PropTypes.arrayOf(PropTypes.object)]),\n onFocus: PropTypes.func,\n onPress: PropTypes.func,\n};\n"],"file":"Calendar.Week.js"}
1
+ {"version":3,"sources":["../../../src/components/Calendar/Calendar.Week.jsx"],"names":["Week","captions","disabledDates","disabledPast","focus","locale","format","from","highlights","month","number","range","rangeMinDays","selected","to","year","onPress","onFocus","others","disabledDatesTS","map","date","getTime","firstDate","todayTS","fromTS","toTS","focusTS","rangeTS","start","end","undefined","min","filter","ts","sort","outbound","DAYS","day","Date","getFullYear","getMonth","getDate","dateTS","dateString","is","disabled","includes","highlight","outOfRange","minRange","rangeLimit","ranging","today","visible","textStyle","style","textDisabled","textSelected","textHighlight","cell","dayRange","daySelected","daySelectedStart","daySelectedEnd","dayTouchable","caption","displayName"],"mappings":"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","sourcesContent":["import { dateCalc, dateFormat, parseDate, UTC } from '@mirai/locale';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { styles } from '../../helpers';\nimport { Pressable, Text, View } from '../../primitives';\nimport { DAYS } from './Calendar.constants';\nimport style from './Calendar.module.css';\nimport { getFirstDateOfWeek, getToday } from './helpers';\n\nexport const Week = ({\n captions,\n disabledDates = [],\n disabledPast = false,\n focus,\n locale,\n format,\n from,\n highlights = [],\n month,\n number,\n range,\n rangeMinDays,\n selected,\n to,\n year,\n onPress = () => {},\n onFocus = () => {},\n ...others\n}) => {\n const disabledDatesTS = disabledDates.map((date) => UTC(parseDate(date, format)).getTime());\n const firstDate = getFirstDateOfWeek(number, year);\n const todayTS = getToday().getTime();\n const fromTS = from?.getTime();\n const toTS = to?.getTime();\n const focusTS = focus?.getTime();\n\n let rangeTS = {};\n if (range) {\n const [start, end] = selected;\n rangeTS = {\n start: start ? start.getTime() : undefined,\n end: end ? end.getTime() : undefined,\n min: start && rangeMinDays ? dateCalc(start, rangeMinDays, 'days').getTime() : undefined,\n };\n\n const [outbound] = disabledDatesTS.filter((ts) => ts > rangeTS.start).sort();\n rangeTS.outbound = outbound ? outbound - 1 : undefined;\n }\n\n return (\n <View row>\n {DAYS.map((day) => {\n const date = UTC(new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + day));\n const dateTS = date.getTime();\n const dateString = dateFormat(date, { format });\n\n const is = {\n disabled:\n (disabledPast && dateTS < todayTS) || // past\n !date.getMonth() === month || // days out of month\n disabledDatesTS.includes(dateTS) || // disabled dates\n dateTS < fromTS || // less than range\n dateTS > toTS, // more than range\n highlight: highlights.includes(dateString),\n outOfRange: dateTS > rangeTS.outbound,\n minRange: dateTS > rangeTS.start && dateTS < rangeTS.min,\n range: dateTS > rangeTS.start && (dateTS < rangeTS.end || dateTS < rangeTS.min || dateTS < focusTS),\n rangeLimit: dateTS === rangeTS.start || dateTS === rangeTS.end,\n ranging: range && selected?.[0] && !selected[1],\n selected:\n range && selected\n ? selected[0] && !selected[1]\n ? dateTS === selected[0].getTime()\n : selected[0] && selected[1]\n ? dateTS >= selected[0].getTime() && dateTS <= selected[1].getTime()\n : undefined\n : dateTS === selected?.getTime(),\n today: dateTS === todayTS,\n visible: date.getMonth() === month,\n };\n\n const textStyle = is.disabled\n ? style.textDisabled\n : is.selected || dateTS === rangeTS.end\n ? style.textSelected\n : is.highlight && !is.range\n ? style.textHighlight\n : undefined;\n\n return (\n <Pressable\n disabled={is.disabled || is.minRange || is.outOfRange || !is.visible}\n key={day}\n tabIndex={is.visible && !is.disabled ? date.getDate() : undefined}\n data-testid={`${others['data-testid'] || 'calendar'}-${number}-${day}`}\n className={style.cell}\n onEnter={is.ranging ? () => onFocus(date) : undefined}\n onLeave={is.ranging ? () => onFocus() : undefined}\n onPress={() => onPress(date)}\n >\n {is.visible && (\n <View\n className={styles(\n style.day,\n is.range && !is.disabled && !is.outOfRange && style.dayRange,\n (is.rangeLimit || (!is.range && is.selected)) && style.daySelected,\n is.rangeLimit && dateTS === rangeTS.start && style.daySelectedStart,\n is.rangeLimit && dateTS === rangeTS.end && style.daySelectedEnd,\n !is.selected && !is.disabled && !is.minRange && !is.outOfRange && style.dayTouchable,\n )}\n >\n <Text bold={is.today || is.highlight || (is.selected && !is.range)} className={textStyle}>\n {dateFormat(date, { locale, day: 'numeric' })}\n </Text>\n\n {captions && (\n <Text small className={styles(textStyle, style.caption)}>\n {captions[dateString] || ''}\n </Text>\n )}\n </View>\n )}\n </Pressable>\n );\n })}\n </View>\n );\n};\n\nWeek.displayName = 'Component:Calendar:Week';\n\nWeek.propTypes = {\n captions: PropTypes.shape({}),\n disabledDates: PropTypes.arrayOf(PropTypes.string),\n disabledPast: PropTypes.bool,\n focus: PropTypes.object,\n highlights: PropTypes.arrayOf(PropTypes.string),\n locale: PropTypes.string,\n format: PropTypes.string,\n from: PropTypes.instanceOf(Date),\n to: PropTypes.instanceOf(Date),\n year: PropTypes.number.isRequired,\n month: PropTypes.number.isRequired,\n number: PropTypes.number.isRequired,\n range: PropTypes.bool,\n rangeMinDays: PropTypes.number,\n selected: PropTypes.oneOfType([PropTypes.object, PropTypes.arrayOf(PropTypes.object)]),\n onFocus: PropTypes.func,\n onPress: PropTypes.func,\n};\n"],"file":"Calendar.Week.js"}
@@ -33,7 +33,7 @@ var _Calendar2 = require("./Calendar.Weekdays");
33
33
 
34
34
  var _helpers2 = require("./helpers");
35
35
 
36
- var _excluded = ["disabledPast", "format", "from", "months", "locale", "range", "rangeDays", "to", "value", "onChange", "onFocus"];
36
+ var _excluded = ["disabledPast", "format", "from", "months", "locale", "range", "rangeMaxDays", "to", "value", "onChange", "onFocus"];
37
37
 
38
38
  var Calendar = function Calendar(_ref) {
39
39
  var _ref$disabledPast = _ref.disabledPast,
@@ -46,7 +46,7 @@ var Calendar = function Calendar(_ref) {
46
46
  locale = _ref.locale,
47
47
  _ref$range = _ref.range,
48
48
  range = _ref$range === void 0 ? false : _ref$range,
49
- rangeDays = _ref.rangeDays,
49
+ rangeMaxDays = _ref.rangeMaxDays,
50
50
  to = _ref.to,
51
51
  value = _ref.value,
52
52
  _ref$onChange = _ref.onChange,
@@ -118,7 +118,7 @@ var Calendar = function Calendar(_ref) {
118
118
  from: from ? (0, _locale.parseDate)(from, format) : undefined,
119
119
  locale: locale,
120
120
  range: range,
121
- to: range && rangeDays && selected[0] ? (0, _locale.dateCalc)(selected[0], rangeDays, 'days') : to ? (0, _locale.parseDate)(to, format) : undefined,
121
+ to: range && rangeMaxDays && selected[0] ? (0, _locale.dateCalc)(selected[0], rangeMaxDays, 'days') : to ? (0, _locale.parseDate)(to, format) : undefined,
122
122
  selected: selected,
123
123
  onChange: handleChange,
124
124
  onFocus: isDesktop ? setFocus : undefined
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Calendar/Calendar.jsx"],"names":["Calendar","disabledPast","format","from","months","locale","range","rangeDays","to","value","onChange","onFocus","others","isDesktop","focus","setFocus","instance","setInstance","undefined","selected","setSelected","date","handleChange","next","getTime","handleMonth","month","Date","getFullYear","getMonth","instanceTS","todayMonthTS","disabledPrevious","disabledNext","props","style","scrollview","className","Array","length","empty","index","displayName"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,OAalB;AAAA,+BAZJC,YAYI;AAAA,MAZJA,YAYI,kCAZW,IAYX;AAAA,yBAXJC,MAWI;AAAA,MAXJA,MAWI,4BAXK,YAWL;AAAA,MAVJC,IAUI,QAVJA,IAUI;AAAA,yBATJC,MASI;AAAA,MATJA,MASI,4BATK,CASL;AAAA,MARJC,MAQI,QARJA,MAQI;AAAA,wBAPJC,KAOI;AAAA,MAPJA,KAOI,2BAPI,KAOJ;AAAA,MANJC,SAMI,QANJA,SAMI;AAAA,MALJC,EAKI,QALJA,EAKI;AAAA,MAJJC,KAII,QAJJA,KAII;AAAA,2BAHJC,QAGI;AAAA,MAHJA,QAGI,8BAHO,YAAM,CAAE,CAGf;AAAA,0BAFJC,OAEI;AAAA,MAFJA,OAEI,6BAFM,YAAM,CAAE,CAEd;AAAA,MADDC,MACC;;AACJ,mBAAsB,uBAAtB;AAAA,MAAQC,SAAR,cAAQA,SAAR;;AAEA,kBAA0B,sBAA1B;AAAA;AAAA,MAAOC,KAAP;AAAA,MAAcC,QAAd;;AACA,mBAAgC,qBAAS,mCAAoB,yBAApB,CAAT,CAAhC;AAAA;AAAA,MAAOC,QAAP;AAAA,MAAiBC,WAAjB;;AACA,mBAAgC,qBAASX,KAAK,GAAG,EAAH,GAAQY,SAAtB,CAAhC;AAAA;AAAA,MAAOC,QAAP;AAAA,MAAiBC,WAAjB;;AAEA,wBAAU,YAAM;AACd,QAAIC,IAAI,GAAGf,KAAK,GAAIG,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAR,GAAcS,SAAvB,GAAoCT,KAApD;AACA,QAAI,CAACY,IAAL,EAAW;AAEXA,IAAAA,IAAI,GAAG,uBAAUA,IAAV,EAAgBnB,MAAhB,CAAP;AACAe,IAAAA,WAAW,CAAC,mCAAoBI,IAApB,CAAD,CAAX;AACAD,IAAAA,WAAW,CAACd,KAAK,GAAG,CAAC,iBAAIe,IAAJ,CAAD,EAAYZ,KAAK,CAAC,CAAD,CAAL,GAAW,iBAAI,uBAAUA,KAAK,CAAC,CAAD,CAAf,EAAoBP,MAApB,CAAJ,CAAX,GAA8CgB,SAA1D,CAAH,GAA0E,iBAAIG,IAAJ,CAAhF,CAAX;AACD,GAPD,EAOG,CAACnB,MAAD,EAASI,KAAT,EAAgBG,KAAhB,CAPH;AASA,wBAAU,YAAM;AACdE,IAAAA,OAAO,CAACG,KAAD,CAAP;AACD,GAFD,EAEG,CAACA,KAAD,EAAQH,OAAR,CAFH;;AAIA,MAAMW,YAAY,GAAG,SAAfA,YAAe,CAACD,IAAD,EAAU;AAC7BD,IAAAA,WAAW,CAAC,YAAM;AAChB,UAAIG,IAAJ;;AAEA,UAAI,CAACjB,KAAL,EAAY;AACViB,QAAAA,IAAI,GAAGF,IAAP;AACD,OAFD,MAEO,IAAIF,QAAQ,CAAC,CAAD,CAAR,KAAgBD,SAAhB,IAA6BG,IAAI,GAAGF,QAAQ,CAAC,CAAD,CAAhD,EAAqD;AAC1DI,QAAAA,IAAI,GAAG,CAACJ,QAAQ,CAAC,CAAD,CAAT,EAAcE,IAAd,CAAP;AACD,OAFM,MAEA;AAAA;;AACLE,QAAAA,IAAI,GAAG,CAAC,eAAAJ,QAAQ,CAAC,CAAD,CAAR,0DAAaK,OAAb,QAA2BH,IAAI,CAACG,OAAL,EAA3B,GAA4CN,SAA5C,GAAwDG,IAAzD,CAAP;AACAN,QAAAA,QAAQ,CAACG,SAAD,CAAR;AACD;;AACDR,MAAAA,QAAQ,CAACa,IAAD,CAAR;AAEA,aAAOA,IAAP;AACD,KAdU,CAAX;AAeD,GAhBD;;AAkBA,MAAME,WAAW,GAAG,SAAdA,WAAc,CAACC,KAAD,EAAW;AAC7BT,IAAAA,WAAW,CAAC,mCAAoB,IAAIU,IAAJ,CAASX,QAAQ,CAACY,WAAT,EAAT,EAAiCZ,QAAQ,CAACa,QAAT,KAAsBH,KAAvD,CAApB,CAAD,CAAX;AACD,GAFD;;AAIA,MAAMI,UAAU,GAAGd,QAAQ,CAACQ,OAAT,EAAnB;AACA,MAAMO,YAAY,GAAG,mCAAoB,yBAApB,EAAgCP,OAAhC,EAArB;AACA,MAAMQ,gBAAgB,GACnB/B,YAAY,IAAI6B,UAAU,IAAIC,YAA/B,IACC5B,IAAI,IAAI2B,UAAU,IAAI,mCAAoB,uBAAU3B,IAAV,EAAgBD,MAAhB,CAApB,EAA6CsB,OAA7C,EAFzB;AAGA,MAAMS,YAAY,GAAGzB,EAAE,IAAIsB,UAAU,IAAI,mCAAoB,uBAAUtB,EAAV,EAAcN,MAAd,CAApB,EAA2CsB,OAA3C,EAAzC;AAEA,MAAMU,KAAK,+DACNtB,MADM;AAETE,IAAAA,KAAK,EAALA,KAFS;AAGTZ,IAAAA,MAAM,EAANA,MAHS;AAITC,IAAAA,IAAI,EAAEA,IAAI,GAAG,uBAAUA,IAAV,EAAgBD,MAAhB,CAAH,GAA6BgB,SAJ9B;AAKTb,IAAAA,MAAM,EAANA,MALS;AAMTC,IAAAA,KAAK,EAALA,KANS;AAOTE,IAAAA,EAAE,EACAF,KAAK,IAAIC,SAAT,IAAsBY,QAAQ,CAAC,CAAD,CAA9B,GACI,sBAASA,QAAQ,CAAC,CAAD,CAAjB,EAAsBZ,SAAtB,EAAiC,MAAjC,CADJ,GAEIC,EAAE,GACF,uBAAUA,EAAV,EAAcN,MAAd,CADE,GAEFgB,SAZG;AAaTC,IAAAA,QAAQ,EAARA,QAbS;AAcTT,IAAAA,QAAQ,EAAEY,YAdD;AAeTX,IAAAA,OAAO,EAAEE,SAAS,GAAGE,QAAH,GAAcG;AAfvB,IAAX;AAkBA,sBACE,6BAAC,gBAAD;AAAM,mBAAaN,MAAM,CAAC,aAAD;AAAzB,KACG,CAACC,SAAD,iBAAc,6BAAC,mBAAD;AAAU,IAAA,MAAM,EAAER;AAAlB,IADjB,eAEE,6BAAC,sBAAD;AAAY,IAAA,UAAU,EAAEQ,SAAxB;AAAmC,IAAA,SAAS,EAAE,qBAAOsB,wBAAMC,UAAb,EAAyBxB,MAAM,CAACyB,SAAhC;AAA9C,KACGC,KAAK,CAACnC,IAAN,CAAW;AAAEoC,IAAAA,MAAM,EAAEnC;AAAV,GAAX,EAA+B,UAACoC,KAAD,EAAQC,KAAR;AAAA,wBAC9B,6BAAC,eAAD;AACE,MAAA,GAAG,EAAEA,KADP;AAEE,MAAA,MAAM,EAAE5B,SAAS,IAAI4B,KAAK,KAAKrC,MAAM,GAAG,CAAhC,IAAqC,CAAC6B,YAAtC,GAAqD;AAAA,eAAMR,WAAW,CAACrB,MAAD,CAAjB;AAAA,OAArD,GAAiFc,SAF3F;AAGE,MAAA,UAAU,EAAEL,SAAS,IAAI4B,KAAK,KAAK,CAAvB,IAA4B,CAACT,gBAA7B,GAAgD;AAAA,eAAMP,WAAW,CAAC,CAACrB,MAAF,CAAjB;AAAA,OAAhD,GAA6Ec,SAH3F;AAIE,MAAA,QAAQ,EAAE,IAAIS,IAAJ,CAASX,QAAQ,CAACY,WAAT,EAAT,EAAiCZ,QAAQ,CAACa,QAAT,KAAsBY,KAAvD,EAA8D,CAA9D;AAJZ,OAKMP,KALN,EAD8B;AAAA,GAA/B,CADH,CAFF,CADF;AAgBD,CAhGM;;;AAkGPlC,QAAQ,CAAC0C,WAAT,GAAuB,oBAAvB","sourcesContent":["import { dateCalc, parseDate, UTC } from '@mirai/locale';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { ScrollView, View } from '../../primitives';\nimport style from './Calendar.module.css';\nimport { Month } from './Calendar.Month';\nimport { Weekdays } from './Calendar.Weekdays';\nimport { getFirstDateOfMonth, getToday } from './helpers';\n\nexport const Calendar = ({\n disabledPast = true,\n format = 'YYYY/MM/DD',\n from,\n months = 2,\n locale,\n range = false,\n rangeDays,\n to,\n value,\n onChange = () => {},\n onFocus = () => {},\n ...others\n}) => {\n const { isDesktop } = useDevice();\n\n const [focus, setFocus] = useState();\n const [instance, setInstance] = useState(getFirstDateOfMonth(getToday()));\n const [selected, setSelected] = useState(range ? [] : undefined);\n\n useEffect(() => {\n let date = range ? (value ? value[0] : undefined) : value;\n if (!date) return;\n\n date = parseDate(date, format);\n setInstance(getFirstDateOfMonth(date));\n setSelected(range ? [UTC(date), value[1] ? UTC(parseDate(value[1], format)) : undefined] : UTC(date));\n }, [format, range, value]);\n\n useEffect(() => {\n onFocus(focus);\n }, [focus, onFocus]);\n\n const handleChange = (date) => {\n setSelected(() => {\n let next;\n\n if (!range) {\n next = date;\n } else if (selected[1] === undefined && date > selected[0]) {\n next = [selected[0], date];\n } else {\n next = [selected[0]?.getTime() === date.getTime() ? undefined : date];\n setFocus(undefined);\n }\n onChange(next);\n\n return next;\n });\n };\n\n const handleMonth = (month) => {\n setInstance(getFirstDateOfMonth(new Date(instance.getFullYear(), instance.getMonth() + month)));\n };\n\n const instanceTS = instance.getTime();\n const todayMonthTS = getFirstDateOfMonth(getToday()).getTime();\n const disabledPrevious =\n (disabledPast && instanceTS <= todayMonthTS) ||\n (from && instanceTS <= getFirstDateOfMonth(parseDate(from, format)).getTime());\n const disabledNext = to && instanceTS >= getFirstDateOfMonth(parseDate(to, format)).getTime();\n\n const props = {\n ...others,\n focus,\n format,\n from: from ? parseDate(from, format) : undefined,\n locale,\n range,\n to:\n range && rangeDays && selected[0]\n ? dateCalc(selected[0], rangeDays, 'days')\n : to\n ? parseDate(to, format)\n : undefined,\n selected,\n onChange: handleChange,\n onFocus: isDesktop ? setFocus : undefined,\n };\n\n return (\n <View data-testid={others['data-testid']}>\n {!isDesktop && <Weekdays locale={locale} />}\n <ScrollView horizontal={isDesktop} className={styles(style.scrollview, others.className)}>\n {Array.from({ length: months }, (empty, index) => (\n <Month\n key={index}\n onNext={isDesktop && index === months - 1 && !disabledNext ? () => handleMonth(months) : undefined}\n onPrevious={isDesktop && index === 0 && !disabledPrevious ? () => handleMonth(-months) : undefined}\n instance={new Date(instance.getFullYear(), instance.getMonth() + index, 1)}\n {...props}\n />\n ))}\n </ScrollView>\n </View>\n );\n};\n\nCalendar.displayName = 'Component:Calendar';\n\nCalendar.propTypes = {\n captions: PropTypes.shape({}),\n disabledDates: PropTypes.arrayOf(PropTypes.string),\n disabledPast: PropTypes.bool,\n disabledWeekends: PropTypes.bool,\n format: PropTypes.string,\n from: PropTypes.string,\n locale: PropTypes.string,\n months: PropTypes.number,\n range: PropTypes.bool,\n rangeDays: PropTypes.number,\n to: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n};\n"],"file":"Calendar.js"}
1
+ {"version":3,"sources":["../../../src/components/Calendar/Calendar.jsx"],"names":["Calendar","disabledPast","format","from","months","locale","range","rangeMaxDays","to","value","onChange","onFocus","others","isDesktop","focus","setFocus","instance","setInstance","undefined","selected","setSelected","date","handleChange","next","getTime","handleMonth","month","Date","getFullYear","getMonth","instanceTS","todayMonthTS","disabledPrevious","disabledNext","props","style","scrollview","className","Array","length","empty","index","displayName"],"mappings":"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","sourcesContent":["import { dateCalc, parseDate, UTC } from '@mirai/locale';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { ScrollView, View } from '../../primitives';\nimport style from './Calendar.module.css';\nimport { Month } from './Calendar.Month';\nimport { Weekdays } from './Calendar.Weekdays';\nimport { getFirstDateOfMonth, getToday } from './helpers';\n\nexport const Calendar = ({\n disabledPast = true,\n format = 'YYYY/MM/DD',\n from,\n months = 2,\n locale,\n range = false,\n rangeMaxDays,\n to,\n value,\n onChange = () => {},\n onFocus = () => {},\n ...others\n}) => {\n const { isDesktop } = useDevice();\n\n const [focus, setFocus] = useState();\n const [instance, setInstance] = useState(getFirstDateOfMonth(getToday()));\n const [selected, setSelected] = useState(range ? [] : undefined);\n\n useEffect(() => {\n let date = range ? (value ? value[0] : undefined) : value;\n if (!date) return;\n\n date = parseDate(date, format);\n setInstance(getFirstDateOfMonth(date));\n setSelected(range ? [UTC(date), value[1] ? UTC(parseDate(value[1], format)) : undefined] : UTC(date));\n }, [format, range, value]);\n\n useEffect(() => {\n onFocus(focus);\n }, [focus, onFocus]);\n\n const handleChange = (date) => {\n setSelected(() => {\n let next;\n\n if (!range) {\n next = date;\n } else if (selected[1] === undefined && date > selected[0]) {\n next = [selected[0], date];\n } else {\n next = [selected[0]?.getTime() === date.getTime() ? undefined : date];\n setFocus(undefined);\n }\n onChange(next);\n\n return next;\n });\n };\n\n const handleMonth = (month) => {\n setInstance(getFirstDateOfMonth(new Date(instance.getFullYear(), instance.getMonth() + month)));\n };\n\n const instanceTS = instance.getTime();\n const todayMonthTS = getFirstDateOfMonth(getToday()).getTime();\n const disabledPrevious =\n (disabledPast && instanceTS <= todayMonthTS) ||\n (from && instanceTS <= getFirstDateOfMonth(parseDate(from, format)).getTime());\n const disabledNext = to && instanceTS >= getFirstDateOfMonth(parseDate(to, format)).getTime();\n\n const props = {\n ...others,\n focus,\n format,\n from: from ? parseDate(from, format) : undefined,\n locale,\n range,\n to:\n range && rangeMaxDays && selected[0]\n ? dateCalc(selected[0], rangeMaxDays, 'days')\n : to\n ? parseDate(to, format)\n : undefined,\n selected,\n onChange: handleChange,\n onFocus: isDesktop ? setFocus : undefined,\n };\n\n return (\n <View data-testid={others['data-testid']}>\n {!isDesktop && <Weekdays locale={locale} />}\n <ScrollView horizontal={isDesktop} className={styles(style.scrollview, others.className)}>\n {Array.from({ length: months }, (empty, index) => (\n <Month\n key={index}\n onNext={isDesktop && index === months - 1 && !disabledNext ? () => handleMonth(months) : undefined}\n onPrevious={isDesktop && index === 0 && !disabledPrevious ? () => handleMonth(-months) : undefined}\n instance={new Date(instance.getFullYear(), instance.getMonth() + index, 1)}\n {...props}\n />\n ))}\n </ScrollView>\n </View>\n );\n};\n\nCalendar.displayName = 'Component:Calendar';\n\nCalendar.propTypes = {\n captions: PropTypes.shape({}),\n disabledDates: PropTypes.arrayOf(PropTypes.string),\n disabledPast: PropTypes.bool,\n disabledWeekends: PropTypes.bool,\n format: PropTypes.string,\n from: PropTypes.string,\n highlights: PropTypes.arrayOf(PropTypes.string),\n locale: PropTypes.string,\n months: PropTypes.number,\n range: PropTypes.bool,\n rangeMaxDays: PropTypes.number,\n rangeMinDays: PropTypes.number,\n to: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n};\n"],"file":"Calendar.js"}
@@ -1,7 +1,8 @@
1
1
  :root {
2
- --mirai-ui-calendar-cell: calc(var(--mirai-ui-space-XXL) - var(--mirai-ui-space-XS));
2
+ --mirai-ui-calendar-cell: calc(var(--mirai-ui-space-XL) + var(--mirai-ui-space-S));
3
3
  --mirai-ui-calendar-weekday-color: var(--mirai-ui-lighten);
4
4
  --mirai-ui-calendar-selected-color: var(--mirai-ui-lighten);
5
+ --mirai-ui-calendar-radius: var(--mirai-ui-border-radius);
5
6
  }
6
7
 
7
8
  .scrollview {
@@ -10,7 +11,7 @@
10
11
 
11
12
  .month {
12
13
  padding: calc(var(--mirai-ui-space-XS) / 2);
13
- width: calc(var(--mirai-ui-calendar-cell) * 7);
14
+ width: calc(calc(var(--mirai-ui-calendar-cell) * 7) + var(--mirai-ui-space-XS));
14
15
  }
15
16
 
16
17
  .header {
@@ -24,9 +25,9 @@
24
25
 
25
26
  .cell {
26
27
  flex: 1;
27
- overflow: hidden;
28
- text-align: center;
29
28
  margin-bottom: 2px;
29
+ text-align: center;
30
+ overflow: hidden;
30
31
  }
31
32
 
32
33
  .weekdays {
@@ -39,39 +40,49 @@
39
40
 
40
41
  .day {
41
42
  align-items: center;
42
- justify-content: center;
43
- width: var(--mirai-ui-calendar-cell);
44
43
  height: var(--mirai-ui-calendar-cell);
44
+ justify-content: center;
45
45
  margin: 0 auto;
46
- }
47
-
48
- .daySelected {
49
- background-color: var(--mirai-ui-disabled);
46
+ width: var(--mirai-ui-calendar-cell);
50
47
  }
51
48
 
52
49
  .dayRange:not(.daySelected) {
53
50
  background-color: var(--mirai-ui-disabled);
54
51
  }
55
52
 
56
- .dayRangeLimit {
53
+ .daySelected {
57
54
  background-color: var(--mirai-ui-accent);
55
+ border-radius: var(--mirai-ui-calendar-radius);
56
+ }
57
+
58
+ .daySelectedStart {
59
+ border-bottom-right-radius: 0;
60
+ border-top-right-radius: 0;
61
+ }
62
+
63
+ .daySelectedEnd {
64
+ border-bottom-left-radius: 0;
65
+ border-top-left-radius: 0;
58
66
  }
59
67
 
60
68
  .dayTouchable:hover {
61
69
  background-color: var(--mirai-ui-lighten);
70
+ border-radius: var(--mirai-ui-calendar-radius);
62
71
  }
63
72
 
64
73
  .textDisabled {
65
74
  color: var(--mirai-ui-disabled);
66
- transition: all var(--mirai-ui-motion-expand) var(--mirai-ui-motion-easing);
67
75
  }
68
76
 
69
- .dayRangeLimit .textSelected {
77
+ .textHighlight {
78
+ color: var(--mirai-ui-accent);
79
+ }
80
+
81
+ .daySelected .textSelected {
70
82
  color: var(--mirai-ui-base);
71
83
  }
72
84
 
73
85
  .caption {
74
- white-space: pre-wrap;
75
86
  height: var(--mirai-ui-font-size-small);
76
87
  margin-top: calc(var(--mirai-ui-space-XS) / 2);
77
88
  max-width: calc(var(--mirai-ui-calendar-cell) * 0.8);
@@ -86,7 +97,6 @@
86
97
  }
87
98
 
88
99
  .month {
89
- padding: var(--mirai-ui-space-XS) 0;
90
100
  width: 100%;
91
101
  }
92
102