@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.
Files changed (80) hide show
  1. package/lib/commonjs/frosted-icon-button/shared.js +10 -0
  2. package/lib/commonjs/frosted-icon-button/shared.js.map +1 -1
  3. package/lib/commonjs/tab-bar/TabBarBase.js +30 -5
  4. package/lib/commonjs/tab-bar/TabBarBase.js.map +1 -1
  5. package/lib/commonjs/tab-bar/glyph.js +9 -4
  6. package/lib/commonjs/tab-bar/glyph.js.map +1 -1
  7. package/lib/commonjs/tab-bar/glyph.native.js +7 -2
  8. package/lib/commonjs/tab-bar/glyph.native.js.map +1 -1
  9. package/lib/commonjs/tab-bar/index.js +7 -0
  10. package/lib/commonjs/tab-bar/index.js.map +1 -1
  11. package/lib/commonjs/tab-bar/index.web.js +7 -0
  12. package/lib/commonjs/tab-bar/index.web.js.map +1 -1
  13. package/lib/commonjs/tab-bar/shared.js +32 -1
  14. package/lib/commonjs/tab-bar/shared.js.map +1 -1
  15. package/lib/commonjs/tab-bar/use-reserved-space.js +50 -0
  16. package/lib/commonjs/tab-bar/use-reserved-space.js.map +1 -0
  17. package/lib/module/frosted-icon-button/shared.js +10 -0
  18. package/lib/module/frosted-icon-button/shared.js.map +1 -1
  19. package/lib/module/tab-bar/TabBarBase.js +31 -6
  20. package/lib/module/tab-bar/TabBarBase.js.map +1 -1
  21. package/lib/module/tab-bar/glyph.js +9 -4
  22. package/lib/module/tab-bar/glyph.js.map +1 -1
  23. package/lib/module/tab-bar/glyph.native.js +7 -2
  24. package/lib/module/tab-bar/glyph.native.js.map +1 -1
  25. package/lib/module/tab-bar/index.js +1 -0
  26. package/lib/module/tab-bar/index.js.map +1 -1
  27. package/lib/module/tab-bar/index.web.js +1 -0
  28. package/lib/module/tab-bar/index.web.js.map +1 -1
  29. package/lib/module/tab-bar/shared.js +30 -0
  30. package/lib/module/tab-bar/shared.js.map +1 -1
  31. package/lib/module/tab-bar/use-reserved-space.js +46 -0
  32. package/lib/module/tab-bar/use-reserved-space.js.map +1 -0
  33. package/lib/typescript/commonjs/frosted-icon-button/shared.d.ts +10 -0
  34. package/lib/typescript/commonjs/frosted-icon-button/shared.d.ts.map +1 -1
  35. package/lib/typescript/commonjs/tab-bar/TabBarBase.d.ts.map +1 -1
  36. package/lib/typescript/commonjs/tab-bar/glyph.d.ts +1 -1
  37. package/lib/typescript/commonjs/tab-bar/glyph.d.ts.map +1 -1
  38. package/lib/typescript/commonjs/tab-bar/glyph.native.d.ts +1 -1
  39. package/lib/typescript/commonjs/tab-bar/glyph.native.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/tab-bar/index.d.ts +1 -0
  41. package/lib/typescript/commonjs/tab-bar/index.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/tab-bar/index.web.d.ts +1 -0
  43. package/lib/typescript/commonjs/tab-bar/index.web.d.ts.map +1 -1
  44. package/lib/typescript/commonjs/tab-bar/shared.d.ts +25 -0
  45. package/lib/typescript/commonjs/tab-bar/shared.d.ts.map +1 -1
  46. package/lib/typescript/commonjs/tab-bar/types.d.ts +37 -1
  47. package/lib/typescript/commonjs/tab-bar/types.d.ts.map +1 -1
  48. package/lib/typescript/commonjs/tab-bar/use-reserved-space.d.ts +25 -0
  49. package/lib/typescript/commonjs/tab-bar/use-reserved-space.d.ts.map +1 -0
  50. package/lib/typescript/module/frosted-icon-button/shared.d.ts +10 -0
  51. package/lib/typescript/module/frosted-icon-button/shared.d.ts.map +1 -1
  52. package/lib/typescript/module/tab-bar/TabBarBase.d.ts.map +1 -1
  53. package/lib/typescript/module/tab-bar/glyph.d.ts +1 -1
  54. package/lib/typescript/module/tab-bar/glyph.d.ts.map +1 -1
  55. package/lib/typescript/module/tab-bar/glyph.native.d.ts +1 -1
  56. package/lib/typescript/module/tab-bar/glyph.native.d.ts.map +1 -1
  57. package/lib/typescript/module/tab-bar/index.d.ts +1 -0
  58. package/lib/typescript/module/tab-bar/index.d.ts.map +1 -1
  59. package/lib/typescript/module/tab-bar/index.web.d.ts +1 -0
  60. package/lib/typescript/module/tab-bar/index.web.d.ts.map +1 -1
  61. package/lib/typescript/module/tab-bar/shared.d.ts +25 -0
  62. package/lib/typescript/module/tab-bar/shared.d.ts.map +1 -1
  63. package/lib/typescript/module/tab-bar/types.d.ts +37 -1
  64. package/lib/typescript/module/tab-bar/types.d.ts.map +1 -1
  65. package/lib/typescript/module/tab-bar/use-reserved-space.d.ts +25 -0
  66. package/lib/typescript/module/tab-bar/use-reserved-space.d.ts.map +1 -0
  67. package/package.json +1 -1
  68. package/src/__tests__/TabBar.test.tsx +82 -2
  69. package/src/__tests__/TabBarLongPress.test.tsx +258 -0
  70. package/src/__tests__/TabBarReservedSpace.test.tsx +150 -0
  71. package/src/__tests__/TabBarWebFork.test.ts +1 -0
  72. package/src/frosted-icon-button/shared.ts +10 -0
  73. package/src/tab-bar/TabBarBase.tsx +39 -5
  74. package/src/tab-bar/glyph.native.tsx +5 -2
  75. package/src/tab-bar/glyph.tsx +8 -4
  76. package/src/tab-bar/index.ts +1 -0
  77. package/src/tab-bar/index.web.tsx +1 -0
  78. package/src/tab-bar/shared.ts +38 -0
  79. package/src/tab-bar/types.ts +37 -1
  80. package/src/tab-bar/use-reserved-space.ts +44 -0
@@ -1 +1 @@
1
- {"version":3,"names":["Children","createContext","useCallback","useContext","useEffect","useMemo","Pressable","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","Animated","Extrapolation","interpolate","interpolateColor","runOnJS","useAnimatedStyle","useSharedValue","withSpring","useSafeAreaInsets","useHaptics","setMinimized","useMinimizeState","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","jsx","_jsx","jsxs","_jsxs","BarContext","TabBarBody","Surface","Blur","children","activeIndex","onIndexChange","theme","themeOverrides","haptics","style","viewProps","insets","width","windowWidth","minimized","progress","slideIndex","isDragging","lastTicked","tabCount","Math","max","count","impact","tick","selectIndex","index","undefined","value","gesture","indexAtX","x","minimizedValue","sideInset","CLAMP","barWidth","itemWidth","raw","min","pan","Pan","activeOffsetX","failOffsetY","onStart","round","onUpdate","event","rounded","onFinalize","tap","Tap","maxDistance","maxDuration","onEnd","success","Race","barStyle","height","marginHorizontal","shapeStyle","borderRadius","highlightStyle","barHeight","top","transform","translateX","bottomOffset","bottom","barContext","styles","root","direction","position","left","right","barWrap","marginBottom","highlight","backgroundColor","accessibilityRole","itemRow","Provider","TabBarButtonBody","Glyph","item","isFocused","onPress","pressableProps","bar","standaloneTheme","focused","activeGlyphStyle","opacity","abs","labelStyle","color","activeTint","inactiveTint","boxStyle","accessibilityState","selected","accessibilityLabel","label","state","button","itemBox","tint","size","absoluteFill","glyphLayer","Text","numberOfLines","createTabBar","TabBar","props","displayName","createTabBarButton","TabBarButton","create","pointerEvents","borderCurve","flex","flexDirection","alignItems","paddingHorizontal","justifyContent","alignSelf","paddingTop","overflow","fontSize","fontWeight","marginTop"],"sourceRoot":"../../../src","sources":["tab-bar/TabBarBase.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Children","createContext","useCallback","useContext","useEffect","useMemo","Pressable","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","Animated","Extrapolation","interpolate","interpolateColor","runOnJS","useAnimatedStyle","useSharedValue","withSpring","useSafeAreaInsets","useHaptics","setMinimized","useMinimizeState","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","jsx","_jsx","jsxs","_jsxs","BarContext","TabBarBody","Surface","Blur","children","activeIndex","onIndexChange","onIndexLongPress","theme","themeOverrides","haptics","style","viewProps","insets","width","windowWidth","minimized","progress","slideIndex","isDragging","lastTicked","tabCount","Math","max","count","impact","tick","selectIndex","index","longPressIndex","hasLongPress","undefined","value","gesture","indexAtX","x","minimizedValue","sideInset","CLAMP","barWidth","itemWidth","raw","min","pan","Pan","activeOffsetX","failOffsetY","onStart","round","onUpdate","event","rounded","onFinalize","tap","Tap","maxDistance","maxDuration","onEnd","success","Race","longPress","LongPress","minDuration","barStyle","height","marginHorizontal","shapeStyle","borderRadius","highlightStyle","barHeight","top","transform","translateX","bottomOffset","bottom","barContext","styles","root","direction","position","left","right","barWrap","marginBottom","highlight","backgroundColor","accessibilityRole","itemRow","Provider","TabBarButtonBody","Glyph","item","isFocused","onPress","pressableProps","bar","standaloneTheme","focused","activeGlyphStyle","opacity","abs","labelStyle","color","activeTint","inactiveTint","boxStyle","accessibilityState","selected","accessibilityLabel","label","state","button","itemBox","tint","size","active","absoluteFill","glyphLayer","Text","numberOfLines","createTabBar","TabBar","props","displayName","createTabBarButton","TabBarButton","create","pointerEvents","borderCurve","flex","flexDirection","alignItems","paddingHorizontal","justifyContent","alignSelf","paddingTop","overflow","fontSize","fontWeight","marginTop"],"sourceRoot":"../../../src","sources":["tab-bar/TabBarBase.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,8 +4,8 @@
4
4
  * Ported from expo-glass-tabs v0.1.1 — src/glass-tab-bar.tsx
5
5
  * (MIT © 2026 David Mokos). See the top-level NOTICE.
6
6
  *
7
- * NEUTRAL default variant of a tab glyph: renders the item's own `icon` node,
8
- * tinted for this crossfade layer.
7
+ * NEUTRAL default variant of a tab glyph: renders the item's own `icon` node
8
+ * or its `activeIcon` on the active layer — tinted for this crossfade layer.
9
9
  *
10
10
  * `item.icon` is the primary icon API for the whole family — a Bloom icon
11
11
  * element, exactly like `TabsTrigger` and `FrostedIconButton` take. `sfSymbol`
@@ -20,18 +20,23 @@ import { jsx as _jsx } from "react/jsx-runtime";
20
20
  export function TabBarGlyph({
21
21
  item,
22
22
  tint,
23
- size
23
+ size,
24
+ active
24
25
  }) {
25
26
  // The tint is injected as the icon's `fill` FALLBACK — an icon that sets its
26
27
  // own `fill` (a brand mark, say) keeps it, so the crossfade layers simply
27
28
  // render it twice at full opacity and it never flickers.
29
+ //
30
+ // `activeIcon` is what makes the crossfade able to swap NODES: an icon set
31
+ // whose selected state is a different SHAPE (outline → filled) cannot be
32
+ // expressed by tinting one node two ways. Absent, the layer renders `icon`.
28
33
  return /*#__PURE__*/_jsx(View, {
29
34
  style: {
30
35
  height: size,
31
36
  alignItems: 'center',
32
37
  justifyContent: 'center'
33
38
  },
34
- children: applyIconColor(item.icon, tint)
39
+ children: applyIconColor(active ? item.activeIcon ?? item.icon : item.icon, tint)
35
40
  });
36
41
  }
37
42
  TabBarGlyph.displayName = 'TabBarGlyph';
@@ -1 +1 @@
1
- {"version":3,"names":["View","applyIconColor","jsx","_jsx","TabBarGlyph","item","tint","size","style","height","alignItems","justifyContent","children","icon","displayName"],"sourceRoot":"../../../src","sources":["tab-bar/glyph.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,IAAI,QAAQ,cAAc;AAEnC,SAASC,cAAc,QAAQ,kCAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG/D,OAAO,SAASC,WAAWA,CAAC;EAAEC,IAAI;EAAEC,IAAI;EAAEC;AAAuB,CAAC,EAAE;EAClE;EACA;EACA;EACA,oBACEJ,IAAA,CAACH,IAAI;IAACQ,KAAK,EAAE;MAAEC,MAAM,EAAEF,IAAI;MAAEG,UAAU,EAAE,QAAQ;MAAEC,cAAc,EAAE;IAAS,CAAE;IAAAC,QAAA,EAC3EX,cAAc,CAACI,IAAI,CAACQ,IAAI,EAAEP,IAAI;EAAC,CAC5B,CAAC;AAEX;AAEAF,WAAW,CAACU,WAAW,GAAG,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["View","applyIconColor","jsx","_jsx","TabBarGlyph","item","tint","size","active","style","height","alignItems","justifyContent","children","activeIcon","icon","displayName"],"sourceRoot":"../../../src","sources":["tab-bar/glyph.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,IAAI,QAAQ,cAAc;AAEnC,SAASC,cAAc,QAAQ,kCAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG/D,OAAO,SAASC,WAAWA,CAAC;EAAEC,IAAI;EAAEC,IAAI;EAAEC,IAAI;EAAEC;AAAyB,CAAC,EAAE;EAC1E;EACA;EACA;EACA;EACA;EACA;EACA;EACA,oBACEL,IAAA,CAACH,IAAI;IAACS,KAAK,EAAE;MAAEC,MAAM,EAAEH,IAAI;MAAEI,UAAU,EAAE,QAAQ;MAAEC,cAAc,EAAE;IAAS,CAAE;IAAAC,QAAA,EAC3EZ,cAAc,CAACO,MAAM,GAAIH,IAAI,CAACS,UAAU,IAAIT,IAAI,CAACU,IAAI,GAAIV,IAAI,CAACU,IAAI,EAAET,IAAI;EAAC,CACtE,CAAC;AAEX;AAEAF,WAAW,CAACY,WAAW,GAAG,aAAa","ignoreList":[]}
@@ -20,7 +20,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
20
20
  export function TabBarGlyph({
21
21
  item,
22
22
  tint,
23
- size
23
+ size,
24
+ active
24
25
  }) {
25
26
  if (item.sfSymbol && Platform.OS === 'ios') {
26
27
  // `TabBarItem.sfSymbol` is a plain `string` because `types.ts` may import
@@ -37,13 +38,17 @@ export function TabBarGlyph({
37
38
  weight: "semibold"
38
39
  });
39
40
  }
41
+
42
+ // Same node-swapping crossfade as the neutral variant: the active layer takes
43
+ // `activeIcon` when the item has one. An SF Symbol never reaches here, and is
44
+ // tinted natively above, so the tint crossfade remains its correct expression.
40
45
  return /*#__PURE__*/_jsx(View, {
41
46
  style: {
42
47
  height: size,
43
48
  alignItems: 'center',
44
49
  justifyContent: 'center'
45
50
  },
46
- children: applyIconColor(item.icon, tint)
51
+ children: applyIconColor(active ? item.activeIcon ?? item.icon : item.icon, tint)
47
52
  });
48
53
  }
49
54
  TabBarGlyph.displayName = 'TabBarGlyph';
@@ -1 +1 @@
1
- {"version":3,"names":["SymbolView","Platform","View","applyIconColor","jsx","_jsx","TabBarGlyph","item","tint","size","sfSymbol","OS","name","tintColor","weight","style","height","alignItems","justifyContent","children","icon","displayName"],"sourceRoot":"../../../src","sources":["tab-bar/glyph.native.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,UAAU,QAAuB,cAAc;AACxD,SAASC,QAAQ,EAAEC,IAAI,QAAQ,cAAc;AAE7C,SAASC,cAAc,QAAQ,kCAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG/D,OAAO,SAASC,WAAWA,CAAC;EAAEC,IAAI;EAAEC,IAAI;EAAEC;AAAuB,CAAC,EAAE;EAClE,IAAIF,IAAI,CAACG,QAAQ,IAAIT,QAAQ,CAACU,EAAE,KAAK,KAAK,EAAE;IAC1C;IACA;IACA;IACA;IACA;IACA;IACA;IACA,oBACEN,IAAA,CAACL,UAAU;MACTY,IAAI,EAAEL,IAAI,CAACG,QAAqB;MAChCG,SAAS,EAAEL,IAAK;MAChBC,IAAI,EAAEA,IAAK;MACXK,MAAM,EAAC;IAAU,CAClB,CAAC;EAEN;EAEA,oBACET,IAAA,CAACH,IAAI;IAACa,KAAK,EAAE;MAAEC,MAAM,EAAEP,IAAI;MAAEQ,UAAU,EAAE,QAAQ;MAAEC,cAAc,EAAE;IAAS,CAAE;IAAAC,QAAA,EAC3EhB,cAAc,CAACI,IAAI,CAACa,IAAI,EAAEZ,IAAI;EAAC,CAC5B,CAAC;AAEX;AAEAF,WAAW,CAACe,WAAW,GAAG,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["SymbolView","Platform","View","applyIconColor","jsx","_jsx","TabBarGlyph","item","tint","size","active","sfSymbol","OS","name","tintColor","weight","style","height","alignItems","justifyContent","children","activeIcon","icon","displayName"],"sourceRoot":"../../../src","sources":["tab-bar/glyph.native.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,UAAU,QAAuB,cAAc;AACxD,SAASC,QAAQ,EAAEC,IAAI,QAAQ,cAAc;AAE7C,SAASC,cAAc,QAAQ,kCAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG/D,OAAO,SAASC,WAAWA,CAAC;EAAEC,IAAI;EAAEC,IAAI;EAAEC,IAAI;EAAEC;AAAyB,CAAC,EAAE;EAC1E,IAAIH,IAAI,CAACI,QAAQ,IAAIV,QAAQ,CAACW,EAAE,KAAK,KAAK,EAAE;IAC1C;IACA;IACA;IACA;IACA;IACA;IACA;IACA,oBACEP,IAAA,CAACL,UAAU;MACTa,IAAI,EAAEN,IAAI,CAACI,QAAqB;MAChCG,SAAS,EAAEN,IAAK;MAChBC,IAAI,EAAEA,IAAK;MACXM,MAAM,EAAC;IAAU,CAClB,CAAC;EAEN;;EAEA;EACA;EACA;EACA,oBACEV,IAAA,CAACH,IAAI;IAACc,KAAK,EAAE;MAAEC,MAAM,EAAER,IAAI;MAAES,UAAU,EAAE,QAAQ;MAAEC,cAAc,EAAE;IAAS,CAAE;IAAAC,QAAA,EAC3EjB,cAAc,CAACO,MAAM,GAAIH,IAAI,CAACc,UAAU,IAAId,IAAI,CAACe,IAAI,GAAIf,IAAI,CAACe,IAAI,EAAEd,IAAI;EAAC,CACtE,CAAC;AAEX;AAEAF,WAAW,CAACiB,WAAW,GAAG,aAAa","ignoreList":[]}
@@ -21,4 +21,5 @@ import { TabBarSurface } from './surface';
21
21
  export const TabBar = createTabBar(TabBarSurface, ProgressiveBlur);
22
22
  export const TabBarButton = createTabBarButton(TabBarGlyph);
23
23
  export { MINIMIZE_SPRING, setMinimized, TabBarMinimizeProvider, useMinimizeOnScroll, useMinimizeState, useTabBarMinimized } from "./minimize-context.js";
24
+ export { useTabBarReservedSpace } from "./use-reserved-space.js";
24
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ProgressiveBlur","createTabBar","createTabBarButton","TabBarGlyph","TabBarSurface","TabBar","TabBarButton","MINIMIZE_SPRING","setMinimized","TabBarMinimizeProvider","useMinimizeOnScroll","useMinimizeState","useTabBarMinimized"],"sourceRoot":"../../../src","sources":["tab-bar/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,eAAe,QAAQ,qBAAqB;AACrD,SAASC,YAAY,EAAEC,kBAAkB,QAAQ,iBAAc;AAC/D,SAASC,WAAW,QAAQ,SAAS;AACrC,SAASC,aAAa,QAAQ,WAAW;AAEzC,OAAO,MAAMC,MAAM,GAAGJ,YAAY,CAACG,aAAa,EAAEJ,eAAe,CAAC;AAClE,OAAO,MAAMM,YAAY,GAAGJ,kBAAkB,CAACC,WAAW,CAAC;AAE3D,SACEI,eAAe,EACfC,YAAY,EACZC,sBAAsB,EACtBC,mBAAmB,EACnBC,gBAAgB,EAChBC,kBAAkB,QACb,uBAAoB","ignoreList":[]}
1
+ {"version":3,"names":["ProgressiveBlur","createTabBar","createTabBarButton","TabBarGlyph","TabBarSurface","TabBar","TabBarButton","MINIMIZE_SPRING","setMinimized","TabBarMinimizeProvider","useMinimizeOnScroll","useMinimizeState","useTabBarMinimized","useTabBarReservedSpace"],"sourceRoot":"../../../src","sources":["tab-bar/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,eAAe,QAAQ,qBAAqB;AACrD,SAASC,YAAY,EAAEC,kBAAkB,QAAQ,iBAAc;AAC/D,SAASC,WAAW,QAAQ,SAAS;AACrC,SAASC,aAAa,QAAQ,WAAW;AAEzC,OAAO,MAAMC,MAAM,GAAGJ,YAAY,CAACG,aAAa,EAAEJ,eAAe,CAAC;AAClE,OAAO,MAAMM,YAAY,GAAGJ,kBAAkB,CAACC,WAAW,CAAC;AAE3D,SACEI,eAAe,EACfC,YAAY,EACZC,sBAAsB,EACtBC,mBAAmB,EACnBC,gBAAgB,EAChBC,kBAAkB,QACb,uBAAoB;AAE3B,SAASC,sBAAsB,QAAQ,yBAAsB","ignoreList":[]}
@@ -23,4 +23,5 @@ import { TabBarSurface } from "./surface.web.js";
23
23
  export const TabBar = createTabBar(TabBarSurface, ProgressiveBlur);
24
24
  export const TabBarButton = createTabBarButton(TabBarGlyph);
25
25
  export { MINIMIZE_SPRING, setMinimized, TabBarMinimizeProvider, useMinimizeOnScroll, useMinimizeState, useTabBarMinimized } from "./minimize-context.js";
26
+ export { useTabBarReservedSpace } from "./use-reserved-space.js";
26
27
  //# sourceMappingURL=index.web.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ProgressiveBlur","createTabBar","createTabBarButton","TabBarGlyph","TabBarSurface","TabBar","TabBarButton","MINIMIZE_SPRING","setMinimized","TabBarMinimizeProvider","useMinimizeOnScroll","useMinimizeState","useTabBarMinimized"],"sourceRoot":"../../../src","sources":["tab-bar/index.web.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,eAAe,QAAQ,kCAA+B;AAC/D,SAASC,YAAY,EAAEC,kBAAkB,QAAQ,iBAAc;AAC/D,SAASC,WAAW,QAAQ,SAAS;AACrC,SAASC,aAAa,QAAQ,kBAAe;AAE7C,OAAO,MAAMC,MAAM,GAAGJ,YAAY,CAACG,aAAa,EAAEJ,eAAe,CAAC;AAClE,OAAO,MAAMM,YAAY,GAAGJ,kBAAkB,CAACC,WAAW,CAAC;AAE3D,SACEI,eAAe,EACfC,YAAY,EACZC,sBAAsB,EACtBC,mBAAmB,EACnBC,gBAAgB,EAChBC,kBAAkB,QACb,uBAAoB","ignoreList":[]}
1
+ {"version":3,"names":["ProgressiveBlur","createTabBar","createTabBarButton","TabBarGlyph","TabBarSurface","TabBar","TabBarButton","MINIMIZE_SPRING","setMinimized","TabBarMinimizeProvider","useMinimizeOnScroll","useMinimizeState","useTabBarMinimized","useTabBarReservedSpace"],"sourceRoot":"../../../src","sources":["tab-bar/index.web.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,eAAe,QAAQ,kCAA+B;AAC/D,SAASC,YAAY,EAAEC,kBAAkB,QAAQ,iBAAc;AAC/D,SAASC,WAAW,QAAQ,SAAS;AACrC,SAASC,aAAa,QAAQ,kBAAe;AAE7C,OAAO,MAAMC,MAAM,GAAGJ,YAAY,CAACG,aAAa,EAAEJ,eAAe,CAAC;AAClE,OAAO,MAAMM,YAAY,GAAGJ,kBAAkB,CAACC,WAAW,CAAC;AAE3D,SACEI,eAAe,EACfC,YAAY,EACZC,sBAAsB,EACtBC,mBAAmB,EACnBC,gBAAgB,EAChBC,kBAAkB,QACb,uBAAoB;AAE3B,SAASC,sBAAsB,QAAQ,yBAAsB","ignoreList":[]}
@@ -47,6 +47,27 @@ export const BLUR_BLEED = 44;
47
47
  /** Label type size. Small by design — the icon carries the meaning. */
48
48
  export const LABEL_FONT_SIZE = 9.5;
49
49
 
50
+ /**
51
+ * How much of the bottom safe-area inset the bar's own gap absorbs. The pill
52
+ * already floats clear of the content, so sitting the FULL inset below it
53
+ * strands it in the middle of the screen on a home-indicator device.
54
+ */
55
+ const SAFE_AREA_ABSORBED = 16;
56
+ /** Gap floor, for a device (or a browser) reporting no bottom inset at all. */
57
+ const MIN_BOTTOM_GAP = 12;
58
+
59
+ /**
60
+ * Vertical gap between the bottom of the pill and the bottom of the window.
61
+ *
62
+ * The safe-area inset is folded in HERE, which is why anything reserving layout
63
+ * space for the bar must go through `useTabBarReservedSpace` (which derives its
64
+ * number from this same function) rather than adding `insets.bottom` to a
65
+ * hardcoded height — that double-counts the inset.
66
+ */
67
+ export function tabBarBottomGap(bottomInset) {
68
+ return Math.max(bottomInset - SAFE_AREA_ABSORBED, MIN_BOTTOM_GAP);
69
+ }
70
+
50
71
  /**
51
72
  * Slide spring: interruptible by design — rapid tab-hopping retargets with
52
73
  * preserved velocity. Slight under-damping gives the pill a tiny settle, safe
@@ -57,6 +78,15 @@ export const SLIDE_SPRING = {
57
78
  dampingRatio: 0.82
58
79
  };
59
80
 
81
+ /**
82
+ * How long a press must be held before `onIndexLongPress` fires.
83
+ *
84
+ * Comfortably above the tap gesture's own 400ms ceiling: the two can never both
85
+ * be candidates at the same instant, so arming the long press cannot cost the
86
+ * bar a tap. Matches the platform long-press feel (iOS ~0.5s).
87
+ */
88
+ export const LONG_PRESS_MIN_DURATION = 500;
89
+
60
90
  // ---------------------------------------------------------------------------
61
91
  // Theme
62
92
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","withAlpha","useTheme","EXPANDED_HEIGHT","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","background","solidFallback","backgroundSecondary","useTabBarTheme"],"sourceRoot":"../../../src","sources":["tab-bar/shared.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,OAAO;AAI/B,SAASC,SAAS,QAAQ,yBAAsB;AAEhD,SAASC,QAAQ,QAAQ,uBAAoB;AAG7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMC,eAAe,GAAG,EAAE;AACjC,OAAO,MAAMC,gBAAgB,GAAG,EAAE;AAClC;AACA,OAAO,MAAMC,eAAe,GAAG,EAAE;AACjC;AACA,OAAO,MAAMC,UAAU,GAAG,EAAE;AAC5B;AACA,OAAO,MAAMC,SAAS,GAAG,CAAC;AAC1B,OAAO,MAAMC,YAAY,GAAG,EAAE;AAC9B,OAAO,MAAMC,SAAS,GAAG,EAAE;AAC3B;AACA;AACA;AACA;AACA,OAAO,MAAMC,QAAQ,GAAG,CAAC;AACzB,OAAO,MAAMC,WAAW,GAAGH,YAAY,GAAGE,QAAQ;AAClD,OAAO,MAAME,UAAU,GAAG,CAAC;AAC3B;AACA,OAAO,MAAMC,kBAAkB,GAAGJ,SAAS,GAAGE,WAAW,GAAGC,UAAU,GAAG,CAAC;AAC1E,OAAO,MAAME,mBAAmB,GAAGL,SAAS,GAAGG,UAAU,GAAG,CAAC;AAC7D;AACA,OAAO,MAAMG,UAAU,GAAG,EAAE;AAC5B;AACA,OAAO,MAAMC,eAAe,GAAG,GAAG;;AAElC;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAG;EAAEC,QAAQ,EAAE,GAAG;EAAEC,YAAY,EAAE;AAAK,CAAC;;AAEjE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAChCC,MAAmB,EACnBC,SAAgC,EACnB;EACb,OAAO;IACLC,UAAU,EAAED,SAAS,EAAEC,UAAU,IAAIF,MAAM,CAACG,IAAI;IAChDC,YAAY,EAAEH,SAAS,EAAEG,YAAY,IAAIJ,MAAM,CAACK,aAAa;IAC7DC,SAAS,EAAEL,SAAS,EAAEK,SAAS,IAAIN,MAAM,CAACO,UAAU;IACpDC,SAAS,EAAEP,SAAS,EAAEO,SAAS,IAAI5B,SAAS,CAACoB,MAAM,CAACS,UAAU,EAAE,IAAI,CAAC;IACrEC,aAAa,EAAET,SAAS,EAAES,aAAa,IAAI9B,SAAS,CAACoB,MAAM,CAACW,mBAAmB,EAAE,IAAI;EACvF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAACX,SAAgC,EAAe;EAC5E,MAAM;IAAED;EAAO,CAAC,GAAGnB,QAAQ,CAAC,CAAC;EAC7B,MAAM;IAAEqB,UAAU;IAAEE,YAAY;IAAEE,SAAS;IAAEE,SAAS;IAAEE;EAAc,CAAC,GAAGT,SAAS,IAAI,CAAC,CAAC;EAEzF,OAAOtB,OAAO,CACZ,MACEoB,kBAAkB,CAACC,MAAM,EAAE;IACzBE,UAAU;IACVE,YAAY;IACZE,SAAS;IACTE,SAAS;IACTE;EACF,CAAC,CAAC,EACJ,CAACV,MAAM,EAAEE,UAAU,EAAEE,YAAY,EAAEE,SAAS,EAAEE,SAAS,EAAEE,aAAa,CACxE,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","withAlpha","useTheme","EXPANDED_HEIGHT","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","background","solidFallback","backgroundSecondary","useTabBarTheme"],"sourceRoot":"../../../src","sources":["tab-bar/shared.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * How much room a screen must leave at the bottom for the floating bar.
5
+ *
6
+ * The bar is `position: absolute` over the content, so nothing reserves space
7
+ * for it automatically — every scrollable screen under a tab layout has to pad
8
+ * its own content out from under the pill. That number is built from the bar's
9
+ * private geometry (its expanded height and the gap it keeps from the window's
10
+ * bottom edge), which is exactly why it is exported as a hook: hardcoding it in
11
+ * an app silently drifts the moment the bar changes by a pixel.
12
+ *
13
+ * Platform-neutral, like the rest of the family — `react-native-safe-area-context`
14
+ * is already a required Bloom peer and is what the bar itself measures with.
15
+ */
16
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
17
+ import { EXPANDED_HEIGHT, tabBarBottomGap } from "./shared.js";
18
+
19
+ /**
20
+ * The vertical space the tab bar occupies above the bottom of the window, in
21
+ * px. Use it directly as the bottom padding (or bottom offset) of anything that
22
+ * would otherwise sit under the bar:
23
+ *
24
+ * ```tsx
25
+ * const reserved = useTabBarReservedSpace();
26
+ *
27
+ * <Animated.ScrollView contentContainerStyle={{ paddingBottom: reserved }} />
28
+ * <Fab style={{ position: 'absolute', right: 16, bottom: reserved + 12 }} />
29
+ * ```
30
+ *
31
+ * The value ALREADY INCLUDES the bottom safe-area inset — the bar folds the
32
+ * inset into its own bottom gap, so it is measured from the true window edge,
33
+ * not from the safe area. Never write `reserved + insets.bottom`: that counts
34
+ * the home indicator twice and strands a visible band of dead space under every
35
+ * list (a 76px bar reserving 110px on an iOS device or PWA). It is the whole
36
+ * number; nothing needs adding to it.
37
+ *
38
+ * It is the EXPANDED height, deliberately. The bar minimizes while scrolling
39
+ * down and re-expands on the way up, so reserving the minimized height would
40
+ * hide the end of a list the moment the user scrolled back to it.
41
+ */
42
+ export function useTabBarReservedSpace() {
43
+ const insets = useSafeAreaInsets();
44
+ return tabBarBottomGap(insets.bottom) + EXPANDED_HEIGHT;
45
+ }
46
+ //# sourceMappingURL=use-reserved-space.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSafeAreaInsets","EXPANDED_HEIGHT","tabBarBottomGap","useTabBarReservedSpace","insets","bottom"],"sourceRoot":"../../../src","sources":["tab-bar/use-reserved-space.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,iBAAiB,QAAQ,gCAAgC;AAElE,SAASC,eAAe,EAAEC,eAAe,QAAQ,aAAU;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAAA,EAAW;EAC/C,MAAMC,MAAM,GAAGJ,iBAAiB,CAAC,CAAC;EAClC,OAAOE,eAAe,CAACE,MAAM,CAACC,MAAM,CAAC,GAAGJ,eAAe;AACzD","ignoreList":[]}
@@ -55,6 +55,16 @@ export declare function resolveFrostedPalette(colors: ThemeColors, isDark: boole
55
55
  * so any bare Bloom icon element gets the theme-aware color for free while an
56
56
  * explicitly-colored icon is never overridden. Non-element children (plain
57
57
  * text/strings) pass through unchanged.
58
+ *
59
+ * KNOWN LIMIT, deliberately not papered over: an icon component that paints from
60
+ * a `color` PROP rather than from `fill`/`style.color` ignores this entirely, and
61
+ * does so SILENTLY — nothing throws, the glyph renders, it simply never takes the
62
+ * tint. `color` is not injected alongside `fill` because the prop is not ours to
63
+ * claim: components use it for semantic variants (`color="danger"`), so writing an
64
+ * `rgb(…)` string into it can produce a worse failure than the one it fixes, and
65
+ * an icon already carrying its own `color` would be clobbered. Consumers with such
66
+ * a set pre-color the element themselves; the tab bar additionally offers
67
+ * `TabBarItem.activeIcon`, which carries selection by shape instead of by tint.
58
68
  */
59
69
  export declare function applyIconColor(node: ReactNode, color: string): ReactNode;
60
70
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/frosted-icon-button/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;AAGxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;CACd;AASD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,GAAG,eAAe,CASxF;AAiBD,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,cAAc,CAa1F;AAKD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAKxE"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/frosted-icon-button/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;AAGxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;CACd;AASD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,GAAG,eAAe,CASxF;AAiBD,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,cAAc,CAa1F;AAKD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAKxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabBarBase.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/TabBarBase.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAgBf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,EAeL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAe,MAAM,SAAS,CAAC;AAqY3E;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC1C,IAAI,EAAE,aAAa,CAAC,oBAAoB,CAAC;YAElB,WAAW;;EAGnC;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,gBAAgB,CAAC;YAC1C,iBAAiB;;EAG/C"}
1
+ {"version":3,"file":"TabBarBase.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/TabBarBase.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAgBf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,EAiBL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAe,MAAM,SAAS,CAAC;AAqa3E;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC1C,IAAI,EAAE,aAAa,CAAC,oBAAoB,CAAC;YAElB,WAAW;;EAGnC;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,gBAAgB,CAAC;YAC1C,iBAAiB;;EAG/C"}
@@ -1,5 +1,5 @@
1
1
  import type { TabBarGlyphProps } from './shared';
2
- export declare function TabBarGlyph({ item, tint, size }: TabBarGlyphProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function TabBarGlyph({ item, tint, size, active }: TabBarGlyphProps): import("react/jsx-runtime").JSX.Element;
3
3
  export declare namespace TabBarGlyph {
4
4
  var displayName: string;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"glyph.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/glyph.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,gBAAgB,2CASjE;yBATe,WAAW"}
1
+ {"version":3,"file":"glyph.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/glyph.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,gBAAgB,2CAazE;yBAbe,WAAW"}
@@ -1,5 +1,5 @@
1
1
  import type { TabBarGlyphProps } from './shared';
2
- export declare function TabBarGlyph({ item, tint, size }: TabBarGlyphProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function TabBarGlyph({ item, tint, size, active }: TabBarGlyphProps): import("react/jsx-runtime").JSX.Element;
3
3
  export declare namespace TabBarGlyph {
4
4
  var displayName: string;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"glyph.native.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/glyph.native.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,gBAAgB,2CAwBjE;yBAxBe,WAAW"}
1
+ {"version":3,"file":"glyph.native.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/glyph.native.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,gBAAgB,2CA2BzE;yBA3Be,WAAW"}
@@ -8,5 +8,6 @@ export declare const TabBarButton: {
8
8
  };
9
9
  export { MINIMIZE_SPRING, setMinimized, TabBarMinimizeProvider, useMinimizeOnScroll, useMinimizeState, useTabBarMinimized, } from './minimize-context';
10
10
  export type { MinimizeState } from './minimize-context';
11
+ export { useTabBarReservedSpace } from './use-reserved-space';
11
12
  export type { TabBarButtonProps, TabBarItem, TabBarProps, TabBarTheme } from './types';
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/index.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,MAAM;;;CAA+C,CAAC;AACnE,eAAO,MAAM,YAAY;;;CAAkC,CAAC;AAE5D,OAAO,EACL,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/index.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,MAAM;;;CAA+C,CAAC;AACnE,eAAO,MAAM,YAAY;;;CAAkC,CAAC;AAE5D,OAAO,EACL,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
@@ -8,5 +8,6 @@ export declare const TabBarButton: {
8
8
  };
9
9
  export { MINIMIZE_SPRING, setMinimized, TabBarMinimizeProvider, useMinimizeOnScroll, useMinimizeState, useTabBarMinimized, } from './minimize-context';
10
10
  export type { MinimizeState } from './minimize-context';
11
+ export { useTabBarReservedSpace } from './use-reserved-space';
11
12
  export type { TabBarButtonProps, TabBarItem, TabBarProps, TabBarTheme } from './types';
12
13
  //# sourceMappingURL=index.web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/index.web.tsx"],"names":[],"mappings":"AAqBA,eAAO,MAAM,MAAM;;;CAA+C,CAAC;AACnE,eAAO,MAAM,YAAY;;;CAAkC,CAAC;AAE5D,OAAO,EACL,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/index.web.tsx"],"names":[],"mappings":"AAqBA,eAAO,MAAM,MAAM;;;CAA+C,CAAC;AACnE,eAAO,MAAM,YAAY;;;CAAkC,CAAC;AAE5D,OAAO,EACL,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
@@ -26,6 +26,15 @@ export declare const HIGHLIGHT_MINIMIZED: number;
26
26
  export declare const BLUR_BLEED = 44;
27
27
  /** Label type size. Small by design — the icon carries the meaning. */
28
28
  export declare const LABEL_FONT_SIZE = 9.5;
29
+ /**
30
+ * Vertical gap between the bottom of the pill and the bottom of the window.
31
+ *
32
+ * The safe-area inset is folded in HERE, which is why anything reserving layout
33
+ * space for the bar must go through `useTabBarReservedSpace` (which derives its
34
+ * number from this same function) rather than adding `insets.bottom` to a
35
+ * hardcoded height — that double-counts the inset.
36
+ */
37
+ export declare function tabBarBottomGap(bottomInset: number): number;
29
38
  /**
30
39
  * Slide spring: interruptible by design — rapid tab-hopping retargets with
31
40
  * preserved velocity. Slight under-damping gives the pill a tiny settle, safe
@@ -35,6 +44,14 @@ export declare const SLIDE_SPRING: {
35
44
  duration: number;
36
45
  dampingRatio: number;
37
46
  };
47
+ /**
48
+ * How long a press must be held before `onIndexLongPress` fires.
49
+ *
50
+ * Comfortably above the tap gesture's own 400ms ceiling: the two can never both
51
+ * be candidates at the same instant, so arming the long press cannot cost the
52
+ * bar a tap. Matches the platform long-press feel (iOS ~0.5s).
53
+ */
54
+ export declare const LONG_PRESS_MIN_DURATION = 500;
38
55
  /**
39
56
  * Resolve the bar's five colors from Bloom's theme tokens, with an optional
40
57
  * partial override on top.
@@ -89,5 +106,13 @@ export interface TabBarGlyphProps {
89
106
  tint: string;
90
107
  /** Rendered icon size in px ({@link ICON_SIZE}). */
91
108
  size: number;
109
+ /**
110
+ * Which crossfade layer this is: `false` for the inactive one underneath,
111
+ * `true` for the one fading in on top. The active layer renders
112
+ * `item.activeIcon` when the item has one, so a set that expresses selection
113
+ * by shape (outline → filled) crossfades between two different nodes rather
114
+ * than between two tints of the same node.
115
+ */
116
+ active: boolean;
92
117
  }
93
118
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/shared.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAWvD,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,4EAA4E;AAC5E,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,qEAAqE;AACrE,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,8DAA8D;AAC9D,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B;;;GAGG;AACH,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,WAAW,QAA0B,CAAC;AACnD,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,QAA2C,CAAC;AAC3E,eAAO,MAAM,mBAAmB,QAA6B,CAAC;AAC9D,iEAAiE;AACjE,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,uEAAuE;AACvE,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;CAAwC,CAAC;AAMlE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC/B,WAAW,CAQb;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAe5E;AAaD,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,KAAK,EAAE,WAAW,CAAC;IACnB;;;;;;;;;;;;OAYG;IACH,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;CACd"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/shared.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAWvD,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,4EAA4E;AAC5E,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,qEAAqE;AACrE,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,8DAA8D;AAC9D,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B;;;GAGG;AACH,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,WAAW,QAA0B,CAAC;AACnD,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,QAA2C,CAAC;AAC3E,eAAO,MAAM,mBAAmB,QAA6B,CAAC;AAC9D,iEAAiE;AACjE,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,uEAAuE;AACvE,eAAO,MAAM,eAAe,MAAM,CAAC;AAWnC;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;CAAwC,CAAC;AAElE;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAM3C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC/B,WAAW,CAQb;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAe5E;AAaD,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,KAAK,EAAE,WAAW,CAAC;IACnB;;;;;;;;;;;;OAYG;IACH,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB"}
@@ -25,9 +25,31 @@ export type TabBarItem = {
25
25
  * type. This is the primary icon API — same convention as `Tabs`/`TabsTrigger`
26
26
  * and `FrostedIconButton`. The bar renders it TWICE (an inactive layer with the
27
27
  * active layer crossfading on top), injecting the layer's tint as the icon's
28
- * `fill` unless the element already sets one.
28
+ * `fill` unless the element already sets one. See {@link TabBarItem.activeIcon}
29
+ * for a set whose selected state is a different shape rather than a tint.
29
30
  */
30
31
  icon: ReactNode;
32
+ /**
33
+ * Optional second node rendered by the ACTIVE crossfade layer instead of
34
+ * `icon`; without it that layer renders `icon` again, which is the original
35
+ * behaviour.
36
+ *
37
+ * For icon sets that express selection by SHAPE rather than by tint — an
38
+ * outline glyph that becomes a filled one, with a different path — a tint
39
+ * crossfade cannot say what the set says, because both layers would draw the
40
+ * same shape in two colors. Supplying the filled variant here makes the
41
+ * existing crossfade swap NODES, so the outline dissolves into the fill.
42
+ *
43
+ * It is also the escape hatch for an icon that ignores the injected tint: the
44
+ * bar tints a glyph by cloning it with a `fill` prop (see `applyIconColor`),
45
+ * so an icon set that paints from a `color` prop instead never lights up, with
46
+ * no error. Pre-color both nodes yourself and the crossfade still works.
47
+ *
48
+ * On iOS an item carrying `sfSymbol` renders the symbol on both layers and
49
+ * ignores this — a symbol is tinted natively, so the tint crossfade is the
50
+ * right expression there.
51
+ */
52
+ activeIcon?: ReactNode;
31
53
  /**
32
54
  * Optional SF Symbol name, used INSTEAD of `icon` on iOS only. A pure
33
55
  * enhancement handled solely in `glyph.native.tsx`; the neutral and web
@@ -60,6 +82,20 @@ export type TabBarProps = ViewProps & {
60
82
  * or by keyboard/assistive-technology activation of a `TabBarButton`.
61
83
  */
62
84
  onIndexChange?: (index: number) => void;
85
+ /**
86
+ * Called with the index under the finger when a tab is pressed and HELD.
87
+ *
88
+ * This is the only way to reach a long press on the bar: its gesture detector
89
+ * consumes the touches (that is what makes scrubbing possible), so a button's
90
+ * own `onLongPress` never fires for a real finger. The gesture is added to the
91
+ * bar's gesture race only when this prop is supplied — holding still for half
92
+ * a second on a bar without it keeps behaving exactly as before, and can still
93
+ * start a scrub.
94
+ *
95
+ * Long-pressing does NOT move the highlight or select the tab; it is a
96
+ * secondary action (an account switcher on the profile tab, say).
97
+ */
98
+ onIndexLongPress?: (index: number) => void;
63
99
  /** Partial override of the theme resolved from Bloom's color tokens. */
64
100
  theme?: Partial<TabBarTheme>;
65
101
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,MAAM,UAAU,GAAG;IACvB,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;;;OASG;IACH,IAAI,EAAE,SAAS,CAAC;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG;IACpC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG;IAC/C,IAAI,EAAE,UAAU,CAAC;IACjB,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,MAAM,UAAU,GAAG;IACvB,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;;;;OAUG;IACH,IAAI,EAAE,SAAS,CAAC;IAChB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG;IACpC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG;IAC/C,IAAI,EAAE,UAAU,CAAC;IACjB,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * The vertical space the tab bar occupies above the bottom of the window, in
3
+ * px. Use it directly as the bottom padding (or bottom offset) of anything that
4
+ * would otherwise sit under the bar:
5
+ *
6
+ * ```tsx
7
+ * const reserved = useTabBarReservedSpace();
8
+ *
9
+ * <Animated.ScrollView contentContainerStyle={{ paddingBottom: reserved }} />
10
+ * <Fab style={{ position: 'absolute', right: 16, bottom: reserved + 12 }} />
11
+ * ```
12
+ *
13
+ * The value ALREADY INCLUDES the bottom safe-area inset — the bar folds the
14
+ * inset into its own bottom gap, so it is measured from the true window edge,
15
+ * not from the safe area. Never write `reserved + insets.bottom`: that counts
16
+ * the home indicator twice and strands a visible band of dead space under every
17
+ * list (a 76px bar reserving 110px on an iOS device or PWA). It is the whole
18
+ * number; nothing needs adding to it.
19
+ *
20
+ * It is the EXPANDED height, deliberately. The bar minimizes while scrolling
21
+ * down and re-expands on the way up, so reserving the minimized height would
22
+ * hide the end of a list the moment the user scrolled back to it.
23
+ */
24
+ export declare function useTabBarReservedSpace(): number;
25
+ //# sourceMappingURL=use-reserved-space.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-reserved-space.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/use-reserved-space.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAG/C"}
@@ -55,6 +55,16 @@ export declare function resolveFrostedPalette(colors: ThemeColors, isDark: boole
55
55
  * so any bare Bloom icon element gets the theme-aware color for free while an
56
56
  * explicitly-colored icon is never overridden. Non-element children (plain
57
57
  * text/strings) pass through unchanged.
58
+ *
59
+ * KNOWN LIMIT, deliberately not papered over: an icon component that paints from
60
+ * a `color` PROP rather than from `fill`/`style.color` ignores this entirely, and
61
+ * does so SILENTLY — nothing throws, the glyph renders, it simply never takes the
62
+ * tint. `color` is not injected alongside `fill` because the prop is not ours to
63
+ * claim: components use it for semantic variants (`color="danger"`), so writing an
64
+ * `rgb(…)` string into it can produce a worse failure than the one it fixes, and
65
+ * an icon already carrying its own `color` would be clobbered. Consumers with such
66
+ * a set pre-color the element themselves; the tab bar additionally offers
67
+ * `TabBarItem.activeIcon`, which carries selection by shape instead of by tint.
58
68
  */
59
69
  export declare function applyIconColor(node: ReactNode, color: string): ReactNode;
60
70
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/frosted-icon-button/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;AAGxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;CACd;AASD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,GAAG,eAAe,CASxF;AAiBD,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,cAAc,CAa1F;AAKD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAKxE"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/frosted-icon-button/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;AAGxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;CACd;AASD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,GAAG,eAAe,CASxF;AAiBD,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,cAAc,CAa1F;AAKD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAKxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabBarBase.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/TabBarBase.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAgBf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,EAeL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAe,MAAM,SAAS,CAAC;AAqY3E;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC1C,IAAI,EAAE,aAAa,CAAC,oBAAoB,CAAC;YAElB,WAAW;;EAGnC;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,gBAAgB,CAAC;YAC1C,iBAAiB;;EAG/C"}
1
+ {"version":3,"file":"TabBarBase.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/TabBarBase.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAgBf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,EAiBL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAe,MAAM,SAAS,CAAC;AAqa3E;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC1C,IAAI,EAAE,aAAa,CAAC,oBAAoB,CAAC;YAElB,WAAW;;EAGnC;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,gBAAgB,CAAC;YAC1C,iBAAiB;;EAG/C"}
@@ -1,5 +1,5 @@
1
1
  import type { TabBarGlyphProps } from './shared';
2
- export declare function TabBarGlyph({ item, tint, size }: TabBarGlyphProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function TabBarGlyph({ item, tint, size, active }: TabBarGlyphProps): import("react/jsx-runtime").JSX.Element;
3
3
  export declare namespace TabBarGlyph {
4
4
  var displayName: string;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"glyph.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/glyph.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,gBAAgB,2CASjE;yBATe,WAAW"}
1
+ {"version":3,"file":"glyph.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/glyph.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,gBAAgB,2CAazE;yBAbe,WAAW"}
@@ -1,5 +1,5 @@
1
1
  import type { TabBarGlyphProps } from './shared';
2
- export declare function TabBarGlyph({ item, tint, size }: TabBarGlyphProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function TabBarGlyph({ item, tint, size, active }: TabBarGlyphProps): import("react/jsx-runtime").JSX.Element;
3
3
  export declare namespace TabBarGlyph {
4
4
  var displayName: string;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"glyph.native.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/glyph.native.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,gBAAgB,2CAwBjE;yBAxBe,WAAW"}
1
+ {"version":3,"file":"glyph.native.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/glyph.native.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,gBAAgB,2CA2BzE;yBA3Be,WAAW"}