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.
- package/README.md +186 -60
- package/lib/commonjs/LensTick.js +83 -0
- package/lib/commonjs/LensTick.js.map +1 -0
- package/lib/commonjs/Ruler.js +38 -0
- package/lib/commonjs/Ruler.js.map +1 -0
- package/lib/commonjs/RulerContext.js +17 -0
- package/lib/commonjs/RulerContext.js.map +1 -0
- package/lib/commonjs/RulerDatePicker.js +38 -351
- package/lib/commonjs/RulerDatePicker.js.map +1 -1
- package/lib/commonjs/RulerDateRangePicker.js +56 -0
- package/lib/commonjs/RulerDateRangePicker.js.map +1 -0
- package/lib/commonjs/RulerHeader.js +106 -0
- package/lib/commonjs/RulerHeader.js.map +1 -0
- package/lib/commonjs/RulerIndicator.js +67 -0
- package/lib/commonjs/RulerIndicator.js.map +1 -0
- package/lib/commonjs/RulerLensTicks.js +55 -0
- package/lib/commonjs/RulerLensTicks.js.map +1 -0
- package/lib/commonjs/RulerLensTrack.js +52 -0
- package/lib/commonjs/RulerLensTrack.js.map +1 -0
- package/lib/commonjs/RulerRange.js +39 -0
- package/lib/commonjs/RulerRange.js.map +1 -0
- package/lib/commonjs/RulerRangeContext.js +17 -0
- package/lib/commonjs/RulerRangeContext.js.map +1 -0
- package/lib/commonjs/RulerRangeHeader.js +154 -0
- package/lib/commonjs/RulerRangeHeader.js.map +1 -0
- package/lib/commonjs/RulerRangeHighlight.js +50 -0
- package/lib/commonjs/RulerRangeHighlight.js.map +1 -0
- package/lib/commonjs/RulerRangeIndicator.js +71 -0
- package/lib/commonjs/RulerRangeIndicator.js.map +1 -0
- package/lib/commonjs/RulerRangeRoot.js +80 -0
- package/lib/commonjs/RulerRangeRoot.js.map +1 -0
- package/lib/commonjs/RulerRangeTicks.js +57 -0
- package/lib/commonjs/RulerRangeTicks.js.map +1 -0
- package/lib/commonjs/RulerRangeTrack.js +46 -0
- package/lib/commonjs/RulerRangeTrack.js.map +1 -0
- package/lib/commonjs/RulerResetButton.js +46 -0
- package/lib/commonjs/RulerResetButton.js.map +1 -0
- package/lib/commonjs/RulerRoot.js +87 -0
- package/lib/commonjs/RulerRoot.js.map +1 -0
- package/lib/commonjs/RulerTicks.js +51 -0
- package/lib/commonjs/RulerTicks.js.map +1 -0
- package/lib/commonjs/RulerTrack.js +46 -0
- package/lib/commonjs/RulerTrack.js.map +1 -0
- package/lib/commonjs/Tick.js +41 -36
- package/lib/commonjs/Tick.js.map +1 -1
- package/lib/commonjs/defaults.js +20 -19
- package/lib/commonjs/defaults.js.map +1 -1
- package/lib/commonjs/index.js +287 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/presets.js +108 -0
- package/lib/commonjs/presets.js.map +1 -0
- package/lib/commonjs/tickResolver.js +101 -0
- package/lib/commonjs/tickResolver.js.map +1 -0
- package/lib/commonjs/useHaptics.js +1 -1
- package/lib/commonjs/useHaptics.web.js +43 -0
- package/lib/commonjs/useHaptics.web.js.map +1 -0
- package/lib/commonjs/useRulerDatePicker.js +264 -0
- package/lib/commonjs/useRulerDatePicker.js.map +1 -0
- package/lib/commonjs/useRulerDateRangePicker.js +313 -0
- package/lib/commonjs/useRulerDateRangePicker.js.map +1 -0
- package/lib/commonjs/utils.js +61 -47
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/LensTick.js +77 -0
- package/lib/module/LensTick.js.map +1 -0
- package/lib/module/Ruler.js +35 -0
- package/lib/module/Ruler.js.map +1 -0
- package/lib/module/RulerContext.js +12 -0
- package/lib/module/RulerContext.js.map +1 -0
- package/lib/module/RulerDatePicker.js +38 -350
- package/lib/module/RulerDatePicker.js.map +1 -1
- package/lib/module/RulerDateRangePicker.js +52 -0
- package/lib/module/RulerDateRangePicker.js.map +1 -0
- package/lib/module/RulerHeader.js +101 -0
- package/lib/module/RulerHeader.js.map +1 -0
- package/lib/module/RulerIndicator.js +62 -0
- package/lib/module/RulerIndicator.js.map +1 -0
- package/lib/module/RulerLensTicks.js +50 -0
- package/lib/module/RulerLensTicks.js.map +1 -0
- package/lib/module/RulerLensTrack.js +47 -0
- package/lib/module/RulerLensTrack.js.map +1 -0
- package/lib/module/RulerRange.js +36 -0
- package/lib/module/RulerRange.js.map +1 -0
- package/lib/module/RulerRangeContext.js +12 -0
- package/lib/module/RulerRangeContext.js.map +1 -0
- package/lib/module/RulerRangeHeader.js +149 -0
- package/lib/module/RulerRangeHeader.js.map +1 -0
- package/lib/module/RulerRangeHighlight.js +45 -0
- package/lib/module/RulerRangeHighlight.js.map +1 -0
- package/lib/module/RulerRangeIndicator.js +66 -0
- package/lib/module/RulerRangeIndicator.js.map +1 -0
- package/lib/module/RulerRangeRoot.js +75 -0
- package/lib/module/RulerRangeRoot.js.map +1 -0
- package/lib/module/RulerRangeTicks.js +51 -0
- package/lib/module/RulerRangeTicks.js.map +1 -0
- package/lib/module/RulerRangeTrack.js +41 -0
- package/lib/module/RulerRangeTrack.js.map +1 -0
- package/lib/module/RulerResetButton.js +41 -0
- package/lib/module/RulerResetButton.js.map +1 -0
- package/lib/module/RulerRoot.js +82 -0
- package/lib/module/RulerRoot.js.map +1 -0
- package/lib/module/RulerTicks.js +45 -0
- package/lib/module/RulerTicks.js.map +1 -0
- package/lib/module/RulerTrack.js +41 -0
- package/lib/module/RulerTrack.js.map +1 -0
- package/lib/module/Tick.js +41 -36
- package/lib/module/Tick.js.map +1 -1
- package/lib/module/defaults.js +19 -18
- package/lib/module/defaults.js.map +1 -1
- package/lib/module/index.js +46 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/presets.js +103 -0
- package/lib/module/presets.js.map +1 -0
- package/lib/module/tickResolver.js +97 -0
- package/lib/module/tickResolver.js.map +1 -0
- package/lib/module/useHaptics.js +1 -1
- package/lib/module/useHaptics.js.map +1 -1
- package/lib/module/useHaptics.web.js +39 -0
- package/lib/module/useHaptics.web.js.map +1 -0
- package/lib/module/useRulerDatePicker.js +260 -0
- package/lib/module/useRulerDatePicker.js.map +1 -0
- package/lib/module/useRulerDateRangePicker.js +310 -0
- package/lib/module/useRulerDateRangePicker.js.map +1 -0
- package/lib/module/utils.js +59 -45
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/LensTick.d.ts +20 -0
- package/lib/typescript/LensTick.d.ts.map +1 -0
- package/lib/typescript/Ruler.d.ts +31 -0
- package/lib/typescript/Ruler.d.ts.map +1 -0
- package/lib/typescript/RulerContext.d.ts +11 -0
- package/lib/typescript/RulerContext.d.ts.map +1 -0
- package/lib/typescript/RulerDatePicker.d.ts +10 -7
- package/lib/typescript/RulerDatePicker.d.ts.map +1 -1
- package/lib/typescript/RulerDateRangePicker.d.ts +26 -0
- package/lib/typescript/RulerDateRangePicker.d.ts.map +1 -0
- package/lib/typescript/RulerHeader.d.ts +14 -0
- package/lib/typescript/RulerHeader.d.ts.map +1 -0
- package/lib/typescript/RulerIndicator.d.ts +17 -0
- package/lib/typescript/RulerIndicator.d.ts.map +1 -0
- package/lib/typescript/RulerLensTicks.d.ts +12 -0
- package/lib/typescript/RulerLensTicks.d.ts.map +1 -0
- package/lib/typescript/RulerLensTrack.d.ts +13 -0
- package/lib/typescript/RulerLensTrack.d.ts.map +1 -0
- package/lib/typescript/RulerRange.d.ts +32 -0
- package/lib/typescript/RulerRange.d.ts.map +1 -0
- package/lib/typescript/RulerRangeContext.d.ts +11 -0
- package/lib/typescript/RulerRangeContext.d.ts.map +1 -0
- package/lib/typescript/RulerRangeHeader.d.ts +12 -0
- package/lib/typescript/RulerRangeHeader.d.ts.map +1 -0
- package/lib/typescript/RulerRangeHighlight.d.ts +8 -0
- package/lib/typescript/RulerRangeHighlight.d.ts.map +1 -0
- package/lib/typescript/RulerRangeIndicator.d.ts +17 -0
- package/lib/typescript/RulerRangeIndicator.d.ts.map +1 -0
- package/lib/typescript/RulerRangeRoot.d.ts +7 -0
- package/lib/typescript/RulerRangeRoot.d.ts.map +1 -0
- package/lib/typescript/RulerRangeTicks.d.ts +14 -0
- package/lib/typescript/RulerRangeTicks.d.ts.map +1 -0
- package/lib/typescript/RulerRangeTrack.d.ts +8 -0
- package/lib/typescript/RulerRangeTrack.d.ts.map +1 -0
- package/lib/typescript/RulerResetButton.d.ts +10 -0
- package/lib/typescript/RulerResetButton.d.ts.map +1 -0
- package/lib/typescript/RulerRoot.d.ts +7 -0
- package/lib/typescript/RulerRoot.d.ts.map +1 -0
- package/lib/typescript/RulerTicks.d.ts +9 -0
- package/lib/typescript/RulerTicks.d.ts.map +1 -0
- package/lib/typescript/RulerTrack.d.ts +8 -0
- package/lib/typescript/RulerTrack.d.ts.map +1 -0
- package/lib/typescript/Tick.d.ts +3 -16
- package/lib/typescript/Tick.d.ts.map +1 -1
- package/lib/typescript/defaults.d.ts +6 -9
- package/lib/typescript/defaults.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +37 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/presets.d.ts +27 -0
- package/lib/typescript/presets.d.ts.map +1 -0
- package/lib/typescript/tickResolver.d.ts +10 -0
- package/lib/typescript/tickResolver.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +302 -85
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/useHaptics.web.d.ts +17 -0
- package/lib/typescript/useHaptics.web.d.ts.map +1 -0
- package/lib/typescript/useRulerDatePicker.d.ts +26 -0
- package/lib/typescript/useRulerDatePicker.d.ts.map +1 -0
- package/lib/typescript/useRulerDateRangePicker.d.ts +40 -0
- package/lib/typescript/useRulerDateRangePicker.d.ts.map +1 -0
- package/lib/typescript/utils.d.ts +14 -12
- package/lib/typescript/utils.d.ts.map +1 -1
- package/package.json +25 -7
- package/src/LensTick.tsx +90 -0
- package/src/Ruler.ts +32 -0
- package/src/RulerContext.tsx +20 -0
- package/src/RulerDatePicker.tsx +41 -439
- package/src/RulerDateRangePicker.tsx +53 -0
- package/src/RulerHeader.tsx +125 -0
- package/src/RulerIndicator.tsx +84 -0
- package/src/RulerLensTicks.tsx +50 -0
- package/src/RulerLensTrack.tsx +45 -0
- package/src/RulerRange.ts +33 -0
- package/src/RulerRangeContext.tsx +20 -0
- package/src/RulerRangeHeader.tsx +180 -0
- package/src/RulerRangeHighlight.tsx +47 -0
- package/src/RulerRangeIndicator.tsx +85 -0
- package/src/RulerRangeRoot.tsx +87 -0
- package/src/RulerRangeTicks.tsx +68 -0
- package/src/RulerRangeTrack.tsx +39 -0
- package/src/RulerResetButton.tsx +59 -0
- package/src/RulerRoot.tsx +93 -0
- package/src/RulerTicks.tsx +57 -0
- package/src/RulerTrack.tsx +39 -0
- package/src/Tick.tsx +60 -49
- package/src/defaults.ts +21 -19
- package/src/index.ts +83 -1
- package/src/presets.ts +108 -0
- package/src/tickResolver.ts +123 -0
- package/src/types.ts +354 -102
- package/src/useHaptics.web.ts +55 -0
- package/src/useRulerDatePicker.ts +373 -0
- package/src/useRulerDateRangePicker.ts +468 -0
- package/src/utils.ts +67 -68
- package/lib/commonjs/package.json +0 -1
- 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":[]}
|
package/lib/module/Tick.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
29
|
-
|
|
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: [
|
|
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:
|
|
43
|
-
}),
|
|
44
|
-
style: [styles.
|
|
45
|
-
backgroundColor:
|
|
46
|
-
width:
|
|
47
|
-
height:
|
|
48
|
-
borderRadius:
|
|
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:
|
|
53
|
-
width:
|
|
54
|
-
height:
|
|
55
|
-
borderRadius:
|
|
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:
|
|
72
|
+
top: 6,
|
|
73
|
+
textAlign: 'center'
|
|
68
74
|
},
|
|
69
|
-
|
|
70
|
-
position: 'absolute'
|
|
71
|
-
top: 25
|
|
75
|
+
dot: {
|
|
76
|
+
position: 'absolute'
|
|
72
77
|
}
|
|
73
78
|
});
|
|
74
79
|
//# sourceMappingURL=Tick.js.map
|
package/lib/module/Tick.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","Text","StyleSheet","jsx","_jsx","jsxs","_jsxs","Tick","memo","
|
|
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":[]}
|
package/lib/module/defaults.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
29
|
-
|
|
30
|
-
tickTallColor: '#9CA3AF',
|
|
31
|
-
labelColor: '#6B7280',
|
|
32
|
-
accentColor: '#3B82F6',
|
|
29
|
+
export const LIGHT_THEME = {
|
|
30
|
+
background: 'transparent',
|
|
33
31
|
indicatorColor: '#3B82F6',
|
|
34
|
-
|
|
32
|
+
accentColor: '#3B82F6',
|
|
33
|
+
labelColor: '#6B7280',
|
|
34
|
+
defaultTickColor: '#D1D5DB',
|
|
35
|
+
rangeHighlightColor: 'rgba(59, 130, 246, 0.15)'
|
|
35
36
|
};
|
|
36
|
-
export const
|
|
37
|
-
|
|
38
|
-
tickTallColor: '#6B7280',
|
|
39
|
-
labelColor: '#9CA3AF',
|
|
40
|
-
accentColor: '#60A5FA',
|
|
37
|
+
export const DARK_THEME = {
|
|
38
|
+
background: 'transparent',
|
|
41
39
|
indicatorColor: '#60A5FA',
|
|
42
|
-
|
|
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","
|
|
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":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,4 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
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
|
package/lib/module/index.js.map
CHANGED
|
@@ -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
|