@pagopa/io-app-design-system 1.6.0 → 1.7.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 (334) hide show
  1. package/lib/commonjs/components/banner/Banner.js +1 -1
  2. package/lib/commonjs/components/banner/Banner.js.map +1 -1
  3. package/lib/commonjs/components/banner/__test__/__snapshots__/banner.test.tsx.snap +44 -13
  4. package/lib/commonjs/components/banner/__test__/banner.test.js +1 -1
  5. package/lib/commonjs/components/banner/__test__/banner.test.js.map +1 -1
  6. package/lib/commonjs/components/buttons/ButtonLink.js +30 -33
  7. package/lib/commonjs/components/buttons/ButtonLink.js.map +1 -1
  8. package/lib/commonjs/components/buttons/ButtonOutline.js +153 -57
  9. package/lib/commonjs/components/buttons/ButtonOutline.js.map +1 -1
  10. package/lib/commonjs/components/buttons/ButtonSolid.js +98 -61
  11. package/lib/commonjs/components/buttons/ButtonSolid.js.map +1 -1
  12. package/lib/commonjs/components/buttons/IconButton.js +35 -4
  13. package/lib/commonjs/components/buttons/IconButton.js.map +1 -1
  14. package/lib/commonjs/components/buttons/IconButtonContained.js +50 -5
  15. package/lib/commonjs/components/buttons/IconButtonContained.js.map +1 -1
  16. package/lib/commonjs/components/buttons/__test__/__snapshots__/button.test.tsx.snap +25 -26
  17. package/lib/commonjs/components/icons/Icon.js +3 -0
  18. package/lib/commonjs/components/icons/Icon.js.map +1 -1
  19. package/lib/commonjs/components/pictograms/Pictogram.js +121 -15
  20. package/lib/commonjs/components/pictograms/Pictogram.js.map +1 -1
  21. package/lib/commonjs/components/pictograms/svg/PictogramAccessDenied.js +50 -0
  22. package/lib/commonjs/components/pictograms/svg/PictogramAccessDenied.js.map +1 -0
  23. package/lib/commonjs/components/pictograms/svg/PictogramAttention.js +12 -16
  24. package/lib/commonjs/components/pictograms/svg/PictogramAttention.js.map +1 -1
  25. package/lib/commonjs/components/pictograms/svg/PictogramBleedCharity.js +43 -0
  26. package/lib/commonjs/components/pictograms/svg/PictogramBleedCharity.js.map +1 -0
  27. package/lib/commonjs/components/pictograms/svg/PictogramBleedFeedback.js +40 -0
  28. package/lib/commonjs/components/pictograms/svg/PictogramBleedFeedback.js.map +1 -0
  29. package/lib/commonjs/components/pictograms/svg/PictogramBleedHelp.js +43 -0
  30. package/lib/commonjs/components/pictograms/svg/PictogramBleedHelp.js.map +1 -0
  31. package/lib/commonjs/components/pictograms/svg/PictogramBleedITWallet.js +61 -0
  32. package/lib/commonjs/components/pictograms/svg/PictogramBleedITWallet.js.map +1 -0
  33. package/lib/commonjs/components/pictograms/svg/PictogramCharity.js +44 -0
  34. package/lib/commonjs/components/pictograms/svg/PictogramCharity.js.map +1 -0
  35. package/lib/commonjs/components/pictograms/svg/PictogramDonation.js +3 -0
  36. package/lib/commonjs/components/pictograms/svg/PictogramDonation.js.map +1 -1
  37. package/lib/commonjs/components/pictograms/svg/PictogramEmpty.js +43 -0
  38. package/lib/commonjs/components/pictograms/svg/PictogramEmpty.js.map +1 -0
  39. package/lib/commonjs/components/pictograms/svg/PictogramEmptyArchive.js +6 -19
  40. package/lib/commonjs/components/pictograms/svg/PictogramEmptyArchive.js.map +1 -1
  41. package/lib/commonjs/components/pictograms/svg/PictogramFatalError.js +44 -0
  42. package/lib/commonjs/components/pictograms/svg/PictogramFatalError.js.map +1 -0
  43. package/lib/commonjs/components/pictograms/svg/PictogramFeedback.js +13 -40
  44. package/lib/commonjs/components/pictograms/svg/PictogramFeedback.js.map +1 -1
  45. package/lib/commonjs/components/pictograms/svg/PictogramHelp.js +45 -0
  46. package/lib/commonjs/components/pictograms/svg/PictogramHelp.js.map +1 -0
  47. package/lib/commonjs/components/pictograms/svg/PictogramITWallet.js +62 -0
  48. package/lib/commonjs/components/pictograms/svg/PictogramITWallet.js.map +1 -0
  49. package/lib/commonjs/components/pictograms/svg/PictogramIdentity.js +50 -0
  50. package/lib/commonjs/components/pictograms/svg/PictogramIdentity.js.map +1 -0
  51. package/lib/commonjs/components/pictograms/svg/PictogramIdentityAdd.js +50 -0
  52. package/lib/commonjs/components/pictograms/svg/PictogramIdentityAdd.js.map +1 -0
  53. package/lib/commonjs/components/pictograms/svg/PictogramIdentityCheck.js +59 -0
  54. package/lib/commonjs/components/pictograms/svg/PictogramIdentityCheck.js.map +1 -0
  55. package/lib/commonjs/components/pictograms/svg/PictogramIdentityRefresh.js +50 -0
  56. package/lib/commonjs/components/pictograms/svg/PictogramIdentityRefresh.js.map +1 -0
  57. package/lib/commonjs/components/pictograms/svg/PictogramPasscode.js +50 -0
  58. package/lib/commonjs/components/pictograms/svg/PictogramPasscode.js.map +1 -0
  59. package/lib/commonjs/components/pictograms/svg/PictogramSetup.js +3 -0
  60. package/lib/commonjs/components/pictograms/svg/PictogramSetup.js.map +1 -1
  61. package/lib/commonjs/components/pictograms/svg/PictogramStopSecurity.js +56 -0
  62. package/lib/commonjs/components/pictograms/svg/PictogramStopSecurity.js.map +1 -0
  63. package/lib/commonjs/components/pictograms/svg/PictogramSuccess.js +10 -26
  64. package/lib/commonjs/components/pictograms/svg/PictogramSuccess.js.map +1 -1
  65. package/lib/commonjs/components/pictograms/svg/PictogramTime.js +50 -0
  66. package/lib/commonjs/components/pictograms/svg/PictogramTime.js.map +1 -0
  67. package/lib/commonjs/components/pictograms/svg/PictogramTrash.js +39 -0
  68. package/lib/commonjs/components/pictograms/svg/PictogramTrash.js.map +1 -0
  69. package/lib/commonjs/components/pictograms/svg/PictogramUpdateOS.js +44 -0
  70. package/lib/commonjs/components/pictograms/svg/PictogramUpdateOS.js.map +1 -0
  71. package/lib/commonjs/components/pictograms/svg/originals/PictogramAccessDenied.svg +34 -0
  72. package/lib/commonjs/components/pictograms/svg/originals/PictogramAttention.svg +21 -5
  73. package/lib/commonjs/components/pictograms/svg/originals/PictogramBleedCharity.svg +26 -0
  74. package/lib/commonjs/components/pictograms/svg/originals/PictogramBleedFeedback.svg +22 -0
  75. package/lib/commonjs/components/pictograms/svg/originals/PictogramBleedHelp.svg +26 -0
  76. package/lib/commonjs/components/pictograms/svg/originals/PictogramBleedITWallet.svg +48 -0
  77. package/lib/commonjs/components/pictograms/svg/originals/PictogramCharity.svg +26 -0
  78. package/lib/commonjs/components/pictograms/svg/originals/PictogramEmpty.svg +26 -0
  79. package/lib/commonjs/components/pictograms/svg/originals/PictogramEmptyArchive.svg +6 -22
  80. package/lib/commonjs/components/pictograms/svg/originals/PictogramFatalError.svg +26 -0
  81. package/lib/commonjs/components/pictograms/svg/originals/PictogramFeedback.svg +21 -20
  82. package/lib/commonjs/components/pictograms/svg/originals/PictogramHelp.svg +26 -0
  83. package/lib/commonjs/components/pictograms/svg/originals/PictogramITWallet.svg +48 -0
  84. package/lib/commonjs/components/pictograms/svg/originals/PictogramIdentity.svg +34 -0
  85. package/lib/commonjs/components/pictograms/svg/originals/PictogramIdentityAdd.svg +34 -0
  86. package/lib/commonjs/components/pictograms/svg/originals/PictogramIdentityCheck.svg +46 -0
  87. package/lib/commonjs/components/pictograms/svg/originals/PictogramIdentityRefresh.svg +34 -0
  88. package/lib/commonjs/components/pictograms/svg/originals/PictogramPasscode.svg +34 -0
  89. package/lib/commonjs/components/pictograms/svg/originals/PictogramStopSecurity.svg +42 -0
  90. package/lib/commonjs/components/pictograms/svg/originals/PictogramSuccess.svg +25 -34
  91. package/lib/commonjs/components/pictograms/svg/originals/PictogramTime.svg +34 -0
  92. package/lib/commonjs/components/pictograms/svg/originals/PictogramTrash.svg +18 -0
  93. package/lib/commonjs/components/pictograms/svg/originals/PictogramUpdateOS.svg +26 -0
  94. package/lib/commonjs/components/tag/Tag.js +28 -9
  95. package/lib/commonjs/components/tag/Tag.js.map +1 -1
  96. package/lib/commonjs/core/IODSExperimentalContextProvider.js +33 -0
  97. package/lib/commonjs/core/IODSExperimentalContextProvider.js.map +1 -0
  98. package/lib/commonjs/core/index.js +11 -0
  99. package/lib/commonjs/core/index.js.map +1 -1
  100. package/lib/module/components/banner/Banner.js +2 -2
  101. package/lib/module/components/banner/Banner.js.map +1 -1
  102. package/lib/module/components/banner/__test__/__snapshots__/banner.test.tsx.snap +44 -13
  103. package/lib/module/components/banner/__test__/banner.test.js +1 -1
  104. package/lib/module/components/banner/__test__/banner.test.js.map +1 -1
  105. package/lib/module/components/buttons/ButtonLink.js +32 -35
  106. package/lib/module/components/buttons/ButtonLink.js.map +1 -1
  107. package/lib/module/components/buttons/ButtonOutline.js +154 -58
  108. package/lib/module/components/buttons/ButtonOutline.js.map +1 -1
  109. package/lib/module/components/buttons/ButtonSolid.js +89 -52
  110. package/lib/module/components/buttons/ButtonSolid.js.map +1 -1
  111. package/lib/module/components/buttons/IconButton.js +37 -6
  112. package/lib/module/components/buttons/IconButton.js.map +1 -1
  113. package/lib/module/components/buttons/IconButtonContained.js +51 -6
  114. package/lib/module/components/buttons/IconButtonContained.js.map +1 -1
  115. package/lib/module/components/buttons/__test__/__snapshots__/button.test.tsx.snap +25 -26
  116. package/lib/module/components/icons/Icon.js +3 -0
  117. package/lib/module/components/icons/Icon.js.map +1 -1
  118. package/lib/module/components/pictograms/Pictogram.js +118 -13
  119. package/lib/module/components/pictograms/Pictogram.js.map +1 -1
  120. package/lib/module/components/pictograms/svg/PictogramAccessDenied.js +42 -0
  121. package/lib/module/components/pictograms/svg/PictogramAccessDenied.js.map +1 -0
  122. package/lib/module/components/pictograms/svg/PictogramAttention.js +12 -16
  123. package/lib/module/components/pictograms/svg/PictogramAttention.js.map +1 -1
  124. package/lib/module/components/pictograms/svg/PictogramBleedCharity.js +35 -0
  125. package/lib/module/components/pictograms/svg/PictogramBleedCharity.js.map +1 -0
  126. package/lib/module/components/pictograms/svg/PictogramBleedFeedback.js +32 -0
  127. package/lib/module/components/pictograms/svg/PictogramBleedFeedback.js.map +1 -0
  128. package/lib/module/components/pictograms/svg/PictogramBleedHelp.js +35 -0
  129. package/lib/module/components/pictograms/svg/PictogramBleedHelp.js.map +1 -0
  130. package/lib/module/components/pictograms/svg/PictogramBleedITWallet.js +53 -0
  131. package/lib/module/components/pictograms/svg/PictogramBleedITWallet.js.map +1 -0
  132. package/lib/module/components/pictograms/svg/PictogramCharity.js +36 -0
  133. package/lib/module/components/pictograms/svg/PictogramCharity.js.map +1 -0
  134. package/lib/module/components/pictograms/svg/PictogramDonation.js +3 -0
  135. package/lib/module/components/pictograms/svg/PictogramDonation.js.map +1 -1
  136. package/lib/module/components/pictograms/svg/PictogramEmpty.js +35 -0
  137. package/lib/module/components/pictograms/svg/PictogramEmpty.js.map +1 -0
  138. package/lib/module/components/pictograms/svg/PictogramEmptyArchive.js +6 -19
  139. package/lib/module/components/pictograms/svg/PictogramEmptyArchive.js.map +1 -1
  140. package/lib/module/components/pictograms/svg/PictogramFatalError.js +36 -0
  141. package/lib/module/components/pictograms/svg/PictogramFatalError.js.map +1 -0
  142. package/lib/module/components/pictograms/svg/PictogramFeedback.js +14 -41
  143. package/lib/module/components/pictograms/svg/PictogramFeedback.js.map +1 -1
  144. package/lib/module/components/pictograms/svg/PictogramHelp.js +35 -0
  145. package/lib/module/components/pictograms/svg/PictogramHelp.js.map +1 -0
  146. package/lib/module/components/pictograms/svg/PictogramITWallet.js +54 -0
  147. package/lib/module/components/pictograms/svg/PictogramITWallet.js.map +1 -0
  148. package/lib/module/components/pictograms/svg/PictogramIdentity.js +42 -0
  149. package/lib/module/components/pictograms/svg/PictogramIdentity.js.map +1 -0
  150. package/lib/module/components/pictograms/svg/PictogramIdentityAdd.js +42 -0
  151. package/lib/module/components/pictograms/svg/PictogramIdentityAdd.js.map +1 -0
  152. package/lib/module/components/pictograms/svg/PictogramIdentityCheck.js +51 -0
  153. package/lib/module/components/pictograms/svg/PictogramIdentityCheck.js.map +1 -0
  154. package/lib/module/components/pictograms/svg/PictogramIdentityRefresh.js +42 -0
  155. package/lib/module/components/pictograms/svg/PictogramIdentityRefresh.js.map +1 -0
  156. package/lib/module/components/pictograms/svg/PictogramPasscode.js +42 -0
  157. package/lib/module/components/pictograms/svg/PictogramPasscode.js.map +1 -0
  158. package/lib/module/components/pictograms/svg/PictogramSetup.js +3 -0
  159. package/lib/module/components/pictograms/svg/PictogramSetup.js.map +1 -1
  160. package/lib/module/components/pictograms/svg/PictogramStopSecurity.js +48 -0
  161. package/lib/module/components/pictograms/svg/PictogramStopSecurity.js.map +1 -0
  162. package/lib/module/components/pictograms/svg/PictogramSuccess.js +11 -27
  163. package/lib/module/components/pictograms/svg/PictogramSuccess.js.map +1 -1
  164. package/lib/module/components/pictograms/svg/PictogramTime.js +42 -0
  165. package/lib/module/components/pictograms/svg/PictogramTime.js.map +1 -0
  166. package/lib/module/components/pictograms/svg/PictogramTrash.js +31 -0
  167. package/lib/module/components/pictograms/svg/PictogramTrash.js.map +1 -0
  168. package/lib/module/components/pictograms/svg/PictogramUpdateOS.js +36 -0
  169. package/lib/module/components/pictograms/svg/PictogramUpdateOS.js.map +1 -0
  170. package/lib/module/components/pictograms/svg/originals/PictogramAccessDenied.svg +34 -0
  171. package/lib/module/components/pictograms/svg/originals/PictogramAttention.svg +21 -5
  172. package/lib/module/components/pictograms/svg/originals/PictogramBleedCharity.svg +26 -0
  173. package/lib/module/components/pictograms/svg/originals/PictogramBleedFeedback.svg +22 -0
  174. package/lib/module/components/pictograms/svg/originals/PictogramBleedHelp.svg +26 -0
  175. package/lib/module/components/pictograms/svg/originals/PictogramBleedITWallet.svg +48 -0
  176. package/lib/module/components/pictograms/svg/originals/PictogramCharity.svg +26 -0
  177. package/lib/module/components/pictograms/svg/originals/PictogramEmpty.svg +26 -0
  178. package/lib/module/components/pictograms/svg/originals/PictogramEmptyArchive.svg +6 -22
  179. package/lib/module/components/pictograms/svg/originals/PictogramFatalError.svg +26 -0
  180. package/lib/module/components/pictograms/svg/originals/PictogramFeedback.svg +21 -20
  181. package/lib/module/components/pictograms/svg/originals/PictogramHelp.svg +26 -0
  182. package/lib/module/components/pictograms/svg/originals/PictogramITWallet.svg +48 -0
  183. package/lib/module/components/pictograms/svg/originals/PictogramIdentity.svg +34 -0
  184. package/lib/module/components/pictograms/svg/originals/PictogramIdentityAdd.svg +34 -0
  185. package/lib/module/components/pictograms/svg/originals/PictogramIdentityCheck.svg +46 -0
  186. package/lib/module/components/pictograms/svg/originals/PictogramIdentityRefresh.svg +34 -0
  187. package/lib/module/components/pictograms/svg/originals/PictogramPasscode.svg +34 -0
  188. package/lib/module/components/pictograms/svg/originals/PictogramStopSecurity.svg +42 -0
  189. package/lib/module/components/pictograms/svg/originals/PictogramSuccess.svg +25 -34
  190. package/lib/module/components/pictograms/svg/originals/PictogramTime.svg +34 -0
  191. package/lib/module/components/pictograms/svg/originals/PictogramTrash.svg +18 -0
  192. package/lib/module/components/pictograms/svg/originals/PictogramUpdateOS.svg +26 -0
  193. package/lib/module/components/tag/Tag.js +26 -9
  194. package/lib/module/components/tag/Tag.js.map +1 -1
  195. package/lib/module/core/IODSExperimentalContextProvider.js +23 -0
  196. package/lib/module/core/IODSExperimentalContextProvider.js.map +1 -0
  197. package/lib/module/core/index.js +1 -0
  198. package/lib/module/core/index.js.map +1 -1
  199. package/lib/typescript/components/banner/Banner.d.ts.map +1 -1
  200. package/lib/typescript/components/buttons/ButtonLink.d.ts +1 -1
  201. package/lib/typescript/components/buttons/ButtonLink.d.ts.map +1 -1
  202. package/lib/typescript/components/buttons/ButtonOutline.d.ts.map +1 -1
  203. package/lib/typescript/components/buttons/ButtonSolid.d.ts.map +1 -1
  204. package/lib/typescript/components/buttons/IconButton.d.ts.map +1 -1
  205. package/lib/typescript/components/buttons/IconButtonContained.d.ts.map +1 -1
  206. package/lib/typescript/components/icons/Icon.d.ts +2 -0
  207. package/lib/typescript/components/icons/Icon.d.ts.map +1 -1
  208. package/lib/typescript/components/pictograms/Pictogram.d.ts +51 -8
  209. package/lib/typescript/components/pictograms/Pictogram.d.ts.map +1 -1
  210. package/lib/typescript/components/pictograms/svg/PictogramAccessDenied.d.ts +5 -0
  211. package/lib/typescript/components/pictograms/svg/PictogramAccessDenied.d.ts.map +1 -0
  212. package/lib/typescript/components/pictograms/svg/PictogramAttention.d.ts.map +1 -1
  213. package/lib/typescript/components/pictograms/svg/PictogramBleedCharity.d.ts +5 -0
  214. package/lib/typescript/components/pictograms/svg/PictogramBleedCharity.d.ts.map +1 -0
  215. package/lib/typescript/components/pictograms/svg/PictogramBleedFeedback.d.ts +5 -0
  216. package/lib/typescript/components/pictograms/svg/PictogramBleedFeedback.d.ts.map +1 -0
  217. package/lib/typescript/components/pictograms/svg/PictogramBleedHelp.d.ts +5 -0
  218. package/lib/typescript/components/pictograms/svg/PictogramBleedHelp.d.ts.map +1 -0
  219. package/lib/typescript/components/pictograms/svg/PictogramBleedITWallet.d.ts +5 -0
  220. package/lib/typescript/components/pictograms/svg/PictogramBleedITWallet.d.ts.map +1 -0
  221. package/lib/typescript/components/pictograms/svg/PictogramCharity.d.ts +5 -0
  222. package/lib/typescript/components/pictograms/svg/PictogramCharity.d.ts.map +1 -0
  223. package/lib/typescript/components/pictograms/svg/PictogramDonation.d.ts +3 -0
  224. package/lib/typescript/components/pictograms/svg/PictogramDonation.d.ts.map +1 -1
  225. package/lib/typescript/components/pictograms/svg/PictogramEmpty.d.ts +5 -0
  226. package/lib/typescript/components/pictograms/svg/PictogramEmpty.d.ts.map +1 -0
  227. package/lib/typescript/components/pictograms/svg/PictogramEmptyArchive.d.ts.map +1 -1
  228. package/lib/typescript/components/pictograms/svg/PictogramFatalError.d.ts +5 -0
  229. package/lib/typescript/components/pictograms/svg/PictogramFatalError.d.ts.map +1 -0
  230. package/lib/typescript/components/pictograms/svg/PictogramFeedback.d.ts.map +1 -1
  231. package/lib/typescript/components/pictograms/svg/PictogramHelp.d.ts +5 -0
  232. package/lib/typescript/components/pictograms/svg/PictogramHelp.d.ts.map +1 -0
  233. package/lib/typescript/components/pictograms/svg/PictogramITWallet.d.ts +5 -0
  234. package/lib/typescript/components/pictograms/svg/PictogramITWallet.d.ts.map +1 -0
  235. package/lib/typescript/components/pictograms/svg/PictogramIdentity.d.ts +5 -0
  236. package/lib/typescript/components/pictograms/svg/PictogramIdentity.d.ts.map +1 -0
  237. package/lib/typescript/components/pictograms/svg/PictogramIdentityAdd.d.ts +5 -0
  238. package/lib/typescript/components/pictograms/svg/PictogramIdentityAdd.d.ts.map +1 -0
  239. package/lib/typescript/components/pictograms/svg/PictogramIdentityCheck.d.ts +5 -0
  240. package/lib/typescript/components/pictograms/svg/PictogramIdentityCheck.d.ts.map +1 -0
  241. package/lib/typescript/components/pictograms/svg/PictogramIdentityRefresh.d.ts +5 -0
  242. package/lib/typescript/components/pictograms/svg/PictogramIdentityRefresh.d.ts.map +1 -0
  243. package/lib/typescript/components/pictograms/svg/PictogramPasscode.d.ts +5 -0
  244. package/lib/typescript/components/pictograms/svg/PictogramPasscode.d.ts.map +1 -0
  245. package/lib/typescript/components/pictograms/svg/PictogramSetup.d.ts +3 -0
  246. package/lib/typescript/components/pictograms/svg/PictogramSetup.d.ts.map +1 -1
  247. package/lib/typescript/components/pictograms/svg/PictogramStopSecurity.d.ts +5 -0
  248. package/lib/typescript/components/pictograms/svg/PictogramStopSecurity.d.ts.map +1 -0
  249. package/lib/typescript/components/pictograms/svg/PictogramSuccess.d.ts.map +1 -1
  250. package/lib/typescript/components/pictograms/svg/PictogramTime.d.ts +5 -0
  251. package/lib/typescript/components/pictograms/svg/PictogramTime.d.ts.map +1 -0
  252. package/lib/typescript/components/pictograms/svg/PictogramTrash.d.ts +5 -0
  253. package/lib/typescript/components/pictograms/svg/PictogramTrash.d.ts.map +1 -0
  254. package/lib/typescript/components/pictograms/svg/PictogramUpdateOS.d.ts +5 -0
  255. package/lib/typescript/components/pictograms/svg/PictogramUpdateOS.d.ts.map +1 -0
  256. package/lib/typescript/components/tag/Tag.d.ts +2 -2
  257. package/lib/typescript/components/tag/Tag.d.ts.map +1 -1
  258. package/lib/typescript/core/IODSExperimentalContextProvider.d.ts +9 -0
  259. package/lib/typescript/core/IODSExperimentalContextProvider.d.ts.map +1 -0
  260. package/lib/typescript/core/index.d.ts +1 -0
  261. package/lib/typescript/core/index.d.ts.map +1 -1
  262. package/package.json +3 -3
  263. package/src/components/banner/Banner.tsx +3 -3
  264. package/src/components/banner/__test__/__snapshots__/banner.test.tsx.snap +44 -13
  265. package/src/components/banner/__test__/banner.test.tsx +1 -1
  266. package/src/components/buttons/ButtonLink.tsx +41 -41
  267. package/src/components/buttons/ButtonOutline.tsx +141 -36
  268. package/src/components/buttons/ButtonSolid.tsx +81 -22
  269. package/src/components/buttons/IconButton.tsx +44 -8
  270. package/src/components/buttons/IconButtonContained.tsx +57 -11
  271. package/src/components/buttons/__test__/__snapshots__/button.test.tsx.snap +25 -26
  272. package/src/components/icons/Icon.tsx +3 -0
  273. package/src/components/pictograms/Pictogram.tsx +126 -12
  274. package/src/components/pictograms/svg/PictogramAccessDenied.tsx +46 -0
  275. package/src/components/pictograms/svg/PictogramAttention.tsx +10 -13
  276. package/src/components/pictograms/svg/PictogramBleedCharity.tsx +34 -0
  277. package/src/components/pictograms/svg/PictogramBleedFeedback.tsx +30 -0
  278. package/src/components/pictograms/svg/PictogramBleedHelp.tsx +34 -0
  279. package/src/components/pictograms/svg/PictogramBleedITWallet.tsx +56 -0
  280. package/src/components/pictograms/svg/PictogramCharity.tsx +34 -0
  281. package/src/components/pictograms/svg/PictogramDonation.tsx +3 -0
  282. package/src/components/pictograms/svg/PictogramEmpty.tsx +34 -0
  283. package/src/components/pictograms/svg/PictogramEmptyArchive.tsx +6 -22
  284. package/src/components/pictograms/svg/PictogramFatalError.tsx +34 -0
  285. package/src/components/pictograms/svg/PictogramFeedback.tsx +22 -52
  286. package/src/components/pictograms/svg/PictogramHelp.tsx +34 -0
  287. package/src/components/pictograms/svg/PictogramITWallet.tsx +56 -0
  288. package/src/components/pictograms/svg/PictogramIdentity.tsx +42 -0
  289. package/src/components/pictograms/svg/PictogramIdentityAdd.tsx +42 -0
  290. package/src/components/pictograms/svg/PictogramIdentityCheck.tsx +58 -0
  291. package/src/components/pictograms/svg/PictogramIdentityRefresh.tsx +46 -0
  292. package/src/components/pictograms/svg/PictogramPasscode.tsx +42 -0
  293. package/src/components/pictograms/svg/PictogramSetup.tsx +3 -0
  294. package/src/components/pictograms/svg/PictogramStopSecurity.tsx +54 -0
  295. package/src/components/pictograms/svg/PictogramSuccess.tsx +23 -38
  296. package/src/components/pictograms/svg/PictogramTime.tsx +42 -0
  297. package/src/components/pictograms/svg/PictogramTrash.tsx +26 -0
  298. package/src/components/pictograms/svg/PictogramUpdateOS.tsx +34 -0
  299. package/src/components/pictograms/svg/originals/PictogramAccessDenied.svg +34 -0
  300. package/src/components/pictograms/svg/originals/PictogramAttention.svg +21 -5
  301. package/src/components/pictograms/svg/originals/PictogramBleedCharity.svg +26 -0
  302. package/src/components/pictograms/svg/originals/PictogramBleedFeedback.svg +22 -0
  303. package/src/components/pictograms/svg/originals/PictogramBleedHelp.svg +26 -0
  304. package/src/components/pictograms/svg/originals/PictogramBleedITWallet.svg +48 -0
  305. package/src/components/pictograms/svg/originals/PictogramCharity.svg +26 -0
  306. package/src/components/pictograms/svg/originals/PictogramEmpty.svg +26 -0
  307. package/src/components/pictograms/svg/originals/PictogramEmptyArchive.svg +6 -22
  308. package/src/components/pictograms/svg/originals/PictogramFatalError.svg +26 -0
  309. package/src/components/pictograms/svg/originals/PictogramFeedback.svg +21 -20
  310. package/src/components/pictograms/svg/originals/PictogramHelp.svg +26 -0
  311. package/src/components/pictograms/svg/originals/PictogramITWallet.svg +48 -0
  312. package/src/components/pictograms/svg/originals/PictogramIdentity.svg +34 -0
  313. package/src/components/pictograms/svg/originals/PictogramIdentityAdd.svg +34 -0
  314. package/src/components/pictograms/svg/originals/PictogramIdentityCheck.svg +46 -0
  315. package/src/components/pictograms/svg/originals/PictogramIdentityRefresh.svg +34 -0
  316. package/src/components/pictograms/svg/originals/PictogramPasscode.svg +34 -0
  317. package/src/components/pictograms/svg/originals/PictogramStopSecurity.svg +42 -0
  318. package/src/components/pictograms/svg/originals/PictogramSuccess.svg +25 -34
  319. package/src/components/pictograms/svg/originals/PictogramTime.svg +34 -0
  320. package/src/components/pictograms/svg/originals/PictogramTrash.svg +18 -0
  321. package/src/components/pictograms/svg/originals/PictogramUpdateOS.svg +26 -0
  322. package/src/components/tag/Tag.tsx +43 -15
  323. package/src/core/IODSExperimentalContextProvider.tsx +32 -0
  324. package/src/core/index.ts +1 -0
  325. package/lib/commonjs/components/pictograms/svg/PictogramFocusOn.js +0 -56
  326. package/lib/commonjs/components/pictograms/svg/PictogramFocusOn.js.map +0 -1
  327. package/lib/commonjs/components/pictograms/svg/originals/PictogramFocusOn.svg +0 -19
  328. package/lib/module/components/pictograms/svg/PictogramFocusOn.js +0 -48
  329. package/lib/module/components/pictograms/svg/PictogramFocusOn.js.map +0 -1
  330. package/lib/module/components/pictograms/svg/originals/PictogramFocusOn.svg +0 -19
  331. package/lib/typescript/components/pictograms/svg/PictogramFocusOn.d.ts +0 -5
  332. package/lib/typescript/components/pictograms/svg/PictogramFocusOn.d.ts.map +0 -1
  333. package/src/components/pictograms/svg/PictogramFocusOn.tsx +0 -39
  334. package/src/components/pictograms/svg/originals/PictogramFocusOn.svg +0 -19
@@ -1,4 +1,4 @@
1
- import React, { useCallback } from "react";
1
+ import React, { useCallback, useMemo } from "react";
2
2
  import { GestureResponderEvent, Pressable, StyleSheet } from "react-native";
3
3
  import Animated, {
4
4
  Extrapolate,
@@ -14,14 +14,15 @@ import {
14
14
  IOButtonStyles,
15
15
  IOColors,
16
16
  IOScaleValues,
17
- IOSpringValues
17
+ IOSpringValues,
18
+ useIOExperimentalDesign
18
19
  } from "../../core";
19
20
  import { makeFontStyleObject } from "../../utils/fonts";
20
21
  import { WithTestID } from "../../utils/types";
21
22
  import { AnimatedIcon, IOIcons, IconClassComponent } from "../icons/Icon";
22
23
  import { HSpacer } from "../spacer/Spacer";
23
24
 
24
- type ColorButtonLink = "primary" | "error" | "warning" | "success" | "info";
25
+ type ColorButtonLink = "primary";
25
26
  export type ButtonLink = WithTestID<{
26
27
  color?: ColorButtonLink;
27
28
  label: string;
@@ -52,32 +53,19 @@ const mapColorStates: Record<NonNullable<ButtonLink["color"]>, ColorStates> = {
52
53
  pressed: IOColors["blueIO-600"],
53
54
  disabled: IOColors["grey-700"]
54
55
  }
55
- },
56
- error: {
57
- label: {
58
- default: IOColors["error-850"],
59
- pressed: IOColors["error-850"],
60
- disabled: IOColors["grey-700"]
61
- }
62
- },
63
- warning: {
64
- label: {
65
- default: IOColors["warning-850"],
66
- pressed: IOColors["warning-850"],
67
- disabled: IOColors["grey-700"]
68
- }
69
- },
70
- success: {
71
- label: {
72
- default: IOColors["success-850"],
73
- pressed: IOColors["success-850"],
74
- disabled: IOColors["grey-700"]
75
- }
76
- },
77
- info: {
56
+ }
57
+ };
58
+
59
+ // TODO: Remove this when legacy look is deprecated https://pagopa.atlassian.net/browse/IOPLT-153
60
+ const mapLegacyColorStates: Record<
61
+ NonNullable<ButtonLink["color"]>,
62
+ ColorStates
63
+ > = {
64
+ // Primary button
65
+ primary: {
78
66
  label: {
79
- default: IOColors["info-850"],
80
- pressed: IOColors["info-850"],
67
+ default: IOColors.blue,
68
+ pressed: IOColors["blue-600"],
81
69
  disabled: IOColors["grey-700"]
82
70
  }
83
71
  }
@@ -91,6 +79,14 @@ const IOButtonStylesLocal = StyleSheet.create({
91
79
  }
92
80
  });
93
81
 
82
+ // TODO: Remove this when legacy look is deprecated https://pagopa.atlassian.net/browse/IOPLT-153
83
+ const IOButtonLegacyStylesLocal = StyleSheet.create({
84
+ label: {
85
+ fontSize: 16,
86
+ ...makeFontStyleObject("Bold", false, "TitilliumWeb")
87
+ }
88
+ });
89
+
94
90
  export const ButtonLink = React.memo(
95
91
  ({
96
92
  color = "primary",
@@ -104,6 +100,16 @@ export const ButtonLink = React.memo(
104
100
  testID
105
101
  }: ButtonLink) => {
106
102
  const isPressed = useSharedValue(0);
103
+ const { isExperimental } = useIOExperimentalDesign();
104
+
105
+ const colorMap = useMemo(
106
+ () => (isExperimental ? mapColorStates : mapLegacyColorStates),
107
+ [isExperimental]
108
+ );
109
+ const buttonStylesLocal = useMemo(
110
+ () => (isExperimental ? IOButtonStylesLocal : IOButtonLegacyStylesLocal),
111
+ [isExperimental]
112
+ );
107
113
 
108
114
  // Scaling transformation applied when the button is pressed
109
115
  const animationScaleValue = IOScaleValues?.basicButton?.pressedState;
@@ -136,10 +142,7 @@ export const ButtonLink = React.memo(
136
142
  const labelColor = interpolateColor(
137
143
  progressPressed.value,
138
144
  [0, 1],
139
- [
140
- mapColorStates[color].label.default,
141
- mapColorStates[color].label.pressed
142
- ]
145
+ [colorMap[color].label.default, colorMap[color].label.pressed]
143
146
  );
144
147
 
145
148
  return {
@@ -152,10 +155,7 @@ export const ButtonLink = React.memo(
152
155
  const iconColor = interpolateColor(
153
156
  progressPressed.value,
154
157
  [0, 1],
155
- [
156
- mapColorStates[color].label.default,
157
- mapColorStates[color].label.pressed
158
- ]
158
+ [colorMap[color].label.default, colorMap[color].label.pressed]
159
159
  );
160
160
 
161
161
  return { color: iconColor };
@@ -207,13 +207,13 @@ export const ButtonLink = React.memo(
207
207
  <AnimatedIconClassComponent
208
208
  name={icon}
209
209
  animatedProps={pressedColorIconAnimationStyle}
210
- color={mapColorStates[color]?.label?.default}
210
+ color={colorMap[color]?.label?.default}
211
211
  size={iconSize}
212
212
  />
213
213
  ) : (
214
214
  <AnimatedIcon
215
215
  name={icon}
216
- color={mapColorStates[color]?.label?.disabled}
216
+ color={colorMap[color]?.label?.disabled}
217
217
  size={iconSize}
218
218
  />
219
219
  )}
@@ -222,10 +222,10 @@ export const ButtonLink = React.memo(
222
222
  )}
223
223
  <Animated.Text
224
224
  style={[
225
- IOButtonStylesLocal.label,
225
+ buttonStylesLocal.label,
226
226
  disabled
227
- ? { color: mapColorStates[color]?.label?.disabled }
228
- : { color: mapColorStates[color]?.label?.default },
227
+ ? { color: colorMap[color]?.label?.disabled }
228
+ : { color: colorMap[color]?.label?.default },
229
229
  !disabled && pressedColorLabelAnimationStyle
230
230
  ]}
231
231
  numberOfLines={1}
@@ -11,15 +11,22 @@ import Animated, {
11
11
  withSpring
12
12
  } from "react-native-reanimated";
13
13
  import {
14
+ IOButtonLegacyStyles,
14
15
  IOButtonStyles,
15
16
  IOColors,
16
17
  IOScaleValues,
17
18
  IOSpringValues,
18
- hexToRgba
19
+ hexToRgba,
20
+ useIOExperimentalDesign
19
21
  } from "../../core/";
20
22
  import { makeFontStyleObject } from "../../utils/fonts";
21
23
  import { WithTestID } from "../../utils/types";
22
- import { AnimatedIcon, IOIcons, IconClassComponent } from "../icons";
24
+ import {
25
+ AnimatedIcon,
26
+ IOIconSizeScale,
27
+ IOIcons,
28
+ IconClassComponent
29
+ } from "../icons";
23
30
  import { HSpacer } from "../spacer/Spacer";
24
31
 
25
32
  type ColorButtonOutline = "primary" | "neutral" | "contrast" | "danger";
@@ -134,12 +141,105 @@ const mapColorStates: Record<
134
141
  }
135
142
  };
136
143
 
144
+ // TODO: Remove this when legacy look is deprecated https://pagopa.atlassian.net/browse/IOPLT-153
145
+ const mapLegacyColorStates: Record<
146
+ NonNullable<ButtonOutline["color"]>,
147
+ ColorStates
148
+ > = {
149
+ // Primary button
150
+ primary: {
151
+ border: {
152
+ default: IOColors.blue,
153
+ pressed: IOColors.blue,
154
+ disabled: IOColors.bluegreyLight
155
+ },
156
+ background: {
157
+ default: hexToRgba(IOColors.blue, 0),
158
+ pressed: hexToRgba(IOColors.blue, 0.15),
159
+ disabled: "transparent"
160
+ },
161
+ label: {
162
+ default: IOColors.blue,
163
+ pressed: IOColors.blue,
164
+ disabled: IOColors.grey
165
+ }
166
+ },
167
+ // Neutral button
168
+ neutral: {
169
+ border: {
170
+ default: IOColors.grey,
171
+ pressed: IOColors.bluegrey,
172
+ disabled: IOColors.bluegreyLight
173
+ },
174
+ background: {
175
+ default: IOColors.white,
176
+ pressed: IOColors.greyUltraLight,
177
+ disabled: "transparent"
178
+ },
179
+ label: {
180
+ default: IOColors.bluegrey,
181
+ pressed: IOColors.bluegreyDark,
182
+ disabled: IOColors.grey
183
+ }
184
+ },
185
+ // Contrast button
186
+ contrast: {
187
+ border: {
188
+ default: IOColors.white,
189
+ pressed: IOColors.white,
190
+ disabled: hexToRgba(IOColors.white, 0.5)
191
+ },
192
+ background: {
193
+ default: hexToRgba(IOColors.white, 0),
194
+ pressed: hexToRgba(IOColors.white, 0.2),
195
+ disabled: "transparent"
196
+ },
197
+ label: {
198
+ default: IOColors.white,
199
+ pressed: IOColors.white,
200
+ disabled: hexToRgba(IOColors.white, 0.5)
201
+ }
202
+ },
203
+ // Danger button
204
+ danger: {
205
+ border: {
206
+ default: IOColors.red,
207
+ pressed: IOColors.red,
208
+ disabled: IOColors.bluegreyLight
209
+ },
210
+ background: {
211
+ default: hexToRgba(IOColors.red, 0),
212
+ pressed: hexToRgba(IOColors.red, 0.15),
213
+ disabled: "transparent"
214
+ },
215
+ label: {
216
+ default: IOColors.red,
217
+ pressed: IOColors.red,
218
+ disabled: IOColors.grey
219
+ }
220
+ }
221
+ };
222
+
223
+ // TODO: Remove this when legacy look is deprecated https://pagopa.atlassian.net/browse/IOPLT-153
224
+ const IOButtonLegacyStylesLocal = StyleSheet.create({
225
+ // eslint-disable-next-line react-native/no-unused-styles
226
+ label: {
227
+ ...makeFontStyleObject("Bold")
228
+ },
229
+ // eslint-disable-next-line react-native/no-unused-styles
230
+ buttonWithBorder: {
231
+ borderWidth: 1
232
+ }
233
+ });
234
+
137
235
  const DISABLED_OPACITY = 0.5;
138
236
 
139
237
  const IOButtonStylesLocal = StyleSheet.create({
238
+ // eslint-disable-next-line react-native/no-unused-styles
140
239
  label: {
141
240
  ...makeFontStyleObject("Regular", false, "ReadexPro")
142
241
  },
242
+ // eslint-disable-next-line react-native/no-unused-styles
143
243
  buttonWithBorder: {
144
244
  borderWidth: 2
145
245
  }
@@ -158,8 +258,23 @@ export const ButtonOutline = ({
158
258
  accessibilityHint,
159
259
  testID
160
260
  }: ButtonOutline) => {
261
+ const { isExperimental } = useIOExperimentalDesign();
161
262
  const isPressed: Animated.SharedValue<number> = useSharedValue(0);
162
263
 
264
+ const colorMap = React.useMemo(
265
+ () => (isExperimental ? mapColorStates : mapLegacyColorStates),
266
+ [isExperimental]
267
+ );
268
+
269
+ const buttonStyles = React.useMemo(
270
+ () => (isExperimental ? IOButtonStyles : IOButtonLegacyStyles),
271
+ [isExperimental]
272
+ );
273
+
274
+ const buttonStylesLocal = React.useMemo(
275
+ () => (isExperimental ? IOButtonStylesLocal : IOButtonLegacyStylesLocal),
276
+ [isExperimental]
277
+ );
163
278
  // Scaling transformation applied when the button is pressed
164
279
  const animationScaleValue = IOScaleValues?.basicButton?.pressedState;
165
280
 
@@ -174,19 +289,13 @@ export const ButtonOutline = ({
174
289
  const backgroundColor = interpolateColor(
175
290
  progressPressed.value,
176
291
  [0, 1],
177
- [
178
- mapColorStates[color].background.default,
179
- mapColorStates[color].background.pressed
180
- ]
292
+ [colorMap[color].background.default, colorMap[color].background.pressed]
181
293
  );
182
294
 
183
295
  const borderColor = interpolateColor(
184
296
  progressPressed.value,
185
297
  [0, 1],
186
- [
187
- mapColorStates[color].border.default,
188
- mapColorStates[color].border.pressed
189
- ]
298
+ [colorMap[color].border.default, colorMap[color].border.pressed]
190
299
  );
191
300
 
192
301
  // Scale down button slightly when pressed
@@ -210,10 +319,7 @@ export const ButtonOutline = ({
210
319
  const labelColor = interpolateColor(
211
320
  progressPressed.value,
212
321
  [0, 1],
213
- [
214
- mapColorStates[color].border.default,
215
- mapColorStates[color].border.pressed
216
- ]
322
+ [colorMap[color].border.default, colorMap[color].border.pressed]
217
323
  );
218
324
 
219
325
  return {
@@ -226,7 +332,7 @@ export const ButtonOutline = ({
226
332
  const iconColor = interpolateColor(
227
333
  progressPressed.value,
228
334
  [0, 1],
229
- [mapColorStates[color].label.default, mapColorStates[color].label.pressed]
335
+ [colorMap[color].label.default, colorMap[color].label.pressed]
230
336
  );
231
337
  return { color: iconColor };
232
338
  });
@@ -243,7 +349,10 @@ export const ButtonOutline = ({
243
349
  isPressed.value = 0;
244
350
  }, [isPressed]);
245
351
 
246
- const Button = () => (
352
+ // Icon size
353
+ const iconSize: IOIconSizeScale = small ? 16 : 20;
354
+
355
+ return (
247
356
  <Pressable
248
357
  accessibilityLabel={accessibilityLabel}
249
358
  accessibilityHint={accessibilityHint}
@@ -258,21 +367,19 @@ export const ButtonOutline = ({
258
367
  >
259
368
  <Animated.View
260
369
  style={[
261
- IOButtonStyles.button,
262
- IOButtonStylesLocal.buttonWithBorder,
370
+ buttonStyles.button,
371
+ buttonStylesLocal.buttonWithBorder,
263
372
  iconPosition === "end" && { flexDirection: "row-reverse" },
264
- small
265
- ? IOButtonStyles.buttonSizeSmall
266
- : IOButtonStyles.buttonSizeDefault,
373
+ small ? buttonStyles.buttonSizeSmall : buttonStyles.buttonSizeDefault,
267
374
  disabled
268
375
  ? {
269
- backgroundColor: mapColorStates[color]?.background?.disabled,
270
- borderColor: mapColorStates[color]?.border?.disabled,
376
+ backgroundColor: colorMap[color]?.background?.disabled,
377
+ borderColor: colorMap[color]?.border?.disabled,
271
378
  opacity: DISABLED_OPACITY
272
379
  }
273
380
  : {
274
- backgroundColor: mapColorStates[color]?.background?.default,
275
- borderColor: mapColorStates[color]?.border.default
381
+ backgroundColor: colorMap[color]?.background?.default,
382
+ borderColor: colorMap[color]?.border.default
276
383
  },
277
384
  /* Prevent Reanimated from overriding background colors
278
385
  if button is disabled */
@@ -285,12 +392,14 @@ export const ButtonOutline = ({
285
392
  <AnimatedIconClassComponent
286
393
  name={icon}
287
394
  animatedProps={pressedColorIconAnimationStyle}
288
- color={mapColorStates[color]?.label?.default}
395
+ color={colorMap[color]?.label?.default}
396
+ size={iconSize}
289
397
  />
290
398
  ) : (
291
399
  <AnimatedIcon
292
400
  name={icon}
293
- color={mapColorStates[color]?.label?.disabled}
401
+ color={colorMap[color]?.label?.disabled}
402
+ size={iconSize}
294
403
  />
295
404
  )}
296
405
  <HSpacer size={8} />
@@ -298,14 +407,12 @@ export const ButtonOutline = ({
298
407
  )}
299
408
  <Animated.Text
300
409
  style={[
301
- IOButtonStylesLocal.label,
302
- IOButtonStyles.label,
303
- small
304
- ? IOButtonStyles.labelSizeSmall
305
- : IOButtonStyles.labelSizeDefault,
410
+ buttonStylesLocal.label,
411
+ buttonStyles.label,
412
+ small ? buttonStyles.labelSizeSmall : buttonStyles.labelSizeDefault,
306
413
  disabled
307
- ? { color: mapColorStates[color]?.label?.disabled }
308
- : { color: mapColorStates[color]?.label?.default },
414
+ ? { color: colorMap[color]?.label?.disabled }
415
+ : { color: colorMap[color]?.label?.default },
309
416
  !disabled && pressedColorLabelAnimationStyle
310
417
  ]}
311
418
  numberOfLines={1}
@@ -320,8 +427,6 @@ export const ButtonOutline = ({
320
427
  </Animated.View>
321
428
  </Pressable>
322
429
  );
323
-
324
- return <Button />;
325
430
  };
326
431
 
327
432
  export default ButtonOutline;
@@ -9,13 +9,18 @@ import Animated, {
9
9
  useSharedValue,
10
10
  withSpring
11
11
  } from "react-native-reanimated";
12
- import { IOScaleValues, IOSpringValues } from "../../core/IOAnimations";
13
- import { IOColors } from "../../core/IOColors";
14
- import { IOButtonStyles } from "../../core/IOStyles";
15
12
  import { IOIcons, Icon } from "../icons";
16
13
  import { WithTestID } from "../../utils/types";
17
14
  import { HSpacer } from "../spacer/Spacer";
18
15
  import { BaseTypography } from "../typography/BaseTypography";
16
+ import {
17
+ IOButtonLegacyStyles,
18
+ IOButtonStyles,
19
+ IOColors,
20
+ IOScaleValues,
21
+ IOSpringValues,
22
+ useIOExperimentalDesign
23
+ } from "../../core";
19
24
 
20
25
  type ButtonSolidColor = "primary" | "danger" | "contrast";
21
26
 
@@ -28,6 +33,15 @@ type ColorStates = {
28
33
  };
29
34
  };
30
35
 
36
+ // Disabled state
37
+ // TODO: Remove this when legacy look is deprecated https://pagopa.atlassian.net/browse/IOPLT-153
38
+ const colorPrimaryLegacyButtonDisabled: IOColors = "bluegreyLight";
39
+ const legacyStyles = StyleSheet.create({
40
+ backgroundDisabled: {
41
+ backgroundColor: IOColors[colorPrimaryLegacyButtonDisabled]
42
+ }
43
+ });
44
+
31
45
  const colorPrimaryButtonDisabled: IOColors = "grey-200";
32
46
  const DISABLED_OPACITY = 0.5;
33
47
 
@@ -100,6 +114,40 @@ const mapColorStates: Record<
100
114
  }
101
115
  };
102
116
 
117
+ // TODO: Remove this when legacy look is deprecated https://pagopa.atlassian.net/browse/IOPLT-153
118
+ const mapLegacyColorStates: Record<
119
+ NonNullable<ButtonSolidProps["color"]>,
120
+ ColorStates
121
+ > = {
122
+ // Primary button
123
+ primary: {
124
+ default: IOColors.blue,
125
+ pressed: IOColors["blue-600"],
126
+ label: {
127
+ default: "white",
128
+ disabled: "white"
129
+ }
130
+ },
131
+ // Danger button
132
+ danger: {
133
+ default: IOColors["error-600"],
134
+ pressed: IOColors["error-500"],
135
+ label: {
136
+ default: "white",
137
+ disabled: "white"
138
+ }
139
+ },
140
+ // Contrast button
141
+ contrast: {
142
+ default: IOColors.white,
143
+ pressed: IOColors["blue-50"],
144
+ label: {
145
+ default: "blue",
146
+ disabled: "white"
147
+ }
148
+ }
149
+ };
150
+
103
151
  export const ButtonSolid = React.memo(
104
152
  ({
105
153
  color = "primary",
@@ -115,10 +163,23 @@ export const ButtonSolid = React.memo(
115
163
  testID
116
164
  }: ButtonSolidProps) => {
117
165
  const isPressed = useSharedValue(0);
118
-
166
+ const { isExperimental } = useIOExperimentalDesign();
119
167
  // Scaling transformation applied when the button is pressed
120
168
  const animationScaleValue = IOScaleValues?.basicButton?.pressedState;
121
169
 
170
+ const colorMap = React.useMemo(
171
+ () => (isExperimental ? mapColorStates : mapLegacyColorStates),
172
+ [isExperimental]
173
+ );
174
+
175
+ const buttonStyles = React.useMemo(
176
+ () => (isExperimental ? IOButtonStyles : IOButtonLegacyStyles),
177
+ [isExperimental]
178
+ );
179
+
180
+ // Icon size
181
+ const iconSize = React.useMemo(() => (small ? 16 : 20), [small]);
182
+
122
183
  // Using a spring-based animation for our interpolations
123
184
  const progressPressed = useDerivedValue(() =>
124
185
  withSpring(isPressed.value, IOSpringValues.button)
@@ -130,7 +191,7 @@ export const ButtonSolid = React.memo(
130
191
  const bgColor = interpolateColor(
131
192
  progressPressed.value,
132
193
  [0, 1],
133
- [mapColorStates[color].default, mapColorStates[color].pressed]
194
+ [colorMap[color].default, colorMap[color].pressed]
134
195
  );
135
196
 
136
197
  // Scale down button slightly when pressed
@@ -158,13 +219,10 @@ export const ButtonSolid = React.memo(
158
219
 
159
220
  // Label & Icons colors
160
221
  const foregroundColor: IOColors = disabled
161
- ? mapColorStates[color]?.label?.disabled
162
- : mapColorStates[color]?.label?.default;
163
-
164
- // Icon size
165
- const iconSize = small ? 16 : 20;
222
+ ? colorMap[color]?.label?.disabled
223
+ : colorMap[color]?.label?.default;
166
224
 
167
- const Button = () => (
225
+ return (
168
226
  <Pressable
169
227
  accessibilityLabel={accessibilityLabel}
170
228
  accessibilityHint={accessibilityHint}
@@ -179,14 +237,16 @@ export const ButtonSolid = React.memo(
179
237
  >
180
238
  <Animated.View
181
239
  style={[
182
- IOButtonStyles.button,
240
+ buttonStyles.button,
183
241
  iconPosition === "end" && { flexDirection: "row-reverse" },
184
242
  small
185
- ? IOButtonStyles.buttonSizeSmall
186
- : IOButtonStyles.buttonSizeDefault,
243
+ ? buttonStyles.buttonSizeSmall
244
+ : buttonStyles.buttonSizeDefault,
187
245
  disabled
188
- ? styles.backgroundDisabled
189
- : { backgroundColor: mapColorStates[color]?.default },
246
+ ? isExperimental
247
+ ? styles.backgroundDisabled
248
+ : legacyStyles.backgroundDisabled
249
+ : { backgroundColor: colorMap[color]?.default },
190
250
  /* Prevent Reanimated from overriding background colors
191
251
  if button is disabled */
192
252
  !disabled && pressedAnimationStyle
@@ -203,14 +263,14 @@ export const ButtonSolid = React.memo(
203
263
  </>
204
264
  )}
205
265
  <BaseTypography
206
- font="ReadexPro"
207
- weight={"Regular"}
266
+ font={isExperimental ? "ReadexPro" : undefined}
267
+ weight={isExperimental ? "Regular" : "Bold"}
208
268
  color={foregroundColor}
209
269
  style={[
210
- IOButtonStyles.label,
270
+ buttonStyles.label,
211
271
  small
212
- ? IOButtonStyles.labelSizeSmall
213
- : IOButtonStyles.labelSizeDefault
272
+ ? buttonStyles.labelSizeSmall
273
+ : buttonStyles.labelSizeDefault
214
274
  ]}
215
275
  numberOfLines={1}
216
276
  ellipsizeMode="tail"
@@ -224,7 +284,6 @@ export const ButtonSolid = React.memo(
224
284
  </Animated.View>
225
285
  </Pressable>
226
286
  );
227
- return <Button />;
228
287
  }
229
288
  );
230
289
 
@@ -1,4 +1,4 @@
1
- import React, { useCallback } from "react";
1
+ import React, { useCallback, useMemo } from "react";
2
2
  import { GestureResponderEvent, Pressable } from "react-native";
3
3
  import Animated, {
4
4
  Extrapolate,
@@ -15,7 +15,8 @@ import {
15
15
  IOIconButtonStyles,
16
16
  IOScaleValues,
17
17
  IOSpringValues,
18
- hexToRgba
18
+ hexToRgba,
19
+ useIOExperimentalDesign
19
20
  } from "../../core";
20
21
  import { WithTestID } from "../../utils/types";
21
22
  import { AnimatedIcon, IOIcons, IconClassComponent } from "../icons";
@@ -37,6 +38,37 @@ type ColorStates = {
37
38
  };
38
39
  };
39
40
 
41
+ // TODO: Remove this when legacy look is deprecated https://pagopa.atlassian.net/browse/IOPLT-153
42
+ const mapLegacyColorStates: Record<
43
+ NonNullable<IconButton["color"]>,
44
+ ColorStates
45
+ > = {
46
+ // Primary button
47
+ primary: {
48
+ icon: {
49
+ default: IOColors.blue,
50
+ pressed: IOColors["blue-600"],
51
+ disabled: hexToRgba(IOColors.blue, 0.25)
52
+ }
53
+ },
54
+ // Neutral button
55
+ neutral: {
56
+ icon: {
57
+ default: IOColors.black,
58
+ pressed: IOColors.bluegreyDark,
59
+ disabled: IOColors.grey
60
+ }
61
+ },
62
+ // Contrast button
63
+ contrast: {
64
+ icon: {
65
+ default: IOColors.white,
66
+ pressed: hexToRgba(IOColors.white, 0.85),
67
+ disabled: hexToRgba(IOColors.white, 0.25)
68
+ }
69
+ }
70
+ };
71
+
40
72
  const mapColorStates: Record<NonNullable<IconButton["color"]>, ColorStates> = {
41
73
  // Primary button
42
74
  primary: {
@@ -78,6 +110,13 @@ export const IconButton = ({
78
110
  }: IconButton) => {
79
111
  const isPressed = useSharedValue(0);
80
112
 
113
+ const { isExperimental } = useIOExperimentalDesign();
114
+
115
+ const colorMap = useMemo(
116
+ () => (isExperimental ? mapColorStates : mapLegacyColorStates),
117
+ [isExperimental]
118
+ );
119
+
81
120
  // Scaling transformation applied when the button is pressed
82
121
  const animationScaleValue = IOScaleValues?.exaggeratedButton?.pressedState;
83
122
 
@@ -107,7 +146,7 @@ export const IconButton = ({
107
146
  const iconColor = interpolateColor(
108
147
  progressPressed.value,
109
148
  [0, 1],
110
- [mapColorStates[color].icon.default, mapColorStates[color].icon.pressed]
149
+ [colorMap[color].icon.default, colorMap[color].icon.pressed]
111
150
  );
112
151
  return { color: iconColor };
113
152
  });
@@ -149,13 +188,10 @@ export const IconButton = ({
149
188
  <AnimatedIconClassComponent
150
189
  name={icon}
151
190
  animatedProps={animatedColor}
152
- color={mapColorStates[color]?.icon?.default}
191
+ color={colorMap[color]?.icon?.default}
153
192
  />
154
193
  ) : (
155
- <AnimatedIcon
156
- name={icon}
157
- color={mapColorStates[color]?.icon?.disabled}
158
- />
194
+ <AnimatedIcon name={icon} color={colorMap[color]?.icon?.disabled} />
159
195
  )}
160
196
  </Animated.View>
161
197
  </Pressable>