@pagopa/io-app-design-system 5.5.1 → 5.6.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/lib/commonjs/components/featureInfo/FeatureInfo.js +34 -15
- package/lib/commonjs/components/featureInfo/FeatureInfo.js.map +1 -1
- package/lib/module/components/featureInfo/FeatureInfo.js +35 -16
- package/lib/module/components/featureInfo/FeatureInfo.js.map +1 -1
- package/lib/typescript/components/featureInfo/FeatureInfo.d.ts +5 -4
- package/lib/typescript/components/featureInfo/FeatureInfo.d.ts.map +1 -1
- package/lib/typescript/components/pictograms/Pictogram.d.ts +1 -2
- package/lib/typescript/components/pictograms/Pictogram.d.ts.map +1 -1
- package/lib/typescript/components/typography/IOText.d.ts +1 -1
- package/lib/typescript/components/typography/IOText.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/featureInfo/FeatureInfo.tsx +44 -18
- package/src/components/pictograms/Pictogram.tsx +1 -1
- package/src/components/typography/IOText.tsx +1 -1
|
@@ -11,26 +11,44 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
const DEFAULT_ICON_SIZE = 24;
|
|
13
13
|
const DEFAULT_PICTOGRAM_SIZE = 48;
|
|
14
|
-
const renderNode = body => {
|
|
15
|
-
if (typeof body === "string") {
|
|
16
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.BodySmall, {
|
|
17
|
-
testID: "infoScreenBody",
|
|
18
|
-
children: body
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
return body;
|
|
22
|
-
};
|
|
23
14
|
const FeatureInfo = ({
|
|
24
|
-
|
|
25
|
-
pictogramName,
|
|
15
|
+
action,
|
|
26
16
|
body,
|
|
27
|
-
|
|
17
|
+
iconName,
|
|
18
|
+
pictogramProps,
|
|
19
|
+
variant = "neutral"
|
|
28
20
|
}) => {
|
|
29
21
|
const theme = (0, _core.useIOTheme)();
|
|
30
22
|
|
|
31
23
|
/* Already defined in the `BodySmall` component as a fallback value,
|
|
32
24
|
but I keep it here to avoid possible future inconsistencies. */
|
|
33
25
|
const accessibilityRole = action?.accessibilityRole ?? "link";
|
|
26
|
+
const variantMap = {
|
|
27
|
+
contrast: {
|
|
28
|
+
action: "white",
|
|
29
|
+
content: "white"
|
|
30
|
+
},
|
|
31
|
+
neutral: {
|
|
32
|
+
action: theme["interactiveElem-default"],
|
|
33
|
+
content: theme["textBody-tertiary"]
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
const {
|
|
37
|
+
action: actionColor,
|
|
38
|
+
content: contentColor
|
|
39
|
+
} = variantMap[variant];
|
|
40
|
+
const FeatureInfoContent = () => {
|
|
41
|
+
if (typeof body === "string") {
|
|
42
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.BodySmall, {
|
|
43
|
+
color: contentColor,
|
|
44
|
+
testID: "infoScreenBody",
|
|
45
|
+
children: body
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
49
|
+
children: body
|
|
50
|
+
});
|
|
51
|
+
};
|
|
34
52
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.HStack, {
|
|
35
53
|
style: {
|
|
36
54
|
alignItems: "center"
|
|
@@ -41,9 +59,9 @@ const FeatureInfo = ({
|
|
|
41
59
|
name: iconName,
|
|
42
60
|
size: DEFAULT_ICON_SIZE,
|
|
43
61
|
color: theme["icon-decorative"]
|
|
44
|
-
}),
|
|
62
|
+
}), pictogramProps && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Pictogram, {
|
|
63
|
+
...pictogramProps,
|
|
45
64
|
allowFontScaling: true,
|
|
46
|
-
name: pictogramName,
|
|
47
65
|
size: DEFAULT_PICTOGRAM_SIZE
|
|
48
66
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.VStack, {
|
|
49
67
|
allowScaleSpacing: true,
|
|
@@ -51,10 +69,11 @@ const FeatureInfo = ({
|
|
|
51
69
|
style: {
|
|
52
70
|
flexShrink: 1
|
|
53
71
|
},
|
|
54
|
-
children: [
|
|
72
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(FeatureInfoContent, {}), action && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.BodySmall, {
|
|
55
73
|
asLink: true,
|
|
56
74
|
weight: "Semibold",
|
|
57
75
|
onPress: action.onPress,
|
|
76
|
+
color: actionColor,
|
|
58
77
|
accessible: true,
|
|
59
78
|
importantForAccessibility: "yes",
|
|
60
79
|
accessibilityElementsHidden: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_components","_core","_jsxRuntime","e","__esModule","default","DEFAULT_ICON_SIZE","DEFAULT_PICTOGRAM_SIZE","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_components","_core","_jsxRuntime","e","__esModule","default","DEFAULT_ICON_SIZE","DEFAULT_PICTOGRAM_SIZE","FeatureInfo","action","body","iconName","pictogramProps","variant","theme","useIOTheme","accessibilityRole","variantMap","contrast","content","neutral","actionColor","contentColor","FeatureInfoContent","jsx","BodySmall","color","testID","children","Fragment","jsxs","HStack","style","alignItems","space","Icon","allowFontScaling","name","size","Pictogram","VStack","allowScaleSpacing","flexShrink","asLink","weight","onPress","accessible","importantForAccessibility","accessibilityElementsHidden","label","exports"],"sourceRoot":"../../../../src","sources":["components/featureInfo/FeatureInfo.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,29 +3,47 @@
|
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { BodySmall, HStack, Icon, Pictogram, VStack } from "../../components";
|
|
5
5
|
import { useIOTheme } from "../../core";
|
|
6
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
7
|
const DEFAULT_ICON_SIZE = 24;
|
|
8
8
|
const DEFAULT_PICTOGRAM_SIZE = 48;
|
|
9
|
-
const renderNode = body => {
|
|
10
|
-
if (typeof body === "string") {
|
|
11
|
-
return /*#__PURE__*/_jsx(BodySmall, {
|
|
12
|
-
testID: "infoScreenBody",
|
|
13
|
-
children: body
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
return body;
|
|
17
|
-
};
|
|
18
9
|
export const FeatureInfo = ({
|
|
19
|
-
|
|
20
|
-
pictogramName,
|
|
10
|
+
action,
|
|
21
11
|
body,
|
|
22
|
-
|
|
12
|
+
iconName,
|
|
13
|
+
pictogramProps,
|
|
14
|
+
variant = "neutral"
|
|
23
15
|
}) => {
|
|
24
16
|
const theme = useIOTheme();
|
|
25
17
|
|
|
26
18
|
/* Already defined in the `BodySmall` component as a fallback value,
|
|
27
19
|
but I keep it here to avoid possible future inconsistencies. */
|
|
28
20
|
const accessibilityRole = action?.accessibilityRole ?? "link";
|
|
21
|
+
const variantMap = {
|
|
22
|
+
contrast: {
|
|
23
|
+
action: "white",
|
|
24
|
+
content: "white"
|
|
25
|
+
},
|
|
26
|
+
neutral: {
|
|
27
|
+
action: theme["interactiveElem-default"],
|
|
28
|
+
content: theme["textBody-tertiary"]
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const {
|
|
32
|
+
action: actionColor,
|
|
33
|
+
content: contentColor
|
|
34
|
+
} = variantMap[variant];
|
|
35
|
+
const FeatureInfoContent = () => {
|
|
36
|
+
if (typeof body === "string") {
|
|
37
|
+
return /*#__PURE__*/_jsx(BodySmall, {
|
|
38
|
+
color: contentColor,
|
|
39
|
+
testID: "infoScreenBody",
|
|
40
|
+
children: body
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
44
|
+
children: body
|
|
45
|
+
});
|
|
46
|
+
};
|
|
29
47
|
return /*#__PURE__*/_jsxs(HStack, {
|
|
30
48
|
style: {
|
|
31
49
|
alignItems: "center"
|
|
@@ -36,9 +54,9 @@ export const FeatureInfo = ({
|
|
|
36
54
|
name: iconName,
|
|
37
55
|
size: DEFAULT_ICON_SIZE,
|
|
38
56
|
color: theme["icon-decorative"]
|
|
39
|
-
}),
|
|
57
|
+
}), pictogramProps && /*#__PURE__*/_jsx(Pictogram, {
|
|
58
|
+
...pictogramProps,
|
|
40
59
|
allowFontScaling: true,
|
|
41
|
-
name: pictogramName,
|
|
42
60
|
size: DEFAULT_PICTOGRAM_SIZE
|
|
43
61
|
}), /*#__PURE__*/_jsxs(VStack, {
|
|
44
62
|
allowScaleSpacing: true,
|
|
@@ -46,10 +64,11 @@ export const FeatureInfo = ({
|
|
|
46
64
|
style: {
|
|
47
65
|
flexShrink: 1
|
|
48
66
|
},
|
|
49
|
-
children: [
|
|
67
|
+
children: [/*#__PURE__*/_jsx(FeatureInfoContent, {}), action && /*#__PURE__*/_jsx(BodySmall, {
|
|
50
68
|
asLink: true,
|
|
51
69
|
weight: "Semibold",
|
|
52
70
|
onPress: action.onPress,
|
|
71
|
+
color: actionColor,
|
|
53
72
|
accessible: true,
|
|
54
73
|
importantForAccessibility: "yes",
|
|
55
74
|
accessibilityElementsHidden: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","BodySmall","HStack","Icon","Pictogram","VStack","useIOTheme","jsx","_jsx","jsxs","_jsxs","DEFAULT_ICON_SIZE","DEFAULT_PICTOGRAM_SIZE","
|
|
1
|
+
{"version":3,"names":["React","BodySmall","HStack","Icon","Pictogram","VStack","useIOTheme","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DEFAULT_ICON_SIZE","DEFAULT_PICTOGRAM_SIZE","FeatureInfo","action","body","iconName","pictogramProps","variant","theme","accessibilityRole","variantMap","contrast","content","neutral","actionColor","contentColor","FeatureInfoContent","color","testID","children","style","alignItems","space","allowFontScaling","name","size","allowScaleSpacing","flexShrink","asLink","weight","onPress","accessible","importantForAccessibility","accessibilityElementsHidden","label"],"sourceRoot":"../../../../src","sources":["components/featureInfo/FeatureInfo.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAqB,OAAO;AAExC,SACEC,SAAS,EACTC,MAAM,EAKNC,IAAI,EACJC,SAAS,EACTC,MAAM,QACD,kBAAkB;AACzB,SAAmBC,UAAU,QAAQ,YAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AA+BlD,MAAMC,iBAAkC,GAAG,EAAE;AAC7C,MAAMC,sBAA4C,GAAG,EAAE;AAEvD,OAAO,MAAMC,WAAW,GAAGA,CAAC;EAC1BC,MAAM;EACNC,IAAI;EACJC,QAAQ;EACRC,cAAc;EACdC,OAAO,GAAG;AACM,CAAC,KAAK;EACtB,MAAMC,KAAK,GAAGf,UAAU,CAAC,CAAC;;EAE1B;AACF;EACE,MAAMgB,iBAAiB,GAAGN,MAAM,EAAEM,iBAAiB,IAAI,MAAM;EAE7D,MAAMC,UAGL,GAAG;IACFC,QAAQ,EAAE;MACRR,MAAM,EAAE,OAAO;MACfS,OAAO,EAAE;IACX,CAAC;IACDC,OAAO,EAAE;MACPV,MAAM,EAAEK,KAAK,CAAC,yBAAyB,CAAC;MACxCI,OAAO,EAAEJ,KAAK,CAAC,mBAAmB;IACpC;EACF,CAAC;EAED,MAAM;IAAEL,MAAM,EAAEW,WAAW;IAAEF,OAAO,EAAEG;EAAa,CAAC,GAAGL,UAAU,CAACH,OAAO,CAAC;EAE1E,MAAMS,kBAAkB,GAAGA,CAAA,KAAM;IAC/B,IAAI,OAAOZ,IAAI,KAAK,QAAQ,EAAE;MAC5B,oBACET,IAAA,CAACP,SAAS;QAAC6B,KAAK,EAAEF,YAAa;QAACG,MAAM,EAAC,gBAAgB;QAAAC,QAAA,EACpDf;MAAI,CACI,CAAC;IAEhB;IAEA,oBAAOT,IAAA,CAAAE,SAAA;MAAAsB,QAAA,EAAGf;IAAI,CAAG,CAAC;EACpB,CAAC;EAED,oBACEL,KAAA,CAACV,MAAM;IAAC+B,KAAK,EAAE;MAAEC,UAAU,EAAE;IAAS,CAAE;IAACC,KAAK,EAAE,EAAG;IAAAH,QAAA,GAChDd,QAAQ,iBACPV,IAAA,CAACL,IAAI;MACHiC,gBAAgB;MAChBC,IAAI,EAAEnB,QAAS;MACfoB,IAAI,EAAEzB,iBAAkB;MACxBiB,KAAK,EAAET,KAAK,CAAC,iBAAiB;IAAE,CACjC,CACF,EACAF,cAAc,iBACbX,IAAA,CAACJ,SAAS;MAAA,GACJe,cAAc;MAClBiB,gBAAgB;MAChBE,IAAI,EAAExB;IAAuB,CAC9B,CACF,eACDF,KAAA,CAACP,MAAM;MAACkC,iBAAiB;MAACJ,KAAK,EAAE,CAAE;MAACF,KAAK,EAAE;QAAEO,UAAU,EAAE;MAAE,CAAE;MAAAR,QAAA,gBAC3DxB,IAAA,CAACqB,kBAAkB,IAAE,CAAC,EACrBb,MAAM,iBACLR,IAAA,CAACP,SAAS;QACRwC,MAAM;QACNC,MAAM,EAAC,UAAU;QACjBC,OAAO,EAAE3B,MAAM,CAAC2B,OAAQ;QACxBb,KAAK,EAAEH,WAAY;QACnBiB,UAAU;QACVC,yBAAyB,EAAE,KAAM;QACjCC,2BAA2B,EAAE,KAAM;QACnCxB,iBAAiB,EAAEA,iBAAkB;QAAAU,QAAA,EAEpChB,MAAM,CAAC+B;MAAK,CACJ,CACZ;IAAA,CACK,CAAC;EAAA,CACH,CAAC;AAEb,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import React, { ReactNode } from "react";
|
|
2
2
|
import { AccessibilityRole, GestureResponderEvent } from "react-native";
|
|
3
|
-
import { IOIcons,
|
|
3
|
+
import { IOIcons, IOPictogramsProps } from "../../components";
|
|
4
4
|
type PartialFeatureInfo = {
|
|
5
5
|
body?: string | ReactNode;
|
|
6
|
+
variant?: "neutral" | "contrast";
|
|
6
7
|
};
|
|
7
8
|
type FeatureInfoActionProps = {
|
|
8
9
|
action: {
|
|
@@ -15,12 +16,12 @@ type FeatureInfoActionProps = {
|
|
|
15
16
|
};
|
|
16
17
|
type FeatureInfoGraphicProps = {
|
|
17
18
|
iconName?: never;
|
|
18
|
-
|
|
19
|
+
pictogramProps: Pick<IOPictogramsProps, "name" | "pictogramStyle">;
|
|
19
20
|
} | {
|
|
20
21
|
iconName: IOIcons;
|
|
21
|
-
|
|
22
|
+
pictogramProps?: never;
|
|
22
23
|
};
|
|
23
24
|
type FeatureInfoProps = FeatureInfoGraphicProps & PartialFeatureInfo & FeatureInfoActionProps;
|
|
24
|
-
export declare const FeatureInfo: ({
|
|
25
|
+
export declare const FeatureInfo: ({ action, body, iconName, pictogramProps, variant }: FeatureInfoProps) => React.JSX.Element;
|
|
25
26
|
export {};
|
|
26
27
|
//# sourceMappingURL=FeatureInfo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureInfo.d.ts","sourceRoot":"","sources":["../../../../src/components/featureInfo/FeatureInfo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAIL,OAAO,EAEP,
|
|
1
|
+
{"version":3,"file":"FeatureInfo.d.ts","sourceRoot":"","sources":["../../../../src/components/featureInfo/FeatureInfo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAIL,OAAO,EAEP,iBAAiB,EAIlB,MAAM,kBAAkB,CAAC;AAG1B,KAAK,kBAAkB,GAAG;IAExB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CAClC,CAAC;AAEF,KAAK,sBAAsB,GACvB;IACE,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;QAChD,iBAAiB,CAAC,EAAE,OAAO,CAAC,iBAAiB,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;KACnE,CAAC;CACH,GACD;IACE,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB,CAAC;AAEN,KAAK,uBAAuB,GACxB;IACE,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC;CACpE,GACD;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAElD,KAAK,gBAAgB,GAAG,uBAAuB,GAC7C,kBAAkB,GAClB,sBAAsB,CAAC;AAKzB,eAAO,MAAM,WAAW,GAAI,qDAMzB,gBAAgB,sBAuElB,CAAC"}
|
|
@@ -70,7 +70,7 @@ export declare const IOPictograms: {
|
|
|
70
70
|
};
|
|
71
71
|
export type IOPictograms = keyof typeof IOPictograms;
|
|
72
72
|
export type IOPictogramSizeScale = 48 | 64 | 72 | 80 | 120 | 180;
|
|
73
|
-
type IOPictogramsProps = {
|
|
73
|
+
export type IOPictogramsProps = {
|
|
74
74
|
name: IOPictograms;
|
|
75
75
|
pictogramStyle?: "default" | "light-content" | "dark-content";
|
|
76
76
|
size?: IOPictogramSizeScale | "100%";
|
|
@@ -92,5 +92,4 @@ export declare const IOPictogramsObject: {
|
|
|
92
92
|
readonly flyingMessage: ({ size, colorValues, ...props }: SVGPictogramProps) => React.JSX.Element;
|
|
93
93
|
};
|
|
94
94
|
export type IOPictogramsObject = keyof typeof IOPictogramsObject;
|
|
95
|
-
export {};
|
|
96
95
|
//# sourceMappingURL=Pictogram.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pictogram.d.ts","sourceRoot":"","sources":["../../../../src/components/pictograms/Pictogram.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAkHvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqExB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,YAAY,CAAC;AAErD,MAAM,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;AAEjE,
|
|
1
|
+
{"version":3,"file":"Pictogram.d.ts","sourceRoot":"","sources":["../../../../src/components/pictograms/Pictogram.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAkHvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqExB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,YAAY,CAAC;AAErD,MAAM,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;AAEjE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,YAAY,CAAC;IAInB,cAAc,CAAC,EAAE,SAAS,GAAG,eAAe,GAAG,cAAc,CAAC;IAC9D,IAAI,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAAC;IACrC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AASF,eAAO,MAAM,SAAS,GAAI,4DAMvB,iBAAiB,sBAuCnB,CAAC;AAUF,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACnC,OAAO,GACP,SAAS,GACT,WAAW,GACX,SAAS,GACT,MAAM,GACN,UAAU,GACV,MAAM,GACN,UAAU,GACV,UAAU,GACV,SAAS,GACT,KAAK,GACL,UAAU,GACV,aAAa,GACb,eAAe,GACf,iBAAiB,GACjB,eAAe,GACf,cAAc,GACd,SAAS,GACT,eAAe,GACf,cAAc,GACd,WAAW,GACX,cAAc,GACd,UAAU,GACV,cAAc,GACd,MAAM,GACN,SAAS,GACT,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,SAAS,GACT,YAAY,GACZ,cAAc,GACd,MAAM,GACN,KAAK,GACL,cAAc,GACd,MAAM,GACN,QAAQ,GACR,gBAAgB,GAChB,UAAU,GACV,UAAU,GACV,YAAY,GACZ,gBAAgB,EAClB,YAAY,CACb,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE;KAC7B,GAAG,IAAI,iBAAiB,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,iBAAiB,KAAK,GAAG,CAAC,OAAO;CA2CzE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,4DAM5B,iBAAiB,sBAuCnB,CAAC;AAOF,eAAO,MAAM,kBAAkB;;;;;;;;CAQrB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,kBAAkB,CAAC"}
|
|
@@ -35,7 +35,7 @@ export type IOTextProps = IOTextBaseProps & IOTextExcludedProps;
|
|
|
35
35
|
* can be used as links
|
|
36
36
|
*/
|
|
37
37
|
export type TypographicStyleAsLinkProps = {
|
|
38
|
-
color?:
|
|
38
|
+
color?: IOColors;
|
|
39
39
|
asLink: true;
|
|
40
40
|
onPress: (event: GestureResponderEvent) => void;
|
|
41
41
|
accessibilityRole?: Extract<AccessibilityRole, "button" | "link">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IOText.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/IOText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,cAAc,EAAuB,MAAM,OAAO,CAAC;AACnE,OAAO,EACL,iBAAiB,EAEjB,qBAAqB,EACrB,IAAI,EACJ,SAAS,EACT,IAAI,EACL,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,QAAQ,EAAc,MAAM,YAAY,CAAC;AAElD,OAAO,EACL,YAAY,EACZ,YAAY,EAGb,MAAM,mBAAmB,CAAC;AAE3B;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,SAAS,EACT,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,CACtE,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,WAAW,EACX,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,CAC5E,GAAG;IAAE,SAAS,CAAC,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG;IACrD,KAAK,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF;;;GAGG;AACH,KAAK,eAAe,GAAG;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,KAAK,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAEtE,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,mBAAmB,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GACnC;IACE,KAAK,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"IOText.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/IOText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,cAAc,EAAuB,MAAM,OAAO,CAAC;AACnE,OAAO,EACL,iBAAiB,EAEjB,qBAAqB,EACrB,IAAI,EACJ,SAAS,EACT,IAAI,EACL,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,QAAQ,EAAc,MAAM,YAAY,CAAC;AAElD,OAAO,EACL,YAAY,EACZ,YAAY,EAGb,MAAM,mBAAmB,CAAC;AAE3B;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,SAAS,EACT,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,CACtE,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,WAAW,EACX,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,CAC5E,GAAG;IAAE,SAAS,CAAC,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG;IACrD,KAAK,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF;;;GAGG;AACH,KAAK,eAAe,GAAG;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,KAAK,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAEtE,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,mBAAmB,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GACnC;IACE,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAChD,iBAAiB,CAAC,EAAE,OAAO,CAAC,iBAAiB,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;CACnE,GACD;IAAE,KAAK,CAAC,EAAE,QAAQ,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAezC;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,oGAoElB,CAAC;AAEF,eAAO,MAAM,cAAc,4IAA2C,CAAC"}
|
package/package.json
CHANGED
|
@@ -6,16 +6,17 @@ import {
|
|
|
6
6
|
IOIconSizeScale,
|
|
7
7
|
IOIcons,
|
|
8
8
|
IOPictogramSizeScale,
|
|
9
|
-
|
|
9
|
+
IOPictogramsProps,
|
|
10
10
|
Icon,
|
|
11
11
|
Pictogram,
|
|
12
12
|
VStack
|
|
13
13
|
} from "../../components";
|
|
14
|
-
import { useIOTheme } from "../../core";
|
|
14
|
+
import { IOColors, useIOTheme } from "../../core";
|
|
15
15
|
|
|
16
16
|
type PartialFeatureInfo = {
|
|
17
17
|
// Necessary to render main body with different formatting
|
|
18
18
|
body?: string | ReactNode;
|
|
19
|
+
variant?: "neutral" | "contrast";
|
|
19
20
|
};
|
|
20
21
|
|
|
21
22
|
type FeatureInfoActionProps =
|
|
@@ -31,8 +32,11 @@ type FeatureInfoActionProps =
|
|
|
31
32
|
};
|
|
32
33
|
|
|
33
34
|
type FeatureInfoGraphicProps =
|
|
34
|
-
| {
|
|
35
|
-
|
|
35
|
+
| {
|
|
36
|
+
iconName?: never;
|
|
37
|
+
pictogramProps: Pick<IOPictogramsProps, "name" | "pictogramStyle">;
|
|
38
|
+
}
|
|
39
|
+
| { iconName: IOIcons; pictogramProps?: never };
|
|
36
40
|
|
|
37
41
|
type FeatureInfoProps = FeatureInfoGraphicProps &
|
|
38
42
|
PartialFeatureInfo &
|
|
@@ -41,19 +45,12 @@ type FeatureInfoProps = FeatureInfoGraphicProps &
|
|
|
41
45
|
const DEFAULT_ICON_SIZE: IOIconSizeScale = 24;
|
|
42
46
|
const DEFAULT_PICTOGRAM_SIZE: IOPictogramSizeScale = 48;
|
|
43
47
|
|
|
44
|
-
const renderNode = (body: FeatureInfoProps["body"]) => {
|
|
45
|
-
if (typeof body === "string") {
|
|
46
|
-
return <BodySmall testID="infoScreenBody">{body}</BodySmall>;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
return body;
|
|
50
|
-
};
|
|
51
|
-
|
|
52
48
|
export const FeatureInfo = ({
|
|
53
|
-
|
|
54
|
-
pictogramName,
|
|
49
|
+
action,
|
|
55
50
|
body,
|
|
56
|
-
|
|
51
|
+
iconName,
|
|
52
|
+
pictogramProps,
|
|
53
|
+
variant = "neutral"
|
|
57
54
|
}: FeatureInfoProps) => {
|
|
58
55
|
const theme = useIOTheme();
|
|
59
56
|
|
|
@@ -61,6 +58,34 @@ export const FeatureInfo = ({
|
|
|
61
58
|
but I keep it here to avoid possible future inconsistencies. */
|
|
62
59
|
const accessibilityRole = action?.accessibilityRole ?? "link";
|
|
63
60
|
|
|
61
|
+
const variantMap: Record<
|
|
62
|
+
NonNullable<FeatureInfoProps["variant"]>,
|
|
63
|
+
{ action: IOColors; content: IOColors }
|
|
64
|
+
> = {
|
|
65
|
+
contrast: {
|
|
66
|
+
action: "white",
|
|
67
|
+
content: "white"
|
|
68
|
+
},
|
|
69
|
+
neutral: {
|
|
70
|
+
action: theme["interactiveElem-default"],
|
|
71
|
+
content: theme["textBody-tertiary"]
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const { action: actionColor, content: contentColor } = variantMap[variant];
|
|
76
|
+
|
|
77
|
+
const FeatureInfoContent = () => {
|
|
78
|
+
if (typeof body === "string") {
|
|
79
|
+
return (
|
|
80
|
+
<BodySmall color={contentColor} testID="infoScreenBody">
|
|
81
|
+
{body}
|
|
82
|
+
</BodySmall>
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return <>{body}</>;
|
|
87
|
+
};
|
|
88
|
+
|
|
64
89
|
return (
|
|
65
90
|
<HStack style={{ alignItems: "center" }} space={24}>
|
|
66
91
|
{iconName && (
|
|
@@ -71,20 +96,21 @@ export const FeatureInfo = ({
|
|
|
71
96
|
color={theme["icon-decorative"]}
|
|
72
97
|
/>
|
|
73
98
|
)}
|
|
74
|
-
{
|
|
99
|
+
{pictogramProps && (
|
|
75
100
|
<Pictogram
|
|
101
|
+
{...pictogramProps}
|
|
76
102
|
allowFontScaling
|
|
77
|
-
name={pictogramName}
|
|
78
103
|
size={DEFAULT_PICTOGRAM_SIZE}
|
|
79
104
|
/>
|
|
80
105
|
)}
|
|
81
106
|
<VStack allowScaleSpacing space={4} style={{ flexShrink: 1 }}>
|
|
82
|
-
|
|
107
|
+
<FeatureInfoContent />
|
|
83
108
|
{action && (
|
|
84
109
|
<BodySmall
|
|
85
110
|
asLink
|
|
86
111
|
weight="Semibold"
|
|
87
112
|
onPress={action.onPress}
|
|
113
|
+
color={actionColor}
|
|
88
114
|
accessible
|
|
89
115
|
importantForAccessibility={"yes"}
|
|
90
116
|
accessibilityElementsHidden={false}
|
|
@@ -189,7 +189,7 @@ export type IOPictograms = keyof typeof IOPictograms;
|
|
|
189
189
|
|
|
190
190
|
export type IOPictogramSizeScale = 48 | 64 | 72 | 80 | 120 | 180;
|
|
191
191
|
|
|
192
|
-
type IOPictogramsProps = {
|
|
192
|
+
export type IOPictogramsProps = {
|
|
193
193
|
name: IOPictograms;
|
|
194
194
|
/* Not too happy about the API choice,
|
|
195
195
|
but at least we have the same <StatusBar …>
|
|
@@ -59,7 +59,7 @@ export type IOTextProps = IOTextBaseProps & IOTextExcludedProps;
|
|
|
59
59
|
*/
|
|
60
60
|
export type TypographicStyleAsLinkProps =
|
|
61
61
|
| {
|
|
62
|
-
color?:
|
|
62
|
+
color?: IOColors;
|
|
63
63
|
asLink: true;
|
|
64
64
|
onPress: (event: GestureResponderEvent) => void;
|
|
65
65
|
accessibilityRole?: Extract<AccessibilityRole, "button" | "link">;
|