@transferwise/components 46.160.0 → 46.160.1
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/ExpressiveMoneyInput/Chevron/Chevron.js +10 -2
- package/build/ExpressiveMoneyInput/Chevron/Chevron.js.map +1 -1
- package/build/ExpressiveMoneyInput/Chevron/Chevron.mjs +11 -3
- package/build/ExpressiveMoneyInput/Chevron/Chevron.mjs.map +1 -1
- package/build/ProcessIndicator/ProcessIndicator.js +1 -1
- package/build/ProcessIndicator/ProcessIndicator.js.map +1 -1
- package/build/ProcessIndicator/ProcessIndicator.mjs +1 -1
- package/build/ProcessIndicator/ProcessIndicator.mjs.map +1 -1
- package/build/Prompt/CriticalBanner/CriticalBanner.js +10 -1
- package/build/Prompt/CriticalBanner/CriticalBanner.js.map +1 -1
- package/build/Prompt/CriticalBanner/CriticalBanner.mjs +10 -1
- package/build/Prompt/CriticalBanner/CriticalBanner.mjs.map +1 -1
- package/build/common/Panel/Panel.js +13 -25
- package/build/common/Panel/Panel.js.map +1 -1
- package/build/common/Panel/Panel.mjs +10 -22
- package/build/common/Panel/Panel.mjs.map +1 -1
- package/build/common/Panel/Panel.positionUtils.js +68 -0
- package/build/common/Panel/Panel.positionUtils.js.map +1 -0
- package/build/common/Panel/Panel.positionUtils.mjs +63 -0
- package/build/common/Panel/Panel.positionUtils.mjs.map +1 -0
- package/build/common/PropsValues/position.js +0 -25
- package/build/common/PropsValues/position.js.map +1 -1
- package/build/common/PropsValues/position.mjs +1 -24
- package/build/common/PropsValues/position.mjs.map +1 -1
- package/build/main.css +102 -68
- package/build/styles/AvatarView/AvatarView.css +8 -0
- package/build/styles/AvatarView/Dot/Dot.css +8 -0
- package/build/styles/CheckboxButton/CheckboxButton.css +3 -0
- package/build/styles/Nudge/Nudge.css +4 -38
- package/build/styles/Prompt/CriticalBanner/CriticalBanner.css +34 -0
- package/build/styles/SlidingPanel/SlidingPanel.css +8 -0
- package/build/styles/UploadInput/UploadItem/UploadItem.css +4 -5
- package/build/styles/_deprecated/Badge/Badge.css +4 -2
- package/build/styles/common/Panel/Panel.css +12 -4
- package/build/styles/css/accordion.css +3 -0
- package/build/styles/css/buttons.css +1 -7
- package/build/styles/css/chevron.css +3 -0
- package/build/styles/css/neptune.css +25 -19
- package/build/styles/css/process.css +15 -9
- package/build/styles/css/tick.css +6 -3
- package/build/styles/main.css +102 -68
- package/build/styles/styles/less/accordion.css +3 -0
- package/build/styles/styles/less/buttons.css +1 -7
- package/build/styles/styles/less/chevron.css +3 -0
- package/build/styles/styles/less/neptune.css +25 -19
- package/build/styles/styles/less/process.css +15 -9
- package/build/styles/styles/less/tick.css +6 -3
- package/build/types/ExpressiveMoneyInput/Chevron/Chevron.d.ts.map +1 -1
- package/build/types/Prompt/CriticalBanner/CriticalBanner.d.ts +6 -1
- package/build/types/Prompt/CriticalBanner/CriticalBanner.d.ts.map +1 -1
- package/build/types/common/Panel/Panel.d.ts +1 -1
- package/build/types/common/Panel/Panel.d.ts.map +1 -1
- package/build/types/common/Panel/Panel.positionUtils.d.ts +7 -0
- package/build/types/common/Panel/Panel.positionUtils.d.ts.map +1 -0
- package/build/types/common/PropsValues/position.d.ts +0 -13
- package/build/types/common/PropsValues/position.d.ts.map +1 -1
- package/build/types/common/ResponsivePanel/ResponsivePanel.d.ts +1 -1
- package/package.json +5 -5
- package/src/AvatarView/AvatarView.css +8 -0
- package/src/AvatarView/Dot/Dot.css +8 -0
- package/src/AvatarView/Dot/Dot.less +7 -1
- package/src/Button/_stories/Button.test.story.tsx +1 -1
- package/src/Checkbox/_stories/Checkbox.story.tsx +1 -1
- package/src/Checkbox/_stories/Checkbox.test.story.tsx +3 -2
- package/src/CheckboxButton/CheckboxButton.css +3 -0
- package/src/CheckboxButton/CheckboxButton.less +4 -0
- package/src/Chevron/_stories/Chevron.test.story.tsx +2 -2
- package/src/ExpressiveMoneyInput/Chevron/Chevron.tsx +8 -3
- package/src/Header/_stories/Header.test.story.tsx +1 -1
- package/src/Info/_stories/Info.rtl.test.story.tsx +35 -10
- package/src/Info/_stories/Info.story.tsx +1 -1
- package/src/Inputs/SelectInput/_stories/SelectInput.test.story.tsx +1 -1
- package/src/ListItem/_stories/subcomponents.tsx +1 -1
- package/src/Loader/_stories/Loader.test.story.tsx +23 -0
- package/src/MoneyInput/_stories/MoneyInput.rtl.test.story.tsx +1 -1
- package/src/Nudge/Nudge.css +4 -38
- package/src/Nudge/Nudge.less +4 -4
- package/src/Nudge/_stories/Nudge.test.story.tsx +29 -12
- package/src/PhoneNumberInput/_stories/{PhoneNumberInput.test.story.tsx → PhoneNumberInput.rtl.test.story.tsx} +18 -10
- package/src/ProcessIndicator/ProcessIndicator.tsx +1 -1
- package/src/ProcessIndicator/_stories/ProcessIndicator.test.story.tsx +32 -0
- package/src/ProgressBar/_stories/ProgressBar.test.story.tsx +33 -19
- package/src/Prompt/CriticalBanner/CriticalBanner.css +34 -0
- package/src/Prompt/CriticalBanner/CriticalBanner.less +45 -0
- package/src/Prompt/CriticalBanner/CriticalBanner.test.tsx +26 -3
- package/src/Prompt/CriticalBanner/CriticalBanner.tsx +15 -1
- package/src/Prompt/CriticalBanner/_stories/CriticalBanner.accessibility.docs.mdx +4 -1
- package/src/Prompt/CriticalBanner/_stories/CriticalBanner.story.tsx +52 -0
- package/src/Prompt/CriticalBanner/_stories/CriticalBanner.test.story.tsx +22 -1
- package/src/SlidingPanel/SlidingPanel.css +8 -0
- package/src/SlidingPanel/SlidingPanel.less +8 -0
- package/src/SlidingPanel/_stories/SlidingPanel.rtl.test.story.tsx +4 -3
- package/src/Snackbar/_stories/Snackbar.rtl.test.story.tsx +14 -16
- package/src/Snackbar/_stories/Snackbar.story.tsx +1 -1
- package/src/Snackbar/_stories/Snackbar.test.story.tsx +1 -1
- package/src/StatusIcon/_stories/StatusIcon.test.story.tsx +12 -4
- package/src/UploadInput/UploadItem/UploadItem.css +4 -5
- package/src/UploadInput/UploadItem/UploadItem.less +7 -6
- package/src/UploadInput/_stories/UploadInput.test.story.tsx +1 -1
- package/src/_deprecated/Badge/Badge.css +4 -2
- package/src/_deprecated/Badge/Badge.less +7 -14
- package/src/_deprecated/CriticalBanner/_stories/CriticalCommsBanner.test.story.tsx +0 -16
- package/src/_deprecated/OverlayHeader/_stories/OverlayHeader.test.story.tsx +15 -0
- package/src/common/Panel/Panel.css +12 -4
- package/src/common/Panel/Panel.less +27 -9
- package/src/common/Panel/Panel.positionUtils.ts +79 -0
- package/src/common/Panel/Panel.test.tsx +40 -0
- package/src/common/Panel/Panel.tsx +13 -24
- package/src/common/Panel/_stories/Panel.rtl.test.story.tsx +110 -0
- package/src/common/PropsValues/position.ts +0 -50
- package/src/main.css +102 -68
- package/src/styles/less/accordion.css +3 -0
- package/src/styles/less/buttons.css +1 -7
- package/src/styles/less/buttons.less +3 -11
- package/src/styles/less/chevron.css +3 -0
- package/src/styles/less/chevron.less +4 -0
- package/src/styles/less/neptune.css +25 -19
- package/src/styles/less/process.css +15 -9
- package/src/styles/less/process.less +13 -6
- package/src/styles/less/tick.css +6 -3
- package/src/styles/less/tick.less +7 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CriticalBanner.d.ts","sourceRoot":"","sources":["../../../../src/Prompt/CriticalBanner/CriticalBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAAmB,MAAM,OAAO,CAAC;AAOhE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAmB,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAqB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAKxE,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG;QAC1D,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;KAChC,CAAC;IACF,eAAe,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG;QACnE,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;KAChC,CAAC;IACF,SAAS,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,CAAC;IACtE;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,GAAG,IAAI,CAAC,oBAAoB,EAAE,IAAI,GAAG,WAAW,GAAG,aAAa,CAAC,CAAC;AAEnE;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,
|
|
1
|
+
{"version":3,"file":"CriticalBanner.d.ts","sourceRoot":"","sources":["../../../../src/Prompt/CriticalBanner/CriticalBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAAmB,MAAM,OAAO,CAAC;AAOhE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAmB,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAqB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAKxE,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG;QAC1D,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;KAChC,CAAC;IACF,eAAe,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG;QACnE,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;KAChC,CAAC;IACF,SAAS,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,CAAC;IACtE;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,GAAG,IAAI,CAAC,oBAAoB,EAAE,IAAI,GAAG,WAAW,GAAG,aAAa,CAAC,CAAC;AAEnE;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,0JAa5B,mBAAmB,gCAoIrB,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HTMLAttributes, PropsWithChildren, RefObject, SyntheticEvent } from 'react';
|
|
2
|
-
import { type FloatingPlacement } from '
|
|
2
|
+
import { type FloatingPlacement } from './Panel.positionUtils';
|
|
3
3
|
export type PanelProps = PropsWithChildren<{
|
|
4
4
|
arrow?: boolean;
|
|
5
5
|
flip?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../../../src/common/Panel/Panel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../../../src/common/Panel/Panel.tsx"],"names":[],"mappings":"AAUA,OAAO,EAEL,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,cAAc,EAIf,MAAM,OAAO,CAAC;AAMf,OAAO,EACL,KAAK,iBAAiB,EAKvB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,UAAU,GAAG,iBAAiB,CAAC;IACzC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC,GACA,cAAc,CAAC,cAAc,CAAC,CAAC;AAEjC,QAAA,MAAM,KAAK;YAZD,OAAO;WACR,OAAO;cACJ,OAAO;WACV,OAAO;cACJ,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,KAAK,IAAI;eACtC,iBAAiB;eACjB,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;kBACtB,OAAO;qBACJ,OAAO;;;mFAoGxB,CAAC;AAEH,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Placement } from '@floating-ui/react';
|
|
2
|
+
export type FloatingPlacement = 'top' | 'right' | 'bottom' | 'left' | 'top-left' | 'top-right' | 'right-top' | 'right-bottom' | 'bottom-left' | 'bottom-right' | 'left-top' | 'left-bottom';
|
|
3
|
+
export declare const POPOVER_OFFSET = 16;
|
|
4
|
+
export declare const fallbackPlacements: Record<Placement, Placement[]>;
|
|
5
|
+
export declare const positionToPlacement: (position: FloatingPlacement) => Placement;
|
|
6
|
+
export declare const mirrorPositionForRtl: (position: FloatingPlacement) => FloatingPlacement;
|
|
7
|
+
//# sourceMappingURL=Panel.positionUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Panel.positionUtils.d.ts","sourceRoot":"","sources":["../../../../src/common/Panel/Panel.positionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GACzB,KAAK,GACL,OAAO,GACP,QAAQ,GACR,MAAM,GACN,UAAU,GACV,WAAW,GACX,WAAW,GACX,cAAc,GACd,aAAa,GACb,cAAc,GACd,UAAU,GACV,aAAa,CAAC;AAElB,eAAO,MAAM,cAAc,KAAK,CAAC;AAKjC,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,CAa7D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,UAAU,iBAAiB,KAAG,SAqBjE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,UAAU,iBAAiB,KAAG,iBAmBlE,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Placement } from '@floating-ui/react';
|
|
2
1
|
export declare enum Position {
|
|
3
2
|
BOTTOM = "bottom",
|
|
4
3
|
BOTTOM_LEFT = "bottom-left",
|
|
@@ -19,16 +18,4 @@ export type PositionTop = 'top';
|
|
|
19
18
|
export type PositionRight = 'right';
|
|
20
19
|
export type PositionBottom = 'bottom';
|
|
21
20
|
export type PositionLeft = 'left';
|
|
22
|
-
export type PositionTopLeft = 'top-left';
|
|
23
|
-
export type PositionTopRight = 'top-right';
|
|
24
|
-
export type PositionBottomLeft = 'bottom-left';
|
|
25
|
-
export type PositionBottomRight = 'bottom-right';
|
|
26
|
-
export type PositionLeftTop = 'left-top';
|
|
27
|
-
export type PositionLeftBottom = 'left-bottom';
|
|
28
|
-
export type PositionRightTop = 'right-top';
|
|
29
|
-
export type PositionRightBottom = 'right-bottom';
|
|
30
|
-
/** Neptune position values that can be converted to floating-ui Placement */
|
|
31
|
-
export type FloatingPlacement = PositionTop | PositionRight | PositionBottom | PositionLeft | PositionTopLeft | PositionTopRight | PositionRightTop | PositionRightBottom | PositionBottomLeft | PositionBottomRight | PositionLeftTop | PositionLeftBottom;
|
|
32
|
-
/** Maps Neptune position values to floating-ui Placement */
|
|
33
|
-
export declare const positionToPlacement: (position: FloatingPlacement) => Placement;
|
|
34
21
|
//# sourceMappingURL=position.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../../src/common/PropsValues/position.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../../src/common/PropsValues/position.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,GAAG,QAAQ;IACX,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;AACtC,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC;AAChC,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;AACpC,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;AACtC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC"}
|
|
@@ -4,7 +4,7 @@ declare const ResponsivePanel: import("react").ForwardRefExoticComponent<{
|
|
|
4
4
|
altAxis?: boolean;
|
|
5
5
|
open?: boolean;
|
|
6
6
|
onClose?: (event: Event | import("react").SyntheticEvent) => void;
|
|
7
|
-
position?: import("
|
|
7
|
+
position?: import("../Panel/Panel.positionUtils").FloatingPlacement;
|
|
8
8
|
anchorRef: import("react").RefObject<Element | null>;
|
|
9
9
|
anchorWidth?: boolean;
|
|
10
10
|
considerHeight?: boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@transferwise/components",
|
|
3
|
-
"version": "46.160.
|
|
3
|
+
"version": "46.160.1",
|
|
4
4
|
"description": "Neptune React components",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@rollup/plugin-url": "^8.0.2",
|
|
53
53
|
"@storybook/addon-a11y": "^10.5.4",
|
|
54
54
|
"@storybook/addon-docs": "^10.5.4",
|
|
55
|
-
"@storybook/addon-mcp": "^0.
|
|
55
|
+
"@storybook/addon-mcp": "^0.7.0",
|
|
56
56
|
"@storybook/addon-webpack5-compiler-babel": "^4.0.1",
|
|
57
57
|
"@storybook/react-webpack5": "^10.5.4",
|
|
58
58
|
"@testing-library/dom": "^10.4.1",
|
|
@@ -71,12 +71,12 @@
|
|
|
71
71
|
"@types/react-dom": "^18.3.7",
|
|
72
72
|
"@types/react-transition-group": "4.4.12",
|
|
73
73
|
"@monaco-editor/react": "^4.7.0",
|
|
74
|
-
"monaco-editor": "^0.
|
|
74
|
+
"monaco-editor": "^0.56.0",
|
|
75
75
|
"monaco-editor-webpack-plugin": "^7.1.1",
|
|
76
|
-
"@wise/art": "^2.
|
|
76
|
+
"@wise/art": "^2.32.0",
|
|
77
77
|
"@wise/eslint-config": "^14.2.1",
|
|
78
78
|
"babel-plugin-formatjs": "^11.3.16",
|
|
79
|
-
"eslint": "^9.39.
|
|
79
|
+
"eslint": "^9.39.5",
|
|
80
80
|
"eslint-plugin-storybook": "^10.5.4",
|
|
81
81
|
"gulp": "^5.0.1",
|
|
82
82
|
"jest": "^29.7.0",
|
|
@@ -4,10 +4,18 @@
|
|
|
4
4
|
display: inline-block;
|
|
5
5
|
}
|
|
6
6
|
.np-dot-mask {
|
|
7
|
+
--np-dot-h-side: left;
|
|
7
8
|
-webkit-mask-image: radial-gradient(circle at bottom calc(100% - (var(--np-dot-size) / 2)) left calc(100% - (var(--np-dot-size) / 2)), transparent 0, transparent calc(var(--np-dot-size) / 2 + var(--np-dot-offset)), black calc(var(--np-dot-size) / 2 + var(--np-dot-offset) + 0.5px));
|
|
8
9
|
mask-image: radial-gradient(circle at bottom calc(100% - (var(--np-dot-size) / 2)) left calc(100% - (var(--np-dot-size) / 2)), transparent 0, transparent calc(var(--np-dot-size) / 2 + var(--np-dot-offset)), black calc(var(--np-dot-size) / 2 + var(--np-dot-offset) + 0.5px));
|
|
10
|
+
-webkit-mask-image: radial-gradient(circle at bottom calc(100% - (var(--np-dot-size) / 2)) var(--np-dot-h-side) calc(100% - (var(--np-dot-size) / 2)), transparent 0, transparent calc(var(--np-dot-size) / 2 + var(--np-dot-offset)), black calc(var(--np-dot-size) / 2 + var(--np-dot-offset) + 0.5px));
|
|
11
|
+
mask-image: radial-gradient(circle at bottom calc(100% - (var(--np-dot-size) / 2)) var(--np-dot-h-side) calc(100% - (var(--np-dot-size) / 2)), transparent 0, transparent calc(var(--np-dot-size) / 2 + var(--np-dot-offset)), black calc(var(--np-dot-size) / 2 + var(--np-dot-offset) + 0.5px));
|
|
9
12
|
-webkit-mask-image: radial-gradient(circle at bottom calc(100% - calc(var(--np-dot-size) / 2)) left calc(100% - calc(var(--np-dot-size) / 2)), transparent 0, transparent calc(var(--np-dot-size) / 2 + var(--np-dot-offset)), black calc(var(--np-dot-size) / 2 + var(--np-dot-offset) + 0.5px));
|
|
10
13
|
mask-image: radial-gradient(circle at bottom calc(100% - calc(var(--np-dot-size) / 2)) left calc(100% - calc(var(--np-dot-size) / 2)), transparent 0, transparent calc(var(--np-dot-size) / 2 + var(--np-dot-offset)), black calc(var(--np-dot-size) / 2 + var(--np-dot-offset) + 0.5px));
|
|
14
|
+
-webkit-mask-image: radial-gradient(circle at bottom calc(100% - calc(var(--np-dot-size) / 2)) var(--np-dot-h-side) calc(100% - calc(var(--np-dot-size) / 2)), transparent 0, transparent calc(var(--np-dot-size) / 2 + var(--np-dot-offset)), black calc(var(--np-dot-size) / 2 + var(--np-dot-offset) + 0.5px));
|
|
15
|
+
mask-image: radial-gradient(circle at bottom calc(100% - calc(var(--np-dot-size) / 2)) var(--np-dot-h-side) calc(100% - calc(var(--np-dot-size) / 2)), transparent 0, transparent calc(var(--np-dot-size) / 2 + var(--np-dot-offset)), black calc(var(--np-dot-size) / 2 + var(--np-dot-offset) + 0.5px));
|
|
16
|
+
}
|
|
17
|
+
[dir="rtl"] .np-dot-mask {
|
|
18
|
+
--np-dot-h-side: right;
|
|
11
19
|
}
|
|
12
20
|
.np-dot-badge {
|
|
13
21
|
position: absolute;
|
|
@@ -4,10 +4,18 @@
|
|
|
4
4
|
display: inline-block;
|
|
5
5
|
}
|
|
6
6
|
.np-dot-mask {
|
|
7
|
+
--np-dot-h-side: left;
|
|
7
8
|
-webkit-mask-image: radial-gradient(circle at bottom calc(100% - (var(--np-dot-size) / 2)) left calc(100% - (var(--np-dot-size) / 2)), transparent 0, transparent calc(var(--np-dot-size) / 2 + var(--np-dot-offset)), black calc(var(--np-dot-size) / 2 + var(--np-dot-offset) + 0.5px));
|
|
8
9
|
mask-image: radial-gradient(circle at bottom calc(100% - (var(--np-dot-size) / 2)) left calc(100% - (var(--np-dot-size) / 2)), transparent 0, transparent calc(var(--np-dot-size) / 2 + var(--np-dot-offset)), black calc(var(--np-dot-size) / 2 + var(--np-dot-offset) + 0.5px));
|
|
10
|
+
-webkit-mask-image: radial-gradient(circle at bottom calc(100% - (var(--np-dot-size) / 2)) var(--np-dot-h-side) calc(100% - (var(--np-dot-size) / 2)), transparent 0, transparent calc(var(--np-dot-size) / 2 + var(--np-dot-offset)), black calc(var(--np-dot-size) / 2 + var(--np-dot-offset) + 0.5px));
|
|
11
|
+
mask-image: radial-gradient(circle at bottom calc(100% - (var(--np-dot-size) / 2)) var(--np-dot-h-side) calc(100% - (var(--np-dot-size) / 2)), transparent 0, transparent calc(var(--np-dot-size) / 2 + var(--np-dot-offset)), black calc(var(--np-dot-size) / 2 + var(--np-dot-offset) + 0.5px));
|
|
9
12
|
-webkit-mask-image: radial-gradient(circle at bottom calc(100% - calc(var(--np-dot-size) / 2)) left calc(100% - calc(var(--np-dot-size) / 2)), transparent 0, transparent calc(var(--np-dot-size) / 2 + var(--np-dot-offset)), black calc(var(--np-dot-size) / 2 + var(--np-dot-offset) + 0.5px));
|
|
10
13
|
mask-image: radial-gradient(circle at bottom calc(100% - calc(var(--np-dot-size) / 2)) left calc(100% - calc(var(--np-dot-size) / 2)), transparent 0, transparent calc(var(--np-dot-size) / 2 + var(--np-dot-offset)), black calc(var(--np-dot-size) / 2 + var(--np-dot-offset) + 0.5px));
|
|
14
|
+
-webkit-mask-image: radial-gradient(circle at bottom calc(100% - calc(var(--np-dot-size) / 2)) var(--np-dot-h-side) calc(100% - calc(var(--np-dot-size) / 2)), transparent 0, transparent calc(var(--np-dot-size) / 2 + var(--np-dot-offset)), black calc(var(--np-dot-size) / 2 + var(--np-dot-offset) + 0.5px));
|
|
15
|
+
mask-image: radial-gradient(circle at bottom calc(100% - calc(var(--np-dot-size) / 2)) var(--np-dot-h-side) calc(100% - calc(var(--np-dot-size) / 2)), transparent 0, transparent calc(var(--np-dot-size) / 2 + var(--np-dot-offset)), black calc(var(--np-dot-size) / 2 + var(--np-dot-offset) + 0.5px));
|
|
16
|
+
}
|
|
17
|
+
[dir="rtl"] .np-dot-mask {
|
|
18
|
+
--np-dot-h-side: right;
|
|
11
19
|
}
|
|
12
20
|
.np-dot-badge {
|
|
13
21
|
position: absolute;
|
|
@@ -4,8 +4,14 @@
|
|
|
4
4
|
display: inline-block;
|
|
5
5
|
|
|
6
6
|
&-mask {
|
|
7
|
+
--np-dot-h-side: left;
|
|
8
|
+
|
|
9
|
+
[dir="rtl"] & {
|
|
10
|
+
--np-dot-h-side: right;
|
|
11
|
+
}
|
|
12
|
+
|
|
7
13
|
mask-image: radial-gradient(
|
|
8
|
-
circle at bottom calc(100% - calc(var(--np-dot-size) / 2))
|
|
14
|
+
circle at bottom calc(100% - calc(var(--np-dot-size) / 2)) var(--np-dot-h-side)
|
|
9
15
|
calc(100% - calc(var(--np-dot-size) / 2)),
|
|
10
16
|
transparent 0,
|
|
11
17
|
transparent calc(var(--np-dot-size) / 2 + var(--np-dot-offset)),
|
|
@@ -34,7 +34,7 @@ const buttonPriorities = ['primary', 'secondary', 'secondary-neutral', 'tertiary
|
|
|
34
34
|
const buttonSizes = ['sm', 'md', 'lg'] as const;
|
|
35
35
|
export const AllVariants: Story = {
|
|
36
36
|
tags: ['!autodocs'],
|
|
37
|
-
...withVariantConfig(['default', 'dark', 'bright-green', 'forest-green'
|
|
37
|
+
...withVariantConfig(['default', 'dark', 'bright-green', 'forest-green'], {
|
|
38
38
|
parameters: {
|
|
39
39
|
padding: '0',
|
|
40
40
|
},
|
|
@@ -30,7 +30,7 @@ export const MultipleMobile: Story = {
|
|
|
30
30
|
</>
|
|
31
31
|
);
|
|
32
32
|
},
|
|
33
|
-
...withVariantConfig(['default', 'dark', '
|
|
33
|
+
...withVariantConfig(['default', 'dark', 'mobile']),
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
/**
|
|
@@ -41,8 +41,9 @@ export const MultipleMobile: Story = {
|
|
|
41
41
|
export const RTLDiff: Story = {
|
|
42
42
|
render: () => (
|
|
43
43
|
<>
|
|
44
|
-
<Checkbox label="Label only" onChange={() => {}} />
|
|
44
|
+
<Checkbox checked label="Label only" onChange={() => {}} />
|
|
45
45
|
<Checkbox
|
|
46
|
+
checked
|
|
46
47
|
label="Label with secondary"
|
|
47
48
|
secondary="Secondary description text"
|
|
48
49
|
onChange={() => {}}
|
|
@@ -32,6 +32,9 @@
|
|
|
32
32
|
background: var(--color-background-screen);
|
|
33
33
|
transform: translate(-50%, -50%);
|
|
34
34
|
}
|
|
35
|
+
[dir="rtl"] .np-tw-checkbox-indeterminate::after {
|
|
36
|
+
transform: translate(50%, -50%);
|
|
37
|
+
}
|
|
35
38
|
.np-tw-checkbox-indeterminate .has-error::after {
|
|
36
39
|
background-color: #e74848;
|
|
37
40
|
background-color: var(--color-interactive-negative);
|
|
@@ -17,10 +17,10 @@ type Story = StoryObj<typeof Chevron>;
|
|
|
17
17
|
*/
|
|
18
18
|
export const RTLDiff: Story = {
|
|
19
19
|
render: () => (
|
|
20
|
-
|
|
20
|
+
<>
|
|
21
21
|
<Chevron orientation="left" size="md" />
|
|
22
22
|
<Chevron orientation="right" size="md" />
|
|
23
|
-
|
|
23
|
+
</>
|
|
24
24
|
),
|
|
25
25
|
...withRTLDiff(),
|
|
26
26
|
};
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import { ChevronLeft } from '@transferwise/icons';
|
|
1
|
+
import { ChevronLeft, ChevronRight } from '@transferwise/icons';
|
|
2
2
|
import { clsx } from 'clsx';
|
|
3
3
|
import { motion } from 'motion/react';
|
|
4
4
|
|
|
5
|
+
import { useDirection } from '../../common/hooks';
|
|
6
|
+
|
|
5
7
|
interface Props {
|
|
6
8
|
shouldShow: boolean;
|
|
7
9
|
}
|
|
8
10
|
|
|
9
11
|
export const Chevron = ({ shouldShow = true }: Props) => {
|
|
12
|
+
const { isRTL } = useDirection();
|
|
13
|
+
const Icon = isRTL ? ChevronRight : ChevronLeft;
|
|
14
|
+
|
|
10
15
|
return (
|
|
11
16
|
<div
|
|
12
17
|
className={clsx(
|
|
@@ -17,7 +22,7 @@ export const Chevron = ({ shouldShow = true }: Props) => {
|
|
|
17
22
|
>
|
|
18
23
|
<motion.div
|
|
19
24
|
animate={{
|
|
20
|
-
x: [12, 0, 0, -12],
|
|
25
|
+
x: isRTL ? [-12, 0, 0, 12] : [12, 0, 0, -12],
|
|
21
26
|
opacity: [0, 1, 1, 0],
|
|
22
27
|
}}
|
|
23
28
|
transition={{
|
|
@@ -28,7 +33,7 @@ export const Chevron = ({ shouldShow = true }: Props) => {
|
|
|
28
33
|
repeatType: 'loop',
|
|
29
34
|
}}
|
|
30
35
|
>
|
|
31
|
-
<
|
|
36
|
+
<Icon />
|
|
32
37
|
</motion.div>
|
|
33
38
|
</div>
|
|
34
39
|
);
|
|
@@ -86,7 +86,7 @@ export const SectionTrailingSpaceWithAction: Story = {
|
|
|
86
86
|
};
|
|
87
87
|
|
|
88
88
|
export const AllVariants: Story = {
|
|
89
|
-
...withVariantConfig(['default', 'dark', 'bright-green', 'forest-green'
|
|
89
|
+
...withVariantConfig(['default', 'dark', 'bright-green', 'forest-green'], {
|
|
90
90
|
parameters: {
|
|
91
91
|
padding: '0',
|
|
92
92
|
},
|
|
@@ -12,8 +12,6 @@ export default {
|
|
|
12
12
|
|
|
13
13
|
type Story = StoryObj<typeof Info>;
|
|
14
14
|
|
|
15
|
-
const iframeDiff = withRTLDiff({ renderAs: 'iframe' });
|
|
16
|
-
|
|
17
15
|
const openInfo = async ({ canvasElement }: { canvasElement: HTMLElement }) => {
|
|
18
16
|
const canvas = within(canvasElement);
|
|
19
17
|
const button = canvas.queryByRole('button');
|
|
@@ -21,32 +19,60 @@ const openInfo = async ({ canvasElement }: { canvasElement: HTMLElement }) => {
|
|
|
21
19
|
await userEvent.click(button);
|
|
22
20
|
};
|
|
23
21
|
|
|
24
|
-
export const
|
|
22
|
+
export const PlacementTop: Story = {
|
|
23
|
+
render: () => (
|
|
24
|
+
<Info
|
|
25
|
+
aria-label="Info trigger"
|
|
26
|
+
title="Information"
|
|
27
|
+
content="This is some descriptive content inside the info component."
|
|
28
|
+
presentation="POPOVER"
|
|
29
|
+
preferredPlacement="top"
|
|
30
|
+
/>
|
|
31
|
+
),
|
|
32
|
+
play: openInfo,
|
|
33
|
+
...withRTLDiff({ renderAs: 'iframe', hAlign: 'center', vAlign: 'bottom' }),
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export const PlacementRight: Story = {
|
|
37
|
+
render: () => (
|
|
38
|
+
<Info
|
|
39
|
+
aria-label="Info trigger"
|
|
40
|
+
title="Information"
|
|
41
|
+
content="This is some descriptive content inside the info component."
|
|
42
|
+
presentation="POPOVER"
|
|
43
|
+
preferredPlacement="right"
|
|
44
|
+
/>
|
|
45
|
+
),
|
|
46
|
+
play: openInfo,
|
|
47
|
+
...withRTLDiff({ renderAs: 'iframe', hAlign: 'left', vAlign: 'center' }),
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export const PlacementBottom: Story = {
|
|
25
51
|
render: () => (
|
|
26
52
|
<Info
|
|
27
53
|
aria-label="Info trigger"
|
|
28
54
|
title="Information"
|
|
29
55
|
content="This is some descriptive content inside the info component."
|
|
30
56
|
presentation="POPOVER"
|
|
31
|
-
|
|
57
|
+
preferredPlacement="bottom"
|
|
32
58
|
/>
|
|
33
59
|
),
|
|
34
60
|
play: openInfo,
|
|
35
|
-
...
|
|
61
|
+
...withRTLDiff({ renderAs: 'iframe', hAlign: 'center' }),
|
|
36
62
|
};
|
|
37
63
|
|
|
38
|
-
export const
|
|
64
|
+
export const PlacementLeft: Story = {
|
|
39
65
|
render: () => (
|
|
40
66
|
<Info
|
|
41
67
|
aria-label="Info trigger"
|
|
42
68
|
title="Information"
|
|
43
69
|
content="This is some descriptive content inside the info component."
|
|
44
70
|
presentation="POPOVER"
|
|
45
|
-
|
|
71
|
+
preferredPlacement="left"
|
|
46
72
|
/>
|
|
47
73
|
),
|
|
48
74
|
play: openInfo,
|
|
49
|
-
...
|
|
75
|
+
...withRTLDiff({ renderAs: 'iframe', hAlign: 'right', vAlign: 'center' }),
|
|
50
76
|
};
|
|
51
77
|
|
|
52
78
|
export const Modal: Story = {
|
|
@@ -56,9 +82,8 @@ export const Modal: Story = {
|
|
|
56
82
|
title="Information"
|
|
57
83
|
content="This is some descriptive content inside the info component."
|
|
58
84
|
presentation="MODAL"
|
|
59
|
-
size="sm"
|
|
60
85
|
/>
|
|
61
86
|
),
|
|
62
87
|
play: openInfo,
|
|
63
|
-
...
|
|
88
|
+
...withRTLDiff({ renderAs: 'iframe', hAlign: 'center', vAlign: 'center' }),
|
|
64
89
|
};
|
|
@@ -166,7 +166,7 @@ export const Variants: Story<TestCurrency> = {
|
|
|
166
166
|
</div>
|
|
167
167
|
);
|
|
168
168
|
},
|
|
169
|
-
...withVariantConfig(['default', 'dark', 'bright-green', 'forest-green'
|
|
169
|
+
...withVariantConfig(['default', 'dark', 'bright-green', 'forest-green']),
|
|
170
170
|
};
|
|
171
171
|
|
|
172
172
|
/**
|
|
@@ -60,7 +60,7 @@ export const SB_LIST_ITEM_CONTROLS: Record<SB_ListItem_ControlType, ReactNode> =
|
|
|
60
60
|
),
|
|
61
61
|
navigation: <ListItem.Navigation href="https://wise.com" />,
|
|
62
62
|
navigationAsButton: <ListItem.Navigation onClick={fn()} />,
|
|
63
|
-
checkbox: <ListItem.Checkbox onChange={() => {}} />,
|
|
63
|
+
checkbox: <ListItem.Checkbox checked onChange={() => {}} />,
|
|
64
64
|
radio: <ListItem.Radio name="radio" value={Math.random().toString()} onChange={() => {}} />,
|
|
65
65
|
switch: <ListItem.Switch onClick={() => {}} />,
|
|
66
66
|
iconButton: (
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react-webpack5';
|
|
2
|
+
import { withRTLDiff } from '../../../.storybook/decorators/RtlDiffDecorator';
|
|
3
|
+
import Loader from '..';
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
component: Loader,
|
|
7
|
+
title: 'Loading/Loader/Tests',
|
|
8
|
+
tags: ['!autodocs', '!manifest'],
|
|
9
|
+
} satisfies Meta<typeof Loader>;
|
|
10
|
+
|
|
11
|
+
type Story = StoryObj<typeof Loader>;
|
|
12
|
+
|
|
13
|
+
export const RTLDiff: Story = {
|
|
14
|
+
render: () => (
|
|
15
|
+
<>
|
|
16
|
+
<Loader size="sm" displayInstantly />
|
|
17
|
+
<Loader size="md" displayInstantly />
|
|
18
|
+
<Loader size="sm" displayInstantly label="Sending your money" />
|
|
19
|
+
<Loader size="md" displayInstantly label="Sending your money" />
|
|
20
|
+
</>
|
|
21
|
+
),
|
|
22
|
+
...withRTLDiff(),
|
|
23
|
+
};
|
package/src/Nudge/Nudge.css
CHANGED
|
@@ -41,7 +41,10 @@
|
|
|
41
41
|
inline-size: 161px;
|
|
42
42
|
}
|
|
43
43
|
[dir="rtl"] .wds-nudge-media-globe {
|
|
44
|
-
|
|
44
|
+
margin-inline-start: -63px;
|
|
45
|
+
margin-block-start: -15px;
|
|
46
|
+
position: absolute;
|
|
47
|
+
inline-size: 161px;
|
|
45
48
|
}
|
|
46
49
|
.wds-nudge-media-lock {
|
|
47
50
|
margin-inline-start: -11px;
|
|
@@ -50,36 +53,24 @@
|
|
|
50
53
|
inline-size: 104px;
|
|
51
54
|
transform: rotate(-14.86deg);
|
|
52
55
|
}
|
|
53
|
-
[dir="rtl"] .wds-nudge-media-lock {
|
|
54
|
-
transform: scaleX(-1);
|
|
55
|
-
}
|
|
56
56
|
.wds-nudge-media-wallet {
|
|
57
57
|
margin-inline-start: -15px;
|
|
58
58
|
margin-block-start: 18px;
|
|
59
59
|
position: absolute;
|
|
60
60
|
inline-size: 107px;
|
|
61
61
|
}
|
|
62
|
-
[dir="rtl"] .wds-nudge-media-wallet {
|
|
63
|
-
transform: scaleX(-1);
|
|
64
|
-
}
|
|
65
62
|
.wds-nudge-media-gear {
|
|
66
63
|
margin-inline-start: -18px;
|
|
67
64
|
margin-block-start: 19px;
|
|
68
65
|
position: absolute;
|
|
69
66
|
inline-size: 111px;
|
|
70
67
|
}
|
|
71
|
-
[dir="rtl"] .wds-nudge-media-gear {
|
|
72
|
-
transform: scaleX(-1);
|
|
73
|
-
}
|
|
74
68
|
.wds-nudge-media-invite-letter {
|
|
75
69
|
margin-inline-start: -17px;
|
|
76
70
|
margin-block-start: -2px;
|
|
77
71
|
position: absolute;
|
|
78
72
|
inline-size: 105px;
|
|
79
73
|
}
|
|
80
|
-
[dir="rtl"] .wds-nudge-media-invite-letter {
|
|
81
|
-
transform: scaleX(-1);
|
|
82
|
-
}
|
|
83
74
|
.wds-nudge-media-personal-card,
|
|
84
75
|
.wds-nudge-media-business-card {
|
|
85
76
|
margin-inline-start: -15px;
|
|
@@ -87,73 +78,48 @@
|
|
|
87
78
|
position: absolute;
|
|
88
79
|
inline-size: 104px;
|
|
89
80
|
}
|
|
90
|
-
[dir="rtl"] .wds-nudge-media-personal-card,
|
|
91
|
-
[dir="rtl"] .wds-nudge-media-business-card {
|
|
92
|
-
transform: scaleX(-1);
|
|
93
|
-
}
|
|
94
81
|
.wds-nudge-media-heart {
|
|
95
82
|
margin-inline-start: -7px;
|
|
96
83
|
margin-block-start: 11px;
|
|
97
84
|
position: absolute;
|
|
98
85
|
inline-size: 95px;
|
|
99
86
|
}
|
|
100
|
-
[dir="rtl"] .wds-nudge-media-heart {
|
|
101
|
-
transform: scaleX(-1);
|
|
102
|
-
}
|
|
103
87
|
.wds-nudge-media-multi-currency {
|
|
104
88
|
margin-inline-start: -30px;
|
|
105
89
|
margin-block-start: 1px;
|
|
106
90
|
position: absolute;
|
|
107
91
|
inline-size: 131px;
|
|
108
92
|
}
|
|
109
|
-
[dir="rtl"] .wds-nudge-media-multi-currency {
|
|
110
|
-
transform: scaleX(-1);
|
|
111
|
-
}
|
|
112
93
|
.wds-nudge-media-shopping-bag {
|
|
113
94
|
margin-inline-start: -9px;
|
|
114
95
|
margin-block-start: 14px;
|
|
115
96
|
position: absolute;
|
|
116
97
|
inline-size: 116px;
|
|
117
98
|
}
|
|
118
|
-
[dir="rtl"] .wds-nudge-media-shopping-bag {
|
|
119
|
-
transform: scaleX(-1);
|
|
120
|
-
}
|
|
121
99
|
.wds-nudge-media-flower {
|
|
122
100
|
margin-inline-start: -24px;
|
|
123
101
|
margin-block-start: 11px;
|
|
124
102
|
position: absolute;
|
|
125
103
|
inline-size: 156px;
|
|
126
104
|
}
|
|
127
|
-
[dir="rtl"] .wds-nudge-media-flower {
|
|
128
|
-
transform: scaleX(-1);
|
|
129
|
-
}
|
|
130
105
|
.wds-nudge-media-backpack {
|
|
131
106
|
margin-inline-start: -16px;
|
|
132
107
|
margin-block-start: 6px;
|
|
133
108
|
position: absolute;
|
|
134
109
|
inline-size: 123px;
|
|
135
110
|
}
|
|
136
|
-
[dir="rtl"] .wds-nudge-media-backpack {
|
|
137
|
-
transform: scaleX(-1);
|
|
138
|
-
}
|
|
139
111
|
.wds-nudge-media-gift-box {
|
|
140
112
|
margin-inline-start: -22px;
|
|
141
113
|
margin-block-start: 6px;
|
|
142
114
|
position: absolute;
|
|
143
115
|
inline-size: 129px;
|
|
144
116
|
}
|
|
145
|
-
[dir="rtl"] .wds-nudge-media-gift-box {
|
|
146
|
-
transform: scaleX(-1);
|
|
147
|
-
}
|
|
148
117
|
.wds-nudge-media-documents {
|
|
149
118
|
margin-inline-start: -8px;
|
|
150
119
|
margin-block-start: 8px;
|
|
151
120
|
position: absolute;
|
|
152
121
|
inline-size: 120px;
|
|
153
122
|
}
|
|
154
|
-
[dir="rtl"] .wds-nudge-media-documents {
|
|
155
|
-
transform: scaleX(-1);
|
|
156
|
-
}
|
|
157
123
|
.wds-nudge-container {
|
|
158
124
|
align-items: stretch;
|
|
159
125
|
display: flex;
|
package/src/Nudge/Nudge.less
CHANGED
|
@@ -32,6 +32,10 @@
|
|
|
32
32
|
|
|
33
33
|
&-globe {
|
|
34
34
|
.media-position(161px, -76px, -5px);
|
|
35
|
+
|
|
36
|
+
[dir="rtl"] & {
|
|
37
|
+
.media-position(161px, -63px, -15px);
|
|
38
|
+
}
|
|
35
39
|
}
|
|
36
40
|
|
|
37
41
|
&-lock {
|
|
@@ -129,8 +133,4 @@
|
|
|
129
133
|
margin-top: @margin-top;
|
|
130
134
|
position: absolute;
|
|
131
135
|
width: @size;
|
|
132
|
-
|
|
133
|
-
[dir="rtl"] & {
|
|
134
|
-
transform: scaleX(-1);
|
|
135
|
-
}
|
|
136
136
|
}
|
|
@@ -10,28 +10,45 @@ export default {
|
|
|
10
10
|
|
|
11
11
|
type Story = StoryObj<typeof Nudge>;
|
|
12
12
|
|
|
13
|
+
const MEDIA_NAMES = [
|
|
14
|
+
'globe',
|
|
15
|
+
'lock',
|
|
16
|
+
'wallet',
|
|
17
|
+
'gear',
|
|
18
|
+
'invite-letter',
|
|
19
|
+
'personal-card',
|
|
20
|
+
'business-card',
|
|
21
|
+
'heart',
|
|
22
|
+
'multi-currency',
|
|
23
|
+
'shopping-bag',
|
|
24
|
+
'flower',
|
|
25
|
+
'gift-box',
|
|
26
|
+
'backpack',
|
|
27
|
+
'documents',
|
|
28
|
+
] as const;
|
|
29
|
+
|
|
13
30
|
export const RTLDiff: Story = {
|
|
14
31
|
render: () => (
|
|
15
32
|
<>
|
|
33
|
+
{MEDIA_NAMES.map((mediaName) => (
|
|
34
|
+
<Nudge
|
|
35
|
+
key={mediaName}
|
|
36
|
+
mediaName={mediaName}
|
|
37
|
+
title={mediaName}
|
|
38
|
+
link="Link"
|
|
39
|
+
href="#"
|
|
40
|
+
onDismiss={() => {}}
|
|
41
|
+
/>
|
|
42
|
+
))}
|
|
16
43
|
<Nudge
|
|
17
44
|
mediaName="globe"
|
|
18
|
-
title="With
|
|
19
|
-
link="Link"
|
|
20
|
-
href="#"
|
|
21
|
-
onDismiss={() => {}}
|
|
22
|
-
/>
|
|
23
|
-
<div style={{ marginTop: 16 }} />
|
|
24
|
-
<Nudge
|
|
25
|
-
mediaName="globe"
|
|
26
|
-
title="With media, action, and dismiss"
|
|
45
|
+
title="With action"
|
|
27
46
|
action={{ text: 'Learn more', href: '#' }}
|
|
28
47
|
onDismiss={() => {}}
|
|
29
48
|
/>
|
|
30
|
-
<div style={{ marginTop: 16 }} />
|
|
31
49
|
<Nudge title="Without media, with dismiss" link="Link" href="#" onDismiss={() => {}} />
|
|
32
|
-
<div style={{ marginTop: 16 }} />
|
|
33
50
|
<Nudge title="Without media, no dismiss" link="Link" href="#" />
|
|
34
51
|
</>
|
|
35
52
|
),
|
|
36
|
-
...withRTLDiff(),
|
|
53
|
+
...withRTLDiff({ width: 'stretch' }),
|
|
37
54
|
};
|