@pagopa/io-app-design-system 2.0.0 → 2.0.2
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.
- package/lib/commonjs/components/badge/Badge.js +2 -2
- package/lib/commonjs/components/contentWrapper/ContentWrapper.js +2 -0
- package/lib/commonjs/components/contentWrapper/ContentWrapper.js.map +1 -1
- package/lib/commonjs/components/icons/Icon.js +2 -0
- package/lib/commonjs/components/icons/Icon.js.map +1 -1
- package/lib/commonjs/components/icons/svg/IconCieLetter.js +28 -0
- package/lib/commonjs/components/icons/svg/IconCieLetter.js.map +1 -0
- package/lib/commonjs/components/icons/svg/originals/IconCieLetter.svg +1 -0
- package/lib/commonjs/components/layout/BlockButtons.js +1 -1
- package/lib/commonjs/components/layout/FooterActions.js +162 -0
- package/lib/commonjs/components/layout/FooterActions.js.map +1 -0
- package/lib/commonjs/components/layout/FooterActionsInline.js +113 -0
- package/lib/commonjs/components/layout/FooterActionsInline.js.map +1 -0
- package/lib/commonjs/components/layout/FooterWithButtons.js +3 -1
- package/lib/commonjs/components/layout/FooterWithButtons.js.map +1 -1
- package/lib/commonjs/components/layout/HeaderSecondLevel.js +9 -4
- package/lib/commonjs/components/layout/HeaderSecondLevel.js.map +1 -1
- package/lib/commonjs/components/layout/hooks/index.js +28 -0
- package/lib/commonjs/components/layout/hooks/index.js.map +1 -0
- package/lib/commonjs/components/layout/hooks/useBottomMargins.js +31 -0
- package/lib/commonjs/components/layout/hooks/useBottomMargins.js.map +1 -0
- package/lib/commonjs/components/layout/hooks/useFooterActionsInlineMeasurements.js +30 -0
- package/lib/commonjs/components/layout/hooks/useFooterActionsInlineMeasurements.js.map +1 -0
- package/lib/commonjs/components/layout/hooks/useFooterActionsMeasurements.js +31 -0
- package/lib/commonjs/components/layout/hooks/useFooterActionsMeasurements.js.map +1 -0
- package/lib/commonjs/components/layout/index.js +33 -0
- package/lib/commonjs/components/layout/index.js.map +1 -1
- package/lib/commonjs/components/pictograms/Pictogram.js +10 -2
- package/lib/commonjs/components/pictograms/Pictogram.js.map +1 -1
- package/lib/commonjs/components/pictograms/svg/PictogramFingerprint.js +49 -0
- package/lib/commonjs/components/pictograms/svg/PictogramFingerprint.js.map +1 -0
- package/lib/commonjs/components/pictograms/svg/PictogramSmile.js +32 -0
- package/lib/commonjs/components/pictograms/svg/PictogramSmile.js.map +1 -0
- package/lib/commonjs/components/pictograms/svg/PictogramWalletDoc.js +46 -0
- package/lib/commonjs/components/pictograms/svg/PictogramWalletDoc.js.map +1 -0
- package/lib/commonjs/components/pictograms/svg/originals/PictogramFingerprint.svg +1 -0
- package/lib/commonjs/components/pictograms/svg/originals/PictogramSmile.svg +1 -0
- package/lib/commonjs/components/pictograms/svg/originals/PictogramWalletDoc.svg +1 -0
- package/lib/commonjs/core/IOColors.js +8 -3
- package/lib/commonjs/core/IOColors.js.map +1 -1
- package/lib/commonjs/core/IOSpacing.js +10 -1
- package/lib/commonjs/core/IOSpacing.js.map +1 -1
- package/lib/commonjs/core/index.js +0 -11
- package/lib/commonjs/core/index.js.map +1 -1
- package/lib/module/components/badge/Badge.js +2 -2
- package/lib/module/components/contentWrapper/ContentWrapper.js +2 -0
- package/lib/module/components/contentWrapper/ContentWrapper.js.map +1 -1
- package/lib/module/components/icons/Icon.js +2 -0
- package/lib/module/components/icons/Icon.js.map +1 -1
- package/lib/module/components/icons/svg/IconCieLetter.js +20 -0
- package/lib/module/components/icons/svg/IconCieLetter.js.map +1 -0
- package/lib/module/components/icons/svg/originals/IconCieLetter.svg +1 -0
- package/lib/module/components/layout/BlockButtons.js +1 -1
- package/lib/module/components/layout/FooterActions.js +153 -0
- package/lib/module/components/layout/FooterActions.js.map +1 -0
- package/lib/module/components/layout/FooterActionsInline.js +104 -0
- package/lib/module/components/layout/FooterActionsInline.js.map +1 -0
- package/lib/module/components/layout/FooterWithButtons.js +3 -1
- package/lib/module/components/layout/FooterWithButtons.js.map +1 -1
- package/lib/module/components/layout/HeaderSecondLevel.js +10 -5
- package/lib/module/components/layout/HeaderSecondLevel.js.map +1 -1
- package/lib/module/components/layout/hooks/index.js +3 -0
- package/lib/module/components/layout/hooks/index.js.map +1 -0
- package/lib/module/components/layout/hooks/useBottomMargins.js +25 -0
- package/lib/module/components/layout/hooks/useBottomMargins.js.map +1 -0
- package/lib/module/components/layout/hooks/useFooterActionsInlineMeasurements.js +23 -0
- package/lib/module/components/layout/hooks/useFooterActionsInlineMeasurements.js.map +1 -0
- package/lib/module/components/layout/hooks/useFooterActionsMeasurements.js +24 -0
- package/lib/module/components/layout/hooks/useFooterActionsMeasurements.js.map +1 -0
- package/lib/module/components/layout/index.js +3 -0
- package/lib/module/components/layout/index.js.map +1 -1
- package/lib/module/components/pictograms/Pictogram.js +10 -2
- package/lib/module/components/pictograms/Pictogram.js.map +1 -1
- package/lib/module/components/pictograms/svg/PictogramFingerprint.js +41 -0
- package/lib/module/components/pictograms/svg/PictogramFingerprint.js.map +1 -0
- package/lib/module/components/pictograms/svg/PictogramSmile.js +24 -0
- package/lib/module/components/pictograms/svg/PictogramSmile.js.map +1 -0
- package/lib/module/components/pictograms/svg/PictogramWalletDoc.js +38 -0
- package/lib/module/components/pictograms/svg/PictogramWalletDoc.js.map +1 -0
- package/lib/module/components/pictograms/svg/originals/PictogramFingerprint.svg +1 -0
- package/lib/module/components/pictograms/svg/originals/PictogramSmile.svg +1 -0
- package/lib/module/components/pictograms/svg/originals/PictogramWalletDoc.svg +1 -0
- package/lib/module/core/IOColors.js +8 -3
- package/lib/module/core/IOColors.js.map +1 -1
- package/lib/module/core/IOSpacing.js +9 -0
- package/lib/module/core/IOSpacing.js.map +1 -1
- package/lib/module/core/index.js +0 -1
- package/lib/module/core/index.js.map +1 -1
- package/lib/typescript/components/buttons/ButtonLink.d.ts +1 -1
- package/lib/typescript/components/buttons/ButtonOutline.d.ts +1 -1
- package/lib/typescript/components/buttons/ButtonSolid.d.ts +1 -1
- package/lib/typescript/components/contentWrapper/ContentWrapper.d.ts +4 -3
- package/lib/typescript/components/contentWrapper/ContentWrapper.d.ts.map +1 -1
- package/lib/typescript/components/icons/Icon.d.ts +1 -0
- package/lib/typescript/components/icons/Icon.d.ts.map +1 -1
- package/lib/typescript/components/icons/svg/IconCieLetter.d.ts +5 -0
- package/lib/typescript/components/icons/svg/IconCieLetter.d.ts.map +1 -0
- package/lib/typescript/components/layout/BlockButtons.d.ts +1 -1
- package/lib/typescript/components/layout/FooterActions.d.ts +45 -0
- package/lib/typescript/components/layout/FooterActions.d.ts.map +1 -0
- package/lib/typescript/components/layout/FooterActionsInline.d.ts +17 -0
- package/lib/typescript/components/layout/FooterActionsInline.d.ts.map +1 -0
- package/lib/typescript/components/layout/FooterWithButtons.d.ts +3 -1
- package/lib/typescript/components/layout/FooterWithButtons.d.ts.map +1 -1
- package/lib/typescript/components/layout/HeaderFirstLevel.d.ts +7 -7
- package/lib/typescript/components/layout/HeaderFirstLevel.d.ts.map +1 -1
- package/lib/typescript/components/layout/HeaderSecondLevel.d.ts +7 -7
- package/lib/typescript/components/layout/HeaderSecondLevel.d.ts.map +1 -1
- package/lib/typescript/components/layout/common.d.ts +1 -1
- package/lib/typescript/components/layout/common.d.ts.map +1 -1
- package/lib/typescript/components/layout/hooks/index.d.ts +3 -0
- package/lib/typescript/components/layout/hooks/index.d.ts.map +1 -0
- package/lib/typescript/components/layout/hooks/useBottomMargins.d.ts +5 -0
- package/lib/typescript/components/layout/hooks/useBottomMargins.d.ts.map +1 -0
- package/lib/typescript/components/layout/hooks/useFooterActionsInlineMeasurements.d.ts +17 -0
- package/lib/typescript/components/layout/hooks/useFooterActionsInlineMeasurements.d.ts.map +1 -0
- package/lib/typescript/components/layout/hooks/useFooterActionsMeasurements.d.ts +17 -0
- package/lib/typescript/components/layout/hooks/useFooterActionsMeasurements.d.ts.map +1 -0
- package/lib/typescript/components/layout/index.d.ts +3 -0
- package/lib/typescript/components/layout/index.d.ts.map +1 -1
- package/lib/typescript/components/pictograms/Pictogram.d.ts +3 -0
- package/lib/typescript/components/pictograms/Pictogram.d.ts.map +1 -1
- package/lib/typescript/components/pictograms/svg/PictogramFingerprint.d.ts +5 -0
- package/lib/typescript/components/pictograms/svg/PictogramFingerprint.d.ts.map +1 -0
- package/lib/typescript/components/pictograms/svg/PictogramSmile.d.ts +5 -0
- package/lib/typescript/components/pictograms/svg/PictogramSmile.d.ts.map +1 -0
- package/lib/typescript/components/pictograms/svg/PictogramWalletDoc.d.ts +5 -0
- package/lib/typescript/components/pictograms/svg/PictogramWalletDoc.d.ts.map +1 -0
- package/lib/typescript/core/IOColors.d.ts +1 -1
- package/lib/typescript/core/IOColors.d.ts.map +1 -1
- package/lib/typescript/core/IOSpacing.d.ts +8 -0
- package/lib/typescript/core/IOSpacing.d.ts.map +1 -1
- package/lib/typescript/core/index.d.ts +0 -1
- package/lib/typescript/core/index.d.ts.map +1 -1
- package/lib/typescript/utils/fonts.d.ts +2 -2
- package/package.json +1 -1
- package/src/components/badge/Badge.tsx +2 -2
- package/src/components/contentWrapper/ContentWrapper.tsx +5 -2
- package/src/components/icons/Icon.tsx +2 -0
- package/src/components/icons/svg/IconCieLetter.tsx +16 -0
- package/src/components/icons/svg/originals/IconCieLetter.svg +1 -0
- package/src/components/layout/BlockButtons.tsx +1 -1
- package/src/components/layout/FooterActions.tsx +260 -0
- package/src/components/layout/FooterActionsInline.tsx +137 -0
- package/src/components/layout/FooterWithButtons.tsx +3 -1
- package/src/components/layout/HeaderFirstLevel.tsx +7 -7
- package/src/components/layout/HeaderSecondLevel.tsx +20 -12
- package/src/components/layout/common.ts +1 -1
- package/src/components/layout/hooks/index.ts +2 -0
- package/src/components/layout/hooks/useBottomMargins.ts +30 -0
- package/src/components/layout/hooks/useFooterActionsInlineMeasurements.ts +38 -0
- package/src/components/layout/hooks/useFooterActionsMeasurements.ts +35 -0
- package/src/components/layout/index.tsx +3 -0
- package/src/components/pictograms/Pictogram.tsx +11 -2
- package/src/components/pictograms/svg/PictogramFingerprint.tsx +50 -0
- package/src/components/pictograms/svg/PictogramSmile.tsx +22 -0
- package/src/components/pictograms/svg/PictogramWalletDoc.tsx +44 -0
- package/src/components/pictograms/svg/originals/PictogramFingerprint.svg +1 -0
- package/src/components/pictograms/svg/originals/PictogramSmile.svg +1 -0
- package/src/components/pictograms/svg/originals/PictogramWalletDoc.svg +1 -0
- package/src/core/IOColors.ts +10 -2
- package/src/core/IOSpacing.ts +14 -0
- package/src/core/index.ts +0 -1
- package/lib/commonjs/core/IOStyleVariables.js +0 -14
- package/lib/commonjs/core/IOStyleVariables.js.map +0 -1
- package/lib/module/core/IOStyleVariables.js +0 -7
- package/lib/module/core/IOStyleVariables.js.map +0 -1
- package/lib/typescript/core/IOStyleVariables.d.ts +0 -7
- package/lib/typescript/core/IOStyleVariables.d.ts.map +0 -1
- package/src/core/IOStyleVariables.ts +0 -6
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export * from "./BlockButtons";
|
|
2
|
+
export * from "./FooterActions";
|
|
3
|
+
export * from "./FooterActionsInline";
|
|
2
4
|
export * from "./FooterWithButtons";
|
|
3
5
|
export * from "./ForceScrollDownView";
|
|
4
6
|
export * from "./GradientBottomActions";
|
|
@@ -7,4 +9,5 @@ export * from "./HeaderFirstLevel";
|
|
|
7
9
|
export * from "./HeaderSecondLevel";
|
|
8
10
|
export * from "./ModalBSHeader";
|
|
9
11
|
export * from "./common";
|
|
12
|
+
export * from "./hooks";
|
|
10
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/index.tsx"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/layout/index.tsx"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
|
|
@@ -58,6 +58,9 @@ export declare const IOPictograms: {
|
|
|
58
58
|
comunicationProblem: ({ size, colorValues, ...props }: SVGPictogramProps) => React.JSX.Element;
|
|
59
59
|
payments: ({ size, colorValues, ...props }: SVGPictogramProps) => React.JSX.Element;
|
|
60
60
|
workInProgress: ({ size, colorValues, ...props }: SVGPictogramProps) => React.JSX.Element;
|
|
61
|
+
smile: ({ size, colorValues, ...props }: SVGPictogramProps) => React.JSX.Element;
|
|
62
|
+
fingerprint: ({ size, colorValues, ...props }: SVGPictogramProps) => React.JSX.Element;
|
|
63
|
+
walletDoc: ({ size, colorValues, ...props }: SVGPictogramProps) => React.JSX.Element;
|
|
61
64
|
ibanCard: ({ size, colorValues, ...props }: SVGPictogramProps) => React.JSX.Element;
|
|
62
65
|
followMessage: ({ size, colorValues, ...props }: SVGPictogramProps) => React.JSX.Element;
|
|
63
66
|
manual: ({ size, colorValues, ...props }: SVGPictogramProps) => React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pictogram.d.ts","sourceRoot":"","sources":["../../../../src/components/pictograms/Pictogram.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAyC,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Pictogram.d.ts","sourceRoot":"","sources":["../../../../src/components/pictograms/Pictogram.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAyC,MAAM,YAAY,CAAC;AA+G7E,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAElE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuExB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,YAAY,CAAC;AAErD,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,QAAQ,CAAC;IAIjB,cAAc,CAAC,EAAE,SAAS,GAAG,eAAe,GAAG,cAAc,CAAC;IAC9D,IAAI,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAAC;CACtC,CAAC;AASF,eAAO,MAAM,SAAS,oDAMnB,iBAAiB,sBAiCnB,CAAC;AAUF,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACnC,OAAO,GACP,SAAS,GACT,WAAW,GACX,SAAS,GACT,MAAM,GACN,UAAU,GACV,MAAM,GACN,UAAU,GACV,UAAU,GACV,SAAS,GACT,KAAK,GACL,UAAU,GACV,aAAa,GACb,eAAe,GACf,iBAAiB,GACjB,eAAe,GACf,cAAc,GACd,SAAS,GACT,eAAe,GACf,cAAc,GACd,WAAW,GACX,cAAc,GACd,UAAU,GACV,cAAc,GACd,MAAM,GACN,SAAS,GACT,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,SAAS,GACT,YAAY,GACZ,cAAc,GACd,MAAM,GACN,KAAK,GACL,cAAc,GACd,MAAM,GACN,QAAQ,GACR,gBAAgB,GAChB,UAAU,GACV,UAAU,GACV,YAAY,GACZ,gBAAgB,EAClB,YAAY,CACb,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE;KAC7B,GAAG,IAAI,iBAAiB,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,iBAAiB,KAAK,GAAG,CAAC,OAAO;CA2CzE,CAAC;AAEF,eAAO,MAAM,cAAc,oDAMxB,iBAAiB,sBAkCnB,CAAC;AAOF,eAAO,MAAM,kBAAkB;;;;;;;;CAQrB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAMjE,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { SVGPictogramProps } from "../types";
|
|
3
|
+
declare const PictogramFingerprint: ({ size, colorValues, ...props }: SVGPictogramProps) => React.JSX.Element;
|
|
4
|
+
export default PictogramFingerprint;
|
|
5
|
+
//# sourceMappingURL=PictogramFingerprint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PictogramFingerprint.d.ts","sourceRoot":"","sources":["../../../../../src/components/pictograms/svg/PictogramFingerprint.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,QAAA,MAAM,oBAAoB,oCAIvB,iBAAiB,sBAuCnB,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PictogramSmile.d.ts","sourceRoot":"","sources":["../../../../../src/components/pictograms/svg/PictogramSmile.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,QAAA,MAAM,cAAc,oCAAqC,iBAAiB,sBAezE,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { SVGPictogramProps } from "../types";
|
|
3
|
+
declare const PictogramWalletDoc: ({ size, colorValues, ...props }: SVGPictogramProps) => React.JSX.Element;
|
|
4
|
+
export default PictogramWalletDoc;
|
|
5
|
+
//# sourceMappingURL=PictogramWalletDoc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PictogramWalletDoc.d.ts","sourceRoot":"","sources":["../../../../../src/components/pictograms/svg/PictogramWalletDoc.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,QAAA,MAAM,kBAAkB,oCAIrB,iBAAiB,sBAiCnB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -180,7 +180,7 @@ export declare const IOColorsExtra: {
|
|
|
180
180
|
"blue-50": string;
|
|
181
181
|
};
|
|
182
182
|
export type IOColorsExtra = keyof typeof IOColorsExtra;
|
|
183
|
-
declare const themeKeys: readonly ["appBackground-primary", "appBackground-secondary", "appBackground-tertiary", "appBackground-accent", "interactiveElem-default", "interactiveElem-pressed", "listItem-pressed", "textHeading-default", "textHeading-secondary", "textHeading-tertiary", "textBody-default", "textBody-secondary", "textBody-tertiary", "cardBorder-default", "icon-default", "icon-decorative", "divider-default", "errorIcon", "errorText", "pictogram-hands", "pictogram-tint-main", "pictogram-tint-secondary"];
|
|
183
|
+
declare const themeKeys: readonly ["appBackground-primary", "appBackground-secondary", "appBackground-tertiary", "appBackground-accent", "interactiveElem-default", "interactiveElem-pressed", "listItem-pressed", "textHeading-default", "textHeading-secondary", "textHeading-tertiary", "textBody-default", "textBody-secondary", "textBody-tertiary", "cardBorder-default", "icon-default", "icon-decorative", "divider-header", "divider-default", "divider-bottomBar", "errorIcon", "errorText", "pictogram-hands", "pictogram-tint-main", "pictogram-tint-secondary", "pictogram-tint-tertiary"];
|
|
184
184
|
export type IOTheme = {
|
|
185
185
|
[K in (typeof themeKeys)[number]]: IOColors;
|
|
186
186
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IOColors.d.ts","sourceRoot":"","sources":["../../../src/core/IOColors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAC;AAyB/D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2EnB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,QAAQ,CAAC;AAE7C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;CAgB3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAE7D,eAAO,MAAM,sBAAsB,eACrB,gBAAgB,KAC3B,eAAe,qBAAqB,CAAC,CAAC,QAAQ,CAGhD,CAAC;AA0BF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;CAkB1B,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,cAAc,CAAC;AAExD,eAAO,MAAM,eAAe;;;;;;;;;;;CAW1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,eAAe,CAAC;AAE3D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;CAexB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,aAAa,CAAC;AAEvD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;CAqBzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,cAAc,CAAC;AACzD,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAC5C,cAAc,EACd,WAAW,GAAG,aAAa,GAAG,UAAU,GAAG,aAAa,CACzD,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAC5C,cAAc,EACd,WAAW,GAAG,aAAa,GAAG,UAAU,GAAG,aAAa,CACzD,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;CAQzB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,aAAa,CAAC;AAMvD,QAAA,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"IOColors.d.ts","sourceRoot":"","sources":["../../../src/core/IOColors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAC;AAyB/D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2EnB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,QAAQ,CAAC;AAE7C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;CAgB3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAE7D,eAAO,MAAM,sBAAsB,eACrB,gBAAgB,KAC3B,eAAe,qBAAqB,CAAC,CAAC,QAAQ,CAGhD,CAAC;AA0BF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;CAkB1B,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,cAAc,CAAC;AAExD,eAAO,MAAM,eAAe;;;;;;;;;;;CAW1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,eAAe,CAAC;AAE3D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;CAexB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,aAAa,CAAC;AAEvD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;CAqBzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,cAAc,CAAC;AACzD,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAC5C,cAAc,EACd,WAAW,GAAG,aAAa,GAAG,UAAU,GAAG,aAAa,CACzD,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAC5C,cAAc,EACd,WAAW,GAAG,aAAa,GAAG,UAAU,GAAG,aAAa,CACzD,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;CAQzB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,aAAa,CAAC;AAMvD,QAAA,MAAM,SAAS,gjBAgCL,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG;KACnB,CAAC,IAAI,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,QAAQ;CAC5C,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OAgC1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,OAKhC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,OA8BzB,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;CAiBrC,CAAC;AAEH,MAAM,MAAM,0BAA0B,GACpC,MAAM,OAAO,0BAA0B,CAAC;AAE1C,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAC5C,WAAW,CAAC,0BAA0B,CAAC,EACvC,cAAc,CAkBf,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,MAAM,OAAO,yBAAyB,CAAC;AAM/E;;;;GAIG;AAEH,eAAO,MAAM,SAAS,YAAa,UAAU,YAAW,MAAM,WAQ7D,CAAC"}
|
|
@@ -21,4 +21,12 @@ export declare const IOModuleIDPHSpacing: IOModuleIDPSpacing;
|
|
|
21
21
|
export declare const IOModuleIDPVSpacing: IOModuleIDPSpacing;
|
|
22
22
|
export declare const IOModuleIDPSavedVSpacing: IOModuleIDPSpacing;
|
|
23
23
|
export declare const IOListItemLogoMargin: IOModuleIDPSpacing;
|
|
24
|
+
declare const spacingConstantKeys: readonly ["screenEndMargin"];
|
|
25
|
+
export type IOSpacingConstants = {
|
|
26
|
+
[K in (typeof spacingConstantKeys)[number]]: IOSpacingScale;
|
|
27
|
+
};
|
|
28
|
+
export declare const IOSpacing: {
|
|
29
|
+
readonly screenEndMargin: 32;
|
|
30
|
+
};
|
|
31
|
+
export {};
|
|
24
32
|
//# sourceMappingURL=IOSpacing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IOSpacing.d.ts","sourceRoot":"","sources":["../../../src/core/IOSpacing.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc,wEAEjB,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAG7D,eAAO,MAAM,QAAQ,yCAE6B,CAAC;AACnD,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAGjD,eAAO,MAAM,WAAW,8BAE0B,CAAC;AACnD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAGvD,eAAO,MAAM,cAAc,mBAEuB,CAAC;AACnD,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAG7D,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AAC/D,eAAO,MAAM,kBAAkB,EAAE,eAAoB,CAAC;AACtD,eAAO,MAAM,qBAAqB,EAAE,eAAoB,CAAC;AACzD,eAAO,MAAM,qBAAqB,EAAE,eAAoB,CAAC;AAGzD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,eAAO,MAAM,aAAa,EAAE,YAAgB,CAAC;AAC7C,eAAO,MAAM,aAAa,EAAE,YAAgB,CAAC;AAG7C,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,eAAO,MAAM,eAAe,EAAE,cAAkB,CAAC;AACjD,eAAO,MAAM,eAAe,EAAE,cAAkB,CAAC;AAGjD,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACtE,eAAO,MAAM,mBAAmB,EAAE,kBAAuB,CAAC;AAC1D,eAAO,MAAM,mBAAmB,EAAE,kBAAuB,CAAC;AAC1D,eAAO,MAAM,wBAAwB,EAAE,kBAAuB,CAAC;AAC/D,eAAO,MAAM,oBAAoB,EAAE,kBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"IOSpacing.d.ts","sourceRoot":"","sources":["../../../src/core/IOSpacing.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc,wEAEjB,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAG7D,eAAO,MAAM,QAAQ,yCAE6B,CAAC;AACnD,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAGjD,eAAO,MAAM,WAAW,8BAE0B,CAAC;AACnD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAGvD,eAAO,MAAM,cAAc,mBAEuB,CAAC;AACnD,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAG7D,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AAC/D,eAAO,MAAM,kBAAkB,EAAE,eAAoB,CAAC;AACtD,eAAO,MAAM,qBAAqB,EAAE,eAAoB,CAAC;AACzD,eAAO,MAAM,qBAAqB,EAAE,eAAoB,CAAC;AAGzD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,eAAO,MAAM,aAAa,EAAE,YAAgB,CAAC;AAC7C,eAAO,MAAM,aAAa,EAAE,YAAgB,CAAC;AAG7C,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,eAAO,MAAM,eAAe,EAAE,cAAkB,CAAC;AACjD,eAAO,MAAM,eAAe,EAAE,cAAkB,CAAC;AAGjD,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACtE,eAAO,MAAM,mBAAmB,EAAE,kBAAuB,CAAC;AAC1D,eAAO,MAAM,mBAAmB,EAAE,kBAAuB,CAAC;AAC1D,eAAO,MAAM,wBAAwB,EAAE,kBAAuB,CAAC;AAC/D,eAAO,MAAM,oBAAoB,EAAE,kBAAsB,CAAC;AAM1D,QAAA,MAAM,mBAAmB,8BAA+B,CAAC;AAEzD,MAAM,MAAM,kBAAkB,GAAG;KAC9B,CAAC,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,GAAG,cAAc;CAC5D,CAAC;AAEF,eAAO,MAAM,SAAS;;CAEiB,CAAC"}
|
|
@@ -4,7 +4,6 @@ export * from "./IOTransitions";
|
|
|
4
4
|
export * from "./IOStyles";
|
|
5
5
|
export * from "./IOShapes";
|
|
6
6
|
export * from "./IOSpacing";
|
|
7
|
-
export * from "./IOStyleVariables";
|
|
8
7
|
export * from "./IODSExperimentalContextProvider";
|
|
9
8
|
export * from "./IOThemeContextProvider";
|
|
10
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC"}
|
|
@@ -13,7 +13,7 @@ declare const fonts: {
|
|
|
13
13
|
DMMono: string;
|
|
14
14
|
};
|
|
15
15
|
export type IOFontFamily = keyof typeof fonts;
|
|
16
|
-
declare const allFontSizes: (
|
|
16
|
+
declare const allFontSizes: (16 | 12 | 20 | 32 | 14 | 18 | 28 | 22 | 26 | 31 | 35)[];
|
|
17
17
|
export type IOFontSize = (typeof allFontSizes)[number];
|
|
18
18
|
declare const weights: readonly ["Light", "Regular", "Medium", "Semibold", "Bold"];
|
|
19
19
|
export type IOFontWeight = (typeof weights)[number];
|
|
@@ -46,6 +46,6 @@ export declare const makeFontFamilyName: (font: IOFontFamily, weight?: IOFontWei
|
|
|
46
46
|
* @param weight
|
|
47
47
|
* @param fontStyle
|
|
48
48
|
*/
|
|
49
|
-
export declare const makeFontStyleObject: (size:
|
|
49
|
+
export declare const makeFontStyleObject: (size: 16 | 12 | 20 | 32 | 14 | 18 | 28 | 22 | 26 | 31 | 35 | undefined, font: "TitilliumSansPro" | "ReadexPro" | "DMMono" | undefined, lineHeight: TextStyle["lineHeight"], weight?: IOFontWeight, fontStyle?: TextStyle["fontStyle"], boldEnabled?: boolean) => FontStyleObject;
|
|
50
50
|
export {};
|
|
51
51
|
//# sourceMappingURL=fonts.d.ts.map
|
package/package.json
CHANGED
|
@@ -86,7 +86,7 @@ export const Badge = ({ text, outline = false, variant, testID }: Badge) => {
|
|
|
86
86
|
background: "error-100"
|
|
87
87
|
},
|
|
88
88
|
purple: {
|
|
89
|
-
foreground: "hanPurple-
|
|
89
|
+
foreground: "hanPurple-500",
|
|
90
90
|
background: "hanPurple-100"
|
|
91
91
|
},
|
|
92
92
|
lightBlue: {
|
|
@@ -127,7 +127,7 @@ export const Badge = ({ text, outline = false, variant, testID }: Badge) => {
|
|
|
127
127
|
foreground: "error-850"
|
|
128
128
|
},
|
|
129
129
|
purple: {
|
|
130
|
-
foreground: "hanPurple-
|
|
130
|
+
foreground: "hanPurple-500"
|
|
131
131
|
},
|
|
132
132
|
lightBlue: {
|
|
133
133
|
foreground: "blueIO-850"
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { View } from "react-native";
|
|
3
|
+
import { WithTestID } from "src/utils/types";
|
|
3
4
|
import type { IOAppMargin } from "../../core";
|
|
4
5
|
import { IOVisualCostants } from "../../core/IOStyles";
|
|
5
6
|
|
|
6
|
-
type IOContentWrapperProps = {
|
|
7
|
+
type IOContentWrapperProps = WithTestID<{
|
|
7
8
|
margin?: IOAppMargin;
|
|
8
9
|
children: React.ReactNode;
|
|
9
|
-
}
|
|
10
|
+
}>;
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
`ContentWrapper` is the main wrapper of the application. It automatically sets side margins,
|
|
@@ -15,9 +16,11 @@ depending on the size value
|
|
|
15
16
|
*/
|
|
16
17
|
export const ContentWrapper = ({
|
|
17
18
|
margin = IOVisualCostants.appMarginDefault,
|
|
19
|
+
testID,
|
|
18
20
|
children
|
|
19
21
|
}: IOContentWrapperProps) => (
|
|
20
22
|
<View
|
|
23
|
+
testID={testID}
|
|
21
24
|
style={{
|
|
22
25
|
paddingHorizontal: margin
|
|
23
26
|
}}
|
|
@@ -199,10 +199,12 @@ import LegIconCheckOff from "./svg/LegIconCheckOff";
|
|
|
199
199
|
import LegIconCheckOn from "./svg/LegIconCheckOn";
|
|
200
200
|
import LegIconRadioOff from "./svg/LegIconRadioOff";
|
|
201
201
|
import LegIconRadioOn from "./svg/LegIconRadioOn";
|
|
202
|
+
import IconCieLetter from './svg/IconCieLetter';
|
|
202
203
|
|
|
203
204
|
export const IOIcons = {
|
|
204
205
|
spid: IconSpid,
|
|
205
206
|
cie: IconCie /* io-cie */,
|
|
207
|
+
cieLetter: IconCieLetter,
|
|
206
208
|
qrCode: IconQrCode,
|
|
207
209
|
bell: IconBell,
|
|
208
210
|
website: IconWebsite,
|
|
@@ -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 IconCieLetter = ({ size, style, ...props }: SVGIconProps) => (
|
|
6
|
+
<Svg width={size} height={size} viewBox="0 0 24 24" style={style} {...props}>
|
|
7
|
+
<Path
|
|
8
|
+
fillRule="evenodd"
|
|
9
|
+
clipRule="evenodd"
|
|
10
|
+
d="M18.5855 18.458C17.0895 19.3667 15.3387 19.8894 13.46 19.8894C7.97044 19.8894 3.51498 15.4213 3.51498 9.94468C3.51498 4.45532 7.97044 0 13.4472 0C16.8534 0 19.8577 1.72055 21.6503 4.32706L21.9491 4.67563L17.9748 8.08194L17.7289 7.79506L17.7239 7.8C17.7047 7.77353 17.6852 7.74723 17.6655 7.72109L17.4763 7.50035L17.4846 7.49319C16.4164 6.2133 14.8146 5.4 13.0259 5.4C9.82156 5.4 7.20446 8.00426 7.20446 11.2213H6.34911C6.34911 7.54468 9.34921 4.54468 13.0259 4.54468C15.0687 4.54468 16.9055 5.47165 18.1353 6.93552L20.8254 4.62985C19.1728 2.33792 16.4768 0.842553 13.4472 0.842553C8.43003 0.842553 4.35756 4.91489 4.35756 9.93192C4.35756 14.9489 8.43003 19.0213 13.4472 19.0213C15.2037 19.0213 16.8522 18.5179 18.242 17.6506L18.6227 17.3243L21.5772 20.7718C21.5779 20.7713 21.5787 20.7707 21.5794 20.7702L22.1922 21.383C19.9708 23.0298 17.2133 24 14.2387 24C7.58745 24 2.05961 19.1362 1 12.7787H1.86811C2.91496 18.6638 8.0598 23.1447 14.2387 23.1447C16.6948 23.1447 18.9961 22.4328 20.9386 21.2037L18.5855 18.458Z"
|
|
11
|
+
fill="currentColor"
|
|
12
|
+
/>
|
|
13
|
+
</Svg>
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
export default IconCieLetter;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M18.5855 18.458C17.0895 19.3667 15.3387 19.8894 13.46 19.8894C7.97044 19.8894 3.51498 15.4213 3.51498 9.94468C3.51498 4.45532 7.97044 0 13.4472 0C16.8534 0 19.8577 1.72055 21.6503 4.32706L21.9491 4.67563L17.9748 8.08194L17.7289 7.79506L17.7239 7.8C17.7047 7.77353 17.6852 7.74723 17.6655 7.72109L17.4763 7.50035L17.4846 7.49319C16.4164 6.2133 14.8146 5.4 13.0259 5.4C9.82156 5.4 7.20446 8.00426 7.20446 11.2213H6.34911C6.34911 7.54468 9.34921 4.54468 13.0259 4.54468C15.0687 4.54468 16.9055 5.47165 18.1353 6.93552L20.8254 4.62985C19.1728 2.33792 16.4768 0.842553 13.4472 0.842553C8.43003 0.842553 4.35756 4.91489 4.35756 9.93192C4.35756 14.9489 8.43003 19.0213 13.4472 19.0213C15.2037 19.0213 16.8522 18.5179 18.242 17.6506L18.6227 17.3243L21.5772 20.7718C21.5779 20.7713 21.5787 20.7707 21.5794 20.7702L22.1922 21.383C19.9708 23.0298 17.2133 24 14.2387 24C7.58745 24 2.05961 19.1362 1 12.7787H1.86811C2.91496 18.6638 8.0598 23.1447 14.2387 23.1447C16.6948 23.1447 18.9961 22.4328 20.9386 21.2037L18.5855 18.458Z" fill="#0B3EE3"/></svg>
|
|
@@ -77,7 +77,7 @@ export type BlockButtonsProps = Props;
|
|
|
77
77
|
|
|
78
78
|
/**
|
|
79
79
|
* Implements a component that show buttons on a line on 1, 2 or 3 buttons
|
|
80
|
-
* @deprecated This component is deprecated.
|
|
80
|
+
* @deprecated This component is deprecated. Use `FooterActionsInline` instead.
|
|
81
81
|
*/
|
|
82
82
|
export const BlockButtons = (props: Props) => {
|
|
83
83
|
const renderRightButton = () => {
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { ComponentProps, Fragment, PropsWithChildren, useState } from "react";
|
|
3
|
+
import {
|
|
4
|
+
ColorValue,
|
|
5
|
+
LayoutChangeEvent,
|
|
6
|
+
LayoutRectangle,
|
|
7
|
+
StyleSheet,
|
|
8
|
+
Text,
|
|
9
|
+
View,
|
|
10
|
+
ViewStyle
|
|
11
|
+
} from "react-native";
|
|
12
|
+
import Animated from "react-native-reanimated";
|
|
13
|
+
import {
|
|
14
|
+
IOColors,
|
|
15
|
+
IOSpacer,
|
|
16
|
+
IOSpacing,
|
|
17
|
+
IOVisualCostants,
|
|
18
|
+
buttonSolidHeight,
|
|
19
|
+
hexToRgba,
|
|
20
|
+
useIOExperimentalDesign,
|
|
21
|
+
useIOTheme
|
|
22
|
+
} from "../../core";
|
|
23
|
+
import { WithTestID } from "../../utils/types";
|
|
24
|
+
import { ButtonLink, ButtonOutline, ButtonSolid } from "../buttons";
|
|
25
|
+
import { VSpacer } from "../spacer";
|
|
26
|
+
import { useBottomMargins } from "./hooks/useBottomMargins";
|
|
27
|
+
|
|
28
|
+
type FooterSingleButton = {
|
|
29
|
+
type: "SingleButton";
|
|
30
|
+
primary: Omit<ComponentProps<typeof ButtonSolid>, "fullWidth">;
|
|
31
|
+
secondary?: never;
|
|
32
|
+
tertiary?: never;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
type FooterTwoButtons = {
|
|
36
|
+
type: "TwoButtons";
|
|
37
|
+
primary: Omit<ComponentProps<typeof ButtonSolid>, "fullWidth">;
|
|
38
|
+
secondary: Omit<ComponentProps<typeof ButtonLink>, "color">;
|
|
39
|
+
tertiary?: never;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
type FooterThreeButtons = {
|
|
43
|
+
type: "ThreeButtons";
|
|
44
|
+
primary: Omit<ComponentProps<typeof ButtonSolid>, "fullWidth">;
|
|
45
|
+
secondary: Omit<ComponentProps<typeof ButtonOutline>, "fullWidth" | "color">;
|
|
46
|
+
tertiary: Omit<ComponentProps<typeof ButtonLink>, "color">;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export type FooterActionsMeasurements = {
|
|
50
|
+
// Height of the "Actions" block
|
|
51
|
+
actionBlockHeight: number;
|
|
52
|
+
/* Height of the safe bottom area. It includes:
|
|
53
|
+
- Margin between screen content
|
|
54
|
+
and actions (contentEndMargin)
|
|
55
|
+
- Actions block height
|
|
56
|
+
- Eventual safe area margin (bottomMargin)
|
|
57
|
+
This is the total bottom padding that needs
|
|
58
|
+
to be applied to the ScrollView.
|
|
59
|
+
*/
|
|
60
|
+
safeBottomAreaHeight: number;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
type FooterActions = FooterSingleButton | FooterTwoButtons | FooterThreeButtons;
|
|
64
|
+
|
|
65
|
+
type FooterAnimatedStyles = {
|
|
66
|
+
/* Apply object returned by `useAnimatedStyle` to the main block */
|
|
67
|
+
mainBlock?: Animated.AnimateStyle<ViewStyle>;
|
|
68
|
+
/* Apply object returned by `useAnimatedStyle` to the background */
|
|
69
|
+
background?: Animated.AnimateStyle<ViewStyle>;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
type FooterActionsProps = WithTestID<
|
|
73
|
+
PropsWithChildren<{
|
|
74
|
+
actions?: FooterActions;
|
|
75
|
+
onMeasure?: (measurements: FooterActionsMeasurements) => void;
|
|
76
|
+
animatedStyles?: FooterAnimatedStyles;
|
|
77
|
+
/* Make the background transparent */
|
|
78
|
+
transparent?: boolean;
|
|
79
|
+
/* Don't include safe area insets */
|
|
80
|
+
excludeSafeAreaMargins?: boolean;
|
|
81
|
+
/* Fixed at the bottom of the screen */
|
|
82
|
+
fixed?: boolean;
|
|
83
|
+
/* Show the following elements:
|
|
84
|
+
- Opaque red background to show the component boundaries
|
|
85
|
+
- Height of the component */
|
|
86
|
+
debugMode?: boolean;
|
|
87
|
+
}>
|
|
88
|
+
>;
|
|
89
|
+
|
|
90
|
+
/* Margin between ButtonSolid and ButtonOutline */
|
|
91
|
+
const spaceBetweenActions: IOSpacer = 16;
|
|
92
|
+
/* Margin between ButtonSolid and ButtonLink */
|
|
93
|
+
const spaceBetweenActionAndLink: IOSpacer = 16;
|
|
94
|
+
|
|
95
|
+
const styles = StyleSheet.create({
|
|
96
|
+
buttonContainer: {
|
|
97
|
+
paddingHorizontal: IOVisualCostants.appMarginDefault,
|
|
98
|
+
width: "100%",
|
|
99
|
+
flexShrink: 0
|
|
100
|
+
},
|
|
101
|
+
debugText: {
|
|
102
|
+
position: "absolute",
|
|
103
|
+
right: 8,
|
|
104
|
+
top: -16,
|
|
105
|
+
color: IOColors.black,
|
|
106
|
+
fontSize: 9,
|
|
107
|
+
opacity: 0.75
|
|
108
|
+
},
|
|
109
|
+
blockShadow: {
|
|
110
|
+
shadowColor: IOColors.black,
|
|
111
|
+
shadowOffset: {
|
|
112
|
+
width: 0,
|
|
113
|
+
height: -4
|
|
114
|
+
},
|
|
115
|
+
shadowOpacity: 0.1,
|
|
116
|
+
shadowRadius: 32
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
export const FooterActions = ({
|
|
121
|
+
actions,
|
|
122
|
+
excludeSafeAreaMargins = false,
|
|
123
|
+
animatedStyles,
|
|
124
|
+
fixed = true,
|
|
125
|
+
transparent = false,
|
|
126
|
+
onMeasure,
|
|
127
|
+
testID,
|
|
128
|
+
debugMode = false
|
|
129
|
+
}: FooterActionsProps) => {
|
|
130
|
+
const theme = useIOTheme();
|
|
131
|
+
const { isExperimental } = useIOExperimentalDesign();
|
|
132
|
+
|
|
133
|
+
const { bottomMargin, extraBottomMargin } = useBottomMargins(
|
|
134
|
+
!!actions?.secondary,
|
|
135
|
+
excludeSafeAreaMargins
|
|
136
|
+
);
|
|
137
|
+
|
|
138
|
+
/* Total height of actions */
|
|
139
|
+
const [actionBlockHeight, setActionBlockHeight] =
|
|
140
|
+
useState<LayoutRectangle["height"]>(0);
|
|
141
|
+
|
|
142
|
+
/* Background color should be app main background
|
|
143
|
+
(both light and dark themes) */
|
|
144
|
+
const HEADER_BG_COLOR: ColorValue = IOColors[theme["appBackground-primary"]];
|
|
145
|
+
const TRANSPARENT_BG_COLOR: ColorValue = "transparent";
|
|
146
|
+
const BUTTONSOLID_HEIGHT = isExperimental ? buttonSolidHeight : 40;
|
|
147
|
+
|
|
148
|
+
/* Safe background block. Cover everything until it reaches
|
|
149
|
+
the half of the primary action button. It avoids
|
|
150
|
+
glitchy behavior underneath. */
|
|
151
|
+
const safeBackgroundBlockHeight =
|
|
152
|
+
bottomMargin + actionBlockHeight - BUTTONSOLID_HEIGHT / 2;
|
|
153
|
+
|
|
154
|
+
const getActionBlockMeasurements = (event: LayoutChangeEvent) => {
|
|
155
|
+
const { height } = event.nativeEvent.layout;
|
|
156
|
+
setActionBlockHeight(height);
|
|
157
|
+
/* Height of the safe bottom area, applied to the ScrollView:
|
|
158
|
+
Actions + Content end margin */
|
|
159
|
+
const safeBottomAreaHeight =
|
|
160
|
+
bottomMargin + height + IOSpacing.screenEndMargin;
|
|
161
|
+
onMeasure?.({ actionBlockHeight: height, safeBottomAreaHeight });
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
return (
|
|
165
|
+
<Animated.View
|
|
166
|
+
style={[
|
|
167
|
+
{
|
|
168
|
+
width: "100%",
|
|
169
|
+
paddingBottom: bottomMargin
|
|
170
|
+
},
|
|
171
|
+
fixed
|
|
172
|
+
? { position: "absolute", bottom: 0 }
|
|
173
|
+
: { marginTop: IOSpacing.screenEndMargin },
|
|
174
|
+
debugMode && {
|
|
175
|
+
backgroundColor: hexToRgba(IOColors["error-500"], 0.15)
|
|
176
|
+
},
|
|
177
|
+
animatedStyles?.mainBlock
|
|
178
|
+
]}
|
|
179
|
+
testID={testID}
|
|
180
|
+
>
|
|
181
|
+
{/* Safe background block. It's added because when you swipe up
|
|
182
|
+
quickly, the content below is visible for about 100ms. Without this
|
|
183
|
+
block, the content scrolls underneath. */}
|
|
184
|
+
<Animated.View
|
|
185
|
+
style={[
|
|
186
|
+
{
|
|
187
|
+
...(fixed && {
|
|
188
|
+
width: "100%",
|
|
189
|
+
height: safeBackgroundBlockHeight,
|
|
190
|
+
position: "absolute",
|
|
191
|
+
bottom: 0,
|
|
192
|
+
backgroundColor: transparent
|
|
193
|
+
? TRANSPARENT_BG_COLOR
|
|
194
|
+
: HEADER_BG_COLOR
|
|
195
|
+
}),
|
|
196
|
+
...(fixed ? styles.blockShadow : null)
|
|
197
|
+
},
|
|
198
|
+
animatedStyles?.background
|
|
199
|
+
]}
|
|
200
|
+
pointerEvents="none"
|
|
201
|
+
/>
|
|
202
|
+
|
|
203
|
+
<View
|
|
204
|
+
style={styles.buttonContainer}
|
|
205
|
+
onLayout={getActionBlockMeasurements}
|
|
206
|
+
pointerEvents="box-none"
|
|
207
|
+
>
|
|
208
|
+
{debugMode && (
|
|
209
|
+
<Text style={styles.debugText}>{`Height: ${actionBlockHeight}`}</Text>
|
|
210
|
+
)}
|
|
211
|
+
|
|
212
|
+
{renderActions(actions, extraBottomMargin)}
|
|
213
|
+
</View>
|
|
214
|
+
</Animated.View>
|
|
215
|
+
);
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
const renderActions = (
|
|
219
|
+
actions: FooterActions | undefined,
|
|
220
|
+
extraBottomMargin: number
|
|
221
|
+
) => {
|
|
222
|
+
if (!actions) {
|
|
223
|
+
return null;
|
|
224
|
+
}
|
|
225
|
+
const {
|
|
226
|
+
type,
|
|
227
|
+
primary: primaryAction,
|
|
228
|
+
secondary: secondaryAction,
|
|
229
|
+
tertiary: tertiaryAction
|
|
230
|
+
} = actions;
|
|
231
|
+
return (
|
|
232
|
+
<Fragment>
|
|
233
|
+
{primaryAction && <ButtonSolid fullWidth {...primaryAction} />}
|
|
234
|
+
{type === "TwoButtons" && secondaryAction && (
|
|
235
|
+
<View style={{ alignSelf: "center", marginBottom: extraBottomMargin }}>
|
|
236
|
+
<VSpacer size={spaceBetweenActionAndLink} />
|
|
237
|
+
<ButtonLink color="primary" {...secondaryAction} />
|
|
238
|
+
</View>
|
|
239
|
+
)}
|
|
240
|
+
{type === "ThreeButtons" && (
|
|
241
|
+
<>
|
|
242
|
+
{secondaryAction && (
|
|
243
|
+
<>
|
|
244
|
+
<VSpacer size={spaceBetweenActions} />
|
|
245
|
+
<ButtonOutline fullWidth color="primary" {...secondaryAction} />
|
|
246
|
+
</>
|
|
247
|
+
)}
|
|
248
|
+
{tertiaryAction && (
|
|
249
|
+
<View
|
|
250
|
+
style={{ alignSelf: "center", marginBottom: extraBottomMargin }}
|
|
251
|
+
>
|
|
252
|
+
<VSpacer size={spaceBetweenActionAndLink} />
|
|
253
|
+
<ButtonLink color="primary" {...tertiaryAction} />
|
|
254
|
+
</View>
|
|
255
|
+
)}
|
|
256
|
+
</>
|
|
257
|
+
)}
|
|
258
|
+
</Fragment>
|
|
259
|
+
);
|
|
260
|
+
};
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { ComponentProps, PropsWithChildren } from "react";
|
|
3
|
+
import { ColorValue, LayoutChangeEvent, StyleSheet, View } from "react-native";
|
|
4
|
+
import {
|
|
5
|
+
IOColors,
|
|
6
|
+
IOSpacer,
|
|
7
|
+
IOSpacing,
|
|
8
|
+
IOSpacingScale,
|
|
9
|
+
IOVisualCostants,
|
|
10
|
+
useIOTheme,
|
|
11
|
+
useIOThemeContext
|
|
12
|
+
} from "../../core";
|
|
13
|
+
import { WithTestID } from "../../utils/types";
|
|
14
|
+
import { ButtonOutline, ButtonSolid } from "../buttons";
|
|
15
|
+
import { HSpacer } from "../spacer";
|
|
16
|
+
import { useBottomMargins } from "./hooks/useBottomMargins";
|
|
17
|
+
|
|
18
|
+
export type FooterActionsInlineMeasurements = {
|
|
19
|
+
/* Height of the safe bottom area. It includes:
|
|
20
|
+
- Margin between screen content
|
|
21
|
+
and actions (contentEndMargin)
|
|
22
|
+
- Actions block height
|
|
23
|
+
- Eventual safe area margin (bottomMargin)
|
|
24
|
+
This is the total bottom padding that needs
|
|
25
|
+
to be applied to the ScrollView.
|
|
26
|
+
*/
|
|
27
|
+
safeBottomAreaHeight: number;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
type FooterActionsInline = WithTestID<
|
|
31
|
+
PropsWithChildren<{
|
|
32
|
+
startAction: Omit<ComponentProps<typeof ButtonOutline>, "fullWidth">;
|
|
33
|
+
endAction: Omit<ComponentProps<typeof ButtonSolid>, "fullWidth">;
|
|
34
|
+
onMeasure?: (measurements: FooterActionsInlineMeasurements) => void;
|
|
35
|
+
/* Don't include safe area insets */
|
|
36
|
+
excludeSafeAreaMargins?: boolean;
|
|
37
|
+
/* Fixed at the bottom of the screen */
|
|
38
|
+
fixed?: boolean;
|
|
39
|
+
}>
|
|
40
|
+
>;
|
|
41
|
+
|
|
42
|
+
/* Margin between ButtonSolid and ButtonOutline */
|
|
43
|
+
const spaceBetweenActions: IOSpacer = 16;
|
|
44
|
+
|
|
45
|
+
const styles = StyleSheet.create({
|
|
46
|
+
buttonContainer: {
|
|
47
|
+
paddingHorizontal: IOVisualCostants.appMarginDefault,
|
|
48
|
+
width: "100%",
|
|
49
|
+
flexShrink: 0
|
|
50
|
+
},
|
|
51
|
+
buttonWrapper: {
|
|
52
|
+
flex: 1
|
|
53
|
+
},
|
|
54
|
+
blockShadow: {
|
|
55
|
+
shadowColor: IOColors.black,
|
|
56
|
+
shadowOffset: {
|
|
57
|
+
width: 0,
|
|
58
|
+
height: -4
|
|
59
|
+
},
|
|
60
|
+
shadowOpacity: 0.1,
|
|
61
|
+
shadowRadius: 32,
|
|
62
|
+
elevation: 10 // Prop supported on Android only
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
export const FooterActionsInline = ({
|
|
67
|
+
startAction,
|
|
68
|
+
endAction,
|
|
69
|
+
excludeSafeAreaMargins = false,
|
|
70
|
+
fixed = true,
|
|
71
|
+
onMeasure,
|
|
72
|
+
testID
|
|
73
|
+
}: FooterActionsInline) => {
|
|
74
|
+
const theme = useIOTheme();
|
|
75
|
+
const { themeType } = useIOThemeContext();
|
|
76
|
+
|
|
77
|
+
const { bottomMargin } = useBottomMargins(false, excludeSafeAreaMargins);
|
|
78
|
+
|
|
79
|
+
/* Top padding applied above the actions */
|
|
80
|
+
const topSpacingValue: IOSpacingScale = 16;
|
|
81
|
+
const topSpacing = fixed ? topSpacingValue : 0;
|
|
82
|
+
|
|
83
|
+
/* Background color should be app main background
|
|
84
|
+
(both light and dark themes) */
|
|
85
|
+
const HEADER_BG_COLOR: ColorValue = IOColors[theme["appBackground-primary"]];
|
|
86
|
+
|
|
87
|
+
const getActionBlockMeasurements = (event: LayoutChangeEvent) => {
|
|
88
|
+
const { height } = event.nativeEvent.layout;
|
|
89
|
+
/* Height of the safe bottom area, applied to the ScrollView:
|
|
90
|
+
Actions + Screen end margin */
|
|
91
|
+
const safeBottomAreaHeight =
|
|
92
|
+
bottomMargin + height + IOSpacing.screenEndMargin;
|
|
93
|
+
onMeasure?.({ safeBottomAreaHeight });
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
return (
|
|
97
|
+
<View
|
|
98
|
+
style={[
|
|
99
|
+
{
|
|
100
|
+
width: "100%",
|
|
101
|
+
paddingBottom: bottomMargin
|
|
102
|
+
},
|
|
103
|
+
fixed
|
|
104
|
+
? {
|
|
105
|
+
position: "absolute",
|
|
106
|
+
bottom: 0,
|
|
107
|
+
backgroundColor: HEADER_BG_COLOR
|
|
108
|
+
}
|
|
109
|
+
: { marginTop: IOSpacing.screenEndMargin },
|
|
110
|
+
/* Apply shadow only on light theme OR if fixed */
|
|
111
|
+
fixed || themeType === "light" ? styles.blockShadow : {},
|
|
112
|
+
/* Apply bottom border only on dark theme */
|
|
113
|
+
themeType === "dark" && {
|
|
114
|
+
borderTopColor: IOColors[theme["divider-bottomBar"]],
|
|
115
|
+
borderTopWidth: 1
|
|
116
|
+
}
|
|
117
|
+
]}
|
|
118
|
+
testID={testID}
|
|
119
|
+
>
|
|
120
|
+
<View
|
|
121
|
+
style={[styles.buttonContainer, { paddingTop: topSpacing }]}
|
|
122
|
+
onLayout={getActionBlockMeasurements}
|
|
123
|
+
pointerEvents="box-none"
|
|
124
|
+
>
|
|
125
|
+
<View style={{ flexDirection: "row" }}>
|
|
126
|
+
<View style={styles.buttonWrapper}>
|
|
127
|
+
<ButtonOutline fullWidth {...startAction} />
|
|
128
|
+
</View>
|
|
129
|
+
<HSpacer size={spaceBetweenActions} />
|
|
130
|
+
<View style={styles.buttonWrapper}>
|
|
131
|
+
<ButtonSolid fullWidth {...endAction} />
|
|
132
|
+
</View>
|
|
133
|
+
</View>
|
|
134
|
+
</View>
|
|
135
|
+
</View>
|
|
136
|
+
);
|
|
137
|
+
};
|