@razorpay/blade 12.47.0 → 12.48.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 (55) hide show
  1. package/build/lib/native/components/Input/TextInput/TextInput.js +1 -1
  2. package/build/lib/native/components/Input/TextInput/TextInput.js.map +1 -1
  3. package/build/lib/native/components/Input/TextInput/useFormattedInput.js +1 -1
  4. package/build/lib/native/components/Input/TextInput/useFormattedInput.js.map +1 -1
  5. package/build/lib/web/development/components/BottomSheet/BottomSheet.web.js +2 -1
  6. package/build/lib/web/development/components/BottomSheet/BottomSheet.web.js.map +1 -1
  7. package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js +162 -113
  8. package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js.map +1 -1
  9. package/build/lib/web/development/components/DatePicker/CalendarFooter.web.js +1 -1
  10. package/build/lib/web/development/components/DatePicker/CalendarFooter.web.js.map +1 -1
  11. package/build/lib/web/development/components/DatePicker/DateInput.web.js +202 -147
  12. package/build/lib/web/development/components/DatePicker/DateInput.web.js.map +1 -1
  13. package/build/lib/web/development/components/DatePicker/QuickSelection/PresetContext.js +122 -0
  14. package/build/lib/web/development/components/DatePicker/QuickSelection/PresetContext.js.map +1 -0
  15. package/build/lib/web/development/components/DatePicker/QuickSelection/PresetDropdown.web.js +46 -0
  16. package/build/lib/web/development/components/DatePicker/QuickSelection/PresetDropdown.web.js.map +1 -0
  17. package/build/lib/web/development/components/DatePicker/QuickSelection/PresetSideBar.web.js +19 -19
  18. package/build/lib/web/development/components/DatePicker/QuickSelection/PresetSideBar.web.js.map +1 -1
  19. package/build/lib/web/development/components/DatePicker/QuickSelection/utils.js +9 -0
  20. package/build/lib/web/development/components/DatePicker/QuickSelection/utils.js.map +1 -0
  21. package/build/lib/web/development/components/DatePicker/usePopup.js +10 -2
  22. package/build/lib/web/development/components/DatePicker/usePopup.js.map +1 -1
  23. package/build/lib/web/development/components/DatePicker/utils.js +419 -1
  24. package/build/lib/web/development/components/DatePicker/utils.js.map +1 -1
  25. package/build/lib/web/development/components/Input/TextInput/TextInput.js +3 -1
  26. package/build/lib/web/development/components/Input/TextInput/TextInput.js.map +1 -1
  27. package/build/lib/web/development/components/Input/TextInput/useFormattedInput.js +21 -0
  28. package/build/lib/web/development/components/Input/TextInput/useFormattedInput.js.map +1 -1
  29. package/build/lib/web/production/components/BottomSheet/BottomSheet.web.js +2 -1
  30. package/build/lib/web/production/components/BottomSheet/BottomSheet.web.js.map +1 -1
  31. package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js +162 -113
  32. package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js.map +1 -1
  33. package/build/lib/web/production/components/DatePicker/CalendarFooter.web.js +1 -1
  34. package/build/lib/web/production/components/DatePicker/CalendarFooter.web.js.map +1 -1
  35. package/build/lib/web/production/components/DatePicker/DateInput.web.js +202 -147
  36. package/build/lib/web/production/components/DatePicker/DateInput.web.js.map +1 -1
  37. package/build/lib/web/production/components/DatePicker/QuickSelection/PresetContext.js +122 -0
  38. package/build/lib/web/production/components/DatePicker/QuickSelection/PresetContext.js.map +1 -0
  39. package/build/lib/web/production/components/DatePicker/QuickSelection/PresetDropdown.web.js +46 -0
  40. package/build/lib/web/production/components/DatePicker/QuickSelection/PresetDropdown.web.js.map +1 -0
  41. package/build/lib/web/production/components/DatePicker/QuickSelection/PresetSideBar.web.js +19 -19
  42. package/build/lib/web/production/components/DatePicker/QuickSelection/PresetSideBar.web.js.map +1 -1
  43. package/build/lib/web/production/components/DatePicker/QuickSelection/utils.js +9 -0
  44. package/build/lib/web/production/components/DatePicker/QuickSelection/utils.js.map +1 -0
  45. package/build/lib/web/production/components/DatePicker/usePopup.js +10 -2
  46. package/build/lib/web/production/components/DatePicker/usePopup.js.map +1 -1
  47. package/build/lib/web/production/components/DatePicker/utils.js +419 -1
  48. package/build/lib/web/production/components/DatePicker/utils.js.map +1 -1
  49. package/build/lib/web/production/components/Input/TextInput/TextInput.js +3 -1
  50. package/build/lib/web/production/components/Input/TextInput/TextInput.js.map +1 -1
  51. package/build/lib/web/production/components/Input/TextInput/useFormattedInput.js +21 -0
  52. package/build/lib/web/production/components/Input/TextInput/useFormattedInput.js.map +1 -1
  53. package/build/types/components/index.d.ts +10 -5
  54. package/build/types/components/index.native.d.ts +10 -5
  55. package/package.json +1 -1
@@ -1,60 +1,155 @@
1
- import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
1
+ import _typeof from '@babel/runtime/helpers/typeof';
2
2
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
5
  import React__default from 'react';
4
6
  import { useDatesContext } from '@mantine/dates';
5
- import { getFormattedDate } from './utils.js';
7
+ import { stripDelimiters, validateAndParseDateInput, rangeFormattedValue, getTextInputFormat, finalInputFormat, getFormattedDate, rangeInputPlaceHolder } from './utils.js';
8
+ import { usePresetContext } from './QuickSelection/PresetContext.js';
6
9
  import '../Box/BaseBox/index.js';
7
- import '../Icons/index.js';
8
- import '../Input/BaseInput/index.js';
9
- import '../../tokens/global/index.js';
10
+ import '../Input/TextInput/index.js';
10
11
  import '../../utils/index.js';
11
- import { useIsMobile } from '../../utils/useIsMobile.js';
12
+ import '../Icons/index.js';
12
13
  import '../../utils/makeAnalyticsAttribute/index.js';
13
14
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
14
- import { BaseInput } from '../Input/BaseInput/BaseInput.js';
15
+ import { TextInput } from '../Input/TextInput/TextInput.js';
16
+ import CalendarIcon from '../Icons/CalendarIcon/CalendarIcon.js';
15
17
  import { isReactNative } from '../../utils/platform/isReactNative.js';
16
18
  import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
17
- import { size } from '../../tokens/global/size.js';
18
19
  import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
19
- import CalendarIcon from '../Icons/CalendarIcon/CalendarIcon.js';
20
- import ArrowRightIcon from '../Icons/ArrowRightIcon/ArrowRightIcon.js';
21
- import { makeSize } from '../../utils/makeSize/makeSize.js';
22
20
 
23
- var _excluded = ["value", "name", "isRequired", "isDisabled"],
24
- _excluded2 = ["selectionType", "referenceProps", "inputRef", "date", "label", "labelPosition", "labelSuffix", "labelTrailing", "autoFocus", "name", "size", "necessityIndicator", "successText", "errorText", "helpText", "format", "placeholder"];
21
+ var _excluded = ["format", "date", "setControlledValue", "leadingDropdown", "tags", "id"],
22
+ _excluded2 = ["value", "name", "isRequired", "isDisabled"],
23
+ _excluded3 = ["selectionType", "referenceProps", "inputRef", "date", "label", "labelPosition", "labelSuffix", "labelTrailing", "autoFocus", "name", "size", "necessityIndicator", "successText", "errorText", "helpText", "format", "placeholder", "setControlledValue", "leadingDropdown", "selectedPreset", "excludeDate", "minDate", "maxDate"];
25
24
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26
25
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27
26
  var _DateInput = function _DateInput(props, ref) {
28
- var _props$label;
29
- return /*#__PURE__*/jsx(BaseInput, _objectSpread(_objectSpread({}, props), {}, {
27
+ var _textInputProps$error;
28
+ var format = props.format,
29
+ date = props.date,
30
+ setControlledValue = props.setControlledValue,
31
+ leadingDropdown = props.leadingDropdown,
32
+ tags = props.tags,
33
+ id = props.id,
34
+ textInputProps = _objectWithoutProperties(props, _excluded);
35
+ var _React$useState = React__default.useState(['']),
36
+ _React$useState2 = _slicedToArray(_React$useState, 2),
37
+ inputValue = _React$useState2[0],
38
+ setInputValue = _React$useState2[1];
39
+ var _React$useState3 = React__default.useState(undefined),
40
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
41
+ validationError = _React$useState4[0],
42
+ setValidationError = _React$useState4[1];
43
+ var presetContext = usePresetContext();
44
+
45
+ // Determine selection type: prefer preset context calculation over props
46
+ // This handles "Today" presets that should display as single even though data is range
47
+ var isRange = (presetContext === null || presetContext === void 0 ? void 0 : presetContext.effectiveSelectionType) === 'single' ? false : (presetContext === null || presetContext === void 0 ? void 0 : presetContext.effectiveSelectionType) === 'range' || props.selectionType === 'range';
48
+
49
+ // Sync internal input state with external formatted values from parent component
50
+ // textInputProps.value comes from DatePickerInput as formatted strings: ["25/12/2024", "31/12/2024"]
51
+ // We strip delimiters for internal processing: ["25122024", "31122024"]
52
+ // This prevents double formatting and helps to validate the input easier during user typing
53
+ React__default.useEffect(function () {
54
+ if (textInputProps.value) {
55
+ setInputValue(isRange ? [stripDelimiters(textInputProps.value[0]), stripDelimiters(textInputProps.value[1])] : [stripDelimiters(textInputProps.value[0])]);
56
+ }
57
+ }, [textInputProps.value, isRange, format]);
58
+
59
+ // Clear validation error only when the actual selected date changes
60
+ // (e.g., user selected a valid date from the calendar). This avoids
61
+ // clearing errors during typing/blur unless the value truly updated.
62
+ React__default.useEffect(function () {
63
+ setValidationError(undefined);
64
+ }, [date]);
65
+ var applyDateValue = React__default.useCallback(function (inputValue) {
66
+ var shouldClearWhenEmpty = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
67
+ if (inputValue !== null && inputValue !== void 0 && inputValue.trim()) {
68
+ // Validate input and get parsed dates in one atomic operation (includes all constraints)
69
+ var validation = validateAndParseDateInput(inputValue, isRange, format, {
70
+ excludeDate: props.excludeDate,
71
+ minDate: props.minDate,
72
+ maxDate: props.maxDate
73
+ });
74
+ if (validation.shouldBlock) {
75
+ return; // Block invalid input to prevent data corruption
76
+ }
77
+
78
+ // Apply the pre-parsed date values to controlled state (no redundant parsing)
79
+ if (validation.parsedValue !== undefined) {
80
+ var finalValue = validation.parsedValue;
81
+
82
+ // Special handling: if preset context shows single but props expect range
83
+ // (like "Today" preset), convert single date back to same-day range
84
+ if ((presetContext === null || presetContext === void 0 ? void 0 : presetContext.effectiveSelectionType) === 'single' && props.selectionType === 'range' && validation.parsedValue instanceof Date) {
85
+ finalValue = [validation.parsedValue, validation.parsedValue];
86
+ }
87
+ setControlledValue === null || setControlledValue === void 0 ? void 0 : setControlledValue(finalValue);
88
+ }
89
+ } else if (shouldClearWhenEmpty) {
90
+ // Clear controlled value when input is emptied (onChange only, not onBlur)
91
+ setControlledValue === null || setControlledValue === void 0 ? void 0 : setControlledValue(isRange ? [null, null] : null);
92
+ }
93
+ }, [isRange, setControlledValue, presetContext === null || presetContext === void 0 ? void 0 : presetContext.effectiveSelectionType, props.selectionType, format, props.excludeDate, props.minDate, props.maxDate]);
94
+ var handleInputChange = function handleInputChange(_ref) {
95
+ var value = _ref.value;
96
+ setValidationError(undefined);
97
+ // Apply changes immediately during typing (with empty clearing enabled)
98
+ applyDateValue(value !== null && value !== void 0 ? value : '', true);
99
+ };
100
+ var handleBlur = React__default.useCallback(function (params) {
101
+ var _ref2, _params$event$target$, _params$event;
102
+ var currentInputValue = (_ref2 = (_params$event$target$ = (_params$event = params.event) === null || _params$event === void 0 ? void 0 : _params$event.target.value) !== null && _params$event$target$ !== void 0 ? _params$event$target$ : params.value) !== null && _ref2 !== void 0 ? _ref2 : '';
103
+ setValidationError(undefined);
104
+ if (currentInputValue !== null && currentInputValue !== void 0 && currentInputValue.trim()) {
105
+ // Validate complete input and show errors to user on blur (includes all constraints)
106
+ var validation = validateAndParseDateInput(currentInputValue, isRange, format, {
107
+ excludeDate: props.excludeDate,
108
+ minDate: props.minDate,
109
+ maxDate: props.maxDate
110
+ });
111
+ if (validation.shouldBlock && validation.error) {
112
+ setValidationError(validation.error);
113
+ return; // Don't apply invalid values
114
+ }
115
+ }
116
+
117
+ // Apply final value on blur (without empty clearing to preserve existing dates)
118
+ applyDateValue(currentInputValue, false);
119
+ }, [applyDateValue, isRange]);
120
+ return /*#__PURE__*/jsx(TextInput, _objectSpread(_objectSpread({}, textInputProps), {}, {
30
121
  ref: ref,
31
- as: "button",
32
- textAlign: "left",
33
- hideLabelText: ((_props$label = props.label) === null || _props$label === void 0 ? void 0 : _props$label.length) === 0,
34
- autoCompleteSuggestionType: "none",
35
- hasPopup: "dialog",
122
+ type: "number",
123
+ value: isRange ? rangeFormattedValue(inputValue[0], inputValue[1]) : inputValue[0],
124
+ leadingIcon: CalendarIcon,
125
+ leading: leadingDropdown,
126
+ format: isRange ? getTextInputFormat(finalInputFormat(inputValue[0], inputValue[1], format), true) : getTextInputFormat(format, false),
127
+ validationState: validationError ? 'error' : textInputProps.validationState,
128
+ errorText: (_textInputProps$error = textInputProps.errorText) !== null && _textInputProps$error !== void 0 ? _textInputProps$error : validationError,
129
+ onChange: handleInputChange,
130
+ onBlur: handleBlur,
36
131
  onClick: function onClick(e) {
37
- var _props$onClick;
38
- if (props.isDisabled) {
132
+ var _textInputProps$onCli;
133
+ if (textInputProps.isDisabled) {
39
134
  return;
40
135
  }
41
- (_props$onClick = props.onClick) === null || _props$onClick === void 0 ? void 0 : _props$onClick.call(props, e);
136
+ (_textInputProps$onCli = textInputProps.onClick) === null || _textInputProps$onCli === void 0 ? void 0 : _textInputProps$onCli.call(textInputProps, e);
42
137
  },
43
- onKeyDown: function onKeyDown(_ref) {
44
- var _props$onKeyDown;
45
- var event = _ref.event;
138
+ onKeyDown: function onKeyDown(_ref3) {
139
+ var _textInputProps$onKey;
140
+ var event = _ref3.event;
46
141
  // @ts-expect-error
47
- (_props$onKeyDown = props.onKeyDown) === null || _props$onKeyDown === void 0 ? void 0 : _props$onKeyDown.call(props, event);
142
+ (_textInputProps$onKey = textInputProps.onKeyDown) === null || _textInputProps$onKey === void 0 ? void 0 : _textInputProps$onKey.call(textInputProps, event);
48
143
  }
49
144
  }));
50
145
  };
51
146
  var DateInput = /*#__PURE__*/React__default.forwardRef(_DateInput);
52
- var HiddenInput = function HiddenInput(_ref2) {
53
- var value = _ref2.value,
54
- name = _ref2.name,
55
- isRequired = _ref2.isRequired,
56
- isDisabled = _ref2.isDisabled,
57
- rest = _objectWithoutProperties(_ref2, _excluded);
147
+ var HiddenInput = function HiddenInput(_ref4) {
148
+ var value = _ref4.value,
149
+ name = _ref4.name,
150
+ isRequired = _ref4.isRequired,
151
+ isDisabled = _ref4.isDisabled,
152
+ rest = _objectWithoutProperties(_ref4, _excluded2);
58
153
  if (isReactNative()) return /*#__PURE__*/jsx(Fragment, {});
59
154
  return /*#__PURE__*/jsx("input", _objectSpread({
60
155
  hidden: true,
@@ -65,37 +160,32 @@ var HiddenInput = function HiddenInput(_ref2) {
65
160
  readOnly: true
66
161
  }, makeAnalyticsAttribute(rest)));
67
162
  };
68
- var iconVerticalMargin = {
69
- medium: size[14],
70
- large: size[24]
71
- };
72
- var LEFT_LABEL_WIDTH = 132;
73
- var _DatePickerInput = function _DatePickerInput(_ref3, ref) {
74
- var selectionType = _ref3.selectionType,
75
- referenceProps = _ref3.referenceProps,
76
- inputRef = _ref3.inputRef,
77
- date = _ref3.date,
78
- label = _ref3.label,
79
- labelPosition = _ref3.labelPosition,
80
- labelSuffix = _ref3.labelSuffix,
81
- labelTrailing = _ref3.labelTrailing,
82
- autoFocus = _ref3.autoFocus,
83
- name = _ref3.name,
84
- _ref3$size = _ref3.size,
85
- size$1 = _ref3$size === void 0 ? 'medium' : _ref3$size,
86
- necessityIndicator = _ref3.necessityIndicator,
87
- successText = _ref3.successText,
88
- errorText = _ref3.errorText,
89
- helpText = _ref3.helpText,
90
- format = _ref3.format,
91
- placeholder = _ref3.placeholder,
92
- props = _objectWithoutProperties(_ref3, _excluded2);
93
- var isMobile = useIsMobile();
94
- var isLarge = size$1 === 'large';
95
- var hasLabel = typeof label === 'string' ? Boolean(label) : Boolean((label === null || label === void 0 ? void 0 : label.start) || (label === null || label === void 0 ? void 0 : label.end));
96
- var isLabelPositionLeft = labelPosition === 'left';
97
- var isLabelPositionTop = labelPosition === 'top';
98
- var isLabelPositionVisuallyTop = hasLabel && (isLabelPositionTop || isMobile);
163
+ var _DatePickerInput = function _DatePickerInput(_ref5, ref) {
164
+ var selectionType = _ref5.selectionType,
165
+ referenceProps = _ref5.referenceProps,
166
+ inputRef = _ref5.inputRef,
167
+ date = _ref5.date,
168
+ label = _ref5.label,
169
+ labelPosition = _ref5.labelPosition,
170
+ labelSuffix = _ref5.labelSuffix,
171
+ labelTrailing = _ref5.labelTrailing,
172
+ autoFocus = _ref5.autoFocus,
173
+ name = _ref5.name,
174
+ _ref5$size = _ref5.size,
175
+ size = _ref5$size === void 0 ? 'medium' : _ref5$size,
176
+ necessityIndicator = _ref5.necessityIndicator,
177
+ successText = _ref5.successText,
178
+ errorText = _ref5.errorText,
179
+ helpText = _ref5.helpText,
180
+ format = _ref5.format,
181
+ placeholder = _ref5.placeholder,
182
+ setControlledValue = _ref5.setControlledValue,
183
+ leadingDropdown = _ref5.leadingDropdown,
184
+ selectedPreset = _ref5.selectedPreset,
185
+ excludeDate = _ref5.excludeDate,
186
+ minDate = _ref5.minDate,
187
+ maxDate = _ref5.maxDate,
188
+ props = _objectWithoutProperties(_ref5, _excluded3);
99
189
  var _useDatesContext = useDatesContext(),
100
190
  locale = _useDatesContext.locale;
101
191
  if (selectionType == 'single') {
@@ -121,33 +211,28 @@ var _DatePickerInput = function _DatePickerInput(_ref3, ref) {
121
211
  placeholder: placeholder || format,
122
212
  popupId: referenceProps['aria-controls'],
123
213
  isPopupExpanded: referenceProps['aria-expanded'],
124
- size: size$1,
214
+ size: size,
125
215
  autoFocus: autoFocus,
126
- value: dateValue,
216
+ value: [dateValue],
127
217
  componentName: "DatePickerInput",
128
218
  necessityIndicator: necessityIndicator,
129
219
  successText: successText,
130
220
  errorText: errorText,
131
221
  helpText: helpText,
132
222
  labelSuffix: labelSuffix,
133
- labelTrailing: labelTrailing
223
+ labelTrailing: labelTrailing,
224
+ leadingDropdown: leadingDropdown,
225
+ date: date,
226
+ setControlledValue: setControlledValue,
227
+ format: format,
228
+ selectionType: selectionType,
229
+ excludeDate: excludeDate,
230
+ minDate: minDate,
231
+ maxDate: maxDate
134
232
  }, props), referenceProps))]
135
233
  });
136
234
  }
137
235
  if (selectionType == 'range') {
138
- var shouldRenderEndLabel = function shouldRenderEndLabel() {
139
- var finalLabel = '';
140
- var labelEnd = isLabelPositionLeft ? undefined : label === null || label === void 0 ? void 0 : label.end;
141
- if (isLabelPositionVisuallyTop && labelEnd === undefined) {
142
- // Empty space, nbsp;
143
- finalLabel = "\xA0";
144
- } else if (isLabelPositionLeft) {
145
- finalLabel = undefined;
146
- } else {
147
- finalLabel = label === null || label === void 0 ? void 0 : label.end;
148
- }
149
- return finalLabel;
150
- };
151
236
  var startValue = getFormattedDate({
152
237
  type: 'default',
153
238
  date: date[0],
@@ -164,73 +249,43 @@ var _DatePickerInput = function _DatePickerInput(_ref3, ref) {
164
249
  });
165
250
  return /*#__PURE__*/jsxs(BaseBox, {
166
251
  width: "100%",
167
- display: "flex",
168
- flexDirection: "row",
169
- gap: "spacing.4",
170
- alignItems: "flex-start",
171
- ref: ref,
172
- children: [/*#__PURE__*/jsxs(BaseBox, {
173
- flex: 1,
174
- flexBasis: isLabelPositionLeft ? LEFT_LABEL_WIDTH : '0px',
175
- children: [/*#__PURE__*/jsx(HiddenInput, {
176
- value: startValue,
177
- name: name === null || name === void 0 ? void 0 : name.start,
178
- isRequired: props.isRequired,
179
- isDisabled: props.isDisabled
180
- }), /*#__PURE__*/jsx(DateInput, _objectSpread(_objectSpread({
181
- setInputWrapperRef: function setInputWrapperRef(node) {
182
- return inputRef.current = node;
183
- },
184
- id: "start-date",
185
- leadingIcon: CalendarIcon,
186
- label: label === null || label === void 0 ? void 0 : label.start,
187
- labelPosition: labelPosition,
188
- placeholder: placeholder,
189
- popupId: referenceProps['aria-controls'],
190
- isPopupExpanded: referenceProps['aria-expanded'],
191
- size: size$1,
192
- autoFocus: autoFocus,
193
- value: startValue,
194
- componentName: "DatePickerInputStart",
195
- necessityIndicator: necessityIndicator,
196
- successText: successText === null || successText === void 0 ? void 0 : successText.start,
197
- errorText: errorText === null || errorText === void 0 ? void 0 : errorText.start,
198
- helpText: helpText === null || helpText === void 0 ? void 0 : helpText.start,
199
- labelSuffix: labelSuffix
200
- }, props), referenceProps))]
201
- }), /*#__PURE__*/jsx(BaseBox, {
202
- flexShrink: 0,
203
- alignSelf: "start",
204
- children: /*#__PURE__*/jsx(ArrowRightIcon, {
205
- size: "medium",
206
- marginTop:
207
- // Hacky layouting because the we cannot put this inside the internal layout of BaseInput.
208
- hasLabel && (!isLabelPositionLeft || isMobile) ? "calc(".concat(makeSize(iconVerticalMargin[size$1]), " + ").concat(makeSize(isLarge ? size[20] : size[15]), ")") : makeSize(iconVerticalMargin[size$1])
209
- })
210
- }), /*#__PURE__*/jsxs(BaseBox, {
211
- flex: 1,
212
- children: [/*#__PURE__*/jsx(HiddenInput, _objectSpread({
213
- value: endValue,
214
- name: name === null || name === void 0 ? void 0 : name.end,
215
- isRequired: props.isRequired,
216
- isDisabled: props.isDisabled
217
- }, makeAnalyticsAttribute(props))), /*#__PURE__*/jsx(DateInput, _objectSpread(_objectSpread({
218
- id: "end-date",
219
- placeholder: placeholder,
220
- leadingIcon: CalendarIcon,
221
- label: shouldRenderEndLabel(),
222
- labelPosition: isLabelPositionLeft ? undefined : labelPosition,
223
- popupId: referenceProps['aria-controls'],
224
- isPopupExpanded: referenceProps['aria-expanded'],
225
- size: size$1,
226
- value: endValue,
227
- componentName: "DatePickerInputEnd",
228
- successText: successText === null || successText === void 0 ? void 0 : successText.end,
229
- errorText: errorText === null || errorText === void 0 ? void 0 : errorText.end,
230
- helpText: helpText === null || helpText === void 0 ? void 0 : helpText.end,
231
- labelTrailing: labelTrailing
232
- }, props), referenceProps))]
233
- })]
252
+ children: [/*#__PURE__*/jsx(HiddenInput, {
253
+ value: "".concat(startValue),
254
+ name: name === null || name === void 0 ? void 0 : name.start,
255
+ isRequired: props.isRequired,
256
+ isDisabled: props.isDisabled
257
+ }), /*#__PURE__*/jsx(HiddenInput, _objectSpread({
258
+ value: endValue,
259
+ name: name === null || name === void 0 ? void 0 : name.end,
260
+ isRequired: props.isRequired,
261
+ isDisabled: props.isDisabled
262
+ }, makeAnalyticsAttribute(props))), /*#__PURE__*/jsx(DateInput, _objectSpread(_objectSpread({
263
+ ref: ref,
264
+ id: "range-date",
265
+ labelPosition: labelPosition,
266
+ label: _typeof(label) === 'object' ? label === null || label === void 0 ? void 0 : label.start : label,
267
+ placeholder: rangeInputPlaceHolder(placeholder, format),
268
+ popupId: referenceProps['aria-controls'],
269
+ isPopupExpanded: referenceProps['aria-expanded'],
270
+ size: size,
271
+ autoFocus: autoFocus,
272
+ value: [startValue, endValue],
273
+ componentName: "DatePickerInputRange",
274
+ necessityIndicator: necessityIndicator,
275
+ successText: _typeof(successText) === 'object' ? successText === null || successText === void 0 ? void 0 : successText.start : successText,
276
+ errorText: _typeof(errorText) === 'object' ? errorText === null || errorText === void 0 ? void 0 : errorText.start : errorText,
277
+ helpText: _typeof(helpText) === 'object' ? helpText === null || helpText === void 0 ? void 0 : helpText.start : helpText,
278
+ labelSuffix: labelSuffix,
279
+ labelTrailing: labelTrailing,
280
+ format: format,
281
+ leadingDropdown: leadingDropdown,
282
+ date: date,
283
+ setControlledValue: setControlledValue,
284
+ selectionType: selectionType,
285
+ excludeDate: excludeDate,
286
+ minDate: minDate,
287
+ maxDate: maxDate
288
+ }, props), referenceProps))]
234
289
  });
235
290
  }
236
291
  return /*#__PURE__*/jsx(Fragment, {});
@@ -1 +1 @@
1
- {"version":3,"file":"DateInput.web.js","sources":["../../../../../../src/components/DatePicker/DateInput.web.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\nimport { useDatesContext } from '@mantine/dates';\nimport type { DatePickerInputProps } from './types';\nimport { getFormattedDate } from './utils';\nimport BaseBox from '~components/Box/BaseBox';\nimport { ArrowRightIcon, CalendarIcon } from '~components/Icons';\nimport type { BaseInputProps } from '~components/Input/BaseInput';\nimport { BaseInput } from '~components/Input/BaseInput';\nimport { size as sizeTokens } from '~tokens/global';\nimport { isReactNative, makeSize } from '~utils';\nimport type { BladeElementRef, DataAnalyticsAttribute } from '~utils/types';\nimport { useIsMobile } from '~utils/useIsMobile';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst _DateInput = (\n props: BaseInputProps,\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n return (\n <BaseInput\n {...props}\n ref={ref}\n as=\"button\"\n textAlign=\"left\"\n hideLabelText={props.label?.length === 0}\n autoCompleteSuggestionType=\"none\"\n hasPopup=\"dialog\"\n onClick={(e) => {\n if (props.isDisabled) {\n return;\n }\n props.onClick?.(e);\n }}\n onKeyDown={({ event }) => {\n // @ts-expect-error\n props.onKeyDown?.(event);\n }}\n />\n );\n};\n\nconst DateInput = React.forwardRef(_DateInput);\n\nconst HiddenInput = ({\n value,\n name,\n isRequired,\n isDisabled,\n ...rest\n}: {\n value: string;\n name?: string;\n isRequired?: boolean;\n isDisabled?: boolean;\n} & DataAnalyticsAttribute): React.ReactElement => {\n if (isReactNative()) return <></>;\n\n return (\n <input\n hidden={true}\n name={name}\n value={value}\n required={isRequired}\n disabled={isDisabled}\n readOnly\n {...makeAnalyticsAttribute(rest)}\n />\n );\n};\n\nconst iconVerticalMargin = {\n medium: sizeTokens[14],\n large: sizeTokens[24],\n} as const;\nconst LEFT_LABEL_WIDTH = 132;\n\nconst _DatePickerInput = (\n {\n selectionType,\n referenceProps,\n inputRef,\n date,\n label,\n labelPosition,\n labelSuffix,\n labelTrailing,\n autoFocus,\n name,\n size = 'medium',\n necessityIndicator,\n successText,\n errorText,\n helpText,\n format,\n placeholder,\n ...props\n }: DatePickerInputProps,\n ref: React.ForwardedRef<any>,\n): React.ReactElement => {\n const isMobile = useIsMobile();\n const isLarge = size === 'large';\n const hasLabel = typeof label === 'string' ? Boolean(label) : Boolean(label?.start || label?.end);\n const isLabelPositionLeft = labelPosition === 'left';\n const isLabelPositionTop = labelPosition === 'top';\n const isLabelPositionVisuallyTop = hasLabel && (isLabelPositionTop || isMobile);\n\n const { locale } = useDatesContext();\n\n if (selectionType == 'single') {\n const dateValue = getFormattedDate({\n date,\n format,\n labelSeparator: '-',\n locale,\n type: 'default',\n });\n return (\n <BaseBox width=\"100%\">\n <HiddenInput\n value={dateValue}\n name={name}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n />\n <DateInput\n ref={ref as never}\n id=\"start-date\"\n labelPosition={labelPosition}\n label={label}\n placeholder={placeholder || format}\n popupId={referenceProps['aria-controls']}\n isPopupExpanded={referenceProps['aria-expanded']}\n size={size}\n autoFocus={autoFocus}\n value={dateValue}\n componentName=\"DatePickerInput\"\n necessityIndicator={necessityIndicator}\n successText={successText}\n errorText={errorText}\n helpText={helpText}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n {...props}\n {...referenceProps}\n />\n </BaseBox>\n );\n }\n\n if (selectionType == 'range') {\n const shouldRenderEndLabel = (): string | undefined => {\n let finalLabel: string | undefined = '';\n\n const labelEnd = isLabelPositionLeft ? undefined : label?.end;\n if (isLabelPositionVisuallyTop && labelEnd === undefined) {\n // Empty space, nbsp;\n finalLabel = '\\u00A0';\n } else if (isLabelPositionLeft) {\n finalLabel = undefined;\n } else {\n finalLabel = label?.end;\n }\n return finalLabel;\n };\n\n const startValue = getFormattedDate({\n type: 'default',\n date: date[0],\n format,\n labelSeparator: '-',\n locale,\n });\n const endValue = getFormattedDate({\n type: 'default',\n date: date[1],\n format,\n labelSeparator: '-',\n locale,\n });\n return (\n <BaseBox\n width=\"100%\"\n display=\"flex\"\n flexDirection=\"row\"\n gap=\"spacing.4\"\n alignItems=\"flex-start\"\n ref={ref as never}\n >\n <BaseBox flex={1} flexBasis={isLabelPositionLeft ? LEFT_LABEL_WIDTH : '0px'}>\n <HiddenInput\n value={startValue}\n name={name?.start}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n />\n <DateInput\n setInputWrapperRef={(node) => ((inputRef as any)!.current = node)}\n id=\"start-date\"\n leadingIcon={CalendarIcon}\n label={label?.start}\n labelPosition={labelPosition}\n placeholder={placeholder}\n popupId={referenceProps['aria-controls']}\n isPopupExpanded={referenceProps['aria-expanded']}\n size={size}\n autoFocus={autoFocus}\n value={startValue}\n componentName=\"DatePickerInputStart\"\n necessityIndicator={necessityIndicator}\n successText={successText?.start}\n errorText={errorText?.start}\n helpText={helpText?.start}\n labelSuffix={labelSuffix}\n {...props}\n {...referenceProps}\n />\n </BaseBox>\n <BaseBox flexShrink={0} alignSelf=\"start\">\n <ArrowRightIcon\n size=\"medium\"\n marginTop={\n // Hacky layouting because the we cannot put this inside the internal layout of BaseInput.\n hasLabel && (!isLabelPositionLeft || isMobile)\n ? `calc(${makeSize(iconVerticalMargin[size])} + ${makeSize(\n isLarge ? sizeTokens[20] : sizeTokens[15],\n )})`\n : makeSize(iconVerticalMargin[size])\n }\n />\n </BaseBox>\n <BaseBox flex={1}>\n <HiddenInput\n value={endValue}\n name={name?.end}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n {...makeAnalyticsAttribute(props)}\n />\n <DateInput\n id=\"end-date\"\n placeholder={placeholder}\n leadingIcon={CalendarIcon}\n label={shouldRenderEndLabel()}\n labelPosition={isLabelPositionLeft ? undefined : labelPosition}\n popupId={referenceProps['aria-controls']}\n isPopupExpanded={referenceProps['aria-expanded']}\n size={size}\n value={endValue}\n componentName=\"DatePickerInputEnd\"\n successText={successText?.end}\n errorText={errorText?.end}\n helpText={helpText?.end}\n labelTrailing={labelTrailing}\n {...props}\n {...referenceProps}\n />\n </BaseBox>\n </BaseBox>\n );\n }\n\n return <></>;\n};\n\nconst DatePickerInput = React.forwardRef(_DatePickerInput);\nexport { DatePickerInput };\n"],"names":["_DateInput","props","ref","_props$label","_jsx","BaseInput","_objectSpread","as","textAlign","hideLabelText","label","length","autoCompleteSuggestionType","hasPopup","onClick","e","_props$onClick","isDisabled","call","onKeyDown","_ref","_props$onKeyDown","event","DateInput","React","forwardRef","HiddenInput","_ref2","value","name","isRequired","rest","_objectWithoutProperties","_excluded","isReactNative","_Fragment","hidden","required","disabled","readOnly","makeAnalyticsAttribute","iconVerticalMargin","medium","sizeTokens","large","LEFT_LABEL_WIDTH","_DatePickerInput","_ref3","selectionType","referenceProps","inputRef","date","labelPosition","labelSuffix","labelTrailing","autoFocus","_ref3$size","size","necessityIndicator","successText","errorText","helpText","format","placeholder","_excluded2","isMobile","useIsMobile","isLarge","hasLabel","Boolean","start","end","isLabelPositionLeft","isLabelPositionTop","isLabelPositionVisuallyTop","_useDatesContext","useDatesContext","locale","dateValue","getFormattedDate","labelSeparator","type","_jsxs","BaseBox","width","children","id","popupId","isPopupExpanded","componentName","shouldRenderEndLabel","finalLabel","labelEnd","undefined","startValue","endValue","display","flexDirection","gap","alignItems","flex","flexBasis","setInputWrapperRef","node","current","leadingIcon","CalendarIcon","flexShrink","alignSelf","ArrowRightIcon","marginTop","concat","makeSize","DatePickerInput"],"mappings":"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"}
1
+ {"version":3,"file":"DateInput.web.js","sources":["../../../../../../src/components/DatePicker/DateInput.web.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\nimport { useDatesContext } from '@mantine/dates';\nimport type { DatePickerInputProps, DateInputProps } from './types';\nimport {\n getFormattedDate,\n rangeFormattedValue,\n rangeInputPlaceHolder,\n finalInputFormat,\n getTextInputFormat,\n validateAndParseDateInput,\n stripDelimiters,\n} from './utils';\nimport { usePresetContext } from './QuickSelection/PresetContext';\nimport BaseBox from '~components/Box/BaseBox';\nimport { TextInput } from '~components/Input/TextInput';\nimport { isReactNative } from '~utils';\nimport type { BladeElementRef, DataAnalyticsAttribute } from '~utils/types';\nimport { CalendarIcon } from '~components/Icons';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\n/**\n * CRITICAL BEHAVIOR CASES - Verify when making changes:\n *\n * 1. VALUE PROP: Already formatted by getFormattedDate() - avoid double formatting\n * 2. USER TYPING: Should format input AND sync with calendar selection\n * 3. CALENDAR SELECTION: Should apply formatted value to input without re-formatting\n * 4. SUBMIT (no footer): Blur/Enter should select current value\n */\nconst _DateInput = (\n props: DateInputProps,\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n const { format, date, setControlledValue, leadingDropdown, tags, id, ...textInputProps } = props;\n const [inputValue, setInputValue] = React.useState(['']);\n const [validationError, setValidationError] = React.useState<string | undefined>(undefined);\n\n const presetContext = usePresetContext();\n\n // Determine selection type: prefer preset context calculation over props\n // This handles \"Today\" presets that should display as single even though data is range\n const isRange =\n presetContext?.effectiveSelectionType === 'single'\n ? false\n : presetContext?.effectiveSelectionType === 'range' || props.selectionType === 'range';\n\n // Sync internal input state with external formatted values from parent component\n // textInputProps.value comes from DatePickerInput as formatted strings: [\"25/12/2024\", \"31/12/2024\"]\n // We strip delimiters for internal processing: [\"25122024\", \"31122024\"]\n // This prevents double formatting and helps to validate the input easier during user typing\n React.useEffect(() => {\n if (textInputProps.value) {\n setInputValue(\n isRange\n ? [stripDelimiters(textInputProps.value[0]), stripDelimiters(textInputProps.value[1])]\n : [stripDelimiters(textInputProps.value[0])],\n );\n }\n }, [textInputProps.value, isRange, format]);\n\n // Clear validation error only when the actual selected date changes\n // (e.g., user selected a valid date from the calendar). This avoids\n // clearing errors during typing/blur unless the value truly updated.\n React.useEffect(() => {\n setValidationError(undefined);\n }, [date]);\n\n const applyDateValue = React.useCallback(\n (inputValue: string, shouldClearWhenEmpty = false): void => {\n if (inputValue?.trim()) {\n // Validate input and get parsed dates in one atomic operation (includes all constraints)\n const validation = validateAndParseDateInput(inputValue, isRange, format, {\n excludeDate: props.excludeDate,\n minDate: props.minDate,\n maxDate: props.maxDate,\n });\n if (validation.shouldBlock) {\n return; // Block invalid input to prevent data corruption\n }\n\n // Apply the pre-parsed date values to controlled state (no redundant parsing)\n if (validation.parsedValue !== undefined) {\n let finalValue = validation.parsedValue;\n\n // Special handling: if preset context shows single but props expect range\n // (like \"Today\" preset), convert single date back to same-day range\n if (\n presetContext?.effectiveSelectionType === 'single' &&\n props.selectionType === 'range' &&\n validation.parsedValue instanceof Date\n ) {\n finalValue = [validation.parsedValue, validation.parsedValue] as [Date, Date];\n }\n\n setControlledValue?.(finalValue);\n }\n } else if (shouldClearWhenEmpty) {\n // Clear controlled value when input is emptied (onChange only, not onBlur)\n setControlledValue?.(isRange ? ([null, null] as [Date | null, Date | null]) : null);\n }\n },\n [\n isRange,\n setControlledValue,\n presetContext?.effectiveSelectionType,\n props.selectionType,\n format,\n props.excludeDate,\n props.minDate,\n props.maxDate,\n ],\n );\n\n const handleInputChange = ({ value }: { value?: string }): void => {\n setValidationError(undefined);\n // Apply changes immediately during typing (with empty clearing enabled)\n applyDateValue(value ?? '', true);\n };\n\n const handleBlur = React.useCallback(\n (params: { name?: string; value?: string; event?: React.FocusEvent<HTMLInputElement> }) => {\n const currentInputValue = params.event?.target.value ?? params.value ?? '';\n setValidationError(undefined);\n\n if (currentInputValue?.trim()) {\n // Validate complete input and show errors to user on blur (includes all constraints)\n const validation = validateAndParseDateInput(currentInputValue, isRange, format, {\n excludeDate: props.excludeDate,\n minDate: props.minDate,\n maxDate: props.maxDate,\n });\n\n if (validation.shouldBlock && validation.error) {\n setValidationError(validation.error);\n return; // Don't apply invalid values\n }\n }\n\n // Apply final value on blur (without empty clearing to preserve existing dates)\n applyDateValue(currentInputValue, false);\n },\n [applyDateValue, isRange],\n );\n\n return (\n <TextInput\n {...textInputProps}\n ref={ref}\n type=\"number\"\n value={isRange ? rangeFormattedValue(inputValue[0], inputValue[1]) : inputValue[0]}\n leadingIcon={CalendarIcon}\n leading={leadingDropdown}\n format={\n isRange\n ? getTextInputFormat(finalInputFormat(inputValue[0], inputValue[1], format), true)\n : getTextInputFormat(format, false)\n }\n validationState={validationError ? 'error' : textInputProps.validationState}\n errorText={textInputProps.errorText ?? validationError}\n onChange={handleInputChange}\n onBlur={handleBlur}\n onClick={(e) => {\n if (textInputProps.isDisabled) {\n return;\n }\n textInputProps.onClick?.(e);\n }}\n onKeyDown={({ event }) => {\n // @ts-expect-error\n textInputProps.onKeyDown?.(event);\n }}\n />\n );\n};\n\nconst DateInput = React.forwardRef(_DateInput);\n\nconst HiddenInput = ({\n value,\n name,\n isRequired,\n isDisabled,\n ...rest\n}: {\n value: string;\n name?: string;\n isRequired?: boolean;\n isDisabled?: boolean;\n} & DataAnalyticsAttribute): React.ReactElement => {\n if (isReactNative()) return <></>;\n\n return (\n <input\n hidden={true}\n name={name}\n value={value}\n required={isRequired}\n disabled={isDisabled}\n readOnly\n {...makeAnalyticsAttribute(rest)}\n />\n );\n};\n\nconst _DatePickerInput = (\n {\n selectionType,\n referenceProps,\n inputRef,\n date,\n label,\n labelPosition,\n labelSuffix,\n labelTrailing,\n autoFocus,\n name,\n size = 'medium',\n necessityIndicator,\n successText,\n errorText,\n helpText,\n format,\n placeholder,\n setControlledValue,\n leadingDropdown,\n selectedPreset,\n excludeDate,\n minDate,\n maxDate,\n ...props\n }: DatePickerInputProps,\n ref: React.ForwardedRef<any>,\n): React.ReactElement => {\n const { locale } = useDatesContext();\n\n if (selectionType == 'single') {\n const dateValue = getFormattedDate({\n date,\n format,\n labelSeparator: '-',\n locale,\n type: 'default',\n });\n return (\n <BaseBox width=\"100%\">\n <HiddenInput\n value={dateValue}\n name={name}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n />\n <DateInput\n ref={ref as never}\n id=\"start-date\"\n labelPosition={labelPosition}\n label={label}\n placeholder={placeholder || format}\n popupId={referenceProps['aria-controls']}\n isPopupExpanded={referenceProps['aria-expanded']}\n size={size}\n autoFocus={autoFocus}\n value={[dateValue]}\n componentName=\"DatePickerInput\"\n necessityIndicator={necessityIndicator}\n successText={successText}\n errorText={errorText}\n helpText={helpText}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n leadingDropdown={leadingDropdown}\n date={date as Date | null}\n setControlledValue={setControlledValue}\n format={format}\n selectionType={selectionType}\n excludeDate={excludeDate}\n minDate={minDate}\n maxDate={maxDate}\n {...props}\n {...referenceProps}\n />\n </BaseBox>\n );\n }\n\n if (selectionType == 'range') {\n const startValue = getFormattedDate({\n type: 'default',\n date: date[0],\n format,\n labelSeparator: '-',\n locale,\n });\n const endValue = getFormattedDate({\n type: 'default',\n date: date[1],\n format,\n labelSeparator: '-',\n locale,\n });\n\n return (\n <BaseBox width=\"100%\">\n <HiddenInput\n value={`${startValue}`}\n name={name?.start}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n />\n\n <HiddenInput\n value={endValue}\n name={name?.end}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n {...makeAnalyticsAttribute(props)}\n />\n\n <DateInput\n ref={ref as never}\n id=\"range-date\"\n labelPosition={labelPosition}\n label={typeof label === 'object' ? label?.start : label}\n placeholder={rangeInputPlaceHolder(placeholder, format)}\n popupId={referenceProps['aria-controls']}\n isPopupExpanded={referenceProps['aria-expanded']}\n size={size}\n autoFocus={autoFocus}\n value={[startValue, endValue]}\n componentName=\"DatePickerInputRange\"\n necessityIndicator={necessityIndicator}\n successText={\n typeof successText === 'object'\n ? (successText as { start: string })?.start\n : successText\n }\n errorText={\n typeof errorText === 'object' ? (errorText as { start: string })?.start : errorText\n }\n helpText={\n typeof helpText === 'object' ? (helpText as { start: string })?.start : helpText\n }\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n format={format}\n leadingDropdown={leadingDropdown}\n date={date as [Date | null, Date | null]}\n setControlledValue={setControlledValue}\n selectionType={selectionType}\n excludeDate={excludeDate}\n minDate={minDate}\n maxDate={maxDate}\n {...props}\n {...referenceProps}\n />\n </BaseBox>\n );\n }\n\n return <></>;\n};\n\nconst DatePickerInput = React.forwardRef(_DatePickerInput);\nexport { DatePickerInput };\n"],"names":["_DateInput","props","ref","_textInputProps$error","format","date","setControlledValue","leadingDropdown","tags","id","textInputProps","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","inputValue","setInputValue","_React$useState3","undefined","_React$useState4","validationError","setValidationError","presetContext","usePresetContext","isRange","effectiveSelectionType","selectionType","useEffect","value","stripDelimiters","applyDateValue","useCallback","shouldClearWhenEmpty","arguments","length","trim","validation","validateAndParseDateInput","excludeDate","minDate","maxDate","shouldBlock","parsedValue","finalValue","Date","handleInputChange","_ref","handleBlur","params","_ref2","_params$event$target$","_params$event","currentInputValue","event","target","error","_jsx","TextInput","_objectSpread","type","rangeFormattedValue","leadingIcon","CalendarIcon","leading","getTextInputFormat","finalInputFormat","validationState","errorText","onChange","onBlur","onClick","e","_textInputProps$onCli","isDisabled","call","onKeyDown","_ref3","_textInputProps$onKey","DateInput","forwardRef","HiddenInput","_ref4","name","isRequired","rest","_excluded2","isReactNative","_Fragment","hidden","required","disabled","readOnly","makeAnalyticsAttribute","_DatePickerInput","_ref5","referenceProps","inputRef","label","labelPosition","labelSuffix","labelTrailing","autoFocus","_ref5$size","size","necessityIndicator","successText","helpText","placeholder","selectedPreset","_excluded3","_useDatesContext","useDatesContext","locale","dateValue","getFormattedDate","labelSeparator","_jsxs","BaseBox","width","children","popupId","isPopupExpanded","componentName","startValue","endValue","concat","start","end","_typeof","rangeInputPlaceHolder","DatePickerInput"],"mappings":"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"}