@telegraph/combobox 0.0.19 → 0.0.21

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":"index.mjs","sources":["../../src/Combobox/Combobox.helpers.ts","../../src/Combobox/Combobox.tsx"],"sourcesContent":["export type Option = { value: string; label?: string };\nexport const isMultiSelect = (\n value: Option | Array<Option>,\n): value is Array<Option> => {\n return Array.isArray(value);\n};\n\nexport const isSingleSelect = (\n value: Option | Array<Option>,\n): value is Option => {\n return typeof value === \"object\" && !Array.isArray(value);\n};\n","import { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHidden from \"@radix-ui/react-visually-hidden\";\nimport { Button as TelegraphButton } from \"@telegraph/button\";\nimport { useComposedRefs } from \"@telegraph/compose-refs\";\nimport {\n RefToTgphRef,\n type TgphComponentProps,\n type TgphElement,\n} from \"@telegraph/helpers\";\nimport { Icon, Lucide } from \"@telegraph/icon\";\nimport { Input as TelegraphInput } from \"@telegraph/input\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { Menu as TelegraphMenu } from \"@telegraph/menu\";\nimport { Tag } from \"@telegraph/tag\";\nimport { Text } from \"@telegraph/typography\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport React from \"react\";\n\nimport { type Option, isMultiSelect, isSingleSelect } from \"./Combobox.helpers\";\n\nconst FIRST_KEYS = [\"ArrowDown\", \"PageUp\", \"Home\"];\nconst LAST_KEYS = [\"ArrowUp\", \"PageDown\", \"End\"];\nconst SELECT_KEYS = [\"Enter\", \" \"];\n\ntype RootProps = (\n | {\n value?: Array<Option>;\n onValueChange?: (value: Array<Option>) => void;\n layout?: \"truncate\" | \"wrap\";\n }\n | {\n value?: Option;\n onValueChange?: (value: Option) => void;\n layout?: never;\n }\n) & {\n open?: boolean;\n defaultOpen?: boolean;\n errored?: boolean;\n placeholder?: string;\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n closeOnSelect?: boolean;\n children?: React.ReactNode;\n};\n\nconst ComboboxContext = React.createContext<\n Omit<RootProps, \"children\"> & {\n contentId: string;\n triggerId: string;\n open: boolean;\n setOpen: (open: boolean) => void;\n onOpenToggle: () => void;\n searchQuery?: string;\n setSearchQuery?: (query: string) => void;\n triggerRef?: React.RefObject<HTMLDivElement>;\n searchRef?: React.RefObject<HTMLInputElement>;\n contentRef?: React.RefObject<HTMLDivElement>;\n }\n>({\n onValueChange: () => {},\n contentId: \"\",\n triggerId: \"\",\n open: false,\n setOpen: () => {},\n onOpenToggle: () => {},\n});\n\nconst Root = ({\n modal = true,\n closeOnSelect = true,\n open: openProp,\n onOpenChange: onOpenChangeProp,\n defaultOpen: defaultOpenProp,\n value,\n onValueChange,\n errored,\n placeholder,\n layout,\n ...props\n}: RootProps) => {\n const contentId = React.useId();\n const triggerId = React.useId();\n const triggerRef = React.useRef(null);\n const searchRef = React.useRef(null);\n const contentRef = React.useRef<HTMLDivElement>(null);\n\n const [searchQuery, setSearchQuery] = React.useState<string>(\"\");\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpenProp,\n onChange: onOpenChangeProp,\n });\n\n const onOpenToggle = React.useCallback(() => {\n setOpen((prevOpen) => !prevOpen);\n }, [setOpen]);\n\n React.useEffect(() => {\n // If the combobox is closed clear\n // the search query\n if (!open) {\n setSearchQuery(\"\");\n }\n }, [open]);\n\n return (\n <ComboboxContext.Provider\n value={{\n contentId,\n triggerId,\n value,\n onValueChange,\n placeholder,\n open,\n setOpen,\n onOpenToggle,\n closeOnSelect,\n searchQuery,\n setSearchQuery,\n triggerRef,\n searchRef,\n contentRef,\n errored,\n layout,\n }}\n >\n <TelegraphMenu.Root\n open={open}\n onOpenChange={setOpen}\n modal={modal}\n {...props}\n />\n </ComboboxContext.Provider>\n );\n};\n\ntype TriggerTagProps = {\n value: string;\n label?: string;\n};\n\nconst TriggerTag = ({ label, value, ...props }: TriggerTagProps) => {\n const context = React.useContext(ComboboxContext);\n\n return (\n <Tag.Root\n size=\"1\"\n as={motion.span}\n initial={{ opacity: 0, transform: \"scale(0.8)\" }}\n animate={{ opacity: 1, transform: \"scale(1)\" }}\n exit={{ opacity: 0, transform: \"scale(0.5)\" }}\n layout=\"position\"\n transition={{\n duration: 0.2,\n type: \"spring\",\n bounce: 0,\n layout: {\n duration: 0.05,\n type: \"spring\",\n bounce: 0,\n },\n }}\n {...props}\n >\n <Tag.Text>{label || value}</Tag.Text>\n <Tag.Button\n icon={{ icon: Lucide.X, alt: `Remove ${value}` }}\n onClick={(event: React.MouseEvent) => {\n const onValueChange = context.onValueChange as (\n v: Array<Option>,\n ) => void;\n const contextValue = context.value as Array<Option>;\n const newValue = contextValue.filter((v) => v.value !== value);\n onValueChange(newValue);\n // Stop click event from bubbling up\n event.stopPropagation();\n // Stop the button \"submit\" action from triggering\n event.preventDefault();\n }}\n />\n </Tag.Root>\n );\n};\n\ntype TriggerValueProps<T extends TgphElement> = {\n size?: TgphComponentProps<typeof TelegraphButton.Root<T>>[\"size\"];\n};\n\nconst TriggerValue = <T extends TgphElement>({\n size = \"1\",\n}: TriggerValueProps<T>) => {\n const context = React.useContext(ComboboxContext);\n\n const height = size === \"1\" ? \"6\" : size === \"2\" ? \"8\" : \"10\";\n\n if (context.value && isMultiSelect(context.value)) {\n const contextValue = context.value as Array<Option>;\n const layout = context.layout || \"truncate\";\n const truncatedLength = contextValue.length - 2;\n const truncatedLengthStringArray = truncatedLength.toString().split(\"\");\n\n if (contextValue.length === 0) {\n return (\n <Stack h={height} align=\"center\" my=\"1\">\n <TelegraphButton.Text color=\"gray\">\n {context.placeholder}\n </TelegraphButton.Text>\n </Stack>\n );\n }\n\n return (\n <Stack\n gap=\"1\"\n w=\"full\"\n my=\"1\"\n wrap={layout === \"wrap\" ? \"wrap\" : \"nowrap\"}\n align=\"center\"\n style={{\n position: \"relative\",\n flexGrow: 1,\n }}\n >\n <AnimatePresence initial={false} mode=\"popLayout\">\n {contextValue.map((v, i) => {\n if ((layout === \"truncate\" && i <= 1) || layout === \"wrap\") {\n return (\n <RefToTgphRef key={v.value}>\n <TriggerTag {...v} />\n </RefToTgphRef>\n );\n }\n })}\n </AnimatePresence>\n <AnimatePresence>\n {layout === \"truncate\" && contextValue.length > 2 && (\n <Stack\n as={motion.div}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n h=\"full\"\n pr=\"1\"\n pl=\"8\"\n align=\"center\"\n aria-label={`${truncatedLength} more selected`}\n style={{\n position: \"absolute\",\n right: 0,\n backgroundImage:\n \"linear-gradient(to left, var(--tgph-surface-1) 0 60%, transparent 90% 100%)\",\n }}\n key=\"truncated text\"\n >\n <Text as=\"span\" size=\"1\" style={{ whiteSpace: \"nowrap\" }}>\n +\n <AnimatePresence mode=\"wait\" initial={false}>\n {truncatedLengthStringArray.map((n) => (\n <Box\n as={motion.span}\n w=\"2\"\n display=\"inline-block\"\n initial={{\n opacity: 0.5,\n }}\n animate={{\n opacity: 1,\n }}\n exit={{\n opacity: 0.5,\n }}\n transition={{ duration: 0.1, type: \"spring\", bounce: 0 }}\n key={n}\n >\n {n}\n </Box>\n ))}\n </AnimatePresence>{\" \"}\n more\n </Text>\n </Stack>\n )}\n </AnimatePresence>\n </Stack>\n );\n }\n\n return (\n <Stack h={height} align=\"center\" my=\"1\">\n <TelegraphButton.Text color={!context.value ? \"gray\" : \"default\"}>\n {context?.value?.label || context?.value?.value || context.placeholder}\n </TelegraphButton.Text>\n </Stack>\n );\n};\n\ntype TriggerProps = React.ComponentProps<typeof TelegraphMenu.Trigger> & {\n placeholder?: string;\n size?: TgphComponentProps<typeof TelegraphButton.Root>[\"size\"];\n};\n\nconst Trigger = ({ size = \"1\", ...props }: TriggerProps) => {\n const context = React.useContext(ComboboxContext);\n\n const getAriaLabelString = React.useCallback(() => {\n if (!context.value) return context.placeholder;\n if (isSingleSelect(context.value)) {\n return (\n context.value?.label || context.value?.value || context.placeholder\n );\n } else {\n return (\n context.value?.map((v) => v.label).join(\", \") || context.placeholder\n );\n }\n }, [context.value, context.placeholder]);\n\n return (\n <TelegraphMenu.Trigger\n {...props}\n asChild\n onClick={(event: React.MouseEvent) => {\n event.preventDefault();\n context.onOpenToggle();\n context.triggerRef?.current?.focus();\n }}\n onKeyDown={(event: React.KeyboardEvent) => {\n // Lets the user tab in and out of the combobox as usual\n if (event.key === \"Tab\") {\n event.stopPropagation();\n return;\n }\n if (SELECT_KEYS.includes(event.key)) {\n event.preventDefault();\n return;\n }\n\n if (event.key === \"ArrowDown\") {\n context.onOpenToggle();\n return;\n }\n }}\n tgphRef={context.triggerRef}\n >\n <TelegraphButton.Root\n id={context.triggerId}\n bg=\"surface-1\"\n variant=\"outline\"\n w=\"full\"\n h=\"full\"\n color={context.errored ? \"red\" : \"gray\"}\n justify=\"space-between\"\n // Accessibility attributes\n role=\"combobox\"\n aria-label={getAriaLabelString()}\n aria-controls={context.contentId}\n aria-expanded={context.open}\n aria-haspopup=\"listbox\"\n // Custom attributes\n data-tgph-combobox-trigger\n data-tgph-comobox-trigger-open={context.open}\n >\n <TriggerValue size={size} />\n <TelegraphButton.Icon\n as={motion.div}\n icon={Lucide.ChevronDown}\n animate={{ rotate: context.open ? \"180deg\" : \"0deg\" }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n aria-hidden\n />\n </TelegraphButton.Root>\n </TelegraphMenu.Trigger>\n );\n};\n\ntype ContentProps<T extends TgphElement> = TgphComponentProps<\n typeof TelegraphMenu.Content<T>\n>;\n\nconst Content = <T extends TgphElement>({\n tgphRef,\n style,\n children,\n ...props\n}: ContentProps<T>) => {\n const context = React.useContext(ComboboxContext);\n const hasInteractedOutside = React.useRef(false);\n const composedRef = useComposedRefs<unknown>(tgphRef, context.contentRef);\n\n const internalContentRef = React.useRef(null);\n\n const [height, setHeight] = React.useState(0);\n const [initialAnimationComplete, setInitialAnimationComplete] =\n React.useState(false);\n\n const setHeightFromContent = React.useCallback(\n (element: Element) => {\n // Set the initial height of the content after the animation completes\n const rect = element.getBoundingClientRect();\n if (rect) {\n setHeight(rect.height);\n }\n\n if (!initialAnimationComplete) {\n setInitialAnimationComplete(true);\n }\n },\n [initialAnimationComplete],\n );\n\n React.useEffect(() => {\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const element = entry.target;\n setHeightFromContent(element);\n }\n });\n // Attatch the observer once the initial animation completes\n // and the content ref is available\n if (internalContentRef.current && initialAnimationComplete) {\n observer.observe(internalContentRef.current);\n }\n\n return () => observer.disconnect();\n }, [initialAnimationComplete, setHeightFromContent]);\n\n // Reset the animation complete state when the combobox is closed\n React.useEffect(() => {\n if (initialAnimationComplete === true && context.open === false) {\n setInitialAnimationComplete(false);\n }\n }, [context.open, initialAnimationComplete]);\n\n return (\n <TelegraphMenu.Content\n as={motion.div}\n mt=\"1\"\n initial={{\n opacity: 0,\n scale: 0.8,\n height: \"auto\",\n }}\n animate={{\n opacity: 1,\n scale: 1,\n // Set height based on the internalContentRef so that\n // we get smooth animations when the content changes\n minHeight: height ? `${height}px` : \"0\",\n }}\n exit={{ opacity: 0, scale: 0 }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n onInteractOutside={() => {\n context.setOpen(false);\n hasInteractedOutside.current = true;\n }}\n onAnimationComplete={() => {\n // Set height when the initial animation for\n // displaying the content completes\n if (!initialAnimationComplete && internalContentRef) {\n const element = internalContentRef.current as unknown as Element;\n setHeightFromContent(element);\n }\n }}\n onCloseAutoFocus={(event: Event) => {\n if (!hasInteractedOutside.current) context.triggerRef?.current?.focus();\n hasInteractedOutside.current = false;\n\n event.preventDefault();\n }}\n onKeyDown={(event: React.KeyboardEvent) => {\n // If the first option is focused and the user presses the up\n // arrow key, focus the search input\n const options = context.contentRef?.current?.querySelectorAll(\n \"[data-tgph-combobox-option]\",\n );\n\n if (\n document.activeElement === options?.[0] &&\n LAST_KEYS.includes(event.key)\n ) {\n context.searchRef?.current?.focus();\n }\n\n // Close the combobox if the user presses the escape key\n if (event.key === \"Escape\") {\n context.setOpen(false);\n }\n\n event.stopPropagation();\n }}\n bg=\"surface-1\"\n style={{\n width: \"var(--tgph-comobobox-trigger-width)\",\n ...style,\n ...{\n \"--tgph-comobobox-content-transform-origin\":\n \"var(--radix-popper-transform-origin)\",\n \"--tgph-combobox-content-available-width\":\n \"var(--radix-popper-available-width)\",\n \"--tgph-combobox-content-available-height\":\n \"calc(var(--radix-popper-available-height) - var(--tgph-spacing-8))\",\n \"--tgph-comobobox-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--tgph-combobox-trigger-height\": \"var(--radix-popper-anchor-height)\",\n },\n }}\n {...props}\n tgphRef={composedRef}\n data-tgph-combobox-content\n data-tgph-combobox-content-open={initialAnimationComplete}\n // Cancel out accessibility attirbutes related to aria menu\n role={undefined}\n aria-orientation={undefined}\n >\n <Stack direction=\"column\" gap=\"1\" tgphRef={internalContentRef}>\n {children}\n </Stack>\n </TelegraphMenu.Content>\n );\n};\n\ntype OptionsProps<T extends TgphElement> = TgphComponentProps<typeof Stack<T>>;\n\nconst Options = <T extends TgphElement>({ ...props }: OptionsProps<T>) => {\n const context = React.useContext(ComboboxContext);\n return (\n <Stack\n id={context.contentId}\n direction=\"column\"\n gap=\"1\"\n style={{\n overflowY: \"auto\",\n // Available Height - Padding from edge of screen\n maxHeight:\n \"calc(var(--tgph-combobox-content-available-height) - var(--tgph-spacing-12))\",\n }}\n // Accessibility attributes\n role=\"listbox\"\n {...props}\n />\n );\n};\n\ntype OptionProps<T extends TgphElement> = TgphComponentProps<\n typeof TelegraphMenu.Button<T>\n> & {\n value: string;\n label?: string;\n selected?: boolean | null;\n};\n\nconst Option = <T extends TgphElement>({\n value,\n label,\n selected,\n onSelect,\n ...props\n}: OptionProps<T>) => {\n const context = React.useContext(ComboboxContext);\n const [isFocused, setIsFocused] = React.useState(false);\n const contextValue = context.value ?? [];\n\n const isVisible = isMultiSelect(contextValue)\n ? !context.searchQuery ||\n value.toLowerCase().includes(context.searchQuery.toLowerCase())\n : !context.searchQuery ||\n value.toLowerCase().includes(context.searchQuery.toLowerCase());\n\n const isSelected = isMultiSelect(contextValue)\n ? contextValue.some((v) => v.value === value)\n : contextValue.value === value;\n\n const handleSelection = (event: Event | React.KeyboardEvent) => {\n // Don't do anything if the key isn't a selection key\n const keyboardEvent = event as React.KeyboardEvent;\n if (keyboardEvent.key && !SELECT_KEYS.includes(keyboardEvent.key)) return;\n\n // Don't bubble up the event\n event.stopPropagation();\n event.preventDefault();\n\n if (context.closeOnSelect === true) {\n context.setOpen(false);\n }\n\n if (onSelect) {\n // Need to convert to non keyboard type event\n // since onSelect is expecting a mouse event\n // and we've handled the keyboard event already\n const onSelectEvent = event as unknown as Event;\n return onSelect(onSelectEvent);\n }\n\n if (isMultiSelect(contextValue)) {\n const onValueChange = context.onValueChange as (v: Array<Option>) => void;\n\n const newValue = isSelected\n ? contextValue.filter((v) => v.value !== value)\n : [...contextValue, { value, label }];\n\n onValueChange(newValue);\n } else if (isSingleSelect(contextValue)) {\n const onValueChange = context.onValueChange as (v: Option) => void;\n onValueChange({ value, label });\n }\n\n context.triggerRef?.current?.focus();\n };\n\n if (isVisible) {\n return (\n <TelegraphMenu.Button\n type=\"button\"\n onSelect={handleSelection}\n onKeyDown={handleSelection}\n // Force null if selected equals null so we\n // can override the icon of the button\n selected={selected === null ? null : selected ?? isSelected}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n // Accessibility attributes\n role=\"option\"\n aria-selected={isSelected ? \"true\" : \"false\"}\n // Custom attributes\n data-tgph-combobox-option\n data-tgph-combobox-option-focused={isFocused}\n data-tgph-combobox-option-value={value}\n data-tgph-combobox-option-label={label}\n {...props}\n >\n {label || value}\n </TelegraphMenu.Button>\n );\n }\n};\n\ntype SearchProps = TgphComponentProps<typeof TelegraphInput> & {\n label?: string;\n};\n\nconst Search = ({\n label = \"Search\",\n placeholder = \"Search\",\n tgphRef,\n ...props\n}: SearchProps) => {\n const id = React.useId();\n const context = React.useContext(ComboboxContext);\n const composedRef = useComposedRefs(tgphRef, context.searchRef);\n\n React.useEffect(() => {\n const handleSearchKeyDown = (event: KeyboardEvent) => {\n if (FIRST_KEYS.includes(event.key)) {\n context.contentRef?.current?.focus({ preventScroll: true });\n }\n\n if (event.key === \"Escape\") {\n context.setOpen(false);\n }\n\n event.stopPropagation();\n };\n\n const searchInput = context.searchRef?.current;\n\n if (searchInput) {\n searchInput.addEventListener(\"keydown\", handleSearchKeyDown);\n return () => {\n searchInput.removeEventListener(\"keydown\", handleSearchKeyDown);\n };\n }\n }, [context]);\n\n return (\n <Box borderBottom=\"px\" px=\"1\" pb=\"1\">\n <VisuallyHidden.Root>\n <Text as=\"label\" htmlFor={id}>\n {label}\n </Text>\n </VisuallyHidden.Root>\n <TelegraphInput\n id={id}\n variant=\"ghost\"\n placeholder={placeholder}\n value={context.searchQuery}\n onChange={(event: React.ChangeEvent<HTMLInputElement>) => {\n context?.setSearchQuery?.(event.target.value);\n }}\n LeadingComponent={<Icon icon={Lucide.Search} alt=\"Search Icon\" />}\n TrailingComponent={\n context?.searchQuery && context?.searchQuery?.length > 0 ? (\n <TelegraphButton\n as={motion.button}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n variant=\"ghost\"\n color=\"gray\"\n icon={{ icon: Lucide.X, alt: \"Clear Search Query\" }}\n onClick={() => context.setSearchQuery?.(\"\")}\n />\n ) : null\n }\n autoFocus\n data-tgph-combobox-search\n aria-controls={context.contentId}\n {...props}\n tgphRef={composedRef}\n />\n </Box>\n );\n};\n\ntype EmptyProps<T extends TgphElement> = TgphComponentProps<typeof Stack<T>> & {\n icon?: TgphComponentProps<typeof Icon> | null;\n message?: string | null;\n};\n\nconst Empty = <T extends TgphElement>({\n icon = { icon: Lucide.Search, alt: \"Search Icon\" },\n message = \"No results found\",\n children,\n ...props\n}: EmptyProps<T>) => {\n const context = React.useContext(ComboboxContext);\n const [isVisible, setIsVisible] = React.useState(false);\n\n React.useEffect(() => {\n const options = context.contentRef?.current?.querySelectorAll(\n \"[data-tgph-combobox-option]\",\n );\n\n if (options?.length === 0) {\n setIsVisible(true);\n } else {\n setIsVisible(false);\n }\n }, [context.searchQuery, context.contentRef, children]);\n\n if (isVisible) {\n return (\n <Stack\n as={motion.div}\n initial={{ opacity: 0, scale: 0.8 }}\n animate={{ opacity: 1, scale: 1 }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n gap=\"1\"\n align=\"center\"\n justify=\"center\"\n w=\"full\"\n my=\"8\"\n data-tgph-combobox-empty\n {...props}\n >\n {icon === null ? <></> : <Icon {...icon} />}\n {message === null ? <></> : <Text as=\"span\">{message}</Text>}\n </Stack>\n );\n }\n};\n\ntype CreateProps<T extends TgphElement> = TgphComponentProps<\n typeof TelegraphMenu.Button<T>\n> & {\n leadingText?: string;\n values?: Array<Option>;\n onCreate?: (value: Option) => void;\n};\n\nconst Create = <T extends TgphElement>({\n leadingText = \"Create\",\n values,\n onCreate,\n selected = null,\n ...props\n}: CreateProps<T>) => {\n const context = React.useContext(ComboboxContext);\n\n const variableAlreadyExists = React.useCallback(\n (searchQuery: string | undefined) => {\n if (!values || values?.length === 0) return false;\n return values.some((v) => v.value === searchQuery);\n },\n [values],\n );\n\n if (context.searchQuery && !variableAlreadyExists(context.searchQuery)) {\n return (\n <Option\n leadingIcon={{ icon: Lucide.Plus, \"aria-hidden\": true }}\n mx=\"1\"\n value={context.searchQuery}\n label={`${leadingText} \"${context.searchQuery}\"`}\n selected={selected}\n onSelect={() => {\n if (onCreate && context.value && context.searchQuery) {\n if (isSingleSelect(context.value)) {\n onCreate({ value: context.searchQuery });\n }\n\n if (isMultiSelect(context.value)) {\n onCreate({ value: context.searchQuery });\n }\n\n context.setSearchQuery?.(\"\");\n }\n }}\n {...props}\n />\n );\n }\n};\n\nconst Combobox = {} as {\n Root: typeof Root;\n Trigger: typeof Trigger;\n Content: typeof Content;\n Options: typeof Options;\n Option: typeof Option;\n Search: typeof Search;\n Empty: typeof Empty;\n Create: typeof Create;\n};\n\nObject.assign(Combobox, {\n Root,\n Trigger,\n Content,\n Options,\n Option,\n Search,\n Empty,\n Create,\n});\n\nexport { Combobox };\n"],"names":["isMultiSelect","value","isSingleSelect","FIRST_KEYS","LAST_KEYS","SELECT_KEYS","ComboboxContext","React","Root","modal","closeOnSelect","openProp","onOpenChangeProp","defaultOpenProp","onValueChange","errored","placeholder","layout","props","contentId","triggerId","triggerRef","searchRef","contentRef","searchQuery","setSearchQuery","open","setOpen","useControllableState","onOpenToggle","prevOpen","jsx","TelegraphMenu","TriggerTag","label","context","jsxs","Tag","motion","Lucide","event","newValue","v","TriggerValue","size","height","contextValue","truncatedLength","truncatedLengthStringArray","Stack","TelegraphButton","AnimatePresence","i","RefToTgphRef","Text","n","Box","_a","_b","Trigger","getAriaLabelString","_c","Content","tgphRef","style","children","hasInteractedOutside","composedRef","useComposedRefs","internalContentRef","setHeight","initialAnimationComplete","setInitialAnimationComplete","setHeightFromContent","element","rect","observer","entries","entry","options","_d","Options","Option","selected","onSelect","isFocused","setIsFocused","isVisible","isSelected","handleSelection","keyboardEvent","Search","id","handleSearchKeyDown","searchInput","VisuallyHidden","TelegraphInput","Icon","Empty","icon","message","setIsVisible","Fragment","Create","leadingText","values","onCreate","variableAlreadyExists","Combobox"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/Combobox/Combobox.constants.ts","../../src/Combobox/Combobox.helpers.ts","../../src/Combobox/Combobox.tsx"],"sourcesContent":["export const TRIGGER_MIN_HEIGHT = {\n \"0\": \"5\",\n \"1\": \"6\",\n \"2\": \"8\",\n \"3\": \"10\",\n};\n","export type Option = { value: string; label?: string };\nexport const isMultiSelect = (\n value: Option | Array<Option>,\n): value is Array<Option> => {\n return Array.isArray(value);\n};\n\nexport const isSingleSelect = (\n value: Option | Array<Option>,\n): value is Option => {\n return typeof value === \"object\" && !Array.isArray(value);\n};\n","import { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHidden from \"@radix-ui/react-visually-hidden\";\nimport { Button as TelegraphButton } from \"@telegraph/button\";\nimport { useComposedRefs } from \"@telegraph/compose-refs\";\nimport {\n RefToTgphRef,\n type TgphComponentProps,\n type TgphElement,\n} from \"@telegraph/helpers\";\nimport { Icon, Lucide } from \"@telegraph/icon\";\nimport { Input as TelegraphInput } from \"@telegraph/input\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { Menu as TelegraphMenu } from \"@telegraph/menu\";\nimport { Tag } from \"@telegraph/tag\";\nimport { Text } from \"@telegraph/typography\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport React from \"react\";\n\nimport { TRIGGER_MIN_HEIGHT } from \"./Combobox.constants\";\nimport { type Option, isMultiSelect, isSingleSelect } from \"./Combobox.helpers\";\n\nconst FIRST_KEYS = [\"ArrowDown\", \"PageUp\", \"Home\"];\nconst LAST_KEYS = [\"ArrowUp\", \"PageDown\", \"End\"];\nconst SELECT_KEYS = [\"Enter\", \" \"];\n\ntype RootProps = (\n | {\n value?: Array<Option>;\n onValueChange?: (value: Array<Option>) => void;\n layout?: \"truncate\" | \"wrap\";\n }\n | {\n value?: Option;\n onValueChange?: (value: Option) => void;\n layout?: never;\n }\n) & {\n open?: boolean;\n defaultOpen?: boolean;\n errored?: boolean;\n placeholder?: string;\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n closeOnSelect?: boolean;\n children?: React.ReactNode;\n};\n\nconst ComboboxContext = React.createContext<\n Omit<RootProps, \"children\"> & {\n contentId: string;\n triggerId: string;\n open: boolean;\n setOpen: (open: boolean) => void;\n onOpenToggle: () => void;\n searchQuery?: string;\n setSearchQuery?: (query: string) => void;\n triggerRef?: React.RefObject<HTMLDivElement>;\n searchRef?: React.RefObject<HTMLInputElement>;\n contentRef?: React.RefObject<HTMLDivElement>;\n }\n>({\n onValueChange: () => {},\n contentId: \"\",\n triggerId: \"\",\n open: false,\n setOpen: () => {},\n onOpenToggle: () => {},\n});\n\nconst Root = ({\n modal = true,\n closeOnSelect = true,\n open: openProp,\n onOpenChange: onOpenChangeProp,\n defaultOpen: defaultOpenProp,\n value,\n onValueChange,\n errored,\n placeholder,\n layout,\n ...props\n}: RootProps) => {\n const contentId = React.useId();\n const triggerId = React.useId();\n const triggerRef = React.useRef(null);\n const searchRef = React.useRef(null);\n const contentRef = React.useRef<HTMLDivElement>(null);\n\n const [searchQuery, setSearchQuery] = React.useState<string>(\"\");\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpenProp,\n onChange: onOpenChangeProp,\n });\n\n const onOpenToggle = React.useCallback(() => {\n setOpen((prevOpen) => !prevOpen);\n }, [setOpen]);\n\n React.useEffect(() => {\n // If the combobox is closed clear\n // the search query\n if (!open) {\n setSearchQuery(\"\");\n }\n }, [open]);\n\n return (\n <ComboboxContext.Provider\n value={{\n contentId,\n triggerId,\n value,\n onValueChange,\n placeholder,\n open,\n setOpen,\n onOpenToggle,\n closeOnSelect,\n searchQuery,\n setSearchQuery,\n triggerRef,\n searchRef,\n contentRef,\n errored,\n layout,\n }}\n >\n <TelegraphMenu.Root\n open={open}\n onOpenChange={setOpen}\n modal={modal}\n {...props}\n />\n </ComboboxContext.Provider>\n );\n};\n\ntype TriggerTagProps = {\n value: string;\n label?: string;\n};\n\nconst TriggerTag = ({ label, value, ...props }: TriggerTagProps) => {\n const context = React.useContext(ComboboxContext);\n\n return (\n <Tag.Root\n size=\"1\"\n as={motion.span}\n initial={{ opacity: 0, transform: \"scale(0.8)\" }}\n animate={{ opacity: 1, transform: \"scale(1)\" }}\n exit={{ opacity: 0, transform: \"scale(0.5)\" }}\n layout=\"position\"\n transition={{\n duration: 0.2,\n type: \"spring\",\n bounce: 0,\n layout: {\n duration: 0.05,\n type: \"spring\",\n bounce: 0,\n },\n }}\n {...props}\n >\n <Tag.Text>{label || value}</Tag.Text>\n <Tag.Button\n icon={{ icon: Lucide.X, alt: `Remove ${value}` }}\n onClick={(event: React.MouseEvent) => {\n const onValueChange = context.onValueChange as (\n v: Array<Option>,\n ) => void;\n const contextValue = context.value as Array<Option>;\n const newValue = contextValue.filter((v) => v.value !== value);\n onValueChange(newValue);\n // Stop click event from bubbling up\n event.stopPropagation();\n // Stop the button \"submit\" action from triggering\n event.preventDefault();\n }}\n />\n </Tag.Root>\n );\n};\n\nconst TriggerValue = () => {\n const context = React.useContext(ComboboxContext);\n\n if (context.value && isMultiSelect(context.value)) {\n const contextValue = context.value as Array<Option>;\n const layout = context.layout || \"truncate\";\n const truncatedLength = contextValue.length - 2;\n const truncatedLengthStringArray = truncatedLength.toString().split(\"\");\n\n if (contextValue.length === 0) {\n return (\n <TelegraphButton.Text color=\"gray\">\n {context.placeholder}\n </TelegraphButton.Text>\n );\n }\n\n return (\n <Stack\n gap=\"1\"\n w=\"full\"\n wrap={layout === \"wrap\" ? \"wrap\" : \"nowrap\"}\n align=\"center\"\n style={{\n position: \"relative\",\n flexGrow: 1,\n }}\n >\n <AnimatePresence initial={false} mode=\"popLayout\">\n {contextValue.map((v, i) => {\n if ((layout === \"truncate\" && i <= 1) || layout === \"wrap\") {\n return (\n <RefToTgphRef key={v.value}>\n <TriggerTag {...v} />\n </RefToTgphRef>\n );\n }\n })}\n </AnimatePresence>\n <AnimatePresence>\n {layout === \"truncate\" && contextValue.length > 2 && (\n <Stack\n as={motion.div}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n h=\"full\"\n pr=\"1\"\n pl=\"8\"\n align=\"center\"\n aria-label={`${truncatedLength} more selected`}\n style={{\n position: \"absolute\",\n right: 0,\n backgroundImage:\n \"linear-gradient(to left, var(--tgph-surface-1) 0 60%, transparent 90% 100%)\",\n }}\n key=\"truncated text\"\n >\n <Text as=\"span\" size=\"1\" style={{ whiteSpace: \"nowrap\" }}>\n +\n <AnimatePresence mode=\"wait\" initial={false}>\n {truncatedLengthStringArray.map((n) => (\n <Box\n as={motion.span}\n w=\"2\"\n display=\"inline-block\"\n initial={{\n opacity: 0.5,\n }}\n animate={{\n opacity: 1,\n }}\n exit={{\n opacity: 0.5,\n }}\n transition={{ duration: 0.1, type: \"spring\", bounce: 0 }}\n key={n}\n >\n {n}\n </Box>\n ))}\n </AnimatePresence>{\" \"}\n more\n </Text>\n </Stack>\n )}\n </AnimatePresence>\n </Stack>\n );\n }\n\n return (\n <TelegraphButton.Text color={!context.value ? \"gray\" : \"default\"}>\n {context?.value?.label || context?.value?.value || context.placeholder}\n </TelegraphButton.Text>\n );\n};\n\ntype TriggerProps = React.ComponentProps<typeof TelegraphMenu.Trigger> & {\n placeholder?: string;\n size?: TgphComponentProps<typeof TelegraphButton.Root>[\"size\"];\n};\n\nconst Trigger = ({ size = \"2\", ...props }: TriggerProps) => {\n const context = React.useContext(ComboboxContext);\n\n const getAriaLabelString = React.useCallback(() => {\n if (!context.value) return context.placeholder;\n if (isSingleSelect(context.value)) {\n return (\n context.value?.label || context.value?.value || context.placeholder\n );\n } else {\n return (\n context.value?.map((v) => v.label).join(\", \") || context.placeholder\n );\n }\n }, [context.value, context.placeholder]);\n\n return (\n <TelegraphMenu.Trigger\n {...props}\n asChild\n onClick={(event: React.MouseEvent) => {\n event.preventDefault();\n context.onOpenToggle();\n context.triggerRef?.current?.focus();\n }}\n onKeyDown={(event: React.KeyboardEvent) => {\n // Lets the user tab in and out of the combobox as usual\n if (event.key === \"Tab\") {\n event.stopPropagation();\n return;\n }\n if (SELECT_KEYS.includes(event.key)) {\n event.preventDefault();\n return;\n }\n\n if (event.key === \"ArrowDown\") {\n context.onOpenToggle();\n return;\n }\n }}\n tgphRef={context.triggerRef}\n >\n <TelegraphButton.Root\n id={context.triggerId}\n bg=\"surface-1\"\n variant=\"outline\"\n align=\"center\"\n minH={TRIGGER_MIN_HEIGHT[size]}\n h=\"full\"\n w=\"full\"\n py=\"1\"\n size={size}\n color={context.errored ? \"red\" : \"gray\"}\n justify=\"space-between\"\n // Accessibility attributes\n role=\"combobox\"\n aria-label={getAriaLabelString()}\n aria-controls={context.contentId}\n aria-expanded={context.open}\n aria-haspopup=\"listbox\"\n // Custom attributes\n data-tgph-combobox-trigger\n data-tgph-comobox-trigger-open={context.open}\n >\n <TriggerValue />\n <TelegraphButton.Icon\n as={motion.div}\n icon={Lucide.ChevronDown}\n animate={{ rotate: context.open ? \"180deg\" : \"0deg\" }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n aria-hidden\n />\n </TelegraphButton.Root>\n </TelegraphMenu.Trigger>\n );\n};\n\ntype ContentProps<T extends TgphElement> = TgphComponentProps<\n typeof TelegraphMenu.Content<T>\n>;\n\nconst Content = <T extends TgphElement>({\n tgphRef,\n style,\n children,\n ...props\n}: ContentProps<T>) => {\n const context = React.useContext(ComboboxContext);\n const hasInteractedOutside = React.useRef(false);\n const composedRef = useComposedRefs<unknown>(tgphRef, context.contentRef);\n\n const internalContentRef = React.useRef(null);\n\n const [height, setHeight] = React.useState(0);\n const [initialAnimationComplete, setInitialAnimationComplete] =\n React.useState(false);\n\n const setHeightFromContent = React.useCallback(\n (element: Element) => {\n // Set the initial height of the content after the animation completes\n const rect = element.getBoundingClientRect();\n if (rect) {\n setHeight(rect.height);\n }\n\n if (!initialAnimationComplete) {\n setInitialAnimationComplete(true);\n }\n },\n [initialAnimationComplete],\n );\n\n React.useEffect(() => {\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const element = entry.target;\n setHeightFromContent(element);\n }\n });\n // Attatch the observer once the initial animation completes\n // and the content ref is available\n if (internalContentRef.current && initialAnimationComplete) {\n observer.observe(internalContentRef.current);\n }\n\n return () => observer.disconnect();\n }, [initialAnimationComplete, setHeightFromContent]);\n\n // Reset the animation complete state when the combobox is closed\n React.useEffect(() => {\n if (initialAnimationComplete === true && context.open === false) {\n setInitialAnimationComplete(false);\n }\n }, [context.open, initialAnimationComplete]);\n\n return (\n <TelegraphMenu.Content\n as={motion.div}\n mt=\"1\"\n initial={{\n opacity: 0,\n scale: 0.8,\n height: \"auto\",\n }}\n animate={{\n opacity: 1,\n scale: 1,\n // Set height based on the internalContentRef so that\n // we get smooth animations when the content changes\n minHeight: height ? `${height}px` : \"0\",\n }}\n exit={{ opacity: 0, scale: 0 }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n onAnimationComplete={() => {\n // Set height when the initial animation for\n // displaying the content completes\n if (!initialAnimationComplete && internalContentRef) {\n const element = internalContentRef.current as unknown as Element;\n setHeightFromContent(element);\n }\n }}\n onCloseAutoFocus={(event: Event) => {\n if (!hasInteractedOutside.current) context.triggerRef?.current?.focus();\n hasInteractedOutside.current = false;\n\n event.preventDefault();\n }}\n onKeyDown={(event: React.KeyboardEvent) => {\n // If the first option is focused and the user presses the up\n // arrow key, focus the search input\n const options = context.contentRef?.current?.querySelectorAll(\n \"[data-tgph-combobox-option]\",\n );\n\n if (\n document.activeElement === options?.[0] &&\n LAST_KEYS.includes(event.key)\n ) {\n context.searchRef?.current?.focus();\n }\n\n // Close the combobox if the user presses the escape key\n if (event.key === \"Escape\") {\n context.setOpen(false);\n }\n\n event.stopPropagation();\n }}\n bg=\"surface-1\"\n style={{\n width: \"var(--tgph-comobobox-trigger-width)\",\n ...style,\n ...{\n \"--tgph-comobobox-content-transform-origin\":\n \"var(--radix-popper-transform-origin)\",\n \"--tgph-combobox-content-available-width\":\n \"var(--radix-popper-available-width)\",\n \"--tgph-combobox-content-available-height\":\n \"calc(var(--radix-popper-available-height) - var(--tgph-spacing-8))\",\n \"--tgph-comobobox-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--tgph-combobox-trigger-height\": \"var(--radix-popper-anchor-height)\",\n },\n }}\n {...props}\n tgphRef={composedRef}\n data-tgph-combobox-content\n data-tgph-combobox-content-open={initialAnimationComplete}\n // Cancel out accessibility attirbutes related to aria menu\n role={undefined}\n aria-orientation={undefined}\n >\n <Stack direction=\"column\" gap=\"1\" tgphRef={internalContentRef}>\n {children}\n </Stack>\n </TelegraphMenu.Content>\n );\n};\n\ntype OptionsProps<T extends TgphElement> = TgphComponentProps<typeof Stack<T>>;\n\nconst Options = <T extends TgphElement>({ ...props }: OptionsProps<T>) => {\n const context = React.useContext(ComboboxContext);\n return (\n <Stack\n id={context.contentId}\n direction=\"column\"\n gap=\"1\"\n style={{\n overflowY: \"auto\",\n // Available Height - Padding from edge of screen\n maxHeight:\n \"calc(var(--tgph-combobox-content-available-height) - var(--tgph-spacing-12))\",\n }}\n // Accessibility attributes\n role=\"listbox\"\n {...props}\n />\n );\n};\n\ntype OptionProps<T extends TgphElement> = TgphComponentProps<\n typeof TelegraphMenu.Button<T>\n> & {\n value: string;\n label?: string;\n selected?: boolean | null;\n};\n\nconst Option = <T extends TgphElement>({\n value,\n label,\n selected,\n onSelect,\n ...props\n}: OptionProps<T>) => {\n const context = React.useContext(ComboboxContext);\n const [isFocused, setIsFocused] = React.useState(false);\n const contextValue = context.value ?? [];\n\n const isVisible = isMultiSelect(contextValue)\n ? !context.searchQuery ||\n value.toLowerCase().includes(context.searchQuery.toLowerCase())\n : !context.searchQuery ||\n value.toLowerCase().includes(context.searchQuery.toLowerCase());\n\n const isSelected = isMultiSelect(contextValue)\n ? contextValue.some((v) => v.value === value)\n : contextValue.value === value;\n\n const handleSelection = (event: Event | React.KeyboardEvent) => {\n // Don't do anything if the key isn't a selection key\n const keyboardEvent = event as React.KeyboardEvent;\n if (keyboardEvent.key && !SELECT_KEYS.includes(keyboardEvent.key)) return;\n\n // Don't bubble up the event\n event.stopPropagation();\n event.preventDefault();\n\n if (context.closeOnSelect === true) {\n context.setOpen(false);\n }\n\n if (onSelect) {\n // Need to convert to non keyboard type event\n // since onSelect is expecting a mouse event\n // and we've handled the keyboard event already\n const onSelectEvent = event as unknown as Event;\n return onSelect(onSelectEvent);\n }\n\n if (isMultiSelect(contextValue)) {\n const onValueChange = context.onValueChange as (v: Array<Option>) => void;\n\n const newValue = isSelected\n ? contextValue.filter((v) => v.value !== value)\n : [...contextValue, { value, label }];\n\n onValueChange(newValue);\n } else if (isSingleSelect(contextValue)) {\n const onValueChange = context.onValueChange as (v: Option) => void;\n onValueChange({ value, label });\n }\n\n context.triggerRef?.current?.focus();\n };\n\n if (isVisible) {\n return (\n <TelegraphMenu.Button\n type=\"button\"\n onSelect={handleSelection}\n onKeyDown={handleSelection}\n // Force null if selected equals null so we\n // can override the icon of the button\n selected={selected === null ? null : selected ?? isSelected}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n // Accessibility attributes\n role=\"option\"\n aria-selected={isSelected ? \"true\" : \"false\"}\n // Custom attributes\n data-tgph-combobox-option\n data-tgph-combobox-option-focused={isFocused}\n data-tgph-combobox-option-value={value}\n data-tgph-combobox-option-label={label}\n {...props}\n >\n {label || value}\n </TelegraphMenu.Button>\n );\n }\n};\n\ntype SearchProps = TgphComponentProps<typeof TelegraphInput> & {\n label?: string;\n};\n\nconst Search = ({\n label = \"Search\",\n placeholder = \"Search\",\n tgphRef,\n ...props\n}: SearchProps) => {\n const id = React.useId();\n const context = React.useContext(ComboboxContext);\n const composedRef = useComposedRefs(tgphRef, context.searchRef);\n\n React.useEffect(() => {\n const handleSearchKeyDown = (event: KeyboardEvent) => {\n if (FIRST_KEYS.includes(event.key)) {\n context.contentRef?.current?.focus({ preventScroll: true });\n }\n\n if (event.key === \"Escape\") {\n context.setOpen(false);\n }\n\n event.stopPropagation();\n };\n\n const searchInput = context.searchRef?.current;\n\n if (searchInput) {\n searchInput.addEventListener(\"keydown\", handleSearchKeyDown);\n return () => {\n searchInput.removeEventListener(\"keydown\", handleSearchKeyDown);\n };\n }\n }, [context]);\n\n return (\n <Box borderBottom=\"px\" px=\"1\" pb=\"1\">\n <VisuallyHidden.Root>\n <Text as=\"label\" htmlFor={id}>\n {label}\n </Text>\n </VisuallyHidden.Root>\n <TelegraphInput\n id={id}\n variant=\"ghost\"\n placeholder={placeholder}\n value={context.searchQuery}\n onChange={(event: React.ChangeEvent<HTMLInputElement>) => {\n context?.setSearchQuery?.(event.target.value);\n }}\n LeadingComponent={<Icon icon={Lucide.Search} alt=\"Search Icon\" />}\n TrailingComponent={\n context?.searchQuery && context?.searchQuery?.length > 0 ? (\n <TelegraphButton\n as={motion.button}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n variant=\"ghost\"\n color=\"gray\"\n icon={{ icon: Lucide.X, alt: \"Clear Search Query\" }}\n onClick={() => context.setSearchQuery?.(\"\")}\n />\n ) : null\n }\n autoFocus\n data-tgph-combobox-search\n aria-controls={context.contentId}\n {...props}\n tgphRef={composedRef}\n />\n </Box>\n );\n};\n\ntype EmptyProps<T extends TgphElement> = TgphComponentProps<typeof Stack<T>> & {\n icon?: TgphComponentProps<typeof Icon> | null;\n message?: string | null;\n};\n\nconst Empty = <T extends TgphElement>({\n icon = { icon: Lucide.Search, alt: \"Search Icon\" },\n message = \"No results found\",\n children,\n ...props\n}: EmptyProps<T>) => {\n const context = React.useContext(ComboboxContext);\n const [isVisible, setIsVisible] = React.useState(false);\n\n React.useEffect(() => {\n const options = context.contentRef?.current?.querySelectorAll(\n \"[data-tgph-combobox-option]\",\n );\n\n if (options?.length === 0) {\n setIsVisible(true);\n } else {\n setIsVisible(false);\n }\n }, [context.searchQuery, context.contentRef, children]);\n\n if (isVisible) {\n return (\n <Stack\n as={motion.div}\n initial={{ opacity: 0, scale: 0.8 }}\n animate={{ opacity: 1, scale: 1 }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n gap=\"1\"\n align=\"center\"\n justify=\"center\"\n w=\"full\"\n my=\"8\"\n data-tgph-combobox-empty\n {...props}\n >\n {icon === null ? <></> : <Icon {...icon} />}\n {message === null ? <></> : <Text as=\"span\">{message}</Text>}\n </Stack>\n );\n }\n};\n\ntype CreateProps<T extends TgphElement> = TgphComponentProps<\n typeof TelegraphMenu.Button<T>\n> & {\n leadingText?: string;\n values?: Array<Option>;\n onCreate?: (value: Option) => void;\n};\n\nconst Create = <T extends TgphElement>({\n leadingText = \"Create\",\n values,\n onCreate,\n selected = null,\n ...props\n}: CreateProps<T>) => {\n const context = React.useContext(ComboboxContext);\n\n const variableAlreadyExists = React.useCallback(\n (searchQuery: string | undefined) => {\n if (!values || values?.length === 0) return false;\n return values.some((v) => v.value === searchQuery);\n },\n [values],\n );\n\n if (context.searchQuery && !variableAlreadyExists(context.searchQuery)) {\n return (\n <Option\n leadingIcon={{ icon: Lucide.Plus, \"aria-hidden\": true }}\n mx=\"1\"\n value={context.searchQuery}\n label={`${leadingText} \"${context.searchQuery}\"`}\n selected={selected}\n onSelect={() => {\n if (onCreate && context.value && context.searchQuery) {\n if (isSingleSelect(context.value)) {\n onCreate({ value: context.searchQuery });\n }\n\n if (isMultiSelect(context.value)) {\n onCreate({ value: context.searchQuery });\n }\n\n context.setSearchQuery?.(\"\");\n }\n }}\n {...props}\n />\n );\n }\n};\n\nconst Combobox = {} as {\n Root: typeof Root;\n Trigger: typeof Trigger;\n Content: typeof Content;\n Options: typeof Options;\n Option: typeof Option;\n Search: typeof Search;\n Empty: typeof Empty;\n Create: typeof Create;\n};\n\nObject.assign(Combobox, {\n Root,\n Trigger,\n Content,\n Options,\n Option,\n Search,\n Empty,\n Create,\n});\n\nexport { Combobox };\n"],"names":["TRIGGER_MIN_HEIGHT","isMultiSelect","value","isSingleSelect","FIRST_KEYS","LAST_KEYS","SELECT_KEYS","ComboboxContext","React","Root","modal","closeOnSelect","openProp","onOpenChangeProp","defaultOpenProp","onValueChange","errored","placeholder","layout","props","contentId","triggerId","triggerRef","searchRef","contentRef","searchQuery","setSearchQuery","open","setOpen","useControllableState","onOpenToggle","prevOpen","jsx","TelegraphMenu","TriggerTag","label","context","jsxs","Tag","motion","Lucide","event","newValue","v","TriggerValue","contextValue","truncatedLength","truncatedLengthStringArray","TelegraphButton","Stack","AnimatePresence","i","RefToTgphRef","Text","n","Box","_b","Trigger","size","getAriaLabelString","_a","_c","Content","tgphRef","style","children","hasInteractedOutside","composedRef","useComposedRefs","internalContentRef","height","setHeight","initialAnimationComplete","setInitialAnimationComplete","setHeightFromContent","element","rect","observer","entries","entry","options","_d","Options","Option","selected","onSelect","isFocused","setIsFocused","isVisible","isSelected","handleSelection","keyboardEvent","Search","id","handleSearchKeyDown","searchInput","VisuallyHidden","TelegraphInput","Icon","Empty","icon","message","setIsVisible","Fragment","Create","leadingText","values","onCreate","variableAlreadyExists","Combobox"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare const TRIGGER_MIN_HEIGHT: {
2
+ "0": string;
3
+ "1": string;
4
+ "2": string;
5
+ "3": string;
6
+ };
7
+ //# sourceMappingURL=Combobox.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Combobox.constants.d.ts","sourceRoot":"","sources":["../../../src/Combobox/Combobox.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../../src/Combobox/Combobox.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../../src/Combobox/Combobox.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telegraph/combobox",
3
- "version": "0.0.19",
3
+ "version": "0.0.21",
4
4
  "description": "A styled menu, triggered by a Select, that combines an Input and Single- or Multi-select.",
5
5
  "repository": "https://github.com/knocklabs/telegraph/tree/main/packages/combobox",
6
6
  "author": "@knocklabs",
@@ -34,15 +34,15 @@
34
34
  "dependencies": {
35
35
  "@radix-ui/react-use-controllable-state": "^1.1.0",
36
36
  "@radix-ui/react-visually-hidden": "^1.1.0",
37
- "@telegraph/button": "^0.0.38",
37
+ "@telegraph/button": "^0.0.40",
38
38
  "@telegraph/compose-refs": "^0.0.2",
39
39
  "@telegraph/helpers": "^0.0.4",
40
- "@telegraph/icon": "^0.0.24",
41
- "@telegraph/input": "^0.0.17",
42
- "@telegraph/layout": "^0.0.23",
43
- "@telegraph/menu": "^0.0.19",
44
- "@telegraph/tag": "^0.0.39",
45
- "@telegraph/typography": "^0.0.22",
40
+ "@telegraph/icon": "^0.0.26",
41
+ "@telegraph/input": "^0.0.19",
42
+ "@telegraph/layout": "^0.0.25",
43
+ "@telegraph/menu": "^0.0.21",
44
+ "@telegraph/tag": "^0.0.41",
45
+ "@telegraph/typography": "^0.0.24",
46
46
  "framer-motion": "^11.1.9"
47
47
  },
48
48
  "devDependencies": {