import type { CSSProperties, ReactNode } from 'react'; import type { PlatformTheme } from '../../../packages/shared/src/contracts/runtime'; import { UnifiedModal } from '../common/UnifiedModal'; type PlatformAuthModalShellProps = { title: string; platformTheme: PlatformTheme; onClose: () => void; children: ReactNode; closeLabel: string; size?: 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen'; showHeader?: boolean; overlaySpacing?: 'default' | 'none'; zIndexClassName?: string; overlayClassName?: string; overlayStyle?: CSSProperties; authCardClassName?: string; panelClassName?: string; bodyClassName?: string; panelStyle?: CSSProperties; }; function joinClassNames(...classNames: Array) { return classNames.filter(Boolean).join(' '); } /** * 认证入口弹窗共享壳层。 * 这里只统一主题遮罩、auth card、标题栏和关闭按钮,登录 / 邀请码表单状态仍留在各自业务组件。 */ export function PlatformAuthModalShell({ title, platformTheme, onClose, children, closeLabel, size = 'sm', showHeader = true, overlaySpacing = 'default', zIndexClassName = 'z-[120]', overlayClassName, overlayStyle, authCardClassName = 'platform-auth-card !rounded-[2rem] sm:!rounded-[2rem]', panelClassName, bodyClassName = '!p-0', panelStyle, }: PlatformAuthModalShellProps) { return ( {children} ); }