@povio/ui 3.3.0 → 3.3.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 (98) hide show
  1. package/README.md +1 -1
  2. package/dist/browser-tests/checkbox/CheckboxGroupHarness.d.ts +10 -0
  3. package/dist/browser-tests/checkbox/CheckboxHarness.d.ts +10 -0
  4. package/dist/browser-tests/checkbox/checkbox-group.spec.d.ts +1 -0
  5. package/dist/browser-tests/checkbox/checkbox.spec.d.ts +1 -0
  6. package/dist/browser-tests/datetime-picker/DateTimeHarnesses.d.ts +43 -0
  7. package/dist/browser-tests/datetime-picker/assertions.d.ts +9 -0
  8. package/dist/browser-tests/datetime-picker/date-input-focus.firefox.spec.d.ts +1 -0
  9. package/dist/browser-tests/datetime-picker/date-picker.spec.d.ts +1 -0
  10. package/dist/browser-tests/datetime-picker/date-range-picker.spec.d.ts +1 -0
  11. package/dist/browser-tests/datetime-picker/date-time-picker.spec.d.ts +1 -0
  12. package/dist/browser-tests/datetime-picker/time-picker.spec.d.ts +1 -0
  13. package/dist/browser-tests/file-upload/FileUploadHarness.d.ts +4 -0
  14. package/dist/browser-tests/file-upload/file-upload.spec.d.ts +1 -0
  15. package/dist/browser-tests/file-upload-container/FileUploadContainerHarness.d.ts +4 -0
  16. package/dist/browser-tests/file-upload-container/file-upload-container.spec.d.ts +1 -0
  17. package/dist/browser-tests/input-upload/InputUploadHarness.d.ts +9 -0
  18. package/dist/browser-tests/input-upload/input-upload.spec.d.ts +1 -0
  19. package/dist/browser-tests/modal/ModalHarness.d.ts +5 -0
  20. package/dist/browser-tests/modal/modal.spec.d.ts +1 -0
  21. package/dist/browser-tests/number-input/NumberInputHarness.d.ts +10 -0
  22. package/dist/browser-tests/number-input/number-input.spec.d.ts +1 -0
  23. package/dist/browser-tests/number-range-input/NumberRangeInputHarness.d.ts +10 -0
  24. package/dist/browser-tests/number-range-input/number-range-input.spec.d.ts +1 -0
  25. package/dist/browser-tests/password-input/PasswordInputHarness.d.ts +6 -0
  26. package/dist/browser-tests/password-input/password-input.spec.d.ts +1 -0
  27. package/dist/browser-tests/radio-group/RadioGroupHarness.d.ts +15 -0
  28. package/dist/browser-tests/radio-group/radio-group.spec.d.ts +1 -0
  29. package/dist/browser-tests/selection/SelectionHarnesses.d.ts +61 -0
  30. package/dist/browser-tests/selection/autocomplete.spec.d.ts +1 -0
  31. package/dist/browser-tests/selection/interactions.d.ts +2 -0
  32. package/dist/browser-tests/selection/query-autocomplete.spec.d.ts +1 -0
  33. package/dist/browser-tests/selection/query-select.spec.d.ts +1 -0
  34. package/dist/browser-tests/selection/select.spec.d.ts +1 -0
  35. package/dist/browser-tests/slider/SliderHarness.d.ts +11 -0
  36. package/dist/browser-tests/slider/slider.spec.d.ts +1 -0
  37. package/dist/browser-tests/text-area/TextAreaHarness.d.ts +10 -0
  38. package/dist/browser-tests/text-area/text-area.spec.d.ts +1 -0
  39. package/dist/browser-tests/text-input/TextInputHarness.d.ts +10 -0
  40. package/dist/browser-tests/text-input/text-input.spec.d.ts +1 -0
  41. package/dist/browser-tests/toggle/ToggleHarness.d.ts +10 -0
  42. package/dist/browser-tests/toggle/toggle.spec.d.ts +1 -0
  43. package/dist/browser-tests/utils/blur.d.ts +22 -0
  44. package/dist/browser-tests/utils/events.d.ts +4 -0
  45. package/dist/browser-tests/utils/input.d.ts +10 -0
  46. package/dist/components/Breadcrumbs/Breadcrumbs.js +206 -55
  47. package/dist/components/buttons/Button/button.cva.d.ts +1 -1
  48. package/dist/components/buttons/Button/button.cva.js +4 -4
  49. package/dist/components/buttons/InlineIconButton/InlineIconButton.js +34 -9
  50. package/dist/components/buttons/PillButton/pillButton.cva.js +4 -4
  51. package/dist/components/buttons/shared/ButtonContent.js +80 -22
  52. package/dist/components/inputs/Checkbox/CheckboxCheckmark.js +24 -10
  53. package/dist/components/inputs/DateTime/DatePicker/DatePicker.js +222 -74
  54. package/dist/components/inputs/DateTime/DateRangePicker/DateRangePicker.js +182 -56
  55. package/dist/components/inputs/DateTime/DateTimePicker/DateTimePicker.js +128 -41
  56. package/dist/components/inputs/DateTime/shared/Calendar.js +339 -139
  57. package/dist/components/inputs/DateTime/shared/CalendarCell.js +308 -114
  58. package/dist/components/inputs/DateTime/shared/CalendarGrid.js +150 -35
  59. package/dist/components/inputs/DateTime/shared/CalendarHeader.js +229 -95
  60. package/dist/components/inputs/DateTime/shared/CalendarSelectHeader.js +296 -115
  61. package/dist/components/inputs/DateTime/shared/DateField.js +306 -135
  62. package/dist/components/inputs/DateTime/shared/DatePickerInput.js +338 -140
  63. package/dist/components/inputs/DateTime/shared/DateTimeDialogFooter.js +59 -10
  64. package/dist/components/inputs/File/FileUpload.js +1 -1
  65. package/dist/components/inputs/File/InputUpload.js +261 -65
  66. package/dist/components/inputs/File/shared/FileUploadContentEmpty.js +180 -48
  67. package/dist/components/inputs/File/shared/FileUploadContentError.js +265 -95
  68. package/dist/components/inputs/File/shared/FileUploadContentFilled.js +261 -99
  69. package/dist/components/inputs/File/shared/FileUploadContentLoading.js +234 -56
  70. package/dist/components/inputs/File/shared/ProgressBar.js +102 -15
  71. package/dist/components/inputs/Input/NumberRangeInput/NumberRangeInput.js +313 -75
  72. package/dist/components/inputs/Selection/Autocomplete/Autocomplete.js +83 -23
  73. package/dist/components/inputs/Selection/Select/QuerySelect.js +96 -30
  74. package/dist/components/inputs/Selection/shared/SelectListBox.js +163 -51
  75. package/dist/components/inputs/Selection/shared/useSelectItems.js +108 -48
  76. package/dist/components/inputs/Skeleton/InputFrame.js +550 -177
  77. package/dist/components/inputs/TextEditor/TextEditor.js +389 -87
  78. package/dist/components/navigation/Accordion/Accordion.js +69 -22
  79. package/dist/components/navigation/Accordion/AccordionItem.js +86 -41
  80. package/dist/components/navigation/Stepper/Stepper.js +67 -22
  81. package/dist/components/overlays/ActionModal/ActionModal.js +169 -35
  82. package/dist/components/overlays/BottomSheet/BottomSheet.js +1 -1
  83. package/dist/components/overlays/Modal/Modal.d.ts +3 -2
  84. package/dist/components/overlays/Modal/Modal.js +3 -1
  85. package/dist/components/overlays/ResponsivePopover/ResponsivePopover.js +110 -29
  86. package/dist/components/shared/pagination/Pagination.js +108 -22
  87. package/dist/components/shared/pagination/minWidth.cva.d.ts +1 -1
  88. package/dist/components/status/Alert/Alert.js +97 -30
  89. package/dist/components/table/InfiniteTable.js +67 -16
  90. package/dist/components/text/Typography/Typography.js +23 -8
  91. package/dist/config/confirmation.context.js +1 -1
  92. package/dist/config/theme.context.js +98 -45
  93. package/dist/config/uiConfig.context.js +39 -8
  94. package/dist/hooks/useDebounceCallback.js +51 -17
  95. package/dist/hooks/useFormAutosave.js +120 -33
  96. package/dist/hooks/useLongPressRepeat.js +55 -20
  97. package/dist/vitest.setup.browser.d.ts +6 -0
  98. package/package.json +1 -1
@@ -1,156 +1,327 @@
1
1
  import { DateSegmentItem } from "./DateSegmentItem.js";
2
2
  import { DateTimeUtils } from "../../../../utils/date-time.utils.js";
3
+ import { c } from "react/compiler-runtime";
3
4
  import { Fragment, jsx } from "react/jsx-runtime";
4
5
  import { clsx } from "clsx";
5
- import { useCallback, useEffect, useImperativeHandle, useMemo, useRef } from "react";
6
+ import { useEffect, useImperativeHandle, useRef } from "react";
6
7
  import { useDateField, useLocale } from "react-aria";
7
8
  import { CalendarDate, CalendarDateTime, createCalendar } from "@internationalized/date";
8
9
  import { DateTime } from "luxon";
9
10
  import { useDateFieldState } from "react-stately";
10
11
  //#region src/components/inputs/DateTime/shared/DateField.tsx
11
12
  var omitNullValue = ({ value: _value, ...props }) => props;
12
- var DateField = ({ ref, onClearChange, hidePlaceholder, isDisabled, disableManualEntry, dateGranularity = "day", isTimeOptional = false, format, timeZone, segmentGroup, shouldAutoFixYear = false, ...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;
13
19
  const { locale } = useLocale();
14
20
  const previousValueRef = useRef(props.value);
15
21
  const dateFieldProps = props.value == null ? omitNullValue(props) : props;
16
- const state = useDateFieldState({
17
- ...dateFieldProps,
18
- isDisabled,
19
- isReadOnly: disableManualEntry,
20
- locale,
21
- createCalendar
22
- });
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);
23
38
  const dataFieldRef = useRef(null);
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;
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);
72
113
  }
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;
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);
80
121
  }
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", {
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", {
150
279
  className: "flex",
151
280
  children: fieldContent
152
- })
153
- });
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;
154
301
  };
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
+ }
155
326
  //#endregion
156
327
  export { DateField };