@demlanide/react-lucky-components 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. package/README.md +184 -0
  2. package/dist/Alert/Alert.d.ts +3 -0
  3. package/dist/Alert/Alert.d.ts.map +1 -0
  4. package/dist/Alert/Alert.js +7 -0
  5. package/dist/Alert/constants.d.ts +38 -0
  6. package/dist/Alert/constants.d.ts.map +1 -0
  7. package/dist/Alert/constants.js +34 -0
  8. package/dist/Alert/index.d.ts +3 -0
  9. package/dist/Alert/index.d.ts.map +1 -0
  10. package/dist/Alert/index.js +1 -0
  11. package/dist/Alert/styles.d.ts +11 -0
  12. package/dist/Alert/styles.d.ts.map +1 -0
  13. package/dist/Alert/styles.js +49 -0
  14. package/dist/Alert/types.d.ts +20 -0
  15. package/dist/Alert/types.d.ts.map +1 -0
  16. package/dist/Alert/types.js +1 -0
  17. package/dist/Avatar/Avatar.d.ts +3 -0
  18. package/dist/Avatar/Avatar.d.ts.map +1 -0
  19. package/dist/Avatar/Avatar.js +33 -0
  20. package/dist/Avatar/Shapes/.map.json +42 -0
  21. package/dist/Avatar/Shapes/romb.png +0 -0
  22. package/dist/Avatar/consts.d.ts +21 -0
  23. package/dist/Avatar/consts.d.ts.map +1 -0
  24. package/dist/Avatar/consts.js +20 -0
  25. package/dist/Avatar/index.d.ts +3 -0
  26. package/dist/Avatar/index.d.ts.map +1 -0
  27. package/dist/Avatar/index.js +1 -0
  28. package/dist/Avatar/styles.d.ts +27 -0
  29. package/dist/Avatar/styles.d.ts.map +1 -0
  30. package/dist/Avatar/styles.js +83 -0
  31. package/dist/Avatar/types.d.ts +31 -0
  32. package/dist/Avatar/types.d.ts.map +1 -0
  33. package/dist/Avatar/types.js +1 -0
  34. package/dist/Avatar/utilities.d.ts +8 -0
  35. package/dist/Avatar/utilities.d.ts.map +1 -0
  36. package/dist/Avatar/utilities.js +66 -0
  37. package/dist/Badge/Badge.d.ts +3 -0
  38. package/dist/Badge/Badge.d.ts.map +1 -0
  39. package/dist/Badge/Badge.js +8 -0
  40. package/dist/Badge/constants.d.ts +20 -0
  41. package/dist/Badge/constants.d.ts.map +1 -0
  42. package/dist/Badge/constants.js +32 -0
  43. package/dist/Badge/index.d.ts +3 -0
  44. package/dist/Badge/index.d.ts.map +1 -0
  45. package/dist/Badge/index.js +1 -0
  46. package/dist/Badge/styles.d.ts +10 -0
  47. package/dist/Badge/styles.d.ts.map +1 -0
  48. package/dist/Badge/styles.js +28 -0
  49. package/dist/Badge/types.d.ts +18 -0
  50. package/dist/Badge/types.d.ts.map +1 -0
  51. package/dist/Badge/types.js +1 -0
  52. package/dist/BigInput/BigInput.d.ts +3 -0
  53. package/dist/BigInput/BigInput.d.ts.map +1 -0
  54. package/dist/BigInput/BigInput.js +46 -0
  55. package/dist/BigInput/constants.d.ts +32 -0
  56. package/dist/BigInput/constants.d.ts.map +1 -0
  57. package/dist/BigInput/constants.js +31 -0
  58. package/dist/BigInput/index.d.ts +3 -0
  59. package/dist/BigInput/index.d.ts.map +1 -0
  60. package/dist/BigInput/index.js +1 -0
  61. package/dist/BigInput/styles.d.ts +14 -0
  62. package/dist/BigInput/styles.d.ts.map +1 -0
  63. package/dist/BigInput/styles.js +80 -0
  64. package/dist/BigInput/types.d.ts +23 -0
  65. package/dist/BigInput/types.d.ts.map +1 -0
  66. package/dist/BigInput/types.js +1 -0
  67. package/dist/Button/Button.d.ts +3 -0
  68. package/dist/Button/Button.d.ts.map +1 -0
  69. package/dist/Button/Button.js +7 -0
  70. package/dist/Button/constants.d.ts +23 -0
  71. package/dist/Button/constants.d.ts.map +1 -0
  72. package/dist/Button/constants.js +28 -0
  73. package/dist/Button/index.d.ts +3 -0
  74. package/dist/Button/index.d.ts.map +1 -0
  75. package/dist/Button/index.js +1 -0
  76. package/dist/Button/styles.d.ts +13 -0
  77. package/dist/Button/styles.d.ts.map +1 -0
  78. package/dist/Button/styles.js +34 -0
  79. package/dist/Button/types.d.ts +20 -0
  80. package/dist/Button/types.d.ts.map +1 -0
  81. package/dist/Button/types.js +1 -0
  82. package/dist/CardStack/BehindCard.d.ts +12 -0
  83. package/dist/CardStack/BehindCard.d.ts.map +1 -0
  84. package/dist/CardStack/BehindCard.js +18 -0
  85. package/dist/CardStack/CardStack.d.ts +3 -0
  86. package/dist/CardStack/CardStack.d.ts.map +1 -0
  87. package/dist/CardStack/CardStack.js +77 -0
  88. package/dist/CardStack/CardStackDots.d.ts +3 -0
  89. package/dist/CardStack/CardStackDots.d.ts.map +1 -0
  90. package/dist/CardStack/CardStackDots.js +121 -0
  91. package/dist/CardStack/StackCard.d.ts +27 -0
  92. package/dist/CardStack/StackCard.d.ts.map +1 -0
  93. package/dist/CardStack/StackCard.js +45 -0
  94. package/dist/CardStack/constants.d.ts +32 -0
  95. package/dist/CardStack/constants.d.ts.map +1 -0
  96. package/dist/CardStack/constants.js +31 -0
  97. package/dist/CardStack/index.d.ts +4 -0
  98. package/dist/CardStack/index.d.ts.map +1 -0
  99. package/dist/CardStack/index.js +2 -0
  100. package/dist/CardStack/types.d.ts +39 -0
  101. package/dist/CardStack/types.d.ts.map +1 -0
  102. package/dist/CardStack/types.js +1 -0
  103. package/dist/CardStack/useSwipeGesture.d.ts +18 -0
  104. package/dist/CardStack/useSwipeGesture.d.ts.map +1 -0
  105. package/dist/CardStack/useSwipeGesture.js +70 -0
  106. package/dist/DatePicker/CalendarModal.d.ts +15 -0
  107. package/dist/DatePicker/CalendarModal.d.ts.map +1 -0
  108. package/dist/DatePicker/CalendarModal.js +129 -0
  109. package/dist/DatePicker/DatePicker.d.ts +3 -0
  110. package/dist/DatePicker/DatePicker.d.ts.map +1 -0
  111. package/dist/DatePicker/DatePicker.js +57 -0
  112. package/dist/DatePicker/DayCell.d.ts +14 -0
  113. package/dist/DatePicker/DayCell.d.ts.map +1 -0
  114. package/dist/DatePicker/DayCell.js +16 -0
  115. package/dist/DatePicker/constants.d.ts +46 -0
  116. package/dist/DatePicker/constants.d.ts.map +1 -0
  117. package/dist/DatePicker/constants.js +51 -0
  118. package/dist/DatePicker/icons.d.ts +4 -0
  119. package/dist/DatePicker/icons.d.ts.map +1 -0
  120. package/dist/DatePicker/icons.js +12 -0
  121. package/dist/DatePicker/index.d.ts +3 -0
  122. package/dist/DatePicker/index.d.ts.map +1 -0
  123. package/dist/DatePicker/index.js +1 -0
  124. package/dist/DatePicker/styles.d.ts +40 -0
  125. package/dist/DatePicker/styles.d.ts.map +1 -0
  126. package/dist/DatePicker/styles.js +134 -0
  127. package/dist/DatePicker/types.d.ts +39 -0
  128. package/dist/DatePicker/types.d.ts.map +1 -0
  129. package/dist/DatePicker/types.js +1 -0
  130. package/dist/DatePicker/utils.d.ts +15 -0
  131. package/dist/DatePicker/utils.d.ts.map +1 -0
  132. package/dist/DatePicker/utils.js +133 -0
  133. package/dist/DimmedScrollView/DimmedScrollView.d.ts +5 -0
  134. package/dist/DimmedScrollView/DimmedScrollView.d.ts.map +1 -0
  135. package/dist/DimmedScrollView/DimmedScrollView.js +18 -0
  136. package/dist/DimmedScrollView/index.d.ts +3 -0
  137. package/dist/DimmedScrollView/index.d.ts.map +1 -0
  138. package/dist/DimmedScrollView/index.js +1 -0
  139. package/dist/DimmedScrollView/styles.d.ts +15 -0
  140. package/dist/DimmedScrollView/styles.d.ts.map +1 -0
  141. package/dist/DimmedScrollView/styles.js +32 -0
  142. package/dist/DimmedScrollView/types.d.ts +20 -0
  143. package/dist/DimmedScrollView/types.d.ts.map +1 -0
  144. package/dist/DimmedScrollView/types.js +1 -0
  145. package/dist/FadingEdge/FadingEdge.d.ts +3 -0
  146. package/dist/FadingEdge/FadingEdge.d.ts.map +1 -0
  147. package/dist/FadingEdge/FadingEdge.js +30 -0
  148. package/dist/FadingEdge/index.d.ts +3 -0
  149. package/dist/FadingEdge/index.d.ts.map +1 -0
  150. package/dist/FadingEdge/index.js +1 -0
  151. package/dist/FadingEdge/types.d.ts +14 -0
  152. package/dist/FadingEdge/types.d.ts.map +1 -0
  153. package/dist/FadingEdge/types.js +1 -0
  154. package/dist/Icon/Icon.d.ts +6 -0
  155. package/dist/Icon/Icon.d.ts.map +1 -0
  156. package/dist/Icon/Icon.js +16 -0
  157. package/dist/Icon/defaults.d.ts +7 -0
  158. package/dist/Icon/defaults.d.ts.map +1 -0
  159. package/dist/Icon/defaults.js +80 -0
  160. package/dist/Icon/icons/navigation.d.ts +10 -0
  161. package/dist/Icon/icons/navigation.d.ts.map +1 -0
  162. package/dist/Icon/icons/navigation.js +10 -0
  163. package/dist/Icon/icons/system.d.ts +29 -0
  164. package/dist/Icon/icons/system.d.ts.map +1 -0
  165. package/dist/Icon/icons/system.js +29 -0
  166. package/dist/Icon/icons/tabs.d.ts +6 -0
  167. package/dist/Icon/icons/tabs.d.ts.map +1 -0
  168. package/dist/Icon/icons/tabs.js +6 -0
  169. package/dist/Icon/index.d.ts +3 -0
  170. package/dist/Icon/index.d.ts.map +1 -0
  171. package/dist/Icon/index.js +1 -0
  172. package/dist/Icon/registry.d.ts +3 -0
  173. package/dist/Icon/registry.d.ts.map +1 -0
  174. package/dist/Icon/registry.js +43 -0
  175. package/dist/Icon/types.d.ts +20 -0
  176. package/dist/Icon/types.d.ts.map +1 -0
  177. package/dist/Icon/types.js +40 -0
  178. package/dist/Input/Input.d.ts +5 -0
  179. package/dist/Input/Input.d.ts.map +1 -0
  180. package/dist/Input/Input.js +64 -0
  181. package/dist/Input/constants.d.ts +56 -0
  182. package/dist/Input/constants.d.ts.map +1 -0
  183. package/dist/Input/constants.js +61 -0
  184. package/dist/Input/index.d.ts +3 -0
  185. package/dist/Input/index.d.ts.map +1 -0
  186. package/dist/Input/index.js +1 -0
  187. package/dist/Input/styles.d.ts +23 -0
  188. package/dist/Input/styles.d.ts.map +1 -0
  189. package/dist/Input/styles.js +99 -0
  190. package/dist/Input/types.d.ts +21 -0
  191. package/dist/Input/types.d.ts.map +1 -0
  192. package/dist/Input/types.js +1 -0
  193. package/dist/ListCell/CheckMark.d.ts +10 -0
  194. package/dist/ListCell/CheckMark.d.ts.map +1 -0
  195. package/dist/ListCell/CheckMark.js +12 -0
  196. package/dist/ListCell/Chevron.d.ts +14 -0
  197. package/dist/ListCell/Chevron.d.ts.map +1 -0
  198. package/dist/ListCell/Chevron.js +22 -0
  199. package/dist/ListCell/ListCell.d.ts +3 -0
  200. package/dist/ListCell/ListCell.d.ts.map +1 -0
  201. package/dist/ListCell/ListCell.js +120 -0
  202. package/dist/ListCell/PickerModal.d.ts +13 -0
  203. package/dist/ListCell/PickerModal.d.ts.map +1 -0
  204. package/dist/ListCell/PickerModal.js +8 -0
  205. package/dist/ListCell/RadioButton.d.ts +10 -0
  206. package/dist/ListCell/RadioButton.d.ts.map +1 -0
  207. package/dist/ListCell/RadioButton.js +12 -0
  208. package/dist/ListCell/SwitchTrack.d.ts +19 -0
  209. package/dist/ListCell/SwitchTrack.d.ts.map +1 -0
  210. package/dist/ListCell/SwitchTrack.js +8 -0
  211. package/dist/ListCell/constants.d.ts +30 -0
  212. package/dist/ListCell/constants.d.ts.map +1 -0
  213. package/dist/ListCell/constants.js +35 -0
  214. package/dist/ListCell/index.d.ts +3 -0
  215. package/dist/ListCell/index.d.ts.map +1 -0
  216. package/dist/ListCell/index.js +1 -0
  217. package/dist/ListCell/styles.d.ts +28 -0
  218. package/dist/ListCell/styles.d.ts.map +1 -0
  219. package/dist/ListCell/styles.js +111 -0
  220. package/dist/ListCell/types.d.ts +68 -0
  221. package/dist/ListCell/types.d.ts.map +1 -0
  222. package/dist/ListCell/types.js +1 -0
  223. package/dist/ListCell/useSwitchAnimation.d.ts +12 -0
  224. package/dist/ListCell/useSwitchAnimation.d.ts.map +1 -0
  225. package/dist/ListCell/useSwitchAnimation.js +31 -0
  226. package/dist/ListCell/utilities.d.ts +24 -0
  227. package/dist/ListCell/utilities.d.ts.map +1 -0
  228. package/dist/ListCell/utilities.js +29 -0
  229. package/dist/Picker/Picker.d.ts +3 -0
  230. package/dist/Picker/Picker.d.ts.map +1 -0
  231. package/dist/Picker/Picker.js +76 -0
  232. package/dist/Picker/PickerHeader.d.ts +7 -0
  233. package/dist/Picker/PickerHeader.d.ts.map +1 -0
  234. package/dist/Picker/PickerHeader.js +6 -0
  235. package/dist/Picker/PickerRow.d.ts +9 -0
  236. package/dist/Picker/PickerRow.d.ts.map +1 -0
  237. package/dist/Picker/PickerRow.js +9 -0
  238. package/dist/Picker/SearchField.d.ts +8 -0
  239. package/dist/Picker/SearchField.d.ts.map +1 -0
  240. package/dist/Picker/SearchField.js +8 -0
  241. package/dist/Picker/constants.d.ts +24 -0
  242. package/dist/Picker/constants.d.ts.map +1 -0
  243. package/dist/Picker/constants.js +29 -0
  244. package/dist/Picker/icons.d.ts +3 -0
  245. package/dist/Picker/icons.d.ts.map +1 -0
  246. package/dist/Picker/icons.js +9 -0
  247. package/dist/Picker/index.d.ts +3 -0
  248. package/dist/Picker/index.d.ts.map +1 -0
  249. package/dist/Picker/index.js +1 -0
  250. package/dist/Picker/styles.d.ts +34 -0
  251. package/dist/Picker/styles.d.ts.map +1 -0
  252. package/dist/Picker/styles.js +192 -0
  253. package/dist/Picker/types.d.ts +40 -0
  254. package/dist/Picker/types.d.ts.map +1 -0
  255. package/dist/Picker/types.js +1 -0
  256. package/dist/Picker/useFilteredItems.d.ts +3 -0
  257. package/dist/Picker/useFilteredItems.d.ts.map +1 -0
  258. package/dist/Picker/useFilteredItems.js +18 -0
  259. package/dist/SegmentedTabs/SegmentedTabs.d.ts +3 -0
  260. package/dist/SegmentedTabs/SegmentedTabs.d.ts.map +1 -0
  261. package/dist/SegmentedTabs/SegmentedTabs.js +70 -0
  262. package/dist/SegmentedTabs/index.d.ts +3 -0
  263. package/dist/SegmentedTabs/index.d.ts.map +1 -0
  264. package/dist/SegmentedTabs/index.js +1 -0
  265. package/dist/SegmentedTabs/types.d.ts +10 -0
  266. package/dist/SegmentedTabs/types.d.ts.map +1 -0
  267. package/dist/SegmentedTabs/types.js +1 -0
  268. package/dist/Select/Select.d.ts +3 -0
  269. package/dist/Select/Select.d.ts.map +1 -0
  270. package/dist/Select/Select.js +60 -0
  271. package/dist/Select/index.d.ts +3 -0
  272. package/dist/Select/index.d.ts.map +1 -0
  273. package/dist/Select/index.js +1 -0
  274. package/dist/Select/styles.d.ts +8 -0
  275. package/dist/Select/styles.d.ts.map +1 -0
  276. package/dist/Select/styles.js +36 -0
  277. package/dist/Select/types.d.ts +37 -0
  278. package/dist/Select/types.d.ts.map +1 -0
  279. package/dist/Select/types.js +1 -0
  280. package/dist/Tabs/FloatingTabBar.d.ts +9 -0
  281. package/dist/Tabs/FloatingTabBar.d.ts.map +1 -0
  282. package/dist/Tabs/FloatingTabBar.js +55 -0
  283. package/dist/Tabs/Tabs.d.ts +21 -0
  284. package/dist/Tabs/Tabs.d.ts.map +1 -0
  285. package/dist/Tabs/Tabs.js +29 -0
  286. package/dist/Tabs/constants.d.ts +35 -0
  287. package/dist/Tabs/constants.d.ts.map +1 -0
  288. package/dist/Tabs/constants.js +36 -0
  289. package/dist/Tabs/icons.d.ts +16 -0
  290. package/dist/Tabs/icons.d.ts.map +1 -0
  291. package/dist/Tabs/icons.js +8 -0
  292. package/dist/Tabs/index.d.ts +6 -0
  293. package/dist/Tabs/index.d.ts.map +1 -0
  294. package/dist/Tabs/index.js +4 -0
  295. package/dist/Tabs/styles.d.ts +224 -0
  296. package/dist/Tabs/styles.d.ts.map +1 -0
  297. package/dist/Tabs/styles.js +121 -0
  298. package/dist/Tabs/types.d.ts +61 -0
  299. package/dist/Tabs/types.d.ts.map +1 -0
  300. package/dist/Tabs/types.js +4 -0
  301. package/dist/Tabs/useFloatingTabBarScrollPadding.d.ts +7 -0
  302. package/dist/Tabs/useFloatingTabBarScrollPadding.d.ts.map +1 -0
  303. package/dist/Tabs/useFloatingTabBarScrollPadding.js +11 -0
  304. package/dist/Tabs/utilities.d.ts +7 -0
  305. package/dist/Tabs/utilities.d.ts.map +1 -0
  306. package/dist/Tabs/utilities.js +18 -0
  307. package/dist/ToggleSection/ToggleSection.d.ts +3 -0
  308. package/dist/ToggleSection/ToggleSection.d.ts.map +1 -0
  309. package/dist/ToggleSection/ToggleSection.js +18 -0
  310. package/dist/ToggleSection/index.d.ts +3 -0
  311. package/dist/ToggleSection/index.d.ts.map +1 -0
  312. package/dist/ToggleSection/index.js +1 -0
  313. package/dist/ToggleSection/styles.d.ts +15 -0
  314. package/dist/ToggleSection/styles.d.ts.map +1 -0
  315. package/dist/ToggleSection/styles.js +49 -0
  316. package/dist/ToggleSection/types.d.ts +36 -0
  317. package/dist/ToggleSection/types.d.ts.map +1 -0
  318. package/dist/ToggleSection/types.js +1 -0
  319. package/dist/assets/fonts/.map.json +51 -0
  320. package/dist/assets/fonts/SB Sans Text.ttf +0 -0
  321. package/dist/assets/fonts/sf-pro-display/.map.json +114 -0
  322. package/dist/assets/fonts/sf-pro-display/SFPRODISPLAYBLACKITALIC.OTF +0 -0
  323. package/dist/assets/fonts/sf-pro-display/SFPRODISPLAYBOLD.OTF +0 -0
  324. package/dist/assets/fonts/sf-pro-display/SFPRODISPLAYHEAVYITALIC.OTF +0 -0
  325. package/dist/assets/fonts/sf-pro-display/SFPRODISPLAYLIGHTITALIC.OTF +0 -0
  326. package/dist/assets/fonts/sf-pro-display/SFPRODISPLAYMEDIUM.OTF +0 -0
  327. package/dist/assets/fonts/sf-pro-display/SFPRODISPLAYREGULAR.otf +0 -0
  328. package/dist/assets/fonts/sf-pro-display/SFPRODISPLAYSEMIBOLDITALIC.OTF +0 -0
  329. package/dist/assets/fonts/sf-pro-display/SFPRODISPLAYTHINITALIC.OTF +0 -0
  330. package/dist/assets/fonts/sf-pro-display/SFPRODISPLAYULTRALIGHTITALIC.OTF +0 -0
  331. package/dist/fonts.d.ts +6 -0
  332. package/dist/fonts.d.ts.map +1 -0
  333. package/dist/fonts.js +8 -0
  334. package/dist/index.d.ts +38 -0
  335. package/dist/index.d.ts.map +1 -0
  336. package/dist/index.js +20 -0
  337. package/dist/theme.d.ts +19 -0
  338. package/dist/theme.d.ts.map +1 -0
  339. package/dist/theme.js +18 -0
  340. package/package.json +76 -0
@@ -0,0 +1,15 @@
1
+ import type { DatePickerMode, DateRangeValue } from './types';
2
+ export interface CalendarModalProps {
3
+ visible: boolean;
4
+ mode: DatePickerMode;
5
+ initialSingle?: string;
6
+ initialRange: DateRangeValue;
7
+ initialYear: number;
8
+ initialMonth: number;
9
+ minDate: Date | null;
10
+ maxDate: Date | null;
11
+ onSave: (single: string | undefined, range: DateRangeValue) => void;
12
+ onClose: () => void;
13
+ }
14
+ export declare function CalendarModal({ visible, mode, initialSingle, initialRange, initialYear, initialMonth, minDate, maxDate, onSave, onClose, }: CalendarModalProps): import("react/jsx-runtime").JSX.Element;
15
+ //# sourceMappingURL=CalendarModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarModal.d.ts","sourceRoot":"","sources":["../../src/DatePicker/CalendarModal.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAa9D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,cAAc,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,cAAc,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IACpE,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAID,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,OAAO,EACP,OAAO,EACP,MAAM,EACN,OAAO,GACR,EAAE,kBAAkB,2CAyOpB"}
@@ -0,0 +1,129 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useMemo, useState } from 'react';
3
+ import { Modal } from 'react-native';
4
+ import { DAY_LABELS, MONTH_NAMES } from './constants';
5
+ import { DayCell, EmptyDayCell } from './DayCell';
6
+ import { ChevronLeft, ChevronRight } from './icons';
7
+ import { CalendarBody, CalendarHeaderRow, DayLabelCell, DayLabelText, DayLabelsRow, Grabber, ModalContainer, ModalOverlay, MonthTitle, NavButton, SaveButton, SaveButtonText, WeekRow, } from './styles';
8
+ import { buildWeeks, isBefore, isBetween, isSameDay, parseLocalDate, toISOLocal, } from './utils';
9
+ /* ── Component ───────────────────────────────────────────────────── */
10
+ export function CalendarModal({ visible, mode, initialSingle, initialRange, initialYear, initialMonth, minDate, maxDate, onSave, onClose, }) {
11
+ const today = useMemo(() => new Date(), []);
12
+ const [viewYear, setViewYear] = useState(initialYear);
13
+ const [viewMonth, setViewMonth] = useState(initialMonth);
14
+ const [pendingSingle, setPendingSingle] = useState(initialSingle);
15
+ const [pendingRange, setPendingRange] = useState(initialRange);
16
+ /* Reset internal state whenever the modal opens with new props */
17
+ const prevVisibleRef = useMemo(() => ({ current: false }), []);
18
+ if (visible && !prevVisibleRef.current) {
19
+ // Sync to latest props on each open
20
+ if (viewYear !== initialYear)
21
+ setViewYear(initialYear);
22
+ if (viewMonth !== initialMonth)
23
+ setViewMonth(initialMonth);
24
+ setPendingSingle(initialSingle);
25
+ setPendingRange(initialRange);
26
+ }
27
+ prevVisibleRef.current = visible;
28
+ const weeks = useMemo(() => buildWeeks(viewYear, viewMonth), [viewYear, viewMonth]);
29
+ const selectedSingleDate = useMemo(() => (pendingSingle ? parseLocalDate(pendingSingle) : null), [pendingSingle]);
30
+ const rangeStartDate = useMemo(() => (pendingRange.startDate ? parseLocalDate(pendingRange.startDate) : null), [pendingRange.startDate]);
31
+ const rangeEndDate = useMemo(() => (pendingRange.endDate ? parseLocalDate(pendingRange.endDate) : null), [pendingRange.endDate]);
32
+ /* ── Navigation ─────────────────────────────────────────────────── */
33
+ const goToPrevMonth = useCallback(() => {
34
+ setViewMonth((m) => {
35
+ if (m === 0) {
36
+ setViewYear((y) => y - 1);
37
+ return 11;
38
+ }
39
+ return m - 1;
40
+ });
41
+ }, []);
42
+ const goToNextMonth = useCallback(() => {
43
+ setViewMonth((m) => {
44
+ if (m === 11) {
45
+ setViewYear((y) => y + 1);
46
+ return 0;
47
+ }
48
+ return m + 1;
49
+ });
50
+ }, []);
51
+ /* ── Day press ──────────────────────────────────────────────────── */
52
+ const handleDayPress = useCallback((date) => {
53
+ if (mode === 'single') {
54
+ setPendingSingle(toISOLocal(date));
55
+ return;
56
+ }
57
+ setPendingRange((prev) => {
58
+ const hasCompleteRange = prev.startDate && prev.endDate;
59
+ if (hasCompleteRange || !prev.startDate) {
60
+ return { startDate: toISOLocal(date), endDate: undefined };
61
+ }
62
+ const start = parseLocalDate(prev.startDate);
63
+ if (isBefore(date, start)) {
64
+ return { startDate: toISOLocal(date), endDate: undefined };
65
+ }
66
+ return { startDate: prev.startDate, endDate: toISOLocal(date) };
67
+ });
68
+ }, [mode]);
69
+ /* ── Save ───────────────────────────────────────────────────────── */
70
+ const handleSave = useCallback(() => {
71
+ onSave(pendingSingle, {
72
+ startDate: pendingRange.startDate,
73
+ endDate: pendingRange.endDate,
74
+ });
75
+ }, [pendingSingle, pendingRange, onSave]);
76
+ /* ── Day disabled check ─────────────────────────────────────────── */
77
+ const isDayDisabled = useCallback((date) => {
78
+ if (minDate && isBefore(date, minDate))
79
+ return true;
80
+ if (maxDate && date > maxDate && !isSameDay(date, maxDate))
81
+ return true;
82
+ return false;
83
+ }, [minDate, maxDate]);
84
+ /* ── Calendar grid ──────────────────────────────────────────────── */
85
+ const calendarContent = useMemo(() => {
86
+ return weeks.map((week, wi) => (_jsx(WeekRow, { children: week.map((cell, ci) => {
87
+ if (!cell)
88
+ return _jsx(EmptyDayCell, {}, `e${ci}`);
89
+ const { day, date } = cell;
90
+ const dayDisabled = isDayDisabled(date);
91
+ const isToday = isSameDay(date, today);
92
+ let isSelected = false;
93
+ let isRangeStart = false;
94
+ let isRangeEnd = false;
95
+ let isInRange = false;
96
+ if (mode === 'single') {
97
+ isSelected =
98
+ selectedSingleDate != null && isSameDay(date, selectedSingleDate);
99
+ }
100
+ else {
101
+ if (rangeStartDate && isSameDay(date, rangeStartDate)) {
102
+ isSelected = true;
103
+ isRangeStart = true;
104
+ }
105
+ if (rangeEndDate && isSameDay(date, rangeEndDate)) {
106
+ isSelected = true;
107
+ isRangeEnd = true;
108
+ }
109
+ if (rangeStartDate && rangeEndDate) {
110
+ isInRange = isBetween(date, rangeStartDate, rangeEndDate);
111
+ }
112
+ }
113
+ return (_jsx(DayCell, { day: day, date: date, isSelected: isSelected, isRangeStart: isRangeStart, isRangeEnd: isRangeEnd, isInRange: isInRange, isToday: isToday, isDisabled: dayDisabled, onPress: handleDayPress }, day));
114
+ }) }, wi)));
115
+ }, [
116
+ weeks,
117
+ mode,
118
+ selectedSingleDate,
119
+ rangeStartDate,
120
+ rangeEndDate,
121
+ today,
122
+ isDayDisabled,
123
+ handleDayPress,
124
+ ]);
125
+ const canSave = mode === 'single'
126
+ ? pendingSingle != null
127
+ : pendingRange.startDate != null && pendingRange.endDate != null;
128
+ return (_jsx(Modal, { visible: visible, animationType: "fade", transparent: true, onRequestClose: onClose, children: _jsx(ModalOverlay, { onPress: onClose, children: _jsxs(ModalContainer, { onStartShouldSetResponder: () => true, onTouchEnd: (e) => e.stopPropagation(), children: [_jsx(Grabber, {}), _jsxs(CalendarHeaderRow, { children: [_jsx(NavButton, { onPress: goToPrevMonth, accessibilityLabel: "Previous month", accessibilityRole: "button", children: _jsx(ChevronLeft, {}) }), _jsxs(MonthTitle, { children: [MONTH_NAMES[viewMonth], " ", viewYear] }), _jsx(NavButton, { onPress: goToNextMonth, accessibilityLabel: "Next month", accessibilityRole: "button", children: _jsx(ChevronRight, {}) })] }), _jsx(DayLabelsRow, { children: DAY_LABELS.map((label) => (_jsx(DayLabelCell, { children: _jsx(DayLabelText, { children: label }) }, label))) }), _jsx(CalendarBody, { children: calendarContent }), _jsx(SaveButton, { onPress: handleSave, disabled: !canSave, accessibilityLabel: "Save date", accessibilityRole: "button", testID: "datepicker-save-button", style: { opacity: canSave ? 1 : 0.4 }, children: _jsx(SaveButtonText, { children: "Save" }) })] }) }) }));
129
+ }
@@ -0,0 +1,3 @@
1
+ import type { DatePickerProps } from './types';
2
+ export declare function DatePicker({ mode, value, onChange, minDate: minDateStr, maxDate: maxDateStr, placeholder, required, helperText, errorText, disabled, containerStyle, inputWrapperStyle, testID, renderTrigger, }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=DatePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../src/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,SAAS,CAAC;AAG/D,wBAAgB,UAAU,CAAC,EACzB,IAAe,EACf,KAAK,EACL,QAAQ,EACR,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,UAAU,EACnB,WAAW,EACX,QAAgB,EAChB,UAAU,EACV,SAAS,EACT,QAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,MAAM,EACN,aAAa,GACd,EAAE,eAAe,2CAgHjB"}
@@ -0,0 +1,57 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useMemo, useState } from 'react';
3
+ import { Keyboard } from 'react-native';
4
+ import { Input } from '../Input/Input';
5
+ import { CalendarModal } from './CalendarModal';
6
+ import { CalendarIcon } from './icons';
7
+ import { Pressable } from './styles';
8
+ import { formatDisplayValue, parseLocalDate, sanitizeValue } from './utils';
9
+ export function DatePicker({ mode = 'single', value, onChange, minDate: minDateStr, maxDate: maxDateStr, placeholder, required = false, helperText, errorText, disabled = false, containerStyle, inputWrapperStyle, testID, renderTrigger, }) {
10
+ const [visible, setVisible] = useState(false);
11
+ const today = useMemo(() => new Date(), []);
12
+ const minDate = useMemo(() => (minDateStr ? parseLocalDate(minDateStr) : null), [minDateStr]);
13
+ const maxDate = useMemo(() => (maxDateStr ? parseLocalDate(maxDateStr) : null), [maxDateStr]);
14
+ const safeValue = useMemo(() => sanitizeValue(value, mode, minDate, maxDate), [value, mode, minDate, maxDate]);
15
+ const displayValue = useMemo(() => formatDisplayValue(safeValue, mode), [safeValue, mode]);
16
+ /* ── Derive what to pass into the modal ─────────────────────────── */
17
+ const initialSingle = mode === 'single' && typeof safeValue === 'string' ? safeValue : undefined;
18
+ const initialRange = mode === 'range' && safeValue && typeof safeValue === 'object'
19
+ ? safeValue
20
+ : {};
21
+ const resolveInitialDate = useCallback(() => {
22
+ if (mode === 'single' && typeof safeValue === 'string' && safeValue) {
23
+ const d = parseLocalDate(safeValue);
24
+ if (d)
25
+ return { year: d.getFullYear(), month: d.getMonth() };
26
+ }
27
+ if (mode === 'range' && safeValue && typeof safeValue === 'object') {
28
+ const rv = safeValue;
29
+ if (rv.startDate) {
30
+ const d = parseLocalDate(rv.startDate);
31
+ if (d)
32
+ return { year: d.getFullYear(), month: d.getMonth() };
33
+ }
34
+ }
35
+ return { year: today.getFullYear(), month: today.getMonth() };
36
+ }, [safeValue, mode, today]);
37
+ /* ── Handlers ───────────────────────────────────────────────────── */
38
+ const open = useCallback(() => {
39
+ if (disabled)
40
+ return;
41
+ Keyboard.dismiss();
42
+ setVisible(true);
43
+ }, [disabled]);
44
+ const close = useCallback(() => setVisible(false), []);
45
+ const handleSave = useCallback((single, range) => {
46
+ if (mode === 'single') {
47
+ if (single)
48
+ onChange?.(single);
49
+ }
50
+ else {
51
+ onChange?.({ startDate: range.startDate, endDate: range.endDate });
52
+ }
53
+ setVisible(false);
54
+ }, [mode, onChange]);
55
+ const { year: initYear, month: initMonth } = resolveInitialDate();
56
+ return (_jsxs(_Fragment, { children: [renderTrigger ? renderTrigger(displayValue, open) : (_jsx(Pressable, { onPress: open, disabled: disabled, accessibilityRole: "button", accessibilityState: { disabled }, testID: testID, children: _jsx(Input, { value: displayValue, placeholder: placeholder, required: required, helperText: helperText, errorText: errorText, editable: false, disabled: disabled, rightIcon: _jsx(CalendarIcon, {}), containerStyle: containerStyle, inputWrapperStyle: inputWrapperStyle, pointerEvents: "none" }) })), _jsx(CalendarModal, { visible: visible, mode: mode, initialSingle: initialSingle, initialRange: initialRange, initialYear: initYear, initialMonth: initMonth, minDate: minDate, maxDate: maxDate, onSave: handleSave, onClose: close })] }));
57
+ }
@@ -0,0 +1,14 @@
1
+ export interface DayCellProps {
2
+ day: number;
3
+ date: Date;
4
+ isSelected: boolean;
5
+ isRangeStart: boolean;
6
+ isRangeEnd: boolean;
7
+ isInRange: boolean;
8
+ isToday: boolean;
9
+ isDisabled: boolean;
10
+ onPress: (date: Date) => void;
11
+ }
12
+ export declare function DayCell({ day, date, isSelected, isRangeStart, isRangeEnd, isInRange, isToday, isDisabled, onPress, }: DayCellProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function EmptyDayCell(): import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=DayCell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DayCell.d.ts","sourceRoot":"","sources":["../../src/DatePicker/DayCell.tsx"],"names":[],"mappings":"AAUA,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CAC/B;AAED,wBAAgB,OAAO,CAAC,EACtB,GAAG,EACH,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,UAAU,EACV,SAAS,EACT,OAAO,EACP,UAAU,EACV,OAAO,GACR,EAAE,YAAY,2CA6Bd;AAED,wBAAgB,YAAY,4CAM3B"}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback } from 'react';
3
+ import { View } from 'react-native';
4
+ import { CALENDAR } from './constants';
5
+ import { DayRangeFill, DayCellInner, DayCellOuter, DayText, } from './styles';
6
+ export function DayCell({ day, date, isSelected, isRangeStart, isRangeEnd, isInRange, isToday, isDisabled, onPress, }) {
7
+ const handlePress = useCallback(() => {
8
+ if (!isDisabled)
9
+ onPress(date);
10
+ }, [date, isDisabled, onPress]);
11
+ const hasRangeFill = isInRange && !(isRangeStart && isRangeEnd);
12
+ return (_jsxs(DayCellOuter, { children: [hasRangeFill ? (_jsx(DayRangeFill, { "$isRangeStart": isRangeStart, "$isRangeEnd": isRangeEnd })) : null, _jsx(DayCellInner, { onPress: handlePress, disabled: isDisabled, "$isSelected": isSelected, "$isToday": isToday, "$isDisabled": isDisabled, accessibilityRole: "button", accessibilityLabel: `${day}`, accessibilityState: { disabled: isDisabled, selected: isSelected }, children: _jsx(DayText, { "$isSelected": isSelected, "$isDisabled": isDisabled, children: day }) })] }));
13
+ }
14
+ export function EmptyDayCell() {
15
+ return (_jsx(DayCellOuter, { children: _jsx(View, { style: { width: CALENDAR.cellSize, height: CALENDAR.cellSize } }) }));
16
+ }
@@ -0,0 +1,46 @@
1
+ export declare const CALENDAR: {
2
+ readonly cellSize: 40;
3
+ readonly cellGap: 2;
4
+ readonly headerHeight: 44;
5
+ readonly dayLabelHeight: 32;
6
+ readonly padding: 16;
7
+ readonly borderRadius: 12;
8
+ readonly colors: {
9
+ readonly primary: "#2C2C2C";
10
+ readonly secondary: "#738295";
11
+ readonly disabled: "#C7C7CC";
12
+ readonly accent: "#2C2C2C";
13
+ readonly accentText: "#FFFFFF";
14
+ readonly rangeBackground: "rgba(44, 44, 44, 0.08)";
15
+ readonly todayBorder: "#2C2C2C";
16
+ readonly background: "#FFFFFF";
17
+ readonly modalBackground: "#EFF4F7";
18
+ readonly chevron: "#2C2C2C";
19
+ readonly saveButton: "#2C2C2C";
20
+ readonly saveButtonText: "#FFFFFF";
21
+ };
22
+ readonly typography: {
23
+ readonly monthTitle: {
24
+ readonly fontFamily: "SB Sans Text";
25
+ readonly fontSize: 16;
26
+ readonly fontWeight: "600";
27
+ readonly lineHeight: 20;
28
+ };
29
+ readonly dayLabel: {
30
+ readonly fontFamily: "SB Sans Text";
31
+ readonly fontSize: 13;
32
+ readonly fontWeight: "500";
33
+ readonly lineHeight: 18;
34
+ };
35
+ readonly day: {
36
+ readonly fontFamily: "SB Sans Text";
37
+ readonly fontSize: 16;
38
+ readonly fontWeight: "500";
39
+ readonly lineHeight: 20;
40
+ };
41
+ };
42
+ };
43
+ export declare const MONTH_NAMES: readonly ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
44
+ export declare const SHORT_MONTH_NAMES: readonly ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
45
+ export declare const DAY_LABELS: readonly ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
46
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/DatePicker/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CX,CAAC;AAEX,eAAO,MAAM,WAAW,qIAGd,CAAC;AAEX,eAAO,MAAM,iBAAiB,+FAGpB,CAAC;AAEX,eAAO,MAAM,UAAU,4DAA6D,CAAC"}
@@ -0,0 +1,51 @@
1
+ export const CALENDAR = {
2
+ cellSize: 40,
3
+ cellGap: 2,
4
+ headerHeight: 44,
5
+ dayLabelHeight: 32,
6
+ padding: 16,
7
+ borderRadius: 12,
8
+ colors: {
9
+ primary: '#2C2C2C',
10
+ secondary: '#738295',
11
+ disabled: '#C7C7CC',
12
+ accent: '#2C2C2C',
13
+ accentText: '#FFFFFF',
14
+ rangeBackground: 'rgba(44, 44, 44, 0.08)',
15
+ todayBorder: '#2C2C2C',
16
+ background: '#FFFFFF',
17
+ modalBackground: '#EFF4F7',
18
+ chevron: '#2C2C2C',
19
+ saveButton: '#2C2C2C',
20
+ saveButtonText: '#FFFFFF',
21
+ },
22
+ typography: {
23
+ monthTitle: {
24
+ fontFamily: 'SB Sans Text',
25
+ fontSize: 16,
26
+ fontWeight: '600',
27
+ lineHeight: 20,
28
+ },
29
+ dayLabel: {
30
+ fontFamily: 'SB Sans Text',
31
+ fontSize: 13,
32
+ fontWeight: '500',
33
+ lineHeight: 18,
34
+ },
35
+ day: {
36
+ fontFamily: 'SB Sans Text',
37
+ fontSize: 16,
38
+ fontWeight: '500',
39
+ lineHeight: 20,
40
+ },
41
+ },
42
+ };
43
+ export const MONTH_NAMES = [
44
+ 'January', 'February', 'March', 'April', 'May', 'June',
45
+ 'July', 'August', 'September', 'October', 'November', 'December',
46
+ ];
47
+ export const SHORT_MONTH_NAMES = [
48
+ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
49
+ 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',
50
+ ];
51
+ export const DAY_LABELS = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
@@ -0,0 +1,4 @@
1
+ export declare function CalendarIcon(): import("react/jsx-runtime").JSX.Element;
2
+ export declare function ChevronLeft(): import("react/jsx-runtime").JSX.Element;
3
+ export declare function ChevronRight(): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/DatePicker/icons.tsx"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,4CAE3B;AAED,wBAAgB,WAAW,4CAI1B;AAED,wBAAgB,YAAY,4CAI3B"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { CALENDAR } from './constants';
3
+ import { Icon } from '../Icon';
4
+ export function CalendarIcon() {
5
+ return _jsx(Icon, { name: "calendar" });
6
+ }
7
+ export function ChevronLeft() {
8
+ return (_jsx(Icon, { name: "chevron-left", color: CALENDAR.colors.chevron }));
9
+ }
10
+ export function ChevronRight() {
11
+ return (_jsx(Icon, { name: "chevron-right", color: CALENDAR.colors.chevron }));
12
+ }
@@ -0,0 +1,3 @@
1
+ export { DatePicker } from './DatePicker';
2
+ export type { DatePickerProps, DatePickerMode, DatePickerValue, DateRangeValue } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/DatePicker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1 @@
1
+ export { DatePicker } from './DatePicker';
@@ -0,0 +1,40 @@
1
+ /// <reference types="react" />
2
+ export declare const Pressable: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").FastOmit<Omit<import("react-native").PressableProps & import("react").RefAttributes<import("react-native").View>, "ref"> & {
3
+ ref?: ((instance: import("react-native").View | null) => void) | import("react").RefObject<import("react-native").View> | null | undefined;
4
+ }, never>>;
5
+ export declare const ModalOverlay: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").FastOmit<Omit<import("react-native").PressableProps & import("react").RefAttributes<import("react-native").View>, "ref"> & {
6
+ ref?: ((instance: import("react-native").View | null) => void) | import("react").RefObject<import("react-native").View> | null | undefined;
7
+ }, never>>;
8
+ export declare const ModalContainer: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").FastOmit<import("react-native").ViewProps, never>>;
9
+ export declare const Grabber: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").FastOmit<import("react-native").ViewProps, never>>;
10
+ export declare const CalendarHeaderRow: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").FastOmit<import("react-native").ViewProps, never>>;
11
+ export declare const MonthTitle: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").FastOmit<import("react-native").TextProps, never>>;
12
+ export declare const NavButton: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").FastOmit<Omit<import("react-native").PressableProps & import("react").RefAttributes<import("react-native").View>, "ref"> & {
13
+ ref?: ((instance: import("react-native").View | null) => void) | import("react").RefObject<import("react-native").View> | null | undefined;
14
+ }, never>>;
15
+ export declare const DayLabelsRow: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").FastOmit<import("react-native").ViewProps, never>>;
16
+ export declare const DayLabelCell: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").FastOmit<import("react-native").ViewProps, never>>;
17
+ export declare const DayLabelText: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").FastOmit<import("react-native").TextProps, never>>;
18
+ export declare const WeekRow: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").FastOmit<import("react-native").ViewProps, never>>;
19
+ export declare const DayCellOuter: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").FastOmit<import("react-native").ViewProps, never>>;
20
+ export declare const DayRangeFill: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").Substitute<import("styled-components/native/dist/types").FastOmit<import("styled-components/native/dist/types").Substitute<import("react-native").ViewProps, import("react-native").ViewProps & import("react").RefAttributes<import("react-native").View>>, never>, {
21
+ $isRangeStart: boolean;
22
+ $isRangeEnd: boolean;
23
+ }>>;
24
+ export declare const DayCellInner: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").Substitute<Omit<import("react-native").PressableProps & import("react").RefAttributes<import("react-native").View>, "ref"> & {
25
+ ref?: ((instance: import("react-native").View | null) => void) | import("react").RefObject<import("react-native").View> | null | undefined;
26
+ }, {
27
+ $isSelected: boolean;
28
+ $isToday: boolean;
29
+ $isDisabled: boolean;
30
+ }>>;
31
+ export declare const DayText: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").Substitute<import("react-native").TextProps, {
32
+ $isSelected: boolean;
33
+ $isDisabled: boolean;
34
+ }>>;
35
+ export declare const SaveButton: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").FastOmit<Omit<import("react-native").PressableProps & import("react").RefAttributes<import("react-native").View>, "ref"> & {
36
+ ref?: ((instance: import("react-native").View | null) => void) | import("react").RefObject<import("react-native").View> | null | undefined;
37
+ }, never>>;
38
+ export declare const SaveButtonText: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").FastOmit<import("react-native").TextProps, never>>;
39
+ export declare const CalendarBody: import("styled-components/native/dist/types").IStyledComponentBase<"native", import("styled-components/native/dist/types").FastOmit<import("react-native").ViewProps, never>>;
40
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/DatePicker/styles.ts"],"names":[],"mappings":";AAOA,eAAO,MAAM,SAAS;;UAErB,CAAC;AAIF,eAAO,MAAM,YAAY;;UAIxB,CAAC;AAEF,eAAO,MAAM,cAAc,+KAK1B,CAAC;AAEF,eAAO,MAAM,OAAO,+KAQnB,CAAC;AAIF,eAAO,MAAM,iBAAiB,+KAM7B,CAAC;AAEF,eAAO,MAAM,UAAU,+KAQtB,CAAC;AAEF,eAAO,MAAM,SAAS;;UAKrB,CAAC;AAIF,eAAO,MAAM,YAAY,+KAIxB,CAAC;AAEF,eAAO,MAAM,YAAY,+KAMxB,CAAC;AAEF,eAAO,MAAM,YAAY,+KAMxB,CAAC;AAIF,eAAO,MAAM,OAAO,+KAGnB,CAAC;AAEF,eAAO,MAAM,YAAY,+KAOxB,CAAC;AAEF,eAAO,MAAM,YAAY;mBAGR,OAAO;iBACT,OAAO;GAQrB,CAAC;AAEF,eAAO,MAAM,YAAY;;;iBACV,OAAO;cACV,OAAO;iBACJ,OAAO;GAarB,CAAC;AAEF,eAAO,MAAM,OAAO;iBACL,OAAO;iBACP,OAAO;GAQrB,CAAC;AAIF,eAAO,MAAM,UAAU;;UAQtB,CAAC;AAEF,eAAO,MAAM,cAAc,+KAM1B,CAAC;AAIF,eAAO,MAAM,YAAY,+KAGxB,CAAC"}
@@ -0,0 +1,134 @@
1
+ import { Pressable as RNPressable } from 'react-native';
2
+ import styled from 'styled-components/native';
3
+ import { CALENDAR } from './constants';
4
+ /* ── Trigger ─────────────────────────────────────────────────────── */
5
+ export const Pressable = styled(RNPressable) `
6
+ width: 100%;
7
+ `;
8
+ /* ── Modal ────────────────────────────────────────────────────────── */
9
+ export const ModalOverlay = styled(RNPressable) `
10
+ flex: 1;
11
+ justify-content: flex-end;
12
+ background-color: rgba(0, 0, 0, 0.4);
13
+ `;
14
+ export const ModalContainer = styled.View `
15
+ background-color: ${CALENDAR.colors.background};
16
+ border-top-left-radius: 20px;
17
+ border-top-right-radius: 20px;
18
+ padding-bottom: 16px;
19
+ `;
20
+ export const Grabber = styled.View `
21
+ width: 36px;
22
+ height: 5px;
23
+ border-radius: 100px;
24
+ background-color: #cccccc;
25
+ align-self: center;
26
+ margin-top: 8px;
27
+ margin-bottom: 4px;
28
+ `;
29
+ /* ── Calendar header (month title + nav) ─────────────────────────── */
30
+ export const CalendarHeaderRow = styled.View `
31
+ flex-direction: row;
32
+ align-items: center;
33
+ justify-content: space-between;
34
+ height: ${CALENDAR.headerHeight}px;
35
+ padding-horizontal: ${CALENDAR.padding}px;
36
+ `;
37
+ export const MonthTitle = styled.Text `
38
+ font-family: ${CALENDAR.typography.monthTitle.fontFamily};
39
+ font-size: ${CALENDAR.typography.monthTitle.fontSize}px;
40
+ font-weight: ${CALENDAR.typography.monthTitle.fontWeight};
41
+ line-height: ${CALENDAR.typography.monthTitle.lineHeight}px;
42
+ color: ${CALENDAR.colors.primary};
43
+ flex: 1;
44
+ text-align: center;
45
+ `;
46
+ export const NavButton = styled(RNPressable) `
47
+ width: ${CALENDAR.headerHeight}px;
48
+ height: ${CALENDAR.headerHeight}px;
49
+ align-items: center;
50
+ justify-content: center;
51
+ `;
52
+ /* ── Day-of-week labels ──────────────────────────────────────────── */
53
+ export const DayLabelsRow = styled.View `
54
+ flex-direction: row;
55
+ padding-horizontal: ${CALENDAR.padding}px;
56
+ margin-bottom: 4px;
57
+ `;
58
+ export const DayLabelCell = styled.View `
59
+ width: ${CALENDAR.cellSize}px;
60
+ height: ${CALENDAR.dayLabelHeight}px;
61
+ align-items: center;
62
+ justify-content: center;
63
+ flex: 1;
64
+ `;
65
+ export const DayLabelText = styled.Text `
66
+ font-family: ${CALENDAR.typography.dayLabel.fontFamily};
67
+ font-size: ${CALENDAR.typography.dayLabel.fontSize}px;
68
+ font-weight: ${CALENDAR.typography.dayLabel.fontWeight};
69
+ line-height: ${CALENDAR.typography.dayLabel.lineHeight}px;
70
+ color: ${CALENDAR.colors.secondary};
71
+ `;
72
+ /* ── Day grid ────────────────────────────────────────────────────── */
73
+ export const WeekRow = styled.View `
74
+ flex-direction: row;
75
+ padding-horizontal: ${CALENDAR.padding}px;
76
+ `;
77
+ export const DayCellOuter = styled.View `
78
+ position: relative;
79
+ flex: 1;
80
+ height: ${CALENDAR.cellSize}px;
81
+ align-items: center;
82
+ justify-content: center;
83
+ background-color: transparent;
84
+ `;
85
+ export const DayRangeFill = styled.View.attrs({
86
+ pointerEvents: 'none',
87
+ }) `
88
+ position: absolute;
89
+ top: 0;
90
+ bottom: 0;
91
+ left: ${({ $isRangeStart }) => ($isRangeStart ? '50%' : 0)};
92
+ right: ${({ $isRangeEnd }) => ($isRangeEnd ? '50%' : 0)};
93
+ background-color: ${CALENDAR.colors.rangeBackground};
94
+ `;
95
+ export const DayCellInner = styled(RNPressable) `
96
+ width: ${CALENDAR.cellSize}px;
97
+ height: ${CALENDAR.cellSize}px;
98
+ border-radius: ${CALENDAR.cellSize / 2}px;
99
+ align-items: center;
100
+ justify-content: center;
101
+ background-color: ${({ $isSelected }) => $isSelected ? CALENDAR.colors.accent : 'transparent'};
102
+ border-width: ${({ $isToday, $isSelected }) => $isToday && !$isSelected ? 1 : 0}px;
103
+ border-color: ${CALENDAR.colors.todayBorder};
104
+ opacity: ${({ $isDisabled }) => ($isDisabled ? 0.3 : 1)};
105
+ `;
106
+ export const DayText = styled.Text `
107
+ font-family: ${CALENDAR.typography.day.fontFamily};
108
+ font-size: ${CALENDAR.typography.day.fontSize}px;
109
+ font-weight: ${CALENDAR.typography.day.fontWeight};
110
+ line-height: ${CALENDAR.typography.day.lineHeight}px;
111
+ color: ${({ $isSelected }) => $isSelected ? CALENDAR.colors.accentText : CALENDAR.colors.primary};
112
+ `;
113
+ /* ── Save button ─────────────────────────────────────────────────── */
114
+ export const SaveButton = styled(RNPressable) `
115
+ height: 50px;
116
+ border-radius: ${CALENDAR.borderRadius}px;
117
+ background-color: ${CALENDAR.colors.saveButton};
118
+ align-items: center;
119
+ justify-content: center;
120
+ margin-horizontal: ${CALENDAR.padding}px;
121
+ margin-bottom: ${CALENDAR.padding}px;
122
+ `;
123
+ export const SaveButtonText = styled.Text `
124
+ font-size: 17px;
125
+ font-weight: 600;
126
+ line-height: 22px;
127
+ letter-spacing: -0.43px;
128
+ color: ${CALENDAR.colors.saveButtonText};
129
+ `;
130
+ /* ── Calendar content wrapper ─────────────────────────────────────── */
131
+ export const CalendarBody = styled.View `
132
+ padding-top: 8px;
133
+ padding-bottom: 16px;
134
+ `;
@@ -0,0 +1,39 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { StyleProp, ViewStyle } from 'react-native';
3
+ export type DatePickerMode = 'single' | 'range';
4
+ export interface DateRangeValue {
5
+ startDate?: string;
6
+ endDate?: string;
7
+ }
8
+ export type DatePickerValue = string | DateRangeValue;
9
+ export interface DatePickerProps {
10
+ /** Selection mode. @default 'single' */
11
+ mode?: DatePickerMode;
12
+ /** Selected value — ISO `YYYY-MM-DD` string for single, or `{ startDate, endDate }` for range. */
13
+ value?: DatePickerValue;
14
+ /** Called when selection changes. */
15
+ onChange?: (value: DatePickerValue) => void;
16
+ /** Earliest selectable date (inclusive), ISO `YYYY-MM-DD`. */
17
+ minDate?: string;
18
+ /** Latest selectable date (inclusive), ISO `YYYY-MM-DD`. */
19
+ maxDate?: string;
20
+ /** Floating placeholder text (e.g. "Date"). */
21
+ placeholder?: string;
22
+ /** Show red asterisk after placeholder. */
23
+ required?: boolean;
24
+ /** Helper text shown below the field. */
25
+ helperText?: string;
26
+ /** Error text — highlights border red. */
27
+ errorText?: string;
28
+ /** Disabled state — field is not pressable. */
29
+ disabled?: boolean;
30
+ /** Style for the outer container. */
31
+ containerStyle?: StyleProp<ViewStyle>;
32
+ /** Style for the input wrapper. */
33
+ inputWrapperStyle?: StyleProp<ViewStyle>;
34
+ /** Forwarded to the root pressable. */
35
+ testID?: string;
36
+ /** Custom trigger element. When provided, replaces the default input field. Receives the formatted display label and the open handler. */
37
+ renderTrigger?: (label: string, onPress: () => void) => ReactNode;
38
+ }
39
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/DatePicker/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,cAAc,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,kGAAkG;IAClG,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC5C,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,mCAAmC;IACnC,iBAAiB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0IAA0I;IAC1I,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC;CACnE"}
@@ -0,0 +1 @@
1
+ export {};