@oxyhq/bloom 1.11.0 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/layout.mdx +27 -22
- package/lib/commonjs/fab/Fab.js +46 -37
- package/lib/commonjs/fab/Fab.js.map +1 -1
- package/lib/commonjs/fab/Fab.web.js +21 -8
- package/lib/commonjs/fab/Fab.web.js.map +1 -1
- package/lib/commonjs/layout/bottom-edge.js +63 -44
- package/lib/commonjs/layout/bottom-edge.js.map +1 -1
- package/lib/commonjs/layout/index.js +4 -4
- package/lib/commonjs/tab-bar/TabBarBase.js +6 -6
- package/lib/commonjs/tab-bar/TabBarBase.js.map +1 -1
- package/lib/module/fab/Fab.js +47 -38
- package/lib/module/fab/Fab.js.map +1 -1
- package/lib/module/fab/Fab.web.js +22 -9
- package/lib/module/fab/Fab.web.js.map +1 -1
- package/lib/module/layout/bottom-edge.js +62 -43
- package/lib/module/layout/bottom-edge.js.map +1 -1
- package/lib/module/layout/index.js +1 -1
- package/lib/module/layout/index.js.map +1 -1
- package/lib/module/tab-bar/TabBarBase.js +6 -6
- package/lib/module/tab-bar/TabBarBase.js.map +1 -1
- package/lib/typescript/commonjs/fab/Fab.d.ts.map +1 -1
- package/lib/typescript/commonjs/fab/Fab.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/layout/bottom-edge.d.ts +42 -28
- package/lib/typescript/commonjs/layout/bottom-edge.d.ts.map +1 -1
- package/lib/typescript/commonjs/layout/index.d.ts +1 -1
- package/lib/typescript/commonjs/tab-bar/TabBarBase.d.ts.map +1 -1
- package/lib/typescript/module/fab/Fab.d.ts.map +1 -1
- package/lib/typescript/module/fab/Fab.web.d.ts.map +1 -1
- package/lib/typescript/module/layout/bottom-edge.d.ts +42 -28
- package/lib/typescript/module/layout/bottom-edge.d.ts.map +1 -1
- package/lib/typescript/module/layout/index.d.ts +1 -1
- package/lib/typescript/module/tab-bar/TabBarBase.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/fab/Fab.tsx +47 -32
- package/src/fab/Fab.web.tsx +23 -9
- package/src/layout/bottom-edge.tsx +67 -48
- package/src/layout/index.ts +1 -1
- package/src/tab-bar/TabBarBase.tsx +6 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useContext","useEffect","useId","useState","useSyncExternalStore","jsx","_jsx","createBottomEdgeStore","claims","Map","listeners","Set","reserved","
|
|
1
|
+
{"version":3,"names":["createContext","useContext","useEffect","useId","useState","useSyncExternalStore","jsx","_jsx","createBottomEdgeStore","claims","Map","listeners","Set","reserved","collapsed","recompute","nextReserved","nextCollapsed","claim","values","listener","subscribe","onChange","add","delete","getReserved","getCollapsed","id","existing","get","set","release","BottomEdgeContext","BottomEdgeProvider","children","store","Provider","value","displayName","NO_SUBSCRIPTION","NO_INSET","NO_COLLAPSE","useBottomEdgeInset","useBottomEdgeCollapsed","useClaimBottomEdge"],"sourceRoot":"../../../src","sources":["layout/bottom-edge.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
* parked there". A surface that floats at the bottom needs both.
|
|
8
8
|
*/
|
|
9
9
|
export { EDGE_GAP, windowEdgeGap } from "./edge.js";
|
|
10
|
-
export { BottomEdgeProvider, useBottomEdgeInset,
|
|
10
|
+
export { BottomEdgeProvider, useBottomEdgeInset, useBottomEdgeCollapsed, useClaimBottomEdge } from "./bottom-edge.js";
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EDGE_GAP","windowEdgeGap","BottomEdgeProvider","useBottomEdgeInset","
|
|
1
|
+
{"version":3,"names":["EDGE_GAP","windowEdgeGap","BottomEdgeProvider","useBottomEdgeInset","useBottomEdgeCollapsed","useClaimBottomEdge"],"sourceRoot":"../../../src","sources":["layout/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,QAAQ,EAAEC,aAAa,QAAQ,WAAQ;AAChD,SACEC,kBAAkB,EAClBC,kBAAkB,EAClBC,sBAAsB,EACtBC,kBAAkB,QACb,kBAAe","ignoreList":[]}
|
|
@@ -321,12 +321,12 @@ function TabBarBody({
|
|
|
321
321
|
// from the same geometry, so a consumer reading either can never disagree with
|
|
322
322
|
// where the bar actually sits.
|
|
323
323
|
//
|
|
324
|
-
// RESERVED stays the EXPANDED height: the bar re-expands
|
|
325
|
-
// scrolls back up, so anything that permanently reserves
|
|
326
|
-
// bottom padding, a toast) must keep room for the full pill or
|
|
327
|
-
// on every scroll.
|
|
328
|
-
//
|
|
329
|
-
useClaimBottomEdge(bottomOffset + EXPANDED_HEIGHT,
|
|
324
|
+
// RESERVED stays the EXPANDED height even while minimized: the bar re-expands
|
|
325
|
+
// the moment the user scrolls back up, so anything that permanently reserves
|
|
326
|
+
// space (a list's bottom padding, a toast) must keep room for the full pill or
|
|
327
|
+
// it would jitter on every scroll. The collapse travels as its own STATE — see
|
|
328
|
+
// `layout/bottom-edge` for why it is a boolean and not the live height.
|
|
329
|
+
useClaimBottomEdge(bottomOffset + EXPANDED_HEIGHT, isMinimized);
|
|
330
330
|
|
|
331
331
|
// How centring and the animated inset compose: centring is STATIC and belongs
|
|
332
332
|
// to the wrap, the inset stays ANIMATED on the pill inside it. The wrap is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Children","createContext","useCallback","useContext","useEffect","useMemo","useState","Pressable","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","Animated","Extrapolation","interpolate","interpolateColor","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","useSafeAreaInsets","useHaptics","useClaimBottomEdge","windowEdgeGap","setMinimized","useMinimizeState","BAR_MARGIN","BLUR_BLEED","EXPANDED_HEIGHT","HIGHLIGHT_EXPANDED","HIGHLIGHT_FADE","HIGHLIGHT_MINIMIZED","ICON_SIZE","ITEM_GAP","ITEM_PAD_V","LABEL_FONT_SIZE","LONG_PRESS_MIN_DURATION","MINIMIZED_HEIGHT","MINIMIZED_INSET","ROW_PAD_H","SLIDE_SPRING","useTabBarTheme","jsx","_jsx","jsxs","_jsxs","BarContext","TabBarBody","Surface","Blur","children","activeIndex","onIndexChange","onIndexLongPress","theme","themeOverrides","haptics","blur","maxWidth","style","viewProps","insets","width","windowWidth","minimized","progress","tabCount","Math","max","count","hasSelection","undefined","Number","isInteger","slideIndex","highlightOpacity","isDragging","lastTicked","impact","barOuterWidth","min","tick","selectIndex","index","longPressIndex","hasLongPress","value","gesture","indexAtX","x","minimizedValue","sideInset","CLAMP","barWidth","itemWidth","raw","pan","Pan","activeOffsetX","failOffsetY","onStart","event","round","onUpdate","rounded","onFinalize","tap","Tap","maxDistance","maxDuration","onEnd","success","Race","longPress","LongPress","minDuration","barStyle","height","inset","marginLeft","marginRight","shapeStyle","borderRadius","highlightStyle","barHeight","top","opacity","transform","translateX","bottomOffset","bottom","isMinimized","setIsMinimized","target","previous","constrainedWrapStyle","alignSelf","barContext","pointerEvents","styles","root","direction","intensity","position","left","right","barWrap","marginBottom","highlight","backgroundColor","accessibilityRole","itemRow","Provider","TabBarButtonBody","Glyph","item","isFocused","onPress","pressableProps","bar","standaloneTheme","focused","activeGlyphStyle","proximity","abs","labelStyle","color","activeTint","inactiveTint","boxStyle","accessibilityLabel","label","state","button","itemBox","tint","size","active","absoluteFill","glyphLayer","Text","numberOfLines","createTabBar","TabBar","props","displayName","createTabBarButton","TabBarButton","create","marginHorizontal","borderCurve","flex","flexDirection","alignItems","paddingHorizontal","justifyContent","paddingTop","overflow","fontSize","fontWeight","marginTop"],"sourceRoot":"../../../src","sources":["tab-bar/TabBarBase.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Children","createContext","useCallback","useContext","useEffect","useMemo","useState","Pressable","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","Animated","Extrapolation","interpolate","interpolateColor","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","useSafeAreaInsets","useHaptics","useClaimBottomEdge","windowEdgeGap","setMinimized","useMinimizeState","BAR_MARGIN","BLUR_BLEED","EXPANDED_HEIGHT","HIGHLIGHT_EXPANDED","HIGHLIGHT_FADE","HIGHLIGHT_MINIMIZED","ICON_SIZE","ITEM_GAP","ITEM_PAD_V","LABEL_FONT_SIZE","LONG_PRESS_MIN_DURATION","MINIMIZED_HEIGHT","MINIMIZED_INSET","ROW_PAD_H","SLIDE_SPRING","useTabBarTheme","jsx","_jsx","jsxs","_jsxs","BarContext","TabBarBody","Surface","Blur","children","activeIndex","onIndexChange","onIndexLongPress","theme","themeOverrides","haptics","blur","maxWidth","style","viewProps","insets","width","windowWidth","minimized","progress","tabCount","Math","max","count","hasSelection","undefined","Number","isInteger","slideIndex","highlightOpacity","isDragging","lastTicked","impact","barOuterWidth","min","tick","selectIndex","index","longPressIndex","hasLongPress","value","gesture","indexAtX","x","minimizedValue","sideInset","CLAMP","barWidth","itemWidth","raw","pan","Pan","activeOffsetX","failOffsetY","onStart","event","round","onUpdate","rounded","onFinalize","tap","Tap","maxDistance","maxDuration","onEnd","success","Race","longPress","LongPress","minDuration","barStyle","height","inset","marginLeft","marginRight","shapeStyle","borderRadius","highlightStyle","barHeight","top","opacity","transform","translateX","bottomOffset","bottom","isMinimized","setIsMinimized","target","previous","constrainedWrapStyle","alignSelf","barContext","pointerEvents","styles","root","direction","intensity","position","left","right","barWrap","marginBottom","highlight","backgroundColor","accessibilityRole","itemRow","Provider","TabBarButtonBody","Glyph","item","isFocused","onPress","pressableProps","bar","standaloneTheme","focused","activeGlyphStyle","proximity","abs","labelStyle","color","activeTint","inactiveTint","boxStyle","accessibilityLabel","label","state","button","itemBox","tint","size","active","absoluteFill","glyphLayer","Text","numberOfLines","createTabBar","TabBar","props","displayName","createTabBarButton","TabBarButton","create","marginHorizontal","borderCurve","flex","flexDirection","alignItems","paddingHorizontal","justifyContent","paddingTop","overflow","fontSize","fontWeight","marginTop"],"sourceRoot":"../../../src","sources":["tab-bar/TabBarBase.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SACEA,QAAQ,EACRC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,QAAQ,QAEH,OAAO;AACd,SAASC,SAAS,EAAEC,UAAU,EAAEC,mBAAmB,EAAEC,IAAI,QAAwB,cAAc;AAC/F,SAASC,OAAO,EAAEC,eAAe,QAAQ,8BAA8B;AACvE,OAAOC,QAAQ,IACbC,aAAa,EACbC,WAAW,EACXC,gBAAgB,EAChBC,OAAO,EACPC,mBAAmB,EACnBC,gBAAgB,EAChBC,cAAc,EACdC,UAAU,EACVC,UAAU,QAEL,yBAAyB;AAChC,SAASC,iBAAiB,QAAQ,gCAAgC;AAElE,SAASC,UAAU,QAAQ,yBAAsB;AACjD,SAASC,kBAAkB,QAAQ,0BAAuB;AAC1D,SAASC,aAAa,QAAQ,mBAAgB;AAE9C,SAASC,YAAY,EAAEC,gBAAgB,QAAQ,cAAW;AAC1D,SACEC,UAAU,EACVC,UAAU,EACVC,eAAe,EACfC,kBAAkB,EAClBC,cAAc,EACdC,mBAAmB,EACnBC,SAAS,EACTC,QAAQ,EACRC,UAAU,EACVC,eAAe,EACfC,uBAAuB,EACvBC,gBAAgB,EAChBC,eAAe,EACfC,SAAS,EACTC,YAAY,EACZC,cAAc,QAGT,aAAU;;AAGjB;AACA;AACA;AACA;AACA;AAJA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAuBA,MAAMC,UAAU,gBAAGhD,aAAa,CAAyB,IAAI,CAAC;AAO9D;AACA;AACA;AACA;AACA,SAASiD,UAAUA,CAAC;EAClBC,OAAO;EACPC,IAAI;EACJC,QAAQ;EACRC,WAAW;EACXC,aAAa;EACbC,gBAAgB;EAChBC,KAAK,EAAEC,cAAc;EACrBC,OAAO,GAAG,IAAI;EACdC,IAAI,GAAG,IAAI;EACXC,QAAQ;EACRC,KAAK;EACL,GAAGC;AACY,CAAC,EAAE;EAClB,MAAMC,MAAM,GAAGzC,iBAAiB,CAAC,CAAC;EAClC,MAAM;IAAE0C,KAAK,EAAEC;EAAY,CAAC,GAAGzD,mBAAmB,CAAC,CAAC;EACpD,MAAM0D,SAAS,GAAGvC,gBAAgB,CAAC,CAAC;EACpC,MAAMwC,QAAQ,GAAGD,SAAS,CAACC,QAAQ;EACnC,MAAMC,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAACvE,QAAQ,CAACwE,KAAK,CAACnB,QAAQ,CAAC,EAAE,CAAC,CAAC;;EAEtD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMoB,YAAY,GAChBnB,WAAW,KAAKoB,SAAS,IACxBC,MAAM,CAACC,SAAS,CAACtB,WAAW,CAAC,IAAIA,WAAW,IAAI,CAAC,IAAIA,WAAW,GAAGe,QAAS;EAE/E,MAAMQ,UAAU,GAAGzD,cAAc,CAAC,CAAC,CAAC;EACpC;EACA;EACA;EACA,MAAM0D,gBAAgB,GAAG1D,cAAc,CAACqD,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;EAC7D,MAAMM,UAAU,GAAG3D,cAAc,CAAC,KAAK,CAAC;EACxC,MAAM4D,UAAU,GAAG5D,cAAc,CAAC,CAAC,CAAC,CAAC;EACrC,MAAMqC,KAAK,GAAGb,cAAc,CAACc,cAAc,CAAC;EAC5C,MAAMuB,MAAM,GAAGzD,UAAU,CAAC,CAAC;;EAE3B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM0D,aAAa,GACjBrB,QAAQ,KAAKa,SAAS,GAClBR,WAAW,GAAGrC,UAAU,GAAG,CAAC,GAC5ByC,IAAI,CAACa,GAAG,CAACjB,WAAW,GAAGrC,UAAU,GAAG,CAAC,EAAEgC,QAAQ,CAAC;;EAEtD;EACA;EACA;EACA;EACA,MAAMuB,IAAI,GAAGlF,WAAW,CAAC,MAAM;IAC7B,IAAIyD,OAAO,EAAEsB,MAAM,CAAC,OAAO,CAAC;EAC9B,CAAC,EAAE,CAACtB,OAAO,EAAEsB,MAAM,CAAC,CAAC;;EAErB;EACA;EACA,MAAMI,WAAW,GAAGnF,WAAW,CAAEoF,KAAa,IAAK/B,aAAa,GAAG+B,KAAK,CAAC,EAAE,CAAC/B,aAAa,CAAC,CAAC;;EAE3F;EACA;EACA,MAAMgC,cAAc,GAAGrF,WAAW,CAC/BoF,KAAa,IAAK9B,gBAAgB,GAAG8B,KAAK,CAAC,EAC5C,CAAC9B,gBAAgB,CACnB,CAAC;EACD,MAAMgC,YAAY,GAAGhC,gBAAgB,KAAKkB,SAAS;;EAEnD;EACA;EACA;EACA;EACA;EACA;EACAtE,SAAS,CAAC,MAAM;IACd,IAAIkD,WAAW,KAAKoB,SAAS,EAAE;IAC/B;IACA,IAAIK,UAAU,CAACU,KAAK,EAAE;IACtB,IAAI,CAAChB,YAAY,EAAE;MACjB;MACA;MACA;MACA;MACA;MACA;MACAK,gBAAgB,CAACW,KAAK,GAAGnE,UAAU,CAAC,CAAC,EAAEW,cAAc,CAAC;MACtD;IACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA4C,UAAU,CAACY,KAAK,GACdX,gBAAgB,CAACW,KAAK,KAAK,CAAC,GAAGnC,WAAW,GAAGjC,UAAU,CAACiC,WAAW,EAAEX,YAAY,CAAC;IACpFmC,gBAAgB,CAACW,KAAK,GAAGnE,UAAU,CAAC,CAAC,EAAEW,cAAc,CAAC;EACxD,CAAC,EAAE,CAACqB,WAAW,EAAEmB,YAAY,EAAEI,UAAU,EAAEC,gBAAgB,EAAEC,UAAU,CAAC,CAAC;;EAEzE;EACA;EACA;EACA;EACA;EACA,MAAMW,OAAO,GAAGrF,OAAO,CAAC,MAAM;IAC5B,MAAMsF,QAAQ,GAAGA,CAACC,CAAS,EAAEC,cAAsB,KAAK;MACtD,SAAS;;MACT,MAAMC,SAAS,GAAG/E,WAAW,CAC3B8E,cAAc,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAAC,CAAC,EAAEpD,eAAe,CAAC,EACpB3B,aAAa,CAACiF,KAChB,CAAC;MACD;MACA;MACA;MACA;MACA;MACA;MACA,MAAMC,QAAQ,GAAGd,aAAa,GAAGY,SAAS,GAAG,CAAC;MAC9C,MAAMG,SAAS,GAAG,CAACD,QAAQ,GAAGtD,SAAS,GAAG,CAAC,IAAI2B,QAAQ;MACvD,MAAM6B,GAAG,GAAG,CAACN,CAAC,GAAGlD,SAAS,IAAIuD,SAAS,GAAG,GAAG;MAC7C,OAAO3B,IAAI,CAACa,GAAG,CAACb,IAAI,CAACC,GAAG,CAAC2B,GAAG,EAAE,CAAC,CAAC,EAAE7B,QAAQ,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,MAAM8B,GAAG,GAAGxF,OAAO,CAACyF,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,CAAEC,KAAK,IAAK;MAClBzB,UAAU,CAACU,KAAK,GAAG,IAAI;MACvB;MACA;MACA;MACA;MACA;MACA,IAAIX,gBAAgB,CAACW,KAAK,KAAK,CAAC,EAAE;QAChCZ,UAAU,CAACY,KAAK,GAAGE,QAAQ,CAACa,KAAK,CAACZ,CAAC,EAAExB,QAAQ,CAACqB,KAAK,CAAC;MACtD;MACAX,gBAAgB,CAACW,KAAK,GAAGnE,UAAU,CAAC,CAAC,EAAEW,cAAc,CAAC;MACtD+C,UAAU,CAACS,KAAK,GAAGnB,IAAI,CAACmC,KAAK,CAAC5B,UAAU,CAACY,KAAK,CAAC;MAC/C;MACA9D,YAAY,CAACwC,SAAS,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC,CACDuC,QAAQ,CAAEF,KAAK,IAAK;MACnB,MAAMlB,KAAK,GAAGK,QAAQ,CAACa,KAAK,CAACZ,CAAC,EAAExB,QAAQ,CAACqB,KAAK,CAAC;MAC/CZ,UAAU,CAACY,KAAK,GAAGH,KAAK;MAExB,MAAMqB,OAAO,GAAGrC,IAAI,CAACmC,KAAK,CAACnB,KAAK,CAAC;MACjC,IAAIqB,OAAO,KAAK3B,UAAU,CAACS,KAAK,EAAE;QAChCT,UAAU,CAACS,KAAK,GAAGkB,OAAO;QAC1B1F,OAAO,CAACmE,IAAI,CAAC,CAAC,CAAC;MACjB;IACF,CAAC,CAAC,CACDwB,UAAU,CAAC,MAAM;MAChB;MACA;MACA,IAAI,CAAC7B,UAAU,CAACU,KAAK,EAAE;QACrB;MACF;MACA,MAAMkB,OAAO,GAAGrC,IAAI,CAACmC,KAAK,CAAC5B,UAAU,CAACY,KAAK,CAAC;MAC5CZ,UAAU,CAACY,KAAK,GAAGpE,UAAU,CAACsF,OAAO,EAAEhE,YAAY,CAAC;MACpD1B,OAAO,CAACoE,WAAW,CAAC,CAACsB,OAAO,CAAC;MAC7B5B,UAAU,CAACU,KAAK,GAAG,KAAK;IAC1B,CAAC,CAAC;IAEJ,MAAMoB,GAAG,GAAGlG,OAAO,CAACmG,GAAG,CAAC;IACtB;IACA;IAAA,CACCC,WAAW,CAAC,EAAE,CAAC,CACfC,WAAW,CAAC,GAAG,CAAC,CAChBC,KAAK,CAAC,CAACT,KAAK,EAAEU,OAAO,KAAK;MACzB,IAAI,CAACA,OAAO,EAAE;QACZ;MACF;MACA,MAAM5B,KAAK,GAAGhB,IAAI,CAACmC,KAAK,CAACd,QAAQ,CAACa,KAAK,CAACZ,CAAC,EAAExB,QAAQ,CAACqB,KAAK,CAAC,CAAC;MAC3D;MACA;MACAZ,UAAU,CAACY,KAAK,GACdX,gBAAgB,CAACW,KAAK,KAAK,CAAC,GAAGH,KAAK,GAAGjE,UAAU,CAACiE,KAAK,EAAE3C,YAAY,CAAC;MACxEmC,gBAAgB,CAACW,KAAK,GAAGnE,UAAU,CAAC,CAAC,EAAEW,cAAc,CAAC;MACtDN,YAAY,CAACwC,SAAS,EAAE,CAAC,CAAC;MAC1BlD,OAAO,CAACoE,WAAW,CAAC,CAACC,KAAK,CAAC;IAC7B,CAAC,CAAC;IAEJ,IAAI,CAACE,YAAY,EAAE,OAAO7E,OAAO,CAACwG,IAAI,CAAChB,GAAG,EAAEU,GAAG,CAAC;;IAEhD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMO,SAAS,GAAGzG,OAAO,CAAC0G,SAAS,CAAC,CAAC,CAClCC,WAAW,CAAC/E,uBAAuB,CAAC,CACpCgE,OAAO,CAAEC,KAAK,IAAK;MAClBvF,OAAO,CAACsE,cAAc,CAAC,CAACjB,IAAI,CAACmC,KAAK,CAACd,QAAQ,CAACa,KAAK,CAACZ,CAAC,EAAExB,QAAQ,CAACqB,KAAK,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC;IAEJ,OAAO9E,OAAO,CAACwG,IAAI,CAAChB,GAAG,EAAEU,GAAG,EAAEO,SAAS,CAAC;EAC1C,CAAC,EAAE,CACDlC,aAAa,EACbb,QAAQ,EACRgB,WAAW,EACXG,YAAY,EACZD,cAAc,EACdH,IAAI,EACJL,UAAU,EACVC,UAAU,EACVH,UAAU,EACVC,gBAAgB,EAChBX,SAAS,EACTC,QAAQ,CACT,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMmD,QAAQ,GAAGpG,gBAAgB,CAAC,MAAM;IACtC,MAAMqG,MAAM,GAAGzG,WAAW,CACxBqD,QAAQ,CAACqB,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAAC1D,eAAe,EAAES,gBAAgB,CAAC,EACnC1B,aAAa,CAACiF,KAChB,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM0B,KAAK,GAAG1G,WAAW,CAACqD,QAAQ,CAACqB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEhD,eAAe,CAAC,EAAE3B,aAAa,CAACiF,KAAK,CAAC;IAC5F,OAAO;MAAEyB,MAAM;MAAEE,UAAU,EAAED,KAAK;MAAEE,WAAW,EAAEF;IAAM,CAAC;EAC1D,CAAC,EAAE,CAACrD,QAAQ,CAAC,CAAC;;EAEd;EACA;EACA;EACA,MAAMwD,UAAU,GAAGzG,gBAAgB,CAAC,MAAM;IACxC,MAAMqG,MAAM,GAAGzG,WAAW,CACxBqD,QAAQ,CAACqB,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAAC1D,eAAe,EAAES,gBAAgB,CAAC,EACnC1B,aAAa,CAACiF,KAChB,CAAC;IACD,OAAO;MAAE8B,YAAY,EAAEL,MAAM,GAAG;IAAE,CAAC;EACrC,CAAC,EAAE,CAACpD,QAAQ,CAAC,CAAC;;EAEd;EACA;EACA,MAAM0D,cAAc,GAAG3G,gBAAgB,CAAC,MAAM;IAC5C,MAAM4G,SAAS,GAAGhH,WAAW,CAC3BqD,QAAQ,CAACqB,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAAC1D,eAAe,EAAES,gBAAgB,CAAC,EACnC1B,aAAa,CAACiF,KAChB,CAAC;IACD,MAAMyB,MAAM,GAAGzG,WAAW,CACxBqD,QAAQ,CAACqB,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAACzD,kBAAkB,EAAEE,mBAAmB,CAAC,EACzCpB,aAAa,CAACiF,KAChB,CAAC;IACD,MAAMD,SAAS,GAAG/E,WAAW,CAC3BqD,QAAQ,CAACqB,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAAC,CAAC,EAAEhD,eAAe,CAAC,EACpB3B,aAAa,CAACiF,KAChB,CAAC;IACD;IACA;IACA,MAAMC,QAAQ,GAAGd,aAAa,GAAGY,SAAS,GAAG,CAAC;IAC9C,MAAMG,SAAS,GAAG,CAACD,QAAQ,GAAGtD,SAAS,GAAG,CAAC,IAAI2B,QAAQ;IACvD,OAAO;MACLmD,MAAM;MACNvD,KAAK,EAAEgC,SAAS;MAChB4B,YAAY,EAAEL,MAAM,GAAG,CAAC;MACxBQ,GAAG,EAAE,CAACD,SAAS,GAAGP,MAAM,IAAI,CAAC;MAC7B;MACA;MACA;MACA;MACAS,OAAO,EAAEnD,gBAAgB,CAACW,KAAK;MAC/ByC,SAAS,EAAE,CAAC;QAAEC,UAAU,EAAEzF,SAAS,GAAGuD,SAAS,GAAGpB,UAAU,CAACY;MAAM,CAAC;IACtE,CAAC;EACH,CAAC,EAAE,CAACrB,QAAQ,EAAES,UAAU,EAAEC,gBAAgB,EAAEI,aAAa,EAAEb,QAAQ,CAAC,CAAC;;EAErE;EACA;EACA,MAAM+D,YAAY,GAAG1G,aAAa,CAACsC,MAAM,CAACqE,MAAM,CAAC;;EAEjD;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGjI,QAAQ,CAAC,KAAK,CAAC;EACrDY,mBAAmB,CACjB,MAAMiD,SAAS,CAACqE,MAAM,CAAC/C,KAAK,EAC5B,CAAC+C,MAAM,EAAEC,QAAQ,KAAK;IACpB,IAAID,MAAM,KAAKC,QAAQ,EAAExH,OAAO,CAACsH,cAAc,CAAC,CAACC,MAAM,KAAK,CAAC,CAAC;EAChE,CAAC,EACD,CAACrE,SAAS,CACZ,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA1C,kBAAkB,CAAC2G,YAAY,GAAGrG,eAAe,EAAEuG,WAAW,CAAC;;EAE/D;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMI,oBAAsC,GAC1C7E,QAAQ,KAAKa,SAAS,GAAG,IAAI,GAAG;IAAET,KAAK,EAAEiB,aAAa;IAAEyD,SAAS,EAAE;EAAS,CAAC;EAC/E,MAAMC,UAAU,GAAGvI,OAAO,CACxB,OAAO;IAAEwE,UAAU;IAAEC,gBAAgB;IAAEC,UAAU;IAAEtB,KAAK;IAAEH,WAAW;IAAE+B;EAAY,CAAC,CAAC,EACrF,CAACR,UAAU,EAAEC,gBAAgB,EAAEC,UAAU,EAAEtB,KAAK,EAAEH,WAAW,EAAE+B,WAAW,CAC5E,CAAC;EAED,oBACErC,KAAA,CAACtC,IAAI;IAAA,GAAKqD,SAAS;IAAE8E,aAAa,EAAC,UAAU;IAAC/E,KAAK,EAAE,CAACgF,MAAM,CAACC,IAAI,EAAEjF,KAAK,CAAE;IAAAT,QAAA,GASvEO,IAAI,KAAK,KAAK,iBACbd,IAAA,CAACM,IAAI;MACH4F,SAAS,EAAC,QAAQ;MAClBC,SAAS,EAAE,OAAOrF,IAAI,KAAK,QAAQ,GAAGA,IAAI,CAACqF,SAAS,GAAGvE,SAAU;MACjEZ,KAAK,EAAE;QACLoF,QAAQ,EAAE,UAAU;QACpBC,IAAI,EAAE,CAAC;QACPC,KAAK,EAAE,CAAC;QACRf,MAAM,EAAE,CAAC;QACTb,MAAM,EAAEY,YAAY,GAAGrG,eAAe,GAAGD;MAC3C;IAAE,CACH,CACF,eACDgB,IAAA,CAACpC,IAAI;MAACmI,aAAa,EAAC,UAAU;MAAC/E,KAAK,EAAE,CAACgF,MAAM,CAACO,OAAO,EAAE;QAAEC,YAAY,EAAElB;MAAa,CAAC,EAAEM,oBAAoB,CAAE;MAAArF,QAAA,eAC3GP,IAAA,CAAClC,eAAe;QAAC8E,OAAO,EAAEA,OAAQ;QAAArC,QAAA,eAChCL,KAAA,CAACnC,QAAQ,CAACH,IAAI;UAACoD,KAAK,EAAEyD,QAAS;UAAAlE,QAAA,gBAC7BP,IAAA,CAACK,OAAO;YAACM,KAAK,EAAEA,KAAM;YAACK,KAAK,EAAE8D;UAAW,CAAE,CAAC,eAC5C9E,IAAA,CAACjC,QAAQ,CAACH,IAAI;YACZoD,KAAK,EAAE,CAACgF,MAAM,CAACS,SAAS,EAAE;cAAEC,eAAe,EAAE/F,KAAK,CAAC8F;YAAU,CAAC,EAAEzB,cAAc;UAAE,CACjF,CAAC,eACFhF,IAAA,CAACpC,IAAI;YAAC+I,iBAAiB,EAAC,SAAS;YAAC3F,KAAK,EAAEgF,MAAM,CAACY,OAAQ;YAAArG,QAAA,eACtDP,IAAA,CAACG,UAAU,CAAC0G,QAAQ;cAAClE,KAAK,EAAEmD,UAAW;cAAAvF,QAAA,EAAEA;YAAQ,CAAsB;UAAC,CACpE,CAAC;QAAA,CACM;MAAC,CACD;IAAC,CACd,CAAC;EAAA,CACH,CAAC;AAEX;AAMA;AACA,SAASuG,gBAAgBA,CAAC;EACxBC,KAAK;EACLC,IAAI;EACJxE,KAAK;EACLyE,SAAS;EACTC,OAAO;EACPlG,KAAK;EACL,GAAGmG;AACkB,CAAC,EAAE;EACxB,MAAM9F,SAAS,GAAGvC,gBAAgB,CAAC,CAAC;EACpC,MAAMwC,QAAQ,GAAGD,SAAS,CAACC,QAAQ;EACnC,MAAM8F,GAAG,GAAG/J,UAAU,CAAC8C,UAAU,CAAC;EAClC;EACA,MAAMkH,eAAe,GAAGvH,cAAc,CAAC,CAAC;EACxC,MAAMa,KAAK,GAAGyG,GAAG,EAAEzG,KAAK,IAAI0G,eAAe;EAC3C,MAAMtF,UAAU,GAAGqF,GAAG,EAAErF,UAAU;EAClC,MAAMC,gBAAgB,GAAGoF,GAAG,EAAEpF,gBAAgB;EAC9C;EACA;EACA,MAAMsF,OAAO,GAAGL,SAAS,IAAKG,GAAG,EAAE5G,WAAW,KAAKgC,KAAM;;EAEzD;EACA;EACA;EACA;EACA;EACAlF,SAAS,CAAC,MAAM;IACd,IAAI2J,SAAS,KAAKrF,SAAS,IAAI,CAACqF,SAAS,IAAI,CAACG,GAAG,EAAE;IACnD,IAAIA,GAAG,CAACnF,UAAU,CAACU,KAAK,EAAE;IAC1ByE,GAAG,CAACrF,UAAU,CAACY,KAAK,GAAGpE,UAAU,CAACiE,KAAK,EAAE3C,YAAY,CAAC;EACxD,CAAC,EAAE,CAACoH,SAAS,EAAEzE,KAAK,EAAE4E,GAAG,CAAC,CAAC;;EAE3B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMG,gBAAgB,GAAGlJ,gBAAgB,CAAC,MAAM;IAC9C,IAAI,CAAC0D,UAAU,IAAI,CAACC,gBAAgB,EAAE,OAAO;MAAEmD,OAAO,EAAEmC,OAAO,GAAG,CAAC,GAAG;IAAE,CAAC;IACzE,MAAME,SAAS,GAAG,CAAC,GAAGhG,IAAI,CAACa,GAAG,CAACb,IAAI,CAACiG,GAAG,CAAC1F,UAAU,CAACY,KAAK,GAAGH,KAAK,CAAC,EAAE,CAAC,CAAC;IACrE,OAAO;MAAE2C,OAAO,EAAEnD,gBAAgB,CAACW,KAAK,GAAG6E;IAAU,CAAC;EACxD,CAAC,EAAE,CAACzF,UAAU,EAAEC,gBAAgB,EAAEQ,KAAK,EAAE8E,OAAO,CAAC,CAAC;EAElD,MAAMI,UAAU,GAAGrJ,gBAAgB,CAAC,MAAM;IACxC,MAAM8G,OAAO,GAAGlH,WAAW,CAACqD,QAAQ,CAACqB,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE3E,aAAa,CAACiF,KAAK,CAAC;IAClF,IAAI,CAAClB,UAAU,IAAI,CAACC,gBAAgB,EAAE;MACpC,OAAO;QAAEmD,OAAO;QAAEwC,KAAK,EAAEL,OAAO,GAAG3G,KAAK,CAACiH,UAAU,GAAGjH,KAAK,CAACkH;MAAa,CAAC;IAC5E;IACA;IACA;IACA,MAAML,SAAS,GAAG,CAAC,GAAGhG,IAAI,CAACa,GAAG,CAACb,IAAI,CAACiG,GAAG,CAAC1F,UAAU,CAACY,KAAK,GAAGH,KAAK,CAAC,EAAE,CAAC,CAAC;IACrE,OAAO;MACL2C,OAAO;MACPwC,KAAK,EAAEzJ,gBAAgB,CACrB8D,gBAAgB,CAACW,KAAK,GAAG6E,SAAS,EAClC,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAAC7G,KAAK,CAACkH,YAAY,EAAElH,KAAK,CAACiH,UAAU,CACvC;IACF,CAAC;EACH,CAAC,EAAE,CAACtG,QAAQ,EAAES,UAAU,EAAEC,gBAAgB,EAAEQ,KAAK,EAAE8E,OAAO,EAAE3G,KAAK,CAAC,CAAC;;EAEnE;EACA;EACA;EACA,MAAMmH,QAAQ,GAAGzJ,gBAAgB,CAC/B,OAAO;IACLqG,MAAM,EAAEzG,WAAW,CACjBqD,QAAQ,CAACqB,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAACzD,kBAAkB,EAAEE,mBAAmB,CAAC,EACzCpB,aAAa,CAACiF,KAChB;EACF,CAAC,CAAC,EACF,CAAC3B,QAAQ,CACX,CAAC;EAED,oBACEtB,IAAA,CAACvC;EACC;EACA;EAAA;IACAkJ,iBAAiB,EAAC;IAClB;IACA;IACA;IAAA;IACA,iBAAeW,OAAQ;IACvBS,kBAAkB,EAAEf,IAAI,CAACgB,KAAM;IAAA,GAC3Bb,cAAc;IAClBD,OAAO,EAAGxD,KAAK,IAAK;MAClB;MACA;MACA,IAAI0D,GAAG,EAAE;QACP;QACA;QACAA,GAAG,CAACrF,UAAU,CAACY,KAAK,GAClByE,GAAG,CAACpF,gBAAgB,CAACW,KAAK,KAAK,CAAC,GAAGH,KAAK,GAAGjE,UAAU,CAACiE,KAAK,EAAE3C,YAAY,CAAC;QAC5EuH,GAAG,CAACpF,gBAAgB,CAACW,KAAK,GAAGnE,UAAU,CAAC,CAAC,EAAEW,cAAc,CAAC;MAC5D;MACAN,YAAY,CAACwC,SAAS,EAAE,CAAC,CAAC;MAC1B;MACA;MACA;MACA,IAAI4F,SAAS,KAAKrF,SAAS,EAAEwF,GAAG,EAAE7E,WAAW,CAACC,KAAK,CAAC;MACpD0E,OAAO,GAAGxD,KAAK,CAAC;IAClB;IACA;IACA;IACA;IAAA;IACA1C,KAAK,EACH,OAAOA,KAAK,KAAK,UAAU,GACtBiH,KAAK,IAAK,CAACjC,MAAM,CAACkC,MAAM,EAAElH,KAAK,CAACiH,KAAK,CAAC,CAAC,GACxC,CAACjC,MAAM,CAACkC,MAAM,EAAElH,KAAK,CAC1B;IAAAT,QAAA,eAEDL,KAAA,CAACnC,QAAQ,CAACH,IAAI;MAACoD,KAAK,EAAE,CAACgF,MAAM,CAACmC,OAAO,EAAEL,QAAQ,CAAE;MAAAvH,QAAA,gBAI/CL,KAAA,CAACtC,IAAI;QAAA2C,QAAA,gBACHP,IAAA,CAAC+G,KAAK;UAACC,IAAI,EAAEA,IAAK;UAACoB,IAAI,EAAEzH,KAAK,CAACkH,YAAa;UAACQ,IAAI,EAAEhJ,SAAU;UAACiJ,MAAM,EAAE;QAAM,CAAE,CAAC,eAC/EtI,IAAA,CAACjC,QAAQ,CAACH,IAAI;UAACoD,KAAK,EAAE,CAACtD,UAAU,CAAC6K,YAAY,EAAEvC,MAAM,CAACwC,UAAU,EAAEjB,gBAAgB,CAAE;UAAAhH,QAAA,eACnFP,IAAA,CAAC+G,KAAK;YAACC,IAAI,EAAEA,IAAK;YAACoB,IAAI,EAAEzH,KAAK,CAACiH,UAAW;YAACS,IAAI,EAAEhJ,SAAU;YAACiJ,MAAM;UAAA,CAAE;QAAC,CACxD,CAAC;MAAA,CACZ,CAAC,eAEPtI,IAAA,CAACjC,QAAQ,CAAC0K,IAAI;QAACC,aAAa,EAAE,CAAE;QAAC1H,KAAK,EAAE,CAACgF,MAAM,CAACgC,KAAK,EAAEN,UAAU,CAAE;QAAAnH,QAAA,EAChEyG,IAAI,CAACgB;MAAK,CACE,CAAC;IAAA,CACH;EAAC,CACP,CAAC;AAEhB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASW,YAAYA,CAC1BtI,OAA0C,EAC1CC,IAAyC,EACzC;EACA,MAAMsI,MAAM,GAAIC,KAAkB,iBAAK7I,IAAA,CAACI,UAAU;IAAA,GAAKyI,KAAK;IAAExI,OAAO,EAAEA,OAAQ;IAACC,IAAI,EAAEA;EAAK,CAAE,CAAC;EAC9FsI,MAAM,CAACE,WAAW,GAAG,QAAQ;EAC7B,OAAOF,MAAM;AACf;;AAEA;AACA,OAAO,SAASG,kBAAkBA,CAAChC,KAAsC,EAAE;EACzE,MAAMiC,YAAY,GAAIH,KAAwB,iBAAK7I,IAAA,CAAC8G,gBAAgB;IAAA,GAAK+B,KAAK;IAAE9B,KAAK,EAAEA;EAAM,CAAE,CAAC;EAChGiC,YAAY,CAACF,WAAW,GAAG,cAAc;EACzC,OAAOE,YAAY;AACrB;AAEA,MAAMhD,MAAM,GAAGtI,UAAU,CAACuL,MAAM,CAAC;EAC/BhD,IAAI,EAAE;IACJ;IACA;IACA;IACA;IACA;IACA;IACAG,QAAQ,EAAE,UAAU;IACpBC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRf,MAAM,EAAE;EACV,CAAC;EACDgB,OAAO,EAAE;IACP2C,gBAAgB,EAAEnK;EACpB,CAAC;EACD0H,SAAS,EAAE;IACTL,QAAQ,EAAE,UAAU;IACpBC,IAAI,EAAE,CAAC;IACP8C,WAAW,EAAE;EACf,CAAC;EACDvC,OAAO,EAAE;IACPwC,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,iBAAiB,EAAE3J;EACrB,CAAC;EACDsI,MAAM,EAAE;IACNkB,IAAI,EAAE,CAAC;IACPE,UAAU,EAAE,QAAQ;IACpBE,cAAc,EAAE;EAClB,CAAC;EACDrB,OAAO,EAAE;IACPtC,SAAS,EAAE,SAAS;IACpByD,UAAU,EAAE,QAAQ;IACpBG,UAAU,EAAElK,UAAU;IACtBmK,QAAQ,EAAE;EACZ,CAAC;EACDlB,UAAU,EAAE;IACVc,UAAU,EAAE,QAAQ;IACpBE,cAAc,EAAE;EAClB,CAAC;EACDxB,KAAK,EAAE;IACL2B,QAAQ,EAAEnK,eAAe;IACzBoK,UAAU,EAAE,KAAK;IACjBC,SAAS,EAAEvK;EACb;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fab.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAoBpF,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Fab.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAoBpF,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAiU3E,eAAO,MAAM,GAAG,sCAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fab.web.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Fab.web.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAmU3E,eAAO,MAAM,GAAG,sCAAwB,CAAC"}
|
|
@@ -27,20 +27,32 @@
|
|
|
27
27
|
* edge, so two surfaces at that edge overlap rather than stack; the tallest is
|
|
28
28
|
* what a new surface has to clear. Summing would strand it at twice the height.
|
|
29
29
|
*
|
|
30
|
-
* ##
|
|
30
|
+
* ## A size and a state, because they travel differently
|
|
31
31
|
*
|
|
32
|
-
* A surface that collapses — the tab bar minimizes 58 -> 44 on scroll —
|
|
33
|
-
*
|
|
32
|
+
* A surface that collapses — the tab bar minimizes 58 -> 44 on scroll — publishes
|
|
33
|
+
* two things, and only one of them is a measurement:
|
|
34
34
|
*
|
|
35
35
|
* - RESERVED (`useBottomEdgeInset`) never shrinks while the claimant is
|
|
36
36
|
* mounted. It is what must be kept permanently free: a list's bottom
|
|
37
|
-
* padding, a toast stack's offset.
|
|
38
|
-
* list's content size on every scroll and jump a toast 14px mid-display
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
37
|
+
* padding, a toast stack's offset. Shrinking it on collapse would jitter a
|
|
38
|
+
* list's content size on every scroll and jump a toast 14px mid-display,
|
|
39
|
+
* because the bar re-expands the instant the user scrolls back up.
|
|
40
|
+
* - COLLAPSED (`useBottomEdgeCollapsed`) is a boolean, deliberately, and this
|
|
41
|
+
* is the part that was learned the hard way. It first shipped as a live
|
|
42
|
+
* PIXEL height so a FAB could ride down with the bar — and it felt broken on
|
|
43
|
+
* a device. The bar animates on the UI thread; a React consumer learns about
|
|
44
|
+
* the change through `runOnJS` plus two render passes, so its motion STARTS
|
|
45
|
+
* one to three frames late, worst exactly while scrolling because that is
|
|
46
|
+
* when the JS thread is busiest. No spring config fixes a variable start
|
|
47
|
+
* delay.
|
|
48
|
+
*
|
|
49
|
+
* Two things moving together betray that lag; a state change does not. A reader
|
|
50
|
+
* that FADES on this boolean has no spatial relationship to violate, so the same
|
|
51
|
+
* few frames of latency are imperceptible. That is why the channel is a state and
|
|
52
|
+
* not a geometry: it is the shape of signal that survives the trip to the JS
|
|
53
|
+
* thread. Anything that genuinely must track the collapse per-frame has to read
|
|
54
|
+
* the tab bar's own shared value on the UI thread instead — React state is the
|
|
55
|
+
* wrong transport for it, at any width.
|
|
44
56
|
*
|
|
45
57
|
* ## Why an external store
|
|
46
58
|
*
|
|
@@ -80,32 +92,34 @@ export declare namespace BottomEdgeProvider {
|
|
|
80
92
|
*/
|
|
81
93
|
export declare function useBottomEdgeInset(): number;
|
|
82
94
|
/**
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
95
|
+
* Whether the surface owning the bottom edge is currently COLLAPSED — the tab
|
|
96
|
+
* bar minimized on scroll.
|
|
97
|
+
*
|
|
98
|
+
* A boolean rather than a live height, on purpose: see the note at the top of
|
|
99
|
+
* this file. A reader should FADE or otherwise change state on it, never try to
|
|
100
|
+
* stay geometrically locked to the collapsing surface — that lock is what a
|
|
101
|
+
* React-state channel cannot deliver, because the surface animates on the UI
|
|
102
|
+
* thread and this arrives one to three frames later.
|
|
103
|
+
*
|
|
104
|
+
* ```tsx
|
|
105
|
+
* const collapsed = useBottomEdgeCollapsed();
|
|
106
|
+
* // fade out; do not chase the bar's new top edge
|
|
107
|
+
* ```
|
|
108
|
+
*
|
|
109
|
+
* `false` outside a provider.
|
|
93
110
|
*/
|
|
94
|
-
export declare function
|
|
111
|
+
export declare function useBottomEdgeCollapsed(): boolean;
|
|
95
112
|
/**
|
|
96
113
|
* Claim the bottom edge for as long as the caller is mounted.
|
|
97
114
|
*
|
|
98
115
|
* The claimant owns its own placement — claiming does not move it. It declares
|
|
99
116
|
* the space it occupies so that everything reading the edge stays off it. Pass
|
|
100
117
|
* the FULL footprint (the surface's height plus the gap it holds off the window
|
|
101
|
-
* edge), which is the same number the surface positions itself with
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
* which is correct for anything that does not collapse. A surface that shrinks
|
|
105
|
-
* on scroll passes its live footprint as `current` and keeps `reserved` at its
|
|
106
|
-
* full size — see the two channels above for why both are needed.
|
|
118
|
+
* edge), which is the same number the surface positions itself with, and keep it
|
|
119
|
+
* at the surface's FULL size even while collapsed: `reserved` is what must stay
|
|
120
|
+
* permanently free, and the collapse is reported separately by `collapsed`.
|
|
107
121
|
*
|
|
108
122
|
* A no-op outside a provider, so a surface stays usable standalone.
|
|
109
123
|
*/
|
|
110
|
-
export declare function useClaimBottomEdge(reserved: number,
|
|
124
|
+
export declare function useClaimBottomEdge(reserved: number, collapsed?: boolean): void;
|
|
111
125
|
//# sourceMappingURL=bottom-edge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bottom-edge.d.ts","sourceRoot":"","sources":["../../../../src/layout/bottom-edge.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"bottom-edge.d.ts","sourceRoot":"","sources":["../../../../src/layout/bottom-edge.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,OAAO,EAOL,KAAK,iBAAiB,EACvB,MAAM,OAAO,CAAC;AAyEf;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAGjE;yBAHe,kBAAkB;;;AAalC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAO3C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAOhD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,IAAI,CAS5E"}
|
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* parked there". A surface that floats at the bottom needs both.
|
|
6
6
|
*/
|
|
7
7
|
export { EDGE_GAP, windowEdgeGap } from './edge';
|
|
8
|
-
export { BottomEdgeProvider, useBottomEdgeInset,
|
|
8
|
+
export { BottomEdgeProvider, useBottomEdgeInset, useBottomEdgeCollapsed, useClaimBottomEdge, } from './bottom-edge';
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabBarBase.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/TabBarBase.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAQL,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAoBf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,EAiBL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAe,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"TabBarBase.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/TabBarBase.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAQL,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAoBf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,EAiBL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAe,MAAM,SAAS,CAAC;AA2kB3E;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC1C,IAAI,EAAE,aAAa,CAAC,oBAAoB,CAAC;YAElB,WAAW;;EAGnC;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,gBAAgB,CAAC;YAC1C,iBAAiB;;EAG/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fab.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAoBpF,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Fab.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAoBpF,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAiU3E,eAAO,MAAM,GAAG,sCAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fab.web.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Fab.web.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAmU3E,eAAO,MAAM,GAAG,sCAAwB,CAAC"}
|
|
@@ -27,20 +27,32 @@
|
|
|
27
27
|
* edge, so two surfaces at that edge overlap rather than stack; the tallest is
|
|
28
28
|
* what a new surface has to clear. Summing would strand it at twice the height.
|
|
29
29
|
*
|
|
30
|
-
* ##
|
|
30
|
+
* ## A size and a state, because they travel differently
|
|
31
31
|
*
|
|
32
|
-
* A surface that collapses — the tab bar minimizes 58 -> 44 on scroll —
|
|
33
|
-
*
|
|
32
|
+
* A surface that collapses — the tab bar minimizes 58 -> 44 on scroll — publishes
|
|
33
|
+
* two things, and only one of them is a measurement:
|
|
34
34
|
*
|
|
35
35
|
* - RESERVED (`useBottomEdgeInset`) never shrinks while the claimant is
|
|
36
36
|
* mounted. It is what must be kept permanently free: a list's bottom
|
|
37
|
-
* padding, a toast stack's offset.
|
|
38
|
-
* list's content size on every scroll and jump a toast 14px mid-display
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
37
|
+
* padding, a toast stack's offset. Shrinking it on collapse would jitter a
|
|
38
|
+
* list's content size on every scroll and jump a toast 14px mid-display,
|
|
39
|
+
* because the bar re-expands the instant the user scrolls back up.
|
|
40
|
+
* - COLLAPSED (`useBottomEdgeCollapsed`) is a boolean, deliberately, and this
|
|
41
|
+
* is the part that was learned the hard way. It first shipped as a live
|
|
42
|
+
* PIXEL height so a FAB could ride down with the bar — and it felt broken on
|
|
43
|
+
* a device. The bar animates on the UI thread; a React consumer learns about
|
|
44
|
+
* the change through `runOnJS` plus two render passes, so its motion STARTS
|
|
45
|
+
* one to three frames late, worst exactly while scrolling because that is
|
|
46
|
+
* when the JS thread is busiest. No spring config fixes a variable start
|
|
47
|
+
* delay.
|
|
48
|
+
*
|
|
49
|
+
* Two things moving together betray that lag; a state change does not. A reader
|
|
50
|
+
* that FADES on this boolean has no spatial relationship to violate, so the same
|
|
51
|
+
* few frames of latency are imperceptible. That is why the channel is a state and
|
|
52
|
+
* not a geometry: it is the shape of signal that survives the trip to the JS
|
|
53
|
+
* thread. Anything that genuinely must track the collapse per-frame has to read
|
|
54
|
+
* the tab bar's own shared value on the UI thread instead — React state is the
|
|
55
|
+
* wrong transport for it, at any width.
|
|
44
56
|
*
|
|
45
57
|
* ## Why an external store
|
|
46
58
|
*
|
|
@@ -80,32 +92,34 @@ export declare namespace BottomEdgeProvider {
|
|
|
80
92
|
*/
|
|
81
93
|
export declare function useBottomEdgeInset(): number;
|
|
82
94
|
/**
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
95
|
+
* Whether the surface owning the bottom edge is currently COLLAPSED — the tab
|
|
96
|
+
* bar minimized on scroll.
|
|
97
|
+
*
|
|
98
|
+
* A boolean rather than a live height, on purpose: see the note at the top of
|
|
99
|
+
* this file. A reader should FADE or otherwise change state on it, never try to
|
|
100
|
+
* stay geometrically locked to the collapsing surface — that lock is what a
|
|
101
|
+
* React-state channel cannot deliver, because the surface animates on the UI
|
|
102
|
+
* thread and this arrives one to three frames later.
|
|
103
|
+
*
|
|
104
|
+
* ```tsx
|
|
105
|
+
* const collapsed = useBottomEdgeCollapsed();
|
|
106
|
+
* // fade out; do not chase the bar's new top edge
|
|
107
|
+
* ```
|
|
108
|
+
*
|
|
109
|
+
* `false` outside a provider.
|
|
93
110
|
*/
|
|
94
|
-
export declare function
|
|
111
|
+
export declare function useBottomEdgeCollapsed(): boolean;
|
|
95
112
|
/**
|
|
96
113
|
* Claim the bottom edge for as long as the caller is mounted.
|
|
97
114
|
*
|
|
98
115
|
* The claimant owns its own placement — claiming does not move it. It declares
|
|
99
116
|
* the space it occupies so that everything reading the edge stays off it. Pass
|
|
100
117
|
* the FULL footprint (the surface's height plus the gap it holds off the window
|
|
101
|
-
* edge), which is the same number the surface positions itself with
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
* which is correct for anything that does not collapse. A surface that shrinks
|
|
105
|
-
* on scroll passes its live footprint as `current` and keeps `reserved` at its
|
|
106
|
-
* full size — see the two channels above for why both are needed.
|
|
118
|
+
* edge), which is the same number the surface positions itself with, and keep it
|
|
119
|
+
* at the surface's FULL size even while collapsed: `reserved` is what must stay
|
|
120
|
+
* permanently free, and the collapse is reported separately by `collapsed`.
|
|
107
121
|
*
|
|
108
122
|
* A no-op outside a provider, so a surface stays usable standalone.
|
|
109
123
|
*/
|
|
110
|
-
export declare function useClaimBottomEdge(reserved: number,
|
|
124
|
+
export declare function useClaimBottomEdge(reserved: number, collapsed?: boolean): void;
|
|
111
125
|
//# sourceMappingURL=bottom-edge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bottom-edge.d.ts","sourceRoot":"","sources":["../../../../src/layout/bottom-edge.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"bottom-edge.d.ts","sourceRoot":"","sources":["../../../../src/layout/bottom-edge.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,OAAO,EAOL,KAAK,iBAAiB,EACvB,MAAM,OAAO,CAAC;AAyEf;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAGjE;yBAHe,kBAAkB;;;AAalC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAO3C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAOhD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,IAAI,CAS5E"}
|
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* parked there". A surface that floats at the bottom needs both.
|
|
6
6
|
*/
|
|
7
7
|
export { EDGE_GAP, windowEdgeGap } from './edge';
|
|
8
|
-
export { BottomEdgeProvider, useBottomEdgeInset,
|
|
8
|
+
export { BottomEdgeProvider, useBottomEdgeInset, useBottomEdgeCollapsed, useClaimBottomEdge, } from './bottom-edge';
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabBarBase.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/TabBarBase.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAQL,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAoBf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,EAiBL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAe,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"TabBarBase.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/TabBarBase.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAQL,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAoBf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,EAiBL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAe,MAAM,SAAS,CAAC;AA2kB3E;;;;;;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"}
|
package/package.json
CHANGED
package/src/fab/Fab.tsx
CHANGED
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from 'react-native';
|
|
12
12
|
import { styled } from 'react-native-css';
|
|
13
13
|
|
|
14
|
-
import {
|
|
14
|
+
import { useBottomEdgeCollapsed, useBottomEdgeInset } from '../layout/bottom-edge';
|
|
15
15
|
import { useTheme } from '../theme/use-theme';
|
|
16
16
|
import { animation, borderRadius } from '../styles/tokens';
|
|
17
17
|
import { bloomShadowStyle } from '../design-tokens/shadows';
|
|
@@ -58,14 +58,21 @@ function resolveSize(size: FabSize | number): ResolvedSize {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
61
|
+
* How long the FAB takes to leave when the bottom edge collapses.
|
|
62
|
+
*
|
|
63
|
+
* A DURATION, not a spring matched to the tab bar's — because the FAB is not
|
|
64
|
+
* trying to stay level with the bar any more. It tried: an earlier version rode
|
|
65
|
+
* the bar down by the 14px it shrank, and on a device the two visibly did not
|
|
66
|
+
* move together. The bar animates on the UI thread while this component learns
|
|
67
|
+
* about the collapse through `runOnJS` plus two React renders, so it starts one
|
|
68
|
+
* to three frames late — worst exactly while scrolling, which is the only time
|
|
69
|
+
* it happens. No spring config fixes a variable start delay.
|
|
70
|
+
*
|
|
71
|
+
* Fading is what makes that latency invisible: there is no spatial relationship
|
|
72
|
+
* left to violate, so nothing betrays the few frames. Slightly quicker than the
|
|
73
|
+
* bar's 380ms minimize, so the FAB is gone before the eye goes looking for it.
|
|
67
74
|
*/
|
|
68
|
-
const
|
|
75
|
+
const COLLAPSE_FADE_MS = 200;
|
|
69
76
|
|
|
70
77
|
const DEFAULT_OFFSET = 16;
|
|
71
78
|
const DEFAULT_Z_INDEX = 50;
|
|
@@ -84,9 +91,9 @@ const HIT_SLOP = { top: 8, bottom: 8, left: 8, right: 8 } as const;
|
|
|
84
91
|
* pairing: the bar's host is the last sibling of the app shell and paints over
|
|
85
92
|
* every descendant, so the FAB has to be somewhere else, not merely on top.
|
|
86
93
|
*
|
|
87
|
-
* It is the RESERVED inset, so this stays a static layout value
|
|
88
|
-
*
|
|
89
|
-
*
|
|
94
|
+
* It is the RESERVED inset, so this stays a static layout value — it does not
|
|
95
|
+
* shrink when the bar collapses. The FAB fades out instead of chasing the bar
|
|
96
|
+
* down; see `COLLAPSE_FADE_MS` for why chasing it does not work.
|
|
90
97
|
*/
|
|
91
98
|
function placementStyle(
|
|
92
99
|
placement: FabPlacement,
|
|
@@ -132,10 +139,13 @@ function placementStyle(
|
|
|
132
139
|
*/
|
|
133
140
|
type FabPressableProps = Pick<
|
|
134
141
|
PressableProps,
|
|
142
|
+
| 'accessibilityElementsHidden'
|
|
135
143
|
| 'accessibilityHint'
|
|
136
144
|
| 'accessibilityLabel'
|
|
137
145
|
| 'accessibilityRole'
|
|
138
146
|
| 'accessibilityState'
|
|
147
|
+
| 'importantForAccessibility'
|
|
148
|
+
| 'pointerEvents'
|
|
139
149
|
| 'children'
|
|
140
150
|
| 'className'
|
|
141
151
|
| 'disabled'
|
|
@@ -172,34 +182,34 @@ const FabComponent: React.FC<FabProps> = ({
|
|
|
172
182
|
zIndex = DEFAULT_Z_INDEX,
|
|
173
183
|
}) => {
|
|
174
184
|
const bottomEdgeInset = useBottomEdgeInset();
|
|
175
|
-
|
|
185
|
+
// The FAB belongs to the chrome: when the chrome retracts, so does it.
|
|
186
|
+
const bottomEdgeCollapsed = useBottomEdgeCollapsed();
|
|
176
187
|
const theme = useTheme();
|
|
177
188
|
const sizeConfig = useMemo(() => resolveSize(size), [size]);
|
|
178
189
|
const isExtended = label != null && label.length > 0;
|
|
179
190
|
const content = icon ?? children;
|
|
180
191
|
|
|
181
|
-
//
|
|
182
|
-
//
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
// collapse moves it.
|
|
187
|
-
const collapse = placement === 'bottom-right' || placement === 'bottom-left'
|
|
188
|
-
? bottomEdgeInset - bottomEdgeLive
|
|
189
|
-
: 0;
|
|
190
|
-
const collapseAnim = useRef(new Animated.Value(0)).current;
|
|
192
|
+
// Only a FAB anchored to the BOTTOM edge is affected by the bottom edge
|
|
193
|
+
// collapsing; a top-placed or consumer-placed one is not.
|
|
194
|
+
const hidesOnCollapse = placement === 'bottom-right' || placement === 'bottom-left';
|
|
195
|
+
const hidden = hidesOnCollapse && bottomEdgeCollapsed;
|
|
196
|
+
const fade = useRef(new Animated.Value(1)).current;
|
|
191
197
|
|
|
192
198
|
// An effect because RN's Animated has no declarative form — starting an
|
|
193
|
-
// animation is imperative by construction. `
|
|
194
|
-
//
|
|
195
|
-
//
|
|
199
|
+
// animation is imperative by construction. `opacity` is native-drivable, so
|
|
200
|
+
// once started this never touches the JS thread again, which matters: it runs
|
|
201
|
+
// while the user is mid-scroll.
|
|
202
|
+
// The disabled dim rides on the SAME value rather than a second static
|
|
203
|
+
// `opacity` in the style array: two opacity entries would mean the later one
|
|
204
|
+
// silently wins, so a disabled FAB would either not dim or not fade.
|
|
205
|
+
const restingOpacity = disabled ? 0.5 : 1;
|
|
196
206
|
useEffect(() => {
|
|
197
|
-
Animated.
|
|
198
|
-
toValue:
|
|
207
|
+
Animated.timing(fade, {
|
|
208
|
+
toValue: hidden ? 0 : restingOpacity,
|
|
209
|
+
duration: COLLAPSE_FADE_MS,
|
|
199
210
|
useNativeDriver: true,
|
|
200
|
-
...COLLAPSE_SPRING,
|
|
201
211
|
}).start();
|
|
202
|
-
}, [
|
|
212
|
+
}, [hidden, restingOpacity, fade]);
|
|
203
213
|
|
|
204
214
|
const { scaleAnim, onPressIn, onPressOut } = usePressAnimation(
|
|
205
215
|
disabled ? undefined : animation.pressScale,
|
|
@@ -267,17 +277,22 @@ const FabComponent: React.FC<FabProps> = ({
|
|
|
267
277
|
placementStyle(placement, offset, bottomEdgeInset),
|
|
268
278
|
{ zIndex },
|
|
269
279
|
containerStyle,
|
|
270
|
-
|
|
280
|
+
{ opacity: fade },
|
|
271
281
|
pressed && !disabled && { backgroundColor: pressedBackground },
|
|
272
282
|
// Before the caller's `style`, so `style` keeps winning the whole array
|
|
273
283
|
// the way it always has (and the way the web fork spreads it last). The
|
|
274
284
|
// cost is that a caller who sets `transform` replaces the press scale
|
|
275
285
|
// instead of composing with it — when the transform sat on a separate
|
|
276
286
|
// wrapper node the two multiplied.
|
|
277
|
-
{ transform: [{
|
|
287
|
+
{ transform: [{ scale: scaleAnim }] },
|
|
278
288
|
style,
|
|
279
289
|
]}
|
|
280
|
-
|
|
290
|
+
// A FAB that has faded out must not be pressable or reachable — an
|
|
291
|
+
// invisible target that still takes a tap is worse than a visible one.
|
|
292
|
+
pointerEvents={hidden ? 'none' : 'auto'}
|
|
293
|
+
accessibilityElementsHidden={hidden}
|
|
294
|
+
importantForAccessibility={hidden ? 'no-hide-descendants' : 'auto'}
|
|
295
|
+
onPress={disabled || hidden ? undefined : onPress}
|
|
281
296
|
onPressIn={handlePressIn}
|
|
282
297
|
onPressOut={handlePressOut}
|
|
283
298
|
disabled={disabled}
|