@react-spectrum/datepicker 3.9.4 → 3.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/DateField.main.js +110 -0
  2. package/dist/DateField.main.js.map +1 -0
  3. package/dist/DateField.mjs +105 -0
  4. package/dist/DateField.module.js +105 -0
  5. package/dist/DateField.module.js.map +1 -0
  6. package/dist/DatePicker.main.js +198 -0
  7. package/dist/DatePicker.main.js.map +1 -0
  8. package/dist/DatePicker.mjs +193 -0
  9. package/dist/DatePicker.module.js +193 -0
  10. package/dist/DatePicker.module.js.map +1 -0
  11. package/dist/DatePickerField.main.js +72 -0
  12. package/dist/DatePickerField.main.js.map +1 -0
  13. package/dist/DatePickerField.mjs +67 -0
  14. package/dist/DatePickerField.module.js +67 -0
  15. package/dist/DatePickerField.module.js.map +1 -0
  16. package/dist/DatePickerSegment.main.js +76 -0
  17. package/dist/DatePickerSegment.main.js.map +1 -0
  18. package/dist/DatePickerSegment.mjs +71 -0
  19. package/dist/DatePickerSegment.module.js +71 -0
  20. package/dist/DatePickerSegment.module.js.map +1 -0
  21. package/dist/DateRangePicker.main.js +225 -0
  22. package/dist/DateRangePicker.main.js.map +1 -0
  23. package/dist/DateRangePicker.mjs +220 -0
  24. package/dist/DateRangePicker.module.js +220 -0
  25. package/dist/DateRangePicker.module.js.map +1 -0
  26. package/dist/Input.main.js +123 -0
  27. package/dist/Input.main.js.map +1 -0
  28. package/dist/Input.mjs +118 -0
  29. package/dist/Input.module.js +118 -0
  30. package/dist/Input.module.js.map +1 -0
  31. package/dist/TimeField.main.js +102 -0
  32. package/dist/TimeField.main.js.map +1 -0
  33. package/dist/TimeField.mjs +97 -0
  34. package/dist/TimeField.module.js +97 -0
  35. package/dist/TimeField.module.js.map +1 -0
  36. package/dist/import.mjs +4 -1136
  37. package/dist/inputgroup_vars_css.main.js +86 -0
  38. package/dist/inputgroup_vars_css.main.js.map +1 -0
  39. package/dist/inputgroup_vars_css.mjs +88 -0
  40. package/dist/inputgroup_vars_css.module.js +88 -0
  41. package/dist/inputgroup_vars_css.module.js.map +1 -0
  42. package/dist/intlStrings.main.js +108 -0
  43. package/dist/intlStrings.main.js.map +1 -0
  44. package/dist/intlStrings.mjs +110 -0
  45. package/dist/intlStrings.module.js +110 -0
  46. package/dist/intlStrings.module.js.map +1 -0
  47. package/dist/main.js +8 -1136
  48. package/dist/main.js.map +1 -1
  49. package/dist/module.js +4 -1136
  50. package/dist/module.js.map +1 -1
  51. package/dist/styles.36ea4632.css +209 -0
  52. package/dist/styles.36ea4632.css.map +1 -0
  53. package/dist/styles_css.main.js +74 -0
  54. package/dist/styles_css.main.js.map +1 -0
  55. package/dist/styles_css.mjs +76 -0
  56. package/dist/styles_css.module.js +76 -0
  57. package/dist/styles_css.module.js.map +1 -0
  58. package/dist/textfield_vars_css.main.js +74 -0
  59. package/dist/textfield_vars_css.main.js.map +1 -0
  60. package/dist/textfield_vars_css.mjs +76 -0
  61. package/dist/textfield_vars_css.module.js +76 -0
  62. package/dist/textfield_vars_css.module.js.map +1 -0
  63. package/dist/utils.main.js +89 -0
  64. package/dist/utils.main.js.map +1 -0
  65. package/dist/utils.mjs +82 -0
  66. package/dist/utils.module.js +82 -0
  67. package/dist/utils.module.js.map +1 -0
  68. package/dist/vars.3692148b.css +549 -0
  69. package/dist/vars.3692148b.css.map +1 -0
  70. package/dist/vars.ccbd2e3f.css +649 -0
  71. package/dist/vars.ccbd2e3f.css.map +1 -0
  72. package/package.json +22 -22
  73. package/dist/main.css +0 -1626
  74. package/dist/main.css.map +0 -1
@@ -0,0 +1,220 @@
1
+ import {DatePickerField as $d2bb88c82604b25f$export$34dc4cfa15ead1} from "./DatePickerField.mjs";
2
+ import "./styles.36ea4632.css";
3
+ import $dUbU7$styles_cssmodulejs from "./styles_css.mjs";
4
+ import {Input as $79348162c55d687f$export$f5b8910cec6cf069} from "./Input.mjs";
5
+ import $dUbU7$intlStringsmodulejs from "./intlStrings.mjs";
6
+ import "./vars.ccbd2e3f.css";
7
+ import $dUbU7$inputgroup_vars_cssmodulejs from "./inputgroup_vars_css.mjs";
8
+ import {TimeField as $f0a04554754386b6$export$5eaee2322dd727eb} from "./TimeField.mjs";
9
+ import {useFocusManagerRef as $04e96200274b03de$export$71a23a36270e4bf0, useFormatHelpText as $04e96200274b03de$export$322f4580ccd8dde6, useVisibleMonths as $04e96200274b03de$export$12ce2869ce471b1f} from "./utils.mjs";
10
+ import $dUbU7$spectrumiconsworkflowCalendar from "@spectrum-icons/workflow/Calendar";
11
+ import {classNames as $dUbU7$classNames} from "@react-spectrum/utils";
12
+ import {Content as $dUbU7$Content} from "@react-spectrum/view";
13
+ import {DialogTrigger as $dUbU7$DialogTrigger, Dialog as $dUbU7$Dialog} from "@react-spectrum/dialog";
14
+ import {Field as $dUbU7$Field} from "@react-spectrum/label";
15
+ import {FieldButton as $dUbU7$FieldButton} from "@react-spectrum/button";
16
+ import {Flex as $dUbU7$Flex} from "@react-spectrum/layout";
17
+ import {mergeProps as $dUbU7$mergeProps} from "@react-aria/utils";
18
+ import {RangeCalendar as $dUbU7$RangeCalendar} from "@react-spectrum/calendar";
19
+ import $dUbU7$react, {useRef as $dUbU7$useRef} from "react";
20
+ import {useDateRangePicker as $dUbU7$useDateRangePicker} from "@react-aria/datepicker";
21
+ import {useDateRangePickerState as $dUbU7$useDateRangePickerState} from "@react-stately/datepicker";
22
+ import {useFocusRing as $dUbU7$useFocusRing} from "@react-aria/focus";
23
+ import {useFormProps as $dUbU7$useFormProps} from "@react-spectrum/form";
24
+ import {useHover as $dUbU7$useHover} from "@react-aria/interactions";
25
+ import {useLocale as $dUbU7$useLocale, useLocalizedStringFormatter as $dUbU7$useLocalizedStringFormatter} from "@react-aria/i18n";
26
+ import {useProviderProps as $dUbU7$useProviderProps} from "@react-spectrum/provider";
27
+
28
+
29
+ function $parcel$interopDefault(a) {
30
+ return a && a.__esModule ? a.default : a;
31
+ }
32
+ /*
33
+ * Copyright 2020 Adobe. All rights reserved.
34
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
35
+ * you may not use this file except in compliance with the License. You may obtain a copy
36
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
37
+ *
38
+ * Unless required by applicable law or agreed to in writing, software distributed under
39
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
40
+ * OF ANY KIND, either express or implied. See the License for the specific language
41
+ * governing permissions and limitations under the License.
42
+ */
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+ function $cb301300011a98f7$var$DateRangePicker(props, ref) {
67
+ var _state_timeRange, _state_timeRange1;
68
+ props = (0, $dUbU7$useProviderProps)(props);
69
+ props = (0, $dUbU7$useFormProps)(props);
70
+ let { isQuiet: isQuiet, isDisabled: isDisabled, autoFocus: autoFocus, placeholderValue: placeholderValue, maxVisibleMonths: maxVisibleMonths = 1, pageBehavior: pageBehavior } = props;
71
+ let { hoverProps: hoverProps, isHovered: isHovered } = (0, $dUbU7$useHover)({
72
+ isDisabled: isDisabled
73
+ });
74
+ let targetRef = (0, $dUbU7$useRef)();
75
+ let state = (0, $dUbU7$useDateRangePickerState)({
76
+ ...props,
77
+ shouldCloseOnSelect: ()=>!state.hasTime
78
+ });
79
+ let { labelProps: labelProps, groupProps: groupProps, buttonProps: buttonProps, dialogProps: dialogProps, startFieldProps: startFieldProps, endFieldProps: endFieldProps, descriptionProps: descriptionProps, errorMessageProps: errorMessageProps, calendarProps: calendarProps, isInvalid: isInvalid, validationErrors: validationErrors, validationDetails: validationDetails } = (0, $dUbU7$useDateRangePicker)(props, state, targetRef);
80
+ let { isOpen: isOpen, setOpen: setOpen } = state;
81
+ let { direction: direction } = (0, $dUbU7$useLocale)();
82
+ let domRef = (0, $04e96200274b03de$export$71a23a36270e4bf0)(ref);
83
+ let stringFormatter = (0, $dUbU7$useLocalizedStringFormatter)((0, ($parcel$interopDefault($dUbU7$intlStringsmodulejs))), '@react-spectrum/datepicker');
84
+ let { isFocused: isFocused, isFocusVisible: isFocusVisible, focusProps: focusProps } = (0, $dUbU7$useFocusRing)({
85
+ within: true,
86
+ isTextInput: true,
87
+ autoFocus: autoFocus
88
+ });
89
+ let { isFocused: isFocusedButton, focusProps: focusPropsButton } = (0, $dUbU7$useFocusRing)({
90
+ within: false,
91
+ isTextInput: false,
92
+ autoFocus: autoFocus
93
+ });
94
+ let className = (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$inputgroup_vars_cssmodulejs))), 'spectrum-InputGroup', {
95
+ 'spectrum-InputGroup--quiet': isQuiet,
96
+ 'spectrum-InputGroup--invalid': isInvalid && !isDisabled,
97
+ 'is-disabled': isDisabled,
98
+ 'is-hovered': isHovered,
99
+ 'is-focused': isFocused,
100
+ 'focus-ring': isFocusVisible && !isFocusedButton
101
+ });
102
+ let fieldClassName = (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$inputgroup_vars_cssmodulejs))), 'spectrum-InputGroup-input', {
103
+ 'is-disabled': isDisabled,
104
+ 'is-invalid': isInvalid && !isDisabled
105
+ });
106
+ // Note: this description is intentionally not passed to useDatePicker.
107
+ // The format help text is unnecessary for screen reader users because each segment already has a label.
108
+ let description = (0, $04e96200274b03de$export$322f4580ccd8dde6)(props);
109
+ if (description && !props.description) descriptionProps.id = null;
110
+ let placeholder = placeholderValue;
111
+ let timePlaceholder = placeholder && 'hour' in placeholder ? placeholder : null;
112
+ let timeMinValue = props.minValue && 'hour' in props.minValue ? props.minValue : null;
113
+ let timeMaxValue = props.maxValue && 'hour' in props.maxValue ? props.maxValue : null;
114
+ let timeGranularity = state.granularity === 'hour' || state.granularity === 'minute' || state.granularity === 'second' ? state.granularity : null;
115
+ let showTimeField = !!timeGranularity;
116
+ let visibleMonths = (0, $04e96200274b03de$export$12ce2869ce471b1f)(maxVisibleMonths);
117
+ let validationState = state.validationState || (isInvalid ? 'invalid' : null);
118
+ return /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $dUbU7$Field), {
119
+ ...props,
120
+ ref: domRef,
121
+ elementType: "span",
122
+ description: description,
123
+ labelProps: labelProps,
124
+ descriptionProps: descriptionProps,
125
+ errorMessageProps: errorMessageProps,
126
+ validationState: validationState,
127
+ isInvalid: isInvalid,
128
+ validationErrors: validationErrors,
129
+ validationDetails: validationDetails,
130
+ wrapperClassName: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$styles_cssmodulejs))), 'react-spectrum-Datepicker-fieldWrapper')
131
+ }, /*#__PURE__*/ (0, $dUbU7$react).createElement("div", {
132
+ ...(0, $dUbU7$mergeProps)(groupProps, hoverProps, focusProps),
133
+ className: className,
134
+ ref: targetRef
135
+ }, /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $79348162c55d687f$export$f5b8910cec6cf069), {
136
+ isDisabled: isDisabled,
137
+ isQuiet: isQuiet,
138
+ validationState: validationState,
139
+ className: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$inputgroup_vars_cssmodulejs))), 'spectrum-InputGroup-field'),
140
+ inputClassName: fieldClassName,
141
+ disableFocusRing: true
142
+ }, /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $d2bb88c82604b25f$export$34dc4cfa15ead1), {
143
+ ...startFieldProps,
144
+ "data-testid": "start-date",
145
+ isQuiet: props.isQuiet,
146
+ inputClassName: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$styles_cssmodulejs))), 'react-spectrum-Datepicker-startField')
147
+ }), /*#__PURE__*/ (0, $dUbU7$react).createElement($cb301300011a98f7$var$DateRangeDash, null), /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $d2bb88c82604b25f$export$34dc4cfa15ead1), {
148
+ ...endFieldProps,
149
+ "data-testid": "end-date",
150
+ isQuiet: props.isQuiet,
151
+ inputClassName: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$inputgroup_vars_cssmodulejs))), 'spectrum-Datepicker-endField', (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$styles_cssmodulejs))), 'react-spectrum-Datepicker-endField'))
152
+ })), /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $dUbU7$DialogTrigger), {
153
+ type: "popover",
154
+ mobileType: "tray",
155
+ placement: direction === 'rtl' ? 'bottom right' : 'bottom left',
156
+ targetRef: targetRef,
157
+ hideArrow: true,
158
+ isOpen: isOpen,
159
+ onOpenChange: setOpen,
160
+ shouldFlip: props.shouldFlip
161
+ }, /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $dUbU7$FieldButton), {
162
+ ...(0, $dUbU7$mergeProps)(buttonProps, focusPropsButton),
163
+ UNSAFE_className: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$inputgroup_vars_cssmodulejs))), 'spectrum-FieldButton'),
164
+ isQuiet: isQuiet,
165
+ validationState: validationState
166
+ }, /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $dUbU7$spectrumiconsworkflowCalendar), null)), /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $dUbU7$Dialog), {
167
+ UNSAFE_className: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$styles_cssmodulejs))), 'react-spectrum-Datepicker-dialog'),
168
+ ...dialogProps
169
+ }, /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $dUbU7$Content), null, /*#__PURE__*/ (0, $dUbU7$react).createElement("div", {
170
+ className: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$styles_cssmodulejs))), 'react-spectrum-Datepicker-dialogContent')
171
+ }, /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $dUbU7$RangeCalendar), {
172
+ ...calendarProps,
173
+ visibleMonths: visibleMonths,
174
+ pageBehavior: pageBehavior,
175
+ UNSAFE_className: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$styles_cssmodulejs))), 'react-spectrum-Datepicker-calendar', {
176
+ 'is-invalid': validationState === 'invalid'
177
+ })
178
+ }), showTimeField && /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $dUbU7$Flex), {
179
+ gap: "size-100",
180
+ marginTop: "size-100",
181
+ UNSAFE_className: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$styles_cssmodulejs))), 'react-spectrum-Datepicker-timeFields')
182
+ }, /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $f0a04554754386b6$export$5eaee2322dd727eb), {
183
+ label: stringFormatter.format('startTime'),
184
+ value: ((_state_timeRange = state.timeRange) === null || _state_timeRange === void 0 ? void 0 : _state_timeRange.start) || null,
185
+ onChange: (v)=>state.setTime('start', v),
186
+ placeholderValue: timePlaceholder,
187
+ granularity: timeGranularity,
188
+ minValue: timeMinValue,
189
+ maxValue: timeMaxValue,
190
+ hourCycle: props.hourCycle,
191
+ hideTimeZone: props.hideTimeZone,
192
+ flex: true
193
+ }), /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $f0a04554754386b6$export$5eaee2322dd727eb), {
194
+ label: stringFormatter.format('endTime'),
195
+ value: ((_state_timeRange1 = state.timeRange) === null || _state_timeRange1 === void 0 ? void 0 : _state_timeRange1.end) || null,
196
+ onChange: (v)=>state.setTime('end', v),
197
+ placeholderValue: timePlaceholder,
198
+ granularity: timeGranularity,
199
+ minValue: timeMinValue,
200
+ maxValue: timeMaxValue,
201
+ hourCycle: props.hourCycle,
202
+ hideTimeZone: props.hideTimeZone,
203
+ flex: true
204
+ }))))))));
205
+ }
206
+ function $cb301300011a98f7$var$DateRangeDash() {
207
+ return /*#__PURE__*/ (0, $dUbU7$react).createElement("div", {
208
+ "aria-hidden": "true",
209
+ "data-testid": "date-range-dash",
210
+ className: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$styles_cssmodulejs))), 'react-spectrum-Datepicker-rangeDash')
211
+ });
212
+ }
213
+ /**
214
+ * DateRangePickers combine two DateFields and a RangeCalendar popover to allow users
215
+ * to enter or select a date and time range.
216
+ */ const $cb301300011a98f7$export$17334619f3ac2224 = /*#__PURE__*/ (0, $dUbU7$react).forwardRef($cb301300011a98f7$var$DateRangePicker);
217
+
218
+
219
+ export {$cb301300011a98f7$export$17334619f3ac2224 as DateRangePicker};
220
+ //# sourceMappingURL=DateRangePicker.module.js.map
@@ -0,0 +1,220 @@
1
+ import {DatePickerField as $d2bb88c82604b25f$export$34dc4cfa15ead1} from "./DatePickerField.module.js";
2
+ import "./styles.36ea4632.css";
3
+ import $dUbU7$styles_cssmodulejs from "./styles_css.module.js";
4
+ import {Input as $79348162c55d687f$export$f5b8910cec6cf069} from "./Input.module.js";
5
+ import $dUbU7$intlStringsmodulejs from "./intlStrings.module.js";
6
+ import "./vars.ccbd2e3f.css";
7
+ import $dUbU7$inputgroup_vars_cssmodulejs from "./inputgroup_vars_css.module.js";
8
+ import {TimeField as $f0a04554754386b6$export$5eaee2322dd727eb} from "./TimeField.module.js";
9
+ import {useFocusManagerRef as $04e96200274b03de$export$71a23a36270e4bf0, useFormatHelpText as $04e96200274b03de$export$322f4580ccd8dde6, useVisibleMonths as $04e96200274b03de$export$12ce2869ce471b1f} from "./utils.module.js";
10
+ import $dUbU7$spectrumiconsworkflowCalendar from "@spectrum-icons/workflow/Calendar";
11
+ import {classNames as $dUbU7$classNames} from "@react-spectrum/utils";
12
+ import {Content as $dUbU7$Content} from "@react-spectrum/view";
13
+ import {DialogTrigger as $dUbU7$DialogTrigger, Dialog as $dUbU7$Dialog} from "@react-spectrum/dialog";
14
+ import {Field as $dUbU7$Field} from "@react-spectrum/label";
15
+ import {FieldButton as $dUbU7$FieldButton} from "@react-spectrum/button";
16
+ import {Flex as $dUbU7$Flex} from "@react-spectrum/layout";
17
+ import {mergeProps as $dUbU7$mergeProps} from "@react-aria/utils";
18
+ import {RangeCalendar as $dUbU7$RangeCalendar} from "@react-spectrum/calendar";
19
+ import $dUbU7$react, {useRef as $dUbU7$useRef} from "react";
20
+ import {useDateRangePicker as $dUbU7$useDateRangePicker} from "@react-aria/datepicker";
21
+ import {useDateRangePickerState as $dUbU7$useDateRangePickerState} from "@react-stately/datepicker";
22
+ import {useFocusRing as $dUbU7$useFocusRing} from "@react-aria/focus";
23
+ import {useFormProps as $dUbU7$useFormProps} from "@react-spectrum/form";
24
+ import {useHover as $dUbU7$useHover} from "@react-aria/interactions";
25
+ import {useLocale as $dUbU7$useLocale, useLocalizedStringFormatter as $dUbU7$useLocalizedStringFormatter} from "@react-aria/i18n";
26
+ import {useProviderProps as $dUbU7$useProviderProps} from "@react-spectrum/provider";
27
+
28
+
29
+ function $parcel$interopDefault(a) {
30
+ return a && a.__esModule ? a.default : a;
31
+ }
32
+ /*
33
+ * Copyright 2020 Adobe. All rights reserved.
34
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
35
+ * you may not use this file except in compliance with the License. You may obtain a copy
36
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
37
+ *
38
+ * Unless required by applicable law or agreed to in writing, software distributed under
39
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
40
+ * OF ANY KIND, either express or implied. See the License for the specific language
41
+ * governing permissions and limitations under the License.
42
+ */
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+ function $cb301300011a98f7$var$DateRangePicker(props, ref) {
67
+ var _state_timeRange, _state_timeRange1;
68
+ props = (0, $dUbU7$useProviderProps)(props);
69
+ props = (0, $dUbU7$useFormProps)(props);
70
+ let { isQuiet: isQuiet, isDisabled: isDisabled, autoFocus: autoFocus, placeholderValue: placeholderValue, maxVisibleMonths: maxVisibleMonths = 1, pageBehavior: pageBehavior } = props;
71
+ let { hoverProps: hoverProps, isHovered: isHovered } = (0, $dUbU7$useHover)({
72
+ isDisabled: isDisabled
73
+ });
74
+ let targetRef = (0, $dUbU7$useRef)();
75
+ let state = (0, $dUbU7$useDateRangePickerState)({
76
+ ...props,
77
+ shouldCloseOnSelect: ()=>!state.hasTime
78
+ });
79
+ let { labelProps: labelProps, groupProps: groupProps, buttonProps: buttonProps, dialogProps: dialogProps, startFieldProps: startFieldProps, endFieldProps: endFieldProps, descriptionProps: descriptionProps, errorMessageProps: errorMessageProps, calendarProps: calendarProps, isInvalid: isInvalid, validationErrors: validationErrors, validationDetails: validationDetails } = (0, $dUbU7$useDateRangePicker)(props, state, targetRef);
80
+ let { isOpen: isOpen, setOpen: setOpen } = state;
81
+ let { direction: direction } = (0, $dUbU7$useLocale)();
82
+ let domRef = (0, $04e96200274b03de$export$71a23a36270e4bf0)(ref);
83
+ let stringFormatter = (0, $dUbU7$useLocalizedStringFormatter)((0, ($parcel$interopDefault($dUbU7$intlStringsmodulejs))), '@react-spectrum/datepicker');
84
+ let { isFocused: isFocused, isFocusVisible: isFocusVisible, focusProps: focusProps } = (0, $dUbU7$useFocusRing)({
85
+ within: true,
86
+ isTextInput: true,
87
+ autoFocus: autoFocus
88
+ });
89
+ let { isFocused: isFocusedButton, focusProps: focusPropsButton } = (0, $dUbU7$useFocusRing)({
90
+ within: false,
91
+ isTextInput: false,
92
+ autoFocus: autoFocus
93
+ });
94
+ let className = (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$inputgroup_vars_cssmodulejs))), 'spectrum-InputGroup', {
95
+ 'spectrum-InputGroup--quiet': isQuiet,
96
+ 'spectrum-InputGroup--invalid': isInvalid && !isDisabled,
97
+ 'is-disabled': isDisabled,
98
+ 'is-hovered': isHovered,
99
+ 'is-focused': isFocused,
100
+ 'focus-ring': isFocusVisible && !isFocusedButton
101
+ });
102
+ let fieldClassName = (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$inputgroup_vars_cssmodulejs))), 'spectrum-InputGroup-input', {
103
+ 'is-disabled': isDisabled,
104
+ 'is-invalid': isInvalid && !isDisabled
105
+ });
106
+ // Note: this description is intentionally not passed to useDatePicker.
107
+ // The format help text is unnecessary for screen reader users because each segment already has a label.
108
+ let description = (0, $04e96200274b03de$export$322f4580ccd8dde6)(props);
109
+ if (description && !props.description) descriptionProps.id = null;
110
+ let placeholder = placeholderValue;
111
+ let timePlaceholder = placeholder && 'hour' in placeholder ? placeholder : null;
112
+ let timeMinValue = props.minValue && 'hour' in props.minValue ? props.minValue : null;
113
+ let timeMaxValue = props.maxValue && 'hour' in props.maxValue ? props.maxValue : null;
114
+ let timeGranularity = state.granularity === 'hour' || state.granularity === 'minute' || state.granularity === 'second' ? state.granularity : null;
115
+ let showTimeField = !!timeGranularity;
116
+ let visibleMonths = (0, $04e96200274b03de$export$12ce2869ce471b1f)(maxVisibleMonths);
117
+ let validationState = state.validationState || (isInvalid ? 'invalid' : null);
118
+ return /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $dUbU7$Field), {
119
+ ...props,
120
+ ref: domRef,
121
+ elementType: "span",
122
+ description: description,
123
+ labelProps: labelProps,
124
+ descriptionProps: descriptionProps,
125
+ errorMessageProps: errorMessageProps,
126
+ validationState: validationState,
127
+ isInvalid: isInvalid,
128
+ validationErrors: validationErrors,
129
+ validationDetails: validationDetails,
130
+ wrapperClassName: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$styles_cssmodulejs))), 'react-spectrum-Datepicker-fieldWrapper')
131
+ }, /*#__PURE__*/ (0, $dUbU7$react).createElement("div", {
132
+ ...(0, $dUbU7$mergeProps)(groupProps, hoverProps, focusProps),
133
+ className: className,
134
+ ref: targetRef
135
+ }, /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $79348162c55d687f$export$f5b8910cec6cf069), {
136
+ isDisabled: isDisabled,
137
+ isQuiet: isQuiet,
138
+ validationState: validationState,
139
+ className: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$inputgroup_vars_cssmodulejs))), 'spectrum-InputGroup-field'),
140
+ inputClassName: fieldClassName,
141
+ disableFocusRing: true
142
+ }, /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $d2bb88c82604b25f$export$34dc4cfa15ead1), {
143
+ ...startFieldProps,
144
+ "data-testid": "start-date",
145
+ isQuiet: props.isQuiet,
146
+ inputClassName: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$styles_cssmodulejs))), 'react-spectrum-Datepicker-startField')
147
+ }), /*#__PURE__*/ (0, $dUbU7$react).createElement($cb301300011a98f7$var$DateRangeDash, null), /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $d2bb88c82604b25f$export$34dc4cfa15ead1), {
148
+ ...endFieldProps,
149
+ "data-testid": "end-date",
150
+ isQuiet: props.isQuiet,
151
+ inputClassName: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$inputgroup_vars_cssmodulejs))), 'spectrum-Datepicker-endField', (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$styles_cssmodulejs))), 'react-spectrum-Datepicker-endField'))
152
+ })), /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $dUbU7$DialogTrigger), {
153
+ type: "popover",
154
+ mobileType: "tray",
155
+ placement: direction === 'rtl' ? 'bottom right' : 'bottom left',
156
+ targetRef: targetRef,
157
+ hideArrow: true,
158
+ isOpen: isOpen,
159
+ onOpenChange: setOpen,
160
+ shouldFlip: props.shouldFlip
161
+ }, /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $dUbU7$FieldButton), {
162
+ ...(0, $dUbU7$mergeProps)(buttonProps, focusPropsButton),
163
+ UNSAFE_className: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$inputgroup_vars_cssmodulejs))), 'spectrum-FieldButton'),
164
+ isQuiet: isQuiet,
165
+ validationState: validationState
166
+ }, /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $dUbU7$spectrumiconsworkflowCalendar), null)), /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $dUbU7$Dialog), {
167
+ UNSAFE_className: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$styles_cssmodulejs))), 'react-spectrum-Datepicker-dialog'),
168
+ ...dialogProps
169
+ }, /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $dUbU7$Content), null, /*#__PURE__*/ (0, $dUbU7$react).createElement("div", {
170
+ className: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$styles_cssmodulejs))), 'react-spectrum-Datepicker-dialogContent')
171
+ }, /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $dUbU7$RangeCalendar), {
172
+ ...calendarProps,
173
+ visibleMonths: visibleMonths,
174
+ pageBehavior: pageBehavior,
175
+ UNSAFE_className: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$styles_cssmodulejs))), 'react-spectrum-Datepicker-calendar', {
176
+ 'is-invalid': validationState === 'invalid'
177
+ })
178
+ }), showTimeField && /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $dUbU7$Flex), {
179
+ gap: "size-100",
180
+ marginTop: "size-100",
181
+ UNSAFE_className: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$styles_cssmodulejs))), 'react-spectrum-Datepicker-timeFields')
182
+ }, /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $f0a04554754386b6$export$5eaee2322dd727eb), {
183
+ label: stringFormatter.format('startTime'),
184
+ value: ((_state_timeRange = state.timeRange) === null || _state_timeRange === void 0 ? void 0 : _state_timeRange.start) || null,
185
+ onChange: (v)=>state.setTime('start', v),
186
+ placeholderValue: timePlaceholder,
187
+ granularity: timeGranularity,
188
+ minValue: timeMinValue,
189
+ maxValue: timeMaxValue,
190
+ hourCycle: props.hourCycle,
191
+ hideTimeZone: props.hideTimeZone,
192
+ flex: true
193
+ }), /*#__PURE__*/ (0, $dUbU7$react).createElement((0, $f0a04554754386b6$export$5eaee2322dd727eb), {
194
+ label: stringFormatter.format('endTime'),
195
+ value: ((_state_timeRange1 = state.timeRange) === null || _state_timeRange1 === void 0 ? void 0 : _state_timeRange1.end) || null,
196
+ onChange: (v)=>state.setTime('end', v),
197
+ placeholderValue: timePlaceholder,
198
+ granularity: timeGranularity,
199
+ minValue: timeMinValue,
200
+ maxValue: timeMaxValue,
201
+ hourCycle: props.hourCycle,
202
+ hideTimeZone: props.hideTimeZone,
203
+ flex: true
204
+ }))))))));
205
+ }
206
+ function $cb301300011a98f7$var$DateRangeDash() {
207
+ return /*#__PURE__*/ (0, $dUbU7$react).createElement("div", {
208
+ "aria-hidden": "true",
209
+ "data-testid": "date-range-dash",
210
+ className: (0, $dUbU7$classNames)((0, ($parcel$interopDefault($dUbU7$styles_cssmodulejs))), 'react-spectrum-Datepicker-rangeDash')
211
+ });
212
+ }
213
+ /**
214
+ * DateRangePickers combine two DateFields and a RangeCalendar popover to allow users
215
+ * to enter or select a date and time range.
216
+ */ const $cb301300011a98f7$export$17334619f3ac2224 = /*#__PURE__*/ (0, $dUbU7$react).forwardRef($cb301300011a98f7$var$DateRangePicker);
217
+
218
+
219
+ export {$cb301300011a98f7$export$17334619f3ac2224 as DateRangePicker};
220
+ //# sourceMappingURL=DateRangePicker.module.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["packages/@react-spectrum/datepicker/src/DateRangePicker.tsx"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport CalendarIcon from '@spectrum-icons/workflow/Calendar';\nimport {classNames} from '@react-spectrum/utils';\nimport {Content} from '@react-spectrum/view';\nimport {DatePickerField} from './DatePickerField';\nimport datepickerStyles from './styles.css';\nimport {DateValue, SpectrumDateRangePickerProps} from '@react-types/datepicker';\nimport {Dialog, DialogTrigger} from '@react-spectrum/dialog';\nimport {Field} from '@react-spectrum/label';\nimport {FieldButton} from '@react-spectrum/button';\nimport {Flex} from '@react-spectrum/layout';\nimport {FocusableRef} from '@react-types/shared';\nimport {Input} from './Input';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {mergeProps} from '@react-aria/utils';\nimport {RangeCalendar} from '@react-spectrum/calendar';\nimport React, {ReactElement, useRef} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/inputgroup/vars.css';\nimport {TimeField} from './TimeField';\nimport {useDateRangePicker} from '@react-aria/datepicker';\nimport {useDateRangePickerState} from '@react-stately/datepicker';\nimport {useFocusManagerRef, useFormatHelpText, useVisibleMonths} from './utils';\nimport {useFocusRing} from '@react-aria/focus';\nimport {useFormProps} from '@react-spectrum/form';\nimport {useHover} from '@react-aria/interactions';\nimport {useLocale, useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useProviderProps} from '@react-spectrum/provider';\n\nfunction DateRangePicker<T extends DateValue>(props: SpectrumDateRangePickerProps<T>, ref: FocusableRef<HTMLElement>) {\n props = useProviderProps(props);\n props = useFormProps(props);\n let {\n isQuiet,\n isDisabled,\n autoFocus,\n placeholderValue,\n maxVisibleMonths = 1,\n pageBehavior\n } = props;\n let {hoverProps, isHovered} = useHover({isDisabled});\n let targetRef = useRef<HTMLDivElement>();\n let state = useDateRangePickerState({\n ...props,\n shouldCloseOnSelect: () => !state.hasTime\n });\n let {labelProps, groupProps, buttonProps, dialogProps, startFieldProps, endFieldProps, descriptionProps, errorMessageProps, calendarProps, isInvalid, validationErrors, validationDetails} = useDateRangePicker(props, state, targetRef);\n let {isOpen, setOpen} = state;\n let {direction} = useLocale();\n let domRef = useFocusManagerRef(ref);\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/datepicker');\n\n let {isFocused, isFocusVisible, focusProps} = useFocusRing({\n within: true,\n isTextInput: true,\n autoFocus\n });\n\n let {isFocused: isFocusedButton, focusProps: focusPropsButton} = useFocusRing({\n within: false,\n isTextInput: false,\n autoFocus\n });\n\n let className = classNames(\n styles,\n 'spectrum-InputGroup',\n {\n 'spectrum-InputGroup--quiet': isQuiet,\n 'spectrum-InputGroup--invalid': isInvalid && !isDisabled,\n 'is-disabled': isDisabled,\n 'is-hovered': isHovered,\n 'is-focused': isFocused,\n 'focus-ring': isFocusVisible && !isFocusedButton\n }\n );\n\n let fieldClassName = classNames(\n styles,\n 'spectrum-InputGroup-input',\n {\n 'is-disabled': isDisabled,\n 'is-invalid': isInvalid && !isDisabled\n }\n );\n\n // Note: this description is intentionally not passed to useDatePicker.\n // The format help text is unnecessary for screen reader users because each segment already has a label.\n let description = useFormatHelpText(props);\n if (description && !props.description) {\n descriptionProps.id = null;\n }\n\n let placeholder: DateValue = placeholderValue;\n let timePlaceholder = placeholder && 'hour' in placeholder ? placeholder : null;\n let timeMinValue = props.minValue && 'hour' in props.minValue ? props.minValue : null;\n let timeMaxValue = props.maxValue && 'hour' in props.maxValue ? props.maxValue : null;\n let timeGranularity = state.granularity === 'hour' || state.granularity === 'minute' || state.granularity === 'second' ? state.granularity : null;\n let showTimeField = !!timeGranularity;\n\n let visibleMonths = useVisibleMonths(maxVisibleMonths);\n let validationState = state.validationState || (isInvalid ? 'invalid' : null);\n\n return (\n <Field\n {...props}\n ref={domRef}\n elementType=\"span\"\n description={description}\n labelProps={labelProps}\n descriptionProps={descriptionProps}\n errorMessageProps={errorMessageProps}\n validationState={validationState}\n isInvalid={isInvalid}\n validationErrors={validationErrors}\n validationDetails={validationDetails}\n wrapperClassName={classNames(datepickerStyles, 'react-spectrum-Datepicker-fieldWrapper')}>\n <div\n {...mergeProps(groupProps, hoverProps, focusProps)}\n className={className}\n ref={targetRef}>\n <Input\n isDisabled={isDisabled}\n isQuiet={isQuiet}\n validationState={validationState}\n className={classNames(styles, 'spectrum-InputGroup-field')}\n inputClassName={fieldClassName}\n disableFocusRing>\n <DatePickerField\n {...startFieldProps}\n data-testid=\"start-date\"\n isQuiet={props.isQuiet}\n inputClassName={classNames(datepickerStyles, 'react-spectrum-Datepicker-startField')} />\n <DateRangeDash />\n <DatePickerField\n {...endFieldProps}\n data-testid=\"end-date\"\n isQuiet={props.isQuiet}\n inputClassName={classNames(\n styles,\n 'spectrum-Datepicker-endField',\n classNames(\n datepickerStyles,\n 'react-spectrum-Datepicker-endField'\n )\n )} />\n </Input>\n <DialogTrigger\n type=\"popover\"\n mobileType=\"tray\"\n placement={direction === 'rtl' ? 'bottom right' : 'bottom left'}\n targetRef={targetRef}\n hideArrow\n isOpen={isOpen}\n onOpenChange={setOpen}\n shouldFlip={props.shouldFlip}>\n <FieldButton\n {...mergeProps(buttonProps, focusPropsButton)}\n UNSAFE_className={classNames(styles, 'spectrum-FieldButton')}\n isQuiet={isQuiet}\n validationState={validationState}>\n <CalendarIcon />\n </FieldButton>\n <Dialog UNSAFE_className={classNames(datepickerStyles, 'react-spectrum-Datepicker-dialog')} {...dialogProps}>\n <Content>\n <div className={classNames(datepickerStyles, 'react-spectrum-Datepicker-dialogContent')}>\n <RangeCalendar\n {...calendarProps}\n visibleMonths={visibleMonths}\n pageBehavior={pageBehavior}\n UNSAFE_className={classNames(datepickerStyles, 'react-spectrum-Datepicker-calendar', {'is-invalid': validationState === 'invalid'})} />\n {showTimeField &&\n <Flex gap=\"size-100\" marginTop=\"size-100\" UNSAFE_className={classNames(datepickerStyles, 'react-spectrum-Datepicker-timeFields')}>\n <TimeField\n label={stringFormatter.format('startTime')}\n value={state.timeRange?.start || null}\n onChange={v => state.setTime('start', v)}\n placeholderValue={timePlaceholder}\n granularity={timeGranularity}\n minValue={timeMinValue}\n maxValue={timeMaxValue}\n hourCycle={props.hourCycle}\n hideTimeZone={props.hideTimeZone}\n flex />\n <TimeField\n label={stringFormatter.format('endTime')}\n value={state.timeRange?.end || null}\n onChange={v => state.setTime('end', v)}\n placeholderValue={timePlaceholder}\n granularity={timeGranularity}\n minValue={timeMinValue}\n maxValue={timeMaxValue}\n hourCycle={props.hourCycle}\n hideTimeZone={props.hideTimeZone}\n flex />\n </Flex>\n }\n </div>\n </Content>\n </Dialog>\n </DialogTrigger>\n </div>\n </Field>\n );\n}\n\nfunction DateRangeDash() {\n return (\n <div\n aria-hidden=\"true\"\n data-testid=\"date-range-dash\"\n className={classNames(datepickerStyles, 'react-spectrum-Datepicker-rangeDash')} />\n );\n}\n\n/**\n * DateRangePickers combine two DateFields and a RangeCalendar popover to allow users\n * to enter or select a date and time range.\n */\nconst _DateRangePicker = React.forwardRef(DateRangePicker) as <T extends DateValue>(props: SpectrumDateRangePickerProps<T> & {ref?: FocusableRef<HTMLElement>}) => ReactElement;\nexport {_DateRangePicker as DateRangePicker};\n"],"names":[],"version":3,"file":"DateRangePicker.module.js.map"}
@@ -0,0 +1,123 @@
1
+ require("./styles.36ea4632.css");
2
+ var $91c3db8c6a21ca71$exports = require("./styles_css.main.js");
3
+ require("./vars.3692148b.css");
4
+ var $40cb3a00c193680f$exports = require("./textfield_vars_css.main.js");
5
+ var $9cini$spectrumiconsuiAlertMedium = require("@spectrum-icons/ui/AlertMedium");
6
+ var $9cini$spectrumiconsuiCheckmarkMedium = require("@spectrum-icons/ui/CheckmarkMedium");
7
+ var $9cini$reactspectrumutils = require("@react-spectrum/utils");
8
+ var $9cini$reactariautils = require("@react-aria/utils");
9
+ var $9cini$react = require("react");
10
+ var $9cini$reactariafocus = require("@react-aria/focus");
11
+
12
+
13
+ function $parcel$interopDefault(a) {
14
+ return a && a.__esModule ? a.default : a;
15
+ }
16
+
17
+ function $parcel$export(e, n, v, s) {
18
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
19
+ }
20
+
21
+ $parcel$export(module.exports, "Input", () => $c3ebc4931d9b9977$export$f5b8910cec6cf069);
22
+ /*
23
+ * Copyright 2020 Adobe. All rights reserved.
24
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
25
+ * you may not use this file except in compliance with the License. You may obtain a copy
26
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
27
+ *
28
+ * Unless required by applicable law or agreed to in writing, software distributed under
29
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
30
+ * OF ANY KIND, either express or implied. See the License for the specific language
31
+ * governing permissions and limitations under the License.
32
+ */
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+ function $c3ebc4931d9b9977$var$Input(props, ref) {
41
+ let inputRef = (0, $9cini$react.useRef)(null);
42
+ let { isDisabled: isDisabled, isQuiet: isQuiet, inputClassName: inputClassName, validationState: validationState, children: children, fieldProps: fieldProps, className: className, style: style, disableFocusRing: disableFocusRing } = props;
43
+ // Reserve padding for the error icon when the width of the input is unconstrained.
44
+ // When constrained, don't reserve space because adding it only when invalid will
45
+ // not cause a layout shift.
46
+ let [reservePadding, setReservePadding] = (0, $9cini$reactspectrumutils.useValueEffect)(false);
47
+ let onResize = (0, $9cini$react.useCallback)(()=>setReservePadding(function*(reservePadding) {
48
+ if (inputRef.current) {
49
+ if (reservePadding) // Try to collapse padding if the content is clipped.
50
+ {
51
+ if (inputRef.current.scrollWidth > inputRef.current.offsetWidth) {
52
+ let width = inputRef.current.parentElement.offsetWidth;
53
+ yield false;
54
+ // If removing padding causes a layout shift, add it back.
55
+ if (inputRef.current.parentElement.offsetWidth !== width) yield true;
56
+ }
57
+ } else // Try to add padding if the content is not clipped.
58
+ if (inputRef.current.offsetWidth >= inputRef.current.scrollWidth) {
59
+ let width = inputRef.current.parentElement.offsetWidth;
60
+ yield true;
61
+ // If adding padding does not change the width (i.e. width is constrained), remove it again.
62
+ if (inputRef.current.parentElement.offsetWidth === width) yield false;
63
+ }
64
+ }
65
+ }), [
66
+ inputRef,
67
+ setReservePadding
68
+ ]);
69
+ (0, $9cini$reactariautils.useLayoutEffect)(onResize, [
70
+ onResize
71
+ ]);
72
+ (0, $9cini$reactariautils.useResizeObserver)({
73
+ ref: inputRef,
74
+ onResize: onResize
75
+ });
76
+ // We also need to listen for resize events of the window so we can detect
77
+ // when there is enough space for the padding to be re-added. Ideally we'd
78
+ // use a resize observer on a parent element, but it's hard to know _what_
79
+ // parent element.
80
+ (0, $9cini$reactariautils.useEvent)((0, $9cini$react.useRef)(typeof window !== 'undefined' ? window : null), 'resize', onResize);
81
+ let { focusProps: focusProps, isFocusVisible: isFocusVisible, isFocused: isFocused } = (0, $9cini$reactariafocus.useFocusRing)({
82
+ isTextInput: true,
83
+ within: true
84
+ });
85
+ let isInvalid = validationState === 'invalid' && !isDisabled;
86
+ let textfieldClass = (0, $9cini$reactspectrumutils.classNames)((0, ($parcel$interopDefault($40cb3a00c193680f$exports))), 'spectrum-Textfield', {
87
+ 'spectrum-Textfield--invalid': isInvalid,
88
+ 'spectrum-Textfield--valid': validationState === 'valid' && !isDisabled,
89
+ 'spectrum-Textfield--quiet': isQuiet,
90
+ 'focus-ring': isFocusVisible && !disableFocusRing
91
+ }, (0, $9cini$reactspectrumutils.classNames)((0, ($parcel$interopDefault($91c3db8c6a21ca71$exports))), 'react-spectrum-Datepicker-field'), className);
92
+ let inputClass = (0, $9cini$reactspectrumutils.classNames)((0, ($parcel$interopDefault($40cb3a00c193680f$exports))), 'spectrum-Textfield-input', {
93
+ 'is-disabled': isDisabled,
94
+ 'is-focused': isFocused
95
+ }, (0, $9cini$reactspectrumutils.classNames)((0, ($parcel$interopDefault($91c3db8c6a21ca71$exports))), 'react-spectrum-DateField-Input'), reservePadding && (0, $9cini$reactspectrumutils.classNames)((0, ($parcel$interopDefault($91c3db8c6a21ca71$exports))), 'react-spectrum-Datepicker-input'), inputClassName);
96
+ let iconClass = (0, $9cini$reactspectrumutils.classNames)((0, ($parcel$interopDefault($40cb3a00c193680f$exports))), 'spectrum-Textfield-validationIcon');
97
+ let validationIcon = null;
98
+ if (validationState === 'invalid' && !isDisabled) validationIcon = /*#__PURE__*/ (0, ($parcel$interopDefault($9cini$react))).createElement((0, ($parcel$interopDefault($9cini$spectrumiconsuiAlertMedium))), {
99
+ "data-testid": "invalid-icon",
100
+ UNSAFE_className: iconClass
101
+ });
102
+ else if (validationState === 'valid' && !isDisabled) validationIcon = /*#__PURE__*/ (0, ($parcel$interopDefault($9cini$react))).createElement((0, ($parcel$interopDefault($9cini$spectrumiconsuiCheckmarkMedium))), {
103
+ "data-testid": "valid-icon",
104
+ UNSAFE_className: iconClass
105
+ });
106
+ return /*#__PURE__*/ (0, ($parcel$interopDefault($9cini$react))).createElement("div", {
107
+ role: "presentation",
108
+ ...(0, $9cini$reactariautils.mergeProps)(fieldProps, focusProps),
109
+ className: textfieldClass,
110
+ style: style
111
+ }, /*#__PURE__*/ (0, ($parcel$interopDefault($9cini$react))).createElement("div", {
112
+ role: "presentation",
113
+ className: inputClass
114
+ }, /*#__PURE__*/ (0, ($parcel$interopDefault($9cini$react))).createElement("div", {
115
+ role: "presentation",
116
+ className: (0, $9cini$reactspectrumutils.classNames)((0, ($parcel$interopDefault($91c3db8c6a21ca71$exports))), 'react-spectrum-Datepicker-inputContents'),
117
+ ref: (0, $9cini$reactariautils.mergeRefs)(ref, inputRef)
118
+ }, children)), validationIcon);
119
+ }
120
+ const $c3ebc4931d9b9977$export$f5b8910cec6cf069 = /*#__PURE__*/ (0, ($parcel$interopDefault($9cini$react))).forwardRef($c3ebc4931d9b9977$var$Input);
121
+
122
+
123
+ //# sourceMappingURL=Input.main.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["packages/@react-spectrum/datepicker/src/Input.tsx"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport Alert from '@spectrum-icons/ui/AlertMedium';\nimport Checkmark from '@spectrum-icons/ui/CheckmarkMedium';\nimport {classNames, useValueEffect} from '@react-spectrum/utils';\nimport datepickerStyles from './styles.css';\nimport {mergeProps, mergeRefs, useEvent, useLayoutEffect, useResizeObserver} from '@react-aria/utils';\nimport React, {useCallback, useRef} from 'react';\nimport textfieldStyles from '@adobe/spectrum-css-temp/components/textfield/vars.css';\nimport {useFocusRing} from '@react-aria/focus';\n\nfunction Input(props, ref) {\n let inputRef = useRef(null);\n let {\n isDisabled,\n isQuiet,\n inputClassName,\n validationState,\n children,\n fieldProps,\n className,\n style,\n disableFocusRing\n } = props;\n\n // Reserve padding for the error icon when the width of the input is unconstrained.\n // When constrained, don't reserve space because adding it only when invalid will\n // not cause a layout shift.\n let [reservePadding, setReservePadding] = useValueEffect(false);\n let onResize = useCallback(() => setReservePadding(function *(reservePadding) {\n if (inputRef.current) {\n if (reservePadding) {\n // Try to collapse padding if the content is clipped.\n if (inputRef.current.scrollWidth > inputRef.current.offsetWidth) {\n let width = inputRef.current.parentElement.offsetWidth;\n yield false;\n\n // If removing padding causes a layout shift, add it back.\n if (inputRef.current.parentElement.offsetWidth !== width) {\n yield true;\n }\n }\n } else {\n // Try to add padding if the content is not clipped.\n if (inputRef.current.offsetWidth >= inputRef.current.scrollWidth) {\n let width = inputRef.current.parentElement.offsetWidth;\n yield true;\n\n // If adding padding does not change the width (i.e. width is constrained), remove it again.\n if (inputRef.current.parentElement.offsetWidth === width) {\n yield false;\n }\n }\n }\n }\n\n }), [inputRef, setReservePadding]);\n\n useLayoutEffect(onResize, [onResize]);\n useResizeObserver({\n ref: inputRef,\n onResize\n });\n\n // We also need to listen for resize events of the window so we can detect\n // when there is enough space for the padding to be re-added. Ideally we'd\n // use a resize observer on a parent element, but it's hard to know _what_\n // parent element.\n useEvent(useRef(typeof window !== 'undefined' ? window : null), 'resize', onResize);\n\n let {focusProps, isFocusVisible, isFocused} = useFocusRing({\n isTextInput: true,\n within: true\n });\n\n let isInvalid = validationState === 'invalid' && !isDisabled;\n let textfieldClass = classNames(\n textfieldStyles,\n 'spectrum-Textfield',\n {\n 'spectrum-Textfield--invalid': isInvalid,\n 'spectrum-Textfield--valid': validationState === 'valid' && !isDisabled,\n 'spectrum-Textfield--quiet': isQuiet,\n 'focus-ring': isFocusVisible && !disableFocusRing\n },\n classNames(datepickerStyles, 'react-spectrum-Datepicker-field'),\n className\n );\n\n let inputClass = classNames(\n textfieldStyles,\n 'spectrum-Textfield-input',\n {\n 'is-disabled': isDisabled,\n 'is-focused': isFocused\n },\n classNames(datepickerStyles, 'react-spectrum-DateField-Input'),\n reservePadding && classNames(datepickerStyles, 'react-spectrum-Datepicker-input'),\n inputClassName\n );\n\n let iconClass = classNames(\n textfieldStyles,\n 'spectrum-Textfield-validationIcon'\n );\n\n let validationIcon = null;\n if (validationState === 'invalid' && !isDisabled) {\n validationIcon = <Alert data-testid=\"invalid-icon\" UNSAFE_className={iconClass} />;\n } else if (validationState === 'valid' && !isDisabled) {\n validationIcon = <Checkmark data-testid=\"valid-icon\" UNSAFE_className={iconClass} />;\n }\n\n return (\n <div role=\"presentation\" {...mergeProps(fieldProps, focusProps)} className={textfieldClass} style={style}>\n <div role=\"presentation\" className={inputClass}>\n <div role=\"presentation\" className={classNames(datepickerStyles, 'react-spectrum-Datepicker-inputContents')} ref={mergeRefs(ref, inputRef)}>\n {children}\n </div>\n </div>\n {validationIcon}\n </div>\n );\n}\n\nconst _Input = React.forwardRef(Input);\nexport {_Input as Input};\n"],"names":[],"version":3,"file":"Input.main.js.map"}