react-native-ruler-date-picker 0.1.0 → 0.2.0
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/README.md +186 -60
- package/lib/commonjs/LensTick.js +83 -0
- package/lib/commonjs/LensTick.js.map +1 -0
- package/lib/commonjs/Ruler.js +38 -0
- package/lib/commonjs/Ruler.js.map +1 -0
- package/lib/commonjs/RulerContext.js +17 -0
- package/lib/commonjs/RulerContext.js.map +1 -0
- package/lib/commonjs/RulerDatePicker.js +38 -351
- package/lib/commonjs/RulerDatePicker.js.map +1 -1
- package/lib/commonjs/RulerDateRangePicker.js +56 -0
- package/lib/commonjs/RulerDateRangePicker.js.map +1 -0
- package/lib/commonjs/RulerHeader.js +106 -0
- package/lib/commonjs/RulerHeader.js.map +1 -0
- package/lib/commonjs/RulerIndicator.js +67 -0
- package/lib/commonjs/RulerIndicator.js.map +1 -0
- package/lib/commonjs/RulerLensTicks.js +55 -0
- package/lib/commonjs/RulerLensTicks.js.map +1 -0
- package/lib/commonjs/RulerLensTrack.js +52 -0
- package/lib/commonjs/RulerLensTrack.js.map +1 -0
- package/lib/commonjs/RulerRange.js +39 -0
- package/lib/commonjs/RulerRange.js.map +1 -0
- package/lib/commonjs/RulerRangeContext.js +17 -0
- package/lib/commonjs/RulerRangeContext.js.map +1 -0
- package/lib/commonjs/RulerRangeHeader.js +154 -0
- package/lib/commonjs/RulerRangeHeader.js.map +1 -0
- package/lib/commonjs/RulerRangeHighlight.js +50 -0
- package/lib/commonjs/RulerRangeHighlight.js.map +1 -0
- package/lib/commonjs/RulerRangeIndicator.js +71 -0
- package/lib/commonjs/RulerRangeIndicator.js.map +1 -0
- package/lib/commonjs/RulerRangeRoot.js +80 -0
- package/lib/commonjs/RulerRangeRoot.js.map +1 -0
- package/lib/commonjs/RulerRangeTicks.js +57 -0
- package/lib/commonjs/RulerRangeTicks.js.map +1 -0
- package/lib/commonjs/RulerRangeTrack.js +46 -0
- package/lib/commonjs/RulerRangeTrack.js.map +1 -0
- package/lib/commonjs/RulerResetButton.js +46 -0
- package/lib/commonjs/RulerResetButton.js.map +1 -0
- package/lib/commonjs/RulerRoot.js +87 -0
- package/lib/commonjs/RulerRoot.js.map +1 -0
- package/lib/commonjs/RulerTicks.js +51 -0
- package/lib/commonjs/RulerTicks.js.map +1 -0
- package/lib/commonjs/RulerTrack.js +46 -0
- package/lib/commonjs/RulerTrack.js.map +1 -0
- package/lib/commonjs/Tick.js +41 -36
- package/lib/commonjs/Tick.js.map +1 -1
- package/lib/commonjs/defaults.js +20 -19
- package/lib/commonjs/defaults.js.map +1 -1
- package/lib/commonjs/index.js +287 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/presets.js +108 -0
- package/lib/commonjs/presets.js.map +1 -0
- package/lib/commonjs/tickResolver.js +101 -0
- package/lib/commonjs/tickResolver.js.map +1 -0
- package/lib/commonjs/useHaptics.js +1 -1
- package/lib/commonjs/useHaptics.web.js +43 -0
- package/lib/commonjs/useHaptics.web.js.map +1 -0
- package/lib/commonjs/useRulerDatePicker.js +264 -0
- package/lib/commonjs/useRulerDatePicker.js.map +1 -0
- package/lib/commonjs/useRulerDateRangePicker.js +313 -0
- package/lib/commonjs/useRulerDateRangePicker.js.map +1 -0
- package/lib/commonjs/utils.js +61 -47
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/LensTick.js +77 -0
- package/lib/module/LensTick.js.map +1 -0
- package/lib/module/Ruler.js +35 -0
- package/lib/module/Ruler.js.map +1 -0
- package/lib/module/RulerContext.js +12 -0
- package/lib/module/RulerContext.js.map +1 -0
- package/lib/module/RulerDatePicker.js +38 -350
- package/lib/module/RulerDatePicker.js.map +1 -1
- package/lib/module/RulerDateRangePicker.js +52 -0
- package/lib/module/RulerDateRangePicker.js.map +1 -0
- package/lib/module/RulerHeader.js +101 -0
- package/lib/module/RulerHeader.js.map +1 -0
- package/lib/module/RulerIndicator.js +62 -0
- package/lib/module/RulerIndicator.js.map +1 -0
- package/lib/module/RulerLensTicks.js +50 -0
- package/lib/module/RulerLensTicks.js.map +1 -0
- package/lib/module/RulerLensTrack.js +47 -0
- package/lib/module/RulerLensTrack.js.map +1 -0
- package/lib/module/RulerRange.js +36 -0
- package/lib/module/RulerRange.js.map +1 -0
- package/lib/module/RulerRangeContext.js +12 -0
- package/lib/module/RulerRangeContext.js.map +1 -0
- package/lib/module/RulerRangeHeader.js +149 -0
- package/lib/module/RulerRangeHeader.js.map +1 -0
- package/lib/module/RulerRangeHighlight.js +45 -0
- package/lib/module/RulerRangeHighlight.js.map +1 -0
- package/lib/module/RulerRangeIndicator.js +66 -0
- package/lib/module/RulerRangeIndicator.js.map +1 -0
- package/lib/module/RulerRangeRoot.js +75 -0
- package/lib/module/RulerRangeRoot.js.map +1 -0
- package/lib/module/RulerRangeTicks.js +51 -0
- package/lib/module/RulerRangeTicks.js.map +1 -0
- package/lib/module/RulerRangeTrack.js +41 -0
- package/lib/module/RulerRangeTrack.js.map +1 -0
- package/lib/module/RulerResetButton.js +41 -0
- package/lib/module/RulerResetButton.js.map +1 -0
- package/lib/module/RulerRoot.js +82 -0
- package/lib/module/RulerRoot.js.map +1 -0
- package/lib/module/RulerTicks.js +45 -0
- package/lib/module/RulerTicks.js.map +1 -0
- package/lib/module/RulerTrack.js +41 -0
- package/lib/module/RulerTrack.js.map +1 -0
- package/lib/module/Tick.js +41 -36
- package/lib/module/Tick.js.map +1 -1
- package/lib/module/defaults.js +19 -18
- package/lib/module/defaults.js.map +1 -1
- package/lib/module/index.js +46 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/presets.js +103 -0
- package/lib/module/presets.js.map +1 -0
- package/lib/module/tickResolver.js +97 -0
- package/lib/module/tickResolver.js.map +1 -0
- package/lib/module/useHaptics.js +1 -1
- package/lib/module/useHaptics.js.map +1 -1
- package/lib/module/useHaptics.web.js +39 -0
- package/lib/module/useHaptics.web.js.map +1 -0
- package/lib/module/useRulerDatePicker.js +260 -0
- package/lib/module/useRulerDatePicker.js.map +1 -0
- package/lib/module/useRulerDateRangePicker.js +310 -0
- package/lib/module/useRulerDateRangePicker.js.map +1 -0
- package/lib/module/utils.js +59 -45
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/LensTick.d.ts +20 -0
- package/lib/typescript/LensTick.d.ts.map +1 -0
- package/lib/typescript/Ruler.d.ts +31 -0
- package/lib/typescript/Ruler.d.ts.map +1 -0
- package/lib/typescript/RulerContext.d.ts +11 -0
- package/lib/typescript/RulerContext.d.ts.map +1 -0
- package/lib/typescript/RulerDatePicker.d.ts +10 -7
- package/lib/typescript/RulerDatePicker.d.ts.map +1 -1
- package/lib/typescript/RulerDateRangePicker.d.ts +26 -0
- package/lib/typescript/RulerDateRangePicker.d.ts.map +1 -0
- package/lib/typescript/RulerHeader.d.ts +14 -0
- package/lib/typescript/RulerHeader.d.ts.map +1 -0
- package/lib/typescript/RulerIndicator.d.ts +17 -0
- package/lib/typescript/RulerIndicator.d.ts.map +1 -0
- package/lib/typescript/RulerLensTicks.d.ts +12 -0
- package/lib/typescript/RulerLensTicks.d.ts.map +1 -0
- package/lib/typescript/RulerLensTrack.d.ts +13 -0
- package/lib/typescript/RulerLensTrack.d.ts.map +1 -0
- package/lib/typescript/RulerRange.d.ts +32 -0
- package/lib/typescript/RulerRange.d.ts.map +1 -0
- package/lib/typescript/RulerRangeContext.d.ts +11 -0
- package/lib/typescript/RulerRangeContext.d.ts.map +1 -0
- package/lib/typescript/RulerRangeHeader.d.ts +12 -0
- package/lib/typescript/RulerRangeHeader.d.ts.map +1 -0
- package/lib/typescript/RulerRangeHighlight.d.ts +8 -0
- package/lib/typescript/RulerRangeHighlight.d.ts.map +1 -0
- package/lib/typescript/RulerRangeIndicator.d.ts +17 -0
- package/lib/typescript/RulerRangeIndicator.d.ts.map +1 -0
- package/lib/typescript/RulerRangeRoot.d.ts +7 -0
- package/lib/typescript/RulerRangeRoot.d.ts.map +1 -0
- package/lib/typescript/RulerRangeTicks.d.ts +14 -0
- package/lib/typescript/RulerRangeTicks.d.ts.map +1 -0
- package/lib/typescript/RulerRangeTrack.d.ts +8 -0
- package/lib/typescript/RulerRangeTrack.d.ts.map +1 -0
- package/lib/typescript/RulerResetButton.d.ts +10 -0
- package/lib/typescript/RulerResetButton.d.ts.map +1 -0
- package/lib/typescript/RulerRoot.d.ts +7 -0
- package/lib/typescript/RulerRoot.d.ts.map +1 -0
- package/lib/typescript/RulerTicks.d.ts +9 -0
- package/lib/typescript/RulerTicks.d.ts.map +1 -0
- package/lib/typescript/RulerTrack.d.ts +8 -0
- package/lib/typescript/RulerTrack.d.ts.map +1 -0
- package/lib/typescript/Tick.d.ts +3 -16
- package/lib/typescript/Tick.d.ts.map +1 -1
- package/lib/typescript/defaults.d.ts +6 -9
- package/lib/typescript/defaults.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +37 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/presets.d.ts +27 -0
- package/lib/typescript/presets.d.ts.map +1 -0
- package/lib/typescript/tickResolver.d.ts +10 -0
- package/lib/typescript/tickResolver.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +302 -85
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/useHaptics.web.d.ts +17 -0
- package/lib/typescript/useHaptics.web.d.ts.map +1 -0
- package/lib/typescript/useRulerDatePicker.d.ts +26 -0
- package/lib/typescript/useRulerDatePicker.d.ts.map +1 -0
- package/lib/typescript/useRulerDateRangePicker.d.ts +40 -0
- package/lib/typescript/useRulerDateRangePicker.d.ts.map +1 -0
- package/lib/typescript/utils.d.ts +14 -12
- package/lib/typescript/utils.d.ts.map +1 -1
- package/package.json +25 -7
- package/src/LensTick.tsx +90 -0
- package/src/Ruler.ts +32 -0
- package/src/RulerContext.tsx +20 -0
- package/src/RulerDatePicker.tsx +41 -439
- package/src/RulerDateRangePicker.tsx +53 -0
- package/src/RulerHeader.tsx +125 -0
- package/src/RulerIndicator.tsx +84 -0
- package/src/RulerLensTicks.tsx +50 -0
- package/src/RulerLensTrack.tsx +45 -0
- package/src/RulerRange.ts +33 -0
- package/src/RulerRangeContext.tsx +20 -0
- package/src/RulerRangeHeader.tsx +180 -0
- package/src/RulerRangeHighlight.tsx +47 -0
- package/src/RulerRangeIndicator.tsx +85 -0
- package/src/RulerRangeRoot.tsx +87 -0
- package/src/RulerRangeTicks.tsx +68 -0
- package/src/RulerRangeTrack.tsx +39 -0
- package/src/RulerResetButton.tsx +59 -0
- package/src/RulerRoot.tsx +93 -0
- package/src/RulerTicks.tsx +57 -0
- package/src/RulerTrack.tsx +39 -0
- package/src/Tick.tsx +60 -49
- package/src/defaults.ts +21 -19
- package/src/index.ts +83 -1
- package/src/presets.ts +108 -0
- package/src/tickResolver.ts +123 -0
- package/src/types.ts +354 -102
- package/src/useHaptics.web.ts +55 -0
- package/src/useRulerDatePicker.ts +373 -0
- package/src/useRulerDateRangePicker.ts +468 -0
- package/src/utils.ts +67 -68
- package/lib/commonjs/package.json +0 -1
- package/lib/module/package.json +0 -1
package/src/presets.ts
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { TickRule } from './types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Calendar preset:
|
|
5
|
+
* - 1st of month: tall (30px), bold, month name + day label
|
|
6
|
+
* - Weekly (every 7th day): medium-tall (24px), labeled with day number
|
|
7
|
+
* - Weekends (Saturday & Sunday): medium (18px)
|
|
8
|
+
* - Base daily ticks: short (12px)
|
|
9
|
+
*/
|
|
10
|
+
export const DEFAULT_CALENDAR_TICKS: TickRule[] = [
|
|
11
|
+
{
|
|
12
|
+
condition: 'monthly',
|
|
13
|
+
height: 30,
|
|
14
|
+
width: 3.5,
|
|
15
|
+
label: {
|
|
16
|
+
format: (d) =>
|
|
17
|
+
d.toLocaleDateString('en-US', { month: 'short', day: 'numeric' }),
|
|
18
|
+
fontWeight: '700',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
condition: 'weekly',
|
|
23
|
+
height: 24,
|
|
24
|
+
width: 3,
|
|
25
|
+
label: {
|
|
26
|
+
format: (d) => `${d.getDate()}`,
|
|
27
|
+
fontWeight: '600',
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
condition: { dayOfWeek: [0, 6] },
|
|
32
|
+
height: 18,
|
|
33
|
+
width: 2.5,
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
// Catch-all daily fallback
|
|
37
|
+
condition: 'daily',
|
|
38
|
+
height: 12,
|
|
39
|
+
width: 2,
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Metric preset:
|
|
45
|
+
* - Every 10th day: tall (28px), labeled
|
|
46
|
+
* - Every 5th day: medium (18px)
|
|
47
|
+
* - Daily: short (12px)
|
|
48
|
+
*/
|
|
49
|
+
export const DEFAULT_METRIC_TICKS: TickRule[] = [
|
|
50
|
+
{
|
|
51
|
+
condition: { interval: 10 },
|
|
52
|
+
height: 28,
|
|
53
|
+
width: 3.5,
|
|
54
|
+
label: {
|
|
55
|
+
format: (d) => `${d.getDate()}`,
|
|
56
|
+
fontWeight: '600',
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
condition: { interval: 5 },
|
|
61
|
+
height: 18,
|
|
62
|
+
width: 2.5,
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
condition: 'daily',
|
|
66
|
+
height: 12,
|
|
67
|
+
width: 2,
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Minimal preset:
|
|
73
|
+
* - Weekly (7-day): tall (24px), labeled
|
|
74
|
+
* - Daily: short (12px)
|
|
75
|
+
*/
|
|
76
|
+
export const DEFAULT_MINIMAL_TICKS: TickRule[] = [
|
|
77
|
+
{
|
|
78
|
+
condition: 'weekly',
|
|
79
|
+
height: 24,
|
|
80
|
+
width: 3,
|
|
81
|
+
label: {
|
|
82
|
+
format: (d) => `${d.getDate()}`,
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
condition: 'daily',
|
|
87
|
+
height: 12,
|
|
88
|
+
width: 2,
|
|
89
|
+
},
|
|
90
|
+
];
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Resolves a tick configuration prop (preset string or rule array) into an array of TickRule objects.
|
|
94
|
+
*/
|
|
95
|
+
export function resolveTickRules(
|
|
96
|
+
ticks?: TickRule[] | 'calendar' | 'metric' | 'minimal'
|
|
97
|
+
): TickRule[] {
|
|
98
|
+
if (Array.isArray(ticks)) {
|
|
99
|
+
return ticks;
|
|
100
|
+
}
|
|
101
|
+
if (ticks === 'metric') {
|
|
102
|
+
return DEFAULT_METRIC_TICKS;
|
|
103
|
+
}
|
|
104
|
+
if (ticks === 'minimal') {
|
|
105
|
+
return DEFAULT_MINIMAL_TICKS;
|
|
106
|
+
}
|
|
107
|
+
return DEFAULT_CALENDAR_TICKS;
|
|
108
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
TickContext,
|
|
3
|
+
TickCondition,
|
|
4
|
+
TickRule,
|
|
5
|
+
ResolvedTick,
|
|
6
|
+
ResolvedRulerTheme,
|
|
7
|
+
} from './types';
|
|
8
|
+
import { formatDateString } from './utils';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Checks whether a given TickCondition matches the provided TickContext.
|
|
12
|
+
*/
|
|
13
|
+
export function matchesCondition(
|
|
14
|
+
condition: TickCondition | undefined,
|
|
15
|
+
ctx: TickContext
|
|
16
|
+
): boolean {
|
|
17
|
+
if (condition === undefined || condition === 'daily') {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (condition === 'weekly') {
|
|
22
|
+
return ctx.offset % 7 === 0;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (condition === 'monthly') {
|
|
26
|
+
return ctx.date.getDate() === 1;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (condition === 'yearly') {
|
|
30
|
+
return ctx.date.getDate() === 1 && ctx.date.getMonth() === 0;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (typeof condition === 'object') {
|
|
34
|
+
if ('interval' in condition && typeof condition.interval === 'number') {
|
|
35
|
+
return condition.interval !== 0 && ctx.offset % condition.interval === 0;
|
|
36
|
+
}
|
|
37
|
+
if ('dayOfWeek' in condition && Array.isArray(condition.dayOfWeek)) {
|
|
38
|
+
return condition.dayOfWeek.includes(ctx.date.getDay());
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (typeof condition === 'function') {
|
|
43
|
+
return condition(ctx);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Resolves visual attributes for a tick by evaluating the rule array in order (first match wins).
|
|
51
|
+
*/
|
|
52
|
+
export function resolveTick(
|
|
53
|
+
ctx: TickContext,
|
|
54
|
+
rules: TickRule[],
|
|
55
|
+
theme: ResolvedRulerTheme,
|
|
56
|
+
defaultWidth: number = 3
|
|
57
|
+
): ResolvedTick {
|
|
58
|
+
// Find the first matching rule, or fall back to the last rule in the list
|
|
59
|
+
const matchedRule =
|
|
60
|
+
rules.find((rule) => matchesCondition(rule.condition, ctx)) ??
|
|
61
|
+
rules[rules.length - 1];
|
|
62
|
+
|
|
63
|
+
const height = matchedRule?.height ?? 12;
|
|
64
|
+
const width = matchedRule?.width ?? defaultWidth;
|
|
65
|
+
const color = matchedRule?.color ?? theme.defaultTickColor;
|
|
66
|
+
|
|
67
|
+
// Resolve label
|
|
68
|
+
let labelText: string | undefined;
|
|
69
|
+
let labelColor = theme.labelColor;
|
|
70
|
+
let labelFontSize = 10;
|
|
71
|
+
let labelFontWeight: ResolvedTick['labelFontWeight'] = 'normal';
|
|
72
|
+
|
|
73
|
+
if (matchedRule?.label) {
|
|
74
|
+
if (typeof matchedRule.label === 'object') {
|
|
75
|
+
labelText = matchedRule.label.format
|
|
76
|
+
? matchedRule.label.format(ctx.date, ctx)
|
|
77
|
+
: String(ctx.date.getDate());
|
|
78
|
+
if (matchedRule.label.color) labelColor = matchedRule.label.color;
|
|
79
|
+
if (matchedRule.label.fontSize) labelFontSize = matchedRule.label.fontSize;
|
|
80
|
+
if (matchedRule.label.fontWeight) labelFontWeight = matchedRule.label.fontWeight;
|
|
81
|
+
} else if (matchedRule.label === true) {
|
|
82
|
+
labelText = String(ctx.date.getDate());
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Resolve dot indicator
|
|
87
|
+
let hasDot = false;
|
|
88
|
+
let dotSize = 6;
|
|
89
|
+
let dotColor = theme.accentColor;
|
|
90
|
+
|
|
91
|
+
if (matchedRule?.dot !== undefined) {
|
|
92
|
+
if (typeof matchedRule.dot === 'object') {
|
|
93
|
+
hasDot = true;
|
|
94
|
+
if (matchedRule.dot.size) dotSize = matchedRule.dot.size;
|
|
95
|
+
if (matchedRule.dot.color) dotColor = matchedRule.dot.color;
|
|
96
|
+
} else if (matchedRule.dot === true) {
|
|
97
|
+
hasDot = true;
|
|
98
|
+
}
|
|
99
|
+
} else if (ctx.isToday) {
|
|
100
|
+
// Default: show today dot if rule didn't explicitly disable it
|
|
101
|
+
hasDot = true;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return {
|
|
105
|
+
offset: ctx.offset,
|
|
106
|
+
date: ctx.date,
|
|
107
|
+
dateStr: formatDateString(ctx.date),
|
|
108
|
+
height,
|
|
109
|
+
width,
|
|
110
|
+
color,
|
|
111
|
+
labelText,
|
|
112
|
+
labelColor,
|
|
113
|
+
labelFontSize,
|
|
114
|
+
labelFontWeight,
|
|
115
|
+
hasDot,
|
|
116
|
+
dotSize,
|
|
117
|
+
dotColor,
|
|
118
|
+
customRender: matchedRule?.render,
|
|
119
|
+
isToday: ctx.isToday,
|
|
120
|
+
isSelected: ctx.isSelected,
|
|
121
|
+
isInRange: ctx.isInRange ?? false,
|
|
122
|
+
};
|
|
123
|
+
}
|