@povio/ui 3.3.0-rc.4 → 3.3.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.
Files changed (63) 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/CheckboxCheckmark.js +10 -24
  6. package/dist/components/inputs/DateTime/DatePicker/DatePicker.js +93 -227
  7. package/dist/components/inputs/DateTime/DateRangePicker/DateRangePicker.js +84 -202
  8. package/dist/components/inputs/DateTime/DateTimePicker/DateTimePicker.js +60 -132
  9. package/dist/components/inputs/DateTime/shared/Calendar.js +139 -339
  10. package/dist/components/inputs/DateTime/shared/CalendarCell.js +114 -308
  11. package/dist/components/inputs/DateTime/shared/CalendarGrid.js +35 -150
  12. package/dist/components/inputs/DateTime/shared/CalendarHeader.js +95 -229
  13. package/dist/components/inputs/DateTime/shared/CalendarSelectHeader.js +115 -296
  14. package/dist/components/inputs/DateTime/shared/DateField.js +135 -306
  15. package/dist/components/inputs/DateTime/shared/DatePickerInput.js +140 -338
  16. package/dist/components/inputs/DateTime/shared/DateTimeDialogFooter.js +10 -59
  17. package/dist/components/inputs/File/FileUpload.js +1 -1
  18. package/dist/components/inputs/File/InputUpload.js +65 -261
  19. package/dist/components/inputs/File/shared/FileUploadContentEmpty.js +48 -180
  20. package/dist/components/inputs/File/shared/FileUploadContentError.js +95 -265
  21. package/dist/components/inputs/File/shared/FileUploadContentFilled.js +99 -261
  22. package/dist/components/inputs/File/shared/FileUploadContentLoading.js +56 -234
  23. package/dist/components/inputs/File/shared/ProgressBar.js +15 -102
  24. package/dist/components/inputs/FormField/FormField.js +34 -47
  25. package/dist/components/inputs/Input/NumberRangeInput/NumberRangeInput.js +75 -313
  26. package/dist/components/inputs/Selection/Autocomplete/Autocomplete.js +23 -83
  27. package/dist/components/inputs/Selection/Select/QuerySelect.js +30 -96
  28. package/dist/components/inputs/Selection/Select/Select.js +3 -3
  29. package/dist/components/inputs/Selection/shared/SelectInput.js +1 -0
  30. package/dist/components/inputs/Selection/shared/SelectListBox.js +51 -163
  31. package/dist/components/inputs/Selection/shared/useSelectItems.js +48 -108
  32. package/dist/components/inputs/Skeleton/InputFrame.js +177 -552
  33. package/dist/components/inputs/TextEditor/TextEditor.js +87 -389
  34. package/dist/components/inputs/shared/InputClear.js +24 -40
  35. package/dist/components/navigation/Accordion/Accordion.js +22 -69
  36. package/dist/components/navigation/Accordion/AccordionItem.js +41 -86
  37. package/dist/components/navigation/Stepper/Stepper.js +22 -67
  38. package/dist/components/overlays/ActionModal/ActionModal.js +35 -169
  39. package/dist/components/overlays/ResponsivePopover/ResponsivePopover.js +29 -110
  40. package/dist/components/shared/pagination/Pagination.js +22 -108
  41. package/dist/components/status/Alert/Alert.js +30 -97
  42. package/dist/components/table/InfiniteTable.js +16 -67
  43. package/dist/components/table/Table.d.ts +2 -8
  44. package/dist/components/table/Table.js +33 -55
  45. package/dist/components/text/Typography/Typography.js +8 -23
  46. package/dist/config/confirmation.context.js +1 -1
  47. package/dist/config/theme.context.js +45 -98
  48. package/dist/config/uiConfig.context.js +8 -39
  49. package/dist/config/uiOverrides.context.d.ts +0 -1
  50. package/dist/hooks/useDebounceCallback.js +17 -51
  51. package/dist/hooks/useFormAutosave.js +33 -120
  52. package/dist/hooks/useLongPressRepeat.js +20 -55
  53. package/dist/index.d.ts +0 -1
  54. package/dist/index.js +1 -2
  55. package/package.json +2 -2
  56. package/dist/components/inputs/FormField/formField.cva.d.ts +0 -11
  57. package/dist/components/inputs/FormField/formField.cva.js +0 -16
  58. package/dist/components/table/TableColumnFilterInput.d.ts +0 -9
  59. package/dist/components/table/TableColumnFilterInput.js +0 -108
  60. package/dist/components/table/TableColumnFilterPlaceholder.d.ts +0 -5
  61. package/dist/components/table/TableColumnFilterPlaceholder.js +0 -41
  62. package/dist/components/table/TableColumnFilterRow.d.ts +0 -16
  63. package/dist/components/table/TableColumnFilterRow.js +0 -68
@@ -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 };