react-native-terra-ui 0.11.5 → 0.11.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/lib/module/components/chip/Chip.js +25 -8
- package/lib/module/components/chip/Chip.js.map +1 -1
- package/lib/module/components/chip/utils.js +1 -1
- package/lib/module/components/chip/utils.js.map +1 -1
- package/lib/module/components/header/index.js.map +1 -1
- package/lib/module/components/header/parts/HeaderAccessory.js +58 -0
- package/lib/module/components/header/parts/HeaderAccessory.js.map +1 -0
- package/lib/module/components/header/parts/HeaderSurface.js +58 -0
- package/lib/module/components/header/parts/HeaderSurface.js.map +1 -0
- package/lib/module/components/header/types.js +2 -0
- package/lib/module/components/header/types.js.map +1 -0
- package/lib/module/components/header/variants/LargeTitleHeader/index.js +114 -46
- package/lib/module/components/header/variants/LargeTitleHeader/index.js.map +1 -1
- package/lib/module/components/header/variants/TitleHeader/index.js +33 -28
- package/lib/module/components/header/variants/TitleHeader/index.js.map +1 -1
- package/lib/module/components/screen/ScreenContext.js +16 -1
- package/lib/module/components/screen/ScreenContext.js.map +1 -1
- package/lib/module/components/screen/ScreenList.js +24 -5
- package/lib/module/components/screen/ScreenList.js.map +1 -1
- package/lib/module/components/screen/ScreenScrollView.js +10 -4
- package/lib/module/components/screen/ScreenScrollView.js.map +1 -1
- package/lib/typescript/src/components/chip/Chip.d.ts +8 -0
- package/lib/typescript/src/components/chip/Chip.d.ts.map +1 -1
- package/lib/typescript/src/components/chip/utils.d.ts +6 -1
- package/lib/typescript/src/components/chip/utils.d.ts.map +1 -1
- package/lib/typescript/src/components/header/index.d.ts +1 -0
- package/lib/typescript/src/components/header/index.d.ts.map +1 -1
- package/lib/typescript/src/components/header/parts/HeaderAccessory.d.ts +19 -0
- package/lib/typescript/src/components/header/parts/HeaderAccessory.d.ts.map +1 -0
- package/lib/typescript/src/components/header/parts/HeaderSurface.d.ts +22 -0
- package/lib/typescript/src/components/header/parts/HeaderSurface.d.ts.map +1 -0
- package/lib/typescript/src/components/header/types.d.ts +15 -0
- package/lib/typescript/src/components/header/types.d.ts.map +1 -0
- package/lib/typescript/src/components/header/variants/LargeTitleHeader/index.d.ts +8 -1
- package/lib/typescript/src/components/header/variants/LargeTitleHeader/index.d.ts.map +1 -1
- package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts +14 -1
- package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts.map +1 -1
- package/lib/typescript/src/components/screen/ScreenContext.d.ts +22 -0
- package/lib/typescript/src/components/screen/ScreenContext.d.ts.map +1 -1
- package/lib/typescript/src/components/screen/ScreenList.d.ts.map +1 -1
- package/lib/typescript/src/components/screen/ScreenScrollView.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/chip/Chip.tsx +22 -9
- package/src/components/chip/utils.ts +7 -2
- package/src/components/header/index.ts +1 -0
- package/src/components/header/parts/HeaderAccessory.tsx +55 -0
- package/src/components/header/parts/HeaderSurface.tsx +62 -0
- package/src/components/header/types.ts +15 -0
- package/src/components/header/variants/LargeTitleHeader/index.tsx +114 -42
- package/src/components/header/variants/TitleHeader/index.tsx +45 -22
- package/src/components/screen/ScreenContext.tsx +42 -0
- package/src/components/screen/ScreenList.tsx +30 -5
- package/src/components/screen/ScreenScrollView.tsx +28 -6
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { View } from "react-native-unistyles/components/native/View";
|
|
4
4
|
import { Text } from "react-native-unistyles/components/native/Text";
|
|
5
|
-
import { useContext } from "react";
|
|
5
|
+
import { useCallback, useContext } from "react";
|
|
6
6
|
import { StyleSheet, useUnistyles } from "react-native-unistyles";
|
|
7
7
|
import { resolveThemeColor } from "../../../../utils/resolve-theme-color.js";
|
|
8
8
|
import { FONT_WEIGHT_VALUE } from "../../../../utils/typography.js";
|
|
@@ -10,7 +10,8 @@ import { useHeaderBackground } from "../../../screen/parts/ScreenHeaderAppearanc
|
|
|
10
10
|
import { ScreenContext } from "../../../screen/ScreenContext.js";
|
|
11
11
|
import { Toolbar } from "../../../toolbar/index.js";
|
|
12
12
|
import { HeaderDismissButton } from "../../header-buttons.js";
|
|
13
|
-
import {
|
|
13
|
+
import { HeaderAccessory } from "../../parts/HeaderAccessory.js";
|
|
14
|
+
import { HeaderSurface } from "../../parts/HeaderSurface.js";
|
|
14
15
|
import { isCustomTitle, isTextTitle } from "../../utils.js";
|
|
15
16
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
17
|
/**
|
|
@@ -36,6 +37,8 @@ export function TitleHeader({
|
|
|
36
37
|
trailingActions,
|
|
37
38
|
LeftToolbar,
|
|
38
39
|
RightToolbar,
|
|
40
|
+
accessory,
|
|
41
|
+
accessoryPadding = "x",
|
|
39
42
|
dismissAction = "none",
|
|
40
43
|
navigation,
|
|
41
44
|
onDismiss,
|
|
@@ -52,6 +55,9 @@ export function TitleHeader({
|
|
|
52
55
|
useHeaderBackground(bgColor);
|
|
53
56
|
const leadingContent = leadingActions !== undefined ? leadingActions : LeftToolbar;
|
|
54
57
|
const trailingContent = trailingActions !== undefined ? trailingActions : RightToolbar;
|
|
58
|
+
const setAccessoryInset = screen?.setHeaderAccessoryHeight;
|
|
59
|
+
// Compact headers always reserve the accessory height as top padding.
|
|
60
|
+
const handleAccessoryHeightChange = useCallback(height => setAccessoryInset?.(height), [setAccessoryInset]);
|
|
55
61
|
const isTransparent = bgColor === "transparent";
|
|
56
62
|
const gradientColor = bgColor;
|
|
57
63
|
const _styles = styles;
|
|
@@ -78,25 +84,28 @@ export function TitleHeader({
|
|
|
78
84
|
children: [/*#__PURE__*/_jsx(View, {
|
|
79
85
|
style: styles.safeArea(isTransparent, bgColor, screen !== null)
|
|
80
86
|
}), /*#__PURE__*/_jsxs(View, {
|
|
81
|
-
style: styles.
|
|
82
|
-
children: [/*#__PURE__*/_jsx(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
87
|
+
style: styles.barGroup,
|
|
88
|
+
children: [/*#__PURE__*/_jsx(HeaderSurface, {
|
|
89
|
+
color: gradientColor
|
|
90
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
91
|
+
style: styles.bar,
|
|
92
|
+
children: [leading != null && /*#__PURE__*/_jsx(Toolbar, {
|
|
93
|
+
children: leading
|
|
94
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
95
|
+
style: styles.titleContainer,
|
|
96
|
+
pointerEvents: isCustomTitle(title) ? "box-none" : "none",
|
|
97
|
+
children: isTextTitle(title) ? String(title).trim().length > 0 && /*#__PURE__*/_jsx(Text, {
|
|
98
|
+
style: styles.title,
|
|
99
|
+
children: title
|
|
100
|
+
}) : title
|
|
101
|
+
}), trailing != null && /*#__PURE__*/_jsx(Toolbar, {
|
|
102
|
+
style: styles.trailing,
|
|
103
|
+
children: trailing
|
|
104
|
+
})]
|
|
105
|
+
}), accessory != null && /*#__PURE__*/_jsx(HeaderAccessory, {
|
|
106
|
+
padding: accessoryPadding,
|
|
107
|
+
onHeightChange: handleAccessoryHeightChange,
|
|
108
|
+
children: accessory
|
|
100
109
|
})]
|
|
101
110
|
})]
|
|
102
111
|
});
|
|
@@ -115,13 +124,9 @@ const styles = StyleSheet.create((theme, runtime) => ({
|
|
|
115
124
|
backgroundColor: isTransparent ? "transparent" : bgColor,
|
|
116
125
|
uni__dependencies: [9]
|
|
117
126
|
}),
|
|
118
|
-
//
|
|
119
|
-
|
|
120
|
-
position: "
|
|
121
|
-
top: 0,
|
|
122
|
-
left: 0,
|
|
123
|
-
right: 0,
|
|
124
|
-
bottom: -HEADER_FADE_EXTENT
|
|
127
|
+
// Anchors the absolutely positioned surface over the bar and the accessory both.
|
|
128
|
+
barGroup: {
|
|
129
|
+
position: "relative"
|
|
125
130
|
},
|
|
126
131
|
bar: {
|
|
127
132
|
height: theme.layout.header.height,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useContext","StyleSheet","useUnistyles","resolveThemeColor","FONT_WEIGHT_VALUE","useHeaderBackground","ScreenContext","Toolbar","HeaderDismissButton","
|
|
1
|
+
{"version":3,"names":["useCallback","useContext","StyleSheet","useUnistyles","resolveThemeColor","FONT_WEIGHT_VALUE","useHeaderBackground","ScreenContext","Toolbar","HeaderDismissButton","HeaderAccessory","HeaderSurface","isCustomTitle","isTextTitle","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","TitleHeader","title","leadingActions","trailingActions","LeftToolbar","RightToolbar","accessory","accessoryPadding","dismissAction","navigation","onDismiss","titleAlignment","background","bg","theme","screen","colorToken","bgColor","color","leadingContent","undefined","trailingContent","setAccessoryInset","setHeaderAccessoryHeight","handleAccessoryHeightChange","height","isTransparent","gradientColor","_styles","styles","useVariants","leading","children","trailing","View","style","container","safeArea","barGroup","bar","titleContainer","pointerEvents","String","trim","length","Text","padding","onHeightChange","create","runtime","position","top","left","right","zIndex","withinScreen","insets","backgroundColor","uni__dependencies","layout","header","flexDirection","alignItems","paddingHorizontal","x","gap","spacing","justifyContent","variants","center","marginLeft","flex","fontSize","typography","lineHeight","letterSpacing","fontWeight","textAlign"],"sourceRoot":"../../../../../../src","sources":["components/header/variants/TitleHeader/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -29,6 +29,8 @@ export function ScreenScrollProvider({
|
|
|
29
29
|
hasHeader = false
|
|
30
30
|
}) {
|
|
31
31
|
const scrollY = useSharedValue(0);
|
|
32
|
+
const [headerAccessoryHeight, setAccessoryHeight] = useState(0);
|
|
33
|
+
const [contentTopPadding, setTopPadding] = useState(0);
|
|
32
34
|
const headerCollapseHeight = useSharedValue(0);
|
|
33
35
|
const [headerSnapOffsets, setHeaderSnapOffsets] = useState();
|
|
34
36
|
const scrollRef = useAnimatedRef();
|
|
@@ -37,6 +39,15 @@ export function ScreenScrollProvider({
|
|
|
37
39
|
headerCollapseHeight.value = rounded;
|
|
38
40
|
setHeaderSnapOffsets(rounded > 0 ? [0, rounded] : undefined);
|
|
39
41
|
}, [headerCollapseHeight]);
|
|
42
|
+
|
|
43
|
+
// Rounded so a subpixel layout measurement cannot loop the content padding
|
|
44
|
+
// against the layout that produced it.
|
|
45
|
+
const setHeaderAccessoryHeight = useCallback(height => {
|
|
46
|
+
setAccessoryHeight(Math.max(0, Math.round(height)));
|
|
47
|
+
}, []);
|
|
48
|
+
const setContentTopPadding = useCallback(padding => {
|
|
49
|
+
setTopPadding(Math.max(0, Math.round(padding)));
|
|
50
|
+
}, []);
|
|
40
51
|
const scrollHandler = useAnimatedScrollHandler({
|
|
41
52
|
onScroll: event => {
|
|
42
53
|
scrollY.value = event.contentOffset.y;
|
|
@@ -51,13 +62,17 @@ export function ScreenScrollProvider({
|
|
|
51
62
|
platformInsetsEligible,
|
|
52
63
|
margins: contentPadding,
|
|
53
64
|
hasHeader,
|
|
65
|
+
headerAccessoryHeight,
|
|
66
|
+
setHeaderAccessoryHeight,
|
|
67
|
+
contentTopPadding,
|
|
68
|
+
setContentTopPadding,
|
|
54
69
|
scrollY,
|
|
55
70
|
headerCollapseHeight,
|
|
56
71
|
headerSnapOffsets,
|
|
57
72
|
setHeaderCollapseHeight,
|
|
58
73
|
scrollRef,
|
|
59
74
|
scrollHandler
|
|
60
|
-
}), [background, contentPadding, safeArea, contentOwnsBottomInset, platformAdjustsInsets, platformInsetsEligible, hasHeader, scrollY, headerCollapseHeight, headerSnapOffsets, setHeaderCollapseHeight, scrollRef, scrollHandler]);
|
|
75
|
+
}), [background, contentPadding, safeArea, contentOwnsBottomInset, platformAdjustsInsets, platformInsetsEligible, hasHeader, headerAccessoryHeight, setHeaderAccessoryHeight, contentTopPadding, setContentTopPadding, scrollY, headerCollapseHeight, headerSnapOffsets, setHeaderCollapseHeight, scrollRef, scrollHandler]);
|
|
61
76
|
return /*#__PURE__*/_jsx(ScreenContext.Provider, {
|
|
62
77
|
value: value,
|
|
63
78
|
children: children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useCallback","useContext","useMemo","useState","useAnimatedRef","useAnimatedScrollHandler","useSharedValue","jsx","_jsx","SCREEN_HEADER_PORTAL_HOST","ScreenContext","ScreenScrollProvider","background","children","contentPadding","safeArea","contentOwnsBottomInset","platformAdjustsInsets","platformInsetsEligible","hasHeader","scrollY","headerCollapseHeight","headerSnapOffsets","setHeaderSnapOffsets","scrollRef","setHeaderCollapseHeight","height","rounded","Math","round","value","undefined","scrollHandler","onScroll","event","contentOffset","y","margins","Provider","useScreen","context","Error"],"sourceRoot":"../../../../src","sources":["components/screen/ScreenContext.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAkBC,WAAW,EAAEC,UAAU,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAEjG,SAIEC,cAAc,EACdC,wBAAwB,EACxBC,cAAc,QACT,yBAAyB;;AAIhC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAGA;AACA,OAAO,MAAMC,yBAAyB,GAAG,eAAe;;AAExD;;
|
|
1
|
+
{"version":3,"names":["createContext","useCallback","useContext","useMemo","useState","useAnimatedRef","useAnimatedScrollHandler","useSharedValue","jsx","_jsx","SCREEN_HEADER_PORTAL_HOST","ScreenContext","ScreenScrollProvider","background","children","contentPadding","safeArea","contentOwnsBottomInset","platformAdjustsInsets","platformInsetsEligible","hasHeader","scrollY","headerAccessoryHeight","setAccessoryHeight","contentTopPadding","setTopPadding","headerCollapseHeight","headerSnapOffsets","setHeaderSnapOffsets","scrollRef","setHeaderCollapseHeight","height","rounded","Math","round","value","undefined","setHeaderAccessoryHeight","max","setContentTopPadding","padding","scrollHandler","onScroll","event","contentOffset","y","margins","Provider","useScreen","context","Error"],"sourceRoot":"../../../../src","sources":["components/screen/ScreenContext.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import { View } from "react-native-unistyles/components/native/View";
|
|
4
4
|
import { FlatList } from "react-native-unistyles/components/native/FlatList";
|
|
5
|
-
import { forwardRef, useMemo } from "react";
|
|
5
|
+
import { forwardRef, useEffect, useMemo } from "react";
|
|
6
|
+
import { StyleSheet as NativeStyleSheet } from "react-native";
|
|
6
7
|
import Animated from "react-native-reanimated";
|
|
7
|
-
import { StyleSheet } from "react-native-unistyles";
|
|
8
|
+
import { StyleSheet, useUnistyles } from "react-native-unistyles";
|
|
8
9
|
import { resolveScreenPadding } from "../../theme/screen-padding.js";
|
|
9
10
|
import { PortalHost } from "../portal/index.js";
|
|
10
11
|
import { useNestedContainerWarning } from "./hooks/use-nested-container-warning.js";
|
|
@@ -62,6 +63,8 @@ const ScreenListBase = /*#__PURE__*/forwardRef(function ScreenList({
|
|
|
62
63
|
headerSnapOffsets,
|
|
63
64
|
contentPadding: screenPadding,
|
|
64
65
|
hasHeader,
|
|
66
|
+
headerAccessoryHeight,
|
|
67
|
+
setContentTopPadding,
|
|
65
68
|
contentOwnsBottomInset,
|
|
66
69
|
platformAdjustsInsets
|
|
67
70
|
} = useScreen();
|
|
@@ -71,6 +74,21 @@ const ScreenListBase = /*#__PURE__*/forwardRef(function ScreenList({
|
|
|
71
74
|
useNestedContainerWarning("Screen.List", horizontal);
|
|
72
75
|
const mergedRef = useScreenRef(isDefaultFlatList ? scrollRef : undefined, ref);
|
|
73
76
|
const resolvedPadding = contentPadding ?? margins ?? screenPadding;
|
|
77
|
+
const {
|
|
78
|
+
theme,
|
|
79
|
+
rt
|
|
80
|
+
} = useUnistyles();
|
|
81
|
+
const {
|
|
82
|
+
y: paddingY
|
|
83
|
+
} = resolveScreenPadding(theme, rt.breakpoint);
|
|
84
|
+
const defaultTopPadding = (hasHeader ? theme.layout.header.height + headerAccessoryHeight : 0) + (hasVerticalPadding(resolvedPadding) ? paddingY : 0);
|
|
85
|
+
const paddingTopOverride = NativeStyleSheet.flatten(contentContainerStyle)?.paddingTop;
|
|
86
|
+
const contentTopPadding = typeof paddingTopOverride === "number" ? paddingTopOverride : defaultTopPadding;
|
|
87
|
+
// ListHeaderComponent is wrapped by the list, so its local layout.y excludes
|
|
88
|
+
// content padding. Report the resolved padding, including caller overrides.
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
if (!horizontal) setContentTopPadding(contentTopPadding);
|
|
91
|
+
}, [contentTopPadding, horizontal, setContentTopPadding]);
|
|
74
92
|
const resolvedLoading = isLoading ?? loading;
|
|
75
93
|
const placeholder = renderScreenPlaceholder({
|
|
76
94
|
isLoading: resolvedLoading,
|
|
@@ -106,7 +124,7 @@ const ScreenListBase = /*#__PURE__*/forwardRef(function ScreenList({
|
|
|
106
124
|
contentInsetAdjustmentBehavior: platformAdjustsInsets ? "automatic" : "never",
|
|
107
125
|
automaticallyAdjustContentInsets: false,
|
|
108
126
|
automaticallyAdjustsScrollIndicatorInsets: false,
|
|
109
|
-
contentContainerStyle: [styles.content(resolvedPadding, hasHeader, bottomInset, extraBottomPadding), contentContainerStyle],
|
|
127
|
+
contentContainerStyle: [styles.content(resolvedPadding, hasHeader, bottomInset, extraBottomPadding, headerAccessoryHeight), contentContainerStyle],
|
|
110
128
|
ListHeaderComponent: header,
|
|
111
129
|
ListFooterComponent: footer,
|
|
112
130
|
ListEmptyComponent: placeholder ?? ListEmptyComponent,
|
|
@@ -139,14 +157,15 @@ const ScreenListBase = /*#__PURE__*/forwardRef(function ScreenList({
|
|
|
139
157
|
export const ScreenList = ScreenListBase;
|
|
140
158
|
ScreenList.displayName = "Screen.List";
|
|
141
159
|
const styles = StyleSheet.create((theme, runtime) => ({
|
|
142
|
-
content: (padding, hasHeader, bottomInset, extraBottomPadding) => {
|
|
160
|
+
content: (padding, hasHeader, bottomInset, extraBottomPadding, accessoryHeight) => {
|
|
143
161
|
const {
|
|
144
162
|
x,
|
|
145
163
|
y
|
|
146
164
|
} = resolveScreenPadding(theme, runtime.breakpoint);
|
|
147
165
|
return {
|
|
148
166
|
flexGrow: 1,
|
|
149
|
-
|
|
167
|
+
// The theme height covers the bar; an accessory pinned under it is extra.
|
|
168
|
+
paddingTop: (hasHeader ? theme.layout.header.height + accessoryHeight : 0) + (hasVerticalPadding(padding) ? y : 0),
|
|
150
169
|
paddingHorizontal: hasHorizontalPadding(padding) ? x : 0,
|
|
151
170
|
paddingBottom: (bottomInset ?? (hasVerticalPadding(padding) ? y : 0)) + extraBottomPadding,
|
|
152
171
|
uni__dependencies: [0, 3]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useMemo","Animated","
|
|
1
|
+
{"version":3,"names":["forwardRef","useEffect","useMemo","StyleSheet","NativeStyleSheet","Animated","useUnistyles","resolveScreenPadding","PortalHost","useNestedContainerWarning","useScreenRef","useScreenScrollHandler","ScreenBottomInset","renderScreenPlaceholder","SCREEN_HEADER_PORTAL_HOST","useScreen","hasHorizontalPadding","hasVerticalPadding","renderListComponent","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ScreenListBase","ScreenList","as","data","renderItem","style","contentContainerStyle","ListHeaderComponent","ListFooterComponent","ListEmptyComponent","horizontal","isLoading","loading","loadingContent","LoadingComponent","emptyContent","EmptyComponent","contentPadding","margins","bottomInset","extraBottomPadding","scrollHandler","externalScrollHandler","onScroll","rest","ref","isDefaultFlatList","undefined","FlatList","Component","AnimatedComponent","createAnimatedComponent","background","scrollRef","headerSnapOffsets","screenPadding","hasHeader","headerAccessoryHeight","setContentTopPadding","contentOwnsBottomInset","platformAdjustsInsets","ownsBottomInset","mergedRef","resolvedPadding","theme","rt","y","paddingY","breakpoint","defaultTopPadding","layout","header","height","paddingTopOverride","flatten","paddingTop","contentTopPadding","resolvedLoading","placeholder","isEmpty","length","composedScrollHandler","children","View","styles","headerWrapper","name","footer","backgroundColor","contentInsetAdjustmentBehavior","automaticallyAdjustContentInsets","automaticallyAdjustsScrollIndicatorInsets","content","showsVerticalScrollIndicator","scrollEventThrottle","snapToOffsets","displayName","create","runtime","padding","accessoryHeight","x","flexGrow","paddingHorizontal","paddingBottom","uni__dependencies","marginHorizontal"],"sourceRoot":"../../../../src","sources":["components/screen/ScreenList.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { View } from "react-native-unistyles/components/native/View";
|
|
4
|
-
import { Children, forwardRef } from "react";
|
|
4
|
+
import { Children, forwardRef, useCallback } from "react";
|
|
5
5
|
import Animated from "react-native-reanimated";
|
|
6
6
|
import { StyleSheet } from "react-native-unistyles";
|
|
7
7
|
import { resolveScreenPadding } from "../../theme/screen-padding.js";
|
|
@@ -58,6 +58,8 @@ export const ScreenScrollView = /*#__PURE__*/forwardRef(function ScreenScrollVie
|
|
|
58
58
|
scrollHandler,
|
|
59
59
|
contentPadding: screenPadding,
|
|
60
60
|
hasHeader,
|
|
61
|
+
headerAccessoryHeight,
|
|
62
|
+
setContentTopPadding,
|
|
61
63
|
background,
|
|
62
64
|
contentOwnsBottomInset,
|
|
63
65
|
platformAdjustsInsets
|
|
@@ -75,6 +77,8 @@ export const ScreenScrollView = /*#__PURE__*/forwardRef(function ScreenScrollVie
|
|
|
75
77
|
isEmpty: isEmpty ?? Children.toArray(children).length === 0
|
|
76
78
|
});
|
|
77
79
|
const composedScrollHandler = useScreenScrollHandler(scrollHandler, onScroll, externalScrollHandler);
|
|
80
|
+
// As the first child, the header wrapper's layout.y includes resolved top padding.
|
|
81
|
+
const handleHeaderWrapperLayout = useCallback(event => setContentTopPadding(event.nativeEvent.layout.y), [setContentTopPadding]);
|
|
78
82
|
return /*#__PURE__*/_jsxs(Animated.ScrollView, {
|
|
79
83
|
ref: mergedRef,
|
|
80
84
|
style: [{
|
|
@@ -91,11 +95,12 @@ export const ScreenScrollView = /*#__PURE__*/forwardRef(function ScreenScrollVie
|
|
|
91
95
|
automaticallyAdjustsScrollIndicatorInsets: false,
|
|
92
96
|
showsVerticalScrollIndicator: false,
|
|
93
97
|
scrollEventThrottle: 16,
|
|
94
|
-
contentContainerStyle: [styles.scrollContent(hasHeader, resolvedPadding, extraBottomPadding), contentContainerStyle],
|
|
98
|
+
contentContainerStyle: [styles.scrollContent(hasHeader, resolvedPadding, extraBottomPadding, headerAccessoryHeight), contentContainerStyle],
|
|
95
99
|
...rest,
|
|
96
100
|
onScroll: composedScrollHandler,
|
|
97
101
|
children: [/*#__PURE__*/_jsx(View, {
|
|
98
102
|
style: styles.headerWrapper(resolvedPadding),
|
|
103
|
+
onLayout: handleHeaderWrapperLayout,
|
|
99
104
|
children: /*#__PURE__*/_jsx(PortalHost, {
|
|
100
105
|
name: SCREEN_HEADER_PORTAL_HOST
|
|
101
106
|
})
|
|
@@ -107,14 +112,15 @@ export const ScreenScrollView = /*#__PURE__*/forwardRef(function ScreenScrollVie
|
|
|
107
112
|
});
|
|
108
113
|
ScreenScrollView.displayName = "Screen.ScrollView";
|
|
109
114
|
const styles = StyleSheet.create((theme, runtime) => ({
|
|
110
|
-
scrollContent: (hasHeader, padding, extraBottomPadding) => {
|
|
115
|
+
scrollContent: (hasHeader, padding, extraBottomPadding, accessoryHeight) => {
|
|
111
116
|
const {
|
|
112
117
|
x,
|
|
113
118
|
y
|
|
114
119
|
} = resolveScreenPadding(theme, runtime.breakpoint);
|
|
115
120
|
return {
|
|
116
121
|
flexGrow: 1,
|
|
117
|
-
|
|
122
|
+
// The theme height covers the bar; an accessory pinned under it is extra.
|
|
123
|
+
paddingTop: (hasHeader ? theme.layout.header.height + accessoryHeight : 0) + (hasVerticalPadding(padding) ? y : 0),
|
|
118
124
|
paddingHorizontal: hasHorizontalPadding(padding) ? x : 0,
|
|
119
125
|
paddingBottom: (hasVerticalPadding(padding) ? y : 0) + extraBottomPadding,
|
|
120
126
|
uni__dependencies: [0, 3]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Children","forwardRef","Animated","StyleSheet","resolveScreenPadding","PortalHost","useNestedContainerWarning","useScreenRef","useScreenScrollHandler","ScreenBottomInset","renderScreenPlaceholder","SCREEN_HEADER_PORTAL_HOST","useScreen","hasHorizontalPadding","hasVerticalPadding","jsx","_jsx","jsxs","_jsxs","ScreenScrollView","children","style","contentContainerStyle","contentStyle","scrollHandler","externalScrollHandler","onScroll","horizontal","isLoading","loading","loadingContent","LoadingComponent","emptyContent","EmptyComponent","contentPadding","margins","extraBottomPadding","isEmpty","rest","ref","scrollRef","screenPadding","hasHeader","background","contentOwnsBottomInset","platformAdjustsInsets","ownsBottomInset","resolvedPadding","mergedRef","placeholder","undefined","toArray","length","composedScrollHandler","ScrollView","backgroundColor","contentInsetAdjustmentBehavior","automaticallyAdjustContentInsets","automaticallyAdjustsScrollIndicatorInsets","showsVerticalScrollIndicator","scrollEventThrottle","styles","scrollContent","View","headerWrapper","name","content","displayName","create","theme","runtime","padding","
|
|
1
|
+
{"version":3,"names":["Children","forwardRef","useCallback","Animated","StyleSheet","resolveScreenPadding","PortalHost","useNestedContainerWarning","useScreenRef","useScreenScrollHandler","ScreenBottomInset","renderScreenPlaceholder","SCREEN_HEADER_PORTAL_HOST","useScreen","hasHorizontalPadding","hasVerticalPadding","jsx","_jsx","jsxs","_jsxs","ScreenScrollView","children","style","contentContainerStyle","contentStyle","scrollHandler","externalScrollHandler","onScroll","horizontal","isLoading","loading","loadingContent","LoadingComponent","emptyContent","EmptyComponent","contentPadding","margins","extraBottomPadding","isEmpty","rest","ref","scrollRef","screenPadding","hasHeader","headerAccessoryHeight","setContentTopPadding","background","contentOwnsBottomInset","platformAdjustsInsets","ownsBottomInset","resolvedPadding","mergedRef","placeholder","undefined","toArray","length","composedScrollHandler","handleHeaderWrapperLayout","event","nativeEvent","layout","y","ScrollView","backgroundColor","contentInsetAdjustmentBehavior","automaticallyAdjustContentInsets","automaticallyAdjustsScrollIndicatorInsets","showsVerticalScrollIndicator","scrollEventThrottle","styles","scrollContent","View","headerWrapper","onLayout","name","content","displayName","create","theme","runtime","padding","accessoryHeight","x","breakpoint","flexGrow","paddingTop","header","height","paddingHorizontal","paddingBottom","uni__dependencies","marginHorizontal","flexDirection"],"sourceRoot":"../../../../src","sources":["components/screen/ScreenScrollView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,6 +6,14 @@ export interface ChipProps extends ViewProps {
|
|
|
6
6
|
size?: ChipSize;
|
|
7
7
|
variant?: ChipVariant;
|
|
8
8
|
color?: ChipColor;
|
|
9
|
+
/**
|
|
10
|
+
* Fill behind the chip, overriding the one its `variant` would paint.
|
|
11
|
+
*
|
|
12
|
+
* Only `outline` has a fill worth naming a default for — `'surface.default'`,
|
|
13
|
+
* so an outlined chip reads as a solid capsule rather than a ring over
|
|
14
|
+
* whatever it happens to sit on. Pass `'transparent'` to get the ring back.
|
|
15
|
+
*/
|
|
16
|
+
background?: ColorToken;
|
|
9
17
|
children?: ReactNode;
|
|
10
18
|
}
|
|
11
19
|
export interface ChipIconProps extends Omit<ViewProps, "children"> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chip.d.ts","sourceRoot":"","sources":["../../../../../src/components/chip/Chip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0D,KAAK,SAAS,EAAc,MAAM,OAAO,CAAC;AAC3G,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpE,OAAO,KAAK,EAAE,UAAU,EAAmB,aAAa,EAAE,MAAM,cAAc,CAAC;AAI/E,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAS,CAAC;AAGhE,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA6HD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IAChE,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,QAAA,MAAM,QAAQ,GAAI,8DAA8D,aAAa,gCAa5F,CAAC;AAgBF,QAAA,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"Chip.d.ts","sourceRoot":"","sources":["../../../../../src/components/chip/Chip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0D,KAAK,SAAS,EAAc,MAAM,OAAO,CAAC;AAC3G,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpE,OAAO,KAAK,EAAE,UAAU,EAAmB,aAAa,EAAE,MAAM,cAAc,CAAC;AAI/E,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAS,CAAC;AAGhE,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA6HD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IAChE,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,QAAA,MAAM,QAAQ,GAAI,8DAA8D,aAAa,gCAa5F,CAAC;AAgBF,QAAA,MAAM,QAAQ,uLAsCZ,CAAC;AAEH,KAAK,aAAa,GAAG,OAAO,QAAQ,GAAG;IACrC,IAAI,EAAE,OAAO,QAAQ,CAAC;CACvB,CAAC;AAiBF,eAAO,MAAM,IAAI,EAA8B,aAAa,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
export interface CustomChipColors {
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Undefined for `outline`, which takes the fill its style variant paints
|
|
4
|
+
* rather than deriving one — the outlined chip's fill is a surface, not a
|
|
5
|
+
* tint of the literal, so there is nothing here to derive it from.
|
|
6
|
+
*/
|
|
7
|
+
bg: string | undefined;
|
|
3
8
|
border: string;
|
|
4
9
|
borderWidth: number;
|
|
5
10
|
fg: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/chip/utils.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/chip/utils.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;CACZ;AAID,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GACpC,gBAAgB,CAqBlB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { Header } from "./Header.js";
|
|
2
2
|
export { HeaderButton, type HeaderButtonProps, type HeaderDismissAction, HeaderDismissButton, type HeaderDismissNavigation, type HeaderDismissProps, } from "./header-buttons.js";
|
|
3
|
+
export type { HeaderAccessoryBehavior, HeaderAccessoryPadding } from "./types.js";
|
|
3
4
|
export type { LargeTitleHeaderProps } from "./variants/LargeTitleHeader/index.js";
|
|
4
5
|
export { LargeTitleHeader } from "./variants/LargeTitleHeader/index.js";
|
|
5
6
|
export type { TitleHeaderProps } from "./variants/TitleHeader/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/header/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAU,CAAC;AAClC,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,qBAAkB,CAAC;AAC1B,YAAY,EAAE,qBAAqB,EAAE,MAAM,sCAA6B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAA6B,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAwB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/header/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAU,CAAC;AAClC,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,qBAAkB,CAAC;AAC1B,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,YAAS,CAAC;AAC/E,YAAY,EAAE,qBAAqB,EAAE,MAAM,sCAA6B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAA6B,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAwB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAwB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type StyleProp, type ViewStyle } from "react-native";
|
|
3
|
+
import type { HeaderAccessoryPadding } from "../types.js";
|
|
4
|
+
export interface HeaderAccessoryProps {
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
/** Horizontal padding around the accessory. */
|
|
7
|
+
padding: HeaderAccessoryPadding;
|
|
8
|
+
/** Reports layout height in dp; reports zero on cleanup to release reserved space. */
|
|
9
|
+
onHeightChange: (height: number) => void;
|
|
10
|
+
/** Additional styles for the accessory container. */
|
|
11
|
+
style?: StyleProp<ViewStyle>;
|
|
12
|
+
}
|
|
13
|
+
/** Measures accessory content so the header can reserve space in the scroll container. */
|
|
14
|
+
export declare function HeaderAccessory({ children, padding, onHeightChange, style }: HeaderAccessoryProps): import("react").JSX.Element;
|
|
15
|
+
/** Reserves scroll-content space for the sticky accessory rendered in the header overlay. */
|
|
16
|
+
export declare function HeaderAccessorySpacer({ height }: {
|
|
17
|
+
height: number;
|
|
18
|
+
}): import("react").JSX.Element;
|
|
19
|
+
//# sourceMappingURL=HeaderAccessory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeaderAccessory.d.ts","sourceRoot":"","sources":["../../../../../../src/components/header/parts/HeaderAccessory.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAA0B,MAAM,OAAO,CAAC;AAC/D,OAAO,EAA0B,KAAK,SAAS,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAK5F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAU,CAAC;AAEvD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,SAAS,CAAC;IACpB,+CAA+C;IAC/C,OAAO,EAAE,sBAAsB,CAAC;IAChC,sFAAsF;IACtF,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,qDAAqD;IACrD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,oBAAoB,+BAkBjG;AAED,6FAA6F;AAC7F,wBAAgB,qBAAqB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,+BAEnE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type useAnimatedStyle } from "react-native-reanimated";
|
|
2
|
+
type HeaderOpacityStyle = ReturnType<typeof useAnimatedStyle<{
|
|
3
|
+
opacity: number;
|
|
4
|
+
}>>;
|
|
5
|
+
export interface HeaderSurfaceProps {
|
|
6
|
+
/** Fill color, fading to fully transparent along the bottom edge. */
|
|
7
|
+
color: string;
|
|
8
|
+
/** Opacity style for variants that fade the whole surface in as they collapse. */
|
|
9
|
+
animatedStyle?: HeaderOpacityStyle;
|
|
10
|
+
/**
|
|
11
|
+
* Height of the bottom gradient in dp. The region above it uses a solid fill.
|
|
12
|
+
* @defaultValue The themed bar height plus `HEADER_FADE_EXTENT`.
|
|
13
|
+
*/
|
|
14
|
+
fadeHeight?: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Header background with a solid fill and a bottom gradient.
|
|
18
|
+
* A fixed gradient height keeps tall accessories from becoming translucent.
|
|
19
|
+
*/
|
|
20
|
+
export declare function HeaderSurface({ color, animatedStyle, fadeHeight }: HeaderSurfaceProps): import("react").JSX.Element;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=HeaderSurface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeaderSurface.d.ts","sourceRoot":"","sources":["../../../../../../src/components/header/parts/HeaderSurface.tsx"],"names":[],"mappings":"AAEA,OAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAK1E,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAAC;AAEnF,MAAM,WAAW,kBAAkB;IACjC,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,kBAAkB,+BASrF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Horizontal padding around a header accessory.
|
|
3
|
+
* - `'x'`: match the header bar's horizontal padding.
|
|
4
|
+
* - `'none'`: extend to the screen edges, for example for a scrollable tab strip.
|
|
5
|
+
*/
|
|
6
|
+
export type HeaderAccessoryPadding = "x" | "none";
|
|
7
|
+
/**
|
|
8
|
+
* Accessory placement while a large-title header scrolls.
|
|
9
|
+
* - `'pinned'`: remain directly below the compact bar.
|
|
10
|
+
* - `'sticky'`: scroll with the large title, then pin below the compact bar.
|
|
11
|
+
*
|
|
12
|
+
* Used by `Header.LargeTitle`. A hidden large title always uses pinned placement.
|
|
13
|
+
*/
|
|
14
|
+
export type HeaderAccessoryBehavior = "pinned" | "sticky";
|
|
15
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/header/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,GAAG,GAAG,MAAM,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,QAAQ,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { HeaderAccessoryBehavior } from "../../types.js";
|
|
1
2
|
import type { TitleHeaderProps } from "../TitleHeader/index.js";
|
|
2
3
|
export interface LargeTitleHeaderProps extends TitleHeaderProps {
|
|
3
4
|
/** Optional small line shown above the large title. */
|
|
@@ -6,6 +7,12 @@ export interface LargeTitleHeaderProps extends TitleHeaderProps {
|
|
|
6
7
|
subtitle?: string;
|
|
7
8
|
/** Hide the large title (keeps the compact bar). Defaults to `false`. */
|
|
8
9
|
isLargeTitleHidden?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* How `accessory` moves while scrolling. `'sticky'` starts below the large title
|
|
12
|
+
* and pins below the compact bar when scrolled up. A hidden large title always pins.
|
|
13
|
+
* @defaultValue 'pinned'
|
|
14
|
+
*/
|
|
15
|
+
accessoryBehavior?: HeaderAccessoryBehavior;
|
|
9
16
|
/**
|
|
10
17
|
* Placement of the compact bar title. The large title stack always stays
|
|
11
18
|
* left-aligned. Defaults to `'center'`.
|
|
@@ -33,5 +40,5 @@ export interface LargeTitleHeaderProps extends TitleHeaderProps {
|
|
|
33
40
|
* </Screen.Header>
|
|
34
41
|
* ```
|
|
35
42
|
*/
|
|
36
|
-
export declare function LargeTitleHeader({ title, overline, subtitle, leadingActions, trailingActions, LeftToolbar, RightToolbar, dismissAction, navigation, onDismiss, titleAlignment, isLargeTitleHidden, background, bg, }: LargeTitleHeaderProps): import("react").JSX.Element;
|
|
43
|
+
export declare function LargeTitleHeader({ title, overline, subtitle, leadingActions, trailingActions, LeftToolbar, RightToolbar, accessory, accessoryPadding, accessoryBehavior, dismissAction, navigation, onDismiss, titleAlignment, isLargeTitleHidden, background, bg, }: LargeTitleHeaderProps): import("react").JSX.Element;
|
|
37
44
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/header/variants/LargeTitleHeader/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/header/variants/LargeTitleHeader/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAa,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAgB,CAAC;AASvD,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IAC5C;;;OAGG;IACH,cAAc,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CACpC;AAmED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACZ,SAAS,EACT,gBAAsB,EACtB,iBAA4B,EAC5B,aAAsB,EACtB,UAAU,EACV,SAAS,EACT,cAAyB,EACzB,kBAA0B,EAC1B,UAAU,EACV,EAAE,GACH,EAAE,qBAAqB,+BAsKvB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
2
|
import type { ColorToken } from "../../../../theme/types";
|
|
3
3
|
import { type HeaderDismissProps } from "../../header-buttons.js";
|
|
4
|
+
import type { HeaderAccessoryPadding } from "../../types.js";
|
|
4
5
|
export interface TitleHeaderProps extends HeaderDismissProps {
|
|
5
6
|
/**
|
|
6
7
|
* A `string` (or `number`) is painted in the header's own title style. Any
|
|
@@ -22,6 +23,18 @@ export interface TitleHeaderProps extends HeaderDismissProps {
|
|
|
22
23
|
trailingActions?: ReactNode;
|
|
23
24
|
/** @deprecated Use trailingActions. */
|
|
24
25
|
RightToolbar?: ReactNode;
|
|
26
|
+
/**
|
|
27
|
+
* Content below the header, such as a search field or tab strip.
|
|
28
|
+
* `Header.Title` always pins it below the bar. `Header.LargeTitle` also supports
|
|
29
|
+
* scrolling it with the large title via `accessoryBehavior`.
|
|
30
|
+
*/
|
|
31
|
+
accessory?: ReactNode;
|
|
32
|
+
/**
|
|
33
|
+
* Horizontal padding around `accessory`. Use `'none'` for content that should
|
|
34
|
+
* run to the screen edge, such as a horizontally scrolling tab strip.
|
|
35
|
+
* Defaults to `'x'`, matching the bar.
|
|
36
|
+
*/
|
|
37
|
+
accessoryPadding?: HeaderAccessoryPadding;
|
|
25
38
|
/** Title placement within the bar. Defaults to `'center'`. */
|
|
26
39
|
titleAlignment?: "center" | "left";
|
|
27
40
|
/** Color token for the top safe area and fading bar overlay. Defaults to the Screen background. */
|
|
@@ -46,5 +59,5 @@ export interface TitleHeaderProps extends HeaderDismissProps {
|
|
|
46
59
|
* </Screen.Header>
|
|
47
60
|
* ```
|
|
48
61
|
*/
|
|
49
|
-
export declare function TitleHeader({ title, leadingActions, trailingActions, LeftToolbar, RightToolbar, dismissAction, navigation, onDismiss, titleAlignment, background, bg, }: TitleHeaderProps): import("react").JSX.Element;
|
|
62
|
+
export declare function TitleHeader({ title, leadingActions, trailingActions, LeftToolbar, RightToolbar, accessory, accessoryPadding, dismissAction, navigation, onDismiss, titleAlignment, background, bg, }: TitleHeaderProps): import("react").JSX.Element;
|
|
50
63
|
//# sourceMappingURL=index.d.ts.map
|