@oxyhq/bloom 0.51.1 → 0.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/frosted-icon-button/shared.js +10 -0
- package/lib/commonjs/frosted-icon-button/shared.js.map +1 -1
- package/lib/commonjs/tab-bar/TabBarBase.js +30 -5
- package/lib/commonjs/tab-bar/TabBarBase.js.map +1 -1
- package/lib/commonjs/tab-bar/glyph.js +9 -4
- package/lib/commonjs/tab-bar/glyph.js.map +1 -1
- package/lib/commonjs/tab-bar/glyph.native.js +7 -2
- package/lib/commonjs/tab-bar/glyph.native.js.map +1 -1
- package/lib/commonjs/tab-bar/index.js +7 -0
- package/lib/commonjs/tab-bar/index.js.map +1 -1
- package/lib/commonjs/tab-bar/index.web.js +7 -0
- package/lib/commonjs/tab-bar/index.web.js.map +1 -1
- package/lib/commonjs/tab-bar/shared.js +32 -1
- package/lib/commonjs/tab-bar/shared.js.map +1 -1
- package/lib/commonjs/tab-bar/use-reserved-space.js +50 -0
- package/lib/commonjs/tab-bar/use-reserved-space.js.map +1 -0
- package/lib/module/frosted-icon-button/shared.js +10 -0
- package/lib/module/frosted-icon-button/shared.js.map +1 -1
- package/lib/module/tab-bar/TabBarBase.js +31 -6
- package/lib/module/tab-bar/TabBarBase.js.map +1 -1
- package/lib/module/tab-bar/glyph.js +9 -4
- package/lib/module/tab-bar/glyph.js.map +1 -1
- package/lib/module/tab-bar/glyph.native.js +7 -2
- package/lib/module/tab-bar/glyph.native.js.map +1 -1
- package/lib/module/tab-bar/index.js +1 -0
- package/lib/module/tab-bar/index.js.map +1 -1
- package/lib/module/tab-bar/index.web.js +1 -0
- package/lib/module/tab-bar/index.web.js.map +1 -1
- package/lib/module/tab-bar/shared.js +30 -0
- package/lib/module/tab-bar/shared.js.map +1 -1
- package/lib/module/tab-bar/use-reserved-space.js +46 -0
- package/lib/module/tab-bar/use-reserved-space.js.map +1 -0
- package/lib/typescript/commonjs/frosted-icon-button/shared.d.ts +10 -0
- package/lib/typescript/commonjs/frosted-icon-button/shared.d.ts.map +1 -1
- package/lib/typescript/commonjs/tab-bar/TabBarBase.d.ts.map +1 -1
- package/lib/typescript/commonjs/tab-bar/glyph.d.ts +1 -1
- package/lib/typescript/commonjs/tab-bar/glyph.d.ts.map +1 -1
- package/lib/typescript/commonjs/tab-bar/glyph.native.d.ts +1 -1
- package/lib/typescript/commonjs/tab-bar/glyph.native.d.ts.map +1 -1
- package/lib/typescript/commonjs/tab-bar/index.d.ts +1 -0
- package/lib/typescript/commonjs/tab-bar/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/tab-bar/index.web.d.ts +1 -0
- package/lib/typescript/commonjs/tab-bar/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/tab-bar/shared.d.ts +25 -0
- package/lib/typescript/commonjs/tab-bar/shared.d.ts.map +1 -1
- package/lib/typescript/commonjs/tab-bar/types.d.ts +37 -1
- package/lib/typescript/commonjs/tab-bar/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/tab-bar/use-reserved-space.d.ts +25 -0
- package/lib/typescript/commonjs/tab-bar/use-reserved-space.d.ts.map +1 -0
- package/lib/typescript/module/frosted-icon-button/shared.d.ts +10 -0
- package/lib/typescript/module/frosted-icon-button/shared.d.ts.map +1 -1
- package/lib/typescript/module/tab-bar/TabBarBase.d.ts.map +1 -1
- package/lib/typescript/module/tab-bar/glyph.d.ts +1 -1
- package/lib/typescript/module/tab-bar/glyph.d.ts.map +1 -1
- package/lib/typescript/module/tab-bar/glyph.native.d.ts +1 -1
- package/lib/typescript/module/tab-bar/glyph.native.d.ts.map +1 -1
- package/lib/typescript/module/tab-bar/index.d.ts +1 -0
- package/lib/typescript/module/tab-bar/index.d.ts.map +1 -1
- package/lib/typescript/module/tab-bar/index.web.d.ts +1 -0
- package/lib/typescript/module/tab-bar/index.web.d.ts.map +1 -1
- package/lib/typescript/module/tab-bar/shared.d.ts +25 -0
- package/lib/typescript/module/tab-bar/shared.d.ts.map +1 -1
- package/lib/typescript/module/tab-bar/types.d.ts +37 -1
- package/lib/typescript/module/tab-bar/types.d.ts.map +1 -1
- package/lib/typescript/module/tab-bar/use-reserved-space.d.ts +25 -0
- package/lib/typescript/module/tab-bar/use-reserved-space.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/__tests__/TabBar.test.tsx +82 -2
- package/src/__tests__/TabBarLongPress.test.tsx +258 -0
- package/src/__tests__/TabBarReservedSpace.test.tsx +150 -0
- package/src/__tests__/TabBarWebFork.test.ts +1 -0
- package/src/frosted-icon-button/shared.ts +10 -0
- package/src/tab-bar/TabBarBase.tsx +39 -5
- package/src/tab-bar/glyph.native.tsx +5 -2
- package/src/tab-bar/glyph.tsx +8 -4
- package/src/tab-bar/index.ts +1 -0
- package/src/tab-bar/index.web.tsx +1 -0
- package/src/tab-bar/shared.ts +38 -0
- package/src/tab-bar/types.ts +37 -1
- package/src/tab-bar/use-reserved-space.ts +44 -0
|
@@ -100,6 +100,16 @@ function resolveFrostedPalette(colors, isDark) {
|
|
|
100
100
|
* so any bare Bloom icon element gets the theme-aware color for free while an
|
|
101
101
|
* explicitly-colored icon is never overridden. Non-element children (plain
|
|
102
102
|
* text/strings) pass through unchanged.
|
|
103
|
+
*
|
|
104
|
+
* KNOWN LIMIT, deliberately not papered over: an icon component that paints from
|
|
105
|
+
* a `color` PROP rather than from `fill`/`style.color` ignores this entirely, and
|
|
106
|
+
* does so SILENTLY — nothing throws, the glyph renders, it simply never takes the
|
|
107
|
+
* tint. `color` is not injected alongside `fill` because the prop is not ours to
|
|
108
|
+
* claim: components use it for semantic variants (`color="danger"`), so writing an
|
|
109
|
+
* `rgb(…)` string into it can produce a worse failure than the one it fixes, and
|
|
110
|
+
* an icon already carrying its own `color` would be clobbered. Consumers with such
|
|
111
|
+
* a set pre-color the element themselves; the tab bar additionally offers
|
|
112
|
+
* `TabBarItem.activeIcon`, which carries selection by shape instead of by tint.
|
|
103
113
|
*/
|
|
104
114
|
function applyIconColor(node, color) {
|
|
105
115
|
if (! /*#__PURE__*/(0, _react.isValidElement)(node)) return node;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_colorUtils","SIZE_CONFIG","sm","diameter","iconBox","blur","md","resolveFrostedSize","size","Math","max","round","SURFACE_ALPHA","light","dark","SURFACE_ALPHA_HOVER","RING_ALPHA","RING_ALPHA_HOVER","resolveFrostedPalette","colors","isDark","k","surface","withAlpha","text","surfaceHover","ring","ringHover","icon","activeSurface","primary","activeIcon","primaryForeground","focusRing","shadow","applyIconColor","node","color","isValidElement","el","props","fill","cloneElement"],"sourceRoot":"../../../src","sources":["frosted-icon-button/shared.ts"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAIA;;AAUA,MAAME,WAA2D,GAAG;EAClE;EACAC,EAAE,EAAE;IAAEC,QAAQ,EAAE,EAAE;IAAEC,OAAO,EAAE,EAAE;IAAEC,IAAI,EAAE;EAAG,CAAC;EAC3C;EACAC,EAAE,EAAE;IAAEH,QAAQ,EAAE,EAAE;IAAEC,OAAO,EAAE,EAAE;IAAEC,IAAI,EAAE;EAAG;AAC5C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,kBAAkBA,CAACC,IAAoC,EAAmB;EACxF,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5B,OAAO;MACLL,QAAQ,EAAEK,IAAI;MACdJ,OAAO,EAAEK,IAAI,CAACC,GAAG,CAAC,EAAE,EAAED,IAAI,CAACE,KAAK,CAACH,IAAI,GAAG,IAAI,CAAC,CAAC;MAC9CH,IAAI,EAAEI,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAACH,IAAI,GAAG,IAAI,CAAC;IAC3C,CAAC;EACH;EACA,OAAOP,WAAW,CAACO,IAAI,CAAC;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,aAAa,GAAG;EAAEC,KAAK,EAAE,IAAI;EAAEC,IAAI,EAAE;AAAK,CAAU;AAC1D,MAAMC,mBAAmB,GAAG;EAAEF,KAAK,EAAE,GAAG;EAAEC,IAAI,EAAE;AAAK,CAAU;AAC/D,MAAME,UAAU,GAAG;EAAEH,KAAK,EAAE,IAAI;EAAEC,IAAI,EAAE;AAAK,CAAU;AACvD,MAAMG,gBAAgB,GAAG;EAAEJ,KAAK,EAAE,IAAI;EAAEC,IAAI,EAAE;AAAI,CAAU;;AAE5D;;AA0BA;AACA;AACA;AACA;AACA;AACO,SAASI,qBAAqBA,CAACC,MAAmB,EAAEC,MAAe,EAAkB;EAC1F,MAAMC,CAAC,GAAGD,MAAM,GAAG,MAAM,GAAG,OAAO;EACnC,OAAO;IACLE,OAAO,EAAE,IAAAC,qBAAS,EAACJ,MAAM,CAACK,IAAI,EAAEZ,aAAa,CAACS,CAAC,CAAC,CAAC;IACjDI,YAAY,EAAE,IAAAF,qBAAS,EAACJ,MAAM,CAACK,IAAI,EAAET,mBAAmB,CAACM,CAAC,CAAC,CAAC;IAC5DK,IAAI,EAAE,IAAAH,qBAAS,EAACJ,MAAM,CAACK,IAAI,EAAER,UAAU,CAACK,CAAC,CAAC,CAAC;IAC3CM,SAAS,EAAE,IAAAJ,qBAAS,EAACJ,MAAM,CAACK,IAAI,EAAEP,gBAAgB,CAACI,CAAC,CAAC,CAAC;IACtDO,IAAI,EAAET,MAAM,CAACK,IAAI;IACjBK,aAAa,EAAEV,MAAM,CAACW,OAAO;IAC7BC,UAAU,EAAEZ,MAAM,CAACa,iBAAiB;IACpCC,SAAS,EAAEd,MAAM,CAACW,OAAO;IACzBI,MAAM,EAAEf,MAAM,CAACe;EACjB,CAAC;AACH;;AAEA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,cAAcA,CAACC,IAAe,EAAEC,KAAa,EAAa;EACxE,IAAI,eAAC,IAAAC,qBAAc,EAACF,IAAI,CAAC,EAAE,OAAOA,IAAI;EACtC,MAAMG,EAAE,GAAGH,IAAuB;EAClC,IAAIG,EAAE,CAACC,KAAK,CAACC,IAAI,IAAI,IAAI,EAAE,OAAOL,IAAI;EACtC,oBAAO,IAAAM,mBAAY,EAACH,EAAE,EAAE;IAAEE,IAAI,EAAEJ;EAAM,CAAC,CAAC;AAC1C","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_colorUtils","SIZE_CONFIG","sm","diameter","iconBox","blur","md","resolveFrostedSize","size","Math","max","round","SURFACE_ALPHA","light","dark","SURFACE_ALPHA_HOVER","RING_ALPHA","RING_ALPHA_HOVER","resolveFrostedPalette","colors","isDark","k","surface","withAlpha","text","surfaceHover","ring","ringHover","icon","activeSurface","primary","activeIcon","primaryForeground","focusRing","shadow","applyIconColor","node","color","isValidElement","el","props","fill","cloneElement"],"sourceRoot":"../../../src","sources":["frosted-icon-button/shared.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -48,6 +48,7 @@ function TabBarBody({
|
|
|
48
48
|
children,
|
|
49
49
|
activeIndex,
|
|
50
50
|
onIndexChange,
|
|
51
|
+
onIndexLongPress,
|
|
51
52
|
theme: themeOverrides,
|
|
52
53
|
haptics = true,
|
|
53
54
|
style,
|
|
@@ -78,6 +79,11 @@ function TabBarBody({
|
|
|
78
79
|
// scrubbing makes the content jump under the finger.
|
|
79
80
|
const selectIndex = (0, _react.useCallback)(index => onIndexChange?.(index), [onIndexChange]);
|
|
80
81
|
|
|
82
|
+
// Long press is reported through the same shape, and deliberately does NOT
|
|
83
|
+
// select: it is a secondary action on the tab under the finger.
|
|
84
|
+
const longPressIndex = (0, _react.useCallback)(index => onIndexLongPress?.(index), [onIndexLongPress]);
|
|
85
|
+
const hasLongPress = onIndexLongPress !== undefined;
|
|
86
|
+
|
|
81
87
|
// CONTROLLED path: the bar owns the highlight when `activeIndex` is provided,
|
|
82
88
|
// so it tracks the prop even when a consumer renders custom children instead
|
|
83
89
|
// of `TabBarButton`s. Syncing an imperative animation to a controlled prop is
|
|
@@ -142,8 +148,22 @@ function TabBarBody({
|
|
|
142
148
|
(0, _minimizeContext.setMinimized)(minimized, 0);
|
|
143
149
|
(0, _reactNativeReanimated.runOnJS)(selectIndex)(index);
|
|
144
150
|
});
|
|
145
|
-
return _reactNativeGestureHandler.Gesture.Race(pan, tap);
|
|
146
|
-
|
|
151
|
+
if (!hasLongPress) return _reactNativeGestureHandler.Gesture.Race(pan, tap);
|
|
152
|
+
|
|
153
|
+
// Long press: the ONLY path to one, because the detector consumes the
|
|
154
|
+
// bar's touches and a button's inner `Pressable` therefore never sees a
|
|
155
|
+
// real finger (see `TabBarButtonBody`). Added to the race only when a
|
|
156
|
+
// handler was supplied — an always-armed long press would cancel the pan
|
|
157
|
+
// for anyone who rests a finger before scrubbing, and no existing consumer
|
|
158
|
+
// asked for that. It cannot cost a tap either: the tap gesture gives up at
|
|
159
|
+
// 400ms, before this one can activate at 500ms, so the two are never
|
|
160
|
+
// candidates at the same instant. Resolves its index through the same
|
|
161
|
+
// `indexAtX` worklet as tap and pan, so all three agree on the geometry.
|
|
162
|
+
const longPress = _reactNativeGestureHandler.Gesture.LongPress().minDuration(_shared.LONG_PRESS_MIN_DURATION).onStart(event => {
|
|
163
|
+
(0, _reactNativeReanimated.runOnJS)(longPressIndex)(Math.round(indexAtX(event.x, progress.value)));
|
|
164
|
+
});
|
|
165
|
+
return _reactNativeGestureHandler.Gesture.Race(pan, tap, longPress);
|
|
166
|
+
}, [windowWidth, tabCount, selectIndex, hasLongPress, longPressIndex, tick, isDragging, lastTicked, slideIndex, minimized, progress]);
|
|
147
167
|
|
|
148
168
|
// CRITICAL — every shared value and every scalar a mapper READS must appear
|
|
149
169
|
// in its dependency array. On web WITHOUT the react-native-worklets babel
|
|
@@ -192,7 +212,10 @@ function TabBarBody({
|
|
|
192
212
|
}]
|
|
193
213
|
};
|
|
194
214
|
}, [progress, slideIndex, windowWidth, tabCount]);
|
|
195
|
-
|
|
215
|
+
|
|
216
|
+
// Shared with `useTabBarReservedSpace`, so a consumer reserving layout space
|
|
217
|
+
// for the bar can never drift from where the bar actually sits.
|
|
218
|
+
const bottomOffset = (0, _shared.tabBarBottomGap)(insets.bottom);
|
|
196
219
|
const barContext = (0, _react.useMemo)(() => ({
|
|
197
220
|
slideIndex,
|
|
198
221
|
isDragging,
|
|
@@ -322,13 +345,15 @@ function TabBarButtonBody({
|
|
|
322
345
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Glyph, {
|
|
323
346
|
item: item,
|
|
324
347
|
tint: theme.inactiveTint,
|
|
325
|
-
size: _shared.ICON_SIZE
|
|
348
|
+
size: _shared.ICON_SIZE,
|
|
349
|
+
active: false
|
|
326
350
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
327
351
|
style: [_reactNative.StyleSheet.absoluteFill, styles.glyphLayer, activeGlyphStyle],
|
|
328
352
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Glyph, {
|
|
329
353
|
item: item,
|
|
330
354
|
tint: theme.activeTint,
|
|
331
|
-
size: _shared.ICON_SIZE
|
|
355
|
+
size: _shared.ICON_SIZE,
|
|
356
|
+
active: true
|
|
332
357
|
})
|
|
333
358
|
})]
|
|
334
359
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.Text, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_interopRequireWildcard","_reactNativeSafeAreaContext","_useHaptics","_minimizeContext","_shared","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BarContext","createContext","TabBarBody","Surface","Blur","children","activeIndex","onIndexChange","theme","themeOverrides","haptics","style","viewProps","insets","useSafeAreaInsets","width","windowWidth","useWindowDimensions","minimized","useMinimizeState","progress","slideIndex","useSharedValue","isDragging","lastTicked","tabCount","Math","max","Children","count","useTabBarTheme","impact","useHaptics","tick","useCallback","selectIndex","index","useEffect","undefined","value","withSpring","SLIDE_SPRING","gesture","useMemo","indexAtX","x","minimizedValue","sideInset","interpolate","MINIMIZED_INSET","Extrapolation","CLAMP","barWidth","BAR_MARGIN","itemWidth","ROW_PAD_H","raw","min","pan","Gesture","Pan","activeOffsetX","failOffsetY","onStart","round","setMinimized","onUpdate","event","rounded","runOnJS","onFinalize","tap","Tap","maxDistance","maxDuration","onEnd","success","Race","barStyle","useAnimatedStyle","height","EXPANDED_HEIGHT","MINIMIZED_HEIGHT","marginHorizontal","shapeStyle","borderRadius","highlightStyle","barHeight","HIGHLIGHT_EXPANDED","HIGHLIGHT_MINIMIZED","top","transform","translateX","bottomOffset","bottom","barContext","jsxs","View","styles","root","jsx","direction","position","left","right","BLUR_BLEED","barWrap","marginBottom","GestureDetector","highlight","backgroundColor","accessibilityRole","itemRow","Provider","TabBarButtonBody","Glyph","item","isFocused","onPress","pressableProps","bar","useContext","standaloneTheme","focused","activeGlyphStyle","opacity","abs","labelStyle","color","interpolateColor","activeTint","inactiveTint","boxStyle","Pressable","accessibilityState","selected","accessibilityLabel","label","state","button","itemBox","tint","size","ICON_SIZE","StyleSheet","absoluteFill","glyphLayer","Text","numberOfLines","createTabBar","TabBar","props","displayName","createTabBarButton","TabBarButton","create","pointerEvents","borderCurve","flex","flexDirection","alignItems","paddingHorizontal","justifyContent","alignSelf","paddingTop","ITEM_PAD_V","overflow","fontSize","LABEL_FONT_SIZE","fontWeight","marginTop","ITEM_GAP"],"sourceRoot":"../../../src","sources":["tab-bar/TabBarBase.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_interopRequireWildcard","_reactNativeSafeAreaContext","_useHaptics","_minimizeContext","_shared","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BarContext","createContext","TabBarBody","Surface","Blur","children","activeIndex","onIndexChange","onIndexLongPress","theme","themeOverrides","haptics","style","viewProps","insets","useSafeAreaInsets","width","windowWidth","useWindowDimensions","minimized","useMinimizeState","progress","slideIndex","useSharedValue","isDragging","lastTicked","tabCount","Math","max","Children","count","useTabBarTheme","impact","useHaptics","tick","useCallback","selectIndex","index","longPressIndex","hasLongPress","undefined","useEffect","value","withSpring","SLIDE_SPRING","gesture","useMemo","indexAtX","x","minimizedValue","sideInset","interpolate","MINIMIZED_INSET","Extrapolation","CLAMP","barWidth","BAR_MARGIN","itemWidth","ROW_PAD_H","raw","min","pan","Gesture","Pan","activeOffsetX","failOffsetY","onStart","round","setMinimized","onUpdate","event","rounded","runOnJS","onFinalize","tap","Tap","maxDistance","maxDuration","onEnd","success","Race","longPress","LongPress","minDuration","LONG_PRESS_MIN_DURATION","barStyle","useAnimatedStyle","height","EXPANDED_HEIGHT","MINIMIZED_HEIGHT","marginHorizontal","shapeStyle","borderRadius","highlightStyle","barHeight","HIGHLIGHT_EXPANDED","HIGHLIGHT_MINIMIZED","top","transform","translateX","bottomOffset","tabBarBottomGap","bottom","barContext","jsxs","View","styles","root","jsx","direction","position","left","right","BLUR_BLEED","barWrap","marginBottom","GestureDetector","highlight","backgroundColor","accessibilityRole","itemRow","Provider","TabBarButtonBody","Glyph","item","isFocused","onPress","pressableProps","bar","useContext","standaloneTheme","focused","activeGlyphStyle","opacity","abs","labelStyle","color","interpolateColor","activeTint","inactiveTint","boxStyle","Pressable","accessibilityState","selected","accessibilityLabel","label","state","button","itemBox","tint","size","ICON_SIZE","active","StyleSheet","absoluteFill","glyphLayer","Text","numberOfLines","createTabBar","TabBar","props","displayName","createTabBarButton","TabBarButton","create","pointerEvents","borderCurve","flex","flexDirection","alignItems","paddingHorizontal","justifyContent","alignSelf","paddingTop","ITEM_PAD_V","overflow","fontSize","LABEL_FONT_SIZE","fontWeight","marginTop","ITEM_GAP"],"sourceRoot":"../../../src","sources":["tab-bar/TabBarBase.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,8 +11,8 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
11
11
|
* Ported from expo-glass-tabs v0.1.1 — src/glass-tab-bar.tsx
|
|
12
12
|
* (MIT © 2026 David Mokos). See the top-level NOTICE.
|
|
13
13
|
*
|
|
14
|
-
* NEUTRAL default variant of a tab glyph: renders the item's own `icon` node
|
|
15
|
-
* tinted for this crossfade layer.
|
|
14
|
+
* NEUTRAL default variant of a tab glyph: renders the item's own `icon` node —
|
|
15
|
+
* or its `activeIcon` on the active layer — tinted for this crossfade layer.
|
|
16
16
|
*
|
|
17
17
|
* `item.icon` is the primary icon API for the whole family — a Bloom icon
|
|
18
18
|
* element, exactly like `TabsTrigger` and `FrostedIconButton` take. `sfSymbol`
|
|
@@ -25,18 +25,23 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
25
25
|
function TabBarGlyph({
|
|
26
26
|
item,
|
|
27
27
|
tint,
|
|
28
|
-
size
|
|
28
|
+
size,
|
|
29
|
+
active
|
|
29
30
|
}) {
|
|
30
31
|
// The tint is injected as the icon's `fill` FALLBACK — an icon that sets its
|
|
31
32
|
// own `fill` (a brand mark, say) keeps it, so the crossfade layers simply
|
|
32
33
|
// render it twice at full opacity and it never flickers.
|
|
34
|
+
//
|
|
35
|
+
// `activeIcon` is what makes the crossfade able to swap NODES: an icon set
|
|
36
|
+
// whose selected state is a different SHAPE (outline → filled) cannot be
|
|
37
|
+
// expressed by tinting one node two ways. Absent, the layer renders `icon`.
|
|
33
38
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
34
39
|
style: {
|
|
35
40
|
height: size,
|
|
36
41
|
alignItems: 'center',
|
|
37
42
|
justifyContent: 'center'
|
|
38
43
|
},
|
|
39
|
-
children: (0, _shared.applyIconColor)(item.icon, tint)
|
|
44
|
+
children: (0, _shared.applyIconColor)(active ? item.activeIcon ?? item.icon : item.icon, tint)
|
|
40
45
|
});
|
|
41
46
|
}
|
|
42
47
|
TabBarGlyph.displayName = 'TabBarGlyph';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_shared","_jsxRuntime","TabBarGlyph","item","tint","size","jsx","View","style","height","alignItems","justifyContent","children","applyIconColor","icon","displayName"],"sourceRoot":"../../../src","sources":["tab-bar/glyph.tsx"],"mappings":";;;;;;AAcA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAA+D,IAAAE,WAAA,GAAAF,OAAA;AAhB/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMO,SAASG,WAAWA,CAAC;EAAEC,IAAI;EAAEC,IAAI;EAAEC;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_shared","_jsxRuntime","TabBarGlyph","item","tint","size","active","jsx","View","style","height","alignItems","justifyContent","children","applyIconColor","activeIcon","icon","displayName"],"sourceRoot":"../../../src","sources":["tab-bar/glyph.tsx"],"mappings":";;;;;;AAcA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAA+D,IAAAE,WAAA,GAAAF,OAAA;AAhB/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMO,SAASG,WAAWA,CAAC;EAAEC,IAAI;EAAEC,IAAI;EAAEC,IAAI;EAAEC;AAAyB,CAAC,EAAE;EAC1E;EACA;EACA;EACA;EACA;EACA;EACA;EACA,oBACE,IAAAL,WAAA,CAAAM,GAAA,EAACT,YAAA,CAAAU,IAAI;IAACC,KAAK,EAAE;MAAEC,MAAM,EAAEL,IAAI;MAAEM,UAAU,EAAE,QAAQ;MAAEC,cAAc,EAAE;IAAS,CAAE;IAAAC,QAAA,EAC3E,IAAAC,sBAAc,EAACR,MAAM,GAAIH,IAAI,CAACY,UAAU,IAAIZ,IAAI,CAACa,IAAI,GAAIb,IAAI,CAACa,IAAI,EAAEZ,IAAI;EAAC,CACtE,CAAC;AAEX;AAEAF,WAAW,CAACe,WAAW,GAAG,aAAa","ignoreList":[]}
|
|
@@ -25,7 +25,8 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
25
25
|
function TabBarGlyph({
|
|
26
26
|
item,
|
|
27
27
|
tint,
|
|
28
|
-
size
|
|
28
|
+
size,
|
|
29
|
+
active
|
|
29
30
|
}) {
|
|
30
31
|
if (item.sfSymbol && _reactNative.Platform.OS === 'ios') {
|
|
31
32
|
// `TabBarItem.sfSymbol` is a plain `string` because `types.ts` may import
|
|
@@ -42,13 +43,17 @@ function TabBarGlyph({
|
|
|
42
43
|
weight: "semibold"
|
|
43
44
|
});
|
|
44
45
|
}
|
|
46
|
+
|
|
47
|
+
// Same node-swapping crossfade as the neutral variant: the active layer takes
|
|
48
|
+
// `activeIcon` when the item has one. An SF Symbol never reaches here, and is
|
|
49
|
+
// tinted natively above, so the tint crossfade remains its correct expression.
|
|
45
50
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
46
51
|
style: {
|
|
47
52
|
height: size,
|
|
48
53
|
alignItems: 'center',
|
|
49
54
|
justifyContent: 'center'
|
|
50
55
|
},
|
|
51
|
-
children: (0, _shared.applyIconColor)(item.icon, tint)
|
|
56
|
+
children: (0, _shared.applyIconColor)(active ? item.activeIcon ?? item.icon : item.icon, tint)
|
|
52
57
|
});
|
|
53
58
|
}
|
|
54
59
|
TabBarGlyph.displayName = 'TabBarGlyph';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_expoSymbols","require","_reactNative","_shared","_jsxRuntime","TabBarGlyph","item","tint","size","sfSymbol","Platform","OS","jsx","SymbolView","name","tintColor","weight","View","style","height","alignItems","justifyContent","children","applyIconColor","icon","displayName"],"sourceRoot":"../../../src","sources":["tab-bar/glyph.native.tsx"],"mappings":";;;;;;AAaA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAA+D,IAAAG,WAAA,GAAAH,OAAA;AAhB/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOO,SAASI,WAAWA,CAAC;EAAEC,IAAI;EAAEC,IAAI;EAAEC;
|
|
1
|
+
{"version":3,"names":["_expoSymbols","require","_reactNative","_shared","_jsxRuntime","TabBarGlyph","item","tint","size","active","sfSymbol","Platform","OS","jsx","SymbolView","name","tintColor","weight","View","style","height","alignItems","justifyContent","children","applyIconColor","activeIcon","icon","displayName"],"sourceRoot":"../../../src","sources":["tab-bar/glyph.native.tsx"],"mappings":";;;;;;AAaA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAA+D,IAAAG,WAAA,GAAAH,OAAA;AAhB/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOO,SAASI,WAAWA,CAAC;EAAEC,IAAI;EAAEC,IAAI;EAAEC,IAAI;EAAEC;AAAyB,CAAC,EAAE;EAC1E,IAAIH,IAAI,CAACI,QAAQ,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IAC1C;IACA;IACA;IACA;IACA;IACA;IACA;IACA,oBACE,IAAAR,WAAA,CAAAS,GAAA,EAACb,YAAA,CAAAc,UAAU;MACTC,IAAI,EAAET,IAAI,CAACI,QAAqB;MAChCM,SAAS,EAAET,IAAK;MAChBC,IAAI,EAAEA,IAAK;MACXS,MAAM,EAAC;IAAU,CAClB,CAAC;EAEN;;EAEA;EACA;EACA;EACA,oBACE,IAAAb,WAAA,CAAAS,GAAA,EAACX,YAAA,CAAAgB,IAAI;IAACC,KAAK,EAAE;MAAEC,MAAM,EAAEZ,IAAI;MAAEa,UAAU,EAAE,QAAQ;MAAEC,cAAc,EAAE;IAAS,CAAE;IAAAC,QAAA,EAC3E,IAAAC,sBAAc,EAACf,MAAM,GAAIH,IAAI,CAACmB,UAAU,IAAInB,IAAI,CAACoB,IAAI,GAAIpB,IAAI,CAACoB,IAAI,EAAEnB,IAAI;EAAC,CACtE,CAAC;AAEX;AAEAF,WAAW,CAACsB,WAAW,GAAG,aAAa","ignoreList":[]}
|
|
@@ -40,11 +40,18 @@ Object.defineProperty(exports, "useTabBarMinimized", {
|
|
|
40
40
|
return _minimizeContext.useTabBarMinimized;
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
|
+
Object.defineProperty(exports, "useTabBarReservedSpace", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _useReservedSpace.useTabBarReservedSpace;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
43
49
|
var _progressiveBlur = require("../progressive-blur");
|
|
44
50
|
var _TabBarBase = require("./TabBarBase.js");
|
|
45
51
|
var _glyph = require("./glyph");
|
|
46
52
|
var _surface = require("./surface");
|
|
47
53
|
var _minimizeContext = require("./minimize-context.js");
|
|
54
|
+
var _useReservedSpace = require("./use-reserved-space.js");
|
|
48
55
|
/**
|
|
49
56
|
* Ported from expo-glass-tabs v0.1.1 — src/index.ts
|
|
50
57
|
* (MIT © 2026 David Mokos). See the top-level NOTICE.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_progressiveBlur","require","_TabBarBase","_glyph","_surface","_minimizeContext","TabBar","exports","createTabBar","TabBarSurface","ProgressiveBlur","TabBarButton","createTabBarButton","TabBarGlyph"],"sourceRoot":"../../../src","sources":["tab-bar/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_progressiveBlur","require","_TabBarBase","_glyph","_surface","_minimizeContext","_useReservedSpace","TabBar","exports","createTabBar","TabBarSurface","ProgressiveBlur","TabBarButton","createTabBarButton","TabBarGlyph"],"sourceRoot":"../../../src","sources":["tab-bar/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAKA,IAAAI,gBAAA,GAAAJ,OAAA;AASA,IAAAK,iBAAA,GAAAL,OAAA;AA/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMO,MAAMM,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,IAAAE,wBAAY,EAACC,sBAAa,EAAEC,gCAAe,CAAC;AAC3D,MAAMC,YAAY,GAAAJ,OAAA,CAAAI,YAAA,GAAG,IAAAC,8BAAkB,EAACC,kBAAW,CAAC","ignoreList":[]}
|
|
@@ -40,11 +40,18 @@ Object.defineProperty(exports, "useTabBarMinimized", {
|
|
|
40
40
|
return _minimizeContext.useTabBarMinimized;
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
|
+
Object.defineProperty(exports, "useTabBarReservedSpace", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _useReservedSpace.useTabBarReservedSpace;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
43
49
|
var _indexWeb = require("../progressive-blur/index.web.js");
|
|
44
50
|
var _TabBarBase = require("./TabBarBase.js");
|
|
45
51
|
var _glyph = require("./glyph");
|
|
46
52
|
var _surfaceWeb = require("./surface.web.js");
|
|
47
53
|
var _minimizeContext = require("./minimize-context.js");
|
|
54
|
+
var _useReservedSpace = require("./use-reserved-space.js");
|
|
48
55
|
/**
|
|
49
56
|
* Ported from expo-glass-tabs v0.1.1 — src/index.ts
|
|
50
57
|
* (MIT © 2026 David Mokos). See the top-level NOTICE.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_indexWeb","require","_TabBarBase","_glyph","_surfaceWeb","_minimizeContext","TabBar","exports","createTabBar","TabBarSurface","ProgressiveBlur","TabBarButton","createTabBarButton","TabBarGlyph"],"sourceRoot":"../../../src","sources":["tab-bar/index.web.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_indexWeb","require","_TabBarBase","_glyph","_surfaceWeb","_minimizeContext","_useReservedSpace","TabBar","exports","createTabBar","TabBarSurface","ProgressiveBlur","TabBarButton","createTabBarButton","TabBarGlyph"],"sourceRoot":"../../../src","sources":["tab-bar/index.web.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAKA,IAAAI,gBAAA,GAAAJ,OAAA;AASA,IAAAK,iBAAA,GAAAL,OAAA;AAjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMO,MAAMM,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,IAAAE,wBAAY,EAACC,yBAAa,EAAEC,yBAAe,CAAC;AAC3D,MAAMC,YAAY,GAAAJ,OAAA,CAAAI,YAAA,GAAG,IAAAC,8BAAkB,EAACC,kBAAW,CAAC","ignoreList":[]}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.SLIDE_SPRING = exports.ROW_PAD_H = exports.MINIMIZED_INSET = exports.MINIMIZED_HEIGHT = exports.LABEL_HEIGHT = exports.LABEL_FONT_SIZE = exports.LABEL_BLOCK = exports.ITEM_PAD_V = exports.ITEM_GAP = exports.ICON_SIZE = exports.HIGHLIGHT_MINIMIZED = exports.HIGHLIGHT_EXPANDED = exports.EXPANDED_HEIGHT = exports.BLUR_BLEED = exports.BAR_MARGIN = void 0;
|
|
6
|
+
exports.SLIDE_SPRING = exports.ROW_PAD_H = exports.MINIMIZED_INSET = exports.MINIMIZED_HEIGHT = exports.LONG_PRESS_MIN_DURATION = exports.LABEL_HEIGHT = exports.LABEL_FONT_SIZE = exports.LABEL_BLOCK = exports.ITEM_PAD_V = exports.ITEM_GAP = exports.ICON_SIZE = exports.HIGHLIGHT_MINIMIZED = exports.HIGHLIGHT_EXPANDED = exports.EXPANDED_HEIGHT = exports.BLUR_BLEED = exports.BAR_MARGIN = void 0;
|
|
7
7
|
exports.resolveTabBarTheme = resolveTabBarTheme;
|
|
8
|
+
exports.tabBarBottomGap = tabBarBottomGap;
|
|
8
9
|
exports.useTabBarTheme = useTabBarTheme;
|
|
9
10
|
var _react = require("react");
|
|
10
11
|
var _colorUtils = require("../theme/color-utils.js");
|
|
@@ -54,6 +55,27 @@ const BLUR_BLEED = exports.BLUR_BLEED = 44;
|
|
|
54
55
|
/** Label type size. Small by design — the icon carries the meaning. */
|
|
55
56
|
const LABEL_FONT_SIZE = exports.LABEL_FONT_SIZE = 9.5;
|
|
56
57
|
|
|
58
|
+
/**
|
|
59
|
+
* How much of the bottom safe-area inset the bar's own gap absorbs. The pill
|
|
60
|
+
* already floats clear of the content, so sitting the FULL inset below it
|
|
61
|
+
* strands it in the middle of the screen on a home-indicator device.
|
|
62
|
+
*/
|
|
63
|
+
const SAFE_AREA_ABSORBED = 16;
|
|
64
|
+
/** Gap floor, for a device (or a browser) reporting no bottom inset at all. */
|
|
65
|
+
const MIN_BOTTOM_GAP = 12;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Vertical gap between the bottom of the pill and the bottom of the window.
|
|
69
|
+
*
|
|
70
|
+
* The safe-area inset is folded in HERE, which is why anything reserving layout
|
|
71
|
+
* space for the bar must go through `useTabBarReservedSpace` (which derives its
|
|
72
|
+
* number from this same function) rather than adding `insets.bottom` to a
|
|
73
|
+
* hardcoded height — that double-counts the inset.
|
|
74
|
+
*/
|
|
75
|
+
function tabBarBottomGap(bottomInset) {
|
|
76
|
+
return Math.max(bottomInset - SAFE_AREA_ABSORBED, MIN_BOTTOM_GAP);
|
|
77
|
+
}
|
|
78
|
+
|
|
57
79
|
/**
|
|
58
80
|
* Slide spring: interruptible by design — rapid tab-hopping retargets with
|
|
59
81
|
* preserved velocity. Slight under-damping gives the pill a tiny settle, safe
|
|
@@ -64,6 +86,15 @@ const SLIDE_SPRING = exports.SLIDE_SPRING = {
|
|
|
64
86
|
dampingRatio: 0.82
|
|
65
87
|
};
|
|
66
88
|
|
|
89
|
+
/**
|
|
90
|
+
* How long a press must be held before `onIndexLongPress` fires.
|
|
91
|
+
*
|
|
92
|
+
* Comfortably above the tap gesture's own 400ms ceiling: the two can never both
|
|
93
|
+
* be candidates at the same instant, so arming the long press cannot cost the
|
|
94
|
+
* bar a tap. Matches the platform long-press feel (iOS ~0.5s).
|
|
95
|
+
*/
|
|
96
|
+
const LONG_PRESS_MIN_DURATION = exports.LONG_PRESS_MIN_DURATION = 500;
|
|
97
|
+
|
|
67
98
|
// ---------------------------------------------------------------------------
|
|
68
99
|
// Theme
|
|
69
100
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_colorUtils","_useTheme","EXPANDED_HEIGHT","exports","MINIMIZED_HEIGHT","MINIMIZED_INSET","BAR_MARGIN","ROW_PAD_H","LABEL_HEIGHT","ICON_SIZE","ITEM_GAP","LABEL_BLOCK","ITEM_PAD_V","HIGHLIGHT_EXPANDED","HIGHLIGHT_MINIMIZED","BLUR_BLEED","LABEL_FONT_SIZE","SLIDE_SPRING","duration","dampingRatio","resolveTabBarTheme","colors","overrides","activeTint","text","inactiveTint","textSecondary","highlight","contrast50","glassTint","withAlpha","background","solidFallback","backgroundSecondary","useTabBarTheme","useTheme","useMemo"],"sourceRoot":"../../../src","sources":["tab-bar/shared.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_react","require","_colorUtils","_useTheme","EXPANDED_HEIGHT","exports","MINIMIZED_HEIGHT","MINIMIZED_INSET","BAR_MARGIN","ROW_PAD_H","LABEL_HEIGHT","ICON_SIZE","ITEM_GAP","LABEL_BLOCK","ITEM_PAD_V","HIGHLIGHT_EXPANDED","HIGHLIGHT_MINIMIZED","BLUR_BLEED","LABEL_FONT_SIZE","SAFE_AREA_ABSORBED","MIN_BOTTOM_GAP","tabBarBottomGap","bottomInset","Math","max","SLIDE_SPRING","duration","dampingRatio","LONG_PRESS_MIN_DURATION","resolveTabBarTheme","colors","overrides","activeTint","text","inactiveTint","textSecondary","highlight","contrast50","glassTint","withAlpha","background","solidFallback","backgroundSecondary","useTabBarTheme","useTheme","useMemo"],"sourceRoot":"../../../src","sources":["tab-bar/shared.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useTabBarReservedSpace = useTabBarReservedSpace;
|
|
7
|
+
var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
|
|
8
|
+
var _shared = require("./shared.js");
|
|
9
|
+
/**
|
|
10
|
+
* How much room a screen must leave at the bottom for the floating bar.
|
|
11
|
+
*
|
|
12
|
+
* The bar is `position: absolute` over the content, so nothing reserves space
|
|
13
|
+
* for it automatically — every scrollable screen under a tab layout has to pad
|
|
14
|
+
* its own content out from under the pill. That number is built from the bar's
|
|
15
|
+
* private geometry (its expanded height and the gap it keeps from the window's
|
|
16
|
+
* bottom edge), which is exactly why it is exported as a hook: hardcoding it in
|
|
17
|
+
* an app silently drifts the moment the bar changes by a pixel.
|
|
18
|
+
*
|
|
19
|
+
* Platform-neutral, like the rest of the family — `react-native-safe-area-context`
|
|
20
|
+
* is already a required Bloom peer and is what the bar itself measures with.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The vertical space the tab bar occupies above the bottom of the window, in
|
|
25
|
+
* px. Use it directly as the bottom padding (or bottom offset) of anything that
|
|
26
|
+
* would otherwise sit under the bar:
|
|
27
|
+
*
|
|
28
|
+
* ```tsx
|
|
29
|
+
* const reserved = useTabBarReservedSpace();
|
|
30
|
+
*
|
|
31
|
+
* <Animated.ScrollView contentContainerStyle={{ paddingBottom: reserved }} />
|
|
32
|
+
* <Fab style={{ position: 'absolute', right: 16, bottom: reserved + 12 }} />
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* The value ALREADY INCLUDES the bottom safe-area inset — the bar folds the
|
|
36
|
+
* inset into its own bottom gap, so it is measured from the true window edge,
|
|
37
|
+
* not from the safe area. Never write `reserved + insets.bottom`: that counts
|
|
38
|
+
* the home indicator twice and strands a visible band of dead space under every
|
|
39
|
+
* list (a 76px bar reserving 110px on an iOS device or PWA). It is the whole
|
|
40
|
+
* number; nothing needs adding to it.
|
|
41
|
+
*
|
|
42
|
+
* It is the EXPANDED height, deliberately. The bar minimizes while scrolling
|
|
43
|
+
* down and re-expands on the way up, so reserving the minimized height would
|
|
44
|
+
* hide the end of a list the moment the user scrolled back to it.
|
|
45
|
+
*/
|
|
46
|
+
function useTabBarReservedSpace() {
|
|
47
|
+
const insets = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
|
|
48
|
+
return (0, _shared.tabBarBottomGap)(insets.bottom) + _shared.EXPANDED_HEIGHT;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=use-reserved-space.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNativeSafeAreaContext","require","_shared","useTabBarReservedSpace","insets","useSafeAreaInsets","tabBarBottomGap","bottom","EXPANDED_HEIGHT"],"sourceRoot":"../../../src","sources":["tab-bar/use-reserved-space.ts"],"mappings":";;;;;;AAaA,IAAAA,2BAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,sBAAsBA,CAAA,EAAW;EAC/C,MAAMC,MAAM,GAAG,IAAAC,6CAAiB,EAAC,CAAC;EAClC,OAAO,IAAAC,uBAAe,EAACF,MAAM,CAACG,MAAM,CAAC,GAAGC,uBAAe;AACzD","ignoreList":[]}
|
|
@@ -95,6 +95,16 @@ export function resolveFrostedPalette(colors, isDark) {
|
|
|
95
95
|
* so any bare Bloom icon element gets the theme-aware color for free while an
|
|
96
96
|
* explicitly-colored icon is never overridden. Non-element children (plain
|
|
97
97
|
* text/strings) pass through unchanged.
|
|
98
|
+
*
|
|
99
|
+
* KNOWN LIMIT, deliberately not papered over: an icon component that paints from
|
|
100
|
+
* a `color` PROP rather than from `fill`/`style.color` ignores this entirely, and
|
|
101
|
+
* does so SILENTLY — nothing throws, the glyph renders, it simply never takes the
|
|
102
|
+
* tint. `color` is not injected alongside `fill` because the prop is not ours to
|
|
103
|
+
* claim: components use it for semantic variants (`color="danger"`), so writing an
|
|
104
|
+
* `rgb(…)` string into it can produce a worse failure than the one it fixes, and
|
|
105
|
+
* an icon already carrying its own `color` would be clobbered. Consumers with such
|
|
106
|
+
* a set pre-color the element themselves; the tab bar additionally offers
|
|
107
|
+
* `TabBarItem.activeIcon`, which carries selection by shape instead of by tint.
|
|
98
108
|
*/
|
|
99
109
|
export function applyIconColor(node, color) {
|
|
100
110
|
if (! /*#__PURE__*/isValidElement(node)) return node;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["cloneElement","isValidElement","withAlpha","SIZE_CONFIG","sm","diameter","iconBox","blur","md","resolveFrostedSize","size","Math","max","round","SURFACE_ALPHA","light","dark","SURFACE_ALPHA_HOVER","RING_ALPHA","RING_ALPHA_HOVER","resolveFrostedPalette","colors","isDark","k","surface","text","surfaceHover","ring","ringHover","icon","activeSurface","primary","activeIcon","primaryForeground","focusRing","shadow","applyIconColor","node","color","el","props","fill"],"sourceRoot":"../../../src","sources":["frosted-icon-button/shared.ts"],"mappings":";;AAAA,SAASA,YAAY,EAAEC,cAAc,QAA2C,OAAO;AAEvF,SAASC,SAAS,QAAQ,yBAAsB;;AAIhD;;AAUA,MAAMC,WAA2D,GAAG;EAClE;EACAC,EAAE,EAAE;IAAEC,QAAQ,EAAE,EAAE;IAAEC,OAAO,EAAE,EAAE;IAAEC,IAAI,EAAE;EAAG,CAAC;EAC3C;EACAC,EAAE,EAAE;IAAEH,QAAQ,EAAE,EAAE;IAAEC,OAAO,EAAE,EAAE;IAAEC,IAAI,EAAE;EAAG;AAC5C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,kBAAkBA,CAACC,IAAoC,EAAmB;EACxF,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5B,OAAO;MACLL,QAAQ,EAAEK,IAAI;MACdJ,OAAO,EAAEK,IAAI,CAACC,GAAG,CAAC,EAAE,EAAED,IAAI,CAACE,KAAK,CAACH,IAAI,GAAG,IAAI,CAAC,CAAC;MAC9CH,IAAI,EAAEI,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAACH,IAAI,GAAG,IAAI,CAAC;IAC3C,CAAC;EACH;EACA,OAAOP,WAAW,CAACO,IAAI,CAAC;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,aAAa,GAAG;EAAEC,KAAK,EAAE,IAAI;EAAEC,IAAI,EAAE;AAAK,CAAU;AAC1D,MAAMC,mBAAmB,GAAG;EAAEF,KAAK,EAAE,GAAG;EAAEC,IAAI,EAAE;AAAK,CAAU;AAC/D,MAAME,UAAU,GAAG;EAAEH,KAAK,EAAE,IAAI;EAAEC,IAAI,EAAE;AAAK,CAAU;AACvD,MAAMG,gBAAgB,GAAG;EAAEJ,KAAK,EAAE,IAAI;EAAEC,IAAI,EAAE;AAAI,CAAU;;AAE5D;;AA0BA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,qBAAqBA,CAACC,MAAmB,EAAEC,MAAe,EAAkB;EAC1F,MAAMC,CAAC,GAAGD,MAAM,GAAG,MAAM,GAAG,OAAO;EACnC,OAAO;IACLE,OAAO,EAAEtB,SAAS,CAACmB,MAAM,CAACI,IAAI,EAAEX,aAAa,CAACS,CAAC,CAAC,CAAC;IACjDG,YAAY,EAAExB,SAAS,CAACmB,MAAM,CAACI,IAAI,EAAER,mBAAmB,CAACM,CAAC,CAAC,CAAC;IAC5DI,IAAI,EAAEzB,SAAS,CAACmB,MAAM,CAACI,IAAI,EAAEP,UAAU,CAACK,CAAC,CAAC,CAAC;IAC3CK,SAAS,EAAE1B,SAAS,CAACmB,MAAM,CAACI,IAAI,EAAEN,gBAAgB,CAACI,CAAC,CAAC,CAAC;IACtDM,IAAI,EAAER,MAAM,CAACI,IAAI;IACjBK,aAAa,EAAET,MAAM,CAACU,OAAO;IAC7BC,UAAU,EAAEX,MAAM,CAACY,iBAAiB;IACpCC,SAAS,EAAEb,MAAM,CAACU,OAAO;IACzBI,MAAM,EAAEd,MAAM,CAACc;EACjB,CAAC;AACH;;AAEA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAACC,IAAe,EAAEC,KAAa,EAAa;EACxE,IAAI,eAACrC,cAAc,CAACoC,IAAI,CAAC,EAAE,OAAOA,IAAI;EACtC,MAAME,EAAE,GAAGF,IAAuB;EAClC,IAAIE,EAAE,CAACC,KAAK,CAACC,IAAI,IAAI,IAAI,EAAE,OAAOJ,IAAI;EACtC,oBAAOrC,YAAY,CAACuC,EAAE,EAAE;IAAEE,IAAI,EAAEH;EAAM,CAAC,CAAC;AAC1C","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["cloneElement","isValidElement","withAlpha","SIZE_CONFIG","sm","diameter","iconBox","blur","md","resolveFrostedSize","size","Math","max","round","SURFACE_ALPHA","light","dark","SURFACE_ALPHA_HOVER","RING_ALPHA","RING_ALPHA_HOVER","resolveFrostedPalette","colors","isDark","k","surface","text","surfaceHover","ring","ringHover","icon","activeSurface","primary","activeIcon","primaryForeground","focusRing","shadow","applyIconColor","node","color","el","props","fill"],"sourceRoot":"../../../src","sources":["frosted-icon-button/shared.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -22,7 +22,7 @@ import Animated, { Extrapolation, interpolate, interpolateColor, runOnJS, useAni
|
|
|
22
22
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
23
23
|
import { useHaptics } from "../hooks/useHaptics.js";
|
|
24
24
|
import { setMinimized, useMinimizeState } from "./minimize-context.js";
|
|
25
|
-
import { BAR_MARGIN, BLUR_BLEED, EXPANDED_HEIGHT, HIGHLIGHT_EXPANDED, HIGHLIGHT_MINIMIZED, ICON_SIZE, ITEM_GAP, ITEM_PAD_V, LABEL_FONT_SIZE, MINIMIZED_HEIGHT, MINIMIZED_INSET, ROW_PAD_H, SLIDE_SPRING, useTabBarTheme } from "./shared.js";
|
|
25
|
+
import { BAR_MARGIN, BLUR_BLEED, EXPANDED_HEIGHT, HIGHLIGHT_EXPANDED, HIGHLIGHT_MINIMIZED, ICON_SIZE, ITEM_GAP, ITEM_PAD_V, LABEL_FONT_SIZE, LONG_PRESS_MIN_DURATION, MINIMIZED_HEIGHT, MINIMIZED_INSET, ROW_PAD_H, SLIDE_SPRING, tabBarBottomGap, useTabBarTheme } from "./shared.js";
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* What a `TabBarButton` needs from the bar it sits in. `null` when a button is
|
|
@@ -41,6 +41,7 @@ function TabBarBody({
|
|
|
41
41
|
children,
|
|
42
42
|
activeIndex,
|
|
43
43
|
onIndexChange,
|
|
44
|
+
onIndexLongPress,
|
|
44
45
|
theme: themeOverrides,
|
|
45
46
|
haptics = true,
|
|
46
47
|
style,
|
|
@@ -71,6 +72,11 @@ function TabBarBody({
|
|
|
71
72
|
// scrubbing makes the content jump under the finger.
|
|
72
73
|
const selectIndex = useCallback(index => onIndexChange?.(index), [onIndexChange]);
|
|
73
74
|
|
|
75
|
+
// Long press is reported through the same shape, and deliberately does NOT
|
|
76
|
+
// select: it is a secondary action on the tab under the finger.
|
|
77
|
+
const longPressIndex = useCallback(index => onIndexLongPress?.(index), [onIndexLongPress]);
|
|
78
|
+
const hasLongPress = onIndexLongPress !== undefined;
|
|
79
|
+
|
|
74
80
|
// CONTROLLED path: the bar owns the highlight when `activeIndex` is provided,
|
|
75
81
|
// so it tracks the prop even when a consumer renders custom children instead
|
|
76
82
|
// of `TabBarButton`s. Syncing an imperative animation to a controlled prop is
|
|
@@ -135,8 +141,22 @@ function TabBarBody({
|
|
|
135
141
|
setMinimized(minimized, 0);
|
|
136
142
|
runOnJS(selectIndex)(index);
|
|
137
143
|
});
|
|
138
|
-
return Gesture.Race(pan, tap);
|
|
139
|
-
|
|
144
|
+
if (!hasLongPress) return Gesture.Race(pan, tap);
|
|
145
|
+
|
|
146
|
+
// Long press: the ONLY path to one, because the detector consumes the
|
|
147
|
+
// bar's touches and a button's inner `Pressable` therefore never sees a
|
|
148
|
+
// real finger (see `TabBarButtonBody`). Added to the race only when a
|
|
149
|
+
// handler was supplied — an always-armed long press would cancel the pan
|
|
150
|
+
// for anyone who rests a finger before scrubbing, and no existing consumer
|
|
151
|
+
// asked for that. It cannot cost a tap either: the tap gesture gives up at
|
|
152
|
+
// 400ms, before this one can activate at 500ms, so the two are never
|
|
153
|
+
// candidates at the same instant. Resolves its index through the same
|
|
154
|
+
// `indexAtX` worklet as tap and pan, so all three agree on the geometry.
|
|
155
|
+
const longPress = Gesture.LongPress().minDuration(LONG_PRESS_MIN_DURATION).onStart(event => {
|
|
156
|
+
runOnJS(longPressIndex)(Math.round(indexAtX(event.x, progress.value)));
|
|
157
|
+
});
|
|
158
|
+
return Gesture.Race(pan, tap, longPress);
|
|
159
|
+
}, [windowWidth, tabCount, selectIndex, hasLongPress, longPressIndex, tick, isDragging, lastTicked, slideIndex, minimized, progress]);
|
|
140
160
|
|
|
141
161
|
// CRITICAL — every shared value and every scalar a mapper READS must appear
|
|
142
162
|
// in its dependency array. On web WITHOUT the react-native-worklets babel
|
|
@@ -185,7 +205,10 @@ function TabBarBody({
|
|
|
185
205
|
}]
|
|
186
206
|
};
|
|
187
207
|
}, [progress, slideIndex, windowWidth, tabCount]);
|
|
188
|
-
|
|
208
|
+
|
|
209
|
+
// Shared with `useTabBarReservedSpace`, so a consumer reserving layout space
|
|
210
|
+
// for the bar can never drift from where the bar actually sits.
|
|
211
|
+
const bottomOffset = tabBarBottomGap(insets.bottom);
|
|
189
212
|
const barContext = useMemo(() => ({
|
|
190
213
|
slideIndex,
|
|
191
214
|
isDragging,
|
|
@@ -315,13 +338,15 @@ function TabBarButtonBody({
|
|
|
315
338
|
children: [/*#__PURE__*/_jsx(Glyph, {
|
|
316
339
|
item: item,
|
|
317
340
|
tint: theme.inactiveTint,
|
|
318
|
-
size: ICON_SIZE
|
|
341
|
+
size: ICON_SIZE,
|
|
342
|
+
active: false
|
|
319
343
|
}), /*#__PURE__*/_jsx(Animated.View, {
|
|
320
344
|
style: [StyleSheet.absoluteFill, styles.glyphLayer, activeGlyphStyle],
|
|
321
345
|
children: /*#__PURE__*/_jsx(Glyph, {
|
|
322
346
|
item: item,
|
|
323
347
|
tint: theme.activeTint,
|
|
324
|
-
size: ICON_SIZE
|
|
348
|
+
size: ICON_SIZE,
|
|
349
|
+
active: true
|
|
325
350
|
})
|
|
326
351
|
})]
|
|
327
352
|
}), /*#__PURE__*/_jsx(Animated.Text, {
|