react-native-terra-ui 0.12.1 → 0.13.0
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 +17 -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/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/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/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/theme/tokens/dark.ts +2 -2
- package/src/theme/tokens/light.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.13.0](https://github.com/earthlin9/react-native-terra-ui/compare/v0.12.1...v0.13.0) (2026-09-26)
|
|
4
|
+
|
|
5
|
+
### ⚠ BREAKING CHANGES
|
|
6
|
+
|
|
7
|
+
* **ui:** `Accordion` no longer accepts `variant`, and `AccordionVariant` is no longer exported. Replace `<Accordion variant="surface">` with `<Surface px="4" py="0"><Accordion>`.
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **theme:** use a stronger red with white text for danger solid ([43e5123](https://github.com/earthlin9/react-native-terra-ui/commit/43e512335e16e8100b8629ac35fa65130bb8854c))
|
|
12
|
+
* **ui:** [accordion] keep content visible when an item opens ([51459bb](https://github.com/earthlin9/react-native-terra-ui/commit/51459bb9868e27eec0e07a4c482411e98cd8849a))
|
|
13
|
+
* **ui:** [accordion] tighten trigger title and padding ([f3ad2b1](https://github.com/earthlin9/react-native-terra-ui/commit/f3ad2b19caad54354a1ca18d12ae28d3e82171c2))
|
|
14
|
+
* **ui:** [badge] shrink md and lg sizes and draw single characters as circles ([2a0041b](https://github.com/earthlin9/react-native-terra-ui/commit/2a0041b219c07e6e7eb9ad4dda787dcbe9e9efa8))
|
|
15
|
+
|
|
16
|
+
### Refactoring
|
|
17
|
+
|
|
18
|
+
* **ui:** [accordion] remove surface variant ([1258aa4](https://github.com/earthlin9/react-native-terra-ui/commit/1258aa4550c1a3b8ad6d3ca2dd55c883fe7d62a8))
|
|
19
|
+
|
|
3
20
|
## [0.12.1](https://github.com/earthlin9/react-native-terra-ui/compare/v0.12.0...v0.12.1) (2026-09-24)
|
|
4
21
|
|
|
5
22
|
### 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":"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","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":[]}
|
|
@@ -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":[]}
|
|
@@ -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"}
|
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 {
|
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}",
|