feat(hamkar-ui): add menu icon and active icon color pickers
Extend Hamkar appearance with separate default/selected icon colors and show them in the mobile preview. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -9,6 +9,10 @@ export type HamkarBrandColors = {
|
||||
secondaryColor: string
|
||||
/** Registry `background_color` → CSS `--bg` (dynamicMode) */
|
||||
backgroundColor: string
|
||||
/** Menu / header icon stroke (brand_chrome) */
|
||||
menuIconColor: string
|
||||
/** Selected menu icon + label (brand_chrome) */
|
||||
menuIconActiveColor: string
|
||||
}
|
||||
|
||||
export type HamkarUiSettings = {
|
||||
@@ -102,6 +106,8 @@ function normalizeBrand(raw: unknown): HamkarBrandColors {
|
||||
primaryColor: asColor(brand.primaryColor),
|
||||
secondaryColor: asColor(brand.secondaryColor),
|
||||
backgroundColor: asColor(brand.backgroundColor),
|
||||
menuIconColor: asColor(brand.menuIconColor),
|
||||
menuIconActiveColor: asColor(brand.menuIconActiveColor),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,6 +121,8 @@ export function createDefaultHamkarUiConfig(): HamkarUiConfig {
|
||||
primaryColor: '',
|
||||
secondaryColor: '',
|
||||
backgroundColor: '',
|
||||
menuIconColor: '',
|
||||
menuIconActiveColor: '',
|
||||
},
|
||||
settings: {
|
||||
pricing_box_theme: '1',
|
||||
@@ -177,6 +185,10 @@ export function hamkarUiToApiPayload(config: HamkarUiConfig) {
|
||||
primaryColor: emptyToNull(normalized.defaultSnapshot.brand.primaryColor),
|
||||
secondaryColor: emptyToNull(normalized.defaultSnapshot.brand.secondaryColor),
|
||||
backgroundColor: emptyToNull(normalized.defaultSnapshot.brand.backgroundColor),
|
||||
menuIconColor: emptyToNull(normalized.defaultSnapshot.brand.menuIconColor),
|
||||
menuIconActiveColor: emptyToNull(
|
||||
normalized.defaultSnapshot.brand.menuIconActiveColor,
|
||||
),
|
||||
},
|
||||
settings: { ...normalized.defaultSnapshot.settings },
|
||||
}
|
||||
@@ -191,6 +203,8 @@ export function hamkarUiToApiPayload(config: HamkarUiConfig) {
|
||||
primaryColor: emptyToNull(normalized.brand.primaryColor),
|
||||
secondaryColor: emptyToNull(normalized.brand.secondaryColor),
|
||||
backgroundColor: emptyToNull(normalized.brand.backgroundColor),
|
||||
menuIconColor: emptyToNull(normalized.brand.menuIconColor),
|
||||
menuIconActiveColor: emptyToNull(normalized.brand.menuIconActiveColor),
|
||||
},
|
||||
settings: { ...normalized.settings },
|
||||
...(snap ? { defaultSnapshot: snap } : {}),
|
||||
|
||||
Reference in New Issue
Block a user