@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.
Files changed (136) hide show
  1. package/README.md +165 -0
  2. package/lib/module/components/CalendarGrid/CalendarGrid.js +125 -29
  3. package/lib/module/components/CalendarGrid/CalendarGrid.js.map +1 -1
  4. package/lib/module/components/CalendarGrid/CalendarGrid.styles.js +22 -17
  5. package/lib/module/components/CalendarGrid/CalendarGrid.styles.js.map +1 -1
  6. package/lib/module/components/CalendarGrid/CalendarGrid.web.js +265 -0
  7. package/lib/module/components/CalendarGrid/CalendarGrid.web.js.map +1 -0
  8. package/lib/module/components/CalendarGrid/DayCell.js +77 -53
  9. package/lib/module/components/CalendarGrid/DayCell.js.map +1 -1
  10. package/lib/module/components/CalendarGrid/DayCell.web.js +124 -0
  11. package/lib/module/components/CalendarGrid/DayCell.web.js.map +1 -0
  12. package/lib/module/components/CalendarGrid/index.js +1 -1
  13. package/lib/module/components/CalendarGrid/index.js.map +1 -1
  14. package/lib/module/components/DatePicker/DatePicker.android.js +53 -21
  15. package/lib/module/components/DatePicker/DatePicker.android.js.map +1 -1
  16. package/lib/module/components/DatePicker/DatePicker.ios.js +55 -23
  17. package/lib/module/components/DatePicker/DatePicker.ios.js.map +1 -1
  18. package/lib/module/components/DatePicker/DatePicker.js.map +1 -1
  19. package/lib/module/components/DatePicker/DatePicker.styles.js +19 -20
  20. package/lib/module/components/DatePicker/DatePicker.styles.js.map +1 -1
  21. package/lib/module/components/DatePicker/DatePicker.web.js +59 -21
  22. package/lib/module/components/DatePicker/DatePicker.web.js.map +1 -1
  23. package/lib/module/components/TimePicker/ClockFace.js +27 -7
  24. package/lib/module/components/TimePicker/ClockFace.js.map +1 -1
  25. package/lib/module/components/TimePicker/ClockFace.web.js +253 -0
  26. package/lib/module/components/TimePicker/ClockFace.web.js.map +1 -0
  27. package/lib/module/components/TimePicker/MaterialTimePicker.js +68 -16
  28. package/lib/module/components/TimePicker/MaterialTimePicker.js.map +1 -1
  29. package/lib/module/components/TimePicker/MaterialTimePicker.web.js +231 -0
  30. package/lib/module/components/TimePicker/MaterialTimePicker.web.js.map +1 -0
  31. package/lib/module/components/TimePicker/TimePicker.android.js +13 -6
  32. package/lib/module/components/TimePicker/TimePicker.android.js.map +1 -1
  33. package/lib/module/components/TimePicker/TimePicker.ios.js +14 -7
  34. package/lib/module/components/TimePicker/TimePicker.ios.js.map +1 -1
  35. package/lib/module/components/TimePicker/TimePicker.styles.js +53 -45
  36. package/lib/module/components/TimePicker/TimePicker.styles.js.map +1 -1
  37. package/lib/module/components/TimePicker/TimePicker.web.js +24 -12
  38. package/lib/module/components/TimePicker/TimePicker.web.js.map +1 -1
  39. package/lib/module/components/TimePicker/TimeWheelPicker.js +45 -10
  40. package/lib/module/components/TimePicker/TimeWheelPicker.js.map +1 -1
  41. package/lib/module/components/TimePicker/TimeWheelPicker.web.js +339 -0
  42. package/lib/module/components/TimePicker/TimeWheelPicker.web.js.map +1 -0
  43. package/lib/module/components/TimePicker/index.js +3 -3
  44. package/lib/module/components/TimePicker/index.js.map +1 -1
  45. package/lib/module/components/WheelPicker/WheelPicker.js +21 -2
  46. package/lib/module/components/WheelPicker/WheelPicker.js.map +1 -1
  47. package/lib/module/components/WheelPicker/WheelPicker.styles.js +13 -8
  48. package/lib/module/components/WheelPicker/WheelPicker.styles.js.map +1 -1
  49. package/lib/module/components/WheelPicker/WheelPicker.web.js +146 -57
  50. package/lib/module/components/WheelPicker/WheelPicker.web.js.map +1 -1
  51. package/lib/module/context/ThemeOverrideContext.js +34 -0
  52. package/lib/module/context/ThemeOverrideContext.js.map +1 -0
  53. package/lib/module/index.js +3 -0
  54. package/lib/module/index.js.map +1 -1
  55. package/lib/module/utils/validation.js +74 -34
  56. package/lib/module/utils/validation.js.map +1 -1
  57. package/lib/typescript/components/CalendarGrid/CalendarGrid.d.ts +24 -3
  58. package/lib/typescript/components/CalendarGrid/CalendarGrid.d.ts.map +1 -1
  59. package/lib/typescript/components/CalendarGrid/CalendarGrid.styles.d.ts +12 -10
  60. package/lib/typescript/components/CalendarGrid/CalendarGrid.styles.d.ts.map +1 -1
  61. package/lib/typescript/components/CalendarGrid/CalendarGrid.web.d.ts +33 -0
  62. package/lib/typescript/components/CalendarGrid/CalendarGrid.web.d.ts.map +1 -0
  63. package/lib/typescript/components/CalendarGrid/DayCell.d.ts +3 -0
  64. package/lib/typescript/components/CalendarGrid/DayCell.d.ts.map +1 -1
  65. package/lib/typescript/components/CalendarGrid/DayCell.web.d.ts +15 -0
  66. package/lib/typescript/components/CalendarGrid/DayCell.web.d.ts.map +1 -0
  67. package/lib/typescript/components/DatePicker/DatePicker.android.d.ts.map +1 -1
  68. package/lib/typescript/components/DatePicker/DatePicker.d.ts +27 -4
  69. package/lib/typescript/components/DatePicker/DatePicker.d.ts.map +1 -1
  70. package/lib/typescript/components/DatePicker/DatePicker.ios.d.ts.map +1 -1
  71. package/lib/typescript/components/DatePicker/DatePicker.styles.d.ts +12 -13
  72. package/lib/typescript/components/DatePicker/DatePicker.styles.d.ts.map +1 -1
  73. package/lib/typescript/components/DatePicker/DatePicker.web.d.ts.map +1 -1
  74. package/lib/typescript/components/TimePicker/ClockFace.d.ts.map +1 -1
  75. package/lib/typescript/components/TimePicker/ClockFace.web.d.ts +12 -0
  76. package/lib/typescript/components/TimePicker/ClockFace.web.d.ts.map +1 -0
  77. package/lib/typescript/components/TimePicker/MaterialTimePicker.d.ts.map +1 -1
  78. package/lib/typescript/components/TimePicker/MaterialTimePicker.web.d.ts +12 -0
  79. package/lib/typescript/components/TimePicker/MaterialTimePicker.web.d.ts.map +1 -0
  80. package/lib/typescript/components/TimePicker/TimePicker.android.d.ts.map +1 -1
  81. package/lib/typescript/components/TimePicker/TimePicker.ios.d.ts.map +1 -1
  82. package/lib/typescript/components/TimePicker/TimePicker.styles.d.ts +29 -25
  83. package/lib/typescript/components/TimePicker/TimePicker.styles.d.ts.map +1 -1
  84. package/lib/typescript/components/TimePicker/TimePicker.web.d.ts.map +1 -1
  85. package/lib/typescript/components/TimePicker/TimeWheelPicker.d.ts.map +1 -1
  86. package/lib/typescript/components/TimePicker/TimeWheelPicker.web.d.ts +11 -0
  87. package/lib/typescript/components/TimePicker/TimeWheelPicker.web.d.ts.map +1 -0
  88. package/lib/typescript/components/WheelPicker/WheelPicker.d.ts +14 -1
  89. package/lib/typescript/components/WheelPicker/WheelPicker.d.ts.map +1 -1
  90. package/lib/typescript/components/WheelPicker/WheelPicker.styles.d.ts +9 -7
  91. package/lib/typescript/components/WheelPicker/WheelPicker.styles.d.ts.map +1 -1
  92. package/lib/typescript/components/WheelPicker/WheelPicker.web.d.ts.map +1 -1
  93. package/lib/typescript/context/ThemeOverrideContext.d.ts +23 -0
  94. package/lib/typescript/context/ThemeOverrideContext.d.ts.map +1 -0
  95. package/lib/typescript/index.d.ts +4 -2
  96. package/lib/typescript/index.d.ts.map +1 -1
  97. package/lib/typescript/types/datepicker.d.ts +78 -3
  98. package/lib/typescript/types/datepicker.d.ts.map +1 -1
  99. package/lib/typescript/types/timepicker.d.ts +62 -0
  100. package/lib/typescript/types/timepicker.d.ts.map +1 -1
  101. package/lib/typescript/utils/validation.d.ts +47 -27
  102. package/lib/typescript/utils/validation.d.ts.map +1 -1
  103. package/package.json +8 -8
  104. package/src/components/CalendarGrid/CalendarGrid.styles.ts +21 -17
  105. package/src/components/CalendarGrid/CalendarGrid.tsx +265 -85
  106. package/src/components/CalendarGrid/CalendarGrid.web.tsx +396 -0
  107. package/src/components/CalendarGrid/DayCell.tsx +122 -61
  108. package/src/components/CalendarGrid/DayCell.web.tsx +171 -0
  109. package/src/components/DatePicker/DatePicker.android.tsx +48 -24
  110. package/src/components/DatePicker/DatePicker.ios.tsx +51 -27
  111. package/src/components/DatePicker/DatePicker.styles.ts +18 -22
  112. package/src/components/DatePicker/DatePicker.tsx +35 -4
  113. package/src/components/DatePicker/DatePicker.web.tsx +55 -23
  114. package/src/components/TimePicker/ClockFace.tsx +34 -8
  115. package/src/components/TimePicker/ClockFace.web.tsx +303 -0
  116. package/src/components/TimePicker/MaterialTimePicker.tsx +144 -13
  117. package/src/components/TimePicker/MaterialTimePicker.web.tsx +271 -0
  118. package/src/components/TimePicker/TimePicker.android.tsx +9 -1
  119. package/src/components/TimePicker/TimePicker.ios.tsx +10 -6
  120. package/src/components/TimePicker/TimePicker.styles.ts +52 -45
  121. package/src/components/TimePicker/TimePicker.web.tsx +17 -7
  122. package/src/components/TimePicker/TimeWheelPicker.tsx +60 -6
  123. package/src/components/TimePicker/TimeWheelPicker.web.tsx +401 -0
  124. package/src/components/WheelPicker/WheelPicker.styles.ts +12 -8
  125. package/src/components/WheelPicker/WheelPicker.tsx +24 -2
  126. package/src/components/WheelPicker/WheelPicker.web.tsx +153 -57
  127. package/src/context/ThemeOverrideContext.tsx +38 -0
  128. package/src/index.ts +13 -0
  129. package/src/types/datepicker.ts +87 -3
  130. package/src/types/timepicker.ts +74 -0
  131. package/src/utils/validation.ts +111 -55
  132. package/lib/module/unistyles.js +0 -9
  133. package/lib/module/unistyles.js.map +0 -1
  134. package/lib/typescript/unistyles.d.ts +0 -3
  135. package/lib/typescript/unistyles.d.ts.map +0 -1
  136. package/src/unistyles.ts +0 -6
package/README.md ADDED
@@ -0,0 +1,165 @@
1
+ # @dreamstack-us/kaal
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@dreamstack-us/kaal.svg)](https://www.npmjs.com/package/@dreamstack-us/kaal)
4
+ [![npm downloads](https://img.shields.io/npm/dm/@dreamstack-us/kaal.svg)](https://www.npmjs.com/package/@dreamstack-us/kaal)
5
+ [![bundle size](https://img.shields.io/bundlephobia/minzip/@dreamstack-us/kaal)](https://bundlephobia.com/package/@dreamstack-us/kaal)
6
+ [![license](https://img.shields.io/npm/l/@dreamstack-us/kaal.svg)](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 "./DayCell.js";
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
- const WEEK_DAYS = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
11
- const generateMonthDays = currentMonth => {
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, we want Monday = 0
14
- const startOfWeek = getDayOfWeek(firstDay);
15
- const paddingDays = startOfWeek === 0 ? 6 : startOfWeek - 1;
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
- value,
34
- onChange,
35
- minDate,
36
- maxDate,
37
- disabledDates,
38
- themeMode
39
- }) => {
40
- const [currentMonth, setCurrentMonth] = React.useState(() => getFirstDayOfMonth(value));
41
- const days = useMemo(() => generateMonthDays(currentMonth), [currentMonth]);
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
- }) => /*#__PURE__*/_jsx(DayCell, {
56
- date: item,
57
- isSelected: item ? isSameDay(item, value) : false,
58
- isToday: item ? isSameDay(item, todayDate) : false,
59
- isDisabled: isDisabled(item),
60
- isWeekend: item ? getDayOfWeek(item) === 0 || getDayOfWeek(item) === 6 : false,
61
- onPress: item && !isDisabled(item) ? () => onChange(item) : undefined
62
- }), [value, todayDate, isDisabled, onChange]);
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: WEEK_DAYS.map(day => /*#__PURE__*/_jsx(Text, {
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","WEEK_DAYS","generateMonthDays","currentMonth","firstDay","startOfWeek","paddingDays","days","i","push","monthDays","getUTCFullYear","getUTCMonth","day","remaining","length","CalendarGrid","value","onChange","minDate","maxDate","disabledDates","themeMode","setCurrentMonth","useState","todayDate","isDisabled","date","some","d","navigateMonth","direction","prev","renderDay","item","isSelected","isToday","isWeekend","onPress","undefined","keyExtractor","index","toISOString","getItemLayout","_data","offset","Math","floor","style","container","children","header","navButton","navText","monthTitle","weekDays","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
+ {"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-unistyles';
4
- export const styles = StyleSheet.create(theme => ({
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: theme.colors.background.default,
7
- borderRadius: theme.radii.card,
8
- padding: theme.spacing(4)
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: theme.spacing(4),
15
- paddingHorizontal: theme.spacing(2)
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: theme.radii.button
27
+ borderRadius: 8
23
28
  },
24
29
  navText: {
25
30
  fontSize: 24,
26
- color: theme.colors.primary.default,
31
+ color: '#4DA6FF',
27
32
  fontWeight: '600'
28
33
  },
29
34
  monthTitle: {
30
- fontSize: theme.typography.monthHeader.fontSize,
31
- fontWeight: theme.typography.monthHeader.fontWeight,
32
- color: theme.colors.foreground.default
35
+ fontSize: 17,
36
+ fontWeight: '600',
37
+ color: '#FFFFFF'
33
38
  },
34
39
  weekDays: {
35
40
  flexDirection: 'row',
36
- marginBottom: theme.spacing(2)
41
+ marginBottom: 8
37
42
  },
38
43
  weekDayText: {
39
44
  flex: 1,
40
45
  textAlign: 'center',
41
- fontSize: theme.typography.dayHeader.fontSize,
42
- fontWeight: theme.typography.dayHeader.fontWeight,
43
- color: theme.colors.foreground.muted
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","theme","container","backgroundColor","colors","background","default","borderRadius","radii","card","padding","spacing","header","flexDirection","justifyContent","alignItems","marginBottom","paddingHorizontal","navButton","width","height","button","navText","fontSize","color","primary","fontWeight","monthTitle","typography","monthHeader","foreground","weekDays","weekDayText","flex","textAlign","dayHeader","muted"],"sourceRoot":"../../../../src","sources":["components/CalendarGrid/CalendarGrid.styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,wBAAwB;AAEnD,OAAO,MAAMC,MAAM,GAAGD,UAAU,CAACE,MAAM,CAAEC,KAAK,KAAM;EAClDC,SAAS,EAAE;IACTC,eAAe,EAAEF,KAAK,CAACG,MAAM,CAACC,UAAU,CAACC,OAAO;IAChDC,YAAY,EAAEN,KAAK,CAACO,KAAK,CAACC,IAAI;IAC9BC,OAAO,EAAET,KAAK,CAACU,OAAO,CAAC,CAAC;EAC1B,CAAC;EACDC,MAAM,EAAE;IACNC,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAEf,KAAK,CAACU,OAAO,CAAC,CAAC,CAAC;IAC9BM,iBAAiB,EAAEhB,KAAK,CAACU,OAAO,CAAC,CAAC;EACpC,CAAC;EACDO,SAAS,EAAE;IACTC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVN,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBR,YAAY,EAAEN,KAAK,CAACO,KAAK,CAACa;EAC5B,CAAC;EACDC,OAAO,EAAE;IACPC,QAAQ,EAAE,EAAE;IACZC,KAAK,EAAEvB,KAAK,CAACG,MAAM,CAACqB,OAAO,CAACnB,OAAO;IACnCoB,UAAU,EAAE;EACd,CAAC;EACDC,UAAU,EAAE;IACVJ,QAAQ,EAAEtB,KAAK,CAAC2B,UAAU,CAACC,WAAW,CAACN,QAAQ;IAC/CG,UAAU,EAAEzB,KAAK,CAAC2B,UAAU,CAACC,WAAW,CAACH,UAAU;IACnDF,KAAK,EAAEvB,KAAK,CAACG,MAAM,CAAC0B,UAAU,CAACxB;EACjC,CAAC;EACDyB,QAAQ,EAAE;IACRlB,aAAa,EAAE,KAAK;IACpBG,YAAY,EAAEf,KAAK,CAACU,OAAO,CAAC,CAAC;EAC/B,CAAC;EACDqB,WAAW,EAAE;IACXC,IAAI,EAAE,CAAC;IACPC,SAAS,EAAE,QAAQ;IACnBX,QAAQ,EAAEtB,KAAK,CAAC2B,UAAU,CAACO,SAAS,CAACZ,QAAQ;IAC7CG,UAAU,EAAEzB,KAAK,CAAC2B,UAAU,CAACO,SAAS,CAACT,UAAU;IACjDF,KAAK,EAAEvB,KAAK,CAACG,MAAM,CAAC0B,UAAU,CAACM;EACjC;AACF,CAAC,CAAC,CAAC","ignoreList":[]}
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":[]}