react-native-terra-ui 0.11.6 → 0.11.8
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/CHANGELOG.md +12 -0
- package/lib/module/components/header/parts/HeaderAccessory.js +25 -22
- package/lib/module/components/header/parts/HeaderAccessory.js.map +1 -1
- package/lib/module/components/header/parts/HeaderSurface.js +13 -20
- package/lib/module/components/header/parts/HeaderSurface.js.map +1 -1
- package/lib/module/components/header/variants/LargeTitleHeader/index.js +130 -42
- package/lib/module/components/header/variants/LargeTitleHeader/index.js.map +1 -1
- package/lib/module/components/header/variants/TitleHeader/index.js +5 -1
- package/lib/module/components/header/variants/TitleHeader/index.js.map +1 -1
- package/lib/module/components/screen/ScreenContext.js +7 -1
- package/lib/module/components/screen/ScreenContext.js.map +1 -1
- package/lib/module/components/screen/ScreenList.js +19 -2
- package/lib/module/components/screen/ScreenList.js.map +1 -1
- package/lib/module/components/screen/ScreenScrollView.js +5 -1
- package/lib/module/components/screen/ScreenScrollView.js.map +1 -1
- package/lib/typescript/src/components/header/index.d.ts +1 -1
- package/lib/typescript/src/components/header/index.d.ts.map +1 -1
- package/lib/typescript/src/components/header/parts/HeaderAccessory.d.ts +11 -11
- package/lib/typescript/src/components/header/parts/HeaderAccessory.d.ts.map +1 -1
- package/lib/typescript/src/components/header/parts/HeaderSurface.d.ts +8 -10
- package/lib/typescript/src/components/header/parts/HeaderSurface.d.ts.map +1 -1
- package/lib/typescript/src/components/header/types.d.ts +11 -7
- package/lib/typescript/src/components/header/types.d.ts.map +1 -1
- package/lib/typescript/src/components/header/variants/LargeTitleHeader/index.d.ts +8 -1
- package/lib/typescript/src/components/header/variants/LargeTitleHeader/index.d.ts.map +1 -1
- package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts +3 -4
- package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts.map +1 -1
- package/lib/typescript/src/components/screen/ScreenContext.d.ts +7 -0
- package/lib/typescript/src/components/screen/ScreenContext.d.ts.map +1 -1
- package/lib/typescript/src/components/screen/ScreenList.d.ts.map +1 -1
- package/lib/typescript/src/components/screen/ScreenScrollView.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/header/index.ts +1 -1
- package/src/components/header/parts/HeaderAccessory.tsx +21 -23
- package/src/components/header/parts/HeaderSurface.tsx +17 -20
- package/src/components/header/types.ts +12 -7
- package/src/components/header/variants/LargeTitleHeader/index.tsx +110 -18
- package/src/components/header/variants/TitleHeader/index.tsx +15 -6
- package/src/components/screen/ScreenContext.tsx +16 -0
- package/src/components/screen/ScreenList.tsx +22 -2
- package/src/components/screen/ScreenScrollView.tsx +16 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useCallback","useContext","useMemo","useState","useAnimatedRef","useAnimatedScrollHandler","useSharedValue","jsx","_jsx","SCREEN_HEADER_PORTAL_HOST","ScreenContext","ScreenScrollProvider","background","children","contentPadding","safeArea","contentOwnsBottomInset","platformAdjustsInsets","platformInsetsEligible","hasHeader","scrollY","headerAccessoryHeight","setAccessoryHeight","headerCollapseHeight","headerSnapOffsets","setHeaderSnapOffsets","scrollRef","setHeaderCollapseHeight","height","rounded","Math","round","value","undefined","setHeaderAccessoryHeight","max","scrollHandler","onScroll","event","contentOffset","y","margins","Provider","useScreen","context","Error"],"sourceRoot":"../../../../src","sources":["components/screen/ScreenContext.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAkBC,WAAW,EAAEC,UAAU,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAEjG,SAIEC,cAAc,EACdC,wBAAwB,EACxBC,cAAc,QACT,yBAAyB;;AAIhC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAGA;AACA,OAAO,MAAMC,yBAAyB,GAAG,eAAe;;AAExD;;
|
|
1
|
+
{"version":3,"names":["createContext","useCallback","useContext","useMemo","useState","useAnimatedRef","useAnimatedScrollHandler","useSharedValue","jsx","_jsx","SCREEN_HEADER_PORTAL_HOST","ScreenContext","ScreenScrollProvider","background","children","contentPadding","safeArea","contentOwnsBottomInset","platformAdjustsInsets","platformInsetsEligible","hasHeader","scrollY","headerAccessoryHeight","setAccessoryHeight","contentTopPadding","setTopPadding","headerCollapseHeight","headerSnapOffsets","setHeaderSnapOffsets","scrollRef","setHeaderCollapseHeight","height","rounded","Math","round","value","undefined","setHeaderAccessoryHeight","max","setContentTopPadding","padding","scrollHandler","onScroll","event","contentOffset","y","margins","Provider","useScreen","context","Error"],"sourceRoot":"../../../../src","sources":["components/screen/ScreenContext.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import { View } from "react-native-unistyles/components/native/View";
|
|
4
4
|
import { FlatList } from "react-native-unistyles/components/native/FlatList";
|
|
5
|
-
import { forwardRef, useMemo } from "react";
|
|
5
|
+
import { forwardRef, useEffect, useMemo } from "react";
|
|
6
|
+
import { StyleSheet as NativeStyleSheet } from "react-native";
|
|
6
7
|
import Animated from "react-native-reanimated";
|
|
7
|
-
import { StyleSheet } from "react-native-unistyles";
|
|
8
|
+
import { StyleSheet, useUnistyles } from "react-native-unistyles";
|
|
8
9
|
import { resolveScreenPadding } from "../../theme/screen-padding.js";
|
|
9
10
|
import { PortalHost } from "../portal/index.js";
|
|
10
11
|
import { useNestedContainerWarning } from "./hooks/use-nested-container-warning.js";
|
|
@@ -63,6 +64,7 @@ const ScreenListBase = /*#__PURE__*/forwardRef(function ScreenList({
|
|
|
63
64
|
contentPadding: screenPadding,
|
|
64
65
|
hasHeader,
|
|
65
66
|
headerAccessoryHeight,
|
|
67
|
+
setContentTopPadding,
|
|
66
68
|
contentOwnsBottomInset,
|
|
67
69
|
platformAdjustsInsets
|
|
68
70
|
} = useScreen();
|
|
@@ -72,6 +74,21 @@ const ScreenListBase = /*#__PURE__*/forwardRef(function ScreenList({
|
|
|
72
74
|
useNestedContainerWarning("Screen.List", horizontal);
|
|
73
75
|
const mergedRef = useScreenRef(isDefaultFlatList ? scrollRef : undefined, ref);
|
|
74
76
|
const resolvedPadding = contentPadding ?? margins ?? screenPadding;
|
|
77
|
+
const {
|
|
78
|
+
theme,
|
|
79
|
+
rt
|
|
80
|
+
} = useUnistyles();
|
|
81
|
+
const {
|
|
82
|
+
y: paddingY
|
|
83
|
+
} = resolveScreenPadding(theme, rt.breakpoint);
|
|
84
|
+
const defaultTopPadding = (hasHeader ? theme.layout.header.height + headerAccessoryHeight : 0) + (hasVerticalPadding(resolvedPadding) ? paddingY : 0);
|
|
85
|
+
const paddingTopOverride = NativeStyleSheet.flatten(contentContainerStyle)?.paddingTop;
|
|
86
|
+
const contentTopPadding = typeof paddingTopOverride === "number" ? paddingTopOverride : defaultTopPadding;
|
|
87
|
+
// ListHeaderComponent is wrapped by the list, so its local layout.y excludes
|
|
88
|
+
// content padding. Report the resolved padding, including caller overrides.
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
if (!horizontal) setContentTopPadding(contentTopPadding);
|
|
91
|
+
}, [contentTopPadding, horizontal, setContentTopPadding]);
|
|
75
92
|
const resolvedLoading = isLoading ?? loading;
|
|
76
93
|
const placeholder = renderScreenPlaceholder({
|
|
77
94
|
isLoading: resolvedLoading,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useMemo","Animated","
|
|
1
|
+
{"version":3,"names":["forwardRef","useEffect","useMemo","StyleSheet","NativeStyleSheet","Animated","useUnistyles","resolveScreenPadding","PortalHost","useNestedContainerWarning","useScreenRef","useScreenScrollHandler","ScreenBottomInset","renderScreenPlaceholder","SCREEN_HEADER_PORTAL_HOST","useScreen","hasHorizontalPadding","hasVerticalPadding","renderListComponent","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ScreenListBase","ScreenList","as","data","renderItem","style","contentContainerStyle","ListHeaderComponent","ListFooterComponent","ListEmptyComponent","horizontal","isLoading","loading","loadingContent","LoadingComponent","emptyContent","EmptyComponent","contentPadding","margins","bottomInset","extraBottomPadding","scrollHandler","externalScrollHandler","onScroll","rest","ref","isDefaultFlatList","undefined","FlatList","Component","AnimatedComponent","createAnimatedComponent","background","scrollRef","headerSnapOffsets","screenPadding","hasHeader","headerAccessoryHeight","setContentTopPadding","contentOwnsBottomInset","platformAdjustsInsets","ownsBottomInset","mergedRef","resolvedPadding","theme","rt","y","paddingY","breakpoint","defaultTopPadding","layout","header","height","paddingTopOverride","flatten","paddingTop","contentTopPadding","resolvedLoading","placeholder","isEmpty","length","composedScrollHandler","children","View","styles","headerWrapper","name","footer","backgroundColor","contentInsetAdjustmentBehavior","automaticallyAdjustContentInsets","automaticallyAdjustsScrollIndicatorInsets","content","showsVerticalScrollIndicator","scrollEventThrottle","snapToOffsets","displayName","create","runtime","padding","accessoryHeight","x","flexGrow","paddingHorizontal","paddingBottom","uni__dependencies","marginHorizontal"],"sourceRoot":"../../../../src","sources":["components/screen/ScreenList.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { View } from "react-native-unistyles/components/native/View";
|
|
4
|
-
import { Children, forwardRef } from "react";
|
|
4
|
+
import { Children, forwardRef, useCallback } from "react";
|
|
5
5
|
import Animated from "react-native-reanimated";
|
|
6
6
|
import { StyleSheet } from "react-native-unistyles";
|
|
7
7
|
import { resolveScreenPadding } from "../../theme/screen-padding.js";
|
|
@@ -59,6 +59,7 @@ export const ScreenScrollView = /*#__PURE__*/forwardRef(function ScreenScrollVie
|
|
|
59
59
|
contentPadding: screenPadding,
|
|
60
60
|
hasHeader,
|
|
61
61
|
headerAccessoryHeight,
|
|
62
|
+
setContentTopPadding,
|
|
62
63
|
background,
|
|
63
64
|
contentOwnsBottomInset,
|
|
64
65
|
platformAdjustsInsets
|
|
@@ -76,6 +77,8 @@ export const ScreenScrollView = /*#__PURE__*/forwardRef(function ScreenScrollVie
|
|
|
76
77
|
isEmpty: isEmpty ?? Children.toArray(children).length === 0
|
|
77
78
|
});
|
|
78
79
|
const composedScrollHandler = useScreenScrollHandler(scrollHandler, onScroll, externalScrollHandler);
|
|
80
|
+
// As the first child, the header wrapper's layout.y includes resolved top padding.
|
|
81
|
+
const handleHeaderWrapperLayout = useCallback(event => setContentTopPadding(event.nativeEvent.layout.y), [setContentTopPadding]);
|
|
79
82
|
return /*#__PURE__*/_jsxs(Animated.ScrollView, {
|
|
80
83
|
ref: mergedRef,
|
|
81
84
|
style: [{
|
|
@@ -97,6 +100,7 @@ export const ScreenScrollView = /*#__PURE__*/forwardRef(function ScreenScrollVie
|
|
|
97
100
|
onScroll: composedScrollHandler,
|
|
98
101
|
children: [/*#__PURE__*/_jsx(View, {
|
|
99
102
|
style: styles.headerWrapper(resolvedPadding),
|
|
103
|
+
onLayout: handleHeaderWrapperLayout,
|
|
100
104
|
children: /*#__PURE__*/_jsx(PortalHost, {
|
|
101
105
|
name: SCREEN_HEADER_PORTAL_HOST
|
|
102
106
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Children","forwardRef","Animated","StyleSheet","resolveScreenPadding","PortalHost","useNestedContainerWarning","useScreenRef","useScreenScrollHandler","ScreenBottomInset","renderScreenPlaceholder","SCREEN_HEADER_PORTAL_HOST","useScreen","hasHorizontalPadding","hasVerticalPadding","jsx","_jsx","jsxs","_jsxs","ScreenScrollView","children","style","contentContainerStyle","contentStyle","scrollHandler","externalScrollHandler","onScroll","horizontal","isLoading","loading","loadingContent","LoadingComponent","emptyContent","EmptyComponent","contentPadding","margins","extraBottomPadding","isEmpty","rest","ref","scrollRef","screenPadding","hasHeader","headerAccessoryHeight","background","contentOwnsBottomInset","platformAdjustsInsets","ownsBottomInset","resolvedPadding","mergedRef","placeholder","undefined","toArray","length","composedScrollHandler","ScrollView","backgroundColor","contentInsetAdjustmentBehavior","automaticallyAdjustContentInsets","automaticallyAdjustsScrollIndicatorInsets","showsVerticalScrollIndicator","scrollEventThrottle","styles","scrollContent","View","headerWrapper","name","content","displayName","create","theme","runtime","padding","accessoryHeight","x","
|
|
1
|
+
{"version":3,"names":["Children","forwardRef","useCallback","Animated","StyleSheet","resolveScreenPadding","PortalHost","useNestedContainerWarning","useScreenRef","useScreenScrollHandler","ScreenBottomInset","renderScreenPlaceholder","SCREEN_HEADER_PORTAL_HOST","useScreen","hasHorizontalPadding","hasVerticalPadding","jsx","_jsx","jsxs","_jsxs","ScreenScrollView","children","style","contentContainerStyle","contentStyle","scrollHandler","externalScrollHandler","onScroll","horizontal","isLoading","loading","loadingContent","LoadingComponent","emptyContent","EmptyComponent","contentPadding","margins","extraBottomPadding","isEmpty","rest","ref","scrollRef","screenPadding","hasHeader","headerAccessoryHeight","setContentTopPadding","background","contentOwnsBottomInset","platformAdjustsInsets","ownsBottomInset","resolvedPadding","mergedRef","placeholder","undefined","toArray","length","composedScrollHandler","handleHeaderWrapperLayout","event","nativeEvent","layout","y","ScrollView","backgroundColor","contentInsetAdjustmentBehavior","automaticallyAdjustContentInsets","automaticallyAdjustsScrollIndicatorInsets","showsVerticalScrollIndicator","scrollEventThrottle","styles","scrollContent","View","headerWrapper","onLayout","name","content","displayName","create","theme","runtime","padding","accessoryHeight","x","breakpoint","flexGrow","paddingTop","header","height","paddingHorizontal","paddingBottom","uni__dependencies","marginHorizontal","flexDirection"],"sourceRoot":"../../../../src","sources":["components/screen/ScreenScrollView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { Header } from "./Header.js";
|
|
2
2
|
export { HeaderButton, type HeaderButtonProps, type HeaderDismissAction, HeaderDismissButton, type HeaderDismissNavigation, type HeaderDismissProps, } from "./header-buttons.js";
|
|
3
|
-
export type { HeaderAccessoryPadding } from "./types.js";
|
|
3
|
+
export type { HeaderAccessoryBehavior, HeaderAccessoryPadding } from "./types.js";
|
|
4
4
|
export type { LargeTitleHeaderProps } from "./variants/LargeTitleHeader/index.js";
|
|
5
5
|
export { LargeTitleHeader } from "./variants/LargeTitleHeader/index.js";
|
|
6
6
|
export type { TitleHeaderProps } from "./variants/TitleHeader/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/header/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAU,CAAC;AAClC,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,qBAAkB,CAAC;AAC1B,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/header/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAU,CAAC;AAClC,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,qBAAkB,CAAC;AAC1B,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,YAAS,CAAC;AAC/E,YAAY,EAAE,qBAAqB,EAAE,MAAM,sCAA6B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAA6B,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAwB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAwB,CAAC"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
|
+
import { type StyleProp, type ViewStyle } from "react-native";
|
|
2
3
|
import type { HeaderAccessoryPadding } from "../types.js";
|
|
3
4
|
export interface HeaderAccessoryProps {
|
|
4
5
|
children: ReactNode;
|
|
5
6
|
/** Horizontal padding around the accessory. */
|
|
6
7
|
padding: HeaderAccessoryPadding;
|
|
8
|
+
/** Reports layout height in dp; reports zero on cleanup to release reserved space. */
|
|
9
|
+
onHeightChange: (height: number) => void;
|
|
10
|
+
/** Additional styles for the accessory container. */
|
|
11
|
+
style?: StyleProp<ViewStyle>;
|
|
7
12
|
}
|
|
8
|
-
/**
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
* can know how far down the content has to start.
|
|
15
|
-
*
|
|
16
|
-
* Outside a `Screen` there is nothing to report to and it simply renders.
|
|
17
|
-
*/
|
|
18
|
-
export declare function HeaderAccessory({ children, padding }: HeaderAccessoryProps): import("react").JSX.Element;
|
|
13
|
+
/** Measures accessory content so the header can reserve space in the scroll container. */
|
|
14
|
+
export declare function HeaderAccessory({ children, padding, onHeightChange, style }: HeaderAccessoryProps): import("react").JSX.Element;
|
|
15
|
+
/** Reserves scroll-content space for the sticky accessory rendered in the header overlay. */
|
|
16
|
+
export declare function HeaderAccessorySpacer({ height }: {
|
|
17
|
+
height: number;
|
|
18
|
+
}): import("react").JSX.Element;
|
|
19
19
|
//# sourceMappingURL=HeaderAccessory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderAccessory.d.ts","sourceRoot":"","sources":["../../../../../../src/components/header/parts/HeaderAccessory.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"HeaderAccessory.d.ts","sourceRoot":"","sources":["../../../../../../src/components/header/parts/HeaderAccessory.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAA0B,MAAM,OAAO,CAAC;AAC/D,OAAO,EAA0B,KAAK,SAAS,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAK5F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAU,CAAC;AAEvD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,SAAS,CAAC;IACpB,+CAA+C;IAC/C,OAAO,EAAE,sBAAsB,CAAC;IAChC,sFAAsF;IACtF,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,qDAAqD;IACrD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,oBAAoB,+BAkBjG;AAED,6FAA6F;AAC7F,wBAAgB,qBAAqB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,+BAEnE"}
|
|
@@ -7,18 +7,16 @@ export interface HeaderSurfaceProps {
|
|
|
7
7
|
color: string;
|
|
8
8
|
/** Opacity style for variants that fade the whole surface in as they collapse. */
|
|
9
9
|
animatedStyle?: HeaderOpacityStyle;
|
|
10
|
+
/**
|
|
11
|
+
* Height of the bottom gradient in dp. The region above it uses a solid fill.
|
|
12
|
+
* @defaultValue The themed bar height plus `HEADER_FADE_EXTENT`.
|
|
13
|
+
*/
|
|
14
|
+
fadeHeight?: number;
|
|
10
15
|
}
|
|
11
16
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* Split into a flat fill and a fixed-height ramp rather than one gradient over
|
|
16
|
-
* the whole box, because {@link HeaderGradientOverlay}'s curve is expressed in
|
|
17
|
-
* fractions of its own height. Stretched over a tall accessory the fade would
|
|
18
|
-
* begin partway up it, and content passing behind would show through the thing
|
|
19
|
-
* the caller put there to be read. Pinning the ramp to the bar's height keeps it
|
|
20
|
-
* identical with or without an accessory, and everything above it stays solid.
|
|
17
|
+
* Header background with a solid fill and a bottom gradient.
|
|
18
|
+
* A fixed gradient height keeps tall accessories from becoming translucent.
|
|
21
19
|
*/
|
|
22
|
-
export declare function HeaderSurface({ color, animatedStyle }: HeaderSurfaceProps): import("react").JSX.Element;
|
|
20
|
+
export declare function HeaderSurface({ color, animatedStyle, fadeHeight }: HeaderSurfaceProps): import("react").JSX.Element;
|
|
23
21
|
export {};
|
|
24
22
|
//# sourceMappingURL=HeaderSurface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderSurface.d.ts","sourceRoot":"","sources":["../../../../../../src/components/header/parts/HeaderSurface.tsx"],"names":[],"mappings":"AAEA,OAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAK1E,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAAC;AAEnF,MAAM,WAAW,kBAAkB;IACjC,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,aAAa,CAAC,EAAE,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"HeaderSurface.d.ts","sourceRoot":"","sources":["../../../../../../src/components/header/parts/HeaderSurface.tsx"],"names":[],"mappings":"AAEA,OAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAK1E,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAAC;AAEnF,MAAM,WAAW,kBAAkB;IACjC,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,kBAAkB,+BASrF"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Horizontal padding
|
|
3
|
-
*
|
|
4
|
-
* - `'
|
|
5
|
-
* field-shaped accessory (a search input, a segmented control) wants.
|
|
6
|
-
* - `'none'` — full bleed. What a horizontally scrolling accessory (a tab strip,
|
|
7
|
-
* a filter row) wants, so its content can run to the screen edge instead of
|
|
8
|
-
* being clipped at an inset the caller cannot scroll past.
|
|
2
|
+
* Horizontal padding around a header accessory.
|
|
3
|
+
* - `'x'`: match the header bar's horizontal padding.
|
|
4
|
+
* - `'none'`: extend to the screen edges, for example for a scrollable tab strip.
|
|
9
5
|
*/
|
|
10
6
|
export type HeaderAccessoryPadding = "x" | "none";
|
|
7
|
+
/**
|
|
8
|
+
* Accessory placement while a large-title header scrolls.
|
|
9
|
+
* - `'pinned'`: remain directly below the compact bar.
|
|
10
|
+
* - `'sticky'`: scroll with the large title, then pin below the compact bar.
|
|
11
|
+
*
|
|
12
|
+
* Used by `Header.LargeTitle`. A hidden large title always uses pinned placement.
|
|
13
|
+
*/
|
|
14
|
+
export type HeaderAccessoryBehavior = "pinned" | "sticky";
|
|
11
15
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/header/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/header/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,GAAG,GAAG,MAAM,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,QAAQ,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { HeaderAccessoryBehavior } from "../../types.js";
|
|
1
2
|
import type { TitleHeaderProps } from "../TitleHeader/index.js";
|
|
2
3
|
export interface LargeTitleHeaderProps extends TitleHeaderProps {
|
|
3
4
|
/** Optional small line shown above the large title. */
|
|
@@ -6,6 +7,12 @@ export interface LargeTitleHeaderProps extends TitleHeaderProps {
|
|
|
6
7
|
subtitle?: string;
|
|
7
8
|
/** Hide the large title (keeps the compact bar). Defaults to `false`. */
|
|
8
9
|
isLargeTitleHidden?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* How `accessory` moves while scrolling. `'sticky'` starts below the large title
|
|
12
|
+
* and pins below the compact bar when scrolled up. A hidden large title always pins.
|
|
13
|
+
* @defaultValue 'pinned'
|
|
14
|
+
*/
|
|
15
|
+
accessoryBehavior?: HeaderAccessoryBehavior;
|
|
9
16
|
/**
|
|
10
17
|
* Placement of the compact bar title. The large title stack always stays
|
|
11
18
|
* left-aligned. Defaults to `'center'`.
|
|
@@ -33,5 +40,5 @@ export interface LargeTitleHeaderProps extends TitleHeaderProps {
|
|
|
33
40
|
* </Screen.Header>
|
|
34
41
|
* ```
|
|
35
42
|
*/
|
|
36
|
-
export declare function LargeTitleHeader({ title, overline, subtitle, leadingActions, trailingActions, LeftToolbar, RightToolbar, accessory, accessoryPadding, dismissAction, navigation, onDismiss, titleAlignment, isLargeTitleHidden, background, bg, }: LargeTitleHeaderProps): import("react").JSX.Element;
|
|
43
|
+
export declare function LargeTitleHeader({ title, overline, subtitle, leadingActions, trailingActions, LeftToolbar, RightToolbar, accessory, accessoryPadding, accessoryBehavior, dismissAction, navigation, onDismiss, titleAlignment, isLargeTitleHidden, background, bg, }: LargeTitleHeaderProps): import("react").JSX.Element;
|
|
37
44
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/header/variants/LargeTitleHeader/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAgB,CAAC;AASvD,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,cAAc,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CACpC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/header/variants/LargeTitleHeader/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAa,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAgB,CAAC;AASvD,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IAC5C;;;OAGG;IACH,cAAc,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CACpC;AAmED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACZ,SAAS,EACT,gBAAsB,EACtB,iBAA4B,EAC5B,aAAsB,EACtB,UAAU,EACV,SAAS,EACT,cAAyB,EACzB,kBAA0B,EAC1B,UAAU,EACV,EAAE,GACH,EAAE,qBAAqB,+BA0LvB"}
|
|
@@ -24,10 +24,9 @@ export interface TitleHeaderProps extends HeaderDismissProps {
|
|
|
24
24
|
/** @deprecated Use trailingActions. */
|
|
25
25
|
RightToolbar?: ReactNode;
|
|
26
26
|
/**
|
|
27
|
-
* Content
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* content starts below it rather than under it.
|
|
27
|
+
* Content below the header, such as a search field or tab strip.
|
|
28
|
+
* `Header.Title` always pins it below the bar. `Header.LargeTitle` also supports
|
|
29
|
+
* scrolling it with the large title via `accessoryBehavior`.
|
|
31
30
|
*/
|
|
32
31
|
accessory?: ReactNode;
|
|
33
32
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/header/variants/TitleHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/header/variants/TitleHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAA2B,MAAM,OAAO,CAAC;AAKhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM/C,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,yBAAsB,CAAC;AAGpF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAa,CAAC;AAG1D,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IAC1D;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,sCAAsC;IACtC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,uCAAuC;IACvC,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,8DAA8D;IAC9D,cAAc,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACnC,mGAAmG;IACnG,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kCAAkC;IAClC,EAAE,CAAC,EAAE,UAAU,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACZ,SAAS,EACT,gBAAsB,EACtB,aAAsB,EACtB,UAAU,EACV,SAAS,EACT,cAAyB,EACzB,UAAU,EACV,EAAE,GACH,EAAE,gBAAgB,+BAiElB"}
|
|
@@ -66,6 +66,13 @@ export interface ScreenContextValue {
|
|
|
66
66
|
* accessory; zero releases the reserved space.
|
|
67
67
|
*/
|
|
68
68
|
setHeaderAccessoryHeight: (height: number) => void;
|
|
69
|
+
/**
|
|
70
|
+
* Primary scroll container's resolved top padding in dp, including header clearance.
|
|
71
|
+
* Used to position a sticky accessory below the large title at scroll offset zero.
|
|
72
|
+
*/
|
|
73
|
+
contentTopPadding: number;
|
|
74
|
+
/** Reported by the primary scroll container from its layout or resolved padding. */
|
|
75
|
+
setContentTopPadding: (padding: number) => void;
|
|
69
76
|
/** Vertical scroll offset, updated on the UI thread for header animations. */
|
|
70
77
|
scrollY: SharedValue<number>;
|
|
71
78
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenContext.d.ts","sourceRoot":"","sources":["../../../../../src/components/screen/ScreenContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAA8C,MAAM,OAAO,CAAC;AAElG,OAAO,QAAQ,EAAE,EACf,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAIjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAEpE,6EAA6E;AAC7E,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAE/D,yDAAyD;AACzD,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AAEzD,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,cAAc,EAAE,oBAAoB,CAAC;IACrC,6EAA6E;IAC7E,QAAQ,EAAE,cAAc,CAAC;IACzB;;;;;;;;;OASG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAChC;;;;;;;;;;OAUG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAC/B;;;;;;;;OAQG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAChC,sCAAsC;IACtC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,wFAAwF;IACxF,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;;;;OAQG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,wBAAwB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,8EAA8E;IAC9E,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B;;;OAGG;IACH,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C;;;OAGG;IACH,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACxC,iGAAiG;IACjG,uBAAuB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD;;;;OAIG;IACH,SAAS,EAAE,eAAe,CAAC;IAC3B,yDAAyD;IACzD,aAAa,EAAE,sBAAsB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAE/D,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,aAAa,oDAAiD,CAAC;AAE5E,4DAA4D;AAC5D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,SAAS,CAAC;IACpB,sFAAsF;IACtF,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,qFAAqF;IACrF,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,0FAA0F;IAC1F,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,6EAA6E;IAC7E,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,UAA0B,EAC1B,QAAQ,EACR,cAAsB,EACtB,QAAiB,EACjB,sBAA8B,EAC9B,qBAA6B,EAC7B,sBAA8B,EAC9B,SAAiB,GAClB,EAAE,yBAAyB,+
|
|
1
|
+
{"version":3,"file":"ScreenContext.d.ts","sourceRoot":"","sources":["../../../../../src/components/screen/ScreenContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAA8C,MAAM,OAAO,CAAC;AAElG,OAAO,QAAQ,EAAE,EACf,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAIjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAEpE,6EAA6E;AAC7E,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAE/D,yDAAyD;AACzD,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AAEzD,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,cAAc,EAAE,oBAAoB,CAAC;IACrC,6EAA6E;IAC7E,QAAQ,EAAE,cAAc,CAAC;IACzB;;;;;;;;;OASG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAChC;;;;;;;;;;OAUG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAC/B;;;;;;;;OAQG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAChC,sCAAsC;IACtC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,wFAAwF;IACxF,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;;;;OAQG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,wBAAwB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oFAAoF;IACpF,oBAAoB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,8EAA8E;IAC9E,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B;;;OAGG;IACH,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C;;;OAGG;IACH,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACxC,iGAAiG;IACjG,uBAAuB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD;;;;OAIG;IACH,SAAS,EAAE,eAAe,CAAC;IAC3B,yDAAyD;IACzD,aAAa,EAAE,sBAAsB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAE/D,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,aAAa,oDAAiD,CAAC;AAE5E,4DAA4D;AAC5D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,SAAS,CAAC;IACpB,sFAAsF;IACtF,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,qFAAqF;IACrF,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,0FAA0F;IAC1F,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,6EAA6E;IAC7E,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,UAA0B,EAC1B,QAAQ,EACR,cAAsB,EACtB,QAAiB,EACjB,sBAA8B,EAC9B,qBAA6B,EAC7B,sBAA8B,EAC9B,SAAiB,GAClB,EAAE,yBAAyB,+BA4E3B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,IAAI,kBAAkB,CAM9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenList.d.ts","sourceRoot":"","sources":["../../../../../src/components/screen/ScreenList.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAE1B,KAAK,WAAW,EAEhB,KAAK,YAAY,EAEjB,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"ScreenList.d.ts","sourceRoot":"","sources":["../../../../../src/components/screen/ScreenList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenScrollView.d.ts","sourceRoot":"","sources":["../../../../../src/components/screen/ScreenScrollView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2C,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"ScreenScrollView.d.ts","sourceRoot":"","sources":["../../../../../src/components/screen/ScreenScrollView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2C,KAAK,SAAS,EAAe,MAAM,OAAO,CAAC;AAC7F,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,SAAS,EAEd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAatB,OAAO,KAAK,EAAwB,qBAAqB,EAAE,MAAM,YAAS,CAAC;AAG3E,qFAAqF;AACrF,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE,qBAAqB;IACvG,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,iEAAiE;IACjE,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,uFAAuF;IACvF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,gBAAgB,8MAoF5B,CAAC"}
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@ export {
|
|
|
7
7
|
type HeaderDismissNavigation,
|
|
8
8
|
type HeaderDismissProps,
|
|
9
9
|
} from "./header-buttons";
|
|
10
|
-
export type { HeaderAccessoryPadding } from "./types";
|
|
10
|
+
export type { HeaderAccessoryBehavior, HeaderAccessoryPadding } from "./types";
|
|
11
11
|
export type { LargeTitleHeaderProps } from "./variants/LargeTitleHeader";
|
|
12
12
|
export { LargeTitleHeader } from "./variants/LargeTitleHeader";
|
|
13
13
|
export type { TitleHeaderProps } from "./variants/TitleHeader";
|
|
@@ -1,50 +1,47 @@
|
|
|
1
|
-
import { type ReactNode, useCallback,
|
|
2
|
-
import { type LayoutChangeEvent, View } from "react-native";
|
|
1
|
+
import { type ReactNode, useCallback, useEffect } from "react";
|
|
2
|
+
import { type LayoutChangeEvent, type StyleProp, View, type ViewStyle } from "react-native";
|
|
3
3
|
|
|
4
|
+
import Animated from "react-native-reanimated";
|
|
4
5
|
import { StyleSheet } from "react-native-unistyles";
|
|
5
6
|
|
|
6
|
-
import { ScreenContext } from "../../screen/ScreenContext";
|
|
7
7
|
import type { HeaderAccessoryPadding } from "../types";
|
|
8
8
|
|
|
9
9
|
export interface HeaderAccessoryProps {
|
|
10
10
|
children: ReactNode;
|
|
11
11
|
/** Horizontal padding around the accessory. */
|
|
12
12
|
padding: HeaderAccessoryPadding;
|
|
13
|
+
/** Reports layout height in dp; reports zero on cleanup to release reserved space. */
|
|
14
|
+
onHeightChange: (height: number) => void;
|
|
15
|
+
/** Additional styles for the accessory container. */
|
|
16
|
+
style?: StyleProp<ViewStyle>;
|
|
13
17
|
}
|
|
14
18
|
|
|
15
|
-
/**
|
|
16
|
-
|
|
17
|
-
*
|
|
18
|
-
* Reports its measured height to the surrounding `Screen` so scroll containers
|
|
19
|
-
* reserve it above their content. The theme header height covers the bar alone
|
|
20
|
-
* and the accessory is whatever the caller passed, so nothing but a measurement
|
|
21
|
-
* can know how far down the content has to start.
|
|
22
|
-
*
|
|
23
|
-
* Outside a `Screen` there is nothing to report to and it simply renders.
|
|
24
|
-
*/
|
|
25
|
-
export function HeaderAccessory({ children, padding }: HeaderAccessoryProps) {
|
|
26
|
-
const setHeaderAccessoryHeight = useContext(ScreenContext)?.setHeaderAccessoryHeight;
|
|
27
|
-
|
|
19
|
+
/** Measures accessory content so the header can reserve space in the scroll container. */
|
|
20
|
+
export function HeaderAccessory({ children, padding, onHeightChange, style }: HeaderAccessoryProps) {
|
|
28
21
|
const handleLayout = useCallback(
|
|
29
22
|
(event: LayoutChangeEvent) => {
|
|
30
|
-
|
|
23
|
+
onHeightChange(event.nativeEvent.layout.height);
|
|
31
24
|
},
|
|
32
|
-
[
|
|
25
|
+
[onHeightChange]
|
|
33
26
|
);
|
|
34
27
|
|
|
35
|
-
//
|
|
36
|
-
|
|
37
|
-
useEffect(() => () => setHeaderAccessoryHeight?.(0), [setHeaderAccessoryHeight]);
|
|
28
|
+
// Release the previous owner’s space when the callback changes or the accessory unmounts.
|
|
29
|
+
useEffect(() => () => onHeightChange(0), [onHeightChange]);
|
|
38
30
|
|
|
39
31
|
styles.useVariants({ padding });
|
|
40
32
|
|
|
41
33
|
return (
|
|
42
|
-
<View style={styles.accessory} onLayout={handleLayout}>
|
|
34
|
+
<Animated.View style={[styles.accessory, style]} onLayout={handleLayout}>
|
|
43
35
|
{children}
|
|
44
|
-
</View>
|
|
36
|
+
</Animated.View>
|
|
45
37
|
);
|
|
46
38
|
}
|
|
47
39
|
|
|
40
|
+
/** Reserves scroll-content space for the sticky accessory rendered in the header overlay. */
|
|
41
|
+
export function HeaderAccessorySpacer({ height }: { height: number }) {
|
|
42
|
+
return <View style={styles.spacer(height)} />;
|
|
43
|
+
}
|
|
44
|
+
|
|
48
45
|
const styles = StyleSheet.create((theme) => ({
|
|
49
46
|
accessory: {
|
|
50
47
|
variants: {
|
|
@@ -54,4 +51,5 @@ const styles = StyleSheet.create((theme) => ({
|
|
|
54
51
|
},
|
|
55
52
|
},
|
|
56
53
|
},
|
|
54
|
+
spacer: (height: number) => ({ height }),
|
|
57
55
|
}));
|
|
@@ -12,24 +12,22 @@ export interface HeaderSurfaceProps {
|
|
|
12
12
|
color: string;
|
|
13
13
|
/** Opacity style for variants that fade the whole surface in as they collapse. */
|
|
14
14
|
animatedStyle?: HeaderOpacityStyle;
|
|
15
|
+
/**
|
|
16
|
+
* Height of the bottom gradient in dp. The region above it uses a solid fill.
|
|
17
|
+
* @defaultValue The themed bar height plus `HEADER_FADE_EXTENT`.
|
|
18
|
+
*/
|
|
19
|
+
fadeHeight?: number;
|
|
15
20
|
}
|
|
16
21
|
|
|
17
22
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* Split into a flat fill and a fixed-height ramp rather than one gradient over
|
|
22
|
-
* the whole box, because {@link HeaderGradientOverlay}'s curve is expressed in
|
|
23
|
-
* fractions of its own height. Stretched over a tall accessory the fade would
|
|
24
|
-
* begin partway up it, and content passing behind would show through the thing
|
|
25
|
-
* the caller put there to be read. Pinning the ramp to the bar's height keeps it
|
|
26
|
-
* identical with or without an accessory, and everything above it stays solid.
|
|
23
|
+
* Header background with a solid fill and a bottom gradient.
|
|
24
|
+
* A fixed gradient height keeps tall accessories from becoming translucent.
|
|
27
25
|
*/
|
|
28
|
-
export function HeaderSurface({ color, animatedStyle }: HeaderSurfaceProps) {
|
|
26
|
+
export function HeaderSurface({ color, animatedStyle, fadeHeight }: HeaderSurfaceProps) {
|
|
29
27
|
return (
|
|
30
28
|
<Animated.View style={[styles.surface, animatedStyle]} pointerEvents="none">
|
|
31
|
-
<View style={styles.fill(color)} />
|
|
32
|
-
<View style={styles.fade}>
|
|
29
|
+
<View style={styles.fill(color, fadeHeight)} />
|
|
30
|
+
<View style={styles.fade(fadeHeight)}>
|
|
33
31
|
<HeaderGradientOverlay color={color} />
|
|
34
32
|
</View>
|
|
35
33
|
</Animated.View>
|
|
@@ -37,8 +35,7 @@ export function HeaderSurface({ color, animatedStyle }: HeaderSurfaceProps) {
|
|
|
37
35
|
}
|
|
38
36
|
|
|
39
37
|
const styles = StyleSheet.create((theme) => ({
|
|
40
|
-
//
|
|
41
|
-
// open space rather than being clipped at the header's edge.
|
|
38
|
+
// Extend the fade below the header's layout bounds.
|
|
42
39
|
surface: {
|
|
43
40
|
position: "absolute",
|
|
44
41
|
top: 0,
|
|
@@ -46,20 +43,20 @@ const styles = StyleSheet.create((theme) => ({
|
|
|
46
43
|
right: 0,
|
|
47
44
|
bottom: -HEADER_FADE_EXTENT,
|
|
48
45
|
},
|
|
49
|
-
//
|
|
50
|
-
fill: (color: string) => ({
|
|
46
|
+
// Fill the region above the gradient.
|
|
47
|
+
fill: (color: string, fadeHeight: number | undefined) => ({
|
|
51
48
|
position: "absolute",
|
|
52
49
|
top: 0,
|
|
53
50
|
left: 0,
|
|
54
51
|
right: 0,
|
|
55
|
-
bottom: theme.layout.header.height + HEADER_FADE_EXTENT,
|
|
52
|
+
bottom: fadeHeight ?? theme.layout.header.height + HEADER_FADE_EXTENT,
|
|
56
53
|
backgroundColor: color,
|
|
57
54
|
}),
|
|
58
|
-
fade: {
|
|
55
|
+
fade: (fadeHeight: number | undefined) => ({
|
|
59
56
|
position: "absolute",
|
|
60
57
|
left: 0,
|
|
61
58
|
right: 0,
|
|
62
59
|
bottom: 0,
|
|
63
|
-
height: theme.layout.header.height + HEADER_FADE_EXTENT,
|
|
64
|
-
},
|
|
60
|
+
height: fadeHeight ?? theme.layout.header.height + HEADER_FADE_EXTENT,
|
|
61
|
+
}),
|
|
65
62
|
}));
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Horizontal padding
|
|
3
|
-
*
|
|
4
|
-
* - `'
|
|
5
|
-
* field-shaped accessory (a search input, a segmented control) wants.
|
|
6
|
-
* - `'none'` — full bleed. What a horizontally scrolling accessory (a tab strip,
|
|
7
|
-
* a filter row) wants, so its content can run to the screen edge instead of
|
|
8
|
-
* being clipped at an inset the caller cannot scroll past.
|
|
2
|
+
* Horizontal padding around a header accessory.
|
|
3
|
+
* - `'x'`: match the header bar's horizontal padding.
|
|
4
|
+
* - `'none'`: extend to the screen edges, for example for a scrollable tab strip.
|
|
9
5
|
*/
|
|
10
6
|
export type HeaderAccessoryPadding = "x" | "none";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Accessory placement while a large-title header scrolls.
|
|
10
|
+
* - `'pinned'`: remain directly below the compact bar.
|
|
11
|
+
* - `'sticky'`: scroll with the large title, then pin below the compact bar.
|
|
12
|
+
*
|
|
13
|
+
* Used by `Header.LargeTitle`. A hidden large title always uses pinned placement.
|
|
14
|
+
*/
|
|
15
|
+
export type HeaderAccessoryBehavior = "pinned" | "sticky";
|