@transferwise/components 0.0.0-experimental-6f38fd8 → 0.0.0-experimental-37df6fe

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/build/flowNavigation/animatedLabel/AnimatedLabel.js +1 -1
  2. package/build/flowNavigation/animatedLabel/AnimatedLabel.js.map +1 -1
  3. package/build/flowNavigation/animatedLabel/AnimatedLabel.mjs +1 -1
  4. package/build/flowNavigation/animatedLabel/AnimatedLabel.mjs.map +1 -1
  5. package/build/index.js +4 -3
  6. package/build/index.js.map +1 -1
  7. package/build/index.mjs +3 -3
  8. package/build/listItem/List.js.map +1 -0
  9. package/build/listItem/List.mjs.map +1 -0
  10. package/build/{legacylistItem/LegacyListItem.js → listItem/ListItem.js} +3 -3
  11. package/build/listItem/ListItem.js.map +1 -0
  12. package/build/{legacylistItem/LegacyListItem.mjs → listItem/ListItem.mjs} +3 -3
  13. package/build/listItem/ListItem.mjs.map +1 -0
  14. package/build/main.css +185 -3
  15. package/build/phoneNumberInput/PhoneNumberInput.js +1 -1
  16. package/build/phoneNumberInput/PhoneNumberInput.js.map +1 -1
  17. package/build/phoneNumberInput/PhoneNumberInput.mjs +1 -1
  18. package/build/phoneNumberInput/PhoneNumberInput.mjs.map +1 -1
  19. package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.js +2 -2
  20. package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.js.map +1 -1
  21. package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.mjs +2 -2
  22. package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.mjs.map +1 -1
  23. package/build/styles/item/Item.css +185 -0
  24. package/build/styles/main.css +185 -3
  25. package/build/styles/switch/Switch.css +0 -3
  26. package/build/test-utils/assets/apple-pay-logo.svg +84 -0
  27. package/build/types/index.d.ts +4 -2
  28. package/build/types/index.d.ts.map +1 -1
  29. package/build/types/item/Item.d.ts +43 -0
  30. package/build/types/item/Item.d.ts.map +1 -0
  31. package/build/types/item/ItemAdditionalInfo.d.ts +9 -0
  32. package/build/types/item/ItemAdditionalInfo.d.ts.map +1 -0
  33. package/build/types/item/ItemButton.d.ts +4 -0
  34. package/build/types/item/ItemButton.d.ts.map +1 -0
  35. package/build/types/item/ItemCheckbox.d.ts +4 -0
  36. package/build/types/item/ItemCheckbox.d.ts.map +1 -0
  37. package/build/types/item/ItemIconButton.d.ts +7 -0
  38. package/build/types/item/ItemIconButton.d.ts.map +1 -0
  39. package/build/types/item/ItemMedia.d.ts +19 -0
  40. package/build/types/item/ItemMedia.d.ts.map +1 -0
  41. package/build/types/item/ItemNavigation.d.ts +4 -0
  42. package/build/types/item/ItemNavigation.d.ts.map +1 -0
  43. package/build/types/item/ItemSwitch.d.ts +3 -0
  44. package/build/types/item/ItemSwitch.d.ts.map +1 -0
  45. package/build/types/item/index.d.ts +6 -0
  46. package/build/types/item/index.d.ts.map +1 -0
  47. package/build/types/item/prompt/Prompt.d.ts +12 -0
  48. package/build/types/item/prompt/Prompt.d.ts.map +1 -0
  49. package/build/types/item/useItemControl.d.ts +5 -0
  50. package/build/types/item/useItemControl.d.ts.map +1 -0
  51. package/build/types/listItem/List.d.ts.map +1 -0
  52. package/build/types/{legacylistItem/LegacyListItem.d.ts → listItem/ListItem.d.ts} +4 -4
  53. package/build/types/listItem/ListItem.d.ts.map +1 -0
  54. package/build/types/listItem/index.d.ts +5 -0
  55. package/build/types/listItem/index.d.ts.map +1 -0
  56. package/build/types/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.d.ts +2 -2
  57. package/build/types/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.d.ts.map +1 -1
  58. package/build/types/test-utils/fake-data.d.ts +2 -0
  59. package/build/types/test-utils/fake-data.d.ts.map +1 -1
  60. package/package.json +3 -3
  61. package/src/flowNavigation/animatedLabel/AnimatedLabel.tsx +1 -1
  62. package/src/index.ts +4 -2
  63. package/src/item/Item.css +185 -0
  64. package/src/item/Item.less +178 -0
  65. package/src/item/Item.story.tsx +188 -0
  66. package/src/item/Item.tsx +174 -0
  67. package/src/item/ItemAdditionalInfo.tsx +31 -0
  68. package/src/item/ItemButton.spec.tsx +90 -0
  69. package/src/item/ItemButton.tsx +18 -0
  70. package/src/item/ItemCheckbox.tsx +11 -0
  71. package/src/item/ItemIconButton.tsx +13 -0
  72. package/src/item/ItemMedia.tsx +52 -0
  73. package/src/item/ItemNavigation.tsx +11 -0
  74. package/src/item/ItemSwitch.tsx +8 -0
  75. package/src/item/index.ts +6 -0
  76. package/src/item/prompt/Prompt.spec.tsx +77 -0
  77. package/src/item/prompt/Prompt.story.tsx +170 -0
  78. package/src/item/prompt/Prompt.tsx +44 -0
  79. package/src/item/useItemControl.tsx +12 -0
  80. package/src/{legacylistItem/LegacyListItem.tests.story.tsx → listItem/ListItem.tests.story.tsx} +2 -2
  81. package/src/{legacylistItem/LegacyListItem.tsx → listItem/ListItem.tsx} +3 -3
  82. package/src/listItem/index.ts +4 -0
  83. package/src/main.css +185 -3
  84. package/src/main.less +2 -1
  85. package/src/phoneNumberInput/PhoneNumberInput.spec.tsx +4 -4
  86. package/src/phoneNumberInput/PhoneNumberInput.story.tsx +0 -22
  87. package/src/phoneNumberInput/PhoneNumberInput.tsx +1 -1
  88. package/src/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.ts +3 -4
  89. package/src/switch/Switch.css +0 -3
  90. package/src/switch/Switch.less +0 -1
  91. package/src/test-utils/assets/apple-pay-logo.svg +84 -0
  92. package/src/test-utils/fake-data.ts +5 -0
  93. package/build/legacylistItem/LegacyListItem.js.map +0 -1
  94. package/build/legacylistItem/LegacyListItem.mjs.map +0 -1
  95. package/build/legacylistItem/List.js.map +0 -1
  96. package/build/legacylistItem/List.mjs.map +0 -1
  97. package/build/types/legacylistItem/LegacyListItem.d.ts.map +0 -1
  98. package/build/types/legacylistItem/List.d.ts.map +0 -1
  99. package/build/types/legacylistItem/index.d.ts +0 -5
  100. package/build/types/legacylistItem/index.d.ts.map +0 -1
  101. package/src/legacylistItem/index.ts +0 -4
  102. /package/build/{legacylistItem → listItem}/List.js +0 -0
  103. /package/build/{legacylistItem → listItem}/List.mjs +0 -0
  104. /package/build/styles/{legacylistItem/LegacyListItem.css → listItem/ListItem.css} +0 -0
  105. /package/build/types/{legacylistItem → listItem}/List.d.ts +0 -0
  106. /package/src/{legacylistItem → listItem}/List.tsx +0 -0
  107. /package/src/{legacylistItem/LegacyListItem.css → listItem/ListItem.css} +0 -0
  108. /package/src/{legacylistItem/LegacyListItem.less → listItem/ListItem.less} +0 -0
  109. /package/src/{legacylistItem/LegacyListItem.spec.tsx → listItem/ListItem.spec.tsx} +0 -0
  110. /package/src/{legacylistItem/LegacyListItem.story.tsx → listItem/ListItem.story.tsx} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ItemCheckbox.d.ts","sourceRoot":"","sources":["../../../src/item/ItemCheckbox.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvE,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,eAAe,GAAG,UAAU,CAAC,CAAC;AAEpG,eAAO,MAAM,QAAQ,UAAoB,iBAAiB,gCAIzD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { IconButtonProps } from '../iconButton';
2
+ import { ReactNode } from 'react';
3
+ export type ItemIconButtonProps = Pick<IconButtonProps, 'onClick' | 'href' | 'target'> & {
4
+ children: ReactNode;
5
+ };
6
+ export declare const IconButton: (props: ItemIconButtonProps) => import("react").JSX.Element;
7
+ //# sourceMappingURL=ItemIconButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ItemIconButton.d.ts","sourceRoot":"","sources":["../../../src/item/ItemIconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,eAAe,EAAE,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG;IACvF,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,UAAU,UAAoB,mBAAmB,gCAI7D,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { AvatarViewProps } from '../avatarView';
2
+ import { AvatarLayoutProps } from '../avatarLayout';
3
+ import { ImageProps } from '../image/Image';
4
+ type SizeProp = {
5
+ size?: 32 | 40 | 48 | 56 | 72;
6
+ };
7
+ export type ItemAvatarViewProps = Omit<AvatarViewProps, 'size' | 'interactive'> & SizeProp;
8
+ export declare const AvatarView: ({ className, size, ...props }: ItemAvatarViewProps) => import("react").JSX.Element;
9
+ export type ItemAvatarLayoutProps = Omit<AvatarLayoutProps, 'size' | 'interactive'> & SizeProp;
10
+ export declare const AvatarLayout: ({ className, size, ...props }: ItemAvatarLayoutProps) => import("react").JSX.Element;
11
+ export type ItemImageProps = Omit<ImageProps, 'stretch' | 'shrink' | 'id' | 'alt'> & SizeProp & {
12
+ alt?: string;
13
+ };
14
+ /**
15
+ * TODO: mention that image is for rare cases not for DS illustrations, they discouraged
16
+ */
17
+ export declare const Image: ({ alt, size, ...props }: ItemImageProps) => import("react").JSX.Element;
18
+ export {};
19
+ //# sourceMappingURL=ItemMedia.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ItemMedia.d.ts","sourceRoot":"","sources":["../../../src/item/ItemMedia.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,eAAe,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAA+B,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAwB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGlE,KAAK,QAAQ,GAAG;IAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;CAAE,CAAC;AAElD,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,aAAa,CAAC,GAAG,QAAQ,CAAC;AAE3F,eAAO,MAAM,UAAU,kCAAwC,mBAAmB,gCAQjF,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,aAAa,CAAC,GAAG,QAAQ,CAAC;AAE/F,eAAO,MAAM,YAAY,kCAAwC,qBAAqB,gCAQrF,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC,GAChF,QAAQ,GAAG;IACT,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,KAAK,4BAAuC,cAAc,gCAYtE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ButtonProps } from '../button/Button.types';
2
+ export type ItemNavigationProps = Pick<ButtonProps, 'onClick' | 'href'>;
3
+ export declare const Navigation: ({ onClick }: ItemNavigationProps) => import("react").JSX.Element;
4
+ //# sourceMappingURL=ItemNavigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ItemNavigation.d.ts","sourceRoot":"","sources":["../../../src/item/ItemNavigation.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC,CAAC;AAExE,eAAO,MAAM,UAAU,gBAAoC,mBAAmB,gCAI7E,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { SwitchProps } from '../switch';
2
+ export declare const Switch: (props: SwitchProps) => import("react").JSX.Element;
3
+ //# sourceMappingURL=ItemSwitch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ItemSwitch.d.ts","sourceRoot":"","sources":["../../../src/item/ItemSwitch.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAyB,WAAW,EAAE,MAAM,WAAW,CAAC;AAG/D,eAAO,MAAM,MAAM,UAAoB,WAAW,gCAIjD,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type { Props as ItemProps } from './Item';
2
+ export type { ItemAdditionalInfoProps } from './ItemAdditionalInfo';
3
+ export type { ItemCheckboxProps } from './ItemCheckbox';
4
+ export type { ItemImageProps, ItemAvatarViewProps, ItemAvatarLayoutProps } from './ItemMedia';
5
+ export { default } from './Item';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/item/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAC;AACjD,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE9F,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Sentiment } from '../../common';
2
+ import { LinkProps } from '../../link';
3
+ export type ItemPromptProps = {
4
+ type: `${Sentiment.POSITIVE | Sentiment.NEGATIVE | Sentiment.NEUTRAL | Sentiment.WARNING}` | 'discount' | 'savings';
5
+ children: React.ReactNode;
6
+ action?: Pick<LinkProps, 'href' | 'target' | 'onClick'> & {
7
+ 'aria-label'?: string;
8
+ };
9
+ };
10
+ export declare const ItemPrompt: ({ type, children, action }: ItemPromptProps) => import("react").JSX.Element;
11
+ export default ItemPrompt;
12
+ //# sourceMappingURL=Prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Prompt.d.ts","sourceRoot":"","sources":["../../../../src/item/prompt/Prompt.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EACA,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,GACpF,UAAU,GACV,SAAS,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrF,CAAC;AAEF,eAAO,MAAM,UAAU,+BAAgC,eAAe,gCAyBrE,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ItemTypes } from './Item';
2
+ export declare function useItemControl(controlType: ItemTypes): {
3
+ baseItemProps: Pick<import("./Item").Props, "as" | "disabled" | "inverted">;
4
+ };
5
+ //# sourceMappingURL=useItemControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useItemControl.d.ts","sourceRoot":"","sources":["../../../src/item/useItemControl.tsx"],"names":[],"mappings":"AACA,OAAO,EAAgC,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEjE,wBAAgB,cAAc,CAAC,WAAW,EAAE,SAAS;;EAQpD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/listItem/List.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,wBAAgB,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,SAAS,+BAEtD"}
@@ -1,5 +1,5 @@
1
1
  import { ElementType, FC, ReactNode } from 'react';
2
- export type LegacyListItemProps = {
2
+ export type ListItemProps = {
3
3
  title: ReactNode;
4
4
  value: ReactNode;
5
5
  media?: ReactNode;
@@ -8,6 +8,6 @@ export type LegacyListItemProps = {
8
8
  isContainerAligned?: boolean;
9
9
  as?: ElementType;
10
10
  };
11
- declare const LegacyListItem: FC<LegacyListItemProps>;
12
- export default LegacyListItem;
13
- //# sourceMappingURL=LegacyListItem.d.ts.map
11
+ declare const ListItem: FC<ListItemProps>;
12
+ export default ListItem;
13
+ //# sourceMappingURL=ListItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListItem.d.ts","sourceRoot":"","sources":["../../../src/listItem/ListItem.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAInD,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,EAAE,CAAC,EAAE,WAAW,CAAC;CAClB,CAAC;AAEF,QAAA,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CAmC/B,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { List } from './List';
2
+ export type { ListProps } from './List';
3
+ export { default } from './ListItem';
4
+ export type { ListItemProps } from './ListItem';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/listItem/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  *
3
3
  * @param phoneNumber
4
- * @returns True if number that starts with "+" and contains a mix of digits and spaces with a configurable min length that defaults to 4.
4
+ * @returns True if number that starts with "+" and contains a mix of digits and spaces with at least 4 digits.
5
5
  */
6
- export declare const isValidPhoneNumber: (phoneNumber: string, minLength?: number) => boolean;
6
+ export declare const isValidPhoneNumber: (phoneNumber: string) => boolean;
7
7
  //# sourceMappingURL=isValidPhoneNumber.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isValidPhoneNumber.d.ts","sourceRoot":"","sources":["../../../../../src/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,gBAAiB,MAAM,gCAEU,CAAC"}
1
+ {"version":3,"file":"isValidPhoneNumber.d.ts","sourceRoot":"","sources":["../../../../../src/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,gBAAiB,MAAM,YACsC,CAAC"}
@@ -1,4 +1,6 @@
1
+ export declare const lorem5 = "Lorem ipsum dolor sit amet.";
1
2
  export declare const lorem10 = "Lorem ipsum, dolor sit amet consectetur adipisicing elit. Iste, architecto?";
3
+ export declare const lorem20 = "Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum non explicabo doloribus rerum saepe ut beatae adipisci rem vero optio.";
2
4
  export declare const lorem40 = "Lorem ipsum dolor sit amet consectetur, adipisicing elit. Illo esse quod et iure deserunt facilis similique voluptatem reprehenderit mollitia inventore, ab voluptate dignissimos autem repellat accusamus perferendis sed pariatur tempore possimus ipsam praesentium ipsum? Nesciunt cumque repellendus impedit aliquam! Error?";
3
5
  export declare const lorem100 = "Lorem ipsum dolor, sit amet consectetur adipisicing elit. Ipsum quisquam fuga dolore veritatis assumenda rerum, non, sint aliquam, excepturi architecto temporibus quis? Quo, deleniti nobis, illo necessitatibus accusamus commodi error fuga culpa sequi, incidunt voluptatum tempore quisquam quos eos modi impedit sit! Eveniet libero optio assumenda rem accusantium quod quas, recusandae, incidunt mollitia harum dolorum. Dolor porro hic mollitia accusantium vel commodi, ipsam a suscipit iusto placeat numquam excepturi amet nostrum aliquid aperiam sequi deleniti asperiores fugit cumque ipsa voluptatem culpa non libero iste. Placeat rem dolore quisquam aperiam, eligendi facere quos minima totam a ut corporis culpa! Veniam, illo!";
4
6
  export declare const lorem500 = "Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi commodi eos placeat aut quidem et error ex qui. Reprehenderit animi officiis magnam dicta, alias eligendi facilis sit fuga suscipit qui voluptatibus, quam harum beatae omnis sint sapiente dolorum cum officia dignissimos ab ipsa, deleniti voluptates exercitationem tempore! Fugit consequuntur ullam, similique tenetur corporis laborum sed sint, necessitatibus natus voluptatem, eius eveniet placeat quos quaerat officia officiis magni reprehenderit eaque! Dolorum odio iste vitae magnam, voluptatum pariatur unde, quod at adipisci reprehenderit dignissimos id modi quaerat rerum et dolorem. Rerum ratione beatae, repudiandae temporibus ipsam accusamus deserunt! Maiores, eos nisi laboriosam soluta rem minus expedita repudiandae accusamus aperiam rerum facere ducimus voluptas! Rerum fugit eum quasi. At sapiente quaerat, similique inventore quia magni cupiditate molestias odio voluptate quasi culpa ullam sit unde veritatis ut dicta ad nihil veniam accusamus eveniet vel placeat minus numquam nostrum! Delectus quas adipisci debitis cumque doloremque, nobis, obcaecati dolorem commodi possimus nesciunt vero? Excepturi saepe explicabo dolorem facere itaque optio, totam tempore earum culpa fugit ullam officia maiores dolores facilis voluptate consequuntur a voluptas, asperiores obcaecati voluptatem. Rerum suscipit quod nulla harum illum sequi praesentium tenetur neque architecto, molestias earum! Necessitatibus, ullam molestiae voluptas, esse dolorem officiis aut, inventore dolore provident beatae error nesciunt incidunt neque quam molestias iusto minus rem nam. Eum, provident id. Molestias vitae ex sequi veritatis totam minima labore quasi eligendi nemo, ipsa accusamus eaque quae maiores eum ipsam inventore illo voluptatem sapiente velit, quos aspernatur commodi quibusdam. A expedita, adipisci aut voluptatum repellat fugit saepe accusamus debitis, quis dolorem, incidunt corrupti magni? Inventore nulla fugit quisquam dolorum temporibus corporis error voluptates? Impedit possimus provident a vero exercitationem doloribus est voluptatibus distinctio, ipsum iste sit repellat sapiente tenetur deleniti ullam dolorem soluta accusantium! Ab, placeat rerum explicabo corporis impedit quam quos veritatis expedita hic veniam harum qui dolor neque! Laboriosam officiis, dignissimos corporis, ducimus iure nemo quisquam pariatur molestias repellat aliquam tempore impedit dolore tempora eaque accusamus fugiat facilis dolor sint laborum molestiae sapiente deserunt quasi obcaecati! Veniam, doloribus! Unde, fugiat odit sunt facere maiores nobis tempora, natus quam consectetur deleniti nesciunt perferendis aut praesentium. Libero, neque cumque beatae recusandae qui repudiandae sunt quod dolorum nemo voluptates et culpa temporibus perferendis est expedita vel laboriosam! Accusamus incidunt consectetur delectus voluptate sunt repudiandae deleniti ut consequuntur, facilis assumenda nostrum soluta unde repellat reiciendis ipsum quidem quam numquam optio voluptates eius. Molestias quibusdam assumenda earum atque ullam delectus explicabo recusandae quasi aperiam, est placeat? Officia molestiae accusamus rem placeat adipisci officiis harum vel. Neque sit qui alias magni illum! Ipsam, necessitatibus unde sit possimus ipsum quis neque voluptate reprehenderit tempore nobis quo sunt molestiae atque rerum similique natus minus eum? Maiores aspernatur ut ullam eos vitae aperiam odit deleniti eveniet delectus totam harum iste, blanditiis ab laboriosam mollitia. Esse incidunt odit voluptate minus cum molestiae reprehenderit minima voluptatibus id. Molestias aliquid repellendus dolores cupiditate, nemo reiciendis ad facilis quo est, a error culpa similique libero dolor labore! Facere laborum cupiditate iste laboriosam culpa consectetur.";
@@ -1 +1 @@
1
- {"version":3,"file":"fake-data.d.ts","sourceRoot":"","sources":["../../../src/test-utils/fake-data.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,gFAC2D,CAAC;AAEhF,eAAO,MAAM,OAAO,sUACiT,CAAC;AAEtU,eAAO,MAAM,QAAQ,+tBACysB,CAAC;AAE/tB,eAAO,MAAM,QAAQ,2uHACqtH,CAAC;AAE3uH,eAAO,MAAM,SAAS,28OACo7O,CAAC"}
1
+ {"version":3,"file":"fake-data.d.ts","sourceRoot":"","sources":["../../../src/test-utils/fake-data.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,gCAAgC,CAAC;AAEpD,eAAO,MAAM,OAAO,gFAC2D,CAAC;AAEhF,eAAO,MAAM,OAAO,4IACuH,CAAC;AAE5I,eAAO,MAAM,OAAO,sUACiT,CAAC;AAEtU,eAAO,MAAM,QAAQ,+tBACysB,CAAC;AAE/tB,eAAO,MAAM,QAAQ,2uHACqtH,CAAC;AAE3uH,eAAO,MAAM,SAAS,28OACo7O,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@transferwise/components",
3
- "version": "0.0.0-experimental-6f38fd8",
3
+ "version": "0.0.0-experimental-37df6fe",
4
4
  "description": "Neptune React components",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -95,13 +95,13 @@
95
95
  "rollup-preserve-directives": "^1.1.1",
96
96
  "storybook": "^8.2.2",
97
97
  "@transferwise/less-config": "3.1.1",
98
- "@transferwise/neptune-css": "14.24.4",
98
+ "@transferwise/neptune-css": "0.0.0-experimental-37df6fe",
99
99
  "@wise/components-theming": "1.6.2",
100
100
  "@wise/wds-configs": "0.0.0"
101
101
  },
102
102
  "peerDependencies": {
103
103
  "@transferwise/icons": "^3.21.0",
104
- "@transferwise/neptune-css": "^14.24",
104
+ "@transferwise/neptune-css": "0.0.0-experimental-37df6fe",
105
105
  "@wise/art": "^2.16",
106
106
  "@wise/components-theming": "^1.0.0",
107
107
  "react": ">=18",
@@ -6,7 +6,7 @@ import BottomSheet from '../../common/bottomSheet';
6
6
  import Option from '../../common/Option';
7
7
  import { Check, ChevronDown } from '@transferwise/icons';
8
8
  import { OverlayIdContext, OverlayIdProvider } from '../../provider/overlay/OverlayIdProvider';
9
- import { List } from '../../legacylistItem';
9
+ import { List } from '../../listItem';
10
10
 
11
11
  export interface AnimatedLabelProps {
12
12
  activeLabel: number;
package/src/index.ts CHANGED
@@ -51,7 +51,7 @@ export type {
51
51
  export type { TextAreaProps } from './inputs/TextArea';
52
52
  export type { InstructionsListProps } from './instructionsList';
53
53
  export type { LabelProps, LabelOptionalProps, LabelDescriptionProps } from './label/Label';
54
- export type { ListProps, LegacyListItemProps } from './legacylistItem';
54
+ export type { ListProps, ListItemProps } from './listItem';
55
55
  export type { LoaderProps } from './loader';
56
56
  export type { MarkdownProps } from './markdown';
57
57
  export type { ModalProps } from './modal';
@@ -109,6 +109,7 @@ export type {
109
109
  TableCellStatus,
110
110
  TableCellType,
111
111
  } from './table';
112
+ export type { ItemProps, ItemAdditionalInfoProps, ItemCheckboxProps } from './item';
112
113
 
113
114
  /**
114
115
  * Components
@@ -167,7 +168,7 @@ export { TextArea } from './inputs/TextArea';
167
168
  export { default as InstructionsList } from './instructionsList';
168
169
  export { Label } from './label/Label';
169
170
  export { default as Link } from './link';
170
- export { List, default as LegacyListItem } from './legacylistItem';
171
+ export { List, default as ListItem } from './listItem';
171
172
  export { default as Loader } from './loader';
172
173
  export { default as Logo } from './logo';
173
174
  export { default as Markdown } from './markdown';
@@ -211,6 +212,7 @@ export { default as Typeahead } from './typeahead';
211
212
  export { default as Upload } from './upload';
212
213
  export { default as UploadInput } from './uploadInput';
213
214
  export { default as Table } from './table';
215
+ export { default as Item } from './table';
214
216
 
215
217
  /**
216
218
  * Hooks
@@ -0,0 +1,185 @@
1
+ .np-item {
2
+ padding: 16px;
3
+ padding: var(--size-16);
4
+ border-radius: 24px;
5
+ border-radius: var(--radius-large);
6
+ background-color: #ffffff;
7
+ background-color: var(--color-background-screen);
8
+ gap: 16px;
9
+ gap: var(--size-16);
10
+ }
11
+ .np-item-interactive {
12
+ cursor: pointer;
13
+ }
14
+ .np-item-interactive:hover {
15
+ background-color: var(--color-background-screen-hover);
16
+ }
17
+ .np-item-interactive:active {
18
+ background-color: var(--color-background-screen-active);
19
+ }
20
+ .np-item-media-image {
21
+ width: var(--item-media-image-size);
22
+ height: var(--item-media-image-size);
23
+ }
24
+ .np-item-title {
25
+ color: #37517e;
26
+ color: var(--color-content-primary);
27
+ }
28
+ .np-item-additional-info {
29
+ color: #768e9c;
30
+ color: var(--color-content-tertiary);
31
+ }
32
+ .np-item-value {
33
+ flex: 0 0 auto;
34
+ }
35
+ .np-item-control {
36
+ flex: 0 0 auto;
37
+ }
38
+ .np-item-spotlight-active {
39
+ background-color: rgba(134,167,189,0.10196);
40
+ background-color: var(--color-background-neutral);
41
+ }
42
+ .np-item-spotlight-active:hover {
43
+ background-color: var(--color-background-neutral-hover);
44
+ }
45
+ .np-item-spotlight-active:active {
46
+ background-color: var(--color-background-neutral-active);
47
+ }
48
+ .np-item-spotlight-inactive {
49
+ background-color: rgba(134, 167, 189, 0.025);
50
+ border: 1px dashed rgba(0,0,0,0.10196);
51
+ border: 1px dashed var(--color-border-neutral);
52
+ }
53
+ @supports (color: color-mix(in lch, red, blue)) {
54
+ .np-item-spotlight-inactive {
55
+ background-color: color-mix(in srgb, var(--color-background-neutral) 25%, transparent);
56
+ }
57
+ }
58
+ .np-item-spotlight-inactive:hover {
59
+ background-color: color-mix(in srgb, var(--color-background-neutral-hover) 25%, transparent);
60
+ }
61
+ .np-item-spotlight-inactive:active {
62
+ background-color: color-mix(in srgb, var(--color-background-neutral-active) 25%, transparent);
63
+ }
64
+ .np-item-prompt {
65
+ display: inline-flex;
66
+ padding-top: calc(8px / 2);
67
+ padding-top: calc(var(--padding-x-small) / 2);
68
+ padding-bottom: calc(8px / 2);
69
+ padding-bottom: calc(var(--padding-x-small) / 2);
70
+ padding-left: calc(8px - 1px);
71
+ padding-left: calc(var(--padding-x-small) - 1px);
72
+ padding-right: 8px;
73
+ padding-right: var(--padding-x-small);
74
+ border-radius: 10px;
75
+ border-radius: var(--radius-small);
76
+ word-break: break-word;
77
+ word-wrap: break-word;
78
+ }
79
+ .np-item-prompt .np-prompt-icon {
80
+ padding-right: calc(12px / 2);
81
+ padding-right: calc(var(--size-12) / 2);
82
+ padding-top: calc(4px - 1px);
83
+ padding-top: calc(var(--size-4) - 1px);
84
+ padding-bottom: calc(4px - 1px);
85
+ padding-bottom: calc(var(--size-4) - 1px);
86
+ }
87
+ .np-item-prompt .np-prompt-icon .tw-icon-tags,
88
+ .np-item-prompt .np-prompt-icon .tw-icon-confetti {
89
+ color: var(--color-sentiment-positive-primary);
90
+ }
91
+ .np-item-prompt a {
92
+ text-underline-offset: calc(4px / 2);
93
+ text-underline-offset: calc(var(--size-4) / 2);
94
+ }
95
+ .np-item-prompt.np-prompt-interactive {
96
+ -webkit-text-decoration: none;
97
+ text-decoration: none;
98
+ cursor: pointer;
99
+ border: none;
100
+ }
101
+ .np-item-prompt.negative {
102
+ background-color: var(--color-sentiment-negative-secondary);
103
+ color: var(--color-sentiment-negative-primary);
104
+ }
105
+ .np-item-prompt.negative a {
106
+ color: var(--color-sentiment-negative-primary);
107
+ }
108
+ .np-item-prompt.negative a:hover {
109
+ color: var(--color-sentiment-negative-primary-hover);
110
+ }
111
+ .np-item-prompt.negative a:active {
112
+ color: var(--color-sentiment-negative-primary-active);
113
+ }
114
+ .np-prompt-interactive.np-item-prompt.negative:hover {
115
+ background-color: color-mix(in srgb, var(--color-sentiment-negative-secondary) 95%, var(--color-sentiment-negative-primary));
116
+ }
117
+ .np-prompt-interactive.np-item-prompt.negative:active {
118
+ background-color: color-mix(in srgb, var(--color-sentiment-negative-secondary) 90%, var(--color-sentiment-negative-primary));
119
+ }
120
+ .np-item-prompt.positive,
121
+ .np-item-prompt.discount,
122
+ .np-item-prompt.savings {
123
+ background-color: var(--color-sentiment-positive-secondary);
124
+ color: var(--color-sentiment-positive-primary);
125
+ }
126
+ .np-item-prompt.positive a,
127
+ .np-item-prompt.discount a,
128
+ .np-item-prompt.savings a {
129
+ color: var(--color-sentiment-positive-primary);
130
+ }
131
+ .np-item-prompt.positive a:hover,
132
+ .np-item-prompt.discount a:hover,
133
+ .np-item-prompt.savings a:hover {
134
+ color: var(--color-sentiment-positive-primary-hover);
135
+ }
136
+ .np-item-prompt.positive a:active,
137
+ .np-item-prompt.discount a:active,
138
+ .np-item-prompt.savings a:active {
139
+ color: var(--color-sentiment-positive-primary-active);
140
+ }
141
+ .np-prompt-interactive.np-item-prompt.positive:hover,
142
+ .np-prompt-interactive.np-item-prompt.discount:hover,
143
+ .np-prompt-interactive.np-item-prompt.savings:hover {
144
+ background-color: color-mix(in srgb, var(--color-sentiment-positive-secondary) 95%, var(--color-sentiment-positive-primary));
145
+ }
146
+ .np-prompt-interactive.np-item-prompt.positive:active,
147
+ .np-prompt-interactive.np-item-prompt.discount:active,
148
+ .np-prompt-interactive.np-item-prompt.savings:active {
149
+ background-color: color-mix(in srgb, var(--color-sentiment-positive-secondary) 90%, var(--color-sentiment-positive-primary));
150
+ }
151
+ .np-item-prompt.neutral {
152
+ background-color: rgba(134,167,189,0.10196);
153
+ background-color: var(--color-background-neutral);
154
+ color: #37517e;
155
+ color: var(--color-content-primary);
156
+ }
157
+ .np-item-prompt.neutral a {
158
+ color: #37517e;
159
+ color: var(--color-content-primary);
160
+ }
161
+ .np-prompt-interactive.np-item-prompt.neutral:hover {
162
+ background-color: var(--color-background-neutral-hover);
163
+ }
164
+ .np-prompt-interactive.np-item-prompt.neutral:active {
165
+ background-color: var(--color-background-neutral-active);
166
+ }
167
+ .np-item-prompt.warning {
168
+ background-color: var(--color-sentiment-warning-secondary);
169
+ color: var(--color-sentiment-warning-content);
170
+ }
171
+ .np-item-prompt.warning a {
172
+ color: var(--color-sentiment-warning-content);
173
+ }
174
+ .np-item-prompt.warning a:hover {
175
+ color: var(--color-sentiment-warning-content-hover);
176
+ }
177
+ .np-item-prompt.warning a:active {
178
+ color: var(--color-sentiment-warning-content-active);
179
+ }
180
+ .np-prompt-interactive.np-item-prompt.warning:hover {
181
+ background-color: color-mix(in srgb, var(--color-sentiment-warning-secondary) 90%, var(--color-sentiment-warning-primary));
182
+ }
183
+ .np-prompt-interactive.np-item-prompt.warning:active {
184
+ background-color: color-mix(in srgb, var(--color-sentiment-warning-secondary) 80%, var(--color-sentiment-warning-primary));
185
+ }
@@ -0,0 +1,178 @@
1
+ .np-item {
2
+ padding: var(--size-16);
3
+ border-radius: var(--radius-large);
4
+ background-color: var(--color-background-screen);
5
+ gap: var(--size-16);
6
+
7
+ &-interactive {
8
+ cursor: pointer;
9
+ &:hover {
10
+ background-color: var(--color-background-screen-hover);
11
+ }
12
+ &:active {
13
+ background-color: var(--color-background-screen-active);
14
+ }
15
+ }
16
+
17
+ &-media {
18
+
19
+ &-image {
20
+ width: var(--item-media-image-size);
21
+ height: var(--item-media-image-size);
22
+ }
23
+ }
24
+
25
+ &-title {
26
+ color: var(--color-content-primary);
27
+ }
28
+
29
+ &-additional-info {
30
+ color: var(--color-content-tertiary);
31
+ }
32
+
33
+ &-value {
34
+ flex: 0 0 auto;
35
+ }
36
+
37
+ &-control {
38
+ flex: 0 0 auto;
39
+ }
40
+
41
+ &-spotlight {
42
+ &-active {
43
+ background-color: var(--color-background-neutral);
44
+
45
+ &:hover {
46
+ background-color: var(--color-background-neutral-hover);
47
+ }
48
+ &:active {
49
+ background-color: var(--color-background-neutral-active);
50
+ }
51
+ }
52
+
53
+ &-inactive {
54
+ background-color: color-mix(in srgb, var(--color-background-neutral) 25%, transparent);
55
+ border: 1px dashed var(--color-border-neutral);
56
+
57
+ &:hover {
58
+ background-color: color-mix(in srgb, var(--color-background-neutral-hover) 25%, transparent);
59
+ }
60
+ &:active {
61
+ background-color: color-mix(in srgb, var(--color-background-neutral-active) 25%, transparent);
62
+ }
63
+ }
64
+ }
65
+
66
+ &-prompt {
67
+ display: inline-flex;
68
+ padding-top: calc(var(--padding-x-small) / 2);
69
+ padding-bottom: calc(var(--padding-x-small) / 2);
70
+ padding-left: calc(var(--padding-x-small) - 1px);
71
+ padding-right: var(--padding-x-small);
72
+ border-radius: var(--radius-small);
73
+ word-break: break-word;
74
+ overflow-wrap: break-word;
75
+
76
+ .np-prompt-icon {
77
+ padding-right: calc(var(--size-12) / 2);
78
+ padding-top: calc(var(--size-4) - 1px);
79
+ padding-bottom: calc(var(--size-4) - 1px);
80
+
81
+ .tw-icon-tags,
82
+ .tw-icon-confetti {
83
+ color: var(--color-sentiment-positive-primary);
84
+ }
85
+ }
86
+
87
+ a {
88
+ text-underline-offset: calc(var(--size-4) / 2);
89
+ }
90
+
91
+ &.np-prompt-interactive {
92
+ text-decoration: none;
93
+ cursor: pointer;
94
+ border: none;
95
+ }
96
+
97
+ &.negative {
98
+ background-color: var(--color-sentiment-negative-secondary);
99
+ color: var(--color-sentiment-negative-primary);
100
+ a {
101
+ color: var(--color-sentiment-negative-primary);
102
+ &:hover {
103
+ color: var(--color-sentiment-negative-primary-hover);
104
+ }
105
+ &:active {
106
+ color: var(--color-sentiment-negative-primary-active);
107
+ }
108
+ }
109
+ .np-prompt-interactive& {
110
+ &:hover {
111
+ background-color: color-mix(in srgb, var(--color-sentiment-negative-secondary) 95%, var(--color-sentiment-negative-primary));
112
+ }
113
+ &:active {
114
+ background-color: color-mix(in srgb, var(--color-sentiment-negative-secondary) 90%, var(--color-sentiment-negative-primary));
115
+ }
116
+ }
117
+ }
118
+ &.positive,
119
+ &.discount,
120
+ &.savings {
121
+ background-color: var(--color-sentiment-positive-secondary);
122
+ color: var(--color-sentiment-positive-primary);
123
+ a {
124
+ color: var(--color-sentiment-positive-primary);
125
+ &:hover {
126
+ color: var(--color-sentiment-positive-primary-hover);
127
+ }
128
+ &:active {
129
+ color: var(--color-sentiment-positive-primary-active);
130
+ }
131
+ }
132
+ .np-prompt-interactive& {
133
+ &:hover {
134
+ background-color: color-mix(in srgb, var(--color-sentiment-positive-secondary) 95%, var(--color-sentiment-positive-primary));
135
+ }
136
+ &:active {
137
+ background-color: color-mix(in srgb, var(--color-sentiment-positive-secondary) 90%, var(--color-sentiment-positive-primary));
138
+ }
139
+ }
140
+ }
141
+ &.neutral {
142
+ background-color: var(--color-background-neutral);
143
+ color: var(--color-content-primary);
144
+ a {
145
+ color: var(--color-content-primary);
146
+ }
147
+ .np-prompt-interactive& {
148
+ &:hover {
149
+ background-color: var(--color-background-neutral-hover);
150
+ }
151
+ &:active {
152
+ background-color: var(--color-background-neutral-active);
153
+ }
154
+ }
155
+ }
156
+ &.warning {
157
+ background-color: var(--color-sentiment-warning-secondary);
158
+ color: var(--color-sentiment-warning-content);
159
+ a {
160
+ color: var(--color-sentiment-warning-content);
161
+ &:hover {
162
+ color: var(--color-sentiment-warning-content-hover);
163
+ }
164
+ &:active {
165
+ color: var(--color-sentiment-warning-content-active);
166
+ }
167
+ }
168
+ .np-prompt-interactive& {
169
+ &:hover {
170
+ background-color: color-mix(in srgb, var(--color-sentiment-warning-secondary) 90%, var(--color-sentiment-warning-primary));
171
+ }
172
+ &:active {
173
+ background-color: color-mix(in srgb, var(--color-sentiment-warning-secondary) 80%, var(--color-sentiment-warning-primary));
174
+ }
175
+ }
176
+ }
177
+ }
178
+ }