component PreferenceSwitcher { outputs { theme(payload: { sourceEvent?: Event; value: string | number | boolean | null | object; [key: string]: string | number | boolean | null | object } | string | number | boolean | null | object[]) color(payload: { sourceEvent?: Event; value: string | number | boolean | null | object; [key: string]: string | number | boolean | null | object } | string | number | boolean | null | object[]) language(payload: { sourceEvent?: Event; value: string | number | boolean | null | object; [key: string]: string | number | boolean | null | object } | string | number | boolean | null | object[]) } props { size: string = "default" color: string = "primary" themeLabel: string = "Theme" colorLabel: string = "Accent color" languageLabel: string = "Language" languages = [ {"label": "English", "shortLabel": "EN", "value": "en"}, {"label": "हिन्दी", "shortLabel": "हि", "value": "hi"}, {"label": "मराठी", "shortLabel": "म", "value": "mr"} ] colors = [ {"label": "Blue", "value": "blue", "hex": "#2563eb"}, {"label": "Cyan", "value": "cyan", "hex": "#0891b2"}, {"label": "Emerald", "value": "emerald", "hex": "#059669"}, {"label": "Violet", "value": "violet", "hex": "#7c3aed"}, {"label": "Rose", "value": "rose", "hex": "#e11d48"}, {"label": "Amber", "value": "amber", "hex": "#d97706"} ] compact: boolean = true class: string = "" } functions { client function choose(type, value) { output[type]({ value: value }) } } view {
{#if !compact}{themeLabel}{/if}
{themeLabel}
{#if !compact}{colorLabel}{/if}
{colorLabel}
{#each colors as item} {/each}
{#if !compact}{languageLabel}{/if}
{languageLabel} {#each languages as item} {/each}
} }