react-native-terra-ui 0.12.1 → 0.13.1
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 +23 -0
- package/lib/module/components/accordion/Accordion.js +14 -33
- package/lib/module/components/accordion/Accordion.js.map +1 -1
- package/lib/module/components/accordion/parts/AccordionContent.js +11 -15
- package/lib/module/components/accordion/parts/AccordionContent.js.map +1 -1
- package/lib/module/components/accordion/parts/AccordionTrigger.js +5 -5
- package/lib/module/components/accordion/parts/AccordionTrigger.js.map +1 -1
- package/lib/module/components/badge/Badge.js +30 -22
- package/lib/module/components/badge/Badge.js.map +1 -1
- package/lib/module/components/badge/utils.js +12 -3
- package/lib/module/components/badge/utils.js.map +1 -1
- package/lib/module/components/header/parts/HeaderBar.js +32 -3
- package/lib/module/components/header/parts/HeaderBar.js.map +1 -1
- package/lib/module/components/header/variants/TitleHeader/index.js +2 -0
- package/lib/module/components/header/variants/TitleHeader/index.js.map +1 -1
- package/lib/module/theme/tokens/dark.js +2 -2
- package/lib/module/theme/tokens/dark.js.map +1 -1
- package/lib/module/theme/tokens/light.js +2 -2
- package/lib/module/theme/tokens/light.js.map +1 -1
- package/lib/module/theme/tokens/primitives.js +2 -2
- package/lib/typescript/src/components/accordion/Accordion.d.ts.map +1 -1
- package/lib/typescript/src/components/accordion/index.d.ts +1 -1
- package/lib/typescript/src/components/accordion/index.d.ts.map +1 -1
- package/lib/typescript/src/components/accordion/parts/AccordionContent.d.ts.map +1 -1
- package/lib/typescript/src/components/accordion/types.d.ts +0 -7
- package/lib/typescript/src/components/accordion/types.d.ts.map +1 -1
- package/lib/typescript/src/components/badge/Badge.d.ts.map +1 -1
- package/lib/typescript/src/components/badge/utils.d.ts +6 -0
- package/lib/typescript/src/components/badge/utils.d.ts.map +1 -1
- package/lib/typescript/src/components/header/parts/HeaderBar.d.ts +2 -1
- package/lib/typescript/src/components/header/parts/HeaderBar.d.ts.map +1 -1
- package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts +3 -1
- package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/accordion/Accordion.tsx +5 -19
- package/src/components/accordion/index.ts +0 -1
- package/src/components/accordion/parts/AccordionContent.tsx +14 -12
- package/src/components/accordion/parts/AccordionTrigger.tsx +3 -3
- package/src/components/accordion/types.ts +0 -8
- package/src/components/badge/Badge.tsx +24 -15
- package/src/components/badge/utils.ts +12 -3
- package/src/components/header/parts/HeaderBar.tsx +29 -0
- package/src/components/header/variants/TitleHeader/index.tsx +4 -0
- package/src/theme/tokens/dark.ts +2 -2
- package/src/theme/tokens/light.ts +2 -2
- package/src/theme/tokens/primitives.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.13.1](https://github.com/earthlin9/react-native-terra-ui/compare/v0.13.0...v0.13.1) (2026-09-26)
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* **ui:** [header] minor UI update to header ([b8e60da](https://github.com/earthlin9/react-native-terra-ui/commit/b8e60da94ce17a5af2eb525c0bfb8f4b8f08255a))
|
|
8
|
+
|
|
9
|
+
## [0.13.0](https://github.com/earthlin9/react-native-terra-ui/compare/v0.12.1...v0.13.0) (2026-09-26)
|
|
10
|
+
|
|
11
|
+
### ⚠ BREAKING CHANGES
|
|
12
|
+
|
|
13
|
+
* **ui:** `Accordion` no longer accepts `variant`, and `AccordionVariant` is no longer exported. Replace `<Accordion variant="surface">` with `<Surface px="4" py="0"><Accordion>`.
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* **theme:** use a stronger red with white text for danger solid ([43e5123](https://github.com/earthlin9/react-native-terra-ui/commit/43e512335e16e8100b8629ac35fa65130bb8854c))
|
|
18
|
+
* **ui:** [accordion] keep content visible when an item opens ([51459bb](https://github.com/earthlin9/react-native-terra-ui/commit/51459bb9868e27eec0e07a4c482411e98cd8849a))
|
|
19
|
+
* **ui:** [accordion] tighten trigger title and padding ([f3ad2b1](https://github.com/earthlin9/react-native-terra-ui/commit/f3ad2b19caad54354a1ca18d12ae28d3e82171c2))
|
|
20
|
+
* **ui:** [badge] shrink md and lg sizes and draw single characters as circles ([2a0041b](https://github.com/earthlin9/react-native-terra-ui/commit/2a0041b219c07e6e7eb9ad4dda787dcbe9e9efa8))
|
|
21
|
+
|
|
22
|
+
### Refactoring
|
|
23
|
+
|
|
24
|
+
* **ui:** [accordion] remove surface variant ([1258aa4](https://github.com/earthlin9/react-native-terra-ui/commit/1258aa4550c1a3b8ad6d3ca2dd55c883fe7d62a8))
|
|
25
|
+
|
|
3
26
|
## [0.12.1](https://github.com/earthlin9/react-native-terra-ui/compare/v0.12.0...v0.12.1) (2026-09-24)
|
|
4
27
|
|
|
5
28
|
### Bug Fixes
|
|
@@ -48,7 +48,6 @@ const AccordionRoot = /*#__PURE__*/forwardRef(function Accordion(props, ref) {
|
|
|
48
48
|
defaultValue: _defaultValue,
|
|
49
49
|
onValueChange: _onValueChange,
|
|
50
50
|
isCollapsible: _isCollapsible,
|
|
51
|
-
variant = "plain",
|
|
52
51
|
divided = true,
|
|
53
52
|
isDisabled = false,
|
|
54
53
|
children,
|
|
@@ -64,21 +63,15 @@ const AccordionRoot = /*#__PURE__*/forwardRef(function Accordion(props, ref) {
|
|
|
64
63
|
toggle,
|
|
65
64
|
isDisabled
|
|
66
65
|
}), [expanded, toggle, isDisabled]);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
style: [styles.root, style],
|
|
77
|
-
...rest,
|
|
78
|
-
children: divided ? interleaveDividers(children) : children
|
|
79
|
-
})
|
|
80
|
-
});
|
|
81
|
-
}
|
|
66
|
+
return /*#__PURE__*/_jsx(AccordionContext.Provider, {
|
|
67
|
+
value: context,
|
|
68
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
69
|
+
ref: ref,
|
|
70
|
+
style: [styles.root, style],
|
|
71
|
+
...rest,
|
|
72
|
+
children: divided ? interleaveDividers(children) : children
|
|
73
|
+
})
|
|
74
|
+
});
|
|
82
75
|
});
|
|
83
76
|
export const Accordion = AccordionRoot;
|
|
84
77
|
Accordion.Item = AccordionItem;
|
|
@@ -88,22 +81,10 @@ Accordion.Content = AccordionContent;
|
|
|
88
81
|
|
|
89
82
|
// ─── Styles ───────────────────────────────────────────────────────────────────
|
|
90
83
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
// A fixed radius rather than the registry's `surface` default: the
|
|
97
|
-
// accordion is not a `Surface`, and a configured shadow would sit oddly
|
|
98
|
-
// under a container whose height animates.
|
|
99
|
-
surface: {
|
|
100
|
-
backgroundColor: theme.color["surface.default"],
|
|
101
|
-
borderRadius: theme.radius.xl,
|
|
102
|
-
paddingHorizontal: theme.spacing["4"]
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
},
|
|
106
|
-
uni__dependencies: [0, 4]
|
|
107
|
-
}
|
|
84
|
+
// Present so the Unistyles Babel plugin rewrites the `View` above; a themed
|
|
85
|
+
// style passed in through `style` would otherwise freeze at the theme it was
|
|
86
|
+
// created under.
|
|
87
|
+
const styles = StyleSheet.create(() => ({
|
|
88
|
+
root: {}
|
|
108
89
|
}));
|
|
109
90
|
//# sourceMappingURL=Accordion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Children","Fragment","forwardRef","isValidElement","useMemo","StyleSheet","Divider","AccordionContext","useAccordionCore","AccordionContent","AccordionIndicator","AccordionItem","AccordionTrigger","jsx","_jsx","jsxs","_jsxs","interleaveDividers","children","items","toArray","filter","map","child","index","key","AccordionRoot","Accordion","props","ref","selectionMode","_selectionMode","value","_value","defaultValue","_defaultValue","onValueChange","_onValueChange","isCollapsible","_isCollapsible","
|
|
1
|
+
{"version":3,"names":["Children","Fragment","forwardRef","isValidElement","useMemo","StyleSheet","Divider","AccordionContext","useAccordionCore","AccordionContent","AccordionIndicator","AccordionItem","AccordionTrigger","jsx","_jsx","jsxs","_jsxs","interleaveDividers","children","items","toArray","filter","map","child","index","key","AccordionRoot","Accordion","props","ref","selectionMode","_selectionMode","value","_value","defaultValue","_defaultValue","onValueChange","_onValueChange","isCollapsible","_isCollapsible","divided","isDisabled","style","rest","expanded","toggle","context","Provider","View","styles","root","Item","Trigger","Indicator","Content","create"],"sourceRoot":"../../../../src","sources":["components/accordion/Accordion.tsx"],"mappings":";;;AAAA,SACEA,QAAQ,EAERC,QAAQ,EACRC,UAAU,EACVC,cAAc,EAEdC,OAAO,QACF,OAAO;AAGd,SAASC,UAAU,QAAQ,wBAAwB;AAEnD,SAASC,OAAO;AAChB,SAASC,gBAAgB;AACzB,SAASC,gBAAgB;AACzB,SAASC,gBAAgB;AACzB,SAASC,kBAAkB;AAC3B,SAASC,aAAa;AACtB,SAASC,gBAAgB;AAAmC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG5D;AACA;AACA;AACA;AACA;AACA,SAASC,kBAAkBA,CAACC,QAAmB,EAAa;EAC1D,MAAMC,KAAK,GAAGnB,QAAQ,CAACoB,OAAO,CAACF,QAAQ,CAAC,CAACG,MAAM,CAAClB,cAAc,CAAC;EAC/D,OAAOgB,KAAK,CAACG,GAAG,CAAC,CAACC,KAAK,EAAEC,KAAK,kBAC5BR,KAAA,CAACf,QAAQ;IAAAiB,QAAA,GACNM,KAAK,GAAG,CAAC,iBAAIV,IAAA,CAACR,OAAO,IAAE,CAAC,EACxBiB,KAAK;EAAA,GAFOA,KAAK,CAACE,GAAG,IAAID,KAGlB,CACX,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,aAAa,gBAAGxB,UAAU,CAA4C,SAASyB,SAASA,CAACC,KAAK,EAAEC,GAAG,EAAE;EACzG,MAAM;IACJC,aAAa,EAAEC,cAAc;IAC7BC,KAAK,EAAEC,MAAM;IACbC,YAAY,EAAEC,aAAa;IAC3BC,aAAa,EAAEC,cAAc;IAC7BC,aAAa,EAAEC,cAAc;IAC7BC,OAAO,GAAG,IAAI;IACdC,UAAU,GAAG,KAAK;IAClBvB,QAAQ;IACRwB,KAAK;IACL,GAAGC;EACL,CAAC,GAAGf,KAAK;EAET,MAAM;IAAEgB,QAAQ;IAAEC;EAAO,CAAC,GAAGrC,gBAAgB,CAACoB,KAAK,CAAC;EACpD,MAAMkB,OAAO,GAAG1C,OAAO,CAAC,OAAO;IAAEwC,QAAQ;IAAEC,MAAM;IAAEJ;EAAW,CAAC,CAAC,EAAE,CAACG,QAAQ,EAAEC,MAAM,EAAEJ,UAAU,CAAC,CAAC;EAEjG,oBACE3B,IAAA,CAACP,gBAAgB,CAACwC,QAAQ;IAACf,KAAK,EAAEc,OAAQ;IAAA5B,QAAA,eACxCJ,IAAA,CAACkC,IAAI;MAACnB,GAAG,EAAEA,GAAI;MAACa,KAAK,EAAE,CAACO,MAAM,CAACC,IAAI,EAAER,KAAK,CAAE;MAAA,GAAKC,IAAI;MAAAzB,QAAA,EAClDsB,OAAO,GAAGvB,kBAAkB,CAACC,QAAQ,CAAC,GAAGA;IAAQ,CAC9C;EAAC,CACkB,CAAC;AAEhC,CAAC,CAAC;AASF,OAAO,MAAMS,SAAS,GAAGD,aAAmC;AAC5DC,SAAS,CAACwB,IAAI,GAAGxC,aAAa;AAC9BgB,SAAS,CAACyB,OAAO,GAAGxC,gBAAgB;AACpCe,SAAS,CAAC0B,SAAS,GAAG3C,kBAAkB;AACxCiB,SAAS,CAAC2B,OAAO,GAAG7C,gBAAgB;;AAEpC;;AAEA;AACA;AACA;AACA,MAAMwC,MAAM,GAAG5C,UAAU,CAACkD,MAAM,CAAC,OAAO;EACtCL,IAAI,EAAE,CAAC;AACT,CAAC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -55,21 +55,13 @@ export const AccordionContent = /*#__PURE__*/forwardRef(function AccordionConten
|
|
|
55
55
|
measured.value = event.nativeEvent.layout.height;
|
|
56
56
|
onLayoutProp?.(event);
|
|
57
57
|
};
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
opacity: progress.value
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
return {
|
|
69
|
-
height: measured.value * progress.value,
|
|
70
|
-
opacity: progress.value
|
|
71
|
-
};
|
|
72
|
-
});
|
|
58
|
+
|
|
59
|
+
// Height is 0 until the first measurement lands, so the body stays hidden
|
|
60
|
+
// for the one frame it takes to measure.
|
|
61
|
+
const clip = useAnimatedStyle(() => ({
|
|
62
|
+
height: measured.value * progress.value,
|
|
63
|
+
opacity: progress.value
|
|
64
|
+
}));
|
|
73
65
|
if (!isMounted) return null;
|
|
74
66
|
return /*#__PURE__*/_jsx(Animated.View, {
|
|
75
67
|
style: [styles.clip, clip],
|
|
@@ -90,6 +82,10 @@ const styles = StyleSheet.create(theme => ({
|
|
|
90
82
|
overflow: "hidden"
|
|
91
83
|
},
|
|
92
84
|
body: {
|
|
85
|
+
position: "absolute",
|
|
86
|
+
top: 0,
|
|
87
|
+
left: 0,
|
|
88
|
+
right: 0,
|
|
93
89
|
gap: theme.spacing["2"],
|
|
94
90
|
paddingBottom: theme.spacing["4"],
|
|
95
91
|
uni__dependencies: [0]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Children","forwardRef","useEffect","useState","Animated","useAnimatedStyle","useSharedValue","withTiming","StyleSheet","scheduleOnRN","Text","useAccordionItem","ACCORDION_TIMING","jsx","_jsx","renderBody","children","map","child","trim","length","variant","color","AccordionContent","style","onLayout","onLayoutProp","rest","ref","isExpanded","isMounted","setIsMounted","progress","measured","value","finished","event","nativeEvent","layout","height","clip","
|
|
1
|
+
{"version":3,"names":["Children","forwardRef","useEffect","useState","Animated","useAnimatedStyle","useSharedValue","withTiming","StyleSheet","scheduleOnRN","Text","useAccordionItem","ACCORDION_TIMING","jsx","_jsx","renderBody","children","map","child","trim","length","variant","color","AccordionContent","style","onLayout","onLayoutProp","rest","ref","isExpanded","isMounted","setIsMounted","progress","measured","value","finished","event","nativeEvent","layout","height","clip","opacity","View","styles","body","create","theme","overflow","position","top","left","right","gap","spacing","paddingBottom","uni__dependencies"],"sourceRoot":"../../../../../src","sources":["components/accordion/parts/AccordionContent.tsx"],"mappings":";;;AAAA,SAASA,QAAQ,EAAqBC,UAAU,EAAkBC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAGpG,OAAOC,QAAQ,IAAIC,gBAAgB,EAAEC,cAAc,EAAEC,UAAU,QAAQ,yBAAyB;AAChG,SAASC,UAAU,QAAQ,wBAAwB;AACnD,SAASC,YAAY,QAAQ,uBAAuB;AAEpD,SAASC,IAAI;AACb,SAASC,gBAAgB;AACzB,SAASC,gBAAgB;AAAmB,SAAAC,GAAA,IAAAC,IAAA;AAO5C,SAASC,UAAUA,CAACC,QAAmB,EAAa;EAClD,OAAOhB,QAAQ,CAACiB,GAAG,CAACD,QAAQ,EAAGE,KAAK,IAAK;IACvC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,OAAOA,KAAK,CAACC,IAAI,CAAC,CAAC,CAACC,MAAM,GAAG,CAAC,gBAC5BN,IAAA,CAACJ,IAAI;QAACW,OAAO,EAAC,SAAS;QAACC,KAAK,EAAC,gBAAgB;QAAAN,QAAA,EAC3CE;MAAK,CACF,CAAC,GACL,IAAI;IACV;IACA,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,oBACEJ,IAAA,CAACJ,IAAI;QAACW,OAAO,EAAC,SAAS;QAACC,KAAK,EAAC,gBAAgB;QAAAN,QAAA,EAC3CE;MAAK,CACF,CAAC;IAEX;IACA,OAAOA,KAAK;EACd,CAAC,CAAC;AACJ;AAEA,OAAO,MAAMK,gBAAgB,gBAAGtB,UAAU,CACxC,SAASsB,gBAAgBA,CAAC;EAAEP,QAAQ;EAAEQ,KAAK;EAAEC,QAAQ,EAAEC,YAAY;EAAE,GAAGC;AAAK,CAAC,EAAEC,GAAG,EAAE;EACnF,MAAM;IAAEC;EAAW,CAAC,GAAGlB,gBAAgB,CAAC,CAAC;;EAEzC;EACA;EACA,MAAM,CAACmB,SAAS,EAAEC,YAAY,CAAC,GAAG5B,QAAQ,CAAC0B,UAAU,CAAC;EACtD,MAAMG,QAAQ,GAAG1B,cAAc,CAACuB,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;EACnD;EACA;EACA,MAAMI,QAAQ,GAAG3B,cAAc,CAAC,CAAC,CAAC;EAElCJ,SAAS,CAAC,MAAM;IACd,IAAI2B,UAAU,EAAEE,YAAY,CAAC,IAAI,CAAC;IAClCC,QAAQ,CAACE,KAAK,GAAG3B,UAAU,CAACsB,UAAU,GAAG,CAAC,GAAG,CAAC,EAAEjB,gBAAgB,EAAGuB,QAAQ,IAAK;MAC9E,IAAIA,QAAQ,IAAI,CAACN,UAAU,EAAEpB,YAAY,CAACsB,YAAY,EAAE,KAAK,CAAC;IAChE,CAAC,CAAC;EACJ,CAAC,EAAE,CAACF,UAAU,EAAEG,QAAQ,CAAC,CAAC;EAE1B,MAAMP,QAAQ,GAAIW,KAAwB,IAAK;IAC7CH,QAAQ,CAACC,KAAK,GAAGE,KAAK,CAACC,WAAW,CAACC,MAAM,CAACC,MAAM;IAChDb,YAAY,GAAGU,KAAK,CAAC;EACvB,CAAC;;EAED;EACA;EACA,MAAMI,IAAI,GAAGnC,gBAAgB,CAAC,OAAO;IACnCkC,MAAM,EAAEN,QAAQ,CAACC,KAAK,GAAGF,QAAQ,CAACE,KAAK;IACvCO,OAAO,EAAET,QAAQ,CAACE;EACpB,CAAC,CAAC,CAAC;EAEH,IAAI,CAACJ,SAAS,EAAE,OAAO,IAAI;EAE3B,oBACEhB,IAAA,CAACV,QAAQ,CAACsC,IAAI;IAAClB,KAAK,EAAE,CAACmB,MAAM,CAACH,IAAI,EAAEA,IAAI,CAAE;IAAAxB,QAAA,eAKxCF,IAAA,CAAC4B,IAAI;MAACd,GAAG,EAAEA,GAAI;MAAA,GAAKD,IAAI;MAAEF,QAAQ,EAAEA,QAAS;MAACD,KAAK,EAAE,CAACmB,MAAM,CAACC,IAAI,EAAEpB,KAAK,CAAE;MAAAR,QAAA,EACvED,UAAU,CAACC,QAAQ;IAAC,CACjB;EAAC,CACM,CAAC;AAEpB,CACF,CAAC;;AAED;;AAEA,MAAM2B,MAAM,GAAGnC,UAAU,CAACqC,MAAM,CAAEC,KAAK,KAAM;EAC3CN,IAAI,EAAE;IACJO,QAAQ,EAAE;EACZ,CAAC;EACDH,IAAI,EAAE;IACJI,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,GAAG,EAAEN,KAAK,CAACO,OAAO,CAAC,GAAG,CAAC;IACvBC,aAAa,EAAER,KAAK,CAACO,OAAO,CAAC,GAAG,CAAC;IAAAE,iBAAA;EACnC;AACF,CAAC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -10,16 +10,16 @@ function renderTitle(children) {
|
|
|
10
10
|
return Children.map(children, child => {
|
|
11
11
|
if (typeof child === "string") {
|
|
12
12
|
return child.trim().length > 0 ? /*#__PURE__*/_jsx(Text, {
|
|
13
|
-
variant: "body-
|
|
14
|
-
weight: "
|
|
13
|
+
variant: "body-md",
|
|
14
|
+
weight: "semibold",
|
|
15
15
|
style: styles.title,
|
|
16
16
|
children: child
|
|
17
17
|
}) : null;
|
|
18
18
|
}
|
|
19
19
|
if (typeof child === "number") {
|
|
20
20
|
return /*#__PURE__*/_jsx(Text, {
|
|
21
|
-
variant: "body-
|
|
22
|
-
weight: "
|
|
21
|
+
variant: "body-md",
|
|
22
|
+
weight: "semibold",
|
|
23
23
|
style: styles.title,
|
|
24
24
|
children: child
|
|
25
25
|
});
|
|
@@ -65,7 +65,7 @@ const styles = StyleSheet.create(theme => ({
|
|
|
65
65
|
alignItems: "center",
|
|
66
66
|
gap: theme.spacing["3"],
|
|
67
67
|
minHeight: 48,
|
|
68
|
-
paddingVertical: theme.spacing["
|
|
68
|
+
paddingVertical: theme.spacing["2"],
|
|
69
69
|
uni__dependencies: [0]
|
|
70
70
|
},
|
|
71
71
|
pressed: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Children","forwardRef","StyleSheet","Text","useAccordionItem","jsx","_jsx","renderTitle","children","map","child","trim","length","variant","weight","style","styles","title","AccordionTrigger","onPress","rest","ref","isExpanded","isDisabled","toggle","handlePress","event","Pressable","accessibilityRole","accessibilityState","expanded","disabled","state","trigger","pressed","create","theme","flexDirection","alignItems","gap","spacing","minHeight","paddingVertical","uni__dependencies","opacity","flex"],"sourceRoot":"../../../../../src","sources":["components/accordion/parts/AccordionTrigger.tsx"],"mappings":";;;AAAA,SAASA,QAAQ,EAAqBC,UAAU,QAAwB,OAAO;AAG/E,SAASC,UAAU,QAAQ,wBAAwB;AAEnD,SAASC,IAAI;AACb,SAASC,gBAAgB;AAAqB,SAAAC,GAAA,IAAAC,IAAA;AAU9C,SAASC,WAAWA,CAACC,QAAmB,EAAa;EACnD,OAAOR,QAAQ,CAACS,GAAG,CAACD,QAAQ,EAAGE,KAAK,IAAK;IACvC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,OAAOA,KAAK,CAACC,IAAI,CAAC,CAAC,CAACC,MAAM,GAAG,CAAC,gBAC5BN,IAAA,CAACH,IAAI;QAACU,OAAO,EAAC,SAAS;QAACC,MAAM,EAAC,
|
|
1
|
+
{"version":3,"names":["Children","forwardRef","StyleSheet","Text","useAccordionItem","jsx","_jsx","renderTitle","children","map","child","trim","length","variant","weight","style","styles","title","AccordionTrigger","onPress","rest","ref","isExpanded","isDisabled","toggle","handlePress","event","Pressable","accessibilityRole","accessibilityState","expanded","disabled","state","trigger","pressed","create","theme","flexDirection","alignItems","gap","spacing","minHeight","paddingVertical","uni__dependencies","opacity","flex"],"sourceRoot":"../../../../../src","sources":["components/accordion/parts/AccordionTrigger.tsx"],"mappings":";;;AAAA,SAASA,QAAQ,EAAqBC,UAAU,QAAwB,OAAO;AAG/E,SAASC,UAAU,QAAQ,wBAAwB;AAEnD,SAASC,IAAI;AACb,SAASC,gBAAgB;AAAqB,SAAAC,GAAA,IAAAC,IAAA;AAU9C,SAASC,WAAWA,CAACC,QAAmB,EAAa;EACnD,OAAOR,QAAQ,CAACS,GAAG,CAACD,QAAQ,EAAGE,KAAK,IAAK;IACvC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,OAAOA,KAAK,CAACC,IAAI,CAAC,CAAC,CAACC,MAAM,GAAG,CAAC,gBAC5BN,IAAA,CAACH,IAAI;QAACU,OAAO,EAAC,SAAS;QAACC,MAAM,EAAC,UAAU;QAACC,KAAK,EAAEC,MAAM,CAACC,KAAM;QAAAT,QAAA,EAC3DE;MAAK,CACF,CAAC,GACL,IAAI;IACV;IACA,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,oBACEJ,IAAA,CAACH,IAAI;QAACU,OAAO,EAAC,SAAS;QAACC,MAAM,EAAC,UAAU;QAACC,KAAK,EAAEC,MAAM,CAACC,KAAM;QAAAT,QAAA,EAC3DE;MAAK,CACF,CAAC;IAEX;IACA,OAAOA,KAAK;EACd,CAAC,CAAC;AACJ;AAEA,OAAO,MAAMQ,gBAAgB,gBAAGjB,UAAU,CACxC,SAASiB,gBAAgBA,CAAC;EAAEV,QAAQ;EAAEW,OAAO;EAAEJ,KAAK;EAAE,GAAGK;AAAK,CAAC,EAAEC,GAAG,EAAE;EACpE,MAAM;IAAEC,UAAU;IAAEC,UAAU;IAAEC;EAAO,CAAC,GAAGpB,gBAAgB,CAAC,CAAC;EAE7D,MAAMqB,WAAW,GAAIC,KAA4B,IAAK;IACpDP,OAAO,GAAGO,KAAK,CAAC;IAChBF,MAAM,CAAC,CAAC;EACV,CAAC;EAED,oBACElB,IAAA,CAACqB,SAAS;IACRN,GAAG,EAAEA,GAAI;IACTO,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAE;MAAEC,QAAQ,EAAER,UAAU;MAAES,QAAQ,EAAER;IAAW,CAAE;IACnEQ,QAAQ,EAAER,UAAW;IACrBJ,OAAO,EAAEM,WAAY;IACrBV,KAAK,EAAGiB,KAAK,IAAK,CAChBhB,MAAM,CAACiB,OAAO,EACdD,KAAK,CAACE,OAAO,IAAIlB,MAAM,CAACkB,OAAO,EAC/BX,UAAU,IAAIP,MAAM,CAACe,QAAQ,EAC7B,OAAOhB,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACiB,KAAK,CAAC,GAAGjB,KAAK,CAClD;IAAA,GACEK,IAAI;IAAAZ,QAAA,EAEPD,WAAW,CAACC,QAAQ;EAAC,CACb,CAAC;AAEhB,CACF,CAAC;;AAED;;AAEA,MAAMQ,MAAM,GAAGd,UAAU,CAACiC,MAAM,CAAEC,KAAK,KAAM;EAC3CH,OAAO,EAAE;IACPI,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAEH,KAAK,CAACI,OAAO,CAAC,GAAG,CAAC;IACvBC,SAAS,EAAE,EAAE;IACbC,eAAe,EAAEN,KAAK,CAACI,OAAO,CAAC,GAAG,CAAC;IAAAG,iBAAA;EACrC,CAAC;EACDT,OAAO,EAAE;IACPU,OAAO,EAAER,KAAK,CAACQ,OAAO,CAACV,OAAO;IAAAS,iBAAA;EAChC,CAAC;EACDZ,QAAQ,EAAE;IACRa,OAAO,EAAER,KAAK,CAACQ,OAAO,CAACb,QAAQ;IAAAY,iBAAA;EACjC,CAAC;EACD;EACA;EACA1B,KAAK,EAAE;IACL4B,IAAI,EAAE;EACR;AACF,CAAC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ import { Text as RNText } from "react-native-unistyles/components/native/Text";
|
|
|
5
5
|
import { StyleSheet, useUnistyles } from "react-native-unistyles";
|
|
6
6
|
import { resolveThemeColor } from "../../utils/resolve-theme-color.js";
|
|
7
7
|
import { FONT_WEIGHT_VALUE, SYSTEM_FONT } from "../../utils/typography.js";
|
|
8
|
-
import { getCustomBadgeColors, hasLabel } from "./utils.js";
|
|
8
|
+
import { getCustomBadgeColors, hasLabel, isSingleCharacter } from "./utils.js";
|
|
9
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
10
|
const SCHEME_NAMES = new Set(["primary", "secondary", "success", "warning", "danger"]);
|
|
11
11
|
/** Label foreground per scheme — mirrors the spec's token table. */
|
|
@@ -18,8 +18,8 @@ const FG_TOKEN = {
|
|
|
18
18
|
};
|
|
19
19
|
const LABEL_VARIANT = {
|
|
20
20
|
sm: "label-sm",
|
|
21
|
-
md: "label-
|
|
22
|
-
lg: "label-
|
|
21
|
+
md: "label-sm",
|
|
22
|
+
lg: "label-md"
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
/**
|
|
@@ -78,7 +78,7 @@ export const Badge = ({
|
|
|
78
78
|
"aria-hidden": true
|
|
79
79
|
};
|
|
80
80
|
return /*#__PURE__*/_jsx(View, {
|
|
81
|
-
style: [styles.indicator, labelled ? styles.pill : styles.dot, custom ? {
|
|
81
|
+
style: [styles.indicator, labelled ? styles.pill : styles.dot, labelled && isSingleCharacter(label) ? styles.circle : null, custom ? {
|
|
82
82
|
backgroundColor: custom.bg
|
|
83
83
|
} : null, style],
|
|
84
84
|
...rest,
|
|
@@ -177,16 +177,16 @@ const styles = StyleSheet.create(theme => {
|
|
|
177
177
|
variants: {
|
|
178
178
|
size: {
|
|
179
179
|
sm: {
|
|
180
|
-
width:
|
|
181
|
-
height:
|
|
180
|
+
width: 10,
|
|
181
|
+
height: 10
|
|
182
182
|
},
|
|
183
183
|
md: {
|
|
184
|
-
width:
|
|
185
|
-
height:
|
|
184
|
+
width: 12,
|
|
185
|
+
height: 12
|
|
186
186
|
},
|
|
187
187
|
lg: {
|
|
188
|
-
width:
|
|
189
|
-
height:
|
|
188
|
+
width: 14,
|
|
189
|
+
height: 14
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
},
|
|
@@ -201,19 +201,27 @@ const styles = StyleSheet.create(theme => {
|
|
|
201
201
|
paddingHorizontal: 5
|
|
202
202
|
},
|
|
203
203
|
md: {
|
|
204
|
-
height:
|
|
205
|
-
minWidth:
|
|
204
|
+
height: 20,
|
|
205
|
+
minWidth: 20,
|
|
206
206
|
paddingHorizontal: 6
|
|
207
207
|
},
|
|
208
208
|
lg: {
|
|
209
|
-
height:
|
|
210
|
-
minWidth:
|
|
211
|
-
paddingHorizontal:
|
|
209
|
+
height: 24,
|
|
210
|
+
minWidth: 24,
|
|
211
|
+
paddingHorizontal: 7
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
214
|
},
|
|
215
215
|
uni__dependencies: [4]
|
|
216
216
|
},
|
|
217
|
+
// One character: as wide as the pill is tall, whatever the glyph's width
|
|
218
|
+
// or the text scale, so a count like "3" or "W" is always round.
|
|
219
|
+
circle: {
|
|
220
|
+
aspectRatio: 1,
|
|
221
|
+
paddingHorizontal: 0
|
|
222
|
+
},
|
|
223
|
+
// One point under the label role's size: a badge is a glyph or two in a
|
|
224
|
+
// small pill, and the role sizes read heavy there.
|
|
217
225
|
// Spelled out rather than derived from `LABEL_VARIANT`: the unistyles Babel
|
|
218
226
|
// plugin reads this object statically, so computed variant keys are not
|
|
219
227
|
// safe here even though they would resolve correctly under test.
|
|
@@ -225,19 +233,19 @@ const styles = StyleSheet.create(theme => {
|
|
|
225
233
|
variants: {
|
|
226
234
|
size: {
|
|
227
235
|
sm: {
|
|
228
|
-
fontSize: theme.typography.variants["label-sm"].fontSize,
|
|
236
|
+
fontSize: theme.typography.variants["label-sm"].fontSize - 1,
|
|
229
237
|
lineHeight: theme.typography.variants["label-sm"].lineHeight,
|
|
230
238
|
letterSpacing: theme.typography.variants["label-sm"].letterSpacing
|
|
231
239
|
},
|
|
232
240
|
md: {
|
|
233
|
-
fontSize: theme.typography.variants["label-
|
|
234
|
-
lineHeight: theme.typography.variants["label-
|
|
235
|
-
letterSpacing: theme.typography.variants["label-
|
|
241
|
+
fontSize: theme.typography.variants["label-sm"].fontSize - 1,
|
|
242
|
+
lineHeight: theme.typography.variants["label-sm"].lineHeight,
|
|
243
|
+
letterSpacing: theme.typography.variants["label-sm"].letterSpacing
|
|
236
244
|
},
|
|
237
245
|
lg: {
|
|
238
|
-
fontSize: theme.typography.variants["label-
|
|
239
|
-
lineHeight: theme.typography.variants["label-
|
|
240
|
-
letterSpacing: theme.typography.variants["label-
|
|
246
|
+
fontSize: theme.typography.variants["label-md"].fontSize - 1,
|
|
247
|
+
lineHeight: theme.typography.variants["label-md"].lineHeight,
|
|
248
|
+
letterSpacing: theme.typography.variants["label-md"].letterSpacing
|
|
241
249
|
}
|
|
242
250
|
}
|
|
243
251
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","useUnistyles","resolveThemeColor","FONT_WEIGHT_VALUE","SYSTEM_FONT","getCustomBadgeColors","hasLabel","jsx","_jsx","SCHEME_NAMES","Set","FG_TOKEN","primary","secondary","success","warning","danger","LABEL_VARIANT","sm","md","lg","Badge","label","color","size","ring","accessibilityLabel","style","rest","theme","_styles","styles","useVariants","custom","has","labelled","foreground","fg","announced","String","undefined","accessibility","accessible","accessibilityElementsHidden","importantForAccessibility","View","indicator","pill","dot","backgroundColor","bg","children","RNText","maxFontSizeMultiplier","typography","variants","numberOfLines","create","c","labelFont","fonts","semibold","isSystemLabelFont","alignItems","justifyContent","borderRadius","radius","full","borderColor","true","false","borderWidth","compoundVariants","uni__dependencies","width","height","minWidth","paddingHorizontal","textAlign","includeFontPadding","fontFamily","fontWeight","fontSize","lineHeight","letterSpacing"],"sourceRoot":"../../../../src","sources":["components/badge/Badge.tsx"],"mappings":";;;;AAEA,SAASA,UAAU,EAAEC,YAAY,QAAQ,wBAAwB;AAGjE,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB,EAAEC,WAAW;AAEvC,SAASC,oBAAoB,EAAEC,QAAQ;AAAkB,SAAAC,GAAA,IAAAC,IAAA;
|
|
1
|
+
{"version":3,"names":["StyleSheet","useUnistyles","resolveThemeColor","FONT_WEIGHT_VALUE","SYSTEM_FONT","getCustomBadgeColors","hasLabel","isSingleCharacter","jsx","_jsx","SCHEME_NAMES","Set","FG_TOKEN","primary","secondary","success","warning","danger","LABEL_VARIANT","sm","md","lg","Badge","label","color","size","ring","accessibilityLabel","style","rest","theme","_styles","styles","useVariants","custom","has","labelled","foreground","fg","announced","String","undefined","accessibility","accessible","accessibilityElementsHidden","importantForAccessibility","View","indicator","pill","dot","circle","backgroundColor","bg","children","RNText","maxFontSizeMultiplier","typography","variants","numberOfLines","create","c","labelFont","fonts","semibold","isSystemLabelFont","alignItems","justifyContent","borderRadius","radius","full","borderColor","true","false","borderWidth","compoundVariants","uni__dependencies","width","height","minWidth","paddingHorizontal","aspectRatio","textAlign","includeFontPadding","fontFamily","fontWeight","fontSize","lineHeight","letterSpacing"],"sourceRoot":"../../../../src","sources":["components/badge/Badge.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,6 +23,15 @@ export function hasLabel(label) {
|
|
|
23
23
|
return label !== undefined && label !== "";
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
/**
|
|
27
|
+
* `true` when the label is one character, which the badge draws as a circle
|
|
28
|
+
* instead of a pill. Counts code points so a single emoji or astral character
|
|
29
|
+
* still counts as one.
|
|
30
|
+
*/
|
|
31
|
+
export function isSingleCharacter(label) {
|
|
32
|
+
return Array.from(String(label)).length === 1;
|
|
33
|
+
}
|
|
34
|
+
|
|
26
35
|
/**
|
|
27
36
|
* Outer diameter of the dot per size. The badge's own stylesheet repeats
|
|
28
37
|
* these as literals — the unistyles Babel plugin reads that object statically,
|
|
@@ -30,9 +39,9 @@ export function hasLabel(label) {
|
|
|
30
39
|
* test suite is what keeps the two in step.
|
|
31
40
|
*/
|
|
32
41
|
export const DOT_SIZE = {
|
|
33
|
-
sm:
|
|
34
|
-
md:
|
|
35
|
-
lg:
|
|
42
|
+
sm: 10,
|
|
43
|
+
md: 12,
|
|
44
|
+
lg: 14
|
|
36
45
|
};
|
|
37
46
|
/**
|
|
38
47
|
* Absolute insets for a `WithBadge`'s badge, in pure arithmetic rather than one
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["readableOn","getCustomBadgeColors","literal","bg","fg","hasLabel","label","undefined","DOT_SIZE","sm","md","lg","getAnchorPosition","placement","size","offset","base","x","y","insetX","insetY","top","left","bottom","right"],"sourceRoot":"../../../../src","sources":["components/badge/utils.ts"],"mappings":";;AAAA,SAASA,UAAU;;AAGnB;AACA;AACA;;AAOA;AACA,OAAO,SAASC,oBAAoBA,CAACC,OAAe,EAAqB;EACvE,OAAO;IAAEC,EAAE,EAAED,OAAO;IAAEE,EAAE,EAAEJ,UAAU,CAACE,OAAO;EAAE,CAAC;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,QAAQA,CAACC,KAAkC,EAA4B;EACrF,OAAOA,KAAK,KAAKC,SAAS,IAAID,KAAK,KAAK,EAAE;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,
|
|
1
|
+
{"version":3,"names":["readableOn","getCustomBadgeColors","literal","bg","fg","hasLabel","label","undefined","isSingleCharacter","Array","from","String","length","DOT_SIZE","sm","md","lg","getAnchorPosition","placement","size","offset","base","x","y","insetX","insetY","top","left","bottom","right"],"sourceRoot":"../../../../src","sources":["components/badge/utils.ts"],"mappings":";;AAAA,SAASA,UAAU;;AAGnB;AACA;AACA;;AAOA;AACA,OAAO,SAASC,oBAAoBA,CAACC,OAAe,EAAqB;EACvE,OAAO;IAAEC,EAAE,EAAED,OAAO;IAAEE,EAAE,EAAEJ,UAAU,CAACE,OAAO;EAAE,CAAC;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,QAAQA,CAACC,KAAkC,EAA4B;EACrF,OAAOA,KAAK,KAAKC,SAAS,IAAID,KAAK,KAAK,EAAE;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,iBAAiBA,CAACF,KAAsB,EAAW;EACjE,OAAOG,KAAK,CAACC,IAAI,CAACC,MAAM,CAACL,KAAK,CAAC,CAAC,CAACM,MAAM,KAAK,CAAC;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,QAAmC,GAAG;EACjDC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE;AACN,CAAC;AASD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAC/BC,SAAyB,EACzBC,IAAe,EACfC,MAA2C,GAAG,CAAC,EAC/B;EAChB,MAAMC,IAAI,GAAGR,QAAQ,CAACM,IAAI,CAAC,GAAG,CAAC;EAC/B,MAAM;IAAEG,CAAC;IAAEC;EAAE,CAAC,GACZ,OAAOH,MAAM,KAAK,QAAQ,GAAG;IAAEE,CAAC,EAAEF,MAAM;IAAEG,CAAC,EAAEH;EAAO,CAAC,GAAG;IAAEE,CAAC,EAAEF,MAAM,CAACE,CAAC,IAAI,CAAC;IAAEC,CAAC,EAAEH,MAAM,CAACG,CAAC,IAAI;EAAE,CAAC;EAEhG,MAAMC,MAAM,GAAG,EAAEH,IAAI,GAAGC,CAAC,CAAC;EAC1B,MAAMG,MAAM,GAAG,EAAEJ,IAAI,GAAGE,CAAC,CAAC;EAE1B,QAAQL,SAAS;IACf,KAAK,UAAU;MACb,OAAO;QAAEQ,GAAG,EAAED,MAAM;QAAEE,IAAI,EAAEH;MAAO,CAAC;IACtC,KAAK,cAAc;MACjB,OAAO;QAAEI,MAAM,EAAEH,MAAM;QAAEI,KAAK,EAAEL;MAAO,CAAC;IAC1C,KAAK,aAAa;MAChB,OAAO;QAAEI,MAAM,EAAEH,MAAM;QAAEE,IAAI,EAAEH;MAAO,CAAC;IACzC;MACE,OAAO;QAAEE,GAAG,EAAED,MAAM;QAAEI,KAAK,EAAEL;MAAO,CAAC;EACzC;AACF","ignoreList":[]}
|
|
@@ -17,6 +17,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
17
17
|
/** Shared compact bar. Only the title and background animate; actions stay interactive. */
|
|
18
18
|
export function HeaderBar({
|
|
19
19
|
title,
|
|
20
|
+
subtitle,
|
|
20
21
|
leading,
|
|
21
22
|
trailing,
|
|
22
23
|
titleAlignment,
|
|
@@ -77,15 +78,20 @@ export function HeaderBar({
|
|
|
77
78
|
}), hasLeading && /*#__PURE__*/_jsxs(Toolbar, {
|
|
78
79
|
onLayout: onLeadingLayout,
|
|
79
80
|
children: [dismissAction === "back" && dismiss, leading]
|
|
80
|
-
}), /*#__PURE__*/
|
|
81
|
+
}), /*#__PURE__*/_jsxs(Animated.View, {
|
|
81
82
|
style: [styles.titleContainer, styles.titleInsets(windowInsets.left, windowInsets.right, hasLeading ? leadingWidth : 0, hasTrailing ? trailingWidth : 0, titleAlignment), titleStyle],
|
|
82
83
|
pointerEvents: isCustomTitle(title) ? "box-none" : "none",
|
|
83
|
-
children: isTextTitle(title) ? String(title).trim().length > 0 && /*#__PURE__*/_jsx(Text, {
|
|
84
|
+
children: [isTextTitle(title) ? String(title).trim().length > 0 && /*#__PURE__*/_jsx(Text, {
|
|
84
85
|
style: styles.title,
|
|
85
86
|
numberOfLines: 1,
|
|
86
87
|
maxFontSizeMultiplier: theme.typography.variants["title-md"].maxFontSizeMultiplier,
|
|
87
88
|
children: title
|
|
88
|
-
}) : title
|
|
89
|
+
}) : title, !!subtitle && /*#__PURE__*/_jsx(Text, {
|
|
90
|
+
style: styles.subtitle,
|
|
91
|
+
numberOfLines: 1,
|
|
92
|
+
maxFontSizeMultiplier: theme.typography.variants["label-sm"].maxFontSizeMultiplier,
|
|
93
|
+
children: subtitle
|
|
94
|
+
})]
|
|
89
95
|
}), hasTrailing && /*#__PURE__*/_jsxs(Toolbar, {
|
|
90
96
|
style: styles.trailing,
|
|
91
97
|
onLayout: onTrailingLayout,
|
|
@@ -102,6 +108,9 @@ const styles = StyleSheet.create((theme, runtime) => {
|
|
|
102
108
|
const titleWeight = theme.typography.variants["title-md"].fontWeight;
|
|
103
109
|
const titleFont = theme.typography.fonts[titleWeight];
|
|
104
110
|
const isSystemTitleFont = titleFont === SYSTEM_FONT;
|
|
111
|
+
const subtitleWeight = theme.typography.variants["label-sm"].fontWeight;
|
|
112
|
+
const subtitleFont = theme.typography.fonts[subtitleWeight];
|
|
113
|
+
const isSystemSubtitleFont = subtitleFont === SYSTEM_FONT;
|
|
105
114
|
return {
|
|
106
115
|
windowInsets: (left, right) => ({
|
|
107
116
|
paddingLeft: Math.max(resolveScreenPadding(theme, runtime.breakpoint).x, left),
|
|
@@ -189,6 +198,26 @@ const styles = StyleSheet.create((theme, runtime) => {
|
|
|
189
198
|
}
|
|
190
199
|
},
|
|
191
200
|
uni__dependencies: [0, 4]
|
|
201
|
+
},
|
|
202
|
+
subtitle: {
|
|
203
|
+
fontSize: theme.typography.variants["label-sm"].fontSize,
|
|
204
|
+
lineHeight: theme.typography.variants["label-sm"].lineHeight,
|
|
205
|
+
letterSpacing: theme.typography.variants["label-sm"].letterSpacing,
|
|
206
|
+
fontFamily: isSystemSubtitleFont ? undefined : subtitleFont,
|
|
207
|
+
fontWeight: isSystemSubtitleFont ? FONT_WEIGHT_VALUE[subtitleWeight] : undefined,
|
|
208
|
+
includeFontPadding: false,
|
|
209
|
+
color: theme.color["text.tertiary"] ?? "",
|
|
210
|
+
variants: {
|
|
211
|
+
titleAlignment: {
|
|
212
|
+
center: {
|
|
213
|
+
textAlign: "center"
|
|
214
|
+
},
|
|
215
|
+
left: {
|
|
216
|
+
textAlign: "left"
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
uni__dependencies: [0, 4]
|
|
192
221
|
}
|
|
193
222
|
};
|
|
194
223
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","Animated","ScrollToTopGuard","StyleSheet","useUnistyles","FONT_WEIGHT_VALUE","SYSTEM_FONT","resolveScreenPadding","Toolbar","HeaderDismissButton","isCustomTitle","isTextTitle","HeaderSurface","HeaderWindowInsets","jsx","_jsx","jsxs","_jsxs","HeaderBar","title","leading","trailing","titleAlignment","color","surfaceStyle","titleStyle","dismissAction","navigation","onDismiss","theme","windowInsets","setWindowInsets","left","right","leadingWidth","setLeadingWidth","trailingWidth","setTrailingWidth","onLeadingLayout","event","nativeEvent","layout","width","onTrailingLayout","hasLeading","hasTrailing","_styles","styles","useVariants","dismiss","children","View","style","bar","animatedStyle","onInsetsChange","onLayout","titleContainer","titleInsets","pointerEvents","String","trim","length","Text","numberOfLines","maxFontSizeMultiplier","typography","variants","create","runtime","titleWeight","fontWeight","titleFont","fonts","isSystemTitleFont","paddingLeft","Math","max","breakpoint","x","paddingRight","uni__dependencies","alignment","padding","gap","spacing","reachLeft","reachRight","inset","height","header","flexDirection","alignItems","paddingHorizontal","screen","justifyContent","center","marginLeft","position","flex","fontSize","lineHeight","letterSpacing","fontFamily","undefined","includeFontPadding","textAlign"],"sourceRoot":"../../../../../src","sources":["components/header/parts/HeaderBar.tsx"],"mappings":";;;;AAAA,SAA8CA,QAAQ,QAAQ,OAAO;AAGrE,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,SAASC,UAAU,EAAEC,YAAY,QAAQ,wBAAwB;AAEjE,SAASC,iBAAiB,EAAEC,WAAW;AACvC,SAASC,oBAAoB;AAC7B,SAASC,OAAO;AAChB,SAASC,mBAAmB;AAC5B,SAASC,aAAa,EAAEC,WAAW;AACnC,SAASC,aAAa;AACtB,SAASC,kBAAkB;AAA+B,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;
|
|
1
|
+
{"version":3,"names":["useState","Animated","ScrollToTopGuard","StyleSheet","useUnistyles","FONT_WEIGHT_VALUE","SYSTEM_FONT","resolveScreenPadding","Toolbar","HeaderDismissButton","isCustomTitle","isTextTitle","HeaderSurface","HeaderWindowInsets","jsx","_jsx","jsxs","_jsxs","HeaderBar","title","subtitle","leading","trailing","titleAlignment","color","surfaceStyle","titleStyle","dismissAction","navigation","onDismiss","theme","windowInsets","setWindowInsets","left","right","leadingWidth","setLeadingWidth","trailingWidth","setTrailingWidth","onLeadingLayout","event","nativeEvent","layout","width","onTrailingLayout","hasLeading","hasTrailing","_styles","styles","useVariants","dismiss","children","View","style","bar","animatedStyle","onInsetsChange","onLayout","titleContainer","titleInsets","pointerEvents","String","trim","length","Text","numberOfLines","maxFontSizeMultiplier","typography","variants","create","runtime","titleWeight","fontWeight","titleFont","fonts","isSystemTitleFont","subtitleWeight","subtitleFont","isSystemSubtitleFont","paddingLeft","Math","max","breakpoint","x","paddingRight","uni__dependencies","alignment","padding","gap","spacing","reachLeft","reachRight","inset","height","header","flexDirection","alignItems","paddingHorizontal","screen","justifyContent","center","marginLeft","position","flex","fontSize","lineHeight","letterSpacing","fontFamily","undefined","includeFontPadding","textAlign"],"sourceRoot":"../../../../../src","sources":["components/header/parts/HeaderBar.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,6 +12,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
12
12
|
/** Compact header. Screen owns the safe area when present; standalone headers reserve it here. */
|
|
13
13
|
export function TitleHeader({
|
|
14
14
|
title,
|
|
15
|
+
subtitle,
|
|
15
16
|
leadingActions,
|
|
16
17
|
trailingActions,
|
|
17
18
|
LeftToolbar,
|
|
@@ -33,6 +34,7 @@ export function TitleHeader({
|
|
|
33
34
|
}), /*#__PURE__*/_jsx(HeaderBar, {
|
|
34
35
|
...dismissProps,
|
|
35
36
|
title: title,
|
|
37
|
+
subtitle: subtitle,
|
|
36
38
|
titleAlignment: titleAlignment,
|
|
37
39
|
color: color,
|
|
38
40
|
leading: leadingActions !== undefined ? leadingActions : LeftToolbar,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useContext","StyleSheet","useHeaderBackground","ScreenContext","useHeaderColor","HeaderAccessory","HeaderBar","jsx","_jsx","jsxs","_jsxs","TitleHeader","title","leadingActions","trailingActions","LeftToolbar","RightToolbar","accessory","accessoryPadding","titleAlignment","background","bg","dismissProps","screen","color","View","style","styles","container","children","safeArea","leading","undefined","trailing","padding","onHeightChange","setHeaderAccessoryHeight","create","_","runtime","position","top","left","right","zIndex","withinScreen","height","insets","backgroundColor","uni__dependencies"],"sourceRoot":"../../../../../../src","sources":["components/header/variants/TitleHeader/index.tsx"],"mappings":";;;AAAA,SAAyBA,UAAU,QAAQ,OAAO;AAGlD,SAASC,UAAU,QAAQ,wBAAwB;AAGnD,SAASC,mBAAmB;AAC5B,SAASC,aAAa;AAEtB,SAASC,cAAc;AACvB,SAASC,eAAe;AACxB,SAASC,SAAS;AAAgC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;
|
|
1
|
+
{"version":3,"names":["useContext","StyleSheet","useHeaderBackground","ScreenContext","useHeaderColor","HeaderAccessory","HeaderBar","jsx","_jsx","jsxs","_jsxs","TitleHeader","title","subtitle","leadingActions","trailingActions","LeftToolbar","RightToolbar","accessory","accessoryPadding","titleAlignment","background","bg","dismissProps","screen","color","View","style","styles","container","children","safeArea","leading","undefined","trailing","padding","onHeightChange","setHeaderAccessoryHeight","create","_","runtime","position","top","left","right","zIndex","withinScreen","height","insets","backgroundColor","uni__dependencies"],"sourceRoot":"../../../../../../src","sources":["components/header/variants/TitleHeader/index.tsx"],"mappings":";;;AAAA,SAAyBA,UAAU,QAAQ,OAAO;AAGlD,SAASC,UAAU,QAAQ,wBAAwB;AAGnD,SAASC,mBAAmB;AAC5B,SAASC,aAAa;AAEtB,SAASC,cAAc;AACvB,SAASC,eAAe;AACxB,SAASC,SAAS;AAAgC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AA8ClD;AACA,OAAO,SAASC,WAAWA,CAAC;EAC1BC,KAAK;EACLC,QAAQ;EACRC,cAAc;EACdC,eAAe;EACfC,WAAW;EACXC,YAAY;EACZC,SAAS;EACTC,gBAAgB,GAAG,GAAG;EACtBC,cAAc,GAAG,QAAQ;EACzBC,UAAU;EACVC,EAAE;EACF,GAAGC;AACa,CAAC,EAAE;EACnB,MAAMC,MAAM,GAAGxB,UAAU,CAACG,aAAa,CAAC;EACxC,MAAMsB,KAAK,GAAGrB,cAAc,CAACiB,UAAU,IAAIC,EAAE,CAAC;EAC9CpB,mBAAmB,CAACuB,KAAK,CAAC;EAC1B,oBACEf,KAAA,CAACgB,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBAC5BtB,IAAA,CAACkB,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACG,QAAQ,CAACN,KAAK,EAAED,MAAM,KAAK,IAAI;IAAE,CAAE,CAAC,eACxDhB,IAAA,CAACF,SAAS;MAAA,GACJiB,YAAY;MAChBX,KAAK,EAAEA,KAAM;MACbC,QAAQ,EAAEA,QAAS;MACnBO,cAAc,EAAEA,cAAe;MAC/BK,KAAK,EAAEA,KAAM;MACbO,OAAO,EAAElB,cAAc,KAAKmB,SAAS,GAAGnB,cAAc,GAAGE,WAAY;MACrEkB,QAAQ,EAAEnB,eAAe,KAAKkB,SAAS,GAAGlB,eAAe,GAAGE;IAAa,CAC1E,CAAC,EACDC,SAAS,IAAI,IAAI,iBAChBV,IAAA,CAACH,eAAe;MACd8B,OAAO,EAAEhB,gBAAiB;MAC1BM,KAAK,EAAEA,KAAM;MACbW,cAAc,EAAEZ,MAAM,EAAEa,wBAAyB;MAAAP,QAAA,EAEhDZ;IAAS,CACK,CAClB;EAAA,CACG,CAAC;AAEX;AAEA,MAAMU,MAAM,GAAG3B,UAAU,CAACqC,MAAM,CAAC,CAACC,CAAC,EAAEC,OAAO,MAAM;EAChDX,SAAS,EAAE;IAAEY,QAAQ,EAAE,UAAU;IAAEC,GAAG,EAAE,CAAC;IAAEC,IAAI,EAAE,CAAC;IAAEC,KAAK,EAAE,CAAC;IAAEC,MAAM,EAAE;EAAK,CAAC;EAC5Ed,QAAQ,EAAEA,CAACN,KAAa,EAAEqB,YAAqB,MAAM;IACnDC,MAAM,EAAED,YAAY,GAAG,CAAC,GAAGN,OAAO,CAACQ,MAAM,CAACN,GAAG;IAC7CO,eAAe,EAAExB,KAAK;IAAAyB,iBAAA;EACxB,CAAC;AACH,CAAC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -66,8 +66,8 @@ export const dark = {
|
|
|
66
66
|
"color.warning.soft.border": "#f68909",
|
|
67
67
|
// Danger
|
|
68
68
|
"color.danger.text": "{palette.red.400}",
|
|
69
|
-
"color.danger.solid.bg": "
|
|
70
|
-
"color.danger.solid.fg": "{palette.
|
|
69
|
+
"color.danger.solid.bg": "#dc0010",
|
|
70
|
+
"color.danger.solid.fg": "{palette.white}",
|
|
71
71
|
"color.danger.solid.border": "{palette.red.800}",
|
|
72
72
|
"color.danger.soft.bg": "{palette.red.950}",
|
|
73
73
|
"color.danger.soft.fg": "{palette.red.300}",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["dark"],"sourceRoot":"../../../../src","sources":["theme/tokens/dark.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA,OAAO,MAAMA,IAAI,GAAG;EAClB;EACA,sBAAsB,EAAE,SAAS;EACjC,uBAAuB,EAAE,SAAS;EAClC,sBAAsB,EAAE,SAAS;EACjC,sBAAsB,EAAE,SAAS;EAEjC;EACA,oBAAoB,EAAE,sBAAsB;EAC5C;EACA,sBAAsB,EAAE,SAAS;EACjC,qBAAqB,EAAE,SAAS;EAChC,qBAAqB,EAAE,SAAS;EAChC,oBAAoB,EAAE,uBAAuB;EAC7C,iBAAiB,EAAE,oBAAoB;EAEvC;EACA,qBAAqB,EAAE,uBAAuB;EAC9C,sBAAsB,EAAE,uBAAuB;EAC/C,qBAAqB,EAAE,uBAAuB;EAC9C,kBAAkB,EAAE,oBAAoB;EAExC;EACA,gBAAgB,EAAE,qBAAqB;EACvC,cAAc,EAAE,iBAAiB;EAEjC;EACA,mBAAmB,EAAE,uBAAuB;EAC5C,qBAAqB,EAAE,uBAAuB;EAE9C,uBAAuB,EAAE,uBAAuB;EAChD,6BAA6B,EAAE,uBAAuB;EACtD,+BAA+B,EAAE,uBAAuB;EACxD,gCAAgC,EAAE,qBAAqB;EACvD,uBAAuB,EAAE,qBAAqB;EAE9C,sBAAsB,EAAE,uBAAuB;EAC/C,4BAA4B,EAAE,uBAAuB;EACrD,8BAA8B,EAAE,uBAAuB;EACvD,+BAA+B,EAAE,uBAAuB;EACxD,sBAAsB,EAAE,uBAAuB;EAE/C;EACA,wBAAwB,EAAE,uBAAuB;EACjD,wBAAwB,EAAE,sBAAsB;EAEhD;EACA,uBAAuB,EAAE,0BAA0B;EACnD,6BAA6B,EAAE,0BAA0B;EACzD,+BAA+B,EAAE,0BAA0B;EAC3D,gCAAgC,EAAE,uBAAuB;EACzD,uBAAuB,EAAE,uBAAuB;EAEhD;EACA,oBAAoB,EAAE,qBAAqB;EAE3C,wBAAwB,EAAE,qBAAqB;EAC/C,wBAAwB,EAAE,qBAAqB;EAC/C,4BAA4B,EAAE,qBAAqB;EAEnD,uBAAuB,EAAE,qBAAqB;EAC9C,uBAAuB,EAAE,qBAAqB;EAC9C,2BAA2B,EAAE,qBAAqB;EAElD;EACA,oBAAoB,EAAE,SAAS;EAE/B,wBAAwB,EAAE,SAAS;EACnC,wBAAwB,EAAE,SAAS;EACnC,4BAA4B,EAAE,SAAS;EAEvC,uBAAuB,EAAE,SAAS;EAClC,uBAAuB,EAAE,SAAS;EAClC,2BAA2B,EAAE,SAAS;EAEtC;EACA,mBAAmB,EAAE,mBAAmB;EAExC,uBAAuB,EAAE,
|
|
1
|
+
{"version":3,"names":["dark"],"sourceRoot":"../../../../src","sources":["theme/tokens/dark.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA,OAAO,MAAMA,IAAI,GAAG;EAClB;EACA,sBAAsB,EAAE,SAAS;EACjC,uBAAuB,EAAE,SAAS;EAClC,sBAAsB,EAAE,SAAS;EACjC,sBAAsB,EAAE,SAAS;EAEjC;EACA,oBAAoB,EAAE,sBAAsB;EAC5C;EACA,sBAAsB,EAAE,SAAS;EACjC,qBAAqB,EAAE,SAAS;EAChC,qBAAqB,EAAE,SAAS;EAChC,oBAAoB,EAAE,uBAAuB;EAC7C,iBAAiB,EAAE,oBAAoB;EAEvC;EACA,qBAAqB,EAAE,uBAAuB;EAC9C,sBAAsB,EAAE,uBAAuB;EAC/C,qBAAqB,EAAE,uBAAuB;EAC9C,kBAAkB,EAAE,oBAAoB;EAExC;EACA,gBAAgB,EAAE,qBAAqB;EACvC,cAAc,EAAE,iBAAiB;EAEjC;EACA,mBAAmB,EAAE,uBAAuB;EAC5C,qBAAqB,EAAE,uBAAuB;EAE9C,uBAAuB,EAAE,uBAAuB;EAChD,6BAA6B,EAAE,uBAAuB;EACtD,+BAA+B,EAAE,uBAAuB;EACxD,gCAAgC,EAAE,qBAAqB;EACvD,uBAAuB,EAAE,qBAAqB;EAE9C,sBAAsB,EAAE,uBAAuB;EAC/C,4BAA4B,EAAE,uBAAuB;EACrD,8BAA8B,EAAE,uBAAuB;EACvD,+BAA+B,EAAE,uBAAuB;EACxD,sBAAsB,EAAE,uBAAuB;EAE/C;EACA,wBAAwB,EAAE,uBAAuB;EACjD,wBAAwB,EAAE,sBAAsB;EAEhD;EACA,uBAAuB,EAAE,0BAA0B;EACnD,6BAA6B,EAAE,0BAA0B;EACzD,+BAA+B,EAAE,0BAA0B;EAC3D,gCAAgC,EAAE,uBAAuB;EACzD,uBAAuB,EAAE,uBAAuB;EAEhD;EACA,oBAAoB,EAAE,qBAAqB;EAE3C,wBAAwB,EAAE,qBAAqB;EAC/C,wBAAwB,EAAE,qBAAqB;EAC/C,4BAA4B,EAAE,qBAAqB;EAEnD,uBAAuB,EAAE,qBAAqB;EAC9C,uBAAuB,EAAE,qBAAqB;EAC9C,2BAA2B,EAAE,qBAAqB;EAElD;EACA,oBAAoB,EAAE,SAAS;EAE/B,wBAAwB,EAAE,SAAS;EACnC,wBAAwB,EAAE,SAAS;EACnC,4BAA4B,EAAE,SAAS;EAEvC,uBAAuB,EAAE,SAAS;EAClC,uBAAuB,EAAE,SAAS;EAClC,2BAA2B,EAAE,SAAS;EAEtC;EACA,mBAAmB,EAAE,mBAAmB;EAExC,uBAAuB,EAAE,SAAS;EAClC,uBAAuB,EAAE,iBAAiB;EAC1C,2BAA2B,EAAE,mBAAmB;EAEhD,sBAAsB,EAAE,mBAAmB;EAC3C,sBAAsB,EAAE,mBAAmB;EAC3C,0BAA0B,EAAE,mBAAmB;EAE/C;EACA,iBAAiB,EAAE,mBAAmB;EAEtC,qBAAqB,EAAE,mBAAmB;EAC1C,qBAAqB,EAAE,qBAAqB;EAC5C,yBAAyB,EAAE,mBAAmB;EAE9C,oBAAoB,EAAE,mBAAmB;EACzC,oBAAoB,EAAE,mBAAmB;EACzC,wBAAwB,EAAE;AAC5B,CAAC","ignoreList":[]}
|
|
@@ -65,8 +65,8 @@ export const light = {
|
|
|
65
65
|
"color.warning.soft.border": "#e06c00",
|
|
66
66
|
// Danger
|
|
67
67
|
"color.danger.text": "{palette.rose.700}",
|
|
68
|
-
"color.danger.solid.bg": "
|
|
69
|
-
"color.danger.solid.fg": "{palette.
|
|
68
|
+
"color.danger.solid.bg": "#dc0010",
|
|
69
|
+
"color.danger.solid.fg": "{palette.white}",
|
|
70
70
|
"color.danger.solid.border": "{palette.red.300}",
|
|
71
71
|
"color.danger.soft.bg": "{palette.red.100}",
|
|
72
72
|
"color.danger.soft.fg": "{palette.rose.700}",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["light"],"sourceRoot":"../../../../src","sources":["theme/tokens/light.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA,OAAO,MAAMA,KAAK,GAAG;EACnB;EACA,sBAAsB,EAAE,SAAS;EACjC,uBAAuB,EAAE,iBAAiB;EAC1C,sBAAsB,EAAE,iBAAiB;EACzC,sBAAsB,EAAE,SAAS;EAEjC;EACA,oBAAoB,EAAE,uBAAuB;EAC7C,sBAAsB,EAAE,SAAS;EACjC,qBAAqB,EAAE,SAAS;EAChC,qBAAqB,EAAE,SAAS;EAChC,oBAAoB,EAAE,iBAAiB;EACvC,iBAAiB,EAAE,oBAAoB;EAEvC;EACA,qBAAqB,EAAE,SAAS;EAChC,sBAAsB,EAAE,uBAAuB;EAC/C,qBAAqB,EAAE,uBAAuB;EAC9C,kBAAkB,EAAE,oBAAoB;EAExC;EACA,gBAAgB,EAAE,sBAAsB;EACxC,cAAc,EAAE,SAAS;EAEzB;EACA,mBAAmB,EAAE,uBAAuB;EAC5C,qBAAqB,EAAE,uBAAuB;EAE9C,uBAAuB,EAAE,uBAAuB;EAChD,6BAA6B,EAAE,uBAAuB;EACtD,+BAA+B,EAAE,uBAAuB;EACxD,gCAAgC,EAAE,qBAAqB;EACvD,uBAAuB,EAAE,iBAAiB;EAE1C,sBAAsB,EAAE,uBAAuB;EAC/C,4BAA4B,EAAE,uBAAuB;EACrD,8BAA8B,EAAE,uBAAuB;EACvD,+BAA+B,EAAE,qBAAqB;EACtD,sBAAsB,EAAE,uBAAuB;EAE/C;EACA,wBAAwB,EAAE,uBAAuB;EACjD,wBAAwB,EAAE,uBAAuB;EAEjD;EACA,uBAAuB,EAAE,0BAA0B;EACnD,6BAA6B,EAAE,0BAA0B;EACzD,+BAA+B,EAAE,0BAA0B;EAC3D,gCAAgC,EAAE,qBAAqB;EACvD,uBAAuB,EAAE,uBAAuB;EAEhD;EACA,oBAAoB,EAAE,uBAAuB;EAE7C,wBAAwB,EAAE,qBAAqB;EAC/C,wBAAwB,EAAE,qBAAqB;EAC/C,4BAA4B,EAAE,qBAAqB;EAEnD,uBAAuB,EAAE,qBAAqB;EAC9C,uBAAuB,EAAE,uBAAuB;EAChD,2BAA2B,EAAE,qBAAqB;EAElD;EACA,oBAAoB,EAAE,SAAS;EAE/B,wBAAwB,EAAE,SAAS;EACnC,wBAAwB,EAAE,SAAS;EACnC,4BAA4B,EAAE,SAAS;EAEvC,uBAAuB,EAAE,SAAS;EAClC,uBAAuB,EAAE,SAAS;EAClC,2BAA2B,EAAE,SAAS;EAEtC;EACA,mBAAmB,EAAE,oBAAoB;EAEzC,uBAAuB,EAAE,
|
|
1
|
+
{"version":3,"names":["light"],"sourceRoot":"../../../../src","sources":["theme/tokens/light.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA,OAAO,MAAMA,KAAK,GAAG;EACnB;EACA,sBAAsB,EAAE,SAAS;EACjC,uBAAuB,EAAE,iBAAiB;EAC1C,sBAAsB,EAAE,iBAAiB;EACzC,sBAAsB,EAAE,SAAS;EAEjC;EACA,oBAAoB,EAAE,uBAAuB;EAC7C,sBAAsB,EAAE,SAAS;EACjC,qBAAqB,EAAE,SAAS;EAChC,qBAAqB,EAAE,SAAS;EAChC,oBAAoB,EAAE,iBAAiB;EACvC,iBAAiB,EAAE,oBAAoB;EAEvC;EACA,qBAAqB,EAAE,SAAS;EAChC,sBAAsB,EAAE,uBAAuB;EAC/C,qBAAqB,EAAE,uBAAuB;EAC9C,kBAAkB,EAAE,oBAAoB;EAExC;EACA,gBAAgB,EAAE,sBAAsB;EACxC,cAAc,EAAE,SAAS;EAEzB;EACA,mBAAmB,EAAE,uBAAuB;EAC5C,qBAAqB,EAAE,uBAAuB;EAE9C,uBAAuB,EAAE,uBAAuB;EAChD,6BAA6B,EAAE,uBAAuB;EACtD,+BAA+B,EAAE,uBAAuB;EACxD,gCAAgC,EAAE,qBAAqB;EACvD,uBAAuB,EAAE,iBAAiB;EAE1C,sBAAsB,EAAE,uBAAuB;EAC/C,4BAA4B,EAAE,uBAAuB;EACrD,8BAA8B,EAAE,uBAAuB;EACvD,+BAA+B,EAAE,qBAAqB;EACtD,sBAAsB,EAAE,uBAAuB;EAE/C;EACA,wBAAwB,EAAE,uBAAuB;EACjD,wBAAwB,EAAE,uBAAuB;EAEjD;EACA,uBAAuB,EAAE,0BAA0B;EACnD,6BAA6B,EAAE,0BAA0B;EACzD,+BAA+B,EAAE,0BAA0B;EAC3D,gCAAgC,EAAE,qBAAqB;EACvD,uBAAuB,EAAE,uBAAuB;EAEhD;EACA,oBAAoB,EAAE,uBAAuB;EAE7C,wBAAwB,EAAE,qBAAqB;EAC/C,wBAAwB,EAAE,qBAAqB;EAC/C,4BAA4B,EAAE,qBAAqB;EAEnD,uBAAuB,EAAE,qBAAqB;EAC9C,uBAAuB,EAAE,uBAAuB;EAChD,2BAA2B,EAAE,qBAAqB;EAElD;EACA,oBAAoB,EAAE,SAAS;EAE/B,wBAAwB,EAAE,SAAS;EACnC,wBAAwB,EAAE,SAAS;EACnC,4BAA4B,EAAE,SAAS;EAEvC,uBAAuB,EAAE,SAAS;EAClC,uBAAuB,EAAE,SAAS;EAClC,2BAA2B,EAAE,SAAS;EAEtC;EACA,mBAAmB,EAAE,oBAAoB;EAEzC,uBAAuB,EAAE,SAAS;EAClC,uBAAuB,EAAE,iBAAiB;EAC1C,2BAA2B,EAAE,mBAAmB;EAEhD,sBAAsB,EAAE,mBAAmB;EAC3C,sBAAsB,EAAE,oBAAoB;EAC5C,0BAA0B,EAAE,mBAAmB;EAE/C;EACA,iBAAiB,EAAE,mBAAmB;EAEtC,qBAAqB,EAAE,mBAAmB;EAC1C,qBAAqB,EAAE,qBAAqB;EAC5C,yBAAyB,EAAE,mBAAmB;EAE9C,oBAAoB,EAAE,mBAAmB;EACzC,oBAAoB,EAAE,mBAAmB;EACzC,wBAAwB,EAAE;AAC5B,CAAC","ignoreList":[]}
|
|
@@ -467,8 +467,8 @@ export const primitives = {
|
|
|
467
467
|
// ── screen-level layout ───────────────────────────────────────────────────
|
|
468
468
|
// `padding.x`/`padding.y` both scale up with the viewport breakpoint (see
|
|
469
469
|
// `theme/breakpoints.ts`).
|
|
470
|
-
"layout.screen.padding.x.xs":
|
|
471
|
-
"layout.screen.padding.x.sm":
|
|
470
|
+
"layout.screen.padding.x.xs": 20,
|
|
471
|
+
"layout.screen.padding.x.sm": 20,
|
|
472
472
|
"layout.screen.padding.x.md": 24,
|
|
473
473
|
"layout.screen.padding.x.lg": 32,
|
|
474
474
|
"layout.screen.padding.x.xl": 48,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../../../src/components/accordion/Accordion.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA0B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA4B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAiB9C;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../../../src/components/accordion/Accordion.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA0B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA4B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAiB9C;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,aAAa,4LAwBjB,CAAC;AAEH,KAAK,kBAAkB,GAAG,OAAO,aAAa,GAAG;IAC/C,IAAI,EAAE,OAAO,aAAa,CAAC;IAC3B,OAAO,EAAE,OAAO,gBAAgB,CAAC;IACjC,SAAS,EAAE,OAAO,kBAAkB,CAAC;IACrC,OAAO,EAAE,OAAO,gBAAgB,CAAC;CAClC,CAAC;AAEF,eAAO,MAAM,SAAS,EAAoB,kBAAkB,CAAC"}
|
|
@@ -4,5 +4,5 @@ export type { AccordionContentProps } from "./parts/AccordionContent.js";
|
|
|
4
4
|
export type { AccordionIndicatorProps } from "./parts/AccordionIndicator.js";
|
|
5
5
|
export type { AccordionItemProps } from "./parts/AccordionItem.js";
|
|
6
6
|
export type { AccordionTriggerProps } from "./parts/AccordionTrigger.js";
|
|
7
|
-
export type { AccordionItemState, AccordionMultipleProps, AccordionProps, AccordionSelectionMode, AccordionSingleProps,
|
|
7
|
+
export type { AccordionItemState, AccordionMultipleProps, AccordionProps, AccordionSelectionMode, AccordionSingleProps, } from "./types.js";
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/accordion/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAW,CAAC;AAC7C,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA0B,CAAC;AACtE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA4B,CAAC;AAC1E,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAAuB,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA0B,CAAC;AACtE,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,sBAAsB,EACtB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/accordion/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAW,CAAC;AAC7C,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA0B,CAAC;AACtE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA4B,CAAC;AAC1E,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAAuB,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA0B,CAAC;AACtE,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,YAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionContent.d.ts","sourceRoot":"","sources":["../../../../../../src/components/accordion/parts/AccordionContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2C,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AACrG,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAU5E,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,oEAAoE;IACpE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAsBD,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"AccordionContent.d.ts","sourceRoot":"","sources":["../../../../../../src/components/accordion/parts/AccordionContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2C,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AACrG,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAU5E,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,oEAAoE;IACpE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAsBD,eAAO,MAAM,gBAAgB,mMA6C5B,CAAC"}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import type { ViewProps } from "react-native";
|
|
3
3
|
export type AccordionSelectionMode = "single" | "multiple";
|
|
4
|
-
export type AccordionVariant = "plain" | "surface";
|
|
5
4
|
interface AccordionBaseProps extends Omit<ViewProps, "children"> {
|
|
6
|
-
/**
|
|
7
|
-
* Visual treatment. `'plain'` draws the items straight onto whatever sits
|
|
8
|
-
* behind the accordion; `'surface'` puts them in a filled, rounded container.
|
|
9
|
-
* Defaults to `'plain'`.
|
|
10
|
-
*/
|
|
11
|
-
variant?: AccordionVariant;
|
|
12
5
|
/** Draws a hairline rule between items. Defaults to `true`. */
|
|
13
6
|
divided?: boolean;
|
|
14
7
|
/** Disables every item. Defaults to `false`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/accordion/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE3D,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/accordion/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE3D,UAAU,kBAAmB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IAC9D,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D;;;OAGG;IACH,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,6DAA6D;IAC7D,aAAa,EAAE,UAAU,CAAC;IAC1B,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,wDAAwD;IACxD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C,8CAA8C;IAC9C,aAAa,CAAC,EAAE,KAAK,CAAC;CACvB;AAED,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAE3E,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,UAAU,EAAE,OAAO,CAAC;IACpB,6DAA6D;IAC7D,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../../../src/components/badge/Badge.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,YAAS,CAAC;AAsBrD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,KAAK,GAAI,kEAQnB,UAAU,
|
|
1
|
+
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../../../src/components/badge/Badge.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,YAAS,CAAC;AAsBrD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,KAAK,GAAI,kEAQnB,UAAU,gCA6CZ,CAAC"}
|
|
@@ -11,6 +11,12 @@ export declare function getCustomBadgeColors(literal: string): CustomBadgeColors
|
|
|
11
11
|
* `isVisible` rather than relying on falsiness.
|
|
12
12
|
*/
|
|
13
13
|
export declare function hasLabel(label: string | number | undefined): label is string | number;
|
|
14
|
+
/**
|
|
15
|
+
* `true` when the label is one character, which the badge draws as a circle
|
|
16
|
+
* instead of a pill. Counts code points so a single emoji or astral character
|
|
17
|
+
* still counts as one.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isSingleCharacter(label: string | number): boolean;
|
|
14
20
|
/**
|
|
15
21
|
* Outer diameter of the dot per size. The badge's own stylesheet repeats
|
|
16
22
|
* these as literals — the unistyles Babel plugin reads that object statically,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/badge/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAS,CAAC;AAMzD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAEvE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,CAErF;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAI9C,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,SAAS,EACf,MAAM,GAAE,MAAM,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAA;CAAM,GAC9C,cAAc,CAkBhB"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/badge/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAS,CAAC;AAMzD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAEvE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,CAErF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAEjE;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAI9C,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,SAAS,EACf,MAAM,GAAE,MAAM,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAA;CAAM,GAC9C,cAAc,CAkBhB"}
|
|
@@ -4,6 +4,7 @@ import { type HeaderDismissProps } from "../header-buttons.js";
|
|
|
4
4
|
import { type HeaderSurfaceProps } from "./HeaderSurface.js";
|
|
5
5
|
interface HeaderBarProps extends HeaderDismissProps {
|
|
6
6
|
title?: ReactNode;
|
|
7
|
+
subtitle?: string;
|
|
7
8
|
leading?: ReactNode;
|
|
8
9
|
trailing?: ReactNode;
|
|
9
10
|
titleAlignment: "center" | "left";
|
|
@@ -12,6 +13,6 @@ interface HeaderBarProps extends HeaderDismissProps {
|
|
|
12
13
|
titleStyle?: ComponentProps<typeof Animated.View>["style"];
|
|
13
14
|
}
|
|
14
15
|
/** Shared compact bar. Only the title and background animate; actions stay interactive. */
|
|
15
|
-
export declare function HeaderBar({ title, leading, trailing, titleAlignment, color, surfaceStyle, titleStyle, dismissAction, navigation, onDismiss, }: HeaderBarProps): import("react").JSX.Element;
|
|
16
|
+
export declare function HeaderBar({ title, subtitle, leading, trailing, titleAlignment, color, surfaceStyle, titleStyle, dismissAction, navigation, onDismiss, }: HeaderBarProps): import("react").JSX.Element;
|
|
16
17
|
export {};
|
|
17
18
|
//# sourceMappingURL=HeaderBar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderBar.d.ts","sourceRoot":"","sources":["../../../../../../src/components/header/parts/HeaderBar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAGtE,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAO/C,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,sBAAmB,CAAC;AAEjF,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,oBAAiB,CAAC;AAGzE,UAAU,cAAe,SAAQ,kBAAkB;IACjD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACnD,UAAU,CAAC,EAAE,cAAc,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;CAC5D;AAED,2FAA2F;AAC3F,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,OAAO,EACP,QAAQ,EACR,cAAc,EACd,KAAK,EACL,YAAY,EACZ,UAAU,EACV,aAAsB,EACtB,UAAU,EACV,SAAS,GACV,EAAE,cAAc,+
|
|
1
|
+
{"version":3,"file":"HeaderBar.d.ts","sourceRoot":"","sources":["../../../../../../src/components/header/parts/HeaderBar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAGtE,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAO/C,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,sBAAmB,CAAC;AAEjF,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,oBAAiB,CAAC;AAGzE,UAAU,cAAe,SAAQ,kBAAkB;IACjD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACnD,UAAU,CAAC,EAAE,cAAc,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;CAC5D;AAED,2FAA2F;AAC3F,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,cAAc,EACd,KAAK,EACL,YAAY,EACZ,UAAU,EACV,aAAsB,EACtB,UAAU,EACV,SAAS,GACV,EAAE,cAAc,+BAoFhB"}
|
|
@@ -9,6 +9,8 @@ export interface TitleHeaderProps extends HeaderDismissProps {
|
|
|
9
9
|
* the header only places it according to `titleAlignment`.
|
|
10
10
|
*/
|
|
11
11
|
title?: ReactNode;
|
|
12
|
+
/** Optional secondary line shown under the title, in the `label-sm` style. */
|
|
13
|
+
subtitle?: string;
|
|
12
14
|
/**
|
|
13
15
|
* Leading-side actions, wrapped in a `Toolbar` row. Pass `Toolbar.Group` /
|
|
14
16
|
* `Toolbar.Button` children directly — no `Toolbar` of your own.
|
|
@@ -43,5 +45,5 @@ export interface TitleHeaderProps extends HeaderDismissProps {
|
|
|
43
45
|
bg?: ColorToken;
|
|
44
46
|
}
|
|
45
47
|
/** Compact header. Screen owns the safe area when present; standalone headers reserve it here. */
|
|
46
|
-
export declare function TitleHeader({ title, leadingActions, trailingActions, LeftToolbar, RightToolbar, accessory, accessoryPadding, titleAlignment, background, bg, ...dismissProps }: TitleHeaderProps): import("react").JSX.Element;
|
|
48
|
+
export declare function TitleHeader({ title, subtitle, leadingActions, trailingActions, LeftToolbar, RightToolbar, accessory, accessoryPadding, titleAlignment, background, bg, ...dismissProps }: TitleHeaderProps): import("react").JSX.Element;
|
|
47
49
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/header/variants/TitleHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAc,MAAM,OAAO,CAAC;AAKnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAsB,CAAC;AAI/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAa,CAAC;AAE1D,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,kGAAkG;AAClG,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACZ,SAAS,EACT,gBAAsB,EACtB,cAAyB,EACzB,UAAU,EACV,EAAE,EACF,GAAG,YAAY,EAChB,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,EAAc,MAAM,OAAO,CAAC;AAKnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAsB,CAAC;AAI/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAa,CAAC;AAE1D,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IAC1D;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,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,kGAAkG;AAClG,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACZ,SAAS,EACT,gBAAsB,EACtB,cAAyB,EACzB,UAAU,EACV,EAAE,EACF,GAAG,YAAY,EAChB,EAAE,gBAAgB,+BA2BlB"}
|
package/package.json
CHANGED
|
@@ -60,7 +60,6 @@ const AccordionRoot = forwardRef<ComponentRef<typeof View>, AccordionProps>(func
|
|
|
60
60
|
defaultValue: _defaultValue,
|
|
61
61
|
onValueChange: _onValueChange,
|
|
62
62
|
isCollapsible: _isCollapsible,
|
|
63
|
-
variant = "plain",
|
|
64
63
|
divided = true,
|
|
65
64
|
isDisabled = false,
|
|
66
65
|
children,
|
|
@@ -71,8 +70,6 @@ const AccordionRoot = forwardRef<ComponentRef<typeof View>, AccordionProps>(func
|
|
|
71
70
|
const { expanded, toggle } = useAccordionCore(props);
|
|
72
71
|
const context = useMemo(() => ({ expanded, toggle, isDisabled }), [expanded, toggle, isDisabled]);
|
|
73
72
|
|
|
74
|
-
styles.useVariants({ variant });
|
|
75
|
-
|
|
76
73
|
return (
|
|
77
74
|
<AccordionContext.Provider value={context}>
|
|
78
75
|
<View ref={ref} style={[styles.root, style]} {...rest}>
|
|
@@ -97,20 +94,9 @@ Accordion.Content = AccordionContent;
|
|
|
97
94
|
|
|
98
95
|
// ─── Styles ───────────────────────────────────────────────────────────────────
|
|
99
96
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
// A fixed radius rather than the registry's `surface` default: the
|
|
106
|
-
// accordion is not a `Surface`, and a configured shadow would sit oddly
|
|
107
|
-
// under a container whose height animates.
|
|
108
|
-
surface: {
|
|
109
|
-
backgroundColor: theme.color["surface.default"],
|
|
110
|
-
borderRadius: theme.radius.xl,
|
|
111
|
-
paddingHorizontal: theme.spacing["4"],
|
|
112
|
-
},
|
|
113
|
-
},
|
|
114
|
-
},
|
|
115
|
-
},
|
|
97
|
+
// Present so the Unistyles Babel plugin rewrites the `View` above; a themed
|
|
98
|
+
// style passed in through `style` would otherwise freeze at the theme it was
|
|
99
|
+
// created under.
|
|
100
|
+
const styles = StyleSheet.create(() => ({
|
|
101
|
+
root: {},
|
|
116
102
|
}));
|
|
@@ -58,23 +58,21 @@ export const AccordionContent = forwardRef<ComponentRef<typeof View>, AccordionC
|
|
|
58
58
|
onLayoutProp?.(event);
|
|
59
59
|
};
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
return { height: measured.value * progress.value, opacity: progress.value };
|
|
69
|
-
});
|
|
61
|
+
// Height is 0 until the first measurement lands, so the body stays hidden
|
|
62
|
+
// for the one frame it takes to measure.
|
|
63
|
+
const clip = useAnimatedStyle(() => ({
|
|
64
|
+
height: measured.value * progress.value,
|
|
65
|
+
opacity: progress.value,
|
|
66
|
+
}));
|
|
70
67
|
|
|
71
68
|
if (!isMounted) return null;
|
|
72
69
|
|
|
73
70
|
return (
|
|
74
71
|
<Animated.View style={[styles.clip, clip]}>
|
|
75
|
-
{/*
|
|
76
|
-
|
|
77
|
-
|
|
72
|
+
{/* Absolutely positioned so its height never depends on the clip's. In
|
|
73
|
+
flow, Yoga measures text against the clip's animating height and
|
|
74
|
+
clamps it, and the body would then report that clamped height back
|
|
75
|
+
as the one to animate towards. */}
|
|
78
76
|
<View ref={ref} {...rest} onLayout={onLayout} style={[styles.body, style]}>
|
|
79
77
|
{renderBody(children)}
|
|
80
78
|
</View>
|
|
@@ -90,6 +88,10 @@ const styles = StyleSheet.create((theme) => ({
|
|
|
90
88
|
overflow: "hidden",
|
|
91
89
|
},
|
|
92
90
|
body: {
|
|
91
|
+
position: "absolute",
|
|
92
|
+
top: 0,
|
|
93
|
+
left: 0,
|
|
94
|
+
right: 0,
|
|
93
95
|
gap: theme.spacing["2"],
|
|
94
96
|
paddingBottom: theme.spacing["4"],
|
|
95
97
|
},
|
|
@@ -18,14 +18,14 @@ function renderTitle(children: ReactNode): ReactNode {
|
|
|
18
18
|
return Children.map(children, (child) => {
|
|
19
19
|
if (typeof child === "string") {
|
|
20
20
|
return child.trim().length > 0 ? (
|
|
21
|
-
<Text variant="body-
|
|
21
|
+
<Text variant="body-md" weight="semibold" style={styles.title}>
|
|
22
22
|
{child}
|
|
23
23
|
</Text>
|
|
24
24
|
) : null;
|
|
25
25
|
}
|
|
26
26
|
if (typeof child === "number") {
|
|
27
27
|
return (
|
|
28
|
-
<Text variant="body-
|
|
28
|
+
<Text variant="body-md" weight="semibold" style={styles.title}>
|
|
29
29
|
{child}
|
|
30
30
|
</Text>
|
|
31
31
|
);
|
|
@@ -72,7 +72,7 @@ const styles = StyleSheet.create((theme) => ({
|
|
|
72
72
|
alignItems: "center",
|
|
73
73
|
gap: theme.spacing["3"],
|
|
74
74
|
minHeight: 48,
|
|
75
|
-
paddingVertical: theme.spacing["
|
|
75
|
+
paddingVertical: theme.spacing["2"],
|
|
76
76
|
},
|
|
77
77
|
pressed: {
|
|
78
78
|
opacity: theme.opacity.pressed,
|
|
@@ -3,15 +3,7 @@ import type { ViewProps } from "react-native";
|
|
|
3
3
|
|
|
4
4
|
export type AccordionSelectionMode = "single" | "multiple";
|
|
5
5
|
|
|
6
|
-
export type AccordionVariant = "plain" | "surface";
|
|
7
|
-
|
|
8
6
|
interface AccordionBaseProps extends Omit<ViewProps, "children"> {
|
|
9
|
-
/**
|
|
10
|
-
* Visual treatment. `'plain'` draws the items straight onto whatever sits
|
|
11
|
-
* behind the accordion; `'surface'` puts them in a filled, rounded container.
|
|
12
|
-
* Defaults to `'plain'`.
|
|
13
|
-
*/
|
|
14
|
-
variant?: AccordionVariant;
|
|
15
7
|
/** Draws a hairline rule between items. Defaults to `true`. */
|
|
16
8
|
divided?: boolean;
|
|
17
9
|
/** Disables every item. Defaults to `false`. */
|
|
@@ -6,7 +6,7 @@ import type { ColorToken, RoleTextVariant } from "#theme/types";
|
|
|
6
6
|
import { resolveThemeColor } from "#utils/resolve-theme-color";
|
|
7
7
|
import { FONT_WEIGHT_VALUE, SYSTEM_FONT } from "#utils/typography";
|
|
8
8
|
import type { BadgeProps, BadgeSize } from "./types";
|
|
9
|
-
import { getCustomBadgeColors, hasLabel } from "./utils";
|
|
9
|
+
import { getCustomBadgeColors, hasLabel, isSingleCharacter } from "./utils";
|
|
10
10
|
|
|
11
11
|
const SCHEME_NAMES = new Set(["primary", "secondary", "success", "warning", "danger"]);
|
|
12
12
|
|
|
@@ -23,8 +23,8 @@ const FG_TOKEN: Record<BadgeScheme, ColorToken> = {
|
|
|
23
23
|
|
|
24
24
|
const LABEL_VARIANT: Record<BadgeSize, RoleTextVariant> = {
|
|
25
25
|
sm: "label-sm",
|
|
26
|
-
md: "label-
|
|
27
|
-
lg: "label-
|
|
26
|
+
md: "label-sm",
|
|
27
|
+
lg: "label-md",
|
|
28
28
|
};
|
|
29
29
|
|
|
30
30
|
/**
|
|
@@ -80,6 +80,7 @@ export const Badge = ({
|
|
|
80
80
|
style={[
|
|
81
81
|
styles.indicator,
|
|
82
82
|
labelled ? styles.pill : styles.dot,
|
|
83
|
+
labelled && isSingleCharacter(label) ? styles.circle : null,
|
|
83
84
|
custom ? { backgroundColor: custom.bg } : null,
|
|
84
85
|
style,
|
|
85
86
|
]}
|
|
@@ -150,9 +151,9 @@ const styles = StyleSheet.create((theme) => {
|
|
|
150
151
|
dot: {
|
|
151
152
|
variants: {
|
|
152
153
|
size: {
|
|
153
|
-
sm: { width:
|
|
154
|
-
md: { width:
|
|
155
|
-
lg: { width:
|
|
154
|
+
sm: { width: 10, height: 10 },
|
|
155
|
+
md: { width: 12, height: 12 },
|
|
156
|
+
lg: { width: 14, height: 14 },
|
|
156
157
|
},
|
|
157
158
|
},
|
|
158
159
|
},
|
|
@@ -160,11 +161,19 @@ const styles = StyleSheet.create((theme) => {
|
|
|
160
161
|
variants: {
|
|
161
162
|
size: {
|
|
162
163
|
sm: { height: 18, minWidth: 18, paddingHorizontal: 5 },
|
|
163
|
-
md: { height:
|
|
164
|
-
lg: { height:
|
|
164
|
+
md: { height: 20, minWidth: 20, paddingHorizontal: 6 },
|
|
165
|
+
lg: { height: 24, minWidth: 24, paddingHorizontal: 7 },
|
|
165
166
|
},
|
|
166
167
|
},
|
|
167
168
|
},
|
|
169
|
+
// One character: as wide as the pill is tall, whatever the glyph's width
|
|
170
|
+
// or the text scale, so a count like "3" or "W" is always round.
|
|
171
|
+
circle: {
|
|
172
|
+
aspectRatio: 1,
|
|
173
|
+
paddingHorizontal: 0,
|
|
174
|
+
},
|
|
175
|
+
// One point under the label role's size: a badge is a glyph or two in a
|
|
176
|
+
// small pill, and the role sizes read heavy there.
|
|
168
177
|
// Spelled out rather than derived from `LABEL_VARIANT`: the unistyles Babel
|
|
169
178
|
// plugin reads this object statically, so computed variant keys are not
|
|
170
179
|
// safe here even though they would resolve correctly under test.
|
|
@@ -176,19 +185,19 @@ const styles = StyleSheet.create((theme) => {
|
|
|
176
185
|
variants: {
|
|
177
186
|
size: {
|
|
178
187
|
sm: {
|
|
179
|
-
fontSize: theme.typography.variants["label-sm"].fontSize,
|
|
188
|
+
fontSize: theme.typography.variants["label-sm"].fontSize - 1,
|
|
180
189
|
lineHeight: theme.typography.variants["label-sm"].lineHeight,
|
|
181
190
|
letterSpacing: theme.typography.variants["label-sm"].letterSpacing,
|
|
182
191
|
},
|
|
183
192
|
md: {
|
|
184
|
-
fontSize: theme.typography.variants["label-
|
|
185
|
-
lineHeight: theme.typography.variants["label-
|
|
186
|
-
letterSpacing: theme.typography.variants["label-
|
|
193
|
+
fontSize: theme.typography.variants["label-sm"].fontSize - 1,
|
|
194
|
+
lineHeight: theme.typography.variants["label-sm"].lineHeight,
|
|
195
|
+
letterSpacing: theme.typography.variants["label-sm"].letterSpacing,
|
|
187
196
|
},
|
|
188
197
|
lg: {
|
|
189
|
-
fontSize: theme.typography.variants["label-
|
|
190
|
-
lineHeight: theme.typography.variants["label-
|
|
191
|
-
letterSpacing: theme.typography.variants["label-
|
|
198
|
+
fontSize: theme.typography.variants["label-md"].fontSize - 1,
|
|
199
|
+
lineHeight: theme.typography.variants["label-md"].lineHeight,
|
|
200
|
+
letterSpacing: theme.typography.variants["label-md"].letterSpacing,
|
|
192
201
|
},
|
|
193
202
|
},
|
|
194
203
|
},
|
|
@@ -24,6 +24,15 @@ export function hasLabel(label: string | number | undefined): label is string |
|
|
|
24
24
|
return label !== undefined && label !== "";
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
/**
|
|
28
|
+
* `true` when the label is one character, which the badge draws as a circle
|
|
29
|
+
* instead of a pill. Counts code points so a single emoji or astral character
|
|
30
|
+
* still counts as one.
|
|
31
|
+
*/
|
|
32
|
+
export function isSingleCharacter(label: string | number): boolean {
|
|
33
|
+
return Array.from(String(label)).length === 1;
|
|
34
|
+
}
|
|
35
|
+
|
|
27
36
|
/**
|
|
28
37
|
* Outer diameter of the dot per size. The badge's own stylesheet repeats
|
|
29
38
|
* these as literals — the unistyles Babel plugin reads that object statically,
|
|
@@ -31,9 +40,9 @@ export function hasLabel(label: string | number | undefined): label is string |
|
|
|
31
40
|
* test suite is what keeps the two in step.
|
|
32
41
|
*/
|
|
33
42
|
export const DOT_SIZE: Record<BadgeSize, number> = {
|
|
34
|
-
sm:
|
|
35
|
-
md:
|
|
36
|
-
lg:
|
|
43
|
+
sm: 10,
|
|
44
|
+
md: 12,
|
|
45
|
+
lg: 14,
|
|
37
46
|
};
|
|
38
47
|
|
|
39
48
|
export interface AnchorPosition {
|
|
@@ -15,6 +15,7 @@ import { HeaderWindowInsets } from "./HeaderWindowInsets";
|
|
|
15
15
|
|
|
16
16
|
interface HeaderBarProps extends HeaderDismissProps {
|
|
17
17
|
title?: ReactNode;
|
|
18
|
+
subtitle?: string;
|
|
18
19
|
leading?: ReactNode;
|
|
19
20
|
trailing?: ReactNode;
|
|
20
21
|
titleAlignment: "center" | "left";
|
|
@@ -26,6 +27,7 @@ interface HeaderBarProps extends HeaderDismissProps {
|
|
|
26
27
|
/** Shared compact bar. Only the title and background animate; actions stay interactive. */
|
|
27
28
|
export function HeaderBar({
|
|
28
29
|
title,
|
|
30
|
+
subtitle,
|
|
29
31
|
leading,
|
|
30
32
|
trailing,
|
|
31
33
|
titleAlignment,
|
|
@@ -100,6 +102,15 @@ export function HeaderBar({
|
|
|
100
102
|
</Text>
|
|
101
103
|
)
|
|
102
104
|
: title}
|
|
105
|
+
{!!subtitle && (
|
|
106
|
+
<Text
|
|
107
|
+
style={styles.subtitle}
|
|
108
|
+
numberOfLines={1}
|
|
109
|
+
maxFontSizeMultiplier={theme.typography.variants["label-sm"].maxFontSizeMultiplier}
|
|
110
|
+
>
|
|
111
|
+
{subtitle}
|
|
112
|
+
</Text>
|
|
113
|
+
)}
|
|
103
114
|
</Animated.View>
|
|
104
115
|
{hasTrailing && (
|
|
105
116
|
<Toolbar style={styles.trailing} onLayout={onTrailingLayout}>
|
|
@@ -118,6 +129,9 @@ const styles = StyleSheet.create((theme, runtime) => {
|
|
|
118
129
|
const titleWeight = theme.typography.variants["title-md"].fontWeight;
|
|
119
130
|
const titleFont = theme.typography.fonts[titleWeight];
|
|
120
131
|
const isSystemTitleFont = titleFont === SYSTEM_FONT;
|
|
132
|
+
const subtitleWeight = theme.typography.variants["label-sm"].fontWeight;
|
|
133
|
+
const subtitleFont = theme.typography.fonts[subtitleWeight];
|
|
134
|
+
const isSystemSubtitleFont = subtitleFont === SYSTEM_FONT;
|
|
121
135
|
|
|
122
136
|
return {
|
|
123
137
|
windowInsets: (left: number, right: number) => ({
|
|
@@ -196,5 +210,20 @@ const styles = StyleSheet.create((theme, runtime) => {
|
|
|
196
210
|
},
|
|
197
211
|
},
|
|
198
212
|
},
|
|
213
|
+
subtitle: {
|
|
214
|
+
fontSize: theme.typography.variants["label-sm"].fontSize,
|
|
215
|
+
lineHeight: theme.typography.variants["label-sm"].lineHeight,
|
|
216
|
+
letterSpacing: theme.typography.variants["label-sm"].letterSpacing,
|
|
217
|
+
fontFamily: isSystemSubtitleFont ? undefined : subtitleFont,
|
|
218
|
+
fontWeight: isSystemSubtitleFont ? FONT_WEIGHT_VALUE[subtitleWeight] : undefined,
|
|
219
|
+
includeFontPadding: false,
|
|
220
|
+
color: (theme.color as unknown as Record<string, string | undefined>)["text.tertiary"] ?? "",
|
|
221
|
+
variants: {
|
|
222
|
+
titleAlignment: {
|
|
223
|
+
center: { textAlign: "center" },
|
|
224
|
+
left: { textAlign: "left" },
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
},
|
|
199
228
|
};
|
|
200
229
|
});
|
|
@@ -19,6 +19,8 @@ export interface TitleHeaderProps extends HeaderDismissProps {
|
|
|
19
19
|
* the header only places it according to `titleAlignment`.
|
|
20
20
|
*/
|
|
21
21
|
title?: ReactNode;
|
|
22
|
+
/** Optional secondary line shown under the title, in the `label-sm` style. */
|
|
23
|
+
subtitle?: string;
|
|
22
24
|
/**
|
|
23
25
|
* Leading-side actions, wrapped in a `Toolbar` row. Pass `Toolbar.Group` /
|
|
24
26
|
* `Toolbar.Button` children directly — no `Toolbar` of your own.
|
|
@@ -56,6 +58,7 @@ export interface TitleHeaderProps extends HeaderDismissProps {
|
|
|
56
58
|
/** Compact header. Screen owns the safe area when present; standalone headers reserve it here. */
|
|
57
59
|
export function TitleHeader({
|
|
58
60
|
title,
|
|
61
|
+
subtitle,
|
|
59
62
|
leadingActions,
|
|
60
63
|
trailingActions,
|
|
61
64
|
LeftToolbar,
|
|
@@ -76,6 +79,7 @@ export function TitleHeader({
|
|
|
76
79
|
<HeaderBar
|
|
77
80
|
{...dismissProps}
|
|
78
81
|
title={title}
|
|
82
|
+
subtitle={subtitle}
|
|
79
83
|
titleAlignment={titleAlignment}
|
|
80
84
|
color={color}
|
|
81
85
|
leading={leadingActions !== undefined ? leadingActions : LeftToolbar}
|
package/src/theme/tokens/dark.ts
CHANGED
|
@@ -80,8 +80,8 @@ export const dark = {
|
|
|
80
80
|
// Danger
|
|
81
81
|
"color.danger.text": "{palette.red.400}",
|
|
82
82
|
|
|
83
|
-
"color.danger.solid.bg": "
|
|
84
|
-
"color.danger.solid.fg": "{palette.
|
|
83
|
+
"color.danger.solid.bg": "#dc0010",
|
|
84
|
+
"color.danger.solid.fg": "{palette.white}",
|
|
85
85
|
"color.danger.solid.border": "{palette.red.800}",
|
|
86
86
|
|
|
87
87
|
"color.danger.soft.bg": "{palette.red.950}",
|
|
@@ -79,8 +79,8 @@ export const light = {
|
|
|
79
79
|
// Danger
|
|
80
80
|
"color.danger.text": "{palette.rose.700}",
|
|
81
81
|
|
|
82
|
-
"color.danger.solid.bg": "
|
|
83
|
-
"color.danger.solid.fg": "{palette.
|
|
82
|
+
"color.danger.solid.bg": "#dc0010",
|
|
83
|
+
"color.danger.solid.fg": "{palette.white}",
|
|
84
84
|
"color.danger.solid.border": "{palette.red.300}",
|
|
85
85
|
|
|
86
86
|
"color.danger.soft.bg": "{palette.red.100}",
|
|
@@ -479,8 +479,8 @@ export const primitives = {
|
|
|
479
479
|
// ── screen-level layout ───────────────────────────────────────────────────
|
|
480
480
|
// `padding.x`/`padding.y` both scale up with the viewport breakpoint (see
|
|
481
481
|
// `theme/breakpoints.ts`).
|
|
482
|
-
"layout.screen.padding.x.xs":
|
|
483
|
-
"layout.screen.padding.x.sm":
|
|
482
|
+
"layout.screen.padding.x.xs": 20,
|
|
483
|
+
"layout.screen.padding.x.sm": 20,
|
|
484
484
|
"layout.screen.padding.x.md": 24,
|
|
485
485
|
"layout.screen.padding.x.lg": 32,
|
|
486
486
|
"layout.screen.padding.x.xl": 48,
|