react-native-terra-ui 0.11.10 → 0.11.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/lib/module/components/box/Box.js +35 -10
- package/lib/module/components/box/Box.js.map +1 -1
- package/lib/module/components/header/parts/HeaderGradientOverlay.js +17 -75
- package/lib/module/components/header/parts/HeaderGradientOverlay.js.map +1 -1
- package/lib/module/components/header/parts/HeaderSurface.js +19 -34
- package/lib/module/components/header/parts/HeaderSurface.js.map +1 -1
- package/lib/module/components/header/variants/LargeTitleHeader/index.js +8 -10
- package/lib/module/components/header/variants/LargeTitleHeader/index.js.map +1 -1
- package/lib/module/components/header/variants/TitleHeader/index.js +2 -3
- package/lib/module/components/header/variants/TitleHeader/index.js.map +1 -1
- package/lib/typescript/src/components/box/Box.d.ts +28 -4
- package/lib/typescript/src/components/box/Box.d.ts.map +1 -1
- package/lib/typescript/src/components/header/parts/HeaderGradientOverlay.d.ts +9 -14
- package/lib/typescript/src/components/header/parts/HeaderGradientOverlay.d.ts.map +1 -1
- package/lib/typescript/src/components/header/parts/HeaderSurface.d.ts +10 -7
- package/lib/typescript/src/components/header/parts/HeaderSurface.d.ts.map +1 -1
- package/lib/typescript/src/components/header/variants/LargeTitleHeader/index.d.ts.map +1 -1
- package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts.map +1 -1
- package/lib/typescript/src/components/surface/Surface.d.ts +1 -1
- package/lib/typescript/src/components/surface/Surface.d.ts.map +1 -1
- package/lib/typescript/src/components/toast/Toast.d.ts +1 -1
- package/lib/typescript/src/components/toast/Toast.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/box/Box.tsx +59 -16
- package/src/components/header/parts/HeaderGradientOverlay.tsx +11 -69
- package/src/components/header/parts/HeaderSurface.tsx +16 -29
- package/src/components/header/variants/LargeTitleHeader/index.tsx +6 -8
- package/src/components/header/variants/TitleHeader/index.tsx +2 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.11.11](https://github.com/earthlin9/react-native-terra-ui/compare/v0.11.10...v0.11.11) (2026-09-17)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* **ui:** [box] cast the rendered element with an `as` prop ([9f294bb](https://github.com/earthlin9/react-native-terra-ui/commit/9f294bbff87e1a49454f0f1defb255f7f7df2cda))
|
|
8
|
+
* **ui:** [header] keep the background fade inside the surface ([85062d0](https://github.com/earthlin9/react-native-terra-ui/commit/85062d08af02920a8fa3671c4339d54e4915caea))
|
|
9
|
+
|
|
3
10
|
## [0.11.10](https://github.com/earthlin9/react-native-terra-ui/compare/v0.11.9...v0.11.10) (2026-09-15)
|
|
4
11
|
|
|
5
12
|
### Bug Fixes
|
|
@@ -5,14 +5,20 @@ import { forwardRef } from "react";
|
|
|
5
5
|
import { StyleSheet, useUnistyles } from "react-native-unistyles";
|
|
6
6
|
import { Slot } from "../slot/index.js";
|
|
7
7
|
import { BOX_STYLE_PROP_KEYS, resolveBoxStyle } from "./utils.js";
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
|
|
9
|
+
/** Props owned by Box itself — everything else belongs to the rendered element. */
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* Props of `Box` when cast as `T`. Token style-props plus everything the
|
|
13
|
+
* rendered component accepts — `<Box as={Pressable} onPress={…} />` type-checks
|
|
14
|
+
* against `Pressable`, not `View`.
|
|
14
15
|
*/
|
|
15
|
-
|
|
16
|
+
|
|
17
|
+
/** Erased prop shape the implementation works with — the generic lives on the exported cast. */
|
|
18
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
19
|
+
const STYLE_KEYS = new Set(BOX_STYLE_PROP_KEYS);
|
|
20
|
+
const BoxWithRef = /*#__PURE__*/forwardRef(function Box({
|
|
21
|
+
as,
|
|
16
22
|
asChild,
|
|
17
23
|
style,
|
|
18
24
|
children,
|
|
@@ -22,31 +28,50 @@ export const Box = /*#__PURE__*/forwardRef(function Box({
|
|
|
22
28
|
theme
|
|
23
29
|
} = useUnistyles();
|
|
24
30
|
const styleProps = {};
|
|
25
|
-
const
|
|
31
|
+
const elementProps = {};
|
|
26
32
|
for (const key of Object.keys(rest)) {
|
|
27
33
|
const value = rest[key];
|
|
28
|
-
if (STYLE_KEYS.has(key)) styleProps[key] = value;else
|
|
34
|
+
if (STYLE_KEYS.has(key)) styleProps[key] = value;else elementProps[key] = value;
|
|
29
35
|
}
|
|
30
36
|
const mergedStyle = [styles.root, resolveBoxStyle(styleProps, theme), style];
|
|
31
37
|
if (asChild) {
|
|
32
38
|
return /*#__PURE__*/_jsx(Slot, {
|
|
33
39
|
ownerName: "Box",
|
|
34
40
|
slotProps: {
|
|
35
|
-
...
|
|
41
|
+
...elementProps,
|
|
36
42
|
style: mergedStyle,
|
|
37
43
|
ref
|
|
38
44
|
},
|
|
39
45
|
children: children
|
|
40
46
|
});
|
|
41
47
|
}
|
|
42
|
-
|
|
48
|
+
const Component = as ?? View;
|
|
49
|
+
return /*#__PURE__*/_jsx(Component, {
|
|
43
50
|
ref: ref,
|
|
44
51
|
style: mergedStyle,
|
|
45
|
-
...
|
|
52
|
+
...elementProps,
|
|
46
53
|
children: children
|
|
47
54
|
});
|
|
48
55
|
});
|
|
49
56
|
|
|
57
|
+
/**
|
|
58
|
+
* Base layout primitive: a `View` styled through theme-token props.
|
|
59
|
+
* The only component family exposing token style-props.
|
|
60
|
+
*
|
|
61
|
+
* Pass `as` to cast it as another component — the token style-props still
|
|
62
|
+
* resolve, and the rest of the props are typed against that component.
|
|
63
|
+
* Note that `as` renders a component Box does not own, so a Unistyles style
|
|
64
|
+
* handed to it only stays theme-reactive if that component's own module runs
|
|
65
|
+
* through the Unistyles Babel plugin (see the stylesheet note below).
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```tsx
|
|
69
|
+
* <Box row gap="2" p="4" />
|
|
70
|
+
* <Box as={Pressable} onPress={onPress} p="3" radius="md" />
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export const Box = BoxWithRef;
|
|
74
|
+
|
|
50
75
|
// ─── Styles ───────────────────────────────────────────────────────────────────
|
|
51
76
|
//
|
|
52
77
|
// Box has no static style of its own — this stylesheet exists so the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","StyleSheet","useUnistyles","Slot","BOX_STYLE_PROP_KEYS","resolveBoxStyle","jsx","_jsx","STYLE_KEYS","Set","Box","asChild","style","children","rest","ref","theme","styleProps","
|
|
1
|
+
{"version":3,"names":["forwardRef","StyleSheet","useUnistyles","Slot","BOX_STYLE_PROP_KEYS","resolveBoxStyle","jsx","_jsx","STYLE_KEYS","Set","BoxWithRef","Box","as","asChild","style","children","rest","ref","theme","styleProps","elementProps","key","Object","keys","value","has","mergedStyle","styles","root","ownerName","slotProps","Component","View","create"],"sourceRoot":"../../../../src","sources":["components/box/Box.tsx"],"mappings":";;;AAAA,SAGEA,UAAU,QAGL,OAAO;AAGd,SAASC,UAAU,EAAEC,YAAY,QAAQ,wBAAwB;AAEjE,SAASC,IAAI;AACb,SAASC,mBAAmB,EAAsBC,eAAe;;AAEjE;;AAMA;AACA;AACA;AACA;AACA;;AAMA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAQA,MAAMC,UAAU,GAAG,IAAIC,GAAG,CAASL,mBAAwC,CAAC;AAE5E,MAAMM,UAAU,gBAAGV,UAAU,CAA0B,SAASW,GAAGA,CACjE;EAAEC,EAAE;EAAEC,OAAO;EAAEC,KAAK;EAAEC,QAAQ;EAAE,GAAGC;AAAqB,CAAC,EACzDC,GAAG,EACH;EACA,MAAM;IAAEC;EAAM,CAAC,GAAGhB,YAAY,CAAC,CAAC;EAEhC,MAAMiB,UAAmC,GAAG,CAAC,CAAC;EAC9C,MAAMC,YAAqC,GAAG,CAAC,CAAC;EAChD,KAAK,MAAMC,GAAG,IAAIC,MAAM,CAACC,IAAI,CAACP,IAAI,CAAC,EAAE;IACnC,MAAMQ,KAAK,GAAGR,IAAI,CAACK,GAAG,CAAC;IACvB,IAAIb,UAAU,CAACiB,GAAG,CAACJ,GAAG,CAAC,EAAEF,UAAU,CAACE,GAAG,CAAC,GAAGG,KAAK,CAAC,KAC5CJ,YAAY,CAACC,GAAG,CAAC,GAAGG,KAAK;EAChC;EAEA,MAAME,WAAW,GAAG,CAACC,MAAM,CAACC,IAAI,EAAEvB,eAAe,CAACc,UAAU,EAAmBD,KAAK,CAAC,EAAEJ,KAAK,CAAC;EAE7F,IAAID,OAAO,EAAE;IACX,oBACEN,IAAA,CAACJ,IAAI;MAAC0B,SAAS,EAAC,KAAK;MAACC,SAAS,EAAE;QAAE,GAAGV,YAAY;QAAEN,KAAK,EAAEY,WAAW;QAAET;MAAI,CAAE;MAAAF,QAAA,EAC3EA;IAAQ,CACL,CAAC;EAEX;EAEA,MAAMgB,SAAS,GAAInB,EAAE,IAAIoB,IAAoB;EAE7C,oBACEzB,IAAA,CAACwB,SAAS;IAACd,GAAG,EAAEA,GAAI;IAACH,KAAK,EAAEY,WAAY;IAAA,GAAKN,YAAY;IAAAL,QAAA,EACtDA;EAAQ,CACA,CAAC;AAEhB,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMJ,GAAG,GAAGD,UAEK;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMiB,MAAM,GAAG1B,UAAU,CAACgC,MAAM,CAAC,OAAO;EAAEL,IAAI,EAAE,CAAC;AAAE,CAAC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -4,80 +4,18 @@ import { useId } from "react";
|
|
|
4
4
|
import Svg, { Defs, Rect, Stop, LinearGradient as SvgLinearGradient } from "react-native-svg";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* the curve has to be steep enough to read as a band. Overhanging lets the tail
|
|
11
|
-
* finish in open space, so the header releases content instead of cutting it.
|
|
7
|
+
* Opacity at the overlay's bottom edge. The top is fully opaque, so the header
|
|
8
|
+
* thins slightly toward the boundary rather than cutting content off square —
|
|
9
|
+
* but never far enough to read as see-through.
|
|
12
10
|
*/
|
|
13
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
-
export const
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Where the fade begins, as a fraction of the overlay's height — the bar plus
|
|
18
|
-
* {@link HEADER_FADE_EXTENT}.
|
|
19
|
-
*
|
|
20
|
-
* Sits inside the bar rather than at its bottom edge, so the tint has already
|
|
21
|
-
* begun thinning before content reaches the boundary. That is the trade this
|
|
22
|
-
* value makes: a longer, gentler ramp, paid for with content being faintly
|
|
23
|
-
* visible through the lower part of the bar.
|
|
24
|
-
*/
|
|
25
|
-
const FADE_START = 0.5;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Stops used to approximate the fade curve. Below ~10 the ramp shows as a series
|
|
29
|
-
* of bands on an 8-bit display; above ~14 the extra stops cost SVG parse time
|
|
30
|
-
* with nothing visible in return.
|
|
31
|
-
*/
|
|
32
|
-
const FADE_STOPS = 4;
|
|
33
|
-
|
|
34
|
-
/** Ceiling on the fade's opacity — see {@link alphaAt}. */
|
|
35
|
-
const MAX_FADE_ALPHA = 0.65;
|
|
36
|
-
|
|
12
|
+
export const HEADER_FADE_END_OPACITY = 0.85;
|
|
37
13
|
/**
|
|
38
|
-
*
|
|
39
|
-
* bottom.
|
|
14
|
+
* Vertical fade behind header content, shared by header variants.
|
|
40
15
|
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* drawn across the content rather than the header letting go of it.
|
|
45
|
-
*
|
|
46
|
-
* The cap holds the ramp just short of solid, so the whole overlay reads as one
|
|
47
|
-
* continuous gradient rather than an opaque plateau with a curve bolted on.
|
|
48
|
-
*/
|
|
49
|
-
const alphaAt = t => (1 + Math.cos(Math.PI * t) * MAX_FADE_ALPHA) / 2;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Every input is a module constant, so the ramp is built once at load rather
|
|
53
|
-
* than rebuilt per render.
|
|
54
|
-
*
|
|
55
|
-
* The leading stop belongs to this list rather than being a sibling element:
|
|
56
|
-
* `LinearGradient` types its children as a flat `ReactElement[]`, so an element
|
|
57
|
-
* beside a mapped array would nest and fail to type-check.
|
|
58
|
-
*/
|
|
59
|
-
const STOPS = [{
|
|
60
|
-
offset: 0,
|
|
61
|
-
opacity: 1
|
|
62
|
-
}, ...Array.from({
|
|
63
|
-
length: FADE_STOPS
|
|
64
|
-
}, (_, index) => {
|
|
65
|
-
const t = index / (FADE_STOPS - 1);
|
|
66
|
-
const offset = FADE_START + t * (1 - FADE_START);
|
|
67
|
-
return {
|
|
68
|
-
offset,
|
|
69
|
-
opacity: offset === 1 ? 0 : alphaAt(t)
|
|
70
|
-
};
|
|
71
|
-
})];
|
|
72
|
-
/**
|
|
73
|
-
* Vertical fade-out overlay behind header content, shared by header variants.
|
|
74
|
-
*
|
|
75
|
-
* Reaches zero rather than stopping short. An overlay ending at partial opacity
|
|
76
|
-
* leaves a hard step wherever it is clipped, and that step is far more visible
|
|
77
|
-
* than the fade it was meant to hide — it is what cuts content off square as it
|
|
78
|
-
* scrolls under the header.
|
|
79
|
-
*
|
|
80
|
-
* Callers size it to overhang the bar by {@link HEADER_FADE_EXTENT}.
|
|
16
|
+
* A two-stop linear ramp spanning the overlay's own box: it neither overhangs
|
|
17
|
+
* the surface nor reserves a band inside it, so callers size the surface and
|
|
18
|
+
* the ramp simply spans whatever they gave it.
|
|
81
19
|
*/
|
|
82
20
|
export function HeaderGradientOverlay({
|
|
83
21
|
color
|
|
@@ -87,17 +25,21 @@ export function HeaderGradientOverlay({
|
|
|
87
25
|
height: "100%",
|
|
88
26
|
width: "100%",
|
|
89
27
|
children: [/*#__PURE__*/_jsx(Defs, {
|
|
90
|
-
children: /*#__PURE__*/
|
|
28
|
+
children: /*#__PURE__*/_jsxs(SvgLinearGradient, {
|
|
91
29
|
id: gradientId,
|
|
92
30
|
x1: "0",
|
|
93
31
|
y1: "0",
|
|
94
32
|
x2: "0",
|
|
95
33
|
y2: "1",
|
|
96
|
-
children:
|
|
97
|
-
offset:
|
|
34
|
+
children: [/*#__PURE__*/_jsx(Stop, {
|
|
35
|
+
offset: 0,
|
|
36
|
+
stopColor: color,
|
|
37
|
+
stopOpacity: 1
|
|
38
|
+
}), /*#__PURE__*/_jsx(Stop, {
|
|
39
|
+
offset: 1,
|
|
98
40
|
stopColor: color,
|
|
99
|
-
stopOpacity:
|
|
100
|
-
}
|
|
41
|
+
stopOpacity: HEADER_FADE_END_OPACITY
|
|
42
|
+
})]
|
|
101
43
|
})
|
|
102
44
|
}), /*#__PURE__*/_jsx(Rect, {
|
|
103
45
|
width: "100%",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useId","Svg","Defs","Rect","Stop","LinearGradient","SvgLinearGradient","jsx","_jsx","jsxs","_jsxs","
|
|
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":[]}
|
|
@@ -3,56 +3,41 @@
|
|
|
3
3
|
import { View } from "react-native-unistyles/components/native/View";
|
|
4
4
|
import Animated from "react-native-reanimated";
|
|
5
5
|
import { StyleSheet } from "react-native-unistyles";
|
|
6
|
-
import {
|
|
7
|
-
import { jsx as _jsx
|
|
6
|
+
import { HeaderGradientOverlay } from "./HeaderGradientOverlay.js";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
8
|
/**
|
|
9
|
-
* Header background
|
|
10
|
-
*
|
|
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.
|
|
11
|
+
*
|
|
12
|
+
* The ramp spans the surface itself: it is sized by the caller and stays inside
|
|
13
|
+
* those bounds, so a taller surface stretches the fade rather than adding to it.
|
|
11
14
|
*/
|
|
12
15
|
export function HeaderSurface({
|
|
13
16
|
color,
|
|
14
17
|
animatedStyle,
|
|
15
|
-
|
|
18
|
+
solid
|
|
16
19
|
}) {
|
|
17
|
-
return /*#__PURE__*/
|
|
20
|
+
return /*#__PURE__*/_jsx(Animated.View, {
|
|
18
21
|
style: [styles.surface, animatedStyle],
|
|
19
22
|
pointerEvents: "none",
|
|
20
|
-
children:
|
|
21
|
-
style: styles.fill(color
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
color: color
|
|
26
|
-
})
|
|
27
|
-
})]
|
|
23
|
+
children: solid ? /*#__PURE__*/_jsx(View, {
|
|
24
|
+
style: styles.fill(color)
|
|
25
|
+
}) : /*#__PURE__*/_jsx(HeaderGradientOverlay, {
|
|
26
|
+
color: color
|
|
27
|
+
})
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
|
-
const styles = StyleSheet.create(
|
|
31
|
-
// Extend the fade below the header's layout bounds.
|
|
30
|
+
const styles = StyleSheet.create(() => ({
|
|
32
31
|
surface: {
|
|
33
32
|
position: "absolute",
|
|
34
33
|
top: 0,
|
|
35
34
|
left: 0,
|
|
36
35
|
right: 0,
|
|
37
|
-
bottom:
|
|
36
|
+
bottom: 0
|
|
38
37
|
},
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
top: 0,
|
|
43
|
-
left: 0,
|
|
44
|
-
right: 0,
|
|
45
|
-
bottom: fadeHeight ?? theme.layout.header.height + HEADER_FADE_EXTENT,
|
|
46
|
-
backgroundColor: color,
|
|
47
|
-
uni__dependencies: [0]
|
|
48
|
-
}),
|
|
49
|
-
fade: fadeHeight => ({
|
|
50
|
-
position: "absolute",
|
|
51
|
-
left: 0,
|
|
52
|
-
right: 0,
|
|
53
|
-
bottom: 0,
|
|
54
|
-
height: fadeHeight ?? theme.layout.header.height + HEADER_FADE_EXTENT,
|
|
55
|
-
uni__dependencies: [0]
|
|
38
|
+
fill: color => ({
|
|
39
|
+
flex: 1,
|
|
40
|
+
backgroundColor: color
|
|
56
41
|
})
|
|
57
42
|
}));
|
|
58
43
|
//# sourceMappingURL=HeaderSurface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Animated","StyleSheet","
|
|
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":[]}
|
|
@@ -13,7 +13,6 @@ import { SCREEN_HEADER_PORTAL_HOST, useScreen } from "../../../screen/ScreenCont
|
|
|
13
13
|
import { Toolbar } from "../../../toolbar/index.js";
|
|
14
14
|
import { HeaderDismissButton } from "../../header-buttons.js";
|
|
15
15
|
import { HeaderAccessory, HeaderAccessorySpacer } from "../../parts/HeaderAccessory.js";
|
|
16
|
-
import { HEADER_FADE_EXTENT } from "../../parts/HeaderGradientOverlay.js";
|
|
17
16
|
import { HeaderSurface } from "../../parts/HeaderSurface.js";
|
|
18
17
|
import { isCustomTitle, isTextTitle } from "../../utils.js";
|
|
19
18
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
@@ -129,7 +128,6 @@ export function LargeTitleHeader({
|
|
|
129
128
|
const bgColor = (colorToken ? resolveThemeColor(colorToken, theme) : screenBackground) ?? theme.color["surface.canvas"];
|
|
130
129
|
const leadingContent = leadingActions !== undefined ? leadingActions : LeftToolbar;
|
|
131
130
|
const trailingContent = trailingActions !== undefined ? trailingActions : RightToolbar;
|
|
132
|
-
const gradientColor = bgColor;
|
|
133
131
|
const isSticky = accessoryBehavior === "sticky" && !isLargeTitleHidden;
|
|
134
132
|
const hasStickyAccessory = isSticky && accessory != null;
|
|
135
133
|
// Sticky accessories reserve space below the large title; pinned ones add top padding.
|
|
@@ -177,8 +175,8 @@ export function LargeTitleHeader({
|
|
|
177
175
|
opacity: stickyAccessoryOffset > 0 ? interpolate(scrollY.value, [0, stickyAccessoryOffset], [1, 0], "clamp") : 0
|
|
178
176
|
}));
|
|
179
177
|
|
|
180
|
-
// Animate the
|
|
181
|
-
const
|
|
178
|
+
// Animate the header surface's opacity: 0 (expanded) → 1 (collapsed).
|
|
179
|
+
const surfaceOpacityStyle = useAnimatedStyle(() => {
|
|
182
180
|
if (isLargeTitleHiddenValue.value) {
|
|
183
181
|
return {
|
|
184
182
|
opacity: 1
|
|
@@ -194,7 +192,7 @@ export function LargeTitleHeader({
|
|
|
194
192
|
opacity: interpolate(scrollY.value, [0, height], [0, 1], "clamp")
|
|
195
193
|
};
|
|
196
194
|
});
|
|
197
|
-
useHeaderBackground(bgColor,
|
|
195
|
+
useHeaderBackground(bgColor, surfaceOpacityStyle);
|
|
198
196
|
const compactTitleAnimatedStyle = useAnimatedStyle(() => {
|
|
199
197
|
if (isLargeTitleHiddenValue.value) {
|
|
200
198
|
return {
|
|
@@ -258,14 +256,14 @@ export function LargeTitleHeader({
|
|
|
258
256
|
style: [styles.stickySurface, stickySurfaceStyle],
|
|
259
257
|
pointerEvents: "none",
|
|
260
258
|
children: /*#__PURE__*/_jsx(HeaderSurface, {
|
|
261
|
-
color:
|
|
262
|
-
animatedStyle:
|
|
259
|
+
color: bgColor,
|
|
260
|
+
animatedStyle: surfaceOpacityStyle
|
|
263
261
|
})
|
|
264
262
|
}), /*#__PURE__*/_jsxs(View, {
|
|
265
263
|
style: styles.barGroup,
|
|
266
264
|
children: [!hasStickyAccessory && /*#__PURE__*/_jsx(HeaderSurface, {
|
|
267
|
-
color:
|
|
268
|
-
animatedStyle:
|
|
265
|
+
color: bgColor,
|
|
266
|
+
animatedStyle: surfaceOpacityStyle
|
|
269
267
|
}), /*#__PURE__*/_jsxs(View, {
|
|
270
268
|
style: styles.bar,
|
|
271
269
|
children: [leading != null && /*#__PURE__*/_jsx(Toolbar, {
|
|
@@ -292,7 +290,7 @@ export function LargeTitleHeader({
|
|
|
292
290
|
children: [/*#__PURE__*/_jsx(HeaderSurface, {
|
|
293
291
|
color: screenBackground ?? theme.color["surface.canvas"],
|
|
294
292
|
animatedStyle: accessorySurfaceStyle,
|
|
295
|
-
|
|
293
|
+
solid: true
|
|
296
294
|
}), /*#__PURE__*/_jsx(HeaderAccessory, {
|
|
297
295
|
padding: accessoryPadding,
|
|
298
296
|
onHeightChange: handleAccessoryHeightChange,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useState","Animated","interpolate","useAnimatedStyle","useSharedValue","StyleSheet","useUnistyles","resolveThemeColor","FONT_WEIGHT_VALUE","Portal","useHeaderBackground","SCREEN_HEADER_PORTAL_HOST","useScreen","Toolbar","HeaderDismissButton","HeaderAccessory","HeaderAccessorySpacer","HEADER_FADE_EXTENT","HeaderSurface","isCustomTitle","isTextTitle","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","AnimatedText","createAnimatedComponent","Text","COMPACT_TITLE_SLIDE_OFFSET","LARGE_TITLE_SLIDE_OFFSET","LargeTitlePortalContent","title","overline","subtitle","hasAccessoryBelow","onHeightChange","theme","scrollY","headerCollapseHeight","layout","header","height","largeTitleAnimatedStyle","opacity","transform","translateY","value","handleLayout","event","nativeEvent","View","style","styles","portalContent","onLayout","children","maxFontSizeMultiplier","typography","variants","largeTitle","LargeTitleHeader","leadingActions","trailingActions","LeftToolbar","RightToolbar","accessory","accessoryPadding","accessoryBehavior","dismissAction","navigation","onDismiss","titleAlignment","isLargeTitleHidden","background","bg","screenBackground","setHeaderAccessoryHeight","contentTopPadding","colorToken","bgColor","color","leadingContent","undefined","trailingContent","gradientColor","isSticky","hasStickyAccessory","stickyAccessoryHeight","setStickyAccessoryHeight","largeTitleHeight","setLargeTitleHeight","isLargeTitleHiddenValue","handleAccessoryHeightChange","Math","max","round","handleLargeTitleHeightChange","stickyAccessoryOffset","stickyAccessoryStyle","_styles","useVariants","stickySurfaceStyle","accessorySurfaceStyle","gradientOpacityStyle","compactTitleAnimatedStyle","leading","trailing","container","pointerEvents","hostName","stickySurface","animatedStyle","barGroup","bar","titleContainer","compactTitle","padding","stickyAccessory","fadeHeight","create","position","top","left","right","accessoryOffset","zIndex","paddingBottom","flexDirection","alignItems","paddingHorizontal","screen","x","gap","spacing","justifyContent","uni__dependencies","center","marginLeft","fontSize","lineHeight","letterSpacing","fontWeight","textAlign","flex"],"sourceRoot":"../../../../../../src","sources":["components/header/variants/LargeTitleHeader/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useState","Animated","interpolate","useAnimatedStyle","useSharedValue","StyleSheet","useUnistyles","resolveThemeColor","FONT_WEIGHT_VALUE","Portal","useHeaderBackground","SCREEN_HEADER_PORTAL_HOST","useScreen","Toolbar","HeaderDismissButton","HeaderAccessory","HeaderAccessorySpacer","HeaderSurface","isCustomTitle","isTextTitle","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","AnimatedText","createAnimatedComponent","Text","COMPACT_TITLE_SLIDE_OFFSET","LARGE_TITLE_SLIDE_OFFSET","LargeTitlePortalContent","title","overline","subtitle","hasAccessoryBelow","onHeightChange","theme","scrollY","headerCollapseHeight","layout","header","height","largeTitleAnimatedStyle","opacity","transform","translateY","value","handleLayout","event","nativeEvent","View","style","styles","portalContent","onLayout","children","maxFontSizeMultiplier","typography","variants","largeTitle","LargeTitleHeader","leadingActions","trailingActions","LeftToolbar","RightToolbar","accessory","accessoryPadding","accessoryBehavior","dismissAction","navigation","onDismiss","titleAlignment","isLargeTitleHidden","background","bg","screenBackground","setHeaderAccessoryHeight","contentTopPadding","colorToken","bgColor","color","leadingContent","undefined","trailingContent","isSticky","hasStickyAccessory","stickyAccessoryHeight","setStickyAccessoryHeight","largeTitleHeight","setLargeTitleHeight","isLargeTitleHiddenValue","handleAccessoryHeightChange","Math","max","round","handleLargeTitleHeightChange","stickyAccessoryOffset","stickyAccessoryStyle","_styles","useVariants","stickySurfaceStyle","accessorySurfaceStyle","surfaceOpacityStyle","compactTitleAnimatedStyle","leading","trailing","container","pointerEvents","hostName","stickySurface","animatedStyle","barGroup","bar","titleContainer","compactTitle","padding","stickyAccessory","solid","create","position","top","left","right","accessoryOffset","zIndex","paddingBottom","flexDirection","alignItems","paddingHorizontal","screen","x","gap","spacing","justifyContent","uni__dependencies","center","marginLeft","fontSize","lineHeight","letterSpacing","fontWeight","textAlign","flex"],"sourceRoot":"../../../../../../src","sources":["components/header/variants/LargeTitleHeader/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -52,14 +52,13 @@ export function TitleHeader({
|
|
|
52
52
|
const screen = useContext(ScreenContext);
|
|
53
53
|
const colorToken = background ?? bg;
|
|
54
54
|
const bgColor = (colorToken ? resolveThemeColor(colorToken, theme) : screen?.background) ?? theme.color["surface.canvas"];
|
|
55
|
-
useHeaderBackground(bgColor);
|
|
56
55
|
const leadingContent = leadingActions !== undefined ? leadingActions : LeftToolbar;
|
|
57
56
|
const trailingContent = trailingActions !== undefined ? trailingActions : RightToolbar;
|
|
58
57
|
const setAccessoryInset = screen?.setHeaderAccessoryHeight;
|
|
59
58
|
// Compact headers always reserve the accessory height as top padding.
|
|
60
59
|
const handleAccessoryHeightChange = useCallback(height => setAccessoryInset?.(height), [setAccessoryInset]);
|
|
61
60
|
const isTransparent = bgColor === "transparent";
|
|
62
|
-
|
|
61
|
+
useHeaderBackground(bgColor);
|
|
63
62
|
const _styles = styles;
|
|
64
63
|
{
|
|
65
64
|
const styles = _styles.useVariants({
|
|
@@ -86,7 +85,7 @@ export function TitleHeader({
|
|
|
86
85
|
}), /*#__PURE__*/_jsxs(View, {
|
|
87
86
|
style: styles.barGroup,
|
|
88
87
|
children: [/*#__PURE__*/_jsx(HeaderSurface, {
|
|
89
|
-
color:
|
|
88
|
+
color: bgColor
|
|
90
89
|
}), /*#__PURE__*/_jsxs(View, {
|
|
91
90
|
style: styles.bar,
|
|
92
91
|
children: [leading != null && /*#__PURE__*/_jsx(Toolbar, {
|
|
@@ -1 +1 @@
|
|
|
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","
|
|
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","_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":[]}
|
|
@@ -1,12 +1,36 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type ComponentPropsWithRef, type ElementType, type ReactElement } from "react";
|
|
2
|
+
import { View } from "react-native";
|
|
2
3
|
import { type BoxStyleProps } from "./utils.js";
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
/** Props owned by Box itself — everything else belongs to the rendered element. */
|
|
5
|
+
interface BoxOwnProps extends BoxStyleProps {
|
|
6
|
+
/** Merge Box's style/props onto a single child instead of rendering an element. Takes precedence over `as`. */
|
|
5
7
|
asChild?: boolean;
|
|
6
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Props of `Box` when cast as `T`. Token style-props plus everything the
|
|
11
|
+
* rendered component accepts — `<Box as={Pressable} onPress={…} />` type-checks
|
|
12
|
+
* against `Pressable`, not `View`.
|
|
13
|
+
*/
|
|
14
|
+
export type BoxProps<T extends ElementType = typeof View> = BoxOwnProps & {
|
|
15
|
+
/** Render as this component instead of `View`. It must accept a `style` prop. */
|
|
16
|
+
as?: T;
|
|
17
|
+
} & Omit<ComponentPropsWithRef<T>, keyof BoxOwnProps | "as">;
|
|
7
18
|
/**
|
|
8
19
|
* Base layout primitive: a `View` styled through theme-token props.
|
|
9
20
|
* The only component family exposing token style-props.
|
|
21
|
+
*
|
|
22
|
+
* Pass `as` to cast it as another component — the token style-props still
|
|
23
|
+
* resolve, and the rest of the props are typed against that component.
|
|
24
|
+
* Note that `as` renders a component Box does not own, so a Unistyles style
|
|
25
|
+
* handed to it only stays theme-reactive if that component's own module runs
|
|
26
|
+
* through the Unistyles Babel plugin (see the stylesheet note below).
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```tsx
|
|
30
|
+
* <Box row gap="2" p="4" />
|
|
31
|
+
* <Box as={Pressable} onPress={onPress} p="3" radius="md" />
|
|
32
|
+
* ```
|
|
10
33
|
*/
|
|
11
|
-
export declare const Box:
|
|
34
|
+
export declare const Box: <T extends ElementType = typeof View>(props: BoxProps<T>) => ReactElement | null;
|
|
35
|
+
export {};
|
|
12
36
|
//# sourceMappingURL=Box.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Box.d.ts","sourceRoot":"","sources":["../../../../../src/components/box/Box.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Box.d.ts","sourceRoot":"","sources":["../../../../../src/components/box/Box.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAEhB,KAAK,YAAY,EAElB,MAAM,OAAO,CAAC;AACf,OAAO,EAAkB,IAAI,EAAkB,MAAM,cAAc,CAAC;AAKpE,OAAO,EAAuB,KAAK,aAAa,EAAmB,MAAM,YAAS,CAAC;AAEnF,mFAAmF;AACnF,UAAU,WAAY,SAAQ,aAAa;IACzC,+GAA+G;IAC/G,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,WAAW,GAAG,OAAO,IAAI,IAAI,WAAW,GAAG;IACxE,iFAAiF;IACjF,EAAE,CAAC,EAAE,CAAC,CAAC;CACR,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC;AA6C7D;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,GAAG,EAA4B,CAAC,CAAC,SAAS,WAAW,GAAG,OAAO,IAAI,EAC9E,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KACf,YAAY,GAAG,IAAI,CAAC"}
|
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* the curve has to be steep enough to read as a band. Overhanging lets the tail
|
|
6
|
-
* finish in open space, so the header releases content instead of cutting it.
|
|
2
|
+
* Opacity at the overlay's bottom edge. The top is fully opaque, so the header
|
|
3
|
+
* thins slightly toward the boundary rather than cutting content off square —
|
|
4
|
+
* but never far enough to read as see-through.
|
|
7
5
|
*/
|
|
8
|
-
export declare const
|
|
6
|
+
export declare const HEADER_FADE_END_OPACITY = 0.85;
|
|
9
7
|
export interface HeaderGradientOverlayProps {
|
|
10
|
-
/** Fill color,
|
|
8
|
+
/** Fill color, ramped from opaque to {@link HEADER_FADE_END_OPACITY}. */
|
|
11
9
|
color: string;
|
|
12
10
|
}
|
|
13
11
|
/**
|
|
14
|
-
* Vertical fade
|
|
15
|
-
*
|
|
16
|
-
* Reaches zero rather than stopping short. An overlay ending at partial opacity
|
|
17
|
-
* leaves a hard step wherever it is clipped, and that step is far more visible
|
|
18
|
-
* than the fade it was meant to hide — it is what cuts content off square as it
|
|
19
|
-
* scrolls under the header.
|
|
12
|
+
* Vertical fade behind header content, shared by header variants.
|
|
20
13
|
*
|
|
21
|
-
*
|
|
14
|
+
* A two-stop linear ramp spanning the overlay's own box: it neither overhangs
|
|
15
|
+
* the surface nor reserves a band inside it, so callers size the surface and
|
|
16
|
+
* the ramp simply spans whatever they gave it.
|
|
22
17
|
*/
|
|
23
18
|
export declare function HeaderGradientOverlay({ color }: HeaderGradientOverlayProps): import("react").JSX.Element;
|
|
24
19
|
//# sourceMappingURL=HeaderGradientOverlay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderGradientOverlay.d.ts","sourceRoot":"","sources":["../../../../../../src/components/header/parts/HeaderGradientOverlay.tsx"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"HeaderGradientOverlay.d.ts","sourceRoot":"","sources":["../../../../../../src/components/header/parts/HeaderGradientOverlay.tsx"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,MAAM,WAAW,0BAA0B;IACzC,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE,0BAA0B,+BAc1E"}
|
|
@@ -3,20 +3,23 @@ type HeaderOpacityStyle = ReturnType<typeof useAnimatedStyle<{
|
|
|
3
3
|
opacity: number;
|
|
4
4
|
}>>;
|
|
5
5
|
export interface HeaderSurfaceProps {
|
|
6
|
-
/** Fill color,
|
|
6
|
+
/** Fill color, ramped toward the surface's bottom edge unless `solid`. */
|
|
7
7
|
color: string;
|
|
8
8
|
/** Opacity style for variants that fade the whole surface in as they collapse. */
|
|
9
9
|
animatedStyle?: HeaderOpacityStyle;
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
11
|
+
* Fill flat instead of ramping — for a surface that has to hide content
|
|
12
|
+
* outright, such as a sticky accessory resting over the scroll content.
|
|
13
13
|
*/
|
|
14
|
-
|
|
14
|
+
solid?: boolean;
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
|
-
* Header background
|
|
18
|
-
*
|
|
17
|
+
* Header background covering the bar and any accessory as one surface, so
|
|
18
|
+
* content scrolling under the header meets a single boundary rather than two.
|
|
19
|
+
*
|
|
20
|
+
* The ramp spans the surface itself: it is sized by the caller and stays inside
|
|
21
|
+
* those bounds, so a taller surface stretches the fade rather than adding to it.
|
|
19
22
|
*/
|
|
20
|
-
export declare function HeaderSurface({ color, animatedStyle,
|
|
23
|
+
export declare function HeaderSurface({ color, animatedStyle, solid }: HeaderSurfaceProps): import("react").JSX.Element;
|
|
21
24
|
export {};
|
|
22
25
|
//# 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,
|
|
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,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,kBAAkB,+BAMhF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/header/variants/LargeTitleHeader/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/header/variants/LargeTitleHeader/index.tsx"],"names":[],"mappings":"AAeA,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;AAyED;;;;;;;;;;;;;;;;;;;;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"}
|
|
@@ -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,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,+
|
|
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,+BA8DlB"}
|
|
@@ -34,5 +34,5 @@ export interface SurfaceProps extends Omit<BoxProps, "background"> {
|
|
|
34
34
|
* </Surface>
|
|
35
35
|
* ```
|
|
36
36
|
*/
|
|
37
|
-
export declare const Surface: import("react").ForwardRefExoticComponent<SurfaceProps & import("react").RefAttributes<import("react-native/types_generated/src/private/webapis/dom/nodes/ReactNativeElement").default>>;
|
|
37
|
+
export declare const Surface: import("react").ForwardRefExoticComponent<Omit<SurfaceProps, "ref"> & import("react").RefAttributes<import("react-native/types_generated/src/private/webapis/dom/nodes/ReactNativeElement").default>>;
|
|
38
38
|
//# sourceMappingURL=Surface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Surface.d.ts","sourceRoot":"","sources":["../../../../../src/components/surface/Surface.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAA8B,KAAK,QAAQ,EAAE,MAAM,iBAAQ,CAAC;AAEnE,6CAA6C;AAC7C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;AAE1E,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChE,sDAAsD;IACtD,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,YAAY,CAAC;CAC1B;AA6BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"Surface.d.ts","sourceRoot":"","sources":["../../../../../src/components/surface/Surface.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAA8B,KAAK,QAAQ,EAAE,MAAM,iBAAQ,CAAC;AAEnE,6CAA6C;AAC7C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;AAE1E,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChE,sDAAsD;IACtD,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,YAAY,CAAC;CAC1B;AA6BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,OAAO,uMAiBlB,CAAC"}
|
|
@@ -22,7 +22,7 @@ export interface ToastProps extends Omit<SurfaceProps, "id" | "variant"> {
|
|
|
22
22
|
/** Local close callback used by `Toast.Close`. */
|
|
23
23
|
onClose?: () => void;
|
|
24
24
|
}
|
|
25
|
-
declare const ToastRoot: import("react").ForwardRefExoticComponent<ToastProps & import("react").RefAttributes<import("react-native/types_generated/src/private/webapis/dom/nodes/ReactNativeElement").default>>;
|
|
25
|
+
declare const ToastRoot: import("react").ForwardRefExoticComponent<Omit<ToastProps, "ref"> & import("react").RefAttributes<import("react-native/types_generated/src/private/webapis/dom/nodes/ReactNativeElement").default>>;
|
|
26
26
|
export interface ToastTitleProps extends TextProps {
|
|
27
27
|
}
|
|
28
28
|
declare const ToastTitle: import("react").ForwardRefExoticComponent<ToastTitleProps & import("react").RefAttributes<import("react-native/types_generated/src/private/webapis/dom/nodes/ReactNativeElement").default>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../../../src/components/toast/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAyB,cAAc,EAAQ,MAAM,cAAc,CAAC;AAKhF,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,oBAAW,CAAC;AACrD,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,kBAAS,CAAC;AAC/C,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,qBAAY,CAAC;AACxD,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,kBAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,IAAI,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAS,CAAC;AAGzE,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE5F,KAAK,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,eAAe,KAAK,IAAI,CAAC;IACrC,EAAE,CAAC,EAAE,eAAe,CAAC;CACtB;AAoED,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,SAAS,CAAC;IACtE,wDAAwD;IACxD,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,+EAA+E;IAC/E,EAAE,CAAC,EAAE,eAAe,CAAC;IACrB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,eAAe,KAAK,IAAI,CAAC;IACrC,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,QAAA,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../../../src/components/toast/Toast.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,53 +1,96 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
type ComponentPropsWithRef,
|
|
3
|
+
type ElementType,
|
|
4
|
+
forwardRef,
|
|
5
|
+
type ReactElement,
|
|
6
|
+
type ReactNode,
|
|
7
|
+
} from "react";
|
|
8
|
+
import { type StyleProp, View, type ViewStyle } from "react-native";
|
|
3
9
|
|
|
4
10
|
import { StyleSheet, useUnistyles } from "react-native-unistyles";
|
|
5
11
|
|
|
6
12
|
import { Slot } from "../slot";
|
|
7
13
|
import { BOX_STYLE_PROP_KEYS, type BoxStyleProps, resolveBoxStyle } from "./utils";
|
|
8
14
|
|
|
9
|
-
|
|
10
|
-
|
|
15
|
+
/** Props owned by Box itself — everything else belongs to the rendered element. */
|
|
16
|
+
interface BoxOwnProps extends BoxStyleProps {
|
|
17
|
+
/** Merge Box's style/props onto a single child instead of rendering an element. Takes precedence over `as`. */
|
|
11
18
|
asChild?: boolean;
|
|
12
19
|
}
|
|
13
20
|
|
|
14
|
-
const STYLE_KEYS = new Set<string>(BOX_STYLE_PROP_KEYS as readonly string[]);
|
|
15
|
-
|
|
16
21
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
22
|
+
* Props of `Box` when cast as `T`. Token style-props plus everything the
|
|
23
|
+
* rendered component accepts — `<Box as={Pressable} onPress={…} />` type-checks
|
|
24
|
+
* against `Pressable`, not `View`.
|
|
19
25
|
*/
|
|
20
|
-
export
|
|
21
|
-
|
|
26
|
+
export type BoxProps<T extends ElementType = typeof View> = BoxOwnProps & {
|
|
27
|
+
/** Render as this component instead of `View`. It must accept a `style` prop. */
|
|
28
|
+
as?: T;
|
|
29
|
+
} & Omit<ComponentPropsWithRef<T>, keyof BoxOwnProps | "as">;
|
|
30
|
+
|
|
31
|
+
/** Erased prop shape the implementation works with — the generic lives on the exported cast. */
|
|
32
|
+
interface BoxRenderProps extends BoxOwnProps {
|
|
33
|
+
as?: ElementType;
|
|
34
|
+
style?: StyleProp<ViewStyle>;
|
|
35
|
+
children?: ReactNode;
|
|
36
|
+
[key: string]: unknown;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const STYLE_KEYS = new Set<string>(BOX_STYLE_PROP_KEYS as readonly string[]);
|
|
40
|
+
|
|
41
|
+
const BoxWithRef = forwardRef<unknown, BoxRenderProps>(function Box(
|
|
42
|
+
{ as, asChild, style, children, ...rest }: BoxRenderProps,
|
|
22
43
|
ref
|
|
23
44
|
) {
|
|
24
45
|
const { theme } = useUnistyles();
|
|
25
46
|
|
|
26
47
|
const styleProps: Record<string, unknown> = {};
|
|
27
|
-
const
|
|
48
|
+
const elementProps: Record<string, unknown> = {};
|
|
28
49
|
for (const key of Object.keys(rest)) {
|
|
29
|
-
const value =
|
|
50
|
+
const value = rest[key];
|
|
30
51
|
if (STYLE_KEYS.has(key)) styleProps[key] = value;
|
|
31
|
-
else
|
|
52
|
+
else elementProps[key] = value;
|
|
32
53
|
}
|
|
33
54
|
|
|
34
55
|
const mergedStyle = [styles.root, resolveBoxStyle(styleProps as BoxStyleProps, theme), style];
|
|
35
56
|
|
|
36
57
|
if (asChild) {
|
|
37
58
|
return (
|
|
38
|
-
<Slot ownerName="Box" slotProps={{ ...
|
|
59
|
+
<Slot ownerName="Box" slotProps={{ ...elementProps, style: mergedStyle, ref }}>
|
|
39
60
|
{children}
|
|
40
61
|
</Slot>
|
|
41
62
|
);
|
|
42
63
|
}
|
|
43
64
|
|
|
65
|
+
const Component = (as ?? View) as ElementType;
|
|
66
|
+
|
|
44
67
|
return (
|
|
45
|
-
<
|
|
68
|
+
<Component ref={ref} style={mergedStyle} {...elementProps}>
|
|
46
69
|
{children}
|
|
47
|
-
</
|
|
70
|
+
</Component>
|
|
48
71
|
);
|
|
49
72
|
});
|
|
50
73
|
|
|
74
|
+
/**
|
|
75
|
+
* Base layout primitive: a `View` styled through theme-token props.
|
|
76
|
+
* The only component family exposing token style-props.
|
|
77
|
+
*
|
|
78
|
+
* Pass `as` to cast it as another component — the token style-props still
|
|
79
|
+
* resolve, and the rest of the props are typed against that component.
|
|
80
|
+
* Note that `as` renders a component Box does not own, so a Unistyles style
|
|
81
|
+
* handed to it only stays theme-reactive if that component's own module runs
|
|
82
|
+
* through the Unistyles Babel plugin (see the stylesheet note below).
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```tsx
|
|
86
|
+
* <Box row gap="2" p="4" />
|
|
87
|
+
* <Box as={Pressable} onPress={onPress} p="3" radius="md" />
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
export const Box = BoxWithRef as unknown as <T extends ElementType = typeof View>(
|
|
91
|
+
props: BoxProps<T>
|
|
92
|
+
) => ReactElement | null;
|
|
93
|
+
|
|
51
94
|
// ─── Styles ───────────────────────────────────────────────────────────────────
|
|
52
95
|
//
|
|
53
96
|
// Box has no static style of its own — this stylesheet exists so the
|
|
@@ -3,80 +3,23 @@ import { useId } from "react";
|
|
|
3
3
|
import Svg, { Defs, Rect, Stop, LinearGradient as SvgLinearGradient } from "react-native-svg";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* the curve has to be steep enough to read as a band. Overhanging lets the tail
|
|
10
|
-
* finish in open space, so the header releases content instead of cutting it.
|
|
11
|
-
*/
|
|
12
|
-
export const HEADER_FADE_EXTENT = 8;
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Where the fade begins, as a fraction of the overlay's height — the bar plus
|
|
16
|
-
* {@link HEADER_FADE_EXTENT}.
|
|
17
|
-
*
|
|
18
|
-
* Sits inside the bar rather than at its bottom edge, so the tint has already
|
|
19
|
-
* begun thinning before content reaches the boundary. That is the trade this
|
|
20
|
-
* value makes: a longer, gentler ramp, paid for with content being faintly
|
|
21
|
-
* visible through the lower part of the bar.
|
|
6
|
+
* Opacity at the overlay's bottom edge. The top is fully opaque, so the header
|
|
7
|
+
* thins slightly toward the boundary rather than cutting content off square —
|
|
8
|
+
* but never far enough to read as see-through.
|
|
22
9
|
*/
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Stops used to approximate the fade curve. Below ~10 the ramp shows as a series
|
|
27
|
-
* of bands on an 8-bit display; above ~14 the extra stops cost SVG parse time
|
|
28
|
-
* with nothing visible in return.
|
|
29
|
-
*/
|
|
30
|
-
const FADE_STOPS = 4;
|
|
31
|
-
|
|
32
|
-
/** Ceiling on the fade's opacity — see {@link alphaAt}. */
|
|
33
|
-
const MAX_FADE_ALPHA = 0.65;
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Raised cosine, capped at {@link MAX_FADE_ALPHA}, reaching 0 at the overlay's
|
|
37
|
-
* bottom.
|
|
38
|
-
*
|
|
39
|
-
* The curve's slope is zero at both ends, so neither the start of the fade nor
|
|
40
|
-
* its finish leaves a seam. A two-stop linear ramp has a constant slope that
|
|
41
|
-
* begins and ends abruptly, and those two hard edges are what read as a line
|
|
42
|
-
* drawn across the content rather than the header letting go of it.
|
|
43
|
-
*
|
|
44
|
-
* The cap holds the ramp just short of solid, so the whole overlay reads as one
|
|
45
|
-
* continuous gradient rather than an opaque plateau with a curve bolted on.
|
|
46
|
-
*/
|
|
47
|
-
const alphaAt = (t: number) => (1 + Math.cos(Math.PI * t) * MAX_FADE_ALPHA) / 2;
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Every input is a module constant, so the ramp is built once at load rather
|
|
51
|
-
* than rebuilt per render.
|
|
52
|
-
*
|
|
53
|
-
* The leading stop belongs to this list rather than being a sibling element:
|
|
54
|
-
* `LinearGradient` types its children as a flat `ReactElement[]`, so an element
|
|
55
|
-
* beside a mapped array would nest and fail to type-check.
|
|
56
|
-
*/
|
|
57
|
-
const STOPS = [
|
|
58
|
-
{ offset: 0, opacity: 1 },
|
|
59
|
-
...Array.from({ length: FADE_STOPS }, (_, index) => {
|
|
60
|
-
const t = index / (FADE_STOPS - 1);
|
|
61
|
-
const offset = FADE_START + t * (1 - FADE_START);
|
|
62
|
-
return { offset, opacity: offset === 1 ? 0 : alphaAt(t) };
|
|
63
|
-
}),
|
|
64
|
-
];
|
|
10
|
+
export const HEADER_FADE_END_OPACITY = 0.85;
|
|
65
11
|
|
|
66
12
|
export interface HeaderGradientOverlayProps {
|
|
67
|
-
/** Fill color,
|
|
13
|
+
/** Fill color, ramped from opaque to {@link HEADER_FADE_END_OPACITY}. */
|
|
68
14
|
color: string;
|
|
69
15
|
}
|
|
70
16
|
|
|
71
17
|
/**
|
|
72
|
-
* Vertical fade
|
|
73
|
-
*
|
|
74
|
-
* Reaches zero rather than stopping short. An overlay ending at partial opacity
|
|
75
|
-
* leaves a hard step wherever it is clipped, and that step is far more visible
|
|
76
|
-
* than the fade it was meant to hide — it is what cuts content off square as it
|
|
77
|
-
* scrolls under the header.
|
|
18
|
+
* Vertical fade behind header content, shared by header variants.
|
|
78
19
|
*
|
|
79
|
-
*
|
|
20
|
+
* A two-stop linear ramp spanning the overlay's own box: it neither overhangs
|
|
21
|
+
* the surface nor reserves a band inside it, so callers size the surface and
|
|
22
|
+
* the ramp simply spans whatever they gave it.
|
|
80
23
|
*/
|
|
81
24
|
export function HeaderGradientOverlay({ color }: HeaderGradientOverlayProps) {
|
|
82
25
|
const gradientId = useId();
|
|
@@ -85,9 +28,8 @@ export function HeaderGradientOverlay({ color }: HeaderGradientOverlayProps) {
|
|
|
85
28
|
<Svg height="100%" width="100%">
|
|
86
29
|
<Defs>
|
|
87
30
|
<SvgLinearGradient id={gradientId} x1="0" y1="0" x2="0" y2="1">
|
|
88
|
-
{
|
|
89
|
-
|
|
90
|
-
))}
|
|
31
|
+
<Stop offset={0} stopColor={color} stopOpacity={1} />
|
|
32
|
+
<Stop offset={1} stopColor={color} stopOpacity={HEADER_FADE_END_OPACITY} />
|
|
91
33
|
</SvgLinearGradient>
|
|
92
34
|
</Defs>
|
|
93
35
|
<Rect width="100%" height="100%" fill={`url(#${gradientId})`} />
|
|
@@ -3,60 +3,47 @@ import { View } from "react-native";
|
|
|
3
3
|
import Animated, { type useAnimatedStyle } from "react-native-reanimated";
|
|
4
4
|
import { StyleSheet } from "react-native-unistyles";
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { HeaderGradientOverlay } from "./HeaderGradientOverlay";
|
|
7
7
|
|
|
8
8
|
type HeaderOpacityStyle = ReturnType<typeof useAnimatedStyle<{ opacity: number }>>;
|
|
9
9
|
|
|
10
10
|
export interface HeaderSurfaceProps {
|
|
11
|
-
/** Fill color,
|
|
11
|
+
/** Fill color, ramped toward the surface's bottom edge unless `solid`. */
|
|
12
12
|
color: string;
|
|
13
13
|
/** Opacity style for variants that fade the whole surface in as they collapse. */
|
|
14
14
|
animatedStyle?: HeaderOpacityStyle;
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
16
|
+
* Fill flat instead of ramping — for a surface that has to hide content
|
|
17
|
+
* outright, such as a sticky accessory resting over the scroll content.
|
|
18
18
|
*/
|
|
19
|
-
|
|
19
|
+
solid?: boolean;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
* Header background
|
|
24
|
-
*
|
|
23
|
+
* Header background covering the bar and any accessory as one surface, so
|
|
24
|
+
* content scrolling under the header meets a single boundary rather than two.
|
|
25
|
+
*
|
|
26
|
+
* The ramp spans the surface itself: it is sized by the caller and stays inside
|
|
27
|
+
* those bounds, so a taller surface stretches the fade rather than adding to it.
|
|
25
28
|
*/
|
|
26
|
-
export function HeaderSurface({ color, animatedStyle,
|
|
29
|
+
export function HeaderSurface({ color, animatedStyle, solid }: HeaderSurfaceProps) {
|
|
27
30
|
return (
|
|
28
31
|
<Animated.View style={[styles.surface, animatedStyle]} pointerEvents="none">
|
|
29
|
-
<View style={styles.fill(color
|
|
30
|
-
<View style={styles.fade(fadeHeight)}>
|
|
31
|
-
<HeaderGradientOverlay color={color} />
|
|
32
|
-
</View>
|
|
32
|
+
{solid ? <View style={styles.fill(color)} /> : <HeaderGradientOverlay color={color} />}
|
|
33
33
|
</Animated.View>
|
|
34
34
|
);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
const styles = StyleSheet.create((
|
|
38
|
-
// Extend the fade below the header's layout bounds.
|
|
37
|
+
const styles = StyleSheet.create(() => ({
|
|
39
38
|
surface: {
|
|
40
39
|
position: "absolute",
|
|
41
40
|
top: 0,
|
|
42
41
|
left: 0,
|
|
43
42
|
right: 0,
|
|
44
|
-
bottom:
|
|
43
|
+
bottom: 0,
|
|
45
44
|
},
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
position: "absolute",
|
|
49
|
-
top: 0,
|
|
50
|
-
left: 0,
|
|
51
|
-
right: 0,
|
|
52
|
-
bottom: fadeHeight ?? theme.layout.header.height + HEADER_FADE_EXTENT,
|
|
45
|
+
fill: (color: string) => ({
|
|
46
|
+
flex: 1,
|
|
53
47
|
backgroundColor: color,
|
|
54
48
|
}),
|
|
55
|
-
fade: (fadeHeight: number | undefined) => ({
|
|
56
|
-
position: "absolute",
|
|
57
|
-
left: 0,
|
|
58
|
-
right: 0,
|
|
59
|
-
bottom: 0,
|
|
60
|
-
height: fadeHeight ?? theme.layout.header.height + HEADER_FADE_EXTENT,
|
|
61
|
-
}),
|
|
62
49
|
}));
|
|
@@ -12,7 +12,6 @@ import { SCREEN_HEADER_PORTAL_HOST, useScreen } from "../../../screen/ScreenCont
|
|
|
12
12
|
import { Toolbar } from "../../../toolbar";
|
|
13
13
|
import { HeaderDismissButton } from "../../header-buttons";
|
|
14
14
|
import { HeaderAccessory, HeaderAccessorySpacer } from "../../parts/HeaderAccessory";
|
|
15
|
-
import { HEADER_FADE_EXTENT } from "../../parts/HeaderGradientOverlay";
|
|
16
15
|
import { HeaderSurface } from "../../parts/HeaderSurface";
|
|
17
16
|
import type { HeaderAccessoryBehavior } from "../../types";
|
|
18
17
|
import { isCustomTitle, isTextTitle } from "../../utils";
|
|
@@ -165,7 +164,6 @@ export function LargeTitleHeader({
|
|
|
165
164
|
const leadingContent = leadingActions !== undefined ? leadingActions : LeftToolbar;
|
|
166
165
|
const trailingContent = trailingActions !== undefined ? trailingActions : RightToolbar;
|
|
167
166
|
|
|
168
|
-
const gradientColor = bgColor;
|
|
169
167
|
const isSticky = accessoryBehavior === "sticky" && !isLargeTitleHidden;
|
|
170
168
|
const hasStickyAccessory = isSticky && accessory != null;
|
|
171
169
|
// Sticky accessories reserve space below the large title; pinned ones add top padding.
|
|
@@ -214,8 +212,8 @@ export function LargeTitleHeader({
|
|
|
214
212
|
stickyAccessoryOffset > 0 ? interpolate(scrollY.value, [0, stickyAccessoryOffset], [1, 0], "clamp") : 0,
|
|
215
213
|
}));
|
|
216
214
|
|
|
217
|
-
// Animate the
|
|
218
|
-
const
|
|
215
|
+
// Animate the header surface's opacity: 0 (expanded) → 1 (collapsed).
|
|
216
|
+
const surfaceOpacityStyle = useAnimatedStyle(() => {
|
|
219
217
|
if (isLargeTitleHiddenValue.value) {
|
|
220
218
|
return { opacity: 1 };
|
|
221
219
|
}
|
|
@@ -228,7 +226,7 @@ export function LargeTitleHeader({
|
|
|
228
226
|
};
|
|
229
227
|
});
|
|
230
228
|
|
|
231
|
-
useHeaderBackground(bgColor,
|
|
229
|
+
useHeaderBackground(bgColor, surfaceOpacityStyle);
|
|
232
230
|
|
|
233
231
|
const compactTitleAnimatedStyle = useAnimatedStyle(() => {
|
|
234
232
|
if (isLargeTitleHiddenValue.value) {
|
|
@@ -295,12 +293,12 @@ export function LargeTitleHeader({
|
|
|
295
293
|
)}
|
|
296
294
|
{hasStickyAccessory && (
|
|
297
295
|
<Animated.View style={[styles.stickySurface, stickySurfaceStyle]} pointerEvents="none">
|
|
298
|
-
<HeaderSurface color={
|
|
296
|
+
<HeaderSurface color={bgColor} animatedStyle={surfaceOpacityStyle} />
|
|
299
297
|
</Animated.View>
|
|
300
298
|
)}
|
|
301
299
|
{/* Share a background between the bar and a pinned accessory. */}
|
|
302
300
|
<View style={styles.barGroup}>
|
|
303
|
-
{!hasStickyAccessory && <HeaderSurface color={
|
|
301
|
+
{!hasStickyAccessory && <HeaderSurface color={bgColor} animatedStyle={surfaceOpacityStyle} />}
|
|
304
302
|
<View style={styles.bar}>
|
|
305
303
|
{leading != null && <Toolbar>{leading}</Toolbar>}
|
|
306
304
|
{/* Text can never be the touch target, but custom content may be, so its
|
|
@@ -333,7 +331,7 @@ export function LargeTitleHeader({
|
|
|
333
331
|
<HeaderSurface
|
|
334
332
|
color={screenBackground ?? theme.color["surface.canvas"]}
|
|
335
333
|
animatedStyle={accessorySurfaceStyle}
|
|
336
|
-
|
|
334
|
+
solid
|
|
337
335
|
/>
|
|
338
336
|
<HeaderAccessory padding={accessoryPadding} onHeightChange={handleAccessoryHeightChange}>
|
|
339
337
|
{accessory}
|
|
@@ -94,7 +94,6 @@ export function TitleHeader({
|
|
|
94
94
|
const colorToken = background ?? bg;
|
|
95
95
|
const bgColor =
|
|
96
96
|
(colorToken ? resolveThemeColor(colorToken, theme) : screen?.background) ?? theme.color["surface.canvas"];
|
|
97
|
-
useHeaderBackground(bgColor);
|
|
98
97
|
const leadingContent = leadingActions !== undefined ? leadingActions : LeftToolbar;
|
|
99
98
|
const trailingContent = trailingActions !== undefined ? trailingActions : RightToolbar;
|
|
100
99
|
const setAccessoryInset = screen?.setHeaderAccessoryHeight;
|
|
@@ -104,7 +103,7 @@ export function TitleHeader({
|
|
|
104
103
|
[setAccessoryInset]
|
|
105
104
|
);
|
|
106
105
|
const isTransparent = bgColor === "transparent";
|
|
107
|
-
|
|
106
|
+
useHeaderBackground(bgColor);
|
|
108
107
|
styles.useVariants({ titleAlignment });
|
|
109
108
|
|
|
110
109
|
const leading =
|
|
@@ -129,10 +128,8 @@ export function TitleHeader({
|
|
|
129
128
|
return (
|
|
130
129
|
<View style={styles.container}>
|
|
131
130
|
<View style={styles.safeArea(isTransparent, bgColor, screen !== null)} />
|
|
132
|
-
{/* The fade covers the bar and any accessory as one surface, so content
|
|
133
|
-
scrolling under the header meets a single boundary rather than two. */}
|
|
134
131
|
<View style={styles.barGroup}>
|
|
135
|
-
<HeaderSurface color={
|
|
132
|
+
<HeaderSurface color={bgColor} />
|
|
136
133
|
<View style={styles.bar}>
|
|
137
134
|
{leading != null && <Toolbar>{leading}</Toolbar>}
|
|
138
135
|
{/* Text can never be the touch target, but custom content may be, so its
|