@cdx-ui/primitives 0.2.0 → 0.2.2
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/lib/commonjs/calendar/CalendarRoot.js +3 -1
- package/lib/commonjs/calendar/CalendarRoot.js.map +1 -1
- package/lib/commonjs/calendar/context.js.map +1 -1
- package/lib/commonjs/date-field/DateFieldRoot.js +5 -1
- package/lib/commonjs/date-field/DateFieldRoot.js.map +1 -1
- package/lib/commonjs/date-field/DateFieldSegment.js +7 -1
- package/lib/commonjs/date-field/DateFieldSegment.js.map +1 -1
- package/lib/commonjs/date-field/context.js.map +1 -1
- package/lib/commonjs/date-picker/DatePickerRoot.js +59 -13
- package/lib/commonjs/date-picker/DatePickerRoot.js.map +1 -1
- package/lib/commonjs/date-picker/context.js.map +1 -1
- package/lib/module/calendar/CalendarRoot.js +3 -1
- package/lib/module/calendar/CalendarRoot.js.map +1 -1
- package/lib/module/calendar/context.js.map +1 -1
- package/lib/module/date-field/DateFieldRoot.js +6 -2
- package/lib/module/date-field/DateFieldRoot.js.map +1 -1
- package/lib/module/date-field/DateFieldSegment.js +7 -1
- package/lib/module/date-field/DateFieldSegment.js.map +1 -1
- package/lib/module/date-field/context.js.map +1 -1
- package/lib/module/date-picker/DatePickerRoot.js +62 -16
- package/lib/module/date-picker/DatePickerRoot.js.map +1 -1
- package/lib/module/date-picker/context.js.map +1 -1
- package/lib/typescript/calendar/CalendarRoot.d.ts.map +1 -1
- package/lib/typescript/calendar/context.d.ts +1 -0
- package/lib/typescript/calendar/context.d.ts.map +1 -1
- package/lib/typescript/calendar/types.d.ts +7 -0
- package/lib/typescript/calendar/types.d.ts.map +1 -1
- package/lib/typescript/date-field/DateFieldRoot.d.ts.map +1 -1
- package/lib/typescript/date-field/DateFieldSegment.d.ts.map +1 -1
- package/lib/typescript/date-field/context.d.ts +2 -0
- package/lib/typescript/date-field/context.d.ts.map +1 -1
- package/lib/typescript/date-picker/DatePickerRoot.d.ts +29 -3
- package/lib/typescript/date-picker/DatePickerRoot.d.ts.map +1 -1
- package/lib/typescript/date-picker/context.d.ts +1 -0
- package/lib/typescript/date-picker/context.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/calendar/CalendarRoot.tsx +3 -0
- package/src/calendar/context.tsx +1 -0
- package/src/calendar/types.ts +7 -0
- package/src/date-field/DateFieldRoot.tsx +4 -1
- package/src/date-field/DateFieldSegment.tsx +19 -3
- package/src/date-field/context.tsx +2 -0
- package/src/date-picker/DatePickerRoot.tsx +127 -18
- package/src/date-picker/context.tsx +1 -0
|
@@ -24,6 +24,7 @@ const CalendarRoot = exports.CalendarRoot = /*#__PURE__*/(0, _react.forwardRef)(
|
|
|
24
24
|
onMonthIdChange,
|
|
25
25
|
minValue,
|
|
26
26
|
maxValue,
|
|
27
|
+
isDateUnavailable,
|
|
27
28
|
disabled = false,
|
|
28
29
|
locale = 'en-US',
|
|
29
30
|
labels: labelsProp,
|
|
@@ -70,12 +71,13 @@ const CalendarRoot = exports.CalendarRoot = /*#__PURE__*/(0, _react.forwardRef)(
|
|
|
70
71
|
onMonthIdChange: setMonthId,
|
|
71
72
|
minValue,
|
|
72
73
|
maxValue,
|
|
74
|
+
isDateUnavailable,
|
|
73
75
|
disabled,
|
|
74
76
|
locale,
|
|
75
77
|
labels,
|
|
76
78
|
view,
|
|
77
79
|
setView
|
|
78
|
-
}), [value, setValue, monthId, setMonthId, minValue, maxValue, disabled, locale, labels, view, setView]);
|
|
80
|
+
}), [value, setValue, monthId, setMonthId, minValue, maxValue, isDateUnavailable, disabled, locale, labels, view, setView]);
|
|
79
81
|
const Comp = asChild ? _slot.Slot : _reactNative.View;
|
|
80
82
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.CalendarContext.Provider, {
|
|
81
83
|
value: contextValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_formatters","_utils","_slot","_accessibleLabel","_dataAttributes","_context","_jsxRuntime","CalendarRoot","exports","forwardRef","asChild","children","value","valueProp","defaultValue","onValueChange","monthId","monthIdProp","defaultMonthId","onMonthIdChange","minValue","maxValue","disabled","locale","labels","labelsProp","accessibilityLabel","accessibilityLabelProp","ariaLabelProp","props","ref","useMemo","resolveDateComponentLabels","resolveAccessibleLabel","setValue","useControllableState","prop","defaultProp","onChange","setMonthId","toMonthId","todayMonthId","prevValueRef","useRef","useEffect","undefined","current","view","setViewState","useState","setView","useCallback","next","contextValue","Comp","Slot","View","jsx","CalendarContext","Provider","accessibilityRole","mergeDataAttributes","dataAttributes","accessibleLabelAttributes","displayName"],"sourceRoot":"../../../src","sources":["calendar/CalendarRoot.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAUA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAOA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AAA+D,IAAAQ,WAAA,GAAAR,OAAA;AASxD,MAAMS,YAAY,GAAAC,OAAA,CAAAD,YAAA,gBAAG,IAAAE,iBAAU,EACpC,CACE;EACEC,OAAO;EACPC,QAAQ;EACRC,KAAK,EAAEC,SAAS;EAChBC,YAAY;EACZC,aAAa;EACbC,OAAO,EAAEC,WAAW;EACpBC,cAAc;EACdC,eAAe;EACfC,QAAQ;EACRC,QAAQ;EACRC,QAAQ,GAAG,KAAK;EAChBC,MAAM,GAAG,OAAO;EAChBC,MAAM,EAAEC,UAAU;EAClBC,kBAAkB,EAAEC,sBAAsB;EAC1C,YAAY,EAAEC,aAAa;EAC3B,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAMN,MAAM,GAAG,IAAAO,cAAO,EAAC,MAAM,IAAAC,sCAA0B,EAACP,UAAU,CAAC,EAAE,CAACA,UAAU,CAAC,CAAC;EAClF,MAAMC,kBAAkB,GAAG,IAAAO,uCAAsB,EAAC;IAChDP,kBAAkB,EAAEC,sBAAsB;IAC1C,YAAY,EAAEC;EAChB,CAAC,CAAC;EACF,MAAM,
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_formatters","_utils","_slot","_accessibleLabel","_dataAttributes","_context","_jsxRuntime","CalendarRoot","exports","forwardRef","asChild","children","value","valueProp","defaultValue","onValueChange","monthId","monthIdProp","defaultMonthId","onMonthIdChange","minValue","maxValue","isDateUnavailable","disabled","locale","labels","labelsProp","accessibilityLabel","accessibilityLabelProp","ariaLabelProp","props","ref","useMemo","resolveDateComponentLabels","resolveAccessibleLabel","setValue","useControllableState","prop","defaultProp","onChange","setMonthId","toMonthId","todayMonthId","prevValueRef","useRef","useEffect","undefined","current","view","setViewState","useState","setView","useCallback","next","contextValue","Comp","Slot","View","jsx","CalendarContext","Provider","accessibilityRole","mergeDataAttributes","dataAttributes","accessibleLabelAttributes","displayName"],"sourceRoot":"../../../src","sources":["calendar/CalendarRoot.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAUA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAOA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AAA+D,IAAAQ,WAAA,GAAAR,OAAA;AASxD,MAAMS,YAAY,GAAAC,OAAA,CAAAD,YAAA,gBAAG,IAAAE,iBAAU,EACpC,CACE;EACEC,OAAO;EACPC,QAAQ;EACRC,KAAK,EAAEC,SAAS;EAChBC,YAAY;EACZC,aAAa;EACbC,OAAO,EAAEC,WAAW;EACpBC,cAAc;EACdC,eAAe;EACfC,QAAQ;EACRC,QAAQ;EACRC,iBAAiB;EACjBC,QAAQ,GAAG,KAAK;EAChBC,MAAM,GAAG,OAAO;EAChBC,MAAM,EAAEC,UAAU;EAClBC,kBAAkB,EAAEC,sBAAsB;EAC1C,YAAY,EAAEC,aAAa;EAC3B,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAMN,MAAM,GAAG,IAAAO,cAAO,EAAC,MAAM,IAAAC,sCAA0B,EAACP,UAAU,CAAC,EAAE,CAACA,UAAU,CAAC,CAAC;EAClF,MAAMC,kBAAkB,GAAG,IAAAO,uCAAsB,EAAC;IAChDP,kBAAkB,EAAEC,sBAAsB;IAC1C,YAAY,EAAEC;EAChB,CAAC,CAAC;EACF,MAAM,CAACjB,KAAK,EAAEuB,QAAQ,CAAC,GAAG,IAAAC,2BAAoB,EAAqB;IACjEC,IAAI,EAAExB,SAAS;IACfyB,WAAW,EAAExB,YAAY;IACzByB,QAAQ,EAAExB;EACZ,CAAC,CAAC;EAEF,MAAM,CAACC,OAAO,EAAEwB,UAAU,CAAC,GAAG,IAAAJ,2BAAoB,EAAU;IAC1DC,IAAI,EAAEpB,WAAW;IACjBqB,WAAW,EAAEpB,cAAc,KAAKN,KAAK,GAAG,IAAA6B,qBAAS,EAAC7B,KAAK,CAAC,GAAG,IAAA8B,wBAAY,EAAC,CAAC,CAAC;IAC1EH,QAAQ,EAAEpB;EACZ,CAAC,CAAC;EAEF,MAAMwB,YAAY,GAAG,IAAAC,aAAM,EAAChC,KAAK,CAAC;EAClC,IAAAiC,gBAAS,EAAC,MAAM;IACd,IAAI5B,WAAW,KAAK6B,SAAS,EAAE;MAC7BH,YAAY,CAACI,OAAO,GAAGnC,KAAK;MAC5B;IACF;IACA,IAAIA,KAAK,KAAKkC,SAAS,IAAIH,YAAY,CAACI,OAAO,KAAKnC,KAAK,EAAE;MACzD+B,YAAY,CAACI,OAAO,GAAGnC,KAAK;MAC5B;IACF;IACA+B,YAAY,CAACI,OAAO,GAAGnC,KAAK;IAC5B4B,UAAU,CAAC,IAAAC,qBAAS,EAAC7B,KAAK,CAAC,CAAC;EAC9B,CAAC,EAAE,CAACK,WAAW,EAAEuB,UAAU,EAAE5B,KAAK,CAAC,CAAC;EAEpC,MAAM,CAACoC,IAAI,EAAEC,YAAY,CAAC,GAAG,IAAAC,eAAQ,EAAe,OAAO,CAAC;EAE5D,MAAMC,OAAO,GAAG,IAAAC,kBAAW,EAAEC,IAAkB,IAAK;IAClDJ,YAAY,CAACI,IAAI,CAAC;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,YAAY,GAAG,IAAAtB,cAAO,EAC1B,OAAO;IACLpB,KAAK;IACLG,aAAa,EAAEoB,QAAQ;IACvBnB,OAAO,EAAEA,OAAO,IAAI,IAAA0B,wBAAY,EAAC,CAAC;IAClCvB,eAAe,EAAEqB,UAAU;IAC3BpB,QAAQ;IACRC,QAAQ;IACRC,iBAAiB;IACjBC,QAAQ;IACRC,MAAM;IACNC,MAAM;IACNuB,IAAI;IACJG;EACF,CAAC,CAAC,EACF,CACEvC,KAAK,EACLuB,QAAQ,EACRnB,OAAO,EACPwB,UAAU,EACVpB,QAAQ,EACRC,QAAQ,EACRC,iBAAiB,EACjBC,QAAQ,EACRC,MAAM,EACNC,MAAM,EACNuB,IAAI,EACJG,OAAO,CAEX,CAAC;EAED,MAAMI,IAAI,GAAG7C,OAAO,GAAG8C,UAAI,GAAGC,iBAAI;EAElC,oBACE,IAAAnD,WAAA,CAAAoD,GAAA,EAACrD,QAAA,CAAAsD,eAAe,CAACC,QAAQ;IAAChD,KAAK,EAAE0C,YAAa;IAAA3C,QAAA,eAC5C,IAAAL,WAAA,CAAAoD,GAAA,EAACH,IAAI;MACHxB,GAAG,EAAEA,GAAI;MACT8B,iBAAiB,EAAC,MAAM;MAAA,GACpB/B,KAAK;MAAA,GACL,IAAAgC,mCAAmB,EAAChC,KAAK,EAAE,IAAAiC,8BAAc,EAAC;QAAExC;MAAS,CAAC,CAAC,CAAC;MAAA,GACxD,IAAAyC,0CAAyB,EAACrC,kBAAkB,CAAC;MAAAhB,QAAA,EAEhDA;IAAQ,CACL;EAAC,CACiB,CAAC;AAE/B,CACF,CAAC;AAEDJ,YAAY,CAAC0D,WAAW,GAAG,cAAc","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","CalendarContext","exports","createContext","useCalendarContext","ctx","useContext","Error"],"sourceRoot":"../../../src","sources":["calendar/context.tsx"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_react","require","CalendarContext","exports","createContext","useCalendarContext","ctx","useContext","Error"],"sourceRoot":"../../../src","sources":["calendar/context.tsx"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAoBO,MAAMC,eAAe,GAAAC,OAAA,CAAAD,eAAA,gBAAG,IAAAE,oBAAa,EAA8B,IAAI,CAAC;AAExE,SAASC,kBAAkBA,CAAA,EAAyB;EACzD,MAAMC,GAAG,GAAG,IAAAC,iBAAU,EAACL,eAAe,CAAC;EACvC,IAAI,CAACI,GAAG,EAAE;IACR,MAAM,IAAIE,KAAK,CAAC,+DAA+D,CAAC;EAClF;EACA,OAAOF,GAAG;AACZ","ignoreList":[]}
|
|
@@ -34,6 +34,9 @@ const DateFieldRoot = exports.DateFieldRoot = /*#__PURE__*/(0, _react.forwardRef
|
|
|
34
34
|
isInvalid,
|
|
35
35
|
isRequired
|
|
36
36
|
});
|
|
37
|
+
const {
|
|
38
|
+
errorMessage
|
|
39
|
+
} = (0, _utils.useFormControlContext)();
|
|
37
40
|
const [value, setValue] = (0, _utils.useControllableState)({
|
|
38
41
|
prop: valueProp,
|
|
39
42
|
defaultProp: defaultValue,
|
|
@@ -64,8 +67,9 @@ const DateFieldRoot = exports.DateFieldRoot = /*#__PURE__*/(0, _react.forwardRef
|
|
|
64
67
|
disabled: !!formControl.disabled,
|
|
65
68
|
readOnly: !!formControl.readOnly,
|
|
66
69
|
invalid: !!formControl['aria-invalid'],
|
|
70
|
+
errorMessage,
|
|
67
71
|
...segmentState
|
|
68
|
-
}), [value, setValue, mode, locale, labels, segments, formControl.disabled, formControl.readOnly, formControl['aria-invalid'], segmentState]);
|
|
72
|
+
}), [value, setValue, mode, locale, labels, segments, formControl.disabled, formControl.readOnly, formControl['aria-invalid'], errorMessage, segmentState]);
|
|
69
73
|
const Comp = asChild ? _slot.Slot : _reactNative.View;
|
|
70
74
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.DateFieldContext.Provider, {
|
|
71
75
|
value: contextValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_formatters","_utils","_slot","_dataAttributes","_context","_useDateFieldSegmentState","_jsxRuntime","DateFieldRoot","exports","forwardRef","asChild","children","value","valueProp","defaultValue","onValueChange","mode","locale","labels","labelsProp","isDisabled","isReadOnly","isInvalid","isRequired","props","ref","formControl","useFormControl","setValue","useControllableState","prop","defaultProp","onChange","next","useMemo","resolveDateComponentLabels","segments","getDateFieldSegments","segmentState","useDateFieldSegmentState","disabled","readOnly","contextValue","invalid","Comp","Slot","View","jsx","DateFieldContext","Provider","mergeDataAttributes","dataAttributes","readonly","displayName"],"sourceRoot":"../../../src","sources":["date-field/DateFieldRoot.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAEA,IAAAO,yBAAA,GAAAP,OAAA;AAAsE,IAAAQ,WAAA,GAAAR,OAAA;AAQ/D,MAAMS,aAAa,GAAAC,OAAA,CAAAD,aAAA,gBAAG,IAAAE,iBAAU,EACrC,CACE;EACEC,OAAO;EACPC,QAAQ;EACRC,KAAK,EAAEC,SAAS;EAChBC,YAAY;EACZC,aAAa;EACbC,IAAI,GAAG,MAAM;EACbC,MAAM,GAAG,OAAO;EAChBC,MAAM,EAAEC,UAAU;EAClBC,UAAU;EACVC,UAAU;EACVC,SAAS;EACTC,UAAU;EACV,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAMC,WAAW,GAAG,IAAAC,qBAAc,EAAC;IACjCP,UAAU;IACVC,UAAU;IACVC,SAAS;IACTC;EACF,CAAC,CAAC;
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_formatters","_utils","_slot","_dataAttributes","_context","_useDateFieldSegmentState","_jsxRuntime","DateFieldRoot","exports","forwardRef","asChild","children","value","valueProp","defaultValue","onValueChange","mode","locale","labels","labelsProp","isDisabled","isReadOnly","isInvalid","isRequired","props","ref","formControl","useFormControl","errorMessage","useFormControlContext","setValue","useControllableState","prop","defaultProp","onChange","next","useMemo","resolveDateComponentLabels","segments","getDateFieldSegments","segmentState","useDateFieldSegmentState","disabled","readOnly","contextValue","invalid","Comp","Slot","View","jsx","DateFieldContext","Provider","mergeDataAttributes","dataAttributes","readonly","displayName"],"sourceRoot":"../../../src","sources":["date-field/DateFieldRoot.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -24,6 +24,8 @@ const DateFieldSegment = exports.DateFieldSegment = /*#__PURE__*/(0, _react.forw
|
|
|
24
24
|
const {
|
|
25
25
|
disabled,
|
|
26
26
|
readOnly,
|
|
27
|
+
invalid,
|
|
28
|
+
errorMessage,
|
|
27
29
|
focusedSegmentIndex,
|
|
28
30
|
focusSegment,
|
|
29
31
|
getSegmentDisplayText,
|
|
@@ -50,13 +52,17 @@ const DateFieldSegment = exports.DateFieldSegment = /*#__PURE__*/(0, _react.forw
|
|
|
50
52
|
placeholder: segment.text === displayText && !segment.value
|
|
51
53
|
}));
|
|
52
54
|
if (segment.isEditable && !asChild) {
|
|
55
|
+
// `aria-invalid` only reaches web screen readers; native ones need it in the name and hint.
|
|
56
|
+
const announceInvalid = invalid && _reactNative.Platform.OS !== 'web';
|
|
53
57
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
54
58
|
accessibilityRole: "spinbutton",
|
|
55
|
-
accessibilityLabel: (0, _formatters.getDateSegmentAccessibilityLabel)(segment.type, labels),
|
|
59
|
+
accessibilityLabel: (0, _formatters.getDateSegmentAccessibilityLabel)(segment.type, labels, announceInvalid),
|
|
60
|
+
accessibilityHint: announceInvalid ? errorMessage : undefined,
|
|
56
61
|
accessibilityState: {
|
|
57
62
|
disabled,
|
|
58
63
|
selected: isFocused
|
|
59
64
|
},
|
|
65
|
+
"aria-invalid": invalid || undefined,
|
|
60
66
|
disabled: disabled || readOnly,
|
|
61
67
|
onPress: handlePress,
|
|
62
68
|
onPressIn: preventWebFocusSteal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_formatters","_slot","_dataAttributes","_context","_segmentIndex","_jsxRuntime","DateFieldSegment","exports","forwardRef","asChild","segment","segmentIndex","segmentIndexProp","style","props","ref","contextSegmentIndex","useDateFieldSegmentIndex","disabled","readOnly","focusedSegmentIndex","focusSegment","getSegmentDisplayText","labels","useDateFieldContext","isFocused","displayText","handlePress","useCallback","preventWebFocusSteal","event","Platform","OS","maybeDom","preventDefault","dataProps","mergeDataAttributes","dataAttributes","slot","focus","placeholder","text","value","isEditable","jsx","Pressable","accessibilityRole","accessibilityLabel","getDateSegmentAccessibilityLabel","type","accessibilityState","selected","onPress","onPressIn","zIndex","onMouseDown","e","children","Text","Comp","Slot","importantForAccessibility","displayName"],"sourceRoot":"../../../src","sources":["date-field/DateFieldSegment.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAOA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AAA0D,IAAAO,WAAA,GAAAP,OAAA;AASnD,MAAMQ,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,gBAAG,IAAAE,iBAAU,EACxC,CAAC;EAAEC,OAAO;EAAEC,OAAO;EAAEC,YAAY,EAAEC,gBAAgB;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC9E,MAAMC,mBAAmB,GAAG,IAAAC,sCAAwB,EAAC,CAAC;EACtD,MAAMN,YAAY,GAAGC,gBAAgB,IAAII,mBAAmB;EAC5D,MAAM;
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_formatters","_slot","_dataAttributes","_context","_segmentIndex","_jsxRuntime","DateFieldSegment","exports","forwardRef","asChild","segment","segmentIndex","segmentIndexProp","style","props","ref","contextSegmentIndex","useDateFieldSegmentIndex","disabled","readOnly","invalid","errorMessage","focusedSegmentIndex","focusSegment","getSegmentDisplayText","labels","useDateFieldContext","isFocused","displayText","handlePress","useCallback","preventWebFocusSteal","event","Platform","OS","maybeDom","preventDefault","dataProps","mergeDataAttributes","dataAttributes","slot","focus","placeholder","text","value","isEditable","announceInvalid","jsx","Pressable","accessibilityRole","accessibilityLabel","getDateSegmentAccessibilityLabel","type","accessibilityHint","undefined","accessibilityState","selected","onPress","onPressIn","zIndex","onMouseDown","e","children","Text","Comp","Slot","importantForAccessibility","displayName"],"sourceRoot":"../../../src","sources":["date-field/DateFieldSegment.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","DateFieldContext","exports","createContext","useDateFieldContext","ctx","useContext","Error"],"sourceRoot":"../../../src","sources":["date-field/context.tsx"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AASA;;
|
|
1
|
+
{"version":3,"names":["_react","require","DateFieldContext","exports","createContext","useDateFieldContext","ctx","useContext","Error"],"sourceRoot":"../../../src","sources":["date-field/context.tsx"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AASA;;AAgCO,MAAMC,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,gBAAG,IAAAE,oBAAa,EAA+B,IAAI,CAAC;AAE1E,SAASC,mBAAmBA,CAAA,EAA0B;EAC3D,MAAMC,GAAG,GAAG,IAAAC,iBAAU,EAACL,gBAAgB,CAAC;EACxC,IAAI,CAACI,GAAG,EAAE;IACR,MAAM,IAAIE,KAAK,CAAC,iEAAiE,CAAC;EACpF;EACA,OAAOF,GAAG;AACZ","ignoreList":[]}
|
|
@@ -28,6 +28,8 @@ const DatePickerRoot = exports.DatePickerRoot = /*#__PURE__*/(0, _react.forwardR
|
|
|
28
28
|
isRequired,
|
|
29
29
|
minValue,
|
|
30
30
|
maxValue,
|
|
31
|
+
isDateUnavailable,
|
|
32
|
+
onValidationChange,
|
|
31
33
|
locale = 'en-US',
|
|
32
34
|
labels: labelsProp,
|
|
33
35
|
...props
|
|
@@ -49,6 +51,45 @@ const DatePickerRoot = exports.DatePickerRoot = /*#__PURE__*/(0, _react.forwardR
|
|
|
49
51
|
prop: undefined,
|
|
50
52
|
defaultProp: value
|
|
51
53
|
});
|
|
54
|
+
const validationReason = (0, _react.useMemo)(() => value === undefined ? undefined : (0, _formatters.getDateValidationReason)(value, {
|
|
55
|
+
minValue,
|
|
56
|
+
maxValue,
|
|
57
|
+
isDateUnavailable
|
|
58
|
+
}), [isDateUnavailable, maxValue, minValue, value]);
|
|
59
|
+
const resolvedInvalid = !!isInvalid || validationReason !== undefined;
|
|
60
|
+
const validationMessage = (0, _react.useMemo)(() => validationReason === undefined ? undefined : (0, _formatters.formatDateValidationMessage)(labels, validationReason, {
|
|
61
|
+
minValue,
|
|
62
|
+
maxValue
|
|
63
|
+
}, {
|
|
64
|
+
locale
|
|
65
|
+
}), [labels, locale, maxValue, minValue, validationReason]);
|
|
66
|
+
const onValidationChangeRef = (0, _react.useRef)(onValidationChange);
|
|
67
|
+
onValidationChangeRef.current = onValidationChange;
|
|
68
|
+
const reportedValidationRef = (0, _react.useRef)({
|
|
69
|
+
reason: undefined,
|
|
70
|
+
message: undefined
|
|
71
|
+
});
|
|
72
|
+
(0, _react.useLayoutEffect)(() => {
|
|
73
|
+
const reported = reportedValidationRef.current;
|
|
74
|
+
if (reported.reason === validationReason && reported.message === validationMessage) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
reportedValidationRef.current = {
|
|
78
|
+
reason: validationReason,
|
|
79
|
+
message: validationMessage
|
|
80
|
+
};
|
|
81
|
+
onValidationChangeRef.current?.(validationReason, validationMessage);
|
|
82
|
+
}, [validationMessage, validationReason]);
|
|
83
|
+
const reportsToField = (0, _utils.useReportFormControlValidation)(resolvedInvalid, validationMessage);
|
|
84
|
+
|
|
85
|
+
// Without an enclosing `Field` there is nothing to report to, so provide the picker's
|
|
86
|
+
// validation to its own children (`Field.Error`, `Field.Helper`, the input group).
|
|
87
|
+
const parentFormControl = (0, _utils.useFormControlContext)();
|
|
88
|
+
const standaloneFormControl = (0, _react.useMemo)(() => reportsToField ? undefined : {
|
|
89
|
+
...parentFormControl,
|
|
90
|
+
isInvalid: !!parentFormControl.isInvalid || resolvedInvalid,
|
|
91
|
+
errorMessage: validationMessage
|
|
92
|
+
}, [parentFormControl, reportsToField, resolvedInvalid, validationMessage]);
|
|
52
93
|
const surfacesRef = (0, _react.useRef)(new Set());
|
|
53
94
|
const anchorRef = (0, _react.useRef)(null);
|
|
54
95
|
const triggerRef = (0, _react.useRef)(null);
|
|
@@ -88,13 +129,26 @@ const DatePickerRoot = exports.DatePickerRoot = /*#__PURE__*/(0, _react.forwardR
|
|
|
88
129
|
disabled,
|
|
89
130
|
minValue,
|
|
90
131
|
maxValue,
|
|
132
|
+
isDateUnavailable,
|
|
91
133
|
locale,
|
|
92
134
|
labels,
|
|
93
135
|
registerSurface,
|
|
94
136
|
anchorRef,
|
|
95
137
|
triggerRef
|
|
96
|
-
}), [value, setValue, draftValue, setDraftValue, open, setOpen, disabled, minValue, maxValue, locale, labels, registerSurface]);
|
|
138
|
+
}), [value, setValue, draftValue, setDraftValue, open, setOpen, disabled, minValue, maxValue, isDateUnavailable, locale, labels, registerSurface]);
|
|
97
139
|
const Comp = asChild ? _slot.Slot : _reactNative.View;
|
|
140
|
+
const field = /*#__PURE__*/(0, _jsxRuntime.jsx)(_DateFieldRoot.DateFieldRoot, {
|
|
141
|
+
value: value,
|
|
142
|
+
onValueChange: next => setValue(next),
|
|
143
|
+
mode: "date",
|
|
144
|
+
locale: locale,
|
|
145
|
+
labels: labelsProp,
|
|
146
|
+
isDisabled: disabled,
|
|
147
|
+
isReadOnly: isReadOnly,
|
|
148
|
+
isInvalid: resolvedInvalid,
|
|
149
|
+
isRequired: isRequired,
|
|
150
|
+
children: children
|
|
151
|
+
});
|
|
98
152
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.DatePickerContext.Provider, {
|
|
99
153
|
value: contextValue,
|
|
100
154
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Comp, {
|
|
@@ -104,18 +158,10 @@ const DatePickerRoot = exports.DatePickerRoot = /*#__PURE__*/(0, _react.forwardR
|
|
|
104
158
|
disabled,
|
|
105
159
|
open
|
|
106
160
|
})),
|
|
107
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
108
|
-
value:
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
locale: locale,
|
|
112
|
-
labels: labelsProp,
|
|
113
|
-
isDisabled: disabled,
|
|
114
|
-
isReadOnly: isReadOnly,
|
|
115
|
-
isInvalid: isInvalid,
|
|
116
|
-
isRequired: isRequired,
|
|
117
|
-
children: children
|
|
118
|
-
})
|
|
161
|
+
children: standaloneFormControl ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_utils.FormControlContext.Provider, {
|
|
162
|
+
value: standaloneFormControl,
|
|
163
|
+
children: field
|
|
164
|
+
}) : field
|
|
119
165
|
})
|
|
120
166
|
});
|
|
121
167
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_formatters","_utils","_DateFieldRoot","_slot","_dataAttributes","_context","_jsxRuntime","DatePickerRoot","exports","forwardRef","asChild","children","value","valueProp","defaultValue","onValueChange","isOpen","openProp","defaultOpen","onOpenChange","isDisabled","disabled","isReadOnly","isInvalid","isRequired","minValue","maxValue","locale","labels","labelsProp","props","ref","useMemo","resolveDateComponentLabels","setValue","useControllableState","prop","defaultProp","onChange","next","open","setOpenState","draftValue","setDraftValue","undefined","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_formatters","_utils","_DateFieldRoot","_slot","_dataAttributes","_context","_jsxRuntime","DatePickerRoot","exports","forwardRef","asChild","children","value","valueProp","defaultValue","onValueChange","isOpen","openProp","defaultOpen","onOpenChange","isDisabled","disabled","isReadOnly","isInvalid","isRequired","minValue","maxValue","isDateUnavailable","onValidationChange","locale","labels","labelsProp","props","ref","useMemo","resolveDateComponentLabels","setValue","useControllableState","prop","defaultProp","onChange","next","open","setOpenState","draftValue","setDraftValue","undefined","validationReason","getDateValidationReason","resolvedInvalid","validationMessage","formatDateValidationMessage","onValidationChangeRef","useRef","current","reportedValidationRef","reason","message","useLayoutEffect","reported","reportsToField","useReportFormControlValidation","parentFormControl","useFormControlContext","standaloneFormControl","errorMessage","surfacesRef","Set","anchorRef","triggerRef","setOpen","useCallback","registerSurface","type","has","add","size","console","warn","useEffect","clear","contextValue","Comp","Slot","View","field","jsx","DateFieldRoot","mode","DatePickerContext","Provider","mergeRefs","mergeDataAttributes","dataAttributes","FormControlContext","displayName"],"sourceRoot":"../../../src","sources":["date-picker/DatePickerRoot.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAUA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAQA,IAAAG,MAAA,GAAAH,OAAA;AAOA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AAAsE,IAAAQ,WAAA,GAAAR,OAAA;AAuD/D,MAAMS,cAAc,GAAAC,OAAA,CAAAD,cAAA,gBAAG,IAAAE,iBAAU,EACtC,CACE;EACEC,OAAO;EACPC,QAAQ;EACRC,KAAK,EAAEC,SAAS;EAChBC,YAAY;EACZC,aAAa;EACbC,MAAM,EAAEC,QAAQ;EAChBC,WAAW,GAAG,KAAK;EACnBC,YAAY;EACZC,UAAU,EAAEC,QAAQ,GAAG,KAAK;EAC5BC,UAAU;EACVC,SAAS;EACTC,UAAU;EACVC,QAAQ;EACRC,QAAQ;EACRC,iBAAiB;EACjBC,kBAAkB;EAClBC,MAAM,GAAG,OAAO;EAChBC,MAAM,EAAEC,UAAU;EAClB,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAMH,MAAM,GAAG,IAAAI,cAAO,EAAC,MAAM,IAAAC,sCAA0B,EAACJ,UAAU,CAAC,EAAE,CAACA,UAAU,CAAC,CAAC;EAClF,MAAM,CAACnB,KAAK,EAAEwB,QAAQ,CAAC,GAAG,IAAAC,2BAAoB,EAAqB;IACjEC,IAAI,EAAEzB,SAAS;IACf0B,WAAW,EAAEzB,YAAY;IACzB0B,QAAQ,EAAGC,IAAI,IAAK;MAClB1B,aAAa,GAAG0B,IAAI,CAAC;IACvB;EACF,CAAC,CAAC;EAEF,MAAM,CAACC,IAAI,EAAEC,YAAY,CAAC,GAAG,IAAAN,2BAAoB,EAAU;IACzDC,IAAI,EAAErB,QAAQ;IACdsB,WAAW,EAAErB,WAAW;IACxBsB,QAAQ,EAAErB;EACZ,CAAC,CAAC;EAEF,MAAM,CAACyB,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAR,2BAAoB,EAAqB;IAC3EC,IAAI,EAAEQ,SAAS;IACfP,WAAW,EAAE3B;EACf,CAAC,CAAC;EAEF,MAAMmC,gBAAgB,GAAG,IAAAb,cAAO,EAC9B,MACEtB,KAAK,KAAKkC,SAAS,GACfA,SAAS,GACT,IAAAE,mCAAuB,EAACpC,KAAK,EAAE;IAAEa,QAAQ;IAAEC,QAAQ;IAAEC;EAAkB,CAAC,CAAC,EAC/E,CAACA,iBAAiB,EAAED,QAAQ,EAAED,QAAQ,EAAEb,KAAK,CAC/C,CAAC;EACD,MAAMqC,eAAe,GAAG,CAAC,CAAC1B,SAAS,IAAIwB,gBAAgB,KAAKD,SAAS;EACrE,MAAMI,iBAAiB,GAAG,IAAAhB,cAAO,EAC/B,MACEa,gBAAgB,KAAKD,SAAS,GAC1BA,SAAS,GACT,IAAAK,uCAA2B,EACzBrB,MAAM,EACNiB,gBAAgB,EAChB;IAAEtB,QAAQ;IAAEC;EAAS,CAAC,EACtB;IAAEG;EAAO,CACX,CAAC,EACP,CAACC,MAAM,EAAED,MAAM,EAAEH,QAAQ,EAAED,QAAQ,EAAEsB,gBAAgB,CACvD,CAAC;EAED,MAAMK,qBAAqB,GAAG,IAAAC,aAAM,EAACzB,kBAAkB,CAAC;EACxDwB,qBAAqB,CAACE,OAAO,GAAG1B,kBAAkB;EAClD,MAAM2B,qBAAqB,GAAG,IAAAF,aAAM,EAGjC;IAAEG,MAAM,EAAEV,SAAS;IAAEW,OAAO,EAAEX;EAAU,CAAC,CAAC;EAC7C,IAAAY,sBAAe,EAAC,MAAM;IACpB,MAAMC,QAAQ,GAAGJ,qBAAqB,CAACD,OAAO;IAC9C,IAAIK,QAAQ,CAACH,MAAM,KAAKT,gBAAgB,IAAIY,QAAQ,CAACF,OAAO,KAAKP,iBAAiB,EAAE;MAClF;IACF;IACAK,qBAAqB,CAACD,OAAO,GAAG;MAAEE,MAAM,EAAET,gBAAgB;MAAEU,OAAO,EAAEP;IAAkB,CAAC;IACxFE,qBAAqB,CAACE,OAAO,GAAGP,gBAAgB,EAAEG,iBAAiB,CAAC;EACtE,CAAC,EAAE,CAACA,iBAAiB,EAAEH,gBAAgB,CAAC,CAAC;EAEzC,MAAMa,cAAc,GAAG,IAAAC,qCAA8B,EAACZ,eAAe,EAAEC,iBAAiB,CAAC;;EAEzF;EACA;EACA,MAAMY,iBAAiB,GAAG,IAAAC,4BAAqB,EAAC,CAAC;EACjD,MAAMC,qBAAqB,GAAG,IAAA9B,cAAO,EACnC,MACE0B,cAAc,GACVd,SAAS,GACT;IACE,GAAGgB,iBAAiB;IACpBvC,SAAS,EAAE,CAAC,CAACuC,iBAAiB,CAACvC,SAAS,IAAI0B,eAAe;IAC3DgB,YAAY,EAAEf;EAChB,CAAC,EACP,CAACY,iBAAiB,EAAEF,cAAc,EAAEX,eAAe,EAAEC,iBAAiB,CACxE,CAAC;EAED,MAAMgB,WAAW,GAAG,IAAAb,aAAM,EAAyB,IAAIc,GAAG,CAAC,CAAC,CAAC;EAC7D,MAAMC,SAAS,GAAG,IAAAf,aAAM,EAA4B,IAAI,CAAC;EACzD,MAAMgB,UAAU,GAAG,IAAAhB,aAAM,EAA4B,IAAI,CAAC;EAE1D,MAAMiB,OAAO,GAAG,IAAAC,kBAAW,EACxB9B,IAAa,IAAK;IACjB,IAAIpB,QAAQ,IAAIoB,IAAI,EAAE;MACpB;IACF;IACA,IAAIA,IAAI,EAAE;MACRI,aAAa,CAACjC,KAAK,CAAC;IACtB;IACA+B,YAAY,CAACF,IAAI,CAAC;EACpB,CAAC,EACD,CAACpB,QAAQ,EAAEwB,aAAa,EAAEF,YAAY,EAAE/B,KAAK,CAC/C,CAAC;EAED,MAAM4D,eAAe,GAAG,IAAAD,kBAAW,EAAEE,IAAuB,IAAK;IAC/D,IAAIP,WAAW,CAACZ,OAAO,CAACoB,GAAG,CAACD,IAAI,CAAC,EAAE;MACjC;IACF;IACAP,WAAW,CAACZ,OAAO,CAACqB,GAAG,CAACF,IAAI,CAAC;IAC7B,IAAIP,WAAW,CAACZ,OAAO,CAACsB,IAAI,GAAG,CAAC,EAAE;MAChCC,OAAO,CAACC,IAAI,CACV,kHACF,CAAC;IACH;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAC,gBAAS,EAAC,MAAM;IACdlC,aAAa,CAACjC,KAAK,CAAC;EACtB,CAAC,EAAE,CAACiC,aAAa,EAAEjC,KAAK,CAAC,CAAC;EAE1B,IAAAmE,gBAAS,EAAC,MAAM;IACd,IAAI,CAACrC,IAAI,EAAE;MACTwB,WAAW,CAACZ,OAAO,CAAC0B,KAAK,CAAC,CAAC;IAC7B;EACF,CAAC,EAAE,CAACtC,IAAI,CAAC,CAAC;EAEV,MAAMuC,YAAY,GAAG,IAAA/C,cAAO,EAC1B,OAAO;IACLtB,KAAK;IACLG,aAAa,EAAEqB,QAAQ;IACvBQ,UAAU;IACVC,aAAa;IACbH,IAAI,EAAEA,IAAI,IAAI,KAAK;IACnB4B,OAAO;IACPjD,QAAQ;IACRI,QAAQ;IACRC,QAAQ;IACRC,iBAAiB;IACjBE,MAAM;IACNC,MAAM;IACN0C,eAAe;IACfJ,SAAS;IACTC;EACF,CAAC,CAAC,EACF,CACEzD,KAAK,EACLwB,QAAQ,EACRQ,UAAU,EACVC,aAAa,EACbH,IAAI,EACJ4B,OAAO,EACPjD,QAAQ,EACRI,QAAQ,EACRC,QAAQ,EACRC,iBAAiB,EACjBE,MAAM,EACNC,MAAM,EACN0C,eAAe,CAEnB,CAAC;EAED,MAAMU,IAAI,GAAGxE,OAAO,GAAGyE,UAAI,GAAGC,iBAAI;EAElC,MAAMC,KAAK,gBACT,IAAA/E,WAAA,CAAAgF,GAAA,EAACpF,cAAA,CAAAqF,aAAa;IACZ3E,KAAK,EAAEA,KAAM;IACbG,aAAa,EAAG0B,IAAI,IAAKL,QAAQ,CAACK,IAA0B,CAAE;IAC9D+C,IAAI,EAAC,MAAM;IACX3D,MAAM,EAAEA,MAAO;IACfC,MAAM,EAAEC,UAAW;IACnBX,UAAU,EAAEC,QAAS;IACrBC,UAAU,EAAEA,UAAW;IACvBC,SAAS,EAAE0B,eAAgB;IAC3BzB,UAAU,EAAEA,UAAW;IAAAb,QAAA,EAEtBA;EAAQ,CACI,CAChB;EAED,oBACE,IAAAL,WAAA,CAAAgF,GAAA,EAACjF,QAAA,CAAAoF,iBAAiB,CAACC,QAAQ;IAAC9E,KAAK,EAAEqE,YAAa;IAAAtE,QAAA,eAC9C,IAAAL,WAAA,CAAAgF,GAAA,EAACJ,IAAI;MACHjD,GAAG,EAAE,IAAA0D,gBAAS,EAAC1D,GAAG,EAAEmC,SAAS,CAAE;MAAA,GAC3BpC,KAAK;MAAA,GACL,IAAA4D,mCAAmB,EAAC5D,KAAK,EAAE,IAAA6D,8BAAc,EAAC;QAAExE,QAAQ;QAAEqB;MAAK,CAAC,CAAC,CAAC;MAAA/B,QAAA,EAEjEqD,qBAAqB,gBACpB,IAAA1D,WAAA,CAAAgF,GAAA,EAACrF,MAAA,CAAA6F,kBAAkB,CAACJ,QAAQ;QAAC9E,KAAK,EAAEoD,qBAAsB;QAAArD,QAAA,EACvD0E;MAAK,CACqB,CAAC,GAE9BA;IACD,CACG;EAAC,CACmB,CAAC;AAEjC,CACF,CAAC;AAED9E,cAAc,CAACwF,WAAW,GAAG,gBAAgB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","DatePickerContext","exports","createContext","useDatePickerContext","ctx","useContext","Error"],"sourceRoot":"../../../src","sources":["date-picker/context.tsx"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_react","require","DatePickerContext","exports","createContext","useDatePickerContext","ctx","useContext","Error"],"sourceRoot":"../../../src","sources":["date-picker/context.tsx"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AA0BO,MAAMC,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,gBAAG,IAAAE,oBAAa,EAAgC,IAAI,CAAC;AAE5E,SAASC,oBAAoBA,CAAA,EAA2B;EAC7D,MAAMC,GAAG,GAAG,IAAAC,iBAAU,EAACL,iBAAiB,CAAC;EACzC,IAAI,CAACI,GAAG,EAAE;IACR,MAAM,IAAIE,KAAK,CAAC,mEAAmE,CAAC;EACtF;EACA,OAAOF,GAAG;AACZ","ignoreList":[]}
|
|
@@ -20,6 +20,7 @@ export const CalendarRoot = /*#__PURE__*/forwardRef(({
|
|
|
20
20
|
onMonthIdChange,
|
|
21
21
|
minValue,
|
|
22
22
|
maxValue,
|
|
23
|
+
isDateUnavailable,
|
|
23
24
|
disabled = false,
|
|
24
25
|
locale = 'en-US',
|
|
25
26
|
labels: labelsProp,
|
|
@@ -66,12 +67,13 @@ export const CalendarRoot = /*#__PURE__*/forwardRef(({
|
|
|
66
67
|
onMonthIdChange: setMonthId,
|
|
67
68
|
minValue,
|
|
68
69
|
maxValue,
|
|
70
|
+
isDateUnavailable,
|
|
69
71
|
disabled,
|
|
70
72
|
locale,
|
|
71
73
|
labels,
|
|
72
74
|
view,
|
|
73
75
|
setView
|
|
74
|
-
}), [value, setValue, monthId, setMonthId, minValue, maxValue, disabled, locale, labels, view, setView]);
|
|
76
|
+
}), [value, setValue, monthId, setMonthId, minValue, maxValue, isDateUnavailable, disabled, locale, labels, view, setView]);
|
|
75
77
|
const Comp = asChild ? Slot : View;
|
|
76
78
|
return /*#__PURE__*/_jsx(CalendarContext.Provider, {
|
|
77
79
|
value: contextValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useCallback","useEffect","useMemo","useRef","useState","View","todayMonthId","toMonthId","resolveDateComponentLabels","useControllableState","Slot","accessibleLabelAttributes","resolveAccessibleLabel","dataAttributes","mergeDataAttributes","CalendarContext","jsx","_jsx","CalendarRoot","asChild","children","value","valueProp","defaultValue","onValueChange","monthId","monthIdProp","defaultMonthId","onMonthIdChange","minValue","maxValue","disabled","locale","labels","labelsProp","accessibilityLabel","accessibilityLabelProp","ariaLabelProp","props","ref","setValue","prop","defaultProp","onChange","setMonthId","prevValueRef","undefined","current","view","setViewState","setView","next","contextValue","Comp","Provider","accessibilityRole","displayName"],"sourceRoot":"../../../src","sources":["calendar/CalendarRoot.tsx"],"mappings":";;AAAA,SACEA,UAAU,EACVC,WAAW,EACXC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QAGH,OAAO;AACd,SAASC,IAAI,QAAwB,cAAc;AACnD,SACEC,YAAY,EACZC,SAAS,EACTC,0BAA0B,QAGrB,oBAAoB;AAC3B,SAASC,oBAAoB,QAAQ,eAAe;AACpD,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,yBAAyB,EAAEC,sBAAsB,QAAQ,0BAA0B;AAC5F,SAASC,cAAc,EAAEC,mBAAmB,QAAQ,yBAAyB;AAC7E,SAASC,eAAe,QAA2B,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAS/D,OAAO,MAAMC,YAAY,gBAAGnB,UAAU,CACpC,CACE;EACEoB,OAAO;EACPC,QAAQ;EACRC,KAAK,EAAEC,SAAS;EAChBC,YAAY;EACZC,aAAa;EACbC,OAAO,EAAEC,WAAW;EACpBC,cAAc;EACdC,eAAe;EACfC,QAAQ;EACRC,QAAQ;EACRC,QAAQ,GAAG,KAAK;EAChBC,MAAM,GAAG,OAAO;EAChBC,MAAM,EAAEC,UAAU;EAClBC,kBAAkB,EAAEC,sBAAsB;EAC1C,YAAY,EAAEC,aAAa;EAC3B,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAMN,MAAM,
|
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","useEffect","useMemo","useRef","useState","View","todayMonthId","toMonthId","resolveDateComponentLabels","useControllableState","Slot","accessibleLabelAttributes","resolveAccessibleLabel","dataAttributes","mergeDataAttributes","CalendarContext","jsx","_jsx","CalendarRoot","asChild","children","value","valueProp","defaultValue","onValueChange","monthId","monthIdProp","defaultMonthId","onMonthIdChange","minValue","maxValue","isDateUnavailable","disabled","locale","labels","labelsProp","accessibilityLabel","accessibilityLabelProp","ariaLabelProp","props","ref","setValue","prop","defaultProp","onChange","setMonthId","prevValueRef","undefined","current","view","setViewState","setView","next","contextValue","Comp","Provider","accessibilityRole","displayName"],"sourceRoot":"../../../src","sources":["calendar/CalendarRoot.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useContext","CalendarContext","useCalendarContext","ctx","Error"],"sourceRoot":"../../../src","sources":["calendar/context.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;
|
|
1
|
+
{"version":3,"names":["createContext","useContext","CalendarContext","useCalendarContext","ctx","Error"],"sourceRoot":"../../../src","sources":["calendar/context.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAoBjD,OAAO,MAAMC,eAAe,gBAAGF,aAAa,CAA8B,IAAI,CAAC;AAE/E,OAAO,SAASG,kBAAkBA,CAAA,EAAyB;EACzD,MAAMC,GAAG,GAAGH,UAAU,CAACC,eAAe,CAAC;EACvC,IAAI,CAACE,GAAG,EAAE;IACR,MAAM,IAAIC,KAAK,CAAC,+DAA+D,CAAC;EAClF;EACA,OAAOD,GAAG;AACZ","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { forwardRef, useMemo } from 'react';
|
|
4
4
|
import { View } from 'react-native';
|
|
5
5
|
import { getDateFieldSegments, resolveDateComponentLabels } from '@cdx-ui/formatters';
|
|
6
|
-
import { useControllableState, useFormControl } from '@cdx-ui/utils';
|
|
6
|
+
import { useControllableState, useFormControl, useFormControlContext } from '@cdx-ui/utils';
|
|
7
7
|
import { Slot } from '../slot';
|
|
8
8
|
import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
|
|
9
9
|
import { DateFieldContext } from './context';
|
|
@@ -30,6 +30,9 @@ export const DateFieldRoot = /*#__PURE__*/forwardRef(({
|
|
|
30
30
|
isInvalid,
|
|
31
31
|
isRequired
|
|
32
32
|
});
|
|
33
|
+
const {
|
|
34
|
+
errorMessage
|
|
35
|
+
} = useFormControlContext();
|
|
33
36
|
const [value, setValue] = useControllableState({
|
|
34
37
|
prop: valueProp,
|
|
35
38
|
defaultProp: defaultValue,
|
|
@@ -60,8 +63,9 @@ export const DateFieldRoot = /*#__PURE__*/forwardRef(({
|
|
|
60
63
|
disabled: !!formControl.disabled,
|
|
61
64
|
readOnly: !!formControl.readOnly,
|
|
62
65
|
invalid: !!formControl['aria-invalid'],
|
|
66
|
+
errorMessage,
|
|
63
67
|
...segmentState
|
|
64
|
-
}), [value, setValue, mode, locale, labels, segments, formControl.disabled, formControl.readOnly, formControl['aria-invalid'], segmentState]);
|
|
68
|
+
}), [value, setValue, mode, locale, labels, segments, formControl.disabled, formControl.readOnly, formControl['aria-invalid'], errorMessage, segmentState]);
|
|
65
69
|
const Comp = asChild ? Slot : View;
|
|
66
70
|
return /*#__PURE__*/_jsx(DateFieldContext.Provider, {
|
|
67
71
|
value: contextValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useMemo","View","getDateFieldSegments","resolveDateComponentLabels","useControllableState","useFormControl","Slot","dataAttributes","mergeDataAttributes","DateFieldContext","useDateFieldSegmentState","jsx","_jsx","DateFieldRoot","asChild","children","value","valueProp","defaultValue","onValueChange","mode","locale","labels","labelsProp","isDisabled","isReadOnly","isInvalid","isRequired","props","ref","formControl","setValue","prop","defaultProp","onChange","next","segments","segmentState","disabled","readOnly","contextValue","invalid","Comp","Provider","readonly","displayName"],"sourceRoot":"../../../src","sources":["date-field/DateFieldRoot.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,OAAO,QAA2C,OAAO;AAC9E,SAASC,IAAI,QAAwB,cAAc;AACnD,SAASC,oBAAoB,EAAEC,0BAA0B,QAAQ,oBAAoB;AACrF,SAASC,oBAAoB,EAAEC,cAAc,QAAQ,eAAe;
|
|
1
|
+
{"version":3,"names":["forwardRef","useMemo","View","getDateFieldSegments","resolveDateComponentLabels","useControllableState","useFormControl","useFormControlContext","Slot","dataAttributes","mergeDataAttributes","DateFieldContext","useDateFieldSegmentState","jsx","_jsx","DateFieldRoot","asChild","children","value","valueProp","defaultValue","onValueChange","mode","locale","labels","labelsProp","isDisabled","isReadOnly","isInvalid","isRequired","props","ref","formControl","errorMessage","setValue","prop","defaultProp","onChange","next","segments","segmentState","disabled","readOnly","contextValue","invalid","Comp","Provider","readonly","displayName"],"sourceRoot":"../../../src","sources":["date-field/DateFieldRoot.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,6 +20,8 @@ export const DateFieldSegment = /*#__PURE__*/forwardRef(({
|
|
|
20
20
|
const {
|
|
21
21
|
disabled,
|
|
22
22
|
readOnly,
|
|
23
|
+
invalid,
|
|
24
|
+
errorMessage,
|
|
23
25
|
focusedSegmentIndex,
|
|
24
26
|
focusSegment,
|
|
25
27
|
getSegmentDisplayText,
|
|
@@ -46,13 +48,17 @@ export const DateFieldSegment = /*#__PURE__*/forwardRef(({
|
|
|
46
48
|
placeholder: segment.text === displayText && !segment.value
|
|
47
49
|
}));
|
|
48
50
|
if (segment.isEditable && !asChild) {
|
|
51
|
+
// `aria-invalid` only reaches web screen readers; native ones need it in the name and hint.
|
|
52
|
+
const announceInvalid = invalid && Platform.OS !== 'web';
|
|
49
53
|
return /*#__PURE__*/_jsx(Pressable, {
|
|
50
54
|
accessibilityRole: "spinbutton",
|
|
51
|
-
accessibilityLabel: getDateSegmentAccessibilityLabel(segment.type, labels),
|
|
55
|
+
accessibilityLabel: getDateSegmentAccessibilityLabel(segment.type, labels, announceInvalid),
|
|
56
|
+
accessibilityHint: announceInvalid ? errorMessage : undefined,
|
|
52
57
|
accessibilityState: {
|
|
53
58
|
disabled,
|
|
54
59
|
selected: isFocused
|
|
55
60
|
},
|
|
61
|
+
"aria-invalid": invalid || undefined,
|
|
56
62
|
disabled: disabled || readOnly,
|
|
57
63
|
onPress: handlePress,
|
|
58
64
|
onPressIn: preventWebFocusSteal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useCallback","Platform","Pressable","Text","getDateSegmentAccessibilityLabel","Slot","dataAttributes","mergeDataAttributes","useDateFieldContext","useDateFieldSegmentIndex","jsx","_jsx","DateFieldSegment","asChild","segment","segmentIndex","segmentIndexProp","style","props","ref","contextSegmentIndex","disabled","readOnly","focusedSegmentIndex","focusSegment","getSegmentDisplayText","labels","isFocused","displayText","handlePress","preventWebFocusSteal","event","OS","maybeDom","preventDefault","dataProps","slot","focus","placeholder","text","value","isEditable","accessibilityRole","accessibilityLabel","type","accessibilityState","selected","onPress","onPressIn","zIndex","onMouseDown","e","children","Comp","importantForAccessibility","displayName"],"sourceRoot":"../../../src","sources":["date-field/DateFieldSegment.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,WAAW,QAA2B,OAAO;AAClE,SACEC,QAAQ,EACRC,SAAS,EACTC,IAAI,QAGC,cAAc;AACrB,SAASC,gCAAgC,QAAQ,oBAAoB;AACrE,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,cAAc,EAAEC,mBAAmB,QAAQ,yBAAyB;AAC7E,SAASC,mBAAmB,QAAQ,WAAW;AAC/C,SAASC,wBAAwB,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAS1D,OAAO,MAAMC,gBAAgB,gBAAGb,UAAU,CACxC,CAAC;EAAEc,OAAO;EAAEC,OAAO;EAAEC,YAAY,EAAEC,gBAAgB;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC9E,MAAMC,mBAAmB,GAAGX,wBAAwB,CAAC,CAAC;EACtD,MAAMM,YAAY,GAAGC,gBAAgB,IAAII,mBAAmB;EAC5D,MAAM;
|
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","Platform","Pressable","Text","getDateSegmentAccessibilityLabel","Slot","dataAttributes","mergeDataAttributes","useDateFieldContext","useDateFieldSegmentIndex","jsx","_jsx","DateFieldSegment","asChild","segment","segmentIndex","segmentIndexProp","style","props","ref","contextSegmentIndex","disabled","readOnly","invalid","errorMessage","focusedSegmentIndex","focusSegment","getSegmentDisplayText","labels","isFocused","displayText","handlePress","preventWebFocusSteal","event","OS","maybeDom","preventDefault","dataProps","slot","focus","placeholder","text","value","isEditable","announceInvalid","accessibilityRole","accessibilityLabel","type","accessibilityHint","undefined","accessibilityState","selected","onPress","onPressIn","zIndex","onMouseDown","e","children","Comp","importantForAccessibility","displayName"],"sourceRoot":"../../../src","sources":["date-field/DateFieldSegment.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useContext","DateFieldContext","useDateFieldContext","ctx","Error"],"sourceRoot":"../../../src","sources":["date-field/context.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAA4C,OAAO;;AASrF;;
|
|
1
|
+
{"version":3,"names":["createContext","useContext","DateFieldContext","useDateFieldContext","ctx","Error"],"sourceRoot":"../../../src","sources":["date-field/context.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAA4C,OAAO;;AASrF;;AAgCA,OAAO,MAAMC,gBAAgB,gBAAGF,aAAa,CAA+B,IAAI,CAAC;AAEjF,OAAO,SAASG,mBAAmBA,CAAA,EAA0B;EAC3D,MAAMC,GAAG,GAAGH,UAAU,CAACC,gBAAgB,CAAC;EACxC,IAAI,CAACE,GAAG,EAAE;IACR,MAAM,IAAIC,KAAK,CAAC,iEAAiE,CAAC;EACpF;EACA,OAAOD,GAAG;AACZ","ignoreList":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { forwardRef, useCallback, useEffect, useMemo, useRef } from 'react';
|
|
3
|
+
import { forwardRef, useCallback, useEffect, useLayoutEffect, useMemo, useRef } from 'react';
|
|
4
4
|
import { View } from 'react-native';
|
|
5
|
-
import { resolveDateComponentLabels } from '@cdx-ui/formatters';
|
|
6
|
-
import { mergeRefs, useControllableState } from '@cdx-ui/utils';
|
|
5
|
+
import { formatDateValidationMessage, getDateValidationReason, resolveDateComponentLabels } from '@cdx-ui/formatters';
|
|
6
|
+
import { FormControlContext, mergeRefs, useControllableState, useFormControlContext, useReportFormControlValidation } from '@cdx-ui/utils';
|
|
7
7
|
import { DateFieldRoot } from '../date-field/DateFieldRoot';
|
|
8
8
|
import { Slot } from '../slot';
|
|
9
9
|
import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
|
|
@@ -24,6 +24,8 @@ export const DatePickerRoot = /*#__PURE__*/forwardRef(({
|
|
|
24
24
|
isRequired,
|
|
25
25
|
minValue,
|
|
26
26
|
maxValue,
|
|
27
|
+
isDateUnavailable,
|
|
28
|
+
onValidationChange,
|
|
27
29
|
locale = 'en-US',
|
|
28
30
|
labels: labelsProp,
|
|
29
31
|
...props
|
|
@@ -45,6 +47,45 @@ export const DatePickerRoot = /*#__PURE__*/forwardRef(({
|
|
|
45
47
|
prop: undefined,
|
|
46
48
|
defaultProp: value
|
|
47
49
|
});
|
|
50
|
+
const validationReason = useMemo(() => value === undefined ? undefined : getDateValidationReason(value, {
|
|
51
|
+
minValue,
|
|
52
|
+
maxValue,
|
|
53
|
+
isDateUnavailable
|
|
54
|
+
}), [isDateUnavailable, maxValue, minValue, value]);
|
|
55
|
+
const resolvedInvalid = !!isInvalid || validationReason !== undefined;
|
|
56
|
+
const validationMessage = useMemo(() => validationReason === undefined ? undefined : formatDateValidationMessage(labels, validationReason, {
|
|
57
|
+
minValue,
|
|
58
|
+
maxValue
|
|
59
|
+
}, {
|
|
60
|
+
locale
|
|
61
|
+
}), [labels, locale, maxValue, minValue, validationReason]);
|
|
62
|
+
const onValidationChangeRef = useRef(onValidationChange);
|
|
63
|
+
onValidationChangeRef.current = onValidationChange;
|
|
64
|
+
const reportedValidationRef = useRef({
|
|
65
|
+
reason: undefined,
|
|
66
|
+
message: undefined
|
|
67
|
+
});
|
|
68
|
+
useLayoutEffect(() => {
|
|
69
|
+
const reported = reportedValidationRef.current;
|
|
70
|
+
if (reported.reason === validationReason && reported.message === validationMessage) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
reportedValidationRef.current = {
|
|
74
|
+
reason: validationReason,
|
|
75
|
+
message: validationMessage
|
|
76
|
+
};
|
|
77
|
+
onValidationChangeRef.current?.(validationReason, validationMessage);
|
|
78
|
+
}, [validationMessage, validationReason]);
|
|
79
|
+
const reportsToField = useReportFormControlValidation(resolvedInvalid, validationMessage);
|
|
80
|
+
|
|
81
|
+
// Without an enclosing `Field` there is nothing to report to, so provide the picker's
|
|
82
|
+
// validation to its own children (`Field.Error`, `Field.Helper`, the input group).
|
|
83
|
+
const parentFormControl = useFormControlContext();
|
|
84
|
+
const standaloneFormControl = useMemo(() => reportsToField ? undefined : {
|
|
85
|
+
...parentFormControl,
|
|
86
|
+
isInvalid: !!parentFormControl.isInvalid || resolvedInvalid,
|
|
87
|
+
errorMessage: validationMessage
|
|
88
|
+
}, [parentFormControl, reportsToField, resolvedInvalid, validationMessage]);
|
|
48
89
|
const surfacesRef = useRef(new Set());
|
|
49
90
|
const anchorRef = useRef(null);
|
|
50
91
|
const triggerRef = useRef(null);
|
|
@@ -84,13 +125,26 @@ export const DatePickerRoot = /*#__PURE__*/forwardRef(({
|
|
|
84
125
|
disabled,
|
|
85
126
|
minValue,
|
|
86
127
|
maxValue,
|
|
128
|
+
isDateUnavailable,
|
|
87
129
|
locale,
|
|
88
130
|
labels,
|
|
89
131
|
registerSurface,
|
|
90
132
|
anchorRef,
|
|
91
133
|
triggerRef
|
|
92
|
-
}), [value, setValue, draftValue, setDraftValue, open, setOpen, disabled, minValue, maxValue, locale, labels, registerSurface]);
|
|
134
|
+
}), [value, setValue, draftValue, setDraftValue, open, setOpen, disabled, minValue, maxValue, isDateUnavailable, locale, labels, registerSurface]);
|
|
93
135
|
const Comp = asChild ? Slot : View;
|
|
136
|
+
const field = /*#__PURE__*/_jsx(DateFieldRoot, {
|
|
137
|
+
value: value,
|
|
138
|
+
onValueChange: next => setValue(next),
|
|
139
|
+
mode: "date",
|
|
140
|
+
locale: locale,
|
|
141
|
+
labels: labelsProp,
|
|
142
|
+
isDisabled: disabled,
|
|
143
|
+
isReadOnly: isReadOnly,
|
|
144
|
+
isInvalid: resolvedInvalid,
|
|
145
|
+
isRequired: isRequired,
|
|
146
|
+
children: children
|
|
147
|
+
});
|
|
94
148
|
return /*#__PURE__*/_jsx(DatePickerContext.Provider, {
|
|
95
149
|
value: contextValue,
|
|
96
150
|
children: /*#__PURE__*/_jsx(Comp, {
|
|
@@ -100,18 +154,10 @@ export const DatePickerRoot = /*#__PURE__*/forwardRef(({
|
|
|
100
154
|
disabled,
|
|
101
155
|
open
|
|
102
156
|
})),
|
|
103
|
-
children: /*#__PURE__*/_jsx(
|
|
104
|
-
value:
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
locale: locale,
|
|
108
|
-
labels: labelsProp,
|
|
109
|
-
isDisabled: disabled,
|
|
110
|
-
isReadOnly: isReadOnly,
|
|
111
|
-
isInvalid: isInvalid,
|
|
112
|
-
isRequired: isRequired,
|
|
113
|
-
children: children
|
|
114
|
-
})
|
|
157
|
+
children: standaloneFormControl ? /*#__PURE__*/_jsx(FormControlContext.Provider, {
|
|
158
|
+
value: standaloneFormControl,
|
|
159
|
+
children: field
|
|
160
|
+
}) : field
|
|
115
161
|
})
|
|
116
162
|
});
|
|
117
163
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useCallback","useEffect","useMemo","useRef","View","resolveDateComponentLabels","mergeRefs","useControllableState","DateFieldRoot","Slot","dataAttributes","mergeDataAttributes","DatePickerContext","jsx","_jsx","DatePickerRoot","asChild","children","value","valueProp","defaultValue","onValueChange","isOpen","openProp","defaultOpen","onOpenChange","isDisabled","disabled","isReadOnly","isInvalid","isRequired","minValue","maxValue","locale","labels","labelsProp","props","ref","setValue","prop","defaultProp","onChange","next","open","setOpenState","draftValue","setDraftValue","undefined","surfacesRef","Set","anchorRef","triggerRef","setOpen","registerSurface","type","
|
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","useEffect","useLayoutEffect","useMemo","useRef","View","formatDateValidationMessage","getDateValidationReason","resolveDateComponentLabels","FormControlContext","mergeRefs","useControllableState","useFormControlContext","useReportFormControlValidation","DateFieldRoot","Slot","dataAttributes","mergeDataAttributes","DatePickerContext","jsx","_jsx","DatePickerRoot","asChild","children","value","valueProp","defaultValue","onValueChange","isOpen","openProp","defaultOpen","onOpenChange","isDisabled","disabled","isReadOnly","isInvalid","isRequired","minValue","maxValue","isDateUnavailable","onValidationChange","locale","labels","labelsProp","props","ref","setValue","prop","defaultProp","onChange","next","open","setOpenState","draftValue","setDraftValue","undefined","validationReason","resolvedInvalid","validationMessage","onValidationChangeRef","current","reportedValidationRef","reason","message","reported","reportsToField","parentFormControl","standaloneFormControl","errorMessage","surfacesRef","Set","anchorRef","triggerRef","setOpen","registerSurface","type","has","add","size","console","warn","clear","contextValue","Comp","field","mode","Provider","displayName"],"sourceRoot":"../../../src","sources":["date-picker/DatePickerRoot.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useContext","DatePickerContext","useDatePickerContext","ctx","Error"],"sourceRoot":"../../../src","sources":["date-picker/context.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAwB,OAAO;
|
|
1
|
+
{"version":3,"names":["createContext","useContext","DatePickerContext","useDatePickerContext","ctx","Error"],"sourceRoot":"../../../src","sources":["date-picker/context.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAwB,OAAO;AA0BjE,OAAO,MAAMC,iBAAiB,gBAAGF,aAAa,CAAgC,IAAI,CAAC;AAEnF,OAAO,SAASG,oBAAoBA,CAAA,EAA2B;EAC7D,MAAMC,GAAG,GAAGH,UAAU,CAACC,iBAAiB,CAAC;EACzC,IAAI,CAACE,GAAG,EAAE;IACR,MAAM,IAAIC,KAAK,CAAC,mEAAmE,CAAC;EACtF;EACA,OAAOD,GAAG;AACZ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarRoot.d.ts","sourceRoot":"","sources":["../../../src/calendar/CalendarRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAapD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,WAAW,iBAAkB,SAAQ,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IACpF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"CalendarRoot.d.ts","sourceRoot":"","sources":["../../../src/calendar/CalendarRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAapD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,WAAW,iBAAkB,SAAQ,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IACpF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,oGA2GxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/calendar/context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE/E,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5C,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,mBAAmB,CAAC;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;CACvC;AAED,eAAO,MAAM,eAAe,sDAAmD,CAAC;AAEhF,wBAAgB,kBAAkB,IAAI,oBAAoB,CAMzD"}
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/calendar/context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE/E,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5C,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,mBAAmB,CAAC;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;CACvC;AAED,eAAO,MAAM,eAAe,sDAAmD,CAAC;AAEhF,wBAAgB,kBAAkB,IAAI,oBAAoB,CAMzD"}
|
|
@@ -16,6 +16,13 @@ export interface ICalendarProps {
|
|
|
16
16
|
minValue?: DateId;
|
|
17
17
|
/** Latest selectable date. Build with `dateId(...)` from `@cdx-ui/formatters`. */
|
|
18
18
|
maxValue?: DateId;
|
|
19
|
+
/**
|
|
20
|
+
* Returns `true` for days that cannot be selected, such as weekends or holidays. Unavailable
|
|
21
|
+
* days render disabled and ignore presses, combined with `minValue` / `maxValue`. An inline
|
|
22
|
+
* function is safe; a stable (module-level or memoized) one also skips re-checking every day of
|
|
23
|
+
* the visible month on each render.
|
|
24
|
+
*/
|
|
25
|
+
isDateUnavailable?: (date: DateId) => boolean;
|
|
19
26
|
disabled?: boolean;
|
|
20
27
|
/** BCP 47 locale for weekday and month formatting. Defaults to `en-US`. */
|
|
21
28
|
locale?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/calendar/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE/E,MAAM,WAAW,cAAc;IAC7B,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD,wGAAwG;IACxG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtC,+CAA+C;IAC/C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/calendar/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE/E,MAAM,WAAW,cAAc;IAC7B,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD,wGAAwG;IACxG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtC,+CAA+C;IAC/C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateFieldRoot.d.ts","sourceRoot":"","sources":["../../../src/date-field/DateFieldRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAMpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C,MAAM,WAAW,kBAAmB,SAAQ,eAAe,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IACtF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"DateFieldRoot.d.ts","sourceRoot":"","sources":["../../../src/date-field/DateFieldRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAMpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C,MAAM,WAAW,kBAAmB,SAAQ,eAAe,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IACtF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,qGAqGzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateFieldSegment.d.ts","sourceRoot":"","sources":["../../../src/date-field/DateFieldSegment.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,IAAI,EAEJ,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAMtB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD,MAAM,WAAW,qBAAsB,SAAQ,sBAAsB,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IAChG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"DateFieldSegment.d.ts","sourceRoot":"","sources":["../../../src/date-field/DateFieldSegment.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,IAAI,EAEJ,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAMtB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD,MAAM,WAAW,qBAAsB,SAAQ,sBAAsB,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IAChG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,wGAyF5B,CAAC"}
|
|
@@ -12,6 +12,8 @@ export interface DateFieldContextValue {
|
|
|
12
12
|
disabled: boolean;
|
|
13
13
|
readOnly: boolean;
|
|
14
14
|
invalid: boolean;
|
|
15
|
+
/** Message the enclosing `Field` shows for the invalid state, if any. */
|
|
16
|
+
errorMessage?: string;
|
|
15
17
|
focusedSegmentIndex: number | null;
|
|
16
18
|
focusSegment: (index: number) => void;
|
|
17
19
|
blurSegment: (index: number) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/date-field/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AACtF,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,MAAM,EACN,WAAW,EACX,OAAO,EACR,MAAM,oBAAoB,CAAC;AAE5B,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,cAAc,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAChD,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,wBAAwB,EAAE,MAAM,IAAI,CAAC;IACrC,wBAAwB,EAAE,MAAM,IAAI,CAAC;IACrC,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,wEAAwE;IACxE,wBAAwB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,sBAAsB,EAAE,MAAM,IAAI,CAAC;IACnC,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,eAAe,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3E,iDAAiD;IACjD,sBAAsB,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;CAClE;AAED,eAAO,MAAM,gBAAgB,uDAAoD,CAAC;AAElF,wBAAgB,mBAAmB,IAAI,qBAAqB,CAM3D"}
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/date-field/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AACtF,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,MAAM,EACN,WAAW,EACX,OAAO,EACR,MAAM,oBAAoB,CAAC;AAE5B,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,cAAc,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAChD,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,wBAAwB,EAAE,MAAM,IAAI,CAAC;IACrC,wBAAwB,EAAE,MAAM,IAAI,CAAC;IACrC,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,wEAAwE;IACxE,wBAAwB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,sBAAsB,EAAE,MAAM,IAAI,CAAC;IACnC,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,eAAe,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3E,iDAAiD;IACjD,sBAAsB,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;CAClE;AAED,eAAO,MAAM,gBAAgB,uDAAoD,CAAC;AAElF,wBAAgB,mBAAmB,IAAI,qBAAqB,CAM3D"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
import { View, type ViewProps } from 'react-native';
|
|
3
|
-
import type
|
|
3
|
+
import { type DateComponentLabels, type DateId, type DateValidationReason } from '@cdx-ui/formatters';
|
|
4
4
|
export interface DatePickerRootProps extends Omit<ViewProps, 'children'> {
|
|
5
5
|
asChild?: boolean;
|
|
6
6
|
children?: ReactNode;
|
|
@@ -14,12 +14,38 @@ export interface DatePickerRootProps extends Omit<ViewProps, 'children'> {
|
|
|
14
14
|
onOpenChange?: (open: boolean) => void;
|
|
15
15
|
isDisabled?: boolean;
|
|
16
16
|
isReadOnly?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Forces the invalid state. OR-ed with the picker's own validation: setting `true` marks the
|
|
19
|
+
* field invalid, but `false` never hides a `minValue` / `maxValue` / `isDateUnavailable` violation.
|
|
20
|
+
*/
|
|
17
21
|
isInvalid?: boolean;
|
|
18
22
|
isRequired?: boolean;
|
|
19
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* Earliest selectable date, applied to the embedded calendar and to typed entry. Build with
|
|
25
|
+
* `dateId(...)`.
|
|
26
|
+
*/
|
|
20
27
|
minValue?: DateId;
|
|
21
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* Latest selectable date, applied to the embedded calendar and to typed entry. Build with
|
|
30
|
+
* `dateId(...)`.
|
|
31
|
+
*/
|
|
22
32
|
maxValue?: DateId;
|
|
33
|
+
/**
|
|
34
|
+
* Returns `true` for dates that cannot be selected, such as weekends or holidays. The calendar
|
|
35
|
+
* renders them disabled; a typed unavailable date is kept and emitted but renders invalid. Pass
|
|
36
|
+
* a stable (memoized) function.
|
|
37
|
+
*/
|
|
38
|
+
isDateUnavailable?: (date: DateId) => boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Called when the committed value starts or stops violating `minValue`, `maxValue`, or
|
|
41
|
+
* `isDateUnavailable`, and again when the formatted message changes while the reason stays
|
|
42
|
+
* the same — a new bound, `locale`, or `labels` while the value is still `beforeMin`, for
|
|
43
|
+
* example. Receives the reason and its `labels` message formatted in `locale`, or `undefined`
|
|
44
|
+
* for both once the value is valid or cleared. Fires before paint, so state set here renders
|
|
45
|
+
* in the same frame as the invalid styling. Not needed to show the message: an empty
|
|
46
|
+
* `Field.Error` anywhere in the enclosing `Field` already renders it.
|
|
47
|
+
*/
|
|
48
|
+
onValidationChange?: (reason: DateValidationReason | undefined, message: string | undefined) => void;
|
|
23
49
|
name?: string;
|
|
24
50
|
locale?: string;
|
|
25
51
|
labels?: Partial<DateComponentLabels>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerRoot.d.ts","sourceRoot":"","sources":["../../../src/date-picker/DatePickerRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"DatePickerRoot.d.ts","sourceRoot":"","sources":["../../../src/date-picker/DatePickerRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,MAAM,EACX,KAAK,oBAAoB,EAC1B,MAAM,oBAAoB,CAAC;AAa5B,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,CACnB,MAAM,EAAE,oBAAoB,GAAG,SAAS,EACxC,OAAO,EAAE,MAAM,GAAG,SAAS,KACxB,IAAI,CAAC;IACV,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACvC;AAED,eAAO,MAAM,cAAc,sGAgN1B,CAAC"}
|
|
@@ -12,6 +12,7 @@ export interface DatePickerContextValue {
|
|
|
12
12
|
disabled: boolean;
|
|
13
13
|
minValue?: DateId;
|
|
14
14
|
maxValue?: DateId;
|
|
15
|
+
isDateUnavailable?: (date: DateId) => boolean;
|
|
15
16
|
locale: string;
|
|
16
17
|
labels: DateComponentLabels;
|
|
17
18
|
registerSurface: (type: PickerSurfaceType) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/date-picker/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEtE,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC;AAErE,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACnD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,mBAAmB,CAAC;IAC5B,eAAe,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACnD,gEAAgE;IAChE,SAAS,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAClC,gEAAgE;IAChE,UAAU,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,wDAAqD,CAAC;AAEpF,wBAAgB,oBAAoB,IAAI,sBAAsB,CAM7D"}
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/date-picker/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEtE,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC;AAErE,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACnD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,mBAAmB,CAAC;IAC5B,eAAe,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACnD,gEAAgE;IAChE,SAAS,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAClC,gEAAgE;IAChE,UAAU,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,wDAAqD,CAAC;AAEpF,wBAAgB,oBAAoB,IAAI,sBAAsB,CAM7D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cdx-ui/primitives",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -69,8 +69,8 @@
|
|
|
69
69
|
"@react-stately/disclosure": "3.1.1",
|
|
70
70
|
"@react-stately/radio": "3.12.0",
|
|
71
71
|
"@react-stately/toggle": "3.9.4",
|
|
72
|
-
"@cdx-ui/formatters": "0.2.
|
|
73
|
-
"@cdx-ui/utils": "0.2.
|
|
72
|
+
"@cdx-ui/formatters": "0.2.2",
|
|
73
|
+
"@cdx-ui/utils": "0.2.2"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@types/react": "19.1.17",
|
|
@@ -42,6 +42,7 @@ export const CalendarRoot = forwardRef<ComponentRef<typeof View>, CalendarRootPr
|
|
|
42
42
|
onMonthIdChange,
|
|
43
43
|
minValue,
|
|
44
44
|
maxValue,
|
|
45
|
+
isDateUnavailable,
|
|
45
46
|
disabled = false,
|
|
46
47
|
locale = 'en-US',
|
|
47
48
|
labels: labelsProp,
|
|
@@ -96,6 +97,7 @@ export const CalendarRoot = forwardRef<ComponentRef<typeof View>, CalendarRootPr
|
|
|
96
97
|
onMonthIdChange: setMonthId,
|
|
97
98
|
minValue,
|
|
98
99
|
maxValue,
|
|
100
|
+
isDateUnavailable,
|
|
99
101
|
disabled,
|
|
100
102
|
locale,
|
|
101
103
|
labels,
|
|
@@ -109,6 +111,7 @@ export const CalendarRoot = forwardRef<ComponentRef<typeof View>, CalendarRootPr
|
|
|
109
111
|
setMonthId,
|
|
110
112
|
minValue,
|
|
111
113
|
maxValue,
|
|
114
|
+
isDateUnavailable,
|
|
112
115
|
disabled,
|
|
113
116
|
locale,
|
|
114
117
|
labels,
|
package/src/calendar/context.tsx
CHANGED
package/src/calendar/types.ts
CHANGED
|
@@ -17,6 +17,13 @@ export interface ICalendarProps {
|
|
|
17
17
|
minValue?: DateId;
|
|
18
18
|
/** Latest selectable date. Build with `dateId(...)` from `@cdx-ui/formatters`. */
|
|
19
19
|
maxValue?: DateId;
|
|
20
|
+
/**
|
|
21
|
+
* Returns `true` for days that cannot be selected, such as weekends or holidays. Unavailable
|
|
22
|
+
* days render disabled and ignore presses, combined with `minValue` / `maxValue`. An inline
|
|
23
|
+
* function is safe; a stable (module-level or memoized) one also skips re-checking every day of
|
|
24
|
+
* the visible month on each render.
|
|
25
|
+
*/
|
|
26
|
+
isDateUnavailable?: (date: DateId) => boolean;
|
|
20
27
|
disabled?: boolean;
|
|
21
28
|
/** BCP 47 locale for weekday and month formatting. Defaults to `en-US`. */
|
|
22
29
|
locale?: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { forwardRef, useMemo, type ComponentRef, type ReactNode } from 'react';
|
|
2
2
|
import { View, type ViewProps } from 'react-native';
|
|
3
3
|
import { getDateFieldSegments, resolveDateComponentLabels } from '@cdx-ui/formatters';
|
|
4
|
-
import { useControllableState, useFormControl } from '@cdx-ui/utils';
|
|
4
|
+
import { useControllableState, useFormControl, useFormControlContext } from '@cdx-ui/utils';
|
|
5
5
|
import { Slot } from '../slot';
|
|
6
6
|
import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
|
|
7
7
|
import { DateFieldContext, type DateFieldValue } from './context';
|
|
@@ -39,6 +39,7 @@ export const DateFieldRoot = forwardRef<ComponentRef<typeof View>, DateFieldRoot
|
|
|
39
39
|
isInvalid,
|
|
40
40
|
isRequired,
|
|
41
41
|
});
|
|
42
|
+
const { errorMessage } = useFormControlContext();
|
|
42
43
|
|
|
43
44
|
const [value, setValue] = useControllableState<DateFieldValue>({
|
|
44
45
|
prop: valueProp,
|
|
@@ -75,6 +76,7 @@ export const DateFieldRoot = forwardRef<ComponentRef<typeof View>, DateFieldRoot
|
|
|
75
76
|
disabled: !!formControl.disabled,
|
|
76
77
|
readOnly: !!formControl.readOnly,
|
|
77
78
|
invalid: !!formControl['aria-invalid'],
|
|
79
|
+
errorMessage,
|
|
78
80
|
...segmentState,
|
|
79
81
|
}),
|
|
80
82
|
[
|
|
@@ -87,6 +89,7 @@ export const DateFieldRoot = forwardRef<ComponentRef<typeof View>, DateFieldRoot
|
|
|
87
89
|
formControl.disabled,
|
|
88
90
|
formControl.readOnly,
|
|
89
91
|
formControl['aria-invalid'],
|
|
92
|
+
errorMessage,
|
|
90
93
|
segmentState,
|
|
91
94
|
],
|
|
92
95
|
);
|
|
@@ -23,8 +23,16 @@ export const DateFieldSegment = forwardRef<ComponentRef<typeof Text>, DateFieldS
|
|
|
23
23
|
({ asChild, segment, segmentIndex: segmentIndexProp, style, ...props }, ref) => {
|
|
24
24
|
const contextSegmentIndex = useDateFieldSegmentIndex();
|
|
25
25
|
const segmentIndex = segmentIndexProp ?? contextSegmentIndex;
|
|
26
|
-
const {
|
|
27
|
-
|
|
26
|
+
const {
|
|
27
|
+
disabled,
|
|
28
|
+
readOnly,
|
|
29
|
+
invalid,
|
|
30
|
+
errorMessage,
|
|
31
|
+
focusedSegmentIndex,
|
|
32
|
+
focusSegment,
|
|
33
|
+
getSegmentDisplayText,
|
|
34
|
+
labels,
|
|
35
|
+
} = useDateFieldContext();
|
|
28
36
|
const isFocused = focusedSegmentIndex === segmentIndex;
|
|
29
37
|
const displayText = getSegmentDisplayText(segmentIndex);
|
|
30
38
|
|
|
@@ -52,11 +60,19 @@ export const DateFieldSegment = forwardRef<ComponentRef<typeof Text>, DateFieldS
|
|
|
52
60
|
);
|
|
53
61
|
|
|
54
62
|
if (segment.isEditable && !asChild) {
|
|
63
|
+
// `aria-invalid` only reaches web screen readers; native ones need it in the name and hint.
|
|
64
|
+
const announceInvalid = invalid && Platform.OS !== 'web';
|
|
55
65
|
return (
|
|
56
66
|
<Pressable
|
|
57
67
|
accessibilityRole="spinbutton"
|
|
58
|
-
accessibilityLabel={getDateSegmentAccessibilityLabel(
|
|
68
|
+
accessibilityLabel={getDateSegmentAccessibilityLabel(
|
|
69
|
+
segment.type,
|
|
70
|
+
labels,
|
|
71
|
+
announceInvalid,
|
|
72
|
+
)}
|
|
73
|
+
accessibilityHint={announceInvalid ? errorMessage : undefined}
|
|
59
74
|
accessibilityState={{ disabled, selected: isFocused }}
|
|
75
|
+
aria-invalid={invalid || undefined}
|
|
60
76
|
disabled={disabled || readOnly}
|
|
61
77
|
onPress={handlePress}
|
|
62
78
|
onPressIn={preventWebFocusSteal}
|
|
@@ -20,6 +20,8 @@ export interface DateFieldContextValue {
|
|
|
20
20
|
disabled: boolean;
|
|
21
21
|
readOnly: boolean;
|
|
22
22
|
invalid: boolean;
|
|
23
|
+
/** Message the enclosing `Field` shows for the invalid state, if any. */
|
|
24
|
+
errorMessage?: string;
|
|
23
25
|
focusedSegmentIndex: number | null;
|
|
24
26
|
focusSegment: (index: number) => void;
|
|
25
27
|
blurSegment: (index: number) => void;
|
|
@@ -2,15 +2,28 @@ import {
|
|
|
2
2
|
forwardRef,
|
|
3
3
|
useCallback,
|
|
4
4
|
useEffect,
|
|
5
|
+
useLayoutEffect,
|
|
5
6
|
useMemo,
|
|
6
7
|
useRef,
|
|
7
8
|
type ComponentRef,
|
|
8
9
|
type ReactNode,
|
|
9
10
|
} from 'react';
|
|
10
11
|
import { View, type ViewProps } from 'react-native';
|
|
11
|
-
import
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
import {
|
|
13
|
+
formatDateValidationMessage,
|
|
14
|
+
getDateValidationReason,
|
|
15
|
+
resolveDateComponentLabels,
|
|
16
|
+
type DateComponentLabels,
|
|
17
|
+
type DateId,
|
|
18
|
+
type DateValidationReason,
|
|
19
|
+
} from '@cdx-ui/formatters';
|
|
20
|
+
import {
|
|
21
|
+
FormControlContext,
|
|
22
|
+
mergeRefs,
|
|
23
|
+
useControllableState,
|
|
24
|
+
useFormControlContext,
|
|
25
|
+
useReportFormControlValidation,
|
|
26
|
+
} from '@cdx-ui/utils';
|
|
14
27
|
import { DateFieldRoot } from '../date-field/DateFieldRoot';
|
|
15
28
|
import { Slot } from '../slot';
|
|
16
29
|
import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
|
|
@@ -29,12 +42,41 @@ export interface DatePickerRootProps extends Omit<ViewProps, 'children'> {
|
|
|
29
42
|
onOpenChange?: (open: boolean) => void;
|
|
30
43
|
isDisabled?: boolean;
|
|
31
44
|
isReadOnly?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Forces the invalid state. OR-ed with the picker's own validation: setting `true` marks the
|
|
47
|
+
* field invalid, but `false` never hides a `minValue` / `maxValue` / `isDateUnavailable` violation.
|
|
48
|
+
*/
|
|
32
49
|
isInvalid?: boolean;
|
|
33
50
|
isRequired?: boolean;
|
|
34
|
-
/**
|
|
51
|
+
/**
|
|
52
|
+
* Earliest selectable date, applied to the embedded calendar and to typed entry. Build with
|
|
53
|
+
* `dateId(...)`.
|
|
54
|
+
*/
|
|
35
55
|
minValue?: DateId;
|
|
36
|
-
/**
|
|
56
|
+
/**
|
|
57
|
+
* Latest selectable date, applied to the embedded calendar and to typed entry. Build with
|
|
58
|
+
* `dateId(...)`.
|
|
59
|
+
*/
|
|
37
60
|
maxValue?: DateId;
|
|
61
|
+
/**
|
|
62
|
+
* Returns `true` for dates that cannot be selected, such as weekends or holidays. The calendar
|
|
63
|
+
* renders them disabled; a typed unavailable date is kept and emitted but renders invalid. Pass
|
|
64
|
+
* a stable (memoized) function.
|
|
65
|
+
*/
|
|
66
|
+
isDateUnavailable?: (date: DateId) => boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Called when the committed value starts or stops violating `minValue`, `maxValue`, or
|
|
69
|
+
* `isDateUnavailable`, and again when the formatted message changes while the reason stays
|
|
70
|
+
* the same — a new bound, `locale`, or `labels` while the value is still `beforeMin`, for
|
|
71
|
+
* example. Receives the reason and its `labels` message formatted in `locale`, or `undefined`
|
|
72
|
+
* for both once the value is valid or cleared. Fires before paint, so state set here renders
|
|
73
|
+
* in the same frame as the invalid styling. Not needed to show the message: an empty
|
|
74
|
+
* `Field.Error` anywhere in the enclosing `Field` already renders it.
|
|
75
|
+
*/
|
|
76
|
+
onValidationChange?: (
|
|
77
|
+
reason: DateValidationReason | undefined,
|
|
78
|
+
message: string | undefined,
|
|
79
|
+
) => void;
|
|
38
80
|
name?: string;
|
|
39
81
|
locale?: string;
|
|
40
82
|
labels?: Partial<DateComponentLabels>;
|
|
@@ -57,6 +99,8 @@ export const DatePickerRoot = forwardRef<ComponentRef<typeof View>, DatePickerRo
|
|
|
57
99
|
isRequired,
|
|
58
100
|
minValue,
|
|
59
101
|
maxValue,
|
|
102
|
+
isDateUnavailable,
|
|
103
|
+
onValidationChange,
|
|
60
104
|
locale = 'en-US',
|
|
61
105
|
labels: labelsProp,
|
|
62
106
|
...props
|
|
@@ -83,6 +127,59 @@ export const DatePickerRoot = forwardRef<ComponentRef<typeof View>, DatePickerRo
|
|
|
83
127
|
defaultProp: value,
|
|
84
128
|
});
|
|
85
129
|
|
|
130
|
+
const validationReason = useMemo(
|
|
131
|
+
() =>
|
|
132
|
+
value === undefined
|
|
133
|
+
? undefined
|
|
134
|
+
: getDateValidationReason(value, { minValue, maxValue, isDateUnavailable }),
|
|
135
|
+
[isDateUnavailable, maxValue, minValue, value],
|
|
136
|
+
);
|
|
137
|
+
const resolvedInvalid = !!isInvalid || validationReason !== undefined;
|
|
138
|
+
const validationMessage = useMemo(
|
|
139
|
+
() =>
|
|
140
|
+
validationReason === undefined
|
|
141
|
+
? undefined
|
|
142
|
+
: formatDateValidationMessage(
|
|
143
|
+
labels,
|
|
144
|
+
validationReason,
|
|
145
|
+
{ minValue, maxValue },
|
|
146
|
+
{ locale },
|
|
147
|
+
),
|
|
148
|
+
[labels, locale, maxValue, minValue, validationReason],
|
|
149
|
+
);
|
|
150
|
+
|
|
151
|
+
const onValidationChangeRef = useRef(onValidationChange);
|
|
152
|
+
onValidationChangeRef.current = onValidationChange;
|
|
153
|
+
const reportedValidationRef = useRef<{
|
|
154
|
+
reason: DateValidationReason | undefined;
|
|
155
|
+
message: string | undefined;
|
|
156
|
+
}>({ reason: undefined, message: undefined });
|
|
157
|
+
useLayoutEffect(() => {
|
|
158
|
+
const reported = reportedValidationRef.current;
|
|
159
|
+
if (reported.reason === validationReason && reported.message === validationMessage) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
reportedValidationRef.current = { reason: validationReason, message: validationMessage };
|
|
163
|
+
onValidationChangeRef.current?.(validationReason, validationMessage);
|
|
164
|
+
}, [validationMessage, validationReason]);
|
|
165
|
+
|
|
166
|
+
const reportsToField = useReportFormControlValidation(resolvedInvalid, validationMessage);
|
|
167
|
+
|
|
168
|
+
// Without an enclosing `Field` there is nothing to report to, so provide the picker's
|
|
169
|
+
// validation to its own children (`Field.Error`, `Field.Helper`, the input group).
|
|
170
|
+
const parentFormControl = useFormControlContext();
|
|
171
|
+
const standaloneFormControl = useMemo(
|
|
172
|
+
() =>
|
|
173
|
+
reportsToField
|
|
174
|
+
? undefined
|
|
175
|
+
: {
|
|
176
|
+
...parentFormControl,
|
|
177
|
+
isInvalid: !!parentFormControl.isInvalid || resolvedInvalid,
|
|
178
|
+
errorMessage: validationMessage,
|
|
179
|
+
},
|
|
180
|
+
[parentFormControl, reportsToField, resolvedInvalid, validationMessage],
|
|
181
|
+
);
|
|
182
|
+
|
|
86
183
|
const surfacesRef = useRef<Set<PickerSurfaceType>>(new Set());
|
|
87
184
|
const anchorRef = useRef<ComponentRef<typeof View>>(null);
|
|
88
185
|
const triggerRef = useRef<ComponentRef<typeof View>>(null);
|
|
@@ -133,6 +230,7 @@ export const DatePickerRoot = forwardRef<ComponentRef<typeof View>, DatePickerRo
|
|
|
133
230
|
disabled,
|
|
134
231
|
minValue,
|
|
135
232
|
maxValue,
|
|
233
|
+
isDateUnavailable,
|
|
136
234
|
locale,
|
|
137
235
|
labels,
|
|
138
236
|
registerSurface,
|
|
@@ -149,6 +247,7 @@ export const DatePickerRoot = forwardRef<ComponentRef<typeof View>, DatePickerRo
|
|
|
149
247
|
disabled,
|
|
150
248
|
minValue,
|
|
151
249
|
maxValue,
|
|
250
|
+
isDateUnavailable,
|
|
152
251
|
locale,
|
|
153
252
|
labels,
|
|
154
253
|
registerSurface,
|
|
@@ -157,6 +256,22 @@ export const DatePickerRoot = forwardRef<ComponentRef<typeof View>, DatePickerRo
|
|
|
157
256
|
|
|
158
257
|
const Comp = asChild ? Slot : View;
|
|
159
258
|
|
|
259
|
+
const field = (
|
|
260
|
+
<DateFieldRoot
|
|
261
|
+
value={value}
|
|
262
|
+
onValueChange={(next) => setValue(next as DateId | undefined)}
|
|
263
|
+
mode="date"
|
|
264
|
+
locale={locale}
|
|
265
|
+
labels={labelsProp}
|
|
266
|
+
isDisabled={disabled}
|
|
267
|
+
isReadOnly={isReadOnly}
|
|
268
|
+
isInvalid={resolvedInvalid}
|
|
269
|
+
isRequired={isRequired}
|
|
270
|
+
>
|
|
271
|
+
{children}
|
|
272
|
+
</DateFieldRoot>
|
|
273
|
+
);
|
|
274
|
+
|
|
160
275
|
return (
|
|
161
276
|
<DatePickerContext.Provider value={contextValue}>
|
|
162
277
|
<Comp
|
|
@@ -164,19 +279,13 @@ export const DatePickerRoot = forwardRef<ComponentRef<typeof View>, DatePickerRo
|
|
|
164
279
|
{...props}
|
|
165
280
|
{...mergeDataAttributes(props, dataAttributes({ disabled, open }))}
|
|
166
281
|
>
|
|
167
|
-
|
|
168
|
-
value={
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
isReadOnly={isReadOnly}
|
|
175
|
-
isInvalid={isInvalid}
|
|
176
|
-
isRequired={isRequired}
|
|
177
|
-
>
|
|
178
|
-
{children}
|
|
179
|
-
</DateFieldRoot>
|
|
282
|
+
{standaloneFormControl ? (
|
|
283
|
+
<FormControlContext.Provider value={standaloneFormControl}>
|
|
284
|
+
{field}
|
|
285
|
+
</FormControlContext.Provider>
|
|
286
|
+
) : (
|
|
287
|
+
field
|
|
288
|
+
)}
|
|
180
289
|
</Comp>
|
|
181
290
|
</DatePickerContext.Provider>
|
|
182
291
|
);
|
|
@@ -14,6 +14,7 @@ export interface DatePickerContextValue {
|
|
|
14
14
|
disabled: boolean;
|
|
15
15
|
minValue?: DateId;
|
|
16
16
|
maxValue?: DateId;
|
|
17
|
+
isDateUnavailable?: (date: DateId) => boolean;
|
|
17
18
|
locale: string;
|
|
18
19
|
labels: DateComponentLabels;
|
|
19
20
|
registerSurface: (type: PickerSurfaceType) => void;
|