@choc-ui/chakra-autocomplete 5.1.5 → 5.1.7
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/README.md +13 -3
- package/dist/autocomplete-context.d.ts +3 -3
- package/dist/autocomplete-creatable.d.ts +14 -14
- package/dist/autocomplete-group.d.ts +9 -9
- package/dist/autocomplete-input.d.ts +11 -10
- package/dist/autocomplete-item.d.ts +12 -12
- package/dist/autocomplete-list.d.ts +3 -3
- package/dist/autocomplete-tag.d.ts +9 -9
- package/dist/autocomplete.d.ts +13 -13
- package/dist/components/empty-state.d.ts +3 -3
- package/dist/helpers/fuzzySearch.d.ts +1 -1
- package/dist/helpers/group.d.ts +4 -4
- package/dist/helpers/input.d.ts +1 -1
- package/dist/helpers/items.d.ts +9 -9
- package/dist/helpers/list.d.ts +2 -2
- package/dist/index.d.ts +10 -10
- package/dist/index.es.js +3501 -0
- package/dist/index.js +25 -6
- package/dist/types.d.ts +124 -124
- package/dist/use-autocomplete.d.ts +8 -8
- package/package.json +8 -8
- package/Changelog.md +0 -28
- package/dist/chakra-autocomplete.cjs.development.js +0 -1033
- package/dist/chakra-autocomplete.cjs.development.js.map +0 -1
- package/dist/chakra-autocomplete.cjs.production.min.js +0 -2
- package/dist/chakra-autocomplete.cjs.production.min.js.map +0 -1
- package/dist/chakra-autocomplete.esm.js +0 -1015
- package/dist/chakra-autocomplete.esm.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chakra-autocomplete.cjs.development.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","s1","s2","pairs1","pairs2","set","Set","total","hits","item","getDefItemValue","Object","keys","toString","setEmphasis","children","query","isEmpty","newChildren","replace","RegExp","escapeRegex","match","getItemList","itemChildren","getChildrenDeep","child","type","displayName","map","itemObj","pick","props","getValue","value","finObj","isDefined","label","originalValue","getFocusedStyles","bg","_light","defaultFilterMethod","itemValue","itemLabel","indexOf","string","getMultipleWrapStyles","themeInput","multiple","field","_focusWithin","_focus","pos","minH","py","spacing","cursor","h","hasFirstItem","firstItem","result","getChildDeep","hasLastItem","lastItem","hasChildren","filteredList","runIfFn","some","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","itemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","listAll","setListAll","defaultQuery","isUndefined","setQuery","filteredResults","filter","fixed","index","creatableArr","noFilter","useControllableState","onChange","newValues","find","opt","items","val","setValues","focusedValue","setFocusedValue","maxSelections","focusedIndex","findIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","useEffect","focusedItem","onOptionFocus","focusMethod","current","isNewInput","selectItem","optionValue","includes","option","focus","focusInputOnSelect","onSelectOption","selectMethod","onCreateOption","omit","optionLabel","removeItem","focusInput","prevValues","onTagRemoved","resetItems","tags","tag","onRemove","getInputProps","onBlur","onFocus","onKeyDown","variant","rest","wrapper","ref","onClick","input","e","openOnFocus","selectOnFocus","target","select","listIsFocused","relatedTarget","contains","inputWrapperIsFocused","latestValue","latestValueItem","latestValueLabel","newValue","queryIsEmpty","key","disabled","preventDefault","callAll","wrapperDim","useDimensions","inputDim","getListProps","width","marginBox","getItemProps","_fixed","itemChild","valueProp","onMouseOver","sx","isFocused","isValidSuggestion","dangerouslySetInnerHTML","__html","_disabled","opacity","userSelect","mark","color","isObject","fontWeight","root","getGroupProps","hasItems","divider","hasFirstChild","hasLastChild","group","display","getEmptyStateProps","defaultEmptyState","noSuggestions","every","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","showCreatable","AutoCompleteGroup","showDivider","dividerStyles","useDividerStyles","Box","Divider","top","bottom","AutoCompleteGroupTitle","baseTitleStyles","ml","my","fontSize","letterSpacing","textTransform","hasGroupSibling","groupSibling","baseStyles","borderColor","dividerColor","mb","AutoCompleteInput","isInvalid","useMultiStyleConfig","inputProps","wrapperRef","wrapperProps","simpleInput","Input","multipleInput","Wrap","WrapItem","as","id","EmptyState","emptyStyles","align","justify","fontStyle","VALID_AUTOCOMPLETE_LIST_CHILDREN","siblingInfo","Children","sibling","toArray","cloneElement","nonAutocompleteItems","autoCompleteItems","AutoCompleteList","listProps","nonAutoCompleteItems","PopoverContent","mt","maxH","border","shadow","zIndex","overflowY","boxShadow","AutoCompleteTag","memo","Tag","borderRadius","disabledStyles","TagLabel","TagCloseButton"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,r=require("@chakra-ui/react-utils"),o=require("@chakra-ui/react"),l=require("@chakra-ui/utils"),u=require("react-nanny"),i=require("@chakra-ui/layout"),a=require("@chakra-ui/tag"),s=r.createContext({name:"AutoCompleteContext",errorMessage:"useAutoCompleteContext: `context` is undefined. Seems you forgot to wrap all autoomplete components within `<AutoComplete />`"}),c=s[0],f=s[1];function d(){return(d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e,t){if(null==e)return{};var n,r,o={},l=Object.keys(e);for(r=0;r<l.length;r++)t.indexOf(n=l[r])>=0||(o[n]=e[n]);return o}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function m(e,t,n){function r(e,t){e=" ".repeat(t-1)+e.toLowerCase()+" ".repeat(t-1);for(var n=new Array(e.length-t+1),r=0;r<n.length;r++)n[r]=e.slice(r,r+t);return n}if(void 0===n&&(n=2),null==e||!e.length||null==t||!t.length)return 0;for(var o,l=e.length<t.length?t:e,u=r(e.length<t.length?e:t,n),i=r(l,n),a=new Set(u),s=i.length,c=0,f=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return v(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?v(e,void 0):void 0}}(e))){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(i);!(o=f()).done;)a.delete(o.value)&&c++;return c/s}var g=function(e){var t;return null==(t="string"==typeof e?e:e[Object.keys(e)[0]])?void 0:t.toString()},h=function(e,t){return"string"!=typeof e||l.isEmpty(t)?e:e.toString().replace(new RegExp(t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"gi"),(function(e){return"<mark>"+e+"</mark>"}))},y=function(e,t,n){return(null==t?void 0:t.toLowerCase().indexOf(null==e?void 0:e.toLowerCase()))>=0||(null==n?void 0:n.toLowerCase().indexOf(null==e?void 0:e.toLowerCase()))>=0||m(e,t)>=.5||m(e,n)>=.5},b=function(e,t){return d({},t&&d({},e.field,{_focusWithin:e.field._focus,pos:"relative",minH:9,py:1.5,spacing:3}),{cursor:"text",h:"fit-content"})},C=function(e,t){return u.getChildDeep(e,(function(e){var n;return"AutoCompleteItem"===(null==e||null==(n=e.type)?void 0:n.displayName)&&e.props.value===(null==t?void 0:t.value)}))},I=function(e,t){return u.getChildDeep(e,(function(e){var n;return"AutoCompleteItem"===(null==e||null==(n=e.type)?void 0:n.displayName)&&e.props.value===(null==t?void 0:t.value)}))},x=["onBlur","onChange","onFocus","onKeyDown","variant"],O=["_fixed","_focus","children","disabled","label","value","fixed","getValue","onClick","onMouseOver","sx"];function w(e){var n,r,i=e.closeOnBlur,a=void 0===i||i,s=e.closeOnSelect,c=e.creatable,f=e.emphasize,v=e.emptyState,m=void 0===v||v,w=e.freeSolo,A=e.isReadOnly,S=e.listAllValuesOnFocus,F=e.maxSuggestions,E=e.multiple,R=e.defaultValue,D=e.defaultValues,j=void 0===D?R?[R]:[]:D,k=e.onReady,L=e.defaultIsOpen,P=e.disableFilter,N=e.restoreOnBlurIfEmpty,M=void 0===N?!w:N,T=e.shouldRenderSuggestions,_=void 0===T?function(){return!0}:T,V=e.submitKeys,B=void 0===V?[]:V,q=e.suggestWhenEmpty,G=e.value,W=e.values,H=void 0===W?G?"string"==typeof G?[G]:[].concat(G):void 0:W;s=s||!E,w=w||!!E||e.freeSolo;var U=o.useDisclosure({defaultIsOpen:L}),z=U.isOpen,K=U.onClose,$=U.onOpen,Y=l.runIfFn(e.children,{isOpen:z,onClose:K,onOpen:$}),Q=function(e){return u.getChildrenDeep(e,(function(e){var t;return"AutoCompleteItem"===(null==e||null==(t=e.type)?void 0:t.displayName)})).map((function(e){var t=l.pick(e.props,["value","label","fixed","disabled"]),n=e.props.getValue,r=(void 0===n?g:n)(t.value),o=l.isDefined(t.label)?t:d({},t,{label:r});return d({},o,{value:r,originalValue:t.value})}))}(Y),J=t.useRef(null),X=t.useRef(null),Z=t.useRef(null),ee=t.useRef(null),te=t.useState(!1),ne=te[0],re=te[1],oe="";E?oe="":l.isUndefined(j)?l.isUndefined(H)||(oe=H[0]):oe=j[0];var le=t.useState(null!=(n=oe)?n:""),ue=le[0],ie=le[1],ae=P?Q:Q.filter((function(t){return t.fixed||l.runIfFn(e.filter||y,ue,t.value,t.label)||ne})).filter((function(e,t){return!F||e.fixed||t<F})),se=[].concat(ae,c?[{value:ue,noFilter:!0,creatable:!0}]:[]),ce=o.useControllableState({defaultValue:j,value:H,onChange:function(t){var n=se.find((function(e){return e.value===t[0]})),r=t.map((function(e){return se.find((function(t){return t.value===e}))}));l.runIfFn(e.onChange,E?t:t[0],E?r:n)}}),fe=ce[0],de=ce[1],pe=t.useState(null==(r=Q[0])?void 0:r.value),ve=pe[0],me=pe[1],ge=e.maxSelections||fe.length+1,he=se.findIndex((function(e){return e.value===ve})),ye=l.getNextItem(he,se,!!e.rollNavigation),be=l.getPrevItem(he,se,!!e.rollNavigation),Ce=l.getFirstItem(se),Ie=l.getLastItem(se);o.useUpdateEffect((function(){me(null==Ce?void 0:Ce.value)}),[ue]),t.useEffect((function(){var e;z||me(null==(e=Q[0])?void 0:e.value)}),[z]),t.useEffect((function(){var t=Q.find((function(e){return e.value===ve}));l.runIfFn(e.onOptionFocus,{item:t,focusMethod:ee.current,isNewInput:null==t?void 0:t.creatable})}),[ve,e.onOptionFocus]);var xe=function(t){var n;!fe.includes(t)&&fe.length<ge&&de((function(e){return E?[].concat(e,[t]):[t]}));var r,o=se.find((function(e){return e.value===t}));E&&(null==(r=J.current)||r.focus()),e.focusInputOnSelect&&(null==(n=J.current)||n.focus()),l.runIfFn(e.onSelectOption,{item:o,selectMethod:ee.current,isNewInput:null==o?void 0:o.creatable}),null!=o&&o.creatable&&l.runIfFn(e.onCreateOption,{item:l.omit(o,["noFilter"]),selectMethod:ee.current});var u=(null==o?void 0:o.label)||(null==o?void 0:o.value);ie((function(){return E?"":null!=u?u:""})),s&&K()},Oe=function(t,n){var r;de((function(n){var r=Q.find((function(e){return e.value===t}));return l.runIfFn(e.onTagRemoved,t,r,n),n.filter((function(e){return e!==t}))})),ue===t&&ie(""),n&&(null==(r=J.current)||r.focus())},we=E?fe.map((function(e){var t;return{label:(null==(t=Q.find((function(t){return t.value===e})))?void 0:t.label)||e,onRemove:function(){return Oe(e)}}})):[];t.useEffect((function(){l.runIfFn(k,{tags:we})}),[fe]);var Ae=o.useDimensions(X,!0),Se=o.useDimensions(J,!0);return{autoCompleteProps:e,children:Y,filteredList:se,filteredResults:ae,focusedValue:ve,getEmptyStateProps:function(e){if(se.every((function(e){return e.noFilter}))&&m&&!c)return"boolean"==typeof m?e:l.runIfFn(m,{query:ue})},getGroupProps:function(e){var t=function(e,t){return l.isDefined(u.getChildDeep(e,(function(e){var n,r,o=l.runIfFn((null==(n=e.props)?void 0:n.getValue)||g,(null==(r=e.props)?void 0:r.value)||{});return t.some((function(e){return e.value===o}))})))}(e.children,se);return{divider:{hasFirstChild:C(e.children,Ce),hasLastChild:I(e.children,l.getLastItem(se.filter((function(e){return l.isUndefined(null==e?void 0:e.noFilter)}))))},group:{display:t?"initial":"none"}}},getInputProps:function(t,n){var r=t.onBlur,o=t.onChange,u=t.onFocus,i=t.onKeyDown,s=t.variant,c=p(t,x);return{wrapper:d({ref:X,onClick:function(){var e;null==J||null==(e=J.current)||e.focus()}},b(n,E),c),input:d({isReadOnly:A,onFocus:function(t){l.runIfFn(u,t),e.openOnFocus&&!A&&$(),e.selectOnFocus&&t.target.select(),S&&re(!0)},onBlur:function(e){var t,n;l.runIfFn(r,e);var o=e.relatedTarget===(null==Z?void 0:Z.current)||(null==(t=Z.current)?void 0:t.contains(e.relatedTarget)),u=null==(n=X.current)?void 0:n.contains(e.relatedTarget);if(!o&&!u&&(a&&K(),!fe.includes(e.target.value)&&M)){var i=l.getLastItem(fe),s=Q.find((function(e){return e.value===i}));ie((null==s?void 0:s.label)||(null==s?void 0:s.value)||"")}},onChange:function(e){var t=e.target.value;l.runIfFn(o,e),ie(t);var n=l.isEmpty(t);!l.runIfFn(_,t)||n&&!q?K():$(),re(!1)},onKeyDown:function(e){l.runIfFn(i,e),ee.current="keyboard";var t,n=e.key,r=se[he];return["Enter"].concat(B).includes(n)?(!r||null!=r&&r.disabled?null==(t=J.current)||t.focus():xe(null==r?void 0:r.value),void e.preventDefault()):"ArrowDown"===n?(me(null==ye?void 0:ye.value),void e.preventDefault()):"ArrowUp"===n?(me(null==be?void 0:be.value),void e.preventDefault()):"Tab"===n?(me(null==ye?void 0:ye.value),void(z&&e.preventDefault())):"Home"===n?(me(null==Ce?void 0:Ce.value),void e.preventDefault()):"End"===n?(me(null==Ie?void 0:Ie.value),void e.preventDefault()):void("Escape"===n&&l.callAll(K,e.preventDefault))},value:ue,variant:E?"unstyled":s},c)}},getItemProps:function(e,t){var n,r=e._fixed,o=e._focus,u=e.children,i=e.disabled,a=e.label,s=e.value,c=e.fixed,v=e.getValue,m=void 0===v?g:v,y=e.onClick,b=e.onMouseOver,C=e.sx,I=p(e,O),x=t?s:null==(n=m(s))?void 0:n.toString(),w=x===ve,A=se.findIndex((function(e){return e.value===x}))>=0,S=u||a||x;return{item:d({},"string"==typeof S&&f?{dangerouslySetInnerHTML:{__html:h(S,ue)}}:{children:S},{"aria-selected":fe.includes(x),"aria-disabled":i,_disabled:{opacity:.4,cursor:"not-allowed",userSelect:"none"},onClick:function(e){var t;l.runIfFn(y,e),i?null==(t=J.current)||t.focus():xe(x)},onMouseOver:function(e){l.runIfFn(b,e),me(x),ee.current="mouse"},sx:d({},C,{mark:d({color:"inherit",bg:"transparent"},l.isObject(f)?f:{fontWeight:f?"extrabold":"inherit"})})},w&&(o||{bg:"whiteAlpha.100",_light:{bg:"gray.200"}}),c&&r,I),root:{isValidSuggestion:A,value:x}}},getListProps:function(){return{width:e.multiple?null==Ae?void 0:Ae.marginBox.width:null==Se?void 0:Se.marginBox.width}},inputRef:J,interactionRef:ee,isOpen:z,itemList:Q,listRef:Z,onClose:K,onOpen:$,query:ue,removeItem:Oe,resetItems:function(e){var t;de([]),e&&(null==(t=J.current)||t.focus())},setQuery:ie,tags:we,values:fe}}var A=o.forwardRef((function(e,r){var l=w(e),u=l.children,i=l.isOpen,a=l.onClose,s=l.onOpen,f=l.resetItems,d=l.removeItem;return t.useImperativeHandle(r,(function(){return{resetItems:f,removeItem:d}})),n.createElement(c,{value:l},n.createElement(o.Popover,{isLazy:!0,isOpen:i,onClose:a,onOpen:s,autoFocus:!1,placement:"bottom",closeOnBlur:!0},n.createElement(o.chakra.div,{sx:{".chakra-popover__popper":{position:"unset !important"}},w:"full",ref:r},u)))}));A.displayName="AutoComplete";var S=["children","dangerouslySetInnerHTML"],F=o.forwardRef((function(e,r){var u=f(),i=u.focusedValue,a=u.getItemProps,s=u.interactionRef,c=t.useRef(),d=o.useMergeRefs(r,c),v=a(e),m=v.root,g=m.isValidSuggestion,h=m.value,y=i===h;t.useEffect((function(){var e;y&&"keyboard"===s.current&&(null==c||null==(e=c.current)||e.scrollIntoView({behavior:"smooth",block:"center"}))}),[y,s]),t.useEffect((function(){"string"!=typeof h&&console.warn("wow"),"string"!=typeof h&&l.isUndefined(e.getValue)&&console.error("You must define the `getValue` prop, when an Item's value is not a string")}),[]);var b=v.item,C=b.children,I=b.dangerouslySetInnerHTML,x=p(b,S),O=l.omit(x,["groupId"]);return g?n.createElement(o.Flex,Object.assign({ref:d},E,O),C||n.createElement("span",{dangerouslySetInnerHTML:I})):null}));F.displayName="AutoCompleteItem";var E={mx:"2",px:"2",py:"2",rounded:"md",cursor:"pointer"},R=["alwaysDisplay","children"],D=["children"];function j(e){var t=e.alwaysDisplay,r=e.children,u=p(e,R),i=f(),a=i.autoCompleteProps,s=i.query,c=i.filteredResults,v=(0,i.getItemProps)(d({},e,{value:s,children:l.runIfFn(r,{value:s})}),!0).item,m=v.children,g=p(v,D),h=c.some((function(e){return e.value===s})),y=!l.isEmpty(s)||t;return a.creatable&&y&&!h?n.createElement(o.Flex,Object.assign({},E,g,u),m||"Add "+s):null}j.displayName="AutoCompleteCreatable";var k=["children","showDivider"],L=o.forwardRef((function(e,t){var r=e.children,u=p(e,k),i=l.omit(u,["groupSibling"]),a=(0,f().getGroupProps)(e).group,s=M(e);return n.createElement(o.Box,Object.assign({ref:t},a,i),n.createElement(o.Divider,Object.assign({},s.top)),r,n.createElement(o.Divider,Object.assign({},s.bottom)))})),P=o.forwardRef((function(e,t){return n.createElement(o.Flex,Object.assign({},N,e,{ref:t}))}));L.displayName="AutoCompleteGroup",P.displayName="AutoCompleteGroupTitle";var N={ml:5,my:1,fontSize:"xs",letterSpacing:"wider",fontWeight:"extrabold",textTransform:"uppercase"},M=function(e){var t=f(),n=e.groupSibling,r=(0,t.getGroupProps)(e).divider,o=r.hasLastChild,l={my:2,borderColor:e.dividerColor};return{top:d({},l,{mb:4,display:!e.showDivider||r.hasFirstChild?"none":""}),bottom:d({},l,{display:!e.showDivider||o||n?"none":""})}},T=["children","isInvalid"],_=["ref"],V=o.forwardRef((function(e,t){var r=f(),u=r.autoCompleteProps,i=r.inputRef,a=r.tags,s=e.children,c=e.isInvalid,d=(0,r.getInputProps)(p(e,T),o.useMultiStyleConfig("Input",e)),v=d.wrapper,m=d.input,g=v.ref,h=p(v,_),y=o.useMergeRefs(t,i),b=l.runIfFn(s,{tags:a}),C=n.createElement(o.Input,Object.assign({isInvalid:c},m,{ref:y})),I=n.createElement(o.Wrap,Object.assign({},h,{ref:g}),b,n.createElement(o.WrapItem,Object.assign({as:o.Input},m,{ref:y})));return n.createElement(n.Fragment,null,u.multiple?I:C)}));V.displayName="Input",V.id="Input";var B=function(e){var t=(0,f().getEmptyStateProps)(n.createElement(i.Flex,Object.assign({},q),"No options found!"));return n.createElement(i.Box,Object.assign({},e),t)},q={fontSize:"sm",align:"center",justify:"center",fontWeight:"bold",fontStyle:"italic"},G=["AutoCompleteGroup","AutoCompleteItem","AutoCompleteCreatable"],W=["children"],H=o.forwardRef((function(e,t){var r=e.children,l=p(e,W),u=f(),i=u.getListProps,a=o.useMergeRefs(t,u.listRef),s=i(),c=function(e){var t=n.Children.map(e,(function(t,r){var o;if("AutoCompleteGroup"===(null==t||null==(o=t.type)?void 0:o.displayName)){var l=n.Children.toArray(e)[r+1];return n.cloneElement(t,{groupSibling:!!l&&"AutoCompleteGroup"===l.type.displayName})}return t})),r=n.Children.toArray(t).filter((function(e){var t;return!G.includes(null==e||null==(t=e.type)?void 0:t.displayName)}));return[n.Children.toArray(t).filter((function(e){var t;return G.includes(null==e||null==(t=e.type)?void 0:t.displayName)})),r]}(r),d=c[0],v=c[1];return n.createElement(o.PopoverContent,Object.assign({ref:a},U,s,l),d,n.createElement(B,null),v)}));H.displayName="AutoCompleteList";var U={mt:"4",py:"4",opacity:"0",bg:"#232934",rounded:"md",maxH:"350px",border:"none",shadow:"base",pos:"absolute",zIndex:"popover",overflowY:"auto",_light:{bg:"#ffffff"},_focus:{boxShadow:"none"}},z=["label","onRemove","disabled"],K=t.memo((function(e){var t=e.label,r=e.onRemove,o=e.disabled,u=p(e,z);return n.createElement(i.WrapItem,null,n.createElement(a.Tag,Object.assign({borderRadius:"md",fontWeight:"normal"},o&&$,u),n.createElement(a.TagLabel,null,t),n.createElement(a.TagCloseButton,Object.assign({onClick:function(){return!o&&l.runIfFn(r)},cursor:"pointer"},o&&$))))})),$={cursor:"text",userSelect:"none",opacity:.4,_focus:{boxShadow:"none"}};exports.AutoComplete=A,exports.AutoCompleteCreatable=j,exports.AutoCompleteGroup=L,exports.AutoCompleteGroupTitle=P,exports.AutoCompleteInput=V,exports.AutoCompleteItem=F,exports.AutoCompleteList=H,exports.AutoCompleteProvider=c,exports.AutoCompleteTag=K,exports.baseItemStyles=E,exports.useAutoComplete=w,exports.useAutoCompleteContext=f;
|
|
2
|
-
//# sourceMappingURL=chakra-autocomplete.cjs.production.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|