@choc-ui/chakra-autocomplete 4.22.0 → 5.1.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"chakra-autocomplete.cjs.production.min.js","sources":["../src/autocomplete-context.ts","../src/helpers/fuzzySearch.ts","../src/helpers/items.ts","../src/helpers/input.ts","../src/helpers/group.ts","../src/use-autocomplete.ts","../src/autocomplete.tsx","../src/autocomplete-item.tsx","../src/autocomplete-creatable.tsx","../src/autocomplete-group.tsx","../src/autocomplete-input.tsx","../src/components/empty-state.tsx","../src/helpers/list.ts","../src/autocomplete-list.tsx","../src/autocomplete-tag.tsx"],"sourcesContent":["import { createContext } from \"@chakra-ui/react-utils\";\nimport { UseAutoCompleteReturn } from \"./types\";\n\nexport const [AutoCompleteProvider, useAutoCompleteContext] = createContext<\n UseAutoCompleteReturn\n>({\n name: \"AutoCompleteContext\",\n errorMessage:\n \"useAutoCompleteContext: `context` is undefined. Seems you forgot to wrap all autoomplete components within `<AutoComplete />`\",\n});\n","/*\n * @param str1 The first string to compare.\n * @param str2 The second string to compare.\n * @param gramSize The size of the grams. Defaults to length 2.\n */\nexport function fuzzyScore(str1: string, str2: string, gramSize: number = 2) {\n function getNGrams(s: string, len: number) {\n s = \" \".repeat(len - 1) + s.toLowerCase() + \" \".repeat(len - 1);\n let v = new Array(s.length - len + 1);\n for (let i = 0; i < v.length; i++) {\n v[i] = s.slice(i, i + len);\n }\n return v;\n }\n\n if (!str1?.length || !str2?.length) {\n return 0.0;\n }\n\n //Order the strings by length so the order they're passed in doesn't matter\n //and so the smaller string's ngrams are always the ones in the set\n let s1 = str1.length < str2.length ? str1 : str2;\n let s2 = str1.length < str2.length ? str2 : str1;\n\n let pairs1 = getNGrams(s1, gramSize);\n let pairs2 = getNGrams(s2, gramSize);\n let set = new Set<string>(pairs1);\n\n let total = pairs2.length;\n let hits = 0;\n for (let item of pairs2) {\n if (set.delete(item)) {\n hits++;\n }\n }\n return hits / total;\n}\n","import { getChildrenDeep } from \"react-nanny\";\nimport { pick, isDefined, isEmpty } from \"@chakra-ui/utils\";\nimport { ReactNode } from \"react\";\nimport { FlexProps } from \"@chakra-ui/react\";\nimport { fuzzyScore } from \"./fuzzySearch\";\nimport { Item } from \"../types\";\nimport { AutoCompleteItemProps } from \"../autocomplete-item\";\n\nexport const getDefItemValue = (item: AutoCompleteItemProps[\"value\"]) =>\n (typeof item === \"string\" ? item : item[Object.keys(item)[0]])?.toString();\n\nexport const setEmphasis = (children: any, query: string) => {\n if (typeof children !== \"string\" || isEmpty(query)) {\n return children;\n }\n const newChildren = children\n .toString()\n .replace(\n new RegExp(escapeRegex(query), \"gi\"),\n (match: any) => `<mark>${match}</mark>`\n );\n return newChildren;\n};\n\nexport const getItemList = (children: ReactNode): Item[] => {\n const itemChildren = getChildrenDeep(\n children,\n (child: any) => child?.type?.displayName === \"AutoCompleteItem\"\n );\n\n return itemChildren.map(item => {\n const itemObj = pick(item.props, [\"value\", \"label\", \"fixed\", \"disabled\"]);\n const { getValue = getDefItemValue } = item.props;\n const value = getValue(itemObj.value);\n const finObj = isDefined(itemObj.label)\n ? itemObj\n : { ...itemObj, label: value };\n return { ...finObj, value, originalValue: itemObj.value };\n });\n};\n\nexport const getFocusedStyles = (): FlexProps => {\n return {\n bg: \"whiteAlpha.100\",\n _light: {\n bg: \"gray.200\",\n },\n };\n};\n\nexport const defaultFilterMethod = (\n query: string,\n itemValue: Item[\"value\"],\n itemLabel: Item[\"label\"]\n) => {\n return (\n itemValue?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n itemLabel?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n fuzzyScore(query, itemValue) >= 0.5 ||\n fuzzyScore(query, itemLabel) >= 0.5\n );\n};\n\nfunction escapeRegex(string: string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n}\n","export const getMultipleWrapStyles = (themeInput: any, multiple?: boolean) => ({\n ...(multiple && {\n ...themeInput.field,\n _focusWithin: themeInput.field._focus,\n pos: \"relative\",\n minH: 9,\n // px: 3,\n py: 1.5,\n spacing: 3,\n }),\n cursor: \"text\",\n h: \"fit-content\",\n // w: \"full\",\n});\n","import { isDefined, runIfFn } from \"@chakra-ui/utils\";\nimport { getChildDeep } from \"react-nanny\";\nimport { ReactNode } from \"react\";\nimport { getDefItemValue } from \"./items\";\n\nexport const hasFirstItem = (children: ReactNode, firstItem: any) => {\n const result = getChildDeep(\n children,\n (child: any) =>\n child?.type?.displayName === \"AutoCompleteItem\" &&\n child.props.value === firstItem?.value\n );\n\n return result;\n};\nexport const hasLastItem = (children: ReactNode, lastItem: any) => {\n const result = getChildDeep(\n children,\n (child: any) =>\n child?.type?.displayName === \"AutoCompleteItem\" &&\n child.props.value === lastItem?.value\n );\n return result;\n};\n\nexport const hasChildren = (children: any, filteredList: any[]) => {\n return isDefined(\n getChildDeep(children, (child: any) => {\n const value = runIfFn(\n child.props?.getValue || getDefItemValue,\n child.props?.value || {}\n );\n return filteredList.some(i => i.value === value);\n })\n );\n};\n","import {\n useDimensions,\n useDisclosure,\n useUpdateEffect,\n useControllableState,\n} from \"@chakra-ui/react\";\nimport {\n callAll,\n getFirstItem,\n getLastItem,\n getNextItem,\n getPrevItem,\n isObject,\n isEmpty,\n isUndefined,\n runIfFn,\n} from \"@chakra-ui/utils\";\nimport { omit } from \"@chakra-ui/utils\";\n\nimport { useEffect, useRef, useState } from \"react\";\n\nimport { AutoCompleteProps } from \"./autocomplete\";\nimport {\n defaultFilterMethod,\n getDefItemValue,\n getFocusedStyles,\n getItemList,\n setEmphasis,\n} from \"./helpers/items\";\nimport { getMultipleWrapStyles } from \"./helpers/input\";\nimport { hasChildren, hasFirstItem, hasLastItem } from \"./helpers/group\";\nimport { Item, UseAutoCompleteReturn } from \"./types\";\n\n/**\n * useAutoComplete that provides all the state and focus management logic\n * for the autocomplete component. It is consumed by the `Autocomplete` component\n *\n */\n\nexport function useAutoComplete(\n autoCompleteProps: AutoCompleteProps\n): UseAutoCompleteReturn {\n let {\n closeOnBlur = true,\n closeOnSelect,\n creatable,\n emphasize,\n emptyState = true,\n freeSolo,\n isReadOnly,\n listAllValuesOnFocus,\n maxSuggestions,\n multiple,\n defaultValue,\n defaultValues = defaultValue ? [defaultValue] : [],\n onReady,\n defaultIsOpen,\n disableFilter,\n restoreOnBlurIfEmpty = !freeSolo,\n shouldRenderSuggestions = () => true,\n submitKeys = [],\n suggestWhenEmpty,\n value,\n values: valuesProp = value\n ? typeof value === \"string\"\n ? [value]\n : [...value]\n : undefined,\n } = autoCompleteProps;\n closeOnSelect = closeOnSelect ? closeOnSelect : multiple ? false : true;\n\n freeSolo = freeSolo ? freeSolo : multiple ? true : autoCompleteProps.freeSolo;\n\n const { isOpen, onClose, onOpen } = useDisclosure({ defaultIsOpen });\n\n const children = runIfFn(autoCompleteProps.children, {\n isOpen,\n onClose,\n onOpen,\n });\n const itemList: Item[] = getItemList(children);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const interactionRef = useRef<\"mouse\" | \"keyboard\" | null>(null);\n\n const [listAll, setListAll] = useState(false);\n\n let defaultQuery = \"\";\n if (multiple) defaultQuery = \"\";\n else if (!isUndefined(defaultValues)) defaultQuery = defaultValues[0];\n else if (!isUndefined(valuesProp)) defaultQuery = valuesProp[0];\n\n const [query, setQuery] = useState<string>(defaultQuery ?? \"\");\n const filteredResults = disableFilter\n ? itemList\n : itemList\n .filter(\n i =>\n i.fixed ||\n runIfFn(\n autoCompleteProps.filter || defaultFilterMethod,\n query,\n i.value,\n i.label\n ) ||\n listAll\n )\n .filter((i, index) =>\n maxSuggestions ? i.fixed || index < maxSuggestions : true\n );\n\n // Add Creatable to Filtered List\n const creatableArr: Item[] = creatable\n ? [{ value: query, noFilter: true, creatable: true }]\n : [];\n\n const filteredList = [...filteredResults, ...creatableArr];\n const [values, setValues] = useControllableState({\n defaultValue: defaultValues,\n value: valuesProp,\n onChange: (newValues: any[]) => {\n const item = filteredList.find(opt => opt.value === newValues[0]);\n const items = newValues.map(val =>\n filteredList.find(opt => opt.value === val)\n );\n runIfFn(\n autoCompleteProps.onChange,\n multiple ? newValues : newValues[0],\n multiple ? items : item\n );\n },\n });\n\n const [focusedValue, setFocusedValue] = useState<Item[\"value\"]>(\n itemList[0]?.value\n );\n\n const maxSelections = autoCompleteProps.maxSelections || values.length + 1;\n\n const focusedIndex = filteredList.findIndex(i => i.value === focusedValue);\n const nextItem = getNextItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const prevItem = getPrevItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const firstItem = getFirstItem(filteredList);\n const lastItem = getLastItem(filteredList);\n\n useUpdateEffect(() => {\n setFocusedValue(firstItem?.value);\n }, [query]);\n\n useEffect(() => {\n if (!isOpen) setFocusedValue(itemList[0]?.value);\n }, [isOpen]);\n\n useEffect(() => {\n const focusedItem = itemList.find(i => i.value === focusedValue);\n runIfFn(autoCompleteProps.onOptionFocus, {\n item: focusedItem!,\n focusMethod: interactionRef.current,\n isNewInput: focusedItem?.creatable,\n });\n }, [focusedValue, autoCompleteProps.onOptionFocus]);\n\n const selectItem = (optionValue: Item[\"value\"]) => {\n if (!values.includes(optionValue) && values.length < maxSelections) {\n setValues(v => (multiple ? [...v, optionValue] : [optionValue]));\n }\n\n const option = filteredList.find(i => i.value === optionValue);\n\n if (multiple) {\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n item: option!,\n selectMethod: interactionRef.current,\n isNewInput: option?.creatable,\n });\n if (option?.creatable) {\n runIfFn(autoCompleteProps.onCreateOption, {\n item: omit(option!, [\"noFilter\"]),\n selectMethod: interactionRef.current,\n });\n }\n\n const optionLabel = option?.label || option?.value;\n setQuery(() => (multiple ? \"\" : optionLabel ?? \"\"));\n\n if (closeOnSelect) onClose();\n };\n\n const removeItem: UseAutoCompleteReturn[\"removeItem\"] = (\n itemValue,\n focusInput\n ) => {\n setValues(prevValues => {\n const item = itemList.find(opt => opt.value === itemValue);\n runIfFn(autoCompleteProps.onTagRemoved, itemValue, item, prevValues);\n return prevValues.filter(i => i !== itemValue);\n });\n if (query === itemValue) setQuery(\"\");\n if (focusInput) inputRef.current?.focus();\n };\n\n const resetItems = (focusInput?: boolean) => {\n setValues([]);\n if (focusInput) inputRef.current?.focus();\n };\n\n const tags = multiple\n ? values.map(tag => ({\n label: itemList.find(item => item.value === tag)?.label || tag,\n onRemove: () => removeItem(tag),\n }))\n : [];\n\n useEffect(() => {\n runIfFn(onReady, { tags });\n }, [values]);\n\n const getInputProps: UseAutoCompleteReturn[\"getInputProps\"] = (\n props,\n themeInput\n ) => {\n const { onBlur, onChange, onFocus, onKeyDown, variant, ...rest } = props;\n\n return {\n wrapper: {\n ref: inputWrapperRef,\n onClick: () => {\n inputRef?.current?.focus();\n },\n ...getMultipleWrapStyles(themeInput, multiple),\n ...rest,\n },\n input: {\n isReadOnly,\n onFocus: e => {\n runIfFn(onFocus, e);\n if (autoCompleteProps.openOnFocus && !isReadOnly) onOpen();\n if (autoCompleteProps.selectOnFocus) e.target.select();\n if (listAllValuesOnFocus) setListAll(true);\n },\n onBlur: e => {\n runIfFn(onBlur, e);\n\n const listIsFocused =\n e.relatedTarget === listRef?.current ||\n listRef.current?.contains(e.relatedTarget as any);\n const inputWrapperIsFocused = inputWrapperRef.current?.contains(\n e.relatedTarget as any\n );\n if (!listIsFocused && !inputWrapperIsFocused) {\n if (closeOnBlur) onClose();\n if (!values.includes(e.target.value) && restoreOnBlurIfEmpty) {\n const latestValue = getLastItem(values);\n const latestValueItem = itemList.find(\n i => i.value === latestValue\n );\n const latestValueLabel =\n latestValueItem?.label || latestValueItem?.value || \"\";\n setQuery(latestValueLabel);\n }\n }\n },\n onChange: e => {\n const newValue = e.target.value;\n runIfFn(onChange, e);\n setQuery(newValue);\n const queryIsEmpty = isEmpty(newValue);\n if (\n runIfFn(shouldRenderSuggestions, newValue) &&\n (!queryIsEmpty || suggestWhenEmpty)\n )\n onOpen();\n else onClose();\n setListAll(false);\n },\n onKeyDown: e => {\n runIfFn(onKeyDown, e);\n interactionRef.current = \"keyboard\";\n\n const { key } = e;\n const focusedItem = filteredList[focusedIndex];\n if ([\"Enter\", ...submitKeys].includes(key)) {\n if (focusedItem && !focusedItem?.disabled)\n selectItem(focusedItem?.value);\n else inputRef.current?.focus();\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowDown\") {\n setFocusedValue(nextItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowUp\") {\n setFocusedValue(prevItem?.value);\n\n e.preventDefault();\n return;\n }\n\n if (key === \"Tab\") {\n setFocusedValue(nextItem?.value);\n\n if (isOpen) {\n e.preventDefault();\n }\n\n return;\n }\n\n if (key === \"Home\") {\n setFocusedValue(firstItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"End\") {\n setFocusedValue(lastItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"Escape\") {\n callAll(onClose, e.preventDefault);\n }\n },\n value: query,\n variant: multiple ? \"unstyled\" : variant,\n ...rest,\n },\n };\n };\n\n const wrapperDim = useDimensions(inputWrapperRef, true);\n const inputDim = useDimensions(inputRef, true);\n const getListProps: UseAutoCompleteReturn[\"getListProps\"] = () => {\n const width = autoCompleteProps.multiple\n ? (wrapperDim?.marginBox.width as number)\n : (inputDim?.marginBox.width as number);\n return {\n width,\n };\n };\n\n const getItemProps: UseAutoCompleteReturn[\"getItemProps\"] = (\n props,\n creatable\n ) => {\n const {\n _fixed,\n _focus,\n children: itemChild,\n disabled,\n label,\n value: valueProp,\n fixed,\n getValue = getDefItemValue,\n onClick,\n onMouseOver,\n sx,\n ...rest\n } = props;\n const value = creatable ? valueProp : getValue(valueProp)?.toString();\n const isFocused = value === focusedValue;\n const isValidSuggestion =\n filteredList.findIndex(i => i.value === value) >= 0;\n const itemLabel = itemChild || label || value;\n return {\n item: {\n ...(typeof itemLabel !== \"string\" || !emphasize\n ? { children: itemLabel }\n : {\n dangerouslySetInnerHTML: {\n __html: setEmphasis(itemLabel, query),\n },\n }),\n \"aria-selected\": values.includes(value),\n \"aria-disabled\": disabled,\n _disabled: { opacity: 0.4, cursor: \"not-allowed\", userSelect: \"none\" },\n onClick: e => {\n runIfFn(onClick, e);\n if (!disabled) selectItem(value);\n else inputRef.current?.focus();\n },\n onMouseOver: e => {\n runIfFn(onMouseOver, e);\n setFocusedValue(value);\n interactionRef.current = \"mouse\";\n },\n sx: {\n ...sx,\n mark: {\n color: \"inherit\",\n bg: \"transparent\",\n ...(isObject(emphasize)\n ? emphasize\n : {\n fontWeight: emphasize ? \"extrabold\" : \"inherit\",\n }),\n },\n },\n ...(isFocused && (_focus || getFocusedStyles())),\n ...(fixed && _fixed),\n ...rest,\n },\n root: {\n isValidSuggestion,\n value,\n },\n };\n };\n\n const getGroupProps: UseAutoCompleteReturn[\"getGroupProps\"] = props => {\n const hasItems = hasChildren(props.children, filteredList);\n return {\n divider: {\n hasFirstChild: hasFirstItem(props.children, firstItem),\n hasLastChild: hasLastItem(\n props.children,\n getLastItem(filteredList.filter(i => isUndefined(i?.noFilter)))\n ),\n },\n group: {\n display: hasItems ? \"initial\" : \"none\",\n },\n };\n };\n\n const getEmptyStateProps: UseAutoCompleteReturn[\"getEmptyStateProps\"] = defaultEmptyState => {\n const noSuggestions = filteredList.every(i => i.noFilter);\n if (noSuggestions && emptyState && !creatable) {\n return typeof emptyState === \"boolean\"\n ? defaultEmptyState\n : runIfFn(emptyState, { query });\n }\n };\n\n return {\n autoCompleteProps,\n children,\n filteredList,\n filteredResults,\n focusedValue,\n getEmptyStateProps,\n getGroupProps,\n getInputProps,\n getItemProps,\n getListProps,\n inputRef,\n interactionRef,\n isOpen,\n itemList,\n listRef,\n onClose,\n onOpen,\n query,\n removeItem,\n resetItems,\n setQuery,\n tags,\n values,\n };\n}\n","import React, { useImperativeHandle } from \"react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\n\nimport { AutoCompleteProvider } from \"./autocomplete-context\";\nimport { useAutoComplete } from \"./use-autocomplete\";\nimport { chakra, forwardRef, Popover } from \"@chakra-ui/react\";\nimport { AutoCompleteRefMethods, UseAutoCompleteProps } from \"./types\";\n\nexport type AutoCompleteChildProps = {\n isOpen: boolean;\n onClose: () => void;\n onOpen: () => void;\n};\nexport interface AutoCompleteProps extends UseAutoCompleteProps {\n children: MaybeRenderProp<AutoCompleteChildProps>;\n ref?: React.RefObject<AutoCompleteRefMethods>;\n}\n\nexport const AutoComplete = forwardRef<AutoCompleteProps, \"div\">(\n (props, ref) => {\n const context = useAutoComplete(props);\n const {\n children,\n isOpen,\n onClose,\n onOpen,\n resetItems,\n removeItem,\n } = context;\n\n useImperativeHandle(ref, () => ({\n resetItems,\n removeItem,\n }));\n\n return (\n <AutoCompleteProvider value={context}>\n <Popover\n isLazy\n isOpen={isOpen}\n onClose={onClose}\n onOpen={onOpen}\n autoFocus={false}\n placement=\"bottom\"\n closeOnBlur={true}\n >\n <chakra.div\n sx={{\n \".chakra-popover__popper\": {\n position: \"unset !important\",\n },\n }}\n w=\"full\"\n ref={ref}\n >\n {children}\n </chakra.div>\n </Popover>\n </AutoCompleteProvider>\n );\n }\n);\n\nAutoComplete.displayName = \"AutoComplete\";\n","import {\n CSSObject,\n Flex,\n FlexProps,\n forwardRef,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport { isUndefined, omit } from \"@chakra-ui/utils\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteItemProps extends FlexProps {\n value: any;\n label?: string;\n fixed?: boolean;\n _focus?: CSSObject | any;\n disabled?: boolean;\n _fixed?: CSSObject;\n getValue?: (item: AutoCompleteItemProps[\"value\"]) => any;\n}\n\nexport const AutoCompleteItem = forwardRef<AutoCompleteItemProps, \"div\">(\n (props, forwardedRef) => {\n const {\n focusedValue,\n getItemProps,\n interactionRef,\n } = useAutoCompleteContext();\n const itemRef = useRef<any>();\n const ref = useMergeRefs(forwardedRef, itemRef);\n\n const itemProps = getItemProps(props);\n const { isValidSuggestion, value } = itemProps.root;\n\n const isFocused = focusedValue === value;\n\n useEffect(() => {\n if (isFocused && interactionRef.current === \"keyboard\")\n itemRef?.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }, [isFocused, interactionRef]);\n\n useEffect(() => {\n if (typeof value !== \"string\") console.warn(\"wow\");\n if (typeof value !== \"string\" && isUndefined(props.getValue))\n console.error(\n \"You must define the `getValue` prop, when an Item's value is not a string\"\n );\n }, []);\n\n const { children, dangerouslySetInnerHTML, ...restProps } = itemProps.item;\n\n const rest = omit(restProps, [\"groupId\"] as any);\n\n return isValidSuggestion ? (\n <Flex ref={ref} {...baseItemStyles} {...rest}>\n {children ? (\n children\n ) : (\n <span dangerouslySetInnerHTML={dangerouslySetInnerHTML} />\n )}\n </Flex>\n ) : null;\n }\n);\n\nAutoCompleteItem.displayName = \"AutoCompleteItem\";\n\nexport const baseItemStyles: FlexProps = {\n mx: \"2\",\n px: \"2\",\n py: \"2\",\n rounded: \"md\",\n cursor: \"pointer\",\n};\n","import { Flex, FlexProps } from \"@chakra-ui/react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport { isEmpty, runIfFn } from \"@chakra-ui/utils\";\n\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { baseItemStyles } from \"./autocomplete-item\";\n\ninterface AutoCompleteCreatableProps extends FlexProps {\n children?: MaybeRenderProp<{ value: any }>;\n alwaysDisplay?: boolean;\n}\n\nexport function AutoCompleteCreatable(props: AutoCompleteCreatableProps) {\n const { alwaysDisplay, children: childrenProp, ...rest } = props;\n const {\n autoCompleteProps,\n getItemProps,\n query,\n filteredResults,\n } = useAutoCompleteContext();\n\n const { children, ...itemProps } = getItemProps(\n {\n ...props,\n value: query,\n children: runIfFn(childrenProp, {\n value: query,\n }),\n },\n true\n ).item;\n\n const queryExistsInList = filteredResults.some(i => i.value === query);\n const showWhenEmpty = isEmpty(query) ? alwaysDisplay : true;\n const showCreatable =\n autoCompleteProps.creatable && showWhenEmpty && !queryExistsInList;\n\n return showCreatable ? (\n <Flex {...baseItemStyles} {...itemProps} {...rest}>\n {children || `Add ${query}`}\n </Flex>\n ) : null;\n}\n\nAutoCompleteCreatable.displayName = \"AutoCompleteCreatable\";\n","import {\n Box,\n BoxProps,\n Divider,\n DividerProps,\n Flex,\n FlexProps,\n forwardRef,\n} from \"@chakra-ui/react\";\nimport { omit } from \"@chakra-ui/utils\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteGroupProps extends BoxProps {\n children?: React.ReactNode;\n showDivider?: boolean;\n dividerColor?: string;\n}\n\nexport const AutoCompleteGroup = forwardRef<AutoCompleteGroupProps, \"div\">(\n (props, ref) => {\n const { children, showDivider, ...restProps } = props;\n const rest = omit(restProps, [\"groupSibling\"] as any);\n\n const { getGroupProps } = useAutoCompleteContext();\n\n const { group } = getGroupProps(props);\n\n const dividerStyles = useDividerStyles(props);\n\n return (\n <Box ref={ref} {...group} {...rest}>\n <Divider {...dividerStyles.top} />\n {children}\n <Divider {...dividerStyles.bottom} />\n </Box>\n );\n }\n);\n\nexport const AutoCompleteGroupTitle = forwardRef<FlexProps, \"div\">(\n (props, ref) => {\n return <Flex {...baseTitleStyles} {...props} ref={ref} />;\n }\n);\n\nAutoCompleteGroup.displayName = \"AutoCompleteGroup\";\nAutoCompleteGroupTitle.displayName = \"AutoCompleteGroupTitle\";\n\nconst baseTitleStyles: FlexProps = {\n ml: 5,\n my: 1,\n fontSize: \"xs\",\n letterSpacing: \"wider\",\n fontWeight: \"extrabold\",\n textTransform: \"uppercase\",\n};\n\nconst useDividerStyles = (\n props: AutoCompleteGroupProps & { groupSibling?: boolean }\n) => {\n const { getGroupProps } = useAutoCompleteContext();\n\n const hasGroupSibling: unknown = props.groupSibling;\n\n const {\n divider: { hasFirstChild, hasLastChild },\n } = getGroupProps(props as AutoCompleteGroupProps);\n\n const baseStyles: DividerProps = {\n my: 2,\n borderColor: props.dividerColor,\n };\n\n const top = {\n ...baseStyles,\n mb: 4,\n display: !props.showDivider || hasFirstChild ? \"none\" : \"\",\n };\n const bottom = {\n ...baseStyles,\n display:\n !props.showDivider || hasLastChild || hasGroupSibling ? \"none\" : \"\",\n };\n\n return { top, bottom };\n};\n","import {\n CSSObject,\n forwardRef,\n Input,\n InputProps,\n useMergeRefs,\n useMultiStyleConfig,\n Wrap,\n WrapItem,\n} from \"@chakra-ui/react\";\nimport { runIfFn } from \"@chakra-ui/utils\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { UseAutoCompleteReturn } from \"./types\";\n\nexport interface AutoCompleteInputProps extends InputProps {\n children?: MaybeRenderProp<{ tags: UseAutoCompleteReturn[\"tags\"] }>;\n wrapStyles?: CSSObject;\n}\n\nexport const AutoCompleteInput = forwardRef<AutoCompleteInputProps, \"input\">(\n (props, forwardedRef) => {\n const {\n autoCompleteProps,\n inputRef,\n getInputProps,\n tags,\n } = useAutoCompleteContext();\n\n // const ref = useMergeRefs(forwardedRef, inputRef);\n\n const { children: childrenProp, isInvalid, ...rest } = props;\n\n const themeInput: any = useMultiStyleConfig(\"Input\", props);\n\n const { wrapper, input: inputProps } = getInputProps(rest, themeInput);\n const { ref: wrapperRef, ...wrapperProps } = wrapper;\n const ref = useMergeRefs(forwardedRef, inputRef);\n\n const children = runIfFn(childrenProp, { tags });\n\n const simpleInput = (\n <Input isInvalid={isInvalid} {...(inputProps as any)} ref={ref} />\n );\n\n const multipleInput = (\n <Wrap {...wrapperProps} ref={wrapperRef}>\n {children}\n <WrapItem as={Input} {...(inputProps as any)} ref={ref} />\n </Wrap>\n );\n\n return <>{autoCompleteProps.multiple ? multipleInput : simpleInput}</>;\n }\n);\n\nAutoCompleteInput.displayName = \"Input\";\n\nAutoCompleteInput.id = \"Input\";\n","import { Box, BoxProps, Flex, FlexProps } from \"@chakra-ui/layout\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"../autocomplete-context\";\n\nexport const EmptyState = (props: BoxProps) => {\n const { getEmptyStateProps } = useAutoCompleteContext();\n\n const emptyState = getEmptyStateProps(\n <Flex {...emptyStyles}>No options found!</Flex>\n );\n\n return <Box {...props}>{emptyState}</Box>;\n};\n\nconst emptyStyles: FlexProps = {\n fontSize: \"sm\",\n align: \"center\",\n justify: \"center\",\n fontWeight: \"bold\",\n fontStyle: \"italic\",\n};\n","import React from \"react\";\n\nconst VALID_AUTOCOMPLETE_LIST_CHILDREN = [\n \"AutoCompleteGroup\",\n \"AutoCompleteItem\",\n \"AutoCompleteCreatable\",\n];\n\nexport const siblingInfo = (children: React.ReactNode) => {\n const items = React.Children.map(children, (child: any, i) => {\n if (child?.type?.displayName === \"AutoCompleteGroup\") {\n const sibling: any = React.Children.toArray(children)[i + 1];\n return React.cloneElement(child, {\n groupSibling: sibling\n ? sibling.type.displayName === \"AutoCompleteGroup\"\n : false,\n });\n }\n return child;\n }) as React.ReactNode;\n\n const nonAutocompleteItems = React.Children.toArray(items).filter(\n (child: any) => {\n return !VALID_AUTOCOMPLETE_LIST_CHILDREN.includes(\n child?.type?.displayName\n );\n }\n );\n\n const autoCompleteItems = React.Children.toArray(items).filter(\n (child: any) => {\n return VALID_AUTOCOMPLETE_LIST_CHILDREN.includes(\n child?.type?.displayName\n );\n }\n );\n\n return [autoCompleteItems, nonAutocompleteItems] as const;\n};\n","import {\n forwardRef,\n PopoverContent,\n PopoverContentProps,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { EmptyState } from \"./components/empty-state\";\nimport { siblingInfo } from \"./helpers/list\";\n\nexport type AutoCompleteListProps = PopoverContentProps;\n\nexport const AutoCompleteList = forwardRef<AutoCompleteListProps, \"div\">(\n (props, forwardedRef) => {\n const { children, ...rest } = props;\n const { listRef, getListProps } = useAutoCompleteContext();\n const ref = useMergeRefs(forwardedRef, listRef);\n const listProps = getListProps();\n const [autoCompleteItems, nonAutoCompleteItems] = siblingInfo(children);\n\n return (\n <PopoverContent ref={ref} {...baseStyles} {...listProps} {...rest}>\n {autoCompleteItems}\n <EmptyState />\n {nonAutoCompleteItems}\n </PopoverContent>\n );\n }\n);\n\nAutoCompleteList.displayName = \"AutoCompleteList\";\n\nconst baseStyles: PopoverContentProps = {\n mt: \"4\",\n py: \"4\",\n opacity: \"0\",\n bg: \"#232934\",\n rounded: \"md\",\n maxH: \"350px\",\n border: \"none\",\n shadow: \"base\",\n pos: \"absolute\",\n zIndex: \"popover\",\n overflowY: \"auto\",\n\n _light: {\n bg: \"#ffffff\",\n },\n\n _focus: {\n boxShadow: \"none\",\n },\n};\n","import { WrapItem } from \"@chakra-ui/layout\";\nimport { Tag, TagCloseButton, TagLabel, TagProps } from \"@chakra-ui/tag\";\nimport { runIfFn } from \"@chakra-ui/utils\";\nimport React, { memo } from \"react\";\n\ntype AutoCompleteTagProps = {\n disabled?: boolean;\n label: string;\n onRemove?: () => void;\n} & TagProps;\n\nexport const AutoCompleteTag = memo((props: AutoCompleteTagProps) => {\n const { label, onRemove, disabled, ...rest } = props;\n\n return (\n <WrapItem>\n <Tag\n borderRadius=\"md\"\n fontWeight=\"normal\"\n {...(disabled && disabledStyles)}\n {...rest}\n >\n <TagLabel>{label}</TagLabel>\n <TagCloseButton\n onClick={() => !disabled && runIfFn(onRemove)}\n cursor=\"pointer\"\n {...(disabled && disabledStyles)}\n />\n </Tag>\n </WrapItem>\n );\n});\n\nconst disabledStyles: TagProps = {\n cursor: \"text\",\n userSelect: \"none\",\n opacity: 0.4,\n _focus: { boxShadow: \"none\" },\n};\n"],"names":["createContext","name","errorMessage","AutoCompleteProvider","useAutoCompleteContext","fuzzyScore","str1","str2","gramSize","getNGrams","s","len","repeat","toLowerCase","v","Array","length","i","slice","s2","pairs1","pairs2","set","Set","total","hits","getDefItemValue","item","Object","keys","_ref","toString","setEmphasis","children","query","isEmpty","replace","RegExp","match","defaultFilterMethod","itemValue","itemLabel","indexOf","getMultipleWrapStyles","themeInput","multiple","field","_focusWithin","_focus","pos","minH","py","spacing","cursor","h","hasFirstItem","firstItem","getChildDeep","child","type","displayName","props","value","hasLastItem","lastItem","useAutoComplete","autoCompleteProps","closeOnBlur","closeOnSelect","creatable","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","defaultValue","defaultValues","onReady","defaultIsOpen","disableFilter","restoreOnBlurIfEmpty","shouldRenderSuggestions","submitKeys","suggestWhenEmpty","values","valuesProp","undefined","useDisclosure","isOpen","onClose","onOpen","runIfFn","itemList","getChildrenDeep","map","itemObj","pick","getValue","finObj","isDefined","label","originalValue","getItemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","listAll","setListAll","defaultQuery","isUndefined","setQuery","filteredResults","filter","fixed","index","filteredList","noFilter","useControllableState","onChange","newValues","find","opt","items","val","setValues","_itemList$","focusedValue","setFocusedValue","maxSelections","focusedIndex","findIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","useEffect","_itemList$2","focusedItem","onOptionFocus","focusMethod","current","isNewInput","selectItem","optionValue","includes","option","focus","focusInputOnSelect","onSelectOption","selectMethod","onCreateOption","omit","optionLabel","removeItem","focusInput","prevValues","onTagRemoved","tags","tag","onRemove","wrapperDim","useDimensions","inputDim","getEmptyStateProps","defaultEmptyState","every","getGroupProps","hasItems","some","hasChildren","divider","hasFirstChild","hasLastChild","group","display","getInputProps","onBlur","onFocus","onKeyDown","variant","rest","wrapper","ref","onClick","input","e","openOnFocus","selectOnFocus","target","select","listIsFocused","relatedTarget","_listRef$current","contains","inputWrapperIsFocused","_inputWrapperRef$curr","latestValue","latestValueItem","newValue","queryIsEmpty","key","disabled","preventDefault","callAll","getItemProps","_fixed","itemChild","valueProp","onMouseOver","sx","_getValue","isFocused","isValidSuggestion","dangerouslySetInnerHTML","__html","_disabled","opacity","userSelect","mark","color","bg","isObject","fontWeight","_light","root","getListProps","width","marginBox","resetItems","AutoComplete","forwardRef","context","useImperativeHandle","React","Popover","isLazy","autoFocus","placement","chakra","div","position","w","AutoCompleteItem","forwardedRef","itemRef","useMergeRefs","itemProps","scrollIntoView","behavior","block","console","warn","error","restProps","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","alwaysDisplay","childrenProp","queryExistsInList","showWhenEmpty","AutoCompleteGroup","dividerStyles","useDividerStyles","Box","Divider","top","bottom","AutoCompleteGroupTitle","baseTitleStyles","ml","my","fontSize","letterSpacing","textTransform","hasGroupSibling","groupSibling","baseStyles","borderColor","dividerColor","mb","showDivider","AutoCompleteInput","isInvalid","useMultiStyleConfig","inputProps","wrapperRef","wrapperProps","simpleInput","Input","multipleInput","Wrap","WrapItem","as","id","EmptyState","emptyStyles","align","justify","fontStyle","VALID_AUTOCOMPLETE_LIST_CHILDREN","AutoCompleteList","listProps","Children","sibling","toArray","cloneElement","nonAutocompleteItems","_child$type2","_child$type3","siblingInfo","autoCompleteItems","nonAutoCompleteItems","PopoverContent","mt","maxH","border","shadow","zIndex","overflowY","boxShadow","AutoCompleteTag","memo","Tag","borderRadius","disabledStyles","TagLabel","TagCloseButton"],"mappings":"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"}
1
+ {"version":3,"file":"chakra-autocomplete.cjs.production.min.js","sources":["../src/autocomplete-context.ts","../src/helpers/fuzzySearch.ts","../src/helpers/items.ts","../src/helpers/input.ts","../src/helpers/group.ts","../src/use-autocomplete.ts","../src/autocomplete.tsx","../src/autocomplete-item.tsx","../src/autocomplete-creatable.tsx","../src/autocomplete-group.tsx","../src/autocomplete-input.tsx","../src/components/empty-state.tsx","../src/helpers/list.ts","../src/autocomplete-list.tsx","../src/autocomplete-tag.tsx"],"sourcesContent":["import { createContext } from \"@chakra-ui/react-utils\";\nimport { UseAutoCompleteReturn } from \"./types\";\n\nexport const [AutoCompleteProvider, useAutoCompleteContext] = createContext<\n UseAutoCompleteReturn\n>({\n name: \"AutoCompleteContext\",\n errorMessage:\n \"useAutoCompleteContext: `context` is undefined. Seems you forgot to wrap all autoomplete components within `<AutoComplete />`\",\n});\n","/*\n * @param str1 The first string to compare.\n * @param str2 The second string to compare.\n * @param gramSize The size of the grams. Defaults to length 2.\n */\nexport function fuzzyScore(str1: string, str2: string, gramSize: number = 2) {\n function getNGrams(s: string, len: number) {\n s = \" \".repeat(len - 1) + s.toLowerCase() + \" \".repeat(len - 1);\n let v = new Array(s.length - len + 1);\n for (let i = 0; i < v.length; i++) {\n v[i] = s.slice(i, i + len);\n }\n return v;\n }\n\n if (!str1?.length || !str2?.length) {\n return 0.0;\n }\n\n //Order the strings by length so the order they're passed in doesn't matter\n //and so the smaller string's ngrams are always the ones in the set\n let s1 = str1.length < str2.length ? str1 : str2;\n let s2 = str1.length < str2.length ? str2 : str1;\n\n let pairs1 = getNGrams(s1, gramSize);\n let pairs2 = getNGrams(s2, gramSize);\n let set = new Set<string>(pairs1);\n\n let total = pairs2.length;\n let hits = 0;\n for (let item of pairs2) {\n if (set.delete(item)) {\n hits++;\n }\n }\n return hits / total;\n}\n","import { getChildrenDeep } from \"react-nanny\";\nimport { pick, isDefined, isEmpty } from \"@chakra-ui/utils\";\nimport { ReactNode } from \"react\";\nimport { FlexProps } from \"@chakra-ui/react\";\nimport { fuzzyScore } from \"./fuzzySearch\";\nimport { Item } from \"../types\";\nimport { AutoCompleteItemProps } from \"../autocomplete-item\";\n\nexport const getDefItemValue = (item: AutoCompleteItemProps[\"value\"]) =>\n (typeof item === \"string\" ? item : item[Object.keys(item)[0]])?.toString();\n\nexport const setEmphasis = (children: any, query: string) => {\n if (typeof children !== \"string\" || isEmpty(query)) {\n return children;\n }\n const newChildren = children\n .toString()\n .replace(\n new RegExp(escapeRegex(query), \"gi\"),\n (match: any) => `<mark>${match}</mark>`\n );\n return newChildren;\n};\n\nexport const getItemList = (children: ReactNode): Item[] => {\n const itemChildren = getChildrenDeep(\n children,\n (child: any) => child?.type?.displayName === \"AutoCompleteItem\"\n );\n\n return itemChildren.map(item => {\n const itemObj = pick(item.props, [\"value\", \"label\", \"fixed\", \"disabled\"]);\n const { getValue = getDefItemValue } = item.props;\n const value = getValue(itemObj.value);\n const finObj = isDefined(itemObj.label)\n ? itemObj\n : { ...itemObj, label: value };\n return { ...finObj, value, originalValue: itemObj.value };\n });\n};\n\nexport const getFocusedStyles = (): FlexProps => {\n return {\n bg: \"whiteAlpha.100\",\n _light: {\n bg: \"gray.200\",\n },\n };\n};\n\nexport const defaultFilterMethod = (\n query: string,\n itemValue: Item[\"value\"],\n itemLabel: Item[\"label\"]\n) => {\n return (\n itemValue?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n itemLabel?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n fuzzyScore(query, itemValue) >= 0.5 ||\n fuzzyScore(query, itemLabel) >= 0.5\n );\n};\n\nfunction escapeRegex(string: string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n}\n","export const getMultipleWrapStyles = (themeInput: any, multiple?: boolean) => ({\n ...(multiple && {\n ...themeInput.field,\n _focusWithin: themeInput.field._focus,\n pos: \"relative\",\n minH: 9,\n // px: 3,\n py: 1.5,\n spacing: 3,\n }),\n cursor: \"text\",\n h: \"fit-content\",\n // w: \"full\",\n});\n","import { isDefined, runIfFn } from \"@chakra-ui/utils\";\nimport { getChildDeep } from \"react-nanny\";\nimport { ReactNode } from \"react\";\nimport { getDefItemValue } from \"./items\";\n\nexport const hasFirstItem = (children: ReactNode, firstItem: any) => {\n const result = getChildDeep(\n children,\n (child: any) =>\n child?.type?.displayName === \"AutoCompleteItem\" &&\n child.props.value === firstItem?.value\n );\n\n return result;\n};\nexport const hasLastItem = (children: ReactNode, lastItem: any) => {\n const result = getChildDeep(\n children,\n (child: any) =>\n child?.type?.displayName === \"AutoCompleteItem\" &&\n child.props.value === lastItem?.value\n );\n return result;\n};\n\nexport const hasChildren = (children: any, filteredList: any[]) => {\n return isDefined(\n getChildDeep(children, (child: any) => {\n const value = runIfFn(\n child.props?.getValue || getDefItemValue,\n child.props?.value || {}\n );\n return filteredList.some(i => i.value === value);\n })\n );\n};\n","import {\n useDimensions,\n useDisclosure,\n useUpdateEffect,\n useControllableState,\n} from \"@chakra-ui/react\";\nimport {\n callAll,\n getFirstItem,\n getLastItem,\n getNextItem,\n getPrevItem,\n isObject,\n isEmpty,\n isUndefined,\n runIfFn,\n} from \"@chakra-ui/utils\";\nimport { omit } from \"@chakra-ui/utils\";\n\nimport { useEffect, useRef, useState } from \"react\";\n\nimport { AutoCompleteProps } from \"./autocomplete\";\nimport {\n defaultFilterMethod,\n getDefItemValue,\n getFocusedStyles,\n getItemList,\n setEmphasis,\n} from \"./helpers/items\";\nimport { getMultipleWrapStyles } from \"./helpers/input\";\nimport { hasChildren, hasFirstItem, hasLastItem } from \"./helpers/group\";\nimport { Item, UseAutoCompleteReturn } from \"./types\";\n\n/**\n * useAutoComplete that provides all the state and focus management logic\n * for the autocomplete component. It is consumed by the `Autocomplete` component\n *\n */\n\nexport function useAutoComplete(\n autoCompleteProps: AutoCompleteProps\n): UseAutoCompleteReturn {\n let {\n closeOnBlur = true,\n closeOnSelect,\n creatable,\n emphasize,\n emptyState = true,\n freeSolo,\n isReadOnly,\n listAllValuesOnFocus,\n maxSuggestions,\n multiple,\n defaultValue,\n defaultValues = defaultValue ? [defaultValue] : [],\n onReady,\n defaultIsOpen,\n disableFilter,\n restoreOnBlurIfEmpty = !freeSolo,\n shouldRenderSuggestions = () => true,\n submitKeys = [],\n suggestWhenEmpty,\n value,\n values: valuesProp = value\n ? typeof value === \"string\"\n ? [value]\n : [...value]\n : undefined,\n } = autoCompleteProps;\n closeOnSelect = closeOnSelect ? closeOnSelect : multiple ? false : true;\n\n freeSolo = freeSolo ? freeSolo : multiple ? true : autoCompleteProps.freeSolo;\n\n const { isOpen, onClose, onOpen } = useDisclosure({ defaultIsOpen });\n\n const children = runIfFn(autoCompleteProps.children, {\n isOpen,\n onClose,\n onOpen,\n });\n const itemList: Item[] = getItemList(children);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const interactionRef = useRef<\"mouse\" | \"keyboard\" | null>(null);\n\n const [listAll, setListAll] = useState(false);\n\n let defaultQuery = \"\";\n if (multiple) defaultQuery = \"\";\n else if (!isUndefined(defaultValues)) defaultQuery = defaultValues[0];\n else if (!isUndefined(valuesProp)) defaultQuery = valuesProp[0];\n\n const [query, setQuery] = useState<string>(defaultQuery ?? \"\");\n const filteredResults = disableFilter\n ? itemList\n : itemList\n .filter(\n i =>\n i.fixed ||\n runIfFn(\n autoCompleteProps.filter || defaultFilterMethod,\n query,\n i.value,\n i.label\n ) ||\n listAll\n )\n .filter((i, index) =>\n maxSuggestions ? i.fixed || index < maxSuggestions : true\n );\n\n // Add Creatable to Filtered List\n const creatableArr: Item[] = creatable\n ? [{ value: query, noFilter: true, creatable: true }]\n : [];\n\n const filteredList = [...filteredResults, ...creatableArr];\n const [values, setValues] = useControllableState({\n defaultValue: defaultValues,\n value: valuesProp,\n onChange: (newValues: any[]) => {\n const item = filteredList.find(opt => opt.value === newValues[0]);\n const items = newValues.map(val =>\n filteredList.find(opt => opt.value === val)\n );\n runIfFn(\n autoCompleteProps.onChange,\n multiple ? newValues : newValues[0],\n multiple ? items : item\n );\n },\n });\n\n const [focusedValue, setFocusedValue] = useState<Item[\"value\"]>(\n itemList[0]?.value\n );\n\n const maxSelections = autoCompleteProps.maxSelections || values.length + 1;\n\n const focusedIndex = filteredList.findIndex(i => i.value === focusedValue);\n const nextItem = getNextItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const prevItem = getPrevItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const firstItem = getFirstItem(filteredList);\n const lastItem = getLastItem(filteredList);\n\n useUpdateEffect(() => {\n setFocusedValue(firstItem?.value);\n }, [query]);\n\n useEffect(() => {\n if (!isOpen) setFocusedValue(itemList[0]?.value);\n }, [isOpen]);\n\n useEffect(() => {\n const focusedItem = itemList.find(i => i.value === focusedValue);\n runIfFn(autoCompleteProps.onOptionFocus, {\n item: focusedItem!,\n focusMethod: interactionRef.current,\n isNewInput: focusedItem?.creatable,\n });\n }, [focusedValue, autoCompleteProps.onOptionFocus]);\n\n const selectItem = (optionValue: Item[\"value\"]) => {\n if (!values.includes(optionValue) && values.length < maxSelections) {\n setValues(v => (multiple ? [...v, optionValue] : [optionValue]));\n }\n\n const option = filteredList.find(i => i.value === optionValue);\n\n if (multiple) {\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n item: option!,\n selectMethod: interactionRef.current,\n isNewInput: option?.creatable,\n });\n if (option?.creatable) {\n runIfFn(autoCompleteProps.onCreateOption, {\n item: omit(option!, [\"noFilter\"]),\n selectMethod: interactionRef.current,\n });\n }\n\n const optionLabel = option?.label || option?.value;\n setQuery(() => (multiple ? \"\" : optionLabel ?? \"\"));\n\n if (closeOnSelect) onClose();\n };\n\n const removeItem: UseAutoCompleteReturn[\"removeItem\"] = (\n itemValue,\n focusInput\n ) => {\n setValues(prevValues => {\n const item = itemList.find(opt => opt.value === itemValue);\n runIfFn(autoCompleteProps.onTagRemoved, itemValue, item, prevValues);\n return prevValues.filter(i => i !== itemValue);\n });\n if (query === itemValue) setQuery(\"\");\n if (focusInput) inputRef.current?.focus();\n };\n\n const resetItems = (focusInput?: boolean) => {\n setValues([]);\n if (focusInput) inputRef.current?.focus();\n };\n\n const tags = multiple\n ? values.map(tag => ({\n label: itemList.find(item => item.value === tag)?.label || tag,\n onRemove: () => removeItem(tag),\n }))\n : [];\n\n useEffect(() => {\n runIfFn(onReady, { tags });\n }, [values]);\n\n // @ts-ignore\n const getInputProps: UseAutoCompleteReturn[\"getInputProps\"] = (\n props,\n themeInput\n ) => {\n const { onBlur, onChange, onFocus, onKeyDown, variant, ...rest } = props;\n\n return {\n wrapper: {\n ref: inputWrapperRef,\n onClick: () => {\n inputRef?.current?.focus();\n },\n ...getMultipleWrapStyles(themeInput, multiple),\n ...rest,\n },\n input: {\n isReadOnly,\n onFocus: e => {\n runIfFn(onFocus, e);\n if (autoCompleteProps.openOnFocus && !isReadOnly) onOpen();\n if (autoCompleteProps.selectOnFocus) e.target.select();\n if (listAllValuesOnFocus) setListAll(true);\n },\n onBlur: e => {\n runIfFn(onBlur, e);\n\n const listIsFocused =\n e.relatedTarget === listRef?.current ||\n listRef.current?.contains(e.relatedTarget as any);\n const inputWrapperIsFocused = inputWrapperRef.current?.contains(\n e.relatedTarget as any\n );\n if (!listIsFocused && !inputWrapperIsFocused) {\n if (closeOnBlur) onClose();\n if (!values.includes(e.target.value) && restoreOnBlurIfEmpty) {\n const latestValue = getLastItem(values);\n const latestValueItem = itemList.find(\n i => i.value === latestValue\n );\n const latestValueLabel =\n latestValueItem?.label || latestValueItem?.value || \"\";\n setQuery(latestValueLabel);\n }\n }\n },\n onChange: e => {\n const newValue = e.target.value;\n runIfFn(onChange, e);\n setQuery(newValue);\n const queryIsEmpty = isEmpty(newValue);\n if (\n runIfFn(shouldRenderSuggestions, newValue) &&\n (!queryIsEmpty || suggestWhenEmpty)\n )\n onOpen();\n else onClose();\n setListAll(false);\n },\n onKeyDown: e => {\n runIfFn(onKeyDown, e);\n interactionRef.current = \"keyboard\";\n\n const { key } = e;\n const focusedItem = filteredList[focusedIndex];\n if ([\"Enter\", ...submitKeys].includes(key)) {\n if (focusedItem && !focusedItem?.disabled)\n selectItem(focusedItem?.value);\n else inputRef.current?.focus();\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowDown\") {\n setFocusedValue(nextItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowUp\") {\n setFocusedValue(prevItem?.value);\n\n e.preventDefault();\n return;\n }\n\n if (key === \"Tab\") {\n setFocusedValue(nextItem?.value);\n\n if (isOpen) {\n e.preventDefault();\n }\n\n return;\n }\n\n if (key === \"Home\") {\n setFocusedValue(firstItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"End\") {\n setFocusedValue(lastItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"Escape\") {\n callAll(onClose, e.preventDefault);\n }\n },\n value: query,\n variant: multiple ? \"unstyled\" : variant,\n ...rest,\n },\n };\n };\n\n const wrapperDim = useDimensions(inputWrapperRef, true);\n const inputDim = useDimensions(inputRef, true);\n const getListProps: UseAutoCompleteReturn[\"getListProps\"] = () => {\n const width = autoCompleteProps.multiple\n ? (wrapperDim?.marginBox.width as number)\n : (inputDim?.marginBox.width as number);\n return {\n width,\n };\n };\n\n const getItemProps: UseAutoCompleteReturn[\"getItemProps\"] = (\n props,\n creatable\n ) => {\n const {\n _fixed,\n _focus,\n children: itemChild,\n disabled,\n label,\n value: valueProp,\n fixed,\n getValue = getDefItemValue,\n onClick,\n onMouseOver,\n sx,\n ...rest\n } = props;\n const value = creatable ? valueProp : getValue(valueProp)?.toString();\n const isFocused = value === focusedValue;\n const isValidSuggestion =\n filteredList.findIndex(i => i.value === value) >= 0;\n const itemLabel = itemChild || label || value;\n return {\n item: {\n ...(typeof itemLabel !== \"string\" || !emphasize\n ? { children: itemLabel }\n : {\n dangerouslySetInnerHTML: {\n __html: setEmphasis(itemLabel, query),\n },\n }),\n \"aria-selected\": values.includes(value),\n \"aria-disabled\": disabled,\n _disabled: { opacity: 0.4, cursor: \"not-allowed\", userSelect: \"none\" },\n onClick: e => {\n runIfFn(onClick, e);\n if (!disabled) selectItem(value);\n else inputRef.current?.focus();\n },\n onMouseOver: e => {\n runIfFn(onMouseOver, e);\n setFocusedValue(value);\n interactionRef.current = \"mouse\";\n },\n sx: {\n ...sx,\n mark: {\n color: \"inherit\",\n bg: \"transparent\",\n ...(isObject(emphasize)\n ? emphasize\n : {\n fontWeight: emphasize ? \"extrabold\" : \"inherit\",\n }),\n },\n },\n ...(isFocused && (_focus || getFocusedStyles())),\n ...(fixed && _fixed),\n ...rest,\n },\n root: {\n isValidSuggestion,\n value,\n },\n };\n };\n\n const getGroupProps: UseAutoCompleteReturn[\"getGroupProps\"] = props => {\n const hasItems = hasChildren(props.children, filteredList);\n return {\n divider: {\n hasFirstChild: hasFirstItem(props.children, firstItem),\n hasLastChild: hasLastItem(\n props.children,\n getLastItem(filteredList.filter(i => isUndefined(i?.noFilter)))\n ),\n },\n group: {\n display: hasItems ? \"initial\" : \"none\",\n },\n };\n };\n\n const getEmptyStateProps: UseAutoCompleteReturn[\"getEmptyStateProps\"] = defaultEmptyState => {\n const noSuggestions = filteredList.every(i => i.noFilter);\n if (noSuggestions && emptyState && !creatable) {\n return typeof emptyState === \"boolean\"\n ? defaultEmptyState\n // @ts-ignore\n : runIfFn(emptyState, { query });\n }\n };\n\n return {\n autoCompleteProps,\n children,\n filteredList,\n filteredResults,\n focusedValue,\n getEmptyStateProps,\n getGroupProps,\n getInputProps,\n getItemProps,\n getListProps,\n inputRef,\n interactionRef,\n isOpen,\n itemList,\n listRef,\n onClose,\n onOpen,\n query,\n removeItem,\n resetItems,\n setQuery,\n tags,\n values,\n };\n}\n","import React, { useImperativeHandle } from \"react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\n\nimport { AutoCompleteProvider } from \"./autocomplete-context\";\nimport { useAutoComplete } from \"./use-autocomplete\";\nimport { chakra, forwardRef, Popover } from \"@chakra-ui/react\";\nimport { AutoCompleteRefMethods, UseAutoCompleteProps } from \"./types\";\n\nexport type AutoCompleteChildProps = {\n isOpen: boolean;\n onClose: () => void;\n onOpen: () => void;\n};\nexport interface AutoCompleteProps extends UseAutoCompleteProps {\n children: MaybeRenderProp<AutoCompleteChildProps>;\n ref?: React.RefObject<AutoCompleteRefMethods>;\n}\n\nexport const AutoComplete = forwardRef<AutoCompleteProps, \"div\">(\n (props, ref) => {\n const context = useAutoComplete(props);\n const {\n children,\n isOpen,\n onClose,\n onOpen,\n resetItems,\n removeItem,\n } = context;\n\n useImperativeHandle(ref, () => ({\n resetItems,\n removeItem,\n }));\n\n return (\n <AutoCompleteProvider value={context}>\n <Popover\n isLazy\n isOpen={isOpen}\n onClose={onClose}\n onOpen={onOpen}\n autoFocus={false}\n placement=\"bottom\"\n closeOnBlur={true}\n >\n <chakra.div\n sx={{\n \".chakra-popover__popper\": {\n position: \"unset !important\",\n },\n }}\n w=\"full\"\n ref={ref}\n >\n {children}\n </chakra.div>\n </Popover>\n </AutoCompleteProvider>\n );\n }\n);\n\nAutoComplete.displayName = \"AutoComplete\";\n","import {\n CSSObject,\n Flex,\n FlexProps,\n forwardRef,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport { isUndefined, omit } from \"@chakra-ui/utils\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteItemProps extends FlexProps {\n value: any;\n label?: string;\n fixed?: boolean;\n _focus?: CSSObject | any;\n disabled?: boolean;\n _fixed?: CSSObject;\n getValue?: (item: AutoCompleteItemProps[\"value\"]) => any;\n}\n\nexport const AutoCompleteItem = forwardRef<AutoCompleteItemProps, \"div\">(\n (props, forwardedRef) => {\n const {\n focusedValue,\n getItemProps,\n interactionRef,\n } = useAutoCompleteContext();\n const itemRef = useRef<any>();\n const ref = useMergeRefs(forwardedRef, itemRef);\n\n const itemProps = getItemProps(props);\n const { isValidSuggestion, value } = itemProps.root;\n\n const isFocused = focusedValue === value;\n\n useEffect(() => {\n if (isFocused && interactionRef.current === \"keyboard\")\n itemRef?.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }, [isFocused, interactionRef]);\n\n useEffect(() => {\n if (typeof value !== \"string\") console.warn(\"wow\");\n if (typeof value !== \"string\" && isUndefined(props.getValue))\n console.error(\n \"You must define the `getValue` prop, when an Item's value is not a string\"\n );\n }, []);\n\n const { children, dangerouslySetInnerHTML, ...restProps } = itemProps.item;\n\n const rest = omit(restProps, [\"groupId\"] as any);\n\n return isValidSuggestion ? (\n <Flex ref={ref} {...baseItemStyles} {...rest}>\n {children ? (\n children\n ) : (\n <span dangerouslySetInnerHTML={dangerouslySetInnerHTML} />\n )}\n </Flex>\n ) : null;\n }\n);\n\nAutoCompleteItem.displayName = \"AutoCompleteItem\";\n\nexport const baseItemStyles: FlexProps = {\n mx: \"2\",\n px: \"2\",\n py: \"2\",\n rounded: \"md\",\n cursor: \"pointer\",\n};\n","import { Flex, FlexProps } from \"@chakra-ui/react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport { isEmpty, runIfFn } from \"@chakra-ui/utils\";\n\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { baseItemStyles } from \"./autocomplete-item\";\n\ninterface AutoCompleteCreatableProps extends Omit<FlexProps, 'children'> {\n children?: MaybeRenderProp<{ value: any }>;\n alwaysDisplay?: boolean;\n}\n\nexport function AutoCompleteCreatable(props: AutoCompleteCreatableProps) {\n const { alwaysDisplay, children: childrenProp, ...rest } = props;\n const {\n autoCompleteProps,\n getItemProps,\n query,\n filteredResults,\n } = useAutoCompleteContext();\n\n const { children, ...itemProps } = getItemProps(\n {\n ...props,\n value: query,\n children: runIfFn(childrenProp, {\n value: query,\n }),\n },\n true\n ).item;\n\n const queryExistsInList = filteredResults.some(i => i.value === query);\n const showWhenEmpty = isEmpty(query) ? alwaysDisplay : true;\n const showCreatable =\n autoCompleteProps.creatable && showWhenEmpty && !queryExistsInList;\n\n return showCreatable ? (\n <Flex {...baseItemStyles} {...itemProps} {...rest}>\n {children || `Add ${query}`}\n </Flex>\n ) : null;\n}\n\nAutoCompleteCreatable.displayName = \"AutoCompleteCreatable\";\n","import {\n Box,\n BoxProps,\n Divider,\n DividerProps,\n Flex,\n FlexProps,\n forwardRef,\n} from \"@chakra-ui/react\";\nimport { omit } from \"@chakra-ui/utils\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteGroupProps extends BoxProps {\n children?: React.ReactNode;\n showDivider?: boolean;\n dividerColor?: string;\n}\n\nexport const AutoCompleteGroup = forwardRef<AutoCompleteGroupProps, \"div\">(\n (props, ref) => {\n const { children, showDivider, ...restProps } = props;\n const rest = omit(restProps, [\"groupSibling\"] as any);\n\n const { getGroupProps } = useAutoCompleteContext();\n\n const { group } = getGroupProps(props);\n\n const dividerStyles = useDividerStyles(props);\n\n return (\n <Box ref={ref} {...group} {...rest}>\n <Divider {...dividerStyles.top} />\n {children}\n <Divider {...dividerStyles.bottom} />\n </Box>\n );\n }\n);\n\nexport const AutoCompleteGroupTitle = forwardRef<FlexProps, \"div\">(\n (props, ref) => {\n return <Flex {...baseTitleStyles} {...props} ref={ref} />;\n }\n);\n\nAutoCompleteGroup.displayName = \"AutoCompleteGroup\";\nAutoCompleteGroupTitle.displayName = \"AutoCompleteGroupTitle\";\n\nconst baseTitleStyles: FlexProps = {\n ml: 5,\n my: 1,\n fontSize: \"xs\",\n letterSpacing: \"wider\",\n fontWeight: \"extrabold\",\n textTransform: \"uppercase\",\n};\n\nconst useDividerStyles = (\n props: AutoCompleteGroupProps & { groupSibling?: boolean }\n) => {\n const { getGroupProps } = useAutoCompleteContext();\n\n const hasGroupSibling: unknown = props.groupSibling;\n\n const {\n divider: { hasFirstChild, hasLastChild },\n } = getGroupProps(props as AutoCompleteGroupProps);\n\n const baseStyles: DividerProps = {\n my: 2,\n borderColor: props.dividerColor,\n };\n\n const top = {\n ...baseStyles,\n mb: 4,\n display: !props.showDivider || hasFirstChild ? \"none\" : \"\",\n };\n const bottom = {\n ...baseStyles,\n display:\n !props.showDivider || hasLastChild || hasGroupSibling ? \"none\" : \"\",\n };\n\n return { top, bottom };\n};\n","import {\n forwardRef,\n Input,\n InputProps,\n SystemStyleObject,\n useMergeRefs,\n useMultiStyleConfig,\n Wrap,\n WrapItem,\n} from \"@chakra-ui/react\";\nimport { runIfFn } from \"@chakra-ui/utils\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { UseAutoCompleteReturn } from \"./types\";\n\nexport interface AutoCompleteInputProps extends Omit<InputProps, 'children'> {\n children?: MaybeRenderProp<{ tags: UseAutoCompleteReturn[\"tags\"] }>;\n wrapStyles?: SystemStyleObject;\n}\n\nexport const AutoCompleteInput = forwardRef<AutoCompleteInputProps, \"input\">(\n (props, forwardedRef) => {\n const {\n autoCompleteProps,\n inputRef,\n getInputProps,\n tags,\n } = useAutoCompleteContext();\n\n // const ref = useMergeRefs(forwardedRef, inputRef);\n\n const { children: childrenProp, isInvalid, ...rest } = props;\n\n const themeInput: any = useMultiStyleConfig(\"Input\", props);\n\n const { wrapper, input: inputProps } = getInputProps(rest, themeInput);\n const { ref: wrapperRef, ...wrapperProps } = wrapper;\n const ref = useMergeRefs(forwardedRef, inputRef);\n\n const children = runIfFn(childrenProp, { tags });\n\n const simpleInput = (\n <Input isInvalid={isInvalid} {...(inputProps as any)} ref={ref} />\n );\n\n const multipleInput = (\n <Wrap {...wrapperProps} ref={wrapperRef}>\n {children}\n <WrapItem as={Input} {...(inputProps as any)} ref={ref} />\n </Wrap>\n );\n\n return <>{autoCompleteProps.multiple ? multipleInput : simpleInput}</>;\n }\n);\n\nAutoCompleteInput.displayName = \"Input\";\n\nAutoCompleteInput.id = \"Input\";\n","import { Box, BoxProps, Flex, FlexProps } from \"@chakra-ui/layout\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"../autocomplete-context\";\n\nexport const EmptyState = (props: BoxProps) => {\n const { getEmptyStateProps } = useAutoCompleteContext();\n\n const emptyState = getEmptyStateProps(\n <Flex {...emptyStyles}>No options found!</Flex>\n );\n\n return <Box {...props}>{emptyState}</Box>;\n};\n\nconst emptyStyles: FlexProps = {\n fontSize: \"sm\",\n align: \"center\",\n justify: \"center\",\n fontWeight: \"bold\",\n fontStyle: \"italic\",\n};\n","import React from \"react\";\n\nconst VALID_AUTOCOMPLETE_LIST_CHILDREN = [\n \"AutoCompleteGroup\",\n \"AutoCompleteItem\",\n \"AutoCompleteCreatable\",\n];\n\nexport const siblingInfo = (children: React.ReactNode) => {\n const items = React.Children.map(children, (child: any, i) => {\n if (child?.type?.displayName === \"AutoCompleteGroup\") {\n const sibling: any = React.Children.toArray(children)[i + 1];\n return React.cloneElement(child, {\n groupSibling: sibling\n ? sibling.type.displayName === \"AutoCompleteGroup\"\n : false,\n });\n }\n return child;\n }) as React.ReactNode;\n\n const nonAutocompleteItems = React.Children.toArray(items).filter(\n (child: any) => {\n return !VALID_AUTOCOMPLETE_LIST_CHILDREN.includes(\n child?.type?.displayName\n );\n }\n );\n\n const autoCompleteItems = React.Children.toArray(items).filter(\n (child: any) => {\n return VALID_AUTOCOMPLETE_LIST_CHILDREN.includes(\n child?.type?.displayName\n );\n }\n );\n\n return [autoCompleteItems, nonAutocompleteItems] as const;\n};\n","import {\n forwardRef,\n PopoverContent,\n PopoverContentProps,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { EmptyState } from \"./components/empty-state\";\nimport { siblingInfo } from \"./helpers/list\";\n\nexport type AutoCompleteListProps = PopoverContentProps;\n\nexport const AutoCompleteList = forwardRef<AutoCompleteListProps, \"div\">(\n (props, forwardedRef) => {\n const { children, ...rest } = props;\n const { listRef, getListProps } = useAutoCompleteContext();\n const ref = useMergeRefs(forwardedRef, listRef);\n const listProps = getListProps();\n const [autoCompleteItems, nonAutoCompleteItems] = siblingInfo(children);\n\n return (\n <PopoverContent ref={ref} {...baseStyles} {...listProps} {...rest}>\n {autoCompleteItems}\n <EmptyState />\n {nonAutoCompleteItems}\n </PopoverContent>\n );\n }\n);\n\nAutoCompleteList.displayName = \"AutoCompleteList\";\n\nconst baseStyles: PopoverContentProps = {\n mt: \"4\",\n py: \"4\",\n opacity: \"0\",\n bg: \"#232934\",\n rounded: \"md\",\n maxH: \"350px\",\n border: \"none\",\n shadow: \"base\",\n pos: \"absolute\",\n zIndex: \"popover\",\n overflowY: \"auto\",\n\n _light: {\n bg: \"#ffffff\",\n },\n\n _focus: {\n boxShadow: \"none\",\n },\n};\n","import { WrapItem } from \"@chakra-ui/layout\";\nimport { Tag, TagCloseButton, TagLabel, TagProps } from \"@chakra-ui/tag\";\nimport { runIfFn } from \"@chakra-ui/utils\";\nimport React, { memo } from \"react\";\n\ntype AutoCompleteTagProps = {\n disabled?: boolean;\n label: string;\n onRemove?: () => void;\n} & TagProps;\n\nexport const AutoCompleteTag = memo((props: AutoCompleteTagProps) => {\n const { label, onRemove, disabled, ...rest } = props;\n\n return (\n <WrapItem>\n <Tag\n borderRadius=\"md\"\n fontWeight=\"normal\"\n {...(disabled && disabledStyles)}\n {...rest}\n >\n <TagLabel>{label}</TagLabel>\n <TagCloseButton\n onClick={() => !disabled && runIfFn(onRemove)}\n cursor=\"pointer\"\n {...(disabled && disabledStyles)}\n />\n </Tag>\n </WrapItem>\n );\n});\n\nconst disabledStyles: TagProps = {\n cursor: \"text\",\n userSelect: \"none\",\n opacity: 0.4,\n _focus: { boxShadow: \"none\" },\n};\n"],"names":["createContext","name","errorMessage","AutoCompleteProvider","useAutoCompleteContext","fuzzyScore","str1","str2","gramSize","getNGrams","s","len","repeat","toLowerCase","v","Array","length","i","slice","s2","pairs1","pairs2","set","Set","total","hits","getDefItemValue","item","Object","keys","_ref","toString","setEmphasis","children","query","isEmpty","replace","RegExp","match","defaultFilterMethod","itemValue","itemLabel","indexOf","getMultipleWrapStyles","themeInput","multiple","field","_focusWithin","_focus","pos","minH","py","spacing","cursor","h","hasFirstItem","firstItem","getChildDeep","child","type","displayName","props","value","hasLastItem","lastItem","useAutoComplete","autoCompleteProps","closeOnBlur","closeOnSelect","creatable","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","defaultValue","defaultValues","onReady","defaultIsOpen","disableFilter","restoreOnBlurIfEmpty","shouldRenderSuggestions","submitKeys","suggestWhenEmpty","values","valuesProp","undefined","useDisclosure","isOpen","onClose","onOpen","runIfFn","itemList","getChildrenDeep","map","itemObj","pick","getValue","finObj","isDefined","label","originalValue","getItemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","listAll","setListAll","defaultQuery","isUndefined","setQuery","filteredResults","filter","fixed","index","filteredList","noFilter","useControllableState","onChange","newValues","find","opt","items","val","setValues","_itemList$","focusedValue","setFocusedValue","maxSelections","focusedIndex","findIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","useEffect","_itemList$2","focusedItem","onOptionFocus","focusMethod","current","isNewInput","selectItem","optionValue","includes","option","focus","focusInputOnSelect","onSelectOption","selectMethod","onCreateOption","omit","optionLabel","removeItem","focusInput","prevValues","onTagRemoved","tags","tag","onRemove","wrapperDim","useDimensions","inputDim","getEmptyStateProps","defaultEmptyState","every","getGroupProps","hasItems","some","hasChildren","divider","hasFirstChild","hasLastChild","group","display","getInputProps","onBlur","onFocus","onKeyDown","variant","rest","wrapper","ref","onClick","input","e","openOnFocus","selectOnFocus","target","select","listIsFocused","relatedTarget","_listRef$current","contains","inputWrapperIsFocused","_inputWrapperRef$curr","latestValue","latestValueItem","newValue","queryIsEmpty","key","disabled","preventDefault","callAll","getItemProps","_fixed","itemChild","valueProp","onMouseOver","sx","_getValue","isFocused","isValidSuggestion","dangerouslySetInnerHTML","__html","aria-selected","aria-disabled","_disabled","opacity","userSelect","mark","color","bg","isObject","fontWeight","_light","root","getListProps","width","marginBox","resetItems","AutoComplete","forwardRef","context","useImperativeHandle","React","Popover","isLazy","autoFocus","placement","chakra","div",".chakra-popover__popper","position","w","AutoCompleteItem","forwardedRef","itemRef","useMergeRefs","itemProps","scrollIntoView","behavior","block","console","warn","error","restProps","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","alwaysDisplay","childrenProp","queryExistsInList","showWhenEmpty","AutoCompleteGroup","dividerStyles","useDividerStyles","Box","Divider","top","bottom","AutoCompleteGroupTitle","baseTitleStyles","ml","my","fontSize","letterSpacing","textTransform","hasGroupSibling","groupSibling","baseStyles","borderColor","dividerColor","mb","showDivider","AutoCompleteInput","isInvalid","useMultiStyleConfig","inputProps","wrapperRef","wrapperProps","simpleInput","Input","multipleInput","Wrap","WrapItem","as","id","EmptyState","emptyStyles","align","justify","fontStyle","VALID_AUTOCOMPLETE_LIST_CHILDREN","AutoCompleteList","listProps","Children","sibling","toArray","cloneElement","nonAutocompleteItems","_child$type2","_child$type3","siblingInfo","autoCompleteItems","nonAutoCompleteItems","PopoverContent","mt","maxH","border","shadow","zIndex","overflowY","boxShadow","AutoCompleteTag","memo","Tag","borderRadius","disabledStyles","TagLabel","TagCloseButton"],"mappings":"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"}
@@ -14,7 +14,7 @@ var _createContext = /*#__PURE__*/createContext({
14
14
  useAutoCompleteContext = _createContext[1];
15
15
 
16
16
  function _extends() {
17
- _extends = Object.assign || function (target) {
17
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
18
18
  for (var i = 1; i < arguments.length; i++) {
19
19
  var source = arguments[i];
20
20
 
@@ -27,7 +27,6 @@ function _extends() {
27
27
 
28
28
  return target;
29
29
  };
30
-
31
30
  return _extends.apply(this, arguments);
32
31
  }
33
32
 
@@ -436,7 +435,7 @@ function useAutoComplete(autoCompleteProps) {
436
435
  runIfFn(onReady, {
437
436
  tags: tags
438
437
  });
439
- }, [values]);
438
+ }, [values]); // @ts-ignore
440
439
 
441
440
  var getInputProps = function getInputProps(props, themeInput) {
442
441
  var _onBlur = props.onBlur,
@@ -645,7 +644,8 @@ function useAutoComplete(autoCompleteProps) {
645
644
  });
646
645
 
647
646
  if (noSuggestions && emptyState && !creatable) {
648
- return typeof emptyState === "boolean" ? defaultEmptyState : runIfFn(emptyState, {
647
+ return typeof emptyState === "boolean" ? defaultEmptyState // @ts-ignore
648
+ : runIfFn(emptyState, {
649
649
  query: query
650
650
  });
651
651
  }