@mirai/ui 1.0.20 → 1.0.23
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/build/components/Button/Button.module.css +17 -24
- package/build/components/Button/__tests__/__snapshots__/Button.test.js.snap +2 -22
- package/build/components/Calendar/Calendar.Month.js +1 -1
- package/build/components/Calendar/Calendar.Month.js.map +1 -1
- package/build/components/Calendar/Calendar.Week.js +4 -7
- package/build/components/Calendar/Calendar.Week.js.map +1 -1
- package/build/components/Calendar/Calendar.Weekdays.js +1 -2
- package/build/components/Calendar/Calendar.Weekdays.js.map +1 -1
- package/build/components/Calendar/Calendar.js +6 -3
- package/build/components/Calendar/Calendar.js.map +1 -1
- package/build/components/Calendar/Calendar.module.css +19 -19
- package/build/components/Calendar/__tests__/__snapshots__/Calendar.test.jsx.snap +341 -463
- package/build/components/InputNumber/InputNumber.js +3 -1
- package/build/components/InputNumber/InputNumber.js.map +1 -1
- package/build/components/InputNumber/InputNumber.module.css +2 -2
- package/build/components/InputNumber/__tests__/__snapshots__/InputNumber.test.js.snap +29 -29
- package/build/components/InputOption/InputOption.module.css +1 -1
- package/build/components/InputText/InputText.module.css +4 -4
- package/build/components/Notification/Notification.js +3 -3
- package/build/components/Notification/Notification.js.map +1 -1
- package/build/components/Notification/Notification.module.css +30 -22
- package/build/components/Notification/__tests__/__snapshots__/Notification.test.js.snap +12 -12
- package/build/components/Table/Table.module.css +4 -4
- package/build/primitives/Checkbox/Checkbox.module.css +2 -2
- package/build/primitives/Input/Input.module.css +1 -1
- package/build/primitives/Radio/Radio.module.css +2 -2
- package/build/primitives/Switch/Switch.module.css +2 -2
- package/build/primitives/Text/Text.js +6 -4
- package/build/primitives/Text/Text.js.map +1 -1
- package/build/primitives/Text/Text.module.css +8 -0
- package/build/primitives/Text/__tests__/__snapshots__/Text.test.js.snap +10 -0
- package/build/theme/default.theme.css +39 -22
- package/package.json +1 -1
|
@@ -3,12 +3,15 @@
|
|
|
3
3
|
--mirai-ui-button-color: var(--mirai-ui-base);
|
|
4
4
|
--mirai-ui-button-color-active: rgba(255, 255, 255, 0.2);
|
|
5
5
|
--mirai-ui-button-color-focus: var(--mirai-ui-content);
|
|
6
|
-
--mirai-ui-button-disabled-background: var(--mirai-ui-content-
|
|
7
|
-
--mirai-ui-button-disabled-color: var(--mirai-ui-content-
|
|
6
|
+
--mirai-ui-button-disabled-background: var(--mirai-ui-content-border);
|
|
7
|
+
--mirai-ui-button-disabled-color: var(--mirai-ui-content-light);
|
|
8
|
+
--mirai-ui-button-font: var(--mirai-ui-font);
|
|
9
|
+
--mirai-ui-button-font-weight: var(--mirai-ui-font-weight);
|
|
8
10
|
--mirai-ui-button-outlined-background: var(--mirai-ui-base);
|
|
9
|
-
--mirai-ui-button-padding-
|
|
10
|
-
--mirai-ui-button-padding-
|
|
11
|
+
--mirai-ui-button-padding-y: var(--mirai-ui-space-S);
|
|
12
|
+
--mirai-ui-button-padding-x: var(--mirai-ui-space-L);
|
|
11
13
|
--mirai-ui-button-radius: var(--mirai-ui-border-radius);
|
|
14
|
+
--mirai-ui-button-squared: calc(var(--mirai-ui-space-M) * 2);
|
|
12
15
|
}
|
|
13
16
|
|
|
14
17
|
.button {
|
|
@@ -17,11 +20,11 @@
|
|
|
17
20
|
border-radius: var(--mirai-ui-button-radius);
|
|
18
21
|
color: var(--mirai-ui-button-color);
|
|
19
22
|
display: flex;
|
|
20
|
-
font-family: var(--mirai-ui-font);
|
|
23
|
+
font-family: var(--mirai-ui-button-font);
|
|
21
24
|
font-size: var(--mirai-ui-font-size-action);
|
|
22
|
-
font-weight: var(--mirai-ui-font-
|
|
25
|
+
font-weight: var(--mirai-ui-button-font-weight);
|
|
23
26
|
justify-content: center;
|
|
24
|
-
padding: var(--mirai-ui-button-padding-
|
|
27
|
+
padding: var(--mirai-ui-button-padding-y) var(--mirai-ui-button-padding-x);
|
|
25
28
|
transition: background-color var(--mirai-ui-motion-expand) var(--mirai-ui-motion-easing),
|
|
26
29
|
box-shadow var(--mirai-ui-motion-expand) var(--mirai-ui-motion-easing),
|
|
27
30
|
color var(--mirai-ui-motion-expand) var(--mirai-ui-motion-easing);
|
|
@@ -34,8 +37,8 @@
|
|
|
34
37
|
}
|
|
35
38
|
|
|
36
39
|
.outlined {
|
|
37
|
-
border: solid 1px var(--mirai-ui-button-background);
|
|
38
40
|
background-color: var(--mirai-ui-button-outlined-background);
|
|
41
|
+
border: solid 1px var(--mirai-ui-button-background);
|
|
39
42
|
color: var(--mirai-ui-button-background);
|
|
40
43
|
}
|
|
41
44
|
|
|
@@ -45,11 +48,13 @@
|
|
|
45
48
|
|
|
46
49
|
.large:not(.squared) {
|
|
47
50
|
font-size: var(--mirai-ui-font-size-headline);
|
|
51
|
+
padding: var(--mirai-ui-button-padding-y)
|
|
52
|
+
calc(var(--mirai-ui-button-padding-x) + calc(var(--mirai-ui-button-padding-y) / 2));
|
|
48
53
|
}
|
|
49
54
|
|
|
50
55
|
.small:not(.squared) {
|
|
51
56
|
font-size: var(--mirai-ui-font-size-small);
|
|
52
|
-
padding:
|
|
57
|
+
padding: var(--mirai-ui-button-padding-y) calc(var(--mirai-ui-button-padding-x) / 2);
|
|
53
58
|
}
|
|
54
59
|
|
|
55
60
|
.rounded {
|
|
@@ -57,22 +62,10 @@
|
|
|
57
62
|
}
|
|
58
63
|
|
|
59
64
|
.squared {
|
|
65
|
+
height: var(--mirai-ui-button-squared);
|
|
60
66
|
padding: 0;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
width: var(--mirai-ui-space-XL);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.squared.small {
|
|
67
|
-
height: var(--mirai-ui-space-L);
|
|
68
|
-
min-width: var(--mirai-ui-space-L);
|
|
69
|
-
width: var(--mirai-ui-space-L);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.squared.large {
|
|
73
|
-
height: var(--mirai-ui-space-XXL);
|
|
74
|
-
min-width: var(--mirai-ui-space-XXL);
|
|
75
|
-
width: var(--mirai-ui-space-XXL);
|
|
67
|
+
min-width: var(--mirai-ui-button-squared);
|
|
68
|
+
width: var(--mirai-ui-button-squared);
|
|
76
69
|
}
|
|
77
70
|
|
|
78
71
|
@media only screen and (max-width: 600px) {
|
|
@@ -1,15 +1,5 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
-
exports[` 1`] = `
|
|
4
|
-
<DocumentFragment>
|
|
5
|
-
<button
|
|
6
|
-
class="pressable button squared"
|
|
7
|
-
>
|
|
8
|
-
children
|
|
9
|
-
</button>
|
|
10
|
-
</DocumentFragment>
|
|
11
|
-
`;
|
|
12
|
-
|
|
13
3
|
exports[`component:<Button> inherit:className 1`] = `
|
|
14
4
|
<DocumentFragment>
|
|
15
5
|
<button
|
|
@@ -61,20 +51,10 @@ exports[`component:<Button> prop:small 1`] = `
|
|
|
61
51
|
</DocumentFragment>
|
|
62
52
|
`;
|
|
63
53
|
|
|
64
|
-
exports[`component:<Button> prop:squared
|
|
54
|
+
exports[`component:<Button> prop:squared 1`] = `
|
|
65
55
|
<DocumentFragment>
|
|
66
56
|
<button
|
|
67
|
-
class="pressable button
|
|
68
|
-
>
|
|
69
|
-
children
|
|
70
|
-
</button>
|
|
71
|
-
</DocumentFragment>
|
|
72
|
-
`;
|
|
73
|
-
|
|
74
|
-
exports[`component:<Button> prop:squared & small 1`] = `
|
|
75
|
-
<DocumentFragment>
|
|
76
|
-
<button
|
|
77
|
-
class="pressable button small squared"
|
|
57
|
+
class="pressable button squared"
|
|
78
58
|
>
|
|
79
59
|
children
|
|
80
60
|
</button>
|
|
@@ -76,7 +76,7 @@ var Month = function Month(_ref) {
|
|
|
76
76
|
name: "Left"
|
|
77
77
|
})), /*#__PURE__*/_react.default.createElement(_primitives.Text, {
|
|
78
78
|
bold: true,
|
|
79
|
-
|
|
79
|
+
subheadline: true,
|
|
80
80
|
className: _CalendarModule.default.title
|
|
81
81
|
}, (0, _helpers2.getHeader)(instance, locale)), onNext && /*#__PURE__*/_react.default.createElement(_primitives.Pressable, {
|
|
82
82
|
onPress: onNext
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.Month.js","names":["Month","focus","instance","selected","disabledPast","format","from","locale","range","to","onChange","onFocus","onNext","onPrevious","others","isDesktop","weekNumber","style","month","className","header","title","VISIBLE_WEEKS","map","week","getMonth","getFullYear","displayName","propTypes","captions","PropTypes","shape","any","disabledDates","arrayOf","string","bool","disabledWeekends","instanceOf","Date","value","oneOfType","func"],"sources":["../../../src/components/Calendar/Calendar.Month.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, Pressable, Text, View } from '../../primitives';\nimport { VISIBLE_WEEKS } from './Calendar.constants';\nimport style from './Calendar.module.css';\nimport { Week } from './Calendar.Week';\nimport { Weekdays } from './Calendar.Weekdays';\nimport { getHeader, getWeekNumber } from './helpers';\n\nexport const Month = ({\n focus,\n instance,\n selected,\n disabledPast = true,\n format,\n from,\n locale,\n range = false,\n to,\n onChange = () => {},\n onFocus = () => {},\n onNext,\n onPrevious,\n ...others\n}) => {\n const { isDesktop } = useDevice();\n const weekNumber = getWeekNumber(instance);\n\n return (\n <View className={styles(style.month, others.className)}>\n <View row className={style.header}>\n {onPrevious && (\n <Pressable onPress={onPrevious}>\n <Icon name=\"Left\" />\n </Pressable>\n )}\n <Text bold
|
|
1
|
+
{"version":3,"file":"Calendar.Month.js","names":["Month","focus","instance","selected","disabledPast","format","from","locale","range","to","onChange","onFocus","onNext","onPrevious","others","isDesktop","weekNumber","style","month","className","header","title","VISIBLE_WEEKS","map","week","getMonth","getFullYear","displayName","propTypes","captions","PropTypes","shape","any","disabledDates","arrayOf","string","bool","disabledWeekends","instanceOf","Date","value","oneOfType","func"],"sources":["../../../src/components/Calendar/Calendar.Month.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, Pressable, Text, View } from '../../primitives';\nimport { VISIBLE_WEEKS } from './Calendar.constants';\nimport style from './Calendar.module.css';\nimport { Week } from './Calendar.Week';\nimport { Weekdays } from './Calendar.Weekdays';\nimport { getHeader, getWeekNumber } from './helpers';\n\nexport const Month = ({\n focus,\n instance,\n selected,\n disabledPast = true,\n format,\n from,\n locale,\n range = false,\n to,\n onChange = () => {},\n onFocus = () => {},\n onNext,\n onPrevious,\n ...others\n}) => {\n const { isDesktop } = useDevice();\n const weekNumber = getWeekNumber(instance);\n\n return (\n <View className={styles(style.month, others.className)}>\n <View row className={style.header}>\n {onPrevious && (\n <Pressable onPress={onPrevious}>\n <Icon name=\"Left\" />\n </Pressable>\n )}\n <Text bold subheadline className={style.title}>\n {getHeader(instance, locale)}\n </Text>\n {onNext && (\n <Pressable onPress={onNext}>\n <Icon name=\"Right\" />\n </Pressable>\n )}\n </View>\n\n {isDesktop && <Weekdays locale={locale} />}\n\n {VISIBLE_WEEKS.map((week) => (\n <Week\n {...{\n ...others,\n disabledPast,\n focus,\n format,\n from,\n locale,\n to,\n range,\n selected,\n }}\n key={week}\n month={instance.getMonth()}\n number={weekNumber + week}\n year={instance.getFullYear()}\n onFocus={onFocus}\n onPress={onChange}\n />\n ))}\n </View>\n );\n};\n\nMonth.displayName = 'Component:Calendar:Month';\n\nMonth.propTypes = {\n captions: PropTypes.shape({}),\n focus: PropTypes.any,\n instance: PropTypes.any,\n selected: PropTypes.any,\n disabledDates: PropTypes.arrayOf(PropTypes.string),\n disabledPast: PropTypes.bool,\n disabledWeekends: PropTypes.bool,\n format: PropTypes.string,\n from: PropTypes.instanceOf(Date),\n locale: PropTypes.string,\n range: PropTypes.bool,\n to: PropTypes.instanceOf(Date),\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onNext: PropTypes.func,\n onPrevious: PropTypes.func,\n};\n"],"mappings":"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"}
|
|
@@ -124,7 +124,7 @@ var Week = function Week(_ref) {
|
|
|
124
124
|
};
|
|
125
125
|
var textStyle = is.disabled ? _CalendarModule.default.textDisabled : is.selected || dateTS === rangeTS.end ? _CalendarModule.default.textSelected : is.highlight && !is.range ? _CalendarModule.default.textHighlight : undefined;
|
|
126
126
|
return /*#__PURE__*/_react.default.createElement(_primitives.Pressable, {
|
|
127
|
-
disabled: is.disabled || is.
|
|
127
|
+
disabled: is.disabled || !is.visible || range && !selected[1] && (is.minRange || is.outOfRange),
|
|
128
128
|
key: day,
|
|
129
129
|
tabIndex: is.visible && !is.disabled ? "".concat(date.getMonth(), "-").concat(date.getDate()) : undefined,
|
|
130
130
|
"data-testid": "".concat(others['data-testid'] || 'calendar', "-").concat(number, "-").concat(day),
|
|
@@ -143,13 +143,10 @@ var Week = function Week(_ref) {
|
|
|
143
143
|
}, /*#__PURE__*/_react.default.createElement(_primitives.Text, {
|
|
144
144
|
bold: is.today || is.highlight || is.selected && !is.range,
|
|
145
145
|
className: textStyle
|
|
146
|
-
}, (
|
|
147
|
-
locale: locale,
|
|
148
|
-
day: 'numeric'
|
|
149
|
-
})), captions && /*#__PURE__*/_react.default.createElement(_primitives.Text, {
|
|
146
|
+
}, date.getDate()), captions && /*#__PURE__*/_react.default.createElement(_primitives.Text, {
|
|
150
147
|
small: true,
|
|
151
|
-
className: (0, _helpers.styles)(textStyle, _CalendarModule.default.caption, !captions[dateString] && !is.
|
|
152
|
-
}, captions[dateString] || '-'
|
|
148
|
+
className: (0, _helpers.styles)(textStyle, _CalendarModule.default.caption, !captions[dateString] && !is.rangeLimit && _CalendarModule.default.empty)
|
|
149
|
+
}, !is.disabled ? captions[dateString] || '-' : '')));
|
|
153
150
|
}));
|
|
154
151
|
};
|
|
155
152
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.Week.js","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","style","DAYS","day","Date","getFullYear","getMonth","getDate","dateTS","dateString","is","disabled","includes","highlight","outOfRange","minRange","rangeLimit","ranging","today","visible","textStyle","textDisabled","textSelected","textHighlight","cell","dayRange","daySelected","daySelectedStart","daySelectedEnd","dayTouchable","caption","empty","displayName","propTypes","PropTypes","shape","arrayOf","string","bool","object","instanceOf","isRequired","oneOfType","func"],"sources":["../../../src/components/Calendar/Calendar.Week.jsx"],"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, getFirstDayOfWeek } from './helpers';\n\nexport const Week = ({\n captions,\n disabledDates = [],\n disabledPast = true,\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, getFirstDayOfWeek(locale));\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 className={styles(rangeTS.start !== undefined && range && style.range)}>\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.getMonth()}-${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\n small\n className={styles(textStyle, style.caption, !captions[dateString] && !is.range && style.empty)}\n >\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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Calendar.Week.js","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","style","DAYS","day","Date","getFullYear","getMonth","getDate","dateTS","dateString","is","disabled","includes","highlight","outOfRange","minRange","rangeLimit","ranging","today","visible","textStyle","textDisabled","textSelected","textHighlight","cell","dayRange","daySelected","daySelectedStart","daySelectedEnd","dayTouchable","caption","empty","displayName","propTypes","PropTypes","shape","arrayOf","string","bool","object","instanceOf","isRequired","oneOfType","func"],"sources":["../../../src/components/Calendar/Calendar.Week.jsx"],"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, getFirstDayOfWeek } from './helpers';\n\nexport const Week = ({\n captions,\n disabledDates = [],\n disabledPast = true,\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, getFirstDayOfWeek(locale));\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 className={styles(rangeTS.start !== undefined && range && style.range)}>\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.visible || (range && !selected[1] && (is.minRange || is.outOfRange))}\n key={day}\n tabIndex={is.visible && !is.disabled ? `${date.getMonth()}-${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 {date.getDate()}\n </Text>\n\n {captions && (\n <Text\n small\n className={styles(textStyle, style.caption, !captions[dateString] && !is.rangeLimit && style.empty)}\n >\n {!is.disabled ? 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"],"mappings":"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"}
|
|
@@ -29,9 +29,8 @@ var Weekdays = function Weekdays(_ref) {
|
|
|
29
29
|
className: _CalendarModule.default.weekdays
|
|
30
30
|
}, _Calendar.DAYS.map(function (day) {
|
|
31
31
|
return /*#__PURE__*/_react.default.createElement(_primitives.Text, {
|
|
32
|
-
small: true,
|
|
33
32
|
key: day,
|
|
34
|
-
|
|
33
|
+
small: true,
|
|
35
34
|
className: (0, _helpers.styles)(_CalendarModule.default.cell, _CalendarModule.default.weekday)
|
|
36
35
|
}, weekdays[day]);
|
|
37
36
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.Weekdays.js","names":["Weekdays","locale","weekdays","style","DAYS","map","day","cell","weekday","displayName","propTypes","PropTypes","string"],"sources":["../../../src/components/Calendar/Calendar.Weekdays.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { styles } from '../../helpers';\nimport { Text, View } from '../../primitives';\nimport { DAYS } from './Calendar.constants';\nimport style from './Calendar.module.css';\nimport { getWeekDays } from './helpers';\n\nexport const Weekdays = ({ locale }) => {\n const weekdays = getWeekDays(locale);\n\n return (\n <View row className={style.weekdays}>\n {DAYS.map((day) => (\n <Text
|
|
1
|
+
{"version":3,"file":"Calendar.Weekdays.js","names":["Weekdays","locale","weekdays","style","DAYS","map","day","cell","weekday","displayName","propTypes","PropTypes","string"],"sources":["../../../src/components/Calendar/Calendar.Weekdays.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { styles } from '../../helpers';\nimport { Text, View } from '../../primitives';\nimport { DAYS } from './Calendar.constants';\nimport style from './Calendar.module.css';\nimport { getWeekDays } from './helpers';\n\nexport const Weekdays = ({ locale }) => {\n const weekdays = getWeekDays(locale);\n\n return (\n <View row className={style.weekdays}>\n {DAYS.map((day) => (\n <Text key={day} small className={styles(style.cell, style.weekday)}>\n {weekdays[day]}\n </Text>\n ))}\n </View>\n );\n};\n\nWeekdays.displayName = 'Component:Calendar:Weekdays';\n\nWeekdays.propTypes = {\n locale: PropTypes.string,\n};\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,OAAgB;EAAA,IAAbC,MAAa,QAAbA,MAAa;EACtC,IAAMC,QAAQ,GAAG,2BAAYD,MAAZ,CAAjB;EAEA,oBACE,6BAAC,gBAAD;IAAM,GAAG,MAAT;IAAU,SAAS,EAAEE,wBAAMD;EAA3B,GACGE,eAAKC,GAAL,CAAS,UAACC,GAAD;IAAA,oBACR,6BAAC,gBAAD;MAAM,GAAG,EAAEA,GAAX;MAAgB,KAAK,MAArB;MAAsB,SAAS,EAAE,qBAAOH,wBAAMI,IAAb,EAAmBJ,wBAAMK,OAAzB;IAAjC,GACGN,QAAQ,CAACI,GAAD,CADX,CADQ;EAAA,CAAT,CADH,CADF;AASD,CAZM;;;AAcPN,QAAQ,CAACS,WAAT,GAAuB,6BAAvB;AAEAT,QAAQ,CAACU,SAAT,GAAqB;EACnBT,MAAM,EAAEU,mBAAUC;AADC,CAArB"}
|
|
@@ -27,7 +27,7 @@ var _Calendar2 = require("./Calendar.Weekdays");
|
|
|
27
27
|
|
|
28
28
|
var _helpers2 = require("./helpers");
|
|
29
29
|
|
|
30
|
-
var _excluded = ["disabledPast", "format", "from", "months", "locale", "range", "rangeMaxDays", "to", "value", "onChange", "onFocus"];
|
|
30
|
+
var _excluded = ["disabledPast", "format", "from", "months", "locale", "range", "rangeMaxDays", "to", "value", "onChange", "onFocus", "onScroll"];
|
|
31
31
|
|
|
32
32
|
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); }
|
|
33
33
|
|
|
@@ -77,6 +77,7 @@ var Calendar = function Calendar(_ref) {
|
|
|
77
77
|
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
|
|
78
78
|
_ref$onFocus = _ref.onFocus,
|
|
79
79
|
onFocus = _ref$onFocus === void 0 ? function () {} : _ref$onFocus,
|
|
80
|
+
onScroll = _ref.onScroll,
|
|
80
81
|
others = _objectWithoutProperties(_ref, _excluded);
|
|
81
82
|
|
|
82
83
|
var _useDevice = (0, _hooks.useDevice)(),
|
|
@@ -144,7 +145,7 @@ var Calendar = function Calendar(_ref) {
|
|
|
144
145
|
from: from ? (0, _locale.parseDate)(from, format) : undefined,
|
|
145
146
|
locale: locale,
|
|
146
147
|
range: range,
|
|
147
|
-
to:
|
|
148
|
+
to: range && rangeMaxDays && selected[0] ? (0, _locale.dateCalc)(selected[0], rangeMaxDays, 'days') : to ? (0, _locale.parseDate)(to, format) : undefined,
|
|
148
149
|
selected: selected,
|
|
149
150
|
onChange: handleChange,
|
|
150
151
|
onFocus: isDesktop ? setFocus : undefined
|
|
@@ -155,6 +156,7 @@ var Calendar = function Calendar(_ref) {
|
|
|
155
156
|
}, !isDesktop && /*#__PURE__*/_react.default.createElement(_Calendar2.Weekdays, {
|
|
156
157
|
locale: locale
|
|
157
158
|
}), /*#__PURE__*/_react.default.createElement(_primitives.ScrollView, {
|
|
159
|
+
onScroll: onScroll,
|
|
158
160
|
horizontal: isDesktop,
|
|
159
161
|
className: (0, _helpers.styles)(_CalendarModule.default.scrollview, others.className)
|
|
160
162
|
}, Array.from({
|
|
@@ -191,6 +193,7 @@ Calendar.propTypes = {
|
|
|
191
193
|
to: _propTypes.default.string,
|
|
192
194
|
value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
193
195
|
onChange: _propTypes.default.func,
|
|
194
|
-
onFocus: _propTypes.default.func
|
|
196
|
+
onFocus: _propTypes.default.func,
|
|
197
|
+
onScroll: _propTypes.default.func
|
|
195
198
|
};
|
|
196
199
|
//# sourceMappingURL=Calendar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.js","names":["Calendar","disabledPast","format","from","months","locale","range","rangeMaxDays","to","value","onChange","onFocus","others","isDesktop","focus","setFocus","instance","setInstance","undefined","selected","setSelected","date","length","handleChange","next","getTime","handleMonth","month","Date","getFullYear","getMonth","instanceTS","todayMonthTS","disabledPrevious","disabledNext","props","style","scrollview","className","Array","empty","index","displayName","propTypes","captions","PropTypes","shape","disabledDates","arrayOf","string","bool","disabledWeekends","highlights","number","rangeMinDays","oneOfType","func"],"sources":["../../../src/components/Calendar/Calendar.jsx"],"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 setSelected(range ? [] : undefined);\n\n date = parseDate(date, format);\n if ((range && selected.length === 0) || !range) setInstance(getFirstDateOfMonth(date));\n\n setSelected(range ? [UTC(date), value[1] ? UTC(parseDate(value[1], format)) : undefined] : UTC(date));\n // eslint-disable-next-line react-hooks/exhaustive-deps\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\n const disabledNext = to && instanceTS >= getFirstDateOfMonth(parseDate(to, format)).getTime();\n\n const props = {\n ...others,\n disabledPast,\n focus,\n format,\n from: from ? parseDate(from, format) : undefined,\n locale,\n range,\n to
|
|
1
|
+
{"version":3,"file":"Calendar.js","names":["Calendar","disabledPast","format","from","months","locale","range","rangeMaxDays","to","value","onChange","onFocus","onScroll","others","isDesktop","focus","setFocus","instance","setInstance","undefined","selected","setSelected","date","length","handleChange","next","getTime","handleMonth","month","Date","getFullYear","getMonth","instanceTS","todayMonthTS","disabledPrevious","disabledNext","props","style","scrollview","className","Array","empty","index","displayName","propTypes","captions","PropTypes","shape","disabledDates","arrayOf","string","bool","disabledWeekends","highlights","number","rangeMinDays","oneOfType","func"],"sources":["../../../src/components/Calendar/Calendar.jsx"],"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 onScroll,\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 setSelected(range ? [] : undefined);\n\n date = parseDate(date, format);\n if ((range && selected.length === 0) || !range) setInstance(getFirstDateOfMonth(date));\n\n setSelected(range ? [UTC(date), value[1] ? UTC(parseDate(value[1], format)) : undefined] : UTC(date));\n // eslint-disable-next-line react-hooks/exhaustive-deps\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\n const disabledNext = to && instanceTS >= getFirstDateOfMonth(parseDate(to, format)).getTime();\n\n const props = {\n ...others,\n disabledPast,\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 onScroll={onScroll} 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 onScroll: PropTypes.func,\n};\n"],"mappings":"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"}
|
|
@@ -1,30 +1,32 @@
|
|
|
1
1
|
:root {
|
|
2
|
-
--mirai-ui-calendar-cell:
|
|
2
|
+
--mirai-ui-calendar-cell: var(--mirai-ui-space-XL);
|
|
3
3
|
--mirai-ui-calendar-highlight-color: var(--mirai-ui-accent);
|
|
4
|
-
--mirai-ui-calendar-
|
|
5
|
-
--mirai-ui-calendar-
|
|
4
|
+
--mirai-ui-calendar-padding: var(--mirai-ui-space-XS);
|
|
5
|
+
--mirai-ui-calendar-range-background: var(--mirai-ui-content-background);
|
|
6
6
|
--mirai-ui-calendar-selected-background: var(--mirai-ui-accent);
|
|
7
7
|
--mirai-ui-calendar-selected-color: var(--mirai-ui-base);
|
|
8
|
-
--mirai-ui-calendar-weekday-color: var(--mirai-ui-content-
|
|
8
|
+
--mirai-ui-calendar-weekday-color: var(--mirai-ui-content-light);
|
|
9
|
+
--mirai-ui-calendar-week-margin: 2px;
|
|
9
10
|
}
|
|
10
11
|
|
|
11
12
|
.scrollview {
|
|
12
|
-
max-height: calc(var(--mirai-ui-calendar-cell) * 13.
|
|
13
|
+
max-height: calc(var(--mirai-ui-calendar-cell) * 13.2);
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
.month {
|
|
16
|
-
padding: calc(var(--mirai-ui-space-XS) / 2);
|
|
17
|
-
width: calc(calc(var(--mirai-ui-calendar-cell) * 7) + var(--mirai-ui-space-XS));
|
|
18
17
|
justify-content: flex-start;
|
|
18
|
+
padding: var(--mirai-ui-calendar-padding);
|
|
19
|
+
width: calc(var(--mirai-ui-calendar-cell) * 7);
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
.header {
|
|
22
|
-
padding: var(--mirai-ui-
|
|
23
|
+
padding: var(--mirai-ui-calendar-padding);
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
.title {
|
|
26
27
|
flex: 1;
|
|
27
28
|
text-align: center;
|
|
29
|
+
text-transform: capitalize;
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
.cell {
|
|
@@ -36,11 +38,12 @@
|
|
|
36
38
|
}
|
|
37
39
|
|
|
38
40
|
.weekdays {
|
|
39
|
-
padding: var(--mirai-ui-
|
|
41
|
+
padding: var(--mirai-ui-calendar-padding) 0;
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
.weekday {
|
|
43
45
|
color: var(--mirai-ui-calendar-weekday-color);
|
|
46
|
+
text-transform: capitalize;
|
|
44
47
|
}
|
|
45
48
|
|
|
46
49
|
.day {
|
|
@@ -52,7 +55,7 @@
|
|
|
52
55
|
}
|
|
53
56
|
|
|
54
57
|
.dayRange:not(.daySelected) {
|
|
55
|
-
background-color: var(--mirai-ui-calendar-
|
|
58
|
+
background-color: var(--mirai-ui-calendar-range-background);
|
|
56
59
|
}
|
|
57
60
|
|
|
58
61
|
.daySelected {
|
|
@@ -66,7 +69,7 @@
|
|
|
66
69
|
}
|
|
67
70
|
|
|
68
71
|
.textDisabled {
|
|
69
|
-
color: var(--mirai-ui-content-
|
|
72
|
+
color: var(--mirai-ui-content-border);
|
|
70
73
|
}
|
|
71
74
|
|
|
72
75
|
.textHighlight {
|
|
@@ -79,6 +82,7 @@
|
|
|
79
82
|
|
|
80
83
|
.caption {
|
|
81
84
|
height: var(--mirai-ui-font-size-small);
|
|
85
|
+
line-height: var(--mirai-ui-font-size-small);
|
|
82
86
|
max-width: calc(var(--mirai-ui-calendar-cell) * 0.8);
|
|
83
87
|
overflow: hidden;
|
|
84
88
|
text-overflow: ellipsis;
|
|
@@ -86,7 +90,7 @@
|
|
|
86
90
|
}
|
|
87
91
|
|
|
88
92
|
.caption.empty {
|
|
89
|
-
color: var(--mirai-ui-content-
|
|
93
|
+
color: var(--mirai-ui-content-border);
|
|
90
94
|
}
|
|
91
95
|
|
|
92
96
|
@media only screen and (max-width: 600px) {
|
|
@@ -104,24 +108,20 @@
|
|
|
104
108
|
}
|
|
105
109
|
|
|
106
110
|
.weekdays {
|
|
107
|
-
border-bottom: solid 1px var(--mirai-ui-content-
|
|
111
|
+
border-bottom: solid 1px var(--mirai-ui-content-border);
|
|
108
112
|
}
|
|
109
113
|
}
|
|
110
114
|
|
|
111
115
|
@media only screen and (min-width: 600px) {
|
|
112
116
|
.dayTouchable:hover {
|
|
113
|
-
background-color: var(--mirai-ui-calendar-hover-background);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
.range .day:not(.daySelected):not(.dayRange):hover {
|
|
117
117
|
background-color: var(--mirai-ui-calendar-selected-background);
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
.
|
|
120
|
+
.dayTouchable:hover > * {
|
|
121
121
|
color: var(--mirai-ui-calendar-selected-color);
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
.month:not(:first-child) {
|
|
125
|
-
margin-left: calc(var(--mirai-ui-calendar-
|
|
125
|
+
margin-left: calc(var(--mirai-ui-calendar-padding) * 2);
|
|
126
126
|
}
|
|
127
127
|
}
|