@povio/ui 3.3.0-rc.4 → 3.4.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/README.md +15 -1
  2. package/dist/components/Breadcrumbs/Breadcrumbs.js +55 -206
  3. package/dist/components/buttons/InlineIconButton/InlineIconButton.js +9 -34
  4. package/dist/components/buttons/shared/ButtonContent.js +22 -80
  5. package/dist/components/inputs/Checkbox/Checkbox.d.ts +1 -2
  6. package/dist/components/inputs/Checkbox/Checkbox.js +93 -100
  7. package/dist/components/inputs/Checkbox/CheckboxCheckmark.js +10 -24
  8. package/dist/components/inputs/Checkbox/CheckboxGroup.d.ts +1 -2
  9. package/dist/components/inputs/Checkbox/CheckboxGroup.js +109 -113
  10. package/dist/components/inputs/DateTime/DatePicker/DatePicker.d.ts +1 -2
  11. package/dist/components/inputs/DateTime/DatePicker/DatePicker.js +97 -238
  12. package/dist/components/inputs/DateTime/DateRangePicker/DateRangePicker.d.ts +1 -2
  13. package/dist/components/inputs/DateTime/DateRangePicker/DateRangePicker.js +88 -214
  14. package/dist/components/inputs/DateTime/DateTimePicker/DateTimePicker.d.ts +1 -2
  15. package/dist/components/inputs/DateTime/DateTimePicker/DateTimePicker.js +64 -143
  16. package/dist/components/inputs/DateTime/TimePicker/TimePicker.d.ts +1 -2
  17. package/dist/components/inputs/DateTime/TimePicker/TimePicker.js +275 -294
  18. package/dist/components/inputs/DateTime/shared/Calendar.js +139 -339
  19. package/dist/components/inputs/DateTime/shared/CalendarCell.js +114 -308
  20. package/dist/components/inputs/DateTime/shared/CalendarGrid.js +35 -150
  21. package/dist/components/inputs/DateTime/shared/CalendarHeader.js +95 -229
  22. package/dist/components/inputs/DateTime/shared/CalendarSelectHeader.js +115 -296
  23. package/dist/components/inputs/DateTime/shared/DateField.js +135 -306
  24. package/dist/components/inputs/DateTime/shared/DatePickerInput.d.ts +1 -2
  25. package/dist/components/inputs/DateTime/shared/DatePickerInput.js +136 -343
  26. package/dist/components/inputs/DateTime/shared/DateTimeDialogFooter.js +10 -59
  27. package/dist/components/inputs/DateTime/shared/TimePickerInput.d.ts +1 -2
  28. package/dist/components/inputs/DateTime/shared/TimePickerInput.js +43 -46
  29. package/dist/components/inputs/File/FileUpload.d.ts +1 -1
  30. package/dist/components/inputs/File/FileUpload.js +18 -18
  31. package/dist/components/inputs/File/InputUpload.d.ts +1 -1
  32. package/dist/components/inputs/File/InputUpload.js +82 -278
  33. package/dist/components/inputs/File/fileUpload.types.d.ts +1 -1
  34. package/dist/components/inputs/File/inputUpload.types.d.ts +1 -1
  35. package/dist/components/inputs/File/shared/FileUploadContentEmpty.js +48 -180
  36. package/dist/components/inputs/File/shared/FileUploadContentError.js +95 -265
  37. package/dist/components/inputs/File/shared/FileUploadContentFilled.js +99 -261
  38. package/dist/components/inputs/File/shared/FileUploadContentLoading.js +56 -234
  39. package/dist/components/inputs/File/shared/ProgressBar.js +15 -102
  40. package/dist/components/inputs/FormField/FormField.js +34 -47
  41. package/dist/components/inputs/Input/NumberInput/NumberInput.d.ts +1 -1
  42. package/dist/components/inputs/Input/NumberInput/NumberInput.js +19 -19
  43. package/dist/components/inputs/Input/NumberRangeInput/NumberRangeInput.d.ts +1 -1
  44. package/dist/components/inputs/Input/NumberRangeInput/NumberRangeInput.js +93 -331
  45. package/dist/components/inputs/Input/PasswordInput/PasswordInput.d.ts +1 -1
  46. package/dist/components/inputs/Input/TextArea/TextArea.d.ts +1 -1
  47. package/dist/components/inputs/Input/TextArea/TextArea.js +18 -18
  48. package/dist/components/inputs/Input/TextInput/TextInput.d.ts +2 -2
  49. package/dist/components/inputs/Input/TextInput/TextInput.js +36 -38
  50. package/dist/components/inputs/Inputs/Form.d.ts +4 -4
  51. package/dist/components/inputs/Inputs/InputItem.d.ts +22 -22
  52. package/dist/components/inputs/Inputs/InputItem.js +35 -36
  53. package/dist/components/inputs/Inputs/Inputs.d.ts +2 -2
  54. package/dist/components/inputs/RadioGroup/RadioGroup.d.ts +1 -2
  55. package/dist/components/inputs/RadioGroup/RadioGroup.js +107 -111
  56. package/dist/components/inputs/Selection/Autocomplete/Autocomplete.d.ts +1 -1
  57. package/dist/components/inputs/Selection/Autocomplete/Autocomplete.js +26 -86
  58. package/dist/components/inputs/Selection/Autocomplete/QueryAutocomplete.d.ts +1 -1
  59. package/dist/components/inputs/Selection/Autocomplete/QueryAutocomplete.js +19 -19
  60. package/dist/components/inputs/Selection/Autocomplete/queryAutocomplete.types.d.ts +1 -1
  61. package/dist/components/inputs/Selection/Select/QuerySelect.d.ts +1 -1
  62. package/dist/components/inputs/Selection/Select/QuerySelect.js +49 -115
  63. package/dist/components/inputs/Selection/Select/Select.d.ts +1 -1
  64. package/dist/components/inputs/Selection/Select/Select.js +22 -22
  65. package/dist/components/inputs/Selection/shared/SelectBase.d.ts +0 -1
  66. package/dist/components/inputs/Selection/shared/SelectBase.js +34 -37
  67. package/dist/components/inputs/Selection/shared/SelectInput.js +1 -0
  68. package/dist/components/inputs/Selection/shared/SelectListBox.js +51 -163
  69. package/dist/components/inputs/Selection/shared/select.context.d.ts +2 -2
  70. package/dist/components/inputs/Selection/shared/select.context.js +4 -8
  71. package/dist/components/inputs/Selection/shared/select.types.d.ts +1 -1
  72. package/dist/components/inputs/Selection/shared/useSelectItems.js +48 -108
  73. package/dist/components/inputs/Skeleton/InputFrame.js +177 -552
  74. package/dist/components/inputs/Slider/Slider.d.ts +1 -1
  75. package/dist/components/inputs/Slider/Slider.js +18 -18
  76. package/dist/components/inputs/TextEditor/TextEditor.d.ts +1 -1
  77. package/dist/components/inputs/TextEditor/TextEditor.js +105 -407
  78. package/dist/components/inputs/Toggle/Toggle.d.ts +1 -2
  79. package/dist/components/inputs/Toggle/Toggle.js +59 -63
  80. package/dist/components/inputs/shared/InputClear.js +24 -40
  81. package/dist/components/inputs/shared/form.binding.d.ts +27 -0
  82. package/dist/components/inputs/shared/form.binding.js +57 -0
  83. package/dist/components/inputs/shared/form.types.d.ts +9 -8
  84. package/dist/components/inputs/shared/form.types.js +8 -0
  85. package/dist/components/navigation/Accordion/Accordion.js +22 -69
  86. package/dist/components/navigation/Accordion/AccordionItem.js +41 -86
  87. package/dist/components/navigation/Stepper/Stepper.js +22 -67
  88. package/dist/components/overlays/ActionModal/ActionModal.js +35 -169
  89. package/dist/components/overlays/ResponsivePopover/ResponsivePopover.js +29 -110
  90. package/dist/components/segment/Segment.d.ts +1 -1
  91. package/dist/components/segment/Segment.js +17 -17
  92. package/dist/components/segment/segment.types.d.ts +1 -1
  93. package/dist/components/shared/pagination/Pagination.js +22 -108
  94. package/dist/components/status/Alert/Alert.js +30 -97
  95. package/dist/components/table/InfiniteTable.js +16 -67
  96. package/dist/components/table/Table.d.ts +2 -8
  97. package/dist/components/table/Table.js +33 -55
  98. package/dist/components/text/Typography/Typography.js +8 -23
  99. package/dist/config/confirmation.context.js +1 -1
  100. package/dist/config/theme.context.js +45 -98
  101. package/dist/config/uiConfig.context.d.ts +5 -5
  102. package/dist/config/uiConfig.context.js +11 -51
  103. package/dist/config/uiOverrides.context.d.ts +0 -1
  104. package/dist/helpers/dynamicColumns.d.ts +1 -1
  105. package/dist/helpers/dynamicInputs.d.ts +7 -7
  106. package/dist/hooks/useAutosave.d.ts +4 -4
  107. package/dist/hooks/useAutosave.js +64 -49
  108. package/dist/hooks/useDebounceCallback.js +17 -51
  109. package/dist/hooks/useForm.d.ts +39 -15
  110. package/dist/hooks/useForm.js +96 -43
  111. package/dist/hooks/useFormAutosave.d.ts +8 -9
  112. package/dist/hooks/useFormAutosave.js +49 -122
  113. package/dist/hooks/useLongPressRepeat.js +20 -55
  114. package/dist/index.d.ts +2 -3
  115. package/dist/index.js +3 -4
  116. package/package.json +3 -4
  117. package/dist/components/inputs/FormField/formField.cva.d.ts +0 -11
  118. package/dist/components/inputs/FormField/formField.cva.js +0 -16
  119. package/dist/components/table/TableColumnFilterInput.d.ts +0 -9
  120. package/dist/components/table/TableColumnFilterInput.js +0 -108
  121. package/dist/components/table/TableColumnFilterPlaceholder.d.ts +0 -5
  122. package/dist/components/table/TableColumnFilterPlaceholder.js +0 -41
  123. package/dist/components/table/TableColumnFilterRow.d.ts +0 -16
  124. package/dist/components/table/TableColumnFilterRow.js +0 -68
  125. package/dist/hooks/useAutosave.spec.d.ts +0 -1
@@ -1,327 +1,156 @@
1
1
  import { DateSegmentItem } from "./DateSegmentItem.js";
2
2
  import { DateTimeUtils } from "../../../../utils/date-time.utils.js";
3
- import { c } from "react/compiler-runtime";
4
3
  import { Fragment, jsx } from "react/jsx-runtime";
5
4
  import { clsx } from "clsx";
6
- import { useEffect, useImperativeHandle, useRef } from "react";
5
+ import { useCallback, useEffect, useImperativeHandle, useMemo, useRef } from "react";
7
6
  import { useDateField, useLocale } from "react-aria";
8
7
  import { CalendarDate, CalendarDateTime, createCalendar } from "@internationalized/date";
9
8
  import { DateTime } from "luxon";
10
9
  import { useDateFieldState } from "react-stately";
11
10
  //#region src/components/inputs/DateTime/shared/DateField.tsx
12
11
  var omitNullValue = ({ value: _value, ...props }) => props;
13
- var DateField = (t0) => {
14
- const $ = c(65);
15
- const { ref, onClearChange, hidePlaceholder, isDisabled, disableManualEntry, dateGranularity: t1, isTimeOptional: t2, format, timeZone, segmentGroup, shouldAutoFixYear: t3, ...props } = t0;
16
- const dateGranularity = t1 === void 0 ? "day" : t1;
17
- const isTimeOptional = t2 === void 0 ? false : t2;
18
- const shouldAutoFixYear = t3 === void 0 ? false : t3;
12
+ var DateField = ({ ref, onClearChange, hidePlaceholder, isDisabled, disableManualEntry, dateGranularity = "day", isTimeOptional = false, format, timeZone, segmentGroup, shouldAutoFixYear = false, ...props }) => {
19
13
  const { locale } = useLocale();
20
14
  const previousValueRef = useRef(props.value);
21
15
  const dateFieldProps = props.value == null ? omitNullValue(props) : props;
22
- let t4;
23
- if ($[0] !== dateFieldProps || $[1] !== disableManualEntry || $[2] !== isDisabled || $[3] !== locale) {
24
- t4 = {
25
- ...dateFieldProps,
26
- isDisabled,
27
- isReadOnly: disableManualEntry,
28
- locale,
29
- createCalendar
30
- };
31
- $[0] = dateFieldProps;
32
- $[1] = disableManualEntry;
33
- $[2] = isDisabled;
34
- $[3] = locale;
35
- $[4] = t4;
36
- } else t4 = $[4];
37
- const state = useDateFieldState(t4);
16
+ const state = useDateFieldState({
17
+ ...dateFieldProps,
18
+ isDisabled,
19
+ isReadOnly: disableManualEntry,
20
+ locale,
21
+ createCalendar
22
+ });
38
23
  const dataFieldRef = useRef(null);
39
- let t5;
40
- if ($[5] !== dateFieldProps || $[6] !== disableManualEntry || $[7] !== isDisabled) {
41
- t5 = {
42
- ...dateFieldProps,
43
- isDisabled,
44
- isReadOnly: disableManualEntry
45
- };
46
- $[5] = dateFieldProps;
47
- $[6] = disableManualEntry;
48
- $[7] = isDisabled;
49
- $[8] = t5;
50
- } else t5 = $[8];
51
- const { fieldProps } = useDateField(t5, state, dataFieldRef);
52
- let t6;
53
- if ($[9] !== dateGranularity) {
54
- t6 = (segmentType) => {
55
- if (dateGranularity === "day") return true;
56
- if (dateGranularity === "month") return segmentType !== "day";
57
- if (dateGranularity === "year") return segmentType === "year";
58
- return true;
59
- };
60
- $[9] = dateGranularity;
61
- $[10] = t6;
62
- } else t6 = $[10];
63
- const isSegmentVisible = t6;
64
- let t7;
65
- if ($[11] !== isSegmentVisible || $[12] !== state.segments) {
66
- t7 = () => {
67
- const segments = [];
68
- for (const segment of state.segments) if (segment.type !== "literal") {
69
- if (isSegmentVisible(segment.type)) segments.push(segment);
70
- } else if (segments.length > 0 && segments.at(-1)?.type !== "literal") segments.push(segment);
71
- return segments;
72
- };
73
- $[11] = isSegmentVisible;
74
- $[12] = state.segments;
75
- $[13] = t7;
76
- } else t7 = $[13];
77
- const getSegmentsToRender = t7;
78
- let t8;
79
- if ($[14] !== getSegmentsToRender) {
80
- t8 = getSegmentsToRender();
81
- $[14] = getSegmentsToRender;
82
- $[15] = t8;
83
- } else t8 = $[15];
84
- const segmentsToRender = t8;
85
- const getSegmentNumber = _temp;
86
- let t9;
87
- if ($[16] !== isTimeOptional || $[17] !== props || $[18] !== shouldAutoFixYear || $[19] !== state) {
88
- t9 = () => {
89
- const monthSegment = state.segments.find(_temp2);
90
- const daySegment = state.segments.find(_temp3);
91
- const yearSegment = state.segments.find(_temp4);
92
- const hourSegment = state.segments.find(_temp5);
93
- const minuteSegment = state.segments.find(_temp6);
94
- const isMonthFilled = monthSegment && !monthSegment.isPlaceholder;
95
- const isDayFilled = daySegment && !daySegment.isPlaceholder;
96
- const isYearFilled = yearSegment && !yearSegment.isPlaceholder && yearSegment.text?.length > 0;
97
- const isYearComplete = isYearFilled && yearSegment.text?.length === 4;
98
- const isYearEmpty = yearSegment && !(parseInt(yearSegment.text) && yearSegment.text?.length === 4);
99
- const isDateFilled = isMonthFilled && isDayFilled && isYearFilled;
100
- const isHourEmpty = hourSegment && (hourSegment.isPlaceholder || Number.isNaN(parseInt(hourSegment.text ?? "", 10)));
101
- const isMinuteEmpty = minuteSegment && (minuteSegment.isPlaceholder || Number.isNaN(parseInt(minuteSegment.text ?? "", 10)));
102
- const month = getSegmentNumber(monthSegment);
103
- const day = getSegmentNumber(daySegment);
104
- const segmentYear = getSegmentNumber(yearSegment);
105
- let correctedValue = null;
106
- if (!isTimeOptional && isDateFilled && minuteSegment && isMinuteEmpty) {
107
- let minute = minuteSegment?.value || 0;
108
- if (minuteSegment?.text?.length && minuteSegment?.text?.length > 0) {
109
- minute = parseInt(minuteSegment?.text ?? "00");
110
- if (isNaN(minute)) minute = 0;
111
- }
112
- state.setSegment("minute", minute);
24
+ const { fieldProps } = useDateField({
25
+ ...dateFieldProps,
26
+ isDisabled,
27
+ isReadOnly: disableManualEntry
28
+ }, state, dataFieldRef);
29
+ const isSegmentVisible = useCallback((segmentType) => {
30
+ if (dateGranularity === "day") return true;
31
+ if (dateGranularity === "month") return segmentType !== "day";
32
+ if (dateGranularity === "year") return segmentType === "year";
33
+ return true;
34
+ }, [dateGranularity]);
35
+ const getSegmentsToRender = useCallback(() => {
36
+ const segments = [];
37
+ for (const segment of state.segments) if (segment.type !== "literal") {
38
+ if (isSegmentVisible(segment.type)) segments.push(segment);
39
+ } else if (segments.length > 0 && segments.at(-1)?.type !== "literal") segments.push(segment);
40
+ return segments;
41
+ }, [state.segments, isSegmentVisible]);
42
+ const segmentsToRender = useMemo(() => getSegmentsToRender(), [getSegmentsToRender]);
43
+ const getSegmentNumber = (segment_0) => {
44
+ if (!segment_0) return null;
45
+ if (typeof segment_0.value === "number" && !Number.isNaN(segment_0.value)) return segment_0.value;
46
+ const parsedValue = parseInt(segment_0.text ?? "");
47
+ return Number.isNaN(parsedValue) ? null : parsedValue;
48
+ };
49
+ const autoFixYear = () => {
50
+ const monthSegment = state.segments.find((segment_1) => segment_1.type === "month");
51
+ const daySegment = state.segments.find((segment_2) => segment_2.type === "day");
52
+ const yearSegment = state.segments.find((segment_3) => segment_3.type === "year");
53
+ const hourSegment = state.segments.find((segment_4) => segment_4.type === "hour");
54
+ const minuteSegment = state.segments.find((segment_5) => segment_5.type === "minute");
55
+ const isMonthFilled = monthSegment && !monthSegment.isPlaceholder;
56
+ const isDayFilled = daySegment && !daySegment.isPlaceholder;
57
+ const isYearFilled = yearSegment && !yearSegment.isPlaceholder && yearSegment.text?.length > 0;
58
+ const isYearComplete = isYearFilled && yearSegment.text?.length === 4;
59
+ const isYearEmpty = yearSegment && !(parseInt(yearSegment.text) && yearSegment.text?.length === 4);
60
+ const isDateFilled = isMonthFilled && isDayFilled && isYearFilled;
61
+ const isHourEmpty = hourSegment && (hourSegment.isPlaceholder || Number.isNaN(parseInt(hourSegment.text ?? "", 10)));
62
+ const isMinuteEmpty = minuteSegment && (minuteSegment.isPlaceholder || Number.isNaN(parseInt(minuteSegment.text ?? "", 10)));
63
+ const month = getSegmentNumber(monthSegment);
64
+ const day = getSegmentNumber(daySegment);
65
+ const segmentYear = getSegmentNumber(yearSegment);
66
+ let correctedValue = null;
67
+ if (!isTimeOptional && isDateFilled && minuteSegment && isMinuteEmpty) {
68
+ let minute = minuteSegment?.value || 0;
69
+ if (minuteSegment?.text?.length && minuteSegment?.text?.length > 0) {
70
+ minute = parseInt(minuteSegment?.text ?? "00");
71
+ if (isNaN(minute)) minute = 0;
113
72
  }
114
- if (!isTimeOptional && isDateFilled && hourSegment && isHourEmpty) {
115
- let hour = hourSegment?.value || 0;
116
- if (hourSegment?.text?.length && hourSegment?.text?.length > 0) {
117
- hour = parseInt(hourSegment?.text ?? "00");
118
- if (isNaN(hour)) hour = 0;
119
- }
120
- state.setSegment("hour", hour);
73
+ state.setSegment("minute", minute);
74
+ }
75
+ if (!isTimeOptional && isDateFilled && hourSegment && isHourEmpty) {
76
+ let hour = hourSegment?.value || 0;
77
+ if (hourSegment?.text?.length && hourSegment?.text?.length > 0) {
78
+ hour = parseInt(hourSegment?.text ?? "00");
79
+ if (isNaN(hour)) hour = 0;
121
80
  }
122
- if (shouldAutoFixYear && isMonthFilled && isDayFilled && isYearEmpty) {
123
- let correctedYear = (/* @__PURE__ */ new Date()).getFullYear();
124
- if (yearSegment?.text?.length && yearSegment?.text?.length === 2) correctedYear = parseInt(`20${yearSegment?.text}`);
125
- state.setSegment("year", correctedYear);
126
- const hasDateSegments = month !== null && day !== null;
127
- const hasTimeSegment = !!(hourSegment || minuteSegment);
128
- if (state.value) correctedValue = state.value.set({ year: correctedYear });
129
- else if (hasDateSegments && hasTimeSegment) correctedValue = new CalendarDateTime(correctedYear, month, day, getSegmentNumber(hourSegment) ?? 0, getSegmentNumber(minuteSegment) ?? 0);
130
- else if (hasDateSegments) correctedValue = new CalendarDate(correctedYear, month, day);
131
- }
132
- if (isTimeOptional && !state.value && isMonthFilled && isDayFilled && isYearComplete && hourSegment?.isPlaceholder && minuteSegment?.isPlaceholder && month !== null && day !== null && segmentYear !== null) correctedValue = new CalendarDateTime(segmentYear, month, day, 0, 0, 0, 0);
133
- const valueToCorrect = correctedValue ?? state.value;
134
- if (!valueToCorrect) return;
135
- const { year } = valueToCorrect;
136
- if (shouldAutoFixYear && year >= 0 && year <= 99) {
137
- const correctedYear_0 = year <= 50 ? 2e3 + year : 1900 + year;
138
- correctedValue = valueToCorrect.set({ year: correctedYear_0 });
139
- }
140
- if (correctedValue) {
141
- state.setValue(correctedValue);
142
- props.onChange?.(correctedValue);
143
- }
144
- };
145
- $[16] = isTimeOptional;
146
- $[17] = props;
147
- $[18] = shouldAutoFixYear;
148
- $[19] = state;
149
- $[20] = t9;
150
- } else t9 = $[20];
151
- const autoFixYear = t9;
152
- let t10;
153
- if ($[21] !== autoFixYear || $[22] !== fieldProps || $[23] !== isTimeOptional || $[24] !== shouldAutoFixYear) {
154
- t10 = (e) => {
155
- if ((shouldAutoFixYear || isTimeOptional) && !e.currentTarget.contains(e.relatedTarget)) autoFixYear();
156
- fieldProps.onBlur?.(e);
157
- };
158
- $[21] = autoFixYear;
159
- $[22] = fieldProps;
160
- $[23] = isTimeOptional;
161
- $[24] = shouldAutoFixYear;
162
- $[25] = t10;
163
- } else t10 = $[25];
164
- const handleBlur = t10;
165
- let t11;
166
- if ($[26] !== autoFixYear || $[27] !== state) {
167
- t11 = () => ({
168
- clearField: () => {
169
- state.setValue(null);
170
- },
171
- autoFixYear
172
- });
173
- $[26] = autoFixYear;
174
- $[27] = state;
175
- $[28] = t11;
176
- } else t11 = $[28];
177
- useImperativeHandle(ref, t11);
178
- let t12;
179
- if ($[29] !== previousValueRef || $[30] !== props.value || $[31] !== state) {
180
- t12 = () => {
181
- if (previousValueRef.current != null && props.value == null && state.value !== null) state.setValue(null);
182
- previousValueRef.current = props.value;
183
- };
184
- $[29] = previousValueRef;
185
- $[30] = props.value;
186
- $[31] = state;
187
- $[32] = t12;
188
- } else t12 = $[32];
189
- let t13;
190
- if ($[33] !== props.value || $[34] !== state) {
191
- t13 = [props.value, state];
192
- $[33] = props.value;
193
- $[34] = state;
194
- $[35] = t13;
195
- } else t13 = $[35];
196
- useEffect(t12, t13);
197
- let t14;
198
- let t15;
199
- if ($[36] !== onClearChange || $[37] !== state.segments) {
200
- t14 = () => {
201
- onClearChange?.(state.segments.some(_temp7));
202
- };
203
- t15 = [state.segments, onClearChange];
204
- $[36] = onClearChange;
205
- $[37] = state.segments;
206
- $[38] = t14;
207
- $[39] = t15;
208
- } else {
209
- t14 = $[38];
210
- t15 = $[39];
211
- }
212
- useEffect(t14, t15);
213
- let t16;
214
- if ($[40] !== disableManualEntry || $[41] !== format || $[42] !== state.value || $[43] !== timeZone) {
215
- const getFormattedDisplayValue = () => {
216
- if (!disableManualEntry) return null;
217
- if (!format) return null;
218
- if (!state.value) return null;
219
- const jsDate = DateTimeUtils.fromDateValueToLocal(state.value, timeZone);
220
- const formattedDate = DateTime.fromJSDate(jsDate);
221
- if (!formattedDate.isValid) return null;
222
- return formattedDate.toFormat(format);
223
- };
224
- t16 = getFormattedDisplayValue();
225
- $[40] = disableManualEntry;
226
- $[41] = format;
227
- $[42] = state.value;
228
- $[43] = timeZone;
229
- $[44] = t16;
230
- } else t16 = $[44];
231
- const formattedDisplayValue = t16;
232
- let t17;
233
- if ($[45] !== hidePlaceholder || $[46] !== isDisabled || $[47] !== segmentGroup || $[48] !== segmentsToRender || $[49] !== state) {
234
- t17 = /* @__PURE__ */ jsx(Fragment, { children: segmentsToRender.map((segment_7, i) => /* @__PURE__ */ jsx(DateSegmentItem, {
235
- segment: segment_7,
236
- segmentGroup,
237
- state,
238
- isDisabled,
239
- hidePlaceholder
240
- }, i)) });
241
- $[45] = hidePlaceholder;
242
- $[46] = isDisabled;
243
- $[47] = segmentGroup;
244
- $[48] = segmentsToRender;
245
- $[49] = state;
246
- $[50] = t17;
247
- } else t17 = $[50];
248
- let fieldContent = t17;
249
- if (formattedDisplayValue) {
250
- const t18 = isDisabled && "text-interactive-text-secondary-disabled";
251
- let t19;
252
- if ($[51] !== t18) {
253
- t19 = clsx("select-none", t18);
254
- $[51] = t18;
255
- $[52] = t19;
256
- } else t19 = $[52];
257
- let t20;
258
- if ($[53] !== formattedDisplayValue || $[54] !== t19) {
259
- t20 = /* @__PURE__ */ jsx("span", {
260
- className: t19,
261
- children: formattedDisplayValue
262
- });
263
- $[53] = formattedDisplayValue;
264
- $[54] = t19;
265
- $[55] = t20;
266
- } else t20 = $[55];
267
- fieldContent = t20;
268
- }
269
- const t18 = disableManualEntry && "pointer-events-none";
270
- let t19;
271
- if ($[56] !== t18) {
272
- t19 = clsx("relative w-full", t18);
273
- $[56] = t18;
274
- $[57] = t19;
275
- } else t19 = $[57];
276
- let t20;
277
- if ($[58] !== fieldContent) {
278
- t20 = /* @__PURE__ */ jsx("div", {
81
+ state.setSegment("hour", hour);
82
+ }
83
+ if (shouldAutoFixYear && isMonthFilled && isDayFilled && isYearEmpty) {
84
+ let correctedYear = (/* @__PURE__ */ new Date()).getFullYear();
85
+ if (yearSegment?.text?.length && yearSegment?.text?.length === 2) correctedYear = parseInt(`20${yearSegment?.text}`);
86
+ state.setSegment("year", correctedYear);
87
+ const hasDateSegments = month !== null && day !== null;
88
+ const hasTimeSegment = !!(hourSegment || minuteSegment);
89
+ if (state.value) correctedValue = state.value.set({ year: correctedYear });
90
+ else if (hasDateSegments && hasTimeSegment) correctedValue = new CalendarDateTime(correctedYear, month, day, getSegmentNumber(hourSegment) ?? 0, getSegmentNumber(minuteSegment) ?? 0);
91
+ else if (hasDateSegments) correctedValue = new CalendarDate(correctedYear, month, day);
92
+ }
93
+ if (isTimeOptional && !state.value && isMonthFilled && isDayFilled && isYearComplete && hourSegment?.isPlaceholder && minuteSegment?.isPlaceholder && month !== null && day !== null && segmentYear !== null) correctedValue = new CalendarDateTime(segmentYear, month, day, 0, 0, 0, 0);
94
+ const valueToCorrect = correctedValue ?? state.value;
95
+ if (!valueToCorrect) return;
96
+ const { year } = valueToCorrect;
97
+ if (shouldAutoFixYear && year >= 0 && year <= 99) {
98
+ const correctedYear_0 = year <= 50 ? 2e3 + year : 1900 + year;
99
+ correctedValue = valueToCorrect.set({ year: correctedYear_0 });
100
+ }
101
+ if (correctedValue) {
102
+ state.setValue(correctedValue);
103
+ props.onChange?.(correctedValue);
104
+ }
105
+ };
106
+ const handleBlur = (e) => {
107
+ if ((shouldAutoFixYear || isTimeOptional) && !e.currentTarget.contains(e.relatedTarget)) autoFixYear();
108
+ fieldProps.onBlur?.(e);
109
+ };
110
+ useImperativeHandle(ref, () => ({
111
+ clearField: () => {
112
+ state.setValue(null);
113
+ },
114
+ autoFixYear
115
+ }));
116
+ useEffect(() => {
117
+ if (previousValueRef.current != null && props.value == null && state.value !== null) state.setValue(null);
118
+ previousValueRef.current = props.value;
119
+ }, [props.value, state]);
120
+ useEffect(() => {
121
+ onClearChange?.(state.segments.some((segment_6) => segment_6.type !== "literal" && segment_6.isPlaceholder === false));
122
+ }, [state.segments, onClearChange]);
123
+ const getFormattedDisplayValue = () => {
124
+ if (!disableManualEntry) return null;
125
+ if (!format) return null;
126
+ if (!state.value) return null;
127
+ const jsDate = DateTimeUtils.fromDateValueToLocal(state.value, timeZone);
128
+ const formattedDate = DateTime.fromJSDate(jsDate);
129
+ if (!formattedDate.isValid) return null;
130
+ return formattedDate.toFormat(format);
131
+ };
132
+ const formattedDisplayValue = getFormattedDisplayValue();
133
+ let fieldContent = /* @__PURE__ */ jsx(Fragment, { children: segmentsToRender.map((segment_7, i) => /* @__PURE__ */ jsx(DateSegmentItem, {
134
+ segment: segment_7,
135
+ segmentGroup,
136
+ state,
137
+ isDisabled,
138
+ hidePlaceholder
139
+ }, i)) });
140
+ if (formattedDisplayValue) fieldContent = /* @__PURE__ */ jsx("span", {
141
+ className: clsx("select-none", isDisabled && "text-interactive-text-secondary-disabled"),
142
+ children: formattedDisplayValue
143
+ });
144
+ return /* @__PURE__ */ jsx("div", {
145
+ ...fieldProps,
146
+ ref: dataFieldRef,
147
+ onBlur: handleBlur,
148
+ className: clsx("relative w-full", disableManualEntry && "pointer-events-none"),
149
+ children: /* @__PURE__ */ jsx("div", {
279
150
  className: "flex",
280
151
  children: fieldContent
281
- });
282
- $[58] = fieldContent;
283
- $[59] = t20;
284
- } else t20 = $[59];
285
- let t21;
286
- if ($[60] !== fieldProps || $[61] !== handleBlur || $[62] !== t19 || $[63] !== t20) {
287
- t21 = /* @__PURE__ */ jsx("div", {
288
- ...fieldProps,
289
- ref: dataFieldRef,
290
- onBlur: handleBlur,
291
- className: t19,
292
- children: t20
293
- });
294
- $[60] = fieldProps;
295
- $[61] = handleBlur;
296
- $[62] = t19;
297
- $[63] = t20;
298
- $[64] = t21;
299
- } else t21 = $[64];
300
- return t21;
152
+ })
153
+ });
301
154
  };
302
- function _temp(segment_0) {
303
- if (!segment_0) return null;
304
- if (typeof segment_0.value === "number" && !Number.isNaN(segment_0.value)) return segment_0.value;
305
- const parsedValue = parseInt(segment_0.text ?? "");
306
- return Number.isNaN(parsedValue) ? null : parsedValue;
307
- }
308
- function _temp2(segment_1) {
309
- return segment_1.type === "month";
310
- }
311
- function _temp3(segment_2) {
312
- return segment_2.type === "day";
313
- }
314
- function _temp4(segment_3) {
315
- return segment_3.type === "year";
316
- }
317
- function _temp5(segment_4) {
318
- return segment_4.type === "hour";
319
- }
320
- function _temp6(segment_5) {
321
- return segment_5.type === "minute";
322
- }
323
- function _temp7(segment_6) {
324
- return segment_6.type !== "literal" && segment_6.isPlaceholder === false;
325
- }
326
155
  //#endregion
327
156
  export { DateField };
@@ -39,8 +39,7 @@ interface DatePickerInputProps extends InputVariantProps {
39
39
  timeZone?: string;
40
40
  isTimeOptional?: boolean;
41
41
  format?: string;
42
- fireBlurOnChange?: boolean;
43
42
  onClear?: () => void;
44
43
  }
45
- export declare const DatePickerInput: ({ ref, as, groupProps, fieldProps, endFieldProps, fieldValue, endFieldValue, isValueControlled, hasValue, buttonProps, isDisabled, isInvalid, disableDropdown, variant, size, isDateTime, shouldShrinkInput, isClearable, headerProps, todayIcon, todayIconButtonSize, todayIconButtonComponent, todayIconPlacement, isDirty, isRequired, disableManualEntry, autoFixYear, placeholder, className, onOpenDropdown, dateGranularity, timeZone: timeZoneProp, isTimeOptional, format, fireBlurOnChange, onClear: onClearProp, ...props }: DatePickerInputProps) => import("react/jsx-runtime").JSX.Element;
44
+ export declare const DatePickerInput: ({ ref, as, groupProps, fieldProps, endFieldProps, fieldValue, endFieldValue, isValueControlled, hasValue, buttonProps, isDisabled, isInvalid, disableDropdown, variant, size, isDateTime, shouldShrinkInput, isClearable, headerProps, todayIcon, todayIconButtonSize, todayIconButtonComponent, todayIconPlacement, isDirty, isRequired, disableManualEntry, autoFixYear, placeholder, className, onOpenDropdown, dateGranularity, timeZone: timeZoneProp, isTimeOptional, format, onClear: onClearProp, ...props }: DatePickerInputProps) => import("react/jsx-runtime").JSX.Element;
46
45
  export {};