@artsy/palette 46.4.0 → 46.5.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.
- package/dist/cjs/elements/AutocompleteInput/AutocompleteInput.js +3 -1
- package/dist/cjs/elements/AutocompleteInput/AutocompleteInput.js.map +1 -1
- package/dist/cjs/elements/BaseTabs/BaseTab.d.ts +2 -2
- package/dist/cjs/elements/Dropdown/Dropdown.d.ts +17 -3
- package/dist/cjs/elements/Dropdown/Dropdown.js +124 -174
- package/dist/cjs/elements/Dropdown/Dropdown.js.map +1 -1
- package/dist/cjs/elements/MultiSelect/MultiSelect.js +4 -2
- package/dist/cjs/elements/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/cjs/elements/Pointer/Pointer.d.ts +21 -14
- package/dist/cjs/elements/Pointer/Pointer.js +65 -135
- package/dist/cjs/elements/Pointer/Pointer.js.map +1 -1
- package/dist/cjs/elements/Popover/Popover.js +12 -11
- package/dist/cjs/elements/Popover/Popover.js.map +1 -1
- package/dist/cjs/elements/SelectInput/SelectInput.js +3 -1
- package/dist/cjs/elements/SelectInput/SelectInput.js.map +1 -1
- package/dist/cjs/elements/Sup/Sup.d.ts +1 -1
- package/dist/cjs/elements/Tooltip/Tooltip.js +16 -17
- package/dist/cjs/elements/Tooltip/Tooltip.js.map +1 -1
- package/dist/cjs/utils/usePosition.d.ts +70 -37
- package/dist/cjs/utils/usePosition.js +110 -349
- package/dist/cjs/utils/usePosition.js.map +1 -1
- package/dist/esm/elements/AutocompleteInput/AutocompleteInput.js +3 -1
- package/dist/esm/elements/AutocompleteInput/AutocompleteInput.js.map +1 -1
- package/dist/esm/elements/Dropdown/Dropdown.js +124 -173
- package/dist/esm/elements/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/elements/MultiSelect/MultiSelect.js +4 -2
- package/dist/esm/elements/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/esm/elements/Pointer/Pointer.js +66 -134
- package/dist/esm/elements/Pointer/Pointer.js.map +1 -1
- package/dist/esm/elements/Popover/Popover.js +13 -12
- package/dist/esm/elements/Popover/Popover.js.map +1 -1
- package/dist/esm/elements/SelectInput/SelectInput.js +3 -1
- package/dist/esm/elements/SelectInput/SelectInput.js.map +1 -1
- package/dist/esm/elements/Tooltip/Tooltip.js +17 -18
- package/dist/esm/elements/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/utils/usePosition.js +109 -343
- package/dist/esm/utils/usePosition.js.map +1 -1
- package/package.json +3 -2
|
@@ -149,7 +149,8 @@ const AutocompleteInput = ({
|
|
|
149
149
|
}, [reset, state.query]);
|
|
150
150
|
const {
|
|
151
151
|
anchorRef,
|
|
152
|
-
tooltipRef
|
|
152
|
+
tooltipRef,
|
|
153
|
+
floatingStyles
|
|
153
154
|
} = (0, _utils.usePosition)({
|
|
154
155
|
active: isDropdownVisible,
|
|
155
156
|
clamp,
|
|
@@ -376,6 +377,7 @@ const AutocompleteInput = ({
|
|
|
376
377
|
minWidth: 200,
|
|
377
378
|
pt: 1 // Gap in place of `offset` for `usePosition`
|
|
378
379
|
,
|
|
380
|
+
style: floatingStyles,
|
|
379
381
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(AutocompleteInputDropdown, {
|
|
380
382
|
minWidth: dropdownMinWidth,
|
|
381
383
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteInput.js","names":["_CloseIcon","_interopRequireDefault","require","_SearchIcon","_composeReactRefs","_themeGet","_react","_interopRequireWildcard","_styledComponents","_useKeyboardListNavigation","_utils","_useMouseActivity","_useWidthOf","_Box","_Clickable","_LabeledInput","_Spinner","_VisuallyHidden","_AutocompleteInputOption","_AutocompleteInputOptionLabel","_jsxRuntime","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","reducer","state","action","type","open","query","payload","AutocompleteInput","clamp","defaultValue","dropdownMaxHeight","dropdownMinWidth","flip","footer","forwardRef","forwardedRef","header","height","id","loading","onChange","onClear","onClose","onKeyDown","onSelect","onSubmit","options","renderOption","option","jsx","AutocompleteInputOptionLabel","rest","inputRef","useRef","containerRef","headerRef","footerRef","boxProps","inputProps","splitBoxProps","dispatch","useReducer","optionsWithRefs","useMemo","map","ref","createRef","resetUI","setTimeout","current","focus","reset","handleSelect","index","text","useKeyboardListNavigation","list","waitForInteractive","onEnter","element","i","event","preventDefault","stopPropagation","isDropdownVisible","length","useEffect","anchorRef","tooltipRef","usePosition","active","offset","position","width","useWidthOf","handleFocus","handleMouseDown","handleClick","lastMouseMoveTimestamp","useMouseActivity","handleMouseEnter","now","performance","cursor","interactive","handleChange","currentTarget","value","handleClearOrSubmit","handleClose","useCallback","ignoreFocusChangeRef","ignoreFocusChange","onMouseDown","onMouseUp","el","isPointerInteraction","preventScroll","scrollIntoView","block","handleFocusChange","focused","containsFocusRef","useContainsFocus","useClickOutside","onClickOutside","when","handleInputKeydown","blur","handleContainerKeydown","staged","jsxs","Box","composeRefs","children","LabeledInput","role","label","Spinner","size","Clickable","onClick","display","alignItems","fill","onFocus","autoComplete","AutocompleteInputDropdownContainer","minWidth","pt","AutocompleteInputDropdown","AutocompleteInputOptions","maxHeight","AutocompleteInputOption","onMouseEnter","tabIndex","VisuallyHidden","exports","displayName","styled","withConfig","componentId","themeGet"],"sources":["../../../../src/elements/AutocompleteInput/AutocompleteInput.tsx"],"sourcesContent":["import CloseIcon from \"@artsy/icons/CloseIcon\"\nimport SearchIcon from \"@artsy/icons/SearchIcon\"\nimport composeRefs from \"@seznam/compose-react-refs\"\nimport { themeGet } from \"@styled-system/theme-get\"\nimport React, {\n createRef,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from \"react\"\nimport styled from \"styled-components\"\nimport { ResponsiveValue } from \"styled-system\"\nimport { useKeyboardListNavigation } from \"use-keyboard-list-navigation\"\nimport { useClickOutside, useContainsFocus, usePosition } from \"../../utils\"\nimport { useMouseActivity } from \"../../utils/useMouseActivity\"\nimport { useWidthOf } from \"../../utils/useWidthOf\"\nimport { Box, splitBoxProps } from \"../Box\"\nimport { Clickable } from \"../Clickable\"\nimport { InputProps } from \"../Input\"\nimport { LabeledInput } from \"../LabeledInput\"\nimport { Spinner } from \"../Spinner\"\nimport { VisuallyHidden } from \"../VisuallyHidden\"\nimport { AutocompleteInputOption } from \"./AutocompleteInputOption\"\nimport { AutocompleteInputOptionLabel } from \"./AutocompleteInputOptionLabel\"\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 dropdownMinWidth?: 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 dropdownMinWidth,\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: 0,\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 el = optionsWithRefs[index]?.ref?.current\n if (!el) return\n\n const isPointerInteraction =\n performance.now() - lastMouseMoveTimestamp.current < 50\n\n if (isPointerInteraction) {\n // Pointer interactions should not cause scroll\n el.focus({ preventScroll: true })\n return\n }\n\n // Keyboard navigation: focus and ensure visibility\n el.focus({ preventScroll: true })\n try {\n el.scrollIntoView({ block: \"nearest\" })\n } catch {}\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 <AutocompleteInputDropdownContainer\n ref={tooltipRef as any}\n role=\"listbox\"\n width={width}\n minWidth={200}\n pt={1} // Gap in place of `offset` for `usePosition`\n >\n <AutocompleteInputDropdown minWidth={dropdownMinWidth}>\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 </AutocompleteInputDropdownContainer>\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 AutocompleteInputDropdownContainer = styled(Box)`\n z-index: 1;\n`\n\nconst AutocompleteInputDropdown = styled(Box)`\n box-shadow: ${themeGet(\"effects.dropShadow\")};\n`\n\nconst AutocompleteInputOptions = styled(Box)`\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n`\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,iBAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAC,uBAAA,CAAAL,OAAA;AAQA,IAAAM,iBAAA,GAAAP,sBAAA,CAAAC,OAAA;AAEA,IAAAO,0BAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,iBAAA,GAAAT,OAAA;AACA,IAAAU,WAAA,GAAAV,OAAA;AACA,IAAAW,IAAA,GAAAX,OAAA;AACA,IAAAY,UAAA,GAAAZ,OAAA;AAEA,IAAAa,aAAA,GAAAb,OAAA;AACA,IAAAc,QAAA,GAAAd,OAAA;AACA,IAAAe,eAAA,GAAAf,OAAA;AACA,IAAAgB,wBAAA,GAAAhB,OAAA;AACA,IAAAiB,6BAAA,GAAAjB,OAAA;AAA6E,IAAAkB,WAAA,GAAAlB,OAAA;AAAA,SAAAmB,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAf,wBAAAmB,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,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,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAA/B,uBAAAyB,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAO7E;;AAkBA,MAAMiB,OAAO,GAAGA,CAACC,KAAY,EAAEC,MAAc,KAAY;EACvD,QAAQA,MAAM,CAACC,IAAI;IACjB,KAAK,MAAM;MACT,OAAO;QAAE,GAAGF,KAAK;QAAEG,IAAI,EAAE;MAAK,CAAC;IACjC,KAAK,OAAO;MACV,OAAO;QAAE,GAAGH,KAAK;QAAEG,IAAI,EAAE;MAAM,CAAC;IAClC,KAAK,OAAO;MACV,OAAO;QAAE,GAAGH,KAAK;QAAEI,KAAK,EAAE;MAAG,CAAC;IAChC,KAAK,QAAQ;MACX,OAAO;QAAE,GAAGJ,KAAK;QAAEI,KAAK,EAAEH,MAAM,CAACI,OAAO,CAACD,KAAK;QAAED,IAAI,EAAE;MAAK,CAAC;IAC9D,KAAK,QAAQ;MACX,OAAO;QAAE,GAAGH,KAAK;QAAEI,KAAK,EAAEH,MAAM,CAACI,OAAO,CAACD,KAAK;QAAED,IAAI,EAAE;MAAM,CAAC;EAAA;AAEnE,CAAC;AAiCD;AACO,MAAMG,iBAAiB,GAAGA,CAAwC;EACvEC,KAAK,GAAG,KAAK;EACbC,YAAY,GAAG,EAAE;EACjBC,iBAAiB,GAAG,GAAG;EAAE;EACzBC,gBAAgB;EAChBC,IAAI,GAAG,IAAI;EACXC,MAAM;EACNC,UAAU,EAAEC,YAAY;EACxBC,MAAM;EACNC,MAAM;EACNC,EAAE;EACFC,OAAO;EACPC,QAAQ;EACRC,OAAO;EACPC,OAAO;EACPC,SAAS;EACTC,QAAQ;EACRC,QAAQ;EACRC,OAAO;EACPC,YAAY,GAAIC,MAAM,iBAAK,IAAAnD,WAAA,CAAAoD,GAAA,EAACrD,6BAAA,CAAAsD,4BAA4B;IAAA,GAAKF;EAAM,EAAI;EACvE,GAAGG;AACsB,CAAC,KAAK;EAC/B,MAAMC,QAAQ,GAAG,IAAAC,aAAM,EAA0B,IAAI,CAAC;EACtD,MAAMC,YAAY,GAAG,IAAAD,aAAM,EAAwB,IAAI,CAAC;EACxD,MAAME,SAAS,GAAG,IAAAF,aAAM,EAAwB,IAAI,CAAC;EACrD,MAAMG,SAAS,GAAG,IAAAH,aAAM,EAAwB,IAAI,CAAC;EAErD,MAAM,CAACI,QAAQ,EAAEC,UAAU,CAAC,GAAG,IAAAC,kBAAa,EAACR,IAAI,CAAC;EAElD,MAAM,CAAC9B,KAAK,EAAEuC,QAAQ,CAAC,GAAG,IAAAC,iBAAU,EAACzC,OAAO,EAAE;IAC5CI,IAAI,EAAE,KAAK;IACXC,KAAK,EAAEI;EACT,CAAC,CAAC;EAEF,MAAMiC,eAAe,GAAG,IAAAC,cAAO,EAAC,MAAM;IACpC,OAAOjB,OAAO,CAACkB,GAAG,CAAEhB,MAAM,KAAM;MAC9BA,MAAM;MACNiB,GAAG,eAAE,IAAAC,gBAAS;IAChB,CAAC,CAAC,CAAC;EACL,CAAC,EAAE,CAACpB,OAAO,CAAC,CAAC;EAEb,MAAMqB,OAAO,GAAGA,CAAA,KAAM;IACpBC,UAAU,CAAC,MAAM;MACfhB,QAAQ,CAACiB,OAAO,EAAEC,KAAK,EAAE;MACzBC,KAAK,EAAE;MACPX,QAAQ,CAAC;QAAErC,IAAI,EAAE;MAAQ,CAAC,CAAC;IAC7B,CAAC,EAAE,GAAG,CAAC;EACT,CAAC;EAED,MAAMiD,YAAY,GAAGA,CAACxB,MAAS,EAAEyB,KAAa,KAAK;IACjDb,QAAQ,CAAC;MAAErC,IAAI,EAAE,QAAQ;MAAEG,OAAO,EAAE;QAAED,KAAK,EAAEuB,MAAM,CAAC0B;MAAK;IAAE,CAAC,CAAC;IAC7DtB,QAAQ,CAACiB,OAAO,EAAEC,KAAK,EAAE;IACzB1B,QAAQ,GAAGI,MAAM,EAAEyB,KAAK,CAAC;EAC3B,CAAC;EAED,MAAM;IAAEA,KAAK;IAAEF,KAAK;IAAEpD;EAAI,CAAC,GAAG,IAAAwD,oDAAyB,EAAC;IACtDV,GAAG,EAAEX,YAAY;IACjBsB,IAAI,EAAE9B,OAAO;IACb+B,kBAAkB,EAAE,IAAI;IACxBC,OAAO,EAAEA,CAAC;MAAEC,OAAO,EAAE/B,MAAM;MAAEyB,KAAK,EAAEO,CAAC;MAAEC;IAAM,CAAC,KAAK;MACjDA,KAAK,CAACC,cAAc,EAAE;MACtBD,KAAK,CAACE,eAAe,EAAE;MACvBX,YAAY,CAACxB,MAAM,EAAEgC,CAAC,CAAC;MACvBb,OAAO,EAAE;IACX;EACF,CAAC,CAAC;EAEF,MAAMiB,iBAAiB,GAAG/D,KAAK,CAACG,IAAI,IAAIsB,OAAO,CAACuC,MAAM,GAAG,CAAC;;EAE1D;EACA;EACA,IAAAC,gBAAS,EAACf,KAAK,EAAE,CAACzB,OAAO,CAAC,CAAC;;EAE3B;EACA,IAAAwC,gBAAS,EAAC,MAAM;IACd,IAAIjE,KAAK,CAACI,KAAK,KAAK,EAAE,EAAE8C,KAAK,EAAE;EACjC,CAAC,EAAE,CAACA,KAAK,EAAElD,KAAK,CAACI,KAAK,CAAC,CAAC;EAExB,MAAM;IAAE8D,SAAS;IAAEC;EAAW,CAAC,GAAG,IAAAC,kBAAW,EAAC;IAC5CC,MAAM,EAAEN,iBAAiB;IACzBxD,KAAK;IACLI,IAAI;IACJlB,GAAG,EAAEgC,OAAO,CAACuC,MAAM;IACnBM,MAAM,EAAE,CAAC;IACTC,QAAQ,EAAE;EACZ,CAAC,CAAC;EAEF,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,sBAAU,EAAC;IAAE7B,GAAG,EAAEsB;EAAU,CAAC,CAAC;EAEhD,MAAMQ,WAAW,GAAGA,CAAA,KAAM;IACxBxB,KAAK,EAAE;IACPX,QAAQ,CAAC;MAAErC,IAAI,EAAE;IAAO,CAAC,CAAC;EAC5B,CAAC;EAED,MAAMyE,eAAe,GAAGA,CAAChD,MAAS,EAAEgC,CAAS,KAAK,MAAM;IACtDR,YAAY,CAACxB,MAAM,EAAEgC,CAAC,CAAC;IACvBb,OAAO,EAAE;EACX,CAAC;EAED,MAAM8B,WAAW,GAAGA,CAAA,KAAM;IACxBrC,QAAQ,CAAC;MAAErC,IAAI,EAAE;IAAO,CAAC,CAAC;EAC5B,CAAC;;EAED;EACA;EACA;EACA,MAAM;IAAE2E;EAAuB,CAAC,GAAG,IAAAC,kCAAgB,GAAE;EAErD,MAAMC,gBAAgB,GAAIpB,CAAS,IAAK,MAAM;IAC5C,MAAMqB,GAAG,GAAGC,WAAW,CAACD,GAAG,EAAE;;IAE7B;IACA,IAAIA,GAAG,GAAGH,sBAAsB,CAAC7B,OAAO,GAAG,EAAE,EAAE;MAC7ClD,GAAG,CAAC;QAAEoF,MAAM,EAAEvB,CAAC;QAAEwB,WAAW,EAAE;MAAK,CAAC,CAAC;IACvC;EACF,CAAC;EAED,MAAMC,YAAY,GAAIxB,KAA0C,IAAK;IACnE,MAAM;MACJyB,aAAa,EAAE;QAAEC;MAAM;IACzB,CAAC,GAAG1B,KAAK;IAETrB,QAAQ,CAAC;MAAErC,IAAI,EAAE,QAAQ;MAAEG,OAAO,EAAE;QAAED,KAAK,EAAEkF;MAAM;IAAE,CAAC,CAAC;IACvDnE,QAAQ,GAAGyC,KAAK,CAAC;EACnB,CAAC;EAED,MAAM2B,mBAAmB,GAAGA,CAAA,KAAM;IAChC,IAAIvF,KAAK,CAACI,KAAK,KAAK,EAAE,EAAE;MACtBoB,QAAQ,GAAGxB,KAAK,CAACI,KAAK,CAAC;MACvB;IACF;IAEAmC,QAAQ,CAAC;MAAErC,IAAI,EAAE;IAAQ,CAAC,CAAC;IAC3B6B,QAAQ,CAACiB,OAAO,EAAEC,KAAK,EAAE;IACzB7B,OAAO,IAAI;EACb,CAAC;EAED,MAAMoE,WAAW,GAAG,IAAAC,kBAAW,EAAC,MAAM;IACpClD,QAAQ,CAAC;MAAErC,IAAI,EAAE;IAAQ,CAAC,CAAC;IAC3BgD,KAAK,EAAE;IACP7B,OAAO,IAAI;EACb,CAAC,EAAE,CAACA,OAAO,EAAE6B,KAAK,CAAC,CAAC;EAEpB,MAAMwC,oBAAoB,GAAG,IAAA1D,aAAM,EAAU,KAAK,CAAC;EACnD,MAAM2D,iBAAiB,GAAG;IACxBC,WAAW,EAAEA,CAAA,KAAOF,oBAAoB,CAAC1C,OAAO,GAAG,IAAK;IACxD6C,SAAS,EAAEA,CAAA,KAAOH,oBAAoB,CAAC1C,OAAO,GAAG;EACnD,CAAC;;EAED;EACA,IAAAiB,gBAAS,EAAC,MAAM;IACd,MAAM6B,EAAE,GAAGrD,eAAe,CAACW,KAAK,CAAC,EAAER,GAAG,EAAEI,OAAO;IAC/C,IAAI,CAAC8C,EAAE,EAAE;IAET,MAAMC,oBAAoB,GACxBd,WAAW,CAACD,GAAG,EAAE,GAAGH,sBAAsB,CAAC7B,OAAO,GAAG,EAAE;IAEzD,IAAI+C,oBAAoB,EAAE;MACxB;MACAD,EAAE,CAAC7C,KAAK,CAAC;QAAE+C,aAAa,EAAE;MAAK,CAAC,CAAC;MACjC;IACF;;IAEA;IACAF,EAAE,CAAC7C,KAAK,CAAC;MAAE+C,aAAa,EAAE;IAAK,CAAC,CAAC;IACjC,IAAI;MACFF,EAAE,CAACG,cAAc,CAAC;QAAEC,KAAK,EAAE;MAAU,CAAC,CAAC;IACzC,CAAC,CAAC,MAAM,CAAC;EACX,CAAC,EAAE,CAAC9C,KAAK,EAAEX,eAAe,CAAC,CAAC;EAE5B,MAAM0D,iBAAiB,GAAG,IAAAV,kBAAW,EAClCW,OAAgB,IAAK;IACpB,IAAIV,oBAAoB,CAAC1C,OAAO,IAAIoD,OAAO,IAAI,CAACrC,iBAAiB,EAAE;IAEnEyB,WAAW,EAAE;EACf,CAAC,EAED,CAACzB,iBAAiB,EAAEyB,WAAW,CAAC,CACjC;;EAED;EACA;EACA,MAAM;IAAE5C,GAAG,EAAEyD;EAAiB,CAAC,GAAG,IAAAC,uBAAgB,EAAC;IACjDnF,QAAQ,EAAEgF;EACZ,CAAC,CAAC;EAEF,IAAAI,sBAAe,EAAC;IACd3D,GAAG,EAAEyD,gBAAgB;IACrBG,cAAc,EAAEhB,WAAW;IAC3BiB,IAAI,EAAE1C,iBAAiB;IACvB7D,IAAI,EAAE;EACR,CAAC,CAAC;EAEF,MAAMwG,kBAAkB,GAAI9C,KAA4C,IAAK;IAC3E,QAAQA,KAAK,CAACnE,GAAG;MACf;MACA,KAAK,OAAO;QACV,IAAIO,KAAK,CAACI,KAAK,KAAK,EAAE,IAAIgD,KAAK,KAAK,CAAC,CAAC,EAAE;UACtC5B,QAAQ,GAAGxB,KAAK,CAACI,KAAK,CAAC;UACvB0C,OAAO,EAAE;QACX;QACA;;MAEF;MACA,KAAK,QAAQ;QACXc,KAAK,CAACC,cAAc,EAAE;QACtBD,KAAK,CAACE,eAAe,EAAE;QAEvBvB,QAAQ,CAAC;UAAErC,IAAI,EAAE;QAAQ,CAAC,CAAC;QAC3B6B,QAAQ,CAACiB,OAAO,EAAE2D,IAAI,EAAE;QAExB;MAEF;QACE;IAAK;IAGTrF,SAAS,GAAGsC,KAAK,CAAC;EACpB,CAAC;;EAED;EACA,MAAMgD,sBAAsB,GAC1BhD,KAA0C,IACvC;IACH,QAAQA,KAAK,CAACnE,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;QACXmE,KAAK,CAACC,cAAc,EAAE;QACtBD,KAAK,CAACE,eAAe,EAAE;QAEvBvB,QAAQ,CAAC;UAAErC,IAAI,EAAE;QAAQ,CAAC,CAAC;QAC3B6B,QAAQ,CAACiB,OAAO,EAAE2D,IAAI,EAAE;QACxBzD,KAAK,EAAE;QAEP;MAEF;QACEnB,QAAQ,CAACiB,OAAO,EAAEC,KAAK,EAAE;IAAA;EAE/B,CAAC;;EAED;EACA,MAAM4D,MAAM,GAAGpF,OAAO,CAAC2B,KAAK,CAAC;EAE7B,oBACE,IAAA5E,WAAA,CAAAsI,IAAA,EAAC7I,IAAA,CAAA8I,GAAG;IACFnE,GAAG,EAAE,IAAAoE,yBAAW,EAAC/E,YAAY,EAAEoE,gBAAgB,CAAS;IACxD/E,SAAS,EAAEsF,sBAAuB;IAAA,GAC9BxE,QAAQ;IAAA6E,QAAA,gBAEZ,IAAAzI,WAAA,CAAAoD,GAAA,EAACzD,aAAA,CAAA+I,YAAY;MACXtE,GAAG,EAAE,IAAAoE,yBAAW,EAACjF,QAAQ,EAAEmC,SAAS,EAAEpD,YAAY,CAAS;MAC3DqG,IAAI,EAAC,UAAU;MACf,iBAAepD,iBAAkB;MACjC,qBAAkB,MAAM;MAAA,IACnB9C,EAAE,GAAG;QAAEA,EAAE;QAAE,kBAAkB,EAAG,GAAEA,EAAG;MAAiB,CAAC,GAAG,CAAC,CAAC;MACjEmG,KAAK,EACHlG,OAAO,gBACL,IAAA1C,WAAA,CAAAoD,GAAA,EAAC3D,IAAA,CAAA8I,GAAG;QAACvC,KAAK,EAAE,EAAG;QAAAyC,QAAA,eACb,IAAAzI,WAAA,CAAAoD,GAAA,EAACxD,QAAA,CAAAiJ,OAAO;UAACC,IAAI,EAAC;QAAO;MAAG,EACpB,GACJtH,KAAK,CAACI,KAAK,gBACb,IAAA5B,WAAA,CAAAoD,GAAA,EAAC1D,UAAA,CAAAqJ,SAAS;QACRC,OAAO,EAAEjC,mBAAoB;QAC7BvE,MAAM,EAAC,MAAM;QACbyG,OAAO,EAAC,MAAM;QACdC,UAAU,EAAC,QAAQ;QACnB,cAAW,aAAa;QAAAT,QAAA,eAExB,IAAAzI,WAAA,CAAAoD,GAAA,EAACxE,UAAA,CAAA4B,OAAS;UAAC2I,IAAI,EAAC,QAAQ;UAAC;QAAW;MAAG,EAC7B,gBAEZ,IAAAnJ,WAAA,CAAAoD,GAAA,EAACrE,WAAA,CAAAyB,OAAU;QAAC2I,IAAI,EAAC,QAAQ;QAAC;MAAW,EAExC;MACDrC,KAAK,EAAEuB,MAAM,EAAExD,IAAI,IAAIrD,KAAK,CAACI,KAAM;MACnCe,QAAQ,EAAEiE,YAAa;MACvBwC,OAAO,EAAElD,WAAY;MACrBpD,SAAS,EAAEoF,kBAAmB;MAC9Bc,OAAO,EAAE5C,WAAY;MACrBiD,YAAY,EAAC,KAAK;MAClB7G,MAAM,EAAEA,MAAO;MAAA,GACXqB;IAAU,EACd,EAED0B,iBAAiB,iBAChB,IAAAvF,WAAA,CAAAoD,GAAA,EAACkG,kCAAkC;MACjClF,GAAG,EAAEuB,UAAkB;MACvBgD,IAAI,EAAC,SAAS;MACd3C,KAAK,EAAEA,KAAM;MACbuD,QAAQ,EAAE,GAAI;MACdC,EAAE,EAAE,CAAE,CAAC;MAAA;MAAAf,QAAA,eAEP,IAAAzI,WAAA,CAAAsI,IAAA,EAACmB,yBAAyB;QAACF,QAAQ,EAAErH,gBAAiB;QAAAuG,QAAA,gBACpD,IAAAzI,WAAA,CAAAoD,GAAA;UAAKgB,GAAG,EAAEV,SAAU;UAAA,GAAKyD,iBAAiB;UAAAsB,QAAA,EACvClG;QAAM,EACH,eAEN,IAAAvC,WAAA,CAAAoD,GAAA,EAACsG,wBAAwB;UAACC,SAAS,EAAE1H,iBAAkB;UAAAwG,QAAA,EACpDxE,eAAe,CAACE,GAAG,CAAC,CAAC;YAAEhB,MAAM;YAAEiB;UAAI,CAAC,EAAEe,CAAC,KAAK;YAC3C,oBACE,IAAAnF,WAAA,CAAAoD,GAAA,EAACtD,wBAAA,CAAA8J,uBAAuB;cAEtBxF,GAAG,EAAEA,GAAI;cACTuE,IAAI,EAAC,QAAQ;cACb,iBAAexD,CAAC,KAAKP,KAAM;cAC3B,iBAAeO,CAAC,GAAG,CAAE;cACrB,gBAAclC,OAAO,CAACuC,MAAO;cAC7B4B,WAAW,EAAEjB,eAAe,CAAChD,MAAM,EAAEgC,CAAC,CAAE;cACxC0E,YAAY,EAAEtD,gBAAgB,CAACpB,CAAC,CAAE;cAClC2E,QAAQ,EAAE,CAAC,CAAE;cAAArB,QAAA,EAEZvF,YAAY,CAACC,MAAM,EAAEgC,CAAC;YAAC,GAVnBA,CAAC,CAWkB;UAE9B,CAAC;QAAC,EACuB,eAE3B,IAAAnF,WAAA,CAAAoD,GAAA;UAAKgB,GAAG,EAAET,SAAU;UAAA,GAAKwD,iBAAiB;UAAAsB,QAAA,EACvC,OAAOrG,MAAM,KAAK,UAAU,GACzBA,MAAM,CAAC;YAAES,OAAO,EAAEmE;UAAY,CAAC,CAAC,GAChC5E;QAAM,EACN;MAAA;IACoB,EAE/B,eAED,IAAApC,WAAA,CAAAoD,GAAA,EAACvD,eAAA,CAAAkK,cAAc;MAAA,IAAMtH,EAAE,GAAG;QAAEA,EAAE,EAAG,GAAEA,EAAG;MAAiB,CAAC,GAAG,CAAC,CAAC;MAAAgG,QAAA,EAAG;IAIhE,EAAiB,EAEhBlD,iBAAiB,iBAChB,IAAAvF,WAAA,CAAAoD,GAAA,EAACvD,eAAA,CAAAkK,cAAc;MAACpB,IAAI,EAAC,QAAQ;MAAC,eAAY,MAAM;MAAC,aAAU,QAAQ;MAAAF,QAAA,EAChExF,OAAO,CAACuC,MAAM,KAAK,CAAC,GAChB,uBAAsB,GACtB,GAAEvC,OAAO,CAACuC,MAAO;IAAuB,EAEhD;EAAA,EACG;AAEV,CAAC;AAAAwE,OAAA,CAAAlI,iBAAA,GAAAA,iBAAA;AAhWYA,iBAAiB,CAAAmI,WAAA;AAkW9B,MAAMX,kCAAkC,GAAG,IAAAY,yBAAM,EAAC3B,QAAG,CAAC,CAAA4B,UAAA;EAAAF,WAAA;EAAAG,WAAA;AAAA,kBAErD;AAED,MAAMX,yBAAyB,GAAG,IAAAS,yBAAM,EAAC3B,QAAG,CAAC,CAAA4B,UAAA;EAAAF,WAAA;EAAAG,WAAA;AAAA,yBAC7B,IAAAC,kBAAQ,EAAC,oBAAoB,CAAC,CAC7C;AAED,MAAMX,wBAAwB,GAAG,IAAAQ,yBAAM,EAAC3B,QAAG,CAAC,CAAA4B,UAAA;EAAAF,WAAA;EAAAG,WAAA;AAAA,yDAG3C"}
|
|
1
|
+
{"version":3,"file":"AutocompleteInput.js","names":["_CloseIcon","_interopRequireDefault","require","_SearchIcon","_composeReactRefs","_themeGet","_react","_interopRequireWildcard","_styledComponents","_useKeyboardListNavigation","_utils","_useMouseActivity","_useWidthOf","_Box","_Clickable","_LabeledInput","_Spinner","_VisuallyHidden","_AutocompleteInputOption","_AutocompleteInputOptionLabel","_jsxRuntime","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","reducer","state","action","type","open","query","payload","AutocompleteInput","clamp","defaultValue","dropdownMaxHeight","dropdownMinWidth","flip","footer","forwardRef","forwardedRef","header","height","id","loading","onChange","onClear","onClose","onKeyDown","onSelect","onSubmit","options","renderOption","option","jsx","AutocompleteInputOptionLabel","rest","inputRef","useRef","containerRef","headerRef","footerRef","boxProps","inputProps","splitBoxProps","dispatch","useReducer","optionsWithRefs","useMemo","map","ref","createRef","resetUI","setTimeout","current","focus","reset","handleSelect","index","text","useKeyboardListNavigation","list","waitForInteractive","onEnter","element","i","event","preventDefault","stopPropagation","isDropdownVisible","length","useEffect","anchorRef","tooltipRef","floatingStyles","usePosition","active","offset","position","width","useWidthOf","handleFocus","handleMouseDown","handleClick","lastMouseMoveTimestamp","useMouseActivity","handleMouseEnter","now","performance","cursor","interactive","handleChange","currentTarget","value","handleClearOrSubmit","handleClose","useCallback","ignoreFocusChangeRef","ignoreFocusChange","onMouseDown","onMouseUp","el","isPointerInteraction","preventScroll","scrollIntoView","block","handleFocusChange","focused","containsFocusRef","useContainsFocus","useClickOutside","onClickOutside","when","handleInputKeydown","blur","handleContainerKeydown","staged","jsxs","Box","composeRefs","children","LabeledInput","role","label","Spinner","size","Clickable","onClick","display","alignItems","fill","onFocus","autoComplete","AutocompleteInputDropdownContainer","minWidth","pt","style","AutocompleteInputDropdown","AutocompleteInputOptions","maxHeight","AutocompleteInputOption","onMouseEnter","tabIndex","VisuallyHidden","exports","displayName","styled","withConfig","componentId","themeGet"],"sources":["../../../../src/elements/AutocompleteInput/AutocompleteInput.tsx"],"sourcesContent":["import CloseIcon from \"@artsy/icons/CloseIcon\"\nimport SearchIcon from \"@artsy/icons/SearchIcon\"\nimport composeRefs from \"@seznam/compose-react-refs\"\nimport { themeGet } from \"@styled-system/theme-get\"\nimport React, {\n createRef,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from \"react\"\nimport styled from \"styled-components\"\nimport { ResponsiveValue } from \"styled-system\"\nimport { useKeyboardListNavigation } from \"use-keyboard-list-navigation\"\nimport { useClickOutside, useContainsFocus, usePosition } from \"../../utils\"\nimport { useMouseActivity } from \"../../utils/useMouseActivity\"\nimport { useWidthOf } from \"../../utils/useWidthOf\"\nimport { Box, splitBoxProps } from \"../Box\"\nimport { Clickable } from \"../Clickable\"\nimport { InputProps } from \"../Input\"\nimport { LabeledInput } from \"../LabeledInput\"\nimport { Spinner } from \"../Spinner\"\nimport { VisuallyHidden } from \"../VisuallyHidden\"\nimport { AutocompleteInputOption } from \"./AutocompleteInputOption\"\nimport { AutocompleteInputOptionLabel } from \"./AutocompleteInputOptionLabel\"\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 dropdownMinWidth?: 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 dropdownMinWidth,\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, floatingStyles } = usePosition({\n active: isDropdownVisible,\n clamp,\n flip,\n key: options.length,\n offset: 0,\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 el = optionsWithRefs[index]?.ref?.current\n if (!el) return\n\n const isPointerInteraction =\n performance.now() - lastMouseMoveTimestamp.current < 50\n\n if (isPointerInteraction) {\n // Pointer interactions should not cause scroll\n el.focus({ preventScroll: true })\n return\n }\n\n // Keyboard navigation: focus and ensure visibility\n el.focus({ preventScroll: true })\n try {\n el.scrollIntoView({ block: \"nearest\" })\n } catch {}\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 <AutocompleteInputDropdownContainer\n ref={tooltipRef as any}\n role=\"listbox\"\n width={width}\n minWidth={200}\n pt={1} // Gap in place of `offset` for `usePosition`\n style={floatingStyles}\n >\n <AutocompleteInputDropdown minWidth={dropdownMinWidth}>\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 </AutocompleteInputDropdownContainer>\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 AutocompleteInputDropdownContainer = styled(Box)`\n z-index: 1;\n`\n\nconst AutocompleteInputDropdown = styled(Box)`\n box-shadow: ${themeGet(\"effects.dropShadow\")};\n`\n\nconst AutocompleteInputOptions = styled(Box)`\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n`\n"],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ export declare const BaseTab: import("styled-components/dist/types").IStyledComp
|
|
|
21
21
|
ref?: ((instance: HTMLDivElement | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
22
22
|
}, Omit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("..").BoxProps> & import("..").BoxProps, "ref"> & {
|
|
23
23
|
ref?: ((instance: HTMLDivElement | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
24
|
-
}>, TextProps>, "p" | "top" | "bottom" | "left" | "right" | "position" | "
|
|
24
|
+
}>, TextProps>, "p" | "top" | "bottom" | "left" | "right" | "padding" | "width" | "height" | "position" | "size" | "flex" | "border" | "gap" | "alignContent" | "alignItems" | "alignSelf" | "backgroundColor" | "backgroundImage" | "backgroundRepeat" | "backgroundSize" | "borderBottomColor" | "borderBottomLeftRadius" | "borderBottomRightRadius" | "borderBottomStyle" | "borderBottomWidth" | "borderLeftColor" | "borderLeftStyle" | "borderLeftWidth" | "borderRightColor" | "borderRightStyle" | "borderRightWidth" | "borderTopColor" | "borderTopLeftRadius" | "borderTopRightRadius" | "borderTopStyle" | "borderTopWidth" | "boxShadow" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "justifyContent" | "justifyItems" | "justifySelf" | "letterSpacing" | "lineHeight" | "marginBottom" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "order" | "overflowX" | "overflowY" | "paddingBottom" | "paddingLeft" | "paddingRight" | "paddingTop" | "pointerEvents" | "textAlign" | "textTransform" | "verticalAlign" | "zIndex" | "background" | "backgroundPosition" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderStyle" | "borderTop" | "borderWidth" | "gridArea" | "lineClamp" | "margin" | "overflow" | "bg" | "borderX" | "borderY" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "textColor" | "variant" | "hyphenate" | "overflowEllipsis"> & import("styled-system").TypographyProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> & Omit<import("styled-system").ColorProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, string | number | symbol>, "color"> & {
|
|
25
25
|
variant?: import("styled-system").ResponsiveValue<import("@artsy/palette-tokens/dist/typography/v3").TextVariant>;
|
|
26
26
|
textColor?: import("styled-system").ResponsiveValue<import("@artsy/palette-tokens").Color>;
|
|
27
27
|
lineClamp?: number;
|
|
@@ -34,7 +34,7 @@ export declare const BaseTab: import("styled-components/dist/types").IStyledComp
|
|
|
34
34
|
ref?: ((instance: HTMLDivElement | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
35
35
|
}, Omit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("..").BoxProps> & import("..").BoxProps, "ref"> & {
|
|
36
36
|
ref?: ((instance: HTMLDivElement | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
37
|
-
}>, TextProps>, "p" | "top" | "bottom" | "left" | "right" | "position" | "
|
|
37
|
+
}>, TextProps>, "p" | "top" | "bottom" | "left" | "right" | "padding" | "width" | "height" | "position" | "size" | "flex" | "border" | "gap" | "alignContent" | "alignItems" | "alignSelf" | "backgroundColor" | "backgroundImage" | "backgroundRepeat" | "backgroundSize" | "borderBottomColor" | "borderBottomLeftRadius" | "borderBottomRightRadius" | "borderBottomStyle" | "borderBottomWidth" | "borderLeftColor" | "borderLeftStyle" | "borderLeftWidth" | "borderRightColor" | "borderRightStyle" | "borderRightWidth" | "borderTopColor" | "borderTopLeftRadius" | "borderTopRightRadius" | "borderTopStyle" | "borderTopWidth" | "boxShadow" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "justifyContent" | "justifyItems" | "justifySelf" | "letterSpacing" | "lineHeight" | "marginBottom" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "order" | "overflowX" | "overflowY" | "paddingBottom" | "paddingLeft" | "paddingRight" | "paddingTop" | "pointerEvents" | "textAlign" | "textTransform" | "verticalAlign" | "zIndex" | "background" | "backgroundPosition" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderStyle" | "borderTop" | "borderWidth" | "gridArea" | "lineClamp" | "margin" | "overflow" | "bg" | "borderX" | "borderY" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "textColor" | "variant" | "hyphenate" | "overflowEllipsis"> & import("styled-system").TypographyProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> & Omit<import("styled-system").ColorProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, string | number | symbol>, "color"> & {
|
|
38
38
|
variant?: import("styled-system").ResponsiveValue<import("@artsy/palette-tokens/dist/typography/v3").TextVariant>;
|
|
39
39
|
textColor?: import("styled-system").ResponsiveValue<import("@artsy/palette-tokens").Color>;
|
|
40
40
|
lineClamp?: number;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { type SafePolygonOptions } from "@floating-ui/react";
|
|
3
|
+
import { Position, PositionAutoPlacement, PositionFlip } from "../../utils";
|
|
3
4
|
import { BoxProps } from "../Box";
|
|
4
5
|
export interface DropdownActions {
|
|
5
6
|
/** Call to show dropdown */
|
|
@@ -32,15 +33,28 @@ export interface DropdownProps extends Omit<BoxProps, "children"> {
|
|
|
32
33
|
openDropdownByClick?: boolean;
|
|
33
34
|
children: Children;
|
|
34
35
|
/** Optionally disable flipping (default: `true`) */
|
|
35
|
-
flip?:
|
|
36
|
+
flip?: PositionFlip;
|
|
37
|
+
/**
|
|
38
|
+
* Use Floating UI's autoPlacement middleware. Accepts a boolean or full
|
|
39
|
+
* AutoPlacement options object.
|
|
40
|
+
*
|
|
41
|
+
* When enabled, it takes precedence over `flip`.
|
|
42
|
+
*/
|
|
43
|
+
autoPlacement?: PositionAutoPlacement;
|
|
36
44
|
/** Whether to return focus to the previous element when the dropdown closes (default: `true`) */
|
|
37
45
|
returnFocus?: boolean;
|
|
38
46
|
/** Delay in milliseconds before showing the dropdown on hover (ignored when openDropdownByClick is true) */
|
|
39
47
|
delay?: number;
|
|
48
|
+
/**
|
|
49
|
+
* Optional overrides for Floating UI's safePolygon (used when openDropdownByClick is false).
|
|
50
|
+
* When omitted, the default hover close behavior is used (no custom safe polygon).
|
|
51
|
+
* Pass an object to customize, e.g. `{ requireIntent: false, buffer: 1, blockPointerEvents: true }`.
|
|
52
|
+
*/
|
|
53
|
+
safePolygonOptions?: SafePolygonOptions | null;
|
|
40
54
|
}
|
|
41
55
|
/**
|
|
42
56
|
* A `Dropdown` is a small modal-type element which is anchored, and can be
|
|
43
57
|
* positioned relative to, another element and designed to be transitioned in on hover or on click.
|
|
44
58
|
*/
|
|
45
|
-
export declare const Dropdown: ({ placement, visible: _visible, keepInDOM, children, offset, dropdown, dropdownZIndex, openDropdownByClick, transition: _transition, flip, returnFocus, delay, ...rest }: DropdownProps) => React.JSX.Element;
|
|
59
|
+
export declare const Dropdown: ({ placement, visible: _visible, keepInDOM, children, offset, dropdown, dropdownZIndex, openDropdownByClick, transition: _transition, flip, autoPlacement, returnFocus, delay, safePolygonOptions, ...rest }: DropdownProps) => React.JSX.Element;
|
|
46
60
|
export {};
|