@oxyhq/bloom 0.38.0 → 0.40.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/design-tokens/theme-css.js +3 -0
- package/lib/commonjs/design-tokens/theme-css.js.map +1 -1
- package/lib/commonjs/design-tokens/theme.css +3 -0
- package/lib/commonjs/prompt-input/Attachments.js +2 -2
- package/lib/commonjs/prompt-input/Attachments.js.map +1 -1
- package/lib/commonjs/theme/adaptive-colors.js +6 -0
- package/lib/commonjs/theme/adaptive-colors.js.map +1 -1
- package/lib/commonjs/theme/build-theme-from-seed.js +90 -0
- package/lib/commonjs/theme/build-theme-from-seed.js.map +1 -0
- package/lib/commonjs/theme/build-theme.js +5 -1
- package/lib/commonjs/theme/build-theme.js.map +1 -1
- package/lib/commonjs/theme/color-scope/seed-scope.js +99 -0
- package/lib/commonjs/theme/color-scope/seed-scope.js.map +1 -0
- package/lib/commonjs/theme/index.js +94 -0
- package/lib/commonjs/theme/index.js.map +1 -1
- package/lib/commonjs/theme/preset-vars.js +4 -0
- package/lib/commonjs/theme/preset-vars.js.map +1 -1
- package/lib/commonjs/theme/seed-scope/index.js +87 -0
- package/lib/commonjs/theme/seed-scope/index.js.map +1 -0
- package/lib/commonjs/theme/seed-scope/index.web.js +86 -0
- package/lib/commonjs/theme/seed-scope/index.web.js.map +1 -0
- package/lib/commonjs/theme/token-registry.js +1 -1
- package/lib/commonjs/theme/token-registry.js.map +1 -1
- package/lib/module/design-tokens/theme-css.js +3 -0
- package/lib/module/design-tokens/theme-css.js.map +1 -1
- package/lib/module/design-tokens/theme.css +3 -0
- package/lib/module/prompt-input/Attachments.js +2 -2
- package/lib/module/prompt-input/Attachments.js.map +1 -1
- package/lib/module/theme/adaptive-colors.js +6 -0
- package/lib/module/theme/adaptive-colors.js.map +1 -1
- package/lib/module/theme/build-theme-from-seed.js +85 -0
- package/lib/module/theme/build-theme-from-seed.js.map +1 -0
- package/lib/module/theme/build-theme.js +5 -1
- package/lib/module/theme/build-theme.js.map +1 -1
- package/lib/module/theme/color-scope/seed-scope.js +95 -0
- package/lib/module/theme/color-scope/seed-scope.js.map +1 -0
- package/lib/module/theme/index.js +7 -0
- package/lib/module/theme/index.js.map +1 -1
- package/lib/module/theme/preset-vars.js +4 -0
- package/lib/module/theme/preset-vars.js.map +1 -1
- package/lib/module/theme/seed-scope/index.js +82 -0
- package/lib/module/theme/seed-scope/index.js.map +1 -0
- package/lib/module/theme/seed-scope/index.web.js +81 -0
- package/lib/module/theme/seed-scope/index.web.js.map +1 -0
- package/lib/module/theme/token-registry.js +1 -1
- package/lib/module/theme/token-registry.js.map +1 -1
- package/lib/typescript/commonjs/design-tokens/theme-css.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/adaptive-colors.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/build-theme-from-seed.d.ts +23 -0
- package/lib/typescript/commonjs/theme/build-theme-from-seed.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/build-theme.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-scope/seed-scope.d.ts +43 -0
- package/lib/typescript/commonjs/theme/color-scope/seed-scope.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/index.d.ts +7 -0
- package/lib/typescript/commonjs/theme/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/preset-vars.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/seed-scope/index.d.ts +37 -0
- package/lib/typescript/commonjs/theme/seed-scope/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/seed-scope/index.web.d.ts +35 -0
- package/lib/typescript/commonjs/theme/seed-scope/index.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/token-registry.d.ts +1 -1
- package/lib/typescript/commonjs/theme/token-registry.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/types.d.ts +5 -1
- package/lib/typescript/commonjs/theme/types.d.ts.map +1 -1
- package/lib/typescript/module/design-tokens/theme-css.d.ts.map +1 -1
- package/lib/typescript/module/theme/adaptive-colors.d.ts.map +1 -1
- package/lib/typescript/module/theme/build-theme-from-seed.d.ts +23 -0
- package/lib/typescript/module/theme/build-theme-from-seed.d.ts.map +1 -0
- package/lib/typescript/module/theme/build-theme.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-scope/seed-scope.d.ts +43 -0
- package/lib/typescript/module/theme/color-scope/seed-scope.d.ts.map +1 -0
- package/lib/typescript/module/theme/index.d.ts +7 -0
- package/lib/typescript/module/theme/index.d.ts.map +1 -1
- package/lib/typescript/module/theme/preset-vars.d.ts.map +1 -1
- package/lib/typescript/module/theme/seed-scope/index.d.ts +37 -0
- package/lib/typescript/module/theme/seed-scope/index.d.ts.map +1 -0
- package/lib/typescript/module/theme/seed-scope/index.web.d.ts +35 -0
- package/lib/typescript/module/theme/seed-scope/index.web.d.ts.map +1 -0
- package/lib/typescript/module/theme/token-registry.d.ts +1 -1
- package/lib/typescript/module/theme/token-registry.d.ts.map +1 -1
- package/lib/typescript/module/theme/types.d.ts +5 -1
- package/lib/typescript/module/theme/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/design-tokens/theme-css.ts +3 -0
- package/src/design-tokens/theme.css +3 -0
- package/src/prompt-input/Attachments.tsx +2 -2
- package/src/theme/__tests__/__snapshots__/visual-gallery.test.tsx.snap +78 -0
- package/src/theme/__tests__/build-theme-from-seed-parity.test.ts +33 -0
- package/src/theme/__tests__/seed-scope-parity.test.ts +27 -0
- package/src/theme/adaptive-colors.ts +6 -0
- package/src/theme/build-theme-from-seed.ts +99 -0
- package/src/theme/build-theme.ts +5 -1
- package/src/theme/color-scope/seed-scope.ts +105 -0
- package/src/theme/index.ts +21 -0
- package/src/theme/preset-vars.ts +4 -0
- package/src/theme/seed-scope/index.tsx +100 -0
- package/src/theme/seed-scope/index.web.tsx +110 -0
- package/src/theme/token-registry.ts +2 -0
- package/src/theme/types.ts +5 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["generateRoleColors","CANONICAL_TOKENS","roleColorsToPresetTokens","r","background","onBackground","surfaceContainerLow","onSurface","surfaceContainer","primary","onPrimary","secondary","onSecondary","tertiary","onTertiary","surfaceContainerHigh","onSurfaceVariant","secondaryContainer","onSecondaryContainer","error","outlineVariant","surfaceContainerLowest","primaryContainer","tertiaryContainer","buildSeedScopeVars","options","roles","seed","isDark","mode","contrastLevel","tokens","vars","token","value","undefined"],"sourceRoot":"../../../../src","sources":["theme/color-scope/seed-scope.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAA6C,0BAAiB;AACzF,SAASC,gBAAgB,QAAQ,sBAAmB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,wBAAwBA,CAACC,CAAa,EAA0B;EAC9E,OAAO;IACL;IACA,cAAc,EAAEA,CAAC,CAACC,UAAU;IAC5B,cAAc,EAAED,CAAC,CAACE,YAAY;IAC9B,WAAW,EAAEF,CAAC,CAACG,mBAAmB;IAClC,sBAAsB,EAAEH,CAAC,CAACI,SAAS;IACnC,WAAW,EAAEJ,CAAC,CAACK,gBAAgB;IAC/B,sBAAsB,EAAEL,CAAC,CAACI,SAAS;IACnC,WAAW,EAAEJ,CAAC,CAACM,OAAO;IACtB,sBAAsB,EAAEN,CAAC,CAACO,SAAS;IACnC,aAAa,EAAEP,CAAC,CAACQ,SAAS;IAC1B,wBAAwB,EAAER,CAAC,CAACS,WAAW;IACvC,YAAY,EAAET,CAAC,CAACU,QAAQ;IACxB,uBAAuB,EAAEV,CAAC,CAACW,UAAU;IACrC,SAAS,EAAEX,CAAC,CAACY,oBAAoB;IACjC,oBAAoB,EAAEZ,CAAC,CAACa,gBAAgB;IACxC,UAAU,EAAEb,CAAC,CAACc,kBAAkB;IAChC,qBAAqB,EAAEd,CAAC,CAACe,oBAAoB;IAC7C,eAAe,EAAEf,CAAC,CAACgB,KAAK;IACxB,UAAU,EAAEhB,CAAC,CAACiB,cAAc;IAC5B,SAAS,EAAEjB,CAAC,CAACiB,cAAc;IAC3B,QAAQ,EAAEjB,CAAC,CAACM,OAAO;IACnB,WAAW,EAAEN,CAAC,CAACG,mBAAmB;IAElC;IACA,QAAQ,EAAEH,CAAC,CAACkB,sBAAsB;IAClC,mBAAmB,EAAElB,CAAC,CAACI,SAAS;IAChC,WAAW,EAAEJ,CAAC,CAACM,OAAO;IACtB,WAAW,EAAEN,CAAC,CAACQ,SAAS;IACxB,WAAW,EAAER,CAAC,CAACU,QAAQ;IACvB,WAAW,EAAEV,CAAC,CAACmB,gBAAgB;IAC/B,WAAW,EAAEnB,CAAC,CAACoB,iBAAiB;IAChC,gBAAgB,EAAEpB,CAAC,CAACC,UAAU;IAC9B,sBAAsB,EAAED,CAAC,CAACI,SAAS;IACnC,mBAAmB,EAAEJ,CAAC,CAACM,OAAO;IAC9B,8BAA8B,EAAEN,CAAC,CAACO,SAAS;IAC3C,kBAAkB,EAAEP,CAAC,CAACc,kBAAkB;IACxC,6BAA6B,EAAEd,CAAC,CAACe,oBAAoB;IACrD,kBAAkB,EAAEf,CAAC,CAACiB,cAAc;IACpC,gBAAgB,EAAEjB,CAAC,CAACM;EACtB,CAAC;AACH;;AAEA;;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASe,kBAAkBA,CAACC,OAAyB,EAA0B;EACpF,MAAMC,KAAK,GAAG1B,kBAAkB,CAAC;IAC/B2B,IAAI,EAAEF,OAAO,CAACE,IAAI;IAClBC,MAAM,EAAEH,OAAO,CAACI,IAAI,KAAK,MAAM;IAC/BC,aAAa,EAAEL,OAAO,CAACK,aAAa,IAAI;EAC1C,CAAC,CAAC;EACF,MAAMC,MAAM,GAAG7B,wBAAwB,CAACwB,KAAK,CAAC;EAC9C,MAAMM,IAA4B,GAAG;IAAE,GAAGD;EAAO,CAAC;EAElD,KAAK,MAAME,KAAK,IAAIhC,gBAAgB,EAAE;IACpC,MAAMiC,KAAK,GAAGH,MAAM,CAAC,KAAKE,KAAK,EAAE,CAAC;IAClC,IAAIC,KAAK,KAAKC,SAAS,EAAE;MACvBH,IAAI,CAAC,WAAWC,KAAK,EAAE,CAAC,GAAGC,KAAK;IAClC;EACF;EAEA,OAAOF,IAAI;AACb","ignoreList":[]}
|
|
@@ -2,7 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
export { BloomThemeProvider } from "./BloomThemeProvider.js";
|
|
4
4
|
export { BloomColorScope, useColorScopeStyle } from './color-scope';
|
|
5
|
+
export { BloomSeedScope } from './seed-scope';
|
|
6
|
+
export { buildSeedScopeVars, roleColorsToPresetTokens } from "./color-scope/seed-scope.js";
|
|
7
|
+
// Colour engine — the dependency-free tonal system that turns ANY seed colour
|
|
8
|
+
// into a full role set. Surfaced here so consumers can derive dynamic themes
|
|
9
|
+
// (e.g. from artwork) without reaching into the internal color-engine path.
|
|
10
|
+
export { generateRoleColors, seedHexFromImagePixels, seedsFromImagePixels, quantizeImage, argbFromHex, hexFromArgb, argbFromRgb, redFromArgb, greenFromArgb, blueFromArgb } from "./color-engine/index.js";
|
|
5
11
|
export { buildTheme, STATUS_COLORS } from "./build-theme.js";
|
|
12
|
+
export { buildThemeFromSeed, buildColorsFromSeed } from "./build-theme-from-seed.js";
|
|
6
13
|
export { THEME_GRADIENTS } from "./gradients.js";
|
|
7
14
|
export { useTheme, useThemeColor, useBloomTheme } from "./use-theme.js";
|
|
8
15
|
export { useNavigationTheme } from "./use-navigation-theme.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BloomThemeProvider","BloomColorScope","useColorScopeStyle","buildTheme","STATUS_COLORS","THEME_GRADIENTS","useTheme","useThemeColor","useBloomTheme","useNavigationTheme","APP_COLOR_NAMES","PREMIUM_COLOR_NAMES","APP_COLOR_PRESETS","HEX_TO_APP_COLOR","hexToAppColorName","parseRgb","withAlpha","getPresetVars","applyPresetVarsToDocument","applyDarkClass","setColorSchemeSafe","initCssInteropDarkMode","webLocalStorage"],"sourceRoot":"../../../src","sources":["theme/index.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,yBAAsB;AAKzD,SAASC,eAAe,EAAEC,kBAAkB,QAAQ,eAAe;AAEnE,SAASC,UAAU,EAAEC,aAAa,QAAQ,kBAAe;AACzD,SAASC,eAAe,QAAQ,gBAAa;AAC7C,SAASC,QAAQ,EAAEC,aAAa,EAAEC,aAAa,QAAQ,gBAAa;AACpE,SAASC,kBAAkB,QAAQ,2BAAwB;AAI3D,SACEC,eAAe,EACfC,mBAAmB,EACnBC,iBAAiB,EACjBC,gBAAgB,EAChBC,iBAAiB,QACZ,oBAAiB;AACxB,SAASC,QAAQ,EAAEC,SAAS,QAAQ,kBAAe;AAEnD,SAASC,aAAa,EAAEC,yBAAyB,QAAQ,kBAAe;AACxE,SAASC,cAAc,QAAQ,uBAAoB;AACnD,SAASC,kBAAkB,QAAQ,4BAAyB;AAC5D,SAASC,sBAAsB,QAAQ,uBAAoB;AAE3D,SAASC,eAAe,QAAQ,kBAAe","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["BloomThemeProvider","BloomColorScope","useColorScopeStyle","BloomSeedScope","buildSeedScopeVars","roleColorsToPresetTokens","generateRoleColors","seedHexFromImagePixels","seedsFromImagePixels","quantizeImage","argbFromHex","hexFromArgb","argbFromRgb","redFromArgb","greenFromArgb","blueFromArgb","buildTheme","STATUS_COLORS","buildThemeFromSeed","buildColorsFromSeed","THEME_GRADIENTS","useTheme","useThemeColor","useBloomTheme","useNavigationTheme","APP_COLOR_NAMES","PREMIUM_COLOR_NAMES","APP_COLOR_PRESETS","HEX_TO_APP_COLOR","hexToAppColorName","parseRgb","withAlpha","getPresetVars","applyPresetVarsToDocument","applyDarkClass","setColorSchemeSafe","initCssInteropDarkMode","webLocalStorage"],"sourceRoot":"../../../src","sources":["theme/index.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,yBAAsB;AAKzD,SAASC,eAAe,EAAEC,kBAAkB,QAAQ,eAAe;AAEnE,SAASC,cAAc,QAAQ,cAAc;AAE7C,SAASC,kBAAkB,EAAEC,wBAAwB,QAAQ,6BAA0B;AAEvF;AACA;AACA;AACA,SACEC,kBAAkB,EAClBC,sBAAsB,EACtBC,oBAAoB,EACpBC,aAAa,EACbC,WAAW,EACXC,WAAW,EACXC,WAAW,EACXC,WAAW,EACXC,aAAa,EACbC,YAAY,QACP,yBAAgB;AAEvB,SAASC,UAAU,EAAEC,aAAa,QAAQ,kBAAe;AACzD,SAASC,kBAAkB,EAAEC,mBAAmB,QAAQ,4BAAyB;AACjF,SAASC,eAAe,QAAQ,gBAAa;AAC7C,SAASC,QAAQ,EAAEC,aAAa,EAAEC,aAAa,QAAQ,gBAAa;AACpE,SAASC,kBAAkB,QAAQ,2BAAwB;AAI3D,SACEC,eAAe,EACfC,mBAAmB,EACnBC,iBAAiB,EACjBC,gBAAgB,EAChBC,iBAAiB,QACZ,oBAAiB;AACxB,SAASC,QAAQ,EAAEC,SAAS,QAAQ,kBAAe;AAEnD,SAASC,aAAa,EAAEC,yBAAyB,QAAQ,kBAAe;AACxE,SAASC,cAAc,QAAQ,uBAAoB;AACnD,SAASC,kBAAkB,QAAQ,4BAAyB;AAC5D,SAASC,sBAAsB,QAAQ,uBAAoB;AAE3D,SAASC,eAAe,QAAQ,kBAAe","ignoreList":[]}
|
|
@@ -46,6 +46,10 @@ export function getPresetVars(colorName, mode) {
|
|
|
46
46
|
// role), not a mirror of `primary`.
|
|
47
47
|
'--secondary': r.secondary,
|
|
48
48
|
'--secondary-foreground': r.onSecondary,
|
|
49
|
+
// The third accent of the M3 trio, exposed so `bg-tertiary` / `colors.tertiary`
|
|
50
|
+
// work alongside primary + secondary.
|
|
51
|
+
'--tertiary': r.tertiary,
|
|
52
|
+
'--tertiary-foreground': r.onTertiary,
|
|
49
53
|
'--muted': r.surfaceContainerHigh,
|
|
50
54
|
'--muted-foreground': r.onSurfaceVariant,
|
|
51
55
|
'--accent': r.secondaryContainer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["APP_COLOR_PRESETS","generateRoleColors","getResolvedTokens","getPresetVars","colorName","mode","preset","r","seed","hex","variant","isDark","background","onBackground","surfaceContainerLow","onSurface","surfaceContainer","primary","onPrimary","secondary","onSecondary","surfaceContainerHigh","onSurfaceVariant","secondaryContainer","onSecondaryContainer","error","outlineVariant","surfaceContainerLowest","
|
|
1
|
+
{"version":3,"names":["APP_COLOR_PRESETS","generateRoleColors","getResolvedTokens","getPresetVars","colorName","mode","preset","r","seed","hex","variant","isDark","background","onBackground","surfaceContainerLow","onSurface","surfaceContainer","primary","onPrimary","secondary","onSecondary","tertiary","onTertiary","surfaceContainerHigh","onSurfaceVariant","secondaryContainer","onSecondaryContainer","error","outlineVariant","surfaceContainerLowest","primaryContainer","tertiaryContainer","applyPresetVarsToDocument","document","vars","root","documentElement","style","key","value","Object","entries","setProperty"],"sourceRoot":"../../../src","sources":["theme/preset-vars.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { Children, cloneElement, isValidElement, useContext, useMemo } from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { BloomThemeContext } from "../BloomThemeProvider.js";
|
|
6
|
+
import { buildSeedScopeVars } from "../color-scope/seed-scope.js";
|
|
7
|
+
import { getVariableContextProvider } from "../color-scope/style-builder.js";
|
|
8
|
+
import { buildThemeFromSeed } from "../build-theme-from-seed.js";
|
|
9
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
/**
|
|
11
|
+
* Native `<BloomSeedScope>`: scopes a subtree to an ARBITRARY seed colour's
|
|
12
|
+
* palette (the dynamic counterpart of `<BloomColorScope>`, which takes a named
|
|
13
|
+
* preset). Feeds the seed through the colour engine and (1) provides the
|
|
14
|
+
* resulting canonical CSS vars to descendants via react-native-css's
|
|
15
|
+
* `VariableContext` — so `bg-background` / `bg-card` / `var(--primary)` resolve
|
|
16
|
+
* against the seed inside this subtree — and (2) publishes a matching JS `theme`
|
|
17
|
+
* on `BloomThemeContext`, so `useTheme()`/`useBloomTheme()` consumers inside the
|
|
18
|
+
* subtree also re-theme. The `colorPreset` field is left as the parent's (a seed
|
|
19
|
+
* is not a named preset).
|
|
20
|
+
*/
|
|
21
|
+
export function BloomSeedScope({
|
|
22
|
+
seed,
|
|
23
|
+
variant,
|
|
24
|
+
contrastLevel,
|
|
25
|
+
asChild = false,
|
|
26
|
+
style,
|
|
27
|
+
children
|
|
28
|
+
}) {
|
|
29
|
+
// Hooks run unconditionally; conditional no-op/throw is applied afterwards.
|
|
30
|
+
const parent = useContext(BloomThemeContext);
|
|
31
|
+
const resolvedMode = parent?.theme.mode ?? 'light';
|
|
32
|
+
const nativeVars = useMemo(() => seed ? buildSeedScopeVars({
|
|
33
|
+
seed,
|
|
34
|
+
mode: resolvedMode,
|
|
35
|
+
variant,
|
|
36
|
+
contrastLevel
|
|
37
|
+
}) : null, [seed, resolvedMode, variant, contrastLevel]);
|
|
38
|
+
const contextValue = useMemo(() => {
|
|
39
|
+
if (!parent || !seed) return null;
|
|
40
|
+
const theme = buildThemeFromSeed(seed, resolvedMode, variant, contrastLevel);
|
|
41
|
+
return {
|
|
42
|
+
...parent,
|
|
43
|
+
theme
|
|
44
|
+
};
|
|
45
|
+
}, [parent, seed, resolvedMode, variant, contrastLevel]);
|
|
46
|
+
if (!parent) {
|
|
47
|
+
throw new Error('BloomSeedScope must be used within a <BloomThemeProvider>');
|
|
48
|
+
}
|
|
49
|
+
// `seed` undefined => no-op; children inherit the parent scope.
|
|
50
|
+
if (!nativeVars || !contextValue) return /*#__PURE__*/_jsx(_Fragment, {
|
|
51
|
+
children: children
|
|
52
|
+
});
|
|
53
|
+
const VariableProvider = getVariableContextProvider();
|
|
54
|
+
let content;
|
|
55
|
+
if (asChild) {
|
|
56
|
+
const child = Children.only(children);
|
|
57
|
+
if (! /*#__PURE__*/isValidElement(child)) {
|
|
58
|
+
throw new Error('BloomSeedScope with `asChild` requires a single React element child that accepts a `style` prop.');
|
|
59
|
+
}
|
|
60
|
+
const childStyle = child.props.style;
|
|
61
|
+
const mergedStyle = [style, childStyle];
|
|
62
|
+
content = /*#__PURE__*/cloneElement(child, {
|
|
63
|
+
style: mergedStyle
|
|
64
|
+
});
|
|
65
|
+
} else {
|
|
66
|
+
content = /*#__PURE__*/_jsx(View, {
|
|
67
|
+
style: [{
|
|
68
|
+
flex: 1
|
|
69
|
+
}, style],
|
|
70
|
+
children: children
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
const scoped = VariableProvider ? /*#__PURE__*/_jsx(VariableProvider, {
|
|
74
|
+
value: nativeVars,
|
|
75
|
+
children: content
|
|
76
|
+
}) : content;
|
|
77
|
+
return /*#__PURE__*/_jsx(BloomThemeContext.Provider, {
|
|
78
|
+
value: contextValue,
|
|
79
|
+
children: scoped
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Children","cloneElement","isValidElement","useContext","useMemo","View","BloomThemeContext","buildSeedScopeVars","getVariableContextProvider","buildThemeFromSeed","Fragment","_Fragment","jsx","_jsx","BloomSeedScope","seed","variant","contrastLevel","asChild","style","children","parent","resolvedMode","theme","mode","nativeVars","contextValue","Error","VariableProvider","content","child","only","childStyle","props","mergedStyle","flex","scoped","value","Provider"],"sourceRoot":"../../../../src","sources":["theme/seed-scope/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { Children, cloneElement, isValidElement, useContext, useMemo } from 'react';
|
|
4
|
+
import { BloomThemeContext } from "../BloomThemeProvider.js";
|
|
5
|
+
import { buildSeedScopeVars } from "../color-scope/seed-scope.js";
|
|
6
|
+
import { buildThemeFromSeed } from "../build-theme-from-seed.js";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* On web the single `asChild` child is frequently a react-native-web component
|
|
10
|
+
* whose `style` prop is a style ARRAY (or a numeric registered-style id), not a
|
|
11
|
+
* plain object. Spreading such an array into an object literal would copy its
|
|
12
|
+
* numeric indices as keys and crash RNW; merge as an array instead.
|
|
13
|
+
*/
|
|
14
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
15
|
+
/**
|
|
16
|
+
* Web `<BloomSeedScope>`: scopes a subtree to an ARBITRARY seed colour's palette
|
|
17
|
+
* (the dynamic counterpart of `<BloomColorScope>`). It (1) writes every canonical
|
|
18
|
+
* `--x` token plus the Tailwind v4 `--color-x` aliases (already resolved to
|
|
19
|
+
* `rgb(...)`) onto the wrapping element's inline `style`, so NativeWind classes
|
|
20
|
+
* inside resolve against the seed palette instead of the document root, and
|
|
21
|
+
* (2) publishes a matching JS `theme` on `BloomThemeContext` so
|
|
22
|
+
* `useTheme()`/`useBloomTheme()` consumers inside the subtree re-theme too. The
|
|
23
|
+
* `colorPreset` field is left as the parent's (a seed is not a named preset).
|
|
24
|
+
*/
|
|
25
|
+
export function BloomSeedScope({
|
|
26
|
+
seed,
|
|
27
|
+
variant,
|
|
28
|
+
contrastLevel,
|
|
29
|
+
asChild = false,
|
|
30
|
+
style,
|
|
31
|
+
children
|
|
32
|
+
}) {
|
|
33
|
+
const parent = useContext(BloomThemeContext);
|
|
34
|
+
const resolvedMode = parent?.theme.mode ?? 'light';
|
|
35
|
+
const varsStyle = useMemo(() => seed ? buildSeedScopeVars({
|
|
36
|
+
seed,
|
|
37
|
+
mode: resolvedMode,
|
|
38
|
+
variant,
|
|
39
|
+
contrastLevel
|
|
40
|
+
}) : null, [seed, resolvedMode, variant, contrastLevel]);
|
|
41
|
+
const contextValue = useMemo(() => {
|
|
42
|
+
if (!parent || !seed) return null;
|
|
43
|
+
const theme = buildThemeFromSeed(seed, resolvedMode, variant, contrastLevel);
|
|
44
|
+
return {
|
|
45
|
+
...parent,
|
|
46
|
+
theme
|
|
47
|
+
};
|
|
48
|
+
}, [parent, seed, resolvedMode, variant, contrastLevel]);
|
|
49
|
+
if (!parent) {
|
|
50
|
+
throw new Error('BloomSeedScope must be used within a <BloomThemeProvider>');
|
|
51
|
+
}
|
|
52
|
+
if (!varsStyle || !contextValue) return /*#__PURE__*/_jsx(_Fragment, {
|
|
53
|
+
children: children
|
|
54
|
+
});
|
|
55
|
+
let content;
|
|
56
|
+
if (asChild) {
|
|
57
|
+
const child = Children.only(children);
|
|
58
|
+
if (! /*#__PURE__*/isValidElement(child)) {
|
|
59
|
+
throw new Error('BloomSeedScope with `asChild` requires a single React element child that accepts a `style` prop.');
|
|
60
|
+
}
|
|
61
|
+
const childStyle = child.props.style;
|
|
62
|
+
const mergedStyle = [varsStyle, style, childStyle];
|
|
63
|
+
content = /*#__PURE__*/cloneElement(child, {
|
|
64
|
+
style: mergedStyle
|
|
65
|
+
});
|
|
66
|
+
} else {
|
|
67
|
+
const mergedStyle = {
|
|
68
|
+
...varsStyle,
|
|
69
|
+
...style
|
|
70
|
+
};
|
|
71
|
+
content = /*#__PURE__*/_jsx("div", {
|
|
72
|
+
style: mergedStyle,
|
|
73
|
+
children: children
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return /*#__PURE__*/_jsx(BloomThemeContext.Provider, {
|
|
77
|
+
value: contextValue,
|
|
78
|
+
children: content
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=index.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Children","cloneElement","isValidElement","useContext","useMemo","BloomThemeContext","buildSeedScopeVars","buildThemeFromSeed","Fragment","_Fragment","jsx","_jsx","BloomSeedScope","seed","variant","contrastLevel","asChild","style","children","parent","resolvedMode","theme","mode","varsStyle","contextValue","Error","content","child","only","childStyle","props","mergedStyle","Provider","value"],"sourceRoot":"../../../../src","sources":["theme/seed-scope/index.web.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,YAAY,EAAEC,cAAc,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAE1F,SAASC,iBAAiB,QAAqC,0BAAuB;AACtF,SAASC,kBAAkB,QAAQ,8BAA2B;AAC9D,SAASC,kBAAkB,QAAQ,6BAA0B;;AAyB7D;AACA;AACA;AACA;AACA;AACA;AALA,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA;AAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAC;EAC7BC,IAAI;EACJC,OAAO;EACPC,aAAa;EACbC,OAAO,GAAG,KAAK;EACfC,KAAK;EACLC;AACmB,CAAC,EAAE;EACtB,MAAMC,MAAM,GAAGhB,UAAU,CAACE,iBAAiB,CAAC;EAC5C,MAAMe,YAAY,GAAGD,MAAM,EAAEE,KAAK,CAACC,IAAI,IAAI,OAAO;EAElD,MAAMC,SAAS,GAAGnB,OAAO,CACvB,MACES,IAAI,GACCP,kBAAkB,CAAC;IAClBO,IAAI;IACJS,IAAI,EAAEF,YAAY;IAClBN,OAAO;IACPC;EACF,CAAC,CAAC,GACF,IAAI,EACV,CAACF,IAAI,EAAEO,YAAY,EAAEN,OAAO,EAAEC,aAAa,CAC7C,CAAC;EAED,MAAMS,YAAY,GAAGpB,OAAO,CAAgC,MAAM;IAChE,IAAI,CAACe,MAAM,IAAI,CAACN,IAAI,EAAE,OAAO,IAAI;IACjC,MAAMQ,KAAK,GAAGd,kBAAkB,CAACM,IAAI,EAAEO,YAAY,EAAEN,OAAO,EAAEC,aAAa,CAAC;IAC5E,OAAO;MAAE,GAAGI,MAAM;MAAEE;IAAM,CAAC;EAC7B,CAAC,EAAE,CAACF,MAAM,EAAEN,IAAI,EAAEO,YAAY,EAAEN,OAAO,EAAEC,aAAa,CAAC,CAAC;EAExD,IAAI,CAACI,MAAM,EAAE;IACX,MAAM,IAAIM,KAAK,CAAC,2DAA2D,CAAC;EAC9E;EACA,IAAI,CAACF,SAAS,IAAI,CAACC,YAAY,EAAE,oBAAOb,IAAA,CAAAF,SAAA;IAAAS,QAAA,EAAGA;EAAQ,CAAG,CAAC;EAEvD,IAAIQ,OAAwB;EAC5B,IAAIV,OAAO,EAAE;IACX,MAAMW,KAAK,GAAG3B,QAAQ,CAAC4B,IAAI,CAACV,QAAQ,CAAC;IACrC,IAAI,eAAChB,cAAc,CAAiByB,KAAK,CAAC,EAAE;MAC1C,MAAM,IAAIF,KAAK,CACb,kGACF,CAAC;IACH;IACA,MAAMI,UAAU,GAAGF,KAAK,CAACG,KAAK,CAACb,KAAK;IACpC,MAAMc,WAAqB,GAAG,CAACR,SAAS,EAAEN,KAAK,EAAEY,UAAU,CAAC;IAC5DH,OAAO,gBAAGzB,YAAY,CAAC0B,KAAK,EAAE;MAAEV,KAAK,EAAEc;IAAY,CAAC,CAAC;EACvD,CAAC,MAAM;IACL,MAAMA,WAAgC,GAAG;MAAE,GAAGR,SAAS;MAAE,GAAGN;IAAM,CAAC;IACnES,OAAO,gBAAGf,IAAA;MAAKM,KAAK,EAAEc,WAAY;MAAAb,QAAA,EAAEA;IAAQ,CAAM,CAAC;EACrD;EAEA,oBAAOP,IAAA,CAACN,iBAAiB,CAAC2B,QAAQ;IAACC,KAAK,EAAET,YAAa;IAAAN,QAAA,EAAEQ;EAAO,CAA6B,CAAC;AAChG","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@ import { getPresetVars } from "./preset-vars.js";
|
|
|
16
16
|
* Order mirrors `getPresetVars`'s insertion order: base tokens first (in the
|
|
17
17
|
* order they appear in the preset data), then the synthesized extended tokens.
|
|
18
18
|
*/
|
|
19
|
-
export const CANONICAL_TOKENS = ['background', 'foreground', 'surface', 'surface-foreground', 'popover', 'popover-foreground', 'primary', 'primary-foreground', 'secondary', 'secondary-foreground', 'muted', 'muted-foreground', 'accent', 'accent-foreground', 'destructive', 'border', 'input', 'ring', 'sidebar', 'card', 'card-foreground', 'chart-1', 'chart-2', 'chart-3', 'chart-4', 'chart-5', 'content-area', 'sidebar-foreground', 'sidebar-primary', 'sidebar-primary-foreground', 'sidebar-accent', 'sidebar-accent-foreground', 'sidebar-border', 'sidebar-ring'];
|
|
19
|
+
export const CANONICAL_TOKENS = ['background', 'foreground', 'surface', 'surface-foreground', 'popover', 'popover-foreground', 'primary', 'primary-foreground', 'secondary', 'secondary-foreground', 'tertiary', 'tertiary-foreground', 'muted', 'muted-foreground', 'accent', 'accent-foreground', 'destructive', 'border', 'input', 'ring', 'sidebar', 'card', 'card-foreground', 'chart-1', 'chart-2', 'chart-3', 'chart-4', 'chart-5', 'content-area', 'sidebar-foreground', 'sidebar-primary', 'sidebar-primary-foreground', 'sidebar-accent', 'sidebar-accent-foreground', 'sidebar-border', 'sidebar-ring'];
|
|
20
20
|
|
|
21
21
|
/** A canonical token name (no leading `--`). */
|
|
22
22
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["APP_COLOR_NAMES","getPresetVars","CANONICAL_TOKENS","RAW_HSL_TRIPLE","hslToSrgb","triple","colorPart","alphaPart","split","map","part","trim","channels","filter","Boolean","hue","parseFloat","replace","sat","light","h","Number","isFinite","s","l","chroma","Math","abs","huePrime","second","r","g","b","match","red","round","green","blue","undefined","alpha","endsWith","safeAlpha","getResolvedTokens","preset","mode","raw","resolved","key","value","Object","entries","test"],"sourceRoot":"../../../src","sources":["theme/token-registry.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["APP_COLOR_NAMES","getPresetVars","CANONICAL_TOKENS","RAW_HSL_TRIPLE","hslToSrgb","triple","colorPart","alphaPart","split","map","part","trim","channels","filter","Boolean","hue","parseFloat","replace","sat","light","h","Number","isFinite","s","l","chroma","Math","abs","huePrime","second","r","g","b","match","red","round","green","blue","undefined","alpha","endsWith","safeAlpha","getResolvedTokens","preset","mode","raw","resolved","key","value","Object","entries","test"],"sourceRoot":"../../../src","sources":["theme/token-registry.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-css.d.ts","sourceRoot":"","sources":["../../../../src/design-tokens/theme-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAcH;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"theme-css.d.ts","sourceRoot":"","sources":["../../../../src/design-tokens/theme-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAcH;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAiEtC;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adaptive-colors.d.ts","sourceRoot":"","sources":["../../../../src/theme/adaptive-colors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"adaptive-colors.d.ts","sourceRoot":"","sources":["../../../../src/theme/adaptive-colors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAgG3C,wBAAgB,iBAAiB,IAAI,WAAW,GAAG,IAAI,CAItD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type SchemeVariant } from './color-engine';
|
|
2
|
+
import type { Theme, ThemeColors } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Build the JS `theme.colors` object from an ARBITRARY seed colour — the dynamic
|
|
5
|
+
* counterpart of `buildTheme(preset, …)`.
|
|
6
|
+
*
|
|
7
|
+
* This mirrors `buildColorsFromPreset` (`build-theme.ts`) field-for-field, but
|
|
8
|
+
* sources its tokens from `buildSeedScopeVars({ seed })` instead of a named
|
|
9
|
+
* preset, so a preset's seed reproduces that preset's JS theme exactly. Keeping
|
|
10
|
+
* the two in lockstep is enforced by `__tests__/build-theme-from-seed-parity.test.ts`.
|
|
11
|
+
*
|
|
12
|
+
* Token-backed fields read the resolved `rgb(...)` token map; the brand-tint
|
|
13
|
+
* family (primarySubtle / negative / …) reads the engine's container/error roles
|
|
14
|
+
* directly — identical to the preset path.
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildColorsFromSeed(seed: string, resolved: 'light' | 'dark', variant?: SchemeVariant, contrastLevel?: number): ThemeColors;
|
|
17
|
+
/**
|
|
18
|
+
* Build a full `Theme` from a seed colour and a resolved light/dark mode. Unlike
|
|
19
|
+
* `buildTheme`, there is no adaptive (Material You / iOS dynamic) override — a
|
|
20
|
+
* seed IS the dynamic source here.
|
|
21
|
+
*/
|
|
22
|
+
export declare function buildThemeFromSeed(seed: string, resolved: 'light' | 'dark', variant?: SchemeVariant, contrastLevel?: number): Theme;
|
|
23
|
+
//# sourceMappingURL=build-theme-from-seed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-theme-from-seed.d.ts","sourceRoot":"","sources":["../../../../src/theme/build-theme-from-seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAIzF,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAElD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,GAAG,MAAM,EAC1B,OAAO,CAAC,EAAE,aAAa,EACvB,aAAa,CAAC,EAAE,MAAM,GACrB,WAAW,CAsDb;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,GAAG,MAAM,EAC1B,OAAO,CAAC,EAAE,aAAa,EACvB,aAAa,CAAC,EAAE,MAAM,GACrB,KAAK,CAQP"}
|
|
@@ -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;AAKvE,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,SAAS,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;CAKhB,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;AAgFX;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,OAAO,GAAG,MAAM,EAC1B,UAAU,GAAE,OAAe,GAC1B,KAAK,CAWP"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type RoleColors, type SchemeVariant } from '../color-engine';
|
|
2
|
+
/**
|
|
3
|
+
* The canonical role → token assignment, sourced from an arbitrary seed's role
|
|
4
|
+
* set instead of a named preset.
|
|
5
|
+
*
|
|
6
|
+
* This MUST stay byte-for-byte identical to the mapping in `getPresetVars`
|
|
7
|
+
* (`preset-vars.ts`): a named preset is just a fixed seed, so scoping a subtree
|
|
8
|
+
* to a preset via `buildScopeVars` and scoping it to that preset's seed hex via
|
|
9
|
+
* `buildSeedScopeVars` are required to produce the same tokens. The parity test
|
|
10
|
+
* (`__tests__/seed-scope-parity.test.ts`) fails CI if the two ever drift.
|
|
11
|
+
*
|
|
12
|
+
* Values are full `rgb(r g b)` strings straight from the engine — no HSL-triple
|
|
13
|
+
* intermediate, so they flow through the scope pipeline unchanged (same as the
|
|
14
|
+
* preset path after `getResolvedTokens`).
|
|
15
|
+
*/
|
|
16
|
+
export declare function roleColorsToPresetTokens(r: RoleColors): Record<string, string>;
|
|
17
|
+
/** Options for deriving scope vars directly from a seed colour. */
|
|
18
|
+
export interface SeedScopeOptions {
|
|
19
|
+
/** The seed colour, `#rrggbb`. */
|
|
20
|
+
seed: string;
|
|
21
|
+
mode: 'light' | 'dark';
|
|
22
|
+
/**
|
|
23
|
+
* The tonal scheme variant. Defaults to `'vibrant'` — the same variant every
|
|
24
|
+
* named Bloom preset uses, so a preset's seed reproduces that preset exactly.
|
|
25
|
+
*/
|
|
26
|
+
variant?: SchemeVariant;
|
|
27
|
+
/** −1 (low) … 0 (normal) … 1 (high). Defaults to 0. */
|
|
28
|
+
contrastLevel?: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Build the CSS custom-property map for an ARBITRARY seed colour — the dynamic
|
|
32
|
+
* (non-preset) counterpart of `buildScopeVars`. Feeds the seed through the
|
|
33
|
+
* colour engine's `generateRoleColors` and assigns the roles to Bloom's
|
|
34
|
+
* canonical token names, then adds the Tailwind v4 `--color-x` aliases (required
|
|
35
|
+
* on web so scoped utilities resolve against the subtree instead of the document
|
|
36
|
+
* root).
|
|
37
|
+
*
|
|
38
|
+
* Scope the returned record onto an element (web: inline `style`; native:
|
|
39
|
+
* NativeWind `VariableContextProvider`) to tint just that subtree — e.g. the
|
|
40
|
+
* ambient region behind album/artist artwork — without re-theming the whole app.
|
|
41
|
+
*/
|
|
42
|
+
export declare function buildSeedScopeVars(options: SeedScopeOptions): Record<string, string>;
|
|
43
|
+
//# sourceMappingURL=seed-scope.d.ts.map
|
|
@@ -0,0 +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;AAG1F;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0C9E;AAED,mEAAmE;AACnE,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBpF"}
|
|
@@ -2,7 +2,14 @@ export { BloomThemeProvider } from './BloomThemeProvider';
|
|
|
2
2
|
export type { BloomThemeProviderProps, BloomThemeContextValue, } from './BloomThemeProvider';
|
|
3
3
|
export { BloomColorScope, useColorScopeStyle } from './color-scope';
|
|
4
4
|
export type { BloomColorScopeProps } from './color-scope';
|
|
5
|
+
export { BloomSeedScope } from './seed-scope';
|
|
6
|
+
export type { BloomSeedScopeProps } from './seed-scope';
|
|
7
|
+
export { buildSeedScopeVars, roleColorsToPresetTokens } from './color-scope/seed-scope';
|
|
8
|
+
export type { SeedScopeOptions } from './color-scope/seed-scope';
|
|
9
|
+
export { generateRoleColors, seedHexFromImagePixels, seedsFromImagePixels, quantizeImage, argbFromHex, hexFromArgb, argbFromRgb, redFromArgb, greenFromArgb, blueFromArgb, } from './color-engine';
|
|
10
|
+
export type { RoleColors, GenerateOptions, RoleName, SchemeVariant } from './color-engine';
|
|
5
11
|
export { buildTheme, STATUS_COLORS } from './build-theme';
|
|
12
|
+
export { buildThemeFromSeed, buildColorsFromSeed } from './build-theme-from-seed';
|
|
6
13
|
export { THEME_GRADIENTS } from './gradients';
|
|
7
14
|
export { useTheme, useThemeColor, useBloomTheme } from './use-theme';
|
|
8
15
|
export { useNavigationTheme } from './use-navigation-theme';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACpE,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACnF,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC5F,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACpE,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACxF,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAIjE,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACnF,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC5F,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset-vars.d.ts","sourceRoot":"","sources":["../../../../src/theme/preset-vars.ts"],"names":[],"mappings":"AAAA,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,
|
|
1
|
+
{"version":3,"file":"preset-vars.d.ts","sourceRoot":"","sources":["../../../../src/theme/preset-vars.ts"],"names":[],"mappings":"AAAA,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,CAwDd;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,YAAY,EACvB,IAAI,EAAE,OAAO,GAAG,MAAM,GACrB,IAAI,CAYN"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type StyleProp, type ViewStyle } from 'react-native';
|
|
3
|
+
import type { SchemeVariant } from '../color-engine';
|
|
4
|
+
export interface BloomSeedScopeProps {
|
|
5
|
+
/**
|
|
6
|
+
* The seed colour (`#rrggbb`) to derive this subtree's palette from. When
|
|
7
|
+
* `undefined`, the scope is a no-op and children inherit the parent scope
|
|
8
|
+
* unchanged — pass `undefined` to fall back to the app preset (e.g. on
|
|
9
|
+
* mouse-leave/blur when restoring the default theme).
|
|
10
|
+
*/
|
|
11
|
+
seed: string | undefined;
|
|
12
|
+
/** Tonal scheme variant. Defaults to `'vibrant'` (matches Bloom presets). */
|
|
13
|
+
variant?: SchemeVariant;
|
|
14
|
+
/** −1 (low) … 0 (normal) … 1 (high). Defaults to 0. */
|
|
15
|
+
contrastLevel?: number;
|
|
16
|
+
/**
|
|
17
|
+
* When `true`, do not render a wrapping `<View>`. The single child is cloned
|
|
18
|
+
* with the caller's `style` merged into its `style` prop (Radix-style).
|
|
19
|
+
*/
|
|
20
|
+
asChild?: boolean;
|
|
21
|
+
/** Additional style applied to the wrapping `<View>` (or merged into the cloned child with `asChild`). */
|
|
22
|
+
style?: StyleProp<ViewStyle>;
|
|
23
|
+
children: React.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Native `<BloomSeedScope>`: scopes a subtree to an ARBITRARY seed colour's
|
|
27
|
+
* palette (the dynamic counterpart of `<BloomColorScope>`, which takes a named
|
|
28
|
+
* preset). Feeds the seed through the colour engine and (1) provides the
|
|
29
|
+
* resulting canonical CSS vars to descendants via react-native-css's
|
|
30
|
+
* `VariableContext` — so `bg-background` / `bg-card` / `var(--primary)` resolve
|
|
31
|
+
* against the seed inside this subtree — and (2) publishes a matching JS `theme`
|
|
32
|
+
* on `BloomThemeContext`, so `useTheme()`/`useBloomTheme()` consumers inside the
|
|
33
|
+
* subtree also re-theme. The `colorPreset` field is left as the parent's (a seed
|
|
34
|
+
* is not a named preset).
|
|
35
|
+
*/
|
|
36
|
+
export declare function BloomSeedScope({ seed, variant, contrastLevel, asChild, style, children, }: BloomSeedScopeProps): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/theme/seed-scope/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsE,MAAM,OAAO,CAAC;AAC3F,OAAO,EAAQ,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAMpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0GAA0G;IAC1G,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,OAAO,EACP,aAAa,EACb,OAAe,EACf,KAAK,EACL,QAAQ,GACT,EAAE,mBAAmB,2CA8CrB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { SchemeVariant } from '../color-engine';
|
|
3
|
+
export interface BloomSeedScopeProps {
|
|
4
|
+
/**
|
|
5
|
+
* The seed colour (`#rrggbb`) to derive this subtree's palette from. When
|
|
6
|
+
* `undefined`, the scope is a no-op and children inherit the parent scope
|
|
7
|
+
* unchanged — pass `undefined` to fall back to the app preset (e.g. on
|
|
8
|
+
* mouse-leave/blur when restoring the default theme).
|
|
9
|
+
*/
|
|
10
|
+
seed: string | undefined;
|
|
11
|
+
/** Tonal scheme variant. Defaults to `'vibrant'` (matches Bloom presets). */
|
|
12
|
+
variant?: SchemeVariant;
|
|
13
|
+
/** −1 (low) … 0 (normal) … 1 (high). Defaults to 0. */
|
|
14
|
+
contrastLevel?: number;
|
|
15
|
+
/**
|
|
16
|
+
* When `true`, do not render a wrapping `<div>`. The single child is cloned
|
|
17
|
+
* with the scope's CSS vars merged into its `style` prop (Radix-style).
|
|
18
|
+
*/
|
|
19
|
+
asChild?: boolean;
|
|
20
|
+
/** Additional style applied to the wrapping `<div>` (or merged into the cloned child with `asChild`). */
|
|
21
|
+
style?: React.CSSProperties;
|
|
22
|
+
children: React.ReactNode;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Web `<BloomSeedScope>`: scopes a subtree to an ARBITRARY seed colour's palette
|
|
26
|
+
* (the dynamic counterpart of `<BloomColorScope>`). It (1) writes every canonical
|
|
27
|
+
* `--x` token plus the Tailwind v4 `--color-x` aliases (already resolved to
|
|
28
|
+
* `rgb(...)`) onto the wrapping element's inline `style`, so NativeWind classes
|
|
29
|
+
* inside resolve against the seed palette instead of the document root, and
|
|
30
|
+
* (2) publishes a matching JS `theme` on `BloomThemeContext` so
|
|
31
|
+
* `useTheme()`/`useBloomTheme()` consumers inside the subtree re-theme too. The
|
|
32
|
+
* `colorPreset` field is left as the parent's (a seed is not a named preset).
|
|
33
|
+
*/
|
|
34
|
+
export declare function BloomSeedScope({ seed, variant, contrastLevel, asChild, style, children, }: BloomSeedScopeProps): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
//# sourceMappingURL=index.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../../src/theme/seed-scope/index.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsE,MAAM,OAAO,CAAC;AAK3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yGAAyG;IACzG,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAoBD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,OAAO,EACP,aAAa,EACb,OAAe,EACf,KAAK,EACL,QAAQ,GACT,EAAE,mBAAmB,2CA6CrB"}
|
|
@@ -12,7 +12,7 @@ import { APP_COLOR_NAMES, type AppColorName } from './color-presets';
|
|
|
12
12
|
* Order mirrors `getPresetVars`'s insertion order: base tokens first (in the
|
|
13
13
|
* order they appear in the preset data), then the synthesized extended tokens.
|
|
14
14
|
*/
|
|
15
|
-
export declare const CANONICAL_TOKENS: readonly ["background", "foreground", "surface", "surface-foreground", "popover", "popover-foreground", "primary", "primary-foreground", "secondary", "secondary-foreground", "muted", "muted-foreground", "accent", "accent-foreground", "destructive", "border", "input", "ring", "sidebar", "card", "card-foreground", "chart-1", "chart-2", "chart-3", "chart-4", "chart-5", "content-area", "sidebar-foreground", "sidebar-primary", "sidebar-primary-foreground", "sidebar-accent", "sidebar-accent-foreground", "sidebar-border", "sidebar-ring"];
|
|
15
|
+
export declare const CANONICAL_TOKENS: readonly ["background", "foreground", "surface", "surface-foreground", "popover", "popover-foreground", "primary", "primary-foreground", "secondary", "secondary-foreground", "tertiary", "tertiary-foreground", "muted", "muted-foreground", "accent", "accent-foreground", "destructive", "border", "input", "ring", "sidebar", "card", "card-foreground", "chart-1", "chart-2", "chart-3", "chart-4", "chart-5", "content-area", "sidebar-foreground", "sidebar-primary", "sidebar-primary-foreground", "sidebar-accent", "sidebar-accent-foreground", "sidebar-border", "sidebar-ring"];
|
|
16
16
|
/** A canonical token name (no leading `--`). */
|
|
17
17
|
export type CanonicalToken = (typeof CANONICAL_TOKENS)[number];
|
|
18
18
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-registry.d.ts","sourceRoot":"","sources":["../../../../src/theme/token-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGrE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"token-registry.d.ts","sourceRoot":"","sources":["../../../../src/theme/token-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGrE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,6jBAqCnB,CAAC;AAEX,gDAAgD;AAChD,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAW/D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA+ChD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,OAAO,GAAG,MAAM,GACrB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -14,8 +14,12 @@ export interface ThemeColors {
|
|
|
14
14
|
primaryLight: string;
|
|
15
15
|
/** Legacy alias: the page background (`--background`), NOT the focus ring. */
|
|
16
16
|
primaryDark: string;
|
|
17
|
-
/**
|
|
17
|
+
/** The M3 secondary accent — a real contrast colour (no longer a mirror of primary). */
|
|
18
18
|
secondary: string;
|
|
19
|
+
secondaryForeground: string;
|
|
20
|
+
/** The M3 tertiary accent, completing the primary/secondary/tertiary trio. */
|
|
21
|
+
tertiary: string;
|
|
22
|
+
tertiaryForeground: string;
|
|
19
23
|
tint: string;
|
|
20
24
|
icon: string;
|
|
21
25
|
iconActive: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/theme/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAE3B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IAErB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAC;IAEpB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/theme/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAE3B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IAErB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAC;IAEpB,wFAAwF;IACxF,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAE3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IAEnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IAEb,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB,EAAE,MAAM,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IAEnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACjC;AAED,uEAAuE;AACvE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE3D,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,yFAAyF;IACzF,SAAS,EAAE,cAAc,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-css.d.ts","sourceRoot":"","sources":["../../../../src/design-tokens/theme-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAcH;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"theme-css.d.ts","sourceRoot":"","sources":["../../../../src/design-tokens/theme-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAcH;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAiEtC;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adaptive-colors.d.ts","sourceRoot":"","sources":["../../../../src/theme/adaptive-colors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"adaptive-colors.d.ts","sourceRoot":"","sources":["../../../../src/theme/adaptive-colors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAgG3C,wBAAgB,iBAAiB,IAAI,WAAW,GAAG,IAAI,CAItD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type SchemeVariant } from './color-engine';
|
|
2
|
+
import type { Theme, ThemeColors } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Build the JS `theme.colors` object from an ARBITRARY seed colour — the dynamic
|
|
5
|
+
* counterpart of `buildTheme(preset, …)`.
|
|
6
|
+
*
|
|
7
|
+
* This mirrors `buildColorsFromPreset` (`build-theme.ts`) field-for-field, but
|
|
8
|
+
* sources its tokens from `buildSeedScopeVars({ seed })` instead of a named
|
|
9
|
+
* preset, so a preset's seed reproduces that preset's JS theme exactly. Keeping
|
|
10
|
+
* the two in lockstep is enforced by `__tests__/build-theme-from-seed-parity.test.ts`.
|
|
11
|
+
*
|
|
12
|
+
* Token-backed fields read the resolved `rgb(...)` token map; the brand-tint
|
|
13
|
+
* family (primarySubtle / negative / …) reads the engine's container/error roles
|
|
14
|
+
* directly — identical to the preset path.
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildColorsFromSeed(seed: string, resolved: 'light' | 'dark', variant?: SchemeVariant, contrastLevel?: number): ThemeColors;
|
|
17
|
+
/**
|
|
18
|
+
* Build a full `Theme` from a seed colour and a resolved light/dark mode. Unlike
|
|
19
|
+
* `buildTheme`, there is no adaptive (Material You / iOS dynamic) override — a
|
|
20
|
+
* seed IS the dynamic source here.
|
|
21
|
+
*/
|
|
22
|
+
export declare function buildThemeFromSeed(seed: string, resolved: 'light' | 'dark', variant?: SchemeVariant, contrastLevel?: number): Theme;
|
|
23
|
+
//# sourceMappingURL=build-theme-from-seed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-theme-from-seed.d.ts","sourceRoot":"","sources":["../../../../src/theme/build-theme-from-seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAIzF,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAElD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,GAAG,MAAM,EAC1B,OAAO,CAAC,EAAE,aAAa,EACvB,aAAa,CAAC,EAAE,MAAM,GACrB,WAAW,CAsDb;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,GAAG,MAAM,EAC1B,OAAO,CAAC,EAAE,aAAa,EACvB,aAAa,CAAC,EAAE,MAAM,GACrB,KAAK,CAQP"}
|
|
@@ -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;AAKvE,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,SAAS,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;CAKhB,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;AAgFX;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,OAAO,GAAG,MAAM,EAC1B,UAAU,GAAE,OAAe,GAC1B,KAAK,CAWP"}
|