@mantine/dates 6.0.4 → 6.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 (56) hide show
  1. package/cjs/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.js +18 -0
  2. package/cjs/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.js.map +1 -1
  3. package/cjs/components/DateInput/DateInput.js +1 -1
  4. package/cjs/components/DateInput/DateInput.js.map +1 -1
  5. package/cjs/components/DecadeLevelGroup/DecadeLevelGroup.js +10 -11
  6. package/cjs/components/DecadeLevelGroup/DecadeLevelGroup.js.map +1 -1
  7. package/cjs/components/Month/Month.js +1 -1
  8. package/cjs/components/Month/Month.js.map +1 -1
  9. package/cjs/components/Month/get-date-in-tab-order/get-date-in-tab-order.js +3 -2
  10. package/cjs/components/Month/get-date-in-tab-order/get-date-in-tab-order.js.map +1 -1
  11. package/cjs/components/MonthLevelGroup/MonthLevelGroup.js +4 -5
  12. package/cjs/components/MonthLevelGroup/MonthLevelGroup.js.map +1 -1
  13. package/cjs/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.js +2 -2
  14. package/cjs/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.js.map +1 -1
  15. package/cjs/components/YearLevelGroup/YearLevelGroup.js +10 -11
  16. package/cjs/components/YearLevelGroup/YearLevelGroup.js.map +1 -1
  17. package/cjs/hooks/use-uncontrolled-dates/use-uncontrolled-dates.js +32 -2
  18. package/cjs/hooks/use-uncontrolled-dates/use-uncontrolled-dates.js.map +1 -1
  19. package/cjs/utils/handle-control-key-down.js +138 -56
  20. package/cjs/utils/handle-control-key-down.js.map +1 -1
  21. package/esm/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.js +18 -0
  22. package/esm/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.js.map +1 -1
  23. package/esm/components/DateInput/DateInput.js +1 -1
  24. package/esm/components/DateInput/DateInput.js.map +1 -1
  25. package/esm/components/DecadeLevelGroup/DecadeLevelGroup.js +10 -11
  26. package/esm/components/DecadeLevelGroup/DecadeLevelGroup.js.map +1 -1
  27. package/esm/components/Month/Month.js +1 -1
  28. package/esm/components/Month/Month.js.map +1 -1
  29. package/esm/components/Month/get-date-in-tab-order/get-date-in-tab-order.js +3 -2
  30. package/esm/components/Month/get-date-in-tab-order/get-date-in-tab-order.js.map +1 -1
  31. package/esm/components/MonthLevelGroup/MonthLevelGroup.js +4 -5
  32. package/esm/components/MonthLevelGroup/MonthLevelGroup.js.map +1 -1
  33. package/esm/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.js +2 -2
  34. package/esm/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.js.map +1 -1
  35. package/esm/components/YearLevelGroup/YearLevelGroup.js +10 -11
  36. package/esm/components/YearLevelGroup/YearLevelGroup.js.map +1 -1
  37. package/esm/hooks/use-uncontrolled-dates/use-uncontrolled-dates.js +32 -2
  38. package/esm/hooks/use-uncontrolled-dates/use-uncontrolled-dates.js.map +1 -1
  39. package/esm/utils/handle-control-key-down.js +138 -56
  40. package/esm/utils/handle-control-key-down.js.map +1 -1
  41. package/lib/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.d.ts +7 -1
  42. package/lib/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.d.ts.map +1 -1
  43. package/lib/components/DateInput/DateInput.d.ts +9 -1
  44. package/lib/components/DateInput/DateInput.d.ts.map +1 -1
  45. package/lib/components/DecadeLevelGroup/DecadeLevelGroup.d.ts.map +1 -1
  46. package/lib/components/Month/Month.d.ts.map +1 -1
  47. package/lib/components/Month/get-date-in-tab-order/get-date-in-tab-order.d.ts +1 -1
  48. package/lib/components/Month/get-date-in-tab-order/get-date-in-tab-order.d.ts.map +1 -1
  49. package/lib/components/MonthLevelGroup/MonthLevelGroup.d.ts.map +1 -1
  50. package/lib/components/YearLevelGroup/YearLevelGroup.d.ts.map +1 -1
  51. package/lib/hooks/use-dates-state/use-dates-state.d.ts +1 -1
  52. package/lib/hooks/use-uncontrolled-dates/use-uncontrolled-dates.d.ts +1 -1
  53. package/lib/hooks/use-uncontrolled-dates/use-uncontrolled-dates.d.ts.map +1 -1
  54. package/lib/utils/handle-control-key-down.d.ts +5 -7
  55. package/lib/utils/handle-control-key-down.d.ts.map +1 -1
  56. package/package.json +4 -4
@@ -3,19 +3,49 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var hooks = require('@mantine/hooks');
6
+ var React = require('react');
6
7
 
8
+ const getEmptyValue = (type) => type === "range" ? [null, null] : type === "multiple" ? [] : null;
7
9
  function useUncontrolledDates({
8
10
  type,
9
11
  value,
10
12
  defaultValue,
11
13
  onChange
12
14
  }) {
13
- return hooks.useUncontrolled({
15
+ const storedType = React.useRef(type);
16
+ const [_value, _setValue] = hooks.useUncontrolled({
14
17
  value,
15
18
  defaultValue,
16
19
  onChange,
17
- finalValue: type === "range" ? [null, null] : type === "multiple" ? [] : null
20
+ finalValue: getEmptyValue(type)
18
21
  });
22
+ let _finalValue = _value;
23
+ if (storedType.current !== type) {
24
+ storedType.current = type;
25
+ if (value === void 0) {
26
+ _finalValue = defaultValue !== void 0 ? defaultValue : getEmptyValue(type);
27
+ _setValue(_finalValue);
28
+ } else if (process.env.NODE_ENV === "development") {
29
+ switch (type) {
30
+ case "default":
31
+ if (value !== null && typeof value !== "string") {
32
+ console.error("[@mantine/dates/use-uncontrolled-dates] Value must be type of `null` or `string`");
33
+ }
34
+ break;
35
+ case "multiple":
36
+ if (!(value instanceof Array)) {
37
+ console.error("[@mantine/dates/use-uncontrolled-dates] Value must be type of `string[]`");
38
+ }
39
+ break;
40
+ case "range":
41
+ if (!(value instanceof Array) || value.length !== 2) {
42
+ console.error("[@mantine/dates/use-uncontrolled-dates] Value must be type of `[string, string]`");
43
+ }
44
+ break;
45
+ }
46
+ }
47
+ }
48
+ return [_finalValue, _setValue];
19
49
  }
20
50
 
21
51
  exports.useUncontrolledDates = useUncontrolledDates;
@@ -1 +1 @@
1
- {"version":3,"file":"use-uncontrolled-dates.js","sources":["../../../src/hooks/use-uncontrolled-dates/use-uncontrolled-dates.ts"],"sourcesContent":["import { useUncontrolled } from '@mantine/hooks';\nimport { DatePickerType, DatePickerValue } from '../../types';\n\ninterface UseUncontrolledDates<Type extends DatePickerType = 'default'> {\n type: Type;\n value: DatePickerValue<Type>;\n defaultValue: DatePickerValue<Type>;\n onChange(value: DatePickerValue<Type>): void;\n}\n\nexport function useUncontrolledDates<Type extends DatePickerType = 'default'>({\n type,\n value,\n defaultValue,\n onChange,\n}: UseUncontrolledDates<Type>) {\n return useUncontrolled<any>({\n value,\n defaultValue,\n onChange,\n finalValue: type === 'range' ? [null, null] : type === 'multiple' ? [] : null,\n });\n}\n"],"names":["useUncontrolled"],"mappings":";;;;;;AACO,SAAS,oBAAoB,CAAC;AACrC,EAAE,IAAI;AACN,EAAE,KAAK;AACP,EAAE,YAAY;AACd,EAAE,QAAQ;AACV,CAAC,EAAE;AACH,EAAE,OAAOA,qBAAe,CAAC;AACzB,IAAI,KAAK;AACT,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,UAAU,EAAE,IAAI,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK,UAAU,GAAG,EAAE,GAAG,IAAI;AACjF,GAAG,CAAC,CAAC;AACL;;;;"}
1
+ {"version":3,"file":"use-uncontrolled-dates.js","sources":["../../../src/hooks/use-uncontrolled-dates/use-uncontrolled-dates.ts"],"sourcesContent":["import { useUncontrolled } from '@mantine/hooks';\nimport { useRef } from 'react';\nimport { DatePickerType, DatePickerValue } from '../../types';\n\ninterface UseUncontrolledDates<Type extends DatePickerType = 'default'> {\n type: Type;\n value: DatePickerValue<Type>;\n defaultValue: DatePickerValue<Type>;\n onChange(value: DatePickerValue<Type>): void;\n}\n\nconst getEmptyValue = <Type extends DatePickerType = 'default'>(type: Type) =>\n type === 'range' ? [null, null] : type === 'multiple' ? [] : null;\n\nexport function useUncontrolledDates<Type extends DatePickerType = 'default'>({\n type,\n value,\n defaultValue,\n onChange,\n}: UseUncontrolledDates<Type>) {\n const storedType = useRef<Type>(type);\n const [_value, _setValue] = useUncontrolled<any>({\n value,\n defaultValue,\n onChange,\n finalValue: getEmptyValue(type),\n });\n\n let _finalValue = _value;\n\n if (storedType.current !== type) {\n // Type has changed. Do some checks or resets\n\n storedType.current = type;\n if (value === undefined) {\n // Reset uncontrolled value as types aren't compatible\n _finalValue = defaultValue !== undefined ? defaultValue : getEmptyValue(type);\n _setValue(_finalValue);\n } else if (process.env.NODE_ENV === 'development') {\n // Throw errors in dev mode in case type of value isn't correct\n switch (type) {\n case 'default':\n if (value !== null && typeof value !== 'string') {\n // eslint-disable-next-line no-console\n console.error(\n '[@mantine/dates/use-uncontrolled-dates] Value must be type of `null` or `string`'\n );\n }\n break;\n case 'multiple':\n if (!(value instanceof Array)) {\n // eslint-disable-next-line no-console\n console.error(\n '[@mantine/dates/use-uncontrolled-dates] Value must be type of `string[]`'\n );\n }\n break;\n case 'range':\n if (!(value instanceof Array) || value.length !== 2) {\n // eslint-disable-next-line no-console\n console.error(\n '[@mantine/dates/use-uncontrolled-dates] Value must be type of `[string, string]`'\n );\n }\n break;\n }\n }\n }\n\n return [_finalValue, _setValue];\n}\n"],"names":["useRef","useUncontrolled"],"mappings":";;;;;;;AAEA,MAAM,aAAa,GAAG,CAAC,IAAI,KAAK,IAAI,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3F,SAAS,oBAAoB,CAAC;AACrC,EAAE,IAAI;AACN,EAAE,KAAK;AACP,EAAE,YAAY;AACd,EAAE,QAAQ;AACV,CAAC,EAAE;AACH,EAAE,MAAM,UAAU,GAAGA,YAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGC,qBAAe,CAAC;AAC9C,IAAI,KAAK;AACT,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC;AACnC,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,WAAW,GAAG,MAAM,CAAC;AAC3B,EAAE,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI,EAAE;AACnC,IAAI,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;AAC1B,MAAM,WAAW,GAAG,YAAY,KAAK,KAAK,CAAC,GAAG,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AACjF,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;AAC7B,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE;AACvD,MAAM,QAAQ,IAAI;AAClB,QAAQ,KAAK,SAAS;AACtB,UAAU,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3D,YAAY,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;AAC9G,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,UAAU;AACvB,UAAU,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,EAAE;AACzC,YAAY,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;AACtG,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,OAAO;AACpB,UAAU,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/D,YAAY,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;AAC9G,WAAW;AACX,UAAU,MAAM;AAChB,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAClC;;;;"}
@@ -2,75 +2,157 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ function getNextIndex({ direction, levelIndex, rowIndex, cellIndex, size }) {
6
+ switch (direction) {
7
+ case "up":
8
+ if (levelIndex === 0 && rowIndex === 0) {
9
+ return null;
10
+ }
11
+ if (rowIndex === 0) {
12
+ return {
13
+ levelIndex: levelIndex - 1,
14
+ rowIndex: cellIndex <= size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1 ? size[levelIndex - 1].length - 1 : size[levelIndex - 1].length - 2,
15
+ cellIndex
16
+ };
17
+ }
18
+ return {
19
+ levelIndex,
20
+ rowIndex: rowIndex - 1,
21
+ cellIndex
22
+ };
23
+ case "down":
24
+ if (rowIndex === size[levelIndex].length - 1) {
25
+ return {
26
+ levelIndex: levelIndex + 1,
27
+ rowIndex: 0,
28
+ cellIndex
29
+ };
30
+ }
31
+ if (rowIndex === size[levelIndex].length - 2 && cellIndex >= size[levelIndex][size[levelIndex].length - 1]) {
32
+ return {
33
+ levelIndex: levelIndex + 1,
34
+ rowIndex: 0,
35
+ cellIndex
36
+ };
37
+ }
38
+ return {
39
+ levelIndex,
40
+ rowIndex: rowIndex + 1,
41
+ cellIndex
42
+ };
43
+ case "left":
44
+ if (levelIndex === 0 && rowIndex === 0 && cellIndex === 0) {
45
+ return null;
46
+ }
47
+ if (rowIndex === 0 && cellIndex === 0) {
48
+ return {
49
+ levelIndex: levelIndex - 1,
50
+ rowIndex: size[levelIndex - 1].length - 1,
51
+ cellIndex: size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1
52
+ };
53
+ }
54
+ if (cellIndex === 0) {
55
+ return {
56
+ levelIndex,
57
+ rowIndex: rowIndex - 1,
58
+ cellIndex: size[levelIndex][rowIndex - 1] - 1
59
+ };
60
+ }
61
+ return {
62
+ levelIndex,
63
+ rowIndex,
64
+ cellIndex: cellIndex - 1
65
+ };
66
+ case "right":
67
+ if (rowIndex === size[levelIndex].length - 1 && cellIndex === size[levelIndex][rowIndex] - 1) {
68
+ return {
69
+ levelIndex: levelIndex + 1,
70
+ rowIndex: 0,
71
+ cellIndex: 0
72
+ };
73
+ }
74
+ if (cellIndex === size[levelIndex][rowIndex] - 1) {
75
+ return {
76
+ levelIndex,
77
+ rowIndex: rowIndex + 1,
78
+ cellIndex: 0
79
+ };
80
+ }
81
+ return {
82
+ levelIndex,
83
+ rowIndex,
84
+ cellIndex: cellIndex + 1
85
+ };
86
+ default:
87
+ return { levelIndex, rowIndex, cellIndex };
88
+ }
89
+ }
5
90
  function focusOnNextFocusableControl({
91
+ controlsRef,
6
92
  direction,
7
- index,
8
- payload,
9
- count = 1,
10
- controlsRef
93
+ levelIndex,
94
+ rowIndex,
95
+ cellIndex,
96
+ size
11
97
  }) {
12
- var _a;
13
- const changeRow = ["down", "up"].includes(direction);
14
- const rowIndex = changeRow ? payload.rowIndex + (direction === "down" ? count : -count) : payload.rowIndex;
15
- const cellIndex = changeRow ? payload.cellIndex : payload.cellIndex + (direction === "right" ? count : -count);
16
- const controlToFocus = (_a = controlsRef.current[index][rowIndex]) == null ? void 0 : _a[cellIndex];
98
+ var _a, _b;
99
+ const nextIndex = getNextIndex({ direction, size, rowIndex, cellIndex, levelIndex });
100
+ if (!nextIndex) {
101
+ return;
102
+ }
103
+ const controlToFocus = (_b = (_a = controlsRef.current[nextIndex.levelIndex]) == null ? void 0 : _a[nextIndex.rowIndex]) == null ? void 0 : _b[nextIndex.cellIndex];
17
104
  if (!controlToFocus) {
18
105
  return;
19
106
  }
20
- if (controlToFocus.disabled) {
21
- focusOnNextFocusableControl({ direction, index, payload, controlsRef, count: count + 1 });
107
+ if (controlToFocus.disabled || controlToFocus.getAttribute("data-hidden") || controlToFocus.getAttribute("data-outside")) {
108
+ focusOnNextFocusableControl({
109
+ controlsRef,
110
+ direction,
111
+ levelIndex: nextIndex.levelIndex,
112
+ cellIndex: nextIndex.cellIndex,
113
+ rowIndex: nextIndex.rowIndex,
114
+ size
115
+ });
22
116
  } else {
23
117
  controlToFocus.focus();
24
118
  }
25
119
  }
120
+ function getDirection(key) {
121
+ switch (key) {
122
+ case "ArrowDown":
123
+ return "down";
124
+ case "ArrowUp":
125
+ return "up";
126
+ case "ArrowRight":
127
+ return "right";
128
+ case "ArrowLeft":
129
+ return "left";
130
+ default:
131
+ return null;
132
+ }
133
+ }
134
+ function getControlsSize(controlsRef) {
135
+ return controlsRef.current.map((column) => column.map((row) => row.length));
136
+ }
26
137
  function handleControlKeyDown({
27
138
  controlsRef,
28
- index,
29
- payload,
30
- event,
31
- numberOfColumns,
32
- controlsPerRow
139
+ levelIndex,
140
+ rowIndex,
141
+ cellIndex,
142
+ event
33
143
  }) {
34
- var _a;
35
- const _controlsPerRow = Array.isArray(controlsPerRow) ? controlsPerRow[payload.rowIndex] : controlsPerRow;
36
- switch (event.key) {
37
- case "ArrowDown": {
38
- event.preventDefault();
39
- const hasRowBelow = payload.rowIndex + 1 < controlsRef.current[index].length;
40
- if (hasRowBelow) {
41
- focusOnNextFocusableControl({ direction: "down", index, payload, controlsRef });
42
- }
43
- break;
44
- }
45
- case "ArrowUp": {
46
- event.preventDefault();
47
- const hasRowAbove = payload.rowIndex > 0;
48
- if (hasRowAbove) {
49
- focusOnNextFocusableControl({ direction: "up", index, payload, controlsRef });
50
- }
51
- break;
52
- }
53
- case "ArrowRight": {
54
- event.preventDefault();
55
- if (payload.cellIndex !== _controlsPerRow - 1) {
56
- focusOnNextFocusableControl({ direction: "right", index, payload, controlsRef });
57
- } else if (index + 1 < numberOfColumns) {
58
- if (controlsRef.current[index + 1][payload.rowIndex]) {
59
- (_a = controlsRef.current[index + 1][payload.rowIndex][0]) == null ? void 0 : _a.focus();
60
- }
61
- }
62
- break;
63
- }
64
- case "ArrowLeft": {
65
- event.preventDefault();
66
- if (payload.cellIndex !== 0) {
67
- focusOnNextFocusableControl({ direction: "left", index, payload, controlsRef });
68
- } else if (index > 0) {
69
- if (controlsRef.current[index - 1][payload.rowIndex]) {
70
- controlsRef.current[index - 1][payload.rowIndex][_controlsPerRow - 1].focus();
71
- }
72
- }
73
- }
144
+ const direction = getDirection(event.key);
145
+ if (direction) {
146
+ event.preventDefault();
147
+ const size = getControlsSize(controlsRef);
148
+ focusOnNextFocusableControl({
149
+ controlsRef,
150
+ direction,
151
+ levelIndex,
152
+ rowIndex,
153
+ cellIndex,
154
+ size
155
+ });
74
156
  }
75
157
  }
76
158
 
@@ -1 +1 @@
1
- {"version":3,"file":"handle-control-key-down.js","sources":["../../src/utils/handle-control-key-down.ts"],"sourcesContent":["import { RefObject } from 'react';\nimport type { ControlKeydownPayload } from '../types';\n\ntype ControlsRef = RefObject<HTMLButtonElement[][][]>;\n\ninterface ShiftFocusInput {\n controlsRef: ControlsRef;\n direction: 'down' | 'up' | 'left' | 'right';\n index: number;\n payload: ControlKeydownPayload;\n count?: number;\n}\n\nfunction focusOnNextFocusableControl({\n direction,\n index,\n payload,\n count = 1,\n controlsRef,\n}: ShiftFocusInput) {\n const changeRow = ['down', 'up'].includes(direction);\n\n const rowIndex = changeRow\n ? payload.rowIndex + (direction === 'down' ? count : -count)\n : payload.rowIndex;\n\n const cellIndex = changeRow\n ? payload.cellIndex\n : payload.cellIndex + (direction === 'right' ? count : -count);\n\n const controlToFocus = controlsRef.current[index][rowIndex]?.[cellIndex];\n\n if (!controlToFocus) {\n return;\n }\n\n if (controlToFocus.disabled) {\n focusOnNextFocusableControl({ direction, index, payload, controlsRef, count: count + 1 });\n } else {\n controlToFocus.focus();\n }\n}\n\ninterface HandleControlKeydownInput {\n controlsRef: ControlsRef;\n numberOfColumns: number;\n index: number;\n payload: ControlKeydownPayload;\n event: React.KeyboardEvent<HTMLButtonElement>;\n controlsPerRow: number | number[];\n}\n\nexport function handleControlKeyDown({\n controlsRef,\n index,\n payload,\n event,\n numberOfColumns,\n controlsPerRow,\n}: HandleControlKeydownInput) {\n const _controlsPerRow = Array.isArray(controlsPerRow)\n ? controlsPerRow[payload.rowIndex]\n : controlsPerRow;\n\n switch (event.key) {\n case 'ArrowDown': {\n event.preventDefault();\n\n const hasRowBelow = payload.rowIndex + 1 < controlsRef.current[index].length;\n if (hasRowBelow) {\n focusOnNextFocusableControl({ direction: 'down', index, payload, controlsRef });\n }\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n\n const hasRowAbove = payload.rowIndex > 0;\n if (hasRowAbove) {\n focusOnNextFocusableControl({ direction: 'up', index, payload, controlsRef });\n }\n break;\n }\n\n case 'ArrowRight': {\n event.preventDefault();\n\n if (payload.cellIndex !== _controlsPerRow - 1) {\n focusOnNextFocusableControl({ direction: 'right', index, payload, controlsRef });\n } else if (index + 1 < numberOfColumns) {\n if (controlsRef.current[index + 1][payload.rowIndex]) {\n controlsRef.current[index + 1][payload.rowIndex][0]?.focus();\n }\n }\n\n break;\n }\n\n case 'ArrowLeft': {\n event.preventDefault();\n\n if (payload.cellIndex !== 0) {\n focusOnNextFocusableControl({ direction: 'left', index, payload, controlsRef });\n } else if (index > 0) {\n if (controlsRef.current[index - 1][payload.rowIndex]) {\n controlsRef.current[index - 1][payload.rowIndex][_controlsPerRow - 1].focus();\n }\n }\n }\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handle-control-key-down.js","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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"}
@@ -30,6 +30,12 @@ function pickCalendarProps(props) {
30
30
  onMonthSelect,
31
31
  onYearMouseEnter,
32
32
  onMonthMouseEnter,
33
+ onNextMonth,
34
+ onPreviousMonth,
35
+ onNextYear,
36
+ onPreviousYear,
37
+ onNextDecade,
38
+ onPreviousDecade,
33
39
  __updateDateOnYearSelect,
34
40
  __updateDateOnMonthSelect,
35
41
  firstDayOfWeek,
@@ -69,6 +75,12 @@ function pickCalendarProps(props) {
69
75
  "onMonthSelect",
70
76
  "onYearMouseEnter",
71
77
  "onMonthMouseEnter",
78
+ "onNextMonth",
79
+ "onPreviousMonth",
80
+ "onNextYear",
81
+ "onPreviousYear",
82
+ "onNextDecade",
83
+ "onPreviousDecade",
72
84
  "__updateDateOnYearSelect",
73
85
  "__updateDateOnMonthSelect",
74
86
  "firstDayOfWeek",
@@ -110,6 +122,12 @@ function pickCalendarProps(props) {
110
122
  onMonthSelect,
111
123
  onYearMouseEnter,
112
124
  onMonthMouseEnter,
125
+ onNextMonth,
126
+ onPreviousMonth,
127
+ onNextYear,
128
+ onPreviousYear,
129
+ onNextDecade,
130
+ onPreviousDecade,
113
131
  __updateDateOnYearSelect,
114
132
  __updateDateOnMonthSelect,
115
133
  firstDayOfWeek,
@@ -1 +1 @@
1
- {"version":3,"file":"pick-calendar-levels-props.js","sources":["../../../../src/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.ts"],"sourcesContent":["export function pickCalendarProps<T extends Record<string, any>>(props: T) {\n const {\n maxLevel,\n minLevel,\n defaultLevel,\n level,\n onLevelChange,\n date,\n defaultDate,\n onDateChange,\n numberOfColumns,\n columnsToScroll,\n ariaLabels,\n onYearSelect,\n onMonthSelect,\n onYearMouseEnter,\n onMonthMouseEnter,\n __updateDateOnYearSelect,\n __updateDateOnMonthSelect,\n\n // MonthLevelGroup props\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n monthLabelFormat,\n\n // YearLevelGroup props\n monthsListFormat,\n getMonthControlProps,\n yearLabelFormat,\n\n // DecadeLevelGroup props\n yearsListFormat,\n getYearControlProps,\n decadeLabelFormat,\n\n // External picker props\n allowSingleDateInRange,\n allowDeselect,\n\n // Other props\n minDate,\n maxDate,\n locale,\n ...others\n } = props;\n\n return {\n calendarProps: {\n maxLevel,\n minLevel,\n defaultLevel,\n level,\n onLevelChange,\n date,\n defaultDate,\n onDateChange,\n numberOfColumns,\n columnsToScroll,\n ariaLabels,\n onYearSelect,\n onMonthSelect,\n onYearMouseEnter,\n onMonthMouseEnter,\n __updateDateOnYearSelect,\n __updateDateOnMonthSelect,\n\n // MonthLevelGroup props\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n monthLabelFormat,\n\n // YearLevelGroup props\n monthsListFormat,\n getMonthControlProps,\n yearLabelFormat,\n\n // DecadeLevelGroup props\n yearsListFormat,\n getYearControlProps,\n decadeLabelFormat,\n\n // External picker props\n allowSingleDateInRange,\n allowDeselect,\n\n // Other props\n minDate,\n maxDate,\n locale,\n },\n others,\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pick-calendar-levels-props.js","sources":["../../../../src/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.ts"],"sourcesContent":["export function pickCalendarProps<T extends Record<string, any>>(props: T) {\n const {\n maxLevel,\n minLevel,\n defaultLevel,\n level,\n onLevelChange,\n date,\n defaultDate,\n onDateChange,\n numberOfColumns,\n columnsToScroll,\n ariaLabels,\n onYearSelect,\n onMonthSelect,\n onYearMouseEnter,\n onMonthMouseEnter,\n onNextMonth,\n onPreviousMonth,\n onNextYear,\n onPreviousYear,\n onNextDecade,\n onPreviousDecade,\n __updateDateOnYearSelect,\n __updateDateOnMonthSelect,\n\n // MonthLevelGroup props\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n monthLabelFormat,\n\n // YearLevelGroup props\n monthsListFormat,\n getMonthControlProps,\n yearLabelFormat,\n\n // DecadeLevelGroup props\n yearsListFormat,\n getYearControlProps,\n decadeLabelFormat,\n\n // External picker props\n allowSingleDateInRange,\n allowDeselect,\n\n // Other props\n minDate,\n maxDate,\n locale,\n ...others\n } = props;\n\n return {\n calendarProps: {\n maxLevel,\n minLevel,\n defaultLevel,\n level,\n onLevelChange,\n date,\n defaultDate,\n onDateChange,\n numberOfColumns,\n columnsToScroll,\n ariaLabels,\n onYearSelect,\n onMonthSelect,\n onYearMouseEnter,\n onMonthMouseEnter,\n onNextMonth,\n onPreviousMonth,\n onNextYear,\n onPreviousYear,\n onNextDecade,\n onPreviousDecade,\n __updateDateOnYearSelect,\n __updateDateOnMonthSelect,\n\n // MonthLevelGroup props\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n monthLabelFormat,\n\n // YearLevelGroup props\n monthsListFormat,\n getMonthControlProps,\n yearLabelFormat,\n\n // DecadeLevelGroup props\n yearsListFormat,\n getYearControlProps,\n decadeLabelFormat,\n\n // External picker props\n allowSingleDateInRange,\n allowDeselect,\n\n // Other props\n minDate,\n maxDate,\n locale,\n },\n others,\n };\n}\n"],"names":[],"mappings":"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"}
@@ -128,7 +128,7 @@ const DateInput = forwardRef((props, ref) => {
128
128
  });
129
129
  const [_date, setDate] = useUncontrolled({
130
130
  value: date,
131
- defaultValue,
131
+ defaultValue: defaultValue || defaultDate,
132
132
  finalValue: null,
133
133
  onChange: onDateChange
134
134
  });
@@ -1 +1 @@
1
- {"version":3,"file":"DateInput.js","sources":["../../../src/components/DateInput/DateInput.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport React, { forwardRef, useState, useEffect } from 'react';\nimport {\n DefaultProps,\n InputSharedProps,\n InputWrapperBaseProps,\n InputStylesNames,\n InputWrapperStylesNames,\n useInputProps,\n Input,\n PopoverProps,\n Popover,\n CloseButton,\n} from '@mantine/core';\nimport { useUncontrolled, useDidUpdate } from '@mantine/hooks';\nimport { Calendar, CalendarBaseProps, CalendarStylesNames, pickCalendarProps } from '../Calendar';\nimport { DecadeLevelSettings } from '../DecadeLevel';\nimport { YearLevelSettings } from '../YearLevel';\nimport { MonthLevelSettings } from '../MonthLevel';\nimport { HiddenDatesInput } from '../HiddenDatesInput';\nimport { assignTime } from '../../utils';\nimport { DateValue } from '../../types';\nimport { useDatesContext } from '../DatesProvider';\nimport { isDateValid } from './is-date-valid/is-date-valid';\nimport { dateStringParser } from './date-string-parser/date-string-parser';\n\nexport type DateInputStylesNames = CalendarStylesNames | InputStylesNames | InputWrapperStylesNames;\n\nexport interface DateInputProps\n extends DefaultProps<DateInputStylesNames>,\n InputSharedProps,\n InputWrapperBaseProps,\n CalendarBaseProps,\n DecadeLevelSettings,\n YearLevelSettings,\n MonthLevelSettings,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'value' | 'defaultValue' | 'onChange'> {\n /** Parses user input to convert it to Date object */\n dateParser?: (value: string) => Date | null;\n\n /** Value for controlled component */\n value?: DateValue;\n\n /** Default value for uncontrolled component */\n defaultValue?: DateValue;\n\n /** Called when value changes */\n onChange?(value: DateValue): void;\n\n /** Props added to Popover component */\n popoverProps?: Partial<Omit<PopoverProps, 'children'>>;\n\n /** Determines whether input value can be cleared, adds clear button to right section, false by default */\n clearable?: boolean;\n\n /** Props added to clear button */\n clearButtonProps?: React.ComponentPropsWithoutRef<'button'>;\n\n /** Dayjs format to display input value, \"MMMM D, YYYY\" by default */\n valueFormat?: string;\n\n /** Determines whether input value should be reverted to last known valid value on blur, true by default */\n fixOnBlur?: boolean;\n\n /** Determines whether value can be deselected when the user clicks on the selected date in the calendar or erases content of the input, true if clearable prop is set, false by default */\n allowDeselect?: boolean;\n\n /** Determines whether time (hours, minutes, seconds and milliseconds) should be preserved when new date is picked, true by default */\n preserveTime?: boolean;\n}\n\nconst defaultProps: Partial<DateInputProps> = {\n valueFormat: 'MMMM D, YYYY',\n fixOnBlur: true,\n preserveTime: true,\n size: 'sm',\n};\n\nexport const DateInput = forwardRef<HTMLInputElement, DateInputProps>((props, ref) => {\n const {\n inputProps,\n wrapperProps,\n value,\n defaultValue,\n onChange,\n clearable,\n clearButtonProps,\n popoverProps,\n getDayProps,\n locale,\n valueFormat,\n dateParser,\n minDate,\n maxDate,\n fixOnBlur,\n onFocus,\n onBlur,\n onClick,\n readOnly,\n name,\n form,\n rightSection,\n unstyled,\n classNames,\n styles,\n allowDeselect,\n preserveTime,\n date,\n defaultDate,\n onDateChange,\n ...rest\n } = useInputProps('DateInput', defaultProps, props);\n const { calendarProps, others } = pickCalendarProps(rest);\n const ctx = useDatesContext();\n const defaultDateParser = (val: string) => {\n const parsedDate = dayjs(val, valueFormat, ctx.getLocale(locale)).toDate();\n return Number.isNaN(parsedDate.getTime()) ? dateStringParser(val) : parsedDate;\n };\n\n const _dateParser = dateParser || defaultDateParser;\n const _allowDeselect = clearable || allowDeselect;\n\n const formatValue = (val: Date) =>\n val ? dayjs(val).locale(ctx.getLocale(locale)).format(valueFormat) : '';\n\n const [_value, setValue, controlled] = useUncontrolled({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n });\n\n const [_date, setDate] = useUncontrolled({\n value: date,\n defaultValue,\n finalValue: null,\n onChange: onDateChange,\n });\n\n useEffect(() => {\n if (controlled) {\n setDate(value);\n }\n }, [controlled, value]);\n\n const [inputValue, setInputValue] = useState(formatValue(_value));\n\n useEffect(() => {\n setInputValue(formatValue(_value));\n }, [ctx.getLocale(locale)]);\n\n const [dropdownOpened, setDropdownOpened] = useState(false);\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const val = event.currentTarget.value;\n setInputValue(val);\n\n if (val.trim() === '' && _allowDeselect) {\n setValue(null);\n } else {\n const dateValue = _dateParser(val);\n if (isDateValid({ date: dateValue, minDate, maxDate })) {\n setValue(dateValue);\n setDate(dateValue);\n }\n }\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n onBlur?.(event);\n setDropdownOpened(false);\n fixOnBlur && setInputValue(formatValue(_value));\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n onFocus?.(event);\n setDropdownOpened(true);\n };\n\n const handleInputClick = (event: React.MouseEvent<HTMLInputElement>) => {\n onClick?.(event);\n setDropdownOpened(true);\n };\n\n const _getDayProps = (day: Date) => ({\n ...getDayProps?.(day),\n selected: dayjs(_value).isSame(day, 'day'),\n onClick: () => {\n const valueWithTime = preserveTime ? assignTime(_value, day) : day;\n const val = _allowDeselect\n ? dayjs(_value).isSame(day, 'day')\n ? null\n : valueWithTime\n : valueWithTime;\n setValue(val);\n !controlled && setInputValue(formatValue(val));\n setDropdownOpened(false);\n },\n });\n\n const _rightSection =\n rightSection ||\n (clearable && _value && !readOnly ? (\n <CloseButton\n variant=\"transparent\"\n onMouseDown={(event) => event.preventDefault()}\n tabIndex={-1}\n onClick={() => {\n setValue(null);\n !controlled && setInputValue('');\n }}\n unstyled={unstyled}\n {...clearButtonProps}\n />\n ) : null);\n\n useDidUpdate(() => {\n value !== undefined && !dropdownOpened && setInputValue(formatValue(value));\n }, [value]);\n\n return (\n <>\n <Input.Wrapper {...wrapperProps} __staticSelector=\"DateInput\">\n <Popover\n opened={dropdownOpened}\n trapFocus={false}\n position=\"bottom-start\"\n disabled={readOnly}\n withRoles={false}\n {...popoverProps}\n >\n <Popover.Target>\n <Input\n data-dates-input\n data-read-only={readOnly || undefined}\n autoComplete=\"off\"\n ref={ref}\n value={inputValue}\n onChange={handleInputChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n onClick={handleInputClick}\n readOnly={readOnly}\n rightSection={_rightSection}\n {...inputProps}\n {...others}\n __staticSelector=\"DateInput\"\n />\n </Popover.Target>\n <Popover.Dropdown onMouseDown={(event) => event.preventDefault()} data-dates-dropdown>\n <Calendar\n __staticSelector=\"DateInput\"\n {...calendarProps}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n __preventFocus\n minDate={minDate}\n maxDate={maxDate}\n locale={locale}\n getDayProps={_getDayProps}\n size={inputProps.size}\n date={_date}\n onDateChange={setDate}\n />\n </Popover.Dropdown>\n </Popover>\n </Input.Wrapper>\n <HiddenDatesInput name={name} form={form} value={_value} type=\"default\" />\n </>\n );\n});\n\nDateInput.displayName = '@mantine/dates/DateInput';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DateInput.js","sources":["../../../src/components/DateInput/DateInput.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport React, { forwardRef, useState, useEffect } from 'react';\nimport {\n DefaultProps,\n InputSharedProps,\n InputWrapperBaseProps,\n InputStylesNames,\n InputWrapperStylesNames,\n useInputProps,\n Input,\n PopoverProps,\n Popover,\n CloseButton,\n} from '@mantine/core';\nimport { useUncontrolled, useDidUpdate } from '@mantine/hooks';\nimport { Calendar, CalendarBaseProps, CalendarStylesNames, pickCalendarProps } from '../Calendar';\nimport { DecadeLevelSettings } from '../DecadeLevel';\nimport { YearLevelSettings } from '../YearLevel';\nimport { MonthLevelSettings } from '../MonthLevel';\nimport { HiddenDatesInput } from '../HiddenDatesInput';\nimport { assignTime } from '../../utils';\nimport { DateValue, CalendarLevel } from '../../types';\nimport { useDatesContext } from '../DatesProvider';\nimport { isDateValid } from './is-date-valid/is-date-valid';\nimport { dateStringParser } from './date-string-parser/date-string-parser';\n\nexport type DateInputStylesNames = CalendarStylesNames | InputStylesNames | InputWrapperStylesNames;\n\nexport interface DateInputProps\n extends DefaultProps<DateInputStylesNames>,\n InputSharedProps,\n InputWrapperBaseProps,\n CalendarBaseProps,\n DecadeLevelSettings,\n YearLevelSettings,\n MonthLevelSettings,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'value' | 'defaultValue' | 'onChange'> {\n /** Parses user input to convert it to Date object */\n dateParser?: (value: string) => Date | null;\n\n /** Value for controlled component */\n value?: DateValue;\n\n /** Default value for uncontrolled component */\n defaultValue?: DateValue;\n\n /** Called when value changes */\n onChange?(value: DateValue): void;\n\n /** Props added to Popover component */\n popoverProps?: Partial<Omit<PopoverProps, 'children'>>;\n\n /** Determines whether input value can be cleared, adds clear button to right section, false by default */\n clearable?: boolean;\n\n /** Props added to clear button */\n clearButtonProps?: React.ComponentPropsWithoutRef<'button'>;\n\n /** Dayjs format to display input value, \"MMMM D, YYYY\" by default */\n valueFormat?: string;\n\n /** Determines whether input value should be reverted to last known valid value on blur, true by default */\n fixOnBlur?: boolean;\n\n /** Determines whether value can be deselected when the user clicks on the selected date in the calendar or erases content of the input, true if clearable prop is set, false by default */\n allowDeselect?: boolean;\n\n /** Determines whether time (hours, minutes, seconds and milliseconds) should be preserved when new date is picked, true by default */\n preserveTime?: boolean;\n\n /** Max level that user can go up to (decade, year, month), defaults to decade */\n maxLevel?: CalendarLevel;\n\n /** Initial level displayed to the user (decade, year, month), used for uncontrolled component */\n defaultLevel?: CalendarLevel;\n\n /** Current level displayed to the user (decade, year, month), used for controlled component */\n level?: CalendarLevel;\n\n /** Called when level changes */\n onLevelChange?(level: CalendarLevel): void;\n}\n\nconst defaultProps: Partial<DateInputProps> = {\n valueFormat: 'MMMM D, YYYY',\n fixOnBlur: true,\n preserveTime: true,\n size: 'sm',\n};\n\nexport const DateInput = forwardRef<HTMLInputElement, DateInputProps>((props, ref) => {\n const {\n inputProps,\n wrapperProps,\n value,\n defaultValue,\n onChange,\n clearable,\n clearButtonProps,\n popoverProps,\n getDayProps,\n locale,\n valueFormat,\n dateParser,\n minDate,\n maxDate,\n fixOnBlur,\n onFocus,\n onBlur,\n onClick,\n readOnly,\n name,\n form,\n rightSection,\n unstyled,\n classNames,\n styles,\n allowDeselect,\n preserveTime,\n date,\n defaultDate,\n onDateChange,\n ...rest\n } = useInputProps('DateInput', defaultProps, props);\n const { calendarProps, others } = pickCalendarProps(rest);\n const ctx = useDatesContext();\n const defaultDateParser = (val: string) => {\n const parsedDate = dayjs(val, valueFormat, ctx.getLocale(locale)).toDate();\n return Number.isNaN(parsedDate.getTime()) ? dateStringParser(val) : parsedDate;\n };\n\n const _dateParser = dateParser || defaultDateParser;\n const _allowDeselect = clearable || allowDeselect;\n\n const formatValue = (val: Date) =>\n val ? dayjs(val).locale(ctx.getLocale(locale)).format(valueFormat) : '';\n\n const [_value, setValue, controlled] = useUncontrolled({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n });\n\n const [_date, setDate] = useUncontrolled({\n value: date,\n defaultValue: defaultValue || defaultDate,\n finalValue: null,\n onChange: onDateChange,\n });\n\n useEffect(() => {\n if (controlled) {\n setDate(value);\n }\n }, [controlled, value]);\n\n const [inputValue, setInputValue] = useState(formatValue(_value));\n\n useEffect(() => {\n setInputValue(formatValue(_value));\n }, [ctx.getLocale(locale)]);\n\n const [dropdownOpened, setDropdownOpened] = useState(false);\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const val = event.currentTarget.value;\n setInputValue(val);\n\n if (val.trim() === '' && _allowDeselect) {\n setValue(null);\n } else {\n const dateValue = _dateParser(val);\n if (isDateValid({ date: dateValue, minDate, maxDate })) {\n setValue(dateValue);\n setDate(dateValue);\n }\n }\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n onBlur?.(event);\n setDropdownOpened(false);\n fixOnBlur && setInputValue(formatValue(_value));\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n onFocus?.(event);\n setDropdownOpened(true);\n };\n\n const handleInputClick = (event: React.MouseEvent<HTMLInputElement>) => {\n onClick?.(event);\n setDropdownOpened(true);\n };\n\n const _getDayProps = (day: Date) => ({\n ...getDayProps?.(day),\n selected: dayjs(_value).isSame(day, 'day'),\n onClick: () => {\n const valueWithTime = preserveTime ? assignTime(_value, day) : day;\n const val = _allowDeselect\n ? dayjs(_value).isSame(day, 'day')\n ? null\n : valueWithTime\n : valueWithTime;\n setValue(val);\n !controlled && setInputValue(formatValue(val));\n setDropdownOpened(false);\n },\n });\n\n const _rightSection =\n rightSection ||\n (clearable && _value && !readOnly ? (\n <CloseButton\n variant=\"transparent\"\n onMouseDown={(event) => event.preventDefault()}\n tabIndex={-1}\n onClick={() => {\n setValue(null);\n !controlled && setInputValue('');\n }}\n unstyled={unstyled}\n {...clearButtonProps}\n />\n ) : null);\n\n useDidUpdate(() => {\n value !== undefined && !dropdownOpened && setInputValue(formatValue(value));\n }, [value]);\n\n return (\n <>\n <Input.Wrapper {...wrapperProps} __staticSelector=\"DateInput\">\n <Popover\n opened={dropdownOpened}\n trapFocus={false}\n position=\"bottom-start\"\n disabled={readOnly}\n withRoles={false}\n {...popoverProps}\n >\n <Popover.Target>\n <Input\n data-dates-input\n data-read-only={readOnly || undefined}\n autoComplete=\"off\"\n ref={ref}\n value={inputValue}\n onChange={handleInputChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n onClick={handleInputClick}\n readOnly={readOnly}\n rightSection={_rightSection}\n {...inputProps}\n {...others}\n __staticSelector=\"DateInput\"\n />\n </Popover.Target>\n <Popover.Dropdown onMouseDown={(event) => event.preventDefault()} data-dates-dropdown>\n <Calendar\n __staticSelector=\"DateInput\"\n {...calendarProps}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n __preventFocus\n minDate={minDate}\n maxDate={maxDate}\n locale={locale}\n getDayProps={_getDayProps}\n size={inputProps.size}\n date={_date}\n onDateChange={setDate}\n />\n </Popover.Dropdown>\n </Popover>\n </Input.Wrapper>\n <HiddenDatesInput name={name} form={form} value={_value} type=\"default\" />\n </>\n );\n});\n\nDateInput.displayName = '@mantine/dates/DateInput';\n"],"names":[],"mappings":"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"}
@@ -106,7 +106,7 @@ const DecadeLevelGroup = forwardRef((props, ref) => {
106
106
  variant,
107
107
  size
108
108
  });
109
- const controlsRefs = useRef([]);
109
+ const controlsRef = useRef([]);
110
110
  const decades = Array(numberOfColumns).fill(0).map((_, decadeIndex) => {
111
111
  const currentDecade = dayjs(decade).add(decadeIndex * 10, "years").toDate();
112
112
  return /* @__PURE__ */ React.createElement(DecadeLevel, {
@@ -121,21 +121,20 @@ const DecadeLevelGroup = forwardRef((props, ref) => {
121
121
  __onControlClick,
122
122
  __onControlMouseEnter,
123
123
  __onControlKeyDown: (event, payload) => handleControlKeyDown({
124
- index: decadeIndex,
124
+ levelIndex: decadeIndex,
125
+ rowIndex: payload.rowIndex,
126
+ cellIndex: payload.cellIndex,
125
127
  event,
126
- payload,
127
- controlsRef: controlsRefs,
128
- numberOfColumns,
129
- controlsPerRow: [3, 3, 3, 1]
128
+ controlsRef
130
129
  }),
131
130
  __getControlRef: (rowIndex, cellIndex, node) => {
132
- if (!Array.isArray(controlsRefs.current[decadeIndex])) {
133
- controlsRefs.current[decadeIndex] = [];
131
+ if (!Array.isArray(controlsRef.current[decadeIndex])) {
132
+ controlsRef.current[decadeIndex] = [];
134
133
  }
135
- if (!Array.isArray(controlsRefs.current[decadeIndex][rowIndex])) {
136
- controlsRefs.current[decadeIndex][rowIndex] = [];
134
+ if (!Array.isArray(controlsRef.current[decadeIndex][rowIndex])) {
135
+ controlsRef.current[decadeIndex][rowIndex] = [];
137
136
  }
138
- controlsRefs.current[decadeIndex][rowIndex][cellIndex] = node;
137
+ controlsRef.current[decadeIndex][rowIndex][cellIndex] = node;
139
138
  },
140
139
  levelControlAriaLabel: typeof levelControlAriaLabel === "function" ? levelControlAriaLabel(currentDecade) : levelControlAriaLabel,
141
140
  locale,
@@ -1 +1 @@
1
- {"version":3,"file":"DecadeLevelGroup.js","sources":["../../../src/components/DecadeLevelGroup/DecadeLevelGroup.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react';\nimport { DefaultProps, Box, Selectors, useComponentDefaultProps } from '@mantine/core';\nimport dayjs from 'dayjs';\nimport { DecadeLevel, DecadeLevelStylesNames, DecadeLevelSettings } from '../DecadeLevel';\nimport { handleControlKeyDown } from '../../utils';\nimport useStyles from './DecadeLevelGroup.styles';\n\nexport type DecadeLevelGroupStylesNames = Selectors<typeof useStyles> | DecadeLevelStylesNames;\n\nexport interface DecadeLevelGroupProps\n extends DefaultProps<DecadeLevelGroupStylesNames>,\n Omit<\n DecadeLevelSettings,\n 'withPrevious' | 'withNext' | '__onControlKeyDown' | '__getControlRef'\n >,\n React.ComponentPropsWithoutRef<'div'> {\n variant?: string;\n __staticSelector?: string;\n\n /** Number of columns to render next to each other */\n numberOfColumns?: number;\n\n /** Decade that is currently displayed */\n decade: Date;\n\n /** Function that returns level control aria-label based on year date */\n levelControlAriaLabel?: ((decade: Date) => string) | string;\n}\n\nconst defaultProps: Partial<DecadeLevelGroupProps> = {\n numberOfColumns: 1,\n};\n\nexport const DecadeLevelGroup = forwardRef<HTMLDivElement, DecadeLevelGroupProps>((props, ref) => {\n const {\n // DecadeLevel settings\n decade,\n locale,\n minDate,\n maxDate,\n yearsListFormat,\n getYearControlProps,\n __onControlClick,\n __onControlMouseEnter,\n withCellSpacing,\n\n // CalendarHeader settings\n __preventFocus,\n nextIcon,\n previousIcon,\n nextLabel,\n previousLabel,\n onNext,\n onPrevious,\n nextDisabled,\n previousDisabled,\n\n // Other settings\n className,\n classNames,\n styles,\n unstyled,\n __staticSelector,\n __stopPropagation,\n numberOfColumns,\n levelControlAriaLabel,\n decadeLabelFormat,\n variant,\n size,\n ...others\n } = useComponentDefaultProps('DecadeLevelGroup', defaultProps, props);\n\n const { classes, cx } = useStyles(null, {\n name: ['DecadeLevelGroup', __staticSelector],\n styles,\n classNames,\n unstyled,\n variant,\n size,\n });\n\n const controlsRefs = useRef<HTMLButtonElement[][][]>([]);\n\n const decades = Array(numberOfColumns)\n .fill(0)\n .map((_, decadeIndex) => {\n const currentDecade = dayjs(decade)\n .add(decadeIndex * 10, 'years')\n .toDate();\n\n return (\n <DecadeLevel\n key={decadeIndex}\n variant={variant}\n size={size}\n yearsListFormat={yearsListFormat}\n decade={currentDecade}\n withNext={decadeIndex === numberOfColumns - 1}\n withPrevious={decadeIndex === 0}\n decadeLabelFormat={decadeLabelFormat}\n __onControlClick={__onControlClick}\n __onControlMouseEnter={__onControlMouseEnter}\n __onControlKeyDown={(event, payload) =>\n handleControlKeyDown({\n index: decadeIndex,\n event,\n payload,\n controlsRef: controlsRefs,\n numberOfColumns,\n controlsPerRow: [3, 3, 3, 1],\n })\n }\n __getControlRef={(rowIndex, cellIndex, node) => {\n if (!Array.isArray(controlsRefs.current[decadeIndex])) {\n controlsRefs.current[decadeIndex] = [];\n }\n\n if (!Array.isArray(controlsRefs.current[decadeIndex][rowIndex])) {\n controlsRefs.current[decadeIndex][rowIndex] = [];\n }\n\n controlsRefs.current[decadeIndex][rowIndex][cellIndex] = node;\n }}\n levelControlAriaLabel={\n typeof levelControlAriaLabel === 'function'\n ? levelControlAriaLabel(currentDecade)\n : levelControlAriaLabel\n }\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n __preventFocus={__preventFocus}\n __stopPropagation={__stopPropagation}\n nextIcon={nextIcon}\n previousIcon={previousIcon}\n nextLabel={nextLabel}\n previousLabel={previousLabel}\n onNext={onNext}\n onPrevious={onPrevious}\n nextDisabled={nextDisabled}\n previousDisabled={previousDisabled}\n getYearControlProps={getYearControlProps}\n __staticSelector={__staticSelector || 'DecadeLevelGroup'}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n withCellSpacing={withCellSpacing}\n />\n );\n });\n\n return (\n <Box className={cx(classes.decadeLevelGroup, className)} ref={ref} {...others}>\n {decades}\n </Box>\n );\n});\n\nDecadeLevelGroup.displayName = '@mantine/dates/DecadeLevelGroup';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DecadeLevelGroup.js","sources":["../../../src/components/DecadeLevelGroup/DecadeLevelGroup.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react';\nimport { DefaultProps, Box, Selectors, useComponentDefaultProps } from '@mantine/core';\nimport dayjs from 'dayjs';\nimport { DecadeLevel, DecadeLevelStylesNames, DecadeLevelSettings } from '../DecadeLevel';\nimport { handleControlKeyDown } from '../../utils';\nimport useStyles from './DecadeLevelGroup.styles';\n\nexport type DecadeLevelGroupStylesNames = Selectors<typeof useStyles> | DecadeLevelStylesNames;\n\nexport interface DecadeLevelGroupProps\n extends DefaultProps<DecadeLevelGroupStylesNames>,\n Omit<\n DecadeLevelSettings,\n 'withPrevious' | 'withNext' | '__onControlKeyDown' | '__getControlRef'\n >,\n React.ComponentPropsWithoutRef<'div'> {\n variant?: string;\n __staticSelector?: string;\n\n /** Number of columns to render next to each other */\n numberOfColumns?: number;\n\n /** Decade that is currently displayed */\n decade: Date;\n\n /** Function that returns level control aria-label based on year date */\n levelControlAriaLabel?: ((decade: Date) => string) | string;\n}\n\nconst defaultProps: Partial<DecadeLevelGroupProps> = {\n numberOfColumns: 1,\n};\n\nexport const DecadeLevelGroup = forwardRef<HTMLDivElement, DecadeLevelGroupProps>((props, ref) => {\n const {\n // DecadeLevel settings\n decade,\n locale,\n minDate,\n maxDate,\n yearsListFormat,\n getYearControlProps,\n __onControlClick,\n __onControlMouseEnter,\n withCellSpacing,\n\n // CalendarHeader settings\n __preventFocus,\n nextIcon,\n previousIcon,\n nextLabel,\n previousLabel,\n onNext,\n onPrevious,\n nextDisabled,\n previousDisabled,\n\n // Other settings\n className,\n classNames,\n styles,\n unstyled,\n __staticSelector,\n __stopPropagation,\n numberOfColumns,\n levelControlAriaLabel,\n decadeLabelFormat,\n variant,\n size,\n ...others\n } = useComponentDefaultProps('DecadeLevelGroup', defaultProps, props);\n\n const { classes, cx } = useStyles(null, {\n name: ['DecadeLevelGroup', __staticSelector],\n styles,\n classNames,\n unstyled,\n variant,\n size,\n });\n\n const controlsRef = useRef<HTMLButtonElement[][][]>([]);\n\n const decades = Array(numberOfColumns)\n .fill(0)\n .map((_, decadeIndex) => {\n const currentDecade = dayjs(decade)\n .add(decadeIndex * 10, 'years')\n .toDate();\n\n return (\n <DecadeLevel\n key={decadeIndex}\n variant={variant}\n size={size}\n yearsListFormat={yearsListFormat}\n decade={currentDecade}\n withNext={decadeIndex === numberOfColumns - 1}\n withPrevious={decadeIndex === 0}\n decadeLabelFormat={decadeLabelFormat}\n __onControlClick={__onControlClick}\n __onControlMouseEnter={__onControlMouseEnter}\n __onControlKeyDown={(event, payload) =>\n handleControlKeyDown({\n levelIndex: decadeIndex,\n rowIndex: payload.rowIndex,\n cellIndex: payload.cellIndex,\n event,\n controlsRef,\n })\n }\n __getControlRef={(rowIndex, cellIndex, node) => {\n if (!Array.isArray(controlsRef.current[decadeIndex])) {\n controlsRef.current[decadeIndex] = [];\n }\n\n if (!Array.isArray(controlsRef.current[decadeIndex][rowIndex])) {\n controlsRef.current[decadeIndex][rowIndex] = [];\n }\n\n controlsRef.current[decadeIndex][rowIndex][cellIndex] = node;\n }}\n levelControlAriaLabel={\n typeof levelControlAriaLabel === 'function'\n ? levelControlAriaLabel(currentDecade)\n : levelControlAriaLabel\n }\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n __preventFocus={__preventFocus}\n __stopPropagation={__stopPropagation}\n nextIcon={nextIcon}\n previousIcon={previousIcon}\n nextLabel={nextLabel}\n previousLabel={previousLabel}\n onNext={onNext}\n onPrevious={onPrevious}\n nextDisabled={nextDisabled}\n previousDisabled={previousDisabled}\n getYearControlProps={getYearControlProps}\n __staticSelector={__staticSelector || 'DecadeLevelGroup'}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n withCellSpacing={withCellSpacing}\n />\n );\n });\n\n return (\n <Box className={cx(classes.decadeLevelGroup, className)} ref={ref} {...others}>\n {decades}\n </Box>\n );\n});\n\nDecadeLevelGroup.displayName = '@mantine/dates/DecadeLevelGroup';\n"],"names":[],"mappings":"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"}
@@ -124,7 +124,7 @@ const Month = forwardRef((props, ref) => {
124
124
  size
125
125
  };
126
126
  const dates = getMonthDays(month, ctx.getFirstDayOfWeek(firstDayOfWeek));
127
- const dateInTabOrder = getDateInTabOrder(dates, minDate, maxDate, getDayProps, excludeDate);
127
+ const dateInTabOrder = getDateInTabOrder(dates, minDate, maxDate, getDayProps, excludeDate, hideOutsideDates, month);
128
128
  const rows = dates.map((row, rowIndex) => {
129
129
  const cells = row.map((date, cellIndex) => {
130
130
  const outside = !isSameMonth(date, month);