@react-spectrum/datepicker 3.10.3 → 3.11.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/dist/DateField.main.js +2 -2
- package/dist/DateField.main.js.map +1 -1
- package/dist/DateField.mjs +2 -2
- package/dist/DateField.module.js +2 -2
- package/dist/DateField.module.js.map +1 -1
- package/dist/DatePicker.main.js +2 -2
- package/dist/DatePicker.main.js.map +1 -1
- package/dist/DatePicker.mjs +2 -2
- package/dist/DatePicker.module.js +2 -2
- package/dist/DatePicker.module.js.map +1 -1
- package/dist/DatePickerField.main.js +2 -2
- package/dist/DatePickerField.main.js.map +1 -1
- package/dist/DatePickerField.mjs +2 -2
- package/dist/DatePickerField.module.js +2 -2
- package/dist/DatePickerField.module.js.map +1 -1
- package/dist/DatePickerSegment.main.js +1 -1
- package/dist/DatePickerSegment.main.js.map +1 -1
- package/dist/DatePickerSegment.mjs +1 -1
- package/dist/DatePickerSegment.module.js +1 -1
- package/dist/DatePickerSegment.module.js.map +1 -1
- package/dist/DateRangePicker.main.js +2 -2
- package/dist/DateRangePicker.main.js.map +1 -1
- package/dist/DateRangePicker.mjs +2 -2
- package/dist/DateRangePicker.module.js +2 -2
- package/dist/DateRangePicker.module.js.map +1 -1
- package/dist/Input.main.js +1 -1
- package/dist/Input.main.js.map +1 -1
- package/dist/Input.mjs +1 -1
- package/dist/Input.module.js +1 -1
- package/dist/Input.module.js.map +1 -1
- package/dist/TimeField.main.js +1 -1
- package/dist/TimeField.main.js.map +1 -1
- package/dist/TimeField.mjs +1 -1
- package/dist/TimeField.module.js +1 -1
- package/dist/TimeField.module.js.map +1 -1
- package/dist/inputgroup_vars_css.main.js.map +1 -1
- package/dist/inputgroup_vars_css.module.js.map +1 -1
- package/dist/textfield_vars_css.main.js.map +1 -1
- package/dist/textfield_vars_css.module.js.map +1 -1
- package/dist/utils.main.js +1 -1
- package/dist/utils.main.js.map +1 -1
- package/dist/utils.mjs +1 -1
- package/dist/utils.module.js +1 -1
- package/dist/utils.module.js.map +1 -1
- package/package.json +23 -23
- package/src/DateField.tsx +4 -4
- package/src/DatePicker.tsx +3 -3
- package/src/DatePickerField.tsx +2 -2
- package/src/DatePickerSegment.tsx +1 -1
- package/src/DateRangePicker.tsx +3 -3
- package/src/Input.tsx +4 -4
- package/src/TimeField.tsx +3 -3
- package/src/utils.ts +2 -2
package/src/DateRangePicker.tsx
CHANGED
|
@@ -50,7 +50,7 @@ function DateRangePicker<T extends DateValue>(props: SpectrumDateRangePickerProp
|
|
|
50
50
|
pageBehavior
|
|
51
51
|
} = props;
|
|
52
52
|
let {hoverProps, isHovered} = useHover({isDisabled});
|
|
53
|
-
let targetRef = useRef<HTMLDivElement>(
|
|
53
|
+
let targetRef = useRef<HTMLDivElement | null>(null);
|
|
54
54
|
let state = useDateRangePickerState({
|
|
55
55
|
...props,
|
|
56
56
|
shouldCloseOnSelect: () => !state.hasTime
|
|
@@ -99,10 +99,10 @@ function DateRangePicker<T extends DateValue>(props: SpectrumDateRangePickerProp
|
|
|
99
99
|
// The format help text is unnecessary for screen reader users because each segment already has a label.
|
|
100
100
|
let description = useFormatHelpText(props);
|
|
101
101
|
if (description && !props.description) {
|
|
102
|
-
descriptionProps.id =
|
|
102
|
+
descriptionProps.id = undefined;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
let placeholder: DateValue = placeholderValue;
|
|
105
|
+
let placeholder: DateValue | null | undefined = placeholderValue;
|
|
106
106
|
let timePlaceholder = placeholder && 'hour' in placeholder ? placeholder : null;
|
|
107
107
|
let timeMinValue = props.minValue && 'hour' in props.minValue ? props.minValue : null;
|
|
108
108
|
let timeMaxValue = props.maxValue && 'hour' in props.maxValue ? props.maxValue : null;
|
package/src/Input.tsx
CHANGED
|
@@ -15,12 +15,12 @@ import Checkmark from '@spectrum-icons/ui/CheckmarkMedium';
|
|
|
15
15
|
import {classNames, useValueEffect} from '@react-spectrum/utils';
|
|
16
16
|
import datepickerStyles from './styles.css';
|
|
17
17
|
import {mergeProps, mergeRefs, useEvent, useLayoutEffect, useResizeObserver} from '@react-aria/utils';
|
|
18
|
-
import React, {useCallback, useRef} from 'react';
|
|
18
|
+
import React, {ReactElement, useCallback, useRef} from 'react';
|
|
19
19
|
import textfieldStyles from '@adobe/spectrum-css-temp/components/textfield/vars.css';
|
|
20
20
|
import {useFocusRing} from '@react-aria/focus';
|
|
21
21
|
|
|
22
22
|
function Input(props, ref) {
|
|
23
|
-
let inputRef = useRef(null);
|
|
23
|
+
let inputRef = useRef<HTMLInputElement | null>(null);
|
|
24
24
|
let {
|
|
25
25
|
isDisabled,
|
|
26
26
|
isQuiet,
|
|
@@ -38,7 +38,7 @@ function Input(props, ref) {
|
|
|
38
38
|
// not cause a layout shift.
|
|
39
39
|
let [reservePadding, setReservePadding] = useValueEffect(false);
|
|
40
40
|
let onResize = useCallback(() => setReservePadding(function *(reservePadding) {
|
|
41
|
-
if (inputRef.current) {
|
|
41
|
+
if (inputRef.current && inputRef.current.parentElement) {
|
|
42
42
|
if (reservePadding) {
|
|
43
43
|
// Try to collapse padding if the content is clipped.
|
|
44
44
|
if (inputRef.current.scrollWidth > inputRef.current.offsetWidth) {
|
|
@@ -114,7 +114,7 @@ function Input(props, ref) {
|
|
|
114
114
|
'spectrum-Textfield-validationIcon'
|
|
115
115
|
);
|
|
116
116
|
|
|
117
|
-
let validationIcon = null;
|
|
117
|
+
let validationIcon: ReactElement | null = null;
|
|
118
118
|
if (validationState === 'invalid' && !isDisabled) {
|
|
119
119
|
validationIcon = <Alert data-testid="invalid-icon" UNSAFE_className={iconClass} />;
|
|
120
120
|
} else if (validationState === 'valid' && !isDisabled) {
|
package/src/TimeField.tsx
CHANGED
|
@@ -43,8 +43,8 @@ function TimeField<T extends TimeValue>(props: SpectrumTimeFieldProps<T>, ref: F
|
|
|
43
43
|
locale
|
|
44
44
|
});
|
|
45
45
|
|
|
46
|
-
let fieldRef = useRef(null);
|
|
47
|
-
let inputRef = useRef(null);
|
|
46
|
+
let fieldRef = useRef<HTMLDivElement | null>(null);
|
|
47
|
+
let inputRef = useRef<HTMLInputElement | null>(null);
|
|
48
48
|
let {labelProps, fieldProps, inputProps, descriptionProps, errorMessageProps, isInvalid, validationErrors, validationDetails} = useTimeField({
|
|
49
49
|
...props,
|
|
50
50
|
inputRef
|
|
@@ -62,7 +62,7 @@ function TimeField<T extends TimeValue>(props: SpectrumTimeFieldProps<T>, ref: F
|
|
|
62
62
|
labelProps={labelProps}
|
|
63
63
|
descriptionProps={descriptionProps}
|
|
64
64
|
errorMessageProps={errorMessageProps}
|
|
65
|
-
validationState={validationState}
|
|
65
|
+
validationState={validationState ?? undefined}
|
|
66
66
|
isInvalid={isInvalid}
|
|
67
67
|
validationErrors={validationErrors}
|
|
68
68
|
validationDetails={validationDetails}
|
package/src/utils.ts
CHANGED
|
@@ -42,7 +42,7 @@ export function useFormatHelpText(props: Pick<SpectrumDatePickerBase<any>, 'desc
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
export function useVisibleMonths(maxVisibleMonths: number) {
|
|
45
|
-
let {scale} = useProvider()
|
|
45
|
+
let {scale} = useProvider()!;
|
|
46
46
|
let [visibleMonths, setVisibleMonths] = useState(getVisibleMonths(scale));
|
|
47
47
|
useLayoutEffect(() => {
|
|
48
48
|
let onResize = () => setVisibleMonths(getVisibleMonths(scale));
|
|
@@ -68,7 +68,7 @@ function getVisibleMonths(scale) {
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
export function useFocusManagerRef(ref: FocusableRef<HTMLElement>) {
|
|
71
|
-
let domRef = useRef(
|
|
71
|
+
let domRef = useRef<HTMLElement | null>(null);
|
|
72
72
|
useImperativeHandle(ref, () => ({
|
|
73
73
|
...createDOMRef(domRef),
|
|
74
74
|
focus() {
|