@xaui/native 0.9.1-alpha.27 → 0.9.1-alpha.29
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/dist/{chunk-3JATAB7S.js → chunk-4GTAZM2C.js} +4 -2
- package/dist/{chunk-N4UJYDOW.js → chunk-5RFRASSB.js} +20 -18
- package/dist/{chunk-V2FQN6ZK.js → chunk-7BOFQN2G.js} +1 -1
- package/dist/{chunk-5OXZIZRZ.cjs → chunk-APONC4DB.cjs} +7 -7
- package/dist/{chunk-6FBGCF5T.cjs → chunk-AQNWXJYV.cjs} +2 -2
- package/dist/chunk-BA2DBSAN.js +102 -0
- package/dist/{chunk-TR2TGPDQ.js → chunk-D4SOU26X.js} +1 -1
- package/dist/{chunk-CQRUNV6S.cjs → chunk-E25JH7W2.cjs} +17 -17
- package/dist/{chunk-2EBB5BO3.cjs → chunk-F3H4TXAY.cjs} +14 -33
- package/dist/chunk-F6CQ6CBI.cjs +112 -0
- package/dist/{chunk-ZTA47PO5.js → chunk-FDSQOPJH.js} +1 -1
- package/dist/{chunk-JCKVYYZO.cjs → chunk-FFEUGWVA.cjs} +3 -3
- package/dist/{chunk-YXVKQMCK.cjs → chunk-FNEUOBCV.cjs} +4 -2
- package/dist/{chunk-Y7U6ACMB.cjs → chunk-FXHRNUCS.cjs} +2 -2
- package/dist/{chunk-J4JFIC4W.cjs → chunk-GCU5A5MM.cjs} +3 -3
- package/dist/{chunk-G52TQJBI.js → chunk-HOIQRGSK.js} +1 -1
- package/dist/chunk-L3Q5TVYE.js +659 -0
- package/dist/{chunk-WEMZ4VMC.js → chunk-NG4GFBDR.js} +1 -1
- package/dist/chunk-O5KDIEDH.cjs +735 -0
- package/dist/chunk-RZC4VFB5.cjs +698 -0
- package/dist/chunk-SVRZJEDU.cjs +289 -0
- package/dist/{chunk-3LKGVKQY.cjs → chunk-TFNB2PNI.cjs} +4 -4
- package/dist/chunk-V3KS5PPK.js +342 -0
- package/dist/{chunk-AXSJPWSJ.js → chunk-V56334S3.js} +1 -1
- package/dist/{chunk-EHARM2EN.js → chunk-VUEDYW3M.js} +1 -1
- package/dist/chunk-XYFMSRNJ.js +289 -0
- package/dist/{chunk-56KVKM27.js → chunk-YGOXQSNU.js} +15 -15
- package/dist/{chunk-H7DVR52Z.cjs → chunk-YWBTIWT5.cjs} +3 -3
- package/dist/components/alert/index.cjs +3 -3
- package/dist/components/alert/index.js +2 -2
- package/dist/components/button/index.cjs +3 -3
- package/dist/components/button/index.js +2 -2
- package/dist/components/card/index.cjs +3 -3
- package/dist/components/card/index.js +2 -2
- package/dist/components/checkbox/index.cjs +4 -3
- package/dist/components/checkbox/index.d.cts +4 -5
- package/dist/components/checkbox/index.d.ts +4 -5
- package/dist/components/checkbox/index.js +3 -2
- package/dist/components/chip/index.cjs +3 -3
- package/dist/components/chip/index.js +2 -2
- package/dist/components/input/index.cjs +3 -3
- package/dist/components/input/index.js +2 -2
- package/dist/components/input-group/index.cjs +4 -4
- package/dist/components/input-group/index.js +3 -3
- package/dist/components/input-otp/index.cjs +3 -3
- package/dist/components/input-otp/index.js +2 -2
- package/dist/components/radio/index.cjs +24 -0
- package/dist/components/radio/index.d.cts +1102 -0
- package/dist/components/radio/index.d.ts +1102 -0
- package/dist/components/radio/index.js +24 -0
- package/dist/components/switch/index.cjs +25 -0
- package/dist/components/switch/index.d.cts +1154 -0
- package/dist/components/switch/index.d.ts +1154 -0
- package/dist/components/switch/index.js +25 -0
- package/dist/components/text-area/index.cjs +4 -4
- package/dist/components/text-area/index.js +3 -3
- package/dist/components/typography/index.cjs +3 -3
- package/dist/components/typography/index.js +2 -2
- package/dist/index.cjs +47 -13
- package/dist/index.d.cts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +46 -12
- package/dist/system/index.cjs +7 -3
- package/dist/system/index.d.cts +47 -2
- package/dist/system/index.d.ts +47 -2
- package/dist/system/index.js +6 -2
- package/package.json +21 -1
- package/dist/chunk-63TWVWHG.cjs +0 -584
- package/dist/chunk-LGVIZAB2.js +0 -503
- /package/dist/{chunk-6HXWQ5AU.cjs → chunk-VZGBEGDV.cjs} +0 -0
- /package/dist/{chunk-AKXG43S4.js → chunk-Y4BPKSD3.js} +0 -0
|
@@ -146,10 +146,12 @@ function apply(fns, theme, colors) {
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
// src/system/recipe/radius-axis.ts
|
|
149
|
-
function radiusAxis(
|
|
149
|
+
function radiusAxis(...slots) {
|
|
150
150
|
const axis = {};
|
|
151
151
|
for (const key of RADIUS_KEYS) {
|
|
152
|
-
axis[key] = (theme) => (
|
|
152
|
+
axis[key] = (theme) => Object.fromEntries(
|
|
153
|
+
slots.map((slot) => [slot, { borderRadius: theme.radius[key] }])
|
|
154
|
+
);
|
|
153
155
|
}
|
|
154
156
|
return axis;
|
|
155
157
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useControllableState } from "./chunk-F6W3JQ7K.js";
|
|
2
|
-
import { createRecipe, radiusAxis } from "./chunk-
|
|
2
|
+
import { createRecipe, radiusAxis } from "./chunk-4GTAZM2C.js";
|
|
3
3
|
import { createSlotContext, useStyleProps } from "./chunk-PMO62QK4.js";
|
|
4
4
|
import { useXAUITheme } from "./chunk-A3EGFI6T.js";
|
|
5
5
|
|
|
@@ -39,10 +39,10 @@ function InputOTPCaret({
|
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
41
|
InputOTPCaret.displayName = "XAUI.InputOTP.Caret";
|
|
42
|
-
const
|
|
43
|
-
code: "function
|
|
44
|
-
location: "/home/runner/work/xaui/xaui/packages/native/dist/chunk-
|
|
45
|
-
sourceMap: "{\"version\":3,\"names\":[\"
|
|
42
|
+
const _worklet_14280312420460_init_data = {
|
|
43
|
+
code: "function chunk5RFRASSBJs1(){const{opacity}=this.__closure;return{opacity:opacity.value};}",
|
|
44
|
+
location: "/home/runner/work/xaui/xaui/packages/native/dist/chunk-5RFRASSB.js",
|
|
45
|
+
sourceMap: "{\"version\":3,\"names\":[\"chunk5RFRASSBJs1\",\"opacity\",\"__closure\",\"value\"],\"sources\":[\"/home/runner/work/xaui/xaui/packages/native/dist/chunk-5RFRASSB.js\"],\"mappings\":\"AA4DyC,SAAAA,gBAAMA,CAAA,QAAAC,OAAA,OAAAC,SAAA,CAE3C,MAAO,CAAED,OAAO,CAAEA,OAAO,CAACE,KAAM,CAAC,CACnC\",\"ignoreList\":[]}"
|
|
46
46
|
};
|
|
47
47
|
function BlinkingCaret({
|
|
48
48
|
style
|
|
@@ -55,26 +55,28 @@ function BlinkingCaret({
|
|
|
55
55
|
}), -1, true);
|
|
56
56
|
return () => cancelAnimation(opacity);
|
|
57
57
|
}, [opacity]);
|
|
58
|
-
const animatedStyle = useAnimatedStyle(function
|
|
59
|
-
|
|
58
|
+
const animatedStyle = useAnimatedStyle(function chunk5RFRASSBJs1Factory({
|
|
59
|
+
_worklet_14280312420460_init_data,
|
|
60
60
|
opacity
|
|
61
61
|
}) {
|
|
62
62
|
const _e = [new global.Error(), -2, -27];
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
const chunk5RFRASSBJs1 = function () {
|
|
64
|
+
return {
|
|
65
|
+
opacity: opacity.value
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
chunk5RFRASSBJs1.__closure = {
|
|
67
69
|
opacity
|
|
68
70
|
};
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
return
|
|
71
|
+
chunk5RFRASSBJs1.__workletHash = 14280312420460;
|
|
72
|
+
chunk5RFRASSBJs1.__pluginVersion = "0.7.4";
|
|
73
|
+
chunk5RFRASSBJs1.__initData = _worklet_14280312420460_init_data;
|
|
74
|
+
chunk5RFRASSBJs1.__stackDetails = _e;
|
|
75
|
+
return chunk5RFRASSBJs1;
|
|
74
76
|
}({
|
|
75
|
-
|
|
77
|
+
_worklet_14280312420460_init_data,
|
|
76
78
|
opacity
|
|
77
|
-
}));
|
|
79
|
+
}), [opacity]);
|
|
78
80
|
return /* @__PURE__ */jsx(Animated.View, {
|
|
79
81
|
style: [style, animatedStyle]
|
|
80
82
|
});
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunkFFEUGWVAcjs = require('./chunk-FFEUGWVA.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
@@ -21,7 +21,7 @@ var [TextAreaProvider, useTextArea] = _chunkHUZ4AUM2cjs.createSlotContext.call(v
|
|
|
21
21
|
var _jsxruntime = require('react/jsx-runtime');
|
|
22
22
|
var TextAreaField = _react.forwardRef.call(void 0,
|
|
23
23
|
function TextAreaField2({ style, scrollEnabled, ...props }, ref) {
|
|
24
|
-
const { textAreaStyle, textArea } =
|
|
24
|
+
const { textAreaStyle, textArea } = _chunkFFEUGWVAcjs.useInput.call(void 0, );
|
|
25
25
|
const { rows, maxRows } = useTextArea();
|
|
26
26
|
const [styleProps, rest] = _chunkHUZ4AUM2cjs.useStyleProps.call(void 0, props);
|
|
27
27
|
const height = _react.useMemo.call(void 0, () => {
|
|
@@ -35,7 +35,7 @@ var TextAreaField = _react.forwardRef.call(void 0,
|
|
|
35
35
|
};
|
|
36
36
|
}, [rows, maxRows, textArea]);
|
|
37
37
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
38
|
-
|
|
38
|
+
_chunkFFEUGWVAcjs.InputField,
|
|
39
39
|
{
|
|
40
40
|
ref,
|
|
41
41
|
multiline: true,
|
|
@@ -54,16 +54,16 @@ TextAreaField.displayName = "XAUI.TextArea.Field";
|
|
|
54
54
|
var DEFAULT_ROWS = 3;
|
|
55
55
|
var TextAreaRoot = _react.forwardRef.call(void 0, function TextArea({ rows = DEFAULT_ROWS, maxRows, children, ...props }, ref) {
|
|
56
56
|
const context = _react.useMemo.call(void 0, () => ({ rows, maxRows }), [rows, maxRows]);
|
|
57
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextAreaProvider, { value: context, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
57
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextAreaProvider, { value: context, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFFEUGWVAcjs.InputRoot, { ref, ...props, children }) });
|
|
58
58
|
});
|
|
59
59
|
TextAreaRoot.displayName = "XAUI.TextArea.Root";
|
|
60
60
|
|
|
61
61
|
// src/components/text-area/index.ts
|
|
62
62
|
var TextArea2 = Object.assign(TextAreaRoot, {
|
|
63
|
-
Label:
|
|
63
|
+
Label: _chunkFFEUGWVAcjs.InputLabel,
|
|
64
64
|
Field: TextAreaField,
|
|
65
|
-
Description:
|
|
66
|
-
Error:
|
|
65
|
+
Description: _chunkFFEUGWVAcjs.InputDescription,
|
|
66
|
+
Error: _chunkFFEUGWVAcjs.InputError
|
|
67
67
|
});
|
|
68
68
|
|
|
69
69
|
|
|
@@ -7,7 +7,7 @@ var _chunkIG4Q3WQOcjs = require('./chunk-IG4Q3WQO.cjs');
|
|
|
7
7
|
var _chunkEJQCQPETcjs = require('./chunk-EJQCQPET.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkFNEUOBCVcjs = require('./chunk-FNEUOBCV.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
@@ -218,7 +218,7 @@ function corner(key) {
|
|
|
218
218
|
background: { borderRadius: theme.radius[key] }
|
|
219
219
|
});
|
|
220
220
|
}
|
|
221
|
-
var cardRecipe =
|
|
221
|
+
var cardRecipe = _chunkFNEUOBCVcjs.createRecipe.call(void 0, {
|
|
222
222
|
slots: SLOTS,
|
|
223
223
|
base: (theme) => ({
|
|
224
224
|
root: {
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
// src/system/selection-fill/selection-fill.tsx
|
|
2
|
+
import { View } from "react-native";
|
|
3
|
+
import Animated, { useAnimatedStyle, useDerivedValue, withTiming } from "react-native-reanimated";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
var DURATION = 120;
|
|
6
|
+
var FROM_SCALE = 0.8;
|
|
7
|
+
function SelectionFill({
|
|
8
|
+
isVisible,
|
|
9
|
+
style,
|
|
10
|
+
animation = true,
|
|
11
|
+
children
|
|
12
|
+
}) {
|
|
13
|
+
if (!animation) {
|
|
14
|
+
return isVisible ? /* @__PURE__ */jsx(View, {
|
|
15
|
+
style,
|
|
16
|
+
children
|
|
17
|
+
}) : null;
|
|
18
|
+
}
|
|
19
|
+
return /* @__PURE__ */jsx(AnimatedFill, {
|
|
20
|
+
isVisible,
|
|
21
|
+
style,
|
|
22
|
+
children
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
SelectionFill.displayName = "XAUI.SelectionFill";
|
|
26
|
+
const _worklet_13281565252924_init_data = {
|
|
27
|
+
code: "function chunkBA2DBSANJs1(){const{withTiming,isVisible,DURATION}=this.__closure;return withTiming(isVisible?1:0,{duration:DURATION});}",
|
|
28
|
+
location: "/home/runner/work/xaui/xaui/packages/native/dist/chunk-BA2DBSAN.js",
|
|
29
|
+
sourceMap: "{\"version\":3,\"names\":[\"chunkBA2DBSANJs1\",\"withTiming\",\"isVisible\",\"DURATION\",\"__closure\",\"duration\"],\"sources\":[\"/home/runner/work/xaui/xaui/packages/native/dist/chunk-BA2DBSAN.js\"],\"mappings\":\"AA2BmC,SAAAA,gBAAMA,CAAA,QAAAC,UAAA,CAAAC,SAAA,CAAAC,QAAA,OAAAC,SAAA,CAErC,MAAO,CAAAH,UAAU,CAACC,SAAS,CAAG,CAAC,CAAG,CAAC,CAAE,CAAEG,QAAQ,CAAEF,QAAS,CAAC,CAAC,CAC9D\",\"ignoreList\":[]}"
|
|
30
|
+
};
|
|
31
|
+
const _worklet_2224484425301_init_data = {
|
|
32
|
+
code: "function chunkBA2DBSANJs2(){const{progress,FROM_SCALE}=this.__closure;return{opacity:progress.value,transform:[{scale:FROM_SCALE+(1-FROM_SCALE)*progress.value}]};}",
|
|
33
|
+
location: "/home/runner/work/xaui/xaui/packages/native/dist/chunk-BA2DBSAN.js",
|
|
34
|
+
sourceMap: "{\"version\":3,\"names\":[\"chunkBA2DBSANJs2\",\"progress\",\"FROM_SCALE\",\"__closure\",\"opacity\",\"value\",\"transform\",\"scale\"],\"sources\":[\"/home/runner/work/xaui/xaui/packages/native/dist/chunk-BA2DBSAN.js\"],\"mappings\":\"AA+ByC,SAAAA,gBAAMA,CAAA,QAAAC,QAAA,CAAAC,UAAA,OAAAC,SAAA,CAE3C,MAAO,CACLC,OAAO,CAAEH,QAAQ,CAACI,KAAK,CACvBC,SAAS,CAAE,CAAC,CAAEC,KAAK,CAAEL,UAAU,CAAG,CAAC,CAAC,CAAGA,UAAU,EAAID,QAAQ,CAACI,KAAM,CAAC,CACvE,CAAC,CACH\",\"ignoreList\":[]}"
|
|
35
|
+
};
|
|
36
|
+
function AnimatedFill({
|
|
37
|
+
isVisible,
|
|
38
|
+
style,
|
|
39
|
+
children
|
|
40
|
+
}) {
|
|
41
|
+
const progress = useDerivedValue(function chunkBA2DBSANJs1Factory({
|
|
42
|
+
_worklet_13281565252924_init_data,
|
|
43
|
+
withTiming,
|
|
44
|
+
isVisible,
|
|
45
|
+
DURATION
|
|
46
|
+
}) {
|
|
47
|
+
const _e = [new global.Error(), -4, -27];
|
|
48
|
+
const chunkBA2DBSANJs1 = function () {
|
|
49
|
+
return withTiming(isVisible ? 1 : 0, {
|
|
50
|
+
duration: DURATION
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
chunkBA2DBSANJs1.__closure = {
|
|
54
|
+
withTiming,
|
|
55
|
+
isVisible,
|
|
56
|
+
DURATION
|
|
57
|
+
};
|
|
58
|
+
chunkBA2DBSANJs1.__workletHash = 13281565252924;
|
|
59
|
+
chunkBA2DBSANJs1.__pluginVersion = "0.7.4";
|
|
60
|
+
chunkBA2DBSANJs1.__initData = _worklet_13281565252924_init_data;
|
|
61
|
+
chunkBA2DBSANJs1.__stackDetails = _e;
|
|
62
|
+
return chunkBA2DBSANJs1;
|
|
63
|
+
}({
|
|
64
|
+
_worklet_13281565252924_init_data,
|
|
65
|
+
withTiming,
|
|
66
|
+
isVisible,
|
|
67
|
+
DURATION
|
|
68
|
+
}), [isVisible]);
|
|
69
|
+
const animatedStyle = useAnimatedStyle(function chunkBA2DBSANJs2Factory({
|
|
70
|
+
_worklet_2224484425301_init_data,
|
|
71
|
+
progress,
|
|
72
|
+
FROM_SCALE
|
|
73
|
+
}) {
|
|
74
|
+
const _e = [new global.Error(), -3, -27];
|
|
75
|
+
const chunkBA2DBSANJs2 = function () {
|
|
76
|
+
return {
|
|
77
|
+
opacity: progress.value,
|
|
78
|
+
transform: [{
|
|
79
|
+
scale: FROM_SCALE + (1 - FROM_SCALE) * progress.value
|
|
80
|
+
}]
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
chunkBA2DBSANJs2.__closure = {
|
|
84
|
+
progress,
|
|
85
|
+
FROM_SCALE
|
|
86
|
+
};
|
|
87
|
+
chunkBA2DBSANJs2.__workletHash = 2224484425301;
|
|
88
|
+
chunkBA2DBSANJs2.__pluginVersion = "0.7.4";
|
|
89
|
+
chunkBA2DBSANJs2.__initData = _worklet_2224484425301_init_data;
|
|
90
|
+
chunkBA2DBSANJs2.__stackDetails = _e;
|
|
91
|
+
return chunkBA2DBSANJs2;
|
|
92
|
+
}({
|
|
93
|
+
_worklet_2224484425301_init_data,
|
|
94
|
+
progress,
|
|
95
|
+
FROM_SCALE
|
|
96
|
+
}), [progress]);
|
|
97
|
+
return /* @__PURE__ */jsx(Animated.View, {
|
|
98
|
+
style: [style, animatedStyle],
|
|
99
|
+
children
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
export { SelectionFill };
|
|
@@ -39,7 +39,7 @@ function _optionalChain(ops) {
|
|
|
39
39
|
var _chunkIG4Q3WQOcjs = require('./chunk-IG4Q3WQO.cjs');
|
|
40
40
|
var _chunkEJQCQPETcjs = require('./chunk-EJQCQPET.cjs');
|
|
41
41
|
var _chunkB4W2XNBPcjs = require('./chunk-B4W2XNBP.cjs');
|
|
42
|
-
var
|
|
42
|
+
var _chunkFNEUOBCVcjs = require('./chunk-FNEUOBCV.cjs');
|
|
43
43
|
var _chunkHUZ4AUM2cjs = require('./chunk-HUZ4AUM2.cjs');
|
|
44
44
|
var _chunk57SJ4LJFcjs = require('./chunk-57SJ4LJF.cjs');
|
|
45
45
|
|
|
@@ -110,10 +110,10 @@ function ButtonSpinner({
|
|
|
110
110
|
});
|
|
111
111
|
}
|
|
112
112
|
ButtonSpinner.displayName = "XAUI.Button.Spinner";
|
|
113
|
-
const
|
|
114
|
-
code: "function
|
|
115
|
-
location: "/home/runner/work/xaui/xaui/packages/native/dist/chunk-
|
|
116
|
-
sourceMap: "{\"version\":3,\"names\":[\"
|
|
113
|
+
const _worklet_13197846893142_init_data = {
|
|
114
|
+
code: "function chunkE25JH7W2Cjs1(){const{angle}=this.__closure;return{transform:[{rotate:angle.value+\"deg\"}]};}",
|
|
115
|
+
location: "/home/runner/work/xaui/xaui/packages/native/dist/chunk-E25JH7W2.cjs",
|
|
116
|
+
sourceMap: "{\"version\":3,\"names\":[\"chunkE25JH7W2Cjs1\",\"angle\",\"__closure\",\"transform\",\"rotate\",\"value\"],\"sources\":[\"/home/runner/work/xaui/xaui/packages/native/dist/chunk-E25JH7W2.cjs\"],\"mappings\":\"AAqF6E,SAAAA,iBAAMA,CAAA,QAAAC,KAAA,OAAAC,SAAA,CAE/E,MAAO,CAAEC,SAAS,CAAE,CAAC,CAAEC,MAAM,CAAKH,KAAK,CAACI,KAAK,MAAM,CAAC,CAAE,CAAC,CACzD\",\"ignoreList\":[]}"
|
|
117
117
|
};
|
|
118
118
|
function SpinningRing({
|
|
119
119
|
style
|
|
@@ -126,28 +126,28 @@ function SpinningRing({
|
|
|
126
126
|
}), -1, false);
|
|
127
127
|
return () => _reactnativereanimated.cancelAnimation.call(void 0, angle);
|
|
128
128
|
}, [angle]);
|
|
129
|
-
const animatedStyle = _reactnativereanimated.useAnimatedStyle.call(void 0, function
|
|
130
|
-
|
|
129
|
+
const animatedStyle = _reactnativereanimated.useAnimatedStyle.call(void 0, function chunkE25JH7W2Cjs1Factory({
|
|
130
|
+
_worklet_13197846893142_init_data,
|
|
131
131
|
angle
|
|
132
132
|
}) {
|
|
133
133
|
const _e = [new global.Error(), -2, -27];
|
|
134
|
-
const
|
|
134
|
+
const chunkE25JH7W2Cjs1 = function () {
|
|
135
135
|
return {
|
|
136
136
|
transform: [{
|
|
137
137
|
rotate: `${angle.value}deg`
|
|
138
138
|
}]
|
|
139
139
|
};
|
|
140
140
|
};
|
|
141
|
-
|
|
141
|
+
chunkE25JH7W2Cjs1.__closure = {
|
|
142
142
|
angle
|
|
143
143
|
};
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
return
|
|
144
|
+
chunkE25JH7W2Cjs1.__workletHash = 13197846893142;
|
|
145
|
+
chunkE25JH7W2Cjs1.__pluginVersion = "0.7.4";
|
|
146
|
+
chunkE25JH7W2Cjs1.__initData = _worklet_13197846893142_init_data;
|
|
147
|
+
chunkE25JH7W2Cjs1.__stackDetails = _e;
|
|
148
|
+
return chunkE25JH7W2Cjs1;
|
|
149
149
|
}({
|
|
150
|
-
|
|
150
|
+
_worklet_13197846893142_init_data,
|
|
151
151
|
angle
|
|
152
152
|
}), [angle]);
|
|
153
153
|
return /* @__PURE__ */_jsxruntime.jsx.call(void 0, _reactnativereanimated2.default.View, {
|
|
@@ -231,7 +231,7 @@ function sizeAxis(step) {
|
|
|
231
231
|
spinner: ring(theme, theme.fontSizes[glyph])
|
|
232
232
|
});
|
|
233
233
|
}
|
|
234
|
-
var buttonRecipe =
|
|
234
|
+
var buttonRecipe = _chunkFNEUOBCVcjs.createRecipe.call(void 0, {
|
|
235
235
|
slots: SLOTS,
|
|
236
236
|
base: theme => ({
|
|
237
237
|
root: {
|
|
@@ -307,7 +307,7 @@ var buttonRecipe = _chunkYXVKQMCKcjs.createRecipe.call(void 0, {
|
|
|
307
307
|
radius: "4xl"
|
|
308
308
|
})
|
|
309
309
|
},
|
|
310
|
-
radius:
|
|
310
|
+
radius: _chunkFNEUOBCVcjs.radiusAxis.call(void 0, "root"),
|
|
311
311
|
// A square on a fixed height. No width is computed, and none needs to be.
|
|
312
312
|
isIconOnly: {
|
|
313
313
|
true: () => ({
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
3
|
var _chunk7EIHHOHPcjs = require('./chunk-7EIHHOHP.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
+
var _chunkF6CQ6CBIcjs = require('./chunk-F6CQ6CBI.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
6
9
|
|
|
7
10
|
var _chunkIG4Q3WQOcjs = require('./chunk-IG4Q3WQO.cjs');
|
|
8
11
|
|
|
9
12
|
|
|
10
13
|
|
|
11
|
-
var
|
|
14
|
+
var _chunkFNEUOBCVcjs = require('./chunk-FNEUOBCV.cjs');
|
|
12
15
|
|
|
13
16
|
|
|
14
17
|
|
|
@@ -22,47 +25,21 @@ var _chunk57SJ4LJFcjs = require('./chunk-57SJ4LJF.cjs');
|
|
|
22
25
|
var _react = require('react');
|
|
23
26
|
var _reactnative = require('react-native');
|
|
24
27
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
var _reactnativereanimated = require('react-native-reanimated'); var _reactnativereanimated2 = _interopRequireDefault(_reactnativereanimated);
|
|
29
|
-
|
|
30
28
|
// src/components/checkbox/checkbox.context.ts
|
|
31
29
|
var [CheckboxProvider, useCheckbox] = _chunkHUZ4AUM2cjs.createSlotContext.call(void 0, "Checkbox");
|
|
32
30
|
|
|
33
31
|
// src/components/checkbox/checkbox-indicator.tsx
|
|
34
32
|
var _jsxruntime = require('react/jsx-runtime');
|
|
35
|
-
var DURATION = 120;
|
|
36
|
-
var FROM_SCALE = 0.8;
|
|
37
33
|
var CheckboxIndicator = _react.forwardRef.call(void 0,
|
|
38
34
|
function CheckboxIndicator2({ children, animation = true, style, ...props }, ref) {
|
|
39
|
-
const { indicatorStyle, isSelected, isIndeterminate } = useCheckbox();
|
|
35
|
+
const { indicatorStyle, fillStyle, isSelected, isIndeterminate } = useCheckbox();
|
|
40
36
|
const [styleProps, rest] = _chunkHUZ4AUM2cjs.useStyleProps.call(void 0, props);
|
|
41
37
|
const isFilled = isSelected || isIndeterminate;
|
|
42
38
|
const mark = _nullishCoalesce(children, () => ( (isIndeterminate ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Dash, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Check, {}))));
|
|
43
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactnative.View, { ref, ...rest, style: [indicatorStyle, styleProps, style], children:
|
|
39
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactnative.View, { ref, ...rest, style: [indicatorStyle, styleProps, style], children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkF6CQ6CBIcjs.SelectionFill, { isVisible: isFilled, style: fillStyle, animation, children: mark }) });
|
|
44
40
|
}
|
|
45
41
|
);
|
|
46
42
|
CheckboxIndicator.displayName = "XAUI.Checkbox.Indicator";
|
|
47
|
-
function AnimatedFill({
|
|
48
|
-
isSelected,
|
|
49
|
-
children
|
|
50
|
-
}) {
|
|
51
|
-
const { fillStyle } = useCheckbox();
|
|
52
|
-
const progress = _reactnativereanimated.useDerivedValue.call(void 0,
|
|
53
|
-
() => _reactnativereanimated.withTiming.call(void 0, isSelected ? 1 : 0, { duration: DURATION }),
|
|
54
|
-
[isSelected]
|
|
55
|
-
);
|
|
56
|
-
const animatedStyle = _reactnativereanimated.useAnimatedStyle.call(void 0, () => ({
|
|
57
|
-
opacity: progress.value,
|
|
58
|
-
transform: [{ scale: FROM_SCALE + (1 - FROM_SCALE) * progress.value }]
|
|
59
|
-
}));
|
|
60
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactnativereanimated2.default.View, { style: [fillStyle, animatedStyle], children });
|
|
61
|
-
}
|
|
62
|
-
function StaticFill({ children }) {
|
|
63
|
-
const { fillStyle } = useCheckbox();
|
|
64
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactnative.View, { style: fillStyle, children });
|
|
65
|
-
}
|
|
66
43
|
function Check() {
|
|
67
44
|
const { checkStyle } = useCheckbox();
|
|
68
45
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactnative.View, { style: checkStyle });
|
|
@@ -159,7 +136,7 @@ var SIZES = {
|
|
|
159
136
|
md: { box: 6, radius: "md", gap: 2, label: "md", stroke: 2 },
|
|
160
137
|
lg: { box: 7, radius: "md", gap: 2.5, label: "lg", stroke: 2.5 }
|
|
161
138
|
};
|
|
162
|
-
var checkboxRecipe =
|
|
139
|
+
var checkboxRecipe = _chunkFNEUOBCVcjs.createRecipe.call(void 0, {
|
|
163
140
|
slots: SLOTS,
|
|
164
141
|
base: (theme) => ({
|
|
165
142
|
root: { flexDirection: "row", alignItems: "center", alignSelf: "flex-start" },
|
|
@@ -212,7 +189,7 @@ var checkboxRecipe = _chunkYXVKQMCKcjs.createRecipe.call(void 0, {
|
|
|
212
189
|
md: sizeAxis(SIZES.md),
|
|
213
190
|
lg: sizeAxis(SIZES.lg)
|
|
214
191
|
},
|
|
215
|
-
radius:
|
|
192
|
+
radius: _chunkFNEUOBCVcjs.radiusAxis.call(void 0, "indicator"),
|
|
216
193
|
/**
|
|
217
194
|
* Declared after `size` so its border wins. The resting fill is dropped rather than
|
|
218
195
|
* repainted — `undefined` over a colour is what RN reads as "no background" — because
|
|
@@ -294,7 +271,11 @@ var CheckboxRoot = _react.forwardRef.call(void 0, function Checkbox({
|
|
|
294
271
|
const tint = color && !isInvalid ? checkboxRecipe.tint({ theme, color, selection, states }) : void 0;
|
|
295
272
|
const context = _react.useMemo.call(void 0,
|
|
296
273
|
() => ({
|
|
297
|
-
|
|
274
|
+
// The tint never reaches the box **at rest**, only the two nodes that say the box
|
|
275
|
+
// is ticked. `paint` writes the resting fill from `bg` and the tint pass re-runs
|
|
276
|
+
// `paint`, so applying `tint.indicator` here would paint an unticked box in the
|
|
277
|
+
// caller's brand colour — which reads as ticked, which is the one thing it is not.
|
|
278
|
+
indicatorStyle: styles.indicator,
|
|
298
279
|
fillStyle: tint ? [styles.fill, tint.fill] : styles.fill,
|
|
299
280
|
checkStyle: tint ? [styles.check, tint.check] : styles.check,
|
|
300
281
|
dashStyle: tint ? [styles.dash, tint.dash] : styles.dash,
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
function _interopRequireDefault(obj) {
|
|
7
|
+
return obj && obj.__esModule ? obj : {
|
|
8
|
+
default: obj
|
|
9
|
+
};
|
|
10
|
+
} // src/system/selection-fill/selection-fill.tsx
|
|
11
|
+
var _reactnative = require('react-native');
|
|
12
|
+
var _reactnativereanimated = require('react-native-reanimated');
|
|
13
|
+
var _reactnativereanimated2 = _interopRequireDefault(_reactnativereanimated);
|
|
14
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
15
|
+
var DURATION = 120;
|
|
16
|
+
var FROM_SCALE = 0.8;
|
|
17
|
+
function SelectionFill({
|
|
18
|
+
isVisible,
|
|
19
|
+
style,
|
|
20
|
+
animation = true,
|
|
21
|
+
children
|
|
22
|
+
}) {
|
|
23
|
+
if (!animation) {
|
|
24
|
+
return isVisible ? /* @__PURE__ */_jsxruntime.jsx.call(void 0, _reactnative.View, {
|
|
25
|
+
style,
|
|
26
|
+
children
|
|
27
|
+
}) : null;
|
|
28
|
+
}
|
|
29
|
+
return /* @__PURE__ */_jsxruntime.jsx.call(void 0, AnimatedFill, {
|
|
30
|
+
isVisible,
|
|
31
|
+
style,
|
|
32
|
+
children
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
SelectionFill.displayName = "XAUI.SelectionFill";
|
|
36
|
+
const _worklet_11674708088880_init_data = {
|
|
37
|
+
code: "function chunkF6CQ6CBICjs1(){const{_reactnativereanimated,isVisible,DURATION}=this.__closure;return _reactnativereanimated.withTiming.call(void 0,isVisible?1:0,{duration:DURATION});}",
|
|
38
|
+
location: "/home/runner/work/xaui/xaui/packages/native/dist/chunk-F6CQ6CBI.cjs",
|
|
39
|
+
sourceMap: "{\"version\":3,\"names\":[\"chunkF6CQ6CBICjs1\",\"_reactnativereanimated\",\"isVisible\",\"DURATION\",\"__closure\",\"withTiming\",\"call\",\"duration\"],\"sources\":[\"/home/runner/work/xaui/xaui/packages/native/dist/chunk-F6CQ6CBI.cjs\"],\"mappings\":\"AA2BuE,SAAAA,iBAAMA,CAAA,QAAAC,sBAAA,CAAAC,SAAA,CAAAC,QAAA,OAAAC,SAAA,CAEzE,MAAO,CAAAH,sBAAsB,CAACI,UAAU,CAACC,IAAI,CAAC,IAAK,EAAC,CAAEJ,SAAS,CAAG,CAAC,CAAG,CAAC,CAAE,CAAEK,QAAQ,CAAEJ,QAAS,CAAC,CAAC,CAClG\",\"ignoreList\":[]}"
|
|
40
|
+
};
|
|
41
|
+
const _worklet_9756080511809_init_data = {
|
|
42
|
+
code: "function chunkF6CQ6CBICjs2(){const{progress,FROM_SCALE}=this.__closure;return{opacity:progress.value,transform:[{scale:FROM_SCALE+(1-FROM_SCALE)*progress.value}]};}",
|
|
43
|
+
location: "/home/runner/work/xaui/xaui/packages/native/dist/chunk-F6CQ6CBI.cjs",
|
|
44
|
+
sourceMap: "{\"version\":3,\"names\":[\"chunkF6CQ6CBICjs2\",\"progress\",\"FROM_SCALE\",\"__closure\",\"opacity\",\"value\",\"transform\",\"scale\"],\"sources\":[\"/home/runner/work/xaui/xaui/packages/native/dist/chunk-F6CQ6CBI.cjs\"],\"mappings\":\"AA+B6E,SAAAA,iBAAMA,CAAA,QAAAC,QAAA,CAAAC,UAAA,OAAAC,SAAA,CAE/E,MAAO,CACLC,OAAO,CAAEH,QAAQ,CAACI,KAAK,CACvBC,SAAS,CAAE,CAAC,CAAEC,KAAK,CAAEL,UAAU,CAAG,CAAC,CAAC,CAAGA,UAAU,EAAID,QAAQ,CAACI,KAAM,CAAC,CACvE,CAAC,CACH\",\"ignoreList\":[]}"
|
|
45
|
+
};
|
|
46
|
+
function AnimatedFill({
|
|
47
|
+
isVisible,
|
|
48
|
+
style,
|
|
49
|
+
children
|
|
50
|
+
}) {
|
|
51
|
+
const progress = _reactnativereanimated.useDerivedValue.call(void 0, function chunkF6CQ6CBICjs1Factory({
|
|
52
|
+
_worklet_11674708088880_init_data,
|
|
53
|
+
_reactnativereanimated,
|
|
54
|
+
isVisible,
|
|
55
|
+
DURATION
|
|
56
|
+
}) {
|
|
57
|
+
const _e = [new global.Error(), -4, -27];
|
|
58
|
+
const chunkF6CQ6CBICjs1 = function () {
|
|
59
|
+
return _reactnativereanimated.withTiming.call(void 0, isVisible ? 1 : 0, {
|
|
60
|
+
duration: DURATION
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
chunkF6CQ6CBICjs1.__closure = {
|
|
64
|
+
_reactnativereanimated,
|
|
65
|
+
isVisible,
|
|
66
|
+
DURATION
|
|
67
|
+
};
|
|
68
|
+
chunkF6CQ6CBICjs1.__workletHash = 11674708088880;
|
|
69
|
+
chunkF6CQ6CBICjs1.__pluginVersion = "0.7.4";
|
|
70
|
+
chunkF6CQ6CBICjs1.__initData = _worklet_11674708088880_init_data;
|
|
71
|
+
chunkF6CQ6CBICjs1.__stackDetails = _e;
|
|
72
|
+
return chunkF6CQ6CBICjs1;
|
|
73
|
+
}({
|
|
74
|
+
_worklet_11674708088880_init_data,
|
|
75
|
+
_reactnativereanimated,
|
|
76
|
+
isVisible,
|
|
77
|
+
DURATION
|
|
78
|
+
}), [isVisible]);
|
|
79
|
+
const animatedStyle = _reactnativereanimated.useAnimatedStyle.call(void 0, function chunkF6CQ6CBICjs2Factory({
|
|
80
|
+
_worklet_9756080511809_init_data,
|
|
81
|
+
progress,
|
|
82
|
+
FROM_SCALE
|
|
83
|
+
}) {
|
|
84
|
+
const _e = [new global.Error(), -3, -27];
|
|
85
|
+
const chunkF6CQ6CBICjs2 = function () {
|
|
86
|
+
return {
|
|
87
|
+
opacity: progress.value,
|
|
88
|
+
transform: [{
|
|
89
|
+
scale: FROM_SCALE + (1 - FROM_SCALE) * progress.value
|
|
90
|
+
}]
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
chunkF6CQ6CBICjs2.__closure = {
|
|
94
|
+
progress,
|
|
95
|
+
FROM_SCALE
|
|
96
|
+
};
|
|
97
|
+
chunkF6CQ6CBICjs2.__workletHash = 9756080511809;
|
|
98
|
+
chunkF6CQ6CBICjs2.__pluginVersion = "0.7.4";
|
|
99
|
+
chunkF6CQ6CBICjs2.__initData = _worklet_9756080511809_init_data;
|
|
100
|
+
chunkF6CQ6CBICjs2.__stackDetails = _e;
|
|
101
|
+
return chunkF6CQ6CBICjs2;
|
|
102
|
+
}({
|
|
103
|
+
_worklet_9756080511809_init_data,
|
|
104
|
+
progress,
|
|
105
|
+
FROM_SCALE
|
|
106
|
+
}), [progress]);
|
|
107
|
+
return /* @__PURE__ */_jsxruntime.jsx.call(void 0, _reactnativereanimated2.default.View, {
|
|
108
|
+
style: [style, animatedStyle],
|
|
109
|
+
children
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
exports.SelectionFill = SelectionFill;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkFNEUOBCVcjs = require('./chunk-FNEUOBCV.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
@@ -290,7 +290,7 @@ function insideLabel(step) {
|
|
|
290
290
|
};
|
|
291
291
|
}
|
|
292
292
|
var LABEL_INSIDE_TOP = 1.5;
|
|
293
|
-
var inputRecipe =
|
|
293
|
+
var inputRecipe = _chunkFNEUOBCVcjs.createRecipe.call(void 0, {
|
|
294
294
|
slots: SLOTS,
|
|
295
295
|
base: (theme) => ({
|
|
296
296
|
root: { flexDirection: "column" },
|
|
@@ -365,7 +365,7 @@ var inputRecipe = _chunkYXVKQMCKcjs.createRecipe.call(void 0, {
|
|
|
365
365
|
md: sizeAxis(SIZES.md),
|
|
366
366
|
lg: sizeAxis(SIZES.lg)
|
|
367
367
|
},
|
|
368
|
-
radius:
|
|
368
|
+
radius: _chunkFNEUOBCVcjs.radiusAxis.call(void 0, "field"),
|
|
369
369
|
/**
|
|
370
370
|
* `outside` is the base behaviour, so it adds nothing — it is declared because an
|
|
371
371
|
* axis needs both of its values for the selection to be typed, and because a reader
|
|
@@ -146,10 +146,12 @@ function apply(fns, theme, colors) {
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
// src/system/recipe/radius-axis.ts
|
|
149
|
-
function radiusAxis(
|
|
149
|
+
function radiusAxis(...slots) {
|
|
150
150
|
const axis = {};
|
|
151
151
|
for (const key of RADIUS_KEYS) {
|
|
152
|
-
axis[key] = (theme) => (
|
|
152
|
+
axis[key] = (theme) => Object.fromEntries(
|
|
153
|
+
slots.map((slot) => [slot, { borderRadius: theme.radius[key] }])
|
|
154
|
+
);
|
|
153
155
|
}
|
|
154
156
|
return axis;
|
|
155
157
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkFNEUOBCVcjs = require('./chunk-FNEUOBCV.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
@@ -60,7 +60,7 @@ function metricsOf({ step, weight, family, letterSpacing, chip }) {
|
|
|
60
60
|
var ROLE_AXIS = Object.fromEntries(
|
|
61
61
|
Object.entries(ROLES).map(([name, spec]) => [name, metricsOf(spec)])
|
|
62
62
|
);
|
|
63
|
-
var typographyRecipe =
|
|
63
|
+
var typographyRecipe = _chunkFNEUOBCVcjs.createRecipe.call(void 0, {
|
|
64
64
|
slots: SLOTS,
|
|
65
65
|
variantTokens: VARIANT_TOKENS,
|
|
66
66
|
// Ink only. The chip's fill is a token, not a role, so it belongs to the metrics above —
|