@yelbolt/engine-ui-color-palette 1.10.2
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.
- package/LICENSE +21 -0
- package/README.md +430 -0
- package/dist/color-DTr3No_G.js +540 -0
- package/dist/color-DTr3No_G.js.map +1 -0
- package/dist/formats/primitives/makeCompose.d.ts +4 -0
- package/dist/formats/primitives/makeCompose.d.ts.map +1 -0
- package/dist/formats/primitives/makeCssCustomProps.d.ts +5 -0
- package/dist/formats/primitives/makeCssCustomProps.d.ts.map +1 -0
- package/dist/formats/primitives/makeCsv.d.ts +13 -0
- package/dist/formats/primitives/makeCsv.d.ts.map +1 -0
- package/dist/formats/primitives/makeDtcgTokens.d.ts +5 -0
- package/dist/formats/primitives/makeDtcgTokens.d.ts.map +1 -0
- package/dist/formats/primitives/makeLessVariables.d.ts +5 -0
- package/dist/formats/primitives/makeLessVariables.d.ts.map +1 -0
- package/dist/formats/primitives/makeNativeTokens.d.ts +4 -0
- package/dist/formats/primitives/makeNativeTokens.d.ts.map +1 -0
- package/dist/formats/primitives/makeResources.d.ts +4 -0
- package/dist/formats/primitives/makeResources.d.ts.map +1 -0
- package/dist/formats/primitives/makeScssVariables.d.ts +5 -0
- package/dist/formats/primitives/makeScssVariables.d.ts.map +1 -0
- package/dist/formats/primitives/makeStyleDictionaryV3Tokens.d.ts +4 -0
- package/dist/formats/primitives/makeStyleDictionaryV3Tokens.d.ts.map +1 -0
- package/dist/formats/primitives/makeSwiftUI.d.ts +4 -0
- package/dist/formats/primitives/makeSwiftUI.d.ts.map +1 -0
- package/dist/formats/primitives/makeTailwindV3Config.d.ts +4 -0
- package/dist/formats/primitives/makeTailwindV3Config.d.ts.map +1 -0
- package/dist/formats/primitives/makeTailwindV4Config.d.ts +4 -0
- package/dist/formats/primitives/makeTailwindV4Config.d.ts.map +1 -0
- package/dist/formats/primitives/makeUIKit.d.ts +4 -0
- package/dist/formats/primitives/makeUIKit.d.ts.map +1 -0
- package/dist/formats/primitives/makeUniversalTokens.d.ts +4 -0
- package/dist/formats/primitives/makeUniversalTokens.d.ts.map +1 -0
- package/dist/formats/semantics/_helpers.d.ts +26 -0
- package/dist/formats/semantics/_helpers.d.ts.map +1 -0
- package/dist/formats/semantics/makeComposeSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeComposeSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeCssSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeCssSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeCsvSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeCsvSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeDtcgSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeDtcgSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeLessSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeLessSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeNativeSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeNativeSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeResourcesSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeResourcesSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeScssSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeScssSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeStyleDictionaryV3Semantics.d.ts +5 -0
- package/dist/formats/semantics/makeStyleDictionaryV3Semantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeSwiftUISemantics.d.ts +5 -0
- package/dist/formats/semantics/makeSwiftUISemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeTailwindV3Semantics.d.ts +5 -0
- package/dist/formats/semantics/makeTailwindV3Semantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeTailwindV4Semantics.d.ts +5 -0
- package/dist/formats/semantics/makeTailwindV4Semantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeUIKitSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeUIKitSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeUniversalSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeUniversalSemantics.d.ts.map +1 -0
- package/dist/index-Beb8qoyd.js +1403 -0
- package/dist/index-Beb8qoyd.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/code/code.d.ts +28 -0
- package/dist/modules/code/code.d.ts.map +1 -0
- package/dist/modules/code/code.js +1312 -0
- package/dist/modules/code/code.js.map +1 -0
- package/dist/modules/color/color.d.ts +49 -0
- package/dist/modules/color/color.d.ts.map +1 -0
- package/dist/modules/color/color.js +6 -0
- package/dist/modules/color/color.js.map +1 -0
- package/dist/modules/color-harmony/color-harmony.d.ts +25 -0
- package/dist/modules/color-harmony/color-harmony.d.ts.map +1 -0
- package/dist/modules/color-harmony/color-harmony.js +147 -0
- package/dist/modules/color-harmony/color-harmony.js.map +1 -0
- package/dist/modules/contrast/contrast.d.ts +19 -0
- package/dist/modules/contrast/contrast.d.ts.map +1 -0
- package/dist/modules/contrast/contrast.js +187 -0
- package/dist/modules/contrast/contrast.js.map +1 -0
- package/dist/modules/data/data.d.ts +17 -0
- package/dist/modules/data/data.d.ts.map +1 -0
- package/dist/modules/data/data.js +461 -0
- package/dist/modules/data/data.js.map +1 -0
- package/dist/modules/dominant-colors/dominant-colors.d.ts +39 -0
- package/dist/modules/dominant-colors/dominant-colors.d.ts.map +1 -0
- package/dist/modules/dominant-colors/dominant-colors.js +198 -0
- package/dist/modules/dominant-colors/dominant-colors.js.map +1 -0
- package/dist/modules/system/system.d.ts +17 -0
- package/dist/modules/system/system.d.ts.map +1 -0
- package/dist/modules/system/system.js +78 -0
- package/dist/modules/system/system.js.map +1 -0
- package/dist/types/code.types.d.ts +6 -0
- package/dist/types/code.types.d.ts.map +1 -0
- package/dist/types/color.types.d.ts +45 -0
- package/dist/types/color.types.d.ts.map +1 -0
- package/dist/types/configuration.types.d.ts +154 -0
- package/dist/types/configuration.types.d.ts.map +1 -0
- package/dist/types/data.types.d.ts +135 -0
- package/dist/types/data.types.d.ts.map +1 -0
- package/dist/types/model.types.d.ts +3 -0
- package/dist/types/model.types.d.ts.map +1 -0
- package/dist/types/system.types.d.ts +40 -0
- package/dist/types/system.types.d.ts.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code.js","sources":["../../../node_modules/@unoff/utils/dist/modules/case/case.js","../../../src/formats/semantics/_helpers.ts","../../../src/formats/semantics/makeUniversalSemantics.ts","../../../src/formats/semantics/makeUIKitSemantics.ts","../../../src/formats/semantics/makeTailwindV4Semantics.ts","../../../src/formats/semantics/makeTailwindV3Semantics.ts","../../../src/formats/semantics/makeSwiftUISemantics.ts","../../../src/formats/semantics/makeStyleDictionaryV3Semantics.ts","../../../src/formats/semantics/makeScssSemantics.ts","../../../src/formats/semantics/makeResourcesSemantics.ts","../../../src/formats/primitives/makeNativeTokens.ts","../../../src/formats/semantics/makeNativeSemantics.ts","../../../src/formats/semantics/makeLessSemantics.ts","../../../src/formats/semantics/makeDtcgSemantics.ts","../../../src/formats/semantics/makeCsvSemantics.ts","../../../src/formats/semantics/makeCssSemantics.ts","../../../src/formats/semantics/makeComposeSemantics.ts","../../../src/formats/primitives/makeUniversalTokens.ts","../../../src/formats/primitives/makeUIKit.ts","../../../src/formats/primitives/makeTailwindV4Config.ts","../../../src/formats/primitives/makeTailwindV3Config.ts","../../../src/formats/primitives/makeSwiftUI.ts","../../../src/formats/primitives/makeStyleDictionaryV3Tokens.ts","../../../src/formats/primitives/makeScssVariables.ts","../../../src/formats/primitives/makeResources.ts","../../../src/formats/primitives/makeLessVariables.ts","../../../src/formats/primitives/makeDtcgTokens.ts","../../../src/formats/primitives/makeCsv.ts","../../../src/formats/primitives/makeCssCustomProps.ts","../../../src/formats/primitives/makeCompose.ts","../../../src/modules/code/code.ts"],"sourcesContent":["var r = Object.defineProperty;\nvar o = (s, e, t) => e in s ? r(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;\nvar a = (s, e, t) => o(s, typeof e != \"symbol\" ? e + \"\" : e, t);\nclass p {\n constructor(e) {\n a(this, \"string\");\n a(this, \"doSnakeCase\", () => this.string.toLowerCase().split(\" \").join(\"_\").replace(/[@/$^%#&!?.,;:+=<>(){}\"«»]/g, \"\"));\n a(this, \"doPascalCase\", () => this.string.charAt(0).toUpperCase() + this.string.toLowerCase().replace(/[^a-zA-Z0-9]+(.)/g, (e) => e.toUpperCase()).replace(/[@/$^%#&!?.,;:+=<>(){}\"«» ]/g, \"\").slice(1));\n a(this, \"doKebabCase\", () => this.string.toLowerCase().split(\" \").join(\"-\").replace(/[@/$^%#&!?.,;:+=<>(){}\"«»]/g, \"\"));\n a(this, \"doCamelCase\", () => this.string.toLowerCase().replace(/[^a-zA-Z0-9]+(.)/g, (e) => e.toUpperCase()).replace(/[@/$^%#&!?.,;:+=<>(){}\"«» ]/g, \"\"));\n this.string = e;\n }\n}\nexport {\n p as default\n};\n//# sourceMappingURL=case.js.map\n","import { SystemData, SystemDataToken } from '@tps/system.types'\nimport { PaletteData, PaletteDataThemeItem } from '@tps/data.types'\n\nexport interface ParsedRef {\n themeId: string\n colorId: string\n shadeName: string\n}\n\nexport const parseShadeId = (shadeId: string): ParsedRef | null => {\n const parts = shadeId.split(':')\n if (parts.length !== 3) return null\n const [themeId, colorId, shadeName] = parts\n if (!themeId || !colorId || !shadeName) return null\n return { themeId, colorId, shadeName }\n}\n\nexport const findColorName = (\n paletteData: PaletteData,\n themeId: string,\n colorId: string\n): string | null => {\n const theme = paletteData.themes.find((t) => t.id === themeId)\n const color = theme?.colors.find((c) => c.id === colorId)\n return color?.name ?? null\n}\n\nexport const findThemeName = (\n paletteData: PaletteData,\n themeId: string\n): string | null =>\n paletteData.themes.find((t) => t.id === themeId)?.name ?? null\n\nexport const workingThemes = (\n paletteData: PaletteData\n): Array<PaletteDataThemeItem> =>\n paletteData.themes.filter((t) => t.type === 'custom theme').length === 0\n ? paletteData.themes.filter((t) => t.type === 'default theme')\n : paletteData.themes.filter((t) => t.type === 'custom theme')\n\nexport const isSourceShade = (shadeName: string): boolean =>\n shadeName === 'source'\n\nexport interface ResolvedTokenForTheme {\n themeId: string\n themeName: string | null\n colorName: string | null\n shadeName: string | null\n isUnbound: boolean\n}\n\nexport const resolveTokenPerTheme = (\n paletteData: PaletteData,\n token: SystemDataToken\n): Array<ResolvedTokenForTheme> =>\n token.refs.map((r) => {\n if (r.shadeId === null)\n return {\n themeId: r.themeId,\n themeName: findThemeName(paletteData, r.themeId),\n colorName: null,\n shadeName: null,\n isUnbound: true,\n }\n const parsed = parseShadeId(r.shadeId)\n if (!parsed)\n return {\n themeId: r.themeId,\n themeName: findThemeName(paletteData, r.themeId),\n colorName: null,\n shadeName: null,\n isUnbound: true,\n }\n return {\n themeId: r.themeId,\n themeName: findThemeName(paletteData, r.themeId),\n colorName: findColorName(paletteData, r.themeId, parsed.colorId),\n shadeName: parsed.shadeName,\n isUnbound: false,\n }\n })\n\nexport const partitionTokens = (\n paletteData: PaletteData,\n systemData: SystemData\n): {\n bound: Array<SystemDataToken>\n unbound: Array<SystemDataToken>\n excluded: Array<SystemDataToken>\n} => {\n const bound: Array<SystemDataToken> = []\n const unbound: Array<SystemDataToken> = []\n const excluded: Array<SystemDataToken> = []\n systemData.tokens.forEach((token) => {\n if (token.isExcluded) {\n excluded.push(token)\n return\n }\n const resolved = resolveTokenPerTheme(paletteData, token)\n if (resolved.every((r) => r.isUnbound)) unbound.push(token)\n else bound.push(token)\n })\n return { bound, unbound, excluded }\n}\n","import { Case } from '@unoff/utils'\nimport { SystemData } from '@tps/system.types'\nimport { PaletteData } from '@tps/data.types'\nimport {\n partitionTokens,\n resolveTokenPerTheme,\n workingThemes,\n} from './_helpers'\n\nconst makeUniversalSemantics = (\n paletteData: PaletteData,\n systemData: SystemData\n): string => {\n const { bound, unbound } = partitionTokens(paletteData, systemData)\n const themes = workingThemes(paletteData)\n const customThemes = themes.filter((t) => t.type === 'custom theme')\n\n const root: Record<string, unknown> = {}\n if (unbound.length > 0)\n root['_unbound'] = unbound.map((t) => t.pathNames.join('.'))\n\n const setNested = (\n obj: Record<string, unknown>,\n keys: Array<string>,\n value: unknown\n ) => {\n let cur: Record<string, unknown> = obj\n for (let i = 0; i < keys.length - 1; i++) {\n const k = keys[i]\n if (typeof cur[k] !== 'object' || cur[k] === null) cur[k] = {}\n cur = cur[k] as Record<string, unknown>\n }\n cur[keys[keys.length - 1]] = value\n }\n\n const refFor = (colorName: string, shadeName: string) => ({\n $ref: `${new Case(colorName).doKebabCase()}.${shadeName}`,\n })\n\n if (customThemes.length === 0) {\n bound.forEach((t) => {\n const keys = t.pathNames.map((p) => new Case(p).doKebabCase())\n const resolved = resolveTokenPerTheme(paletteData, t)\n const r = resolved.find((rr) => !rr.isUnbound)\n if (!r || !r.colorName || !r.shadeName) return\n setNested(root, keys, refFor(r.colorName, r.shadeName))\n })\n } else {\n themes.forEach((theme) => {\n const themeKey = new Case(theme.name).doKebabCase()\n const themeBlock: Record<string, unknown> = {}\n bound.forEach((t) => {\n const keys = t.pathNames.map((p) => new Case(p).doKebabCase())\n const resolved = resolveTokenPerTheme(paletteData, t)\n const r = resolved.find((rr) => rr.themeId === theme.id)\n if (!r || r.isUnbound || !r.colorName || !r.shadeName) return\n setNested(themeBlock, keys, refFor(r.colorName, r.shadeName))\n })\n root[themeKey] = themeBlock\n })\n }\n\n return JSON.stringify(root, null, 2)\n}\n\nexport default makeUniversalSemantics\n","import { Case } from '@unoff/utils'\nimport { SystemData } from '@tps/system.types'\nimport { PaletteData } from '@tps/data.types'\nimport {\n partitionTokens,\n resolveTokenPerTheme,\n workingThemes,\n} from './_helpers'\n\nconst makeUIKitSemantics = (\n paletteData: PaletteData,\n systemData: SystemData\n): string => {\n const { bound, unbound } = partitionTokens(paletteData, systemData)\n const themes = workingThemes(paletteData)\n const defaultTheme =\n paletteData.themes.find((t) => t.type === 'default theme') ?? themes[0]\n const customThemes = themes.filter((t) => t.type === 'custom theme')\n\n const out: Array<string> = ['import UIKit', '']\n\n if (unbound.length > 0) {\n out.push('// Unbound semantic tokens')\n unbound.forEach((t) => out.push(`// ${t.pathNames.join('-')}`))\n out.push('')\n }\n\n const camelToken = (parts: Array<string>) =>\n new Case(parts.join(' ')).doCamelCase()\n const primitiveRef = (\n themeName: string | null,\n colorName: string,\n shadeName: string\n ) => {\n const colorCamel = new Case(colorName).doCamelCase()\n const shadeCamel =\n shadeName === 'source' ? 'Source' : new Case(shadeName).doPascalCase()\n if (themeName) {\n const themePascal = new Case(themeName).doPascalCase()\n return `Color.${themePascal}.${colorCamel}${shadeCamel}`\n }\n return `Color.${colorCamel}${shadeCamel}`\n }\n\n out.push('struct SemanticToken {')\n\n if (customThemes.length === 0) {\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const def =\n resolved.find((r) => r.themeId === defaultTheme.id && !r.isUnbound) ??\n resolved.find((r) => !r.isUnbound)\n if (!def || !def.colorName || !def.shadeName) return\n out.push(\n ` static let ${camelToken(t.pathNames)} = ${primitiveRef(null, def.colorName, def.shadeName)}`\n )\n })\n } else {\n themes.forEach((theme) => {\n const themePascal = new Case(theme.name).doPascalCase()\n out.push(` struct ${themePascal} {`)\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const r = resolved.find((rr) => rr.themeId === theme.id)\n if (!r || r.isUnbound || !r.colorName || !r.shadeName) return\n out.push(\n ` static let ${camelToken(t.pathNames)} = ${primitiveRef(theme.name, r.colorName, r.shadeName)}`\n )\n })\n out.push(' }')\n })\n }\n\n out.push('}')\n\n return out.join('\\n')\n}\n\nexport default makeUIKitSemantics\n","import { Case } from '@unoff/utils'\nimport { SystemData } from '@tps/system.types'\nimport { PaletteData } from '@tps/data.types'\nimport {\n partitionTokens,\n resolveTokenPerTheme,\n workingThemes,\n} from './_helpers'\n\nconst makeTailwindV4Semantics = (\n paletteData: PaletteData,\n systemData: SystemData\n): string => {\n const { bound, unbound } = partitionTokens(paletteData, systemData)\n const themes = workingThemes(paletteData)\n const defaultTheme =\n paletteData.themes.find((t) => t.type === 'default theme') ?? themes[0]\n const customThemes = themes.filter((t) => t.type === 'custom theme')\n\n const out: Array<string> = ['@import \"tailwindcss\";', '']\n\n if (unbound.length > 0) {\n out.push('/* Unbound semantic tokens */')\n unbound.forEach((t) => out.push(`/* ${t.pathNames.join('-')} */`))\n out.push('')\n }\n\n const tokenName = (parts: Array<string>) =>\n `--color-${parts.map((p) => new Case(p).doKebabCase()).join('-')}`\n const primitiveRef = (colorName: string, shadeName: string) =>\n `var(--color-${new Case(colorName).doKebabCase()}-${shadeName})`\n\n out.push('@theme {')\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const def =\n resolved.find((r) => r.themeId === defaultTheme.id && !r.isUnbound) ??\n resolved.find((r) => !r.isUnbound)\n if (!def || !def.colorName || !def.shadeName) return\n out.push(\n ` ${tokenName(t.pathNames)}: ${primitiveRef(def.colorName, def.shadeName)};`\n )\n })\n out.push('}')\n\n customThemes.forEach((theme) => {\n const overrideLines: Array<string> = []\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const themeRef = resolved.find((r) => r.themeId === theme.id)\n const defRef =\n resolved.find((r) => r.themeId === defaultTheme.id && !r.isUnbound) ??\n resolved.find((r) => !r.isUnbound)\n if (\n !themeRef ||\n themeRef.isUnbound ||\n !themeRef.colorName ||\n !themeRef.shadeName\n )\n return\n if (\n defRef &&\n defRef.colorName === themeRef.colorName &&\n defRef.shadeName === themeRef.shadeName\n )\n return\n overrideLines.push(\n ` ${tokenName(t.pathNames)}: ${primitiveRef(themeRef.colorName, themeRef.shadeName)};`\n )\n })\n if (overrideLines.length === 0) return\n out.push('')\n out.push(`/* ${theme.name} */`)\n out.push(`[data-theme='${new Case(theme.name).doKebabCase()}'] {`)\n out.push(...overrideLines)\n out.push('}')\n })\n\n return out.join('\\n')\n}\n\nexport default makeTailwindV4Semantics\n","import { Case } from '@unoff/utils'\nimport { SystemData } from '@tps/system.types'\nimport { PaletteData } from '@tps/data.types'\nimport {\n partitionTokens,\n resolveTokenPerTheme,\n workingThemes,\n} from './_helpers'\n\nconst makeTailwindV3Semantics = (\n paletteData: PaletteData,\n systemData: SystemData\n): string => {\n const { bound, unbound } = partitionTokens(paletteData, systemData)\n const themes = workingThemes(paletteData)\n const defaultTheme =\n paletteData.themes.find((t) => t.type === 'default theme') ?? themes[0]\n const customThemes = themes.filter((t) => t.type === 'custom theme')\n\n const out: Array<string> = []\n out.push('// Semantic token map. Import alongside primitives.js:')\n out.push(\"// const primitives = require('./primitives.js')\")\n out.push(\"// const semantics = require('./semantics.js')(primitives)\")\n out.push('')\n\n if (unbound.length > 0) {\n out.push('// Unbound semantic tokens')\n unbound.forEach((t) => out.push(`// ${t.pathNames.join('-')}`))\n out.push('')\n }\n\n const tokenKey = (parts: Array<string>) =>\n `'${parts.map((p) => new Case(p).doKebabCase()).join('-')}'`\n const ref = (\n themeKey: string | null,\n colorName: string,\n shadeName: string\n ) => {\n const c = new Case(colorName).doKebabCase()\n if (themeKey) return `primitives['${themeKey}']['${c}']['${shadeName}']`\n return `primitives['${c}']['${shadeName}']`\n }\n\n out.push('module.exports = function (primitives) {')\n out.push(' return {')\n\n if (customThemes.length === 0) {\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const def =\n resolved.find((r) => r.themeId === defaultTheme.id && !r.isUnbound) ??\n resolved.find((r) => !r.isUnbound)\n if (!def || !def.colorName || !def.shadeName) return\n out.push(\n ` ${tokenKey(t.pathNames)}: ${ref(null, def.colorName, def.shadeName)},`\n )\n })\n } else {\n themes.forEach((theme) => {\n const themeKey = new Case(theme.name).doKebabCase()\n out.push(` '${themeKey}': {`)\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const r = resolved.find((rr) => rr.themeId === theme.id)\n if (!r || r.isUnbound || !r.colorName || !r.shadeName) return\n out.push(\n ` ${tokenKey(t.pathNames)}: ${ref(themeKey, r.colorName, r.shadeName)},`\n )\n })\n out.push(' },')\n })\n }\n\n out.push(' }')\n out.push('}')\n\n return out.join('\\n')\n}\n\nexport default makeTailwindV3Semantics\n","import { Case } from '@unoff/utils'\nimport { SystemData } from '@tps/system.types'\nimport { PaletteData } from '@tps/data.types'\nimport {\n partitionTokens,\n resolveTokenPerTheme,\n workingThemes,\n} from './_helpers'\n\nconst makeSwiftUISemantics = (\n paletteData: PaletteData,\n systemData: SystemData\n): string => {\n const { bound, unbound } = partitionTokens(paletteData, systemData)\n const themes = workingThemes(paletteData)\n const defaultTheme =\n paletteData.themes.find((t) => t.type === 'default theme') ?? themes[0]\n const customThemes = themes.filter((t) => t.type === 'custom theme')\n\n const out: Array<string> = ['import SwiftUI', '']\n\n if (unbound.length > 0) {\n out.push('// Unbound semantic tokens')\n unbound.forEach((t) => out.push(`// ${t.pathNames.join('-')}`))\n out.push('')\n }\n\n const camelToken = (parts: Array<string>) =>\n new Case(parts.join(' ')).doCamelCase()\n const primitiveRef = (\n themeName: string | null,\n colorName: string,\n shadeName: string\n ) => {\n const colorCamel = new Case(colorName).doCamelCase()\n const shadeCamel =\n shadeName === 'source' ? 'Source' : new Case(shadeName).doPascalCase()\n if (themeName) {\n const themeCamel = new Case(themeName).doCamelCase()\n return `Color.Token().${themeCamel}${new Case(colorName).doPascalCase()}${shadeCamel}`\n }\n return `Color.Token().${colorCamel}${shadeCamel}`\n }\n\n out.push('public extension Color {')\n out.push(' static let SemanticToken = Color.SemanticTokenColor()')\n out.push(' struct SemanticTokenColor {')\n\n if (customThemes.length === 0) {\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const def =\n resolved.find((r) => r.themeId === defaultTheme.id && !r.isUnbound) ??\n resolved.find((r) => !r.isUnbound)\n if (!def || !def.colorName || !def.shadeName) return\n out.push(\n ` public let ${camelToken(t.pathNames)} = ${primitiveRef(null, def.colorName, def.shadeName)}`\n )\n })\n } else {\n themes.forEach((theme) => {\n const themePrefix = new Case(theme.name).doCamelCase()\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const r = resolved.find((rr) => rr.themeId === theme.id)\n if (!r || r.isUnbound || !r.colorName || !r.shadeName) return\n const tokenName =\n themePrefix +\n new Case(t.pathNames.join(' ')).doPascalCase().replace(/\\s+/g, '')\n out.push(\n ` public let ${tokenName} = ${primitiveRef(theme.name, r.colorName, r.shadeName)}`\n )\n })\n })\n }\n\n out.push(' }')\n out.push('}')\n\n return out.join('\\n')\n}\n\nexport default makeSwiftUISemantics\n","import { Case } from '@unoff/utils'\nimport { SystemData } from '@tps/system.types'\nimport { PaletteData } from '@tps/data.types'\nimport {\n partitionTokens,\n resolveTokenPerTheme,\n workingThemes,\n} from './_helpers'\n\nconst makeStyleDictionaryV3Semantics = (\n paletteData: PaletteData,\n systemData: SystemData\n): string => {\n const { bound, unbound } = partitionTokens(paletteData, systemData)\n const themes = workingThemes(paletteData)\n const defaultTheme =\n paletteData.themes.find((t) => t.type === 'default theme') ?? themes[0]\n const customThemes = themes.filter((t) => t.type === 'custom theme')\n\n const root: Record<string, unknown> = {}\n if (unbound.length > 0)\n root['_unbound'] = unbound.map((t) => t.pathNames.join('.'))\n\n const setNested = (\n obj: Record<string, unknown>,\n keys: Array<string>,\n value: unknown\n ) => {\n let cur: Record<string, unknown> = obj\n for (let i = 0; i < keys.length - 1; i++) {\n const k = keys[i]\n if (typeof cur[k] !== 'object' || cur[k] === null) cur[k] = {}\n cur = cur[k] as Record<string, unknown>\n }\n cur[keys[keys.length - 1]] = value\n }\n\n const aliasFor = (colorName: string, shadeName: string) =>\n `{color.${new Case(colorName).doKebabCase()}.${shadeName}}`\n\n // Default tokens nested under 'semantic'\n const semantic: Record<string, unknown> = {}\n bound.forEach((t) => {\n const keys = t.pathNames.map((p) => new Case(p).doKebabCase())\n const resolved = resolveTokenPerTheme(paletteData, t)\n const def =\n resolved.find((r) => r.themeId === defaultTheme.id && !r.isUnbound) ??\n resolved.find((r) => !r.isUnbound)\n if (!def || !def.colorName || !def.shadeName) return\n const tokenObj: Record<string, unknown> = {\n type: 'color',\n value: aliasFor(def.colorName, def.shadeName),\n }\n if (t.description) tokenObj.comment = t.description\n setNested(semantic, keys, tokenObj)\n })\n root['semantic'] = semantic\n\n // Per-theme overrides as additional nested groups\n customThemes.forEach((theme) => {\n const themeKey = new Case(theme.name).doKebabCase()\n const themeBlock: Record<string, unknown> = {}\n bound.forEach((t) => {\n const keys = t.pathNames.map((p) => new Case(p).doKebabCase())\n const resolved = resolveTokenPerTheme(paletteData, t)\n const r = resolved.find((rr) => rr.themeId === theme.id)\n const def =\n resolved.find(\n (rr) => rr.themeId === defaultTheme.id && !rr.isUnbound\n ) ?? resolved.find((rr) => !rr.isUnbound)\n if (!r || r.isUnbound || !r.colorName || !r.shadeName) return\n if (def && def.colorName === r.colorName && def.shadeName === r.shadeName)\n return\n const tokenObj: Record<string, unknown> = {\n type: 'color',\n value: aliasFor(r.colorName, r.shadeName),\n }\n setNested(themeBlock, keys, tokenObj)\n })\n if (Object.keys(themeBlock).length > 0) root[themeKey] = themeBlock\n })\n\n return JSON.stringify(root, null, 2)\n}\n\nexport default makeStyleDictionaryV3Semantics\n","import { Case } from '@unoff/utils'\nimport { SystemData } from '@tps/system.types'\nimport { PaletteData } from '@tps/data.types'\nimport {\n partitionTokens,\n resolveTokenPerTheme,\n workingThemes,\n} from './_helpers'\n\nconst makeScssSemantics = (\n paletteData: PaletteData,\n systemData: SystemData\n): string => {\n const { bound, unbound } = partitionTokens(paletteData, systemData)\n const themes = workingThemes(paletteData)\n const defaultTheme =\n paletteData.themes.find((t) => t.type === 'default theme') ?? themes[0]\n const customThemes = themes.filter((t) => t.type === 'custom theme')\n\n const out: Array<string> = []\n\n if (unbound.length > 0) {\n out.push('// Unbound semantic tokens')\n unbound.forEach((t) => out.push(`// ${t.pathNames.join('-')}`))\n out.push('')\n }\n\n const tokenName = (parts: Array<string>) =>\n parts.map((p) => new Case(p).doKebabCase()).join('-')\n const primitiveRefScss = (colorName: string, shadeName: string) =>\n `$${new Case(colorName).doKebabCase()}-${shadeName}`\n const primitiveRefVar = (colorName: string, shadeName: string) =>\n `var(--${new Case(colorName).doKebabCase()}-${shadeName})`\n\n if (customThemes.length === 0) {\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const def =\n resolved.find((r) => r.themeId === defaultTheme.id && !r.isUnbound) ??\n resolved.find((r) => !r.isUnbound)\n if (!def || !def.colorName || !def.shadeName) return\n out.push(\n `$${tokenName(t.pathNames)}: ${primitiveRefScss(def.colorName, def.shadeName)};`\n )\n })\n return out.join('\\n')\n }\n\n // With custom themes: emit a mixin per theme that sets CSS custom props,\n // plus a top-level $... = var(--...) shortcut.\n bound.forEach((t) => {\n out.push(`$${tokenName(t.pathNames)}: var(--${tokenName(t.pathNames)});`)\n })\n out.push('')\n\n themes.forEach((theme) => {\n const isDefault = theme.type === 'default theme'\n const mixinName = `${new Case(theme.name).doKebabCase()}-semantics`\n out.push(`@mixin ${mixinName} {`)\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const ref = resolved.find((r) => r.themeId === theme.id)\n if (!ref || ref.isUnbound || !ref.colorName || !ref.shadeName) return\n out.push(\n ` --${tokenName(t.pathNames)}: ${primitiveRefVar(ref.colorName, ref.shadeName)};`\n )\n })\n out.push('}')\n out.push('')\n if (isDefault) {\n out.push(':root {')\n out.push(` @include ${mixinName};`)\n out.push('}')\n } else {\n out.push(`:root[data-theme='${new Case(theme.name).doKebabCase()}'] {`)\n out.push(` @include ${mixinName};`)\n out.push('}')\n }\n out.push('')\n })\n\n return out.join('\\n').replace(/\\n+$/, '\\n')\n}\n\nexport default makeScssSemantics\n","import { Case } from '@unoff/utils'\nimport { SystemData } from '@tps/system.types'\nimport { PaletteData } from '@tps/data.types'\nimport {\n partitionTokens,\n resolveTokenPerTheme,\n workingThemes,\n} from './_helpers'\n\nconst makeResourcesSemantics = (\n paletteData: PaletteData,\n systemData: SystemData\n): string => {\n const { bound, unbound } = partitionTokens(paletteData, systemData)\n const themes = workingThemes(paletteData)\n const defaultTheme =\n paletteData.themes.find((t) => t.type === 'default theme') ?? themes[0]\n const customThemes = themes.filter((t) => t.type === 'custom theme')\n\n const out: Array<string> = [\n '<?xml version=\"1.0\" encoding=\"utf-8\"?>',\n '<resources>',\n ]\n\n if (unbound.length > 0) {\n out.push(' <!-- Unbound semantic tokens -->')\n unbound.forEach((t) => out.push(` <!-- ${t.pathNames.join('-')} -->`))\n }\n\n const tokenName = (parts: Array<string>) =>\n parts.map((p) => new Case(p).doSnakeCase()).join('_')\n const primitiveRef = (\n themeName: string | null,\n colorName: string,\n shadeName: string\n ) => {\n const c = new Case(colorName).doSnakeCase()\n const s = shadeName === 'source' ? 'source' : shadeName\n if (themeName) {\n const t = new Case(themeName).doSnakeCase()\n return `@color/${t}_${c}_${s}`\n }\n return `@color/${c}_${s}`\n }\n\n if (customThemes.length === 0) {\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const def =\n resolved.find((r) => r.themeId === defaultTheme.id && !r.isUnbound) ??\n resolved.find((r) => !r.isUnbound)\n if (!def || !def.colorName || !def.shadeName) return\n out.push(\n ` <color name=\"${tokenName(t.pathNames)}\">${primitiveRef(null, def.colorName, def.shadeName)}</color>`\n )\n })\n } else {\n themes.forEach((theme) => {\n const themeKey = new Case(theme.name).doSnakeCase()\n out.push(` <!-- ${theme.name} -->`)\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const r = resolved.find((rr) => rr.themeId === theme.id)\n if (!r || r.isUnbound || !r.colorName || !r.shadeName) return\n out.push(\n ` <color name=\"${themeKey}_${tokenName(t.pathNames)}\">${primitiveRef(theme.name, r.colorName, r.shadeName)}</color>`\n )\n })\n })\n }\n\n out.push('</resources>')\n\n return out.join('\\n')\n}\n\nexport default makeResourcesSemantics\n","import chroma from 'chroma-js'\nimport { Case } from '@unoff/utils'\nimport {\n PaletteData,\n PaletteDataColorItem,\n PaletteDataShadeItem,\n} from '@tps/data.types'\n\nconst makeNativeTokens = (paletteData: PaletteData) => {\n const paletteName = paletteData.name\n\n const colorModel = (\n color: PaletteDataColorItem,\n shade: PaletteDataShadeItem,\n source: PaletteDataShadeItem\n ) => {\n return {\n $type: 'color',\n $value: shade.isTransparent\n ? chroma(source.hex)\n .alpha(shade.alpha ?? 1)\n .hex()\n : shade.hex,\n $description:\n color.description !== ''\n ? color.description + ' - ' + shade.description\n : shade.description,\n }\n }\n\n const themeModel = (name: string, description: string) => {\n return {\n name: name,\n group: 'Modes',\n description: description,\n selectedTokenSets: {\n [`${paletteName}/${name}`]: 'enabled',\n },\n }\n }\n\n const workingThemes =\n paletteData.themes.filter((theme) => theme.type === 'custom theme')\n .length === 0\n ? paletteData.themes.filter((theme) => theme.type === 'default theme')\n : paletteData.themes.filter((theme) => theme.type === 'custom theme'),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n json: { [key: string]: any } = {\n $themes: workingThemes\n .filter((theme) => theme.type === 'custom theme')\n .map((theme) => themeModel(theme.name, theme.description)),\n $metadata: {\n activeThemes: [],\n tokenSetOrder: workingThemes\n .filter((theme) => theme.type === 'custom theme')\n .map(\n (theme) =>\n `${new Case(paletteName).doSnakeCase()}/${new Case(theme.name).doSnakeCase()}`\n ),\n activeSets: [],\n },\n }\n\n if (workingThemes[0].type === 'custom theme')\n workingThemes.forEach((theme) => {\n json[`${paletteName}/${theme.name}`] = {}\n\n theme.colors.forEach((color) => {\n const source = color.shades.find(\n (shade) => shade.type === 'source color'\n )\n\n color.shades.forEach((shade) => {\n if (shade && source)\n json[`${paletteName}/${theme.name}`][\n `${new Case(color.name).doSnakeCase()}.${shade.name}`\n ] = colorModel(color, shade, source)\n })\n })\n })\n else\n workingThemes.forEach((theme) => {\n json[paletteName] = {}\n\n theme.colors.forEach((color) => {\n const source = color.shades.find(\n (shade) => shade.type === 'source color'\n )\n\n color.shades.forEach((shade) => {\n if (shade && source)\n json[paletteName][\n `${new Case(color.name).doSnakeCase()}.${shade.name}`\n ] = colorModel(color, shade, source)\n })\n })\n })\n\n return JSON.stringify(json, null, ' ')\n}\n\nexport default makeNativeTokens\n","import { Case } from '@unoff/utils'\nimport { SystemData } from '@tps/system.types'\nimport { PaletteData } from '@tps/data.types'\nimport makeNativeTokens from '../primitives/makeNativeTokens'\nimport {\n partitionTokens,\n resolveTokenPerTheme,\n workingThemes,\n} from './_helpers'\n\n// Tokens Studio requires a single JSON containing both primitive and semantic\n// token sets. This emitter parses the primitives JSON and merges a semantics\n// set in.\nconst makeNativeSemantics = (\n paletteData: PaletteData,\n systemData: SystemData\n): string => {\n const primitivesJson = JSON.parse(makeNativeTokens(paletteData)) as Record<\n string,\n unknown\n >\n const { bound, unbound } = partitionTokens(paletteData, systemData)\n const themes = workingThemes(paletteData)\n const defaultTheme =\n paletteData.themes.find((t) => t.type === 'default theme') ?? themes[0]\n const customThemes = themes.filter((t) => t.type === 'custom theme')\n const paletteName = paletteData.name\n\n const aliasFor = (colorName: string, shadeName: string) =>\n `{${new Case(colorName).doSnakeCase()}.${shadeName}}`\n\n const setKey =\n customThemes.length === 0 ? paletteName : `${paletteName}/semantic`\n primitivesJson[setKey] = primitivesJson[setKey] ?? {}\n const semanticSet = primitivesJson[setKey] as Record<string, unknown>\n\n bound.forEach((t) => {\n const keyPath = t.pathNames.map((p) => new Case(p).doSnakeCase()).join('.')\n const resolved = resolveTokenPerTheme(paletteData, t)\n const def =\n resolved.find((r) => r.themeId === defaultTheme.id && !r.isUnbound) ??\n resolved.find((r) => !r.isUnbound)\n if (!def || !def.colorName || !def.shadeName) return\n const tokenObj: Record<string, unknown> = {\n $type: 'color',\n $value: aliasFor(def.colorName, def.shadeName),\n }\n if (t.description) tokenObj.$description = t.description\n semanticSet[keyPath] = tokenObj\n })\n\n // Per-theme overrides → separate sets\n customThemes.forEach((theme) => {\n const themeSemanticKey = `${paletteName}/${new Case(theme.name).doSnakeCase()}-semantic`\n const themeSet: Record<string, unknown> = {}\n bound.forEach((t) => {\n const keyPath = t.pathNames\n .map((p) => new Case(p).doSnakeCase())\n .join('.')\n const resolved = resolveTokenPerTheme(paletteData, t)\n const r = resolved.find((rr) => rr.themeId === theme.id)\n const def =\n resolved.find(\n (rr) => rr.themeId === defaultTheme.id && !rr.isUnbound\n ) ?? resolved.find((rr) => !rr.isUnbound)\n if (!r || r.isUnbound || !r.colorName || !r.shadeName) return\n if (def && def.colorName === r.colorName && def.shadeName === r.shadeName)\n return\n themeSet[keyPath] = {\n $type: 'color',\n $value: aliasFor(r.colorName, r.shadeName),\n }\n })\n if (Object.keys(themeSet).length > 0)\n primitivesJson[themeSemanticKey] = themeSet\n })\n\n if (unbound.length > 0)\n primitivesJson['_unbound'] = unbound.map((t) => t.pathNames.join('.'))\n\n return JSON.stringify(primitivesJson, null, ' ')\n}\n\nexport default makeNativeSemantics\n","import { Case } from '@unoff/utils'\nimport { SystemData } from '@tps/system.types'\nimport { PaletteData } from '@tps/data.types'\nimport {\n partitionTokens,\n resolveTokenPerTheme,\n workingThemes,\n} from './_helpers'\n\nconst makeLessSemantics = (\n paletteData: PaletteData,\n systemData: SystemData\n): string => {\n const { bound, unbound } = partitionTokens(paletteData, systemData)\n const themes = workingThemes(paletteData)\n const defaultTheme =\n paletteData.themes.find((t) => t.type === 'default theme') ?? themes[0]\n const customThemes = themes.filter((t) => t.type === 'custom theme')\n\n const out: Array<string> = []\n\n if (unbound.length > 0) {\n out.push('// Unbound semantic tokens')\n unbound.forEach((t) => out.push(`// ${t.pathNames.join('-')}`))\n out.push('')\n }\n\n const tokenName = (parts: Array<string>) =>\n parts.map((p) => new Case(p).doKebabCase()).join('-')\n const primitiveRef = (colorName: string, shadeName: string) =>\n `@${new Case(colorName).doKebabCase()}-${shadeName}`\n\n if (customThemes.length === 0) {\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const def =\n resolved.find((r) => r.themeId === defaultTheme.id && !r.isUnbound) ??\n resolved.find((r) => !r.isUnbound)\n if (!def || !def.colorName || !def.shadeName) return\n out.push(\n `@${tokenName(t.pathNames)}: ${primitiveRef(def.colorName, def.shadeName)};`\n )\n })\n return out.join('\\n')\n }\n\n // With custom themes: rules per theme using less mixin pattern (functions)\n themes.forEach((theme) => {\n const isDefault = theme.type === 'default theme'\n const fnName = `${new Case(theme.name).doKebabCase()}-semantics`\n out.push(`.${fnName}() {`)\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const ref = resolved.find((r) => r.themeId === theme.id)\n if (!ref || ref.isUnbound || !ref.colorName || !ref.shadeName) return\n out.push(\n ` @${tokenName(t.pathNames)}: ${primitiveRef(ref.colorName, ref.shadeName)};`\n )\n })\n out.push('}')\n out.push('')\n if (isDefault) {\n out.push(':root {')\n out.push(` .${fnName}();`)\n out.push('}')\n } else {\n out.push(`:root[data-theme='${new Case(theme.name).doKebabCase()}'] {`)\n out.push(` .${fnName}();`)\n out.push('}')\n }\n out.push('')\n })\n\n return out.join('\\n').replace(/\\n+$/, '\\n')\n}\n\nexport default makeLessSemantics\n","import { Case } from '@unoff/utils'\nimport { SystemData } from '@tps/system.types'\nimport { PaletteData } from '@tps/data.types'\nimport {\n partitionTokens,\n resolveTokenPerTheme,\n workingThemes,\n} from './_helpers'\n\nconst makeDtcgSemantics = (\n paletteData: PaletteData,\n systemData: SystemData\n): string => {\n const { bound, unbound } = partitionTokens(paletteData, systemData)\n const themes = workingThemes(paletteData)\n const defaultTheme =\n paletteData.themes.find((t) => t.type === 'default theme') ?? themes[0]\n const customThemes = themes.filter((t) => t.type === 'custom theme')\n\n const root: Record<string, unknown> = {}\n if (unbound.length > 0)\n root['$description'] =\n 'Unbound semantic tokens (no resolution): ' +\n unbound.map((t) => t.pathNames.join('.')).join(', ')\n\n const setNested = (\n obj: Record<string, unknown>,\n keys: Array<string>,\n value: unknown\n ) => {\n let cur: Record<string, unknown> = obj\n for (let i = 0; i < keys.length - 1; i++) {\n const k = keys[i]\n if (typeof cur[k] !== 'object' || cur[k] === null) cur[k] = {}\n cur = cur[k] as Record<string, unknown>\n }\n cur[keys[keys.length - 1]] = value\n }\n\n const aliasFor = (colorName: string, shadeName: string) =>\n `{${new Case(colorName).doKebabCase()}.${shadeName}}`\n\n bound.forEach((t) => {\n const keys = t.pathNames.map((p) => new Case(p).doKebabCase())\n const resolved = resolveTokenPerTheme(paletteData, t)\n const def =\n resolved.find((r) => r.themeId === defaultTheme.id && !r.isUnbound) ??\n resolved.find((r) => !r.isUnbound)\n if (!def || !def.colorName || !def.shadeName) return\n const tokenObj: Record<string, unknown> = {\n $type: 'color',\n $value: aliasFor(def.colorName, def.shadeName),\n }\n if (t.description) tokenObj.$description = t.description\n\n const overrides: Record<string, unknown> = {}\n customThemes.forEach((theme) => {\n const themeRef = resolved.find((r) => r.themeId === theme.id)\n if (\n !themeRef ||\n themeRef.isUnbound ||\n !themeRef.colorName ||\n !themeRef.shadeName\n )\n return\n if (\n def.colorName === themeRef.colorName &&\n def.shadeName === themeRef.shadeName\n )\n return\n overrides[new Case(theme.name).doKebabCase()] = {\n $value: aliasFor(themeRef.colorName, themeRef.shadeName),\n }\n })\n if (Object.keys(overrides).length > 0)\n tokenObj.$extensions = { mode: overrides }\n\n setNested(root, keys, tokenObj)\n })\n\n return JSON.stringify(root, null, 2)\n}\n\nexport default makeDtcgSemantics\n","import { SystemData } from '@tps/system.types'\nimport { PaletteData } from '@tps/data.types'\nimport { parseShadeId } from './_helpers'\n\nconst escapeCsv = (s: string): string =>\n /[\",\\n]/.test(s) ? `\"${s.replace(/\"/g, '\"\"')}\"` : s\n\nconst makeCsvSemantics = (\n _paletteData: PaletteData,\n systemData: SystemData\n): string => {\n const rows: Array<string> = ['path,themeId,colorId,shadeName,shadeId']\n systemData.tokens.forEach((token) => {\n const path = token.pathNames.join('/')\n token.refs.forEach((ref) => {\n if (ref.shadeId === null) {\n rows.push(`${escapeCsv(path)},${escapeCsv(ref.themeId)},,,`)\n return\n }\n const parsed = parseShadeId(ref.shadeId)\n if (!parsed) {\n rows.push(\n `${escapeCsv(path)},${escapeCsv(ref.themeId)},,,${escapeCsv(ref.shadeId)}`\n )\n return\n }\n rows.push(\n `${escapeCsv(path)},${escapeCsv(ref.themeId)},${escapeCsv(parsed.colorId)},${escapeCsv(parsed.shadeName)},${escapeCsv(ref.shadeId)}`\n )\n })\n })\n return rows.join('\\n')\n}\n\nexport default makeCsvSemantics\n","import { Case } from '@unoff/utils'\nimport { SystemData } from '@tps/system.types'\nimport { PaletteData } from '@tps/data.types'\nimport {\n partitionTokens,\n resolveTokenPerTheme,\n workingThemes,\n} from './_helpers'\n\nconst makeCssSemantics = (\n paletteData: PaletteData,\n systemData: SystemData\n): string => {\n const { bound, unbound } = partitionTokens(paletteData, systemData)\n const themes = workingThemes(paletteData)\n const defaultTheme =\n paletteData.themes.find((t) => t.type === 'default theme') ?? themes[0]\n\n const out: Array<string> = []\n\n if (unbound.length > 0) {\n out.push('/* Unbound semantic tokens */')\n unbound.forEach((t) => out.push(`/* ${t.pathNames.join('-')} */`))\n out.push('')\n }\n\n const tokenName = (parts: Array<string>) =>\n `--${parts.map((p) => new Case(p).doKebabCase()).join('-')}`\n\n const primitiveRef = (colorName: string, shadeName: string) =>\n `var(--${new Case(colorName).doKebabCase()}-${shadeName})`\n\n // Default block — uses each theme's resolved value, fallback to first bound theme\n const defaultLines: Array<string> = []\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const def =\n resolved.find((r) => r.themeId === defaultTheme.id && !r.isUnbound) ??\n resolved.find((r) => !r.isUnbound)\n if (!def || !def.colorName || !def.shadeName) return\n defaultLines.push(\n ` ${tokenName(t.pathNames)}: ${primitiveRef(def.colorName, def.shadeName)};`\n )\n })\n\n out.push(':root {')\n out.push(...defaultLines)\n out.push('}')\n\n // Per-theme overrides for each non-default theme\n themes\n .filter((t) => t.type === 'custom theme')\n .forEach((theme) => {\n const overrideLines: Array<string> = []\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const themeRef = resolved.find((r) => r.themeId === theme.id)\n const defRef =\n resolved.find((r) => r.themeId === defaultTheme.id && !r.isUnbound) ??\n resolved.find((r) => !r.isUnbound)\n if (\n !themeRef ||\n themeRef.isUnbound ||\n !themeRef.colorName ||\n !themeRef.shadeName\n )\n return\n // Only emit override if it differs from the default\n if (\n defRef &&\n defRef.colorName === themeRef.colorName &&\n defRef.shadeName === themeRef.shadeName\n )\n return\n overrideLines.push(\n ` ${tokenName(t.pathNames)}: ${primitiveRef(themeRef.colorName, themeRef.shadeName)};`\n )\n })\n if (overrideLines.length === 0) return\n out.push('')\n out.push(`/* ${theme.name} */`)\n out.push(`:root[data-theme='${new Case(theme.name).doKebabCase()}'] {`)\n out.push(...overrideLines)\n out.push('}')\n })\n\n return out.join('\\n')\n}\n\nexport default makeCssSemantics\n","import { Case } from '@unoff/utils'\nimport { SystemData } from '@tps/system.types'\nimport { PaletteData } from '@tps/data.types'\nimport {\n partitionTokens,\n resolveTokenPerTheme,\n workingThemes,\n} from './_helpers'\n\nconst makeComposeSemantics = (\n paletteData: PaletteData,\n systemData: SystemData\n): string => {\n const { bound, unbound } = partitionTokens(paletteData, systemData)\n const themes = workingThemes(paletteData)\n const defaultTheme =\n paletteData.themes.find((t) => t.type === 'default theme') ?? themes[0]\n const customThemes = themes.filter((t) => t.type === 'custom theme')\n\n const out: Array<string> = ['import androidx.compose.ui.graphics.Color', '']\n\n if (unbound.length > 0) {\n out.push('// Unbound semantic tokens')\n unbound.forEach((t) => out.push(`// ${t.pathNames.join('-')}`))\n out.push('')\n }\n\n const tokenName = (parts: Array<string>) =>\n parts.map((p) => new Case(p).doSnakeCase()).join('_')\n const primitiveRef = (\n themeName: string | null,\n colorName: string,\n shadeName: string\n ) => {\n const c = new Case(colorName).doSnakeCase()\n const s = shadeName === 'source' ? 'source' : shadeName\n if (themeName) {\n const t = new Case(themeName).doSnakeCase()\n return `${t}_${c}_${s}`\n }\n return `${c}_${s}`\n }\n\n if (customThemes.length === 0) {\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const def =\n resolved.find((r) => r.themeId === defaultTheme.id && !r.isUnbound) ??\n resolved.find((r) => !r.isUnbound)\n if (!def || !def.colorName || !def.shadeName) return\n out.push(\n `val ${tokenName(t.pathNames)} = ${primitiveRef(null, def.colorName, def.shadeName)}`\n )\n })\n } else {\n themes.forEach((theme) => {\n const themeKey = new Case(theme.name).doSnakeCase()\n out.push(`// ${theme.name}`)\n bound.forEach((t) => {\n const resolved = resolveTokenPerTheme(paletteData, t)\n const r = resolved.find((rr) => rr.themeId === theme.id)\n if (!r || r.isUnbound || !r.colorName || !r.shadeName) return\n out.push(\n `val ${themeKey}_${tokenName(t.pathNames)} = ${primitiveRef(theme.name, r.colorName, r.shadeName)}`\n )\n })\n out.push('')\n })\n }\n\n return out.join('\\n').replace(/\\n+$/, '\\n')\n}\n\nexport default makeComposeSemantics\n","import { PaletteData, PaletteDataShadeItem } from '@tps/data.types'\n\nconst makeUniversalTokens = (paletteData: PaletteData) => {\n const workingThemes =\n paletteData.themes.filter((theme) => theme.type === 'custom theme')\n .length === 0\n ? paletteData.themes.filter((theme) => theme.type === 'default theme')\n : paletteData.themes.filter((theme) => theme.type === 'custom theme'),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n json: { [key: string]: any } = {}\n\n const model = (shade: PaletteDataShadeItem) => {\n if (isNaN(shade.hsl[0])) shade.hsl[0] = 0\n if (isNaN(shade.lch[2])) shade.lch[2] = 0\n if (isNaN(shade.oklch[2])) shade.oklch[2] = 0\n\n return {\n rgb: {\n r: Math.floor(shade.rgb[0]),\n g: Math.floor(shade.rgb[1]),\n b: Math.floor(shade.rgb[2]),\n },\n gl: {\n r: parseFloat(shade.gl[0].toFixed(3)),\n g: parseFloat(shade.gl[1].toFixed(3)),\n b: parseFloat(shade.gl[2].toFixed(3)),\n },\n lch: {\n l: Math.floor(shade.lch[0]),\n c: Math.floor(shade.lch[1]),\n h: Math.floor(shade.lch[2]),\n },\n oklch: {\n l: parseFloat(shade.oklch[0].toFixed(3)),\n c: parseFloat(shade.oklch[1].toFixed(3)),\n h: Math.floor(shade.oklch[2]),\n },\n lab: {\n l: Math.floor(shade.lab[0]),\n a: Math.floor(shade.lab[1]),\n b: Math.floor(shade.lab[2]),\n },\n oklab: {\n l: parseFloat(shade.oklab[0].toFixed(3)),\n a: parseFloat(shade.oklab[1].toFixed(3)),\n b: parseFloat(shade.oklab[2].toFixed(3)),\n },\n hsl: {\n h: Math.floor(shade.hsl[0]),\n s: Math.floor(shade.hsl[1] * 100),\n l: Math.floor(shade.hsl[2] * 100),\n },\n hsluv: {\n h: Math.floor(shade.hsluv[0]),\n s: Math.floor(shade.hsluv[1]),\n l: Math.floor(shade.hsluv[2]),\n },\n hex: shade.hex,\n description: shade.description,\n type: 'color shade/tint',\n }\n }\n\n const modelWithAlpha = (\n shade: PaletteDataShadeItem,\n source: PaletteDataShadeItem\n ) => {\n return {\n rgb: {\n r: Math.floor(source.rgb[0]),\n g: Math.floor(source.rgb[1]),\n b: Math.floor(source.rgb[2]),\n },\n gl: {\n r: parseFloat(source.gl[0].toFixed(3)),\n g: parseFloat(source.gl[1].toFixed(3)),\n b: parseFloat(source.gl[2].toFixed(3)),\n },\n lch: {\n l: Math.floor(source.lch[0]),\n c: Math.floor(source.lch[1]),\n h: Math.floor(source.lch[2]),\n },\n oklch: {\n l: parseFloat(source.oklch[0].toFixed(3)),\n c: parseFloat(source.oklch[1].toFixed(3)),\n h: Math.floor(source.oklch[2]),\n },\n lab: {\n l: Math.floor(source.lab[0]),\n a: Math.floor(source.lab[1]),\n b: Math.floor(source.lab[2]),\n },\n oklab: {\n l: parseFloat(source.oklab[0].toFixed(3)),\n a: parseFloat(source.oklab[1].toFixed(3)),\n b: parseFloat(source.oklab[2].toFixed(3)),\n },\n hsl: {\n h: Math.floor(source.hsl[0]),\n s: Math.floor(source.hsl[1] * 100),\n l: Math.floor(source.hsl[2] * 100),\n },\n hsluv: {\n h: Math.floor(source.hsluv[0]),\n s: Math.floor(source.hsluv[1]),\n l: Math.floor(source.hsluv[2]),\n },\n hex: source.hex,\n alpha: shade.alpha,\n description: shade.description,\n type: 'color shade/tint',\n }\n }\n\n if (workingThemes[0].type === 'custom theme')\n workingThemes.forEach((theme) => {\n json[theme.name] = {}\n theme.colors.forEach((color) => {\n const source = color.shades.find(\n (shade) => shade.type === 'source color'\n )\n\n json[theme.name][color.name] = {}\n color.shades.forEach((shade) => {\n if (shade && source)\n json[theme.name][color.name][shade.name] = shade.isTransparent\n ? modelWithAlpha(shade, source)\n : model(shade)\n })\n json[theme.name][color.name]['description'] = color.description\n json[theme.name][color.name]['type'] = 'color'\n })\n json[theme.name]['description'] = theme.description\n json[theme.name]['type'] = 'color mode'\n })\n else\n workingThemes.forEach((theme) => {\n theme.colors.forEach((color) => {\n const source = color.shades.find(\n (shade) => shade.type === 'source color'\n )\n\n json[color.name] = {}\n color.shades.forEach((shade) => {\n if (shade && source)\n json[color.name][shade.name] = shade.isTransparent\n ? modelWithAlpha(shade, source)\n : model(shade)\n })\n json[color.name]['description'] = color.description\n json[color.name]['type'] = 'color'\n })\n })\n\n json['description'] = paletteData.description\n json['type'] = 'color palette'\n\n return JSON.stringify(json, null, ' ')\n}\n\nexport default makeUniversalTokens\n","import { Case } from '@unoff/utils'\nimport { PaletteData } from '@tps/data.types'\n\nconst makeUIKit = (paletteData: PaletteData) => {\n const workingThemes =\n paletteData.themes.filter((theme) => theme.type === 'custom theme')\n .length === 0\n ? paletteData.themes.filter((theme) => theme.type === 'default theme')\n : paletteData.themes.filter((theme) => theme.type === 'custom theme'),\n swift: Array<string> = []\n\n workingThemes.forEach((theme) => {\n const UIColors: Array<string> = []\n theme.colors.forEach((color) => {\n const source = color.shades.find((shade) => shade.type === 'source color')\n\n UIColors.push(`// ${color.name}`)\n color.shades.reverse().forEach((shade) => {\n UIColors.push(\n shade.isTransparent\n ? `static let ${new Case(color.name).doPascalCase()}${\n shade.name === 'source' ? 'Source' : shade.name\n } = UIColor(red: ${source?.gl[0].toFixed(\n 3\n )}, green: ${source?.gl[1].toFixed(3)}, blue: ${source?.gl[2].toFixed(\n 3\n )}, alpha: ${shade.alpha ?? 1})`\n : `static let ${new Case(color.name).doPascalCase()}${\n shade.name === 'source' ? 'Source' : shade.name\n } = UIColor(red: ${shade.gl[0].toFixed(\n 3\n )}, green: ${shade.gl[1].toFixed(3)}, blue: ${shade.gl[2].toFixed(\n 3\n )})`\n )\n })\n UIColors.push('')\n })\n UIColors.pop()\n if (workingThemes[0].type === 'custom theme')\n swift.push(\n `// ${theme.name}\\n struct ${new Case(theme.name).doPascalCase()} {\\n ${UIColors.join(\n '\\n '\n )}\\n }`\n )\n else swift.push(`${UIColors.join('\\n ')}`)\n })\n\n return `import UIKit\\n\\nstruct Color {\\n ${swift.join('\\n\\n ')}\\n}`\n}\n\nexport default makeUIKit\n","import chroma from 'chroma-js'\nimport { Case } from '@unoff/utils'\nimport { PaletteData } from '@tps/data.types'\n\nconst makeTailwindV4Config = (paletteData: PaletteData) => {\n const workingThemes =\n paletteData.themes.filter((theme) => theme.type === 'custom theme')\n .length === 0\n ? paletteData.themes.filter((theme) => theme.type === 'default theme')\n : paletteData.themes.filter((theme) => theme.type === 'custom theme')\n\n let cssOutput =\n '@import \"tailwindcss\";\\n\\n@theme {\\n --color-*: initial;\\n\\n'\n\n if (workingThemes[0].type !== 'custom theme') {\n workingThemes.forEach((theme) => {\n theme.colors.forEach((color) => {\n const source = color.shades.find(\n (shade) => shade.type === 'source color'\n )\n\n const colorName = new Case(color.name).doKebabCase()\n cssOutput += ` /* ${color.name} */\\n`\n\n color.shades.sort().forEach((shade) => {\n const colorValue = shade.isTransparent\n ? chroma(source?.hex ?? '#000000')\n .alpha(shade.alpha ?? 1)\n .hex()\n : shade.hex\n\n const shadeName = new Case(shade.name).doKebabCase()\n cssOutput += ` --color-${colorName}-${shadeName}: ${colorValue};\\n`\n })\n\n const isLastColor = color === theme.colors[theme.colors.length - 1]\n const isLastTheme = theme === workingThemes[workingThemes.length - 1]\n if (!(isLastColor && isLastTheme)) {\n cssOutput += '\\n'\n }\n })\n })\n } else {\n workingThemes.forEach((theme) => {\n const themeName = new Case(theme.name).doKebabCase()\n\n //cssOutput += ` /* ${theme.name} */\\n`\n\n theme.colors.forEach((color) => {\n const source = color.shades.find(\n (shade) => shade.type === 'source color'\n )\n\n const colorName = new Case(color.name).doKebabCase()\n cssOutput += ` /* ${theme.name} - ${color.name} */\\n`\n\n color.shades.forEach((shade) => {\n const colorValue = shade.isTransparent\n ? chroma(source?.hex ?? '#000000')\n .alpha(shade.alpha ?? 1)\n .hex()\n : shade.hex\n\n const shadeName = new Case(shade.name).doKebabCase()\n cssOutput += ` --color-${themeName}-${colorName}-${shadeName}: ${colorValue};\\n`\n })\n\n const isLastColor = color === theme.colors[theme.colors.length - 1]\n const isLastTheme = theme === workingThemes[workingThemes.length - 1]\n if (!(isLastColor && isLastTheme)) {\n cssOutput += '\\n'\n }\n })\n })\n }\n\n cssOutput += '}\\n'\n\n return cssOutput\n}\n\nexport default makeTailwindV4Config\n","import chroma from 'chroma-js'\nimport { Case } from '@unoff/utils'\nimport { PaletteData } from '@tps/data.types'\n\nconst makeTailwindV3Config = (paletteData: PaletteData) => {\n const workingThemes =\n paletteData.themes.filter((theme) => theme.type === 'custom theme')\n .length === 0\n ? paletteData.themes.filter((theme) => theme.type === 'default theme')\n : paletteData.themes.filter((theme) => theme.type === 'custom theme'),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n json: { [key: string]: any } = {\n theme: {\n colors: {},\n },\n }\n\n paletteData.themes[0].colors.forEach((color) => {\n json['theme']['colors'][new Case(color.name).doKebabCase()] = {}\n })\n\n if (workingThemes[0].type === 'custom theme')\n workingThemes.forEach((theme) => {\n theme.colors.forEach((color) => {\n const source = color.shades.find(\n (shade) => shade.type === 'source color'\n )\n\n json['theme']['colors'][new Case(color.name).doKebabCase()][\n new Case(theme.name).doKebabCase()\n ] = {}\n color.shades.forEach((shade) => {\n json['theme']['colors'][new Case(color.name).doKebabCase()][\n new Case(theme.name).doKebabCase()\n ][new Case(shade.name).doKebabCase()] = shade.isTransparent\n ? chroma(source?.hex ?? '#000000')\n .alpha(shade.alpha ?? 1)\n .hex()\n : shade.hex\n })\n })\n })\n else\n workingThemes.forEach((theme) => {\n theme.colors.forEach((color) => {\n const source = color.shades.find(\n (shade) => shade.type === 'source color'\n )\n\n json['theme']['colors'][new Case(color.name).doKebabCase()] = {}\n color.shades.sort().forEach((shade) => {\n json['theme']['colors'][new Case(color.name).doKebabCase()][\n new Case(shade.name).doKebabCase()\n ] = shade.isTransparent\n ? chroma(source?.hex ?? '#000000')\n .alpha(shade.alpha ?? 1)\n .hex()\n : shade.hex\n })\n })\n })\n\n return `/** @type {import('tailwindcss').Config} */\\nmodule.exports = ${JSON.stringify(json, null, ' ')}`\n}\n\nexport default makeTailwindV3Config\n","import { Case } from '@unoff/utils'\nimport { PaletteData } from '@tps/data.types'\n\nconst makeSwiftUI = (paletteData: PaletteData) => {\n const workingThemes =\n paletteData.themes.filter((theme) => theme.type === 'custom theme')\n .length === 0\n ? paletteData.themes.filter((theme) => theme.type === 'default theme')\n : paletteData.themes.filter((theme) => theme.type === 'custom theme'),\n swift: Array<string> = []\n\n workingThemes.forEach((theme) => {\n theme.colors.forEach((color) => {\n const source = color.shades.find((shade) => shade.type === 'source color')\n const Colors: Array<string> = []\n\n Colors.push(\n `// ${\n workingThemes[0].type === 'custom theme' ? theme.name + ' - ' : ''\n }${color.name}`\n )\n color.shades.reverse().forEach((shade) => {\n Colors.push(\n shade.isTransparent\n ? `public let ${\n workingThemes[0].type === 'custom theme'\n ? new Case(theme.name + ' ' + color.name).doPascalCase()\n : new Case(color.name).doPascalCase()\n }${\n shade.name === 'source' ? 'Source' : shade.name\n } = Color(red: ${source?.gl[0].toFixed(\n 3\n )}, green: ${source?.gl[1].toFixed(3)}, blue: ${shade.gl[2].toFixed(\n 3\n )}).opacity(${shade.alpha ?? 1})`\n : `public let ${\n workingThemes[0].type === 'custom theme'\n ? new Case(theme.name + ' ' + color.name).doPascalCase()\n : new Case(color.name).doPascalCase()\n }${\n shade.name === 'source' ? 'Source' : shade.name\n } = Color(red: ${shade.gl[0].toFixed(\n 3\n )}, green: ${shade.gl[1].toFixed(3)}, blue: ${shade.gl[2].toFixed(\n 3\n )})`\n )\n })\n Colors.push('')\n Colors.forEach((color) => swift.push(color))\n })\n })\n\n swift.pop()\n\n return `import SwiftUI\\n\\npublic extension Color {\\n static let Token = Color.TokenColor()\\n struct TokenColor {\\n ${swift.join(\n '\\n '\n )}\\n }\\n}`\n}\n\nexport default makeSwiftUI\n","import chroma from 'chroma-js'\nimport {\n PaletteData,\n PaletteDataColorItem,\n PaletteDataShadeItem,\n} from '@tps/data.types'\n\nconst makeStyleDictionaryV3Tokens = (paletteData: PaletteData) => {\n const workingThemes =\n paletteData.themes.filter((theme) => theme.type === 'custom theme')\n .length === 0\n ? paletteData.themes.filter((theme) => theme.type === 'default theme')\n : paletteData.themes.filter((theme) => theme.type === 'custom theme'),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n json: { [key: string]: any } = {\n color: {},\n }\n\n const model = (\n color: PaletteDataColorItem,\n shade: PaletteDataShadeItem,\n source: PaletteDataShadeItem\n ) => {\n return {\n type: 'color',\n value: shade.isTransparent\n ? chroma(source.hex)\n .alpha(shade.alpha ?? 1)\n .hex()\n : shade.hex,\n comment:\n color.description !== ''\n ? color.description + ' - ' + shade.description\n : shade.description,\n }\n }\n\n paletteData.themes[0].colors.forEach((color) => {\n json['color'][color.name] = {}\n })\n\n if (workingThemes[0].type === 'custom theme')\n workingThemes.forEach((theme) => {\n theme.colors.forEach((color) => {\n const source = color.shades.find(\n (shade) => shade.type === 'source color'\n )\n\n json['color'][color.name][theme.name] = {}\n color.shades.forEach((shade) => {\n if (shade && source)\n json['color'][color.name][theme.name][shade.name] = model(\n color,\n shade,\n source\n )\n })\n })\n })\n else\n workingThemes.forEach((theme) => {\n theme.colors.forEach((color) => {\n const source = color.shades.find(\n (shade) => shade.type === 'source color'\n )\n\n json['color'][color.name] = {}\n color.shades.forEach((shade) => {\n if (shade && source)\n json['color'][color.name][shade.name] = model(color, shade, source)\n })\n })\n })\n\n return JSON.stringify(json, null, ' ')\n}\n\nexport default makeStyleDictionaryV3Tokens\n","import chroma from 'chroma-js'\nimport { Case } from '@unoff/utils'\nimport { PaletteData, PaletteDataShadeItem } from '@tps/data.types'\nimport { ColorSpaceConfiguration } from '@tps/configuration.types'\n\nconst makeScssVariables = (\n paletteData: PaletteData,\n colorSpace: ColorSpaceConfiguration\n) => {\n const workingThemes =\n paletteData.themes.filter((theme) => theme.type === 'custom theme')\n .length === 0\n ? paletteData.themes.filter((theme) => theme.type === 'default theme')\n : paletteData.themes.filter((theme) => theme.type === 'custom theme'),\n scss: Array<string> = [],\n globalVars: Array<string> = []\n\n const setValueAccordingToColorSpace = (shade: PaletteDataShadeItem) => {\n if (isNaN(shade.hsl[0])) shade.hsl[0] = 0\n if (isNaN(shade.lch[2])) shade.lch[2] = 0\n if (isNaN(shade.oklch[2])) shade.oklch[2] = 0\n\n const actions: { [action: string]: () => void } = {\n RGB: () =>\n `rgb(${Math.floor(shade.rgb[0])} ${Math.floor(\n shade.rgb[1]\n )} ${Math.floor(shade.rgb[2])})`,\n HEX: () => shade.hex,\n HSL: () =>\n `hsl(${Math.floor(shade.hsl[0])} ${Math.floor(\n shade.hsl[1] * 100\n )}% ${Math.floor(shade.hsl[2] * 100)}%)`,\n LCH: () =>\n `lch(${Math.floor(shade.lch[0])}% ${Math.floor(\n shade.lch[1]\n )} ${Math.floor(shade.lch[2])})`,\n OKLCH: () =>\n `oklch(${Math.floor(shade.oklch[0] * 100)}% ${shade.oklch[1].toFixed(3)} ${Math.floor(shade.oklch[2])})`,\n }\n\n return actions[colorSpace ?? 'RGB']?.()\n }\n\n const setValueAccordingToAlpha = (\n shade: PaletteDataShadeItem,\n source: PaletteDataShadeItem\n ) => {\n if (isNaN(shade.hsl[0])) shade.hsl[0] = 0\n if (isNaN(shade.lch[2])) shade.lch[2] = 0\n if (isNaN(shade.oklch[2])) shade.oklch[2] = 0\n\n const actions: { [action: string]: () => void } = {\n RGB: () =>\n `rgb(${Math.floor(source.rgb[0])} ${Math.floor(\n source.rgb[1]\n )} ${Math.floor(source.rgb[2])} / ${shade.alpha?.toFixed(2) ?? 1})`,\n HEX: () =>\n chroma(source.hex)\n .alpha(shade.alpha ?? 1)\n .hex(),\n HSL: () =>\n `hsl(${Math.floor(source.hsl[0])} ${Math.floor(\n source.hsl[1] * 100\n )}%, ${Math.floor(source.hsl[2] * 100)}% / ${shade.alpha?.toFixed(2) ?? 1})`,\n LCH: () =>\n `lch(${Math.floor(source.lch[0])}% ${Math.floor(\n source.lch[1]\n )} ${Math.floor(source.lch[2])} / ${shade.alpha?.toFixed(2) ?? 1})`,\n OKLCH: () =>\n `oklch(${Math.floor(source.oklch[0 * 100])}% ${source.oklch[1].toFixed(3)} ${Math.floor(source.oklch[2])} / ${shade.alpha?.toFixed(2) ?? 1})`,\n }\n\n return actions[colorSpace ?? 'RGB']?.()\n }\n\n const defaultTheme = workingThemes.find(\n (theme) => theme.type === 'default theme'\n )\n\n if (defaultTheme) {\n const defaultVars: Array<string> = []\n\n defaultTheme.colors.forEach((color, index) => {\n if (index > 0) {\n defaultVars.push('')\n }\n\n defaultVars.push(`// ${color.name}`)\n color.shades.reverse().forEach((shade) => {\n const source = color.shades.find((c) => c.type === 'source color')\n const variableName = `$${new Case(color.name).doKebabCase()}-${shade.name}`\n\n if (source) {\n defaultVars.push(\n `${variableName}: ${shade.isTransparent ? setValueAccordingToAlpha(shade, source) : setValueAccordingToColorSpace(shade)};`\n )\n }\n })\n })\n\n scss.push(defaultVars.join('\\n'))\n\n return scss.join('\\n')\n }\n\n workingThemes.forEach((theme) => {\n const themeName = new Case(theme.name).doKebabCase()\n const themeVars: Array<string> = []\n\n themeVars.push(`// ${theme.name}`)\n themeVars.push(`@mixin ${themeName} {`)\n\n theme.colors.forEach((color, index) => {\n if (index > 0) {\n themeVars.push('')\n }\n\n themeVars.push(` // ${color.name}`)\n color.shades.reverse().forEach((shade) => {\n const source = color.shades.find((c) => c.type === 'source color')\n const colorName = new Case(color.name).doKebabCase()\n const cssVarName = `--${colorName}-${shade.name}`\n\n if (source) {\n themeVars.push(\n ` ${cssVarName}: ${shade.isTransparent ? setValueAccordingToAlpha(shade, source) : setValueAccordingToColorSpace(shade)};`\n )\n }\n })\n })\n\n themeVars.push('}')\n scss.push(themeVars.join('\\n'))\n })\n\n const colorVariables = new Set<string>()\n\n workingThemes.forEach((theme) => {\n theme.colors.forEach((color) => {\n color.shades.forEach((shade) => {\n const source = color.shades.find((c) => c.type === 'source color')\n if (source) {\n const colorName = new Case(color.name).doKebabCase()\n const cssVarName = `--${colorName}-${shade.name}`\n colorVariables.add(cssVarName)\n }\n })\n })\n })\n\n if (colorVariables.size > 0) {\n const colorGroups = new Map<string, Array<string>>()\n\n colorVariables.forEach((cssVarName) => {\n const match = cssVarName.match(/--([a-zA-Z0-9-]+)-([a-zA-Z0-9-]+)/)\n if (match) {\n const colorName = match[1]\n if (!colorGroups.has(colorName)) {\n colorGroups.set(colorName, [])\n }\n const scssVarName = `$${cssVarName.substring(2)}`\n colorGroups.get(colorName)!.push(`${scssVarName}: var(${cssVarName});`)\n }\n })\n\n colorGroups.forEach((vars, colorName) => {\n globalVars.push(\n `// ${colorName.charAt(0).toUpperCase() + colorName.slice(1)}`\n )\n globalVars.push(...vars)\n globalVars.push('')\n })\n\n if (globalVars.length > 0 && globalVars[globalVars.length - 1] === '') {\n globalVars.pop()\n }\n\n scss.push(globalVars.join('\\n'))\n }\n\n const rootBlock: string[] = [`:root {`]\n\n workingThemes.forEach((theme, index) => {\n const themeName = new Case(theme.name).doKebabCase()\n rootBlock.push(` &[data-theme=\"${themeName}\"] {\n @include ${themeName};\n }`)\n if (index !== workingThemes.length - 1) rootBlock.push('')\n })\n\n rootBlock.push(`}`)\n scss.push(rootBlock.join('\\n'))\n\n const classBlocks: string[] = []\n\n workingThemes.forEach((theme) => {\n const themeName = new Case(theme.name).doKebabCase()\n classBlocks.push(`.${themeName} {\n @include ${themeName};\n}`)\n })\n\n scss.push(classBlocks.join('\\n\\n'))\n\n return scss.join('\\n\\n')\n}\n\nexport default makeScssVariables\n","import chroma from 'chroma-js'\nimport { Case } from '@unoff/utils'\nimport { PaletteData } from '@tps/data.types'\n\nconst makeResources = (paletteData: PaletteData) => {\n const workingThemes =\n paletteData.themes.filter((theme) => theme.type === 'custom theme')\n .length === 0\n ? paletteData.themes.filter((theme) => theme.type === 'default theme')\n : paletteData.themes.filter((theme) => theme.type === 'custom theme'),\n resources: Array<string> = []\n\n workingThemes.forEach((theme) => {\n theme.colors.forEach((color) => {\n const source = color.shades.find((shade) => shade.type === 'source color')\n const colors: Array<string> = []\n\n colors.push(\n `${'<'}!--${\n workingThemes[0].type === 'custom theme'\n ? `${theme.name} - ${color.name}--${'>'}`\n : `${color.name}--${'>'}`\n }`\n )\n color.shades.reverse().forEach((shade) => {\n colors.push(\n `<color name=\"${\n workingThemes[0].type === 'custom theme'\n ? new Case(theme.name + ' ' + color.name).doSnakeCase()\n : new Case(color.name).doSnakeCase()\n }_${shade.name}\">${\n shade.isTransparent\n ? chroma(source?.hex ?? '#000000')\n .alpha(shade.alpha ?? 1)\n .hex()\n : shade.hex\n }</color>`\n )\n })\n colors.push('')\n colors.forEach((color) => resources.push(color))\n })\n })\n\n resources.pop()\n\n return `<?xml version=\"1.0\" encoding=\"utf-8\"?>\\n<resources>\\n ${resources.join(\n '\\n '\n )}\\n</resources>`\n}\n\nexport default makeResources\n","import chroma from 'chroma-js'\nimport { Case } from '@unoff/utils'\nimport { PaletteData, PaletteDataShadeItem } from '@tps/data.types'\nimport { ColorSpaceConfiguration } from '@tps/configuration.types'\n\nconst makeLessVariables = (\n paletteData: PaletteData,\n colorSpace: ColorSpaceConfiguration\n) => {\n const workingThemes =\n paletteData.themes.filter((theme) => theme.type === 'custom theme')\n .length === 0\n ? paletteData.themes.filter((theme) => theme.type === 'default theme')\n : paletteData.themes.filter((theme) => theme.type === 'custom theme'),\n less: Array<string> = []\n\n const setValueAccordingToColorSpace = (shade: PaletteDataShadeItem) => {\n if (isNaN(shade.hsl[0])) shade.hsl[0] = 0\n if (isNaN(shade.lch[2])) shade.lch[2] = 0\n if (isNaN(shade.oklch[2])) shade.oklch[2] = 0\n\n const actions: { [action: string]: () => void } = {\n RGB: () =>\n `rgb(${Math.floor(shade.rgb[0])} ${Math.floor(\n shade.rgb[1]\n )} ${Math.floor(shade.rgb[2])})`,\n HEX: () => shade.hex,\n HSL: () =>\n `hsl(${Math.floor(shade.hsl[0])} ${Math.floor(\n shade.hsl[1] * 100\n )}% ${Math.floor(shade.hsl[2] * 100)}%)`,\n LCH: () =>\n `lch(${Math.floor(shade.lch[0])}% ${Math.floor(\n shade.lch[1]\n )} ${Math.floor(shade.lch[2])})`,\n OKLCH: () =>\n `oklch(${Math.floor(shade.oklch[0] * 100)}% ${shade.oklch[1].toFixed(3)} ${Math.floor(shade.oklch[2])})`,\n }\n\n return actions[colorSpace ?? 'RGB']?.()\n }\n\n const setValueAccordingToAlpha = (\n shade: PaletteDataShadeItem,\n source: PaletteDataShadeItem\n ) => {\n if (isNaN(shade.hsl[0])) shade.hsl[0] = 0\n if (isNaN(shade.lch[2])) shade.lch[2] = 0\n if (isNaN(shade.oklch[2])) shade.oklch[2] = 0\n\n const actions: { [action: string]: () => void } = {\n RGB: () =>\n `rgb(${Math.floor(source.rgb[0])} ${Math.floor(\n source.rgb[1]\n )} ${Math.floor(source.rgb[2])} / ${shade.alpha?.toFixed(2) ?? 1})`,\n HEX: () =>\n chroma(source.hex)\n .alpha(shade.alpha ?? 1)\n .hex(),\n HSL: () =>\n `hsl(${Math.floor(source.hsl[0])} ${Math.floor(\n source.hsl[1] * 100\n )}% ${Math.floor(source.hsl[2] * 100)}% / ${shade.alpha?.toFixed(2) ?? 1})`,\n LCH: () =>\n `lch(${Math.floor(source.lch[0])}% ${Math.floor(\n source.lch[1]\n )} ${Math.floor(source.lch[2])} / ${shade.alpha?.toFixed(2) ?? 1})`,\n OKLCH: () =>\n `oklch(${Math.floor(source.oklch[0] * 100)}% ${source.oklch[1].toFixed(3)} ${Math.floor(source.oklch[2])} / ${shade.alpha?.toFixed(2) ?? 1})`,\n }\n\n return actions[colorSpace ?? 'RGB']?.()\n }\n\n const defaultTheme = workingThemes.find(\n (theme) => theme.type === 'default theme'\n )\n\n if (defaultTheme) {\n const defaultVars: Array<string> = []\n\n defaultTheme.colors.forEach((color, index) => {\n if (index > 0) {\n defaultVars.push('')\n }\n\n defaultVars.push(`// ${color.name}`)\n color.shades.reverse().forEach((shade) => {\n const source = color.shades.find((c) => c.type === 'source color')\n const variableName = `@${new Case(color.name).doKebabCase()}-${shade.name}`\n\n if (source) {\n defaultVars.push(\n `${variableName}: ${shade.isTransparent ? setValueAccordingToAlpha(shade, source) : setValueAccordingToColorSpace(shade)};`\n )\n }\n })\n })\n\n less.push(defaultVars.join('\\n'))\n\n return less.join('\\n')\n }\n\n workingThemes.forEach((theme) => {\n const themeName = new Case(theme.name).doKebabCase()\n const themeVars: Array<string> = []\n\n themeVars.push(`// ${theme.name}`)\n themeVars.push(`.${themeName}() {`)\n\n theme.colors.forEach((color, index) => {\n if (index > 0) {\n themeVars.push('')\n }\n\n themeVars.push(` // ${color.name}`)\n color.shades.reverse().forEach((shade) => {\n const source = color.shades.find((c) => c.type === 'source color')\n const variableName = `@${new Case(color.name).doKebabCase()}-${shade.name}`\n\n if (source) {\n themeVars.push(\n ` ${variableName}: ${shade.isTransparent ? setValueAccordingToAlpha(shade, source) : setValueAccordingToColorSpace(shade)};`\n )\n }\n })\n })\n\n themeVars.push('}')\n less.push(themeVars.join('\\n'))\n })\n\n const rootBlock: string[] = [`:root {`]\n\n workingThemes.forEach((theme, index) => {\n const themeName = new Case(theme.name).doKebabCase()\n rootBlock.push(` &[data-theme=\"${themeName}\"] {\n .${themeName}();\n }`)\n if (index !== workingThemes.length - 1) rootBlock.push('')\n })\n\n rootBlock.push(`}`)\n less.push(rootBlock.join('\\n'))\n\n const classBlocks: string[] = []\n\n workingThemes.forEach((theme) => {\n const themeName = new Case(theme.name).doKebabCase()\n classBlocks.push(`.${themeName} {\n .${themeName}();\n}`)\n })\n\n less.push(classBlocks.join('\\n\\n'))\n\n return less.join('\\n\\n')\n}\n\nexport default makeLessVariables\n","import { PaletteData, PaletteDataShadeItem } from '@tps/data.types'\nimport { ColorSpaceConfiguration } from '@tps/configuration.types'\n\nconst makeDtcgTokens = (\n paletteData: PaletteData,\n colorSpace: ColorSpaceConfiguration\n) => {\n const workingThemes =\n paletteData.themes.filter((theme) => theme.type === 'custom theme')\n .length === 0\n ? paletteData.themes.filter((theme) => theme.type === 'default theme')\n : paletteData.themes.filter((theme) => theme.type === 'custom theme'),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n json: { [key: string]: any } = {}\n\n const setValueAccordingToColorSpace = (shade: PaletteDataShadeItem) => {\n if (isNaN(shade.oklch[2])) shade.oklch[2] = 0\n\n const actions: { [action: string]: () => void } = {\n RGB: () => {\n return {\n colorSpace: 'srgb',\n components: [\n parseFloat(shade.gl[0].toFixed(3)),\n parseFloat(shade.gl[1].toFixed(3)),\n parseFloat(shade.gl[2].toFixed(3)),\n ],\n hex: shade.hex,\n }\n },\n OKLCH: () => {\n return {\n colorSpace: 'oklch',\n components: [\n parseFloat(shade.oklch[0].toFixed(3)),\n parseFloat(shade.oklch[1].toFixed(3)),\n parseFloat(shade.oklch[2].toFixed(0)),\n ],\n hex: shade.hex,\n }\n },\n }\n\n return actions[colorSpace ?? 'RGB']?.()\n }\n\n const setValueAccordingToColorSpaceAndAlpha = (\n source: PaletteDataShadeItem,\n shade: PaletteDataShadeItem\n ) => {\n if (isNaN(shade.oklch[2])) shade.oklch[2] = 0\n\n const actions: { [action: string]: () => void } = {\n RGB: () => {\n return {\n colorSpace: 'srgb',\n components: [\n parseFloat(source.gl[0].toFixed(3)),\n parseFloat(source.gl[1].toFixed(3)),\n parseFloat(source.gl[2].toFixed(3)),\n ],\n hex: source.hex,\n alpha: shade.alpha,\n }\n },\n OKLCH: () => {\n return {\n colorSpace: 'oklch',\n components: [\n parseFloat(source.oklch[0].toFixed(3)),\n parseFloat(source.oklch[1].toFixed(3)),\n parseFloat(source.oklch[2].toFixed(0)),\n ],\n hex: source.hex,\n alpha: shade.alpha,\n }\n },\n }\n\n return actions[colorSpace ?? 'RGB']?.()\n }\n\n if (workingThemes[0].type === 'custom theme')\n workingThemes.forEach((theme) => {\n theme.colors.forEach((color) => {\n const source = color.shades.find(\n (shade) => shade.type === 'source color'\n )\n\n if (!json[color.name])\n json[color.name] = {\n $type: 'color',\n }\n\n color.shades.forEach((shade) => {\n if (!json[color.name][shade.name] && source)\n json[color.name][shade.name] = {\n $type: 'color',\n $value: shade.isTransparent\n ? setValueAccordingToColorSpaceAndAlpha(source, shade)\n : setValueAccordingToColorSpace(shade),\n $description:\n color.description !== ''\n ? color.description + ' - ' + shade.description\n : shade.description,\n $extensions: {\n mode: {},\n 'com.uicp.wcag': {},\n 'com.uicp.apca': {},\n },\n }\n if (source) {\n json[color.name][shade.name].$extensions.mode[theme.name] =\n shade.isTransparent\n ? setValueAccordingToColorSpaceAndAlpha(source, shade)\n : setValueAccordingToColorSpace(shade)\n if (shade.textContrast) {\n json[color.name][shade.name].$extensions['com.uicp.wcag'][\n theme.name\n ] = {\n light: {\n score: shade.textContrast.wcag.light.score,\n ratio: shade.textContrast.wcag.light.ratio,\n },\n dark: {\n score: shade.textContrast.wcag.dark.score,\n ratio: shade.textContrast.wcag.dark.ratio,\n },\n }\n json[color.name][shade.name].$extensions['com.uicp.apca'][\n theme.name\n ] = {\n light: {\n score: shade.textContrast.apca.light.lc,\n recommendation:\n shade.textContrast.apca.light.recommendedUsage,\n },\n dark: {\n score: shade.textContrast.apca.dark.lc,\n recommendation: shade.textContrast.apca.dark.recommendedUsage,\n },\n }\n }\n }\n })\n })\n })\n else\n workingThemes.forEach((theme) => {\n theme.colors.forEach((color) => {\n const source = color.shades.find(\n (shade) => shade.type === 'source color'\n )\n\n json[color.name] = {}\n color.shades.forEach((shade) => {\n if (shade && source) {\n json[color.name][shade.name] = {\n $type: 'color',\n $value: shade.isTransparent\n ? setValueAccordingToColorSpaceAndAlpha(source, shade)\n : setValueAccordingToColorSpace(shade),\n $description:\n color.description !== ''\n ? color.description + ' - ' + shade.description\n : shade.description,\n ...(shade.textContrast && {\n $extensions: {\n 'com.uicp.wcag': {\n light: {\n score: shade.textContrast.wcag.light.score,\n ratio: shade.textContrast.wcag.light.ratio,\n },\n dark: {\n score: shade.textContrast.wcag.dark.score,\n ratio: shade.textContrast.wcag.dark.ratio,\n },\n },\n 'com.uicp.apca': {\n light: {\n score: shade.textContrast.apca.light.lc,\n recommendation:\n shade.textContrast.apca.light.recommendedUsage,\n },\n dark: {\n score: shade.textContrast.apca.dark.lc,\n recommendation:\n shade.textContrast.apca.dark.recommendedUsage,\n },\n },\n },\n }),\n }\n }\n })\n })\n })\n\n return JSON.stringify(json, null, ' ')\n}\n\nexport default makeDtcgTokens\n","import { PaletteData } from '@tps/data.types'\n\ninterface colorCsv {\n name: string\n csv: string\n}\n\nexport interface modeCsv {\n name: string\n colors: Array<colorCsv>\n type: string\n}\n\nconst makeCsv = (paletteData: PaletteData) => {\n const workingThemes =\n paletteData.themes.filter((theme) => theme.type === 'custom theme')\n .length === 0\n ? paletteData.themes.filter((theme) => theme.type === 'default theme')\n : paletteData.themes.filter((theme) => theme.type === 'custom theme'),\n colorCsv: Array<colorCsv> = [],\n modeCsv: Array<modeCsv> = [],\n lightness: Array<string> = [],\n l: Array<number | string> = [],\n c: Array<number | string> = [],\n h: Array<number | string> = []\n\n workingThemes.forEach((theme) => {\n theme.colors.forEach((color) => {\n color.shades.forEach((shade) => {\n lightness.push(shade.name)\n l.push(Math.floor(shade.lch[0]))\n c.push(Math.floor(shade.lch[1]))\n h.push(Math.floor(shade.lch[2]))\n })\n colorCsv.push({\n name: color.name,\n csv: `${color.name},Lightness,Chroma,Hue\\n${lightness\n .map((stop, index) => `${stop},${l[index]},${c[index]},${h[index]}`)\n .join('\\n')}`,\n })\n lightness.splice(0, lightness.length)\n l.splice(0, l.length)\n c.splice(0, c.length)\n h.splice(0, h.length)\n })\n modeCsv.push({\n name: theme.name,\n colors: colorCsv.map((c) => {\n return c\n }),\n type: theme.type,\n })\n colorCsv.splice(0, colorCsv.length)\n })\n\n return modeCsv\n}\n\nexport default makeCsv\n","import chroma from 'chroma-js'\nimport { Case } from '@unoff/utils'\nimport { PaletteData, PaletteDataShadeItem } from '@tps/data.types'\nimport { ColorSpaceConfiguration } from '@tps/configuration.types'\n\nconst makeCssCustomProps = (\n paletteData: PaletteData,\n colorSpace: ColorSpaceConfiguration\n) => {\n const workingThemes =\n paletteData.themes.filter((theme) => theme.type === 'custom theme')\n .length === 0\n ? paletteData.themes.filter((theme) => theme.type === 'default theme')\n : paletteData.themes.filter((theme) => theme.type === 'custom theme'),\n css: Array<string> = []\n\n const setValueAccordingToColorSpace = (shade: PaletteDataShadeItem) => {\n if (isNaN(shade.hsl[0])) shade.hsl[0] = 0\n if (isNaN(shade.lch[2])) shade.lch[2] = 0\n if (isNaN(shade.oklch[2])) shade.oklch[2] = 0\n\n const actions: { [action: string]: () => void } = {\n RGB: () =>\n `rgb(${Math.floor(shade.rgb[0])} ${Math.floor(\n shade.rgb[1]\n )} ${Math.floor(shade.rgb[2])})`,\n HEX: () => shade.hex,\n HSL: () =>\n `hsl(${Math.floor(shade.hsl[0])} ${Math.floor(\n shade.hsl[1] * 100\n )}% ${Math.floor(shade.hsl[2] * 100)}%)`,\n LCH: () =>\n `lch(${Math.floor(shade.lch[0])}% ${Math.floor(\n shade.lch[1]\n )} ${Math.floor(shade.lch[2])})`,\n OKLCH: () =>\n `oklch(${Math.floor(shade.oklch[0] * 100)}% ${shade.oklch[1].toFixed(3)} ${Math.floor(shade.oklch[2])})`,\n P3: () =>\n `color(display-p3 ${shade.gl[0].toFixed(3)} ${shade.gl[1].toFixed(\n 3\n )} ${shade.gl[2].toFixed(3)})`,\n }\n\n return actions[colorSpace ?? 'RGB']?.()\n }\n\n const setValueAccordingToAlpha = (\n shade: PaletteDataShadeItem,\n source: PaletteDataShadeItem\n ) => {\n if (isNaN(shade.hsl[0])) shade.hsl[0] = 0\n if (isNaN(shade.lch[2])) shade.lch[2] = 0\n if (isNaN(shade.oklch[2])) shade.oklch[2] = 0\n\n const actions: { [action: string]: () => void } = {\n RGB: () =>\n `rgb(${Math.floor(source.rgb[0])} ${Math.floor(\n source.rgb[1]\n )} ${Math.floor(source.rgb[2])} / ${shade.alpha?.toFixed(2) ?? 1})`,\n HEX: () =>\n chroma(source.hex)\n .alpha(shade.alpha ?? 1)\n .hex(),\n HSL: () =>\n `hsl(${Math.floor(source.hsl[0])} ${Math.floor(\n source.hsl[1] * 100\n )}% ${Math.floor(source.hsl[2] * 100)}% / ${shade.alpha?.toFixed(2) ?? 1})`,\n LCH: () =>\n `lch(${Math.floor(source.lch[0])}% ${Math.floor(\n source.lch[1]\n )} ${Math.floor(source.lch[2])} / ${shade.alpha?.toFixed(2) ?? 1})`,\n OKLCH: () =>\n `oklch(${Math.floor(source.oklch[0 * 100])}% ${source.oklch[1].toFixed(3)} ${Math.floor(source.oklch[2])} / ${shade.alpha?.toFixed(2) ?? 1})`,\n P3: () =>\n `color(display-p3 ${source.gl[0].toFixed(3)} ${source.gl[1].toFixed(\n 3\n )} ${source.gl[2].toFixed(3)} / ${shade.alpha?.toFixed(2) ?? 1})`,\n }\n\n return actions[colorSpace ?? 'RGB']?.()\n }\n\n workingThemes.forEach((theme) => {\n const rowCss: Array<string> = []\n theme.colors.forEach((color) => {\n rowCss.push(`/* ${color.name} */`)\n color.shades.reverse().forEach((shade) => {\n const source = color.shades.find((c) => c.type === 'source color')\n\n if (source)\n rowCss.push(\n `--${new Case(color.name).doKebabCase()}-${shade.name}: ${shade.isTransparent ? setValueAccordingToAlpha(shade, source) : setValueAccordingToColorSpace(shade)};`\n )\n })\n\n rowCss.push('')\n })\n rowCss.pop()\n css.push(\n `${theme.type === 'custom theme' ? `/* ${theme.name} */\\n` : ''}:root${\n theme.type === 'custom theme'\n ? `[data-theme='${new Case(theme.name).doKebabCase()}']`\n : ''\n } {\\n ${rowCss.join('\\n ')}\\n}`\n )\n })\n\n return css.join('\\n\\n')\n}\n\nexport default makeCssCustomProps\n","import chroma from 'chroma-js'\nimport { Case } from '@unoff/utils'\nimport { PaletteData } from '@tps/data.types'\n\nconst makeCompose = (paletteData: PaletteData) => {\n const workingThemes =\n paletteData.themes.filter((theme) => theme.type === 'custom theme')\n .length === 0\n ? paletteData.themes.filter((theme) => theme.type === 'default theme')\n : paletteData.themes.filter((theme) => theme.type === 'custom theme'),\n kotlin: Array<string> = []\n\n workingThemes.forEach((theme) => {\n theme.colors.forEach((color) => {\n const source = color.shades.find((shade) => shade.type === 'source color')\n const colors: Array<string> = []\n\n colors.push(\n `// ${\n workingThemes[0].type === 'custom theme' ? theme.name + ' - ' : ''\n }${color.name}`\n )\n color.shades.reverse().forEach((shade) => {\n colors.push(\n `val ${\n workingThemes[0].type === 'custom theme'\n ? new Case(theme.name + ' ' + color.name).doSnakeCase()\n : new Case(color.name).doSnakeCase()\n }_${shade.name} = Color(${\n shade.isTransparent\n ? chroma(source?.hex ?? '#000000')\n .alpha(shade.alpha ?? 1)\n .hex()\n .replace('#', '0xFF')\n .toUpperCase()\n : shade.hex.replace('#', '0xFF').toUpperCase()\n })`\n )\n })\n colors.push('')\n colors.forEach((color) => kotlin.push(color))\n })\n })\n\n kotlin.pop()\n\n return `import androidx.compose.ui.graphics.Color\\n\\n${kotlin.join('\\n')}`\n}\n\nexport default makeCompose\n","import { SystemData } from '@tps/system.types'\nimport { PaletteData } from '@tps/data.types'\nimport { ColorSpaceConfiguration } from '@tps/configuration.types'\nimport { CodeFile } from '@tps/code.types'\nimport makeUniversalSemantics from '../../formats/semantics/makeUniversalSemantics'\nimport makeUIKitSemantics from '../../formats/semantics/makeUIKitSemantics'\nimport makeTailwindV4Semantics from '../../formats/semantics/makeTailwindV4Semantics'\nimport makeTailwindV3Semantics from '../../formats/semantics/makeTailwindV3Semantics'\nimport makeSwiftUISemantics from '../../formats/semantics/makeSwiftUISemantics'\nimport makeStyleDictionaryV3Semantics from '../../formats/semantics/makeStyleDictionaryV3Semantics'\nimport makeScssSemantics from '../../formats/semantics/makeScssSemantics'\nimport makeResourcesSemantics from '../../formats/semantics/makeResourcesSemantics'\nimport makeNativeSemantics from '../../formats/semantics/makeNativeSemantics'\nimport makeLessSemantics from '../../formats/semantics/makeLessSemantics'\nimport makeDtcgSemantics from '../../formats/semantics/makeDtcgSemantics'\nimport makeCsvSemantics from '../../formats/semantics/makeCsvSemantics'\nimport makeCssSemantics from '../../formats/semantics/makeCssSemantics'\nimport makeComposeSemantics from '../../formats/semantics/makeComposeSemantics'\nimport makeUniversalTokens from '../../formats/primitives/makeUniversalTokens'\nimport makeUIKit from '../../formats/primitives/makeUIKit'\nimport makeTailwindV4Config from '../../formats/primitives/makeTailwindV4Config'\nimport makeTailwindV3Config from '../../formats/primitives/makeTailwindV3Config'\nimport makeSwiftUI from '../../formats/primitives/makeSwiftUI'\nimport makeStyleDictionaryV3Tokens from '../../formats/primitives/makeStyleDictionaryV3Tokens'\nimport makeScssVariables from '../../formats/primitives/makeScssVariables'\nimport makeResources from '../../formats/primitives/makeResources'\nimport makeNativeTokens from '../../formats/primitives/makeNativeTokens'\nimport makeLessVariables from '../../formats/primitives/makeLessVariables'\nimport makeDtcgTokens from '../../formats/primitives/makeDtcgTokens'\nimport makeCsv from '../../formats/primitives/makeCsv'\nimport makeCssCustomProps from '../../formats/primitives/makeCssCustomProps'\nimport makeCompose from '../../formats/primitives/makeCompose'\n\nexport default class Code {\n private paletteData: PaletteData\n private systemData?: SystemData\n\n constructor({\n paletteData,\n systemData,\n }: {\n paletteData: PaletteData\n systemData?: SystemData\n }) {\n this.paletteData = paletteData\n this.systemData = systemData\n }\n\n private wrap = (\n primitivesFilename: string,\n primitivesContent: string,\n mimeType: string,\n semanticsFilename: string,\n semanticsContent: string | null\n ): Array<CodeFile> => {\n const files: Array<CodeFile> = [\n { filename: primitivesFilename, content: primitivesContent, mimeType },\n ]\n if (semanticsContent !== null)\n files.push({\n filename: semanticsFilename,\n content: semanticsContent,\n mimeType,\n })\n return files\n }\n\n makeCssCustomProps = (\n colorSpace: ColorSpaceConfiguration = 'RGB'\n ): Array<CodeFile> =>\n this.wrap(\n 'primitives.css',\n makeCssCustomProps(this.paletteData, colorSpace),\n 'text/css',\n 'semantics.css',\n this.systemData\n ? makeCssSemantics(this.paletteData, this.systemData)\n : null\n )\n\n makeScssVariables = (\n colorSpace: ColorSpaceConfiguration = 'RGB'\n ): Array<CodeFile> =>\n this.wrap(\n 'primitives.scss',\n makeScssVariables(this.paletteData, colorSpace),\n 'text/x-scss',\n 'semantics.scss',\n this.systemData\n ? makeScssSemantics(this.paletteData, this.systemData)\n : null\n )\n\n makeLessVariables = (\n colorSpace: ColorSpaceConfiguration = 'RGB'\n ): Array<CodeFile> =>\n this.wrap(\n 'primitives.less',\n makeLessVariables(this.paletteData, colorSpace),\n 'text/x-less',\n 'semantics.less',\n this.systemData\n ? makeLessSemantics(this.paletteData, this.systemData)\n : null\n )\n\n makeTailwindV3Config = (): Array<CodeFile> =>\n this.wrap(\n 'primitives.js',\n makeTailwindV3Config(this.paletteData),\n 'text/javascript',\n 'semantics.js',\n this.systemData\n ? makeTailwindV3Semantics(this.paletteData, this.systemData)\n : null\n )\n\n makeTailwindV4Config = (): Array<CodeFile> =>\n this.wrap(\n 'primitives.css',\n makeTailwindV4Config(this.paletteData),\n 'text/css',\n 'semantics.css',\n this.systemData\n ? makeTailwindV4Semantics(this.paletteData, this.systemData)\n : null\n )\n\n makeDtcgTokens = (\n colorSpace: ColorSpaceConfiguration = 'RGB'\n ): Array<CodeFile> =>\n this.wrap(\n 'primitives.json',\n makeDtcgTokens(this.paletteData, colorSpace),\n 'application/json',\n 'semantics.json',\n this.systemData\n ? makeDtcgSemantics(this.paletteData, this.systemData)\n : null\n )\n\n makeStyleDictionaryV3Tokens = (): Array<CodeFile> =>\n this.wrap(\n 'primitives.json',\n makeStyleDictionaryV3Tokens(this.paletteData),\n 'application/json',\n 'semantics.json',\n this.systemData\n ? makeStyleDictionaryV3Semantics(this.paletteData, this.systemData)\n : null\n )\n\n makeUniversalJson = (): Array<CodeFile> =>\n this.wrap(\n 'primitives.json',\n makeUniversalTokens(this.paletteData),\n 'application/json',\n 'semantics.json',\n this.systemData\n ? makeUniversalSemantics(this.paletteData, this.systemData)\n : null\n )\n\n makeNativeTokens = (): Array<CodeFile> => {\n // Native Tokens (Tokens Studio) expects a single JSON with multiple sets.\n // Both primitives and semantics live in the same file when systemData is present.\n if (!this.systemData)\n return [\n {\n filename: 'tokens.json',\n content: makeNativeTokens(this.paletteData),\n mimeType: 'application/json',\n },\n ]\n return [\n {\n filename: 'tokens.json',\n content: makeNativeSemantics(this.paletteData, this.systemData),\n mimeType: 'application/json',\n },\n ]\n }\n\n makeSwiftUI = (): Array<CodeFile> =>\n this.wrap(\n 'Primitives.swift',\n makeSwiftUI(this.paletteData),\n 'text/swift',\n 'SemanticTokens.swift',\n this.systemData\n ? makeSwiftUISemantics(this.paletteData, this.systemData)\n : null\n )\n\n makeUIKit = (): Array<CodeFile> =>\n this.wrap(\n 'Primitives.swift',\n makeUIKit(this.paletteData),\n 'text/swift',\n 'SemanticTokens.swift',\n this.systemData\n ? makeUIKitSemantics(this.paletteData, this.systemData)\n : null\n )\n\n makeCompose = (): Array<CodeFile> =>\n this.wrap(\n 'Primitives.kt',\n makeCompose(this.paletteData),\n 'text/x-kotlin',\n 'SemanticTokens.kt',\n this.systemData\n ? makeComposeSemantics(this.paletteData, this.systemData)\n : null\n )\n\n makeResources = (): Array<CodeFile> =>\n this.wrap(\n 'primitives.xml',\n makeResources(this.paletteData),\n 'text/xml',\n 'semantics.xml',\n this.systemData\n ? makeResourcesSemantics(this.paletteData, this.systemData)\n : null\n )\n\n makeCsv = (): Array<CodeFile> => {\n const primitives = makeCsv(this.paletteData)\n const files: Array<CodeFile> = [\n {\n filename: 'primitives.csv',\n content: JSON.stringify(primitives),\n mimeType: 'text/csv',\n },\n ]\n if (this.systemData)\n files.push({\n filename: 'semantics.csv',\n content: makeCsvSemantics(this.paletteData, this.systemData),\n mimeType: 'text/csv',\n })\n return files\n }\n}\n"],"names":["r","o","s","e","t","a","p","parseShadeId","shadeId","parts","themeId","colorId","shadeName","findColorName","paletteData","theme","color","c","findThemeName","_a","workingThemes","resolveTokenPerTheme","token","parsed","partitionTokens","systemData","bound","unbound","excluded","makeUniversalSemantics","themes","customThemes","root","setNested","obj","keys","value","cur","i","k","refFor","colorName","Case","rr","themeKey","themeBlock","makeUIKitSemantics","defaultTheme","out","camelToken","primitiveRef","themeName","colorCamel","shadeCamel","resolved","def","themePascal","makeTailwindV4Semantics","tokenName","overrideLines","themeRef","defRef","makeTailwindV3Semantics","tokenKey","ref","makeSwiftUISemantics","themePrefix","makeStyleDictionaryV3Semantics","aliasFor","semantic","tokenObj","makeScssSemantics","primitiveRefScss","primitiveRefVar","isDefault","mixinName","makeResourcesSemantics","makeNativeTokens","paletteName","colorModel","shade","source","chroma","themeModel","name","description","json","makeNativeSemantics","primitivesJson","setKey","semanticSet","keyPath","themeSemanticKey","themeSet","makeLessSemantics","fnName","makeDtcgSemantics","overrides","escapeCsv","makeCsvSemantics","_paletteData","rows","path","makeCssSemantics","defaultLines","makeComposeSemantics","makeUniversalTokens","model","modelWithAlpha","makeUIKit","swift","UIColors","makeTailwindV4Config","cssOutput","colorValue","isLastColor","isLastTheme","makeTailwindV3Config","makeSwiftUI","Colors","makeStyleDictionaryV3Tokens","makeScssVariables","colorSpace","scss","globalVars","setValueAccordingToColorSpace","actions","setValueAccordingToAlpha","defaultVars","index","variableName","themeVars","cssVarName","colorVariables","colorGroups","match","scssVarName","vars","rootBlock","classBlocks","makeResources","resources","colors","makeLessVariables","less","makeDtcgTokens","setValueAccordingToColorSpaceAndAlpha","makeCsv","colorCsv","modeCsv","lightness","l","h","stop","makeCssCustomProps","css","rowCss","makeCompose","kotlin","Code","__publicField","primitivesFilename","primitivesContent","mimeType","semanticsFilename","semanticsContent","files","primitives"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ColorFormat } from '../../types/model.types';
|
|
2
|
+
import { AlgorithmVersionConfiguration, VisionSimulationModeConfiguration } from '../../types/configuration.types';
|
|
3
|
+
import { Channel, ChannelWithAlpha, HexModel } from '../../types/color.types';
|
|
4
|
+
export default class Color {
|
|
5
|
+
private render;
|
|
6
|
+
private sourceColor;
|
|
7
|
+
private lightness;
|
|
8
|
+
private alpha;
|
|
9
|
+
private hueShifting;
|
|
10
|
+
private chromaShifting;
|
|
11
|
+
private algorithmVersion;
|
|
12
|
+
private visionSimulationMode;
|
|
13
|
+
constructor({ render, sourceColor, lightness, alpha, hueShifting, chromaShifting, algorithmVersion, visionSimulationMode, }: {
|
|
14
|
+
render?: 'HEX' | 'RGB';
|
|
15
|
+
sourceColor?: Channel;
|
|
16
|
+
lightness?: number;
|
|
17
|
+
alpha?: number;
|
|
18
|
+
hueShifting?: number;
|
|
19
|
+
chromaShifting?: number;
|
|
20
|
+
algorithmVersion?: AlgorithmVersionConfiguration;
|
|
21
|
+
visionSimulationMode?: VisionSimulationModeConfiguration;
|
|
22
|
+
});
|
|
23
|
+
adjustHue: (hue: number) => number;
|
|
24
|
+
adjustChroma: (chroma: number) => number;
|
|
25
|
+
setColor: () => ColorFormat<typeof this.render>;
|
|
26
|
+
setColorWithAlpha: () => ColorFormat<typeof this.render>;
|
|
27
|
+
lch: () => ColorFormat<typeof this.render>;
|
|
28
|
+
lcha: () => ColorFormat<typeof this.render>;
|
|
29
|
+
oklch: () => ColorFormat<typeof this.render>;
|
|
30
|
+
oklcha: () => ColorFormat<typeof this.render>;
|
|
31
|
+
lab: () => ColorFormat<typeof this.render>;
|
|
32
|
+
laba: () => ColorFormat<typeof this.render>;
|
|
33
|
+
oklab: () => ColorFormat<typeof this.render>;
|
|
34
|
+
oklaba: () => ColorFormat<typeof this.render>;
|
|
35
|
+
hsl: () => ColorFormat<typeof this.render>;
|
|
36
|
+
hsla: () => ColorFormat<typeof this.render>;
|
|
37
|
+
hsluv: () => ColorFormat<typeof this.render>;
|
|
38
|
+
hsluva: () => ColorFormat<typeof this.render>;
|
|
39
|
+
hsv: () => ColorFormat<typeof this.render>;
|
|
40
|
+
hsva: () => ColorFormat<typeof this.render>;
|
|
41
|
+
cmyk: () => ColorFormat<typeof this.render>;
|
|
42
|
+
cmyka: () => ColorFormat<typeof this.render>;
|
|
43
|
+
getHsluv: () => Channel;
|
|
44
|
+
simulateColorBlindHex: (color: Channel) => HexModel;
|
|
45
|
+
simulateColorBlindRgb: (color: Channel) => Channel;
|
|
46
|
+
mixColorsRgb: (colorA: ChannelWithAlpha, colorB: ChannelWithAlpha) => Channel;
|
|
47
|
+
mixColorsHex: (colorA: HexModel, colorB: HexModel) => HexModel;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=color.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../src/modules/color/color.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Channel, HarmonyType, ColorHarmonyResult, ColorHarmonyOptions } from '../../types/color.types';
|
|
2
|
+
export default class ColorHarmony {
|
|
3
|
+
private baseColor;
|
|
4
|
+
private analogousSpread;
|
|
5
|
+
private returnFormat;
|
|
6
|
+
constructor({ baseColor, analogousSpread, returnFormat, }: {
|
|
7
|
+
baseColor?: Channel;
|
|
8
|
+
} & ColorHarmonyOptions);
|
|
9
|
+
generateAnalogous: () => ColorHarmonyResult;
|
|
10
|
+
generateComplementary: () => ColorHarmonyResult;
|
|
11
|
+
generateTriadic: () => ColorHarmonyResult;
|
|
12
|
+
generateTetradic: () => ColorHarmonyResult;
|
|
13
|
+
generateSquare: () => ColorHarmonyResult;
|
|
14
|
+
generateCompound: () => ColorHarmonyResult;
|
|
15
|
+
generateHarmony: (type: HarmonyType) => ColorHarmonyResult;
|
|
16
|
+
getAllHarmonies: () => ColorHarmonyResult[];
|
|
17
|
+
private normalizeHue;
|
|
18
|
+
private hueToRgb;
|
|
19
|
+
private formatResult;
|
|
20
|
+
setBaseColor: (color: Channel) => void;
|
|
21
|
+
setAnalogousSpread: (spread: number) => void;
|
|
22
|
+
updateOptions: (options: Partial<ColorHarmonyOptions>) => void;
|
|
23
|
+
getOptions: () => ColorHarmonyOptions;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=color-harmony.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-harmony.d.ts","sourceRoot":"","sources":["../../../src/modules/color-harmony/color-harmony.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EAEP,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,kBAAkB,CAAA;AAEzB,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,YAAY,CAAwB;gBAEhC,EACV,SAAuB,EACvB,eAAoB,EACpB,YAAqB,GACtB,EAAE;QACD,SAAS,CAAC,EAAE,OAAO,CAAA;KACpB,GAAG,mBAAmB;IAMvB,iBAAiB,QAAO,kBAAkB,CAmBzC;IAED,qBAAqB,QAAO,kBAAkB,CAU7C;IAED,eAAe,QAAO,kBAAkB,CAWvC;IAED,gBAAgB,QAAO,kBAAkB,CAYxC;IAED,cAAc,QAAO,kBAAkB,CAYtC;IAED,gBAAgB,QAAO,kBAAkB,CAYxC;IAED,eAAe,SAAU,WAAW,KAAG,kBAAkB,CAiBxD;IAED,eAAe,QAAO,kBAAkB,EAAE,CASzC;IAED,OAAO,CAAC,YAAY,CAInB;IAED,OAAO,CAAC,QAAQ,CAOf;IAED,OAAO,CAAC,YAAY,CA8BnB;IAED,YAAY,UAAW,OAAO,KAAG,IAAI,CAEpC;IAED,kBAAkB,WAAY,MAAM,KAAG,IAAI,CAE1C;IAED,aAAa,YAAa,OAAO,CAAC,mBAAmB,CAAC,KAAG,IAAI,CAO5D;IAED,UAAU,QAAO,mBAAmB,CAGlC;CACH"}
|