{"version":3,"file":"SelectComponents.cjs","sources":["../../../../../src/components/Select/common/SelectComponents.tsx"],"sourcesContent":["import {\n  ComponentProps,\n  CSSProperties,\n  forwardRef,\n  HTMLAttributes,\n  InputHTMLAttributes,\n  SelectHTMLAttributes,\n} from 'react';\nimport { Content, Root, Trigger } from '@radix-ui/react-popover';\nimport { cn } from '@/lib/cva';\nimport styles from './SelectComponents.module.css';\n\nexport const SelectPopoverRoot = Root;\n\nexport const SelectValue = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => (\n    <div\n      ref={ref}\n      {...props}\n      className={cn(styles['select-value'], className)}\n    />\n  )\n);\nSelectValue.displayName = 'SelectValue';\n\ntype StyledSelectTriggerProps = ComponentProps<typeof Trigger> & {\n  $error: boolean;\n};\n\nexport const StyledSelectTrigger = forwardRef<\n  HTMLButtonElement,\n  StyledSelectTriggerProps\n>(({ $error, className, ...props }, ref) => (\n  <Trigger\n    ref={ref}\n    {...props}\n    className={cn(\n      styles['select-trigger'],\n      $error && styles['select-trigger_error'],\n      className\n    )}\n  />\n));\nStyledSelectTrigger.displayName = 'StyledSelectTrigger';\n\ntype SelectPopoverContentProps = ComponentProps<typeof Content> & {\n  $useFullWidthItems: boolean;\n  $itemCharacterLimit?: string;\n};\n\nexport const SelectPopoverContent = forwardRef<HTMLDivElement, SelectPopoverContentProps>(\n  ({ $useFullWidthItems, $itemCharacterLimit, className, style, ...props }, ref) => (\n    <Content\n      ref={ref}\n      {...props}\n      style={\n        {\n          ...style,\n          '--select-item-character-limit': $itemCharacterLimit,\n        } as CSSProperties\n      }\n      className={cn(\n        styles['select-popover-content'],\n        $useFullWidthItems && styles['select-popover-content_full-width'],\n        className\n      )}\n    />\n  )\n);\nSelectPopoverContent.displayName = 'SelectPopoverContent';\n\ntype SearchBarContainerProps = HTMLAttributes<HTMLDivElement> & {\n  $showSearch: boolean;\n};\n\nexport const SearchBarContainer = forwardRef<HTMLDivElement, SearchBarContainerProps>(\n  ({ $showSearch, className, ...props }, ref) => (\n    <div\n      ref={ref}\n      {...props}\n      className={cn(\n        styles['search-bar-container'],\n        $showSearch && styles['search-bar-container_show-search'],\n        className\n      )}\n    />\n  )\n);\nSearchBarContainer.displayName = 'SearchBarContainer';\n\ntype SearchBarProps = InputHTMLAttributes<HTMLInputElement> & {\n  $showSearch: boolean;\n};\n\nexport const SearchBar = forwardRef<HTMLInputElement, SearchBarProps>(\n  ({ $showSearch, className, ...props }, ref) => (\n    <input\n      ref={ref}\n      {...props}\n      className={cn(\n        styles['search-bar'],\n        $showSearch && styles['search-bar_show-search'],\n        className\n      )}\n    />\n  )\n);\nSearchBar.displayName = 'SearchBar';\n\nexport const SelectList = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => (\n    <div\n      ref={ref}\n      {...props}\n      className={cn(styles['select-list'], className)}\n    />\n  )\n);\nSelectList.displayName = 'SelectList';\n\ntype SelectListContentProps = HTMLAttributes<HTMLDivElement> & {\n  $maxHeight?: string;\n};\n\nexport const SelectListContent = forwardRef<HTMLDivElement, SelectListContentProps>(\n  ({ $maxHeight, className, style, ...props }, ref) => (\n    <div\n      ref={ref}\n      {...props}\n      style={\n        {\n          ...style,\n          '--select-list-max-height': $maxHeight,\n        } as CSSProperties\n      }\n      className={cn(styles['select-list-content'], className)}\n    />\n  )\n);\nSelectListContent.displayName = 'SelectListContent';\n\nexport const HiddenSelectElement = forwardRef<\n  HTMLSelectElement,\n  SelectHTMLAttributes<HTMLSelectElement>\n>(({ className, ...props }, ref) => (\n  <select\n    ref={ref}\n    {...props}\n    className={cn(styles['hidden-select-element'], className)}\n  />\n));\nHiddenSelectElement.displayName = 'HiddenSelectElement';\n\nexport const SelectGroupContainer = forwardRef<\n  HTMLDivElement,\n  HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n  <div\n    ref={ref}\n    {...props}\n    className={cn(styles['select-group-container'], className)}\n  />\n));\nSelectGroupContainer.displayName = 'SelectGroupContainer';\n\nexport const SelectGroupName = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => (\n    <div\n      ref={ref}\n      {...props}\n      className={cn(styles['select-group-name'], className)}\n    />\n  )\n);\nSelectGroupName.displayName = 'SelectGroupName';\n\nexport const SelectGroupContent = forwardRef<\n  HTMLDivElement,\n  HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n  <div\n    ref={ref}\n    {...props}\n    className={cn(styles['select-group-content'], className)}\n  />\n));\nSelectGroupContent.displayName = 'SelectGroupContent';\n\ntype SelectNoDataContainerProps = HTMLAttributes<HTMLDivElement> & {\n  $clickable: boolean;\n};\n\nexport const SelectNoDataContainer = forwardRef<\n  HTMLDivElement,\n  SelectNoDataContainerProps\n>(({ $clickable, className, ...props }, ref) => (\n  <div\n    ref={ref}\n    {...props}\n    className={cn(\n      styles['select-no-data-container'],\n      $clickable && styles['select-no-data-container_clickable'],\n      className\n    )}\n  />\n));\nSelectNoDataContainer.displayName = 'SelectNoDataContainer';\n\nexport const SelectItemDescriptionText = forwardRef<\n  HTMLDivElement,\n  HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n  <div\n    ref={ref}\n    {...props}\n    className={cn(styles['select-item-description-text'], className)}\n  />\n));\nSelectItemDescriptionText.displayName = 'SelectItemDescriptionText';\n\n// Exposed for InternalSelect's `as`-rendered elements (the search close button\n// rendered as IconButton, and the check icon rendered as Icon) which apply\n// these scoped classes directly rather than through a wrapper component.\nexport const selectStyles = styles;\n"],"names":["Root","forwardRef","jsx","cn","styles","Trigger","Content"],"mappings":"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"}