@pagopa/io-app-design-system 2.0.3 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/lib/commonjs/components/alert/Alert.js +12 -5
  2. package/lib/commonjs/components/alert/Alert.js.map +1 -1
  3. package/lib/commonjs/components/banner/Banner.js +5 -1
  4. package/lib/commonjs/components/banner/Banner.js.map +1 -1
  5. package/lib/commonjs/components/banner/__test__/__snapshots__/banner.test.tsx.snap +2 -0
  6. package/lib/commonjs/components/banner/__test__/banner.test.js +4 -2
  7. package/lib/commonjs/components/banner/__test__/banner.test.js.map +1 -1
  8. package/lib/commonjs/components/icons/Icon.js +6 -2
  9. package/lib/commonjs/components/icons/Icon.js.map +1 -1
  10. package/lib/commonjs/components/icons/svg/IconNavQrWallet.js +28 -0
  11. package/lib/commonjs/components/icons/svg/IconNavQrWallet.js.map +1 -0
  12. package/lib/commonjs/components/icons/svg/originals/IconNavQrWallet.svg +1 -0
  13. package/lib/commonjs/components/typography/ComposedBodyFromArray.js +26 -0
  14. package/lib/commonjs/components/typography/ComposedBodyFromArray.js.map +1 -0
  15. package/lib/commonjs/components/typography/__test__/ComposedBodyFromArray.test.js +107 -0
  16. package/lib/commonjs/components/typography/__test__/ComposedBodyFromArray.test.js.map +1 -0
  17. package/lib/commonjs/components/typography/__test__/__snapshots__/ComposedBodyFromArray.test.tsx.snap +895 -0
  18. package/lib/commonjs/components/typography/index.js +11 -0
  19. package/lib/commonjs/components/typography/index.js.map +1 -1
  20. package/lib/module/components/alert/Alert.js +14 -7
  21. package/lib/module/components/alert/Alert.js.map +1 -1
  22. package/lib/module/components/banner/Banner.js +5 -1
  23. package/lib/module/components/banner/Banner.js.map +1 -1
  24. package/lib/module/components/banner/__test__/__snapshots__/banner.test.tsx.snap +2 -0
  25. package/lib/module/components/banner/__test__/banner.test.js +4 -2
  26. package/lib/module/components/banner/__test__/banner.test.js.map +1 -1
  27. package/lib/module/components/featureInfo/FeatureInfo.js.map +1 -1
  28. package/lib/module/components/icons/Icon.js +7 -3
  29. package/lib/module/components/icons/Icon.js.map +1 -1
  30. package/lib/module/components/icons/svg/IconNavQrWallet.js +20 -0
  31. package/lib/module/components/icons/svg/IconNavQrWallet.js.map +1 -0
  32. package/lib/module/components/icons/svg/originals/IconNavQrWallet.svg +1 -0
  33. package/lib/module/components/typography/ComposedBodyFromArray.js +18 -0
  34. package/lib/module/components/typography/ComposedBodyFromArray.js.map +1 -0
  35. package/lib/module/components/typography/__test__/ComposedBodyFromArray.test.js +104 -0
  36. package/lib/module/components/typography/__test__/ComposedBodyFromArray.test.js.map +1 -0
  37. package/lib/module/components/typography/__test__/__snapshots__/ComposedBodyFromArray.test.tsx.snap +895 -0
  38. package/lib/module/components/typography/index.js +1 -0
  39. package/lib/module/components/typography/index.js.map +1 -1
  40. package/lib/typescript/components/alert/Alert.d.ts.map +1 -1
  41. package/lib/typescript/components/banner/Banner.d.ts +1 -1
  42. package/lib/typescript/components/banner/Banner.d.ts.map +1 -1
  43. package/lib/typescript/components/buttons/ButtonLink.d.ts +1 -1
  44. package/lib/typescript/components/buttons/ButtonOutline.d.ts +1 -1
  45. package/lib/typescript/components/buttons/ButtonSolid.d.ts +1 -1
  46. package/lib/typescript/components/featureInfo/FeatureInfo.d.ts +2 -2
  47. package/lib/typescript/components/featureInfo/FeatureInfo.d.ts.map +1 -1
  48. package/lib/typescript/components/icons/Icon.d.ts +2 -0
  49. package/lib/typescript/components/icons/Icon.d.ts.map +1 -1
  50. package/lib/typescript/components/icons/svg/IconNavQrWallet.d.ts +5 -0
  51. package/lib/typescript/components/icons/svg/IconNavQrWallet.d.ts.map +1 -0
  52. package/lib/typescript/components/typography/ComposedBodyFromArray.d.ts +13 -0
  53. package/lib/typescript/components/typography/ComposedBodyFromArray.d.ts.map +1 -0
  54. package/lib/typescript/components/typography/__test__/ComposedBodyFromArray.test.d.ts +2 -0
  55. package/lib/typescript/components/typography/__test__/ComposedBodyFromArray.test.d.ts.map +1 -0
  56. package/lib/typescript/components/typography/index.d.ts +1 -0
  57. package/lib/typescript/components/typography/index.d.ts.map +1 -1
  58. package/package.json +1 -1
  59. package/src/components/alert/Alert.tsx +27 -7
  60. package/src/components/banner/Banner.tsx +6 -2
  61. package/src/components/banner/__test__/__snapshots__/banner.test.tsx.snap +2 -0
  62. package/src/components/banner/__test__/banner.test.tsx +2 -0
  63. package/src/components/featureInfo/FeatureInfo.tsx +2 -2
  64. package/src/components/icons/Icon.tsx +7 -3
  65. package/src/components/icons/svg/IconNavQrWallet.tsx +16 -0
  66. package/src/components/icons/svg/originals/IconNavQrWallet.svg +1 -0
  67. package/src/components/typography/ComposedBodyFromArray.tsx +25 -0
  68. package/src/components/typography/__test__/ComposedBodyFromArray.test.tsx +99 -0
  69. package/src/components/typography/__test__/__snapshots__/ComposedBodyFromArray.test.tsx.snap +895 -0
  70. package/src/components/typography/index.tsx +1 -0
@@ -1,6 +1,7 @@
1
1
  export * from "./BaseTypography";
2
2
  export * from "./IOText";
3
3
  export * from "./Body";
4
+ export * from "./ComposedBodyFromArray";
4
5
  export * from "./Caption";
5
6
  export * from "./Chip";
6
7
  export * from "./ButtonText";
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/typography/index.tsx"],"mappings":"AAAA,cAAc,kBAAkB;AAChC,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,cAAc,cAAc;AAC5B,cAAc,WAAW;AACzB,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,cAAc;AAC5B,cAAc,iBAAiB;AAC/B,cAAc,aAAa;AAC3B,cAAc,iBAAiB;AAC/B,cAAc,UAAU;AACxB,cAAc,iBAAiB;AAC/B,cAAc,iBAAiB;AAC/B,cAAc,iBAAiB"}
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/typography/index.tsx"],"mappings":"AAAA,cAAc,kBAAkB;AAChC,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,yBAAyB;AACvC,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,cAAc,cAAc;AAC5B,cAAc,WAAW;AACzB,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,cAAc;AAC5B,cAAc,iBAAiB;AAC/B,cAAc,aAAa;AAC3B,cAAc,iBAAiB;AAC/B,cAAc,UAAU;AACxB,cAAc,iBAAiB;AAC/B,cAAc,iBAAiB;AAC/B,cAAc,iBAAiB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../../../src/components/alert/Alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,EACL,qBAAqB,EAIrB,IAAI,EACL,MAAM,cAAc,CAAC;AAkBtB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA2B/C,KAAK,UAAU,GAAG,UAAU,CAAC;IAC3B,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC,CAAC;AAEH,KAAK,gBAAgB,GACjB;IACE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACjD,GACD;IACE,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB,CAAC;AAEN,KAAK,SAAS,GAAG,UAAU,GAAG,gBAAgB,CAAC;AAoC/C,eAAO,MAAM,KAAK,wEA8IjB,CAAC"}
1
+ {"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../../../src/components/alert/Alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AACrD,OAAO,EACL,qBAAqB,EAMrB,IAAI,EACL,MAAM,cAAc,CAAC;AAmBtB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA2B/C,KAAK,UAAU,GAAG,UAAU,CAAC;IAC3B,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC,CAAC;AAEH,KAAK,gBAAgB,GACjB;IACE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACjD,GACD;IACE,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB,CAAC;AAEN,KAAK,SAAS,GAAG,UAAU,GAAG,gBAAgB,CAAC;AAoC/C,eAAO,MAAM,KAAK,wEA+JjB,CAAC"}
@@ -41,6 +41,6 @@ type BannerCloseProps = {
41
41
  };
42
42
  export type Banner = BaseBannerProps & RequiredBannerProps & BannerActionProps & BannerCloseProps;
43
43
  export declare const bannerBackgroundColours: Array<BaseBannerProps["color"]>;
44
- export declare const Banner: ({ viewRef, size, color, pictogramName, title, content, action, labelClose, onPress, onClose, accessibilityHint, accessibilityLabel, testID }: Banner) => React.JSX.Element;
44
+ export declare const Banner: ({ viewRef, size, color, pictogramName, title, content, action, labelClose, onPress, onClose, accessibilityHint, accessibilityLabel, testID, }: Banner) => React.JSX.Element;
45
45
  export {};
46
46
  //# sourceMappingURL=Banner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../../../src/components/banner/Banner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EAGrB,IAAI,EAEL,MAAM,cAAc,CAAC;AAmBtB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAEL,iBAAiB,EAElB,MAAM,eAAe,CAAC;AA8CvB,KAAK,eAAe,GAAG,UAAU,CAAC;IAChC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACtB,KAAK,EAAE,SAAS,GAAG,WAAW,CAAC;IAC/B,aAAa,EAAE,iBAAiB,CAAC;IACjC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAEhC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC,CAAC;AAGH,KAAK,mBAAmB,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,KAAK,oBAAoB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;AAE/D,KAAK,uBAAuB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,KAAK,mBAAmB,GACpB,mBAAmB,GACnB,oBAAoB,GACpB,uBAAuB,CAAC;AAE5B,KAAK,iBAAiB,GAClB;IACE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAChD,iBAAiB,CAAC,EAAE,KAAK,CAAC;CAC3B,GACD;IACE,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,CAAC;AAGN,KAAK,gBAAgB,GACjB;IACE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB,CAAC;AAEN,MAAM,MAAM,MAAM,GAAG,eAAe,GAClC,mBAAmB,GACnB,iBAAiB,GACjB,gBAAgB,CAAC;AAMnB,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAGnE,CAAC;AAUF,eAAO,MAAM,MAAM,iJAchB,MAAM,sBAqIR,CAAC"}
1
+ {"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../../../src/components/banner/Banner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EAGrB,IAAI,EAEL,MAAM,cAAc,CAAC;AAmBtB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAEL,iBAAiB,EAElB,MAAM,eAAe,CAAC;AA8CvB,KAAK,eAAe,GAAG,UAAU,CAAC;IAChC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACtB,KAAK,EAAE,SAAS,GAAG,WAAW,CAAC;IAC/B,aAAa,EAAE,iBAAiB,CAAC;IACjC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAEhC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC,CAAC;AAGH,KAAK,mBAAmB,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,KAAK,oBAAoB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;AAE/D,KAAK,uBAAuB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,KAAK,mBAAmB,GACpB,mBAAmB,GACnB,oBAAoB,GACpB,uBAAuB,CAAC;AAE5B,KAAK,iBAAiB,GAClB;IACE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAChD,iBAAiB,CAAC,EAAE,KAAK,CAAC;CAC3B,GACD;IACE,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,CAAC;AAGN,KAAK,gBAAgB,GACjB;IACE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB,CAAC;AAEN,MAAM,MAAM,MAAM,GAAG,eAAe,GAClC,mBAAmB,GACnB,iBAAiB,GACjB,gBAAgB,CAAC;AAMnB,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAGnE,CAAC;AAUF,eAAO,MAAM,MAAM,kJAchB,MAAM,sBAyIR,CAAC"}
@@ -17,7 +17,7 @@ export declare const ButtonLink: React.ForwardRefExoticComponent<{
17
17
  color?: ColorButtonLink | undefined;
18
18
  label: string;
19
19
  disabled?: boolean | undefined;
20
- icon?: "code" | "option" | "search" | "key" | "spid" | "cie" | "cieLetter" | "qrCode" | "bell" | "website" | "abacus" | "home" | "homeFill" | "copy" | "selfCert" | "institution" | "merchant" | "hourglass" | "shareiOs" | "shareAndroid" | "filterOniOS" | "filterOffiOS" | "filterAndroid" | "locked" | "unlocked" | "initiatives" | "analytics" | "fornitori" | "eyeShow" | "eyeHide" | "pinOff" | "pinOn" | "emojiSad" | "emojiHappy" | "phone" | "email" | "emailFill" | "pec" | "messageLegal" | "message" | "chat" | "archive" | "archiveFilled" | "inbox" | "inboxFilled" | "security" | "docGiacenza" | "docPaymentTitle" | "docPaymentCode" | "docAttach" | "docAttachPDF" | "folder" | "receiptOn" | "receiptOff" | "notes" | "attachment" | "print" | "add" | "addSmall" | "success" | "ok" | "fiscalCodeIndividual" | "entityCode" | "creditCard" | "creditCardOff" | "creditCardFilled" | "bonus" | "bonusFilled" | "transactionsBoxed" | "transactions" | "amount" | "psp" | "mapPin" | "locationiOS" | "locationiOSFilled" | "locationAndroid" | "coggle" | "warningFilled" | "notice" | "noticeFilled" | "noticePlain" | "info" | "infoFilled" | "canceled" | "errorFilled" | "legalValue" | "refund" | "reload" | "history" | "edit" | "battery" | "trashcan" | "calendar" | "profile" | "familySharing" | "lightbulb" | "magicWand" | "sparkles" | "starEmpty" | "starFilled" | "starOff" | "heartEmpty" | "heartFilled" | "heartOff" | "switchOff" | "switchCard" | "fingerprint" | "touch" | "device" | "deviceVibration" | "contactless" | "signal" | "notification" | "keyboard" | "keyboardDown" | "dotMenu" | "barcode" | "save" | "login" | "logout" | "ladybug" | "tag" | "gallery" | "externalLink" | "externalLinkSmall" | "forward" | "cancel" | "compare" | "instruction" | "terms" | "help" | "accessibility" | "car" | "healthCard" | "chevronRight" | "chevronLeft" | "chevronBottom" | "chevronTop" | "chevronRightListItem" | "closeLarge" | "closeMedium" | "closeSmall" | "arrowBottom" | "arrowLeft" | "arrowTop" | "arrowRight" | "change" | "backiOS" | "backAndroid" | "checkTick" | "checkTickBig" | "read" | "light" | "lightFilled" | "navMessages" | "navMessagesFocused" | "navWallet" | "navWalletFocused" | "navScan" | "navServices" | "navServicesFocused" | "navProfile" | "navProfileFocused" | "navPsp" | "legRadioOn" | "legRadioOff" | "legCheckOn" | "legCheckOff" | "biomFingerprint" | "biomFaceID" | "categCulture" | "categWellness" | "categLearning" | "categSport" | "categHome" | "categTelco" | "categFinance" | "categTravel" | "categMobility" | "categJobOffers" | "categShopping" | "categSustainability" | "productIOApp" | "productPagoPA" | "productIOAppBlueBg" | "systemSettingsAndroid" | "systemSettingsiOS" | "systemToggleInstructions" | "systemAppsAndroid" | "systemNotificationsInstructions" | "systemPermissionsAndroid" | "systemLocationiOS" | "systemPhotosiOS" | "systemPrivacyiOS" | "systemBiometricRecognitionOS" | "systemNFC" | "systemPasswordAndroid" | "systemPasswordiOS" | undefined;
20
+ icon?: "code" | "option" | "search" | "key" | "spid" | "cie" | "cieLetter" | "qrCode" | "bell" | "website" | "abacus" | "home" | "homeFill" | "copy" | "selfCert" | "institution" | "merchant" | "hourglass" | "shareiOs" | "shareAndroid" | "filterOniOS" | "filterOffiOS" | "filterAndroid" | "locked" | "unlocked" | "initiatives" | "analytics" | "fornitori" | "eyeShow" | "eyeHide" | "pinOff" | "pinOn" | "emojiSad" | "emojiHappy" | "phone" | "email" | "emailFill" | "pec" | "messageLegal" | "message" | "chat" | "archive" | "archiveFilled" | "inbox" | "inboxFilled" | "security" | "docGiacenza" | "docPaymentTitle" | "docPaymentCode" | "docAttach" | "docAttachPDF" | "folder" | "receiptOn" | "receiptOff" | "notes" | "attachment" | "print" | "add" | "addSmall" | "success" | "ok" | "fiscalCodeIndividual" | "entityCode" | "creditCard" | "creditCardOff" | "creditCardFilled" | "bonus" | "bonusFilled" | "transactionsBoxed" | "transactions" | "amount" | "psp" | "mapPin" | "locationiOS" | "locationiOSFilled" | "locationAndroid" | "coggle" | "warningFilled" | "notice" | "noticeFilled" | "noticePlain" | "info" | "infoFilled" | "canceled" | "errorFilled" | "legalValue" | "refund" | "reload" | "history" | "edit" | "battery" | "trashcan" | "calendar" | "profile" | "familySharing" | "lightbulb" | "magicWand" | "sparkles" | "starEmpty" | "starFilled" | "starOff" | "heartEmpty" | "heartFilled" | "heartOff" | "switchOff" | "switchCard" | "fingerprint" | "touch" | "device" | "deviceVibration" | "contactless" | "signal" | "notification" | "keyboard" | "keyboardDown" | "dotMenu" | "barcode" | "save" | "login" | "logout" | "ladybug" | "tag" | "gallery" | "externalLink" | "externalLinkSmall" | "forward" | "cancel" | "compare" | "instruction" | "terms" | "help" | "accessibility" | "car" | "healthCard" | "chevronRight" | "chevronLeft" | "chevronBottom" | "chevronTop" | "chevronRightListItem" | "closeLarge" | "closeMedium" | "closeSmall" | "arrowBottom" | "arrowLeft" | "arrowTop" | "arrowRight" | "change" | "backiOS" | "backAndroid" | "checkTick" | "checkTickBig" | "read" | "light" | "lightFilled" | "navMessages" | "navMessagesFocused" | "navWallet" | "navWalletFocused" | "navQrWallet" | "navScan" | "navServices" | "navServicesFocused" | "navProfile" | "navProfileFocused" | "navPsp" | "legRadioOn" | "legRadioOff" | "legCheckOn" | "legCheckOff" | "biomFingerprint" | "biomFaceID" | "categCulture" | "categWellness" | "categLearning" | "categSport" | "categHome" | "categTelco" | "categFinance" | "categTravel" | "categMobility" | "categJobOffers" | "categShopping" | "categSustainability" | "productIOApp" | "productPagoPA" | "productIOAppBlueBg" | "systemSettingsAndroid" | "systemSettingsiOS" | "systemToggleInstructions" | "systemAppsAndroid" | "systemNotificationsInstructions" | "systemPermissionsAndroid" | "systemLocationiOS" | "systemPhotosiOS" | "systemPrivacyiOS" | "systemBiometricRecognitionOS" | "systemNFC" | "systemPasswordAndroid" | "systemPasswordiOS" | undefined;
21
21
  iconPosition?: "end" | "start" | undefined;
22
22
  accessibilityLabel?: string | undefined;
23
23
  accessibilityHint?: string | undefined;
@@ -15,7 +15,7 @@ export declare const ButtonOutline: React.ForwardRefExoticComponent<{
15
15
  color?: ColorButtonOutline | undefined;
16
16
  label: string;
17
17
  fullWidth?: boolean | undefined;
18
- icon?: "code" | "option" | "search" | "key" | "spid" | "cie" | "cieLetter" | "qrCode" | "bell" | "website" | "abacus" | "home" | "homeFill" | "copy" | "selfCert" | "institution" | "merchant" | "hourglass" | "shareiOs" | "shareAndroid" | "filterOniOS" | "filterOffiOS" | "filterAndroid" | "locked" | "unlocked" | "initiatives" | "analytics" | "fornitori" | "eyeShow" | "eyeHide" | "pinOff" | "pinOn" | "emojiSad" | "emojiHappy" | "phone" | "email" | "emailFill" | "pec" | "messageLegal" | "message" | "chat" | "archive" | "archiveFilled" | "inbox" | "inboxFilled" | "security" | "docGiacenza" | "docPaymentTitle" | "docPaymentCode" | "docAttach" | "docAttachPDF" | "folder" | "receiptOn" | "receiptOff" | "notes" | "attachment" | "print" | "add" | "addSmall" | "success" | "ok" | "fiscalCodeIndividual" | "entityCode" | "creditCard" | "creditCardOff" | "creditCardFilled" | "bonus" | "bonusFilled" | "transactionsBoxed" | "transactions" | "amount" | "psp" | "mapPin" | "locationiOS" | "locationiOSFilled" | "locationAndroid" | "coggle" | "warningFilled" | "notice" | "noticeFilled" | "noticePlain" | "info" | "infoFilled" | "canceled" | "errorFilled" | "legalValue" | "refund" | "reload" | "history" | "edit" | "battery" | "trashcan" | "calendar" | "profile" | "familySharing" | "lightbulb" | "magicWand" | "sparkles" | "starEmpty" | "starFilled" | "starOff" | "heartEmpty" | "heartFilled" | "heartOff" | "switchOff" | "switchCard" | "fingerprint" | "touch" | "device" | "deviceVibration" | "contactless" | "signal" | "notification" | "keyboard" | "keyboardDown" | "dotMenu" | "barcode" | "save" | "login" | "logout" | "ladybug" | "tag" | "gallery" | "externalLink" | "externalLinkSmall" | "forward" | "cancel" | "compare" | "instruction" | "terms" | "help" | "accessibility" | "car" | "healthCard" | "chevronRight" | "chevronLeft" | "chevronBottom" | "chevronTop" | "chevronRightListItem" | "closeLarge" | "closeMedium" | "closeSmall" | "arrowBottom" | "arrowLeft" | "arrowTop" | "arrowRight" | "change" | "backiOS" | "backAndroid" | "checkTick" | "checkTickBig" | "read" | "light" | "lightFilled" | "navMessages" | "navMessagesFocused" | "navWallet" | "navWalletFocused" | "navScan" | "navServices" | "navServicesFocused" | "navProfile" | "navProfileFocused" | "navPsp" | "legRadioOn" | "legRadioOff" | "legCheckOn" | "legCheckOff" | "biomFingerprint" | "biomFaceID" | "categCulture" | "categWellness" | "categLearning" | "categSport" | "categHome" | "categTelco" | "categFinance" | "categTravel" | "categMobility" | "categJobOffers" | "categShopping" | "categSustainability" | "productIOApp" | "productPagoPA" | "productIOAppBlueBg" | "systemSettingsAndroid" | "systemSettingsiOS" | "systemToggleInstructions" | "systemAppsAndroid" | "systemNotificationsInstructions" | "systemPermissionsAndroid" | "systemLocationiOS" | "systemPhotosiOS" | "systemPrivacyiOS" | "systemBiometricRecognitionOS" | "systemNFC" | "systemPasswordAndroid" | "systemPasswordiOS" | undefined;
18
+ icon?: "code" | "option" | "search" | "key" | "spid" | "cie" | "cieLetter" | "qrCode" | "bell" | "website" | "abacus" | "home" | "homeFill" | "copy" | "selfCert" | "institution" | "merchant" | "hourglass" | "shareiOs" | "shareAndroid" | "filterOniOS" | "filterOffiOS" | "filterAndroid" | "locked" | "unlocked" | "initiatives" | "analytics" | "fornitori" | "eyeShow" | "eyeHide" | "pinOff" | "pinOn" | "emojiSad" | "emojiHappy" | "phone" | "email" | "emailFill" | "pec" | "messageLegal" | "message" | "chat" | "archive" | "archiveFilled" | "inbox" | "inboxFilled" | "security" | "docGiacenza" | "docPaymentTitle" | "docPaymentCode" | "docAttach" | "docAttachPDF" | "folder" | "receiptOn" | "receiptOff" | "notes" | "attachment" | "print" | "add" | "addSmall" | "success" | "ok" | "fiscalCodeIndividual" | "entityCode" | "creditCard" | "creditCardOff" | "creditCardFilled" | "bonus" | "bonusFilled" | "transactionsBoxed" | "transactions" | "amount" | "psp" | "mapPin" | "locationiOS" | "locationiOSFilled" | "locationAndroid" | "coggle" | "warningFilled" | "notice" | "noticeFilled" | "noticePlain" | "info" | "infoFilled" | "canceled" | "errorFilled" | "legalValue" | "refund" | "reload" | "history" | "edit" | "battery" | "trashcan" | "calendar" | "profile" | "familySharing" | "lightbulb" | "magicWand" | "sparkles" | "starEmpty" | "starFilled" | "starOff" | "heartEmpty" | "heartFilled" | "heartOff" | "switchOff" | "switchCard" | "fingerprint" | "touch" | "device" | "deviceVibration" | "contactless" | "signal" | "notification" | "keyboard" | "keyboardDown" | "dotMenu" | "barcode" | "save" | "login" | "logout" | "ladybug" | "tag" | "gallery" | "externalLink" | "externalLinkSmall" | "forward" | "cancel" | "compare" | "instruction" | "terms" | "help" | "accessibility" | "car" | "healthCard" | "chevronRight" | "chevronLeft" | "chevronBottom" | "chevronTop" | "chevronRightListItem" | "closeLarge" | "closeMedium" | "closeSmall" | "arrowBottom" | "arrowLeft" | "arrowTop" | "arrowRight" | "change" | "backiOS" | "backAndroid" | "checkTick" | "checkTickBig" | "read" | "light" | "lightFilled" | "navMessages" | "navMessagesFocused" | "navWallet" | "navWalletFocused" | "navQrWallet" | "navScan" | "navServices" | "navServicesFocused" | "navProfile" | "navProfileFocused" | "navPsp" | "legRadioOn" | "legRadioOff" | "legCheckOn" | "legCheckOff" | "biomFingerprint" | "biomFaceID" | "categCulture" | "categWellness" | "categLearning" | "categSport" | "categHome" | "categTelco" | "categFinance" | "categTravel" | "categMobility" | "categJobOffers" | "categShopping" | "categSustainability" | "productIOApp" | "productPagoPA" | "productIOAppBlueBg" | "systemSettingsAndroid" | "systemSettingsiOS" | "systemToggleInstructions" | "systemAppsAndroid" | "systemNotificationsInstructions" | "systemPermissionsAndroid" | "systemLocationiOS" | "systemPhotosiOS" | "systemPrivacyiOS" | "systemBiometricRecognitionOS" | "systemNFC" | "systemPasswordAndroid" | "systemPasswordiOS" | undefined;
19
19
  iconPosition?: "end" | "start" | undefined;
20
20
  onPress: (event: GestureResponderEvent) => void;
21
21
  } & Pick<import("react-native").PressableProps & React.RefAttributes<View>, "accessibilityLabel" | "disabled" | "accessibilityHint"> & import("../../utils/types").TestID & React.RefAttributes<View>>;
@@ -38,7 +38,7 @@ export declare const ButtonSolid: React.ForwardRefExoticComponent<{
38
38
  * @default false
39
39
  */
40
40
  loading?: boolean | undefined;
41
- icon?: "code" | "option" | "search" | "key" | "spid" | "cie" | "cieLetter" | "qrCode" | "bell" | "website" | "abacus" | "home" | "homeFill" | "copy" | "selfCert" | "institution" | "merchant" | "hourglass" | "shareiOs" | "shareAndroid" | "filterOniOS" | "filterOffiOS" | "filterAndroid" | "locked" | "unlocked" | "initiatives" | "analytics" | "fornitori" | "eyeShow" | "eyeHide" | "pinOff" | "pinOn" | "emojiSad" | "emojiHappy" | "phone" | "email" | "emailFill" | "pec" | "messageLegal" | "message" | "chat" | "archive" | "archiveFilled" | "inbox" | "inboxFilled" | "security" | "docGiacenza" | "docPaymentTitle" | "docPaymentCode" | "docAttach" | "docAttachPDF" | "folder" | "receiptOn" | "receiptOff" | "notes" | "attachment" | "print" | "add" | "addSmall" | "success" | "ok" | "fiscalCodeIndividual" | "entityCode" | "creditCard" | "creditCardOff" | "creditCardFilled" | "bonus" | "bonusFilled" | "transactionsBoxed" | "transactions" | "amount" | "psp" | "mapPin" | "locationiOS" | "locationiOSFilled" | "locationAndroid" | "coggle" | "warningFilled" | "notice" | "noticeFilled" | "noticePlain" | "info" | "infoFilled" | "canceled" | "errorFilled" | "legalValue" | "refund" | "reload" | "history" | "edit" | "battery" | "trashcan" | "calendar" | "profile" | "familySharing" | "lightbulb" | "magicWand" | "sparkles" | "starEmpty" | "starFilled" | "starOff" | "heartEmpty" | "heartFilled" | "heartOff" | "switchOff" | "switchCard" | "fingerprint" | "touch" | "device" | "deviceVibration" | "contactless" | "signal" | "notification" | "keyboard" | "keyboardDown" | "dotMenu" | "barcode" | "save" | "login" | "logout" | "ladybug" | "tag" | "gallery" | "externalLink" | "externalLinkSmall" | "forward" | "cancel" | "compare" | "instruction" | "terms" | "help" | "accessibility" | "car" | "healthCard" | "chevronRight" | "chevronLeft" | "chevronBottom" | "chevronTop" | "chevronRightListItem" | "closeLarge" | "closeMedium" | "closeSmall" | "arrowBottom" | "arrowLeft" | "arrowTop" | "arrowRight" | "change" | "backiOS" | "backAndroid" | "checkTick" | "checkTickBig" | "read" | "light" | "lightFilled" | "navMessages" | "navMessagesFocused" | "navWallet" | "navWalletFocused" | "navScan" | "navServices" | "navServicesFocused" | "navProfile" | "navProfileFocused" | "navPsp" | "legRadioOn" | "legRadioOff" | "legCheckOn" | "legCheckOff" | "biomFingerprint" | "biomFaceID" | "categCulture" | "categWellness" | "categLearning" | "categSport" | "categHome" | "categTelco" | "categFinance" | "categTravel" | "categMobility" | "categJobOffers" | "categShopping" | "categSustainability" | "productIOApp" | "productPagoPA" | "productIOAppBlueBg" | "systemSettingsAndroid" | "systemSettingsiOS" | "systemToggleInstructions" | "systemAppsAndroid" | "systemNotificationsInstructions" | "systemPermissionsAndroid" | "systemLocationiOS" | "systemPhotosiOS" | "systemPrivacyiOS" | "systemBiometricRecognitionOS" | "systemNFC" | "systemPasswordAndroid" | "systemPasswordiOS" | undefined;
41
+ icon?: "code" | "option" | "search" | "key" | "spid" | "cie" | "cieLetter" | "qrCode" | "bell" | "website" | "abacus" | "home" | "homeFill" | "copy" | "selfCert" | "institution" | "merchant" | "hourglass" | "shareiOs" | "shareAndroid" | "filterOniOS" | "filterOffiOS" | "filterAndroid" | "locked" | "unlocked" | "initiatives" | "analytics" | "fornitori" | "eyeShow" | "eyeHide" | "pinOff" | "pinOn" | "emojiSad" | "emojiHappy" | "phone" | "email" | "emailFill" | "pec" | "messageLegal" | "message" | "chat" | "archive" | "archiveFilled" | "inbox" | "inboxFilled" | "security" | "docGiacenza" | "docPaymentTitle" | "docPaymentCode" | "docAttach" | "docAttachPDF" | "folder" | "receiptOn" | "receiptOff" | "notes" | "attachment" | "print" | "add" | "addSmall" | "success" | "ok" | "fiscalCodeIndividual" | "entityCode" | "creditCard" | "creditCardOff" | "creditCardFilled" | "bonus" | "bonusFilled" | "transactionsBoxed" | "transactions" | "amount" | "psp" | "mapPin" | "locationiOS" | "locationiOSFilled" | "locationAndroid" | "coggle" | "warningFilled" | "notice" | "noticeFilled" | "noticePlain" | "info" | "infoFilled" | "canceled" | "errorFilled" | "legalValue" | "refund" | "reload" | "history" | "edit" | "battery" | "trashcan" | "calendar" | "profile" | "familySharing" | "lightbulb" | "magicWand" | "sparkles" | "starEmpty" | "starFilled" | "starOff" | "heartEmpty" | "heartFilled" | "heartOff" | "switchOff" | "switchCard" | "fingerprint" | "touch" | "device" | "deviceVibration" | "contactless" | "signal" | "notification" | "keyboard" | "keyboardDown" | "dotMenu" | "barcode" | "save" | "login" | "logout" | "ladybug" | "tag" | "gallery" | "externalLink" | "externalLinkSmall" | "forward" | "cancel" | "compare" | "instruction" | "terms" | "help" | "accessibility" | "car" | "healthCard" | "chevronRight" | "chevronLeft" | "chevronBottom" | "chevronTop" | "chevronRightListItem" | "closeLarge" | "closeMedium" | "closeSmall" | "arrowBottom" | "arrowLeft" | "arrowTop" | "arrowRight" | "change" | "backiOS" | "backAndroid" | "checkTick" | "checkTickBig" | "read" | "light" | "lightFilled" | "navMessages" | "navMessagesFocused" | "navWallet" | "navWalletFocused" | "navQrWallet" | "navScan" | "navServices" | "navServicesFocused" | "navProfile" | "navProfileFocused" | "navPsp" | "legRadioOn" | "legRadioOff" | "legCheckOn" | "legCheckOff" | "biomFingerprint" | "biomFaceID" | "categCulture" | "categWellness" | "categLearning" | "categSport" | "categHome" | "categTelco" | "categFinance" | "categTravel" | "categMobility" | "categJobOffers" | "categShopping" | "categSustainability" | "productIOApp" | "productPagoPA" | "productIOAppBlueBg" | "systemSettingsAndroid" | "systemSettingsiOS" | "systemToggleInstructions" | "systemAppsAndroid" | "systemNotificationsInstructions" | "systemPermissionsAndroid" | "systemLocationiOS" | "systemPhotosiOS" | "systemPrivacyiOS" | "systemBiometricRecognitionOS" | "systemNFC" | "systemPasswordAndroid" | "systemPasswordiOS" | undefined;
42
42
  /**
43
43
  * @default start
44
44
  */
@@ -1,8 +1,8 @@
1
- import React from "react";
1
+ import React, { ReactNode } from "react";
2
2
  import { GestureResponderEvent } from "react-native";
3
3
  import { IOIcons, IOPictograms } from "../../components";
4
4
  type PartialFeatureInfo = {
5
- body?: string | React.ReactNode;
5
+ body?: string | ReactNode;
6
6
  };
7
7
  type FeatureInfoActionProps = {
8
8
  action: {
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureInfo.d.ts","sourceRoot":"","sources":["../../../../src/components/featureInfo/FeatureInfo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAQ,MAAM,cAAc,CAAC;AAC3D,OAAO,EAIL,OAAO,EAEP,YAAY,EAKb,MAAM,kBAAkB,CAAC;AAG1B,KAAK,kBAAkB,GAAG;IAExB,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;CACjC,CAAC;AAEF,KAAK,sBAAsB,GACvB;IACE,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;KACjD,CAAC;CACH,GACD;IACE,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB,CAAC;AAEN,KAAK,uBAAuB,GACxB;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,aAAa,EAAE,YAAY,CAAA;CAAE,GACjD;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjD,KAAK,gBAAgB,GAAG,uBAAuB,GAC7C,kBAAkB,GAClB,sBAAsB,CAAC;AAiBzB,eAAO,MAAM,WAAW,8CAKrB,gBAAgB,sBA8BlB,CAAC"}
1
+ {"version":3,"file":"FeatureInfo.d.ts","sourceRoot":"","sources":["../../../../src/components/featureInfo/FeatureInfo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAQ,MAAM,cAAc,CAAC;AAC3D,OAAO,EAIL,OAAO,EAEP,YAAY,EAKb,MAAM,kBAAkB,CAAC;AAG1B,KAAK,kBAAkB,GAAG;IAExB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,KAAK,sBAAsB,GACvB;IACE,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;KACjD,CAAC;CACH,GACD;IACE,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB,CAAC;AAEN,KAAK,uBAAuB,GACxB;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,aAAa,EAAE,YAAY,CAAA;CAAE,GACjD;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjD,KAAK,gBAAgB,GAAG,uBAAuB,GAC7C,kBAAkB,GAClB,sBAAsB,CAAC;AAiBzB,eAAO,MAAM,WAAW,8CAKrB,gBAAgB,sBA8BlB,CAAC"}
@@ -160,6 +160,7 @@ export declare const IOIcons: {
160
160
  readonly navMessagesFocused: ({ size, style, ...props }: import("./types").SVGIconProps) => React.JSX.Element;
161
161
  readonly navWallet: ({ size, style, ...props }: import("./types").SVGIconProps) => React.JSX.Element;
162
162
  readonly navWalletFocused: ({ size, style, ...props }: import("./types").SVGIconProps) => React.JSX.Element;
163
+ readonly navQrWallet: ({ size, style, ...props }: import("./types").SVGIconProps) => React.JSX.Element;
163
164
  readonly navScan: ({ size, style }: import("./types").SVGIconProps) => React.JSX.Element;
164
165
  readonly navServices: ({ size, style, ...props }: import("./types").SVGIconProps) => React.JSX.Element;
165
166
  readonly navServicesFocused: ({ size, style, ...props }: import("./types").SVGIconProps) => React.JSX.Element;
@@ -241,6 +242,7 @@ export declare const IONavIcons: {
241
242
  readonly navWalletFocused: ({ size, style, ...props }: import("./types").SVGIconProps) => React.JSX.Element;
242
243
  readonly navServicesFocused: ({ size, style, ...props }: import("./types").SVGIconProps) => React.JSX.Element;
243
244
  readonly navProfileFocused: ({ size, style, ...props }: import("./types").SVGIconProps) => React.JSX.Element;
245
+ readonly navQrWallet: ({ size, style, ...props }: import("./types").SVGIconProps) => React.JSX.Element;
244
246
  };
245
247
  export type IONavIcons = keyof typeof IONavIcons;
246
248
  export declare const IOBiometricIcons: {
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../src/components/icons/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAyM/C,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuMV,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,OAAO,CAAC;AAK3C,MAAM,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEpE,MAAM,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,CAAC;AAE9C,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,IAAI,CAAC,EAAE,eAAe,GAAG,uBAAuB,GAAG,MAAM,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAMF,eAAO,MAAM,IAAI,oEAOd,YAAY,sBAcd,CAAC;AAOF,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,YAAY,gDAMtB,oBAAoB,sBAatB,CAAC;AAKF,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC;gBAC/D,KAAK,EAAE,oBAAoB;IAGvC,MAAM;CAGP;AASD,eAAO,MAAM,UAAU;;;;;CAKtB,CAAC;AAgBF,eAAO,MAAM,UAAU;;;;;;;;;;;CAWb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,UAAU,CAAC;AAKjD,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAkB7D,eAAO,MAAM,eAAe;;;;;;;;;;;;;CAalB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,eAAe,CAAC;AAK3D,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,cAAc,CAAC;AAmBzD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;CAchB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,aAAa,CAAC"}
1
+ {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../src/components/icons/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AA0M/C,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwMV,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,OAAO,CAAC;AAK3C,MAAM,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEpE,MAAM,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,CAAC;AAE9C,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,IAAI,CAAC,EAAE,eAAe,GAAG,uBAAuB,GAAG,MAAM,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAMF,eAAO,MAAM,IAAI,oEAOd,YAAY,sBAcd,CAAC;AAOF,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,YAAY,gDAMtB,oBAAoB,sBAatB,CAAC;AAKF,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC;gBAC/D,KAAK,EAAE,oBAAoB;IAGvC,MAAM;CAGP;AASD,eAAO,MAAM,UAAU;;;;;CAKtB,CAAC;AAiBF,eAAO,MAAM,UAAU;;;;;;;;;;;;CAYb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,UAAU,CAAC;AAKjD,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAkB7D,eAAO,MAAM,eAAe;;;;;;;;;;;;;CAalB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,eAAe,CAAC;AAK3D,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,cAAc,CAAC;AAmBzD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;CAchB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,aAAa,CAAC"}
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { SVGIconProps } from "../types";
3
+ declare const IconNavQrWallet: ({ size, style, ...props }: SVGIconProps) => React.JSX.Element;
4
+ export default IconNavQrWallet;
5
+ //# sourceMappingURL=IconNavQrWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconNavQrWallet.d.ts","sourceRoot":"","sources":["../../../../../src/components/icons/svg/IconNavQrWallet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,QAAA,MAAM,eAAe,8BAA+B,YAAY,sBAS/D,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React, { ComponentProps, ReactElement } from "react";
2
+ import { TextStyle } from "react-native";
3
+ import { Body } from "./Body";
4
+ export type BodyProps = ComponentProps<typeof Body> & {
5
+ text: string | ReactElement;
6
+ };
7
+ type PropsComposedBody = {
8
+ body: Array<BodyProps>;
9
+ textAlign?: TextStyle["textAlign"];
10
+ };
11
+ export declare const ComposedBodyFromArray: ({ body, textAlign }: PropsComposedBody) => React.JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=ComposedBodyFromArray.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposedBodyFromArray.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/ComposedBodyFromArray.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,IAAI,CAAC,GAAG;IACpD,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;CAC7B,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,qBAAqB,wBAG/B,iBAAiB,sBAQnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ComposedBodyFromArray.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposedBodyFromArray.test.d.ts","sourceRoot":"","sources":["../../../../../src/components/typography/__test__/ComposedBodyFromArray.test.tsx"],"names":[],"mappings":""}
@@ -1,6 +1,7 @@
1
1
  export * from "./BaseTypography";
2
2
  export * from "./IOText";
3
3
  export * from "./Body";
4
+ export * from "./ComposedBodyFromArray";
4
5
  export * from "./Caption";
5
6
  export * from "./Chip";
6
7
  export * from "./ButtonText";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/index.tsx"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,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;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/index.tsx"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,yBAAyB,CAAC;AACxC,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;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pagopa/io-app-design-system",
3
- "version": "2.0.3",
3
+ "version": "2.0.5",
4
4
  "description": "The library defining the core components of the design system of @pagopa/io-app",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -1,13 +1,16 @@
1
- import React, { useCallback } from "react";
1
+ import React, { useCallback, useState } from "react";
2
2
  import {
3
3
  GestureResponderEvent,
4
+ NativeSyntheticEvent,
4
5
  PixelRatio,
5
6
  Pressable,
6
7
  StyleSheet,
8
+ TextLayoutEventData,
7
9
  View
8
10
  } from "react-native";
9
11
  import Animated, {
10
- Extrapolate,
12
+ Extrapolation,
13
+ SharedValue,
11
14
  interpolate,
12
15
  useAnimatedStyle,
13
16
  useDerivedValue,
@@ -119,7 +122,16 @@ export const Alert = React.forwardRef<View, AlertType>(
119
122
  }: AlertType,
120
123
  viewRef
121
124
  ): JSX.Element => {
122
- const isPressed: Animated.SharedValue<number> = useSharedValue(0);
125
+ const isPressed: SharedValue<number> = useSharedValue(0);
126
+
127
+ const [isMultiline, setIsMultiline] = useState(false);
128
+
129
+ const onTextLayout = useCallback(
130
+ (event: NativeSyntheticEvent<TextLayoutEventData>) => {
131
+ setIsMultiline(event.nativeEvent.lines.length > 1);
132
+ },
133
+ []
134
+ );
123
135
 
124
136
  // Scaling transformation applied when the button is pressed
125
137
  const animationScaleValue = IOScaleValues?.magnifiedButton?.pressedState;
@@ -136,7 +148,7 @@ export const Alert = React.forwardRef<View, AlertType>(
136
148
  progressPressed.value,
137
149
  [0, 1],
138
150
  [1, animationScaleValue],
139
- Extrapolate.CLAMP
151
+ Extrapolation.CLAMP
140
152
  );
141
153
 
142
154
  return {
@@ -155,7 +167,12 @@ export const Alert = React.forwardRef<View, AlertType>(
155
167
 
156
168
  const renderMainBlock = () => (
157
169
  <>
158
- <View style={{ marginRight: IOVisualCostants.iconMargin }}>
170
+ <View
171
+ style={{
172
+ marginRight: IOVisualCostants.iconMargin,
173
+ alignSelf: "flex-start"
174
+ }}
175
+ >
159
176
  <Icon
160
177
  name={mapVariantStates[variant].icon}
161
178
  size={iconSize}
@@ -168,8 +185,10 @@ export const Alert = React.forwardRef<View, AlertType>(
168
185
  Tested on both Android and iOS. */}
169
186
  <View
170
187
  style={[
171
- !title && { marginTop: -5 * PixelRatio.getFontScale() },
172
- { marginBottom: -3 * PixelRatio.getFontScale(), flex: 1 }
188
+ !title &&
189
+ isMultiline && { marginTop: -5 * PixelRatio.getFontScale() },
190
+ isMultiline && { marginBottom: -3 * PixelRatio.getFontScale() },
191
+ { flex: 1 }
173
192
  ]}
174
193
  >
175
194
  {title && (
@@ -182,6 +201,7 @@ export const Alert = React.forwardRef<View, AlertType>(
182
201
  color={mapVariantStates[variant].foreground}
183
202
  weight={"Regular"}
184
203
  accessibilityRole="text"
204
+ onTextLayout={onTextLayout}
185
205
  >
186
206
  {content}
187
207
  </Label>
@@ -157,7 +157,7 @@ export const Banner = ({
157
157
  onClose,
158
158
  accessibilityHint,
159
159
  accessibilityLabel,
160
- testID
160
+ testID,
161
161
  }: Banner) => {
162
162
  const isPressed: Animated.SharedValue<number> = useSharedValue(0);
163
163
 
@@ -195,13 +195,17 @@ export const Banner = ({
195
195
  isPressed.value = 0;
196
196
  }, [isPressed]);
197
197
 
198
+ /* Generates a complete fallbackAccessibilityLabel by concatenating the title, content, and action
199
+ if they are present. */
200
+ const fallbackAccessibilityLabel = [title, content, action].filter(Boolean).join(" ");
201
+
198
202
  const renderMainBlock = () => (
199
203
  <>
200
204
  <View
201
205
  style={[IOStyles.flex, IOStyles.selfCenter]}
202
206
  accessible={true}
203
207
  // A11y related props
204
- accessibilityLabel={accessibilityLabel}
208
+ accessibilityLabel={accessibilityLabel ?? fallbackAccessibilityLabel}
205
209
  accessibilityHint={accessibilityHint}
206
210
  accessibilityRole={action !== undefined ? "button" : undefined}
207
211
  >
@@ -58,6 +58,7 @@ exports[`Test Banner Components - Experimental Enabled Banner Snapshot 1`] = `
58
58
  }
59
59
  >
60
60
  <View
61
+ accessibilityLabel="Action text"
61
62
  accessibilityRole="button"
62
63
  accessible={true}
63
64
  style={
@@ -407,6 +408,7 @@ exports[`Test Banner Components Banner Snapshot 1`] = `
407
408
  }
408
409
  >
409
410
  <View
411
+ accessibilityLabel="Action text"
410
412
  accessibilityRole="button"
411
413
  accessible={true}
412
414
  style={
@@ -18,6 +18,7 @@ describe("Test Banner Components", () => {
18
18
  pictogramName="charity"
19
19
  action="Action text"
20
20
  onPress={onLinkPress}
21
+ accessibilityLabel="Action text"
21
22
  />
22
23
  ).toJSON();
23
24
  expect(advice).toMatchSnapshot();
@@ -34,6 +35,7 @@ describe("Test Banner Components - Experimental Enabled", () => {
34
35
  pictogramName="charity"
35
36
  action="Action text"
36
37
  onPress={onLinkPress}
38
+ accessibilityLabel="Action text"
37
39
  />
38
40
  ).toJSON();
39
41
  expect(advice).toMatchSnapshot();
@@ -1,4 +1,4 @@
1
- import React from "react";
1
+ import React, { ReactNode } from "react";
2
2
  import { GestureResponderEvent, View } from "react-native";
3
3
  import {
4
4
  Body,
@@ -16,7 +16,7 @@ import { IOStyles } from "../../core";
16
16
 
17
17
  type PartialFeatureInfo = {
18
18
  // Necessary to render main body with different formatting
19
- body?: string | React.ReactNode;
19
+ body?: string | ReactNode;
20
20
  };
21
21
 
22
22
  type FeatureInfoActionProps =
@@ -135,6 +135,7 @@ import IconNavServices from "./svg/IconNavServices";
135
135
  import IconNavServicesFocused from "./svg/IconNavServicesFocused";
136
136
  import IconNavWallet from "./svg/IconNavWallet";
137
137
  import IconNavWalletFocused from "./svg/IconNavWalletFocused";
138
+ import IconNavQrWallet from "./svg/IconNavQrWallet";
138
139
  import IconNotes from "./svg/IconNotes";
139
140
  import IconNotice from "./svg/IconNotice";
140
141
  import IconNoticeFilled from "./svg/IconNoticeFilled";
@@ -199,7 +200,7 @@ import LegIconCheckOff from "./svg/LegIconCheckOff";
199
200
  import LegIconCheckOn from "./svg/LegIconCheckOn";
200
201
  import LegIconRadioOff from "./svg/LegIconRadioOff";
201
202
  import LegIconRadioOn from "./svg/LegIconRadioOn";
202
- import IconCieLetter from './svg/IconCieLetter';
203
+ import IconCieLetter from "./svg/IconCieLetter";
203
204
 
204
205
  export const IOIcons = {
205
206
  spid: IconSpid,
@@ -360,6 +361,7 @@ export const IOIcons = {
360
361
  navMessagesFocused: IconNavMessagesFocused,
361
362
  navWallet: IconNavWallet,
362
363
  navWalletFocused: IconNavWalletFocused,
364
+ navQrWallet: IconNavQrWallet,
363
365
  navScan: IconNavScan,
364
366
  navServices: IconNavServices,
365
367
  navServicesFocused: IconNavServicesFocused,
@@ -517,7 +519,8 @@ const {
517
519
  navMessagesFocused,
518
520
  navWalletFocused,
519
521
  navServicesFocused,
520
- navProfileFocused
522
+ navProfileFocused,
523
+ navQrWallet
521
524
  } = IOIcons;
522
525
 
523
526
  export const IONavIcons = {
@@ -530,7 +533,8 @@ export const IONavIcons = {
530
533
  navMessagesFocused,
531
534
  navWalletFocused,
532
535
  navServicesFocused,
533
- navProfileFocused
536
+ navProfileFocused,
537
+ navQrWallet
534
538
  } as const;
535
539
 
536
540
  export type IONavIcons = keyof typeof IONavIcons;
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ import { Svg, Path } from "react-native-svg";
3
+ import { SVGIconProps } from "../types";
4
+
5
+ const IconNavQrWallet = ({ size, style, ...props }: SVGIconProps) => (
6
+ <Svg width={size} height={size} viewBox="0 0 24 24" style={style} {...props}>
7
+ <Path
8
+ fill="currentColor"
9
+ fillRule="evenodd"
10
+ d="M14.666 6a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm0 2a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm.886 4.05A8 8 0 0 1 22.666 20a1 1 0 1 0 2 0 10 10 0 0 0-10.347-9.994c.6.531 1.038 1.24 1.233 2.043ZM2.667 18a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-2Zm0 2.25a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25v1.5a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-1.5Zm-2-7.25a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-2Zm4 .25a.25.25 0 0 0-.25-.25h-1.5a.25.25 0 0 0-.25.25v1.5c0 .138.112.25.25.25h1.5a.25.25 0 0 0 .25-.25v-1.5Zm5-2.25a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-2Zm0 2.25a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25v1.5a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-1.5Zm3 4.75a1 1 0 0 1 1 1v3a2 2 0 0 1-2 2h-3a1 1 0 1 1 0-2h2.75a.25.25 0 0 0 .25-.25V19a1 1 0 0 1 1-1Zm-3 1a1 1 0 1 0-2 0 1 1 0 0 0 2 0Z"
11
+ clipRule="evenodd"
12
+ />
13
+ </Svg>
14
+ );
15
+
16
+ export default IconNavQrWallet;
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 25 24"><path fill="#2B2E38" fill-rule="evenodd" d="M14.666 6a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm0 2a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm.886 4.05A8 8 0 0 1 22.666 20a1 1 0 1 0 2 0 10 10 0 0 0-10.347-9.994c.6.531 1.038 1.24 1.233 2.043ZM2.667 18a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-2Zm0 2.25a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25v1.5a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-1.5Zm-2-7.25a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-2Zm4 .25a.25.25 0 0 0-.25-.25h-1.5a.25.25 0 0 0-.25.25v1.5c0 .138.112.25.25.25h1.5a.25.25 0 0 0 .25-.25v-1.5Zm5-2.25a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-2Zm0 2.25a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25v1.5a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-1.5Zm3 4.75a1 1 0 0 1 1 1v3a2 2 0 0 1-2 2h-3a1 1 0 1 1 0-2h2.75a.25.25 0 0 0 .25-.25V19a1 1 0 0 1 1-1Zm-3 1a1 1 0 1 0-2 0 1 1 0 0 0 2 0Z" clip-rule="evenodd"/></svg>
@@ -0,0 +1,25 @@
1
+ import React, { ComponentProps, ReactElement } from "react";
2
+ import { TextStyle } from "react-native";
3
+ import { Body } from "./Body";
4
+
5
+ export type BodyProps = ComponentProps<typeof Body> & {
6
+ text: string | ReactElement;
7
+ };
8
+
9
+ type PropsComposedBody = {
10
+ body: Array<BodyProps>;
11
+ textAlign?: TextStyle["textAlign"];
12
+ };
13
+
14
+ export const ComposedBodyFromArray = ({
15
+ body,
16
+ textAlign = "center"
17
+ }: PropsComposedBody) => (
18
+ <Body style={{ textAlign }}>
19
+ {body.map(({ text, key, ...props }, i) => (
20
+ <Body key={key ?? `OpResScreen_${i}`} {...props}>
21
+ {text}
22
+ </Body>
23
+ ))}
24
+ </Body>
25
+ );
@@ -0,0 +1,99 @@
1
+ import React from "react";
2
+ import { render } from "@testing-library/react-native";
3
+ import { BodyProps, ComposedBodyFromArray } from "../ComposedBodyFromArray";
4
+
5
+ describe("ComposedBodyFromArray", () => {
6
+ it("should match snapshot, empty body, default text align", () => {
7
+ const component = render(<ComposedBodyFromArray body={[]} />);
8
+ expect(component.toJSON()).toMatchSnapshot();
9
+ });
10
+ it("should match snapshot, empty body, auto text align", () => {
11
+ const component = render(
12
+ <ComposedBodyFromArray body={[]} textAlign="auto" />
13
+ );
14
+ expect(component.toJSON()).toMatchSnapshot();
15
+ });
16
+ it("should match snapshot, empty body, center text align", () => {
17
+ const component = render(
18
+ <ComposedBodyFromArray body={[]} textAlign="center" />
19
+ );
20
+ expect(component.toJSON()).toMatchSnapshot();
21
+ });
22
+ it("should match snapshot, empty body, justify text align", () => {
23
+ const component = render(
24
+ <ComposedBodyFromArray body={[]} textAlign="justify" />
25
+ );
26
+ expect(component.toJSON()).toMatchSnapshot();
27
+ });
28
+ it("should match snapshot, empty body, left text align", () => {
29
+ const component = render(
30
+ <ComposedBodyFromArray body={[]} textAlign="left" />
31
+ );
32
+ expect(component.toJSON()).toMatchSnapshot();
33
+ });
34
+ it("should match snapshot, empty body, right text align", () => {
35
+ const component = render(
36
+ <ComposedBodyFromArray body={[]} textAlign="right" />
37
+ );
38
+ expect(component.toJSON()).toMatchSnapshot();
39
+ });
40
+ it("should match snapshot, multiple items body, default text align", () => {
41
+ const component = render(
42
+ <ComposedBodyFromArray body={multipleItemsBody} />
43
+ );
44
+ expect(component.toJSON()).toMatchSnapshot();
45
+ });
46
+ it("should match snapshot, multiple items body, auto text align", () => {
47
+ const component = render(
48
+ <ComposedBodyFromArray body={multipleItemsBody} textAlign="auto" />
49
+ );
50
+ expect(component.toJSON()).toMatchSnapshot();
51
+ });
52
+ it("should match snapshot, multiple items body, center text align", () => {
53
+ const component = render(
54
+ <ComposedBodyFromArray body={multipleItemsBody} textAlign="center" />
55
+ );
56
+ expect(component.toJSON()).toMatchSnapshot();
57
+ });
58
+ it("should match snapshot, multiple items body, justify text align", () => {
59
+ const component = render(
60
+ <ComposedBodyFromArray body={multipleItemsBody} textAlign="justify" />
61
+ );
62
+ expect(component.toJSON()).toMatchSnapshot();
63
+ });
64
+ it("should match snapshot, multiple items body, left text align", () => {
65
+ const component = render(
66
+ <ComposedBodyFromArray body={multipleItemsBody} textAlign="left" />
67
+ );
68
+ expect(component.toJSON()).toMatchSnapshot();
69
+ });
70
+ it("should match snapshot, multiple items body, right text align", () => {
71
+ const component = render(
72
+ <ComposedBodyFromArray body={multipleItemsBody} textAlign="right" />
73
+ );
74
+ expect(component.toJSON()).toMatchSnapshot();
75
+ });
76
+
77
+ const multipleItemsBody = [
78
+ {
79
+ text: "Multiple ",
80
+ weight: "Regular"
81
+ },
82
+ {
83
+ text: "styles",
84
+ weight: "Bold"
85
+ },
86
+ {
87
+ text: " text ",
88
+ weight: "Light"
89
+ },
90
+ {
91
+ text: "just",
92
+ weight: "Medium"
93
+ },
94
+ {
95
+ text: " weights",
96
+ weight: "Semibold"
97
+ }
98
+ ] as Array<BodyProps>;
99
+ });