@dreamstack-us/kaal 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/lib/module/components/CalendarGrid/CalendarGrid.js +112 -0
  2. package/lib/module/components/CalendarGrid/CalendarGrid.js.map +1 -0
  3. package/lib/module/components/CalendarGrid/CalendarGrid.styles.js +46 -0
  4. package/lib/module/components/CalendarGrid/CalendarGrid.styles.js.map +1 -0
  5. package/lib/module/components/CalendarGrid/DayCell.js +96 -0
  6. package/lib/module/components/CalendarGrid/DayCell.js.map +1 -0
  7. package/lib/module/components/CalendarGrid/index.js +4 -0
  8. package/lib/module/components/CalendarGrid/index.js.map +1 -0
  9. package/lib/module/components/DatePicker/DatePicker.android.js +66 -0
  10. package/lib/module/components/DatePicker/DatePicker.android.js.map +1 -0
  11. package/lib/module/components/DatePicker/DatePicker.ios.js +74 -0
  12. package/lib/module/components/DatePicker/DatePicker.ios.js.map +1 -0
  13. package/lib/module/components/DatePicker/DatePicker.js +9 -0
  14. package/lib/module/components/DatePicker/DatePicker.js.map +1 -0
  15. package/lib/module/components/DatePicker/DatePicker.styles.js +35 -0
  16. package/lib/module/components/DatePicker/DatePicker.styles.js.map +1 -0
  17. package/lib/module/components/DatePicker/DatePicker.web.js +32 -0
  18. package/lib/module/components/DatePicker/DatePicker.web.js.map +1 -0
  19. package/lib/module/components/DatePicker/index.js +4 -0
  20. package/lib/module/components/DatePicker/index.js.map +1 -0
  21. package/lib/module/components/TimePicker/ClockFace.js +194 -0
  22. package/lib/module/components/TimePicker/ClockFace.js.map +1 -0
  23. package/lib/module/components/TimePicker/MaterialTimePicker.js +122 -0
  24. package/lib/module/components/TimePicker/MaterialTimePicker.js.map +1 -0
  25. package/lib/module/components/TimePicker/TimePicker.android.js +77 -0
  26. package/lib/module/components/TimePicker/TimePicker.android.js.map +1 -0
  27. package/lib/module/components/TimePicker/TimePicker.ios.js +83 -0
  28. package/lib/module/components/TimePicker/TimePicker.ios.js.map +1 -0
  29. package/lib/module/components/TimePicker/TimePicker.js +34 -0
  30. package/lib/module/components/TimePicker/TimePicker.js.map +1 -0
  31. package/lib/module/components/TimePicker/TimePicker.styles.js +180 -0
  32. package/lib/module/components/TimePicker/TimePicker.styles.js.map +1 -0
  33. package/lib/module/components/TimePicker/TimePicker.web.js +37 -0
  34. package/lib/module/components/TimePicker/TimePicker.web.js.map +1 -0
  35. package/lib/module/components/TimePicker/TimeWheelPicker.js +178 -0
  36. package/lib/module/components/TimePicker/TimeWheelPicker.js.map +1 -0
  37. package/lib/module/components/TimePicker/index.js +7 -0
  38. package/lib/module/components/TimePicker/index.js.map +1 -0
  39. package/lib/module/components/WheelPicker/WheelPicker.js +5 -0
  40. package/lib/module/components/WheelPicker/WheelPicker.js.map +1 -0
  41. package/lib/module/components/WheelPicker/WheelPicker.styles.js +41 -0
  42. package/lib/module/components/WheelPicker/WheelPicker.styles.js.map +1 -0
  43. package/lib/module/components/WheelPicker/WheelPicker.web.js +190 -0
  44. package/lib/module/components/WheelPicker/WheelPicker.web.js.map +1 -0
  45. package/lib/module/components/WheelPicker/index.js +4 -0
  46. package/lib/module/components/WheelPicker/index.js.map +1 -0
  47. package/lib/module/components/index.js +7 -0
  48. package/lib/module/components/index.js.map +1 -0
  49. package/lib/module/hooks/index.js +6 -0
  50. package/lib/module/hooks/index.js.map +1 -0
  51. package/lib/module/hooks/useCalendar.js +44 -0
  52. package/lib/module/hooks/useCalendar.js.map +1 -0
  53. package/lib/module/hooks/useDatePicker.js +30 -0
  54. package/lib/module/hooks/useDatePicker.js.map +1 -0
  55. package/lib/module/hooks/useTimePicker.js +125 -0
  56. package/lib/module/hooks/useTimePicker.js.map +1 -0
  57. package/lib/module/index.js +22 -0
  58. package/lib/module/index.js.map +1 -0
  59. package/lib/module/types/datepicker.js +2 -0
  60. package/lib/module/types/datepicker.js.map +1 -0
  61. package/lib/module/types/index.js +5 -0
  62. package/lib/module/types/index.js.map +1 -0
  63. package/lib/module/types/timepicker.js +2 -0
  64. package/lib/module/types/timepicker.js.map +1 -0
  65. package/lib/module/unistyles.js +9 -0
  66. package/lib/module/unistyles.js.map +1 -0
  67. package/lib/module/utils/date.js +205 -0
  68. package/lib/module/utils/date.js.map +1 -0
  69. package/lib/module/utils/index.js +5 -0
  70. package/lib/module/utils/index.js.map +1 -0
  71. package/lib/module/utils/validation.js +61 -0
  72. package/lib/module/utils/validation.js.map +1 -0
  73. package/lib/typescript/components/CalendarGrid/CalendarGrid.d.ts +12 -0
  74. package/lib/typescript/components/CalendarGrid/CalendarGrid.d.ts.map +1 -0
  75. package/lib/typescript/components/CalendarGrid/CalendarGrid.styles.d.ts +45 -0
  76. package/lib/typescript/components/CalendarGrid/CalendarGrid.styles.d.ts.map +1 -0
  77. package/lib/typescript/components/CalendarGrid/DayCell.d.ts +12 -0
  78. package/lib/typescript/components/CalendarGrid/DayCell.d.ts.map +1 -0
  79. package/lib/typescript/components/CalendarGrid/index.d.ts +2 -0
  80. package/lib/typescript/components/CalendarGrid/index.d.ts.map +1 -0
  81. package/lib/typescript/components/DatePicker/DatePicker.android.d.ts +4 -0
  82. package/lib/typescript/components/DatePicker/DatePicker.android.d.ts.map +1 -0
  83. package/lib/typescript/components/DatePicker/DatePicker.d.ts +15 -0
  84. package/lib/typescript/components/DatePicker/DatePicker.d.ts.map +1 -0
  85. package/lib/typescript/components/DatePicker/DatePicker.ios.d.ts +4 -0
  86. package/lib/typescript/components/DatePicker/DatePicker.ios.d.ts.map +1 -0
  87. package/lib/typescript/components/DatePicker/DatePicker.styles.d.ts +29 -0
  88. package/lib/typescript/components/DatePicker/DatePicker.styles.d.ts.map +1 -0
  89. package/lib/typescript/components/DatePicker/DatePicker.web.d.ts +4 -0
  90. package/lib/typescript/components/DatePicker/DatePicker.web.d.ts.map +1 -0
  91. package/lib/typescript/components/DatePicker/index.d.ts +3 -0
  92. package/lib/typescript/components/DatePicker/index.d.ts.map +1 -0
  93. package/lib/typescript/components/TimePicker/ClockFace.d.ts +12 -0
  94. package/lib/typescript/components/TimePicker/ClockFace.d.ts.map +1 -0
  95. package/lib/typescript/components/TimePicker/MaterialTimePicker.d.ts +12 -0
  96. package/lib/typescript/components/TimePicker/MaterialTimePicker.d.ts.map +1 -0
  97. package/lib/typescript/components/TimePicker/TimePicker.android.d.ts +4 -0
  98. package/lib/typescript/components/TimePicker/TimePicker.android.d.ts.map +1 -0
  99. package/lib/typescript/components/TimePicker/TimePicker.d.ts +29 -0
  100. package/lib/typescript/components/TimePicker/TimePicker.d.ts.map +1 -0
  101. package/lib/typescript/components/TimePicker/TimePicker.ios.d.ts +4 -0
  102. package/lib/typescript/components/TimePicker/TimePicker.ios.d.ts.map +1 -0
  103. package/lib/typescript/components/TimePicker/TimePicker.styles.d.ts +168 -0
  104. package/lib/typescript/components/TimePicker/TimePicker.styles.d.ts.map +1 -0
  105. package/lib/typescript/components/TimePicker/TimePicker.web.d.ts +10 -0
  106. package/lib/typescript/components/TimePicker/TimePicker.web.d.ts.map +1 -0
  107. package/lib/typescript/components/TimePicker/TimeWheelPicker.d.ts +11 -0
  108. package/lib/typescript/components/TimePicker/TimeWheelPicker.d.ts.map +1 -0
  109. package/lib/typescript/components/TimePicker/index.d.ts +6 -0
  110. package/lib/typescript/components/TimePicker/index.d.ts.map +1 -0
  111. package/lib/typescript/components/WheelPicker/WheelPicker.d.ts +2 -0
  112. package/lib/typescript/components/WheelPicker/WheelPicker.d.ts.map +1 -0
  113. package/lib/typescript/components/WheelPicker/WheelPicker.styles.d.ts +40 -0
  114. package/lib/typescript/components/WheelPicker/WheelPicker.styles.d.ts.map +1 -0
  115. package/lib/typescript/components/WheelPicker/WheelPicker.web.d.ts +10 -0
  116. package/lib/typescript/components/WheelPicker/WheelPicker.web.d.ts.map +1 -0
  117. package/lib/typescript/components/WheelPicker/index.d.ts +2 -0
  118. package/lib/typescript/components/WheelPicker/index.d.ts.map +1 -0
  119. package/lib/typescript/components/index.d.ts +5 -0
  120. package/lib/typescript/components/index.d.ts.map +1 -0
  121. package/lib/typescript/hooks/index.d.ts +4 -0
  122. package/lib/typescript/hooks/index.d.ts.map +1 -0
  123. package/lib/typescript/hooks/useCalendar.d.ts +10 -0
  124. package/lib/typescript/hooks/useCalendar.d.ts.map +1 -0
  125. package/lib/typescript/hooks/useDatePicker.d.ts +15 -0
  126. package/lib/typescript/hooks/useDatePicker.d.ts.map +1 -0
  127. package/lib/typescript/hooks/useTimePicker.d.ts +52 -0
  128. package/lib/typescript/hooks/useTimePicker.d.ts.map +1 -0
  129. package/lib/typescript/index.d.ts +12 -0
  130. package/lib/typescript/index.d.ts.map +1 -0
  131. package/lib/typescript/types/datepicker.d.ts +15 -0
  132. package/lib/typescript/types/datepicker.d.ts.map +1 -0
  133. package/lib/typescript/types/index.d.ts +3 -0
  134. package/lib/typescript/types/index.d.ts.map +1 -0
  135. package/lib/typescript/types/timepicker.d.ts +54 -0
  136. package/lib/typescript/types/timepicker.d.ts.map +1 -0
  137. package/lib/typescript/unistyles.d.ts +3 -0
  138. package/lib/typescript/unistyles.d.ts.map +1 -0
  139. package/lib/typescript/utils/date.d.ts +94 -0
  140. package/lib/typescript/utils/date.d.ts.map +1 -0
  141. package/lib/typescript/utils/index.d.ts +3 -0
  142. package/lib/typescript/utils/index.d.ts.map +1 -0
  143. package/lib/typescript/utils/validation.d.ts +40 -0
  144. package/lib/typescript/utils/validation.d.ts.map +1 -0
  145. package/package.json +101 -0
  146. package/src/components/CalendarGrid/CalendarGrid.styles.ts +44 -0
  147. package/src/components/CalendarGrid/CalendarGrid.tsx +151 -0
  148. package/src/components/CalendarGrid/DayCell.tsx +108 -0
  149. package/src/components/CalendarGrid/index.ts +1 -0
  150. package/src/components/DatePicker/DatePicker.android.tsx +69 -0
  151. package/src/components/DatePicker/DatePicker.ios.tsx +78 -0
  152. package/src/components/DatePicker/DatePicker.styles.ts +35 -0
  153. package/src/components/DatePicker/DatePicker.tsx +21 -0
  154. package/src/components/DatePicker/DatePicker.web.tsx +36 -0
  155. package/src/components/DatePicker/index.ts +2 -0
  156. package/src/components/TimePicker/ClockFace.tsx +233 -0
  157. package/src/components/TimePicker/MaterialTimePicker.tsx +169 -0
  158. package/src/components/TimePicker/TimePicker.android.tsx +80 -0
  159. package/src/components/TimePicker/TimePicker.ios.tsx +88 -0
  160. package/src/components/TimePicker/TimePicker.styles.ts +209 -0
  161. package/src/components/TimePicker/TimePicker.tsx +35 -0
  162. package/src/components/TimePicker/TimePicker.web.tsx +35 -0
  163. package/src/components/TimePicker/TimeWheelPicker.tsx +211 -0
  164. package/src/components/TimePicker/index.ts +5 -0
  165. package/src/components/WheelPicker/WheelPicker.styles.ts +39 -0
  166. package/src/components/WheelPicker/WheelPicker.tsx +2 -0
  167. package/src/components/WheelPicker/WheelPicker.web.tsx +237 -0
  168. package/src/components/WheelPicker/index.ts +1 -0
  169. package/src/components/index.ts +11 -0
  170. package/src/hooks/index.ts +9 -0
  171. package/src/hooks/useCalendar.ts +59 -0
  172. package/src/hooks/useDatePicker.ts +40 -0
  173. package/src/hooks/useTimePicker.ts +152 -0
  174. package/src/index.ts +77 -0
  175. package/src/types/datepicker.ts +17 -0
  176. package/src/types/index.ts +2 -0
  177. package/src/types/timepicker.ts +59 -0
  178. package/src/unistyles.ts +6 -0
  179. package/src/utils/date.ts +217 -0
  180. package/src/utils/index.ts +2 -0
  181. package/src/utils/validation.ts +76 -0
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useMemo } from 'react';
4
+ import { StyleSheet as RNStyleSheet, Text, View } from 'react-native';
5
+ import { Gesture, GestureDetector } from 'react-native-gesture-handler';
6
+ import Animated, { useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ const ITEM_HEIGHT = 44;
9
+ const VISIBLE_ITEMS = 5;
10
+ const CONTAINER_HEIGHT = ITEM_HEIGHT * VISIBLE_ITEMS;
11
+ const getDaysInMonth = (year, month) => {
12
+ return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();
13
+ };
14
+ const generateDateItems = (type, currentDate, minDate, maxDate) => {
15
+ if (type === 'day') {
16
+ const daysInMonth = getDaysInMonth(currentDate.getUTCFullYear(), currentDate.getUTCMonth());
17
+ return Array.from({
18
+ length: daysInMonth
19
+ }, (_, i) => ({
20
+ value: i + 1,
21
+ label: String(i + 1).padStart(2, '0')
22
+ }));
23
+ }
24
+ if (type === 'month') {
25
+ return Array.from({
26
+ length: 12
27
+ }, (_, i) => ({
28
+ value: i,
29
+ label: new Date(2000, i).toLocaleString('en-US', {
30
+ month: 'short'
31
+ })
32
+ }));
33
+ }
34
+ const minYear = minDate?.getUTCFullYear() ?? currentDate.getUTCFullYear() - 100;
35
+ const maxYear = maxDate?.getUTCFullYear() ?? currentDate.getUTCFullYear() + 10;
36
+ return Array.from({
37
+ length: maxYear - minYear + 1
38
+ }, (_, i) => ({
39
+ value: minYear + i,
40
+ label: String(minYear + i)
41
+ }));
42
+ };
43
+ const WheelColumn = ({
44
+ items,
45
+ selectedIndex,
46
+ onSelect
47
+ }) => {
48
+ const translateY = useSharedValue(-selectedIndex * ITEM_HEIGHT);
49
+ const velocity = useSharedValue(0);
50
+
51
+ // biome-ignore lint/correctness/useExhaustiveDependencies: Reanimated shared values are stable refs
52
+ const panGesture = useMemo(() => Gesture.Pan().onUpdate(e => {
53
+ 'worklet';
54
+
55
+ translateY.value = e.translationY + -selectedIndex * ITEM_HEIGHT;
56
+ velocity.value = e.velocityY;
57
+ }).onEnd(() => {
58
+ 'worklet';
59
+
60
+ const targetIndex = Math.round(-translateY.value / ITEM_HEIGHT);
61
+ const clampedIndex = Math.max(0, Math.min(items.length - 1, targetIndex));
62
+ translateY.value = withSpring(-clampedIndex * ITEM_HEIGHT, {
63
+ velocity: velocity.value,
64
+ damping: 20,
65
+ stiffness: 200
66
+ });
67
+ }), [selectedIndex, items.length]);
68
+ const animatedStyle = useAnimatedStyle(() => ({
69
+ transform: [{
70
+ translateY: translateY.value
71
+ }]
72
+ }));
73
+ return /*#__PURE__*/_jsxs(View, {
74
+ style: webStyles.column,
75
+ children: [/*#__PURE__*/_jsx(View, {
76
+ style: webStyles.selectionHighlight
77
+ }), /*#__PURE__*/_jsx(GestureDetector, {
78
+ gesture: panGesture,
79
+ children: /*#__PURE__*/_jsxs(Animated.View, {
80
+ style: [webStyles.itemsContainer, animatedStyle],
81
+ children: [/*#__PURE__*/_jsx(View, {
82
+ style: {
83
+ height: ITEM_HEIGHT * 2
84
+ }
85
+ }), items.map(item => /*#__PURE__*/_jsx(View, {
86
+ style: webStyles.item,
87
+ children: /*#__PURE__*/_jsx(Text, {
88
+ style: webStyles.itemText,
89
+ children: item.label
90
+ })
91
+ }, item.value)), /*#__PURE__*/_jsx(View, {
92
+ style: {
93
+ height: ITEM_HEIGHT * 2
94
+ }
95
+ })]
96
+ })
97
+ })]
98
+ });
99
+ };
100
+ export const WheelPicker = ({
101
+ value,
102
+ onChange,
103
+ minDate,
104
+ maxDate
105
+ }) => {
106
+ const days = useMemo(() => generateDateItems('day', value, minDate, maxDate), [value, minDate, maxDate]);
107
+ const months = useMemo(() => generateDateItems('month', value), [value]);
108
+ const years = useMemo(() => generateDateItems('year', value, minDate, maxDate), [value, minDate, maxDate]);
109
+ const handleDayChange = useCallback(index => {
110
+ const newDay = days[index]?.value;
111
+ if (newDay !== undefined) {
112
+ const newDate = new Date(Date.UTC(value.getUTCFullYear(), value.getUTCMonth(), newDay));
113
+ onChange(newDate);
114
+ }
115
+ }, [value, days, onChange]);
116
+ const handleMonthChange = useCallback(index => {
117
+ const newMonth = months[index]?.value;
118
+ if (newMonth !== undefined) {
119
+ const daysInNewMonth = getDaysInMonth(value.getUTCFullYear(), newMonth);
120
+ const newDay = Math.min(value.getUTCDate(), daysInNewMonth);
121
+ const newDate = new Date(Date.UTC(value.getUTCFullYear(), newMonth, newDay));
122
+ onChange(newDate);
123
+ }
124
+ }, [value, months, onChange]);
125
+ const handleYearChange = useCallback(index => {
126
+ const newYear = years[index]?.value;
127
+ if (newYear !== undefined) {
128
+ const daysInNewMonth = getDaysInMonth(newYear, value.getUTCMonth());
129
+ const newDay = Math.min(value.getUTCDate(), daysInNewMonth);
130
+ const newDate = new Date(Date.UTC(newYear, value.getUTCMonth(), newDay));
131
+ onChange(newDate);
132
+ }
133
+ }, [value, years, onChange]);
134
+ return /*#__PURE__*/_jsxs(View, {
135
+ style: webStyles.container,
136
+ children: [/*#__PURE__*/_jsx(WheelColumn, {
137
+ items: months,
138
+ selectedIndex: value.getUTCMonth(),
139
+ onSelect: handleMonthChange
140
+ }), /*#__PURE__*/_jsx(WheelColumn, {
141
+ items: days,
142
+ selectedIndex: value.getUTCDate() - 1,
143
+ onSelect: handleDayChange
144
+ }), /*#__PURE__*/_jsx(WheelColumn, {
145
+ items: years,
146
+ selectedIndex: years.findIndex(y => y.value === value.getUTCFullYear()),
147
+ onSelect: handleYearChange
148
+ })]
149
+ });
150
+ };
151
+ const webStyles = RNStyleSheet.create({
152
+ container: {
153
+ flexDirection: 'row',
154
+ height: CONTAINER_HEIGHT,
155
+ backgroundColor: 'rgba(255, 255, 255, 0.8)',
156
+ // @ts-ignore - web-only property
157
+ backdropFilter: 'blur(20px)',
158
+ borderRadius: 14,
159
+ overflow: 'hidden'
160
+ },
161
+ column: {
162
+ flex: 1,
163
+ height: CONTAINER_HEIGHT,
164
+ overflow: 'hidden'
165
+ },
166
+ selectionHighlight: {
167
+ position: 'absolute',
168
+ top: ITEM_HEIGHT * 2,
169
+ left: 4,
170
+ right: 4,
171
+ height: ITEM_HEIGHT,
172
+ backgroundColor: 'rgba(0, 0, 0, 0.04)',
173
+ borderRadius: 8,
174
+ zIndex: 0
175
+ },
176
+ itemsContainer: {
177
+ zIndex: 1
178
+ },
179
+ item: {
180
+ height: ITEM_HEIGHT,
181
+ justifyContent: 'center',
182
+ alignItems: 'center'
183
+ },
184
+ itemText: {
185
+ fontSize: 21,
186
+ fontFamily: '-apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif',
187
+ fontWeight: '400'
188
+ }
189
+ });
190
+ //# sourceMappingURL=WheelPicker.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useMemo","StyleSheet","RNStyleSheet","Text","View","Gesture","GestureDetector","Animated","useAnimatedStyle","useSharedValue","withSpring","jsx","_jsx","jsxs","_jsxs","ITEM_HEIGHT","VISIBLE_ITEMS","CONTAINER_HEIGHT","getDaysInMonth","year","month","Date","UTC","getUTCDate","generateDateItems","type","currentDate","minDate","maxDate","daysInMonth","getUTCFullYear","getUTCMonth","Array","from","length","_","i","value","label","String","padStart","toLocaleString","minYear","maxYear","WheelColumn","items","selectedIndex","onSelect","translateY","velocity","panGesture","Pan","onUpdate","e","translationY","velocityY","onEnd","targetIndex","Math","round","clampedIndex","max","min","damping","stiffness","animatedStyle","transform","style","webStyles","column","children","selectionHighlight","gesture","itemsContainer","height","map","item","itemText","WheelPicker","onChange","days","months","years","handleDayChange","index","newDay","undefined","newDate","handleMonthChange","newMonth","daysInNewMonth","handleYearChange","newYear","container","findIndex","y","create","flexDirection","backgroundColor","backdropFilter","borderRadius","overflow","flex","position","top","left","right","zIndex","justifyContent","alignItems","fontSize","fontFamily","fontWeight"],"sourceRoot":"../../../../src","sources":["components/WheelPicker/WheelPicker.web.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { WheelPicker } from './WheelPicker';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WheelPicker"],"sourceRoot":"../../../../src","sources":["components/WheelPicker/index.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,eAAe","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ export { DatePicker } from "./DatePicker/index.js";
4
+ export { CalendarGrid } from "./CalendarGrid/index.js";
5
+ export { WheelPicker } from "./WheelPicker/index.js";
6
+ export { TimePicker, TimeWheelPicker, ClockFace, MaterialTimePicker } from "./TimePicker/index.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DatePicker","CalendarGrid","WheelPicker","TimePicker","TimeWheelPicker","ClockFace","MaterialTimePicker"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAkC,uBAAc;AACnE,SAASC,YAAY,QAAQ,yBAAgB;AAC7C,SAASC,WAAW,QAAQ,wBAAe;AAC3C,SACEC,UAAU,EACVC,eAAe,EACfC,SAAS,EACTC,kBAAkB,QAGb,uBAAc","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ export { useDatePicker } from "./useDatePicker.js";
4
+ export { useCalendar } from "./useCalendar.js";
5
+ export { useTimePicker, to12Hour, to24Hour, formatTime, snapToInterval } from "./useTimePicker.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useDatePicker","useCalendar","useTimePicker","to12Hour","to24Hour","formatTime","snapToInterval"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,WAAW,QAAQ,kBAAe;AAC3C,SACEC,aAAa,EACbC,QAAQ,EACRC,QAAQ,EACRC,UAAU,EACVC,cAAc,QACT,oBAAiB","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useMemo, useState } from 'react';
4
+ import { addMonths, getDayOfWeek, getFirstDayOfMonth, getMonthDays, today } from "../utils/date.js";
5
+ export const useCalendar = initialDate => {
6
+ const [currentMonth, setCurrentMonth] = useState(() => {
7
+ const date = initialDate ?? today();
8
+ return getFirstDayOfMonth(date);
9
+ });
10
+ const navigateMonth = useCallback(direction => {
11
+ setCurrentMonth(prev => addMonths(prev, direction));
12
+ }, []);
13
+ const goToMonth = useCallback(date => {
14
+ setCurrentMonth(getFirstDayOfMonth(date));
15
+ }, []);
16
+ const goToDate = useCallback(date => {
17
+ setCurrentMonth(getFirstDayOfMonth(date));
18
+ }, []);
19
+ const daysInMonth = useMemo(() => {
20
+ const days = [];
21
+ const firstDay = getFirstDayOfMonth(currentMonth);
22
+ // getDayOfWeek returns 0 for Sunday, we want Monday = 0
23
+ const dayOfWeek = getDayOfWeek(firstDay);
24
+ const paddingDays = dayOfWeek === 0 ? 6 : dayOfWeek - 1;
25
+ for (let i = 0; i < paddingDays; i++) {
26
+ days.push(null);
27
+ }
28
+ const monthDays = getMonthDays(currentMonth.getUTCFullYear(), currentMonth.getUTCMonth());
29
+ for (const day of monthDays) {
30
+ days.push(day);
31
+ }
32
+ return days;
33
+ }, [currentMonth]);
34
+ return {
35
+ currentMonth,
36
+ daysInMonth,
37
+ navigateMonth,
38
+ goToMonth,
39
+ goToDate,
40
+ nextMonth: () => navigateMonth(1),
41
+ prevMonth: () => navigateMonth(-1)
42
+ };
43
+ };
44
+ //# sourceMappingURL=useCalendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useMemo","useState","addMonths","getDayOfWeek","getFirstDayOfMonth","getMonthDays","today","useCalendar","initialDate","currentMonth","setCurrentMonth","date","navigateMonth","direction","prev","goToMonth","goToDate","daysInMonth","days","firstDay","dayOfWeek","paddingDays","i","push","monthDays","getUTCFullYear","getUTCMonth","day","nextMonth","prevMonth"],"sourceRoot":"../../../src","sources":["hooks/useCalendar.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AACtD,SACEC,SAAS,EACTC,YAAY,EACZC,kBAAkB,EAClBC,YAAY,EACZC,KAAK,QACA,kBAAe;AAEtB,OAAO,MAAMC,WAAW,GAAIC,WAAkB,IAAK;EACjD,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGT,QAAQ,CAAC,MAAM;IACrD,MAAMU,IAAI,GAAGH,WAAW,IAAIF,KAAK,CAAC,CAAC;IACnC,OAAOF,kBAAkB,CAACO,IAAI,CAAC;EACjC,CAAC,CAAC;EAEF,MAAMC,aAAa,GAAGb,WAAW,CAAEc,SAAiB,IAAK;IACvDH,eAAe,CAAEI,IAAI,IAAKZ,SAAS,CAACY,IAAI,EAAED,SAAS,CAAC,CAAC;EACvD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,SAAS,GAAGhB,WAAW,CAAEY,IAAU,IAAK;IAC5CD,eAAe,CAACN,kBAAkB,CAACO,IAAI,CAAC,CAAC;EAC3C,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMK,QAAQ,GAAGjB,WAAW,CAAEY,IAAU,IAAK;IAC3CD,eAAe,CAACN,kBAAkB,CAACO,IAAI,CAAC,CAAC;EAC3C,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMM,WAAW,GAAGjB,OAAO,CAAC,MAAM;IAChC,MAAMkB,IAAqB,GAAG,EAAE;IAChC,MAAMC,QAAQ,GAAGf,kBAAkB,CAACK,YAAY,CAAC;IACjD;IACA,MAAMW,SAAS,GAAGjB,YAAY,CAACgB,QAAQ,CAAC;IACxC,MAAME,WAAW,GAAGD,SAAS,KAAK,CAAC,GAAG,CAAC,GAAGA,SAAS,GAAG,CAAC;IAEvD,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,WAAW,EAAEC,CAAC,EAAE,EAAE;MACpCJ,IAAI,CAACK,IAAI,CAAC,IAAI,CAAC;IACjB;IAEA,MAAMC,SAAS,GAAGnB,YAAY,CAC5BI,YAAY,CAACgB,cAAc,CAAC,CAAC,EAC7BhB,YAAY,CAACiB,WAAW,CAAC,CAC3B,CAAC;IACD,KAAK,MAAMC,GAAG,IAAIH,SAAS,EAAE;MAC3BN,IAAI,CAACK,IAAI,CAACI,GAAG,CAAC;IAChB;IAEA,OAAOT,IAAI;EACb,CAAC,EAAE,CAACT,YAAY,CAAC,CAAC;EAElB,OAAO;IACLA,YAAY;IACZQ,WAAW;IACXL,aAAa;IACbG,SAAS;IACTC,QAAQ;IACRY,SAAS,EAAEA,CAAA,KAAMhB,aAAa,CAAC,CAAC,CAAC;IACjCiB,SAAS,EAAEA,CAAA,KAAMjB,aAAa,CAAC,CAAC,CAAC;EACnC,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useState } from 'react';
4
+ import { compareDates, today } from "../utils/date.js";
5
+ export const useDatePicker = (options = {}) => {
6
+ const {
7
+ initialDate = today(),
8
+ minDate,
9
+ maxDate,
10
+ onChange
11
+ } = options;
12
+ const [selectedDate, setSelectedDate] = useState(initialDate);
13
+ const handleDateChange = useCallback(date => {
14
+ setSelectedDate(date);
15
+ onChange?.(date);
16
+ }, [onChange]);
17
+ const isDateDisabled = useCallback(date => {
18
+ if (minDate && compareDates(date, minDate) < 0) return true;
19
+ if (maxDate && compareDates(date, maxDate) > 0) return true;
20
+ return false;
21
+ }, [minDate, maxDate]);
22
+ return {
23
+ selectedDate,
24
+ setSelectedDate: handleDateChange,
25
+ isDateDisabled,
26
+ minDate,
27
+ maxDate
28
+ };
29
+ };
30
+ //# sourceMappingURL=useDatePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useState","compareDates","today","useDatePicker","options","initialDate","minDate","maxDate","onChange","selectedDate","setSelectedDate","handleDateChange","date","isDateDisabled"],"sourceRoot":"../../../src","sources":["hooks/useDatePicker.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AAC7C,SAASC,YAAY,EAAEC,KAAK,QAAQ,kBAAe;AASnD,OAAO,MAAMC,aAAa,GAAGA,CAACC,OAA6B,GAAG,CAAC,CAAC,KAAK;EACnE,MAAM;IAAEC,WAAW,GAAGH,KAAK,CAAC,CAAC;IAAEI,OAAO;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAGJ,OAAO;EAErE,MAAM,CAACK,YAAY,EAAEC,eAAe,CAAC,GAAGV,QAAQ,CAACK,WAAW,CAAC;EAE7D,MAAMM,gBAAgB,GAAGZ,WAAW,CACjCa,IAAU,IAAK;IACdF,eAAe,CAACE,IAAI,CAAC;IACrBJ,QAAQ,GAAGI,IAAI,CAAC;EAClB,CAAC,EACD,CAACJ,QAAQ,CACX,CAAC;EAED,MAAMK,cAAc,GAAGd,WAAW,CAC/Ba,IAAU,IAAK;IACd,IAAIN,OAAO,IAAIL,YAAY,CAACW,IAAI,EAAEN,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI;IAC3D,IAAIC,OAAO,IAAIN,YAAY,CAACW,IAAI,EAAEL,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI;IAC3D,OAAO,KAAK;EACd,CAAC,EACD,CAACD,OAAO,EAAEC,OAAO,CACnB,CAAC;EAED,OAAO;IACLE,YAAY;IACZC,eAAe,EAAEC,gBAAgB;IACjCE,cAAc;IACdP,OAAO;IACPC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useState } from 'react';
4
+ /**
5
+ * Converts 24-hour time to 12-hour format
6
+ */
7
+ export const to12Hour = hours => {
8
+ const period = hours >= 12 ? 'PM' : 'AM';
9
+ let hour = hours % 12;
10
+ if (hour === 0) hour = 12;
11
+ return {
12
+ hour,
13
+ period
14
+ };
15
+ };
16
+
17
+ /**
18
+ * Converts 12-hour time to 24-hour format
19
+ */
20
+ export const to24Hour = (hour, period) => {
21
+ if (period === 'AM') {
22
+ return hour === 12 ? 0 : hour;
23
+ }
24
+ return hour === 12 ? 12 : hour + 12;
25
+ };
26
+
27
+ /**
28
+ * Formats time as HH:MM string
29
+ */
30
+ export const formatTime = (hours, minutes, is24Hour = false) => {
31
+ if (is24Hour) {
32
+ return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;
33
+ }
34
+ const {
35
+ hour,
36
+ period
37
+ } = to12Hour(hours);
38
+ return `${hour}:${minutes.toString().padStart(2, '0')} ${period}`;
39
+ };
40
+
41
+ /**
42
+ * Snaps minutes to the nearest interval
43
+ */
44
+ export const snapToInterval = (minutes, interval) => {
45
+ return Math.round(minutes / interval) * interval;
46
+ };
47
+
48
+ /**
49
+ * Hook for managing time picker state
50
+ */
51
+ export const useTimePicker = (options = {}) => {
52
+ const {
53
+ initialHours = 0,
54
+ initialMinutes = 0,
55
+ onChange,
56
+ is24Hour = false,
57
+ minuteInterval = 1
58
+ } = options;
59
+ const [hours, setHoursState] = useState(initialHours);
60
+ const [minutes, setMinutesState] = useState(initialMinutes);
61
+ const [clockMode, setClockMode] = useState('hours');
62
+ const setHours = useCallback(newHours => {
63
+ const clampedHours = Math.max(0, Math.min(23, newHours));
64
+ setHoursState(clampedHours);
65
+ onChange?.({
66
+ hours: clampedHours,
67
+ minutes
68
+ });
69
+ }, [minutes, onChange]);
70
+ const setMinutes = useCallback(newMinutes => {
71
+ const snapped = snapToInterval(newMinutes, minuteInterval);
72
+ const clampedMinutes = Math.max(0, Math.min(59, snapped));
73
+ setMinutesState(clampedMinutes);
74
+ onChange?.({
75
+ hours,
76
+ minutes: clampedMinutes
77
+ });
78
+ }, [hours, onChange, minuteInterval]);
79
+ const setTime = useCallback(time => {
80
+ const clampedHours = Math.max(0, Math.min(23, time.hours));
81
+ const snapped = snapToInterval(time.minutes, minuteInterval);
82
+ const clampedMinutes = Math.max(0, Math.min(59, snapped));
83
+ setHoursState(clampedHours);
84
+ setMinutesState(clampedMinutes);
85
+ onChange?.({
86
+ hours: clampedHours,
87
+ minutes: clampedMinutes
88
+ });
89
+ }, [onChange, minuteInterval]);
90
+ const setHours12 = useCallback((hour, period) => {
91
+ const hours24 = to24Hour(hour, period);
92
+ setHours(hours24);
93
+ }, [setHours]);
94
+ const setPeriod = useCallback(period => {
95
+ const {
96
+ hour
97
+ } = to12Hour(hours);
98
+ setHours(to24Hour(hour, period));
99
+ }, [hours, setHours]);
100
+ const time12Hour = to12Hour(hours);
101
+ return {
102
+ // State
103
+ hours,
104
+ minutes,
105
+ clockMode,
106
+ // 12-hour format helpers
107
+ hour12: time12Hour.hour,
108
+ period: time12Hour.period,
109
+ // Setters
110
+ setHours,
111
+ setMinutes,
112
+ setTime,
113
+ setHours12,
114
+ setPeriod,
115
+ setClockMode,
116
+ // Formatting
117
+ formatted: formatTime(hours, minutes, is24Hour),
118
+ formatted12: formatTime(hours, minutes, false),
119
+ formatted24: formatTime(hours, minutes, true),
120
+ // Config
121
+ is24Hour,
122
+ minuteInterval
123
+ };
124
+ };
125
+ //# sourceMappingURL=useTimePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useState","to12Hour","hours","period","hour","to24Hour","formatTime","minutes","is24Hour","toString","padStart","snapToInterval","interval","Math","round","useTimePicker","options","initialHours","initialMinutes","onChange","minuteInterval","setHoursState","setMinutesState","clockMode","setClockMode","setHours","newHours","clampedHours","max","min","setMinutes","newMinutes","snapped","clampedMinutes","setTime","time","setHours12","hours24","setPeriod","time12Hour","hour12","formatted","formatted12","formatted24"],"sourceRoot":"../../../src","sources":["hooks/useTimePicker.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ // Date picker components
4
+ export { DatePicker } from "./components/index.js";
5
+ export { CalendarGrid } from "./components/index.js";
6
+ export { WheelPicker } from "./components/index.js";
7
+
8
+ // Time picker components
9
+ export { TimePicker, TimeWheelPicker, ClockFace, MaterialTimePicker } from "./components/index.js";
10
+
11
+ // Hooks
12
+ export { useDatePicker, useCalendar } from "./hooks/index.js";
13
+ export { useTimePicker, to12Hour, to24Hour, formatTime, snapToInterval } from "./hooks/index.js";
14
+
15
+ // Date utilities
16
+ export { toISODateString, toISODateTimeString, parseISODate, parseISODateTime, fromISODateString, fromISODateTimeString, getDateRange, isDateInRange, getUserTimezone, addDays, addMonths, compareDates, isSameDay, isSameMonth, getMonthDays, getFirstDayOfMonth, getLastDayOfMonth, getDayOfWeek, formatMonth, formatWeekday, formatYearMonth, today } from "./utils/index.js";
17
+
18
+ // Validation schemas
19
+ export { isoDateSchema, isoDateTimeSchema, dateRangeSchema, datePickerValueSchema, dateSchema, temporalDateSchema } from "./utils/index.js";
20
+
21
+ // Time picker types
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DatePicker","CalendarGrid","WheelPicker","TimePicker","TimeWheelPicker","ClockFace","MaterialTimePicker","useDatePicker","useCalendar","useTimePicker","to12Hour","to24Hour","formatTime","snapToInterval","toISODateString","toISODateTimeString","parseISODate","parseISODateTime","fromISODateString","fromISODateTimeString","getDateRange","isDateInRange","getUserTimezone","addDays","addMonths","compareDates","isSameDay","isSameMonth","getMonthDays","getFirstDayOfMonth","getLastDayOfMonth","getDayOfWeek","formatMonth","formatWeekday","formatYearMonth","today","isoDateSchema","isoDateTimeSchema","dateRangeSchema","datePickerValueSchema","dateSchema","temporalDateSchema"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SAASA,UAAU,QAAkC,uBAAc;AACnE,SAASC,YAAY,QAAQ,uBAAc;AAC3C,SAASC,WAAW,QAAQ,uBAAc;;AAE1C;AACA,SACEC,UAAU,EACVC,eAAe,EACfC,SAAS,EACTC,kBAAkB,QAGb,uBAAc;;AAErB;AACA,SAASC,aAAa,EAAEC,WAAW,QAAQ,kBAAS;AACpD,SACEC,aAAa,EACbC,QAAQ,EACRC,QAAQ,EACRC,UAAU,EACVC,cAAc,QACT,kBAAS;;AAEhB;AACA,SACEC,eAAe,EACfC,mBAAmB,EACnBC,YAAY,EACZC,gBAAgB,EAChBC,iBAAiB,EACjBC,qBAAqB,EACrBC,YAAY,EACZC,aAAa,EACbC,eAAe,EACfC,OAAO,EACPC,SAAS,EACTC,YAAY,EACZC,SAAS,EACTC,WAAW,EACXC,YAAY,EACZC,kBAAkB,EAClBC,iBAAiB,EACjBC,YAAY,EACZC,WAAW,EACXC,aAAa,EACbC,eAAe,EACfC,KAAK,QACA,kBAAS;;AAEhB;AACA,SACEC,aAAa,EACbC,iBAAiB,EACjBC,eAAe,EACfC,qBAAqB,EACrBC,UAAU,EACVC,kBAAkB,QACb,kBAAS;;AAUhB","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=datepicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/datepicker.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export * from "./datepicker.js";
4
+ export * from "./timepicker.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/index.ts"],"mappings":";;AAAA,cAAc,iBAAc;AAC5B,cAAc,iBAAc","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=timepicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/timepicker.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ // Re-export theme configuration from @dreamstack-us/kaal-themes
4
+ // This ensures the module augmentation is applied
5
+ export { configureKaalThemes } from '@dreamstack-us/kaal-themes';
6
+
7
+ // Import to ensure type augmentation is applied during build
8
+ import '@dreamstack-us/kaal-themes';
9
+ //# sourceMappingURL=unistyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["configureKaalThemes"],"sourceRoot":"../../src","sources":["unistyles.ts"],"mappings":";;AAAA;AACA;AACA,SAASA,mBAAmB,QAAQ,4BAA4B;;AAEhE;AACA,OAAO,4BAA4B","ignoreList":[]}