@commercetools-demo/puck-theme-manager 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/theme-editor.tsx","../src/constants.ts","../src/EnsureNimbusProvider.tsx","../src/components/theme-preset-selector.tsx","../src/presets.ts","../src/components/import-content-types.tsx"],"sourcesContent":["import React, { useEffect, useState, useCallback } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { PuckApiProvider, usePuckConfiguration } from '@commercetools-demo/puck-api';\nimport type { ThemeTokens } from '@commercetools-demo/puck-types';\nimport {\n Button,\n Card as NimbusCard,\n Grid as NimbusGrid,\n LoadingSpinner,\n NumberInput as NimbusNumberInput,\n Stack,\n Text as NimbusText,\n TextInput as NimbusTextInput,\n} from '@commercetools/nimbus';\nimport { DEFAULT_THEME } from '../constants';\nimport { EnsureNimbusProvider } from '../EnsureNimbusProvider';\nimport ThemePresetSelector from './theme-preset-selector';\n\n// ---------------------------------------------------------------------------\n// Thin Nimbus adapters\n//\n// This is a large, highly repetitive settings form. To keep the markup below\n// readable and avoid a risky line-by-line rewrite, these adapters preserve the\n// original component call-sites while rendering Nimbus components underneath.\n// ---------------------------------------------------------------------------\n\nconst SCALE_TO_GAP: Record<string, string> = {\n xs: '100',\n s: '200',\n m: '400',\n l: '600',\n xl: '800',\n};\n\ninterface SpacingsLayoutProps {\n scale?: string;\n alignItems?: string;\n justifyContent?: string;\n children?: React.ReactNode;\n}\n\nconst Spacings = {\n Stack: ({ scale = 'm', alignItems, justifyContent, children }: SpacingsLayoutProps) => (\n <Stack\n direction=\"column\"\n gap={SCALE_TO_GAP[scale] ?? '400'}\n alignItems={alignItems}\n justifyContent={justifyContent}\n >\n {children}\n </Stack>\n ),\n Inline: ({ scale = 'm', alignItems, justifyContent, children }: SpacingsLayoutProps) => (\n <Stack\n direction=\"row\"\n gap={SCALE_TO_GAP[scale] ?? '400'}\n alignItems={alignItems}\n justifyContent={justifyContent}\n >\n {children}\n </Stack>\n ),\n};\n\nconst TONE_TO_COLOR: Record<string, string | undefined> = {\n secondary: 'neutral.11',\n critical: 'critical.11',\n positive: 'positive.11',\n};\n\nconst Text = {\n Headline: ({ as = 'h2', children }: { as?: React.ElementType; children?: React.ReactNode }) => (\n <NimbusText as={as} fontSize={as === 'h1' ? '2xl' : 'xl'} fontWeight=\"700\">\n {children}\n </NimbusText>\n ),\n Body: ({ tone, children }: { tone?: string; children?: React.ReactNode }) => (\n <NimbusText color={tone ? TONE_TO_COLOR[tone] : undefined}>{children}</NimbusText>\n ),\n};\n\nconst Card = ({ children }: { children?: React.ReactNode }) => (\n <NimbusCard.Root variant=\"outlined\">\n <NimbusCard.Body>{children}</NimbusCard.Body>\n </NimbusCard.Root>\n);\n\nconst Grid = Object.assign(\n ({\n gridGap,\n gridTemplateColumns,\n gridAutoColumns,\n children,\n }: {\n gridGap?: string;\n gridTemplateColumns?: string;\n gridAutoColumns?: string;\n children?: React.ReactNode;\n }) => (\n <NimbusGrid gap={gridGap} templateColumns={gridTemplateColumns} autoColumns={gridAutoColumns}>\n {children}\n </NimbusGrid>\n ),\n {\n Item: ({ children }: { children?: React.ReactNode }) => (\n <NimbusGrid.Item>{children}</NimbusGrid.Item>\n ),\n }\n);\n\ninterface AdapterButtonProps {\n label?: React.ReactNode;\n onClick?: () => void;\n isDisabled?: boolean;\n icon?: React.ReactNode;\n children?: React.ReactNode;\n}\nconst PrimaryButton = ({ label, onClick, isDisabled }: AdapterButtonProps) => (\n <Button variant=\"solid\" onPress={onClick} isDisabled={isDisabled}>{label}</Button>\n);\nconst SecondaryButton = ({ label, onClick, isDisabled }: AdapterButtonProps) => (\n <Button variant=\"outline\" onPress={onClick} isDisabled={isDisabled}>{label}</Button>\n);\nconst FlatButton = ({ label, onClick, isDisabled, icon }: AdapterButtonProps) => (\n <Button variant=\"ghost\" onPress={onClick} isDisabled={isDisabled}>{icon}{label}</Button>\n);\n\nconst FieldLabel = ({ title, htmlFor }: { title: string; htmlFor?: string }) => (\n <label htmlFor={htmlFor} style={{ display: 'block', marginBottom: 4, fontSize: 13, fontWeight: 600 }}>\n {title}\n </label>\n);\n\ninterface AdapterInputProps {\n id?: string;\n value?: string | number;\n onChange?: (e: { target: { value: string } }) => void;\n horizontalConstraint?: number;\n}\nconst TextInput = ({ id, value, onChange }: AdapterInputProps) => (\n <NimbusTextInput\n id={id}\n value={value == null ? '' : String(value)}\n onChange={(v) => onChange?.({ target: { value: v } })}\n />\n);\nconst NumberInput = ({ id, value, onChange }: AdapterInputProps) => (\n <NimbusNumberInput\n id={id}\n value={value == null || value === '' ? 0 : Number(value)}\n onChange={(n) => onChange?.({ target: { value: Number.isNaN(n) ? '' : String(n) } })}\n />\n);\n\nconst BORDER_RADIUS_OPTIONS = [\n { value: 'none', label: 'None' },\n { value: 'sm', label: 'Small' },\n { value: 'md', label: 'Medium' },\n { value: 'lg', label: 'Large' },\n { value: 'full', label: 'Full' },\n];\n\nconst BORDER_WIDTH_OPTIONS = [\n { value: '0', label: '0' },\n { value: '1', label: '1' },\n { value: '2', label: '2' },\n];\n\nconst BUTTON_STYLE_OPTIONS = [\n { value: 'solid', label: 'Solid' },\n { value: 'outline', label: 'Outline' },\n { value: 'ghost', label: 'Ghost' },\n];\n\nconst CARD_SHADOW_OPTIONS = [\n { value: 'none', label: 'None' },\n { value: 'sm', label: 'Small' },\n { value: 'md', label: 'Medium' },\n { value: 'lg', label: 'Large' },\n];\n\nconst HEADER_STYLE_OPTIONS = [\n { value: 'transparent', label: 'Transparent' },\n { value: 'solid', label: 'Solid' },\n { value: 'minimal', label: 'Minimal' },\n];\n\nconst SHADOW_STYLE_OPTIONS = [\n { value: 'none', label: 'None' },\n { value: 'soft', label: 'Soft' },\n { value: 'hard-offset', label: 'Hard offset' },\n { value: 'neumorphic', label: 'Neumorphic' },\n { value: 'clay', label: 'Clay' },\n { value: 'glow', label: 'Glow' },\n];\n\nconst SURFACE_BLUR_OPTIONS = [\n { value: 'none', label: 'None' },\n { value: 'sm', label: 'Small' },\n { value: 'md', label: 'Medium' },\n { value: 'lg', label: 'Large' },\n];\n\nconst FONT_WEIGHT_BASE_OPTIONS = [\n { value: '300', label: '300' },\n { value: '400', label: '400' },\n { value: '500', label: '500' },\n];\n\nconst FONT_WEIGHT_HEADING_OPTIONS = [\n { value: '400', label: '400' },\n { value: '500', label: '500' },\n { value: '700', label: '700' },\n { value: '900', label: '900' },\n];\n\nconst LETTER_SPACING_OPTIONS = [\n { value: 'tight', label: 'Tight' },\n { value: 'normal', label: 'Normal' },\n { value: 'wide', label: 'Wide' },\n { value: 'wider', label: 'Wider' },\n];\n\nconst TEXT_TRANSFORM_OPTIONS = [\n { value: 'none', label: 'None' },\n { value: 'uppercase', label: 'Uppercase' },\n];\n\nconst BORDER_STYLE_OPTIONS = [\n { value: 'solid', label: 'Solid' },\n { value: 'dashed', label: 'Dashed' },\n { value: 'double', label: 'Double' },\n];\n\nconst BACKGROUND_STYLE_OPTIONS = [\n { value: 'solid', label: 'Solid' },\n { value: 'gradient', label: 'Gradient' },\n { value: 'noise', label: 'Noise' },\n];\n\nconst SELECT_STYLE: React.CSSProperties = {\n display: 'block',\n padding: '6px 8px',\n border: '1px solid #ccc',\n borderRadius: '4px',\n fontSize: '14px',\n background: '#fff',\n cursor: 'pointer',\n};\n\ninterface InnerProps {\n backButton?: {\n label: string;\n onClick: () => void;\n icon: React.ReactElement;\n };\n}\n\nexport interface ThemeManagerProps extends InnerProps {\n baseURL: string;\n projectKey: string;\n businessUnitKey: string;\n jwtToken: string;\n}\n\nconst ThemeEditorInner: React.FC<InnerProps> = ({ backButton }) => {\n const history = useHistory();\n const {\n theme,\n loading,\n error,\n fetchTheme,\n saveTheme,\n updateTheme,\n clearError,\n } = usePuckConfiguration();\n\n const [formValues, setFormValues] = useState<ThemeTokens>(DEFAULT_THEME);\n const [saving, setSaving] = useState(false);\n const [saveSuccess, setSaveSuccess] = useState(false);\n const [isConfigExpanded, setIsConfigExpanded] = useState(false);\n\n const applyThemeToForm = useCallback((t: ThemeTokens | null | undefined) => {\n if (t == null || typeof t !== 'object') {\n setFormValues(DEFAULT_THEME);\n return;\n }\n setFormValues({\n ...DEFAULT_THEME,\n ...t,\n colorPrimary: t.colorPrimary ?? DEFAULT_THEME.colorPrimary,\n colorPrimaryHover: t.colorPrimaryHover ?? DEFAULT_THEME.colorPrimaryHover,\n colorSecondary: t.colorSecondary ?? DEFAULT_THEME.colorSecondary,\n colorBackground: t.colorBackground ?? DEFAULT_THEME.colorBackground,\n colorSurface: t.colorSurface ?? DEFAULT_THEME.colorSurface,\n colorText: t.colorText ?? DEFAULT_THEME.colorText,\n colorTextMuted: t.colorTextMuted ?? DEFAULT_THEME.colorTextMuted,\n borderRadius: t.borderRadius ?? DEFAULT_THEME.borderRadius,\n borderWidth: t.borderWidth ?? DEFAULT_THEME.borderWidth,\n fontFamily: t.fontFamily ?? DEFAULT_THEME.fontFamily,\n fontHeading: t.fontHeading ?? DEFAULT_THEME.fontHeading,\n spacingScale:\n typeof t.spacingScale === 'number'\n ? t.spacingScale\n : DEFAULT_THEME.spacingScale,\n buttonStyle: t.buttonStyle ?? DEFAULT_THEME.buttonStyle,\n cardShadow: t.cardShadow ?? DEFAULT_THEME.cardShadow,\n headerStyle: t.headerStyle ?? DEFAULT_THEME.headerStyle,\n colorPrimaryForeground: t.colorPrimaryForeground ?? undefined,\n colorSecondaryForeground: t.colorSecondaryForeground ?? undefined,\n colorForeground: t.colorForeground ?? undefined,\n colorMuted: t.colorMuted ?? undefined,\n colorMutedForeground: t.colorMutedForeground ?? undefined,\n colorDestructive: t.colorDestructive ?? undefined,\n colorDestructiveForeground: t.colorDestructiveForeground ?? undefined,\n colorAccent: t.colorAccent ?? undefined,\n colorAccentForeground: t.colorAccentForeground ?? undefined,\n colorBorder: t.colorBorder ?? undefined,\n colorInput: t.colorInput ?? undefined,\n colorRing: t.colorRing ?? undefined,\n colorShadowLight: t.colorShadowLight ?? DEFAULT_THEME.colorShadowLight,\n colorShadowDark: t.colorShadowDark ?? DEFAULT_THEME.colorShadowDark,\n colorSurfaceGlass: t.colorSurfaceGlass ?? DEFAULT_THEME.colorSurfaceGlass,\n shadowStyle: t.shadowStyle ?? DEFAULT_THEME.shadowStyle,\n surfaceBlur: t.surfaceBlur ?? DEFAULT_THEME.surfaceBlur,\n surfaceOpacity:\n typeof t.surfaceOpacity === 'number'\n ? t.surfaceOpacity\n : DEFAULT_THEME.surfaceOpacity,\n fontWeightBase: t.fontWeightBase ?? DEFAULT_THEME.fontWeightBase,\n fontWeightHeading: t.fontWeightHeading ?? DEFAULT_THEME.fontWeightHeading,\n letterSpacing: t.letterSpacing ?? DEFAULT_THEME.letterSpacing,\n textTransform: t.textTransform ?? DEFAULT_THEME.textTransform,\n borderStyle: t.borderStyle ?? DEFAULT_THEME.borderStyle,\n backgroundStyle: t.backgroundStyle ?? DEFAULT_THEME.backgroundStyle,\n });\n }, []);\n\n useEffect(() => {\n void fetchTheme();\n }, [fetchTheme]);\n\n useEffect(() => {\n applyThemeToForm(theme);\n }, [theme, applyThemeToForm]);\n\n const handleChange = useCallback(\n <K extends keyof ThemeTokens>(key: K, value: ThemeTokens[K]) => {\n setFormValues((prev) => ({ ...prev, [key]: value }));\n setSaveSuccess(false);\n },\n []\n );\n\n const handleSave = useCallback(async () => {\n setSaving(true);\n setSaveSuccess(false);\n clearError();\n try {\n await saveTheme(formValues);\n setSaveSuccess(true);\n } finally {\n setSaving(false);\n }\n }, [formValues, saveTheme, clearError]);\n\n const handleResetToDefault = useCallback(async () => {\n setFormValues(DEFAULT_THEME);\n setSaveSuccess(false);\n if (theme != null) {\n setSaving(true);\n clearError();\n try {\n await updateTheme(DEFAULT_THEME);\n setSaveSuccess(true);\n } finally {\n setSaving(false);\n }\n }\n }, [theme, updateTheme, clearError]);\n\n if (loading && theme == null) {\n return (\n <div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center' }}>\n <LoadingSpinner />\n </div>\n );\n }\n\n return (\n <Spacings.Stack scale=\"l\">\n {backButton && (\n <FlatButton\n onClick={() => history.push('/')}\n label={backButton.label}\n icon={backButton.icon as any}\n >\n {backButton.label}\n </FlatButton>\n )}\n <div style={{ padding: '0 20px' }}>\n <Spacings.Stack scale=\"l\" alignItems=\"flex-start\">\n <Text.Headline as=\"h1\">Theme</Text.Headline>\n <Text.Body tone=\"secondary\">\n Customize colors, typography, spacing, and component styles.\n </Text.Body>\n </Spacings.Stack>\n </div>\n {error && (\n <Card>\n <Spacings.Stack scale=\"m\">\n <Text.Headline as=\"h2\">Error</Text.Headline>\n <Text.Body tone=\"critical\">{error}</Text.Body>\n </Spacings.Stack>\n </Card>\n )}\n\n {saveSuccess && (\n <Text.Body tone=\"positive\">Theme saved successfully.</Text.Body>\n )}\n\n <Spacings.Stack scale=\"l\">\n <div style={{ padding: '0 20px' }}>\n <Spacings.Inline scale=\"s\">\n <ThemePresetSelector onSelectPreset={applyThemeToForm} />\n </Spacings.Inline>\n </div>\n <Spacings.Stack scale=\"s\">\n <div style={{ padding: '0 20px' }}>\n <button\n type=\"button\"\n onClick={() => setIsConfigExpanded((prev) => !prev)}\n aria-expanded={isConfigExpanded}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n padding: '12px 16px',\n margin: 0,\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n font: 'inherit',\n textAlign: 'left',\n background: 'transparent',\n }}\n >\n <Text.Headline as=\"h2\">Theme configuration</Text.Headline>\n <span\n style={{\n display: 'inline-block',\n width: 0,\n height: 0,\n borderLeft: '5px solid transparent',\n borderRight: '5px solid transparent',\n borderTop: '6px solid currentColor',\n transform: isConfigExpanded ? 'rotate(180deg)' : 'none',\n opacity: 0.7,\n }}\n />\n </button>\n </div>\n {isConfigExpanded && (\n <div style={{ padding: '0 20px' }}>\n <Spacings.Stack scale=\"l\">\n <Spacings.Stack scale=\"xl\">\n <Text.Headline as=\"h2\">Colors</Text.Headline>\n <Grid\n gridGap=\"16px\"\n gridAutoColumns=\"1fr\"\n gridTemplateColumns=\"repeat(auto-fill, minmax(300px, 1fr))\"\n >\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Primary\" htmlFor=\"colorPrimary\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorPrimary\"\n value={formValues.colorPrimary}\n onChange={(e) =>\n handleChange('colorPrimary', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n value={formValues.colorPrimary}\n onChange={(e) =>\n handleChange('colorPrimary', e.target.value)\n }\n horizontalConstraint={3}\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel\n title=\"Primary Hover\"\n htmlFor=\"colorPrimaryHover\"\n />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorPrimaryHover\"\n value={formValues.colorPrimaryHover}\n onChange={(e) =>\n handleChange('colorPrimaryHover', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorPrimaryHover}\n onChange={(e) =>\n handleChange('colorPrimaryHover', e.target.value)\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Secondary\" htmlFor=\"colorSecondary\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorSecondary\"\n value={formValues.colorSecondary}\n onChange={(e) =>\n handleChange('colorSecondary', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorSecondary}\n onChange={(e) =>\n handleChange('colorSecondary', e.target.value)\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel\n title=\"Background\"\n htmlFor=\"colorBackground\"\n />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorBackground\"\n value={formValues.colorBackground}\n onChange={(e) =>\n handleChange('colorBackground', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorBackground}\n onChange={(e) =>\n handleChange('colorBackground', e.target.value)\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Surface\" htmlFor=\"colorSurface\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorSurface\"\n value={formValues.colorSurface}\n onChange={(e) =>\n handleChange('colorSurface', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorSurface}\n onChange={(e) =>\n handleChange('colorSurface', e.target.value)\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Text\" htmlFor=\"colorText\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorText\"\n value={formValues.colorText}\n onChange={(e) =>\n handleChange('colorText', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorText}\n onChange={(e) =>\n handleChange('colorText', e.target.value)\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Text Muted\" htmlFor=\"colorTextMuted\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorTextMuted\"\n value={formValues.colorTextMuted}\n onChange={(e) =>\n handleChange('colorTextMuted', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorTextMuted}\n onChange={(e) =>\n handleChange('colorTextMuted', e.target.value)\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n </Grid>\n\n <Text.Headline as=\"h2\">Extended colors</Text.Headline>\n <Text.Body tone=\"secondary\">\n Optional theme tokens for foregrounds, muted, destructive,\n accent, border, input, and ring.\n </Text.Body>\n <Grid\n gridGap=\"16px\"\n gridAutoColumns=\"1fr\"\n gridTemplateColumns=\"repeat(auto-fill, minmax(300px, 1fr))\"\n >\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel\n title=\"Primary Foreground\"\n htmlFor=\"colorPrimaryForeground\"\n />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorPrimaryForeground\"\n value={formValues.colorPrimaryForeground || '#000000'}\n onChange={(e) =>\n handleChange('colorPrimaryForeground', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorPrimaryForeground ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorPrimaryForeground',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel\n title=\"Secondary Foreground\"\n htmlFor=\"colorSecondaryForeground\"\n />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorSecondaryForeground\"\n value={formValues.colorSecondaryForeground || '#000000'}\n onChange={(e) =>\n handleChange('colorSecondaryForeground', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorSecondaryForeground ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorSecondaryForeground',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Foreground\" htmlFor=\"colorForeground\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorForeground\"\n value={formValues.colorForeground || '#000000'}\n onChange={(e) =>\n handleChange('colorForeground', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorForeground ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorForeground',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Muted\" htmlFor=\"colorMuted\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorMuted\"\n value={formValues.colorMuted || '#000000'}\n onChange={(e) =>\n handleChange('colorMuted', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorMuted ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorMuted',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel\n title=\"Muted Foreground\"\n htmlFor=\"colorMutedForeground\"\n />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorMutedForeground\"\n value={formValues.colorMutedForeground || '#000000'}\n onChange={(e) =>\n handleChange('colorMutedForeground', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorMutedForeground ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorMutedForeground',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Destructive\" htmlFor=\"colorDestructive\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorDestructive\"\n value={formValues.colorDestructive || '#000000'}\n onChange={(e) =>\n handleChange('colorDestructive', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorDestructive ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorDestructive',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel\n title=\"Destructive Foreground\"\n htmlFor=\"colorDestructiveForeground\"\n />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorDestructiveForeground\"\n value={formValues.colorDestructiveForeground || '#000000'}\n onChange={(e) =>\n handleChange('colorDestructiveForeground', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorDestructiveForeground ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorDestructiveForeground',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Accent\" htmlFor=\"colorAccent\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorAccent\"\n value={formValues.colorAccent || '#000000'}\n onChange={(e) =>\n handleChange('colorAccent', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorAccent ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorAccent',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel\n title=\"Accent Foreground\"\n htmlFor=\"colorAccentForeground\"\n />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorAccentForeground\"\n value={formValues.colorAccentForeground || '#000000'}\n onChange={(e) =>\n handleChange('colorAccentForeground', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorAccentForeground ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorAccentForeground',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Border\" htmlFor=\"colorBorder\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorBorder\"\n value={formValues.colorBorder || '#000000'}\n onChange={(e) =>\n handleChange('colorBorder', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorBorder ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorBorder',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Input\" htmlFor=\"colorInput\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorInput\"\n value={formValues.colorInput || '#000000'}\n onChange={(e) =>\n handleChange('colorInput', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorInput ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorInput',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Ring\" htmlFor=\"colorRing\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorRing\"\n value={formValues.colorRing || '#000000'}\n onChange={(e) =>\n handleChange('colorRing', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorRing ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorRing',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n </Grid>\n\n <Text.Headline as=\"h2\">Typography</Text.Headline>\n <Grid\n gridGap=\"16px\"\n gridAutoColumns=\"1fr\"\n gridTemplateColumns=\"repeat(auto-fill, minmax(300px, 1fr))\"\n >\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Font Family\" htmlFor=\"fontFamily\" />\n <TextInput\n horizontalConstraint={4}\n id=\"fontFamily\"\n value={formValues.fontFamily}\n onChange={(e) =>\n handleChange('fontFamily', e.target.value)\n }\n />\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Heading Font\" htmlFor=\"fontHeading\" />\n <TextInput\n horizontalConstraint={4}\n id=\"fontHeading\"\n value={formValues.fontHeading}\n onChange={(e) =>\n handleChange('fontHeading', e.target.value)\n }\n />\n </div>\n </Grid.Item>\n </Grid>\n\n <Text.Headline as=\"h2\">Layout &amp; Components</Text.Headline>\n <Grid\n gridGap=\"16px\"\n gridAutoColumns=\"1fr\"\n gridTemplateColumns=\"repeat(auto-fill, minmax(300px, 1fr))\"\n >\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Spacing Scale\" htmlFor=\"spacingScale\" />\n <NumberInput\n id=\"spacingScale\"\n horizontalConstraint={3}\n value={formValues.spacingScale}\n onChange={(e) =>\n handleChange(\n 'spacingScale',\n e.target.value === '' ? 0 : Number(e.target.value)\n )\n }\n />\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Border Radius\" htmlFor=\"borderRadius\" />\n <select\n id=\"borderRadius\"\n value={formValues.borderRadius}\n onChange={(e) =>\n handleChange(\n 'borderRadius',\n e.target.value as ThemeTokens['borderRadius']\n )\n }\n style={SELECT_STYLE}\n >\n {BORDER_RADIUS_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Border Width\" htmlFor=\"borderWidth\" />\n <select\n id=\"borderWidth\"\n value={formValues.borderWidth}\n onChange={(e) =>\n handleChange(\n 'borderWidth',\n e.target.value as ThemeTokens['borderWidth']\n )\n }\n style={SELECT_STYLE}\n >\n {BORDER_WIDTH_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Button Style\" htmlFor=\"buttonStyle\" />\n <select\n id=\"buttonStyle\"\n value={formValues.buttonStyle}\n onChange={(e) =>\n handleChange(\n 'buttonStyle',\n e.target.value as ThemeTokens['buttonStyle']\n )\n }\n style={SELECT_STYLE}\n >\n {BUTTON_STYLE_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Card Shadow\" htmlFor=\"cardShadow\" />\n <select\n id=\"cardShadow\"\n value={formValues.cardShadow}\n onChange={(e) =>\n handleChange(\n 'cardShadow',\n e.target.value as ThemeTokens['cardShadow']\n )\n }\n style={SELECT_STYLE}\n >\n {CARD_SHADOW_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Header Style\" htmlFor=\"headerStyle\" />\n <select\n id=\"headerStyle\"\n value={formValues.headerStyle}\n onChange={(e) =>\n handleChange(\n 'headerStyle',\n e.target.value as ThemeTokens['headerStyle']\n )\n }\n style={SELECT_STYLE}\n >\n {HEADER_STYLE_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n </Grid>\n\n <Text.Headline as=\"h2\">Shadow &amp; surface</Text.Headline>\n <Grid\n gridGap=\"16px\"\n gridAutoColumns=\"1fr\"\n gridTemplateColumns=\"repeat(auto-fill, minmax(300px, 1fr))\"\n >\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Shadow Light\" htmlFor=\"colorShadowLight\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorShadowLight\"\n value={formValues.colorShadowLight ?? '#ffffff'}\n onChange={(e) =>\n handleChange('colorShadowLight', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorShadowLight ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorShadowLight',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Shadow Dark\" htmlFor=\"colorShadowDark\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorShadowDark\"\n value={formValues.colorShadowDark ?? '#b8bec7'}\n onChange={(e) =>\n handleChange('colorShadowDark', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorShadowDark ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorShadowDark',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Surface Glass\" htmlFor=\"colorSurfaceGlass\" />\n <TextInput\n horizontalConstraint={3}\n id=\"colorSurfaceGlass\"\n value={formValues.colorSurfaceGlass ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorSurfaceGlass',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Shadow Style\" htmlFor=\"shadowStyle\" />\n <select\n id=\"shadowStyle\"\n value={formValues.shadowStyle ?? DEFAULT_THEME.shadowStyle}\n onChange={(e) =>\n handleChange(\n 'shadowStyle',\n e.target.value as ThemeTokens['shadowStyle']\n )\n }\n style={SELECT_STYLE}\n >\n {SHADOW_STYLE_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Surface Blur\" htmlFor=\"surfaceBlur\" />\n <select\n id=\"surfaceBlur\"\n value={formValues.surfaceBlur ?? DEFAULT_THEME.surfaceBlur}\n onChange={(e) =>\n handleChange(\n 'surfaceBlur',\n e.target.value as ThemeTokens['surfaceBlur']\n )\n }\n style={SELECT_STYLE}\n >\n {SURFACE_BLUR_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Surface Opacity\" htmlFor=\"surfaceOpacity\" />\n <NumberInput\n id=\"surfaceOpacity\"\n horizontalConstraint={3}\n value={formValues.surfaceOpacity ?? 1}\n onChange={(e) =>\n handleChange(\n 'surfaceOpacity',\n e.target.value === ''\n ? 0\n : Math.min(1, Math.max(0, Number(e.target.value)))\n )\n }\n />\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Border Style\" htmlFor=\"borderStyle\" />\n <select\n id=\"borderStyle\"\n value={formValues.borderStyle ?? DEFAULT_THEME.borderStyle}\n onChange={(e) =>\n handleChange(\n 'borderStyle',\n e.target.value as ThemeTokens['borderStyle']\n )\n }\n style={SELECT_STYLE}\n >\n {BORDER_STYLE_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Background Style\" htmlFor=\"backgroundStyle\" />\n <select\n id=\"backgroundStyle\"\n value={formValues.backgroundStyle ?? DEFAULT_THEME.backgroundStyle}\n onChange={(e) =>\n handleChange(\n 'backgroundStyle',\n e.target.value as ThemeTokens['backgroundStyle']\n )\n }\n style={SELECT_STYLE}\n >\n {BACKGROUND_STYLE_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n </Grid>\n\n <Text.Headline as=\"h2\">\n Typography (weight &amp; transform)\n </Text.Headline>\n <Grid\n gridGap=\"16px\"\n gridAutoColumns=\"1fr\"\n gridTemplateColumns=\"repeat(auto-fill, minmax(300px, 1fr))\"\n >\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Font Weight Base\" htmlFor=\"fontWeightBase\" />\n <select\n id=\"fontWeightBase\"\n value={formValues.fontWeightBase ?? DEFAULT_THEME.fontWeightBase}\n onChange={(e) =>\n handleChange(\n 'fontWeightBase',\n e.target.value as ThemeTokens['fontWeightBase']\n )\n }\n style={SELECT_STYLE}\n >\n {FONT_WEIGHT_BASE_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Font Weight Heading\" htmlFor=\"fontWeightHeading\" />\n <select\n id=\"fontWeightHeading\"\n value={formValues.fontWeightHeading ?? DEFAULT_THEME.fontWeightHeading}\n onChange={(e) =>\n handleChange(\n 'fontWeightHeading',\n e.target.value as ThemeTokens['fontWeightHeading']\n )\n }\n style={SELECT_STYLE}\n >\n {FONT_WEIGHT_HEADING_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Letter Spacing\" htmlFor=\"letterSpacing\" />\n <select\n id=\"letterSpacing\"\n value={formValues.letterSpacing ?? DEFAULT_THEME.letterSpacing}\n onChange={(e) =>\n handleChange(\n 'letterSpacing',\n e.target.value as ThemeTokens['letterSpacing']\n )\n }\n style={SELECT_STYLE}\n >\n {LETTER_SPACING_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Text Transform\" htmlFor=\"textTransform\" />\n <select\n id=\"textTransform\"\n value={formValues.textTransform ?? DEFAULT_THEME.textTransform}\n onChange={(e) =>\n handleChange(\n 'textTransform',\n e.target.value as ThemeTokens['textTransform']\n )\n }\n style={SELECT_STYLE}\n >\n {TEXT_TRANSFORM_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n </Grid>\n\n <Spacings.Inline>\n <PrimaryButton\n label={saving ? 'Saving…' : 'Save'}\n onClick={handleSave}\n isDisabled={saving}\n />\n <SecondaryButton\n label=\"Reset to default\"\n onClick={handleResetToDefault}\n isDisabled={saving}\n />\n </Spacings.Inline>\n </Spacings.Stack>\n </Spacings.Stack>\n </div>\n )}\n </Spacings.Stack>\n </Spacings.Stack>\n </Spacings.Stack>\n );\n};\n\nconst ThemeManager: React.FC<ThemeManagerProps> = ({\n baseURL,\n projectKey,\n businessUnitKey,\n jwtToken,\n ...innerProps\n}) => (\n <PuckApiProvider\n baseURL={baseURL}\n projectKey={projectKey}\n businessUnitKey={businessUnitKey}\n jwtToken={jwtToken}\n >\n <EnsureNimbusProvider>\n <ThemeEditorInner {...innerProps} />\n </EnsureNimbusProvider>\n </PuckApiProvider>\n);\n\nexport default ThemeManager;\n","import type { ThemeTokens } from '@commercetools-demo/puck-types';\n\nexport const DEFAULT_THEME: ThemeTokens = {\n colorPrimary: '#0f766e',\n colorPrimaryHover: '#0d9488',\n colorSecondary: '#64748b',\n colorBackground: '#ffffff',\n colorSurface: '#f8fafc',\n colorText: '#0f172a',\n colorTextMuted: '#64748b',\n borderRadius: 'md',\n borderWidth: '1',\n fontFamily: 'system-ui, sans-serif',\n fontHeading: 'system-ui, sans-serif',\n spacingScale: 8,\n buttonStyle: 'solid',\n cardShadow: 'md',\n headerStyle: 'solid',\n colorShadowLight: '#ffffff',\n colorShadowDark: '#b8bec7',\n colorSurfaceGlass: 'rgba(255,255,255,0.18)',\n shadowStyle: 'none',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n fontWeightBase: '400',\n fontWeightHeading: '700',\n letterSpacing: 'normal',\n textTransform: 'none',\n borderStyle: 'solid',\n backgroundStyle: 'solid',\n};\n","import React, { type PropsWithChildren } from 'react';\nimport { NimbusProvider } from '@commercetools/nimbus';\n\n/**\n * Ensures a Nimbus context (theme + Chakra + React Aria i18n) exists for the\n * Nimbus components rendered by this package.\n *\n * NimbusProvider is safe to nest: locale overrides the nearest ancestor, color\n * mode is global, and the Inter font links are deduplicated across instances.\n */\nexport const EnsureNimbusProvider: React.FC<PropsWithChildren<{ locale?: string }>> = ({\n locale = 'en',\n children,\n}) => <NimbusProvider locale={locale}>{children}</NimbusProvider>;\n","import React, { useState } from 'react';\nimport type { ThemeTokens } from '@commercetools-demo/puck-types';\nimport { Button, Stack } from '@commercetools/nimbus';\nimport {\n themePresets,\n paradigmLabels,\n PRESET_KEYS_SELECTOR,\n type DesignParadigm,\n} from '../presets';\n\nconst PRESET_OPTIONS = [\n { value: '', label: 'Choose a preset…' },\n ...PRESET_KEYS_SELECTOR.map((key: DesignParadigm) => ({\n value: key,\n label: paradigmLabels[key],\n })),\n];\n\nconst SELECT_STYLE: React.CSSProperties = {\n display: 'block',\n padding: '6px 8px',\n border: '1px solid #ccc',\n borderRadius: '4px',\n fontSize: '14px',\n background: '#fff',\n cursor: 'pointer',\n};\n\ninterface ThemePresetSelectorProps {\n onSelectPreset: (tokens: ThemeTokens) => void;\n}\n\nconst ThemePresetSelector: React.FC<ThemePresetSelectorProps> = ({\n onSelectPreset,\n}) => {\n const [selectedKey, setSelectedKey] = useState<string>('');\n\n const handleApply = () => {\n if (selectedKey && selectedKey in themePresets) {\n onSelectPreset(themePresets[selectedKey as DesignParadigm]);\n }\n };\n\n return (\n <Stack direction=\"column\" gap=\"200\">\n <label\n htmlFor=\"theme-preset-select\"\n style={{ display: 'block', marginBottom: 4, fontSize: 13, fontWeight: 600 }}\n >\n Quick apply preset\n </label>\n <Stack direction=\"row\" gap=\"200\" alignItems=\"center\">\n <select\n id=\"theme-preset-select\"\n value={selectedKey}\n onChange={(e) => setSelectedKey(e.target.value)}\n style={SELECT_STYLE}\n >\n {PRESET_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n <Button variant=\"solid\" onPress={handleApply} isDisabled={!selectedKey}>\n Apply\n </Button>\n </Stack>\n </Stack>\n );\n};\n\nexport default ThemePresetSelector;\n","\n// ─────────────────────────────────────────────\n// 1. FLAT DESIGN\n// Solid fills, no depth, no effects.\n// Influenced by Windows 8 Metro + iOS 7.\n\nimport type { ThemeTokens } from '@commercetools-demo/puck-types';\n\n// ─────────────────────────────────────────────\nexport const flatTheme: ThemeTokens = {\n colorPrimary: '#2563EB',\n colorPrimaryHover: '#1D4ED8',\n colorPrimaryForeground: '#FFFFFF',\n colorSecondary: '#64748B',\n colorSecondaryForeground: '#FFFFFF',\n colorBackground: '#F8FAFC',\n colorSurface: '#FFFFFF',\n colorText: '#0F172A',\n colorTextMuted: '#64748B',\n colorForeground: '#0F172A',\n colorMuted: '#F1F5F9',\n colorMutedForeground: '#64748B',\n colorDestructive: '#EF4444',\n colorDestructiveForeground:'#FFFFFF',\n colorAccent: '#0EA5E9',\n colorAccentForeground: '#FFFFFF',\n colorBorder: '#E2E8F0',\n colorInput: '#FFFFFF',\n colorRing: '#2563EB',\n colorShadowLight: '#FFFFFF',\n colorShadowDark: '#CBD5E1',\n colorSurfaceGlass: 'rgba(255,255,255,0.9)',\n\n borderRadius: 'sm',\n borderWidth: '1',\n borderStyle: 'solid',\n\n fontFamily: 'Inter, system-ui, sans-serif',\n fontHeading: 'Inter, system-ui, sans-serif',\n fontWeightBase: '400',\n fontWeightHeading: '700',\n letterSpacing: 'normal',\n textTransform: 'none',\n\n spacingScale: 1,\n buttonStyle: 'solid',\n cardShadow: 'none',\n shadowStyle: 'none',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n backgroundStyle: 'solid',\n headerStyle: 'solid',\n animationStyle: 'subtle',\n};\n\n// ─────────────────────────────────────────────\n// 2. SKEUOMORPHISM\n// Mimics real-world materials and surfaces.\n// Warm parchment tones, textured backgrounds.\n// ─────────────────────────────────────────────\nexport const skeuomorphismTheme: ThemeTokens = {\n colorPrimary: '#B8860B',\n colorPrimaryHover: '#9A7209',\n colorPrimaryForeground: '#FFFBEA',\n colorSecondary: '#8B6914',\n colorSecondaryForeground: '#FFFBEA',\n colorBackground: '#C8B97D',\n colorSurface: '#EDE0B0',\n colorText: '#2C1A00',\n colorTextMuted: '#6B4F1A',\n colorForeground: '#2C1A00',\n colorMuted: '#D9C98A',\n colorMutedForeground: '#6B4F1A',\n colorDestructive: '#C0392B',\n colorDestructiveForeground:'#FFF8F0',\n colorAccent: '#D4A017',\n colorAccentForeground: '#2C1A00',\n colorBorder: '#8B6914',\n colorInput: '#F5EBD0',\n colorRing: '#B8860B',\n colorShadowLight: 'rgba(255,255,255,0.5)',\n colorShadowDark: 'rgba(0,0,0,0.4)',\n colorSurfaceGlass: 'rgba(237,224,176,0.95)',\n\n borderRadius: 'sm',\n borderWidth: '1',\n borderStyle: 'solid',\n\n fontFamily: 'Georgia, \"Times New Roman\", serif',\n fontHeading: 'Georgia, \"Times New Roman\", serif',\n fontWeightBase: '400',\n fontWeightHeading: '700',\n letterSpacing: 'normal',\n textTransform: 'none',\n\n spacingScale: 1,\n buttonStyle: 'solid',\n cardShadow: 'lg',\n shadowStyle: 'soft',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n backgroundStyle: 'noise',\n headerStyle: 'solid',\n animationStyle: 'subtle',\n};\n\n// ─────────────────────────────────────────────\n// 3. MATERIAL DESIGN\n// Layered surfaces, elevation via shadow,\n// deep purple + teal palette. Google's system.\n// ─────────────────────────────────────────────\nexport const materialTheme: ThemeTokens = {\n colorPrimary: '#6200EE',\n colorPrimaryHover: '#3700B3',\n colorPrimaryForeground: '#FFFFFF',\n colorSecondary: '#03DAC6',\n colorSecondaryForeground: '#000000',\n colorBackground: '#FAFAFA',\n colorSurface: '#FFFFFF',\n colorText: '#000000',\n colorTextMuted: '#757575',\n colorForeground: '#000000',\n colorMuted: '#F5F5F5',\n colorMutedForeground: '#757575',\n colorDestructive: '#B00020',\n colorDestructiveForeground:'#FFFFFF',\n colorAccent: '#03DAC6',\n colorAccentForeground: '#000000',\n colorBorder: '#E0E0E0',\n colorInput: '#FFFFFF',\n colorRing: '#6200EE',\n colorShadowLight: 'rgba(255,255,255,0.1)',\n colorShadowDark: 'rgba(0,0,0,0.2)',\n colorSurfaceGlass: 'rgba(255,255,255,0.95)',\n\n borderRadius: 'sm',\n borderWidth: '0',\n borderStyle: 'solid',\n\n fontFamily: '\"Roboto\", system-ui, sans-serif',\n fontHeading: '\"Roboto\", system-ui, sans-serif',\n fontWeightBase: '400',\n fontWeightHeading: '500',\n letterSpacing: 'normal',\n textTransform: 'none',\n\n spacingScale: 1,\n buttonStyle: 'solid',\n cardShadow: 'md',\n shadowStyle: 'soft',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n backgroundStyle: 'solid',\n headerStyle: 'solid',\n animationStyle: 'material-ripple',\n};\n\n// ─────────────────────────────────────────────\n// 4. NEUMORPHISM\n// Elements extruded from the background.\n// Matched bg color, dual inset/outset shadows.\n// ─────────────────────────────────────────────\nexport const neumorphismTheme: ThemeTokens = {\n colorPrimary: '#5B8DEF',\n colorPrimaryHover: '#3D6ECC',\n colorPrimaryForeground: '#FFFFFF',\n colorSecondary: '#8B8FA8',\n colorSecondaryForeground: '#FFFFFF',\n colorBackground: '#E0E5EC',\n colorSurface: '#E0E5EC',\n colorText: '#31344B',\n colorTextMuted: '#6B7280',\n colorForeground: '#31344B',\n colorMuted: '#E0E5EC',\n colorMutedForeground: '#6B7280',\n colorDestructive: '#E74C3C',\n colorDestructiveForeground:'#FFFFFF',\n colorAccent: '#5B8DEF',\n colorAccentForeground: '#FFFFFF',\n colorBorder: '#E0E5EC',\n colorInput: '#E0E5EC',\n colorRing: '#5B8DEF',\n colorShadowLight: '#FFFFFF',\n colorShadowDark: '#A3B1C6',\n colorSurfaceGlass: 'rgba(224,229,236,0.95)',\n\n borderRadius: 'lg',\n borderWidth: '0',\n borderStyle: 'solid',\n\n fontFamily: '\"Nunito\", system-ui, sans-serif',\n fontHeading: '\"Nunito\", system-ui, sans-serif',\n fontWeightBase: '400',\n fontWeightHeading: '700',\n letterSpacing: 'normal',\n textTransform: 'none',\n\n spacingScale: 1.1,\n buttonStyle: 'solid',\n cardShadow: 'lg',\n shadowStyle: 'neumorphic',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n backgroundStyle: 'solid',\n headerStyle: 'solid',\n animationStyle: 'subtle',\n};\n\n// ─────────────────────────────────────────────\n// 5. GLASSMORPHISM\n// Frosted panels over colorful gradients.\n// backdrop-filter blur, semi-transparent surfaces.\n// ─────────────────────────────────────────────\nexport const glassmorphismTheme: ThemeTokens = {\n colorPrimary: '#818CF8',\n colorPrimaryHover: '#6366F1',\n colorPrimaryForeground: '#FFFFFF',\n colorSecondary: '#C084FC',\n colorSecondaryForeground: '#FFFFFF',\n colorBackground: '#4F46E5',\n colorSurface: '#6366F1',\n colorText: '#FFFFFF',\n colorTextMuted: 'rgba(255,255,255,0.65)',\n colorForeground: '#FFFFFF',\n colorMuted: 'rgba(255,255,255,0.1)',\n colorMutedForeground: 'rgba(255,255,255,0.55)',\n colorDestructive: '#F87171',\n colorDestructiveForeground:'#FFFFFF',\n colorAccent: '#E879F9',\n colorAccentForeground: '#FFFFFF',\n colorBorder: 'rgba(255,255,255,0.25)',\n colorInput: 'rgba(255,255,255,0.15)',\n colorRing: 'rgba(255,255,255,0.5)',\n colorShadowLight: 'rgba(255,255,255,0.25)',\n colorShadowDark: 'rgba(0,0,0,0.15)',\n colorSurfaceGlass: 'rgba(255,255,255,0.15)',\n\n borderRadius: 'lg',\n borderWidth: '1',\n borderStyle: 'solid',\n\n fontFamily: '\"Inter\", system-ui, sans-serif',\n fontHeading: '\"Inter\", system-ui, sans-serif',\n fontWeightBase: '300',\n fontWeightHeading: '500',\n letterSpacing: 'wide',\n textTransform: 'none',\n\n spacingScale: 1.1,\n buttonStyle: 'outline',\n cardShadow: 'sm',\n shadowStyle: 'soft',\n surfaceBlur: 'md',\n surfaceOpacity: 0.15,\n backgroundStyle: 'gradient',\n headerStyle: 'transparent',\n animationStyle: 'subtle',\n};\n\n// ─────────────────────────────────────────────\n// 6. BRUTALISM\n// Raw, intentionally rough. Thick borders,\n// hard offset shadows, heavy type, no radius.\n// ─────────────────────────────────────────────\nexport const brutalismTheme: ThemeTokens = {\n colorPrimary: '#FF3C00',\n colorPrimaryHover: '#CC3000',\n colorPrimaryForeground: '#FFFFFF',\n colorSecondary: '#FFEE00',\n colorSecondaryForeground: '#000000',\n colorBackground: '#FFFFFF',\n colorSurface: '#FFFFFF',\n colorText: '#000000',\n colorTextMuted: '#333333',\n colorForeground: '#000000',\n colorMuted: '#F5F5F5',\n colorMutedForeground: '#333333',\n colorDestructive: '#FF0000',\n colorDestructiveForeground:'#FFFFFF',\n colorAccent: '#FFEE00',\n colorAccentForeground: '#000000',\n colorBorder: '#000000',\n colorInput: '#FFFFFF',\n colorRing: '#000000',\n colorShadowLight: '#FFFFFF',\n colorShadowDark: '#000000',\n colorSurfaceGlass: 'rgba(255,255,255,0.95)',\n\n borderRadius: 'none',\n borderWidth: '2',\n borderStyle: 'solid',\n\n fontFamily: '\"Space Mono\", \"Courier New\", monospace',\n fontHeading: '\"Space Grotesk\", \"Arial Black\", sans-serif',\n fontWeightBase: '400',\n fontWeightHeading: '900',\n letterSpacing: 'tight',\n textTransform: 'uppercase',\n\n spacingScale: 1,\n buttonStyle: 'solid',\n cardShadow: 'md',\n shadowStyle: 'hard-offset',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n backgroundStyle: 'solid',\n headerStyle: 'solid',\n animationStyle: 'none',\n};\n\n// ─────────────────────────────────────────────\n// 7. CLAYMORPHISM\n// Inflated 3D clay shapes, thick bottom\n// offset shadows, rounded full, pastel palette.\n// ─────────────────────────────────────────────\nexport const claymorphismTheme: ThemeTokens = {\n colorPrimary: '#A855F7',\n colorPrimaryHover: '#9333EA',\n colorPrimaryForeground: '#FFFFFF',\n colorSecondary: '#EC4899',\n colorSecondaryForeground: '#FFFFFF',\n colorBackground: '#F3E8FF',\n colorSurface: '#FFFFFF',\n colorText: '#1E1033',\n colorTextMuted: '#7C3AED',\n colorForeground: '#1E1033',\n colorMuted: '#FAF5FF',\n colorMutedForeground: '#9061C2',\n colorDestructive: '#F43F5E',\n colorDestructiveForeground:'#FFFFFF',\n colorAccent: '#F0ABFC',\n colorAccentForeground: '#701A75',\n colorBorder: '#E9D5FF',\n colorInput: '#FAF5FF',\n colorRing: '#A855F7',\n colorShadowLight: 'rgba(255,255,255,0.8)',\n colorShadowDark: '#7E22CE',\n colorSurfaceGlass: 'rgba(255,255,255,0.8)',\n\n borderRadius: 'lg',\n borderWidth: '0',\n borderStyle: 'solid',\n\n fontFamily: '\"Nunito\", \"Poppins\", system-ui, sans-serif',\n fontHeading: '\"Nunito\", \"Poppins\", system-ui, sans-serif',\n fontWeightBase: '400',\n fontWeightHeading: '700',\n letterSpacing: 'normal',\n textTransform: 'none',\n\n spacingScale: 1.15,\n buttonStyle: 'solid',\n cardShadow: 'lg',\n shadowStyle: 'clay',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n backgroundStyle: 'solid',\n headerStyle: 'solid',\n animationStyle: 'bouncy',\n};\n\n// ─────────────────────────────────────────────\n// 8. MINIMALISM\n// Maximum whitespace, sparse type, near-zero\n// decoration. Luxury brands, editorial, portfolio.\n// ─────────────────────────────────────────────\nexport const minimalismTheme: ThemeTokens = {\n colorPrimary: '#111111',\n colorPrimaryHover: '#333333',\n colorPrimaryForeground: '#FFFFFF',\n colorSecondary: '#666666',\n colorSecondaryForeground: '#FFFFFF',\n colorBackground: '#FFFFFF',\n colorSurface: '#FAFAFA',\n colorText: '#111111',\n colorTextMuted: '#999999',\n colorForeground: '#111111',\n colorMuted: '#F5F5F5',\n colorMutedForeground: '#999999',\n colorDestructive: '#CC0000',\n colorDestructiveForeground:'#FFFFFF',\n colorAccent: '#111111',\n colorAccentForeground: '#FFFFFF',\n colorBorder: '#E5E5E5',\n colorInput: '#FFFFFF',\n colorRing: '#111111',\n colorShadowLight: '#FFFFFF',\n colorShadowDark: '#E5E5E5',\n colorSurfaceGlass: 'rgba(255,255,255,0.95)',\n\n borderRadius: 'none',\n borderWidth: '1',\n borderStyle: 'solid',\n\n fontFamily: '\"DM Sans\", \"Helvetica Neue\", sans-serif',\n fontHeading: '\"DM Serif Display\", Georgia, serif',\n fontWeightBase: '300',\n fontWeightHeading: '400',\n letterSpacing: 'wider',\n textTransform: 'none',\n\n spacingScale: 1.4,\n buttonStyle: 'outline',\n cardShadow: 'none',\n shadowStyle: 'none',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n backgroundStyle: 'solid',\n headerStyle: 'minimal',\n animationStyle: 'subtle',\n};\n\n// ─────────────────────────────────────────────\n// 9. DARK / MOODY UI\n// Deep surfaces, indigo/violet accents,\n// glowing colored shadows. SaaS & dev tools.\n// ─────────────────────────────────────────────\nexport const darkMoodyTheme: ThemeTokens = {\n colorPrimary: '#818CF8',\n colorPrimaryHover: '#6366F1',\n colorPrimaryForeground: '#FFFFFF',\n colorSecondary: '#334155',\n colorSecondaryForeground: '#E2E8F0',\n colorBackground: '#0F1117',\n colorSurface: '#1A1D28',\n colorText: '#E2E8F0',\n colorTextMuted: '#94A3B8',\n colorForeground: '#E2E8F0',\n colorMuted: '#1E2235',\n colorMutedForeground: '#64748B',\n colorDestructive: '#F87171',\n colorDestructiveForeground:'#FFFFFF',\n colorAccent: '#818CF8',\n colorAccentForeground: '#FFFFFF',\n colorBorder: '#2D3148',\n colorInput: '#1A1D28',\n colorRing: '#6366F1',\n colorShadowLight: 'rgba(129,140,248,0.25)',\n colorShadowDark: 'rgba(0,0,0,0.5)',\n colorSurfaceGlass: 'rgba(26,29,40,0.85)',\n\n borderRadius: 'md',\n borderWidth: '1',\n borderStyle: 'solid',\n\n fontFamily: '\"Inter\", system-ui, sans-serif',\n fontHeading: '\"Inter\", system-ui, sans-serif',\n fontWeightBase: '400',\n fontWeightHeading: '500',\n letterSpacing: 'normal',\n textTransform: 'none',\n\n spacingScale: 1,\n buttonStyle: 'solid',\n cardShadow: 'sm',\n shadowStyle: 'glow',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n backgroundStyle: 'solid',\n headerStyle: 'solid',\n animationStyle: 'subtle',\n};\n\n// ─────────────────────────────────────────────\n// PRESETS MAP\n// ─────────────────────────────────────────────\nexport type DesignParadigm =\n | 'flat'\n | 'skeuomorphism'\n | 'material'\n | 'neumorphism'\n | 'glassmorphism'\n | 'brutalism'\n | 'claymorphism'\n | 'minimalism'\n | 'dark-moody';\n\nexport const themePresets: Record<DesignParadigm, ThemeTokens> = {\n flat: flatTheme,\n skeuomorphism: skeuomorphismTheme,\n material: materialTheme,\n neumorphism: neumorphismTheme,\n glassmorphism: glassmorphismTheme,\n brutalism: brutalismTheme,\n claymorphism: claymorphismTheme,\n minimalism: minimalismTheme,\n 'dark-moody': darkMoodyTheme,\n};\n\nexport const paradigmLabels: Record<DesignParadigm, string> = {\n flat: 'Flat design',\n skeuomorphism: 'Skeuomorphism',\n material: 'Material design',\n neumorphism: 'Neumorphism',\n glassmorphism: 'Glassmorphism',\n brutalism: 'Brutalism',\n claymorphism: 'Claymorphism',\n minimalism: 'Minimalism',\n 'dark-moody': 'Dark / moody',\n};\n\nexport const PRESET_KEYS_SELECTOR: DesignParadigm[] = [\n 'flat',\n 'material',\n 'neumorphism',\n 'glassmorphism',\n 'brutalism',\n 'dark-moody',\n];\n\n// ─────────────────────────────────────────────\n// CSS VAR RESOLVER\n// ─────────────────────────────────────────────\ntype ShadowStyle = NonNullable<ThemeTokens['shadowStyle']>;\ntype SurfaceBlur = NonNullable<ThemeTokens['surfaceBlur']>;\ntype LetterSpacing = NonNullable<ThemeTokens['letterSpacing']>;\ntype BorderRadius = NonNullable<ThemeTokens['borderRadius']>;\n\nconst shadowMap: Record<ShadowStyle, string> = {\n none: 'none',\n soft: '0 2px 8px 0 var(--color-shadow-dark)',\n 'hard-offset': '4px 4px 0px 0px var(--color-shadow-dark)',\n neumorphic: '6px 6px 14px var(--color-shadow-dark), -6px -6px 14px var(--color-shadow-light)',\n clay: '0 8px 0 var(--color-shadow-dark), 0 12px 28px var(--color-shadow-dark)',\n glow: '0 0 24px var(--color-shadow-light)',\n};\n\nconst blurMap: Record<SurfaceBlur, string> = {\n none: '0px',\n sm: '4px',\n md: '12px',\n lg: '24px',\n};\n\nconst letterSpacingMap: Record<LetterSpacing, string> = {\n tight: '-0.025em',\n normal: '0em',\n wide: '0.05em',\n wider: '0.15em',\n};\n\nconst borderRadiusMap: Record<BorderRadius, string> = {\n none: '0px',\n sm: '4px',\n md: '8px',\n lg: '16px',\n full: '9999px',\n};\n\nexport function buildCssVars(tokens: ThemeTokens): Record<string, string> {\n return {\n '--color-primary': tokens.colorPrimary,\n '--color-primary-hover': tokens.colorPrimaryHover,\n '--color-primary-foreground': tokens.colorPrimaryForeground ?? '#ffffff',\n '--color-secondary': tokens.colorSecondary,\n '--color-secondary-foreground': tokens.colorSecondaryForeground ?? '#ffffff',\n '--color-background': tokens.colorBackground,\n '--color-surface': tokens.colorSurface,\n '--color-text': tokens.colorText,\n '--color-text-muted': tokens.colorTextMuted,\n '--color-foreground': tokens.colorForeground ?? tokens.colorText,\n '--color-muted': tokens.colorMuted ?? tokens.colorSurface,\n '--color-muted-foreground': tokens.colorMutedForeground ?? tokens.colorTextMuted,\n '--color-destructive': tokens.colorDestructive ?? '#ef4444',\n '--color-destructive-foreground':tokens.colorDestructiveForeground ?? '#ffffff',\n '--color-accent': tokens.colorAccent ?? tokens.colorPrimary,\n '--color-accent-foreground': tokens.colorAccentForeground ?? '#ffffff',\n '--color-border': tokens.colorBorder ?? '#e2e8f0',\n '--color-input': tokens.colorInput ?? tokens.colorSurface,\n '--color-ring': tokens.colorRing ?? tokens.colorPrimary,\n '--color-shadow-light': tokens.colorShadowLight ?? '#ffffff',\n '--color-shadow-dark': tokens.colorShadowDark ?? '#b8bec7',\n '--color-surface-glass': tokens.colorSurfaceGlass ?? 'rgba(255,255,255,0.15)',\n '--shadow-card': shadowMap[tokens.shadowStyle ?? 'none'],\n '--surface-blur': blurMap[tokens.surfaceBlur ?? 'none'],\n '--surface-opacity': String(tokens.surfaceOpacity),\n '--letter-spacing': letterSpacingMap[tokens.letterSpacing ?? 'normal'],\n '--border-radius': borderRadiusMap[tokens.borderRadius],\n '--border-width': `${tokens.borderWidth}px`,\n '--border-style': tokens.borderStyle ?? '',\n '--font-family': tokens.fontFamily,\n '--font-heading': tokens.fontHeading,\n '--font-weight-base': tokens.fontWeightBase ?? '300',\n '--font-weight-heading': tokens.fontWeightHeading ?? '700',\n '--text-transform': tokens.textTransform ?? 'none',\n '--spacing-scale': String(tokens.spacingScale),\n };\n}\n","import React, { useState, useCallback } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { PuckApiProvider, usePuckContentType } from '@commercetools-demo/puck-api';\nimport type { ImportResult } from '@commercetools-demo/puck-types';\nimport { Button, Card, Stack, Text } from '@commercetools/nimbus';\nimport { EnsureNimbusProvider } from '../EnsureNimbusProvider';\n\ninterface InnerProps {\n backButton?: {\n label: string;\n onClick: () => void;\n icon: React.ReactElement;\n };\n}\n\nexport interface ImportContentTypesProps extends InnerProps {\n baseURL: string;\n projectKey: string;\n businessUnitKey: string;\n jwtToken: string;\n}\n\nconst ImportContentTypesInner: React.FC<InnerProps> = ({ backButton }) => {\n const history = useHistory();\n const { importDefaultContentTypes, loading, error, clearError } =\n usePuckContentType();\n const [result, setResult] = useState<ImportResult | null>(null);\n\n const handleBack = useCallback(() => {\n if (backButton?.onClick) {\n backButton.onClick();\n } else {\n history.push('/');\n }\n }, [backButton, history]);\n\n const handleImport = useCallback(async () => {\n clearError();\n setResult(null);\n try {\n const importResult = await importDefaultContentTypes();\n setResult(importResult);\n } catch {\n // Error is set by the hook\n }\n }, [importDefaultContentTypes, clearError]);\n\n return (\n <Stack direction=\"column\" gap=\"600\">\n {backButton && (\n <Button variant=\"ghost\" onPress={handleBack}>\n {backButton.icon}\n {backButton.label}\n </Button>\n )}\n <Text as=\"h1\" fontSize=\"2xl\" fontWeight=\"700\">Import default content types</Text>\n <Text color=\"neutral.11\">\n Import default content type definitions from samples. Existing content\n types with the same key may be skipped or cause errors.\n </Text>\n\n {error && (\n <Card.Root variant=\"outlined\">\n <Card.Body>\n <Stack direction=\"column\" gap=\"400\">\n <Text as=\"h2\" fontSize=\"xl\" fontWeight=\"700\">Error</Text>\n <Text color=\"critical.11\">{error}</Text>\n </Stack>\n </Card.Body>\n </Card.Root>\n )}\n\n <Stack direction=\"row\" gap=\"400\" justifyContent=\"center\">\n <Button variant=\"solid\" onPress={handleImport} isDisabled={loading}>\n {loading ? 'Importing…' : 'Import default content types'}\n </Button>\n </Stack>\n {result && (\n <Card.Root variant=\"outlined\">\n <Card.Body>\n <Stack direction=\"column\" gap=\"400\">\n <Text as=\"h2\" fontSize=\"xl\" fontWeight=\"700\">Result</Text>\n <Text>\n Imported: {result.imported.length} content type\n {result.imported.length !== 1 ? 's' : ''}.\n </Text>\n {result.imported.length > 0 && (\n <Text color=\"neutral.11\">\n {result.imported.join(', ')}\n </Text>\n )}\n {result.failed.length > 0 && (\n <>\n <Text color=\"critical.11\">\n Failed: {result.failed.length} content type\n {result.failed.length !== 1 ? 's' : ''}.\n </Text>\n <Stack direction=\"column\" gap=\"200\">\n {result.failed.map(({ key, error: err }) => (\n <Text key={key} color=\"critical.11\">\n {key}: {err}\n </Text>\n ))}\n </Stack>\n </>\n )}\n </Stack>\n </Card.Body>\n </Card.Root>\n )}\n </Stack>\n );\n};\n\nconst ImportContentTypes: React.FC<ImportContentTypesProps> = ({\n baseURL,\n projectKey,\n businessUnitKey,\n jwtToken,\n ...innerProps\n}) => (\n <PuckApiProvider\n baseURL={baseURL}\n projectKey={projectKey}\n businessUnitKey={businessUnitKey}\n jwtToken={jwtToken}\n >\n <EnsureNimbusProvider>\n <ImportContentTypesInner {...innerProps} />\n </EnsureNimbusProvider>\n </PuckApiProvider>\n);\n\nexport default ImportContentTypes;\n"],"mappings":"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","names":["useState","Button","Stack","jsx","jsx","jsxs","Stack","Button","SELECT_STYLE","useState","useState","useCallback","useHistory","PuckApiProvider","Button","Card","Stack","Text","jsx","jsxs","useHistory","useState","useCallback","Stack","Button","Text","Card","PuckApiProvider"]}
1
+ {"version":3,"sources":["../src/components/theme-editor.tsx","../src/constants.ts","../src/EnsureNimbusProvider.tsx","../src/components/theme-preset-selector.tsx","../src/presets.ts","../src/components/import-content-types.tsx"],"sourcesContent":["import React, { useEffect, useState, useCallback } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { PuckApiProvider, usePuckConfiguration } from '@commercetools-demo/puck-api';\nimport type { ThemeTokens } from '@commercetools-demo/puck-types';\nimport {\n Button,\n Card as NimbusCard,\n Grid as NimbusGrid,\n LoadingSpinner,\n NumberInput as NimbusNumberInput,\n Stack,\n Text as NimbusText,\n TextInput as NimbusTextInput,\n} from '@commercetools/nimbus';\nimport { DEFAULT_THEME } from '../constants';\nimport { EnsureNimbusProvider } from '../EnsureNimbusProvider';\nimport ThemePresetSelector from './theme-preset-selector';\n\n// ---------------------------------------------------------------------------\n// Thin Nimbus adapters\n//\n// This is a large, highly repetitive settings form. To keep the markup below\n// readable and avoid a risky line-by-line rewrite, these adapters preserve the\n// original component call-sites while rendering Nimbus components underneath.\n// ---------------------------------------------------------------------------\n\nconst SCALE_TO_GAP: Record<string, string> = {\n xs: '100',\n s: '200',\n m: '400',\n l: '600',\n xl: '800',\n};\n\ninterface SpacingsLayoutProps {\n scale?: string;\n alignItems?: string;\n justifyContent?: string;\n children?: React.ReactNode;\n}\n\nconst Spacings = {\n Stack: ({ scale = 'm', alignItems, justifyContent, children }: SpacingsLayoutProps) => (\n <Stack\n direction=\"column\"\n gap={SCALE_TO_GAP[scale] ?? '400'}\n alignItems={alignItems}\n justifyContent={justifyContent}\n >\n {children}\n </Stack>\n ),\n Inline: ({ scale = 'm', alignItems, justifyContent, children }: SpacingsLayoutProps) => (\n <Stack\n direction=\"row\"\n gap={SCALE_TO_GAP[scale] ?? '400'}\n alignItems={alignItems}\n justifyContent={justifyContent}\n >\n {children}\n </Stack>\n ),\n};\n\nconst TONE_TO_COLOR: Record<string, string | undefined> = {\n secondary: 'neutral.11',\n critical: 'critical.11',\n positive: 'positive.11',\n};\n\nconst Text = {\n Headline: ({ as = 'h2', children }: { as?: React.ElementType; children?: React.ReactNode }) => (\n <NimbusText as={as} fontSize={as === 'h1' ? '2xl' : 'xl'} fontWeight=\"700\">\n {children}\n </NimbusText>\n ),\n Body: ({ tone, children }: { tone?: string; children?: React.ReactNode }) => (\n <NimbusText color={tone ? TONE_TO_COLOR[tone] : undefined}>{children}</NimbusText>\n ),\n};\n\nconst Card = ({ children }: { children?: React.ReactNode }) => (\n <NimbusCard.Root variant=\"outlined\">\n <NimbusCard.Body>{children}</NimbusCard.Body>\n </NimbusCard.Root>\n);\n\nconst Grid = Object.assign(\n ({\n gridGap,\n gridTemplateColumns,\n gridAutoColumns,\n children,\n }: {\n gridGap?: string;\n gridTemplateColumns?: string;\n gridAutoColumns?: string;\n children?: React.ReactNode;\n }) => (\n <NimbusGrid gap={gridGap} templateColumns={gridTemplateColumns} autoColumns={gridAutoColumns}>\n {children}\n </NimbusGrid>\n ),\n {\n Item: ({ children }: { children?: React.ReactNode }) => (\n <NimbusGrid.Item>{children}</NimbusGrid.Item>\n ),\n }\n);\n\ninterface AdapterButtonProps {\n label?: React.ReactNode;\n onClick?: () => void;\n isDisabled?: boolean;\n icon?: React.ReactNode;\n children?: React.ReactNode;\n}\nconst PrimaryButton = ({ label, onClick, isDisabled }: AdapterButtonProps) => (\n <Button variant=\"solid\" onPress={onClick} isDisabled={isDisabled}>{label}</Button>\n);\nconst SecondaryButton = ({ label, onClick, isDisabled }: AdapterButtonProps) => (\n <Button variant=\"outline\" onPress={onClick} isDisabled={isDisabled}>{label}</Button>\n);\nconst FlatButton = ({ label, onClick, isDisabled, icon }: AdapterButtonProps) => (\n <Button variant=\"ghost\" onPress={onClick} isDisabled={isDisabled}>{icon}{label}</Button>\n);\n\nconst FieldLabel = ({ title, htmlFor }: { title: string; htmlFor?: string }) => (\n <label htmlFor={htmlFor} style={{ display: 'block', marginBottom: 4, fontSize: 13, fontWeight: 600 }}>\n {title}\n </label>\n);\n\ninterface AdapterInputProps {\n id?: string;\n value?: string | number;\n onChange?: (e: { target: { value: string } }) => void;\n horizontalConstraint?: number;\n}\nconst TextInput = ({ id, value, onChange }: AdapterInputProps) => (\n <NimbusTextInput\n id={id}\n value={value == null ? '' : String(value)}\n onChange={(v) => onChange?.({ target: { value: v } })}\n />\n);\nconst NumberInput = ({ id, value, onChange }: AdapterInputProps) => (\n <NimbusNumberInput\n id={id}\n value={value == null || value === '' ? 0 : Number(value)}\n onChange={(n) => onChange?.({ target: { value: Number.isNaN(n) ? '' : String(n) } })}\n />\n);\n\nconst BORDER_RADIUS_OPTIONS = [\n { value: 'none', label: 'None' },\n { value: 'sm', label: 'Small' },\n { value: 'md', label: 'Medium' },\n { value: 'lg', label: 'Large' },\n { value: 'full', label: 'Full' },\n];\n\nconst BORDER_WIDTH_OPTIONS = [\n { value: '0', label: '0' },\n { value: '1', label: '1' },\n { value: '2', label: '2' },\n];\n\nconst BUTTON_STYLE_OPTIONS = [\n { value: 'solid', label: 'Solid' },\n { value: 'outline', label: 'Outline' },\n { value: 'ghost', label: 'Ghost' },\n];\n\nconst CARD_SHADOW_OPTIONS = [\n { value: 'none', label: 'None' },\n { value: 'sm', label: 'Small' },\n { value: 'md', label: 'Medium' },\n { value: 'lg', label: 'Large' },\n];\n\nconst HEADER_STYLE_OPTIONS = [\n { value: 'transparent', label: 'Transparent' },\n { value: 'solid', label: 'Solid' },\n { value: 'minimal', label: 'Minimal' },\n];\n\nconst SHADOW_STYLE_OPTIONS = [\n { value: 'none', label: 'None' },\n { value: 'soft', label: 'Soft' },\n { value: 'hard-offset', label: 'Hard offset' },\n { value: 'neumorphic', label: 'Neumorphic' },\n { value: 'clay', label: 'Clay' },\n { value: 'glow', label: 'Glow' },\n];\n\nconst SURFACE_BLUR_OPTIONS = [\n { value: 'none', label: 'None' },\n { value: 'sm', label: 'Small' },\n { value: 'md', label: 'Medium' },\n { value: 'lg', label: 'Large' },\n];\n\nconst FONT_WEIGHT_BASE_OPTIONS = [\n { value: '300', label: '300' },\n { value: '400', label: '400' },\n { value: '500', label: '500' },\n];\n\nconst FONT_WEIGHT_HEADING_OPTIONS = [\n { value: '400', label: '400' },\n { value: '500', label: '500' },\n { value: '700', label: '700' },\n { value: '900', label: '900' },\n];\n\nconst LETTER_SPACING_OPTIONS = [\n { value: 'tight', label: 'Tight' },\n { value: 'normal', label: 'Normal' },\n { value: 'wide', label: 'Wide' },\n { value: 'wider', label: 'Wider' },\n];\n\nconst TEXT_TRANSFORM_OPTIONS = [\n { value: 'none', label: 'None' },\n { value: 'uppercase', label: 'Uppercase' },\n];\n\nconst BORDER_STYLE_OPTIONS = [\n { value: 'solid', label: 'Solid' },\n { value: 'dashed', label: 'Dashed' },\n { value: 'double', label: 'Double' },\n];\n\nconst BACKGROUND_STYLE_OPTIONS = [\n { value: 'solid', label: 'Solid' },\n { value: 'gradient', label: 'Gradient' },\n { value: 'noise', label: 'Noise' },\n];\n\nconst SELECT_STYLE: React.CSSProperties = {\n display: 'block',\n padding: '6px 8px',\n border: '1px solid #ccc',\n borderRadius: '4px',\n fontSize: '14px',\n background: '#fff',\n cursor: 'pointer',\n};\n\ninterface InnerProps {\n backButton?: {\n label: string;\n onClick: () => void;\n icon: React.ReactElement;\n };\n}\n\nexport interface ThemeManagerProps extends InnerProps {\n baseURL: string;\n projectKey: string;\n businessUnitKey: string;\n jwtToken: string;\n}\n\nconst ThemeEditorInner: React.FC<InnerProps> = ({ backButton }) => {\n const history = useHistory();\n const {\n theme,\n loading,\n error,\n fetchTheme,\n saveTheme,\n updateTheme,\n clearError,\n } = usePuckConfiguration();\n\n const [formValues, setFormValues] = useState<ThemeTokens>(DEFAULT_THEME);\n const [saving, setSaving] = useState(false);\n const [saveSuccess, setSaveSuccess] = useState(false);\n const [isConfigExpanded, setIsConfigExpanded] = useState(false);\n\n const applyThemeToForm = useCallback((t: ThemeTokens | null | undefined) => {\n if (t == null || typeof t !== 'object') {\n setFormValues(DEFAULT_THEME);\n return;\n }\n setFormValues({\n ...DEFAULT_THEME,\n ...t,\n colorPrimary: t.colorPrimary ?? DEFAULT_THEME.colorPrimary,\n colorPrimaryHover: t.colorPrimaryHover ?? DEFAULT_THEME.colorPrimaryHover,\n colorSecondary: t.colorSecondary ?? DEFAULT_THEME.colorSecondary,\n colorBackground: t.colorBackground ?? DEFAULT_THEME.colorBackground,\n colorSurface: t.colorSurface ?? DEFAULT_THEME.colorSurface,\n colorText: t.colorText ?? DEFAULT_THEME.colorText,\n colorTextMuted: t.colorTextMuted ?? DEFAULT_THEME.colorTextMuted,\n borderRadius: t.borderRadius ?? DEFAULT_THEME.borderRadius,\n borderWidth: t.borderWidth ?? DEFAULT_THEME.borderWidth,\n fontFamily: t.fontFamily ?? DEFAULT_THEME.fontFamily,\n fontHeading: t.fontHeading ?? DEFAULT_THEME.fontHeading,\n spacingScale:\n typeof t.spacingScale === 'number'\n ? t.spacingScale\n : DEFAULT_THEME.spacingScale,\n buttonStyle: t.buttonStyle ?? DEFAULT_THEME.buttonStyle,\n cardShadow: t.cardShadow ?? DEFAULT_THEME.cardShadow,\n headerStyle: t.headerStyle ?? DEFAULT_THEME.headerStyle,\n colorPrimaryForeground: t.colorPrimaryForeground ?? undefined,\n colorSecondaryForeground: t.colorSecondaryForeground ?? undefined,\n colorForeground: t.colorForeground ?? undefined,\n colorMuted: t.colorMuted ?? undefined,\n colorMutedForeground: t.colorMutedForeground ?? undefined,\n colorDestructive: t.colorDestructive ?? undefined,\n colorDestructiveForeground: t.colorDestructiveForeground ?? undefined,\n colorAccent: t.colorAccent ?? undefined,\n colorAccentForeground: t.colorAccentForeground ?? undefined,\n colorBorder: t.colorBorder ?? undefined,\n colorInput: t.colorInput ?? undefined,\n colorRing: t.colorRing ?? undefined,\n colorShadowLight: t.colorShadowLight ?? DEFAULT_THEME.colorShadowLight,\n colorShadowDark: t.colorShadowDark ?? DEFAULT_THEME.colorShadowDark,\n colorSurfaceGlass: t.colorSurfaceGlass ?? DEFAULT_THEME.colorSurfaceGlass,\n shadowStyle: t.shadowStyle ?? DEFAULT_THEME.shadowStyle,\n surfaceBlur: t.surfaceBlur ?? DEFAULT_THEME.surfaceBlur,\n surfaceOpacity:\n typeof t.surfaceOpacity === 'number'\n ? t.surfaceOpacity\n : DEFAULT_THEME.surfaceOpacity,\n fontWeightBase: t.fontWeightBase ?? DEFAULT_THEME.fontWeightBase,\n fontWeightHeading: t.fontWeightHeading ?? DEFAULT_THEME.fontWeightHeading,\n letterSpacing: t.letterSpacing ?? DEFAULT_THEME.letterSpacing,\n textTransform: t.textTransform ?? DEFAULT_THEME.textTransform,\n borderStyle: t.borderStyle ?? DEFAULT_THEME.borderStyle,\n backgroundStyle: t.backgroundStyle ?? DEFAULT_THEME.backgroundStyle,\n });\n }, []);\n\n useEffect(() => {\n void fetchTheme();\n }, [fetchTheme]);\n\n useEffect(() => {\n applyThemeToForm(theme);\n }, [theme, applyThemeToForm]);\n\n const handleChange = useCallback(\n <K extends keyof ThemeTokens>(key: K, value: ThemeTokens[K]) => {\n setFormValues((prev) => ({ ...prev, [key]: value }));\n setSaveSuccess(false);\n },\n []\n );\n\n const handleSave = useCallback(async () => {\n setSaving(true);\n setSaveSuccess(false);\n clearError();\n try {\n await saveTheme(formValues);\n setSaveSuccess(true);\n } finally {\n setSaving(false);\n }\n }, [formValues, saveTheme, clearError]);\n\n const handleResetToDefault = useCallback(async () => {\n setFormValues(DEFAULT_THEME);\n setSaveSuccess(false);\n if (theme != null) {\n setSaving(true);\n clearError();\n try {\n await updateTheme(DEFAULT_THEME);\n setSaveSuccess(true);\n } finally {\n setSaving(false);\n }\n }\n }, [theme, updateTheme, clearError]);\n\n if (loading && theme == null) {\n return (\n <div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center' }}>\n <LoadingSpinner />\n </div>\n );\n }\n\n return (\n <Spacings.Stack scale=\"l\">\n {backButton && (\n <FlatButton\n onClick={() => history.push('/')}\n label={backButton.label}\n icon={backButton.icon as any}\n >\n {backButton.label}\n </FlatButton>\n )}\n <div style={{ padding: '0 20px' }}>\n <Spacings.Stack scale=\"l\" alignItems=\"flex-start\">\n <Text.Headline as=\"h1\">Theme</Text.Headline>\n <Text.Body tone=\"secondary\">\n Customize colors, typography, spacing, and component styles.\n </Text.Body>\n </Spacings.Stack>\n </div>\n {error && (\n <Card>\n <Spacings.Stack scale=\"m\">\n <Text.Headline as=\"h2\">Error</Text.Headline>\n <Text.Body tone=\"critical\">{error}</Text.Body>\n </Spacings.Stack>\n </Card>\n )}\n\n {saveSuccess && (\n <Text.Body tone=\"positive\">Theme saved successfully.</Text.Body>\n )}\n\n <Spacings.Stack scale=\"l\">\n <div style={{ padding: '0 20px' }}>\n <Spacings.Inline scale=\"s\">\n <ThemePresetSelector onSelectPreset={applyThemeToForm} />\n </Spacings.Inline>\n </div>\n <Spacings.Stack scale=\"s\">\n <div style={{ padding: '0 20px' }}>\n <button\n type=\"button\"\n onClick={() => setIsConfigExpanded((prev) => !prev)}\n aria-expanded={isConfigExpanded}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n padding: '12px 16px',\n margin: 0,\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n font: 'inherit',\n textAlign: 'left',\n background: 'transparent',\n }}\n >\n <Text.Headline as=\"h2\">Theme configuration</Text.Headline>\n <span\n style={{\n display: 'inline-block',\n width: 0,\n height: 0,\n borderLeft: '5px solid transparent',\n borderRight: '5px solid transparent',\n borderTop: '6px solid currentColor',\n transform: isConfigExpanded ? 'rotate(180deg)' : 'none',\n opacity: 0.7,\n }}\n />\n </button>\n </div>\n {isConfigExpanded && (\n <div style={{ padding: '0 20px' }}>\n <Spacings.Stack scale=\"l\">\n <Spacings.Stack scale=\"xl\">\n <Text.Headline as=\"h2\">Colors</Text.Headline>\n <Grid\n gridGap=\"16px\"\n gridAutoColumns=\"1fr\"\n gridTemplateColumns=\"repeat(auto-fill, minmax(300px, 1fr))\"\n >\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Primary\" htmlFor=\"colorPrimary\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorPrimary\"\n value={formValues.colorPrimary}\n onChange={(e) =>\n handleChange('colorPrimary', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n value={formValues.colorPrimary}\n onChange={(e) =>\n handleChange('colorPrimary', e.target.value)\n }\n horizontalConstraint={3}\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel\n title=\"Primary Hover\"\n htmlFor=\"colorPrimaryHover\"\n />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorPrimaryHover\"\n value={formValues.colorPrimaryHover}\n onChange={(e) =>\n handleChange('colorPrimaryHover', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorPrimaryHover}\n onChange={(e) =>\n handleChange('colorPrimaryHover', e.target.value)\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Secondary\" htmlFor=\"colorSecondary\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorSecondary\"\n value={formValues.colorSecondary}\n onChange={(e) =>\n handleChange('colorSecondary', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorSecondary}\n onChange={(e) =>\n handleChange('colorSecondary', e.target.value)\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel\n title=\"Background\"\n htmlFor=\"colorBackground\"\n />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorBackground\"\n value={formValues.colorBackground}\n onChange={(e) =>\n handleChange('colorBackground', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorBackground}\n onChange={(e) =>\n handleChange('colorBackground', e.target.value)\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Surface\" htmlFor=\"colorSurface\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorSurface\"\n value={formValues.colorSurface}\n onChange={(e) =>\n handleChange('colorSurface', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorSurface}\n onChange={(e) =>\n handleChange('colorSurface', e.target.value)\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Text\" htmlFor=\"colorText\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorText\"\n value={formValues.colorText}\n onChange={(e) =>\n handleChange('colorText', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorText}\n onChange={(e) =>\n handleChange('colorText', e.target.value)\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Text Muted\" htmlFor=\"colorTextMuted\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorTextMuted\"\n value={formValues.colorTextMuted}\n onChange={(e) =>\n handleChange('colorTextMuted', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorTextMuted}\n onChange={(e) =>\n handleChange('colorTextMuted', e.target.value)\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n </Grid>\n\n <Text.Headline as=\"h2\">Extended colors</Text.Headline>\n <Text.Body tone=\"secondary\">\n Optional theme tokens for foregrounds, muted, destructive,\n accent, border, input, and ring.\n </Text.Body>\n <Grid\n gridGap=\"16px\"\n gridAutoColumns=\"1fr\"\n gridTemplateColumns=\"repeat(auto-fill, minmax(300px, 1fr))\"\n >\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel\n title=\"Primary Foreground\"\n htmlFor=\"colorPrimaryForeground\"\n />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorPrimaryForeground\"\n value={formValues.colorPrimaryForeground || '#000000'}\n onChange={(e) =>\n handleChange('colorPrimaryForeground', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorPrimaryForeground ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorPrimaryForeground',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel\n title=\"Secondary Foreground\"\n htmlFor=\"colorSecondaryForeground\"\n />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorSecondaryForeground\"\n value={formValues.colorSecondaryForeground || '#000000'}\n onChange={(e) =>\n handleChange('colorSecondaryForeground', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorSecondaryForeground ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorSecondaryForeground',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Foreground\" htmlFor=\"colorForeground\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorForeground\"\n value={formValues.colorForeground || '#000000'}\n onChange={(e) =>\n handleChange('colorForeground', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorForeground ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorForeground',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Muted\" htmlFor=\"colorMuted\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorMuted\"\n value={formValues.colorMuted || '#000000'}\n onChange={(e) =>\n handleChange('colorMuted', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorMuted ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorMuted',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel\n title=\"Muted Foreground\"\n htmlFor=\"colorMutedForeground\"\n />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorMutedForeground\"\n value={formValues.colorMutedForeground || '#000000'}\n onChange={(e) =>\n handleChange('colorMutedForeground', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorMutedForeground ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorMutedForeground',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Destructive\" htmlFor=\"colorDestructive\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorDestructive\"\n value={formValues.colorDestructive || '#000000'}\n onChange={(e) =>\n handleChange('colorDestructive', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorDestructive ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorDestructive',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel\n title=\"Destructive Foreground\"\n htmlFor=\"colorDestructiveForeground\"\n />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorDestructiveForeground\"\n value={formValues.colorDestructiveForeground || '#000000'}\n onChange={(e) =>\n handleChange('colorDestructiveForeground', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorDestructiveForeground ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorDestructiveForeground',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Accent\" htmlFor=\"colorAccent\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorAccent\"\n value={formValues.colorAccent || '#000000'}\n onChange={(e) =>\n handleChange('colorAccent', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorAccent ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorAccent',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel\n title=\"Accent Foreground\"\n htmlFor=\"colorAccentForeground\"\n />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorAccentForeground\"\n value={formValues.colorAccentForeground || '#000000'}\n onChange={(e) =>\n handleChange('colorAccentForeground', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorAccentForeground ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorAccentForeground',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Border\" htmlFor=\"colorBorder\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorBorder\"\n value={formValues.colorBorder || '#000000'}\n onChange={(e) =>\n handleChange('colorBorder', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorBorder ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorBorder',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Input\" htmlFor=\"colorInput\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorInput\"\n value={formValues.colorInput || '#000000'}\n onChange={(e) =>\n handleChange('colorInput', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorInput ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorInput',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Ring\" htmlFor=\"colorRing\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorRing\"\n value={formValues.colorRing || '#000000'}\n onChange={(e) =>\n handleChange('colorRing', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorRing ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorRing',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n </Grid>\n\n <Text.Headline as=\"h2\">Typography</Text.Headline>\n <Grid\n gridGap=\"16px\"\n gridAutoColumns=\"1fr\"\n gridTemplateColumns=\"repeat(auto-fill, minmax(300px, 1fr))\"\n >\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Font Family\" htmlFor=\"fontFamily\" />\n <TextInput\n horizontalConstraint={4}\n id=\"fontFamily\"\n value={formValues.fontFamily}\n onChange={(e) =>\n handleChange('fontFamily', e.target.value)\n }\n />\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Heading Font\" htmlFor=\"fontHeading\" />\n <TextInput\n horizontalConstraint={4}\n id=\"fontHeading\"\n value={formValues.fontHeading}\n onChange={(e) =>\n handleChange('fontHeading', e.target.value)\n }\n />\n </div>\n </Grid.Item>\n </Grid>\n\n <Text.Headline as=\"h2\">Layout &amp; Components</Text.Headline>\n <Grid\n gridGap=\"16px\"\n gridAutoColumns=\"1fr\"\n gridTemplateColumns=\"repeat(auto-fill, minmax(300px, 1fr))\"\n >\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Spacing Scale\" htmlFor=\"spacingScale\" />\n <NumberInput\n id=\"spacingScale\"\n horizontalConstraint={3}\n value={formValues.spacingScale}\n onChange={(e) =>\n handleChange(\n 'spacingScale',\n e.target.value === '' ? 0 : Number(e.target.value)\n )\n }\n />\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Border Radius\" htmlFor=\"borderRadius\" />\n <select\n id=\"borderRadius\"\n value={formValues.borderRadius}\n onChange={(e) =>\n handleChange(\n 'borderRadius',\n e.target.value as ThemeTokens['borderRadius']\n )\n }\n style={SELECT_STYLE}\n >\n {BORDER_RADIUS_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Border Width\" htmlFor=\"borderWidth\" />\n <select\n id=\"borderWidth\"\n value={formValues.borderWidth}\n onChange={(e) =>\n handleChange(\n 'borderWidth',\n e.target.value as ThemeTokens['borderWidth']\n )\n }\n style={SELECT_STYLE}\n >\n {BORDER_WIDTH_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Button Style\" htmlFor=\"buttonStyle\" />\n <select\n id=\"buttonStyle\"\n value={formValues.buttonStyle}\n onChange={(e) =>\n handleChange(\n 'buttonStyle',\n e.target.value as ThemeTokens['buttonStyle']\n )\n }\n style={SELECT_STYLE}\n >\n {BUTTON_STYLE_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Card Shadow\" htmlFor=\"cardShadow\" />\n <select\n id=\"cardShadow\"\n value={formValues.cardShadow}\n onChange={(e) =>\n handleChange(\n 'cardShadow',\n e.target.value as ThemeTokens['cardShadow']\n )\n }\n style={SELECT_STYLE}\n >\n {CARD_SHADOW_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Header Style\" htmlFor=\"headerStyle\" />\n <select\n id=\"headerStyle\"\n value={formValues.headerStyle}\n onChange={(e) =>\n handleChange(\n 'headerStyle',\n e.target.value as ThemeTokens['headerStyle']\n )\n }\n style={SELECT_STYLE}\n >\n {HEADER_STYLE_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n </Grid>\n\n <Text.Headline as=\"h2\">Shadow &amp; surface</Text.Headline>\n <Grid\n gridGap=\"16px\"\n gridAutoColumns=\"1fr\"\n gridTemplateColumns=\"repeat(auto-fill, minmax(300px, 1fr))\"\n >\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Shadow Light\" htmlFor=\"colorShadowLight\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorShadowLight\"\n value={formValues.colorShadowLight ?? '#ffffff'}\n onChange={(e) =>\n handleChange('colorShadowLight', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorShadowLight ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorShadowLight',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Shadow Dark\" htmlFor=\"colorShadowDark\" />\n <Spacings.Inline alignItems=\"center\" scale=\"s\">\n <input\n type=\"color\"\n id=\"colorShadowDark\"\n value={formValues.colorShadowDark ?? '#b8bec7'}\n onChange={(e) =>\n handleChange('colorShadowDark', e.target.value)\n }\n style={{ width: 40, height: 32, cursor: 'pointer' }}\n />\n <TextInput\n horizontalConstraint={3}\n value={formValues.colorShadowDark ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorShadowDark',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </Spacings.Inline>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Surface Glass\" htmlFor=\"colorSurfaceGlass\" />\n <TextInput\n horizontalConstraint={3}\n id=\"colorSurfaceGlass\"\n value={formValues.colorSurfaceGlass ?? ''}\n onChange={(e) =>\n handleChange(\n 'colorSurfaceGlass',\n (e.target as HTMLInputElement).value\n )\n }\n />\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Shadow Style\" htmlFor=\"shadowStyle\" />\n <select\n id=\"shadowStyle\"\n value={formValues.shadowStyle ?? DEFAULT_THEME.shadowStyle}\n onChange={(e) =>\n handleChange(\n 'shadowStyle',\n e.target.value as ThemeTokens['shadowStyle']\n )\n }\n style={SELECT_STYLE}\n >\n {SHADOW_STYLE_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Surface Blur\" htmlFor=\"surfaceBlur\" />\n <select\n id=\"surfaceBlur\"\n value={formValues.surfaceBlur ?? DEFAULT_THEME.surfaceBlur}\n onChange={(e) =>\n handleChange(\n 'surfaceBlur',\n e.target.value as ThemeTokens['surfaceBlur']\n )\n }\n style={SELECT_STYLE}\n >\n {SURFACE_BLUR_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Surface Opacity\" htmlFor=\"surfaceOpacity\" />\n <NumberInput\n id=\"surfaceOpacity\"\n horizontalConstraint={3}\n value={formValues.surfaceOpacity ?? 1}\n onChange={(e) =>\n handleChange(\n 'surfaceOpacity',\n e.target.value === ''\n ? 0\n : Math.min(1, Math.max(0, Number(e.target.value)))\n )\n }\n />\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Border Style\" htmlFor=\"borderStyle\" />\n <select\n id=\"borderStyle\"\n value={formValues.borderStyle ?? DEFAULT_THEME.borderStyle}\n onChange={(e) =>\n handleChange(\n 'borderStyle',\n e.target.value as ThemeTokens['borderStyle']\n )\n }\n style={SELECT_STYLE}\n >\n {BORDER_STYLE_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Background Style\" htmlFor=\"backgroundStyle\" />\n <select\n id=\"backgroundStyle\"\n value={formValues.backgroundStyle ?? DEFAULT_THEME.backgroundStyle}\n onChange={(e) =>\n handleChange(\n 'backgroundStyle',\n e.target.value as ThemeTokens['backgroundStyle']\n )\n }\n style={SELECT_STYLE}\n >\n {BACKGROUND_STYLE_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n </Grid>\n\n <Text.Headline as=\"h2\">\n Typography (weight &amp; transform)\n </Text.Headline>\n <Grid\n gridGap=\"16px\"\n gridAutoColumns=\"1fr\"\n gridTemplateColumns=\"repeat(auto-fill, minmax(300px, 1fr))\"\n >\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Font Weight Base\" htmlFor=\"fontWeightBase\" />\n <select\n id=\"fontWeightBase\"\n value={formValues.fontWeightBase ?? DEFAULT_THEME.fontWeightBase}\n onChange={(e) =>\n handleChange(\n 'fontWeightBase',\n e.target.value as ThemeTokens['fontWeightBase']\n )\n }\n style={SELECT_STYLE}\n >\n {FONT_WEIGHT_BASE_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Font Weight Heading\" htmlFor=\"fontWeightHeading\" />\n <select\n id=\"fontWeightHeading\"\n value={formValues.fontWeightHeading ?? DEFAULT_THEME.fontWeightHeading}\n onChange={(e) =>\n handleChange(\n 'fontWeightHeading',\n e.target.value as ThemeTokens['fontWeightHeading']\n )\n }\n style={SELECT_STYLE}\n >\n {FONT_WEIGHT_HEADING_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Letter Spacing\" htmlFor=\"letterSpacing\" />\n <select\n id=\"letterSpacing\"\n value={formValues.letterSpacing ?? DEFAULT_THEME.letterSpacing}\n onChange={(e) =>\n handleChange(\n 'letterSpacing',\n e.target.value as ThemeTokens['letterSpacing']\n )\n }\n style={SELECT_STYLE}\n >\n {LETTER_SPACING_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n <Grid.Item>\n <div style={{ marginBottom: '1.5rem' }}>\n <FieldLabel title=\"Text Transform\" htmlFor=\"textTransform\" />\n <select\n id=\"textTransform\"\n value={formValues.textTransform ?? DEFAULT_THEME.textTransform}\n onChange={(e) =>\n handleChange(\n 'textTransform',\n e.target.value as ThemeTokens['textTransform']\n )\n }\n style={SELECT_STYLE}\n >\n {TEXT_TRANSFORM_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </Grid.Item>\n </Grid>\n\n <Spacings.Inline>\n <PrimaryButton\n label={saving ? 'Saving…' : 'Save'}\n onClick={handleSave}\n isDisabled={saving}\n />\n <SecondaryButton\n label=\"Reset to default\"\n onClick={handleResetToDefault}\n isDisabled={saving}\n />\n </Spacings.Inline>\n </Spacings.Stack>\n </Spacings.Stack>\n </div>\n )}\n </Spacings.Stack>\n </Spacings.Stack>\n </Spacings.Stack>\n );\n};\n\nconst ThemeManager: React.FC<ThemeManagerProps> = ({\n baseURL,\n projectKey,\n businessUnitKey,\n jwtToken,\n ...innerProps\n}) => (\n <PuckApiProvider\n baseURL={baseURL}\n projectKey={projectKey}\n businessUnitKey={businessUnitKey}\n jwtToken={jwtToken}\n >\n <EnsureNimbusProvider>\n <ThemeEditorInner {...innerProps} />\n </EnsureNimbusProvider>\n </PuckApiProvider>\n);\n\nexport default ThemeManager;\n","import type { ThemeTokens } from '@commercetools-demo/puck-types';\n\nexport const DEFAULT_THEME: ThemeTokens = {\n colorPrimary: '#0f766e',\n colorPrimaryHover: '#0d9488',\n colorSecondary: '#64748b',\n colorBackground: '#ffffff',\n colorSurface: '#f8fafc',\n colorText: '#0f172a',\n colorTextMuted: '#64748b',\n borderRadius: 'md',\n borderWidth: '1',\n fontFamily: 'system-ui, sans-serif',\n fontHeading: 'system-ui, sans-serif',\n spacingScale: 8,\n buttonStyle: 'solid',\n cardShadow: 'md',\n headerStyle: 'solid',\n colorShadowLight: '#ffffff',\n colorShadowDark: '#b8bec7',\n colorSurfaceGlass: 'rgba(255,255,255,0.18)',\n shadowStyle: 'none',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n fontWeightBase: '400',\n fontWeightHeading: '700',\n letterSpacing: 'normal',\n textTransform: 'none',\n borderStyle: 'solid',\n backgroundStyle: 'solid',\n};\n","import React, { type PropsWithChildren } from 'react';\nimport { ChakraProvider, createSystem } from '@chakra-ui/react/styled-system';\nimport {\n NimbusI18nProvider,\n _RegionProvider,\n system as nimbusSystem,\n} from '@commercetools/nimbus';\n\nconst SCOPED_SYSTEM_KEY = Symbol.for(\n '@commercetools-demo/puck:nimbus-scoped-system'\n);\n\nconst globalScope = globalThis as unknown as Record<\n symbol,\n ReturnType<typeof createSystem> | undefined\n>;\n\nconst scopedSystem: ReturnType<typeof createSystem> =\n globalScope[SCOPED_SYSTEM_KEY] ??\n (globalScope[SCOPED_SYSTEM_KEY] = createSystem({\n // `_config` is the fully-merged Nimbus + Chakra config used to build the\n // stock system; reusing it keeps all Nimbus theming intact.\n ...(nimbusSystem as unknown as { _config: Record<string, unknown> })._config,\n preflight: false,\n globalCss: {},\n }));\n\nexport const EnsureNimbusProvider: React.FC<PropsWithChildren<{ locale?: string }>> = ({\n locale = 'en',\n children,\n}) => (\n <ChakraProvider value={scopedSystem}>\n <NimbusI18nProvider locale={locale}>\n <_RegionProvider>{children}</_RegionProvider>\n </NimbusI18nProvider>\n </ChakraProvider>\n);\n","import React, { useState } from 'react';\nimport type { ThemeTokens } from '@commercetools-demo/puck-types';\nimport { Button, Stack } from '@commercetools/nimbus';\nimport {\n themePresets,\n paradigmLabels,\n PRESET_KEYS_SELECTOR,\n type DesignParadigm,\n} from '../presets';\n\nconst PRESET_OPTIONS = [\n { value: '', label: 'Choose a preset…' },\n ...PRESET_KEYS_SELECTOR.map((key: DesignParadigm) => ({\n value: key,\n label: paradigmLabels[key],\n })),\n];\n\nconst SELECT_STYLE: React.CSSProperties = {\n display: 'block',\n padding: '6px 8px',\n border: '1px solid #ccc',\n borderRadius: '4px',\n fontSize: '14px',\n background: '#fff',\n cursor: 'pointer',\n};\n\ninterface ThemePresetSelectorProps {\n onSelectPreset: (tokens: ThemeTokens) => void;\n}\n\nconst ThemePresetSelector: React.FC<ThemePresetSelectorProps> = ({\n onSelectPreset,\n}) => {\n const [selectedKey, setSelectedKey] = useState<string>('');\n\n const handleApply = () => {\n if (selectedKey && selectedKey in themePresets) {\n onSelectPreset(themePresets[selectedKey as DesignParadigm]);\n }\n };\n\n return (\n <Stack direction=\"column\" gap=\"200\">\n <label\n htmlFor=\"theme-preset-select\"\n style={{ display: 'block', marginBottom: 4, fontSize: 13, fontWeight: 600 }}\n >\n Quick apply preset\n </label>\n <Stack direction=\"row\" gap=\"200\" alignItems=\"center\">\n <select\n id=\"theme-preset-select\"\n value={selectedKey}\n onChange={(e) => setSelectedKey(e.target.value)}\n style={SELECT_STYLE}\n >\n {PRESET_OPTIONS.map((o) => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n <Button variant=\"solid\" onPress={handleApply} isDisabled={!selectedKey}>\n Apply\n </Button>\n </Stack>\n </Stack>\n );\n};\n\nexport default ThemePresetSelector;\n","\n// ─────────────────────────────────────────────\n// 1. FLAT DESIGN\n// Solid fills, no depth, no effects.\n// Influenced by Windows 8 Metro + iOS 7.\n\nimport type { ThemeTokens } from '@commercetools-demo/puck-types';\n\n// ─────────────────────────────────────────────\nexport const flatTheme: ThemeTokens = {\n colorPrimary: '#2563EB',\n colorPrimaryHover: '#1D4ED8',\n colorPrimaryForeground: '#FFFFFF',\n colorSecondary: '#64748B',\n colorSecondaryForeground: '#FFFFFF',\n colorBackground: '#F8FAFC',\n colorSurface: '#FFFFFF',\n colorText: '#0F172A',\n colorTextMuted: '#64748B',\n colorForeground: '#0F172A',\n colorMuted: '#F1F5F9',\n colorMutedForeground: '#64748B',\n colorDestructive: '#EF4444',\n colorDestructiveForeground:'#FFFFFF',\n colorAccent: '#0EA5E9',\n colorAccentForeground: '#FFFFFF',\n colorBorder: '#E2E8F0',\n colorInput: '#FFFFFF',\n colorRing: '#2563EB',\n colorShadowLight: '#FFFFFF',\n colorShadowDark: '#CBD5E1',\n colorSurfaceGlass: 'rgba(255,255,255,0.9)',\n\n borderRadius: 'sm',\n borderWidth: '1',\n borderStyle: 'solid',\n\n fontFamily: 'Inter, system-ui, sans-serif',\n fontHeading: 'Inter, system-ui, sans-serif',\n fontWeightBase: '400',\n fontWeightHeading: '700',\n letterSpacing: 'normal',\n textTransform: 'none',\n\n spacingScale: 1,\n buttonStyle: 'solid',\n cardShadow: 'none',\n shadowStyle: 'none',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n backgroundStyle: 'solid',\n headerStyle: 'solid',\n animationStyle: 'subtle',\n};\n\n// ─────────────────────────────────────────────\n// 2. SKEUOMORPHISM\n// Mimics real-world materials and surfaces.\n// Warm parchment tones, textured backgrounds.\n// ─────────────────────────────────────────────\nexport const skeuomorphismTheme: ThemeTokens = {\n colorPrimary: '#B8860B',\n colorPrimaryHover: '#9A7209',\n colorPrimaryForeground: '#FFFBEA',\n colorSecondary: '#8B6914',\n colorSecondaryForeground: '#FFFBEA',\n colorBackground: '#C8B97D',\n colorSurface: '#EDE0B0',\n colorText: '#2C1A00',\n colorTextMuted: '#6B4F1A',\n colorForeground: '#2C1A00',\n colorMuted: '#D9C98A',\n colorMutedForeground: '#6B4F1A',\n colorDestructive: '#C0392B',\n colorDestructiveForeground:'#FFF8F0',\n colorAccent: '#D4A017',\n colorAccentForeground: '#2C1A00',\n colorBorder: '#8B6914',\n colorInput: '#F5EBD0',\n colorRing: '#B8860B',\n colorShadowLight: 'rgba(255,255,255,0.5)',\n colorShadowDark: 'rgba(0,0,0,0.4)',\n colorSurfaceGlass: 'rgba(237,224,176,0.95)',\n\n borderRadius: 'sm',\n borderWidth: '1',\n borderStyle: 'solid',\n\n fontFamily: 'Georgia, \"Times New Roman\", serif',\n fontHeading: 'Georgia, \"Times New Roman\", serif',\n fontWeightBase: '400',\n fontWeightHeading: '700',\n letterSpacing: 'normal',\n textTransform: 'none',\n\n spacingScale: 1,\n buttonStyle: 'solid',\n cardShadow: 'lg',\n shadowStyle: 'soft',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n backgroundStyle: 'noise',\n headerStyle: 'solid',\n animationStyle: 'subtle',\n};\n\n// ─────────────────────────────────────────────\n// 3. MATERIAL DESIGN\n// Layered surfaces, elevation via shadow,\n// deep purple + teal palette. Google's system.\n// ─────────────────────────────────────────────\nexport const materialTheme: ThemeTokens = {\n colorPrimary: '#6200EE',\n colorPrimaryHover: '#3700B3',\n colorPrimaryForeground: '#FFFFFF',\n colorSecondary: '#03DAC6',\n colorSecondaryForeground: '#000000',\n colorBackground: '#FAFAFA',\n colorSurface: '#FFFFFF',\n colorText: '#000000',\n colorTextMuted: '#757575',\n colorForeground: '#000000',\n colorMuted: '#F5F5F5',\n colorMutedForeground: '#757575',\n colorDestructive: '#B00020',\n colorDestructiveForeground:'#FFFFFF',\n colorAccent: '#03DAC6',\n colorAccentForeground: '#000000',\n colorBorder: '#E0E0E0',\n colorInput: '#FFFFFF',\n colorRing: '#6200EE',\n colorShadowLight: 'rgba(255,255,255,0.1)',\n colorShadowDark: 'rgba(0,0,0,0.2)',\n colorSurfaceGlass: 'rgba(255,255,255,0.95)',\n\n borderRadius: 'sm',\n borderWidth: '0',\n borderStyle: 'solid',\n\n fontFamily: '\"Roboto\", system-ui, sans-serif',\n fontHeading: '\"Roboto\", system-ui, sans-serif',\n fontWeightBase: '400',\n fontWeightHeading: '500',\n letterSpacing: 'normal',\n textTransform: 'none',\n\n spacingScale: 1,\n buttonStyle: 'solid',\n cardShadow: 'md',\n shadowStyle: 'soft',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n backgroundStyle: 'solid',\n headerStyle: 'solid',\n animationStyle: 'material-ripple',\n};\n\n// ─────────────────────────────────────────────\n// 4. NEUMORPHISM\n// Elements extruded from the background.\n// Matched bg color, dual inset/outset shadows.\n// ─────────────────────────────────────────────\nexport const neumorphismTheme: ThemeTokens = {\n colorPrimary: '#5B8DEF',\n colorPrimaryHover: '#3D6ECC',\n colorPrimaryForeground: '#FFFFFF',\n colorSecondary: '#8B8FA8',\n colorSecondaryForeground: '#FFFFFF',\n colorBackground: '#E0E5EC',\n colorSurface: '#E0E5EC',\n colorText: '#31344B',\n colorTextMuted: '#6B7280',\n colorForeground: '#31344B',\n colorMuted: '#E0E5EC',\n colorMutedForeground: '#6B7280',\n colorDestructive: '#E74C3C',\n colorDestructiveForeground:'#FFFFFF',\n colorAccent: '#5B8DEF',\n colorAccentForeground: '#FFFFFF',\n colorBorder: '#E0E5EC',\n colorInput: '#E0E5EC',\n colorRing: '#5B8DEF',\n colorShadowLight: '#FFFFFF',\n colorShadowDark: '#A3B1C6',\n colorSurfaceGlass: 'rgba(224,229,236,0.95)',\n\n borderRadius: 'lg',\n borderWidth: '0',\n borderStyle: 'solid',\n\n fontFamily: '\"Nunito\", system-ui, sans-serif',\n fontHeading: '\"Nunito\", system-ui, sans-serif',\n fontWeightBase: '400',\n fontWeightHeading: '700',\n letterSpacing: 'normal',\n textTransform: 'none',\n\n spacingScale: 1.1,\n buttonStyle: 'solid',\n cardShadow: 'lg',\n shadowStyle: 'neumorphic',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n backgroundStyle: 'solid',\n headerStyle: 'solid',\n animationStyle: 'subtle',\n};\n\n// ─────────────────────────────────────────────\n// 5. GLASSMORPHISM\n// Frosted panels over colorful gradients.\n// backdrop-filter blur, semi-transparent surfaces.\n// ─────────────────────────────────────────────\nexport const glassmorphismTheme: ThemeTokens = {\n colorPrimary: '#818CF8',\n colorPrimaryHover: '#6366F1',\n colorPrimaryForeground: '#FFFFFF',\n colorSecondary: '#C084FC',\n colorSecondaryForeground: '#FFFFFF',\n colorBackground: '#4F46E5',\n colorSurface: '#6366F1',\n colorText: '#FFFFFF',\n colorTextMuted: 'rgba(255,255,255,0.65)',\n colorForeground: '#FFFFFF',\n colorMuted: 'rgba(255,255,255,0.1)',\n colorMutedForeground: 'rgba(255,255,255,0.55)',\n colorDestructive: '#F87171',\n colorDestructiveForeground:'#FFFFFF',\n colorAccent: '#E879F9',\n colorAccentForeground: '#FFFFFF',\n colorBorder: 'rgba(255,255,255,0.25)',\n colorInput: 'rgba(255,255,255,0.15)',\n colorRing: 'rgba(255,255,255,0.5)',\n colorShadowLight: 'rgba(255,255,255,0.25)',\n colorShadowDark: 'rgba(0,0,0,0.15)',\n colorSurfaceGlass: 'rgba(255,255,255,0.15)',\n\n borderRadius: 'lg',\n borderWidth: '1',\n borderStyle: 'solid',\n\n fontFamily: '\"Inter\", system-ui, sans-serif',\n fontHeading: '\"Inter\", system-ui, sans-serif',\n fontWeightBase: '300',\n fontWeightHeading: '500',\n letterSpacing: 'wide',\n textTransform: 'none',\n\n spacingScale: 1.1,\n buttonStyle: 'outline',\n cardShadow: 'sm',\n shadowStyle: 'soft',\n surfaceBlur: 'md',\n surfaceOpacity: 0.15,\n backgroundStyle: 'gradient',\n headerStyle: 'transparent',\n animationStyle: 'subtle',\n};\n\n// ─────────────────────────────────────────────\n// 6. BRUTALISM\n// Raw, intentionally rough. Thick borders,\n// hard offset shadows, heavy type, no radius.\n// ─────────────────────────────────────────────\nexport const brutalismTheme: ThemeTokens = {\n colorPrimary: '#FF3C00',\n colorPrimaryHover: '#CC3000',\n colorPrimaryForeground: '#FFFFFF',\n colorSecondary: '#FFEE00',\n colorSecondaryForeground: '#000000',\n colorBackground: '#FFFFFF',\n colorSurface: '#FFFFFF',\n colorText: '#000000',\n colorTextMuted: '#333333',\n colorForeground: '#000000',\n colorMuted: '#F5F5F5',\n colorMutedForeground: '#333333',\n colorDestructive: '#FF0000',\n colorDestructiveForeground:'#FFFFFF',\n colorAccent: '#FFEE00',\n colorAccentForeground: '#000000',\n colorBorder: '#000000',\n colorInput: '#FFFFFF',\n colorRing: '#000000',\n colorShadowLight: '#FFFFFF',\n colorShadowDark: '#000000',\n colorSurfaceGlass: 'rgba(255,255,255,0.95)',\n\n borderRadius: 'none',\n borderWidth: '2',\n borderStyle: 'solid',\n\n fontFamily: '\"Space Mono\", \"Courier New\", monospace',\n fontHeading: '\"Space Grotesk\", \"Arial Black\", sans-serif',\n fontWeightBase: '400',\n fontWeightHeading: '900',\n letterSpacing: 'tight',\n textTransform: 'uppercase',\n\n spacingScale: 1,\n buttonStyle: 'solid',\n cardShadow: 'md',\n shadowStyle: 'hard-offset',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n backgroundStyle: 'solid',\n headerStyle: 'solid',\n animationStyle: 'none',\n};\n\n// ─────────────────────────────────────────────\n// 7. CLAYMORPHISM\n// Inflated 3D clay shapes, thick bottom\n// offset shadows, rounded full, pastel palette.\n// ─────────────────────────────────────────────\nexport const claymorphismTheme: ThemeTokens = {\n colorPrimary: '#A855F7',\n colorPrimaryHover: '#9333EA',\n colorPrimaryForeground: '#FFFFFF',\n colorSecondary: '#EC4899',\n colorSecondaryForeground: '#FFFFFF',\n colorBackground: '#F3E8FF',\n colorSurface: '#FFFFFF',\n colorText: '#1E1033',\n colorTextMuted: '#7C3AED',\n colorForeground: '#1E1033',\n colorMuted: '#FAF5FF',\n colorMutedForeground: '#9061C2',\n colorDestructive: '#F43F5E',\n colorDestructiveForeground:'#FFFFFF',\n colorAccent: '#F0ABFC',\n colorAccentForeground: '#701A75',\n colorBorder: '#E9D5FF',\n colorInput: '#FAF5FF',\n colorRing: '#A855F7',\n colorShadowLight: 'rgba(255,255,255,0.8)',\n colorShadowDark: '#7E22CE',\n colorSurfaceGlass: 'rgba(255,255,255,0.8)',\n\n borderRadius: 'lg',\n borderWidth: '0',\n borderStyle: 'solid',\n\n fontFamily: '\"Nunito\", \"Poppins\", system-ui, sans-serif',\n fontHeading: '\"Nunito\", \"Poppins\", system-ui, sans-serif',\n fontWeightBase: '400',\n fontWeightHeading: '700',\n letterSpacing: 'normal',\n textTransform: 'none',\n\n spacingScale: 1.15,\n buttonStyle: 'solid',\n cardShadow: 'lg',\n shadowStyle: 'clay',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n backgroundStyle: 'solid',\n headerStyle: 'solid',\n animationStyle: 'bouncy',\n};\n\n// ─────────────────────────────────────────────\n// 8. MINIMALISM\n// Maximum whitespace, sparse type, near-zero\n// decoration. Luxury brands, editorial, portfolio.\n// ─────────────────────────────────────────────\nexport const minimalismTheme: ThemeTokens = {\n colorPrimary: '#111111',\n colorPrimaryHover: '#333333',\n colorPrimaryForeground: '#FFFFFF',\n colorSecondary: '#666666',\n colorSecondaryForeground: '#FFFFFF',\n colorBackground: '#FFFFFF',\n colorSurface: '#FAFAFA',\n colorText: '#111111',\n colorTextMuted: '#999999',\n colorForeground: '#111111',\n colorMuted: '#F5F5F5',\n colorMutedForeground: '#999999',\n colorDestructive: '#CC0000',\n colorDestructiveForeground:'#FFFFFF',\n colorAccent: '#111111',\n colorAccentForeground: '#FFFFFF',\n colorBorder: '#E5E5E5',\n colorInput: '#FFFFFF',\n colorRing: '#111111',\n colorShadowLight: '#FFFFFF',\n colorShadowDark: '#E5E5E5',\n colorSurfaceGlass: 'rgba(255,255,255,0.95)',\n\n borderRadius: 'none',\n borderWidth: '1',\n borderStyle: 'solid',\n\n fontFamily: '\"DM Sans\", \"Helvetica Neue\", sans-serif',\n fontHeading: '\"DM Serif Display\", Georgia, serif',\n fontWeightBase: '300',\n fontWeightHeading: '400',\n letterSpacing: 'wider',\n textTransform: 'none',\n\n spacingScale: 1.4,\n buttonStyle: 'outline',\n cardShadow: 'none',\n shadowStyle: 'none',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n backgroundStyle: 'solid',\n headerStyle: 'minimal',\n animationStyle: 'subtle',\n};\n\n// ─────────────────────────────────────────────\n// 9. DARK / MOODY UI\n// Deep surfaces, indigo/violet accents,\n// glowing colored shadows. SaaS & dev tools.\n// ─────────────────────────────────────────────\nexport const darkMoodyTheme: ThemeTokens = {\n colorPrimary: '#818CF8',\n colorPrimaryHover: '#6366F1',\n colorPrimaryForeground: '#FFFFFF',\n colorSecondary: '#334155',\n colorSecondaryForeground: '#E2E8F0',\n colorBackground: '#0F1117',\n colorSurface: '#1A1D28',\n colorText: '#E2E8F0',\n colorTextMuted: '#94A3B8',\n colorForeground: '#E2E8F0',\n colorMuted: '#1E2235',\n colorMutedForeground: '#64748B',\n colorDestructive: '#F87171',\n colorDestructiveForeground:'#FFFFFF',\n colorAccent: '#818CF8',\n colorAccentForeground: '#FFFFFF',\n colorBorder: '#2D3148',\n colorInput: '#1A1D28',\n colorRing: '#6366F1',\n colorShadowLight: 'rgba(129,140,248,0.25)',\n colorShadowDark: 'rgba(0,0,0,0.5)',\n colorSurfaceGlass: 'rgba(26,29,40,0.85)',\n\n borderRadius: 'md',\n borderWidth: '1',\n borderStyle: 'solid',\n\n fontFamily: '\"Inter\", system-ui, sans-serif',\n fontHeading: '\"Inter\", system-ui, sans-serif',\n fontWeightBase: '400',\n fontWeightHeading: '500',\n letterSpacing: 'normal',\n textTransform: 'none',\n\n spacingScale: 1,\n buttonStyle: 'solid',\n cardShadow: 'sm',\n shadowStyle: 'glow',\n surfaceBlur: 'none',\n surfaceOpacity: 1,\n backgroundStyle: 'solid',\n headerStyle: 'solid',\n animationStyle: 'subtle',\n};\n\n// ─────────────────────────────────────────────\n// PRESETS MAP\n// ─────────────────────────────────────────────\nexport type DesignParadigm =\n | 'flat'\n | 'skeuomorphism'\n | 'material'\n | 'neumorphism'\n | 'glassmorphism'\n | 'brutalism'\n | 'claymorphism'\n | 'minimalism'\n | 'dark-moody';\n\nexport const themePresets: Record<DesignParadigm, ThemeTokens> = {\n flat: flatTheme,\n skeuomorphism: skeuomorphismTheme,\n material: materialTheme,\n neumorphism: neumorphismTheme,\n glassmorphism: glassmorphismTheme,\n brutalism: brutalismTheme,\n claymorphism: claymorphismTheme,\n minimalism: minimalismTheme,\n 'dark-moody': darkMoodyTheme,\n};\n\nexport const paradigmLabels: Record<DesignParadigm, string> = {\n flat: 'Flat design',\n skeuomorphism: 'Skeuomorphism',\n material: 'Material design',\n neumorphism: 'Neumorphism',\n glassmorphism: 'Glassmorphism',\n brutalism: 'Brutalism',\n claymorphism: 'Claymorphism',\n minimalism: 'Minimalism',\n 'dark-moody': 'Dark / moody',\n};\n\nexport const PRESET_KEYS_SELECTOR: DesignParadigm[] = [\n 'flat',\n 'material',\n 'neumorphism',\n 'glassmorphism',\n 'brutalism',\n 'dark-moody',\n];\n\n// ─────────────────────────────────────────────\n// CSS VAR RESOLVER\n// ─────────────────────────────────────────────\ntype ShadowStyle = NonNullable<ThemeTokens['shadowStyle']>;\ntype SurfaceBlur = NonNullable<ThemeTokens['surfaceBlur']>;\ntype LetterSpacing = NonNullable<ThemeTokens['letterSpacing']>;\ntype BorderRadius = NonNullable<ThemeTokens['borderRadius']>;\n\nconst shadowMap: Record<ShadowStyle, string> = {\n none: 'none',\n soft: '0 2px 8px 0 var(--color-shadow-dark)',\n 'hard-offset': '4px 4px 0px 0px var(--color-shadow-dark)',\n neumorphic: '6px 6px 14px var(--color-shadow-dark), -6px -6px 14px var(--color-shadow-light)',\n clay: '0 8px 0 var(--color-shadow-dark), 0 12px 28px var(--color-shadow-dark)',\n glow: '0 0 24px var(--color-shadow-light)',\n};\n\nconst blurMap: Record<SurfaceBlur, string> = {\n none: '0px',\n sm: '4px',\n md: '12px',\n lg: '24px',\n};\n\nconst letterSpacingMap: Record<LetterSpacing, string> = {\n tight: '-0.025em',\n normal: '0em',\n wide: '0.05em',\n wider: '0.15em',\n};\n\nconst borderRadiusMap: Record<BorderRadius, string> = {\n none: '0px',\n sm: '4px',\n md: '8px',\n lg: '16px',\n full: '9999px',\n};\n\nexport function buildCssVars(tokens: ThemeTokens): Record<string, string> {\n return {\n '--color-primary': tokens.colorPrimary,\n '--color-primary-hover': tokens.colorPrimaryHover,\n '--color-primary-foreground': tokens.colorPrimaryForeground ?? '#ffffff',\n '--color-secondary': tokens.colorSecondary,\n '--color-secondary-foreground': tokens.colorSecondaryForeground ?? '#ffffff',\n '--color-background': tokens.colorBackground,\n '--color-surface': tokens.colorSurface,\n '--color-text': tokens.colorText,\n '--color-text-muted': tokens.colorTextMuted,\n '--color-foreground': tokens.colorForeground ?? tokens.colorText,\n '--color-muted': tokens.colorMuted ?? tokens.colorSurface,\n '--color-muted-foreground': tokens.colorMutedForeground ?? tokens.colorTextMuted,\n '--color-destructive': tokens.colorDestructive ?? '#ef4444',\n '--color-destructive-foreground':tokens.colorDestructiveForeground ?? '#ffffff',\n '--color-accent': tokens.colorAccent ?? tokens.colorPrimary,\n '--color-accent-foreground': tokens.colorAccentForeground ?? '#ffffff',\n '--color-border': tokens.colorBorder ?? '#e2e8f0',\n '--color-input': tokens.colorInput ?? tokens.colorSurface,\n '--color-ring': tokens.colorRing ?? tokens.colorPrimary,\n '--color-shadow-light': tokens.colorShadowLight ?? '#ffffff',\n '--color-shadow-dark': tokens.colorShadowDark ?? '#b8bec7',\n '--color-surface-glass': tokens.colorSurfaceGlass ?? 'rgba(255,255,255,0.15)',\n '--shadow-card': shadowMap[tokens.shadowStyle ?? 'none'],\n '--surface-blur': blurMap[tokens.surfaceBlur ?? 'none'],\n '--surface-opacity': String(tokens.surfaceOpacity),\n '--letter-spacing': letterSpacingMap[tokens.letterSpacing ?? 'normal'],\n '--border-radius': borderRadiusMap[tokens.borderRadius],\n '--border-width': `${tokens.borderWidth}px`,\n '--border-style': tokens.borderStyle ?? '',\n '--font-family': tokens.fontFamily,\n '--font-heading': tokens.fontHeading,\n '--font-weight-base': tokens.fontWeightBase ?? '300',\n '--font-weight-heading': tokens.fontWeightHeading ?? '700',\n '--text-transform': tokens.textTransform ?? 'none',\n '--spacing-scale': String(tokens.spacingScale),\n };\n}\n","import React, { useState, useCallback } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { PuckApiProvider, usePuckContentType } from '@commercetools-demo/puck-api';\nimport type { ImportResult } from '@commercetools-demo/puck-types';\nimport { Button, Card, Stack, Text } from '@commercetools/nimbus';\nimport { EnsureNimbusProvider } from '../EnsureNimbusProvider';\n\ninterface InnerProps {\n backButton?: {\n label: string;\n onClick: () => void;\n icon: React.ReactElement;\n };\n}\n\nexport interface ImportContentTypesProps extends InnerProps {\n baseURL: string;\n projectKey: string;\n businessUnitKey: string;\n jwtToken: string;\n}\n\nconst ImportContentTypesInner: React.FC<InnerProps> = ({ backButton }) => {\n const history = useHistory();\n const { importDefaultContentTypes, loading, error, clearError } =\n usePuckContentType();\n const [result, setResult] = useState<ImportResult | null>(null);\n\n const handleBack = useCallback(() => {\n if (backButton?.onClick) {\n backButton.onClick();\n } else {\n history.push('/');\n }\n }, [backButton, history]);\n\n const handleImport = useCallback(async () => {\n clearError();\n setResult(null);\n try {\n const importResult = await importDefaultContentTypes();\n setResult(importResult);\n } catch {\n // Error is set by the hook\n }\n }, [importDefaultContentTypes, clearError]);\n\n return (\n <Stack direction=\"column\" gap=\"600\">\n {backButton && (\n <Button variant=\"ghost\" onPress={handleBack}>\n {backButton.icon}\n {backButton.label}\n </Button>\n )}\n <Text as=\"h1\" fontSize=\"2xl\" fontWeight=\"700\">Import default content types</Text>\n <Text color=\"neutral.11\">\n Import default content type definitions from samples. Existing content\n types with the same key may be skipped or cause errors.\n </Text>\n\n {error && (\n <Card.Root variant=\"outlined\">\n <Card.Body>\n <Stack direction=\"column\" gap=\"400\">\n <Text as=\"h2\" fontSize=\"xl\" fontWeight=\"700\">Error</Text>\n <Text color=\"critical.11\">{error}</Text>\n </Stack>\n </Card.Body>\n </Card.Root>\n )}\n\n <Stack direction=\"row\" gap=\"400\" justifyContent=\"center\">\n <Button variant=\"solid\" onPress={handleImport} isDisabled={loading}>\n {loading ? 'Importing…' : 'Import default content types'}\n </Button>\n </Stack>\n {result && (\n <Card.Root variant=\"outlined\">\n <Card.Body>\n <Stack direction=\"column\" gap=\"400\">\n <Text as=\"h2\" fontSize=\"xl\" fontWeight=\"700\">Result</Text>\n <Text>\n Imported: {result.imported.length} content type\n {result.imported.length !== 1 ? 's' : ''}.\n </Text>\n {result.imported.length > 0 && (\n <Text color=\"neutral.11\">\n {result.imported.join(', ')}\n </Text>\n )}\n {result.failed.length > 0 && (\n <>\n <Text color=\"critical.11\">\n Failed: {result.failed.length} content type\n {result.failed.length !== 1 ? 's' : ''}.\n </Text>\n <Stack direction=\"column\" gap=\"200\">\n {result.failed.map(({ key, error: err }) => (\n <Text key={key} color=\"critical.11\">\n {key}: {err}\n </Text>\n ))}\n </Stack>\n </>\n )}\n </Stack>\n </Card.Body>\n </Card.Root>\n )}\n </Stack>\n );\n};\n\nconst ImportContentTypes: React.FC<ImportContentTypesProps> = ({\n baseURL,\n projectKey,\n businessUnitKey,\n jwtToken,\n ...innerProps\n}) => (\n <PuckApiProvider\n baseURL={baseURL}\n projectKey={projectKey}\n businessUnitKey={businessUnitKey}\n jwtToken={jwtToken}\n >\n <EnsureNimbusProvider>\n <ImportContentTypesInner {...innerProps} />\n </EnsureNimbusProvider>\n </PuckApiProvider>\n);\n\nexport default ImportContentTypes;\n"],"mappings":"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","names":["useState","Button","Stack","jsx","jsx","jsxs","Stack","Button","SELECT_STYLE","useState","useState","useCallback","useHistory","PuckApiProvider","Button","Card","Stack","Text","jsx","jsxs","useHistory","useState","useCallback","Stack","Button","Text","Card","PuckApiProvider"]}