@transferwise/components 0.0.0-experimental-266e18f → 0.0.0-experimental-add7cf9

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 (69) hide show
  1. package/build/image/Image.js +9 -10
  2. package/build/image/Image.js.map +1 -1
  3. package/build/image/Image.mjs +11 -11
  4. package/build/image/Image.mjs.map +1 -1
  5. package/build/index.js +0 -1
  6. package/build/index.js.map +1 -1
  7. package/build/index.mjs +1 -1
  8. package/build/main.css +0 -188
  9. package/build/styles/main.css +0 -188
  10. package/build/types/image/Image.d.ts +0 -1
  11. package/build/types/image/Image.d.ts.map +1 -1
  12. package/build/types/index.d.ts +0 -2
  13. package/build/types/index.d.ts.map +1 -1
  14. package/build/types/test-utils/fake-data.d.ts +0 -2
  15. package/build/types/test-utils/fake-data.d.ts.map +1 -1
  16. package/package.json +3 -3
  17. package/src/image/Image.spec.tsx +3 -3
  18. package/src/image/Image.tsx +10 -12
  19. package/src/index.ts +0 -2
  20. package/src/legacylistItem/LegacyListItem.story.tsx +5 -5
  21. package/src/legacylistItem/LegacyListItem.tests.story.tsx +6 -6
  22. package/src/main.css +0 -188
  23. package/src/main.less +0 -1
  24. package/src/promoCard/__snapshots__/PromoCard.spec.tsx.snap +1 -0
  25. package/src/promoCard/__snapshots__/PromoCardGroup.spec.tsx.snap +2 -0
  26. package/src/test-utils/fake-data.ts +0 -5
  27. package/build/styles/listItem/ListItem.css +0 -188
  28. package/build/test-utils/assets/apple-pay-logo.svg +0 -84
  29. package/build/types/listItem/ListItem.d.ts +0 -44
  30. package/build/types/listItem/ListItem.d.ts.map +0 -1
  31. package/build/types/listItem/ListItemAdditionalInfo.d.ts +0 -9
  32. package/build/types/listItem/ListItemAdditionalInfo.d.ts.map +0 -1
  33. package/build/types/listItem/ListItemButton.d.ts +0 -4
  34. package/build/types/listItem/ListItemButton.d.ts.map +0 -1
  35. package/build/types/listItem/ListItemCheckbox.d.ts +0 -4
  36. package/build/types/listItem/ListItemCheckbox.d.ts.map +0 -1
  37. package/build/types/listItem/ListItemIconButton.d.ts +0 -7
  38. package/build/types/listItem/ListItemIconButton.d.ts.map +0 -1
  39. package/build/types/listItem/ListItemMedia.d.ts +0 -19
  40. package/build/types/listItem/ListItemMedia.d.ts.map +0 -1
  41. package/build/types/listItem/ListItemNavigation.d.ts +0 -4
  42. package/build/types/listItem/ListItemNavigation.d.ts.map +0 -1
  43. package/build/types/listItem/ListItemSwitch.d.ts +0 -3
  44. package/build/types/listItem/ListItemSwitch.d.ts.map +0 -1
  45. package/build/types/listItem/index.d.ts +0 -6
  46. package/build/types/listItem/index.d.ts.map +0 -1
  47. package/build/types/listItem/prompt/Prompt.d.ts +0 -12
  48. package/build/types/listItem/prompt/Prompt.d.ts.map +0 -1
  49. package/build/types/listItem/useItemControl.d.ts +0 -5
  50. package/build/types/listItem/useItemControl.d.ts.map +0 -1
  51. package/src/listItem/ListItem.css +0 -188
  52. package/src/listItem/ListItem.less +0 -180
  53. package/src/listItem/ListItem.spec.tsx +0 -35
  54. package/src/listItem/ListItem.story.tsx +0 -296
  55. package/src/listItem/ListItem.tsx +0 -190
  56. package/src/listItem/ListItemAdditionalInfo.tsx +0 -31
  57. package/src/listItem/ListItemButton.spec.tsx +0 -90
  58. package/src/listItem/ListItemButton.tsx +0 -18
  59. package/src/listItem/ListItemCheckbox.tsx +0 -14
  60. package/src/listItem/ListItemIconButton.tsx +0 -13
  61. package/src/listItem/ListItemMedia.tsx +0 -52
  62. package/src/listItem/ListItemNavigation.tsx +0 -11
  63. package/src/listItem/ListItemSwitch.tsx +0 -8
  64. package/src/listItem/index.ts +0 -10
  65. package/src/listItem/prompt/Prompt.spec.tsx +0 -77
  66. package/src/listItem/prompt/Prompt.story.tsx +0 -170
  67. package/src/listItem/prompt/Prompt.tsx +0 -44
  68. package/src/listItem/useItemControl.tsx +0 -12
  69. package/src/test-utils/assets/apple-pay-logo.svg +0 -84
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@transferwise/components",
3
- "version": "0.0.0-experimental-266e18f",
3
+ "version": "0.0.0-experimental-add7cf9",
4
4
  "description": "Neptune React components",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -91,10 +91,10 @@
91
91
  "rollup": "^4.41.1",
92
92
  "rollup-preserve-directives": "^1.1.3",
93
93
  "storybook": "^8.6.14",
94
- "@transferwise/neptune-css": "14.24.4",
95
94
  "@transferwise/less-config": "3.1.2",
96
95
  "@wise/components-theming": "1.6.3",
97
- "@wise/wds-configs": "0.0.0"
96
+ "@wise/wds-configs": "0.0.0",
97
+ "@transferwise/neptune-css": "14.24.4"
98
98
  },
99
99
  "peerDependencies": {
100
100
  "@transferwise/icons": "^3.22.0",
@@ -1,7 +1,7 @@
1
1
  import * as useHasIntersectedUtils from '../common/hooks/useHasIntersected/useHasIntersected';
2
2
  import { render, fireEvent, screen } from '../test-utils';
3
3
 
4
- import { EmptyTransparentImage, ImageProps } from './Image';
4
+ import { ImageProps } from './Image';
5
5
 
6
6
  import Image from '.';
7
7
 
@@ -32,14 +32,14 @@ describe('Image', () => {
32
32
  });
33
33
 
34
34
  describe('when lazy loading is enabled', () => {
35
- it('renders the image with EmptyTransparentImage if element is not visible', () => {
35
+ it('renders the image with actual src even if element is not visible', () => {
36
36
  jest.spyOn(useHasIntersectedUtils, 'useHasIntersected').mockReturnValue([false]);
37
37
  render(<Image {...props} />);
38
38
 
39
39
  const image: HTMLImageElement = screen.getByRole('img');
40
40
 
41
41
  expect(image).toBeInTheDocument();
42
- expect(image.src).toStrictEqual(EmptyTransparentImage);
42
+ expect(image.src).toStrictEqual(props.src);
43
43
  });
44
44
 
45
45
  it('renders the image with src if element is visible', () => {
@@ -1,5 +1,5 @@
1
1
  import { clsx } from 'clsx';
2
- import { useRef } from 'react';
2
+ import { useRef, useCallback } from 'react';
3
3
 
4
4
  import { useHasIntersected } from '../common/hooks';
5
5
 
@@ -16,9 +16,6 @@ export interface ImageProps {
16
16
  shrink?: boolean;
17
17
  }
18
18
 
19
- export const EmptyTransparentImage =
20
- 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
21
-
22
19
  const Image = ({
23
20
  id,
24
21
  src,
@@ -33,20 +30,21 @@ const Image = ({
33
30
  }: ImageProps) => {
34
31
  const elementReference = useRef<HTMLImageElement>(null);
35
32
  const [hasIntersected] = useHasIntersected({ elRef: elementReference, loading });
36
- let imageSource = src;
37
- let imageOnLoad = onLoad;
38
33
 
39
- if (loading === 'lazy' && !hasIntersected) {
40
- imageSource = EmptyTransparentImage;
41
- imageOnLoad = undefined;
42
- }
34
+ // Internal onLoad handler that calls user onLoad only if hasIntersected is true
35
+ const handleLoad = useCallback(() => {
36
+ if (hasIntersected && onLoad) {
37
+ onLoad();
38
+ }
39
+ }, [hasIntersected, onLoad]);
43
40
 
44
41
  return (
45
42
  <img
46
43
  ref={elementReference}
47
44
  id={id}
48
45
  alt={alt}
49
- src={imageSource}
46
+ src={src}
47
+ loading={loading}
50
48
  className={clsx([
51
49
  'tw-image',
52
50
  {
@@ -56,7 +54,7 @@ const Image = ({
56
54
  className,
57
55
  ])}
58
56
  role={role}
59
- onLoad={imageOnLoad}
57
+ onLoad={handleLoad}
60
58
  onError={onError}
61
59
  />
62
60
  );
package/src/index.ts CHANGED
@@ -109,7 +109,6 @@ export type {
109
109
  TableCellStatus,
110
110
  TableCellType,
111
111
  } from './table';
112
- export type { ListItemProps, ListItemAdditionalInfoProps, ListItemCheckboxProps } from './listItem';
113
112
 
114
113
  /**
115
114
  * Components
@@ -212,7 +211,6 @@ export { default as Typeahead } from './typeahead';
212
211
  export { default as Upload } from './upload';
213
212
  export { default as UploadInput } from './uploadInput';
214
213
  export { default as Table } from './table';
215
- export { default as Item } from './table';
216
214
 
217
215
  /**
218
216
  * Hooks
@@ -6,11 +6,11 @@ import { Button, IconButton } from '..';
6
6
  import AvatarView from '../avatarView';
7
7
  import Info from '../info';
8
8
  import Title from '../title/Title';
9
- import LegacyListItem, { List } from '.';
9
+ import ListItem, { List } from '.';
10
10
 
11
11
  export default {
12
- component: LegacyListItem,
13
- title: 'Other/LegacyListItem',
12
+ component: ListItem,
13
+ title: 'Other/ListItem',
14
14
  tags: ['autodocs'],
15
15
  };
16
16
 
@@ -18,8 +18,8 @@ const Template = ({
18
18
  title = 'Wise',
19
19
  value = 'We’re building the world’s most international account',
20
20
  ...props
21
- }: Partial<ComponentProps<typeof LegacyListItem>>) => {
22
- return <LegacyListItem title={title} value={value} {...props} />;
21
+ }: Partial<ComponentProps<typeof ListItem>>) => {
22
+ return <ListItem title={title} value={value} {...props} />;
23
23
  };
24
24
 
25
25
  export const Basic = () => {
@@ -1,11 +1,11 @@
1
1
  import { FastFlag } from '@transferwise/icons';
2
2
  import Button from '../button';
3
3
  import AvatarView from '../avatarView';
4
- import LegacyListItem, { List, type LegacyListItemProps } from '.';
4
+ import ListItem, { List, type LegacyListItemProps } from '.';
5
5
 
6
6
  export default {
7
- component: LegacyListItem,
8
- title: 'Other/LegacyListItem/tests',
7
+ component: ListItem,
8
+ title: 'Other/ListItem/tests',
9
9
  };
10
10
 
11
11
  export const LongText = () => {
@@ -21,13 +21,13 @@ export const LongText = () => {
21
21
  return (
22
22
  <div style={{ width: '35rem' }}>
23
23
  <List>
24
- <LegacyListItem
24
+ <ListItem
25
25
  {...sharedProps}
26
26
  title="Default behaviour"
27
27
  value="This is a test of a long word dontbreakme dontbreakme dontbreakme breakmebreakmebreakmebreakmebreakmebreakmebreakmebreakmebreakmebreakme word."
28
28
  />
29
29
 
30
- <LegacyListItem
30
+ <ListItem
31
31
  {...sharedProps}
32
32
  title="Wrapping the long word with a 'span.text-word-break'"
33
33
  value={
@@ -41,7 +41,7 @@ export const LongText = () => {
41
41
  }
42
42
  />
43
43
 
44
- <LegacyListItem
44
+ <ListItem
45
45
  {...sharedProps}
46
46
  title="Using '&amp;shy;' HTML entitty"
47
47
  value="This is a test of a a very long word dontbreakme dontbreakme dontbreakme break&shy;me&shy;break&shy;me&shy;break&shy;me&shy;break&shy;me&shy;break&shy;me&shy;break&shy;me&shy;break&shy;me&shy;break&shy;me&shy;break&shy;me&shy;break&shy;me word."
package/src/main.css CHANGED
@@ -2662,194 +2662,6 @@ html:not([dir="rtl"]) .np-flow-navigation--sm .np-flow-navigation__stepper {
2662
2662
  border-radius: 9999px !important;
2663
2663
  border-radius: var(--radius-full) !important;
2664
2664
  }
2665
- .wds-list-item {
2666
- padding: 16px;
2667
- padding: var(--size-16);
2668
- border-radius: 16px;
2669
- border-radius: var(--radius-medium);
2670
- background-color: #ffffff;
2671
- background-color: var(--color-background-screen);
2672
- gap: 16px;
2673
- gap: var(--size-16);
2674
- }
2675
- .wds-list-item-interactive {
2676
- cursor: pointer;
2677
- }
2678
- .wds-list-item-interactive:hover {
2679
- background-color: var(--color-background-screen-hover);
2680
- }
2681
- .wds-list-item-interactive:active {
2682
- background-color: var(--color-background-screen-active);
2683
- }
2684
- .wds-list-item-media-image {
2685
- width: var(--item-media-image-size);
2686
- height: var(--item-media-image-size);
2687
- }
2688
- .wds-list-item-body {
2689
- width: 100%;
2690
- }
2691
- .wds-list-item-title {
2692
- color: #37517e;
2693
- color: var(--color-content-primary);
2694
- }
2695
- .wds-list-item-additional-info {
2696
- color: #768e9c;
2697
- color: var(--color-content-tertiary);
2698
- }
2699
- .wds-list-item-value {
2700
- flex: 0 0 auto;
2701
- }
2702
- .wds-list-item-control {
2703
- flex: 0 0 auto;
2704
- }
2705
- .wds-list-item-spotlight-active {
2706
- background-color: rgba(134,167,189,0.10196);
2707
- background-color: var(--color-background-neutral);
2708
- }
2709
- .wds-list-item-spotlight-active:not(.disabled):not(:disabled):hover {
2710
- background-color: var(--color-background-neutral-hover);
2711
- }
2712
- .wds-list-item-spotlight-active:not(.disabled):not(:disabled):active {
2713
- background-color: var(--color-background-neutral-active);
2714
- }
2715
- .wds-list-item-spotlight-inactive {
2716
- background-color: rgba(134, 167, 189, 0.025);
2717
- border: 1px dashed rgba(0,0,0,0.10196);
2718
- border: 1px dashed var(--color-border-neutral);
2719
- }
2720
- @supports (color: color-mix(in lch, red, blue)) {
2721
- .wds-list-item-spotlight-inactive {
2722
- background-color: color-mix(in srgb, var(--color-background-neutral) 25%, transparent);
2723
- }
2724
- }
2725
- .wds-list-item-spotlight-inactive:not(.disabled):not(:disabled):hover {
2726
- background-color: color-mix(in srgb, var(--color-background-neutral-hover) 25%, transparent);
2727
- }
2728
- .wds-list-item-spotlight-inactive:not(.disabled):not(:disabled):active {
2729
- background-color: color-mix(in srgb, var(--color-background-neutral-active) 25%, transparent);
2730
- }
2731
- .wds-list-item-prompt {
2732
- display: inline-flex;
2733
- padding-top: calc(8px / 2);
2734
- padding-top: calc(var(--padding-x-small) / 2);
2735
- padding-bottom: calc(8px / 2);
2736
- padding-bottom: calc(var(--padding-x-small) / 2);
2737
- padding-left: calc(8px - 1px);
2738
- padding-left: calc(var(--padding-x-small) - 1px);
2739
- padding-right: 8px;
2740
- padding-right: var(--padding-x-small);
2741
- border-radius: 10px;
2742
- border-radius: var(--radius-small);
2743
- word-break: break-word;
2744
- word-wrap: break-word;
2745
- }
2746
- .wds-list-item-prompt .np-prompt-icon {
2747
- padding-right: calc(12px / 2);
2748
- padding-right: calc(var(--size-12) / 2);
2749
- padding-top: calc(4px - 1px);
2750
- padding-top: calc(var(--size-4) - 1px);
2751
- padding-bottom: calc(4px - 1px);
2752
- padding-bottom: calc(var(--size-4) - 1px);
2753
- }
2754
- .wds-list-item-prompt .np-prompt-icon .tw-icon-tags,
2755
- .wds-list-item-prompt .np-prompt-icon .tw-icon-confetti {
2756
- color: var(--color-sentiment-positive-primary);
2757
- }
2758
- .wds-list-item-prompt a {
2759
- text-underline-offset: calc(4px / 2);
2760
- text-underline-offset: calc(var(--size-4) / 2);
2761
- }
2762
- .wds-list-item-prompt.np-prompt-interactive {
2763
- -webkit-text-decoration: none;
2764
- text-decoration: none;
2765
- cursor: pointer;
2766
- border: none;
2767
- }
2768
- .wds-list-item-prompt.negative {
2769
- background-color: var(--color-sentiment-negative-secondary);
2770
- color: var(--color-sentiment-negative-primary);
2771
- }
2772
- .wds-list-item-prompt.negative a {
2773
- color: var(--color-sentiment-negative-primary);
2774
- }
2775
- .wds-list-item-prompt.negative a:hover {
2776
- color: var(--color-sentiment-negative-primary-hover);
2777
- }
2778
- .wds-list-item-prompt.negative a:active {
2779
- color: var(--color-sentiment-negative-primary-active);
2780
- }
2781
- .np-prompt-interactive.wds-list-item-prompt.negative:hover {
2782
- background-color: color-mix(in srgb, var(--color-sentiment-negative-secondary) 95%, var(--color-sentiment-negative-primary));
2783
- }
2784
- .np-prompt-interactive.wds-list-item-prompt.negative:active {
2785
- background-color: color-mix(in srgb, var(--color-sentiment-negative-secondary) 90%, var(--color-sentiment-negative-primary));
2786
- }
2787
- .wds-list-item-prompt.positive,
2788
- .wds-list-item-prompt.discount,
2789
- .wds-list-item-prompt.savings {
2790
- background-color: var(--color-sentiment-positive-secondary);
2791
- color: var(--color-sentiment-positive-primary);
2792
- }
2793
- .wds-list-item-prompt.positive a,
2794
- .wds-list-item-prompt.discount a,
2795
- .wds-list-item-prompt.savings a {
2796
- color: var(--color-sentiment-positive-primary);
2797
- }
2798
- .wds-list-item-prompt.positive a:hover,
2799
- .wds-list-item-prompt.discount a:hover,
2800
- .wds-list-item-prompt.savings a:hover {
2801
- color: var(--color-sentiment-positive-primary-hover);
2802
- }
2803
- .wds-list-item-prompt.positive a:active,
2804
- .wds-list-item-prompt.discount a:active,
2805
- .wds-list-item-prompt.savings a:active {
2806
- color: var(--color-sentiment-positive-primary-active);
2807
- }
2808
- .np-prompt-interactive.wds-list-item-prompt.positive:hover,
2809
- .np-prompt-interactive.wds-list-item-prompt.discount:hover,
2810
- .np-prompt-interactive.wds-list-item-prompt.savings:hover {
2811
- background-color: color-mix(in srgb, var(--color-sentiment-positive-secondary) 95%, var(--color-sentiment-positive-primary));
2812
- }
2813
- .np-prompt-interactive.wds-list-item-prompt.positive:active,
2814
- .np-prompt-interactive.wds-list-item-prompt.discount:active,
2815
- .np-prompt-interactive.wds-list-item-prompt.savings:active {
2816
- background-color: color-mix(in srgb, var(--color-sentiment-positive-secondary) 90%, var(--color-sentiment-positive-primary));
2817
- }
2818
- .wds-list-item-prompt.neutral {
2819
- background-color: rgba(134,167,189,0.10196);
2820
- background-color: var(--color-background-neutral);
2821
- color: #37517e;
2822
- color: var(--color-content-primary);
2823
- }
2824
- .wds-list-item-prompt.neutral a {
2825
- color: #37517e;
2826
- color: var(--color-content-primary);
2827
- }
2828
- .np-prompt-interactive.wds-list-item-prompt.neutral:hover {
2829
- background-color: var(--color-background-neutral-hover);
2830
- }
2831
- .np-prompt-interactive.wds-list-item-prompt.neutral:active {
2832
- background-color: var(--color-background-neutral-active);
2833
- }
2834
- .wds-list-item-prompt.warning {
2835
- background-color: var(--color-sentiment-warning-secondary);
2836
- color: var(--color-sentiment-warning-content);
2837
- }
2838
- .wds-list-item-prompt.warning a {
2839
- color: var(--color-sentiment-warning-content);
2840
- }
2841
- .wds-list-item-prompt.warning a:hover {
2842
- color: var(--color-sentiment-warning-content-hover);
2843
- }
2844
- .wds-list-item-prompt.warning a:active {
2845
- color: var(--color-sentiment-warning-content-active);
2846
- }
2847
- .np-prompt-interactive.wds-list-item-prompt.warning:hover {
2848
- background-color: color-mix(in srgb, var(--color-sentiment-warning-secondary) 90%, var(--color-sentiment-warning-primary));
2849
- }
2850
- .np-prompt-interactive.wds-list-item-prompt.warning:active {
2851
- background-color: color-mix(in srgb, var(--color-sentiment-warning-secondary) 80%, var(--color-sentiment-warning-primary));
2852
- }
2853
2665
  .np-field-control {
2854
2666
  margin-top: 4px;
2855
2667
  margin-top: var(--size-4);
package/src/main.less CHANGED
@@ -39,7 +39,6 @@
39
39
  @import "./image/Image.less";
40
40
  @import "./info/Info.less";
41
41
  @import "./inputs/Input.less";
42
- @import "./listItem/ListItem.less";
43
42
  @import "./field/Field.less";
44
43
  @import "./inputs/InputGroup.less";
45
44
  @import "./inputs/SelectInput.less";
@@ -23,6 +23,7 @@ exports[`PromoCard matches snapshot 1`] = `
23
23
  <img
24
24
  alt="Test Image"
25
25
  class="tw-image tw-image__stretch tw-image__shrink"
26
+ loading="lazy"
26
27
  src="test.jpg"
27
28
  />
28
29
  </div>
@@ -33,6 +33,7 @@ exports[`PromoCardGroup matches snapshot 1`] = `
33
33
  <img
34
34
  alt=""
35
35
  class="tw-image tw-image__stretch tw-image__shrink"
36
+ loading="lazy"
36
37
  src="https://via.placeholder.com/150"
37
38
  />
38
39
  </div>
@@ -67,6 +68,7 @@ exports[`PromoCardGroup matches snapshot 1`] = `
67
68
  <img
68
69
  alt=""
69
70
  class="tw-image tw-image__stretch tw-image__shrink"
71
+ loading="lazy"
70
72
  src="https://via.placeholder.com/150"
71
73
  />
72
74
  </div>
@@ -1,11 +1,6 @@
1
- export const lorem5 = 'Lorem ipsum dolor sit amet.';
2
-
3
1
  export const lorem10 =
4
2
  'Lorem ipsum, dolor sit amet consectetur adipisicing elit. Iste, architecto?';
5
3
 
6
- export const lorem20 =
7
- 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum non explicabo doloribus rerum saepe ut beatae adipisci rem vero optio.';
8
-
9
4
  export const lorem40 =
10
5
  '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?';
11
6
 
@@ -1,188 +0,0 @@
1
- .wds-list-item {
2
- padding: 16px;
3
- padding: var(--size-16);
4
- border-radius: 16px;
5
- border-radius: var(--radius-medium);
6
- background-color: #ffffff;
7
- background-color: var(--color-background-screen);
8
- gap: 16px;
9
- gap: var(--size-16);
10
- }
11
- .wds-list-item-interactive {
12
- cursor: pointer;
13
- }
14
- .wds-list-item-interactive:hover {
15
- background-color: var(--color-background-screen-hover);
16
- }
17
- .wds-list-item-interactive:active {
18
- background-color: var(--color-background-screen-active);
19
- }
20
- .wds-list-item-media-image {
21
- width: var(--item-media-image-size);
22
- height: var(--item-media-image-size);
23
- }
24
- .wds-list-item-body {
25
- width: 100%;
26
- }
27
- .wds-list-item-title {
28
- color: #37517e;
29
- color: var(--color-content-primary);
30
- }
31
- .wds-list-item-additional-info {
32
- color: #768e9c;
33
- color: var(--color-content-tertiary);
34
- }
35
- .wds-list-item-value {
36
- flex: 0 0 auto;
37
- }
38
- .wds-list-item-control {
39
- flex: 0 0 auto;
40
- }
41
- .wds-list-item-spotlight-active {
42
- background-color: rgba(134,167,189,0.10196);
43
- background-color: var(--color-background-neutral);
44
- }
45
- .wds-list-item-spotlight-active:not(.disabled):not(:disabled):hover {
46
- background-color: var(--color-background-neutral-hover);
47
- }
48
- .wds-list-item-spotlight-active:not(.disabled):not(:disabled):active {
49
- background-color: var(--color-background-neutral-active);
50
- }
51
- .wds-list-item-spotlight-inactive {
52
- background-color: rgba(134, 167, 189, 0.025);
53
- border: 1px dashed rgba(0,0,0,0.10196);
54
- border: 1px dashed var(--color-border-neutral);
55
- }
56
- @supports (color: color-mix(in lch, red, blue)) {
57
- .wds-list-item-spotlight-inactive {
58
- background-color: color-mix(in srgb, var(--color-background-neutral) 25%, transparent);
59
- }
60
- }
61
- .wds-list-item-spotlight-inactive:not(.disabled):not(:disabled):hover {
62
- background-color: color-mix(in srgb, var(--color-background-neutral-hover) 25%, transparent);
63
- }
64
- .wds-list-item-spotlight-inactive:not(.disabled):not(:disabled):active {
65
- background-color: color-mix(in srgb, var(--color-background-neutral-active) 25%, transparent);
66
- }
67
- .wds-list-item-prompt {
68
- display: inline-flex;
69
- padding-top: calc(8px / 2);
70
- padding-top: calc(var(--padding-x-small) / 2);
71
- padding-bottom: calc(8px / 2);
72
- padding-bottom: calc(var(--padding-x-small) / 2);
73
- padding-left: calc(8px - 1px);
74
- padding-left: calc(var(--padding-x-small) - 1px);
75
- padding-right: 8px;
76
- padding-right: var(--padding-x-small);
77
- border-radius: 10px;
78
- border-radius: var(--radius-small);
79
- word-break: break-word;
80
- word-wrap: break-word;
81
- }
82
- .wds-list-item-prompt .np-prompt-icon {
83
- padding-right: calc(12px / 2);
84
- padding-right: calc(var(--size-12) / 2);
85
- padding-top: calc(4px - 1px);
86
- padding-top: calc(var(--size-4) - 1px);
87
- padding-bottom: calc(4px - 1px);
88
- padding-bottom: calc(var(--size-4) - 1px);
89
- }
90
- .wds-list-item-prompt .np-prompt-icon .tw-icon-tags,
91
- .wds-list-item-prompt .np-prompt-icon .tw-icon-confetti {
92
- color: var(--color-sentiment-positive-primary);
93
- }
94
- .wds-list-item-prompt a {
95
- text-underline-offset: calc(4px / 2);
96
- text-underline-offset: calc(var(--size-4) / 2);
97
- }
98
- .wds-list-item-prompt.np-prompt-interactive {
99
- -webkit-text-decoration: none;
100
- text-decoration: none;
101
- cursor: pointer;
102
- border: none;
103
- }
104
- .wds-list-item-prompt.negative {
105
- background-color: var(--color-sentiment-negative-secondary);
106
- color: var(--color-sentiment-negative-primary);
107
- }
108
- .wds-list-item-prompt.negative a {
109
- color: var(--color-sentiment-negative-primary);
110
- }
111
- .wds-list-item-prompt.negative a:hover {
112
- color: var(--color-sentiment-negative-primary-hover);
113
- }
114
- .wds-list-item-prompt.negative a:active {
115
- color: var(--color-sentiment-negative-primary-active);
116
- }
117
- .np-prompt-interactive.wds-list-item-prompt.negative:hover {
118
- background-color: color-mix(in srgb, var(--color-sentiment-negative-secondary) 95%, var(--color-sentiment-negative-primary));
119
- }
120
- .np-prompt-interactive.wds-list-item-prompt.negative:active {
121
- background-color: color-mix(in srgb, var(--color-sentiment-negative-secondary) 90%, var(--color-sentiment-negative-primary));
122
- }
123
- .wds-list-item-prompt.positive,
124
- .wds-list-item-prompt.discount,
125
- .wds-list-item-prompt.savings {
126
- background-color: var(--color-sentiment-positive-secondary);
127
- color: var(--color-sentiment-positive-primary);
128
- }
129
- .wds-list-item-prompt.positive a,
130
- .wds-list-item-prompt.discount a,
131
- .wds-list-item-prompt.savings a {
132
- color: var(--color-sentiment-positive-primary);
133
- }
134
- .wds-list-item-prompt.positive a:hover,
135
- .wds-list-item-prompt.discount a:hover,
136
- .wds-list-item-prompt.savings a:hover {
137
- color: var(--color-sentiment-positive-primary-hover);
138
- }
139
- .wds-list-item-prompt.positive a:active,
140
- .wds-list-item-prompt.discount a:active,
141
- .wds-list-item-prompt.savings a:active {
142
- color: var(--color-sentiment-positive-primary-active);
143
- }
144
- .np-prompt-interactive.wds-list-item-prompt.positive:hover,
145
- .np-prompt-interactive.wds-list-item-prompt.discount:hover,
146
- .np-prompt-interactive.wds-list-item-prompt.savings:hover {
147
- background-color: color-mix(in srgb, var(--color-sentiment-positive-secondary) 95%, var(--color-sentiment-positive-primary));
148
- }
149
- .np-prompt-interactive.wds-list-item-prompt.positive:active,
150
- .np-prompt-interactive.wds-list-item-prompt.discount:active,
151
- .np-prompt-interactive.wds-list-item-prompt.savings:active {
152
- background-color: color-mix(in srgb, var(--color-sentiment-positive-secondary) 90%, var(--color-sentiment-positive-primary));
153
- }
154
- .wds-list-item-prompt.neutral {
155
- background-color: rgba(134,167,189,0.10196);
156
- background-color: var(--color-background-neutral);
157
- color: #37517e;
158
- color: var(--color-content-primary);
159
- }
160
- .wds-list-item-prompt.neutral a {
161
- color: #37517e;
162
- color: var(--color-content-primary);
163
- }
164
- .np-prompt-interactive.wds-list-item-prompt.neutral:hover {
165
- background-color: var(--color-background-neutral-hover);
166
- }
167
- .np-prompt-interactive.wds-list-item-prompt.neutral:active {
168
- background-color: var(--color-background-neutral-active);
169
- }
170
- .wds-list-item-prompt.warning {
171
- background-color: var(--color-sentiment-warning-secondary);
172
- color: var(--color-sentiment-warning-content);
173
- }
174
- .wds-list-item-prompt.warning a {
175
- color: var(--color-sentiment-warning-content);
176
- }
177
- .wds-list-item-prompt.warning a:hover {
178
- color: var(--color-sentiment-warning-content-hover);
179
- }
180
- .wds-list-item-prompt.warning a:active {
181
- color: var(--color-sentiment-warning-content-active);
182
- }
183
- .np-prompt-interactive.wds-list-item-prompt.warning:hover {
184
- background-color: color-mix(in srgb, var(--color-sentiment-warning-secondary) 90%, var(--color-sentiment-warning-primary));
185
- }
186
- .np-prompt-interactive.wds-list-item-prompt.warning:active {
187
- background-color: color-mix(in srgb, var(--color-sentiment-warning-secondary) 80%, var(--color-sentiment-warning-primary));
188
- }