react-native-terra-ui 0.11.5 → 0.11.7

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 (54) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/lib/module/components/chip/Chip.js +25 -8
  3. package/lib/module/components/chip/Chip.js.map +1 -1
  4. package/lib/module/components/chip/utils.js +1 -1
  5. package/lib/module/components/chip/utils.js.map +1 -1
  6. package/lib/module/components/header/index.js.map +1 -1
  7. package/lib/module/components/header/parts/HeaderAccessory.js +58 -0
  8. package/lib/module/components/header/parts/HeaderAccessory.js.map +1 -0
  9. package/lib/module/components/header/parts/HeaderSurface.js +58 -0
  10. package/lib/module/components/header/parts/HeaderSurface.js.map +1 -0
  11. package/lib/module/components/header/types.js +2 -0
  12. package/lib/module/components/header/types.js.map +1 -0
  13. package/lib/module/components/header/variants/LargeTitleHeader/index.js +114 -46
  14. package/lib/module/components/header/variants/LargeTitleHeader/index.js.map +1 -1
  15. package/lib/module/components/header/variants/TitleHeader/index.js +33 -28
  16. package/lib/module/components/header/variants/TitleHeader/index.js.map +1 -1
  17. package/lib/module/components/screen/ScreenContext.js +16 -1
  18. package/lib/module/components/screen/ScreenContext.js.map +1 -1
  19. package/lib/module/components/screen/ScreenList.js +24 -5
  20. package/lib/module/components/screen/ScreenList.js.map +1 -1
  21. package/lib/module/components/screen/ScreenScrollView.js +10 -4
  22. package/lib/module/components/screen/ScreenScrollView.js.map +1 -1
  23. package/lib/typescript/src/components/chip/Chip.d.ts +8 -0
  24. package/lib/typescript/src/components/chip/Chip.d.ts.map +1 -1
  25. package/lib/typescript/src/components/chip/utils.d.ts +6 -1
  26. package/lib/typescript/src/components/chip/utils.d.ts.map +1 -1
  27. package/lib/typescript/src/components/header/index.d.ts +1 -0
  28. package/lib/typescript/src/components/header/index.d.ts.map +1 -1
  29. package/lib/typescript/src/components/header/parts/HeaderAccessory.d.ts +19 -0
  30. package/lib/typescript/src/components/header/parts/HeaderAccessory.d.ts.map +1 -0
  31. package/lib/typescript/src/components/header/parts/HeaderSurface.d.ts +22 -0
  32. package/lib/typescript/src/components/header/parts/HeaderSurface.d.ts.map +1 -0
  33. package/lib/typescript/src/components/header/types.d.ts +15 -0
  34. package/lib/typescript/src/components/header/types.d.ts.map +1 -0
  35. package/lib/typescript/src/components/header/variants/LargeTitleHeader/index.d.ts +8 -1
  36. package/lib/typescript/src/components/header/variants/LargeTitleHeader/index.d.ts.map +1 -1
  37. package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts +14 -1
  38. package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts.map +1 -1
  39. package/lib/typescript/src/components/screen/ScreenContext.d.ts +22 -0
  40. package/lib/typescript/src/components/screen/ScreenContext.d.ts.map +1 -1
  41. package/lib/typescript/src/components/screen/ScreenList.d.ts.map +1 -1
  42. package/lib/typescript/src/components/screen/ScreenScrollView.d.ts.map +1 -1
  43. package/package.json +1 -1
  44. package/src/components/chip/Chip.tsx +22 -9
  45. package/src/components/chip/utils.ts +7 -2
  46. package/src/components/header/index.ts +1 -0
  47. package/src/components/header/parts/HeaderAccessory.tsx +55 -0
  48. package/src/components/header/parts/HeaderSurface.tsx +62 -0
  49. package/src/components/header/types.ts +15 -0
  50. package/src/components/header/variants/LargeTitleHeader/index.tsx +114 -42
  51. package/src/components/header/variants/TitleHeader/index.tsx +45 -22
  52. package/src/components/screen/ScreenContext.tsx +42 -0
  53. package/src/components/screen/ScreenList.tsx +30 -5
  54. package/src/components/screen/ScreenScrollView.tsx +28 -6
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { View } from "react-native-unistyles/components/native/View";
4
4
  import { Text } from "react-native-unistyles/components/native/Text";
5
- import { useContext } from "react";
5
+ import { useCallback, useContext } from "react";
6
6
  import { StyleSheet, useUnistyles } from "react-native-unistyles";
7
7
  import { resolveThemeColor } from "../../../../utils/resolve-theme-color.js";
8
8
  import { FONT_WEIGHT_VALUE } from "../../../../utils/typography.js";
@@ -10,7 +10,8 @@ import { useHeaderBackground } from "../../../screen/parts/ScreenHeaderAppearanc
10
10
  import { ScreenContext } from "../../../screen/ScreenContext.js";
11
11
  import { Toolbar } from "../../../toolbar/index.js";
12
12
  import { HeaderDismissButton } from "../../header-buttons.js";
13
- import { HEADER_FADE_EXTENT, HeaderGradientOverlay } from "../../parts/HeaderGradientOverlay.js";
13
+ import { HeaderAccessory } from "../../parts/HeaderAccessory.js";
14
+ import { HeaderSurface } from "../../parts/HeaderSurface.js";
14
15
  import { isCustomTitle, isTextTitle } from "../../utils.js";
15
16
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
16
17
  /**
@@ -36,6 +37,8 @@ export function TitleHeader({
36
37
  trailingActions,
37
38
  LeftToolbar,
38
39
  RightToolbar,
40
+ accessory,
41
+ accessoryPadding = "x",
39
42
  dismissAction = "none",
40
43
  navigation,
41
44
  onDismiss,
@@ -52,6 +55,9 @@ export function TitleHeader({
52
55
  useHeaderBackground(bgColor);
53
56
  const leadingContent = leadingActions !== undefined ? leadingActions : LeftToolbar;
54
57
  const trailingContent = trailingActions !== undefined ? trailingActions : RightToolbar;
58
+ const setAccessoryInset = screen?.setHeaderAccessoryHeight;
59
+ // Compact headers always reserve the accessory height as top padding.
60
+ const handleAccessoryHeightChange = useCallback(height => setAccessoryInset?.(height), [setAccessoryInset]);
55
61
  const isTransparent = bgColor === "transparent";
56
62
  const gradientColor = bgColor;
57
63
  const _styles = styles;
@@ -78,25 +84,28 @@ export function TitleHeader({
78
84
  children: [/*#__PURE__*/_jsx(View, {
79
85
  style: styles.safeArea(isTransparent, bgColor, screen !== null)
80
86
  }), /*#__PURE__*/_jsxs(View, {
81
- style: styles.bar,
82
- children: [/*#__PURE__*/_jsx(View, {
83
- style: styles.gradient,
84
- pointerEvents: "none",
85
- children: /*#__PURE__*/_jsx(HeaderGradientOverlay, {
86
- color: gradientColor
87
- })
88
- }), leading != null && /*#__PURE__*/_jsx(Toolbar, {
89
- children: leading
90
- }), /*#__PURE__*/_jsx(View, {
91
- style: styles.titleContainer,
92
- pointerEvents: isCustomTitle(title) ? "box-none" : "none",
93
- children: isTextTitle(title) ? String(title).trim().length > 0 && /*#__PURE__*/_jsx(Text, {
94
- style: styles.title,
95
- children: title
96
- }) : title
97
- }), trailing != null && /*#__PURE__*/_jsx(Toolbar, {
98
- style: styles.trailing,
99
- children: trailing
87
+ style: styles.barGroup,
88
+ children: [/*#__PURE__*/_jsx(HeaderSurface, {
89
+ color: gradientColor
90
+ }), /*#__PURE__*/_jsxs(View, {
91
+ style: styles.bar,
92
+ children: [leading != null && /*#__PURE__*/_jsx(Toolbar, {
93
+ children: leading
94
+ }), /*#__PURE__*/_jsx(View, {
95
+ style: styles.titleContainer,
96
+ pointerEvents: isCustomTitle(title) ? "box-none" : "none",
97
+ children: isTextTitle(title) ? String(title).trim().length > 0 && /*#__PURE__*/_jsx(Text, {
98
+ style: styles.title,
99
+ children: title
100
+ }) : title
101
+ }), trailing != null && /*#__PURE__*/_jsx(Toolbar, {
102
+ style: styles.trailing,
103
+ children: trailing
104
+ })]
105
+ }), accessory != null && /*#__PURE__*/_jsx(HeaderAccessory, {
106
+ padding: accessoryPadding,
107
+ onHeightChange: handleAccessoryHeightChange,
108
+ children: accessory
100
109
  })]
101
110
  })]
102
111
  });
@@ -115,13 +124,9 @@ const styles = StyleSheet.create((theme, runtime) => ({
115
124
  backgroundColor: isTransparent ? "transparent" : bgColor,
116
125
  uni__dependencies: [9]
117
126
  }),
118
- // Extend the fade below the bar without clipping content or intercepting touches.
119
- gradient: {
120
- position: "absolute",
121
- top: 0,
122
- left: 0,
123
- right: 0,
124
- bottom: -HEADER_FADE_EXTENT
127
+ // Anchors the absolutely positioned surface over the bar and the accessory both.
128
+ barGroup: {
129
+ position: "relative"
125
130
  },
126
131
  bar: {
127
132
  height: theme.layout.header.height,
@@ -1 +1 @@
1
- {"version":3,"names":["useContext","StyleSheet","useUnistyles","resolveThemeColor","FONT_WEIGHT_VALUE","useHeaderBackground","ScreenContext","Toolbar","HeaderDismissButton","HEADER_FADE_EXTENT","HeaderGradientOverlay","isCustomTitle","isTextTitle","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","TitleHeader","title","leadingActions","trailingActions","LeftToolbar","RightToolbar","dismissAction","navigation","onDismiss","titleAlignment","background","bg","theme","screen","colorToken","bgColor","color","leadingContent","undefined","trailingContent","isTransparent","gradientColor","_styles","styles","useVariants","leading","children","trailing","View","style","container","safeArea","bar","gradient","pointerEvents","titleContainer","String","trim","length","Text","create","runtime","position","top","left","right","zIndex","withinScreen","height","insets","backgroundColor","uni__dependencies","bottom","layout","header","flexDirection","alignItems","paddingHorizontal","padding","x","gap","spacing","justifyContent","variants","center","marginLeft","flex","fontSize","typography","lineHeight","letterSpacing","fontWeight","textAlign"],"sourceRoot":"../../../../../../src","sources":["components/header/variants/TitleHeader/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useContext","StyleSheet","useUnistyles","resolveThemeColor","FONT_WEIGHT_VALUE","useHeaderBackground","ScreenContext","Toolbar","HeaderDismissButton","HeaderAccessory","HeaderSurface","isCustomTitle","isTextTitle","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","TitleHeader","title","leadingActions","trailingActions","LeftToolbar","RightToolbar","accessory","accessoryPadding","dismissAction","navigation","onDismiss","titleAlignment","background","bg","theme","screen","colorToken","bgColor","color","leadingContent","undefined","trailingContent","setAccessoryInset","setHeaderAccessoryHeight","handleAccessoryHeightChange","height","isTransparent","gradientColor","_styles","styles","useVariants","leading","children","trailing","View","style","container","safeArea","barGroup","bar","titleContainer","pointerEvents","String","trim","length","Text","padding","onHeightChange","create","runtime","position","top","left","right","zIndex","withinScreen","insets","backgroundColor","uni__dependencies","layout","header","flexDirection","alignItems","paddingHorizontal","x","gap","spacing","justifyContent","variants","center","marginLeft","flex","fontSize","typography","lineHeight","letterSpacing","fontWeight","textAlign"],"sourceRoot":"../../../../../../src","sources":["components/header/variants/TitleHeader/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -29,6 +29,8 @@ export function ScreenScrollProvider({
29
29
  hasHeader = false
30
30
  }) {
31
31
  const scrollY = useSharedValue(0);
32
+ const [headerAccessoryHeight, setAccessoryHeight] = useState(0);
33
+ const [contentTopPadding, setTopPadding] = useState(0);
32
34
  const headerCollapseHeight = useSharedValue(0);
33
35
  const [headerSnapOffsets, setHeaderSnapOffsets] = useState();
34
36
  const scrollRef = useAnimatedRef();
@@ -37,6 +39,15 @@ export function ScreenScrollProvider({
37
39
  headerCollapseHeight.value = rounded;
38
40
  setHeaderSnapOffsets(rounded > 0 ? [0, rounded] : undefined);
39
41
  }, [headerCollapseHeight]);
42
+
43
+ // Rounded so a subpixel layout measurement cannot loop the content padding
44
+ // against the layout that produced it.
45
+ const setHeaderAccessoryHeight = useCallback(height => {
46
+ setAccessoryHeight(Math.max(0, Math.round(height)));
47
+ }, []);
48
+ const setContentTopPadding = useCallback(padding => {
49
+ setTopPadding(Math.max(0, Math.round(padding)));
50
+ }, []);
40
51
  const scrollHandler = useAnimatedScrollHandler({
41
52
  onScroll: event => {
42
53
  scrollY.value = event.contentOffset.y;
@@ -51,13 +62,17 @@ export function ScreenScrollProvider({
51
62
  platformInsetsEligible,
52
63
  margins: contentPadding,
53
64
  hasHeader,
65
+ headerAccessoryHeight,
66
+ setHeaderAccessoryHeight,
67
+ contentTopPadding,
68
+ setContentTopPadding,
54
69
  scrollY,
55
70
  headerCollapseHeight,
56
71
  headerSnapOffsets,
57
72
  setHeaderCollapseHeight,
58
73
  scrollRef,
59
74
  scrollHandler
60
- }), [background, contentPadding, safeArea, contentOwnsBottomInset, platformAdjustsInsets, platformInsetsEligible, hasHeader, scrollY, headerCollapseHeight, headerSnapOffsets, setHeaderCollapseHeight, scrollRef, scrollHandler]);
75
+ }), [background, contentPadding, safeArea, contentOwnsBottomInset, platformAdjustsInsets, platformInsetsEligible, hasHeader, headerAccessoryHeight, setHeaderAccessoryHeight, contentTopPadding, setContentTopPadding, scrollY, headerCollapseHeight, headerSnapOffsets, setHeaderCollapseHeight, scrollRef, scrollHandler]);
61
76
  return /*#__PURE__*/_jsx(ScreenContext.Provider, {
62
77
  value: value,
63
78
  children: children
@@ -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","headerCollapseHeight","headerSnapOffsets","setHeaderSnapOffsets","scrollRef","setHeaderCollapseHeight","height","rounded","Math","round","value","undefined","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;;AAyEA,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,MAAMe,oBAAoB,GAAGf,cAAc,CAAC,CAAC,CAAC;EAC9C,MAAM,CAACgB,iBAAiB,EAAEC,oBAAoB,CAAC,GAAGpB,QAAQ,CAAW,CAAC;EACtE,MAAMqB,SAAS,GAAGpB,cAAc,CAAsB,CAAC;EAEvD,MAAMqB,uBAAuB,GAAGzB,WAAW,CACxC0B,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,MAAMW,aAAa,GAAG3B,wBAAwB,CAAC;IAC7C4B,QAAQ,EAAGC,KAAK,IAAK;MACnBd,OAAO,CAACU,KAAK,GAAGI,KAAK,CAACC,aAAa,CAACC,CAAC;IACvC;EACF,CAAC,CAAC;EAEF,MAAMN,KAAK,GAAG5B,OAAO,CACnB,OAAO;IACLU,UAAU;IACVE,cAAc;IACdC,QAAQ;IACRC,sBAAsB;IACtBC,qBAAqB;IACrBC,sBAAsB;IACtBmB,OAAO,EAAEvB,cAAc;IACvBK,SAAS;IACTC,OAAO;IACPC,oBAAoB;IACpBC,iBAAiB;IACjBG,uBAAuB;IACvBD,SAAS;IACTQ;EACF,CAAC,CAAC,EACF,CACEpB,UAAU,EACVE,cAAc,EACdC,QAAQ,EACRC,sBAAsB,EACtBC,qBAAqB,EACrBC,sBAAsB,EACtBC,SAAS,EACTC,OAAO,EACPC,oBAAoB,EACpBC,iBAAiB,EACjBG,uBAAuB,EACvBD,SAAS,EACTQ,aAAa,CAEjB,CAAC;EAED,oBAAOxB,IAAA,CAACE,aAAa,CAAC4B,QAAQ;IAACR,KAAK,EAAEA,KAAM;IAAAjB,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,SAAS0B,SAASA,CAAA,EAAuB;EAC9C,MAAMC,OAAO,GAAGvC,UAAU,CAACS,aAAa,CAAC;EACzC,IAAI,CAAC8B,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,kDAAkD,CAAC;EACrE;EACA,OAAOD,OAAO;AAChB","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":"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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";
@@ -62,6 +63,8 @@ const ScreenListBase = /*#__PURE__*/forwardRef(function ScreenList({
62
63
  headerSnapOffsets,
63
64
  contentPadding: screenPadding,
64
65
  hasHeader,
66
+ headerAccessoryHeight,
67
+ setContentTopPadding,
65
68
  contentOwnsBottomInset,
66
69
  platformAdjustsInsets
67
70
  } = useScreen();
@@ -71,6 +74,21 @@ const ScreenListBase = /*#__PURE__*/forwardRef(function ScreenList({
71
74
  useNestedContainerWarning("Screen.List", horizontal);
72
75
  const mergedRef = useScreenRef(isDefaultFlatList ? scrollRef : undefined, ref);
73
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]);
74
92
  const resolvedLoading = isLoading ?? loading;
75
93
  const placeholder = renderScreenPlaceholder({
76
94
  isLoading: resolvedLoading,
@@ -106,7 +124,7 @@ const ScreenListBase = /*#__PURE__*/forwardRef(function ScreenList({
106
124
  contentInsetAdjustmentBehavior: platformAdjustsInsets ? "automatic" : "never",
107
125
  automaticallyAdjustContentInsets: false,
108
126
  automaticallyAdjustsScrollIndicatorInsets: false,
109
- contentContainerStyle: [styles.content(resolvedPadding, hasHeader, bottomInset, extraBottomPadding), contentContainerStyle],
127
+ contentContainerStyle: [styles.content(resolvedPadding, hasHeader, bottomInset, extraBottomPadding, headerAccessoryHeight), contentContainerStyle],
110
128
  ListHeaderComponent: header,
111
129
  ListFooterComponent: footer,
112
130
  ListEmptyComponent: placeholder ?? ListEmptyComponent,
@@ -139,14 +157,15 @@ const ScreenListBase = /*#__PURE__*/forwardRef(function ScreenList({
139
157
  export const ScreenList = ScreenListBase;
140
158
  ScreenList.displayName = "Screen.List";
141
159
  const styles = StyleSheet.create((theme, runtime) => ({
142
- content: (padding, hasHeader, bottomInset, extraBottomPadding) => {
160
+ content: (padding, hasHeader, bottomInset, extraBottomPadding, accessoryHeight) => {
143
161
  const {
144
162
  x,
145
163
  y
146
164
  } = resolveScreenPadding(theme, runtime.breakpoint);
147
165
  return {
148
166
  flexGrow: 1,
149
- paddingTop: (hasHeader ? theme.layout.header.height : 0) + (hasVerticalPadding(padding) ? y : 0),
167
+ // The theme height covers the bar; an accessory pinned under it is extra.
168
+ paddingTop: (hasHeader ? theme.layout.header.height + accessoryHeight : 0) + (hasVerticalPadding(padding) ? y : 0),
150
169
  paddingHorizontal: hasHorizontalPadding(padding) ? x : 0,
151
170
  paddingBottom: (bottomInset ?? (hasVerticalPadding(padding) ? y : 0)) + extraBottomPadding,
152
171
  uni__dependencies: [0, 3]
@@ -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","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","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";
@@ -58,6 +58,8 @@ export const ScreenScrollView = /*#__PURE__*/forwardRef(function ScreenScrollVie
58
58
  scrollHandler,
59
59
  contentPadding: screenPadding,
60
60
  hasHeader,
61
+ headerAccessoryHeight,
62
+ setContentTopPadding,
61
63
  background,
62
64
  contentOwnsBottomInset,
63
65
  platformAdjustsInsets
@@ -75,6 +77,8 @@ export const ScreenScrollView = /*#__PURE__*/forwardRef(function ScreenScrollVie
75
77
  isEmpty: isEmpty ?? Children.toArray(children).length === 0
76
78
  });
77
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]);
78
82
  return /*#__PURE__*/_jsxs(Animated.ScrollView, {
79
83
  ref: mergedRef,
80
84
  style: [{
@@ -91,11 +95,12 @@ export const ScreenScrollView = /*#__PURE__*/forwardRef(function ScreenScrollVie
91
95
  automaticallyAdjustsScrollIndicatorInsets: false,
92
96
  showsVerticalScrollIndicator: false,
93
97
  scrollEventThrottle: 16,
94
- contentContainerStyle: [styles.scrollContent(hasHeader, resolvedPadding, extraBottomPadding), contentContainerStyle],
98
+ contentContainerStyle: [styles.scrollContent(hasHeader, resolvedPadding, extraBottomPadding, headerAccessoryHeight), contentContainerStyle],
95
99
  ...rest,
96
100
  onScroll: composedScrollHandler,
97
101
  children: [/*#__PURE__*/_jsx(View, {
98
102
  style: styles.headerWrapper(resolvedPadding),
103
+ onLayout: handleHeaderWrapperLayout,
99
104
  children: /*#__PURE__*/_jsx(PortalHost, {
100
105
  name: SCREEN_HEADER_PORTAL_HOST
101
106
  })
@@ -107,14 +112,15 @@ export const ScreenScrollView = /*#__PURE__*/forwardRef(function ScreenScrollVie
107
112
  });
108
113
  ScreenScrollView.displayName = "Screen.ScrollView";
109
114
  const styles = StyleSheet.create((theme, runtime) => ({
110
- scrollContent: (hasHeader, padding, extraBottomPadding) => {
115
+ scrollContent: (hasHeader, padding, extraBottomPadding, accessoryHeight) => {
111
116
  const {
112
117
  x,
113
118
  y
114
119
  } = resolveScreenPadding(theme, runtime.breakpoint);
115
120
  return {
116
121
  flexGrow: 1,
117
- paddingTop: (hasHeader ? theme.layout.header.height : 0) + (hasVerticalPadding(padding) ? y : 0),
122
+ // The theme height covers the bar; an accessory pinned under it is extra.
123
+ paddingTop: (hasHeader ? theme.layout.header.height + accessoryHeight : 0) + (hasVerticalPadding(padding) ? y : 0),
118
124
  paddingHorizontal: hasHorizontalPadding(padding) ? x : 0,
119
125
  paddingBottom: (hasVerticalPadding(padding) ? y : 0) + extraBottomPadding,
120
126
  uni__dependencies: [0, 3]
@@ -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","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","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":[]}
@@ -6,6 +6,14 @@ export interface ChipProps extends ViewProps {
6
6
  size?: ChipSize;
7
7
  variant?: ChipVariant;
8
8
  color?: ChipColor;
9
+ /**
10
+ * Fill behind the chip, overriding the one its `variant` would paint.
11
+ *
12
+ * Only `outline` has a fill worth naming a default for — `'surface.default'`,
13
+ * so an outlined chip reads as a solid capsule rather than a ring over
14
+ * whatever it happens to sit on. Pass `'transparent'` to get the ring back.
15
+ */
16
+ background?: ColorToken;
9
17
  children?: ReactNode;
10
18
  }
11
19
  export interface ChipIconProps extends Omit<ViewProps, "children"> {
@@ -1 +1 @@
1
- {"version":3,"file":"Chip.d.ts","sourceRoot":"","sources":["../../../../../src/components/chip/Chip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0D,KAAK,SAAS,EAAc,MAAM,OAAO,CAAC;AAC3G,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpE,OAAO,KAAK,EAAE,UAAU,EAAmB,aAAa,EAAE,MAAM,cAAc,CAAC;AAI/E,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAS,CAAC;AAGhE,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA6HD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IAChE,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,QAAA,MAAM,QAAQ,GAAI,8DAA8D,aAAa,gCAa5F,CAAC;AAgBF,QAAA,MAAM,QAAQ,uLAgCZ,CAAC;AAEH,KAAK,aAAa,GAAG,OAAO,QAAQ,GAAG;IACrC,IAAI,EAAE,OAAO,QAAQ,CAAC;CACvB,CAAC;AAiBF,eAAO,MAAM,IAAI,EAA8B,aAAa,CAAC"}
1
+ {"version":3,"file":"Chip.d.ts","sourceRoot":"","sources":["../../../../../src/components/chip/Chip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0D,KAAK,SAAS,EAAc,MAAM,OAAO,CAAC;AAC3G,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpE,OAAO,KAAK,EAAE,UAAU,EAAmB,aAAa,EAAE,MAAM,cAAc,CAAC;AAI/E,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAS,CAAC;AAGhE,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA6HD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IAChE,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,QAAA,MAAM,QAAQ,GAAI,8DAA8D,aAAa,gCAa5F,CAAC;AAgBF,QAAA,MAAM,QAAQ,uLAsCZ,CAAC;AAEH,KAAK,aAAa,GAAG,OAAO,QAAQ,GAAG;IACrC,IAAI,EAAE,OAAO,QAAQ,CAAC;CACvB,CAAC;AAiBF,eAAO,MAAM,IAAI,EAA8B,aAAa,CAAC"}
@@ -1,5 +1,10 @@
1
1
  export interface CustomChipColors {
2
- bg: string;
2
+ /**
3
+ * Undefined for `outline`, which takes the fill its style variant paints
4
+ * rather than deriving one — the outlined chip's fill is a surface, not a
5
+ * tint of the literal, so there is nothing here to derive it from.
6
+ */
7
+ bg: string | undefined;
3
8
  border: string;
4
9
  borderWidth: number;
5
10
  fg: string;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/chip/utils.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;CACZ;AAID,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GACpC,gBAAgB,CAqBlB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/chip/utils.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;CACZ;AAID,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GACpC,gBAAgB,CAqBlB"}
@@ -1,5 +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 { HeaderAccessoryBehavior, HeaderAccessoryPadding } from "./types.js";
3
4
  export type { LargeTitleHeaderProps } from "./variants/LargeTitleHeader/index.js";
4
5
  export { LargeTitleHeader } from "./variants/LargeTitleHeader/index.js";
5
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,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"}
@@ -0,0 +1,19 @@
1
+ import { type ReactNode } from "react";
2
+ import { type StyleProp, type ViewStyle } from "react-native";
3
+ import type { HeaderAccessoryPadding } from "../types.js";
4
+ export interface HeaderAccessoryProps {
5
+ children: ReactNode;
6
+ /** Horizontal padding around the accessory. */
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>;
12
+ }
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
+ //# sourceMappingURL=HeaderAccessory.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,22 @@
1
+ import { type useAnimatedStyle } from "react-native-reanimated";
2
+ type HeaderOpacityStyle = ReturnType<typeof useAnimatedStyle<{
3
+ opacity: number;
4
+ }>>;
5
+ export interface HeaderSurfaceProps {
6
+ /** Fill color, fading to fully transparent along the bottom edge. */
7
+ color: string;
8
+ /** Opacity style for variants that fade the whole surface in as they collapse. */
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;
15
+ }
16
+ /**
17
+ * Header background with a solid fill and a bottom gradient.
18
+ * A fixed gradient height keeps tall accessories from becoming translucent.
19
+ */
20
+ export declare function HeaderSurface({ color, animatedStyle, fadeHeight }: HeaderSurfaceProps): import("react").JSX.Element;
21
+ export {};
22
+ //# sourceMappingURL=HeaderSurface.d.ts.map
@@ -0,0 +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;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"}
@@ -0,0 +1,15 @@
1
+ /**
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.
5
+ */
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";
15
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
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, 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":"AAeA,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,aAAsB,EACtB,UAAU,EACV,SAAS,EACT,cAAyB,EACzB,kBAA0B,EAC1B,UAAU,EACV,EAAE,GACH,EAAE,qBAAqB,+BA+GvB"}
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,+BAsKvB"}
@@ -1,6 +1,7 @@
1
1
  import { type ReactNode } from "react";
2
2
  import type { ColorToken } from "../../../../theme/types";
3
3
  import { type HeaderDismissProps } from "../../header-buttons.js";
4
+ import type { HeaderAccessoryPadding } from "../../types.js";
4
5
  export interface TitleHeaderProps extends HeaderDismissProps {
5
6
  /**
6
7
  * A `string` (or `number`) is painted in the header's own title style. Any
@@ -22,6 +23,18 @@ export interface TitleHeaderProps extends HeaderDismissProps {
22
23
  trailingActions?: ReactNode;
23
24
  /** @deprecated Use trailingActions. */
24
25
  RightToolbar?: ReactNode;
26
+ /**
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`.
30
+ */
31
+ accessory?: ReactNode;
32
+ /**
33
+ * Horizontal padding around `accessory`. Use `'none'` for content that should
34
+ * run to the screen edge, such as a horizontally scrolling tab strip.
35
+ * Defaults to `'x'`, matching the bar.
36
+ */
37
+ accessoryPadding?: HeaderAccessoryPadding;
25
38
  /** Title placement within the bar. Defaults to `'center'`. */
26
39
  titleAlignment?: "center" | "left";
27
40
  /** Color token for the top safe area and fading bar overlay. Defaults to the Screen background. */
@@ -46,5 +59,5 @@ export interface TitleHeaderProps extends HeaderDismissProps {
46
59
  * </Screen.Header>
47
60
  * ```
48
61
  */
49
- export declare function TitleHeader({ title, leadingActions, trailingActions, LeftToolbar, RightToolbar, dismissAction, navigation, onDismiss, titleAlignment, background, bg, }: TitleHeaderProps): import("react").JSX.Element;
62
+ export declare function TitleHeader({ title, leadingActions, trailingActions, LeftToolbar, RightToolbar, accessory, accessoryPadding, dismissAction, navigation, onDismiss, titleAlignment, background, bg, }: TitleHeaderProps): import("react").JSX.Element;
50
63
  //# sourceMappingURL=index.d.ts.map