@oxyhq/bloom 0.42.1 → 0.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/theme/BloomThemeProvider.js +31 -14
- package/lib/commonjs/theme/BloomThemeProvider.js.map +1 -1
- package/lib/commonjs/theme/apply-dark-class.js +12 -3
- package/lib/commonjs/theme/apply-dark-class.js.map +1 -1
- package/lib/commonjs/theme/color-scope/seed-scope.js +6 -4
- package/lib/commonjs/theme/color-scope/seed-scope.js.map +1 -1
- package/lib/commonjs/theme/native-root-vars.js +5 -0
- package/lib/commonjs/theme/native-root-vars.js.map +1 -1
- package/lib/commonjs/theme/native-root-vars.native.js +13 -3
- package/lib/commonjs/theme/native-root-vars.native.js.map +1 -1
- package/lib/commonjs/theme/native-root-vars.web.js +5 -0
- package/lib/commonjs/theme/native-root-vars.web.js.map +1 -1
- package/lib/commonjs/theme/preset-vars.js +11 -8
- package/lib/commonjs/theme/preset-vars.js.map +1 -1
- package/lib/module/theme/BloomThemeProvider.js +33 -16
- package/lib/module/theme/BloomThemeProvider.js.map +1 -1
- package/lib/module/theme/apply-dark-class.js +11 -3
- package/lib/module/theme/apply-dark-class.js.map +1 -1
- package/lib/module/theme/color-scope/seed-scope.js +6 -4
- package/lib/module/theme/color-scope/seed-scope.js.map +1 -1
- package/lib/module/theme/native-root-vars.js +4 -0
- package/lib/module/theme/native-root-vars.js.map +1 -1
- package/lib/module/theme/native-root-vars.native.js +12 -3
- package/lib/module/theme/native-root-vars.native.js.map +1 -1
- package/lib/module/theme/native-root-vars.web.js +4 -0
- package/lib/module/theme/native-root-vars.web.js.map +1 -1
- package/lib/module/theme/preset-vars.js +11 -8
- package/lib/module/theme/preset-vars.js.map +1 -1
- package/lib/typescript/commonjs/theme/BloomThemeProvider.d.ts +11 -1
- package/lib/typescript/commonjs/theme/BloomThemeProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/apply-dark-class.d.ts +7 -0
- package/lib/typescript/commonjs/theme/apply-dark-class.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-scope/seed-scope.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/native-root-vars.d.ts +2 -0
- package/lib/typescript/commonjs/theme/native-root-vars.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/native-root-vars.native.d.ts +8 -0
- package/lib/typescript/commonjs/theme/native-root-vars.native.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/native-root-vars.web.d.ts +2 -0
- package/lib/typescript/commonjs/theme/native-root-vars.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/preset-vars.d.ts.map +1 -1
- package/lib/typescript/module/theme/BloomThemeProvider.d.ts +11 -1
- package/lib/typescript/module/theme/BloomThemeProvider.d.ts.map +1 -1
- package/lib/typescript/module/theme/apply-dark-class.d.ts +7 -0
- package/lib/typescript/module/theme/apply-dark-class.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-scope/seed-scope.d.ts.map +1 -1
- package/lib/typescript/module/theme/native-root-vars.d.ts +2 -0
- package/lib/typescript/module/theme/native-root-vars.d.ts.map +1 -1
- package/lib/typescript/module/theme/native-root-vars.native.d.ts +8 -0
- package/lib/typescript/module/theme/native-root-vars.native.d.ts.map +1 -1
- package/lib/typescript/module/theme/native-root-vars.web.d.ts +2 -0
- package/lib/typescript/module/theme/native-root-vars.web.d.ts.map +1 -1
- package/lib/typescript/module/theme/preset-vars.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/theme/BloomThemeProvider.tsx +53 -17
- package/src/theme/__tests__/__fixtures__/golden-resolved-tokens.json +52 -52
- package/src/theme/__tests__/__snapshots__/visual-gallery.test.tsx.snap +104 -104
- package/src/theme/apply-dark-class.ts +15 -8
- package/src/theme/color-scope/seed-scope.ts +6 -4
- package/src/theme/native-root-vars.native.ts +17 -8
- package/src/theme/native-root-vars.ts +5 -0
- package/src/theme/native-root-vars.web.ts +5 -0
- package/src/theme/preset-vars.ts +11 -8
|
@@ -12,6 +12,8 @@ var _useControllableState = require("../hooks/useControllableState.js");
|
|
|
12
12
|
var _FontLoader = require("../fonts/FontLoader");
|
|
13
13
|
var _applyDarkClass = require("./apply-dark-class.js");
|
|
14
14
|
var _buildTheme = require("./build-theme.js");
|
|
15
|
+
var _buildThemeFromSeed = require("./build-theme-from-seed.js");
|
|
16
|
+
var _seedScope = require("./color-scope/seed-scope.js");
|
|
15
17
|
var _styleBuilder = require("./color-scope/style-builder.js");
|
|
16
18
|
var _nativeRootVars = require("./native-root-vars");
|
|
17
19
|
var _persistence = require("./persistence.js");
|
|
@@ -166,6 +168,7 @@ function BloomThemeProvider({
|
|
|
166
168
|
nativeWrapperStyle,
|
|
167
169
|
secondaryColor,
|
|
168
170
|
tertiaryColor,
|
|
171
|
+
seed,
|
|
169
172
|
children
|
|
170
173
|
}) {
|
|
171
174
|
const rnScheme = (0, _reactNative.useColorScheme)();
|
|
@@ -202,38 +205,52 @@ function BloomThemeProvider({
|
|
|
202
205
|
// Apply native color scheme, dark class, and CSS vars whenever the resolved
|
|
203
206
|
// mode or preset changes. `useIsomorphicLayoutEffect` runs before paint on
|
|
204
207
|
// both native and web, eliminating the previous render-time side effect.
|
|
208
|
+
// The single `--x -> value` record + JS theme for the ACTIVE source, computed
|
|
209
|
+
// ONCE and applied identically to web (document), native (rootVariables +
|
|
210
|
+
// VariableContext), and the JS `theme` context. The source is a DYNAMIC seed
|
|
211
|
+
// (whole-app dynamic theming — `secondaryColor`/`tertiaryColor` pin this seed's
|
|
212
|
+
// accents) when `seed` is set, else the named preset. Both go through the same
|
|
213
|
+
// colour engine, so there is one code path — no seed/preset duplication.
|
|
214
|
+
const themeVars = (0, _react.useMemo)(() => seed ? (0, _seedScope.buildSeedScopeVars)({
|
|
215
|
+
seed,
|
|
216
|
+
mode: resolved,
|
|
217
|
+
secondarySeed: secondaryColor,
|
|
218
|
+
tertiarySeed: tertiaryColor
|
|
219
|
+
}) : (0, _styleBuilder.buildScopeVars)(colorPreset, resolved, explicitAccents), [seed, secondaryColor, tertiaryColor, colorPreset, resolved, explicitAccents]);
|
|
220
|
+
const themeColors = (0, _react.useMemo)(() => seed ? (0, _buildThemeFromSeed.buildThemeFromSeed)(seed, resolved, undefined, undefined, {
|
|
221
|
+
secondarySeed: secondaryColor,
|
|
222
|
+
tertiarySeed: tertiaryColor
|
|
223
|
+
}) : (0, _buildTheme.buildTheme)(colorPreset, resolved, isAdaptive, explicitAccents), [seed, secondaryColor, tertiaryColor, colorPreset, resolved, isAdaptive, explicitAccents]);
|
|
205
224
|
(0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(() => {
|
|
206
225
|
(0, _setColorSchemeSafe.setColorSchemeSafe)(effectiveMode);
|
|
207
226
|
(0, _applyDarkClass.applyDarkClass)(resolved);
|
|
208
|
-
(0, _applyDarkClass.
|
|
209
|
-
}, [effectiveMode, resolved,
|
|
227
|
+
(0, _applyDarkClass.applyVarsToDocument)(themeVars);
|
|
228
|
+
}, [effectiveMode, resolved, themeVars]);
|
|
210
229
|
|
|
211
|
-
// Native only: publish the
|
|
230
|
+
// Native only: publish the same vars into react-native-css's GLOBAL root
|
|
212
231
|
// variable family so they reach the ENTIRE app tree — navigator screens and
|
|
213
232
|
// every portal/modal/bottom-sheet that paints outside the provider's React
|
|
214
233
|
// subtree (and therefore never sees the `VariableContextProvider` vars below).
|
|
215
234
|
// Web writes the same vars to `document.documentElement` above, so this no-ops
|
|
216
|
-
// there. Runs before paint via `useIsomorphicLayoutEffect
|
|
217
|
-
// sibling `applyColorPresetVars` side effect.
|
|
235
|
+
// there. Runs before paint via `useIsomorphicLayoutEffect`.
|
|
218
236
|
(0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(() => {
|
|
219
|
-
(0, _nativeRootVars.
|
|
220
|
-
}, [
|
|
237
|
+
(0, _nativeRootVars.applyVarsToRootVariables)(themeVars);
|
|
238
|
+
}, [themeVars]);
|
|
221
239
|
const contextValue = (0, _react.useMemo)(() => ({
|
|
222
|
-
theme:
|
|
240
|
+
theme: themeColors,
|
|
223
241
|
mode,
|
|
224
242
|
colorPreset,
|
|
225
243
|
setMode,
|
|
226
244
|
setColorPreset,
|
|
227
245
|
resetTheme
|
|
228
|
-
}), [
|
|
246
|
+
}), [themeColors, mode, colorPreset, setMode, setColorPreset, resetTheme]);
|
|
229
247
|
const shouldAwait = awaitHydration ?? Boolean(persistKey && storage);
|
|
230
248
|
const isGated = shouldAwait && !hydrated;
|
|
231
249
|
|
|
232
|
-
//
|
|
233
|
-
//
|
|
234
|
-
//
|
|
235
|
-
|
|
236
|
-
const nativeVars = (0, _react.useMemo)(() => _reactNative.Platform.OS === 'web' ? null : (0, _styleBuilder.buildScopeVars)(colorPreset, resolved, explicitAccents), [colorPreset, resolved, explicitAccents]);
|
|
250
|
+
// On native, the same record is handed to `VariableContextProvider` so
|
|
251
|
+
// descendants resolve `var(--primary)` etc. through react-native-css's real
|
|
252
|
+
// VariableContext. Web writes them to `document.documentElement` above.
|
|
253
|
+
const nativeVars = (0, _react.useMemo)(() => _reactNative.Platform.OS === 'web' ? null : themeVars, [themeVars]);
|
|
237
254
|
const VariableProvider = (0, _styleBuilder.getVariableContextProvider)();
|
|
238
255
|
const content = /*#__PURE__*/(0, _jsxRuntime.jsx)(_FontLoader.FontLoader, {
|
|
239
256
|
enabled: fonts,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_react","_interopRequireWildcard","_reactNative","_useControllableState","_FontLoader","_applyDarkClass","_buildTheme","_styleBuilder","_nativeRootVars","_persistence","_setColorSchemeSafe","_useIsomorphicLayoutEffect","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_PRESET","DEFAULT_MODE","BloomThemeContext","exports","globalThis","__oxyhq_bloom_theme_context__","createContext","useThemeState","controlledMode","controlledPreset","defaultMode","defaultPreset","persistKey","storage","onModeChange","onColorPresetChange","syncResult","useState","readPersistedThemeSync","syncState","kind","state","initialMode","mode","initialPreset","colorPreset","hydrated","setHydrated","setModeInternal","useControllableState","value","defaultValue","setPresetInternal","modeRef","useRef","current","presetRef","useEffect","cancelled","readPersistedTheme","then","undefined","setMode","useCallback","next","writePersistedTheme","setColorPreset","resetTheme","removePersistedTheme","BloomThemeProvider","defaultColorPreset","awaitHydration","onHydrating","fonts","onFontsLoading","nativeWrapperStyle","secondaryColor","tertiaryColor","children","rnScheme","useRNColorScheme","explicitAccents","useMemo","secondaryHex","tertiaryHex","isAdaptive","effectiveMode","resolved","useIsomorphicLayoutEffect","setColorSchemeSafe","applyDarkClass","
|
|
1
|
+
{"version":3,"names":["require","_react","_interopRequireWildcard","_reactNative","_useControllableState","_FontLoader","_applyDarkClass","_buildTheme","_buildThemeFromSeed","_seedScope","_styleBuilder","_nativeRootVars","_persistence","_setColorSchemeSafe","_useIsomorphicLayoutEffect","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_PRESET","DEFAULT_MODE","BloomThemeContext","exports","globalThis","__oxyhq_bloom_theme_context__","createContext","useThemeState","controlledMode","controlledPreset","defaultMode","defaultPreset","persistKey","storage","onModeChange","onColorPresetChange","syncResult","useState","readPersistedThemeSync","syncState","kind","state","initialMode","mode","initialPreset","colorPreset","hydrated","setHydrated","setModeInternal","useControllableState","value","defaultValue","setPresetInternal","modeRef","useRef","current","presetRef","useEffect","cancelled","readPersistedTheme","then","undefined","setMode","useCallback","next","writePersistedTheme","setColorPreset","resetTheme","removePersistedTheme","BloomThemeProvider","defaultColorPreset","awaitHydration","onHydrating","fonts","onFontsLoading","nativeWrapperStyle","secondaryColor","tertiaryColor","seed","children","rnScheme","useRNColorScheme","explicitAccents","useMemo","secondaryHex","tertiaryHex","isAdaptive","effectiveMode","resolved","themeVars","buildSeedScopeVars","secondarySeed","tertiarySeed","buildScopeVars","themeColors","buildThemeFromSeed","buildTheme","useIsomorphicLayoutEffect","setColorSchemeSafe","applyDarkClass","applyVarsToDocument","applyVarsToRootVariables","contextValue","theme","shouldAwait","Boolean","isGated","nativeVars","Platform","OS","VariableProvider","getVariableContextProvider","content","jsx","FontLoader","enabled","fallback","Provider","nativeTree","View","style","flex"],"sourceRoot":"../../../src","sources":["theme/BloomThemeProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.applyColorPresetVars = applyColorPresetVars;
|
|
7
7
|
exports.applyDarkClass = applyDarkClass;
|
|
8
|
+
exports.applyVarsToDocument = applyVarsToDocument;
|
|
8
9
|
var _reactNative = require("react-native");
|
|
9
10
|
var _colorPresets = require("./color-presets.js");
|
|
10
11
|
var _tokenRegistry = require("./token-registry.js");
|
|
@@ -31,13 +32,21 @@ function applyDarkClass(resolved) {
|
|
|
31
32
|
* Includes extended tokens (card, chart-*, content-area, sidebar-*) so consumer
|
|
32
33
|
* apps don't need to synthesize them.
|
|
33
34
|
*/
|
|
34
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Write a pre-computed `--x -> value` record to the document root (web only).
|
|
37
|
+
* The single web writer primitive: both the preset path (`applyColorPresetVars`)
|
|
38
|
+
* and `BloomThemeProvider`'s dynamic-seed path feed their already-resolved vars
|
|
39
|
+
* through here, so the "write to document" logic lives in exactly one place.
|
|
40
|
+
*/
|
|
41
|
+
function applyVarsToDocument(vars) {
|
|
35
42
|
if (_reactNative.Platform.OS !== 'web' || typeof document === 'undefined') return;
|
|
36
|
-
if (!_colorPresets.APP_COLOR_PRESETS[preset]) return;
|
|
37
|
-
const vars = (0, _tokenRegistry.getResolvedTokens)(preset, resolved, accents);
|
|
38
43
|
const root = document.documentElement.style;
|
|
39
44
|
for (const [key, value] of Object.entries(vars)) {
|
|
40
45
|
root.setProperty(key, value);
|
|
41
46
|
}
|
|
42
47
|
}
|
|
48
|
+
function applyColorPresetVars(preset, resolved, accents) {
|
|
49
|
+
if (!_colorPresets.APP_COLOR_PRESETS[preset]) return;
|
|
50
|
+
applyVarsToDocument((0, _tokenRegistry.getResolvedTokens)(preset, resolved, accents));
|
|
51
|
+
}
|
|
43
52
|
//# sourceMappingURL=apply-dark-class.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_colorPresets","_tokenRegistry","applyDarkClass","resolved","Platform","OS","document","documentElement","classList","toggle","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_colorPresets","_tokenRegistry","applyDarkClass","resolved","Platform","OS","document","documentElement","classList","toggle","applyVarsToDocument","vars","root","style","key","value","Object","entries","setProperty","applyColorPresetVars","preset","accents","APP_COLOR_PRESETS","getResolvedTokens"],"sourceRoot":"../../../src","sources":["theme/apply-dark-class.ts"],"mappings":";;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAEA,IAAAE,cAAA,GAAAF,OAAA;AAEO,SAASG,cAAcA,CAACC,QAA0B,EAAE;EACzD,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;IAC5DA,QAAQ,CAACC,eAAe,CAACC,SAAS,CAACC,MAAM,CAAC,MAAM,EAAEN,QAAQ,KAAK,MAAM,CAAC;EACxE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASO,mBAAmBA,CAACC,IAA4B,EAAE;EAChE,IAAIP,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;EAC9D,MAAMM,IAAI,GAAGN,QAAQ,CAACC,eAAe,CAACM,KAAK;EAC3C,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACN,IAAI,CAAC,EAAE;IAC/CC,IAAI,CAACM,WAAW,CAACJ,GAAG,EAAEC,KAAK,CAAC;EAC9B;AACF;AAEO,SAASI,oBAAoBA,CAClCC,MAAoB,EACpBjB,QAA0B,EAC1BkB,OAAyB,EACzB;EACA,IAAI,CAACC,+BAAiB,CAACF,MAAM,CAAC,EAAE;EAChCV,mBAAmB,CAAC,IAAAa,gCAAiB,EAACH,MAAM,EAAEjB,QAAQ,EAAEkB,OAAO,CAAC,CAAC;AACnE","ignoreList":[]}
|
|
@@ -32,10 +32,12 @@ function roleColorsToPresetTokens(r) {
|
|
|
32
32
|
'--popover-foreground': r.onSurface,
|
|
33
33
|
'--primary': r.primary,
|
|
34
34
|
'--primary-foreground': r.onPrimary,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
'--
|
|
38
|
-
'--
|
|
35
|
+
// shadcn `secondary`/`tertiary` are low-emphasis TONAL SURFACES → M3 container
|
|
36
|
+
// roles (must stay identical to `getPresetVars`; the parity test enforces it).
|
|
37
|
+
'--secondary': r.secondaryContainer,
|
|
38
|
+
'--secondary-foreground': r.onSecondaryContainer,
|
|
39
|
+
'--tertiary': r.tertiaryContainer,
|
|
40
|
+
'--tertiary-foreground': r.onTertiaryContainer,
|
|
39
41
|
'--muted': r.surfaceContainerHigh,
|
|
40
42
|
'--muted-foreground': r.onSurfaceVariant,
|
|
41
43
|
'--accent': r.secondaryContainer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_index","require","_tokenRegistry","roleColorsToPresetTokens","r","background","onBackground","surfaceContainerLow","onSurface","surfaceContainer","primary","onPrimary","
|
|
1
|
+
{"version":3,"names":["_index","require","_tokenRegistry","roleColorsToPresetTokens","r","background","onBackground","surfaceContainerLow","onSurface","surfaceContainer","primary","onPrimary","secondaryContainer","onSecondaryContainer","tertiaryContainer","onTertiaryContainer","surfaceContainerHigh","onSurfaceVariant","error","outlineVariant","surfaceContainerLowest","secondary","tertiary","primaryContainer","buildSeedScopeVars","options","roles","generateRoleColors","seed","variant","isDark","mode","contrastLevel","secondarySeed","tertiarySeed","tokens","vars","token","CANONICAL_TOKENS","value","undefined"],"sourceRoot":"../../../../src","sources":["theme/color-scope/seed-scope.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.applyNativeRootVars = applyNativeRootVars;
|
|
7
|
+
exports.applyVarsToRootVariables = applyVarsToRootVariables;
|
|
7
8
|
/**
|
|
8
9
|
* Platform-neutral DEFAULT variant of `applyNativeRootVars` — a no-op.
|
|
9
10
|
*
|
|
@@ -34,6 +35,10 @@ exports.applyNativeRootVars = applyNativeRootVars;
|
|
|
34
35
|
* The signature is intentionally identical to those variants so the import site in
|
|
35
36
|
* `BloomThemeProvider` is platform-agnostic.
|
|
36
37
|
*/
|
|
38
|
+
/** Neutral-default no-op of the native root-vars writer primitive. */
|
|
39
|
+
function applyVarsToRootVariables(_vars) {
|
|
40
|
+
// Intentionally empty — the native variant does the real work.
|
|
41
|
+
}
|
|
37
42
|
function applyNativeRootVars(_colorPreset, _mode, _accents) {
|
|
38
43
|
// Intentionally empty — the native variant (`native-root-vars.native.ts`) does
|
|
39
44
|
// the real work; this neutral default and the web fork are inert.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["applyNativeRootVars","_colorPreset","_mode","_accents"],"sourceRoot":"../../../src","sources":["theme/native-root-vars.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["applyVarsToRootVariables","_vars","applyNativeRootVars","_colorPreset","_mode","_accents"],"sourceRoot":"../../../src","sources":["theme/native-root-vars.ts"],"mappings":";;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,wBAAwBA,CAACC,KAA6B,EAAQ;EAC5E;AAAA;AAGK,SAASC,mBAAmBA,CACjCC,YAA0B,EAC1BC,KAAuB,EACvBC,QAA0B,EACpB;EACN;EACA;AAAA","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.applyNativeRootVars = applyNativeRootVars;
|
|
7
|
+
exports.applyVarsToRootVariables = applyVarsToRootVariables;
|
|
7
8
|
var _nativeInternal = require("react-native-css/native-internal");
|
|
8
9
|
var _tokenRegistry = require("./token-registry.js");
|
|
9
10
|
/// <reference path="../react-native-css.d.ts" />
|
|
@@ -125,13 +126,22 @@ var _tokenRegistry = require("./token-registry.js");
|
|
|
125
126
|
* Defensive guard: if a host ships a react-native-css build that doesn't expose
|
|
126
127
|
* `rootVariables` as a callable (it always does on @3), we bail rather than throw.
|
|
127
128
|
*/
|
|
128
|
-
|
|
129
|
+
/**
|
|
130
|
+
* Write a pre-computed `--x -> value` record into react-native-css's global
|
|
131
|
+
* `rootVariables` family. The single native writer primitive: both the preset
|
|
132
|
+
* path (`applyNativeRootVars`) and `BloomThemeProvider`'s dynamic-seed path feed
|
|
133
|
+
* their already-resolved vars through here, so the global-write logic lives in
|
|
134
|
+
* exactly one place.
|
|
135
|
+
*/
|
|
136
|
+
function applyVarsToRootVariables(vars) {
|
|
129
137
|
if (typeof _nativeInternal.rootVariables !== 'function') return;
|
|
130
|
-
const vars = (0, _tokenRegistry.getResolvedTokens)(colorPreset, mode, accents);
|
|
131
138
|
for (const [key, value] of Object.entries(vars)) {
|
|
132
|
-
// The family is keyed by the bare name;
|
|
139
|
+
// The family is keyed by the bare name; the var keys include `--`.
|
|
133
140
|
const name = key.startsWith('--') ? key.slice(2) : key;
|
|
134
141
|
(0, _nativeInternal.rootVariables)(name).set([[value]]);
|
|
135
142
|
}
|
|
136
143
|
}
|
|
144
|
+
function applyNativeRootVars(colorPreset, mode, accents) {
|
|
145
|
+
applyVarsToRootVariables((0, _tokenRegistry.getResolvedTokens)(colorPreset, mode, accents));
|
|
146
|
+
}
|
|
137
147
|
//# sourceMappingURL=native-root-vars.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_nativeInternal","require","_tokenRegistry","
|
|
1
|
+
{"version":3,"names":["_nativeInternal","require","_tokenRegistry","applyVarsToRootVariables","vars","rootVariables","key","value","Object","entries","name","startsWith","slice","set","applyNativeRootVars","colorPreset","mode","accents","getResolvedTokens"],"sourceRoot":"../../../src","sources":["theme/native-root-vars.native.ts"],"mappings":";;;;;;;AAgBA,IAAAA,eAAA,GAAAC,OAAA;AAIA,IAAAC,cAAA,GAAAD,OAAA;AApBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,wBAAwBA,CAACC,IAA4B,EAAQ;EAC3E,IAAI,OAAOC,6BAAa,KAAK,UAAU,EAAE;EACzC,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,IAAI,CAAC,EAAE;IAC/C;IACA,MAAMM,IAAI,GAAGJ,GAAG,CAACK,UAAU,CAAC,IAAI,CAAC,GAAGL,GAAG,CAACM,KAAK,CAAC,CAAC,CAAC,GAAGN,GAAG;IACtD,IAAAD,6BAAa,EAACK,IAAI,CAAC,CAACG,GAAG,CAAC,CAAC,CAACN,KAAK,CAAC,CAAC,CAAC;EACpC;AACF;AAEO,SAASO,mBAAmBA,CACjCC,WAAyB,EACzBC,IAAsB,EACtBC,OAAyB,EACnB;EACNd,wBAAwB,CAAC,IAAAe,gCAAiB,EAACH,WAAW,EAAEC,IAAI,EAAEC,OAAO,CAAC,CAAC;AACzE","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.applyNativeRootVars = applyNativeRootVars;
|
|
7
|
+
exports.applyVarsToRootVariables = applyVarsToRootVariables;
|
|
7
8
|
/**
|
|
8
9
|
* Web fork of `applyNativeRootVars` — a no-op.
|
|
9
10
|
*
|
|
@@ -21,6 +22,10 @@ exports.applyNativeRootVars = applyNativeRootVars;
|
|
|
21
22
|
* The signature is intentionally identical to the plain variant so the import
|
|
22
23
|
* site in `BloomThemeProvider` is platform-agnostic.
|
|
23
24
|
*/
|
|
25
|
+
/** Web no-op of the native root-vars writer primitive (web writes to the document). */
|
|
26
|
+
function applyVarsToRootVariables(_vars) {
|
|
27
|
+
// Intentionally empty — web applies vars to `document.documentElement`.
|
|
28
|
+
}
|
|
24
29
|
function applyNativeRootVars(_colorPreset, _mode, _accents) {
|
|
25
30
|
// Intentionally empty — web applies preset vars to `document.documentElement`.
|
|
26
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["applyNativeRootVars","_colorPreset","_mode","_accents"],"sourceRoot":"../../../src","sources":["theme/native-root-vars.web.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["applyVarsToRootVariables","_vars","applyNativeRootVars","_colorPreset","_mode","_accents"],"sourceRoot":"../../../src","sources":["theme/native-root-vars.web.ts"],"mappings":";;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,wBAAwBA,CAACC,KAA6B,EAAQ;EAC5E;AAAA;AAGK,SAASC,mBAAmBA,CACjCC,YAA0B,EAC1BC,KAAuB,EACvBC,QAA0B,EACpB;EACN;AAAA","ignoreList":[]}
|
|
@@ -61,14 +61,17 @@ function getPresetVars(colorName, mode, accents) {
|
|
|
61
61
|
'--popover-foreground': r.onSurface,
|
|
62
62
|
'--primary': r.primary,
|
|
63
63
|
'--primary-foreground': r.onPrimary,
|
|
64
|
-
//
|
|
65
|
-
//
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
//
|
|
69
|
-
//
|
|
70
|
-
|
|
71
|
-
'--
|
|
64
|
+
// shadcn `secondary`/`tertiary` are LOW-EMPHASIS TONAL SURFACES (the soft
|
|
65
|
+
// filled look of a shadcn secondary button — `bg-secondary` fills inputs,
|
|
66
|
+
// cards, chips, tabs), NOT the raw M3 accent. So they map to the M3 *container*
|
|
67
|
+
// roles (soft, brand-tinted, legible), with the on-container as the foreground.
|
|
68
|
+
// Mapping them to the raw accent (a dark tone-40 colour) turns every
|
|
69
|
+
// `bg-secondary` surface into a dark slab — the exact bug this fixes. The raw
|
|
70
|
+
// vivid accents remain available via the chart ramp (`--chart-2`/`--chart-3`).
|
|
71
|
+
'--secondary': r.secondaryContainer,
|
|
72
|
+
'--secondary-foreground': r.onSecondaryContainer,
|
|
73
|
+
'--tertiary': r.tertiaryContainer,
|
|
74
|
+
'--tertiary-foreground': r.onTertiaryContainer,
|
|
72
75
|
'--muted': r.surfaceContainerHigh,
|
|
73
76
|
'--muted-foreground': r.onSurfaceVariant,
|
|
74
77
|
'--accent': r.secondaryContainer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_colorPresets","require","_index","_tokenRegistry","getPresetVars","colorName","mode","accents","preset","APP_COLOR_PRESETS","r","generateRoleColors","seed","hex","variant","isDark","secondarySeed","secondaryHex","tertiarySeed","tertiaryHex","background","onBackground","surfaceContainerLow","onSurface","surfaceContainer","primary","onPrimary","
|
|
1
|
+
{"version":3,"names":["_colorPresets","require","_index","_tokenRegistry","getPresetVars","colorName","mode","accents","preset","APP_COLOR_PRESETS","r","generateRoleColors","seed","hex","variant","isDark","secondarySeed","secondaryHex","tertiarySeed","tertiaryHex","background","onBackground","surfaceContainerLow","onSurface","surfaceContainer","primary","onPrimary","secondaryContainer","onSecondaryContainer","tertiaryContainer","onTertiaryContainer","surfaceContainerHigh","onSurfaceVariant","error","outlineVariant","surfaceContainerLowest","secondary","tertiary","primaryContainer","applyPresetVarsToDocument","document","vars","getResolvedTokens","root","documentElement","style","key","value","Object","entries","setProperty"],"sourceRoot":"../../../src","sources":["theme/preset-vars.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,10 +9,12 @@ import React, { createContext, useCallback, useEffect, useMemo, useRef, useState
|
|
|
9
9
|
import { Platform, View, useColorScheme as useRNColorScheme } from 'react-native';
|
|
10
10
|
import { useControllableState } from "../hooks/useControllableState.js";
|
|
11
11
|
import { FontLoader } from '../fonts/FontLoader';
|
|
12
|
-
import { applyDarkClass,
|
|
12
|
+
import { applyDarkClass, applyVarsToDocument } from "./apply-dark-class.js";
|
|
13
13
|
import { buildTheme } from "./build-theme.js";
|
|
14
|
+
import { buildThemeFromSeed } from "./build-theme-from-seed.js";
|
|
15
|
+
import { buildSeedScopeVars } from "./color-scope/seed-scope.js";
|
|
14
16
|
import { buildScopeVars, getVariableContextProvider } from "./color-scope/style-builder.js";
|
|
15
|
-
import {
|
|
17
|
+
import { applyVarsToRootVariables } from './native-root-vars';
|
|
16
18
|
import { readPersistedTheme, readPersistedThemeSync, removePersistedTheme, writePersistedTheme } from "./persistence.js";
|
|
17
19
|
import { setColorSchemeSafe } from "./set-color-scheme-safe.js";
|
|
18
20
|
import { useIsomorphicLayoutEffect } from "./use-isomorphic-layout-effect.js";
|
|
@@ -159,6 +161,7 @@ export function BloomThemeProvider({
|
|
|
159
161
|
nativeWrapperStyle,
|
|
160
162
|
secondaryColor,
|
|
161
163
|
tertiaryColor,
|
|
164
|
+
seed,
|
|
162
165
|
children
|
|
163
166
|
}) {
|
|
164
167
|
const rnScheme = useRNColorScheme();
|
|
@@ -195,38 +198,52 @@ export function BloomThemeProvider({
|
|
|
195
198
|
// Apply native color scheme, dark class, and CSS vars whenever the resolved
|
|
196
199
|
// mode or preset changes. `useIsomorphicLayoutEffect` runs before paint on
|
|
197
200
|
// both native and web, eliminating the previous render-time side effect.
|
|
201
|
+
// The single `--x -> value` record + JS theme for the ACTIVE source, computed
|
|
202
|
+
// ONCE and applied identically to web (document), native (rootVariables +
|
|
203
|
+
// VariableContext), and the JS `theme` context. The source is a DYNAMIC seed
|
|
204
|
+
// (whole-app dynamic theming — `secondaryColor`/`tertiaryColor` pin this seed's
|
|
205
|
+
// accents) when `seed` is set, else the named preset. Both go through the same
|
|
206
|
+
// colour engine, so there is one code path — no seed/preset duplication.
|
|
207
|
+
const themeVars = useMemo(() => seed ? buildSeedScopeVars({
|
|
208
|
+
seed,
|
|
209
|
+
mode: resolved,
|
|
210
|
+
secondarySeed: secondaryColor,
|
|
211
|
+
tertiarySeed: tertiaryColor
|
|
212
|
+
}) : buildScopeVars(colorPreset, resolved, explicitAccents), [seed, secondaryColor, tertiaryColor, colorPreset, resolved, explicitAccents]);
|
|
213
|
+
const themeColors = useMemo(() => seed ? buildThemeFromSeed(seed, resolved, undefined, undefined, {
|
|
214
|
+
secondarySeed: secondaryColor,
|
|
215
|
+
tertiarySeed: tertiaryColor
|
|
216
|
+
}) : buildTheme(colorPreset, resolved, isAdaptive, explicitAccents), [seed, secondaryColor, tertiaryColor, colorPreset, resolved, isAdaptive, explicitAccents]);
|
|
198
217
|
useIsomorphicLayoutEffect(() => {
|
|
199
218
|
setColorSchemeSafe(effectiveMode);
|
|
200
219
|
applyDarkClass(resolved);
|
|
201
|
-
|
|
202
|
-
}, [effectiveMode, resolved,
|
|
220
|
+
applyVarsToDocument(themeVars);
|
|
221
|
+
}, [effectiveMode, resolved, themeVars]);
|
|
203
222
|
|
|
204
|
-
// Native only: publish the
|
|
223
|
+
// Native only: publish the same vars into react-native-css's GLOBAL root
|
|
205
224
|
// variable family so they reach the ENTIRE app tree — navigator screens and
|
|
206
225
|
// every portal/modal/bottom-sheet that paints outside the provider's React
|
|
207
226
|
// subtree (and therefore never sees the `VariableContextProvider` vars below).
|
|
208
227
|
// Web writes the same vars to `document.documentElement` above, so this no-ops
|
|
209
|
-
// there. Runs before paint via `useIsomorphicLayoutEffect
|
|
210
|
-
// sibling `applyColorPresetVars` side effect.
|
|
228
|
+
// there. Runs before paint via `useIsomorphicLayoutEffect`.
|
|
211
229
|
useIsomorphicLayoutEffect(() => {
|
|
212
|
-
|
|
213
|
-
}, [
|
|
230
|
+
applyVarsToRootVariables(themeVars);
|
|
231
|
+
}, [themeVars]);
|
|
214
232
|
const contextValue = useMemo(() => ({
|
|
215
|
-
theme:
|
|
233
|
+
theme: themeColors,
|
|
216
234
|
mode,
|
|
217
235
|
colorPreset,
|
|
218
236
|
setMode,
|
|
219
237
|
setColorPreset,
|
|
220
238
|
resetTheme
|
|
221
|
-
}), [
|
|
239
|
+
}), [themeColors, mode, colorPreset, setMode, setColorPreset, resetTheme]);
|
|
222
240
|
const shouldAwait = awaitHydration ?? Boolean(persistKey && storage);
|
|
223
241
|
const isGated = shouldAwait && !hydrated;
|
|
224
242
|
|
|
225
|
-
//
|
|
226
|
-
//
|
|
227
|
-
//
|
|
228
|
-
|
|
229
|
-
const nativeVars = useMemo(() => Platform.OS === 'web' ? null : buildScopeVars(colorPreset, resolved, explicitAccents), [colorPreset, resolved, explicitAccents]);
|
|
243
|
+
// On native, the same record is handed to `VariableContextProvider` so
|
|
244
|
+
// descendants resolve `var(--primary)` etc. through react-native-css's real
|
|
245
|
+
// VariableContext. Web writes them to `document.documentElement` above.
|
|
246
|
+
const nativeVars = useMemo(() => Platform.OS === 'web' ? null : themeVars, [themeVars]);
|
|
230
247
|
const VariableProvider = getVariableContextProvider();
|
|
231
248
|
const content = /*#__PURE__*/_jsx(FontLoader, {
|
|
232
249
|
enabled: fonts,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createContext","useCallback","useEffect","useMemo","useRef","useState","Platform","View","useColorScheme","useRNColorScheme","useControllableState","FontLoader","applyDarkClass","
|
|
1
|
+
{"version":3,"names":["React","createContext","useCallback","useEffect","useMemo","useRef","useState","Platform","View","useColorScheme","useRNColorScheme","useControllableState","FontLoader","applyDarkClass","applyVarsToDocument","buildTheme","buildThemeFromSeed","buildSeedScopeVars","buildScopeVars","getVariableContextProvider","applyVarsToRootVariables","readPersistedTheme","readPersistedThemeSync","removePersistedTheme","writePersistedTheme","setColorSchemeSafe","useIsomorphicLayoutEffect","jsx","_jsx","DEFAULT_PRESET","DEFAULT_MODE","BloomThemeContext","globalThis","__oxyhq_bloom_theme_context__","useThemeState","controlledMode","controlledPreset","defaultMode","defaultPreset","persistKey","storage","onModeChange","onColorPresetChange","syncResult","syncState","kind","state","initialMode","mode","initialPreset","colorPreset","hydrated","setHydrated","setModeInternal","value","defaultValue","setPresetInternal","modeRef","current","presetRef","cancelled","then","undefined","setMode","next","setColorPreset","resetTheme","BloomThemeProvider","defaultColorPreset","awaitHydration","onHydrating","fonts","onFontsLoading","nativeWrapperStyle","secondaryColor","tertiaryColor","seed","children","rnScheme","explicitAccents","secondaryHex","tertiaryHex","isAdaptive","effectiveMode","resolved","themeVars","secondarySeed","tertiarySeed","themeColors","contextValue","theme","shouldAwait","Boolean","isGated","nativeVars","OS","VariableProvider","content","enabled","fallback","Provider","nativeTree","style","flex"],"sourceRoot":"../../../src","sources":["theme/BloomThemeProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -26,13 +26,21 @@ export function applyDarkClass(resolved) {
|
|
|
26
26
|
* Includes extended tokens (card, chart-*, content-area, sidebar-*) so consumer
|
|
27
27
|
* apps don't need to synthesize them.
|
|
28
28
|
*/
|
|
29
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Write a pre-computed `--x -> value` record to the document root (web only).
|
|
31
|
+
* The single web writer primitive: both the preset path (`applyColorPresetVars`)
|
|
32
|
+
* and `BloomThemeProvider`'s dynamic-seed path feed their already-resolved vars
|
|
33
|
+
* through here, so the "write to document" logic lives in exactly one place.
|
|
34
|
+
*/
|
|
35
|
+
export function applyVarsToDocument(vars) {
|
|
30
36
|
if (Platform.OS !== 'web' || typeof document === 'undefined') return;
|
|
31
|
-
if (!APP_COLOR_PRESETS[preset]) return;
|
|
32
|
-
const vars = getResolvedTokens(preset, resolved, accents);
|
|
33
37
|
const root = document.documentElement.style;
|
|
34
38
|
for (const [key, value] of Object.entries(vars)) {
|
|
35
39
|
root.setProperty(key, value);
|
|
36
40
|
}
|
|
37
41
|
}
|
|
42
|
+
export function applyColorPresetVars(preset, resolved, accents) {
|
|
43
|
+
if (!APP_COLOR_PRESETS[preset]) return;
|
|
44
|
+
applyVarsToDocument(getResolvedTokens(preset, resolved, accents));
|
|
45
|
+
}
|
|
38
46
|
//# sourceMappingURL=apply-dark-class.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","APP_COLOR_PRESETS","getResolvedTokens","applyDarkClass","resolved","OS","document","documentElement","classList","toggle","
|
|
1
|
+
{"version":3,"names":["Platform","APP_COLOR_PRESETS","getResolvedTokens","applyDarkClass","resolved","OS","document","documentElement","classList","toggle","applyVarsToDocument","vars","root","style","key","value","Object","entries","setProperty","applyColorPresetVars","preset","accents"],"sourceRoot":"../../../src","sources":["theme/apply-dark-class.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,iBAAiB,QAA2B,oBAAiB;AAEtE,SAASC,iBAAiB,QAAQ,qBAAkB;AAEpD,OAAO,SAASC,cAAcA,CAACC,QAA0B,EAAE;EACzD,IAAIJ,QAAQ,CAACK,EAAE,KAAK,KAAK,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;IAC5DA,QAAQ,CAACC,eAAe,CAACC,SAAS,CAACC,MAAM,CAAC,MAAM,EAAEL,QAAQ,KAAK,MAAM,CAAC;EACxE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,mBAAmBA,CAACC,IAA4B,EAAE;EAChE,IAAIX,QAAQ,CAACK,EAAE,KAAK,KAAK,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;EAC9D,MAAMM,IAAI,GAAGN,QAAQ,CAACC,eAAe,CAACM,KAAK;EAC3C,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACN,IAAI,CAAC,EAAE;IAC/CC,IAAI,CAACM,WAAW,CAACJ,GAAG,EAAEC,KAAK,CAAC;EAC9B;AACF;AAEA,OAAO,SAASI,oBAAoBA,CAClCC,MAAoB,EACpBhB,QAA0B,EAC1BiB,OAAyB,EACzB;EACA,IAAI,CAACpB,iBAAiB,CAACmB,MAAM,CAAC,EAAE;EAChCV,mBAAmB,CAACR,iBAAiB,CAACkB,MAAM,EAAEhB,QAAQ,EAAEiB,OAAO,CAAC,CAAC;AACnE","ignoreList":[]}
|
|
@@ -28,10 +28,12 @@ export function roleColorsToPresetTokens(r) {
|
|
|
28
28
|
'--popover-foreground': r.onSurface,
|
|
29
29
|
'--primary': r.primary,
|
|
30
30
|
'--primary-foreground': r.onPrimary,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
'--
|
|
34
|
-
'--
|
|
31
|
+
// shadcn `secondary`/`tertiary` are low-emphasis TONAL SURFACES → M3 container
|
|
32
|
+
// roles (must stay identical to `getPresetVars`; the parity test enforces it).
|
|
33
|
+
'--secondary': r.secondaryContainer,
|
|
34
|
+
'--secondary-foreground': r.onSecondaryContainer,
|
|
35
|
+
'--tertiary': r.tertiaryContainer,
|
|
36
|
+
'--tertiary-foreground': r.onTertiaryContainer,
|
|
35
37
|
'--muted': r.surfaceContainerHigh,
|
|
36
38
|
'--muted-foreground': r.onSurfaceVariant,
|
|
37
39
|
'--accent': r.secondaryContainer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["generateRoleColors","CANONICAL_TOKENS","roleColorsToPresetTokens","r","background","onBackground","surfaceContainerLow","onSurface","surfaceContainer","primary","onPrimary","
|
|
1
|
+
{"version":3,"names":["generateRoleColors","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","token","value","undefined"],"sourceRoot":"../../../../src","sources":["theme/color-scope/seed-scope.ts"],"mappings":"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","ignoreList":[]}
|