@react-spectrum/datepicker 3.0.0-alpha.2 → 3.0.0-alpha.5

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.
@@ -11,19 +11,17 @@
11
11
  */
12
12
 
13
13
  import {classNames} from '@react-spectrum/utils';
14
+ import {DateFieldState, DateSegment} from '@react-stately/datepicker';
14
15
  import {DatePickerBase, DateValue} from '@react-types/datepicker';
15
- import {DatePickerFieldState, DateSegment} from '@react-stately/datepicker';
16
16
  import {NumberParser} from '@internationalized/number';
17
17
  import React, {useMemo, useRef} from 'react';
18
18
  import styles from './index.css';
19
19
  import {useDateSegment} from '@react-aria/datepicker';
20
- import {useFocusManager} from '@react-aria/focus';
21
20
  import {useLocale} from '@react-aria/i18n';
22
- import {usePress} from '@react-aria/interactions';
23
21
 
24
22
  interface DatePickerSegmentProps extends DatePickerBase<DateValue> {
25
23
  segment: DateSegment,
26
- state: DatePickerFieldState
24
+ state: DateFieldState
27
25
  }
28
26
 
29
27
  interface LiteralSegmentProps {
@@ -43,47 +41,35 @@ export function DatePickerSegment({segment, state, ...otherProps}: DatePickerSeg
43
41
  }
44
42
 
45
43
  function LiteralSegment({segment}: LiteralSegmentProps) {
46
- let focusManager = useFocusManager();
47
- let {pressProps} = usePress({
48
- onPressStart: (e) => {
49
- if (e.pointerType === 'mouse') {
50
- let res = focusManager.focusNext({from: e.target as HTMLElement});
51
- if (!res) {
52
- focusManager.focusPrevious({from: e.target as HTMLElement});
53
- }
54
- }
55
- }
56
- });
57
-
58
44
  return (
59
45
  <span
60
46
  aria-hidden="true"
61
47
  className={classNames(styles, 'react-spectrum-Datepicker-literal')}
62
- {...pressProps}
63
48
  data-testid={segment.type === 'literal' ? undefined : segment.type}>
64
49
  {segment.text}
65
50
  </span>
66
51
  );
67
52
  }
68
53
 
69
- function EditableSegment({segment, state, ...otherProps}: DatePickerSegmentProps) {
54
+ function EditableSegment({segment, state}: DatePickerSegmentProps) {
70
55
  let ref = useRef();
71
- let {segmentProps} = useDateSegment(otherProps, segment, state, ref);
56
+ let {segmentProps} = useDateSegment(segment, state, ref);
72
57
  let {locale} = useLocale();
73
58
  let parser = useMemo(() => new NumberParser(locale), [locale]);
74
59
  let isNumeric = useMemo(() => parser.isValidPartialNumber(segment.text), [segment.text, parser]);
75
60
  return (
76
61
  <div
62
+ {...segmentProps}
77
63
  ref={ref}
78
64
  className={classNames(styles, 'react-spectrum-DatePicker-cell', {
79
65
  'is-placeholder': segment.isPlaceholder,
80
66
  'is-read-only': !segment.isEditable
81
67
  })}
82
68
  style={{
69
+ ...segmentProps.style,
83
70
  minWidth: !isNumeric ? null : String(segment.maxValue).length + 'ch'
84
71
  }}
85
- data-testid={segment.type}
86
- {...segmentProps}>
72
+ data-testid={segment.type}>
87
73
  {segment.isPlaceholder ? '' : segment.text}
88
74
  </div>
89
75
  );
@@ -34,13 +34,16 @@ import {useHover} from '@react-aria/interactions';
34
34
  import {useLocale} from '@react-aria/i18n';
35
35
  import {useProviderProps} from '@react-spectrum/provider';
36
36
 
37
+ /**
38
+ * DateRangePickers combine two DateFields and a RangeCalendar popover to allow users
39
+ * to enter or select a date and time range.
40
+ */
37
41
  export function DateRangePicker<T extends DateValue>(props: SpectrumDateRangePickerProps<T>) {
38
42
  props = useProviderProps(props);
39
43
  let {
40
44
  isQuiet,
41
45
  isDisabled,
42
46
  isReadOnly,
43
- isRequired,
44
47
  autoFocus,
45
48
  placeholderValue,
46
49
  maxVisibleMonths = 1,
@@ -49,9 +52,12 @@ export function DateRangePicker<T extends DateValue>(props: SpectrumDateRangePic
49
52
  let {styleProps} = useStyleProps(otherProps);
50
53
  let {hoverProps, isHovered} = useHover({isDisabled});
51
54
  let targetRef = useRef<HTMLDivElement>();
52
- let state = useDateRangePickerState(props);
53
- let {labelProps, groupProps, buttonProps, dialogProps, startFieldProps, endFieldProps, descriptionProps, errorMessageProps} = useDateRangePicker(props, state, targetRef);
54
- let {value, isOpen, setOpen} = state;
55
+ let state = useDateRangePickerState({
56
+ ...props,
57
+ shouldCloseOnSelect: () => !state.hasTime
58
+ });
59
+ let {labelProps, groupProps, buttonProps, dialogProps, startFieldProps, endFieldProps, descriptionProps, errorMessageProps, calendarProps} = useDateRangePicker(props, state, targetRef);
60
+ let {isOpen, setOpen} = state;
55
61
  let {direction} = useLocale();
56
62
 
57
63
  let {isFocused, isFocusVisible, focusProps} = useFocusRing({
@@ -102,6 +108,7 @@ export function DateRangePicker<T extends DateValue>(props: SpectrumDateRangePic
102
108
  return (
103
109
  <Field
104
110
  {...props}
111
+ elementType="span"
105
112
  ref={targetRef}
106
113
  description={description}
107
114
  labelProps={labelProps}
@@ -117,37 +124,18 @@ export function DateRangePicker<T extends DateValue>(props: SpectrumDateRangePic
117
124
  isDisabled={isDisabled}
118
125
  isQuiet={isQuiet}
119
126
  validationState={state.validationState}
120
- autoFocus={autoFocus}
121
127
  className={classNames(styles, 'spectrum-InputGroup-field')}
122
128
  inputClassName={fieldClassName}>
123
129
  <DatePickerField
124
130
  {...startFieldProps}
131
+ data-testid="start-date"
125
132
  isQuiet={props.isQuiet}
126
- isDisabled={isDisabled}
127
- isReadOnly={isReadOnly}
128
- isRequired={isRequired}
129
- validationState={state.validationState}
130
- placeholderValue={placeholderValue}
131
- value={value?.start || null}
132
- defaultValue={null}
133
- onChange={start => state.setDateTime('start', start)}
134
- granularity={props.granularity}
135
- hourCycle={props.hourCycle}
136
133
  inputClassName={classNames(datepickerStyles, 'react-spectrum-Datepicker-startField')} />
137
134
  <DateRangeDash />
138
135
  <DatePickerField
139
136
  {...endFieldProps}
137
+ data-testid="end-date"
140
138
  isQuiet={props.isQuiet}
141
- isDisabled={isDisabled}
142
- isReadOnly={isReadOnly}
143
- isRequired={isRequired}
144
- validationState={state.validationState}
145
- placeholderValue={placeholderValue}
146
- value={value?.end || null}
147
- defaultValue={null}
148
- onChange={end => state.setDateTime('end', end)}
149
- granularity={props.granularity}
150
- hourCycle={props.hourCycle}
151
139
  inputClassName={classNames(
152
140
  styles,
153
141
  'spectrum-Datepicker-endField',
@@ -176,12 +164,8 @@ export function DateRangePicker<T extends DateValue>(props: SpectrumDateRangePic
176
164
  <Dialog UNSAFE_className={classNames(datepickerStyles, 'react-spectrum-Datepicker-dialog')} {...dialogProps}>
177
165
  <Content UNSAFE_className={classNames(datepickerStyles, 'react-spectrum-Datepicker-dialogContent')}>
178
166
  <RangeCalendar
179
- autoFocus
180
- value={state.dateRange}
181
- onChange={state.setDateRange}
182
- visibleMonths={visibleMonths}
183
- minValue={props.minValue}
184
- maxValue={props.maxValue} />
167
+ {...calendarProps}
168
+ visibleMonths={visibleMonths} />
185
169
  {showTimeField &&
186
170
  <Flex gap="size-100" marginTop="size-100" UNSAFE_className={classNames(datepickerStyles, 'react-spectrum-Datepicker-timeFields')}>
187
171
  <TimeField
package/src/Input.tsx CHANGED
@@ -14,10 +14,10 @@ import Alert from '@spectrum-icons/ui/AlertMedium';
14
14
  import Checkmark from '@spectrum-icons/ui/CheckmarkMedium';
15
15
  import {classNames, useValueEffect} from '@react-spectrum/utils';
16
16
  import datepickerStyles from './index.css';
17
- import {FocusRing, FocusScope} from '@react-aria/focus';
18
- import {mergeProps, useEvent, useLayoutEffect, useResizeObserver} from '@react-aria/utils';
17
+ import {FocusRing} from '@react-aria/focus';
19
18
  import React, {useCallback, useRef} from 'react';
20
19
  import textfieldStyles from '@adobe/spectrum-css-temp/components/textfield/vars.css';
20
+ import {useEvent, useLayoutEffect, useResizeObserver} from '@react-aria/utils';
21
21
 
22
22
  export function Input(props) {
23
23
  let defaultRef = useRef();
@@ -30,7 +30,6 @@ export function Input(props) {
30
30
  fieldProps,
31
31
  inputRef = defaultRef,
32
32
  className,
33
- autoFocus,
34
33
  style
35
34
  } = props;
36
35
 
@@ -113,13 +112,11 @@ export function Input(props) {
113
112
  }
114
113
 
115
114
  return (
116
- <div {...mergeProps(fieldProps)} className={textfieldClass} style={style}>
115
+ <div role="presentation" {...fieldProps} className={textfieldClass} style={style}>
117
116
  <FocusRing focusClass={classNames(textfieldStyles, 'is-focused')} focusRingClass={classNames(textfieldStyles, 'focus-ring')} isTextInput within>
118
117
  <div role="presentation" className={inputClass}>
119
118
  <div role="presentation" className={classNames(datepickerStyles, 'react-spectrum-Datepicker-inputContents')} ref={inputRef}>
120
- <FocusScope autoFocus={autoFocus}>
121
- {children}
122
- </FocusScope>
119
+ {children}
123
120
  </div>
124
121
  </div>
125
122
  </FocusRing>
package/src/TimeField.tsx CHANGED
@@ -11,18 +11,21 @@
11
11
  */
12
12
 
13
13
  import {classNames} from '@react-spectrum/utils';
14
- import {createCalendar} from '@internationalized/date';
15
14
  import {DatePickerSegment} from './DatePickerSegment';
16
15
  import datepickerStyles from './index.css';
17
16
  import {Field} from '@react-spectrum/label';
18
17
  import {Input} from './Input';
19
18
  import React, {useRef} from 'react';
20
19
  import {SpectrumTimePickerProps, TimeValue} from '@react-types/datepicker';
21
- import {useDateField} from '@react-aria/datepicker';
22
20
  import {useLocale} from '@react-aria/i18n';
23
21
  import {useProviderProps} from '@react-spectrum/provider';
22
+ import {useTimeField} from '@react-aria/datepicker';
24
23
  import {useTimeFieldState} from '@react-stately/datepicker';
25
24
 
25
+ /**
26
+ * TimeFields allow users to enter and edit time values using a keyboard.
27
+ * Each part of the time is displayed in an individually editable segment.
28
+ */
26
29
  export function TimeField<T extends TimeValue>(props: SpectrumTimePickerProps<T>) {
27
30
  props = useProviderProps(props);
28
31
  let {
@@ -37,15 +40,15 @@ export function TimeField<T extends TimeValue>(props: SpectrumTimePickerProps<T>
37
40
  let {locale} = useLocale();
38
41
  let state = useTimeFieldState({
39
42
  ...props,
40
- locale,
41
- createCalendar
43
+ locale
42
44
  });
43
45
 
44
- let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useDateField(props, state, ref);
46
+ let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useTimeField(props, state, ref);
45
47
 
46
48
  return (
47
49
  <Field
48
50
  {...props}
51
+ elementType="span"
49
52
  labelProps={labelProps}
50
53
  descriptionProps={descriptionProps}
51
54
  errorMessageProps={errorMessageProps}
package/src/index.css CHANGED
@@ -10,9 +10,10 @@
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- .react-spectrum-Datepicker-fieldWrapper.react-spectrum-Datepicker-fieldWrapper {
13
+ .react-spectrum-Datepicker-fieldWrapper.react-spectrum-Datepicker-fieldWrapper.react-spectrum-Datepicker-fieldWrapper {
14
14
  width: auto;
15
15
  min-width: var(--spectrum-global-dimension-size-2000);
16
+ max-width: 100%;
16
17
  }
17
18
 
18
19
  .react-spectrum-Datepicker-startField {
@@ -45,7 +46,7 @@
45
46
  min-width: var(--spectrum-global-dimension-size-1250);
46
47
  }
47
48
 
48
- .react-spectrum-TimeField-fieldWrapper.react-spectrum-TimeField-fieldWrapper {
49
+ .react-spectrum-TimeField-fieldWrapper.react-spectrum-TimeField-fieldWrapper.react-spectrum-TimeField-fieldWrapper {
49
50
  width: auto;
50
51
  min-width: var(--spectrum-global-dimension-size-1250);
51
52
  }
@@ -53,6 +54,7 @@
53
54
  .react-spectrum-Datepicker-input.react-spectrum-Datepicker-input {
54
55
  /* always reserve space for the validation icon */
55
56
  padding-inline-end: calc(var(--spectrum-textfield-padding-x) + var(--spectrum-icon-alert-medium-width) + var(--spectrum-textfield-icon-margin-left));
57
+ cursor: text;
56
58
  }
57
59
 
58
60
  .react-spectrum-Datepicker-inputContents {
@@ -105,15 +107,8 @@
105
107
  }
106
108
  }
107
109
 
108
- .react-spectrum-DatePicker-cell:focus {
109
- background-color: var(--spectrum-global-color-static-blue);
110
- color: white;
111
- caret-color: transparent;
112
- outline: none;
113
- }
114
-
115
110
  .react-spectrum-DatePicker-cell.is-placeholder {
116
- color: var(--spectrum-textfield-placeholder-text-color, var(--spectrum-global-color-gray-600));
111
+ color: var(--react-spectrum-datepicker-placeholder-color);
117
112
 
118
113
  &:before {
119
114
  content: attr(aria-placeholder);
@@ -124,18 +119,18 @@
124
119
  color: var(--spectrum-textfield-placeholder-text-color, var(--spectrum-global-color-gray-600));
125
120
  }
126
121
 
127
- .react-spectrum-DatePicker-cell.is-placeholder:focus {
128
- color: var(--spectrum-global-color-static-gray-400);
129
- }
130
-
131
122
  .react-spectrum-DatePicker-cell.is-read-only {
132
123
  color: var(--spectrum-global-color-gray-700);
133
- &:focus {
134
- color: var(--spectrum-global-color-static-gray-300);
135
- }
136
124
  }
137
125
 
138
- .react-spectrum-Datepicker-dialog {
126
+ .react-spectrum-DatePicker-cell:focus {
127
+ background-color: var(--spectrum-global-color-static-blue);
128
+ color: white;
129
+ caret-color: transparent;
130
+ outline: none;
131
+ }
132
+
133
+ .react-spectrum-Datepicker-dialog.react-spectrum-Datepicker-dialog {
139
134
  width: auto;
140
135
  }
141
136
 
package/dist/main.css.map DELETED
@@ -1 +0,0 @@
1
- {"mappings":"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","sources":["./packages/@react-spectrum/datepicker/src/index.css","./node_modules/@adobe/spectrum-css-temp/components/textfield/index.css","./node_modules/@adobe/spectrum-css-temp/components/textfield/skin.css","./node_modules/@adobe/spectrum-css-temp/components/inputgroup/index.css","./node_modules/@adobe/spectrum-css-temp/components/inputgroup/skin.css"],"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\n.react-spectrum-Datepicker-fieldWrapper.react-spectrum-Datepicker-fieldWrapper {\n width: auto;\n min-width: var(--spectrum-global-dimension-size-2000);\n }\n\n.react-spectrum-Datepicker-startField {\n width: auto;\n padding-inline-end: var(--spectrum-global-dimension-size-100);\n}\n\n.react-spectrum-Datepicker-endField {\n width: auto;\n flex: 1;\n padding-inline-start: var(--spectrum-global-dimension-size-100);\n}\n\n.react-spectrum-Datepicker-field ~ .react-spectrum-Datepicker-endField > .react-spectrum-Datepicker-input {\n border-inline-start-width: 0;\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n}\n\n.react-spectrum-Datepicker-field.react-spectrum-Datepicker-field {\n width: auto;\n}\n\n/* specificity war with .spectrum-Field--positionSide etc. */\n.react-spectrum-DateField.react-spectrum-DateField.react-spectrum-DateField.react-spectrum-DateField {\n min-width: var(--spectrum-global-dimension-size-2000)\n}\n\n.react-spectrum-TimeField.react-spectrum-TimeField.react-spectrum-TimeField.react-spectrum-TimeField {\n min-width: var(--spectrum-global-dimension-size-1250);\n}\n\n.react-spectrum-TimeField-fieldWrapper.react-spectrum-TimeField-fieldWrapper {\n width: auto;\n min-width: var(--spectrum-global-dimension-size-1250);\n}\n\n.react-spectrum-Datepicker-input.react-spectrum-Datepicker-input {\n /* always reserve space for the validation icon */\n padding-inline-end: calc(var(--spectrum-textfield-padding-x) + var(--spectrum-icon-alert-medium-width) + var(--spectrum-textfield-icon-margin-left));\n}\n\n.react-spectrum-Datepicker-inputContents {\n display: flex;\n align-items: center;\n /* width: auto; */\n overflow-x: auto;\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* Internet Explorer 10+ */\n\n &::-webkit-scrollbar { /* WebKit */\n width: 0;\n height: 0;\n display: none;\n }\n}\n\n.react-spectrum-Datepicker-rangeDash {\n &:before {\n content: '–';\n }\n}\n\n.react-spectrum-Datepicker-segments {\n display: flex;\n align-items: center;\n}\n\n.react-spectrum-Datepicker-literal {\n white-space: pre;\n user-select: none;\n color: var(--spectrum-textfield-text-color);\n}\n\n.react-spectrum-DatePicker-cell {\n border: none;\n background: none;\n padding: 0 2px;\n border-radius: 2px;\n font-variant-numeric: tabular-nums;\n text-align: end;\n box-sizing: content-box;\n white-space: nowrap;\n color: var(--spectrum-textfield-text-color);\n\n &::selection {\n /* hide the selection because there is no way to fully prevent it in Firefox */\n /* https://bugzilla.mozilla.org/show_bug.cgi?id=1742153 */\n background: transparent;\n }\n}\n\n.react-spectrum-DatePicker-cell:focus {\n background-color: var(--spectrum-global-color-static-blue);\n color: white;\n caret-color: transparent;\n outline: none;\n}\n\n.react-spectrum-DatePicker-cell.is-placeholder {\n color: var(--spectrum-textfield-placeholder-text-color, var(--spectrum-global-color-gray-600));\n\n &:before {\n content: attr(aria-placeholder);\n }\n}\n\n.react-spectrum-DatePicker-cell.is-placeholder ~ .react-spectrum-Datepicker-literal {\n color: var(--spectrum-textfield-placeholder-text-color, var(--spectrum-global-color-gray-600));\n}\n\n.react-spectrum-DatePicker-cell.is-placeholder:focus {\n color: var(--spectrum-global-color-static-gray-400);\n}\n\n.react-spectrum-DatePicker-cell.is-read-only {\n color: var(--spectrum-global-color-gray-700);\n &:focus {\n color: var(--spectrum-global-color-static-gray-300);\n }\n}\n\n.react-spectrum-Datepicker-dialog {\n width: auto;\n}\n\n/* when displayed in a tray, reduce the padding of the dialog */\n@media (max-width: 700px) {\n .react-spectrum-Datepicker-dialog {\n --spectrum-dialog-padding-x: 8px;\n\n .react-spectrum-Datepicker-dialogContent {\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n }\n}\n\n.react-spectrum-Datepicker-timeFields {\n width: 100%;\n min-width: calc(var(--spectrum-calendar-day-width) * 7);\n max-width: calc((var(--spectrum-calendar-day-width) * 7) + (var(--spectrum-calendar-day-padding) * 12));\n padding: 0 var(--spectrum-calendar-day-padding);\n box-sizing: border-box;\n}\n","/*\nCopyright 2019 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\n@import '../commons/index.css';\n\n:root {\n --spectrum-textfield-padding-top: 3px;\n --spectrum-textfield-padding-bottom: 5px;\n\n /* Todo fix in DNA */\n --spectrum-textfield-quiet-border-radius: 0;\n\n --spectrum-textfield-quiet-invalid-background-position: 100% 50%;\n\n --spectrum-textfield-multiline-height: auto;\n --spectrum-textfield-multiline-min-height: var(--spectrum-global-dimension-size-700);\n\n --spectrum-textfield-multiline-padding-x: var(--spectrum-textfield-padding-x);\n --spectrum-textfield-multiline-padding-top: var(--spectrum-textfield-padding-top);\n --spectrum-textfield-multiline-padding-bottom: var(--spectrum-textfield-padding-bottom);\n\n /* Todo: DNA uses incorrect font family \"Adobe Clean\" */;\n --spectrum-textfield-text-font-family-fixed: var(--spectrum-font-family-base);\n}\n\n.spectrum-Textfield {\n display: inline-flex;\n position: relative;\n min-width: var(--spectrum-textfield-min-width);\n width: var(--spectrum-component-single-line-width);\n\n &:not(.spectrum-Textfield--quiet).spectrum-Textfield--multiline .spectrum-Textfield-input:not(:disabled) {\n resize: vertical;\n }\n\n &.spectrum-Textfield--quiet.spectrum-Textfield--multiline .spectrum-Textfield-input {\n height: var(--spectrum-textfield-height);\n min-height: var(--spectrum-textfield-height);\n overflow-x: hidden;\n }\n}\n\n.spectrum-Textfield-input {\n /* box */\n box-sizing: border-box;\n border: var(--spectrum-textfield-border-size) solid;\n border-radius: var(--spectrum-textfield-border-radius);\n\n /* Apply padding by default to center text, giving consistency between input and textfield */\n padding: var(--spectrum-textfield-padding-top) var(--spectrum-textfield-padding-x) var(--spectrum-textfield-padding-bottom) calc(var(--spectrum-textfield-padding-x) - 1px);\n /* Use padding instead of text-indent because text-indent does not left align the text in Edge browser */\n text-indent: 0;\n\n inline-size: 100%;\n height: var(--spectrum-textfield-height);\n\n vertical-align: top; /* used to align them correctly in forms. */\n\n /* Remove the margin for input in Firefox and Safari. */\n margin: 0;\n\n /* Show the overflow for input in Edge. */\n overflow: visible;\n\n /* Change the input font styles in all browsers */\n font-family: var(--spectrum-textfield-text-font-family-fixed);\n font-size: var(--spectrum-textfield-text-size);\n line-height: var(--spectrum-textfield-text-line-height);\n text-overflow: ellipsis;\n\n transition: border-color var(--spectrum-global-animation-duration-100) ease-in-out,\n box-shadow var(--spectrum-global-animation-duration-100) ease-in-out;\n\n outline: none;\n\n -webkit-appearance: none;\n /*\n Removes the native spin buttons in Firefox; -moz-appearance: none results in spinners.\n This has to come after -webkit-appearance or it gets overridden (#214)\n Details: http://stackoverflow.com/questions/23372903/hide-spinner-in-input-number-firefox-29\n\n Sets the opacity to 1 as normalize.css sets an opacity to placeholders\n Details: https://github.com/csstools/normalize.css/blob/master/normalize.css#L297\n */\n -moz-appearance: textfield;\n\n &::placeholder,\n &.is-placeholder {\n font-weight: var(--spectrum-textfield-placeholder-text-font-weight);\n font-style: var(--spectrum-textfield-placeholder-text-font-style);\n font-synthesis: none;\n transition: color var(--spectrum-global-animation-duration-100) ease-in-out;\n opacity: 1;\n }\n\n /* added to work with Edge, note, it needs double ::\n * not single : which is what autoprefixer will add\n */\n &::-ms-input-placeholder {\n font-weight: var(--spectrum-textfield-placeholder-text-font-weight);\n font-style: var(--spectrum-textfield-placeholder-text-font-style);\n transition: color var(--spectrum-global-animation-duration-100) ease-in-out;\n opacity: 1;\n }\n\n /* placeholder gets clipped for synthetic italics, we rely on font-synthesis once\n * chrome supports it https://bugs.chromium.org/p/chromium/issues/detail?id=509989\n */\n &:lang(ja), &:lang(zh), &:lang(ko), &:lang(ar), &:lang(he) {\n &::placeholder,\n &.is-placeholder {\n font-style: normal;\n }\n &::-ms-input-placeholder { /* added to work with Edge, same as above */\n font-style: normal;\n }\n }\n\n &:hover {\n &::placeholder {\n font-weight: var(--spectrum-textfield-placeholder-text-font-weight);\n }\n }\n\n &:disabled {\n /* Disable the resize functionality when disabled */\n resize: none;\n\n /* The opacity must be set to 1 */\n opacity: 1;\n &::placeholder,\n &.is-placeholder {\n font-weight: var(--spectrum-textfield-placeholder-text-font-weight);\n }\n }\n\n /* Remove the native clear button in IE */\n /* http://stackoverflow.com/questions/14007655/remove-ie10s-clear-field-x-button-on-certain-inputs */\n &::-ms-clear {\n width: 0;\n height: 0;\n }\n\n /* removes the native spin buttons */\n /* http://stackoverflow.com/questions/23372903/hide-spinner-in-input-number-firefox-29 */\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n /* removes the red border that appears in Firefox */\n &:-moz-ui-invalid {\n box-shadow: none;\n }\n\n .spectrum-Textfield--multiline & {\n height: var(--spectrum-textfield-multiline-height);\n min-height: var(--spectrum-textfield-multiline-min-height);\n padding: var(--spectrum-textfield-multiline-padding-top) var(--spectrum-textfield-multiline-padding-x) var(--spectrum-textfield-multiline-padding-bottom) calc(var(--spectrum-textfield-multiline-padding-x) - 1px);\n\n /* Remove the default vertical scrollbar for textarea in IE. */\n overflow: auto;\n }\n\n .spectrum-Textfield--quiet & {\n border-radius: var(--spectrum-textfield-quiet-border-radius);\n border-width: 0 0 var(--spectrum-textfield-quiet-border-size) 0;\n\n /* removes the side padding to align the text properly */\n padding-inline-start: var(--spectrum-textfield-quiet-padding-x);\n padding-inline-end: var(--spectrum-textfield-quiet-padding-x);\n\n /* Treat all quiet inputs and textareas the same */\n resize: none;\n overflow-y: hidden;\n }\n\n .spectrum-Textfield--valid & {\n padding-inline-end: calc(var(--spectrum-textfield-padding-x) + var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-textfield-icon-margin-left));\n }\n\n .spectrum-Textfield--invalid & {\n padding-inline-end: calc(var(--spectrum-textfield-padding-x) + var(--spectrum-icon-alert-medium-width) + var(--spectrum-textfield-icon-margin-left));\n }\n\n .spectrum-Textfield--loadable & {\n padding-inline-end: calc(var(--spectrum-textfield-padding-x) + var(--spectrum-icon-alert-medium-width) + var(--spectrum-textfield-icon-margin-left));\n }\n}\n\n.spectrum-Textfield-validationIcon {\n /* TODO: Confirm if this is ok for the validation icon sizing\n Note that the sizes are a bit different when compared with old background icons(more noticable for checkmark)\n */\n position: absolute;\n padding-inline-end: calc(var(--spectrum-textfield-padding-x, var(--spectrum-global-dimension-size-150)) / 2);\n pointer-events: all;\n transition: color var(--spectrum-global-animation-duration-100) ease-in-out;\n\n .spectrum-Textfield--quiet & {\n padding-inline-end: 0;\n }\n}\n\n.spectrum-Textfield--invalid .spectrum-Textfield-validationIcon {\n width: var(--spectrum-icon-alert-medium-width);\n height: var(--spectrum-icon-alert-medium-height);\n top: calc(calc(var(--spectrum-textfield-icon-frame) / 2) - calc(var(--spectrum-icon-alert-medium-height) / 2));\n inset-inline-end: calc(calc(var(--spectrum-textfield-icon-frame) / 2) - calc(var(--spectrum-icon-alert-medium-width) / 2));\n}\n.spectrum-Textfield--valid .spectrum-Textfield-validationIcon {\n width: var(--spectrum-icon-checkmark-medium-width);\n height: var(--spectrum-icon-checkmark-medium-height);\n top: calc(calc(var(--spectrum-textfield-icon-frame) / 2) - calc(var(--spectrum-icon-checkmark-medium-height) / 2));\n inset-inline-end: var(--spectrum-global-dimension-size-150);\n}\n\n/* styles the left icon for textfield, assumes usage of workflow icon sizing (18px by 18px) */\n.spectrum-Textfield-icon {\n display: block;\n position: absolute;\n height: var(--spectrum-icon-info-medium-height);\n width: var(--spectrum-icon-info-medium-width);\n /* This has a named variable in a future update of spectrum-css. */\n inset-inline-start: var(--spectrum-global-dimension-size-150);\n top: var(--spectrum-global-dimension-size-85);\n transition: fill var(--spectrum-global-animation-duration-100) ease-in-out;\n}\n\n/* styles the textfield properly if the left icon is provided */\n.spectrum-Textfield-inputIcon {\n /* Use padding instead of text-indent so long strings don't overlap the icon */\n /* These values have real names in a spectrum-css update, when we update, use those. */\n padding-inline-start: calc(\n var(--spectrum-global-dimension-size-150) +\n var(--spectrum-global-dimension-size-225) +\n var(--spectrum-global-dimension-size-65)\n );\n\n .spectrum-Textfield--quiet & {\n padding-inline-start: calc(var(--spectrum-global-dimension-size-100) + var(--spectrum-icon-info-medium-width));\n\n /* Since quiet button has no left padding, push the icon all the way to the left */\n & ~ .spectrum-Textfield-icon {\n inset-inline-start: 0;\n }\n }\n\n &.spectrum-Textfield--multiline {\n height: var(--spectrum-textfield-height);\n min-height: var(--spectrum-textfield-height);\n }\n}\n\n\n/* same positioning as invalid icon */\n.spectrum-Textfield--loadable .spectrum-Textfield-circleLoader {\n position: absolute;\n top: calc(calc(var(--spectrum-textfield-icon-frame) / 2) - calc(var(--spectrum-loader-circle-small-width) / 2));\n /* can't use padding right since it breaks the circle loader so add here */\n inset-inline-end: calc(calc(calc(var(--spectrum-textfield-icon-frame) / 2) - calc(var(--spectrum-icon-alert-medium-width) / 2)) + calc(var(--spectrum-textfield-padding-x, var(--spectrum-global-dimension-size-150)) / 2));\n\n .spectrum-Textfield--quiet& {\n padding-inline-end: 0;\n }\n}\n","/*\nCopyright 2019 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\n.spectrum-Textfield-input {\n background-color: var(--spectrum-textfield-background-color);\n border-color: var(--spectrum-textfield-border-color);\n color: var(--spectrum-textfield-text-color);\n\n &::placeholder,\n &.is-placeholder {\n color: var(--spectrum-textfield-placeholder-text-color);\n }\n\n &:hover {\n border-color: var(--spectrum-textfield-border-color-hover);\n box-shadow: none;\n\n &::placeholder,\n &.is-placeholder {\n color: var(--spectrum-textfield-placeholder-text-color-hover);\n }\n\n & ~ .spectrum-Textfield-icon {\n fill: var(--spectrum-textfield-icon-color-hover);\n }\n }\n\n &:active {\n background-color: var(--spectrum-textfield-background-color-down);\n border-color: var(--spectrum-textfield-border-color-down);\n color: var(--spectrum-textfield-text-color-down);\n\n &::placeholder,\n &.is-placeholder {\n color: var(--spectrum-textfield-placeholder-text-color-down);\n }\n\n & ~ .spectrum-Textfield-icon {\n fill: var(--spectrum-textfield-icon-color-down);\n }\n }\n\n &:focus,\n &.is-focused {\n border-color: var(--spectrum-textfield-border-color-down);\n }\n\n &:focus-ring {\n &:not(:active) {\n border-color: var(--spectrum-textfield-border-color-key-focus);\n box-shadow: 0 0 0 1px var(--spectrum-textfield-border-color-key-focus);\n }\n }\n\n &[disabled],\n &.is-disabled {\n background-color: var(--spectrum-textfield-background-color-disabled);\n border-color: var(--spectrum-textfield-border-color-disabled);\n color: var(--spectrum-textfield-text-color-disabled);\n\n /* For safari mobile browser */\n -webkit-text-fill-color: var(--spectrum-textfield-text-color-disabled);\n\n &::placeholder,\n &.is-placeholder {\n color: var(--spectrum-textfield-placeholder-text-color-disabled);\n }\n\n & ~ .spectrum-Textfield-icon {\n fill: var(--spectrum-textfield-icon-color-disabled);\n }\n }\n\n &.spectrum-Textfield--invalid {\n border-color: var(--spectrum-textfield-border-color-error);\n\n &:hover {\n border-color: var(--spectrum-textfield-border-color-error-hover);\n }\n\n &:active {\n border-color: var(--spectrum-textfield-border-color-error-down);\n }\n\n &:focus-ring { /* might break things due to pre-defined focus-ring */\n &:not(:active) {\n border-color: var(--spectrum-textfield-border-color-error);\n box-shadow: 0 0 0 1px var(--spectrum-textfield-border-color-error);\n }\n }\n }\n\n .spectrum-Textfield--quiet & {\n background-color: var(--spectrum-textfield-quiet-background-color);\n border-color: var(--spectrum-textfield-quiet-border-color);\n\n &:hover {\n border-color: var(--spectrum-textfield-quiet-border-color-hover);\n }\n\n &:active {\n border-color: var(--spectrum-textfield-quiet-border-color-down);\n }\n\n &:focus,\n &.is-focused {\n border-color: var(--spectrum-textfield-quiet-border-color-key-focus);\n }\n\n &:focus-ring {\n &:not(:active) {\n border-color: var(--spectrum-textfield-border-color-key-focus);\n box-shadow: 0 1px 0 var(--spectrum-textfield-border-color-key-focus);\n }\n }\n\n &:disabled,\n &.is-disabled {\n background-color: var(--spectrum-textfield-quiet-background-color-disabled);\n border-color: var(--spectrum-textfield-quiet-border-color-disabled);\n }\n }\n\n .spectrum-Textfield.spectrum-Textfield--invalid & {\n border-color: var(--spectrum-textfield-border-color-error);\n\n &:focus-ring { /* might break things due to pre-defined focus-ring */\n &:not(:active) {\n border-color: var(--spectrum-textfield-border-color-error);\n box-shadow: 0 0 0 1px var(--spectrum-textfield-border-color-error);\n }\n }\n }\n\n .spectrum-Textfield--quiet.spectrum-Textfield--invalid & {\n &:focus-ring { /* might break things due to pre-defined focus-ring */\n &:not(:active) {\n box-shadow: 0 1px 0 var(--spectrum-textfield-border-color-error);\n }\n }\n }\n\n}\n\n.spectrum-Textfield-icon {\n fill: var(--spectrum-textfield-icon-color);\n}\n\n.spectrum-Textfield-validationIcon {\n .spectrum-Textfield--valid & {\n fill: var(--spectrum-alert-success-icon-color);\n }\n\n .spectrum-Textfield--invalid & {\n fill: var(--spectrum-alert-error-icon-color);\n }\n}\n","/*\nCopyright 2019 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\n@import '../commons/index.css';\n\n:root {\n /* Todo: move to DNA */\n --spectrum-combobox-quiet-fieldbutton-border-radius: 0;\n --spectrum-combobox-quiet-fieldbutton-padding-right: 0;\n --spectrum-combobox-quiet-fieldbutton-padding-left: var(--spectrum-global-dimension-size-130);\n --spectrum-combobox-validation-icon-right: var(--spectrum-global-dimension-size-100);\n --spectrum-datepicker-input-width: calc(var(--spectrum-global-dimension-size-1600) - 2 * var(--spectrum-padding));\n --spectrum-datepicker-datetime-input-width: calc(var(--spectrum-datepicker-input-width) + var(--spectrum-global-dimension-size-700) - var(--spectrum-global-dimension-static-font-size-100) / 2);\n --spectrum-datepicker-range-dash-margin-left: calc(-0.5 * var(--spectrum-global-dimension-static-font-size-100));\n --spectrum-datepicker-range-dash-padding-top: 0;\n --spectrum-datepicker-range-dash-line-height: calc(var(--spectrum-textfield-height) - var(--spectrum-global-dimension-size-100));\n\n --spectrum-combobox-button-width: var(--spectrum-global-dimension-size-400);\n}\n\n.spectrum-InputGroup {\n position: relative;\n display: inline-flex;\n flex-direction: row;\n flex-wrap: nowrap;\n min-width: calc(2.5 * var(--spectrum-dropdown-height));\n border-radius: var(--spectrum-border-radius);\n\n .spectrum-FieldButton {\n padding: 0;\n inline-size: var(--spectrum-combobox-button-width);\n border-start-start-radius: var(--spectrum-combobox-fieldbutton-border-top-left-radius);\n border-end-start-radius: var(--spectrum-combobox-fieldbutton-border-bottom-left-radius);\n border-width: 1px;\n flex-shrink: 0;\n }\n\n /* Quiet or invalid inputgroup field button should always have a border width. */\n &.is-disabled:not(.spectrum-InputGroup--invalid):not(.spectrum-InputGroup--quiet) {\n .spectrum-FieldButton {\n border-width: 0;\n }\n }\n\n .spectrum-InputGroup-field {\n .spectrum-InputGroup-input-validationIcon {\n padding-inline-end: 0;\n inset-inline-end: var(--spectrum-combobox-validation-icon-right);\n }\n\n .spectrum-InputGroup-input-circleLoader {\n padding-inline-end: 0;\n inset-inline-end: var(--spectrum-combobox-validation-icon-right);\n }\n }\n}\n\n.spectrum-InputGroup-field {\n flex: 1 1 auto;\n}\n\n.spectrum-InputGroup-input {\n border-start-end-radius: var(--spectrum-combobox-textfield-border-top-right-radius);\n border-end-end-radius: var(--spectrum-combobox-textfield-border-bottom-right-radius);\n border-inline-end-style: none;\n}\n\n.spectrum-InputGroup--quiet {\n border-radius: var(--spectrum-combobox-quiet-fieldbutton-border-radius);\n min-width: calc(2 * var(--spectrum-dropdown-height));\n\n .spectrum-FieldButton {\n inline-size: auto;\n position: relative;\n\n padding-inline-start: var(--spectrum-combobox-quiet-fieldbutton-padding-left);\n padding-inline-end: var(--spectrum-combobox-quiet-fieldbutton-padding-right);\n border-width: 0;\n border-bottom: var(--spectrum-textfield-quiet-affixed-border-size) solid;\n border-radius: var(--spectrum-combobox-quiet-fieldbutton-border-radius);\n\n /* More hitarea */\n &:after {\n content: '';\n position: absolute;\n block-size: 100%;\n inline-size: 10px;\n inset-inline-end: -10px;\n }\n }\n\n .spectrum-InputGroup-icon {\n inset-inline-end: 0;\n }\n\n &.is-disabled {\n .spectrum-FieldButton {\n border-bottom-width: 1px;\n }\n }\n\n .spectrum-InputGroup-field {\n .spectrum-InputGroup-input-validationIcon {\n padding-inline-end: 0;\n inset-inline-end: 0;\n }\n\n .spectrum-InputGroup-input-circleLoader {\n padding-inline-end: 0;\n inset-inline-end: var(--spectrum-global-dimension-size-10);\n }\n }\n}\n\n.spectrum-InputGroup-popover--quiet {\n /* Define this var so it can be read from JS */\n --spectrum-dropdown-quiet-offset: calc(var(--spectrum-dropdown-quiet-popover-offset-x) + var(--spectrum-popover-border-size));\n margin-inline-end: calc(var(--spectrum-dropdown-quiet-offset) * -1);\n}\n\n.spectrum-Datepicker--range {\n border-radius: var(--spectrum-border-radius);\n /* Input Group */\n &.spectrum-InputGroup--quiet {\n border-radius: var(--spectrum-combobox-quiet-fieldbutton-border-radius);\n .spectrum-FieldButton {\n border-radius: var(--spectrum-combobox-quiet-fieldbutton-border-radius);\n }\n }\n /* Datetime Range */\n &.spectrum-Datepicker--datetimeRange {\n /* Inputs */\n .spectrum-InputGroup-field {\n width: var(--spectrum-datepicker-datetime-input-width);\n min-width: var(--spectrum-datepicker-datetime-input-width);\n }\n }\n /* Inputs */\n .spectrum-InputGroup-field {\n width: var(--spectrum-datepicker-input-width);\n min-width: var(--spectrum-datepicker-input-width);\n flex: initial;\n }\n .spectrum-Datepicker-startField {\n .spectrum-InputGroup-field {\n border-inline-end: 0;\n padding-inline-end: var(--spectrum-padding);\n }\n\n svg {\n display: none;\n }\n }\n .spectrum-Datepicker-endField {\n .spectrum-InputGroup-input {\n flex: 1;\n border-inline-start: 0;\n border-radius: 0;\n padding-inline-start: var(--spectrum-padding);\n }\n }\n /* Em dash */\n .spectrum-Datepicker--rangeDash {\n line-height: var(--spectrum-datepicker-range-dash-line-height);\n padding-top: var(--spectrum-datepicker-range-dash-padding-top);\n flex: initial;\n width: 0;\n z-index: 1;\n &:before {\n content: '–';\n display: inline-block;\n margin: 0 var(--spectrum-datepicker-range-dash-margin-left);\n overflow: hidden;\n text-align: center;\n vertical-align: middle;\n width: var(--spectrum-global-dimension-static-font-size-100);\n }\n }\n /* Focus ring */\n &.is-focused {\n .spectrum-Datepicker-focusRing {\n position: absolute;\n border-radius: var(--spectrum-border-radius);\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n pointer-events: none;\n }\n }\n &.spectrum-InputGroup--quiet {\n &.is-focused {\n .spectrum-Datepicker-focusRing {\n border-radius: var(--spectrum-combobox-quiet-fieldbutton-border-radius);\n top: auto;\n }\n }\n .spectrum-Datepicker--rangeDash {\n &:before {\n margin-inline-start: var(--spectrum-datepicker-range-dash-margin-left);\n }\n }\n }\n}\n","/*\nCopyright 2019 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\n.spectrum-InputGroup {\n &.is-focused {\n &:not(.spectrum-InputGroup--invalid):not(.is-disabled) {\n .spectrum-InputGroup-input {\n border-color: var(--spectrum-textfield-border-color-key-focus);\n }\n\n .spectrum-FieldButton {\n border-color: var(--spectrum-textfield-border-color-key-focus);\n }\n }\n }\n\n &:hover {\n &:not(.spectrum-InputGroup--invalid):not(.is-focused):not(.is-disabled) {\n .spectrum-InputGroup-input {\n border-color: var(--spectrum-textfield-border-color-hover);\n }\n\n .spectrum-FieldButton {\n border-color: var(--spectrum-textfield-border-color-hover);\n }\n }\n }\n}\n\n.spectrum-InputGroup.is-focused {\n .spectrum-FieldButton,\n .spectrum-InputGroup-input {\n border-color: var(--spectrum-dropdown-border-color-key-focus);\n }\n\n &.spectrum-InputGroup--invalid {\n .spectrum-FieldButton,\n .spectrum-InputGroup-input {\n border-color: var(--spectrum-dropdown-border-color-error);\n }\n }\n}\n\n/* Only add the 2px ring for keyboard focus */\n.spectrum-InputGroup:focus-ring:not(.spectrum-InputGroup--quiet) {\n .spectrum-FieldButton {\n z-index: 1;\n }\n\n .spectrum-FieldButton,\n .spectrum-InputGroup-input {\n box-shadow: 0 0 0 1px var(--spectrum-dropdown-border-color-key-focus);\n }\n\n &.spectrum-InputGroup--invalid {\n .spectrum-FieldButton,\n .spectrum-InputGroup-input {\n box-shadow: 0 0 0 1px var(--spectrum-dropdown-border-color-error);\n }\n }\n}\n\n.spectrum-InputGroup--quiet {\n /*\n specifically for readonly inputgroups that aren't disabled since the button will have the disabled class\n but we don't want the border color to be the disabled quiet one\n */\n &:not(.is-disabled) {\n .spectrum-FieldButton {\n &:disabled,\n &:disabled:hover {\n border-color: var(--spectrum-textfield-quiet-border-color);\n }\n }\n }\n\n .spectrum-FieldButton {\n &,\n &:hover,\n &:focus,\n &:active,\n &.is-selected,\n &.spectrum-FieldButton--invalid {\n border-color: var(--spectrum-textfield-quiet-border-color);\n }\n\n &:disabled,\n &:disabled:hover {\n border-color: var(--spectrum-textfield-quiet-border-color-disabled);\n }\n }\n\n &:hover:not(.spectrum-InputGroup--invalid):not(.is-focused):not(.is-disabled) {\n .spectrum-FieldButton {\n border-color: var(--spectrum-textfield-quiet-border-color-hover);\n }\n }\n\n &.spectrum-InputGroup {\n &.spectrum-InputGroup--invalid {\n .spectrum-FieldButton,\n .spectrum-InputGroup-input {\n border-color: var(--spectrum-textfield-border-color-error);\n }\n }\n\n &.is-focused {\n .spectrum-FieldButton {\n border-color: var(--spectrum-textfield-quiet-border-color-key-focus);\n }\n\n &.spectrum-InputGroup--invalid {\n .spectrum-FieldButton {\n border-color: var(--spectrum-textfield-border-color-error);\n }\n }\n }\n\n &:focus-ring {\n .spectrum-InputGroup-input {\n box-shadow: 0 1px 0 var(--spectrum-textfield-quiet-border-color-key-focus);\n }\n\n .spectrum-FieldButton {\n box-shadow: 0 1px 0 var(--spectrum-textfield-quiet-border-color-key-focus);\n border-color: var(--spectrum-textfield-quiet-border-color-key-focus);\n }\n\n &.spectrum-InputGroup--invalid {\n .spectrum-InputGroup-input {\n box-shadow: 0 1px 0 var(--spectrum-textfield-border-color-error);\n }\n\n .spectrum-FieldButton {\n box-shadow: 0 1px 0 var(--spectrum-textfield-border-color-error);\n }\n }\n }\n }\n}\n\n.spectrum-Datepicker--range {\n &:focus-ring {\n .spectrum-InputGroup-input {\n box-shadow: none !important;\n }\n }\n\n &.is-disabled {\n .spectrum-Datepicker--rangeDash {\n color: var(--spectrum-textfield-text-color-disabled);\n }\n }\n\n /* Focus ring: When one of the inputs or the button has keyboard focus, render the focus ring border around the entire input group by styling an adjacent descendant element. */\n &:focus-ring {\n box-shadow: 0 0 0 1px var(--spectrum-dropdown-border-color-key-focus);\n\n &.spectrum-InputGroup--invalid {\n box-shadow: 0 0 0 1px var(--spectrum-dropdown-border-color-error);\n\n .spectrum-FieldButton {\n box-shadow: 0 0 0 1px var(--spectrum-dropdown-border-color-error);\n }\n }\n }\n\n &.spectrum-InputGroup--invalid {\n .spectrum-InputGroup-input {\n border-color: var(--spectrum-dropdown-border-color-error) !important;\n }\n\n /* Focus ring: When one of the inputs or the button has keyboard focus, render the focus ring border around the entire input group by styling an adjacent descendant element. */\n &:focus-ring {\n .spectrum-FieldButton {\n border-color: var(--spectrum-dropdown-border-color-error);\n box-shadow: 0 0 0 1px var(--spectrum-dropdown-border-color-error);\n }\n }\n .spectrum-FieldButton {\n border-color: var(--spectrum-dropdown-border-color-error);\n &.spectrum-FieldButton--invalid {\n &:focus-ring {\n border-color: var(--spectrum-dropdown-border-color-error);\n box-shadow: 0 0 0 1px var(--spectrum-dropdown-border-color-error);\n }\n }\n }\n }\n &.spectrum-InputGroup--quiet {\n &.is-focused {\n box-shadow: 0 1px 0 0 var(--spectrum-dropdown-border-color-key-focus);\n\n &.spectrum-InputGroup--invalid {\n .spectrum-FieldButton {\n box-shadow: none;\n border-color: var(--spectrum-dropdown-border-color-error);\n &.spectrum-FieldButton--invalid {\n &:focus-ring {\n box-shadow: 0 2px 0 0 var(--spectrum-dropdown-border-color-error);\n }\n }\n }\n &:focus-ring {\n box-shadow: 0 0 0 1px var(--spectrum-dropdown-border-color-error);\n }\n }\n }\n }\n}\n"],"names":[],"version":3,"file":"main.css.map"}