react-native-ruler-date-picker 0.1.0 → 0.2.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 (220) hide show
  1. package/README.md +186 -60
  2. package/lib/commonjs/LensTick.js +83 -0
  3. package/lib/commonjs/LensTick.js.map +1 -0
  4. package/lib/commonjs/Ruler.js +38 -0
  5. package/lib/commonjs/Ruler.js.map +1 -0
  6. package/lib/commonjs/RulerContext.js +17 -0
  7. package/lib/commonjs/RulerContext.js.map +1 -0
  8. package/lib/commonjs/RulerDatePicker.js +38 -351
  9. package/lib/commonjs/RulerDatePicker.js.map +1 -1
  10. package/lib/commonjs/RulerDateRangePicker.js +56 -0
  11. package/lib/commonjs/RulerDateRangePicker.js.map +1 -0
  12. package/lib/commonjs/RulerHeader.js +106 -0
  13. package/lib/commonjs/RulerHeader.js.map +1 -0
  14. package/lib/commonjs/RulerIndicator.js +67 -0
  15. package/lib/commonjs/RulerIndicator.js.map +1 -0
  16. package/lib/commonjs/RulerLensTicks.js +55 -0
  17. package/lib/commonjs/RulerLensTicks.js.map +1 -0
  18. package/lib/commonjs/RulerLensTrack.js +52 -0
  19. package/lib/commonjs/RulerLensTrack.js.map +1 -0
  20. package/lib/commonjs/RulerRange.js +39 -0
  21. package/lib/commonjs/RulerRange.js.map +1 -0
  22. package/lib/commonjs/RulerRangeContext.js +17 -0
  23. package/lib/commonjs/RulerRangeContext.js.map +1 -0
  24. package/lib/commonjs/RulerRangeHeader.js +154 -0
  25. package/lib/commonjs/RulerRangeHeader.js.map +1 -0
  26. package/lib/commonjs/RulerRangeHighlight.js +50 -0
  27. package/lib/commonjs/RulerRangeHighlight.js.map +1 -0
  28. package/lib/commonjs/RulerRangeIndicator.js +71 -0
  29. package/lib/commonjs/RulerRangeIndicator.js.map +1 -0
  30. package/lib/commonjs/RulerRangeRoot.js +80 -0
  31. package/lib/commonjs/RulerRangeRoot.js.map +1 -0
  32. package/lib/commonjs/RulerRangeTicks.js +57 -0
  33. package/lib/commonjs/RulerRangeTicks.js.map +1 -0
  34. package/lib/commonjs/RulerRangeTrack.js +46 -0
  35. package/lib/commonjs/RulerRangeTrack.js.map +1 -0
  36. package/lib/commonjs/RulerResetButton.js +46 -0
  37. package/lib/commonjs/RulerResetButton.js.map +1 -0
  38. package/lib/commonjs/RulerRoot.js +87 -0
  39. package/lib/commonjs/RulerRoot.js.map +1 -0
  40. package/lib/commonjs/RulerTicks.js +51 -0
  41. package/lib/commonjs/RulerTicks.js.map +1 -0
  42. package/lib/commonjs/RulerTrack.js +46 -0
  43. package/lib/commonjs/RulerTrack.js.map +1 -0
  44. package/lib/commonjs/Tick.js +41 -36
  45. package/lib/commonjs/Tick.js.map +1 -1
  46. package/lib/commonjs/defaults.js +20 -19
  47. package/lib/commonjs/defaults.js.map +1 -1
  48. package/lib/commonjs/index.js +287 -1
  49. package/lib/commonjs/index.js.map +1 -1
  50. package/lib/commonjs/presets.js +108 -0
  51. package/lib/commonjs/presets.js.map +1 -0
  52. package/lib/commonjs/tickResolver.js +101 -0
  53. package/lib/commonjs/tickResolver.js.map +1 -0
  54. package/lib/commonjs/useHaptics.js +1 -1
  55. package/lib/commonjs/useHaptics.web.js +43 -0
  56. package/lib/commonjs/useHaptics.web.js.map +1 -0
  57. package/lib/commonjs/useRulerDatePicker.js +264 -0
  58. package/lib/commonjs/useRulerDatePicker.js.map +1 -0
  59. package/lib/commonjs/useRulerDateRangePicker.js +313 -0
  60. package/lib/commonjs/useRulerDateRangePicker.js.map +1 -0
  61. package/lib/commonjs/utils.js +61 -47
  62. package/lib/commonjs/utils.js.map +1 -1
  63. package/lib/module/LensTick.js +77 -0
  64. package/lib/module/LensTick.js.map +1 -0
  65. package/lib/module/Ruler.js +35 -0
  66. package/lib/module/Ruler.js.map +1 -0
  67. package/lib/module/RulerContext.js +12 -0
  68. package/lib/module/RulerContext.js.map +1 -0
  69. package/lib/module/RulerDatePicker.js +38 -350
  70. package/lib/module/RulerDatePicker.js.map +1 -1
  71. package/lib/module/RulerDateRangePicker.js +52 -0
  72. package/lib/module/RulerDateRangePicker.js.map +1 -0
  73. package/lib/module/RulerHeader.js +101 -0
  74. package/lib/module/RulerHeader.js.map +1 -0
  75. package/lib/module/RulerIndicator.js +62 -0
  76. package/lib/module/RulerIndicator.js.map +1 -0
  77. package/lib/module/RulerLensTicks.js +50 -0
  78. package/lib/module/RulerLensTicks.js.map +1 -0
  79. package/lib/module/RulerLensTrack.js +47 -0
  80. package/lib/module/RulerLensTrack.js.map +1 -0
  81. package/lib/module/RulerRange.js +36 -0
  82. package/lib/module/RulerRange.js.map +1 -0
  83. package/lib/module/RulerRangeContext.js +12 -0
  84. package/lib/module/RulerRangeContext.js.map +1 -0
  85. package/lib/module/RulerRangeHeader.js +149 -0
  86. package/lib/module/RulerRangeHeader.js.map +1 -0
  87. package/lib/module/RulerRangeHighlight.js +45 -0
  88. package/lib/module/RulerRangeHighlight.js.map +1 -0
  89. package/lib/module/RulerRangeIndicator.js +66 -0
  90. package/lib/module/RulerRangeIndicator.js.map +1 -0
  91. package/lib/module/RulerRangeRoot.js +75 -0
  92. package/lib/module/RulerRangeRoot.js.map +1 -0
  93. package/lib/module/RulerRangeTicks.js +51 -0
  94. package/lib/module/RulerRangeTicks.js.map +1 -0
  95. package/lib/module/RulerRangeTrack.js +41 -0
  96. package/lib/module/RulerRangeTrack.js.map +1 -0
  97. package/lib/module/RulerResetButton.js +41 -0
  98. package/lib/module/RulerResetButton.js.map +1 -0
  99. package/lib/module/RulerRoot.js +82 -0
  100. package/lib/module/RulerRoot.js.map +1 -0
  101. package/lib/module/RulerTicks.js +45 -0
  102. package/lib/module/RulerTicks.js.map +1 -0
  103. package/lib/module/RulerTrack.js +41 -0
  104. package/lib/module/RulerTrack.js.map +1 -0
  105. package/lib/module/Tick.js +41 -36
  106. package/lib/module/Tick.js.map +1 -1
  107. package/lib/module/defaults.js +19 -18
  108. package/lib/module/defaults.js.map +1 -1
  109. package/lib/module/index.js +46 -1
  110. package/lib/module/index.js.map +1 -1
  111. package/lib/module/presets.js +103 -0
  112. package/lib/module/presets.js.map +1 -0
  113. package/lib/module/tickResolver.js +97 -0
  114. package/lib/module/tickResolver.js.map +1 -0
  115. package/lib/module/useHaptics.js +1 -1
  116. package/lib/module/useHaptics.js.map +1 -1
  117. package/lib/module/useHaptics.web.js +39 -0
  118. package/lib/module/useHaptics.web.js.map +1 -0
  119. package/lib/module/useRulerDatePicker.js +260 -0
  120. package/lib/module/useRulerDatePicker.js.map +1 -0
  121. package/lib/module/useRulerDateRangePicker.js +310 -0
  122. package/lib/module/useRulerDateRangePicker.js.map +1 -0
  123. package/lib/module/utils.js +59 -45
  124. package/lib/module/utils.js.map +1 -1
  125. package/lib/typescript/LensTick.d.ts +20 -0
  126. package/lib/typescript/LensTick.d.ts.map +1 -0
  127. package/lib/typescript/Ruler.d.ts +31 -0
  128. package/lib/typescript/Ruler.d.ts.map +1 -0
  129. package/lib/typescript/RulerContext.d.ts +11 -0
  130. package/lib/typescript/RulerContext.d.ts.map +1 -0
  131. package/lib/typescript/RulerDatePicker.d.ts +10 -7
  132. package/lib/typescript/RulerDatePicker.d.ts.map +1 -1
  133. package/lib/typescript/RulerDateRangePicker.d.ts +26 -0
  134. package/lib/typescript/RulerDateRangePicker.d.ts.map +1 -0
  135. package/lib/typescript/RulerHeader.d.ts +14 -0
  136. package/lib/typescript/RulerHeader.d.ts.map +1 -0
  137. package/lib/typescript/RulerIndicator.d.ts +17 -0
  138. package/lib/typescript/RulerIndicator.d.ts.map +1 -0
  139. package/lib/typescript/RulerLensTicks.d.ts +12 -0
  140. package/lib/typescript/RulerLensTicks.d.ts.map +1 -0
  141. package/lib/typescript/RulerLensTrack.d.ts +13 -0
  142. package/lib/typescript/RulerLensTrack.d.ts.map +1 -0
  143. package/lib/typescript/RulerRange.d.ts +32 -0
  144. package/lib/typescript/RulerRange.d.ts.map +1 -0
  145. package/lib/typescript/RulerRangeContext.d.ts +11 -0
  146. package/lib/typescript/RulerRangeContext.d.ts.map +1 -0
  147. package/lib/typescript/RulerRangeHeader.d.ts +12 -0
  148. package/lib/typescript/RulerRangeHeader.d.ts.map +1 -0
  149. package/lib/typescript/RulerRangeHighlight.d.ts +8 -0
  150. package/lib/typescript/RulerRangeHighlight.d.ts.map +1 -0
  151. package/lib/typescript/RulerRangeIndicator.d.ts +17 -0
  152. package/lib/typescript/RulerRangeIndicator.d.ts.map +1 -0
  153. package/lib/typescript/RulerRangeRoot.d.ts +7 -0
  154. package/lib/typescript/RulerRangeRoot.d.ts.map +1 -0
  155. package/lib/typescript/RulerRangeTicks.d.ts +14 -0
  156. package/lib/typescript/RulerRangeTicks.d.ts.map +1 -0
  157. package/lib/typescript/RulerRangeTrack.d.ts +8 -0
  158. package/lib/typescript/RulerRangeTrack.d.ts.map +1 -0
  159. package/lib/typescript/RulerResetButton.d.ts +10 -0
  160. package/lib/typescript/RulerResetButton.d.ts.map +1 -0
  161. package/lib/typescript/RulerRoot.d.ts +7 -0
  162. package/lib/typescript/RulerRoot.d.ts.map +1 -0
  163. package/lib/typescript/RulerTicks.d.ts +9 -0
  164. package/lib/typescript/RulerTicks.d.ts.map +1 -0
  165. package/lib/typescript/RulerTrack.d.ts +8 -0
  166. package/lib/typescript/RulerTrack.d.ts.map +1 -0
  167. package/lib/typescript/Tick.d.ts +3 -16
  168. package/lib/typescript/Tick.d.ts.map +1 -1
  169. package/lib/typescript/defaults.d.ts +6 -9
  170. package/lib/typescript/defaults.d.ts.map +1 -1
  171. package/lib/typescript/index.d.ts +37 -1
  172. package/lib/typescript/index.d.ts.map +1 -1
  173. package/lib/typescript/presets.d.ts +27 -0
  174. package/lib/typescript/presets.d.ts.map +1 -0
  175. package/lib/typescript/tickResolver.d.ts +10 -0
  176. package/lib/typescript/tickResolver.d.ts.map +1 -0
  177. package/lib/typescript/types.d.ts +302 -85
  178. package/lib/typescript/types.d.ts.map +1 -1
  179. package/lib/typescript/useHaptics.web.d.ts +17 -0
  180. package/lib/typescript/useHaptics.web.d.ts.map +1 -0
  181. package/lib/typescript/useRulerDatePicker.d.ts +26 -0
  182. package/lib/typescript/useRulerDatePicker.d.ts.map +1 -0
  183. package/lib/typescript/useRulerDateRangePicker.d.ts +40 -0
  184. package/lib/typescript/useRulerDateRangePicker.d.ts.map +1 -0
  185. package/lib/typescript/utils.d.ts +14 -12
  186. package/lib/typescript/utils.d.ts.map +1 -1
  187. package/package.json +25 -7
  188. package/src/LensTick.tsx +90 -0
  189. package/src/Ruler.ts +32 -0
  190. package/src/RulerContext.tsx +20 -0
  191. package/src/RulerDatePicker.tsx +41 -439
  192. package/src/RulerDateRangePicker.tsx +53 -0
  193. package/src/RulerHeader.tsx +125 -0
  194. package/src/RulerIndicator.tsx +84 -0
  195. package/src/RulerLensTicks.tsx +50 -0
  196. package/src/RulerLensTrack.tsx +45 -0
  197. package/src/RulerRange.ts +33 -0
  198. package/src/RulerRangeContext.tsx +20 -0
  199. package/src/RulerRangeHeader.tsx +180 -0
  200. package/src/RulerRangeHighlight.tsx +47 -0
  201. package/src/RulerRangeIndicator.tsx +85 -0
  202. package/src/RulerRangeRoot.tsx +87 -0
  203. package/src/RulerRangeTicks.tsx +68 -0
  204. package/src/RulerRangeTrack.tsx +39 -0
  205. package/src/RulerResetButton.tsx +59 -0
  206. package/src/RulerRoot.tsx +93 -0
  207. package/src/RulerTicks.tsx +57 -0
  208. package/src/RulerTrack.tsx +39 -0
  209. package/src/Tick.tsx +60 -49
  210. package/src/defaults.ts +21 -19
  211. package/src/index.ts +83 -1
  212. package/src/presets.ts +108 -0
  213. package/src/tickResolver.ts +123 -0
  214. package/src/types.ts +354 -102
  215. package/src/useHaptics.web.ts +55 -0
  216. package/src/useRulerDatePicker.ts +373 -0
  217. package/src/useRulerDateRangePicker.ts +468 -0
  218. package/src/utils.ts +67 -68
  219. package/lib/commonjs/package.json +0 -1
  220. package/lib/module/package.json +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","Animated","useAnimatedStyle","useRulerRangeContext","RulerRangeHighlight","Tick","jsx","_jsx","jsxs","_jsxs","RulerRangeTicks","style","renderTick","showHighlight","translateX","visibleTicks","tickSpacing","rulerHeight","width","animatedStyle","transform","value","View","styles","ticksWrapper","left","children","map","tick","Fragment","offset","create","position","height"],"sourceRoot":"../../src","sources":["RulerRangeTicks.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAwC,cAAc;AACzE,OAAOC,QAAQ,IAAIC,gBAAgB,QAAQ,yBAAyB;AACpE,SAASC,oBAAoB,QAAQ,wBAAqB;AAC1D,SAASC,mBAAmB,QAAQ,0BAAuB;AAC3D,SAASC,IAAI,QAAQ,WAAQ;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAS9B;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAAC;EAC9BC,KAAK;EACLC,UAAU;EACVC,aAAa,GAAG;AACI,CAAC,GAAG,CAAC,CAAC,EAAE;EAC5B,MAAM;IAAEC,UAAU;IAAEC,YAAY;IAAEC,WAAW;IAAEC,WAAW;IAAEC;EAAM,CAAC,GACjEf,oBAAoB,CAAC,CAAC;EAExB,MAAMgB,aAAa,GAAGjB,gBAAgB,CACpC,OAAO;IACLkB,SAAS,EAAE,CAAC;MAAEN,UAAU,EAAEA,UAAU,CAACO;IAAM,CAAC;EAC9C,CAAC,CAAC,EACF,CAACP,UAAU,CACb,CAAC;EAED,oBACEL,KAAA,CAACR,QAAQ,CAACqB,IAAI;IACZX,KAAK,EAAE,CACLY,MAAM,CAACC,YAAY,EACnB;MAAEC,IAAI,EAAEP,KAAK,GAAG;IAAE,CAAC,EACnBC,aAAa,EACbR,KAAK,CACL;IAAAe,QAAA,GAEDb,aAAa,iBAAIN,IAAA,CAACH,mBAAmB,IAAE,CAAC,EACxCW,YAAY,CAACY,GAAG,CAAEC,IAAI,IACrBhB,UAAU,gBACRL,IAAA,CAACR,KAAK,CAAC8B,QAAQ;MAAAH,QAAA,EACZd,UAAU,CAACgB,IAAI,EAAEZ,WAAW,EAAEC,WAAW;IAAC,GADxBW,IAAI,CAACE,MAEV,CAAC,gBAEjBvB,IAAA,CAACF,IAAI;MAEHuB,IAAI,EAAEA,IAAK;MACXZ,WAAW,EAAEA,WAAY;MACzBC,WAAW,EAAEA;IAAY,GAHpBW,IAAI,CAACE,MAIX,CAEL,CAAC;EAAA,CACY,CAAC;AAEpB;AAEA,MAAMP,MAAM,GAAGvB,UAAU,CAAC+B,MAAM,CAAC;EAC/BP,YAAY,EAAE;IACZQ,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE,MAAM;IACdf,KAAK,EAAE;EACT;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { GestureDetector } from 'react-native-gesture-handler';
6
+ import { useRulerRangeContext } from "./RulerRangeContext.js";
7
+ import { RulerRangeIndicator } from "./RulerRangeIndicator.js";
8
+ import { RulerRangeTicks } from "./RulerRangeTicks.js";
9
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
10
+ export function RulerRangeTrack({
11
+ style,
12
+ children
13
+ } = {}) {
14
+ const {
15
+ panGesture,
16
+ rulerHeight,
17
+ width
18
+ } = useRulerRangeContext();
19
+ return /*#__PURE__*/_jsx(GestureDetector, {
20
+ gesture: panGesture,
21
+ children: /*#__PURE__*/_jsx(View, {
22
+ style: [styles.rulerContainer, {
23
+ width,
24
+ height: rulerHeight
25
+ }, style],
26
+ children: children ?? /*#__PURE__*/_jsxs(_Fragment, {
27
+ children: [/*#__PURE__*/_jsx(RulerRangeIndicator, {}), /*#__PURE__*/_jsx(RulerRangeTicks, {})]
28
+ })
29
+ })
30
+ });
31
+ }
32
+ const styles = StyleSheet.create({
33
+ rulerContainer: {
34
+ position: 'relative',
35
+ flexDirection: 'row',
36
+ alignItems: 'flex-end',
37
+ justifyContent: 'center',
38
+ overflow: 'hidden'
39
+ }
40
+ });
41
+ //# sourceMappingURL=RulerRangeTrack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","StyleSheet","GestureDetector","useRulerRangeContext","RulerRangeIndicator","RulerRangeTicks","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","RulerRangeTrack","style","children","panGesture","rulerHeight","width","gesture","styles","rulerContainer","height","create","position","flexDirection","alignItems","justifyContent","overflow"],"sourceRoot":"../../src","sources":["RulerRangeTrack.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,UAAU,QAAwC,cAAc;AAC/E,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAASC,oBAAoB,QAAQ,wBAAqB;AAC1D,SAASC,mBAAmB,QAAQ,0BAAuB;AAC3D,SAASC,eAAe,QAAQ,sBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAOpD,OAAO,SAASC,eAAeA,CAAC;EAAEC,KAAK;EAAEC;AAA+B,CAAC,GAAG,CAAC,CAAC,EAAE;EAC9E,MAAM;IAAEC,UAAU;IAAEC,WAAW;IAAEC;EAAM,CAAC,GAAGd,oBAAoB,CAAC,CAAC;EAEjE,oBACEI,IAAA,CAACL,eAAe;IAACgB,OAAO,EAAEH,UAAW;IAAAD,QAAA,eACnCP,IAAA,CAACP,IAAI;MAACa,KAAK,EAAE,CAACM,MAAM,CAACC,cAAc,EAAE;QAAEH,KAAK;QAAEI,MAAM,EAAEL;MAAY,CAAC,EAAEH,KAAK,CAAE;MAAAC,QAAA,EACzEA,QAAQ,iBACPH,KAAA,CAAAF,SAAA;QAAAK,QAAA,gBACEP,IAAA,CAACH,mBAAmB,IAAE,CAAC,eACvBG,IAAA,CAACF,eAAe,IAAE,CAAC;MAAA,CACnB;IACH,CACG;EAAC,CACQ,CAAC;AAEtB;AAEA,MAAMc,MAAM,GAAGlB,UAAU,CAACqB,MAAM,CAAC;EAC/BF,cAAc,EAAE;IACdG,QAAQ,EAAE,UAAU;IACpBC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,UAAU;IACtBC,cAAc,EAAE,QAAQ;IACxBC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { TouchableOpacity, Text, StyleSheet } from 'react-native';
5
+ import { useRulerContext } from "./RulerContext.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export function RulerResetButton({
8
+ children,
9
+ style,
10
+ textStyle,
11
+ label = 'Today'
12
+ } = {}) {
13
+ const {
14
+ resetToToday,
15
+ theme
16
+ } = useRulerContext();
17
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
18
+ activeOpacity: 0.7,
19
+ onPress: () => resetToToday(true),
20
+ style: [styles.resetBtn, style],
21
+ children: children ?? /*#__PURE__*/_jsx(Text, {
22
+ style: [styles.resetText, {
23
+ color: theme.accentColor
24
+ }, textStyle],
25
+ children: label
26
+ })
27
+ });
28
+ }
29
+ const styles = StyleSheet.create({
30
+ resetBtn: {
31
+ paddingVertical: 6,
32
+ paddingHorizontal: 12,
33
+ borderRadius: 16,
34
+ backgroundColor: 'rgba(0,0,0,0.05)'
35
+ },
36
+ resetText: {
37
+ fontSize: 14,
38
+ fontWeight: '600'
39
+ }
40
+ });
41
+ //# sourceMappingURL=RulerResetButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","TouchableOpacity","Text","StyleSheet","useRulerContext","jsx","_jsx","RulerResetButton","children","style","textStyle","label","resetToToday","theme","activeOpacity","onPress","styles","resetBtn","resetText","color","accentColor","create","paddingVertical","paddingHorizontal","borderRadius","backgroundColor","fontSize","fontWeight"],"sourceRoot":"../../src","sources":["RulerResetButton.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,gBAAgB,EAChBC,IAAI,EACJC,UAAU,QAIL,cAAc;AACrB,SAASC,eAAe,QAAQ,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASjD,OAAO,SAASC,gBAAgBA,CAAC;EAC/BC,QAAQ;EACRC,KAAK;EACLC,SAAS;EACTC,KAAK,GAAG;AACa,CAAC,GAAG,CAAC,CAAC,EAAE;EAC7B,MAAM;IAAEC,YAAY;IAAEC;EAAM,CAAC,GAAGT,eAAe,CAAC,CAAC;EAEjD,oBACEE,IAAA,CAACL,gBAAgB;IACfa,aAAa,EAAE,GAAI;IACnBC,OAAO,EAAEA,CAAA,KAAMH,YAAY,CAAC,IAAI,CAAE;IAClCH,KAAK,EAAE,CAACO,MAAM,CAACC,QAAQ,EAAER,KAAK,CAAE;IAAAD,QAAA,EAE/BA,QAAQ,iBACPF,IAAA,CAACJ,IAAI;MACHO,KAAK,EAAE,CACLO,MAAM,CAACE,SAAS,EAChB;QAAEC,KAAK,EAAEN,KAAK,CAACO;MAAY,CAAC,EAC5BV,SAAS,CACT;MAAAF,QAAA,EAEDG;IAAK,CACF;EACP,CACe,CAAC;AAEvB;AAEA,MAAMK,MAAM,GAAGb,UAAU,CAACkB,MAAM,CAAC;EAC/BJ,QAAQ,EAAE;IACRK,eAAe,EAAE,CAAC;IAClBC,iBAAiB,EAAE,EAAE;IACrBC,YAAY,EAAE,EAAE;IAChBC,eAAe,EAAE;EACnB,CAAC;EACDP,SAAS,EAAE;IACTQ,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { useRulerDatePicker } from "./useRulerDatePicker.js";
6
+ import { RulerContext } from "./RulerContext.js";
7
+ import { DEFAULT_LENS_CONFIG } from "./defaults.js";
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ export function RulerRoot(props) {
10
+ const {
11
+ children,
12
+ style,
13
+ indicator,
14
+ lensEffect,
15
+ testID
16
+ } = props;
17
+ const ruler = useRulerDatePicker(props);
18
+ const lensConfig = React.useMemo(() => {
19
+ if (!lensEffect) return null;
20
+ if (typeof lensEffect === 'object') {
21
+ return {
22
+ ...DEFAULT_LENS_CONFIG,
23
+ ...lensEffect
24
+ };
25
+ }
26
+ return DEFAULT_LENS_CONFIG;
27
+ }, [lensEffect]);
28
+ const indicatorConfig = typeof indicator === 'object' ? indicator : undefined;
29
+ const headerConfig = typeof props.header === 'object' ? props.header : undefined;
30
+ const contextValue = {
31
+ ...ruler,
32
+ indicatorConfig,
33
+ headerConfig,
34
+ locale: props.locale,
35
+ lensConfig
36
+ };
37
+ return /*#__PURE__*/_jsx(RulerContext.Provider, {
38
+ value: contextValue,
39
+ children: /*#__PURE__*/_jsx(View, {
40
+ testID: testID,
41
+ accessible: true,
42
+ accessibilityRole: "adjustable",
43
+ accessibilityLabel: props.accessibilityLabel ?? 'Date picker',
44
+ accessibilityValue: {
45
+ text: ruler.selectedDateStr
46
+ },
47
+ accessibilityActions: [{
48
+ name: 'increment',
49
+ label: 'Next day'
50
+ }, {
51
+ name: 'decrement',
52
+ label: 'Previous day'
53
+ }],
54
+ onAccessibilityAction: event => {
55
+ if (event.nativeEvent.actionName === 'increment') {
56
+ const next = new Date(ruler.selectedDate);
57
+ next.setDate(next.getDate() + 1);
58
+ ruler.scrollToDate(next, true);
59
+ } else if (event.nativeEvent.actionName === 'decrement') {
60
+ const prev = new Date(ruler.selectedDate);
61
+ prev.setDate(prev.getDate() - 1);
62
+ ruler.scrollToDate(prev, true);
63
+ }
64
+ },
65
+ style: [styles.container, {
66
+ minHeight: ruler.height,
67
+ backgroundColor: ruler.theme.background
68
+ }, style],
69
+ children: children
70
+ })
71
+ });
72
+ }
73
+ const styles = StyleSheet.create({
74
+ container: {
75
+ justifyContent: 'center',
76
+ alignItems: 'center',
77
+ position: 'relative',
78
+ width: '100%',
79
+ paddingVertical: 8
80
+ }
81
+ });
82
+ //# sourceMappingURL=RulerRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","StyleSheet","useRulerDatePicker","RulerContext","DEFAULT_LENS_CONFIG","jsx","_jsx","RulerRoot","props","children","style","indicator","lensEffect","testID","ruler","lensConfig","useMemo","indicatorConfig","undefined","headerConfig","header","contextValue","locale","Provider","value","accessible","accessibilityRole","accessibilityLabel","accessibilityValue","text","selectedDateStr","accessibilityActions","name","label","onAccessibilityAction","event","nativeEvent","actionName","next","Date","selectedDate","setDate","getDate","scrollToDate","prev","styles","container","minHeight","height","backgroundColor","theme","background","create","justifyContent","alignItems","position","width","paddingVertical"],"sourceRoot":"../../src","sources":["RulerRoot.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { StyleSheet } from 'react-native';
5
+ import Animated, { useAnimatedStyle } from 'react-native-reanimated';
6
+ import { useRulerContext } from "./RulerContext.js";
7
+ import { Tick } from "./Tick.js";
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ export function RulerTicks({
10
+ style,
11
+ renderTick
12
+ } = {}) {
13
+ const {
14
+ translateX,
15
+ visibleTicks,
16
+ tickSpacing,
17
+ rulerHeight,
18
+ width
19
+ } = useRulerContext();
20
+ const animatedStyle = useAnimatedStyle(() => ({
21
+ transform: [{
22
+ translateX: translateX.value
23
+ }]
24
+ }), [translateX]);
25
+ return /*#__PURE__*/_jsx(Animated.View, {
26
+ style: [styles.ticksWrapper, {
27
+ left: width / 2
28
+ }, animatedStyle, style],
29
+ children: visibleTicks.map(tick => renderTick ? /*#__PURE__*/_jsx(React.Fragment, {
30
+ children: renderTick(tick, tickSpacing, rulerHeight)
31
+ }, tick.offset) : /*#__PURE__*/_jsx(Tick, {
32
+ tick: tick,
33
+ tickSpacing: tickSpacing,
34
+ rulerHeight: rulerHeight
35
+ }, tick.offset))
36
+ });
37
+ }
38
+ const styles = StyleSheet.create({
39
+ ticksWrapper: {
40
+ position: 'absolute',
41
+ height: '100%',
42
+ width: 0
43
+ }
44
+ });
45
+ //# sourceMappingURL=RulerTicks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","Animated","useAnimatedStyle","useRulerContext","Tick","jsx","_jsx","RulerTicks","style","renderTick","translateX","visibleTicks","tickSpacing","rulerHeight","width","animatedStyle","transform","value","View","styles","ticksWrapper","left","children","map","tick","Fragment","offset","create","position","height"],"sourceRoot":"../../src","sources":["RulerTicks.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAwC,cAAc;AACzE,OAAOC,QAAQ,IAAIC,gBAAgB,QAAQ,yBAAyB;AACpE,SAASC,eAAe,QAAQ,mBAAgB;AAChD,SAASC,IAAI,QAAQ,WAAQ;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ9B,OAAO,SAASC,UAAUA,CAAC;EAAEC,KAAK;EAAEC;AAA4B,CAAC,GAAG,CAAC,CAAC,EAAE;EACtE,MAAM;IAAEC,UAAU;IAAEC,YAAY;IAAEC,WAAW;IAAEC,WAAW;IAAEC;EAAM,CAAC,GACjEX,eAAe,CAAC,CAAC;EAEnB,MAAMY,aAAa,GAAGb,gBAAgB,CACpC,OAAO;IACLc,SAAS,EAAE,CAAC;MAAEN,UAAU,EAAEA,UAAU,CAACO;IAAM,CAAC;EAC9C,CAAC,CAAC,EACF,CAACP,UAAU,CACb,CAAC;EAED,oBACEJ,IAAA,CAACL,QAAQ,CAACiB,IAAI;IACZV,KAAK,EAAE,CACLW,MAAM,CAACC,YAAY,EACnB;MAAEC,IAAI,EAAEP,KAAK,GAAG;IAAE,CAAC,EACnBC,aAAa,EACbP,KAAK,CACL;IAAAc,QAAA,EAEDX,YAAY,CAACY,GAAG,CAAEC,IAAI,IACrBf,UAAU,gBACRH,IAAA,CAACP,KAAK,CAAC0B,QAAQ;MAAAH,QAAA,EACZb,UAAU,CAACe,IAAI,EAAEZ,WAAW,EAAEC,WAAW;IAAC,GADxBW,IAAI,CAACE,MAEV,CAAC,gBAEjBpB,IAAA,CAACF,IAAI;MAEHoB,IAAI,EAAEA,IAAK;MACXZ,WAAW,EAAEA,WAAY;MACzBC,WAAW,EAAEA;IAAY,GAHpBW,IAAI,CAACE,MAIX,CAEL;EAAC,CACY,CAAC;AAEpB;AAEA,MAAMP,MAAM,GAAGnB,UAAU,CAAC2B,MAAM,CAAC;EAC/BP,YAAY,EAAE;IACZQ,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE,MAAM;IACdf,KAAK,EAAE;EACT;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { GestureDetector } from 'react-native-gesture-handler';
6
+ import { useRulerContext } from "./RulerContext.js";
7
+ import { RulerIndicator } from "./RulerIndicator.js";
8
+ import { RulerTicks } from "./RulerTicks.js";
9
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
10
+ export function RulerTrack({
11
+ children,
12
+ style
13
+ } = {}) {
14
+ const {
15
+ panGesture,
16
+ rulerHeight,
17
+ width
18
+ } = useRulerContext();
19
+ return /*#__PURE__*/_jsx(GestureDetector, {
20
+ gesture: panGesture,
21
+ children: /*#__PURE__*/_jsx(View, {
22
+ style: [styles.rulerContainer, {
23
+ width,
24
+ height: rulerHeight
25
+ }, style],
26
+ children: children ?? /*#__PURE__*/_jsxs(_Fragment, {
27
+ children: [/*#__PURE__*/_jsx(RulerIndicator, {}), /*#__PURE__*/_jsx(RulerTicks, {})]
28
+ })
29
+ })
30
+ });
31
+ }
32
+ const styles = StyleSheet.create({
33
+ rulerContainer: {
34
+ position: 'relative',
35
+ flexDirection: 'row',
36
+ alignItems: 'flex-end',
37
+ justifyContent: 'center',
38
+ overflow: 'hidden'
39
+ }
40
+ });
41
+ //# sourceMappingURL=RulerTrack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","StyleSheet","GestureDetector","useRulerContext","RulerIndicator","RulerTicks","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","RulerTrack","children","style","panGesture","rulerHeight","width","gesture","styles","rulerContainer","height","create","position","flexDirection","alignItems","justifyContent","overflow"],"sourceRoot":"../../src","sources":["RulerTrack.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,UAAU,QAAwC,cAAc;AAC/E,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAASC,eAAe,QAAQ,mBAAgB;AAEhD,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,UAAU,QAAQ,iBAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAO1C,OAAO,SAASC,UAAUA,CAAC;EAAEC,QAAQ;EAAEC;AAAuB,CAAC,GAAG,CAAC,CAAC,EAAE;EACpE,MAAM;IAAEC,UAAU;IAAEC,WAAW;IAAEC;EAAM,CAAC,GAAGd,eAAe,CAAC,CAAC;EAE5D,oBACEI,IAAA,CAACL,eAAe;IAACgB,OAAO,EAAEH,UAAW;IAAAF,QAAA,eACnCN,IAAA,CAACP,IAAI;MAACc,KAAK,EAAE,CAACK,MAAM,CAACC,cAAc,EAAE;QAAEH,KAAK;QAAEI,MAAM,EAAEL;MAAY,CAAC,EAAEF,KAAK,CAAE;MAAAD,QAAA,EACzEA,QAAQ,iBACPF,KAAA,CAAAF,SAAA;QAAAI,QAAA,gBACEN,IAAA,CAACH,cAAc,IAAE,CAAC,eAClBG,IAAA,CAACF,UAAU,IAAE,CAAC;MAAA,CACd;IACH,CACG;EAAC,CACQ,CAAC;AAEtB;AAEA,MAAMc,MAAM,GAAGlB,UAAU,CAACqB,MAAM,CAAC;EAC/BF,cAAc,EAAE;IACdG,QAAQ,EAAE,UAAU;IACpBC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,UAAU;IACtBC,cAAc,EAAE,QAAQ;IACxBC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC","ignoreList":[]}
@@ -5,54 +5,59 @@ import { View, Text, StyleSheet } from 'react-native';
5
5
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  /**
7
7
  * Memoized single tick component.
8
- * Renders a vertical bar with optional label and today dot indicator.
9
- * Small and large ticks can be independently colored.
8
+ * Renders a vertical tick bar with optional label, dot indicator, or custom render element.
10
9
  */
11
10
  export const Tick = /*#__PURE__*/React.memo(function Tick({
12
- offset,
13
- isLabeled,
14
- isToday,
15
- dateStr,
11
+ tick,
16
12
  tickSpacing,
17
- tickHeight,
18
- tickTallHeight,
19
- tickThickness,
20
- tickColor,
21
- tickTallColor,
22
- labelColor,
23
- accentColor,
24
- todayDotSize,
25
- labelFontSize,
26
13
  rulerHeight
27
14
  }) {
28
- const resolvedTickColor = isLabeled ? tickTallColor : tickColor;
29
- const resolvedTickHeight = isLabeled ? tickTallHeight : tickHeight;
15
+ if (tick.customRender) {
16
+ return /*#__PURE__*/_jsx(View, {
17
+ style: [styles.tickContainer, {
18
+ width: tickSpacing,
19
+ height: rulerHeight,
20
+ position: 'absolute',
21
+ left: tick.offset * tickSpacing - tickSpacing / 2
22
+ }],
23
+ children: tick.customRender({
24
+ date: tick.date,
25
+ offset: tick.offset,
26
+ isToday: tick.isToday,
27
+ isSelected: tick.isSelected,
28
+ isInRange: tick.isInRange
29
+ })
30
+ });
31
+ }
30
32
  return /*#__PURE__*/_jsxs(View, {
31
33
  style: [styles.tickContainer, {
32
34
  width: tickSpacing,
33
35
  height: rulerHeight,
34
36
  position: 'absolute',
35
- left: offset * tickSpacing - tickSpacing / 2
37
+ left: tick.offset * tickSpacing - tickSpacing / 2
36
38
  }],
37
- children: [isLabeled && /*#__PURE__*/_jsx(Text, {
39
+ children: [tick.labelText !== undefined && /*#__PURE__*/_jsx(Text, {
40
+ numberOfLines: 1,
38
41
  style: [styles.tickLabel, {
39
- color: labelColor,
40
- fontSize: labelFontSize
42
+ color: tick.labelColor,
43
+ fontSize: tick.labelFontSize,
44
+ fontWeight: tick.labelFontWeight
41
45
  }],
42
- children: dateStr
43
- }), isToday && /*#__PURE__*/_jsx(View, {
44
- style: [styles.todayDot, {
45
- backgroundColor: accentColor,
46
- width: todayDotSize,
47
- height: todayDotSize,
48
- borderRadius: todayDotSize / 2
46
+ children: tick.labelText
47
+ }), tick.hasDot && /*#__PURE__*/_jsx(View, {
48
+ style: [styles.dot, {
49
+ backgroundColor: tick.dotColor,
50
+ width: tick.dotSize,
51
+ height: tick.dotSize,
52
+ borderRadius: tick.dotSize / 2,
53
+ bottom: tick.height + 4
49
54
  }]
50
55
  }), /*#__PURE__*/_jsx(View, {
51
56
  style: {
52
- backgroundColor: resolvedTickColor,
53
- width: tickThickness,
54
- height: resolvedTickHeight,
55
- borderRadius: tickThickness / 2
57
+ backgroundColor: tick.color,
58
+ width: tick.width,
59
+ height: tick.height,
60
+ borderRadius: tick.width / 2
56
61
  }
57
62
  })]
58
63
  });
@@ -64,11 +69,11 @@ const styles = StyleSheet.create({
64
69
  },
65
70
  tickLabel: {
66
71
  position: 'absolute',
67
- top: 10
72
+ top: 6,
73
+ textAlign: 'center'
68
74
  },
69
- todayDot: {
70
- position: 'absolute',
71
- top: 25
75
+ dot: {
76
+ position: 'absolute'
72
77
  }
73
78
  });
74
79
  //# sourceMappingURL=Tick.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Text","StyleSheet","jsx","_jsx","jsxs","_jsxs","Tick","memo","offset","isLabeled","isToday","dateStr","tickSpacing","tickHeight","tickTallHeight","tickThickness","tickColor","tickTallColor","labelColor","accentColor","todayDotSize","labelFontSize","rulerHeight","resolvedTickColor","resolvedTickHeight","style","styles","tickContainer","width","height","position","left","children","tickLabel","color","fontSize","todayDot","backgroundColor","borderRadius","create","justifyContent","alignItems","top"],"sourceRoot":"../../src","sources":["Tick.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAsBtD;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,IAAI,gBAAGR,KAAK,CAACS,IAAI,CAAC,SAASD,IAAIA,CAAC;EAC3CE,MAAM;EACNC,SAAS;EACTC,OAAO;EACPC,OAAO;EACPC,WAAW;EACXC,UAAU;EACVC,cAAc;EACdC,aAAa;EACbC,SAAS;EACTC,aAAa;EACbC,UAAU;EACVC,WAAW;EACXC,YAAY;EACZC,aAAa;EACbC;AACS,CAAC,EAAE;EACZ,MAAMC,iBAAiB,GAAGd,SAAS,GAAGQ,aAAa,GAAGD,SAAS;EAC/D,MAAMQ,kBAAkB,GAAGf,SAAS,GAAGK,cAAc,GAAGD,UAAU;EAElE,oBACER,KAAA,CAACN,IAAI;IACH0B,KAAK,EAAE,CACLC,MAAM,CAACC,aAAa,EACpB;MACEC,KAAK,EAAEhB,WAAW;MAClBiB,MAAM,EAAEP,WAAW;MACnBQ,QAAQ,EAAE,UAAU;MACpBC,IAAI,EAAEvB,MAAM,GAAGI,WAAW,GAAGA,WAAW,GAAG;IAC7C,CAAC,CACD;IAAAoB,QAAA,GAEDvB,SAAS,iBACRN,IAAA,CAACH,IAAI;MAACyB,KAAK,EAAE,CAACC,MAAM,CAACO,SAAS,EAAE;QAAEC,KAAK,EAAEhB,UAAU;QAAEiB,QAAQ,EAAEd;MAAc,CAAC,CAAE;MAAAW,QAAA,EAC7ErB;IAAO,CACJ,CACP,EACAD,OAAO,iBACNP,IAAA,CAACJ,IAAI;MACH0B,KAAK,EAAE,CACLC,MAAM,CAACU,QAAQ,EACf;QACEC,eAAe,EAAElB,WAAW;QAC5BS,KAAK,EAAER,YAAY;QACnBS,MAAM,EAAET,YAAY;QACpBkB,YAAY,EAAElB,YAAY,GAAG;MAC/B,CAAC;IACD,CACH,CACF,eACDjB,IAAA,CAACJ,IAAI;MACH0B,KAAK,EAAE;QACLY,eAAe,EAAEd,iBAAiB;QAClCK,KAAK,EAAEb,aAAa;QACpBc,MAAM,EAAEL,kBAAkB;QAC1Bc,YAAY,EAAEvB,aAAa,GAAG;MAChC;IAAE,CACH,CAAC;EAAA,CACE,CAAC;AAEX,CAAC,CAAC;AAEF,MAAMW,MAAM,GAAGzB,UAAU,CAACsC,MAAM,CAAC;EAC/BZ,aAAa,EAAE;IACba,cAAc,EAAE,UAAU;IAC1BC,UAAU,EAAE;EACd,CAAC;EACDR,SAAS,EAAE;IACTH,QAAQ,EAAE,UAAU;IACpBY,GAAG,EAAE;EACP,CAAC;EACDN,QAAQ,EAAE;IACRN,QAAQ,EAAE,UAAU;IACpBY,GAAG,EAAE;EACP;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Text","StyleSheet","jsx","_jsx","jsxs","_jsxs","Tick","memo","tick","tickSpacing","rulerHeight","customRender","style","styles","tickContainer","width","height","position","left","offset","children","date","isToday","isSelected","isInRange","labelText","undefined","numberOfLines","tickLabel","color","labelColor","fontSize","labelFontSize","fontWeight","labelFontWeight","hasDot","dot","backgroundColor","dotColor","dotSize","borderRadius","bottom","create","justifyContent","alignItems","top","textAlign"],"sourceRoot":"../../src","sources":["Tick.tsx"],"mappings":"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","ignoreList":[]}
@@ -7,38 +7,39 @@ export const DEFAULT_DAY_RANGE = 365;
7
7
  // ── User-configurable defaults ───────────────────────────────────────────
8
8
  export const DEFAULTS = {
9
9
  tickSpacing: 24,
10
- tickHeight: 12,
11
- tickTallHeight: 24,
12
- tickThickness: 4,
10
+ tickWidth: 3,
13
11
  height: 120,
14
12
  rulerHeight: 60,
15
13
  indicatorWidth: 2,
16
14
  indicatorHeight: 40,
17
15
  todayDotSize: 6,
18
- labelFontSize: 10,
19
16
  bufferTicks: 10,
20
- updateDebounceMs: 100,
17
+ debounceMs: 100,
21
18
  fastSwipeTickThreshold: 1,
22
19
  continuousHapticIntervalMs: 20,
23
- enableHaptics: true,
24
20
  showResetToToday: false
25
21
  };
22
+ export const DEFAULT_LENS_CONFIG = {
23
+ magnification: 1.6,
24
+ radius: 60,
25
+ scaleTicks: true
26
+ };
26
27
 
27
28
  // ── Default color palettes ───────────────────────────────────────────────
28
- export const LIGHT_COLORS = {
29
- tickColor: '#D1D5DB',
30
- tickTallColor: '#9CA3AF',
31
- labelColor: '#6B7280',
32
- accentColor: '#3B82F6',
29
+ export const LIGHT_THEME = {
30
+ background: 'transparent',
33
31
  indicatorColor: '#3B82F6',
34
- backgroundColor: 'transparent'
32
+ accentColor: '#3B82F6',
33
+ labelColor: '#6B7280',
34
+ defaultTickColor: '#D1D5DB',
35
+ rangeHighlightColor: 'rgba(59, 130, 246, 0.15)'
35
36
  };
36
- export const DARK_COLORS = {
37
- tickColor: '#4B5563',
38
- tickTallColor: '#6B7280',
39
- labelColor: '#9CA3AF',
40
- accentColor: '#60A5FA',
37
+ export const DARK_THEME = {
38
+ background: 'transparent',
41
39
  indicatorColor: '#60A5FA',
42
- backgroundColor: 'transparent'
40
+ accentColor: '#60A5FA',
41
+ labelColor: '#9CA3AF',
42
+ defaultTickColor: '#4B5563',
43
+ rangeHighlightColor: 'rgba(96, 165, 250, 0.2)'
43
44
  };
44
45
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MS_PER_DAY","DEFAULT_DAY_RANGE","DEFAULTS","tickSpacing","tickHeight","tickTallHeight","tickThickness","height","rulerHeight","indicatorWidth","indicatorHeight","todayDotSize","labelFontSize","bufferTicks","updateDebounceMs","fastSwipeTickThreshold","continuousHapticIntervalMs","enableHaptics","showResetToToday","LIGHT_COLORS","tickColor","tickTallColor","labelColor","accentColor","indicatorColor","backgroundColor","DARK_COLORS"],"sourceRoot":"../../src","sources":["defaults.ts"],"mappings":";;AAEA;AACA,OAAO,MAAMA,UAAU,GAAG,UAAU;AACpC,OAAO,MAAMC,iBAAiB,GAAG,GAAG;;AAEpC;AACA,OAAO,MAAMC,QAAQ,GAAG;EACtBC,WAAW,EAAE,EAAE;EACfC,UAAU,EAAE,EAAE;EACdC,cAAc,EAAE,EAAE;EAClBC,aAAa,EAAE,CAAC;EAChBC,MAAM,EAAE,GAAG;EACXC,WAAW,EAAE,EAAE;EACfC,cAAc,EAAE,CAAC;EACjBC,eAAe,EAAE,EAAE;EACnBC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,EAAE;EACjBC,WAAW,EAAE,EAAE;EACfC,gBAAgB,EAAE,GAAG;EACrBC,sBAAsB,EAAE,CAAC;EACzBC,0BAA0B,EAAE,EAAE;EAC9BC,aAAa,EAAE,IAAI;EACnBC,gBAAgB,EAAE;AACpB,CAAU;;AAEV;AACA,OAAO,MAAMC,YAA4B,GAAG;EAC1CC,SAAS,EAAE,SAAS;EACpBC,aAAa,EAAE,SAAS;EACxBC,UAAU,EAAE,SAAS;EACrBC,WAAW,EAAE,SAAS;EACtBC,cAAc,EAAE,SAAS;EACzBC,eAAe,EAAE;AACnB,CAAC;AAED,OAAO,MAAMC,WAA2B,GAAG;EACzCN,SAAS,EAAE,SAAS;EACpBC,aAAa,EAAE,SAAS;EACxBC,UAAU,EAAE,SAAS;EACrBC,WAAW,EAAE,SAAS;EACtBC,cAAc,EAAE,SAAS;EACzBC,eAAe,EAAE;AACnB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["MS_PER_DAY","DEFAULT_DAY_RANGE","DEFAULTS","tickSpacing","tickWidth","height","rulerHeight","indicatorWidth","indicatorHeight","todayDotSize","bufferTicks","debounceMs","fastSwipeTickThreshold","continuousHapticIntervalMs","showResetToToday","DEFAULT_LENS_CONFIG","magnification","radius","scaleTicks","LIGHT_THEME","background","indicatorColor","accentColor","labelColor","defaultTickColor","rangeHighlightColor","DARK_THEME"],"sourceRoot":"../../src","sources":["defaults.ts"],"mappings":";;AAEA;AACA,OAAO,MAAMA,UAAU,GAAG,UAAU;AACpC,OAAO,MAAMC,iBAAiB,GAAG,GAAG;;AAEpC;AACA,OAAO,MAAMC,QAAQ,GAAG;EACtBC,WAAW,EAAE,EAAE;EACfC,SAAS,EAAE,CAAC;EACZC,MAAM,EAAE,GAAG;EACXC,WAAW,EAAE,EAAE;EACfC,cAAc,EAAE,CAAC;EACjBC,eAAe,EAAE,EAAE;EACnBC,YAAY,EAAE,CAAC;EACfC,WAAW,EAAE,EAAE;EACfC,UAAU,EAAE,GAAG;EACfC,sBAAsB,EAAE,CAAC;EACzBC,0BAA0B,EAAE,EAAE;EAC9BC,gBAAgB,EAAE;AACpB,CAAU;AAEV,OAAO,MAAMC,mBAAyC,GAAG;EACvDC,aAAa,EAAE,GAAG;EAClBC,MAAM,EAAE,EAAE;EACVC,UAAU,EAAE;AACd,CAAC;;AAED;AACA,OAAO,MAAMC,WAA+B,GAAG;EAC7CC,UAAU,EAAE,aAAa;EACzBC,cAAc,EAAE,SAAS;EACzBC,WAAW,EAAE,SAAS;EACtBC,UAAU,EAAE,SAAS;EACrBC,gBAAgB,EAAE,SAAS;EAC3BC,mBAAmB,EAAE;AACvB,CAAC;AAED,OAAO,MAAMC,UAA8B,GAAG;EAC5CN,UAAU,EAAE,aAAa;EACzBC,cAAc,EAAE,SAAS;EACzBC,WAAW,EAAE,SAAS;EACtBC,UAAU,EAAE,SAAS;EACrBC,gBAAgB,EAAE,SAAS;EAC3BC,mBAAmB,EAAE;AACvB,CAAC","ignoreList":[]}
@@ -1,4 +1,49 @@
1
1
  "use strict";
2
2
 
3
- export { RulerDatePicker } from './RulerDatePicker';
3
+ // ── Components ─────────────────────────────────────────────────────────────
4
+ export { RulerDatePicker } from "./RulerDatePicker.js";
5
+ /** @experimental */
6
+ export { RulerDateRangePicker } from "./RulerDateRangePicker.js";
7
+ export { Ruler } from "./Ruler.js";
8
+ /** @experimental */
9
+ export { RulerRange } from "./RulerRange.js";
10
+ export { Tick } from "./Tick.js";
11
+ export { RulerLensTrack } from "./RulerLensTrack.js";
12
+ export { RulerLensTicks } from "./RulerLensTicks.js";
13
+ export { LensTick } from "./LensTick.js";
14
+
15
+ // ── Compound Subcomponents ──────────────────────────────────────────────────
16
+ export { RulerRoot } from "./RulerRoot.js";
17
+ export { RulerTrack } from "./RulerTrack.js";
18
+ export { RulerIndicator } from "./RulerIndicator.js";
19
+ export { RulerTicks } from "./RulerTicks.js";
20
+ export { RulerHeader } from "./RulerHeader.js";
21
+ export { RulerResetButton } from "./RulerResetButton.js";
22
+
23
+ // ── Compound Subcomponents [EXPERIMENTAL] ───────────────────────────────────
24
+ export { RulerRangeRoot } from "./RulerRangeRoot.js";
25
+ export { RulerRangeTrack } from "./RulerRangeTrack.js";
26
+ export { RulerRangeIndicator } from "./RulerRangeIndicator.js";
27
+ export { RulerRangeHeader } from "./RulerRangeHeader.js";
28
+ export { RulerRangeHighlight } from "./RulerRangeHighlight.js";
29
+ export { RulerRangeTicks } from "./RulerRangeTicks.js";
30
+
31
+ // ── Headless Hooks & Contexts ───────────────────────────────────────────────
32
+ export { useRulerDatePicker } from "./useRulerDatePicker.js";
33
+ /** @experimental */
34
+ export { useRulerDateRangePicker } from "./useRulerDateRangePicker.js";
35
+ export { useHaptics } from './useHaptics';
36
+ export { RulerContext, useRulerContext } from "./RulerContext.js";
37
+ /** @experimental */
38
+ export { RulerRangeContext, useRulerRangeContext } from "./RulerRangeContext.js";
39
+
40
+ // ── Presets & Resolvers ───────────────────────────────────────────────────
41
+ export { DEFAULT_CALENDAR_TICKS, DEFAULT_METRIC_TICKS, DEFAULT_MINIMAL_TICKS, resolveTickRules } from "./presets.js";
42
+ export { resolveTick, matchesCondition } from "./tickResolver.js";
43
+
44
+ // ── Utilities & Constants ─────────────────────────────────────────────────
45
+ export { formatDateString, normalizeDate, dateToDayOffset, dayOffsetToDate, computeDayRange, useResolvedTheme } from "./utils.js";
46
+ export { DEFAULTS, DEFAULT_LENS_CONFIG, LIGHT_THEME, DARK_THEME, MS_PER_DAY } from "./defaults.js";
47
+
48
+ // ── Types ──────────────────────────────────────────────────────────────────
4
49
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RulerDatePicker"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,mBAAmB","ignoreList":[]}
1
+ {"version":3,"names":["RulerDatePicker","RulerDateRangePicker","Ruler","RulerRange","Tick","RulerLensTrack","RulerLensTicks","LensTick","RulerRoot","RulerTrack","RulerIndicator","RulerTicks","RulerHeader","RulerResetButton","RulerRangeRoot","RulerRangeTrack","RulerRangeIndicator","RulerRangeHeader","RulerRangeHighlight","RulerRangeTicks","useRulerDatePicker","useRulerDateRangePicker","useHaptics","RulerContext","useRulerContext","RulerRangeContext","useRulerRangeContext","DEFAULT_CALENDAR_TICKS","DEFAULT_METRIC_TICKS","DEFAULT_MINIMAL_TICKS","resolveTickRules","resolveTick","matchesCondition","formatDateString","normalizeDate","dateToDayOffset","dayOffsetToDate","computeDayRange","useResolvedTheme","DEFAULTS","DEFAULT_LENS_CONFIG","LIGHT_THEME","DARK_THEME","MS_PER_DAY"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SAASA,eAAe,QAAQ,sBAAmB;AACnD;AACA,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,KAAK,QAAQ,YAAS;AAC/B;AACA,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,IAAI,QAAQ,WAAQ;AAC7B,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,QAAQ,QAAQ,eAAY;;AAErC;AACA,SAASC,SAAS,QAA6B,gBAAa;AAC5D,SAASC,UAAU,QAA8B,iBAAc;AAC/D,SAASC,cAAc,QAAkC,qBAAkB;AAC3E,SAASC,UAAU,QAA8B,iBAAc;AAC/D,SAASC,WAAW,QAA+B,kBAAe;AAClE,SAASC,gBAAgB,QAAoC,uBAAoB;;AAEjF;AACA,SAASC,cAAc,QAAkC,qBAAkB;AAC3E,SAASC,eAAe,QAAmC,sBAAmB;AAC9E,SAASC,mBAAmB,QAAuC,0BAAuB;AAC1F,SAASC,gBAAgB,QAAoC,uBAAoB;AACjF,SAASC,mBAAmB,QAAuC,0BAAuB;AAC1F,SAASC,eAAe,QAAmC,sBAAmB;;AAE9E;AACA,SAASC,kBAAkB,QAAuC,yBAAsB;AACxF;AACA,SAASC,uBAAuB,QAA4C,8BAA2B;AACvG,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,YAAY,EAAEC,eAAe,QAAgC,mBAAgB;AACtF;AACA,SAASC,iBAAiB,EAAEC,oBAAoB,QAAqC,wBAAqB;;AAE1G;AACA,SACEC,sBAAsB,EACtBC,oBAAoB,EACpBC,qBAAqB,EACrBC,gBAAgB,QACX,cAAW;AAClB,SAASC,WAAW,EAAEC,gBAAgB,QAAQ,mBAAgB;;AAE9D;AACA,SACEC,gBAAgB,EAChBC,aAAa,EACbC,eAAe,EACfC,eAAe,EACfC,eAAe,EACfC,gBAAgB,QACX,YAAS;AAChB,SAASC,QAAQ,EAAEC,mBAAmB,EAAEC,WAAW,EAAEC,UAAU,EAAEC,UAAU,QAAQ,eAAY;;AAE/F","ignoreList":[]}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Calendar preset:
5
+ * - 1st of month: tall (30px), bold, month name + day label
6
+ * - Weekly (every 7th day): medium-tall (24px), labeled with day number
7
+ * - Weekends (Saturday & Sunday): medium (18px)
8
+ * - Base daily ticks: short (12px)
9
+ */
10
+ export const DEFAULT_CALENDAR_TICKS = [{
11
+ condition: 'monthly',
12
+ height: 30,
13
+ width: 3.5,
14
+ label: {
15
+ format: d => d.toLocaleDateString('en-US', {
16
+ month: 'short',
17
+ day: 'numeric'
18
+ }),
19
+ fontWeight: '700'
20
+ }
21
+ }, {
22
+ condition: 'weekly',
23
+ height: 24,
24
+ width: 3,
25
+ label: {
26
+ format: d => `${d.getDate()}`,
27
+ fontWeight: '600'
28
+ }
29
+ }, {
30
+ condition: {
31
+ dayOfWeek: [0, 6]
32
+ },
33
+ height: 18,
34
+ width: 2.5
35
+ }, {
36
+ // Catch-all daily fallback
37
+ condition: 'daily',
38
+ height: 12,
39
+ width: 2
40
+ }];
41
+
42
+ /**
43
+ * Metric preset:
44
+ * - Every 10th day: tall (28px), labeled
45
+ * - Every 5th day: medium (18px)
46
+ * - Daily: short (12px)
47
+ */
48
+ export const DEFAULT_METRIC_TICKS = [{
49
+ condition: {
50
+ interval: 10
51
+ },
52
+ height: 28,
53
+ width: 3.5,
54
+ label: {
55
+ format: d => `${d.getDate()}`,
56
+ fontWeight: '600'
57
+ }
58
+ }, {
59
+ condition: {
60
+ interval: 5
61
+ },
62
+ height: 18,
63
+ width: 2.5
64
+ }, {
65
+ condition: 'daily',
66
+ height: 12,
67
+ width: 2
68
+ }];
69
+
70
+ /**
71
+ * Minimal preset:
72
+ * - Weekly (7-day): tall (24px), labeled
73
+ * - Daily: short (12px)
74
+ */
75
+ export const DEFAULT_MINIMAL_TICKS = [{
76
+ condition: 'weekly',
77
+ height: 24,
78
+ width: 3,
79
+ label: {
80
+ format: d => `${d.getDate()}`
81
+ }
82
+ }, {
83
+ condition: 'daily',
84
+ height: 12,
85
+ width: 2
86
+ }];
87
+
88
+ /**
89
+ * Resolves a tick configuration prop (preset string or rule array) into an array of TickRule objects.
90
+ */
91
+ export function resolveTickRules(ticks) {
92
+ if (Array.isArray(ticks)) {
93
+ return ticks;
94
+ }
95
+ if (ticks === 'metric') {
96
+ return DEFAULT_METRIC_TICKS;
97
+ }
98
+ if (ticks === 'minimal') {
99
+ return DEFAULT_MINIMAL_TICKS;
100
+ }
101
+ return DEFAULT_CALENDAR_TICKS;
102
+ }
103
+ //# sourceMappingURL=presets.js.map