@fasteros/themes 1.0.0 → 1.0.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,"file":"fasteros-themes.mjs","sources":["../../../projects/themes/src/lib/faster-themes.component.ts","../../../projects/themes/src/lib/theme.service.ts","../../../projects/themes/src/lib/faster-themes.service.ts","../../../projects/themes/src/lib/accordion/directives/accordion-content.directive.ts","../../../projects/themes/src/lib/accordion/directives/accordion-header.directive.ts","../../../projects/themes/src/lib/accordion/directives/accordion-title.directive.ts","../../../projects/themes/src/lib/accordion/directives/accordion-item.directive.ts","../../../projects/themes/src/lib/accordion/toggle.pipe.ts","../../../projects/themes/src/lib/accordion/accordion.component.ts","../../../projects/themes/src/lib/accordion/accordion.component.html","../../../projects/themes/src/lib/directives/nColor.directive.ts","../../../projects/themes/src/lib/directives/nContainer.directive.ts","../../../projects/themes/src/lib/directives/nType.directive.ts","../../../projects/themes/src/lib/accordion/directives/ripple.directive.ts","../../../projects/themes/src/lib/directives/nButton.directive.ts","../../../projects/themes/src/lib/directives/nClass.directive.ts","../../../projects/themes/src/lib/faster-themes.module.ts","../../../projects/themes/src/lib/theme-generator/theme-generator.component.ts","../../../projects/themes/src/lib/theme.types.ts","../../../projects/themes/src/public-api.ts","../../../projects/themes/src/fasteros-themes.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-faster-themes',\n template: `\n <p>\n faster-themes works!\n </p>\n `,\n styles: [],\n standalone: false\n})\nexport class FasterThemesComponent {\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { firstValueFrom } from 'rxjs';\nimport { ThemeResponse, ThemesResponse } from './theme.types';\n\n// Base URL for the Napkin themes API. Update this value to point at your\n// deployed backend; the apiUrl below is derived from it at module load.\nexport const THEME_API_BASE_URL = 'https://bzw27udtrayx7u6pvbnexfdk4i0hcsia.lambda-url.us-east-1.on.aws/api';\n\n// API-key-authenticated reads against /api/platform-objects/themes.\n// The apiKey identifies the tenant; the backend scopes results accordingly.\n@Injectable({ providedIn: 'root' })\nexport class ThemeService {\n private readonly apiUrl = `${THEME_API_BASE_URL.replace(/\\/+$/, '')}/platform-objects/themes`;\n\n constructor(private http: HttpClient) {}\n\n private headers(apiKey: string): HttpHeaders {\n return new HttpHeaders({\n 'X-API-Key': apiKey,\n 'Content-Type': 'application/json',\n });\n }\n\n getThemes(apiKey: string): Promise<ThemesResponse> {\n return firstValueFrom(\n this.http.get<ThemesResponse>(this.apiUrl, {\n headers: this.headers(apiKey),\n })\n );\n }\n\n getTheme(themeId: string, apiKey: string): Promise<ThemeResponse> {\n return firstValueFrom(\n this.http.get<ThemeResponse>(`${this.apiUrl}/${themeId}`, {\n headers: this.headers(apiKey),\n })\n );\n }\n}\n","/* Copyright © 2023-2025 Napkin Apps Corp. All rights reserved. */\nimport { Injectable, NgZone } from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { ThemeService } from './theme.service';\nimport { Theme } from './theme.types';\n\n// Firebase removed - no longer used\n// import { Inject } from '@angular/core';\n// import { catchError, firstValueFrom, map, Observable, of } from 'rxjs';\n// import { Auth, onAuthStateChanged, signInWithCustomToken, User } from 'firebase/auth';\n// import { getFirestore, collection, query, where, onSnapshot, getDocs } from 'firebase/firestore';\n// import { FAT, INIT_THEMES } from './faster-themes.module';\n// import { FirebaseApp } from 'firebase/app';\n// import { Analytics, logEvent } from 'firebase/analytics';\n\n//import { Globals } from 'src/app/globals';\n\nexport interface FasterTheme {\n [key: string]: any;\n companyId?: string;\n id?: string;\n formId?: string;\n name?: string;\n description?: string;\n public?: boolean;\n followers?: number; // # of copies - can also follow team.\n coreTheme?: boolean; //core theme set\n themeId?: string;\n createdAt?: number;\n createdBy?: string;\n editedAt?: number;\n editedBy?: string;\n\n // responsive?: Responsive;\n responsiveName?: string;\n responsiveStandardWidth?: number; // pixels for 100%\n responsiveFontSizeMin?: number; // percentage\n responsiveFontSizeMax?: number; // percentage\n responsiveMarginMin?: number; // percentage\n responsiveMarginMax?: number; // percentage\n responsivePaddingMin?: number; // percentage\n responsivePaddingMax?: number; // percentage\n containers?: ContainerStyle[];\n buttonStyles?: ButtonStyle[];\n accordions?: AccordionStyle[];\n typeStyles?: TypographyStyle[];\n classes?: ClassStyle[];\n palette?: Palette[];\n}\n\nexport interface Palette {\n colorName: string;\n backgroundColor?: ColorInfo | string;\n color?: ColorInfo | string;\n gradient?: string;\n\n}\n\nexport interface ColorInfo {\n htmlName?: string;\n colorHex?: string;\n colorRGB?: string;\n colorTags?: string[];\n}\n/*\nexport interface Responsive {\n responsiveName: string;\n responsiveStandardWidth: number; // pixels for 100%\n responsiveFontSizeMin: number; // percentage\n responsiveFontSizeMax: number; // percentage\n responsiveMarginMin: number; // percentage\n responsiveMarginMax: number; // percentage\n responsivePaddingMin: number; // percentage\n responsivePaddingMax: number; // percentage\n}\n*/\n\nexport interface ClassStyle {\n className?: string;\n class?: string;\n}\n\nexport interface AccordionStyle {\n accordionName?: string;\n accordionPalette?: string;\n accordionBackground?: string;\n accordionLayout?: string;\n accordionAlignment?: string;\n accordionBorder?: string;\n accordionBoxShadow?: string;\n accordionMargin?: string;\n accordionPadding?: string;\n accordionWidth?: string;\n accordionHeight?: string; // 80vh, 200px...\n accordionExtra?: string;\n\n headerOpenPalette?: string;\n headerOpenBackground?: string;\n headerOpenWidth?: string;\n headerOpenType?: string; // typography name\n headerOpenLayout?: string;\n headerOpenAlignment?: string;\n headerOpenBorder?: string;\n headerOpenBoxShadow?: string;\n headerOpenMargin?: string;\n headerOpenPadding?: string;\n headerOpenExtra?: string;\n\n headerClosedPalette?: string;\n headerClosedBackground?: string;\n headerClosedWidth?: string;\n headerClosedType?: string; // typography name\n headerClosedLayout?: string;\n headerClosedAlignment?: string;\n headerClosedBorder?: string;\n headerClosedBoxShadow?: string;\n headerClosedMargin?: string;\n headerClosedPadding?: string;\n headerClosedExtra?: string;\n}\n\nexport interface ContainerStyle {\n containerName?: string;\n containerWidth?: string;\n containerHeight?: string;\n containerLineHeight?: string;\n containerOverflowX?: string;\n containerOverflowY?: string;\n containerPosition?: string;\n containerPositioning?: string;\n containerPalette?: string;\n containerBackground?: string;\n containerBackgroundGradient?: string;\n containerAlignment?: string;\n containerAlignmentV?: string;\n containerLayout?: string;\n containerBorder?: string;\n containerBoxShadow?: string;\n containerMargin?: string;\n containerPadding?: string;\n backgroundImage?: string;\n backgroundSize?: string;\n backgroundRepeat?: string;\n backgroundPosition?: string;\n containerStyle?: string;\n\n}\n\n// Standard styles\n//headline1, headline2, headline3, headline4, headline5, body, label, user-entered, display, title, subtitle\nexport interface TypographyStyle {\n typeName?: string;\n typeFont?: string; // implement later: need a fontFactory to manage fonts\n typeFontSize?: string;\n typeFontWeight?: string;\n typeLineHeight?: string;\n typePalette?: string;\n typeBackground?: string;\n typeFontColor?: string;\n typeFontAlignment?: string; //text-align\n typeTextShadow?: string;\n typeBoxShadow?: string;\n typePadding?: string;\n typeMargin?: string;\n typeBorder?: string;\n}\n\nexport interface ButtonStyle {\n buttonName?: string; // \n buttonPadding?: string; // in the form of; 20px 20% 20px 20%\n buttonMargin?: string; // Same as padding\n buttonTypeStyle?: string;\n buttonPalette?: string | undefined;\n\n buttonBackground?: string; //#d9e3e9;\n buttonColor?: string; //rgb(34, 33, 33);\n buttonStyle?: string; // mostly used for \"Theme\"\n buttonBorder?: string; // none;\n buttonRadius?: string; // 5px;\n buttonCursor?: string; // pointer;\n buttonShadow?: string; //\n buttonFontWeight?: string; // Added to match object literals\n buttonFont?: string; // Added to match object literals\n buttonFontSize?: string; // Added to match object literals\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FasterThemesService {\n companyId: any;\n screenWidth = window.innerWidth;\n screenHeight = window.innerHeight;\n parentTheme: FasterTheme = {}; // most recent theme assignment\n\n\n readonly resize$ = new Subject<void>();\n\n allThemes: FasterTheme[] = [];\n private uid?: string | null;\n\n\n // Dead code - @HostListener has no effect on a service. Window resize is handled by listenToWindowSize().\n // @HostListener('window:resize', ['$event'])\n // onWindowResize() {\n // this.screenWidth = window.innerWidth;\n // this.screenHeight = window.innerHeight;\n // }\n\n constructor(\n /*public global: Globals,*/ private ngZone: NgZone,\n // Firebase removed - no longer used\n // @Inject(FAT) private authPromise: Promise<Auth>,\n // @Inject(INIT_THEMES) private initThemesPromise: Promise<any>,\n private themeService: ThemeService) {\n this.listenToWindowSize();\n }\n/*\n private analytics: Analytics | null = null;\n\n private async getAnalytics(): Promise<Analytics | null> {\n if (!this.analytics) {\n this.analytics = await this.analyticsPromise;\n }\n return this.analytics;\n }\n */\n\n listenToWindowSize() {\n this.ngZone.runOutsideAngular(() => {\n fromEvent(window, 'resize').pipe(debounceTime(50)).subscribe(() => {\n this.screenWidth = window.innerWidth;\n this.screenHeight = window.innerHeight;\n this.ngZone.run(() => this.resize$.next());\n });\n });\n }\n\n /**\n * Fetches themes for the tenant identified by `apiKey` via the Napkin themes\n * API and writes them into `this.allThemes`. Fetch-once; no real-time updates.\n *\n * Delegates to `ThemeService`. The base URL is set by the\n * `THEME_API_BASE_URL` constant in theme.service.ts.\n *\n * If `themeId` is supplied, only that single theme is fetched and the result\n * replaces `allThemes` with a one-element array. Otherwise all themes for the\n * tenant are fetched.\n *\n * On any failure (missing key, network error, non-2xx, `success: false` from\n * the backend) the call logs and returns `[]` — `getTheme()` continues to\n * fall back to `defaultStyle`.\n *\n * @param apiKey tenant API key (required) — sent as Bearer token\n * @param themeId optional theme id; when present fetches only that one theme\n * @returns the loaded themes (the same array that was assigned to `allThemes`)\n */\n async initThemes(apiKey: string, themeId?: string): Promise<FasterTheme[]> {\n if (!apiKey) {\n console.warn('FasterThemesService.initThemes: apiKey is required.');\n return [];\n }\n\n try {\n if (themeId) {\n const resp = await this.themeService.getTheme(themeId, apiKey);\n if (resp.success && resp.data) {\n this.allThemes = [this.toFasterTheme(resp.data)];\n return this.allThemes;\n }\n console.warn('FasterThemesService.initThemes: themeService.getTheme returned no data.', resp.error);\n return [];\n }\n\n const resp = await this.themeService.getThemes(apiKey);\n if (resp.success && resp.data?.length) {\n this.allThemes = resp.data.map((t: Theme) => this.toFasterTheme(t));\n return this.allThemes;\n }\n console.warn('FasterThemesService.initThemes: themeService.getThemes returned no data.', resp.error);\n return [];\n } catch (err) {\n console.error('FasterThemesService.initThemes failed; falling back to defaultStyle.', err);\n return [];\n }\n }\n\n /** Map the API's wrapped Theme document to a flat FasterTheme. */\n private toFasterTheme(t: Theme): FasterTheme {\n return {\n ...(t.data as Partial<FasterTheme>),\n id: t.objectId,\n companyId: t.companyId,\n };\n }\n\n getTheme(themeName?: any) {// object, blank, name or id\n var self = this;\n var theme;\n\n // Check my themes first!!!\n\n if (themeName !== null && typeof (themeName) == 'object') {\n self.parentTheme = themeName;\n return themeName\n }\n\n if (themeName && self.allThemes?.length) {\n theme = self.allThemes.find(p => p.name?.toLowerCase() == themeName.toLowerCase() || p.id == themeName)\n }\n if (theme) {\n self.parentTheme = theme;\n return theme;\n }\n if (self.parentTheme?.containers?.length)\n return self.parentTheme;\n return self.defaultStyle;\n }\n\n getPalette(themeName: any, paletteName: string) {\n var self = this;\n\n const theme = <FasterTheme>self.getTheme(themeName)\n if (!theme.palette || !paletteName?.length) return null;\n return theme.palette.find(p => p.colorName.toLowerCase() == paletteName.toLowerCase())\n }\n\n getContainer(themeName: any, container: string) {\n var self = this;\n\n const theme = <FasterTheme>self.getTheme(themeName)\n if (!theme.containers) return null;\n return theme.containers.find(p => p.containerName?.toLowerCase() == container.toLowerCase())\n }\n\n getButton(themeName: any, button: string | undefined) {\n var self = this;\n const theme = <FasterTheme>self.getTheme(themeName)\n if (theme?.buttonStyles) {\n const style = theme?.buttonStyles?.find(p => p.buttonName?.toLowerCase() == button?.toLowerCase())\n if (!style) {\n return theme.buttonStyles[0]\n } else {\n return style;\n }\n }\n if (self.defaultStyle?.buttonStyles && self.defaultStyle?.buttonStyles[0])\n return self.defaultStyle.buttonStyles[0];\n return null; // Should never happen\n }\n\n class(themeName?: any, className?: string) {\n var self = this;\n const theme = <FasterTheme>self.getTheme(themeName)\n\n if (!theme.classes) return \"\";\n\n const style = theme.classes.find(p => p.className?.toLowerCase() == className?.toLowerCase())\n if (style?.class)\n return style.class\n else return \"\";\n }\n\n typeObject(themeName?: any, typeName?: string) {\n var str = \"\";\n var self = this;\n const theme = self.getTheme(themeName)\n\n if (!theme.typeStyles) return;\n\n var type;\n if (!typeName)\n type = theme.typeStyles[0]; // for now\n else {\n type = theme.typeStyles.find((p: { typeName: string; }) => p.typeName.toLowerCase() == typeName.toLowerCase())\n if (!type) type = theme.typeStyles[0]; // for now\n }\n return type;\n }\n\n\n type(themeName?: any, typeName?: string) {\n var str = \"\";\n var self = this;\n const theme = self.getTheme(themeName)\n\n if (!theme.typeStyles) return str;\n\n var type;\n\n // synonyms\n if (typeName == \"headline1\") typeName = \"H1\"\n if (typeName == \"headline2\") typeName = \"H2\"\n if (typeName == \"headline3\") typeName = \"H3\"\n if (typeName == \"headline4\") typeName = \"H4\"\n if (typeName == \"headline5\") typeName = \"H5\"\n\n if (!typeName)\n type = theme.typeStyles[0]; // for now\n else {\n type = theme.typeStyles.find((p: any) => p.typeName.toLowerCase() == typeName.toLowerCase())\n if (!type) type = theme.typeStyles[0]; // for now\n }\n\n // Pallete takes precendence over local colors\n var colors;\n if (type.typePalette) {\n colors = this.setPalette(theme, type.typePalette)\n str += colors;\n }\n else if (!colors) {\n if (type.typeBackground)\n str += \"background-color: \" + type.typeBackground + \";\"\n if (type?.typeFontColor)\n str += \"color: \" + type.typeFontColor + \";\"\n }\n\n\n if (type.typeFont)\n str += \"font-family: \" + type.typeFont + \";\"\n if (type.typeFontSize) {\n str += \"font-size: \" + self.responsiveType(theme, type) + \"px;\"\n }\n\n if (type.typeFontWeight)\n str += \"font-weight: \" + type.typeFontWeight + \";\"\n\n if (type.typeFontAlignment)\n str += \"text-align: \" + type.typeFontAlignment + \";\"\n if (type.typeTextShadow)\n str += \"text-shadow: \" + type.typeTextShadow + \";\"\n\n if (type.typePadding)\n str += \"padding: \" + self.responsiveSpace(theme, type.typePadding, theme.responsivePaddingMin, theme.responsivePaddingMax) + \";\"\n\n if (type.typeMargin)\n str += \"margin: \" + self.responsiveSpace(theme, type.typeMargin, theme.responsiveMarginMin, theme.responsiveMarginMax) + ';'\n\n if (type.typeLineHeight)\n str += \"line-height: \" + type.typeLineHeight + \";\"\n\n // console.log (\"Type \", type, typeName, str)\n\n return str;\n }\n\n setPalette(theme: any, paletteName: string) {\n var str = \"\"\n var palette = this.getPalette(theme, paletteName)\n\n if (palette?.backgroundColor)\n str += \"background-color: \" + palette.backgroundColor + \";\"\n\n if (palette?.color)\n str += \"color: \" + palette.color + \";\"\n\n if (palette?.gradient)\n str += palette.gradient + ';'\n str = str.replace(\";;\", \";\")\n\n return str;\n }\n\n responsiveType(theme: FasterTheme, type: TypographyStyle) {\n var self = this;\n // Let's first apply auto-sizing if enabled\n\n var str = type.typeFontSize\n var numbers = str?.match(/\\d+/g)?.map(Number);\n if (!numbers) numbers = [14]\n var size = Number(numbers[0])\n var factor = self.typeFactor(theme, size)\n size = size * factor;\n // console.log(\"Font Size: \", size, factor);\n return size;\n }\n\n responsiveSpace(theme: FasterTheme, margin: string, min: number, max: number) {\n var self = this;\n var str = margin;\n\n var marginArray = margin.split(' ');\n\n var standardWidth = 1280;\n var screenWidth = 1280;\n var result = \"\";\n\n // No range no update\n if (typeof (min) != 'number') {\n // console.log (\"Not a number \", min)\n min = Number(min)\n // return margin\n }\n if (typeof (max) != 'number') {\n // console.log (\"Not a number \", max)\n max = Number(max)\n // return margin\n }\n\n screenWidth = this.screenWidth\n if (theme?.responsiveStandardWidth)\n standardWidth = theme.responsiveStandardWidth\n\n marginArray.forEach(function (item) {\n var numbers = item.match(/\\d+/g);\n var number;\n if (numbers?.length) number = Number(numbers[0])\n var operator = item.replace(/\\d/g, '');\n // console.log(\"Number/operator: \", number, operator)\n\n if (typeof (number) != 'number') result += operator + \" \";\n else {\n var size = number\n\n if (typeof (min) != 'number') min = 10;\n if (typeof (max) != 'number') max = 200;\n\n var factor = mapRange(screenWidth, 0, standardWidth, min / 100, max / 100)\n\n size = size * factor;\n size = roundToOneDecimal(size)\n // console.log(\"Factor: \", factor, );\n\n result += size.toString() + operator + \" \";\n }\n\n })\n // if (max==200)\n // console.log(\"result: \", margin, result, min, max );\n return result;\n }\n\n typeFactor(theme: FasterTheme, size: number) {\n var factor = (this.screenWidth)\n\n var min = 0.7;\n var max = 1.2;\n var standardWidth = 1980;\n\n if (theme?.responsiveStandardWidth)\n standardWidth = theme.responsiveStandardWidth\n\n if (theme?.responsiveFontSizeMin)\n min = theme.responsiveFontSizeMin / 100;\n\n if (theme?.responsiveFontSizeMax)\n max = theme.responsiveFontSizeMax / 100;\n // console.log(\"Type; \", standardWidth, min, max)\n factor = mapRange(factor, 0, standardWidth, min, max)\n return Number(factor.toFixed(1))\n }\n\n container(themeName?: any, containerName?: string | undefined) {\n var str: string = \"\";\n var self = this;\n\n const theme = self.getTheme(themeName)\n\n // console.log (\"THEME: \", theme)\n\n\n var container: any;\n if (containerName && theme.containers) {\n //@ts-ignore\n container = theme.containers.find((p: any) => p.containerName.toLowerCase() == containerName.toLowerCase())\n //if (!container && theme?.containers) container = theme.containers[0]\n // console.log (\"Container \", container,containerName);\n }\n if (theme.containers && !container)\n container = theme.containers[0];\n\n if (!container) return str;\n\n\n // Palette takes precendence over local colors\n var colors;\n if (container.containerPalette) {\n colors = this.setPalette(theme, container.containerPalette)\n str += colors;\n }\n else if (!colors) {\n if (container?.containerBackgroundGradient) {\n str += \"background-image: \" + container.containerBackgroundGradient\n }\n\n else if (container.containerBackground)\n str += \"background-color: \" + container.containerBackground + \";\"\n else str += \"background-color: rgba(255,255,255,0)\"\n\n }\n\n if (container?.backgroundImage?.length) {\n str += \"background-image: url(\" + container.backgroundImage + \");\"\n\n if (container.backgroundRepeat)\n str += \"background-repeat: \" + container.backgroundRepeat + ';'\n if (container.backgroundSize)\n str += \"background-size: \" + container.backgroundSize + ';'\n if (container.backgroundPosition)\n str += \"background-position: \" + container.backgroundPosition + ';'\n }\n\n if (container.containerBorder)\n str += \"border: \" + container.containerBorder + \";\"\n\n if (container.containerBoxShadow)\n str += \"box-shadow: \" + container.containerBoxShadow + \";\"\n\n if (container.containerMargin)\n str += \"margin: \" + self.responsiveSpace(theme, container.containerMargin, theme.responsiveMarginMin, theme.responsiveMarginMax) + ';'\n\n if (container.containerPadding)\n str += \"padding: \" + self.responsiveSpace(theme, container.containerPadding, theme.responsivePaddingMin, theme.responsivePaddingMax) + \";\"\n\n if (container.containerAlignment && !container.containerAlignmentV) {\n str += \"display: flex; justify-content: \" + container.containerAlignment + \";\"\n str += \"align-items: \" + container.containerAlignment + \";\"\n }\n else if (container.containerAlignment && container.containerAlignmentV) {\n str += \"display: flex; justify-content: \" + container.containerAlignment + \";\"\n str += \"align-items: \" + container.containerAlignmentV + \";\"\n }\n if (container.containerLayout) {\n str += \"flex-flow: \" + container.containerLayout + \";\"\n }\n if (container.containerWidth) {\n if (container.containerWidth == '100vw') {\n str += \"width: \" + this.screenWidth + 'px;'\n // console.log (\"container style \", str)\n }\n else\n str += \"width: \" + container.containerWidth + ';'\n }\n if (container.containerHeight) {\n str += \"height: \" + container.containerHeight + ';'\n }\n if (container.containerLineHeight) {\n str += \"line-height: \" + container.containerLineHeight + ';'\n }\n\n if (container.containerOverflowX) {\n str += \"overflow-x: \" + container.containerOverflowX + ';'\n }\n if (container.containerOverflowY) {\n str += \"overflow-y: \" + container.containerOverflowY + ';'\n }\n if (container.containerPosition) {\n str += \"position: \" + container.containerPosition + ';'\n }\n /* Add left,right,top,bottom */\n if (container.containerPositioning) {\n str += container.containerPositioning;\n }\n\n if (container.containerStyle) {\n str += container.containerStyle;\n }\n return str;\n }\n\n /* not used for now\n card(themeName?: any, cardName?: any) {\n var str = \"\";\n var self = this;\n \n const theme: any = self.getTheme(themeName)\n \n \n if (cardName && theme.cards) {\n const card = theme.cards.find((p: { cardName: any; }) => p.cardName == cardName)\n \n if (!card) return str;\n if (card.cardBackground)\n str = \"background-color: \" + card.cardBackground + \";\"\n \n if (card.cardBorder)\n str += \"border: \" + card.cardBorder + \";\"\n \n if (card.cardBoxShadow)\n str += \"box-shadow: \" + card.cardBoxShadow + \";\"\n \n if (card.cardMargin)\n str += \"margin: \" + card.cardMargin + \";\"\n \n if (card.cardPadding)\n str += \"padding: \" + card.cardPadding + \";\"\n \n if (card.cardAlignment) {\n str += \"display: flex; justify-content: \" + card.cardAlignment + \";\"\n str += \"align-items: \" + card.cardAlignment + \";\"\n }\n if (card.cardLayout) {\n str += \"flex-flow: \" + card.cardLayout + \";\"\n }\n return str;\n }\n else {\n if (theme.cardBackground)\n str = \"background-color: \" + theme.cardBackground + \";\"\n \n if (theme.cardBorder)\n str += \"border: \" + theme.cardBorder + \";\"\n \n if (theme.cardBoxShadow)\n str += \"box-shadow: \" + theme.cardBoxShadow + \";\"\n \n if (theme.cardMargin)\n str += \"margin: \" + theme.cardMargin + \";\"\n \n if (theme.cardPadding)\n str += \"padding: \" + theme.cardPadding + \";\"\n \n if (theme.cardAlignment) {\n str += \"display: flex; justify-content: \" + theme.cardAlignment + \";\"\n str += \"align-items: \" + theme.cardAlignment + \";\"\n }\n if (theme.cardLayout) {\n str += \"flex-flow: \" + theme.cardLayout + \";\"\n }\n }\n \n return str;\n }\n */\n accordionList(themeName: string | undefined) {\n var self = this;\n var list: never[] = [];\n const theme = <FasterTheme>self.getTheme(themeName)\n if (!theme) return list; // Should ALWAYS get theme\n\n\n if (theme.accordions?.length)\n theme.accordions.forEach(function (item) {\n //????? list.push(item.accordionName);\n })\n return list;\n\n\n }\n\n\n accordion(themeName?: any, accordionName?: string) {\n var str = \"\"\n var self = this;\n\n const theme: any = self.getTheme(themeName)\n\n // console.log (\"New Accordion Theme \", theme, accordionName)\n var acc: any;\n if (accordionName && theme.accordions)\n acc = theme.accordions.find((p: { accordionName: string; }) => p.accordionName?.length && p.accordionName.toLowerCase() == accordionName.toLowerCase())\n\n if (theme.accordions && !acc)\n acc = theme.accordions[0]; //default\n\n if (acc) {\n // Palette takes precendence over local colors\n var colors;\n if (acc.accordionPalette) {\n colors = this.setPalette(theme, acc.accordionPalette)\n str += colors;\n }\n else if (!colors) {\n\n if (acc.accordionBackground)\n str += \"background-color: \" + acc.accordionBackground + \";\"\n }\n\n if (acc.accordionBorder)\n str += \"border: \" + acc.accordionBorder + \";\"\n\n if (acc.accordionBoxShadow)\n str += \"box-shadow: \" + acc.accordionBoxShadow + \";\"\n\n if (acc.accordionWidth)\n str += \"width: \" + acc.accordionWidth + \";\"\n\n if (theme.responsiveMarginMin) {\n if (acc.accordionMargin)\n str += \"margin: \" + self.responsiveSpace(theme, acc.accordionMargin, theme.responsiveMarginMin, theme.responsiveMarginMax) + \";\"\n }\n\n if (theme.responsivePaddingMin) {\n if (acc.accordionPadding)\n str += \"padding: \" + self.responsiveSpace(theme, acc.accordionPadding, theme.responsivePaddingMin, theme.responsivePaddingMax) + \";\"\n }\n\n if (acc.accordionAlignment) {\n str += \"display: flex; justify-content: \" + acc.accordionAlignment + \";\"\n str += \"align-items: \" + acc.accordionAlignment + \";\"\n }\n if (acc.accordionLayout) {\n str += \"flex-flow: \" + acc.accordionLayout + \";\"\n\n }\n if (acc.accordionExtra)\n str += acc.accordionExtra\n }\n\n return str;\n }\n\n\n header(themeName?: any, accordionName?: string, expanded?: any, index?: any) {\n var str = \"cursor: pointer;\"\n var self = this;\n\n\n // console.log (\"Header: \", themeName, accordionName, expanded, index)\n\n const theme: any = self.getTheme(themeName)\n if (!theme) {\n console.log(\"WE CANNOT FIND YOUR THEME: \", themeName)\n return str;\n }\n\n if (accordionName && theme.accordions) {\n var acc = theme.accordions.find((p: { accordionName: string; }) => p.accordionName?.length && p.accordionName.toLowerCase() == accordionName.toLowerCase())\n // console.log (\"Your Accordion: \", acc, theme, themeName, accordionName)\n }\n if (theme.accordions && !acc)\n acc = theme.accordions[0]; //default \n\n if (acc) {\n\n if (expanded) {\n if (acc.headerOpenWidth == '100vw') {\n str += \"width: \" + self.screenWidth + 'px;'\n }\n else\n str += \"width: \" + acc.headerOpenWidth + ';'\n\n if (acc.headerOpenType)\n str += self.type(themeName, acc.headerOpenType)\n\n // Palette takes precendence over local colors\n var colors;\n if (acc.headerOpenPalette) {\n colors = this.setPalette(theme, acc.headerOpenPalette)\n str += colors;\n }\n else if (!colors) {\n if (acc.headerOpenBackground)\n str += \"background-color: \" + acc.headerOpenBackground + \";\"\n }\n\n if (acc.headerOpenBorder)\n str += \"border: \" + acc.headerOpenBorder + \";\"\n\n if (acc.headerOpenBoxShadow)\n str += \"box-shadow: \" + acc.headerOpenBoxShadow + \";\"\n\n if (acc.headerOpenMargin)\n str += \"margin: \" + self.responsiveSpace(theme, acc.headerOpenMargin, theme.responsiveMarginMin, theme.responsiveMarginMax) + \";\"\n\n if (acc.headerOpenPadding)\n str += \"padding: \" + self.responsiveSpace(theme, acc.headerOpenPadding, theme.responsivePaddingMin, theme.responsivePaddingMax) + \";\"\n\n if (acc.headerOpenAlignment) {\n str += \"display: flex; justify-content: \" + acc.headerOpenAlignment + \";\"\n str += \"align-items: \" + acc.headerOpenAlignment + \";\"\n }\n if (acc.headerOpenLayout) {\n str += \"flex-flow: \" + acc.headerOpenLayout + \";\"\n }\n if (acc.headerOpenExtra)\n str += acc.headerOpenExtra\n }\n else {\n if (acc.headerClosedWidth == '100vw') {\n str += \"width: \" + self.screenWidth + 'px;'\n }\n else\n str += \"width: \" + acc.headerClosedWidth + ';'\n\n if (acc.headerClosedType)\n str += self.type(themeName, acc.headerClosedType)\n\n // Palette takes precendence over local colors\n var colors;\n if (acc.headerClosedPalette) {\n colors = this.setPalette(theme, acc.headerClosedPalette)\n str += colors;\n }\n else if (!colors) {\n\n if (acc.headerClosedBackground)\n str += \"background-color: \" + acc.headerClosedBackground + \";\"\n }\n\n if (acc.headerClosedBorder)\n str += \"border: \" + acc.headerClosedBorder + \";\"\n\n\n if (acc.headerClosedBoxShadow)\n str += \"box-shadow: \" + acc.headerClosedBoxShadow + \";\"\n\n if (acc.headerClosedMargin)\n str += \"margin: \" + self.responsiveSpace(theme, acc.headerClosedMargin, theme.responsiveMarginMin, theme.responsiveMarginMax) + \";\"\n\n if (acc.headerClosedPadding)\n str += \"padding: \" + self.responsiveSpace(theme, acc.headerClosedPadding, theme.responsivePaddingMin, theme.responsivePaddingMax) + \";\"\n\n if (acc.headerClosedAlignment) {\n str += \"display: flex; justify-content: \" + acc.headerClosedAlignment + \";\"\n str += \"align-items: \" + acc.headerClosedAlignment + \";\"\n }\n if (acc.headerClosedLayout) {\n str += \"flex-flow: \" + acc.headerClosedLayout + \";\"\n }\n if (acc.headerClosedExtra)\n str += acc.headerClosedExtra\n }\n }\n else {\n // DEFAULT ACCORDION STYLING?? Maybe not.\n console.log(\"No accordions!\")\n }\n\n return str;\n }\n\n button(themeName?: any, buttonName?: string | undefined) {\n var str = \"\";\n var self = this;\n\n const theme: any = self.getTheme(themeName)\n\n const buttonStyle: any = self.getButton(theme, buttonName)\n if (!buttonStyle) return str;\n\n const type: any = self.typeObject(theme, buttonStyle.buttonTypeStyle) || {}\n\n // Pallete takes precendence over local colors\n var colors;\n if (buttonStyle.buttonPalette) {\n colors = self.setPalette(theme, buttonStyle.buttonPalette)\n str += colors;\n }\n if (!colors) {\n if (buttonStyle?.buttonBackground)\n str += \"background-color: \" + buttonStyle.buttonBackground + \";\"\n if (buttonStyle?.buttonColor) {\n str += \"color: \" + buttonStyle.buttonColor + \";\"\n }\n }\n\n if (buttonStyle?.buttonPadding)\n str += \"padding: \" + self.responsiveSpace(theme, buttonStyle.buttonPadding, theme.responsivePaddingMin, theme.responsivePaddingMax) + \";\"\n\n if (buttonStyle?.buttonMargin)\n str += \"margin: \" + self.responsiveSpace(theme, buttonStyle.buttonMargin, theme.responsiveMarginMin, theme.responsiveMarginMax) + \";\"\n\n if (buttonStyle?.buttonBorder) {\n str += \"border: \" + buttonStyle.buttonBorder + \";\"\n }\n else str += \"border: none;\"\n if (buttonStyle?.buttonRadius)\n str += \"border-radius: \" + buttonStyle.buttonRadius + \";\"\n if (buttonStyle?.buttonShadow)\n str += \"box-shadow: \" + buttonStyle.buttonShadow + \";\"\n if (type.typeFontSize) {\n str += \"font-size: \" + self.responsiveType(theme, type) + \"px;\"\n }\n if (type.typeFont)\n str += \"font-family: \" + type.typeFont + \";\"\n if (type.typeFontWeight)\n str += \"font-weight: \" + type.typeFontWeight + \";\"\n\n str += \"cursor: pointer; box-sizing: border-box;\"\n\n return str;\n }\n\n paddingAdjustment: any;\n paddingAdjust(theme: any, delta: any) {\n this.paddingAdjustment = delta;\n\n }\n\n\n // Firebase removed - no longer used\n // private watching: boolean = false;\n // private async watchThemes(docId: string) {\n // const app: FirebaseApp = (await this.authPromise).app\n // const themesQuery = query(collection(getFirestore(app), 'company', docId, 'themes'),\n // where(\"removed\",\"!=\", true))\n //\n // onSnapshot(themesQuery, async (snapshot) => {\n // snapshot.docChanges().forEach(async (change) => {\n // const themeId = change.doc.id;\n // //@ts-ignore: Ensure FasterTheme is correctly defined\n // const themeData: FasterTheme = change.doc.data();\n // themeData.id = themeId;\n // if (change.type === 'added') {\n // this.allThemes.push(themeData);\n // } else if (change.type === 'modified') {\n // const index = this.allThemes.findIndex((theme) => theme.id === themeId);\n // if (index !== -1) {\n // this.allThemes[index] = Object.assign(this.allThemes[index], themeData);\n // }\n // } else if (change.type === 'removed') {\n // const index = this.allThemes.findIndex((theme) => theme.id === themeId);\n // if (index !== -1) {\n // this.allThemes.splice(index, 1);\n // }\n // }\n // });\n // },\n // async (error: any) => {\n // console.error(\"Error watching themes: \", error);\n // console.log(\"using platform themes as fallback\");\n // const themesRef = collection(getFirestore(app), 'platform', 'OdCDgRWTZhTMzW8N0y9y', 'themes');\n // const themes = await getDocs(themesRef);\n // for (const doc of themes.docs) {\n // const data = doc.data() as FasterTheme;\n // data.id = doc.id;\n // this.allThemes.push(data);\n // }\n // })\n // }\n\ndefaultStyle: FasterTheme =\n{\n editedBy: \"napkinPackage\",\n responsiveMarginMax: 175,\n name: \"Default\",\n responsiveFontSizeMin: 70,\n responsiveName: \"removeName\",\n companyId: \"napkinPackage\",\n responsiveStandardWidth: 1980,\n id: \"napkinPackage\",\n responsivePaddingMax: 175,\n removed: false,\n responsivePaddingMin: 80,\n palette: [\n {\n colorName: \"BrandFocus\",\n backgroundColor: \" #85FFBD\",\n gradient: \"background-image: linear-gradient(45deg, #85FFBD 0%, #FFFB7D 100%)\",\n color: \"#00695c\"\n },\n {\n colorName: \"BrandFont\",\n color: \"0xffaaff\",\n gradient: \"background-image: linear-gradient(45deg, #45FA8D 0%, #00457D 100%)\",\n backgroundColor: \"#e1f5fe\"\n },\n {\n backgroundColor: \"#80cbc4\",\n colorName: \"Primary\",\n color: \"#5d4037\"\n },\n {\n gradient: \"background-image: radial-gradient(circle, rgba(117, 194, 224, 1) 0%, rgba(87, 160, 199, 1) 50%, rgba(83, 104, 237, 1) 100%)\",\n backgroundColor: \"#a6e4fc\",\n color: \"0xffaaff\",\n colorName: \"Settings\"\n },\n {\n backgroundColor: \"#4e342e\",\n color: \"#f5f5f5\",\n colorName: \"whiteOnBrown\"\n },\n {\n colorName: \"Share\",\n color: \"#0288d1\",\n backgroundColor: \"#adfcac\",\n gradient: \"\"\n }\n ],\n share: {\n writeAccess: \"Private\",\n publicWriteAccess: \"None\",\n readAccess: \"Private\",\n publicReadAccess: \"Anyone\"\n },\n responsiveFontSizeMax: 120,\n coreTheme: true,\n accordions: [\n {\n headerClosedBackground: \"#81d4fa\",\n accordionLayout: \"row wrap\",\n accordionAlignment: \"center\",\n headerOpenBackground: \"#81d4fa\",\n accordionPadding: \"12px\",\n accordionName: \"base\",\n headerClosedType: \"H4\",\n accordionExtra: \"\",\n accordionBoxShadow: \"\",\n headerClosedExtra: \"\",\n headerOpenBorder: \"1px solid white\",\n headerOpenType: \"H4\",\n headerClosedBorder: \"\",\n headerOpenMargin: \"8px\",\n headerOpenLayout: \"column\",\n headerClosedAlignment: \"center\",\n accordionBorder: \"\",\n headerOpenExtra: \"\",\n accordionMargin: \"12px\",\n headerClosedBoxShadow: \"5px 5px 10px 2px rgba(0, 0, 0, 0.5)\",\n headerOpenAlignment: \"Center\",\n headerClosedLayout: \"row wrap\",\n accordionBackground: \"0xffaaff\",\n headerClosedMargin: \"6px\",\n headerOpenPadding: \"8px\",\n headerClosedPadding: \"8px\"\n },\n {\n headerOpenExtra: \"\",\n accordionAlignment: \"center\",\n accordionBoxShadow: \"\",\n accordionExtra: \"\",\n headerOpenLayout: \"column\",\n accordionLayout: \"row wrap\",\n headerOpenAlignment: \"Center\",\n headerClosedBorder: \"2px solid gray\",\n headerClosedType: \"H4\",\n accordionName: \"Level 1\",\n accordionPadding: \"4px\",\n headerOpenMargin: \"1px\",\n accordionMargin: \"\",\n headerClosedPadding: \"8px\",\n headerOpenBackground: \"#d1c4e9\",\n accordionBackground: \"#b39ddb\",\n headerClosedMargin: \"2px\",\n accordionBorder: \"1px solid black\",\n headerClosedAlignment: \"center\",\n headerOpenType: \"H4\",\n headerClosedBoxShadow: \"\",\n headerClosedExtra: \"\",\n headerOpenPadding: \"8px\",\n headerClosedLayout: \"row wrap\",\n headerClosedBackground: \"#d1c4e9\"\n },\n {\n accordionExtra: \"\",\n headerOpenMargin: \"0px\",\n headerClosedExtra: \"\",\n accordionBackground: \"\",\n headerClosedBorder: \"\",\n accordionName: \"Level 2\",\n headerOpenExtra: \"\",\n headerOpenAlignment: \"Center\",\n headerClosedPadding: \"14px 12px\",\n headerClosedBoxShadow: \"inset -2px 0px 8px 6px #808080\",\n accordionBoxShadow: \"\",\n headerClosedType: \"H4\",\n accordionBorder: \"\",\n headerClosedMargin: \"6px\",\n headerOpenBoxShadow: \"inset -2px 0px 8px 6px #808080\",\n headerOpenType: \"H4\",\n headerOpenPadding: \"8px\",\n headerClosedBackground: \"#e3f2fd\",\n accordionMargin: \"\",\n accordionAlignment: \"space-evenly\",\n headerOpenLayout: \"row wrap\",\n headerOpenBackground: \"#e3f2fd\",\n accordionLayout: \"row wrap\",\n headerClosedAlignment: \"center\",\n headerClosedLayout: \"row wrap\"\n },\n {\n headerClosedLayout: \"row wrap\",\n accordionName: \"Level 3\",\n headerOpenPadding: \"\",\n accordionBackground: \"\",\n accordionMargin: \"0px\",\n headerClosedAlignment: \"center\",\n headerOpenPalette: \"Primary\",\n headerClosedPadding: \"12px 6px\",\n headerOpenType: \"H4\",\n headerOpenAlignment: \"Center\",\n accordionLayout: \"row wrap\",\n headerClosedBorder: \"\",\n headerClosedType: \"H4\",\n headerOpenBackground: \"#b0cad5\",\n headerClosedBoxShadow: \"\",\n headerOpenLayout: \"row wrap\",\n headerOpenMargin: \"8px\",\n accordionBoxShadow: \"\",\n accordionExtra: \"\",\n accordionAlignment: \"space-evenly\",\n headerClosedMargin: \"8px\",\n headerClosedExtra: \"\",\n headerClosedBackground: \"#b0cad5\",\n headerOpenExtra: \"\"\n },\n {\n headerClosedType: \"H4\",\n headerClosedBorder: \"1px solid blue\",\n headerOpenAlignment: \"Center\",\n accordionLayout: \"row wrap\",\n accordionAlignment: \"center\",\n headerOpenLayout: \"row wrap\",\n headerClosedPadding: \"14px\",\n accordionBackground: \"#c8e6c9\",\n headerClosedBoxShadow: \"3px 3px grey\",\n accordionName: \"Level 4\",\n headerOpenPadding: \"14px\",\n accordionBoxShadow: \"4px yellow\",\n headerOpenType: \"title\",\n headerClosedAlignment: \"center\",\n headerClosedExtra: \"\",\n headerOpenMargin: \"0px\",\n headerClosedMargin: \"2px\",\n accordionExtra: \"\",\n headerOpenExtra: \"\",\n headerClosedBackground: \"#dcedc8\",\n headerClosedLayout: \"row wrap\",\n headerOpenBackground: \"#b2dfdb\"\n },\n {\n headerClosedAlignment: \"center\",\n headerClosedBorder: \"1px solid blue\",\n headerClosedType: \"label\",\n accordionExtra: \"\",\n headerClosedExtra: \"\",\n accordionLayout: \"column\",\n headerOpenAlignment: \"Center\",\n headerOpenExtra: \"\",\n accordionBackground: \"#e1f5fe\",\n headerOpenLayout: \"row wrap\",\n headerOpenType: \"label\",\n accordionBoxShadow: \"4px yellow\",\n headerOpenPadding: \"0px\",\n headerClosedBoxShadow: \"\",\n headerClosedPadding: \"0px\",\n headerClosedBackground: \"#b3e5fc\",\n accordionName: \"Minimal\",\n accordionAlignment: \"center\",\n headerClosedMargin: \"0px\",\n headerOpenBackground: \"#81d4fa\",\n headerClosedLayout: \"row wrap\",\n headerOpenMargin: \"0px\"\n },\n {\n headerOpenAlignment: \"Center\",\n headerOpenBackground: \"0xffaaff\",\n headerClosedBackground: \"0xffaaff\",\n headerOpenWidth: \"100vw\",\n headerOpenExtra: \"\",\n headerOpenType: \"H4\",\n headerClosedType: \"H4\",\n headerOpenLayout: \"row wrap\",\n headerClosedLayout: \"row wrap\",\n accordionName: \"Settings\",\n headerClosedWidth: \"100vw\",\n headerClosedExtra: \"\",\n accordionExtra: \"\",\n accordionMargin: \"0px\",\n accordionBoxShadow: \"\",\n headerClosedAlignment: \"center\",\n headerClosedPalette: \"Settings\",\n headerOpenPalette: \"Settings\",\n accordionLayout: \"row wrap\",\n accordionBackground: \"0xffaaff\",\n headerClosedMargin: \"0px\",\n accordionWidth: \"100vw\",\n accordionPalette: \"Settings\",\n headerClosedBorder: \"\",\n headerClosedPadding: \"6px\",\n accordionPadding: \"0px\",\n accordionAlignment: \"center\",\n headerOpenMargin: \"0px\",\n headerClosedBoxShadow: \"\",\n headerOpenPadding: \"0px\"\n },\n {\n headerClosedPadding: \"8px\",\n headerOpenLayout: \"row wrap\",\n headerClosedBackground: \"#b5ffbb\",\n headerOpenMargin: \"4px\",\n headerClosedBorder: \"\",\n headerClosedExtra: \"\",\n accordionLayout: \"row wrap\",\n headerOpenType: \"H4\",\n accordionBoxShadow: \"\",\n headerClosedLayout: \"row wrap\",\n headerClosedType: \"H4\",\n accordionExtra: \"\",\n headerOpenExtra: \"\",\n headerClosedBoxShadow: \"inset -2px 0px 7px 6px #aaaaaa99\",\n accordionBackground: \"0xffaaff\",\n headerOpenBorder: \"\",\n accordionAlignment: \"space-evenly\",\n accordionName: \"Object\",\n headerOpenPadding: \"8px\",\n headerOpenBackground: \"#b5ffbb\",\n headerClosedMargin: \"6px\",\n headerOpenAlignment: \"Center\"\n },\n {\n headerClosedExtra: \"\",\n accordionLayout: \"row wrap\",\n headerClosedPadding: \"1px\",\n headerClosedType: \"body\",\n accordionExtra: \"\",\n headerOpenExtra: \"\",\n headerClosedLayout: \"row wrap\",\n headerOpenPadding: \"1px\",\n headerClosedMargin: \"0px\",\n accordionAlignment: \"center\",\n headerOpenMargin: \"0px\",\n headerClosedAlignment: \"center\",\n headerOpenAlignment: \"Center\",\n accordionBackground: \"0xffaaff\",\n headerOpenBackground: \"#eceff1\",\n headerOpenLayout: \"row wrap\",\n accordionBoxShadow: \"\",\n headerClosedBackground: \"#b0bec5\",\n headerClosedBorder: \"\",\n headerOpenType: \"body\",\n accordionName: \"Media Details\",\n headerClosedBoxShadow: \"\"\n },\n {\n accordionBackground: \"#e1f5fe\",\n headerClosedType: \"H3\",\n headerOpenExtra: \"\",\n accordionExtra: \"\",\n headerOpenAlignment: \"Center\",\n headerClosedLayout: \"row wrap\",\n headerOpenMargin: \"6px\",\n headerClosedBackground: \"#03a9f4\",\n accordionName: \"Docs\",\n headerOpenBackground: \"#b3e5fc\",\n headerOpenType: \"H3\",\n headerOpenLayout: \"row wrap\",\n headerClosedAlignment: \"center\",\n headerOpenPadding: \"6px\",\n headerClosedPadding: \"12px\",\n headerClosedMargin: \"12px\",\n accordionLayout: \"column\",\n headerClosedExtra: \"\",\n accordionAlignment: \"space-evenly\"\n },\n {\n headerOpenPadding: \"0px\",\n accordionMargin: \"0px\",\n headerOpenType: \"label\",\n headerOpenBackground: \"#94e4ed\",\n headerClosedAlignment: \"left\",\n accordionPadding: \"4px\",\n headerClosedMargin: \"0px\",\n headerClosedPadding: \"4px\",\n accordionExtra: \"\",\n accordionName: \"Create\",\n headerClosedExtra: \"\",\n accordionWidth: \"fit-content\",\n accordionAlignment: \"left\",\n headerClosedType: \"H5\",\n accordionLayout: \"row wrap\",\n accordionBackground: \"#c3fd95\",\n headerOpenExtra: \"\",\n headerClosedBackground: \"#c3fd95\",\n headerOpenMargin: \"0px\"\n },\n {\n headerOpenBackground: \"#81c784\",\n accordionLayout: \"row wrap\",\n accordionWidth: \"auto\",\n headerOpenType: \"H4\",\n headerOpenExtra: \"\",\n headerClosedType: \"H4\",\n headerClosedMargin: \"\",\n headerClosedExtra: \"\",\n accordionBackground: \"#c1e7ad\",\n headerClosedBackground: \"#c1e7ad\",\n headerOpenPadding: \"12px\",\n accordionExtra: \"\",\n accordionPadding: \"\",\n headerClosedBorder: \"1px solid gray\",\n headerOpenWidth: \"auto\",\n headerClosedWidth: \"auto\",\n accordionName: \"TeamChat\",\n headerClosedPadding: \" 12px\"\n },\n {\n headerClosedAlignment: \"center\",\n headerOpenType: \"label\",\n accordionBackground: \"#ffccbc\",\n headerOpenBackground: \"#ffccbc\",\n headerClosedType: \"label\",\n accordionWidth: \"100vw\",\n accordionExtra: \"\",\n headerOpenAlignment: \"Center\",\n accordionName: \"Style\",\n headerClosedBackground: \"#ffccbc\",\n headerClosedExtra: \"\",\n accordionLayout: \"column\",\n headerOpenExtra: \"\",\n accordionAlignment: \"space-evenly\"\n },\n {\n accordionBackground: \"0xffaaff\",\n accordionName: \"Share\",\n headerOpenExtra: \"\",\n accordionWidth: \"100vw\",\n headerClosedPalette: \"Share\",\n accordionLayout: \"column\",\n headerOpenAlignment: \"Center\",\n headerOpenBackground: \"#b39ddb\",\n headerClosedAlignment: \"center\",\n accordionAlignment: \"space-evenly\",\n headerClosedType: \"label\",\n accordionPalette: \"Share\",\n headerClosedBackground: \"0xffaaff\",\n accordionExtra: \"\",\n headerOpenType: \"label\",\n headerClosedExtra: \"\"\n },\n {\n headerClosedBoxShadow: \"rgba(50, 50, 93, 0.25) 0px 30px 60px -12px inset, rgba(0, 0, 0, 0.3) 0px 18px 36px -18px inset\",\n accordionAlignment: \"center\",\n headerClosedType: \"H5\",\n accordionBoxShadow: \"rgba(50, 50, 93, 0.25) 0px 30px 60px -12px inset, rgba(0, 0, 0, 0.3) 0px 18px 36px -18px inset\",\n headerOpenMargin: \"0px\",\n headerClosedBorder: \"\",\n accordionExtra: \"\",\n headerClosedLayout: \"row wrap\",\n accordionPadding: \"0px\",\n headerOpenExtra: \"\",\n headerClosedBackground: \"#80cbc4\",\n headerClosedMargin: \"2px 2px\",\n headerClosedPadding: \"12px 30px\",\n accordionName: \"UI\",\n headerOpenType: \"label\",\n accordionBackground: \"#b2dfdb\",\n accordionLayout: \"row wrap\",\n headerOpenBackground: \"#80cbc4\",\n accordionMargin: \"0px\",\n accordionBorder: \"\",\n headerOpenLayout: \"row wrap\",\n headerClosedExtra: \"\",\n headerOpenPadding: \"6px 12px\"\n },\n {\n accordionExtra: \"\",\n headerOpenExtra: \"\",\n headerOpenBackground: \"#bcaaa4\",\n accordionBackground: \"#d7ccc8\",\n headerClosedType: \"H4\",\n accordionName: \"Chat Bots\",\n headerClosedExtra: \"\",\n headerOpenType: \"H4\",\n headerClosedBackground: \"#d7ccc8\"\n },\n {\n headerClosedExtra: \"\",\n headerClosedBackground: \"#81d4fa\",\n accordionAlignment: \"space-evenly\",\n accordionExtra: \"\",\n headerOpenMargin: \"0px\",\n headerOpenExtra: \"\",\n headerClosedMargin: \"12px\",\n accordionPadding: \"0px\",\n accordionMargin: \"0px\",\n accordionLayout: \"row wrap\",\n accordionPalette: \"BrandFocus\",\n accordionName: \"Team\",\n accordionBackground: \"0xffaaff\",\n headerOpenPadding: \"0px\",\n headerClosedType: \"title\",\n headerOpenBackground: \"0xffaaff\",\n headerClosedPadding: \"12px\",\n headerOpenType: \"label\"\n },\n {\n headerOpenType: \"H3\",\n headerOpenBackground: \"0xffaaff\",\n headerOpenMargin: \"10px\",\n accordionExtra: \"\",\n headerClosedPadding: \"6px\",\n accordionLayout: \"row wrap\",\n headerClosedBackground: \"#ffe0b2\",\n accordionPadding: \"20px\",\n accordionName: \"Sheet\",\n headerOpenExtra: \"\",\n headerClosedBorder: \"2px groove #F54927\",\n accordionBackground: \"#ede7f6\",\n accordionAlignment: \"space-evenly\",\n headerClosedType: \"H3\",\n headerClosedExtra: \"\",\n headerClosedMargin: \"10px\"\n },\n {\n headerClosedBackground: \"#b2ebf2\",\n headerOpenLayout: \"row wrap\",\n accordionExtra: \"\",\n headerClosedExtra: \"\",\n headerClosedLayout: \"row wrap\",\n headerOpenType: \"H4\",\n headerOpenBackground: \"0xffaaff\",\n headerOpenBoxShadow: \"\",\n accordionLayout: \"row wrap\",\n accordionBoxShadow: \"\",\n headerClosedPadding: \"12px\",\n headerClosedType: \"H4\",\n headerOpenAlignment: \"Left\",\n headerClosedAlignment: \"center\",\n accordionName: \"App\",\n headerOpenWidth: \"\",\n headerOpenExtra: \"\",\n headerClosedMargin: \"12px\",\n accordionBackground: \"#b2dfdb\",\n accordionAlignment: \"space-evenly\",\n headerClosedBoxShadow: \"6px 4px 3px gray\"\n },\n {\n headerClosedType: \"title\",\n headerClosedBoxShadow: \"inset 0 0 10px rgba(0, 0, 0, 0.5)\",\n accordionLayout: \"row wrap\",\n accordionBackground: \"#bbdefb\",\n accordionAlignment: \"center\",\n accordionExtra: \"\",\n headerOpenExtra: \"\",\n headerClosedMargin: \"4px\",\n headerOpenBackground: \"#e3f2fd\",\n headerOpenType: \"title\",\n headerClosedExtra: \"\",\n accordionBoxShadow: \"\",\n headerClosedPadding: \"2px 10px\",\n accordionName: \"Report\",\n accordionPadding: \"0px\",\n headerClosedBackground: \"#90caf9\",\n accordionMargin: \"\"\n }\n ],\n responsiveMarginMin:80,\n containers: [\n {\n containerBackground: \"#eceff1\",\n containerLayout: \"column\",\n containerAlignmentV: \"center\",\n containerName: \"Data Entry\",\n containerBorder: \"none\",\n containerStyle: \"border-radius: 9px;\",\n containerPadding: \"12px 6px\",\n containerAlignment: \"center\",\n containerMargin: \"12px 6px\",\n containerBoxShadow: \"2px 3px 3px gray\",\n containerPosition: \"relative\"\n },\n {\n containerHeight: \"80vh\",\n containerPadding: \"4px\",\n containerName: \"Tall\",\n containerBackground: \"\",\n containerAlignment: \"center\",\n containerPosition: \"relative\",\n containerLineHeight: \"150%\",\n containerStyle: \"border-radius: 12px;\",\n containerWidth: \"33vw\",\n containerBoxShadow: \"3px 5px 5px gray\",\n containerAlignmentV: \"center\",\n containerLayout: \"column\",\n containerBorder: \"1px solid gray\",\n containerMargin: \"6px\"\n },\n {\n containerBackground: \"0xffaaff\",\n containerStyle: \"border-radius: 12px;\",\n containerAlignmentV: \"center\",\n containerMargin: \"0px\",\n containerPosition: \"relative\",\n containerLayout: \"row wrap\",\n containerHeight: \"33vh\",\n containerBorder: \"\",\n containerName: \"Wide\",\n containerWidth: \"100vw\",\n containerBoxShadow: \"\",\n containerAlignment: \"center\",\n containerPadding: \"4px\"\n },\n {\n containerLayout: \"row wrap\",\n containerPadding: \"0px 0px\",\n containerOverflowX: \"scroll\",\n containerBorder: \"none\",\n containerAlignment: \"center\",\n containerName: \"Full Width\",\n containerBoxShadow: \"\",\n containerWidth: \"100vw\",\n containerPosition: \"relative\",\n containerStyle: \"\",\n // backgroundImage: \"\",\n containerAlignmentV: \"center\",\n containerBackground: \"#cfdbe7\",\n containerBackgroundGradient: \"\",\n containerOverflowY: \"scroll\",\n containerMargin: \"0px\"\n },\n {\n containerPosition: \"relative\",\n containerBoxShadow: \"3px 5px 5px gray\",\n containerBackground: \"0xffaaff\",\n containerMargin: \"6px\",\n containerPadding: \"0px\",\n containerAlignmentV: \"center\",\n containerLayout: \"row wrap\",\n containerName: \"Media\",\n containerAlignment: \"center\",\n containerStyle: \"border-radius: 12px;\",\n containerWidth: \"25vw\",\n containerBorder: \"none\"\n },\n {\n containerStyle: \"\",\n containerPadding: \"4px\",\n containerBoxShadow: \"\",\n containerBackground: \"0xffaaff\",\n containerLayout: \"row wrap\",\n containerOverflowX: \"hidden\",\n containerOverflowY: \"auto\",\n containerHeight: \"100px\",\n containerAlignmentV: \"center\",\n containerPosition: \"relative\",\n containerMargin: \"\",\n containerAlignment: \"center\",\n containerName: \"Scroller\",\n containerBorder: \"none\",\n containerWidth: \"100vw\"\n },\n {\n containerStyle: \"\",\n containerBackground: \"#cfd8dc55\",\n containerPadding: \"6px\",\n containerBoxShadow: \"\",\n containerName: \"Sticky\",\n containerAlignmentV: \"center\",\n containerMargin: \"6px\",\n containerBorder: \"none\",\n containerLayout: \"row wrap\",\n containerPositioning: \"top: 0;\",\n containerAlignment: \"center\",\n containerPosition: \"sticky\",\n containerHeight: \"auto\"\n },\n {\n containerBackground: \"0xffaaff\",\n containerBoxShadow: \"\",\n containerBorder: \"\",\n containerLayout: \"row wrap\",\n containerAlignmentV: \"center\",\n containerName: \"1/3 Width\",\n containerPadding: \"0px\",\n containerWidth: \"33%\",\n containerAlignment: \"center\",\n containerBackgroundGradient: \"\",\n containerMargin: \"0px\",\n containerStyle: \"\"\n },\n {\n containerLayout: \"column\",\n containerName: \"Messages\",\n containerBackground: \"#ffb74d\",\n containerBorder: \"1px solid white\",\n containerMargin: \"12px 0px\",\n containerLineHeight: \"150%\"\n },\n {\n containerAlignmentV: \"center\",\n containerName: \"Report\",\n containerLayout: \"column\",\n containerOverflowX: \"scroll\",\n containerHeight: \"auto\",\n containerBackground: \"#f0edf5\",\n containerOverflowY: \"scroll\",\n containerMargin: \"\",\n containerBorder: \"2px solid black\"\n },\n {\n containerMargin: \"0px\",\n containerPadding: \"0px\",\n containerWidth: \"66%\",\n containerName: \"2/3 Width\",\n containerBackground: \"0xffaaff\"\n },\n {\n containerBackground: \"0xffaaff\",\n containerPadding: \"6px\",\n containerMargin: \"6px\",\n containerLayout: \"column\",\n containerAlignmentV: \"center\",\n containerBorder: \"2px solid green\",\n containerPalette: \"BrandFocus\",\n containerName: \"teamApp\",\n containerAlignment: \"center\"\n },\n {\n containerLayout: \"column\",\n containerName: \"reportHeader\",\n containerPalette: \"BrandFocus\",\n containerMargin: \"10px\",\n containerPadding: \"8px\",\n containerBackground: \"0xffaaff\"\n },\n {\n containerBackground: \"#f5f5f5\",\n containerName: \"Inactive\"\n },\n {\n containerName: \"Full Screen Media\",\n containerBorder: \"3px light blue\",\n containerLayout: \"column\",\n containerHeight: \"auto\",\n containerBackground: \"0xffaaff\",\n containerWidth: \"100vw\",\n containerPadding: \"20px\"\n },\n {\n containerPadding: \"15px\",\n containerWidth: \"50%\",\n containerName: \"Half Width\",\n containerBackground: \"0xffaaff\"\n }\n ],\n buttonStyles: [\n {\n buttonPadding: \"8px 6px\",\n buttonMargin: \"6px\",\n buttonRadius: \"10px\",\n buttonTypeStyle: \"label\",\n buttonBorder: \"1px light blue solid\",\n buttonName: \"Default Style\",\n buttonBackground: \"#283593\",\n buttonShadow: \" 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)\",\n buttonColor: \"#ffffff\"\n },\n {\n buttonBorder: \"1px solid gray\",\n buttonTypeStyle: \"label\",\n buttonShadow: \" 0 2px 4px 0 rgba(0,0,0,0.2), 0 3px 6px 0 rgba(0,0,0,0.19)\",\n buttonMargin: \"0px\",\n buttonBackground: \"#80deea\",\n buttonColor: \"#000000\",\n buttonName: \"Item Select\",\n buttonPadding: \"8px 6px\",\n buttonRadius: \"0px\"\n },\n {\n buttonShadow: \" 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)\",\n buttonColor: \"#4527a0\",\n buttonPadding: \"8px 6px\",\n buttonBorder: \"none\",\n buttonTypeStyle: \"label\",\n buttonRadius: \"8px\",\n buttonName: \"Create\",\n buttonMargin: \"6px\",\n buttonBackground: \"#b8ff82\"\n },\n {\n buttonTypeStyle: \"label\",\n buttonBackground: \"#ad1457\",\n buttonMargin: \"8px\",\n buttonRadius: \"8px\",\n buttonShadow: \" 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)\",\n buttonName: \"Delete\",\n buttonColor: \"#fafafa\",\n buttonPadding: \"8px 6px\",\n buttonBorder: \"none\"\n },\n {\n buttonRadius: \"0px\",\n buttonMargin: \"8px\",\n buttonTypeStyle: \"label\",\n buttonColor: \"#bdbdbd\",\n buttonShadow: \"none\",\n buttonBorder: \"none\",\n buttonName: \"Disabled\",\n buttonBackground: \"#e0e0e0\",\n buttonPadding: \"8px 6px\"\n },\n {\n buttonName: \"Highlight\",\n buttonShadow: \" 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)\",\n buttonBackground: \"#BBDEFB\",\n buttonTypeStyle: \"label\",\n buttonMargin: \"8px\",\n buttonColor: \"#ff8a65\",\n buttonPadding: \"8px 6px\",\n buttonPalette: \"BrandFocus\",\n buttonRadius: \"3px\",\n buttonBorder: \"none\"\n },\n {\n buttonMargin: \"8px\",\n buttonColor: \"#ffffff\",\n buttonShadow: \" 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)\",\n buttonName: \"Function\",\n buttonPadding: \"8px 6px\",\n buttonTypeStyle: \"label\",\n buttonBorder: \"none\",\n buttonBackground: \"#039be5\"\n },\n {\n buttonRadius: \"12px\",\n buttonMargin: \"8px\",\n buttonColor: \"0xffaaff\",\n buttonPadding: \"8px 12px\",\n buttonBackground: \"#c8e6c9\",\n buttonTypeStyle: \"label\",\n buttonShadow: \" 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)\",\n buttonBorder: \"none\",\n buttonName: \"Edit\"\n },\n {\n buttonPadding: \"8px 6px 8px 16px\",\n buttonMargin: \"8px\",\n buttonBackground: \"#455a64\",\n buttonRadius: \"0px 18px 18px 0px\",\n buttonColor: \"#fff59d\",\n buttonName: \"Action\",\n buttonShadow: \" 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)\",\n buttonTypeStyle: \"label\"\n },\n {\n buttonColor: \"#000000\",\n buttonBackground: \"#e0f7fa\",\n buttonBorder: \"1px solid gray\",\n buttonShadow: \"none\",\n buttonName: \"cell\",\n buttonMargin: \"0px\",\n buttonPadding: \"0px\",\n buttonTypeStyle: \"label\"\n },\n {\n buttonMargin: \"6px\",\n buttonPadding: \"8px 6px\",\n buttonColor: \"#3949ab\",\n buttonName: \"Logic\",\n buttonTypeStyle: \"subtitle\",\n buttonBackground: \"#bcaaa4\",\n buttonBorder: \"2px solid black\"\n },\n {\n buttonTypeStyle: \"Jade\",\n buttonName: \"Jade\",\n buttonMargin: \"3px\",\n buttonColor: \"0xffaaff\",\n buttonBackground: \"#f3e5f5\",\n buttonPadding: \"8px 6px\"\n },\n {\n buttonMargin: \"6px\",\n buttonBackground: \"#ffecb3\",\n buttonRadius: \"9px\",\n buttonName: \"Cancel\",\n buttonPadding: \"8px 6px\",\n buttonTypeStyle: \"label\",\n buttonColor: \"#546e7a\"\n }\n ],\n createdBy: \"napkinPackage\",\n typeStyles: [\n {\n typeFont: \"Noto Sans\",\n typeName: \"H1\",\n typeBackground: \"0xffaaff\",\n typePadding: \"6px 4px\",\n typeFontColor: \"#0e0000\",\n typeFontWeight: \"700\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFontSize: \"35px\"\n },\n {\n typeFontColor: \"#000000\",\n typeName: \"H2\",\n typeBackground: \"0xffaaff\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFont: \"Noto Sans\",\n typeFontWeight: \"700\",\n typeFontSize: \"28px\",\n typePadding: \"6px 4px\"\n },\n {\n typeFontSize: \"24px\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFontColor: \"#080000\",\n typeBackground: \"0xffaaff\",\n typeName: \"H3\",\n typePadding: \"\",\n typeFont: \"Noto Sans\",\n typeFontWeight: \"600\"\n },\n {\n typeBackground: \"0xffaaff\",\n typePadding: \"\",\n typeFont: \"Noto Sans\",\n typeName: \"H4\",\n typeFontSize: \"19px\",\n typeFontColor: \"0xffaaff\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFontWeight: \"600\"\n },\n {\n typeFontAlignment: \"center\",\n typeBackground: \"0xffaaff\",\n typeFontColor: \"#070000\",\n typeName: \"H5\",\n typeFontSize: \"17px\",\n typePadding: \"\",\n typeFontWeight: \"600\",\n typeFont: \"Noto Sans\",\n typeTextShadow: \"\"\n },\n {\n typeFontSize: \"14px\",\n typeLineHeight: \"200%\",\n typeBackground: \"0xffaaff\",\n typePadding: \"\",\n typeFont: \"Noto Sans\",\n typeFontColor: \"0xffaaff\",\n typeFontWeight: \"500\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeName: \"body\",\n typeMargin: \"\"\n },\n {\n typeFontWeight: \"500\",\n typeName: \"label\",\n typeFont: \"Noto Sans\",\n typeMargin: \"\",\n typeFontColor: \"#000000\",\n typeFontAlignment: \"center\",\n typePadding: \"\",\n typeBackground: \"0xffaaff\",\n typeFontSize: \"19px\",\n typeTextShadow: \"1px 1px 1px #cfd8dc\"\n },\n {\n typeTextShadow: \"1px 1px 2px gray\",\n typeFont: \"Noto Sans\",\n typeBackground: \"0xffaaff\",\n typeFontWeight: \"600\",\n typeFontColor: \"#303f9f\",\n typeFontSize: \"17px\",\n typePadding: \"4px\",\n typeName: \"user\",\n typeMargin: \"4px\"\n },\n {\n typePadding: \"6px 4px\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFontWeight: \"900\",\n typeName: \"display\",\n typeFont: \"Courier\",\n typeFontSize: \"14px\",\n typeBackground: \"0xffaaff\",\n typeFontColor: \"#00796b\"\n },\n {\n typePadding: \"2px 4px\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFontWeight: \"500\",\n typeFontAlignment: \"center\",\n typeBackground: \"0xffaaff\",\n typeFont: \"Noto Serif\",\n typeFontColor: \"#000000\",\n typeName: \"title\",\n typeFontSize: \"23px\",\n typeMargin: \"2px 4px\"\n },\n {\n typePadding: \"4px\",\n typeBackground: \"0xffaaff\",\n typeFontColor: \"0xffaaff\",\n typeFontSize: \"15px\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFont: \"Noto Serif\",\n typeName: \"subtitle\",\n typeFontWeight: \"600\"\n },\n {\n typeMargin: \"12px\",\n typePalette: \"BrandFocus\",\n typeName: \"Focus\",\n typeBorder: \"2px solid red\",\n typeFontWeight: \"600\",\n typeBackground: \"\",\n typeFontColor: \"\",\n typePadding: \"8px\",\n typeFont: \"Verdana\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFontSize: \"27px\"\n },\n {\n typeBackground: \"0xffaaff\",\n typeFontColor: \"#ffffff\",\n typeName: \"white\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFontSize: \"35px\",\n typeFont: \"Noto Sans\",\n typePadding: \"6px 4px\",\n typeFontWeight: \"700\"\n },\n {\n typeMargin: \"4px\",\n typeFont: \"courier\",\n typeFontWeight: \"600\",\n typeLineHeight: \"1.5\",\n typeFontColor: \"#1259c8\",\n typePadding: \"4px\",\n typeBackground: \"0xffaaff\",\n typeName: \"Jade\",\n typeFontSize: \"19px\"\n }\n ],\n createdAt: 1720378730412,\n classes: [\n {\n class: \"color: blue;\",\n className: \"color-blue\"\n },\n {\n class: \"justify-content: flex-end;\\njustify-self: flex-end;\",\n className: \"justifyRight\"\n }\n ],\n editedAt: 1720378730412\n};\n\n // Firebase removed - no longer used\n // private async login() {\n // const [auth, initConfig] = await Promise.all([\n // this.authPromise,\n // this.initThemesPromise\n // ]);\n // onAuthStateChanged(auth, async (user) => {\n // if (!user) {\n // console.log('User signed out');\n // } else {\n // await user.getIdToken(true)\n // }\n // });\n // return await firstValueFrom(this.getUid(auth))\n // }\n //\n // private getUid(auth: Auth): Observable<string | null> {\n // return new Observable((observer) => {\n // const unsubscribe = onAuthStateChanged(\n // auth,\n // (user: User | null) => {\n // observer.next(user?.uid || null);\n // observer.complete();\n // },\n // (error) => {\n // console.error('Auth state error:', error);\n // observer.error(error);\n // }\n // );\n // return { unsubscribe };\n // }).pipe(map((uid: any) => uid),\n // catchError((error) => {\n // console.error('Error retrieving user UID:', error);\n // return of(null);\n // })\n // );\n // }\n\n}\nfunction mapRange(value: number, inMin: number, inMax: number, outMin: number, outMax: number) {\n return (value - inMin) * (outMax - outMin) / (inMax - inMin) + outMin;\n}\nfunction roundToOneDecimal(num: number) {\n return Math.round(num * 10) / 10;\n}\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({\n selector: \"[accordionContent]\",\n standalone: false\n})\nexport class AccordionContent {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({\n selector: \"[accordionHeader]\",\n standalone: false\n})\nexport class AccordionHeader {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({\n selector: \"[accordionTitle]\",\n standalone: false\n})\nexport class AccordionTitle {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","import { ContentChild, Directive, Input } from \"@angular/core\";\nimport { AccordionContent } from \"./accordion-content.directive\";\nimport { AccordionHeader } from \"./accordion-header.directive\";\nimport { AccordionTitle } from \"./accordion-title.directive\";\n\n@Directive({\n selector: \"accordion-item\",\n standalone: false\n})\nexport class AccordionItem {\n @Input() title = \"\";\n @Input() disabled = false;\n @Input() expanded = false;\n @Input() closeOther?: string;\n @Input() loaded = false;\n @ContentChild(AccordionContent) content!: AccordionContent;\n @ContentChild(AccordionTitle, { descendants: false }) customTitle!: AccordionTitle;\n @ContentChild(AccordionHeader, { descendants: false }) customHeader!: AccordionHeader;\n\n collapse() {\n this.expanded = false;\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'getToggleFunction',\n standalone: false\n})\nexport class TogglePipe implements PipeTransform{\n /**\n * Make the toggle function available to be called from\n * outside.\n * @param index - index of the accordion item\n */\n transform(i: number, toggleFn: Function){\n return () => toggleFn(i);\n }\n}","/* Copyright © 2023-2025 Napkin Apps Corp. All rights reserved. */\n\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n inject,\n Input,\n Output,EventEmitter,\n OnInit,\n QueryList,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { map } from 'rxjs/operators'\nimport { merge, of } from \"rxjs\";\nimport { FasterTheme, FasterThemesService } from \"../faster-themes.service\";\nimport { AccordionItem } from \"./directives/accordion-item.directive\"\n\n@Component({\n selector: 'accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('contentExpansion', [\n state('expanded', style({ height: '*', opacity: 1, visibility: 'visible', overflow: 'visible' })),\n state('collapsed', style({ width: 'min-content', height: '0px', opacity: 0, visibility: 'hidden', overflow: 'hidden' })),\n transition('expanded <=> collapsed', animate('200ms cubic-bezier(.37,1.04,.68,.98)')),\n ]),\n ],\n standalone: false\n})\nexport class AccordionComponent implements OnInit, AfterViewInit{\n expanded = new Set<number>();\n /**\n * Decides if the single item will be open at once or not.\n * In collapsing mode, toggling one would collapse others\n */\n @Input() name!: string;\n @Input() collapsing = false;\n @Input() theme!: FasterTheme | string;\n @Input() themeName!: FasterTheme | string;\n @Input() accordionName!: string | undefined;\n @Input() focus: boolean = false\n @Input() showCaret: boolean = true\n @Output() headerClicked = new EventEmitter<any>();\n\n \n @ContentChildren(AccordionItem) items!: QueryList<AccordionItem>;\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n public fasterThemes: FasterThemesService,\n private readonly cdr: ChangeDetectorRef) {}\n\n ngOnInit() {\n if (this.collapsing && this.focus) this.focus = false;\n const input = this.theme ?? this.themeName;\n if (typeof input === 'string') {\n this.themeName = this.fasterThemes?.getTheme(input);\n } else if (input != null) {\n this.themeName = input as FasterTheme;\n }\n // If no theme provided, template calls fall back to parentTheme via getTheme(undefined)\n this.fasterThemes.resize$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.cdr.markForCheck());\n }\n\n ngAfterViewInit() {\n merge(this.items.changes, of(this.items))\n .pipe(\n map(() => this.items.toArray()),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((items) => {\n items.forEach((item, index) => {\n if (item.expanded) {\n this.expanded.add(index);\n }\n });\n this.cdr.markForCheck();\n });\n }\n\n collapseAll() {\n this.expanded.clear();\n this.items?.forEach(item => item.collapse());\n this.cdr.markForCheck();\n }\n\n toggleState = (index: number): boolean => {\n const itemsArray = this.items.toArray();\n if (this.expanded.has(index)) {\n this.expanded.delete(index);\n if (this.headerClicked) {\n this.headerClicked.emit({index:index, open:false});\n }\n return false;\n } else {\n if (this.collapsing) {\n this.expanded.clear();\n }\n this.expanded.add(index);\n if (!itemsArray[index]?.loaded) {\n itemsArray[index].loaded = true;\n }\n if (this.headerClicked) {\n this.headerClicked.emit({index:index, open:true});\n }\n return true;\n }\n };\n\n activeStyle (index: number) {\n return this.expanded.has(index)\n }\n\n onHeaderClick(event: Event, index: number, item: any) {\n event.stopPropagation();\n let opened = false;\n if (!item.disabled) {\n opened = this.toggleState(index);\n }\n if (opened && item.closeOther) {\n this.closeOtherAccordion(item.closeOther);\n }\n }\n\n private closeOtherAccordion(targetTitle: string) {\n this.items.forEach((accordion, i) => {\n if (accordion.title === targetTitle) {\n this.expanded.delete(i);\n accordion.collapse();\n }\n });\n }\n}","<section [style]=\"fasterThemes.accordion(themeName, accordionName)\">\n <div *ngFor=\"let item of items;index as i\" \n [class.disabled]=\"item.disabled\" \n [class.active]=\"expanded.has(i)\"\n [class.hidden]=\"focus && expanded && expanded.size && \n expanded.size > 0 && !expanded.has(i)\">\n <ng-container \n [ngTemplateOutlet]=\"(item?.customHeader?.templateRef || defaultHeader)\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: i, toggle: i | getToggleFunction: toggleState}\">\n </ng-container>\n <div [class.expanded]=\"expanded.has(i)\" \n [style.display]=\"expanded.has(i) ? 'initial' : 'none'\">\n <ng-container *ngIf=\"item.loaded || item.expanded\">\n <ng-container *ngTemplateOutlet=\"item?.content?.templateRef || null\">\n </ng-container>\n </ng-container>\n </div>\n </div>\n</section>\n\n<ng-template #defaultHeader let-item let-index=\"index\">\n <header [style]=\"fasterThemes.header(themeName, accordionName, activeStyle(index), index)\"\n (click)=\"onHeaderClick($event, index, item)\">\n <ng-container *ngTemplateOutlet=\"item?.customTitle?.templateRef || defaultTitle\"></ng-container>\n <span *ngIf=\"showCaret\" class=\"accordion__caret\" [class.accordion__caret--open]=\"expanded.has(index)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\" width=\"36\" height=\"36\" aria-hidden=\"true\">\n <path d=\"M7 10l5 5 5-5z\" fill=\"currentColor\"/>\n </svg>\n </span>\n </header>\n <ng-template #defaultTitle>\n <p class=\"accordion__title\">{{item?.title}}</p>\n </ng-template>\n</ng-template>","/* Copyright © 2023-2025 Napkin Apps Corp. All rights reserved. */\n\nimport { Directive, ElementRef, Input, OnChanges } from '@angular/core';\nimport { FasterThemesService } from '../faster-themes.service';\n\n@Directive({\n selector: '[nColor]',\n standalone: false\n})\nexport class nColorDirective implements OnChanges {\n @Input() theme!: any;\n @Input() color!: string;\n\n // Selector-aliased form: <div nColor=\"Primary\" [theme]=\"t\">\n @Input('nColor') set nColor(v: string) {\n if (v !== undefined && v !== '') this.color = v;\n }\n\n private appliedProps = new Set<string>();\n\n constructor(private el: ElementRef, private fasterThemes: FasterThemesService) { }\n\n ngOnChanges() {\n this.clearAppliedStyles();\n this.apply();\n }\n\n private apply() {\n const theme = this.fasterThemes.getTheme(this.theme);\n const palette = this.fasterThemes.getPalette(theme, this.color);\n if (!palette) return;\n\n if (palette.backgroundColor)\n this.setStyle('background-color', palette.backgroundColor as string);\n if (palette.color)\n this.setStyle('color', palette.color as string);\n\n if (palette.gradient?.startsWith('background-image:'))\n this.setStyle('background-image', palette.gradient.replace('background-image:', ''));\n else if (palette.gradient?.startsWith('background-color:'))\n this.setStyle('background-color', palette.gradient.replace('background-color:', ''));\n else if (palette.gradient?.startsWith('background:'))\n this.setStyle('background', palette.gradient.replace('background:', ''));\n }\n\n private setStyle(prop: string, value: string) {\n this.el.nativeElement.style.setProperty(prop, value);\n this.appliedProps.add(prop);\n }\n\n private clearAppliedStyles() {\n for (const prop of this.appliedProps) {\n this.el.nativeElement.style.removeProperty(prop);\n }\n this.appliedProps.clear();\n }\n}\n","/* Copyright © 2023-2025 Napkin Apps Corp. All rights reserved. */\n\nimport { Directive, ElementRef, Input, OnChanges, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { FasterThemesService } from '../faster-themes.service';\n\n@Directive({\n selector: '[nContainer]',\n standalone: false\n})\nexport class nContainerDirective implements OnChanges, OnDestroy {\n @Input() theme!: any;\n @Input() container!: string;\n\n // Selector-aliased form: <div nContainer=\"Wide\" [theme]=\"t\">\n @Input('nContainer') set nContainer(v: string) {\n if (v !== undefined && v !== '') this.container = v;\n }\n\n private appliedProps = new Set<string>();\n private resizeSub: Subscription;\n\n constructor(private el: ElementRef, private fasterThemes: FasterThemesService) {\n this.resizeSub = this.fasterThemes.resize$.subscribe(() => this.apply());\n }\n\n ngOnDestroy() {\n this.resizeSub.unsubscribe();\n }\n\n ngOnChanges() {\n this.clearAppliedStyles();\n this.apply();\n }\n\n private apply() {\n const theme = this.fasterThemes.getTheme(this.theme);\n const container = this.fasterThemes.getContainer(theme, this.container);\n if (!container) return;\n\n // Palette takes precedence over local colors\n const usedPalette = container.containerPalette\n ? this.applyPalette(theme, container.containerPalette)\n : false;\n\n if (!usedPalette) {\n if (container.containerBackgroundGradient)\n this.setStyle('background-image', container.containerBackgroundGradient);\n else if (container.containerBackground)\n this.setStyle('background-color', container.containerBackground);\n }\n\n // Image takes precedence over palette background\n if (container.backgroundImage?.length) {\n this.setStyle('background-image', `url(${container.backgroundImage})`);\n if (container.backgroundSize)\n this.setStyle('background-size', container.backgroundSize);\n }\n\n if (container.containerBorder)\n this.setStyle('border', container.containerBorder);\n\n if (container.containerBoxShadow)\n this.setStyle('box-shadow', container.containerBoxShadow);\n\n if (container.containerAlignment && !container.containerAlignmentV) {\n this.setStyle('display', 'flex');\n this.setStyle('justify-content', container.containerAlignment);\n this.setStyle('align-items', container.containerAlignment);\n } else if (container.containerAlignment && container.containerAlignmentV) {\n this.setStyle('display', 'flex');\n this.setStyle('justify-content', container.containerAlignment);\n this.setStyle('align-items', container.containerAlignmentV);\n }\n\n if (container.containerLayout)\n this.setStyle('flex-flow', container.containerLayout);\n\n if (container.containerWidth) {\n const width = container.containerWidth === '100vw'\n ? `${this.fasterThemes.screenWidth}px`\n : container.containerWidth;\n this.setStyle('width', width);\n }\n\n if (container.containerHeight)\n this.setStyle('height', container.containerHeight);\n\n if (container.containerOverflowX)\n this.setStyle('overflow-x', container.containerOverflowX);\n\n if (container.containerOverflowY)\n this.setStyle('overflow-y', container.containerOverflowY);\n\n if (container.containerPosition)\n this.setStyle('position', container.containerPosition);\n\n if (container.containerMargin)\n this.setStyle('margin', this.fasterThemes.responsiveSpace(\n theme, container.containerMargin,\n theme.responsiveMarginMin, theme.responsiveMarginMax));\n\n if (container.containerPadding)\n this.setStyle('padding', this.fasterThemes.responsiveSpace(\n theme, container.containerPadding,\n theme.responsivePaddingMin, theme.responsivePaddingMax));\n }\n\n private applyPalette(theme: any, paletteName: string): boolean {\n const palette = this.fasterThemes.getPalette(theme, paletteName);\n if (!palette) return false;\n\n if (palette.backgroundColor)\n this.setStyle('background-color', palette.backgroundColor as string);\n if (palette.color)\n this.setStyle('color', palette.color as string);\n\n if (palette.gradient?.startsWith('background-image:'))\n this.setStyle('background-image', palette.gradient.replace('background-image:', ''));\n else if (palette.gradient?.startsWith('background-color:'))\n this.setStyle('background-color', palette.gradient.replace('background-color:', ''));\n else if (palette.gradient?.startsWith('background:'))\n this.setStyle('background', palette.gradient.replace('background:', ''));\n\n return true;\n }\n\n private setStyle(prop: string, value: string) {\n this.el.nativeElement.style.setProperty(prop, value);\n this.appliedProps.add(prop);\n }\n\n private clearAppliedStyles() {\n for (const prop of this.appliedProps) {\n this.el.nativeElement.style.removeProperty(prop);\n }\n this.appliedProps.clear();\n }\n}\n","/* Copyright © 2023-2025 Napkin Apps Corp. All rights reserved. */\n\nimport { Directive, ElementRef, Input, OnChanges, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { FasterTheme, FasterThemesService } from '../faster-themes.service';\n\n@Directive({\n selector: '[nType]',\n standalone: false\n})\nexport class nTypeDirective implements OnChanges, OnDestroy {\n @Input() theme!: any;\n @Input() type!: string;\n @Input() typeface!: string;\n\n // Selector-aliased form: <div nType=\"H1\" [theme]=\"t\">\n @Input('nType') set nType(v: string) {\n if (v !== undefined && v !== '') this.type = v;\n }\n\n private appliedProps = new Set<string>();\n private resizeSub: Subscription;\n\n constructor(private el: ElementRef, private fasterThemes: FasterThemesService) {\n this.resizeSub = this.fasterThemes.resize$.subscribe(() => this.apply());\n }\n\n ngOnDestroy() {\n this.resizeSub.unsubscribe();\n }\n\n ngOnChanges() {\n this.clearAppliedStyles();\n this.apply();\n }\n\n private apply() {\n const theme = <FasterTheme>this.fasterThemes.getTheme(this.theme);\n\n // typeface is a backwards-compat alias for type\n const name = this.type || this.typeface;\n\n const t = this.fasterThemes.typeObject(theme, name);\n if (!t) return;\n\n // Palette takes precedence over local colors\n const usedPalette = t.typePalette\n ? this.applyPalette(theme, t.typePalette)\n : false;\n\n if (!usedPalette) {\n if (t.typeBackground)\n this.setStyle('background-color', t.typeBackground);\n if (t.typeFontColor)\n this.setStyle('color', t.typeFontColor);\n }\n\n if (t.typeFont)\n this.setStyle('font-family', t.typeFont);\n\n if (t.typeFontSize)\n this.setStyle('font-size', `${this.fasterThemes.responsiveType(theme, t)}px`);\n\n if (t.typeFontWeight)\n this.setStyle('font-weight', t.typeFontWeight);\n\n if (t.typeFontAlignment)\n this.setStyle('text-align', t.typeFontAlignment);\n\n if (t.typeTextShadow)\n this.setStyle('text-shadow', t.typeTextShadow);\n\n if (t.typePadding)\n this.setStyle('padding', this.fasterThemes.responsiveSpace(\n theme, t.typePadding,\n theme.responsivePaddingMin, theme.responsivePaddingMax));\n\n if (t.typeMargin)\n this.setStyle('margin', this.fasterThemes.responsiveSpace(\n theme, t.typeMargin,\n theme.responsiveMarginMin, theme.responsiveMarginMax));\n }\n\n private applyPalette(theme: any, paletteName: string): boolean {\n const palette = this.fasterThemes.getPalette(theme, paletteName);\n if (!palette) return false;\n\n if (palette.backgroundColor)\n this.setStyle('background-color', palette.backgroundColor as string);\n if (palette.color)\n this.setStyle('color', palette.color as string);\n\n if (palette.gradient?.startsWith('background-image:'))\n this.setStyle('background-image', palette.gradient.replace('background-image:', ''));\n else if (palette.gradient?.startsWith('background-color:'))\n this.setStyle('background-color', palette.gradient.replace('background-color:', ''));\n else if (palette.gradient?.startsWith('background:'))\n this.setStyle('background', palette.gradient.replace('background:', ''));\n\n return true;\n }\n\n private setStyle(prop: string, value: string) {\n this.el.nativeElement.style.setProperty(prop, value);\n this.appliedProps.add(prop);\n }\n\n private clearAppliedStyles() {\n for (const prop of this.appliedProps) {\n this.el.nativeElement.style.removeProperty(prop);\n }\n this.appliedProps.clear();\n }\n}\n","import { Directive, ElementRef, HostListener, Input, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[ripple]',\n standalone: true\n})\nexport class RippleDirective implements OnInit {\n @Input() rippleDuration: string = \".6\"; // Animation duration in ms\n @Input() rippleColor: string = \"rgba(255, 255, 255, 0.5)\";\n @Input() noRipple: boolean = false;\n constructor(private el: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit() {\n if (this.noRipple) return;\n // Ensure the parent element has required styles\n this.renderer.setStyle(this.el.nativeElement, 'position', 'relative');\n this.renderer.setStyle(this.el.nativeElement, 'overflow', 'hidden');\n\n if (!parseFloat(this.rippleDuration)) {\n this.rippleDuration = \".6\";\n }\n }\n\n @HostListener('click', ['$event'])\n createRipple(event: MouseEvent) {\n if(this.noRipple) return;\n const button = this.el.nativeElement;\n const ripple = this.renderer.createElement('span');\n\n // Get button dimensions\n const rect = button.getBoundingClientRect();\n const size = Math.max(rect.width, rect.height);\n const x = event.clientX - rect.left - size / 2;\n const y = event.clientY - rect.top - size / 2;\n\n // Apply styles dynamically\n this.renderer.setStyle(ripple, 'position', 'absolute');\n this.renderer.setStyle(ripple, 'border-radius', '50%');\n this.renderer.setStyle(ripple, 'background', this.rippleColor);\n this.renderer.setStyle(ripple, 'width', `${size}px`);\n this.renderer.setStyle(ripple, 'height', `${size}px`);\n this.renderer.setStyle(ripple, 'left', `${x}px`);\n this.renderer.setStyle(ripple, 'top', `${y}px`);\n this.renderer.setStyle(ripple, 'transform', 'scale(0)');\n this.renderer.setStyle(ripple, 'opacity', '1');\n this.renderer.setStyle(ripple, 'transition', `transform ${this.rippleDuration}s ease-out, opacity ${this.rippleDuration}s ease-out`);\n\n // Append ripple to the button\n this.renderer.appendChild(button, ripple);\n\n // Trigger animation\n setTimeout(() => {\n this.renderer.setStyle(ripple, 'transform', 'scale(4)');\n this.renderer.setStyle(ripple, 'opacity', '0');\n });\n\n // Remove ripple after animation completes\n setTimeout(() => {\n this.renderer.removeChild(button, ripple);\n }, parseFloat(this.rippleDuration) * 2000);\n }\n}","/* Copyright © 2023-2025 Napkin Apps Corp. All rights reserved. */\n\nimport { Directive, ElementRef, Input, OnChanges, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { FasterThemesService } from '../faster-themes.service';\nimport { RippleDirective } from '../accordion/directives/ripple.directive';\n\n@Directive({\n selector: '[nButton]',\n hostDirectives: [\n {\n directive: RippleDirective,\n inputs: ['rippleDuration', 'rippleColor', 'noRipple']\n }\n ],\n standalone: false\n})\nexport class nButtonDirective implements OnChanges, OnDestroy {\n @Input() theme!: any;\n @Input() button!: string;\n @Input() buttonStyle!: string;\n\n // Selector-aliased form: <button nButton=\"Create\" [theme]=\"t\">\n @Input('nButton') set nButton(v: string) {\n if (v !== undefined && v !== '') this.button = v;\n }\n\n private appliedProps = new Set<string>();\n private resizeSub: Subscription;\n\n constructor(private el: ElementRef, private fasterThemes: FasterThemesService) {\n this.resizeSub = this.fasterThemes.resize$.subscribe(() => this.apply());\n }\n\n ngOnDestroy() {\n this.resizeSub.unsubscribe();\n }\n\n ngOnChanges() {\n this.clearAppliedStyles();\n this.apply();\n }\n\n private apply() {\n const theme = this.fasterThemes.getTheme(this.theme);\n const name = this.button || this.buttonStyle;\n const buttonStyle = this.fasterThemes.getButton(theme, name);\n if (!buttonStyle) return;\n\n const type: any = buttonStyle.buttonTypeStyle\n ? this.fasterThemes.typeObject(theme, buttonStyle.buttonTypeStyle)\n : null;\n\n // Palette takes precedence over local colors\n const usedPalette = buttonStyle.buttonPalette\n ? this.applyPalette(theme, buttonStyle.buttonPalette)\n : false;\n\n if (!usedPalette) {\n if (buttonStyle.buttonBackground)\n this.setStyle('background-color', buttonStyle.buttonBackground);\n if (buttonStyle.buttonColor)\n this.setStyle('color', buttonStyle.buttonColor);\n }\n\n if (buttonStyle.buttonPadding)\n this.setStyle('padding', this.fasterThemes.responsiveSpace(\n theme, buttonStyle.buttonPadding,\n theme.responsivePaddingMin, theme.responsivePaddingMax));\n\n if (buttonStyle.buttonMargin)\n this.setStyle('margin', this.fasterThemes.responsiveSpace(\n theme, buttonStyle.buttonMargin,\n theme.responsiveMarginMin, theme.responsiveMarginMax));\n\n this.setStyle('border', buttonStyle.buttonBorder || 'none');\n\n if (buttonStyle.buttonRadius)\n this.setStyle('border-radius', buttonStyle.buttonRadius);\n\n if (buttonStyle.buttonShadow)\n this.setStyle('box-shadow', buttonStyle.buttonShadow);\n\n if (type?.typeFont)\n this.setStyle('font-family', type.typeFont);\n\n if (type?.typeFontSize)\n this.setStyle('font-size', `${this.fasterThemes.responsiveType(theme, type)}px`);\n\n if (type?.typeFontWeight)\n this.setStyle('font-weight', type.typeFontWeight);\n\n if (type?.typeFontAlignment)\n this.setStyle('text-align', type.typeFontAlignment);\n\n if (type?.typeTextShadow)\n this.setStyle('text-shadow', type.typeTextShadow);\n\n if (type?.typePadding)\n this.setStyle('padding', this.fasterThemes.responsiveSpace(\n theme, type.typePadding,\n theme.responsivePaddingMin, theme.responsivePaddingMax));\n\n if (type?.typeMargin)\n this.setStyle('margin', this.fasterThemes.responsiveSpace(\n theme, type.typeMargin,\n theme.responsiveMarginMin, theme.responsiveMarginMax));\n\n this.setStyle('cursor', 'pointer');\n this.setStyle('box-sizing', 'border-box');\n }\n\n private applyPalette(theme: any, paletteName: string): boolean {\n const palette = this.fasterThemes.getPalette(theme, paletteName);\n if (!palette) return false;\n\n if (palette.backgroundColor)\n this.setStyle('background-color', palette.backgroundColor as string);\n if (palette.color)\n this.setStyle('color', palette.color as string);\n\n if (palette.gradient?.startsWith('background-image:'))\n this.setStyle('background-image', palette.gradient.replace('background-image:', ''));\n else if (palette.gradient?.startsWith('background-color:'))\n this.setStyle('background-color', palette.gradient.replace('background-color:', ''));\n else if (palette.gradient?.startsWith('background:'))\n this.setStyle('background', palette.gradient.replace('background:', ''));\n\n return true;\n }\n\n private setStyle(prop: string, value: string) {\n this.el.nativeElement.style.setProperty(prop, value);\n this.appliedProps.add(prop);\n }\n\n private clearAppliedStyles() {\n for (const prop of this.appliedProps) {\n this.el.nativeElement.style.removeProperty(prop);\n }\n this.appliedProps.clear();\n }\n}\n","/* Copyright © 2023-2025 Napkin Apps Corp. All rights reserved. */\n\nimport { Directive, ElementRef, Input, OnChanges } from '@angular/core';\nimport { FasterTheme, FasterThemesService } from '../faster-themes.service';\n\n@Directive({\n selector: '[nClass]',\n standalone: false\n})\nexport class nClassDirective implements OnChanges {\n @Input() theme!: any;\n @Input() class!: string;\n\n // Selector-aliased form: <div nClass=\"color-blue\" [theme]=\"t\">\n @Input('nClass') set nClass(v: string) {\n if (v !== undefined && v !== '') this.class = v;\n }\n\n private appliedProps = new Set<string>();\n\n constructor(private el: ElementRef, private fasterThemes: FasterThemesService) { }\n\n ngOnChanges() {\n this.clearAppliedStyles();\n this.apply();\n }\n\n private apply() {\n const theme = <FasterTheme>this.fasterThemes.getTheme(this.theme);\n const cssText = this.fasterThemes.class(theme, this.class);\n if (!cssText?.length) return;\n\n // Parse \"prop: value; prop2: value2;\" into individual setProperty calls\n // so re-applying clears precisely the props we set instead of stomping\n // the entire style attribute.\n for (const decl of cssText.split(';')) {\n const colon = decl.indexOf(':');\n if (colon < 0) continue;\n const prop = decl.slice(0, colon).trim();\n const value = decl.slice(colon + 1).trim();\n if (prop && value) this.setStyle(prop, value);\n }\n }\n\n private setStyle(prop: string, value: string) {\n this.el.nativeElement.style.setProperty(prop, value);\n this.appliedProps.add(prop);\n }\n\n private clearAppliedStyles() {\n for (const prop of this.appliedProps) {\n this.el.nativeElement.style.removeProperty(prop);\n }\n this.appliedProps.clear();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FasterThemesComponent } from './faster-themes.component';\n// Firebase removed - no longer used\n// import { InjectionToken } from '@angular/core';\n// import { Auth, getAuth } from 'firebase/auth';\n// import { FirebaseApp, getApps, initializeApp } from 'firebase/app';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CommonModule } from '@angular/common';\nimport { FasterThemesService } from './faster-themes.service';\nimport { AccordionComponent} from './accordion/accordion.component';\nimport { AccordionItem } from './accordion/directives/accordion-item.directive';\nimport { AccordionContent } from './accordion/directives/accordion-content.directive';\nimport { AccordionTitle } from './accordion/directives/accordion-title.directive';\nimport { AccordionHeader } from './accordion/directives/accordion-header.directive';\nimport { TogglePipe } from './accordion/toggle.pipe';\nimport { nColorDirective } from './directives/nColor.directive';\nimport { nContainerDirective } from './directives/nContainer.directive';\nimport { nTypeDirective } from './directives/nType.directive';\nimport { nButtonDirective } from './directives/nButton.directive';\nimport { nClassDirective } from './directives/nClass.directive';\nimport { RippleDirective } from './accordion/directives/ripple.directive';\n\n// Firebase removed - no longer used\n// export interface firebaseConfig {\n// initThemes: any;\n// apiKey: string;\n// authDomain: string;\n// databaseURL: string;\n// projectId: string;\n// storageBucket: string;\n// messagingSenderId: string;\n// appId: string;\n// measurementId: string;\n// }\n// export const FBT = new InjectionToken<Promise<FirebaseApp>>('FBT');\n// export const FAT = new InjectionToken<Promise<Auth>>('FAT');\n// export const INIT_THEMES = new InjectionToken<Promise<string>>('INIT_THEMES');\n//\n// const test = localStorage.getItem('test')\n// const configPromise = fetch(`https://firebaseconfig-aq3tslzx7a-uc.a.run.app?${test}`)\n// .then(res => res.json());\n\n@NgModule({ \n declarations: [\n FasterThemesComponent,\n AccordionComponent,\n AccordionItem,\n AccordionContent,\n AccordionTitle,\n AccordionHeader,\n TogglePipe,\n nColorDirective,\n nContainerDirective,\n nTypeDirective,\n nButtonDirective,\n nClassDirective,\n ],\n exports: [\n FasterThemesComponent,\n AccordionComponent,\n AccordionTitle,\n AccordionHeader,\n AccordionContent,\n AccordionItem,\n TogglePipe,\n RippleDirective,\n nColorDirective,\n nContainerDirective,\n nTypeDirective,\n nButtonDirective,\n nClassDirective\n ], imports: [\n CommonModule,\n HttpClientModule,\n RippleDirective\n ], providers: [\n // Firebase removed - no longer used\n // {\n // provide: FBT,\n // useFactory: async (): Promise<FirebaseApp> => {\n // const config = (await configPromise).firebaseConfig;\n // const existingApp = getApps().find(app => app.name === \"napkin\");\n // return existingApp ?? initializeApp(config, \"napkin\");\n // }\n // },\n // {\n // provide: FAT,\n // useFactory: async (appPromise: Promise<FirebaseApp>): Promise<Auth> => {\n // const app = await appPromise;\n // return getAuth(app);\n // },\n // deps: [FBT]\n // },\n // {\n // provide: INIT_THEMES,\n // useFactory: async (): Promise<string> => {\n // const { initThemes } = await configPromise;\n // return initThemes;\n // }\n // },\n FasterThemesService,\n ] })\nexport class FasterThemesModule {\n }\n\n","/* Copyright © 2023-2025 Napkin Apps Corp. All rights reserved. */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n AccordionStyle,\n ButtonStyle,\n ClassStyle,\n ContainerStyle,\n FasterTheme,\n Palette,\n TypographyStyle,\n} from '../faster-themes.service';\n\nexport type ThemeStyle = 'modern' | 'classic' | 'minimal' | 'bold' | 'playful';\nexport type ThemePurpose = 'marketing' | 'dashboard' | 'documentation' | 'form' | 'gallery';\nexport type PalettePreset =\n // Aesthetic presets\n | 'ocean'\n | 'forest'\n | 'sunset'\n | 'monochrome'\n | 'pastel'\n // Business presets\n | 'corporate'\n | 'healthcare'\n | 'finance'\n | 'tech'\n | 'legal'\n | 'hospitality'\n | 'retail'\n | 'education';\nexport type ThemeLayout =\n | 'row'\n | 'row wrap'\n | 'row-reverse'\n | 'column'\n | 'column wrap'\n | 'column-reverse';\n\nexport type ShadowLevel = 'none' | 'small' | 'medium' | 'large';\n\ninterface StyleProfile {\n fontFamily: string;\n monoFamily: string;\n baseFontSize: number;\n headingWeight: string;\n bodyWeight: string;\n borderRadius: string;\n border: string;\n}\n\ninterface PurposeProfile {\n containerPadding: string;\n containerMargin: string;\n accordionMode: 'collapsing' | 'focus' | 'open';\n emphasizeHeadings: boolean;\n buttonPadding: string;\n density: 'tight' | 'normal' | 'roomy';\n}\n\n// Semantic colors used by buttons/types that have a fixed purpose\n// (Delete=red, Create=green, Disabled=gray, etc.) regardless of palette.\ninterface SemanticColors {\n danger: { bg: string; fg: string };\n success: { bg: string; fg: string };\n warning: { bg: string; fg: string };\n info: { bg: string; fg: string };\n disabled: { bg: string; fg: string };\n inverse: { bg: string; fg: string };\n}\n\n@Component({\n selector: 'faster-theme-generator',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"ntg-root\" *ngIf=\"showPreview && theme\">\n <div class=\"ntg-header\">\n <strong>{{ theme.name }}</strong>\n <span class=\"ntg-meta\">{{ themeStyle }} · {{ purpose }}</span>\n </div>\n <div class=\"ntg-swatches\">\n <span\n *ngFor=\"let p of theme.palette\"\n class=\"ntg-swatch\"\n [title]=\"p.colorName\"\n [style.background]=\"resolveSwatch(p)\"\n ></span>\n </div>\n </div>\n `,\n styles: [\n `\n .ntg-root {\n font-family: system-ui, sans-serif;\n padding: 8px 12px;\n border: 1px solid rgba(0, 0, 0, 0.1);\n border-radius: 6px;\n display: inline-flex;\n flex-direction: column;\n gap: 6px;\n }\n .ntg-header {\n display: flex;\n gap: 8px;\n align-items: baseline;\n }\n .ntg-meta {\n font-size: 11px;\n opacity: 0.6;\n text-transform: capitalize;\n }\n .ntg-swatches {\n display: flex;\n gap: 4px;\n }\n .ntg-swatch {\n width: 18px;\n height: 18px;\n border-radius: 50%;\n border: 1px solid rgba(0, 0, 0, 0.1);\n }\n `,\n ],\n})\nexport class ThemeGeneratorComponent implements OnInit, OnChanges {\n @Input() themeStyle: ThemeStyle = 'modern';\n @Input() purpose: ThemePurpose = 'marketing';\n @Input() palette: PalettePreset | Palette[] = 'ocean';\n @Input() layout: ThemeLayout = 'row wrap';\n @Input() elevation: ShadowLevel = 'medium';\n @Input() textShadow: ShadowLevel = 'none';\n @Input() name?: string;\n @Input() showPreview = false;\n @Input() responsiveStandardWidth?: number;\n @Input() responsiveFontSizeMin?: number;\n @Input() responsiveFontSizeMax?: number;\n @Input() responsiveMarginMin?: number;\n @Input() responsiveMarginMax?: number;\n @Input() responsivePaddingMin?: number;\n @Input() responsivePaddingMax?: number;\n\n @Output() themeGenerated = new EventEmitter<FasterTheme>();\n\n theme?: FasterTheme;\n\n ngOnInit() {\n this.regenerate();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (\n changes['themeStyle'] ||\n changes['purpose'] ||\n changes['palette'] ||\n changes['layout'] ||\n changes['elevation'] ||\n changes['textShadow'] ||\n changes['name'] ||\n changes['responsiveStandardWidth'] ||\n changes['responsiveFontSizeMin'] ||\n changes['responsiveFontSizeMax'] ||\n changes['responsiveMarginMin'] ||\n changes['responsiveMarginMax'] ||\n changes['responsivePaddingMin'] ||\n changes['responsivePaddingMax']\n ) {\n this.regenerate();\n }\n }\n\n generate(): FasterTheme {\n const palette = Array.isArray(this.palette)\n ? this.palette\n : this.buildPalette(this.palette);\n const style = this.styleProfileFor(this.themeStyle);\n const purpose = this.purposeProfileFor(this.purpose);\n const semantics = this.semanticColors();\n const elevationCss = this.elevationCss(this.elevation, this.themeStyle);\n const textShadowCss = this.textShadowCss(this.textShadow);\n\n const paletteLabel =\n typeof this.palette === 'string' ? this.capitalize(this.palette) : 'Custom';\n\n return {\n name:\n this.name ??\n `${this.capitalize(this.themeStyle)} ${paletteLabel} ${this.capitalize(this.purpose)}`,\n description: `Generated ${this.themeStyle} ${paletteLabel.toLowerCase()} theme for ${this.purpose}`,\n responsiveName: 'generated',\n responsiveStandardWidth: this.responsiveStandardWidth ?? 1440,\n responsiveFontSizeMin: this.responsiveFontSizeMin ?? 80,\n responsiveFontSizeMax: this.responsiveFontSizeMax ?? 120,\n responsiveMarginMin: this.responsiveMarginMin ?? 80,\n responsiveMarginMax: this.responsiveMarginMax ?? 150,\n responsivePaddingMin: this.responsivePaddingMin ?? 80,\n responsivePaddingMax: this.responsivePaddingMax ?? 150,\n palette,\n typeStyles: this.buildTypography(style, purpose, semantics, textShadowCss),\n containers: this.buildContainers(style, purpose, palette, this.layout, elevationCss),\n buttonStyles: this.buildButtons(style, purpose, palette, semantics, elevationCss),\n accordions: this.buildAccordions(style, purpose, palette, this.layout, elevationCss),\n classes: this.buildClasses(),\n };\n }\n\n /**\n * Map a ShadowLevel to a box-shadow CSS string. Playful style uses an offset\n * \"hard\" shadow that varies in offset rather than blur, so it gets its own\n * scale.\n */\n private elevationCss(level: ShadowLevel, style: ThemeStyle): string {\n if (level === 'none') return 'none';\n if (style === 'playful') {\n return {\n small: '2px 2px 0 rgba(0,0,0,0.12)',\n medium: '4px 4px 0 rgba(0,0,0,0.15)',\n large: '6px 6px 0 rgba(0,0,0,0.18)',\n }[level];\n }\n return {\n small: '0 1px 3px rgba(0,0,0,0.10)',\n medium: '0 2px 8px rgba(0,0,0,0.15)',\n large: '0 6px 16px rgba(0,0,0,0.20)',\n }[level];\n }\n\n /** Map a ShadowLevel to a text-shadow CSS string. Empty disables. */\n private textShadowCss(level: ShadowLevel): string {\n if (level === 'none') return '';\n return {\n small: '1px 1px 2px rgba(0,0,0,0.15)',\n medium: '1px 1px 3px rgba(0,0,0,0.25)',\n large: '2px 2px 4px rgba(0,0,0,0.35)',\n }[level];\n }\n\n regenerate() {\n this.theme = this.generate();\n this.themeGenerated.emit(this.theme);\n }\n\n resolveSwatch(p: Palette): string {\n if (typeof p.backgroundColor === 'string') return p.backgroundColor;\n if (p.backgroundColor?.colorHex) return p.backgroundColor.colorHex;\n if (typeof p.color === 'string') return p.color;\n return '#cccccc';\n }\n\n // ────────────────────────────────────────────────────────────────────────\n // Profiles\n // ────────────────────────────────────────────────────────────────────────\n\n private styleProfileFor(style: ThemeStyle): StyleProfile {\n const profiles: Record<ThemeStyle, StyleProfile> = {\n modern: {\n fontFamily: '\"Inter\", system-ui, sans-serif',\n monoFamily: '\"JetBrains Mono\", \"Courier New\", monospace',\n baseFontSize: 16,\n headingWeight: '600',\n bodyWeight: '400',\n borderRadius: '8px',\n border: 'none',\n },\n classic: {\n fontFamily: '\"Georgia\", \"Times New Roman\", serif',\n monoFamily: '\"Courier New\", monospace',\n baseFontSize: 17,\n headingWeight: '700',\n bodyWeight: '400',\n borderRadius: '2px',\n border: '1px solid rgba(0,0,0,0.15)',\n },\n minimal: {\n fontFamily: '\"Helvetica Neue\", Arial, sans-serif',\n monoFamily: '\"SF Mono\", \"Menlo\", monospace',\n baseFontSize: 15,\n headingWeight: '500',\n bodyWeight: '300',\n borderRadius: '0px',\n border: '1px solid rgba(0,0,0,0.08)',\n },\n bold: {\n fontFamily: '\"Montserrat\", system-ui, sans-serif',\n monoFamily: '\"Roboto Mono\", monospace',\n baseFontSize: 18,\n headingWeight: '800',\n bodyWeight: '500',\n borderRadius: '4px',\n border: '2px solid rgba(0,0,0,0.85)',\n },\n playful: {\n fontFamily: '\"Comic Neue\", \"Quicksand\", sans-serif',\n monoFamily: '\"Comic Mono\", \"Courier New\", monospace',\n baseFontSize: 16,\n headingWeight: '700',\n bodyWeight: '400',\n borderRadius: '18px',\n border: '2px dashed rgba(0,0,0,0.3)',\n },\n };\n return profiles[style];\n }\n\n private purposeProfileFor(purpose: ThemePurpose): PurposeProfile {\n const profiles: Record<ThemePurpose, PurposeProfile> = {\n marketing: {\n containerPadding: '40px 32px',\n containerMargin: '0px',\n accordionMode: 'collapsing',\n emphasizeHeadings: true,\n buttonPadding: '14px 16px',\n density: 'roomy',\n },\n dashboard: {\n containerPadding: '16px',\n containerMargin: '8px',\n accordionMode: 'open',\n emphasizeHeadings: false,\n buttonPadding: '8px 16px',\n density: 'tight',\n },\n documentation: {\n containerPadding: '24px 32px',\n containerMargin: '12px 0px',\n accordionMode: 'collapsing',\n emphasizeHeadings: true,\n buttonPadding: '10px 12px',\n density: 'normal',\n },\n form: {\n containerPadding: '20px',\n containerMargin: '8px 0px',\n accordionMode: 'focus',\n emphasizeHeadings: false,\n buttonPadding: '12px 16px',\n density: 'normal',\n },\n gallery: {\n containerPadding: '8px',\n containerMargin: '4px',\n accordionMode: 'focus',\n emphasizeHeadings: false,\n buttonPadding: '10px 12px',\n density: 'tight',\n },\n };\n return profiles[purpose];\n }\n\n private semanticColors(): SemanticColors {\n return {\n danger: { bg: '#c62828', fg: '#ffffff' },\n success: { bg: '#2e7d32', fg: '#ffffff' },\n warning: { bg: '#f9a825', fg: '#3e2723' },\n info: { bg: '#0288d1', fg: '#ffffff' },\n disabled: { bg: '#e0e0e0', fg: '#9e9e9e' },\n inverse: { bg: '#212121', fg: '#fafafa' },\n };\n }\n\n // ────────────────────────────────────────────────────────────────────────\n // Palette\n // ────────────────────────────────────────────────────────────────────────\n\n private buildPalette(preset: PalettePreset): Palette[] {\n // Every palette defines 8 semantic roles that blend (Primary→Secondary→\n // Accent→Highlight) and contrast (Surface↔Inverse) within a unified\n // color story. Consumers can reference any role by colorName.\n const presets: Record<PalettePreset, Palette[]> = {\n // ─────────────── Aesthetic presets ───────────────\n ocean: [\n { colorName: 'Primary', backgroundColor: '#0277bd', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#4fc3f7', color: '#01579b' },\n { colorName: 'Accent', backgroundColor: '#80deea', color: '#004d40' },\n { colorName: 'Highlight', backgroundColor: '#00bcd4', color: '#003c43' },\n { colorName: 'Surface', backgroundColor: '#e1f5fe', color: '#01579b' },\n { colorName: 'Muted', backgroundColor: '#cfd8dc', color: '#37474f' },\n { colorName: 'Subtle', backgroundColor: '#eceff1', color: '#455a64' },\n { colorName: 'Inverse', backgroundColor: '#01579b', color: '#e1f5fe' },\n ],\n forest: [\n { colorName: 'Primary', backgroundColor: '#2e7d32', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#81c784', color: '#1b5e20' },\n { colorName: 'Accent', backgroundColor: '#aed581', color: '#33691e' },\n { colorName: 'Highlight', backgroundColor: '#fff176', color: '#5d4037' },\n { colorName: 'Surface', backgroundColor: '#f1f8e9', color: '#33691e' },\n { colorName: 'Muted', backgroundColor: '#d7ccc8', color: '#3e2723' },\n { colorName: 'Subtle', backgroundColor: '#efebe9', color: '#5d4037' },\n { colorName: 'Inverse', backgroundColor: '#1b5e20', color: '#f1f8e9' },\n ],\n sunset: [\n { colorName: 'Primary', backgroundColor: '#ef6c00', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#ffb74d', color: '#bf360c' },\n { colorName: 'Accent', backgroundColor: '#f48fb1', color: '#880e4f' },\n { colorName: 'Highlight', backgroundColor: '#ffd54f', color: '#5d4037' },\n { colorName: 'Surface', backgroundColor: '#fff3e0', color: '#bf360c' },\n { colorName: 'Muted', backgroundColor: '#ffe0b2', color: '#5d4037' },\n { colorName: 'Subtle', backgroundColor: '#fff8e1', color: '#6d4c41' },\n { colorName: 'Inverse', backgroundColor: '#bf360c', color: '#fff3e0' },\n ],\n monochrome: [\n { colorName: 'Primary', backgroundColor: '#212121', color: '#fafafa' },\n { colorName: 'Secondary', backgroundColor: '#616161', color: '#ffffff' },\n { colorName: 'Accent', backgroundColor: '#9e9e9e', color: '#212121' },\n { colorName: 'Highlight', backgroundColor: '#ffeb3b', color: '#212121' },\n { colorName: 'Surface', backgroundColor: '#fafafa', color: '#212121' },\n { colorName: 'Muted', backgroundColor: '#e0e0e0', color: '#424242' },\n { colorName: 'Subtle', backgroundColor: '#f5f5f5', color: '#616161' },\n { colorName: 'Inverse', backgroundColor: '#000000', color: '#fafafa' },\n ],\n pastel: [\n { colorName: 'Primary', backgroundColor: '#b39ddb', color: '#311b92' },\n { colorName: 'Secondary', backgroundColor: '#f8bbd0', color: '#880e4f' },\n { colorName: 'Accent', backgroundColor: '#b2ebf2', color: '#006064' },\n { colorName: 'Highlight', backgroundColor: '#c5e1a5', color: '#33691e' },\n { colorName: 'Surface', backgroundColor: '#fff9c4', color: '#f57f17' },\n { colorName: 'Muted', backgroundColor: '#dcedc8', color: '#33691e' },\n { colorName: 'Subtle', backgroundColor: '#fce4ec', color: '#ad1457' },\n { colorName: 'Inverse', backgroundColor: '#4527a0', color: '#ede7f6' },\n ],\n\n // ─────────────── Business presets ───────────────\n\n // Corporate — navy + steel, conservative trust signals\n corporate: [\n { colorName: 'Primary', backgroundColor: '#1a237e', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#3949ab', color: '#ffffff' },\n { colorName: 'Accent', backgroundColor: '#d84315', color: '#ffffff' },\n { colorName: 'Highlight', backgroundColor: '#fff176', color: '#3e2723' },\n { colorName: 'Surface', backgroundColor: '#fafafa', color: '#1a237e' },\n { colorName: 'Muted', backgroundColor: '#eceff1', color: '#37474f' },\n { colorName: 'Subtle', backgroundColor: '#f5f5f5', color: '#424242' },\n { colorName: 'Inverse', backgroundColor: '#263238', color: '#eceff1' },\n ],\n\n // Healthcare — calm teals + soft whites, clinical clarity\n healthcare: [\n { colorName: 'Primary', backgroundColor: '#00695c', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#00897b', color: '#ffffff' },\n { colorName: 'Accent', backgroundColor: '#e91e63', color: '#ffffff' },\n { colorName: 'Highlight', backgroundColor: '#b2ebf2', color: '#006064' },\n { colorName: 'Surface', backgroundColor: '#ffffff', color: '#263238' },\n { colorName: 'Muted', backgroundColor: '#e0f2f1', color: '#004d40' },\n { colorName: 'Subtle', backgroundColor: '#f1f8e9', color: '#33691e' },\n { colorName: 'Inverse', backgroundColor: '#004d40', color: '#e0f2f1' },\n ],\n\n // Finance — deep green + gold, money & gravitas\n finance: [\n { colorName: 'Primary', backgroundColor: '#1b5e20', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#2e7d32', color: '#ffffff' },\n { colorName: 'Accent', backgroundColor: '#ff8f00', color: '#1b1b1b' },\n { colorName: 'Highlight', backgroundColor: '#ffe082', color: '#5d4037' },\n { colorName: 'Surface', backgroundColor: '#fafafa', color: '#1b1b1b' },\n { colorName: 'Muted', backgroundColor: '#e8f5e9', color: '#1b5e20' },\n { colorName: 'Subtle', backgroundColor: '#f1f8e9', color: '#33691e' },\n { colorName: 'Inverse', backgroundColor: '#1b1b1b', color: '#c8e6c9' },\n ],\n\n // Tech / SaaS — violet + cyan, modern product feel\n tech: [\n { colorName: 'Primary', backgroundColor: '#4527a0', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#7e57c2', color: '#ffffff' },\n { colorName: 'Accent', backgroundColor: '#00e5ff', color: '#00363a' },\n { colorName: 'Highlight', backgroundColor: '#c4b5fd', color: '#311b92' },\n { colorName: 'Surface', backgroundColor: '#fafafa', color: '#311b92' },\n { colorName: 'Muted', backgroundColor: '#ede7f6', color: '#311b92' },\n { colorName: 'Subtle', backgroundColor: '#f3e5f5', color: '#4a148c' },\n { colorName: 'Inverse', backgroundColor: '#1a1a2e', color: '#ede7f6' },\n ],\n\n // Legal — burgundy + cream, traditional and authoritative\n legal: [\n { colorName: 'Primary', backgroundColor: '#4a0e0e', color: '#fff8e1' },\n { colorName: 'Secondary', backgroundColor: '#5d4037', color: '#fff8e1' },\n { colorName: 'Accent', backgroundColor: '#b71c1c', color: '#ffecb3' },\n { colorName: 'Highlight', backgroundColor: '#ffd54f', color: '#3e2723' },\n { colorName: 'Surface', backgroundColor: '#fff8e1', color: '#3e2723' },\n { colorName: 'Muted', backgroundColor: '#efebe9', color: '#4e342e' },\n { colorName: 'Subtle', backgroundColor: '#f5f5f5', color: '#3e2723' },\n { colorName: 'Inverse', backgroundColor: '#3e2723', color: '#efebe9' },\n ],\n\n // Hospitality — warm coral + cream, welcoming and indulgent\n hospitality: [\n { colorName: 'Primary', backgroundColor: '#d84315', color: '#fff8e1' },\n { colorName: 'Secondary', backgroundColor: '#ff7043', color: '#fff8e1' },\n { colorName: 'Accent', backgroundColor: '#c2185b', color: '#ffffff' },\n { colorName: 'Highlight', backgroundColor: '#ffd180', color: '#4e342e' },\n { colorName: 'Surface', backgroundColor: '#fff8e1', color: '#3e2723' },\n { colorName: 'Muted', backgroundColor: '#fbe9e7', color: '#bf360c' },\n { colorName: 'Subtle', backgroundColor: '#fff3e0', color: '#5d4037' },\n { colorName: 'Inverse', backgroundColor: '#3e2723', color: '#fff8e1' },\n ],\n\n // Retail — vibrant + friendly, attention-grabbing pops\n retail: [\n { colorName: 'Primary', backgroundColor: '#d32f2f', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#f57c00', color: '#ffffff' },\n { colorName: 'Accent', backgroundColor: '#00897b', color: '#ffffff' },\n { colorName: 'Highlight', backgroundColor: '#ffeb3b', color: '#5d4037' },\n { colorName: 'Surface', backgroundColor: '#fafafa', color: '#212121' },\n { colorName: 'Muted', backgroundColor: '#f5f5f5', color: '#424242' },\n { colorName: 'Subtle', backgroundColor: '#fffde7', color: '#5d4037' },\n { colorName: 'Inverse', backgroundColor: '#212121', color: '#ffeb3b' },\n ],\n\n // Education — friendly blue + warm accents, approachable\n education: [\n { colorName: 'Primary', backgroundColor: '#1976d2', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#42a5f5', color: '#ffffff' },\n { colorName: 'Accent', backgroundColor: '#ff7043', color: '#ffffff' },\n { colorName: 'Highlight', backgroundColor: '#ffd54f', color: '#5d4037' },\n { colorName: 'Surface', backgroundColor: '#ffffff', color: '#1565c0' },\n { colorName: 'Muted', backgroundColor: '#e3f2fd', color: '#0d47a1' },\n { colorName: 'Subtle', backgroundColor: '#f5f5f5', color: '#424242' },\n { colorName: 'Inverse', backgroundColor: '#0d47a1', color: '#e3f2fd' },\n ],\n };\n return presets[preset];\n }\n\n private bgOf(palette: Palette[], name: string): string {\n const p = palette.find(x => x.colorName === name) ?? palette[0];\n if (typeof p.backgroundColor === 'string') return p.backgroundColor;\n return p.backgroundColor?.colorHex ?? '#cccccc';\n }\n\n private fgOf(palette: Palette[], name: string): string {\n const p = palette.find(x => x.colorName === name) ?? palette[0];\n if (typeof p.color === 'string') return p.color;\n return p.color?.colorHex ?? '#222222';\n }\n\n // ────────────────────────────────────────────────────────────────────────\n // Typography — H1-H5, title, subtitle, body, label, user, display, Focus, white, Jade\n // ────────────────────────────────────────────────────────────────────────\n\n private buildTypography(\n style: StyleProfile,\n purpose: PurposeProfile,\n semantics: SemanticColors,\n textShadowCss: string,\n ): TypographyStyle[] {\n const base = style.baseFontSize;\n const boost = purpose.emphasizeHeadings ? 1.15 : 1.0;\n const heading = (sizePx: number): Partial<TypographyStyle> => ({\n typeFont: style.fontFamily,\n typeFontSize: `${Math.round(sizePx * boost)}px`,\n typeFontWeight: style.headingWeight,\n typeLineHeight: '1.3',\n typeTextShadow: textShadowCss,\n });\n\n return [\n { typeName: 'H1', ...heading(base * 2.6), typePadding: '6px 4px' },\n { typeName: 'H2', ...heading(base * 2.1), typePadding: '6px 4px' },\n { typeName: 'H3', ...heading(base * 1.75) },\n { typeName: 'H4', ...heading(base * 1.4) },\n { typeName: 'H5', ...heading(base * 1.2), typeFontAlignment: 'center' },\n {\n typeName: 'title',\n typeFont: style.fontFamily,\n typeFontSize: `${Math.round(base * 1.55)}px`,\n typeFontWeight: style.headingWeight,\n typeFontAlignment: 'center',\n typeLineHeight: '1.3',\n typePadding: '2px 4px',\n typeMargin: '2px 4px',\n typeTextShadow: textShadowCss,\n },\n {\n typeName: 'subtitle',\n typeFont: style.fontFamily,\n typeFontSize: `${Math.round(base * 1.1)}px`,\n typeFontWeight: '500',\n typeLineHeight: '1.4',\n typePadding: '4px',\n typeTextShadow: textShadowCss,\n },\n {\n typeName: 'body',\n typeFont: style.fontFamily,\n typeFontSize: `${base}px`,\n typeFontWeight: style.bodyWeight,\n typeLineHeight: '1.6',\n },\n {\n typeName: 'label',\n typeFont: style.fontFamily,\n typeFontSize: `${Math.round(base * 0.9)}px`,\n typeFontWeight: '500',\n typeFontAlignment: 'center',\n typeLineHeight: '1.3',\n },\n {\n typeName: 'user',\n typeFont: style.fontFamily,\n typeFontSize: `${Math.round(base * 1.05)}px`,\n typeFontWeight: '600',\n typePadding: '4px',\n typeMargin: '4px',\n typeFontColor: '#303f9f',\n },\n {\n typeName: 'display',\n typeFont: style.monoFamily,\n typeFontSize: `${Math.round(base * 0.9)}px`,\n typeFontWeight: '900',\n typeLineHeight: '1.4',\n typePadding: '6px 4px',\n },\n {\n typeName: 'Focus',\n typeFont: style.fontFamily,\n typeFontSize: `${Math.round(base * 1.65)}px`,\n typeFontWeight: '600',\n typePalette: 'Accent',\n typeBorder: `2px solid ${semantics.danger.bg}`,\n typePadding: '8px',\n typeMargin: '12px',\n typeTextShadow: textShadowCss,\n },\n {\n typeName: 'white',\n typeFont: style.fontFamily,\n typeFontSize: `${Math.round(base * 2.2)}px`,\n typeFontWeight: '700',\n typeFontColor: '#ffffff',\n typeBackground: semantics.inverse.bg,\n typePadding: '6px 4px',\n typeTextShadow: textShadowCss,\n },\n {\n typeName: 'Jade',\n typeFont: style.monoFamily,\n typeFontSize: `${Math.round(base * 1.2)}px`,\n typeFontWeight: '600',\n typeLineHeight: '1.5',\n typeFontColor: '#1259c8',\n typePadding: '4px',\n typeMargin: '4px',\n },\n ];\n }\n\n // ────────────────────────────────────────────────────────────────────────\n // Containers — Page Structure: Page, Section, Hero, Header, Footer,\n // Sidebar, Toolbar | Cards & Panels: Card, Panel, Modal | Content Types:\n // Data Entry, Article, Feed, Table, Gallery, Dashboard | Width Variants: Narrow,\n // Half, Wide, Full Width, Full Screen | Functional: Media, Sticky,\n // Notification, Inactive, Callout\n // ────────────────────────────────────────────────────────────────────────\n\n private buildContainers(\n style: StyleProfile,\n purpose: PurposeProfile,\n palette: Palette[],\n layout: ThemeLayout,\n elevationCss: string,\n ): ContainerStyle[] {\n const surfaceBg = this.bgOf(palette, 'Surface');\n const mutedBg = this.bgOf(palette, 'Muted');\n const primaryBg = this.bgOf(palette, 'Primary');\n const accentBg = this.bgOf(palette, 'Accent');\n const tightPad = purpose.density === 'tight' ? '4px' : '6px';\n const contentPad = purpose.density === 'tight' ? '12px' : purpose.density === 'roomy' ? '32px' : '20px';\n const radius = style.borderRadius;\n\n return [\n // ── Page Structure ────────────────────────────────────────────────\n {\n containerName: 'Page',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerWidth: '100vw',\n containerHeight: 'auto',\n containerPadding: '0px',\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerPosition: 'relative',\n },\n {\n containerName: 'Section',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerWidth: '100vw',\n containerPadding: `${contentPad} 0px`,\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerPosition: 'relative',\n },\n {\n containerName: 'Hero',\n containerPalette: 'Accent',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerWidth: '100vw',\n containerPadding: '64px 32px',\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerPosition: 'relative',\n },\n {\n containerName: 'Header',\n containerPalette: 'Primary',\n containerLayout: 'row',\n containerAlignment: 'center',\n containerWidth: '100vw',\n containerHeight: 'auto',\n containerPadding: '8px 16px',\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: elevationCss,\n containerPosition: 'sticky',\n containerPositioning: 'top: 0; z-index: 100;',\n },\n {\n containerName: 'Footer',\n containerPalette: 'Muted',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerWidth: '100vw',\n containerPadding: `${contentPad} 16px`,\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerPosition: 'relative',\n },\n {\n containerName: 'Sidebar',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerWidth: '25vw',\n containerHeight: '100vh',\n containerPadding: '12px',\n containerMargin: '0px',\n containerBorder: style.border === 'none' ? '1px solid rgba(0,0,0,0.1)' : style.border,\n containerBoxShadow: elevationCss,\n containerOverflowY: 'auto',\n containerPosition: 'relative',\n },\n {\n containerName: 'Toolbar',\n containerPalette: 'Primary',\n containerLayout: 'row',\n containerAlignment: 'center',\n containerWidth: '100vw',\n containerHeight: 'auto',\n containerPadding: '4px 12px',\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: elevationCss,\n containerPosition: 'relative',\n },\n // ── Cards & Panels ────────────────────────────────────────────────\n {\n containerName: 'Card',\n containerPalette: 'Surface',\n containerLayout: layout,\n containerAlignment: 'center',\n containerPadding: '16px',\n containerMargin: '8px',\n containerBorder: style.border,\n containerBoxShadow: elevationCss,\n containerPosition: 'relative',\n containerStyle: `border-radius: ${radius};`,\n },\n {\n containerName: 'Panel',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerWidth: '33vw',\n containerHeight: '80vh',\n containerPadding: tightPad,\n containerMargin: '6px',\n containerBorder: style.border === 'none' ? '1px solid rgba(0,0,0,0.1)' : style.border,\n containerBoxShadow: elevationCss,\n containerLineHeight: '150%',\n containerPosition: 'relative',\n containerStyle: `border-radius: ${radius};`,\n },\n {\n containerName: 'Modal',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerWidth: '480px',\n containerHeight: 'auto',\n containerPadding: '24px',\n containerMargin: '0px auto',\n containerBorder: style.border,\n containerBoxShadow: elevationCss || '0 8px 32px rgba(0,0,0,0.2)',\n containerPosition: 'relative',\n containerStyle: `border-radius: ${radius};`,\n },\n // ── Content Types ─────────────────────────────────────────────────\n {\n containerName: 'Data Entry',\n containerPalette: 'Surface',\n containerLayout: layout,\n containerAlignment: 'center',\n containerPadding: '16px 12px',\n containerMargin: '12px 6px',\n containerBorder: style.border,\n containerBoxShadow: elevationCss,\n containerPosition: 'relative',\n containerStyle: `border-radius: ${radius};`,\n },\n {\n containerName: 'Article',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerAlignment: 'start',\n containerPadding: contentPad,\n containerMargin: '0px auto',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerLineHeight: '160%',\n containerPosition: 'relative',\n },\n {\n containerName: 'Feed',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerWidth: '100%',\n containerHeight: '100%',\n containerOverflowX: 'hidden',\n containerOverflowY: 'auto',\n containerPadding: tightPad,\n containerBorder: 'none',\n containerPosition: 'relative',\n },\n {\n containerName: 'Table',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerHeight: 'auto',\n containerOverflowX: 'scroll',\n containerOverflowY: 'scroll',\n containerBorder: style.border,\n containerMargin: '0px',\n containerPadding: '0px',\n containerPosition: 'relative',\n },\n {\n containerName: 'Gallery',\n containerPalette: 'Muted',\n containerLayout: 'row wrap',\n containerAlignment: 'center',\n containerWidth: '100vw',\n containerPadding: tightPad,\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerPosition: 'relative',\n },\n {\n containerName: 'Dashboard',\n containerPalette: 'Surface',\n containerLayout: 'row wrap',\n containerAlignment: 'center',\n containerWidth: '100%',\n containerPadding: contentPad,\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerPosition: 'relative',\n },\n // ── Width Variants ────────────────────────────────────────────────\n {\n containerName: 'Narrow',\n containerPalette: 'Surface',\n containerLayout: layout,\n containerAlignment: 'center',\n containerWidth: '33%',\n containerPadding: '0px',\n containerMargin: '0px',\n containerBorder: style.border,\n containerBoxShadow: '',\n },\n {\n containerName: 'Half',\n containerPalette: 'Surface',\n containerLayout: layout,\n containerAlignment: 'center',\n containerWidth: '50%',\n containerPadding: '15px',\n containerBorder: style.border,\n },\n {\n containerName: 'Wide',\n containerPalette: 'Surface',\n containerLayout: layout,\n containerAlignment: 'center',\n containerWidth: '66%',\n containerPadding: '0px',\n containerMargin: '0px',\n containerBorder: style.border,\n },\n {\n containerName: 'Full Width',\n containerBackground: surfaceBg,\n containerLayout: layout,\n containerAlignment: 'center',\n containerWidth: '100vw',\n containerOverflowX: 'scroll',\n containerOverflowY: 'scroll',\n containerPadding: '0px',\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerPosition: 'relative',\n },\n {\n containerName: 'Full Screen',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerWidth: '100vw',\n containerHeight: '100vh',\n containerPadding: '0px',\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerPosition: 'relative',\n },\n // ── Functional / State ────────────────────────────────────────────\n {\n containerName: 'Media',\n containerPalette: 'Muted',\n containerLayout: layout,\n containerAlignment: 'center',\n containerWidth: '25vw',\n containerPadding: '0px',\n containerMargin: '6px',\n containerBorder: 'none',\n containerBoxShadow: elevationCss,\n containerPosition: 'relative',\n containerStyle: `border-radius: ${radius};`,\n },\n {\n containerName: 'Sticky',\n containerBackground: `${mutedBg}55`,\n containerLayout: layout,\n containerAlignment: 'center',\n containerHeight: 'auto',\n containerPadding: '6px',\n containerMargin: '6px',\n containerBorder: 'none',\n containerPosition: 'sticky',\n containerPositioning: 'top: 0; z-index: 50;',\n },\n {\n containerName: 'Notification',\n containerBackground: accentBg,\n containerLayout: 'column',\n containerBorder: '1px solid white',\n containerMargin: '12px 0px',\n containerPadding: '12px',\n containerLineHeight: '150%',\n containerStyle: `border-radius: ${radius};`,\n },\n {\n containerName: 'Report',\n // containerBackground: accentBg,\n containerLayout: 'column',\n containerBorder: '2px solid gray',\n // containerMargin: '12px 0px',\n containerPadding: '8px',\n // containerLineHeight: '150%',\n // containerStyle: `border-radius: ${radius};`,\n },\n {\n containerName: 'Inactive',\n containerPalette: 'Muted',\n containerPadding: tightPad,\n },\n {\n containerName: 'Callout',\n containerPalette: 'Primary',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerPadding: contentPad,\n containerMargin: '12px 0px',\n containerBorder: `2px solid ${primaryBg}`,\n containerBoxShadow: '',\n containerStyle: `border-radius: ${radius};`,\n },\n ];\n }\n\n // ────────────────────────────────────────────────────────────────────────\n // Buttons — Default Style, Item Select, Create, Delete, Disabled, Highlight,\n // Function, Edit, Action, cell, Logic, Jade, Cancel\n // ────────────────────────────────────────────────────────────────────────\n\n private buildButtons(\n style: StyleProfile,\n purpose: PurposeProfile,\n palette: Palette[],\n semantics: SemanticColors,\n elevationCss: string,\n ): ButtonStyle[] {\n const padding = purpose.buttonPadding;\n const radius = style.borderRadius;\n const shadow = elevationCss;\n const primaryBg = this.bgOf(palette, 'Primary');\n const primaryFg = this.fgOf(palette, 'Primary');\n const secondaryBg = this.bgOf(palette, 'Secondary');\n const secondaryFg = this.fgOf(palette, 'Secondary');\n const accentBg = this.bgOf(palette, 'Accent');\n const accentFg = this.fgOf(palette, 'Accent');\n const mutedBg = this.bgOf(palette, 'Muted');\n\n return [\n {\n buttonName: 'Default Style',\n buttonBackground: primaryBg,\n buttonColor: primaryFg,\n buttonPadding: padding,\n buttonMargin: '6px',\n buttonRadius: radius,\n buttonBorder: style.border === 'none' ? 'none' : style.border,\n buttonShadow: shadow,\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Item Select',\n buttonBackground: secondaryBg,\n buttonColor: secondaryFg,\n buttonPadding: padding,\n buttonMargin: '0px',\n buttonRadius: '0px',\n buttonBorder: '1px solid rgba(0,0,0,0.25)',\n buttonShadow: 'none',\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Create',\n buttonBackground: semantics.success.bg,\n buttonColor: semantics.success.fg,\n buttonPadding: padding,\n buttonMargin: '6px',\n buttonRadius: radius,\n buttonBorder: 'none',\n buttonShadow: shadow,\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Delete',\n buttonBackground: semantics.danger.bg,\n buttonColor: semantics.danger.fg,\n buttonPadding: padding,\n buttonMargin: '8px',\n buttonRadius: radius,\n buttonBorder: 'none',\n buttonShadow: shadow,\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Disabled',\n buttonBackground: semantics.disabled.bg,\n buttonColor: semantics.disabled.fg,\n buttonPadding: padding,\n buttonMargin: '8px',\n buttonRadius: '0px',\n buttonBorder: 'none',\n buttonShadow: 'none',\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Highlight',\n buttonPalette: 'Highlight',\n buttonPadding: padding,\n buttonMargin: '8px',\n buttonRadius: radius,\n buttonBorder: 'none',\n buttonShadow: shadow,\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Function',\n buttonBackground: semantics.info.bg,\n buttonColor: semantics.info.fg,\n buttonPadding: padding,\n buttonMargin: '8px',\n buttonRadius: radius,\n buttonBorder: 'none',\n buttonShadow: shadow,\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Edit',\n buttonBackground: accentBg,\n buttonColor: accentFg,\n buttonPadding: padding,\n buttonMargin: '8px',\n buttonRadius: radius,\n buttonBorder: 'none',\n buttonShadow: shadow,\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Action',\n buttonBackground: primaryBg,\n buttonColor: primaryFg,\n buttonPadding: '8px 6px 8px 16px',\n buttonMargin: '8px',\n buttonRadius: `0px ${radius} ${radius} 0px`,\n buttonBorder: 'none',\n buttonShadow: shadow,\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'cell',\n buttonBackground: this.bgOf(palette, 'Surface'),\n buttonColor: this.fgOf(palette, 'Surface'),\n buttonPadding: '0px',\n buttonMargin: '0px',\n buttonBorder: '1px solid rgba(0,0,0,0.2)',\n buttonShadow: 'none',\n buttonRadius: '0px',\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Logic',\n buttonBackground: mutedBg,\n buttonColor: primaryBg,\n buttonPadding: padding,\n buttonMargin: '6px',\n buttonBorder: '2px solid rgba(0,0,0,0.7)',\n buttonRadius: radius,\n buttonTypeStyle: 'subtitle',\n },\n {\n buttonName: 'Jade',\n buttonBackground: this.bgOf(palette, 'Surface'),\n buttonColor: '#1259c8',\n buttonPadding: padding,\n buttonMargin: '3px',\n buttonRadius: radius,\n buttonTypeStyle: 'Jade',\n },\n {\n buttonName: 'Cancel',\n buttonBackground: mutedBg,\n buttonColor: this.fgOf(palette, 'Muted'),\n buttonPadding: padding,\n buttonMargin: '6px',\n buttonRadius: radius,\n buttonBorder: 'none',\n buttonShadow: 'none',\n buttonTypeStyle: 'label',\n },\n ];\n }\n\n // ────────────────────────────────────────────────────────────────────────\n // Accordions — base, Level 1-4, Minimal, Settings, Data row 1-4, Object,\n // Media Details, Docs, Create, TeamChat, Style, Share, UI, Chat Bots,\n // Team, Sheet, App, Report\n // ────────────────────────────────────────────────────────────────────────\n\n private buildAccordions(\n style: StyleProfile,\n purpose: PurposeProfile,\n palette: Palette[],\n layout: ThemeLayout,\n elevationCss: string,\n ): AccordionStyle[] {\n const headerPad = purpose.accordionMode === 'open' ? '8px 12px' : '12px 16px';\n const tight = purpose.density === 'tight';\n\n // Hierarchy palette walk: Primary → Secondary → Accent → Surface\n const hierarchy = ['Primary', 'Secondary', 'Accent', 'Surface'];\n\n const make = (\n name: string,\n overrides: Partial<AccordionStyle> = {},\n ): AccordionStyle => ({\n accordionName: name,\n accordionPalette: 'Surface',\n accordionLayout: layout,\n accordionAlignment: 'stretch',\n accordionPadding: tight ? '4px' : '8px',\n accordionMargin: '0px',\n accordionBorder: style.border,\n accordionBoxShadow: elevationCss,\n accordionExtra: 'max-width: 100vw; box-sizing: border-box;',\n headerOpenPalette: 'Primary',\n headerOpenType: 'H4',\n headerOpenLayout: 'row wrap',\n headerOpenAlignment: 'space-between',\n headerOpenPadding: headerPad,\n headerOpenMargin: '0px',\n headerOpenBorder: 'none',\n headerClosedPalette: 'Surface',\n headerClosedType: 'H4',\n headerClosedLayout: 'row wrap',\n headerClosedAlignment: 'space-between',\n headerClosedPadding: headerPad,\n headerClosedMargin: tight ? '4px' : '6px',\n headerClosedBorder: style.border,\n headerClosedBoxShadow: elevationCss,\n ...overrides,\n });\n\n const primaryBg = this.bgOf(palette, 'Primary');\n\n return [\n make('base'),\n\n // Hierarchical levels — palette walks deeper at each level\n make('Level 1', { accordionPalette: hierarchy[0], headerOpenPalette: hierarchy[0], headerClosedPalette: hierarchy[0] }),\n make('Level 2', { accordionPalette: hierarchy[1], headerOpenPalette: hierarchy[1], headerClosedPalette: hierarchy[1], headerClosedMargin: '4px 0px 4px 12px' }),\n make('Level 3', { accordionPalette: hierarchy[2], headerOpenPalette: hierarchy[2], headerClosedPalette: hierarchy[2], headerClosedMargin: '4px 0px 4px 24px' }),\n make('Level 4', { accordionPalette: hierarchy[3], headerOpenPalette: hierarchy[3], headerClosedPalette: hierarchy[3], headerClosedMargin: '4px 0px 4px 36px' }),\n\n // Minimal — compact, no shadow\n make('Minimal', {\n accordionPadding: '0px',\n accordionMargin: '0px',\n accordionBorder: 'none',\n accordionBoxShadow: 'none',\n headerOpenType: 'label',\n headerClosedType: 'label',\n headerOpenPadding: '4px 8px',\n headerClosedPadding: '4px 8px',\n headerClosedBoxShadow: 'none',\n }),\n\n // Settings — full-width\n make('Settings', {\n accordionPalette: 'Secondary',\n accordionWidth: '100vw',\n accordionPadding: '0px',\n accordionMargin: '0px',\n accordionAlignment: \"center\",\n headerOpenWidth: '100vw',\n headerClosedWidth: '100vw',\n }),\n\n // Object — structured data accordion\n make('Object', {\n accordionAlignment: 'space-evenly',\n headerOpenPalette: 'Accent',\n headerClosedPalette: 'Surface',\n headerClosedBoxShadow: 'inset -2px 0px 7px 6px rgba(170,170,170,0.6)',\n }),\n\n // Media Details\n make('Media Details', {\n accordionPalette: 'Surface',\n headerOpenType: 'body',\n headerClosedType: 'body',\n }),\n\n // Docs\n make('Docs', {\n accordionPalette: 'Surface',\n accordionAlignment: 'space-evenly',\n headerOpenType: 'H3',\n headerClosedType: 'H3',\n headerClosedPadding: '12px',\n headerClosedMargin: '12px',\n }),\n\n // Create\n make('Create', {\n accordionWidth: 'fit-content',\n accordionAlignment: 'left',\n accordionPalette: 'Accent',\n accordionPadding: '4px',\n accordionMargin: '0px',\n headerOpenType: 'label',\n headerClosedType: 'H5',\n headerOpenPadding: '0px',\n headerClosedPadding: '4px',\n headerClosedAlignment: 'left',\n headerClosedMargin: '0px',\n }),\n\n // TeamChat\n make('TeamChat', {\n accordionWidth: 'auto',\n accordionPalette: 'Secondary',\n headerOpenPadding: '12px',\n headerClosedPadding: '12px',\n headerOpenWidth: 'auto',\n headerClosedWidth: 'auto',\n headerClosedBorder: '1px solid rgba(0,0,0,0.2)',\n }),\n\n // Style\n make('Style', {\n accordionWidth: '100vw',\n accordionAlignment: 'space-evenly',\n accordionPalette: 'Accent',\n headerOpenType: 'label',\n headerClosedType: 'label',\n }),\n\n // Share\n make('Share', {\n accordionWidth: '100vw',\n accordionAlignment: 'space-evenly',\n accordionPalette: 'Secondary',\n headerOpenPalette: 'Secondary',\n headerClosedPalette: 'Secondary',\n headerOpenType: 'label',\n headerClosedType: 'label',\n }),\n\n // UI\n make('UI', {\n accordionPalette: 'Accent',\n accordionPadding: '0px',\n accordionMargin: '0px',\n headerOpenType: 'label',\n headerClosedType: 'H5',\n headerClosedPadding: '12px 30px',\n headerOpenPadding: '6px 12px',\n headerClosedBoxShadow: 'rgba(50, 50, 93, 0.25) 0px 30px 60px -12px inset, rgba(0, 0, 0, 0.3) 0px 18px 36px -18px inset',\n }),\n\n // Chat Bots\n make('Chat Bots', {\n accordionPalette: 'Muted',\n }),\n\n // LabelBox tools — each has a distinct tinted border\n\n // Primary app views\n make('Team', {\n accordionPalette: 'Primary',\n accordionAlignment: 'space-evenly',\n accordionPadding: '0px',\n accordionMargin: '0px',\n headerClosedType: 'title',\n }),\n make('Sheet', {\n accordionPalette: 'Surface',\n headerOpenType: 'H4',\n headerClosedType: 'H4',\n }),\n make('App', {\n accordionPalette: 'Primary',\n accordionAlignment: 'center',\n headerOpenType: 'title',\n headerClosedType: 'title',\n }),\n make('Report', {\n accordionPalette: 'Surface',\n accordionLayout: 'column',\n headerOpenType: 'H3',\n headerClosedType: 'H3',\n headerClosedBoxShadow: `inset 0 -1px 0 ${primaryBg}`,\n }),\n ];\n }\n\n // ────────────────────────────────────────────────────────────────────────\n // Classes — color-blue, justifyRight\n // ────────────────────────────────────────────────────────────────────────\n\n private buildClasses(): ClassStyle[] {\n return [\n { className: 'color-blue', class: 'color: blue;' },\n { className: 'justifyRight', class: 'justify-content: flex-end;\\njustify-self: flex-end;' },\n ];\n }\n\n private capitalize(s: string): string {\n return s.charAt(0).toUpperCase() + s.slice(1);\n }\n}\n","// Shared theme types for the Angular service and the framework-agnostic\n// client. Defined locally (not imported from platform-object.service) so a\n// published package has no internal cross-file dependencies.\n\nexport interface ThemeShare {\n readAccess: 'Private' | 'Team';\n writeAccess: 'Private' | 'Team';\n publicReadAccess: string;\n publicWriteAccess: string;\n}\n\nexport interface Theme {\n objectId: string;\n collectionName: 'theme';\n companyId: string;\n createdBy: string;\n created: number;\n updated: number;\n updatedBy: string;\n removed: boolean;\n share: ThemeShare;\n favorite?: boolean;\n tags?: string[];\n data: Record<string, unknown>;\n}\n\nexport interface ThemesResponse {\n success: boolean;\n data?: Theme[];\n error?: string;\n}\n\nexport interface ThemeResponse {\n success: boolean;\n data?: Theme;\n error?: string;\n}\n","/*\n * Public API Surface of faster-themes\n */\nexport * from './lib/faster-themes.module';\nexport * from './lib/faster-themes.component';\nexport * from './lib/faster-themes.service';\nexport * from './lib/accordion/accordion.component';\nexport * from './lib/accordion/directives/accordion-title.directive';\nexport * from './lib/accordion/directives/accordion-header.directive';\nexport * from './lib/accordion/directives/accordion-content.directive';\nexport * from './lib/accordion/directives/accordion-item.directive';\nexport * from './lib/accordion/toggle.pipe';\nexport * from './lib/accordion/directives/ripple.directive';\nexport * from './lib/directives/nColor.directive';\nexport * from './lib/directives/nContainer.directive';\nexport * from './lib/directives/nType.directive';\nexport * from './lib/directives/nButton.directive';\nexport * from './lib/directives/nClass.directive';\nexport * from './lib/theme-generator/theme-generator.component';\nexport * from './lib/theme.service';\nexport * from './lib/theme.types';\n\n/* Napkin Tools */\n/*\nexport * from './lib/napkin-tools/napkin-tools.module';\nexport * from './lib/napkin-tools/button/button-component';\nexport * from './lib/napkin-tools/nField.directive';\n*/\n\n\n\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ThemeService","i1.FasterThemesService","i3.TogglePipe","i2.RippleDirective","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fasteros-themes.mjs","sources":["../../../projects/themes/src/lib/faster-themes.component.ts","../../../projects/themes/src/lib/theme.service.ts","../../../projects/themes/src/lib/faster-themes.service.ts","../../../projects/themes/src/lib/accordion/directives/accordion-content.directive.ts","../../../projects/themes/src/lib/accordion/directives/accordion-header.directive.ts","../../../projects/themes/src/lib/accordion/directives/accordion-title.directive.ts","../../../projects/themes/src/lib/accordion/directives/accordion-item.directive.ts","../../../projects/themes/src/lib/accordion/toggle.pipe.ts","../../../projects/themes/src/lib/accordion/accordion.component.ts","../../../projects/themes/src/lib/accordion/accordion.component.html","../../../projects/themes/src/lib/directives/nColor.directive.ts","../../../projects/themes/src/lib/directives/nContainer.directive.ts","../../../projects/themes/src/lib/directives/nType.directive.ts","../../../projects/themes/src/lib/accordion/directives/ripple.directive.ts","../../../projects/themes/src/lib/directives/nButton.directive.ts","../../../projects/themes/src/lib/directives/nClass.directive.ts","../../../projects/themes/src/lib/faster-themes.module.ts","../../../projects/themes/src/lib/theme-generator/theme-generator.component.ts","../../../projects/themes/src/lib/theme.types.ts","../../../projects/themes/src/public-api.ts","../../../projects/themes/src/fasteros-themes.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-faster-themes',\n template: `\n <p>\n faster-themes works!\n </p>\n `,\n styles: [],\n standalone: false\n})\nexport class FasterThemesComponent {\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { firstValueFrom } from 'rxjs';\nimport { ThemeResponse, ThemesResponse } from './theme.types';\n\n// Base URL for the Napkin themes API. Update this value to point at your\n// deployed backend; the apiUrl below is derived from it at module load.\nexport const THEME_API_BASE_URL = 'https://bzw27udtrayx7u6pvbnexfdk4i0hcsia.lambda-url.us-east-1.on.aws/api';\n\n// API-key-authenticated reads against /api/platform-objects/themes.\n// The apiKey identifies the tenant; the backend scopes results accordingly.\n@Injectable({ providedIn: 'root' })\nexport class ThemeService {\n private readonly apiUrl = `${THEME_API_BASE_URL.replace(/\\/+$/, '')}/platform-objects/themes`;\n\n constructor(private http: HttpClient) {}\n\n private headers(apiKey: string): HttpHeaders {\n return new HttpHeaders({\n 'X-API-Key': apiKey,\n 'Content-Type': 'application/json',\n });\n }\n\n getThemes(apiKey: string): Promise<ThemesResponse> {\n return firstValueFrom(\n this.http.get<ThemesResponse>(this.apiUrl, {\n headers: this.headers(apiKey),\n })\n );\n }\n\n getTheme(themeId: string, apiKey: string): Promise<ThemeResponse> {\n return firstValueFrom(\n this.http.get<ThemeResponse>(`${this.apiUrl}/${themeId}`, {\n headers: this.headers(apiKey),\n })\n );\n }\n}\n","/* Copyright © 2023-2025 Napkin Apps Corp. All rights reserved. */\nimport { Injectable, NgZone } from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { ThemeService } from './theme.service';\nimport { Theme } from './theme.types';\n\n// Firebase removed - no longer used\n// import { Inject } from '@angular/core';\n// import { catchError, firstValueFrom, map, Observable, of } from 'rxjs';\n// import { Auth, onAuthStateChanged, signInWithCustomToken, User } from 'firebase/auth';\n// import { getFirestore, collection, query, where, onSnapshot, getDocs } from 'firebase/firestore';\n// import { FAT, INIT_THEMES } from './faster-themes.module';\n// import { FirebaseApp } from 'firebase/app';\n// import { Analytics, logEvent } from 'firebase/analytics';\n\n//import { Globals } from 'src/app/globals';\n\nexport interface FasterTheme {\n [key: string]: any;\n companyId?: string;\n id?: string;\n formId?: string;\n name?: string;\n description?: string;\n public?: boolean;\n followers?: number; // # of copies - can also follow team.\n coreTheme?: boolean; //core theme set\n themeId?: string;\n createdAt?: number;\n createdBy?: string;\n editedAt?: number;\n editedBy?: string;\n\n // responsive?: Responsive;\n responsiveName?: string;\n responsiveStandardWidth?: number; // pixels for 100%\n responsiveFontSizeMin?: number; // percentage\n responsiveFontSizeMax?: number; // percentage\n responsiveMarginMin?: number; // percentage\n responsiveMarginMax?: number; // percentage\n responsivePaddingMin?: number; // percentage\n responsivePaddingMax?: number; // percentage\n containers?: ContainerStyle[];\n buttonStyles?: ButtonStyle[];\n accordions?: AccordionStyle[];\n typeStyles?: TypographyStyle[];\n classes?: ClassStyle[];\n palette?: Palette[];\n}\n\nexport interface Palette {\n colorName: string;\n backgroundColor?: ColorInfo | string;\n color?: ColorInfo | string;\n gradient?: string;\n\n}\n\nexport interface ColorInfo {\n htmlName?: string;\n colorHex?: string;\n colorRGB?: string;\n colorTags?: string[];\n}\n/*\nexport interface Responsive {\n responsiveName: string;\n responsiveStandardWidth: number; // pixels for 100%\n responsiveFontSizeMin: number; // percentage\n responsiveFontSizeMax: number; // percentage\n responsiveMarginMin: number; // percentage\n responsiveMarginMax: number; // percentage\n responsivePaddingMin: number; // percentage\n responsivePaddingMax: number; // percentage\n}\n*/\n\nexport interface ClassStyle {\n className?: string;\n class?: string;\n}\n\nexport interface AccordionStyle {\n accordionName?: string;\n accordionPalette?: string;\n accordionBackground?: string;\n accordionLayout?: string;\n accordionAlignment?: string;\n accordionBorder?: string;\n accordionBoxShadow?: string;\n accordionMargin?: string;\n accordionPadding?: string;\n accordionWidth?: string;\n accordionHeight?: string; // 80vh, 200px...\n accordionExtra?: string;\n\n headerOpenPalette?: string;\n headerOpenBackground?: string;\n headerOpenWidth?: string;\n headerOpenType?: string; // typography name\n headerOpenLayout?: string;\n headerOpenAlignment?: string;\n headerOpenBorder?: string;\n headerOpenBoxShadow?: string;\n headerOpenMargin?: string;\n headerOpenPadding?: string;\n headerOpenExtra?: string;\n\n headerClosedPalette?: string;\n headerClosedBackground?: string;\n headerClosedWidth?: string;\n headerClosedType?: string; // typography name\n headerClosedLayout?: string;\n headerClosedAlignment?: string;\n headerClosedBorder?: string;\n headerClosedBoxShadow?: string;\n headerClosedMargin?: string;\n headerClosedPadding?: string;\n headerClosedExtra?: string;\n}\n\nexport interface ContainerStyle {\n containerName?: string;\n containerWidth?: string;\n containerHeight?: string;\n containerLineHeight?: string;\n containerOverflowX?: string;\n containerOverflowY?: string;\n containerPosition?: string;\n containerPositioning?: string;\n containerPalette?: string;\n containerBackground?: string;\n containerBackgroundGradient?: string;\n containerAlignment?: string;\n containerAlignmentV?: string;\n containerLayout?: string;\n containerBorder?: string;\n containerBoxShadow?: string;\n containerMargin?: string;\n containerPadding?: string;\n backgroundImage?: string;\n backgroundSize?: string;\n backgroundRepeat?: string;\n backgroundPosition?: string;\n containerStyle?: string;\n\n}\n\n// Standard styles\n//headline1, headline2, headline3, headline4, headline5, body, label, user-entered, display, title, subtitle\nexport interface TypographyStyle {\n typeName?: string;\n typeFont?: string; // implement later: need a fontFactory to manage fonts\n typeFontSize?: string;\n typeFontWeight?: string;\n typeLineHeight?: string;\n typePalette?: string;\n typeBackground?: string;\n typeFontColor?: string;\n typeFontAlignment?: string; //text-align\n typeTextShadow?: string;\n typeBoxShadow?: string;\n typePadding?: string;\n typeMargin?: string;\n typeBorder?: string;\n}\n\nexport interface ButtonStyle {\n buttonName?: string; // \n buttonPadding?: string; // in the form of; 20px 20% 20px 20%\n buttonMargin?: string; // Same as padding\n buttonTypeStyle?: string;\n buttonPalette?: string | undefined;\n\n buttonBackground?: string; //#d9e3e9;\n buttonColor?: string; //rgb(34, 33, 33);\n buttonStyle?: string; // mostly used for \"Theme\"\n buttonBorder?: string; // none;\n buttonRadius?: string; // 5px;\n buttonCursor?: string; // pointer;\n buttonShadow?: string; //\n buttonFontWeight?: string; // Added to match object literals\n buttonFont?: string; // Added to match object literals\n buttonFontSize?: string; // Added to match object literals\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FasterThemesService {\n companyId: any;\n screenWidth = window.innerWidth;\n screenHeight = window.innerHeight;\n parentTheme: FasterTheme = {}; // most recent theme assignment\n\n\n readonly resize$ = new Subject<void>();\n\n allThemes: FasterTheme[] = [];\n private uid?: string | null;\n\n\n // Dead code - @HostListener has no effect on a service. Window resize is handled by listenToWindowSize().\n // @HostListener('window:resize', ['$event'])\n // onWindowResize() {\n // this.screenWidth = window.innerWidth;\n // this.screenHeight = window.innerHeight;\n // }\n\n constructor(\n /*public global: Globals,*/ private ngZone: NgZone,\n // Firebase removed - no longer used\n // @Inject(FAT) private authPromise: Promise<Auth>,\n // @Inject(INIT_THEMES) private initThemesPromise: Promise<any>,\n private themeService: ThemeService) {\n this.listenToWindowSize();\n }\n/*\n private analytics: Analytics | null = null;\n\n private async getAnalytics(): Promise<Analytics | null> {\n if (!this.analytics) {\n this.analytics = await this.analyticsPromise;\n }\n return this.analytics;\n }\n */\n\n listenToWindowSize() {\n this.ngZone.runOutsideAngular(() => {\n fromEvent(window, 'resize').pipe(debounceTime(50)).subscribe(() => {\n this.screenWidth = window.innerWidth;\n this.screenHeight = window.innerHeight;\n this.ngZone.run(() => this.resize$.next());\n });\n });\n }\n\n /**\n * Fetches themes for the tenant identified by `apiKey` via the Napkin themes\n * API and writes them into `this.allThemes`. Fetch-once; no real-time updates.\n *\n * Delegates to `ThemeService`. The base URL is set by the\n * `THEME_API_BASE_URL` constant in theme.service.ts.\n *\n * If `themeId` is supplied, only that single theme is fetched and the result\n * replaces `allThemes` with a one-element array. Otherwise all themes for the\n * tenant are fetched.\n *\n * On any failure (missing key, network error, non-2xx, `success: false` from\n * the backend) the call logs and returns `[]` — `getTheme()` continues to\n * fall back to `defaultStyle`.\n *\n * @param apiKey tenant API key (required) — sent as Bearer token\n * @param themeId optional theme id; when present fetches only that one theme\n * @returns the loaded themes (the same array that was assigned to `allThemes`)\n */\n async initThemes(apiKey: string, themeId?: string): Promise<FasterTheme[]> {\n if (!apiKey) {\n console.warn('FasterThemesService.initThemes: apiKey is required.');\n return [];\n }\n\n try {\n if (themeId) {\n const resp = await this.themeService.getTheme(themeId, apiKey);\n if (resp.success && resp.data) {\n this.allThemes = [this.toFasterTheme(resp.data)];\n return this.allThemes;\n }\n console.warn('FasterThemesService.initThemes: themeService.getTheme returned no data.', resp.error);\n return [];\n }\n\n const resp = await this.themeService.getThemes(apiKey);\n if (resp.success && resp.data?.length) {\n this.allThemes = resp.data.map((t: Theme) => this.toFasterTheme(t));\n return this.allThemes;\n }\n console.warn('FasterThemesService.initThemes: themeService.getThemes returned no data.', resp.error);\n return [];\n } catch (err) {\n console.error('FasterThemesService.initThemes failed; falling back to defaultStyle.', err);\n return [];\n }\n }\n\n /** Map the API's wrapped Theme document to a flat FasterTheme. */\n private toFasterTheme(t: Theme): FasterTheme {\n return {\n ...(t.data as Partial<FasterTheme>),\n id: t.objectId,\n companyId: t.companyId,\n };\n }\n\n getTheme(themeName?: any) {// object, blank, name or id\n var self = this;\n var theme;\n\n // Check my themes first!!!\n\n if (themeName !== null && typeof (themeName) == 'object') {\n self.parentTheme = themeName;\n return themeName\n }\n\n if (themeName && self.allThemes?.length) {\n theme = self.allThemes.find(p => p.name?.toLowerCase() == themeName.toLowerCase() || p.id == themeName)\n }\n if (theme) {\n self.parentTheme = theme;\n return theme;\n }\n if (self.parentTheme?.containers?.length)\n return self.parentTheme;\n return self.defaultStyle;\n }\n\n getPalette(themeName: any, paletteName: string) {\n var self = this;\n\n const theme = <FasterTheme>self.getTheme(themeName)\n if (!theme.palette || !paletteName?.length) return null;\n return theme.palette.find(p => p.colorName.toLowerCase() == paletteName.toLowerCase())\n }\n\n getContainer(themeName: any, container: string) {\n var self = this;\n\n const theme = <FasterTheme>self.getTheme(themeName)\n if (!theme.containers) return null;\n return theme.containers.find(p => p.containerName?.toLowerCase() == container.toLowerCase())\n }\n\n getButton(themeName: any, button: string | undefined) {\n var self = this;\n const theme = <FasterTheme>self.getTheme(themeName)\n if (theme?.buttonStyles) {\n const style = theme?.buttonStyles?.find(p => p.buttonName?.toLowerCase() == button?.toLowerCase())\n if (!style) {\n return theme.buttonStyles[0]\n } else {\n return style;\n }\n }\n if (self.defaultStyle?.buttonStyles && self.defaultStyle?.buttonStyles[0])\n return self.defaultStyle.buttonStyles[0];\n return null; // Should never happen\n }\n\n class(themeName?: any, className?: string) {\n var self = this;\n const theme = <FasterTheme>self.getTheme(themeName)\n\n if (!theme.classes) return \"\";\n\n const style = theme.classes.find(p => p.className?.toLowerCase() == className?.toLowerCase())\n if (style?.class)\n return style.class\n else return \"\";\n }\n\n typeObject(themeName?: any, typeName?: string) {\n var str = \"\";\n var self = this;\n const theme = self.getTheme(themeName)\n\n if (!theme.typeStyles) return;\n\n var type;\n if (!typeName)\n type = theme.typeStyles[0]; // for now\n else {\n type = theme.typeStyles.find((p: { typeName: string; }) => p.typeName.toLowerCase() == typeName.toLowerCase())\n if (!type) type = theme.typeStyles[0]; // for now\n }\n return type;\n }\n\n\n type(themeName?: any, typeName?: string) {\n var str = \"\";\n var self = this;\n const theme = self.getTheme(themeName)\n\n if (!theme.typeStyles) return str;\n\n var type;\n\n // synonyms\n if (typeName == \"headline1\") typeName = \"H1\"\n if (typeName == \"headline2\") typeName = \"H2\"\n if (typeName == \"headline3\") typeName = \"H3\"\n if (typeName == \"headline4\") typeName = \"H4\"\n if (typeName == \"headline5\") typeName = \"H5\"\n\n if (!typeName)\n type = theme.typeStyles[0]; // for now\n else {\n type = theme.typeStyles.find((p: any) => p.typeName.toLowerCase() == typeName.toLowerCase())\n if (!type) type = theme.typeStyles[0]; // for now\n }\n\n // Pallete takes precendence over local colors\n var colors;\n if (type.typePalette) {\n colors = this.setPalette(theme, type.typePalette)\n str += colors;\n }\n else if (!colors) {\n if (type.typeBackground)\n str += \"background-color: \" + type.typeBackground + \";\"\n if (type?.typeFontColor)\n str += \"color: \" + type.typeFontColor + \";\"\n }\n\n\n if (type.typeFont)\n str += \"font-family: \" + type.typeFont + \";\"\n if (type.typeFontSize) {\n str += \"font-size: \" + self.responsiveType(theme, type) + \"px;\"\n }\n\n if (type.typeFontWeight)\n str += \"font-weight: \" + type.typeFontWeight + \";\"\n\n if (type.typeFontAlignment)\n str += \"text-align: \" + type.typeFontAlignment + \";\"\n if (type.typeTextShadow)\n str += \"text-shadow: \" + type.typeTextShadow + \";\"\n\n if (type.typePadding)\n str += \"padding: \" + self.responsiveSpace(theme, type.typePadding, theme.responsivePaddingMin, theme.responsivePaddingMax) + \";\"\n\n if (type.typeMargin)\n str += \"margin: \" + self.responsiveSpace(theme, type.typeMargin, theme.responsiveMarginMin, theme.responsiveMarginMax) + ';'\n\n if (type.typeLineHeight)\n str += \"line-height: \" + type.typeLineHeight + \";\"\n\n // console.log (\"Type \", type, typeName, str)\n\n return str;\n }\n\n setPalette(theme: any, paletteName: string) {\n var str = \"\"\n var palette = this.getPalette(theme, paletteName)\n\n if (palette?.backgroundColor)\n str += \"background-color: \" + palette.backgroundColor + \";\"\n\n if (palette?.color)\n str += \"color: \" + palette.color + \";\"\n\n if (palette?.gradient)\n str += palette.gradient + ';'\n str = str.replace(\";;\", \";\")\n\n return str;\n }\n\n responsiveType(theme: FasterTheme, type: TypographyStyle) {\n var self = this;\n // Let's first apply auto-sizing if enabled\n\n var str = type.typeFontSize\n var numbers = str?.match(/\\d+/g)?.map(Number);\n if (!numbers) numbers = [14]\n var size = Number(numbers[0])\n var factor = self.typeFactor(theme, size)\n size = size * factor;\n // console.log(\"Font Size: \", size, factor);\n return size;\n }\n\n responsiveSpace(theme: FasterTheme, margin: string, min: number, max: number) {\n var self = this;\n var str = margin;\n\n var marginArray = margin.split(' ');\n\n var standardWidth = 1280;\n var screenWidth = 1280;\n var result = \"\";\n\n // No range no update\n if (typeof (min) != 'number') {\n // console.log (\"Not a number \", min)\n min = Number(min)\n // return margin\n }\n if (typeof (max) != 'number') {\n // console.log (\"Not a number \", max)\n max = Number(max)\n // return margin\n }\n\n screenWidth = this.screenWidth\n if (theme?.responsiveStandardWidth)\n standardWidth = theme.responsiveStandardWidth\n\n marginArray.forEach(function (item) {\n var numbers = item.match(/\\d+/g);\n var number;\n if (numbers?.length) number = Number(numbers[0])\n var operator = item.replace(/\\d/g, '');\n // console.log(\"Number/operator: \", number, operator)\n\n if (typeof (number) != 'number') result += operator + \" \";\n else {\n var size = number\n\n if (typeof (min) != 'number') min = 10;\n if (typeof (max) != 'number') max = 200;\n\n var factor = mapRange(screenWidth, 0, standardWidth, min / 100, max / 100)\n\n size = size * factor;\n size = roundToOneDecimal(size)\n // console.log(\"Factor: \", factor, );\n\n result += size.toString() + operator + \" \";\n }\n\n })\n // if (max==200)\n // console.log(\"result: \", margin, result, min, max );\n return result;\n }\n\n typeFactor(theme: FasterTheme, size: number) {\n var factor = (this.screenWidth)\n\n var min = 0.7;\n var max = 1.2;\n var standardWidth = 1980;\n\n if (theme?.responsiveStandardWidth)\n standardWidth = theme.responsiveStandardWidth\n\n if (theme?.responsiveFontSizeMin)\n min = theme.responsiveFontSizeMin / 100;\n\n if (theme?.responsiveFontSizeMax)\n max = theme.responsiveFontSizeMax / 100;\n // console.log(\"Type; \", standardWidth, min, max)\n factor = mapRange(factor, 0, standardWidth, min, max)\n return Number(factor.toFixed(1))\n }\n\n container(themeName?: any, containerName?: string | undefined) {\n var str: string = \"\";\n var self = this;\n\n const theme = self.getTheme(themeName)\n\n // console.log (\"THEME: \", theme)\n\n\n var container: any;\n if (containerName && theme.containers) {\n //@ts-ignore\n container = theme.containers.find((p: any) => p.containerName.toLowerCase() == containerName.toLowerCase())\n //if (!container && theme?.containers) container = theme.containers[0]\n // console.log (\"Container \", container,containerName);\n }\n if (theme.containers && !container)\n container = theme.containers[0];\n\n if (!container) return str;\n\n\n // Palette takes precendence over local colors\n var colors;\n if (container.containerPalette) {\n colors = this.setPalette(theme, container.containerPalette)\n str += colors;\n }\n else if (!colors) {\n if (container?.containerBackgroundGradient) {\n str += \"background-image: \" + container.containerBackgroundGradient\n }\n\n else if (container.containerBackground)\n str += \"background-color: \" + container.containerBackground + \";\"\n else str += \"background-color: rgba(255,255,255,0)\"\n\n }\n\n if (container?.backgroundImage?.length) {\n str += \"background-image: url(\" + container.backgroundImage + \");\"\n\n if (container.backgroundRepeat)\n str += \"background-repeat: \" + container.backgroundRepeat + ';'\n if (container.backgroundSize)\n str += \"background-size: \" + container.backgroundSize + ';'\n if (container.backgroundPosition)\n str += \"background-position: \" + container.backgroundPosition + ';'\n }\n\n if (container.containerBorder)\n str += \"border: \" + container.containerBorder + \";\"\n\n if (container.containerBoxShadow)\n str += \"box-shadow: \" + container.containerBoxShadow + \";\"\n\n if (container.containerMargin)\n str += \"margin: \" + self.responsiveSpace(theme, container.containerMargin, theme.responsiveMarginMin, theme.responsiveMarginMax) + ';'\n\n if (container.containerPadding)\n str += \"padding: \" + self.responsiveSpace(theme, container.containerPadding, theme.responsivePaddingMin, theme.responsivePaddingMax) + \";\"\n\n if (container.containerAlignment && !container.containerAlignmentV) {\n str += \"display: flex; justify-content: \" + container.containerAlignment + \";\"\n str += \"align-items: \" + container.containerAlignment + \";\"\n }\n else if (container.containerAlignment && container.containerAlignmentV) {\n str += \"display: flex; justify-content: \" + container.containerAlignment + \";\"\n str += \"align-items: \" + container.containerAlignmentV + \";\"\n }\n if (container.containerLayout) {\n str += \"flex-flow: \" + container.containerLayout + \";\"\n }\n if (container.containerWidth) {\n if (container.containerWidth == '100vw') {\n str += \"width: \" + this.screenWidth + 'px;'\n // console.log (\"container style \", str)\n }\n else\n str += \"width: \" + container.containerWidth + ';'\n }\n if (container.containerHeight) {\n str += \"height: \" + container.containerHeight + ';'\n }\n if (container.containerLineHeight) {\n str += \"line-height: \" + container.containerLineHeight + ';'\n }\n\n if (container.containerOverflowX) {\n str += \"overflow-x: \" + container.containerOverflowX + ';'\n }\n if (container.containerOverflowY) {\n str += \"overflow-y: \" + container.containerOverflowY + ';'\n }\n if (container.containerPosition) {\n str += \"position: \" + container.containerPosition + ';'\n }\n /* Add left,right,top,bottom */\n if (container.containerPositioning) {\n str += container.containerPositioning;\n }\n\n if (container.containerStyle) {\n str += container.containerStyle;\n }\n return str;\n }\n\n /* not used for now\n card(themeName?: any, cardName?: any) {\n var str = \"\";\n var self = this;\n \n const theme: any = self.getTheme(themeName)\n \n \n if (cardName && theme.cards) {\n const card = theme.cards.find((p: { cardName: any; }) => p.cardName == cardName)\n \n if (!card) return str;\n if (card.cardBackground)\n str = \"background-color: \" + card.cardBackground + \";\"\n \n if (card.cardBorder)\n str += \"border: \" + card.cardBorder + \";\"\n \n if (card.cardBoxShadow)\n str += \"box-shadow: \" + card.cardBoxShadow + \";\"\n \n if (card.cardMargin)\n str += \"margin: \" + card.cardMargin + \";\"\n \n if (card.cardPadding)\n str += \"padding: \" + card.cardPadding + \";\"\n \n if (card.cardAlignment) {\n str += \"display: flex; justify-content: \" + card.cardAlignment + \";\"\n str += \"align-items: \" + card.cardAlignment + \";\"\n }\n if (card.cardLayout) {\n str += \"flex-flow: \" + card.cardLayout + \";\"\n }\n return str;\n }\n else {\n if (theme.cardBackground)\n str = \"background-color: \" + theme.cardBackground + \";\"\n \n if (theme.cardBorder)\n str += \"border: \" + theme.cardBorder + \";\"\n \n if (theme.cardBoxShadow)\n str += \"box-shadow: \" + theme.cardBoxShadow + \";\"\n \n if (theme.cardMargin)\n str += \"margin: \" + theme.cardMargin + \";\"\n \n if (theme.cardPadding)\n str += \"padding: \" + theme.cardPadding + \";\"\n \n if (theme.cardAlignment) {\n str += \"display: flex; justify-content: \" + theme.cardAlignment + \";\"\n str += \"align-items: \" + theme.cardAlignment + \";\"\n }\n if (theme.cardLayout) {\n str += \"flex-flow: \" + theme.cardLayout + \";\"\n }\n }\n \n return str;\n }\n */\n accordionList(themeName: string | undefined) {\n var self = this;\n var list: never[] = [];\n const theme = <FasterTheme>self.getTheme(themeName)\n if (!theme) return list; // Should ALWAYS get theme\n\n\n if (theme.accordions?.length)\n theme.accordions.forEach(function (item) {\n //????? list.push(item.accordionName);\n })\n return list;\n\n\n }\n\n\n accordion(themeName?: any, accordionName?: string) {\n var str = \"\"\n var self = this;\n\n const theme: any = self.getTheme(themeName)\n\n // console.log (\"New Accordion Theme \", theme, accordionName)\n var acc: any;\n if (accordionName && theme.accordions)\n acc = theme.accordions.find((p: { accordionName: string; }) => p.accordionName?.length && p.accordionName.toLowerCase() == accordionName.toLowerCase())\n\n if (theme.accordions && !acc)\n acc = theme.accordions[0]; //default\n\n if (acc) {\n // Palette takes precendence over local colors\n var colors;\n if (acc.accordionPalette) {\n colors = this.setPalette(theme, acc.accordionPalette)\n str += colors;\n }\n else if (!colors) {\n\n if (acc.accordionBackground)\n str += \"background-color: \" + acc.accordionBackground + \";\"\n }\n\n if (acc.accordionBorder)\n str += \"border: \" + acc.accordionBorder + \";\"\n\n if (acc.accordionBoxShadow)\n str += \"box-shadow: \" + acc.accordionBoxShadow + \";\"\n\n if (acc.accordionWidth)\n str += \"width: \" + acc.accordionWidth + \";\"\n\n if (theme.responsiveMarginMin) {\n if (acc.accordionMargin)\n str += \"margin: \" + self.responsiveSpace(theme, acc.accordionMargin, theme.responsiveMarginMin, theme.responsiveMarginMax) + \";\"\n }\n\n if (theme.responsivePaddingMin) {\n if (acc.accordionPadding)\n str += \"padding: \" + self.responsiveSpace(theme, acc.accordionPadding, theme.responsivePaddingMin, theme.responsivePaddingMax) + \";\"\n }\n\n if (acc.accordionAlignment) {\n str += \"display: flex; justify-content: \" + acc.accordionAlignment + \";\"\n str += \"align-items: \" + acc.accordionAlignment + \";\"\n }\n if (acc.accordionLayout) {\n str += \"flex-flow: \" + acc.accordionLayout + \";\"\n\n }\n if (acc.accordionExtra)\n str += acc.accordionExtra\n }\n\n return str;\n }\n\n\n header(themeName?: any, accordionName?: string, expanded?: any, index?: any) {\n var str = \"cursor: pointer;\"\n var self = this;\n\n\n // console.log (\"Header: \", themeName, accordionName, expanded, index)\n\n const theme: any = self.getTheme(themeName)\n if (!theme) {\n console.log(\"WE CANNOT FIND YOUR THEME: \", themeName)\n return str;\n }\n\n if (accordionName && theme.accordions) {\n var acc = theme.accordions.find((p: { accordionName: string; }) => p.accordionName?.length && p.accordionName.toLowerCase() == accordionName.toLowerCase())\n // console.log (\"Your Accordion: \", acc, theme, themeName, accordionName)\n }\n if (theme.accordions && !acc)\n acc = theme.accordions[0]; //default \n\n if (acc) {\n\n if (expanded) {\n if (acc.headerOpenWidth == '100vw') {\n str += \"width: \" + self.screenWidth + 'px;'\n }\n else\n str += \"width: \" + acc.headerOpenWidth + ';'\n\n if (acc.headerOpenType)\n str += self.type(themeName, acc.headerOpenType)\n\n // Palette takes precendence over local colors\n var colors;\n if (acc.headerOpenPalette) {\n colors = this.setPalette(theme, acc.headerOpenPalette)\n str += colors;\n }\n else if (!colors) {\n if (acc.headerOpenBackground)\n str += \"background-color: \" + acc.headerOpenBackground + \";\"\n }\n\n if (acc.headerOpenBorder)\n str += \"border: \" + acc.headerOpenBorder + \";\"\n\n if (acc.headerOpenBoxShadow)\n str += \"box-shadow: \" + acc.headerOpenBoxShadow + \";\"\n\n if (acc.headerOpenMargin)\n str += \"margin: \" + self.responsiveSpace(theme, acc.headerOpenMargin, theme.responsiveMarginMin, theme.responsiveMarginMax) + \";\"\n\n if (acc.headerOpenPadding)\n str += \"padding: \" + self.responsiveSpace(theme, acc.headerOpenPadding, theme.responsivePaddingMin, theme.responsivePaddingMax) + \";\"\n\n if (acc.headerOpenAlignment) {\n str += \"display: flex; justify-content: \" + acc.headerOpenAlignment + \";\"\n str += \"align-items: \" + acc.headerOpenAlignment + \";\"\n }\n if (acc.headerOpenLayout) {\n str += \"flex-flow: \" + acc.headerOpenLayout + \";\"\n }\n if (acc.headerOpenExtra)\n str += acc.headerOpenExtra\n }\n else {\n if (acc.headerClosedWidth == '100vw') {\n str += \"width: \" + self.screenWidth + 'px;'\n }\n else\n str += \"width: \" + acc.headerClosedWidth + ';'\n\n if (acc.headerClosedType)\n str += self.type(themeName, acc.headerClosedType)\n\n // Palette takes precendence over local colors\n var colors;\n if (acc.headerClosedPalette) {\n colors = this.setPalette(theme, acc.headerClosedPalette)\n str += colors;\n }\n else if (!colors) {\n\n if (acc.headerClosedBackground)\n str += \"background-color: \" + acc.headerClosedBackground + \";\"\n }\n\n if (acc.headerClosedBorder)\n str += \"border: \" + acc.headerClosedBorder + \";\"\n\n\n if (acc.headerClosedBoxShadow)\n str += \"box-shadow: \" + acc.headerClosedBoxShadow + \";\"\n\n if (acc.headerClosedMargin)\n str += \"margin: \" + self.responsiveSpace(theme, acc.headerClosedMargin, theme.responsiveMarginMin, theme.responsiveMarginMax) + \";\"\n\n if (acc.headerClosedPadding)\n str += \"padding: \" + self.responsiveSpace(theme, acc.headerClosedPadding, theme.responsivePaddingMin, theme.responsivePaddingMax) + \";\"\n\n if (acc.headerClosedAlignment) {\n str += \"display: flex; justify-content: \" + acc.headerClosedAlignment + \";\"\n str += \"align-items: \" + acc.headerClosedAlignment + \";\"\n }\n if (acc.headerClosedLayout) {\n str += \"flex-flow: \" + acc.headerClosedLayout + \";\"\n }\n if (acc.headerClosedExtra)\n str += acc.headerClosedExtra\n }\n }\n else {\n // DEFAULT ACCORDION STYLING?? Maybe not.\n console.log(\"No accordions!\")\n }\n\n return str;\n }\n\n button(themeName?: any, buttonName?: string | undefined) {\n var str = \"\";\n var self = this;\n\n const theme: any = self.getTheme(themeName)\n\n const buttonStyle: any = self.getButton(theme, buttonName)\n if (!buttonStyle) return str;\n\n const type: any = self.typeObject(theme, buttonStyle.buttonTypeStyle) || {}\n\n // Pallete takes precendence over local colors\n var colors;\n if (buttonStyle.buttonPalette) {\n colors = self.setPalette(theme, buttonStyle.buttonPalette)\n str += colors;\n }\n if (!colors) {\n if (buttonStyle?.buttonBackground)\n str += \"background-color: \" + buttonStyle.buttonBackground + \";\"\n if (buttonStyle?.buttonColor) {\n str += \"color: \" + buttonStyle.buttonColor + \";\"\n }\n }\n\n if (buttonStyle?.buttonPadding)\n str += \"padding: \" + self.responsiveSpace(theme, buttonStyle.buttonPadding, theme.responsivePaddingMin, theme.responsivePaddingMax) + \";\"\n\n if (buttonStyle?.buttonMargin)\n str += \"margin: \" + self.responsiveSpace(theme, buttonStyle.buttonMargin, theme.responsiveMarginMin, theme.responsiveMarginMax) + \";\"\n\n if (buttonStyle?.buttonBorder) {\n str += \"border: \" + buttonStyle.buttonBorder + \";\"\n }\n else str += \"border: none;\"\n if (buttonStyle?.buttonRadius)\n str += \"border-radius: \" + buttonStyle.buttonRadius + \";\"\n if (buttonStyle?.buttonShadow)\n str += \"box-shadow: \" + buttonStyle.buttonShadow + \";\"\n if (type.typeFontSize) {\n str += \"font-size: \" + self.responsiveType(theme, type) + \"px;\"\n }\n if (type.typeFont)\n str += \"font-family: \" + type.typeFont + \";\"\n if (type.typeFontWeight)\n str += \"font-weight: \" + type.typeFontWeight + \";\"\n\n str += \"cursor: pointer; box-sizing: border-box;\"\n\n return str;\n }\n\n paddingAdjustment: any;\n paddingAdjust(theme: any, delta: any) {\n this.paddingAdjustment = delta;\n\n }\n\n\n // Firebase removed - no longer used\n // private watching: boolean = false;\n // private async watchThemes(docId: string) {\n // const app: FirebaseApp = (await this.authPromise).app\n // const themesQuery = query(collection(getFirestore(app), 'company', docId, 'themes'),\n // where(\"removed\",\"!=\", true))\n //\n // onSnapshot(themesQuery, async (snapshot) => {\n // snapshot.docChanges().forEach(async (change) => {\n // const themeId = change.doc.id;\n // //@ts-ignore: Ensure FasterTheme is correctly defined\n // const themeData: FasterTheme = change.doc.data();\n // themeData.id = themeId;\n // if (change.type === 'added') {\n // this.allThemes.push(themeData);\n // } else if (change.type === 'modified') {\n // const index = this.allThemes.findIndex((theme) => theme.id === themeId);\n // if (index !== -1) {\n // this.allThemes[index] = Object.assign(this.allThemes[index], themeData);\n // }\n // } else if (change.type === 'removed') {\n // const index = this.allThemes.findIndex((theme) => theme.id === themeId);\n // if (index !== -1) {\n // this.allThemes.splice(index, 1);\n // }\n // }\n // });\n // },\n // async (error: any) => {\n // console.error(\"Error watching themes: \", error);\n // console.log(\"using platform themes as fallback\");\n // const themesRef = collection(getFirestore(app), 'platform', 'OdCDgRWTZhTMzW8N0y9y', 'themes');\n // const themes = await getDocs(themesRef);\n // for (const doc of themes.docs) {\n // const data = doc.data() as FasterTheme;\n // data.id = doc.id;\n // this.allThemes.push(data);\n // }\n // })\n // }\n\ndefaultStyle: FasterTheme =\n{\n editedBy: \"napkinPackage\",\n responsiveMarginMax: 175,\n name: \"Default\",\n responsiveFontSizeMin: 70,\n responsiveName: \"removeName\",\n companyId: \"napkinPackage\",\n responsiveStandardWidth: 1980,\n id: \"napkinPackage\",\n responsivePaddingMax: 175,\n removed: false,\n responsivePaddingMin: 80,\n palette: [\n {\n colorName: \"BrandFocus\",\n backgroundColor: \" #85FFBD\",\n gradient: \"background-image: linear-gradient(45deg, #85FFBD 0%, #FFFB7D 100%)\",\n color: \"#00695c\"\n },\n {\n colorName: \"BrandFont\",\n color: \"0xffaaff\",\n gradient: \"background-image: linear-gradient(45deg, #45FA8D 0%, #00457D 100%)\",\n backgroundColor: \"#e1f5fe\"\n },\n {\n backgroundColor: \"#80cbc4\",\n colorName: \"Primary\",\n color: \"#5d4037\"\n },\n {\n gradient: \"background-image: radial-gradient(circle, rgba(117, 194, 224, 1) 0%, rgba(87, 160, 199, 1) 50%, rgba(83, 104, 237, 1) 100%)\",\n backgroundColor: \"#a6e4fc\",\n color: \"0xffaaff\",\n colorName: \"Settings\"\n },\n {\n backgroundColor: \"#4e342e\",\n color: \"#f5f5f5\",\n colorName: \"whiteOnBrown\"\n },\n {\n colorName: \"Share\",\n color: \"#0288d1\",\n backgroundColor: \"#adfcac\",\n gradient: \"\"\n }\n ],\n share: {\n writeAccess: \"Private\",\n publicWriteAccess: \"None\",\n readAccess: \"Private\",\n publicReadAccess: \"Anyone\"\n },\n responsiveFontSizeMax: 120,\n coreTheme: true,\n accordions: [\n {\n headerClosedBackground: \"#81d4fa\",\n accordionLayout: \"row wrap\",\n accordionAlignment: \"center\",\n headerOpenBackground: \"#81d4fa\",\n accordionPadding: \"12px\",\n accordionName: \"base\",\n headerClosedType: \"H4\",\n accordionExtra: \"\",\n accordionBoxShadow: \"\",\n headerClosedExtra: \"\",\n headerOpenBorder: \"1px solid white\",\n headerOpenType: \"H4\",\n headerClosedBorder: \"\",\n headerOpenMargin: \"8px\",\n headerOpenLayout: \"column\",\n headerClosedAlignment: \"center\",\n accordionBorder: \"\",\n headerOpenExtra: \"\",\n accordionMargin: \"12px\",\n headerClosedBoxShadow: \"5px 5px 10px 2px rgba(0, 0, 0, 0.5)\",\n headerOpenAlignment: \"Center\",\n headerClosedLayout: \"row wrap\",\n accordionBackground: \"0xffaaff\",\n headerClosedMargin: \"6px\",\n headerOpenPadding: \"8px\",\n headerClosedPadding: \"8px\"\n },\n {\n headerOpenExtra: \"\",\n accordionAlignment: \"center\",\n accordionBoxShadow: \"\",\n accordionExtra: \"\",\n headerOpenLayout: \"column\",\n accordionLayout: \"row wrap\",\n headerOpenAlignment: \"Center\",\n headerClosedBorder: \"2px solid gray\",\n headerClosedType: \"H4\",\n accordionName: \"Level 1\",\n accordionPadding: \"4px\",\n headerOpenMargin: \"1px\",\n accordionMargin: \"\",\n headerClosedPadding: \"8px\",\n headerOpenBackground: \"#d1c4e9\",\n accordionBackground: \"#b39ddb\",\n headerClosedMargin: \"2px\",\n accordionBorder: \"1px solid black\",\n headerClosedAlignment: \"center\",\n headerOpenType: \"H4\",\n headerClosedBoxShadow: \"\",\n headerClosedExtra: \"\",\n headerOpenPadding: \"8px\",\n headerClosedLayout: \"row wrap\",\n headerClosedBackground: \"#d1c4e9\"\n },\n {\n accordionExtra: \"\",\n headerOpenMargin: \"0px\",\n headerClosedExtra: \"\",\n accordionBackground: \"\",\n headerClosedBorder: \"\",\n accordionName: \"Level 2\",\n headerOpenExtra: \"\",\n headerOpenAlignment: \"Center\",\n headerClosedPadding: \"14px 12px\",\n headerClosedBoxShadow: \"inset -2px 0px 8px 6px #808080\",\n accordionBoxShadow: \"\",\n headerClosedType: \"H4\",\n accordionBorder: \"\",\n headerClosedMargin: \"6px\",\n headerOpenBoxShadow: \"inset -2px 0px 8px 6px #808080\",\n headerOpenType: \"H4\",\n headerOpenPadding: \"8px\",\n headerClosedBackground: \"#e3f2fd\",\n accordionMargin: \"\",\n accordionAlignment: \"space-evenly\",\n headerOpenLayout: \"row wrap\",\n headerOpenBackground: \"#e3f2fd\",\n accordionLayout: \"row wrap\",\n headerClosedAlignment: \"center\",\n headerClosedLayout: \"row wrap\"\n },\n {\n headerClosedLayout: \"row wrap\",\n accordionName: \"Level 3\",\n headerOpenPadding: \"\",\n accordionBackground: \"\",\n accordionMargin: \"0px\",\n headerClosedAlignment: \"center\",\n headerOpenPalette: \"Primary\",\n headerClosedPadding: \"12px 6px\",\n headerOpenType: \"H4\",\n headerOpenAlignment: \"Center\",\n accordionLayout: \"row wrap\",\n headerClosedBorder: \"\",\n headerClosedType: \"H4\",\n headerOpenBackground: \"#b0cad5\",\n headerClosedBoxShadow: \"\",\n headerOpenLayout: \"row wrap\",\n headerOpenMargin: \"8px\",\n accordionBoxShadow: \"\",\n accordionExtra: \"\",\n accordionAlignment: \"space-evenly\",\n headerClosedMargin: \"8px\",\n headerClosedExtra: \"\",\n headerClosedBackground: \"#b0cad5\",\n headerOpenExtra: \"\"\n },\n {\n headerClosedType: \"H4\",\n headerClosedBorder: \"1px solid blue\",\n headerOpenAlignment: \"Center\",\n accordionLayout: \"row wrap\",\n accordionAlignment: \"center\",\n headerOpenLayout: \"row wrap\",\n headerClosedPadding: \"14px\",\n accordionBackground: \"#c8e6c9\",\n headerClosedBoxShadow: \"3px 3px grey\",\n accordionName: \"Level 4\",\n headerOpenPadding: \"14px\",\n accordionBoxShadow: \"4px yellow\",\n headerOpenType: \"title\",\n headerClosedAlignment: \"center\",\n headerClosedExtra: \"\",\n headerOpenMargin: \"0px\",\n headerClosedMargin: \"2px\",\n accordionExtra: \"\",\n headerOpenExtra: \"\",\n headerClosedBackground: \"#dcedc8\",\n headerClosedLayout: \"row wrap\",\n headerOpenBackground: \"#b2dfdb\"\n },\n {\n headerClosedAlignment: \"center\",\n headerClosedBorder: \"1px solid blue\",\n headerClosedType: \"label\",\n accordionExtra: \"\",\n headerClosedExtra: \"\",\n accordionLayout: \"column\",\n headerOpenAlignment: \"Center\",\n headerOpenExtra: \"\",\n accordionBackground: \"#e1f5fe\",\n headerOpenLayout: \"row wrap\",\n headerOpenType: \"label\",\n accordionBoxShadow: \"4px yellow\",\n headerOpenPadding: \"0px\",\n headerClosedBoxShadow: \"\",\n headerClosedPadding: \"0px\",\n headerClosedBackground: \"#b3e5fc\",\n accordionName: \"Minimal\",\n accordionAlignment: \"center\",\n headerClosedMargin: \"0px\",\n headerOpenBackground: \"#81d4fa\",\n headerClosedLayout: \"row wrap\",\n headerOpenMargin: \"0px\"\n },\n {\n headerOpenAlignment: \"Center\",\n headerOpenBackground: \"0xffaaff\",\n headerClosedBackground: \"0xffaaff\",\n headerOpenWidth: \"100vw\",\n headerOpenExtra: \"\",\n headerOpenType: \"H4\",\n headerClosedType: \"H4\",\n headerOpenLayout: \"row wrap\",\n headerClosedLayout: \"row wrap\",\n accordionName: \"Settings\",\n headerClosedWidth: \"100vw\",\n headerClosedExtra: \"\",\n accordionExtra: \"\",\n accordionMargin: \"0px\",\n accordionBoxShadow: \"\",\n headerClosedAlignment: \"center\",\n headerClosedPalette: \"Settings\",\n headerOpenPalette: \"Settings\",\n accordionLayout: \"row wrap\",\n accordionBackground: \"0xffaaff\",\n headerClosedMargin: \"0px\",\n accordionWidth: \"100vw\",\n accordionPalette: \"Settings\",\n headerClosedBorder: \"\",\n headerClosedPadding: \"6px\",\n accordionPadding: \"0px\",\n accordionAlignment: \"center\",\n headerOpenMargin: \"0px\",\n headerClosedBoxShadow: \"\",\n headerOpenPadding: \"0px\"\n },\n {\n headerClosedPadding: \"8px\",\n headerOpenLayout: \"row wrap\",\n headerClosedBackground: \"#b5ffbb\",\n headerOpenMargin: \"4px\",\n headerClosedBorder: \"\",\n headerClosedExtra: \"\",\n accordionLayout: \"row wrap\",\n headerOpenType: \"H4\",\n accordionBoxShadow: \"\",\n headerClosedLayout: \"row wrap\",\n headerClosedType: \"H4\",\n accordionExtra: \"\",\n headerOpenExtra: \"\",\n headerClosedBoxShadow: \"inset -2px 0px 7px 6px #aaaaaa99\",\n accordionBackground: \"0xffaaff\",\n headerOpenBorder: \"\",\n accordionAlignment: \"space-evenly\",\n accordionName: \"Object\",\n headerOpenPadding: \"8px\",\n headerOpenBackground: \"#b5ffbb\",\n headerClosedMargin: \"6px\",\n headerOpenAlignment: \"Center\"\n },\n {\n headerClosedExtra: \"\",\n accordionLayout: \"row wrap\",\n headerClosedPadding: \"1px\",\n headerClosedType: \"body\",\n accordionExtra: \"\",\n headerOpenExtra: \"\",\n headerClosedLayout: \"row wrap\",\n headerOpenPadding: \"1px\",\n headerClosedMargin: \"0px\",\n accordionAlignment: \"center\",\n headerOpenMargin: \"0px\",\n headerClosedAlignment: \"center\",\n headerOpenAlignment: \"Center\",\n accordionBackground: \"0xffaaff\",\n headerOpenBackground: \"#eceff1\",\n headerOpenLayout: \"row wrap\",\n accordionBoxShadow: \"\",\n headerClosedBackground: \"#b0bec5\",\n headerClosedBorder: \"\",\n headerOpenType: \"body\",\n accordionName: \"Media Details\",\n headerClosedBoxShadow: \"\"\n },\n {\n accordionBackground: \"#e1f5fe\",\n headerClosedType: \"H3\",\n headerOpenExtra: \"\",\n accordionExtra: \"\",\n headerOpenAlignment: \"Center\",\n headerClosedLayout: \"row wrap\",\n headerOpenMargin: \"6px\",\n headerClosedBackground: \"#03a9f4\",\n accordionName: \"Docs\",\n headerOpenBackground: \"#b3e5fc\",\n headerOpenType: \"H3\",\n headerOpenLayout: \"row wrap\",\n headerClosedAlignment: \"center\",\n headerOpenPadding: \"6px\",\n headerClosedPadding: \"12px\",\n headerClosedMargin: \"12px\",\n accordionLayout: \"column\",\n headerClosedExtra: \"\",\n accordionAlignment: \"space-evenly\"\n },\n {\n headerOpenPadding: \"0px\",\n accordionMargin: \"0px\",\n headerOpenType: \"label\",\n headerOpenBackground: \"#94e4ed\",\n headerClosedAlignment: \"left\",\n accordionPadding: \"4px\",\n headerClosedMargin: \"0px\",\n headerClosedPadding: \"4px\",\n accordionExtra: \"\",\n accordionName: \"Create\",\n headerClosedExtra: \"\",\n accordionWidth: \"fit-content\",\n accordionAlignment: \"left\",\n headerClosedType: \"H5\",\n accordionLayout: \"row wrap\",\n accordionBackground: \"#c3fd95\",\n headerOpenExtra: \"\",\n headerClosedBackground: \"#c3fd95\",\n headerOpenMargin: \"0px\"\n },\n {\n headerOpenBackground: \"#81c784\",\n accordionLayout: \"row wrap\",\n accordionWidth: \"auto\",\n headerOpenType: \"H4\",\n headerOpenExtra: \"\",\n headerClosedType: \"H4\",\n headerClosedMargin: \"\",\n headerClosedExtra: \"\",\n accordionBackground: \"#c1e7ad\",\n headerClosedBackground: \"#c1e7ad\",\n headerOpenPadding: \"12px\",\n accordionExtra: \"\",\n accordionPadding: \"\",\n headerClosedBorder: \"1px solid gray\",\n headerOpenWidth: \"auto\",\n headerClosedWidth: \"auto\",\n accordionName: \"TeamChat\",\n headerClosedPadding: \" 12px\"\n },\n {\n headerClosedAlignment: \"center\",\n headerOpenType: \"label\",\n accordionBackground: \"#ffccbc\",\n headerOpenBackground: \"#ffccbc\",\n headerClosedType: \"label\",\n accordionWidth: \"100vw\",\n accordionExtra: \"\",\n headerOpenAlignment: \"Center\",\n accordionName: \"Style\",\n headerClosedBackground: \"#ffccbc\",\n headerClosedExtra: \"\",\n accordionLayout: \"column\",\n headerOpenExtra: \"\",\n accordionAlignment: \"space-evenly\"\n },\n {\n accordionBackground: \"0xffaaff\",\n accordionName: \"Share\",\n headerOpenExtra: \"\",\n accordionWidth: \"100vw\",\n headerClosedPalette: \"Share\",\n accordionLayout: \"column\",\n headerOpenAlignment: \"Center\",\n headerOpenBackground: \"#b39ddb\",\n headerClosedAlignment: \"center\",\n accordionAlignment: \"space-evenly\",\n headerClosedType: \"label\",\n accordionPalette: \"Share\",\n headerClosedBackground: \"0xffaaff\",\n accordionExtra: \"\",\n headerOpenType: \"label\",\n headerClosedExtra: \"\"\n },\n {\n headerClosedBoxShadow: \"rgba(50, 50, 93, 0.25) 0px 30px 60px -12px inset, rgba(0, 0, 0, 0.3) 0px 18px 36px -18px inset\",\n accordionAlignment: \"center\",\n headerClosedType: \"H5\",\n accordionBoxShadow: \"rgba(50, 50, 93, 0.25) 0px 30px 60px -12px inset, rgba(0, 0, 0, 0.3) 0px 18px 36px -18px inset\",\n headerOpenMargin: \"0px\",\n headerClosedBorder: \"\",\n accordionExtra: \"\",\n headerClosedLayout: \"row wrap\",\n accordionPadding: \"0px\",\n headerOpenExtra: \"\",\n headerClosedBackground: \"#80cbc4\",\n headerClosedMargin: \"2px 2px\",\n headerClosedPadding: \"12px 30px\",\n accordionName: \"UI\",\n headerOpenType: \"label\",\n accordionBackground: \"#b2dfdb\",\n accordionLayout: \"row wrap\",\n headerOpenBackground: \"#80cbc4\",\n accordionMargin: \"0px\",\n accordionBorder: \"\",\n headerOpenLayout: \"row wrap\",\n headerClosedExtra: \"\",\n headerOpenPadding: \"6px 12px\"\n },\n {\n accordionExtra: \"\",\n headerOpenExtra: \"\",\n headerOpenBackground: \"#bcaaa4\",\n accordionBackground: \"#d7ccc8\",\n headerClosedType: \"H4\",\n accordionName: \"Chat Bots\",\n headerClosedExtra: \"\",\n headerOpenType: \"H4\",\n headerClosedBackground: \"#d7ccc8\"\n },\n {\n headerClosedExtra: \"\",\n headerClosedBackground: \"#81d4fa\",\n accordionAlignment: \"space-evenly\",\n accordionExtra: \"\",\n headerOpenMargin: \"0px\",\n headerOpenExtra: \"\",\n headerClosedMargin: \"12px\",\n accordionPadding: \"0px\",\n accordionMargin: \"0px\",\n accordionLayout: \"row wrap\",\n accordionPalette: \"BrandFocus\",\n accordionName: \"Team\",\n accordionBackground: \"0xffaaff\",\n headerOpenPadding: \"0px\",\n headerClosedType: \"title\",\n headerOpenBackground: \"0xffaaff\",\n headerClosedPadding: \"12px\",\n headerOpenType: \"label\"\n },\n {\n headerOpenType: \"H3\",\n headerOpenBackground: \"0xffaaff\",\n headerOpenMargin: \"10px\",\n accordionExtra: \"\",\n headerClosedPadding: \"6px\",\n accordionLayout: \"row wrap\",\n headerClosedBackground: \"#ffe0b2\",\n accordionPadding: \"20px\",\n accordionName: \"Sheet\",\n headerOpenExtra: \"\",\n headerClosedBorder: \"2px groove #F54927\",\n accordionBackground: \"#ede7f6\",\n accordionAlignment: \"space-evenly\",\n headerClosedType: \"H3\",\n headerClosedExtra: \"\",\n headerClosedMargin: \"10px\"\n },\n {\n headerClosedBackground: \"#b2ebf2\",\n headerOpenLayout: \"row wrap\",\n accordionExtra: \"\",\n headerClosedExtra: \"\",\n headerClosedLayout: \"row wrap\",\n headerOpenType: \"H4\",\n headerOpenBackground: \"0xffaaff\",\n headerOpenBoxShadow: \"\",\n accordionLayout: \"row wrap\",\n accordionBoxShadow: \"\",\n headerClosedPadding: \"12px\",\n headerClosedType: \"H4\",\n headerOpenAlignment: \"Left\",\n headerClosedAlignment: \"center\",\n accordionName: \"App\",\n headerOpenWidth: \"\",\n headerOpenExtra: \"\",\n headerClosedMargin: \"12px\",\n accordionBackground: \"#b2dfdb\",\n accordionAlignment: \"space-evenly\",\n headerClosedBoxShadow: \"6px 4px 3px gray\"\n },\n {\n headerClosedType: \"title\",\n headerClosedBoxShadow: \"inset 0 0 10px rgba(0, 0, 0, 0.5)\",\n accordionLayout: \"row wrap\",\n accordionBackground: \"#bbdefb\",\n accordionAlignment: \"center\",\n accordionExtra: \"\",\n headerOpenExtra: \"\",\n headerClosedMargin: \"4px\",\n headerOpenBackground: \"#e3f2fd\",\n headerOpenType: \"title\",\n headerClosedExtra: \"\",\n accordionBoxShadow: \"\",\n headerClosedPadding: \"2px 10px\",\n accordionName: \"Report\",\n accordionPadding: \"0px\",\n headerClosedBackground: \"#90caf9\",\n accordionMargin: \"\"\n }\n ],\n responsiveMarginMin:80,\n containers: [\n {\n containerBackground: \"#eceff1\",\n containerLayout: \"column\",\n containerAlignmentV: \"center\",\n containerName: \"Data Entry\",\n containerBorder: \"none\",\n containerStyle: \"border-radius: 9px;\",\n containerPadding: \"12px 6px\",\n containerAlignment: \"center\",\n containerMargin: \"12px 6px\",\n containerBoxShadow: \"2px 3px 3px gray\",\n containerPosition: \"relative\"\n },\n {\n containerHeight: \"80vh\",\n containerPadding: \"4px\",\n containerName: \"Tall\",\n containerBackground: \"\",\n containerAlignment: \"center\",\n containerPosition: \"relative\",\n containerLineHeight: \"150%\",\n containerStyle: \"border-radius: 12px;\",\n containerWidth: \"33vw\",\n containerBoxShadow: \"3px 5px 5px gray\",\n containerAlignmentV: \"center\",\n containerLayout: \"column\",\n containerBorder: \"1px solid gray\",\n containerMargin: \"6px\"\n },\n {\n containerBackground: \"0xffaaff\",\n containerStyle: \"border-radius: 12px;\",\n containerAlignmentV: \"center\",\n containerMargin: \"0px\",\n containerPosition: \"relative\",\n containerLayout: \"row wrap\",\n containerHeight: \"33vh\",\n containerBorder: \"\",\n containerName: \"Wide\",\n containerWidth: \"100vw\",\n containerBoxShadow: \"\",\n containerAlignment: \"center\",\n containerPadding: \"4px\"\n },\n {\n containerLayout: \"row wrap\",\n containerPadding: \"0px 0px\",\n containerOverflowX: \"scroll\",\n containerBorder: \"none\",\n containerAlignment: \"center\",\n containerName: \"Full Width\",\n containerBoxShadow: \"\",\n containerWidth: \"100vw\",\n containerPosition: \"relative\",\n containerStyle: \"\",\n // backgroundImage: \"\",\n containerAlignmentV: \"center\",\n containerBackground: \"#cfdbe7\",\n containerBackgroundGradient: \"\",\n containerOverflowY: \"scroll\",\n containerMargin: \"0px\"\n },\n {\n containerPosition: \"relative\",\n containerBoxShadow: \"3px 5px 5px gray\",\n containerBackground: \"0xffaaff\",\n containerMargin: \"6px\",\n containerPadding: \"0px\",\n containerAlignmentV: \"center\",\n containerLayout: \"row wrap\",\n containerName: \"Media\",\n containerAlignment: \"center\",\n containerStyle: \"border-radius: 12px;\",\n containerWidth: \"25vw\",\n containerBorder: \"none\"\n },\n {\n containerStyle: \"\",\n containerPadding: \"4px\",\n containerBoxShadow: \"\",\n containerBackground: \"0xffaaff\",\n containerLayout: \"row wrap\",\n containerOverflowX: \"hidden\",\n containerOverflowY: \"auto\",\n containerHeight: \"100px\",\n containerAlignmentV: \"center\",\n containerPosition: \"relative\",\n containerMargin: \"\",\n containerAlignment: \"center\",\n containerName: \"Scroller\",\n containerBorder: \"none\",\n containerWidth: \"100vw\"\n },\n {\n containerStyle: \"\",\n containerBackground: \"#cfd8dc55\",\n containerPadding: \"6px\",\n containerBoxShadow: \"\",\n containerName: \"Sticky\",\n containerAlignmentV: \"center\",\n containerMargin: \"6px\",\n containerBorder: \"none\",\n containerLayout: \"row wrap\",\n containerPositioning: \"top: 0;\",\n containerAlignment: \"center\",\n containerPosition: \"sticky\",\n containerHeight: \"auto\"\n },\n {\n containerBackground: \"0xffaaff\",\n containerBoxShadow: \"\",\n containerBorder: \"\",\n containerLayout: \"row wrap\",\n containerAlignmentV: \"center\",\n containerName: \"1/3 Width\",\n containerPadding: \"0px\",\n containerWidth: \"33%\",\n containerAlignment: \"center\",\n containerBackgroundGradient: \"\",\n containerMargin: \"0px\",\n containerStyle: \"\"\n },\n {\n containerLayout: \"column\",\n containerName: \"Messages\",\n containerBackground: \"#ffb74d\",\n containerBorder: \"1px solid white\",\n containerMargin: \"12px 0px\",\n containerLineHeight: \"150%\"\n },\n {\n containerAlignmentV: \"center\",\n containerName: \"Report\",\n containerLayout: \"column\",\n containerOverflowX: \"scroll\",\n containerHeight: \"auto\",\n containerBackground: \"#f0edf5\",\n containerOverflowY: \"scroll\",\n containerMargin: \"\",\n containerBorder: \"2px solid black\"\n },\n {\n containerMargin: \"0px\",\n containerPadding: \"0px\",\n containerWidth: \"66%\",\n containerName: \"2/3 Width\",\n containerBackground: \"0xffaaff\"\n },\n {\n containerBackground: \"0xffaaff\",\n containerPadding: \"6px\",\n containerMargin: \"6px\",\n containerLayout: \"column\",\n containerAlignmentV: \"center\",\n containerBorder: \"2px solid green\",\n containerPalette: \"BrandFocus\",\n containerName: \"teamApp\",\n containerAlignment: \"center\"\n },\n {\n containerLayout: \"column\",\n containerName: \"reportHeader\",\n containerPalette: \"BrandFocus\",\n containerMargin: \"10px\",\n containerPadding: \"8px\",\n containerBackground: \"0xffaaff\"\n },\n {\n containerBackground: \"#f5f5f5\",\n containerName: \"Inactive\"\n },\n {\n containerName: \"Full Screen Media\",\n containerBorder: \"3px light blue\",\n containerLayout: \"column\",\n containerHeight: \"auto\",\n containerBackground: \"0xffaaff\",\n containerWidth: \"100vw\",\n containerPadding: \"20px\"\n },\n {\n containerPadding: \"15px\",\n containerWidth: \"50%\",\n containerName: \"Half Width\",\n containerBackground: \"0xffaaff\"\n }\n ],\n buttonStyles: [\n {\n buttonPadding: \"8px 6px\",\n buttonMargin: \"6px\",\n buttonRadius: \"10px\",\n buttonTypeStyle: \"label\",\n buttonBorder: \"1px light blue solid\",\n buttonName: \"Default Style\",\n buttonBackground: \"#283593\",\n buttonShadow: \" 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)\",\n buttonColor: \"#ffffff\"\n },\n {\n buttonBorder: \"1px solid gray\",\n buttonTypeStyle: \"label\",\n buttonShadow: \" 0 2px 4px 0 rgba(0,0,0,0.2), 0 3px 6px 0 rgba(0,0,0,0.19)\",\n buttonMargin: \"0px\",\n buttonBackground: \"#80deea\",\n buttonColor: \"#000000\",\n buttonName: \"Item Select\",\n buttonPadding: \"8px 6px\",\n buttonRadius: \"0px\"\n },\n {\n buttonShadow: \" 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)\",\n buttonColor: \"#4527a0\",\n buttonPadding: \"8px 6px\",\n buttonBorder: \"none\",\n buttonTypeStyle: \"label\",\n buttonRadius: \"8px\",\n buttonName: \"Create\",\n buttonMargin: \"6px\",\n buttonBackground: \"#b8ff82\"\n },\n {\n buttonTypeStyle: \"label\",\n buttonBackground: \"#ad1457\",\n buttonMargin: \"8px\",\n buttonRadius: \"8px\",\n buttonShadow: \" 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)\",\n buttonName: \"Delete\",\n buttonColor: \"#fafafa\",\n buttonPadding: \"8px 6px\",\n buttonBorder: \"none\"\n },\n {\n buttonRadius: \"0px\",\n buttonMargin: \"8px\",\n buttonTypeStyle: \"label\",\n buttonColor: \"#bdbdbd\",\n buttonShadow: \"none\",\n buttonBorder: \"none\",\n buttonName: \"Disabled\",\n buttonBackground: \"#e0e0e0\",\n buttonPadding: \"8px 6px\"\n },\n {\n buttonName: \"Highlight\",\n buttonShadow: \" 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)\",\n buttonBackground: \"#BBDEFB\",\n buttonTypeStyle: \"label\",\n buttonMargin: \"8px\",\n buttonColor: \"#ff8a65\",\n buttonPadding: \"8px 6px\",\n buttonPalette: \"BrandFocus\",\n buttonRadius: \"3px\",\n buttonBorder: \"none\"\n },\n {\n buttonMargin: \"8px\",\n buttonColor: \"#ffffff\",\n buttonShadow: \" 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)\",\n buttonName: \"Function\",\n buttonPadding: \"8px 6px\",\n buttonTypeStyle: \"label\",\n buttonBorder: \"none\",\n buttonBackground: \"#039be5\"\n },\n {\n buttonRadius: \"12px\",\n buttonMargin: \"8px\",\n buttonColor: \"0xffaaff\",\n buttonPadding: \"8px 12px\",\n buttonBackground: \"#c8e6c9\",\n buttonTypeStyle: \"label\",\n buttonShadow: \" 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)\",\n buttonBorder: \"none\",\n buttonName: \"Edit\"\n },\n {\n buttonPadding: \"8px 6px 8px 16px\",\n buttonMargin: \"8px\",\n buttonBackground: \"#455a64\",\n buttonRadius: \"0px 18px 18px 0px\",\n buttonColor: \"#fff59d\",\n buttonName: \"Action\",\n buttonShadow: \" 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)\",\n buttonTypeStyle: \"label\"\n },\n {\n buttonColor: \"#000000\",\n buttonBackground: \"#e0f7fa\",\n buttonBorder: \"1px solid gray\",\n buttonShadow: \"none\",\n buttonName: \"cell\",\n buttonMargin: \"0px\",\n buttonPadding: \"0px\",\n buttonTypeStyle: \"label\"\n },\n {\n buttonMargin: \"6px\",\n buttonPadding: \"8px 6px\",\n buttonColor: \"#3949ab\",\n buttonName: \"Logic\",\n buttonTypeStyle: \"subtitle\",\n buttonBackground: \"#bcaaa4\",\n buttonBorder: \"2px solid black\"\n },\n {\n buttonTypeStyle: \"Jade\",\n buttonName: \"Jade\",\n buttonMargin: \"3px\",\n buttonColor: \"0xffaaff\",\n buttonBackground: \"#f3e5f5\",\n buttonPadding: \"8px 6px\"\n },\n {\n buttonMargin: \"6px\",\n buttonBackground: \"#ffecb3\",\n buttonRadius: \"9px\",\n buttonName: \"Cancel\",\n buttonPadding: \"8px 6px\",\n buttonTypeStyle: \"label\",\n buttonColor: \"#546e7a\"\n }\n ],\n createdBy: \"napkinPackage\",\n typeStyles: [\n {\n typeFont: \"Noto Sans\",\n typeName: \"H1\",\n typeBackground: \"0xffaaff\",\n typePadding: \"6px 4px\",\n typeFontColor: \"#0e0000\",\n typeFontWeight: \"700\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFontSize: \"35px\"\n },\n {\n typeFontColor: \"#000000\",\n typeName: \"H2\",\n typeBackground: \"0xffaaff\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFont: \"Noto Sans\",\n typeFontWeight: \"700\",\n typeFontSize: \"28px\",\n typePadding: \"6px 4px\"\n },\n {\n typeFontSize: \"24px\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFontColor: \"#080000\",\n typeBackground: \"0xffaaff\",\n typeName: \"H3\",\n typePadding: \"\",\n typeFont: \"Noto Sans\",\n typeFontWeight: \"600\"\n },\n {\n typeBackground: \"0xffaaff\",\n typePadding: \"\",\n typeFont: \"Noto Sans\",\n typeName: \"H4\",\n typeFontSize: \"19px\",\n typeFontColor: \"0xffaaff\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFontWeight: \"600\"\n },\n {\n typeFontAlignment: \"center\",\n typeBackground: \"0xffaaff\",\n typeFontColor: \"#070000\",\n typeName: \"H5\",\n typeFontSize: \"17px\",\n typePadding: \"\",\n typeFontWeight: \"600\",\n typeFont: \"Noto Sans\",\n typeTextShadow: \"\"\n },\n {\n typeFontSize: \"14px\",\n typeLineHeight: \"200%\",\n typeBackground: \"0xffaaff\",\n typePadding: \"\",\n typeFont: \"Noto Sans\",\n typeFontColor: \"0xffaaff\",\n typeFontWeight: \"500\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeName: \"body\",\n typeMargin: \"\"\n },\n {\n typeFontWeight: \"500\",\n typeName: \"label\",\n typeFont: \"Noto Sans\",\n typeMargin: \"\",\n typeFontColor: \"#000000\",\n typeFontAlignment: \"center\",\n typePadding: \"\",\n typeBackground: \"0xffaaff\",\n typeFontSize: \"19px\",\n typeTextShadow: \"1px 1px 1px #cfd8dc\"\n },\n {\n typeTextShadow: \"1px 1px 2px gray\",\n typeFont: \"Noto Sans\",\n typeBackground: \"0xffaaff\",\n typeFontWeight: \"600\",\n typeFontColor: \"#303f9f\",\n typeFontSize: \"17px\",\n typePadding: \"4px\",\n typeName: \"user\",\n typeMargin: \"4px\"\n },\n {\n typePadding: \"6px 4px\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFontWeight: \"900\",\n typeName: \"display\",\n typeFont: \"Courier\",\n typeFontSize: \"14px\",\n typeBackground: \"0xffaaff\",\n typeFontColor: \"#00796b\"\n },\n {\n typePadding: \"2px 4px\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFontWeight: \"500\",\n typeFontAlignment: \"center\",\n typeBackground: \"0xffaaff\",\n typeFont: \"Noto Serif\",\n typeFontColor: \"#000000\",\n typeName: \"title\",\n typeFontSize: \"23px\",\n typeMargin: \"2px 4px\"\n },\n {\n typePadding: \"4px\",\n typeBackground: \"0xffaaff\",\n typeFontColor: \"0xffaaff\",\n typeFontSize: \"15px\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFont: \"Noto Serif\",\n typeName: \"subtitle\",\n typeFontWeight: \"600\"\n },\n {\n typeMargin: \"12px\",\n typePalette: \"BrandFocus\",\n typeName: \"Focus\",\n typeBorder: \"2px solid red\",\n typeFontWeight: \"600\",\n typeBackground: \"\",\n typeFontColor: \"\",\n typePadding: \"8px\",\n typeFont: \"Verdana\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFontSize: \"27px\"\n },\n {\n typeBackground: \"0xffaaff\",\n typeFontColor: \"#ffffff\",\n typeName: \"white\",\n typeTextShadow: \"1px 1px 2px gray\",\n typeFontSize: \"35px\",\n typeFont: \"Noto Sans\",\n typePadding: \"6px 4px\",\n typeFontWeight: \"700\"\n },\n {\n typeMargin: \"4px\",\n typeFont: \"courier\",\n typeFontWeight: \"600\",\n typeLineHeight: \"1.5\",\n typeFontColor: \"#1259c8\",\n typePadding: \"4px\",\n typeBackground: \"0xffaaff\",\n typeName: \"Jade\",\n typeFontSize: \"19px\"\n }\n ],\n createdAt: 1720378730412,\n classes: [\n {\n class: \"color: blue;\",\n className: \"color-blue\"\n },\n {\n class: \"justify-content: flex-end;\\njustify-self: flex-end;\",\n className: \"justifyRight\"\n }\n ],\n editedAt: 1720378730412\n};\n\n // Firebase removed - no longer used\n // private async login() {\n // const [auth, initConfig] = await Promise.all([\n // this.authPromise,\n // this.initThemesPromise\n // ]);\n // onAuthStateChanged(auth, async (user) => {\n // if (!user) {\n // console.log('User signed out');\n // } else {\n // await user.getIdToken(true)\n // }\n // });\n // return await firstValueFrom(this.getUid(auth))\n // }\n //\n // private getUid(auth: Auth): Observable<string | null> {\n // return new Observable((observer) => {\n // const unsubscribe = onAuthStateChanged(\n // auth,\n // (user: User | null) => {\n // observer.next(user?.uid || null);\n // observer.complete();\n // },\n // (error) => {\n // console.error('Auth state error:', error);\n // observer.error(error);\n // }\n // );\n // return { unsubscribe };\n // }).pipe(map((uid: any) => uid),\n // catchError((error) => {\n // console.error('Error retrieving user UID:', error);\n // return of(null);\n // })\n // );\n // }\n\n}\nfunction mapRange(value: number, inMin: number, inMax: number, outMin: number, outMax: number) {\n return (value - inMin) * (outMax - outMin) / (inMax - inMin) + outMin;\n}\nfunction roundToOneDecimal(num: number) {\n return Math.round(num * 10) / 10;\n}\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({\n selector: \"[accordionContent]\",\n standalone: false\n})\nexport class AccordionContent {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({\n selector: \"[accordionHeader]\",\n standalone: false\n})\nexport class AccordionHeader {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({\n selector: \"[accordionTitle]\",\n standalone: false\n})\nexport class AccordionTitle {\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","import { ContentChild, Directive, Input } from \"@angular/core\";\nimport { AccordionContent } from \"./accordion-content.directive\";\nimport { AccordionHeader } from \"./accordion-header.directive\";\nimport { AccordionTitle } from \"./accordion-title.directive\";\n\n@Directive({\n selector: \"accordion-item\",\n standalone: false\n})\nexport class AccordionItem {\n @Input() title = \"\";\n @Input() disabled = false;\n @Input() expanded = false;\n @Input() closeOther?: string;\n @Input() loaded = false;\n @ContentChild(AccordionContent) content!: AccordionContent;\n @ContentChild(AccordionTitle, { descendants: false }) customTitle!: AccordionTitle;\n @ContentChild(AccordionHeader, { descendants: false }) customHeader!: AccordionHeader;\n\n collapse() {\n this.expanded = false;\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'getToggleFunction',\n standalone: false\n})\nexport class TogglePipe implements PipeTransform{\n /**\n * Make the toggle function available to be called from\n * outside.\n * @param index - index of the accordion item\n */\n transform(i: number, toggleFn: Function){\n return () => toggleFn(i);\n }\n}","/* Copyright © 2023-2025 Napkin Apps Corp. All rights reserved. */\n\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n inject,\n Input,\n Output,EventEmitter,\n OnInit,\n QueryList,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { map } from 'rxjs/operators'\nimport { merge, of } from \"rxjs\";\nimport { FasterTheme, FasterThemesService } from \"../faster-themes.service\";\nimport { AccordionItem } from \"./directives/accordion-item.directive\"\n\n@Component({\n selector: 'accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('contentExpansion', [\n state('expanded', style({ height: '*', opacity: 1, visibility: 'visible', overflow: 'visible' })),\n state('collapsed', style({ width: 'min-content', height: '0px', opacity: 0, visibility: 'hidden', overflow: 'hidden' })),\n transition('expanded <=> collapsed', animate('200ms cubic-bezier(.37,1.04,.68,.98)')),\n ]),\n ],\n standalone: false\n})\nexport class AccordionComponent implements OnInit, AfterViewInit{\n expanded = new Set<number>();\n /**\n * Decides if the single item will be open at once or not.\n * In collapsing mode, toggling one would collapse others\n */\n @Input() name!: string;\n @Input() collapsing = false;\n @Input() theme!: FasterTheme | string;\n @Input() themeName!: FasterTheme | string;\n @Input() accordionName!: string | undefined;\n @Input() focus: boolean = false\n @Input() showCaret: boolean = false\n @Output() headerClicked = new EventEmitter<any>();\n\n \n @ContentChildren(AccordionItem) items!: QueryList<AccordionItem>;\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n public fasterThemes: FasterThemesService,\n private readonly cdr: ChangeDetectorRef) {}\n\n ngOnInit() {\n if (this.collapsing && this.focus) this.focus = false;\n const input = this.theme ?? this.themeName;\n if (typeof input === 'string') {\n this.themeName = this.fasterThemes?.getTheme(input);\n } else if (input != null) {\n this.themeName = input as FasterTheme;\n }\n // If no theme provided, template calls fall back to parentTheme via getTheme(undefined)\n this.fasterThemes.resize$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.cdr.markForCheck());\n }\n\n ngAfterViewInit() {\n merge(this.items.changes, of(this.items))\n .pipe(\n map(() => this.items.toArray()),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((items) => {\n items.forEach((item, index) => {\n if (item.expanded) {\n this.expanded.add(index);\n }\n });\n this.cdr.markForCheck();\n });\n }\n\n collapseAll() {\n this.expanded.clear();\n this.items?.forEach(item => item.collapse());\n this.cdr.markForCheck();\n }\n\n toggleState = (index: number): boolean => {\n const itemsArray = this.items.toArray();\n if (this.expanded.has(index)) {\n this.expanded.delete(index);\n if (this.headerClicked) {\n this.headerClicked.emit({index:index, open:false});\n }\n return false;\n } else {\n if (this.collapsing) {\n this.expanded.clear();\n }\n this.expanded.add(index);\n if (!itemsArray[index]?.loaded) {\n itemsArray[index].loaded = true;\n }\n if (this.headerClicked) {\n this.headerClicked.emit({index:index, open:true});\n }\n return true;\n }\n };\n\n activeStyle (index: number) {\n return this.expanded.has(index)\n }\n\n onHeaderClick(event: Event, index: number, item: any) {\n event.stopPropagation();\n let opened = false;\n if (!item.disabled) {\n opened = this.toggleState(index);\n }\n if (opened && item.closeOther) {\n this.closeOtherAccordion(item.closeOther);\n }\n }\n\n private closeOtherAccordion(targetTitle: string) {\n this.items.forEach((accordion, i) => {\n if (accordion.title === targetTitle) {\n this.expanded.delete(i);\n accordion.collapse();\n }\n });\n }\n}","<section [style]=\"fasterThemes.accordion(themeName, accordionName)\">\n <div *ngFor=\"let item of items;index as i\" \n [class.disabled]=\"item.disabled\" \n [class.active]=\"expanded.has(i)\"\n [class.hidden]=\"focus && expanded && expanded.size && \n expanded.size > 0 && !expanded.has(i)\">\n <ng-container \n [ngTemplateOutlet]=\"(item?.customHeader?.templateRef || defaultHeader)\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: i, toggle: i | getToggleFunction: toggleState}\">\n </ng-container>\n <div [class.expanded]=\"expanded.has(i)\" \n [style.display]=\"expanded.has(i) ? 'initial' : 'none'\">\n <ng-container *ngIf=\"item.loaded || item.expanded\">\n <ng-container *ngTemplateOutlet=\"item?.content?.templateRef || null\">\n </ng-container>\n </ng-container>\n </div>\n </div>\n</section>\n\n<ng-template #defaultHeader let-item let-index=\"index\">\n <header [style]=\"fasterThemes.header(themeName, accordionName, activeStyle(index), index)\"\n (click)=\"onHeaderClick($event, index, item)\">\n <ng-container *ngTemplateOutlet=\"item?.customTitle?.templateRef || defaultTitle\"></ng-container>\n <span *ngIf=\"showCaret\" class=\"accordion__caret\" [class.accordion__caret--open]=\"expanded.has(index)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\" width=\"36\" height=\"36\" aria-hidden=\"true\">\n <path d=\"M7 10l5 5 5-5z\" fill=\"currentColor\"/>\n </svg>\n </span>\n </header>\n <ng-template #defaultTitle>\n <p class=\"accordion__title\">{{item?.title}}</p>\n </ng-template>\n</ng-template>","/* Copyright © 2023-2025 Napkin Apps Corp. All rights reserved. */\n\nimport { Directive, ElementRef, Input, OnChanges } from '@angular/core';\nimport { FasterThemesService } from '../faster-themes.service';\n\n@Directive({\n selector: '[nColor]',\n standalone: false\n})\nexport class nColorDirective implements OnChanges {\n @Input() theme!: any;\n @Input() color!: string;\n\n // Selector-aliased form: <div nColor=\"Primary\" [theme]=\"t\">\n @Input('nColor') set nColor(v: string) {\n if (v !== undefined && v !== '') this.color = v;\n }\n\n private appliedProps = new Set<string>();\n\n constructor(private el: ElementRef, private fasterThemes: FasterThemesService) { }\n\n ngOnChanges() {\n this.clearAppliedStyles();\n this.apply();\n }\n\n private apply() {\n const theme = this.fasterThemes.getTheme(this.theme);\n const palette = this.fasterThemes.getPalette(theme, this.color);\n if (!palette) return;\n\n if (palette.backgroundColor)\n this.setStyle('background-color', palette.backgroundColor as string);\n if (palette.color)\n this.setStyle('color', palette.color as string);\n\n if (palette.gradient?.startsWith('background-image:'))\n this.setStyle('background-image', palette.gradient.replace('background-image:', ''));\n else if (palette.gradient?.startsWith('background-color:'))\n this.setStyle('background-color', palette.gradient.replace('background-color:', ''));\n else if (palette.gradient?.startsWith('background:'))\n this.setStyle('background', palette.gradient.replace('background:', ''));\n }\n\n private setStyle(prop: string, value: string) {\n this.el.nativeElement.style.setProperty(prop, value);\n this.appliedProps.add(prop);\n }\n\n private clearAppliedStyles() {\n for (const prop of this.appliedProps) {\n this.el.nativeElement.style.removeProperty(prop);\n }\n this.appliedProps.clear();\n }\n}\n","/* Copyright © 2023-2025 Napkin Apps Corp. All rights reserved. */\n\nimport { Directive, ElementRef, Input, OnChanges, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { FasterThemesService } from '../faster-themes.service';\n\n@Directive({\n selector: '[nContainer]',\n standalone: false\n})\nexport class nContainerDirective implements OnChanges, OnDestroy {\n @Input() theme!: any;\n @Input() container!: string;\n\n // Selector-aliased form: <div nContainer=\"Wide\" [theme]=\"t\">\n @Input('nContainer') set nContainer(v: string) {\n if (v !== undefined && v !== '') this.container = v;\n }\n\n private appliedProps = new Set<string>();\n private resizeSub: Subscription;\n\n constructor(private el: ElementRef, private fasterThemes: FasterThemesService) {\n this.resizeSub = this.fasterThemes.resize$.subscribe(() => this.apply());\n }\n\n ngOnDestroy() {\n this.resizeSub.unsubscribe();\n }\n\n ngOnChanges() {\n this.clearAppliedStyles();\n this.apply();\n }\n\n private apply() {\n const theme = this.fasterThemes.getTheme(this.theme);\n const container = this.fasterThemes.getContainer(theme, this.container);\n if (!container) return;\n\n // Palette takes precedence over local colors\n const usedPalette = container.containerPalette\n ? this.applyPalette(theme, container.containerPalette)\n : false;\n\n if (!usedPalette) {\n if (container.containerBackgroundGradient)\n this.setStyle('background-image', container.containerBackgroundGradient);\n else if (container.containerBackground)\n this.setStyle('background-color', container.containerBackground);\n }\n\n // Image takes precedence over palette background\n if (container.backgroundImage?.length) {\n this.setStyle('background-image', `url(${container.backgroundImage})`);\n if (container.backgroundSize)\n this.setStyle('background-size', container.backgroundSize);\n }\n\n if (container.containerBorder)\n this.setStyle('border', container.containerBorder);\n\n if (container.containerBoxShadow)\n this.setStyle('box-shadow', container.containerBoxShadow);\n\n if (container.containerAlignment && !container.containerAlignmentV) {\n this.setStyle('display', 'flex');\n this.setStyle('justify-content', container.containerAlignment);\n this.setStyle('align-items', container.containerAlignment);\n } else if (container.containerAlignment && container.containerAlignmentV) {\n this.setStyle('display', 'flex');\n this.setStyle('justify-content', container.containerAlignment);\n this.setStyle('align-items', container.containerAlignmentV);\n }\n\n if (container.containerLayout)\n this.setStyle('flex-flow', container.containerLayout);\n\n if (container.containerWidth) {\n const width = container.containerWidth === '100vw'\n ? `${this.fasterThemes.screenWidth}px`\n : container.containerWidth;\n this.setStyle('width', width);\n }\n\n if (container.containerHeight)\n this.setStyle('height', container.containerHeight);\n\n if (container.containerOverflowX)\n this.setStyle('overflow-x', container.containerOverflowX);\n\n if (container.containerOverflowY)\n this.setStyle('overflow-y', container.containerOverflowY);\n\n if (container.containerPosition)\n this.setStyle('position', container.containerPosition);\n\n if (container.containerMargin)\n this.setStyle('margin', this.fasterThemes.responsiveSpace(\n theme, container.containerMargin,\n theme.responsiveMarginMin, theme.responsiveMarginMax));\n\n if (container.containerPadding)\n this.setStyle('padding', this.fasterThemes.responsiveSpace(\n theme, container.containerPadding,\n theme.responsivePaddingMin, theme.responsivePaddingMax));\n }\n\n private applyPalette(theme: any, paletteName: string): boolean {\n const palette = this.fasterThemes.getPalette(theme, paletteName);\n if (!palette) return false;\n\n if (palette.backgroundColor)\n this.setStyle('background-color', palette.backgroundColor as string);\n if (palette.color)\n this.setStyle('color', palette.color as string);\n\n if (palette.gradient?.startsWith('background-image:'))\n this.setStyle('background-image', palette.gradient.replace('background-image:', ''));\n else if (palette.gradient?.startsWith('background-color:'))\n this.setStyle('background-color', palette.gradient.replace('background-color:', ''));\n else if (palette.gradient?.startsWith('background:'))\n this.setStyle('background', palette.gradient.replace('background:', ''));\n\n return true;\n }\n\n private setStyle(prop: string, value: string) {\n this.el.nativeElement.style.setProperty(prop, value);\n this.appliedProps.add(prop);\n }\n\n private clearAppliedStyles() {\n for (const prop of this.appliedProps) {\n this.el.nativeElement.style.removeProperty(prop);\n }\n this.appliedProps.clear();\n }\n}\n","/* Copyright © 2023-2025 Napkin Apps Corp. All rights reserved. */\n\nimport { Directive, ElementRef, Input, OnChanges, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { FasterTheme, FasterThemesService } from '../faster-themes.service';\n\n@Directive({\n selector: '[nType]',\n standalone: false\n})\nexport class nTypeDirective implements OnChanges, OnDestroy {\n @Input() theme!: any;\n @Input() type!: string;\n @Input() typeface!: string;\n\n // Selector-aliased form: <div nType=\"H1\" [theme]=\"t\">\n @Input('nType') set nType(v: string) {\n if (v !== undefined && v !== '') this.type = v;\n }\n\n private appliedProps = new Set<string>();\n private resizeSub: Subscription;\n\n constructor(private el: ElementRef, private fasterThemes: FasterThemesService) {\n this.resizeSub = this.fasterThemes.resize$.subscribe(() => this.apply());\n }\n\n ngOnDestroy() {\n this.resizeSub.unsubscribe();\n }\n\n ngOnChanges() {\n this.clearAppliedStyles();\n this.apply();\n }\n\n private apply() {\n const theme = <FasterTheme>this.fasterThemes.getTheme(this.theme);\n\n // typeface is a backwards-compat alias for type\n const name = this.type || this.typeface;\n\n const t = this.fasterThemes.typeObject(theme, name);\n if (!t) return;\n\n // Palette takes precedence over local colors\n const usedPalette = t.typePalette\n ? this.applyPalette(theme, t.typePalette)\n : false;\n\n if (!usedPalette) {\n if (t.typeBackground)\n this.setStyle('background-color', t.typeBackground);\n if (t.typeFontColor)\n this.setStyle('color', t.typeFontColor);\n }\n\n if (t.typeFont)\n this.setStyle('font-family', t.typeFont);\n\n if (t.typeFontSize)\n this.setStyle('font-size', `${this.fasterThemes.responsiveType(theme, t)}px`);\n\n if (t.typeFontWeight)\n this.setStyle('font-weight', t.typeFontWeight);\n\n if (t.typeFontAlignment)\n this.setStyle('text-align', t.typeFontAlignment);\n\n if (t.typeTextShadow)\n this.setStyle('text-shadow', t.typeTextShadow);\n\n if (t.typePadding)\n this.setStyle('padding', this.fasterThemes.responsiveSpace(\n theme, t.typePadding,\n theme.responsivePaddingMin, theme.responsivePaddingMax));\n\n if (t.typeMargin)\n this.setStyle('margin', this.fasterThemes.responsiveSpace(\n theme, t.typeMargin,\n theme.responsiveMarginMin, theme.responsiveMarginMax));\n }\n\n private applyPalette(theme: any, paletteName: string): boolean {\n const palette = this.fasterThemes.getPalette(theme, paletteName);\n if (!palette) return false;\n\n if (palette.backgroundColor)\n this.setStyle('background-color', palette.backgroundColor as string);\n if (palette.color)\n this.setStyle('color', palette.color as string);\n\n if (palette.gradient?.startsWith('background-image:'))\n this.setStyle('background-image', palette.gradient.replace('background-image:', ''));\n else if (palette.gradient?.startsWith('background-color:'))\n this.setStyle('background-color', palette.gradient.replace('background-color:', ''));\n else if (palette.gradient?.startsWith('background:'))\n this.setStyle('background', palette.gradient.replace('background:', ''));\n\n return true;\n }\n\n private setStyle(prop: string, value: string) {\n this.el.nativeElement.style.setProperty(prop, value);\n this.appliedProps.add(prop);\n }\n\n private clearAppliedStyles() {\n for (const prop of this.appliedProps) {\n this.el.nativeElement.style.removeProperty(prop);\n }\n this.appliedProps.clear();\n }\n}\n","import { Directive, ElementRef, HostListener, Input, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[ripple]',\n standalone: true\n})\nexport class RippleDirective implements OnInit {\n @Input() rippleDuration: string = \".6\"; // Animation duration in ms\n @Input() rippleColor: string = \"rgba(255, 255, 255, 0.5)\";\n @Input() noRipple: boolean = false;\n constructor(private el: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit() {\n if (this.noRipple) return;\n // Ensure the parent element has required styles\n this.renderer.setStyle(this.el.nativeElement, 'position', 'relative');\n this.renderer.setStyle(this.el.nativeElement, 'overflow', 'hidden');\n\n if (!parseFloat(this.rippleDuration)) {\n this.rippleDuration = \".6\";\n }\n }\n\n @HostListener('click', ['$event'])\n createRipple(event: MouseEvent) {\n if(this.noRipple) return;\n const button = this.el.nativeElement;\n const ripple = this.renderer.createElement('span');\n\n // Get button dimensions\n const rect = button.getBoundingClientRect();\n const size = Math.max(rect.width, rect.height);\n const x = event.clientX - rect.left - size / 2;\n const y = event.clientY - rect.top - size / 2;\n\n // Apply styles dynamically\n this.renderer.setStyle(ripple, 'position', 'absolute');\n this.renderer.setStyle(ripple, 'border-radius', '50%');\n this.renderer.setStyle(ripple, 'background', this.rippleColor);\n this.renderer.setStyle(ripple, 'width', `${size}px`);\n this.renderer.setStyle(ripple, 'height', `${size}px`);\n this.renderer.setStyle(ripple, 'left', `${x}px`);\n this.renderer.setStyle(ripple, 'top', `${y}px`);\n this.renderer.setStyle(ripple, 'transform', 'scale(0)');\n this.renderer.setStyle(ripple, 'opacity', '1');\n this.renderer.setStyle(ripple, 'transition', `transform ${this.rippleDuration}s ease-out, opacity ${this.rippleDuration}s ease-out`);\n\n // Append ripple to the button\n this.renderer.appendChild(button, ripple);\n\n // Trigger animation\n setTimeout(() => {\n this.renderer.setStyle(ripple, 'transform', 'scale(4)');\n this.renderer.setStyle(ripple, 'opacity', '0');\n });\n\n // Remove ripple after animation completes\n setTimeout(() => {\n this.renderer.removeChild(button, ripple);\n }, parseFloat(this.rippleDuration) * 2000);\n }\n}","/* Copyright © 2023-2025 Napkin Apps Corp. All rights reserved. */\n\nimport { Directive, ElementRef, Input, OnChanges, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { FasterThemesService } from '../faster-themes.service';\nimport { RippleDirective } from '../accordion/directives/ripple.directive';\n\n@Directive({\n selector: '[nButton]',\n hostDirectives: [\n {\n directive: RippleDirective,\n inputs: ['rippleDuration', 'rippleColor', 'noRipple']\n }\n ],\n standalone: false\n})\nexport class nButtonDirective implements OnChanges, OnDestroy {\n @Input() theme!: any;\n @Input() button!: string;\n @Input() buttonStyle!: string;\n\n // Selector-aliased form: <button nButton=\"Create\" [theme]=\"t\">\n @Input('nButton') set nButton(v: string) {\n if (v !== undefined && v !== '') this.button = v;\n }\n\n private appliedProps = new Set<string>();\n private resizeSub: Subscription;\n\n constructor(private el: ElementRef, private fasterThemes: FasterThemesService) {\n this.resizeSub = this.fasterThemes.resize$.subscribe(() => this.apply());\n }\n\n ngOnDestroy() {\n this.resizeSub.unsubscribe();\n }\n\n ngOnChanges() {\n this.clearAppliedStyles();\n this.apply();\n }\n\n private apply() {\n const theme = this.fasterThemes.getTheme(this.theme);\n const name = this.button || this.buttonStyle;\n const buttonStyle = this.fasterThemes.getButton(theme, name);\n if (!buttonStyle) return;\n\n const type: any = buttonStyle.buttonTypeStyle\n ? this.fasterThemes.typeObject(theme, buttonStyle.buttonTypeStyle)\n : null;\n\n // Palette takes precedence over local colors\n const usedPalette = buttonStyle.buttonPalette\n ? this.applyPalette(theme, buttonStyle.buttonPalette)\n : false;\n\n if (!usedPalette) {\n if (buttonStyle.buttonBackground)\n this.setStyle('background-color', buttonStyle.buttonBackground);\n if (buttonStyle.buttonColor)\n this.setStyle('color', buttonStyle.buttonColor);\n }\n\n if (buttonStyle.buttonPadding)\n this.setStyle('padding', this.fasterThemes.responsiveSpace(\n theme, buttonStyle.buttonPadding,\n theme.responsivePaddingMin, theme.responsivePaddingMax));\n\n if (buttonStyle.buttonMargin)\n this.setStyle('margin', this.fasterThemes.responsiveSpace(\n theme, buttonStyle.buttonMargin,\n theme.responsiveMarginMin, theme.responsiveMarginMax));\n\n this.setStyle('border', buttonStyle.buttonBorder || 'none');\n\n if (buttonStyle.buttonRadius)\n this.setStyle('border-radius', buttonStyle.buttonRadius);\n\n if (buttonStyle.buttonShadow)\n this.setStyle('box-shadow', buttonStyle.buttonShadow);\n\n if (type?.typeFont)\n this.setStyle('font-family', type.typeFont);\n\n if (type?.typeFontSize)\n this.setStyle('font-size', `${this.fasterThemes.responsiveType(theme, type)}px`);\n\n if (type?.typeFontWeight)\n this.setStyle('font-weight', type.typeFontWeight);\n\n if (type?.typeFontAlignment)\n this.setStyle('text-align', type.typeFontAlignment);\n\n if (type?.typeTextShadow)\n this.setStyle('text-shadow', type.typeTextShadow);\n\n if (type?.typePadding)\n this.setStyle('padding', this.fasterThemes.responsiveSpace(\n theme, type.typePadding,\n theme.responsivePaddingMin, theme.responsivePaddingMax));\n\n if (type?.typeMargin)\n this.setStyle('margin', this.fasterThemes.responsiveSpace(\n theme, type.typeMargin,\n theme.responsiveMarginMin, theme.responsiveMarginMax));\n\n this.setStyle('cursor', 'pointer');\n this.setStyle('box-sizing', 'border-box');\n }\n\n private applyPalette(theme: any, paletteName: string): boolean {\n const palette = this.fasterThemes.getPalette(theme, paletteName);\n if (!palette) return false;\n\n if (palette.backgroundColor)\n this.setStyle('background-color', palette.backgroundColor as string);\n if (palette.color)\n this.setStyle('color', palette.color as string);\n\n if (palette.gradient?.startsWith('background-image:'))\n this.setStyle('background-image', palette.gradient.replace('background-image:', ''));\n else if (palette.gradient?.startsWith('background-color:'))\n this.setStyle('background-color', palette.gradient.replace('background-color:', ''));\n else if (palette.gradient?.startsWith('background:'))\n this.setStyle('background', palette.gradient.replace('background:', ''));\n\n return true;\n }\n\n private setStyle(prop: string, value: string) {\n this.el.nativeElement.style.setProperty(prop, value);\n this.appliedProps.add(prop);\n }\n\n private clearAppliedStyles() {\n for (const prop of this.appliedProps) {\n this.el.nativeElement.style.removeProperty(prop);\n }\n this.appliedProps.clear();\n }\n}\n","/* Copyright © 2023-2025 Napkin Apps Corp. All rights reserved. */\n\nimport { Directive, ElementRef, Input, OnChanges } from '@angular/core';\nimport { FasterTheme, FasterThemesService } from '../faster-themes.service';\n\n@Directive({\n selector: '[nClass]',\n standalone: false\n})\nexport class nClassDirective implements OnChanges {\n @Input() theme!: any;\n @Input() class!: string;\n\n // Selector-aliased form: <div nClass=\"color-blue\" [theme]=\"t\">\n @Input('nClass') set nClass(v: string) {\n if (v !== undefined && v !== '') this.class = v;\n }\n\n private appliedProps = new Set<string>();\n\n constructor(private el: ElementRef, private fasterThemes: FasterThemesService) { }\n\n ngOnChanges() {\n this.clearAppliedStyles();\n this.apply();\n }\n\n private apply() {\n const theme = <FasterTheme>this.fasterThemes.getTheme(this.theme);\n const cssText = this.fasterThemes.class(theme, this.class);\n if (!cssText?.length) return;\n\n // Parse \"prop: value; prop2: value2;\" into individual setProperty calls\n // so re-applying clears precisely the props we set instead of stomping\n // the entire style attribute.\n for (const decl of cssText.split(';')) {\n const colon = decl.indexOf(':');\n if (colon < 0) continue;\n const prop = decl.slice(0, colon).trim();\n const value = decl.slice(colon + 1).trim();\n if (prop && value) this.setStyle(prop, value);\n }\n }\n\n private setStyle(prop: string, value: string) {\n this.el.nativeElement.style.setProperty(prop, value);\n this.appliedProps.add(prop);\n }\n\n private clearAppliedStyles() {\n for (const prop of this.appliedProps) {\n this.el.nativeElement.style.removeProperty(prop);\n }\n this.appliedProps.clear();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FasterThemesComponent } from './faster-themes.component';\n// Firebase removed - no longer used\n// import { InjectionToken } from '@angular/core';\n// import { Auth, getAuth } from 'firebase/auth';\n// import { FirebaseApp, getApps, initializeApp } from 'firebase/app';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CommonModule } from '@angular/common';\nimport { FasterThemesService } from './faster-themes.service';\nimport { AccordionComponent} from './accordion/accordion.component';\nimport { AccordionItem } from './accordion/directives/accordion-item.directive';\nimport { AccordionContent } from './accordion/directives/accordion-content.directive';\nimport { AccordionTitle } from './accordion/directives/accordion-title.directive';\nimport { AccordionHeader } from './accordion/directives/accordion-header.directive';\nimport { TogglePipe } from './accordion/toggle.pipe';\nimport { nColorDirective } from './directives/nColor.directive';\nimport { nContainerDirective } from './directives/nContainer.directive';\nimport { nTypeDirective } from './directives/nType.directive';\nimport { nButtonDirective } from './directives/nButton.directive';\nimport { nClassDirective } from './directives/nClass.directive';\nimport { RippleDirective } from './accordion/directives/ripple.directive';\n\n// Firebase removed - no longer used\n// export interface firebaseConfig {\n// initThemes: any;\n// apiKey: string;\n// authDomain: string;\n// databaseURL: string;\n// projectId: string;\n// storageBucket: string;\n// messagingSenderId: string;\n// appId: string;\n// measurementId: string;\n// }\n// export const FBT = new InjectionToken<Promise<FirebaseApp>>('FBT');\n// export const FAT = new InjectionToken<Promise<Auth>>('FAT');\n// export const INIT_THEMES = new InjectionToken<Promise<string>>('INIT_THEMES');\n//\n// const test = localStorage.getItem('test')\n// const configPromise = fetch(`https://firebaseconfig-aq3tslzx7a-uc.a.run.app?${test}`)\n// .then(res => res.json());\n\n@NgModule({ \n declarations: [\n FasterThemesComponent,\n AccordionComponent,\n AccordionItem,\n AccordionContent,\n AccordionTitle,\n AccordionHeader,\n TogglePipe,\n nColorDirective,\n nContainerDirective,\n nTypeDirective,\n nButtonDirective,\n nClassDirective,\n ],\n exports: [\n FasterThemesComponent,\n AccordionComponent,\n AccordionTitle,\n AccordionHeader,\n AccordionContent,\n AccordionItem,\n TogglePipe,\n RippleDirective,\n nColorDirective,\n nContainerDirective,\n nTypeDirective,\n nButtonDirective,\n nClassDirective\n ], imports: [\n CommonModule,\n HttpClientModule,\n RippleDirective\n ], providers: [\n // Firebase removed - no longer used\n // {\n // provide: FBT,\n // useFactory: async (): Promise<FirebaseApp> => {\n // const config = (await configPromise).firebaseConfig;\n // const existingApp = getApps().find(app => app.name === \"napkin\");\n // return existingApp ?? initializeApp(config, \"napkin\");\n // }\n // },\n // {\n // provide: FAT,\n // useFactory: async (appPromise: Promise<FirebaseApp>): Promise<Auth> => {\n // const app = await appPromise;\n // return getAuth(app);\n // },\n // deps: [FBT]\n // },\n // {\n // provide: INIT_THEMES,\n // useFactory: async (): Promise<string> => {\n // const { initThemes } = await configPromise;\n // return initThemes;\n // }\n // },\n FasterThemesService,\n ] })\nexport class FasterThemesModule {\n }\n\n","/* Copyright © 2023-2025 Napkin Apps Corp. All rights reserved. */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n AccordionStyle,\n ButtonStyle,\n ClassStyle,\n ContainerStyle,\n FasterTheme,\n Palette,\n TypographyStyle,\n} from '../faster-themes.service';\n\nexport type ThemeStyle = 'modern' | 'classic' | 'minimal' | 'bold' | 'playful';\nexport type ThemePurpose = 'marketing' | 'dashboard' | 'documentation' | 'form' | 'gallery';\nexport type PalettePreset =\n // Aesthetic presets\n | 'ocean'\n | 'forest'\n | 'sunset'\n | 'monochrome'\n | 'pastel'\n // Business presets\n | 'corporate'\n | 'healthcare'\n | 'finance'\n | 'tech'\n | 'legal'\n | 'hospitality'\n | 'retail'\n | 'education';\nexport type ThemeLayout =\n | 'row'\n | 'row wrap'\n | 'row-reverse'\n | 'column'\n | 'column wrap'\n | 'column-reverse';\n\nexport type ShadowLevel = 'none' | 'small' | 'medium' | 'large';\n\ninterface StyleProfile {\n fontFamily: string;\n monoFamily: string;\n baseFontSize: number;\n headingWeight: string;\n bodyWeight: string;\n borderRadius: string;\n border: string;\n}\n\ninterface PurposeProfile {\n containerPadding: string;\n containerMargin: string;\n accordionMode: 'collapsing' | 'focus' | 'open';\n emphasizeHeadings: boolean;\n buttonPadding: string;\n density: 'tight' | 'normal' | 'roomy';\n}\n\n// Semantic colors used by buttons/types that have a fixed purpose\n// (Delete=red, Create=green, Disabled=gray, etc.) regardless of palette.\ninterface SemanticColors {\n danger: { bg: string; fg: string };\n success: { bg: string; fg: string };\n warning: { bg: string; fg: string };\n info: { bg: string; fg: string };\n disabled: { bg: string; fg: string };\n inverse: { bg: string; fg: string };\n}\n\n@Component({\n selector: 'faster-theme-generator',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"ntg-root\" *ngIf=\"showPreview && theme\">\n <div class=\"ntg-header\">\n <strong>{{ theme.name }}</strong>\n <span class=\"ntg-meta\">{{ themeStyle }} · {{ purpose }}</span>\n </div>\n <div class=\"ntg-swatches\">\n <span\n *ngFor=\"let p of theme.palette\"\n class=\"ntg-swatch\"\n [title]=\"p.colorName\"\n [style.background]=\"resolveSwatch(p)\"\n ></span>\n </div>\n </div>\n `,\n styles: [\n `\n .ntg-root {\n font-family: system-ui, sans-serif;\n padding: 8px 12px;\n border: 1px solid rgba(0, 0, 0, 0.1);\n border-radius: 6px;\n display: inline-flex;\n flex-direction: column;\n gap: 6px;\n }\n .ntg-header {\n display: flex;\n gap: 8px;\n align-items: baseline;\n }\n .ntg-meta {\n font-size: 11px;\n opacity: 0.6;\n text-transform: capitalize;\n }\n .ntg-swatches {\n display: flex;\n gap: 4px;\n }\n .ntg-swatch {\n width: 18px;\n height: 18px;\n border-radius: 50%;\n border: 1px solid rgba(0, 0, 0, 0.1);\n }\n `,\n ],\n})\nexport class ThemeGeneratorComponent implements OnInit, OnChanges {\n @Input() themeStyle: ThemeStyle = 'modern';\n @Input() purpose: ThemePurpose = 'marketing';\n @Input() palette: PalettePreset | Palette[] = 'ocean';\n @Input() layout: ThemeLayout = 'row wrap';\n @Input() elevation: ShadowLevel = 'medium';\n @Input() textShadow: ShadowLevel = 'none';\n @Input() name?: string;\n @Input() showPreview = false;\n @Input() responsiveStandardWidth?: number;\n @Input() responsiveFontSizeMin?: number;\n @Input() responsiveFontSizeMax?: number;\n @Input() responsiveMarginMin?: number;\n @Input() responsiveMarginMax?: number;\n @Input() responsivePaddingMin?: number;\n @Input() responsivePaddingMax?: number;\n\n @Output() themeGenerated = new EventEmitter<FasterTheme>();\n\n theme?: FasterTheme;\n\n ngOnInit() {\n this.regenerate();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (\n changes['themeStyle'] ||\n changes['purpose'] ||\n changes['palette'] ||\n changes['layout'] ||\n changes['elevation'] ||\n changes['textShadow'] ||\n changes['name'] ||\n changes['responsiveStandardWidth'] ||\n changes['responsiveFontSizeMin'] ||\n changes['responsiveFontSizeMax'] ||\n changes['responsiveMarginMin'] ||\n changes['responsiveMarginMax'] ||\n changes['responsivePaddingMin'] ||\n changes['responsivePaddingMax']\n ) {\n this.regenerate();\n }\n }\n\n generate(): FasterTheme {\n const palette = Array.isArray(this.palette)\n ? this.palette\n : this.buildPalette(this.palette);\n const style = this.styleProfileFor(this.themeStyle);\n const purpose = this.purposeProfileFor(this.purpose);\n const semantics = this.semanticColors();\n const elevationCss = this.elevationCss(this.elevation, this.themeStyle);\n const textShadowCss = this.textShadowCss(this.textShadow);\n\n const paletteLabel =\n typeof this.palette === 'string' ? this.capitalize(this.palette) : 'Custom';\n\n return {\n name:\n this.name ??\n `${this.capitalize(this.themeStyle)} ${paletteLabel} ${this.capitalize(this.purpose)}`,\n description: `Generated ${this.themeStyle} ${paletteLabel.toLowerCase()} theme for ${this.purpose}`,\n responsiveName: 'generated',\n responsiveStandardWidth: this.responsiveStandardWidth ?? 1440,\n responsiveFontSizeMin: this.responsiveFontSizeMin ?? 80,\n responsiveFontSizeMax: this.responsiveFontSizeMax ?? 120,\n responsiveMarginMin: this.responsiveMarginMin ?? 80,\n responsiveMarginMax: this.responsiveMarginMax ?? 150,\n responsivePaddingMin: this.responsivePaddingMin ?? 80,\n responsivePaddingMax: this.responsivePaddingMax ?? 150,\n palette,\n typeStyles: this.buildTypography(style, purpose, semantics, textShadowCss),\n containers: this.buildContainers(style, purpose, palette, this.layout, elevationCss),\n buttonStyles: this.buildButtons(style, purpose, palette, semantics, elevationCss),\n accordions: this.buildAccordions(style, purpose, palette, this.layout, elevationCss),\n classes: this.buildClasses(),\n };\n }\n\n /**\n * Map a ShadowLevel to a box-shadow CSS string. Playful style uses an offset\n * \"hard\" shadow that varies in offset rather than blur, so it gets its own\n * scale.\n */\n private elevationCss(level: ShadowLevel, style: ThemeStyle): string {\n if (level === 'none') return 'none';\n if (style === 'playful') {\n return {\n small: '2px 2px 0 rgba(0,0,0,0.12)',\n medium: '4px 4px 0 rgba(0,0,0,0.15)',\n large: '6px 6px 0 rgba(0,0,0,0.18)',\n }[level];\n }\n return {\n small: '0 1px 3px rgba(0,0,0,0.10)',\n medium: '0 2px 8px rgba(0,0,0,0.15)',\n large: '0 6px 16px rgba(0,0,0,0.20)',\n }[level];\n }\n\n /** Map a ShadowLevel to a text-shadow CSS string. Empty disables. */\n private textShadowCss(level: ShadowLevel): string {\n if (level === 'none') return '';\n return {\n small: '1px 1px 2px rgba(0,0,0,0.15)',\n medium: '1px 1px 3px rgba(0,0,0,0.25)',\n large: '2px 2px 4px rgba(0,0,0,0.35)',\n }[level];\n }\n\n regenerate() {\n this.theme = this.generate();\n this.themeGenerated.emit(this.theme);\n }\n\n resolveSwatch(p: Palette): string {\n if (typeof p.backgroundColor === 'string') return p.backgroundColor;\n if (p.backgroundColor?.colorHex) return p.backgroundColor.colorHex;\n if (typeof p.color === 'string') return p.color;\n return '#cccccc';\n }\n\n // ────────────────────────────────────────────────────────────────────────\n // Profiles\n // ────────────────────────────────────────────────────────────────────────\n\n private styleProfileFor(style: ThemeStyle): StyleProfile {\n const profiles: Record<ThemeStyle, StyleProfile> = {\n modern: {\n fontFamily: '\"Inter\", system-ui, sans-serif',\n monoFamily: '\"JetBrains Mono\", \"Courier New\", monospace',\n baseFontSize: 16,\n headingWeight: '600',\n bodyWeight: '400',\n borderRadius: '8px',\n border: 'none',\n },\n classic: {\n fontFamily: '\"Georgia\", \"Times New Roman\", serif',\n monoFamily: '\"Courier New\", monospace',\n baseFontSize: 17,\n headingWeight: '700',\n bodyWeight: '400',\n borderRadius: '2px',\n border: '1px solid rgba(0,0,0,0.15)',\n },\n minimal: {\n fontFamily: '\"Helvetica Neue\", Arial, sans-serif',\n monoFamily: '\"SF Mono\", \"Menlo\", monospace',\n baseFontSize: 15,\n headingWeight: '500',\n bodyWeight: '300',\n borderRadius: '0px',\n border: '1px solid rgba(0,0,0,0.08)',\n },\n bold: {\n fontFamily: '\"Montserrat\", system-ui, sans-serif',\n monoFamily: '\"Roboto Mono\", monospace',\n baseFontSize: 18,\n headingWeight: '800',\n bodyWeight: '500',\n borderRadius: '4px',\n border: '2px solid rgba(0,0,0,0.85)',\n },\n playful: {\n fontFamily: '\"Comic Neue\", \"Quicksand\", sans-serif',\n monoFamily: '\"Comic Mono\", \"Courier New\", monospace',\n baseFontSize: 16,\n headingWeight: '700',\n bodyWeight: '400',\n borderRadius: '18px',\n border: '2px dashed rgba(0,0,0,0.3)',\n },\n };\n return profiles[style];\n }\n\n private purposeProfileFor(purpose: ThemePurpose): PurposeProfile {\n const profiles: Record<ThemePurpose, PurposeProfile> = {\n marketing: {\n containerPadding: '40px 32px',\n containerMargin: '0px',\n accordionMode: 'collapsing',\n emphasizeHeadings: true,\n buttonPadding: '14px 16px',\n density: 'roomy',\n },\n dashboard: {\n containerPadding: '16px',\n containerMargin: '8px',\n accordionMode: 'open',\n emphasizeHeadings: false,\n buttonPadding: '8px 16px',\n density: 'tight',\n },\n documentation: {\n containerPadding: '24px 32px',\n containerMargin: '12px 0px',\n accordionMode: 'collapsing',\n emphasizeHeadings: true,\n buttonPadding: '10px 12px',\n density: 'normal',\n },\n form: {\n containerPadding: '20px',\n containerMargin: '8px 0px',\n accordionMode: 'focus',\n emphasizeHeadings: false,\n buttonPadding: '12px 16px',\n density: 'normal',\n },\n gallery: {\n containerPadding: '8px',\n containerMargin: '4px',\n accordionMode: 'focus',\n emphasizeHeadings: false,\n buttonPadding: '10px 12px',\n density: 'tight',\n },\n };\n return profiles[purpose];\n }\n\n private semanticColors(): SemanticColors {\n return {\n danger: { bg: '#c62828', fg: '#ffffff' },\n success: { bg: '#2e7d32', fg: '#ffffff' },\n warning: { bg: '#f9a825', fg: '#3e2723' },\n info: { bg: '#0288d1', fg: '#ffffff' },\n disabled: { bg: '#e0e0e0', fg: '#9e9e9e' },\n inverse: { bg: '#212121', fg: '#fafafa' },\n };\n }\n\n // ────────────────────────────────────────────────────────────────────────\n // Palette\n // ────────────────────────────────────────────────────────────────────────\n\n private buildPalette(preset: PalettePreset): Palette[] {\n // Every palette defines 8 semantic roles that blend (Primary→Secondary→\n // Accent→Highlight) and contrast (Surface↔Inverse) within a unified\n // color story. Consumers can reference any role by colorName.\n const presets: Record<PalettePreset, Palette[]> = {\n // ─────────────── Aesthetic presets ───────────────\n ocean: [\n { colorName: 'Primary', backgroundColor: '#0277bd', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#4fc3f7', color: '#01579b' },\n { colorName: 'Accent', backgroundColor: '#80deea', color: '#004d40' },\n { colorName: 'Highlight', backgroundColor: '#00bcd4', color: '#003c43' },\n { colorName: 'Surface', backgroundColor: '#e1f5fe', color: '#01579b' },\n { colorName: 'Muted', backgroundColor: '#cfd8dc', color: '#37474f' },\n { colorName: 'Subtle', backgroundColor: '#eceff1', color: '#455a64' },\n { colorName: 'Inverse', backgroundColor: '#01579b', color: '#e1f5fe' },\n ],\n forest: [\n { colorName: 'Primary', backgroundColor: '#2e7d32', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#81c784', color: '#1b5e20' },\n { colorName: 'Accent', backgroundColor: '#aed581', color: '#33691e' },\n { colorName: 'Highlight', backgroundColor: '#fff176', color: '#5d4037' },\n { colorName: 'Surface', backgroundColor: '#f1f8e9', color: '#33691e' },\n { colorName: 'Muted', backgroundColor: '#d7ccc8', color: '#3e2723' },\n { colorName: 'Subtle', backgroundColor: '#efebe9', color: '#5d4037' },\n { colorName: 'Inverse', backgroundColor: '#1b5e20', color: '#f1f8e9' },\n ],\n sunset: [\n { colorName: 'Primary', backgroundColor: '#ef6c00', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#ffb74d', color: '#bf360c' },\n { colorName: 'Accent', backgroundColor: '#f48fb1', color: '#880e4f' },\n { colorName: 'Highlight', backgroundColor: '#ffd54f', color: '#5d4037' },\n { colorName: 'Surface', backgroundColor: '#fff3e0', color: '#bf360c' },\n { colorName: 'Muted', backgroundColor: '#ffe0b2', color: '#5d4037' },\n { colorName: 'Subtle', backgroundColor: '#fff8e1', color: '#6d4c41' },\n { colorName: 'Inverse', backgroundColor: '#bf360c', color: '#fff3e0' },\n ],\n monochrome: [\n { colorName: 'Primary', backgroundColor: '#212121', color: '#fafafa' },\n { colorName: 'Secondary', backgroundColor: '#616161', color: '#ffffff' },\n { colorName: 'Accent', backgroundColor: '#9e9e9e', color: '#212121' },\n { colorName: 'Highlight', backgroundColor: '#ffeb3b', color: '#212121' },\n { colorName: 'Surface', backgroundColor: '#fafafa', color: '#212121' },\n { colorName: 'Muted', backgroundColor: '#e0e0e0', color: '#424242' },\n { colorName: 'Subtle', backgroundColor: '#f5f5f5', color: '#616161' },\n { colorName: 'Inverse', backgroundColor: '#000000', color: '#fafafa' },\n ],\n pastel: [\n { colorName: 'Primary', backgroundColor: '#b39ddb', color: '#311b92' },\n { colorName: 'Secondary', backgroundColor: '#f8bbd0', color: '#880e4f' },\n { colorName: 'Accent', backgroundColor: '#b2ebf2', color: '#006064' },\n { colorName: 'Highlight', backgroundColor: '#c5e1a5', color: '#33691e' },\n { colorName: 'Surface', backgroundColor: '#fff9c4', color: '#f57f17' },\n { colorName: 'Muted', backgroundColor: '#dcedc8', color: '#33691e' },\n { colorName: 'Subtle', backgroundColor: '#fce4ec', color: '#ad1457' },\n { colorName: 'Inverse', backgroundColor: '#4527a0', color: '#ede7f6' },\n ],\n\n // ─────────────── Business presets ───────────────\n\n // Corporate — navy + steel, conservative trust signals\n corporate: [\n { colorName: 'Primary', backgroundColor: '#1a237e', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#3949ab', color: '#ffffff' },\n { colorName: 'Accent', backgroundColor: '#d84315', color: '#ffffff' },\n { colorName: 'Highlight', backgroundColor: '#fff176', color: '#3e2723' },\n { colorName: 'Surface', backgroundColor: '#fafafa', color: '#1a237e' },\n { colorName: 'Muted', backgroundColor: '#eceff1', color: '#37474f' },\n { colorName: 'Subtle', backgroundColor: '#f5f5f5', color: '#424242' },\n { colorName: 'Inverse', backgroundColor: '#263238', color: '#eceff1' },\n ],\n\n // Healthcare — calm teals + soft whites, clinical clarity\n healthcare: [\n { colorName: 'Primary', backgroundColor: '#00695c', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#00897b', color: '#ffffff' },\n { colorName: 'Accent', backgroundColor: '#e91e63', color: '#ffffff' },\n { colorName: 'Highlight', backgroundColor: '#b2ebf2', color: '#006064' },\n { colorName: 'Surface', backgroundColor: '#ffffff', color: '#263238' },\n { colorName: 'Muted', backgroundColor: '#e0f2f1', color: '#004d40' },\n { colorName: 'Subtle', backgroundColor: '#f1f8e9', color: '#33691e' },\n { colorName: 'Inverse', backgroundColor: '#004d40', color: '#e0f2f1' },\n ],\n\n // Finance — deep green + gold, money & gravitas\n finance: [\n { colorName: 'Primary', backgroundColor: '#1b5e20', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#2e7d32', color: '#ffffff' },\n { colorName: 'Accent', backgroundColor: '#ff8f00', color: '#1b1b1b' },\n { colorName: 'Highlight', backgroundColor: '#ffe082', color: '#5d4037' },\n { colorName: 'Surface', backgroundColor: '#fafafa', color: '#1b1b1b' },\n { colorName: 'Muted', backgroundColor: '#e8f5e9', color: '#1b5e20' },\n { colorName: 'Subtle', backgroundColor: '#f1f8e9', color: '#33691e' },\n { colorName: 'Inverse', backgroundColor: '#1b1b1b', color: '#c8e6c9' },\n ],\n\n // Tech / SaaS — violet + cyan, modern product feel\n tech: [\n { colorName: 'Primary', backgroundColor: '#4527a0', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#7e57c2', color: '#ffffff' },\n { colorName: 'Accent', backgroundColor: '#00e5ff', color: '#00363a' },\n { colorName: 'Highlight', backgroundColor: '#c4b5fd', color: '#311b92' },\n { colorName: 'Surface', backgroundColor: '#fafafa', color: '#311b92' },\n { colorName: 'Muted', backgroundColor: '#ede7f6', color: '#311b92' },\n { colorName: 'Subtle', backgroundColor: '#f3e5f5', color: '#4a148c' },\n { colorName: 'Inverse', backgroundColor: '#1a1a2e', color: '#ede7f6' },\n ],\n\n // Legal — burgundy + cream, traditional and authoritative\n legal: [\n { colorName: 'Primary', backgroundColor: '#4a0e0e', color: '#fff8e1' },\n { colorName: 'Secondary', backgroundColor: '#5d4037', color: '#fff8e1' },\n { colorName: 'Accent', backgroundColor: '#b71c1c', color: '#ffecb3' },\n { colorName: 'Highlight', backgroundColor: '#ffd54f', color: '#3e2723' },\n { colorName: 'Surface', backgroundColor: '#fff8e1', color: '#3e2723' },\n { colorName: 'Muted', backgroundColor: '#efebe9', color: '#4e342e' },\n { colorName: 'Subtle', backgroundColor: '#f5f5f5', color: '#3e2723' },\n { colorName: 'Inverse', backgroundColor: '#3e2723', color: '#efebe9' },\n ],\n\n // Hospitality — warm coral + cream, welcoming and indulgent\n hospitality: [\n { colorName: 'Primary', backgroundColor: '#d84315', color: '#fff8e1' },\n { colorName: 'Secondary', backgroundColor: '#ff7043', color: '#fff8e1' },\n { colorName: 'Accent', backgroundColor: '#c2185b', color: '#ffffff' },\n { colorName: 'Highlight', backgroundColor: '#ffd180', color: '#4e342e' },\n { colorName: 'Surface', backgroundColor: '#fff8e1', color: '#3e2723' },\n { colorName: 'Muted', backgroundColor: '#fbe9e7', color: '#bf360c' },\n { colorName: 'Subtle', backgroundColor: '#fff3e0', color: '#5d4037' },\n { colorName: 'Inverse', backgroundColor: '#3e2723', color: '#fff8e1' },\n ],\n\n // Retail — vibrant + friendly, attention-grabbing pops\n retail: [\n { colorName: 'Primary', backgroundColor: '#d32f2f', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#f57c00', color: '#ffffff' },\n { colorName: 'Accent', backgroundColor: '#00897b', color: '#ffffff' },\n { colorName: 'Highlight', backgroundColor: '#ffeb3b', color: '#5d4037' },\n { colorName: 'Surface', backgroundColor: '#fafafa', color: '#212121' },\n { colorName: 'Muted', backgroundColor: '#f5f5f5', color: '#424242' },\n { colorName: 'Subtle', backgroundColor: '#fffde7', color: '#5d4037' },\n { colorName: 'Inverse', backgroundColor: '#212121', color: '#ffeb3b' },\n ],\n\n // Education — friendly blue + warm accents, approachable\n education: [\n { colorName: 'Primary', backgroundColor: '#1976d2', color: '#ffffff' },\n { colorName: 'Secondary', backgroundColor: '#42a5f5', color: '#ffffff' },\n { colorName: 'Accent', backgroundColor: '#ff7043', color: '#ffffff' },\n { colorName: 'Highlight', backgroundColor: '#ffd54f', color: '#5d4037' },\n { colorName: 'Surface', backgroundColor: '#ffffff', color: '#1565c0' },\n { colorName: 'Muted', backgroundColor: '#e3f2fd', color: '#0d47a1' },\n { colorName: 'Subtle', backgroundColor: '#f5f5f5', color: '#424242' },\n { colorName: 'Inverse', backgroundColor: '#0d47a1', color: '#e3f2fd' },\n ],\n };\n return presets[preset];\n }\n\n private bgOf(palette: Palette[], name: string): string {\n const p = palette.find(x => x.colorName === name) ?? palette[0];\n if (typeof p.backgroundColor === 'string') return p.backgroundColor;\n return p.backgroundColor?.colorHex ?? '#cccccc';\n }\n\n private fgOf(palette: Palette[], name: string): string {\n const p = palette.find(x => x.colorName === name) ?? palette[0];\n if (typeof p.color === 'string') return p.color;\n return p.color?.colorHex ?? '#222222';\n }\n\n // ────────────────────────────────────────────────────────────────────────\n // Typography — H1-H5, title, subtitle, body, label, user, display, Focus, white, Jade\n // ────────────────────────────────────────────────────────────────────────\n\n private buildTypography(\n style: StyleProfile,\n purpose: PurposeProfile,\n semantics: SemanticColors,\n textShadowCss: string,\n ): TypographyStyle[] {\n const base = style.baseFontSize;\n const boost = purpose.emphasizeHeadings ? 1.15 : 1.0;\n const heading = (sizePx: number): Partial<TypographyStyle> => ({\n typeFont: style.fontFamily,\n typeFontSize: `${Math.round(sizePx * boost)}px`,\n typeFontWeight: style.headingWeight,\n typeLineHeight: '1.3',\n typeTextShadow: textShadowCss,\n });\n\n return [\n { typeName: 'H1', ...heading(base * 2.6), typePadding: '6px 4px' },\n { typeName: 'H2', ...heading(base * 2.1), typePadding: '6px 4px' },\n { typeName: 'H3', ...heading(base * 1.75) },\n { typeName: 'H4', ...heading(base * 1.4) },\n { typeName: 'H5', ...heading(base * 1.2), typeFontAlignment: 'center' },\n {\n typeName: 'title',\n typeFont: style.fontFamily,\n typeFontSize: `${Math.round(base * 1.55)}px`,\n typeFontWeight: style.headingWeight,\n typeFontAlignment: 'center',\n typeLineHeight: '1.3',\n typePadding: '2px 4px',\n typeMargin: '2px 4px',\n typeTextShadow: textShadowCss,\n },\n {\n typeName: 'subtitle',\n typeFont: style.fontFamily,\n typeFontSize: `${Math.round(base * 1.1)}px`,\n typeFontWeight: '500',\n typeLineHeight: '1.4',\n typePadding: '4px',\n typeTextShadow: textShadowCss,\n },\n {\n typeName: 'body',\n typeFont: style.fontFamily,\n typeFontSize: `${base}px`,\n typeFontWeight: style.bodyWeight,\n typeLineHeight: '1.6',\n },\n {\n typeName: 'label',\n typeFont: style.fontFamily,\n typeFontSize: `${Math.round(base * 0.9)}px`,\n typeFontWeight: '500',\n typeFontAlignment: 'center',\n typeLineHeight: '1.3',\n },\n {\n typeName: 'user',\n typeFont: style.fontFamily,\n typeFontSize: `${Math.round(base * 1.05)}px`,\n typeFontWeight: '600',\n typePadding: '4px',\n typeMargin: '4px',\n typeFontColor: '#303f9f',\n },\n {\n typeName: 'display',\n typeFont: style.monoFamily,\n typeFontSize: `${Math.round(base * 0.9)}px`,\n typeFontWeight: '900',\n typeLineHeight: '1.4',\n typePadding: '6px 4px',\n },\n {\n typeName: 'Focus',\n typeFont: style.fontFamily,\n typeFontSize: `${Math.round(base * 1.65)}px`,\n typeFontWeight: '600',\n typePalette: 'Accent',\n typeBorder: `2px solid ${semantics.danger.bg}`,\n typePadding: '8px',\n typeMargin: '12px',\n typeTextShadow: textShadowCss,\n },\n {\n typeName: 'white',\n typeFont: style.fontFamily,\n typeFontSize: `${Math.round(base * 2.2)}px`,\n typeFontWeight: '700',\n typeFontColor: '#ffffff',\n typeBackground: semantics.inverse.bg,\n typePadding: '6px 4px',\n typeTextShadow: textShadowCss,\n },\n {\n typeName: 'Jade',\n typeFont: style.monoFamily,\n typeFontSize: `${Math.round(base * 1.2)}px`,\n typeFontWeight: '600',\n typeLineHeight: '1.5',\n typeFontColor: '#1259c8',\n typePadding: '4px',\n typeMargin: '4px',\n },\n ];\n }\n\n // ────────────────────────────────────────────────────────────────────────\n // Containers — Page Structure: Page, Section, Hero, Header, Footer,\n // Sidebar, Toolbar | Cards & Panels: Card, Panel, Modal | Content Types:\n // Data Entry, Article, Feed, Table, Gallery, Dashboard | Width Variants: Narrow,\n // Half, Wide, Full Width, Full Screen | Functional: Media, Sticky,\n // Notification, Inactive, Callout\n // ────────────────────────────────────────────────────────────────────────\n\n private buildContainers(\n style: StyleProfile,\n purpose: PurposeProfile,\n palette: Palette[],\n layout: ThemeLayout,\n elevationCss: string,\n ): ContainerStyle[] {\n const surfaceBg = this.bgOf(palette, 'Surface');\n const mutedBg = this.bgOf(palette, 'Muted');\n const primaryBg = this.bgOf(palette, 'Primary');\n const accentBg = this.bgOf(palette, 'Accent');\n const tightPad = purpose.density === 'tight' ? '4px' : '6px';\n const contentPad = purpose.density === 'tight' ? '12px' : purpose.density === 'roomy' ? '32px' : '20px';\n const radius = style.borderRadius;\n\n return [\n // ── Page Structure ────────────────────────────────────────────────\n {\n containerName: 'Page',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerWidth: '100vw',\n containerHeight: 'auto',\n containerPadding: '0px',\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerPosition: 'relative',\n },\n {\n containerName: 'Section',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerWidth: '100vw',\n containerPadding: `${contentPad} 0px`,\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerPosition: 'relative',\n },\n {\n containerName: 'Hero',\n containerPalette: 'Accent',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerWidth: '100vw',\n containerPadding: '64px 32px',\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerPosition: 'relative',\n },\n {\n containerName: 'Header',\n containerPalette: 'Primary',\n containerLayout: 'row',\n containerAlignment: 'center',\n containerWidth: '100vw',\n containerHeight: 'auto',\n containerPadding: '8px 16px',\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: elevationCss,\n containerPosition: 'sticky',\n containerPositioning: 'top: 0; z-index: 100;',\n },\n {\n containerName: 'Footer',\n containerPalette: 'Muted',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerWidth: '100vw',\n containerPadding: `${contentPad} 16px`,\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerPosition: 'relative',\n },\n {\n containerName: 'Sidebar',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerWidth: '25vw',\n containerHeight: '100vh',\n containerPadding: '12px',\n containerMargin: '0px',\n containerBorder: style.border === 'none' ? '1px solid rgba(0,0,0,0.1)' : style.border,\n containerBoxShadow: elevationCss,\n containerOverflowY: 'auto',\n containerPosition: 'relative',\n },\n {\n containerName: 'Toolbar',\n containerPalette: 'Primary',\n containerLayout: 'row',\n containerAlignment: 'center',\n containerWidth: '100vw',\n containerHeight: 'auto',\n containerPadding: '4px 12px',\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: elevationCss,\n containerPosition: 'relative',\n },\n // ── Cards & Panels ────────────────────────────────────────────────\n {\n containerName: 'Card',\n containerPalette: 'Surface',\n containerLayout: layout,\n containerAlignment: 'center',\n containerPadding: '16px',\n containerMargin: '8px',\n containerBorder: style.border,\n containerBoxShadow: elevationCss,\n containerPosition: 'relative',\n containerStyle: `border-radius: ${radius};`,\n },\n {\n containerName: 'Panel',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerWidth: '33vw',\n containerHeight: '80vh',\n containerPadding: tightPad,\n containerMargin: '6px',\n containerBorder: style.border === 'none' ? '1px solid rgba(0,0,0,0.1)' : style.border,\n containerBoxShadow: elevationCss,\n containerLineHeight: '150%',\n containerPosition: 'relative',\n containerStyle: `border-radius: ${radius};`,\n },\n {\n containerName: 'Modal',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerWidth: '480px',\n containerHeight: 'auto',\n containerPadding: '24px',\n containerMargin: '0px auto',\n containerBorder: style.border,\n containerBoxShadow: elevationCss || '0 8px 32px rgba(0,0,0,0.2)',\n containerPosition: 'relative',\n containerStyle: `border-radius: ${radius};`,\n },\n // ── Content Types ─────────────────────────────────────────────────\n {\n containerName: 'Data Entry',\n containerPalette: 'Surface',\n containerLayout: layout,\n containerAlignment: 'center',\n containerPadding: '16px 12px',\n containerMargin: '12px 6px',\n containerBorder: style.border,\n containerBoxShadow: elevationCss,\n containerPosition: 'relative',\n containerStyle: `border-radius: ${radius};`,\n },\n {\n containerName: 'Article',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerAlignment: 'start',\n containerPadding: contentPad,\n containerMargin: '0px auto',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerLineHeight: '160%',\n containerPosition: 'relative',\n },\n {\n containerName: 'Feed',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerWidth: '100%',\n containerHeight: '100%',\n containerOverflowX: 'hidden',\n containerOverflowY: 'auto',\n containerPadding: tightPad,\n containerBorder: 'none',\n containerPosition: 'relative',\n },\n {\n containerName: 'Table',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerHeight: 'auto',\n containerOverflowX: 'scroll',\n containerOverflowY: 'scroll',\n containerBorder: style.border,\n containerMargin: '0px',\n containerPadding: '0px',\n containerPosition: 'relative',\n },\n {\n containerName: 'Gallery',\n containerPalette: 'Muted',\n containerLayout: 'row wrap',\n containerAlignment: 'center',\n containerWidth: '100vw',\n containerPadding: tightPad,\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerPosition: 'relative',\n },\n {\n containerName: 'Dashboard',\n containerPalette: 'Surface',\n containerLayout: 'row wrap',\n containerAlignment: 'center',\n containerWidth: '100%',\n containerPadding: contentPad,\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerPosition: 'relative',\n },\n // ── Width Variants ────────────────────────────────────────────────\n {\n containerName: 'Narrow',\n containerPalette: 'Surface',\n containerLayout: layout,\n containerAlignment: 'center',\n containerWidth: '33%',\n containerPadding: '0px',\n containerMargin: '0px',\n containerBorder: style.border,\n containerBoxShadow: '',\n },\n {\n containerName: 'Half',\n containerPalette: 'Surface',\n containerLayout: layout,\n containerAlignment: 'center',\n containerWidth: '50%',\n containerPadding: '15px',\n containerBorder: style.border,\n },\n {\n containerName: 'Wide',\n containerPalette: 'Surface',\n containerLayout: layout,\n containerAlignment: 'center',\n containerWidth: '66%',\n containerPadding: '0px',\n containerMargin: '0px',\n containerBorder: style.border,\n },\n {\n containerName: 'Full Width',\n containerBackground: surfaceBg,\n containerLayout: layout,\n containerAlignment: 'center',\n containerWidth: '100vw',\n containerOverflowX: 'scroll',\n containerOverflowY: 'scroll',\n containerPadding: '0px',\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerPosition: 'relative',\n },\n {\n containerName: 'Full Screen',\n containerPalette: 'Surface',\n containerLayout: 'column',\n containerWidth: '100vw',\n containerHeight: '100vh',\n containerPadding: '0px',\n containerMargin: '0px',\n containerBorder: 'none',\n containerBoxShadow: '',\n containerPosition: 'relative',\n },\n // ── Functional / State ────────────────────────────────────────────\n {\n containerName: 'Media',\n containerPalette: 'Muted',\n containerLayout: layout,\n containerAlignment: 'center',\n containerWidth: '25vw',\n containerPadding: '0px',\n containerMargin: '6px',\n containerBorder: 'none',\n containerBoxShadow: elevationCss,\n containerPosition: 'relative',\n containerStyle: `border-radius: ${radius};`,\n },\n {\n containerName: 'Sticky',\n containerBackground: `${mutedBg}55`,\n containerLayout: layout,\n containerAlignment: 'center',\n containerHeight: 'auto',\n containerPadding: '6px',\n containerMargin: '6px',\n containerBorder: 'none',\n containerPosition: 'sticky',\n containerPositioning: 'top: 0; z-index: 50;',\n },\n {\n containerName: 'Notification',\n containerBackground: accentBg,\n containerLayout: 'column',\n containerBorder: '1px solid white',\n containerMargin: '12px 0px',\n containerPadding: '12px',\n containerLineHeight: '150%',\n containerStyle: `border-radius: ${radius};`,\n },\n {\n containerName: 'Report',\n // containerBackground: accentBg,\n containerLayout: 'column',\n containerBorder: '2px solid gray',\n // containerMargin: '12px 0px',\n containerPadding: '8px',\n // containerLineHeight: '150%',\n // containerStyle: `border-radius: ${radius};`,\n },\n {\n containerName: 'Inactive',\n containerPalette: 'Muted',\n containerPadding: tightPad,\n },\n {\n containerName: 'Callout',\n containerPalette: 'Primary',\n containerLayout: 'column',\n containerAlignment: 'center',\n containerPadding: contentPad,\n containerMargin: '12px 0px',\n containerBorder: `2px solid ${primaryBg}`,\n containerBoxShadow: '',\n containerStyle: `border-radius: ${radius};`,\n },\n ];\n }\n\n // ────────────────────────────────────────────────────────────────────────\n // Buttons — Default Style, Item Select, Create, Delete, Disabled, Highlight,\n // Function, Edit, Action, cell, Logic, Jade, Cancel\n // ────────────────────────────────────────────────────────────────────────\n\n private buildButtons(\n style: StyleProfile,\n purpose: PurposeProfile,\n palette: Palette[],\n semantics: SemanticColors,\n elevationCss: string,\n ): ButtonStyle[] {\n const padding = purpose.buttonPadding;\n const radius = style.borderRadius;\n const shadow = elevationCss;\n const primaryBg = this.bgOf(palette, 'Primary');\n const primaryFg = this.fgOf(palette, 'Primary');\n const secondaryBg = this.bgOf(palette, 'Secondary');\n const secondaryFg = this.fgOf(palette, 'Secondary');\n const accentBg = this.bgOf(palette, 'Accent');\n const accentFg = this.fgOf(palette, 'Accent');\n const mutedBg = this.bgOf(palette, 'Muted');\n\n return [\n {\n buttonName: 'Default Style',\n buttonBackground: primaryBg,\n buttonColor: primaryFg,\n buttonPadding: padding,\n buttonMargin: '6px',\n buttonRadius: radius,\n buttonBorder: style.border === 'none' ? 'none' : style.border,\n buttonShadow: shadow,\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Item Select',\n buttonBackground: secondaryBg,\n buttonColor: secondaryFg,\n buttonPadding: padding,\n buttonMargin: '0px',\n buttonRadius: '0px',\n buttonBorder: '1px solid rgba(0,0,0,0.25)',\n buttonShadow: 'none',\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Create',\n buttonBackground: semantics.success.bg,\n buttonColor: semantics.success.fg,\n buttonPadding: padding,\n buttonMargin: '6px',\n buttonRadius: radius,\n buttonBorder: 'none',\n buttonShadow: shadow,\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Delete',\n buttonBackground: semantics.danger.bg,\n buttonColor: semantics.danger.fg,\n buttonPadding: padding,\n buttonMargin: '8px',\n buttonRadius: radius,\n buttonBorder: 'none',\n buttonShadow: shadow,\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Disabled',\n buttonBackground: semantics.disabled.bg,\n buttonColor: semantics.disabled.fg,\n buttonPadding: padding,\n buttonMargin: '8px',\n buttonRadius: '0px',\n buttonBorder: 'none',\n buttonShadow: 'none',\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Highlight',\n buttonPalette: 'Highlight',\n buttonPadding: padding,\n buttonMargin: '8px',\n buttonRadius: radius,\n buttonBorder: 'none',\n buttonShadow: shadow,\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Function',\n buttonBackground: semantics.info.bg,\n buttonColor: semantics.info.fg,\n buttonPadding: padding,\n buttonMargin: '8px',\n buttonRadius: radius,\n buttonBorder: 'none',\n buttonShadow: shadow,\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Edit',\n buttonBackground: accentBg,\n buttonColor: accentFg,\n buttonPadding: padding,\n buttonMargin: '8px',\n buttonRadius: radius,\n buttonBorder: 'none',\n buttonShadow: shadow,\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Action',\n buttonBackground: primaryBg,\n buttonColor: primaryFg,\n buttonPadding: '8px 6px 8px 16px',\n buttonMargin: '8px',\n buttonRadius: `0px ${radius} ${radius} 0px`,\n buttonBorder: 'none',\n buttonShadow: shadow,\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'cell',\n buttonBackground: this.bgOf(palette, 'Surface'),\n buttonColor: this.fgOf(palette, 'Surface'),\n buttonPadding: '0px',\n buttonMargin: '0px',\n buttonBorder: '1px solid rgba(0,0,0,0.2)',\n buttonShadow: 'none',\n buttonRadius: '0px',\n buttonTypeStyle: 'label',\n },\n {\n buttonName: 'Logic',\n buttonBackground: mutedBg,\n buttonColor: primaryBg,\n buttonPadding: padding,\n buttonMargin: '6px',\n buttonBorder: '2px solid rgba(0,0,0,0.7)',\n buttonRadius: radius,\n buttonTypeStyle: 'subtitle',\n },\n {\n buttonName: 'Jade',\n buttonBackground: this.bgOf(palette, 'Surface'),\n buttonColor: '#1259c8',\n buttonPadding: padding,\n buttonMargin: '3px',\n buttonRadius: radius,\n buttonTypeStyle: 'Jade',\n },\n {\n buttonName: 'Cancel',\n buttonBackground: mutedBg,\n buttonColor: this.fgOf(palette, 'Muted'),\n buttonPadding: padding,\n buttonMargin: '6px',\n buttonRadius: radius,\n buttonBorder: 'none',\n buttonShadow: 'none',\n buttonTypeStyle: 'label',\n },\n ];\n }\n\n // ────────────────────────────────────────────────────────────────────────\n // Accordions — base, Level 1-4, Minimal, Settings, Data row 1-4, Object,\n // Media Details, Docs, Create, TeamChat, Style, Share, UI, Chat Bots,\n // Team, Sheet, App, Report\n // ────────────────────────────────────────────────────────────────────────\n\n private buildAccordions(\n style: StyleProfile,\n purpose: PurposeProfile,\n palette: Palette[],\n layout: ThemeLayout,\n elevationCss: string,\n ): AccordionStyle[] {\n const headerPad = purpose.accordionMode === 'open' ? '8px 12px' : '12px 16px';\n const tight = purpose.density === 'tight';\n\n // Hierarchy palette walk: Primary → Secondary → Accent → Surface\n const hierarchy = ['Primary', 'Secondary', 'Accent', 'Surface'];\n\n const make = (\n name: string,\n overrides: Partial<AccordionStyle> = {},\n ): AccordionStyle => ({\n accordionName: name,\n accordionPalette: 'Surface',\n accordionLayout: layout,\n accordionAlignment: 'stretch',\n accordionPadding: tight ? '4px' : '8px',\n accordionMargin: '0px',\n accordionBorder: style.border,\n accordionBoxShadow: elevationCss,\n accordionExtra: 'max-width: 100vw; box-sizing: border-box;',\n headerOpenPalette: 'Primary',\n headerOpenType: 'H4',\n headerOpenLayout: 'row wrap',\n headerOpenAlignment: 'space-between',\n headerOpenPadding: headerPad,\n headerOpenMargin: '0px',\n headerOpenBorder: 'none',\n headerClosedPalette: 'Surface',\n headerClosedType: 'H4',\n headerClosedLayout: 'row wrap',\n headerClosedAlignment: 'space-between',\n headerClosedPadding: headerPad,\n headerClosedMargin: tight ? '4px' : '6px',\n headerClosedBorder: style.border,\n headerClosedBoxShadow: elevationCss,\n ...overrides,\n });\n\n const primaryBg = this.bgOf(palette, 'Primary');\n\n return [\n make('base'),\n\n // Hierarchical levels — palette walks deeper at each level\n make('Level 1', { accordionPalette: hierarchy[0], headerOpenPalette: hierarchy[0], headerClosedPalette: hierarchy[0] }),\n make('Level 2', { accordionPalette: hierarchy[1], headerOpenPalette: hierarchy[1], headerClosedPalette: hierarchy[1], headerClosedMargin: '4px 0px 4px 12px' }),\n make('Level 3', { accordionPalette: hierarchy[2], headerOpenPalette: hierarchy[2], headerClosedPalette: hierarchy[2], headerClosedMargin: '4px 0px 4px 24px' }),\n make('Level 4', { accordionPalette: hierarchy[3], headerOpenPalette: hierarchy[3], headerClosedPalette: hierarchy[3], headerClosedMargin: '4px 0px 4px 36px' }),\n\n // Minimal — compact, no shadow\n make('Minimal', {\n accordionPadding: '0px',\n accordionMargin: '0px',\n accordionBorder: 'none',\n accordionBoxShadow: 'none',\n headerOpenType: 'label',\n headerClosedType: 'label',\n headerOpenPadding: '4px 8px',\n headerClosedPadding: '4px 8px',\n headerClosedBoxShadow: 'none',\n }),\n\n // Settings — full-width\n make('Settings', {\n accordionPalette: 'Secondary',\n accordionWidth: '100vw',\n accordionPadding: '0px',\n accordionMargin: '0px',\n accordionAlignment: \"center\",\n headerOpenWidth: '100vw',\n headerClosedWidth: '100vw',\n }),\n\n // Object — structured data accordion\n make('Object', {\n accordionAlignment: 'space-evenly',\n headerOpenPalette: 'Accent',\n headerClosedPalette: 'Surface',\n headerClosedBoxShadow: 'inset -2px 0px 7px 6px rgba(170,170,170,0.6)',\n }),\n\n // Media Details\n make('Media Details', {\n accordionPalette: 'Surface',\n headerOpenType: 'body',\n headerClosedType: 'body',\n }),\n\n // Docs\n make('Docs', {\n accordionPalette: 'Surface',\n accordionAlignment: 'space-evenly',\n headerOpenType: 'H3',\n headerClosedType: 'H3',\n headerClosedPadding: '12px',\n headerClosedMargin: '12px',\n }),\n\n // Create\n make('Create', {\n accordionWidth: 'fit-content',\n accordionAlignment: 'left',\n accordionPalette: 'Accent',\n accordionPadding: '4px',\n accordionMargin: '0px',\n headerOpenType: 'label',\n headerClosedType: 'H5',\n headerOpenPadding: '0px',\n headerClosedPadding: '4px',\n headerClosedAlignment: 'left',\n headerClosedMargin: '0px',\n }),\n\n // TeamChat\n make('TeamChat', {\n accordionWidth: 'auto',\n accordionPalette: 'Secondary',\n headerOpenPadding: '12px',\n headerClosedPadding: '12px',\n headerOpenWidth: 'auto',\n headerClosedWidth: 'auto',\n headerClosedBorder: '1px solid rgba(0,0,0,0.2)',\n }),\n\n // Style\n make('Style', {\n accordionWidth: '100vw',\n accordionAlignment: 'space-evenly',\n accordionPalette: 'Accent',\n headerOpenType: 'label',\n headerClosedType: 'label',\n }),\n\n // Share\n make('Share', {\n accordionWidth: '100vw',\n accordionAlignment: 'space-evenly',\n accordionPalette: 'Secondary',\n headerOpenPalette: 'Secondary',\n headerClosedPalette: 'Secondary',\n headerOpenType: 'label',\n headerClosedType: 'label',\n }),\n\n // UI\n make('UI', {\n accordionPalette: 'Accent',\n accordionPadding: '0px',\n accordionMargin: '0px',\n headerOpenType: 'label',\n headerClosedType: 'H5',\n headerClosedPadding: '12px 30px',\n headerOpenPadding: '6px 12px',\n headerClosedBoxShadow: 'rgba(50, 50, 93, 0.25) 0px 30px 60px -12px inset, rgba(0, 0, 0, 0.3) 0px 18px 36px -18px inset',\n }),\n\n // Chat Bots\n make('Chat Bots', {\n accordionPalette: 'Muted',\n }),\n\n // LabelBox tools — each has a distinct tinted border\n\n // Primary app views\n make('Team', {\n accordionPalette: 'Primary',\n accordionAlignment: 'space-evenly',\n accordionPadding: '0px',\n accordionMargin: '0px',\n headerClosedType: 'title',\n }),\n make('Sheet', {\n accordionPalette: 'Surface',\n headerOpenType: 'H4',\n headerClosedType: 'H4',\n }),\n make('App', {\n accordionPalette: 'Primary',\n accordionAlignment: 'center',\n headerOpenType: 'title',\n headerClosedType: 'title',\n }),\n make('Report', {\n accordionPalette: 'Surface',\n accordionLayout: 'column',\n headerOpenType: 'H3',\n headerClosedType: 'H3',\n headerClosedBoxShadow: `inset 0 -1px 0 ${primaryBg}`,\n }),\n ];\n }\n\n // ────────────────────────────────────────────────────────────────────────\n // Classes — color-blue, justifyRight\n // ────────────────────────────────────────────────────────────────────────\n\n private buildClasses(): ClassStyle[] {\n return [\n { className: 'color-blue', class: 'color: blue;' },\n { className: 'justifyRight', class: 'justify-content: flex-end;\\njustify-self: flex-end;' },\n ];\n }\n\n private capitalize(s: string): string {\n return s.charAt(0).toUpperCase() + s.slice(1);\n }\n}\n","// Shared theme types for the Angular service and the framework-agnostic\n// client. Defined locally (not imported from platform-object.service) so a\n// published package has no internal cross-file dependencies.\n\nexport interface ThemeShare {\n readAccess: 'Private' | 'Team';\n writeAccess: 'Private' | 'Team';\n publicReadAccess: string;\n publicWriteAccess: string;\n}\n\nexport interface Theme {\n objectId: string;\n collectionName: 'theme';\n companyId: string;\n createdBy: string;\n created: number;\n updated: number;\n updatedBy: string;\n removed: boolean;\n share: ThemeShare;\n favorite?: boolean;\n tags?: string[];\n data: Record<string, unknown>;\n}\n\nexport interface ThemesResponse {\n success: boolean;\n data?: Theme[];\n error?: string;\n}\n\nexport interface ThemeResponse {\n success: boolean;\n data?: Theme;\n error?: string;\n}\n","/*\n * Public API Surface of faster-themes\n */\nexport * from './lib/faster-themes.module';\nexport * from './lib/faster-themes.component';\nexport * from './lib/faster-themes.service';\nexport * from './lib/accordion/accordion.component';\nexport * from './lib/accordion/directives/accordion-title.directive';\nexport * from './lib/accordion/directives/accordion-header.directive';\nexport * from './lib/accordion/directives/accordion-content.directive';\nexport * from './lib/accordion/directives/accordion-item.directive';\nexport * from './lib/accordion/toggle.pipe';\nexport * from './lib/accordion/directives/ripple.directive';\nexport * from './lib/directives/nColor.directive';\nexport * from './lib/directives/nContainer.directive';\nexport * from './lib/directives/nType.directive';\nexport * from './lib/directives/nButton.directive';\nexport * from './lib/directives/nClass.directive';\nexport * from './lib/theme-generator/theme-generator.component';\nexport * from './lib/theme.service';\nexport * from './lib/theme.types';\n\n/* Napkin Tools */\n/*\nexport * from './lib/napkin-tools/napkin-tools.module';\nexport * from './lib/napkin-tools/button/button-component';\nexport * from './lib/napkin-tools/nField.directive';\n*/\n\n\n\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ThemeService","i1.FasterThemesService","i3.TogglePipe","i2.RippleDirective","i1"],"mappings":"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"}
|