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.
Files changed (41) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/lib/module/components/header/parts/HeaderAccessory.js +25 -22
  3. package/lib/module/components/header/parts/HeaderAccessory.js.map +1 -1
  4. package/lib/module/components/header/parts/HeaderSurface.js +13 -20
  5. package/lib/module/components/header/parts/HeaderSurface.js.map +1 -1
  6. package/lib/module/components/header/variants/LargeTitleHeader/index.js +130 -42
  7. package/lib/module/components/header/variants/LargeTitleHeader/index.js.map +1 -1
  8. package/lib/module/components/header/variants/TitleHeader/index.js +5 -1
  9. package/lib/module/components/header/variants/TitleHeader/index.js.map +1 -1
  10. package/lib/module/components/screen/ScreenContext.js +7 -1
  11. package/lib/module/components/screen/ScreenContext.js.map +1 -1
  12. package/lib/module/components/screen/ScreenList.js +19 -2
  13. package/lib/module/components/screen/ScreenList.js.map +1 -1
  14. package/lib/module/components/screen/ScreenScrollView.js +5 -1
  15. package/lib/module/components/screen/ScreenScrollView.js.map +1 -1
  16. package/lib/typescript/src/components/header/index.d.ts +1 -1
  17. package/lib/typescript/src/components/header/index.d.ts.map +1 -1
  18. package/lib/typescript/src/components/header/parts/HeaderAccessory.d.ts +11 -11
  19. package/lib/typescript/src/components/header/parts/HeaderAccessory.d.ts.map +1 -1
  20. package/lib/typescript/src/components/header/parts/HeaderSurface.d.ts +8 -10
  21. package/lib/typescript/src/components/header/parts/HeaderSurface.d.ts.map +1 -1
  22. package/lib/typescript/src/components/header/types.d.ts +11 -7
  23. package/lib/typescript/src/components/header/types.d.ts.map +1 -1
  24. package/lib/typescript/src/components/header/variants/LargeTitleHeader/index.d.ts +8 -1
  25. package/lib/typescript/src/components/header/variants/LargeTitleHeader/index.d.ts.map +1 -1
  26. package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts +3 -4
  27. package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts.map +1 -1
  28. package/lib/typescript/src/components/screen/ScreenContext.d.ts +7 -0
  29. package/lib/typescript/src/components/screen/ScreenContext.d.ts.map +1 -1
  30. package/lib/typescript/src/components/screen/ScreenList.d.ts.map +1 -1
  31. package/lib/typescript/src/components/screen/ScreenScrollView.d.ts.map +1 -1
  32. package/package.json +1 -1
  33. package/src/components/header/index.ts +1 -1
  34. package/src/components/header/parts/HeaderAccessory.tsx +21 -23
  35. package/src/components/header/parts/HeaderSurface.tsx +17 -20
  36. package/src/components/header/types.ts +12 -7
  37. package/src/components/header/variants/LargeTitleHeader/index.tsx +110 -18
  38. package/src/components/header/variants/TitleHeader/index.tsx +15 -6
  39. package/src/components/screen/ScreenContext.tsx +16 -0
  40. package/src/components/screen/ScreenList.tsx +22 -2
  41. 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":"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","ignoreList":[]}
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":";;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;;AA+FA,OAAO,MAAMC,aAAa,gBAAGX,aAAa,CAA4B,IAAI,CAAC;;AAE3E;;AAmBA;AACA;AACA;AACA;AACA,OAAO,SAASY,oBAAoBA,CAAC;EACnCC,UAAU,GAAG,aAAa;EAC1BC,QAAQ;EACRC,cAAc,GAAG,KAAK;EACtBC,QAAQ,GAAG,MAAM;EACjBC,sBAAsB,GAAG,KAAK;EAC9BC,qBAAqB,GAAG,KAAK;EAC7BC,sBAAsB,GAAG,KAAK;EAC9BC,SAAS,GAAG;AACa,CAAC,EAAE;EAC5B,MAAMC,OAAO,GAAGd,cAAc,CAAC,CAAC,CAAC;EACjC,MAAM,CAACe,qBAAqB,EAAEC,kBAAkB,CAAC,GAAGnB,QAAQ,CAAC,CAAC,CAAC;EAC/D,MAAM,CAACoB,iBAAiB,EAAEC,aAAa,CAAC,GAAGrB,QAAQ,CAAC,CAAC,CAAC;EACtD,MAAMsB,oBAAoB,GAAGnB,cAAc,CAAC,CAAC,CAAC;EAC9C,MAAM,CAACoB,iBAAiB,EAAEC,oBAAoB,CAAC,GAAGxB,QAAQ,CAAW,CAAC;EACtE,MAAMyB,SAAS,GAAGxB,cAAc,CAAsB,CAAC;EAEvD,MAAMyB,uBAAuB,GAAG7B,WAAW,CACxC8B,MAAc,IAAK;IAClB,MAAMC,OAAO,GAAGC,IAAI,CAACC,KAAK,CAACH,MAAM,CAAC;IAClCL,oBAAoB,CAACS,KAAK,GAAGH,OAAO;IACpCJ,oBAAoB,CAACI,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAEA,OAAO,CAAC,GAAGI,SAAS,CAAC;EAC9D,CAAC,EACD,CAACV,oBAAoB,CACvB,CAAC;;EAED;EACA;EACA,MAAMW,wBAAwB,GAAGpC,WAAW,CAAE8B,MAAc,IAAK;IAC/DR,kBAAkB,CAACU,IAAI,CAACK,GAAG,CAAC,CAAC,EAAEL,IAAI,CAACC,KAAK,CAACH,MAAM,CAAC,CAAC,CAAC;EACrD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMQ,oBAAoB,GAAGtC,WAAW,CAAEuC,OAAe,IAAK;IAC5Df,aAAa,CAACQ,IAAI,CAACK,GAAG,CAAC,CAAC,EAAEL,IAAI,CAACC,KAAK,CAACM,OAAO,CAAC,CAAC,CAAC;EACjD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,aAAa,GAAGnC,wBAAwB,CAAC;IAC7CoC,QAAQ,EAAGC,KAAK,IAAK;MACnBtB,OAAO,CAACc,KAAK,GAAGQ,KAAK,CAACC,aAAa,CAACC,CAAC;IACvC;EACF,CAAC,CAAC;EAEF,MAAMV,KAAK,GAAGhC,OAAO,CACnB,OAAO;IACLU,UAAU;IACVE,cAAc;IACdC,QAAQ;IACRC,sBAAsB;IACtBC,qBAAqB;IACrBC,sBAAsB;IACtB2B,OAAO,EAAE/B,cAAc;IACvBK,SAAS;IACTE,qBAAqB;IACrBe,wBAAwB;IACxBb,iBAAiB;IACjBe,oBAAoB;IACpBlB,OAAO;IACPK,oBAAoB;IACpBC,iBAAiB;IACjBG,uBAAuB;IACvBD,SAAS;IACTY;EACF,CAAC,CAAC,EACF,CACE5B,UAAU,EACVE,cAAc,EACdC,QAAQ,EACRC,sBAAsB,EACtBC,qBAAqB,EACrBC,sBAAsB,EACtBC,SAAS,EACTE,qBAAqB,EACrBe,wBAAwB,EACxBb,iBAAiB,EACjBe,oBAAoB,EACpBlB,OAAO,EACPK,oBAAoB,EACpBC,iBAAiB,EACjBG,uBAAuB,EACvBD,SAAS,EACTY,aAAa,CAEjB,CAAC;EAED,oBAAOhC,IAAA,CAACE,aAAa,CAACoC,QAAQ;IAACZ,KAAK,EAAEA,KAAM;IAAArB,QAAA,EAAEA;EAAQ,CAAyB,CAAC;AAClF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASkC,SAASA,CAAA,EAAuB;EAC9C,MAAMC,OAAO,GAAG/C,UAAU,CAACS,aAAa,CAAC;EACzC,IAAI,CAACsC,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,kDAAkD,CAAC;EACrE;EACA,OAAOD,OAAO;AAChB","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","StyleSheet","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","contentOwnsBottomInset","platformAdjustsInsets","ownsBottomInset","mergedRef","resolvedPadding","resolvedLoading","placeholder","isEmpty","length","composedScrollHandler","header","children","View","styles","headerWrapper","name","footer","backgroundColor","contentInsetAdjustmentBehavior","automaticallyAdjustContentInsets","automaticallyAdjustsScrollIndicatorInsets","content","showsVerticalScrollIndicator","scrollEventThrottle","snapToOffsets","displayName","create","theme","runtime","padding","accessoryHeight","x","y","breakpoint","flexGrow","paddingTop","layout","height","paddingHorizontal","paddingBottom","uni__dependencies","marginHorizontal"],"sourceRoot":"../../../../src","sources":["components/screen/ScreenList.tsx"],"mappings":"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","ignoreList":[]}
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","y","breakpoint","flexGrow","paddingTop","layout","header","height","paddingHorizontal","paddingBottom","uni__dependencies","marginHorizontal","flexDirection"],"sourceRoot":"../../../../src","sources":["components/screen/ScreenScrollView.tsx"],"mappings":"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","ignoreList":[]}
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;AACtD,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
+ {"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
- * Pinned content below a header bar — a search field, a tab strip.
10
- *
11
- * Reports its measured height to the surrounding `Screen` so scroll containers
12
- * reserve it above their content. The theme header height covers the bar alone
13
- * and the accessory is whatever the caller passed, so nothing but a measurement
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,EAAsC,MAAM,OAAO,CAAC;AAM3E,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;CACjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,oBAAoB,+BAqB1E"}
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
- * The painted background behind a header — the bar, any accessory below it, and
13
- * the fade that releases scrolling content at the bottom edge.
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;CACpC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,kBAAkB,+BASzE"}
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 applied to a header accessory.
3
- *
4
- * - `'x'` — the screen's horizontal padding, matching the bar above it. What a
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;;;;;;;;GAQG;AACH,MAAM,MAAM,sBAAsB,GAAG,GAAG,GAAG,MAAM,CAAC"}
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;AA4DD;;;;;;;;;;;;;;;;;;;;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,aAAsB,EACtB,UAAU,EACV,SAAS,EACT,cAAyB,EACzB,kBAA0B,EAC1B,UAAU,EACV,EAAE,GACH,EAAE,qBAAqB,+BAmHvB"}
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 pinned directly below the bar — a search field, a scrollable tab
28
- * strip, a filter row. It stays put while the screen scrolls, and the
29
- * surrounding `Screen`'s scroll containers reserve its measured height so
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,EAAc,MAAM,OAAO,CAAC;AAKnD,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;;;;;OAKG;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,+BAuDlB"}
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,+BAmE3B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,IAAI,kBAAkB,CAM9C"}
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":"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"}
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,EAAE,MAAM,OAAO,CAAC;AAChF,OAAO,EAAmB,KAAK,eAAe,EAAE,KAAK,SAAS,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAa3G,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,8MA8E5B,CAAC"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-terra-ui",
3
- "version": "0.11.6",
3
+ "version": "0.11.8",
4
4
  "description": "Themeable React Native UI components built on react-native-unistyles",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -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, useContext, useEffect } from "react";
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
- * Pinned content below a header bar — a search field, a tab strip.
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
- setHeaderAccessoryHeight?.(event.nativeEvent.layout.height);
23
+ onHeightChange(event.nativeEvent.layout.height);
31
24
  },
32
- [setHeaderAccessoryHeight]
25
+ [onHeightChange]
33
26
  );
34
27
 
35
- // An unmounted accessory never lays out again, so without this the screen
36
- // would keep reserving room for content that is no longer there.
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
- * The painted background behind a header — the bar, any accessory below it, and
19
- * the fade that releases scrolling content at the bottom edge.
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
- // Covers the bar and any accessory, overhanging so the fade's tail finishes in
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
- // Collapses to nothing when there is no accessory, leaving the ramp alone.
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 applied to a header accessory.
3
- *
4
- * - `'x'` — the screen's horizontal padding, matching the bar above it. What a
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";