| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- 'use client'
 - import { memo } from 'react'
 - import {
 -   PortalToFollowElem,
 -   PortalToFollowElemContent,
 -   PortalToFollowElemTrigger,
 - } from '@/app/components/base/portal-to-follow-elem'
 - import ParamConfigContent from '@/app/components/base/features/new-feature-panel/text-to-speech/param-config-content'
 - import type { OnFeaturesChange } from '@/app/components/base/features/types'
 - 
 - type VoiceSettingsProps = {
 -   open: boolean
 -   onOpen: (state: any) => void
 -   onChange?: OnFeaturesChange
 -   disabled?: boolean
 -   children?: React.ReactNode
 -   placementLeft?: boolean
 - }
 - const VoiceSettings = ({
 -   open,
 -   onOpen,
 -   onChange,
 -   disabled,
 -   children,
 -   placementLeft = true,
 - }: VoiceSettingsProps) => {
 -   return (
 -     <PortalToFollowElem
 -       open={open}
 -       onOpenChange={onOpen}
 -       placement={placementLeft ? 'left' : 'top'}
 -       offset={{
 -         mainAxis: placementLeft ? 32 : 4,
 -       }}
 -     >
 -       <PortalToFollowElemTrigger className='flex' onClick={() => !disabled && onOpen((open: boolean) => !open)}>
 -         {children}
 -       </PortalToFollowElemTrigger>
 -       <PortalToFollowElemContent style={{ zIndex: 50 }}>
 -         <div className='w-[360px] p-4 bg-components-panel-bg rounded-2xl border-[0.5px] border-components-panel-border shadow-2xl'>
 -           <ParamConfigContent onClose={() => onOpen(false)} onChange={onChange} />
 -         </div>
 -       </PortalToFollowElemContent>
 -     </PortalToFollowElem>
 -   )
 - }
 - export default memo(VoiceSettings)
 
 
  |