@oxyhq/bloom 0.40.0 → 0.42.0
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/lib/commonjs/theme/BloomThemeProvider.js +18 -7
- package/lib/commonjs/theme/BloomThemeProvider.js.map +1 -1
- package/lib/commonjs/theme/apply-dark-class.js +2 -2
- package/lib/commonjs/theme/apply-dark-class.js.map +1 -1
- package/lib/commonjs/theme/build-theme-from-seed.js +17 -5
- package/lib/commonjs/theme/build-theme-from-seed.js.map +1 -1
- package/lib/commonjs/theme/build-theme.js +9 -6
- package/lib/commonjs/theme/build-theme.js.map +1 -1
- package/lib/commonjs/theme/color-engine/index.js +8 -1
- package/lib/commonjs/theme/color-engine/index.js.map +1 -1
- package/lib/commonjs/theme/color-engine/scheme-variants.js +62 -15
- package/lib/commonjs/theme/color-engine/scheme-variants.js.map +1 -1
- package/lib/commonjs/theme/color-engine/seed-from-image.js +11 -1
- package/lib/commonjs/theme/color-engine/seed-from-image.js.map +1 -1
- package/lib/commonjs/theme/color-presets.js +13 -13
- package/lib/commonjs/theme/color-presets.js.map +1 -1
- package/lib/commonjs/theme/color-scope/seed-scope.js +4 -1
- package/lib/commonjs/theme/color-scope/seed-scope.js.map +1 -1
- package/lib/commonjs/theme/color-scope/style-builder.js +2 -2
- package/lib/commonjs/theme/color-scope/style-builder.js.map +1 -1
- package/lib/commonjs/theme/index.js.map +1 -1
- package/lib/commonjs/theme/native-root-vars.js +1 -1
- package/lib/commonjs/theme/native-root-vars.js.map +1 -1
- package/lib/commonjs/theme/native-root-vars.native.js +2 -2
- package/lib/commonjs/theme/native-root-vars.native.js.map +1 -1
- package/lib/commonjs/theme/native-root-vars.web.js +1 -1
- package/lib/commonjs/theme/native-root-vars.web.js.map +1 -1
- package/lib/commonjs/theme/preset-vars.js +16 -2
- package/lib/commonjs/theme/preset-vars.js.map +1 -1
- package/lib/commonjs/theme/token-registry.js +2 -2
- package/lib/commonjs/theme/token-registry.js.map +1 -1
- package/lib/module/theme/BloomThemeProvider.js +18 -7
- package/lib/module/theme/BloomThemeProvider.js.map +1 -1
- package/lib/module/theme/apply-dark-class.js +2 -2
- package/lib/module/theme/apply-dark-class.js.map +1 -1
- package/lib/module/theme/build-theme-from-seed.js +18 -5
- package/lib/module/theme/build-theme-from-seed.js.map +1 -1
- package/lib/module/theme/build-theme.js +9 -6
- package/lib/module/theme/build-theme.js.map +1 -1
- package/lib/module/theme/color-engine/index.js +8 -1
- package/lib/module/theme/color-engine/index.js.map +1 -1
- package/lib/module/theme/color-engine/scheme-variants.js +62 -15
- package/lib/module/theme/color-engine/scheme-variants.js.map +1 -1
- package/lib/module/theme/color-engine/seed-from-image.js +11 -1
- package/lib/module/theme/color-engine/seed-from-image.js.map +1 -1
- package/lib/module/theme/color-presets.js +13 -13
- package/lib/module/theme/color-presets.js.map +1 -1
- package/lib/module/theme/color-scope/seed-scope.js +4 -1
- package/lib/module/theme/color-scope/seed-scope.js.map +1 -1
- package/lib/module/theme/color-scope/style-builder.js +2 -2
- package/lib/module/theme/color-scope/style-builder.js.map +1 -1
- package/lib/module/theme/index.js.map +1 -1
- package/lib/module/theme/native-root-vars.js +1 -1
- package/lib/module/theme/native-root-vars.js.map +1 -1
- package/lib/module/theme/native-root-vars.native.js +2 -2
- package/lib/module/theme/native-root-vars.native.js.map +1 -1
- package/lib/module/theme/native-root-vars.web.js +1 -1
- package/lib/module/theme/native-root-vars.web.js.map +1 -1
- package/lib/module/theme/preset-vars.js +17 -2
- package/lib/module/theme/preset-vars.js.map +1 -1
- package/lib/module/theme/token-registry.js +2 -2
- package/lib/module/theme/token-registry.js.map +1 -1
- package/lib/typescript/commonjs/theme/BloomThemeProvider.d.ts +15 -1
- package/lib/typescript/commonjs/theme/BloomThemeProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/apply-dark-class.d.ts +2 -1
- package/lib/typescript/commonjs/theme/apply-dark-class.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/build-theme-from-seed.d.ts +13 -2
- package/lib/typescript/commonjs/theme/build-theme-from-seed.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/build-theme.d.ts +2 -1
- package/lib/typescript/commonjs/theme/build-theme.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-engine/index.d.ts +17 -1
- package/lib/typescript/commonjs/theme/color-engine/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-engine/scheme-variants.d.ts +34 -7
- package/lib/typescript/commonjs/theme/color-engine/scheme-variants.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-engine/seed-from-image.d.ts +11 -1
- package/lib/typescript/commonjs/theme/color-engine/seed-from-image.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-presets.d.ts +14 -0
- package/lib/typescript/commonjs/theme/color-presets.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-scope/seed-scope.d.ts +15 -2
- package/lib/typescript/commonjs/theme/color-scope/seed-scope.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-scope/style-builder.d.ts +2 -1
- package/lib/typescript/commonjs/theme/color-scope/style-builder.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/index.d.ts +3 -1
- package/lib/typescript/commonjs/theme/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/native-root-vars.d.ts +2 -1
- package/lib/typescript/commonjs/theme/native-root-vars.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/native-root-vars.native.d.ts +2 -1
- package/lib/typescript/commonjs/theme/native-root-vars.native.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/native-root-vars.web.d.ts +2 -1
- package/lib/typescript/commonjs/theme/native-root-vars.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/preset-vars.d.ts +12 -1
- package/lib/typescript/commonjs/theme/preset-vars.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/token-registry.d.ts +2 -1
- package/lib/typescript/commonjs/theme/token-registry.d.ts.map +1 -1
- package/lib/typescript/module/theme/BloomThemeProvider.d.ts +15 -1
- package/lib/typescript/module/theme/BloomThemeProvider.d.ts.map +1 -1
- package/lib/typescript/module/theme/apply-dark-class.d.ts +2 -1
- package/lib/typescript/module/theme/apply-dark-class.d.ts.map +1 -1
- package/lib/typescript/module/theme/build-theme-from-seed.d.ts +13 -2
- package/lib/typescript/module/theme/build-theme-from-seed.d.ts.map +1 -1
- package/lib/typescript/module/theme/build-theme.d.ts +2 -1
- package/lib/typescript/module/theme/build-theme.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-engine/index.d.ts +17 -1
- package/lib/typescript/module/theme/color-engine/index.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-engine/scheme-variants.d.ts +34 -7
- package/lib/typescript/module/theme/color-engine/scheme-variants.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-engine/seed-from-image.d.ts +11 -1
- package/lib/typescript/module/theme/color-engine/seed-from-image.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-presets.d.ts +14 -0
- package/lib/typescript/module/theme/color-presets.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-scope/seed-scope.d.ts +15 -2
- package/lib/typescript/module/theme/color-scope/seed-scope.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-scope/style-builder.d.ts +2 -1
- package/lib/typescript/module/theme/color-scope/style-builder.d.ts.map +1 -1
- package/lib/typescript/module/theme/index.d.ts +3 -1
- package/lib/typescript/module/theme/index.d.ts.map +1 -1
- package/lib/typescript/module/theme/native-root-vars.d.ts +2 -1
- package/lib/typescript/module/theme/native-root-vars.d.ts.map +1 -1
- package/lib/typescript/module/theme/native-root-vars.native.d.ts +2 -1
- package/lib/typescript/module/theme/native-root-vars.native.d.ts.map +1 -1
- package/lib/typescript/module/theme/native-root-vars.web.d.ts +2 -1
- package/lib/typescript/module/theme/native-root-vars.web.d.ts.map +1 -1
- package/lib/typescript/module/theme/preset-vars.d.ts +12 -1
- package/lib/typescript/module/theme/preset-vars.d.ts.map +1 -1
- package/lib/typescript/module/theme/token-registry.d.ts +2 -1
- package/lib/typescript/module/theme/token-registry.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/theme.test.ts +3 -0
- package/src/theme/BloomThemeProvider.tsx +38 -8
- package/src/theme/__tests__/__fixtures__/golden-resolved-tokens.json +74 -74
- package/src/theme/__tests__/__snapshots__/visual-gallery.test.tsx.snap +68 -68
- package/src/theme/__tests__/explicit-accents.test.ts +129 -0
- package/src/theme/apply-dark-class.ts +7 -2
- package/src/theme/build-theme-from-seed.ts +25 -2
- package/src/theme/build-theme.ts +9 -3
- package/src/theme/color-engine/index.ts +27 -1
- package/src/theme/color-engine/scheme-variants.ts +131 -24
- package/src/theme/color-engine/seed-from-image.ts +11 -1
- package/src/theme/color-presets.ts +27 -13
- package/src/theme/color-scope/seed-scope.ts +18 -2
- package/src/theme/color-scope/style-builder.ts +3 -1
- package/src/theme/index.ts +3 -1
- package/src/theme/native-root-vars.native.ts +7 -2
- package/src/theme/native-root-vars.ts +6 -1
- package/src/theme/native-root-vars.web.ts +6 -1
- package/src/theme/preset-vars.ts +19 -0
- package/src/theme/token-registry.ts +3 -2
|
@@ -44,9 +44,16 @@ export function hexFromArgb(argb) {
|
|
|
44
44
|
/**
|
|
45
45
|
* Generate the full role set from ANY seed colour — the dynamic-theming entry
|
|
46
46
|
* point. Presets are just fixed seeds; a user-picked colour works identically.
|
|
47
|
+
*
|
|
48
|
+
* `secondarySeed` / `tertiarySeed` optionally PIN those accent families to real
|
|
49
|
+
* brand colours (e.g. a blue-primary brand with a yellow secondary); omitted, the
|
|
50
|
+
* accents are derived as the variant's hue-rotations — byte-identical to before.
|
|
47
51
|
*/
|
|
48
52
|
export function generateRoleColors(opts) {
|
|
49
|
-
const scheme = buildScheme(opts.variant ?? 'vibrant', Hct.fromInt(argbFromHex(opts.seed)), opts.isDark ?? false, opts.contrastLevel ?? 0
|
|
53
|
+
const scheme = buildScheme(opts.variant ?? 'vibrant', Hct.fromInt(argbFromHex(opts.seed)), opts.isDark ?? false, opts.contrastLevel ?? 0, {
|
|
54
|
+
secondarySource: opts.secondarySeed !== undefined ? Hct.fromInt(argbFromHex(opts.secondarySeed)) : undefined,
|
|
55
|
+
tertiarySource: opts.tertiarySeed !== undefined ? Hct.fromInt(argbFromHex(opts.tertiarySeed)) : undefined
|
|
56
|
+
});
|
|
50
57
|
const out = {};
|
|
51
58
|
for (const name of Object.keys(Roles)) {
|
|
52
59
|
const argb = Roles[name].getArgb(scheme);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Hct","TonalPalette","DynamicScheme","buildScheme","schemeVibrant","schemeExpressive","schemeTonalSpot","schemeNeutral","Roles","ColorRole","quantizeWu","score","quantizeImage","seedsFromImagePixels","seedHexFromImagePixels","argbFromRgb","redFromArgb","greenFromArgb","blueFromArgb","argbFromHex","hex","h","replace","v","length","parseInt","hexFromArgb","argb","r","toString","padStart","g","b","generateRoleColors","opts","scheme","variant","fromInt","seed","isDark","contrastLevel","out","name","Object","keys","getArgb"],"sourceRoot":"../../../../src","sources":["theme/color-engine/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,GAAG,QAAQ,UAAO;AAC3B,SAASC,YAAY,QAAQ,oBAAiB;AAC9C,SAASC,aAAa,QAAQ,qBAAkB;AAChD,SAASC,WAAW,EAAEC,aAAa,EAAEC,gBAAgB,EAAEC,eAAe,EAAEC,aAAa,QAAQ,sBAAmB;AAEhH,SAASC,KAAK,QAAQ,kBAAe;AAErC,SAASC,SAAS,QAAQ,iBAAc;AACxC,SAASC,UAAU,QAAQ,mBAAgB;AAC3C,SAASC,KAAK,QAAQ,YAAS;AAE/B,SAASC,aAAa,EAAEC,oBAAoB,EAAEC,sBAAsB,QAAQ,sBAAmB;AAC/F,SAASC,WAAW,EAAEC,WAAW,EAAEC,aAAa,EAAEC,YAAY,QAAQ,kBAAe;AAErF,SAASA,YAAY,EAAED,aAAa,EAAED,WAAW,QAAQ,kBAAe;AACxE,SAASR,KAAK,QAAuB,kBAAe;AACpD,SAASR,GAAG,QAAQ,UAAO;AAC3B,SAASG,WAAW,QAA4B,sBAAmB;;AAEnE;AACA,OAAO,SAASgB,WAAWA,CAACC,GAAW,EAAU;EAC/C,MAAMC,CAAC,GAAGD,GAAG,CAACE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;EAC9B,MAAMC,CAAC,GAAGF,CAAC,CAACG,MAAM,KAAK,CAAC,GAAG,KAAKH,CAAC,EAAE,GAAGA,CAAC;EACvC,OAAOI,QAAQ,CAACF,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;AAC9B;;AAEA;AACA,OAAO,SAASG,WAAWA,CAACC,IAAY,EAAU;EAChD,MAAMC,CAAC,GAAGZ,WAAW,CAACW,IAAI,CAAC,CAACE,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EACzD,MAAMC,CAAC,GAAGd,aAAa,CAACU,IAAI,CAAC,CAACE,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAC3D,MAAME,CAAC,GAAGd,YAAY,CAACS,IAAI,CAAC,CAACE,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAC1D,OAAO,IAAIF,CAAC,GAAGG,CAAC,GAAGC,CAAC,EAAE;AACxB;;AAEA;;
|
|
1
|
+
{"version":3,"names":["Hct","TonalPalette","DynamicScheme","buildScheme","schemeVibrant","schemeExpressive","schemeTonalSpot","schemeNeutral","Roles","ColorRole","quantizeWu","score","quantizeImage","seedsFromImagePixels","seedHexFromImagePixels","argbFromRgb","redFromArgb","greenFromArgb","blueFromArgb","argbFromHex","hex","h","replace","v","length","parseInt","hexFromArgb","argb","r","toString","padStart","g","b","generateRoleColors","opts","scheme","variant","fromInt","seed","isDark","contrastLevel","secondarySource","secondarySeed","undefined","tertiarySource","tertiarySeed","out","name","Object","keys","getArgb"],"sourceRoot":"../../../../src","sources":["theme/color-engine/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,6 +13,25 @@ import { DynamicScheme } from "./dynamic-scheme.js";
|
|
|
13
13
|
import { sanitizeDegreesDouble } from "./math-utils.js";
|
|
14
14
|
import { TonalPalette } from "./tonal-palette.js";
|
|
15
15
|
import { Variant } from "./variant.js";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Optional explicit accent seeds for a scheme. When a source HCT is supplied, its
|
|
19
|
+
* palette is built from that colour itself (keeping the brand hue + chroma) instead
|
|
20
|
+
* of the derived hue-rotation — so a brand with a distinct secondary/tertiary accent
|
|
21
|
+
* (e.g. blue primary + yellow secondary) can PIN its real accent family. The M3 role
|
|
22
|
+
* tones still apply on top (a pinned yellow yields a yellow-hued secondary family:
|
|
23
|
+
* light container, dark on-colour) — that is correct M3 behaviour.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Build the accent tonal palette for a role: from the pinned brand colour when a
|
|
28
|
+
* `source` is provided (preserving its hue + chroma), otherwise from the caller's
|
|
29
|
+
* derived rotation. Uses `TonalPalette.fromInt` so the palette keeps the exact
|
|
30
|
+
* brand key colour; the role tones apply the same way for both.
|
|
31
|
+
*/
|
|
32
|
+
function accentPalette(source, derived) {
|
|
33
|
+
return source !== undefined ? TonalPalette.fromInt(source.toInt()) : derived();
|
|
34
|
+
}
|
|
16
35
|
const VIBRANT_HUES = [0.0, 41.0, 61.0, 101.0, 131.0, 181.0, 251.0, 301.0, 360.0];
|
|
17
36
|
const VIBRANT_SECONDARY_ROTATIONS = [18.0, 15.0, 10.0, 12.0, 15.0, 18.0, 15.0, 12.0, 12.0];
|
|
18
37
|
const VIBRANT_TERTIARY_ROTATIONS = [35.0, 30.0, 20.0, 25.0, 30.0, 35.0, 30.0, 25.0, 25.0];
|
|
@@ -21,73 +40,101 @@ const EXPRESSIVE_SECONDARY_ROTATIONS = [45.0, 95.0, 45.0, 20.0, 45.0, 90.0, 45.0
|
|
|
21
40
|
const EXPRESSIVE_TERTIARY_ROTATIONS = [120.0, 120.0, 20.0, 45.0, 20.0, 15.0, 20.0, 120.0, 120.0];
|
|
22
41
|
|
|
23
42
|
/** Maxed-out colourfulness at each position of the primary palette. */
|
|
24
|
-
export function schemeVibrant(source, isDark, contrastLevel) {
|
|
43
|
+
export function schemeVibrant(source, isDark, contrastLevel, accents = {}) {
|
|
25
44
|
return new DynamicScheme({
|
|
26
45
|
sourceColorArgb: source.toInt(),
|
|
27
46
|
variant: Variant.VIBRANT,
|
|
28
47
|
contrastLevel,
|
|
29
48
|
isDark,
|
|
30
49
|
primaryPalette: TonalPalette.fromHueAndChroma(source.hue, 200.0),
|
|
31
|
-
secondaryPalette: TonalPalette.fromHueAndChroma(DynamicScheme.getRotatedHue(source, VIBRANT_HUES, VIBRANT_SECONDARY_ROTATIONS), 24.0),
|
|
32
|
-
tertiaryPalette: TonalPalette.fromHueAndChroma(DynamicScheme.getRotatedHue(source, VIBRANT_HUES, VIBRANT_TERTIARY_ROTATIONS), 32.0),
|
|
50
|
+
secondaryPalette: accentPalette(accents.secondarySource, () => TonalPalette.fromHueAndChroma(DynamicScheme.getRotatedHue(source, VIBRANT_HUES, VIBRANT_SECONDARY_ROTATIONS), 24.0)),
|
|
51
|
+
tertiaryPalette: accentPalette(accents.tertiarySource, () => TonalPalette.fromHueAndChroma(DynamicScheme.getRotatedHue(source, VIBRANT_HUES, VIBRANT_TERTIARY_ROTATIONS), 32.0)),
|
|
33
52
|
neutralPalette: TonalPalette.fromHueAndChroma(source.hue, 10.0),
|
|
34
53
|
neutralVariantPalette: TonalPalette.fromHueAndChroma(source.hue, 12.0)
|
|
35
54
|
});
|
|
36
55
|
}
|
|
37
56
|
|
|
38
57
|
/** Playful, intentionally detached from the seed hue (primary rotated 240°). */
|
|
39
|
-
|
|
58
|
+
/**
|
|
59
|
+
* Bloom's own brand-vivid scheme. Same vibrant base (max-chroma primary) but the
|
|
60
|
+
* secondary and tertiary accents keep MUCH more chroma than canonical M3 (which
|
|
61
|
+
* intentionally desaturates supporting accents). Neutrals stay low-chroma so
|
|
62
|
+
* surfaces read as clean tinted light/dark. This is what the presets use — the
|
|
63
|
+
* old hand-authored palette felt more vivid than pure M3, and this restores that
|
|
64
|
+
* across the whole primary/secondary/tertiary trio.
|
|
65
|
+
*/
|
|
66
|
+
export function schemeVivid(source, isDark, contrastLevel, accents = {}) {
|
|
67
|
+
return new DynamicScheme({
|
|
68
|
+
sourceColorArgb: source.toInt(),
|
|
69
|
+
variant: Variant.VIBRANT,
|
|
70
|
+
contrastLevel,
|
|
71
|
+
isDark,
|
|
72
|
+
primaryPalette: TonalPalette.fromHueAndChroma(source.hue, 200.0),
|
|
73
|
+
secondaryPalette: accentPalette(accents.secondarySource, () => TonalPalette.fromHueAndChroma(DynamicScheme.getRotatedHue(source, VIBRANT_HUES, VIBRANT_SECONDARY_ROTATIONS), 64.0)),
|
|
74
|
+
tertiaryPalette: accentPalette(accents.tertiarySource, () => TonalPalette.fromHueAndChroma(DynamicScheme.getRotatedHue(source, VIBRANT_HUES, VIBRANT_TERTIARY_ROTATIONS), 72.0)),
|
|
75
|
+
neutralPalette: TonalPalette.fromHueAndChroma(source.hue, 10.0),
|
|
76
|
+
neutralVariantPalette: TonalPalette.fromHueAndChroma(source.hue, 12.0)
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
export function schemeExpressive(source, isDark, contrastLevel, accents = {}) {
|
|
40
80
|
return new DynamicScheme({
|
|
41
81
|
sourceColorArgb: source.toInt(),
|
|
42
82
|
variant: Variant.EXPRESSIVE,
|
|
43
83
|
contrastLevel,
|
|
44
84
|
isDark,
|
|
45
85
|
primaryPalette: TonalPalette.fromHueAndChroma(sanitizeDegreesDouble(source.hue + 240.0), 40.0),
|
|
46
|
-
secondaryPalette: TonalPalette.fromHueAndChroma(DynamicScheme.getRotatedHue(source, EXPRESSIVE_HUES, EXPRESSIVE_SECONDARY_ROTATIONS), 24.0),
|
|
47
|
-
tertiaryPalette: TonalPalette.fromHueAndChroma(DynamicScheme.getRotatedHue(source, EXPRESSIVE_HUES, EXPRESSIVE_TERTIARY_ROTATIONS), 32.0),
|
|
86
|
+
secondaryPalette: accentPalette(accents.secondarySource, () => TonalPalette.fromHueAndChroma(DynamicScheme.getRotatedHue(source, EXPRESSIVE_HUES, EXPRESSIVE_SECONDARY_ROTATIONS), 24.0)),
|
|
87
|
+
tertiaryPalette: accentPalette(accents.tertiarySource, () => TonalPalette.fromHueAndChroma(DynamicScheme.getRotatedHue(source, EXPRESSIVE_HUES, EXPRESSIVE_TERTIARY_ROTATIONS), 32.0)),
|
|
48
88
|
neutralPalette: TonalPalette.fromHueAndChroma(source.hue + 15, 8.0),
|
|
49
89
|
neutralVariantPalette: TonalPalette.fromHueAndChroma(source.hue + 15, 12.0)
|
|
50
90
|
});
|
|
51
91
|
}
|
|
52
92
|
|
|
53
93
|
/** The Material You default — a calm, balanced treatment of the seed. */
|
|
54
|
-
export function schemeTonalSpot(source, isDark, contrastLevel) {
|
|
94
|
+
export function schemeTonalSpot(source, isDark, contrastLevel, accents = {}) {
|
|
55
95
|
return new DynamicScheme({
|
|
56
96
|
sourceColorArgb: source.toInt(),
|
|
57
97
|
variant: Variant.TONAL_SPOT,
|
|
58
98
|
contrastLevel,
|
|
59
99
|
isDark,
|
|
60
100
|
primaryPalette: TonalPalette.fromHueAndChroma(source.hue, 36.0),
|
|
61
|
-
secondaryPalette: TonalPalette.fromHueAndChroma(source.hue, 16.0),
|
|
62
|
-
tertiaryPalette: TonalPalette.fromHueAndChroma(sanitizeDegreesDouble(source.hue + 60.0), 24.0),
|
|
101
|
+
secondaryPalette: accentPalette(accents.secondarySource, () => TonalPalette.fromHueAndChroma(source.hue, 16.0)),
|
|
102
|
+
tertiaryPalette: accentPalette(accents.tertiarySource, () => TonalPalette.fromHueAndChroma(sanitizeDegreesDouble(source.hue + 60.0), 24.0)),
|
|
63
103
|
neutralPalette: TonalPalette.fromHueAndChroma(source.hue, 6.0),
|
|
64
104
|
neutralVariantPalette: TonalPalette.fromHueAndChroma(source.hue, 8.0)
|
|
65
105
|
});
|
|
66
106
|
}
|
|
67
107
|
|
|
68
108
|
/** Near-greyscale — the seed hue is present only as a whisper. */
|
|
69
|
-
export function schemeNeutral(source, isDark, contrastLevel) {
|
|
109
|
+
export function schemeNeutral(source, isDark, contrastLevel, accents = {}) {
|
|
70
110
|
return new DynamicScheme({
|
|
71
111
|
sourceColorArgb: source.toInt(),
|
|
72
112
|
variant: Variant.NEUTRAL,
|
|
73
113
|
contrastLevel,
|
|
74
114
|
isDark,
|
|
75
115
|
primaryPalette: TonalPalette.fromHueAndChroma(source.hue, 12.0),
|
|
76
|
-
secondaryPalette: TonalPalette.fromHueAndChroma(source.hue, 8.0),
|
|
77
|
-
tertiaryPalette: TonalPalette.fromHueAndChroma(source.hue, 16.0),
|
|
116
|
+
secondaryPalette: accentPalette(accents.secondarySource, () => TonalPalette.fromHueAndChroma(source.hue, 8.0)),
|
|
117
|
+
tertiaryPalette: accentPalette(accents.tertiarySource, () => TonalPalette.fromHueAndChroma(source.hue, 16.0)),
|
|
78
118
|
neutralPalette: TonalPalette.fromHueAndChroma(source.hue, 2.0),
|
|
79
119
|
neutralVariantPalette: TonalPalette.fromHueAndChroma(source.hue, 2.0)
|
|
80
120
|
});
|
|
81
121
|
}
|
|
82
122
|
const BUILDERS = {
|
|
123
|
+
vivid: schemeVivid,
|
|
83
124
|
vibrant: schemeVibrant,
|
|
84
125
|
expressive: schemeExpressive,
|
|
85
126
|
tonalSpot: schemeTonalSpot,
|
|
86
127
|
neutral: schemeNeutral
|
|
87
128
|
};
|
|
88
129
|
|
|
89
|
-
/**
|
|
90
|
-
|
|
91
|
-
|
|
130
|
+
/**
|
|
131
|
+
* Build a scheme by variant name.
|
|
132
|
+
*
|
|
133
|
+
* `accents` optionally pins the secondary and/or tertiary palette to an explicit
|
|
134
|
+
* brand colour (see {@link AccentSources}); omitted accents keep the variant's
|
|
135
|
+
* derived hue-rotation, so existing callers get byte-identical output.
|
|
136
|
+
*/
|
|
137
|
+
export function buildScheme(variant, source, isDark, contrastLevel = 0, accents = {}) {
|
|
138
|
+
return BUILDERS[variant](source, isDark, contrastLevel, accents);
|
|
92
139
|
}
|
|
93
140
|
//# sourceMappingURL=scheme-variants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DynamicScheme","sanitizeDegreesDouble","TonalPalette","Variant","VIBRANT_HUES","VIBRANT_SECONDARY_ROTATIONS","VIBRANT_TERTIARY_ROTATIONS","EXPRESSIVE_HUES","EXPRESSIVE_SECONDARY_ROTATIONS","EXPRESSIVE_TERTIARY_ROTATIONS","schemeVibrant","
|
|
1
|
+
{"version":3,"names":["DynamicScheme","sanitizeDegreesDouble","TonalPalette","Variant","accentPalette","source","derived","undefined","fromInt","toInt","VIBRANT_HUES","VIBRANT_SECONDARY_ROTATIONS","VIBRANT_TERTIARY_ROTATIONS","EXPRESSIVE_HUES","EXPRESSIVE_SECONDARY_ROTATIONS","EXPRESSIVE_TERTIARY_ROTATIONS","schemeVibrant","isDark","contrastLevel","accents","sourceColorArgb","variant","VIBRANT","primaryPalette","fromHueAndChroma","hue","secondaryPalette","secondarySource","getRotatedHue","tertiaryPalette","tertiarySource","neutralPalette","neutralVariantPalette","schemeVivid","schemeExpressive","EXPRESSIVE","schemeTonalSpot","TONAL_SPOT","schemeNeutral","NEUTRAL","BUILDERS","vivid","vibrant","expressive","tonalSpot","neutral","buildScheme"],"sourceRoot":"../../../../src","sources":["theme/color-engine/scheme-variants.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -51,7 +51,17 @@ export function quantizeImage(pixels, maxColors = 128) {
|
|
|
51
51
|
return result;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
/**
|
|
54
|
+
/**
|
|
55
|
+
* Ranked seed candidates (best first) extracted from an image's pixels (ARGB).
|
|
56
|
+
*
|
|
57
|
+
* The top result (`seeds[0]`) is the primary seed for `generateRoleColors({ seed })`.
|
|
58
|
+
* To derive a richer, brand-accurate theme from artwork, a caller can additionally
|
|
59
|
+
* pin distinct accents from the ranked list: pass `hexFromArgb(seeds[1])` as
|
|
60
|
+
* `secondarySeed` and `hexFromArgb(seeds[2])` as `tertiarySeed` to
|
|
61
|
+
* `generateRoleColors` / `buildSeedScopeVars` / `buildThemeFromSeed` so the
|
|
62
|
+
* secondary and tertiary families reflect the artwork's real supporting colours
|
|
63
|
+
* instead of hue-rotations of the primary.
|
|
64
|
+
*/
|
|
55
65
|
export function seedsFromImagePixels(pixels, options) {
|
|
56
66
|
return score(quantizeImage(pixels), options);
|
|
57
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["hexFromArgb","labDistance","labFromInt","quantizeWu","countByColor","score","quantizeImage","pixels","maxColors","representatives","length","Map","repPoints","map","populations","Array","fill","pixel","count","entries","point","best","bestDistance","Infinity","i","repPoint","undefined","d","result","representative","population","set","seedsFromImagePixels","options","seedHexFromImagePixels","top","desired","Error"],"sourceRoot":"../../../../src","sources":["theme/color-engine/seed-from-image.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,WAAW,QAAQ,YAAS;AACrC,SAASC,WAAW,EAAEC,UAAU,QAAuB,yBAAsB;AAC7E,SAASC,UAAU,QAAQ,mBAAgB;AAC3C,SAASC,YAAY,QAAQ,oBAAiB;AAC9C,SAASC,KAAK,QAA2B,YAAS;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,MAAgB,EAAEC,SAAS,GAAG,GAAG,EAAuB;EACpF,MAAMC,eAAe,GAAGN,UAAU,CAACI,MAAM,EAAEC,SAAS,CAAC;EACrD,IAAIC,eAAe,CAACC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAIC,GAAG,CAAC,CAAC;EAClD,MAAMC,SAAqB,GAAGH,eAAe,CAACI,GAAG,CAACX,UAAU,CAAC;EAE7D,MAAMY,WAAW,GAAG,IAAIC,KAAK,CAASN,eAAe,CAACC,MAAM,CAAC,CAACM,IAAI,CAAC,CAAC,CAAC;EACrE,KAAK,MAAM,CAACC,KAAK,EAAEC,KAAK,CAAC,IAAId,YAAY,CAACG,MAAM,CAAC,CAACY,OAAO,CAAC,CAAC,EAAE;IAC3D,MAAMC,KAAK,GAAGlB,UAAU,CAACe,KAAK,CAAC;IAC/B,IAAII,IAAI,GAAG,CAAC;IACZ,IAAIC,YAAY,GAAGC,QAAQ;IAC3B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGZ,SAAS,CAACF,MAAM,EAAEc,CAAC,EAAE,EAAE;MACzC,MAAMC,QAAQ,GAAGb,SAAS,CAACY,CAAC,CAAC;MAC7B,IAAIC,QAAQ,KAAKC,SAAS,EAAE;MAC5B,MAAMC,CAAC,GAAG1B,WAAW,CAACmB,KAAK,EAAEK,QAAQ,CAAC;MACtC,IAAIE,CAAC,GAAGL,YAAY,EAAE;QACpBA,YAAY,GAAGK,CAAC;QAChBN,IAAI,GAAGG,CAAC;MACV;IACF;IACAV,WAAW,CAACO,IAAI,CAAC,GAAG,CAACP,WAAW,CAACO,IAAI,CAAC,IAAI,CAAC,IAAIH,KAAK;EACtD;EAEA,MAAMU,MAAM,GAAG,IAAIjB,GAAG,CAAiB,CAAC;EACxC,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGf,eAAe,CAACC,MAAM,EAAEc,CAAC,EAAE,EAAE;IAC/C,MAAMK,cAAc,GAAGpB,eAAe,CAACe,CAAC,CAAC;IACzC,MAAMM,UAAU,GAAGhB,WAAW,CAACU,CAAC,CAAC,IAAI,CAAC;IACtC,IAAIK,cAAc,KAAKH,SAAS,IAAII,UAAU,GAAG,CAAC,EAAEF,MAAM,CAACG,GAAG,CAACF,cAAc,EAAEC,UAAU,CAAC;EAC5F;EACA,OAAOF,MAAM;AACf;;AAEA;AACA,OAAO,SAASI,oBAAoBA,CAACzB,MAAgB,EAAE0B,OAAsB,EAAY;EACvF,OAAO5B,KAAK,CAACC,aAAa,CAACC,MAAM,CAAC,EAAE0B,OAAO,CAAC;AAC9C;;AAEA;AACA,OAAO,SAASC,sBAAsBA,CAAC3B,MAAgB,EAAU;EAC/D,MAAM,CAAC4B,GAAG,CAAC,GAAGH,oBAAoB,CAACzB,MAAM,EAAE;IAAE6B,OAAO,EAAE;EAAE,CAAC,CAAC;EAC1D,IAAID,GAAG,KAAKT,SAAS,EAAE,MAAM,IAAIW,KAAK,CAAC,mCAAmC,CAAC;EAC3E,OAAOrC,WAAW,CAACmC,GAAG,CAAC;AACzB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["hexFromArgb","labDistance","labFromInt","quantizeWu","countByColor","score","quantizeImage","pixels","maxColors","representatives","length","Map","repPoints","map","populations","Array","fill","pixel","count","entries","point","best","bestDistance","Infinity","i","repPoint","undefined","d","result","representative","population","set","seedsFromImagePixels","options","seedHexFromImagePixels","top","desired","Error"],"sourceRoot":"../../../../src","sources":["theme/color-engine/seed-from-image.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,WAAW,QAAQ,YAAS;AACrC,SAASC,WAAW,EAAEC,UAAU,QAAuB,yBAAsB;AAC7E,SAASC,UAAU,QAAQ,mBAAgB;AAC3C,SAASC,YAAY,QAAQ,oBAAiB;AAC9C,SAASC,KAAK,QAA2B,YAAS;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,MAAgB,EAAEC,SAAS,GAAG,GAAG,EAAuB;EACpF,MAAMC,eAAe,GAAGN,UAAU,CAACI,MAAM,EAAEC,SAAS,CAAC;EACrD,IAAIC,eAAe,CAACC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAIC,GAAG,CAAC,CAAC;EAClD,MAAMC,SAAqB,GAAGH,eAAe,CAACI,GAAG,CAACX,UAAU,CAAC;EAE7D,MAAMY,WAAW,GAAG,IAAIC,KAAK,CAASN,eAAe,CAACC,MAAM,CAAC,CAACM,IAAI,CAAC,CAAC,CAAC;EACrE,KAAK,MAAM,CAACC,KAAK,EAAEC,KAAK,CAAC,IAAId,YAAY,CAACG,MAAM,CAAC,CAACY,OAAO,CAAC,CAAC,EAAE;IAC3D,MAAMC,KAAK,GAAGlB,UAAU,CAACe,KAAK,CAAC;IAC/B,IAAII,IAAI,GAAG,CAAC;IACZ,IAAIC,YAAY,GAAGC,QAAQ;IAC3B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGZ,SAAS,CAACF,MAAM,EAAEc,CAAC,EAAE,EAAE;MACzC,MAAMC,QAAQ,GAAGb,SAAS,CAACY,CAAC,CAAC;MAC7B,IAAIC,QAAQ,KAAKC,SAAS,EAAE;MAC5B,MAAMC,CAAC,GAAG1B,WAAW,CAACmB,KAAK,EAAEK,QAAQ,CAAC;MACtC,IAAIE,CAAC,GAAGL,YAAY,EAAE;QACpBA,YAAY,GAAGK,CAAC;QAChBN,IAAI,GAAGG,CAAC;MACV;IACF;IACAV,WAAW,CAACO,IAAI,CAAC,GAAG,CAACP,WAAW,CAACO,IAAI,CAAC,IAAI,CAAC,IAAIH,KAAK;EACtD;EAEA,MAAMU,MAAM,GAAG,IAAIjB,GAAG,CAAiB,CAAC;EACxC,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGf,eAAe,CAACC,MAAM,EAAEc,CAAC,EAAE,EAAE;IAC/C,MAAMK,cAAc,GAAGpB,eAAe,CAACe,CAAC,CAAC;IACzC,MAAMM,UAAU,GAAGhB,WAAW,CAACU,CAAC,CAAC,IAAI,CAAC;IACtC,IAAIK,cAAc,KAAKH,SAAS,IAAII,UAAU,GAAG,CAAC,EAAEF,MAAM,CAACG,GAAG,CAACF,cAAc,EAAEC,UAAU,CAAC;EAC5F;EACA,OAAOF,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,oBAAoBA,CAACzB,MAAgB,EAAE0B,OAAsB,EAAY;EACvF,OAAO5B,KAAK,CAACC,aAAa,CAACC,MAAM,CAAC,EAAE0B,OAAO,CAAC;AAC9C;;AAEA;AACA,OAAO,SAASC,sBAAsBA,CAAC3B,MAAgB,EAAU;EAC/D,MAAM,CAAC4B,GAAG,CAAC,GAAGH,oBAAoB,CAACzB,MAAM,EAAE;IAAE6B,OAAO,EAAE;EAAE,CAAC,CAAC;EAC1D,IAAID,GAAG,KAAKT,SAAS,EAAE,MAAM,IAAIW,KAAK,CAAC,mCAAmC,CAAC;EAC3E,OAAOrC,WAAW,CAACmC,GAAG,CAAC;AACzB","ignoreList":[]}
|
|
@@ -52,67 +52,67 @@ export const APP_COLOR_PRESETS = {
|
|
|
52
52
|
teal: {
|
|
53
53
|
name: 'teal',
|
|
54
54
|
hex: '#005c67',
|
|
55
|
-
variant: '
|
|
55
|
+
variant: 'vivid'
|
|
56
56
|
},
|
|
57
57
|
blue: {
|
|
58
58
|
name: 'blue',
|
|
59
59
|
hex: '#1d9bf0',
|
|
60
|
-
variant: '
|
|
60
|
+
variant: 'vivid'
|
|
61
61
|
},
|
|
62
62
|
green: {
|
|
63
63
|
name: 'green',
|
|
64
64
|
hex: '#10b981',
|
|
65
|
-
variant: '
|
|
65
|
+
variant: 'vivid'
|
|
66
66
|
},
|
|
67
67
|
amber: {
|
|
68
68
|
name: 'amber',
|
|
69
69
|
hex: '#f59e0b',
|
|
70
|
-
variant: '
|
|
70
|
+
variant: 'vivid'
|
|
71
71
|
},
|
|
72
72
|
yellow: {
|
|
73
73
|
name: 'yellow',
|
|
74
74
|
hex: '#ffc300',
|
|
75
|
-
variant: '
|
|
75
|
+
variant: 'vivid'
|
|
76
76
|
},
|
|
77
77
|
red: {
|
|
78
78
|
name: 'red',
|
|
79
79
|
hex: '#ef4444',
|
|
80
|
-
variant: '
|
|
80
|
+
variant: 'vivid'
|
|
81
81
|
},
|
|
82
82
|
purple: {
|
|
83
83
|
name: 'purple',
|
|
84
84
|
hex: '#8b5cf6',
|
|
85
|
-
variant: '
|
|
85
|
+
variant: 'vivid'
|
|
86
86
|
},
|
|
87
87
|
pink: {
|
|
88
88
|
name: 'pink',
|
|
89
89
|
hex: '#ec4899',
|
|
90
|
-
variant: '
|
|
90
|
+
variant: 'vivid'
|
|
91
91
|
},
|
|
92
92
|
sky: {
|
|
93
93
|
name: 'sky',
|
|
94
94
|
hex: '#0ea5e9',
|
|
95
|
-
variant: '
|
|
95
|
+
variant: 'vivid'
|
|
96
96
|
},
|
|
97
97
|
orange: {
|
|
98
98
|
name: 'orange',
|
|
99
99
|
hex: '#f97316',
|
|
100
|
-
variant: '
|
|
100
|
+
variant: 'vivid'
|
|
101
101
|
},
|
|
102
102
|
mint: {
|
|
103
103
|
name: 'mint',
|
|
104
104
|
hex: '#14b8a6',
|
|
105
|
-
variant: '
|
|
105
|
+
variant: 'vivid'
|
|
106
106
|
},
|
|
107
107
|
oxy: {
|
|
108
108
|
name: 'oxy',
|
|
109
109
|
hex: '#c46ede',
|
|
110
|
-
variant: '
|
|
110
|
+
variant: 'vivid'
|
|
111
111
|
},
|
|
112
112
|
faircoin: {
|
|
113
113
|
name: 'faircoin',
|
|
114
114
|
hex: '#9ffb50',
|
|
115
|
-
variant: '
|
|
115
|
+
variant: 'vivid'
|
|
116
116
|
}
|
|
117
117
|
};
|
|
118
118
|
//# sourceMappingURL=color-presets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["APP_COLOR_NAMES","PREMIUM_COLOR_NAMES","HEX_TO_APP_COLOR","hexToAppColorName","hex","toLowerCase","APP_COLOR_PRESETS","teal","name","variant","blue","green","amber","yellow","red","purple","pink","sky","orange","mint","oxy","faircoin"],"sourceRoot":"../../../src","sources":["theme/color-presets.ts"],"mappings":";;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["APP_COLOR_NAMES","PREMIUM_COLOR_NAMES","HEX_TO_APP_COLOR","hexToAppColorName","hex","toLowerCase","APP_COLOR_PRESETS","teal","name","variant","blue","green","amber","yellow","red","purple","pink","sky","orange","mint","oxy","faircoin"],"sourceRoot":"../../../src","sources":["theme/color-presets.ts"],"mappings":";;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAuBA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAO,MAAMA,eAAwC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC;;AAEzK;AACA,OAAO,MAAMC,mBAA4C,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC;AAE/E,OAAO,MAAMC,gBAA8C,GAAG;EAC5D,SAAS,EAAE,MAAM;EACjB,SAAS,EAAE,MAAM;EACjB,SAAS,EAAE,OAAO;EAClB,SAAS,EAAE,OAAO;EAClB,SAAS,EAAE,QAAQ;EACnB,SAAS,EAAE,KAAK;EAChB,SAAS,EAAE,QAAQ;EACnB,SAAS,EAAE,MAAM;EACjB,SAAS,EAAE,KAAK;EAChB,SAAS,EAAE,QAAQ;EACnB,SAAS,EAAE,MAAM;EACjB,SAAS,EAAE,KAAK;EAChB,SAAS,EAAE;AACb,CAAC;AAED,OAAO,SAASC,iBAAiBA,CAACC,GAAW,EAAgB;EAC3D,OAAOF,gBAAgB,CAACE,GAAG,CAACC,WAAW,CAAC,CAAC,CAAC,IAAI,MAAM;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,iBAAuD,GAAG;EACrEC,IAAI,EAAE;IAAEC,IAAI,EAAE,MAAM;IAAEJ,GAAG,EAAE,SAAS;IAAEK,OAAO,EAAE;EAAQ,CAAC;EACxDC,IAAI,EAAE;IAAEF,IAAI,EAAE,MAAM;IAAEJ,GAAG,EAAE,SAAS;IAAEK,OAAO,EAAE;EAAQ,CAAC;EACxDE,KAAK,EAAE;IAAEH,IAAI,EAAE,OAAO;IAAEJ,GAAG,EAAE,SAAS;IAAEK,OAAO,EAAE;EAAQ,CAAC;EAC1DG,KAAK,EAAE;IAAEJ,IAAI,EAAE,OAAO;IAAEJ,GAAG,EAAE,SAAS;IAAEK,OAAO,EAAE;EAAQ,CAAC;EAC1DI,MAAM,EAAE;IAAEL,IAAI,EAAE,QAAQ;IAAEJ,GAAG,EAAE,SAAS;IAAEK,OAAO,EAAE;EAAQ,CAAC;EAC5DK,GAAG,EAAE;IAAEN,IAAI,EAAE,KAAK;IAAEJ,GAAG,EAAE,SAAS;IAAEK,OAAO,EAAE;EAAQ,CAAC;EACtDM,MAAM,EAAE;IAAEP,IAAI,EAAE,QAAQ;IAAEJ,GAAG,EAAE,SAAS;IAAEK,OAAO,EAAE;EAAQ,CAAC;EAC5DO,IAAI,EAAE;IAAER,IAAI,EAAE,MAAM;IAAEJ,GAAG,EAAE,SAAS;IAAEK,OAAO,EAAE;EAAQ,CAAC;EACxDQ,GAAG,EAAE;IAAET,IAAI,EAAE,KAAK;IAAEJ,GAAG,EAAE,SAAS;IAAEK,OAAO,EAAE;EAAQ,CAAC;EACtDS,MAAM,EAAE;IAAEV,IAAI,EAAE,QAAQ;IAAEJ,GAAG,EAAE,SAAS;IAAEK,OAAO,EAAE;EAAQ,CAAC;EAC5DU,IAAI,EAAE;IAAEX,IAAI,EAAE,MAAM;IAAEJ,GAAG,EAAE,SAAS;IAAEK,OAAO,EAAE;EAAQ,CAAC;EACxDW,GAAG,EAAE;IAAEZ,IAAI,EAAE,KAAK;IAAEJ,GAAG,EAAE,SAAS;IAAEK,OAAO,EAAE;EAAQ,CAAC;EACtDY,QAAQ,EAAE;IAAEb,IAAI,EAAE,UAAU;IAAEJ,GAAG,EAAE,SAAS;IAAEK,OAAO,EAAE;EAAQ;AACjE,CAAC","ignoreList":[]}
|
|
@@ -77,8 +77,11 @@ export function roleColorsToPresetTokens(r) {
|
|
|
77
77
|
export function buildSeedScopeVars(options) {
|
|
78
78
|
const roles = generateRoleColors({
|
|
79
79
|
seed: options.seed,
|
|
80
|
+
variant: options.variant ?? 'vivid',
|
|
80
81
|
isDark: options.mode === 'dark',
|
|
81
|
-
contrastLevel: options.contrastLevel ?? 0
|
|
82
|
+
contrastLevel: options.contrastLevel ?? 0,
|
|
83
|
+
secondarySeed: options.secondarySeed,
|
|
84
|
+
tertiarySeed: options.tertiarySeed
|
|
82
85
|
});
|
|
83
86
|
const tokens = roleColorsToPresetTokens(roles);
|
|
84
87
|
const vars = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["generateRoleColors","CANONICAL_TOKENS","roleColorsToPresetTokens","r","background","onBackground","surfaceContainerLow","onSurface","surfaceContainer","primary","onPrimary","secondary","onSecondary","tertiary","onTertiary","surfaceContainerHigh","onSurfaceVariant","secondaryContainer","onSecondaryContainer","error","outlineVariant","surfaceContainerLowest","primaryContainer","tertiaryContainer","buildSeedScopeVars","options","roles","seed","isDark","mode","contrastLevel","tokens","vars","token","value","undefined"],"sourceRoot":"../../../../src","sources":["theme/color-scope/seed-scope.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAA6C,0BAAiB;AACzF,SAASC,gBAAgB,QAAQ,sBAAmB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,wBAAwBA,CAACC,CAAa,EAA0B;EAC9E,OAAO;IACL;IACA,cAAc,EAAEA,CAAC,CAACC,UAAU;IAC5B,cAAc,EAAED,CAAC,CAACE,YAAY;IAC9B,WAAW,EAAEF,CAAC,CAACG,mBAAmB;IAClC,sBAAsB,EAAEH,CAAC,CAACI,SAAS;IACnC,WAAW,EAAEJ,CAAC,CAACK,gBAAgB;IAC/B,sBAAsB,EAAEL,CAAC,CAACI,SAAS;IACnC,WAAW,EAAEJ,CAAC,CAACM,OAAO;IACtB,sBAAsB,EAAEN,CAAC,CAACO,SAAS;IACnC,aAAa,EAAEP,CAAC,CAACQ,SAAS;IAC1B,wBAAwB,EAAER,CAAC,CAACS,WAAW;IACvC,YAAY,EAAET,CAAC,CAACU,QAAQ;IACxB,uBAAuB,EAAEV,CAAC,CAACW,UAAU;IACrC,SAAS,EAAEX,CAAC,CAACY,oBAAoB;IACjC,oBAAoB,EAAEZ,CAAC,CAACa,gBAAgB;IACxC,UAAU,EAAEb,CAAC,CAACc,kBAAkB;IAChC,qBAAqB,EAAEd,CAAC,CAACe,oBAAoB;IAC7C,eAAe,EAAEf,CAAC,CAACgB,KAAK;IACxB,UAAU,EAAEhB,CAAC,CAACiB,cAAc;IAC5B,SAAS,EAAEjB,CAAC,CAACiB,cAAc;IAC3B,QAAQ,EAAEjB,CAAC,CAACM,OAAO;IACnB,WAAW,EAAEN,CAAC,CAACG,mBAAmB;IAElC;IACA,QAAQ,EAAEH,CAAC,CAACkB,sBAAsB;IAClC,mBAAmB,EAAElB,CAAC,CAACI,SAAS;IAChC,WAAW,EAAEJ,CAAC,CAACM,OAAO;IACtB,WAAW,EAAEN,CAAC,CAACQ,SAAS;IACxB,WAAW,EAAER,CAAC,CAACU,QAAQ;IACvB,WAAW,EAAEV,CAAC,CAACmB,gBAAgB;IAC/B,WAAW,EAAEnB,CAAC,CAACoB,iBAAiB;IAChC,gBAAgB,EAAEpB,CAAC,CAACC,UAAU;IAC9B,sBAAsB,EAAED,CAAC,CAACI,SAAS;IACnC,mBAAmB,EAAEJ,CAAC,CAACM,OAAO;IAC9B,8BAA8B,EAAEN,CAAC,CAACO,SAAS;IAC3C,kBAAkB,EAAEP,CAAC,CAACc,kBAAkB;IACxC,6BAA6B,EAAEd,CAAC,CAACe,oBAAoB;IACrD,kBAAkB,EAAEf,CAAC,CAACiB,cAAc;IACpC,gBAAgB,EAAEjB,CAAC,CAACM;EACtB,CAAC;AACH;;AAEA;;
|
|
1
|
+
{"version":3,"names":["generateRoleColors","CANONICAL_TOKENS","roleColorsToPresetTokens","r","background","onBackground","surfaceContainerLow","onSurface","surfaceContainer","primary","onPrimary","secondary","onSecondary","tertiary","onTertiary","surfaceContainerHigh","onSurfaceVariant","secondaryContainer","onSecondaryContainer","error","outlineVariant","surfaceContainerLowest","primaryContainer","tertiaryContainer","buildSeedScopeVars","options","roles","seed","variant","isDark","mode","contrastLevel","secondarySeed","tertiarySeed","tokens","vars","token","value","undefined"],"sourceRoot":"../../../../src","sources":["theme/color-scope/seed-scope.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,8 +23,8 @@ const getNativeWindVars = lazyRequire('nativewind');
|
|
|
23
23
|
* inherited custom properties like `--color-primary: var(--primary)` compute at
|
|
24
24
|
* the document root and would otherwise keep pointing at the app-wide preset.
|
|
25
25
|
*/
|
|
26
|
-
export function buildScopeVars(colorPreset, mode) {
|
|
27
|
-
const tokens = getResolvedTokens(colorPreset, mode);
|
|
26
|
+
export function buildScopeVars(colorPreset, mode, accents) {
|
|
27
|
+
const tokens = getResolvedTokens(colorPreset, mode, accents);
|
|
28
28
|
const vars = {
|
|
29
29
|
...tokens
|
|
30
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","CANONICAL_TOKENS","getResolvedTokens","lazyRequire","getNativeWindVars","buildScopeVars","colorPreset","mode","tokens","vars","token","value","undefined","getVariableContextProvider","OS","module","VariableContextProvider","buildNativePresetStyle"],"sourceRoot":"../../../../src","sources":["theme/color-scope/style-builder.ts"],"mappings":";;AACA,SAASA,QAAQ,QAAwC,cAAc;AAEvE,SAASC,gBAAgB,EAAEC,iBAAiB,QAAQ,sBAAmB;
|
|
1
|
+
{"version":3,"names":["Platform","CANONICAL_TOKENS","getResolvedTokens","lazyRequire","getNativeWindVars","buildScopeVars","colorPreset","mode","accents","tokens","vars","token","value","undefined","getVariableContextProvider","OS","module","VariableContextProvider","buildNativePresetStyle"],"sourceRoot":"../../../../src","sources":["theme/color-scope/style-builder.ts"],"mappings":";;AACA,SAASA,QAAQ,QAAwC,cAAc;AAEvE,SAASC,gBAAgB,EAAEC,iBAAiB,QAAQ,sBAAmB;AAGvE,SAASC,WAAW,QAAQ,6BAA0B;;AAEtD;AACA;AACA;AACA;AACA;AACA;;AAWA,MAAMC,iBAAiB,GAAGD,WAAW,CAAuB,YAAY,CAAC;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,cAAcA,CAC5BC,WAAyB,EACzBC,IAAsB,EACtBC,OAAyB,EACD;EACxB,MAAMC,MAAM,GAAGP,iBAAiB,CAACI,WAAW,EAAEC,IAAI,EAAEC,OAAO,CAAC;EAC5D,MAAME,IAA4B,GAAG;IAAE,GAAGD;EAAO,CAAC;EAElD,KAAK,MAAME,KAAK,IAAIV,gBAAgB,EAAE;IACpC,MAAMW,KAAK,GAAGH,MAAM,CAAC,KAAKE,KAAK,EAAE,CAAC;IAClC,IAAIC,KAAK,KAAKC,SAAS,EAAE;MACvBH,IAAI,CAAC,WAAWC,KAAK,EAAE,CAAC,GAAGC,KAAK;IAClC;EACF;EAEA,OAAOF,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,0BAA0BA,CAAA,EAA4C;EACpF,IAAId,QAAQ,CAACe,EAAE,KAAK,KAAK,EAAE,OAAO,IAAI;EACtC,MAAMC,MAAM,GAAGZ,iBAAiB,CAAC,CAAC;EAClC,IAAI,CAACY,MAAM,IAAI,OAAOA,MAAM,CAACC,uBAAuB,KAAK,UAAU,EAAE,OAAO,IAAI;EAChF,OAAOD,MAAM,CAACC,uBAAuB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CACpCZ,WAAyB,EACzBC,IAAsB,EACA;EACtB,IAAIP,QAAQ,CAACe,EAAE,KAAK,KAAK,EAAE,OAAOF,SAAS;EAC3C,MAAMG,MAAM,GAAGZ,iBAAiB,CAAC,CAAC;EAClC,IAAI,CAACY,MAAM,IAAI,OAAOA,MAAM,CAACN,IAAI,KAAK,UAAU,EAAE,OAAOG,SAAS;EAClE,OAAOG,MAAM,CAACN,IAAI,CAACL,cAAc,CAACC,WAAW,EAAEC,IAAI,CAAC,CAAC;AACvD","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BloomThemeProvider","BloomColorScope","useColorScopeStyle","BloomSeedScope","buildSeedScopeVars","roleColorsToPresetTokens","generateRoleColors","seedHexFromImagePixels","seedsFromImagePixels","quantizeImage","argbFromHex","hexFromArgb","argbFromRgb","redFromArgb","greenFromArgb","blueFromArgb","buildTheme","STATUS_COLORS","buildThemeFromSeed","buildColorsFromSeed","THEME_GRADIENTS","useTheme","useThemeColor","useBloomTheme","useNavigationTheme","APP_COLOR_NAMES","PREMIUM_COLOR_NAMES","APP_COLOR_PRESETS","HEX_TO_APP_COLOR","hexToAppColorName","parseRgb","withAlpha","getPresetVars","applyPresetVarsToDocument","applyDarkClass","setColorSchemeSafe","initCssInteropDarkMode","webLocalStorage"],"sourceRoot":"../../../src","sources":["theme/index.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,yBAAsB;AAKzD,SAASC,eAAe,EAAEC,kBAAkB,QAAQ,eAAe;AAEnE,SAASC,cAAc,QAAQ,cAAc;AAE7C,SAASC,kBAAkB,EAAEC,wBAAwB,QAAQ,6BAA0B;AAEvF;AACA;AACA;AACA,SACEC,kBAAkB,EAClBC,sBAAsB,EACtBC,oBAAoB,EACpBC,aAAa,EACbC,WAAW,EACXC,WAAW,EACXC,WAAW,EACXC,WAAW,EACXC,aAAa,EACbC,YAAY,QACP,yBAAgB;AAEvB,SAASC,UAAU,EAAEC,aAAa,QAAQ,kBAAe;AACzD,SAASC,kBAAkB,EAAEC,mBAAmB,QAAQ,4BAAyB;
|
|
1
|
+
{"version":3,"names":["BloomThemeProvider","BloomColorScope","useColorScopeStyle","BloomSeedScope","buildSeedScopeVars","roleColorsToPresetTokens","generateRoleColors","seedHexFromImagePixels","seedsFromImagePixels","quantizeImage","argbFromHex","hexFromArgb","argbFromRgb","redFromArgb","greenFromArgb","blueFromArgb","buildTheme","STATUS_COLORS","buildThemeFromSeed","buildColorsFromSeed","THEME_GRADIENTS","useTheme","useThemeColor","useBloomTheme","useNavigationTheme","APP_COLOR_NAMES","PREMIUM_COLOR_NAMES","APP_COLOR_PRESETS","HEX_TO_APP_COLOR","hexToAppColorName","parseRgb","withAlpha","getPresetVars","applyPresetVarsToDocument","applyDarkClass","setColorSchemeSafe","initCssInteropDarkMode","webLocalStorage"],"sourceRoot":"../../../src","sources":["theme/index.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,yBAAsB;AAKzD,SAASC,eAAe,EAAEC,kBAAkB,QAAQ,eAAe;AAEnE,SAASC,cAAc,QAAQ,cAAc;AAE7C,SAASC,kBAAkB,EAAEC,wBAAwB,QAAQ,6BAA0B;AAEvF;AACA;AACA;AACA,SACEC,kBAAkB,EAClBC,sBAAsB,EACtBC,oBAAoB,EACpBC,aAAa,EACbC,WAAW,EACXC,WAAW,EACXC,WAAW,EACXC,WAAW,EACXC,aAAa,EACbC,YAAY,QACP,yBAAgB;AAEvB,SAASC,UAAU,EAAEC,aAAa,QAAQ,kBAAe;AACzD,SAASC,kBAAkB,EAAEC,mBAAmB,QAAQ,4BAAyB;AAEjF,SAASC,eAAe,QAAQ,gBAAa;AAC7C,SAASC,QAAQ,EAAEC,aAAa,EAAEC,aAAa,QAAQ,gBAAa;AACpE,SAASC,kBAAkB,QAAQ,2BAAwB;AAI3D,SACEC,eAAe,EACfC,mBAAmB,EACnBC,iBAAiB,EACjBC,gBAAgB,EAChBC,iBAAiB,QACZ,oBAAiB;AACxB,SAASC,QAAQ,EAAEC,SAAS,QAAQ,kBAAe;AAEnD,SAASC,aAAa,EAAEC,yBAAyB,QAAQ,kBAAe;AAExE,SAASC,cAAc,QAAQ,uBAAoB;AACnD,SAASC,kBAAkB,QAAQ,4BAAyB;AAC5D,SAASC,sBAAsB,QAAQ,uBAAoB;AAE3D,SAASC,eAAe,QAAQ,kBAAe","ignoreList":[]}
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
* The signature is intentionally identical to those variants so the import site in
|
|
31
31
|
* `BloomThemeProvider` is platform-agnostic.
|
|
32
32
|
*/
|
|
33
|
-
export function applyNativeRootVars(_colorPreset, _mode) {
|
|
33
|
+
export function applyNativeRootVars(_colorPreset, _mode, _accents) {
|
|
34
34
|
// Intentionally empty — the native variant (`native-root-vars.native.ts`) does
|
|
35
35
|
// the real work; this neutral default and the web fork are inert.
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["applyNativeRootVars","_colorPreset","_mode"],"sourceRoot":"../../../src","sources":["theme/native-root-vars.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["applyNativeRootVars","_colorPreset","_mode","_accents"],"sourceRoot":"../../../src","sources":["theme/native-root-vars.ts"],"mappings":";;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,mBAAmBA,CACjCC,YAA0B,EAC1BC,KAAuB,EACvBC,QAA0B,EACpB;EACN;EACA;AAAA","ignoreList":[]}
|
|
@@ -121,9 +121,9 @@ import { getResolvedTokens } from "./token-registry.js";
|
|
|
121
121
|
* Defensive guard: if a host ships a react-native-css build that doesn't expose
|
|
122
122
|
* `rootVariables` as a callable (it always does on @3), we bail rather than throw.
|
|
123
123
|
*/
|
|
124
|
-
export function applyNativeRootVars(colorPreset, mode) {
|
|
124
|
+
export function applyNativeRootVars(colorPreset, mode, accents) {
|
|
125
125
|
if (typeof rootVariables !== 'function') return;
|
|
126
|
-
const vars = getResolvedTokens(colorPreset, mode);
|
|
126
|
+
const vars = getResolvedTokens(colorPreset, mode, accents);
|
|
127
127
|
for (const [key, value] of Object.entries(vars)) {
|
|
128
128
|
// The family is keyed by the bare name; `getResolvedTokens` keys include `--`.
|
|
129
129
|
const name = key.startsWith('--') ? key.slice(2) : key;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["rootVariables","getResolvedTokens","applyNativeRootVars","colorPreset","mode","vars","key","value","Object","entries","name","startsWith","slice","set"],"sourceRoot":"../../../src","sources":["theme/native-root-vars.native.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,aAAa,QAAQ,kCAAkC;
|
|
1
|
+
{"version":3,"names":["rootVariables","getResolvedTokens","applyNativeRootVars","colorPreset","mode","accents","vars","key","value","Object","entries","name","startsWith","slice","set"],"sourceRoot":"../../../src","sources":["theme/native-root-vars.native.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,aAAa,QAAQ,kCAAkC;AAIhE,SAASC,iBAAiB,QAAQ,qBAAkB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CACjCC,WAAyB,EACzBC,IAAsB,EACtBC,OAAyB,EACnB;EACN,IAAI,OAAOL,aAAa,KAAK,UAAU,EAAE;EAEzC,MAAMM,IAAI,GAAGL,iBAAiB,CAACE,WAAW,EAAEC,IAAI,EAAEC,OAAO,CAAC;EAC1D,KAAK,MAAM,CAACE,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACJ,IAAI,CAAC,EAAE;IAC/C;IACA,MAAMK,IAAI,GAAGJ,GAAG,CAACK,UAAU,CAAC,IAAI,CAAC,GAAGL,GAAG,CAACM,KAAK,CAAC,CAAC,CAAC,GAAGN,GAAG;IACtDP,aAAa,CAACW,IAAI,CAAC,CAACG,GAAG,CAAC,CAAC,CAACN,KAAK,CAAC,CAAC,CAAC;EACpC;AACF","ignoreList":[]}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* The signature is intentionally identical to the plain variant so the import
|
|
18
18
|
* site in `BloomThemeProvider` is platform-agnostic.
|
|
19
19
|
*/
|
|
20
|
-
export function applyNativeRootVars(_colorPreset, _mode) {
|
|
20
|
+
export function applyNativeRootVars(_colorPreset, _mode, _accents) {
|
|
21
21
|
// Intentionally empty — web applies preset vars to `document.documentElement`.
|
|
22
22
|
}
|
|
23
23
|
//# sourceMappingURL=native-root-vars.web.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["applyNativeRootVars","_colorPreset","_mode"],"sourceRoot":"../../../src","sources":["theme/native-root-vars.web.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["applyNativeRootVars","_colorPreset","_mode","_accents"],"sourceRoot":"../../../src","sources":["theme/native-root-vars.web.ts"],"mappings":";;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,mBAAmBA,CACjCC,YAA0B,EAC1BC,KAAuB,EACvBC,QAA0B,EACpB;EACN;AAAA","ignoreList":[]}
|
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
import { APP_COLOR_PRESETS } from "./color-presets.js";
|
|
4
4
|
import { generateRoleColors } from "./color-engine/index.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Optional explicit accent-colour overrides (`#rrggbb`) that PIN the secondary
|
|
8
|
+
* and/or tertiary palette app-wide, regardless of the active preset's own seed.
|
|
9
|
+
* Threaded from `BloomThemeProvider`'s `secondaryColor` / `tertiaryColor` props
|
|
10
|
+
* down through the whole token pipeline. When both are omitted, the preset's own
|
|
11
|
+
* (usually derived) accents are used — output is unchanged.
|
|
12
|
+
*/
|
|
13
|
+
|
|
5
14
|
// Circular at the module graph level (`token-registry` imports `getPresetVars`
|
|
6
15
|
// from here), but safe: `getResolvedTokens` is only referenced inside the
|
|
7
16
|
// `applyPresetVarsToDocument` function body — i.e. at call time, after both
|
|
@@ -25,12 +34,18 @@ import { getResolvedTokens } from "./token-registry.js";
|
|
|
25
34
|
* This is the single source of truth for extended theming vars — consumer apps
|
|
26
35
|
* must not redefine these per-app.
|
|
27
36
|
*/
|
|
28
|
-
export function getPresetVars(colorName, mode) {
|
|
37
|
+
export function getPresetVars(colorName, mode, accents) {
|
|
29
38
|
const preset = APP_COLOR_PRESETS[colorName];
|
|
30
39
|
const r = generateRoleColors({
|
|
31
40
|
seed: preset.hex,
|
|
32
41
|
variant: preset.variant,
|
|
33
|
-
isDark: mode === 'dark'
|
|
42
|
+
isDark: mode === 'dark',
|
|
43
|
+
// Pinned accents: an explicit app-wide override (from the provider) wins,
|
|
44
|
+
// else the preset's own declared accent, else undefined → derived rotation.
|
|
45
|
+
// The built-in presets declare none, so with no override their generated
|
|
46
|
+
// tokens stay byte-identical.
|
|
47
|
+
secondarySeed: accents?.secondaryHex ?? preset.secondaryHex,
|
|
48
|
+
tertiarySeed: accents?.tertiaryHex ?? preset.tertiaryHex
|
|
34
49
|
});
|
|
35
50
|
return {
|
|
36
51
|
// --- base shadcn palette ---
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["APP_COLOR_PRESETS","generateRoleColors","getResolvedTokens","getPresetVars","colorName","mode","preset","r","seed","hex","variant","isDark","background","onBackground","surfaceContainerLow","onSurface","surfaceContainer","primary","onPrimary","secondary","onSecondary","tertiary","onTertiary","surfaceContainerHigh","onSurfaceVariant","secondaryContainer","onSecondaryContainer","error","outlineVariant","surfaceContainerLowest","primaryContainer","tertiaryContainer","applyPresetVarsToDocument","document","vars","root","documentElement","style","key","value","Object","entries","setProperty"],"sourceRoot":"../../../src","sources":["theme/preset-vars.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAA8C,oBAAiB;AACzF,SAASC,kBAAkB,QAAyB,yBAAgB;
|
|
1
|
+
{"version":3,"names":["APP_COLOR_PRESETS","generateRoleColors","getResolvedTokens","getPresetVars","colorName","mode","accents","preset","r","seed","hex","variant","isDark","secondarySeed","secondaryHex","tertiarySeed","tertiaryHex","background","onBackground","surfaceContainerLow","onSurface","surfaceContainer","primary","onPrimary","secondary","onSecondary","tertiary","onTertiary","surfaceContainerHigh","onSurfaceVariant","secondaryContainer","onSecondaryContainer","error","outlineVariant","surfaceContainerLowest","primaryContainer","tertiaryContainer","applyPresetVarsToDocument","document","vars","root","documentElement","style","key","value","Object","entries","setProperty"],"sourceRoot":"../../../src","sources":["theme/preset-vars.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAA8C,oBAAiB;AACzF,SAASC,kBAAkB,QAAyB,yBAAgB;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA,SAASC,iBAAiB,QAAQ,qBAAkB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAC3BC,SAAuB,EACvBC,IAAsB,EACtBC,OAAyB,EACX;EACd,MAAMC,MAAM,GAAGP,iBAAiB,CAACI,SAAS,CAAC;EAC3C,MAAMI,CAAa,GAAGP,kBAAkB,CAAC;IACvCQ,IAAI,EAAEF,MAAM,CAACG,GAAG;IAChBC,OAAO,EAAEJ,MAAM,CAACI,OAAO;IACvBC,MAAM,EAAEP,IAAI,KAAK,MAAM;IACvB;IACA;IACA;IACA;IACAQ,aAAa,EAAEP,OAAO,EAAEQ,YAAY,IAAIP,MAAM,CAACO,YAAY;IAC3DC,YAAY,EAAET,OAAO,EAAEU,WAAW,IAAIT,MAAM,CAACS;EAC/C,CAAC,CAAC;EAEF,OAAO;IACL;IACA,cAAc,EAAER,CAAC,CAACS,UAAU;IAC5B,cAAc,EAAET,CAAC,CAACU,YAAY;IAC9B,WAAW,EAAEV,CAAC,CAACW,mBAAmB;IAClC,sBAAsB,EAAEX,CAAC,CAACY,SAAS;IACnC,WAAW,EAAEZ,CAAC,CAACa,gBAAgB;IAC/B,sBAAsB,EAAEb,CAAC,CAACY,SAAS;IACnC,WAAW,EAAEZ,CAAC,CAACc,OAAO;IACtB,sBAAsB,EAAEd,CAAC,CAACe,SAAS;IACnC;IACA;IACA,aAAa,EAAEf,CAAC,CAACgB,SAAS;IAC1B,wBAAwB,EAAEhB,CAAC,CAACiB,WAAW;IACvC;IACA;IACA,YAAY,EAAEjB,CAAC,CAACkB,QAAQ;IACxB,uBAAuB,EAAElB,CAAC,CAACmB,UAAU;IACrC,SAAS,EAAEnB,CAAC,CAACoB,oBAAoB;IACjC,oBAAoB,EAAEpB,CAAC,CAACqB,gBAAgB;IACxC,UAAU,EAAErB,CAAC,CAACsB,kBAAkB;IAChC,qBAAqB,EAAEtB,CAAC,CAACuB,oBAAoB;IAC7C,eAAe,EAAEvB,CAAC,CAACwB,KAAK;IACxB,UAAU,EAAExB,CAAC,CAACyB,cAAc;IAC5B,SAAS,EAAEzB,CAAC,CAACyB,cAAc;IAC3B,QAAQ,EAAEzB,CAAC,CAACc,OAAO;IACnB,WAAW,EAAEd,CAAC,CAACW,mBAAmB;IAElC;IACA;IACA;IACA,QAAQ,EAAEX,CAAC,CAAC0B,sBAAsB;IAClC,mBAAmB,EAAE1B,CAAC,CAACY,SAAS;IAChC;IACA,WAAW,EAAEZ,CAAC,CAACc,OAAO;IACtB,WAAW,EAAEd,CAAC,CAACgB,SAAS;IACxB,WAAW,EAAEhB,CAAC,CAACkB,QAAQ;IACvB,WAAW,EAAElB,CAAC,CAAC2B,gBAAgB;IAC/B,WAAW,EAAE3B,CAAC,CAAC4B,iBAAiB;IAChC,gBAAgB,EAAE5B,CAAC,CAACS,UAAU;IAC9B,sBAAsB,EAAET,CAAC,CAACY,SAAS;IACnC,mBAAmB,EAAEZ,CAAC,CAACc,OAAO;IAC9B,8BAA8B,EAAEd,CAAC,CAACe,SAAS;IAC3C,kBAAkB,EAAEf,CAAC,CAACsB,kBAAkB;IACxC,6BAA6B,EAAEtB,CAAC,CAACuB,oBAAoB;IACrD,kBAAkB,EAAEvB,CAAC,CAACyB,cAAc;IACpC,gBAAgB,EAAEzB,CAAC,CAACc;EACtB,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASe,yBAAyBA,CACvCjC,SAAuB,EACvBC,IAAsB,EAChB;EACN;EACA;EACA;EACA;EACA,IAAI,OAAOiC,QAAQ,KAAK,WAAW,EAAE;EAErC,MAAMC,IAAI,GAAGrC,iBAAiB,CAACE,SAAS,EAAEC,IAAI,CAAC;EAC/C,MAAMmC,IAAI,GAAGF,QAAQ,CAACG,eAAe,CAACC,KAAK;EAC3C,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACP,IAAI,CAAC,EAAE;IAC/CC,IAAI,CAACO,WAAW,CAACJ,GAAG,EAAEC,KAAK,CAAC;EAC9B;AACF","ignoreList":[]}
|
|
@@ -101,8 +101,8 @@ export function hslToSrgb(triple) {
|
|
|
101
101
|
* (`__fixtures__/golden-resolved-tokens.json`), guaranteeing the visible palette
|
|
102
102
|
* matches the previous resolved-color pipeline byte-for-byte.
|
|
103
103
|
*/
|
|
104
|
-
export function getResolvedTokens(preset, mode) {
|
|
105
|
-
const raw = getPresetVars(preset, mode);
|
|
104
|
+
export function getResolvedTokens(preset, mode, accents) {
|
|
105
|
+
const raw = getPresetVars(preset, mode, accents);
|
|
106
106
|
const resolved = {};
|
|
107
107
|
for (const [key, value] of Object.entries(raw)) {
|
|
108
108
|
resolved[key] = RAW_HSL_TRIPLE.test(value) ? hslToSrgb(value) : value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["APP_COLOR_NAMES","getPresetVars","CANONICAL_TOKENS","RAW_HSL_TRIPLE","hslToSrgb","triple","colorPart","alphaPart","split","map","part","trim","channels","filter","Boolean","hue","parseFloat","replace","sat","light","h","Number","isFinite","s","l","chroma","Math","abs","huePrime","second","r","g","b","match","red","round","green","blue","undefined","alpha","endsWith","safeAlpha","getResolvedTokens","preset","mode","raw","resolved","key","value","Object","entries","test"],"sourceRoot":"../../../src","sources":["theme/token-registry.ts"],"mappings":";;AAAA,SAASA,eAAe,QAA2B,oBAAiB;AACpE,SAASC,aAAa,
|
|
1
|
+
{"version":3,"names":["APP_COLOR_NAMES","getPresetVars","CANONICAL_TOKENS","RAW_HSL_TRIPLE","hslToSrgb","triple","colorPart","alphaPart","split","map","part","trim","channels","filter","Boolean","hue","parseFloat","replace","sat","light","h","Number","isFinite","s","l","chroma","Math","abs","huePrime","second","r","g","b","match","red","round","green","blue","undefined","alpha","endsWith","safeAlpha","getResolvedTokens","preset","mode","accents","raw","resolved","key","value","Object","entries","test"],"sourceRoot":"../../../src","sources":["theme/token-registry.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -82,7 +82,21 @@ export interface BloomThemeProviderProps {
|
|
|
82
82
|
* vars to `document.documentElement` instead of using a wrapper).
|
|
83
83
|
*/
|
|
84
84
|
nativeWrapperStyle?: StyleProp<ViewStyle>;
|
|
85
|
+
/**
|
|
86
|
+
* Optional app-wide secondary-accent colour, `#rrggbb`. When set, the whole
|
|
87
|
+
* theme's secondary family (`--secondary`, `bg-secondary`, `colors.secondary`,
|
|
88
|
+
* plus the container / on-colour roles) is PINNED to this brand colour instead
|
|
89
|
+
* of the derived hue-rotation of the active preset's seed — for a brand with a
|
|
90
|
+
* distinct accent (e.g. blue primary + yellow secondary). M3 role tones still
|
|
91
|
+
* apply. Omit to keep the preset's derived accent.
|
|
92
|
+
*/
|
|
93
|
+
secondaryColor?: string;
|
|
94
|
+
/**
|
|
95
|
+
* Optional app-wide tertiary-accent colour, `#rrggbb`. Same semantics as
|
|
96
|
+
* {@link BloomThemeProviderProps.secondaryColor} for the tertiary family.
|
|
97
|
+
*/
|
|
98
|
+
tertiaryColor?: string;
|
|
85
99
|
children: React.ReactNode;
|
|
86
100
|
}
|
|
87
|
-
export declare function BloomThemeProvider({ mode: controlledMode, colorPreset: controlledPreset, defaultMode, defaultColorPreset, onModeChange, onColorPresetChange, persistKey, storage, awaitHydration, onHydrating, fonts, onFontsLoading, nativeWrapperStyle, children, }: BloomThemeProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
101
|
+
export declare function BloomThemeProvider({ mode: controlledMode, colorPreset: controlledPreset, defaultMode, defaultColorPreset, onModeChange, onColorPresetChange, persistKey, storage, awaitHydration, onHydrating, fonts, onFontsLoading, nativeWrapperStyle, secondaryColor, tertiaryColor, children, }: BloomThemeProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
88
102
|
//# sourceMappingURL=BloomThemeProvider.d.ts.map
|