@transferwise/components 0.0.0-experimental-ed6f15f → 0.0.0-experimental-22a796c

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.
@@ -2,7 +2,7 @@
2
2
  * Types
3
3
  */ /**
4
4
  * Components
5
- */export{default as Title}from"./title";export{default as Body}from"./body";export{default as Accordion}from"./accordion";export{default as ActionButton}from"./actionButton";export{default as ActionOption}from"./actionOption";export{default as Alert}from"./alert";export{default as Avatar}from"./avatar";export{default as AvatarWrapper}from"./avatarWrapper";export{default as Badge}from"./badge";export{default as BottomSheet}from"./common/bottomSheet";export{default as Button}from"./button";export{default as Card}from"./card";export{default as Checkbox}from"./checkbox";export{default as CheckboxButton}from"./checkboxButton";export{default as CheckboxOption}from"./checkboxOption";export{default as Chevron}from"./chevron";export{default as Chips,Chip}from"./chips";export{default as CircularButton}from"./circularButton";export{default as DateInput}from"./dateInput";export{default as DateLookup}from"./dateLookup";export{default as Decision}from"./decision";export{default as DefinitionList}from"./definitionList";export{default as Dimmer}from"./dimmer";export{default as Display}from"./display";export{default as Drawer}from"./drawer";export{default as DropFade}from"./dropFade";export{default as DynamicFieldDefinitionList}from"./dynamicFieldDefinitionList";export{default as Emphasis}from"./emphasis";export{default as FlowNavigation}from"./flowNavigation/FlowNavigation";export{default as Header}from"./header";export{default as Image}from"./image";export{default as Info}from"./info";export{default as InlineAlert}from"./inlineAlert";export{Input}from"./inputs/Input";export{TextArea}from"./inputs/TextArea";export{default as InputWithDisplayFormat}from"./inputWithDisplayFormat";export{default as InstructionsList}from"./instructionsList";export{default as Link}from"./link";export{default as Loader}from"./loader";export{default as Logo}from"./logo";export{default as Markdown}from"./markdown";export{default as Modal}from"./modal";export{default as Money}from"./money";export{default as MoneyInput}from"./moneyInput";export{default as NavigationOption}from"./navigationOption";export{default as NavigationOptionsList}from"./navigationOptionsList";export{default as Nudge}from"./nudge";export{default as Option}from"./common/Option";export{default as OverlayHeader}from"./overlayHeader";export{default as PhoneNumberInput}from"./phoneNumberInput";export{default as Popover}from"./popover";export{default as ProcessIndicator}from"./processIndicator";export{default as ProgressBar}from"./progressBar";export{default as Progress}from"./progress";export{default as Provider,DirectionProvider,LanguageProvider}from"./provider";export{default as Radio}from"./radio";export{default as RadioGroup}from"./radioGroup";export{default as RadioOption}from"./radioOption";export{default as Section}from"./section";export{default as Select}from"./select";export{default as SlidingPanel}from"./slidingPanel";export{default as SnackbarPortal}from"./snackbar/Snackbar";export{default as SnackbarProvider}from"./snackbar/SnackbarProvider";export{default as StatusIcon}from"./statusIcon/StatusIcon";export{default as Stepper}from"./stepper/Stepper";export{default as Sticky}from"./sticky";export{default as Summary}from"./summary";export{default as Switch}from"./switch";export{default as SwitchOption}from"./switchOption";export{default as Tabs}from"./tabs";export{default as TextareaWithDisplayFormat}from"./textareaWithDisplayFormat";export{default as Tooltip}from"./tooltip";export{default as Typeahead}from"./typeahead";export{default as Upload}from"./upload";export{default as UploadInput}from"./uploadInput";export{SnackbarConsumer,SnackbarContext}from"./snackbar/SnackbarContext";export{default as CriticalCommsBanner}from"./criticalBanner";export{default as ListItem}from"./listItem";/**
5
+ */export{default as Title}from"./title";export{default as Body}from"./body";export{default as Accordion}from"./accordion";export{default as ActionButton}from"./actionButton";export{default as ActionOption}from"./actionOption";export{default as Alert}from"./alert";export{default as Avatar}from"./avatar";export{default as AvatarWrapper}from"./avatarWrapper";export{default as Badge}from"./badge";export{default as BottomSheet}from"./common/bottomSheet";export{default as Button}from"./button";export{default as Card}from"./card";export{default as Checkbox}from"./checkbox";export{default as CheckboxButton}from"./checkboxButton";export{default as CheckboxOption}from"./checkboxOption";export{default as Chevron}from"./chevron";export{default as Chips,Chip}from"./chips";export{default as CircularButton}from"./circularButton";export{default as DateInput}from"./dateInput";export{default as DateLookup}from"./dateLookup";export{default as Decision}from"./decision";export{default as DefinitionList}from"./definitionList";export{default as Dimmer}from"./dimmer";export{default as Display}from"./display";export{default as Drawer}from"./drawer";export{default as DropFade}from"./dropFade";export{default as DynamicFieldDefinitionList}from"./dynamicFieldDefinitionList";export{default as Emphasis}from"./emphasis";export{default as FlowNavigation}from"./flowNavigation/FlowNavigation";export{default as Header}from"./header";export{default as Image}from"./image";export{default as Info}from"./info";export{default as InlineAlert}from"./inlineAlert";export{Input}from"./inputs/Input";export{TextArea}from"./inputs/TextArea";export{default as InputWithDisplayFormat}from"./inputWithDisplayFormat";export{default as InstructionsList}from"./instructionsList";export{default as Link}from"./link";export{default as Loader}from"./loader";export{default as Logo}from"./logo";export{default as Markdown}from"./markdown";export{default as Modal}from"./modal";export{default as Money}from"./money";export{default as MoneyInput}from"./moneyInput";export{default as NavigationOption}from"./navigationOption";export{default as NavigationOptionsList}from"./navigationOptionsList";export{default as Nudge}from"./nudge";export{default as Option}from"./common/Option";export{default as OverlayHeader}from"./overlayHeader";export{default as PhoneNumberInput}from"./phoneNumberInput";export{default as Popover}from"./popover";export{default as ProcessIndicator}from"./processIndicator";export{default as ProgressBar}from"./progressBar";export{default as Progress}from"./progress";export{default as PromoCard}from"./promoCard";export{default as Provider,DirectionProvider,LanguageProvider}from"./provider";export{default as Radio}from"./radio";export{default as RadioGroup}from"./radioGroup";export{default as RadioOption}from"./radioOption";export{default as Section}from"./section";export{default as Select}from"./select";export{default as SlidingPanel}from"./slidingPanel";export{default as SnackbarPortal}from"./snackbar/Snackbar";export{default as SnackbarProvider}from"./snackbar/SnackbarProvider";export{default as StatusIcon}from"./statusIcon/StatusIcon";export{default as Stepper}from"./stepper/Stepper";export{default as Sticky}from"./sticky";export{default as Summary}from"./summary";export{default as Switch}from"./switch";export{default as SwitchOption}from"./switchOption";export{default as Tabs}from"./tabs";export{default as TextareaWithDisplayFormat}from"./textareaWithDisplayFormat";export{default as Tooltip}from"./tooltip";export{default as Typeahead}from"./typeahead";export{default as Upload}from"./upload";export{default as UploadInput}from"./uploadInput";export{SnackbarConsumer,SnackbarContext}from"./snackbar/SnackbarContext";export{default as CriticalCommsBanner}from"./criticalBanner";export{default as ListItem}from"./listItem";/**
6
6
  * Hooks
7
7
  */export{default as useSnackbar}from"./snackbar/useSnackbar";export{useDirection,useLayout}from"./common/hooks";/**
8
8
  * Enums
@@ -0,0 +1 @@
1
+ import{ArrowRight,Check}from"@transferwise/icons";import classNames from"classnames";import Body from"../body";import{Typography}from"../common";import{CloseButton}from"../common/closeButton";import Display from"../display";import{jsx as _jsx}from"react/jsx-runtime";import{jsxs as _jsxs}from"react/jsx-runtime";export var Variant=/*#__PURE__*/function(a){return a.SELECT="select",a.LINK="link",a}({});var PromoCard=function(a){var b=a.id,c=a.variant,d=void 0===c?Variant.LINK:c,e=a.title,f=a.description,g=a.imageSource,h=a.keyFeature,i=a.className,j=a.selected,k=a.onClick,l=a.onClose,m=a.animateHover,n=a.disabled;return/*#__PURE__*/_jsxs("div",{className:classNames(i,"wds-slate",j&&"selected",n&&"disabled"),id:b,"data-testid":"promo-card",onClick:function onClick(a){return n?void a.preventDefault():void(k&&k())},onKeyDown:function onKeyDown(a){"Enter"===a.key&&k&&k(),"Escape"===a.key&&l&&l()},children:[d===Variant.LINK&&l&&!n&&/*#__PURE__*/_jsx(CloseButton,{"data-testid":"close-button",className:"close-button",size:"md",onClick:l}),d===Variant.SELECT&&j&&/*#__PURE__*/_jsx("span",{"data-testid":"selected-check",className:classNames("status-circle","status-circle-md","selected-check"),children:/*#__PURE__*/_jsx(Check,{size:24})}),/*#__PURE__*/_jsxs("div",{className:"text",children:[/*#__PURE__*/_jsx(Display,{className:"title",type:Typography.DISPLAY_SMALL,children:e}),/*#__PURE__*/_jsxs("p",{style:{paddingTop:"10px"},children:[f," "]})]}),/*#__PURE__*/_jsx("img",{className:m?"animate-hover":"",src:null===g||void 0===g?void 0:g.toString(),alt:""}),/*#__PURE__*/_jsxs("div",{className:"slate-footer",children:[d===Variant.LINK&&/*#__PURE__*/_jsx("span",{"data-testid":"slate-link",className:classNames("status-circle","status-circle-md","slate-link"),children:/*#__PURE__*/_jsx(ArrowRight,{size:24})}),h&&/*#__PURE__*/_jsx("div",{className:"key-feature",children:/*#__PURE__*/_jsx(Body,{type:Typography.BODY_DEFAULT_BOLD,children:h})})]})]})};export default PromoCard;
@@ -0,0 +1 @@
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}/* eslint-disable @typescript-eslint/no-unused-expressions */ /* eslint-disable jest/unbound-method */import"@testing-library/jest-dom";import{render,screen,userEvent}from"../test-utils";import PromoCard,{Variant}from"./PromoCard";import{jsx as _jsx}from"react/jsx-runtime";describe("PromoCard",function(){var a={variant:Variant.LINK,title:"Title",description:"Description",imageSource:new URL("https://wise.com/web-art/assets/illustrations/digital-card-2-medium@1x.webp"),keyFeature:"Free",animateHover:!1,disabled:!1,onClick:jest.fn(),onClose:jest.fn(),className:"catsarethebest"};describe("Promo card",function(){beforeEach(function(){render(/*#__PURE__*/_jsx(PromoCard,_objectSpread({},a)))}),it("renders the title",function(){expect(screen.getByText("Title")).toBeInTheDocument()}),it("renders the description",function(){expect(screen.getByText("Description")).toBeInTheDocument()}),it("renders an image",function(){expect(screen.getByRole("img")).toBeInTheDocument()}),it("renders the key feature",function(){expect(screen.getByText("Free")).toBeInTheDocument()}),it("is not disabled",function(){expect(screen.getByTestId("promo-card")).toBeEnabled()}),it("passes through custom classes if set",function(){expect(screen.getByTestId("promo-card")).toHaveClass("catsarethebest")})}),describe("onClick",function(){it("calls onClick when clicked",function(){var b=jest.fn();render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{onClick:b}))),userEvent.click(screen.getByTestId("promo-card")),expect(b).toHaveBeenCalledTimes(1)}),it("does not call onClick when clicked if disabled",function(){var b=jest.fn();render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{disabled:!0,onClick:b}))),userEvent.click(screen.getByTestId("promo-card")),expect(b).toHaveBeenCalledTimes(0)}),it("does call onClose when clicked",function(){var b=jest.fn();render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{onClose:b}))),userEvent.click(screen.getByRole("button")),expect(b).toHaveBeenCalledTimes(1)})}),describe("LINK variant",function(){it("renders the link icon",function(){render(/*#__PURE__*/_jsx(PromoCard,_objectSpread({},a))),expect(screen.getByTestId("slate-link")).toBeInTheDocument()}),it("renders the close button",function(){render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{onClose:jest.fn()})));var b=screen.getByRole("button");expect(b).toBeInTheDocument}),it("does not render the close button if onClose is not passed in",function(){render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{variant:Variant.LINK,onClose:void 0}))),expect(screen.queryByRole("button")).not.toBeInTheDocument()}),it("does not render onClose when disabled",function(){var b=jest.fn();render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{disabled:!0,onClose:b})));var c=screen.queryByRole("button");expect(c).not.toBeInTheDocument})}),describe("SELECT variant",function(){it("does not render the selected check mark when unselected",function(){render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{variant:Variant.SELECT,selected:!1})));var b=screen.queryByTestId("selected-check");expect(b).not.toBeInTheDocument}),it("renders the selected check mark when selected",function(){render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{variant:Variant.SELECT,selected:!0})));var b=screen.getByTestId("selected-check");expect(b).toBeInTheDocument})}),describe("Hovering over the card",function(){it("does not animate when animateHover is false",function(){render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{animateHover:!1}))),expect(screen.getByRole("img")).not.toHaveClass("animate-hover")}),it("does animate when animateHover is true",function(){render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{animateHover:!0}))),expect(screen.getByRole("img")).toHaveClass("animate-hover")})})});
@@ -0,0 +1,4 @@
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{useState}from"react";import PromoCard,{Variant}from"./PromoCard";import{jsx as _jsx}from"react/jsx-runtime";export default{component:PromoCard,title:"Layouts/PromoCard"};export var Default=function(){var a=useState(0),b=_slicedToArray(a,2),c=b[0],d=b[1],e=/*#__PURE__*/_jsx(PromoCard,{id:"1",title:"DIGITAL Venue alert",selected:1===c,variant:Variant.LINK,description:"A card that lives online and works anywhere. Easy, secure.",imageSource:// eslint-disable-next-line compat/compat
2
+ new URL("https://wise.com/web-art/assets/illustrations/digital-card-2-medium@1x.webp"),animateHover:!0,disabled:!0,onClick:function onClick(){d(1===c?0:1)}}),f=/*#__PURE__*/_jsx(PromoCard,{id:"2",title:"DIGITAL",selected:2===c,variant:Variant.SELECT,description:"A card that lives online and works anywhere.",keyFeature:"7 GBP"// eslint-disable-next-line compat/compat
3
+ ,imageSource:new URL("https://wise.com/web-art/assets/illustrations/bell-medium@1x.webp"),animateHover:!0,onClick:function onClick(){d(2===c?0:2)}}),g=/*#__PURE__*/_jsx(PromoCard,{id:"3",title:"DIGITAL Venue",selected:3===c,variant:Variant.LINK,description:"A card that lives online and works anywhere. Easy, secure, and always on hand.",keyFeature:"7 GBP"// eslint-disable-next-line compat/compat
4
+ ,imageSource:new URL("https://wise.com/web-art/assets/illustrations/globe-medium@1x.webp"),animateHover:!0,onClick:function onClick(){console.log("navigate to url")},onClose:function onClose(){console.log("close")}});return/*#__PURE__*/_jsx("div",{style:{display:"flex",justifyContent:"stretch",gap:"var(--size-24)",maxWidth:"1400px"},children:[e,f,g]})};
@@ -0,0 +1 @@
1
+ import classNames from"classnames";import{jsx as _jsx}from"react/jsx-runtime";var Slate=function(a){var b=a.id,c=a.className,d=a.children;return/*#__PURE__*/_jsx("div",{className:classNames("wds-slate",c),id:b,children:d})};export default Slate;
@@ -0,0 +1 @@
1
+ export{default}from"./PromoCard";
@@ -2,7 +2,7 @@
2
2
  * Types
3
3
  */ /**
4
4
  * Components
5
- */export{default as Title}from"./title";export{default as Body}from"./body";export{default as Accordion}from"./accordion";export{default as ActionButton}from"./actionButton";export{default as ActionOption}from"./actionOption";export{default as Alert}from"./alert";export{default as Avatar}from"./avatar";export{default as AvatarWrapper}from"./avatarWrapper";export{default as Badge}from"./badge";export{default as BottomSheet}from"./common/bottomSheet";export{default as Button}from"./button";export{default as Card}from"./card";export{default as Checkbox}from"./checkbox";export{default as CheckboxButton}from"./checkboxButton";export{default as CheckboxOption}from"./checkboxOption";export{default as Chevron}from"./chevron";export{default as Chips,Chip}from"./chips";export{default as CircularButton}from"./circularButton";export{default as DateInput}from"./dateInput";export{default as DateLookup}from"./dateLookup";export{default as Decision}from"./decision";export{default as DefinitionList}from"./definitionList";export{default as Dimmer}from"./dimmer";export{default as Display}from"./display";export{default as Drawer}from"./drawer";export{default as DropFade}from"./dropFade";export{default as DynamicFieldDefinitionList}from"./dynamicFieldDefinitionList";export{default as Emphasis}from"./emphasis";export{default as FlowNavigation}from"./flowNavigation/FlowNavigation";export{default as Header}from"./header";export{default as Image}from"./image";export{default as Info}from"./info";export{default as InlineAlert}from"./inlineAlert";export{Input}from"./inputs/Input";export{TextArea}from"./inputs/TextArea";export{default as InputWithDisplayFormat}from"./inputWithDisplayFormat";export{default as InstructionsList}from"./instructionsList";export{default as Link}from"./link";export{default as Loader}from"./loader";export{default as Logo}from"./logo";export{default as Markdown}from"./markdown";export{default as Modal}from"./modal";export{default as Money}from"./money";export{default as MoneyInput}from"./moneyInput";export{default as NavigationOption}from"./navigationOption";export{default as NavigationOptionsList}from"./navigationOptionsList";export{default as Nudge}from"./nudge";export{default as Option}from"./common/Option";export{default as OverlayHeader}from"./overlayHeader";export{default as PhoneNumberInput}from"./phoneNumberInput";export{default as Popover}from"./popover";export{default as ProcessIndicator}from"./processIndicator";export{default as ProgressBar}from"./progressBar";export{default as Progress}from"./progress";export{default as Provider,DirectionProvider,LanguageProvider}from"./provider";export{default as Radio}from"./radio";export{default as RadioGroup}from"./radioGroup";export{default as RadioOption}from"./radioOption";export{default as Section}from"./section";export{default as Select}from"./select";export{default as SlidingPanel}from"./slidingPanel";export{default as SnackbarPortal}from"./snackbar/Snackbar";export{default as SnackbarProvider}from"./snackbar/SnackbarProvider";export{default as StatusIcon}from"./statusIcon/StatusIcon";export{default as Stepper}from"./stepper/Stepper";export{default as Sticky}from"./sticky";export{default as Summary}from"./summary";export{default as Switch}from"./switch";export{default as SwitchOption}from"./switchOption";export{default as Tabs}from"./tabs";export{default as TextareaWithDisplayFormat}from"./textareaWithDisplayFormat";export{default as Tooltip}from"./tooltip";export{default as Typeahead}from"./typeahead";export{default as Upload}from"./upload";export{default as UploadInput}from"./uploadInput";export{SnackbarConsumer,SnackbarContext}from"./snackbar/SnackbarContext";export{default as CriticalCommsBanner}from"./criticalBanner";export{default as ListItem}from"./listItem";/**
5
+ */export{default as Title}from"./title";export{default as Body}from"./body";export{default as Accordion}from"./accordion";export{default as ActionButton}from"./actionButton";export{default as ActionOption}from"./actionOption";export{default as Alert}from"./alert";export{default as Avatar}from"./avatar";export{default as AvatarWrapper}from"./avatarWrapper";export{default as Badge}from"./badge";export{default as BottomSheet}from"./common/bottomSheet";export{default as Button}from"./button";export{default as Card}from"./card";export{default as Checkbox}from"./checkbox";export{default as CheckboxButton}from"./checkboxButton";export{default as CheckboxOption}from"./checkboxOption";export{default as Chevron}from"./chevron";export{default as Chips,Chip}from"./chips";export{default as CircularButton}from"./circularButton";export{default as DateInput}from"./dateInput";export{default as DateLookup}from"./dateLookup";export{default as Decision}from"./decision";export{default as DefinitionList}from"./definitionList";export{default as Dimmer}from"./dimmer";export{default as Display}from"./display";export{default as Drawer}from"./drawer";export{default as DropFade}from"./dropFade";export{default as DynamicFieldDefinitionList}from"./dynamicFieldDefinitionList";export{default as Emphasis}from"./emphasis";export{default as FlowNavigation}from"./flowNavigation/FlowNavigation";export{default as Header}from"./header";export{default as Image}from"./image";export{default as Info}from"./info";export{default as InlineAlert}from"./inlineAlert";export{Input}from"./inputs/Input";export{TextArea}from"./inputs/TextArea";export{default as InputWithDisplayFormat}from"./inputWithDisplayFormat";export{default as InstructionsList}from"./instructionsList";export{default as Link}from"./link";export{default as Loader}from"./loader";export{default as Logo}from"./logo";export{default as Markdown}from"./markdown";export{default as Modal}from"./modal";export{default as Money}from"./money";export{default as MoneyInput}from"./moneyInput";export{default as NavigationOption}from"./navigationOption";export{default as NavigationOptionsList}from"./navigationOptionsList";export{default as Nudge}from"./nudge";export{default as Option}from"./common/Option";export{default as OverlayHeader}from"./overlayHeader";export{default as PhoneNumberInput}from"./phoneNumberInput";export{default as Popover}from"./popover";export{default as ProcessIndicator}from"./processIndicator";export{default as ProgressBar}from"./progressBar";export{default as Progress}from"./progress";export{default as PromoCard}from"./promoCard";export{default as Provider,DirectionProvider,LanguageProvider}from"./provider";export{default as Radio}from"./radio";export{default as RadioGroup}from"./radioGroup";export{default as RadioOption}from"./radioOption";export{default as Section}from"./section";export{default as Select}from"./select";export{default as SlidingPanel}from"./slidingPanel";export{default as SnackbarPortal}from"./snackbar/Snackbar";export{default as SnackbarProvider}from"./snackbar/SnackbarProvider";export{default as StatusIcon}from"./statusIcon/StatusIcon";export{default as Stepper}from"./stepper/Stepper";export{default as Sticky}from"./sticky";export{default as Summary}from"./summary";export{default as Switch}from"./switch";export{default as SwitchOption}from"./switchOption";export{default as Tabs}from"./tabs";export{default as TextareaWithDisplayFormat}from"./textareaWithDisplayFormat";export{default as Tooltip}from"./tooltip";export{default as Typeahead}from"./typeahead";export{default as Upload}from"./upload";export{default as UploadInput}from"./uploadInput";export{SnackbarConsumer,SnackbarContext}from"./snackbar/SnackbarContext";export{default as CriticalCommsBanner}from"./criticalBanner";export{default as ListItem}from"./listItem";/**
6
6
  * Hooks
7
7
  */export{default as useSnackbar}from"./snackbar/useSnackbar";export{useDirection,useLayout}from"./common/hooks";/**
8
8
  * Enums
@@ -0,0 +1 @@
1
+ import"core-js/modules/es.symbol.js";import"core-js/modules/es.symbol.description.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.regexp.to-string.js";import{ArrowRight,Check}from"@transferwise/icons";import classNames from"classnames";import Body from"../body";import{Typography}from"../common";import{CloseButton}from"../common/closeButton";import Display from"../display";import{jsx as _jsx}from"react/jsx-runtime";import{jsxs as _jsxs}from"react/jsx-runtime";export var Variant=/*#__PURE__*/function(a){return a.SELECT="select",a.LINK="link",a}({});var PromoCard=function(a){var b=a.id,c=a.variant,d=void 0===c?Variant.LINK:c,e=a.title,f=a.description,g=a.imageSource,h=a.keyFeature,i=a.className,j=a.selected,k=a.onClick,l=a.onClose,m=a.animateHover,n=a.disabled;return/*#__PURE__*/_jsxs("div",{className:classNames(i,"wds-slate",j&&"selected",n&&"disabled"),id:b,"data-testid":"promo-card",onClick:function onClick(a){return n?void a.preventDefault():void(k&&k())},onKeyDown:function onKeyDown(a){"Enter"===a.key&&k&&k(),"Escape"===a.key&&l&&l()},children:[d===Variant.LINK&&l&&!n&&/*#__PURE__*/_jsx(CloseButton,{"data-testid":"close-button",className:"close-button",size:"md",onClick:l}),d===Variant.SELECT&&j&&/*#__PURE__*/_jsx("span",{"data-testid":"selected-check",className:classNames("status-circle","status-circle-md","selected-check"),children:/*#__PURE__*/_jsx(Check,{size:24})}),/*#__PURE__*/_jsxs("div",{className:"text",children:[/*#__PURE__*/_jsx(Display,{className:"title",type:Typography.DISPLAY_SMALL,children:e}),/*#__PURE__*/_jsxs("p",{style:{paddingTop:"10px"},children:[f," "]})]}),/*#__PURE__*/_jsx("img",{className:m?"animate-hover":"",src:null===g||void 0===g?void 0:g.toString(),alt:""}),/*#__PURE__*/_jsxs("div",{className:"slate-footer",children:[d===Variant.LINK&&/*#__PURE__*/_jsx("span",{"data-testid":"slate-link",className:classNames("status-circle","status-circle-md","slate-link"),children:/*#__PURE__*/_jsx(ArrowRight,{size:24})}),h&&/*#__PURE__*/_jsx("div",{className:"key-feature",children:/*#__PURE__*/_jsx(Body,{type:Typography.BODY_DEFAULT_BOLD,children:h})})]})]})};export default PromoCard;
@@ -0,0 +1 @@
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"core-js/modules/es.array.iterator.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.string.iterator.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/web.url.js";import"core-js/modules/web.url-search-params.js";import"core-js/modules/es.object.keys.js";import"core-js/modules/es.symbol.js";import"core-js/modules/es.array.filter.js";import"core-js/modules/es.object.get-own-property-descriptor.js";import"core-js/modules/web.dom-collections.for-each.js";import"core-js/modules/es.object.get-own-property-descriptors.js";/* eslint-disable @typescript-eslint/no-unused-expressions */ /* eslint-disable jest/unbound-method */import"@testing-library/jest-dom";import{render,screen,userEvent}from"../test-utils";import PromoCard,{Variant}from"./PromoCard";import{jsx as _jsx}from"react/jsx-runtime";describe("PromoCard",function(){var a={variant:Variant.LINK,title:"Title",description:"Description",imageSource:new URL("https://wise.com/web-art/assets/illustrations/digital-card-2-medium@1x.webp"),keyFeature:"Free",animateHover:!1,disabled:!1,onClick:jest.fn(),onClose:jest.fn(),className:"catsarethebest"};describe("Promo card",function(){beforeEach(function(){render(/*#__PURE__*/_jsx(PromoCard,_objectSpread({},a)))}),it("renders the title",function(){expect(screen.getByText("Title")).toBeInTheDocument()}),it("renders the description",function(){expect(screen.getByText("Description")).toBeInTheDocument()}),it("renders an image",function(){expect(screen.getByRole("img")).toBeInTheDocument()}),it("renders the key feature",function(){expect(screen.getByText("Free")).toBeInTheDocument()}),it("is not disabled",function(){expect(screen.getByTestId("promo-card")).toBeEnabled()}),it("passes through custom classes if set",function(){expect(screen.getByTestId("promo-card")).toHaveClass("catsarethebest")})}),describe("onClick",function(){it("calls onClick when clicked",function(){var b=jest.fn();render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{onClick:b}))),userEvent.click(screen.getByTestId("promo-card")),expect(b).toHaveBeenCalledTimes(1)}),it("does not call onClick when clicked if disabled",function(){var b=jest.fn();render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{disabled:!0,onClick:b}))),userEvent.click(screen.getByTestId("promo-card")),expect(b).toHaveBeenCalledTimes(0)}),it("does call onClose when clicked",function(){var b=jest.fn();render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{onClose:b}))),userEvent.click(screen.getByRole("button")),expect(b).toHaveBeenCalledTimes(1)})}),describe("LINK variant",function(){it("renders the link icon",function(){render(/*#__PURE__*/_jsx(PromoCard,_objectSpread({},a))),expect(screen.getByTestId("slate-link")).toBeInTheDocument()}),it("renders the close button",function(){render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{onClose:jest.fn()})));var b=screen.getByRole("button");expect(b).toBeInTheDocument}),it("does not render the close button if onClose is not passed in",function(){render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{variant:Variant.LINK,onClose:void 0}))),expect(screen.queryByRole("button")).not.toBeInTheDocument()}),it("does not render onClose when disabled",function(){var b=jest.fn();render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{disabled:!0,onClose:b})));var c=screen.queryByRole("button");expect(c).not.toBeInTheDocument})}),describe("SELECT variant",function(){it("does not render the selected check mark when unselected",function(){render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{variant:Variant.SELECT,selected:!1})));var b=screen.queryByTestId("selected-check");expect(b).not.toBeInTheDocument}),it("renders the selected check mark when selected",function(){render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{variant:Variant.SELECT,selected:!0})));var b=screen.getByTestId("selected-check");expect(b).toBeInTheDocument})}),describe("Hovering over the card",function(){it("does not animate when animateHover is false",function(){render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{animateHover:!1}))),expect(screen.getByRole("img")).not.toHaveClass("animate-hover")}),it("does animate when animateHover is true",function(){render(/*#__PURE__*/_jsx(PromoCard,_objectSpread(_objectSpread({},a),{},{animateHover:!0}))),expect(screen.getByRole("img")).toHaveClass("animate-hover")})})});
@@ -0,0 +1,4 @@
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import"core-js/modules/es.array.iterator.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.string.iterator.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/web.url.js";import"core-js/modules/web.url-search-params.js";import{useState}from"react";import PromoCard,{Variant}from"./PromoCard";import{jsx as _jsx}from"react/jsx-runtime";export default{component:PromoCard,title:"Layouts/PromoCard"};export var Default=function(){var a=useState(0),b=_slicedToArray(a,2),c=b[0],d=b[1],e=/*#__PURE__*/_jsx(PromoCard,{id:"1",title:"DIGITAL Venue alert",selected:1===c,variant:Variant.LINK,description:"A card that lives online and works anywhere. Easy, secure.",imageSource:// eslint-disable-next-line compat/compat
2
+ new URL("https://wise.com/web-art/assets/illustrations/digital-card-2-medium@1x.webp"),animateHover:!0,disabled:!0,onClick:function onClick(){d(1===c?0:1)}}),f=/*#__PURE__*/_jsx(PromoCard,{id:"2",title:"DIGITAL",selected:2===c,variant:Variant.SELECT,description:"A card that lives online and works anywhere.",keyFeature:"7 GBP"// eslint-disable-next-line compat/compat
3
+ ,imageSource:new URL("https://wise.com/web-art/assets/illustrations/bell-medium@1x.webp"),animateHover:!0,onClick:function onClick(){d(2===c?0:2)}}),g=/*#__PURE__*/_jsx(PromoCard,{id:"3",title:"DIGITAL Venue",selected:3===c,variant:Variant.LINK,description:"A card that lives online and works anywhere. Easy, secure, and always on hand.",keyFeature:"7 GBP"// eslint-disable-next-line compat/compat
4
+ ,imageSource:new URL("https://wise.com/web-art/assets/illustrations/globe-medium@1x.webp"),animateHover:!0,onClick:function onClick(){console.log("navigate to url")},onClose:function onClose(){console.log("close")}});return/*#__PURE__*/_jsx("div",{style:{display:"flex",justifyContent:"stretch",gap:"var(--size-24)",maxWidth:"1400px"},children:[e,f,g]})};
@@ -0,0 +1 @@
1
+ import classNames from"classnames";import{jsx as _jsx}from"react/jsx-runtime";var Slate=function(a){var b=a.id,c=a.className,d=a.children;return/*#__PURE__*/_jsx("div",{className:classNames("wds-slate",c),id:b,children:d})};export default Slate;
@@ -0,0 +1 @@
1
+ export{default}from"./PromoCard";