@povio/ui 2.2.9-rc.4 → 2.2.9-rc.6
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/components/inputs/DateTime/DatePicker/DatePicker.d.ts +3 -1
- package/dist/components/inputs/DateTime/DatePicker/DatePicker.js +2 -1
- package/dist/components/inputs/DateTime/DateRangePicker/DateRangePicker.d.ts +3 -1
- package/dist/components/inputs/DateTime/DateRangePicker/DateRangePicker.js +2 -1
- package/dist/components/inputs/DateTime/DateTimePicker/DateTimePicker.d.ts +3 -1
- package/dist/components/inputs/DateTime/DateTimePicker/DateTimePicker.js +2 -1
- package/dist/components/inputs/DateTime/shared/DatePickerInput.d.ts +4 -2
- package/dist/components/inputs/DateTime/shared/DatePickerInput.js +5 -4
- package/dist/components/inputs/DateTime/shared/datePicker.types.d.ts +3 -0
- package/dist/components/inputs/Selection/shared/select.context.d.ts +1 -0
- package/dist/components/inputs/Selection/shared/select.context.js +19 -1
- package/dist/config/uiConfig.context.d.ts +1 -1
- package/dist/config/uiConfig.context.js +1 -0
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ import { Ref, FocusEvent } from 'react';
|
|
|
3
3
|
import { FieldValues } from 'react-hook-form';
|
|
4
4
|
import { DatePickerStateOptions } from 'react-stately';
|
|
5
5
|
import { DatePickerInputHandle } from '../shared/DatePickerInput';
|
|
6
|
+
import { DatePickerTodayIcon, DatePickerTodayIconButtonSize } from '../shared/datePicker.types';
|
|
6
7
|
import { FormFieldProps } from '../../FormField/FormField';
|
|
7
8
|
import { ControlProps } from '../../shared/form.types';
|
|
8
9
|
import { InputVariantProps } from '../../shared/input.cva';
|
|
@@ -11,7 +12,8 @@ interface DatePickerBaseProps extends FormFieldProps, InputVariantProps, Omit<Da
|
|
|
11
12
|
disableDropdown?: boolean;
|
|
12
13
|
isClearable?: boolean;
|
|
13
14
|
className?: string;
|
|
14
|
-
todayIcon?:
|
|
15
|
+
todayIcon?: DatePickerTodayIcon;
|
|
16
|
+
todayIconButtonSize?: DatePickerTodayIconButtonSize;
|
|
15
17
|
isDirty?: boolean;
|
|
16
18
|
disableManualEntry?: boolean;
|
|
17
19
|
placeholder?: string;
|
|
@@ -20,7 +20,7 @@ import { useCalendarState, useDatePickerState } from "react-stately";
|
|
|
20
20
|
var PLACEHOLDER_VALUE = new CalendarDate(2024, 1, 1);
|
|
21
21
|
var DatePickerBase = (props) => {
|
|
22
22
|
const ui = UIConfig.useConfig();
|
|
23
|
-
const { ref, label, tooltipText, helperText, isRequired, rightContent, isDirty, isDisabled, headerClassName, errorClassName, isHeaderHidden, error, onChange, onBlur, value, disableDropdown, className, placeholder, inputClassName, as = ui.input.as, hideLabel = ui.input.hideLabel, variant = ui.input.variant, size = ui.input.size, isClearable = ui.input.isClearable, todayIcon = ui.dateInput.todayIcon, shouldForceLeadingZeros = ui.dateInput.shouldForceLeadingZeros, disableManualEntry = ui.dateInput.disableManualEntry, ...rest } = props;
|
|
23
|
+
const { ref, label, tooltipText, helperText, isRequired, rightContent, isDirty, isDisabled, headerClassName, errorClassName, isHeaderHidden, error, onChange, onBlur, value, disableDropdown, className, placeholder, inputClassName, as = ui.input.as, hideLabel = ui.input.hideLabel, variant = ui.input.variant, size = ui.input.size, isClearable = ui.input.isClearable, todayIcon = ui.dateInput.todayIcon, todayIconButtonSize = ui.dateInput.todayIconButtonSize, shouldForceLeadingZeros = ui.dateInput.shouldForceLeadingZeros, disableManualEntry = ui.dateInput.disableManualEntry, ...rest } = props;
|
|
24
24
|
const formFieldProps = {
|
|
25
25
|
error,
|
|
26
26
|
label,
|
|
@@ -138,6 +138,7 @@ var DatePickerBase = (props) => {
|
|
|
138
138
|
isClearable,
|
|
139
139
|
headerProps,
|
|
140
140
|
todayIcon,
|
|
141
|
+
todayIconButtonSize,
|
|
141
142
|
onOpenDropdown: () => state.toggle(),
|
|
142
143
|
placeholder,
|
|
143
144
|
className: inputClassName
|
|
@@ -4,6 +4,7 @@ import { DateValue } from 'react-aria';
|
|
|
4
4
|
import { FieldValues } from 'react-hook-form';
|
|
5
5
|
import { DateRangePickerStateOptions } from 'react-stately';
|
|
6
6
|
import { DatePickerInputHandle } from '../shared/DatePickerInput';
|
|
7
|
+
import { DatePickerTodayIcon, DatePickerTodayIconButtonSize } from '../shared/datePicker.types';
|
|
7
8
|
import { FormFieldProps } from '../../FormField/FormField';
|
|
8
9
|
import { ControlProps } from '../../shared/form.types';
|
|
9
10
|
import { InputVariantProps } from '../../shared/input.cva';
|
|
@@ -13,7 +14,8 @@ interface DateRangePickerBaseProps extends FormFieldProps, InputVariantProps, Om
|
|
|
13
14
|
isClearable?: boolean;
|
|
14
15
|
hideSidebar?: boolean;
|
|
15
16
|
className?: string;
|
|
16
|
-
todayIcon?:
|
|
17
|
+
todayIcon?: DatePickerTodayIcon;
|
|
18
|
+
todayIconButtonSize?: DatePickerTodayIconButtonSize;
|
|
17
19
|
isDirty?: boolean;
|
|
18
20
|
disableManualEntry?: boolean;
|
|
19
21
|
placeholder?: string;
|
|
@@ -24,7 +24,7 @@ import { useDateRangePickerState, useRangeCalendarState } from "react-stately";
|
|
|
24
24
|
var DateRangePickerBase = (props) => {
|
|
25
25
|
const ui = UIConfig.useConfig();
|
|
26
26
|
const { t } = useTranslation();
|
|
27
|
-
const { ref, label, tooltipText, helperText, isRequired, rightContent, isDisabled, isDirty, headerClassName, errorClassName, isHeaderHidden, error, onChange, onBlur, value, disableDropdown, className, hideSidebar, placeholder, inputClassName, hideLabel = ui.input.hideLabel, variant = ui.input.variant, as = ui.input.as, size = ui.input.size, isClearable = ui.input.isClearable, todayIcon = ui.dateInput.todayIcon, shouldForceLeadingZeros = ui.dateInput.shouldForceLeadingZeros, disableManualEntry = ui.dateInput.disableManualEntry, ...rest } = props;
|
|
27
|
+
const { ref, label, tooltipText, helperText, isRequired, rightContent, isDisabled, isDirty, headerClassName, errorClassName, isHeaderHidden, error, onChange, onBlur, value, disableDropdown, className, hideSidebar, placeholder, inputClassName, hideLabel = ui.input.hideLabel, variant = ui.input.variant, as = ui.input.as, size = ui.input.size, isClearable = ui.input.isClearable, todayIcon = ui.dateInput.todayIcon, todayIconButtonSize = ui.dateInput.todayIconButtonSize, shouldForceLeadingZeros = ui.dateInput.shouldForceLeadingZeros, disableManualEntry = ui.dateInput.disableManualEntry, ...rest } = props;
|
|
28
28
|
const [validationRangeError, setValidationRangeError] = useState();
|
|
29
29
|
const datePickerInputRef = useRef(null);
|
|
30
30
|
const dateRangePickerRef = useMemo(() => ({ get current() {
|
|
@@ -484,6 +484,7 @@ var DateRangePickerBase = (props) => {
|
|
|
484
484
|
isClearable,
|
|
485
485
|
headerProps,
|
|
486
486
|
todayIcon,
|
|
487
|
+
todayIconButtonSize,
|
|
487
488
|
isDirty,
|
|
488
489
|
disableManualEntry,
|
|
489
490
|
placeholder,
|
|
@@ -3,6 +3,7 @@ import { DateValue } from 'react-aria';
|
|
|
3
3
|
import { FieldValues } from 'react-hook-form';
|
|
4
4
|
import { DatePickerStateOptions } from 'react-stately';
|
|
5
5
|
import { DatePickerInputHandle } from '../shared/DatePickerInput';
|
|
6
|
+
import { DatePickerTodayIcon, DatePickerTodayIconButtonSize } from '../shared/datePicker.types';
|
|
6
7
|
import { FormFieldProps } from '../../FormField/FormField';
|
|
7
8
|
import { ControlProps } from '../../shared/form.types';
|
|
8
9
|
import { InputVariantProps } from '../../shared/input.cva';
|
|
@@ -11,7 +12,8 @@ interface DateTimePickerBaseProps extends FormFieldProps, InputVariantProps, Omi
|
|
|
11
12
|
disableDropdown?: boolean;
|
|
12
13
|
isTimeOptional?: boolean;
|
|
13
14
|
isClearable?: boolean;
|
|
14
|
-
todayIcon?:
|
|
15
|
+
todayIcon?: DatePickerTodayIcon;
|
|
16
|
+
todayIconButtonSize?: DatePickerTodayIconButtonSize;
|
|
15
17
|
isDirty?: boolean;
|
|
16
18
|
disableManualEntry?: boolean;
|
|
17
19
|
placeholder?: string;
|
|
@@ -17,7 +17,7 @@ import { useCalendarState, useDatePickerState } from "react-stately";
|
|
|
17
17
|
//#region src/components/inputs/DateTime/DateTimePicker/DateTimePicker.tsx
|
|
18
18
|
var DateTimePickerBase = (props) => {
|
|
19
19
|
const ui = UIConfig.useConfig();
|
|
20
|
-
const { ref, label, tooltipText, helperText, isRequired, rightContent, isDisabled, isDirty, headerClassName, errorClassName, isHeaderHidden, error, onChange, onBlur, value, disableDropdown, isTimeOptional, placeholder, inputClassName, hideLabel = ui.input.hideLabel, variant = ui.input.variant, as = ui.input.as, size = ui.input.size, isClearable = ui.input.isClearable, todayIcon = ui.dateInput.todayIcon, shouldForceLeadingZeros = ui.dateInput.shouldForceLeadingZeros, disableManualEntry = ui.dateInput.disableManualEntry, ...rest } = props;
|
|
20
|
+
const { ref, label, tooltipText, helperText, isRequired, rightContent, isDisabled, isDirty, headerClassName, errorClassName, isHeaderHidden, error, onChange, onBlur, value, disableDropdown, isTimeOptional, placeholder, inputClassName, hideLabel = ui.input.hideLabel, variant = ui.input.variant, as = ui.input.as, size = ui.input.size, isClearable = ui.input.isClearable, todayIcon = ui.dateInput.todayIcon, todayIconButtonSize = ui.dateInput.todayIconButtonSize, shouldForceLeadingZeros = ui.dateInput.shouldForceLeadingZeros, disableManualEntry = ui.dateInput.disableManualEntry, ...rest } = props;
|
|
21
21
|
const formFieldProps = {
|
|
22
22
|
error,
|
|
23
23
|
label,
|
|
@@ -153,6 +153,7 @@ var DateTimePickerBase = (props) => {
|
|
|
153
153
|
isClearable,
|
|
154
154
|
headerProps,
|
|
155
155
|
todayIcon,
|
|
156
|
+
todayIconButtonSize,
|
|
156
157
|
isRequired,
|
|
157
158
|
disableManualEntry,
|
|
158
159
|
placeholder,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Ref } from 'react';
|
|
2
2
|
import { DatePickerAria } from 'react-aria';
|
|
3
|
+
import { DatePickerTodayIcon, DatePickerTodayIconButtonSize } from './datePicker.types';
|
|
3
4
|
import { FormFieldHeaderProps } from '../../FormField/FormFieldHeader';
|
|
4
5
|
import { InputVariantProps } from '../../shared/input.cva';
|
|
5
6
|
export interface DatePickerInputHandle {
|
|
@@ -18,7 +19,8 @@ interface DatePickerInputProps extends InputVariantProps {
|
|
|
18
19
|
isDateTime?: boolean;
|
|
19
20
|
isClearable?: boolean;
|
|
20
21
|
headerProps?: FormFieldHeaderProps;
|
|
21
|
-
todayIcon?:
|
|
22
|
+
todayIcon?: DatePickerTodayIcon;
|
|
23
|
+
todayIconButtonSize?: DatePickerTodayIconButtonSize;
|
|
22
24
|
isDirty?: boolean;
|
|
23
25
|
isRequired?: boolean;
|
|
24
26
|
disableManualEntry?: boolean;
|
|
@@ -26,5 +28,5 @@ interface DatePickerInputProps extends InputVariantProps {
|
|
|
26
28
|
className?: string;
|
|
27
29
|
onOpenDropdown?: () => void;
|
|
28
30
|
}
|
|
29
|
-
export declare const DatePickerInput: ({ ref, as, groupProps, fieldProps, endFieldProps, buttonProps, isDisabled, isInvalid, disableDropdown, variant, size, isDateTime, isClearable, headerProps, todayIcon, isDirty, isRequired, disableManualEntry, placeholder, className, onOpenDropdown, ...props }: DatePickerInputProps) => import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
export declare const DatePickerInput: ({ ref, as, groupProps, fieldProps, endFieldProps, buttonProps, isDisabled, isInvalid, disableDropdown, variant, size, isDateTime, isClearable, headerProps, todayIcon, todayIconButtonSize, isDirty, isRequired, disableManualEntry, placeholder, className, onOpenDropdown, ...props }: DatePickerInputProps) => import("react/jsx-runtime").JSX.Element;
|
|
30
32
|
export {};
|
|
@@ -16,7 +16,7 @@ import { Button } from "react-aria-components";
|
|
|
16
16
|
import { useFocusVisible, useFocusWithin, useHover } from "react-aria";
|
|
17
17
|
import { getLocalTimeZone, now, toCalendarDateTime, today } from "@internationalized/date";
|
|
18
18
|
//#region src/components/inputs/DateTime/shared/DatePickerInput.tsx
|
|
19
|
-
var DatePickerInput = ({ ref, as, groupProps, fieldProps, endFieldProps, buttonProps, isDisabled, isInvalid, disableDropdown, variant, size, isDateTime, isClearable, headerProps, todayIcon, isDirty, isRequired, disableManualEntry, placeholder, className, onOpenDropdown, ...props }) => {
|
|
19
|
+
var DatePickerInput = ({ ref, as, groupProps, fieldProps, endFieldProps, buttonProps, isDisabled, isInvalid, disableDropdown, variant, size, isDateTime, isClearable, headerProps, todayIcon, todayIconButtonSize = "none", isDirty, isRequired, disableManualEntry, placeholder, className, onOpenDropdown, ...props }) => {
|
|
20
20
|
const inputBaseCva = UIStyle.useCva("input.baseCva", inputBase);
|
|
21
21
|
const inputSizeCva = UIStyle.useCva("input.sizeCva", inputSize);
|
|
22
22
|
const [canClear, setCanClear] = useState(false);
|
|
@@ -70,6 +70,7 @@ var DatePickerInput = ({ ref, as, groupProps, fieldProps, endFieldProps, buttonP
|
|
|
70
70
|
endFieldProps?.onBlur?.(null);
|
|
71
71
|
};
|
|
72
72
|
const hidePlaceholder = as === "floating" && !fieldProps.value && !isFocused;
|
|
73
|
+
const todayIconComponent = todayIcon === true ? TodayIcon : todayIcon || null;
|
|
73
74
|
return /* @__PURE__ */ jsxs("div", {
|
|
74
75
|
ref: containerRef,
|
|
75
76
|
className: clsx(inputBaseCva({
|
|
@@ -108,10 +109,10 @@ var DatePickerInput = ({ ref, as, groupProps, fieldProps, endFieldProps, buttonP
|
|
|
108
109
|
className: "absolute inset-0 z-0",
|
|
109
110
|
isDisabled
|
|
110
111
|
}),
|
|
111
|
-
|
|
112
|
+
todayIconComponent && /* @__PURE__ */ jsx(IconButton, {
|
|
112
113
|
label: "",
|
|
113
|
-
icon:
|
|
114
|
-
size:
|
|
114
|
+
icon: todayIconComponent,
|
|
115
|
+
size: todayIconButtonSize,
|
|
115
116
|
onPress: onToday,
|
|
116
117
|
className: "relative z-1"
|
|
117
118
|
}),
|
|
@@ -84,7 +84,7 @@ var SelectContext;
|
|
|
84
84
|
else updateValue(value);
|
|
85
85
|
}, [props.value]);
|
|
86
86
|
useEffect(() => {
|
|
87
|
-
if (!isMultiple && fieldState.value && fieldState.inputValue === "" && getItem(fieldState.value)?.label) syncFieldState(fieldState.value);
|
|
87
|
+
if (!isMultiple && props.value !== null && props.value !== void 0 && fieldState.value !== null && fieldState.value !== void 0 && fieldState.inputValue === "" && getItem(fieldState.value)?.label) syncFieldState(fieldState.value);
|
|
88
88
|
}, [allListItems]);
|
|
89
89
|
const handleInputChange = useCallback((inputValue) => {
|
|
90
90
|
const newFieldState = {
|
|
@@ -144,6 +144,22 @@ var SelectContext;
|
|
|
144
144
|
fieldState.value,
|
|
145
145
|
onChange
|
|
146
146
|
]);
|
|
147
|
+
const onBlur = useCallback(() => {
|
|
148
|
+
if (props.isSearchable && isMultiple && fieldState.searchValue !== "") {
|
|
149
|
+
const newFieldState = {
|
|
150
|
+
...fieldState,
|
|
151
|
+
inputValue: "",
|
|
152
|
+
searchValue: ""
|
|
153
|
+
};
|
|
154
|
+
setFieldState(newFieldState);
|
|
155
|
+
emitStateChanges(newFieldState);
|
|
156
|
+
setShowAll(true);
|
|
157
|
+
}
|
|
158
|
+
}, [
|
|
159
|
+
props.isSearchable,
|
|
160
|
+
isMultiple,
|
|
161
|
+
fieldState
|
|
162
|
+
]);
|
|
147
163
|
const value = useMemo(() => ({
|
|
148
164
|
fieldState,
|
|
149
165
|
isOpen,
|
|
@@ -154,6 +170,7 @@ var SelectContext;
|
|
|
154
170
|
onClear,
|
|
155
171
|
onSelectAll,
|
|
156
172
|
onRemove,
|
|
173
|
+
onBlur,
|
|
157
174
|
listItems,
|
|
158
175
|
selectableListItems,
|
|
159
176
|
selectedItems,
|
|
@@ -171,6 +188,7 @@ var SelectContext;
|
|
|
171
188
|
onClear,
|
|
172
189
|
onSelectAll,
|
|
173
190
|
onRemove,
|
|
191
|
+
onBlur,
|
|
174
192
|
listItems,
|
|
175
193
|
selectableListItems,
|
|
176
194
|
selectedIds,
|
|
@@ -33,7 +33,7 @@ export declare namespace UIConfig {
|
|
|
33
33
|
};
|
|
34
34
|
toggle: Pick<ToggleProps, "variant">;
|
|
35
35
|
slider: Pick<SliderProps, "minValue" | "maxValue">;
|
|
36
|
-
dateInput: Pick<DatePickerProps, "todayIcon" | "shouldForceLeadingZeros" | "disableManualEntry">;
|
|
36
|
+
dateInput: Pick<DatePickerProps, "todayIcon" | "todayIconButtonSize" | "shouldForceLeadingZeros" | "disableManualEntry">;
|
|
37
37
|
actionModal: Pick<ActionModalProps, "titleTypography" | "descriptionTypography">;
|
|
38
38
|
bottomSheet: Pick<BottomSheetProps, "closeDragThreshold" | "closeVelocityThreshold" | "hideThumb" | "headerTypography">;
|
|
39
39
|
tableHeaderText: Pick<HeaderTextProps, "variant" | "size">;
|