@oxyhq/bloom 0.36.0 → 0.37.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/build-theme.js +31 -43
- package/lib/commonjs/theme/build-theme.js.map +1 -1
- package/lib/commonjs/theme/color-engine/cam16.js +161 -0
- package/lib/commonjs/theme/color-engine/cam16.js.map +1 -0
- package/lib/commonjs/theme/color-engine/color-role.js +183 -0
- package/lib/commonjs/theme/color-engine/color-role.js.map +1 -0
- package/lib/commonjs/theme/color-engine/color-roles.js +416 -0
- package/lib/commonjs/theme/color-engine/color-roles.js.map +1 -0
- package/lib/commonjs/theme/color-engine/color-utils.js +157 -0
- package/lib/commonjs/theme/color-engine/color-utils.js.map +1 -0
- package/lib/commonjs/theme/color-engine/contrast-curve.js +32 -0
- package/lib/commonjs/theme/color-engine/contrast-curve.js.map +1 -0
- package/lib/commonjs/theme/color-engine/contrast.js +70 -0
- package/lib/commonjs/theme/color-engine/contrast.js.map +1 -0
- package/lib/commonjs/theme/color-engine/dislike-analyzer.js +26 -0
- package/lib/commonjs/theme/color-engine/dislike-analyzer.js.map +1 -0
- package/lib/commonjs/theme/color-engine/dynamic-scheme.js +70 -0
- package/lib/commonjs/theme/color-engine/dynamic-scheme.js.map +1 -0
- package/lib/commonjs/theme/color-engine/hct-solver.js +236 -0
- package/lib/commonjs/theme/color-engine/hct-solver.js.map +1 -0
- package/lib/commonjs/theme/color-engine/hct.js +67 -0
- package/lib/commonjs/theme/color-engine/hct.js.map +1 -0
- package/lib/commonjs/theme/color-engine/index.js +173 -0
- package/lib/commonjs/theme/color-engine/index.js.map +1 -0
- package/lib/commonjs/theme/color-engine/lab-point-provider.js +32 -0
- package/lib/commonjs/theme/color-engine/lab-point-provider.js.map +1 -0
- package/lib/commonjs/theme/color-engine/math-utils.js +77 -0
- package/lib/commonjs/theme/color-engine/math-utils.js.map +1 -0
- package/lib/commonjs/theme/color-engine/quantizer-map.js +24 -0
- package/lib/commonjs/theme/color-engine/quantizer-map.js.map +1 -0
- package/lib/commonjs/theme/color-engine/quantizer-wu.js +266 -0
- package/lib/commonjs/theme/color-engine/quantizer-wu.js.map +1 -0
- package/lib/commonjs/theme/color-engine/scheme-variants.js +102 -0
- package/lib/commonjs/theme/color-engine/scheme-variants.js.map +1 -0
- package/lib/commonjs/theme/color-engine/score.js +80 -0
- package/lib/commonjs/theme/color-engine/score.js.map +1 -0
- package/lib/commonjs/theme/color-engine/seed-from-image.js +73 -0
- package/lib/commonjs/theme/color-engine/seed-from-image.js.map +1 -0
- package/lib/commonjs/theme/color-engine/tonal-palette.js +95 -0
- package/lib/commonjs/theme/color-engine/tonal-palette.js.map +1 -0
- package/lib/commonjs/theme/color-engine/tone-delta-pair.js +26 -0
- package/lib/commonjs/theme/color-engine/tone-delta-pair.js.map +1 -0
- package/lib/commonjs/theme/color-engine/variant.js +26 -0
- package/lib/commonjs/theme/color-engine/variant.js.map +1 -0
- package/lib/commonjs/theme/color-engine/viewing-conditions.js +61 -0
- package/lib/commonjs/theme/color-engine/viewing-conditions.js.map +1 -0
- package/lib/commonjs/theme/color-presets.js +44 -572
- package/lib/commonjs/theme/color-presets.js.map +1 -1
- package/lib/commonjs/theme/preset-vars.js +64 -47
- package/lib/commonjs/theme/preset-vars.js.map +1 -1
- package/lib/module/theme/build-theme.js +32 -44
- package/lib/module/theme/build-theme.js.map +1 -1
- package/lib/module/theme/color-engine/cam16.js +155 -0
- package/lib/module/theme/color-engine/cam16.js.map +1 -0
- package/lib/module/theme/color-engine/color-role.js +177 -0
- package/lib/module/theme/color-engine/color-role.js.map +1 -0
- package/lib/module/theme/color-engine/color-roles.js +411 -0
- package/lib/module/theme/color-engine/color-roles.js.map +1 -0
- package/lib/module/theme/color-engine/color-utils.js +135 -0
- package/lib/module/theme/color-engine/color-utils.js.map +1 -0
- package/lib/module/theme/color-engine/contrast-curve.js +26 -0
- package/lib/module/theme/color-engine/contrast-curve.js.map +1 -0
- package/lib/module/theme/color-engine/contrast.js +61 -0
- package/lib/module/theme/color-engine/contrast.js.map +1 -0
- package/lib/module/theme/color-engine/dislike-analyzer.js +20 -0
- package/lib/module/theme/color-engine/dislike-analyzer.js.map +1 -0
- package/lib/module/theme/color-engine/dynamic-scheme.js +65 -0
- package/lib/module/theme/color-engine/dynamic-scheme.js.map +1 -0
- package/lib/module/theme/color-engine/hct-solver.js +231 -0
- package/lib/module/theme/color-engine/hct-solver.js.map +1 -0
- package/lib/module/theme/color-engine/hct.js +61 -0
- package/lib/module/theme/color-engine/hct.js.map +1 -0
- package/lib/module/theme/color-engine/index.js +57 -0
- package/lib/module/theme/color-engine/index.js.map +1 -0
- package/lib/module/theme/color-engine/lab-point-provider.js +25 -0
- package/lib/module/theme/color-engine/lab-point-provider.js.map +1 -0
- package/lib/module/theme/color-engine/math-utils.js +65 -0
- package/lib/module/theme/color-engine/math-utils.js.map +1 -0
- package/lib/module/theme/color-engine/quantizer-map.js +20 -0
- package/lib/module/theme/color-engine/quantizer-map.js.map +1 -0
- package/lib/module/theme/color-engine/quantizer-wu.js +261 -0
- package/lib/module/theme/color-engine/quantizer-wu.js.map +1 -0
- package/lib/module/theme/color-engine/scheme-variants.js +93 -0
- package/lib/module/theme/color-engine/scheme-variants.js.map +1 -0
- package/lib/module/theme/color-engine/score.js +75 -0
- package/lib/module/theme/color-engine/score.js.map +1 -0
- package/lib/module/theme/color-engine/seed-from-image.js +67 -0
- package/lib/module/theme/color-engine/seed-from-image.js.map +1 -0
- package/lib/module/theme/color-engine/tonal-palette.js +89 -0
- package/lib/module/theme/color-engine/tonal-palette.js.map +1 -0
- package/lib/module/theme/color-engine/tone-delta-pair.js +21 -0
- package/lib/module/theme/color-engine/tone-delta-pair.js.map +1 -0
- package/lib/module/theme/color-engine/variant.js +22 -0
- package/lib/module/theme/color-engine/variant.js.map +1 -0
- package/lib/module/theme/color-engine/viewing-conditions.js +55 -0
- package/lib/module/theme/color-engine/viewing-conditions.js.map +1 -0
- package/lib/module/theme/color-presets.js +44 -572
- package/lib/module/theme/color-presets.js.map +1 -1
- package/lib/module/theme/preset-vars.js +64 -46
- package/lib/module/theme/preset-vars.js.map +1 -1
- package/lib/typescript/commonjs/theme/build-theme.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-engine/cam16.d.ts +26 -0
- package/lib/typescript/commonjs/theme/color-engine/cam16.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/color-role.d.ts +36 -0
- package/lib/typescript/commonjs/theme/color-engine/color-role.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/color-roles.d.ts +58 -0
- package/lib/typescript/commonjs/theme/color-engine/color-roles.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/color-utils.d.ts +32 -0
- package/lib/typescript/commonjs/theme/color-engine/color-utils.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/contrast-curve.d.ts +9 -0
- package/lib/typescript/commonjs/theme/color-engine/contrast-curve.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/contrast.d.ts +12 -0
- package/lib/typescript/commonjs/theme/color-engine/contrast.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/dislike-analyzer.d.ts +11 -0
- package/lib/typescript/commonjs/theme/color-engine/dislike-analyzer.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/dynamic-scheme.d.ts +47 -0
- package/lib/typescript/commonjs/theme/color-engine/dynamic-scheme.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/hct-solver.d.ts +6 -0
- package/lib/typescript/commonjs/theme/color-engine/hct-solver.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/hct.d.ts +20 -0
- package/lib/typescript/commonjs/theme/color-engine/hct.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/index.d.ts +44 -0
- package/lib/typescript/commonjs/theme/color-engine/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/lab-point-provider.d.ts +6 -0
- package/lib/typescript/commonjs/theme/color-engine/lab-point-provider.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/math-utils.d.ts +46 -0
- package/lib/typescript/commonjs/theme/color-engine/math-utils.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/quantizer-map.d.ts +3 -0
- package/lib/typescript/commonjs/theme/color-engine/quantizer-map.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/quantizer-wu.d.ts +3 -0
- package/lib/typescript/commonjs/theme/color-engine/quantizer-wu.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/scheme-variants.d.ts +23 -0
- package/lib/typescript/commonjs/theme/color-engine/scheme-variants.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/score.d.ts +8 -0
- package/lib/typescript/commonjs/theme/color-engine/score.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/seed-from-image.d.ts +13 -0
- package/lib/typescript/commonjs/theme/color-engine/seed-from-image.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/tonal-palette.d.ts +24 -0
- package/lib/typescript/commonjs/theme/color-engine/tonal-palette.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/tone-delta-pair.d.ts +19 -0
- package/lib/typescript/commonjs/theme/color-engine/tone-delta-pair.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/variant.d.ts +19 -0
- package/lib/typescript/commonjs/theme/color-engine/variant.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/viewing-conditions.d.ts +18 -0
- package/lib/typescript/commonjs/theme/color-engine/viewing-conditions.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-presets.d.ts +25 -20
- package/lib/typescript/commonjs/theme/color-presets.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/preset-vars.d.ts +16 -12
- package/lib/typescript/commonjs/theme/preset-vars.d.ts.map +1 -1
- package/lib/typescript/module/theme/build-theme.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-engine/cam16.d.ts +26 -0
- package/lib/typescript/module/theme/color-engine/cam16.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/color-role.d.ts +36 -0
- package/lib/typescript/module/theme/color-engine/color-role.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/color-roles.d.ts +58 -0
- package/lib/typescript/module/theme/color-engine/color-roles.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/color-utils.d.ts +32 -0
- package/lib/typescript/module/theme/color-engine/color-utils.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/contrast-curve.d.ts +9 -0
- package/lib/typescript/module/theme/color-engine/contrast-curve.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/contrast.d.ts +12 -0
- package/lib/typescript/module/theme/color-engine/contrast.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/dislike-analyzer.d.ts +11 -0
- package/lib/typescript/module/theme/color-engine/dislike-analyzer.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/dynamic-scheme.d.ts +47 -0
- package/lib/typescript/module/theme/color-engine/dynamic-scheme.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/hct-solver.d.ts +6 -0
- package/lib/typescript/module/theme/color-engine/hct-solver.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/hct.d.ts +20 -0
- package/lib/typescript/module/theme/color-engine/hct.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/index.d.ts +44 -0
- package/lib/typescript/module/theme/color-engine/index.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/lab-point-provider.d.ts +6 -0
- package/lib/typescript/module/theme/color-engine/lab-point-provider.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/math-utils.d.ts +46 -0
- package/lib/typescript/module/theme/color-engine/math-utils.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/quantizer-map.d.ts +3 -0
- package/lib/typescript/module/theme/color-engine/quantizer-map.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/quantizer-wu.d.ts +3 -0
- package/lib/typescript/module/theme/color-engine/quantizer-wu.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/scheme-variants.d.ts +23 -0
- package/lib/typescript/module/theme/color-engine/scheme-variants.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/score.d.ts +8 -0
- package/lib/typescript/module/theme/color-engine/score.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/seed-from-image.d.ts +13 -0
- package/lib/typescript/module/theme/color-engine/seed-from-image.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/tonal-palette.d.ts +24 -0
- package/lib/typescript/module/theme/color-engine/tonal-palette.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/tone-delta-pair.d.ts +19 -0
- package/lib/typescript/module/theme/color-engine/tone-delta-pair.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/variant.d.ts +19 -0
- package/lib/typescript/module/theme/color-engine/variant.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/viewing-conditions.d.ts +18 -0
- package/lib/typescript/module/theme/color-engine/viewing-conditions.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-presets.d.ts +25 -20
- package/lib/typescript/module/theme/color-presets.d.ts.map +1 -1
- package/lib/typescript/module/theme/preset-vars.d.ts +16 -12
- package/lib/typescript/module/theme/preset-vars.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/BloomThemeProvider.test.tsx +9 -4
- package/src/__tests__/native-root-vars.test.ts +8 -4
- package/src/__tests__/preset-vars.test.ts +66 -37
- package/src/__tests__/theme.test.ts +20 -12
- package/src/theme/__tests__/__fixtures__/golden-resolved-tokens.json +509 -509
- package/src/theme/__tests__/__snapshots__/visual-gallery.test.tsx.snap +613 -613
- package/src/theme/__tests__/color-engine-golden.test.ts +81 -0
- package/src/theme/__tests__/fixtures/color-engine-golden.json +1 -0
- package/src/theme/__tests__/golden-tokens.test.ts +6 -7
- package/src/theme/__tests__/runtime-contract.test.ts +8 -8
- package/src/theme/__tests__/theme-colors-parity.test.ts +44 -88
- package/src/theme/build-theme.ts +32 -44
- package/src/theme/color-engine/cam16.ts +179 -0
- package/src/theme/color-engine/color-role.ts +217 -0
- package/src/theme/color-engine/color-roles.ts +435 -0
- package/src/theme/color-engine/color-utils.ts +157 -0
- package/src/theme/color-engine/contrast-curve.ts +25 -0
- package/src/theme/color-engine/contrast.ts +59 -0
- package/src/theme/color-engine/dislike-analyzer.ts +19 -0
- package/src/theme/color-engine/dynamic-scheme.ts +90 -0
- package/src/theme/color-engine/hct-solver.ts +263 -0
- package/src/theme/color-engine/hct.ts +69 -0
- package/src/theme/color-engine/index.ts +73 -0
- package/src/theme/color-engine/lab-point-provider.ts +26 -0
- package/src/theme/color-engine/math-utils.ts +69 -0
- package/src/theme/color-engine/quantizer-map.ts +17 -0
- package/src/theme/color-engine/quantizer-wu.ts +320 -0
- package/src/theme/color-engine/scheme-variants.ts +113 -0
- package/src/theme/color-engine/score.ts +82 -0
- package/src/theme/color-engine/seed-from-image.ts +64 -0
- package/src/theme/color-engine/tonal-palette.ts +94 -0
- package/src/theme/color-engine/tone-delta-pair.ts +21 -0
- package/src/theme/color-engine/variant.ts +18 -0
- package/src/theme/color-engine/viewing-conditions.ts +77 -0
- package/src/theme/color-presets.ts +54 -631
- package/src/theme/preset-vars.ts +65 -49
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bloom colour engine — scalar/vector maths.
|
|
3
|
+
*
|
|
4
|
+
* Self-contained port of the Material Color Utilities maths helpers (the same
|
|
5
|
+
* primitives MaterialKolor uses), reimplemented in Bloom's own TypeScript so the
|
|
6
|
+
* theme has ZERO external colour dependencies. Algorithm © Google, Apache-2.0;
|
|
7
|
+
* this is a faithful derivative kept byte-compatible via golden tests.
|
|
8
|
+
*/
|
|
9
|
+
/** 1 if `n > 0`, -1 if `n < 0`, 0 if `n === 0`. */
|
|
10
|
+
export declare function signum(n: number): number;
|
|
11
|
+
/** Linear interpolation: `start` at `amount = 0`, `stop` at `amount = 1`. */
|
|
12
|
+
export declare function lerp(start: number, stop: number, amount: number): number;
|
|
13
|
+
/** Clamp `input` into `[min, max]`. */
|
|
14
|
+
export declare function clampInt(min: number, max: number, input: number): number;
|
|
15
|
+
/** Clamp `input` into `[min, max]` (floating point). */
|
|
16
|
+
export declare function clampDouble(min: number, max: number, input: number): number;
|
|
17
|
+
/** Wrap a degree measure into `[0, 360)` as an integer. */
|
|
18
|
+
export declare function sanitizeDegreesInt(degrees: number): number;
|
|
19
|
+
/** Wrap a degree measure into `[0, 360)` as a float. */
|
|
20
|
+
export declare function sanitizeDegreesDouble(degrees: number): number;
|
|
21
|
+
/**
|
|
22
|
+
* Sign of the shortest rotation from `from` to `to` on a circle.
|
|
23
|
+
* @returns 1 if increasing `from` is shortest, -1 if decreasing is.
|
|
24
|
+
*/
|
|
25
|
+
export declare function rotationDirection(from: number, to: number): number;
|
|
26
|
+
/** Shortest angular distance (degrees) between two hues. */
|
|
27
|
+
export declare function differenceDegrees(a: number, b: number): number;
|
|
28
|
+
/** Multiply a 1×3 row vector by a 3×3 matrix. */
|
|
29
|
+
export declare function matrixMultiply(row: [number, number, number], matrix: [
|
|
30
|
+
[
|
|
31
|
+
number,
|
|
32
|
+
number,
|
|
33
|
+
number
|
|
34
|
+
],
|
|
35
|
+
[
|
|
36
|
+
number,
|
|
37
|
+
number,
|
|
38
|
+
number
|
|
39
|
+
],
|
|
40
|
+
[
|
|
41
|
+
number,
|
|
42
|
+
number,
|
|
43
|
+
number
|
|
44
|
+
]
|
|
45
|
+
]): [number, number, number];
|
|
46
|
+
//# sourceMappingURL=math-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math-utils.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/math-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,mDAAmD;AACnD,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAExC;AAED,6EAA6E;AAC7E,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,uCAAuC;AACvC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wDAAwD;AACxD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED,wDAAwD;AACxD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAGlE;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAC7B,MAAM,EAAE;IACN;QAAC,MAAM;QAAE,MAAM;QAAE,MAAM;KAAC;IACxB;QAAC,MAAM;QAAE,MAAM;QAAE,MAAM;KAAC;IACxB;QAAC,MAAM;QAAE,MAAM;QAAE,MAAM;KAAC;CACzB,GACA,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAK1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quantizer-map.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/quantizer-map.ts"],"names":[],"mappings":"AAQA,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAOlE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quantizer-wu.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/quantizer-wu.ts"],"names":[],"mappings":"AAqDA,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAyQxE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bloom colour engine — scheme variants.
|
|
3
|
+
*
|
|
4
|
+
* How each variant derives its five tonal palettes from the seed HCT. Faithful
|
|
5
|
+
* port of Material Color Utilities' `Scheme*` families (Apache-2.0), expressed
|
|
6
|
+
* as plain builder functions (our style) rather than subclasses. Fidelity/
|
|
7
|
+
* Content are intentionally left out — they need the temperature-cache complement
|
|
8
|
+
* and aren't useful for Bloom's fixed brand seeds.
|
|
9
|
+
*/
|
|
10
|
+
import { DynamicScheme } from './dynamic-scheme';
|
|
11
|
+
import type { Hct } from './hct';
|
|
12
|
+
export type SchemeVariant = 'vibrant' | 'expressive' | 'tonalSpot' | 'neutral';
|
|
13
|
+
/** Maxed-out colourfulness at each position of the primary palette. */
|
|
14
|
+
export declare function schemeVibrant(source: Hct, isDark: boolean, contrastLevel: number): DynamicScheme;
|
|
15
|
+
/** Playful, intentionally detached from the seed hue (primary rotated 240°). */
|
|
16
|
+
export declare function schemeExpressive(source: Hct, isDark: boolean, contrastLevel: number): DynamicScheme;
|
|
17
|
+
/** The Material You default — a calm, balanced treatment of the seed. */
|
|
18
|
+
export declare function schemeTonalSpot(source: Hct, isDark: boolean, contrastLevel: number): DynamicScheme;
|
|
19
|
+
/** Near-greyscale — the seed hue is present only as a whisper. */
|
|
20
|
+
export declare function schemeNeutral(source: Hct, isDark: boolean, contrastLevel: number): DynamicScheme;
|
|
21
|
+
/** Build a scheme by variant name. */
|
|
22
|
+
export declare function buildScheme(variant: SchemeVariant, source: Hct, isDark: boolean, contrastLevel?: number): DynamicScheme;
|
|
23
|
+
//# sourceMappingURL=scheme-variants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheme-variants.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/scheme-variants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAKjC,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC;AAU/E,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,aAAa,CAkBhG;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,aAAa,CAkBnG;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,aAAa,CAYlG;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,aAAa,CAYhG;AASD,sCAAsC;AACtC,wBAAgB,WAAW,CACzB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,OAAO,EACf,aAAa,SAAI,GAChB,aAAa,CAEf"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface ScoreOptions {
|
|
2
|
+
desired?: number;
|
|
3
|
+
fallbackColorARGB?: number;
|
|
4
|
+
filter?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/** Rank quantized colours as theme seeds. Best first. */
|
|
7
|
+
export declare function score(colorsToPopulation: Map<number, number>, options?: ScoreOptions): number[];
|
|
8
|
+
//# sourceMappingURL=score.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/score.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yDAAyD;AACzD,wBAAgB,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAE,YAAiB,GAAG,MAAM,EAAE,CAwDnG"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ScoreOptions } from './score';
|
|
2
|
+
/**
|
|
3
|
+
* Quantize `pixels` to a representative palette with its populations. Uses Wu
|
|
4
|
+
* (deterministic) for the palette, then assigns every pixel to its nearest
|
|
5
|
+
* representative in L*a*b* — no randomness, so the same image always yields the
|
|
6
|
+
* same result.
|
|
7
|
+
*/
|
|
8
|
+
export declare function quantizeImage(pixels: number[], maxColors?: number): Map<number, number>;
|
|
9
|
+
/** Ranked seed candidates (best first) extracted from an image's pixels (ARGB). */
|
|
10
|
+
export declare function seedsFromImagePixels(pixels: number[], options?: ScoreOptions): number[];
|
|
11
|
+
/** The single best seed colour from an image, as `#rrggbb`. */
|
|
12
|
+
export declare function seedHexFromImagePixels(pixels: number[]): string;
|
|
13
|
+
//# sourceMappingURL=seed-from-image.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed-from-image.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/seed-from-image.ts"],"names":[],"mappings":"AAcA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,SAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA6BpF;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,EAAE,CAEvF;AAED,+DAA+D;AAC/D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAI/D"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bloom colour engine — tonal palettes.
|
|
3
|
+
*
|
|
4
|
+
* Faithful port of Material Color Utilities' `TonalPalette` (Apache-2.0). A
|
|
5
|
+
* palette holds a fixed hue + chroma and yields a colour for any tone (0–100).
|
|
6
|
+
* Schemes build primary/secondary/tertiary/neutral palettes and read specific
|
|
7
|
+
* tones per role.
|
|
8
|
+
*/
|
|
9
|
+
import { Hct } from './hct';
|
|
10
|
+
export declare class TonalPalette {
|
|
11
|
+
readonly hue: number;
|
|
12
|
+
readonly chroma: number;
|
|
13
|
+
readonly keyColor: Hct;
|
|
14
|
+
private readonly cache;
|
|
15
|
+
private constructor();
|
|
16
|
+
static fromInt(argb: number): TonalPalette;
|
|
17
|
+
static fromHct(hct: Hct): TonalPalette;
|
|
18
|
+
static fromHueAndChroma(hue: number, chroma: number): TonalPalette;
|
|
19
|
+
/** ARGB of this palette at the given tone. */
|
|
20
|
+
tone(tone: number): number;
|
|
21
|
+
/** HCT of this palette at the given tone. */
|
|
22
|
+
getHct(tone: number): Hct;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=tonal-palette.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tonal-palette.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/tonal-palette.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,qBAAa,YAAY;IAIrB,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,QAAQ,EAAE,GAAG;IALxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAEnD,OAAO;IAMP,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAI1C,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,YAAY;IAItC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY;IAKlE,8CAA8C;IAC9C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAS1B,6CAA6C;IAC7C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;CAG1B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bloom colour engine — tone-delta pair.
|
|
3
|
+
*
|
|
4
|
+
* Faithful port of Material Color Utilities' `ToneDeltaPair` (Apache-2.0).
|
|
5
|
+
* Constrains two related roles to keep a minimum tonal distance in a given
|
|
6
|
+
* direction (e.g. a fixed colour must stay lighter than its dim variant), so
|
|
7
|
+
* paired roles never collapse into each other.
|
|
8
|
+
*/
|
|
9
|
+
import type { ColorRole } from './color-role';
|
|
10
|
+
export type TonePolarity = 'darker' | 'lighter' | 'nearer' | 'farther';
|
|
11
|
+
export declare class ToneDeltaPair {
|
|
12
|
+
readonly roleA: ColorRole;
|
|
13
|
+
readonly roleB: ColorRole;
|
|
14
|
+
readonly delta: number;
|
|
15
|
+
readonly polarity: TonePolarity;
|
|
16
|
+
readonly stayTogether: boolean;
|
|
17
|
+
constructor(roleA: ColorRole, roleB: ColorRole, delta: number, polarity: TonePolarity, stayTogether: boolean);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=tone-delta-pair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tone-delta-pair.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/tone-delta-pair.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEvE,qBAAa,aAAa;IAEtB,QAAQ,CAAC,KAAK,EAAE,SAAS;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,QAAQ,EAAE,YAAY;IAC/B,QAAQ,CAAC,YAAY,EAAE,OAAO;gBAJrB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,YAAY,EACtB,YAAY,EAAE,OAAO;CAEjC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bloom colour engine — scheme variants.
|
|
3
|
+
*
|
|
4
|
+
* The families of dynamic-colour scheme supported by the engine. Bloom exposes
|
|
5
|
+
* the useful subset (Vibrant, Expressive, TonalSpot, Neutral, Fidelity); the
|
|
6
|
+
* numeric values match Material Color Utilities so ported scheme logic lines up.
|
|
7
|
+
*/
|
|
8
|
+
export declare enum Variant {
|
|
9
|
+
MONOCHROME = 0,
|
|
10
|
+
NEUTRAL = 1,
|
|
11
|
+
TONAL_SPOT = 2,
|
|
12
|
+
VIBRANT = 3,
|
|
13
|
+
EXPRESSIVE = 4,
|
|
14
|
+
FIDELITY = 5,
|
|
15
|
+
CONTENT = 6,
|
|
16
|
+
RAINBOW = 7,
|
|
17
|
+
FRUIT_SALAD = 8
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=variant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variant.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/variant.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,oBAAY,OAAO;IACjB,UAAU,IAAI;IACd,OAAO,IAAI;IACX,UAAU,IAAI;IACd,OAAO,IAAI;IACX,UAAU,IAAI;IACd,QAAQ,IAAI;IACZ,OAAO,IAAI;IACX,OAAO,IAAI;IACX,WAAW,IAAI;CAChB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare class ViewingConditions {
|
|
2
|
+
readonly n: number;
|
|
3
|
+
readonly aw: number;
|
|
4
|
+
readonly nbb: number;
|
|
5
|
+
readonly ncb: number;
|
|
6
|
+
readonly c: number;
|
|
7
|
+
readonly nc: number;
|
|
8
|
+
readonly rgbD: [number, number, number];
|
|
9
|
+
readonly fl: number;
|
|
10
|
+
readonly fLRoot: number;
|
|
11
|
+
readonly z: number;
|
|
12
|
+
private static _default;
|
|
13
|
+
/** sRGB-like viewing conditions (the only ones Bloom uses). */
|
|
14
|
+
static get DEFAULT(): ViewingConditions;
|
|
15
|
+
private constructor();
|
|
16
|
+
static make(whitePoint?: [number, number, number], adaptingLuminance?: number, backgroundLstar?: number, surround?: number, discountingIlluminant?: boolean): ViewingConditions;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=viewing-conditions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewing-conditions.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/viewing-conditions.ts"],"names":[],"mappings":"AAWA,qBAAa,iBAAiB;IAQ1B,QAAQ,CAAC,CAAC,EAAE,MAAM;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,CAAC,EAAE,MAAM;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM;IACnB,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,EAAE,EAAE,MAAM;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,CAAC,EAAE,MAAM;IAhBpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgC;IACvD,+DAA+D;IAC/D,MAAM,KAAK,OAAO,IAAI,iBAAiB,CAEtC;IAED,OAAO;IAaP,MAAM,CAAC,IAAI,CACT,UAAU,GAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAmB,EACtD,iBAAiB,GAAE,MAAuD,EAC1E,eAAe,SAAO,EACtB,QAAQ,SAAM,EACd,qBAAqB,UAAQ,GAC5B,iBAAiB;CAuCrB"}
|
|
@@ -1,35 +1,40 @@
|
|
|
1
|
+
import type { SchemeVariant } from './color-engine';
|
|
1
2
|
export type AppColorName = 'teal' | 'blue' | 'green' | 'amber' | 'yellow' | 'red' | 'purple' | 'pink' | 'sky' | 'orange' | 'mint' | 'oxy' | 'faircoin';
|
|
2
3
|
/**
|
|
3
|
-
*
|
|
4
|
+
* A single colour preset: a brand SEED colour plus the tonal scheme variant to
|
|
5
|
+
* derive its full role set with.
|
|
4
6
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* - the web layer: `getResolvedTokens`'s `rgb(...)` strings are written to
|
|
12
|
-
* `document.documentElement` / a `BloomColorScope` element, so `var(--x)` —
|
|
13
|
-
* the form Tailwind v4 `@theme inline` compiles its color utilities to —
|
|
14
|
-
* resolves to a valid color directly, and
|
|
15
|
-
* - the native layer (`buildTheme` resolves the raw triples into `hsl(...)`
|
|
16
|
-
* strings consumable by React Native styles; `native-root-vars.native.ts`
|
|
17
|
-
* writes the same canonical `rgb(...)` values into react-native-css's
|
|
18
|
-
* `rootVariables` family).
|
|
19
|
-
*
|
|
20
|
-
* The `--` prefix is an implementation detail we will drop in a future major.
|
|
7
|
+
* Every preset's palette is now GENERATED by Bloom's dependency-free colour
|
|
8
|
+
* engine (`color-engine/`) from this seed — no hand-authored HSL triples. The
|
|
9
|
+
* engine's `generateRoleColors({ seed, variant, isDark })` yields the full
|
|
10
|
+
* Material-3 role set for light and dark; `getPresetVars` (in `preset-vars.ts`)
|
|
11
|
+
* maps those roles onto Bloom's canonical token names. A user-picked colour
|
|
12
|
+
* flows through the identical path — a preset is just a fixed seed.
|
|
21
13
|
*/
|
|
22
|
-
export type PresetTokens = Record<string, string>;
|
|
23
14
|
export interface AppColorPreset {
|
|
24
15
|
name: AppColorName;
|
|
16
|
+
/** The brand seed colour, `#rrggbb`. Also the value the colour picker matches. */
|
|
25
17
|
hex: string;
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
/** The tonal scheme variant the engine derives roles with. */
|
|
19
|
+
variant: SchemeVariant;
|
|
28
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Historically each preset carried a full light/dark map of raw HSL triples.
|
|
23
|
+
* That map is gone — the engine derives every role from {@link AppColorPreset.hex}.
|
|
24
|
+
* The type alias is retained for the public `PresetTokens` export shape (the
|
|
25
|
+
* resolved `--token -> value` record that `getPresetVars` produces).
|
|
26
|
+
*/
|
|
27
|
+
export type PresetTokens = Record<string, string>;
|
|
29
28
|
export declare const APP_COLOR_NAMES: readonly AppColorName[];
|
|
30
29
|
/** Premium-exclusive presets, hidden from the standard color picker. */
|
|
31
30
|
export declare const PREMIUM_COLOR_NAMES: readonly AppColorName[];
|
|
32
31
|
export declare const HEX_TO_APP_COLOR: Record<string, AppColorName>;
|
|
33
32
|
export declare function hexToAppColorName(hex: string): AppColorName;
|
|
33
|
+
/**
|
|
34
|
+
* The 13 named presets, each a brand seed + scheme variant. The engine derives
|
|
35
|
+
* the full role set (light + dark) from the seed. Seeds are the brand hex of
|
|
36
|
+
* each preset; `oxy` reads most faithfully as `vibrant`, everything else keeps a
|
|
37
|
+
* bold `vibrant` derivation to match the prior saturated palette.
|
|
38
|
+
*/
|
|
34
39
|
export declare const APP_COLOR_PRESETS: Record<AppColorName, AppColorPreset>;
|
|
35
40
|
//# sourceMappingURL=color-presets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color-presets.d.ts","sourceRoot":"","sources":["../../../../src/theme/color-presets.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"color-presets.d.ts","sourceRoot":"","sources":["../../../../src/theme/color-presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,GACR,KAAK,GACL,QAAQ,GACR,MAAM,GACN,KAAK,GACL,QAAQ,GACR,MAAM,GACN,KAAK,GACL,UAAU,CAAC;AAEf;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,kFAAkF;IAClF,GAAG,EAAE,MAAM,CAAC;IACZ,8DAA8D;IAC9D,OAAO,EAAE,aAAa,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAElD,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,EAAsH,CAAC;AAE1K,wEAAwE;AACxE,eAAO,MAAM,mBAAmB,EAAE,SAAS,YAAY,EAAwB,CAAC;AAEhF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAczD,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAE3D;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,YAAY,EAAE,cAAc,CAclE,CAAC"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import { type AppColorName, type PresetTokens } from './color-presets';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* Map a preset (seed + variant) and mode onto Bloom's canonical CSS-var token
|
|
4
|
+
* set, sourcing EVERY colour from the colour engine's Material-3 role output.
|
|
5
|
+
*
|
|
6
|
+
* This replaces the old hand-authored HSL triples: the engine derives a full,
|
|
7
|
+
* self-consistent, WCAG-legible role set from the seed for light and dark, and
|
|
8
|
+
* this function assigns those roles to Bloom's token names. The token NAMES are
|
|
9
|
+
* unchanged (see `CANONICAL_TOKENS` in `token-registry.ts`) — only the SOURCE of
|
|
10
|
+
* each colour moved to the engine, so every downstream consumer keeps working.
|
|
11
|
+
*
|
|
12
|
+
* Values are full `rgb(r g b)` strings straight from the engine. `getResolvedTokens`
|
|
13
|
+
* passes non-HSL-triple values through untouched, so these flow through the whole
|
|
14
|
+
* pipeline (web document writes, native `rootVariables`, JS `ThemeColors`) unchanged.
|
|
6
15
|
*
|
|
7
16
|
* This is the single source of truth for extended theming vars — consumer apps
|
|
8
17
|
* must not redefine these per-app.
|
|
9
|
-
*
|
|
10
|
-
* Values are platform-agnostic **raw HSL triples** (`'185 100% 20%'`, optionally
|
|
11
|
-
* with a `/ A` alpha tail). The single canonical resolver `getResolvedTokens`
|
|
12
|
-
* (in `token-registry.ts`) converts these to sRGB `rgb(...)` for BOTH web and
|
|
13
|
-
* native runtime writes — this function only produces the raw triple map.
|
|
14
18
|
*/
|
|
15
19
|
export declare function getPresetVars(colorName: AppColorName, mode: 'light' | 'dark'): PresetTokens;
|
|
16
20
|
/**
|
|
@@ -19,10 +23,10 @@ export declare function getPresetVars(colorName: AppColorName, mode: 'light' | '
|
|
|
19
23
|
* call this only when an app needs the extended (card/chart/sidebar) tokens on
|
|
20
24
|
* the document root.
|
|
21
25
|
*
|
|
22
|
-
* Tokens are resolved
|
|
23
|
-
* `
|
|
24
|
-
* `@theme inline` compiles its color utilities to — resolves
|
|
25
|
-
* valid color on web.
|
|
26
|
+
* Tokens are resolved via the single canonical `getResolvedTokens` pipeline
|
|
27
|
+
* (already full `rgb(...)` colours from the engine), so `var(--x)` — the form
|
|
28
|
+
* Tailwind v4 `@theme inline` compiles its color utilities to — resolves
|
|
29
|
+
* directly to a valid color on web.
|
|
26
30
|
*/
|
|
27
31
|
export declare function applyPresetVarsToDocument(colorName: AppColorName, mode: 'light' | 'dark'): void;
|
|
28
32
|
//# sourceMappingURL=preset-vars.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset-vars.d.ts","sourceRoot":"","sources":["../../../../src/theme/preset-vars.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"preset-vars.d.ts","sourceRoot":"","sources":["../../../../src/theme/preset-vars.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQ1F;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,YAAY,EACvB,IAAI,EAAE,OAAO,GAAG,MAAM,GACrB,YAAY,CAoDd;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,YAAY,EACvB,IAAI,EAAE,OAAO,GAAG,MAAM,GACrB,IAAI,CAQN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-theme.d.ts","sourceRoot":"","sources":["../../../../src/theme/build-theme.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"build-theme.d.ts","sourceRoot":"","sources":["../../../../src/theme/build-theme.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKvE,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,SAAS,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AA4EX;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,OAAO,GAAG,MAAM,EAC1B,UAAU,GAAE,OAAe,GAC1B,KAAK,CAWP"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ViewingConditions } from './viewing-conditions';
|
|
2
|
+
export declare class Cam16 {
|
|
3
|
+
readonly hue: number;
|
|
4
|
+
readonly chroma: number;
|
|
5
|
+
readonly j: number;
|
|
6
|
+
readonly q: number;
|
|
7
|
+
readonly m: number;
|
|
8
|
+
readonly s: number;
|
|
9
|
+
readonly jstar: number;
|
|
10
|
+
readonly astar: number;
|
|
11
|
+
readonly bstar: number;
|
|
12
|
+
constructor(hue: number, chroma: number, j: number, q: number, m: number, s: number, jstar: number, astar: number, bstar: number);
|
|
13
|
+
/** CAM16-UCS perceptual distance to another colour. */
|
|
14
|
+
distance(other: Cam16): number;
|
|
15
|
+
static fromInt(argb: number): Cam16;
|
|
16
|
+
static fromIntInViewingConditions(argb: number, vc: ViewingConditions): Cam16;
|
|
17
|
+
static fromXyzInViewingConditions(x: number, y: number, z: number, vc: ViewingConditions): Cam16;
|
|
18
|
+
static fromJch(j: number, c: number, h: number): Cam16;
|
|
19
|
+
static fromJchInViewingConditions(j: number, c: number, h: number, vc: ViewingConditions): Cam16;
|
|
20
|
+
static fromUcs(jstar: number, astar: number, bstar: number): Cam16;
|
|
21
|
+
static fromUcsInViewingConditions(jstar: number, astar: number, bstar: number, vc: ViewingConditions): Cam16;
|
|
22
|
+
toInt(): number;
|
|
23
|
+
viewed(vc: ViewingConditions): number;
|
|
24
|
+
xyzInViewingConditions(vc: ViewingConditions): [number, number, number];
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=cam16.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cam16.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/cam16.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,KAAK;IAEd,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,CAAC,EAAE,MAAM;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM;gBARb,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM;IAGxB,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAQ9B,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAInC,MAAM,CAAC,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,iBAAiB,GAAG,KAAK;IAa7E,MAAM,CAAC,0BAA0B,CAC/B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,EAAE,EAAE,iBAAiB,GACpB,KAAK;IAwCR,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK;IAItD,MAAM,CAAC,0BAA0B,CAC/B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,EAAE,EAAE,iBAAiB,GACpB,KAAK;IAaR,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK;IAIlE,MAAM,CAAC,0BAA0B,CAC/B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,iBAAiB,GACpB,KAAK;IAYR,KAAK,IAAI,MAAM;IAIf,MAAM,CAAC,EAAE,EAAE,iBAAiB,GAAG,MAAM;IAKrC,sBAAsB,CAAC,EAAE,EAAE,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;CA8BxE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ContrastCurve } from './contrast-curve';
|
|
2
|
+
import type { DynamicScheme } from './dynamic-scheme';
|
|
3
|
+
import { Hct } from './hct';
|
|
4
|
+
import type { TonalPalette } from './tonal-palette';
|
|
5
|
+
import type { ToneDeltaPair } from './tone-delta-pair';
|
|
6
|
+
export interface ColorRoleArgs {
|
|
7
|
+
name?: string;
|
|
8
|
+
palette: (scheme: DynamicScheme) => TonalPalette;
|
|
9
|
+
tone: (scheme: DynamicScheme) => number;
|
|
10
|
+
isBackground?: boolean;
|
|
11
|
+
background?: (scheme: DynamicScheme) => ColorRole | undefined;
|
|
12
|
+
secondBackground?: (scheme: DynamicScheme) => ColorRole | undefined;
|
|
13
|
+
contrastCurve?: ContrastCurve;
|
|
14
|
+
toneDeltaPair?: (scheme: DynamicScheme) => ToneDeltaPair;
|
|
15
|
+
}
|
|
16
|
+
export declare class ColorRole {
|
|
17
|
+
readonly name: string;
|
|
18
|
+
readonly palette: (scheme: DynamicScheme) => TonalPalette;
|
|
19
|
+
readonly tone: (scheme: DynamicScheme) => number;
|
|
20
|
+
readonly isBackground: boolean;
|
|
21
|
+
readonly background?: (scheme: DynamicScheme) => ColorRole | undefined;
|
|
22
|
+
readonly secondBackground?: (scheme: DynamicScheme) => ColorRole | undefined;
|
|
23
|
+
readonly contrastCurve?: ContrastCurve;
|
|
24
|
+
readonly toneDeltaPair?: (scheme: DynamicScheme) => ToneDeltaPair;
|
|
25
|
+
private readonly hctCache;
|
|
26
|
+
static fromPalette(args: ColorRoleArgs): ColorRole;
|
|
27
|
+
constructor(args: ColorRoleArgs);
|
|
28
|
+
getArgb(scheme: DynamicScheme): number;
|
|
29
|
+
getHct(scheme: DynamicScheme): Hct;
|
|
30
|
+
getTone(scheme: DynamicScheme): number;
|
|
31
|
+
static foregroundTone(bgTone: number, ratio: number): number;
|
|
32
|
+
static tonePrefersLightForeground(tone: number): boolean;
|
|
33
|
+
static toneAllowsLightForeground(tone: number): boolean;
|
|
34
|
+
static enableLightForeground(tone: number): number;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=color-role.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-role.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/color-role.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,YAAY,CAAC;IACjD,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,MAAM,CAAC;IACxC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,SAAS,GAAG,SAAS,CAAC;IAC9D,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,SAAS,GAAG,SAAS,CAAC;IACpE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,aAAa,CAAC;CAC1D;AAED,qBAAa,SAAS;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,YAAY,CAAC;IAC1D,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,MAAM,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,SAAS,GAAG,SAAS,CAAC;IACvE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,SAAS,GAAG,SAAS,CAAC;IAC7E,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,aAAa,CAAC;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiC;IAE1D,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS;gBAItC,IAAI,EAAE,aAAa;IAoB/B,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAItC,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,GAAG;IAUlC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IA4GtC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAgB5D,MAAM,CAAC,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIxD,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIvD,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAMnD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bloom colour engine — the colour roles.
|
|
3
|
+
*
|
|
4
|
+
* Faithful port of Material Color Utilities' `MaterialDynamicColors` (Apache-2.0),
|
|
5
|
+
* renamed to Bloom's own `Roles`. Each role is a {@link ColorRole} recipe over
|
|
6
|
+
* the scheme's palettes: surfaces, on-surfaces, the accent trio + their
|
|
7
|
+
* containers, outlines and error. Resolving a role against a scheme yields the
|
|
8
|
+
* final colour. The 12 "*Fixed" roles the reference ships are omitted — Bloom's
|
|
9
|
+
* token contract doesn't use them.
|
|
10
|
+
*/
|
|
11
|
+
import { ColorRole } from './color-role';
|
|
12
|
+
/** The full set of Bloom colour roles, keyed by name. Resolve via `.getArgb(scheme)`. */
|
|
13
|
+
export declare const Roles: {
|
|
14
|
+
readonly primaryPaletteKeyColor: ColorRole;
|
|
15
|
+
readonly secondaryPaletteKeyColor: ColorRole;
|
|
16
|
+
readonly tertiaryPaletteKeyColor: ColorRole;
|
|
17
|
+
readonly neutralPaletteKeyColor: ColorRole;
|
|
18
|
+
readonly neutralVariantPaletteKeyColor: ColorRole;
|
|
19
|
+
readonly background: ColorRole;
|
|
20
|
+
readonly onBackground: ColorRole;
|
|
21
|
+
readonly surface: ColorRole;
|
|
22
|
+
readonly surfaceDim: ColorRole;
|
|
23
|
+
readonly surfaceBright: ColorRole;
|
|
24
|
+
readonly surfaceContainerLowest: ColorRole;
|
|
25
|
+
readonly surfaceContainerLow: ColorRole;
|
|
26
|
+
readonly surfaceContainer: ColorRole;
|
|
27
|
+
readonly surfaceContainerHigh: ColorRole;
|
|
28
|
+
readonly surfaceContainerHighest: ColorRole;
|
|
29
|
+
readonly onSurface: ColorRole;
|
|
30
|
+
readonly surfaceVariant: ColorRole;
|
|
31
|
+
readonly onSurfaceVariant: ColorRole;
|
|
32
|
+
readonly inverseSurface: ColorRole;
|
|
33
|
+
readonly inverseOnSurface: ColorRole;
|
|
34
|
+
readonly outline: ColorRole;
|
|
35
|
+
readonly outlineVariant: ColorRole;
|
|
36
|
+
readonly shadow: ColorRole;
|
|
37
|
+
readonly scrim: ColorRole;
|
|
38
|
+
readonly surfaceTint: ColorRole;
|
|
39
|
+
readonly primary: ColorRole;
|
|
40
|
+
readonly onPrimary: ColorRole;
|
|
41
|
+
readonly primaryContainer: ColorRole;
|
|
42
|
+
readonly onPrimaryContainer: ColorRole;
|
|
43
|
+
readonly inversePrimary: ColorRole;
|
|
44
|
+
readonly secondary: ColorRole;
|
|
45
|
+
readonly onSecondary: ColorRole;
|
|
46
|
+
readonly secondaryContainer: ColorRole;
|
|
47
|
+
readonly onSecondaryContainer: ColorRole;
|
|
48
|
+
readonly tertiary: ColorRole;
|
|
49
|
+
readonly onTertiary: ColorRole;
|
|
50
|
+
readonly tertiaryContainer: ColorRole;
|
|
51
|
+
readonly onTertiaryContainer: ColorRole;
|
|
52
|
+
readonly error: ColorRole;
|
|
53
|
+
readonly onError: ColorRole;
|
|
54
|
+
readonly errorContainer: ColorRole;
|
|
55
|
+
readonly onErrorContainer: ColorRole;
|
|
56
|
+
};
|
|
57
|
+
export type RoleName = keyof typeof Roles;
|
|
58
|
+
//# sourceMappingURL=color-roles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-roles.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/color-roles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA0XzC,yFAAyF;AACzF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CR,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,KAAK,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** Pack 0–255 R/G/B into an opaque ARGB int. */
|
|
2
|
+
export declare function argbFromRgb(red: number, green: number, blue: number): number;
|
|
3
|
+
/** Pack linear-RGB (0–100 per channel) into an opaque ARGB int. */
|
|
4
|
+
export declare function argbFromLinrgb(linrgb: [number, number, number]): number;
|
|
5
|
+
export declare function alphaFromArgb(argb: number): number;
|
|
6
|
+
export declare function redFromArgb(argb: number): number;
|
|
7
|
+
export declare function greenFromArgb(argb: number): number;
|
|
8
|
+
export declare function blueFromArgb(argb: number): number;
|
|
9
|
+
export declare function isOpaque(argb: number): boolean;
|
|
10
|
+
/** XYZ → ARGB. */
|
|
11
|
+
export declare function argbFromXyz(x: number, y: number, z: number): number;
|
|
12
|
+
/** ARGB → XYZ. */
|
|
13
|
+
export declare function xyzFromArgb(argb: number): [number, number, number];
|
|
14
|
+
/** L*a*b* → ARGB. */
|
|
15
|
+
export declare function argbFromLab(l: number, a: number, b: number): number;
|
|
16
|
+
/** ARGB → L*a*b*. */
|
|
17
|
+
export declare function labFromArgb(argb: number): [number, number, number];
|
|
18
|
+
/** L* → ARGB (a grayscale color with that lightness). */
|
|
19
|
+
export declare function argbFromLstar(lstar: number): number;
|
|
20
|
+
/** ARGB → L*. */
|
|
21
|
+
export declare function lstarFromArgb(argb: number): number;
|
|
22
|
+
/** L* → Y (XYZ luminance). */
|
|
23
|
+
export declare function yFromLstar(lstar: number): number;
|
|
24
|
+
/** Y (XYZ luminance) → L*. */
|
|
25
|
+
export declare function lstarFromY(y: number): number;
|
|
26
|
+
/** sRGB component (0–255) → linear (0–100). */
|
|
27
|
+
export declare function linearized(rgbComponent: number): number;
|
|
28
|
+
/** Linear component (0–100) → sRGB (0–255). */
|
|
29
|
+
export declare function delinearized(rgbComponent: number): number;
|
|
30
|
+
/** The D65 white point. */
|
|
31
|
+
export declare function whitePointD65(): [number, number, number];
|
|
32
|
+
//# sourceMappingURL=color-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-utils.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/color-utils.ts"],"names":[],"mappings":"AA6BA,gDAAgD;AAChD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAEvE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AACD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AACD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AACD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AACD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED,kBAAkB;AAClB,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED,kBAAkB;AAClB,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAKlE;AAED,qBAAqB;AACrB,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CASnE;AAED,qBAAqB;AACrB,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAalE;AAED,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,iBAAiB;AACjB,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED,8BAA8B;AAC9B,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,8BAA8B;AAC9B,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,+CAA+C;AAC/C,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,+CAA+C;AAC/C,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAOzD;AAED,2BAA2B;AAC3B,wBAAgB,aAAa,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAExD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class ContrastCurve {
|
|
2
|
+
readonly low: number;
|
|
3
|
+
readonly normal: number;
|
|
4
|
+
readonly medium: number;
|
|
5
|
+
readonly high: number;
|
|
6
|
+
constructor(low: number, normal: number, medium: number, high: number);
|
|
7
|
+
get(contrastLevel: number): number;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=contrast-curve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contrast-curve.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/contrast-curve.ts"],"names":[],"mappings":"AASA,qBAAa,aAAa;IAEtB,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAHZ,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM;IAGvB,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;CAOnC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** WCAG contrast ratio between two tones (L*). */
|
|
2
|
+
export declare function ratioOfTones(toneA: number, toneB: number): number;
|
|
3
|
+
export declare function ratioOfYs(y1: number, y2: number): number;
|
|
4
|
+
/** Lightest tone that hits `ratio` against `tone`, or -1 if impossible. */
|
|
5
|
+
export declare function lighter(tone: number, ratio: number): number;
|
|
6
|
+
/** Darkest tone that hits `ratio` against `tone`, or -1 if impossible. */
|
|
7
|
+
export declare function darker(tone: number, ratio: number): number;
|
|
8
|
+
/** Like {@link lighter} but returns 100 instead of -1 when unattainable. */
|
|
9
|
+
export declare function lighterUnsafe(tone: number, ratio: number): number;
|
|
10
|
+
/** Like {@link darker} but returns 0 instead of -1 when unattainable. */
|
|
11
|
+
export declare function darkerUnsafe(tone: number, ratio: number): number;
|
|
12
|
+
//# sourceMappingURL=contrast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contrast.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/contrast.ts"],"names":[],"mappings":"AAWA,kDAAkD;AAClD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAIxD;AAED,2EAA2E;AAC3E,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAS3D;AAED,0EAA0E;AAC1E,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAS1D;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGhE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bloom colour engine — dislike analyzer.
|
|
3
|
+
*
|
|
4
|
+
* Faithful port of Material Color Utilities' `DislikeAnalyzer` (Apache-2.0).
|
|
5
|
+
* Certain dark-yellow-green HCT colours read as "bile"; this nudges their tone
|
|
6
|
+
* up to 70 so generated palettes never land on a universally-disliked colour.
|
|
7
|
+
*/
|
|
8
|
+
import { Hct } from './hct';
|
|
9
|
+
export declare function isDisliked(hct: Hct): boolean;
|
|
10
|
+
export declare function fixIfDisliked(hct: Hct): Hct;
|
|
11
|
+
//# sourceMappingURL=dislike-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dislike-analyzer.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/dislike-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAK5C;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAE3C"}
|