@utilitywarehouse/hearth-react-native 0.3.1 → 0.4.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 (274) hide show
  1. package/.storybook/preview.tsx +3 -0
  2. package/.turbo/turbo-build.log +1 -1
  3. package/.turbo/turbo-lint.log +1 -1
  4. package/CHANGELOG.md +16 -0
  5. package/build/components/CurrencyInput/CurrencyInput.js +1 -1
  6. package/build/components/DatePicker/DatePicker.context.d.ts +19 -0
  7. package/build/components/DatePicker/DatePicker.context.js +3 -0
  8. package/build/components/DatePicker/DatePicker.d.ts +19 -0
  9. package/build/components/DatePicker/DatePicker.js +479 -0
  10. package/build/components/DatePicker/DatePicker.props.d.ts +125 -0
  11. package/build/components/DatePicker/DatePicker.props.js +1 -0
  12. package/build/components/DatePicker/DatePickerCalendar.d.ts +2 -0
  13. package/build/components/DatePicker/DatePickerCalendar.js +28 -0
  14. package/build/components/DatePicker/DatePickerDay.d.ts +11 -0
  15. package/build/components/DatePicker/DatePickerDay.js +242 -0
  16. package/build/components/DatePicker/DatePickerDays.d.ts +2 -0
  17. package/build/components/DatePicker/DatePickerDays.js +157 -0
  18. package/build/components/DatePicker/DatePickerFooter.d.ts +2 -0
  19. package/build/components/DatePicker/DatePickerFooter.js +23 -0
  20. package/build/components/DatePicker/DatePickerHeader/DatePickerHeader.props.d.ts +8 -0
  21. package/build/components/DatePicker/DatePickerHeader/DatePickerHeader.props.js +1 -0
  22. package/build/components/DatePicker/DatePickerHeader/DatePickerMonthButton.d.ts +2 -0
  23. package/build/components/DatePicker/DatePickerHeader/DatePickerMonthButton.js +14 -0
  24. package/build/components/DatePicker/DatePickerHeader/DatePickerNextButton.d.ts +2 -0
  25. package/build/components/DatePicker/DatePickerHeader/DatePickerNextButton.js +32 -0
  26. package/build/components/DatePicker/DatePickerHeader/DatePickerPrevButton.d.ts +2 -0
  27. package/build/components/DatePicker/DatePickerHeader/DatePickerPrevButton.js +32 -0
  28. package/build/components/DatePicker/DatePickerHeader/DatePickerSelectors.d.ts +6 -0
  29. package/build/components/DatePicker/DatePickerHeader/DatePickerSelectors.js +64 -0
  30. package/build/components/DatePicker/DatePickerHeader/DatePickerTimeButton.d.ts +1 -0
  31. package/build/components/DatePicker/DatePickerHeader/DatePickerTimeButton.js +22 -0
  32. package/build/components/DatePicker/DatePickerHeader/DatePickerYearButton.d.ts +2 -0
  33. package/build/components/DatePicker/DatePickerHeader/DatePickerYearButton.js +25 -0
  34. package/build/components/DatePicker/DatePickerHeader/index.d.ts +3 -0
  35. package/build/components/DatePicker/DatePickerHeader/index.js +30 -0
  36. package/build/components/DatePicker/DatePickerMonths.d.ts +2 -0
  37. package/build/components/DatePicker/DatePickerMonths.js +69 -0
  38. package/build/components/DatePicker/DatePickerWeekdays.d.ts +8 -0
  39. package/build/components/DatePicker/DatePickerWeekdays.js +26 -0
  40. package/build/components/DatePicker/DatePickerYears.d.ts +2 -0
  41. package/build/components/DatePicker/DatePickerYears.js +83 -0
  42. package/build/components/DatePicker/TimePicker.d.ts +3 -0
  43. package/build/components/DatePicker/TimePicker.js +84 -0
  44. package/build/components/DatePicker/enums.d.ts +12 -0
  45. package/build/components/DatePicker/enums.js +12 -0
  46. package/build/components/DatePicker/index.d.ts +4 -0
  47. package/build/components/DatePicker/index.js +3 -0
  48. package/build/components/DatePicker/polyfill.d.ts +0 -0
  49. package/build/components/DatePicker/polyfill.js +22 -0
  50. package/build/components/DatePicker/time-picker/animated-math.d.ts +4 -0
  51. package/build/components/DatePicker/time-picker/animated-math.js +19 -0
  52. package/build/components/DatePicker/time-picker/period-native.d.ts +6 -0
  53. package/build/components/DatePicker/time-picker/period-native.js +17 -0
  54. package/build/components/DatePicker/time-picker/period-picker.d.ts +6 -0
  55. package/build/components/DatePicker/time-picker/period-picker.js +10 -0
  56. package/build/components/DatePicker/time-picker/period-web.d.ts +6 -0
  57. package/build/components/DatePicker/time-picker/period-web.js +21 -0
  58. package/build/components/DatePicker/time-picker/wheel-native.d.ts +8 -0
  59. package/build/components/DatePicker/time-picker/wheel-native.js +19 -0
  60. package/build/components/DatePicker/time-picker/wheel-picker/index.d.ts +2 -0
  61. package/build/components/DatePicker/time-picker/wheel-picker/index.js +2 -0
  62. package/build/components/DatePicker/time-picker/wheel-picker/wheel-picker-item.d.ts +16 -0
  63. package/build/components/DatePicker/time-picker/wheel-picker/wheel-picker-item.js +97 -0
  64. package/build/components/DatePicker/time-picker/wheel-picker/wheel-picker.d.ts +21 -0
  65. package/build/components/DatePicker/time-picker/wheel-picker/wheel-picker.js +88 -0
  66. package/build/components/DatePicker/time-picker/wheel-picker/wheel-picker.style.d.ts +23 -0
  67. package/build/components/DatePicker/time-picker/wheel-picker/wheel-picker.style.js +21 -0
  68. package/build/components/DatePicker/time-picker/wheel-web.d.ts +8 -0
  69. package/build/components/DatePicker/time-picker/wheel-web.js +148 -0
  70. package/build/components/DatePicker/time-picker/wheel.d.ts +8 -0
  71. package/build/components/DatePicker/time-picker/wheel.js +10 -0
  72. package/build/components/DatePicker/utils.d.ts +212 -0
  73. package/build/components/DatePicker/utils.js +391 -0
  74. package/build/components/DatePickerInput/DatePickerInput.d.ts +6 -0
  75. package/build/components/DatePickerInput/DatePickerInput.js +126 -0
  76. package/build/components/DatePickerInput/DatePickerInput.props.d.ts +47 -0
  77. package/build/components/DatePickerInput/DatePickerInput.props.js +1 -0
  78. package/build/components/DatePickerInput/DatePickerInputDoneButton.d.ts +8 -0
  79. package/build/components/DatePickerInput/DatePickerInputDoneButton.js +19 -0
  80. package/build/components/DatePickerInput/DatePickerInputDoneButton.web.d.ts +5 -0
  81. package/build/components/DatePickerInput/DatePickerInputDoneButton.web.js +5 -0
  82. package/build/components/DatePickerInput/index.d.ts +2 -0
  83. package/build/components/DatePickerInput/index.js +1 -0
  84. package/build/components/Input/InputField.d.ts +1 -1
  85. package/build/components/Input/InputField.js +1 -1
  86. package/build/components/Input/InputSlot.d.ts +1 -1
  87. package/build/components/Input/InputSlot.js +3 -3
  88. package/build/components/UnstyledIconButton/UnstyledIconButton.js +2 -2
  89. package/build/components/UnstyledIconButton/UnstyledIconButtonRoot.js +1 -1
  90. package/build/components/index.d.ts +2 -0
  91. package/build/components/index.js +2 -0
  92. package/build/core/themes.d.ts +482 -0
  93. package/build/core/themes.js +31 -0
  94. package/build/hooks/index.d.ts +4 -3
  95. package/build/hooks/index.js +4 -3
  96. package/build/hooks/usePrevious.d.ts +1 -0
  97. package/build/hooks/usePrevious.js +8 -0
  98. package/build/hooks/useTheme.d.ts +2 -1
  99. package/build/hooks/useTheme.js +2 -2
  100. package/build/legacyTokens/common/brand.d.ts +16 -0
  101. package/build/legacyTokens/common/brand.js +17 -0
  102. package/build/legacyTokens/common/index.d.ts +8 -0
  103. package/build/legacyTokens/common/index.js +9 -0
  104. package/build/legacyTokens/common/service.d.ts +20 -0
  105. package/build/legacyTokens/common/service.js +21 -0
  106. package/build/legacyTokens/dark/apple.d.ts +28 -0
  107. package/build/legacyTokens/dark/apple.js +29 -0
  108. package/build/legacyTokens/dark/cyan.d.ts +48 -0
  109. package/build/legacyTokens/dark/cyan.js +49 -0
  110. package/build/legacyTokens/dark/gold.d.ts +44 -0
  111. package/build/legacyTokens/dark/gold.js +45 -0
  112. package/build/legacyTokens/dark/grape.d.ts +28 -0
  113. package/build/legacyTokens/dark/grape.js +29 -0
  114. package/build/legacyTokens/dark/green.d.ts +40 -0
  115. package/build/legacyTokens/dark/green.js +41 -0
  116. package/build/legacyTokens/dark/grey.d.ts +60 -0
  117. package/build/legacyTokens/dark/grey.js +61 -0
  118. package/build/legacyTokens/dark/index.d.ts +40 -0
  119. package/build/legacyTokens/dark/index.js +41 -0
  120. package/build/legacyTokens/dark/pink.d.ts +28 -0
  121. package/build/legacyTokens/dark/pink.js +29 -0
  122. package/build/legacyTokens/dark/purple.d.ts +48 -0
  123. package/build/legacyTokens/dark/purple.js +49 -0
  124. package/build/legacyTokens/dark/red.d.ts +40 -0
  125. package/build/legacyTokens/dark/red.js +41 -0
  126. package/build/legacyTokens/dark/rose.d.ts +28 -0
  127. package/build/legacyTokens/dark/rose.js +29 -0
  128. package/build/legacyTokens/index.d.ts +12 -0
  129. package/build/legacyTokens/index.js +13 -0
  130. package/build/legacyTokens/light/apple.d.ts +28 -0
  131. package/build/legacyTokens/light/apple.js +29 -0
  132. package/build/legacyTokens/light/cyan.d.ts +48 -0
  133. package/build/legacyTokens/light/cyan.js +49 -0
  134. package/build/legacyTokens/light/gold.d.ts +44 -0
  135. package/build/legacyTokens/light/gold.js +45 -0
  136. package/build/legacyTokens/light/grape.d.ts +28 -0
  137. package/build/legacyTokens/light/grape.js +29 -0
  138. package/build/legacyTokens/light/green.d.ts +40 -0
  139. package/build/legacyTokens/light/green.js +41 -0
  140. package/build/legacyTokens/light/grey.d.ts +60 -0
  141. package/build/legacyTokens/light/grey.js +61 -0
  142. package/build/legacyTokens/light/index.d.ts +40 -0
  143. package/build/legacyTokens/light/index.js +41 -0
  144. package/build/legacyTokens/light/pink.d.ts +28 -0
  145. package/build/legacyTokens/light/pink.js +29 -0
  146. package/build/legacyTokens/light/purple.d.ts +48 -0
  147. package/build/legacyTokens/light/purple.js +49 -0
  148. package/build/legacyTokens/light/red.d.ts +40 -0
  149. package/build/legacyTokens/light/red.js +41 -0
  150. package/build/legacyTokens/light/rose.d.ts +32 -0
  151. package/build/legacyTokens/light/rose.js +33 -0
  152. package/build/tokens/components/dark/date-picker.d.ts +1 -0
  153. package/build/tokens/components/dark/date-picker.js +1 -0
  154. package/build/tokens/components/dark/illustrations.d.ts +7 -0
  155. package/build/tokens/components/dark/illustrations.js +6 -0
  156. package/build/tokens/components/dark/index.d.ts +1 -0
  157. package/build/tokens/components/dark/index.js +1 -0
  158. package/build/tokens/components/dark/segmented-control.d.ts +2 -2
  159. package/build/tokens/components/dark/segmented-control.js +2 -2
  160. package/build/tokens/components/dark/table.d.ts +3 -0
  161. package/build/tokens/components/dark/table.js +3 -0
  162. package/build/tokens/components/light/date-picker.d.ts +1 -0
  163. package/build/tokens/components/light/date-picker.js +1 -0
  164. package/build/tokens/components/light/illustrations.d.ts +7 -0
  165. package/build/tokens/components/light/illustrations.js +6 -0
  166. package/build/tokens/components/light/index.d.ts +1 -0
  167. package/build/tokens/components/light/index.js +1 -0
  168. package/build/tokens/components/light/segmented-control.d.ts +2 -2
  169. package/build/tokens/components/light/segmented-control.js +2 -2
  170. package/build/tokens/components/light/table.d.ts +3 -0
  171. package/build/tokens/components/light/table.js +3 -0
  172. package/build/utils/index.d.ts +1 -0
  173. package/build/utils/index.js +1 -0
  174. package/build/utils/isEqual.d.ts +2 -0
  175. package/build/utils/isEqual.js +29 -0
  176. package/chromatic.config.json +6 -0
  177. package/docs/components/AllComponents.web.tsx +43 -1
  178. package/docs/components/ViewWrap.tsx +32 -0
  179. package/docs/components/index.ts +1 -0
  180. package/docs/getting-started.mdx +6 -6
  181. package/package.json +11 -8
  182. package/src/components/CurrencyInput/CurrencyInput.tsx +2 -1
  183. package/src/components/DatePicker/DatePicker.context.ts +23 -0
  184. package/src/components/DatePicker/DatePicker.docs.mdx +239 -0
  185. package/src/components/DatePicker/DatePicker.props.ts +139 -0
  186. package/src/components/DatePicker/DatePicker.stories.tsx +98 -0
  187. package/src/components/DatePicker/DatePicker.tsx +669 -0
  188. package/src/components/DatePicker/DatePickerCalendar.tsx +41 -0
  189. package/src/components/DatePicker/DatePickerDay.tsx +302 -0
  190. package/src/components/DatePicker/DatePickerDays.tsx +241 -0
  191. package/src/components/DatePicker/DatePickerFooter.tsx +35 -0
  192. package/src/components/DatePicker/DatePickerHeader/DatePickerHeader.props.ts +10 -0
  193. package/src/components/DatePicker/DatePickerHeader/DatePickerMonthButton.tsx +29 -0
  194. package/src/components/DatePicker/DatePickerHeader/DatePickerNextButton.tsx +46 -0
  195. package/src/components/DatePicker/DatePickerHeader/DatePickerPrevButton.tsx +46 -0
  196. package/src/components/DatePicker/DatePickerHeader/DatePickerSelectors.tsx +96 -0
  197. package/src/components/DatePicker/DatePickerHeader/DatePickerTimeButton.tsx +48 -0
  198. package/src/components/DatePicker/DatePickerHeader/DatePickerYearButton.tsx +50 -0
  199. package/src/components/DatePicker/DatePickerHeader/index.tsx +64 -0
  200. package/src/components/DatePicker/DatePickerMonths.tsx +101 -0
  201. package/src/components/DatePicker/DatePickerWeekdays.tsx +49 -0
  202. package/src/components/DatePicker/DatePickerYears.tsx +119 -0
  203. package/src/components/DatePicker/TimePicker.tsx +141 -0
  204. package/src/components/DatePicker/enums.ts +14 -0
  205. package/src/components/DatePicker/index.ts +13 -0
  206. package/src/components/DatePicker/polyfill.ts +21 -0
  207. package/src/components/DatePicker/time-picker/animated-math.ts +33 -0
  208. package/src/components/DatePicker/time-picker/period-native.tsx +34 -0
  209. package/src/components/DatePicker/time-picker/period-picker.tsx +16 -0
  210. package/src/components/DatePicker/time-picker/period-web.tsx +36 -0
  211. package/src/components/DatePicker/time-picker/wheel-native.tsx +37 -0
  212. package/src/components/DatePicker/time-picker/wheel-picker/index.ts +3 -0
  213. package/src/components/DatePicker/time-picker/wheel-picker/wheel-picker-item.tsx +132 -0
  214. package/src/components/DatePicker/time-picker/wheel-picker/wheel-picker.style.ts +22 -0
  215. package/src/components/DatePicker/time-picker/wheel-picker/wheel-picker.tsx +200 -0
  216. package/src/components/DatePicker/time-picker/wheel-web.tsx +181 -0
  217. package/src/components/DatePicker/time-picker/wheel.tsx +18 -0
  218. package/src/components/DatePicker/utils.ts +549 -0
  219. package/src/components/DatePickerInput/DatePickerInput.docs.mdx +237 -0
  220. package/src/components/DatePickerInput/DatePickerInput.props.ts +50 -0
  221. package/src/components/DatePickerInput/DatePickerInput.stories.tsx +178 -0
  222. package/src/components/DatePickerInput/DatePickerInput.tsx +265 -0
  223. package/src/components/DatePickerInput/DatePickerInputDoneButton.tsx +42 -0
  224. package/src/components/DatePickerInput/DatePickerInputDoneButton.web.tsx +7 -0
  225. package/src/components/DatePickerInput/index.ts +2 -0
  226. package/src/components/Icon/Icon.stories.tsx +4 -3
  227. package/src/components/Input/InputField.tsx +0 -2
  228. package/src/components/Input/InputSlot.tsx +14 -3
  229. package/src/components/Modal/Modal.stories.tsx +2 -30
  230. package/src/components/UnstyledIconButton/UnstyledIconButton.tsx +14 -2
  231. package/src/components/UnstyledIconButton/UnstyledIconButtonRoot.tsx +7 -3
  232. package/src/components/index.ts +2 -0
  233. package/src/core/themes.ts +31 -0
  234. package/src/hooks/index.ts +4 -3
  235. package/src/hooks/usePrevious.ts +9 -0
  236. package/src/hooks/useTheme.ts +4 -3
  237. package/src/legacyTokens/common/brand.ts +18 -0
  238. package/src/legacyTokens/common/index.ts +10 -0
  239. package/src/legacyTokens/common/service.ts +22 -0
  240. package/src/legacyTokens/dark/apple.ts +30 -0
  241. package/src/legacyTokens/dark/cyan.ts +50 -0
  242. package/src/legacyTokens/dark/gold.ts +46 -0
  243. package/src/legacyTokens/dark/grape.ts +30 -0
  244. package/src/legacyTokens/dark/green.ts +42 -0
  245. package/src/legacyTokens/dark/grey.ts +62 -0
  246. package/src/legacyTokens/dark/index.ts +42 -0
  247. package/src/legacyTokens/dark/pink.ts +30 -0
  248. package/src/legacyTokens/dark/purple.ts +50 -0
  249. package/src/legacyTokens/dark/red.ts +42 -0
  250. package/src/legacyTokens/dark/rose.ts +30 -0
  251. package/src/legacyTokens/index.ts +14 -0
  252. package/src/legacyTokens/light/apple.ts +30 -0
  253. package/src/legacyTokens/light/cyan.ts +50 -0
  254. package/src/legacyTokens/light/gold.ts +46 -0
  255. package/src/legacyTokens/light/grape.ts +30 -0
  256. package/src/legacyTokens/light/green.ts +42 -0
  257. package/src/legacyTokens/light/grey.ts +62 -0
  258. package/src/legacyTokens/light/index.ts +42 -0
  259. package/src/legacyTokens/light/pink.ts +30 -0
  260. package/src/legacyTokens/light/purple.ts +50 -0
  261. package/src/legacyTokens/light/red.ts +42 -0
  262. package/src/legacyTokens/light/rose.ts +34 -0
  263. package/src/tokens/components/dark/date-picker.ts +1 -0
  264. package/src/tokens/components/dark/illustrations.ts +7 -0
  265. package/src/tokens/components/dark/index.ts +1 -0
  266. package/src/tokens/components/dark/segmented-control.ts +2 -2
  267. package/src/tokens/components/dark/table.ts +3 -0
  268. package/src/tokens/components/light/date-picker.ts +1 -0
  269. package/src/tokens/components/light/illustrations.ts +7 -0
  270. package/src/tokens/components/light/index.ts +1 -0
  271. package/src/tokens/components/light/segmented-control.ts +2 -2
  272. package/src/tokens/components/light/table.ts +3 -0
  273. package/src/utils/index.ts +1 -0
  274. package/src/utils/isEqual.ts +30 -0
@@ -0,0 +1,139 @@
1
+ import { BottomSheetModalMethods } from '@gorhom/bottom-sheet/lib/typescript/types';
2
+ import type { Dayjs } from 'dayjs';
3
+ import { Ref } from 'react';
4
+ import type { ImageStyle, TextStyle, ViewStyle } from 'react-native';
5
+ import type { CalendarActionKind, CalendarViews } from './enums';
6
+
7
+ export type DateType = string | number | Dayjs | Date | null | undefined;
8
+
9
+ export type CalendarType = 'gregory';
10
+
11
+ export type CalendarMode = 'single' | 'range' | 'multiple';
12
+
13
+ export type NavigationPosition = 'around' | 'right' | 'left';
14
+
15
+ export type WeekdayFormat = 'min' | 'short' | 'full';
16
+
17
+ export type MonthFormat = 'short' | 'full';
18
+
19
+ export type LocalState = {
20
+ date: DateType;
21
+ startDate: DateType;
22
+ endDate: DateType;
23
+ dates?: DateType[];
24
+ calendarView: CalendarViews;
25
+ currentDate: DateType; // used for latest state of calendar based on Month and Year
26
+ currentYear: number;
27
+ };
28
+
29
+ export type CalendarAction = {
30
+ type: CalendarActionKind;
31
+ payload: any;
32
+ };
33
+
34
+ export type CalendarDay = {
35
+ number: number;
36
+ text: string;
37
+ date: string;
38
+ isDisabled: boolean;
39
+ isCurrentMonth: boolean;
40
+ dayOfMonth?: number;
41
+ isToday: boolean;
42
+ isSelected: boolean;
43
+ inRange: boolean;
44
+ leftCrop: boolean;
45
+ rightCrop: boolean;
46
+ isStartOfWeek: boolean;
47
+ isEndOfWeek: boolean;
48
+ isCrop: boolean;
49
+ inMiddle: boolean;
50
+ rangeStart: boolean;
51
+ rangeEnd: boolean;
52
+ };
53
+
54
+ export type CalendarWeek = {
55
+ index: number;
56
+ name: {
57
+ full: string;
58
+ short: string;
59
+ min: string;
60
+ };
61
+ };
62
+
63
+ export type CalendarMonth = {
64
+ index: number;
65
+ name: {
66
+ full: string;
67
+ short: string;
68
+ };
69
+ isSelected: boolean;
70
+ };
71
+
72
+ export type CalendarYear = {
73
+ number: number;
74
+ text: string;
75
+ isSelected: boolean;
76
+ isActivated: boolean;
77
+ };
78
+
79
+ export type SingleChange = (params: { date: DateType }) => void;
80
+
81
+ export type RangeChange = (params: { startDate: DateType; endDate: DateType }) => void;
82
+
83
+ export type MultiChange = (params: {
84
+ dates: DateType[];
85
+ datePressed?: DateType;
86
+ change: 'added' | 'removed' | 'updated';
87
+ }) => void;
88
+
89
+ export type Styles = Partial<ViewStyle | TextStyle | ImageStyle>;
90
+
91
+ export interface DatePickerBaseProps {
92
+ mode?: CalendarMode;
93
+ timeZone?: string;
94
+ date?: DateType;
95
+ startDate?: DateType;
96
+ endDate?: DateType;
97
+ dates?: DateType[];
98
+ min?: number;
99
+ max?: number;
100
+ onChange?: SingleChange | RangeChange | MultiChange;
101
+ startYear?: number;
102
+ endYear?: number;
103
+ minDate?: DateType;
104
+ maxDate?: DateType;
105
+ enabledDates?: DateType[] | ((date: DateType) => boolean);
106
+ disabledDates?: DateType[] | ((date: DateType) => boolean);
107
+ firstDayOfWeek?: number;
108
+ showOutsideDays?: boolean;
109
+ timePicker?: boolean;
110
+ use12Hours?: boolean;
111
+ initialView?: CalendarViews;
112
+ containerHeight?: number;
113
+ weekdaysHeight?: number;
114
+ style?: ViewStyle;
115
+ navigationPosition?: NavigationPosition;
116
+ weekdaysFormat?: WeekdayFormat;
117
+ monthsFormat?: MonthFormat;
118
+ monthCaptionFormat?: MonthFormat;
119
+ multiRangeMode?: boolean;
120
+ hideHeader?: boolean;
121
+ hideFooter?: boolean;
122
+ hideWeekdays?: boolean;
123
+ disableMonthPicker?: boolean;
124
+ disableYearPicker?: boolean;
125
+ /** use to handle month and year selectors */
126
+ month?: number;
127
+ year?: number;
128
+ onMonthChange?: (month: number) => void;
129
+ onYearChange?: (year: number) => void;
130
+ ref?: Ref<BottomSheetModalMethods<any>>;
131
+ onCancel?: () => void;
132
+ }
133
+
134
+ export type Numerals = 'latn';
135
+
136
+ export type PickerOption = {
137
+ value: number | string;
138
+ text: string;
139
+ };
@@ -0,0 +1,98 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { useRef, useState } from 'react';
3
+ import { Platform, View } from 'react-native';
4
+ import { DatePicker, DateType } from '.';
5
+ import { ViewWrap } from '../../../docs/components';
6
+ import { BottomSheetModal } from '../BottomSheet';
7
+ import { Button } from '../Button';
8
+
9
+ const meta = {
10
+ title: 'Stories / DatePicker',
11
+ component: DatePicker,
12
+ parameters: {
13
+ layout: 'centered',
14
+ },
15
+ argTypes: {},
16
+ args: {},
17
+ } satisfies Meta<typeof DatePicker>;
18
+
19
+ export default meta;
20
+
21
+ type Story = StoryObj<typeof meta>;
22
+
23
+ export const Playground: Story = {
24
+ args: {
25
+ mode: 'single',
26
+ },
27
+ render: () => {
28
+ const [selected, setSelected] = useState<DateType>();
29
+ const modalRef = useRef<BottomSheetModal>(null);
30
+
31
+ return (
32
+ <View style={Platform.OS === 'web' ? { width: 400, height: 400 } : {}}>
33
+ <ViewWrap>
34
+ <Button onPress={() => modalRef.current?.present()}>Show Date Picker</Button>
35
+ <DatePicker
36
+ ref={modalRef}
37
+ mode="single"
38
+ date={selected}
39
+ onChange={({ date }) => setSelected(date)}
40
+ onCancel={() => setSelected(undefined)}
41
+ />
42
+ </ViewWrap>
43
+ </View>
44
+ );
45
+ },
46
+ };
47
+
48
+ export const Range: Story = {
49
+ args: {
50
+ mode: 'range',
51
+ },
52
+ render: () => {
53
+ const [range, setRange] = useState<{
54
+ startDate: DateType;
55
+ endDate: DateType;
56
+ }>({ startDate: undefined, endDate: undefined });
57
+ const modalRef = useRef<BottomSheetModal>(null);
58
+ return (
59
+ <View style={Platform.OS === 'web' ? { width: 400, height: 400 } : {}}>
60
+ <ViewWrap>
61
+ <Button onPress={() => modalRef.current?.present()}>Show Range Date Picker</Button>
62
+ <DatePicker
63
+ mode="range"
64
+ ref={modalRef}
65
+ startDate={range.startDate}
66
+ endDate={range.endDate}
67
+ onChange={params => setRange(params)}
68
+ onCancel={() => setRange({ startDate: undefined, endDate: undefined })}
69
+ />
70
+ </ViewWrap>
71
+ </View>
72
+ );
73
+ },
74
+ };
75
+
76
+ export const Multi: Story = {
77
+ args: {
78
+ mode: 'multiple',
79
+ },
80
+ render: () => {
81
+ const [dates, setDates] = useState<DateType[]>([]);
82
+ const modalRef = useRef<BottomSheetModal>(null);
83
+ return (
84
+ <View style={Platform.OS === 'web' ? { width: 400, height: 400 } : {}}>
85
+ <ViewWrap>
86
+ <Button onPress={() => modalRef.current?.present()}>Show Multi Date Picker</Button>
87
+ <DatePicker
88
+ mode="multiple"
89
+ ref={modalRef}
90
+ dates={dates}
91
+ onChange={({ dates }) => setDates(dates)}
92
+ onCancel={() => setDates([])}
93
+ />
94
+ </ViewWrap>
95
+ </View>
96
+ );
97
+ },
98
+ };