| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | 
							- import React from 'react'
 - import classNames from '@/utils/classnames'
 - import type { RemixiconComponentType } from '@remixicon/react'
 - import Divider from '../divider'
 - 
 - // Updated generic type to allow enum values
 - type SegmentedControlProps<T extends string | number | symbol> = {
 -   options: { Icon: RemixiconComponentType, text: string, value: T }[]
 -   value: T
 -   onChange: (value: T) => void
 -   className?: string
 - }
 - 
 - export const SegmentedControl = <T extends string | number | symbol>({
 -   options,
 -   value,
 -   onChange,
 -   className,
 - }: SegmentedControlProps<T>): JSX.Element => {
 -   const selectedOptionIndex = options.findIndex(option => option.value === value)
 - 
 -   return (
 -     <div className={classNames(
 -       'flex items-center rounded-lg bg-components-segmented-control-bg-normal gap-x-[1px] p-0.5',
 -       className,
 -     )}>
 -       {options.map((option, index) => {
 -         const { Icon } = option
 -         const isSelected = index === selectedOptionIndex
 -         const isNextSelected = index === selectedOptionIndex - 1
 -         const isLast = index === options.length - 1
 -         return (
 -           <button
 -             type='button'
 -             key={String(option.value)}
 -             className={classNames(
 -               'flex items-center justify-center relative px-2 py-1 rounded-lg gap-x-0.5 group border-0.5 border-transparent',
 -               isSelected
 -                 ? 'border-components-segmented-control-item-active-border bg-components-segmented-control-item-active-bg shadow-xs shadow-shadow-shadow-3'
 -                 : 'hover:bg-state-base-hover',
 -             )}
 -             onClick={() => onChange(option.value)}
 -           >
 -             <span className='flex h-5 w-5 items-center justify-center'>
 -               <Icon className={classNames(
 -                 'w-4 h-4 text-text-tertiary',
 -                 isSelected ? 'text-text-accent-light-mode-only' : 'group-hover:text-text-secondary',
 -               )} />
 -             </span>
 -             <span className={classNames(
 -               'p-0.5 text-text-tertiary system-sm-medium',
 -               isSelected ? 'text-text-accent-light-mode-only' : 'group-hover:text-text-secondary',
 -             )}>
 -               {option.text}
 -             </span>
 -             {!isLast && !isSelected && !isNextSelected && (
 -               <div className='absolute right-[-1px] top-0 flex h-full items-center'>
 -                 <Divider type='vertical' className='mx-0 h-3.5' />
 -               </div>
 -             )}
 -           </button>
 -         )
 -       })}
 -     </div>
 -   )
 - }
 - 
 - export default React.memo(SegmentedControl) as typeof SegmentedControl
 
 
  |