@oxyhq/bloom 0.44.1 → 0.45.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.
@@ -10,6 +10,7 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactNative = require("react-native");
11
11
  var _useControllableState = require("../hooks/useControllableState.js");
12
12
  var _FontLoader = require("../fonts/FontLoader");
13
+ var _ambientStore = require("./ambient-store.js");
13
14
  var _applyDarkClass = require("./apply-dark-class.js");
14
15
  var _buildTheme = require("./build-theme.js");
15
16
  var _buildThemeFromSeed = require("./build-theme-from-seed.js");
@@ -173,14 +174,32 @@ function BloomThemeProvider({
173
174
  }) {
174
175
  const rnScheme = (0, _reactNative.useColorScheme)();
175
176
 
177
+ // The app-wide ambient override, driven imperatively via `useAmbientTheme()`
178
+ // from anywhere in the app. Subscribed through the module-level store's
179
+ // `useSyncExternalStore` (stable snapshot ref while unchanged → React-Compiler
180
+ // safe). When an ambient seed is set it OVERRIDES the static `seed` prop and
181
+ // the active preset; clearing it restores them.
182
+ const ambient = (0, _ambientStore.useAmbientThemeState)();
183
+
184
+ // The EFFECTIVE dynamic seed + accents for this render: ambient wins over the
185
+ // static props. `null` ambient seed means "no override" → fall back to the
186
+ // `seed` prop (which itself may be undefined → preset path). When ambient is
187
+ // active, ambient accents replace the static accent props entirely (a null
188
+ // ambient accent = "no pin for this artwork colour").
189
+ const ambientActive = ambient.seed !== null;
190
+ const effectiveSeed = ambientActive ? ambient.seed ?? undefined : seed;
191
+ const effectiveSecondary = ambientActive ? ambient.secondary ?? undefined : secondaryColor;
192
+ const effectiveTertiary = ambientActive ? ambient.tertiary ?? undefined : tertiaryColor;
193
+
176
194
  // The app-wide pinned accents, if any. Memoized so its identity only changes
177
- // when a prop changes (keeps the effect/memo deps below stable). Left
195
+ // when an accent changes (keeps the effect/memo deps below stable). Left
178
196
  // `undefined` when neither is set so every downstream call is byte-identical
179
- // to the no-accent path.
180
- const explicitAccents = (0, _react.useMemo)(() => secondaryColor === undefined && tertiaryColor === undefined ? undefined : {
181
- secondaryHex: secondaryColor,
182
- tertiaryHex: tertiaryColor
183
- }, [secondaryColor, tertiaryColor]);
197
+ // to the no-accent path. Uses the EFFECTIVE accents so ambient accents apply
198
+ // to the preset path too when no ambient seed is present.
199
+ const explicitAccents = (0, _react.useMemo)(() => effectiveSecondary === undefined && effectiveTertiary === undefined ? undefined : {
200
+ secondaryHex: effectiveSecondary,
201
+ tertiaryHex: effectiveTertiary
202
+ }, [effectiveSecondary, effectiveTertiary]);
184
203
  const {
185
204
  mode,
186
205
  colorPreset,
@@ -211,16 +230,16 @@ function BloomThemeProvider({
211
230
  // (whole-app dynamic theming — `secondaryColor`/`tertiaryColor` pin this seed's
212
231
  // accents) when `seed` is set, else the named preset. Both go through the same
213
232
  // colour engine, so there is one code path — no seed/preset duplication.
214
- const themeVars = (0, _react.useMemo)(() => seed ? (0, _seedScope.buildSeedScopeVars)({
215
- seed,
233
+ const themeVars = (0, _react.useMemo)(() => effectiveSeed ? (0, _seedScope.buildSeedScopeVars)({
234
+ seed: effectiveSeed,
216
235
  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]);
236
+ secondarySeed: effectiveSecondary,
237
+ tertiarySeed: effectiveTertiary
238
+ }) : (0, _styleBuilder.buildScopeVars)(colorPreset, resolved, explicitAccents), [effectiveSeed, effectiveSecondary, effectiveTertiary, colorPreset, resolved, explicitAccents]);
239
+ const themeColors = (0, _react.useMemo)(() => effectiveSeed ? (0, _buildThemeFromSeed.buildThemeFromSeed)(effectiveSeed, resolved, undefined, undefined, {
240
+ secondarySeed: effectiveSecondary,
241
+ tertiarySeed: effectiveTertiary
242
+ }) : (0, _buildTheme.buildTheme)(colorPreset, resolved, isAdaptive, explicitAccents), [effectiveSeed, effectiveSecondary, effectiveTertiary, colorPreset, resolved, isAdaptive, explicitAccents]);
224
243
  (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(() => {
225
244
  (0, _setColorSchemeSafe.setColorSchemeSafe)(effectiveMode);
226
245
  (0, _applyDarkClass.applyDarkClass)(resolved);
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"names":["require","_react","_interopRequireWildcard","_reactNative","_useControllableState","_FontLoader","_ambientStore","_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","ambient","useAmbientThemeState","ambientActive","effectiveSeed","effectiveSecondary","secondary","effectiveTertiary","tertiary","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":[]}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.__flushAmbientForTests = __flushAmbientForTests;
7
+ exports.__resetAmbientForTests = __resetAmbientForTests;
8
+ exports.ambientTheme = void 0;
9
+ exports.useAmbientTheme = useAmbientTheme;
10
+ exports.useAmbientThemeState = useAmbientThemeState;
11
+ var _react = require("react");
12
+ /**
13
+ * The current ambient theme override. When `seed` is non-null the whole app is
14
+ * themed from this dynamic seed (same colour engine the `seed` prop uses),
15
+ * overriding the active preset / static `seed` prop. `secondary`/`tertiary` pin
16
+ * this seed's accent families (e.g. the 2nd/3rd colours extracted from artwork).
17
+ */
18
+
19
+ /** Options for {@link useAmbientTheme}. */
20
+
21
+ const DEFAULT_DEBOUNCE_MS = 120;
22
+
23
+ // A single frozen "no override" snapshot. `getSnapshot` returns this EXACT
24
+ // reference whenever nothing is set, so `useSyncExternalStore` sees a stable
25
+ // identity across renders (React-Compiler-safe: the memoized value never
26
+ // silently goes stale because the snapshot ref only changes on a real commit).
27
+ const EMPTY_STATE = Object.freeze({
28
+ seed: null,
29
+ secondary: null,
30
+ tertiary: null
31
+ });
32
+ let state = EMPTY_STATE;
33
+ const listeners = new Set();
34
+
35
+ // Pending debounced commit. `null` operation means "clear".
36
+ let pendingTimer = null;
37
+ let pendingCommit = null;
38
+ function emit() {
39
+ for (const listener of listeners) listener();
40
+ }
41
+ function commit(next) {
42
+ // Skip a no-op commit so subscribers don't re-render for an identical value.
43
+ if (next.seed === state.seed && next.secondary === state.secondary && next.tertiary === state.tertiary) {
44
+ return;
45
+ }
46
+ state = next;
47
+ emit();
48
+ }
49
+ function schedule(next, debounceMs) {
50
+ if (pendingTimer !== null) {
51
+ clearTimeout(pendingTimer);
52
+ pendingTimer = null;
53
+ }
54
+ const run = () => {
55
+ pendingTimer = null;
56
+ pendingCommit = null;
57
+ commit(next);
58
+ };
59
+ if (debounceMs <= 0) {
60
+ run();
61
+ return;
62
+ }
63
+ pendingCommit = run;
64
+ pendingTimer = setTimeout(run, debounceMs);
65
+ pendingTimer.unref?.();
66
+ }
67
+ function subscribe(listener) {
68
+ listeners.add(listener);
69
+ return () => {
70
+ listeners.delete(listener);
71
+ };
72
+ }
73
+ function getSnapshot() {
74
+ return state;
75
+ }
76
+
77
+ /** Internal setter used by the debounced hook API. */
78
+ function setAmbientInternal(seed, accents, debounceMs) {
79
+ schedule({
80
+ seed,
81
+ secondary: accents?.secondary ?? null,
82
+ tertiary: accents?.tertiary ?? null
83
+ }, debounceMs);
84
+ }
85
+
86
+ /** Internal clear used by the debounced hook API. */
87
+ function clearAmbientInternal(debounceMs) {
88
+ schedule(EMPTY_STATE, debounceMs);
89
+ }
90
+
91
+ /**
92
+ * Read + drive the app-wide ambient theme. Reading returns the current override
93
+ * (via `useSyncExternalStore` — stable snapshot ref while unchanged); the
94
+ * returned `setAmbient`/`clearAmbient` are debounced imperative controls.
95
+ *
96
+ * `BloomThemeProvider` consumes the SAME store internally, so calling
97
+ * `setAmbient(...)` from anywhere themes the whole app through the provider's
98
+ * single apply path — no `seed` prop threading, no app-owned theming store.
99
+ */
100
+ function useAmbientTheme(options) {
101
+ const debounceMs = options?.debounceMs ?? DEFAULT_DEBOUNCE_MS;
102
+ const current = (0, _react.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
103
+ return {
104
+ seed: current.seed,
105
+ secondary: current.secondary,
106
+ tertiary: current.tertiary,
107
+ setAmbient: (seed, accents) => setAmbientInternal(seed, accents, debounceMs),
108
+ clearAmbient: () => clearAmbientInternal(debounceMs)
109
+ };
110
+ }
111
+
112
+ /**
113
+ * Provider-side subscription. Returns the current ambient state with a stable
114
+ * ref while unchanged. Uses the same store, so it stays in lockstep with any
115
+ * `useAmbientTheme()` caller.
116
+ */
117
+ function useAmbientThemeState() {
118
+ return (0, _react.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
119
+ }
120
+
121
+ /**
122
+ * Non-hook imperative escape hatch (e.g. gesture handlers / worklets bridges /
123
+ * non-React callers). Same debounced store as {@link useAmbientTheme}.
124
+ */
125
+ const ambientTheme = exports.ambientTheme = {
126
+ setAmbient: (seed, accents) => setAmbientInternal(seed, accents, DEFAULT_DEBOUNCE_MS),
127
+ clearAmbient: () => clearAmbientInternal(DEFAULT_DEBOUNCE_MS),
128
+ getState: getSnapshot
129
+ };
130
+
131
+ /** Test-only: flush any pending debounced commit synchronously. */
132
+ function __flushAmbientForTests() {
133
+ if (pendingCommit) {
134
+ if (pendingTimer !== null) {
135
+ clearTimeout(pendingTimer);
136
+ pendingTimer = null;
137
+ }
138
+ const run = pendingCommit;
139
+ pendingCommit = null;
140
+ run();
141
+ }
142
+ }
143
+
144
+ /** Test-only: reset the store to the empty state without notifying via debounce. */
145
+ function __resetAmbientForTests() {
146
+ if (pendingTimer !== null) {
147
+ clearTimeout(pendingTimer);
148
+ pendingTimer = null;
149
+ }
150
+ pendingCommit = null;
151
+ commit(EMPTY_STATE);
152
+ }
153
+ //# sourceMappingURL=ambient-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","DEFAULT_DEBOUNCE_MS","EMPTY_STATE","Object","freeze","seed","secondary","tertiary","state","listeners","Set","pendingTimer","pendingCommit","emit","listener","commit","next","schedule","debounceMs","clearTimeout","run","setTimeout","unref","subscribe","add","delete","getSnapshot","setAmbientInternal","accents","clearAmbientInternal","useAmbientTheme","options","current","useSyncExternalStore","setAmbient","clearAmbient","useAmbientThemeState","ambientTheme","exports","getState","__flushAmbientForTests","__resetAmbientForTests"],"sourceRoot":"../../../src","sources":["theme/ambient-store.ts"],"mappings":"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","ignoreList":[]}
@@ -57,6 +57,12 @@ Object.defineProperty(exports, "THEME_GRADIENTS", {
57
57
  return _gradients.THEME_GRADIENTS;
58
58
  }
59
59
  });
60
+ Object.defineProperty(exports, "ambientTheme", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _ambientStore.ambientTheme;
64
+ }
65
+ });
60
66
  Object.defineProperty(exports, "applyDarkClass", {
61
67
  enumerable: true,
62
68
  get: function () {
@@ -189,6 +195,12 @@ Object.defineProperty(exports, "setColorSchemeSafe", {
189
195
  return _setColorSchemeSafe.setColorSchemeSafe;
190
196
  }
191
197
  });
198
+ Object.defineProperty(exports, "useAmbientTheme", {
199
+ enumerable: true,
200
+ get: function () {
201
+ return _ambientStore.useAmbientTheme;
202
+ }
203
+ });
192
204
  Object.defineProperty(exports, "useBloomTheme", {
193
205
  enumerable: true,
194
206
  get: function () {
@@ -240,6 +252,7 @@ var _buildTheme = require("./build-theme.js");
240
252
  var _buildThemeFromSeed = require("./build-theme-from-seed.js");
241
253
  var _gradients = require("./gradients.js");
242
254
  var _useTheme = require("./use-theme.js");
255
+ var _ambientStore = require("./ambient-store.js");
243
256
  var _useNavigationTheme = require("./use-navigation-theme.js");
244
257
  var _colorPresets = require("./color-presets.js");
245
258
  var _colorUtils = require("./color-utils.js");
@@ -1 +1 @@
1
- {"version":3,"names":["_BloomThemeProvider","require","_colorScope","_seedScope","_seedScope2","_index","_buildTheme","_buildThemeFromSeed","_gradients","_useTheme","_useNavigationTheme","_colorPresets","_colorUtils","_presetVars","_applyDarkClass","_setColorSchemeSafe","_initCssInterop","_persistence"],"sourceRoot":"../../../src","sources":["theme/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AAKA,IAAAI,MAAA,GAAAJ,OAAA;AAaA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,mBAAA,GAAAN,OAAA;AAEA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,mBAAA,GAAAT,OAAA;AAIA,IAAAU,aAAA,GAAAV,OAAA;AAOA,IAAAW,WAAA,GAAAX,OAAA;AAEA,IAAAY,WAAA,GAAAZ,OAAA;AAEA,IAAAa,eAAA,GAAAb,OAAA;AACA,IAAAc,mBAAA,GAAAd,OAAA;AACA,IAAAe,eAAA,GAAAf,OAAA;AAEA,IAAAgB,YAAA,GAAAhB,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_BloomThemeProvider","require","_colorScope","_seedScope","_seedScope2","_index","_buildTheme","_buildThemeFromSeed","_gradients","_useTheme","_ambientStore","_useNavigationTheme","_colorPresets","_colorUtils","_presetVars","_applyDarkClass","_setColorSchemeSafe","_initCssInterop","_persistence"],"sourceRoot":"../../../src","sources":["theme/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AAKA,IAAAI,MAAA,GAAAJ,OAAA;AAaA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,mBAAA,GAAAN,OAAA;AAEA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,aAAA,GAAAT,OAAA;AAOA,IAAAU,mBAAA,GAAAV,OAAA;AAIA,IAAAW,aAAA,GAAAX,OAAA;AAOA,IAAAY,WAAA,GAAAZ,OAAA;AAEA,IAAAa,WAAA,GAAAb,OAAA;AAEA,IAAAc,eAAA,GAAAd,OAAA;AACA,IAAAe,mBAAA,GAAAf,OAAA;AACA,IAAAgB,eAAA,GAAAhB,OAAA;AAEA,IAAAiB,YAAA,GAAAjB,OAAA","ignoreList":[]}
@@ -9,6 +9,7 @@ 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 { useAmbientThemeState } from "./ambient-store.js";
12
13
  import { applyDarkClass, applyVarsToDocument } from "./apply-dark-class.js";
13
14
  import { buildTheme } from "./build-theme.js";
14
15
  import { buildThemeFromSeed } from "./build-theme-from-seed.js";
@@ -166,14 +167,32 @@ export function BloomThemeProvider({
166
167
  }) {
167
168
  const rnScheme = useRNColorScheme();
168
169
 
170
+ // The app-wide ambient override, driven imperatively via `useAmbientTheme()`
171
+ // from anywhere in the app. Subscribed through the module-level store's
172
+ // `useSyncExternalStore` (stable snapshot ref while unchanged → React-Compiler
173
+ // safe). When an ambient seed is set it OVERRIDES the static `seed` prop and
174
+ // the active preset; clearing it restores them.
175
+ const ambient = useAmbientThemeState();
176
+
177
+ // The EFFECTIVE dynamic seed + accents for this render: ambient wins over the
178
+ // static props. `null` ambient seed means "no override" → fall back to the
179
+ // `seed` prop (which itself may be undefined → preset path). When ambient is
180
+ // active, ambient accents replace the static accent props entirely (a null
181
+ // ambient accent = "no pin for this artwork colour").
182
+ const ambientActive = ambient.seed !== null;
183
+ const effectiveSeed = ambientActive ? ambient.seed ?? undefined : seed;
184
+ const effectiveSecondary = ambientActive ? ambient.secondary ?? undefined : secondaryColor;
185
+ const effectiveTertiary = ambientActive ? ambient.tertiary ?? undefined : tertiaryColor;
186
+
169
187
  // The app-wide pinned accents, if any. Memoized so its identity only changes
170
- // when a prop changes (keeps the effect/memo deps below stable). Left
188
+ // when an accent changes (keeps the effect/memo deps below stable). Left
171
189
  // `undefined` when neither is set so every downstream call is byte-identical
172
- // to the no-accent path.
173
- const explicitAccents = useMemo(() => secondaryColor === undefined && tertiaryColor === undefined ? undefined : {
174
- secondaryHex: secondaryColor,
175
- tertiaryHex: tertiaryColor
176
- }, [secondaryColor, tertiaryColor]);
190
+ // to the no-accent path. Uses the EFFECTIVE accents so ambient accents apply
191
+ // to the preset path too when no ambient seed is present.
192
+ const explicitAccents = useMemo(() => effectiveSecondary === undefined && effectiveTertiary === undefined ? undefined : {
193
+ secondaryHex: effectiveSecondary,
194
+ tertiaryHex: effectiveTertiary
195
+ }, [effectiveSecondary, effectiveTertiary]);
177
196
  const {
178
197
  mode,
179
198
  colorPreset,
@@ -204,16 +223,16 @@ export function BloomThemeProvider({
204
223
  // (whole-app dynamic theming — `secondaryColor`/`tertiaryColor` pin this seed's
205
224
  // accents) when `seed` is set, else the named preset. Both go through the same
206
225
  // colour engine, so there is one code path — no seed/preset duplication.
207
- const themeVars = useMemo(() => seed ? buildSeedScopeVars({
208
- seed,
226
+ const themeVars = useMemo(() => effectiveSeed ? buildSeedScopeVars({
227
+ seed: effectiveSeed,
209
228
  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]);
229
+ secondarySeed: effectiveSecondary,
230
+ tertiarySeed: effectiveTertiary
231
+ }) : buildScopeVars(colorPreset, resolved, explicitAccents), [effectiveSeed, effectiveSecondary, effectiveTertiary, colorPreset, resolved, explicitAccents]);
232
+ const themeColors = useMemo(() => effectiveSeed ? buildThemeFromSeed(effectiveSeed, resolved, undefined, undefined, {
233
+ secondarySeed: effectiveSecondary,
234
+ tertiarySeed: effectiveTertiary
235
+ }) : buildTheme(colorPreset, resolved, isAdaptive, explicitAccents), [effectiveSeed, effectiveSecondary, effectiveTertiary, colorPreset, resolved, isAdaptive, explicitAccents]);
217
236
  useIsomorphicLayoutEffect(() => {
218
237
  setColorSchemeSafe(effectiveMode);
219
238
  applyDarkClass(resolved);
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"names":["React","createContext","useCallback","useEffect","useMemo","useRef","useState","Platform","View","useColorScheme","useRNColorScheme","useControllableState","FontLoader","useAmbientThemeState","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","ambient","ambientActive","effectiveSeed","effectiveSecondary","secondary","effectiveTertiary","tertiary","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":[]}
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+
3
+ import { useSyncExternalStore } from 'react';
4
+
5
+ /**
6
+ * The current ambient theme override. When `seed` is non-null the whole app is
7
+ * themed from this dynamic seed (same colour engine the `seed` prop uses),
8
+ * overriding the active preset / static `seed` prop. `secondary`/`tertiary` pin
9
+ * this seed's accent families (e.g. the 2nd/3rd colours extracted from artwork).
10
+ */
11
+
12
+ /** Options for {@link useAmbientTheme}. */
13
+
14
+ const DEFAULT_DEBOUNCE_MS = 120;
15
+
16
+ // A single frozen "no override" snapshot. `getSnapshot` returns this EXACT
17
+ // reference whenever nothing is set, so `useSyncExternalStore` sees a stable
18
+ // identity across renders (React-Compiler-safe: the memoized value never
19
+ // silently goes stale because the snapshot ref only changes on a real commit).
20
+ const EMPTY_STATE = Object.freeze({
21
+ seed: null,
22
+ secondary: null,
23
+ tertiary: null
24
+ });
25
+ let state = EMPTY_STATE;
26
+ const listeners = new Set();
27
+
28
+ // Pending debounced commit. `null` operation means "clear".
29
+ let pendingTimer = null;
30
+ let pendingCommit = null;
31
+ function emit() {
32
+ for (const listener of listeners) listener();
33
+ }
34
+ function commit(next) {
35
+ // Skip a no-op commit so subscribers don't re-render for an identical value.
36
+ if (next.seed === state.seed && next.secondary === state.secondary && next.tertiary === state.tertiary) {
37
+ return;
38
+ }
39
+ state = next;
40
+ emit();
41
+ }
42
+ function schedule(next, debounceMs) {
43
+ if (pendingTimer !== null) {
44
+ clearTimeout(pendingTimer);
45
+ pendingTimer = null;
46
+ }
47
+ const run = () => {
48
+ pendingTimer = null;
49
+ pendingCommit = null;
50
+ commit(next);
51
+ };
52
+ if (debounceMs <= 0) {
53
+ run();
54
+ return;
55
+ }
56
+ pendingCommit = run;
57
+ pendingTimer = setTimeout(run, debounceMs);
58
+ pendingTimer.unref?.();
59
+ }
60
+ function subscribe(listener) {
61
+ listeners.add(listener);
62
+ return () => {
63
+ listeners.delete(listener);
64
+ };
65
+ }
66
+ function getSnapshot() {
67
+ return state;
68
+ }
69
+
70
+ /** Internal setter used by the debounced hook API. */
71
+ function setAmbientInternal(seed, accents, debounceMs) {
72
+ schedule({
73
+ seed,
74
+ secondary: accents?.secondary ?? null,
75
+ tertiary: accents?.tertiary ?? null
76
+ }, debounceMs);
77
+ }
78
+
79
+ /** Internal clear used by the debounced hook API. */
80
+ function clearAmbientInternal(debounceMs) {
81
+ schedule(EMPTY_STATE, debounceMs);
82
+ }
83
+
84
+ /**
85
+ * Read + drive the app-wide ambient theme. Reading returns the current override
86
+ * (via `useSyncExternalStore` — stable snapshot ref while unchanged); the
87
+ * returned `setAmbient`/`clearAmbient` are debounced imperative controls.
88
+ *
89
+ * `BloomThemeProvider` consumes the SAME store internally, so calling
90
+ * `setAmbient(...)` from anywhere themes the whole app through the provider's
91
+ * single apply path — no `seed` prop threading, no app-owned theming store.
92
+ */
93
+ export function useAmbientTheme(options) {
94
+ const debounceMs = options?.debounceMs ?? DEFAULT_DEBOUNCE_MS;
95
+ const current = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
96
+ return {
97
+ seed: current.seed,
98
+ secondary: current.secondary,
99
+ tertiary: current.tertiary,
100
+ setAmbient: (seed, accents) => setAmbientInternal(seed, accents, debounceMs),
101
+ clearAmbient: () => clearAmbientInternal(debounceMs)
102
+ };
103
+ }
104
+
105
+ /**
106
+ * Provider-side subscription. Returns the current ambient state with a stable
107
+ * ref while unchanged. Uses the same store, so it stays in lockstep with any
108
+ * `useAmbientTheme()` caller.
109
+ */
110
+ export function useAmbientThemeState() {
111
+ return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
112
+ }
113
+
114
+ /**
115
+ * Non-hook imperative escape hatch (e.g. gesture handlers / worklets bridges /
116
+ * non-React callers). Same debounced store as {@link useAmbientTheme}.
117
+ */
118
+ export const ambientTheme = {
119
+ setAmbient: (seed, accents) => setAmbientInternal(seed, accents, DEFAULT_DEBOUNCE_MS),
120
+ clearAmbient: () => clearAmbientInternal(DEFAULT_DEBOUNCE_MS),
121
+ getState: getSnapshot
122
+ };
123
+
124
+ /** Test-only: flush any pending debounced commit synchronously. */
125
+ export function __flushAmbientForTests() {
126
+ if (pendingCommit) {
127
+ if (pendingTimer !== null) {
128
+ clearTimeout(pendingTimer);
129
+ pendingTimer = null;
130
+ }
131
+ const run = pendingCommit;
132
+ pendingCommit = null;
133
+ run();
134
+ }
135
+ }
136
+
137
+ /** Test-only: reset the store to the empty state without notifying via debounce. */
138
+ export function __resetAmbientForTests() {
139
+ if (pendingTimer !== null) {
140
+ clearTimeout(pendingTimer);
141
+ pendingTimer = null;
142
+ }
143
+ pendingCommit = null;
144
+ commit(EMPTY_STATE);
145
+ }
146
+ //# sourceMappingURL=ambient-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSyncExternalStore","DEFAULT_DEBOUNCE_MS","EMPTY_STATE","Object","freeze","seed","secondary","tertiary","state","listeners","Set","pendingTimer","pendingCommit","emit","listener","commit","next","schedule","debounceMs","clearTimeout","run","setTimeout","unref","subscribe","add","delete","getSnapshot","setAmbientInternal","accents","clearAmbientInternal","useAmbientTheme","options","current","setAmbient","clearAmbient","useAmbientThemeState","ambientTheme","getState","__flushAmbientForTests","__resetAmbientForTests"],"sourceRoot":"../../../src","sources":["theme/ambient-store.ts"],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,7 @@ export { buildTheme, STATUS_COLORS } from "./build-theme.js";
12
12
  export { buildThemeFromSeed, buildColorsFromSeed } from "./build-theme-from-seed.js";
13
13
  export { THEME_GRADIENTS } from "./gradients.js";
14
14
  export { useTheme, useThemeColor, useBloomTheme } from "./use-theme.js";
15
+ export { useAmbientTheme, ambientTheme } from "./ambient-store.js";
15
16
  export { useNavigationTheme } from "./use-navigation-theme.js";
16
17
  export { APP_COLOR_NAMES, PREMIUM_COLOR_NAMES, APP_COLOR_PRESETS, HEX_TO_APP_COLOR, hexToAppColorName } from "./color-presets.js";
17
18
  export { parseRgb, withAlpha } from "./color-utils.js";
@@ -1 +1 @@
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;AAEjF,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;AAExE,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","useAmbientTheme","ambientTheme","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;AAEjF,SAASC,eAAe,QAAQ,gBAAa;AAC7C,SAASC,QAAQ,EAAEC,aAAa,EAAEC,aAAa,QAAQ,gBAAa;AACpE,SAASC,eAAe,EAAEC,YAAY,QAAQ,oBAAiB;AAO/D,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;AAExE,SAASC,cAAc,QAAQ,uBAAoB;AACnD,SAASC,kBAAkB,QAAQ,4BAAyB;AAC5D,SAASC,sBAAsB,QAAQ,uBAAoB;AAE3D,SAASC,eAAe,QAAQ,kBAAe","ignoreList":[]}