@oxyhq/bloom 0.80.0 → 0.82.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/tabs/Tabs.js +153 -15
- package/lib/commonjs/tabs/Tabs.js.map +1 -1
- package/lib/commonjs/theme/color-engine/index.js +6 -0
- package/lib/commonjs/theme/color-engine/index.js.map +1 -1
- package/lib/commonjs/theme/color-engine/scheme-variants.js +29 -1
- package/lib/commonjs/theme/color-engine/scheme-variants.js.map +1 -1
- package/lib/commonjs/theme/color-policy.js +130 -20
- package/lib/commonjs/theme/color-policy.js.map +1 -1
- package/lib/commonjs/theme/color-presets.js +62 -20
- package/lib/commonjs/theme/color-presets.js.map +1 -1
- package/lib/commonjs/theme/color-scope/seed-scope.js +5 -1
- package/lib/commonjs/theme/color-scope/seed-scope.js.map +1 -1
- package/lib/module/tabs/Tabs.js +153 -15
- package/lib/module/tabs/Tabs.js.map +1 -1
- package/lib/module/theme/color-engine/index.js +1 -1
- package/lib/module/theme/color-engine/index.js.map +1 -1
- package/lib/module/theme/color-engine/scheme-variants.js +28 -1
- package/lib/module/theme/color-engine/scheme-variants.js.map +1 -1
- package/lib/module/theme/color-policy.js +129 -20
- package/lib/module/theme/color-policy.js.map +1 -1
- package/lib/module/theme/color-presets.js +62 -20
- package/lib/module/theme/color-presets.js.map +1 -1
- package/lib/module/theme/color-scope/seed-scope.js +6 -2
- package/lib/module/theme/color-scope/seed-scope.js.map +1 -1
- package/lib/typescript/commonjs/tabs/Tabs.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-engine/index.d.ts +1 -1
- package/lib/typescript/commonjs/theme/color-engine/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-engine/scheme-variants.d.ts +13 -1
- package/lib/typescript/commonjs/theme/color-engine/scheme-variants.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-policy.d.ts +6 -0
- package/lib/typescript/commonjs/theme/color-policy.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-presets.d.ts +1 -1
- package/lib/typescript/commonjs/theme/color-presets.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-scope/seed-scope.d.ts.map +1 -1
- package/lib/typescript/module/tabs/Tabs.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-engine/index.d.ts +1 -1
- package/lib/typescript/module/theme/color-engine/index.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-engine/scheme-variants.d.ts +13 -1
- package/lib/typescript/module/theme/color-engine/scheme-variants.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-policy.d.ts +6 -0
- package/lib/typescript/module/theme/color-policy.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-presets.d.ts +1 -1
- package/lib/typescript/module/theme/color-presets.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-scope/seed-scope.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/BloomThemeProvider.test.tsx +1 -1
- package/src/__tests__/Tabs.test.tsx +286 -10
- package/src/__tests__/theme.test.ts +4 -3
- package/src/tabs/Tabs.tsx +172 -12
- package/src/theme/__tests__/__fixtures__/golden-resolved-tokens.json +1273 -673
- package/src/theme/__tests__/__snapshots__/visual-gallery.test.tsx.snap +775 -425
- package/src/theme/__tests__/policy-legibility.test.ts +55 -13
- package/src/theme/color-engine/index.ts +1 -1
- package/src/theme/color-engine/scheme-variants.ts +38 -1
- package/src/theme/color-policy.ts +147 -24
- package/src/theme/color-presets.ts +44 -17
- package/src/theme/color-scope/seed-scope.ts +6 -2
|
@@ -80,10 +80,31 @@ const foregroundFor = argb => contrastOf(argb, true) >= AA ? 'rgb(255 255 255)'
|
|
|
80
80
|
const noLegibleForeground = argb => contrastOf(argb, true) < AA && contrastOf(argb, false) < AA;
|
|
81
81
|
|
|
82
82
|
/** The tone a white-label fill sits at in LIGHT mode. */
|
|
83
|
-
const
|
|
83
|
+
const FILL_TONE_FLOOR = 45;
|
|
84
84
|
|
|
85
85
|
/** The tone a white-label fill sits at in DARK: the ceiling white text allows. */
|
|
86
|
-
const
|
|
86
|
+
const FILL_TONE_SEARCH_CEILING = 56;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* How much DEEPER the same brand sits on a light page than on a dark one.
|
|
90
|
+
*
|
|
91
|
+
* Not decoration: a colour on a near-white page has nothing to read against, so
|
|
92
|
+
* the mode difference is what makes a theme a theme rather than one palette shown
|
|
93
|
+
* twice. Dropping it is a regression that looks like a simplification — light and
|
|
94
|
+
* dark collapse onto the same fill for every seed that is not already bright, and
|
|
95
|
+
* the two modes stop being distinguishable at all.
|
|
96
|
+
*/
|
|
97
|
+
const LIGHT_DEPTH_STEP = 5;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* How deep a light-mode fill may go. Deliberately BELOW the search's lower bound,
|
|
101
|
+
* which those two used to share — and sharing them silently voided the depth step
|
|
102
|
+
* for any seed whose dark fill already sits at that bound. A high-chroma seed is
|
|
103
|
+
* exactly that case: pink loses its white label above tone 45, so dark cannot rise
|
|
104
|
+
* to make room and light must descend instead, or the two modes render the
|
|
105
|
+
* identical fill.
|
|
106
|
+
*/
|
|
107
|
+
const LIGHT_FILL_FLOOR = 40;
|
|
87
108
|
|
|
88
109
|
/** How far a fill may be dragged from its natural tone before the colour is lost. */
|
|
89
110
|
const TONE_BUDGET = 25;
|
|
@@ -125,6 +146,35 @@ const SUBTLE_ALPHA = {
|
|
|
125
146
|
dark: 0.24
|
|
126
147
|
};
|
|
127
148
|
|
|
149
|
+
/**
|
|
150
|
+
* A seed at or below this chroma has no colour to derive from, so the whole
|
|
151
|
+
* palette goes greyscale — the black-and-white theme. Keyed on the seed rather
|
|
152
|
+
* than on a flag, so picking any grey in a colour wheel lands there too instead
|
|
153
|
+
* of on a nearly-grey approximation of it.
|
|
154
|
+
*/
|
|
155
|
+
const MONOCHROME_MAX_CHROMA = 6;
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Whether a seed carries no colour to derive a theme from — the one authority for
|
|
159
|
+
* that question, so the policy and the scheme choice can never disagree about a
|
|
160
|
+
* given seed and produce a grey palette wearing chromatic surfaces.
|
|
161
|
+
*/
|
|
162
|
+
export function isColourlessSeed(seedHex) {
|
|
163
|
+
return Hct.fromInt(argbFromHex(seedHex)).chroma <= MONOCHROME_MAX_CHROMA;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/** Where a monochrome brand fill sits: near-black on a white page, near-white on a black one. */
|
|
167
|
+
const MONOCHROME_FILL_TONE = {
|
|
168
|
+
light: 12,
|
|
169
|
+
dark: 94
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
/** The quiet member of a monochrome trio — the only one that is actually grey. */
|
|
173
|
+
const MONOCHROME_SECONDARY_TONE = {
|
|
174
|
+
light: 36,
|
|
175
|
+
dark: 72
|
|
176
|
+
};
|
|
177
|
+
|
|
128
178
|
/** Split-complementary: the two accents sit either side of the seed's complement. */
|
|
129
179
|
const SPLIT_ROTATIONS = [150, 210];
|
|
130
180
|
|
|
@@ -195,6 +245,47 @@ function vividHueNear(hue) {
|
|
|
195
245
|
return bestChroma - baseChroma >= VIVID_SNAP_MIN_GAIN ? bestHue : hue;
|
|
196
246
|
}
|
|
197
247
|
|
|
248
|
+
/**
|
|
249
|
+
* The most vivid tone a palette reaches while a WHITE label still clears AA on
|
|
250
|
+
* it — searched per HUE instead of assumed.
|
|
251
|
+
*
|
|
252
|
+
* A single tone for every hue leaves chroma on the table for some and takes it
|
|
253
|
+
* from others, because the sRGB gamut is not a cylinder: from tone 45 upward an
|
|
254
|
+
* orange keeps gaining chroma until white runs out at ~49.5 (59 -> 84), while a
|
|
255
|
+
* violet has already passed its peak and LOSES chroma over the same interval
|
|
256
|
+
* (91 -> 86). The old flat 45 spent none of the contrast headroom it had — every
|
|
257
|
+
* preset sat at 5.38 when 4.5 was the requirement — and orange paid for that
|
|
258
|
+
* twice, since its hue is also one of the gamut's narrow ones.
|
|
259
|
+
*
|
|
260
|
+
* The floor is what keeps this from trading lightness for chroma: a hue that
|
|
261
|
+
* peaks far below 45 stays at 45 rather than descending into a near-black slab
|
|
262
|
+
* that happens to be saturated. So the search can only ever improve a fill or
|
|
263
|
+
* leave it exactly where it was.
|
|
264
|
+
*
|
|
265
|
+
* Contrast is measured on the QUANTIZED colour, not the engine's continuous
|
|
266
|
+
* tone-ratio: an earlier iteration chose tones by the latter and shipped 135
|
|
267
|
+
* pairs at a measured 4.49.
|
|
268
|
+
*/
|
|
269
|
+
function vividLegibleTone(palette) {
|
|
270
|
+
let bestTone = FILL_TONE_FLOOR;
|
|
271
|
+
let bestChroma = -1;
|
|
272
|
+
for (let tone = FILL_TONE_FLOOR; tone <= FILL_TONE_SEARCH_CEILING; tone += 0.5) {
|
|
273
|
+
const argb = palette.tone(tone);
|
|
274
|
+
if (contrastOf(argb, true) < AA) continue;
|
|
275
|
+
const chroma = Hct.fromInt(argb).chroma;
|
|
276
|
+
// A tie keeps the DEEPEST tone. Ties are common rather than exotic — any seed
|
|
277
|
+
// whose chroma sits below the gamut ceiling across this whole range has a flat
|
|
278
|
+
// curve here — and breaking them toward the lightest end instead changes no
|
|
279
|
+
// preset's output, because the light-mode floor below already supplies the
|
|
280
|
+
// separation that would have bought. Mutation-checked, not assumed.
|
|
281
|
+
if (chroma > bestChroma) {
|
|
282
|
+
bestChroma = chroma;
|
|
283
|
+
bestTone = tone;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return bestTone;
|
|
287
|
+
}
|
|
288
|
+
|
|
198
289
|
/**
|
|
199
290
|
* The tone a BRAND fill sits at.
|
|
200
291
|
*
|
|
@@ -204,7 +295,8 @@ function vividHueNear(hue) {
|
|
|
204
295
|
* ceasing to be itself: yellow turns to brown and lime to moss. Those keep their
|
|
205
296
|
* own tone and take a black label instead, which is what a bright yellow button
|
|
206
297
|
* wants anyway. The 25-tone budget is what separates the two cases, and it is
|
|
207
|
-
* why 11 of the 13 presets carry white and exactly the two light ones
|
|
298
|
+
* why 11 of the 13 chromatic presets carry white and exactly the two light ones
|
|
299
|
+
* do not. (`mono` sits outside this rule — see MONOCHROME_FILL_TONE.)
|
|
208
300
|
*/
|
|
209
301
|
function whiteLabelTone(palette, seedTone, isDark) {
|
|
210
302
|
// LIGHT: every fill comes down, no exemption. On a near-white page a bright
|
|
@@ -212,11 +304,11 @@ function whiteLabelTone(palette, seedTone, isDark) {
|
|
|
212
304
|
// smear there, indistinguishable from the same colour in dark, which is not a
|
|
213
305
|
// theme at all. Coming down is what makes faircoin a deep green in light and a
|
|
214
306
|
// bright lime in dark.
|
|
215
|
-
if (!isDark) return
|
|
307
|
+
if (!isDark) return Math.max(LIGHT_FILL_FLOOR, vividLegibleTone(palette) - LIGHT_DEPTH_STEP);
|
|
216
308
|
// DARK: the budget applies. Most brands come down to where white fits, but a
|
|
217
309
|
// seed that is already light cannot without ceasing to be itself, so it keeps
|
|
218
310
|
// its own tone and takes a black label. That is the eleven-and-two pattern.
|
|
219
|
-
const candidate = Math.max(
|
|
311
|
+
const candidate = Math.max(vividLegibleTone(palette), seedTone - TONE_BUDGET);
|
|
220
312
|
return contrastOf(palette.tone(candidate), true) >= AA ? candidate : Math.max(seedTone, DARK_SEED_FLOOR);
|
|
221
313
|
}
|
|
222
314
|
|
|
@@ -227,10 +319,10 @@ function whiteLabelTone(palette, seedTone, isDark) {
|
|
|
227
319
|
* peaks dark comes down and carries white.
|
|
228
320
|
*/
|
|
229
321
|
function accentTone(hue, isDark) {
|
|
230
|
-
if (!isDark) return LIGHT_FILL_TONE;
|
|
231
|
-
const peak = Math.max(peakTone(hue), DARK_ACCENT_FLOOR);
|
|
232
322
|
const palette = TonalPalette.fromHueAndChroma(hue, ACCENT_CHROMA);
|
|
233
|
-
|
|
323
|
+
if (!isDark) return Math.max(LIGHT_FILL_FLOOR, vividLegibleTone(palette) - LIGHT_DEPTH_STEP);
|
|
324
|
+
const peak = Math.max(peakTone(hue), DARK_ACCENT_FLOOR);
|
|
325
|
+
const candidate = Math.max(vividLegibleTone(palette), peak - TONE_BUDGET);
|
|
234
326
|
return contrastOf(palette.tone(candidate), true) >= AA ? candidate : peak;
|
|
235
327
|
}
|
|
236
328
|
|
|
@@ -296,17 +388,26 @@ export function buildPolicyTokens(seedHex, isDark, roles, pinned = {}) {
|
|
|
296
388
|
// tone <= 49, so that is the ceiling — in dark as much as in light. Letting the
|
|
297
389
|
// dark fill sit at the seed's own tone instead makes it brighter, but every one
|
|
298
390
|
// of those labels turns black, which costs more than the brightness buys.
|
|
299
|
-
|
|
300
|
-
//
|
|
301
|
-
|
|
302
|
-
|
|
391
|
+
const monochrome = seed.chroma <= MONOCHROME_MAX_CHROMA;
|
|
392
|
+
// BOTH modes key off the seed itself, so the fill carries the brand's SATURATION
|
|
393
|
+
// as well as its hue. Light used to force the hue to maximum chroma, which reads
|
|
394
|
+
// as "the seed only chose a hue" — and that silently renames a colour: a muted
|
|
395
|
+
// blue-grey seed resolved to a vivid cyan, and a brown seed to an orange, since
|
|
396
|
+
// both differ from a saturated neighbour by chroma alone. A deliberately soft
|
|
397
|
+
// brand now stays soft instead of being argued with.
|
|
398
|
+
// A monochrome seed has no chroma to preserve either way, and its fill goes to
|
|
399
|
+
// the far end of the scale rather than the white-label ceiling: a mid-grey
|
|
400
|
+
// button reads as disabled, where near-black on white reads as the primary
|
|
401
|
+
// action.
|
|
402
|
+
const brandPalette = monochrome ? TonalPalette.fromHueAndChroma(0, 0) : TonalPalette.fromInt(argbFromHex(seedHex));
|
|
403
|
+
const primary = fillPair(brandPalette, monochrome ? isDark ? MONOCHROME_FILL_TONE.dark : MONOCHROME_FILL_TONE.light : whiteLabelTone(brandPalette, seed.tone, isDark));
|
|
303
404
|
const tokens = {
|
|
304
405
|
'--primary': primary.fill,
|
|
305
406
|
'--primary-foreground': primary.foreground,
|
|
306
407
|
// The accent legible as TEXT on the page surface — the job M3's `primary`
|
|
307
408
|
// does correctly, and which the fill must stop trying to do at the same time.
|
|
308
409
|
'--primary-text': roles.primary,
|
|
309
|
-
'--primary-subtle': rgba(TonalPalette.fromHueAndChroma(seed.hue, 200).tone(SUBTLE_SOURCE_TONE), isDark ? SUBTLE_ALPHA.dark : SUBTLE_ALPHA.light),
|
|
410
|
+
'--primary-subtle': rgba(TonalPalette.fromHueAndChroma(seed.hue, monochrome ? 0 : 200).tone(SUBTLE_SOURCE_TONE), isDark ? SUBTLE_ALPHA.dark : SUBTLE_ALPHA.light),
|
|
310
411
|
'--ring': roles.primary,
|
|
311
412
|
// `--card` is the one surface MAPPING the policy changes.
|
|
312
413
|
// `surfaceContainerLowest` is M3's RECESSED step: in dark it sits at tone 4
|
|
@@ -316,7 +417,7 @@ export function buildPolicyTokens(seedHex, isDark, roles, pinned = {}) {
|
|
|
316
417
|
'--card': isDark ? roles.surfaceContainer : roles.surfaceContainerLowest,
|
|
317
418
|
// A touch darker than M3's page background: near-white reads as unfinished
|
|
318
419
|
// next to the card, and the extra step gives the surface ramp somewhere to sit.
|
|
319
|
-
'--background': rgb(TonalPalette.fromHueAndChroma(seed.hue, 10).tone(isDark ? 4 : 96)),
|
|
420
|
+
'--background': rgb(TonalPalette.fromHueAndChroma(seed.hue, monochrome ? 0 : 10).tone(isDark ? 4 : 96)),
|
|
320
421
|
// `--accent` stays what every consumer actually uses it for: a hover surface.
|
|
321
422
|
'--accent': roles.surfaceContainerHigh,
|
|
322
423
|
'--accent-foreground': roles.onSurfaceVariant
|
|
@@ -327,9 +428,11 @@ export function buildPolicyTokens(seedHex, isDark, roles, pinned = {}) {
|
|
|
327
428
|
const hue = pin !== undefined ? Hct.fromInt(argbFromHex(pin)).hue : hues[role];
|
|
328
429
|
// One hue, three palettes. Every member shares it, so the family still reads
|
|
329
430
|
// as one colour; only how loudly each speaks differs.
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
const
|
|
431
|
+
// A monochrome theme has no accents to rotate to; the trio becomes a ladder
|
|
432
|
+
// of greys, which still separates a standout button from a quiet one.
|
|
433
|
+
const fillPalette = TonalPalette.fromHueAndChroma(hue, monochrome ? 0 : ACCENT_CHROMA);
|
|
434
|
+
const textPalette = TonalPalette.fromHueAndChroma(hue, monochrome ? 0 : TEXT_CHROMA);
|
|
435
|
+
const vividPalette = TonalPalette.fromHueAndChroma(hue, monochrome ? 0 : 200);
|
|
333
436
|
// DARK sits at the hue's peak tone, floored by the same rule the brand fill
|
|
334
437
|
// uses: some hues peak dark (violet at 35), and rendering them there gives a
|
|
335
438
|
// slab rather than a highlight. LIGHT goes deep like every other fill, but
|
|
@@ -345,7 +448,12 @@ export function buildPolicyTokens(seedHex, isDark, roles, pinned = {}) {
|
|
|
345
448
|
// black. The accent chroma cap already keeps these hues out of neon territory,
|
|
346
449
|
// and the hue itself is the caller's brand rather than ours to move. The
|
|
347
450
|
// analyzer still runs where it was designed to, inside `color-roles`.
|
|
348
|
-
|
|
451
|
+
// Monochrome keeps `tertiary` AT the brand fill rather than a step off it:
|
|
452
|
+
// tertiary is what a compose button and a FAB paint with, and those are the
|
|
453
|
+
// primary action — a step of grey between them and `primary` reads as two
|
|
454
|
+
// buttons disagreeing, not as hierarchy. `secondary` carries the whole
|
|
455
|
+
// demotion instead.
|
|
456
|
+
const tone = monochrome ? role === 'tertiary' ? isDark ? MONOCHROME_FILL_TONE.dark : MONOCHROME_FILL_TONE.light : isDark ? MONOCHROME_SECONDARY_TONE.dark : MONOCHROME_SECONDARY_TONE.light : accentTone(hue, isDark);
|
|
349
457
|
const pair = fillPair(fillPalette, tone);
|
|
350
458
|
tokens[`--${role}`] = pair.fill;
|
|
351
459
|
tokens[`--${role}-foreground`] = pair.foreground;
|
|
@@ -357,7 +465,8 @@ export function buildPolicyTokens(seedHex, isDark, roles, pinned = {}) {
|
|
|
357
465
|
// The old ramp drew all five from the primary/secondary/tertiary trio, which
|
|
358
466
|
// spans ~35 degrees, so adjacent series were indistinguishable.
|
|
359
467
|
for (let i = 0; i < 5; i += 1) {
|
|
360
|
-
|
|
468
|
+
// Greyscale charts spread by TONE instead of hue — the only axis left.
|
|
469
|
+
tokens[`--chart-${i + 1}`] = monochrome ? rgb(TonalPalette.fromHueAndChroma(0, 0).tone(isDark ? 40 + i * 13 : 78 - i * 13)) : rgb(TonalPalette.fromHueAndChroma((seed.hue + i * 72) % 360, 60).tone(isDark ? 72 : 48));
|
|
361
470
|
}
|
|
362
471
|
|
|
363
472
|
// The status family, themed per mode. The four frozen hexes it replaces all
|
|
@@ -367,7 +476,7 @@ export function buildPolicyTokens(seedHex, isDark, roles, pinned = {}) {
|
|
|
367
476
|
for (const [role, hex] of Object.entries(STATUS_SEEDS)) {
|
|
368
477
|
const status = Hct.fromInt(argbFromHex(hex));
|
|
369
478
|
const palette = TonalPalette.fromHueAndChroma(status.hue, status.chroma);
|
|
370
|
-
const pair = fillPair(palette, isDark ?
|
|
479
|
+
const pair = fillPair(palette, isDark ? vividLegibleTone(palette) : Math.max(LIGHT_FILL_FLOOR, vividLegibleTone(palette) - LIGHT_DEPTH_STEP));
|
|
371
480
|
tokens[`--${role}`] = pair.fill;
|
|
372
481
|
tokens[`--${role}-foreground`] = pair.foreground;
|
|
373
482
|
tokens[`--${role}-text`] = rgb(TonalPalette.fromHueAndChroma(status.hue, TEXT_CHROMA).tone(isDark ? TEXT_TONE.dark : TEXT_TONE.light));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["argbFromHex","Hct","TonalPalette","blueFromArgb","greenFromArgb","redFromArgb","STATUS_SEEDS","success","error","warning","info","AA","rgb","argb","rgba","alpha","contrastOf","onWhite","channel","v","c","Math","pow","luminance","foregroundFor","noLegibleForeground","LIGHT_FILL_TONE","DARK_FILL_TONE","TONE_BUDGET","DARK_SEED_FLOOR","DARK_ACCENT_FLOOR","ACCENT_CHROMA","TEXT_TONE","light","dark","TEXT_CHROMA","SUBTLE_SOURCE_TONE","SUBTLE_ALPHA","SPLIT_ROTATIONS","VIVID_SNAP_WINDOW","VIVID_SNAP_MIN_GAIN","MIN_ACCENT_SEPARATION","DESTRUCTIVE_PROXIMITY","hueDistance","a","b","d","abs","min","peakTone","hue","palette","fromHueAndChroma","bestTone","bestChroma","tone","chroma","fromInt","peakChroma","vividHueNear","baseChroma","bestHue","delta","candidate","whiteLabelTone","seedTone","isDark","max","accentTone","peak","fillPair","startTone","fill","foreground","accentHues","seedHue","firstRotation","secondRotation","geometricA","geometricB","geometricStandout","quiet","snapped","standout","errorHue","secondary","tertiary","buildPolicyTokens","seedHex","roles","pinned","seed","brandPalette","primary","tokens","surfaceContainer","surfaceContainerLowest","surfaceContainerHigh","onSurfaceVariant","hues","role","pin","undefined","fillPalette","textPalette","vividPalette","pair","i","hex","Object","entries","status"],"sourceRoot":"../../../src","sources":["theme/color-policy.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["argbFromHex","Hct","TonalPalette","blueFromArgb","greenFromArgb","redFromArgb","STATUS_SEEDS","success","error","warning","info","AA","rgb","argb","rgba","alpha","contrastOf","onWhite","channel","v","c","Math","pow","luminance","foregroundFor","noLegibleForeground","FILL_TONE_FLOOR","FILL_TONE_SEARCH_CEILING","LIGHT_DEPTH_STEP","LIGHT_FILL_FLOOR","TONE_BUDGET","DARK_SEED_FLOOR","DARK_ACCENT_FLOOR","ACCENT_CHROMA","TEXT_TONE","light","dark","TEXT_CHROMA","SUBTLE_SOURCE_TONE","SUBTLE_ALPHA","MONOCHROME_MAX_CHROMA","isColourlessSeed","seedHex","fromInt","chroma","MONOCHROME_FILL_TONE","MONOCHROME_SECONDARY_TONE","SPLIT_ROTATIONS","VIVID_SNAP_WINDOW","VIVID_SNAP_MIN_GAIN","MIN_ACCENT_SEPARATION","DESTRUCTIVE_PROXIMITY","hueDistance","a","b","d","abs","min","peakTone","hue","palette","fromHueAndChroma","bestTone","bestChroma","tone","peakChroma","vividHueNear","baseChroma","bestHue","delta","candidate","vividLegibleTone","whiteLabelTone","seedTone","isDark","max","accentTone","peak","fillPair","startTone","fill","foreground","accentHues","seedHue","firstRotation","secondRotation","geometricA","geometricB","geometricStandout","quiet","snapped","standout","errorHue","secondary","tertiary","buildPolicyTokens","roles","pinned","seed","monochrome","brandPalette","primary","tokens","surfaceContainer","surfaceContainerLowest","surfaceContainerHigh","onSurfaceVariant","hues","role","pin","undefined","fillPalette","textPalette","vividPalette","pair","i","hex","Object","entries","status"],"sourceRoot":"../../../src","sources":["theme/color-policy.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,24 +19,29 @@
|
|
|
19
19
|
* resolved `--token -> value` record that `getPresetVars` produces).
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
export const APP_COLOR_NAMES = ['teal', 'blue', 'green', '
|
|
22
|
+
export const APP_COLOR_NAMES = ['teal', 'blue', 'green', 'yellow', 'red', 'purple', 'pink', 'sky', 'orange', 'mint', 'oxy', 'faircoin', 'pumpkin', 'gray', 'brown', 'peach', 'rose', 'mono'];
|
|
23
23
|
|
|
24
24
|
/** Premium-exclusive presets, hidden from the standard color picker. */
|
|
25
25
|
export const PREMIUM_COLOR_NAMES = ['oxy', 'faircoin'];
|
|
26
26
|
export const HEX_TO_APP_COLOR = {
|
|
27
27
|
'#005c67': 'teal',
|
|
28
|
-
'#
|
|
28
|
+
'#0085fe': 'blue',
|
|
29
29
|
'#10b981': 'green',
|
|
30
|
-
'#
|
|
31
|
-
'#ffc300': 'yellow',
|
|
30
|
+
'#fcdc00': 'yellow',
|
|
32
31
|
'#ef4444': 'red',
|
|
33
|
-
'#
|
|
34
|
-
'#
|
|
35
|
-
'#
|
|
36
|
-
'#
|
|
32
|
+
'#b866ff': 'purple',
|
|
33
|
+
'#ff3c7f': 'pink',
|
|
34
|
+
'#03a9f4': 'sky',
|
|
35
|
+
'#ff5722': 'orange',
|
|
37
36
|
'#14b8a6': 'mint',
|
|
38
37
|
'#c46ede': 'oxy',
|
|
39
|
-
'#9ffb50': 'faircoin'
|
|
38
|
+
'#9ffb50': 'faircoin',
|
|
39
|
+
'#ff9800': 'pumpkin',
|
|
40
|
+
'#607d8b': 'gray',
|
|
41
|
+
'#813519': 'brown',
|
|
42
|
+
'#ffb28d': 'peach',
|
|
43
|
+
'#fcaffe': 'rose',
|
|
44
|
+
'#000000': 'mono'
|
|
40
45
|
};
|
|
41
46
|
export function hexToAppColorName(hex) {
|
|
42
47
|
return HEX_TO_APP_COLOR[hex.toLowerCase()] ?? 'teal';
|
|
@@ -56,7 +61,7 @@ export const APP_COLOR_PRESETS = {
|
|
|
56
61
|
},
|
|
57
62
|
blue: {
|
|
58
63
|
name: 'blue',
|
|
59
|
-
hex: '#
|
|
64
|
+
hex: '#0085fe',
|
|
60
65
|
variant: 'vivid'
|
|
61
66
|
},
|
|
62
67
|
green: {
|
|
@@ -64,14 +69,9 @@ export const APP_COLOR_PRESETS = {
|
|
|
64
69
|
hex: '#10b981',
|
|
65
70
|
variant: 'vivid'
|
|
66
71
|
},
|
|
67
|
-
amber: {
|
|
68
|
-
name: 'amber',
|
|
69
|
-
hex: '#f59e0b',
|
|
70
|
-
variant: 'vivid'
|
|
71
|
-
},
|
|
72
72
|
yellow: {
|
|
73
73
|
name: 'yellow',
|
|
74
|
-
hex: '#
|
|
74
|
+
hex: '#fcdc00',
|
|
75
75
|
variant: 'vivid'
|
|
76
76
|
},
|
|
77
77
|
red: {
|
|
@@ -81,22 +81,28 @@ export const APP_COLOR_PRESETS = {
|
|
|
81
81
|
},
|
|
82
82
|
purple: {
|
|
83
83
|
name: 'purple',
|
|
84
|
-
hex: '#
|
|
84
|
+
hex: '#b866ff',
|
|
85
85
|
variant: 'vivid'
|
|
86
86
|
},
|
|
87
87
|
pink: {
|
|
88
88
|
name: 'pink',
|
|
89
|
-
hex: '#
|
|
89
|
+
hex: '#ff3c7f',
|
|
90
90
|
variant: 'vivid'
|
|
91
91
|
},
|
|
92
92
|
sky: {
|
|
93
93
|
name: 'sky',
|
|
94
|
-
hex: '#
|
|
94
|
+
hex: '#03a9f4',
|
|
95
95
|
variant: 'vivid'
|
|
96
96
|
},
|
|
97
|
+
// Deliberately NOT Tailwind's orange-500 (`#f97316`). That seed sits at HCT hue
|
|
98
|
+
// 46, which reads as orange only because it is also light: at hue 46 the sRGB
|
|
99
|
+
// gamut allows a chroma of just 62 at the tones a white label needs (<= 49), so
|
|
100
|
+
// the brand fill resolved to `rgb(177 76 0)` — a brown. Hue 34 carries a chroma
|
|
101
|
+
// of 84 at that same tone, with the same white label and the same contrast
|
|
102
|
+
// headroom, so the fill reads as orange instead of paying for the hue twice.
|
|
97
103
|
orange: {
|
|
98
104
|
name: 'orange',
|
|
99
|
-
hex: '#
|
|
105
|
+
hex: '#ff5722',
|
|
100
106
|
variant: 'vivid'
|
|
101
107
|
},
|
|
102
108
|
mint: {
|
|
@@ -113,6 +119,42 @@ export const APP_COLOR_PRESETS = {
|
|
|
113
119
|
name: 'faircoin',
|
|
114
120
|
hex: '#9ffb50',
|
|
115
121
|
variant: 'vivid'
|
|
122
|
+
},
|
|
123
|
+
pumpkin: {
|
|
124
|
+
name: 'pumpkin',
|
|
125
|
+
hex: '#ff9800',
|
|
126
|
+
variant: 'vivid'
|
|
127
|
+
},
|
|
128
|
+
gray: {
|
|
129
|
+
name: 'gray',
|
|
130
|
+
hex: '#607d8b',
|
|
131
|
+
variant: 'vivid'
|
|
132
|
+
},
|
|
133
|
+
brown: {
|
|
134
|
+
name: 'brown',
|
|
135
|
+
hex: '#813519',
|
|
136
|
+
variant: 'vivid'
|
|
137
|
+
},
|
|
138
|
+
peach: {
|
|
139
|
+
name: 'peach',
|
|
140
|
+
hex: '#ffb28d',
|
|
141
|
+
variant: 'vivid'
|
|
142
|
+
},
|
|
143
|
+
rose: {
|
|
144
|
+
name: 'rose',
|
|
145
|
+
hex: '#fcaffe',
|
|
146
|
+
variant: 'vivid'
|
|
147
|
+
},
|
|
148
|
+
/**
|
|
149
|
+
* No colour at all — the black-and-white theme. Its seed carries zero chroma,
|
|
150
|
+
* which is the whole mechanism: the policy derives a greyscale palette from any
|
|
151
|
+
* seed with none, so a user who picks a grey in the colour wheel lands here too
|
|
152
|
+
* rather than on a nearly-grey approximation.
|
|
153
|
+
*/
|
|
154
|
+
mono: {
|
|
155
|
+
name: 'mono',
|
|
156
|
+
hex: '#000000',
|
|
157
|
+
variant: 'monochrome'
|
|
116
158
|
}
|
|
117
159
|
};
|
|
118
160
|
//# sourceMappingURL=color-presets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["APP_COLOR_NAMES","PREMIUM_COLOR_NAMES","HEX_TO_APP_COLOR","hexToAppColorName","hex","toLowerCase","APP_COLOR_PRESETS","teal","name","variant","blue","green","
|
|
1
|
+
{"version":3,"names":["APP_COLOR_NAMES","PREMIUM_COLOR_NAMES","HEX_TO_APP_COLOR","hexToAppColorName","hex","toLowerCase","APP_COLOR_PRESETS","teal","name","variant","blue","green","yellow","red","purple","pink","sky","orange","mint","oxy","faircoin","pumpkin","gray","brown","peach","rose","mono"],"sourceRoot":"../../../src","sources":["theme/color-presets.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { generateRoleColors } from "../color-engine/index.js";
|
|
4
|
-
import { buildPolicyTokens } from "../color-policy.js";
|
|
4
|
+
import { buildPolicyTokens, isColourlessSeed } from "../color-policy.js";
|
|
5
5
|
import { CANONICAL_TOKENS } from "../token-registry.js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -80,7 +80,11 @@ export function roleColorsToPresetTokens(r) {
|
|
|
80
80
|
export function buildSeedScopeVars(options) {
|
|
81
81
|
const roles = generateRoleColors({
|
|
82
82
|
seed: options.seed,
|
|
83
|
-
|
|
83
|
+
// A seed with no chroma has no colour for a chromatic variant to work with,
|
|
84
|
+
// so it takes the greyscale scheme unless the caller asked for something else.
|
|
85
|
+
// This is what makes a grey picked in a colour wheel produce the SAME
|
|
86
|
+
// black-and-white theme as the `mono` preset instead of a tinted near-grey.
|
|
87
|
+
variant: options.variant ?? (isColourlessSeed(options.seed) ? 'monochrome' : 'vivid'),
|
|
84
88
|
isDark: options.mode === 'dark',
|
|
85
89
|
contrastLevel: options.contrastLevel ?? 0,
|
|
86
90
|
secondarySeed: options.secondarySeed,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["generateRoleColors","buildPolicyTokens","CANONICAL_TOKENS","roleColorsToPresetTokens","r","background","onBackground","surfaceContainerLow","onSurface","surfaceContainer","primary","onPrimary","secondaryContainer","onSecondaryContainer","tertiaryContainer","onTertiaryContainer","surfaceContainerHigh","onSurfaceVariant","error","outlineVariant","surfaceContainerLowest","secondary","tertiary","primaryContainer","buildSeedScopeVars","options","roles","seed","variant","isDark","mode","contrastLevel","secondarySeed","tertiarySeed","tokens","vars","key","value","Object","entries","slice","token","undefined"],"sourceRoot":"../../../../src","sources":["theme/color-scope/seed-scope.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAA6C,0BAAiB;AACzF,SAASC,iBAAiB,QAAQ,oBAAiB;
|
|
1
|
+
{"version":3,"names":["generateRoleColors","buildPolicyTokens","isColourlessSeed","CANONICAL_TOKENS","roleColorsToPresetTokens","r","background","onBackground","surfaceContainerLow","onSurface","surfaceContainer","primary","onPrimary","secondaryContainer","onSecondaryContainer","tertiaryContainer","onTertiaryContainer","surfaceContainerHigh","onSurfaceVariant","error","outlineVariant","surfaceContainerLowest","secondary","tertiary","primaryContainer","buildSeedScopeVars","options","roles","seed","variant","isDark","mode","contrastLevel","secondarySeed","tertiarySeed","tokens","vars","key","value","Object","entries","slice","token","undefined"],"sourceRoot":"../../../../src","sources":["theme/color-scope/seed-scope.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../../src/tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAUN,MAAM,OAAO,CAAC;AA4Bf,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAe,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../../src/tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAUN,MAAM,OAAO,CAAC;AA4Bf,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAe,MAAM,SAAS,CAAC;AA0E1F;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1C;;;;;;;;;OASG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CACzC;AAikBD,eAAO,MAAM,IAAI,iFAAyB,CAAC;AAG3C,eAAO,MAAM,WAAW,8CAAqB,CAAC;AAG9C,eAAO,MAAM,WAAW,8CAA0B,CAAC"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
export { Hct } from './hct';
|
|
11
11
|
export { TonalPalette } from './tonal-palette';
|
|
12
12
|
export { DynamicScheme } from './dynamic-scheme';
|
|
13
|
-
export { buildScheme, schemeVibrant, schemeExpressive, schemeTonalSpot, schemeNeutral } from './scheme-variants';
|
|
13
|
+
export { buildScheme, schemeVibrant, schemeExpressive, schemeTonalSpot, schemeNeutral, schemeMonochrome } from './scheme-variants';
|
|
14
14
|
export type { SchemeVariant, AccentSources } from './scheme-variants';
|
|
15
15
|
export { Roles } from './color-roles';
|
|
16
16
|
export type { RoleName } from './color-roles';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-engine/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACnI,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGtF,OAAO,EAAS,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEpE,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI/C;AAED,uCAAuC;AACvC,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,yDAAyD;AACzD,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,UAAU,CAuBpE"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { DynamicScheme } from './dynamic-scheme';
|
|
11
11
|
import type { Hct } from './hct';
|
|
12
|
-
export type SchemeVariant = 'vivid' | 'vibrant' | 'expressive' | 'tonalSpot' | 'neutral';
|
|
12
|
+
export type SchemeVariant = 'vivid' | 'vibrant' | 'expressive' | 'tonalSpot' | 'neutral' | 'monochrome';
|
|
13
13
|
/**
|
|
14
14
|
* Optional explicit accent seeds for a scheme. When a source HCT is supplied, its
|
|
15
15
|
* palette is built from that colour itself (keeping the brand hue + chroma) instead
|
|
@@ -39,6 +39,18 @@ export declare function schemeExpressive(source: Hct, isDark: boolean, contrastL
|
|
|
39
39
|
export declare function schemeTonalSpot(source: Hct, isDark: boolean, contrastLevel: number, accents?: AccentSources): DynamicScheme;
|
|
40
40
|
/** Near-greyscale — the seed hue is present only as a whisper. */
|
|
41
41
|
export declare function schemeNeutral(source: Hct, isDark: boolean, contrastLevel: number, accents?: AccentSources): DynamicScheme;
|
|
42
|
+
/**
|
|
43
|
+
* No colour at all: every palette is greyscale, so the seed's hue is irrelevant
|
|
44
|
+
* and only its tone survives. This is the variant the `isMonochrome` role
|
|
45
|
+
* branches in `color-roles` were written for — they push `primary` to the far end
|
|
46
|
+
* of the scale (tone 0 on a light page, 100 on a dark one) rather than the
|
|
47
|
+
* mid-tone the chromatic curves would pick, which is what keeps a black-and-white
|
|
48
|
+
* theme from reading as a grey one.
|
|
49
|
+
*
|
|
50
|
+
* A pinned accent is ignored on purpose: honouring it would put one coloured
|
|
51
|
+
* family back into a scheme whose entire point is that nothing is coloured.
|
|
52
|
+
*/
|
|
53
|
+
export declare function schemeMonochrome(source: Hct, isDark: boolean, contrastLevel: number): DynamicScheme;
|
|
42
54
|
/**
|
|
43
55
|
* Build a scheme by variant name.
|
|
44
56
|
*
|
|
@@ -1 +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,
|
|
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,GACrB,OAAO,GACP,SAAS,GACT,YAAY,GACZ,WAAW,GACX,SAAS,GACT,YAAY,CAAC;AAEjB;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,cAAc,CAAC,EAAE,GAAG,CAAC;CACtB;AAoBD,uEAAuE;AACvE,wBAAgB,aAAa,CAC3B,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,aAAkB,GAC1B,aAAa,CAsBf;AAED,gFAAgF;AAChF;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,aAAkB,GAC1B,aAAa,CAsBf;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,aAAkB,GAC1B,aAAa,CAsBf;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAC7B,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,aAAkB,GAC1B,aAAa,CAgBf;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAC3B,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,aAAkB,GAC1B,aAAa,CAgBf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,MAAM,GACpB,aAAa,CAaf;AAcD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,OAAO,EACf,aAAa,SAAI,EACjB,OAAO,GAAE,aAAkB,GAC1B,aAAa,CAEf"}
|
|
@@ -37,6 +37,12 @@ export interface PinnedAccents {
|
|
|
37
37
|
}
|
|
38
38
|
/** The tokens the policy owns. Everything else keeps coming from the M3 roles. */
|
|
39
39
|
export type PolicyTokens = Record<string, string>;
|
|
40
|
+
/**
|
|
41
|
+
* Whether a seed carries no colour to derive a theme from — the one authority for
|
|
42
|
+
* that question, so the policy and the scheme choice can never disagree about a
|
|
43
|
+
* given seed and produce a grey palette wearing chromatic surfaces.
|
|
44
|
+
*/
|
|
45
|
+
export declare function isColourlessSeed(seedHex: string): boolean;
|
|
40
46
|
/**
|
|
41
47
|
* Build the policy-owned tokens for a seed and mode.
|
|
42
48
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color-policy.d.ts","sourceRoot":"","sources":["../../../../src/theme/color-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAK9D,sFAAsF;AACtF,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,wFAAwF;AACxF,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,kFAAkF;AAClF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"color-policy.d.ts","sourceRoot":"","sources":["../../../../src/theme/color-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAK9D,sFAAsF;AACtF,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,wFAAwF;AACxF,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,kFAAkF;AAClF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAsHlD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AA2MD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,UAAU,EACjB,MAAM,GAAE,aAAkB,GACzB,YAAY,CAqJd"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SchemeVariant } from './color-engine';
|
|
2
|
-
export type AppColorName = 'teal' | 'blue' | 'green' | '
|
|
2
|
+
export type AppColorName = 'teal' | 'blue' | 'green' | 'yellow' | 'red' | 'purple' | 'pink' | 'sky' | 'orange' | 'mint' | 'oxy' | 'faircoin' | 'pumpkin' | 'gray' | 'brown' | 'peach' | 'rose' | 'mono';
|
|
3
3
|
/**
|
|
4
4
|
* A single colour preset: a brand SEED colour plus the tonal scheme variant to
|
|
5
5
|
* derive its full role set with.
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,QAAQ,GACR,KAAK,GACL,QAAQ,GACR,MAAM,GACN,KAAK,GACL,QAAQ,GACR,MAAM,GACN,KAAK,GACL,UAAU,GACV,SAAS,GACT,MAAM,GACN,OAAO,GACP,OAAO,GACP,MAAM,GACN,MAAM,CAAC;AAEX;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,kFAAkF;IAClF,GAAG,EAAE,MAAM,CAAC;IACZ,8DAA8D;IAC9D,OAAO,EAAE,aAAa,CAAC;IACvB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAElD,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,EAAkK,CAAC;AAEtN,wEAAwE;AACxE,eAAO,MAAM,mBAAmB,EAAE,SAAS,YAAY,EAAwB,CAAC;AAEhF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAmBzD,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAE3D;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,YAAY,EAAE,cAAc,CA+BlE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed-scope.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-scope/seed-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAI1F;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA4C9E;AAED,mEAAmE;AACnE,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"seed-scope.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-scope/seed-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAI1F;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA4C9E;AAED,mEAAmE;AACnE,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmCpF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../../src/tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAUN,MAAM,OAAO,CAAC;AA4Bf,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAe,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../../src/tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAUN,MAAM,OAAO,CAAC;AA4Bf,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAe,MAAM,SAAS,CAAC;AA0E1F;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1C;;;;;;;;;OASG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CACzC;AAikBD,eAAO,MAAM,IAAI,iFAAyB,CAAC;AAG3C,eAAO,MAAM,WAAW,8CAAqB,CAAC;AAG9C,eAAO,MAAM,WAAW,8CAA0B,CAAC"}
|