@pagopa/io-app-design-system 1.16.0 → 1.17.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.
Files changed (467) hide show
  1. package/README.md +131 -54
  2. package/lib/commonjs/components/banner/__test__/__snapshots__/banner.test.tsx.snap +4 -4
  3. package/lib/commonjs/components/buttons/__test__/__snapshots__/button.test.tsx.snap +4 -4
  4. package/lib/commonjs/components/checkbox/AnimatedCheckbox.js +6 -2
  5. package/lib/commonjs/components/checkbox/AnimatedCheckbox.js.map +1 -1
  6. package/lib/commonjs/components/codeInput/CodeInput.js +103 -0
  7. package/lib/commonjs/components/codeInput/CodeInput.js.map +1 -0
  8. package/lib/commonjs/components/codeInput/index.js +17 -0
  9. package/lib/commonjs/components/codeInput/index.js.map +1 -0
  10. package/lib/commonjs/components/icons/Icon.js +2 -0
  11. package/lib/commonjs/components/icons/Icon.js.map +1 -1
  12. package/lib/commonjs/components/icons/README.md +79 -19
  13. package/lib/commonjs/components/icons/svg/IconSparkles.js +30 -0
  14. package/lib/commonjs/components/icons/svg/IconSparkles.js.map +1 -0
  15. package/lib/commonjs/components/icons/svg/originals/IconSparkles.svg +3 -0
  16. package/lib/commonjs/components/index.js +48 -26
  17. package/lib/commonjs/components/index.js.map +1 -1
  18. package/lib/commonjs/components/layout/HeaderSecondLevel.js +5 -4
  19. package/lib/commonjs/components/layout/HeaderSecondLevel.js.map +1 -1
  20. package/lib/commonjs/components/listitems/ListItemAction.js +4 -3
  21. package/lib/commonjs/components/listitems/ListItemAction.js.map +1 -1
  22. package/lib/commonjs/components/listitems/ListItemHeader.js +87 -0
  23. package/lib/commonjs/components/listitems/ListItemHeader.js.map +1 -0
  24. package/lib/commonjs/components/listitems/ListItemInfo.js +18 -14
  25. package/lib/commonjs/components/listitems/ListItemInfo.js.map +1 -1
  26. package/lib/commonjs/components/listitems/ListItemInfoCopy.js +5 -30
  27. package/lib/commonjs/components/listitems/ListItemInfoCopy.js.map +1 -1
  28. package/lib/commonjs/components/listitems/ListItemNav.js +15 -23
  29. package/lib/commonjs/components/listitems/ListItemNav.js.map +1 -1
  30. package/lib/commonjs/components/listitems/ListItemNavAlert.js +4 -22
  31. package/lib/commonjs/components/listitems/ListItemNavAlert.js.map +1 -1
  32. package/lib/commonjs/components/listitems/ListItemRadio.js +69 -10
  33. package/lib/commonjs/components/listitems/ListItemRadio.js.map +1 -1
  34. package/lib/commonjs/components/listitems/ListItemRadioWithAmount.js +64 -0
  35. package/lib/commonjs/components/listitems/ListItemRadioWithAmount.js.map +1 -0
  36. package/lib/commonjs/components/listitems/ListItemTransaction.js +8 -5
  37. package/lib/commonjs/components/listitems/ListItemTransaction.js.map +1 -1
  38. package/lib/commonjs/components/listitems/__test__/__snapshots__/listitem.test.tsx.snap +684 -34
  39. package/lib/commonjs/components/listitems/__test__/listitem.test.js +17 -0
  40. package/lib/commonjs/components/listitems/__test__/listitem.test.js.map +1 -1
  41. package/lib/commonjs/components/listitems/index.js +22 -0
  42. package/lib/commonjs/components/listitems/index.js.map +1 -1
  43. package/lib/commonjs/components/modules/ModuleCheckout.js +103 -0
  44. package/lib/commonjs/components/modules/ModuleCheckout.js.map +1 -0
  45. package/lib/commonjs/components/modules/index.js +11 -0
  46. package/lib/commonjs/components/modules/index.js.map +1 -1
  47. package/lib/commonjs/components/numberpad/NumberPad.js +7 -10
  48. package/lib/commonjs/components/numberpad/NumberPad.js.map +1 -1
  49. package/lib/commonjs/components/pictograms/Pictogram.js +19 -1
  50. package/lib/commonjs/components/pictograms/Pictogram.js.map +1 -1
  51. package/lib/commonjs/components/pictograms/README.md +103 -14
  52. package/lib/commonjs/components/pictograms/svg/PictogramBiometric.js +82 -0
  53. package/lib/commonjs/components/pictograms/svg/PictogramBiometric.js.map +1 -0
  54. package/lib/commonjs/components/pictograms/svg/PictogramBleedEnded.js +43 -0
  55. package/lib/commonjs/components/pictograms/svg/PictogramBleedEnded.js.map +1 -0
  56. package/lib/commonjs/components/pictograms/svg/PictogramBleedLostConnection.js +64 -0
  57. package/lib/commonjs/components/pictograms/svg/PictogramBleedLostConnection.js.map +1 -0
  58. package/lib/commonjs/components/pictograms/svg/PictogramBleedPending.js +15 -9
  59. package/lib/commonjs/components/pictograms/svg/PictogramBleedPending.js.map +1 -1
  60. package/lib/commonjs/components/pictograms/svg/PictogramBleedQrCode.js +79 -0
  61. package/lib/commonjs/components/pictograms/svg/PictogramBleedQrCode.js.map +1 -0
  62. package/lib/commonjs/components/pictograms/svg/PictogramEmailDotCheck.js +60 -0
  63. package/lib/commonjs/components/pictograms/svg/PictogramEmailDotCheck.js.map +1 -0
  64. package/lib/commonjs/components/pictograms/svg/PictogramEmailDotNotif.js +58 -0
  65. package/lib/commonjs/components/pictograms/svg/PictogramEmailDotNotif.js.map +1 -0
  66. package/lib/commonjs/components/pictograms/svg/PictogramEnded.js +43 -0
  67. package/lib/commonjs/components/pictograms/svg/PictogramEnded.js.map +1 -0
  68. package/lib/commonjs/components/pictograms/svg/PictogramLostConnection.js +58 -0
  69. package/lib/commonjs/components/pictograms/svg/PictogramLostConnection.js.map +1 -0
  70. package/lib/commonjs/components/pictograms/svg/PictogramPending.js +15 -9
  71. package/lib/commonjs/components/pictograms/svg/PictogramPending.js.map +1 -1
  72. package/lib/commonjs/components/pictograms/svg/PictogramQrCode.js +91 -0
  73. package/lib/commonjs/components/pictograms/svg/PictogramQrCode.js.map +1 -0
  74. package/lib/commonjs/components/pictograms/svg/originals/PictogramBiometric.svg +1 -0
  75. package/lib/commonjs/components/pictograms/svg/originals/PictogramBleedEnded.svg +1 -0
  76. package/lib/commonjs/components/pictograms/svg/originals/PictogramBleedLostConnection.svg +1 -0
  77. package/lib/commonjs/components/pictograms/svg/originals/PictogramBleedPending.svg +1 -1
  78. package/lib/commonjs/components/pictograms/svg/originals/PictogramBleedQrCode.svg +1 -0
  79. package/lib/commonjs/components/pictograms/svg/originals/PictogramEmailDotCheck.svg +41 -0
  80. package/lib/commonjs/components/pictograms/svg/originals/PictogramEmailDotNotif.svg +35 -0
  81. package/lib/commonjs/components/pictograms/svg/originals/PictogramEnded.svg +1 -0
  82. package/lib/commonjs/components/pictograms/svg/originals/PictogramLostConnection.svg +1 -0
  83. package/lib/commonjs/components/pictograms/svg/originals/PictogramPending.svg +1 -1
  84. package/lib/commonjs/components/pictograms/svg/originals/PictogramQrCode.svg +1 -0
  85. package/lib/commonjs/components/radio/RadioGroup.js +2 -1
  86. package/lib/commonjs/components/radio/RadioGroup.js.map +1 -1
  87. package/lib/commonjs/components/stepper/Stepper.js +52 -0
  88. package/lib/commonjs/components/stepper/Stepper.js.map +1 -0
  89. package/lib/commonjs/components/stepper/index.js +17 -0
  90. package/lib/commonjs/components/stepper/index.js.map +1 -0
  91. package/lib/commonjs/components/typography/H1.js +5 -3
  92. package/lib/commonjs/components/typography/H1.js.map +1 -1
  93. package/lib/commonjs/components/typography/H2.js +5 -3
  94. package/lib/commonjs/components/typography/H2.js.map +1 -1
  95. package/lib/commonjs/components/typography/H3.js +5 -3
  96. package/lib/commonjs/components/typography/H3.js.map +1 -1
  97. package/lib/commonjs/components/typography/H4.js +2 -1
  98. package/lib/commonjs/components/typography/H4.js.map +1 -1
  99. package/lib/commonjs/components/typography/H6.js +4 -2
  100. package/lib/commonjs/components/typography/H6.js.map +1 -1
  101. package/lib/commonjs/components/typography/Hero.js +7 -3
  102. package/lib/commonjs/components/typography/Hero.js.map +1 -1
  103. package/lib/commonjs/components/typography/LabelSmall.js +6 -1
  104. package/lib/commonjs/components/typography/LabelSmall.js.map +1 -1
  105. package/lib/commonjs/components/typography/LabelSmallAlt.js +39 -0
  106. package/lib/commonjs/components/typography/LabelSmallAlt.js.map +1 -0
  107. package/lib/commonjs/components/typography/README.md +23 -0
  108. package/lib/commonjs/components/typography/__test__/__snapshots__/typography.test.tsx.snap +84 -74
  109. package/lib/commonjs/components/typography/index.js +11 -0
  110. package/lib/commonjs/components/typography/index.js.map +1 -1
  111. package/lib/module/components/banner/__test__/__snapshots__/banner.test.tsx.snap +4 -4
  112. package/lib/module/components/buttons/__test__/__snapshots__/button.test.tsx.snap +4 -4
  113. package/lib/module/components/checkbox/AnimatedCheckbox.js +6 -2
  114. package/lib/module/components/checkbox/AnimatedCheckbox.js.map +1 -1
  115. package/lib/module/components/codeInput/CodeInput.js +94 -0
  116. package/lib/module/components/codeInput/CodeInput.js.map +1 -0
  117. package/lib/module/components/codeInput/index.js +2 -0
  118. package/lib/module/components/codeInput/index.js.map +1 -0
  119. package/lib/module/components/icons/Icon.js +2 -0
  120. package/lib/module/components/icons/Icon.js.map +1 -1
  121. package/lib/module/components/icons/README.md +79 -19
  122. package/lib/module/components/icons/svg/IconSparkles.js +21 -0
  123. package/lib/module/components/icons/svg/IconSparkles.js.map +1 -0
  124. package/lib/module/components/icons/svg/originals/IconSparkles.svg +3 -0
  125. package/lib/module/components/index.js +5 -3
  126. package/lib/module/components/index.js.map +1 -1
  127. package/lib/module/components/layout/HeaderSecondLevel.js +5 -4
  128. package/lib/module/components/layout/HeaderSecondLevel.js.map +1 -1
  129. package/lib/module/components/listitems/ListItemAction.js +4 -3
  130. package/lib/module/components/listitems/ListItemAction.js.map +1 -1
  131. package/lib/module/components/listitems/ListItemHeader.js +77 -0
  132. package/lib/module/components/listitems/ListItemHeader.js.map +1 -0
  133. package/lib/module/components/listitems/ListItemInfo.js +18 -14
  134. package/lib/module/components/listitems/ListItemInfo.js.map +1 -1
  135. package/lib/module/components/listitems/ListItemInfoCopy.js +7 -32
  136. package/lib/module/components/listitems/ListItemInfoCopy.js.map +1 -1
  137. package/lib/module/components/listitems/ListItemNav.js +17 -26
  138. package/lib/module/components/listitems/ListItemNav.js.map +1 -1
  139. package/lib/module/components/listitems/ListItemNavAlert.js +6 -24
  140. package/lib/module/components/listitems/ListItemNavAlert.js.map +1 -1
  141. package/lib/module/components/listitems/ListItemRadio.js +69 -10
  142. package/lib/module/components/listitems/ListItemRadio.js.map +1 -1
  143. package/lib/module/components/listitems/ListItemRadioWithAmount.js +54 -0
  144. package/lib/module/components/listitems/ListItemRadioWithAmount.js.map +1 -0
  145. package/lib/module/components/listitems/ListItemTransaction.js +10 -7
  146. package/lib/module/components/listitems/ListItemTransaction.js.map +1 -1
  147. package/lib/module/components/listitems/__test__/__snapshots__/listitem.test.tsx.snap +684 -34
  148. package/lib/module/components/listitems/__test__/listitem.test.js +17 -0
  149. package/lib/module/components/listitems/__test__/listitem.test.js.map +1 -1
  150. package/lib/module/components/listitems/index.js +2 -0
  151. package/lib/module/components/listitems/index.js.map +1 -1
  152. package/lib/module/components/modules/ModuleCheckout.js +95 -0
  153. package/lib/module/components/modules/ModuleCheckout.js.map +1 -0
  154. package/lib/module/components/modules/index.js +1 -0
  155. package/lib/module/components/modules/index.js.map +1 -1
  156. package/lib/module/components/numberpad/NumberPad.js +6 -7
  157. package/lib/module/components/numberpad/NumberPad.js.map +1 -1
  158. package/lib/module/components/pictograms/Pictogram.js +19 -1
  159. package/lib/module/components/pictograms/Pictogram.js.map +1 -1
  160. package/lib/module/components/pictograms/README.md +103 -14
  161. package/lib/module/components/pictograms/svg/PictogramBiometric.js +74 -0
  162. package/lib/module/components/pictograms/svg/PictogramBiometric.js.map +1 -0
  163. package/lib/module/components/pictograms/svg/PictogramBleedEnded.js +35 -0
  164. package/lib/module/components/pictograms/svg/PictogramBleedEnded.js.map +1 -0
  165. package/lib/module/components/pictograms/svg/PictogramBleedLostConnection.js +56 -0
  166. package/lib/module/components/pictograms/svg/PictogramBleedLostConnection.js.map +1 -0
  167. package/lib/module/components/pictograms/svg/PictogramBleedPending.js +15 -9
  168. package/lib/module/components/pictograms/svg/PictogramBleedPending.js.map +1 -1
  169. package/lib/module/components/pictograms/svg/PictogramBleedQrCode.js +71 -0
  170. package/lib/module/components/pictograms/svg/PictogramBleedQrCode.js.map +1 -0
  171. package/lib/module/components/pictograms/svg/PictogramEmailDotCheck.js +52 -0
  172. package/lib/module/components/pictograms/svg/PictogramEmailDotCheck.js.map +1 -0
  173. package/lib/module/components/pictograms/svg/PictogramEmailDotNotif.js +50 -0
  174. package/lib/module/components/pictograms/svg/PictogramEmailDotNotif.js.map +1 -0
  175. package/lib/module/components/pictograms/svg/PictogramEnded.js +35 -0
  176. package/lib/module/components/pictograms/svg/PictogramEnded.js.map +1 -0
  177. package/lib/module/components/pictograms/svg/PictogramLostConnection.js +50 -0
  178. package/lib/module/components/pictograms/svg/PictogramLostConnection.js.map +1 -0
  179. package/lib/module/components/pictograms/svg/PictogramPending.js +15 -9
  180. package/lib/module/components/pictograms/svg/PictogramPending.js.map +1 -1
  181. package/lib/module/components/pictograms/svg/PictogramQrCode.js +83 -0
  182. package/lib/module/components/pictograms/svg/PictogramQrCode.js.map +1 -0
  183. package/lib/module/components/pictograms/svg/originals/PictogramBiometric.svg +1 -0
  184. package/lib/module/components/pictograms/svg/originals/PictogramBleedEnded.svg +1 -0
  185. package/lib/module/components/pictograms/svg/originals/PictogramBleedLostConnection.svg +1 -0
  186. package/lib/module/components/pictograms/svg/originals/PictogramBleedPending.svg +1 -1
  187. package/lib/module/components/pictograms/svg/originals/PictogramBleedQrCode.svg +1 -0
  188. package/lib/module/components/pictograms/svg/originals/PictogramEmailDotCheck.svg +41 -0
  189. package/lib/module/components/pictograms/svg/originals/PictogramEmailDotNotif.svg +35 -0
  190. package/lib/module/components/pictograms/svg/originals/PictogramEnded.svg +1 -0
  191. package/lib/module/components/pictograms/svg/originals/PictogramLostConnection.svg +1 -0
  192. package/lib/module/components/pictograms/svg/originals/PictogramPending.svg +1 -1
  193. package/lib/module/components/pictograms/svg/originals/PictogramQrCode.svg +1 -0
  194. package/lib/module/components/radio/RadioGroup.js +2 -1
  195. package/lib/module/components/radio/RadioGroup.js.map +1 -1
  196. package/lib/module/components/stepper/Stepper.js +43 -0
  197. package/lib/module/components/stepper/Stepper.js.map +1 -0
  198. package/lib/module/components/stepper/index.js +2 -0
  199. package/lib/module/components/stepper/index.js.map +1 -0
  200. package/lib/module/components/typography/H1.js +5 -3
  201. package/lib/module/components/typography/H1.js.map +1 -1
  202. package/lib/module/components/typography/H2.js +5 -3
  203. package/lib/module/components/typography/H2.js.map +1 -1
  204. package/lib/module/components/typography/H3.js +5 -3
  205. package/lib/module/components/typography/H3.js.map +1 -1
  206. package/lib/module/components/typography/H4.js +2 -1
  207. package/lib/module/components/typography/H4.js.map +1 -1
  208. package/lib/module/components/typography/H6.js +4 -2
  209. package/lib/module/components/typography/H6.js.map +1 -1
  210. package/lib/module/components/typography/Hero.js +7 -3
  211. package/lib/module/components/typography/Hero.js.map +1 -1
  212. package/lib/module/components/typography/LabelSmall.js +6 -1
  213. package/lib/module/components/typography/LabelSmall.js.map +1 -1
  214. package/lib/module/components/typography/LabelSmallAlt.js +32 -0
  215. package/lib/module/components/typography/LabelSmallAlt.js.map +1 -0
  216. package/lib/module/components/typography/README.md +23 -0
  217. package/lib/module/components/typography/__test__/__snapshots__/typography.test.tsx.snap +84 -74
  218. package/lib/module/components/typography/index.js +1 -0
  219. package/lib/module/components/typography/index.js.map +1 -1
  220. package/lib/typescript/components/checkbox/AnimatedCheckbox.d.ts.map +1 -1
  221. package/lib/typescript/components/codeInput/CodeInput.d.ts +11 -0
  222. package/lib/typescript/components/codeInput/CodeInput.d.ts.map +1 -0
  223. package/lib/typescript/components/codeInput/index.d.ts +2 -0
  224. package/lib/typescript/components/codeInput/index.d.ts.map +1 -0
  225. package/lib/typescript/components/icons/Icon.d.ts +1 -0
  226. package/lib/typescript/components/icons/Icon.d.ts.map +1 -1
  227. package/lib/typescript/components/icons/svg/IconSparkles.d.ts +5 -0
  228. package/lib/typescript/components/icons/svg/IconSparkles.d.ts.map +1 -0
  229. package/lib/typescript/components/index.d.ts +5 -3
  230. package/lib/typescript/components/index.d.ts.map +1 -1
  231. package/lib/typescript/components/layout/HeaderSecondLevel.d.ts.map +1 -1
  232. package/lib/typescript/components/listitems/ListItemAction.d.ts.map +1 -1
  233. package/lib/typescript/components/listitems/ListItemHeader.d.ts +34 -0
  234. package/lib/typescript/components/listitems/ListItemHeader.d.ts.map +1 -0
  235. package/lib/typescript/components/listitems/ListItemInfo.d.ts +8 -3
  236. package/lib/typescript/components/listitems/ListItemInfo.d.ts.map +1 -1
  237. package/lib/typescript/components/listitems/ListItemInfoCopy.d.ts.map +1 -1
  238. package/lib/typescript/components/listitems/ListItemNav.d.ts +4 -1
  239. package/lib/typescript/components/listitems/ListItemNav.d.ts.map +1 -1
  240. package/lib/typescript/components/listitems/ListItemNavAlert.d.ts +2 -2
  241. package/lib/typescript/components/listitems/ListItemNavAlert.d.ts.map +1 -1
  242. package/lib/typescript/components/listitems/ListItemRadio.d.ts +21 -3
  243. package/lib/typescript/components/listitems/ListItemRadio.d.ts.map +1 -1
  244. package/lib/typescript/components/listitems/ListItemRadioWithAmount.d.ts +13 -0
  245. package/lib/typescript/components/listitems/ListItemRadioWithAmount.d.ts.map +1 -0
  246. package/lib/typescript/components/listitems/ListItemTransaction.d.ts.map +1 -1
  247. package/lib/typescript/components/listitems/index.d.ts +2 -0
  248. package/lib/typescript/components/listitems/index.d.ts.map +1 -1
  249. package/lib/typescript/components/modules/ModuleCheckout.d.ts +15 -0
  250. package/lib/typescript/components/modules/ModuleCheckout.d.ts.map +1 -0
  251. package/lib/typescript/components/modules/index.d.ts +1 -0
  252. package/lib/typescript/components/modules/index.d.ts.map +1 -1
  253. package/lib/typescript/components/numberpad/NumberPad.d.ts +2 -1
  254. package/lib/typescript/components/numberpad/NumberPad.d.ts.map +1 -1
  255. package/lib/typescript/components/pictograms/Pictogram.d.ts +7 -1
  256. package/lib/typescript/components/pictograms/Pictogram.d.ts.map +1 -1
  257. package/lib/typescript/components/pictograms/svg/PictogramBiometric.d.ts +5 -0
  258. package/lib/typescript/components/pictograms/svg/PictogramBiometric.d.ts.map +1 -0
  259. package/lib/typescript/components/pictograms/svg/PictogramBleedEnded.d.ts +5 -0
  260. package/lib/typescript/components/pictograms/svg/PictogramBleedEnded.d.ts.map +1 -0
  261. package/lib/typescript/components/pictograms/svg/PictogramBleedLostConnection.d.ts +5 -0
  262. package/lib/typescript/components/pictograms/svg/PictogramBleedLostConnection.d.ts.map +1 -0
  263. package/lib/typescript/components/pictograms/svg/PictogramBleedPending.d.ts.map +1 -1
  264. package/lib/typescript/components/pictograms/svg/PictogramBleedQrCode.d.ts +5 -0
  265. package/lib/typescript/components/pictograms/svg/PictogramBleedQrCode.d.ts.map +1 -0
  266. package/lib/typescript/components/pictograms/svg/PictogramEmailDotCheck.d.ts +5 -0
  267. package/lib/typescript/components/pictograms/svg/PictogramEmailDotCheck.d.ts.map +1 -0
  268. package/lib/typescript/components/pictograms/svg/PictogramEmailDotNotif.d.ts +5 -0
  269. package/lib/typescript/components/pictograms/svg/PictogramEmailDotNotif.d.ts.map +1 -0
  270. package/lib/typescript/components/pictograms/svg/PictogramEnded.d.ts +5 -0
  271. package/lib/typescript/components/pictograms/svg/PictogramEnded.d.ts.map +1 -0
  272. package/lib/typescript/components/pictograms/svg/PictogramLostConnection.d.ts +5 -0
  273. package/lib/typescript/components/pictograms/svg/PictogramLostConnection.d.ts.map +1 -0
  274. package/lib/typescript/components/pictograms/svg/PictogramPending.d.ts.map +1 -1
  275. package/lib/typescript/components/pictograms/svg/PictogramQrCode.d.ts +5 -0
  276. package/lib/typescript/components/pictograms/svg/PictogramQrCode.d.ts.map +1 -0
  277. package/lib/typescript/components/radio/RadioGroup.d.ts +4 -3
  278. package/lib/typescript/components/radio/RadioGroup.d.ts.map +1 -1
  279. package/lib/typescript/components/stepper/Stepper.d.ts +8 -0
  280. package/lib/typescript/components/stepper/Stepper.d.ts.map +1 -0
  281. package/lib/typescript/components/stepper/index.d.ts +2 -0
  282. package/lib/typescript/components/stepper/index.d.ts.map +1 -0
  283. package/lib/typescript/components/typography/H1.d.ts +1 -1
  284. package/lib/typescript/components/typography/H1.d.ts.map +1 -1
  285. package/lib/typescript/components/typography/H2.d.ts +1 -1
  286. package/lib/typescript/components/typography/H2.d.ts.map +1 -1
  287. package/lib/typescript/components/typography/H3.d.ts +1 -1
  288. package/lib/typescript/components/typography/H3.d.ts.map +1 -1
  289. package/lib/typescript/components/typography/H4.d.ts.map +1 -1
  290. package/lib/typescript/components/typography/H6.d.ts.map +1 -1
  291. package/lib/typescript/components/typography/Hero.d.ts +1 -1
  292. package/lib/typescript/components/typography/Hero.d.ts.map +1 -1
  293. package/lib/typescript/components/typography/LabelSmall.d.ts.map +1 -1
  294. package/lib/typescript/components/typography/LabelSmallAlt.d.ts +14 -0
  295. package/lib/typescript/components/typography/LabelSmallAlt.d.ts.map +1 -0
  296. package/lib/typescript/components/typography/index.d.ts +1 -0
  297. package/lib/typescript/components/typography/index.d.ts.map +1 -1
  298. package/package.json +9 -2
  299. package/src/components/banner/__test__/__snapshots__/banner.test.tsx.snap +4 -4
  300. package/src/components/buttons/__test__/__snapshots__/button.test.tsx.snap +4 -4
  301. package/src/components/checkbox/AnimatedCheckbox.tsx +6 -4
  302. package/src/components/codeInput/CodeInput.tsx +121 -0
  303. package/src/components/codeInput/index.tsx +1 -0
  304. package/src/components/icons/Icon.tsx +2 -0
  305. package/src/components/icons/README.md +79 -19
  306. package/src/components/icons/svg/IconSparkles.tsx +14 -0
  307. package/src/components/icons/svg/originals/IconSparkles.svg +3 -0
  308. package/src/components/index.tsx +5 -3
  309. package/src/components/layout/HeaderSecondLevel.tsx +6 -9
  310. package/src/components/listitems/ListItemAction.tsx +4 -3
  311. package/src/components/listitems/ListItemHeader.tsx +146 -0
  312. package/src/components/listitems/ListItemInfo.tsx +33 -16
  313. package/src/components/listitems/ListItemInfoCopy.tsx +14 -57
  314. package/src/components/listitems/ListItemNav.tsx +32 -44
  315. package/src/components/listitems/ListItemNavAlert.tsx +21 -42
  316. package/src/components/listitems/ListItemRadio.tsx +99 -12
  317. package/src/components/listitems/ListItemRadioWithAmount.tsx +69 -0
  318. package/src/components/listitems/ListItemTransaction.tsx +12 -7
  319. package/src/components/listitems/__test__/__snapshots__/listitem.test.tsx.snap +684 -34
  320. package/src/components/listitems/__test__/listitem.test.tsx +21 -0
  321. package/src/components/listitems/index.tsx +2 -0
  322. package/src/components/modules/ModuleCheckout.tsx +98 -0
  323. package/src/components/modules/index.tsx +1 -0
  324. package/src/components/numberpad/NumberPad.tsx +7 -8
  325. package/src/components/pictograms/Pictogram.tsx +23 -2
  326. package/src/components/pictograms/README.md +103 -14
  327. package/src/components/pictograms/svg/PictogramBiometric.tsx +78 -0
  328. package/src/components/pictograms/svg/PictogramBleedEnded.tsx +38 -0
  329. package/src/components/pictograms/svg/PictogramBleedLostConnection.tsx +66 -0
  330. package/src/components/pictograms/svg/PictogramBleedPending.tsx +17 -9
  331. package/src/components/pictograms/svg/PictogramBleedQrCode.tsx +86 -0
  332. package/src/components/pictograms/svg/PictogramEmailDotCheck.tsx +53 -0
  333. package/src/components/pictograms/svg/PictogramEmailDotNotif.tsx +51 -0
  334. package/src/components/pictograms/svg/PictogramEnded.tsx +34 -0
  335. package/src/components/pictograms/svg/PictogramLostConnection.tsx +58 -0
  336. package/src/components/pictograms/svg/PictogramPending.tsx +17 -9
  337. package/src/components/pictograms/svg/PictogramQrCode.tsx +102 -0
  338. package/src/components/pictograms/svg/originals/PictogramBiometric.svg +1 -0
  339. package/src/components/pictograms/svg/originals/PictogramBleedEnded.svg +1 -0
  340. package/src/components/pictograms/svg/originals/PictogramBleedLostConnection.svg +1 -0
  341. package/src/components/pictograms/svg/originals/PictogramBleedPending.svg +1 -1
  342. package/src/components/pictograms/svg/originals/PictogramBleedQrCode.svg +1 -0
  343. package/src/components/pictograms/svg/originals/PictogramEmailDotCheck.svg +41 -0
  344. package/src/components/pictograms/svg/originals/PictogramEmailDotNotif.svg +35 -0
  345. package/src/components/pictograms/svg/originals/PictogramEnded.svg +1 -0
  346. package/src/components/pictograms/svg/originals/PictogramLostConnection.svg +1 -0
  347. package/src/components/pictograms/svg/originals/PictogramPending.svg +1 -1
  348. package/src/components/pictograms/svg/originals/PictogramQrCode.svg +1 -0
  349. package/src/components/radio/RadioGroup.tsx +5 -4
  350. package/src/components/stepper/Stepper.tsx +62 -0
  351. package/src/components/stepper/index.tsx +1 -0
  352. package/src/components/typography/H1.tsx +8 -3
  353. package/src/components/typography/H2.tsx +8 -3
  354. package/src/components/typography/H3.tsx +8 -3
  355. package/src/components/typography/H4.tsx +5 -1
  356. package/src/components/typography/H6.tsx +6 -1
  357. package/src/components/typography/Hero.tsx +10 -3
  358. package/src/components/typography/LabelSmall.tsx +8 -1
  359. package/src/components/typography/LabelSmallAlt.tsx +51 -0
  360. package/src/components/typography/README.md +23 -0
  361. package/src/components/typography/__test__/__snapshots__/typography.test.tsx.snap +84 -74
  362. package/src/components/typography/index.tsx +1 -0
  363. package/lib/commonjs/components/icons/generateNewIcons.js +0 -165
  364. package/lib/commonjs/components/icons/generateNewIcons.js.map +0 -1
  365. package/lib/commonjs/components/icons/generateNewTimestamp.js +0 -8
  366. package/lib/commonjs/components/icons/generateNewTimestamp.js.map +0 -1
  367. package/lib/commonjs/components/icons/timestamp.txt +0 -1
  368. package/lib/commonjs/components/pictograms/generateNewPictograms.js +0 -163
  369. package/lib/commonjs/components/pictograms/generateNewPictograms.js.map +0 -1
  370. package/lib/commonjs/components/pictograms/timestamp.txt +0 -1
  371. package/lib/commonjs/stories/ButtonDS.stories.js +0 -34
  372. package/lib/commonjs/stories/ButtonDS.stories.js.map +0 -1
  373. package/lib/commonjs/stories/H1.stories.js +0 -33
  374. package/lib/commonjs/stories/H1.stories.js.map +0 -1
  375. package/lib/commonjs/stories/H2.stories.js +0 -33
  376. package/lib/commonjs/stories/H2.stories.js.map +0 -1
  377. package/lib/commonjs/stories/H3.stories.js +0 -33
  378. package/lib/commonjs/stories/H3.stories.js.map +0 -1
  379. package/lib/commonjs/stories/H4.stories.js +0 -33
  380. package/lib/commonjs/stories/H4.stories.js.map +0 -1
  381. package/lib/commonjs/stories/H5.stories.js +0 -33
  382. package/lib/commonjs/stories/H5.stories.js.map +0 -1
  383. package/lib/commonjs/stories/H6.stories.js +0 -33
  384. package/lib/commonjs/stories/H6.stories.js.map +0 -1
  385. package/lib/commonjs/stories/Label.stories.js +0 -33
  386. package/lib/commonjs/stories/Label.stories.js.map +0 -1
  387. package/lib/commonjs/stories/LabelSmall.stories.js +0 -33
  388. package/lib/commonjs/stories/LabelSmall.stories.js.map +0 -1
  389. package/lib/commonjs/stories/Link.stories.js +0 -33
  390. package/lib/commonjs/stories/Link.stories.js.map +0 -1
  391. package/lib/commonjs/stories/ModuleIDP.stories.js +0 -45
  392. package/lib/commonjs/stories/ModuleIDP.stories.js.map +0 -1
  393. package/lib/commonjs/stories/Monospace.stories.js +0 -33
  394. package/lib/commonjs/stories/Monospace.stories.js.map +0 -1
  395. package/lib/module/components/icons/generateNewIcons.js +0 -163
  396. package/lib/module/components/icons/generateNewIcons.js.map +0 -1
  397. package/lib/module/components/icons/generateNewTimestamp.js +0 -6
  398. package/lib/module/components/icons/generateNewTimestamp.js.map +0 -1
  399. package/lib/module/components/icons/timestamp.txt +0 -1
  400. package/lib/module/components/pictograms/generateNewPictograms.js +0 -161
  401. package/lib/module/components/pictograms/generateNewPictograms.js.map +0 -1
  402. package/lib/module/components/pictograms/timestamp.txt +0 -1
  403. package/lib/module/stories/ButtonDS.stories.js +0 -27
  404. package/lib/module/stories/ButtonDS.stories.js.map +0 -1
  405. package/lib/module/stories/H1.stories.js +0 -26
  406. package/lib/module/stories/H1.stories.js.map +0 -1
  407. package/lib/module/stories/H2.stories.js +0 -26
  408. package/lib/module/stories/H2.stories.js.map +0 -1
  409. package/lib/module/stories/H3.stories.js +0 -26
  410. package/lib/module/stories/H3.stories.js.map +0 -1
  411. package/lib/module/stories/H4.stories.js +0 -26
  412. package/lib/module/stories/H4.stories.js.map +0 -1
  413. package/lib/module/stories/H5.stories.js +0 -26
  414. package/lib/module/stories/H5.stories.js.map +0 -1
  415. package/lib/module/stories/H6.stories.js +0 -26
  416. package/lib/module/stories/H6.stories.js.map +0 -1
  417. package/lib/module/stories/Label.stories.js +0 -26
  418. package/lib/module/stories/Label.stories.js.map +0 -1
  419. package/lib/module/stories/LabelSmall.stories.js +0 -26
  420. package/lib/module/stories/LabelSmall.stories.js.map +0 -1
  421. package/lib/module/stories/Link.stories.js +0 -26
  422. package/lib/module/stories/Link.stories.js.map +0 -1
  423. package/lib/module/stories/ModuleIDP.stories.js +0 -37
  424. package/lib/module/stories/ModuleIDP.stories.js.map +0 -1
  425. package/lib/module/stories/Monospace.stories.js +0 -26
  426. package/lib/module/stories/Monospace.stories.js.map +0 -1
  427. package/lib/typescript/stories/ButtonDS.stories.d.ts +0 -14
  428. package/lib/typescript/stories/ButtonDS.stories.d.ts.map +0 -1
  429. package/lib/typescript/stories/H1.stories.d.ts +0 -19
  430. package/lib/typescript/stories/H1.stories.d.ts.map +0 -1
  431. package/lib/typescript/stories/H2.stories.d.ts +0 -19
  432. package/lib/typescript/stories/H2.stories.d.ts.map +0 -1
  433. package/lib/typescript/stories/H3.stories.d.ts +0 -19
  434. package/lib/typescript/stories/H3.stories.d.ts.map +0 -1
  435. package/lib/typescript/stories/H4.stories.d.ts +0 -19
  436. package/lib/typescript/stories/H4.stories.d.ts.map +0 -1
  437. package/lib/typescript/stories/H5.stories.d.ts +0 -19
  438. package/lib/typescript/stories/H5.stories.d.ts.map +0 -1
  439. package/lib/typescript/stories/H6.stories.d.ts +0 -19
  440. package/lib/typescript/stories/H6.stories.d.ts.map +0 -1
  441. package/lib/typescript/stories/Label.stories.d.ts +0 -21
  442. package/lib/typescript/stories/Label.stories.d.ts.map +0 -1
  443. package/lib/typescript/stories/LabelSmall.stories.d.ts +0 -21
  444. package/lib/typescript/stories/LabelSmall.stories.d.ts.map +0 -1
  445. package/lib/typescript/stories/Link.stories.d.ts +0 -21
  446. package/lib/typescript/stories/Link.stories.d.ts.map +0 -1
  447. package/lib/typescript/stories/ModuleIDP.stories.d.ts +0 -24
  448. package/lib/typescript/stories/ModuleIDP.stories.d.ts.map +0 -1
  449. package/lib/typescript/stories/Monospace.stories.d.ts +0 -19
  450. package/lib/typescript/stories/Monospace.stories.d.ts.map +0 -1
  451. package/src/components/icons/generateNewIcons.js +0 -186
  452. package/src/components/icons/generateNewTimestamp.js +0 -7
  453. package/src/components/icons/timestamp.txt +0 -1
  454. package/src/components/pictograms/generateNewPictograms.js +0 -181
  455. package/src/components/pictograms/timestamp.txt +0 -1
  456. package/src/stories/ButtonDS.stories.ts +0 -31
  457. package/src/stories/H1.stories.ts +0 -28
  458. package/src/stories/H2.stories.ts +0 -28
  459. package/src/stories/H3.stories.ts +0 -28
  460. package/src/stories/H4.stories.ts +0 -28
  461. package/src/stories/H5.stories.ts +0 -28
  462. package/src/stories/H6.stories.ts +0 -28
  463. package/src/stories/Label.stories.ts +0 -28
  464. package/src/stories/LabelSmall.stories.ts +0 -28
  465. package/src/stories/Link.stories.ts +0 -28
  466. package/src/stories/ModuleIDP.stories.tsx +0 -44
  467. package/src/stories/Monospace.stories.ts +0 -28
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/index.tsx"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,MAAM,CAAC;AACrB,cAAc,MAAM,CAAC;AACrB,cAAc,MAAM,CAAC;AACrB,cAAc,MAAM,CAAC;AACrB,cAAc,MAAM,CAAC;AACrB,cAAc,MAAM,CAAC;AACrB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/index.tsx"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,MAAM,CAAC;AACrB,cAAc,MAAM,CAAC;AACrB,cAAc,MAAM,CAAC;AACrB,cAAc,MAAM,CAAC;AACrB,cAAc,MAAM,CAAC;AACrB,cAAc,MAAM,CAAC;AACrB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pagopa/io-app-design-system",
3
- "version": "1.16.0",
3
+ "version": "1.17.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",
@@ -36,7 +36,10 @@
36
36
  "example": "yarn --cwd example",
37
37
  "bootstrap": "yarn example && yarn install",
38
38
  "storybook": "storybook dev -p 6006",
39
- "build-storybook": "storybook build"
39
+ "build-storybook": "storybook build",
40
+ "generate:icons": "node scripts/generateNewIcons.js",
41
+ "generate:pictograms": "node scripts/generateNewPictograms.js",
42
+ "generate": "npm-run-all generate:*"
40
43
  },
41
44
  "keywords": [
42
45
  "react-native",
@@ -98,6 +101,7 @@
98
101
  "react-test-renderer": "^18.2.0",
99
102
  "release-it": "^15.0.0",
100
103
  "storybook": "^7.4.0",
104
+ "storybook-react-context": "^0.6.0",
101
105
  "svgo": "^3.0.2",
102
106
  "typescript": "^4.9.5"
103
107
  },
@@ -163,6 +167,9 @@
163
167
  "react-native-builder-bob": {
164
168
  "source": "src",
165
169
  "output": "lib",
170
+ "exclude": [
171
+ "example"
172
+ ],
166
173
  "targets": [
167
174
  "commonjs",
168
175
  "module",
@@ -78,15 +78,15 @@ exports[`Test Banner Components Banner Snapshot 1`] = `
78
78
  font="TitilliumWeb"
79
79
  fontStyle={
80
80
  {
81
- "fontSize": 16,
82
- "lineHeight": 24,
81
+ "fontSize": 18,
82
+ "lineHeight": 25,
83
83
  }
84
84
  }
85
85
  style={
86
86
  [
87
87
  {
88
- "fontSize": 16,
89
- "lineHeight": 24,
88
+ "fontSize": 18,
89
+ "lineHeight": 25,
90
90
  },
91
91
  {
92
92
  "color": "#031344",
@@ -74,15 +74,15 @@ exports[`Test Buttons Components ButtonExtendedOutline Snapshot 1`] = `
74
74
  font="TitilliumWeb"
75
75
  fontStyle={
76
76
  {
77
- "fontSize": 16,
78
- "lineHeight": 24,
77
+ "fontSize": 18,
78
+ "lineHeight": 25,
79
79
  }
80
80
  }
81
81
  style={
82
82
  [
83
83
  {
84
- "fontSize": 16,
85
- "lineHeight": 24,
84
+ "fontSize": 18,
85
+ "lineHeight": 25,
86
86
  },
87
87
  {
88
88
  "color": "#0E0F13",
@@ -126,10 +126,12 @@ export const AnimatedCheckbox = ({ checked, onPress, disabled }: OwnProps) => {
126
126
  ]}
127
127
  />
128
128
  {isChecked && (
129
- <AnimatedTick
130
- progress={tickAnimationProgress}
131
- stroke={IOColors[IOSelectionTickVisualParams.tickColor]}
132
- />
129
+ <View style={{ zIndex: 1 }}>
130
+ <AnimatedTick
131
+ progress={tickAnimationProgress}
132
+ stroke={IOColors[IOSelectionTickVisualParams.tickColor]}
133
+ />
134
+ </View>
133
135
  )}
134
136
  </Pressable>
135
137
  );
@@ -0,0 +1,121 @@
1
+ import React, { useEffect, useMemo } from "react";
2
+ import { StyleSheet, View } from "react-native";
3
+ import Animated, {
4
+ Easing,
5
+ useAnimatedStyle,
6
+ useSharedValue,
7
+ withSequence,
8
+ withTiming
9
+ } from "react-native-reanimated";
10
+ import { IOColors, IOStyles } from "../../core";
11
+ import { triggerHaptic } from "../../functions";
12
+
13
+ type CodeInputProps = {
14
+ value: string;
15
+ onValueChange: (value: string) => void;
16
+ length: number;
17
+ onValidate: (value: string) => boolean;
18
+ variant?: "light" | "dark";
19
+ };
20
+
21
+ const DOT_SIZE = 16;
22
+
23
+ const styles = StyleSheet.create({
24
+ dotShape: {
25
+ width: DOT_SIZE,
26
+ height: DOT_SIZE,
27
+ borderRadius: 8,
28
+ borderWidth: 2
29
+ },
30
+ dotEmpty: {
31
+ borderColor: IOColors["grey-200"]
32
+ },
33
+ wrapper: { justifyContent: "center", gap: DOT_SIZE }
34
+ });
35
+
36
+ const EmptyDot = () => <View style={[styles.dotShape, styles.dotEmpty]} />;
37
+
38
+ const FilletDot = ({ color }: { color: IOColors }) => (
39
+ <View
40
+ style={[
41
+ styles.dotShape,
42
+ { backgroundColor: IOColors[color], borderColor: IOColors[color] }
43
+ ]}
44
+ />
45
+ );
46
+
47
+ export const CodeInput = ({
48
+ length,
49
+ value,
50
+ onValueChange,
51
+ variant = "light",
52
+ onValidate
53
+ }: CodeInputProps) => {
54
+ const [status, setStatus] = React.useState<"default" | "error">("default");
55
+
56
+ const translate = useSharedValue(0);
57
+ const shakeOffset: number = 8;
58
+
59
+ const animatedStyle = useAnimatedStyle(() => ({
60
+ transform: [{ translateX: translate.value }]
61
+ }));
62
+
63
+ const fillColor = useMemo(
64
+ () =>
65
+ status === "error"
66
+ ? "error-600"
67
+ : variant === "light"
68
+ ? "white"
69
+ : "black",
70
+ [variant, status]
71
+ );
72
+
73
+ useEffect(() => {
74
+ if (onValidate && value.length === length) {
75
+ const isValid = onValidate(value);
76
+
77
+ if (!isValid) {
78
+ setStatus("error");
79
+ triggerHaptic("notificationError");
80
+
81
+ // eslint-disable-next-line functional/immutable-data
82
+ translate.value = withSequence(
83
+ withTiming(shakeOffset, {
84
+ duration: 75,
85
+ easing: Easing.inOut(Easing.cubic)
86
+ }),
87
+ withTiming(-shakeOffset, {
88
+ duration: 75,
89
+ easing: Easing.inOut(Easing.cubic)
90
+ }),
91
+ withTiming(shakeOffset / 2, {
92
+ duration: 75,
93
+ easing: Easing.inOut(Easing.cubic)
94
+ }),
95
+ withTiming(-shakeOffset / 2, {
96
+ duration: 75,
97
+ easing: Easing.inOut(Easing.cubic)
98
+ }),
99
+ withTiming(0, { duration: 75, easing: Easing.inOut(Easing.cubic) })
100
+ );
101
+
102
+ const timer = setTimeout(() => {
103
+ setStatus("default");
104
+ onValueChange("");
105
+ }, 500);
106
+ return () => clearTimeout(timer);
107
+ }
108
+ }
109
+ return;
110
+ }, [value, onValidate, length, onValueChange, translate]);
111
+
112
+ return (
113
+ <Animated.View style={[IOStyles.row, styles.wrapper, animatedStyle]}>
114
+ {[...Array(length)].map((_, i) => (
115
+ <React.Fragment key={i}>
116
+ {value[i] ? <FilletDot color={fillColor} /> : <EmptyDot />}
117
+ </React.Fragment>
118
+ ))}
119
+ </Animated.View>
120
+ );
121
+ };
@@ -0,0 +1 @@
1
+ export * from "./CodeInput";
@@ -190,6 +190,7 @@ import IconRead from "./svg/IconRead";
190
190
  import IconReceiptOff from "./svg/IconReceiptOff";
191
191
  import IconSignal from "./svg/IconSignal";
192
192
  import IconTouch from "./svg/IconTouch";
193
+ import IconSparkles from "./svg/IconSparkles";
193
194
 
194
195
  export const IOIcons = {
195
196
  spid: IconSpid,
@@ -289,6 +290,7 @@ export const IOIcons = {
289
290
  familySharing: IconFamilySharing,
290
291
  lightbulb: IconLightbulb,
291
292
  magicWand: IconMagicWand,
293
+ sparkles: IconSparkles,
292
294
  starFilled: IconStarFilled,
293
295
  starEmpty: IconStarEmpty,
294
296
  hearthEmpty: IconHearthEmpty,
@@ -4,33 +4,91 @@ There are different sets:
4
4
  * **Navigation**: Icons used in the main Tab bar
5
5
  * **Biometric**: Icons used for the biometric identification
6
6
  * **Categories**: Icons used for the different sectors available in the Carta Giovani Nazionale
7
- * **Product**: PagoPA products' icons
8
-
9
- ## Prefixes
10
- - **General**: `Icon…`
11
- - **Navigation**: `IconNav…`
12
- - **Biometric**: `IconBiometric…`
13
- - **Categories**: `IconCateg…`
14
- - **Product**: `IconProduct…`
7
+ * **Product**: PagoPA products' icons
8
+ * **System**: OS-specific icons (iOS/Android)
15
9
 
16
10
  ## Add a new icon
17
- First of all, follow the instructions stated in the main README (`Vector graphics` section).
18
11
 
19
- If you want to add a new icon in the `General` set, open the `Icon.tsx` file and import the React component:
20
- ```jsx
21
- […]
22
- import IconSpid from "./svg/IconSpid";
23
- […]
24
- ```
12
+ ### Prerequisites
13
+
14
+ In your user interface design app (Figma/Sketch) export your SVG with `1×` preset. The name usually consists of a specific prefix followed by the associated key:
15
+ - **General**: `Icon…`
16
+ - **Navigation**: `IconNav…`
17
+ - **Biometric**: `IconBiometric…`
18
+ - **Categories**: `IconCateg…`
19
+ - **Product**: `IconProduct…`
20
+ - **System**: `IconSystem…`
21
+
22
+ > [!important]
23
+ > The icon must be contained within a `24×24` frame.
24
+
25
+ > [!tip]
26
+ > If you want to add a new `Wallet` icon to be used in the main tab bar, your icon will have a `IconNavWallet` filename. If it doesn't belong to a specific set, you just put the name after the prefix `Icon…`, so `IconWallet`
27
+
28
+ > [!caution]
29
+ > This filename will be the same as the React component, so make sure you don't already have a component with that filename
30
+
31
+ ### Create the corresponding React component
32
+
33
+ #### Using `scripts/generateNewIcons.js`
34
+ 1. Move the exported file to the `icons/svg/originals` folder
35
+ 2. In your terminal, in the same folder, run the command: `yarn generate:icons`
36
+ 3. The script will process `scripts/icons_timestamp.txt`, generate the new React components (with `*.tsx` extension) following exactly the steps listed in the manual process (see below), and process **only the files added after this timestamp value**
37
+ 4. If the `generateNewIcons` script accidentally overwrites older React components, remember to discard the changes before committing
38
+
39
+ > [!caution]
40
+ > If your icon **is not** monochromatic, you should use the manual process because the script doesn't support this specific case yet
41
+
42
+ #### Manual process (alternative)
43
+
44
+ 1. Move the exported file to the `icons/svg/originals` folder
45
+ 2. In your original SVG file, delete `width` and `height` attributes and leave the original `viewBox` attribute. You could easily process the image using online editors like [SVGOmg](https://jakearchibald.github.io/svgomg/) (enable `Prefer viewBox to width/height`)
46
+ 3. In the `icons/svg` folder, create a new React component (with a `.tsx` extension) of the same name
47
+ 4. Copy all the `<path>` elements into the new React component and replace the original `<path>` with the element `<Path>` (capital P) from the `react-native-svg` package. Replace all the harcoded fill values with the generic `currentColor` value, so that the icon inherits the color from the parent `Svg` container
48
+
49
+ 5. Add the dynamic size and colour (if required), replacing the hardcoded values with the corresponding props. The final result should be similar to the following:
50
+ ```tsx
51
+ import { Svg, Path } from "react-native-svg";
52
+ // [...]
53
+
54
+ const IconSpid = ({ size, style }: SVGIconProps) => (
55
+ <Svg width={size} height={size} viewBox="0 0 24 24" style={style}>
56
+ <Path
57
+ d="M13.615 …"
58
+ fill="currentColor"
59
+ />
60
+ </Svg>
61
+ );
62
+ ```
63
+ 6. Repeat the previous steps for each icon
64
+ 7. Once you have finished processing all the new icons, run `node generateNewTimestamp` to avoid overwriting these files with the `generateNewIcons` process.
65
+
66
+ > [!caution]
67
+ > The `currentColor` value should only be added for monochromatic icons. For example, if you export an `IconSystem...` with specific color values, don't add it at all.
68
+
69
+ #### Wrong icon rendering?
70
+ Before exporting the SVG file:
71
+ 1. Detach the symbol instance to avoid destructive actions to the original source component. Use a draft or disposable project document. **Don't detach it** if you are in the original Design System project file
72
+ 2. Outline all the present strokes (unless required for dynamic stroke width, but we don't manage this case at the moment)
73
+ 3. Select all the different paths and flatten into one. Now you should have a single vector layer.
74
+ 4. Make sure your vector path is centered (both vertically and horizontally) in a square
75
+
76
+ ### Add the corresponding key to the `Icon` component
77
+
25
78
  Add the desired key to the `IOIcons` object with the corresponding component reference:
26
- ```jsx
79
+ ```tsx
27
80
  export const IOIcons = {
28
81
  spid: IconSpid,
29
82
 
30
83
  }
31
84
  ```
32
- Add the key to the relative icon set:
33
- ```ts
85
+ There's no need to add the new icon in the specific Design System page because it happens automatically.
86
+
87
+ > [!important]
88
+ > To keep the icons grouped by sets, remember to put the key above the icons with a specific prefix
89
+
90
+ If the icon belongs to a specific set, add the key to the relative icon set as well:
91
+ ```tsx
34
92
  export const IONavIcons = {
35
93
  navMessages,
36
94
  navWallet,
@@ -42,6 +100,8 @@ export const IONavIcons = {
42
100
  } as const;
43
101
  ```
44
102
 
103
+ ### Use the new icon in a different component
104
+
45
105
  You can add the recently added icon with the following declaration:
46
106
  ```jsx
47
107
  // Default size: 24×24px
@@ -51,5 +111,5 @@ You can add the recently added icon with the following declaration:
51
111
 
52
112
  ## View all the available icons
53
113
  There are two ways:
54
- - In the app, go to the `Profile → Design System → Icons` (you must enable `Debug Mode`)
114
+ - In the main app, go to the `Profile → Design System → Icons` (you must enable `Debug Mode`)
55
115
  - In the repository, go to the `svg/originals` subfolder
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ import { Path, Svg } from "react-native-svg";
3
+ import { SVGIconProps } from "../Icon";
4
+
5
+ const IconSparkles = ({ size, style, ...props }: SVGIconProps) => (
6
+ <Svg width={size} height={size} viewBox="0 0 16 17" style={style} {...props}>
7
+ <Path
8
+ fill="currentColor"
9
+ d="M5.64418.97979c.23675-.63972 1.14156-.63972 1.37831 0l1.27772 3.45256a.73476.73476 0 0 0 .43411.43411l3.45258 1.27772c.6397.23675.6397 1.14156 0 1.37831L8.73432 8.80021a.73476.73476 0 0 0-.43411.43411L7.02249 12.6869c-.23675.6397-1.14156.6397-1.37831 0L4.36646 9.23432a.73476.73476 0 0 0-.43411-.43411L.47979 7.52249c-.63972-.23675-.63972-1.14156 0-1.37831l3.45256-1.27772a.73476.73476 0 0 0 .43411-.43411L5.64418.97979Zm6.65942 9.10601c.1246-.33665.6008-.33665.7255 0l.6724 1.8172a.38723.38723 0 0 0 .2285.2285l1.8172.6725c.3366.1246.3366.6008 0 .7254l-1.8172.6725a.3868.3868 0 0 0-.2285.2284l-.6724 1.8172c-.1247.3367-.6009.3367-.7255 0l-.6725-1.8172a.38638.38638 0 0 0-.2284-.2284l-1.81717-.6725c-.3367-.1246-.3367-.6008 0-.7254l1.81717-.6725a.3868.3868 0 0 0 .2284-.2285l.6725-1.8172Z"
10
+ />
11
+ </Svg>
12
+ );
13
+
14
+ export default IconSparkles;
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 17">
2
+ <path fill="#5517E3" d="M5.64418.97979c.23675-.63972 1.14156-.63972 1.37831 0l1.27772 3.45256a.73476.73476 0 0 0 .43411.43411l3.45258 1.27772c.6397.23675.6397 1.14156 0 1.37831L8.73432 8.80021a.73476.73476 0 0 0-.43411.43411L7.02249 12.6869c-.23675.6397-1.14156.6397-1.37831 0L4.36646 9.23432a.73476.73476 0 0 0-.43411-.43411L.47979 7.52249c-.63972-.23675-.63972-1.14156 0-1.37831l3.45256-1.27772a.73476.73476 0 0 0 .43411-.43411L5.64418.97979Zm6.65942 9.10601c.1246-.33665.6008-.33665.7255 0l.6724 1.8172a.38723.38723 0 0 0 .2285.2285l1.8172.6725c.3366.1246.3366.6008 0 .7254l-1.8172.6725a.3868.3868 0 0 0-.2285.2284l-.6724 1.8172c-.1247.3367-.6009.3367-.7255 0l-.6725-1.8172a.38638.38638 0 0 0-.2284-.2284l-1.81717-.6725c-.3367-.1246-.3367-.6008 0-.7254l1.81717-.6725a.3868.3868 0 0 0 .2284-.2285l.6725-1.8172Z"/>
3
+ </svg>
@@ -2,25 +2,27 @@ export * from "./accordion";
2
2
  export * from "./alert";
3
3
  export * from "./avatar";
4
4
  export * from "./badge";
5
+ export * from "./banner";
5
6
  export * from "./buttons";
6
7
  export * from "./checkbox";
7
8
  export * from "./contentWrapper";
9
+ export * from "./codeInput";
8
10
  export * from "./divider";
9
11
  export * from "./featureInfo";
10
12
  export * from "./icons";
13
+ export * from "./layout";
11
14
  export * from "./listitems";
12
15
  export * from "./logos";
13
16
  export * from "./loadingSpinner";
14
17
  export * from "./modules";
15
- export * from "./banner";
18
+ export * from "./numberpad";
16
19
  export * from "./pictograms";
17
20
  export * from "./radio";
18
21
  export * from "./spacer";
22
+ export * from "./stepper";
19
23
  export * from "./switch";
20
24
  export * from "./tag";
21
25
  export * from "./tabs";
22
26
  export * from "./toast";
23
27
  export * from "./typography";
24
28
  export * from "./textInput";
25
- export * from "./layout";
26
- export * from "./numberpad";
@@ -74,7 +74,6 @@ const styles = StyleSheet.create({
74
74
  headerInner: {
75
75
  paddingHorizontal: IOVisualCostants.appMarginDefault,
76
76
  height: IOVisualCostants.headerHeight,
77
- borderBottomWidth: 1,
78
77
  flexGrow: 1,
79
78
  flexDirection: "row",
80
79
  alignItems: "center",
@@ -146,19 +145,17 @@ export const HeaderSecondLevel = ({
146
145
  return (
147
146
  <Animated.View
148
147
  accessibilityRole="header"
149
- style={
148
+ style={[
150
149
  transparent
151
150
  ? { borderBottomWidth: 0 }
152
- : { backgroundColor: IOColors[HEADER_BG_COLOR] }
153
- }
151
+ : { backgroundColor: IOColors[HEADER_BG_COLOR] },
152
+ { borderBottomWidth: 1 },
153
+ headerWrapperAnimatedStyle
154
+ ]}
154
155
  >
155
156
  <Animated.View
156
157
  testID={testID}
157
- style={[
158
- { marginTop: insets.top },
159
- styles.headerInner,
160
- headerWrapperAnimatedStyle
161
- ]}
158
+ style={[{ marginTop: insets.top }, styles.headerInner]}
162
159
  >
163
160
  <IconButton
164
161
  icon={Platform.OS === "ios" ? "backiOS" : "backAndroid"}
@@ -29,6 +29,7 @@ import {
29
29
  import { makeFontStyleObject } from "../../utils/fonts";
30
30
  import { WithTestID } from "../../utils/types";
31
31
  import { AnimatedIcon, IOIcons, Icon } from "../icons";
32
+ import { buttonTextFontSize } from "../typography/ButtonText";
32
33
 
33
34
  export type ListItemAction = WithTestID<{
34
35
  label: string;
@@ -41,7 +42,7 @@ export type ListItemAction = WithTestID<{
41
42
 
42
43
  const styles = StyleSheet.create({
43
44
  label: {
44
- fontSize: 16,
45
+ fontSize: buttonTextFontSize,
45
46
  lineHeight: 20,
46
47
  ...makeFontStyleObject("Regular", false, "ReadexPro")
47
48
  }
@@ -50,8 +51,8 @@ const styles = StyleSheet.create({
50
51
  // TODO: Remove this when legacy look is deprecated https://pagopa.atlassian.net/browse/IOPLT-153
51
52
  const legacyStyles = StyleSheet.create({
52
53
  labelLegacy: {
53
- fontSize: 18,
54
- lineHeight: 24,
54
+ fontSize: buttonTextFontSize,
55
+ lineHeight: 20,
55
56
  ...makeFontStyleObject("SemiBold", false, "TitilliumWeb")
56
57
  }
57
58
  });
@@ -0,0 +1,146 @@
1
+ import React, { ComponentProps, useCallback, useMemo } from "react";
2
+ import { View } from "react-native";
3
+ import {
4
+ IOListItemStyles,
5
+ IOListItemVisualParams,
6
+ IOStyles,
7
+ useIOTheme
8
+ } from "../../core";
9
+ import { WithTestID } from "../../utils/types";
10
+ import { IOIcons, Icon } from "../icons";
11
+ import { H6 } from "../typography";
12
+ import { ButtonLink, IconButton } from "../buttons";
13
+ import { Badge } from "../badge";
14
+
15
+ type ButtonLinkActionProps = {
16
+ type: "buttonLink";
17
+ componentProps: ComponentProps<typeof ButtonLink>;
18
+ };
19
+
20
+ type IconButtonActionProps = {
21
+ type: "iconButton";
22
+ componentProps: ComponentProps<typeof IconButton>;
23
+ };
24
+
25
+ type BadgeProps = {
26
+ type: "badge";
27
+ componentProps: ComponentProps<typeof Badge>;
28
+ };
29
+
30
+ type IconProps =
31
+ | {
32
+ iconName: IOIcons;
33
+ iconColor?: ComponentProps<typeof Icon>["color"];
34
+ }
35
+ | { iconName?: never; iconColor?: never };
36
+
37
+ type EndElementProps =
38
+ | ButtonLinkActionProps
39
+ | IconButtonActionProps
40
+ | BadgeProps;
41
+
42
+ export type ListItemHeader = WithTestID<{
43
+ label: string;
44
+ numberOfLines?: number;
45
+ endElement?: EndElementProps;
46
+ // Accessibility
47
+ accessibilityLabel?: string;
48
+ }> &
49
+ IconProps;
50
+
51
+ export const ListItemHeader = ({
52
+ label,
53
+ iconName,
54
+ iconColor,
55
+ endElement,
56
+ accessibilityLabel,
57
+ testID
58
+ }: ListItemHeader) => {
59
+ const theme = useIOTheme();
60
+
61
+ const listItemAccessibilityLabel = useMemo(
62
+ () => (accessibilityLabel ? accessibilityLabel : `${label}`),
63
+ [label, accessibilityLabel]
64
+ );
65
+
66
+ const itemInfoTextComponent = useMemo(
67
+ () => (
68
+ <View
69
+ accessible={endElement === undefined ? true : false}
70
+ importantForAccessibility={
71
+ endElement === undefined || endElement.type === "badge"
72
+ ? "yes"
73
+ : "no-hide-descendants"
74
+ }
75
+ accessibilityElementsHidden={
76
+ endElement !== undefined && endElement.type !== "badge"
77
+ }
78
+ >
79
+ <H6 weight="Regular" color={theme["textBody-tertiary"]}>
80
+ {label}
81
+ </H6>
82
+ </View>
83
+ ),
84
+ [label, theme, endElement]
85
+ );
86
+
87
+ const listItemInfoAction = useCallback(() => {
88
+ if (endElement) {
89
+ const { type, componentProps } = endElement;
90
+
91
+ switch (type) {
92
+ case "buttonLink":
93
+ const buttonLinkAccessibilityLabel = `${listItemAccessibilityLabel}; ${componentProps.accessibilityLabel}`;
94
+
95
+ return (
96
+ <ButtonLink
97
+ {...componentProps}
98
+ accessibilityLabel={buttonLinkAccessibilityLabel}
99
+ />
100
+ );
101
+ case "iconButton":
102
+ const iconButtonAccessibilityLabel = `${listItemAccessibilityLabel}; ${componentProps.accessibilityLabel}`;
103
+ return (
104
+ <IconButton
105
+ {...componentProps}
106
+ accessibilityLabel={iconButtonAccessibilityLabel}
107
+ />
108
+ );
109
+ case "badge":
110
+ return <Badge {...componentProps} />;
111
+ default:
112
+ return <></>;
113
+ }
114
+ }
115
+ return <></>;
116
+ }, [endElement, listItemAccessibilityLabel]);
117
+
118
+ return (
119
+ <View
120
+ style={IOListItemStyles.listItem}
121
+ testID={testID}
122
+ accessible={endElement === undefined ? true : false}
123
+ accessibilityLabel={listItemAccessibilityLabel}
124
+ >
125
+ <View style={IOListItemStyles.listItemInner}>
126
+ {iconName && (
127
+ <View style={{ marginRight: IOListItemVisualParams.actionMargin }}>
128
+ <Icon
129
+ name={iconName}
130
+ color={iconColor ?? theme["icon-decorative"]}
131
+ size={IOListItemVisualParams.iconSize}
132
+ />
133
+ </View>
134
+ )}
135
+ <View style={IOStyles.flex}>{itemInfoTextComponent}</View>
136
+ {endElement && (
137
+ <View style={{ marginLeft: IOListItemVisualParams.actionMargin }}>
138
+ {listItemInfoAction()}
139
+ </View>
140
+ )}
141
+ </View>
142
+ </View>
143
+ );
144
+ };
145
+
146
+ export default ListItemHeader;