@mantine/dates 8.0.0-alpha.3 → 8.0.1

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 (52) hide show
  1. package/cjs/components/DateInput/DateInput.cjs.map +1 -1
  2. package/cjs/components/DatePicker/DatePicker.cjs +18 -2
  3. package/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
  4. package/cjs/components/SpinInput/SpinInput.cjs +3 -2
  5. package/cjs/components/SpinInput/SpinInput.cjs.map +1 -1
  6. package/cjs/components/TimeInput/TimeInput.cjs +2 -1
  7. package/cjs/components/TimeInput/TimeInput.cjs.map +1 -1
  8. package/cjs/components/TimePicker/TimeControlsList/TimeControlsList.cjs +1 -1
  9. package/cjs/components/TimePicker/TimeControlsList/TimeControlsList.cjs.map +1 -1
  10. package/cjs/utils/to-date-string/to-date-string.cjs +2 -2
  11. package/cjs/utils/to-date-string/to-date-string.cjs.map +1 -1
  12. package/esm/components/DateInput/DateInput.mjs.map +1 -1
  13. package/esm/components/DatePicker/DatePicker.mjs +14 -2
  14. package/esm/components/DatePicker/DatePicker.mjs.map +1 -1
  15. package/esm/components/SpinInput/SpinInput.mjs +3 -2
  16. package/esm/components/SpinInput/SpinInput.mjs.map +1 -1
  17. package/esm/components/TimeInput/TimeInput.mjs +2 -1
  18. package/esm/components/TimeInput/TimeInput.mjs.map +1 -1
  19. package/esm/components/TimePicker/TimeControlsList/TimeControlsList.mjs +1 -1
  20. package/esm/components/TimePicker/TimeControlsList/TimeControlsList.mjs.map +1 -1
  21. package/esm/utils/to-date-string/to-date-string.mjs +2 -2
  22. package/esm/utils/to-date-string/to-date-string.mjs.map +1 -1
  23. package/lib/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.d.ts +1 -1
  24. package/lib/components/DateInput/DateInput.d.ts +1 -1
  25. package/package.json +3 -3
  26. package/styles.css +2 -2
  27. package/styles.layer.css +2 -2
  28. package/cjs/utils/get-default-clamped-date.cjs +0 -26
  29. package/cjs/utils/get-default-clamped-date.cjs.map +0 -1
  30. package/cjs/utils/get-formatted-date.cjs +0 -41
  31. package/cjs/utils/get-formatted-date.cjs.map +0 -1
  32. package/cjs/utils/get-timezone-offset.cjs +0 -24
  33. package/cjs/utils/get-timezone-offset.cjs.map +0 -1
  34. package/cjs/utils/handle-control-key-down.cjs +0 -158
  35. package/cjs/utils/handle-control-key-down.cjs.map +0 -1
  36. package/cjs/utils/shift-timezone.cjs +0 -35
  37. package/cjs/utils/shift-timezone.cjs.map +0 -1
  38. package/esm/utils/get-default-clamped-date.mjs +0 -20
  39. package/esm/utils/get-default-clamped-date.mjs.map +0 -1
  40. package/esm/utils/get-formatted-date.mjs +0 -34
  41. package/esm/utils/get-formatted-date.mjs.map +0 -1
  42. package/esm/utils/get-timezone-offset.mjs +0 -16
  43. package/esm/utils/get-timezone-offset.mjs.map +0 -1
  44. package/esm/utils/handle-control-key-down.mjs +0 -156
  45. package/esm/utils/handle-control-key-down.mjs.map +0 -1
  46. package/esm/utils/shift-timezone.mjs +0 -29
  47. package/esm/utils/shift-timezone.mjs.map +0 -1
  48. package/lib/utils/get-default-clamped-date.d.ts +0 -7
  49. package/lib/utils/get-formatted-date.d.ts +0 -15
  50. package/lib/utils/get-timezone-offset.d.ts +0 -1
  51. package/lib/utils/handle-control-key-down.d.ts +0 -11
  52. package/lib/utils/shift-timezone.d.ts +0 -4
package/styles.layer.css CHANGED
@@ -270,7 +270,7 @@
270
270
  }
271
271
 
272
272
  .m_396ce5cb:where(:disabled, [data-disabled]) {
273
- color: var(--mantine-color-dimmed);
273
+ color: var(--mantine-color-disabled-color);
274
274
  cursor: not-allowed;
275
275
  opacity: 0.5;
276
276
  }
@@ -415,7 +415,7 @@
415
415
  }
416
416
 
417
417
  .m_dc6a3c71:where(:disabled, [data-disabled]) {
418
- color: var(--mantine-color-dimmed);
418
+ color: var(--mantine-color-disabled-color);
419
419
  cursor: not-allowed;
420
420
  opacity: 0.5;
421
421
  }
@@ -1,26 +0,0 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- var dayjs = require('dayjs');
5
- var shiftTimezone = require('./shift-timezone.cjs');
6
-
7
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
-
9
- var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
10
-
11
- function getDefaultClampedDate({ minDate, maxDate, timezone }) {
12
- const today = shiftTimezone.shiftTimezone("add", /* @__PURE__ */ new Date(), timezone);
13
- if (!minDate && !maxDate) {
14
- return today;
15
- }
16
- if (minDate && dayjs__default.default(today).isBefore(minDate)) {
17
- return minDate;
18
- }
19
- if (maxDate && dayjs__default.default(today).isAfter(maxDate)) {
20
- return maxDate;
21
- }
22
- return today;
23
- }
24
-
25
- exports.getDefaultClampedDate = getDefaultClampedDate;
26
- //# sourceMappingURL=get-default-clamped-date.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-default-clamped-date.cjs","sources":["../../src/utils/get-default-clamped-date.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { shiftTimezone } from './shift-timezone';\n\ninterface GetDefaultClampedDate {\n minDate: Date | undefined;\n maxDate: Date | undefined;\n timezone?: string;\n}\n\nexport function getDefaultClampedDate({ minDate, maxDate, timezone }: GetDefaultClampedDate) {\n const today = shiftTimezone('add', new Date(), timezone);\n\n if (!minDate && !maxDate) {\n return today;\n }\n\n if (minDate && dayjs(today).isBefore(minDate)) {\n return minDate;\n }\n\n if (maxDate && dayjs(today).isAfter(maxDate)) {\n return maxDate;\n }\n\n return today;\n}\n"],"names":["shiftTimezone","dayjs"],"mappings":";;;;;;;;;;AASO,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,UAAmC,CAAA,CAAA,CAAA;AAC3F,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA;AAEvD,CAAA,CAAI,IAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAC,OAAS,CAAA,CAAA,CAAA;AACxB,CAAA,CAAA,CAAA,CAAO,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAGT,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAO,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAGT,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAWA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAO,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAGT,CAAA,CAAO,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA;;"}
@@ -1,41 +0,0 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- var dayjs = require('dayjs');
5
-
6
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
-
8
- var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
9
-
10
- function defaultDateFormatter({
11
- type,
12
- date,
13
- locale,
14
- format,
15
- labelSeparator
16
- }) {
17
- const formatDate = (value) => dayjs__default.default(value).locale(locale).format(format);
18
- if (type === "default") {
19
- return date === null ? "" : formatDate(date);
20
- }
21
- if (type === "multiple") {
22
- return date.map(formatDate).join(", ");
23
- }
24
- if (type === "range" && Array.isArray(date)) {
25
- if (date[0] && date[1]) {
26
- return `${formatDate(date[0])} ${labelSeparator} ${formatDate(date[1])}`;
27
- }
28
- if (date[0]) {
29
- return `${formatDate(date[0])} ${labelSeparator} `;
30
- }
31
- return "";
32
- }
33
- return "";
34
- }
35
- function getFormattedDate({ formatter, ...others }) {
36
- return (formatter || defaultDateFormatter)(others);
37
- }
38
-
39
- exports.defaultDateFormatter = defaultDateFormatter;
40
- exports.getFormattedDate = getFormattedDate;
41
- //# sourceMappingURL=get-formatted-date.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-formatted-date.cjs","sources":["../../src/utils/get-formatted-date.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { DatePickerType, DatePickerValue } from '../types';\n\ninterface DateFormatterInput {\n type: DatePickerType;\n date: DatePickerValue<DatePickerType>;\n locale: string;\n format: string;\n labelSeparator: string;\n}\n\nexport type DateFormatter = (input: DateFormatterInput) => string;\n\nexport function defaultDateFormatter({\n type,\n date,\n locale,\n format,\n labelSeparator,\n}: DateFormatterInput) {\n const formatDate = (value: Date) => dayjs(value).locale(locale).format(format);\n\n if (type === 'default') {\n return date === null ? '' : formatDate(date as Date);\n }\n\n if (type === 'multiple') {\n return (date as Date[]).map(formatDate).join(', ');\n }\n\n if (type === 'range' && Array.isArray(date)) {\n if (date[0] && date[1]) {\n return `${formatDate(date[0])} ${labelSeparator} ${formatDate(date[1])}`;\n }\n\n if (date[0]) {\n return `${formatDate(date[0])} ${labelSeparator} `;\n }\n\n return '';\n }\n\n return '';\n}\n\ninterface GetFormattedDateInput extends DateFormatterInput {\n formatter?: DateFormatter;\n}\n\nexport function getFormattedDate({ formatter, ...others }: GetFormattedDateInput) {\n return (formatter || defaultDateFormatter)(others);\n}\n"],"names":["dayjs"],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- var dayjs = require('dayjs');
5
- var timezonePlugin = require('dayjs/plugin/timezone.js');
6
- var utcPlugin = require('dayjs/plugin/utc.js');
7
-
8
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
-
10
- var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
11
- var timezonePlugin__default = /*#__PURE__*/_interopDefault(timezonePlugin);
12
- var utcPlugin__default = /*#__PURE__*/_interopDefault(utcPlugin);
13
-
14
- dayjs__default.default.extend(utcPlugin__default.default);
15
- dayjs__default.default.extend(timezonePlugin__default.default);
16
- function getTimezoneOffset(date, timezone) {
17
- if (timezone) {
18
- return dayjs__default.default(date).tz(timezone).utcOffset() + date.getTimezoneOffset();
19
- }
20
- return 0;
21
- }
22
-
23
- exports.getTimezoneOffset = getTimezoneOffset;
24
- //# sourceMappingURL=get-timezone-offset.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-timezone-offset.cjs","sources":["../../src/utils/get-timezone-offset.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport timezonePlugin from 'dayjs/plugin/timezone.js';\nimport utcPlugin from 'dayjs/plugin/utc.js';\n\ndayjs.extend(utcPlugin);\ndayjs.extend(timezonePlugin);\n\nexport function getTimezoneOffset(date: Date, timezone?: string) {\n if (timezone) {\n return dayjs(date).tz(timezone).utcOffset() + date.getTimezoneOffset();\n }\n return 0;\n}\n"],"names":["dayjs","utcPlugin","timezonePlugin"],"mappings":";;;;;;;;;;;;;AAIAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,EAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA;AACtBD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,EAAOE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CAAA;AAEX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,MAAY,QAAmB,CAAA,CAAA,CAAA;AAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,QAAU,CAAA,CAAA,CAAA;AACZ,CAAA,CAAA,CAAA,CAAO,OAAAF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAI,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA,CAAG,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,GAAA,CAAA,CAAA,CAAA,CAAA,CAAK,iBAAkB,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAEvE,CAAA,CAAO,OAAA,CAAA,CAAA;AACT,CAAA;;"}
@@ -1,158 +0,0 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- function getNextIndex({ direction, levelIndex, rowIndex, cellIndex, size }) {
5
- switch (direction) {
6
- case "up":
7
- if (levelIndex === 0 && rowIndex === 0) {
8
- return null;
9
- }
10
- if (rowIndex === 0) {
11
- return {
12
- levelIndex: levelIndex - 1,
13
- rowIndex: cellIndex <= size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1 ? size[levelIndex - 1].length - 1 : size[levelIndex - 1].length - 2,
14
- cellIndex
15
- };
16
- }
17
- return {
18
- levelIndex,
19
- rowIndex: rowIndex - 1,
20
- cellIndex
21
- };
22
- case "down":
23
- if (rowIndex === size[levelIndex].length - 1) {
24
- return {
25
- levelIndex: levelIndex + 1,
26
- rowIndex: 0,
27
- cellIndex
28
- };
29
- }
30
- if (rowIndex === size[levelIndex].length - 2 && cellIndex >= size[levelIndex][size[levelIndex].length - 1]) {
31
- return {
32
- levelIndex: levelIndex + 1,
33
- rowIndex: 0,
34
- cellIndex
35
- };
36
- }
37
- return {
38
- levelIndex,
39
- rowIndex: rowIndex + 1,
40
- cellIndex
41
- };
42
- case "left":
43
- if (levelIndex === 0 && rowIndex === 0 && cellIndex === 0) {
44
- return null;
45
- }
46
- if (rowIndex === 0 && cellIndex === 0) {
47
- return {
48
- levelIndex: levelIndex - 1,
49
- rowIndex: size[levelIndex - 1].length - 1,
50
- cellIndex: size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1
51
- };
52
- }
53
- if (cellIndex === 0) {
54
- return {
55
- levelIndex,
56
- rowIndex: rowIndex - 1,
57
- cellIndex: size[levelIndex][rowIndex - 1] - 1
58
- };
59
- }
60
- return {
61
- levelIndex,
62
- rowIndex,
63
- cellIndex: cellIndex - 1
64
- };
65
- case "right":
66
- if (rowIndex === size[levelIndex].length - 1 && cellIndex === size[levelIndex][rowIndex] - 1) {
67
- return {
68
- levelIndex: levelIndex + 1,
69
- rowIndex: 0,
70
- cellIndex: 0
71
- };
72
- }
73
- if (cellIndex === size[levelIndex][rowIndex] - 1) {
74
- return {
75
- levelIndex,
76
- rowIndex: rowIndex + 1,
77
- cellIndex: 0
78
- };
79
- }
80
- return {
81
- levelIndex,
82
- rowIndex,
83
- cellIndex: cellIndex + 1
84
- };
85
- default:
86
- return { levelIndex, rowIndex, cellIndex };
87
- }
88
- }
89
- function focusOnNextFocusableControl({
90
- controlsRef,
91
- direction,
92
- levelIndex,
93
- rowIndex,
94
- cellIndex,
95
- size
96
- }) {
97
- const nextIndex = getNextIndex({ direction, size, rowIndex, cellIndex, levelIndex });
98
- if (!nextIndex) {
99
- return;
100
- }
101
- const controlToFocus = controlsRef.current?.[nextIndex.levelIndex]?.[nextIndex.rowIndex]?.[nextIndex.cellIndex];
102
- if (!controlToFocus) {
103
- return;
104
- }
105
- if (controlToFocus.disabled || controlToFocus.getAttribute("data-hidden") || controlToFocus.getAttribute("data-outside")) {
106
- focusOnNextFocusableControl({
107
- controlsRef,
108
- direction,
109
- levelIndex: nextIndex.levelIndex,
110
- cellIndex: nextIndex.cellIndex,
111
- rowIndex: nextIndex.rowIndex,
112
- size
113
- });
114
- } else {
115
- controlToFocus.focus();
116
- }
117
- }
118
- function getDirection(key) {
119
- switch (key) {
120
- case "ArrowDown":
121
- return "down";
122
- case "ArrowUp":
123
- return "up";
124
- case "ArrowRight":
125
- return "right";
126
- case "ArrowLeft":
127
- return "left";
128
- default:
129
- return null;
130
- }
131
- }
132
- function getControlsSize(controlsRef) {
133
- return controlsRef.current?.map((column) => column.map((row) => row.length));
134
- }
135
- function handleControlKeyDown({
136
- controlsRef,
137
- levelIndex,
138
- rowIndex,
139
- cellIndex,
140
- event
141
- }) {
142
- const direction = getDirection(event.key);
143
- if (direction) {
144
- event.preventDefault();
145
- const size = getControlsSize(controlsRef);
146
- focusOnNextFocusableControl({
147
- controlsRef,
148
- direction,
149
- levelIndex,
150
- rowIndex,
151
- cellIndex,
152
- size
153
- });
154
- }
155
- }
156
-
157
- exports.handleControlKeyDown = handleControlKeyDown;
158
- //# sourceMappingURL=handle-control-key-down.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handle-control-key-down.cjs","sources":["../../src/utils/handle-control-key-down.ts"],"sourcesContent":["import { RefObject } from 'react';\n\ntype ControlsRef = RefObject<HTMLButtonElement[][][]>;\ntype Direction = 'up' | 'down' | 'left' | 'right';\n\ntype NextIndexInput = Omit<ShiftFocusInput, 'controlsRef'>;\n\nfunction getNextIndex({ direction, levelIndex, rowIndex, cellIndex, size }: NextIndexInput) {\n switch (direction) {\n case 'up':\n if (levelIndex === 0 && rowIndex === 0) {\n return null;\n }\n if (rowIndex === 0) {\n return {\n levelIndex: levelIndex - 1,\n rowIndex:\n cellIndex <= size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1\n ? size[levelIndex - 1].length - 1\n : size[levelIndex - 1].length - 2,\n cellIndex,\n };\n }\n return {\n levelIndex,\n rowIndex: rowIndex - 1,\n cellIndex,\n };\n\n case 'down':\n if (rowIndex === size[levelIndex].length - 1) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex,\n };\n }\n if (\n rowIndex === size[levelIndex].length - 2 &&\n cellIndex >= size[levelIndex][size[levelIndex].length - 1]\n ) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex,\n };\n }\n return {\n levelIndex,\n rowIndex: rowIndex + 1,\n cellIndex,\n };\n\n case 'left':\n if (levelIndex === 0 && rowIndex === 0 && cellIndex === 0) {\n return null;\n }\n if (rowIndex === 0 && cellIndex === 0) {\n return {\n levelIndex: levelIndex - 1,\n rowIndex: size[levelIndex - 1].length - 1,\n cellIndex: size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1,\n };\n }\n if (cellIndex === 0) {\n return {\n levelIndex,\n rowIndex: rowIndex - 1,\n cellIndex: size[levelIndex][rowIndex - 1] - 1,\n };\n }\n return {\n levelIndex,\n rowIndex,\n cellIndex: cellIndex - 1,\n };\n\n case 'right':\n if (\n rowIndex === size[levelIndex].length - 1 &&\n cellIndex === size[levelIndex][rowIndex] - 1\n ) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex: 0,\n };\n }\n if (cellIndex === size[levelIndex][rowIndex] - 1) {\n return {\n levelIndex,\n rowIndex: rowIndex + 1,\n cellIndex: 0,\n };\n }\n return {\n levelIndex,\n rowIndex,\n cellIndex: cellIndex + 1,\n };\n\n default:\n return { levelIndex, rowIndex, cellIndex };\n }\n}\n\ninterface ShiftFocusInput {\n controlsRef: ControlsRef;\n direction: Direction;\n levelIndex: number;\n rowIndex: number;\n cellIndex: number;\n size: number[][];\n}\n\nfunction focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex,\n rowIndex,\n cellIndex,\n size,\n}: ShiftFocusInput) {\n const nextIndex = getNextIndex({ direction, size, rowIndex, cellIndex, levelIndex });\n\n if (!nextIndex) {\n return;\n }\n\n const controlToFocus =\n controlsRef.current?.[nextIndex.levelIndex]?.[nextIndex.rowIndex]?.[nextIndex.cellIndex];\n\n if (!controlToFocus) {\n return;\n }\n\n if (\n controlToFocus.disabled ||\n controlToFocus.getAttribute('data-hidden') ||\n controlToFocus.getAttribute('data-outside')\n ) {\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex: nextIndex.levelIndex,\n cellIndex: nextIndex.cellIndex,\n rowIndex: nextIndex.rowIndex,\n size,\n });\n } else {\n controlToFocus.focus();\n }\n}\n\nfunction getDirection(key: KeyboardEvent['key']): Direction {\n switch (key) {\n case 'ArrowDown':\n return 'down';\n case 'ArrowUp':\n return 'up';\n case 'ArrowRight':\n return 'right';\n case 'ArrowLeft':\n return 'left';\n default:\n return null!;\n }\n}\n\nfunction getControlsSize(controlsRef: ControlsRef) {\n return controlsRef.current?.map((column) => column.map((row) => row.length));\n}\n\ninterface HandleControlKeyDownInput {\n controlsRef: ControlsRef;\n levelIndex: number;\n rowIndex: number;\n cellIndex: number;\n event: React.KeyboardEvent<HTMLButtonElement>;\n}\n\nexport function handleControlKeyDown({\n controlsRef,\n levelIndex,\n rowIndex,\n cellIndex,\n event,\n}: HandleControlKeyDownInput) {\n const direction = getDirection(event.key);\n\n if (direction) {\n event.preventDefault();\n\n const size = getControlsSize(controlsRef)!;\n\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex,\n rowIndex,\n cellIndex,\n size,\n });\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- var dayjs = require('dayjs');
5
- var getTimezoneOffset = require('./get-timezone-offset.cjs');
6
-
7
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
-
9
- var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
10
-
11
- const updateTimezone = (date, timezone, direction) => {
12
- if (!date) {
13
- return null;
14
- }
15
- if (!timezone) {
16
- return date;
17
- }
18
- let offset = getTimezoneOffset.getTimezoneOffset(date, timezone);
19
- if (direction === "remove") {
20
- offset *= -1;
21
- }
22
- return dayjs__default.default(date).add(offset, "minutes").toDate();
23
- };
24
- function shiftTimezone(direction, date, timezone, disabled) {
25
- if (disabled || !date) {
26
- return date;
27
- }
28
- if (Array.isArray(date)) {
29
- return date.map((d) => updateTimezone(d, timezone, direction));
30
- }
31
- return updateTimezone(date, timezone, direction);
32
- }
33
-
34
- exports.shiftTimezone = shiftTimezone;
35
- //# sourceMappingURL=shift-timezone.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shift-timezone.cjs","sources":["../../src/utils/shift-timezone.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { DatesRangeValue, DateValue } from '../types';\nimport { getTimezoneOffset } from './get-timezone-offset';\n\ntype TimeShiftDirection = 'add' | 'remove';\n\nconst updateTimezone = (\n date: DateValue | undefined,\n timezone?: string,\n direction?: TimeShiftDirection\n): DateValue => {\n if (!date) {\n return null;\n }\n if (!timezone) {\n return date;\n }\n let offset = getTimezoneOffset(date, timezone);\n if (direction === 'remove') {\n offset *= -1;\n }\n return dayjs(date).add(offset, 'minutes').toDate();\n};\n\nexport function shiftTimezone<T extends DateValue | Date[] | DatesRangeValue | undefined>(\n direction: TimeShiftDirection,\n date: T,\n timezone?: string,\n disabled?: boolean\n): T {\n if (disabled || !date) {\n return date;\n }\n if (Array.isArray(date)) {\n return date.map((d) => updateTimezone(d, timezone, direction)) as T;\n }\n return updateTimezone(date, timezone, direction) as T;\n}\n"],"names":["getTimezoneOffset","dayjs"],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- 'use client';
2
- import dayjs from 'dayjs';
3
- import { shiftTimezone } from './shift-timezone.mjs';
4
-
5
- function getDefaultClampedDate({ minDate, maxDate, timezone }) {
6
- const today = shiftTimezone("add", /* @__PURE__ */ new Date(), timezone);
7
- if (!minDate && !maxDate) {
8
- return today;
9
- }
10
- if (minDate && dayjs(today).isBefore(minDate)) {
11
- return minDate;
12
- }
13
- if (maxDate && dayjs(today).isAfter(maxDate)) {
14
- return maxDate;
15
- }
16
- return today;
17
- }
18
-
19
- export { getDefaultClampedDate };
20
- //# sourceMappingURL=get-default-clamped-date.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-default-clamped-date.mjs","sources":["../../src/utils/get-default-clamped-date.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { shiftTimezone } from './shift-timezone';\n\ninterface GetDefaultClampedDate {\n minDate: Date | undefined;\n maxDate: Date | undefined;\n timezone?: string;\n}\n\nexport function getDefaultClampedDate({ minDate, maxDate, timezone }: GetDefaultClampedDate) {\n const today = shiftTimezone('add', new Date(), timezone);\n\n if (!minDate && !maxDate) {\n return today;\n }\n\n if (minDate && dayjs(today).isBefore(minDate)) {\n return minDate;\n }\n\n if (maxDate && dayjs(today).isAfter(maxDate)) {\n return maxDate;\n }\n\n return today;\n}\n"],"names":[],"mappings":";;;;AASO,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,UAAmC,CAAA,CAAA,CAAA;AAC3F,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA;AAEvD,CAAA,CAAI,IAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAC,OAAS,CAAA,CAAA,CAAA;AACxB,CAAA,CAAA,CAAA,CAAO,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAGT,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAO,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAGT,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAO,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAGT,CAAA,CAAO,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA;;"}
@@ -1,34 +0,0 @@
1
- 'use client';
2
- import dayjs from 'dayjs';
3
-
4
- function defaultDateFormatter({
5
- type,
6
- date,
7
- locale,
8
- format,
9
- labelSeparator
10
- }) {
11
- const formatDate = (value) => dayjs(value).locale(locale).format(format);
12
- if (type === "default") {
13
- return date === null ? "" : formatDate(date);
14
- }
15
- if (type === "multiple") {
16
- return date.map(formatDate).join(", ");
17
- }
18
- if (type === "range" && Array.isArray(date)) {
19
- if (date[0] && date[1]) {
20
- return `${formatDate(date[0])} ${labelSeparator} ${formatDate(date[1])}`;
21
- }
22
- if (date[0]) {
23
- return `${formatDate(date[0])} ${labelSeparator} `;
24
- }
25
- return "";
26
- }
27
- return "";
28
- }
29
- function getFormattedDate({ formatter, ...others }) {
30
- return (formatter || defaultDateFormatter)(others);
31
- }
32
-
33
- export { defaultDateFormatter, getFormattedDate };
34
- //# sourceMappingURL=get-formatted-date.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-formatted-date.mjs","sources":["../../src/utils/get-formatted-date.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { DatePickerType, DatePickerValue } from '../types';\n\ninterface DateFormatterInput {\n type: DatePickerType;\n date: DatePickerValue<DatePickerType>;\n locale: string;\n format: string;\n labelSeparator: string;\n}\n\nexport type DateFormatter = (input: DateFormatterInput) => string;\n\nexport function defaultDateFormatter({\n type,\n date,\n locale,\n format,\n labelSeparator,\n}: DateFormatterInput) {\n const formatDate = (value: Date) => dayjs(value).locale(locale).format(format);\n\n if (type === 'default') {\n return date === null ? '' : formatDate(date as Date);\n }\n\n if (type === 'multiple') {\n return (date as Date[]).map(formatDate).join(', ');\n }\n\n if (type === 'range' && Array.isArray(date)) {\n if (date[0] && date[1]) {\n return `${formatDate(date[0])} ${labelSeparator} ${formatDate(date[1])}`;\n }\n\n if (date[0]) {\n return `${formatDate(date[0])} ${labelSeparator} `;\n }\n\n return '';\n }\n\n return '';\n}\n\ninterface GetFormattedDateInput extends DateFormatterInput {\n formatter?: DateFormatter;\n}\n\nexport function getFormattedDate({ formatter, ...others }: GetFormattedDateInput) {\n return (formatter || defaultDateFormatter)(others);\n}\n"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- 'use client';
2
- import dayjs from 'dayjs';
3
- import timezonePlugin from 'dayjs/plugin/timezone.js';
4
- import utcPlugin from 'dayjs/plugin/utc.js';
5
-
6
- dayjs.extend(utcPlugin);
7
- dayjs.extend(timezonePlugin);
8
- function getTimezoneOffset(date, timezone) {
9
- if (timezone) {
10
- return dayjs(date).tz(timezone).utcOffset() + date.getTimezoneOffset();
11
- }
12
- return 0;
13
- }
14
-
15
- export { getTimezoneOffset };
16
- //# sourceMappingURL=get-timezone-offset.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-timezone-offset.mjs","sources":["../../src/utils/get-timezone-offset.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport timezonePlugin from 'dayjs/plugin/timezone.js';\nimport utcPlugin from 'dayjs/plugin/utc.js';\n\ndayjs.extend(utcPlugin);\ndayjs.extend(timezonePlugin);\n\nexport function getTimezoneOffset(date: Date, timezone?: string) {\n if (timezone) {\n return dayjs(date).tz(timezone).utcOffset() + date.getTimezoneOffset();\n }\n return 0;\n}\n"],"names":[],"mappings":";;;;;AAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA;AAEX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,MAAY,QAAmB,CAAA,CAAA,CAAA;AAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,QAAU,CAAA,CAAA,CAAA;AACZ,CAAA,CAAA,CAAA,CAAO,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAI,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA,CAAG,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,GAAA,CAAA,CAAA,CAAA,CAAA,CAAK,iBAAkB,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAEvE,CAAA,CAAO,OAAA,CAAA,CAAA;AACT,CAAA;;"}
@@ -1,156 +0,0 @@
1
- 'use client';
2
- function getNextIndex({ direction, levelIndex, rowIndex, cellIndex, size }) {
3
- switch (direction) {
4
- case "up":
5
- if (levelIndex === 0 && rowIndex === 0) {
6
- return null;
7
- }
8
- if (rowIndex === 0) {
9
- return {
10
- levelIndex: levelIndex - 1,
11
- rowIndex: cellIndex <= size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1 ? size[levelIndex - 1].length - 1 : size[levelIndex - 1].length - 2,
12
- cellIndex
13
- };
14
- }
15
- return {
16
- levelIndex,
17
- rowIndex: rowIndex - 1,
18
- cellIndex
19
- };
20
- case "down":
21
- if (rowIndex === size[levelIndex].length - 1) {
22
- return {
23
- levelIndex: levelIndex + 1,
24
- rowIndex: 0,
25
- cellIndex
26
- };
27
- }
28
- if (rowIndex === size[levelIndex].length - 2 && cellIndex >= size[levelIndex][size[levelIndex].length - 1]) {
29
- return {
30
- levelIndex: levelIndex + 1,
31
- rowIndex: 0,
32
- cellIndex
33
- };
34
- }
35
- return {
36
- levelIndex,
37
- rowIndex: rowIndex + 1,
38
- cellIndex
39
- };
40
- case "left":
41
- if (levelIndex === 0 && rowIndex === 0 && cellIndex === 0) {
42
- return null;
43
- }
44
- if (rowIndex === 0 && cellIndex === 0) {
45
- return {
46
- levelIndex: levelIndex - 1,
47
- rowIndex: size[levelIndex - 1].length - 1,
48
- cellIndex: size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1
49
- };
50
- }
51
- if (cellIndex === 0) {
52
- return {
53
- levelIndex,
54
- rowIndex: rowIndex - 1,
55
- cellIndex: size[levelIndex][rowIndex - 1] - 1
56
- };
57
- }
58
- return {
59
- levelIndex,
60
- rowIndex,
61
- cellIndex: cellIndex - 1
62
- };
63
- case "right":
64
- if (rowIndex === size[levelIndex].length - 1 && cellIndex === size[levelIndex][rowIndex] - 1) {
65
- return {
66
- levelIndex: levelIndex + 1,
67
- rowIndex: 0,
68
- cellIndex: 0
69
- };
70
- }
71
- if (cellIndex === size[levelIndex][rowIndex] - 1) {
72
- return {
73
- levelIndex,
74
- rowIndex: rowIndex + 1,
75
- cellIndex: 0
76
- };
77
- }
78
- return {
79
- levelIndex,
80
- rowIndex,
81
- cellIndex: cellIndex + 1
82
- };
83
- default:
84
- return { levelIndex, rowIndex, cellIndex };
85
- }
86
- }
87
- function focusOnNextFocusableControl({
88
- controlsRef,
89
- direction,
90
- levelIndex,
91
- rowIndex,
92
- cellIndex,
93
- size
94
- }) {
95
- const nextIndex = getNextIndex({ direction, size, rowIndex, cellIndex, levelIndex });
96
- if (!nextIndex) {
97
- return;
98
- }
99
- const controlToFocus = controlsRef.current?.[nextIndex.levelIndex]?.[nextIndex.rowIndex]?.[nextIndex.cellIndex];
100
- if (!controlToFocus) {
101
- return;
102
- }
103
- if (controlToFocus.disabled || controlToFocus.getAttribute("data-hidden") || controlToFocus.getAttribute("data-outside")) {
104
- focusOnNextFocusableControl({
105
- controlsRef,
106
- direction,
107
- levelIndex: nextIndex.levelIndex,
108
- cellIndex: nextIndex.cellIndex,
109
- rowIndex: nextIndex.rowIndex,
110
- size
111
- });
112
- } else {
113
- controlToFocus.focus();
114
- }
115
- }
116
- function getDirection(key) {
117
- switch (key) {
118
- case "ArrowDown":
119
- return "down";
120
- case "ArrowUp":
121
- return "up";
122
- case "ArrowRight":
123
- return "right";
124
- case "ArrowLeft":
125
- return "left";
126
- default:
127
- return null;
128
- }
129
- }
130
- function getControlsSize(controlsRef) {
131
- return controlsRef.current?.map((column) => column.map((row) => row.length));
132
- }
133
- function handleControlKeyDown({
134
- controlsRef,
135
- levelIndex,
136
- rowIndex,
137
- cellIndex,
138
- event
139
- }) {
140
- const direction = getDirection(event.key);
141
- if (direction) {
142
- event.preventDefault();
143
- const size = getControlsSize(controlsRef);
144
- focusOnNextFocusableControl({
145
- controlsRef,
146
- direction,
147
- levelIndex,
148
- rowIndex,
149
- cellIndex,
150
- size
151
- });
152
- }
153
- }
154
-
155
- export { handleControlKeyDown };
156
- //# sourceMappingURL=handle-control-key-down.mjs.map