@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
|
@@ -7,6 +7,7 @@ exports.STATUS_COLORS = void 0;
|
|
|
7
7
|
exports.buildTheme = buildTheme;
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _colorPresets = require("./color-presets.js");
|
|
10
|
+
var _index = require("./color-engine/index.js");
|
|
10
11
|
var _adaptiveColors = require("./adaptive-colors.js");
|
|
11
12
|
var _tokenRegistry = require("./token-registry.js");
|
|
12
13
|
var _gradients = require("./gradients.js");
|
|
@@ -22,29 +23,16 @@ const STATUS_COLORS = exports.STATUS_COLORS = {
|
|
|
22
23
|
};
|
|
23
24
|
|
|
24
25
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const hue = parseInt(first, 10);
|
|
32
|
-
return Number.isFinite(hue) ? hue : 0;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Build the JS `theme.colors` object from the SAME canonical rgb token source
|
|
37
|
-
* the web/native CSS-var writes use (`getResolvedTokens`). JS styles and the
|
|
38
|
-
* `var(--x)` document tokens therefore share one rgb pipeline — no second,
|
|
39
|
-
* drift-prone HSL conversion lives here.
|
|
26
|
+
* Build the JS `theme.colors` object from the SAME engine-derived colours the
|
|
27
|
+
* web/native CSS-var writes use. Token-backed fields read from the resolved rgb
|
|
28
|
+
* token map (`getResolvedTokens`, which sources from the engine via
|
|
29
|
+
* `getPresetVars`); the brand-tint family (primarySubtle/negative/…) reads the
|
|
30
|
+
* engine's container/error roles directly. JS styles and the `var(--x)` document
|
|
31
|
+
* tokens therefore share one engine-backed pipeline — no second HSL conversion.
|
|
40
32
|
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* the historical `hsl(h, s%, l%)` math — but are emitted as `rgb(...)` by
|
|
45
|
-
* routing the triple through the registry's `hslToSrgb`, so the single-format
|
|
46
|
-
* pipeline is preserved. (`hsl(h,s%,l%)` and the `rgb(...)` of the same color
|
|
47
|
-
* are byte-identical under the RN/RNW/browser parser.)
|
|
33
|
+
* The two intentional fixes land here too: `card` is now the lightest surface
|
|
34
|
+
* (`--card` → engine `surfaceContainerLowest`) and `secondary` is a real
|
|
35
|
+
* contrast colour (engine `secondary` role), not a mirror of `primary`.
|
|
48
36
|
*/
|
|
49
37
|
function buildColorsFromPreset(preset, resolved) {
|
|
50
38
|
const t = (0, _tokenRegistry.getResolvedTokens)(preset, resolved);
|
|
@@ -53,22 +41,21 @@ function buildColorsFromPreset(preset, resolved) {
|
|
|
53
41
|
// Read a resolved `rgb(...)` token by its bare name (no leading `--`).
|
|
54
42
|
const g = k => t[`--${k}`] ?? 'rgb(0 0 0)';
|
|
55
43
|
|
|
56
|
-
//
|
|
57
|
-
//
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const dHue = extractHue(presetTokens['--destructive'] ?? '0 0% 0%');
|
|
44
|
+
// The full engine role set — for fields that map to roles Bloom's canonical
|
|
45
|
+
// token set does not surface (containers, error family).
|
|
46
|
+
const config = _colorPresets.APP_COLOR_PRESETS[preset];
|
|
47
|
+
const r = (0, _index.generateRoleColors)({
|
|
48
|
+
seed: config.hex,
|
|
49
|
+
variant: config.variant,
|
|
50
|
+
isDark
|
|
51
|
+
});
|
|
65
52
|
return {
|
|
66
53
|
background: g('background'),
|
|
67
54
|
backgroundSecondary: g('surface'),
|
|
68
|
-
backgroundTertiary: g('
|
|
55
|
+
backgroundTertiary: g('popover'),
|
|
69
56
|
text: g('foreground'),
|
|
70
57
|
textSecondary: g('muted-foreground'),
|
|
71
|
-
textTertiary:
|
|
58
|
+
textTertiary: r.outline,
|
|
72
59
|
border: g('border'),
|
|
73
60
|
borderLight: g('input'),
|
|
74
61
|
primary: g('primary'),
|
|
@@ -77,20 +64,21 @@ function buildColorsFromPreset(preset, resolved) {
|
|
|
77
64
|
// `primaryDark` is the page background — retained for downstream consumers.
|
|
78
65
|
primaryLight: g('surface'),
|
|
79
66
|
primaryDark: g('background'),
|
|
80
|
-
// `secondary`
|
|
81
|
-
secondary: g('
|
|
67
|
+
// The FIX: `secondary` is now a real contrast colour (engine `secondary`).
|
|
68
|
+
secondary: g('secondary'),
|
|
82
69
|
tint: g('primary'),
|
|
83
70
|
icon: g('muted-foreground'),
|
|
84
71
|
iconActive: g('primary'),
|
|
85
72
|
...STATUS_COLORS,
|
|
86
|
-
primarySubtle:
|
|
87
|
-
primarySubtleForeground:
|
|
88
|
-
negative:
|
|
89
|
-
negativeForeground:
|
|
90
|
-
negativeSubtle:
|
|
91
|
-
negativeSubtleForeground:
|
|
92
|
-
contrast50:
|
|
93
|
-
|
|
73
|
+
primarySubtle: r.primaryContainer,
|
|
74
|
+
primarySubtleForeground: r.onPrimaryContainer,
|
|
75
|
+
negative: r.error,
|
|
76
|
+
negativeForeground: r.onError,
|
|
77
|
+
negativeSubtle: r.errorContainer,
|
|
78
|
+
negativeSubtleForeground: r.onErrorContainer,
|
|
79
|
+
contrast50: g('muted'),
|
|
80
|
+
// The FIX: `card` is the lightest surface (engine `surfaceContainerLowest`).
|
|
81
|
+
card: g('card'),
|
|
94
82
|
shadow: isDark ? 'rgba(0, 0, 0, 0.3)' : 'rgba(0, 0, 0, 0.1)',
|
|
95
83
|
overlay: 'rgba(0, 0, 0, 0.5)'
|
|
96
84
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_colorPresets","_adaptiveColors","_tokenRegistry","_gradients","STATUS_COLORS","exports","success","error","warning","info","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_colorPresets","_index","_adaptiveColors","_tokenRegistry","_gradients","STATUS_COLORS","exports","success","error","warning","info","buildColorsFromPreset","preset","resolved","t","getResolvedTokens","isDark","g","k","config","APP_COLOR_PRESETS","r","generateRoleColors","seed","hex","variant","background","backgroundSecondary","backgroundTertiary","text","textSecondary","textTertiary","outline","border","borderLight","primary","primaryForeground","primaryLight","primaryDark","secondary","tint","icon","iconActive","primarySubtle","primaryContainer","primarySubtleForeground","onPrimaryContainer","negative","negativeForeground","onError","negativeSubtle","errorContainer","negativeSubtleForeground","onErrorContainer","contrast50","card","shadow","overlay","buildTheme","isAdaptive","adaptive","Platform","OS","getAdaptiveColors","undefined","colors","mode","gradients","THEME_GRADIENTS","isLight"],"sourceRoot":"../../../src","sources":["theme/build-theme.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Cam16 = void 0;
|
|
7
|
+
var _colorUtils = require("./color-utils.js");
|
|
8
|
+
var _mathUtils = require("./math-utils.js");
|
|
9
|
+
var _viewingConditions = require("./viewing-conditions.js");
|
|
10
|
+
/**
|
|
11
|
+
* Bloom colour engine — CAM16 colour appearance model.
|
|
12
|
+
*
|
|
13
|
+
* Faithful port of Material Color Utilities' `Cam16` (Apache-2.0) into Bloom's
|
|
14
|
+
* own code. A colour is defined by its ARGB AND the viewing conditions; CAM16
|
|
15
|
+
* also exposes CAM16-UCS coordinates (jstar/astar/bstar) for perceptual
|
|
16
|
+
* distance. Underpins the HCT colour space.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
class Cam16 {
|
|
20
|
+
constructor(hue, chroma, j, q, m, s, jstar, astar, bstar) {
|
|
21
|
+
this.hue = hue;
|
|
22
|
+
this.chroma = chroma;
|
|
23
|
+
this.j = j;
|
|
24
|
+
this.q = q;
|
|
25
|
+
this.m = m;
|
|
26
|
+
this.s = s;
|
|
27
|
+
this.jstar = jstar;
|
|
28
|
+
this.astar = astar;
|
|
29
|
+
this.bstar = bstar;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** CAM16-UCS perceptual distance to another colour. */
|
|
33
|
+
distance(other) {
|
|
34
|
+
const dJ = this.jstar - other.jstar;
|
|
35
|
+
const dA = this.astar - other.astar;
|
|
36
|
+
const dB = this.bstar - other.bstar;
|
|
37
|
+
const dEPrime = Math.sqrt(dJ * dJ + dA * dA + dB * dB);
|
|
38
|
+
return 1.41 * Math.pow(dEPrime, 0.63);
|
|
39
|
+
}
|
|
40
|
+
static fromInt(argb) {
|
|
41
|
+
return Cam16.fromIntInViewingConditions(argb, _viewingConditions.ViewingConditions.DEFAULT);
|
|
42
|
+
}
|
|
43
|
+
static fromIntInViewingConditions(argb, vc) {
|
|
44
|
+
const red = (argb & 0x00ff0000) >> 16;
|
|
45
|
+
const green = (argb & 0x0000ff00) >> 8;
|
|
46
|
+
const blue = argb & 0x000000ff;
|
|
47
|
+
const redL = (0, _colorUtils.linearized)(red);
|
|
48
|
+
const greenL = (0, _colorUtils.linearized)(green);
|
|
49
|
+
const blueL = (0, _colorUtils.linearized)(blue);
|
|
50
|
+
const x = 0.41233895 * redL + 0.35762064 * greenL + 0.18051042 * blueL;
|
|
51
|
+
const y = 0.2126 * redL + 0.7152 * greenL + 0.0722 * blueL;
|
|
52
|
+
const z = 0.01932141 * redL + 0.11916382 * greenL + 0.95034478 * blueL;
|
|
53
|
+
return Cam16.fromXyzInViewingConditions(x, y, z, vc);
|
|
54
|
+
}
|
|
55
|
+
static fromXyzInViewingConditions(x, y, z, vc) {
|
|
56
|
+
const rC = 0.401288 * x + 0.650173 * y - 0.051461 * z;
|
|
57
|
+
const gC = -0.250268 * x + 1.204414 * y + 0.045854 * z;
|
|
58
|
+
const bC = -0.002079 * x + 0.048952 * y + 0.953127 * z;
|
|
59
|
+
const rD = vc.rgbD[0] * rC;
|
|
60
|
+
const gD = vc.rgbD[1] * gC;
|
|
61
|
+
const bD = vc.rgbD[2] * bC;
|
|
62
|
+
const rAF = Math.pow(vc.fl * Math.abs(rD) / 100.0, 0.42);
|
|
63
|
+
const gAF = Math.pow(vc.fl * Math.abs(gD) / 100.0, 0.42);
|
|
64
|
+
const bAF = Math.pow(vc.fl * Math.abs(bD) / 100.0, 0.42);
|
|
65
|
+
const rA = (0, _mathUtils.signum)(rD) * 400.0 * rAF / (rAF + 27.13);
|
|
66
|
+
const gA = (0, _mathUtils.signum)(gD) * 400.0 * gAF / (gAF + 27.13);
|
|
67
|
+
const bA = (0, _mathUtils.signum)(bD) * 400.0 * bAF / (bAF + 27.13);
|
|
68
|
+
const a = (11.0 * rA + -12.0 * gA + bA) / 11.0;
|
|
69
|
+
const b = (rA + gA - 2.0 * bA) / 9.0;
|
|
70
|
+
const u = (20.0 * rA + 20.0 * gA + 21.0 * bA) / 20.0;
|
|
71
|
+
const p2 = (40.0 * rA + 20.0 * gA + bA) / 20.0;
|
|
72
|
+
const atan2 = Math.atan2(b, a);
|
|
73
|
+
const atanDegrees = atan2 * 180.0 / Math.PI;
|
|
74
|
+
const hue = atanDegrees < 0 ? atanDegrees + 360.0 : atanDegrees >= 360 ? atanDegrees - 360 : atanDegrees;
|
|
75
|
+
const hueRadians = hue * Math.PI / 180.0;
|
|
76
|
+
const ac = p2 * vc.nbb;
|
|
77
|
+
const J = 100.0 * Math.pow(ac / vc.aw, vc.c * vc.z);
|
|
78
|
+
const Q = 4.0 / vc.c * Math.sqrt(J / 100.0) * (vc.aw + 4.0) * vc.fLRoot;
|
|
79
|
+
const huePrime = hue < 20.14 ? hue + 360 : hue;
|
|
80
|
+
const eHue = 1.0 / 4.0 * (Math.cos(huePrime * Math.PI / 180.0 + 2.0) + 3.8);
|
|
81
|
+
const p1 = 50000.0 / 13.0 * eHue * vc.nc * vc.ncb;
|
|
82
|
+
const t = p1 * Math.sqrt(a * a + b * b) / (u + 0.305);
|
|
83
|
+
const alpha = Math.pow(t, 0.9) * Math.pow(1.64 - Math.pow(0.29, vc.n), 0.73);
|
|
84
|
+
const C = alpha * Math.sqrt(J / 100.0);
|
|
85
|
+
const M = C * vc.fLRoot;
|
|
86
|
+
const s = 50.0 * Math.sqrt(alpha * vc.c / (vc.aw + 4.0));
|
|
87
|
+
const jstar = (1.0 + 100.0 * 0.007) * J / (1.0 + 0.007 * J);
|
|
88
|
+
const mstar = Math.log(1.0 + 0.0228 * M) / 0.0228;
|
|
89
|
+
const astar = mstar * Math.cos(hueRadians);
|
|
90
|
+
const bstar = mstar * Math.sin(hueRadians);
|
|
91
|
+
return new Cam16(hue, C, J, Q, M, s, jstar, astar, bstar);
|
|
92
|
+
}
|
|
93
|
+
static fromJch(j, c, h) {
|
|
94
|
+
return Cam16.fromJchInViewingConditions(j, c, h, _viewingConditions.ViewingConditions.DEFAULT);
|
|
95
|
+
}
|
|
96
|
+
static fromJchInViewingConditions(j, c, h, vc) {
|
|
97
|
+
const q = 4.0 / vc.c * Math.sqrt(j / 100.0) * (vc.aw + 4.0) * vc.fLRoot;
|
|
98
|
+
const m = c * vc.fLRoot;
|
|
99
|
+
const alpha = c / Math.sqrt(j / 100.0);
|
|
100
|
+
const s = 50.0 * Math.sqrt(alpha * vc.c / (vc.aw + 4.0));
|
|
101
|
+
const hueRadians = h * Math.PI / 180.0;
|
|
102
|
+
const jstar = (1.0 + 100.0 * 0.007) * j / (1.0 + 0.007 * j);
|
|
103
|
+
const mstar = 1.0 / 0.0228 * Math.log(1.0 + 0.0228 * m);
|
|
104
|
+
const astar = mstar * Math.cos(hueRadians);
|
|
105
|
+
const bstar = mstar * Math.sin(hueRadians);
|
|
106
|
+
return new Cam16(h, c, j, q, m, s, jstar, astar, bstar);
|
|
107
|
+
}
|
|
108
|
+
static fromUcs(jstar, astar, bstar) {
|
|
109
|
+
return Cam16.fromUcsInViewingConditions(jstar, astar, bstar, _viewingConditions.ViewingConditions.DEFAULT);
|
|
110
|
+
}
|
|
111
|
+
static fromUcsInViewingConditions(jstar, astar, bstar, vc) {
|
|
112
|
+
const a = astar;
|
|
113
|
+
const b = bstar;
|
|
114
|
+
const m = Math.sqrt(a * a + b * b);
|
|
115
|
+
const M = (Math.exp(m * 0.0228) - 1.0) / 0.0228;
|
|
116
|
+
const c = M / vc.fLRoot;
|
|
117
|
+
let h = Math.atan2(b, a) * (180.0 / Math.PI);
|
|
118
|
+
if (h < 0.0) h += 360.0;
|
|
119
|
+
const j = jstar / (1 - (jstar - 100) * 0.007);
|
|
120
|
+
return Cam16.fromJchInViewingConditions(j, c, h, vc);
|
|
121
|
+
}
|
|
122
|
+
toInt() {
|
|
123
|
+
return this.viewed(_viewingConditions.ViewingConditions.DEFAULT);
|
|
124
|
+
}
|
|
125
|
+
viewed(vc) {
|
|
126
|
+
const xyz = this.xyzInViewingConditions(vc);
|
|
127
|
+
return (0, _colorUtils.argbFromXyz)(xyz[0], xyz[1], xyz[2]);
|
|
128
|
+
}
|
|
129
|
+
xyzInViewingConditions(vc) {
|
|
130
|
+
const alpha = this.chroma === 0.0 || this.j === 0.0 ? 0.0 : this.chroma / Math.sqrt(this.j / 100.0);
|
|
131
|
+
const t = Math.pow(alpha / Math.pow(1.64 - Math.pow(0.29, vc.n), 0.73), 1.0 / 0.9);
|
|
132
|
+
const hRad = this.hue * Math.PI / 180.0;
|
|
133
|
+
const eHue = 0.25 * (Math.cos(hRad + 2.0) + 3.8);
|
|
134
|
+
const ac = vc.aw * Math.pow(this.j / 100.0, 1.0 / vc.c / vc.z);
|
|
135
|
+
const p1 = eHue * (50000.0 / 13.0) * vc.nc * vc.ncb;
|
|
136
|
+
const p2 = ac / vc.nbb;
|
|
137
|
+
const hSin = Math.sin(hRad);
|
|
138
|
+
const hCos = Math.cos(hRad);
|
|
139
|
+
const gamma = 23.0 * (p2 + 0.305) * t / (23.0 * p1 + 11.0 * t * hCos + 108.0 * t * hSin);
|
|
140
|
+
const a = gamma * hCos;
|
|
141
|
+
const b = gamma * hSin;
|
|
142
|
+
const rA = (460.0 * p2 + 451.0 * a + 288.0 * b) / 1403.0;
|
|
143
|
+
const gA = (460.0 * p2 - 891.0 * a - 261.0 * b) / 1403.0;
|
|
144
|
+
const bA = (460.0 * p2 - 220.0 * a - 6300.0 * b) / 1403.0;
|
|
145
|
+
const rCBase = Math.max(0, 27.13 * Math.abs(rA) / (400.0 - Math.abs(rA)));
|
|
146
|
+
const rC = (0, _mathUtils.signum)(rA) * (100.0 / vc.fl) * Math.pow(rCBase, 1.0 / 0.42);
|
|
147
|
+
const gCBase = Math.max(0, 27.13 * Math.abs(gA) / (400.0 - Math.abs(gA)));
|
|
148
|
+
const gC = (0, _mathUtils.signum)(gA) * (100.0 / vc.fl) * Math.pow(gCBase, 1.0 / 0.42);
|
|
149
|
+
const bCBase = Math.max(0, 27.13 * Math.abs(bA) / (400.0 - Math.abs(bA)));
|
|
150
|
+
const bC = (0, _mathUtils.signum)(bA) * (100.0 / vc.fl) * Math.pow(bCBase, 1.0 / 0.42);
|
|
151
|
+
const rF = rC / vc.rgbD[0];
|
|
152
|
+
const gF = gC / vc.rgbD[1];
|
|
153
|
+
const bF = bC / vc.rgbD[2];
|
|
154
|
+
const x = 1.86206786 * rF - 1.01125463 * gF + 0.14918677 * bF;
|
|
155
|
+
const y = 0.38752654 * rF + 0.62144744 * gF - 0.00897398 * bF;
|
|
156
|
+
const z = -0.0158415 * rF - 0.03412294 * gF + 1.04996444 * bF;
|
|
157
|
+
return [x, y, z];
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
exports.Cam16 = Cam16;
|
|
161
|
+
//# sourceMappingURL=cam16.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_colorUtils","require","_mathUtils","_viewingConditions","Cam16","constructor","hue","chroma","j","q","m","s","jstar","astar","bstar","distance","other","dJ","dA","dB","dEPrime","Math","sqrt","pow","fromInt","argb","fromIntInViewingConditions","ViewingConditions","DEFAULT","vc","red","green","blue","redL","linearized","greenL","blueL","x","y","z","fromXyzInViewingConditions","rC","gC","bC","rD","rgbD","gD","bD","rAF","fl","abs","gAF","bAF","rA","signum","gA","bA","a","b","u","p2","atan2","atanDegrees","PI","hueRadians","ac","nbb","J","aw","c","Q","fLRoot","huePrime","eHue","cos","p1","nc","ncb","t","alpha","n","C","M","mstar","log","sin","fromJch","h","fromJchInViewingConditions","fromUcs","fromUcsInViewingConditions","exp","toInt","viewed","xyz","xyzInViewingConditions","argbFromXyz","hRad","hSin","hCos","gamma","rCBase","max","gCBase","bCBase","rF","gF","bF","exports"],"sourceRoot":"../../../../src","sources":["theme/color-engine/cam16.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ColorRole = void 0;
|
|
7
|
+
var _contrast = require("./contrast.js");
|
|
8
|
+
var _mathUtils = require("./math-utils.js");
|
|
9
|
+
/**
|
|
10
|
+
* Bloom colour engine — a colour role.
|
|
11
|
+
*
|
|
12
|
+
* Faithful port of Material Color Utilities' `DynamicColor` (Apache-2.0),
|
|
13
|
+
* renamed to Bloom's own `ColorRole`. A role is a *recipe*, not a fixed colour:
|
|
14
|
+
* a palette + a base tone + (optionally) a background to contrast against and a
|
|
15
|
+
* paired role to keep tonal distance from. `getArgb(scheme)` resolves the recipe
|
|
16
|
+
* against a scheme's palettes, dark mode and contrast level into a concrete
|
|
17
|
+
* colour — guaranteeing legibility. This is the heart of the system.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
class ColorRole {
|
|
21
|
+
hctCache = new Map();
|
|
22
|
+
static fromPalette(args) {
|
|
23
|
+
return new ColorRole(args);
|
|
24
|
+
}
|
|
25
|
+
constructor(args) {
|
|
26
|
+
this.name = args.name ?? '';
|
|
27
|
+
this.palette = args.palette;
|
|
28
|
+
this.tone = args.tone;
|
|
29
|
+
this.isBackground = args.isBackground ?? false;
|
|
30
|
+
this.background = args.background;
|
|
31
|
+
this.secondBackground = args.secondBackground;
|
|
32
|
+
this.contrastCurve = args.contrastCurve;
|
|
33
|
+
this.toneDeltaPair = args.toneDeltaPair;
|
|
34
|
+
if (!args.background && args.secondBackground) {
|
|
35
|
+
throw new Error(`Color ${this.name} has secondBackground defined, but background is not.`);
|
|
36
|
+
}
|
|
37
|
+
if (!args.background && args.contrastCurve) {
|
|
38
|
+
throw new Error(`Color ${this.name} has contrastCurve defined, but background is not.`);
|
|
39
|
+
}
|
|
40
|
+
if (args.background && !args.contrastCurve) {
|
|
41
|
+
throw new Error(`Color ${this.name} has background defined, but contrastCurve is not.`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
getArgb(scheme) {
|
|
45
|
+
return this.getHct(scheme).toInt();
|
|
46
|
+
}
|
|
47
|
+
getHct(scheme) {
|
|
48
|
+
const cached = this.hctCache.get(scheme);
|
|
49
|
+
if (cached != null) return cached;
|
|
50
|
+
const tone = this.getTone(scheme);
|
|
51
|
+
const answer = this.palette(scheme).getHct(tone);
|
|
52
|
+
if (this.hctCache.size > 4) this.hctCache.clear();
|
|
53
|
+
this.hctCache.set(scheme, answer);
|
|
54
|
+
return answer;
|
|
55
|
+
}
|
|
56
|
+
getTone(scheme) {
|
|
57
|
+
const decreasingContrast = scheme.contrastLevel < 0;
|
|
58
|
+
if (this.toneDeltaPair) {
|
|
59
|
+
const pair = this.toneDeltaPair(scheme);
|
|
60
|
+
const {
|
|
61
|
+
roleA,
|
|
62
|
+
roleB,
|
|
63
|
+
delta,
|
|
64
|
+
polarity,
|
|
65
|
+
stayTogether
|
|
66
|
+
} = pair;
|
|
67
|
+
const bg = this.background(scheme);
|
|
68
|
+
const bgTone = bg.getTone(scheme);
|
|
69
|
+
const aIsNearer = polarity === 'nearer' || polarity === 'lighter' && !scheme.isDark || polarity === 'darker' && scheme.isDark;
|
|
70
|
+
const nearer = aIsNearer ? roleA : roleB;
|
|
71
|
+
const farther = aIsNearer ? roleB : roleA;
|
|
72
|
+
const amNearer = this.name === nearer.name;
|
|
73
|
+
const expansionDir = scheme.isDark ? 1 : -1;
|
|
74
|
+
const nContrast = nearer.contrastCurve.get(scheme.contrastLevel);
|
|
75
|
+
const fContrast = farther.contrastCurve.get(scheme.contrastLevel);
|
|
76
|
+
const nInitialTone = nearer.tone(scheme);
|
|
77
|
+
let nTone = (0, _contrast.ratioOfTones)(bgTone, nInitialTone) >= nContrast ? nInitialTone : ColorRole.foregroundTone(bgTone, nContrast);
|
|
78
|
+
const fInitialTone = farther.tone(scheme);
|
|
79
|
+
let fTone = (0, _contrast.ratioOfTones)(bgTone, fInitialTone) >= fContrast ? fInitialTone : ColorRole.foregroundTone(bgTone, fContrast);
|
|
80
|
+
if (decreasingContrast) {
|
|
81
|
+
nTone = ColorRole.foregroundTone(bgTone, nContrast);
|
|
82
|
+
fTone = ColorRole.foregroundTone(bgTone, fContrast);
|
|
83
|
+
}
|
|
84
|
+
if ((fTone - nTone) * expansionDir >= delta) {
|
|
85
|
+
// constraint already satisfied
|
|
86
|
+
} else {
|
|
87
|
+
fTone = (0, _mathUtils.clampDouble)(0, 100, nTone + delta * expansionDir);
|
|
88
|
+
if ((fTone - nTone) * expansionDir >= delta) {
|
|
89
|
+
// satisfied after expanding farther
|
|
90
|
+
} else {
|
|
91
|
+
nTone = (0, _mathUtils.clampDouble)(0, 100, fTone - delta * expansionDir);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (50 <= nTone && nTone < 60) {
|
|
95
|
+
if (expansionDir > 0) {
|
|
96
|
+
nTone = 60;
|
|
97
|
+
fTone = Math.max(fTone, nTone + delta * expansionDir);
|
|
98
|
+
} else {
|
|
99
|
+
nTone = 49;
|
|
100
|
+
fTone = Math.min(fTone, nTone + delta * expansionDir);
|
|
101
|
+
}
|
|
102
|
+
} else if (50 <= fTone && fTone < 60) {
|
|
103
|
+
if (stayTogether) {
|
|
104
|
+
if (expansionDir > 0) {
|
|
105
|
+
nTone = 60;
|
|
106
|
+
fTone = Math.max(fTone, nTone + delta * expansionDir);
|
|
107
|
+
} else {
|
|
108
|
+
nTone = 49;
|
|
109
|
+
fTone = Math.min(fTone, nTone + delta * expansionDir);
|
|
110
|
+
}
|
|
111
|
+
} else if (expansionDir > 0) {
|
|
112
|
+
fTone = 60;
|
|
113
|
+
} else {
|
|
114
|
+
fTone = 49;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return amNearer ? nTone : fTone;
|
|
118
|
+
}
|
|
119
|
+
let answer = this.tone(scheme);
|
|
120
|
+
if (this.background == null) return answer;
|
|
121
|
+
const bgTone = this.background(scheme).getTone(scheme);
|
|
122
|
+
const desiredRatio = this.contrastCurve.get(scheme.contrastLevel);
|
|
123
|
+
if ((0, _contrast.ratioOfTones)(bgTone, answer) >= desiredRatio) {
|
|
124
|
+
// already contrasts enough
|
|
125
|
+
} else {
|
|
126
|
+
answer = ColorRole.foregroundTone(bgTone, desiredRatio);
|
|
127
|
+
}
|
|
128
|
+
if (decreasingContrast) {
|
|
129
|
+
answer = ColorRole.foregroundTone(bgTone, desiredRatio);
|
|
130
|
+
}
|
|
131
|
+
if (this.isBackground && 50 <= answer && answer < 60) {
|
|
132
|
+
answer = (0, _contrast.ratioOfTones)(49, bgTone) >= desiredRatio ? 49 : 60;
|
|
133
|
+
}
|
|
134
|
+
if (this.secondBackground) {
|
|
135
|
+
const bg1 = this.background;
|
|
136
|
+
const bg2 = this.secondBackground;
|
|
137
|
+
const bgTone1 = bg1(scheme).getTone(scheme);
|
|
138
|
+
const bgTone2 = bg2(scheme).getTone(scheme);
|
|
139
|
+
const upper = Math.max(bgTone1, bgTone2);
|
|
140
|
+
const lower = Math.min(bgTone1, bgTone2);
|
|
141
|
+
if ((0, _contrast.ratioOfTones)(upper, answer) >= desiredRatio && (0, _contrast.ratioOfTones)(lower, answer) >= desiredRatio) {
|
|
142
|
+
return answer;
|
|
143
|
+
}
|
|
144
|
+
const lightOption = (0, _contrast.lighter)(upper, desiredRatio);
|
|
145
|
+
const darkOption = (0, _contrast.darker)(lower, desiredRatio);
|
|
146
|
+
const availables = [];
|
|
147
|
+
if (lightOption !== -1) availables.push(lightOption);
|
|
148
|
+
if (darkOption !== -1) availables.push(darkOption);
|
|
149
|
+
const prefersLight = ColorRole.tonePrefersLightForeground(bgTone1) || ColorRole.tonePrefersLightForeground(bgTone2);
|
|
150
|
+
if (prefersLight) return lightOption < 0 ? 100 : lightOption;
|
|
151
|
+
const onlyAvailable = availables[0];
|
|
152
|
+
if (availables.length === 1 && onlyAvailable !== undefined) return onlyAvailable;
|
|
153
|
+
return darkOption < 0 ? 0 : darkOption;
|
|
154
|
+
}
|
|
155
|
+
return answer;
|
|
156
|
+
}
|
|
157
|
+
static foregroundTone(bgTone, ratio) {
|
|
158
|
+
const lighterTone = (0, _contrast.lighterUnsafe)(bgTone, ratio);
|
|
159
|
+
const darkerTone = (0, _contrast.darkerUnsafe)(bgTone, ratio);
|
|
160
|
+
const lighterRatio = (0, _contrast.ratioOfTones)(lighterTone, bgTone);
|
|
161
|
+
const darkerRatio = (0, _contrast.ratioOfTones)(darkerTone, bgTone);
|
|
162
|
+
const preferLighter = ColorRole.tonePrefersLightForeground(bgTone);
|
|
163
|
+
if (preferLighter) {
|
|
164
|
+
const negligibleDifference = Math.abs(lighterRatio - darkerRatio) < 0.1 && lighterRatio < ratio && darkerRatio < ratio;
|
|
165
|
+
return lighterRatio >= ratio || lighterRatio >= darkerRatio || negligibleDifference ? lighterTone : darkerTone;
|
|
166
|
+
}
|
|
167
|
+
return darkerRatio >= ratio || darkerRatio >= lighterRatio ? darkerTone : lighterTone;
|
|
168
|
+
}
|
|
169
|
+
static tonePrefersLightForeground(tone) {
|
|
170
|
+
return Math.round(tone) < 60.0;
|
|
171
|
+
}
|
|
172
|
+
static toneAllowsLightForeground(tone) {
|
|
173
|
+
return Math.round(tone) <= 49.0;
|
|
174
|
+
}
|
|
175
|
+
static enableLightForeground(tone) {
|
|
176
|
+
if (ColorRole.tonePrefersLightForeground(tone) && !ColorRole.toneAllowsLightForeground(tone)) {
|
|
177
|
+
return 49.0;
|
|
178
|
+
}
|
|
179
|
+
return tone;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
exports.ColorRole = ColorRole;
|
|
183
|
+
//# sourceMappingURL=color-role.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_contrast","require","_mathUtils","ColorRole","hctCache","Map","fromPalette","args","constructor","name","palette","tone","isBackground","background","secondBackground","contrastCurve","toneDeltaPair","Error","getArgb","scheme","getHct","toInt","cached","get","getTone","answer","size","clear","set","decreasingContrast","contrastLevel","pair","roleA","roleB","delta","polarity","stayTogether","bg","bgTone","aIsNearer","isDark","nearer","farther","amNearer","expansionDir","nContrast","fContrast","nInitialTone","nTone","ratioOfTones","foregroundTone","fInitialTone","fTone","clampDouble","Math","max","min","desiredRatio","bg1","bg2","bgTone1","bgTone2","upper","lower","lightOption","lighter","darkOption","darker","availables","push","prefersLight","tonePrefersLightForeground","onlyAvailable","length","undefined","ratio","lighterTone","lighterUnsafe","darkerTone","darkerUnsafe","lighterRatio","darkerRatio","preferLighter","negligibleDifference","abs","round","toneAllowsLightForeground","enableLightForeground","exports"],"sourceRoot":"../../../../src","sources":["theme/color-engine/color-role.ts"],"mappings":"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","ignoreList":[]}
|