@dreamstack-us/kaal 0.0.1 → 0.0.3
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 +165 -0
- package/lib/module/components/CalendarGrid/CalendarGrid.js +125 -29
- package/lib/module/components/CalendarGrid/CalendarGrid.js.map +1 -1
- package/lib/module/components/CalendarGrid/CalendarGrid.styles.js +22 -17
- package/lib/module/components/CalendarGrid/CalendarGrid.styles.js.map +1 -1
- package/lib/module/components/CalendarGrid/CalendarGrid.web.js +265 -0
- package/lib/module/components/CalendarGrid/CalendarGrid.web.js.map +1 -0
- package/lib/module/components/CalendarGrid/DayCell.js +77 -53
- package/lib/module/components/CalendarGrid/DayCell.js.map +1 -1
- package/lib/module/components/CalendarGrid/DayCell.web.js +124 -0
- package/lib/module/components/CalendarGrid/DayCell.web.js.map +1 -0
- package/lib/module/components/CalendarGrid/index.js +1 -1
- package/lib/module/components/CalendarGrid/index.js.map +1 -1
- package/lib/module/components/DatePicker/DatePicker.android.js +53 -21
- package/lib/module/components/DatePicker/DatePicker.android.js.map +1 -1
- package/lib/module/components/DatePicker/DatePicker.ios.js +55 -23
- package/lib/module/components/DatePicker/DatePicker.ios.js.map +1 -1
- package/lib/module/components/DatePicker/DatePicker.js.map +1 -1
- package/lib/module/components/DatePicker/DatePicker.styles.js +19 -20
- package/lib/module/components/DatePicker/DatePicker.styles.js.map +1 -1
- package/lib/module/components/DatePicker/DatePicker.web.js +59 -21
- package/lib/module/components/DatePicker/DatePicker.web.js.map +1 -1
- package/lib/module/components/TimePicker/ClockFace.js +27 -7
- package/lib/module/components/TimePicker/ClockFace.js.map +1 -1
- package/lib/module/components/TimePicker/ClockFace.web.js +253 -0
- package/lib/module/components/TimePicker/ClockFace.web.js.map +1 -0
- package/lib/module/components/TimePicker/MaterialTimePicker.js +68 -16
- package/lib/module/components/TimePicker/MaterialTimePicker.js.map +1 -1
- package/lib/module/components/TimePicker/MaterialTimePicker.web.js +231 -0
- package/lib/module/components/TimePicker/MaterialTimePicker.web.js.map +1 -0
- package/lib/module/components/TimePicker/TimePicker.android.js +13 -6
- package/lib/module/components/TimePicker/TimePicker.android.js.map +1 -1
- package/lib/module/components/TimePicker/TimePicker.ios.js +14 -7
- package/lib/module/components/TimePicker/TimePicker.ios.js.map +1 -1
- package/lib/module/components/TimePicker/TimePicker.styles.js +53 -45
- package/lib/module/components/TimePicker/TimePicker.styles.js.map +1 -1
- package/lib/module/components/TimePicker/TimePicker.web.js +24 -12
- package/lib/module/components/TimePicker/TimePicker.web.js.map +1 -1
- package/lib/module/components/TimePicker/TimeWheelPicker.js +45 -10
- package/lib/module/components/TimePicker/TimeWheelPicker.js.map +1 -1
- package/lib/module/components/TimePicker/TimeWheelPicker.web.js +339 -0
- package/lib/module/components/TimePicker/TimeWheelPicker.web.js.map +1 -0
- package/lib/module/components/TimePicker/index.js +3 -3
- package/lib/module/components/TimePicker/index.js.map +1 -1
- package/lib/module/components/WheelPicker/WheelPicker.js +21 -2
- package/lib/module/components/WheelPicker/WheelPicker.js.map +1 -1
- package/lib/module/components/WheelPicker/WheelPicker.styles.js +13 -8
- package/lib/module/components/WheelPicker/WheelPicker.styles.js.map +1 -1
- package/lib/module/components/WheelPicker/WheelPicker.web.js +146 -57
- package/lib/module/components/WheelPicker/WheelPicker.web.js.map +1 -1
- package/lib/module/context/ThemeOverrideContext.js +34 -0
- package/lib/module/context/ThemeOverrideContext.js.map +1 -0
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/validation.js +74 -34
- package/lib/module/utils/validation.js.map +1 -1
- package/lib/typescript/components/CalendarGrid/CalendarGrid.d.ts +24 -3
- package/lib/typescript/components/CalendarGrid/CalendarGrid.d.ts.map +1 -1
- package/lib/typescript/components/CalendarGrid/CalendarGrid.styles.d.ts +12 -10
- package/lib/typescript/components/CalendarGrid/CalendarGrid.styles.d.ts.map +1 -1
- package/lib/typescript/components/CalendarGrid/CalendarGrid.web.d.ts +33 -0
- package/lib/typescript/components/CalendarGrid/CalendarGrid.web.d.ts.map +1 -0
- package/lib/typescript/components/CalendarGrid/DayCell.d.ts +3 -0
- package/lib/typescript/components/CalendarGrid/DayCell.d.ts.map +1 -1
- package/lib/typescript/components/CalendarGrid/DayCell.web.d.ts +15 -0
- package/lib/typescript/components/CalendarGrid/DayCell.web.d.ts.map +1 -0
- package/lib/typescript/components/DatePicker/DatePicker.android.d.ts.map +1 -1
- package/lib/typescript/components/DatePicker/DatePicker.d.ts +27 -4
- package/lib/typescript/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/lib/typescript/components/DatePicker/DatePicker.ios.d.ts.map +1 -1
- package/lib/typescript/components/DatePicker/DatePicker.styles.d.ts +12 -13
- package/lib/typescript/components/DatePicker/DatePicker.styles.d.ts.map +1 -1
- package/lib/typescript/components/DatePicker/DatePicker.web.d.ts.map +1 -1
- package/lib/typescript/components/TimePicker/ClockFace.d.ts.map +1 -1
- package/lib/typescript/components/TimePicker/ClockFace.web.d.ts +12 -0
- package/lib/typescript/components/TimePicker/ClockFace.web.d.ts.map +1 -0
- package/lib/typescript/components/TimePicker/MaterialTimePicker.d.ts.map +1 -1
- package/lib/typescript/components/TimePicker/MaterialTimePicker.web.d.ts +12 -0
- package/lib/typescript/components/TimePicker/MaterialTimePicker.web.d.ts.map +1 -0
- package/lib/typescript/components/TimePicker/TimePicker.android.d.ts.map +1 -1
- package/lib/typescript/components/TimePicker/TimePicker.ios.d.ts.map +1 -1
- package/lib/typescript/components/TimePicker/TimePicker.styles.d.ts +29 -25
- package/lib/typescript/components/TimePicker/TimePicker.styles.d.ts.map +1 -1
- package/lib/typescript/components/TimePicker/TimePicker.web.d.ts.map +1 -1
- package/lib/typescript/components/TimePicker/TimeWheelPicker.d.ts.map +1 -1
- package/lib/typescript/components/TimePicker/TimeWheelPicker.web.d.ts +11 -0
- package/lib/typescript/components/TimePicker/TimeWheelPicker.web.d.ts.map +1 -0
- package/lib/typescript/components/WheelPicker/WheelPicker.d.ts +14 -1
- package/lib/typescript/components/WheelPicker/WheelPicker.d.ts.map +1 -1
- package/lib/typescript/components/WheelPicker/WheelPicker.styles.d.ts +9 -7
- package/lib/typescript/components/WheelPicker/WheelPicker.styles.d.ts.map +1 -1
- package/lib/typescript/components/WheelPicker/WheelPicker.web.d.ts.map +1 -1
- package/lib/typescript/context/ThemeOverrideContext.d.ts +23 -0
- package/lib/typescript/context/ThemeOverrideContext.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +4 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/types/datepicker.d.ts +78 -3
- package/lib/typescript/types/datepicker.d.ts.map +1 -1
- package/lib/typescript/types/timepicker.d.ts +62 -0
- package/lib/typescript/types/timepicker.d.ts.map +1 -1
- package/lib/typescript/utils/validation.d.ts +47 -27
- package/lib/typescript/utils/validation.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/components/CalendarGrid/CalendarGrid.styles.ts +21 -17
- package/src/components/CalendarGrid/CalendarGrid.tsx +265 -85
- package/src/components/CalendarGrid/CalendarGrid.web.tsx +396 -0
- package/src/components/CalendarGrid/DayCell.tsx +122 -61
- package/src/components/CalendarGrid/DayCell.web.tsx +171 -0
- package/src/components/DatePicker/DatePicker.android.tsx +48 -24
- package/src/components/DatePicker/DatePicker.ios.tsx +51 -27
- package/src/components/DatePicker/DatePicker.styles.ts +18 -22
- package/src/components/DatePicker/DatePicker.tsx +35 -4
- package/src/components/DatePicker/DatePicker.web.tsx +55 -23
- package/src/components/TimePicker/ClockFace.tsx +34 -8
- package/src/components/TimePicker/ClockFace.web.tsx +303 -0
- package/src/components/TimePicker/MaterialTimePicker.tsx +144 -13
- package/src/components/TimePicker/MaterialTimePicker.web.tsx +271 -0
- package/src/components/TimePicker/TimePicker.android.tsx +9 -1
- package/src/components/TimePicker/TimePicker.ios.tsx +10 -6
- package/src/components/TimePicker/TimePicker.styles.ts +52 -45
- package/src/components/TimePicker/TimePicker.web.tsx +17 -7
- package/src/components/TimePicker/TimeWheelPicker.tsx +60 -6
- package/src/components/TimePicker/TimeWheelPicker.web.tsx +401 -0
- package/src/components/WheelPicker/WheelPicker.styles.ts +12 -8
- package/src/components/WheelPicker/WheelPicker.tsx +24 -2
- package/src/components/WheelPicker/WheelPicker.web.tsx +153 -57
- package/src/context/ThemeOverrideContext.tsx +38 -0
- package/src/index.ts +13 -0
- package/src/types/datepicker.ts +87 -3
- package/src/types/timepicker.ts +74 -0
- package/src/utils/validation.ts +111 -55
- package/lib/module/unistyles.js +0 -9
- package/lib/module/unistyles.js.map +0 -1
- package/lib/typescript/unistyles.d.ts +0 -3
- package/lib/typescript/unistyles.d.ts.map +0 -1
- package/src/unistyles.ts +0 -6
package/README.md
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# @dreamstack-us/kaal
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@dreamstack-us/kaal)
|
|
4
|
+
[](https://www.npmjs.com/package/@dreamstack-us/kaal)
|
|
5
|
+
[](https://bundlephobia.com/package/@dreamstack-us/kaal)
|
|
6
|
+
[](https://github.com/DreamStack-us/kaal/blob/main/LICENSE)
|
|
7
|
+
|
|
8
|
+
High-performance React Native DatePicker & TimePicker for the New Architecture. Features native iOS/Android pickers via Expo, cross-platform calendar grid, Material Design 3 clock face, and full web support.
|
|
9
|
+
|
|
10
|
+
## Features
|
|
11
|
+
|
|
12
|
+
- **Sub-8KB Bundle** - Lightweight and optimized, no bloated dependencies
|
|
13
|
+
- **Native Date API** - Uses JavaScript Date and Intl APIs, no Temporal polyfill required
|
|
14
|
+
- **M3 Clock Face** - Material Design 3 clock for intuitive time selection
|
|
15
|
+
- **Cross-Platform** - Works on iOS, Android, and Web with consistent APIs
|
|
16
|
+
- **Design System Ready** - Full theming via `themeOverrides` prop
|
|
17
|
+
- **TypeScript First** - Complete type definitions for props and theme overrides
|
|
18
|
+
- **Range Selection** - Select date ranges with visual highlighting
|
|
19
|
+
|
|
20
|
+
## Requirements
|
|
21
|
+
|
|
22
|
+
- React Native 0.78+ (New Architecture only)
|
|
23
|
+
- Expo SDK 53+ (for native pickers)
|
|
24
|
+
|
|
25
|
+
## Installation
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm install @dreamstack-us/kaal
|
|
29
|
+
# or
|
|
30
|
+
yarn add @dreamstack-us/kaal
|
|
31
|
+
# or
|
|
32
|
+
bun add @dreamstack-us/kaal
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Quick Start
|
|
36
|
+
|
|
37
|
+
### DatePicker
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
import { useState } from 'react';
|
|
41
|
+
import { DatePicker } from '@dreamstack-us/kaal';
|
|
42
|
+
|
|
43
|
+
export default function App() {
|
|
44
|
+
const [date, setDate] = useState(new Date());
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<DatePicker
|
|
48
|
+
value={date}
|
|
49
|
+
onChange={setDate}
|
|
50
|
+
variant="calendar"
|
|
51
|
+
themeOverrides={{
|
|
52
|
+
primaryColor: '#3b82f6',
|
|
53
|
+
backgroundColor: '#ffffff',
|
|
54
|
+
}}
|
|
55
|
+
/>
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Date Range Selection
|
|
61
|
+
|
|
62
|
+
```tsx
|
|
63
|
+
import { useState } from 'react';
|
|
64
|
+
import { DatePicker } from '@dreamstack-us/kaal';
|
|
65
|
+
|
|
66
|
+
export default function App() {
|
|
67
|
+
const [range, setRange] = useState({
|
|
68
|
+
startDate: new Date(),
|
|
69
|
+
endDate: null,
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
return (
|
|
73
|
+
<DatePicker
|
|
74
|
+
selectionMode="range"
|
|
75
|
+
startDate={range.startDate}
|
|
76
|
+
endDate={range.endDate}
|
|
77
|
+
onRangeChange={setRange}
|
|
78
|
+
themeOverrides={{
|
|
79
|
+
primaryColor: '#3b82f6',
|
|
80
|
+
cellInRangeColor: 'rgba(59, 130, 246, 0.15)',
|
|
81
|
+
}}
|
|
82
|
+
/>
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### TimePicker
|
|
88
|
+
|
|
89
|
+
```tsx
|
|
90
|
+
import { useState } from 'react';
|
|
91
|
+
import { TimePicker } from '@dreamstack-us/kaal';
|
|
92
|
+
|
|
93
|
+
export default function App() {
|
|
94
|
+
const [time, setTime] = useState({ hours: 9, minutes: 30 });
|
|
95
|
+
|
|
96
|
+
return (
|
|
97
|
+
<TimePicker
|
|
98
|
+
value={time}
|
|
99
|
+
onChange={setTime}
|
|
100
|
+
theme="android" // Material clock face
|
|
101
|
+
is24Hour={false}
|
|
102
|
+
/>
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Props
|
|
108
|
+
|
|
109
|
+
### DatePicker Props
|
|
110
|
+
|
|
111
|
+
| Prop | Type | Default | Description |
|
|
112
|
+
|------|------|---------|-------------|
|
|
113
|
+
| `value` | `Date` | required | Selected date (single mode) |
|
|
114
|
+
| `onChange` | `(date: Date) => void` | required | Callback when date changes (single mode) |
|
|
115
|
+
| `selectionMode` | `'single' \| 'range'` | `'single'` | Selection mode |
|
|
116
|
+
| `startDate` | `Date \| null` | - | Range start date (range mode) |
|
|
117
|
+
| `endDate` | `Date \| null` | - | Range end date (range mode) |
|
|
118
|
+
| `onRangeChange` | `(range: DateRange) => void` | - | Callback when range changes (range mode) |
|
|
119
|
+
| `variant` | `'calendar' \| 'wheel' \| 'compact'` | `'calendar'` | Picker variant |
|
|
120
|
+
| `theme` | `'native' \| 'ios' \| 'android' \| 'custom'` | `'native'` | Visual theme |
|
|
121
|
+
| `minDate` | `Date` | - | Minimum selectable date |
|
|
122
|
+
| `maxDate` | `Date` | - | Maximum selectable date |
|
|
123
|
+
| `disabledDates` | `Date[]` | `[]` | Array of disabled dates |
|
|
124
|
+
| `weekStartsOn` | `0 \| 1` | `0` | First day of week (0=Sun, 1=Mon) |
|
|
125
|
+
| `themeOverrides` | `DatePickerThemeOverrides` | - | Custom theme overrides |
|
|
126
|
+
|
|
127
|
+
### TimePicker Props
|
|
128
|
+
|
|
129
|
+
| Prop | Type | Default | Description |
|
|
130
|
+
|------|------|---------|-------------|
|
|
131
|
+
| `value` | `{ hours: number; minutes: number }` | required | Selected time |
|
|
132
|
+
| `onChange` | `(time: TimeValue) => void` | required | Callback when time changes |
|
|
133
|
+
| `theme` | `'native' \| 'ios' \| 'android'` | `'native'` | Visual theme |
|
|
134
|
+
| `is24Hour` | `boolean` | `false` | Use 24-hour format |
|
|
135
|
+
| `minuteInterval` | `1 \| 5 \| 10 \| 15 \| 30` | `1` | Minute step interval |
|
|
136
|
+
| `minTime` | `TimeValue` | - | Minimum selectable time |
|
|
137
|
+
| `maxTime` | `TimeValue` | - | Maximum selectable time |
|
|
138
|
+
| `themeOverrides` | `TimePickerThemeOverrides` | - | Custom theme overrides |
|
|
139
|
+
|
|
140
|
+
## Theme Overrides
|
|
141
|
+
|
|
142
|
+
Style components without a theme provider:
|
|
143
|
+
|
|
144
|
+
```tsx
|
|
145
|
+
<DatePicker
|
|
146
|
+
themeOverrides={{
|
|
147
|
+
primaryColor: '#3b82f6',
|
|
148
|
+
cellSelectedColor: '#3b82f6',
|
|
149
|
+
cellTodayColor: 'rgba(59, 130, 246, 0.1)',
|
|
150
|
+
cellInRangeColor: 'rgba(59, 130, 246, 0.15)',
|
|
151
|
+
textColor: '#1e293b',
|
|
152
|
+
textSelectedColor: '#ffffff',
|
|
153
|
+
backgroundColor: '#ffffff',
|
|
154
|
+
borderRadius: 16,
|
|
155
|
+
}}
|
|
156
|
+
/>
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Documentation
|
|
160
|
+
|
|
161
|
+
Full documentation with live examples: [kaal.dreamstack.us](https://kaal.dreamstack.us)
|
|
162
|
+
|
|
163
|
+
## License
|
|
164
|
+
|
|
165
|
+
MIT
|
|
@@ -2,17 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
import React, { memo, useCallback, useMemo } from 'react';
|
|
4
4
|
import { FlatList, Pressable, Text, View } from 'react-native';
|
|
5
|
+
import { useDatePickerOverrides } from "../../context/ThemeOverrideContext.js";
|
|
5
6
|
import { addMonths, compareDates, formatYearMonth, getDayOfWeek, getFirstDayOfMonth, getMonthDays, isSameDay, today } from "../../utils/date.js";
|
|
6
7
|
import { styles } from "./CalendarGrid.styles.js";
|
|
7
|
-
import { DayCell } from
|
|
8
|
+
import { DayCell } from './DayCell';
|
|
8
9
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
10
|
const CELL_SIZE = 44;
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
|
|
12
|
+
// Week day labels starting from Sunday
|
|
13
|
+
const WEEK_DAYS_SUNDAY_START = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
|
|
14
|
+
const WEEK_DAYS_MONDAY_START = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Generate padding days for the month grid based on week start day
|
|
18
|
+
* TODO: This logic should be refactored when adding locale support
|
|
19
|
+
*/
|
|
20
|
+
const generateMonthDays = (currentMonth, weekStartsOn) => {
|
|
12
21
|
const firstDay = getFirstDayOfMonth(currentMonth);
|
|
13
|
-
// getDayOfWeek returns 0 for Sunday,
|
|
14
|
-
const
|
|
15
|
-
|
|
22
|
+
// getDayOfWeek returns 0 for Sunday, 1 for Monday, etc.
|
|
23
|
+
const dayOfWeek = getDayOfWeek(firstDay);
|
|
24
|
+
|
|
25
|
+
// Calculate padding days based on week start
|
|
26
|
+
let paddingDays;
|
|
27
|
+
if (weekStartsOn === 0) {
|
|
28
|
+
// Sunday start: Sunday = 0 padding, Monday = 1, etc.
|
|
29
|
+
paddingDays = dayOfWeek;
|
|
30
|
+
} else {
|
|
31
|
+
// Monday start: Monday = 0 padding, Sunday = 6 padding
|
|
32
|
+
paddingDays = dayOfWeek === 0 ? 6 : dayOfWeek - 1;
|
|
33
|
+
}
|
|
16
34
|
const days = [];
|
|
17
35
|
for (let i = 0; i < paddingDays; i++) {
|
|
18
36
|
days.push(null);
|
|
@@ -29,16 +47,26 @@ const generateMonthDays = currentMonth => {
|
|
|
29
47
|
}
|
|
30
48
|
return days;
|
|
31
49
|
};
|
|
32
|
-
export const CalendarGrid = /*#__PURE__*/memo(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
50
|
+
export const CalendarGrid = /*#__PURE__*/memo(props => {
|
|
51
|
+
const {
|
|
52
|
+
minDate,
|
|
53
|
+
maxDate,
|
|
54
|
+
disabledDates,
|
|
55
|
+
themeMode,
|
|
56
|
+
weekStartsOn = 0,
|
|
57
|
+
selectionMode = 'single'
|
|
58
|
+
} = props;
|
|
59
|
+
|
|
60
|
+
// Extract mode-specific props
|
|
61
|
+
const singleValue = selectionMode === 'single' ? props.value : null;
|
|
62
|
+
const singleOnChange = selectionMode === 'single' ? props.onChange : null;
|
|
63
|
+
const rangeStart = selectionMode === 'range' ? props.startDate : null;
|
|
64
|
+
const rangeEnd = selectionMode === 'range' ? props.endDate : null;
|
|
65
|
+
const rangeOnChange = selectionMode === 'range' ? props.onRangeChange : null;
|
|
66
|
+
const overrides = useDatePickerOverrides();
|
|
67
|
+
const [currentMonth, setCurrentMonth] = React.useState(() => getFirstDayOfMonth(singleValue ?? rangeStart ?? new Date()));
|
|
68
|
+
const days = useMemo(() => generateMonthDays(currentMonth, weekStartsOn), [currentMonth, weekStartsOn]);
|
|
69
|
+
const weekDays = weekStartsOn === 0 ? WEEK_DAYS_SUNDAY_START : WEEK_DAYS_MONDAY_START;
|
|
42
70
|
const todayDate = useMemo(() => today(), []);
|
|
43
71
|
const isDisabled = useCallback(date => {
|
|
44
72
|
if (!date) return true;
|
|
@@ -50,47 +78,115 @@ export const CalendarGrid = /*#__PURE__*/memo(({
|
|
|
50
78
|
const navigateMonth = useCallback(direction => {
|
|
51
79
|
setCurrentMonth(prev => addMonths(prev, direction));
|
|
52
80
|
}, []);
|
|
81
|
+
|
|
82
|
+
// Handle date press for both single and range modes
|
|
83
|
+
const handleDatePress = useCallback(date => {
|
|
84
|
+
if (selectionMode === 'single' && singleOnChange) {
|
|
85
|
+
singleOnChange(date);
|
|
86
|
+
} else if (selectionMode === 'range' && rangeOnChange) {
|
|
87
|
+
// Range selection logic:
|
|
88
|
+
// 1. If no start date, set start date
|
|
89
|
+
// 2. If start date but no end date, set end date (if after start)
|
|
90
|
+
// 3. If both dates exist, reset to new start date
|
|
91
|
+
if (!rangeStart || rangeStart && rangeEnd) {
|
|
92
|
+
rangeOnChange({
|
|
93
|
+
startDate: date,
|
|
94
|
+
endDate: null
|
|
95
|
+
});
|
|
96
|
+
} else {
|
|
97
|
+
// Have start but no end
|
|
98
|
+
if (compareDates(date, rangeStart) < 0) {
|
|
99
|
+
// Clicked before start - make this the new start
|
|
100
|
+
rangeOnChange({
|
|
101
|
+
startDate: date,
|
|
102
|
+
endDate: null
|
|
103
|
+
});
|
|
104
|
+
} else if (isSameDay(date, rangeStart)) {
|
|
105
|
+
// Clicked same day - clear selection
|
|
106
|
+
rangeOnChange({
|
|
107
|
+
startDate: date,
|
|
108
|
+
endDate: null
|
|
109
|
+
});
|
|
110
|
+
} else {
|
|
111
|
+
// Clicked after start - set as end date
|
|
112
|
+
rangeOnChange({
|
|
113
|
+
startDate: rangeStart,
|
|
114
|
+
endDate: date
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}, [selectionMode, singleOnChange, rangeOnChange, rangeStart, rangeEnd]);
|
|
120
|
+
|
|
121
|
+
// Check if date is in range (between start and end)
|
|
122
|
+
const isDateInRange = useCallback(date => {
|
|
123
|
+
if (!date || selectionMode !== 'range' || !rangeStart || !rangeEnd) {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
return compareDates(date, rangeStart) > 0 && compareDates(date, rangeEnd) < 0;
|
|
127
|
+
}, [selectionMode, rangeStart, rangeEnd]);
|
|
53
128
|
const renderDay = useCallback(({
|
|
54
129
|
item
|
|
55
|
-
}) =>
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
130
|
+
}) => {
|
|
131
|
+
const isRangeStart = selectionMode === 'range' && item && rangeStart ? isSameDay(item, rangeStart) : false;
|
|
132
|
+
const isRangeEnd = selectionMode === 'range' && item && rangeEnd ? isSameDay(item, rangeEnd) : false;
|
|
133
|
+
const isSelected = selectionMode === 'single' && item && singleValue ? isSameDay(item, singleValue) : false;
|
|
134
|
+
return /*#__PURE__*/_jsx(DayCell, {
|
|
135
|
+
date: item,
|
|
136
|
+
isSelected: isSelected,
|
|
137
|
+
isToday: item ? isSameDay(item, todayDate) : false,
|
|
138
|
+
isDisabled: isDisabled(item),
|
|
139
|
+
isWeekend: item ? getDayOfWeek(item) === 0 || getDayOfWeek(item) === 6 : false,
|
|
140
|
+
isRangeStart: isRangeStart,
|
|
141
|
+
isRangeEnd: isRangeEnd,
|
|
142
|
+
isInRange: isDateInRange(item),
|
|
143
|
+
onPress: item && !isDisabled(item) ? () => handleDatePress(item) : undefined
|
|
144
|
+
});
|
|
145
|
+
}, [selectionMode, singleValue, rangeStart, rangeEnd, todayDate, isDisabled, isDateInRange, handleDatePress]);
|
|
63
146
|
const keyExtractor = useCallback((item, index) => item?.toISOString() ?? `empty-${index}`, []);
|
|
64
147
|
const getItemLayout = useCallback((_data, index) => ({
|
|
65
148
|
length: CELL_SIZE,
|
|
66
149
|
offset: CELL_SIZE * Math.floor(index / 7),
|
|
67
150
|
index
|
|
68
151
|
}), []);
|
|
152
|
+
|
|
153
|
+
// Build override styles from themeOverrides
|
|
154
|
+
const containerStyle = useMemo(() => ({
|
|
155
|
+
backgroundColor: overrides?.backgroundColor ?? '#1E1E1E',
|
|
156
|
+
borderRadius: overrides?.borderRadius ?? 16,
|
|
157
|
+
padding: overrides?.padding ?? 16
|
|
158
|
+
}), [overrides]);
|
|
159
|
+
const navTextStyle = useMemo(() => ({
|
|
160
|
+
color: overrides?.primaryColor ?? '#4DA6FF'
|
|
161
|
+
}), [overrides]);
|
|
162
|
+
const monthTitleStyle = useMemo(() => ({
|
|
163
|
+
color: overrides?.textColor ?? '#FFFFFF'
|
|
164
|
+
}), [overrides]);
|
|
69
165
|
return /*#__PURE__*/_jsxs(View, {
|
|
70
|
-
style: styles.container,
|
|
166
|
+
style: [styles.container, containerStyle],
|
|
71
167
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
72
168
|
style: styles.header,
|
|
73
169
|
children: [/*#__PURE__*/_jsx(Pressable, {
|
|
74
170
|
onPress: () => navigateMonth(-1),
|
|
75
171
|
style: styles.navButton,
|
|
76
172
|
children: /*#__PURE__*/_jsx(Text, {
|
|
77
|
-
style: styles.navText,
|
|
173
|
+
style: [styles.navText, navTextStyle],
|
|
78
174
|
children: "\u2039"
|
|
79
175
|
})
|
|
80
176
|
}), /*#__PURE__*/_jsx(Text, {
|
|
81
|
-
style: styles.monthTitle,
|
|
177
|
+
style: [styles.monthTitle, monthTitleStyle],
|
|
82
178
|
children: formatYearMonth(currentMonth)
|
|
83
179
|
}), /*#__PURE__*/_jsx(Pressable, {
|
|
84
180
|
onPress: () => navigateMonth(1),
|
|
85
181
|
style: styles.navButton,
|
|
86
182
|
children: /*#__PURE__*/_jsx(Text, {
|
|
87
|
-
style: styles.navText,
|
|
183
|
+
style: [styles.navText, navTextStyle],
|
|
88
184
|
children: "\u203A"
|
|
89
185
|
})
|
|
90
186
|
})]
|
|
91
187
|
}), /*#__PURE__*/_jsx(View, {
|
|
92
188
|
style: styles.weekDays,
|
|
93
|
-
children:
|
|
189
|
+
children: weekDays.map(day => /*#__PURE__*/_jsx(Text, {
|
|
94
190
|
style: styles.weekDayText,
|
|
95
191
|
children: day
|
|
96
192
|
}, day))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useCallback","useMemo","FlatList","Pressable","Text","View","addMonths","compareDates","formatYearMonth","getDayOfWeek","getFirstDayOfMonth","getMonthDays","isSameDay","today","styles","DayCell","jsx","_jsx","jsxs","_jsxs","CELL_SIZE","
|
|
1
|
+
{"version":3,"names":["React","memo","useCallback","useMemo","FlatList","Pressable","Text","View","useDatePickerOverrides","addMonths","compareDates","formatYearMonth","getDayOfWeek","getFirstDayOfMonth","getMonthDays","isSameDay","today","styles","DayCell","jsx","_jsx","jsxs","_jsxs","CELL_SIZE","WEEK_DAYS_SUNDAY_START","WEEK_DAYS_MONDAY_START","generateMonthDays","currentMonth","weekStartsOn","firstDay","dayOfWeek","paddingDays","days","i","push","monthDays","getUTCFullYear","getUTCMonth","day","remaining","length","CalendarGrid","props","minDate","maxDate","disabledDates","themeMode","selectionMode","singleValue","value","singleOnChange","onChange","rangeStart","startDate","rangeEnd","endDate","rangeOnChange","onRangeChange","overrides","setCurrentMonth","useState","Date","weekDays","todayDate","isDisabled","date","some","d","navigateMonth","direction","prev","handleDatePress","isDateInRange","renderDay","item","isRangeStart","isRangeEnd","isSelected","isToday","isWeekend","isInRange","onPress","undefined","keyExtractor","index","toISOString","getItemLayout","_data","offset","Math","floor","containerStyle","backgroundColor","borderRadius","padding","navTextStyle","color","primaryColor","monthTitleStyle","textColor","style","container","children","header","navButton","navText","monthTitle","map","weekDayText","data","renderItem","numColumns","scrollEnabled","removeClippedSubviews","maxToRenderPerBatch","windowSize","initialNumToRender","displayName"],"sourceRoot":"../../../../src","sources":["components/CalendarGrid/CalendarGrid.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,46 +1,51 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { StyleSheet } from 'react-native
|
|
4
|
-
|
|
3
|
+
import { StyleSheet } from 'react-native';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Default styles for CalendarGrid using plain React Native StyleSheet.
|
|
7
|
+
* Colors use dark theme defaults - consumers override via themeOverrides prop.
|
|
8
|
+
*/
|
|
9
|
+
export const styles = StyleSheet.create({
|
|
5
10
|
container: {
|
|
6
|
-
backgroundColor:
|
|
7
|
-
borderRadius:
|
|
8
|
-
padding:
|
|
11
|
+
backgroundColor: '#1E1E1E',
|
|
12
|
+
borderRadius: 16,
|
|
13
|
+
padding: 16
|
|
9
14
|
},
|
|
10
15
|
header: {
|
|
11
16
|
flexDirection: 'row',
|
|
12
17
|
justifyContent: 'space-between',
|
|
13
18
|
alignItems: 'center',
|
|
14
|
-
marginBottom:
|
|
15
|
-
paddingHorizontal:
|
|
19
|
+
marginBottom: 16,
|
|
20
|
+
paddingHorizontal: 8
|
|
16
21
|
},
|
|
17
22
|
navButton: {
|
|
18
23
|
width: 40,
|
|
19
24
|
height: 40,
|
|
20
25
|
justifyContent: 'center',
|
|
21
26
|
alignItems: 'center',
|
|
22
|
-
borderRadius:
|
|
27
|
+
borderRadius: 8
|
|
23
28
|
},
|
|
24
29
|
navText: {
|
|
25
30
|
fontSize: 24,
|
|
26
|
-
color:
|
|
31
|
+
color: '#4DA6FF',
|
|
27
32
|
fontWeight: '600'
|
|
28
33
|
},
|
|
29
34
|
monthTitle: {
|
|
30
|
-
fontSize:
|
|
31
|
-
fontWeight:
|
|
32
|
-
color:
|
|
35
|
+
fontSize: 17,
|
|
36
|
+
fontWeight: '600',
|
|
37
|
+
color: '#FFFFFF'
|
|
33
38
|
},
|
|
34
39
|
weekDays: {
|
|
35
40
|
flexDirection: 'row',
|
|
36
|
-
marginBottom:
|
|
41
|
+
marginBottom: 8
|
|
37
42
|
},
|
|
38
43
|
weekDayText: {
|
|
39
44
|
flex: 1,
|
|
40
45
|
textAlign: 'center',
|
|
41
|
-
fontSize:
|
|
42
|
-
fontWeight:
|
|
43
|
-
color:
|
|
46
|
+
fontSize: 13,
|
|
47
|
+
fontWeight: '500',
|
|
48
|
+
color: '#8E8E93'
|
|
44
49
|
}
|
|
45
|
-
})
|
|
50
|
+
});
|
|
46
51
|
//# sourceMappingURL=CalendarGrid.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","styles","create","
|
|
1
|
+
{"version":3,"names":["StyleSheet","styles","create","container","backgroundColor","borderRadius","padding","header","flexDirection","justifyContent","alignItems","marginBottom","paddingHorizontal","navButton","width","height","navText","fontSize","color","fontWeight","monthTitle","weekDays","weekDayText","flex","textAlign"],"sourceRoot":"../../../../src","sources":["components/CalendarGrid/CalendarGrid.styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;;AAEzC;AACA;AACA;AACA;AACA,OAAO,MAAMC,MAAM,GAAGD,UAAU,CAACE,MAAM,CAAC;EACtCC,SAAS,EAAE;IACTC,eAAe,EAAE,SAAS;IAC1BC,YAAY,EAAE,EAAE;IAChBC,OAAO,EAAE;EACX,CAAC;EACDC,MAAM,EAAE;IACNC,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAE,EAAE;IAChBC,iBAAiB,EAAE;EACrB,CAAC;EACDC,SAAS,EAAE;IACTC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVN,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBL,YAAY,EAAE;EAChB,CAAC;EACDW,OAAO,EAAE;IACPC,QAAQ,EAAE,EAAE;IACZC,KAAK,EAAE,SAAS;IAChBC,UAAU,EAAE;EACd,CAAC;EACDC,UAAU,EAAE;IACVH,QAAQ,EAAE,EAAE;IACZE,UAAU,EAAE,KAAK;IACjBD,KAAK,EAAE;EACT,CAAC;EACDG,QAAQ,EAAE;IACRb,aAAa,EAAE,KAAK;IACpBG,YAAY,EAAE;EAChB,CAAC;EACDW,WAAW,EAAE;IACXC,IAAI,EAAE,CAAC;IACPC,SAAS,EAAE,QAAQ;IACnBP,QAAQ,EAAE,EAAE;IACZE,UAAU,EAAE,KAAK;IACjBD,KAAK,EAAE;EACT;AACF,CAAC,CAAC","ignoreList":[]}
|