@oxyhq/bloom 0.7.2 → 0.7.3
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/portal/index.js +18 -1
- package/lib/commonjs/portal/index.js.map +1 -1
- package/lib/commonjs/theme/BloomThemeProvider.js +21 -1
- package/lib/commonjs/theme/BloomThemeProvider.js.map +1 -1
- package/lib/module/portal/index.js +18 -1
- package/lib/module/portal/index.js.map +1 -1
- package/lib/module/theme/BloomThemeProvider.js +21 -1
- package/lib/module/theme/BloomThemeProvider.js.map +1 -1
- package/lib/typescript/commonjs/portal/index.d.ts +10 -0
- package/lib/typescript/commonjs/portal/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/BloomThemeProvider.d.ts +23 -0
- package/lib/typescript/commonjs/theme/BloomThemeProvider.d.ts.map +1 -1
- package/lib/typescript/module/portal/index.d.ts +10 -0
- package/lib/typescript/module/portal/index.d.ts.map +1 -1
- package/lib/typescript/module/theme/BloomThemeProvider.d.ts +23 -0
- package/lib/typescript/module/theme/BloomThemeProvider.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/portal/index.tsx +26 -1
- package/src/theme/BloomThemeProvider.tsx +30 -1
|
@@ -72,7 +72,24 @@ function createPortalGroup() {
|
|
|
72
72
|
Portal
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
|
-
|
|
75
|
+
/**
|
|
76
|
+
* `DefaultPortal` is a `globalThis`-guarded singleton so that every physical copy of
|
|
77
|
+
* this module shares ONE portal group (one `Context`, one `Provider`/`Outlet`/`Portal`
|
|
78
|
+
* triple).
|
|
79
|
+
*
|
|
80
|
+
* Why this is required: like the theme module, `exports["./portal"]` ships a
|
|
81
|
+
* `react-native` → `./src/...` condition alongside the `lib/module` / `lib/commonjs`
|
|
82
|
+
* forks, and the `Portal` component is consumed cross-subpath from `./tooltip`,
|
|
83
|
+
* `./prompt-input`, `./dialog`, `./select`, `./menu`, `./context-menu`, and `./popover`
|
|
84
|
+
* while the `Provider`/`Outlet` are mounted once at the app root via `@oxyhq/bloom/portal`.
|
|
85
|
+
* A bundler can resolve those subpaths through different export conditions, so without a
|
|
86
|
+
* guard each physical copy runs its own `createPortalGroup()` and a `<Portal>` from copy
|
|
87
|
+
* A would register against the `Provider`'s map in copy B — its content would never reach
|
|
88
|
+
* the `Outlet`. Anchoring the group on `globalThis` (keyed by `__oxyhq_bloom_portal_group__`)
|
|
89
|
+
* collapses all copies onto one group. Same src-vs-lib dual-instance class as
|
|
90
|
+
* `BloomThemeContext`.
|
|
91
|
+
*/
|
|
92
|
+
const DefaultPortal = globalThis.__oxyhq_bloom_portal_group__ ??= createPortalGroup();
|
|
76
93
|
const Provider = exports.Provider = DefaultPortal.Provider;
|
|
77
94
|
const Outlet = exports.Outlet = /*#__PURE__*/(0, _react.memo)(DefaultPortal.Outlet);
|
|
78
95
|
const Portal = exports.Portal = DefaultPortal.Portal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createPortalGroup","Context","createContext","outlet","append","remove","displayName","Provider","props","map","useRef","setOutlet","useState","useCallback","id","component","current","jsx","Fragment","children","values","contextValue","useMemo","value","Outlet","ctx","useContext","Platform","OS","View","style","styles","portalOutlet","Portal","useId","useEffect","DefaultPortal","exports","memo","StyleSheet","create","position","top","left","right","bottom","pointerEvents","zIndex"],"sourceRoot":"../../../src","sources":["portal/index.tsx"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createPortalGroup","Context","createContext","outlet","append","remove","displayName","Provider","props","map","useRef","setOutlet","useState","useCallback","id","component","current","jsx","Fragment","children","values","contextValue","useMemo","value","Outlet","ctx","useContext","Platform","OS","View","style","styles","portalOutlet","Portal","useId","useEffect","DefaultPortal","globalThis","__oxyhq_bloom_portal_group__","exports","memo","StyleSheet","create","position","top","left","right","bottom","pointerEvents","zIndex"],"sourceRoot":"../../../src","sources":["portal/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -26,7 +26,27 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
|
|
|
26
26
|
|
|
27
27
|
const DEFAULT_PRESET = 'oxy';
|
|
28
28
|
const DEFAULT_MODE = 'system';
|
|
29
|
-
|
|
29
|
+
/**
|
|
30
|
+
* `BloomThemeContext` is a `globalThis`-guarded singleton so that every physical
|
|
31
|
+
* copy of this module returns the SAME React context object.
|
|
32
|
+
*
|
|
33
|
+
* Why this is required: `package.json`'s `exports["./theme"]` ships a
|
|
34
|
+
* `react-native` → `./src/...` condition alongside the `import` → `./lib/module/...`
|
|
35
|
+
* and `require` → `./lib/commonjs/...` forks, so up to three physical copies of the
|
|
36
|
+
* theme module can coexist in a single bundle. A bundler can resolve them through
|
|
37
|
+
* DIFFERENT conditions across import paths — e.g. an app importing `@oxyhq/bloom/theme`
|
|
38
|
+
* lands on the `src` copy while `@oxyhq/bloom/toast`'s `Toast.tsx` imports
|
|
39
|
+
* `../theme/use-theme` relatively and lands on a different physical copy. With a plain
|
|
40
|
+
* module-level `createContext(...)`, each copy creates its OWN context object: the
|
|
41
|
+
* mounted `<BloomThemeProvider>` writes into context A while `useTheme`/`useBloomTheme`/
|
|
42
|
+
* `Toast`/`Dialog` read context B, so `useContext` returns `null` and they throw
|
|
43
|
+
* "must be used within a <BloomThemeProvider>" even when correctly wrapped. This is the
|
|
44
|
+
* same src-vs-lib dual-instance class react-native-css guards its `StyleCollection`/
|
|
45
|
+
* root-variable families against. Anchoring the context on `globalThis` (keyed by the
|
|
46
|
+
* `__oxyhq_bloom_theme_context__` property) collapses all copies onto one object. The
|
|
47
|
+
* `??=` runs `createContext` at most once per process.
|
|
48
|
+
*/
|
|
49
|
+
const BloomThemeContext = exports.BloomThemeContext = globalThis.__oxyhq_bloom_theme_context__ ??= /*#__PURE__*/(0, _react.createContext)(null);
|
|
30
50
|
function useThemeState({
|
|
31
51
|
controlledMode,
|
|
32
52
|
controlledPreset,
|
|
@@ -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","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","children","rnScheme","useRNColorScheme","isAdaptive","effectiveMode","resolved","useIsomorphicLayoutEffect","setColorSchemeSafe","applyDarkClass","applyColorPresetVars","applyNativeRootVars","contextValue","useMemo","theme","buildTheme","shouldAwait","Boolean","isGated","nativeVars","Platform","OS","buildScopeVars","VariableProvider","getVariableContextProvider","content","jsx","FontLoader","enabled","fallback","Provider","nativeTree","View","style","flex"],"sourceRoot":"../../../src","sources":["theme/BloomThemeProvider.tsx"],"mappings":";;;;;;;AAIAA,OAAA;AAEA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AASA,IAAAG,YAAA,GAAAH,OAAA;AAQA,IAAAI,qBAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAEA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AAEA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,eAAA,GAAAT,OAAA;AACA,IAAAU,YAAA,GAAAV,OAAA;AAQA,IAAAW,mBAAA,GAAAX,OAAA;AACA,IAAAY,0BAAA,GAAAZ,OAAA;AAA2E,IAAAa,WAAA,GAAAb,OAAA;AAAA,SAAAE,wBAAAY,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAd,uBAAA,YAAAA,CAAAY,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAxC3E;AACA;AACA;AACA;;AAwCA,MAAMkB,cAA4B,GAAG,KAAK;AAC1C,MAAMC,YAAuB,GAAG,QAAQ;
|
|
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","children","rnScheme","useRNColorScheme","isAdaptive","effectiveMode","resolved","useIsomorphicLayoutEffect","setColorSchemeSafe","applyDarkClass","applyColorPresetVars","applyNativeRootVars","contextValue","useMemo","theme","buildTheme","shouldAwait","Boolean","isGated","nativeVars","Platform","OS","buildScopeVars","VariableProvider","getVariableContextProvider","content","jsx","FontLoader","enabled","fallback","Provider","nativeTree","View","style","flex"],"sourceRoot":"../../../src","sources":["theme/BloomThemeProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -67,7 +67,24 @@ function createPortalGroup() {
|
|
|
67
67
|
Portal
|
|
68
68
|
};
|
|
69
69
|
}
|
|
70
|
-
|
|
70
|
+
/**
|
|
71
|
+
* `DefaultPortal` is a `globalThis`-guarded singleton so that every physical copy of
|
|
72
|
+
* this module shares ONE portal group (one `Context`, one `Provider`/`Outlet`/`Portal`
|
|
73
|
+
* triple).
|
|
74
|
+
*
|
|
75
|
+
* Why this is required: like the theme module, `exports["./portal"]` ships a
|
|
76
|
+
* `react-native` → `./src/...` condition alongside the `lib/module` / `lib/commonjs`
|
|
77
|
+
* forks, and the `Portal` component is consumed cross-subpath from `./tooltip`,
|
|
78
|
+
* `./prompt-input`, `./dialog`, `./select`, `./menu`, `./context-menu`, and `./popover`
|
|
79
|
+
* while the `Provider`/`Outlet` are mounted once at the app root via `@oxyhq/bloom/portal`.
|
|
80
|
+
* A bundler can resolve those subpaths through different export conditions, so without a
|
|
81
|
+
* guard each physical copy runs its own `createPortalGroup()` and a `<Portal>` from copy
|
|
82
|
+
* A would register against the `Provider`'s map in copy B — its content would never reach
|
|
83
|
+
* the `Outlet`. Anchoring the group on `globalThis` (keyed by `__oxyhq_bloom_portal_group__`)
|
|
84
|
+
* collapses all copies onto one group. Same src-vs-lib dual-instance class as
|
|
85
|
+
* `BloomThemeContext`.
|
|
86
|
+
*/
|
|
87
|
+
const DefaultPortal = globalThis.__oxyhq_bloom_portal_group__ ??= createPortalGroup();
|
|
71
88
|
export const Provider = DefaultPortal.Provider;
|
|
72
89
|
export const Outlet = /*#__PURE__*/memo(DefaultPortal.Outlet);
|
|
73
90
|
export const Portal = DefaultPortal.Portal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createContext","Fragment","memo","useCallback","useContext","useEffect","useId","useMemo","useRef","useState","View","StyleSheet","Platform","jsx","_jsx","_Fragment","createPortalGroup","Context","outlet","append","remove","displayName","Provider","props","map","setOutlet","id","component","current","children","Object","values","contextValue","value","Outlet","ctx","OS","style","styles","portalOutlet","Portal","DefaultPortal","create","position","top","left","right","bottom","pointerEvents","zIndex"],"sourceRoot":"../../../src","sources":["portal/index.tsx"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["React","createContext","Fragment","memo","useCallback","useContext","useEffect","useId","useMemo","useRef","useState","View","StyleSheet","Platform","jsx","_jsx","_Fragment","createPortalGroup","Context","outlet","append","remove","displayName","Provider","props","map","setOutlet","id","component","current","children","Object","values","contextValue","value","Outlet","ctx","OS","style","styles","portalOutlet","Portal","DefaultPortal","globalThis","__oxyhq_bloom_portal_group__","create","position","top","left","right","bottom","pointerEvents","zIndex"],"sourceRoot":"../../../src","sources":["portal/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,7 +19,27 @@ import { useIsomorphicLayoutEffect } from "./use-isomorphic-layout-effect.js";
|
|
|
19
19
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
20
20
|
const DEFAULT_PRESET = 'oxy';
|
|
21
21
|
const DEFAULT_MODE = 'system';
|
|
22
|
-
|
|
22
|
+
/**
|
|
23
|
+
* `BloomThemeContext` is a `globalThis`-guarded singleton so that every physical
|
|
24
|
+
* copy of this module returns the SAME React context object.
|
|
25
|
+
*
|
|
26
|
+
* Why this is required: `package.json`'s `exports["./theme"]` ships a
|
|
27
|
+
* `react-native` → `./src/...` condition alongside the `import` → `./lib/module/...`
|
|
28
|
+
* and `require` → `./lib/commonjs/...` forks, so up to three physical copies of the
|
|
29
|
+
* theme module can coexist in a single bundle. A bundler can resolve them through
|
|
30
|
+
* DIFFERENT conditions across import paths — e.g. an app importing `@oxyhq/bloom/theme`
|
|
31
|
+
* lands on the `src` copy while `@oxyhq/bloom/toast`'s `Toast.tsx` imports
|
|
32
|
+
* `../theme/use-theme` relatively and lands on a different physical copy. With a plain
|
|
33
|
+
* module-level `createContext(...)`, each copy creates its OWN context object: the
|
|
34
|
+
* mounted `<BloomThemeProvider>` writes into context A while `useTheme`/`useBloomTheme`/
|
|
35
|
+
* `Toast`/`Dialog` read context B, so `useContext` returns `null` and they throw
|
|
36
|
+
* "must be used within a <BloomThemeProvider>" even when correctly wrapped. This is the
|
|
37
|
+
* same src-vs-lib dual-instance class react-native-css guards its `StyleCollection`/
|
|
38
|
+
* root-variable families against. Anchoring the context on `globalThis` (keyed by the
|
|
39
|
+
* `__oxyhq_bloom_theme_context__` property) collapses all copies onto one object. The
|
|
40
|
+
* `??=` runs `createContext` at most once per process.
|
|
41
|
+
*/
|
|
42
|
+
export const BloomThemeContext = globalThis.__oxyhq_bloom_theme_context__ ??= /*#__PURE__*/createContext(null);
|
|
23
43
|
function useThemeState({
|
|
24
44
|
controlledMode,
|
|
25
45
|
controlledPreset,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createContext","useCallback","useEffect","useMemo","useRef","useState","Platform","View","useColorScheme","useRNColorScheme","useControllableState","FontLoader","applyDarkClass","applyColorPresetVars","buildTheme","buildScopeVars","getVariableContextProvider","applyNativeRootVars","readPersistedTheme","readPersistedThemeSync","removePersistedTheme","writePersistedTheme","setColorSchemeSafe","useIsomorphicLayoutEffect","jsx","_jsx","DEFAULT_PRESET","DEFAULT_MODE","BloomThemeContext","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","children","rnScheme","isAdaptive","effectiveMode","resolved","contextValue","theme","shouldAwait","Boolean","isGated","nativeVars","OS","VariableProvider","content","enabled","fallback","Provider","nativeTree","style","flex"],"sourceRoot":"../../../src","sources":["theme/BloomThemeProvider.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA,OAAO,uBAAoB;AAE3B,OAAOA,KAAK,IACVC,aAAa,EACbC,WAAW,EAEXC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;AACd,SACEC,QAAQ,EACRC,IAAI,EACJC,cAAc,IAAIC,gBAAgB,QAG7B,cAAc;AAErB,SAASC,oBAAoB,QAAQ,kCAA+B;AACpE,SAASC,UAAU,QAAQ,qBAAqB;AAEhD,SAASC,cAAc,EAAEC,oBAAoB,QAAQ,uBAAoB;AACzE,SAASC,UAAU,QAAQ,kBAAe;AAE1C,SAASC,cAAc,EAAEC,0BAA0B,QAAQ,gCAA6B;AACxF,SAASC,mBAAmB,QAAQ,oBAAoB;AACxD,SACEC,kBAAkB,EAClBC,sBAAsB,EACtBC,oBAAoB,EACpBC,mBAAmB,QAGd,kBAAe;AACtB,SAASC,kBAAkB,QAAQ,4BAAyB;AAC5D,SAASC,yBAAyB,QAAQ,mCAAgC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG3E,MAAMC,cAA4B,GAAG,KAAK;AAC1C,MAAMC,YAAuB,GAAG,QAAQ;
|
|
1
|
+
{"version":3,"names":["React","createContext","useCallback","useEffect","useMemo","useRef","useState","Platform","View","useColorScheme","useRNColorScheme","useControllableState","FontLoader","applyDarkClass","applyColorPresetVars","buildTheme","buildScopeVars","getVariableContextProvider","applyNativeRootVars","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","children","rnScheme","isAdaptive","effectiveMode","resolved","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,5 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
declare function createPortalGroup(): {
|
|
3
|
+
Provider: (props: React.PropsWithChildren<object>) => import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
Outlet: () => import("react/jsx-runtime").JSX.Element | null;
|
|
5
|
+
Portal: ({ children }: React.PropsWithChildren<object>) => null;
|
|
6
|
+
};
|
|
7
|
+
type PortalGroup = ReturnType<typeof createPortalGroup>;
|
|
8
|
+
declare global {
|
|
9
|
+
var __oxyhq_bloom_portal_group__: PortalGroup | undefined;
|
|
10
|
+
}
|
|
2
11
|
export declare const Provider: (props: React.PropsWithChildren<object>) => import("react/jsx-runtime").JSX.Element;
|
|
3
12
|
export declare const Outlet: React.MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element | null>;
|
|
4
13
|
export declare const Portal: ({ children }: React.PropsWithChildren<object>) => null;
|
|
14
|
+
export {};
|
|
5
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/portal/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAWN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/portal/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAWN,MAAM,OAAO,CAAC;AAef,iBAAS,iBAAiB;sBAQC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC;;2BAkC1B,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC;EAa9D;AAED,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAExD,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,4BAA4B,EAAE,WAAW,GAAG,SAAS,CAAC;CAC3D;AAsBD,eAAO,MAAM,QAAQ,UA5EM,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,4CA4EZ,CAAC;AAC/C,eAAO,MAAM,MAAM,iFAA6B,CAAC;AACjD,eAAO,MAAM,MAAM,iBA5Ca,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,SA4CrB,CAAC"}
|
|
@@ -17,6 +17,29 @@ export interface BloomThemeContextValue {
|
|
|
17
17
|
*/
|
|
18
18
|
resetTheme: () => void;
|
|
19
19
|
}
|
|
20
|
+
declare global {
|
|
21
|
+
var __oxyhq_bloom_theme_context__: React.Context<BloomThemeContextValue | null> | undefined;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* `BloomThemeContext` is a `globalThis`-guarded singleton so that every physical
|
|
25
|
+
* copy of this module returns the SAME React context object.
|
|
26
|
+
*
|
|
27
|
+
* Why this is required: `package.json`'s `exports["./theme"]` ships a
|
|
28
|
+
* `react-native` → `./src/...` condition alongside the `import` → `./lib/module/...`
|
|
29
|
+
* and `require` → `./lib/commonjs/...` forks, so up to three physical copies of the
|
|
30
|
+
* theme module can coexist in a single bundle. A bundler can resolve them through
|
|
31
|
+
* DIFFERENT conditions across import paths — e.g. an app importing `@oxyhq/bloom/theme`
|
|
32
|
+
* lands on the `src` copy while `@oxyhq/bloom/toast`'s `Toast.tsx` imports
|
|
33
|
+
* `../theme/use-theme` relatively and lands on a different physical copy. With a plain
|
|
34
|
+
* module-level `createContext(...)`, each copy creates its OWN context object: the
|
|
35
|
+
* mounted `<BloomThemeProvider>` writes into context A while `useTheme`/`useBloomTheme`/
|
|
36
|
+
* `Toast`/`Dialog` read context B, so `useContext` returns `null` and they throw
|
|
37
|
+
* "must be used within a <BloomThemeProvider>" even when correctly wrapped. This is the
|
|
38
|
+
* same src-vs-lib dual-instance class react-native-css guards its `StyleCollection`/
|
|
39
|
+
* root-variable families against. Anchoring the context on `globalThis` (keyed by the
|
|
40
|
+
* `__oxyhq_bloom_theme_context__` property) collapses all copies onto one object. The
|
|
41
|
+
* `??=` runs `createContext` at most once per process.
|
|
42
|
+
*/
|
|
20
43
|
export declare const BloomThemeContext: React.Context<BloomThemeContextValue | null>;
|
|
21
44
|
export interface BloomThemeProviderProps {
|
|
22
45
|
/** Controlled mode. Omit to use Bloom's internal state (with optional persistence). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BloomThemeProvider.d.ts","sourceRoot":"","sources":["../../../../src/theme/BloomThemeProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,KAQN,MAAM,OAAO,CAAC;AACf,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAOtB,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAKL,KAAK,iBAAiB,EAEvB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAKhD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,YAAY,CAAC;IAC1B,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACnC,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/C;;;;OAIG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"BloomThemeProvider.d.ts","sourceRoot":"","sources":["../../../../src/theme/BloomThemeProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,KAQN,MAAM,OAAO,CAAC;AACf,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAOtB,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAKL,KAAK,iBAAiB,EAEvB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAKhD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,YAAY,CAAC;IAC1B,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACnC,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/C;;;;OAIG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,6BAA6B,EAC7B,KAAK,CAAC,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAC5C,SAAS,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAEpB,CAAC;AAExD,MAAM,WAAW,uBAAuB;IACtC,uFAAuF;IACvF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,mEAAmE;IACnE,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,mEAAmE;IACnE,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAElC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAErD;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iDAAiD;IACjD,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE9B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEjC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAE1C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAkJD,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,gBAAgB,EAC7B,WAA0B,EAC1B,kBAAmC,EACnC,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,OAAO,EACP,cAAc,EACd,WAAW,EACX,KAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,QAAQ,GACT,EAAE,uBAAuB,2CAwFzB"}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
declare function createPortalGroup(): {
|
|
3
|
+
Provider: (props: React.PropsWithChildren<object>) => import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
Outlet: () => import("react/jsx-runtime").JSX.Element | null;
|
|
5
|
+
Portal: ({ children }: React.PropsWithChildren<object>) => null;
|
|
6
|
+
};
|
|
7
|
+
type PortalGroup = ReturnType<typeof createPortalGroup>;
|
|
8
|
+
declare global {
|
|
9
|
+
var __oxyhq_bloom_portal_group__: PortalGroup | undefined;
|
|
10
|
+
}
|
|
2
11
|
export declare const Provider: (props: React.PropsWithChildren<object>) => import("react/jsx-runtime").JSX.Element;
|
|
3
12
|
export declare const Outlet: React.MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element | null>;
|
|
4
13
|
export declare const Portal: ({ children }: React.PropsWithChildren<object>) => null;
|
|
14
|
+
export {};
|
|
5
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/portal/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAWN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/portal/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAWN,MAAM,OAAO,CAAC;AAef,iBAAS,iBAAiB;sBAQC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC;;2BAkC1B,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC;EAa9D;AAED,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAExD,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,4BAA4B,EAAE,WAAW,GAAG,SAAS,CAAC;CAC3D;AAsBD,eAAO,MAAM,QAAQ,UA5EM,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,4CA4EZ,CAAC;AAC/C,eAAO,MAAM,MAAM,iFAA6B,CAAC;AACjD,eAAO,MAAM,MAAM,iBA5Ca,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,SA4CrB,CAAC"}
|
|
@@ -17,6 +17,29 @@ export interface BloomThemeContextValue {
|
|
|
17
17
|
*/
|
|
18
18
|
resetTheme: () => void;
|
|
19
19
|
}
|
|
20
|
+
declare global {
|
|
21
|
+
var __oxyhq_bloom_theme_context__: React.Context<BloomThemeContextValue | null> | undefined;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* `BloomThemeContext` is a `globalThis`-guarded singleton so that every physical
|
|
25
|
+
* copy of this module returns the SAME React context object.
|
|
26
|
+
*
|
|
27
|
+
* Why this is required: `package.json`'s `exports["./theme"]` ships a
|
|
28
|
+
* `react-native` → `./src/...` condition alongside the `import` → `./lib/module/...`
|
|
29
|
+
* and `require` → `./lib/commonjs/...` forks, so up to three physical copies of the
|
|
30
|
+
* theme module can coexist in a single bundle. A bundler can resolve them through
|
|
31
|
+
* DIFFERENT conditions across import paths — e.g. an app importing `@oxyhq/bloom/theme`
|
|
32
|
+
* lands on the `src` copy while `@oxyhq/bloom/toast`'s `Toast.tsx` imports
|
|
33
|
+
* `../theme/use-theme` relatively and lands on a different physical copy. With a plain
|
|
34
|
+
* module-level `createContext(...)`, each copy creates its OWN context object: the
|
|
35
|
+
* mounted `<BloomThemeProvider>` writes into context A while `useTheme`/`useBloomTheme`/
|
|
36
|
+
* `Toast`/`Dialog` read context B, so `useContext` returns `null` and they throw
|
|
37
|
+
* "must be used within a <BloomThemeProvider>" even when correctly wrapped. This is the
|
|
38
|
+
* same src-vs-lib dual-instance class react-native-css guards its `StyleCollection`/
|
|
39
|
+
* root-variable families against. Anchoring the context on `globalThis` (keyed by the
|
|
40
|
+
* `__oxyhq_bloom_theme_context__` property) collapses all copies onto one object. The
|
|
41
|
+
* `??=` runs `createContext` at most once per process.
|
|
42
|
+
*/
|
|
20
43
|
export declare const BloomThemeContext: React.Context<BloomThemeContextValue | null>;
|
|
21
44
|
export interface BloomThemeProviderProps {
|
|
22
45
|
/** Controlled mode. Omit to use Bloom's internal state (with optional persistence). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BloomThemeProvider.d.ts","sourceRoot":"","sources":["../../../../src/theme/BloomThemeProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,KAQN,MAAM,OAAO,CAAC;AACf,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAOtB,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAKL,KAAK,iBAAiB,EAEvB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAKhD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,YAAY,CAAC;IAC1B,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACnC,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/C;;;;OAIG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"BloomThemeProvider.d.ts","sourceRoot":"","sources":["../../../../src/theme/BloomThemeProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,KAQN,MAAM,OAAO,CAAC;AACf,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAOtB,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAKL,KAAK,iBAAiB,EAEvB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAKhD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,YAAY,CAAC;IAC1B,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACnC,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/C;;;;OAIG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,6BAA6B,EAC7B,KAAK,CAAC,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAC5C,SAAS,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAEpB,CAAC;AAExD,MAAM,WAAW,uBAAuB;IACtC,uFAAuF;IACvF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,mEAAmE;IACnE,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,mEAAmE;IACnE,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAElC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAErD;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iDAAiD;IACjD,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE9B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEjC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAE1C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAkJD,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,gBAAgB,EAC7B,WAA0B,EAC1B,kBAAmC,EACnC,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,OAAO,EACP,cAAc,EACd,WAAW,EACX,KAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,QAAQ,GACT,EAAE,uBAAuB,2CAwFzB"}
|
package/package.json
CHANGED
package/src/portal/index.tsx
CHANGED
|
@@ -81,7 +81,32 @@ function createPortalGroup() {
|
|
|
81
81
|
return { Provider, Outlet, Portal };
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
type PortalGroup = ReturnType<typeof createPortalGroup>;
|
|
85
|
+
|
|
86
|
+
declare global {
|
|
87
|
+
// eslint-disable-next-line no-var
|
|
88
|
+
var __oxyhq_bloom_portal_group__: PortalGroup | undefined;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* `DefaultPortal` is a `globalThis`-guarded singleton so that every physical copy of
|
|
93
|
+
* this module shares ONE portal group (one `Context`, one `Provider`/`Outlet`/`Portal`
|
|
94
|
+
* triple).
|
|
95
|
+
*
|
|
96
|
+
* Why this is required: like the theme module, `exports["./portal"]` ships a
|
|
97
|
+
* `react-native` → `./src/...` condition alongside the `lib/module` / `lib/commonjs`
|
|
98
|
+
* forks, and the `Portal` component is consumed cross-subpath from `./tooltip`,
|
|
99
|
+
* `./prompt-input`, `./dialog`, `./select`, `./menu`, `./context-menu`, and `./popover`
|
|
100
|
+
* while the `Provider`/`Outlet` are mounted once at the app root via `@oxyhq/bloom/portal`.
|
|
101
|
+
* A bundler can resolve those subpaths through different export conditions, so without a
|
|
102
|
+
* guard each physical copy runs its own `createPortalGroup()` and a `<Portal>` from copy
|
|
103
|
+
* A would register against the `Provider`'s map in copy B — its content would never reach
|
|
104
|
+
* the `Outlet`. Anchoring the group on `globalThis` (keyed by `__oxyhq_bloom_portal_group__`)
|
|
105
|
+
* collapses all copies onto one group. Same src-vs-lib dual-instance class as
|
|
106
|
+
* `BloomThemeContext`.
|
|
107
|
+
*/
|
|
108
|
+
const DefaultPortal: PortalGroup = (globalThis.__oxyhq_bloom_portal_group__ ??=
|
|
109
|
+
createPortalGroup());
|
|
85
110
|
|
|
86
111
|
export const Provider = DefaultPortal.Provider;
|
|
87
112
|
export const Outlet = memo(DefaultPortal.Outlet);
|
|
@@ -58,7 +58,36 @@ export interface BloomThemeContextValue {
|
|
|
58
58
|
resetTheme: () => void;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
declare global {
|
|
62
|
+
// eslint-disable-next-line no-var
|
|
63
|
+
var __oxyhq_bloom_theme_context__:
|
|
64
|
+
| React.Context<BloomThemeContextValue | null>
|
|
65
|
+
| undefined;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* `BloomThemeContext` is a `globalThis`-guarded singleton so that every physical
|
|
70
|
+
* copy of this module returns the SAME React context object.
|
|
71
|
+
*
|
|
72
|
+
* Why this is required: `package.json`'s `exports["./theme"]` ships a
|
|
73
|
+
* `react-native` → `./src/...` condition alongside the `import` → `./lib/module/...`
|
|
74
|
+
* and `require` → `./lib/commonjs/...` forks, so up to three physical copies of the
|
|
75
|
+
* theme module can coexist in a single bundle. A bundler can resolve them through
|
|
76
|
+
* DIFFERENT conditions across import paths — e.g. an app importing `@oxyhq/bloom/theme`
|
|
77
|
+
* lands on the `src` copy while `@oxyhq/bloom/toast`'s `Toast.tsx` imports
|
|
78
|
+
* `../theme/use-theme` relatively and lands on a different physical copy. With a plain
|
|
79
|
+
* module-level `createContext(...)`, each copy creates its OWN context object: the
|
|
80
|
+
* mounted `<BloomThemeProvider>` writes into context A while `useTheme`/`useBloomTheme`/
|
|
81
|
+
* `Toast`/`Dialog` read context B, so `useContext` returns `null` and they throw
|
|
82
|
+
* "must be used within a <BloomThemeProvider>" even when correctly wrapped. This is the
|
|
83
|
+
* same src-vs-lib dual-instance class react-native-css guards its `StyleCollection`/
|
|
84
|
+
* root-variable families against. Anchoring the context on `globalThis` (keyed by the
|
|
85
|
+
* `__oxyhq_bloom_theme_context__` property) collapses all copies onto one object. The
|
|
86
|
+
* `??=` runs `createContext` at most once per process.
|
|
87
|
+
*/
|
|
88
|
+
export const BloomThemeContext: React.Context<BloomThemeContextValue | null> =
|
|
89
|
+
(globalThis.__oxyhq_bloom_theme_context__ ??=
|
|
90
|
+
createContext<BloomThemeContextValue | null>(null));
|
|
62
91
|
|
|
63
92
|
export interface BloomThemeProviderProps {
|
|
64
93
|
/** Controlled mode. Omit to use Bloom's internal state (with optional persistence). */
|