"use client" import * as React from "react" import { useTheme } from "@exxatdesignux/ui/hooks/use-color-scheme" import { FieldGroup } from "@/components/ui/field" import { RadioGroup, RadioGroupItem, RadioGroupLabel } from "@/components/ui/radio-group" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select" import { Button } from "@/components/ui/button" import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog" import { SelectionTileGrid } from "@/components/ui/selection-tile-grid" import { useAppTheme, type Brand, type TextSizePreference } from "@/hooks/use-app-theme" import { useDashboardView, type DashboardView } from "@/contexts/dashboard-view-context" import { useChartVariant, type ChartVariant } from "@/contexts/chart-variant-context" import { SettingsFormRow } from "@/components/settings-form-row" import { BrandColorPicker } from "@/components/brand-color-picker" import { ExxatProductLogo, ExxatProductWordmarkEditor } from "@/components/exxat-product-logo" import { useProduct, syncActiveProductThemeFromStore } from "@/contexts/product-context" import { useProductSwitch } from "@/contexts/product-route-sync" import { DEFAULT_CUSTOM_PRODUCT_BRAND, type CustomProductBrand, type Product, isCustomProductPlaceholder, isListedCustomProduct } from "@/stores/app-store" import { brandForProduct, brandPreviewPanelSurfaces, customProductBrandConfig, getProductBrand, productBrandLabel, } from "@/lib/product-brand" import { normalizeBrandAccentColor } from "@/lib/brand-accent-color" import { brandColorsEquivalent } from "@/lib/brand-color-match" import { validateCustomProductSuffix, customSuffixCollidesWithBuiltInProduct } from "@/lib/product-routing" import { isProductRefHidden, isStartupProductRef, productRefKey, type ProductRef, } from "@/lib/product-ref" import { Tip } from "@/components/ui/tip" import { downloadProductScaffold, downloadShippedTenantCatalog, isBuilderDevSyncEnvironment, tenantRecordFromCustomBrand, } from "@exxatdesignux/product-framework" import { useProductAuthoringEnabled } from "@exxatdesignux/ui/components/shell" import { cn } from "@/lib/utils" export type SettingsAppearanceMode = "products-only" | "display-only" | "all" function RadioRow({ value, id, label, iconClass, }: { value: string id: string label: string iconClass?: string }) { return (
{iconClass ? (