@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.
@@ -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
- iconName,
25
- pictogramName,
15
+ action,
26
16
  body,
27
- action
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
- }), pictogramName && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Pictogram, {
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: [renderNode(body), action && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.BodySmall, {
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","renderNode","body","jsx","BodySmall","testID","children","FeatureInfo","iconName","pictogramName","action","theme","useIOTheme","accessibilityRole","jsxs","HStack","style","alignItems","space","Icon","allowFontScaling","name","size","color","Pictogram","VStack","allowScaleSpacing","flexShrink","asLink","weight","onPress","accessible","importantForAccessibility","accessibilityElementsHidden","label","exports"],"sourceRoot":"../../../../src","sources":["components/featureInfo/FeatureInfo.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAWA,IAAAE,KAAA,GAAAF,OAAA;AAAwC,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AA2BxC,MAAMG,iBAAkC,GAAG,EAAE;AAC7C,MAAMC,sBAA4C,GAAG,EAAE;AAEvD,MAAMC,UAAU,GAAIC,IAA8B,IAAK;EACrD,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5B,oBAAO,IAAAP,WAAA,CAAAQ,GAAA,EAACV,WAAA,CAAAW,SAAS;MAACC,MAAM,EAAC,gBAAgB;MAAAC,QAAA,EAAEJ;IAAI,CAAY,CAAC;EAC9D;EAEA,OAAOA,IAAI;AACb,CAAC;AAEM,MAAMK,WAAW,GAAGA,CAAC;EAC1BC,QAAQ;EACRC,aAAa;EACbP,IAAI;EACJQ;AACgB,CAAC,KAAK;EACtB,MAAMC,KAAK,GAAG,IAAAC,gBAAU,EAAC,CAAC;;EAE1B;AACF;EACE,MAAMC,iBAAiB,GAAGH,MAAM,EAAEG,iBAAiB,IAAI,MAAM;EAE7D,oBACE,IAAAlB,WAAA,CAAAmB,IAAA,EAACrB,WAAA,CAAAsB,MAAM;IAACC,KAAK,EAAE;MAAEC,UAAU,EAAE;IAAS,CAAE;IAACC,KAAK,EAAE,EAAG;IAAAZ,QAAA,GAChDE,QAAQ,iBACP,IAAAb,WAAA,CAAAQ,GAAA,EAACV,WAAA,CAAA0B,IAAI;MACHC,gBAAgB;MAChBC,IAAI,EAAEb,QAAS;MACfc,IAAI,EAAEvB,iBAAkB;MACxBwB,KAAK,EAAEZ,KAAK,CAAC,iBAAiB;IAAE,CACjC,CACF,EACAF,aAAa,iBACZ,IAAAd,WAAA,CAAAQ,GAAA,EAACV,WAAA,CAAA+B,SAAS;MACRJ,gBAAgB;MAChBC,IAAI,EAAEZ,aAAc;MACpBa,IAAI,EAAEtB;IAAuB,CAC9B,CACF,eACD,IAAAL,WAAA,CAAAmB,IAAA,EAACrB,WAAA,CAAAgC,MAAM;MAACC,iBAAiB;MAACR,KAAK,EAAE,CAAE;MAACF,KAAK,EAAE;QAAEW,UAAU,EAAE;MAAE,CAAE;MAAArB,QAAA,GAC1DL,UAAU,CAACC,IAAI,CAAC,EAChBQ,MAAM,iBACL,IAAAf,WAAA,CAAAQ,GAAA,EAACV,WAAA,CAAAW,SAAS;QACRwB,MAAM;QACNC,MAAM,EAAC,UAAU;QACjBC,OAAO,EAAEpB,MAAM,CAACoB,OAAQ;QACxBC,UAAU;QACVC,yBAAyB,EAAE,KAAM;QACjCC,2BAA2B,EAAE,KAAM;QACnCpB,iBAAiB,EAAEA,iBAAkB;QAAAP,QAAA,EAEpCI,MAAM,CAACwB;MAAK,CACJ,CACZ;IAAA,CACK,CAAC;EAAA,CACH,CAAC;AAEb,CAAC;AAACC,OAAA,CAAA5B,WAAA,GAAAA,WAAA","ignoreList":[]}
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
- iconName,
20
- pictogramName,
10
+ action,
21
11
  body,
22
- action
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
- }), pictogramName && /*#__PURE__*/_jsx(Pictogram, {
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: [renderNode(body), action && /*#__PURE__*/_jsx(BodySmall, {
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","renderNode","body","testID","children","FeatureInfo","iconName","pictogramName","action","theme","accessibilityRole","style","alignItems","space","allowFontScaling","name","size","color","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,SAASC,UAAU,QAAQ,YAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AA2BxC,MAAMC,iBAAkC,GAAG,EAAE;AAC7C,MAAMC,sBAA4C,GAAG,EAAE;AAEvD,MAAMC,UAAU,GAAIC,IAA8B,IAAK;EACrD,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5B,oBAAON,IAAA,CAACP,SAAS;MAACc,MAAM,EAAC,gBAAgB;MAAAC,QAAA,EAAEF;IAAI,CAAY,CAAC;EAC9D;EAEA,OAAOA,IAAI;AACb,CAAC;AAED,OAAO,MAAMG,WAAW,GAAGA,CAAC;EAC1BC,QAAQ;EACRC,aAAa;EACbL,IAAI;EACJM;AACgB,CAAC,KAAK;EACtB,MAAMC,KAAK,GAAGf,UAAU,CAAC,CAAC;;EAE1B;AACF;EACE,MAAMgB,iBAAiB,GAAGF,MAAM,EAAEE,iBAAiB,IAAI,MAAM;EAE7D,oBACEZ,KAAA,CAACR,MAAM;IAACqB,KAAK,EAAE;MAAEC,UAAU,EAAE;IAAS,CAAE;IAACC,KAAK,EAAE,EAAG;IAAAT,QAAA,GAChDE,QAAQ,iBACPV,IAAA,CAACL,IAAI;MACHuB,gBAAgB;MAChBC,IAAI,EAAET,QAAS;MACfU,IAAI,EAAEjB,iBAAkB;MACxBkB,KAAK,EAAER,KAAK,CAAC,iBAAiB;IAAE,CACjC,CACF,EACAF,aAAa,iBACZX,IAAA,CAACJ,SAAS;MACRsB,gBAAgB;MAChBC,IAAI,EAAER,aAAc;MACpBS,IAAI,EAAEhB;IAAuB,CAC9B,CACF,eACDF,KAAA,CAACL,MAAM;MAACyB,iBAAiB;MAACL,KAAK,EAAE,CAAE;MAACF,KAAK,EAAE;QAAEQ,UAAU,EAAE;MAAE,CAAE;MAAAf,QAAA,GAC1DH,UAAU,CAACC,IAAI,CAAC,EAChBM,MAAM,iBACLZ,IAAA,CAACP,SAAS;QACR+B,MAAM;QACNC,MAAM,EAAC,UAAU;QACjBC,OAAO,EAAEd,MAAM,CAACc,OAAQ;QACxBC,UAAU;QACVC,yBAAyB,EAAE,KAAM;QACjCC,2BAA2B,EAAE,KAAM;QACnCf,iBAAiB,EAAEA,iBAAkB;QAAAN,QAAA,EAEpCI,MAAM,CAACkB;MAAK,CACJ,CACZ;IAAA,CACK,CAAC;EAAA,CACH,CAAC;AAEb,CAAC","ignoreList":[]}
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, IOPictograms } from "../../components";
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
- pictogramName: IOPictograms;
19
+ pictogramProps: Pick<IOPictogramsProps, "name" | "pictogramStyle">;
19
20
  } | {
20
21
  iconName: IOIcons;
21
- pictogramName?: never;
22
+ pictogramProps?: never;
22
23
  };
23
24
  type FeatureInfoProps = FeatureInfoGraphicProps & PartialFeatureInfo & FeatureInfoActionProps;
24
- export declare const FeatureInfo: ({ iconName, pictogramName, body, action }: FeatureInfoProps) => React.JSX.Element;
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,YAAY,EAIb,MAAM,kBAAkB,CAAC;AAG1B,KAAK,kBAAkB,GAAG;IAExB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,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;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,aAAa,EAAE,YAAY,CAAA;CAAE,GACjD;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjD,KAAK,gBAAgB,GAAG,uBAAuB,GAC7C,kBAAkB,GAClB,sBAAsB,CAAC;AAazB,eAAO,MAAM,WAAW,GAAI,2CAKzB,gBAAgB,sBA0ClB,CAAC"}
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,KAAK,iBAAiB,GAAG;IACvB,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"}
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?: never;
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,KAAK,CAAC;IACd,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"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pagopa/io-app-design-system",
3
- "version": "5.5.1",
3
+ "version": "5.6.0",
4
4
  "description": "The library defining the core components of the design system of @pagopa/io-app",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -6,16 +6,17 @@ import {
6
6
  IOIconSizeScale,
7
7
  IOIcons,
8
8
  IOPictogramSizeScale,
9
- IOPictograms,
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
- | { iconName?: never; pictogramName: IOPictograms }
35
- | { iconName: IOIcons; pictogramName?: never };
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
- iconName,
54
- pictogramName,
49
+ action,
55
50
  body,
56
- action
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
- {pictogramName && (
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
- {renderNode(body)}
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?: never;
62
+ color?: IOColors;
63
63
  asLink: true;
64
64
  onPress: (event: GestureResponderEvent) => void;
65
65
  accessibilityRole?: Extract<AccessibilityRole, "button" | "link">;