@choc-ui/chakra-autocomplete 4.5.8 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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, isEmpty } from \"@chakra-ui/utils\";\nimport { ReactNode } from \"react\";\nimport { FlexProps } from \"@chakra-ui/react\";\nimport { fuzzyScore } from \"./fuzzySearch\";\nimport { Item } from \"../types\";\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 return pick(item.props, [\"value\", \"label\", \"fixed\", \"disabled\"]);\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 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 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 runIfFn(autoCompleteProps.onChange, multiple ? values : values[0]);\n }, [values, multiple]);\n\n useEffect(() => {\n runIfFn(autoCompleteProps.onOptionFocus, {\n optionValue: focusedValue,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n }, [focusedValue, autoCompleteProps.onOptionFocus]);\n\n const selectItem = (itemValue: Item[\"value\"]) => {\n if (!values.includes(itemValue) && values.length < maxSelections)\n setValues(v => (multiple ? [...v, itemValue] : [itemValue]));\n\n const itemLabel = filteredList.find(i => i.value === itemValue)?.label;\n\n setQuery(itemLabel);\n\n if (multiple) {\n setQuery(\"\");\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n optionValue: itemValue,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n if (closeOnSelect) onClose();\n };\n\n const removeItem = (itemValue: Item[\"value\"]) => {\n setValues(prevValues => {\n runIfFn(autoCompleteProps.onTagRemoved, itemValue, prevValues);\n return prevValues.filter(i => i !== itemValue);\n });\n if (query === itemValue) setQuery(\"\");\n };\n\n const getItemFromValue = (value: Item[\"value\"]) =>\n itemList.find(item => item.value === value);\n\n const tags = multiple\n ? values.map(tag => ({\n ...getItemFromValue(tag),\n onRemove: () => removeItem(tag),\n }))\n : [];\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);\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);\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 value,\n fixed,\n onClick,\n onMouseOver,\n sx,\n ...rest\n } = props;\n const isFocused = value === focusedValue;\n const isValidSuggestion =\n filteredList.findIndex(i => i.value === value) >= 0;\n\n return {\n item: {\n ...(typeof itemChild !== \"string\" || !emphasize\n ? { children: itemChild }\n : {\n dangerouslySetInnerHTML: {\n __html: setEmphasis(itemChild, 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 },\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 setQuery,\n tags,\n values,\n };\n}\n","import React 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 { 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}\n\nexport const AutoComplete = forwardRef<AutoCompleteProps, \"div\">(\n (props, ref) => {\n const context = useAutoComplete(props);\n const { children, isOpen, onClose, onOpen } = context;\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 React, { useEffect, useRef } from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteItemProps extends FlexProps {\n value: string;\n label?: string;\n fixed?: boolean;\n _focus?: CSSObject | any;\n disabled?: boolean;\n _fixed?: CSSObject;\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 } = itemProps.root;\n\n const isFocused = focusedValue === props.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 const { children, dangerouslySetInnerHTML, ...rest } = itemProps.item;\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 {...props} {...baseTitleStyles} 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","setEmphasis","children","query","isEmpty","newChildren","toString","replace","RegExp","escapeRegex","match","getItemList","itemChildren","getChildrenDeep","child","type","displayName","map","pick","props","getFocusedStyles","bg","_light","defaultFilterMethod","itemValue","itemLabel","indexOf","string","getMultipleWrapStyles","themeInput","multiple","field","_focusWithin","_focus","pos","minH","py","spacing","cursor","h","hasFirstItem","firstItem","result","getChildDeep","value","hasLastItem","lastItem","hasChildren","filteredList","isDefined","findIndex","useAutoComplete","autoCompleteProps","closeOnBlur","closeOnSelect","creatable","defaultValues","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","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","label","_","index","creatableArr","noFilter","focusedIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","onChange","onOptionFocus","optionValue","selectMethod","current","isNewInput","selectItem","includes","find","focus","focusInputOnSelect","onSelectOption","removeItem","prevValues","onTagRemoved","getItemFromValue","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","focusedItem","disabled","preventDefault","callAll","dim","useDimensions","getListProps","width","marginBox","getItemProps","_fixed","itemChild","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","React","Popover","isLazy","autoFocus","placement","chakra","div","position","w","AutoCompleteItem","forwardedRef","itemRef","useMergeRefs","itemProps","scrollIntoView","behavior","block","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","childrenProp","queryValue","queryExistsInList","some","showCreatable","AutoCompleteGroup","showDivider","restProps","omit","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 autocomplete 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 { isEmpty } from \"@chakra-ui/utils\";\nimport { FlexProps } from \"@chakra-ui/react\";\nimport { fuzzyScore } from \"./fuzzySearch\";\nimport { Item } from \"../types\";\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 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 { AutoCompleteGroupProps } from \"../autocomplete-group\";\nimport { Item } from \"../types\";\n\nexport const hasFirstItem = (\n props: AutoCompleteGroupProps,\n firstItem: Item\n) => {\n return (\n isDefined(firstItem?.groupId) &&\n isDefined(props.id) &&\n firstItem?.groupId === props.id\n );\n};\nexport const hasLastItem = (props: AutoCompleteGroupProps, lastItem: Item) => {\n return (\n isDefined(lastItem?.groupId) &&\n isDefined(props.id) &&\n lastItem?.groupId === props.id\n );\n};\n\nexport const hasChildren = (\n props: AutoCompleteGroupProps,\n filteredList: Item[]\n) => {\n return filteredList.some(item => {\n return (\n isDefined(item.groupId) &&\n isDefined(props.id) &&\n item.groupId === props.id\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 getFocusedStyles,\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 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 [itemList, setItemList] = useState<Item[]>([]);\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 runIfFn(autoCompleteProps.onChange, multiple ? values : values[0]);\n }, [values, multiple]);\n\n useEffect(() => {\n runIfFn(autoCompleteProps.onOptionFocus, {\n optionValue: focusedValue,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n }, [focusedValue, autoCompleteProps.onOptionFocus]);\n\n const selectItem = (itemValue: Item[\"value\"]) => {\n if (!values.includes(itemValue) && values.length < maxSelections)\n setValues(v => (multiple ? [...v, itemValue] : [itemValue]));\n\n const itemLabelFromValue = filteredList.find(i => i.value === itemValue)\n ?.label;\n // use value if label is not available\n const itemLabel = itemLabelFromValue || itemValue;\n setQuery(itemLabel);\n\n if (multiple) {\n setQuery(\"\");\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n optionValue: itemValue,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n if (closeOnSelect) onClose();\n };\n\n const removeItem = (itemValue: Item[\"value\"]) => {\n setValues(prevValues => {\n runIfFn(autoCompleteProps.onTagRemoved, itemValue, prevValues);\n return prevValues.filter(i => i !== itemValue);\n });\n if (query === itemValue) setQuery(\"\");\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 const children = runIfFn(autoCompleteProps.children, {\n isOpen,\n onClose,\n onOpen,\n tags,\n });\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);\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);\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,\n fixed,\n onClick,\n onMouseOver,\n sx,\n ...rest\n } = props;\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 setItemList,\n },\n };\n };\n\n const getGroupProps: UseAutoCompleteReturn[\"getGroupProps\"] = props => {\n const hasItems = hasChildren(props, filteredList);\n const lastItem = getLastItem(\n filteredList.filter(i => isUndefined(i?.noFilter))\n );\n return {\n divider: {\n hasFirstChild: hasFirstItem(props, firstItem!),\n hasLastChild: hasLastItem(props, lastItem!),\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 setQuery,\n tags,\n values,\n };\n}\n","import React from \"react\";\n\nimport { AutoCompleteProvider } from \"./autocomplete-context\";\nimport { useAutoComplete } from \"./use-autocomplete\";\nimport { chakra, forwardRef, Popover } from \"@chakra-ui/react\";\nimport { UseAutoCompleteProps, UseAutoCompleteReturn } from \"./types\";\n\nexport interface AutoCompleteProps extends UseAutoCompleteProps {\n children: UseAutoCompleteReturn[\"children\"];\n}\n\nexport const AutoComplete = forwardRef<AutoCompleteProps, \"div\">(\n (props, ref) => {\n const context = useAutoComplete(props);\n const { children, isOpen, onClose, onOpen } = context;\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 { omit, pick } from \"@chakra-ui/utils\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteItemProps extends FlexProps {\n value: string;\n label?: string;\n fixed?: boolean;\n _focus?: CSSObject | any;\n disabled?: boolean;\n _fixed?: CSSObject;\n groupId?: string;\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, setItemList } = itemProps.root;\n\n const isFocused = focusedValue === props.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 setItemList((itemList: any) => [\n ...itemList,\n pick(props, [\"value\", \"label\", \"fixed\", \"disabled\", \"groupId\"]),\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 {...props} {...baseTitleStyles} 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","setEmphasis","children","query","isEmpty","newChildren","toString","replace","RegExp","escapeRegex","match","getFocusedStyles","bg","_light","defaultFilterMethod","itemValue","itemLabel","indexOf","string","getMultipleWrapStyles","themeInput","multiple","field","_focusWithin","_focus","pos","minH","py","spacing","cursor","h","hasFirstItem","props","firstItem","isDefined","groupId","id","hasLastItem","lastItem","hasChildren","filteredList","some","useAutoComplete","autoCompleteProps","closeOnBlur","closeOnSelect","creatable","defaultValues","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","defaultIsOpen","shouldRenderSuggestions","suggestWhenEmpty","useDisclosure","isOpen","onClose","onOpen","useState","itemList","setItemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","setQuery","values","setValues","useEffect","value","focusedValue","setFocusedValue","listAll","setListAll","maxSelections","filteredResults","filter","fixed","runIfFn","label","_","index","creatableArr","noFilter","focusedIndex","findIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","onChange","onOptionFocus","optionValue","selectMethod","current","isNewInput","selectItem","includes","itemLabelFromValue","find","focus","focusInputOnSelect","onSelectOption","removeItem","prevValues","onTagRemoved","tags","map","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","focusedItem","disabled","preventDefault","callAll","dim","useDimensions","getListProps","width","marginBox","getItemProps","_fixed","itemChild","onMouseOver","sx","isFocused","isValidSuggestion","dangerouslySetInnerHTML","__html","_disabled","opacity","userSelect","mark","color","isObject","fontWeight","root","getGroupProps","hasItems","isUndefined","divider","hasFirstChild","hasLastChild","group","display","getEmptyStateProps","defaultEmptyState","noSuggestions","every","AutoComplete","forwardRef","context","React","Popover","isLazy","autoFocus","placement","chakra","div","position","w","displayName","AutoCompleteItem","forwardedRef","itemRef","useMergeRefs","itemProps","scrollIntoView","behavior","block","pick","restProps","omit","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","childrenProp","queryValue","queryExistsInList","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","EmptyState","emptyStyles","align","justify","fontStyle","siblingInfo","Children","child","type","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,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,r=require("@chakra-ui/react-utils"),o=require("@chakra-ui/react"),u=require("@chakra-ui/utils"),l=require("react-nanny"),i=require("@chakra-ui/layout"),a=require("@chakra-ui/tag"),s=r.createContext({name:"AutoCompleteContext",errorMessage:"useAutoCompleteContext: `context` is undefined. Seems you forgot to wrap all autoomplete components within `<AutoComplete />`"}),c=s[0],f=s[1];function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function d(e,t){if(null==e)return{};var n,r,o={},u=Object.keys(e);for(r=0;r<u.length;r++)t.indexOf(n=u[r])>=0||(o[n]=e[n]);return o}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function m(e,t,n){function r(e,t){e=" ".repeat(t-1)+e.toLowerCase()+" ".repeat(t-1);for(var n=new Array(e.length-t+1),r=0;r<n.length;r++)n[r]=e.slice(r,r+t);return n}if(void 0===n&&(n=2),null==e||!e.length||null==t||!t.length)return 0;for(var o,u=e.length<t.length?t:e,l=r(e.length<t.length?e:t,n),i=r(u,n),a=new Set(l),s=i.length,c=0,f=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return v(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?v(e,void 0):void 0}}(e))){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(i);!(o=f()).done;)a.delete(o.value)&&c++;return c/s}var g=function(e,t){return"string"!=typeof e||u.isEmpty(t)?e:e.toString().replace(new RegExp(t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"gi"),(function(e){return"<mark>"+e+"</mark>"}))},h=function(e,t,n){return(null==t?void 0:t.toLowerCase().indexOf(null==e?void 0:e.toLowerCase()))>=0||(null==n?void 0:n.toLowerCase().indexOf(null==e?void 0:e.toLowerCase()))>=0||m(e,t)>=.5||m(e,n)>=.5},y=function(e,t){return p({},t&&p({},e.field,{_focusWithin:e.field._focus,pos:"relative",minH:9,py:1.5,spacing:3}),{cursor:"text",h:"fit-content"})},b=function(e,t){return l.getChildDeep(e,(function(e){var n;return"AutoCompleteItem"===(null==e||null==(n=e.type)?void 0:n.displayName)&&e.props.value===(null==t?void 0:t.value)}))},C=function(e,t){return l.getChildDeep(e,(function(e){var n;return"AutoCompleteItem"===(null==e||null==(n=e.type)?void 0:n.displayName)&&e.props.value===(null==t?void 0:t.value)}))},I=["onBlur","onChange","onFocus","onKeyDown","variant","wrapStyles"],x=["_fixed","_focus","children","disabled","value","fixed","onClick","onMouseOver","sx"];function O(e){var n,r=e.closeOnBlur,i=void 0===r||r,a=e.closeOnSelect,s=e.creatable,c=e.defaultValues,f=void 0===c?[]:c,v=e.emphasize,m=e.emptyState,O=void 0===m||m,w=e.freeSolo,S=e.isReadOnly,E=e.listAllValuesOnFocus,A=e.maxSuggestions,F=e.multiple,R=e.shouldRenderSuggestions,j=void 0===R?function(){return!0}:R,D=e.suggestWhenEmpty;a=a||!F,w=w||!!F||e.freeSolo;var k=o.useDisclosure({defaultIsOpen:e.defaultIsOpen}),L=k.isOpen,P=k.onClose,N=k.onOpen,_=u.runIfFn(e.children,{isOpen:L,onClose:P,onOpen:N}),M=function(e){return l.getChildrenDeep(e,(function(e){var t;return"AutoCompleteItem"===(null==e||null==(t=e.type)?void 0:t.displayName)})).map((function(e){return u.pick(e.props,["value","label","fixed","disabled"])}))}(_),T=t.useRef(null),q=t.useRef(null),B=t.useRef(null),G=t.useRef(null),V=t.useState(""),W=V[0],H=V[1],z=t.useState(f),U=z[0],K=z[1];t.useEffect((function(){F||u.isEmpty(f)||H(f[0])}),[]);var $=t.useState(null==(n=M[0])?void 0:n.value),Q=$[0],Y=$[1],J=t.useState(!1),X=J[0],Z=J[1],ee=e.maxSelections||U.length+1,te=M.filter((function(t){return t.fixed||u.runIfFn(e.filter||h,W,t.value,t.label)||X})).filter((function(e,t){return!A||t<A})),ne=[].concat(te,s?[{value:W,noFilter:!0}]:[]),re=ne.findIndex((function(e){return e.value===Q})),oe=u.getNextItem(re,ne,!!e.rollNavigation),ue=u.getPrevItem(re,ne,!!e.rollNavigation),le=u.getFirstItem(ne),ie=u.getLastItem(ne);o.useUpdateEffect((function(){Y(null==le?void 0:le.value)}),[W]),t.useEffect((function(){u.runIfFn(e.onChange,F?U:U[0])}),[U,F]),t.useEffect((function(){u.runIfFn(e.onOptionFocus,{optionValue:Q,selectMethod:G.current,isNewInput:!1})}),[Q,e.onOptionFocus]);var ae=function(t){var n,r;!U.includes(t)&&U.length<ee&&K((function(e){return F?[].concat(e,[t]):[t]}));var o,l=null==(n=ne.find((function(e){return e.value===t})))?void 0:n.label;H(l),F&&(H(""),null==(o=T.current)||o.focus()),e.focusInputOnSelect&&(null==(r=T.current)||r.focus()),u.runIfFn(e.onSelectOption,{optionValue:t,selectMethod:G.current,isNewInput:!1}),a&&P()},se=F?U.map((function(t){return p({},(n=t,M.find((function(e){return e.value===n}))),{onRemove:function(){return n=t,K((function(t){return u.runIfFn(e.onTagRemoved,n,t),t.filter((function(e){return e!==n}))})),void(W===n&&H(""));var n}});var n})):[],ce=o.useDimensions(q,!0);return{autoCompleteProps:e,children:_,filteredList:ne,filteredResults:te,focusedValue:Q,getEmptyStateProps:function(e){if(ne.every((function(e){return e.noFilter}))&&O&&!s)return"boolean"==typeof O?e:u.runIfFn(O,{query:W})},getGroupProps:function(e){var t=function(e,t){return u.isDefined(l.getChildDeep(e,(function(e){return t.findIndex((function(t){var n;return t.value===(null==(n=e.props)?void 0:n.value)}))>=0})))}(e.children,ne);return{divider:{hasFirstChild:b(e.children,le),hasLastChild:C(e.children,u.getLastItem(ne.filter((function(e){return u.isUndefined(null==e?void 0:e.noFilter)}))))},group:{display:t?"initial":"none"}}},getInputProps:function(t,n){var r=t.onBlur,o=t.onChange,l=t.onFocus,a=t.onKeyDown,s=t.variant,c=t.wrapStyles,f=d(t,I);return{wrapper:p({ref:q,onClick:function(){var e;null==T||null==(e=T.current)||e.focus()},tabIndex:0},y(n,F),c),input:p({isReadOnly:S,onFocus:function(t){u.runIfFn(l),e.openOnFocus&&!S&&N(),e.selectOnFocus&&t.target.select(),E&&Z(!0)},onBlur:function(e){var t;u.runIfFn(r);var n,o=e.relatedTarget===(null==B?void 0:B.current),l=null==(t=q.current)?void 0:t.contains(e.relatedTarget);o||l||(i&&P(),U.includes(e.target.value)||w||H(null!=(n=u.getLastItem(U))?n:""))},onChange:function(e){var t=e.target.value;u.runIfFn(o,e),H(e.target.value);var n=u.isEmpty(t);!u.runIfFn(j,t)||n&&!D?P():N(),Z(!1)},onKeyDown:function(e){u.runIfFn(a,e),G.current="keyboard";var t,n=e.key,r=ne[re];return"Enter"===n?(!r||null!=r&&r.disabled?null==(t=T.current)||t.focus():ae(r.value),void e.preventDefault()):"ArrowDown"===n?(Y(oe.value),void e.preventDefault()):"ArrowUp"===n?(Y(ue.value),void e.preventDefault()):"Tab"===n?(Y(oe.value),void e.preventDefault()):"Home"===n?(Y(null==le?void 0:le.value),void e.preventDefault()):"End"===n?(Y(null==ie?void 0:ie.value),void e.preventDefault()):void("Escape"===n&&u.callAll(P,e.preventDefault))},value:null!=W?W:"",variant:F?"unstyled":s},f)}},getItemProps:function(e){var t=e._fixed,n=e._focus,r=e.children,o=e.disabled,l=e.value,i=e.fixed,a=e.onClick,s=e.onMouseOver,c=e.sx,f=d(e,x),m=l===Q,h=ne.findIndex((function(e){return e.value===l}))>=0;return{item:p({},"string"==typeof r&&v?{dangerouslySetInnerHTML:{__html:g(r,W)}}:{children:r},{"aria-selected":U.includes(l),"aria-disabled":o,_disabled:{opacity:.4,cursor:"not-allowed",userSelect:"none"},onClick:function(e){var t;u.runIfFn(a,e),o?null==(t=T.current)||t.focus():ae(l)},onMouseOver:function(e){u.runIfFn(s,e),Y(l),G.current="mouse"},sx:p({},c,{mark:p({color:"inherit",bg:"transparent"},u.isObject(v)?v:{fontWeight:v?"extrabold":"inherit"})})},m&&(n||{bg:"whiteAlpha.100",_light:{bg:"gray.200"}}),i&&t,f),root:{isValidSuggestion:h}}},getListProps:function(){return{width:null==ce?void 0:ce.marginBox.width}},inputRef:T,interactionRef:G,isOpen:L,itemList:M,listRef:B,onClose:P,onOpen:N,query:W,setQuery:H,tags:se,values:U}}var w=o.forwardRef((function(e,t){var r=O(e);return n.createElement(c,{value:r},n.createElement(o.Popover,{isLazy:!0,isOpen:r.isOpen,onClose:r.onClose,onOpen:r.onOpen,autoFocus:!1,placement:"bottom",closeOnBlur:!0},n.createElement(o.chakra.div,{sx:{".chakra-popover__popper":{position:"unset !important"}},w:"full",ref:t},r.children)))}));w.displayName="AutoComplete";var S=["children","dangerouslySetInnerHTML"],E=o.forwardRef((function(e,r){var u=f(),l=u.focusedValue,i=u.getItemProps,a=u.interactionRef,s=t.useRef(),c=o.useMergeRefs(r,s),p=i(e),v=p.root.isValidSuggestion,m=l===e.value;t.useEffect((function(){var e;m&&"keyboard"===a.current&&(null==s||null==(e=s.current)||e.scrollIntoView({behavior:"smooth",block:"center"}))}),[m,a]);var g=p.item,h=g.children,y=g.dangerouslySetInnerHTML,b=d(g,S);return v?n.createElement(o.Flex,Object.assign({ref:c},A,b),h||n.createElement("span",{dangerouslySetInnerHTML:y})):null}));E.displayName="AutoCompleteItem";var A={mx:"2",px:"2",py:"2",rounded:"md",cursor:"pointer"},F=["children"],R=["children"];function j(e){var t=e.children,r=d(e,F),l=f(),i=l.autoCompleteProps,a=l.getItemProps,s=l.query,c=l.filteredResults,v=n.createElement("mark",null,s),m=a(p({},e,{value:s,children:u.runIfFn(t,{value:v})})).item,g=m.children,h=d(m,R),y=c.some((function(e){return e.value===s}));return!i.creatable||u.isEmpty(s)||y?null:n.createElement(o.Flex,Object.assign({},A,h,r),g||"Add "+s)}j.displayName="AutoCompleteCreatable";var D=["children","showDivider"],k=o.forwardRef((function(e,t){var r=e.children,l=d(e,D),i=u.omit(l,["groupSibling"]),a=(0,f().getGroupProps)(e).group,s=N(e);return n.createElement(o.Box,Object.assign({ref:t},a,i),n.createElement(o.Divider,Object.assign({},s.top)),r,n.createElement(o.Divider,Object.assign({},s.bottom)))})),L=o.forwardRef((function(e,t){return n.createElement(o.Flex,Object.assign({},e,P,{ref:t}))}));k.displayName="AutoCompleteGroup",L.displayName="AutoCompleteGroupTitle";var P={ml:5,my:1,fontSize:"xs",letterSpacing:"wider",fontWeight:"extrabold",textTransform:"uppercase"},N=function(e){var t=f(),n=e.groupSibling,r=(0,t.getGroupProps)(e).divider,o=r.hasLastChild,u={my:2,borderColor:e.dividerColor};return{top:p({},u,{mb:4,display:!e.showDivider||r.hasFirstChild?"none":""}),bottom:p({},u,{display:!e.showDivider||o||n?"none":""})}},_=["children","value"],M=o.forwardRef((function(e,r){var l=f(),i=l.getInputProps,a=l.setQuery,s=l.tags,c=o.useMergeRefs(r,l.inputRef),p=e.children,v=e.value,m=d(e,_);t.useEffect((function(){a(null!=v?v:"")}),[v,a]);var g=i(m,o.useMultiStyleConfig("Input",e)),h=u.runIfFn(p,{tags:s});return n.createElement(o.Wrap,Object.assign({},g.wrapper),h,n.createElement(o.WrapItem,Object.assign({as:o.Input},g.input,{ref:c})))}));M.displayName="Input",M.id="Input";var T=function(e){var t=(0,f().getEmptyStateProps)(n.createElement(i.Flex,Object.assign({},q),"No options found!"));return n.createElement(i.Box,Object.assign({},e),t)},q={fontSize:"sm",align:"center",justify:"center",fontWeight:"bold",fontStyle:"italic"},B=["children"],G=o.forwardRef((function(e,t){var r=e.children,u=d(e,B),l=f(),i=l.getListProps,a=o.useMergeRefs(t,l.listRef),s=i();return n.createElement(o.PopoverContent,Object.assign({ref:a},V,s,u),function(e){return n.Children.map(e,(function(t,r){if("AutoCompleteGroup"===t.type.displayName){var o=n.Children.toArray(e)[r+1];return n.cloneElement(t,{groupSibling:!!o&&"AutoCompleteGroup"===o.type.displayName})}return t}))}(r),n.createElement(T,null))}));G.displayName="AutoCompleteList";var V={mt:"4",py:"4",opacity:"0",bg:"#232934",rounded:"md",maxH:"350px",border:"none",shadow:"base",pos:"absolute",zIndex:"popover",overflowY:"auto",_light:{bg:"#ffffff"},_focus:{boxShadow:"none"}},W=["label","onRemove","disabled"],H=t.memo((function(e){var t=e.label,r=e.onRemove,o=e.disabled,l=d(e,W);return n.createElement(i.WrapItem,null,n.createElement(a.Tag,Object.assign({borderRadius:"md",fontWeight:"normal"},o&&z,l),n.createElement(a.TagLabel,null,t),n.createElement(a.TagCloseButton,Object.assign({onClick:function(){return!o&&u.runIfFn(r)},cursor:"pointer"},o&&z))))})),z={cursor:"text",userSelect:"none",opacity:.4,_focus:{boxShadow:"none"}};exports.AutoComplete=w,exports.AutoCompleteCreatable=j,exports.AutoCompleteGroup=k,exports.AutoCompleteGroupTitle=L,exports.AutoCompleteInput=M,exports.AutoCompleteItem=E,exports.AutoCompleteList=G,exports.AutoCompleteTag=H,exports.baseItemStyles=A,exports.useAutoComplete=O;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,r=require("@chakra-ui/react-utils"),o=require("@chakra-ui/react"),u=require("@chakra-ui/utils"),l=require("@chakra-ui/layout"),i=require("@chakra-ui/tag"),a=r.createContext({name:"AutoCompleteContext",errorMessage:"useAutoCompleteContext: `context` is undefined. Seems you forgot to wrap all autocomplete components within `<AutoComplete />`"}),s=a[0],c=a[1];function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function d(e,t){if(null==e)return{};var n,r,o={},u=Object.keys(e);for(r=0;r<u.length;r++)t.indexOf(n=u[r])>=0||(o[n]=e[n]);return o}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function v(e,t,n){function r(e,t){e=" ".repeat(t-1)+e.toLowerCase()+" ".repeat(t-1);for(var n=new Array(e.length-t+1),r=0;r<n.length;r++)n[r]=e.slice(r,r+t);return n}if(void 0===n&&(n=2),null==e||!e.length||null==t||!t.length)return 0;for(var o,u=e.length<t.length?t:e,l=r(e.length<t.length?e:t,n),i=r(u,n),a=new Set(l),s=i.length,c=0,f=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return p(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(e,void 0):void 0}}(e))){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(i);!(o=f()).done;)a.delete(o.value)&&c++;return c/s}var m=function(e,t){return"string"!=typeof e||u.isEmpty(t)?e:e.toString().replace(new RegExp(t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"gi"),(function(e){return"<mark>"+e+"</mark>"}))},g=function(e,t,n){return(null==t?void 0:t.toLowerCase().indexOf(null==e?void 0:e.toLowerCase()))>=0||(null==n?void 0:n.toLowerCase().indexOf(null==e?void 0:e.toLowerCase()))>=0||v(e,t)>=.5||v(e,n)>=.5},h=function(e,t){return f({},t&&f({},e.field,{_focusWithin:e.field._focus,pos:"relative",minH:9,py:1.5,spacing:3}),{cursor:"text",h:"fit-content"})},y=function(e,t){return u.isDefined(null==t?void 0:t.groupId)&&u.isDefined(e.id)&&(null==t?void 0:t.groupId)===e.id},b=function(e,t){return u.isDefined(null==t?void 0:t.groupId)&&u.isDefined(e.id)&&(null==t?void 0:t.groupId)===e.id},I=["onBlur","onChange","onFocus","onKeyDown","variant","wrapStyles"],C=["_fixed","_focus","children","disabled","label","value","fixed","onClick","onMouseOver","sx"];function x(e){var n,r=e.closeOnBlur,l=void 0===r||r,i=e.closeOnSelect,a=e.creatable,s=e.defaultValues,c=void 0===s?[]:s,p=e.emphasize,v=e.emptyState,x=void 0===v||v,O=e.freeSolo,w=e.isReadOnly,S=e.listAllValuesOnFocus,E=e.maxSuggestions,F=e.multiple,A=e.shouldRenderSuggestions,R=void 0===A?function(){return!0}:A,D=e.suggestWhenEmpty;i=i||!F,O=O||!!F||e.freeSolo;var L=o.useDisclosure({defaultIsOpen:e.defaultIsOpen}),j=L.isOpen,k=L.onClose,P=L.onOpen,_=t.useState([]),M=_[0],T=_[1],N=t.useRef(null),q=t.useRef(null),B=t.useRef(null),G=t.useRef(null),V=t.useState(""),W=V[0],H=V[1],z=t.useState(c),U=z[0],K=z[1];t.useEffect((function(){F||u.isEmpty(c)||H(c[0])}),[]);var $=t.useState(null==(n=M[0])?void 0:n.value),Q=$[0],Y=$[1],J=t.useState(!1),X=J[0],Z=J[1],ee=e.maxSelections||U.length+1,te=M.filter((function(t){return t.fixed||u.runIfFn(e.filter||g,W,t.value,t.label)||X})).filter((function(e,t){return!E||t<E})),ne=[].concat(te,a?[{value:W,noFilter:!0}]:[]),re=ne.findIndex((function(e){return e.value===Q})),oe=u.getNextItem(re,ne,!!e.rollNavigation),ue=u.getPrevItem(re,ne,!!e.rollNavigation),le=u.getFirstItem(ne),ie=u.getLastItem(ne);o.useUpdateEffect((function(){Y(null==le?void 0:le.value)}),[W]),t.useEffect((function(){u.runIfFn(e.onChange,F?U:U[0])}),[U,F]),t.useEffect((function(){u.runIfFn(e.onOptionFocus,{optionValue:Q,selectMethod:G.current,isNewInput:!1})}),[Q,e.onOptionFocus]);var ae=function(t){var n,r;!U.includes(t)&&U.length<ee&&K((function(e){return F?[].concat(e,[t]):[t]}));var o,l=null==(n=ne.find((function(e){return e.value===t})))?void 0:n.label;H(l||t),F&&(H(""),null==(o=N.current)||o.focus()),e.focusInputOnSelect&&(null==(r=N.current)||r.focus()),u.runIfFn(e.onSelectOption,{optionValue:t,selectMethod:G.current,isNewInput:!1}),i&&k()},se=F?U.map((function(t){var n;return{label:(null==(n=M.find((function(e){return e.value===t})))?void 0:n.label)||t,onRemove:function(){return n=t,K((function(t){return u.runIfFn(e.onTagRemoved,n,t),t.filter((function(e){return e!==n}))})),void(W===n&&H(""));var n}}})):[],ce=u.runIfFn(e.children,{isOpen:j,onClose:k,onOpen:P,tags:se}),fe=o.useDimensions(q,!0);return{autoCompleteProps:e,children:ce,filteredList:ne,filteredResults:te,focusedValue:Q,getEmptyStateProps:function(e){if(ne.every((function(e){return e.noFilter}))&&x&&!a)return"boolean"==typeof x?e:u.runIfFn(x,{query:W})},getGroupProps:function(e){var t=function(e,t){return t.some((function(t){return u.isDefined(t.groupId)&&u.isDefined(e.id)&&t.groupId===e.id}))}(e,ne),n=u.getLastItem(ne.filter((function(e){return u.isUndefined(null==e?void 0:e.noFilter)})));return{divider:{hasFirstChild:y(e,le),hasLastChild:b(e,n)},group:{display:t?"initial":"none"}}},getInputProps:function(t,n){var r=t.onBlur,o=t.onChange,i=t.onFocus,a=t.onKeyDown,s=t.variant,c=t.wrapStyles,p=d(t,I);return{wrapper:f({ref:q,onClick:function(){var e;null==N||null==(e=N.current)||e.focus()},tabIndex:0},h(n,F),c),input:f({isReadOnly:w,onFocus:function(t){u.runIfFn(i),e.openOnFocus&&!w&&P(),e.selectOnFocus&&t.target.select(),S&&Z(!0)},onBlur:function(e){var t;u.runIfFn(r);var n,o=e.relatedTarget===(null==B?void 0:B.current),i=null==(t=q.current)?void 0:t.contains(e.relatedTarget);o||i||(l&&k(),U.includes(e.target.value)||O||H(null!=(n=u.getLastItem(U))?n:""))},onChange:function(e){var t=e.target.value;u.runIfFn(o,e),H(e.target.value);var n=u.isEmpty(t);!u.runIfFn(R,t)||n&&!D?k():P(),Z(!1)},onKeyDown:function(e){u.runIfFn(a,e),G.current="keyboard";var t,n=e.key,r=ne[re];return"Enter"===n?(!r||null!=r&&r.disabled?null==(t=N.current)||t.focus():ae(r.value),void e.preventDefault()):"ArrowDown"===n?(Y(oe.value),void e.preventDefault()):"ArrowUp"===n?(Y(ue.value),void e.preventDefault()):"Tab"===n?(Y(oe.value),void e.preventDefault()):"Home"===n?(Y(null==le?void 0:le.value),void e.preventDefault()):"End"===n?(Y(null==ie?void 0:ie.value),void e.preventDefault()):void("Escape"===n&&u.callAll(k,e.preventDefault))},value:null!=W?W:"",variant:F?"unstyled":s},p)}},getItemProps:function(e){var t=e._fixed,n=e._focus,r=e.children,o=e.disabled,l=e.label,i=e.value,a=e.fixed,s=e.onClick,c=e.onMouseOver,v=e.sx,g=d(e,C),h=i===Q,y=ne.findIndex((function(e){return e.value===i}))>=0,b=r||l||i;return{item:f({},"string"==typeof b&&p?{dangerouslySetInnerHTML:{__html:m(b,W)}}:{children:b},{"aria-selected":U.includes(i),"aria-disabled":o,_disabled:{opacity:.4,cursor:"not-allowed",userSelect:"none"},onClick:function(e){var t;u.runIfFn(s,e),o?null==(t=N.current)||t.focus():ae(i)},onMouseOver:function(e){u.runIfFn(c,e),Y(i),G.current="mouse"},sx:f({},v,{mark:f({color:"inherit",bg:"transparent"},u.isObject(p)?p:{fontWeight:p?"extrabold":"inherit"})})},h&&(n||{bg:"whiteAlpha.100",_light:{bg:"gray.200"}}),a&&t,g),root:{isValidSuggestion:y,setItemList:T}}},getListProps:function(){return{width:null==fe?void 0:fe.marginBox.width}},inputRef:N,interactionRef:G,isOpen:j,itemList:M,listRef:B,onClose:k,onOpen:P,query:W,setQuery:H,tags:se,values:U}}var O=o.forwardRef((function(e,t){var r=x(e);return n.createElement(s,{value:r},n.createElement(o.Popover,{isLazy:!0,isOpen:r.isOpen,onClose:r.onClose,onOpen:r.onOpen,autoFocus:!1,placement:"bottom",closeOnBlur:!0},n.createElement(o.chakra.div,{sx:{".chakra-popover__popper":{position:"unset !important"}},w:"full",ref:t},r.children)))}));O.displayName="AutoComplete";var w=["children","dangerouslySetInnerHTML"],S=o.forwardRef((function(e,r){var l=c(),i=l.focusedValue,a=l.getItemProps,s=l.interactionRef,f=t.useRef(),p=o.useMergeRefs(r,f),v=a(e),m=v.root,g=m.isValidSuggestion,h=m.setItemList,y=i===e.value;t.useEffect((function(){var e;y&&"keyboard"===s.current&&(null==f||null==(e=f.current)||e.scrollIntoView({behavior:"smooth",block:"center"}))}),[y,s]),t.useEffect((function(){h((function(t){return[].concat(t,[u.pick(e,["value","label","fixed","disabled","groupId"])])}))}),[]);var b=v.item,I=b.children,C=b.dangerouslySetInnerHTML,x=d(b,w),O=u.omit(x,["groupId"]);return g?n.createElement(o.Flex,Object.assign({ref:p},E,O),I||n.createElement("span",{dangerouslySetInnerHTML:C})):null}));S.displayName="AutoCompleteItem";var E={mx:"2",px:"2",py:"2",rounded:"md",cursor:"pointer"},F=["children"],A=["children"];function R(e){var t=e.children,r=d(e,F),l=c(),i=l.autoCompleteProps,a=l.getItemProps,s=l.query,p=l.filteredResults,v=n.createElement("mark",null,s),m=a(f({},e,{value:s,children:u.runIfFn(t,{value:v})})).item,g=m.children,h=d(m,A),y=p.some((function(e){return e.value===s}));return!i.creatable||u.isEmpty(s)||y?null:n.createElement(o.Flex,Object.assign({},E,h,r),g||"Add "+s)}R.displayName="AutoCompleteCreatable";var D=["children","showDivider"],L=o.forwardRef((function(e,t){var r=e.children,l=d(e,D),i=u.omit(l,["groupSibling"]),a=(0,c().getGroupProps)(e).group,s=P(e);return n.createElement(o.Box,Object.assign({ref:t},a,i),n.createElement(o.Divider,Object.assign({},s.top)),r,n.createElement(o.Divider,Object.assign({},s.bottom)))})),j=o.forwardRef((function(e,t){return n.createElement(o.Flex,Object.assign({},e,k,{ref:t}))}));L.displayName="AutoCompleteGroup",j.displayName="AutoCompleteGroupTitle";var k={ml:5,my:1,fontSize:"xs",letterSpacing:"wider",fontWeight:"extrabold",textTransform:"uppercase"},P=function(e){var t=c(),n=e.groupSibling,r=(0,t.getGroupProps)(e).divider,o=r.hasLastChild,u={my:2,borderColor:e.dividerColor};return{top:f({},u,{mb:4,display:!e.showDivider||r.hasFirstChild?"none":""}),bottom:f({},u,{display:!e.showDivider||o||n?"none":""})}},_=["children","value"],M=o.forwardRef((function(e,r){var l=c(),i=l.getInputProps,a=l.setQuery,s=l.tags,f=o.useMergeRefs(r,l.inputRef),p=e.children,v=e.value,m=d(e,_);t.useEffect((function(){a(null!=v?v:"")}),[v,a]);var g=i(m,o.useMultiStyleConfig("Input",e)),h=u.runIfFn(p,{tags:s});return n.createElement(o.Wrap,Object.assign({},g.wrapper),h,n.createElement(o.WrapItem,Object.assign({as:o.Input},g.input,{ref:f})))}));M.displayName="Input",M.id="Input";var T=function(e){var t=(0,c().getEmptyStateProps)(n.createElement(l.Flex,Object.assign({},N),"No options found!"));return n.createElement(l.Box,Object.assign({},e),t)},N={fontSize:"sm",align:"center",justify:"center",fontWeight:"bold",fontStyle:"italic"},q=["children"],B=o.forwardRef((function(e,t){var r=e.children,u=d(e,q),l=c(),i=l.getListProps,a=o.useMergeRefs(t,l.listRef),s=i();return n.createElement(o.PopoverContent,Object.assign({ref:a},G,s,u),function(e){return n.Children.map(e,(function(t,r){if("AutoCompleteGroup"===t.type.displayName){var o=n.Children.toArray(e)[r+1];return n.cloneElement(t,{groupSibling:!!o&&"AutoCompleteGroup"===o.type.displayName})}return t}))}(r),n.createElement(T,null))}));B.displayName="AutoCompleteList";var G={mt:"4",py:"4",opacity:"0",bg:"#232934",rounded:"md",maxH:"350px",border:"none",shadow:"base",pos:"absolute",zIndex:"popover",overflowY:"auto",_light:{bg:"#ffffff"},_focus:{boxShadow:"none"}},V=["label","onRemove","disabled"],W=t.memo((function(e){var t=e.label,r=e.onRemove,o=e.disabled,a=d(e,V);return n.createElement(l.WrapItem,null,n.createElement(i.Tag,Object.assign({borderRadius:"md",fontWeight:"normal"},o&&H,a),n.createElement(i.TagLabel,null,t),n.createElement(i.TagCloseButton,Object.assign({onClick:function(){return!o&&u.runIfFn(r)},cursor:"pointer"},o&&H))))})),H={cursor:"text",userSelect:"none",opacity:.4,_focus:{boxShadow:"none"}};exports.AutoComplete=O,exports.AutoCompleteCreatable=R,exports.AutoCompleteGroup=L,exports.AutoCompleteGroupTitle=j,exports.AutoCompleteInput=M,exports.AutoCompleteItem=S,exports.AutoCompleteList=B,exports.AutoCompleteTag=W,exports.baseItemStyles=E,exports.useAutoComplete=x;
2
2
  //# sourceMappingURL=chakra-autocomplete.cjs.production.min.js.map
@@ -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, isEmpty } from \"@chakra-ui/utils\";\nimport { ReactNode } from \"react\";\nimport { FlexProps } from \"@chakra-ui/react\";\nimport { fuzzyScore } from \"./fuzzySearch\";\nimport { Item } from \"../types\";\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 return pick(item.props, [\"value\", \"label\", \"fixed\", \"disabled\"]);\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 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 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 runIfFn(autoCompleteProps.onChange, multiple ? values : values[0]);\n }, [values, multiple]);\n\n useEffect(() => {\n runIfFn(autoCompleteProps.onOptionFocus, {\n optionValue: focusedValue,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n }, [focusedValue, autoCompleteProps.onOptionFocus]);\n\n const selectItem = (itemValue: Item[\"value\"]) => {\n if (!values.includes(itemValue) && values.length < maxSelections)\n setValues(v => (multiple ? [...v, itemValue] : [itemValue]));\n\n const itemLabel = filteredList.find(i => i.value === itemValue)?.label;\n\n setQuery(itemLabel);\n\n if (multiple) {\n setQuery(\"\");\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n optionValue: itemValue,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n if (closeOnSelect) onClose();\n };\n\n const removeItem = (itemValue: Item[\"value\"]) => {\n setValues(prevValues => {\n runIfFn(autoCompleteProps.onTagRemoved, itemValue, prevValues);\n return prevValues.filter(i => i !== itemValue);\n });\n if (query === itemValue) setQuery(\"\");\n };\n\n const getItemFromValue = (value: Item[\"value\"]) =>\n itemList.find(item => item.value === value);\n\n const tags = multiple\n ? values.map(tag => ({\n ...getItemFromValue(tag),\n onRemove: () => removeItem(tag),\n }))\n : [];\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);\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);\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 value,\n fixed,\n onClick,\n onMouseOver,\n sx,\n ...rest\n } = props;\n const isFocused = value === focusedValue;\n const isValidSuggestion =\n filteredList.findIndex(i => i.value === value) >= 0;\n\n return {\n item: {\n ...(typeof itemChild !== \"string\" || !emphasize\n ? { children: itemChild }\n : {\n dangerouslySetInnerHTML: {\n __html: setEmphasis(itemChild, 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 },\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 setQuery,\n tags,\n values,\n };\n}\n","import React 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 { 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}\n\nexport const AutoComplete = forwardRef<AutoCompleteProps, \"div\">(\n (props, ref) => {\n const context = useAutoComplete(props);\n const { children, isOpen, onClose, onOpen } = context;\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 React, { useEffect, useRef } from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteItemProps extends FlexProps {\n value: string;\n label?: string;\n fixed?: boolean;\n _focus?: CSSObject | any;\n disabled?: boolean;\n _fixed?: CSSObject;\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 } = itemProps.root;\n\n const isFocused = focusedValue === props.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 const { children, dangerouslySetInnerHTML, ...rest } = itemProps.item;\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 {...props} {...baseTitleStyles} 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","setEmphasis","children","query","isEmpty","toString","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","shouldRenderSuggestions","suggestWhenEmpty","useDisclosure","defaultIsOpen","isOpen","onClose","onOpen","runIfFn","itemList","getChildrenDeep","map","item","pick","getItemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","setQuery","values","setValues","useEffect","_itemList$","focusedValue","setFocusedValue","listAll","setListAll","maxSelections","filteredResults","filter","fixed","label","_","index","filteredList","noFilter","focusedIndex","findIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","onChange","onOptionFocus","optionValue","selectMethod","current","isNewInput","selectItem","includes","find","_filteredList$find","focus","focusInputOnSelect","onSelectOption","tags","tag","onRemove","prevValues","onTagRemoved","dim","useDimensions","getEmptyStateProps","defaultEmptyState","every","getGroupProps","hasItems","isDefined","_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","focusedItem","disabled","preventDefault","callAll","getItemProps","_fixed","itemChild","onMouseOver","sx","isFocused","isValidSuggestion","dangerouslySetInnerHTML","__html","_disabled","opacity","userSelect","mark","color","bg","isObject","fontWeight","_light","root","getListProps","width","marginBox","AutoComplete","forwardRef","context","React","Popover","isLazy","autoFocus","placement","chakra","div","position","w","AutoCompleteItem","forwardedRef","itemRef","useMergeRefs","itemProps","scrollIntoView","behavior","block","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","childrenProp","queryValue","queryExistsInList","some","AutoCompleteGroup","restProps","omit","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":"0UAG8DA,gBAE5D,CACAC,KAAM,sBACNC,aACE,kIALUC,OAAsBC,ocCEpC,SAAgBC,EAAWC,EAAcC,EAAcC,YAC5CC,EAAUC,EAAWC,GAC5BD,EAAI,IAAIE,OAAOD,EAAM,GAAKD,EAAEG,cAAgB,IAAID,OAAOD,EAAM,WACzDG,EAAI,IAAIC,MAAML,EAAEM,OAASL,EAAM,GAC1BM,EAAI,EAAGA,EAAIH,EAAEE,OAAQC,IAC5BH,EAAEG,GAAKP,EAAEQ,MAAMD,EAAGA,EAAIN,UAEjBG,cAP4CN,IAAAA,EAAmB,SAUnEF,IAAAA,EAAMU,cAAWT,IAAAA,EAAMS,cACnB,YAMLG,EAAKb,EAAKU,OAAST,EAAKS,OAAST,EAAOD,EAExCc,EAASX,EAHJH,EAAKU,OAAST,EAAKS,OAASV,EAAOC,EAGjBC,GACvBa,EAASZ,EAAUU,EAAIX,GACvBc,EAAM,IAAIC,IAAYH,GAEtBI,EAAQH,EAAOL,OACfS,EAAO,wrBACMJ,kBACXC,mBACFG,WAGGA,EAAOD,MC5BHE,EAAc,SAACC,EAAeC,SACjB,iBAAbD,GAAyBE,UAAQD,GACnCD,EAEWA,EACjBG,WACAC,QACC,IAAIC,OAAmBJ,EAwCbG,QAAQ,yBAA0B,QAxCb,OAC/B,SAACE,kBAAwBA,gBAyBlBC,EAAsB,SACjCN,EACAO,EACAC,gBAGED,SAAAA,EAAWtB,cAAcwB,cAAQT,SAAAA,EAAOf,iBAAkB,UAC1DuB,SAAAA,EAAWvB,cAAcwB,cAAQT,SAAAA,EAAOf,iBAAkB,GAC1DR,EAAWuB,EAAOO,IAAc,IAChC9B,EAAWuB,EAAOQ,IAAc,ICjDvBE,EAAwB,SAACC,EAAiBC,eACjDA,QACCD,EAAWE,OACdC,aAAcH,EAAWE,MAAME,OAC/BC,IAAK,WACLC,KAAM,EAENC,GAAI,IACJC,QAAS,KAEXC,OAAQ,OACRC,EAAG,iBCPQC,EAAe,SAACvB,EAAqBwB,UACjCC,eACbzB,GACA,SAAC0B,eAC8B,4BAA7BA,YAAAA,EAAOC,eAAMC,cACbF,EAAMG,MAAMC,eAAUN,SAAAA,EAAWM,WAK1BC,EAAc,SAAC/B,EAAqBgC,UAChCP,eACbzB,GACA,SAAC0B,eAC8B,4BAA7BA,YAAAA,EAAOC,eAAMC,cACbF,EAAMG,MAAMC,eAAUE,SAAAA,EAAUF,kLCgBtBG,EACdC,WAiBIA,EAdFC,YAAAA,gBACAC,EAaEF,EAbFE,cACAC,EAYEH,EAZFG,YAYEH,EAXFI,cAAAA,aAAgB,KAChBC,EAUEL,EAVFK,YAUEL,EATFM,WAAAA,gBACAC,EAQEP,EARFO,SACAC,EAOER,EAPFQ,WACAC,EAMET,EANFS,qBACAC,EAKEV,EALFU,eACA/B,EAIEqB,EAJFrB,WAIEqB,EAFFW,wBAAAA,aAA0B,kBAAM,KAChCC,EACEZ,EADFY,iBAGFV,EAAgBA,IAAgCvB,EAEhD4B,EAAWA,KAAsB5B,GAAkBqB,EAAkBO,eAEjCM,gBAAc,CAAEC,cANhDd,EAHFc,gBASMC,IAAAA,OAAQC,IAAAA,QAASC,IAAAA,OAEnBnD,EAAWoD,UAAQlB,EAAkBlC,SAAU,CACnDiD,OAAAA,EACAC,QAAAA,EACAC,OAAAA,IAEIE,EH9CmB,SAACrD,UACLsD,kBACnBtD,GACA,SAAC0B,eAA4C,4BAA7BA,YAAAA,EAAOC,eAAMC,gBAGX2B,KAAI,SAAAC,UACfC,OAAKD,EAAK3B,MAAO,CAAC,QAAS,QAAS,QAAS,gBGuC7B6B,CAAY1D,GAE/B2D,EAAWC,SAAyB,MACpCC,EAAkBD,SAAuB,MACzCE,EAAUF,SAAuB,MACjCG,EAAiBH,SAAoC,QAEjCI,WAAiB,IAApC/D,OAAOgE,SAEcD,WAAgB1B,GAArC4B,OAAQC,OAEfC,aAAU,WACHvD,GAAaX,UAAQoC,IACxB2B,EAAS3B,EAAc,MAExB,UAEqC0B,oBACtCX,EAAS,WAATgB,EAAavC,OADRwC,OAAcC,SAISP,YAAS,GAAhCQ,OAASC,OAEVC,GAAgBxC,EAAkBwC,eAAiBR,EAAO7E,OAAS,EAEnEsF,GAAkBtB,EACrBuB,QACC,SAAAtF,UACEA,EAAEuF,OACFzB,UACElB,EAAkB0C,QAAUrE,EAC5BN,EACAX,EAAEwC,MACFxC,EAAEwF,QAEJN,KAEHI,QAAO,SAACG,EAAGC,UAAWpC,GAAiBoC,EAAQpC,KAI5CqC,aAA2BN,GADPtC,EAAY,CAAC,CAAEP,MAAO7B,EAAOiF,UAAU,IAAU,IAGrEC,GAAeF,GAAaG,WAAU,SAAA9F,UAAKA,EAAEwC,QAAUwC,KACvDe,GAAWC,cACfH,GACAF,KACE/C,EAAkBqD,gBAEhBC,GAAWC,cACfN,GACAF,KACE/C,EAAkBqD,gBAEhB/D,GAAYkE,eAAaT,IACzBjD,GAAW2D,cAAYV,IAE7BW,mBAAgB,WACdrB,QAAgB/C,UAAAA,GAAWM,SAC1B,CAAC7B,IAEJmE,aAAU,WACRhB,UAAQlB,EAAkB2D,SAAUhF,EAAWqD,EAASA,EAAO,MAC9D,CAACA,EAAQrD,IAEZuD,aAAU,WACRhB,UAAQlB,EAAkB4D,cAAe,CACvCC,YAAazB,EACb0B,aAAcjC,EAAekC,QAC7BC,YAAY,MAEb,CAAC5B,EAAcpC,EAAkB4D,oBAE9BK,GAAa,SAAC3F,YACb0D,EAAOkC,SAAS5F,IAAc0D,EAAO7E,OAASqF,IACjDP,GAAU,SAAAhF,UAAM0B,YAAe1B,GAAGqB,IAAa,CAACA,YAE5CC,WAAYwE,GAAaoB,MAAK,SAAA/G,UAAKA,EAAEwC,QAAUtB,aAAnC8F,EAA+CxB,MAEjEb,EAASxD,GAELI,IACFoD,EAAS,aACTN,EAASsC,YAASM,SAEhBrE,EAAkBsE,8BAAoB7C,EAASsC,YAASM,SAC5DnD,UAAQlB,EAAkBuE,eAAgB,CACxCV,YAAavF,EACbwF,aAAcjC,EAAekC,QAC7BC,YAAY,IAEV9D,GAAec,KAcfwD,GAAO7F,EACTqD,EAAOX,KAAI,SAAAoD,gBAJW7E,EAKA6E,EAJxBtD,EAASgD,MAAK,SAAA7C,UAAQA,EAAK1B,QAAUA,OAKjC8E,SAAU,kBAdIpG,EAcamG,EAb/BxC,GAAU,SAAA0C,UACRzD,UAAQlB,EAAkB4E,aAActG,EAAWqG,GAC5CA,EAAWjC,QAAO,SAAAtF,UAAKA,IAAMkB,aAElCP,IAAUO,GAAWyD,EAAS,KALjB,IAACzD,KAQK,IAACsB,KAQtB,GAmHEiF,GAAMC,gBAAcnD,GAAiB,SA+FpC,CACL3B,kBAAAA,EACAlC,SAAAA,EACAiF,aAAAA,GACAN,gBAAAA,GACAL,aAAAA,EACA2C,mBAfsE,SAAAC,MAChDjC,GAAakC,OAAM,SAAA7H,UAAKA,EAAE4F,aAC3B1C,IAAeH,QACL,kBAAfG,EACV0E,EACA9D,UAAQZ,EAAY,CAAEvC,MAAAA,KAW5BmH,cAhC4D,SAAAvF,OACtDwF,EDlViB,SAACrH,EAAeiF,UAClCqC,YACL7F,eACEzB,GACA,SAAC0B,UACCuD,EAAaG,WAAU,SAAA9F,gBAAKA,EAAEwC,kBAAUJ,EAAMG,cAAN0F,EAAazF,WAAU,MC6UlD0F,CAAY3F,EAAM7B,SAAUiF,UACtC,CACLwC,QAAS,CACPC,cAAenG,EAAaM,EAAM7B,SAAUwB,IAC5CmG,aAAc5F,EACZF,EAAM7B,SACN2F,cAAYV,GAAaL,QAAO,SAAAtF,UAAKsI,oBAAYtI,SAAAA,EAAG4F,gBAGxD2C,MAAO,CACLC,QAAST,EAAW,UAAY,UAsBpCU,cAxN4D,SAC5DlG,EACAjB,OAGEoH,EAOEnG,EAPFmG,OACAnC,EAMEhE,EANFgE,SACAoC,EAKEpG,EALFoG,QACAC,EAIErG,EAJFqG,UACAC,EAGEtG,EAHFsG,QACAC,EAEEvG,EAFFuG,WACGC,IACDxG,WAEG,CACLyG,WACEC,IAAK1E,EACL2E,QAAS,uBACP7E,YAAAA,EAAUsC,YAASM,SAErBkC,SAAU,GACP9H,EAAsBC,EAAYC,GAClCuH,GAELM,SACEhG,WAAAA,EACAuF,QAAS,SAAAU,GACPvF,UAAQ6E,GACJ/F,EAAkB0G,cAAgBlG,GAAYS,IAC9CjB,EAAkB2G,eAAeF,EAAEG,OAAOC,SAC1CpG,GAAsB8B,GAAW,IAEvCuD,OAAQ,SAAAW,SACNvF,UAAQ4E,SACFgB,EAAgBL,EAAEM,uBAAkBnF,SAAAA,EAASmC,SAC7CiD,WAAwBrF,EAAgBoC,gBAAhBkD,EAAyBC,SACrDT,EAAEM,eAECD,GAAkBE,IACjB/G,GAAae,IACZgB,EAAOkC,SAASuC,EAAEG,OAAOhH,QAAWW,GACvCwB,WAAS0B,cAAYzB,MAAW,MAGtC2B,SAAU,SAAA8C,OACFU,EAAWV,EAAEG,OAAOhH,MAC1BsB,UAAQyC,EAAU8C,GAClB1E,EAAS0E,EAAEG,OAAOhH,WACZwH,EAAepJ,UAAQmJ,IAE3BjG,UAAQP,EAAyBwG,IAC/BC,IAAgBxG,EAGfI,IADHC,IAEFsB,GAAW,IAEbyD,UAAW,SAAAS,GACTvF,UAAQ8E,EAAWS,GACnB5E,EAAekC,QAAU,iBAEjBsD,EAAQZ,EAARY,IACFC,EAAcvE,GAAaE,UACrB,UAARoE,IACEC,SAAgBA,GAAAA,EAAaC,kBAE5B9F,EAASsC,YAASM,QADrBJ,GAAWqD,EAAY1H,YAEzB6G,EAAEe,kBAIQ,cAARH,GACFhF,EAAgBc,GAASvD,YACzB6G,EAAEe,kBAIQ,YAARH,GACFhF,EAAgBiB,GAAS1D,YAEzB6G,EAAEe,kBAIQ,QAARH,GACFhF,EAAgBc,GAASvD,YACzB6G,EAAEe,kBAIQ,SAARH,GACFhF,QAAgB/C,UAAAA,GAAWM,YAC3B6G,EAAEe,kBAIQ,QAARH,GACFhF,QAAgBvC,UAAAA,GAAUF,YAC1B6G,EAAEe,uBAIQ,WAARH,GACFI,UAAQzG,EAASyF,EAAEe,kBAGvB5H,YAAO7B,EAAAA,EAAS,GAChBkI,QAAStH,EAAW,WAAasH,GAC9BE,KA6GPuB,aA/F0D,SAAA/H,OAExDgI,EAUEhI,EAVFgI,OACA7I,EASEa,EATFb,OACU8I,EAQRjI,EARF7B,SACAyJ,EAOE5H,EAPF4H,SACA3H,EAMED,EANFC,MACA+C,EAKEhD,EALFgD,MACA2D,EAIE3G,EAJF2G,QACAuB,EAGElI,EAHFkI,YACAC,EAEEnI,EAFFmI,GACG3B,IACDxG,KACEoI,EAAYnI,IAAUwC,EACtB4F,EACJjF,GAAaG,WAAU,SAAA9F,UAAKA,EAAEwC,QAAUA,MAAU,QAE7C,CACL0B,UAC2B,iBAAdsG,GAA2BvH,EAElC,CACE4H,wBAAyB,CACvBC,OAAQrK,EAAY+J,EAAW7J,KAHnC,CAAED,SAAU8J,oBAMC5F,EAAOkC,SAAStE,mBAChB2H,EACjBY,UAAW,CAAEC,QAAS,GAAKjJ,OAAQ,cAAekJ,WAAY,QAC9D/B,QAAS,SAAAG,SACPvF,UAAQoF,EAASG,GACZc,WACA9F,EAASsC,YAASM,QADRJ,GAAWrE,IAG5BiI,YAAa,SAAApB,GACXvF,UAAQ2G,EAAapB,GACrBpE,EAAgBzC,GAChBiC,EAAekC,QAAU,SAE3B+D,QACKA,GACHQ,QACEC,MAAO,UACPC,GAAI,eACAC,WAASpI,GACTA,EACA,CACEqI,WAAYrI,EAAY,YAAc,eAI5C0H,IAAcjJ,GH/TjB,CACL0J,GAAI,iBACJG,OAAQ,CACNH,GAAI,cG6TE7F,GAASgF,EACVxB,GAELyC,KAAM,CACJZ,kBAAAA,KAwCJa,aAxG0D,iBAGnD,CACLC,YAHYjE,UAAAA,GAAKkE,UAAUD,QAwG7BrH,SAAAA,EACAI,eAAAA,EACAd,OAAAA,EACAI,SAAAA,EACAS,QAAAA,EACAZ,QAAAA,EACAC,OAAAA,EACAlD,MAAAA,EACAgE,SAAAA,EACAyC,KAAAA,GACAxC,OAAAA,OCtYSgH,EAAeC,cAC1B,SAACtJ,EAAO0G,OACA6C,EAAUnJ,EAAgBJ,UAI9BwJ,gBAAC7M,GAAqBsD,MAAOsJ,GAC3BC,gBAACC,WACCC,UACAtI,OANwCmI,EAA5BnI,OAOZC,QAPwCkI,EAApBlI,QAQpBC,OARwCiI,EAAXjI,OAS7BqI,WAAW,EACXC,UAAU,SACVtJ,aAAa,GAEbkJ,gBAACK,SAAOC,KACN3B,GAAI,2BACyB,CACzB4B,SAAU,qBAGdC,EAAE,OACFtD,IAAKA,GApBiC6C,EAAtCpL,eA8BZkL,EAAatJ,YAAc,4DC9BdkK,EAAmBX,cAC9B,SAACtJ,EAAOkK,SAKFtN,IAHF6F,IAAAA,aACAsF,IAAAA,aACA7F,IAAAA,eAEIiI,EAAUpI,WACV2E,EAAM0D,eAAaF,EAAcC,GAEjCE,EAAYtC,EAAa/H,GACvBqI,EAAsBgC,EAAUpB,KAAhCZ,kBAEFD,EAAY3F,IAAiBzC,EAAMC,MAEzCsC,aAAU,iBACJ6F,GAAwC,aAA3BlG,EAAekC,gBAC9B+F,YAAAA,EAAS/F,YAASkG,eAAe,CAC/BC,SAAU,SACVC,MAAO,cAEV,CAACpC,EAAWlG,UAEwCmI,EAAU1I,KAAzDxD,IAAAA,SAAUmK,IAAAA,wBAA4B9B,gBAEvC6B,EACLmB,gBAACiB,sBAAK/D,IAAKA,GAASgE,EAAoBlE,GACrCrI,GAGCqL,wBAAMlB,wBAAyBA,KAGjC,QAIR2B,EAAiBlK,YAAc,mBAE/B,IAAa2K,EAA4B,CACvCC,GAAI,IACJC,GAAI,IACJtL,GAAI,IACJuL,QAAS,KACTrL,OAAQ,kDCnDMsL,EAAsB9K,OAClB+K,EAA0B/K,EAApC7B,SAA2BqI,IAASxG,OAMxCpD,IAJFyD,IAAAA,kBACA0H,IAAAA,aACA3J,IAAAA,MACA0E,IAAAA,gBAGIkI,EAAaxB,4BAAOpL,KACS2J,OAC9B/H,GACHC,MAAO7B,EACPD,SAAUoD,UAAQwJ,EAAc,CAC9B9K,MAAO+K,OAERrJ,KANKxD,IAAAA,SAAakM,SAQfY,EAAoBnI,EAAgBoI,MAAK,SAAAzN,UAAKA,EAAEwC,QAAU7B,YAE9DiC,EAAkBG,WAAcnC,UAAQD,IAAW6M,EAMjD,KAHFzB,gBAACiB,wBAASC,EAAoBL,EAAe7D,GAC1CrI,UAAmBC,GAK1B0M,EAAsB/K,YAAc,yDCvBvBoL,EAAoB7B,cAC/B,SAACtJ,EAAO0G,OACEvI,EAAwC6B,EAAxC7B,SAA0BiN,IAAcpL,KAC1CwG,EAAO6E,OAAKD,EAAW,CAAC,iBAItBpF,GAAUT,EAFQ3I,IAAlB2I,eAEwBvF,GAAxBgG,MAEFsF,EAAgBC,EAAiBvL,UAGrCwJ,gBAACgC,qBAAI9E,IAAKA,GAASV,EAAWQ,GAC5BgD,gBAACiC,2BAAYH,EAAcI,MAC1BvN,EACDqL,gBAACiC,2BAAYH,EAAcK,aAMtBC,EAAyBtC,cACpC,SAACtJ,EAAO0G,UACC8C,gBAACiB,wBAASzK,EAAW6L,GAAiBnF,IAAKA,QAItDyE,EAAkBpL,YAAc,oBAChC6L,EAAuB7L,YAAc,yBAErC,IAAM8L,EAA6B,CACjCC,GAAI,EACJC,GAAI,EACJC,SAAU,KACVC,cAAe,QACflD,WAAY,YACZmD,cAAe,aAGXX,EAAmB,SACvBvL,SAE0BpD,IAEpBuP,EAA2BnM,EAAMoM,gBAInC7G,IANIA,eAMUvF,GADhB4F,QAA0BE,IAAAA,aAGtBuG,EAA2B,CAC/BN,GAAI,EACJO,YAAatM,EAAMuM,oBAcd,CAAEb,SAVJW,GACHG,GAAI,EACJvG,SAAUjG,EAAMyM,eAXL5G,cAWoC,OAAS,KAQ5C8F,YALTU,GACHpG,SACGjG,EAAMyM,aAAe3G,GAAgBqG,EAAkB,OAAS,8BC5D1DO,EAAoBpD,cAC/B,SAACtJ,EAAOkK,SAMFtN,IAHFsJ,IAAAA,cACA9D,IAAAA,SACAyC,IAAAA,KAGI6B,EAAM0D,eAAaF,IANvBpI,UAQgBiJ,EAAiC/K,EAA3C7B,SAAwB8B,EAAmBD,EAAnBC,MAAUuG,IAASxG,KAEnDuC,aAAU,WACRH,QAASnC,EAAAA,EAAS,MACjB,CAACA,EAAOmC,QAILuK,EAAazG,EAAcM,EAFToG,sBAAoB,QAAS5M,IAI/C7B,EAAWoD,UAAQwJ,EAAc,CAAElG,KAAAA,WAGvC2E,gBAACqD,wBAASF,EAAWlG,SAClBtI,EACDqL,gBAACsD,0BAASC,GAAIC,SAAYL,EAAW9F,OAAeH,IAAKA,SAMjEgG,EAAkB3M,YAAc,QAEhC2M,EAAkBO,GAAK,QCpDhB,IAAMC,EAAa,SAAClN,OAGnBW,GAAayE,EAFYxI,IAAvBwI,oBAGNoE,gBAACiB,wBAAS0C,gCAGL3D,gBAACgC,uBAAQxL,GAAQW,IAGpBwM,EAAyB,CAC7BnB,SAAU,KACVoB,MAAO,SACPC,QAAS,SACTtE,WAAY,OACZuE,UAAW,yBCNAC,EAAmBjE,cAC9B,SAACtJ,EAAOkK,OACE/L,EAAsB6B,EAAtB7B,SAAaqI,IAASxG,OACIpD,IAAjBsM,IAAAA,aACXxC,EAAM0D,eAAaF,IADjBjI,SAEFuL,EAAYtE,WAGhBM,gBAACiE,gCAAe/G,IAAKA,GAAS2F,EAAgBmB,EAAehH,GCnBxC,SAACrI,UACnBqL,EAAMkE,SAAShM,IAAIvD,GAAU,SAAC0B,EAAYpC,MAChB,sBAA3BoC,EAAMC,KAAKC,YAAqC,KAC5C4N,EAAenE,EAAMkE,SAASE,QAAQzP,GAAUV,EAAI,UACnD+L,EAAMqE,aAAahO,EAAO,CAC/BuM,eAAcuB,GACmB,sBAA7BA,EAAQ7N,KAAKC,qBAIdF,KDUFiO,CAAY3P,GACbqL,gBAAC0D,YAMTK,EAAiBxN,YAAc,mBAE/B,IAAMsM,EAAkC,CACtC0B,GAAI,IACJzO,GAAI,IACJmJ,QAAS,IACTI,GAAI,UACJgC,QAAS,KACTmD,KAAM,QACNC,OAAQ,OACRC,OAAQ,OACR9O,IAAK,WACL+O,OAAQ,UACRC,UAAW,OAEXpF,OAAQ,CACNH,GAAI,WAGN1J,OAAQ,CACNkP,UAAW,2CEtCFC,EAAkBC,QAAK,SAACvO,OAC3BiD,EAAuCjD,EAAvCiD,MAAO8B,EAAgC/E,EAAhC+E,SAAU6C,EAAsB5H,EAAtB4H,SAAapB,IAASxG,YAG7CwJ,gBAACsD,gBACCtD,gBAACgF,qBACCC,aAAa,KACb1F,WAAW,UACNnB,GAAY8G,EACblI,GAEJgD,gBAACmF,gBAAU1L,GACXuG,gBAACoF,gCACCjI,QAAS,kBAAOiB,GAAYrG,UAAQwD,IACpCvF,OAAO,WACFoI,GAAY8G,SAOrBA,EAA2B,CAC/BlP,OAAQ,OACRkJ,WAAY,OACZD,QAAS,GACTtJ,OAAQ,CAAEkP,UAAW"}
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 autocomplete 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 { isEmpty } from \"@chakra-ui/utils\";\nimport { FlexProps } from \"@chakra-ui/react\";\nimport { fuzzyScore } from \"./fuzzySearch\";\nimport { Item } from \"../types\";\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 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 { AutoCompleteGroupProps } from \"../autocomplete-group\";\nimport { Item } from \"../types\";\n\nexport const hasFirstItem = (\n props: AutoCompleteGroupProps,\n firstItem: Item\n) => {\n return (\n isDefined(firstItem?.groupId) &&\n isDefined(props.id) &&\n firstItem?.groupId === props.id\n );\n};\nexport const hasLastItem = (props: AutoCompleteGroupProps, lastItem: Item) => {\n return (\n isDefined(lastItem?.groupId) &&\n isDefined(props.id) &&\n lastItem?.groupId === props.id\n );\n};\n\nexport const hasChildren = (\n props: AutoCompleteGroupProps,\n filteredList: Item[]\n) => {\n return filteredList.some(item => {\n return (\n isDefined(item.groupId) &&\n isDefined(props.id) &&\n item.groupId === props.id\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 getFocusedStyles,\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 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 [itemList, setItemList] = useState<Item[]>([]);\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 runIfFn(autoCompleteProps.onChange, multiple ? values : values[0]);\n }, [values, multiple]);\n\n useEffect(() => {\n runIfFn(autoCompleteProps.onOptionFocus, {\n optionValue: focusedValue,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n }, [focusedValue, autoCompleteProps.onOptionFocus]);\n\n const selectItem = (itemValue: Item[\"value\"]) => {\n if (!values.includes(itemValue) && values.length < maxSelections)\n setValues(v => (multiple ? [...v, itemValue] : [itemValue]));\n\n const itemLabelFromValue = filteredList.find(i => i.value === itemValue)\n ?.label;\n // use value if label is not available\n const itemLabel = itemLabelFromValue || itemValue;\n setQuery(itemLabel);\n\n if (multiple) {\n setQuery(\"\");\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n optionValue: itemValue,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n if (closeOnSelect) onClose();\n };\n\n const removeItem = (itemValue: Item[\"value\"]) => {\n setValues(prevValues => {\n runIfFn(autoCompleteProps.onTagRemoved, itemValue, prevValues);\n return prevValues.filter(i => i !== itemValue);\n });\n if (query === itemValue) setQuery(\"\");\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 const children = runIfFn(autoCompleteProps.children, {\n isOpen,\n onClose,\n onOpen,\n tags,\n });\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);\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);\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,\n fixed,\n onClick,\n onMouseOver,\n sx,\n ...rest\n } = props;\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 setItemList,\n },\n };\n };\n\n const getGroupProps: UseAutoCompleteReturn[\"getGroupProps\"] = props => {\n const hasItems = hasChildren(props, filteredList);\n const lastItem = getLastItem(\n filteredList.filter(i => isUndefined(i?.noFilter))\n );\n return {\n divider: {\n hasFirstChild: hasFirstItem(props, firstItem!),\n hasLastChild: hasLastItem(props, lastItem!),\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 setQuery,\n tags,\n values,\n };\n}\n","import React from \"react\";\n\nimport { AutoCompleteProvider } from \"./autocomplete-context\";\nimport { useAutoComplete } from \"./use-autocomplete\";\nimport { chakra, forwardRef, Popover } from \"@chakra-ui/react\";\nimport { UseAutoCompleteProps, UseAutoCompleteReturn } from \"./types\";\n\nexport interface AutoCompleteProps extends UseAutoCompleteProps {\n children: UseAutoCompleteReturn[\"children\"];\n}\n\nexport const AutoComplete = forwardRef<AutoCompleteProps, \"div\">(\n (props, ref) => {\n const context = useAutoComplete(props);\n const { children, isOpen, onClose, onOpen } = context;\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 { omit, pick } from \"@chakra-ui/utils\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteItemProps extends FlexProps {\n value: string;\n label?: string;\n fixed?: boolean;\n _focus?: CSSObject | any;\n disabled?: boolean;\n _fixed?: CSSObject;\n groupId?: string;\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, setItemList } = itemProps.root;\n\n const isFocused = focusedValue === props.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 setItemList((itemList: any) => [\n ...itemList,\n pick(props, [\"value\", \"label\", \"fixed\", \"disabled\", \"groupId\"]),\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 {...props} {...baseTitleStyles} 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","setEmphasis","children","query","isEmpty","toString","replace","RegExp","match","defaultFilterMethod","itemValue","itemLabel","indexOf","getMultipleWrapStyles","themeInput","multiple","field","_focusWithin","_focus","pos","minH","py","spacing","cursor","h","hasFirstItem","props","firstItem","isDefined","groupId","id","hasLastItem","lastItem","useAutoComplete","autoCompleteProps","closeOnBlur","closeOnSelect","creatable","defaultValues","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","shouldRenderSuggestions","suggestWhenEmpty","useDisclosure","defaultIsOpen","isOpen","onClose","onOpen","useState","itemList","setItemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","setQuery","values","setValues","useEffect","_itemList$","value","focusedValue","setFocusedValue","listAll","setListAll","maxSelections","filteredResults","filter","fixed","runIfFn","label","_","index","filteredList","noFilter","focusedIndex","findIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","onChange","onOptionFocus","optionValue","selectMethod","current","isNewInput","selectItem","includes","itemLabelFromValue","find","_filteredList$find","focus","focusInputOnSelect","onSelectOption","tags","map","tag","item","onRemove","prevValues","onTagRemoved","dim","useDimensions","getEmptyStateProps","defaultEmptyState","every","getGroupProps","hasItems","some","hasChildren","isUndefined","divider","hasFirstChild","hasLastChild","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","focusedItem","disabled","preventDefault","callAll","getItemProps","_fixed","itemChild","onMouseOver","sx","isFocused","isValidSuggestion","dangerouslySetInnerHTML","__html","_disabled","opacity","userSelect","mark","color","bg","isObject","fontWeight","_light","root","getListProps","width","marginBox","AutoComplete","forwardRef","context","React","Popover","isLazy","autoFocus","placement","chakra","div","position","w","displayName","AutoCompleteItem","forwardedRef","itemRef","useMergeRefs","itemProps","scrollIntoView","behavior","block","pick","restProps","omit","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","childrenProp","queryValue","queryExistsInList","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","EmptyState","emptyStyles","align","justify","fontStyle","AutoCompleteList","listProps","PopoverContent","Children","child","type","sibling","toArray","cloneElement","siblingInfo","mt","maxH","border","shadow","zIndex","overflowY","boxShadow","AutoCompleteTag","memo","Tag","borderRadius","disabledStyles","TagLabel","TagCloseButton"],"mappings":"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"}