import { ToastProvider } from "@tamagui/toast"; import { useContext, useMemo } from "react"; import { type CreateTamaguiProps, TamaguiProvider, type TamaguiProviderProps } from "tamagui"; import type { PropsWithChildren } from "react"; import { CornerSmoothingStyles } from "./cornerSmoothing"; import { FontKnobStyles } from "./FontKnobStyles"; import { PresetContext, type PresetContextValue } from "./PresetContext"; import { defaultPreset } from "./presets"; import { useTheme } from "./useTheme"; // --------------------------------------------------------------------------- // ThemeProviderProps (simplified — knob-based theming) // --------------------------------------------------------------------------- export interface ThemeProviderProps< T extends CreateTamaguiProps = CreateTamaguiProps, > extends PropsWithChildren> { config?: { tamagui: ReturnType>; }; systemTheme?: "light" | "dark"; } // --------------------------------------------------------------------------- // ThemeProvider (simplified — TamaguiProvider + scheme + ToastProvider) // --------------------------------------------------------------------------- export function ThemeProvider({ children, config, systemTheme = "light", ...tamaguiProps }: ThemeProviderProps) { const activeTheme = systemTheme; return ( {children} ); } function KnobBridge({ children }: PropsWithChildren) { const existingCtx = useContext(PresetContext); const [knobs] = useTheme(); const presetCtxValue = useMemo( () => ({ preset: { ...defaultPreset, knobs }, overrides: undefined, }), [knobs], ); const tree = ( <> {children} ); if (existingCtx) { return tree; } return {tree}; }