@choc-ui/chakra-autocomplete 4.16.0 → 4.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -2
- package/dist/chakra-autocomplete.cjs.development.js +29 -9
- package/dist/chakra-autocomplete.cjs.development.js.map +1 -1
- package/dist/chakra-autocomplete.cjs.production.min.js +1 -1
- package/dist/chakra-autocomplete.cjs.production.min.js.map +1 -1
- package/dist/chakra-autocomplete.esm.js +30 -10
- package/dist/chakra-autocomplete.esm.js.map +1 -1
- package/dist/helpers/items.d.ts +1 -6
- package/dist/types.d.ts +1 -0
- package/package.json +1 -1
|
@@ -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 useControllableState,\n} from \"@chakra-ui/react\";\nimport {\n callAll,\n getFirstItem,\n getLastItem,\n getNextItem,\n getPrevItem,\n isObject,\n isEmpty,\n isUndefined,\n runIfFn,\n} from \"@chakra-ui/utils\";\nimport { omit } from \"@chakra-ui/utils\";\n\nimport { useEffect, useRef, useState } from \"react\";\n\nimport { AutoCompleteProps } from \"./autocomplete\";\nimport {\n defaultFilterMethod,\n getDefItemValue,\n getFocusedStyles,\n getItemList,\n setEmphasis,\n} from \"./helpers/items\";\nimport { getMultipleWrapStyles } from \"./helpers/input\";\nimport { hasChildren, hasFirstItem, hasLastItem } from \"./helpers/group\";\nimport { Item, UseAutoCompleteReturn } from \"./types\";\n\n/**\n * useAutoComplete that provides all the state and focus management logic\n * for the autocomplete component. It is consumed by the `Autocomplete` component\n *\n */\n\nexport function useAutoComplete(\n autoCompleteProps: AutoCompleteProps\n): UseAutoCompleteReturn {\n let {\n closeOnBlur = true,\n closeOnSelect,\n creatable,\n emphasize,\n emptyState = true,\n freeSolo,\n isReadOnly,\n listAllValuesOnFocus,\n maxSuggestions,\n multiple,\n defaultValue,\n defaultValues = defaultValue ? [defaultValue] : [],\n onReady,\n defaultIsOpen,\n restoreOnBlurIfEmpty = true,\n shouldRenderSuggestions = () => true,\n submitKeys = [],\n suggestWhenEmpty,\n value,\n values: valuesProp = value\n ? typeof value === \"string\"\n ? [value]\n : [...value]\n : undefined,\n } = autoCompleteProps;\n closeOnSelect = closeOnSelect ? closeOnSelect : multiple ? false : true;\n\n freeSolo = freeSolo ? freeSolo : multiple ? true : autoCompleteProps.freeSolo;\n\n const { isOpen, onClose, onOpen } = useDisclosure({ defaultIsOpen });\n\n const children = runIfFn(autoCompleteProps.children, {\n isOpen,\n onClose,\n onOpen,\n });\n const itemList: Item[] = getItemList(children);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const interactionRef = useRef<\"mouse\" | \"keyboard\" | null>(null);\n\n const [listAll, setListAll] = useState(false);\n\n let defaultQuery = \"\";\n if (multiple) defaultQuery = \"\";\n else if (!isUndefined(defaultValues)) defaultQuery = defaultValues[0];\n else if (!isUndefined(valuesProp)) defaultQuery = valuesProp[0];\n\n const [query, setQuery] = useState<string>(defaultQuery ?? \"\");\n const filteredResults = 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: Item[] = creatable\n ? [{ value: query, noFilter: true, creatable: true }]\n : [];\n\n const filteredList = [...filteredResults, ...creatableArr];\n const [values, setValues] = useControllableState({\n defaultValue: defaultValues,\n value: valuesProp,\n onChange: (newValues: any[]) => {\n const item = filteredList.find(opt => opt.value === newValues[0]);\n const items = newValues.map(val =>\n filteredList.find(opt => opt.value === val)\n );\n runIfFn(\n autoCompleteProps.onChange,\n multiple ? newValues : newValues[0],\n multiple ? items : item\n );\n },\n });\n\n const [focusedValue, setFocusedValue] = useState<Item[\"value\"]>(\n itemList[0]?.value\n );\n\n const maxSelections = autoCompleteProps.maxSelections || values.length + 1;\n\n const focusedIndex = filteredList.findIndex(i => i.value === focusedValue);\n const nextItem = getNextItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const prevItem = getPrevItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const firstItem = getFirstItem(filteredList);\n const lastItem = getLastItem(filteredList);\n\n useUpdateEffect(() => {\n setFocusedValue(firstItem?.value);\n }, [query]);\n\n useEffect(() => {\n const focusedItem = itemList.find(i => i.value === focusedValue);\n runIfFn(autoCompleteProps.onOptionFocus, {\n item: focusedItem!,\n focusMethod: interactionRef.current,\n isNewInput: focusedItem?.creatable,\n });\n }, [focusedValue, autoCompleteProps.onOptionFocus]);\n\n const selectItem = (optionValue: Item[\"value\"]) => {\n if (!values.includes(optionValue) && values.length < maxSelections) {\n setValues(v => (multiple ? [...v, optionValue] : [optionValue]));\n }\n\n const option = filteredList.find(i => i.value === optionValue);\n\n if (multiple) {\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n item: option!,\n selectMethod: interactionRef.current,\n isNewInput: option?.creatable,\n });\n if (option?.creatable) {\n runIfFn(autoCompleteProps.onCreateOption, {\n item: omit(option!, [\"noFilter\"]),\n selectMethod: interactionRef.current,\n });\n }\n\n const optionLabel = option?.label || option?.value;\n setQuery(() => (multiple ? \"\" : optionLabel ?? \"\"));\n\n if (closeOnSelect) onClose();\n };\n\n const removeItem: UseAutoCompleteReturn[\"removeItem\"] = (\n itemValue,\n focusInput\n ) => {\n setValues(prevValues => {\n const item = itemList.find(opt => opt.value === itemValue);\n runIfFn(autoCompleteProps.onTagRemoved, itemValue, item, prevValues);\n return prevValues.filter(i => i !== itemValue);\n });\n if (query === itemValue) setQuery(\"\");\n if (focusInput) inputRef.current?.focus();\n };\n\n const resetItems = (focusInput?: boolean) => {\n setValues([]);\n if (focusInput) inputRef.current?.focus();\n };\n\n const tags = multiple\n ? values.map(tag => ({\n label: itemList.find(item => item.value === tag)?.label || tag,\n onRemove: () => removeItem(tag),\n }))\n : [];\n\n useEffect(() => {\n runIfFn(onReady, { tags });\n }, [values]);\n\n const getInputProps: UseAutoCompleteReturn[\"getInputProps\"] = (\n props,\n themeInput\n ) => {\n const { onBlur, onChange, onFocus, onKeyDown, variant, ...rest } = props;\n\n return {\n wrapper: {\n ref: inputWrapperRef,\n onClick: () => {\n inputRef?.current?.focus();\n },\n ...getMultipleWrapStyles(themeInput, multiple),\n ...rest,\n },\n input: {\n isReadOnly,\n onFocus: e => {\n runIfFn(onFocus, e);\n if (autoCompleteProps.openOnFocus && !isReadOnly) onOpen();\n if (autoCompleteProps.selectOnFocus) e.target.select();\n if (listAllValuesOnFocus) setListAll(true);\n },\n onBlur: e => {\n runIfFn(onBlur, e);\n 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 (\n !values.includes(e.target.value) &&\n !freeSolo &&\n restoreOnBlurIfEmpty\n ) {\n const latestValue = getLastItem(values);\n const latestValueItem = itemList.find(\n i => i.value === latestValue\n );\n const latestValueLabel =\n latestValueItem?.label || latestValueItem?.value || \"\";\n setQuery(latestValueLabel);\n }\n }\n },\n onChange: e => {\n const newValue = e.target.value;\n runIfFn(onChange, e);\n setQuery(newValue);\n const queryIsEmpty = isEmpty(newValue);\n if (\n runIfFn(shouldRenderSuggestions, newValue) &&\n (!queryIsEmpty || suggestWhenEmpty)\n )\n onOpen();\n else onClose();\n setListAll(false);\n },\n onKeyDown: e => {\n runIfFn(onKeyDown, e);\n interactionRef.current = \"keyboard\";\n\n const { key } = e;\n const focusedItem = filteredList[focusedIndex];\n if ([\"Enter\", ...submitKeys].includes(key)) {\n if (focusedItem && !focusedItem?.disabled)\n selectItem(focusedItem?.value);\n else inputRef.current?.focus();\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowDown\") {\n setFocusedValue(nextItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowUp\") {\n setFocusedValue(prevItem?.value);\n\n e.preventDefault();\n return;\n }\n\n if (key === \"Tab\") {\n setFocusedValue(nextItem?.value);\n\n if (isOpen) 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 return {\n width,\n };\n };\n\n const getItemProps: UseAutoCompleteReturn[\"getItemProps\"] = (\n props,\n creatable\n ) => {\n const {\n _fixed,\n _focus,\n children: itemChild,\n disabled,\n label,\n value: valueProp,\n fixed,\n getValue = getDefItemValue,\n onClick,\n onMouseOver,\n sx,\n ...rest\n } = props;\n const value = creatable ? valueProp : getValue(valueProp)?.toString();\n const isFocused = value === focusedValue;\n const isValidSuggestion =\n filteredList.findIndex(i => i.value === value) >= 0;\n const itemLabel = itemChild || label || value;\n return {\n item: {\n ...(typeof itemLabel !== \"string\" || !emphasize\n ? { children: itemLabel }\n : {\n dangerouslySetInnerHTML: {\n __html: setEmphasis(itemLabel, query),\n },\n }),\n \"aria-selected\": values.includes(value),\n \"aria-disabled\": disabled,\n _disabled: { opacity: 0.4, cursor: \"not-allowed\", userSelect: \"none\" },\n onClick: e => {\n runIfFn(onClick, e);\n if (!disabled) selectItem(value);\n else inputRef.current?.focus();\n },\n onMouseOver: e => {\n runIfFn(onMouseOver, e);\n setFocusedValue(value);\n interactionRef.current = \"mouse\";\n },\n sx: {\n ...sx,\n mark: {\n color: \"inherit\",\n bg: \"transparent\",\n ...(isObject(emphasize)\n ? emphasize\n : {\n fontWeight: emphasize ? \"extrabold\" : \"inherit\",\n }),\n },\n },\n ...(isFocused && (_focus || getFocusedStyles())),\n ...(fixed && _fixed),\n ...rest,\n },\n root: {\n isValidSuggestion,\n value,\n },\n };\n };\n\n const getGroupProps: UseAutoCompleteReturn[\"getGroupProps\"] = props => {\n const hasItems = hasChildren(props.children, filteredList);\n return {\n divider: {\n hasFirstChild: hasFirstItem(props.children, firstItem),\n hasLastChild: hasLastItem(\n props.children,\n getLastItem(filteredList.filter(i => isUndefined(i?.noFilter)))\n ),\n },\n group: {\n display: hasItems ? \"initial\" : \"none\",\n },\n };\n };\n\n const getEmptyStateProps: UseAutoCompleteReturn[\"getEmptyStateProps\"] = defaultEmptyState => {\n const noSuggestions = filteredList.every(i => i.noFilter);\n if (noSuggestions && emptyState && !creatable) {\n return typeof emptyState === \"boolean\"\n ? defaultEmptyState\n : runIfFn(emptyState, { query });\n }\n };\n\n return {\n autoCompleteProps,\n children,\n filteredList,\n filteredResults,\n focusedValue,\n getEmptyStateProps,\n getGroupProps,\n getInputProps,\n getItemProps,\n getListProps,\n inputRef,\n interactionRef,\n isOpen,\n itemList,\n listRef,\n onClose,\n onOpen,\n query,\n removeItem,\n resetItems,\n setQuery,\n tags,\n values,\n };\n}\n","import React, { useImperativeHandle } from \"react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\n\nimport { AutoCompleteProvider } from \"./autocomplete-context\";\nimport { useAutoComplete } from \"./use-autocomplete\";\nimport { chakra, forwardRef, Popover } from \"@chakra-ui/react\";\nimport { AutoCompleteRefMethods, UseAutoCompleteProps } from \"./types\";\n\nexport type AutoCompleteChildProps = {\n isOpen: boolean;\n onClose: () => void;\n onOpen: () => void;\n};\nexport interface AutoCompleteProps extends UseAutoCompleteProps {\n children: MaybeRenderProp<AutoCompleteChildProps>;\n ref?: React.RefObject<AutoCompleteRefMethods>;\n}\n\nexport const AutoComplete = forwardRef<AutoCompleteProps, \"div\">(\n (props, ref) => {\n const context = useAutoComplete(props);\n const {\n children,\n isOpen,\n onClose,\n onOpen,\n resetItems,\n removeItem,\n } = context;\n\n useImperativeHandle(ref, () => ({\n resetItems,\n removeItem,\n }));\n\n return (\n <AutoCompleteProvider value={context}>\n <Popover\n isLazy\n isOpen={isOpen}\n onClose={onClose}\n onOpen={onOpen}\n autoFocus={false}\n placement=\"bottom\"\n closeOnBlur={true}\n >\n <chakra.div\n sx={{\n \".chakra-popover__popper\": {\n position: \"unset !important\",\n },\n }}\n w=\"full\"\n ref={ref}\n >\n {children}\n </chakra.div>\n </Popover>\n </AutoCompleteProvider>\n );\n }\n);\n\nAutoComplete.displayName = \"AutoComplete\";\n","import {\n CSSObject,\n Flex,\n FlexProps,\n forwardRef,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport { isUndefined, omit } from \"@chakra-ui/utils\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteItemProps extends FlexProps {\n value: any;\n label?: string;\n fixed?: boolean;\n _focus?: CSSObject | any;\n disabled?: boolean;\n _fixed?: CSSObject;\n getValue?: (item: AutoCompleteItemProps[\"value\"]) => any;\n}\n\nexport const AutoCompleteItem = forwardRef<AutoCompleteItemProps, \"div\">(\n (props, forwardedRef) => {\n const {\n focusedValue,\n getItemProps,\n interactionRef,\n } = useAutoCompleteContext();\n const itemRef = useRef<any>();\n const ref = useMergeRefs(forwardedRef, itemRef);\n\n const itemProps = getItemProps(props);\n const { isValidSuggestion, value } = itemProps.root;\n\n const isFocused = focusedValue === value;\n\n useEffect(() => {\n if (isFocused && interactionRef.current === \"keyboard\")\n itemRef?.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }, [isFocused, interactionRef]);\n\n useEffect(() => {\n if (typeof value !== \"string\") console.warn(\"wow\");\n if (typeof value !== \"string\" && isUndefined(props.getValue))\n console.error(\n \"You must define the `getValue` prop, when an Item's value is not a string\"\n );\n }, []);\n\n const { children, dangerouslySetInnerHTML, ...restProps } = itemProps.item;\n\n const rest = omit(restProps, [\"groupId\"] as any);\n\n return isValidSuggestion ? (\n <Flex ref={ref} {...baseItemStyles} {...rest}>\n {children ? (\n children\n ) : (\n <span dangerouslySetInnerHTML={dangerouslySetInnerHTML} />\n )}\n </Flex>\n ) : null;\n }\n);\n\nAutoCompleteItem.displayName = \"AutoCompleteItem\";\n\nexport const baseItemStyles: FlexProps = {\n mx: \"2\",\n px: \"2\",\n py: \"2\",\n rounded: \"md\",\n cursor: \"pointer\",\n};\n","import { Flex, FlexProps } from \"@chakra-ui/react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport { isEmpty, runIfFn } from \"@chakra-ui/utils\";\n\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { baseItemStyles } from \"./autocomplete-item\";\n\ninterface AutoCompleteCreatableProps extends FlexProps {\n children?: MaybeRenderProp<{ value: any }>;\n}\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 {\n ...props,\n value: query,\n children: runIfFn(childrenProp, {\n value: queryValue,\n }),\n },\n true\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 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 { inputRef, getInputProps, tags } = useAutoCompleteContext();\n\n // const ref = useMergeRefs(forwardedRef, inputRef);\n\n const { children: childrenProp, ...rest } = props;\n\n const themeInput: any = useMultiStyleConfig(\"Input\", props);\n\n const { wrapper, input: inputProps } = getInputProps(rest, themeInput);\n const { ref: wrapperRef, ...wrapperProps } = wrapper;\n const ref = useMergeRefs(forwardedRef, inputRef);\n\n const children = runIfFn(childrenProp, { tags });\n\n return (\n <Wrap {...wrapperProps} ref={wrapperRef}>\n {children}\n <WrapItem as={Input} {...(inputProps 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","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","defaultValue","defaultValues","onReady","defaultIsOpen","restoreOnBlurIfEmpty","shouldRenderSuggestions","submitKeys","suggestWhenEmpty","values","valuesProp","undefined","useDisclosure","isOpen","onClose","onOpen","runIfFn","itemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","listAll","setListAll","defaultQuery","isUndefined","setQuery","filteredResults","filter","fixed","_","index","creatableArr","noFilter","useControllableState","onChange","newValues","find","opt","items","val","setValues","focusedValue","setFocusedValue","maxSelections","focusedIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","useEffect","focusedItem","onOptionFocus","focusMethod","current","isNewInput","selectItem","optionValue","includes","option","focus","focusInputOnSelect","onSelectOption","selectMethod","onCreateOption","omit","optionLabel","removeItem","focusInput","prevValues","onTagRemoved","resetItems","tags","tag","onRemove","getInputProps","onBlur","onFocus","onKeyDown","variant","rest","wrapper","ref","onClick","input","e","openOnFocus","selectOnFocus","target","select","listIsFocused","relatedTarget","inputWrapperIsFocused","contains","latestValue","latestValueItem","latestValueLabel","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","group","display","getEmptyStateProps","defaultEmptyState","noSuggestions","every","AutoComplete","forwardRef","context","useImperativeHandle","React","Popover","isLazy","autoFocus","placement","chakra","div","position","w","AutoCompleteItem","forwardedRef","itemRef","useMergeRefs","itemProps","scrollIntoView","behavior","block","console","warn","error","restProps","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","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","wrapperRef","wrapperProps","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): Item[] => {\n const itemChildren = getChildrenDeep(\n children,\n (child: any) => child?.type?.displayName === \"AutoCompleteItem\"\n );\n\n return itemChildren.map(item => {\n const itemObj = pick(item.props, [\"value\", \"label\", \"fixed\", \"disabled\"]);\n const { getValue = getDefItemValue } = item.props;\n const value = getValue(itemObj.value);\n const finObj = isDefined(itemObj.label)\n ? itemObj\n : { ...itemObj, label: value };\n return { ...finObj, value, originalValue: itemObj.value };\n });\n};\n\nexport const getFocusedStyles = (): FlexProps => {\n return {\n bg: \"whiteAlpha.100\",\n _light: {\n bg: \"gray.200\",\n },\n };\n};\n\nexport const defaultFilterMethod = (\n query: string,\n itemValue: Item[\"value\"],\n itemLabel: Item[\"label\"]\n) => {\n return (\n itemValue?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n itemLabel?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n fuzzyScore(query, itemValue) >= 0.5 ||\n fuzzyScore(query, itemLabel) >= 0.5\n );\n};\n\nfunction escapeRegex(string: string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n}\n","export const getMultipleWrapStyles = (themeInput: any, multiple?: boolean) => ({\n ...(multiple && {\n ...themeInput.field,\n _focusWithin: themeInput.field._focus,\n pos: \"relative\",\n minH: 9,\n // px: 3,\n py: 1.5,\n spacing: 3,\n }),\n cursor: \"text\",\n h: \"fit-content\",\n // w: \"full\",\n});\n","import { isDefined } 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 useControllableState,\n} from \"@chakra-ui/react\";\nimport {\n callAll,\n getFirstItem,\n getLastItem,\n getNextItem,\n getPrevItem,\n isObject,\n isEmpty,\n isUndefined,\n runIfFn,\n} from \"@chakra-ui/utils\";\nimport { omit } from \"@chakra-ui/utils\";\n\nimport { useEffect, useRef, useState } from \"react\";\n\nimport { AutoCompleteProps } from \"./autocomplete\";\nimport {\n defaultFilterMethod,\n getDefItemValue,\n getFocusedStyles,\n getItemList,\n setEmphasis,\n} from \"./helpers/items\";\nimport { getMultipleWrapStyles } from \"./helpers/input\";\nimport { hasChildren, hasFirstItem, hasLastItem } from \"./helpers/group\";\nimport { Item, UseAutoCompleteReturn } from \"./types\";\n\n/**\n * useAutoComplete that provides all the state and focus management logic\n * for the autocomplete component. It is consumed by the `Autocomplete` component\n *\n */\n\nexport function useAutoComplete(\n autoCompleteProps: AutoCompleteProps\n): UseAutoCompleteReturn {\n let {\n closeOnBlur = true,\n closeOnSelect,\n creatable,\n emphasize,\n emptyState = true,\n freeSolo,\n isReadOnly,\n listAllValuesOnFocus,\n maxSuggestions,\n multiple,\n defaultValue,\n defaultValues = defaultValue ? [defaultValue] : [],\n onReady,\n defaultIsOpen,\n restoreOnBlurIfEmpty = !freeSolo,\n shouldRenderSuggestions = () => true,\n submitKeys = [],\n suggestWhenEmpty,\n value,\n values: valuesProp = value\n ? typeof value === \"string\"\n ? [value]\n : [...value]\n : undefined,\n } = autoCompleteProps;\n closeOnSelect = closeOnSelect ? closeOnSelect : multiple ? false : true;\n\n freeSolo = freeSolo ? freeSolo : multiple ? true : autoCompleteProps.freeSolo;\n\n const { isOpen, onClose, onOpen } = useDisclosure({ defaultIsOpen });\n\n const children = runIfFn(autoCompleteProps.children, {\n isOpen,\n onClose,\n onOpen,\n });\n const itemList: Item[] = getItemList(children);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const interactionRef = useRef<\"mouse\" | \"keyboard\" | null>(null);\n\n const [listAll, setListAll] = useState(false);\n\n let defaultQuery = \"\";\n if (multiple) defaultQuery = \"\";\n else if (!isUndefined(defaultValues)) defaultQuery = defaultValues[0];\n else if (!isUndefined(valuesProp)) defaultQuery = valuesProp[0];\n\n const [query, setQuery] = useState<string>(defaultQuery ?? \"\");\n const filteredResults = itemList\n .filter(\n i =>\n i.fixed ||\n runIfFn(\n autoCompleteProps.filter || defaultFilterMethod,\n query,\n i.value,\n i.label\n ) ||\n listAll\n )\n .filter((i, index) => (maxSuggestions ? i.fixed || index < maxSuggestions : true));\n\n // Add Creatable to Filtered List\n const creatableArr: Item[] = creatable\n ? [{ value: query, noFilter: true, creatable: true }]\n : [];\n\n const filteredList = [...filteredResults, ...creatableArr];\n const [values, setValues] = useControllableState({\n defaultValue: defaultValues,\n value: valuesProp,\n onChange: (newValues: any[]) => {\n const item = filteredList.find(opt => opt.value === newValues[0]);\n const items = newValues.map(val =>\n filteredList.find(opt => opt.value === val)\n );\n runIfFn(\n autoCompleteProps.onChange,\n multiple ? newValues : newValues[0],\n multiple ? items : item\n );\n },\n });\n\n const [focusedValue, setFocusedValue] = useState<Item[\"value\"]>(\n itemList[0]?.value\n );\n\n const maxSelections = autoCompleteProps.maxSelections || values.length + 1;\n\n const focusedIndex = filteredList.findIndex(i => i.value === focusedValue);\n const nextItem = getNextItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const prevItem = getPrevItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const firstItem = getFirstItem(filteredList);\n const lastItem = getLastItem(filteredList);\n\n useUpdateEffect(() => {\n setFocusedValue(firstItem?.value);\n }, [query]);\n\n useEffect(() => {\n if (!isOpen) setFocusedValue(itemList[0]?.value);\n }, [isOpen]);\n\n useEffect(() => {\n const focusedItem = itemList.find(i => i.value === focusedValue);\n runIfFn(autoCompleteProps.onOptionFocus, {\n item: focusedItem!,\n focusMethod: interactionRef.current,\n isNewInput: focusedItem?.creatable,\n });\n }, [focusedValue, autoCompleteProps.onOptionFocus]);\n\n const selectItem = (optionValue: Item[\"value\"]) => {\n if (!values.includes(optionValue) && values.length < maxSelections) {\n setValues(v => (multiple ? [...v, optionValue] : [optionValue]));\n }\n\n const option = filteredList.find(i => i.value === optionValue);\n\n if (multiple) {\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n item: option!,\n selectMethod: interactionRef.current,\n isNewInput: option?.creatable,\n });\n if (option?.creatable) {\n runIfFn(autoCompleteProps.onCreateOption, {\n item: omit(option!, [\"noFilter\"]),\n selectMethod: interactionRef.current,\n });\n }\n\n const optionLabel = option?.label || option?.value;\n setQuery(() => (multiple ? \"\" : optionLabel ?? \"\"));\n\n if (closeOnSelect) onClose();\n };\n\n const removeItem: UseAutoCompleteReturn[\"removeItem\"] = (\n itemValue,\n focusInput\n ) => {\n setValues(prevValues => {\n const item = itemList.find(opt => opt.value === itemValue);\n runIfFn(autoCompleteProps.onTagRemoved, itemValue, item, prevValues);\n return prevValues.filter(i => i !== itemValue);\n });\n if (query === itemValue) setQuery(\"\");\n if (focusInput) inputRef.current?.focus();\n };\n\n const resetItems = (focusInput?: boolean) => {\n setValues([]);\n if (focusInput) inputRef.current?.focus();\n };\n\n const tags = multiple\n ? values.map(tag => ({\n label: itemList.find(item => item.value === tag)?.label || tag,\n onRemove: () => removeItem(tag),\n }))\n : [];\n\n useEffect(() => {\n runIfFn(onReady, { tags });\n }, [values]);\n\n const getInputProps: UseAutoCompleteReturn[\"getInputProps\"] = (\n props,\n themeInput\n ) => {\n const { onBlur, onChange, onFocus, onKeyDown, variant, ...rest } = props;\n\n return {\n wrapper: {\n ref: inputWrapperRef,\n onClick: () => {\n inputRef?.current?.focus();\n },\n ...getMultipleWrapStyles(themeInput, multiple),\n ...rest,\n },\n input: {\n isReadOnly,\n onFocus: e => {\n runIfFn(onFocus, e);\n if (autoCompleteProps.openOnFocus && !isReadOnly) onOpen();\n if (autoCompleteProps.selectOnFocus) e.target.select();\n if (listAllValuesOnFocus) setListAll(true);\n },\n onBlur: e => {\n runIfFn(onBlur, e);\n 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) && restoreOnBlurIfEmpty) {\n const latestValue = getLastItem(values);\n const latestValueItem = itemList.find(\n i => i.value === latestValue\n );\n const latestValueLabel =\n latestValueItem?.label || latestValueItem?.value || \"\";\n setQuery(latestValueLabel);\n }\n }\n },\n onChange: e => {\n const newValue = e.target.value;\n runIfFn(onChange, e);\n setQuery(newValue);\n const queryIsEmpty = isEmpty(newValue);\n if (\n runIfFn(shouldRenderSuggestions, newValue) &&\n (!queryIsEmpty || suggestWhenEmpty)\n )\n onOpen();\n else onClose();\n setListAll(false);\n },\n onKeyDown: e => {\n runIfFn(onKeyDown, e);\n interactionRef.current = \"keyboard\";\n\n const { key } = e;\n const focusedItem = filteredList[focusedIndex];\n if ([\"Enter\", ...submitKeys].includes(key)) {\n if (focusedItem && !focusedItem?.disabled)\n selectItem(focusedItem?.value);\n else inputRef.current?.focus();\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowDown\") {\n setFocusedValue(nextItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowUp\") {\n setFocusedValue(prevItem?.value);\n\n e.preventDefault();\n return;\n }\n\n if (key === \"Tab\") {\n setFocusedValue(nextItem?.value);\n\n if (isOpen) {\n if (focusedItem.value === lastItem?.value) {\n console.log(\"last\");\n }\n e.preventDefault();\n }\n\n return;\n }\n\n if (key === \"Home\") {\n setFocusedValue(firstItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"End\") {\n setFocusedValue(lastItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"Escape\") {\n callAll(onClose, e.preventDefault);\n }\n },\n value: query,\n variant: multiple ? \"unstyled\" : variant,\n ...rest,\n },\n };\n };\n\n const wrapperDim = useDimensions(inputWrapperRef, true);\n const inputDim = useDimensions(inputRef, true);\n const getListProps: UseAutoCompleteReturn[\"getListProps\"] = () => {\n const width = autoCompleteProps.multiple\n ? (wrapperDim?.marginBox.width as number)\n : (inputDim?.marginBox.width as number);\n return {\n width,\n };\n };\n\n const getItemProps: UseAutoCompleteReturn[\"getItemProps\"] = (\n props,\n creatable\n ) => {\n const {\n _fixed,\n _focus,\n children: itemChild,\n disabled,\n label,\n value: valueProp,\n fixed,\n getValue = getDefItemValue,\n onClick,\n onMouseOver,\n sx,\n ...rest\n } = props;\n const value = creatable ? valueProp : getValue(valueProp)?.toString();\n const isFocused = value === focusedValue;\n const isValidSuggestion =\n filteredList.findIndex(i => i.value === value) >= 0;\n const itemLabel = itemChild || label || value;\n return {\n item: {\n ...(typeof itemLabel !== \"string\" || !emphasize\n ? { children: itemLabel }\n : {\n dangerouslySetInnerHTML: {\n __html: setEmphasis(itemLabel, query),\n },\n }),\n \"aria-selected\": values.includes(value),\n \"aria-disabled\": disabled,\n _disabled: { opacity: 0.4, cursor: \"not-allowed\", userSelect: \"none\" },\n onClick: e => {\n runIfFn(onClick, e);\n if (!disabled) selectItem(value);\n else inputRef.current?.focus();\n },\n onMouseOver: e => {\n runIfFn(onMouseOver, e);\n setFocusedValue(value);\n interactionRef.current = \"mouse\";\n },\n sx: {\n ...sx,\n mark: {\n color: \"inherit\",\n bg: \"transparent\",\n ...(isObject(emphasize)\n ? emphasize\n : {\n fontWeight: emphasize ? \"extrabold\" : \"inherit\",\n }),\n },\n },\n ...(isFocused && (_focus || getFocusedStyles())),\n ...(fixed && _fixed),\n ...rest,\n },\n root: {\n isValidSuggestion,\n value,\n },\n };\n };\n\n const getGroupProps: UseAutoCompleteReturn[\"getGroupProps\"] = props => {\n const hasItems = hasChildren(props.children, filteredList);\n return {\n divider: {\n hasFirstChild: hasFirstItem(props.children, firstItem),\n hasLastChild: hasLastItem(\n props.children,\n getLastItem(filteredList.filter(i => isUndefined(i?.noFilter)))\n ),\n },\n group: {\n display: hasItems ? \"initial\" : \"none\",\n },\n };\n };\n\n const getEmptyStateProps: UseAutoCompleteReturn[\"getEmptyStateProps\"] = defaultEmptyState => {\n const noSuggestions = filteredList.every(i => i.noFilter);\n if (noSuggestions && emptyState && !creatable) {\n return typeof emptyState === \"boolean\"\n ? defaultEmptyState\n : runIfFn(emptyState, { query });\n }\n };\n\n return {\n autoCompleteProps,\n children,\n filteredList,\n filteredResults,\n focusedValue,\n getEmptyStateProps,\n getGroupProps,\n getInputProps,\n getItemProps,\n getListProps,\n inputRef,\n interactionRef,\n isOpen,\n itemList,\n listRef,\n onClose,\n onOpen,\n query,\n removeItem,\n resetItems,\n setQuery,\n tags,\n values,\n };\n}\n","import React, { useImperativeHandle } from \"react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\n\nimport { AutoCompleteProvider } from \"./autocomplete-context\";\nimport { useAutoComplete } from \"./use-autocomplete\";\nimport { chakra, forwardRef, Popover } from \"@chakra-ui/react\";\nimport { AutoCompleteRefMethods, UseAutoCompleteProps } from \"./types\";\n\nexport type AutoCompleteChildProps = {\n isOpen: boolean;\n onClose: () => void;\n onOpen: () => void;\n};\nexport interface AutoCompleteProps extends UseAutoCompleteProps {\n children: MaybeRenderProp<AutoCompleteChildProps>;\n ref?: React.RefObject<AutoCompleteRefMethods>;\n}\n\nexport const AutoComplete = forwardRef<AutoCompleteProps, \"div\">(\n (props, ref) => {\n const context = useAutoComplete(props);\n const {\n children,\n isOpen,\n onClose,\n onOpen,\n resetItems,\n removeItem,\n } = context;\n\n useImperativeHandle(ref, () => ({\n resetItems,\n removeItem,\n }));\n\n return (\n <AutoCompleteProvider value={context}>\n <Popover\n isLazy\n isOpen={isOpen}\n onClose={onClose}\n onOpen={onOpen}\n autoFocus={false}\n placement=\"bottom\"\n closeOnBlur={true}\n >\n <chakra.div\n sx={{\n \".chakra-popover__popper\": {\n position: \"unset !important\",\n },\n }}\n w=\"full\"\n ref={ref}\n >\n {children}\n </chakra.div>\n </Popover>\n </AutoCompleteProvider>\n );\n }\n);\n\nAutoComplete.displayName = \"AutoComplete\";\n","import {\n CSSObject,\n Flex,\n FlexProps,\n forwardRef,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport { isUndefined, omit } from \"@chakra-ui/utils\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteItemProps extends FlexProps {\n value: any;\n label?: string;\n fixed?: boolean;\n _focus?: CSSObject | any;\n disabled?: boolean;\n _fixed?: CSSObject;\n getValue?: (item: AutoCompleteItemProps[\"value\"]) => any;\n}\n\nexport const AutoCompleteItem = forwardRef<AutoCompleteItemProps, \"div\">(\n (props, forwardedRef) => {\n const {\n focusedValue,\n getItemProps,\n interactionRef,\n } = useAutoCompleteContext();\n const itemRef = useRef<any>();\n const ref = useMergeRefs(forwardedRef, itemRef);\n\n const itemProps = getItemProps(props);\n const { isValidSuggestion, value } = itemProps.root;\n\n const isFocused = focusedValue === value;\n\n useEffect(() => {\n if (isFocused && interactionRef.current === \"keyboard\")\n itemRef?.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }, [isFocused, interactionRef]);\n\n useEffect(() => {\n if (typeof value !== \"string\") console.warn(\"wow\");\n if (typeof value !== \"string\" && isUndefined(props.getValue))\n console.error(\n \"You must define the `getValue` prop, when an Item's value is not a string\"\n );\n }, []);\n\n const { children, dangerouslySetInnerHTML, ...restProps } = itemProps.item;\n\n const rest = omit(restProps, [\"groupId\"] as any);\n\n return isValidSuggestion ? (\n <Flex ref={ref} {...baseItemStyles} {...rest}>\n {children ? (\n children\n ) : (\n <span dangerouslySetInnerHTML={dangerouslySetInnerHTML} />\n )}\n </Flex>\n ) : null;\n }\n);\n\nAutoCompleteItem.displayName = \"AutoCompleteItem\";\n\nexport const baseItemStyles: FlexProps = {\n mx: \"2\",\n px: \"2\",\n py: \"2\",\n rounded: \"md\",\n cursor: \"pointer\",\n};\n","import { Flex, FlexProps } from \"@chakra-ui/react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport { isEmpty, runIfFn } from \"@chakra-ui/utils\";\n\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { baseItemStyles } from \"./autocomplete-item\";\n\ninterface AutoCompleteCreatableProps extends FlexProps {\n children?: MaybeRenderProp<{ value: any }>;\n}\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 {\n ...props,\n value: query,\n children: runIfFn(childrenProp, {\n value: queryValue,\n }),\n },\n true\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 from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { UseAutoCompleteReturn } from \"./types\";\n\nexport interface AutoCompleteInputProps extends InputProps {\n children?: MaybeRenderProp<{ tags: UseAutoCompleteReturn[\"tags\"] }>;\n wrapStyles?: CSSObject;\n}\n\nexport const AutoCompleteInput = forwardRef<AutoCompleteInputProps, \"input\">(\n (props, forwardedRef) => {\n const {\n autoCompleteProps,\n inputRef,\n getInputProps,\n tags,\n } = useAutoCompleteContext();\n\n // const ref = useMergeRefs(forwardedRef, inputRef);\n\n const { children: childrenProp, ...rest } = props;\n\n const themeInput: any = useMultiStyleConfig(\"Input\", props);\n\n const { wrapper, input: inputProps } = getInputProps(rest, themeInput);\n const { ref: wrapperRef, ...wrapperProps } = wrapper;\n const ref = useMergeRefs(forwardedRef, inputRef);\n\n const children = runIfFn(childrenProp, { tags });\n\n const simpleInput = <Input {...(inputProps as any)} ref={ref} />;\n\n const multipleInput = (\n <Wrap {...wrapperProps} ref={wrapperRef}>\n {children}\n <WrapItem as={Input} {...(inputProps as any)} ref={ref} />\n </Wrap>\n );\n\n return <>{autoCompleteProps.multiple ? multipleInput : simpleInput}</>;\n }\n);\n\nAutoCompleteInput.displayName = \"Input\";\n\nAutoCompleteInput.id = \"Input\";\n","import { Box, BoxProps, Flex, FlexProps } from \"@chakra-ui/layout\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"../autocomplete-context\";\n\nexport const EmptyState = (props: BoxProps) => {\n const { getEmptyStateProps } = useAutoCompleteContext();\n\n const emptyState = getEmptyStateProps(\n <Flex {...emptyStyles}>No options found!</Flex>\n );\n\n return <Box {...props}>{emptyState}</Box>;\n};\n\nconst emptyStyles: FlexProps = {\n fontSize: \"sm\",\n align: \"center\",\n justify: \"center\",\n fontWeight: \"bold\",\n fontStyle: \"italic\",\n};\n","import React from \"react\";\n\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","originalValue","getFocusedStyles","bg","_light","defaultFilterMethod","itemValue","itemLabel","indexOf","string","getMultipleWrapStyles","themeInput","multiple","field","_focusWithin","_focus","pos","minH","py","spacing","cursor","h","hasFirstItem","firstItem","result","getChildDeep","hasLastItem","lastItem","hasChildren","filteredList","findIndex","useAutoComplete","autoCompleteProps","closeOnBlur","closeOnSelect","creatable","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","defaultValue","defaultValues","onReady","defaultIsOpen","restoreOnBlurIfEmpty","shouldRenderSuggestions","submitKeys","suggestWhenEmpty","values","valuesProp","undefined","useDisclosure","isOpen","onClose","onOpen","runIfFn","itemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","listAll","setListAll","defaultQuery","isUndefined","setQuery","filteredResults","filter","fixed","index","creatableArr","noFilter","useControllableState","onChange","newValues","find","opt","items","val","setValues","focusedValue","setFocusedValue","maxSelections","focusedIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","useEffect","focusedItem","onOptionFocus","focusMethod","current","isNewInput","selectItem","optionValue","includes","option","focus","focusInputOnSelect","onSelectOption","selectMethod","onCreateOption","omit","optionLabel","removeItem","focusInput","prevValues","onTagRemoved","resetItems","tags","tag","onRemove","getInputProps","onBlur","onFocus","onKeyDown","variant","rest","wrapper","ref","onClick","input","e","openOnFocus","selectOnFocus","target","select","listIsFocused","relatedTarget","inputWrapperIsFocused","contains","latestValue","latestValueItem","latestValueLabel","newValue","queryIsEmpty","key","disabled","preventDefault","console","log","callAll","wrapperDim","useDimensions","inputDim","getListProps","width","marginBox","getItemProps","_fixed","itemChild","valueProp","onMouseOver","sx","isFocused","isValidSuggestion","dangerouslySetInnerHTML","__html","_disabled","opacity","userSelect","mark","color","isObject","fontWeight","root","getGroupProps","hasItems","divider","hasFirstChild","hasLastChild","group","display","getEmptyStateProps","defaultEmptyState","noSuggestions","every","AutoComplete","forwardRef","context","useImperativeHandle","React","Popover","isLazy","autoFocus","placement","chakra","div","position","w","AutoCompleteItem","forwardedRef","itemRef","useMergeRefs","itemProps","scrollIntoView","behavior","block","warn","error","restProps","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","wrapperRef","wrapperProps","simpleInput","Input","multipleInput","Wrap","WrapItem","as","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/dist/helpers/items.d.ts
CHANGED
|
@@ -4,11 +4,6 @@ import { Item } from "../types";
|
|
|
4
4
|
import { AutoCompleteItemProps } from "../autocomplete-item";
|
|
5
5
|
export declare const getDefItemValue: (item: AutoCompleteItemProps["value"]) => any;
|
|
6
6
|
export declare const setEmphasis: (children: any, query: string) => any;
|
|
7
|
-
export declare const getItemList: (children: ReactNode) =>
|
|
8
|
-
value: any;
|
|
9
|
-
label: any;
|
|
10
|
-
fixed: any;
|
|
11
|
-
disabled: any;
|
|
12
|
-
}[];
|
|
7
|
+
export declare const getItemList: (children: ReactNode) => Item[];
|
|
13
8
|
export declare const getFocusedStyles: () => FlexProps;
|
|
14
9
|
export declare const defaultFilterMethod: (query: string, itemValue: Item["value"], itemLabel: Item["label"]) => boolean;
|
package/dist/types.d.ts
CHANGED
package/package.json
CHANGED