@oxyhq/bloom 0.50.2 → 0.51.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 (536) hide show
  1. package/NOTICE +89 -0
  2. package/README.md +12 -7
  3. package/lib/commonjs/avatar-group/AvatarGroup.web.js +2 -1
  4. package/lib/commonjs/avatar-group/AvatarGroup.web.js.map +1 -1
  5. package/lib/commonjs/bottom-sheet/index.web.js +2 -1
  6. package/lib/commonjs/bottom-sheet/index.web.js.map +1 -1
  7. package/lib/commonjs/context-menu/index.web.js +3 -2
  8. package/lib/commonjs/context-menu/index.web.js.map +1 -1
  9. package/lib/commonjs/dialog/Dialog.web.js +4 -3
  10. package/lib/commonjs/dialog/Dialog.web.js.map +1 -1
  11. package/lib/commonjs/index.js +90 -83
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/index.web.js +116 -109
  14. package/lib/commonjs/index.web.js.map +1 -1
  15. package/lib/commonjs/menu/index.web.js +2 -1
  16. package/lib/commonjs/menu/index.web.js.map +1 -1
  17. package/lib/commonjs/popover/index.web.js +3 -2
  18. package/lib/commonjs/popover/index.web.js.map +1 -1
  19. package/lib/commonjs/portal/index.js +4 -1
  20. package/lib/commonjs/portal/index.js.map +1 -1
  21. package/lib/commonjs/progressive-blur/index.js +79 -0
  22. package/lib/commonjs/progressive-blur/index.js.map +1 -0
  23. package/lib/commonjs/progressive-blur/index.web.js +67 -0
  24. package/lib/commonjs/progressive-blur/index.web.js.map +1 -0
  25. package/lib/commonjs/progressive-blur/shared.js +66 -0
  26. package/lib/commonjs/progressive-blur/shared.js.map +1 -0
  27. package/lib/commonjs/progressive-blur/types.js +6 -0
  28. package/lib/commonjs/progressive-blur/types.js.map +1 -0
  29. package/lib/commonjs/select/index.web.js +2 -1
  30. package/lib/commonjs/select/index.web.js.map +1 -1
  31. package/lib/commonjs/styles/web-view-style.js +26 -0
  32. package/lib/commonjs/styles/web-view-style.js.map +1 -0
  33. package/lib/commonjs/tab-bar/TabBarBase.js +415 -0
  34. package/lib/commonjs/tab-bar/TabBarBase.js.map +1 -0
  35. package/lib/commonjs/tab-bar/expo-router/RouterTabBar.js +83 -0
  36. package/lib/commonjs/tab-bar/expo-router/RouterTabBar.js.map +1 -0
  37. package/lib/commonjs/tab-bar/expo-router/fading-tab-screen.js +119 -0
  38. package/lib/commonjs/tab-bar/expo-router/fading-tab-screen.js.map +1 -0
  39. package/lib/commonjs/tab-bar/expo-router/index.js +26 -0
  40. package/lib/commonjs/tab-bar/expo-router/index.js.map +1 -0
  41. package/lib/commonjs/tab-bar/glyph.js +43 -0
  42. package/lib/commonjs/tab-bar/glyph.js.map +1 -0
  43. package/lib/commonjs/tab-bar/glyph.native.js +55 -0
  44. package/lib/commonjs/tab-bar/glyph.native.js.map +1 -0
  45. package/lib/commonjs/tab-bar/index.js +65 -0
  46. package/lib/commonjs/tab-bar/index.js.map +1 -0
  47. package/lib/commonjs/tab-bar/index.web.js +67 -0
  48. package/lib/commonjs/tab-bar/index.web.js.map +1 -0
  49. package/lib/commonjs/tab-bar/minimize-context.js +127 -0
  50. package/lib/commonjs/tab-bar/minimize-context.js.map +1 -0
  51. package/lib/commonjs/tab-bar/shared.js +139 -0
  52. package/lib/commonjs/tab-bar/shared.js.map +1 -0
  53. package/lib/commonjs/tab-bar/surface.js +50 -0
  54. package/lib/commonjs/tab-bar/surface.js.map +1 -0
  55. package/lib/commonjs/tab-bar/surface.native.js +56 -0
  56. package/lib/commonjs/tab-bar/surface.native.js.map +1 -0
  57. package/lib/commonjs/tab-bar/surface.web.js +59 -0
  58. package/lib/commonjs/tab-bar/surface.web.js.map +1 -0
  59. package/lib/commonjs/tab-bar/types.js +6 -0
  60. package/lib/commonjs/tab-bar/types.js.map +1 -0
  61. package/lib/commonjs/toast/Positioner.js +117 -0
  62. package/lib/commonjs/toast/Positioner.js.map +1 -0
  63. package/lib/commonjs/toast/ToastContent.js +301 -0
  64. package/lib/commonjs/toast/ToastContent.js.map +1 -0
  65. package/lib/commonjs/toast/ToastHost.js +69 -0
  66. package/lib/commonjs/toast/ToastHost.js.map +1 -0
  67. package/lib/commonjs/toast/ToastHost.native.js +44 -0
  68. package/lib/commonjs/toast/ToastHost.native.js.map +1 -0
  69. package/lib/commonjs/toast/ToastIcon.js +57 -0
  70. package/lib/commonjs/toast/ToastIcon.js.map +1 -0
  71. package/lib/commonjs/toast/ToastRow.js +411 -0
  72. package/lib/commonjs/toast/ToastRow.js.map +1 -0
  73. package/lib/commonjs/toast/ToastSwipeHandler.js +189 -0
  74. package/lib/commonjs/toast/ToastSwipeHandler.js.map +1 -0
  75. package/lib/commonjs/toast/Toaster.js +205 -0
  76. package/lib/commonjs/toast/Toaster.js.map +1 -0
  77. package/lib/commonjs/toast/animations.js +274 -0
  78. package/lib/commonjs/toast/animations.js.map +1 -0
  79. package/lib/commonjs/toast/constants.js +56 -0
  80. package/lib/commonjs/toast/constants.js.map +1 -0
  81. package/lib/commonjs/toast/context.js +42 -0
  82. package/lib/commonjs/toast/context.js.map +1 -0
  83. package/lib/commonjs/toast/index.js +32 -126
  84. package/lib/commonjs/toast/index.js.map +1 -1
  85. package/lib/commonjs/toast/position-utils.js +115 -0
  86. package/lib/commonjs/toast/position-utils.js.map +1 -0
  87. package/lib/commonjs/toast/positioner-utils.js +141 -0
  88. package/lib/commonjs/toast/positioner-utils.js.map +1 -0
  89. package/lib/commonjs/toast/toast-comparator.js +28 -0
  90. package/lib/commonjs/toast/toast-comparator.js.map +1 -0
  91. package/lib/commonjs/toast/toast-fns.js +90 -0
  92. package/lib/commonjs/toast/toast-fns.js.map +1 -0
  93. package/lib/commonjs/toast/toast-store.js +352 -0
  94. package/lib/commonjs/toast/toast-store.js.map +1 -0
  95. package/lib/commonjs/toast/toast-timers.js +110 -0
  96. package/lib/commonjs/toast/toast-timers.js.map +1 -0
  97. package/lib/commonjs/toast/types.js +42 -0
  98. package/lib/commonjs/toast/types.js.map +1 -1
  99. package/lib/commonjs/toast/use-animated-target.js +57 -0
  100. package/lib/commonjs/toast/use-animated-target.js.map +1 -0
  101. package/lib/commonjs/toast/use-app-state.js +76 -0
  102. package/lib/commonjs/toast/use-app-state.js.map +1 -0
  103. package/lib/commonjs/toast/use-toast-colors.js +114 -0
  104. package/lib/commonjs/toast/use-toast-colors.js.map +1 -0
  105. package/lib/commonjs/toast/use-toast-position.js +40 -0
  106. package/lib/commonjs/toast/use-toast-position.js.map +1 -0
  107. package/lib/commonjs/tooltip/index.web.js +2 -1
  108. package/lib/commonjs/tooltip/index.web.js.map +1 -1
  109. package/lib/commonjs/zoomable-image-gallery/ZoomableImageGallery.js +20 -8
  110. package/lib/commonjs/zoomable-image-gallery/ZoomableImageGallery.js.map +1 -1
  111. package/lib/module/avatar-group/AvatarGroup.web.js +2 -1
  112. package/lib/module/avatar-group/AvatarGroup.web.js.map +1 -1
  113. package/lib/module/bottom-sheet/index.web.js +2 -1
  114. package/lib/module/bottom-sheet/index.web.js.map +1 -1
  115. package/lib/module/context-menu/index.web.js +3 -2
  116. package/lib/module/context-menu/index.web.js.map +1 -1
  117. package/lib/module/dialog/Dialog.web.js +4 -3
  118. package/lib/module/dialog/Dialog.web.js.map +1 -1
  119. package/lib/module/index.js +3 -2
  120. package/lib/module/index.js.map +1 -1
  121. package/lib/module/index.web.js +3 -2
  122. package/lib/module/index.web.js.map +1 -1
  123. package/lib/module/menu/index.web.js +2 -1
  124. package/lib/module/menu/index.web.js.map +1 -1
  125. package/lib/module/popover/index.web.js +3 -2
  126. package/lib/module/popover/index.web.js.map +1 -1
  127. package/lib/module/portal/index.js +4 -1
  128. package/lib/module/portal/index.js.map +1 -1
  129. package/lib/module/progressive-blur/index.js +74 -0
  130. package/lib/module/progressive-blur/index.js.map +1 -0
  131. package/lib/module/progressive-blur/index.web.js +62 -0
  132. package/lib/module/progressive-blur/index.web.js.map +1 -0
  133. package/lib/module/progressive-blur/shared.js +60 -0
  134. package/lib/module/progressive-blur/shared.js.map +1 -0
  135. package/lib/module/progressive-blur/types.js +4 -0
  136. package/lib/module/progressive-blur/types.js.map +1 -0
  137. package/lib/module/select/index.web.js +2 -1
  138. package/lib/module/select/index.web.js.map +1 -1
  139. package/lib/module/styles/web-view-style.js +22 -0
  140. package/lib/module/styles/web-view-style.js.map +1 -0
  141. package/lib/module/tab-bar/TabBarBase.js +408 -0
  142. package/lib/module/tab-bar/TabBarBase.js.map +1 -0
  143. package/lib/module/tab-bar/expo-router/RouterTabBar.js +78 -0
  144. package/lib/module/tab-bar/expo-router/RouterTabBar.js.map +1 -0
  145. package/lib/module/tab-bar/expo-router/fading-tab-screen.js +113 -0
  146. package/lib/module/tab-bar/expo-router/fading-tab-screen.js.map +1 -0
  147. package/lib/module/tab-bar/expo-router/index.js +15 -0
  148. package/lib/module/tab-bar/expo-router/index.js.map +1 -0
  149. package/lib/module/tab-bar/glyph.js +38 -0
  150. package/lib/module/tab-bar/glyph.js.map +1 -0
  151. package/lib/module/tab-bar/glyph.native.js +50 -0
  152. package/lib/module/tab-bar/glyph.native.js.map +1 -0
  153. package/lib/module/tab-bar/index.js +24 -0
  154. package/lib/module/tab-bar/index.js.map +1 -0
  155. package/lib/module/tab-bar/index.web.js +26 -0
  156. package/lib/module/tab-bar/index.web.js.map +1 -0
  157. package/lib/module/tab-bar/minimize-context.js +118 -0
  158. package/lib/module/tab-bar/minimize-context.js.map +1 -0
  159. package/lib/module/tab-bar/shared.js +132 -0
  160. package/lib/module/tab-bar/shared.js.map +1 -0
  161. package/lib/module/tab-bar/surface.js +44 -0
  162. package/lib/module/tab-bar/surface.js.map +1 -0
  163. package/lib/module/tab-bar/surface.native.js +50 -0
  164. package/lib/module/tab-bar/surface.native.js.map +1 -0
  165. package/lib/module/tab-bar/surface.web.js +53 -0
  166. package/lib/module/tab-bar/surface.web.js.map +1 -0
  167. package/lib/module/tab-bar/types.js +4 -0
  168. package/lib/module/tab-bar/types.js.map +1 -0
  169. package/lib/module/toast/Positioner.js +110 -0
  170. package/lib/module/toast/Positioner.js.map +1 -0
  171. package/lib/module/toast/ToastContent.js +295 -0
  172. package/lib/module/toast/ToastContent.js.map +1 -0
  173. package/lib/module/toast/ToastHost.js +63 -0
  174. package/lib/module/toast/ToastHost.js.map +1 -0
  175. package/lib/module/toast/ToastHost.native.js +38 -0
  176. package/lib/module/toast/ToastHost.native.js.map +1 -0
  177. package/lib/module/toast/ToastIcon.js +52 -0
  178. package/lib/module/toast/ToastIcon.js.map +1 -0
  179. package/lib/module/toast/ToastRow.js +407 -0
  180. package/lib/module/toast/ToastRow.js.map +1 -0
  181. package/lib/module/toast/ToastSwipeHandler.js +182 -0
  182. package/lib/module/toast/ToastSwipeHandler.js.map +1 -0
  183. package/lib/module/toast/Toaster.js +198 -0
  184. package/lib/module/toast/Toaster.js.map +1 -0
  185. package/lib/module/toast/animations.js +261 -0
  186. package/lib/module/toast/animations.js.map +1 -0
  187. package/lib/module/toast/constants.js +52 -0
  188. package/lib/module/toast/constants.js.map +1 -0
  189. package/lib/module/toast/context.js +34 -0
  190. package/lib/module/toast/context.js.map +1 -0
  191. package/lib/module/toast/index.js +27 -103
  192. package/lib/module/toast/index.js.map +1 -1
  193. package/lib/module/toast/position-utils.js +107 -0
  194. package/lib/module/toast/position-utils.js.map +1 -0
  195. package/lib/module/toast/positioner-utils.js +134 -0
  196. package/lib/module/toast/positioner-utils.js.map +1 -0
  197. package/lib/module/toast/toast-comparator.js +22 -0
  198. package/lib/module/toast/toast-comparator.js.map +1 -0
  199. package/lib/module/toast/toast-fns.js +85 -0
  200. package/lib/module/toast/toast-fns.js.map +1 -0
  201. package/lib/module/toast/toast-store.js +346 -0
  202. package/lib/module/toast/toast-store.js.map +1 -0
  203. package/lib/module/toast/toast-timers.js +104 -0
  204. package/lib/module/toast/toast-timers.js.map +1 -0
  205. package/lib/module/toast/types.js +38 -0
  206. package/lib/module/toast/types.js.map +1 -1
  207. package/lib/module/toast/use-animated-target.js +52 -0
  208. package/lib/module/toast/use-animated-target.js.map +1 -0
  209. package/lib/module/toast/use-app-state.js +70 -0
  210. package/lib/module/toast/use-app-state.js.map +1 -0
  211. package/lib/module/toast/use-toast-colors.js +109 -0
  212. package/lib/module/toast/use-toast-colors.js.map +1 -0
  213. package/lib/module/toast/use-toast-position.js +35 -0
  214. package/lib/module/toast/use-toast-position.js.map +1 -0
  215. package/lib/module/tooltip/index.web.js +2 -1
  216. package/lib/module/tooltip/index.web.js.map +1 -1
  217. package/lib/module/zoomable-image-gallery/ZoomableImageGallery.js +20 -8
  218. package/lib/module/zoomable-image-gallery/ZoomableImageGallery.js.map +1 -1
  219. package/lib/typescript/commonjs/avatar-group/AvatarGroup.web.d.ts.map +1 -1
  220. package/lib/typescript/commonjs/bottom-sheet/index.web.d.ts.map +1 -1
  221. package/lib/typescript/commonjs/context-menu/index.web.d.ts.map +1 -1
  222. package/lib/typescript/commonjs/dialog/Dialog.web.d.ts.map +1 -1
  223. package/lib/typescript/commonjs/index.d.ts +2 -1
  224. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  225. package/lib/typescript/commonjs/index.web.d.ts +2 -1
  226. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  227. package/lib/typescript/commonjs/menu/index.web.d.ts.map +1 -1
  228. package/lib/typescript/commonjs/popover/index.web.d.ts.map +1 -1
  229. package/lib/typescript/commonjs/portal/index.d.ts.map +1 -1
  230. package/lib/typescript/commonjs/progressive-blur/index.d.ts +23 -0
  231. package/lib/typescript/commonjs/progressive-blur/index.d.ts.map +1 -0
  232. package/lib/typescript/commonjs/progressive-blur/index.web.d.ts +30 -0
  233. package/lib/typescript/commonjs/progressive-blur/index.web.d.ts.map +1 -0
  234. package/lib/typescript/commonjs/progressive-blur/shared.d.ts +35 -0
  235. package/lib/typescript/commonjs/progressive-blur/shared.d.ts.map +1 -0
  236. package/lib/typescript/commonjs/progressive-blur/types.d.ts +21 -0
  237. package/lib/typescript/commonjs/progressive-blur/types.d.ts.map +1 -0
  238. package/lib/typescript/commonjs/select/index.web.d.ts.map +1 -1
  239. package/lib/typescript/commonjs/styles/web-view-style.d.ts +21 -0
  240. package/lib/typescript/commonjs/styles/web-view-style.d.ts.map +1 -0
  241. package/lib/typescript/commonjs/tab-bar/TabBarBase.d.ts +36 -0
  242. package/lib/typescript/commonjs/tab-bar/TabBarBase.d.ts.map +1 -0
  243. package/lib/typescript/commonjs/tab-bar/expo-router/RouterTabBar.d.ts +59 -0
  244. package/lib/typescript/commonjs/tab-bar/expo-router/RouterTabBar.d.ts.map +1 -0
  245. package/lib/typescript/commonjs/tab-bar/expo-router/fading-tab-screen.d.ts +11 -0
  246. package/lib/typescript/commonjs/tab-bar/expo-router/fading-tab-screen.d.ts.map +1 -0
  247. package/lib/typescript/commonjs/tab-bar/expo-router/index.d.ts +14 -0
  248. package/lib/typescript/commonjs/tab-bar/expo-router/index.d.ts.map +1 -0
  249. package/lib/typescript/commonjs/tab-bar/glyph.d.ts +6 -0
  250. package/lib/typescript/commonjs/tab-bar/glyph.d.ts.map +1 -0
  251. package/lib/typescript/commonjs/tab-bar/glyph.native.d.ts +6 -0
  252. package/lib/typescript/commonjs/tab-bar/glyph.native.d.ts.map +1 -0
  253. package/lib/typescript/commonjs/tab-bar/index.d.ts +12 -0
  254. package/lib/typescript/commonjs/tab-bar/index.d.ts.map +1 -0
  255. package/lib/typescript/commonjs/tab-bar/index.web.d.ts +12 -0
  256. package/lib/typescript/commonjs/tab-bar/index.web.d.ts.map +1 -0
  257. package/lib/typescript/commonjs/tab-bar/minimize-context.d.ts +51 -0
  258. package/lib/typescript/commonjs/tab-bar/minimize-context.d.ts.map +1 -0
  259. package/lib/typescript/commonjs/tab-bar/shared.d.ts +93 -0
  260. package/lib/typescript/commonjs/tab-bar/shared.d.ts.map +1 -0
  261. package/lib/typescript/commonjs/tab-bar/surface.d.ts +6 -0
  262. package/lib/typescript/commonjs/tab-bar/surface.d.ts.map +1 -0
  263. package/lib/typescript/commonjs/tab-bar/surface.native.d.ts +6 -0
  264. package/lib/typescript/commonjs/tab-bar/surface.native.d.ts.map +1 -0
  265. package/lib/typescript/commonjs/tab-bar/surface.web.d.ts +6 -0
  266. package/lib/typescript/commonjs/tab-bar/surface.web.d.ts.map +1 -0
  267. package/lib/typescript/commonjs/tab-bar/types.d.ts +85 -0
  268. package/lib/typescript/commonjs/tab-bar/types.d.ts.map +1 -0
  269. package/lib/typescript/commonjs/toast/Positioner.d.ts +21 -0
  270. package/lib/typescript/commonjs/toast/Positioner.d.ts.map +1 -0
  271. package/lib/typescript/commonjs/toast/ToastContent.d.ts +14 -0
  272. package/lib/typescript/commonjs/toast/ToastContent.d.ts.map +1 -0
  273. package/lib/typescript/commonjs/toast/ToastHost.d.ts +6 -0
  274. package/lib/typescript/commonjs/toast/ToastHost.d.ts.map +1 -0
  275. package/lib/typescript/commonjs/toast/ToastHost.native.d.ts +6 -0
  276. package/lib/typescript/commonjs/toast/ToastHost.native.d.ts.map +1 -0
  277. package/lib/typescript/commonjs/toast/ToastIcon.d.ts +9 -0
  278. package/lib/typescript/commonjs/toast/ToastIcon.d.ts.map +1 -0
  279. package/lib/typescript/commonjs/toast/ToastRow.d.ts +80 -0
  280. package/lib/typescript/commonjs/toast/ToastRow.d.ts.map +1 -0
  281. package/lib/typescript/commonjs/toast/ToastSwipeHandler.d.ts +30 -0
  282. package/lib/typescript/commonjs/toast/ToastSwipeHandler.d.ts.map +1 -0
  283. package/lib/typescript/commonjs/toast/Toaster.d.ts +19 -0
  284. package/lib/typescript/commonjs/toast/Toaster.d.ts.map +1 -0
  285. package/lib/typescript/commonjs/toast/animations.d.ts +62 -0
  286. package/lib/typescript/commonjs/toast/animations.d.ts.map +1 -0
  287. package/lib/typescript/commonjs/toast/constants.d.ts +39 -0
  288. package/lib/typescript/commonjs/toast/constants.d.ts.map +1 -0
  289. package/lib/typescript/commonjs/toast/context.d.ts +19 -0
  290. package/lib/typescript/commonjs/toast/context.d.ts.map +1 -0
  291. package/lib/typescript/commonjs/toast/index.d.ts +23 -76
  292. package/lib/typescript/commonjs/toast/index.d.ts.map +1 -1
  293. package/lib/typescript/commonjs/toast/position-utils.d.ts +30 -0
  294. package/lib/typescript/commonjs/toast/position-utils.d.ts.map +1 -0
  295. package/lib/typescript/commonjs/toast/positioner-utils.d.ts +72 -0
  296. package/lib/typescript/commonjs/toast/positioner-utils.d.ts.map +1 -0
  297. package/lib/typescript/commonjs/toast/toast-comparator.d.ts +12 -0
  298. package/lib/typescript/commonjs/toast/toast-comparator.d.ts.map +1 -0
  299. package/lib/typescript/commonjs/toast/toast-fns.d.ts +3 -0
  300. package/lib/typescript/commonjs/toast/toast-fns.d.ts.map +1 -0
  301. package/lib/typescript/commonjs/toast/toast-store.d.ts +52 -0
  302. package/lib/typescript/commonjs/toast/toast-store.d.ts.map +1 -0
  303. package/lib/typescript/commonjs/toast/toast-timers.d.ts +24 -0
  304. package/lib/typescript/commonjs/toast/toast-timers.d.ts.map +1 -0
  305. package/lib/typescript/commonjs/toast/types.d.ts +222 -5
  306. package/lib/typescript/commonjs/toast/types.d.ts.map +1 -1
  307. package/lib/typescript/commonjs/toast/use-animated-target.d.ts +7 -0
  308. package/lib/typescript/commonjs/toast/use-animated-target.d.ts.map +1 -0
  309. package/lib/typescript/commonjs/toast/use-app-state.d.ts +18 -0
  310. package/lib/typescript/commonjs/toast/use-app-state.d.ts.map +1 -0
  311. package/lib/typescript/commonjs/toast/use-toast-colors.d.ts +22 -0
  312. package/lib/typescript/commonjs/toast/use-toast-colors.d.ts.map +1 -0
  313. package/lib/typescript/commonjs/toast/use-toast-position.d.ts +37 -0
  314. package/lib/typescript/commonjs/toast/use-toast-position.d.ts.map +1 -0
  315. package/lib/typescript/commonjs/tooltip/index.web.d.ts.map +1 -1
  316. package/lib/typescript/commonjs/zoomable-image-gallery/ZoomableImageGallery.d.ts.map +1 -1
  317. package/lib/typescript/module/avatar-group/AvatarGroup.web.d.ts.map +1 -1
  318. package/lib/typescript/module/bottom-sheet/index.web.d.ts.map +1 -1
  319. package/lib/typescript/module/context-menu/index.web.d.ts.map +1 -1
  320. package/lib/typescript/module/dialog/Dialog.web.d.ts.map +1 -1
  321. package/lib/typescript/module/index.d.ts +2 -1
  322. package/lib/typescript/module/index.d.ts.map +1 -1
  323. package/lib/typescript/module/index.web.d.ts +2 -1
  324. package/lib/typescript/module/index.web.d.ts.map +1 -1
  325. package/lib/typescript/module/menu/index.web.d.ts.map +1 -1
  326. package/lib/typescript/module/popover/index.web.d.ts.map +1 -1
  327. package/lib/typescript/module/portal/index.d.ts.map +1 -1
  328. package/lib/typescript/module/progressive-blur/index.d.ts +23 -0
  329. package/lib/typescript/module/progressive-blur/index.d.ts.map +1 -0
  330. package/lib/typescript/module/progressive-blur/index.web.d.ts +30 -0
  331. package/lib/typescript/module/progressive-blur/index.web.d.ts.map +1 -0
  332. package/lib/typescript/module/progressive-blur/shared.d.ts +35 -0
  333. package/lib/typescript/module/progressive-blur/shared.d.ts.map +1 -0
  334. package/lib/typescript/module/progressive-blur/types.d.ts +21 -0
  335. package/lib/typescript/module/progressive-blur/types.d.ts.map +1 -0
  336. package/lib/typescript/module/select/index.web.d.ts.map +1 -1
  337. package/lib/typescript/module/styles/web-view-style.d.ts +21 -0
  338. package/lib/typescript/module/styles/web-view-style.d.ts.map +1 -0
  339. package/lib/typescript/module/tab-bar/TabBarBase.d.ts +36 -0
  340. package/lib/typescript/module/tab-bar/TabBarBase.d.ts.map +1 -0
  341. package/lib/typescript/module/tab-bar/expo-router/RouterTabBar.d.ts +59 -0
  342. package/lib/typescript/module/tab-bar/expo-router/RouterTabBar.d.ts.map +1 -0
  343. package/lib/typescript/module/tab-bar/expo-router/fading-tab-screen.d.ts +11 -0
  344. package/lib/typescript/module/tab-bar/expo-router/fading-tab-screen.d.ts.map +1 -0
  345. package/lib/typescript/module/tab-bar/expo-router/index.d.ts +14 -0
  346. package/lib/typescript/module/tab-bar/expo-router/index.d.ts.map +1 -0
  347. package/lib/typescript/module/tab-bar/glyph.d.ts +6 -0
  348. package/lib/typescript/module/tab-bar/glyph.d.ts.map +1 -0
  349. package/lib/typescript/module/tab-bar/glyph.native.d.ts +6 -0
  350. package/lib/typescript/module/tab-bar/glyph.native.d.ts.map +1 -0
  351. package/lib/typescript/module/tab-bar/index.d.ts +12 -0
  352. package/lib/typescript/module/tab-bar/index.d.ts.map +1 -0
  353. package/lib/typescript/module/tab-bar/index.web.d.ts +12 -0
  354. package/lib/typescript/module/tab-bar/index.web.d.ts.map +1 -0
  355. package/lib/typescript/module/tab-bar/minimize-context.d.ts +51 -0
  356. package/lib/typescript/module/tab-bar/minimize-context.d.ts.map +1 -0
  357. package/lib/typescript/module/tab-bar/shared.d.ts +93 -0
  358. package/lib/typescript/module/tab-bar/shared.d.ts.map +1 -0
  359. package/lib/typescript/module/tab-bar/surface.d.ts +6 -0
  360. package/lib/typescript/module/tab-bar/surface.d.ts.map +1 -0
  361. package/lib/typescript/module/tab-bar/surface.native.d.ts +6 -0
  362. package/lib/typescript/module/tab-bar/surface.native.d.ts.map +1 -0
  363. package/lib/typescript/module/tab-bar/surface.web.d.ts +6 -0
  364. package/lib/typescript/module/tab-bar/surface.web.d.ts.map +1 -0
  365. package/lib/typescript/module/tab-bar/types.d.ts +85 -0
  366. package/lib/typescript/module/tab-bar/types.d.ts.map +1 -0
  367. package/lib/typescript/module/toast/Positioner.d.ts +21 -0
  368. package/lib/typescript/module/toast/Positioner.d.ts.map +1 -0
  369. package/lib/typescript/module/toast/ToastContent.d.ts +14 -0
  370. package/lib/typescript/module/toast/ToastContent.d.ts.map +1 -0
  371. package/lib/typescript/module/toast/ToastHost.d.ts +6 -0
  372. package/lib/typescript/module/toast/ToastHost.d.ts.map +1 -0
  373. package/lib/typescript/module/toast/ToastHost.native.d.ts +6 -0
  374. package/lib/typescript/module/toast/ToastHost.native.d.ts.map +1 -0
  375. package/lib/typescript/module/toast/ToastIcon.d.ts +9 -0
  376. package/lib/typescript/module/toast/ToastIcon.d.ts.map +1 -0
  377. package/lib/typescript/module/toast/ToastRow.d.ts +80 -0
  378. package/lib/typescript/module/toast/ToastRow.d.ts.map +1 -0
  379. package/lib/typescript/module/toast/ToastSwipeHandler.d.ts +30 -0
  380. package/lib/typescript/module/toast/ToastSwipeHandler.d.ts.map +1 -0
  381. package/lib/typescript/module/toast/Toaster.d.ts +19 -0
  382. package/lib/typescript/module/toast/Toaster.d.ts.map +1 -0
  383. package/lib/typescript/module/toast/animations.d.ts +62 -0
  384. package/lib/typescript/module/toast/animations.d.ts.map +1 -0
  385. package/lib/typescript/module/toast/constants.d.ts +39 -0
  386. package/lib/typescript/module/toast/constants.d.ts.map +1 -0
  387. package/lib/typescript/module/toast/context.d.ts +19 -0
  388. package/lib/typescript/module/toast/context.d.ts.map +1 -0
  389. package/lib/typescript/module/toast/index.d.ts +23 -76
  390. package/lib/typescript/module/toast/index.d.ts.map +1 -1
  391. package/lib/typescript/module/toast/position-utils.d.ts +30 -0
  392. package/lib/typescript/module/toast/position-utils.d.ts.map +1 -0
  393. package/lib/typescript/module/toast/positioner-utils.d.ts +72 -0
  394. package/lib/typescript/module/toast/positioner-utils.d.ts.map +1 -0
  395. package/lib/typescript/module/toast/toast-comparator.d.ts +12 -0
  396. package/lib/typescript/module/toast/toast-comparator.d.ts.map +1 -0
  397. package/lib/typescript/module/toast/toast-fns.d.ts +3 -0
  398. package/lib/typescript/module/toast/toast-fns.d.ts.map +1 -0
  399. package/lib/typescript/module/toast/toast-store.d.ts +52 -0
  400. package/lib/typescript/module/toast/toast-store.d.ts.map +1 -0
  401. package/lib/typescript/module/toast/toast-timers.d.ts +24 -0
  402. package/lib/typescript/module/toast/toast-timers.d.ts.map +1 -0
  403. package/lib/typescript/module/toast/types.d.ts +222 -5
  404. package/lib/typescript/module/toast/types.d.ts.map +1 -1
  405. package/lib/typescript/module/toast/use-animated-target.d.ts +7 -0
  406. package/lib/typescript/module/toast/use-animated-target.d.ts.map +1 -0
  407. package/lib/typescript/module/toast/use-app-state.d.ts +18 -0
  408. package/lib/typescript/module/toast/use-app-state.d.ts.map +1 -0
  409. package/lib/typescript/module/toast/use-toast-colors.d.ts +22 -0
  410. package/lib/typescript/module/toast/use-toast-colors.d.ts.map +1 -0
  411. package/lib/typescript/module/toast/use-toast-position.d.ts +37 -0
  412. package/lib/typescript/module/toast/use-toast-position.d.ts.map +1 -0
  413. package/lib/typescript/module/tooltip/index.web.d.ts.map +1 -1
  414. package/lib/typescript/module/zoomable-image-gallery/ZoomableImageGallery.d.ts.map +1 -1
  415. package/package.json +63 -25
  416. package/src/__tests__/TabBar.test.tsx +342 -0
  417. package/src/__tests__/TabBarReanimatedDeps.test.ts +130 -0
  418. package/src/__tests__/TabBarWebFork.test.ts +197 -0
  419. package/src/__tests__/ToastContent.test.tsx +192 -0
  420. package/src/__tests__/ToastHostWebFork.test.ts +155 -0
  421. package/src/__tests__/Toaster.test.tsx +527 -0
  422. package/src/__tests__/animated-style-deps.test.ts +156 -0
  423. package/src/__tests__/toast-animations.test.ts +98 -0
  424. package/src/__tests__/toast-comparator.test.ts +131 -0
  425. package/src/__tests__/toast-enter-driver.test.ts +147 -0
  426. package/src/__tests__/toast-fns.test.ts +240 -0
  427. package/src/__tests__/toast-position-utils.test.ts +259 -0
  428. package/src/__tests__/toast-positioner-utils.test.ts +214 -0
  429. package/src/__tests__/toast-store.test.ts +622 -0
  430. package/src/__tests__/toast-timers.test.ts +163 -0
  431. package/src/__tests__/use-animated-target.test.tsx +60 -0
  432. package/src/__tests__/use-app-state.test.tsx +127 -0
  433. package/src/__tests__/use-toast-colors.test.tsx +189 -0
  434. package/src/__tests__/web-position-fixed.test.ts +70 -0
  435. package/src/avatar-group/AvatarGroup.web.tsx +2 -1
  436. package/src/bottom-sheet/index.web.tsx +3 -2
  437. package/src/context-menu/index.web.tsx +3 -2
  438. package/src/dialog/Dialog.web.tsx +4 -3
  439. package/src/index.ts +4 -1
  440. package/src/index.web.ts +4 -1
  441. package/src/menu/index.web.tsx +2 -1
  442. package/src/popover/index.web.tsx +3 -2
  443. package/src/portal/index.tsx +4 -1
  444. package/src/progressive-blur/index.tsx +78 -0
  445. package/src/progressive-blur/index.web.tsx +65 -0
  446. package/src/progressive-blur/shared.ts +81 -0
  447. package/src/progressive-blur/types.ts +21 -0
  448. package/src/select/index.web.tsx +2 -1
  449. package/src/styles/web-view-style.ts +21 -0
  450. package/src/tab-bar/TabBar.stories.tsx +217 -0
  451. package/src/tab-bar/TabBarBase.tsx +517 -0
  452. package/src/tab-bar/expo-router/RouterTabBar.tsx +80 -0
  453. package/src/tab-bar/expo-router/fading-tab-screen.tsx +109 -0
  454. package/src/tab-bar/expo-router/index.ts +13 -0
  455. package/src/tab-bar/glyph.native.tsx +46 -0
  456. package/src/tab-bar/glyph.tsx +31 -0
  457. package/src/tab-bar/index.ts +32 -0
  458. package/src/tab-bar/index.web.tsx +34 -0
  459. package/src/tab-bar/minimize-context.tsx +117 -0
  460. package/src/tab-bar/shared.ts +159 -0
  461. package/src/tab-bar/surface.native.tsx +60 -0
  462. package/src/tab-bar/surface.tsx +47 -0
  463. package/src/tab-bar/surface.web.tsx +56 -0
  464. package/src/tab-bar/types.ts +88 -0
  465. package/src/toast/Positioner.tsx +121 -0
  466. package/src/toast/Toast.stories.tsx +292 -65
  467. package/src/toast/ToastContent.tsx +405 -0
  468. package/src/toast/ToastHost.native.tsx +31 -0
  469. package/src/toast/ToastHost.tsx +67 -0
  470. package/src/toast/ToastIcon.tsx +55 -0
  471. package/src/toast/ToastRow.tsx +485 -0
  472. package/src/toast/ToastSwipeHandler.tsx +222 -0
  473. package/src/toast/Toaster.tsx +259 -0
  474. package/src/toast/animations.ts +313 -0
  475. package/src/toast/constants.ts +76 -0
  476. package/src/toast/context.tsx +44 -0
  477. package/src/toast/index.tsx +47 -123
  478. package/src/toast/position-utils.ts +149 -0
  479. package/src/toast/positioner-utils.ts +142 -0
  480. package/src/toast/toast-comparator.ts +41 -0
  481. package/src/toast/toast-fns.ts +104 -0
  482. package/src/toast/toast-store.ts +432 -0
  483. package/src/toast/toast-timers.ts +124 -0
  484. package/src/toast/types.ts +301 -5
  485. package/src/toast/use-animated-target.ts +61 -0
  486. package/src/toast/use-app-state.ts +77 -0
  487. package/src/toast/use-toast-colors.ts +133 -0
  488. package/src/toast/use-toast-position.ts +46 -0
  489. package/src/tooltip/index.web.tsx +2 -1
  490. package/src/zoomable-image-gallery/ZoomableImageGallery.stories.tsx +134 -0
  491. package/src/zoomable-image-gallery/ZoomableImageGallery.tsx +50 -27
  492. package/lib/commonjs/toast/Toast.js +0 -267
  493. package/lib/commonjs/toast/Toast.js.map +0 -1
  494. package/lib/commonjs/toast/const.js +0 -8
  495. package/lib/commonjs/toast/const.js.map +0 -1
  496. package/lib/commonjs/toast/index.web.js +0 -114
  497. package/lib/commonjs/toast/index.web.js.map +0 -1
  498. package/lib/commonjs/toast/sonner/index.js +0 -9
  499. package/lib/commonjs/toast/sonner/index.js.map +0 -1
  500. package/lib/commonjs/toast/sonner/index.web.js +0 -9
  501. package/lib/commonjs/toast/sonner/index.web.js.map +0 -1
  502. package/lib/module/toast/Toast.js +0 -258
  503. package/lib/module/toast/Toast.js.map +0 -1
  504. package/lib/module/toast/const.js +0 -4
  505. package/lib/module/toast/const.js.map +0 -1
  506. package/lib/module/toast/index.web.js +0 -74
  507. package/lib/module/toast/index.web.js.map +0 -1
  508. package/lib/module/toast/sonner/index.js +0 -5
  509. package/lib/module/toast/sonner/index.js.map +0 -1
  510. package/lib/module/toast/sonner/index.web.js +0 -5
  511. package/lib/module/toast/sonner/index.web.js.map +0 -1
  512. package/lib/typescript/commonjs/toast/Toast.d.ts +0 -23
  513. package/lib/typescript/commonjs/toast/Toast.d.ts.map +0 -1
  514. package/lib/typescript/commonjs/toast/const.d.ts +0 -2
  515. package/lib/typescript/commonjs/toast/const.d.ts.map +0 -1
  516. package/lib/typescript/commonjs/toast/index.web.d.ts +0 -29
  517. package/lib/typescript/commonjs/toast/index.web.d.ts.map +0 -1
  518. package/lib/typescript/commonjs/toast/sonner/index.d.ts +0 -2
  519. package/lib/typescript/commonjs/toast/sonner/index.d.ts.map +0 -1
  520. package/lib/typescript/commonjs/toast/sonner/index.web.d.ts +0 -2
  521. package/lib/typescript/commonjs/toast/sonner/index.web.d.ts.map +0 -1
  522. package/lib/typescript/module/toast/Toast.d.ts +0 -23
  523. package/lib/typescript/module/toast/Toast.d.ts.map +0 -1
  524. package/lib/typescript/module/toast/const.d.ts +0 -2
  525. package/lib/typescript/module/toast/const.d.ts.map +0 -1
  526. package/lib/typescript/module/toast/index.web.d.ts +0 -29
  527. package/lib/typescript/module/toast/index.web.d.ts.map +0 -1
  528. package/lib/typescript/module/toast/sonner/index.d.ts +0 -2
  529. package/lib/typescript/module/toast/sonner/index.d.ts.map +0 -1
  530. package/lib/typescript/module/toast/sonner/index.web.d.ts +0 -2
  531. package/lib/typescript/module/toast/sonner/index.web.d.ts.map +0 -1
  532. package/src/toast/Toast.tsx +0 -269
  533. package/src/toast/const.ts +0 -1
  534. package/src/toast/index.web.tsx +0 -101
  535. package/src/toast/sonner/index.ts +0 -3
  536. package/src/toast/sonner/index.web.ts +0 -3
@@ -0,0 +1,23 @@
1
+ import type { ProgressiveBlurProps } from './types';
2
+ export type { ProgressiveBlurProps } from './types';
3
+ /**
4
+ * Progressive (gradient) blur: strongest at the anchored edge, fading to none.
5
+ * Drop it behind a floating tab bar or a transparent header so content
6
+ * dissolves rather than meeting a hard blur line.
7
+ *
8
+ * NATIVE implementation. iOS has no public variable-blur API, so this stacks
9
+ * ten thin `BlurView`s with a tiny per-layer intensity — each layer's edge adds
10
+ * only an imperceptible step, so the falloff reads as continuous (see
11
+ * `LAYER_HEIGHTS`). A soft gradient in the theme's page color smooths the tail
12
+ * and keeps overlaid content legible.
13
+ *
14
+ * The web fork replaces the whole stack with one masked `backdrop-filter`:
15
+ * `experimental_backgroundImage` is dropped silently by react-native-web, and
16
+ * ten stacked backdrop passes would be far more expensive than the one the
17
+ * browser can do natively.
18
+ */
19
+ export declare function ProgressiveBlur({ style, intensity, direction, ...rest }: ProgressiveBlurProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare namespace ProgressiveBlur {
21
+ var displayName: string;
22
+ }
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/progressive-blur/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,SAAa,EACb,SAAiB,EACjB,GAAG,IAAI,EACR,EAAE,oBAAoB,2CAsBtB;yBA3Be,eAAe"}
@@ -0,0 +1,30 @@
1
+ import type { ProgressiveBlurProps } from './types';
2
+ export type { ProgressiveBlurProps } from './types';
3
+ /**
4
+ * WEB fork of {@link ProgressiveBlur} — ONE element instead of the native
5
+ * ten-layer stack.
6
+ *
7
+ * Two upstream techniques do not survive a browser, which is the whole reason
8
+ * this fork exists:
9
+ *
10
+ * - `experimental_backgroundImage` is dropped silently by react-native-web
11
+ * (no warning, no gradient), so the tail is painted with real CSS
12
+ * `background-image` instead;
13
+ * - stacking ten `BlurView`s would mean ten composited backdrop passes over
14
+ * the same pixels every frame. A browser can fade a single
15
+ * `backdrop-filter` with `mask-image`, which is both correct and an order
16
+ * of magnitude cheaper.
17
+ *
18
+ * The declarations ride in the STYLE object rather than an injected CSS class:
19
+ * react-native-web does not forward `className` to the DOM (it is absent from
20
+ * its `forwardedProps` list, and `createDOMProps` overwrites the attribute with
21
+ * the atomic class it generates), while unknown style properties ARE passed
22
+ * through its style compiler — the same route `Dialog.web.tsx` uses for its
23
+ * `animation` shorthand. Nothing here needs `@keyframes` or a pseudo-class, so
24
+ * there is no stylesheet to inject and nothing a consumer could forget to wire.
25
+ */
26
+ export declare function ProgressiveBlur({ style, intensity, direction, ...rest }: ProgressiveBlurProps): import("react/jsx-runtime").JSX.Element;
27
+ export declare namespace ProgressiveBlur {
28
+ var displayName: string;
29
+ }
30
+ //# sourceMappingURL=index.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/progressive-blur/index.web.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,SAAa,EACb,SAAiB,EACjB,GAAG,IAAI,EACR,EAAE,oBAAoB,2CAkBtB;yBAvBe,eAAe"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Per-layer heights of the native blur stack, as a fraction of the box.
3
+ *
4
+ * iOS has no public variable-blur API, so the native fork stacks many thin
5
+ * `BlurView`s with a tiny per-layer intensity: each layer's edge adds only an
6
+ * imperceptible step, so the falloff reads as continuous. Coverage at a given
7
+ * depth is the number of layers still tall enough to reach it — 10 at the
8
+ * anchored edge, ~5 at the midpoint, 1 at the far edge.
9
+ */
10
+ export declare const LAYER_HEIGHTS: readonly ["100%", "88%", "76%", "64%", "54%", "44%", "36%", "28%", "22%", "16%"];
11
+ /**
12
+ * px of CSS blur per unit of `intensity` on web.
13
+ *
14
+ * The web fork replaces the whole stack with ONE `backdrop-filter`, so the
15
+ * radius has to stand in for the accumulated effect of ten layers rather than
16
+ * one: the default `intensity` of 5 lands on a 20px radius, which reads like
17
+ * the native stack at the anchored edge. Stacking ten real blurs in a browser
18
+ * would cost ten composited backdrop passes for the same picture.
19
+ */
20
+ export declare const WEB_BLUR_PER_INTENSITY = 4;
21
+ /**
22
+ * The soft tint layered over the blur. It smooths the tail and keeps overlaid
23
+ * content legible; upstream hardcoded black, which only worked on a dark theme,
24
+ * so it is derived from the theme's page background here instead.
25
+ */
26
+ export declare function buildTailGradient(background: string, direction: 'top' | 'bottom'): string;
27
+ /**
28
+ * Alpha ramp the web fork masks its single blur with — the only way to fade a
29
+ * `backdrop-filter`. The stops trace the native stack's layer coverage (full at
30
+ * the anchored edge, ~half at the midpoint) and then close all the way to zero,
31
+ * which the stack cannot do: its tallest layer spans the whole box, leaving a
32
+ * faint blur step at the far edge.
33
+ */
34
+ export declare function buildMaskGradient(direction: 'top' | 'bottom'): string;
35
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/progressive-blur/shared.ts"],"names":[],"mappings":"AASA;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,kFAWhB,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAOxC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CASzF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAUrE"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Ported from expo-glass-tabs v0.1.1 — src/progressive-blur.tsx
3
+ * (MIT © 2026 David Mokos). See the top-level NOTICE.
4
+ *
5
+ * Shared prop contract for both forks. It lives in its own module so the web
6
+ * fork can declare it without importing the native entry (`./index` resolves to
7
+ * `index.web.tsx` itself on a web-platform Metro build), and so `TabBarBase`
8
+ * can type its injected `Blur` component without importing either fork.
9
+ */
10
+ import type { ViewProps } from 'react-native';
11
+ export type ProgressiveBlurProps = ViewProps & {
12
+ /**
13
+ * Blur strength at the anchored edge. Follows `expo-blur`'s 0–100 scale and
14
+ * is applied PER LAYER on native (see the native fork); the web fork maps it
15
+ * onto the single CSS blur radius that approximates the same stack.
16
+ */
17
+ intensity?: number;
18
+ /** Which edge the blur is anchored to (strongest there, fading away). */
19
+ direction?: 'top' | 'bottom';
20
+ };
21
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/progressive-blur/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG;IAC7C;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;CAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/select/index.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8D,MAAM,OAAO,CAAC;AAcnF,OAAO,EAA0C,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACxF,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,WAAW,EAEX,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,oBAAoB,EAAE,CAAC;AA6BhC,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,2CAgB/E;AAMD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,kBAAkB,yTAuDpE;AAMD,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EAAE,YAAY,EACtB,WAAW,EACX,KAAK,GACN,EAAE,gBAAgB,2CAkBlB;AAMD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,eAAe,2CAGpD;AAMD,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAC/B,KAAK,EACL,UAAU,EACV,KAA0B,EAC1B,cAA0C,GAC3C,EAAE,kBAAkB,CAAC,CAAC,CAAC,kDAmCvB;AAMD,wBAAgB,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,eAAe,2CAyC1E;AAMD,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,mBAAmB,2CAMtE;AAMD,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,aAAyB,EAAE,EAAE,wBAAwB,2CAYhG;AAMD,wBAAgB,eAAe,4CAW9B"}
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/select/index.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8D,MAAM,OAAO,CAAC;AAenF,OAAO,EAA0C,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACxF,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,WAAW,EAEX,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,oBAAoB,EAAE,CAAC;AA6BhC,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,2CAgB/E;AAMD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,kBAAkB,yTAuDpE;AAMD,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EAAE,YAAY,EACtB,WAAW,EACX,KAAK,GACN,EAAE,gBAAgB,2CAkBlB;AAMD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,eAAe,2CAGpD;AAMD,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAC/B,KAAK,EACL,UAAU,EACV,KAA0B,EAC1B,cAA0C,GAC3C,EAAE,kBAAkB,CAAC,CAAC,CAAC,kDAmCvB;AAMD,wBAAgB,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,eAAe,2CAyC1E;AAMD,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,mBAAmB,2CAMtE;AAMD,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,aAAyB,EAAE,EAAE,wBAAwB,2CAYhG;AAMD,wBAAgB,eAAe,4CAW9B"}
@@ -0,0 +1,21 @@
1
+ import type { ViewStyle } from 'react-native';
2
+ /**
3
+ * `position: fixed`, typed for React Native's `ViewStyle`.
4
+ *
5
+ * RN types `position` as `'absolute' | 'relative' | 'static'` — what Yoga
6
+ * implements — while react-native-web renders real CSS, where `'fixed'` is the
7
+ * only way for a portaled overlay to anchor to the VIEWPORT instead of the
8
+ * nearest positioned ancestor. This is the ONE place Bloom crosses between the
9
+ * two, so web forks import it instead of writing their own cast.
10
+ *
11
+ * Deliberately not a `declare module 'react-native'` augmentation, for two
12
+ * reasons. It does not work: `position` lives on `interface FlexStyle`, which RN
13
+ * re-exports from a submodule, so augmenting `'react-native'` neither merges nor
14
+ * errors — verified with tsc, the identical `TS2322` appears with and without it,
15
+ * which makes it strictly worse than a cast because it looks like a fix. And even
16
+ * if it worked, widening `ViewStyle` would ship through `/// <reference path>` to
17
+ * every consumer, so `position: 'fixed'` would start compiling in NATIVE code
18
+ * where Yoga silently ignores it.
19
+ */
20
+ export declare const WEB_POSITION_FIXED: ViewStyle["position"];
21
+ //# sourceMappingURL=web-view-style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-view-style.d.ts","sourceRoot":"","sources":["../../../../src/styles/web-view-style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,kBAAkB,EAAc,SAAS,CAAC,UAAU,CAAC,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Ported from expo-glass-tabs v0.1.1 — src/glass-tab-bar.tsx
3
+ * (MIT © 2026 David Mokos). See the top-level NOTICE.
4
+ *
5
+ * The platform-agnostic body of the floating tab bar: gestures, springs, every
6
+ * animated style, the highlight geometry and the button. The only pieces that
7
+ * differ per platform are injected as component props — the capsule `Surface`
8
+ * (liquid glass on iOS 26, backdrop-filter on web, a solid fill everywhere
9
+ * else), the `Blur` behind the bar, and the `Glyph` (SF Symbol on iOS, the
10
+ * item's own icon node elsewhere). Same shape as `BottomSheetBase`'s `Shell`.
11
+ *
12
+ * Nothing here imports expo-glass-effect, expo-symbols, expo-router or
13
+ * react-native-screens, so this file is safe in a web bundle and in a
14
+ * consumer's type-check.
15
+ */
16
+ import { type ComponentType } from 'react';
17
+ import type { ProgressiveBlurProps } from '../progressive-blur/types';
18
+ import { type TabBarGlyphProps, type TabBarSurfaceProps } from './shared';
19
+ import type { TabBarButtonProps, TabBarProps } from './types';
20
+ /**
21
+ * Bind the platform `Surface` + `Blur` to the shared body, once per entry
22
+ * module. The returned component is created at module scope, so its identity is
23
+ * stable across renders. `index.ts` binds the native/neutral pieces and
24
+ * `index.web.tsx` binds the web pieces explicitly — the same split
25
+ * `BottomSheet` makes with its `Shell`.
26
+ */
27
+ export declare function createTabBar(Surface: ComponentType<TabBarSurfaceProps>, Blur: ComponentType<ProgressiveBlurProps>): {
28
+ (props: TabBarProps): import("react/jsx-runtime").JSX.Element;
29
+ displayName: string;
30
+ };
31
+ /** Bind the platform `Glyph` to the shared button body. See `createTabBar`. */
32
+ export declare function createTabBarButton(Glyph: ComponentType<TabBarGlyphProps>): {
33
+ (props: TabBarButtonProps): import("react/jsx-runtime").JSX.Element;
34
+ displayName: string;
35
+ };
36
+ //# sourceMappingURL=TabBarBase.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Ported from expo-glass-tabs v0.1.1 — src/glass-tab-bar.tsx
3
+ * (MIT © 2026 David Mokos). See the top-level NOTICE.
4
+ *
5
+ * expo-router bindings for the tab bar. This subpath
6
+ * (`@oxyhq/bloom/tab-bar/expo-router`) is the ONLY place in Bloom that may
7
+ * import `expo-router` or `react-native-screens`, which is why it is a separate
8
+ * entry: the core `@oxyhq/bloom/tab-bar` stays usable in an app with no router
9
+ * at all, and neither optional peer is pulled into a bundle that never asks for
10
+ * it.
11
+ */
12
+ import type { TabListProps, TabTriggerSlotProps } from 'expo-router/ui';
13
+ import type { TabBarItem, TabBarProps } from '../types';
14
+ /**
15
+ * `activeIndex` is omitted deliberately: with a router the highlight is driven
16
+ * by each trigger's own focus (see `RouterTabBarButton`), which is what keeps it
17
+ * correct through deep links, back gestures and any other programmatic
18
+ * navigation. Setting both would put two writers on one shared value.
19
+ */
20
+ export type RouterTabBarProps = TabListProps & Omit<TabBarProps, 'activeIndex'>;
21
+ export type RouterTabBarButtonProps = TabTriggerSlotProps & {
22
+ item: TabBarItem;
23
+ /** Position in the bar — must match the trigger's order in the `TabList`. */
24
+ index: number;
25
+ };
26
+ /**
27
+ * The bar, as expo-router's `<TabList asChild>` child.
28
+ *
29
+ * Navigation happens through `onIndexChange`, not through the triggers: the
30
+ * bar's gesture detector consumes the touches (that is what makes scrubbing
31
+ * possible), so a tap never reaches the trigger's own `Pressable`.
32
+ *
33
+ * ```tsx
34
+ * <TabList asChild>
35
+ * <RouterTabBar onIndexChange={(i) => router.navigate(TABS[i].href)}>
36
+ * {TABS.map(({ href, ...item }, index) => (
37
+ * <TabTrigger key={item.name} name={item.name} href={href} asChild>
38
+ * <RouterTabBarButton item={item} index={index} />
39
+ * </TabTrigger>
40
+ * ))}
41
+ * </RouterTabBar>
42
+ * </TabList>
43
+ * ```
44
+ */
45
+ export declare function RouterTabBar({ asChild: _asChild, ...props }: RouterTabBarProps): import("react/jsx-runtime").JSX.Element;
46
+ export declare namespace RouterTabBar {
47
+ var displayName: string;
48
+ }
49
+ /**
50
+ * One trigger, as expo-router's `<TabTrigger asChild>` child. The trigger
51
+ * supplies `isFocused` and `onPress`; the button uses the first to drive the
52
+ * highlight and the second to navigate on keyboard / assistive-technology
53
+ * activation.
54
+ */
55
+ export declare function RouterTabBarButton({ item, index, href: _href, ...props }: RouterTabBarButtonProps): import("react/jsx-runtime").JSX.Element;
56
+ export declare namespace RouterTabBarButton {
57
+ var displayName: string;
58
+ }
59
+ //# sourceMappingURL=RouterTabBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouterTabBar.d.ts","sourceRoot":"","sources":["../../../../../src/tab-bar/expo-router/RouterTabBar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGxE,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAEhF,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,GAAG;IAC1D,IAAI,EAAE,UAAU,CAAC;IACjB,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,EAI3B,OAAO,EAAE,QAAQ,EACjB,GAAG,KAAK,EACT,EAAE,iBAAiB,2CAEnB;yBARe,YAAY;;;AAY5B;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,KAAK,EAIL,IAAI,EAAE,KAAK,EACX,GAAG,KAAK,EACT,EAAE,uBAAuB,2CAEzB;yBAVe,kBAAkB"}
@@ -0,0 +1,11 @@
1
+ import type { TabsDescriptor, TabsSlotRenderOptions } from 'expo-router/ui';
2
+ /**
3
+ * Drop-in for `TabSlot`'s `renderFn`: identical to expo-router's default render,
4
+ * plus a subtle fade + micro-scale on the screen becoming focused.
5
+ *
6
+ * ```tsx
7
+ * <TabSlot style={{ height: '100%' }} renderFn={renderFadingTabScreen} />
8
+ * ```
9
+ */
10
+ export declare function renderFadingTabScreen(descriptor: TabsDescriptor, { isFocused, loaded, detachInactiveScreens }: TabsSlotRenderOptions): import("react/jsx-runtime").JSX.Element | null;
11
+ //# sourceMappingURL=fading-tab-screen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fading-tab-screen.d.ts","sourceRoot":"","sources":["../../../../../src/tab-bar/expo-router/fading-tab-screen.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAyC5E;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,cAAc,EAC1B,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,qBAAqB,kDAoBpE"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Ported from expo-glass-tabs v0.1.1 — src/index.ts
3
+ * (MIT © 2026 David Mokos). See the top-level NOTICE.
4
+ *
5
+ * Entry for `@oxyhq/bloom/tab-bar/expo-router`. The components live in sibling
6
+ * modules because this file is the published entry path and must stay stable;
7
+ * the split also keeps the router bindings and the `TabSlot` renderer — which
8
+ * pull `expo-router` and `react-native-screens` respectively — in separate
9
+ * modules.
10
+ */
11
+ export { RouterTabBar, RouterTabBarButton } from './RouterTabBar';
12
+ export type { RouterTabBarProps, RouterTabBarButtonProps } from './RouterTabBar';
13
+ export { renderFadingTabScreen } from './fading-tab-screen';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/tab-bar/expo-router/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { TabBarGlyphProps } from './shared';
2
+ export declare function TabBarGlyph({ item, tint, size }: TabBarGlyphProps): import("react/jsx-runtime").JSX.Element;
3
+ export declare namespace TabBarGlyph {
4
+ var displayName: string;
5
+ }
6
+ //# sourceMappingURL=glyph.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,6 @@
1
+ import type { TabBarGlyphProps } from './shared';
2
+ export declare function TabBarGlyph({ item, tint, size }: TabBarGlyphProps): import("react/jsx-runtime").JSX.Element;
3
+ export declare namespace TabBarGlyph {
4
+ var displayName: string;
5
+ }
6
+ //# sourceMappingURL=glyph.native.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,12 @@
1
+ export declare const TabBar: {
2
+ (props: import("./types").TabBarProps): import("react/jsx-runtime").JSX.Element;
3
+ displayName: string;
4
+ };
5
+ export declare const TabBarButton: {
6
+ (props: import("./types").TabBarButtonProps): import("react/jsx-runtime").JSX.Element;
7
+ displayName: string;
8
+ };
9
+ export { MINIMIZE_SPRING, setMinimized, TabBarMinimizeProvider, useMinimizeOnScroll, useMinimizeState, useTabBarMinimized, } from './minimize-context';
10
+ export type { MinimizeState } from './minimize-context';
11
+ export type { TabBarButtonProps, TabBarItem, TabBarProps, TabBarTheme } from './types';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,12 @@
1
+ export declare const TabBar: {
2
+ (props: import("./types").TabBarProps): import("react/jsx-runtime").JSX.Element;
3
+ displayName: string;
4
+ };
5
+ export declare const TabBarButton: {
6
+ (props: import("./types").TabBarButtonProps): import("react/jsx-runtime").JSX.Element;
7
+ displayName: string;
8
+ };
9
+ export { MINIMIZE_SPRING, setMinimized, TabBarMinimizeProvider, useMinimizeOnScroll, useMinimizeState, useTabBarMinimized, } from './minimize-context';
10
+ export type { MinimizeState } from './minimize-context';
11
+ export type { TabBarButtonProps, TabBarItem, TabBarProps, TabBarTheme } from './types';
12
+ //# sourceMappingURL=index.web.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Ported from expo-glass-tabs v0.1.1 — src/minimize-context.tsx
3
+ * (MIT © 2026 David Mokos). See the top-level NOTICE.
4
+ *
5
+ * The shared 0..1 "minimize" progress the tab bar interpolates on, plus the
6
+ * scroll handler that drives it. Reanimated only — no platform imports.
7
+ */
8
+ import { type PropsWithChildren } from 'react';
9
+ import { type SharedValue } from 'react-native-reanimated';
10
+ /**
11
+ * Spring, not timing: scroll direction flips mid-animation constantly, and a
12
+ * spring retargets while preserving velocity — a timing curve would restart
13
+ * from zero and feel mechanical. Critically damped (ratio 1): no overshoot and
14
+ * no long settling tail, which matters because the bar animates layout.
15
+ */
16
+ export declare const MINIMIZE_SPRING: {
17
+ duration: number;
18
+ dampingRatio: number;
19
+ };
20
+ export type MinimizeState = {
21
+ /** 0 = expanded (icons + labels), 1 = minimized (icons only). */
22
+ progress: SharedValue<number>;
23
+ /** Last requested target — lets writers avoid restarting the spring. */
24
+ target: SharedValue<number>;
25
+ };
26
+ /**
27
+ * Wrap the tab tree once. Screens then call `useMinimizeOnScroll()` and the bar
28
+ * reads the same progress, so scrolling any screen minimizes the bar.
29
+ */
30
+ export declare function TabBarMinimizeProvider({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
31
+ export declare namespace TabBarMinimizeProvider {
32
+ var displayName: string;
33
+ }
34
+ /** Full minimize state — used by the bar, the buttons and the scroll hook. */
35
+ export declare function useMinimizeState(): MinimizeState;
36
+ /** The animated 0..1 minimize progress (what styles interpolate on). */
37
+ export declare function useTabBarMinimized(): SharedValue<number>;
38
+ /**
39
+ * Retarget the minimize spring — no-op when already heading to `next`, so
40
+ * per-frame scroll events never restart (and visibly stutter) the animation.
41
+ * Callable from both threads.
42
+ */
43
+ export declare function setMinimized(state: MinimizeState, next: 0 | 1): void;
44
+ /**
45
+ * Scroll handler for `Animated.ScrollView`. Scrolling down minimizes the tab
46
+ * bar, scrolling up (or being near the top) expands it. Offsets are clamped to
47
+ * the scrollable range so rubber-band overscroll can't flip the direction for a
48
+ * frame and flicker the bar.
49
+ */
50
+ export declare function useMinimizeOnScroll(): import("react-native-reanimated").ScrollHandlerProcessed<Record<string, unknown>>;
51
+ //# sourceMappingURL=minimize-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimize-context.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/minimize-context.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAsC,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AACnF,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;CAAqC,CAAC;AAOlE,MAAM,MAAM,aAAa,GAAG;IAC1B,iEAAiE;IACjE,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,wEAAwE;IACxE,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAIF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAKrE;yBALe,sBAAsB;;;AAStC,8EAA8E;AAC9E,wBAAgB,gBAAgB,IAAI,aAAa,CAShD;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,IAAI,WAAW,CAAC,MAAM,CAAC,CAExD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,QAM7D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,sFA8BlC"}
@@ -0,0 +1,93 @@
1
+ import type { StyleProp, ViewStyle } from 'react-native';
2
+ import type { AnimatedStyle } from 'react-native-reanimated';
3
+ import type { ThemeColors } from '../theme/types';
4
+ import type { TabBarItem, TabBarTheme } from './types';
5
+ export declare const EXPANDED_HEIGHT = 58;
6
+ export declare const MINIMIZED_HEIGHT = 44;
7
+ /** Extra horizontal inset applied to the pill when minimized (per side). */
8
+ export declare const MINIMIZED_INSET = 34;
9
+ /** Outer margin between the pill and the screen edges (per side). */
10
+ export declare const BAR_MARGIN = 12;
11
+ /** Inner inset between the capsule wall and the tab items. */
12
+ export declare const ROW_PAD_H = 4;
13
+ export declare const LABEL_HEIGHT = 13;
14
+ export declare const ICON_SIZE = 21;
15
+ /**
16
+ * Space between icon and label — folded into the label's animated height so it
17
+ * fully disappears when minimized (keeps the icon perfectly centered).
18
+ */
19
+ export declare const ITEM_GAP = 2;
20
+ export declare const LABEL_BLOCK: number;
21
+ export declare const ITEM_PAD_V = 7;
22
+ /** Highlight content heights — radius must track h/2 for a true capsule. */
23
+ export declare const HIGHLIGHT_EXPANDED: number;
24
+ export declare const HIGHLIGHT_MINIMIZED: number;
25
+ /** How far the bottom progressive blur bleeds above the pill. */
26
+ export declare const BLUR_BLEED = 44;
27
+ /** Label type size. Small by design — the icon carries the meaning. */
28
+ export declare const LABEL_FONT_SIZE = 9.5;
29
+ /**
30
+ * Slide spring: interruptible by design — rapid tab-hopping retargets with
31
+ * preserved velocity. Slight under-damping gives the pill a tiny settle, safe
32
+ * here because it's transform-only (no layout involved).
33
+ */
34
+ export declare const SLIDE_SPRING: {
35
+ duration: number;
36
+ dampingRatio: number;
37
+ };
38
+ /**
39
+ * Resolve the bar's five colors from Bloom's theme tokens, with an optional
40
+ * partial override on top.
41
+ *
42
+ * Upstream hardcoded a dark palette (`#FFFFFF` / `rgba(10,10,12,0.55)` / …),
43
+ * which would ignore the active preset and read as a black bar in a light
44
+ * theme. Each role maps onto the token that already carries that meaning, so
45
+ * the bar follows `BloomThemeProvider` for free:
46
+ *
47
+ * - the two tints are the standard foreground pair;
48
+ * - the highlight is `contrast50`, the token meant for a subtle raised fill;
49
+ * - the glass tint is a 55%-alpha page background, so the liquid-glass
50
+ * material behind it still refracts content;
51
+ * - the solid fallback is a 94%-alpha `backgroundSecondary` — near-opaque, so
52
+ * the bar reads as a distinct surface where there is no glass to lens.
53
+ *
54
+ * Overrides are coalesced key by key (not spread) so an explicit `undefined` in
55
+ * a partial can never punch a hole in the resolved theme.
56
+ */
57
+ export declare function resolveTabBarTheme(colors: ThemeColors, overrides?: Partial<TabBarTheme>): TabBarTheme;
58
+ /**
59
+ * Hook form of {@link resolveTabBarTheme}.
60
+ *
61
+ * Memoized on the individual override VALUES rather than on the `overrides`
62
+ * object: callers pass an inline literal (`theme={{ highlight: '#…' }}`), whose
63
+ * identity changes every render. The resolved theme feeds a React context and a
64
+ * reanimated dependency array, so a fresh identity per render would re-render
65
+ * every button and rebuild the label mapper for nothing.
66
+ */
67
+ export declare function useTabBarTheme(overrides?: Partial<TabBarTheme>): TabBarTheme;
68
+ export interface TabBarSurfaceProps {
69
+ /** Resolved theme — the surface picks `glassTint` or `solidFallback`. */
70
+ theme: TabBarTheme;
71
+ /**
72
+ * Animated capsule shape (a `borderRadius` tracking the animated height).
73
+ * It rides on the surface itself rather than on a clipping parent: iOS 26
74
+ * glass renders its own native corner configuration (true squircle + rim
75
+ * lighting), which an RN mask would flatten.
76
+ *
77
+ * Typed through `AnimatedStyle` because this always receives a
78
+ * `useAnimatedStyle` result, which reanimated 4.5 returns as an opaque
79
+ * `AnimatedStyleHandle` rather than the plain style object 4.2 handed back.
80
+ * Same reason `BottomSheetProps.style` is typed this way. Every variant
81
+ * forwards it into an `Animated.View` (or an animated `GlassView`), so the
82
+ * wider type is what they genuinely accept.
83
+ */
84
+ style: StyleProp<AnimatedStyle<ViewStyle>>;
85
+ }
86
+ export interface TabBarGlyphProps {
87
+ item: TabBarItem;
88
+ /** Color for THIS layer — the bar renders one glyph per crossfade layer. */
89
+ tint: string;
90
+ /** Rendered icon size in px ({@link ICON_SIZE}). */
91
+ size: number;
92
+ }
93
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,6 @@
1
+ import type { TabBarSurfaceProps } from './shared';
2
+ export declare function TabBarSurface({ theme, style }: TabBarSurfaceProps): import("react/jsx-runtime").JSX.Element;
3
+ export declare namespace TabBarSurface {
4
+ var displayName: string;
5
+ }
6
+ //# sourceMappingURL=surface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/surface.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,kBAAkB,2CAWjE;yBAXe,aAAa"}
@@ -0,0 +1,6 @@
1
+ import type { TabBarSurfaceProps } from './shared';
2
+ export declare function TabBarSurface({ theme, style }: TabBarSurfaceProps): import("react/jsx-runtime").JSX.Element;
3
+ export declare namespace TabBarSurface {
4
+ var displayName: string;
5
+ }
6
+ //# sourceMappingURL=surface.native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface.native.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/surface.native.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAInD,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,kBAAkB,2CAyBjE;yBAzBe,aAAa"}
@@ -0,0 +1,6 @@
1
+ import type { TabBarSurfaceProps } from './shared';
2
+ export declare function TabBarSurface({ theme, style }: TabBarSurfaceProps): import("react/jsx-runtime").JSX.Element;
3
+ export declare namespace TabBarSurface {
4
+ var displayName: string;
5
+ }
6
+ //# sourceMappingURL=surface.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface.web.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/surface.web.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAkBnD,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,kBAAkB,2CAWjE;yBAXe,aAAa"}