@oxyhq/bloom 0.51.1 → 0.52.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/lib/commonjs/bottom-sheet/BottomSheetBase.js +7 -4
  2. package/lib/commonjs/bottom-sheet/BottomSheetBase.js.map +1 -1
  3. package/lib/commonjs/connection-dots/ConnectionDots.web.js.map +1 -1
  4. package/lib/commonjs/design-tokens/shadows.js +4 -0
  5. package/lib/commonjs/design-tokens/shadows.js.map +1 -1
  6. package/lib/commonjs/dialog/Dialog.js.map +1 -1
  7. package/lib/commonjs/dialog/Dialog.web.js +26 -10
  8. package/lib/commonjs/dialog/Dialog.web.js.map +1 -1
  9. package/lib/commonjs/frosted-icon-button/shared.js +10 -0
  10. package/lib/commonjs/frosted-icon-button/shared.js.map +1 -1
  11. package/lib/commonjs/index.js +66 -66
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/index.web.js +90 -90
  14. package/lib/commonjs/index.web.js.map +1 -1
  15. package/lib/commonjs/loading/Loading.web.js.map +1 -1
  16. package/lib/commonjs/loading/SpinnerIcon.web.js +10 -6
  17. package/lib/commonjs/loading/SpinnerIcon.web.js.map +1 -1
  18. package/lib/commonjs/motion/index.js +1 -1
  19. package/lib/commonjs/motion/index.web.js +32 -0
  20. package/lib/commonjs/motion/index.web.js.map +1 -0
  21. package/lib/commonjs/motion/motion.js +10 -2
  22. package/lib/commonjs/motion/motion.js.map +1 -1
  23. package/lib/commonjs/motion/motion.web.js +137 -0
  24. package/lib/commonjs/motion/motion.web.js.map +1 -0
  25. package/lib/commonjs/progressive-blur/index.web.js.map +1 -1
  26. package/lib/commonjs/styles/web-view-style.js +33 -0
  27. package/lib/commonjs/styles/web-view-style.js.map +1 -1
  28. package/lib/commonjs/tab-bar/TabBarBase.js +46 -7
  29. package/lib/commonjs/tab-bar/TabBarBase.js.map +1 -1
  30. package/lib/commonjs/tab-bar/glyph.js +9 -4
  31. package/lib/commonjs/tab-bar/glyph.js.map +1 -1
  32. package/lib/commonjs/tab-bar/glyph.native.js +7 -2
  33. package/lib/commonjs/tab-bar/glyph.native.js.map +1 -1
  34. package/lib/commonjs/tab-bar/index.js +7 -0
  35. package/lib/commonjs/tab-bar/index.js.map +1 -1
  36. package/lib/commonjs/tab-bar/index.web.js +7 -0
  37. package/lib/commonjs/tab-bar/index.web.js.map +1 -1
  38. package/lib/commonjs/tab-bar/shared.js +32 -1
  39. package/lib/commonjs/tab-bar/shared.js.map +1 -1
  40. package/lib/commonjs/tab-bar/surface.web.js.map +1 -1
  41. package/lib/commonjs/tab-bar/use-footprint.js +56 -0
  42. package/lib/commonjs/tab-bar/use-footprint.js.map +1 -0
  43. package/lib/commonjs/toast/ToastRow.js +7 -3
  44. package/lib/commonjs/toast/ToastRow.js.map +1 -1
  45. package/lib/commonjs/toast/ToastSwipeHandler.js +29 -13
  46. package/lib/commonjs/toast/ToastSwipeHandler.js.map +1 -1
  47. package/lib/commonjs/toast/constants.js +29 -1
  48. package/lib/commonjs/toast/constants.js.map +1 -1
  49. package/lib/commonjs/toast/position-utils.js +9 -4
  50. package/lib/commonjs/toast/position-utils.js.map +1 -1
  51. package/lib/commonjs/zoomable-image-gallery/ZoomableImageGallery.js +12 -9
  52. package/lib/commonjs/zoomable-image-gallery/ZoomableImageGallery.js.map +1 -1
  53. package/lib/module/bottom-sheet/BottomSheetBase.js +7 -4
  54. package/lib/module/bottom-sheet/BottomSheetBase.js.map +1 -1
  55. package/lib/module/connection-dots/ConnectionDots.web.js.map +1 -1
  56. package/lib/module/design-tokens/shadows.js +4 -0
  57. package/lib/module/design-tokens/shadows.js.map +1 -1
  58. package/lib/module/dialog/Dialog.js.map +1 -1
  59. package/lib/module/dialog/Dialog.web.js +26 -10
  60. package/lib/module/dialog/Dialog.web.js.map +1 -1
  61. package/lib/module/frosted-icon-button/shared.js +10 -0
  62. package/lib/module/frosted-icon-button/shared.js.map +1 -1
  63. package/lib/module/index.js +1 -1
  64. package/lib/module/index.js.map +1 -1
  65. package/lib/module/index.web.js +1 -1
  66. package/lib/module/index.web.js.map +1 -1
  67. package/lib/module/loading/Loading.web.js.map +1 -1
  68. package/lib/module/loading/SpinnerIcon.web.js +10 -6
  69. package/lib/module/loading/SpinnerIcon.web.js.map +1 -1
  70. package/lib/module/motion/index.js +1 -1
  71. package/lib/module/motion/index.js.map +1 -1
  72. package/lib/module/motion/index.web.js +10 -0
  73. package/lib/module/motion/index.web.js.map +1 -0
  74. package/lib/module/motion/motion.js +10 -2
  75. package/lib/module/motion/motion.js.map +1 -1
  76. package/lib/module/motion/motion.web.js +133 -0
  77. package/lib/module/motion/motion.web.js.map +1 -0
  78. package/lib/module/progressive-blur/index.web.js.map +1 -1
  79. package/lib/module/styles/web-view-style.js +33 -0
  80. package/lib/module/styles/web-view-style.js.map +1 -1
  81. package/lib/module/tab-bar/TabBarBase.js +47 -8
  82. package/lib/module/tab-bar/TabBarBase.js.map +1 -1
  83. package/lib/module/tab-bar/glyph.js +9 -4
  84. package/lib/module/tab-bar/glyph.js.map +1 -1
  85. package/lib/module/tab-bar/glyph.native.js +7 -2
  86. package/lib/module/tab-bar/glyph.native.js.map +1 -1
  87. package/lib/module/tab-bar/index.js +1 -0
  88. package/lib/module/tab-bar/index.js.map +1 -1
  89. package/lib/module/tab-bar/index.web.js +1 -0
  90. package/lib/module/tab-bar/index.web.js.map +1 -1
  91. package/lib/module/tab-bar/shared.js +30 -0
  92. package/lib/module/tab-bar/shared.js.map +1 -1
  93. package/lib/module/tab-bar/surface.web.js.map +1 -1
  94. package/lib/module/tab-bar/use-footprint.js +52 -0
  95. package/lib/module/tab-bar/use-footprint.js.map +1 -0
  96. package/lib/module/toast/ToastRow.js +8 -4
  97. package/lib/module/toast/ToastRow.js.map +1 -1
  98. package/lib/module/toast/ToastSwipeHandler.js +29 -13
  99. package/lib/module/toast/ToastSwipeHandler.js.map +1 -1
  100. package/lib/module/toast/constants.js +28 -1
  101. package/lib/module/toast/constants.js.map +1 -1
  102. package/lib/module/toast/position-utils.js +9 -4
  103. package/lib/module/toast/position-utils.js.map +1 -1
  104. package/lib/module/zoomable-image-gallery/ZoomableImageGallery.js +12 -9
  105. package/lib/module/zoomable-image-gallery/ZoomableImageGallery.js.map +1 -1
  106. package/lib/typescript/commonjs/bottom-sheet/BottomSheetBase.d.ts.map +1 -1
  107. package/lib/typescript/commonjs/connection-dots/ConnectionDots.web.d.ts.map +1 -1
  108. package/lib/typescript/commonjs/design-tokens/shadows.d.ts +4 -0
  109. package/lib/typescript/commonjs/design-tokens/shadows.d.ts.map +1 -1
  110. package/lib/typescript/commonjs/dialog/Dialog.web.d.ts.map +1 -1
  111. package/lib/typescript/commonjs/frosted-icon-button/shared.d.ts +10 -0
  112. package/lib/typescript/commonjs/frosted-icon-button/shared.d.ts.map +1 -1
  113. package/lib/typescript/commonjs/index.web.d.ts +2 -2
  114. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/loading/Loading.web.d.ts.map +1 -1
  116. package/lib/typescript/commonjs/loading/SpinnerIcon.web.d.ts.map +1 -1
  117. package/lib/typescript/commonjs/motion/index.web.d.ts +9 -0
  118. package/lib/typescript/commonjs/motion/index.web.d.ts.map +1 -0
  119. package/lib/typescript/commonjs/motion/motion.d.ts +14 -6
  120. package/lib/typescript/commonjs/motion/motion.d.ts.map +1 -1
  121. package/lib/typescript/commonjs/motion/motion.web.d.ts +79 -0
  122. package/lib/typescript/commonjs/motion/motion.web.d.ts.map +1 -0
  123. package/lib/typescript/commonjs/progressive-blur/index.web.d.ts.map +1 -1
  124. package/lib/typescript/commonjs/styles/web-view-style.d.ts +49 -0
  125. package/lib/typescript/commonjs/styles/web-view-style.d.ts.map +1 -1
  126. package/lib/typescript/commonjs/tab-bar/TabBarBase.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/tab-bar/glyph.d.ts +1 -1
  128. package/lib/typescript/commonjs/tab-bar/glyph.d.ts.map +1 -1
  129. package/lib/typescript/commonjs/tab-bar/glyph.native.d.ts +1 -1
  130. package/lib/typescript/commonjs/tab-bar/glyph.native.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/tab-bar/index.d.ts +1 -0
  132. package/lib/typescript/commonjs/tab-bar/index.d.ts.map +1 -1
  133. package/lib/typescript/commonjs/tab-bar/index.web.d.ts +1 -0
  134. package/lib/typescript/commonjs/tab-bar/index.web.d.ts.map +1 -1
  135. package/lib/typescript/commonjs/tab-bar/shared.d.ts +25 -0
  136. package/lib/typescript/commonjs/tab-bar/shared.d.ts.map +1 -1
  137. package/lib/typescript/commonjs/tab-bar/surface.web.d.ts.map +1 -1
  138. package/lib/typescript/commonjs/tab-bar/types.d.ts +37 -1
  139. package/lib/typescript/commonjs/tab-bar/types.d.ts.map +1 -1
  140. package/lib/typescript/commonjs/tab-bar/use-footprint.d.ts +31 -0
  141. package/lib/typescript/commonjs/tab-bar/use-footprint.d.ts.map +1 -0
  142. package/lib/typescript/commonjs/toast/ToastRow.d.ts.map +1 -1
  143. package/lib/typescript/commonjs/toast/ToastSwipeHandler.d.ts +12 -6
  144. package/lib/typescript/commonjs/toast/ToastSwipeHandler.d.ts.map +1 -1
  145. package/lib/typescript/commonjs/toast/constants.d.ts +26 -8
  146. package/lib/typescript/commonjs/toast/constants.d.ts.map +1 -1
  147. package/lib/typescript/commonjs/toast/position-utils.d.ts +8 -3
  148. package/lib/typescript/commonjs/toast/position-utils.d.ts.map +1 -1
  149. package/lib/typescript/commonjs/zoomable-image-gallery/ZoomableImageGallery.d.ts.map +1 -1
  150. package/lib/typescript/module/bottom-sheet/BottomSheetBase.d.ts.map +1 -1
  151. package/lib/typescript/module/connection-dots/ConnectionDots.web.d.ts.map +1 -1
  152. package/lib/typescript/module/design-tokens/shadows.d.ts +4 -0
  153. package/lib/typescript/module/design-tokens/shadows.d.ts.map +1 -1
  154. package/lib/typescript/module/dialog/Dialog.web.d.ts.map +1 -1
  155. package/lib/typescript/module/frosted-icon-button/shared.d.ts +10 -0
  156. package/lib/typescript/module/frosted-icon-button/shared.d.ts.map +1 -1
  157. package/lib/typescript/module/index.web.d.ts +2 -2
  158. package/lib/typescript/module/index.web.d.ts.map +1 -1
  159. package/lib/typescript/module/loading/Loading.web.d.ts.map +1 -1
  160. package/lib/typescript/module/loading/SpinnerIcon.web.d.ts.map +1 -1
  161. package/lib/typescript/module/motion/index.web.d.ts +9 -0
  162. package/lib/typescript/module/motion/index.web.d.ts.map +1 -0
  163. package/lib/typescript/module/motion/motion.d.ts +14 -6
  164. package/lib/typescript/module/motion/motion.d.ts.map +1 -1
  165. package/lib/typescript/module/motion/motion.web.d.ts +79 -0
  166. package/lib/typescript/module/motion/motion.web.d.ts.map +1 -0
  167. package/lib/typescript/module/progressive-blur/index.web.d.ts.map +1 -1
  168. package/lib/typescript/module/styles/web-view-style.d.ts +49 -0
  169. package/lib/typescript/module/styles/web-view-style.d.ts.map +1 -1
  170. package/lib/typescript/module/tab-bar/TabBarBase.d.ts.map +1 -1
  171. package/lib/typescript/module/tab-bar/glyph.d.ts +1 -1
  172. package/lib/typescript/module/tab-bar/glyph.d.ts.map +1 -1
  173. package/lib/typescript/module/tab-bar/glyph.native.d.ts +1 -1
  174. package/lib/typescript/module/tab-bar/glyph.native.d.ts.map +1 -1
  175. package/lib/typescript/module/tab-bar/index.d.ts +1 -0
  176. package/lib/typescript/module/tab-bar/index.d.ts.map +1 -1
  177. package/lib/typescript/module/tab-bar/index.web.d.ts +1 -0
  178. package/lib/typescript/module/tab-bar/index.web.d.ts.map +1 -1
  179. package/lib/typescript/module/tab-bar/shared.d.ts +25 -0
  180. package/lib/typescript/module/tab-bar/shared.d.ts.map +1 -1
  181. package/lib/typescript/module/tab-bar/surface.web.d.ts.map +1 -1
  182. package/lib/typescript/module/tab-bar/types.d.ts +37 -1
  183. package/lib/typescript/module/tab-bar/types.d.ts.map +1 -1
  184. package/lib/typescript/module/tab-bar/use-footprint.d.ts +31 -0
  185. package/lib/typescript/module/tab-bar/use-footprint.d.ts.map +1 -0
  186. package/lib/typescript/module/toast/ToastRow.d.ts.map +1 -1
  187. package/lib/typescript/module/toast/ToastSwipeHandler.d.ts +12 -6
  188. package/lib/typescript/module/toast/ToastSwipeHandler.d.ts.map +1 -1
  189. package/lib/typescript/module/toast/constants.d.ts +26 -8
  190. package/lib/typescript/module/toast/constants.d.ts.map +1 -1
  191. package/lib/typescript/module/toast/position-utils.d.ts +8 -3
  192. package/lib/typescript/module/toast/position-utils.d.ts.map +1 -1
  193. package/lib/typescript/module/zoomable-image-gallery/ZoomableImageGallery.d.ts.map +1 -1
  194. package/package.json +6 -1
  195. package/src/__tests__/Motion.test.tsx +31 -3
  196. package/src/__tests__/MotionWebFork.test.ts +140 -0
  197. package/src/__tests__/TabBar.test.tsx +82 -2
  198. package/src/__tests__/TabBarAnimatedShorthand.test.ts +135 -0
  199. package/src/__tests__/TabBarFootprint.test.tsx +172 -0
  200. package/src/__tests__/TabBarLongPress.test.tsx +258 -0
  201. package/src/__tests__/TabBarWebFork.test.ts +1 -0
  202. package/src/__tests__/ToastHostWebFork.test.ts +6 -2
  203. package/src/__tests__/Toaster.test.tsx +62 -1
  204. package/src/__tests__/toast-position-utils.test.ts +23 -7
  205. package/src/__tests__/web-css-style.test.ts +139 -0
  206. package/src/bottom-sheet/BottomSheetBase.tsx +11 -7
  207. package/src/connection-dots/ConnectionDots.web.tsx +4 -3
  208. package/src/design-tokens/shadows.ts +5 -1
  209. package/src/dialog/Dialog.tsx +1 -1
  210. package/src/dialog/Dialog.web.tsx +41 -26
  211. package/src/frosted-icon-button/shared.ts +10 -0
  212. package/src/index.web.ts +2 -2
  213. package/src/loading/Loading.web.tsx +7 -5
  214. package/src/loading/SpinnerIcon.web.tsx +12 -9
  215. package/src/motion/index.web.ts +8 -0
  216. package/src/motion/motion.ts +14 -6
  217. package/src/motion/motion.web.ts +99 -0
  218. package/src/progressive-blur/index.web.tsx +4 -3
  219. package/src/styles/web-view-style.ts +50 -0
  220. package/src/tab-bar/TabBarBase.tsx +54 -15
  221. package/src/tab-bar/glyph.native.tsx +5 -2
  222. package/src/tab-bar/glyph.tsx +8 -4
  223. package/src/tab-bar/index.ts +1 -0
  224. package/src/tab-bar/index.web.tsx +1 -0
  225. package/src/tab-bar/shared.ts +38 -0
  226. package/src/tab-bar/surface.web.tsx +4 -3
  227. package/src/tab-bar/types.ts +37 -1
  228. package/src/tab-bar/use-footprint.ts +50 -0
  229. package/src/toast/ToastRow.tsx +8 -3
  230. package/src/toast/ToastSwipeHandler.tsx +30 -12
  231. package/src/toast/constants.ts +28 -0
  232. package/src/toast/position-utils.ts +10 -5
  233. package/src/zoomable-image-gallery/ZoomableImageGallery.tsx +9 -8
@@ -6,13 +6,21 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.ShrinkAndPop = exports.ScaleAndFadeOut = exports.ScaleAndFadeIn = void 0;
7
7
  var _reactNativeReanimated = require("react-native-reanimated");
8
8
  /**
9
- * Reanimated custom layout-animation presets. Each is a worklet builder
10
- * compatible with an `Animated.View`'s `entering` / `exiting` prop:
9
+ * Reanimated layout-animation presets. Each is a value you hand to an
10
+ * `Animated.View`'s `entering` / `exiting` prop:
11
11
  *
12
12
  * ```tsx
13
13
  * <Animated.View entering={ScaleAndFadeIn} exiting={ScaleAndFadeOut} />
14
14
  * ```
15
15
  *
16
+ * THIS IS THE NATIVE FILE. Custom worklet builders animate correctly on native
17
+ * and do NOTHING on web, where reanimated resolves an animation by preset name —
18
+ * `motion.web.ts` reimplements all three against the mechanisms web actually
19
+ * supports and documents why the two platforms cannot share one. The exported
20
+ * TYPE is deliberately reanimated's own "thing you can pass to entering/exiting"
21
+ * union rather than the concrete builder shape, so the two files present one
22
+ * contract and no consumer can depend on the mechanism.
23
+ *
16
24
  * Ported from Bluesky's custom-animation set. The `'worklet'` directive is
17
25
  * preserved through Bloom's build; the consuming app's Metro + reanimated Babel
18
26
  * plugin transforms it so the animation runs on the UI thread (same path the
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeReanimated","require","ScaleAndFadeIn","animations","opacity","withTiming","transform","scale","initialValues","exports","ScaleAndFadeOut","ShrinkAndPop","withDelay","duration","withSequence"],"sourceRoot":"../../../src","sources":["motion/motion.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO,MAAMC,cAAqC,GAAGA,CAAA,KAAM;EACzD,SAAS;;EACT,OAAO;IACLC,UAAU,EAAE;MACVC,OAAO,EAAE,IAAAC,iCAAU,EAAC,CAAC,CAAC;MACtBC,SAAS,EAAE,CAAC;QAAEC,KAAK,EAAE,IAAAF,iCAAU,EAAC,CAAC;MAAE,CAAC;IACtC,CAAC;IACDG,aAAa,EAAE;MACbJ,OAAO,EAAE,CAAC;MACVE,SAAS,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAI,CAAC;IAC5B;EACF,CAAC;AACH,CAAC;;AAED;AAAAE,OAAA,CAAAP,cAAA,GAAAA,cAAA;AACO,MAAMQ,eAAsC,GAAGA,CAAA,KAAM;EAC1D,SAAS;;EACT,OAAO;IACLP,UAAU,EAAE;MACVC,OAAO,EAAE,IAAAC,iCAAU,EAAC,CAAC,CAAC;MACtBC,SAAS,EAAE,CAAC;QAAEC,KAAK,EAAE,IAAAF,iCAAU,EAAC,GAAG;MAAE,CAAC;IACxC,CAAC;IACDG,aAAa,EAAE;MACbJ,OAAO,EAAE,CAAC;MACVE,SAAS,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC;IAC1B;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AAHAE,OAAA,CAAAC,eAAA,GAAAA,eAAA;AAIO,MAAMC,YAAmC,GAAGA,CAAA,KAAM;EACvD,SAAS;;EACT,OAAO;IACLR,UAAU,EAAE;MACVC,OAAO,EAAE,IAAAQ,gCAAS,EAAC,GAAG,EAAE,IAAAP,iCAAU,EAAC,CAAC,EAAE;QAAEQ,QAAQ,EAAE;MAAI,CAAC,CAAC,CAAC;MACzDP,SAAS,EAAE,CACT;QACEC,KAAK,EAAE,IAAAO,mCAAY,EACjB,IAAAT,iCAAU,EAAC,GAAG,EAAE;UAAEQ,QAAQ,EAAE;QAAG,CAAC,CAAC,EACjC,IAAAR,iCAAU,EAAC,GAAG,EAAE;UAAEQ,QAAQ,EAAE;QAAI,CAAC,CACnC;MACF,CAAC;IAEL,CAAC;IACDL,aAAa,EAAE;MACbJ,OAAO,EAAE,CAAC;MACVE,SAAS,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC;IAC1B;EACF,CAAC;AACH,CAAC;AAACE,OAAA,CAAAE,YAAA,GAAAA,YAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeReanimated","require","ScaleAndFadeIn","animations","opacity","withTiming","transform","scale","initialValues","exports","ScaleAndFadeOut","ShrinkAndPop","withDelay","duration","withSequence"],"sourceRoot":"../../../src","sources":["motion/motion.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO,MAAMC,cAAqC,GAAGA,CAAA,KAAM;EACzD,SAAS;;EACT,OAAO;IACLC,UAAU,EAAE;MACVC,OAAO,EAAE,IAAAC,iCAAU,EAAC,CAAC,CAAC;MACtBC,SAAS,EAAE,CAAC;QAAEC,KAAK,EAAE,IAAAF,iCAAU,EAAC,CAAC;MAAE,CAAC;IACtC,CAAC;IACDG,aAAa,EAAE;MACbJ,OAAO,EAAE,CAAC;MACVE,SAAS,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAI,CAAC;IAC5B;EACF,CAAC;AACH,CAAC;;AAED;AAAAE,OAAA,CAAAP,cAAA,GAAAA,cAAA;AACO,MAAMQ,eAAsC,GAAGA,CAAA,KAAM;EAC1D,SAAS;;EACT,OAAO;IACLP,UAAU,EAAE;MACVC,OAAO,EAAE,IAAAC,iCAAU,EAAC,CAAC,CAAC;MACtBC,SAAS,EAAE,CAAC;QAAEC,KAAK,EAAE,IAAAF,iCAAU,EAAC,GAAG;MAAE,CAAC;IACxC,CAAC;IACDG,aAAa,EAAE;MACbJ,OAAO,EAAE,CAAC;MACVE,SAAS,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC;IAC1B;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AAHAE,OAAA,CAAAC,eAAA,GAAAA,eAAA;AAIO,MAAMC,YAAmC,GAAGA,CAAA,KAAM;EACvD,SAAS;;EACT,OAAO;IACLR,UAAU,EAAE;MACVC,OAAO,EAAE,IAAAQ,gCAAS,EAAC,GAAG,EAAE,IAAAP,iCAAU,EAAC,CAAC,EAAE;QAAEQ,QAAQ,EAAE;MAAI,CAAC,CAAC,CAAC;MACzDP,SAAS,EAAE,CACT;QACEC,KAAK,EAAE,IAAAO,mCAAY,EACjB,IAAAT,iCAAU,EAAC,GAAG,EAAE;UAAEQ,QAAQ,EAAE;QAAG,CAAC,CAAC,EACjC,IAAAR,iCAAU,EAAC,GAAG,EAAE;UAAEQ,QAAQ,EAAE;QAAI,CAAC,CACnC;MACF,CAAC;IAEL,CAAC;IACDL,aAAa,EAAE;MACbJ,OAAO,EAAE,CAAC;MACVE,SAAS,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC;IAC1B;EACF,CAAC;AACH,CAAC;AAACE,OAAA,CAAAE,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ShrinkAndPop = exports.ScaleAndFadeOut = exports.ScaleAndFadeIn = void 0;
7
+ var _reactNativeReanimated = require("react-native-reanimated");
8
+ /**
9
+ * WEB FORK of `motion.ts`. Same three names, same contract ("a value you hand to
10
+ * an `Animated.View`'s `entering` / `exiting`"), different mechanism — because on
11
+ * web the native mechanism does nothing at all and the obvious replacement is
12
+ * worse than nothing.
13
+ *
14
+ * WHY THE DEFAULT FILE CANNOT SERVE WEB. `motion.ts` exports custom
15
+ * `EntryExitAnimationFunction` worklet builders. Reanimated's web layout-animation
16
+ * manager resolves an animation by NAME: `tryGetAnimationConfig` reads
17
+ * `config.presetName` off the function, a custom builder has none, and
18
+ * `checkUndefinedAnimationFail` then bails to `makeElementVisible(element, 0)`.
19
+ * Measured in Chrome 5.x/reanimated 4.5.0: the card mounts at `transform: none`,
20
+ * `opacity: 1` and stays there for every sampled frame of both directions, with
21
+ * one `[Reanimated] Couldn't load entering/exiting animation` warning per element.
22
+ * Native is unaffected — it runs the builder directly, with no name lookup.
23
+ *
24
+ * WHY THE ENTER AND THE EXITS USE DIFFERENT MECHANISMS. Rebuilding all three as
25
+ * `Keyframe`s is the obvious fix and is only HALF right, because reanimated's two
26
+ * web directions differ in one decisive argument:
27
+ *
28
+ * - `exiting` -> `handleExitingAnimation` calls `setElementAnimation` on a
29
+ * throwaway clone with `shouldSavePosition` FALSE. The custom keyframe's
30
+ * `duration x 5` cleanup only tears that clone down, which is what it is for.
31
+ * A `Keyframe` here is safe AND exact: it compiles to a real CSS `@keyframes`
32
+ * rule, so the full scale + opacity shape survives.
33
+ * - `entering` -> `chooseAction` calls `setElementAnimation` on the REAL element
34
+ * with `shouldSavePosition` TRUE, and since a custom keyframe's generated
35
+ * `REA-ENTERING-n` name is absent from reanimated's built-in `Animations`
36
+ * map, `scheduleAnimationCleanup` fires
37
+ * `setElementPosition` at `duration x 5` — `position: absolute`, a frozen
38
+ * `top`/`left`/`width`/`height` snapshot, `transform` cleared. The animation
39
+ * plays and the element is then pinned, silently, one and a half seconds
40
+ * later. That is failure mode (C) in `~/Oxy/AGENTS.md` and it is strictly
41
+ * worse than the inert animation it would replace.
42
+ *
43
+ * So the enter uses a PREDEFINED builder, whose `presetName` IS in `Animations`
44
+ * and therefore skips `scheduleAnimationCleanup` entirely. Predefined builders
45
+ * cannot combine a fade with a scale, so the web enter keeps the fade and drops
46
+ * the 0.7 -> 1 growth. `ScreenTransition` in this same folder already made that
47
+ * trade for the same reason ("on web the slide is intentionally dropped").
48
+ *
49
+ * The imperative shared-value drive (failure mode (A)'s remedy, and what
50
+ * `toast/ToastRow.tsx` uses for its own enter) is the third option and is not
51
+ * available here: these are exported VALUES, not components, so there is no
52
+ * render to hang a `useSharedValue` off — and it could not express an exit at
53
+ * all, since keeping an unmounting element alive is exactly what `exiting` is for.
54
+ *
55
+ * WEB EASING IS LINEAR. `Keyframe` has no `.easing()` modifier, and a per-stop
56
+ * easing only survives `convertAnimationObjectToKeyframes` when it resolves to one
57
+ * of reanimated's seven `WebEasings` names (all of them ease-IN curves), while
58
+ * `.easing(Easing.bezier(...))` needs the `__closure` the worklets babel plugin
59
+ * adds — absent in every Oxy web build — and degrades to linear WITH a warning.
60
+ * `ShrinkAndPop` therefore carries an extra midpoint stop so its piecewise-linear
61
+ * web curve tracks the native `withTiming` segments closely rather than cutting
62
+ * the corner.
63
+ */
64
+
65
+ /** `withTiming`'s default, which is what the native builders animate over. */
66
+ const DEFAULT_DURATION = 300;
67
+ /** `ShrinkAndPop`: 75ms shrink + 150ms overshoot, with the fade ending with it. */
68
+ const POP_DURATION = 250;
69
+
70
+ /**
71
+ * Entering: fade in.
72
+ *
73
+ * The scale is dropped on web — see the header. `FadeIn`'s own default duration
74
+ * is already 300ms, matching the native builder, and the bare class is exported
75
+ * rather than a `.duration()` instance so nothing shares a mutable builder.
76
+ */
77
+ const ScaleAndFadeIn = exports.ScaleAndFadeIn = _reactNativeReanimated.FadeIn;
78
+
79
+ /** Exiting counterpart to {@link ScaleAndFadeIn}: fade out while shrinking to 70%. */
80
+ const ScaleAndFadeOut = exports.ScaleAndFadeOut = new _reactNativeReanimated.Keyframe({
81
+ from: {
82
+ opacity: 1,
83
+ transform: [{
84
+ scale: 1
85
+ }]
86
+ },
87
+ to: {
88
+ opacity: 0,
89
+ transform: [{
90
+ scale: 0.7
91
+ }]
92
+ }
93
+ }).duration(DEFAULT_DURATION);
94
+
95
+ /**
96
+ * Exiting with a brief "pop": the scale dips to 70%, overshoots to 110%, and the
97
+ * element fades out.
98
+ *
99
+ * Stops are the native timeline sampled at its own breakpoints, so every property
100
+ * is declared at every stop and nothing depends on CSS's cross-stop interpolation:
101
+ * scale reaches 0.7 at 75ms (30%) and 1.1 at 225ms (90%); opacity holds until
102
+ * 125ms (50%) and then falls to 0 by 250ms. The 50% stop's 0.8333 scale and the
103
+ * 90% stop's 0.2 opacity are the native values at those instants.
104
+ */
105
+ const ShrinkAndPop = exports.ShrinkAndPop = new _reactNativeReanimated.Keyframe({
106
+ 0: {
107
+ opacity: 1,
108
+ transform: [{
109
+ scale: 1
110
+ }]
111
+ },
112
+ 30: {
113
+ opacity: 1,
114
+ transform: [{
115
+ scale: 0.7
116
+ }]
117
+ },
118
+ 50: {
119
+ opacity: 1,
120
+ transform: [{
121
+ scale: 0.8333
122
+ }]
123
+ },
124
+ 90: {
125
+ opacity: 0.2,
126
+ transform: [{
127
+ scale: 1.1
128
+ }]
129
+ },
130
+ 100: {
131
+ opacity: 0,
132
+ transform: [{
133
+ scale: 1.1
134
+ }]
135
+ }
136
+ }).duration(POP_DURATION);
137
+ //# sourceMappingURL=motion.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNativeReanimated","require","DEFAULT_DURATION","POP_DURATION","ScaleAndFadeIn","exports","FadeIn","ScaleAndFadeOut","Keyframe","from","opacity","transform","scale","to","duration","ShrinkAndPop"],"sourceRoot":"../../../src","sources":["motion/motion.web.ts"],"mappings":";;;;;;AAwDA,IAAAA,sBAAA,GAAAC,OAAA;AAxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AACA,MAAMC,gBAAgB,GAAG,GAAG;AAC5B;AACA,MAAMC,YAAY,GAAG,GAAG;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,cAAqC,GAAAC,OAAA,CAAAD,cAAA,GAAGE,6BAAM;;AAE3D;AACO,MAAMC,eAAsC,GAAAF,OAAA,CAAAE,eAAA,GAAG,IAAIC,+BAAQ,CAAC;EACjEC,IAAI,EAAE;IAAEC,OAAO,EAAE,CAAC;IAAEC,SAAS,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAE,CAAC;EAAE,CAAC;EAC/CC,EAAE,EAAE;IAAEH,OAAO,EAAE,CAAC;IAAEC,SAAS,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAI,CAAC;EAAE;AAChD,CAAC,CAAC,CAACE,QAAQ,CAACZ,gBAAgB,CAAC;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMa,YAAmC,GAAAV,OAAA,CAAAU,YAAA,GAAG,IAAIP,+BAAQ,CAAC;EAC9D,CAAC,EAAE;IAAEE,OAAO,EAAE,CAAC;IAAEC,SAAS,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAE,CAAC;EAAE,CAAC;EAC5C,EAAE,EAAE;IAAEF,OAAO,EAAE,CAAC;IAAEC,SAAS,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAI,CAAC;EAAE,CAAC;EAC/C,EAAE,EAAE;IAAEF,OAAO,EAAE,CAAC;IAAEC,SAAS,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAO,CAAC;EAAE,CAAC;EAClD,EAAE,EAAE;IAAEF,OAAO,EAAE,GAAG;IAAEC,SAAS,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAI,CAAC;EAAE,CAAC;EACjD,GAAG,EAAE;IAAEF,OAAO,EAAE,CAAC;IAAEC,SAAS,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAI,CAAC;EAAE;AACjD,CAAC,CAAC,CAACE,QAAQ,CAACX,YAAY,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_useTheme","_shared","_jsxRuntime","ProgressiveBlur","style","intensity","direction","rest","colors","useTheme","filter","WEB_BLUR_PER_INTENSITY","mask","buildMaskGradient","webStyle","pointerEvents","backdropFilter","WebkitBackdropFilter","maskImage","WebkitMaskImage","backgroundImage","buildTailGradient","background","jsx","View","displayName"],"sourceRoot":"../../../src","sources":["progressive-blur/index.web.tsx"],"mappings":";;;;;;AAIA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAIkB,IAAAG,WAAA,GAAAH,OAAA;AAXlB;AACA;AACA;AACA;;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,eAAeA,CAAC;EAC9BC,KAAK;EACLC,SAAS,GAAG,CAAC;EACbC,SAAS,GAAG,KAAK;EACjB,GAAGC;AACiB,CAAC,EAAE;EACvB,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EAE7B,MAAMC,MAAM,GAAG,QAAQL,SAAS,GAAGM,8BAAsB,KAAK;EAC9D,MAAMC,IAAI,GAAG,IAAAC,yBAAiB,EAACP,SAAS,CAAC;EACzC;EACA;EACA;EACA,MAAMQ,QAAQ,GAAG;IACfC,aAAa,EAAE,MAAM;IACrBC,cAAc,EAAEN,MAAM;IACtBO,oBAAoB,EAAEP,MAAM;IAC5BQ,SAAS,EAAEN,IAAI;IACfO,eAAe,EAAEP,IAAI;IACrBQ,eAAe,EAAE,IAAAC,yBAAiB,EAACb,MAAM,CAACc,UAAU,EAAEhB,SAAS;EACjE,CAAc;EAEd,oBAAO,IAAAJ,WAAA,CAAAqB,GAAA,EAACzB,YAAA,CAAA0B,IAAI;IAAA,GAAKjB,IAAI;IAAEH,KAAK,EAAE,CAACU,QAAQ,EAAEV,KAAK;EAAE,CAAE,CAAC;AACrD;AAEAD,eAAe,CAACsB,WAAW,GAAG,iBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_useTheme","_shared","_jsxRuntime","ProgressiveBlur","style","intensity","direction","rest","colors","useTheme","filter","WEB_BLUR_PER_INTENSITY","mask","buildMaskGradient","webStyle","pointerEvents","backdropFilter","WebkitBackdropFilter","maskImage","WebkitMaskImage","backgroundImage","buildTailGradient","background","jsx","View","displayName"],"sourceRoot":"../../../src","sources":["progressive-blur/index.web.tsx"],"mappings":";;;;;;AAIA,IAAAA,YAAA,GAAAC,OAAA;AAGA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAIkB,IAAAG,WAAA,GAAAH,OAAA;AAZlB;AACA;AACA;AACA;;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,eAAeA,CAAC;EAC9BC,KAAK;EACLC,SAAS,GAAG,CAAC;EACbC,SAAS,GAAG,KAAK;EACjB,GAAGC;AACiB,CAAC,EAAE;EACvB,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EAE7B,MAAMC,MAAM,GAAG,QAAQL,SAAS,GAAGM,8BAAsB,KAAK;EAC9D,MAAMC,IAAI,GAAG,IAAAC,yBAAiB,EAACP,SAAS,CAAC;EACzC;EACA;EACA;EACA,MAAMQ,QAAqB,GAAG;IAC5BC,aAAa,EAAE,MAAM;IACrBC,cAAc,EAAEN,MAAM;IACtBO,oBAAoB,EAAEP,MAAM;IAC5BQ,SAAS,EAAEN,IAAI;IACfO,eAAe,EAAEP,IAAI;IACrBQ,eAAe,EAAE,IAAAC,yBAAiB,EAACb,MAAM,CAACc,UAAU,EAAEhB,SAAS;EACjE,CAAC;EAED,oBAAO,IAAAJ,WAAA,CAAAqB,GAAA,EAACzB,YAAA,CAAA0B,IAAI;IAAA,GAAKjB,IAAI;IAAEH,KAAK,EAAE,CAACU,QAAQ,EAAEV,KAAK;EAAE,CAAE,CAAC;AACrD;AAEAD,eAAe,CAACsB,WAAW,GAAG,iBAAiB","ignoreList":[]}
@@ -23,4 +23,37 @@ exports.WEB_POSITION_FIXED = void 0;
23
23
  * where Yoga silently ignores it.
24
24
  */
25
25
  const WEB_POSITION_FIXED = exports.WEB_POSITION_FIXED = 'fixed';
26
+
27
+ /**
28
+ * A `ViewStyle` that may ALSO carry CSS react-native-web forwards straight to the
29
+ * DOM node but React Native does not model at all.
30
+ *
31
+ * This is the OTHER shape of the same RN/RNW type gap `WEB_POSITION_FIXED`
32
+ * covers, and it needs a different escape hatch because the two are structurally
33
+ * different: `position` is a key RN DOES model, just with a narrower value union,
34
+ * so a value-level cast is enough and it can still be written inside an ordinary
35
+ * style object. The properties below have no key on `ViewStyle` at all, so the
36
+ * whole OBJECT has to cross the boundary.
37
+ *
38
+ * ANNOTATE, DO NOT CAST. Every `.web` fork used to spell this `{ … } as ViewStyle`
39
+ * inline. That is not a widening, it is SILENCING: `as` only requires the two
40
+ * types to be COMPARABLE, so `{ animatoin: '…' } as ViewStyle` compiles happily
41
+ * and the typo ships as a style key react-native-web drops on the floor.
42
+ * Annotating with this interface restores excess-property checking — a key that
43
+ * is neither a real RN style nor a listed web-only property is a compile error —
44
+ * and, unlike a widening helper function, it erases completely, so the emitted
45
+ * JavaScript is byte-identical to the cast it replaces.
46
+ *
47
+ * ```ts
48
+ * const glass: WebCssStyle = { backdropFilter: 'blur(24px)' };
49
+ * // …then pass it anywhere a `ViewStyle` is expected.
50
+ * ```
51
+ *
52
+ * Only add a key here once react-native-web is confirmed to pass it through and
53
+ * RN has no equivalent. Several near-misses do NOT belong: RN 0.83 models
54
+ * `cursor`, `boxShadow`, `filter` and `pointerEvents` on `ViewStyle` directly, so
55
+ * those need no widening at all (`userSelect` is the trap — RN declares it on
56
+ * `TextStyle` only). Prefixed spellings sit alongside the standard ones because
57
+ * Safari still needs them for `backdrop-filter` and `mask-image`.
58
+ */
26
59
  //# sourceMappingURL=web-view-style.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["WEB_POSITION_FIXED","exports"],"sourceRoot":"../../../src","sources":["styles/web-view-style.ts"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,OAAgC","ignoreList":[]}
1
+ {"version":3,"names":["WEB_POSITION_FIXED","exports"],"sourceRoot":"../../../src","sources":["styles/web-view-style.ts"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,OAAgC;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","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
- }, [windowWidth, tabCount, selectIndex, tick, isDragging, lastTicked, slideIndex, minimized, progress]);
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
@@ -157,10 +177,24 @@ function TabBarBody({
157
177
  // `ZoomableImageGallery`. Do NOT strip these.
158
178
  const barStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
159
179
  const height = (0, _reactNativeReanimated.interpolate)(progress.value, [0, 1], [_shared.EXPANDED_HEIGHT, _shared.MINIMIZED_HEIGHT], _reactNativeReanimated.Extrapolation.CLAMP);
180
+ // Revolut-style: the pill shrinks in both dimensions.
181
+ //
182
+ // Written as the two long-form margins, NEVER as `marginHorizontal`.
183
+ // Reanimated's web path hands a mapper's result to react-native-web's
184
+ // `createReactDOMStyle`, whose `STYLE_SHORT_FORM_EXPANSIONS` map covers
185
+ // `marginInline` but NOT React Native's `marginHorizontal` (verified absent
186
+ // from the whole file in RNW 0.21.2). An unexpanded shorthand is written
187
+ // straight onto the DOM node as `style.marginHorizontal`, which is not a CSS
188
+ // property, so the browser drops it silently: the bar keeps its full width
189
+ // while `highlightStyle` still subtracts `MINIMIZED_INSET` from `barWidth`,
190
+ // leaving the highlight narrower than the tab it sits under. Static styles
191
+ // are unaffected — they take RNW's own StyleSheet path, which does handle
192
+ // the shorthand — so this only bites inside a mapper.
193
+ const inset = (0, _reactNativeReanimated.interpolate)(progress.value, [0, 1], [0, _shared.MINIMIZED_INSET], _reactNativeReanimated.Extrapolation.CLAMP);
160
194
  return {
161
195
  height,
162
- // Revolut-style: the pill shrinks in both dimensions.
163
- marginHorizontal: (0, _reactNativeReanimated.interpolate)(progress.value, [0, 1], [0, _shared.MINIMIZED_INSET], _reactNativeReanimated.Extrapolation.CLAMP)
196
+ marginLeft: inset,
197
+ marginRight: inset
164
198
  };
165
199
  }, [progress]);
166
200
 
@@ -192,7 +226,10 @@ function TabBarBody({
192
226
  }]
193
227
  };
194
228
  }, [progress, slideIndex, windowWidth, tabCount]);
195
- const bottomOffset = Math.max(insets.bottom - 16, 12);
229
+
230
+ // Shared with `useTabBarFootprint`, so a consumer accounting for the bar in
231
+ // its own layout can never drift from where the bar actually sits.
232
+ const bottomOffset = (0, _shared.tabBarBottomGap)(insets.bottom);
196
233
  const barContext = (0, _react.useMemo)(() => ({
197
234
  slideIndex,
198
235
  isDragging,
@@ -322,13 +359,15 @@ function TabBarButtonBody({
322
359
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Glyph, {
323
360
  item: item,
324
361
  tint: theme.inactiveTint,
325
- size: _shared.ICON_SIZE
362
+ size: _shared.ICON_SIZE,
363
+ active: false
326
364
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
327
365
  style: [_reactNative.StyleSheet.absoluteFill, styles.glyphLayer, activeGlyphStyle],
328
366
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Glyph, {
329
367
  item: item,
330
368
  tint: theme.activeTint,
331
- size: _shared.ICON_SIZE
369
+ size: _shared.ICON_SIZE,
370
+ active: true
332
371
  })
333
372
  })]
334
373
  }), /*#__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":";;;;;;;AAeA,IAAAA,MAAA,GAAAC,OAAA;AASA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,0BAAA,GAAAF,OAAA;AACA,IAAAG,sBAAA,GAAAC,uBAAA,CAAAJ,OAAA;AAUA,IAAAK,2BAAA,GAAAL,OAAA;AAEA,IAAAM,WAAA,GAAAN,OAAA;AAEA,IAAAO,gBAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AAiBkB,IAAAS,WAAA,GAAAT,OAAA;AAAA,SAAAI,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AA1DlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA+CA;AACA;AACA;AACA;AACA;;AAaA,MAAMkB,UAAU,gBAAG,IAAAC,oBAAa,EAAyB,IAAI,CAAC;AAO9D;AACA;AACA;AACA;AACA,SAASC,UAAUA,CAAC;EAClBC,OAAO;EACPC,IAAI;EACJC,QAAQ;EACRC,WAAW;EACXC,aAAa;EACbC,KAAK,EAAEC,cAAc;EACrBC,OAAO,GAAG,IAAI;EACdC,KAAK;EACL,GAAGC;AACY,CAAC,EAAE;EAClB,MAAMC,MAAM,GAAG,IAAAC,6CAAiB,EAAC,CAAC;EAClC,MAAM;IAAEC,KAAK,EAAEC;EAAY,CAAC,GAAG,IAAAC,gCAAmB,EAAC,CAAC;EACpD,MAAMC,SAAS,GAAG,IAAAC,iCAAgB,EAAC,CAAC;EACpC,MAAMC,QAAQ,GAAGF,SAAS,CAACE,QAAQ;EACnC,MAAMC,UAAU,GAAG,IAAAC,qCAAc,EAAC,CAAC,CAAC;EACpC,MAAMC,UAAU,GAAG,IAAAD,qCAAc,EAAC,KAAK,CAAC;EACxC,MAAME,UAAU,GAAG,IAAAF,qCAAc,EAAC,CAAC,CAAC,CAAC;EACrC,MAAMG,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAACC,eAAQ,CAACC,KAAK,CAACxB,QAAQ,CAAC,EAAE,CAAC,CAAC;EACtD,MAAMG,KAAK,GAAG,IAAAsB,sBAAc,EAACrB,cAAc,CAAC;EAC5C,MAAMsB,MAAM,GAAG,IAAAC,sBAAU,EAAC,CAAC;;EAE3B;EACA;EACA;EACA;EACA,MAAMC,IAAI,GAAG,IAAAC,kBAAW,EAAC,MAAM;IAC7B,IAAIxB,OAAO,EAAEqB,MAAM,CAAC,OAAO,CAAC;EAC9B,CAAC,EAAE,CAACrB,OAAO,EAAEqB,MAAM,CAAC,CAAC;;EAErB;EACA;EACA,MAAMI,WAAW,GAAG,IAAAD,kBAAW,EAAEE,KAAa,IAAK7B,aAAa,GAAG6B,KAAK,CAAC,EAAE,CAAC7B,aAAa,CAAC,CAAC;;EAE3F;EACA;EACA;EACA;EACA;EACA;EACA,IAAA8B,gBAAS,EAAC,MAAM;IACd,IAAI/B,WAAW,KAAKgC,SAAS,EAAE;IAC/B;IACA,IAAIf,UAAU,CAACgB,KAAK,EAAE;IACtBlB,UAAU,CAACkB,KAAK,GAAG,IAAAC,iCAAU,EAAClC,WAAW,EAAEmC,oBAAY,CAAC;EAC1D,CAAC,EAAE,CAACnC,WAAW,EAAEe,UAAU,EAAEE,UAAU,CAAC,CAAC;;EAEzC;EACA;EACA;EACA;EACA;EACA,MAAMmB,OAAO,GAAG,IAAAC,cAAO,EAAC,MAAM;IAC5B,MAAMC,QAAQ,GAAGA,CAACC,CAAS,EAAEC,cAAsB,KAAK;MACtD,SAAS;;MACT,MAAMC,SAAS,GAAG,IAAAC,kCAAW,EAC3BF,cAAc,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAAC,CAAC,EAAEG,uBAAe,CAAC,EACpBC,oCAAa,CAACC,KAChB,CAAC;MACD,MAAMC,QAAQ,GAAGpC,WAAW,GAAGqC,kBAAU,GAAG,CAAC,GAAGN,SAAS,GAAG,CAAC;MAC7D,MAAMO,SAAS,GAAG,CAACF,QAAQ,GAAGG,iBAAS,GAAG,CAAC,IAAI9B,QAAQ;MACvD,MAAM+B,GAAG,GAAG,CAACX,CAAC,GAAGU,iBAAS,IAAID,SAAS,GAAG,GAAG;MAC7C,OAAO5B,IAAI,CAAC+B,GAAG,CAAC/B,IAAI,CAACC,GAAG,CAAC6B,GAAG,EAAE,CAAC,CAAC,EAAE/B,QAAQ,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,MAAMiC,GAAG,GAAGC,kCAAO,CAACC,GAAG,CAAC,CAAC,CACtBC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACtBC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CACtBC,OAAO,CAAC,MAAM;MACbxC,UAAU,CAACgB,KAAK,GAAG,IAAI;MACvBf,UAAU,CAACe,KAAK,GAAGb,IAAI,CAACsC,KAAK,CAAC3C,UAAU,CAACkB,KAAK,CAAC;MAC/C;MACA,IAAA0B,6BAAY,EAAC/C,SAAS,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC,CACDgD,QAAQ,CAAEC,KAAK,IAAK;MACnB,MAAM/B,KAAK,GAAGQ,QAAQ,CAACuB,KAAK,CAACtB,CAAC,EAAEzB,QAAQ,CAACmB,KAAK,CAAC;MAC/ClB,UAAU,CAACkB,KAAK,GAAGH,KAAK;MAExB,MAAMgC,OAAO,GAAG1C,IAAI,CAACsC,KAAK,CAAC5B,KAAK,CAAC;MACjC,IAAIgC,OAAO,KAAK5C,UAAU,CAACe,KAAK,EAAE;QAChCf,UAAU,CAACe,KAAK,GAAG6B,OAAO;QAC1B,IAAAC,8BAAO,EAACpC,IAAI,CAAC,CAAC,CAAC;MACjB;IACF,CAAC,CAAC,CACDqC,UAAU,CAAC,MAAM;MAChB;MACA;MACA,IAAI,CAAC/C,UAAU,CAACgB,KAAK,EAAE;QACrB;MACF;MACA,MAAM6B,OAAO,GAAG1C,IAAI,CAACsC,KAAK,CAAC3C,UAAU,CAACkB,KAAK,CAAC;MAC5ClB,UAAU,CAACkB,KAAK,GAAG,IAAAC,iCAAU,EAAC4B,OAAO,EAAE3B,oBAAY,CAAC;MACpD,IAAA4B,8BAAO,EAAClC,WAAW,CAAC,CAACiC,OAAO,CAAC;MAC7B7C,UAAU,CAACgB,KAAK,GAAG,KAAK;IAC1B,CAAC,CAAC;IAEJ,MAAMgC,GAAG,GAAGZ,kCAAO,CAACa,GAAG,CAAC;IACtB;IACA;IAAA,CACCC,WAAW,CAAC,EAAE,CAAC,CACfC,WAAW,CAAC,GAAG,CAAC,CAChBC,KAAK,CAAC,CAACR,KAAK,EAAES,OAAO,KAAK;MACzB,IAAI,CAACA,OAAO,EAAE;QACZ;MACF;MACA,MAAMxC,KAAK,GAAGV,IAAI,CAACsC,KAAK,CAACpB,QAAQ,CAACuB,KAAK,CAACtB,CAAC,EAAEzB,QAAQ,CAACmB,KAAK,CAAC,CAAC;MAC3DlB,UAAU,CAACkB,KAAK,GAAG,IAAAC,iCAAU,EAACJ,KAAK,EAAEK,oBAAY,CAAC;MAClD,IAAAwB,6BAAY,EAAC/C,SAAS,EAAE,CAAC,CAAC;MAC1B,IAAAmD,8BAAO,EAAClC,WAAW,CAAC,CAACC,KAAK,CAAC;IAC7B,CAAC,CAAC;IAEJ,OAAOuB,kCAAO,CAACkB,IAAI,CAACnB,GAAG,EAAEa,GAAG,CAAC;EAC/B,CAAC,EAAE,CACDvD,WAAW,EACXS,QAAQ,EACRU,WAAW,EACXF,IAAI,EACJV,UAAU,EACVC,UAAU,EACVH,UAAU,EACVH,SAAS,EACTE,QAAQ,CACT,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM0D,QAAQ,GAAG,IAAAC,uCAAgB,EAAC,MAAM;IACtC,MAAMC,MAAM,GAAG,IAAAhC,kCAAW,EACxB5B,QAAQ,CAACmB,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAAC0C,uBAAe,EAAEC,wBAAgB,CAAC,EACnChC,oCAAa,CAACC,KAChB,CAAC;IACD,OAAO;MACL6B,MAAM;MACN;MACAG,gBAAgB,EAAE,IAAAnC,kCAAW,EAC3B5B,QAAQ,CAACmB,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAAC,CAAC,EAAEU,uBAAe,CAAC,EACpBC,oCAAa,CAACC,KAChB;IACF,CAAC;EACH,CAAC,EAAE,CAAC/B,QAAQ,CAAC,CAAC;;EAEd;EACA;EACA;EACA,MAAMgE,UAAU,GAAG,IAAAL,uCAAgB,EAAC,MAAM;IACxC,MAAMC,MAAM,GAAG,IAAAhC,kCAAW,EACxB5B,QAAQ,CAACmB,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAAC0C,uBAAe,EAAEC,wBAAgB,CAAC,EACnChC,oCAAa,CAACC,KAChB,CAAC;IACD,OAAO;MAAEkC,YAAY,EAAEL,MAAM,GAAG;IAAE,CAAC;EACrC,CAAC,EAAE,CAAC5D,QAAQ,CAAC,CAAC;;EAEd;EACA;EACA,MAAMkE,cAAc,GAAG,IAAAP,uCAAgB,EAAC,MAAM;IAC5C,MAAMQ,SAAS,GAAG,IAAAvC,kCAAW,EAC3B5B,QAAQ,CAACmB,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAAC0C,uBAAe,EAAEC,wBAAgB,CAAC,EACnChC,oCAAa,CAACC,KAChB,CAAC;IACD,MAAM6B,MAAM,GAAG,IAAAhC,kCAAW,EACxB5B,QAAQ,CAACmB,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAACiD,0BAAkB,EAAEC,2BAAmB,CAAC,EACzCvC,oCAAa,CAACC,KAChB,CAAC;IACD,MAAMJ,SAAS,GAAG,IAAAC,kCAAW,EAC3B5B,QAAQ,CAACmB,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAAC,CAAC,EAAEU,uBAAe,CAAC,EACpBC,oCAAa,CAACC,KAChB,CAAC;IACD,MAAMC,QAAQ,GAAGpC,WAAW,GAAGqC,kBAAU,GAAG,CAAC,GAAGN,SAAS,GAAG,CAAC;IAC7D,MAAMO,SAAS,GAAG,CAACF,QAAQ,GAAGG,iBAAS,GAAG,CAAC,IAAI9B,QAAQ;IACvD,OAAO;MACLuD,MAAM;MACNjE,KAAK,EAAEuC,SAAS;MAChB+B,YAAY,EAAEL,MAAM,GAAG,CAAC;MACxBU,GAAG,EAAE,CAACH,SAAS,GAAGP,MAAM,IAAI,CAAC;MAC7BW,SAAS,EAAE,CAAC;QAAEC,UAAU,EAAErC,iBAAS,GAAGD,SAAS,GAAGjC,UAAU,CAACkB;MAAM,CAAC;IACtE,CAAC;EACH,CAAC,EAAE,CAACnB,QAAQ,EAAEC,UAAU,EAAEL,WAAW,EAAES,QAAQ,CAAC,CAAC;EAEjD,MAAMoE,YAAY,GAAGnE,IAAI,CAACC,GAAG,CAACd,MAAM,CAACiF,MAAM,GAAG,EAAE,EAAE,EAAE,CAAC;EACrD,MAAMC,UAAU,GAAG,IAAApD,cAAO,EACxB,OAAO;IAAEtB,UAAU;IAAEE,UAAU;IAAEf,KAAK;IAAEF,WAAW;IAAE6B;EAAY,CAAC,CAAC,EACnE,CAACd,UAAU,EAAEE,UAAU,EAAEf,KAAK,EAAEF,WAAW,EAAE6B,WAAW,CAC1D,CAAC;EAED,oBACE,IAAAvD,WAAA,CAAAoH,IAAA,EAAC5H,YAAA,CAAA6H,IAAI;IAAA,GAAKrF,SAAS;IAAED,KAAK,EAAE,CAACuF,MAAM,CAACC,IAAI,EAAExF,KAAK,CAAE;IAAAN,QAAA,gBAE/C,IAAAzB,WAAA,CAAAwH,GAAA,EAAChG,IAAI;MACHiG,SAAS,EAAC,QAAQ;MAClB1F,KAAK,EAAE;QACL2F,QAAQ,EAAE,UAAU;QACpBC,IAAI,EAAE,CAAC;QACPC,KAAK,EAAE,CAAC;QACRV,MAAM,EAAE,CAAC;QACTd,MAAM,EAAEa,YAAY,GAAGZ,uBAAe,GAAGwB;MAC3C;IAAE,CACH,CAAC,eACF,IAAA7H,WAAA,CAAAwH,GAAA,EAAChI,YAAA,CAAA6H,IAAI;MAACtF,KAAK,EAAE,CAACuF,MAAM,CAACQ,OAAO,EAAE;QAAEC,YAAY,EAAEd;MAAa,CAAC,CAAE;MAAAxF,QAAA,eAC5D,IAAAzB,WAAA,CAAAwH,GAAA,EAAC/H,0BAAA,CAAAuI,eAAe;QAAClE,OAAO,EAAEA,OAAQ;QAAArC,QAAA,eAChC,IAAAzB,WAAA,CAAAoH,IAAA,EAAC1H,sBAAA,CAAAiB,OAAQ,CAAC0G,IAAI;UAACtF,KAAK,EAAEmE,QAAS;UAAAzE,QAAA,gBAC7B,IAAAzB,WAAA,CAAAwH,GAAA,EAACjG,OAAO;YAACK,KAAK,EAAEA,KAAM;YAACG,KAAK,EAAEyE;UAAW,CAAE,CAAC,eAC5C,IAAAxG,WAAA,CAAAwH,GAAA,EAAC9H,sBAAA,CAAAiB,OAAQ,CAAC0G,IAAI;YACZtF,KAAK,EAAE,CAACuF,MAAM,CAACW,SAAS,EAAE;cAAEC,eAAe,EAAEtG,KAAK,CAACqG;YAAU,CAAC,EAAEvB,cAAc;UAAE,CACjF,CAAC,eACF,IAAA1G,WAAA,CAAAwH,GAAA,EAAChI,YAAA,CAAA6H,IAAI;YAACc,iBAAiB,EAAC,SAAS;YAACpG,KAAK,EAAEuF,MAAM,CAACc,OAAQ;YAAA3G,QAAA,eACtD,IAAAzB,WAAA,CAAAwH,GAAA,EAACpG,UAAU,CAACiH,QAAQ;cAAC1E,KAAK,EAAEwD,UAAW;cAAA1F,QAAA,EAAEA;YAAQ,CAAsB;UAAC,CACpE,CAAC;QAAA,CACM;MAAC,CACD;IAAC,CACd,CAAC;EAAA,CACH,CAAC;AAEX;AAMA;AACA,SAAS6G,gBAAgBA,CAAC;EACxBC,KAAK;EACLC,IAAI;EACJhF,KAAK;EACLiF,SAAS;EACTC,OAAO;EACP3G,KAAK;EACL,GAAG4G;AACkB,CAAC,EAAE;EACxB,MAAMrG,SAAS,GAAG,IAAAC,iCAAgB,EAAC,CAAC;EACpC,MAAMC,QAAQ,GAAGF,SAAS,CAACE,QAAQ;EACnC,MAAMoG,GAAG,GAAG,IAAAC,iBAAU,EAACzH,UAAU,CAAC;EAClC;EACA,MAAM0H,eAAe,GAAG,IAAA5F,sBAAc,EAAC,CAAC;EACxC,MAAMtB,KAAK,GAAGgH,GAAG,EAAEhH,KAAK,IAAIkH,eAAe;EAC3C,MAAMrG,UAAU,GAAGmG,GAAG,EAAEnG,UAAU;EAClC;EACA;EACA,MAAMsG,OAAO,GAAGN,SAAS,IAAKG,GAAG,EAAElH,WAAW,KAAK8B,KAAM;;EAEzD;EACA;EACA;EACA;EACA;EACA,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIgF,SAAS,KAAK/E,SAAS,IAAI,CAAC+E,SAAS,IAAI,CAACG,GAAG,EAAE;IACnD,IAAIA,GAAG,CAACjG,UAAU,CAACgB,KAAK,EAAE;IAC1BiF,GAAG,CAACnG,UAAU,CAACkB,KAAK,GAAG,IAAAC,iCAAU,EAACJ,KAAK,EAAEK,oBAAY,CAAC;EACxD,CAAC,EAAE,CAAC4E,SAAS,EAAEjF,KAAK,EAAEoF,GAAG,CAAC,CAAC;;EAE3B;EACA;EACA;EACA;EACA,MAAMI,gBAAgB,GAAG,IAAA7C,uCAAgB,EACvC,OAAO;IACL8C,OAAO,EAAExG,UAAU,GAAG,CAAC,GAAGK,IAAI,CAAC+B,GAAG,CAAC/B,IAAI,CAACoG,GAAG,CAACzG,UAAU,CAACkB,KAAK,GAAGH,KAAK,CAAC,EAAE,CAAC,CAAC,GAAGuF,OAAO,GAAG,CAAC,GAAG;EAC5F,CAAC,CAAC,EACF,CAACtG,UAAU,EAAEe,KAAK,EAAEuF,OAAO,CAC7B,CAAC;EAED,MAAMI,UAAU,GAAG,IAAAhD,uCAAgB,EACjC,OAAO;IACL8C,OAAO,EAAE,IAAA7E,kCAAW,EAAC5B,QAAQ,CAACmB,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEW,oCAAa,CAACC,KAAK,CAAC;IAC3E6E,KAAK,EAAE3G,UAAU,GACb,IAAA4G,uCAAgB,EACdvG,IAAI,CAAC+B,GAAG,CAAC/B,IAAI,CAACoG,GAAG,CAACzG,UAAU,CAACkB,KAAK,GAAGH,KAAK,CAAC,EAAE,CAAC,CAAC,EAC/C,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAAC5B,KAAK,CAAC0H,UAAU,EAAE1H,KAAK,CAAC2H,YAAY,CACvC,CAAC,GACDR,OAAO,GACLnH,KAAK,CAAC0H,UAAU,GAChB1H,KAAK,CAAC2H;EACd,CAAC,CAAC,EACF,CAAC/G,QAAQ,EAAEC,UAAU,EAAEe,KAAK,EAAEuF,OAAO,EAAEnH,KAAK,CAC9C,CAAC;;EAED;EACA;EACA;EACA,MAAM4H,QAAQ,GAAG,IAAArD,uCAAgB,EAC/B,OAAO;IACLC,MAAM,EAAE,IAAAhC,kCAAW,EACjB5B,QAAQ,CAACmB,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAACiD,0BAAkB,EAAEC,2BAAmB,CAAC,EACzCvC,oCAAa,CAACC,KAChB;EACF,CAAC,CAAC,EACF,CAAC/B,QAAQ,CACX,CAAC;EAED,oBACE,IAAAxC,WAAA,CAAAwH,GAAA,EAAChI,YAAA,CAAAiK;EACC;EACA;EAAA;IACAtB,iBAAiB,EAAC,KAAK;IACvBuB,kBAAkB,EAAE;MAAEC,QAAQ,EAAEZ;IAAQ,CAAE;IAC1Ca,kBAAkB,EAAEpB,IAAI,CAACqB,KAAM;IAAA,GAC3BlB,cAAc;IAClBD,OAAO,EAAGnD,KAAK,IAAK;MAClB;MACA;MACA,IAAIqD,GAAG,EAAEA,GAAG,CAACnG,UAAU,CAACkB,KAAK,GAAG,IAAAC,iCAAU,EAACJ,KAAK,EAAEK,oBAAY,CAAC;MAC/D,IAAAwB,6BAAY,EAAC/C,SAAS,EAAE,CAAC,CAAC;MAC1B;MACA;MACA;MACA,IAAImG,SAAS,KAAK/E,SAAS,EAAEkF,GAAG,EAAErF,WAAW,CAACC,KAAK,CAAC;MACpDkF,OAAO,GAAGnD,KAAK,CAAC;IAClB;IACA;IACA;IACA;IAAA;IACAxD,KAAK,EACH,OAAOA,KAAK,KAAK,UAAU,GACtB+H,KAAK,IAAK,CAACxC,MAAM,CAACyC,MAAM,EAAEhI,KAAK,CAAC+H,KAAK,CAAC,CAAC,GACxC,CAACxC,MAAM,CAACyC,MAAM,EAAEhI,KAAK,CAC1B;IAAAN,QAAA,eAED,IAAAzB,WAAA,CAAAoH,IAAA,EAAC1H,sBAAA,CAAAiB,OAAQ,CAAC0G,IAAI;MAACtF,KAAK,EAAE,CAACuF,MAAM,CAAC0C,OAAO,EAAER,QAAQ,CAAE;MAAA/H,QAAA,gBAE/C,IAAAzB,WAAA,CAAAoH,IAAA,EAAC5H,YAAA,CAAA6H,IAAI;QAAA5F,QAAA,gBACH,IAAAzB,WAAA,CAAAwH,GAAA,EAACe,KAAK;UAACC,IAAI,EAAEA,IAAK;UAACyB,IAAI,EAAErI,KAAK,CAAC2H,YAAa;UAACW,IAAI,EAAEC;QAAU,CAAE,CAAC,eAChE,IAAAnK,WAAA,CAAAwH,GAAA,EAAC9H,sBAAA,CAAAiB,OAAQ,CAAC0G,IAAI;UAACtF,KAAK,EAAE,CAACqI,uBAAU,CAACC,YAAY,EAAE/C,MAAM,CAACgD,UAAU,EAAEtB,gBAAgB,CAAE;UAAAvH,QAAA,eACnF,IAAAzB,WAAA,CAAAwH,GAAA,EAACe,KAAK;YAACC,IAAI,EAAEA,IAAK;YAACyB,IAAI,EAAErI,KAAK,CAAC0H,UAAW;YAACY,IAAI,EAAEC;UAAU,CAAE;QAAC,CACjD,CAAC;MAAA,CACZ,CAAC,eAEP,IAAAnK,WAAA,CAAAwH,GAAA,EAAC9H,sBAAA,CAAAiB,OAAQ,CAAC4J,IAAI;QAACC,aAAa,EAAE,CAAE;QAACzI,KAAK,EAAE,CAACuF,MAAM,CAACuC,KAAK,EAAEV,UAAU,CAAE;QAAA1H,QAAA,EAChE+G,IAAI,CAACqB;MAAK,CACE,CAAC;IAAA,CACH;EAAC,CACP,CAAC;AAEhB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASY,YAAYA,CAC1BlJ,OAA0C,EAC1CC,IAAyC,EACzC;EACA,MAAMkJ,MAAM,GAAIC,KAAkB,iBAAK,IAAA3K,WAAA,CAAAwH,GAAA,EAAClG,UAAU;IAAA,GAAKqJ,KAAK;IAAEpJ,OAAO,EAAEA,OAAQ;IAACC,IAAI,EAAEA;EAAK,CAAE,CAAC;EAC9FkJ,MAAM,CAACE,WAAW,GAAG,QAAQ;EAC7B,OAAOF,MAAM;AACf;;AAEA;AACO,SAASG,kBAAkBA,CAACtC,KAAsC,EAAE;EACzE,MAAMuC,YAAY,GAAIH,KAAwB,iBAAK,IAAA3K,WAAA,CAAAwH,GAAA,EAACc,gBAAgB;IAAA,GAAKqC,KAAK;IAAEpC,KAAK,EAAEA;EAAM,CAAE,CAAC;EAChGuC,YAAY,CAACF,WAAW,GAAG,cAAc;EACzC,OAAOE,YAAY;AACrB;AAEA,MAAMxD,MAAM,GAAG8C,uBAAU,CAACW,MAAM,CAAC;EAC/BxD,IAAI,EAAE;IACJG,QAAQ,EAAE,UAAU;IACpBC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRV,MAAM,EAAE,CAAC;IACT;IACA;IACA8D,aAAa,EAAE;EACjB,CAAC;EACDlD,OAAO,EAAE;IACPvB,gBAAgB,EAAE9B,kBAAU;IAC5BuG,aAAa,EAAE;EACjB,CAAC;EACD/C,SAAS,EAAE;IACTP,QAAQ,EAAE,UAAU;IACpBC,IAAI,EAAE,CAAC;IACPsD,WAAW,EAAE;EACf,CAAC;EACD7C,OAAO,EAAE;IACP8C,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,iBAAiB,EAAE1G;EACrB,CAAC;EACDoF,MAAM,EAAE;IACNmB,IAAI,EAAE,CAAC;IACPE,UAAU,EAAE,QAAQ;IACpBE,cAAc,EAAE;EAClB,CAAC;EACDtB,OAAO,EAAE;IACPuB,SAAS,EAAE,SAAS;IACpBH,UAAU,EAAE,QAAQ;IACpBI,UAAU,EAAEC,kBAAU;IACtBC,QAAQ,EAAE;EACZ,CAAC;EACDpB,UAAU,EAAE;IACVc,UAAU,EAAE,QAAQ;IACpBE,cAAc,EAAE;EAClB,CAAC;EACDzB,KAAK,EAAE;IACL8B,QAAQ,EAAEC,uBAAe;IACzBC,UAAU,EAAE,KAAK;IACjBC,SAAS,EAAEC;EACb;AACF,CAAC,CAAC","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","inset","marginLeft","marginRight","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","marginHorizontal","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;AAAuB,CAAC,EAAE;EAClE;EACA;EACA;EACA,oBACE,IAAAJ,WAAA,CAAAK,GAAA,EAACR,YAAA,CAAAS,IAAI;IAACC,KAAK,EAAE;MAAEC,MAAM,EAAEJ,IAAI;MAAEK,UAAU,EAAE,QAAQ;MAAEC,cAAc,EAAE;IAAS,CAAE;IAAAC,QAAA,EAC3E,IAAAC,sBAAc,EAACV,IAAI,CAACW,IAAI,EAAEV,IAAI;EAAC,CAC5B,CAAC;AAEX;AAEAF,WAAW,CAACa,WAAW,GAAG,aAAa","ignoreList":[]}
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;AAAuB,CAAC,EAAE;EAClE,IAAIF,IAAI,CAACG,QAAQ,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IAC1C;IACA;IACA;IACA;IACA;IACA;IACA;IACA,oBACE,IAAAP,WAAA,CAAAQ,GAAA,EAACZ,YAAA,CAAAa,UAAU;MACTC,IAAI,EAAER,IAAI,CAACG,QAAqB;MAChCM,SAAS,EAAER,IAAK;MAChBC,IAAI,EAAEA,IAAK;MACXQ,MAAM,EAAC;IAAU,CAClB,CAAC;EAEN;EAEA,oBACE,IAAAZ,WAAA,CAAAQ,GAAA,EAACV,YAAA,CAAAe,IAAI;IAACC,KAAK,EAAE;MAAEC,MAAM,EAAEX,IAAI;MAAEY,UAAU,EAAE,QAAQ;MAAEC,cAAc,EAAE;IAAS,CAAE;IAAAC,QAAA,EAC3E,IAAAC,sBAAc,EAACjB,IAAI,CAACkB,IAAI,EAAEjB,IAAI;EAAC,CAC5B,CAAC;AAEX;AAEAF,WAAW,CAACoB,WAAW,GAAG,aAAa","ignoreList":[]}
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":[]}
@@ -34,6 +34,12 @@ Object.defineProperty(exports, "useMinimizeState", {
34
34
  return _minimizeContext.useMinimizeState;
35
35
  }
36
36
  });
37
+ Object.defineProperty(exports, "useTabBarFootprint", {
38
+ enumerable: true,
39
+ get: function () {
40
+ return _useFootprint.useTabBarFootprint;
41
+ }
42
+ });
37
43
  Object.defineProperty(exports, "useTabBarMinimized", {
38
44
  enumerable: true,
39
45
  get: function () {
@@ -45,6 +51,7 @@ 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 _useFootprint = require("./use-footprint.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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AAtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMO,MAAMK,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":[]}
1
+ {"version":3,"names":["_progressiveBlur","require","_TabBarBase","_glyph","_surface","_minimizeContext","_useFootprint","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,aAAA,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":[]}
@@ -34,6 +34,12 @@ Object.defineProperty(exports, "useMinimizeState", {
34
34
  return _minimizeContext.useMinimizeState;
35
35
  }
36
36
  });
37
+ Object.defineProperty(exports, "useTabBarFootprint", {
38
+ enumerable: true,
39
+ get: function () {
40
+ return _useFootprint.useTabBarFootprint;
41
+ }
42
+ });
37
43
  Object.defineProperty(exports, "useTabBarMinimized", {
38
44
  enumerable: true,
39
45
  get: function () {
@@ -45,6 +51,7 @@ 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 _useFootprint = require("./use-footprint.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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AAxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMO,MAAMK,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":[]}
1
+ {"version":3,"names":["_indexWeb","require","_TabBarBase","_glyph","_surfaceWeb","_minimizeContext","_useFootprint","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,aAAA,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 accounting for
71
+ * the bar in its own layout must go through `useTabBarFootprint` (which derives
72
+ * its 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
  // ---------------------------------------------------------------------------