@pagopa/io-app-design-system 6.0.4 → 6.0.5

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.
Files changed (21) hide show
  1. package/lib/commonjs/components/claimsSelector/__test__/__snapshots__/ClaimsSelector.test.tsx.snap +7 -5
  2. package/lib/commonjs/components/listitems/ListItemInfo.js +86 -26
  3. package/lib/commonjs/components/listitems/ListItemInfo.js.map +1 -1
  4. package/lib/commonjs/components/listitems/__test__/__snapshots__/listitem.test.tsx.snap +6 -4
  5. package/lib/commonjs/components/loadingSpinner/LoadingSpinner.js +30 -23
  6. package/lib/commonjs/components/loadingSpinner/LoadingSpinner.js.map +1 -1
  7. package/lib/module/components/claimsSelector/__test__/__snapshots__/ClaimsSelector.test.tsx.snap +7 -5
  8. package/lib/module/components/listitems/ListItemInfo.js +87 -27
  9. package/lib/module/components/listitems/ListItemInfo.js.map +1 -1
  10. package/lib/module/components/listitems/__test__/__snapshots__/listitem.test.tsx.snap +6 -4
  11. package/lib/module/components/loadingSpinner/LoadingSpinner.js +30 -24
  12. package/lib/module/components/loadingSpinner/LoadingSpinner.js.map +1 -1
  13. package/lib/typescript/components/listitems/ListItemInfo.d.ts +29 -0
  14. package/lib/typescript/components/listitems/ListItemInfo.d.ts.map +1 -1
  15. package/lib/typescript/components/loadingSpinner/LoadingSpinner.d.ts +2 -3
  16. package/lib/typescript/components/loadingSpinner/LoadingSpinner.d.ts.map +1 -1
  17. package/package.json +1 -1
  18. package/src/components/claimsSelector/__test__/__snapshots__/ClaimsSelector.test.tsx.snap +7 -5
  19. package/src/components/listitems/ListItemInfo.tsx +124 -49
  20. package/src/components/listitems/__test__/__snapshots__/listitem.test.tsx.snap +6 -4
  21. package/src/components/loadingSpinner/LoadingSpinner.tsx +26 -33
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { Platform, Pressable, View } from "react-native";
3
+ import { Pressable, View } from "react-native";
4
4
  import Animated from "react-native-reanimated";
5
5
  import { useIOTheme } from "../../context";
6
6
  import { IOListItemStyles, IOListItemVisualParams } from "../../core";
@@ -23,12 +23,12 @@ const EndElementComponent = ({
23
23
  return /*#__PURE__*/_jsx(IOButton, {
24
24
  variant: "link",
25
25
  ...componentProps,
26
- accessibilityLabel: `${componentProps.accessibilityLabel ?? componentProps.label}`
26
+ accessibilityLabel: componentProps.accessibilityLabel ?? componentProps.label
27
27
  });
28
28
  case "iconButton":
29
29
  return /*#__PURE__*/_jsx(IconButton, {
30
30
  ...componentProps,
31
- accessibilityLabel: `${componentProps.accessibilityLabel}`
31
+ accessibilityLabel: componentProps.accessibilityLabel
32
32
  });
33
33
  case "badge":
34
34
  return /*#__PURE__*/_jsx(Badge, {
@@ -46,7 +46,9 @@ const ListItemInfoContent = ({
46
46
  numberOfLines,
47
47
  reversed,
48
48
  topElement,
49
- endElement
49
+ endElement,
50
+ hasInteractiveElements,
51
+ listItemAccessibilityLabel
50
52
  }) => {
51
53
  const theme = useIOTheme();
52
54
  const {
@@ -66,7 +68,9 @@ const ListItemInfoContent = ({
66
68
  flex: 1
67
69
  },
68
70
  children: /*#__PURE__*/_jsxs(View, {
69
- accessible: Platform.OS === "ios",
71
+ accessible: hasInteractiveElements,
72
+ accessibilityLabel: hasInteractiveElements ? listItemAccessibilityLabel : undefined,
73
+ importantForAccessibility: hasInteractiveElements ? "yes" : "no-hide-descendants",
70
74
  style: {
71
75
  flexDirection: reversed ? "column-reverse" : "column"
72
76
  },
@@ -90,12 +94,44 @@ const ListItemInfoContent = ({
90
94
  }) : value]
91
95
  })
92
96
  }), endElement && /*#__PURE__*/_jsx(View, {
97
+ accessible: false,
98
+ importantForAccessibility: hasInteractiveElements ? "auto" : "no-hide-descendants",
93
99
  children: /*#__PURE__*/_jsx(EndElementComponent, {
94
100
  ...endElement
95
101
  })
96
102
  })]
97
103
  });
98
104
  };
105
+
106
+ /**
107
+ * ListItemInfo component displays information in a list item format with optional icons,
108
+ * labels, values, and end elements (buttons, badges).
109
+ *
110
+ * @remarks
111
+ * **Accessibility for Interactive Elements:**
112
+ * When using interactive end elements (`buttonLink` or `iconButton`), you must provide
113
+ * an appropriate `accessibilityLabel` directly to the interactive component props.
114
+ * This ensures that screen reader users can understand the relationship between the
115
+ * list item content and the action that the interactive element triggers.
116
+ *
117
+ * Example:
118
+ * ```tsx
119
+ * <ListItemInfo
120
+ * label="Email"
121
+ * value="user@example.com"
122
+ * endElement={{
123
+ * type: "buttonLink",
124
+ * componentProps: {
125
+ * label: "Edit",
126
+ * accessibilityLabel: "Edit email address"
127
+ * }
128
+ * }}
129
+ * />
130
+ * ```
131
+ *
132
+ * The design system cannot enforce this pattern automatically, so it's the responsibility
133
+ * of the implementing software engineer to ensure proper accessibility labels are set.
134
+ */
99
135
  export const ListItemInfo = ({
100
136
  value,
101
137
  label,
@@ -122,8 +158,31 @@ export const ListItemInfo = ({
122
158
  scaleAnimatedStyle,
123
159
  backgroundAnimatedStyle
124
160
  } = useListItemAnimation();
161
+
162
+ /**
163
+ * A11Y Support: Two different combinations based on interactive elements
164
+ *
165
+ * 1. NO interactive elements (or just badge):
166
+ * - The outer container is accessible and receives the complete accessibility label
167
+ * - This allows the entire list item to be treated as a single accessibility element
168
+ *
169
+ * 2. WITH interactive elements (buttonLink or iconButton):
170
+ * - The outer container is NOT accessible
171
+ * - The inner content becomes accessible with its label
172
+ * - The interactive element is separately accessible with its own label
173
+ * - This allows screen readers to navigate between the content and the action separately
174
+ */
175
+ const hasInteractiveElements = endElement?.type === "buttonLink" || endElement?.type === "iconButton";
125
176
  const componentValueToAccessibility = typeof value === "string" ? value : "";
126
- const listItemAccessibilityLabel = accessibilityLabel ?? (label ? `${label}; ${componentValueToAccessibility}` : componentValueToAccessibility);
177
+ const topBadgeText = topElement?.type === "badge" ? topElement.componentProps.text ?? "" : "";
178
+ const endBadgeText = endElement?.type === "badge" ? endElement.componentProps.text ?? "" : "";
179
+
180
+ /**
181
+ * Build text in VISUAL ORDER
182
+ */
183
+ const mainTextParts = reversed ? [componentValueToAccessibility, label] : [label, componentValueToAccessibility];
184
+ const textParts = [topBadgeText, ...mainTextParts, endBadgeText];
185
+ const listItemAccessibilityLabel = accessibilityLabel ?? textParts.filter(Boolean).join("; ");
127
186
  const contentProps = {
128
187
  icon,
129
188
  paymentLogoIcon,
@@ -132,20 +191,22 @@ export const ListItemInfo = ({
132
191
  numberOfLines,
133
192
  reversed,
134
193
  topElement,
135
- endElement
194
+ endElement,
195
+ hasInteractiveElements,
196
+ listItemAccessibilityLabel
136
197
  };
137
198
  if (onLongPress) {
138
199
  return /*#__PURE__*/_jsx(Pressable, {
139
200
  onLongPress: onLongPress,
140
201
  testID: testID,
141
- accessible: !endElement,
142
- onPressIn: onPressIn,
143
- onPressOut: onPressOut,
144
- onTouchEnd: onPressOut,
202
+ accessible: true,
145
203
  accessibilityRole: "button",
146
204
  accessibilityLabel: listItemAccessibilityLabel,
147
205
  accessibilityActions: accessibilityActions,
148
206
  onAccessibilityAction: onAccessibilityAction,
207
+ onPressIn: onPressIn,
208
+ onPressOut: onPressOut,
209
+ onTouchEnd: onPressOut,
149
210
  children: /*#__PURE__*/_jsx(Animated.View, {
150
211
  style: [IOListItemStyles.listItem, backgroundAnimatedStyle],
151
212
  children: /*#__PURE__*/_jsx(Animated.View, {
@@ -158,22 +219,21 @@ export const ListItemInfo = ({
158
219
  })
159
220
  })
160
221
  });
161
- } else {
162
- return /*#__PURE__*/_jsx(View, {
163
- style: IOListItemStyles.listItem,
164
- testID: testID,
165
- accessible: !endElement,
166
- accessibilityLabel: listItemAccessibilityLabel,
167
- accessibilityRole: accessibilityRole,
168
- children: /*#__PURE__*/_jsx(View, {
169
- style: [IOListItemStyles.listItemInner, {
170
- columnGap: IOListItemVisualParams.iconMargin * dynamicFontScale * spacingScaleMultiplier
171
- }],
172
- children: /*#__PURE__*/_jsx(ListItemInfoContent, {
173
- ...contentProps
174
- })
175
- })
176
- });
177
222
  }
223
+ return /*#__PURE__*/_jsx(View, {
224
+ style: IOListItemStyles.listItem,
225
+ testID: testID,
226
+ accessible: !hasInteractiveElements,
227
+ accessibilityLabel: hasInteractiveElements ? undefined : listItemAccessibilityLabel,
228
+ accessibilityRole: hasInteractiveElements ? undefined : accessibilityRole,
229
+ children: /*#__PURE__*/_jsx(View, {
230
+ style: [IOListItemStyles.listItemInner, {
231
+ columnGap: IOListItemVisualParams.iconMargin * dynamicFontScale * spacingScaleMultiplier
232
+ }],
233
+ children: /*#__PURE__*/_jsx(ListItemInfoContent, {
234
+ ...contentProps
235
+ })
236
+ })
237
+ });
178
238
  };
179
239
  //# sourceMappingURL=ListItemInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","Pressable","View","Animated","useIOTheme","IOListItemStyles","IOListItemVisualParams","useListItemAnimation","useIOFontDynamicScale","Badge","IOButton","IconButton","LogoPaymentWithFallback","Icon","VSpacer","BodySmall","H6","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","PAYMENT_LOGO_SIZE","EndElementComponent","type","componentProps","variant","accessibilityLabel","label","ListItemInfoContent","icon","paymentLogoIcon","value","numberOfLines","reversed","topElement","endElement","theme","hugeFontEnabled","children","allowFontScaling","name","color","size","iconSize","brand","style","flex","accessible","OS","flexDirection","alignSelf","weight","ListItemInfo","accessibilityRole","accessibilityActions","onAccessibilityAction","onLongPress","testID","dynamicFontScale","spacingScaleMultiplier","onPressIn","onPressOut","scaleAnimatedStyle","backgroundAnimatedStyle","componentValueToAccessibility","listItemAccessibilityLabel","contentProps","onTouchEnd","listItem","listItemInner","columnGap","iconMargin"],"sourceRoot":"../../../../src","sources":["components/listitems/ListItemInfo.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Pressable","View","Animated","useIOTheme","IOListItemStyles","IOListItemVisualParams","useListItemAnimation","useIOFontDynamicScale","Badge","IOButton","IconButton","LogoPaymentWithFallback","Icon","VSpacer","BodySmall","H6","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","PAYMENT_LOGO_SIZE","EndElementComponent","type","componentProps","variant","accessibilityLabel","label","ListItemInfoContent","icon","paymentLogoIcon","value","numberOfLines","reversed","topElement","endElement","hasInteractiveElements","listItemAccessibilityLabel","theme","hugeFontEnabled","children","allowFontScaling","name","color","size","iconSize","brand","style","flex","accessible","undefined","importantForAccessibility","flexDirection","alignSelf","weight","ListItemInfo","accessibilityRole","accessibilityActions","onAccessibilityAction","onLongPress","testID","dynamicFontScale","spacingScaleMultiplier","onPressIn","onPressOut","scaleAnimatedStyle","backgroundAnimatedStyle","componentValueToAccessibility","topBadgeText","text","endBadgeText","mainTextParts","textParts","filter","Boolean","join","contentProps","onTouchEnd","listItem","listItemInner","columnGap","iconMargin"],"sourceRoot":"../../../../src","sources":["components/listitems/ListItemInfo.tsx"],"mappings":"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","ignoreList":[]}
@@ -190,7 +190,8 @@ exports[`Test List Item Components - Experimental Enabled ListItemInfo Snapshot
190
190
  }
191
191
  >
192
192
  <View
193
- accessible={true}
193
+ accessible={false}
194
+ importantForAccessibility="no-hide-descendants"
194
195
  style={
195
196
  {
196
197
  "flexDirection": "column",
@@ -1379,7 +1380,7 @@ exports[`Test List Item Components - Experimental Enabled ListItemRadioWithAmou
1379
1380
  <RNSVGPath
1380
1381
  d="m7 12 4 4 7-7"
1381
1382
  fill={null}
1382
- onLayout={[Function]}
1383
+ onSvgLayout={[Function]}
1383
1384
  propList={
1384
1385
  [
1385
1386
  "fill",
@@ -2308,7 +2309,8 @@ exports[`Test List Item Components ListItemInfo Snapshot 1`] = `
2308
2309
  }
2309
2310
  >
2310
2311
  <View
2311
- accessible={true}
2312
+ accessible={false}
2313
+ importantForAccessibility="no-hide-descendants"
2312
2314
  style={
2313
2315
  {
2314
2316
  "flexDirection": "column",
@@ -3497,7 +3499,7 @@ exports[`Test List Item Components ListItemRadioWithAmount Snapshot 1`] = `
3497
3499
  <RNSVGPath
3498
3500
  d="m7 12 4 4 7-7"
3499
3501
  fill={null}
3500
- onLayout={[Function]}
3502
+ onSvgLayout={[Function]}
3501
3503
  propList={
3502
3504
  [
3503
3505
  "fill",
@@ -1,21 +1,31 @@
1
1
  "use strict";
2
2
 
3
- import { useEffect } from "react";
3
+ import { useId } from "react";
4
4
  import { View } from "react-native";
5
- import Animated, { Easing, useAnimatedStyle, useSharedValue, withRepeat, withTiming } from "react-native-reanimated";
5
+ import Animated from "react-native-reanimated";
6
6
  import Svg, { Defs, G, LinearGradient, Path, Stop } from "react-native-svg";
7
7
  import { useIOTheme } from "../../context";
8
8
  import { IOColors } from "../../core/IOColors";
9
9
 
10
10
  /**
11
- * Size scale, 76 is kept for backward compatibility with the old design system but 48 is enough for the new one.
12
- * It will be removed in the future.
11
+ * Size scale
13
12
  */
14
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ const spinKeyframes = {
15
+ from: {
16
+ transform: [{
17
+ rotateZ: "0deg"
18
+ }]
19
+ },
20
+ to: {
21
+ transform: [{
22
+ rotateZ: "360deg"
23
+ }]
24
+ }
25
+ };
15
26
  const strokeMap = {
16
27
  24: 3,
17
- 48: 5,
18
- 76: 7
28
+ 48: 5
19
29
  };
20
30
  export const LoadingSpinner = ({
21
31
  color: customColor,
@@ -26,21 +36,11 @@ export const LoadingSpinner = ({
26
36
  testID = "LoadingSpinnerTestID"
27
37
  }) => {
28
38
  const theme = useIOTheme();
29
- const rotation = useSharedValue(0);
39
+ const id = useId();
30
40
  const stroke = strokeMap[size];
31
41
  const color = customColor ?? IOColors[theme["interactiveElem-default"]];
32
- useEffect(() => {
33
- // eslint-disable-next-line functional/immutable-data
34
- rotation.value = withRepeat(withTiming(360, {
35
- duration: durationMs,
36
- easing: Easing.linear
37
- }), -1, false);
38
- }, [durationMs, rotation]);
39
- const animatedStyle = useAnimatedStyle(() => ({
40
- transform: [{
41
- rotateZ: `${rotation.value}deg`
42
- }]
43
- }));
42
+ const secondHalfId = `${id}-secondHalf`;
43
+ const firstHalfId = `${id}-firstHalf`;
44
44
  return /*#__PURE__*/_jsx(View, {
45
45
  style: {
46
46
  width: size,
@@ -53,7 +53,13 @@ export const LoadingSpinner = ({
53
53
  testID: testID,
54
54
  children: /*#__PURE__*/_jsx(Animated.View, {
55
55
  testID: "LoadingSpinnerAnimatedTestID",
56
- style: animatedStyle,
56
+ style: {
57
+ animationName: spinKeyframes,
58
+ animationDuration: durationMs,
59
+ animationIterationCount: "infinite",
60
+ animationTimingFunction: "linear",
61
+ transformOrigin: "center"
62
+ },
57
63
  children: /*#__PURE__*/_jsxs(Svg, {
58
64
  width: size,
59
65
  height: size,
@@ -61,7 +67,7 @@ export const LoadingSpinner = ({
61
67
  fill: "none",
62
68
  children: [/*#__PURE__*/_jsxs(Defs, {
63
69
  children: [/*#__PURE__*/_jsxs(LinearGradient, {
64
- id: "spinner-secondHalf",
70
+ id: secondHalfId,
65
71
  children: [/*#__PURE__*/_jsx(Stop, {
66
72
  offset: "0%",
67
73
  stopOpacity: "0",
@@ -72,7 +78,7 @@ export const LoadingSpinner = ({
72
78
  stopColor: color
73
79
  })]
74
80
  }), /*#__PURE__*/_jsxs(LinearGradient, {
75
- id: "spinner-firstHalf",
81
+ id: firstHalfId,
76
82
  children: [/*#__PURE__*/_jsx(Stop, {
77
83
  offset: "0%",
78
84
  stopOpacity: "1",
@@ -86,10 +92,10 @@ export const LoadingSpinner = ({
86
92
  }), /*#__PURE__*/_jsxs(G, {
87
93
  strokeWidth: stroke,
88
94
  children: [/*#__PURE__*/_jsx(Path, {
89
- stroke: "url(#spinner-secondHalf)",
95
+ stroke: `url(#${secondHalfId})`,
90
96
  d: `M ${stroke / 2} ${size / 2} A ${size / 2 - stroke / 2} ${size / 2 - stroke / 2} 0 0 1 ${size - stroke / 2} ${size / 2}`
91
97
  }), /*#__PURE__*/_jsx(Path, {
92
- stroke: "url(#spinner-firstHalf)",
98
+ stroke: `url(#${firstHalfId})`,
93
99
  d: `M ${size - stroke / 2} ${size / 2} A ${size / 2 - stroke / 2} ${size / 2 - stroke / 2} 0 0 1 ${stroke / 2} ${size / 2}`
94
100
  }), /*#__PURE__*/_jsx(Path, {
95
101
  stroke: color,
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","View","Animated","Easing","useAnimatedStyle","useSharedValue","withRepeat","withTiming","Svg","Defs","G","LinearGradient","Path","Stop","useIOTheme","IOColors","jsx","_jsx","jsxs","_jsxs","strokeMap","LoadingSpinner","color","customColor","size","durationMs","accessibilityHint","accessibilityLabel","testID","theme","rotation","stroke","value","duration","easing","linear","animatedStyle","transform","rotateZ","style","width","height","accessible","accessibilityRole","children","viewBox","fill","id","offset","stopOpacity","stopColor","strokeWidth","d","strokeLinecap"],"sourceRoot":"../../../../src","sources":["components/loadingSpinner/LoadingSpinner.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useId","View","Animated","Svg","Defs","G","LinearGradient","Path","Stop","useIOTheme","IOColors","jsx","_jsx","jsxs","_jsxs","spinKeyframes","from","transform","rotateZ","to","strokeMap","LoadingSpinner","color","customColor","size","durationMs","accessibilityHint","accessibilityLabel","testID","theme","id","stroke","secondHalfId","firstHalfId","style","width","height","accessible","accessibilityRole","children","animationName","animationDuration","animationIterationCount","animationTimingFunction","transformOrigin","viewBox","fill","offset","stopOpacity","stopColor","strokeWidth","d","strokeLinecap"],"sourceRoot":"../../../../src","sources":["components/loadingSpinner/LoadingSpinner.tsx"],"mappings":"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","ignoreList":[]}
@@ -36,6 +36,35 @@ export type ListItemInfo = WithTestID<{
36
36
  accessibilityRole?: AccessibilityRole;
37
37
  reversed?: boolean;
38
38
  }> & GraphicProps & InteractiveProps;
39
+ /**
40
+ * ListItemInfo component displays information in a list item format with optional icons,
41
+ * labels, values, and end elements (buttons, badges).
42
+ *
43
+ * @remarks
44
+ * **Accessibility for Interactive Elements:**
45
+ * When using interactive end elements (`buttonLink` or `iconButton`), you must provide
46
+ * an appropriate `accessibilityLabel` directly to the interactive component props.
47
+ * This ensures that screen reader users can understand the relationship between the
48
+ * list item content and the action that the interactive element triggers.
49
+ *
50
+ * Example:
51
+ * ```tsx
52
+ * <ListItemInfo
53
+ * label="Email"
54
+ * value="user@example.com"
55
+ * endElement={{
56
+ * type: "buttonLink",
57
+ * componentProps: {
58
+ * label: "Edit",
59
+ * accessibilityLabel: "Edit email address"
60
+ * }
61
+ * }}
62
+ * />
63
+ * ```
64
+ *
65
+ * The design system cannot enforce this pattern automatically, so it's the responsibility
66
+ * of the implementing software engineer to ensure proper accessibility labels are set.
67
+ */
39
68
  export declare const ListItemInfo: ({ value, label, numberOfLines, reversed, icon, paymentLogoIcon, endElement, topElement, accessibilityLabel, accessibilityRole, accessibilityActions, onAccessibilityAction, onLongPress, testID }: ListItemInfo) => import("react/jsx-runtime").JSX.Element;
40
69
  export {};
41
70
  //# sourceMappingURL=ListItemInfo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListItemInfo.d.ts","sourceRoot":"","sources":["../../../../src/components/listitems/ListItemInfo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAY,SAAS,EAAQ,MAAM,cAAc,CAAC;AAM5E,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAY,yBAAyB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAmB,OAAO,EAAQ,MAAM,UAAU,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,cAAc,EAAE,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;CAC5D,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC,OAAO,UAAU,CAAC,CAAC;CACnD,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,cAAc,CAAC,OAAO,KAAK,CAAC,CAAC;CAC9C,CAAC;AAEF,KAAK,eAAe,GAChB,qBAAqB,GACrB,qBAAqB,GACrB,UAAU,CAAC;AAEf,KAAK,YAAY,GACb;IACE,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,GACD;IACE,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEN,KAAK,gBAAgB,GAAG,IAAI,CAC1B,cAAc,CAAC,OAAO,SAAS,CAAC,EAChC,aAAa,GAAG,sBAAsB,GAAG,uBAAuB,CACjE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC;IACpC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC,GACA,YAAY,GACZ,gBAAgB,CAAC;AAuGnB,eAAO,MAAM,YAAY,GAAI,mMAe1B,YAAY,4CAoFd,CAAC"}
1
+ {"version":3,"file":"ListItemInfo.d.ts","sourceRoot":"","sources":["../../../../src/components/listitems/ListItemInfo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAQ,MAAM,cAAc,CAAC;AAMlE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAY,yBAAyB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAmB,OAAO,EAAQ,MAAM,UAAU,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,cAAc,EAAE,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;CAC5D,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC,OAAO,UAAU,CAAC,CAAC;CACnD,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,cAAc,CAAC,OAAO,KAAK,CAAC,CAAC;CAC9C,CAAC;AAEF,KAAK,eAAe,GAChB,qBAAqB,GACrB,qBAAqB,GACrB,UAAU,CAAC;AAEf,KAAK,YAAY,GACb;IAAE,eAAe,CAAC,EAAE,iBAAiB,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,GACrD;IAAE,eAAe,CAAC,EAAE,KAAK,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEhD,KAAK,gBAAgB,GAAG,IAAI,CAC1B,cAAc,CAAC,OAAO,SAAS,CAAC,EAChC,aAAa,GAAG,sBAAsB,GAAG,uBAAuB,CACjE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC;IACpC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC,GACA,YAAY,GACZ,gBAAgB,CAAC;AA4HnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,YAAY,GAAI,mMAe1B,YAAY,4CAoHd,CAAC"}
@@ -9,9 +9,8 @@ export type LoadingSpinner = WithTestID<{
9
9
  accessibilityHint?: string;
10
10
  }>;
11
11
  /**
12
- * Size scale, 76 is kept for backward compatibility with the old design system but 48 is enough for the new one.
13
- * It will be removed in the future.
12
+ * Size scale
14
13
  */
15
- export type IOLoadingSpinnerSizeScale = 24 | 48 | 76;
14
+ export type IOLoadingSpinnerSizeScale = 24 | 48;
16
15
  export declare const LoadingSpinner: ({ color: customColor, size, durationMs, accessibilityHint, accessibilityLabel, testID }: LoadingSpinner) => ReactElement;
17
16
  //# sourceMappingURL=LoadingSpinner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingSpinner.d.ts","sourceRoot":"","sources":["../../../../src/components/loadingSpinner/LoadingSpinner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAa,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,UAAU,EAAQ,MAAM,cAAc,CAAC;AAWhD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC;IACtC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,yBAAyB,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAQrD,eAAO,MAAM,cAAc,GAAI,yFAO5B,cAAc,KAAG,YA+EnB,CAAC"}
1
+ {"version":3,"file":"LoadingSpinner.d.ts","sourceRoot":"","sources":["../../../../src/components/loadingSpinner/LoadingSpinner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAS,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAQ,MAAM,cAAc,CAAC;AAKhD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC;IACtC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,yBAAyB,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,EAAE,GAAG,EAAE,CAAC;AAYhD,eAAO,MAAM,cAAc,GAAI,yFAO5B,cAAc,KAAG,YA2EnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pagopa/io-app-design-system",
3
- "version": "6.0.4",
3
+ "version": "6.0.5",
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",
@@ -584,7 +584,7 @@ exports[`ClaimsSelector ClaimsSelector Snapshot (controlled) 1`] = `
584
584
  <RNSVGPath
585
585
  d="m7 12 4 4 7-7"
586
586
  fill={null}
587
- onLayout={[Function]}
587
+ onSvgLayout={[Function]}
588
588
  propList={
589
589
  [
590
590
  "fill",
@@ -906,7 +906,7 @@ exports[`ClaimsSelector ClaimsSelector Snapshot (custom component) 1`] = `
906
906
  }
907
907
  >
908
908
  <View
909
- accessibilityLabel="Nome e cognome; "
909
+ accessibilityLabel="Nome e cognome"
910
910
  accessibilityRole="image"
911
911
  accessible={true}
912
912
  style={
@@ -939,7 +939,8 @@ exports[`ClaimsSelector ClaimsSelector Snapshot (custom component) 1`] = `
939
939
  }
940
940
  >
941
941
  <View
942
- accessible={true}
942
+ accessible={false}
943
+ importantForAccessibility="no-hide-descendants"
943
944
  style={
944
945
  {
945
946
  "flexDirection": "column-reverse",
@@ -1825,7 +1826,7 @@ exports[`ClaimsSelector ClaimsSelector Snapshot (unselectable items) 1`] = `
1825
1826
  }
1826
1827
  >
1827
1828
  <View
1828
- accessibilityLabel="Nome e cognome; Mario Rossi"
1829
+ accessibilityLabel="Mario Rossi; Nome e cognome"
1829
1830
  accessibilityRole="text"
1830
1831
  accessible={true}
1831
1832
  style={
@@ -1858,7 +1859,8 @@ exports[`ClaimsSelector ClaimsSelector Snapshot (unselectable items) 1`] = `
1858
1859
  }
1859
1860
  >
1860
1861
  <View
1861
- accessible={true}
1862
+ accessible={false}
1863
+ importantForAccessibility="no-hide-descendants"
1862
1864
  style={
1863
1865
  {
1864
1866
  "flexDirection": "column-reverse",