@choc-ui/chakra-autocomplete 4.10.1 → 4.10.2

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.
@@ -8,6 +8,6 @@ export declare type AutoCompleteChildProps = {
8
8
  };
9
9
  export interface AutoCompleteProps extends UseAutoCompleteProps {
10
10
  children: MaybeRenderProp<AutoCompleteChildProps>;
11
- ref: React.RefObject<AutoCompleteRefMethods>;
11
+ ref?: React.RefObject<AutoCompleteRefMethods>;
12
12
  }
13
13
  export declare const AutoComplete: import("@chakra-ui/react").ComponentWithAs<"div", AutoCompleteProps>;
@@ -1 +1 @@
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) => {\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 };\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 } from \"@chakra-ui/utils\";\nimport { getChildDeep } from \"react-nanny\";\nimport { ReactNode } from \"react\";\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(\n children,\n (child: any) =>\n filteredList.findIndex(i => i.value === child.props?.value) >= 0\n )\n );\n};\n","import {\n useDimensions,\n useDisclosure,\n useUpdateEffect,\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 { 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 defaultValues = [],\n emphasize,\n emptyState = true,\n freeSolo,\n isReadOnly,\n listAllValuesOnFocus,\n maxSuggestions,\n multiple,\n onReady,\n defaultIsOpen,\n shouldRenderSuggestions = () => true,\n suggestWhenEmpty,\n } = autoCompleteProps;\n\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 [query, setQuery] = useState<string>(\"\");\n\n const [values, setValues] = useState<any[]>(defaultValues);\n\n useEffect(() => {\n if (!multiple && !isEmpty(defaultValues)) {\n setQuery(defaultValues[0] as any);\n }\n }, []);\n\n const [focusedValue, setFocusedValue] = useState<Item[\"value\"]>(\n itemList[0]?.value\n );\n\n const [listAll, setListAll] = useState(false);\n\n const maxSelections = autoCompleteProps.maxSelections || values.length + 1;\n\n const filteredResults = 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((_, index) => (maxSuggestions ? index < maxSuggestions : true));\n\n // Add Creatable to Filtered List\n const creatableArr: any = creatable ? [{ value: query, noFilter: true }] : [];\n const filteredList: Item[] = [...filteredResults, ...creatableArr];\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 const item = filteredList.find(opt => opt.value === values[0]);\n const items = values.map(val =>\n filteredList.find(opt => opt.value === val)\n );\n runIfFn(\n autoCompleteProps.onChange,\n multiple ? values : values[0],\n multiple ? items : item\n );\n }, [values, multiple]);\n\n useEffect(() => {\n const focusedItem = itemList.find(i => i.value === focusedValue);\n runIfFn(autoCompleteProps.onOptionFocus, {\n optionValue: focusedValue,\n optionLabel: focusedItem?.label,\n item: focusedItem!,\n selectMethod: interactionRef.current,\n isNewInput: false,\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 const option = filteredList.find(i => i.value === optionValue);\n\n const optionLabelFromValue = option?.label;\n // use value if label is not available\n const optionLabel = optionLabelFromValue || optionValue;\n setQuery(optionLabel);\n\n if (multiple) {\n setQuery(\"\");\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n optionValue: optionValue,\n optionLabel: optionLabel,\n item: option!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n if (closeOnSelect) onClose();\n };\n\n const removeItem = (itemValue: Item[\"value\"]) => {\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 };\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 {\n onBlur,\n onChange,\n onFocus,\n onKeyDown,\n variant,\n wrapStyles,\n ...rest\n } = props;\n\n return {\n wrapper: {\n ref: inputWrapperRef,\n onClick: () => {\n inputRef?.current?.focus();\n },\n tabIndex: 0,\n ...getMultipleWrapStyles(themeInput, multiple),\n ...wrapStyles,\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 const listIsFocused = e.relatedTarget === listRef?.current;\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) && !freeSolo)\n setQuery(getLastItem(values) ?? \"\");\n }\n },\n onChange: e => {\n const newValue = e.target.value;\n runIfFn(onChange, e);\n setQuery(e.target.value);\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 (key === \"Enter\") {\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 e.preventDefault();\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 dim = useDimensions(inputWrapperRef, true);\n const getListProps: UseAutoCompleteReturn[\"getListProps\"] = () => {\n const width = dim?.marginBox.width as number;\n\n return {\n width,\n };\n };\n\n const getItemProps: UseAutoCompleteReturn[\"getItemProps\"] = props => {\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 = 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}\n\nexport function AutoCompleteCreatable(props: AutoCompleteCreatableProps) {\n const { children: childrenProp, ...rest } = props;\n const {\n autoCompleteProps,\n getItemProps,\n query,\n filteredResults,\n } = useAutoCompleteContext();\n\n const queryValue = <mark>{query}</mark>;\n const { children, ...itemProps } = getItemProps({\n ...props,\n value: query,\n children: runIfFn(childrenProp, {\n value: queryValue,\n }),\n }).item;\n\n const queryExistsInList = filteredResults.some(i => i.value === query);\n const showCreatable =\n autoCompleteProps.creatable && !isEmpty(query) && !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, { useEffect } 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 inputRef,\n getInputProps,\n setQuery,\n tags,\n } = useAutoCompleteContext();\n\n const ref = useMergeRefs(forwardedRef, inputRef);\n\n const { children: childrenProp, value, ...rest } = props;\n\n useEffect(() => {\n setQuery(value ?? \"\");\n }, [value, setQuery]);\n\n const themeInput: any = useMultiStyleConfig(\"Input\", props);\n\n const inputProps = getInputProps(rest, themeInput);\n\n const children = runIfFn(childrenProp, { tags });\n\n return (\n <Wrap {...inputProps.wrapper}>\n {children}\n <WrapItem as={Input} {...(inputProps.input as any)} ref={ref} />\n </Wrap>\n );\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\nexport const siblingInfo = (children: React.ReactNode) => {\n return 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 });\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\n return (\n <PopoverContent ref={ref} {...baseStyles} {...listProps} {...rest}>\n {siblingInfo(children)}\n <EmptyState />\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","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","findIndex","useAutoComplete","autoCompleteProps","closeOnBlur","closeOnSelect","creatable","defaultValues","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","onReady","defaultIsOpen","shouldRenderSuggestions","suggestWhenEmpty","useDisclosure","isOpen","onClose","onOpen","runIfFn","itemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","setQuery","values","setValues","useEffect","focusedValue","setFocusedValue","listAll","setListAll","maxSelections","filteredResults","filter","fixed","_","index","creatableArr","noFilter","focusedIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","find","opt","items","val","onChange","focusedItem","onOptionFocus","optionValue","optionLabel","selectMethod","current","isNewInput","selectItem","includes","option","optionLabelFromValue","focus","focusInputOnSelect","onSelectOption","removeItem","prevValues","onTagRemoved","resetItems","focusInput","tags","tag","onRemove","getInputProps","onBlur","onFocus","onKeyDown","variant","wrapStyles","rest","wrapper","ref","onClick","tabIndex","input","e","openOnFocus","selectOnFocus","target","select","listIsFocused","relatedTarget","inputWrapperIsFocused","contains","newValue","queryIsEmpty","key","disabled","preventDefault","callAll","dim","useDimensions","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","isUndefined","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","omit","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","childrenProp","queryValue","queryExistsInList","some","showCreatable","AutoCompleteGroup","showDivider","dividerStyles","useDividerStyles","Box","Divider","top","bottom","AutoCompleteGroupTitle","baseTitleStyles","ml","my","fontSize","letterSpacing","textTransform","hasGroupSibling","groupSibling","baseStyles","borderColor","dividerColor","mb","AutoCompleteInput","useMultiStyleConfig","inputProps","Wrap","WrapItem","as","Input","id","EmptyState","emptyStyles","align","justify","fontStyle","siblingInfo","Children","sibling","toArray","cloneElement","AutoCompleteList","listProps","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.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) => {\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 };\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 } from \"@chakra-ui/utils\";\nimport { getChildDeep } from \"react-nanny\";\nimport { ReactNode } from \"react\";\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(\n children,\n (child: any) =>\n filteredList.findIndex(i => i.value === child.props?.value) >= 0\n )\n );\n};\n","import {\n useDimensions,\n useDisclosure,\n useUpdateEffect,\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 { 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 defaultValues = [],\n emphasize,\n emptyState = true,\n freeSolo,\n isReadOnly,\n listAllValuesOnFocus,\n maxSuggestions,\n multiple,\n onReady,\n defaultIsOpen,\n shouldRenderSuggestions = () => true,\n suggestWhenEmpty,\n } = autoCompleteProps;\n\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 [query, setQuery] = useState<string>(\"\");\n\n const [values, setValues] = useState<any[]>(defaultValues);\n\n useEffect(() => {\n if (!multiple && !isEmpty(defaultValues)) {\n setQuery(defaultValues[0] as any);\n }\n }, []);\n\n const [focusedValue, setFocusedValue] = useState<Item[\"value\"]>(\n itemList[0]?.value\n );\n\n const [listAll, setListAll] = useState(false);\n\n const maxSelections = autoCompleteProps.maxSelections || values.length + 1;\n\n const filteredResults = 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((_, index) => (maxSuggestions ? index < maxSuggestions : true));\n\n // Add Creatable to Filtered List\n const creatableArr: any = creatable ? [{ value: query, noFilter: true }] : [];\n const filteredList: Item[] = [...filteredResults, ...creatableArr];\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 const item = filteredList.find(opt => opt.value === values[0]);\n const items = values.map(val =>\n filteredList.find(opt => opt.value === val)\n );\n runIfFn(\n autoCompleteProps.onChange,\n multiple ? values : values[0],\n multiple ? items : item\n );\n }, [values, multiple]);\n\n useEffect(() => {\n const focusedItem = itemList.find(i => i.value === focusedValue);\n runIfFn(autoCompleteProps.onOptionFocus, {\n optionValue: focusedValue,\n optionLabel: focusedItem?.label,\n item: focusedItem!,\n selectMethod: interactionRef.current,\n isNewInput: false,\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 const option = filteredList.find(i => i.value === optionValue);\n\n const optionLabelFromValue = option?.label;\n // use value if label is not available\n const optionLabel = optionLabelFromValue || optionValue;\n setQuery(optionLabel);\n\n if (multiple) {\n setQuery(\"\");\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n optionValue: optionValue,\n optionLabel: optionLabel,\n item: option!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n if (closeOnSelect) onClose();\n };\n\n const removeItem = (itemValue: Item[\"value\"]) => {\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 };\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 {\n onBlur,\n onChange,\n onFocus,\n onKeyDown,\n variant,\n wrapStyles,\n ...rest\n } = props;\n\n return {\n wrapper: {\n ref: inputWrapperRef,\n onClick: () => {\n inputRef?.current?.focus();\n },\n tabIndex: 0,\n ...getMultipleWrapStyles(themeInput, multiple),\n ...wrapStyles,\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 const listIsFocused = e.relatedTarget === listRef?.current;\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) && !freeSolo)\n setQuery(getLastItem(values) ?? \"\");\n }\n },\n onChange: e => {\n const newValue = e.target.value;\n runIfFn(onChange, e);\n setQuery(e.target.value);\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 (key === \"Enter\") {\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 e.preventDefault();\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 dim = useDimensions(inputWrapperRef, true);\n const getListProps: UseAutoCompleteReturn[\"getListProps\"] = () => {\n const width = dim?.marginBox.width as number;\n\n return {\n width,\n };\n };\n\n const getItemProps: UseAutoCompleteReturn[\"getItemProps\"] = props => {\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 = 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}\n\nexport function AutoCompleteCreatable(props: AutoCompleteCreatableProps) {\n const { children: childrenProp, ...rest } = props;\n const {\n autoCompleteProps,\n getItemProps,\n query,\n filteredResults,\n } = useAutoCompleteContext();\n\n const queryValue = <mark>{query}</mark>;\n const { children, ...itemProps } = getItemProps({\n ...props,\n value: query,\n children: runIfFn(childrenProp, {\n value: queryValue,\n }),\n }).item;\n\n const queryExistsInList = filteredResults.some(i => i.value === query);\n const showCreatable =\n autoCompleteProps.creatable && !isEmpty(query) && !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, { useEffect } 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 inputRef,\n getInputProps,\n setQuery,\n tags,\n } = useAutoCompleteContext();\n\n const ref = useMergeRefs(forwardedRef, inputRef);\n\n const { children: childrenProp, value, ...rest } = props;\n\n useEffect(() => {\n setQuery(value ?? \"\");\n }, [value, setQuery]);\n\n const themeInput: any = useMultiStyleConfig(\"Input\", props);\n\n const inputProps = getInputProps(rest, themeInput);\n\n const children = runIfFn(childrenProp, { tags });\n\n return (\n <Wrap {...inputProps.wrapper}>\n {children}\n <WrapItem as={Input} {...(inputProps.input as any)} ref={ref} />\n </Wrap>\n );\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\nexport const siblingInfo = (children: React.ReactNode) => {\n return 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 });\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\n return (\n <PopoverContent ref={ref} {...baseStyles} {...listProps} {...rest}>\n {siblingInfo(children)}\n <EmptyState />\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","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","findIndex","useAutoComplete","autoCompleteProps","closeOnBlur","closeOnSelect","creatable","defaultValues","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","onReady","defaultIsOpen","shouldRenderSuggestions","suggestWhenEmpty","useDisclosure","isOpen","onClose","onOpen","runIfFn","itemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","setQuery","values","setValues","useEffect","focusedValue","setFocusedValue","listAll","setListAll","maxSelections","filteredResults","filter","fixed","_","index","creatableArr","noFilter","focusedIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","find","opt","items","val","onChange","focusedItem","onOptionFocus","optionValue","optionLabel","selectMethod","current","isNewInput","selectItem","includes","option","optionLabelFromValue","focus","focusInputOnSelect","onSelectOption","removeItem","prevValues","onTagRemoved","resetItems","focusInput","tags","tag","onRemove","getInputProps","onBlur","onFocus","onKeyDown","variant","wrapStyles","rest","wrapper","ref","onClick","tabIndex","input","e","openOnFocus","selectOnFocus","target","select","listIsFocused","relatedTarget","inputWrapperIsFocused","contains","newValue","queryIsEmpty","key","disabled","preventDefault","callAll","dim","useDimensions","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","isUndefined","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","omit","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","childrenProp","queryValue","queryExistsInList","some","showCreatable","AutoCompleteGroup","showDivider","dividerStyles","useDividerStyles","Box","Divider","top","bottom","AutoCompleteGroupTitle","baseTitleStyles","ml","my","fontSize","letterSpacing","textTransform","hasGroupSibling","groupSibling","baseStyles","borderColor","dividerColor","mb","AutoCompleteInput","useMultiStyleConfig","inputProps","Wrap","WrapItem","as","Input","id","EmptyState","emptyStyles","align","justify","fontStyle","siblingInfo","Children","sibling","toArray","cloneElement","AutoCompleteList","listProps","PopoverContent","mt","maxH","border","shadow","zIndex","overflowY","boxShadow","AutoCompleteTag","memo","Tag","borderRadius","disabledStyles","TagLabel","TagCloseButton"],"mappings":"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"}
@@ -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/autocomplete-list.tsx","../src/helpers/list.ts","../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) => {\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 };\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 } from \"@chakra-ui/utils\";\nimport { getChildDeep } from \"react-nanny\";\nimport { ReactNode } from \"react\";\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(\n children,\n (child: any) =>\n filteredList.findIndex(i => i.value === child.props?.value) >= 0\n )\n );\n};\n","import {\n useDimensions,\n useDisclosure,\n useUpdateEffect,\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 { 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 defaultValues = [],\n emphasize,\n emptyState = true,\n freeSolo,\n isReadOnly,\n listAllValuesOnFocus,\n maxSuggestions,\n multiple,\n onReady,\n defaultIsOpen,\n shouldRenderSuggestions = () => true,\n suggestWhenEmpty,\n } = autoCompleteProps;\n\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 [query, setQuery] = useState<string>(\"\");\n\n const [values, setValues] = useState<any[]>(defaultValues);\n\n useEffect(() => {\n if (!multiple && !isEmpty(defaultValues)) {\n setQuery(defaultValues[0] as any);\n }\n }, []);\n\n const [focusedValue, setFocusedValue] = useState<Item[\"value\"]>(\n itemList[0]?.value\n );\n\n const [listAll, setListAll] = useState(false);\n\n const maxSelections = autoCompleteProps.maxSelections || values.length + 1;\n\n const filteredResults = 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((_, index) => (maxSuggestions ? index < maxSuggestions : true));\n\n // Add Creatable to Filtered List\n const creatableArr: any = creatable ? [{ value: query, noFilter: true }] : [];\n const filteredList: Item[] = [...filteredResults, ...creatableArr];\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 const item = filteredList.find(opt => opt.value === values[0]);\n const items = values.map(val =>\n filteredList.find(opt => opt.value === val)\n );\n runIfFn(\n autoCompleteProps.onChange,\n multiple ? values : values[0],\n multiple ? items : item\n );\n }, [values, multiple]);\n\n useEffect(() => {\n const focusedItem = itemList.find(i => i.value === focusedValue);\n runIfFn(autoCompleteProps.onOptionFocus, {\n optionValue: focusedValue,\n optionLabel: focusedItem?.label,\n item: focusedItem!,\n selectMethod: interactionRef.current,\n isNewInput: false,\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 const option = filteredList.find(i => i.value === optionValue);\n\n const optionLabelFromValue = option?.label;\n // use value if label is not available\n const optionLabel = optionLabelFromValue || optionValue;\n setQuery(optionLabel);\n\n if (multiple) {\n setQuery(\"\");\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n optionValue: optionValue,\n optionLabel: optionLabel,\n item: option!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n if (closeOnSelect) onClose();\n };\n\n const removeItem = (itemValue: Item[\"value\"]) => {\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 };\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 {\n onBlur,\n onChange,\n onFocus,\n onKeyDown,\n variant,\n wrapStyles,\n ...rest\n } = props;\n\n return {\n wrapper: {\n ref: inputWrapperRef,\n onClick: () => {\n inputRef?.current?.focus();\n },\n tabIndex: 0,\n ...getMultipleWrapStyles(themeInput, multiple),\n ...wrapStyles,\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 const listIsFocused = e.relatedTarget === listRef?.current;\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) && !freeSolo)\n setQuery(getLastItem(values) ?? \"\");\n }\n },\n onChange: e => {\n const newValue = e.target.value;\n runIfFn(onChange, e);\n setQuery(e.target.value);\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 (key === \"Enter\") {\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 e.preventDefault();\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 dim = useDimensions(inputWrapperRef, true);\n const getListProps: UseAutoCompleteReturn[\"getListProps\"] = () => {\n const width = dim?.marginBox.width as number;\n\n return {\n width,\n };\n };\n\n const getItemProps: UseAutoCompleteReturn[\"getItemProps\"] = props => {\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 = 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}\n\nexport function AutoCompleteCreatable(props: AutoCompleteCreatableProps) {\n const { children: childrenProp, ...rest } = props;\n const {\n autoCompleteProps,\n getItemProps,\n query,\n filteredResults,\n } = useAutoCompleteContext();\n\n const queryValue = <mark>{query}</mark>;\n const { children, ...itemProps } = getItemProps({\n ...props,\n value: query,\n children: runIfFn(childrenProp, {\n value: queryValue,\n }),\n }).item;\n\n const queryExistsInList = filteredResults.some(i => i.value === query);\n const showCreatable =\n autoCompleteProps.creatable && !isEmpty(query) && !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, { useEffect } 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 inputRef,\n getInputProps,\n setQuery,\n tags,\n } = useAutoCompleteContext();\n\n const ref = useMergeRefs(forwardedRef, inputRef);\n\n const { children: childrenProp, value, ...rest } = props;\n\n useEffect(() => {\n setQuery(value ?? \"\");\n }, [value, setQuery]);\n\n const themeInput: any = useMultiStyleConfig(\"Input\", props);\n\n const inputProps = getInputProps(rest, themeInput);\n\n const children = runIfFn(childrenProp, { tags });\n\n return (\n <Wrap {...inputProps.wrapper}>\n {children}\n <WrapItem as={Input} {...(inputProps.input as any)} ref={ref} />\n </Wrap>\n );\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 {\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\n return (\n <PopoverContent ref={ref} {...baseStyles} {...listProps} {...rest}>\n {siblingInfo(children)}\n <EmptyState />\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 React from \"react\";\n\nexport const siblingInfo = (children: React.ReactNode) => {\n return 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 });\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","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","defaultValues","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","onReady","shouldRenderSuggestions","suggestWhenEmpty","useDisclosure","defaultIsOpen","isOpen","onClose","onOpen","runIfFn","itemList","getChildrenDeep","map","itemObj","pick","getValue","finObj","isDefined","label","getItemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","setQuery","values","setValues","useEffect","_itemList$","focusedValue","setFocusedValue","listAll","setListAll","maxSelections","filteredResults","filter","fixed","_","index","filteredList","noFilter","focusedIndex","findIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","find","opt","items","val","onChange","focusedItem","onOptionFocus","optionValue","optionLabel","selectMethod","current","isNewInput","selectItem","includes","option","focus","focusInputOnSelect","onSelectOption","removeItem","prevValues","onTagRemoved","tags","tag","onRemove","dim","useDimensions","getEmptyStateProps","defaultEmptyState","every","getGroupProps","hasItems","_child$props","hasChildren","divider","hasFirstChild","hasLastChild","isUndefined","group","display","getInputProps","onBlur","onFocus","onKeyDown","variant","wrapStyles","rest","wrapper","ref","onClick","tabIndex","input","e","openOnFocus","selectOnFocus","target","select","listIsFocused","relatedTarget","inputWrapperIsFocused","_inputWrapperRef$curr","contains","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","focusInput","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","omit","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","childrenProp","queryValue","queryExistsInList","some","AutoCompleteGroup","dividerStyles","useDividerStyles","Box","Divider","top","bottom","AutoCompleteGroupTitle","baseTitleStyles","ml","my","fontSize","letterSpacing","textTransform","hasGroupSibling","groupSibling","baseStyles","borderColor","dividerColor","mb","showDivider","AutoCompleteInput","inputProps","useMultiStyleConfig","Wrap","WrapItem","as","Input","id","EmptyState","emptyStyles","align","justify","fontStyle","AutoCompleteList","listProps","PopoverContent","Children","sibling","toArray","cloneElement","siblingInfo","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/autocomplete-list.tsx","../src/helpers/list.ts","../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) => {\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 };\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 } from \"@chakra-ui/utils\";\nimport { getChildDeep } from \"react-nanny\";\nimport { ReactNode } from \"react\";\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(\n children,\n (child: any) =>\n filteredList.findIndex(i => i.value === child.props?.value) >= 0\n )\n );\n};\n","import {\n useDimensions,\n useDisclosure,\n useUpdateEffect,\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 { 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 defaultValues = [],\n emphasize,\n emptyState = true,\n freeSolo,\n isReadOnly,\n listAllValuesOnFocus,\n maxSuggestions,\n multiple,\n onReady,\n defaultIsOpen,\n shouldRenderSuggestions = () => true,\n suggestWhenEmpty,\n } = autoCompleteProps;\n\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 [query, setQuery] = useState<string>(\"\");\n\n const [values, setValues] = useState<any[]>(defaultValues);\n\n useEffect(() => {\n if (!multiple && !isEmpty(defaultValues)) {\n setQuery(defaultValues[0] as any);\n }\n }, []);\n\n const [focusedValue, setFocusedValue] = useState<Item[\"value\"]>(\n itemList[0]?.value\n );\n\n const [listAll, setListAll] = useState(false);\n\n const maxSelections = autoCompleteProps.maxSelections || values.length + 1;\n\n const filteredResults = 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((_, index) => (maxSuggestions ? index < maxSuggestions : true));\n\n // Add Creatable to Filtered List\n const creatableArr: any = creatable ? [{ value: query, noFilter: true }] : [];\n const filteredList: Item[] = [...filteredResults, ...creatableArr];\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 const item = filteredList.find(opt => opt.value === values[0]);\n const items = values.map(val =>\n filteredList.find(opt => opt.value === val)\n );\n runIfFn(\n autoCompleteProps.onChange,\n multiple ? values : values[0],\n multiple ? items : item\n );\n }, [values, multiple]);\n\n useEffect(() => {\n const focusedItem = itemList.find(i => i.value === focusedValue);\n runIfFn(autoCompleteProps.onOptionFocus, {\n optionValue: focusedValue,\n optionLabel: focusedItem?.label,\n item: focusedItem!,\n selectMethod: interactionRef.current,\n isNewInput: false,\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 const option = filteredList.find(i => i.value === optionValue);\n\n const optionLabelFromValue = option?.label;\n // use value if label is not available\n const optionLabel = optionLabelFromValue || optionValue;\n setQuery(optionLabel);\n\n if (multiple) {\n setQuery(\"\");\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n optionValue: optionValue,\n optionLabel: optionLabel,\n item: option!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n if (closeOnSelect) onClose();\n };\n\n const removeItem = (itemValue: Item[\"value\"]) => {\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 };\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 {\n onBlur,\n onChange,\n onFocus,\n onKeyDown,\n variant,\n wrapStyles,\n ...rest\n } = props;\n\n return {\n wrapper: {\n ref: inputWrapperRef,\n onClick: () => {\n inputRef?.current?.focus();\n },\n tabIndex: 0,\n ...getMultipleWrapStyles(themeInput, multiple),\n ...wrapStyles,\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 const listIsFocused = e.relatedTarget === listRef?.current;\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) && !freeSolo)\n setQuery(getLastItem(values) ?? \"\");\n }\n },\n onChange: e => {\n const newValue = e.target.value;\n runIfFn(onChange, e);\n setQuery(e.target.value);\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 (key === \"Enter\") {\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 e.preventDefault();\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 dim = useDimensions(inputWrapperRef, true);\n const getListProps: UseAutoCompleteReturn[\"getListProps\"] = () => {\n const width = dim?.marginBox.width as number;\n\n return {\n width,\n };\n };\n\n const getItemProps: UseAutoCompleteReturn[\"getItemProps\"] = props => {\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 = 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}\n\nexport function AutoCompleteCreatable(props: AutoCompleteCreatableProps) {\n const { children: childrenProp, ...rest } = props;\n const {\n autoCompleteProps,\n getItemProps,\n query,\n filteredResults,\n } = useAutoCompleteContext();\n\n const queryValue = <mark>{query}</mark>;\n const { children, ...itemProps } = getItemProps({\n ...props,\n value: query,\n children: runIfFn(childrenProp, {\n value: queryValue,\n }),\n }).item;\n\n const queryExistsInList = filteredResults.some(i => i.value === query);\n const showCreatable =\n autoCompleteProps.creatable && !isEmpty(query) && !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, { useEffect } 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 inputRef,\n getInputProps,\n setQuery,\n tags,\n } = useAutoCompleteContext();\n\n const ref = useMergeRefs(forwardedRef, inputRef);\n\n const { children: childrenProp, value, ...rest } = props;\n\n useEffect(() => {\n setQuery(value ?? \"\");\n }, [value, setQuery]);\n\n const themeInput: any = useMultiStyleConfig(\"Input\", props);\n\n const inputProps = getInputProps(rest, themeInput);\n\n const children = runIfFn(childrenProp, { tags });\n\n return (\n <Wrap {...inputProps.wrapper}>\n {children}\n <WrapItem as={Input} {...(inputProps.input as any)} ref={ref} />\n </Wrap>\n );\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 {\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\n return (\n <PopoverContent ref={ref} {...baseStyles} {...listProps} {...rest}>\n {siblingInfo(children)}\n <EmptyState />\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 React from \"react\";\n\nexport const siblingInfo = (children: React.ReactNode) => {\n return 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 });\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","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","defaultValues","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","onReady","shouldRenderSuggestions","suggestWhenEmpty","useDisclosure","defaultIsOpen","isOpen","onClose","onOpen","runIfFn","itemList","getChildrenDeep","map","itemObj","pick","getValue","finObj","isDefined","label","getItemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","setQuery","values","setValues","useEffect","_itemList$","focusedValue","setFocusedValue","listAll","setListAll","maxSelections","filteredResults","filter","fixed","_","index","filteredList","noFilter","focusedIndex","findIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","find","opt","items","val","onChange","focusedItem","onOptionFocus","optionValue","optionLabel","selectMethod","current","isNewInput","selectItem","includes","option","focus","focusInputOnSelect","onSelectOption","removeItem","prevValues","onTagRemoved","tags","tag","onRemove","dim","useDimensions","getEmptyStateProps","defaultEmptyState","every","getGroupProps","hasItems","_child$props","hasChildren","divider","hasFirstChild","hasLastChild","isUndefined","group","display","getInputProps","onBlur","onFocus","onKeyDown","variant","wrapStyles","rest","wrapper","ref","onClick","tabIndex","input","e","openOnFocus","selectOnFocus","target","select","listIsFocused","relatedTarget","inputWrapperIsFocused","_inputWrapperRef$curr","contains","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","focusInput","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","omit","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","childrenProp","queryValue","queryExistsInList","some","AutoCompleteGroup","dividerStyles","useDividerStyles","Box","Divider","top","bottom","AutoCompleteGroupTitle","baseTitleStyles","ml","my","fontSize","letterSpacing","textTransform","hasGroupSibling","groupSibling","baseStyles","borderColor","dividerColor","mb","showDivider","AutoCompleteInput","inputProps","useMultiStyleConfig","Wrap","WrapItem","as","Input","id","EmptyState","emptyStyles","align","justify","fontStyle","AutoCompleteList","listProps","PopoverContent","Children","sibling","toArray","cloneElement","siblingInfo","mt","maxH","border","shadow","zIndex","overflowY","boxShadow","AutoCompleteTag","memo","Tag","borderRadius","disabledStyles","TagLabel","TagCloseButton"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chakra-autocomplete.esm.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) => {\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 };\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 } from \"@chakra-ui/utils\";\nimport { getChildDeep } from \"react-nanny\";\nimport { ReactNode } from \"react\";\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(\n children,\n (child: any) =>\n filteredList.findIndex(i => i.value === child.props?.value) >= 0\n )\n );\n};\n","import {\n useDimensions,\n useDisclosure,\n useUpdateEffect,\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 { 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 defaultValues = [],\n emphasize,\n emptyState = true,\n freeSolo,\n isReadOnly,\n listAllValuesOnFocus,\n maxSuggestions,\n multiple,\n onReady,\n defaultIsOpen,\n shouldRenderSuggestions = () => true,\n suggestWhenEmpty,\n } = autoCompleteProps;\n\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 [query, setQuery] = useState<string>(\"\");\n\n const [values, setValues] = useState<any[]>(defaultValues);\n\n useEffect(() => {\n if (!multiple && !isEmpty(defaultValues)) {\n setQuery(defaultValues[0] as any);\n }\n }, []);\n\n const [focusedValue, setFocusedValue] = useState<Item[\"value\"]>(\n itemList[0]?.value\n );\n\n const [listAll, setListAll] = useState(false);\n\n const maxSelections = autoCompleteProps.maxSelections || values.length + 1;\n\n const filteredResults = 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((_, index) => (maxSuggestions ? index < maxSuggestions : true));\n\n // Add Creatable to Filtered List\n const creatableArr: any = creatable ? [{ value: query, noFilter: true }] : [];\n const filteredList: Item[] = [...filteredResults, ...creatableArr];\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 const item = filteredList.find(opt => opt.value === values[0]);\n const items = values.map(val =>\n filteredList.find(opt => opt.value === val)\n );\n runIfFn(\n autoCompleteProps.onChange,\n multiple ? values : values[0],\n multiple ? items : item\n );\n }, [values, multiple]);\n\n useEffect(() => {\n const focusedItem = itemList.find(i => i.value === focusedValue);\n runIfFn(autoCompleteProps.onOptionFocus, {\n optionValue: focusedValue,\n optionLabel: focusedItem?.label,\n item: focusedItem!,\n selectMethod: interactionRef.current,\n isNewInput: false,\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 const option = filteredList.find(i => i.value === optionValue);\n\n const optionLabelFromValue = option?.label;\n // use value if label is not available\n const optionLabel = optionLabelFromValue || optionValue;\n setQuery(optionLabel);\n\n if (multiple) {\n setQuery(\"\");\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n optionValue: optionValue,\n optionLabel: optionLabel,\n item: option!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n if (closeOnSelect) onClose();\n };\n\n const removeItem = (itemValue: Item[\"value\"]) => {\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 };\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 {\n onBlur,\n onChange,\n onFocus,\n onKeyDown,\n variant,\n wrapStyles,\n ...rest\n } = props;\n\n return {\n wrapper: {\n ref: inputWrapperRef,\n onClick: () => {\n inputRef?.current?.focus();\n },\n tabIndex: 0,\n ...getMultipleWrapStyles(themeInput, multiple),\n ...wrapStyles,\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 const listIsFocused = e.relatedTarget === listRef?.current;\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) && !freeSolo)\n setQuery(getLastItem(values) ?? \"\");\n }\n },\n onChange: e => {\n const newValue = e.target.value;\n runIfFn(onChange, e);\n setQuery(e.target.value);\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 (key === \"Enter\") {\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 e.preventDefault();\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 dim = useDimensions(inputWrapperRef, true);\n const getListProps: UseAutoCompleteReturn[\"getListProps\"] = () => {\n const width = dim?.marginBox.width as number;\n\n return {\n width,\n };\n };\n\n const getItemProps: UseAutoCompleteReturn[\"getItemProps\"] = props => {\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 = 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}\n\nexport function AutoCompleteCreatable(props: AutoCompleteCreatableProps) {\n const { children: childrenProp, ...rest } = props;\n const {\n autoCompleteProps,\n getItemProps,\n query,\n filteredResults,\n } = useAutoCompleteContext();\n\n const queryValue = <mark>{query}</mark>;\n const { children, ...itemProps } = getItemProps({\n ...props,\n value: query,\n children: runIfFn(childrenProp, {\n value: queryValue,\n }),\n }).item;\n\n const queryExistsInList = filteredResults.some(i => i.value === query);\n const showCreatable =\n autoCompleteProps.creatable && !isEmpty(query) && !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, { useEffect } 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 inputRef,\n getInputProps,\n setQuery,\n tags,\n } = useAutoCompleteContext();\n\n const ref = useMergeRefs(forwardedRef, inputRef);\n\n const { children: childrenProp, value, ...rest } = props;\n\n useEffect(() => {\n setQuery(value ?? \"\");\n }, [value, setQuery]);\n\n const themeInput: any = useMultiStyleConfig(\"Input\", props);\n\n const inputProps = getInputProps(rest, themeInput);\n\n const children = runIfFn(childrenProp, { tags });\n\n return (\n <Wrap {...inputProps.wrapper}>\n {children}\n <WrapItem as={Input} {...(inputProps.input as any)} ref={ref} />\n </Wrap>\n );\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\nexport const siblingInfo = (children: React.ReactNode) => {\n return 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 });\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\n return (\n <PopoverContent ref={ref} {...baseStyles} {...listProps} {...rest}>\n {siblingInfo(children)}\n <EmptyState />\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","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","findIndex","useAutoComplete","autoCompleteProps","closeOnBlur","closeOnSelect","creatable","defaultValues","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","onReady","defaultIsOpen","shouldRenderSuggestions","suggestWhenEmpty","useDisclosure","isOpen","onClose","onOpen","runIfFn","itemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","setQuery","values","setValues","useEffect","focusedValue","setFocusedValue","listAll","setListAll","maxSelections","filteredResults","filter","fixed","_","index","creatableArr","noFilter","focusedIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","find","opt","items","val","onChange","focusedItem","onOptionFocus","optionValue","optionLabel","selectMethod","current","isNewInput","selectItem","includes","option","optionLabelFromValue","focus","focusInputOnSelect","onSelectOption","removeItem","prevValues","onTagRemoved","resetItems","focusInput","tags","tag","onRemove","getInputProps","onBlur","onFocus","onKeyDown","variant","wrapStyles","rest","wrapper","ref","onClick","tabIndex","input","e","openOnFocus","selectOnFocus","target","select","listIsFocused","relatedTarget","inputWrapperIsFocused","contains","newValue","queryIsEmpty","key","disabled","preventDefault","callAll","dim","useDimensions","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","isUndefined","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","omit","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","childrenProp","queryValue","queryExistsInList","some","showCreatable","AutoCompleteGroup","showDivider","dividerStyles","useDividerStyles","Box","Divider","top","bottom","AutoCompleteGroupTitle","baseTitleStyles","ml","my","fontSize","letterSpacing","textTransform","hasGroupSibling","groupSibling","baseStyles","borderColor","dividerColor","mb","AutoCompleteInput","useMultiStyleConfig","inputProps","Wrap","WrapItem","as","Input","id","EmptyState","emptyStyles","align","justify","fontStyle","siblingInfo","Children","sibling","toArray","cloneElement","AutoCompleteList","listProps","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.esm.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) => {\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 };\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 } from \"@chakra-ui/utils\";\nimport { getChildDeep } from \"react-nanny\";\nimport { ReactNode } from \"react\";\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(\n children,\n (child: any) =>\n filteredList.findIndex(i => i.value === child.props?.value) >= 0\n )\n );\n};\n","import {\n useDimensions,\n useDisclosure,\n useUpdateEffect,\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 { 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 defaultValues = [],\n emphasize,\n emptyState = true,\n freeSolo,\n isReadOnly,\n listAllValuesOnFocus,\n maxSuggestions,\n multiple,\n onReady,\n defaultIsOpen,\n shouldRenderSuggestions = () => true,\n suggestWhenEmpty,\n } = autoCompleteProps;\n\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 [query, setQuery] = useState<string>(\"\");\n\n const [values, setValues] = useState<any[]>(defaultValues);\n\n useEffect(() => {\n if (!multiple && !isEmpty(defaultValues)) {\n setQuery(defaultValues[0] as any);\n }\n }, []);\n\n const [focusedValue, setFocusedValue] = useState<Item[\"value\"]>(\n itemList[0]?.value\n );\n\n const [listAll, setListAll] = useState(false);\n\n const maxSelections = autoCompleteProps.maxSelections || values.length + 1;\n\n const filteredResults = 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((_, index) => (maxSuggestions ? index < maxSuggestions : true));\n\n // Add Creatable to Filtered List\n const creatableArr: any = creatable ? [{ value: query, noFilter: true }] : [];\n const filteredList: Item[] = [...filteredResults, ...creatableArr];\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 const item = filteredList.find(opt => opt.value === values[0]);\n const items = values.map(val =>\n filteredList.find(opt => opt.value === val)\n );\n runIfFn(\n autoCompleteProps.onChange,\n multiple ? values : values[0],\n multiple ? items : item\n );\n }, [values, multiple]);\n\n useEffect(() => {\n const focusedItem = itemList.find(i => i.value === focusedValue);\n runIfFn(autoCompleteProps.onOptionFocus, {\n optionValue: focusedValue,\n optionLabel: focusedItem?.label,\n item: focusedItem!,\n selectMethod: interactionRef.current,\n isNewInput: false,\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 const option = filteredList.find(i => i.value === optionValue);\n\n const optionLabelFromValue = option?.label;\n // use value if label is not available\n const optionLabel = optionLabelFromValue || optionValue;\n setQuery(optionLabel);\n\n if (multiple) {\n setQuery(\"\");\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n optionValue: optionValue,\n optionLabel: optionLabel,\n item: option!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n if (closeOnSelect) onClose();\n };\n\n const removeItem = (itemValue: Item[\"value\"]) => {\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 };\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 {\n onBlur,\n onChange,\n onFocus,\n onKeyDown,\n variant,\n wrapStyles,\n ...rest\n } = props;\n\n return {\n wrapper: {\n ref: inputWrapperRef,\n onClick: () => {\n inputRef?.current?.focus();\n },\n tabIndex: 0,\n ...getMultipleWrapStyles(themeInput, multiple),\n ...wrapStyles,\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 const listIsFocused = e.relatedTarget === listRef?.current;\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) && !freeSolo)\n setQuery(getLastItem(values) ?? \"\");\n }\n },\n onChange: e => {\n const newValue = e.target.value;\n runIfFn(onChange, e);\n setQuery(e.target.value);\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 (key === \"Enter\") {\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 e.preventDefault();\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 dim = useDimensions(inputWrapperRef, true);\n const getListProps: UseAutoCompleteReturn[\"getListProps\"] = () => {\n const width = dim?.marginBox.width as number;\n\n return {\n width,\n };\n };\n\n const getItemProps: UseAutoCompleteReturn[\"getItemProps\"] = props => {\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 = 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}\n\nexport function AutoCompleteCreatable(props: AutoCompleteCreatableProps) {\n const { children: childrenProp, ...rest } = props;\n const {\n autoCompleteProps,\n getItemProps,\n query,\n filteredResults,\n } = useAutoCompleteContext();\n\n const queryValue = <mark>{query}</mark>;\n const { children, ...itemProps } = getItemProps({\n ...props,\n value: query,\n children: runIfFn(childrenProp, {\n value: queryValue,\n }),\n }).item;\n\n const queryExistsInList = filteredResults.some(i => i.value === query);\n const showCreatable =\n autoCompleteProps.creatable && !isEmpty(query) && !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, { useEffect } 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 inputRef,\n getInputProps,\n setQuery,\n tags,\n } = useAutoCompleteContext();\n\n const ref = useMergeRefs(forwardedRef, inputRef);\n\n const { children: childrenProp, value, ...rest } = props;\n\n useEffect(() => {\n setQuery(value ?? \"\");\n }, [value, setQuery]);\n\n const themeInput: any = useMultiStyleConfig(\"Input\", props);\n\n const inputProps = getInputProps(rest, themeInput);\n\n const children = runIfFn(childrenProp, { tags });\n\n return (\n <Wrap {...inputProps.wrapper}>\n {children}\n <WrapItem as={Input} {...(inputProps.input as any)} ref={ref} />\n </Wrap>\n );\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\nexport const siblingInfo = (children: React.ReactNode) => {\n return 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 });\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\n return (\n <PopoverContent ref={ref} {...baseStyles} {...listProps} {...rest}>\n {siblingInfo(children)}\n <EmptyState />\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","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","findIndex","useAutoComplete","autoCompleteProps","closeOnBlur","closeOnSelect","creatable","defaultValues","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","onReady","defaultIsOpen","shouldRenderSuggestions","suggestWhenEmpty","useDisclosure","isOpen","onClose","onOpen","runIfFn","itemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","setQuery","values","setValues","useEffect","focusedValue","setFocusedValue","listAll","setListAll","maxSelections","filteredResults","filter","fixed","_","index","creatableArr","noFilter","focusedIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","find","opt","items","val","onChange","focusedItem","onOptionFocus","optionValue","optionLabel","selectMethod","current","isNewInput","selectItem","includes","option","optionLabelFromValue","focus","focusInputOnSelect","onSelectOption","removeItem","prevValues","onTagRemoved","resetItems","focusInput","tags","tag","onRemove","getInputProps","onBlur","onFocus","onKeyDown","variant","wrapStyles","rest","wrapper","ref","onClick","tabIndex","input","e","openOnFocus","selectOnFocus","target","select","listIsFocused","relatedTarget","inputWrapperIsFocused","contains","newValue","queryIsEmpty","key","disabled","preventDefault","callAll","dim","useDimensions","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","isUndefined","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","omit","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","childrenProp","queryValue","queryExistsInList","some","showCreatable","AutoCompleteGroup","showDivider","dividerStyles","useDividerStyles","Box","Divider","top","bottom","AutoCompleteGroupTitle","baseTitleStyles","ml","my","fontSize","letterSpacing","textTransform","hasGroupSibling","groupSibling","baseStyles","borderColor","dividerColor","mb","AutoCompleteInput","useMultiStyleConfig","inputProps","Wrap","WrapItem","as","Input","id","EmptyState","emptyStyles","align","justify","fontStyle","siblingInfo","Children","sibling","toArray","cloneElement","AutoCompleteList","listProps","PopoverContent","mt","maxH","border","shadow","zIndex","overflowY","boxShadow","AutoCompleteTag","memo","Tag","borderRadius","disabledStyles","TagLabel","TagCloseButton"],"mappings":"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"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.10.1",
2
+ "version": "4.10.2",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -67,7 +67,7 @@
67
67
  "size-limit": "^5.0.1",
68
68
  "tsdx": "^0.14.1",
69
69
  "tslib": "^2.3.0",
70
- "typescript": "^4.3.5"
70
+ "typescript": "^4.4.4"
71
71
  },
72
72
  "dependencies": {
73
73
  "react-nanny": "^2.9.0"