@react-spectrum/autocomplete 3.0.0-alpha.5 → 3.0.0-alpha.51

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 (226) hide show
  1. package/dist/MobileSearchAutocomplete.main.js +449 -0
  2. package/dist/MobileSearchAutocomplete.main.js.map +1 -0
  3. package/dist/MobileSearchAutocomplete.mjs +444 -0
  4. package/dist/MobileSearchAutocomplete.module.js +444 -0
  5. package/dist/MobileSearchAutocomplete.module.js.map +1 -0
  6. package/dist/SearchAutocomplete.main.js +305 -0
  7. package/dist/SearchAutocomplete.main.js.map +1 -0
  8. package/dist/SearchAutocomplete.mjs +300 -0
  9. package/dist/SearchAutocomplete.module.js +300 -0
  10. package/dist/SearchAutocomplete.module.js.map +1 -0
  11. package/dist/ar-AE.main.js +9 -0
  12. package/dist/ar-AE.main.js.map +1 -0
  13. package/dist/ar-AE.mjs +11 -0
  14. package/dist/ar-AE.module.js +11 -0
  15. package/dist/ar-AE.module.js.map +1 -0
  16. package/dist/autocomplete.02db68b2.css +55 -0
  17. package/dist/autocomplete.02db68b2.css.map +1 -0
  18. package/dist/autocomplete.102c5c14.css +223 -0
  19. package/dist/autocomplete.102c5c14.css.map +1 -0
  20. package/dist/autocomplete.30e64bfb.css +550 -0
  21. package/dist/autocomplete.30e64bfb.css.map +1 -0
  22. package/dist/autocomplete.c4adfff6.css +649 -0
  23. package/dist/autocomplete.c4adfff6.css.map +1 -0
  24. package/dist/bg-BG.main.js +9 -0
  25. package/dist/bg-BG.main.js.map +1 -0
  26. package/dist/bg-BG.mjs +11 -0
  27. package/dist/bg-BG.module.js +11 -0
  28. package/dist/bg-BG.module.js.map +1 -0
  29. package/dist/cs-CZ.main.js +9 -0
  30. package/dist/cs-CZ.main.js.map +1 -0
  31. package/dist/cs-CZ.mjs +11 -0
  32. package/dist/cs-CZ.module.js +11 -0
  33. package/dist/cs-CZ.module.js.map +1 -0
  34. package/dist/da-DK.main.js +9 -0
  35. package/dist/da-DK.main.js.map +1 -0
  36. package/dist/da-DK.mjs +11 -0
  37. package/dist/da-DK.module.js +11 -0
  38. package/dist/da-DK.module.js.map +1 -0
  39. package/dist/de-DE.main.js +9 -0
  40. package/dist/de-DE.main.js.map +1 -0
  41. package/dist/de-DE.mjs +11 -0
  42. package/dist/de-DE.module.js +11 -0
  43. package/dist/de-DE.module.js.map +1 -0
  44. package/dist/el-GR.main.js +9 -0
  45. package/dist/el-GR.main.js.map +1 -0
  46. package/dist/el-GR.mjs +11 -0
  47. package/dist/el-GR.module.js +11 -0
  48. package/dist/el-GR.module.js.map +1 -0
  49. package/dist/en-US.main.js +9 -0
  50. package/dist/en-US.main.js.map +1 -0
  51. package/dist/en-US.mjs +11 -0
  52. package/dist/en-US.module.js +11 -0
  53. package/dist/en-US.module.js.map +1 -0
  54. package/dist/es-ES.main.js +9 -0
  55. package/dist/es-ES.main.js.map +1 -0
  56. package/dist/es-ES.mjs +11 -0
  57. package/dist/es-ES.module.js +11 -0
  58. package/dist/es-ES.module.js.map +1 -0
  59. package/dist/et-EE.main.js +9 -0
  60. package/dist/et-EE.main.js.map +1 -0
  61. package/dist/et-EE.mjs +11 -0
  62. package/dist/et-EE.module.js +11 -0
  63. package/dist/et-EE.module.js.map +1 -0
  64. package/dist/fi-FI.main.js +9 -0
  65. package/dist/fi-FI.main.js.map +1 -0
  66. package/dist/fi-FI.mjs +11 -0
  67. package/dist/fi-FI.module.js +11 -0
  68. package/dist/fi-FI.module.js.map +1 -0
  69. package/dist/fr-FR.main.js +9 -0
  70. package/dist/fr-FR.main.js.map +1 -0
  71. package/dist/fr-FR.mjs +11 -0
  72. package/dist/fr-FR.module.js +11 -0
  73. package/dist/fr-FR.module.js.map +1 -0
  74. package/dist/he-IL.main.js +9 -0
  75. package/dist/he-IL.main.js.map +1 -0
  76. package/dist/he-IL.mjs +11 -0
  77. package/dist/he-IL.module.js +11 -0
  78. package/dist/he-IL.module.js.map +1 -0
  79. package/dist/hr-HR.main.js +9 -0
  80. package/dist/hr-HR.main.js.map +1 -0
  81. package/dist/hr-HR.mjs +11 -0
  82. package/dist/hr-HR.module.js +11 -0
  83. package/dist/hr-HR.module.js.map +1 -0
  84. package/dist/hu-HU.main.js +9 -0
  85. package/dist/hu-HU.main.js.map +1 -0
  86. package/dist/hu-HU.mjs +11 -0
  87. package/dist/hu-HU.module.js +11 -0
  88. package/dist/hu-HU.module.js.map +1 -0
  89. package/dist/import.mjs +20 -0
  90. package/dist/inputgroup_vars_css.main.js +86 -0
  91. package/dist/inputgroup_vars_css.main.js.map +1 -0
  92. package/dist/inputgroup_vars_css.mjs +88 -0
  93. package/dist/inputgroup_vars_css.module.js +88 -0
  94. package/dist/inputgroup_vars_css.module.js.map +1 -0
  95. package/dist/intlStrings.main.js +108 -0
  96. package/dist/intlStrings.main.js.map +1 -0
  97. package/dist/intlStrings.mjs +110 -0
  98. package/dist/intlStrings.module.js +110 -0
  99. package/dist/intlStrings.module.js.map +1 -0
  100. package/dist/it-IT.main.js +9 -0
  101. package/dist/it-IT.main.js.map +1 -0
  102. package/dist/it-IT.mjs +11 -0
  103. package/dist/it-IT.module.js +11 -0
  104. package/dist/it-IT.module.js.map +1 -0
  105. package/dist/ja-JP.main.js +9 -0
  106. package/dist/ja-JP.main.js.map +1 -0
  107. package/dist/ja-JP.mjs +11 -0
  108. package/dist/ja-JP.module.js +11 -0
  109. package/dist/ja-JP.module.js.map +1 -0
  110. package/dist/ko-KR.main.js +9 -0
  111. package/dist/ko-KR.main.js.map +1 -0
  112. package/dist/ko-KR.mjs +11 -0
  113. package/dist/ko-KR.module.js +11 -0
  114. package/dist/ko-KR.module.js.map +1 -0
  115. package/dist/lt-LT.main.js +9 -0
  116. package/dist/lt-LT.main.js.map +1 -0
  117. package/dist/lt-LT.mjs +11 -0
  118. package/dist/lt-LT.module.js +11 -0
  119. package/dist/lt-LT.module.js.map +1 -0
  120. package/dist/lv-LV.main.js +9 -0
  121. package/dist/lv-LV.main.js.map +1 -0
  122. package/dist/lv-LV.mjs +11 -0
  123. package/dist/lv-LV.module.js +11 -0
  124. package/dist/lv-LV.module.js.map +1 -0
  125. package/dist/main.js +14 -997
  126. package/dist/main.js.map +1 -1
  127. package/dist/module.js +13 -984
  128. package/dist/module.js.map +1 -1
  129. package/dist/nb-NO.main.js +9 -0
  130. package/dist/nb-NO.main.js.map +1 -0
  131. package/dist/nb-NO.mjs +11 -0
  132. package/dist/nb-NO.module.js +11 -0
  133. package/dist/nb-NO.module.js.map +1 -0
  134. package/dist/nl-NL.main.js +9 -0
  135. package/dist/nl-NL.main.js.map +1 -0
  136. package/dist/nl-NL.mjs +11 -0
  137. package/dist/nl-NL.module.js +11 -0
  138. package/dist/nl-NL.module.js.map +1 -0
  139. package/dist/pl-PL.main.js +9 -0
  140. package/dist/pl-PL.main.js.map +1 -0
  141. package/dist/pl-PL.mjs +11 -0
  142. package/dist/pl-PL.module.js +11 -0
  143. package/dist/pl-PL.module.js.map +1 -0
  144. package/dist/pt-BR.main.js +9 -0
  145. package/dist/pt-BR.main.js.map +1 -0
  146. package/dist/pt-BR.mjs +11 -0
  147. package/dist/pt-BR.module.js +11 -0
  148. package/dist/pt-BR.module.js.map +1 -0
  149. package/dist/pt-PT.main.js +9 -0
  150. package/dist/pt-PT.main.js.map +1 -0
  151. package/dist/pt-PT.mjs +11 -0
  152. package/dist/pt-PT.module.js +11 -0
  153. package/dist/pt-PT.module.js.map +1 -0
  154. package/dist/ro-RO.main.js +9 -0
  155. package/dist/ro-RO.main.js.map +1 -0
  156. package/dist/ro-RO.mjs +11 -0
  157. package/dist/ro-RO.module.js +11 -0
  158. package/dist/ro-RO.module.js.map +1 -0
  159. package/dist/ru-RU.main.js +9 -0
  160. package/dist/ru-RU.main.js.map +1 -0
  161. package/dist/ru-RU.mjs +11 -0
  162. package/dist/ru-RU.module.js +11 -0
  163. package/dist/ru-RU.module.js.map +1 -0
  164. package/dist/search_vars_css.main.js +53 -0
  165. package/dist/search_vars_css.main.js.map +1 -0
  166. package/dist/search_vars_css.mjs +55 -0
  167. package/dist/search_vars_css.module.js +55 -0
  168. package/dist/search_vars_css.module.js.map +1 -0
  169. package/dist/searchautocomplete_css.main.js +38 -0
  170. package/dist/searchautocomplete_css.main.js.map +1 -0
  171. package/dist/searchautocomplete_css.mjs +40 -0
  172. package/dist/searchautocomplete_css.module.js +40 -0
  173. package/dist/searchautocomplete_css.module.js.map +1 -0
  174. package/dist/sk-SK.main.js +9 -0
  175. package/dist/sk-SK.main.js.map +1 -0
  176. package/dist/sk-SK.mjs +11 -0
  177. package/dist/sk-SK.module.js +11 -0
  178. package/dist/sk-SK.module.js.map +1 -0
  179. package/dist/sl-SI.main.js +9 -0
  180. package/dist/sl-SI.main.js.map +1 -0
  181. package/dist/sl-SI.mjs +11 -0
  182. package/dist/sl-SI.module.js +11 -0
  183. package/dist/sl-SI.module.js.map +1 -0
  184. package/dist/sr-SP.main.js +9 -0
  185. package/dist/sr-SP.main.js.map +1 -0
  186. package/dist/sr-SP.mjs +11 -0
  187. package/dist/sr-SP.module.js +11 -0
  188. package/dist/sr-SP.module.js.map +1 -0
  189. package/dist/sv-SE.main.js +9 -0
  190. package/dist/sv-SE.main.js.map +1 -0
  191. package/dist/sv-SE.mjs +11 -0
  192. package/dist/sv-SE.module.js +11 -0
  193. package/dist/sv-SE.module.js.map +1 -0
  194. package/dist/textfield_vars_css.main.js +74 -0
  195. package/dist/textfield_vars_css.main.js.map +1 -0
  196. package/dist/textfield_vars_css.mjs +76 -0
  197. package/dist/textfield_vars_css.module.js +76 -0
  198. package/dist/textfield_vars_css.module.js.map +1 -0
  199. package/dist/tr-TR.main.js +9 -0
  200. package/dist/tr-TR.main.js.map +1 -0
  201. package/dist/tr-TR.mjs +11 -0
  202. package/dist/tr-TR.module.js +11 -0
  203. package/dist/tr-TR.module.js.map +1 -0
  204. package/dist/types.d.ts +6 -2
  205. package/dist/types.d.ts.map +1 -1
  206. package/dist/uk-UA.main.js +9 -0
  207. package/dist/uk-UA.main.js.map +1 -0
  208. package/dist/uk-UA.mjs +11 -0
  209. package/dist/uk-UA.module.js +11 -0
  210. package/dist/uk-UA.module.js.map +1 -0
  211. package/dist/zh-CN.main.js +9 -0
  212. package/dist/zh-CN.main.js.map +1 -0
  213. package/dist/zh-CN.mjs +11 -0
  214. package/dist/zh-CN.module.js +11 -0
  215. package/dist/zh-CN.module.js.map +1 -0
  216. package/dist/zh-TW.main.js +9 -0
  217. package/dist/zh-TW.main.js.map +1 -0
  218. package/dist/zh-TW.mjs +11 -0
  219. package/dist/zh-TW.module.js +11 -0
  220. package/dist/zh-TW.module.js.map +1 -0
  221. package/package.json +38 -29
  222. package/src/MobileSearchAutocomplete.tsx +228 -143
  223. package/src/SearchAutocomplete.tsx +125 -78
  224. package/src/index.ts +2 -3
  225. package/src/searchautocomplete.css +11 -5
  226. package/dist/main.css +0 -1
@@ -10,35 +10,53 @@
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
12
  import {AriaButtonProps} from '@react-types/button';
13
- import {classNames, useFocusableRef, useIsMobileDevice, useResizeObserver, useUnwrapDOMRef} from '@react-spectrum/utils';
13
+ import {classNames, dimensionValue, useFocusableRef, useIsMobileDevice, useResizeObserver, useUnwrapDOMRef} from '@react-spectrum/utils';
14
14
  import {ClearButton} from '@react-spectrum/button';
15
- import {DismissButton, useOverlayPosition} from '@react-aria/overlays';
16
15
  import {DOMRefValue, FocusableRef} from '@react-types/shared';
17
16
  import {Field} from '@react-spectrum/label';
17
+ import {filterDOMProps, useLayoutEffect} from '@react-aria/utils';
18
18
  import {FocusRing} from '@react-aria/focus';
19
19
  // @ts-ignore
20
20
  import intlMessages from '../intl/*.json';
21
21
  import {ListBoxBase, useListBoxLayout} from '@react-spectrum/listbox';
22
22
  import Magnifier from '@spectrum-icons/ui/Magnifier';
23
23
  import {MobileSearchAutocomplete} from './MobileSearchAutocomplete';
24
- import {Placement} from '@react-types/overlays';
25
24
  import {Popover} from '@react-spectrum/overlays';
26
25
  import {ProgressCircle} from '@react-spectrum/progress';
27
- import React, {forwardRef, InputHTMLAttributes, RefObject, useCallback, useEffect, useRef, useState} from 'react';
26
+ import React, {
27
+ forwardRef,
28
+ InputHTMLAttributes,
29
+ ReactElement,
30
+ RefObject,
31
+ useCallback,
32
+ useEffect,
33
+ useRef,
34
+ useState
35
+ } from 'react';
36
+ import searchAutocompleteStyles from './searchautocomplete.css';
28
37
  import searchStyles from '@adobe/spectrum-css-temp/components/search/vars.css';
29
38
  import {SpectrumSearchAutocompleteProps} from '@react-types/autocomplete';
30
39
  import styles from '@adobe/spectrum-css-temp/components/inputgroup/vars.css';
31
40
  import {TextFieldBase} from '@react-spectrum/textfield';
32
41
  import textfieldStyles from '@adobe/spectrum-css-temp/components/textfield/vars.css';
33
42
  import {useComboBoxState} from '@react-stately/combobox';
34
- import {useFilter, useMessageFormatter} from '@react-aria/i18n';
43
+ import {useFilter, useLocalizedStringFormatter} from '@react-aria/i18n';
44
+ import {useFormProps} from '@react-spectrum/form';
35
45
  import {useHover} from '@react-aria/interactions';
36
- import {useLayoutEffect} from '@react-aria/utils';
37
46
  import {useProvider, useProviderProps} from '@react-spectrum/provider';
38
47
  import {useSearchAutocomplete} from '@react-aria/autocomplete';
39
48
 
40
49
  function SearchAutocomplete<T extends object>(props: SpectrumSearchAutocompleteProps<T>, ref: FocusableRef<HTMLElement>) {
41
50
  props = useProviderProps(props);
51
+ props = useFormProps(props);
52
+
53
+ let hasWarned = useRef(false);
54
+ useEffect(() => {
55
+ if (props.placeholder && !hasWarned.current && process.env.NODE_ENV !== 'production') {
56
+ console.warn('Placeholders are deprecated due to accessibility issues. Please use help text instead.');
57
+ hasWarned.current = true;
58
+ }
59
+ }, [props.placeholder]);
42
60
 
43
61
  let isMobile = useIsMobileDevice();
44
62
  if (isMobile) {
@@ -49,25 +67,28 @@ function SearchAutocomplete<T extends object>(props: SpectrumSearchAutocompleteP
49
67
  }
50
68
  }
51
69
 
52
- const SearchAutocompleteBase = React.forwardRef(function SearchAutocompleteBase<T extends object>(props: SpectrumSearchAutocompleteProps<T>, ref: FocusableRef<HTMLElement>) {
70
+ function ForwardSearchAutocompleteBase<T extends object>(props: SpectrumSearchAutocompleteProps<T>, ref: FocusableRef<HTMLElement>) {
53
71
  props = useProviderProps(props);
54
72
 
55
73
  let {
56
74
  menuTrigger = 'input',
57
75
  shouldFlip = true,
58
76
  direction = 'bottom',
77
+ align = 'start',
59
78
  isQuiet,
79
+ menuWidth: customMenuWidth,
60
80
  loadingState,
61
81
  onLoadMore,
62
- onSubmit = () => {}
82
+ onSubmit = () => {},
83
+ validate
63
84
  } = props;
64
85
 
65
- let formatMessage = useMessageFormatter(intlMessages);
86
+ let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/autocomplete');
66
87
  let isAsync = loadingState != null;
67
- let popoverRef = useRef<DOMRefValue<HTMLDivElement>>();
88
+ let popoverRef = useRef<DOMRefValue<HTMLDivElement>>(null);
68
89
  let unwrappedPopoverRef = useUnwrapDOMRef(popoverRef);
69
- let listBoxRef = useRef();
70
- let inputRef = useRef<HTMLInputElement>();
90
+ let listBoxRef = useRef(null);
91
+ let inputRef = useRef<HTMLInputElement>(null);
71
92
  let domRef = useFocusableRef(ref, inputRef);
72
93
 
73
94
  let {contains} = useFilter({sensitivity: 'base'});
@@ -79,15 +100,16 @@ const SearchAutocompleteBase = React.forwardRef(function SearchAutocompleteBase<
79
100
  allowsCustomValue: true,
80
101
  onSelectionChange: (key) => key !== null && onSubmit(null, key),
81
102
  selectedKey: undefined,
82
- defaultSelectedKey: undefined
103
+ defaultSelectedKey: undefined,
104
+ validate: useCallback(v => validate?.(v.inputValue), [validate])
83
105
  }
84
106
  );
85
- let layout = useListBoxLayout(state);
86
-
87
- let {inputProps, listBoxProps, labelProps, clearButtonProps} = useSearchAutocomplete(
107
+ let layout = useListBoxLayout();
108
+
109
+ let {inputProps, listBoxProps, labelProps, clearButtonProps, descriptionProps, errorMessageProps, isInvalid, validationErrors, validationDetails} = useSearchAutocomplete(
88
110
  {
89
111
  ...props,
90
- keyboardDelegate: layout,
112
+ layoutDelegate: layout,
91
113
  popoverRef: unwrappedPopoverRef,
92
114
  listBoxRef,
93
115
  inputRef,
@@ -96,18 +118,8 @@ const SearchAutocompleteBase = React.forwardRef(function SearchAutocompleteBase<
96
118
  state
97
119
  );
98
120
 
99
- let {overlayProps, placement, updatePosition} = useOverlayPosition({
100
- targetRef: inputRef,
101
- overlayRef: unwrappedPopoverRef,
102
- scrollRef: listBoxRef,
103
- placement: `${direction} end` as Placement,
104
- shouldFlip: shouldFlip,
105
- isOpen: state.isOpen,
106
- onClose: state.close
107
- });
108
-
109
121
  // Measure the width of the inputfield to inform the width of the menu (below).
110
- let [menuWidth, setMenuWidth] = useState(null);
122
+ let [menuWidth, setMenuWidth] = useState<number>(0);
111
123
  let {scale} = useProvider();
112
124
 
113
125
  let onResize = useCallback(() => {
@@ -124,77 +136,86 @@ const SearchAutocompleteBase = React.forwardRef(function SearchAutocompleteBase<
124
136
 
125
137
  useLayoutEffect(onResize, [scale, onResize]);
126
138
 
127
- // Update position once the ListBox has rendered. This ensures that
128
- // it flips properly when it doesn't fit in the available space.
129
- // TODO: add ResizeObserver to useOverlayPosition so we don't need this.
130
- useLayoutEffect(() => {
131
- if (state.isOpen) {
132
- requestAnimationFrame(() => {
133
- updatePosition();
134
- });
135
- }
136
- }, [state.isOpen, updatePosition]);
137
-
139
+ let width = isQuiet ? undefined : menuWidth;
138
140
  let style = {
139
- ...overlayProps.style,
140
- width: isQuiet ? null : menuWidth,
141
+ width: customMenuWidth ? dimensionValue(customMenuWidth) : width,
141
142
  minWidth: isQuiet ? `calc(${menuWidth}px + calc(2 * var(--spectrum-dropdown-quiet-offset)))` : menuWidth
142
143
  };
143
144
 
144
145
  return (
145
146
  <>
146
- <Field {...props} labelProps={labelProps} ref={domRef}>
147
+ <Field
148
+ {...props}
149
+ descriptionProps={descriptionProps}
150
+ errorMessageProps={errorMessageProps}
151
+ labelProps={labelProps}
152
+ isInvalid={isInvalid}
153
+ validationErrors={validationErrors}
154
+ validationDetails={validationDetails}
155
+ ref={domRef}>
147
156
  <SearchAutocompleteInput
148
157
  {...props}
149
158
  isOpen={state.isOpen}
150
159
  loadingState={loadingState}
151
160
  inputProps={inputProps}
152
161
  inputRef={inputRef}
153
- clearButtonProps={clearButtonProps} />
162
+ clearButtonProps={clearButtonProps}
163
+ validationState={props.validationState || (isInvalid ? 'invalid' : undefined)} />
154
164
  </Field>
155
165
  <Popover
156
- isOpen={state.isOpen}
166
+ state={state}
157
167
  UNSAFE_style={style}
158
168
  UNSAFE_className={classNames(styles, 'spectrum-InputGroup-popover', {'spectrum-InputGroup-popover--quiet': isQuiet})}
159
169
  ref={popoverRef}
160
- placement={placement}
170
+ triggerRef={inputRef}
171
+ placement={`${direction} ${align}`}
161
172
  hideArrow
162
173
  isNonModal
163
- isDismissable={false}>
174
+ shouldFlip={shouldFlip}>
164
175
  <ListBoxBase
165
176
  {...listBoxProps}
166
177
  ref={listBoxRef}
167
178
  disallowEmptySelection
168
- autoFocus={state.focusStrategy}
179
+ autoFocus={state.focusStrategy ?? undefined}
169
180
  shouldSelectOnPressUp
170
181
  focusOnPointerEnter
171
182
  layout={layout}
172
183
  state={state}
173
184
  shouldUseVirtualFocus
174
- isLoading={loadingState === 'loadingMore'}
185
+ isLoading={loadingState === 'loading' || loadingState === 'loadingMore'}
186
+ showLoadingSpinner={loadingState === 'loadingMore'}
175
187
  onLoadMore={onLoadMore}
176
188
  renderEmptyState={() => isAsync && (
177
- <span>
178
- {formatMessage('noResults')}
189
+ <span className={classNames(searchAutocompleteStyles, 'no-results')}>
190
+ {stringFormatter.format('noResults')}
179
191
  </span>
180
192
  )} />
181
- <DismissButton onDismiss={() => state.close()} />
182
193
  </Popover>
183
194
  </>
184
195
  );
185
- });
196
+ }
197
+
198
+ let SearchAutocompleteBase = React.forwardRef(ForwardSearchAutocompleteBase) as <T>(props: SpectrumSearchAutocompleteProps<T> & {ref?: FocusableRef<HTMLElement>}) => ReactElement;
186
199
 
187
- interface SearchAutocompleteInputProps extends SpectrumSearchAutocompleteProps<unknown> {
200
+
201
+ interface SearchAutocompleteInputProps<T> extends SpectrumSearchAutocompleteProps<T> {
188
202
  inputProps: InputHTMLAttributes<HTMLInputElement>,
189
- inputRef: RefObject<HTMLInputElement | HTMLTextAreaElement>,
203
+ inputRef: RefObject<HTMLInputElement | null>,
190
204
  style?: React.CSSProperties,
191
205
  className?: string,
192
206
  isOpen?: boolean,
193
207
  clearButtonProps: AriaButtonProps
194
208
  }
195
209
 
196
- const SearchAutocompleteInput = React.forwardRef(function SearchAutocompleteInput(props: SearchAutocompleteInputProps, ref: RefObject<HTMLElement>) {
210
+ // any type is because we don't want to call useObjectRef because this is an internal component and we know
211
+ // we are always passing an object ref
212
+ function ForwardSearchAutocompleteInput<T>(props: SearchAutocompleteInputProps<T>, ref: any) {
213
+ let searchIcon = (
214
+ <Magnifier data-testid="searchicon" />
215
+ );
216
+
197
217
  let {
218
+ icon = searchIcon,
198
219
  isQuiet,
199
220
  isDisabled,
200
221
  isReadOnly,
@@ -210,13 +231,14 @@ const SearchAutocompleteInput = React.forwardRef(function SearchAutocompleteInpu
210
231
  clearButtonProps
211
232
  } = props;
212
233
  let {hoverProps, isHovered} = useHover({});
213
- let formatMessage = useMessageFormatter(intlMessages);
214
- let timeout = useRef(null);
234
+ let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/autocomplete');
235
+ let domProps = filterDOMProps(props);
236
+ let timeout = useRef<ReturnType<typeof setTimeout> | null>(null);
215
237
  let [showLoading, setShowLoading] = useState(false);
216
238
 
217
239
  let loadingCircle = (
218
240
  <ProgressCircle
219
- aria-label={formatMessage('loading')}
241
+ aria-label={stringFormatter.format('loading')}
220
242
  size="S"
221
243
  isIndeterminate
222
244
  UNSAFE_className={classNames(
@@ -225,14 +247,14 @@ const SearchAutocompleteInput = React.forwardRef(function SearchAutocompleteInpu
225
247
  classNames(
226
248
  styles,
227
249
  'spectrum-InputGroup-input-circleLoader'
250
+ ),
251
+ classNames(
252
+ searchStyles,
253
+ 'spectrum-Search-circleLoader'
228
254
  )
229
255
  )} />
230
256
  );
231
257
 
232
- let searchIcon = (
233
- <Magnifier data-testid="searchicon" />
234
- );
235
-
236
258
  let clearButton = (
237
259
  <ClearButton
238
260
  {...clearButtonProps}
@@ -266,16 +288,22 @@ const SearchAutocompleteInput = React.forwardRef(function SearchAutocompleteInpu
266
288
  }
267
289
  } else if (!isLoading) {
268
290
  // If loading is no longer happening, clear any timers and hide the loading circle
269
- setShowLoading(false);
270
- clearTimeout(timeout.current);
271
- timeout.current = null;
291
+ if (timeout.current != null) {
292
+ clearTimeout(timeout.current);
293
+ timeout.current = null;
294
+ }
272
295
  }
273
296
 
274
297
  lastInputValue.current = inputValue;
275
298
  }, [isLoading, showLoading, inputValue]);
299
+ let [prevIsLoading, setPrevIsLoading] = useState(isLoading);
300
+ if (prevIsLoading !== isLoading && !isLoading) {
301
+ setShowLoading(false);
302
+ setPrevIsLoading(isLoading);
303
+ }
276
304
 
277
305
  return (
278
- <FocusRing
306
+ (<FocusRing
279
307
  within
280
308
  isTextInput
281
309
  focusClass={classNames(styles, 'is-focused')}
@@ -283,7 +311,7 @@ const SearchAutocompleteInput = React.forwardRef(function SearchAutocompleteInpu
283
311
  autoFocus={autoFocus}>
284
312
  <div
285
313
  {...hoverProps}
286
- ref={ref as RefObject<HTMLDivElement>}
314
+ ref={ref as RefObject<HTMLDivElement | null>}
287
315
  style={style}
288
316
  className={
289
317
  classNames(
@@ -292,44 +320,63 @@ const SearchAutocompleteInput = React.forwardRef(function SearchAutocompleteInpu
292
320
  {
293
321
  'spectrum-InputGroup--quiet': isQuiet,
294
322
  'is-disabled': isDisabled,
295
- 'spectrum-InputGroup--invalid': validationState === 'invalid',
323
+ 'spectrum-InputGroup--invalid': validationState === 'invalid' && !isDisabled,
296
324
  'is-hovered': isHovered
297
325
  },
326
+ classNames(
327
+ searchAutocompleteStyles,
328
+ 'searchautocomplete'
329
+ ),
298
330
  className
299
331
  )
300
332
  }>
301
333
  <TextFieldBase
334
+ {...domProps}
302
335
  inputProps={inputProps}
303
336
  inputRef={inputRef}
304
337
  UNSAFE_className={
305
338
  classNames(
306
339
  searchStyles,
307
340
  'spectrum-Search',
341
+ 'spectrum-Search--loadable',
308
342
  'spectrum-Textfield',
309
343
  {
310
344
  'is-disabled': isDisabled,
311
345
  'is-quiet': isQuiet,
312
- 'spectrum-Search--invalid': validationState === 'invalid',
313
- 'spectrum-Search--valid': validationState === 'valid'
314
- }
346
+ 'spectrum-Search--invalid': validationState === 'invalid' && !isDisabled,
347
+ 'spectrum-Search--valid': validationState === 'valid' && !isDisabled
348
+ },
349
+ classNames(
350
+ styles,
351
+ 'spectrum-InputGroup-field'
352
+ )
315
353
  )
316
354
  }
317
355
  inputClassName={classNames(searchStyles, 'spectrum-Search-input')}
356
+ validationIconClassName={
357
+ classNames(
358
+ searchStyles,
359
+ 'spectrum-Search-validationIcon'
360
+ )
361
+ }
318
362
  isDisabled={isDisabled}
319
363
  isQuiet={isQuiet}
320
364
  validationState={validationState}
321
365
  isLoading={showLoading && (isOpen || menuTrigger === 'manual' || loadingState === 'loading')}
322
- loadingIndicator={loadingState != null && loadingCircle}
323
- icon={searchIcon}
324
- wrapperChildren={(inputValue !== '' && !isReadOnly) && clearButton} />
366
+ loadingIndicator={loadingState != null ? loadingCircle : undefined}
367
+ icon={icon}
368
+ wrapperChildren={(inputValue !== '' || loadingState === 'filtering' || validationState != null) && !isReadOnly ? clearButton : undefined}
369
+ disableFocusRing />
325
370
  </div>
326
- </FocusRing>
371
+ </FocusRing>)
327
372
  );
328
- });
373
+ }
374
+
375
+ let SearchAutocompleteInput = React.forwardRef(ForwardSearchAutocompleteInput) as <T>(props: SearchAutocompleteInputProps<T> & {ref?: any}) => ReactElement;
329
376
 
330
377
 
331
378
  /**
332
379
  * A SearchAutocomplete is a searchfield that supports a dynamic list of suggestions.
333
380
  */
334
- let _SearchAutocomplete = forwardRef(SearchAutocomplete);
335
- export {_SearchAutocomplete as SearchAutocomplete};
381
+ let ForwardSearchAutocomplete = forwardRef(SearchAutocomplete) as <T>(props: SpectrumSearchAutocompleteProps<T> & {ref?: FocusableRef<HTMLElement>}) => ReactElement;
382
+ export {ForwardSearchAutocomplete as SearchAutocomplete};
package/src/index.ts CHANGED
@@ -9,8 +9,7 @@
9
9
  * OF ANY KIND, either express or implied. See the License for the specific language
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
-
13
12
  /// <reference types="css-module-types" />
14
-
15
- export * from './SearchAutocomplete';
13
+ export {SearchAutocomplete} from './SearchAutocomplete';
16
14
  export {Item, Section} from '@react-stately/collections';
15
+ export type {SpectrumSearchAutocompleteProps} from '@react-types/autocomplete';
@@ -20,7 +20,12 @@
20
20
  padding-inline-start: var(--spectrum-selectlist-option-padding);
21
21
  font-size: var(--spectrum-selectlist-option-text-size);
22
22
  font-weight: var(--spectrum-selectlist-option-text-font-weight);
23
- font-style: italic;
23
+ }
24
+
25
+ /* override .spectrum-InputGroup */
26
+ .searchautocomplete.searchautocomplete {
27
+ border-radius: var(--spectrum-search-border-radius);
28
+ --spectrum-focus-ring-border-radius: var(--spectrum-search-border-radius);
24
29
  }
25
30
 
26
31
  .mobile-searchautocomplete {
@@ -28,13 +33,14 @@
28
33
  }
29
34
 
30
35
  .mobile-input {
31
- white-space: nowrap;
32
- overflow: hidden;
33
- text-overflow: ellipsis;
36
+ display: flex;
37
+ align-items: center;
34
38
  }
35
39
 
36
40
  .mobile-value {
37
- vertical-align: middle;
41
+ white-space: nowrap;
42
+ overflow: hidden;
43
+ text-overflow: ellipsis;
38
44
  }
39
45
 
40
46
  .tray-dialog {
package/dist/main.css DELETED
@@ -1 +0,0 @@
1
- [dir=ltr] .no-results_83bf62{padding-left:var(--spectrum-selectlist-option-padding,var(--spectrum-global-dimension-static-size-150))}[dir=rtl] .no-results_83bf62{padding-right:var(--spectrum-selectlist-option-padding,var(--spectrum-global-dimension-static-size-150))}.no-results_83bf62{padding-top:var(--spectrum-selectlist-option-padding-height);font-size:var(--spectrum-selectlist-option-text-size,var(--spectrum-alias-font-size-default));font-weight:var(--spectrum-selectlist-option-text-font-weight,var(--spectrum-global-font-weight-regular));font-style:italic;display:block}.mobile-searchautocomplete_83bf62{outline:0}.mobile-input_83bf62{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mobile-value_83bf62{vertical-align:middle}.tray-dialog_83bf62{height:100%;outline:0;flex-direction:column;display:flex}.tray-textfield_83bf62{margin:var(--spectrum-global-dimension-size-150);margin-bottom:var(--spectrum-global-dimension-size-50);flex-shrink:0;width:initial!important}.tray-textfield_83bf62.has-label_83bf62{margin-top:var(--spectrum-global-dimension-size-50)}[dir=ltr] .tray-textfield_83bf62 .tray-textfield-input_83bf62{padding-left:var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150))}[dir=rtl] .tray-textfield_83bf62 .tray-textfield-input_83bf62{padding-right:var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150))}.tray-listbox_83bf62{width:100%;flex:1}.spectrum-Search_d3c0f3{display:inline-block;position:relative}[dir=ltr] .spectrum-Search_d3c0f3 .spectrum-ClearButton_d3c0f3{right:0}[dir=rtl] .spectrum-Search_d3c0f3 .spectrum-ClearButton_d3c0f3{left:0}.spectrum-Search_d3c0f3 .spectrum-ClearButton_d3c0f3{position:absolute;top:0}[dir=ltr] .spectrum-Search_d3c0f3.is-quiet_d3c0f3 .spectrum-Search-input_d3c0f3{padding-left:var(--spectrum-global-dimension-size-300)}[dir=rtl] .spectrum-Search_d3c0f3.is-quiet_d3c0f3 .spectrum-Search-input_d3c0f3{padding-right:var(--spectrum-global-dimension-size-300)}[dir=ltr] .spectrum-Search_d3c0f3.is-quiet_d3c0f3 .spectrum-Search-input_d3c0f3{padding-right:var(--spectrum-global-dimension-size-350)}[dir=rtl] .spectrum-Search_d3c0f3.is-quiet_d3c0f3 .spectrum-Search-input_d3c0f3{padding-left:var(--spectrum-global-dimension-size-350)}[dir=ltr] .spectrum-Search_d3c0f3.spectrum-Search--invalid_d3c0f3 .spectrum-ClearButton_d3c0f3{right:calc(var(--spectrum-icon-alert-medium-width,var(--spectrum-global-dimension-size-225)) + var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150)))}[dir=rtl] .spectrum-Search_d3c0f3.spectrum-Search--invalid_d3c0f3 .spectrum-ClearButton_d3c0f3{left:calc(var(--spectrum-icon-alert-medium-width,var(--spectrum-global-dimension-size-225)) + var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150)))}[dir=ltr] .spectrum-Search_d3c0f3.spectrum-Search--valid_d3c0f3 .spectrum-ClearButton_d3c0f3{right:calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150))/2 + var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-Search_d3c0f3.spectrum-Search--valid_d3c0f3 .spectrum-ClearButton_d3c0f3{left:calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150))/2 + var(--spectrum-global-dimension-size-150))}[dir=ltr] .spectrum-Search_d3c0f3.spectrum-Search--loadable_d3c0f3 .spectrum-ClearButton_d3c0f3{right:0}[dir=rtl] .spectrum-Search_d3c0f3.spectrum-Search--loadable_d3c0f3 .spectrum-ClearButton_d3c0f3{left:0}[dir=ltr] .spectrum-Search_d3c0f3.spectrum-Search--loadable_d3c0f3 .spectrum-Search-circleLoader_d3c0f3{right:calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150))/2 + var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-Search_d3c0f3.spectrum-Search--loadable_d3c0f3 .spectrum-Search-circleLoader_d3c0f3{left:calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150))/2 + var(--spectrum-global-dimension-size-150))}[dir=ltr] .spectrum-Search_d3c0f3.spectrum-Search--loadable_d3c0f3 .spectrum-Search-validationIcon_d3c0f3{right:calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150))/2 + var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-Search_d3c0f3.spectrum-Search--loadable_d3c0f3 .spectrum-Search-validationIcon_d3c0f3{left:calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150))/2 + var(--spectrum-global-dimension-size-150))}[dir=ltr] .spectrum-Search_d3c0f3.spectrum-Search--loadable_d3c0f3 .spectrum-Search-validationIcon_d3c0f3{padding-right:0}[dir=rtl] .spectrum-Search_d3c0f3.spectrum-Search--loadable_d3c0f3 .spectrum-Search-validationIcon_d3c0f3{padding-left:0}[dir=ltr] .spectrum-Search-input_d3c0f3{padding-right:var(--spectrum-global-dimension-size-350)}[dir=rtl] .spectrum-Search-input_d3c0f3{padding-left:var(--spectrum-global-dimension-size-350)}.spectrum-Search-input_d3c0f3{-webkit-appearance:none;outline-offset:-2px;text-indent:0;display:block}.spectrum-Search-input_d3c0f3::-webkit-search-cancel-button,.spectrum-Search-input_d3c0f3::-webkit-search-decoration{-webkit-appearance:none}[dir=ltr] .spectrum-Textfield_d3c0f3.spectrum-Search--invalid_d3c0f3 .spectrum-Search-input_d3c0f3{padding-right:calc(var(--spectrum-global-dimension-size-350) + var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150)) + var(--spectrum-icon-alert-medium-width,var(--spectrum-global-dimension-size-225)) + var(--spectrum-textfield-icon-margin-left,var(--spectrum-global-dimension-size-150)))}[dir=rtl] .spectrum-Textfield_d3c0f3.spectrum-Search--invalid_d3c0f3 .spectrum-Search-input_d3c0f3{padding-left:calc(var(--spectrum-global-dimension-size-350) + var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150)) + var(--spectrum-icon-alert-medium-width,var(--spectrum-global-dimension-size-225)) + var(--spectrum-textfield-icon-margin-left,var(--spectrum-global-dimension-size-150)))}[dir=ltr] .spectrum-Textfield_d3c0f3.spectrum-Search--valid_d3c0f3 .spectrum-Search-input_d3c0f3{padding-right:calc(var(--spectrum-global-dimension-size-350) + var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150)) + var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-textfield-icon-margin-left,var(--spectrum-global-dimension-size-150)))}[dir=rtl] .spectrum-Textfield_d3c0f3.spectrum-Search--valid_d3c0f3 .spectrum-Search-input_d3c0f3{padding-left:calc(var(--spectrum-global-dimension-size-350) + var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150)) + var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-textfield-icon-margin-left,var(--spectrum-global-dimension-size-150)))}[dir=ltr] .spectrum-Textfield_d3c0f3.spectrum-Search--loadable_d3c0f3 .spectrum-Search-input_d3c0f3{padding-right:calc(var(--spectrum-global-dimension-size-350) + var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150)) + var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-textfield-icon-margin-left,var(--spectrum-global-dimension-size-150)))}[dir=rtl] .spectrum-Textfield_d3c0f3.spectrum-Search--loadable_d3c0f3 .spectrum-Search-input_d3c0f3{padding-left:calc(var(--spectrum-global-dimension-size-350) + var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150)) + var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-textfield-icon-margin-left,var(--spectrum-global-dimension-size-150)))}.spectrum-InputGroup_a0942f{min-width:calc(2.5*var(--spectrum-dropdown-height,var(--spectrum-global-dimension-size-400)));border-radius:var(--spectrum-global-dimension-size-50);flex-flow:row;display:inline-flex;position:relative}[dir=ltr] .spectrum-InputGroup_a0942f .spectrum-FieldButton_a0942f{border-top-left-radius:var(--spectrum-combobox-fieldbutton-border-top-left-radius,0)}[dir=rtl] .spectrum-InputGroup_a0942f .spectrum-FieldButton_a0942f{border-top-right-radius:var(--spectrum-combobox-fieldbutton-border-top-left-radius,0)}[dir=ltr] .spectrum-InputGroup_a0942f .spectrum-FieldButton_a0942f{border-bottom-left-radius:var(--spectrum-combobox-fieldbutton-border-bottom-left-radius,0)}[dir=rtl] .spectrum-InputGroup_a0942f .spectrum-FieldButton_a0942f{border-bottom-right-radius:var(--spectrum-combobox-fieldbutton-border-bottom-left-radius,0)}.spectrum-InputGroup_a0942f .spectrum-FieldButton_a0942f{width:var(--spectrum-global-dimension-size-400);border-width:1px;flex-shrink:0;padding:0}.spectrum-InputGroup_a0942f.is-disabled_a0942f:not(.spectrum-InputGroup--invalid_a0942f):not(.spectrum-InputGroup--quiet_a0942f) .spectrum-FieldButton_a0942f{border-width:0}[dir=ltr] .spectrum-InputGroup_a0942f .spectrum-InputGroup-field_a0942f .spectrum-InputGroup-input-validationIcon_a0942f{padding-right:0}[dir=rtl] .spectrum-InputGroup_a0942f .spectrum-InputGroup-field_a0942f .spectrum-InputGroup-input-validationIcon_a0942f{padding-left:0}[dir=ltr] .spectrum-InputGroup_a0942f .spectrum-InputGroup-field_a0942f .spectrum-InputGroup-input-validationIcon_a0942f{right:var(--spectrum-global-dimension-size-100)}[dir=rtl] .spectrum-InputGroup_a0942f .spectrum-InputGroup-field_a0942f .spectrum-InputGroup-input-validationIcon_a0942f{left:var(--spectrum-global-dimension-size-100)}[dir=ltr] .spectrum-InputGroup_a0942f .spectrum-InputGroup-field_a0942f .spectrum-InputGroup-input-circleLoader_a0942f{padding-right:0}[dir=rtl] .spectrum-InputGroup_a0942f .spectrum-InputGroup-field_a0942f .spectrum-InputGroup-input-circleLoader_a0942f{padding-left:0}[dir=ltr] .spectrum-InputGroup_a0942f .spectrum-InputGroup-field_a0942f .spectrum-InputGroup-input-circleLoader_a0942f{right:var(--spectrum-global-dimension-size-100)}[dir=rtl] .spectrum-InputGroup_a0942f .spectrum-InputGroup-field_a0942f .spectrum-InputGroup-input-circleLoader_a0942f{left:var(--spectrum-global-dimension-size-100)}.spectrum-InputGroup-field_a0942f{flex:auto}[dir=ltr] .spectrum-InputGroup-input_a0942f{border-top-right-radius:var(--spectrum-combobox-textfield-border-top-right-radius,0)}[dir=rtl] .spectrum-InputGroup-input_a0942f{border-top-left-radius:var(--spectrum-combobox-textfield-border-top-right-radius,0)}[dir=ltr] .spectrum-InputGroup-input_a0942f{border-bottom-right-radius:var(--spectrum-combobox-textfield-border-bottom-right-radius,0)}[dir=rtl] .spectrum-InputGroup-input_a0942f{border-bottom-left-radius:var(--spectrum-combobox-textfield-border-bottom-right-radius,0)}[dir=ltr] .spectrum-InputGroup-input_a0942f{border-right-style:none}[dir=rtl] .spectrum-InputGroup-input_a0942f{border-left-style:none}.spectrum-InputGroup--quiet_a0942f{min-width:calc(2*var(--spectrum-dropdown-height,var(--spectrum-global-dimension-size-400)));border-radius:0}[dir=ltr] .spectrum-InputGroup--quiet_a0942f .spectrum-FieldButton_a0942f{padding-left:var(--spectrum-global-dimension-size-130)}[dir=rtl] .spectrum-InputGroup--quiet_a0942f .spectrum-FieldButton_a0942f{padding-right:var(--spectrum-global-dimension-size-130)}[dir=ltr] .spectrum-InputGroup--quiet_a0942f .spectrum-FieldButton_a0942f{padding-right:0}[dir=rtl] .spectrum-InputGroup--quiet_a0942f .spectrum-FieldButton_a0942f{padding-left:0}.spectrum-InputGroup--quiet_a0942f .spectrum-FieldButton_a0942f{width:auto;border-width:0;border-bottom:var(--spectrum-textfield-quiet-affixed-border-size,var(--spectrum-global-dimension-static-size-10))solid;border-radius:0;position:relative}[dir=ltr] .spectrum-InputGroup--quiet_a0942f .spectrum-FieldButton_a0942f:after{right:-10px}[dir=rtl] .spectrum-InputGroup--quiet_a0942f .spectrum-FieldButton_a0942f:after{left:-10px}.spectrum-InputGroup--quiet_a0942f .spectrum-FieldButton_a0942f:after{content:"";height:100%;width:10px;position:absolute}[dir=ltr] .spectrum-InputGroup--quiet_a0942f .spectrum-InputGroup-icon_a0942f{right:0}[dir=rtl] .spectrum-InputGroup--quiet_a0942f .spectrum-InputGroup-icon_a0942f{left:0}.spectrum-InputGroup--quiet_a0942f.is-disabled_a0942f .spectrum-FieldButton_a0942f{border-bottom-width:1px}[dir=ltr] .spectrum-InputGroup--quiet_a0942f .spectrum-InputGroup-field_a0942f .spectrum-InputGroup-input-validationIcon_a0942f{padding-right:0}[dir=rtl] .spectrum-InputGroup--quiet_a0942f .spectrum-InputGroup-field_a0942f .spectrum-InputGroup-input-validationIcon_a0942f{padding-left:0}[dir=ltr] .spectrum-InputGroup--quiet_a0942f .spectrum-InputGroup-field_a0942f .spectrum-InputGroup-input-validationIcon_a0942f{right:0}[dir=rtl] .spectrum-InputGroup--quiet_a0942f .spectrum-InputGroup-field_a0942f .spectrum-InputGroup-input-validationIcon_a0942f{left:0}[dir=ltr] .spectrum-InputGroup--quiet_a0942f .spectrum-InputGroup-field_a0942f .spectrum-InputGroup-input-circleLoader_a0942f{padding-right:0}[dir=rtl] .spectrum-InputGroup--quiet_a0942f .spectrum-InputGroup-field_a0942f .spectrum-InputGroup-input-circleLoader_a0942f{padding-left:0}[dir=ltr] .spectrum-InputGroup--quiet_a0942f .spectrum-InputGroup-field_a0942f .spectrum-InputGroup-input-circleLoader_a0942f{right:var(--spectrum-global-dimension-size-10)}[dir=rtl] .spectrum-InputGroup--quiet_a0942f .spectrum-InputGroup-field_a0942f .spectrum-InputGroup-input-circleLoader_a0942f{left:var(--spectrum-global-dimension-size-10)}[dir=ltr] .spectrum-InputGroup-popover--quiet_a0942f{margin-right:calc(var(--spectrum-dropdown-quiet-offset)*-1)}[dir=rtl] .spectrum-InputGroup-popover--quiet_a0942f{margin-left:calc(var(--spectrum-dropdown-quiet-offset)*-1)}.spectrum-InputGroup-popover--quiet_a0942f{--spectrum-dropdown-quiet-offset:calc(var(--spectrum-dropdown-quiet-popover-offset-x,var(--spectrum-global-dimension-size-150)) + var(--spectrum-popover-border-size,var(--spectrum-alias-border-size-thin)))}.spectrum-Datepicker--range_a0942f{border-radius:var(--spectrum-global-dimension-size-50)}.spectrum-Datepicker--range_a0942f.spectrum-InputGroup--quiet_a0942f,.spectrum-Datepicker--range_a0942f.spectrum-InputGroup--quiet_a0942f .spectrum-FieldButton_a0942f{border-radius:0}.spectrum-Datepicker--range_a0942f.spectrum-Datepicker--datetimeRange_a0942f .spectrum-InputGroup-field_a0942f{width:calc(var(--spectrum-global-dimension-size-1600) - 2*var(--spectrum-global-dimension-size-150) + var(--spectrum-global-dimension-size-700) - var(--spectrum-global-dimension-static-font-size-100,14px)/2);min-width:calc(var(--spectrum-global-dimension-size-1600) - 2*var(--spectrum-global-dimension-size-150) + var(--spectrum-global-dimension-size-700) - var(--spectrum-global-dimension-static-font-size-100,14px)/2)}.spectrum-Datepicker--range_a0942f .spectrum-InputGroup-field_a0942f{width:calc(var(--spectrum-global-dimension-size-1600) - 2*var(--spectrum-global-dimension-size-150));min-width:calc(var(--spectrum-global-dimension-size-1600) - 2*var(--spectrum-global-dimension-size-150));-ms-flex:initial;flex:initial}[dir=ltr] .spectrum-Datepicker--range_a0942f .spectrum-Datepicker-startField_a0942f .spectrum-InputGroup-field_a0942f{border-right:0}[dir=rtl] .spectrum-Datepicker--range_a0942f .spectrum-Datepicker-startField_a0942f .spectrum-InputGroup-field_a0942f{border-left:0}[dir=ltr] .spectrum-Datepicker--range_a0942f .spectrum-Datepicker-startField_a0942f .spectrum-InputGroup-field_a0942f{padding-right:var(--spectrum-global-dimension-size-150)}[dir=rtl] .spectrum-Datepicker--range_a0942f .spectrum-Datepicker-startField_a0942f .spectrum-InputGroup-field_a0942f{padding-left:var(--spectrum-global-dimension-size-150)}.spectrum-Datepicker--range_a0942f .spectrum-Datepicker-startField_a0942f svg{display:none}[dir=ltr] .spectrum-Datepicker--range_a0942f .spectrum-Datepicker-endField_a0942f .spectrum-InputGroup-input_a0942f{border-left:0}[dir=rtl] .spectrum-Datepicker--range_a0942f .spectrum-Datepicker-endField_a0942f .spectrum-InputGroup-input_a0942f{border-right:0}[dir=ltr] .spectrum-Datepicker--range_a0942f .spectrum-Datepicker-endField_a0942f .spectrum-InputGroup-input_a0942f{padding-left:var(--spectrum-global-dimension-size-150)}[dir=rtl] .spectrum-Datepicker--range_a0942f .spectrum-Datepicker-endField_a0942f .spectrum-InputGroup-input_a0942f{padding-right:var(--spectrum-global-dimension-size-150)}.spectrum-Datepicker--range_a0942f .spectrum-Datepicker-endField_a0942f .spectrum-InputGroup-input_a0942f{border-radius:0;flex:1}.spectrum-Datepicker--range_a0942f .spectrum-Datepicker--rangeDash_a0942f{line-height:calc(var(--spectrum-textfield-height,var(--spectrum-alias-single-line-height)) - var(--spectrum-global-dimension-size-100));-ms-flex:initial;flex:initial;width:0;z-index:1;padding-top:0}.spectrum-Datepicker--range_a0942f .spectrum-Datepicker--rangeDash_a0942f:before{content:"–";margin:0 calc(-0.5*var(--spectrum-global-dimension-static-font-size-100,14px));text-align:center;vertical-align:middle;width:var(--spectrum-global-dimension-static-font-size-100,14px);display:inline-block;overflow:hidden}.spectrum-Datepicker--range_a0942f.is-focused_a0942f .spectrum-Datepicker-focusRing_a0942f{border-radius:var(--spectrum-global-dimension-size-50);pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.spectrum-Datepicker--range_a0942f.spectrum-InputGroup--quiet_a0942f.is-focused_a0942f .spectrum-Datepicker-focusRing_a0942f{border-radius:0;top:auto}[dir=ltr] .spectrum-Datepicker--range_a0942f.spectrum-InputGroup--quiet_a0942f .spectrum-Datepicker--rangeDash_a0942f:before{margin-left:calc(-0.5*var(--spectrum-global-dimension-static-font-size-100,14px))}[dir=rtl] .spectrum-Datepicker--range_a0942f.spectrum-InputGroup--quiet_a0942f .spectrum-Datepicker--rangeDash_a0942f:before{margin-right:calc(-0.5*var(--spectrum-global-dimension-static-font-size-100,14px))}.spectrum-InputGroup_a0942f.is-focused_a0942f:not(.spectrum-InputGroup--invalid_a0942f):not(.is-disabled_a0942f) .spectrum-InputGroup-input_a0942f,.spectrum-InputGroup_a0942f.is-focused_a0942f:not(.spectrum-InputGroup--invalid_a0942f):not(.is-disabled_a0942f) .spectrum-FieldButton_a0942f{border-color:var(--spectrum-textfield-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.spectrum-InputGroup_a0942f.is-hovered_a0942f:not(.spectrum-InputGroup--invalid_a0942f):not(.is-focused_a0942f):not(.is-disabled_a0942f) .spectrum-InputGroup-input_a0942f,.spectrum-InputGroup_a0942f.is-hovered_a0942f:not(.spectrum-InputGroup--invalid_a0942f):not(.is-focused_a0942f):not(.is-disabled_a0942f) .spectrum-FieldButton_a0942f{border-color:var(--spectrum-textfield-border-color-hover,var(--spectrum-alias-border-color-hover))}.spectrum-InputGroup_a0942f.is-focused_a0942f .spectrum-FieldButton_a0942f,.spectrum-InputGroup_a0942f.is-focused_a0942f .spectrum-InputGroup-input_a0942f{border-color:var(--spectrum-dropdown-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.spectrum-InputGroup_a0942f.is-focused_a0942f.spectrum-InputGroup--invalid_a0942f .spectrum-FieldButton_a0942f,.spectrum-InputGroup_a0942f.is-focused_a0942f.spectrum-InputGroup--invalid_a0942f .spectrum-InputGroup-input_a0942f{border-color:var(--spectrum-dropdown-border-color-error,var(--spectrum-global-color-red-500))}.spectrum-InputGroup_a0942f.focus-ring_a0942f:not(.spectrum-InputGroup--quiet_a0942f) .spectrum-FieldButton_a0942f{z-index:1}.spectrum-InputGroup_a0942f.focus-ring_a0942f:not(.spectrum-InputGroup--quiet_a0942f) .spectrum-FieldButton_a0942f,.spectrum-InputGroup_a0942f.focus-ring_a0942f:not(.spectrum-InputGroup--quiet_a0942f) .spectrum-InputGroup-input_a0942f{box-shadow:0 0 0 1px var(--spectrum-dropdown-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.spectrum-InputGroup_a0942f.focus-ring_a0942f:not(.spectrum-InputGroup--quiet_a0942f).spectrum-InputGroup--invalid_a0942f .spectrum-FieldButton_a0942f,.spectrum-InputGroup_a0942f.focus-ring_a0942f:not(.spectrum-InputGroup--quiet_a0942f).spectrum-InputGroup--invalid_a0942f .spectrum-InputGroup-input_a0942f{box-shadow:0 0 0 1px var(--spectrum-dropdown-border-color-error,var(--spectrum-global-color-red-500))}.spectrum-InputGroup--quiet_a0942f:not(.is-disabled_a0942f) .spectrum-FieldButton_a0942f:disabled,.spectrum-InputGroup--quiet_a0942f:not(.is-disabled_a0942f) .spectrum-FieldButton_a0942f:disabled.is-hovered_a0942f,.spectrum-InputGroup--quiet_a0942f .spectrum-FieldButton_a0942f,.spectrum-InputGroup--quiet_a0942f .spectrum-FieldButton_a0942f.is-hovered_a0942f,.spectrum-InputGroup--quiet_a0942f .spectrum-FieldButton_a0942f:focus,.spectrum-InputGroup--quiet_a0942f .spectrum-FieldButton_a0942f:active,.spectrum-InputGroup--quiet_a0942f .spectrum-FieldButton_a0942f.is-selected_a0942f,.spectrum-InputGroup--quiet_a0942f .spectrum-FieldButton_a0942f.spectrum-FieldButton--invalid_a0942f{border-color:var(--spectrum-textfield-quiet-border-color,var(--spectrum-alias-border-color))}.spectrum-InputGroup--quiet_a0942f .spectrum-FieldButton_a0942f:disabled,.spectrum-InputGroup--quiet_a0942f .spectrum-FieldButton_a0942f:disabled.is-hovered_a0942f{border-color:var(--spectrum-textfield-quiet-border-color-disabled,var(--spectrum-alias-border-color-mid))}.spectrum-InputGroup--quiet_a0942f.is-hovered_a0942f:not(.spectrum-InputGroup--invalid_a0942f):not(.is-focused_a0942f):not(.is-disabled_a0942f) .spectrum-FieldButton_a0942f{border-color:var(--spectrum-textfield-quiet-border-color-hover,var(--spectrum-alias-border-color-hover))}.spectrum-InputGroup--quiet_a0942f.spectrum-InputGroup_a0942f.spectrum-InputGroup--invalid_a0942f .spectrum-FieldButton_a0942f,.spectrum-InputGroup--quiet_a0942f.spectrum-InputGroup_a0942f.spectrum-InputGroup--invalid_a0942f .spectrum-InputGroup-input_a0942f{border-color:var(--spectrum-textfield-border-color-error,var(--spectrum-semantic-negative-color-default))}.spectrum-InputGroup--quiet_a0942f.spectrum-InputGroup_a0942f.is-focused_a0942f .spectrum-FieldButton_a0942f{border-color:var(--spectrum-textfield-quiet-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.spectrum-InputGroup--quiet_a0942f.spectrum-InputGroup_a0942f.is-focused_a0942f.spectrum-InputGroup--invalid_a0942f .spectrum-FieldButton_a0942f{border-color:var(--spectrum-textfield-border-color-error,var(--spectrum-semantic-negative-color-default))}.spectrum-InputGroup--quiet_a0942f.spectrum-InputGroup_a0942f.focus-ring_a0942f .spectrum-InputGroup-input_a0942f{box-shadow:0 1px 0 var(--spectrum-textfield-quiet-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.spectrum-InputGroup--quiet_a0942f.spectrum-InputGroup_a0942f.focus-ring_a0942f .spectrum-FieldButton_a0942f{box-shadow:0 1px 0 var(--spectrum-textfield-quiet-border-color-key-focus,var(--spectrum-alias-border-color-focus));border-color:var(--spectrum-textfield-quiet-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.spectrum-InputGroup--quiet_a0942f.spectrum-InputGroup_a0942f.focus-ring_a0942f.spectrum-InputGroup--invalid_a0942f .spectrum-InputGroup-input_a0942f,.spectrum-InputGroup--quiet_a0942f.spectrum-InputGroup_a0942f.focus-ring_a0942f.spectrum-InputGroup--invalid_a0942f .spectrum-FieldButton_a0942f{box-shadow:0 1px 0 var(--spectrum-textfield-border-color-error,var(--spectrum-semantic-negative-color-default))}.spectrum-Datepicker--range_a0942f.focus-ring_a0942f .spectrum-InputGroup-input_a0942f{box-shadow:none!important}.spectrum-Datepicker--range_a0942f.is-disabled_a0942f .spectrum-Datepicker--rangeDash_a0942f{color:var(--spectrum-textfield-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-Datepicker--range_a0942f.focus-ring_a0942f{box-shadow:0 0 0 1px var(--spectrum-dropdown-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.spectrum-Datepicker--range_a0942f.focus-ring_a0942f.spectrum-InputGroup--invalid_a0942f,.spectrum-Datepicker--range_a0942f.focus-ring_a0942f.spectrum-InputGroup--invalid_a0942f .spectrum-FieldButton_a0942f{box-shadow:0 0 0 1px var(--spectrum-dropdown-border-color-error,var(--spectrum-global-color-red-500))}.spectrum-Datepicker--range_a0942f.spectrum-InputGroup--invalid_a0942f .spectrum-InputGroup-input_a0942f{border-color:var(--spectrum-dropdown-border-color-error,var(--spectrum-global-color-red-500))!important}.spectrum-Datepicker--range_a0942f.spectrum-InputGroup--invalid_a0942f.focus-ring_a0942f .spectrum-FieldButton_a0942f{border-color:var(--spectrum-dropdown-border-color-error,var(--spectrum-global-color-red-500));box-shadow:0 0 0 1px var(--spectrum-dropdown-border-color-error,var(--spectrum-global-color-red-500))}.spectrum-Datepicker--range_a0942f.spectrum-InputGroup--invalid_a0942f .spectrum-FieldButton_a0942f{border-color:var(--spectrum-dropdown-border-color-error,var(--spectrum-global-color-red-500))}.spectrum-Datepicker--range_a0942f.spectrum-InputGroup--invalid_a0942f .spectrum-FieldButton_a0942f.spectrum-FieldButton--invalid_a0942f.focus-ring_a0942f{border-color:var(--spectrum-dropdown-border-color-error,var(--spectrum-global-color-red-500));box-shadow:0 0 0 1px var(--spectrum-dropdown-border-color-error,var(--spectrum-global-color-red-500))}.spectrum-Datepicker--range_a0942f.spectrum-InputGroup--quiet_a0942f.is-focused_a0942f{box-shadow:0 1px 0 0 var(--spectrum-dropdown-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.spectrum-Datepicker--range_a0942f.spectrum-InputGroup--quiet_a0942f.is-focused_a0942f.spectrum-InputGroup--invalid_a0942f .spectrum-FieldButton_a0942f{box-shadow:none;border-color:var(--spectrum-dropdown-border-color-error,var(--spectrum-global-color-red-500))}.spectrum-Datepicker--range_a0942f.spectrum-InputGroup--quiet_a0942f.is-focused_a0942f.spectrum-InputGroup--invalid_a0942f .spectrum-FieldButton_a0942f.spectrum-FieldButton--invalid_a0942f.focus-ring_a0942f{box-shadow:0 2px 0 0 var(--spectrum-dropdown-border-color-error,var(--spectrum-global-color-red-500))}.spectrum-Datepicker--range_a0942f.spectrum-InputGroup--quiet_a0942f.is-focused_a0942f.spectrum-InputGroup--invalid_a0942f.focus-ring_a0942f{box-shadow:0 0 0 1px var(--spectrum-dropdown-border-color-error,var(--spectrum-global-color-red-500))}.spectrum-Textfield-input_73bc77{font-family:adobe-clean-ux,adobe-clean,Source Sans Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Textfield-input_73bc77:lang(ar){font-family:adobe-arabic,myriad-arabic,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Textfield-input_73bc77:lang(he){font-family:adobe-hebrew,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Textfield-input_73bc77:lang(zh-Hans),.spectrum-Textfield-input_73bc77:lang(zh){font-family:adobe-clean-han-simplified-c,SimSun,Heiti SC Light,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Textfield-input_73bc77:lang(ko){font-family:adobe-clean-han-korean,Malgun Gothic,Apple Gothic,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Textfield-input_73bc77:lang(ja){font-family:adobe-clean-han-japanese,Yu Gothic,メイリオ,ヒラギノ角ゴ Pro W3,Hiragino Kaku Gothic Pro W3,Osaka,MSPゴシック,MS PGothic,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Textfield_73bc77{min-width:var(--spectrum-textfield-min-width,var(--spectrum-global-dimension-size-600));width:var(--spectrum-alias-single-line-width,var(--spectrum-global-dimension-size-2400));display:inline-flex;position:relative}.spectrum-Textfield_73bc77:not(.spectrum-Textfield--quiet_73bc77).spectrum-Textfield--multiline_73bc77 .spectrum-Textfield-input_73bc77:not(:disabled){resize:vertical}.spectrum-Textfield_73bc77.spectrum-Textfield--quiet_73bc77.spectrum-Textfield--multiline_73bc77 .spectrum-Textfield-input_73bc77{height:var(--spectrum-textfield-height,var(--spectrum-alias-single-line-height));min-height:var(--spectrum-textfield-height,var(--spectrum-alias-single-line-height));overflow-x:hidden}.spectrum-Textfield-input_73bc77{box-sizing:border-box;border:var(--spectrum-textfield-border-size,var(--spectrum-alias-border-size-thin))solid;border-radius:var(--spectrum-textfield-border-radius,var(--spectrum-alias-border-radius-regular));padding:3px var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150))5px calc(var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150)) - 1px);text-indent:0;width:100%;height:var(--spectrum-textfield-height,var(--spectrum-alias-single-line-height));vertical-align:top;font-size:var(--spectrum-textfield-text-size,var(--spectrum-alias-font-size-default));line-height:var(--spectrum-textfield-text-line-height,var(--spectrum-alias-body-text-line-height));text-overflow:ellipsis;transition:border-color var(--spectrum-global-animation-duration-100,130ms)ease-in-out,box-shadow var(--spectrum-global-animation-duration-100,130ms)ease-in-out;-webkit-appearance:none;-moz-appearance:textfield;outline:0;margin:0;overflow:visible}.spectrum-Textfield-input_73bc77::placeholder,.spectrum-Textfield-input_73bc77.is-placeholder_73bc77{font-weight:var(--spectrum-textfield-placeholder-text-font-weight,var(--spectrum-global-font-weight-regular));font-style:var(--spectrum-textfield-placeholder-text-font-style,var(--spectrum-global-font-style-italic));font-synthesis:none;transition:color var(--spectrum-global-animation-duration-100,130ms)ease-in-out;opacity:1}.spectrum-Textfield-input_73bc77::-moz-placeholder{font-weight:var(--spectrum-textfield-placeholder-text-font-weight,var(--spectrum-global-font-weight-regular));font-style:var(--spectrum-textfield-placeholder-text-font-style,var(--spectrum-global-font-style-italic));transition:color var(--spectrum-global-animation-duration-100,130ms)ease-in-out;opacity:1}.spectrum-Textfield-input_73bc77:lang(ja)::placeholder,.spectrum-Textfield-input_73bc77:lang(ja).is-placeholder_73bc77,.spectrum-Textfield-input_73bc77:lang(zh)::placeholder,.spectrum-Textfield-input_73bc77:lang(zh).is-placeholder_73bc77,.spectrum-Textfield-input_73bc77:lang(ko)::placeholder,.spectrum-Textfield-input_73bc77:lang(ko).is-placeholder_73bc77,.spectrum-Textfield-input_73bc77:lang(ar)::placeholder,.spectrum-Textfield-input_73bc77:lang(ar).is-placeholder_73bc77,.spectrum-Textfield-input_73bc77:lang(he)::placeholder,.spectrum-Textfield-input_73bc77:lang(he).is-placeholder_73bc77{font-style:normal}.spectrum-Textfield-input_73bc77:lang(ja)::-moz-placeholder,.spectrum-Textfield-input_73bc77:lang(zh)::-moz-placeholder,.spectrum-Textfield-input_73bc77:lang(ko)::-moz-placeholder,.spectrum-Textfield-input_73bc77:lang(ar)::-moz-placeholder,.spectrum-Textfield-input_73bc77:lang(he)::-moz-placeholder{font-style:normal}.spectrum-Textfield-input_73bc77.is-hovered_73bc77::placeholder{font-weight:var(--spectrum-textfield-placeholder-text-font-weight,var(--spectrum-global-font-weight-regular))}.spectrum-Textfield-input_73bc77:disabled{resize:none;opacity:1}.spectrum-Textfield-input_73bc77:disabled::placeholder,.spectrum-Textfield-input_73bc77:disabled.is-placeholder_73bc77{font-weight:var(--spectrum-textfield-placeholder-text-font-weight,var(--spectrum-global-font-weight-regular))}.spectrum-Textfield-input_73bc77::-ms-clear{width:0;height:0}.spectrum-Textfield-input_73bc77::-webkit-inner-spin-button,.spectrum-Textfield-input_73bc77::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.spectrum-Textfield-input_73bc77:-moz-ui-invalid{box-shadow:none}.spectrum-Textfield--multiline_73bc77 .spectrum-Textfield-input_73bc77{height:auto;min-height:var(--spectrum-global-dimension-size-700);padding:3px var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150))5px calc(var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150)) - 1px);overflow:auto}[dir=ltr] .spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-input_73bc77{padding-left:var(--spectrum-textfield-quiet-padding-x,0)}[dir=rtl] .spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-input_73bc77,[dir=ltr] .spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-input_73bc77{padding-right:var(--spectrum-textfield-quiet-padding-x,0)}[dir=rtl] .spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-input_73bc77{padding-left:var(--spectrum-textfield-quiet-padding-x,0)}.spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-input_73bc77{border-width:0 0 var(--spectrum-textfield-quiet-border-size,var(--spectrum-alias-border-size-thin))0;resize:none;border-radius:0;overflow-y:hidden}[dir=ltr] .spectrum-Textfield--valid_73bc77 .spectrum-Textfield-input_73bc77{padding-right:calc(var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150)) + var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-textfield-icon-margin-left,var(--spectrum-global-dimension-size-150)))}[dir=rtl] .spectrum-Textfield--valid_73bc77 .spectrum-Textfield-input_73bc77{padding-left:calc(var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150)) + var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-textfield-icon-margin-left,var(--spectrum-global-dimension-size-150)))}[dir=ltr] .spectrum-Textfield--invalid_73bc77 .spectrum-Textfield-input_73bc77{padding-right:calc(var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150)) + var(--spectrum-icon-alert-medium-width,var(--spectrum-global-dimension-size-225)) + var(--spectrum-textfield-icon-margin-left,var(--spectrum-global-dimension-size-150)))}[dir=rtl] .spectrum-Textfield--invalid_73bc77 .spectrum-Textfield-input_73bc77{padding-left:calc(var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150)) + var(--spectrum-icon-alert-medium-width,var(--spectrum-global-dimension-size-225)) + var(--spectrum-textfield-icon-margin-left,var(--spectrum-global-dimension-size-150)))}[dir=ltr] .spectrum-Textfield--loadable_73bc77 .spectrum-Textfield-input_73bc77{padding-right:calc(var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150)) + var(--spectrum-icon-alert-medium-width,var(--spectrum-global-dimension-size-225)) + var(--spectrum-textfield-icon-margin-left,var(--spectrum-global-dimension-size-150)))}[dir=rtl] .spectrum-Textfield--loadable_73bc77 .spectrum-Textfield-input_73bc77{padding-left:calc(var(--spectrum-textfield-padding-x,var(--spectrum-global-dimension-size-150)) + var(--spectrum-icon-alert-medium-width,var(--spectrum-global-dimension-size-225)) + var(--spectrum-textfield-icon-margin-left,var(--spectrum-global-dimension-size-150)))}[dir=ltr] .spectrum-Textfield-validationIcon_73bc77{padding-right:calc(var(--spectrum-global-dimension-size-150)/2)}[dir=rtl] .spectrum-Textfield-validationIcon_73bc77{padding-left:calc(var(--spectrum-global-dimension-size-150)/2)}.spectrum-Textfield-validationIcon_73bc77{pointer-events:all;transition:color var(--spectrum-global-animation-duration-100,130ms)ease-in-out;position:absolute}[dir=ltr] .spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-validationIcon_73bc77{padding-right:0}[dir=rtl] .spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-validationIcon_73bc77{padding-left:0}[dir=ltr] .spectrum-Textfield--invalid_73bc77 .spectrum-Textfield-validationIcon_73bc77{right:calc(var(--spectrum-textfield-icon-frame)/2 - var(--spectrum-icon-alert-medium-width,var(--spectrum-global-dimension-size-225))/2)}[dir=rtl] .spectrum-Textfield--invalid_73bc77 .spectrum-Textfield-validationIcon_73bc77{left:calc(var(--spectrum-textfield-icon-frame)/2 - var(--spectrum-icon-alert-medium-width,var(--spectrum-global-dimension-size-225))/2)}.spectrum-Textfield--invalid_73bc77 .spectrum-Textfield-validationIcon_73bc77{width:var(--spectrum-icon-alert-medium-width,var(--spectrum-global-dimension-size-225));height:var(--spectrum-icon-alert-medium-height,var(--spectrum-global-dimension-size-225));top:calc(var(--spectrum-textfield-icon-frame)/2 - var(--spectrum-icon-alert-medium-height,var(--spectrum-global-dimension-size-225))/2)}[dir=ltr] .spectrum-Textfield--valid_73bc77 .spectrum-Textfield-validationIcon_73bc77{right:var(--spectrum-global-dimension-size-150)}[dir=rtl] .spectrum-Textfield--valid_73bc77 .spectrum-Textfield-validationIcon_73bc77{left:var(--spectrum-global-dimension-size-150)}.spectrum-Textfield--valid_73bc77 .spectrum-Textfield-validationIcon_73bc77{width:var(--spectrum-icon-checkmark-medium-width);height:var(--spectrum-icon-checkmark-medium-height);top:calc(var(--spectrum-textfield-icon-frame)/2 - var(--spectrum-icon-checkmark-medium-height)/2)}[dir=ltr] .spectrum-Textfield-icon_73bc77{left:var(--spectrum-global-dimension-size-150)}[dir=rtl] .spectrum-Textfield-icon_73bc77{right:var(--spectrum-global-dimension-size-150)}.spectrum-Textfield-icon_73bc77{height:var(--spectrum-icon-info-medium-height,var(--spectrum-global-dimension-size-225));width:var(--spectrum-icon-info-medium-width,var(--spectrum-global-dimension-size-225));top:var(--spectrum-global-dimension-size-85);transition:fill var(--spectrum-global-animation-duration-100,130ms)ease-in-out;display:block;position:absolute}[dir=ltr] .spectrum-Textfield-inputIcon_73bc77{padding-left:calc(var(--spectrum-global-dimension-size-150) + var(--spectrum-global-dimension-size-225) + var(--spectrum-global-dimension-size-65))}[dir=rtl] .spectrum-Textfield-inputIcon_73bc77{padding-right:calc(var(--spectrum-global-dimension-size-150) + var(--spectrum-global-dimension-size-225) + var(--spectrum-global-dimension-size-65))}[dir=ltr] .spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-inputIcon_73bc77{padding-left:calc(var(--spectrum-global-dimension-size-100) + var(--spectrum-icon-info-medium-width,var(--spectrum-global-dimension-size-225)))}[dir=rtl] .spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-inputIcon_73bc77{padding-right:calc(var(--spectrum-global-dimension-size-100) + var(--spectrum-icon-info-medium-width,var(--spectrum-global-dimension-size-225)))}[dir=ltr] .spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-inputIcon_73bc77~.spectrum-Textfield-icon_73bc77{left:0}[dir=rtl] .spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-inputIcon_73bc77~.spectrum-Textfield-icon_73bc77{right:0}.spectrum-Textfield-inputIcon_73bc77.spectrum-Textfield--multiline_73bc77{height:var(--spectrum-textfield-height,var(--spectrum-alias-single-line-height));min-height:var(--spectrum-textfield-height,var(--spectrum-alias-single-line-height))}[dir=ltr] .spectrum-Textfield--loadable_73bc77 .spectrum-Textfield-circleLoader_73bc77{right:calc(var(--spectrum-textfield-icon-frame)/2 - var(--spectrum-icon-alert-medium-width,var(--spectrum-global-dimension-size-225))/2 + var(--spectrum-global-dimension-size-150)/2)}[dir=rtl] .spectrum-Textfield--loadable_73bc77 .spectrum-Textfield-circleLoader_73bc77{left:calc(var(--spectrum-textfield-icon-frame)/2 - var(--spectrum-icon-alert-medium-width,var(--spectrum-global-dimension-size-225))/2 + var(--spectrum-global-dimension-size-150)/2)}.spectrum-Textfield--loadable_73bc77 .spectrum-Textfield-circleLoader_73bc77{top:calc(var(--spectrum-textfield-icon-frame)/2 - var(--spectrum-loader-circle-small-width,var(--spectrum-global-dimension-static-size-200))/2);position:absolute}[dir=ltr] .spectrum-Textfield--quiet_73bc77.spectrum-Textfield--loadable_73bc77 .spectrum-Textfield-circleLoader_73bc77{padding-right:0}[dir=rtl] .spectrum-Textfield--quiet_73bc77.spectrum-Textfield--loadable_73bc77 .spectrum-Textfield-circleLoader_73bc77{padding-left:0}.spectrum-Textfield-input_73bc77{background-color:var(--spectrum-textfield-background-color,var(--spectrum-global-color-gray-50));border-color:var(--spectrum-textfield-border-color,var(--spectrum-alias-border-color));color:var(--spectrum-textfield-text-color,var(--spectrum-alias-text-color))}.spectrum-Textfield-input_73bc77::placeholder,.spectrum-Textfield-input_73bc77.is-placeholder_73bc77{color:var(--spectrum-textfield-placeholder-text-color,var(--spectrum-alias-placeholder-text-color))}.spectrum-Textfield-input_73bc77.is-hovered_73bc77{border-color:var(--spectrum-textfield-border-color-hover,var(--spectrum-alias-border-color-hover));box-shadow:none}.spectrum-Textfield-input_73bc77.is-hovered_73bc77::placeholder,.spectrum-Textfield-input_73bc77.is-hovered_73bc77.is-placeholder_73bc77{color:var(--spectrum-textfield-placeholder-text-color-hover,var(--spectrum-alias-placeholder-text-color-hover))}.spectrum-Textfield-input_73bc77.is-hovered_73bc77~.spectrum-Textfield-icon_73bc77{fill:var(--spectrum-textfield-icon-color-hover,var(--spectrum-global-color-gray-900))}.spectrum-Textfield-input_73bc77:active{background-color:var(--spectrum-textfield-background-color-down,var(--spectrum-global-color-gray-50));border-color:var(--spectrum-textfield-border-color-down,var(--spectrum-alias-border-color-mouse-focus));color:var(--spectrum-textfield-text-color-down,var(--spectrum-alias-text-color-down))}.spectrum-Textfield-input_73bc77:active::placeholder,.spectrum-Textfield-input_73bc77:active.is-placeholder_73bc77{color:var(--spectrum-textfield-placeholder-text-color-down,var(--spectrum-alias-placeholder-text-color-down))}.spectrum-Textfield-input_73bc77:active~.spectrum-Textfield-icon_73bc77{fill:var(--spectrum-textfield-icon-color-down,var(--spectrum-alias-icon-color-down))}.spectrum-Textfield-input_73bc77:focus,.spectrum-Textfield-input_73bc77.is-focused_73bc77{border-color:var(--spectrum-textfield-border-color-down,var(--spectrum-alias-border-color-mouse-focus))}.spectrum-Textfield-input_73bc77.focus-ring_73bc77:not(:active){border-color:var(--spectrum-textfield-border-color-key-focus,var(--spectrum-alias-border-color-focus));box-shadow:0 0 0 1px var(--spectrum-textfield-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.spectrum-Textfield-input_73bc77[disabled],.spectrum-Textfield-input_73bc77.is-disabled_73bc77{background-color:var(--spectrum-textfield-background-color-disabled,var(--spectrum-global-color-gray-200));border-color:var(--spectrum-textfield-border-color-disabled,var(--spectrum-alias-border-color-transparent));color:var(--spectrum-textfield-text-color-disabled,var(--spectrum-alias-text-color-disabled));-webkit-text-fill-color:var(--spectrum-textfield-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-Textfield-input_73bc77[disabled]::placeholder,.spectrum-Textfield-input_73bc77[disabled].is-placeholder_73bc77,.spectrum-Textfield-input_73bc77.is-disabled_73bc77::placeholder,.spectrum-Textfield-input_73bc77.is-disabled_73bc77.is-placeholder_73bc77{color:var(--spectrum-textfield-placeholder-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-Textfield-input_73bc77[disabled]~.spectrum-Textfield-icon_73bc77,.spectrum-Textfield-input_73bc77.is-disabled_73bc77~.spectrum-Textfield-icon_73bc77{fill:var(--spectrum-textfield-icon-color-disabled,var(--spectrum-global-color-gray-500))}.spectrum-Textfield-input_73bc77.spectrum-Textfield--invalid_73bc77{border-color:var(--spectrum-textfield-border-color-error,var(--spectrum-semantic-negative-color-default))}.spectrum-Textfield-input_73bc77.spectrum-Textfield--invalid_73bc77.is-hovered_73bc77{border-color:var(--spectrum-textfield-border-color-error-hover,var(--spectrum-semantic-negative-color-state-hover))}.spectrum-Textfield-input_73bc77.spectrum-Textfield--invalid_73bc77:active{border-color:var(--spectrum-textfield-border-color-error-down,var(--spectrum-semantic-negative-color-state-down))}.spectrum-Textfield-input_73bc77.spectrum-Textfield--invalid_73bc77.focus-ring_73bc77:not(:active){border-color:var(--spectrum-textfield-border-color-error,var(--spectrum-semantic-negative-color-default));box-shadow:0 0 0 1px var(--spectrum-textfield-border-color-error,var(--spectrum-semantic-negative-color-default))}.spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-input_73bc77{background-color:var(--spectrum-textfield-quiet-background-color,var(--spectrum-alias-background-color-transparent));border-color:var(--spectrum-textfield-quiet-border-color,var(--spectrum-alias-border-color))}.spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-input_73bc77.is-hovered_73bc77{border-color:var(--spectrum-textfield-quiet-border-color-hover,var(--spectrum-alias-border-color-hover))}.spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-input_73bc77:active{border-color:var(--spectrum-textfield-quiet-border-color-down,var(--spectrum-alias-border-color-mouse-focus))}.spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-input_73bc77:focus,.spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-input_73bc77.is-focused_73bc77{border-color:var(--spectrum-textfield-quiet-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-input_73bc77.focus-ring_73bc77:not(:active){border-color:var(--spectrum-textfield-border-color-key-focus,var(--spectrum-alias-border-color-focus));box-shadow:0 1px 0 var(--spectrum-textfield-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-input_73bc77:disabled,.spectrum-Textfield--quiet_73bc77 .spectrum-Textfield-input_73bc77.is-disabled_73bc77{background-color:var(--spectrum-textfield-quiet-background-color-disabled,var(--spectrum-alias-background-color-transparent));border-color:var(--spectrum-textfield-quiet-border-color-disabled,var(--spectrum-alias-border-color-mid))}.spectrum-Textfield_73bc77.spectrum-Textfield--invalid_73bc77 .spectrum-Textfield-input_73bc77{border-color:var(--spectrum-textfield-border-color-error,var(--spectrum-semantic-negative-color-default))}.spectrum-Textfield_73bc77.spectrum-Textfield--invalid_73bc77 .spectrum-Textfield-input_73bc77.focus-ring_73bc77:not(:active){border-color:var(--spectrum-textfield-border-color-error,var(--spectrum-semantic-negative-color-default));box-shadow:0 0 0 1px var(--spectrum-textfield-border-color-error,var(--spectrum-semantic-negative-color-default))}.spectrum-Textfield--quiet_73bc77.spectrum-Textfield--invalid_73bc77 .spectrum-Textfield-input_73bc77.focus-ring_73bc77:not(:active){box-shadow:0 1px 0 var(--spectrum-textfield-border-color-error,var(--spectrum-semantic-negative-color-default))}.spectrum-Textfield-icon_73bc77{fill:var(--spectrum-textfield-icon-color,var(--spectrum-alias-icon-color))}.spectrum-Textfield--valid_73bc77 .spectrum-Textfield-validationIcon_73bc77{fill:var(--spectrum-alert-success-icon-color,var(--spectrum-semantic-positive-color-icon))}.spectrum-Textfield--invalid_73bc77 .spectrum-Textfield-validationIcon_73bc77{fill:var(--spectrum-alert-error-icon-color,var(--spectrum-semantic-negative-color-icon))}