import type { CSSProperties, ReactNode, Ref } from 'react' import { IconCircleCheckFilled } from '@tabler/icons-react' import { useWorkspaceLayoutCtx } from '@/client/features/workspace/WorkspaceLayoutContext' import { BottomPanel } from '@/client/components/shared/BottomPanel' import { cn } from '@/client/lib/cn' import { getWorkspaceThemeStyle, usePreloadWorkspaceFonts } from '@/client/runtime/workspace-theme' import { COLOR_THEMES, type ColorThemeConfig, FONT_THEMES, RADIUS_THEMES, type RadiusThemeConfig, resolveWorkspaceTheme } from '@/lib/themes' import type { ColorTheme, FontTheme, RadiusTheme, WorkspaceTheme } from '@/lib/types' const FONT_OPTIONS = Object.entries(FONT_THEMES) as [FontTheme, (typeof FONT_THEMES)[FontTheme]][] const COLOR_OPTIONS = Object.entries(COLOR_THEMES) as [ColorTheme, ColorThemeConfig][] const RADIUS_OPTIONS = Object.entries(RADIUS_THEMES) as [RadiusTheme, RadiusThemeConfig][] type CustomizeOptionGroupProps = { children: ReactNode className?: string gridClassName?: string label: string } function CustomizeOptionGroup({ children, className, gridClassName, label }: CustomizeOptionGroupProps) { return (
{label}