@oxyhq/bloom 0.2.0 → 0.2.1
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/accordion/Accordion.js +2 -1
- package/lib/commonjs/accordion/Accordion.js.map +1 -1
- package/lib/commonjs/checkbox/Checkbox.js +4 -3
- package/lib/commonjs/checkbox/Checkbox.js.map +1 -1
- package/lib/commonjs/collapsible/Collapsible.js +2 -1
- package/lib/commonjs/collapsible/Collapsible.js.map +1 -1
- package/lib/commonjs/context-menu/index.web.js +2 -2
- package/lib/commonjs/context-menu/index.web.js.map +1 -1
- package/lib/commonjs/dialog/Dialog.web.js +2 -2
- package/lib/commonjs/dialog/Dialog.web.js.map +1 -1
- package/lib/commonjs/hooks/usePressAnimation.js +3 -2
- package/lib/commonjs/hooks/usePressAnimation.js.map +1 -1
- package/lib/commonjs/index.js +59 -59
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +59 -59
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/menu/index.web.js +2 -2
- package/lib/commonjs/menu/index.web.js.map +1 -1
- package/lib/commonjs/portal/index.web.js +71 -0
- package/lib/commonjs/portal/index.web.js.map +1 -0
- package/lib/commonjs/prompt-input/PromptInput.js +2 -2
- package/lib/commonjs/prompt-input/PromptInput.js.map +1 -1
- package/lib/commonjs/select/index.web.js +2 -2
- package/lib/commonjs/select/index.web.js.map +1 -1
- package/lib/commonjs/skeleton/index.js +3 -2
- package/lib/commonjs/skeleton/index.js.map +1 -1
- package/lib/commonjs/styles/index.js +7 -0
- package/lib/commonjs/styles/index.js.map +1 -1
- package/lib/commonjs/styles/native-driver.js +23 -0
- package/lib/commonjs/styles/native-driver.js.map +1 -0
- package/lib/commonjs/tooltip/index.js +2 -2
- package/lib/commonjs/tooltip/index.js.map +1 -1
- package/lib/module/accordion/Accordion.js +2 -1
- package/lib/module/accordion/Accordion.js.map +1 -1
- package/lib/module/checkbox/Checkbox.js +4 -3
- package/lib/module/checkbox/Checkbox.js.map +1 -1
- package/lib/module/collapsible/Collapsible.js +2 -1
- package/lib/module/collapsible/Collapsible.js.map +1 -1
- package/lib/module/context-menu/index.web.js +1 -1
- package/lib/module/context-menu/index.web.js.map +1 -1
- package/lib/module/dialog/Dialog.web.js +1 -1
- package/lib/module/dialog/Dialog.web.js.map +1 -1
- package/lib/module/hooks/usePressAnimation.js +3 -2
- package/lib/module/hooks/usePressAnimation.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +1 -1
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/menu/index.web.js +1 -1
- package/lib/module/menu/index.web.js.map +1 -1
- package/lib/module/portal/index.web.js +65 -0
- package/lib/module/portal/index.web.js.map +1 -0
- package/lib/module/prompt-input/PromptInput.js +1 -1
- package/lib/module/prompt-input/PromptInput.js.map +1 -1
- package/lib/module/select/index.web.js +1 -1
- package/lib/module/select/index.web.js.map +1 -1
- package/lib/module/skeleton/index.js +3 -2
- package/lib/module/skeleton/index.js.map +1 -1
- package/lib/module/styles/index.js +1 -0
- package/lib/module/styles/index.js.map +1 -1
- package/lib/module/styles/native-driver.js +18 -0
- package/lib/module/styles/native-driver.js.map +1 -0
- package/lib/module/tooltip/index.js +1 -1
- package/lib/module/tooltip/index.js.map +1 -1
- package/lib/typescript/commonjs/accordion/Accordion.d.ts.map +1 -1
- package/lib/typescript/commonjs/checkbox/Checkbox.d.ts.map +1 -1
- package/lib/typescript/commonjs/collapsible/Collapsible.d.ts.map +1 -1
- package/lib/typescript/commonjs/hooks/usePressAnimation.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.web.d.ts +1 -1
- package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/portal/index.web.d.ts +20 -0
- package/lib/typescript/commonjs/portal/index.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/skeleton/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/styles/index.d.ts +1 -0
- package/lib/typescript/commonjs/styles/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/styles/native-driver.d.ts +2 -0
- package/lib/typescript/commonjs/styles/native-driver.d.ts.map +1 -0
- package/lib/typescript/module/accordion/Accordion.d.ts.map +1 -1
- package/lib/typescript/module/checkbox/Checkbox.d.ts.map +1 -1
- package/lib/typescript/module/collapsible/Collapsible.d.ts.map +1 -1
- package/lib/typescript/module/hooks/usePressAnimation.d.ts.map +1 -1
- package/lib/typescript/module/index.web.d.ts +1 -1
- package/lib/typescript/module/index.web.d.ts.map +1 -1
- package/lib/typescript/module/portal/index.web.d.ts +20 -0
- package/lib/typescript/module/portal/index.web.d.ts.map +1 -0
- package/lib/typescript/module/skeleton/index.d.ts.map +1 -1
- package/lib/typescript/module/styles/index.d.ts +1 -0
- package/lib/typescript/module/styles/index.d.ts.map +1 -1
- package/lib/typescript/module/styles/native-driver.d.ts +2 -0
- package/lib/typescript/module/styles/native-driver.d.ts.map +1 -0
- package/package.json +12 -1
- package/src/accordion/Accordion.tsx +2 -1
- package/src/checkbox/Checkbox.tsx +4 -3
- package/src/collapsible/Collapsible.tsx +2 -1
- package/src/hooks/usePressAnimation.ts +3 -2
- package/src/index.web.ts +1 -1
- package/src/portal/index.web.tsx +59 -0
- package/src/skeleton/index.tsx +3 -2
- package/src/styles/index.ts +1 -0
- package/src/styles/native-driver.ts +16 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Whether the running React Native target supports `Animated`'s native
|
|
5
|
+
* driver. On real native (`Platform.OS === 'ios' | 'android'`) it does,
|
|
6
|
+
* and animations can run on the UI thread off the JS thread. On
|
|
7
|
+
* `react-native-web` there is no native driver — opting in logs a
|
|
8
|
+
* runtime warning every time, with no performance benefit.
|
|
9
|
+
*
|
|
10
|
+
* Use this constant instead of hardcoding `useNativeDriver: true` so
|
|
11
|
+
* Bloom components animate smoothly on every platform and stay silent in
|
|
12
|
+
* web consoles.
|
|
13
|
+
*
|
|
14
|
+
* Resolved once at module load.
|
|
15
|
+
*/
|
|
16
|
+
import { Platform } from 'react-native';
|
|
17
|
+
export const SUPPORTS_NATIVE_DRIVER = Platform.OS !== 'web';
|
|
18
|
+
//# sourceMappingURL=native-driver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Platform","SUPPORTS_NATIVE_DRIVER","OS"],"sourceRoot":"../../../src","sources":["styles/native-driver.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,cAAc;AAEvC,OAAO,MAAMC,sBAAsB,GAAGD,QAAQ,CAACE,EAAE,KAAK,KAAK","ignoreList":[]}
|
|
@@ -6,7 +6,7 @@ import Animated, { Easing, ZoomIn } from 'react-native-reanimated';
|
|
|
6
6
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
7
7
|
import { useTheme } from "../theme/use-theme.js";
|
|
8
8
|
import { atoms as a } from "../styles/index.js";
|
|
9
|
-
import { Portal } from
|
|
9
|
+
import { Portal } from '../portal';
|
|
10
10
|
import { ARROW_HALF_SIZE, ARROW_SIZE, BUBBLE_MAX_WIDTH, MIN_EDGE_SPACE } from "./const.js";
|
|
11
11
|
import { createTextBubble } from "./TextBubble.js";
|
|
12
12
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","Pressable","StyleSheet","useWindowDimensions","View","Animated","Easing","ZoomIn","useSafeAreaInsets","useTheme","atoms","a","Portal","ARROW_HALF_SIZE","ARROW_SIZE","BUBBLE_MAX_WIDTH","MIN_EDGE_SPACE","createTextBubble","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","ARROW_VISUAL_OFFSET","BUBBLE_SHADOW_OFFSET","TooltipContext","position","visible","onVisibleChange","displayName","TargetContext","targetMeasurements","undefined","setTargetMeasurements","shouldMeasure","SheetCompatProvider","children","Outer","requestVisible","setVisible","ctx","targetCtx","Provider","value","Target","hasLayedOut","setHasLayedOut","targetRef","current","measure","_x","_y","width","height","x","y","collapsable","ref","onLayout","Content","label","requestClose","Bubble","theme","insets","dimensions","bubbleMeasurements","setBubbleMeasurements","bubbleBg","isDark","backgroundColor","colors","backgroundSecondary","background","coords","computedPosition","top","bottom","left","right","tipTop","tipLeft","ww","wh","maxTop","maxBottom","cw","ch","minLeft","maxLeft","Math","max","tipTranslate","positionTop","positionBottom","requestCloseWrapped","style","absoluteFill","onPress","accessibilityRole","accessible","role","accessibilityHint","accessibilityLabel","importantForAccessibility","accessibilityViewIsModal","absolute","align_start","opacity","entering","easing","out","exp","transformOrigin","opposite","top_0","z_10","borderTopLeftRadius","rounded_2xs","borderRadius","borderBottomRightRadius","transform","rotate","px_md","py_sm","rounded_sm","shadowColor","shadow","shadowOpacity","shadowRadius","shadowOffset","elevation","e","nativeEvent","layout","TextBubble"],"sourceRoot":"../../../src","sources":["tooltip/index.tsx"],"mappings":";;AAAA,SACEA,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;AACd,SACEC,SAAS,EACTC,UAAU,EACVC,mBAAmB,EACnBC,IAAI,QACC,cAAc;AACrB,OAAOC,QAAQ,IAAIC,MAAM,EAAEC,MAAM,QAAQ,yBAAyB;AAClE,SAASC,iBAAiB,QAAQ,gCAAgC;AAElE,SAASC,QAAQ,QAAQ,uBAAoB;AAC7C,SAASC,KAAK,IAAIC,CAAC,QAAQ,oBAAW;AACtC,SAASC,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"names":["createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","Pressable","StyleSheet","useWindowDimensions","View","Animated","Easing","ZoomIn","useSafeAreaInsets","useTheme","atoms","a","Portal","ARROW_HALF_SIZE","ARROW_SIZE","BUBBLE_MAX_WIDTH","MIN_EDGE_SPACE","createTextBubble","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","ARROW_VISUAL_OFFSET","BUBBLE_SHADOW_OFFSET","TooltipContext","position","visible","onVisibleChange","displayName","TargetContext","targetMeasurements","undefined","setTargetMeasurements","shouldMeasure","SheetCompatProvider","children","Outer","requestVisible","setVisible","ctx","targetCtx","Provider","value","Target","hasLayedOut","setHasLayedOut","targetRef","current","measure","_x","_y","width","height","x","y","collapsable","ref","onLayout","Content","label","requestClose","Bubble","theme","insets","dimensions","bubbleMeasurements","setBubbleMeasurements","bubbleBg","isDark","backgroundColor","colors","backgroundSecondary","background","coords","computedPosition","top","bottom","left","right","tipTop","tipLeft","ww","wh","maxTop","maxBottom","cw","ch","minLeft","maxLeft","Math","max","tipTranslate","positionTop","positionBottom","requestCloseWrapped","style","absoluteFill","onPress","accessibilityRole","accessible","role","accessibilityHint","accessibilityLabel","importantForAccessibility","accessibilityViewIsModal","absolute","align_start","opacity","entering","easing","out","exp","transformOrigin","opposite","top_0","z_10","borderTopLeftRadius","rounded_2xs","borderRadius","borderBottomRightRadius","transform","rotate","px_md","py_sm","rounded_sm","shadowColor","shadow","shadowOpacity","shadowRadius","shadowOffset","elevation","e","nativeEvent","layout","TextBubble"],"sourceRoot":"../../../src","sources":["tooltip/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../../src/accordion/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmF,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../../src/accordion/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmF,MAAM,OAAO,CAAC;AAMxG,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AA+OjB,eAAO,MAAM,SAAS,4CAA2B,CAAC;AAGlD,eAAO,MAAM,aAAa,gDAA+B,CAAC;AAG1D,eAAO,MAAM,gBAAgB,mDAAkC,CAAC;AAGhE,eAAO,MAAM,gBAAgB,mDAAkC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../../src/checkbox/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwD,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../../src/checkbox/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwD,MAAM,OAAO,CAAC;AAM7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA+J7C,eAAO,MAAM,QAAQ,2CAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collapsible.d.ts","sourceRoot":"","sources":["../../../../src/collapsible/Collapsible.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8C,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Collapsible.d.ts","sourceRoot":"","sources":["../../../../src/collapsible/Collapsible.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8C,MAAM,OAAO,CAAC;AAMnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAiFhD,eAAO,MAAM,WAAW,8CAA6B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePressAnimation.d.ts","sourceRoot":"","sources":["../../../../src/hooks/usePressAnimation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"usePressAnimation.d.ts","sourceRoot":"","sources":["../../../../src/hooks/usePressAnimation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKxC;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,GAAE,MAAM,GAAG,SAAgB;;;;;EAuBtE"}
|
|
@@ -8,7 +8,7 @@ export { useDelayedLoading } from './hooks/useDelayedLoading';
|
|
|
8
8
|
export { useThrottledValue } from './hooks/useThrottledValue';
|
|
9
9
|
export * as Icons from './icons';
|
|
10
10
|
export { type Props as IconProps, sizes as iconSizes, useCommonSVGProps } from './icons/common';
|
|
11
|
-
export * from './portal';
|
|
11
|
+
export * from './portal/index.web';
|
|
12
12
|
export * as Dialog from './dialog/index.web';
|
|
13
13
|
export * as Prompt from './prompt';
|
|
14
14
|
export * from './button';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"AAMA,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,KAAK,KAAK,IAAI,SAAS,EAAE,KAAK,IAAI,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGhG,cAAc,
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"AAMA,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,KAAK,KAAK,IAAI,SAAS,EAAE,KAAK,IAAI,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGhG,cAAc,oBAAoB,CAAC;AACnC,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAC9C,cAAc,UAAU,CAAC;AACzB,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAG3C,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,gBAAgB,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvE,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAGzC,cAAc,iBAAiB,CAAC;AAGhC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,WAAW,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web variant of the Portal API.
|
|
3
|
+
*
|
|
4
|
+
* On native we keep the context-based portal group (the consumer mounts a
|
|
5
|
+
* `<Provider />` near the root and an `<Outlet />` to render portaled
|
|
6
|
+
* components inside the native view hierarchy). On web there's a stable
|
|
7
|
+
* `document.body`, so we portal directly there via `react-dom`'s native
|
|
8
|
+
* `createPortal` — no provider, no outlet, no setup. This matches how
|
|
9
|
+
* mature web component libraries (Radix, Mantine, Tamagui) ship their
|
|
10
|
+
* portals.
|
|
11
|
+
*
|
|
12
|
+
* The native and web APIs are kept identical: `Provider` and `Outlet` are
|
|
13
|
+
* still exported on web — they just become harmless no-op fragments so
|
|
14
|
+
* consumers that *do* mount them keep compiling.
|
|
15
|
+
*/
|
|
16
|
+
import React from 'react';
|
|
17
|
+
export declare function Portal({ children }: React.PropsWithChildren<object>): React.ReactPortal | null;
|
|
18
|
+
export declare function Provider(props: React.PropsWithChildren<object>): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export declare const Outlet: React.NamedExoticComponent<object>;
|
|
20
|
+
//# sourceMappingURL=index.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/portal/index.web.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAoD,MAAM,OAAO,CAAC;AAyBzE,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,4BAOnE;AAKD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,2CAE9D;AAED,eAAO,MAAM,MAAM,oCAEjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/skeleton/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAc,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/skeleton/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAc,MAAM,cAAc,CAAC;AAkC1F,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,KAAK,GACN,EAAE;IACD,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,2CA0BA;yBAhCe,IAAI;;;AAmCpB,wBAAgB,MAAM,CAAC,EACrB,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,KAAK,GACN,EAAE;IACD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;CACjC,2CAmBA;yBA7Be,MAAM;;;AAgCtB,wBAAgB,IAAI,CAAC,EACnB,IAAI,EACJ,KAAK,EACL,KAAK,GACN,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;CACjC,2CAkBA;yBA1Be,IAAI;;;AA6BpB,wBAAgB,GAAG,CAAC,EAClB,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;CACjC,2CAEA;yBARe,GAAG;;;AAWnB,wBAAgB,GAAG,CAAC,EAClB,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;CACjC,2CAEA;yBARe,GAAG"}
|
|
@@ -2,4 +2,5 @@ export { atoms, flatten } from './atoms';
|
|
|
2
2
|
export type { ViewStyleProp, TextStyleProp } from './atoms';
|
|
3
3
|
export * as tokens from './tokens';
|
|
4
4
|
export { web, native, ios, android, platform, select } from './platform';
|
|
5
|
+
export { SUPPORTS_NATIVE_DRIVER } from './native-driver';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/styles/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/styles/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-driver.d.ts","sourceRoot":"","sources":["../../../../src/styles/native-driver.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,sBAAsB,SAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../../src/accordion/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmF,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../../src/accordion/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmF,MAAM,OAAO,CAAC;AAMxG,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AA+OjB,eAAO,MAAM,SAAS,4CAA2B,CAAC;AAGlD,eAAO,MAAM,aAAa,gDAA+B,CAAC;AAG1D,eAAO,MAAM,gBAAgB,mDAAkC,CAAC;AAGhE,eAAO,MAAM,gBAAgB,mDAAkC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../../src/checkbox/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwD,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../../src/checkbox/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwD,MAAM,OAAO,CAAC;AAM7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA+J7C,eAAO,MAAM,QAAQ,2CAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collapsible.d.ts","sourceRoot":"","sources":["../../../../src/collapsible/Collapsible.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8C,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Collapsible.d.ts","sourceRoot":"","sources":["../../../../src/collapsible/Collapsible.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8C,MAAM,OAAO,CAAC;AAMnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAiFhD,eAAO,MAAM,WAAW,8CAA6B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePressAnimation.d.ts","sourceRoot":"","sources":["../../../../src/hooks/usePressAnimation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"usePressAnimation.d.ts","sourceRoot":"","sources":["../../../../src/hooks/usePressAnimation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKxC;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,GAAE,MAAM,GAAG,SAAgB;;;;;EAuBtE"}
|
|
@@ -8,7 +8,7 @@ export { useDelayedLoading } from './hooks/useDelayedLoading';
|
|
|
8
8
|
export { useThrottledValue } from './hooks/useThrottledValue';
|
|
9
9
|
export * as Icons from './icons';
|
|
10
10
|
export { type Props as IconProps, sizes as iconSizes, useCommonSVGProps } from './icons/common';
|
|
11
|
-
export * from './portal';
|
|
11
|
+
export * from './portal/index.web';
|
|
12
12
|
export * as Dialog from './dialog/index.web';
|
|
13
13
|
export * as Prompt from './prompt';
|
|
14
14
|
export * from './button';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"AAMA,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,KAAK,KAAK,IAAI,SAAS,EAAE,KAAK,IAAI,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGhG,cAAc,
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"AAMA,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,KAAK,KAAK,IAAI,SAAS,EAAE,KAAK,IAAI,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGhG,cAAc,oBAAoB,CAAC;AACnC,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAC9C,cAAc,UAAU,CAAC;AACzB,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAG3C,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,gBAAgB,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvE,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAGzC,cAAc,iBAAiB,CAAC;AAGhC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,WAAW,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web variant of the Portal API.
|
|
3
|
+
*
|
|
4
|
+
* On native we keep the context-based portal group (the consumer mounts a
|
|
5
|
+
* `<Provider />` near the root and an `<Outlet />` to render portaled
|
|
6
|
+
* components inside the native view hierarchy). On web there's a stable
|
|
7
|
+
* `document.body`, so we portal directly there via `react-dom`'s native
|
|
8
|
+
* `createPortal` — no provider, no outlet, no setup. This matches how
|
|
9
|
+
* mature web component libraries (Radix, Mantine, Tamagui) ship their
|
|
10
|
+
* portals.
|
|
11
|
+
*
|
|
12
|
+
* The native and web APIs are kept identical: `Provider` and `Outlet` are
|
|
13
|
+
* still exported on web — they just become harmless no-op fragments so
|
|
14
|
+
* consumers that *do* mount them keep compiling.
|
|
15
|
+
*/
|
|
16
|
+
import React from 'react';
|
|
17
|
+
export declare function Portal({ children }: React.PropsWithChildren<object>): React.ReactPortal | null;
|
|
18
|
+
export declare function Provider(props: React.PropsWithChildren<object>): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export declare const Outlet: React.NamedExoticComponent<object>;
|
|
20
|
+
//# sourceMappingURL=index.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/portal/index.web.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAoD,MAAM,OAAO,CAAC;AAyBzE,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,4BAOnE;AAKD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,2CAE9D;AAED,eAAO,MAAM,MAAM,oCAEjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/skeleton/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAc,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/skeleton/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAc,MAAM,cAAc,CAAC;AAkC1F,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,KAAK,GACN,EAAE;IACD,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,2CA0BA;yBAhCe,IAAI;;;AAmCpB,wBAAgB,MAAM,CAAC,EACrB,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,KAAK,GACN,EAAE;IACD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;CACjC,2CAmBA;yBA7Be,MAAM;;;AAgCtB,wBAAgB,IAAI,CAAC,EACnB,IAAI,EACJ,KAAK,EACL,KAAK,GACN,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;CACjC,2CAkBA;yBA1Be,IAAI;;;AA6BpB,wBAAgB,GAAG,CAAC,EAClB,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;CACjC,2CAEA;yBARe,GAAG;;;AAWnB,wBAAgB,GAAG,CAAC,EAClB,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;CACjC,2CAEA;yBARe,GAAG"}
|
|
@@ -2,4 +2,5 @@ export { atoms, flatten } from './atoms';
|
|
|
2
2
|
export type { ViewStyleProp, TextStyleProp } from './atoms';
|
|
3
3
|
export * as tokens from './tokens';
|
|
4
4
|
export { web, native, ios, android, platform, select } from './platform';
|
|
5
|
+
export { SUPPORTS_NATIVE_DRIVER } from './native-driver';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/styles/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/styles/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-driver.d.ts","sourceRoot":"","sources":["../../../../src/styles/native-driver.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,sBAAsB,SAAwB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxyhq/bloom",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Bloom UI — Oxy ecosystem component library for React Native + Expo + Web",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -63,6 +63,11 @@
|
|
|
63
63
|
},
|
|
64
64
|
"./portal": {
|
|
65
65
|
"react-native": "./src/portal/index.tsx",
|
|
66
|
+
"browser": {
|
|
67
|
+
"types": "./lib/typescript/module/portal/index.web.d.ts",
|
|
68
|
+
"import": "./lib/module/portal/index.web.js",
|
|
69
|
+
"require": "./lib/commonjs/portal/index.web.js"
|
|
70
|
+
},
|
|
66
71
|
"import": {
|
|
67
72
|
"types": "./lib/typescript/module/portal/index.d.ts",
|
|
68
73
|
"default": "./lib/module/portal/index.js"
|
|
@@ -572,9 +577,11 @@
|
|
|
572
577
|
"@testing-library/react-native": "^13.3.3",
|
|
573
578
|
"@types/jest": "^30.0.0",
|
|
574
579
|
"@types/react": "~19.1.0",
|
|
580
|
+
"@types/react-dom": "^19.2.3",
|
|
575
581
|
"@types/react-native": "*",
|
|
576
582
|
"jest": "^30.3.0",
|
|
577
583
|
"react": "19.2.0",
|
|
584
|
+
"react-dom": "19.2.0",
|
|
578
585
|
"react-native": "0.83.2",
|
|
579
586
|
"react-native-builder-bob": "^0.40.16",
|
|
580
587
|
"react-native-gesture-handler": "^2.30.0",
|
|
@@ -591,6 +598,7 @@
|
|
|
591
598
|
"peerDependencies": {
|
|
592
599
|
"@gorhom/bottom-sheet": ">=5.0.0",
|
|
593
600
|
"react": ">=18.0.0",
|
|
601
|
+
"react-dom": ">=18.0.0",
|
|
594
602
|
"react-native": ">=0.73.0",
|
|
595
603
|
"react-native-gesture-handler": ">=2.0.0",
|
|
596
604
|
"react-native-reanimated": ">=3.0.0",
|
|
@@ -603,6 +611,9 @@
|
|
|
603
611
|
"@gorhom/bottom-sheet": {
|
|
604
612
|
"optional": true
|
|
605
613
|
},
|
|
614
|
+
"react-dom": {
|
|
615
|
+
"optional": true
|
|
616
|
+
},
|
|
606
617
|
"react-native-reanimated": {
|
|
607
618
|
"optional": true
|
|
608
619
|
},
|
|
@@ -3,6 +3,7 @@ import { View, Text, Pressable, Animated, type ViewStyle } from 'react-native';
|
|
|
3
3
|
|
|
4
4
|
import { useTheme } from '../theme/use-theme';
|
|
5
5
|
import { animation, borderRadius, space } from '../styles/tokens';
|
|
6
|
+
import { SUPPORTS_NATIVE_DRIVER } from '../styles/native-driver';
|
|
6
7
|
import type {
|
|
7
8
|
AccordionProps,
|
|
8
9
|
AccordionItemProps,
|
|
@@ -135,7 +136,7 @@ const AccordionTriggerComponent: React.FC<AccordionTriggerProps> = ({
|
|
|
135
136
|
useEffect(() => {
|
|
136
137
|
Animated.spring(rotateAnim, {
|
|
137
138
|
toValue: isExpanded ? 1 : 0,
|
|
138
|
-
useNativeDriver:
|
|
139
|
+
useNativeDriver: SUPPORTS_NATIVE_DRIVER,
|
|
139
140
|
...animation.spring.snappy,
|
|
140
141
|
}).start();
|
|
141
142
|
}, [isExpanded, rotateAnim]);
|
|
@@ -3,6 +3,7 @@ import { View, Text, Pressable, Animated, type ViewStyle } from 'react-native';
|
|
|
3
3
|
|
|
4
4
|
import { useTheme } from '../theme/use-theme';
|
|
5
5
|
import { animation, borderRadius, space } from '../styles/tokens';
|
|
6
|
+
import { SUPPORTS_NATIVE_DRIVER } from '../styles/native-driver';
|
|
6
7
|
import type { CheckboxProps } from './types';
|
|
7
8
|
|
|
8
9
|
const SIZE_CONFIG = {
|
|
@@ -34,7 +35,7 @@ const CheckboxComponent: React.FC<CheckboxProps> = ({
|
|
|
34
35
|
useEffect(() => {
|
|
35
36
|
Animated.spring(scaleAnim, {
|
|
36
37
|
toValue: checked || indeterminate ? 1 : 0,
|
|
37
|
-
useNativeDriver:
|
|
38
|
+
useNativeDriver: SUPPORTS_NATIVE_DRIVER,
|
|
38
39
|
...animation.spring.snappy,
|
|
39
40
|
}).start();
|
|
40
41
|
}, [checked, indeterminate, scaleAnim]);
|
|
@@ -48,7 +49,7 @@ const CheckboxComponent: React.FC<CheckboxProps> = ({
|
|
|
48
49
|
const onPressIn = useCallback(() => {
|
|
49
50
|
Animated.spring(pressAnim, {
|
|
50
51
|
toValue: 0.9,
|
|
51
|
-
useNativeDriver:
|
|
52
|
+
useNativeDriver: SUPPORTS_NATIVE_DRIVER,
|
|
52
53
|
...animation.spring.snappy,
|
|
53
54
|
}).start();
|
|
54
55
|
}, [pressAnim]);
|
|
@@ -56,7 +57,7 @@ const CheckboxComponent: React.FC<CheckboxProps> = ({
|
|
|
56
57
|
const onPressOut = useCallback(() => {
|
|
57
58
|
Animated.spring(pressAnim, {
|
|
58
59
|
toValue: 1,
|
|
59
|
-
useNativeDriver:
|
|
60
|
+
useNativeDriver: SUPPORTS_NATIVE_DRIVER,
|
|
60
61
|
...animation.spring.gentle,
|
|
61
62
|
}).start();
|
|
62
63
|
}, [pressAnim]);
|
|
@@ -3,6 +3,7 @@ import { View, Text, TouchableOpacity, Animated, LayoutAnimation, Platform, UIMa
|
|
|
3
3
|
|
|
4
4
|
import { useTheme } from '../theme/use-theme';
|
|
5
5
|
import { animation } from '../styles/tokens';
|
|
6
|
+
import { SUPPORTS_NATIVE_DRIVER } from '../styles/native-driver';
|
|
6
7
|
import type { CollapsibleProps } from './types';
|
|
7
8
|
|
|
8
9
|
if (Platform.OS === 'android' && UIManager.setLayoutAnimationEnabledExperimental) {
|
|
@@ -31,7 +32,7 @@ const CollapsibleComponent: React.FC<CollapsibleProps> = ({
|
|
|
31
32
|
// Animate chevron rotation in the event handler, not via useEffect
|
|
32
33
|
Animated.spring(chevronAnim, {
|
|
33
34
|
toValue: nextOpen ? 1 : 0,
|
|
34
|
-
useNativeDriver:
|
|
35
|
+
useNativeDriver: SUPPORTS_NATIVE_DRIVER,
|
|
35
36
|
...animation.spring.gentle,
|
|
36
37
|
}).start();
|
|
37
38
|
|
|
@@ -2,6 +2,7 @@ import { useCallback, useRef } from 'react';
|
|
|
2
2
|
import { Animated } from 'react-native';
|
|
3
3
|
|
|
4
4
|
import { animation } from '../styles/tokens';
|
|
5
|
+
import { SUPPORTS_NATIVE_DRIVER } from '../styles/native-driver';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Hook that provides press-scale animation feedback.
|
|
@@ -19,7 +20,7 @@ export function usePressAnimation(pressScale: number | undefined = 0.97) {
|
|
|
19
20
|
if (!enabled) return;
|
|
20
21
|
Animated.spring(scaleAnim, {
|
|
21
22
|
toValue: pressScale!,
|
|
22
|
-
useNativeDriver:
|
|
23
|
+
useNativeDriver: SUPPORTS_NATIVE_DRIVER,
|
|
23
24
|
...animation.spring.snappy,
|
|
24
25
|
}).start();
|
|
25
26
|
}, [scaleAnim, enabled, pressScale]);
|
|
@@ -28,7 +29,7 @@ export function usePressAnimation(pressScale: number | undefined = 0.97) {
|
|
|
28
29
|
if (!enabled) return;
|
|
29
30
|
Animated.spring(scaleAnim, {
|
|
30
31
|
toValue: 1,
|
|
31
|
-
useNativeDriver:
|
|
32
|
+
useNativeDriver: SUPPORTS_NATIVE_DRIVER,
|
|
32
33
|
...animation.spring.gentle,
|
|
33
34
|
}).start();
|
|
34
35
|
}, [scaleAnim, enabled]);
|
package/src/index.web.ts
CHANGED
|
@@ -22,7 +22,7 @@ export * as Icons from './icons';
|
|
|
22
22
|
export { type Props as IconProps, sizes as iconSizes, useCommonSVGProps } from './icons/common';
|
|
23
23
|
|
|
24
24
|
// Core components
|
|
25
|
-
export * from './portal';
|
|
25
|
+
export * from './portal/index.web';
|
|
26
26
|
export * as Dialog from './dialog/index.web';
|
|
27
27
|
export * as Prompt from './prompt';
|
|
28
28
|
export * from './button';
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web variant of the Portal API.
|
|
3
|
+
*
|
|
4
|
+
* On native we keep the context-based portal group (the consumer mounts a
|
|
5
|
+
* `<Provider />` near the root and an `<Outlet />` to render portaled
|
|
6
|
+
* components inside the native view hierarchy). On web there's a stable
|
|
7
|
+
* `document.body`, so we portal directly there via `react-dom`'s native
|
|
8
|
+
* `createPortal` — no provider, no outlet, no setup. This matches how
|
|
9
|
+
* mature web component libraries (Radix, Mantine, Tamagui) ship their
|
|
10
|
+
* portals.
|
|
11
|
+
*
|
|
12
|
+
* The native and web APIs are kept identical: `Provider` and `Outlet` are
|
|
13
|
+
* still exported on web — they just become harmless no-op fragments so
|
|
14
|
+
* consumers that *do* mount them keep compiling.
|
|
15
|
+
*/
|
|
16
|
+
import React, { Fragment, memo, useLayoutEffect, useState } from 'react';
|
|
17
|
+
import { createPortal } from 'react-dom';
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Render children into a stable container at the end of `document.body`.
|
|
21
|
+
*
|
|
22
|
+
* Lazy-creates the container on first mount so SSR (where `document` does
|
|
23
|
+
* not exist) doesn't crash — the portal simply renders nothing on the
|
|
24
|
+
* server and snaps in on hydration.
|
|
25
|
+
*/
|
|
26
|
+
function getPortalRoot(): HTMLElement | null {
|
|
27
|
+
if (typeof document === 'undefined') return null;
|
|
28
|
+
let root = document.getElementById('bloom-portal-root');
|
|
29
|
+
if (!root) {
|
|
30
|
+
root = document.createElement('div');
|
|
31
|
+
root.id = 'bloom-portal-root';
|
|
32
|
+
// Sits above the document flow; individual portaled components can use
|
|
33
|
+
// their own z-index for stacking among themselves.
|
|
34
|
+
root.style.position = 'relative';
|
|
35
|
+
root.style.zIndex = '999999';
|
|
36
|
+
document.body.appendChild(root);
|
|
37
|
+
}
|
|
38
|
+
return root;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function Portal({ children }: React.PropsWithChildren<object>) {
|
|
42
|
+
const [root, setRoot] = useState<HTMLElement | null>(null);
|
|
43
|
+
useLayoutEffect(() => {
|
|
44
|
+
setRoot(getPortalRoot());
|
|
45
|
+
}, []);
|
|
46
|
+
if (!root) return null;
|
|
47
|
+
return createPortal(children, root);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Native API parity — on web these are inert. Provider mounts its children
|
|
51
|
+
// inline; Outlet renders nothing. Consumers that mount them on web keep
|
|
52
|
+
// compiling without behaviour change.
|
|
53
|
+
export function Provider(props: React.PropsWithChildren<object>) {
|
|
54
|
+
return <Fragment>{props.children}</Fragment>;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export const Outlet = memo(function Outlet() {
|
|
58
|
+
return null;
|
|
59
|
+
});
|
package/src/skeleton/index.tsx
CHANGED
|
@@ -2,6 +2,7 @@ import React, { useEffect, useRef } from 'react';
|
|
|
2
2
|
import { Animated, View, type ViewStyle, type TextStyle, StyleSheet } from 'react-native';
|
|
3
3
|
|
|
4
4
|
import { useTheme } from '../theme/use-theme';
|
|
5
|
+
import { SUPPORTS_NATIVE_DRIVER } from '../styles/native-driver';
|
|
5
6
|
|
|
6
7
|
const SHIMMER_DURATION = 1500;
|
|
7
8
|
const SHIMMER_MIN_OPACITY = 0.4;
|
|
@@ -16,12 +17,12 @@ function useShimmer() {
|
|
|
16
17
|
Animated.timing(opacity, {
|
|
17
18
|
toValue: SHIMMER_MIN_OPACITY,
|
|
18
19
|
duration: SHIMMER_DURATION / 2,
|
|
19
|
-
useNativeDriver:
|
|
20
|
+
useNativeDriver: SUPPORTS_NATIVE_DRIVER,
|
|
20
21
|
}),
|
|
21
22
|
Animated.timing(opacity, {
|
|
22
23
|
toValue: SHIMMER_MAX_OPACITY,
|
|
23
24
|
duration: SHIMMER_DURATION / 2,
|
|
24
|
-
useNativeDriver:
|
|
25
|
+
useNativeDriver: SUPPORTS_NATIVE_DRIVER,
|
|
25
26
|
}),
|
|
26
27
|
]),
|
|
27
28
|
);
|
package/src/styles/index.ts
CHANGED
|
@@ -2,3 +2,4 @@ export { atoms, flatten } from './atoms';
|
|
|
2
2
|
export type { ViewStyleProp, TextStyleProp } from './atoms';
|
|
3
3
|
export * as tokens from './tokens';
|
|
4
4
|
export { web, native, ios, android, platform, select } from './platform';
|
|
5
|
+
export { SUPPORTS_NATIVE_DRIVER } from './native-driver';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether the running React Native target supports `Animated`'s native
|
|
3
|
+
* driver. On real native (`Platform.OS === 'ios' | 'android'`) it does,
|
|
4
|
+
* and animations can run on the UI thread off the JS thread. On
|
|
5
|
+
* `react-native-web` there is no native driver — opting in logs a
|
|
6
|
+
* runtime warning every time, with no performance benefit.
|
|
7
|
+
*
|
|
8
|
+
* Use this constant instead of hardcoding `useNativeDriver: true` so
|
|
9
|
+
* Bloom components animate smoothly on every platform and stay silent in
|
|
10
|
+
* web consoles.
|
|
11
|
+
*
|
|
12
|
+
* Resolved once at module load.
|
|
13
|
+
*/
|
|
14
|
+
import { Platform } from 'react-native';
|
|
15
|
+
|
|
16
|
+
export const SUPPORTS_NATIVE_DRIVER = Platform.OS !== 'web';
|