@transferwise/components 46.64.0 → 46.66.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/common/bottomSheet/BottomSheet.js +8 -2
- package/build/common/bottomSheet/BottomSheet.js.map +1 -1
- package/build/common/bottomSheet/BottomSheet.mjs +8 -2
- package/build/common/bottomSheet/BottomSheet.mjs.map +1 -1
- package/build/decision/Decision.js +4 -0
- package/build/decision/Decision.js.map +1 -1
- package/build/decision/Decision.mjs +4 -0
- package/build/decision/Decision.mjs.map +1 -1
- package/build/drawer/Drawer.js +5 -3
- package/build/drawer/Drawer.js.map +1 -1
- package/build/drawer/Drawer.mjs +5 -3
- package/build/drawer/Drawer.mjs.map +1 -1
- package/build/flowNavigation/FlowNavigation.js +1 -1
- package/build/flowNavigation/FlowNavigation.js.map +1 -1
- package/build/flowNavigation/FlowNavigation.mjs +1 -1
- package/build/flowNavigation/FlowNavigation.mjs.map +1 -1
- package/build/flowNavigation/animatedLabel/AnimatedLabel.js +89 -15
- package/build/flowNavigation/animatedLabel/AnimatedLabel.js.map +1 -1
- package/build/flowNavigation/animatedLabel/AnimatedLabel.mjs +90 -16
- package/build/flowNavigation/animatedLabel/AnimatedLabel.mjs.map +1 -1
- package/build/main.css +10 -1
- package/build/styles/flowNavigation/animatedLabel/AnimatedLabel.css +10 -1
- package/build/styles/main.css +10 -1
- package/build/switch/Switch.js +3 -27
- package/build/switch/Switch.js.map +1 -1
- package/build/switch/Switch.mjs +3 -27
- package/build/switch/Switch.mjs.map +1 -1
- package/build/tile/Tile.js +2 -0
- package/build/tile/Tile.js.map +1 -1
- package/build/tile/Tile.mjs +2 -0
- package/build/tile/Tile.mjs.map +1 -1
- package/build/types/common/bottomSheet/BottomSheet.d.ts +3 -3
- package/build/types/common/bottomSheet/BottomSheet.d.ts.map +1 -1
- package/build/types/decision/Decision.d.ts +1 -0
- package/build/types/decision/Decision.d.ts.map +1 -1
- package/build/types/drawer/Drawer.d.ts +4 -3
- package/build/types/drawer/Drawer.d.ts.map +1 -1
- package/build/types/flowNavigation/FlowNavigation.d.ts.map +1 -1
- package/build/types/flowNavigation/animatedLabel/AnimatedLabel.d.ts +3 -3
- package/build/types/flowNavigation/animatedLabel/AnimatedLabel.d.ts.map +1 -1
- package/build/types/switch/Switch.d.ts.map +1 -1
- package/build/types/tile/Tile.d.ts +3 -1
- package/build/types/tile/Tile.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/common/bottomSheet/BottomSheet.tsx +13 -4
- package/src/decision/Decision.spec.tsx +166 -0
- package/src/decision/Decision.story.tsx +208 -202
- package/src/decision/Decision.tsx +26 -2
- package/src/drawer/Drawer.tsx +7 -5
- package/src/flowNavigation/FlowNavigation.story.js +69 -17
- package/src/flowNavigation/FlowNavigation.tsx +1 -5
- package/src/flowNavigation/animatedLabel/AnimatedLabel.css +10 -1
- package/src/flowNavigation/animatedLabel/AnimatedLabel.less +10 -1
- package/src/flowNavigation/animatedLabel/AnimatedLabel.spec.js +64 -27
- package/src/flowNavigation/animatedLabel/AnimatedLabel.tsx +102 -20
- package/src/main.css +10 -1
- package/src/switch/Switch.story.tsx +4 -7
- package/src/switch/Switch.tsx +1 -24
- package/src/switch/__snapshots__/Switch.spec.tsx.snap +2 -44
- package/src/tile/Tile.tsx +4 -0
- package/src/decision/Decision.spec.js +0 -127
- package/src/flowNavigation/animatedLabel/__snapshots__/AnimatedLabel.spec.js.snap +0 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../../src/common/bottomSheet/BottomSheet.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,iBAAiB,EACjB,cAAc,EAIf,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAa7C,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAC9C;IACE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,KAAK,IAAI,CAAC;IAClD,IAAI,EAAE,OAAO,CAAC;CACf,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../../src/common/bottomSheet/BottomSheet.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,cAAc,EACd,iBAAiB,EACjB,cAAc,EAIf,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAa7C,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAC9C;IACE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,KAAK,IAAI,CAAC;IAClD,IAAI,EAAE,OAAO,CAAC;CACf,GAAG,WAAW,GACb,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,CACnE,CAAC;AAEF;;;;;GAKG;AACH,QAAA,MAAM,WAAW,uBAAmC,gBAAgB,gCA2LnE,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Decision.d.ts","sourceRoot":"","sources":["../../../src/decision/Decision.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAoB,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAKpE,UAAU,cAAc;IACtB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC,yBAAyB,CAAC;IACzC,KAAK,EAAE;QACL,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;QACvB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;KACvB,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC1D,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED,oBAAY,oBAAoB;IAC9B,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,eAAe,oBAAoB;CACpC;AAED,oBAAY,YAAY;IACtB,UAAU,eAAe;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IACnC,iDAAiD;IACjD,YAAY,CAAC,EAAE,GAAG,oBAAoB,EAAE,CAAC;IACzC,iDAAiD;IACjD,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAC9B,+HAA+H;IAC/H,IAAI,CAAC,EAAE,GAAG,YAAY,EAAE,CAAC;IAEzB,qDAAqD;IACrD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,QAAA,MAAM,QAAQ,sFAOX,aAAa,
|
|
1
|
+
{"version":3,"file":"Decision.d.ts","sourceRoot":"","sources":["../../../src/decision/Decision.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAoB,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAKpE,UAAU,cAAc;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC,yBAAyB,CAAC;IACzC,KAAK,EAAE;QACL,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;QACvB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;KACvB,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC1D,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED,oBAAY,oBAAoB;IAC9B,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,eAAe,oBAAoB;CACpC;AAED,oBAAY,YAAY;IACtB,UAAU,eAAe;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IACnC,iDAAiD;IACjD,YAAY,CAAC,EAAE,GAAG,oBAAoB,EAAE,CAAC;IACzC,iDAAiD;IACjD,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAC9B,+HAA+H;IAC/H,IAAI,CAAC,EAAE,GAAG,YAAY,EAAE,CAAC;IAEzB,qDAAqD;IACrD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,QAAA,MAAM,QAAQ,sFAOX,aAAa,uCAmGf,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { HTMLAttributes } from 'react';
|
|
1
2
|
import { Position } from '../common';
|
|
2
|
-
export
|
|
3
|
+
export type DrawerProps = {
|
|
3
4
|
/** The content to appear in the drawer body. */
|
|
4
5
|
children?: React.ReactNode;
|
|
5
6
|
className?: string;
|
|
@@ -13,6 +14,6 @@ export interface DrawerProps {
|
|
|
13
14
|
position?: `${Position.LEFT | Position.RIGHT | Position.BOTTOM}`;
|
|
14
15
|
/** The action to perform on close click. */
|
|
15
16
|
onClose?: (event: KeyboardEvent | React.MouseEvent) => void;
|
|
16
|
-
}
|
|
17
|
-
export default function Drawer({ children, className, footerContent, headerTitle, onClose, open, position, }: DrawerProps): import("react").JSX.Element;
|
|
17
|
+
} & Pick<HTMLAttributes<HTMLDivElement>, 'role' | 'aria-labelledby'>;
|
|
18
|
+
export default function Drawer({ children, className, footerContent, headerTitle, onClose, open, position, role, 'aria-labelledby': ariaLabelledBy, }: DrawerProps): import("react").JSX.Element;
|
|
18
19
|
//# sourceMappingURL=Drawer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/drawer/Drawer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/drawer/Drawer.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAqB,MAAM,OAAO,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAc,MAAM,WAAW,CAAC;AASjD,MAAM,MAAM,WAAW,GAAG;IACxB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,kDAAkD;IAClD,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,+CAA+C;IAC/C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uGAAuG;IACvG,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;IACjE,4CAA4C;IAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,GAAG,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;CAC7D,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC;AAErE,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,QAAQ,EACR,SAAS,EACT,aAAa,EACb,WAAW,EACX,OAAO,EACP,IAAY,EACZ,QAAkB,EAClB,IAAe,EACf,iBAAiB,EAAE,cAAc,GAClC,EAAE,WAAW,+BAuCb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowNavigation.d.ts","sourceRoot":"","sources":["../../../src/flowNavigation/FlowNavigation.tsx"],"names":[],"mappings":"AAOA,OAAgB,EAAE,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAOxD,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,sIAAsI;IACtI,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,wGAAwG;IACxG,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;CACxB;AAED,QAAA,MAAM,cAAc,kEAQjB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"FlowNavigation.d.ts","sourceRoot":"","sources":["../../../src/flowNavigation/FlowNavigation.tsx"],"names":[],"mappings":"AAOA,OAAgB,EAAE,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAOxD,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,sIAAsI;IACtI,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,wGAAwG;IACxG,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;CACxB;AAED,QAAA,MAAM,cAAc,kEAQjB,mBAAmB,gCA8DrB,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { Step } from '../../stepper/Stepper';
|
|
2
2
|
export interface AnimatedLabelProps {
|
|
3
3
|
activeLabel: number;
|
|
4
4
|
className?: string;
|
|
5
|
-
|
|
5
|
+
steps: readonly Step[];
|
|
6
6
|
}
|
|
7
|
-
declare const AnimatedLabel: ({ activeLabel, className,
|
|
7
|
+
declare const AnimatedLabel: ({ activeLabel, className, steps }: AnimatedLabelProps) => import("react").JSX.Element;
|
|
8
8
|
export default AnimatedLabel;
|
|
9
9
|
//# sourceMappingURL=AnimatedLabel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimatedLabel.d.ts","sourceRoot":"","sources":["../../../../src/flowNavigation/animatedLabel/AnimatedLabel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AnimatedLabel.d.ts","sourceRoot":"","sources":["../../../../src/flowNavigation/animatedLabel/AnimatedLabel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAOlD,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;CACxB;AAED,QAAA,MAAM,aAAa,sCAAuC,kBAAkB,gCAgG3E,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/switch/Switch.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/switch/Switch.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwB,UAAU,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAG7C,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG;IACtC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yGAAyG;IACzG,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;CACxD,CAAC;AAEF,QAAA,MAAM,MAAM,UAAW,WAAW,gCAiDjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Size } from '../common';
|
|
2
2
|
export interface TileProps {
|
|
3
3
|
/** Classes to apply to the Tile container */
|
|
4
|
+
/** A label for the accordion item, used for accessibility purposes. */
|
|
5
|
+
'aria-label'?: string;
|
|
4
6
|
className?: string;
|
|
5
7
|
description?: React.ReactNode;
|
|
6
8
|
disabled?: boolean;
|
|
@@ -14,5 +16,5 @@ export interface TileProps {
|
|
|
14
16
|
size?: `${Size.SMALL | Size.MEDIUM}`;
|
|
15
17
|
title: React.ReactNode;
|
|
16
18
|
}
|
|
17
|
-
export default function Tile({ className, description, disabled, href, target, media, onClick, size, title, }: TileProps): import("react").JSX.Element;
|
|
19
|
+
export default function Tile({ 'aria-label': ariaLabel, className, description, disabled, href, target, media, onClick, size, title, }: TileProps): import("react").JSX.Element;
|
|
18
20
|
//# sourceMappingURL=Tile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tile.d.ts","sourceRoot":"","sources":["../../../src/tile/Tile.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAc,MAAM,WAAW,CAAC;AAG7C,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC,yBAAyB,CAAC;IACzC,qCAAqC;IACrC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACpF,+BAA+B;IAC/B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,SAAS,EACT,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,KAAK,EACL,OAAO,EACP,IAAW,EACX,KAAK,GACN,EAAE,SAAS,+
|
|
1
|
+
{"version":3,"file":"Tile.d.ts","sourceRoot":"","sources":["../../../src/tile/Tile.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAc,MAAM,WAAW,CAAC;AAG7C,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC,yBAAyB,CAAC;IACzC,qCAAqC;IACrC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACpF,+BAA+B;IAC/B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,YAAY,EAAE,SAAS,EACvB,SAAS,EACT,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,KAAK,EACL,OAAO,EACP,IAAW,EACX,KAAK,GACN,EAAE,SAAS,+BA4CX"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { clsx } from 'clsx';
|
|
2
2
|
import {
|
|
3
3
|
CSSProperties,
|
|
4
|
+
HTMLAttributes,
|
|
4
5
|
PropsWithChildren,
|
|
5
6
|
SyntheticEvent,
|
|
6
7
|
useContext,
|
|
@@ -30,7 +31,8 @@ export type BottomSheetProps = PropsWithChildren<
|
|
|
30
31
|
{
|
|
31
32
|
onClose?: (event: Event | SyntheticEvent) => void;
|
|
32
33
|
open: boolean;
|
|
33
|
-
} & CommonProps
|
|
34
|
+
} & CommonProps &
|
|
35
|
+
Pick<HTMLAttributes<HTMLDivElement>, 'role' | 'aria-labelledby'>
|
|
34
36
|
>;
|
|
35
37
|
|
|
36
38
|
/**
|
|
@@ -39,7 +41,7 @@ export type BottomSheetProps = PropsWithChildren<
|
|
|
39
41
|
* Neptune Web: https://transferwise.github.io/neptune-web/components/overlays/BottomSheet
|
|
40
42
|
*
|
|
41
43
|
*/
|
|
42
|
-
const BottomSheet = (props: BottomSheetProps) => {
|
|
44
|
+
const BottomSheet = ({ role = 'dialog', ...props }: BottomSheetProps) => {
|
|
43
45
|
const bottomSheetReference = useRef<HTMLDivElement>(null);
|
|
44
46
|
const topBarReference = useRef<HTMLDivElement>(null);
|
|
45
47
|
const contentReference = useRef<HTMLDivElement>(null);
|
|
@@ -181,7 +183,13 @@ const BottomSheet = (props: BottomSheetProps) => {
|
|
|
181
183
|
const overlayId = useContext(OverlayIdContext);
|
|
182
184
|
|
|
183
185
|
return is400Zoom ? (
|
|
184
|
-
<Drawer
|
|
186
|
+
<Drawer
|
|
187
|
+
aria-labelledby={props['aria-labelledby']}
|
|
188
|
+
role={role}
|
|
189
|
+
open={props.open}
|
|
190
|
+
className={props.className}
|
|
191
|
+
onClose={close}
|
|
192
|
+
>
|
|
185
193
|
{props.children}
|
|
186
194
|
</Drawer>
|
|
187
195
|
) : (
|
|
@@ -195,7 +203,8 @@ const BottomSheet = (props: BottomSheetProps) => {
|
|
|
195
203
|
{/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */}
|
|
196
204
|
<div
|
|
197
205
|
id={overlayId}
|
|
198
|
-
|
|
206
|
+
aria-labelledby={props['aria-labelledby']}
|
|
207
|
+
role={role}
|
|
199
208
|
aria-modal
|
|
200
209
|
onTouchStart={onSwipeStart}
|
|
201
210
|
onTouchMove={onSwipeMove}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import Avatar from '../avatar';
|
|
2
|
+
import { Breakpoint, Size } from '../common';
|
|
3
|
+
import { mockMatchMedia } from '../mocks';
|
|
4
|
+
import { render, screen } from '../test-utils';
|
|
5
|
+
|
|
6
|
+
import Decision, { DecisionPresentation, DecisionType } from '.';
|
|
7
|
+
import { DecisionProps } from './Decision';
|
|
8
|
+
|
|
9
|
+
mockMatchMedia(jest);
|
|
10
|
+
|
|
11
|
+
describe('Decision', () => {
|
|
12
|
+
const commonProps: DecisionProps = {
|
|
13
|
+
options: [
|
|
14
|
+
{
|
|
15
|
+
media: {
|
|
16
|
+
list: <Avatar type="initials">HM</Avatar>,
|
|
17
|
+
block: <img src="img.jpg" alt="alt" />,
|
|
18
|
+
},
|
|
19
|
+
href: '#href',
|
|
20
|
+
title: 'title',
|
|
21
|
+
description: 'description',
|
|
22
|
+
'aria-label': 'A label',
|
|
23
|
+
onClick: jest.fn(),
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
presentation: DecisionPresentation.LIST_BLOCK,
|
|
27
|
+
type: DecisionType.NAVIGATION,
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const initialInnerWidth = window.innerWidth;
|
|
31
|
+
const resetClientWidth = (width: number) => {
|
|
32
|
+
window.innerWidth = width;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
afterAll(() => {
|
|
36
|
+
window.innerWidth = initialInnerWidth;
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
beforeEach(() => {
|
|
40
|
+
resetClientWidth(Breakpoint.EXTRA_SMALL - 1);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
describe(`when presentation is ${DecisionPresentation.LIST_BLOCK}`, () => {
|
|
44
|
+
const props = { ...commonProps };
|
|
45
|
+
|
|
46
|
+
it('renders only Navigation Option before first breakpoint', () => {
|
|
47
|
+
render(<Decision {...props} />);
|
|
48
|
+
const element = screen.getByLabelText('A label');
|
|
49
|
+
expect(element).toBeInTheDocument();
|
|
50
|
+
|
|
51
|
+
expectElementToBeNavigationOption(element);
|
|
52
|
+
expectElementNotToBeTile(element);
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it('renders only Tile after first breakpoint', () => {
|
|
56
|
+
resetClientWidth(Breakpoint.SMALL);
|
|
57
|
+
|
|
58
|
+
render(<Decision {...props} />);
|
|
59
|
+
const element = screen.getByLabelText('A label');
|
|
60
|
+
expect(element).toBeInTheDocument();
|
|
61
|
+
|
|
62
|
+
expectElementNotToBeNavigationOption(element);
|
|
63
|
+
expectElementToBeTile(element);
|
|
64
|
+
expectElementNotToBeSmallTile(element);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
describe(`when presentation is ${DecisionPresentation.LIST_BLOCK_GRID}`, () => {
|
|
69
|
+
const props = { ...commonProps, presentation: DecisionPresentation.LIST_BLOCK_GRID };
|
|
70
|
+
|
|
71
|
+
it('renders only Navigation Option before first breakpoint', () => {
|
|
72
|
+
render(<Decision {...props} />);
|
|
73
|
+
const element = screen.getByLabelText('A label');
|
|
74
|
+
expect(element).toBeInTheDocument();
|
|
75
|
+
|
|
76
|
+
expectElementToBeNavigationOption(element);
|
|
77
|
+
expectElementNotToBeTile(element);
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
it('renders only Tile after first breakpoint', () => {
|
|
81
|
+
resetClientWidth(Breakpoint.SMALL);
|
|
82
|
+
|
|
83
|
+
render(<Decision {...props} />);
|
|
84
|
+
const element = screen.getByLabelText('A label');
|
|
85
|
+
expect(element).toBeInTheDocument();
|
|
86
|
+
|
|
87
|
+
expectElementNotToBeNavigationOption(element);
|
|
88
|
+
expectElementToBeTile(element);
|
|
89
|
+
expectElementNotToBeSmallTile(element);
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
it('renders container as a grid', () => {
|
|
93
|
+
resetClientWidth(Breakpoint.SMALL);
|
|
94
|
+
|
|
95
|
+
render(<Decision {...props} />);
|
|
96
|
+
const element = screen.getByLabelText('A label').parentElement;
|
|
97
|
+
|
|
98
|
+
expect(element).toHaveClass('np-decision');
|
|
99
|
+
expect(element).toHaveClass('np-decision--grid');
|
|
100
|
+
expect(element).toHaveClass('flex-wrap');
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
describe(`when presentation is ${DecisionPresentation.LIST_BLOCK} and size is Small`, () => {
|
|
105
|
+
const props: DecisionProps = {
|
|
106
|
+
...commonProps,
|
|
107
|
+
presentation: DecisionPresentation.LIST_BLOCK,
|
|
108
|
+
size: Size.SMALL,
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
it('renders only Navigation Option before breakpoint', () => {
|
|
112
|
+
render(<Decision {...props} />);
|
|
113
|
+
const element = screen.getByLabelText('A label');
|
|
114
|
+
expect(element).toBeInTheDocument();
|
|
115
|
+
|
|
116
|
+
expectElementToBeNavigationOption(element);
|
|
117
|
+
expectElementNotToBeTile(element);
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
it('renders Small Tile after breakpoint', () => {
|
|
121
|
+
resetClientWidth(Breakpoint.EXTRA_SMALL);
|
|
122
|
+
|
|
123
|
+
render(<Decision {...props} />);
|
|
124
|
+
const element = screen.getByLabelText('A label');
|
|
125
|
+
expect(element).toBeInTheDocument();
|
|
126
|
+
|
|
127
|
+
expectElementNotToBeNavigationOption(element);
|
|
128
|
+
expectElementToBeTile(element);
|
|
129
|
+
expectElementToBeSmallTile(element);
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
describe(`when presentation is ${DecisionPresentation.LIST}`, () => {
|
|
134
|
+
const props = { ...commonProps, presentation: DecisionPresentation.LIST };
|
|
135
|
+
|
|
136
|
+
it('renders Navigation Option before breakpoint', () => {
|
|
137
|
+
render(<Decision {...props} />);
|
|
138
|
+
const element = screen.getByLabelText('A label');
|
|
139
|
+
expect(element).toBeInTheDocument();
|
|
140
|
+
|
|
141
|
+
expectElementToBeNavigationOption(element);
|
|
142
|
+
expectElementNotToBeTile(element);
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
const expectElementToBeNavigationOption = (element: HTMLElement) => {
|
|
147
|
+
expect(element).toHaveClass('np-navigation-option');
|
|
148
|
+
};
|
|
149
|
+
const expectElementNotToBeNavigationOption = (element: HTMLElement) => {
|
|
150
|
+
expect(element).not.toHaveClass('np-navigation-option');
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
const expectElementToBeTile = (element: HTMLElement) => {
|
|
154
|
+
expect(element).toHaveClass('np-tile');
|
|
155
|
+
};
|
|
156
|
+
const expectElementNotToBeTile = (element: HTMLElement) => {
|
|
157
|
+
expect(element).not.toHaveClass('np-tile');
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
const expectElementToBeSmallTile = (element: HTMLElement) => {
|
|
161
|
+
expect(element).toHaveClass('np-tile--small');
|
|
162
|
+
};
|
|
163
|
+
const expectElementNotToBeSmallTile = (element: HTMLElement) => {
|
|
164
|
+
expect(element).not.toHaveClass('np-tile--small');
|
|
165
|
+
};
|
|
166
|
+
});
|