Add Hamkar default appearance snapshot seed script and builder support.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-03 20:51:33 +03:30
co-authored by Cursor
parent 1586725a5b
commit 3fa24ac965
3 changed files with 270 additions and 2 deletions
+37 -1
View File
@@ -40,8 +40,21 @@ export function buildHamkarUiFromBrand(input: {
price_font_size?: string
orderUI?: string
}
defaultSnapshot?: {
registryMode?: string | null
brand?: {
primaryColor?: string | null
secondaryColor?: string | null
backgroundColor?: string | null
}
settings?: {
pricing_box_theme?: string
price_font_size?: string
orderUI?: string
}
} | null
}) {
return {
const base = {
kind: 'hamkar' as const,
settingsManaged: Boolean(input.settingsManaged),
registryMode: input.registryMode || 'dynamicMode',
@@ -57,6 +70,29 @@ export function buildHamkarUiFromBrand(input: {
orderUI: String(input.settings?.orderUI || 'old'),
},
}
if (!input.defaultSnapshot) return base
return {
...base,
defaultSnapshot: {
registryMode: input.defaultSnapshot.registryMode || base.registryMode,
brand: {
primaryColor: input.defaultSnapshot.brand?.primaryColor ?? null,
secondaryColor: input.defaultSnapshot.brand?.secondaryColor ?? null,
backgroundColor: input.defaultSnapshot.brand?.backgroundColor ?? null,
},
settings: {
pricing_box_theme: String(
input.defaultSnapshot.settings?.pricing_box_theme || base.settings.pricing_box_theme,
),
price_font_size: String(
input.defaultSnapshot.settings?.price_font_size || base.settings.price_font_size,
),
orderUI: String(input.defaultSnapshot.settings?.orderUI || base.settings.orderUI),
},
},
}
}
export function buildKhanegiUiFromColors(input: {