@pagopa/io-app-design-system 1.12.0 → 1.13.1

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 (105) hide show
  1. package/lib/commonjs/components/buttons/ButtonSolid.js +36 -8
  2. package/lib/commonjs/components/buttons/ButtonSolid.js.map +1 -1
  3. package/lib/commonjs/components/buttons/__test__/__snapshots__/button.test.tsx.snap +46 -29
  4. package/lib/commonjs/components/index.js +11 -0
  5. package/lib/commonjs/components/index.js.map +1 -1
  6. package/lib/commonjs/components/layout/BlockButtons.js +1 -4
  7. package/lib/commonjs/components/layout/BlockButtons.js.map +1 -1
  8. package/lib/commonjs/components/layout/FooterWithButtons.js +20 -9
  9. package/lib/commonjs/components/layout/FooterWithButtons.js.map +1 -1
  10. package/lib/commonjs/components/layout/HeaderFirstLevel.js +15 -12
  11. package/lib/commonjs/components/layout/HeaderFirstLevel.js.map +1 -1
  12. package/lib/commonjs/components/layout/HeaderSecondLevel.js +8 -8
  13. package/lib/commonjs/components/layout/HeaderSecondLevel.js.map +1 -1
  14. package/lib/commonjs/components/loadingSpinner/LoadingSpinner.js +106 -0
  15. package/lib/commonjs/components/loadingSpinner/LoadingSpinner.js.map +1 -0
  16. package/lib/commonjs/components/loadingSpinner/index.js +17 -0
  17. package/lib/commonjs/components/loadingSpinner/index.js.map +1 -0
  18. package/lib/commonjs/components/pictograms/Pictogram.js +5 -1
  19. package/lib/commonjs/components/pictograms/Pictogram.js.map +1 -1
  20. package/lib/commonjs/components/pictograms/svg/PictogramBleedNotification.js +47 -0
  21. package/lib/commonjs/components/pictograms/svg/PictogramBleedNotification.js.map +1 -0
  22. package/lib/commonjs/components/pictograms/svg/PictogramNotification.js +47 -0
  23. package/lib/commonjs/components/pictograms/svg/PictogramNotification.js.map +1 -0
  24. package/lib/commonjs/components/pictograms/svg/originals/PictogramBleedNotification.svg +30 -0
  25. package/lib/commonjs/components/pictograms/svg/originals/PictogramNotification.svg +30 -0
  26. package/lib/commonjs/core/IOStyles.js +10 -0
  27. package/lib/commonjs/core/IOStyles.js.map +1 -1
  28. package/lib/commonjs/core/IOTransitions.js +106 -0
  29. package/lib/commonjs/core/IOTransitions.js.map +1 -0
  30. package/lib/commonjs/core/index.js +11 -0
  31. package/lib/commonjs/core/index.js.map +1 -1
  32. package/lib/module/components/buttons/ButtonSolid.js +36 -9
  33. package/lib/module/components/buttons/ButtonSolid.js.map +1 -1
  34. package/lib/module/components/buttons/__test__/__snapshots__/button.test.tsx.snap +46 -29
  35. package/lib/module/components/index.js +1 -0
  36. package/lib/module/components/index.js.map +1 -1
  37. package/lib/module/components/layout/BlockButtons.js +1 -4
  38. package/lib/module/components/layout/BlockButtons.js.map +1 -1
  39. package/lib/module/components/layout/FooterWithButtons.js +20 -10
  40. package/lib/module/components/layout/FooterWithButtons.js.map +1 -1
  41. package/lib/module/components/layout/HeaderFirstLevel.js +15 -12
  42. package/lib/module/components/layout/HeaderFirstLevel.js.map +1 -1
  43. package/lib/module/components/layout/HeaderSecondLevel.js +8 -8
  44. package/lib/module/components/layout/HeaderSecondLevel.js.map +1 -1
  45. package/lib/module/components/loadingSpinner/LoadingSpinner.js +98 -0
  46. package/lib/module/components/loadingSpinner/LoadingSpinner.js.map +1 -0
  47. package/lib/module/components/loadingSpinner/index.js +2 -0
  48. package/lib/module/components/loadingSpinner/index.js.map +1 -0
  49. package/lib/module/components/pictograms/Pictogram.js +5 -1
  50. package/lib/module/components/pictograms/Pictogram.js.map +1 -1
  51. package/lib/module/components/pictograms/svg/PictogramBleedNotification.js +39 -0
  52. package/lib/module/components/pictograms/svg/PictogramBleedNotification.js.map +1 -0
  53. package/lib/module/components/pictograms/svg/PictogramNotification.js +39 -0
  54. package/lib/module/components/pictograms/svg/PictogramNotification.js.map +1 -0
  55. package/lib/module/components/pictograms/svg/originals/PictogramBleedNotification.svg +30 -0
  56. package/lib/module/components/pictograms/svg/originals/PictogramNotification.svg +30 -0
  57. package/lib/module/core/IOStyles.js +10 -0
  58. package/lib/module/core/IOStyles.js.map +1 -1
  59. package/lib/module/core/IOTransitions.js +98 -0
  60. package/lib/module/core/IOTransitions.js.map +1 -0
  61. package/lib/module/core/index.js +1 -0
  62. package/lib/module/core/index.js.map +1 -1
  63. package/lib/typescript/components/buttons/ButtonSolid.d.ts +5 -1
  64. package/lib/typescript/components/buttons/ButtonSolid.d.ts.map +1 -1
  65. package/lib/typescript/components/index.d.ts +1 -0
  66. package/lib/typescript/components/index.d.ts.map +1 -1
  67. package/lib/typescript/components/layout/FooterWithButtons.d.ts +4 -1
  68. package/lib/typescript/components/layout/FooterWithButtons.d.ts.map +1 -1
  69. package/lib/typescript/components/layout/HeaderFirstLevel.d.ts +2 -1
  70. package/lib/typescript/components/layout/HeaderFirstLevel.d.ts.map +1 -1
  71. package/lib/typescript/components/loadingSpinner/LoadingSpinner.d.ts +17 -0
  72. package/lib/typescript/components/loadingSpinner/LoadingSpinner.d.ts.map +1 -0
  73. package/lib/typescript/components/loadingSpinner/index.d.ts +2 -0
  74. package/lib/typescript/components/loadingSpinner/index.d.ts.map +1 -0
  75. package/lib/typescript/components/pictograms/Pictogram.d.ts +2 -1
  76. package/lib/typescript/components/pictograms/Pictogram.d.ts.map +1 -1
  77. package/lib/typescript/components/pictograms/svg/PictogramBleedNotification.d.ts +5 -0
  78. package/lib/typescript/components/pictograms/svg/PictogramBleedNotification.d.ts.map +1 -0
  79. package/lib/typescript/components/pictograms/svg/PictogramNotification.d.ts +5 -0
  80. package/lib/typescript/components/pictograms/svg/PictogramNotification.d.ts.map +1 -0
  81. package/lib/typescript/core/IOStyles.d.ts +10 -0
  82. package/lib/typescript/core/IOStyles.d.ts.map +1 -1
  83. package/lib/typescript/core/IOTransitions.d.ts +58 -0
  84. package/lib/typescript/core/IOTransitions.d.ts.map +1 -0
  85. package/lib/typescript/core/index.d.ts +1 -0
  86. package/lib/typescript/core/index.d.ts.map +1 -1
  87. package/lib/typescript/stories/ButtonDS.stories.d.ts +1 -1
  88. package/package.json +1 -1
  89. package/src/components/buttons/ButtonSolid.tsx +67 -22
  90. package/src/components/buttons/__test__/__snapshots__/button.test.tsx.snap +46 -29
  91. package/src/components/index.tsx +1 -0
  92. package/src/components/layout/BlockButtons.tsx +1 -1
  93. package/src/components/layout/FooterWithButtons.tsx +11 -5
  94. package/src/components/layout/HeaderFirstLevel.tsx +30 -9
  95. package/src/components/layout/HeaderSecondLevel.tsx +11 -11
  96. package/src/components/loadingSpinner/LoadingSpinner.tsx +125 -0
  97. package/src/components/loadingSpinner/index.tsx +1 -0
  98. package/src/components/pictograms/Pictogram.tsx +7 -2
  99. package/src/components/pictograms/svg/PictogramBleedNotification.tsx +42 -0
  100. package/src/components/pictograms/svg/PictogramNotification.tsx +42 -0
  101. package/src/components/pictograms/svg/originals/PictogramBleedNotification.svg +30 -0
  102. package/src/components/pictograms/svg/originals/PictogramNotification.svg +30 -0
  103. package/src/core/IOStyles.ts +10 -0
  104. package/src/core/IOTransitions.ts +94 -0
  105. package/src/core/index.ts +1 -0
@@ -0,0 +1,125 @@
1
+ import React, { useEffect, useRef } from "react";
2
+ import { View, Animated, Easing } from "react-native";
3
+ import Svg, { Defs, G, LinearGradient, Path, Stop } from "react-native-svg";
4
+ import { WithTestID } from "../../utils/types";
5
+ import { IOColors } from "../../core";
6
+
7
+ export type LoadingSpinner = WithTestID<{
8
+ color?: IOColors;
9
+ size?: IOLoadingSpinnerSizeScale;
10
+ durationMs?: number;
11
+ accessibilityLabel?: string;
12
+ accessibilityHint?: string;
13
+ }>;
14
+
15
+ /**
16
+ * Size scale, 76 is kept for backward compatibility with the old design system but 48 is enough for the new one.
17
+ * It will be removed in the future.
18
+ */
19
+ export type IOLoadingSpinnerSizeScale = 24 | 48 | 76;
20
+
21
+ const strokeMap: Record<NonNullable<LoadingSpinner["size"]>, number> = {
22
+ 24: 3,
23
+ 48: 6,
24
+ 76: 9
25
+ };
26
+
27
+ const startRotationAnimation = (
28
+ durationMs: number,
29
+ rotationDegree: Animated.Value
30
+ ): void => {
31
+ Animated.loop(
32
+ Animated.timing(rotationDegree, {
33
+ toValue: 360,
34
+ duration: durationMs,
35
+ easing: Easing.linear,
36
+ useNativeDriver: true
37
+ })
38
+ ).start();
39
+ };
40
+
41
+ export const LoadingSpinner = ({
42
+ color = "blueIO-500",
43
+ size = 24,
44
+ durationMs = 750,
45
+ accessibilityHint,
46
+ accessibilityLabel,
47
+ testID = "LoadingSpinnerTestID"
48
+ }: LoadingSpinner): React.ReactElement => {
49
+ const rotationDegree = useRef(new Animated.Value(0)).current;
50
+ const stroke: number = strokeMap[size];
51
+
52
+ useEffect(() => {
53
+ startRotationAnimation(durationMs, rotationDegree);
54
+ }, [durationMs, rotationDegree]);
55
+
56
+ return (
57
+ <View
58
+ style={{ width: size, height: size }}
59
+ accessible={true}
60
+ accessibilityRole="progressbar"
61
+ accessibilityHint={accessibilityHint}
62
+ accessibilityLabel={accessibilityLabel}
63
+ importantForAccessibility={"no-hide-descendants"}
64
+ testID={testID}
65
+ >
66
+ <Animated.View
67
+ testID={"LoadingSpinnerAnimatedTestID"}
68
+ style={{
69
+ transform: [
70
+ {
71
+ rotateZ: rotationDegree.interpolate({
72
+ inputRange: [0, 360],
73
+ outputRange: ["0deg", "360deg"]
74
+ })
75
+ }
76
+ ]
77
+ }}
78
+ >
79
+ {/* Thanks to Ben Ilegbodu for the article on how to
80
+ create a a SVG gradient loading spinner. Below is
81
+ a parameterized version of his code.
82
+ Source: https://www.benmvp.com/blog/how-to-create-circle-svg-gradient-loading-spinner/ */}
83
+ <Svg
84
+ width={size}
85
+ height={size}
86
+ viewBox={`0 0 ${size} ${size}`}
87
+ fill="none"
88
+ >
89
+ <Defs>
90
+ <LinearGradient id="spinner-secondHalf">
91
+ <Stop offset="0%" stopOpacity="0" stopColor={IOColors[color]} />
92
+ <Stop offset="100%" stopOpacity="1" stopColor={IOColors[color]} />
93
+ </LinearGradient>
94
+ <LinearGradient id="spinner-firstHalf">
95
+ <Stop offset="0%" stopOpacity="1" stopColor={IOColors[color]} />
96
+ <Stop offset="100%" stopOpacity="1" stopColor={IOColors[color]} />
97
+ </LinearGradient>
98
+ </Defs>
99
+
100
+ <G strokeWidth={stroke}>
101
+ <Path
102
+ stroke="url(#spinner-secondHalf)"
103
+ d={`M ${stroke / 2} ${size / 2} A ${size / 2 - stroke / 2} ${
104
+ size / 2 - stroke / 2
105
+ } 0 0 1 ${size - stroke / 2} ${size / 2}`}
106
+ />
107
+ <Path
108
+ stroke="url(#spinner-firstHalf)"
109
+ d={`M ${size - stroke / 2} ${size / 2} A ${
110
+ size / 2 - stroke / 2
111
+ } ${size / 2 - stroke / 2} 0 0 1 ${stroke / 2} ${size / 2}`}
112
+ />
113
+ <Path
114
+ stroke={IOColors[color]}
115
+ strokeLinecap="round"
116
+ d={`M ${stroke / 2} ${size / 2} A ${size / 2 - stroke / 2} ${
117
+ size / 2 - stroke / 2
118
+ } 0 0 1 ${stroke / 2} ${size / 2 - stroke / 4}`}
119
+ />
120
+ </G>
121
+ </Svg>
122
+ </Animated.View>
123
+ </View>
124
+ );
125
+ };
@@ -0,0 +1 @@
1
+ export * from "./LoadingSpinner";
@@ -60,6 +60,7 @@ import PictogramCharity from "./svg/PictogramCharity";
60
60
  import PictogramEmpty from "./svg/PictogramEmpty";
61
61
  import PictogramCie from "./svg/PictogramCie";
62
62
  import PictogramFeature from "./svg/PictogramFeature";
63
+ import PictogramNotification from "./svg/PictogramNotification";
63
64
  import PictogramObjClock from "./svg/PictogramObjClock";
64
65
  import PictogramObjIbanCard from "./svg/PictogramObjIbanCard";
65
66
  import PictogramObjManual from "./svg/PictogramObjManual";
@@ -77,6 +78,7 @@ import PictogramBleedFeature from "./svg/PictogramBleedFeature";
77
78
  import PictogramBleedCie from "./svg/PictogramBleedCie";
78
79
  import PictogramBleedCameraRequest from "./svg/PictogramBleedCameraRequest";
79
80
  import PictogramBleedCameraDenied from "./svg/PictogramBleedCameraDenied";
81
+ import PictogramBleedNotification from "./svg/PictogramBleedNotification";
80
82
 
81
83
  export const IOPictograms = {
82
84
  // Start legacy pictograms //
@@ -134,6 +136,7 @@ export const IOPictograms = {
134
136
  cie: PictogramCie,
135
137
  time: PictogramTime,
136
138
  passcode: PictogramPasscode,
139
+ notification: PictogramNotification,
137
140
  // Start Objects Pictogram
138
141
  ibanCard: PictogramObjIbanCard,
139
142
  followMessage: PictogramObjFollowMessage,
@@ -227,7 +230,8 @@ export type IOPictogramsBleed = Extract<
227
230
  | "feature"
228
231
  | "cie"
229
232
  | "cameraRequest"
230
- | "cameraDenied",
233
+ | "cameraDenied"
234
+ | "notification",
231
235
  IOPictograms
232
236
  >;
233
237
 
@@ -242,7 +246,8 @@ export const IOPictogramsBleed: {
242
246
  feature: PictogramBleedFeature,
243
247
  cie: PictogramBleedCie,
244
248
  cameraRequest: PictogramBleedCameraRequest,
245
- cameraDenied: PictogramBleedCameraDenied
249
+ cameraDenied: PictogramBleedCameraDenied,
250
+ notification: PictogramBleedNotification
246
251
  };
247
252
 
248
253
  export const PictogramBleed = ({
@@ -0,0 +1,42 @@
1
+ import React from "react";
2
+ import { Svg, Path } from "react-native-svg";
3
+ import { SVGPictogramProps } from "../Pictogram";
4
+
5
+ const PictogramBleedNotification = ({
6
+ size,
7
+ colorValues,
8
+ ...props
9
+ }: SVGPictogramProps) => (
10
+ <Svg fill="none" width={size} height={size} viewBox="0 0 240 240" {...props}>
11
+ <Path
12
+ d="M133.54 173.88c-2.88 0-5.61-1.57-7.03-4.28-1.01-1.92-1.2-4.11-.53-6.18.66-2.04 2.07-3.69 3.98-4.64 6.87-3.44 17.93-6.91 24.11-8.73-2.58-2.4-4.34-6.01-4.32-9.54 0-2.68 1.14-9.19 11.43-11.65 16.12-3.86 78.12 18.71 80.75 19.67l-1.37 3.76c-.16-.06-16.14-5.89-33.81-11.18-29.21-8.75-40.4-9.37-44.64-8.36-5.38 1.29-8.35 4.05-8.36 7.77-.01 3.88 3.08 7.55 5.86 8.23.89.22 1.51 1.01 1.52 1.92.01.91-.6 1.71-1.48 1.95-.18.05-18.53 5.04-27.9 9.73-.94.47-1.64 1.28-1.96 2.29-.33 1.03-.24 2.13.27 3.09.96 1.83 3.13 2.61 5.04 1.82 9.09-3.77 20.95-8.25 26.02-8.25h.12l-.06 4c-3.29-.04-12.27 2.85-24.55 7.94-1.01.42-2.05.62-3.08.62l-.01.02Z"
13
+ fill={colorValues.hands}
14
+ />
15
+ <Path
16
+ d="M137.45 190.31c-3.78 0-7.45-2.01-9.39-5.54-2.16-3.92-1.62-8.82 1.32-12.19l1.47-1.68 3.01 2.63-1.47 1.68c-1.85 2.11-2.18 5.17-.83 7.63 1.76 3.21 5.81 4.41 9.02 2.67 12.01-6.5 20.06-9.57 23.94-9.11l-.47 3.97c-2.86-.34-10.93 2.9-21.57 8.66-1.6.87-3.33 1.28-5.04 1.28h.01Z"
17
+ fill={colorValues.hands}
18
+ />
19
+ <Path
20
+ d="M240.36 213.78c-39.81-19.17-81.44-13.87-92.88-10.51-2.81.83-5.84.2-8.1-1.68-2.34-1.95-3.52-5.04-3.07-8.05l.77-5.2 3.96.59-.77 5.2c-.25 1.64.4 3.33 1.67 4.39 1.23 1.03 2.88 1.37 4.41.92 11.83-3.48 54.8-8.97 95.75 10.74l-1.74 3.6ZM169.578 150.271l-.698 3.939 10.349 1.834.698-3.939-10.349-1.834Z"
21
+ fill={colorValues.hands}
22
+ />
23
+ <Path
24
+ d="M191.139 170.89c-10.44-5.97-15.77-22.75-15.99-23.46l3.82-1.19c.05.16 5.09 15.99 14.16 21.18l-1.99 3.47ZM163.338 156.727l-3.982.38 2.844 29.855 3.982-.38-2.844-29.855Z"
25
+ fill={colorValues.hands}
26
+ />
27
+ <Path
28
+ d="m131.07 106.01-2.26-.76c-1.82-.61-3.16-2.16-3.51-4.05l-5.86-31.77c-3.39-18.38-18.83-31.44-36.6605-32.65-.02-.51-.03-1.02-.1299-1.53-1-5.47-6.2601-9.09-11.7401-8.08-5.47 1.01-9.09 6.27-8.08 11.74.1.52.26 1 .43 1.48-16.22 7.49-25.98 25.2-22.59 43.58l5.86 31.77c.35 1.89-.35 3.82-1.83 5.04l-1.84 1.52c-2.89 2.39-2.45 6.95.86 8.73 1.06.57 2.28.76 3.47.55l19.16-3.54c2.07 11.24 14.93 18.29 26.18 16.22 11.2405-2.07 20.7405-13.25 18.6605-24.49l19.16-3.54c1.18-.22 2.26-.84 3.05-1.75 2.45-2.84 1.24-7.26-2.32-8.46l-.01-.01Z"
29
+ fill={colorValues.main}
30
+ />
31
+ <Path
32
+ d="M48.7898 127.66c-.83 0-1.56-.59-1.72-1.43-.18-.95.45-1.86 1.4-2.04l76.8402-14.18c.95-.17 1.86.45 2.04 1.4.18.95-.45 1.86-1.4 2.04l-76.8402 14.18c-.11.02-.21.03-.32.03Z"
33
+ fill={colorValues.secondary}
34
+ />
35
+ <Path
36
+ d="M105.77 115.39c1.83 9.92-4.73 19.45-14.6502 21.28-9.92 1.83-19.45-4.73-21.28-14.65"
37
+ fill={colorValues.secondary}
38
+ />
39
+ </Svg>
40
+ );
41
+
42
+ export default PictogramBleedNotification;
@@ -0,0 +1,42 @@
1
+ import React from "react";
2
+ import { Svg, Path } from "react-native-svg";
3
+ import { SVGPictogramProps } from "../Pictogram";
4
+
5
+ const PictogramNotification = ({
6
+ size,
7
+ colorValues,
8
+ ...props
9
+ }: SVGPictogramProps) => (
10
+ <Svg fill="none" width={size} height={size} viewBox="0 0 240 240" {...props}>
11
+ <Path
12
+ d="M207.289 180.45c-.11-.13-10.98-13.21-23.59-26.68-20.84-22.26-30.19-28.43-34.36-29.69-5.3-1.6-9.25-.7-11.14 2.51-1.96 3.35-1.13 8.07.92 10.06.66.63.8 1.63.35 2.42-.45.79-1.38 1.18-2.26.94-.18-.05-18.54-4.97-29.01-5.63-1.05-.07-2.06.29-2.85.99-.81.72-1.27 1.72-1.32 2.8-.09 2.07 1.39 3.83 3.43 4.11 9.84 1.33 22.46 3.45 26.74 6.03l-2.06 3.43c-2.84-1.71-12.03-3.71-25.22-5.49-4.11-.55-7.0795-4.1-6.9-8.25.1-2.17 1.04-4.16 2.65-5.6 1.59-1.43 3.64-2.14 5.77-2.01 7.67.48 18.97 3.05 25.23 4.59-1.02-3.37-.72-7.38 1.07-10.42 1.36-2.31 5.61-7.36 15.74-4.31 15.87 4.78 58.09 55.48 59.88 57.64l-3.08 2.55.01.01Z"
13
+ fill={colorValues.hands}
14
+ />
15
+ <Path
16
+ d="M127.05 166.22c-2.31-1.73-10.9-2.99-22.99-3.37-5.8401-.18-10.4701-5.09-10.3201-10.95.11-4.48 3.04-8.44 7.2801-9.87l2.11-.71 1.27 3.79-2.11.71c-2.6601.89-4.4901 3.37-4.5601 6.17-.09 3.66 2.8001 6.73 6.4501 6.85 13.65.43 22.16 1.83 25.27 4.17l-2.4 3.2v.01Z"
17
+ fill={colorValues.hands}
18
+ />
19
+ <Path
20
+ d="M167.13 225.39c-16.99-25.12-39-41.13-65.42-47.6l-.51-.12c-2.8501-.7-5.1501-2.77-6.1501-5.53-1.04-2.87-.5-6.12 1.4-8.5l3.29-4.1 3.1201 2.5-3.2901 4.1c-1.04 1.3-1.33 3.07-.76 4.64.55 1.51 1.8001 2.63 3.3501 3.01l.5.12c27.41 6.71 50.22 23.28 67.78 49.25l-3.31 2.24v-.01ZM146.973 142.998l-2.585 3.052 8.019 6.794 2.585-3.052-8.019-6.794Z"
21
+ fill={colorValues.hands}
22
+ />
23
+ <Path
24
+ d="M155.239 171.66c-6.01-10.42-2.18-27.59-2.01-28.32l3.9.89c-.04.16-3.65 16.37 1.58 25.42l-3.46 2-.01.01ZM134.705 143.744l-12.57 27.229 3.631 1.676 12.57-27.229-3.631-1.676Z"
25
+ fill={colorValues.hands}
26
+ />
27
+ <Path
28
+ d="m120.07 94.01-2.26-.76c-1.82-.61-3.16-2.16-3.51-4.05l-5.86-31.77c-3.39-18.38-18.8304-31.44-36.6605-32.65-.02-.51-.03-1.02-.1299-1.53-1-5.47-6.2601-9.09-11.7401-8.08-5.47 1.01-9.09 6.27-8.08 11.74.1.52.26 1 .43 1.48-16.22 7.49-25.98 25.2-22.59 43.58l5.86 31.77c.35 1.89-.35 3.82-1.83 5.04l-1.84 1.52c-2.89 2.39-2.45 6.95.86 8.73 1.06.57 2.28.76 3.47.55l19.16-3.54c2.07 11.24 14.93 18.29 26.18 16.22 11.24-2.07 20.7405-13.25 18.6605-24.49l19.16-3.54c1.18-.22 2.26-.84 3.05-1.75 2.45-2.84 1.24-7.26-2.32-8.46l-.01-.01Z"
29
+ fill={colorValues.main}
30
+ />
31
+ <Path
32
+ d="M37.7898 115.66c-.83 0-1.56-.59-1.72-1.43-.18-.95.45-1.86 1.4-2.04L114.31 98.01c.95-.17 1.86.45 2.04 1.4.18.95-.45 1.86-1.4 2.04l-76.8402 14.18c-.11.02-.21.03-.32.03Z"
33
+ fill={colorValues.secondary}
34
+ />
35
+ <Path
36
+ d="M94.7698 103.39c1.83 9.92-4.73 19.45-14.65 21.28-9.92 1.83-19.45-4.73-21.28-14.65"
37
+ fill={colorValues.secondary}
38
+ />
39
+ </Svg>
40
+ );
41
+
42
+ export default PictogramNotification;
@@ -0,0 +1,30 @@
1
+ <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240">
2
+ <path
3
+ d="M133.54 173.88c-2.88 0-5.61-1.57-7.03-4.28-1.01-1.92-1.2-4.11-.53-6.18.66-2.04 2.07-3.69 3.98-4.64 6.87-3.44 17.93-6.91 24.11-8.73-2.58-2.4-4.34-6.01-4.32-9.54 0-2.68 1.14-9.19 11.43-11.65 16.12-3.86 78.12 18.71 80.75 19.67l-1.37 3.76c-.16-.06-16.14-5.89-33.81-11.18-29.21-8.75-40.4-9.37-44.64-8.36-5.38 1.29-8.35 4.05-8.36 7.77-.01 3.88 3.08 7.55 5.86 8.23.89.22 1.51 1.01 1.52 1.92.01.91-.6 1.71-1.48 1.95-.18.05-18.53 5.04-27.9 9.73-.94.47-1.64 1.28-1.96 2.29-.33 1.03-.24 2.13.27 3.09.96 1.83 3.13 2.61 5.04 1.82 9.09-3.77 20.95-8.25 26.02-8.25h.12l-.06 4c-3.29-.04-12.27 2.85-24.55 7.94-1.01.42-2.05.62-3.08.62l-.01.02Z"
4
+ fill="#0B3EE3"
5
+ />
6
+ <path
7
+ d="M137.45 190.31c-3.78 0-7.45-2.01-9.39-5.54-2.16-3.92-1.62-8.82 1.32-12.19l1.47-1.68 3.01 2.63-1.47 1.68c-1.85 2.11-2.18 5.17-.83 7.63 1.76 3.21 5.81 4.41 9.02 2.67 12.01-6.5 20.06-9.57 23.94-9.11l-.47 3.97c-2.86-.34-10.93 2.9-21.57 8.66-1.6.87-3.33 1.28-5.04 1.28h.01Z"
8
+ fill="#0B3EE3"
9
+ />
10
+ <path
11
+ d="M240.36 213.78c-39.81-19.17-81.44-13.87-92.88-10.51-2.81.83-5.84.2-8.1-1.68-2.34-1.95-3.52-5.04-3.07-8.05l.77-5.2 3.96.59-.77 5.2c-.25 1.64.4 3.33 1.67 4.39 1.23 1.03 2.88 1.37 4.41.92 11.83-3.48 54.8-8.97 95.75 10.74l-1.74 3.6ZM169.578 150.271l-.698 3.939 10.349 1.834.698-3.939-10.349-1.834Z"
12
+ fill="#0B3EE3"
13
+ />
14
+ <path
15
+ d="M191.139 170.89c-10.44-5.97-15.77-22.75-15.99-23.46l3.82-1.19c.05.16 5.09 15.99 14.16 21.18l-1.99 3.47ZM163.338 156.727l-3.982.38 2.844 29.855 3.982-.38-2.844-29.855Z"
16
+ fill="#0B3EE3"
17
+ />
18
+ <path
19
+ d="m131.07 106.01-2.26-.76c-1.82-.61-3.16-2.16-3.51-4.05l-5.86-31.77c-3.39-18.38-18.83-31.44-36.6605-32.65-.02-.51-.03-1.02-.1299-1.53-1-5.47-6.2601-9.09-11.7401-8.08-5.47 1.01-9.09 6.27-8.08 11.74.1.52.26 1 .43 1.48-16.22 7.49-25.98 25.2-22.59 43.58l5.86 31.77c.35 1.89-.35 3.82-1.83 5.04l-1.84 1.52c-2.89 2.39-2.45 6.95.86 8.73 1.06.57 2.28.76 3.47.55l19.16-3.54c2.07 11.24 14.93 18.29 26.18 16.22 11.2405-2.07 20.7405-13.25 18.6605-24.49l19.16-3.54c1.18-.22 2.26-.84 3.05-1.75 2.45-2.84 1.24-7.26-2.32-8.46l-.01-.01Z"
20
+ fill="#AAEEEF"
21
+ />
22
+ <path
23
+ d="M48.7898 127.66c-.83 0-1.56-.59-1.72-1.43-.18-.95.45-1.86 1.4-2.04l76.8402-14.18c.95-.17 1.86.45 2.04 1.4.18.95-.45 1.86-1.4 2.04l-76.8402 14.18c-.11.02-.21.03-.32.03Z"
24
+ fill="#00C5CA"
25
+ />
26
+ <path
27
+ d="M105.77 115.39c1.83 9.92-4.73 19.45-14.6502 21.28-9.92 1.83-19.45-4.73-21.28-14.65"
28
+ fill="#00C5CA"
29
+ />
30
+ </svg>
@@ -0,0 +1,30 @@
1
+ <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240">
2
+ <path
3
+ d="M207.289 180.45c-.11-.13-10.98-13.21-23.59-26.68-20.84-22.26-30.19-28.43-34.36-29.69-5.3-1.6-9.25-.7-11.14 2.51-1.96 3.35-1.13 8.07.92 10.06.66.63.8 1.63.35 2.42-.45.79-1.38 1.18-2.26.94-.18-.05-18.54-4.97-29.01-5.63-1.05-.07-2.06.29-2.85.99-.81.72-1.27 1.72-1.32 2.8-.09 2.07 1.39 3.83 3.43 4.11 9.84 1.33 22.46 3.45 26.74 6.03l-2.06 3.43c-2.84-1.71-12.03-3.71-25.22-5.49-4.11-.55-7.0795-4.1-6.9-8.25.1-2.17 1.04-4.16 2.65-5.6 1.59-1.43 3.64-2.14 5.77-2.01 7.67.48 18.97 3.05 25.23 4.59-1.02-3.37-.72-7.38 1.07-10.42 1.36-2.31 5.61-7.36 15.74-4.31 15.87 4.78 58.09 55.48 59.88 57.64l-3.08 2.55.01.01Z"
4
+ fill="#0B3EE3"
5
+ />
6
+ <path
7
+ d="M127.05 166.22c-2.31-1.73-10.9-2.99-22.99-3.37-5.8401-.18-10.4701-5.09-10.3201-10.95.11-4.48 3.04-8.44 7.2801-9.87l2.11-.71 1.27 3.79-2.11.71c-2.6601.89-4.4901 3.37-4.5601 6.17-.09 3.66 2.8001 6.73 6.4501 6.85 13.65.43 22.16 1.83 25.27 4.17l-2.4 3.2v.01Z"
8
+ fill="#0B3EE3"
9
+ />
10
+ <path
11
+ d="M167.13 225.39c-16.99-25.12-39-41.13-65.42-47.6l-.51-.12c-2.8501-.7-5.1501-2.77-6.1501-5.53-1.04-2.87-.5-6.12 1.4-8.5l3.29-4.1 3.1201 2.5-3.2901 4.1c-1.04 1.3-1.33 3.07-.76 4.64.55 1.51 1.8001 2.63 3.3501 3.01l.5.12c27.41 6.71 50.22 23.28 67.78 49.25l-3.31 2.24v-.01ZM146.973 142.998l-2.585 3.052 8.019 6.794 2.585-3.052-8.019-6.794Z"
12
+ fill="#0B3EE3"
13
+ />
14
+ <path
15
+ d="M155.239 171.66c-6.01-10.42-2.18-27.59-2.01-28.32l3.9.89c-.04.16-3.65 16.37 1.58 25.42l-3.46 2-.01.01ZM134.705 143.744l-12.57 27.229 3.631 1.676 12.57-27.229-3.631-1.676Z"
16
+ fill="#0B3EE3"
17
+ />
18
+ <path
19
+ d="m120.07 94.01-2.26-.76c-1.82-.61-3.16-2.16-3.51-4.05l-5.86-31.77c-3.39-18.38-18.8304-31.44-36.6605-32.65-.02-.51-.03-1.02-.1299-1.53-1-5.47-6.2601-9.09-11.7401-8.08-5.47 1.01-9.09 6.27-8.08 11.74.1.52.26 1 .43 1.48-16.22 7.49-25.98 25.2-22.59 43.58l5.86 31.77c.35 1.89-.35 3.82-1.83 5.04l-1.84 1.52c-2.89 2.39-2.45 6.95.86 8.73 1.06.57 2.28.76 3.47.55l19.16-3.54c2.07 11.24 14.93 18.29 26.18 16.22 11.24-2.07 20.7405-13.25 18.6605-24.49l19.16-3.54c1.18-.22 2.26-.84 3.05-1.75 2.45-2.84 1.24-7.26-2.32-8.46l-.01-.01Z"
20
+ fill="#AAEEEF"
21
+ />
22
+ <path
23
+ d="M37.7898 115.66c-.83 0-1.56-.59-1.72-1.43-.18-.95.45-1.86 1.4-2.04L114.31 98.01c.95-.17 1.86.45 2.04 1.4.18.95-.45 1.86-1.4 2.04l-76.8402 14.18c-.11.02-.21.03-.32.03Z"
24
+ fill="#00C5CA"
25
+ />
26
+ <path
27
+ d="M94.7698 103.39c1.83 9.92-4.73 19.45-14.65 21.28-9.92 1.83-19.45-4.73-21.28-14.65"
28
+ fill="#00C5CA"
29
+ />
30
+ </svg>
@@ -117,6 +117,11 @@ export const IOButtonLegacyStyles = StyleSheet.create({
117
117
  // paddingHorizontal: PixelRatio.getFontScale() * 16,
118
118
  // borderRadius: PixelRatio.getFontScale() * 8
119
119
  },
120
+ buttonInner: {
121
+ flexDirection: "row",
122
+ alignItems: "center",
123
+ justifyContent: "center"
124
+ },
120
125
  /* Labels */
121
126
  label: {
122
127
  alignSelf: "center"
@@ -152,6 +157,11 @@ export const IOButtonStyles = StyleSheet.create({
152
157
  // paddingHorizontal: PixelRatio.getFontScale() * 16,
153
158
  // borderRadius: PixelRatio.getFontScale() * 8
154
159
  },
160
+ buttonInner: {
161
+ flexDirection: "row",
162
+ alignItems: "center",
163
+ justifyContent: "center"
164
+ },
155
165
  buttonLink: {
156
166
  flexDirection: "row",
157
167
  alignItems: "center",
@@ -0,0 +1,94 @@
1
+ import { Easing, withTiming } from "react-native-reanimated";
2
+
3
+ /**
4
+ A custom enter transition designed for the average size
5
+ inner content of a button or module (e.g. text).
6
+ The scaling effect is slight.
7
+ */
8
+ export const enterTransitionInnerContent = () => {
9
+ "worklet";
10
+ const animations = {
11
+ opacity: withTiming(1, {
12
+ duration: 250,
13
+ easing: Easing.in(Easing.cubic)
14
+ }),
15
+ transform: [
16
+ {
17
+ scale: withTiming(1, {
18
+ duration: 250,
19
+ easing: Easing.in(Easing.cubic)
20
+ })
21
+ }
22
+ ]
23
+ };
24
+ const initialValues = {
25
+ opacity: 0,
26
+ transform: [{ scale: 1.05 }]
27
+ };
28
+ return {
29
+ initialValues,
30
+ animations
31
+ };
32
+ };
33
+
34
+ /**
35
+ A custom enter transition designed for the small size
36
+ inner content of a button or module (e.g. loading spinner).
37
+ The scaling effect is accentuated.
38
+ */
39
+ export const enterTransitionInnerContentSmall = () => {
40
+ "worklet";
41
+ const animations = {
42
+ opacity: withTiming(1, {
43
+ duration: 250,
44
+ easing: Easing.in(Easing.cubic)
45
+ }),
46
+ transform: [
47
+ {
48
+ scale: withTiming(1, {
49
+ duration: 250,
50
+ easing: Easing.in(Easing.cubic)
51
+ })
52
+ }
53
+ ]
54
+ };
55
+ const initialValues = {
56
+ opacity: 0,
57
+ transform: [{ scale: 1.25 }]
58
+ };
59
+ return {
60
+ initialValues,
61
+ animations
62
+ };
63
+ };
64
+
65
+ /**
66
+ A custom exit transition designed for both small
67
+ and average size inner content of a button or module.
68
+ The scaling effect is slight.
69
+ */
70
+ export const exitTransitionInnerContent = () => {
71
+ "worklet";
72
+ const animations = {
73
+ opacity: withTiming(0, {
74
+ duration: 350,
75
+ easing: Easing.out(Easing.cubic)
76
+ }),
77
+ transform: [
78
+ {
79
+ scale: withTiming(0.9, {
80
+ duration: 350,
81
+ easing: Easing.out(Easing.cubic)
82
+ })
83
+ }
84
+ ]
85
+ };
86
+ const initialValues = {
87
+ opacity: 1,
88
+ transform: [{ scale: 1 }]
89
+ };
90
+ return {
91
+ initialValues,
92
+ animations
93
+ };
94
+ };
package/src/core/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from "./IOColors";
2
2
  export * from "./IOAnimations";
3
+ export * from "./IOTransitions";
3
4
  export * from "./IOStyles";
4
5
  export * from "./IOShapes";
5
6
  export * from "./IOSpacing";