react-native-terra-ui 0.11.11 → 0.11.12

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 (51) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/lib/module/components/header/hooks/use-header-color.js +16 -0
  3. package/lib/module/components/header/hooks/use-header-color.js.map +1 -0
  4. package/lib/module/components/header/hooks/use-large-title-header.js +81 -0
  5. package/lib/module/components/header/hooks/use-large-title-header.js.map +1 -0
  6. package/lib/module/components/header/parts/HeaderAccessory.js +21 -6
  7. package/lib/module/components/header/parts/HeaderAccessory.js.map +1 -1
  8. package/lib/module/components/header/parts/HeaderBar.js +122 -0
  9. package/lib/module/components/header/parts/HeaderBar.js.map +1 -0
  10. package/lib/module/components/header/parts/HeaderGradientOverlay.js +5 -3
  11. package/lib/module/components/header/parts/HeaderGradientOverlay.js.map +1 -1
  12. package/lib/module/components/header/parts/HeaderSurface.js +8 -14
  13. package/lib/module/components/header/parts/HeaderSurface.js.map +1 -1
  14. package/lib/module/components/header/variants/LargeTitleHeader/index.js +51 -386
  15. package/lib/module/components/header/variants/LargeTitleHeader/index.js.map +1 -1
  16. package/lib/module/components/header/variants/LargeTitleHeader/parts/LargeTitleContent.js +72 -0
  17. package/lib/module/components/header/variants/LargeTitleHeader/parts/LargeTitleContent.js.map +1 -0
  18. package/lib/module/components/header/variants/TitleHeader/index.js +32 -160
  19. package/lib/module/components/header/variants/TitleHeader/index.js.map +1 -1
  20. package/lib/module/components/surface/Surface.js +2 -0
  21. package/lib/module/components/surface/Surface.js.map +1 -1
  22. package/lib/typescript/src/components/header/hooks/use-header-color.d.ts +4 -0
  23. package/lib/typescript/src/components/header/hooks/use-header-color.d.ts.map +1 -0
  24. package/lib/typescript/src/components/header/hooks/use-large-title-header.d.ts +36 -0
  25. package/lib/typescript/src/components/header/hooks/use-large-title-header.d.ts.map +1 -0
  26. package/lib/typescript/src/components/header/parts/HeaderAccessory.d.ts +8 -5
  27. package/lib/typescript/src/components/header/parts/HeaderAccessory.d.ts.map +1 -1
  28. package/lib/typescript/src/components/header/parts/HeaderBar.d.ts +17 -0
  29. package/lib/typescript/src/components/header/parts/HeaderBar.d.ts.map +1 -0
  30. package/lib/typescript/src/components/header/parts/HeaderGradientOverlay.d.ts +3 -1
  31. package/lib/typescript/src/components/header/parts/HeaderGradientOverlay.d.ts.map +1 -1
  32. package/lib/typescript/src/components/header/parts/HeaderSurface.d.ts +5 -9
  33. package/lib/typescript/src/components/header/parts/HeaderSurface.d.ts.map +1 -1
  34. package/lib/typescript/src/components/header/variants/LargeTitleHeader/index.d.ts +3 -23
  35. package/lib/typescript/src/components/header/variants/LargeTitleHeader/index.d.ts.map +1 -1
  36. package/lib/typescript/src/components/header/variants/LargeTitleHeader/parts/LargeTitleContent.d.ts +11 -0
  37. package/lib/typescript/src/components/header/variants/LargeTitleHeader/parts/LargeTitleContent.d.ts.map +1 -0
  38. package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts +3 -19
  39. package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts.map +1 -1
  40. package/lib/typescript/src/components/surface/Surface.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/src/components/header/hooks/use-header-color.ts +14 -0
  43. package/src/components/header/hooks/use-large-title-header.ts +78 -0
  44. package/src/components/header/parts/HeaderAccessory.tsx +26 -7
  45. package/src/components/header/parts/HeaderBar.tsx +125 -0
  46. package/src/components/header/parts/HeaderGradientOverlay.tsx +9 -3
  47. package/src/components/header/parts/HeaderSurface.tsx +11 -17
  48. package/src/components/header/variants/LargeTitleHeader/index.tsx +44 -369
  49. package/src/components/header/variants/LargeTitleHeader/parts/LargeTitleContent.tsx +88 -0
  50. package/src/components/header/variants/TitleHeader/index.tsx +32 -146
  51. package/src/components/surface/Surface.tsx +2 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.11.12](https://github.com/earthlin9/react-native-terra-ui/compare/v0.11.11...v0.11.12) (2026-09-17)
4
+
5
+ ### Features
6
+
7
+ * **ui:** [surface] add default content padding ([966c38a](https://github.com/earthlin9/react-native-terra-ui/commit/966c38adb42d3b596e577f6c4116896680d27d6e))
8
+
9
+ ### Bug Fixes
10
+
11
+ * **ui:** [header] unify layout and preserve accessory gradients and padding ([637e3e1](https://github.com/earthlin9/react-native-terra-ui/commit/637e3e19fab4b4e30b6f80873d72acd7167a3a69))
12
+
3
13
  ## [0.11.11](https://github.com/earthlin9/react-native-terra-ui/compare/v0.11.10...v0.11.11) (2026-09-17)
4
14
 
5
15
  ### Features
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ import { useContext } from "react";
4
+ import { useUnistyles } from "react-native-unistyles";
5
+ import { resolveThemeColor } from "../../../utils/resolve-theme-color.js";
6
+ import { ScreenContext } from "../../screen/ScreenContext.js";
7
+
8
+ /** Explicit header color wins, then Screen, then the theme canvas. */
9
+ export function useHeaderColor(token) {
10
+ const {
11
+ theme
12
+ } = useUnistyles();
13
+ const screen = useContext(ScreenContext);
14
+ return (token ? resolveThemeColor(token, theme) : screen?.background) ?? theme.color["surface.canvas"];
15
+ }
16
+ //# sourceMappingURL=use-header-color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useContext","useUnistyles","resolveThemeColor","ScreenContext","useHeaderColor","token","theme","screen","background","color"],"sourceRoot":"../../../../../src","sources":["components/header/hooks/use-header-color.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAElC,SAASC,YAAY,QAAQ,wBAAwB;AAGrD,SAASC,iBAAiB;AAC1B,SAASC,aAAa;;AAEtB;AACA,OAAO,SAASC,cAAcA,CAACC,KAAkB,EAAE;EACjD,MAAM;IAAEC;EAAM,CAAC,GAAGL,YAAY,CAAC,CAAC;EAChC,MAAMM,MAAM,GAAGP,UAAU,CAACG,aAAa,CAAC;EACxC,OAAO,CAACE,KAAK,GAAGH,iBAAiB,CAACG,KAAK,EAAEC,KAAK,CAAC,GAAGC,MAAM,EAAEC,UAAU,KAAKF,KAAK,CAACG,KAAK,CAAC,gBAAgB,CAAC;AACxG","ignoreList":[]}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ import { useEffect, useLayoutEffect, useState } from "react";
4
+ import { interpolate, useAnimatedStyle, useSharedValue } from "react-native-reanimated";
5
+ import { useUnistyles } from "react-native-unistyles";
6
+ import { useScreen } from "../../screen/ScreenContext.js";
7
+ /** Coordinates measured layout and UI-thread animation without animating accessory padding. */
8
+ export function useLargeTitleHeader({
9
+ hasAccessory,
10
+ accessoryBehavior,
11
+ isLargeTitleHidden
12
+ }) {
13
+ const {
14
+ theme
15
+ } = useUnistyles();
16
+ const {
17
+ scrollY,
18
+ contentTopPadding,
19
+ setHeaderAccessoryHeight
20
+ } = useScreen();
21
+ const [accessoryHeight, setAccessoryHeight] = useState(0);
22
+ const [largeTitleHeight, setLargeTitleHeight] = useState(0);
23
+ const hidden = useSharedValue(isLargeTitleHidden);
24
+ useEffect(() => {
25
+ hidden.value = isLargeTitleHidden;
26
+ }, [hidden, isLargeTitleHidden]);
27
+ const barHeight = theme.layout.header.height;
28
+ const isSticky = hasAccessory && accessoryBehavior === "sticky" && !isLargeTitleHidden;
29
+ // The measured overlay always includes bottom padding. Expanded scroll content
30
+ // excludes it; compact-only screens reserve the entire accessory.
31
+ const reservedAccessoryHeight = hasAccessory ? Math.max(0, Math.round(accessoryHeight - (isLargeTitleHidden ? 0 : theme.spacing["2"]))) : 0;
32
+ const accessoryOffset = isSticky ? Math.max(0, contentTopPadding + largeTitleHeight - barHeight) : 0;
33
+ useLayoutEffect(() => {
34
+ setHeaderAccessoryHeight(isSticky ? 0 : reservedAccessoryHeight);
35
+ return () => setHeaderAccessoryHeight(0);
36
+ }, [isSticky, reservedAccessoryHeight, setHeaderAccessoryHeight]);
37
+ const accessoryStyle = useAnimatedStyle(() => ({
38
+ transform: [{
39
+ translateY: isSticky && !hidden.value ? Math.max(0, accessoryOffset - scrollY.value) : 0
40
+ }]
41
+ }));
42
+ const surfaceStyle = useAnimatedStyle(() => {
43
+ if (hidden.value) return {
44
+ opacity: 1
45
+ };
46
+ const distance = isSticky ? accessoryOffset : barHeight;
47
+ return {
48
+ opacity: distance > 0 ? interpolate(scrollY.value, [0, distance], [0, 1], "clamp") : isSticky ? 1 : 0
49
+ };
50
+ });
51
+ const compactTitleStyle = useAnimatedStyle(() => {
52
+ const progress = hidden.value ? 1 : barHeight > 0 ? interpolate(scrollY.value, [0, barHeight], [0, 1], "clamp") : 0;
53
+ return {
54
+ opacity: progress,
55
+ transform: [{
56
+ translateY: (1 - progress) * 8
57
+ }]
58
+ };
59
+ });
60
+ const largeTitleStyle = useAnimatedStyle(() => {
61
+ const progress = barHeight > 0 ? interpolate(scrollY.value, [0, barHeight], [0, 1], "clamp") : 0;
62
+ return {
63
+ opacity: 1 - progress,
64
+ transform: [{
65
+ translateY: -progress * 6
66
+ }]
67
+ };
68
+ });
69
+ return {
70
+ isSticky,
71
+ accessoryOffset,
72
+ reservedAccessoryHeight,
73
+ setAccessoryHeight,
74
+ setLargeTitleHeight,
75
+ accessoryStyle,
76
+ surfaceStyle,
77
+ compactTitleStyle,
78
+ largeTitleStyle
79
+ };
80
+ }
81
+ //# sourceMappingURL=use-large-title-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useLayoutEffect","useState","interpolate","useAnimatedStyle","useSharedValue","useUnistyles","useScreen","useLargeTitleHeader","hasAccessory","accessoryBehavior","isLargeTitleHidden","theme","scrollY","contentTopPadding","setHeaderAccessoryHeight","accessoryHeight","setAccessoryHeight","largeTitleHeight","setLargeTitleHeight","hidden","value","barHeight","layout","header","height","isSticky","reservedAccessoryHeight","Math","max","round","spacing","accessoryOffset","accessoryStyle","transform","translateY","surfaceStyle","opacity","distance","compactTitleStyle","progress","largeTitleStyle"],"sourceRoot":"../../../../../src","sources":["components/header/hooks/use-large-title-header.ts"],"mappings":"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","ignoreList":[]}
@@ -1,32 +1,44 @@
1
1
  "use strict";
2
2
 
3
3
  import { View } from "react-native-unistyles/components/native/View";
4
- import { useCallback, useEffect } from "react";
4
+ import { useCallback, useLayoutEffect, useRef } from "react";
5
5
  import Animated from "react-native-reanimated";
6
6
  import { StyleSheet } from "react-native-unistyles";
7
- import { jsx as _jsx } from "react/jsx-runtime";
7
+ import { HeaderSurface } from "./HeaderSurface.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
9
  /** Measures accessory content so the header can reserve space in the scroll container. */
9
10
  export function HeaderAccessory({
10
11
  children,
11
12
  padding,
13
+ color,
14
+ surfaceStyle,
12
15
  onHeightChange,
13
16
  style
14
17
  }) {
18
+ const measuredHeight = useRef(0);
15
19
  const handleLayout = useCallback(event => {
16
- onHeightChange(event.nativeEvent.layout.height);
20
+ measuredHeight.current = event.nativeEvent.layout.height;
21
+ onHeightChange?.(measuredHeight.current);
17
22
  }, [onHeightChange]);
18
23
 
19
24
  // Release the previous owner’s space when the callback changes or the accessory unmounts.
20
- useEffect(() => () => onHeightChange(0), [onHeightChange]);
25
+ useLayoutEffect(() => {
26
+ onHeightChange?.(measuredHeight.current);
27
+ return () => onHeightChange?.(0);
28
+ }, [onHeightChange]);
21
29
  const _styles = styles;
22
30
  {
23
31
  const styles = _styles.useVariants({
24
32
  padding
25
33
  });
26
- return /*#__PURE__*/_jsx(Animated.View, {
34
+ return /*#__PURE__*/_jsxs(Animated.View, {
27
35
  style: [styles.accessory, style],
28
36
  onLayout: handleLayout,
29
- children: children
37
+ children: [/*#__PURE__*/_jsx(HeaderSurface, {
38
+ color: color,
39
+ animatedStyle: surfaceStyle,
40
+ accessory: true
41
+ }), children]
30
42
  });
31
43
  }
32
44
  }
@@ -41,6 +53,9 @@ export function HeaderAccessorySpacer({
41
53
  }
42
54
  const styles = StyleSheet.create(theme => ({
43
55
  accessory: {
56
+ // Static layout padding is intentional: the background must measure the full
57
+ // padded height even when a horizontal ScrollView is the accessory content.
58
+ paddingBottom: theme.spacing["2"],
44
59
  variants: {
45
60
  padding: {
46
61
  x: {
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","Animated","StyleSheet","jsx","_jsx","HeaderAccessory","children","padding","onHeightChange","style","handleLayout","event","nativeEvent","layout","height","_styles","styles","useVariants","View","accessory","onLayout","HeaderAccessorySpacer","spacer","create","theme","variants","x","paddingHorizontal","screen","none","uni__dependencies"],"sourceRoot":"../../../../../src","sources":["components/header/parts/HeaderAccessory.tsx"],"mappings":";;;AAAA,SAAyBA,WAAW,EAAEC,SAAS,QAAQ,OAAO;AAG9D,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,UAAU,QAAQ,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAcpD;AACA,OAAO,SAASC,eAAeA,CAAC;EAAEC,QAAQ;EAAEC,OAAO;EAAEC,cAAc;EAAEC;AAA4B,CAAC,EAAE;EAClG,MAAMC,YAAY,GAAGX,WAAW,CAC7BY,KAAwB,IAAK;IAC5BH,cAAc,CAACG,KAAK,CAACC,WAAW,CAACC,MAAM,CAACC,MAAM,CAAC;EACjD,CAAC,EACD,CAACN,cAAc,CACjB,CAAC;;EAED;EACAR,SAAS,CAAC,MAAM,MAAMQ,cAAc,CAAC,CAAC,CAAC,EAAE,CAACA,cAAc,CAAC,CAAC;EAAC,MAAAO,OAAA,GAAAC,MAAA;EAAA;IAAA,MAAAA,MAAA,GAAAD,OAAA,CAAAE,WAAA,CAExC;MAAEV;IAAQ,CAAC;IAE9B,oBACEH,IAAA,CAACH,QAAQ,CAACiB,IAAI;MAACT,KAAK,EAAE,CAACO,MAAM,CAACG,SAAS,EAAEV,KAAK,CAAE;MAACW,QAAQ,EAAEV,YAAa;MAAAJ,QAAA,EACrEA;IAAQ,CACI,CAAC;EAChB;AACJ;;AAEA;AACA,OAAO,SAASe,qBAAqBA,CAAC;EAAEP;AAA2B,CAAC,EAAE;EACpE,oBAAOV,IAAA,CAACc,IAAI;IAACT,KAAK,EAAEO,MAAM,CAACM,MAAM,CAACR,MAAM;EAAE,CAAE,CAAC;AAC/C;AAEA,MAAME,MAAM,GAAGd,UAAU,CAACqB,MAAM,CAAEC,KAAK,KAAM;EAC3CL,SAAS,EAAE;IACTM,QAAQ,EAAE;MACRlB,OAAO,EAAE;QACPmB,CAAC,EAAE;UAAEC,iBAAiB,EAAEH,KAAK,CAACX,MAAM,CAACe,MAAM,CAACrB,OAAO,CAACmB;QAAE,CAAC;QACvDG,IAAI,EAAE,CAAC;MACT;IACF,CAAC;IAAAC,iBAAA;EACH,CAAC;EACDR,MAAM,EAAGR,MAAc,KAAM;IAAEA;EAAO,CAAC;AACzC,CAAC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useLayoutEffect","useRef","Animated","StyleSheet","HeaderSurface","jsx","_jsx","jsxs","_jsxs","HeaderAccessory","children","padding","color","surfaceStyle","onHeightChange","style","measuredHeight","handleLayout","event","current","nativeEvent","layout","height","_styles","styles","useVariants","View","accessory","onLayout","animatedStyle","HeaderAccessorySpacer","spacer","create","theme","paddingBottom","spacing","variants","x","paddingHorizontal","screen","none","uni__dependencies"],"sourceRoot":"../../../../../src","sources":["components/header/parts/HeaderAccessory.tsx"],"mappings":";;;AAAA,SAA8CA,WAAW,EAAEC,eAAe,EAAEC,MAAM,QAAQ,OAAO;AAGjG,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,UAAU,QAAQ,wBAAwB;AAGnD,SAASC,aAAa;AAAmD,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAczE;AACA,OAAO,SAASC,eAAeA,CAAC;EAC9BC,QAAQ;EACRC,OAAO;EACPC,KAAK;EACLC,YAAY;EACZC,cAAc;EACdC;AACoB,CAAC,EAAE;EACvB,MAAMC,cAAc,GAAGf,MAAM,CAAC,CAAC,CAAC;EAChC,MAAMgB,YAAY,GAAGlB,WAAW,CAC7BmB,KAAwB,IAAK;IAC5BF,cAAc,CAACG,OAAO,GAAGD,KAAK,CAACE,WAAW,CAACC,MAAM,CAACC,MAAM;IACxDR,cAAc,GAAGE,cAAc,CAACG,OAAO,CAAC;EAC1C,CAAC,EACD,CAACL,cAAc,CACjB,CAAC;;EAED;EACAd,eAAe,CAAC,MAAM;IACpBc,cAAc,GAAGE,cAAc,CAACG,OAAO,CAAC;IACxC,OAAO,MAAML,cAAc,GAAG,CAAC,CAAC;EAClC,CAAC,EAAE,CAACA,cAAc,CAAC,CAAC;EAAC,MAAAS,OAAA,GAAAC,MAAA;EAAA;IAAA,MAAAA,MAAA,GAAAD,OAAA,CAAAE,WAAA,CAEF;MAAEd;IAAQ,CAAC;IAE9B,oBACEH,KAAA,CAACN,QAAQ,CAACwB,IAAI;MAACX,KAAK,EAAE,CAACS,MAAM,CAACG,SAAS,EAAEZ,KAAK,CAAE;MAACa,QAAQ,EAAEX,YAAa;MAAAP,QAAA,gBACtEJ,IAAA,CAACF,aAAa;QAACQ,KAAK,EAAEA,KAAM;QAACiB,aAAa,EAAEhB,YAAa;QAACc,SAAS;MAAA,CAAE,CAAC,EACrEjB,QAAQ;IAAA,CACI,CAAC;EAChB;AACJ;;AAEA;AACA,OAAO,SAASoB,qBAAqBA,CAAC;EAAER;AAA2B,CAAC,EAAE;EACpE,oBAAOhB,IAAA,CAACoB,IAAI;IAACX,KAAK,EAAES,MAAM,CAACO,MAAM,CAACT,MAAM;EAAE,CAAE,CAAC;AAC/C;AAEA,MAAME,MAAM,GAAGrB,UAAU,CAAC6B,MAAM,CAAEC,KAAK,KAAM;EAC3CN,SAAS,EAAE;IACT;IACA;IACAO,aAAa,EAAED,KAAK,CAACE,OAAO,CAAC,GAAG,CAAC;IACjCC,QAAQ,EAAE;MACRzB,OAAO,EAAE;QACP0B,CAAC,EAAE;UAAEC,iBAAiB,EAAEL,KAAK,CAACZ,MAAM,CAACkB,MAAM,CAAC5B,OAAO,CAAC0B;QAAE,CAAC;QACvDG,IAAI,EAAE,CAAC;MACT;IACF,CAAC;IAAAC,iBAAA;EACH,CAAC;EACDV,MAAM,EAAGT,MAAc,KAAM;IAAEA;EAAO,CAAC;AACzC,CAAC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ import { View } from "react-native-unistyles/components/native/View";
4
+ import { Text } from "react-native-unistyles/components/native/Text";
5
+ import Animated from "react-native-reanimated";
6
+ import { StyleSheet, useUnistyles } from "react-native-unistyles";
7
+ import { FONT_WEIGHT_VALUE } from "../../../utils/typography.js";
8
+ import { Toolbar } from "../../toolbar/index.js";
9
+ import { HeaderDismissButton } from "../header-buttons.js";
10
+ import { isCustomTitle, isTextTitle } from "../utils.js";
11
+ import { HeaderSurface } from "./HeaderSurface.js";
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ /** Shared compact bar. Only the title and background animate; actions stay interactive. */
14
+ export function HeaderBar({
15
+ title,
16
+ leading,
17
+ trailing,
18
+ titleAlignment,
19
+ color,
20
+ surfaceStyle,
21
+ titleStyle,
22
+ dismissAction = "none",
23
+ navigation,
24
+ onDismiss
25
+ }) {
26
+ const {
27
+ theme
28
+ } = useUnistyles();
29
+ const _styles = styles;
30
+ {
31
+ const styles = _styles.useVariants({
32
+ titleAlignment
33
+ });
34
+ const dismiss = /*#__PURE__*/_jsx(HeaderDismissButton, {
35
+ dismissAction: dismissAction,
36
+ navigation: navigation,
37
+ onDismiss: onDismiss
38
+ });
39
+ return /*#__PURE__*/_jsxs(View, {
40
+ style: styles.bar,
41
+ children: [/*#__PURE__*/_jsx(HeaderSurface, {
42
+ color: color,
43
+ animatedStyle: surfaceStyle
44
+ }), (leading != null || dismissAction === "back") && /*#__PURE__*/_jsxs(Toolbar, {
45
+ children: [dismissAction === "back" && dismiss, leading]
46
+ }), /*#__PURE__*/_jsx(Animated.View, {
47
+ style: [styles.titleContainer, titleStyle],
48
+ pointerEvents: isCustomTitle(title) ? "box-none" : "none",
49
+ children: isTextTitle(title) ? String(title).trim().length > 0 && /*#__PURE__*/_jsx(Text, {
50
+ style: styles.title,
51
+ maxFontSizeMultiplier: theme.typography.variants["title-md"].maxFontSizeMultiplier,
52
+ children: title
53
+ }) : title
54
+ }), (trailing != null || dismissAction === "close") && /*#__PURE__*/_jsxs(Toolbar, {
55
+ style: styles.trailing,
56
+ children: [dismissAction === "close" && dismiss, trailing]
57
+ })]
58
+ });
59
+ }
60
+ }
61
+ const styles = StyleSheet.create(theme => ({
62
+ bar: {
63
+ height: theme.layout.header.height,
64
+ flexDirection: "row",
65
+ alignItems: "center",
66
+ paddingHorizontal: theme.layout.screen.padding.x,
67
+ gap: theme.spacing["3"],
68
+ justifyContent: "space-between",
69
+ uni__dependencies: [0]
70
+ },
71
+ // A centered title is absolutely positioned, so it leaves the flex row. With
72
+ // no leading slot the trailing toolbar would be the only in-flow child and
73
+ // `space-between` would park it on the left — the auto margin pins it right.
74
+ trailing: {
75
+ justifyContent: "flex-end",
76
+ variants: {
77
+ titleAlignment: {
78
+ center: {
79
+ marginLeft: "auto"
80
+ },
81
+ left: {}
82
+ }
83
+ },
84
+ uni__dependencies: [4]
85
+ },
86
+ titleContainer: {
87
+ variants: {
88
+ titleAlignment: {
89
+ center: {
90
+ position: "absolute",
91
+ left: 0,
92
+ right: 0,
93
+ alignItems: "center"
94
+ },
95
+ left: {
96
+ flex: 1,
97
+ alignItems: "flex-start"
98
+ }
99
+ }
100
+ },
101
+ uni__dependencies: [4]
102
+ },
103
+ title: {
104
+ fontSize: theme.typography.variants["title-md"].fontSize,
105
+ lineHeight: theme.typography.variants["title-md"].lineHeight,
106
+ letterSpacing: theme.typography.variants["title-md"].letterSpacing,
107
+ fontWeight: FONT_WEIGHT_VALUE[theme.typography.variants["title-md"].fontWeight],
108
+ color: theme.color["text.primary"] ?? "",
109
+ variants: {
110
+ titleAlignment: {
111
+ center: {
112
+ textAlign: "center"
113
+ },
114
+ left: {
115
+ textAlign: "left"
116
+ }
117
+ }
118
+ },
119
+ uni__dependencies: [0, 4]
120
+ }
121
+ }));
122
+ //# sourceMappingURL=HeaderBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Animated","StyleSheet","useUnistyles","FONT_WEIGHT_VALUE","Toolbar","HeaderDismissButton","isCustomTitle","isTextTitle","HeaderSurface","jsx","_jsx","jsxs","_jsxs","HeaderBar","title","leading","trailing","titleAlignment","color","surfaceStyle","titleStyle","dismissAction","navigation","onDismiss","theme","_styles","styles","useVariants","dismiss","View","style","bar","children","animatedStyle","titleContainer","pointerEvents","String","trim","length","Text","maxFontSizeMultiplier","typography","variants","create","height","layout","header","flexDirection","alignItems","paddingHorizontal","screen","padding","x","gap","spacing","justifyContent","uni__dependencies","center","marginLeft","left","position","right","flex","fontSize","lineHeight","letterSpacing","fontWeight","textAlign"],"sourceRoot":"../../../../../src","sources":["components/header/parts/HeaderBar.tsx"],"mappings":"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","ignoreList":[]}
@@ -18,7 +18,9 @@ export const HEADER_FADE_END_OPACITY = 0.85;
18
18
  * the ramp simply spans whatever they gave it.
19
19
  */
20
20
  export function HeaderGradientOverlay({
21
- color
21
+ color,
22
+ startOpacity = 1,
23
+ endOpacity = HEADER_FADE_END_OPACITY
22
24
  }) {
23
25
  const gradientId = useId();
24
26
  return /*#__PURE__*/_jsxs(Svg, {
@@ -34,11 +36,11 @@ export function HeaderGradientOverlay({
34
36
  children: [/*#__PURE__*/_jsx(Stop, {
35
37
  offset: 0,
36
38
  stopColor: color,
37
- stopOpacity: 1
39
+ stopOpacity: startOpacity
38
40
  }), /*#__PURE__*/_jsx(Stop, {
39
41
  offset: 1,
40
42
  stopColor: color,
41
- stopOpacity: HEADER_FADE_END_OPACITY
43
+ stopOpacity: endOpacity
42
44
  })]
43
45
  })
44
46
  }), /*#__PURE__*/_jsx(Rect, {
@@ -1 +1 @@
1
- {"version":3,"names":["useId","Svg","Defs","Rect","Stop","LinearGradient","SvgLinearGradient","jsx","_jsx","jsxs","_jsxs","HEADER_FADE_END_OPACITY","HeaderGradientOverlay","color","gradientId","height","width","children","id","x1","y1","x2","y2","offset","stopColor","stopOpacity","fill"],"sourceRoot":"../../../../../src","sources":["components/header/parts/HeaderGradientOverlay.tsx"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,OAAO;AAE7B,OAAOC,GAAG,IAAIC,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAEC,cAAc,IAAIC,iBAAiB,QAAQ,kBAAkB;;AAE7F;AACA;AACA;AACA;AACA;AAJA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAKA,OAAO,MAAMC,uBAAuB,GAAG,IAAI;AAO3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAC;EAAEC;AAAkC,CAAC,EAAE;EAC3E,MAAMC,UAAU,GAAGd,KAAK,CAAC,CAAC;EAE1B,oBACEU,KAAA,CAACT,GAAG;IAACc,MAAM,EAAC,MAAM;IAACC,KAAK,EAAC,MAAM;IAAAC,QAAA,gBAC7BT,IAAA,CAACN,IAAI;MAAAe,QAAA,eACHP,KAAA,CAACJ,iBAAiB;QAACY,EAAE,EAAEJ,UAAW;QAACK,EAAE,EAAC,GAAG;QAACC,EAAE,EAAC,GAAG;QAACC,EAAE,EAAC,GAAG;QAACC,EAAE,EAAC,GAAG;QAAAL,QAAA,gBAC5DT,IAAA,CAACJ,IAAI;UAACmB,MAAM,EAAE,CAAE;UAACC,SAAS,EAAEX,KAAM;UAACY,WAAW,EAAE;QAAE,CAAE,CAAC,eACrDjB,IAAA,CAACJ,IAAI;UAACmB,MAAM,EAAE,CAAE;UAACC,SAAS,EAAEX,KAAM;UAACY,WAAW,EAAEd;QAAwB,CAAE,CAAC;MAAA,CAC1D;IAAC,CAChB,CAAC,eACPH,IAAA,CAACL,IAAI;MAACa,KAAK,EAAC,MAAM;MAACD,MAAM,EAAC,MAAM;MAACW,IAAI,EAAE,QAAQZ,UAAU;IAAI,CAAE,CAAC;EAAA,CAC7D,CAAC;AAEV","ignoreList":[]}
1
+ {"version":3,"names":["useId","Svg","Defs","Rect","Stop","LinearGradient","SvgLinearGradient","jsx","_jsx","jsxs","_jsxs","HEADER_FADE_END_OPACITY","HeaderGradientOverlay","color","startOpacity","endOpacity","gradientId","height","width","children","id","x1","y1","x2","y2","offset","stopColor","stopOpacity","fill"],"sourceRoot":"../../../../../src","sources":["components/header/parts/HeaderGradientOverlay.tsx"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,OAAO;AAE7B,OAAOC,GAAG,IAAIC,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAEC,cAAc,IAAIC,iBAAiB,QAAQ,kBAAkB;;AAE7F;AACA;AACA;AACA;AACA;AAJA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAKA,OAAO,MAAMC,uBAAuB,GAAG,IAAI;AAS3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAC;EACpCC,KAAK;EACLC,YAAY,GAAG,CAAC;EAChBC,UAAU,GAAGJ;AACa,CAAC,EAAE;EAC7B,MAAMK,UAAU,GAAGhB,KAAK,CAAC,CAAC;EAE1B,oBACEU,KAAA,CAACT,GAAG;IAACgB,MAAM,EAAC,MAAM;IAACC,KAAK,EAAC,MAAM;IAAAC,QAAA,gBAC7BX,IAAA,CAACN,IAAI;MAAAiB,QAAA,eACHT,KAAA,CAACJ,iBAAiB;QAACc,EAAE,EAAEJ,UAAW;QAACK,EAAE,EAAC,GAAG;QAACC,EAAE,EAAC,GAAG;QAACC,EAAE,EAAC,GAAG;QAACC,EAAE,EAAC,GAAG;QAAAL,QAAA,gBAC5DX,IAAA,CAACJ,IAAI;UAACqB,MAAM,EAAE,CAAE;UAACC,SAAS,EAAEb,KAAM;UAACc,WAAW,EAAEb;QAAa,CAAE,CAAC,eAChEN,IAAA,CAACJ,IAAI;UAACqB,MAAM,EAAE,CAAE;UAACC,SAAS,EAAEb,KAAM;UAACc,WAAW,EAAEZ;QAAW,CAAE,CAAC;MAAA,CAC7C;IAAC,CAChB,CAAC,eACPP,IAAA,CAACL,IAAI;MAACe,KAAK,EAAC,MAAM;MAACD,MAAM,EAAC,MAAM;MAACW,IAAI,EAAE,QAAQZ,UAAU;IAAI,CAAE,CAAC;EAAA,CAC7D,CAAC;AAEV","ignoreList":[]}
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import { View } from "react-native-unistyles/components/native/View";
4
3
  import Animated from "react-native-reanimated";
5
4
  import { StyleSheet } from "react-native-unistyles";
6
- import { HeaderGradientOverlay } from "./HeaderGradientOverlay.js";
5
+ import { HEADER_FADE_END_OPACITY, HeaderGradientOverlay } from "./HeaderGradientOverlay.js";
7
6
  import { jsx as _jsx } from "react/jsx-runtime";
8
7
  /**
9
- * Header background covering the bar and any accessory as one surface, so
10
- * content scrolling under the header meets a single boundary rather than two.
8
+ * Header background with matching gradient boundaries for the bar and accessory.
11
9
  *
12
10
  * The ramp spans the surface itself: it is sized by the caller and stays inside
13
11
  * those bounds, so a taller surface stretches the fade rather than adding to it.
@@ -15,15 +13,15 @@ import { jsx as _jsx } from "react/jsx-runtime";
15
13
  export function HeaderSurface({
16
14
  color,
17
15
  animatedStyle,
18
- solid
16
+ accessory
19
17
  }) {
20
18
  return /*#__PURE__*/_jsx(Animated.View, {
21
19
  style: [styles.surface, animatedStyle],
22
20
  pointerEvents: "none",
23
- children: solid ? /*#__PURE__*/_jsx(View, {
24
- style: styles.fill(color)
25
- }) : /*#__PURE__*/_jsx(HeaderGradientOverlay, {
26
- color: color
21
+ children: /*#__PURE__*/_jsx(HeaderGradientOverlay, {
22
+ color: color,
23
+ startOpacity: accessory ? HEADER_FADE_END_OPACITY : 1,
24
+ endOpacity: accessory ? 0.8 : HEADER_FADE_END_OPACITY
27
25
  })
28
26
  });
29
27
  }
@@ -34,10 +32,6 @@ const styles = StyleSheet.create(() => ({
34
32
  left: 0,
35
33
  right: 0,
36
34
  bottom: 0
37
- },
38
- fill: color => ({
39
- flex: 1,
40
- backgroundColor: color
41
- })
35
+ }
42
36
  }));
43
37
  //# sourceMappingURL=HeaderSurface.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Animated","StyleSheet","HeaderGradientOverlay","jsx","_jsx","HeaderSurface","color","animatedStyle","solid","View","style","styles","surface","pointerEvents","children","fill","create","position","top","left","right","bottom","flex","backgroundColor"],"sourceRoot":"../../../../../src","sources":["components/header/parts/HeaderSurface.tsx"],"mappings":";;;AAEA,OAAOA,QAAQ,MAAiC,yBAAyB;AACzE,SAASC,UAAU,QAAQ,wBAAwB;AAEnD,SAASC,qBAAqB;AAAkC,SAAAC,GAAA,IAAAC,IAAA;AAgBhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAAC;EAAEC,KAAK;EAAEC,aAAa;EAAEC;AAA0B,CAAC,EAAE;EACjF,oBACEJ,IAAA,CAACJ,QAAQ,CAACS,IAAI;IAACC,KAAK,EAAE,CAACC,MAAM,CAACC,OAAO,EAAEL,aAAa,CAAE;IAACM,aAAa,EAAC,MAAM;IAAAC,QAAA,EACxEN,KAAK,gBAAGJ,IAAA,CAACK,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACI,IAAI,CAACT,KAAK;IAAE,CAAE,CAAC,gBAAGF,IAAA,CAACF,qBAAqB;MAACI,KAAK,EAAEA;IAAM,CAAE;EAAC,CACzE,CAAC;AAEpB;AAEA,MAAMK,MAAM,GAAGV,UAAU,CAACe,MAAM,CAAC,OAAO;EACtCJ,OAAO,EAAE;IACPK,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE;EACV,CAAC;EACDN,IAAI,EAAGT,KAAa,KAAM;IACxBgB,IAAI,EAAE,CAAC;IACPC,eAAe,EAAEjB;EACnB,CAAC;AACH,CAAC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Animated","StyleSheet","HEADER_FADE_END_OPACITY","HeaderGradientOverlay","jsx","_jsx","HeaderSurface","color","animatedStyle","accessory","View","style","styles","surface","pointerEvents","children","startOpacity","endOpacity","create","position","top","left","right","bottom"],"sourceRoot":"../../../../../src","sources":["components/header/parts/HeaderSurface.tsx"],"mappings":";;AAAA,OAAOA,QAAQ,MAAiC,yBAAyB;AACzE,SAASC,UAAU,QAAQ,wBAAwB;AAEnD,SAASC,uBAAuB,EAAEC,qBAAqB;AAAkC,SAAAC,GAAA,IAAAC,IAAA;AAazF;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAAC;EAAEC,KAAK;EAAEC,aAAa;EAAEC;AAA8B,CAAC,EAAE;EACrF,oBACEJ,IAAA,CAACL,QAAQ,CAACU,IAAI;IAACC,KAAK,EAAE,CAACC,MAAM,CAACC,OAAO,EAAEL,aAAa,CAAE;IAACM,aAAa,EAAC,MAAM;IAAAC,QAAA,eACzEV,IAAA,CAACF,qBAAqB;MACpBI,KAAK,EAAEA,KAAM;MACbS,YAAY,EAAEP,SAAS,GAAGP,uBAAuB,GAAG,CAAE;MACtDe,UAAU,EAAER,SAAS,GAAG,GAAG,GAAGP;IAAwB,CACvD;EAAC,CACW,CAAC;AAEpB;AAEA,MAAMU,MAAM,GAAGX,UAAU,CAACiB,MAAM,CAAC,OAAO;EACtCL,OAAO,EAAE;IACPM,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE;EACV;AACF,CAAC,CAAC,CAAC","ignoreList":[]}