@artsy/palette 43.3.0 → 43.3.1-canary.1463.32455.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,6 +20,7 @@ var _VisuallyHidden = require("../VisuallyHidden");
20
20
  var _AutocompleteInputOption = require("./AutocompleteInputOption");
21
21
  var _AutocompleteInputOptionLabel = require("./AutocompleteInputOptionLabel");
22
22
  var _themeGet = require("@styled-system/theme-get");
23
+ var _useMouseActivity2 = require("../../utils/useMouseActivity");
23
24
  var _excluded = ["clamp", "defaultValue", "dropdownMaxHeight", "flip", "footer", "forwardRef", "header", "height", "id", "loading", "onChange", "onClear", "onClose", "onKeyDown", "onSelect", "onSubmit", "options", "renderOption"];
24
25
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -202,17 +203,8 @@ var AutocompleteInput = exports.AutocompleteInput = function AutocompleteInput(_
202
203
  // Records the latest mouse movement and, inside the `handleMouseEnter` callback,
203
204
  // only treat the event as genuine if the mouse has moved very recently.
204
205
  // Otherwise, the event is presumed to have been triggered by scrolling and is ignored.
205
- var lastMouseMoveTimestamp = (0, _react.useRef)(0);
206
- (0, _react.useEffect)(function () {
207
- if (!isDropdownVisible) return;
208
- var handleMouseMove = function handleMouseMove() {
209
- lastMouseMoveTimestamp.current = performance.now();
210
- };
211
- window.addEventListener("mousemove", handleMouseMove);
212
- return function () {
213
- window.removeEventListener("mousemove", handleMouseMove);
214
- };
215
- }, [isDropdownVisible]);
206
+ var _useMouseActivity = (0, _useMouseActivity2.useMouseActivity)(),
207
+ lastMouseMoveTimestamp = _useMouseActivity.lastMouseMoveTimestamp;
216
208
  var handleMouseEnter = function handleMouseEnter(i) {
217
209
  return function () {
218
210
  var now = performance.now();
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteInput.js","names":["_composeReactRefs","_interopRequireDefault","require","_react","_interopRequireWildcard","_styledComponents","_useKeyboardListNavigation","_Spinner","_SearchIcon","_CloseIcon","_utils","_useWidthOf2","_Box","_Clickable","_LabeledInput","_VisuallyHidden","_AutocompleteInputOption","_AutocompleteInputOptionLabel","_themeGet","_excluded","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","_extends","assign","bind","target","i","arguments","length","source","apply","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","toString","slice","name","Array","from","test","len","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","return","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","ownKeys","object","enumerableOnly","symbols","filter","sym","enumerable","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","reducer","state","action","type","open","query","payload","AutocompleteInput","exports","_ref","_staged$text","_ref$clamp","clamp","_ref$defaultValue","defaultValue","_ref$dropdownMaxHeigh","dropdownMaxHeight","_ref$flip","flip","footer","forwardedRef","forwardRef","header","height","id","loading","onChange","onClear","onClose","onKeyDown","onSelect","onSubmit","options","_ref$renderOption","renderOption","option","createElement","AutocompleteInputOptionLabel","rest","inputRef","useRef","containerRef","headerRef","footerRef","_splitBoxProps","splitBoxProps","_splitBoxProps2","boxProps","inputProps","_useReducer","useReducer","_useReducer2","dispatch","optionsWithRefs","useMemo","map","ref","createRef","resetUI","setTimeout","_inputRef$current","current","focus","reset","handleSelect","index","_inputRef$current2","text","_useKeyboardListNavig","useKeyboardListNavigation","list","waitForInteractive","onEnter","_ref2","element","event","preventDefault","stopPropagation","isDropdownVisible","useEffect","_usePosition","usePosition","active","offset","position","anchorRef","tooltipRef","_useWidthOf","useWidthOf","width","handleFocus","handleMouseDown","handleClick","lastMouseMoveTimestamp","handleMouseMove","performance","now","window","addEventListener","removeEventListener","handleMouseEnter","cursor","interactive","handleChange","currentTarget","handleClearOrSubmit","_inputRef$current3","handleClose","useCallback","ignoreFocusChangeRef","ignoreFocusChange","onMouseDown","onMouseUp","_option$ref","_option$ref$current","handleFocusChange","focused","_useContainsFocus","useContainsFocus","containsFocusRef","useClickOutside","onClickOutside","when","handleInputKeydown","_inputRef$current4","blur","handleContainerKeydown","_inputRef$current5","_inputRef$current6","staged","Box","composeRefs","LabeledInput","role","concat","label","Spinner","size","Clickable","onClick","display","alignItems","fill","onFocus","autoComplete","AutocompleteInputDropdown","AutocompleteInputOptions","maxHeight","_ref3","AutocompleteInputOption","onMouseEnter","tabIndex","VisuallyHidden","displayName","styled","withConfig","componentId","themeGet"],"sources":["../../../src/elements/AutocompleteInput/AutocompleteInput.tsx"],"sourcesContent":["import composeRefs from \"@seznam/compose-react-refs\"\nimport React, {\n createRef,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from \"react\"\nimport styled from \"styled-components\"\nimport { useKeyboardListNavigation } from \"use-keyboard-list-navigation\"\nimport { Spinner } from \"../Spinner\"\nimport SearchIcon from \"@artsy/icons/SearchIcon\"\nimport CloseIcon from \"@artsy/icons/CloseIcon\"\nimport { usePosition, useContainsFocus, useClickOutside } from \"../../utils\"\nimport { useWidthOf } from \"../../utils/useWidthOf\"\nimport { Box, splitBoxProps } from \"../Box\"\nimport { Clickable } from \"../Clickable\"\nimport { InputProps } from \"../Input\"\nimport { LabeledInput } from \"../LabeledInput\"\nimport { VisuallyHidden } from \"../VisuallyHidden\"\nimport { AutocompleteInputOption } from \"./AutocompleteInputOption\"\nimport { AutocompleteInputOptionLabel } from \"./AutocompleteInputOptionLabel\"\nimport { ResponsiveValue } from \"styled-system\"\nimport { themeGet } from \"@styled-system/theme-get\"\n\nexport interface AutocompleteFooterActions {\n /** Call to close dropdown */\n onClose(): void\n}\n\n/** Base option type — can be expanded */\nexport interface AutocompleteInputOptionType {\n text: string\n value: string\n}\n\ninterface State {\n open: boolean\n query: string\n}\n\ntype Action =\n | { type: \"OPEN\" }\n | { type: \"CLOSE\" }\n | { type: \"CLEAR\" }\n | { type: \"CHANGE\"; payload: { query: string } }\n | { type: \"SELECT\"; payload: { query: string } }\n\nconst reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"OPEN\":\n return { ...state, open: true }\n case \"CLOSE\":\n return { ...state, open: false }\n case \"CLEAR\":\n return { ...state, query: \"\" }\n case \"CHANGE\":\n return { ...state, query: action.payload.query, open: true }\n case \"SELECT\":\n return { ...state, query: action.payload.query, open: false }\n }\n}\n\nexport interface AutocompleteInputProps<T extends AutocompleteInputOptionType>\n extends Omit<InputProps, \"onSelect\" | \"onSubmit\"> {\n /** Optionally enable clamping (default: `false`) */\n clamp?: boolean\n defaultValue?: string\n dropdownMaxHeight?: ResponsiveValue<string | number>\n loading?: boolean\n header?: React.ReactNode\n /** Optionally disable flipping (default: `true`) */\n flip?: boolean\n footer?:\n | React.ReactNode\n | ((dropdownActions: AutocompleteFooterActions) => React.ReactNode)\n /** Ref to the input; workaround generics */\n forwardRef?: React.Ref<HTMLInputElement>\n /** on <enter> when no option is selected */\n onSubmit?(query: string): void\n /** on <click> or <enter> when an option is selected */\n onSelect?(option: T, index: number): void\n /** on <click> of the 'x' (clear) button */\n onClear?(): void\n /** Callback that runs when options are hidden */\n onClose?(): void\n options: T[]\n renderOption?(\n option: T,\n i: number\n ): React.ReactElement<any, string | React.JSXElementConstructor<any>>\n}\n\n/** AutocompleteInput */\nexport const AutocompleteInput = <T extends AutocompleteInputOptionType>({\n clamp = false,\n defaultValue = \"\",\n dropdownMaxHeight = 308, // 308 = roughly 5.5 options\n flip = true,\n footer,\n forwardRef: forwardedRef,\n header,\n height,\n id,\n loading,\n onChange,\n onClear,\n onClose,\n onKeyDown,\n onSelect,\n onSubmit,\n options,\n renderOption = (option) => <AutocompleteInputOptionLabel {...option} />,\n ...rest\n}: AutocompleteInputProps<T>) => {\n const inputRef = useRef<HTMLInputElement | null>(null)\n const containerRef = useRef<HTMLDivElement | null>(null)\n const headerRef = useRef<HTMLDivElement | null>(null)\n const footerRef = useRef<HTMLDivElement | null>(null)\n\n const [boxProps, inputProps] = splitBoxProps(rest)\n\n const [state, dispatch] = useReducer(reducer, {\n open: false,\n query: defaultValue,\n })\n\n const optionsWithRefs = useMemo(() => {\n return options.map((option) => ({\n option,\n ref: createRef<HTMLButtonElement>(),\n }))\n }, [options])\n\n const resetUI = () => {\n setTimeout(() => {\n inputRef.current?.focus()\n reset()\n dispatch({ type: \"CLOSE\" })\n }, 100)\n }\n\n const handleSelect = (option: T, index: number) => {\n dispatch({ type: \"SELECT\", payload: { query: option.text } })\n inputRef.current?.focus()\n onSelect?.(option, index)\n }\n\n const { index, reset, set } = useKeyboardListNavigation({\n ref: containerRef,\n list: options,\n waitForInteractive: true,\n onEnter: ({ element: option, index: i, event }) => {\n event.preventDefault()\n event.stopPropagation()\n handleSelect(option, i)\n resetUI()\n },\n })\n\n const isDropdownVisible = state.open && options.length > 0\n\n // Reset keyboard navigation when options change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(reset, [options])\n\n // Reset keyboard navigation when query is empty\n useEffect(() => {\n if (state.query === \"\") reset()\n }, [reset, state.query])\n\n const { anchorRef, tooltipRef } = usePosition({\n active: isDropdownVisible,\n clamp,\n flip,\n key: options.length,\n offset: 10,\n position: \"bottom\",\n })\n\n const { width } = useWidthOf({ ref: anchorRef })\n\n const handleFocus = () => {\n reset()\n dispatch({ type: \"OPEN\" })\n }\n\n const handleMouseDown = (option: T, i: number) => () => {\n handleSelect(option, i)\n resetUI()\n }\n\n const handleClick = () => {\n dispatch({ type: \"OPEN\" })\n }\n\n // Records the latest mouse movement and, inside the `handleMouseEnter` callback,\n // only treat the event as genuine if the mouse has moved very recently.\n // Otherwise, the event is presumed to have been triggered by scrolling and is ignored.\n const lastMouseMoveTimestamp = useRef<number>(0)\n\n useEffect(() => {\n if (!isDropdownVisible) return\n\n const handleMouseMove = () => {\n lastMouseMoveTimestamp.current = performance.now()\n }\n\n window.addEventListener(\"mousemove\", handleMouseMove)\n\n return () => {\n window.removeEventListener(\"mousemove\", handleMouseMove)\n }\n }, [isDropdownVisible])\n\n const handleMouseEnter = (i: number) => () => {\n const now = performance.now()\n\n // 50ms mouse move window\n if (now - lastMouseMoveTimestamp.current < 50) {\n set({ cursor: i, interactive: true })\n }\n }\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const {\n currentTarget: { value },\n } = event\n\n dispatch({ type: \"CHANGE\", payload: { query: value } })\n onChange?.(event)\n }\n\n const handleClearOrSubmit = () => {\n if (state.query === \"\") {\n onSubmit?.(state.query)\n return\n }\n\n dispatch({ type: \"CLEAR\" })\n inputRef.current?.focus()\n onClear?.()\n }\n\n const handleClose = useCallback(() => {\n dispatch({ type: \"CLOSE\" })\n reset()\n onClose?.()\n }, [onClose, reset])\n\n const ignoreFocusChangeRef = useRef<boolean>(false)\n const ignoreFocusChange = {\n onMouseDown: () => (ignoreFocusChangeRef.current = true),\n onMouseUp: () => (ignoreFocusChangeRef.current = false),\n }\n\n // Moves focus to different options when keyboard navigating using up/down\n useEffect(() => {\n const option = optionsWithRefs[index]\n option?.ref?.current?.focus()\n }, [index, optionsWithRefs])\n\n const handleFocusChange = useCallback(\n (focused: boolean) => {\n if (ignoreFocusChangeRef.current || focused || !isDropdownVisible) return\n\n handleClose()\n },\n\n [isDropdownVisible, handleClose]\n )\n\n // Handle closing the dropdown when clicking outside of the input\n // or when focus leaves the input completely\n const { ref: containsFocusRef } = useContainsFocus({\n onChange: handleFocusChange,\n })\n\n useClickOutside({\n ref: containsFocusRef,\n onClickOutside: handleClose,\n when: isDropdownVisible,\n type: \"click\",\n })\n\n const handleInputKeydown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n switch (event.key) {\n // Handle <Enter> when nothing is selected\n case \"Enter\":\n if (state.query !== \"\" && index === -1) {\n onSubmit?.(state.query)\n resetUI()\n }\n return\n\n // <Esc> to close dropdown\n case \"Escape\":\n event.preventDefault()\n event.stopPropagation()\n\n dispatch({ type: \"CLOSE\" })\n inputRef.current?.blur()\n\n return\n\n default:\n break\n }\n\n onKeyDown?.(event)\n }\n\n // Moves focus back to input when typing\n const handleContainerKeydown = (\n event: React.KeyboardEvent<HTMLDivElement>\n ) => {\n switch (event.key) {\n case \"Alt\":\n case \"ArrowDown\":\n case \"ArrowUp\":\n case \"Control\":\n case \"Enter\":\n case \"Meta\":\n case \"Shift\":\n case \"Tab\":\n // Ignore\n return\n\n case \"Escape\":\n event.preventDefault()\n event.stopPropagation()\n\n dispatch({ type: \"CLOSE\" })\n inputRef.current?.blur()\n reset()\n\n return\n\n default:\n inputRef.current?.focus()\n }\n }\n\n // Option that is being hovered or keyed into\n const staged = options[index]\n\n return (\n <Box\n ref={composeRefs(containerRef, containsFocusRef) as any}\n onKeyDown={handleContainerKeydown}\n {...boxProps}\n >\n <LabeledInput\n ref={composeRefs(inputRef, anchorRef, forwardedRef) as any}\n role=\"combobox\"\n aria-expanded={isDropdownVisible}\n aria-autocomplete=\"list\"\n {...(id ? { id, \"aria-describedby\": `${id}__assistiveHint` } : {})}\n label={\n loading ? (\n <Box width={18}>\n <Spinner size=\"small\" />\n </Box>\n ) : state.query ? (\n <Clickable\n onClick={handleClearOrSubmit}\n height=\"100%\"\n display=\"flex\"\n alignItems=\"center\"\n aria-label=\"Clear input\"\n >\n <CloseIcon fill=\"mono60\" aria-hidden />\n </Clickable>\n ) : (\n <SearchIcon fill=\"mono60\" aria-hidden />\n )\n }\n value={staged?.text ?? state.query}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleInputKeydown}\n onClick={handleClick}\n autoComplete=\"off\"\n height={height}\n {...inputProps}\n />\n\n {isDropdownVisible && (\n <AutocompleteInputDropdown\n ref={tooltipRef as any}\n role=\"listbox\"\n width={width}\n >\n <div ref={headerRef} {...ignoreFocusChange}>\n {header}\n </div>\n\n <AutocompleteInputOptions maxHeight={dropdownMaxHeight}>\n {optionsWithRefs.map(({ option, ref }, i) => {\n return (\n <AutocompleteInputOption\n key={i}\n ref={ref}\n role=\"option\"\n aria-selected={i === index}\n aria-posinset={i + 1}\n aria-setsize={options.length}\n onMouseDown={handleMouseDown(option, i)}\n onMouseEnter={handleMouseEnter(i)}\n tabIndex={-1}\n >\n {renderOption(option, i)}\n </AutocompleteInputOption>\n )\n })}\n </AutocompleteInputOptions>\n\n <div ref={footerRef} {...ignoreFocusChange}>\n {typeof footer === \"function\"\n ? footer({ onClose: handleClose })\n : footer}\n </div>\n </AutocompleteInputDropdown>\n )}\n\n <VisuallyHidden {...(id ? { id: `${id}__assistiveHint` } : {})}>\n When autocomplete results are available use up and down arrows to review\n and enter to select. Touch device users, explore by touch or with swipe\n gestures.\n </VisuallyHidden>\n\n {isDropdownVisible && (\n <VisuallyHidden role=\"status\" aria-atomic=\"true\" aria-live=\"polite\">\n {options.length === 1\n ? `1 result is available`\n : `${options.length} results are available`}\n </VisuallyHidden>\n )}\n </Box>\n )\n}\n\nconst AutocompleteInputDropdown = styled(Box)`\n box-shadow: ${themeGet(\"effects.dropShadow\")};\n z-index: 1;\n`\n\nconst AutocompleteInputOptions = styled(Box)`\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n`\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AAQA,IAAAG,iBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,0BAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,UAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,YAAA,GAAAT,OAAA;AACA,IAAAU,IAAA,GAAAV,OAAA;AACA,IAAAW,UAAA,GAAAX,OAAA;AAEA,IAAAY,aAAA,GAAAZ,OAAA;AACA,IAAAa,eAAA,GAAAb,OAAA;AACA,IAAAc,wBAAA,GAAAd,OAAA;AACA,IAAAe,6BAAA,GAAAf,OAAA;AAEA,IAAAgB,SAAA,GAAAhB,OAAA;AAAmD,IAAAiB,SAAA;AAAA,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAjB,wBAAAqB,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,4BAAAG,OAAA,EAAAH,GAAA,UAAAI,KAAA,GAAAT,wBAAA,CAAAC,WAAA,OAAAQ,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAL,GAAA,YAAAI,KAAA,CAAAE,GAAA,CAAAN,GAAA,SAAAO,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAZ,GAAA,QAAAY,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,GAAA,EAAAY,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,GAAA,EAAAY,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAZ,GAAA,CAAAY,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAH,GAAA,MAAAI,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAjB,GAAA,EAAAO,MAAA,YAAAA,MAAA;AAAA,SAAA/B,uBAAAwB,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAG,OAAA,EAAAH,GAAA;AAAA,SAAAE,QAAAF,GAAA,sCAAAE,OAAA,wBAAAgB,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAnB,GAAA,kBAAAA,GAAA,gBAAAA,GAAA,WAAAA,GAAA,yBAAAkB,MAAA,IAAAlB,GAAA,CAAAoB,WAAA,KAAAF,MAAA,IAAAlB,GAAA,KAAAkB,MAAA,CAAAL,SAAA,qBAAAb,GAAA,KAAAE,OAAA,CAAAF,GAAA;AAAA,SAAAqB,SAAA,IAAAA,QAAA,GAAAZ,MAAA,CAAAa,MAAA,GAAAb,MAAA,CAAAa,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAb,GAAA,IAAAgB,MAAA,QAAAnB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAa,MAAA,EAAAhB,GAAA,KAAAY,MAAA,CAAAZ,GAAA,IAAAgB,MAAA,CAAAhB,GAAA,gBAAAY,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAH,SAAA;AAAA,SAAAI,eAAAC,GAAA,EAAAN,CAAA,WAAAO,eAAA,CAAAD,GAAA,KAAAE,qBAAA,CAAAF,GAAA,EAAAN,CAAA,KAAAS,2BAAA,CAAAH,GAAA,EAAAN,CAAA,KAAAU,gBAAA;AAAA,SAAAA,iBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAG,CAAA,EAAAC,MAAA,SAAAD,CAAA,qBAAAA,CAAA,sBAAAE,iBAAA,CAAAF,CAAA,EAAAC,MAAA,OAAAE,CAAA,GAAA/B,MAAA,CAAAI,SAAA,CAAA4B,QAAA,CAAA1B,IAAA,CAAAsB,CAAA,EAAAK,KAAA,aAAAF,CAAA,iBAAAH,CAAA,CAAAjB,WAAA,EAAAoB,CAAA,GAAAH,CAAA,CAAAjB,WAAA,CAAAuB,IAAA,MAAAH,CAAA,cAAAA,CAAA,mBAAAI,KAAA,CAAAC,IAAA,CAAAR,CAAA,OAAAG,CAAA,+DAAAM,IAAA,CAAAN,CAAA,UAAAD,iBAAA,CAAAF,CAAA,EAAAC,MAAA;AAAA,SAAAC,kBAAAR,GAAA,EAAAgB,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAhB,GAAA,CAAAJ,MAAA,EAAAoB,GAAA,GAAAhB,GAAA,CAAAJ,MAAA,WAAAF,CAAA,MAAAuB,IAAA,OAAAJ,KAAA,CAAAG,GAAA,GAAAtB,CAAA,GAAAsB,GAAA,EAAAtB,CAAA,IAAAuB,IAAA,CAAAvB,CAAA,IAAAM,GAAA,CAAAN,CAAA,UAAAuB,IAAA;AAAA,SAAAf,sBAAAF,GAAA,EAAAN,CAAA,QAAAwB,EAAA,WAAAlB,GAAA,gCAAAb,MAAA,IAAAa,GAAA,CAAAb,MAAA,CAAAC,QAAA,KAAAY,GAAA,4BAAAkB,EAAA,QAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,IAAA,OAAAC,EAAA,OAAAC,EAAA,iBAAAJ,EAAA,IAAAH,EAAA,GAAAA,EAAA,CAAAlC,IAAA,CAAAgB,GAAA,GAAA0B,IAAA,QAAAhC,CAAA,QAAAhB,MAAA,CAAAwC,EAAA,MAAAA,EAAA,UAAAM,EAAA,uBAAAA,EAAA,IAAAL,EAAA,GAAAE,EAAA,CAAArC,IAAA,CAAAkC,EAAA,GAAAS,IAAA,MAAAJ,IAAA,CAAAK,IAAA,CAAAT,EAAA,CAAAU,KAAA,GAAAN,IAAA,CAAA3B,MAAA,KAAAF,CAAA,GAAA8B,EAAA,iBAAAM,GAAA,IAAAL,EAAA,OAAAL,EAAA,GAAAU,GAAA,yBAAAN,EAAA,YAAAN,EAAA,CAAAa,MAAA,KAAAT,EAAA,GAAAJ,EAAA,CAAAa,MAAA,IAAArD,MAAA,CAAA4C,EAAA,MAAAA,EAAA,2BAAAG,EAAA,QAAAL,EAAA,aAAAG,IAAA;AAAA,SAAAtB,gBAAAD,GAAA,QAAAa,KAAA,CAAAmB,OAAA,CAAAhC,GAAA,UAAAA,GAAA;AAAA,SAAAiC,yBAAApC,MAAA,EAAAqC,QAAA,QAAArC,MAAA,yBAAAJ,MAAA,GAAA0C,6BAAA,CAAAtC,MAAA,EAAAqC,QAAA,OAAArD,GAAA,EAAAa,CAAA,MAAAhB,MAAA,CAAA0D,qBAAA,QAAAC,gBAAA,GAAA3D,MAAA,CAAA0D,qBAAA,CAAAvC,MAAA,QAAAH,CAAA,MAAAA,CAAA,GAAA2C,gBAAA,CAAAzC,MAAA,EAAAF,CAAA,MAAAb,GAAA,GAAAwD,gBAAA,CAAA3C,CAAA,OAAAwC,QAAA,CAAAI,OAAA,CAAAzD,GAAA,uBAAAH,MAAA,CAAAI,SAAA,CAAAyD,oBAAA,CAAAvD,IAAA,CAAAa,MAAA,EAAAhB,GAAA,aAAAY,MAAA,CAAAZ,GAAA,IAAAgB,MAAA,CAAAhB,GAAA,cAAAY,MAAA;AAAA,SAAA0C,8BAAAtC,MAAA,EAAAqC,QAAA,QAAArC,MAAA,yBAAAJ,MAAA,WAAA+C,UAAA,GAAA9D,MAAA,CAAA+D,IAAA,CAAA5C,MAAA,OAAAhB,GAAA,EAAAa,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAA8C,UAAA,CAAA5C,MAAA,EAAAF,CAAA,MAAAb,GAAA,GAAA2D,UAAA,CAAA9C,CAAA,OAAAwC,QAAA,CAAAI,OAAA,CAAAzD,GAAA,kBAAAY,MAAA,CAAAZ,GAAA,IAAAgB,MAAA,CAAAhB,GAAA,YAAAY,MAAA;AAAA,SAAAiD,QAAAC,MAAA,EAAAC,cAAA,QAAAH,IAAA,GAAA/D,MAAA,CAAA+D,IAAA,CAAAE,MAAA,OAAAjE,MAAA,CAAA0D,qBAAA,QAAAS,OAAA,GAAAnE,MAAA,CAAA0D,qBAAA,CAAAO,MAAA,GAAAC,cAAA,KAAAC,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAArE,MAAA,CAAAE,wBAAA,CAAA+D,MAAA,EAAAI,GAAA,EAAAC,UAAA,OAAAP,IAAA,CAAAb,IAAA,CAAA9B,KAAA,CAAA2C,IAAA,EAAAI,OAAA,YAAAJ,IAAA;AAAA,SAAAQ,cAAAxD,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAgD,OAAA,CAAAhE,MAAA,CAAAmB,MAAA,OAAAqD,OAAA,WAAArE,GAAA,IAAAsE,eAAA,CAAA1D,MAAA,EAAAZ,GAAA,EAAAgB,MAAA,CAAAhB,GAAA,SAAAH,MAAA,CAAA0E,yBAAA,GAAA1E,MAAA,CAAA2E,gBAAA,CAAA5D,MAAA,EAAAf,MAAA,CAAA0E,yBAAA,CAAAvD,MAAA,KAAA6C,OAAA,CAAAhE,MAAA,CAAAmB,MAAA,GAAAqD,OAAA,WAAArE,GAAA,IAAAH,MAAA,CAAAC,cAAA,CAAAc,MAAA,EAAAZ,GAAA,EAAAH,MAAA,CAAAE,wBAAA,CAAAiB,MAAA,EAAAhB,GAAA,iBAAAY,MAAA;AAAA,SAAA0D,gBAAAlF,GAAA,EAAAY,GAAA,EAAAgD,KAAA,IAAAhD,GAAA,GAAAyE,cAAA,CAAAzE,GAAA,OAAAA,GAAA,IAAAZ,GAAA,IAAAS,MAAA,CAAAC,cAAA,CAAAV,GAAA,EAAAY,GAAA,IAAAgD,KAAA,EAAAA,KAAA,EAAAmB,UAAA,QAAAO,YAAA,QAAAC,QAAA,oBAAAvF,GAAA,CAAAY,GAAA,IAAAgD,KAAA,WAAA5D,GAAA;AAAA,SAAAqF,eAAAG,GAAA,QAAA5E,GAAA,GAAA6E,YAAA,CAAAD,GAAA,oBAAAtF,OAAA,CAAAU,GAAA,iBAAAA,GAAA,GAAA8E,MAAA,CAAA9E,GAAA;AAAA,SAAA6E,aAAAE,KAAA,EAAAC,IAAA,QAAA1F,OAAA,CAAAyF,KAAA,kBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAzE,MAAA,CAAA4E,WAAA,OAAAD,IAAA,KAAAE,SAAA,QAAAC,GAAA,GAAAH,IAAA,CAAA9E,IAAA,CAAA4E,KAAA,EAAAC,IAAA,oBAAA1F,OAAA,CAAA8F,GAAA,uBAAAA,GAAA,YAAA5D,SAAA,4DAAAwD,IAAA,gBAAAF,MAAA,GAAAO,MAAA,EAAAN,KAAA;AAOnD;;AAkBA,IAAMO,OAAO,GAAG,SAAVA,OAAOA,CAAIC,KAAY,EAAEC,MAAc,EAAY;EACvD,QAAQA,MAAM,CAACC,IAAI;IACjB,KAAK,MAAM;MACT,OAAArB,aAAA,CAAAA,aAAA,KAAYmB,KAAK;QAAEG,IAAI,EAAE;MAAI;IAC/B,KAAK,OAAO;MACV,OAAAtB,aAAA,CAAAA,aAAA,KAAYmB,KAAK;QAAEG,IAAI,EAAE;MAAK;IAChC,KAAK,OAAO;MACV,OAAAtB,aAAA,CAAAA,aAAA,KAAYmB,KAAK;QAAEI,KAAK,EAAE;MAAE;IAC9B,KAAK,QAAQ;MACX,OAAAvB,aAAA,CAAAA,aAAA,KAAYmB,KAAK;QAAEI,KAAK,EAAEH,MAAM,CAACI,OAAO,CAACD,KAAK;QAAED,IAAI,EAAE;MAAI;IAC5D,KAAK,QAAQ;MACX,OAAAtB,aAAA,CAAAA,aAAA,KAAYmB,KAAK;QAAEI,KAAK,EAAEH,MAAM,CAACI,OAAO,CAACD,KAAK;QAAED,IAAI,EAAE;MAAK;EAAE;AAEnE,CAAC;AAgCD;AACO,IAAMG,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAAAE,IAAA,EAoBG;EAAA,IAAAC,YAAA;EAAA,IAAAC,UAAA,GAAAF,IAAA,CAnB/BG,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAG,KAAK,GAAAA,UAAA;IAAAE,iBAAA,GAAAJ,IAAA,CACbK,YAAY;IAAZA,YAAY,GAAAD,iBAAA,cAAG,EAAE,GAAAA,iBAAA;IAAAE,qBAAA,GAAAN,IAAA,CACjBO,iBAAiB;IAAjBA,iBAAiB,GAAAD,qBAAA,cAAG,GAAG,GAAAA,qBAAA;IAAAE,SAAA,GAAAR,IAAA,CACvBS,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,IAAI,GAAAA,SAAA;IACXE,MAAM,GAAAV,IAAA,CAANU,MAAM;IACMC,YAAY,GAAAX,IAAA,CAAxBY,UAAU;IACVC,MAAM,GAAAb,IAAA,CAANa,MAAM;IACNC,MAAM,GAAAd,IAAA,CAANc,MAAM;IACNC,EAAE,GAAAf,IAAA,CAAFe,EAAE;IACFC,OAAO,GAAAhB,IAAA,CAAPgB,OAAO;IACPC,QAAQ,GAAAjB,IAAA,CAARiB,QAAQ;IACRC,OAAO,GAAAlB,IAAA,CAAPkB,OAAO;IACPC,OAAO,GAAAnB,IAAA,CAAPmB,OAAO;IACPC,SAAS,GAAApB,IAAA,CAAToB,SAAS;IACTC,QAAQ,GAAArB,IAAA,CAARqB,QAAQ;IACRC,QAAQ,GAAAtB,IAAA,CAARsB,QAAQ;IACRC,OAAO,GAAAvB,IAAA,CAAPuB,OAAO;IAAAC,iBAAA,GAAAxB,IAAA,CACPyB,YAAY;IAAZA,YAAY,GAAAD,iBAAA,cAAG,UAACE,MAAM;MAAA,oBAAK3J,MAAA,CAAAyB,OAAA,CAAAmI,aAAA,CAAC9I,6BAAA,CAAA+I,4BAA4B,EAAKF,MAAM,CAAI;IAAA,IAAAF,iBAAA;IACpEK,IAAI,GAAAxE,wBAAA,CAAA2C,IAAA,EAAAjH,SAAA;EAEP,IAAM+I,QAAQ,GAAG,IAAAC,aAAM,EAA0B,IAAI,CAAC;EACtD,IAAMC,YAAY,GAAG,IAAAD,aAAM,EAAwB,IAAI,CAAC;EACxD,IAAME,SAAS,GAAG,IAAAF,aAAM,EAAwB,IAAI,CAAC;EACrD,IAAMG,SAAS,GAAG,IAAAH,aAAM,EAAwB,IAAI,CAAC;EAErD,IAAAI,cAAA,GAA+B,IAAAC,kBAAa,EAACP,IAAI,CAAC;IAAAQ,eAAA,GAAAlH,cAAA,CAAAgH,cAAA;IAA3CG,QAAQ,GAAAD,eAAA;IAAEE,UAAU,GAAAF,eAAA;EAE3B,IAAAG,WAAA,GAA0B,IAAAC,iBAAU,EAAClD,OAAO,EAAE;MAC5CI,IAAI,EAAE,KAAK;MACXC,KAAK,EAAES;IACT,CAAC,CAAC;IAAAqC,YAAA,GAAAvH,cAAA,CAAAqH,WAAA;IAHKhD,KAAK,GAAAkD,YAAA;IAAEC,QAAQ,GAAAD,YAAA;EAKtB,IAAME,eAAe,GAAG,IAAAC,cAAO,EAAC,YAAM;IACpC,OAAOtB,OAAO,CAACuB,GAAG,CAAC,UAACpB,MAAM;MAAA,OAAM;QAC9BA,MAAM,EAANA,MAAM;QACNqB,GAAG,eAAE,IAAAC,gBAAS;MAChB,CAAC;IAAA,CAAC,CAAC;EACL,CAAC,EAAE,CAACzB,OAAO,CAAC,CAAC;EAEb,IAAM0B,OAAO,GAAG,SAAVA,OAAOA,CAAA,EAAS;IACpBC,UAAU,CAAC,YAAM;MAAA,IAAAC,iBAAA;MACf,CAAAA,iBAAA,GAAArB,QAAQ,CAACsB,OAAO,cAAAD,iBAAA,uBAAhBA,iBAAA,CAAkBE,KAAK,EAAE;MACzBC,KAAK,EAAE;MACPX,QAAQ,CAAC;QAAEjD,IAAI,EAAE;MAAQ,CAAC,CAAC;IAC7B,CAAC,EAAE,GAAG,CAAC;EACT,CAAC;EAED,IAAM6D,YAAY,GAAG,SAAfA,YAAYA,CAAI7B,MAAS,EAAE8B,KAAa,EAAK;IAAA,IAAAC,kBAAA;IACjDd,QAAQ,CAAC;MAAEjD,IAAI,EAAE,QAAQ;MAAEG,OAAO,EAAE;QAAED,KAAK,EAAE8B,MAAM,CAACgC;MAAK;IAAE,CAAC,CAAC;IAC7D,CAAAD,kBAAA,GAAA3B,QAAQ,CAACsB,OAAO,cAAAK,kBAAA,uBAAhBA,kBAAA,CAAkBJ,KAAK,EAAE;IACzBhC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGK,MAAM,EAAE8B,KAAK,CAAC;EAC3B,CAAC;EAED,IAAAG,qBAAA,GAA8B,IAAAC,oDAAyB,EAAC;MACtDb,GAAG,EAAEf,YAAY;MACjB6B,IAAI,EAAEtC,OAAO;MACbuC,kBAAkB,EAAE,IAAI;MACxBC,OAAO,EAAE,SAATA,OAAOA,CAAAC,KAAA,EAA4C;QAAA,IAA9BtC,MAAM,GAAAsC,KAAA,CAAfC,OAAO;UAAiBnJ,CAAC,GAAAkJ,KAAA,CAARR,KAAK;UAAKU,KAAK,GAAAF,KAAA,CAALE,KAAK;QAC1CA,KAAK,CAACC,cAAc,EAAE;QACtBD,KAAK,CAACE,eAAe,EAAE;QACvBb,YAAY,CAAC7B,MAAM,EAAE5G,CAAC,CAAC;QACvBmI,OAAO,EAAE;MACX;IACF,CAAC,CAAC;IAVMO,KAAK,GAAAG,qBAAA,CAALH,KAAK;IAAEF,KAAK,GAAAK,qBAAA,CAALL,KAAK;IAAEhJ,GAAG,GAAAqJ,qBAAA,CAAHrJ,GAAG;EAYzB,IAAM+J,iBAAiB,GAAG7E,KAAK,CAACG,IAAI,IAAI4B,OAAO,CAACvG,MAAM,GAAG,CAAC;;EAE1D;EACA;EACA,IAAAsJ,gBAAS,EAAChB,KAAK,EAAE,CAAC/B,OAAO,CAAC,CAAC;;EAE3B;EACA,IAAA+C,gBAAS,EAAC,YAAM;IACd,IAAI9E,KAAK,CAACI,KAAK,KAAK,EAAE,EAAE0D,KAAK,EAAE;EACjC,CAAC,EAAE,CAACA,KAAK,EAAE9D,KAAK,CAACI,KAAK,CAAC,CAAC;EAExB,IAAA2E,YAAA,GAAkC,IAAAC,kBAAW,EAAC;MAC5CC,MAAM,EAAEJ,iBAAiB;MACzBlE,KAAK,EAALA,KAAK;MACLM,IAAI,EAAJA,IAAI;MACJxG,GAAG,EAAEsH,OAAO,CAACvG,MAAM;MACnB0J,MAAM,EAAE,EAAE;MACVC,QAAQ,EAAE;IACZ,CAAC,CAAC;IAPMC,SAAS,GAAAL,YAAA,CAATK,SAAS;IAAEC,UAAU,GAAAN,YAAA,CAAVM,UAAU;EAS7B,IAAAC,WAAA,GAAkB,IAAAC,uBAAU,EAAC;MAAEhC,GAAG,EAAE6B;IAAU,CAAC,CAAC;IAAxCI,KAAK,GAAAF,WAAA,CAALE,KAAK;EAEb,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IACxB3B,KAAK,EAAE;IACPX,QAAQ,CAAC;MAAEjD,IAAI,EAAE;IAAO,CAAC,CAAC;EAC5B,CAAC;EAED,IAAMwF,eAAe,GAAG,SAAlBA,eAAeA,CAAIxD,MAAS,EAAE5G,CAAS;IAAA,OAAK,YAAM;MACtDyI,YAAY,CAAC7B,MAAM,EAAE5G,CAAC,CAAC;MACvBmI,OAAO,EAAE;IACX,CAAC;EAAA;EAED,IAAMkC,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IACxBxC,QAAQ,CAAC;MAAEjD,IAAI,EAAE;IAAO,CAAC,CAAC;EAC5B,CAAC;;EAED;EACA;EACA;EACA,IAAM0F,sBAAsB,GAAG,IAAArD,aAAM,EAAS,CAAC,CAAC;EAEhD,IAAAuC,gBAAS,EAAC,YAAM;IACd,IAAI,CAACD,iBAAiB,EAAE;IAExB,IAAMgB,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;MAC5BD,sBAAsB,CAAChC,OAAO,GAAGkC,WAAW,CAACC,GAAG,EAAE;IACpD,CAAC;IAEDC,MAAM,CAACC,gBAAgB,CAAC,WAAW,EAAEJ,eAAe,CAAC;IAErD,OAAO,YAAM;MACXG,MAAM,CAACE,mBAAmB,CAAC,WAAW,EAAEL,eAAe,CAAC;IAC1D,CAAC;EACH,CAAC,EAAE,CAAChB,iBAAiB,CAAC,CAAC;EAEvB,IAAMsB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAI7K,CAAS;IAAA,OAAK,YAAM;MAC5C,IAAMyK,GAAG,GAAGD,WAAW,CAACC,GAAG,EAAE;;MAE7B;MACA,IAAIA,GAAG,GAAGH,sBAAsB,CAAChC,OAAO,GAAG,EAAE,EAAE;QAC7C9I,GAAG,CAAC;UAAEsL,MAAM,EAAE9K,CAAC;UAAE+K,WAAW,EAAE;QAAK,CAAC,CAAC;MACvC;IACF,CAAC;EAAA;EAED,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAI5B,KAA0C,EAAK;IACnE,IACmBjH,KAAK,GACpBiH,KAAK,CADP6B,aAAa,CAAI9I,KAAK;IAGxB0F,QAAQ,CAAC;MAAEjD,IAAI,EAAE,QAAQ;MAAEG,OAAO,EAAE;QAAED,KAAK,EAAE3C;MAAM;IAAE,CAAC,CAAC;IACvDgE,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGiD,KAAK,CAAC;EACnB,CAAC;EAED,IAAM8B,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAA,EAAS;IAAA,IAAAC,kBAAA;IAChC,IAAIzG,KAAK,CAACI,KAAK,KAAK,EAAE,EAAE;MACtB0B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAG9B,KAAK,CAACI,KAAK,CAAC;MACvB;IACF;IAEA+C,QAAQ,CAAC;MAAEjD,IAAI,EAAE;IAAQ,CAAC,CAAC;IAC3B,CAAAuG,kBAAA,GAAAnE,QAAQ,CAACsB,OAAO,cAAA6C,kBAAA,uBAAhBA,kBAAA,CAAkB5C,KAAK,EAAE;IACzBnC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,EAAI;EACb,CAAC;EAED,IAAMgF,WAAW,GAAG,IAAAC,kBAAW,EAAC,YAAM;IACpCxD,QAAQ,CAAC;MAAEjD,IAAI,EAAE;IAAQ,CAAC,CAAC;IAC3B4D,KAAK,EAAE;IACPnC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,EAAI;EACb,CAAC,EAAE,CAACA,OAAO,EAAEmC,KAAK,CAAC,CAAC;EAEpB,IAAM8C,oBAAoB,GAAG,IAAArE,aAAM,EAAU,KAAK,CAAC;EACnD,IAAMsE,iBAAiB,GAAG;IACxBC,WAAW,EAAE,SAAbA,WAAWA,CAAA;MAAA,OAASF,oBAAoB,CAAChD,OAAO,GAAG,IAAI;IAAA,CAAC;IACxDmD,SAAS,EAAE,SAAXA,SAASA,CAAA;MAAA,OAASH,oBAAoB,CAAChD,OAAO,GAAG,KAAK;IAAA;EACxD,CAAC;;EAED;EACA,IAAAkB,gBAAS,EAAC,YAAM;IAAA,IAAAkC,WAAA,EAAAC,mBAAA;IACd,IAAM/E,MAAM,GAAGkB,eAAe,CAACY,KAAK,CAAC;IACrC9B,MAAM,aAANA,MAAM,wBAAA8E,WAAA,GAAN9E,MAAM,CAAEqB,GAAG,cAAAyD,WAAA,wBAAAC,mBAAA,GAAXD,WAAA,CAAapD,OAAO,cAAAqD,mBAAA,uBAApBA,mBAAA,CAAsBpD,KAAK,EAAE;EAC/B,CAAC,EAAE,CAACG,KAAK,EAAEZ,eAAe,CAAC,CAAC;EAE5B,IAAM8D,iBAAiB,GAAG,IAAAP,kBAAW,EACnC,UAACQ,OAAgB,EAAK;IACpB,IAAIP,oBAAoB,CAAChD,OAAO,IAAIuD,OAAO,IAAI,CAACtC,iBAAiB,EAAE;IAEnE6B,WAAW,EAAE;EACf,CAAC,EAED,CAAC7B,iBAAiB,EAAE6B,WAAW,CAAC,CACjC;;EAED;EACA;EACA,IAAAU,iBAAA,GAAkC,IAAAC,uBAAgB,EAAC;MACjD5F,QAAQ,EAAEyF;IACZ,CAAC,CAAC;IAFWI,gBAAgB,GAAAF,iBAAA,CAArB7D,GAAG;EAIX,IAAAgE,sBAAe,EAAC;IACdhE,GAAG,EAAE+D,gBAAgB;IACrBE,cAAc,EAAEd,WAAW;IAC3Be,IAAI,EAAE5C,iBAAiB;IACvB3E,IAAI,EAAE;EACR,CAAC,CAAC;EAEF,IAAMwH,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIhD,KAA4C,EAAK;IAAA,IAAAiD,kBAAA;IAC3E,QAAQjD,KAAK,CAACjK,GAAG;MACf;MACA,KAAK,OAAO;QACV,IAAIuF,KAAK,CAACI,KAAK,KAAK,EAAE,IAAI4D,KAAK,KAAK,CAAC,CAAC,EAAE;UACtClC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAG9B,KAAK,CAACI,KAAK,CAAC;UACvBqD,OAAO,EAAE;QACX;QACA;;MAEF;MACA,KAAK,QAAQ;QACXiB,KAAK,CAACC,cAAc,EAAE;QACtBD,KAAK,CAACE,eAAe,EAAE;QAEvBzB,QAAQ,CAAC;UAAEjD,IAAI,EAAE;QAAQ,CAAC,CAAC;QAC3B,CAAAyH,kBAAA,GAAArF,QAAQ,CAACsB,OAAO,cAAA+D,kBAAA,uBAAhBA,kBAAA,CAAkBC,IAAI,EAAE;QAExB;MAEF;QACE;IAAK;IAGThG,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAG8C,KAAK,CAAC;EACpB,CAAC;;EAED;EACA,IAAMmD,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAC1BnD,KAA0C,EACvC;IAAA,IAAAoD,kBAAA,EAAAC,kBAAA;IACH,QAAQrD,KAAK,CAACjK,GAAG;MACf,KAAK,KAAK;MACV,KAAK,WAAW;MAChB,KAAK,SAAS;MACd,KAAK,SAAS;MACd,KAAK,OAAO;MACZ,KAAK,MAAM;MACX,KAAK,OAAO;MACZ,KAAK,KAAK;QACR;QACA;MAEF,KAAK,QAAQ;QACXiK,KAAK,CAACC,cAAc,EAAE;QACtBD,KAAK,CAACE,eAAe,EAAE;QAEvBzB,QAAQ,CAAC;UAAEjD,IAAI,EAAE;QAAQ,CAAC,CAAC;QAC3B,CAAA4H,kBAAA,GAAAxF,QAAQ,CAACsB,OAAO,cAAAkE,kBAAA,uBAAhBA,kBAAA,CAAkBF,IAAI,EAAE;QACxB9D,KAAK,EAAE;QAEP;MAEF;QACE,CAAAiE,kBAAA,GAAAzF,QAAQ,CAACsB,OAAO,cAAAmE,kBAAA,uBAAhBA,kBAAA,CAAkBlE,KAAK,EAAE;IAAA;EAE/B,CAAC;;EAED;EACA,IAAMmE,MAAM,GAAGjG,OAAO,CAACiC,KAAK,CAAC;EAE7B,oBACEzL,MAAA,CAAAyB,OAAA,CAAAmI,aAAA,CAACnJ,IAAA,CAAAiP,GAAG,EAAA/M,QAAA;IACFqI,GAAG,EAAE,IAAA2E,yBAAW,EAAC1F,YAAY,EAAE8E,gBAAgB,CAAS;IACxD1F,SAAS,EAAEiG;EAAuB,GAC9B/E,QAAQ,gBAEZvK,MAAA,CAAAyB,OAAA,CAAAmI,aAAA,CAACjJ,aAAA,CAAAiP,YAAY,EAAAjN,QAAA;IACXqI,GAAG,EAAE,IAAA2E,yBAAW,EAAC5F,QAAQ,EAAE8C,SAAS,EAAEjE,YAAY,CAAS;IAC3DiH,IAAI,EAAC,UAAU;IACf,iBAAevD,iBAAkB;IACjC,qBAAkB;EAAM,GACnBtD,EAAE,GAAG;IAAEA,EAAE,EAAFA,EAAE;IAAE,kBAAkB,KAAA8G,MAAA,CAAK9G,EAAE;EAAkB,CAAC,GAAG,CAAC,CAAC;IACjE+G,KAAK,EACH9G,OAAO,gBACLjJ,MAAA,CAAAyB,OAAA,CAAAmI,aAAA,CAACnJ,IAAA,CAAAiP,GAAG;MAACzC,KAAK,EAAE;IAAG,gBACbjN,MAAA,CAAAyB,OAAA,CAAAmI,aAAA,CAACxJ,QAAA,CAAA4P,OAAO;MAACC,IAAI,EAAC;IAAO,EAAG,CACpB,GACJxI,KAAK,CAACI,KAAK,gBACb7H,MAAA,CAAAyB,OAAA,CAAAmI,aAAA,CAAClJ,UAAA,CAAAwP,SAAS;MACRC,OAAO,EAAElC,mBAAoB;MAC7BlF,MAAM,EAAC,MAAM;MACbqH,OAAO,EAAC,MAAM;MACdC,UAAU,EAAC,QAAQ;MACnB,cAAW;IAAa,gBAExBrQ,MAAA,CAAAyB,OAAA,CAAAmI,aAAA,CAACtJ,UAAA,CAAAmB,OAAS;MAAC6O,IAAI,EAAC,QAAQ;MAAC;IAAW,EAAG,CAC7B,gBAEZtQ,MAAA,CAAAyB,OAAA,CAAAmI,aAAA,CAACvJ,WAAA,CAAAoB,OAAU;MAAC6O,IAAI,EAAC,QAAQ;MAAC;IAAW,EAExC;IACDpL,KAAK,GAAAgD,YAAA,GAAEuH,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE9D,IAAI,cAAAzD,YAAA,cAAAA,YAAA,GAAIT,KAAK,CAACI,KAAM;IACnCqB,QAAQ,EAAE6E,YAAa;IACvBwC,OAAO,EAAErD,WAAY;IACrB7D,SAAS,EAAE8F,kBAAmB;IAC9BgB,OAAO,EAAE/C,WAAY;IACrBoD,YAAY,EAAC,KAAK;IAClBzH,MAAM,EAAEA;EAAO,GACXyB,UAAU,EACd,EAED8B,iBAAiB,iBAChBtM,MAAA,CAAAyB,OAAA,CAAAmI,aAAA,CAAC6G,yBAAyB;IACxBzF,GAAG,EAAE8B,UAAkB;IACvB+C,IAAI,EAAC,SAAS;IACd5C,KAAK,EAAEA;EAAM,gBAEbjN,MAAA,CAAAyB,OAAA,CAAAmI,aAAA,QAAAjH,QAAA;IAAKqI,GAAG,EAAEd;EAAU,GAAKoE,iBAAiB,GACvCxF,MAAM,CACH,eAEN9I,MAAA,CAAAyB,OAAA,CAAAmI,aAAA,CAAC8G,wBAAwB;IAACC,SAAS,EAAEnI;EAAkB,GACpDqC,eAAe,CAACE,GAAG,CAAC,UAAA6F,KAAA,EAAkB7N,CAAC,EAAK;IAAA,IAArB4G,MAAM,GAAAiH,KAAA,CAANjH,MAAM;MAAEqB,GAAG,GAAA4F,KAAA,CAAH5F,GAAG;IACjC,oBACEhL,MAAA,CAAAyB,OAAA,CAAAmI,aAAA,CAAC/I,wBAAA,CAAAgQ,uBAAuB;MACtB3O,GAAG,EAAEa,CAAE;MACPiI,GAAG,EAAEA,GAAI;MACT6E,IAAI,EAAC,QAAQ;MACb,iBAAe9M,CAAC,KAAK0I,KAAM;MAC3B,iBAAe1I,CAAC,GAAG,CAAE;MACrB,gBAAcyG,OAAO,CAACvG,MAAO;MAC7BsL,WAAW,EAAEpB,eAAe,CAACxD,MAAM,EAAE5G,CAAC,CAAE;MACxC+N,YAAY,EAAElD,gBAAgB,CAAC7K,CAAC,CAAE;MAClCgO,QAAQ,EAAE,CAAC;IAAE,GAEZrH,YAAY,CAACC,MAAM,EAAE5G,CAAC,CAAC,CACA;EAE9B,CAAC,CAAC,CACuB,eAE3B/C,MAAA,CAAAyB,OAAA,CAAAmI,aAAA,QAAAjH,QAAA;IAAKqI,GAAG,EAAEb;EAAU,GAAKmE,iBAAiB,GACvC,OAAO3F,MAAM,KAAK,UAAU,GACzBA,MAAM,CAAC;IAAES,OAAO,EAAE+E;EAAY,CAAC,CAAC,GAChCxF,MAAM,CACN,CAET,eAED3I,MAAA,CAAAyB,OAAA,CAAAmI,aAAA,CAAChJ,eAAA,CAAAoQ,cAAc,EAAMhI,EAAE,GAAG;IAAEA,EAAE,KAAA8G,MAAA,CAAK9G,EAAE;EAAkB,CAAC,GAAG,CAAC,CAAC,EAAG,4JAIhE,CAAiB,EAEhBsD,iBAAiB,iBAChBtM,MAAA,CAAAyB,OAAA,CAAAmI,aAAA,CAAChJ,eAAA,CAAAoQ,cAAc;IAACnB,IAAI,EAAC,QAAQ;IAAC,eAAY,MAAM;IAAC,aAAU;EAAQ,GAChErG,OAAO,CAACvG,MAAM,KAAK,CAAC,gCAAA6M,MAAA,CAEdtG,OAAO,CAACvG,MAAM,2BAAwB,CAEhD,CACG;AAEV,CAAC;AA1VY8E,iBAAiB,CAAAkJ,WAAA;AA4V9B,IAAMR,yBAAyB,GAAG,IAAAS,yBAAM,EAACxB,QAAG,CAAC,CAAAyB,UAAA;EAAAF,WAAA;EAAAG,WAAA;AAAA,mCAC7B,IAAAC,kBAAQ,EAAC,oBAAoB,CAAC,CAE7C;AAED,IAAMX,wBAAwB,GAAG,IAAAQ,yBAAM,EAACxB,QAAG,CAAC,CAAAyB,UAAA;EAAAF,WAAA;EAAAG,WAAA;AAAA,yDAG3C"}
1
+ {"version":3,"file":"AutocompleteInput.js","names":["_composeReactRefs","_interopRequireDefault","require","_react","_interopRequireWildcard","_styledComponents","_useKeyboardListNavigation","_Spinner","_SearchIcon","_CloseIcon","_utils","_useWidthOf2","_Box","_Clickable","_LabeledInput","_VisuallyHidden","_AutocompleteInputOption","_AutocompleteInputOptionLabel","_themeGet","_useMouseActivity2","_excluded","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","_extends","assign","bind","target","i","arguments","length","source","apply","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","toString","slice","name","Array","from","test","len","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","return","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","ownKeys","object","enumerableOnly","symbols","filter","sym","enumerable","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","reducer","state","action","type","open","query","payload","AutocompleteInput","exports","_ref","_staged$text","_ref$clamp","clamp","_ref$defaultValue","defaultValue","_ref$dropdownMaxHeigh","dropdownMaxHeight","_ref$flip","flip","footer","forwardedRef","forwardRef","header","height","id","loading","onChange","onClear","onClose","onKeyDown","onSelect","onSubmit","options","_ref$renderOption","renderOption","option","createElement","AutocompleteInputOptionLabel","rest","inputRef","useRef","containerRef","headerRef","footerRef","_splitBoxProps","splitBoxProps","_splitBoxProps2","boxProps","inputProps","_useReducer","useReducer","_useReducer2","dispatch","optionsWithRefs","useMemo","map","ref","createRef","resetUI","setTimeout","_inputRef$current","current","focus","reset","handleSelect","index","_inputRef$current2","text","_useKeyboardListNavig","useKeyboardListNavigation","list","waitForInteractive","onEnter","_ref2","element","event","preventDefault","stopPropagation","isDropdownVisible","useEffect","_usePosition","usePosition","active","offset","position","anchorRef","tooltipRef","_useWidthOf","useWidthOf","width","handleFocus","handleMouseDown","handleClick","_useMouseActivity","useMouseActivity","lastMouseMoveTimestamp","handleMouseEnter","now","performance","cursor","interactive","handleChange","currentTarget","handleClearOrSubmit","_inputRef$current3","handleClose","useCallback","ignoreFocusChangeRef","ignoreFocusChange","onMouseDown","onMouseUp","_option$ref","_option$ref$current","handleFocusChange","focused","_useContainsFocus","useContainsFocus","containsFocusRef","useClickOutside","onClickOutside","when","handleInputKeydown","_inputRef$current4","blur","handleContainerKeydown","_inputRef$current5","_inputRef$current6","staged","Box","composeRefs","LabeledInput","role","concat","label","Spinner","size","Clickable","onClick","display","alignItems","fill","onFocus","autoComplete","AutocompleteInputDropdown","AutocompleteInputOptions","maxHeight","_ref3","AutocompleteInputOption","onMouseEnter","tabIndex","VisuallyHidden","displayName","styled","withConfig","componentId","themeGet"],"sources":["../../../src/elements/AutocompleteInput/AutocompleteInput.tsx"],"sourcesContent":["import composeRefs from \"@seznam/compose-react-refs\"\nimport React, {\n createRef,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from \"react\"\nimport styled from \"styled-components\"\nimport { useKeyboardListNavigation } from \"use-keyboard-list-navigation\"\nimport { Spinner } from \"../Spinner\"\nimport SearchIcon from \"@artsy/icons/SearchIcon\"\nimport CloseIcon from \"@artsy/icons/CloseIcon\"\nimport { usePosition, useContainsFocus, useClickOutside } from \"../../utils\"\nimport { useWidthOf } from \"../../utils/useWidthOf\"\nimport { Box, splitBoxProps } from \"../Box\"\nimport { Clickable } from \"../Clickable\"\nimport { InputProps } from \"../Input\"\nimport { LabeledInput } from \"../LabeledInput\"\nimport { VisuallyHidden } from \"../VisuallyHidden\"\nimport { AutocompleteInputOption } from \"./AutocompleteInputOption\"\nimport { AutocompleteInputOptionLabel } from \"./AutocompleteInputOptionLabel\"\nimport { ResponsiveValue } from \"styled-system\"\nimport { themeGet } from \"@styled-system/theme-get\"\nimport { useMouseActivity } from \"../../utils/useMouseActivity\"\n\nexport interface AutocompleteFooterActions {\n /** Call to close dropdown */\n onClose(): void\n}\n\n/** Base option type — can be expanded */\nexport interface AutocompleteInputOptionType {\n text: string\n value: string\n}\n\ninterface State {\n open: boolean\n query: string\n}\n\ntype Action =\n | { type: \"OPEN\" }\n | { type: \"CLOSE\" }\n | { type: \"CLEAR\" }\n | { type: \"CHANGE\"; payload: { query: string } }\n | { type: \"SELECT\"; payload: { query: string } }\n\nconst reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"OPEN\":\n return { ...state, open: true }\n case \"CLOSE\":\n return { ...state, open: false }\n case \"CLEAR\":\n return { ...state, query: \"\" }\n case \"CHANGE\":\n return { ...state, query: action.payload.query, open: true }\n case \"SELECT\":\n return { ...state, query: action.payload.query, open: false }\n }\n}\n\nexport interface AutocompleteInputProps<T extends AutocompleteInputOptionType>\n extends Omit<InputProps, \"onSelect\" | \"onSubmit\"> {\n /** Optionally enable clamping (default: `false`) */\n clamp?: boolean\n defaultValue?: string\n dropdownMaxHeight?: ResponsiveValue<string | number>\n loading?: boolean\n header?: React.ReactNode\n /** Optionally disable flipping (default: `true`) */\n flip?: boolean\n footer?:\n | React.ReactNode\n | ((dropdownActions: AutocompleteFooterActions) => React.ReactNode)\n /** Ref to the input; workaround generics */\n forwardRef?: React.Ref<HTMLInputElement>\n /** on <enter> when no option is selected */\n onSubmit?(query: string): void\n /** on <click> or <enter> when an option is selected */\n onSelect?(option: T, index: number): void\n /** on <click> of the 'x' (clear) button */\n onClear?(): void\n /** Callback that runs when options are hidden */\n onClose?(): void\n options: T[]\n renderOption?(\n option: T,\n i: number\n ): React.ReactElement<any, string | React.JSXElementConstructor<any>>\n}\n\n/** AutocompleteInput */\nexport const AutocompleteInput = <T extends AutocompleteInputOptionType>({\n clamp = false,\n defaultValue = \"\",\n dropdownMaxHeight = 308, // 308 = roughly 5.5 options\n flip = true,\n footer,\n forwardRef: forwardedRef,\n header,\n height,\n id,\n loading,\n onChange,\n onClear,\n onClose,\n onKeyDown,\n onSelect,\n onSubmit,\n options,\n renderOption = (option) => <AutocompleteInputOptionLabel {...option} />,\n ...rest\n}: AutocompleteInputProps<T>) => {\n const inputRef = useRef<HTMLInputElement | null>(null)\n const containerRef = useRef<HTMLDivElement | null>(null)\n const headerRef = useRef<HTMLDivElement | null>(null)\n const footerRef = useRef<HTMLDivElement | null>(null)\n\n const [boxProps, inputProps] = splitBoxProps(rest)\n\n const [state, dispatch] = useReducer(reducer, {\n open: false,\n query: defaultValue,\n })\n\n const optionsWithRefs = useMemo(() => {\n return options.map((option) => ({\n option,\n ref: createRef<HTMLButtonElement>(),\n }))\n }, [options])\n\n const resetUI = () => {\n setTimeout(() => {\n inputRef.current?.focus()\n reset()\n dispatch({ type: \"CLOSE\" })\n }, 100)\n }\n\n const handleSelect = (option: T, index: number) => {\n dispatch({ type: \"SELECT\", payload: { query: option.text } })\n inputRef.current?.focus()\n onSelect?.(option, index)\n }\n\n const { index, reset, set } = useKeyboardListNavigation({\n ref: containerRef,\n list: options,\n waitForInteractive: true,\n onEnter: ({ element: option, index: i, event }) => {\n event.preventDefault()\n event.stopPropagation()\n handleSelect(option, i)\n resetUI()\n },\n })\n\n const isDropdownVisible = state.open && options.length > 0\n\n // Reset keyboard navigation when options change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(reset, [options])\n\n // Reset keyboard navigation when query is empty\n useEffect(() => {\n if (state.query === \"\") reset()\n }, [reset, state.query])\n\n const { anchorRef, tooltipRef } = usePosition({\n active: isDropdownVisible,\n clamp,\n flip,\n key: options.length,\n offset: 10,\n position: \"bottom\",\n })\n\n const { width } = useWidthOf({ ref: anchorRef })\n\n const handleFocus = () => {\n reset()\n dispatch({ type: \"OPEN\" })\n }\n\n const handleMouseDown = (option: T, i: number) => () => {\n handleSelect(option, i)\n resetUI()\n }\n\n const handleClick = () => {\n dispatch({ type: \"OPEN\" })\n }\n\n // Records the latest mouse movement and, inside the `handleMouseEnter` callback,\n // only treat the event as genuine if the mouse has moved very recently.\n // Otherwise, the event is presumed to have been triggered by scrolling and is ignored.\n const { lastMouseMoveTimestamp } = useMouseActivity()\n\n const handleMouseEnter = (i: number) => () => {\n const now = performance.now()\n\n // 50ms mouse move window\n if (now - lastMouseMoveTimestamp.current < 50) {\n set({ cursor: i, interactive: true })\n }\n }\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const {\n currentTarget: { value },\n } = event\n\n dispatch({ type: \"CHANGE\", payload: { query: value } })\n onChange?.(event)\n }\n\n const handleClearOrSubmit = () => {\n if (state.query === \"\") {\n onSubmit?.(state.query)\n return\n }\n\n dispatch({ type: \"CLEAR\" })\n inputRef.current?.focus()\n onClear?.()\n }\n\n const handleClose = useCallback(() => {\n dispatch({ type: \"CLOSE\" })\n reset()\n onClose?.()\n }, [onClose, reset])\n\n const ignoreFocusChangeRef = useRef<boolean>(false)\n const ignoreFocusChange = {\n onMouseDown: () => (ignoreFocusChangeRef.current = true),\n onMouseUp: () => (ignoreFocusChangeRef.current = false),\n }\n\n // Moves focus to different options when keyboard navigating using up/down\n useEffect(() => {\n const option = optionsWithRefs[index]\n option?.ref?.current?.focus()\n }, [index, optionsWithRefs])\n\n const handleFocusChange = useCallback(\n (focused: boolean) => {\n if (ignoreFocusChangeRef.current || focused || !isDropdownVisible) return\n\n handleClose()\n },\n\n [isDropdownVisible, handleClose]\n )\n\n // Handle closing the dropdown when clicking outside of the input\n // or when focus leaves the input completely\n const { ref: containsFocusRef } = useContainsFocus({\n onChange: handleFocusChange,\n })\n\n useClickOutside({\n ref: containsFocusRef,\n onClickOutside: handleClose,\n when: isDropdownVisible,\n type: \"click\",\n })\n\n const handleInputKeydown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n switch (event.key) {\n // Handle <Enter> when nothing is selected\n case \"Enter\":\n if (state.query !== \"\" && index === -1) {\n onSubmit?.(state.query)\n resetUI()\n }\n return\n\n // <Esc> to close dropdown\n case \"Escape\":\n event.preventDefault()\n event.stopPropagation()\n\n dispatch({ type: \"CLOSE\" })\n inputRef.current?.blur()\n\n return\n\n default:\n break\n }\n\n onKeyDown?.(event)\n }\n\n // Moves focus back to input when typing\n const handleContainerKeydown = (\n event: React.KeyboardEvent<HTMLDivElement>\n ) => {\n switch (event.key) {\n case \"Alt\":\n case \"ArrowDown\":\n case \"ArrowUp\":\n case \"Control\":\n case \"Enter\":\n case \"Meta\":\n case \"Shift\":\n case \"Tab\":\n // Ignore\n return\n\n case \"Escape\":\n event.preventDefault()\n event.stopPropagation()\n\n dispatch({ type: \"CLOSE\" })\n inputRef.current?.blur()\n reset()\n\n return\n\n default:\n inputRef.current?.focus()\n }\n }\n\n // Option that is being hovered or keyed into\n const staged = options[index]\n\n return (\n <Box\n ref={composeRefs(containerRef, containsFocusRef) as any}\n onKeyDown={handleContainerKeydown}\n {...boxProps}\n >\n <LabeledInput\n ref={composeRefs(inputRef, anchorRef, forwardedRef) as any}\n role=\"combobox\"\n aria-expanded={isDropdownVisible}\n aria-autocomplete=\"list\"\n {...(id ? { id, \"aria-describedby\": `${id}__assistiveHint` } : {})}\n label={\n loading ? (\n <Box width={18}>\n <Spinner size=\"small\" />\n </Box>\n ) : state.query ? (\n <Clickable\n onClick={handleClearOrSubmit}\n height=\"100%\"\n display=\"flex\"\n alignItems=\"center\"\n aria-label=\"Clear input\"\n >\n <CloseIcon fill=\"mono60\" aria-hidden />\n </Clickable>\n ) : (\n <SearchIcon fill=\"mono60\" aria-hidden />\n )\n }\n value={staged?.text ?? state.query}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleInputKeydown}\n onClick={handleClick}\n autoComplete=\"off\"\n height={height}\n {...inputProps}\n />\n\n {isDropdownVisible && (\n <AutocompleteInputDropdown\n ref={tooltipRef as any}\n role=\"listbox\"\n width={width}\n >\n <div ref={headerRef} {...ignoreFocusChange}>\n {header}\n </div>\n\n <AutocompleteInputOptions maxHeight={dropdownMaxHeight}>\n {optionsWithRefs.map(({ option, ref }, i) => {\n return (\n <AutocompleteInputOption\n key={i}\n ref={ref}\n role=\"option\"\n aria-selected={i === index}\n aria-posinset={i + 1}\n aria-setsize={options.length}\n onMouseDown={handleMouseDown(option, i)}\n onMouseEnter={handleMouseEnter(i)}\n tabIndex={-1}\n >\n {renderOption(option, i)}\n </AutocompleteInputOption>\n )\n })}\n </AutocompleteInputOptions>\n\n <div ref={footerRef} {...ignoreFocusChange}>\n {typeof footer === \"function\"\n ? footer({ onClose: handleClose })\n : footer}\n </div>\n </AutocompleteInputDropdown>\n )}\n\n <VisuallyHidden {...(id ? { id: `${id}__assistiveHint` } : {})}>\n When autocomplete results are available use up and down arrows to review\n and enter to select. Touch device users, explore by touch or with swipe\n gestures.\n </VisuallyHidden>\n\n {isDropdownVisible && (\n <VisuallyHidden role=\"status\" aria-atomic=\"true\" aria-live=\"polite\">\n {options.length === 1\n ? `1 result is available`\n : `${options.length} results are available`}\n </VisuallyHidden>\n )}\n </Box>\n )\n}\n\nconst AutocompleteInputDropdown = styled(Box)`\n box-shadow: ${themeGet(\"effects.dropShadow\")};\n z-index: 1;\n`\n\nconst AutocompleteInputOptions = styled(Box)`\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n`\n"],"mappings":"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"}
@@ -1,20 +1,6 @@
1
1
  import React from "react";
2
2
  import { InputProps } from "../Input";
3
- /**
4
- * The option structure for the list in the dropdown menu
5
- *
6
- * @interface Option
7
- * @property {string} `text` is the content that will be displayed as selected option
8
- * @property {string} `name` is the content that will be displayed in the dropdown list
9
- * @property {string} `value` is the value that will be passed to onSelect
10
- */
11
- interface Option {
12
- text: string;
13
- name: string;
14
- value: string;
15
- countryCode?: string;
16
- flag?: string;
17
- }
3
+ import { Option } from "./PhoneInputList";
18
4
  export interface PhoneInputProps extends Omit<InputProps, "onSelect"> {
19
5
  options: Option[];
20
6
  onSelect: (option: Option) => void;
@@ -28,4 +14,3 @@ export interface PhoneInputProps extends Omit<InputProps, "onSelect"> {
28
14
  inputValue?: string;
29
15
  }
30
16
  export declare const PhoneInput: React.ForwardRefExoticComponent<PhoneInputProps & React.RefAttributes<HTMLInputElement>>;
31
- export {};
@@ -12,11 +12,12 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
12
12
  var _styledSystem = require("styled-system");
13
13
  var _utils = require("../../utils");
14
14
  var _Box = require("../Box");
15
- var _Input = require("../Input");
16
15
  var _Text = require("../Text");
17
16
  var _tokens = require("./tokens");
18
- var _useKeyboardListNavigation = require("use-keyboard-list-navigation");
19
17
  var _RequiredField = require("../../shared/RequiredField");
18
+ var _PhoneInputList = require("./PhoneInputList");
19
+ var _Select = require("../Select");
20
+ var _Clickable = require("../Clickable");
20
21
  var _excluded = ["className", "options", "disabled", "error", "focus", "hover", "required", "onSelect", "dropdownValue", "inputValue"];
21
22
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
23
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -30,15 +31,6 @@ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefine
30
31
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
31
32
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
32
33
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
33
- /**
34
- * The option structure for the list in the dropdown menu
35
- *
36
- * @interface Option
37
- * @property {string} `text` is the content that will be displayed as selected option
38
- * @property {string} `name` is the content that will be displayed in the dropdown list
39
- * @property {string} `value` is the value that will be passed to onSelect
40
- */
41
-
42
34
  var PhoneInput = exports.PhoneInput = /*#__PURE__*/_react.default.forwardRef(function (_ref, forwardedRef) {
43
35
  var className = _ref.className,
44
36
  options = _ref.options,
@@ -55,9 +47,7 @@ var PhoneInput = exports.PhoneInput = /*#__PURE__*/_react.default.forwardRef(fun
55
47
  throw new Error("Palette PhoneInput requires at least 1 option in the options prop");
56
48
  }
57
49
  var inputRef = (0, _react.useRef)(null);
58
- var searchInputRef = (0, _react.useRef)(null);
59
50
  var containerRef = (0, _react.useRef)(null);
60
- var countryPickerRef = (0, _react.useRef)(null);
61
51
  var defaultOption = (0, _react.useMemo)(function () {
62
52
  return dropdownValue && options.find(function (option) {
63
53
  return option.value === dropdownValue;
@@ -69,82 +59,36 @@ var PhoneInput = exports.PhoneInput = /*#__PURE__*/_react.default.forwardRef(fun
69
59
  inputProps = _splitBoxProps2[1];
70
60
  var _useState = (0, _react.useState)(false),
71
61
  _useState2 = _slicedToArray(_useState, 2),
72
- isDropdownVisible = _useState2[0],
73
- setDropdownVisible = _useState2[1];
74
- var _useState3 = (0, _react.useState)(""),
62
+ open = _useState2[0],
63
+ setOpen = _useState2[1];
64
+ var _useState3 = (0, _react.useState)(defaultOption || options[0]),
75
65
  _useState4 = _slicedToArray(_useState3, 2),
76
- searchQuery = _useState4[0],
77
- setSearchQuery = _useState4[1];
78
- var _useState5 = (0, _react.useState)(defaultOption || options[0]),
79
- _useState6 = _slicedToArray(_useState5, 2),
80
- selectedOption = _useState6[0],
81
- setSelectedOption = _useState6[1];
82
- var filteredOptions = options.filter(function (option) {
83
- if (searchQuery !== "") {
84
- var filteredCountry = option.text.toLowerCase().includes(searchQuery.toLowerCase()) || option.name.toLowerCase().includes(searchQuery.toLowerCase());
85
- return filteredCountry;
86
- }
87
- return true;
88
- });
66
+ selectedOption = _useState4[0],
67
+ setSelectedOption = _useState4[1];
89
68
  var _usePosition = (0, _utils.usePosition)({
90
- key: filteredOptions.length,
91
69
  position: "bottom",
92
70
  offset: 10,
93
- active: isDropdownVisible,
71
+ active: open,
94
72
  flip: false
95
73
  }),
96
74
  anchorRef = _usePosition.anchorRef,
97
75
  tooltipRef = _usePosition.tooltipRef;
98
- var _useKeyboardListNavig = (0, _useKeyboardListNavigation.useKeyboardListNavigation)({
99
- ref: containerRef,
100
- list: filteredOptions,
101
- waitForInteractive: true,
102
- onEnter: function onEnter(_ref2) {
103
- var option = _ref2.element,
104
- event = _ref2.event;
105
- event.preventDefault();
106
- event.stopPropagation();
107
- if (option) {
108
- handleSelect(option);
109
- }
110
- resetUI();
111
- }
112
- }),
113
- reset = _useKeyboardListNavig.reset,
114
- set = _useKeyboardListNavig.set;
115
76
  var _useWidthOf = (0, _utils.useWidthOf)({
116
77
  ref: anchorRef
117
78
  }),
118
79
  width = _useWidthOf.width;
119
80
  var inputName = inputProps.name || "palette-phone-input";
120
- var optionsWithRefs = (0, _react.useMemo)(function () {
121
- return filteredOptions.map(function (option) {
122
- return {
123
- option: option,
124
- ref: /*#__PURE__*/(0, _react.createRef)()
125
- };
126
- });
127
- }, [filteredOptions]);
128
- var resetUI = function resetUI() {
129
- setTimeout(function () {
130
- var _inputRef$current;
131
- (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
132
- reset();
133
- setDropdownVisible(false);
134
- }, 100);
135
- };
136
81
  var handleSelect = function handleSelect(option) {
137
- var _inputRef$current2;
138
- (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();
139
- setSearchQuery("");
82
+ var _inputRef$current;
140
83
  setSelectedOption(option);
141
- setDropdownVisible(false);
84
+ setOpen(false);
85
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
142
86
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(option);
143
87
  };
144
88
  var handleFocusChange = (0, _react.useCallback)(function (focused) {
145
- if (focused || !isDropdownVisible) return;
146
- setDropdownVisible(false);
147
- }, [isDropdownVisible]);
89
+ if (focused || !open) return;
90
+ setOpen(false);
91
+ }, [open]);
148
92
 
149
93
  // Handle closing the dropdown when clicking outside of the input
150
94
  // or when focus leaves the input completely
@@ -152,76 +96,28 @@ var PhoneInput = exports.PhoneInput = /*#__PURE__*/_react.default.forwardRef(fun
152
96
  onChange: handleFocusChange
153
97
  }),
154
98
  containsFocusRef = _useContainsFocus.ref;
155
- var handleCountryPickerKeydown = function handleCountryPickerKeydown(event) {
156
- var _countryPickerRef$cur;
157
- switch (event.key) {
158
- case "Escape":
159
- event.preventDefault();
160
- event.stopPropagation();
161
- setDropdownVisible(false);
162
- (_countryPickerRef$cur = countryPickerRef.current) === null || _countryPickerRef$cur === void 0 ? void 0 : _countryPickerRef$cur.blur();
163
- reset();
164
- return;
165
- case "Enter":
166
- case " ":
167
- event.preventDefault();
168
- event.stopPropagation();
169
- if (!disabled) {
170
- setDropdownVisible(true);
171
- }
172
- return;
173
- }
174
- };
175
- var handleSearchInputKeydown = function handleSearchInputKeydown(event) {
176
- var _searchInputRef$curre;
177
- switch (event.key) {
178
- case "Tab":
179
- if (event.shiftKey) {
180
- // ignore
181
- } else {
182
- // move down to the list
183
- event.preventDefault();
184
- event.stopPropagation();
185
- reset();
186
- set({
187
- cursor: 0,
188
- interactive: true
189
- });
190
- }
191
- return;
192
- case "Enter":
193
- event.preventDefault();
194
- event.stopPropagation();
195
- if (filteredOptions.length) {
196
- handleSelect(filteredOptions[0]);
197
- }
198
- return;
199
- default:
200
- (_searchInputRef$curre = searchInputRef.current) === null || _searchInputRef$curre === void 0 ? void 0 : _searchInputRef$curre.focus();
201
- }
99
+ var handleClose = function handleClose() {
100
+ setOpen(false);
202
101
  };
203
102
  return /*#__PURE__*/_react.default.createElement(_Box.Box, _extends({
204
103
  ref: (0, _composeReactRefs.default)(containerRef, containsFocusRef),
205
104
  width: "100%",
206
105
  className: className
207
- }, boxProps), /*#__PURE__*/_react.default.createElement(ContainerBox, {
106
+ }, boxProps), /*#__PURE__*/_react.default.createElement(PhoneInputContainer, {
208
107
  ref: anchorRef,
209
- isDropdownVisible: isDropdownVisible,
108
+ open: open,
210
109
  hover: hover,
211
110
  focus: focus,
212
111
  error: error,
213
112
  disabled: disabled,
214
113
  placeholder: inputProps.placeholder
215
- }, /*#__PURE__*/_react.default.createElement(SelectContainer, {
114
+ }, /*#__PURE__*/_react.default.createElement(PhoneInputSelect, {
216
115
  "data-testid": "country-picker",
217
- ref: countryPickerRef,
218
116
  disabled: disabled,
219
117
  onClick: function onClick() {
220
- setDropdownVisible(!disabled && !isDropdownVisible);
221
- },
222
- tabIndex: disabled ? -1 : 0,
223
- onKeyDown: handleCountryPickerKeydown
224
- }, selectedOption.text), /*#__PURE__*/_react.default.createElement(StyledInput, _extends({
118
+ setOpen(!disabled && !open);
119
+ }
120
+ }, selectedOption.text), /*#__PURE__*/_react.default.createElement(PhoneInputInput, _extends({
225
121
  disabled: disabled,
226
122
  ref: (0, _composeReactRefs.default)(inputRef, forwardedRef),
227
123
  type: "tel",
@@ -231,42 +127,17 @@ var PhoneInput = exports.PhoneInput = /*#__PURE__*/_react.default.forwardRef(fun
231
127
  maxLength: 25,
232
128
  placeholder: inputProps.placeholder,
233
129
  value: inputValue
234
- }, inputProps)), /*#__PURE__*/_react.default.createElement(StyledLabel, {
130
+ }, inputProps)), /*#__PURE__*/_react.default.createElement(PhoneInputLabel, {
235
131
  htmlFor: inputName
236
- }, "Phone number", /*#__PURE__*/_react.default.createElement("span", null))), isDropdownVisible && /*#__PURE__*/_react.default.createElement(SelectDropdown, {
132
+ }, "Phone number")), open && /*#__PURE__*/_react.default.createElement(PhoneInputDropdown, {
237
133
  ref: tooltipRef,
238
134
  role: "listbox",
239
135
  width: width
240
- }, /*#__PURE__*/_react.default.createElement(_Input.Input, {
241
- ref: searchInputRef,
242
- p: 1,
243
- pb: 0,
244
- autoFocus: true,
245
- placeholder: "Search",
246
- value: searchQuery,
247
- onChange: function onChange(e) {
248
- return setSearchQuery(e.target.value);
249
- },
250
- onKeyDown: handleSearchInputKeydown
251
- }), /*#__PURE__*/_react.default.createElement(SelectOptions, null, optionsWithRefs.map(function (_ref3, i) {
252
- var option = _ref3.option,
253
- ref = _ref3.ref;
254
- return /*#__PURE__*/_react.default.createElement(SelectOption, {
255
- key: i,
256
- ref: ref,
257
- role: "option",
258
- "aria-selected": option.value === selectedOption.value,
259
- "aria-posinset": i + 1,
260
- "aria-setsize": options.length,
261
- selected: option.value === selectedOption.value,
262
- onClick: function onClick() {
263
- return handleSelect(option);
264
- },
265
- tabIndex: -1
266
- }, /*#__PURE__*/_react.default.createElement(_Text.Text, {
267
- minWidth: 80
268
- }, option.text), /*#__PURE__*/_react.default.createElement(_Text.Text, null, option.name));
269
- }))), required && !(error && typeof error === "string") && /*#__PURE__*/_react.default.createElement(_RequiredField.RequiredField, {
136
+ }, /*#__PURE__*/_react.default.createElement(_PhoneInputList.PhoneInputList, {
137
+ options: options,
138
+ onSelect: handleSelect,
139
+ onClose: handleClose
140
+ })), required && !(error && typeof error === "string") && /*#__PURE__*/_react.default.createElement(_RequiredField.RequiredField, {
270
141
  mt: 0.5,
271
142
  ml: 1,
272
143
  disabled: disabled
@@ -279,40 +150,26 @@ var PhoneInput = exports.PhoneInput = /*#__PURE__*/_react.default.forwardRef(fun
279
150
  }, error));
280
151
  });
281
152
  PhoneInput.displayName = "PhoneInput";
282
- var caretMixin = (0, _styledComponents.css)(["&::after{content:\"\";cursor:inherit;width:0;height:0;position:absolute;top:50%;transform:translateY(-50%);right:", ";pointer-events:none;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid ", ";}"], (0, _themeGet.themeGet)("space.1"), function (_ref4) {
283
- var disabled = _ref4.disabled;
284
- return disabled ? (0, _themeGet.themeGet)("colors.mono10") : (0, _themeGet.themeGet)("colors.mono60");
285
- });
286
- var ContainerBox = (0, _styledComponents.default)(_Box.Box).withConfig({
287
- displayName: "PhoneInput__ContainerBox",
153
+ var PhoneInputContainer = (0, _styledComponents.default)(_Box.Box).withConfig({
154
+ displayName: "PhoneInput__PhoneInputContainer",
288
155
  componentId: "sc-lj1bt9-0"
289
156
  })(["position:relative;display:flex;flex-direction:row;", ""], function (props) {
290
- return (0, _styledComponents.css)(["", " ", " ", " ", " ", " &:hover{", "}&:focus-within{", " &:has(input:not(:placeholder-shown)){", " ", ";}}&:has(input:not(:placeholder-shown)){", " ", ";}"], _tokens.PHONE_INPUT_STATES.default, props.hover && _tokens.PHONE_INPUT_STATES.hover, (props.focus || props.isDropdownVisible) && _tokens.PHONE_INPUT_STATES.focus, props.disabled && _tokens.PHONE_INPUT_STATES.disabled, props.error && _tokens.PHONE_INPUT_STATES.error, !props.isDropdownVisible && !props.disabled && _tokens.PHONE_INPUT_STATES.hover, !props.disabled && _tokens.PHONE_INPUT_STATES.focus, _tokens.PHONE_INPUT_STATES.active, props.error && _tokens.PHONE_INPUT_STATES.error, !!props.placeholder && _tokens.PHONE_INPUT_STATES.completed, props.error && _tokens.PHONE_INPUT_STATES.error);
157
+ return (0, _styledComponents.css)(["", " ", " ", " ", " ", " &:hover{", "}&:focus-within{", " &:has(input:not(:placeholder-shown)){", " ", ";}}&:has(input:not(:placeholder-shown)){", " ", ";}"], _tokens.PHONE_INPUT_STATES.default, props.hover && _tokens.PHONE_INPUT_STATES.hover, (props.focus || props.open) && _tokens.PHONE_INPUT_STATES.focus, props.disabled && _tokens.PHONE_INPUT_STATES.disabled, props.error && _tokens.PHONE_INPUT_STATES.error, !props.open && !props.disabled && _tokens.PHONE_INPUT_STATES.hover, !props.disabled && _tokens.PHONE_INPUT_STATES.focus, _tokens.PHONE_INPUT_STATES.active, props.error && _tokens.PHONE_INPUT_STATES.error, !!props.placeholder && _tokens.PHONE_INPUT_STATES.completed, props.error && _tokens.PHONE_INPUT_STATES.error);
291
158
  });
292
- var SelectContainer = (0, _styledComponents.default)(_Box.Box).withConfig({
293
- displayName: "PhoneInput__SelectContainer",
159
+ var PhoneInputSelect = (0, _styledComponents.default)(_Clickable.Clickable).withConfig({
160
+ displayName: "PhoneInput__PhoneInputSelect",
294
161
  componentId: "sc-lj1bt9-1"
295
- })(["display:flex;align-items:center;position:relative;min-width:120px;border:1px solid;border-right:0;padding:0 24px 0 ", ";font-family:", ";border-radius:3px 0 0 3px;border-color:", ";cursor:pointer;line-height:1;transition:color 0.25s,border-color 0.25s;height:50px;font-size:", ";color:", ";", ""], (0, _themeGet.themeGet)("space.1"), (0, _themeGet.themeGet)("fonts.sans"), (0, _themeGet.themeGet)("colors.mono30"), (0, _themeGet.themeGet)("textVariants.sm-display.fontSize"), (0, _themeGet.themeGet)("colors.mono100"), caretMixin);
296
- var SelectDropdown = (0, _styledComponents.default)(_Box.Box).withConfig({
297
- displayName: "PhoneInput__SelectDropdown",
162
+ })(["", " display:flex;align-items:center;position:relative;min-width:120px;border:1px solid;border-right:0;padding:0 24px 0 ", ";font-family:", ";border-radius:3px 0 0 3px;border-color:", ";cursor:pointer;line-height:1;transition:color 0.25s,border-color 0.25s;height:50px;font-size:", ";color:", ";&:focus{outline:none;text-decoration:underline;color:", ";}"], _Select.caretMixin, (0, _themeGet.themeGet)("space.1"), (0, _themeGet.themeGet)("fonts.sans"), (0, _themeGet.themeGet)("colors.mono30"), (0, _themeGet.themeGet)("textVariants.sm-display.fontSize"), (0, _themeGet.themeGet)("colors.mono100"), (0, _themeGet.themeGet)("colors.blue100"));
163
+ var PhoneInputDropdown = (0, _styledComponents.default)(_Box.Box).withConfig({
164
+ displayName: "PhoneInput__PhoneInputDropdown",
298
165
  componentId: "sc-lj1bt9-2"
299
- })(["box-shadow:", ";z-index:1;background:", ";"], (0, _themeGet.themeGet)("effects.dropShadow"), (0, _themeGet.themeGet)("colors.mono0"));
300
- var SelectOptions = (0, _styledComponents.default)(_Box.Box).withConfig({
301
- displayName: "PhoneInput__SelectOptions",
166
+ })(["box-shadow:", ";background:", ";z-index:1;padding:", ";"], (0, _themeGet.themeGet)("effects.dropShadow"), (0, _themeGet.themeGet)("colors.mono0"), (0, _themeGet.themeGet)("space.1"));
167
+ var PhoneInputInput = _styledComponents.default.input.withConfig({
168
+ displayName: "PhoneInput__PhoneInputInput",
302
169
  componentId: "sc-lj1bt9-3"
303
- })(["max-height:308px;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:", ";"], (0, _themeGet.themeGet)("space.1"));
304
- var SelectOption = (0, _styledComponents.default)(_Box.Box).withConfig({
305
- displayName: "PhoneInput__SelectOption",
306
- componentId: "sc-lj1bt9-4"
307
- })(["padding:", " 0;cursor:pointer;display:flex;flex-direction:row;align-items:center;text-decoration:none;color:", ";transition:color 0.25s,text-decoration 0.25s;&:hover{color:", ";text-decoration:underline;}&:focus,&:active{color:", ";text-decoration:none;}", ""], (0, _themeGet.themeGet)("space.1"), (0, _themeGet.themeGet)("colors.mono60"), (0, _themeGet.themeGet)("colors.blue100"), (0, _themeGet.themeGet)("colors.mono100"), function (props) {
308
- return props.selected && (0, _styledComponents.css)(["color:", ";text-decoration:none;"], (0, _themeGet.themeGet)("colors.mono100"));
309
- });
310
- var StyledInput = _styledComponents.default.input.withConfig({
311
- displayName: "PhoneInput__StyledInput",
312
- componentId: "sc-lj1bt9-5"
313
170
  })(["width:100%;background-color:", ";padding:0 ", ";appearance:none;outline:none;line-height:1;border:1px solid;border-radius:0 3px 3px 0;transition:color 0.25s,border-color 0.25s;font-family:", ";font-size:", ";color:", ";border-color:", ";", " ::placeholder{color:", ";transition:color 0.25s;}"], (0, _themeGet.themeGet)("colors.mono0"), (0, _themeGet.themeGet)("space.1"), (0, _themeGet.themeGet)("fonts.sans"), (0, _themeGet.themeGet)("textVariants.sm-display.fontSize"), (0, _themeGet.themeGet)("colors.mono100"), (0, _themeGet.themeGet)("colors.mono30"), _styledSystem.height, (0, _themeGet.themeGet)("colors.mono60"));
314
- var StyledLabel = _styledComponents.default.label.withConfig({
315
- displayName: "PhoneInput__StyledLabel",
316
- componentId: "sc-lj1bt9-6"
317
- })(["position:absolute;top:0;left:5px;padding:0 5px;background-color:transparent;transform:translateY(-50%);transition:color 0.25s;font-family:", ";pointer-events:none;font-size:", ";color:", ";& > span{background-color:", ";height:2px;width:100%;display:block;position:absolute;top:50%;left:0;z-index:-1;}"], (0, _themeGet.themeGet)("fonts.sans"), (0, _themeGet.themeGet)("textVariants.xs.fontSize"), (0, _themeGet.themeGet)("colors.mono60"), (0, _themeGet.themeGet)("colors.mono0"));
171
+ var PhoneInputLabel = _styledComponents.default.label.withConfig({
172
+ displayName: "PhoneInput__PhoneInputLabel",
173
+ componentId: "sc-lj1bt9-4"
174
+ })(["position:absolute;top:0;left:5px;padding:0 5px;background-color:transparent;transform:translateY(-50%);transition:color 0.25s;font-family:", ";pointer-events:none;font-size:", ";color:", ";&::after{content:\"\";display:block;position:absolute;top:50%;left:0;height:2px;width:100%;background-color:", ";z-index:-1;}"], (0, _themeGet.themeGet)("fonts.sans"), (0, _themeGet.themeGet)("textVariants.xs.fontSize"), (0, _themeGet.themeGet)("colors.mono60"), (0, _themeGet.themeGet)("colors.mono0"));
318
175
  //# sourceMappingURL=PhoneInput.js.map