@transferwise/components 0.0.0-experimental-4533565 → 0.0.0-experimental-da1781d

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 (127) 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 +3 -3
  6. package/build/index.mjs +2 -2
  7. package/build/{listItem/ListItem.js → legacylistItem/LegacyListItem.js} +3 -3
  8. package/build/legacylistItem/LegacyListItem.js.map +1 -0
  9. package/build/{listItem/ListItem.mjs → legacylistItem/LegacyListItem.mjs} +3 -3
  10. package/build/legacylistItem/LegacyListItem.mjs.map +1 -0
  11. package/build/legacylistItem/List.js.map +1 -0
  12. package/build/legacylistItem/List.mjs.map +1 -0
  13. package/build/main.css +60 -57
  14. package/build/phoneNumberInput/PhoneNumberInput.js +1 -1
  15. package/build/phoneNumberInput/PhoneNumberInput.js.map +1 -1
  16. package/build/phoneNumberInput/PhoneNumberInput.mjs +1 -1
  17. package/build/phoneNumberInput/PhoneNumberInput.mjs.map +1 -1
  18. package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.js +2 -2
  19. package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.js.map +1 -1
  20. package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.mjs +2 -2
  21. package/build/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.mjs.map +1 -1
  22. package/build/styles/legacylistItem/LegacyListItem.css +6 -0
  23. package/build/styles/listItem/ListItem.css +185 -3
  24. package/build/styles/main.css +60 -57
  25. package/build/styles/switch/Switch.css +3 -0
  26. package/build/types/index.d.ts +3 -3
  27. package/build/types/index.d.ts.map +1 -1
  28. package/build/types/legacylistItem/LegacyListItem.d.ts +13 -0
  29. package/build/types/legacylistItem/LegacyListItem.d.ts.map +1 -0
  30. package/build/types/legacylistItem/List.d.ts.map +1 -0
  31. package/build/types/legacylistItem/index.d.ts +5 -0
  32. package/build/types/legacylistItem/index.d.ts.map +1 -0
  33. package/build/types/listItem/ListItem.d.ts +38 -8
  34. package/build/types/listItem/ListItem.d.ts.map +1 -1
  35. package/build/types/listItem/ListItemAdditionalInfo.d.ts +9 -0
  36. package/build/types/listItem/ListItemAdditionalInfo.d.ts.map +1 -0
  37. package/build/types/listItem/ListItemButton.d.ts +4 -0
  38. package/build/types/listItem/ListItemButton.d.ts.map +1 -0
  39. package/build/types/listItem/ListItemCheckbox.d.ts +4 -0
  40. package/build/types/listItem/ListItemCheckbox.d.ts.map +1 -0
  41. package/build/types/listItem/ListItemIconButton.d.ts +7 -0
  42. package/build/types/listItem/ListItemIconButton.d.ts.map +1 -0
  43. package/build/types/listItem/ListItemMedia.d.ts +19 -0
  44. package/build/types/listItem/ListItemMedia.d.ts.map +1 -0
  45. package/build/types/listItem/ListItemNavigation.d.ts +4 -0
  46. package/build/types/listItem/ListItemNavigation.d.ts.map +1 -0
  47. package/build/types/{item/ItemSwitch.d.ts → listItem/ListItemSwitch.d.ts} +1 -1
  48. package/build/types/listItem/ListItemSwitch.d.ts.map +1 -0
  49. package/build/types/listItem/index.d.ts +4 -3
  50. package/build/types/listItem/index.d.ts.map +1 -1
  51. package/build/types/{item → listItem}/prompt/Prompt.d.ts +3 -3
  52. package/build/types/listItem/prompt/Prompt.d.ts.map +1 -0
  53. package/build/types/listItem/useItemControl.d.ts +5 -0
  54. package/build/types/listItem/useItemControl.d.ts.map +1 -0
  55. package/build/types/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.d.ts +2 -2
  56. package/build/types/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.d.ts.map +1 -1
  57. package/package.json +3 -3
  58. package/src/flowNavigation/animatedLabel/AnimatedLabel.tsx +1 -1
  59. package/src/index.ts +3 -3
  60. package/src/legacylistItem/LegacyListItem.css +6 -0
  61. package/src/legacylistItem/LegacyListItem.less +7 -0
  62. package/src/legacylistItem/LegacyListItem.story.tsx +120 -0
  63. package/src/{listItem/ListItem.tests.story.tsx → legacylistItem/LegacyListItem.tests.story.tsx} +7 -7
  64. package/src/legacylistItem/LegacyListItem.tsx +53 -0
  65. package/src/legacylistItem/index.ts +4 -0
  66. package/src/listItem/ListItem.css +185 -3
  67. package/src/listItem/ListItem.less +180 -5
  68. package/src/listItem/ListItem.story.tsx +250 -97
  69. package/src/listItem/ListItem.tsx +167 -37
  70. package/src/{item/ItemAdditionalInfo.tsx → listItem/ListItemAdditionalInfo.tsx} +5 -5
  71. package/src/{item/ItemButton.spec.tsx → listItem/ListItemButton.spec.tsx} +4 -4
  72. package/src/{item/ItemButton.tsx → listItem/ListItemButton.tsx} +2 -2
  73. package/src/{item/ItemCheckbox.tsx → listItem/ListItemCheckbox.tsx} +5 -2
  74. package/src/{item/ItemIconButton.tsx → listItem/ListItemIconButton.tsx} +2 -2
  75. package/src/{item/ItemMedia.tsx → listItem/ListItemMedia.tsx} +9 -9
  76. package/src/{item/ItemNavigation.tsx → listItem/ListItemNavigation.tsx} +2 -2
  77. package/src/listItem/index.ts +9 -3
  78. package/src/{item → listItem}/prompt/Prompt.spec.tsx +12 -12
  79. package/src/{item → listItem}/prompt/Prompt.story.tsx +27 -27
  80. package/src/{item → listItem}/prompt/Prompt.tsx +4 -4
  81. package/src/listItem/useItemControl.tsx +12 -0
  82. package/src/main.css +60 -57
  83. package/src/main.less +2 -2
  84. package/src/phoneNumberInput/PhoneNumberInput.spec.tsx +4 -4
  85. package/src/phoneNumberInput/PhoneNumberInput.story.tsx +22 -0
  86. package/src/phoneNumberInput/PhoneNumberInput.tsx +1 -1
  87. package/src/phoneNumberInput/utils/isValidPhoneNumber/isValidPhoneNumber.ts +4 -3
  88. package/src/switch/Switch.css +3 -0
  89. package/src/switch/Switch.less +1 -0
  90. package/build/listItem/List.js.map +0 -1
  91. package/build/listItem/List.mjs.map +0 -1
  92. package/build/listItem/ListItem.js.map +0 -1
  93. package/build/listItem/ListItem.mjs.map +0 -1
  94. package/build/styles/item/Item.css +0 -188
  95. package/build/types/item/Item.d.ts +0 -43
  96. package/build/types/item/Item.d.ts.map +0 -1
  97. package/build/types/item/ItemAdditionalInfo.d.ts +0 -9
  98. package/build/types/item/ItemAdditionalInfo.d.ts.map +0 -1
  99. package/build/types/item/ItemButton.d.ts +0 -4
  100. package/build/types/item/ItemButton.d.ts.map +0 -1
  101. package/build/types/item/ItemCheckbox.d.ts +0 -4
  102. package/build/types/item/ItemCheckbox.d.ts.map +0 -1
  103. package/build/types/item/ItemIconButton.d.ts +0 -7
  104. package/build/types/item/ItemIconButton.d.ts.map +0 -1
  105. package/build/types/item/ItemMedia.d.ts +0 -19
  106. package/build/types/item/ItemMedia.d.ts.map +0 -1
  107. package/build/types/item/ItemNavigation.d.ts +0 -4
  108. package/build/types/item/ItemNavigation.d.ts.map +0 -1
  109. package/build/types/item/ItemSwitch.d.ts.map +0 -1
  110. package/build/types/item/index.d.ts +0 -6
  111. package/build/types/item/index.d.ts.map +0 -1
  112. package/build/types/item/prompt/Prompt.d.ts.map +0 -1
  113. package/build/types/item/useItemControl.d.ts +0 -5
  114. package/build/types/item/useItemControl.d.ts.map +0 -1
  115. package/build/types/listItem/List.d.ts.map +0 -1
  116. package/src/item/Item.css +0 -188
  117. package/src/item/Item.less +0 -182
  118. package/src/item/Item.story.tsx +0 -273
  119. package/src/item/Item.tsx +0 -181
  120. package/src/item/index.ts +0 -6
  121. package/src/item/useItemControl.tsx +0 -12
  122. /package/build/{listItem → legacylistItem}/List.js +0 -0
  123. /package/build/{listItem → legacylistItem}/List.mjs +0 -0
  124. /package/build/types/{listItem → legacylistItem}/List.d.ts +0 -0
  125. /package/src/{listItem/ListItem.spec.tsx → legacylistItem/LegacyListItem.spec.tsx} +0 -0
  126. /package/src/{listItem → legacylistItem}/List.tsx +0 -0
  127. /package/src/{item/ItemSwitch.tsx → listItem/ListItemSwitch.tsx} +0 -0
@@ -1,5 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
2
 
3
+ import { Field } from '../field/Field';
3
4
  import PhoneNumberInput from './PhoneNumberInput';
4
5
 
5
6
  const meta = {
@@ -22,3 +23,24 @@ export const Basic = {
22
23
  onChange: () => {},
23
24
  },
24
25
  } satisfies Story;
26
+
27
+ export const InitialValue = () => {
28
+ const initialValues = [
29
+ undefined,
30
+ '+44',
31
+ '+441',
32
+ '+1',
33
+ '+12',
34
+ '+1234',
35
+ '+1264',
36
+ '+992',
37
+ '+9999',
38
+ '+99992',
39
+ ];
40
+
41
+ return initialValues.map((initialValue) => (
42
+ <Field key={initialValue} label={`With initialValue: ${JSON.stringify(initialValue ?? null)}`}>
43
+ <PhoneNumberInput initialValue={initialValue} placeholder="placeholder" onChange={() => {}} />
44
+ </Field>
45
+ ));
46
+ };
@@ -66,7 +66,7 @@ const PhoneNumberInput = ({
66
66
  const [internalValue, setInternalValue] = useState<PhoneNumber>(() => {
67
67
  const cleanValue = initialValue ? cleanNumber(initialValue) : null;
68
68
 
69
- if (!cleanValue || !isValidPhoneNumber(cleanValue)) {
69
+ if (!cleanValue || !isValidPhoneNumber(cleanValue, 1)) {
70
70
  return {
71
71
  prefix: setDefaultPrefix(locale, countryCode),
72
72
  suffix: '',
@@ -1,7 +1,8 @@
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 at least 4 digits.
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.
5
5
  */
6
- export const isValidPhoneNumber = (phoneNumber: string) =>
7
- /^\+[\d-\s]+$/.test(phoneNumber) && (phoneNumber.match(/\d+/g)?.join('').length ?? 0) >= 4;
6
+ export const isValidPhoneNumber = (phoneNumber: string, minLength = 4) =>
7
+ /^\+[\d-\s]+$/.test(phoneNumber) &&
8
+ (phoneNumber.match(/\d+/g)?.join('').length ?? 0) >= minLength;
@@ -4,6 +4,9 @@
4
4
  width: 50px;
5
5
  padding: 2px;
6
6
  border-radius: 16px;
7
+ -webkit-user-select: none;
8
+ -moz-user-select: none;
9
+ user-select: none;
7
10
  }
8
11
  .np-switch:focus {
9
12
  outline: none;
@@ -8,6 +8,7 @@
8
8
  width: 50px;
9
9
  padding: 2px;
10
10
  border-radius: 16px;
11
+ user-select: none;
11
12
 
12
13
  .focus-ring();
13
14
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"List.js","sources":["../../src/listItem/List.tsx"],"sourcesContent":["import { clsx } from 'clsx';\n\nexport interface ListProps {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport function List({ className, children }: ListProps) {\n return <ul className={clsx(className, 'list-unstyled')}>{children}</ul>;\n}\n"],"names":["List","className","children","_jsx","clsx"],"mappings":";;;;;SAOgBA,IAAIA,CAAC;EAAEC,SAAS;AAAEC,EAAAA,QAAAA;AAAqB,CAAA,EAAA;AACrD,EAAA,oBAAOC,cAAA,CAAA,IAAA,EAAA;AAAIF,IAAAA,SAAS,EAAEG,SAAI,CAACH,SAAS,EAAE,eAAe,CAAE;AAAAC,IAAAA,QAAA,EAAEA,QAAAA;AAAQ,GAAK,CAAC,CAAA;AACzE;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"List.mjs","sources":["../../src/listItem/List.tsx"],"sourcesContent":["import { clsx } from 'clsx';\n\nexport interface ListProps {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport function List({ className, children }: ListProps) {\n return <ul className={clsx(className, 'list-unstyled')}>{children}</ul>;\n}\n"],"names":["List","className","children","_jsx","clsx"],"mappings":";;;SAOgBA,IAAIA,CAAC;EAAEC,SAAS;AAAEC,EAAAA,QAAAA;AAAqB,CAAA,EAAA;AACrD,EAAA,oBAAOC,GAAA,CAAA,IAAA,EAAA;AAAIF,IAAAA,SAAS,EAAEG,IAAI,CAACH,SAAS,EAAE,eAAe,CAAE;AAAAC,IAAAA,QAAA,EAAEA,QAAAA;AAAQ,GAAK,CAAC,CAAA;AACzE;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListItem.js","sources":["../../src/listItem/ListItem.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { ElementType, FC, ReactNode } from 'react';\n\nimport Body from '../body/Body';\n\nexport type ListItemProps = {\n title: ReactNode;\n value: ReactNode;\n media?: ReactNode;\n action?: ReactNode;\n className?: string;\n isContainerAligned?: boolean;\n as?: ElementType;\n};\n\nconst ListItem: FC<ListItemProps> = ({\n media,\n action,\n className,\n title,\n value,\n isContainerAligned,\n as = 'li',\n ...rest\n}) => {\n const Element = as;\n\n return (\n <Element\n className={clsx('np-list-item d-flex align-items-center p-y-2', className, {\n 'p-x-2': !isContainerAligned,\n })}\n {...rest}\n >\n {media}\n\n <div className={clsx('d-flex flex-column', { 'p-l-2': !!media, 'p-r-2': !!action })}>\n <Body type=\"body-default\" className=\"text-secondary m-b-0\">\n {title}\n </Body>\n {value && (\n <Body type=\"body-large\" className=\"text-primary text-overflow-wrap m-b-0\">\n {value}\n </Body>\n )}\n </div>\n\n {action ? <div className=\"np-list-item__action m-l-auto\">{action}</div> : null}\n </Element>\n );\n};\n\nexport default ListItem;\n"],"names":["ListItem","media","action","className","title","value","isContainerAligned","as","rest","Element","_jsxs","clsx","children","_jsx","Body","type"],"mappings":";;;;;;;;AAeMA,MAAAA,QAAQ,GAAsBA,CAAC;EACnCC,KAAK;EACLC,MAAM;EACNC,SAAS;EACTC,KAAK;EACLC,KAAK;EACLC,kBAAkB;AAClBC,EAAAA,EAAE,GAAG,IAAI;EACT,GAAGC,IAAAA;AACJ,CAAA,KAAI;EACH,MAAMC,OAAO,GAAGF,EAAE,CAAA;EAElB,oBACEG,eAAA,CAACD,OAAO,EAAA;AACNN,IAAAA,SAAS,EAAEQ,SAAI,CAAC,8CAA8C,EAAER,SAAS,EAAE;AACzE,MAAA,OAAO,EAAE,CAACG,kBAAAA;AACX,KAAA,CAAE;AAAA,IAAA,GACCE,IAAI;IAAAI,QAAA,EAAA,CAEPX,KAAK,eAENS,eAAA,CAAA,KAAA,EAAA;AAAKP,MAAAA,SAAS,EAAEQ,SAAI,CAAC,oBAAoB,EAAE;QAAE,OAAO,EAAE,CAAC,CAACV,KAAK;QAAE,OAAO,EAAE,CAAC,CAACC,MAAAA;AAAM,OAAE,CAAE;MAAAU,QAAA,EAAA,cAClFC,cAAA,CAACC,YAAI,EAAA;AAACC,QAAAA,IAAI,EAAC,cAAc;AAACZ,QAAAA,SAAS,EAAC,sBAAsB;AAAAS,QAAAA,QAAA,EACvDR,KAAAA;AAAK,OACF,CACN,EAACC,KAAK,iBACJQ,cAAA,CAACC,YAAI,EAAA;AAACC,QAAAA,IAAI,EAAC,YAAY;AAACZ,QAAAA,SAAS,EAAC,uCAAuC;AAAAS,QAAAA,QAAA,EACtEP,KAAAA;AAAK,OACF,CACP,CAAA;AAAA,KACE,CAEL,EAACH,MAAM,gBAAGW,cAAA,CAAA,KAAA,EAAA;AAAKV,MAAAA,SAAS,EAAC,+BAA+B;AAAAS,MAAAA,QAAA,EAAEV,MAAAA;KAAY,CAAC,GAAG,IAAI,CAAA;AAAA,GACvE,CAAC,CAAA;AAEd;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListItem.mjs","sources":["../../src/listItem/ListItem.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { ElementType, FC, ReactNode } from 'react';\n\nimport Body from '../body/Body';\n\nexport type ListItemProps = {\n title: ReactNode;\n value: ReactNode;\n media?: ReactNode;\n action?: ReactNode;\n className?: string;\n isContainerAligned?: boolean;\n as?: ElementType;\n};\n\nconst ListItem: FC<ListItemProps> = ({\n media,\n action,\n className,\n title,\n value,\n isContainerAligned,\n as = 'li',\n ...rest\n}) => {\n const Element = as;\n\n return (\n <Element\n className={clsx('np-list-item d-flex align-items-center p-y-2', className, {\n 'p-x-2': !isContainerAligned,\n })}\n {...rest}\n >\n {media}\n\n <div className={clsx('d-flex flex-column', { 'p-l-2': !!media, 'p-r-2': !!action })}>\n <Body type=\"body-default\" className=\"text-secondary m-b-0\">\n {title}\n </Body>\n {value && (\n <Body type=\"body-large\" className=\"text-primary text-overflow-wrap m-b-0\">\n {value}\n </Body>\n )}\n </div>\n\n {action ? <div className=\"np-list-item__action m-l-auto\">{action}</div> : null}\n </Element>\n );\n};\n\nexport default ListItem;\n"],"names":["ListItem","media","action","className","title","value","isContainerAligned","as","rest","Element","_jsxs","clsx","children","_jsx","Body","type"],"mappings":";;;;AAeMA,MAAAA,QAAQ,GAAsBA,CAAC;EACnCC,KAAK;EACLC,MAAM;EACNC,SAAS;EACTC,KAAK;EACLC,KAAK;EACLC,kBAAkB;AAClBC,EAAAA,EAAE,GAAG,IAAI;EACT,GAAGC,IAAAA;AACJ,CAAA,KAAI;EACH,MAAMC,OAAO,GAAGF,EAAE,CAAA;EAElB,oBACEG,IAAA,CAACD,OAAO,EAAA;AACNN,IAAAA,SAAS,EAAEQ,IAAI,CAAC,8CAA8C,EAAER,SAAS,EAAE;AACzE,MAAA,OAAO,EAAE,CAACG,kBAAAA;AACX,KAAA,CAAE;AAAA,IAAA,GACCE,IAAI;IAAAI,QAAA,EAAA,CAEPX,KAAK,eAENS,IAAA,CAAA,KAAA,EAAA;AAAKP,MAAAA,SAAS,EAAEQ,IAAI,CAAC,oBAAoB,EAAE;QAAE,OAAO,EAAE,CAAC,CAACV,KAAK;QAAE,OAAO,EAAE,CAAC,CAACC,MAAAA;AAAM,OAAE,CAAE;MAAAU,QAAA,EAAA,cAClFC,GAAA,CAACC,IAAI,EAAA;AAACC,QAAAA,IAAI,EAAC,cAAc;AAACZ,QAAAA,SAAS,EAAC,sBAAsB;AAAAS,QAAAA,QAAA,EACvDR,KAAAA;AAAK,OACF,CACN,EAACC,KAAK,iBACJQ,GAAA,CAACC,IAAI,EAAA;AAACC,QAAAA,IAAI,EAAC,YAAY;AAACZ,QAAAA,SAAS,EAAC,uCAAuC;AAAAS,QAAAA,QAAA,EACtEP,KAAAA;AAAK,OACF,CACP,CAAA;AAAA,KACE,CAEL,EAACH,MAAM,gBAAGW,GAAA,CAAA,KAAA,EAAA;AAAKV,MAAAA,SAAS,EAAC,+BAA+B;AAAAS,MAAAA,QAAA,EAAEV,MAAAA;KAAY,CAAC,GAAG,IAAI,CAAA;AAAA,GACvE,CAAC,CAAA;AAEd;;;;"}
@@ -1,188 +0,0 @@
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-body {
25
- width: 100%;
26
- }
27
- .np-item-title {
28
- color: #37517e;
29
- color: var(--color-content-primary);
30
- }
31
- .np-item-additional-info {
32
- color: #768e9c;
33
- color: var(--color-content-tertiary);
34
- }
35
- .np-item-value {
36
- flex: 0 0 auto;
37
- }
38
- .np-item-control {
39
- flex: 0 0 auto;
40
- }
41
- .np-item-spotlight-active {
42
- background-color: rgba(134,167,189,0.10196);
43
- background-color: var(--color-background-neutral);
44
- }
45
- .np-item-spotlight-active:hover {
46
- background-color: var(--color-background-neutral-hover);
47
- }
48
- .np-item-spotlight-active:active {
49
- background-color: var(--color-background-neutral-active);
50
- }
51
- .np-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
- .np-item-spotlight-inactive {
58
- background-color: color-mix(in srgb, var(--color-background-neutral) 25%, transparent);
59
- }
60
- }
61
- .np-item-spotlight-inactive:hover {
62
- background-color: color-mix(in srgb, var(--color-background-neutral-hover) 25%, transparent);
63
- }
64
- .np-item-spotlight-inactive:active {
65
- background-color: color-mix(in srgb, var(--color-background-neutral-active) 25%, transparent);
66
- }
67
- .np-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
- .np-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
- .np-item-prompt .np-prompt-icon .tw-icon-tags,
91
- .np-item-prompt .np-prompt-icon .tw-icon-confetti {
92
- color: var(--color-sentiment-positive-primary);
93
- }
94
- .np-item-prompt a {
95
- text-underline-offset: calc(4px / 2);
96
- text-underline-offset: calc(var(--size-4) / 2);
97
- }
98
- .np-item-prompt.np-prompt-interactive {
99
- -webkit-text-decoration: none;
100
- text-decoration: none;
101
- cursor: pointer;
102
- border: none;
103
- }
104
- .np-item-prompt.negative {
105
- background-color: var(--color-sentiment-negative-secondary);
106
- color: var(--color-sentiment-negative-primary);
107
- }
108
- .np-item-prompt.negative a {
109
- color: var(--color-sentiment-negative-primary);
110
- }
111
- .np-item-prompt.negative a:hover {
112
- color: var(--color-sentiment-negative-primary-hover);
113
- }
114
- .np-item-prompt.negative a:active {
115
- color: var(--color-sentiment-negative-primary-active);
116
- }
117
- .np-prompt-interactive.np-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.np-item-prompt.negative:active {
121
- background-color: color-mix(in srgb, var(--color-sentiment-negative-secondary) 90%, var(--color-sentiment-negative-primary));
122
- }
123
- .np-item-prompt.positive,
124
- .np-item-prompt.discount,
125
- .np-item-prompt.savings {
126
- background-color: var(--color-sentiment-positive-secondary);
127
- color: var(--color-sentiment-positive-primary);
128
- }
129
- .np-item-prompt.positive a,
130
- .np-item-prompt.discount a,
131
- .np-item-prompt.savings a {
132
- color: var(--color-sentiment-positive-primary);
133
- }
134
- .np-item-prompt.positive a:hover,
135
- .np-item-prompt.discount a:hover,
136
- .np-item-prompt.savings a:hover {
137
- color: var(--color-sentiment-positive-primary-hover);
138
- }
139
- .np-item-prompt.positive a:active,
140
- .np-item-prompt.discount a:active,
141
- .np-item-prompt.savings a:active {
142
- color: var(--color-sentiment-positive-primary-active);
143
- }
144
- .np-prompt-interactive.np-item-prompt.positive:hover,
145
- .np-prompt-interactive.np-item-prompt.discount:hover,
146
- .np-prompt-interactive.np-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.np-item-prompt.positive:active,
150
- .np-prompt-interactive.np-item-prompt.discount:active,
151
- .np-prompt-interactive.np-item-prompt.savings:active {
152
- background-color: color-mix(in srgb, var(--color-sentiment-positive-secondary) 90%, var(--color-sentiment-positive-primary));
153
- }
154
- .np-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
- .np-item-prompt.neutral a {
161
- color: #37517e;
162
- color: var(--color-content-primary);
163
- }
164
- .np-prompt-interactive.np-item-prompt.neutral:hover {
165
- background-color: var(--color-background-neutral-hover);
166
- }
167
- .np-prompt-interactive.np-item-prompt.neutral:active {
168
- background-color: var(--color-background-neutral-active);
169
- }
170
- .np-item-prompt.warning {
171
- background-color: var(--color-sentiment-warning-secondary);
172
- color: var(--color-sentiment-warning-content);
173
- }
174
- .np-item-prompt.warning a {
175
- color: var(--color-sentiment-warning-content);
176
- }
177
- .np-item-prompt.warning a:hover {
178
- color: var(--color-sentiment-warning-content-hover);
179
- }
180
- .np-item-prompt.warning a:active {
181
- color: var(--color-sentiment-warning-content-active);
182
- }
183
- .np-prompt-interactive.np-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.np-item-prompt.warning:active {
187
- background-color: color-mix(in srgb, var(--color-sentiment-warning-secondary) 80%, var(--color-sentiment-warning-primary));
188
- }
@@ -1,43 +0,0 @@
1
- import { ReactNode } from 'react';
2
- export type ItemTypes = 'non-interactive' | 'navigation' | 'radio' | 'checkbox' | 'switch' | 'button' | 'icon-button';
3
- export type Props = {
4
- as?: 'li' | 'div' | 'span';
5
- inverted?: boolean;
6
- disabled?: boolean;
7
- spotlight?: 'active' | 'inactive';
8
- title: ReactNode;
9
- subtitle?: ReactNode;
10
- additionalInfo?: ReactNode;
11
- valueTitle?: ReactNode;
12
- valueSubtitle?: ReactNode;
13
- media?: ReactNode;
14
- control?: ReactNode;
15
- prompt?: ReactNode;
16
- };
17
- export type ItemContextData = {
18
- setControlType: (type: ItemTypes) => void;
19
- ids: {
20
- label: string;
21
- additionalInfo: string;
22
- value: string;
23
- control: string;
24
- prompt: string;
25
- };
26
- props: Pick<Props, 'as' | 'disabled' | 'inverted'>;
27
- };
28
- export declare const ItemContext: import("react").Context<ItemContextData>;
29
- export declare const Item: {
30
- ({ as: View, title, subtitle, additionalInfo, prompt, inverted, media, spotlight, valueTitle, valueSubtitle, control, disabled, }: Props): import("react").JSX.Element;
31
- Image: ({ alt, size, ...props }: import("./ItemMedia").ItemImageProps) => import("react").JSX.Element;
32
- AvatarView: ({ className, size, ...props }: import("./ItemMedia").ItemAvatarViewProps) => import("react").JSX.Element;
33
- AvatarLayout: ({ className, size, ...props }: import("./ItemMedia").ItemAvatarLayoutProps) => import("react").JSX.Element;
34
- AdditionalInfo: ({ children, action }: import("./ItemAdditionalInfo").ItemAdditionalInfoProps) => import("react").JSX.Element;
35
- Checkbox: (props: import("./ItemCheckbox").ItemCheckboxProps) => import("react").JSX.Element;
36
- IconButton: (props: import("./ItemIconButton").ItemIconButtonProps) => import("react").JSX.Element;
37
- Navigation: ({ onClick }: import("./ItemNavigation").ItemNavigationProps) => import("react").JSX.Element;
38
- Button: ({ priority, ...props }: import("./ItemButton").ItemButtonProps) => import("react").JSX.Element;
39
- Switch: (props: import("..").SwitchProps) => import("react").JSX.Element;
40
- Prompt: ({ type, children, action }: import("./prompt/Prompt").ItemPromptProps) => import("react").JSX.Element;
41
- };
42
- export default Item;
43
- //# sourceMappingURL=Item.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../src/item/Item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAA4B,MAAM,OAAO,CAAC;AAa3E,MAAM,MAAM,SAAS,GACjB,iBAAiB,GACjB,YAAY,GACZ,OAAO,GACP,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,aAAa,CAAC;AAElB,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAClC,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IAC1C,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC;CACpD,CAAC;AAIF,eAAO,MAAM,WAAW,0CAAuC,CAAC;AAEhE,eAAO,MAAM,IAAI;uIAad,KAAK;;;;;;;;;;;CAmGP,CAAC;AAeF,eAAe,IAAI,CAAC"}
@@ -1,9 +0,0 @@
1
- import { PropsWithChildren } from 'react';
2
- import { LinkProps } from '../link';
3
- export type ItemAdditionalInfoProps = PropsWithChildren<{
4
- action?: Pick<LinkProps, 'href' | 'onClick' | 'target'> & {
5
- label?: string;
6
- };
7
- }>;
8
- export declare const AdditionalInfo: ({ children, action }: ItemAdditionalInfoProps) => import("react").JSX.Element;
9
- //# sourceMappingURL=ItemAdditionalInfo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ItemAdditionalInfo.d.ts","sourceRoot":"","sources":["../../../src/item/ItemAdditionalInfo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAc,MAAM,OAAO,CAAC;AAGtD,OAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG1C,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;IACtD,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9E,CAAC,CAAC;AAEH,eAAO,MAAM,cAAc,yBAAmC,uBAAuB,gCAoBpF,CAAC"}
@@ -1,4 +0,0 @@
1
- import { NewButtonProps } from '../button';
2
- export type ItemButtonProps = Omit<NewButtonProps, 'v2' | 'size' | 'disabled'>;
3
- export declare const Button: ({ priority, ...props }: ItemButtonProps) => import("react").JSX.Element;
4
- //# sourceMappingURL=ItemButton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ItemButton.d.ts","sourceRoot":"","sources":["../../../src/item/ItemButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAyB,cAAc,EAAE,MAAM,WAAW,CAAC;AAGlE,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC;AAE/E,eAAO,MAAM,MAAM,2BAA0C,eAAe,gCAY3E,CAAC"}
@@ -1,4 +0,0 @@
1
- import { CheckboxButtonProps } from '../checkboxButton/CheckboxButton';
2
- export type ItemCheckboxProps = Pick<CheckboxButtonProps, 'checked' | 'indeterminate' | 'onChange'>;
3
- export declare const Checkbox: (props: ItemCheckboxProps) => import("react").JSX.Element;
4
- //# sourceMappingURL=ItemCheckbox.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,7 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,19 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,4 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
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"}
@@ -1,6 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
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"}
@@ -1,5 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
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"}
package/src/item/Item.css DELETED
@@ -1,188 +0,0 @@
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-body {
25
- width: 100%;
26
- }
27
- .np-item-title {
28
- color: #37517e;
29
- color: var(--color-content-primary);
30
- }
31
- .np-item-additional-info {
32
- color: #768e9c;
33
- color: var(--color-content-tertiary);
34
- }
35
- .np-item-value {
36
- flex: 0 0 auto;
37
- }
38
- .np-item-control {
39
- flex: 0 0 auto;
40
- }
41
- .np-item-spotlight-active {
42
- background-color: rgba(134,167,189,0.10196);
43
- background-color: var(--color-background-neutral);
44
- }
45
- .np-item-spotlight-active:hover {
46
- background-color: var(--color-background-neutral-hover);
47
- }
48
- .np-item-spotlight-active:active {
49
- background-color: var(--color-background-neutral-active);
50
- }
51
- .np-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
- .np-item-spotlight-inactive {
58
- background-color: color-mix(in srgb, var(--color-background-neutral) 25%, transparent);
59
- }
60
- }
61
- .np-item-spotlight-inactive:hover {
62
- background-color: color-mix(in srgb, var(--color-background-neutral-hover) 25%, transparent);
63
- }
64
- .np-item-spotlight-inactive:active {
65
- background-color: color-mix(in srgb, var(--color-background-neutral-active) 25%, transparent);
66
- }
67
- .np-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
- .np-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
- .np-item-prompt .np-prompt-icon .tw-icon-tags,
91
- .np-item-prompt .np-prompt-icon .tw-icon-confetti {
92
- color: var(--color-sentiment-positive-primary);
93
- }
94
- .np-item-prompt a {
95
- text-underline-offset: calc(4px / 2);
96
- text-underline-offset: calc(var(--size-4) / 2);
97
- }
98
- .np-item-prompt.np-prompt-interactive {
99
- -webkit-text-decoration: none;
100
- text-decoration: none;
101
- cursor: pointer;
102
- border: none;
103
- }
104
- .np-item-prompt.negative {
105
- background-color: var(--color-sentiment-negative-secondary);
106
- color: var(--color-sentiment-negative-primary);
107
- }
108
- .np-item-prompt.negative a {
109
- color: var(--color-sentiment-negative-primary);
110
- }
111
- .np-item-prompt.negative a:hover {
112
- color: var(--color-sentiment-negative-primary-hover);
113
- }
114
- .np-item-prompt.negative a:active {
115
- color: var(--color-sentiment-negative-primary-active);
116
- }
117
- .np-prompt-interactive.np-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.np-item-prompt.negative:active {
121
- background-color: color-mix(in srgb, var(--color-sentiment-negative-secondary) 90%, var(--color-sentiment-negative-primary));
122
- }
123
- .np-item-prompt.positive,
124
- .np-item-prompt.discount,
125
- .np-item-prompt.savings {
126
- background-color: var(--color-sentiment-positive-secondary);
127
- color: var(--color-sentiment-positive-primary);
128
- }
129
- .np-item-prompt.positive a,
130
- .np-item-prompt.discount a,
131
- .np-item-prompt.savings a {
132
- color: var(--color-sentiment-positive-primary);
133
- }
134
- .np-item-prompt.positive a:hover,
135
- .np-item-prompt.discount a:hover,
136
- .np-item-prompt.savings a:hover {
137
- color: var(--color-sentiment-positive-primary-hover);
138
- }
139
- .np-item-prompt.positive a:active,
140
- .np-item-prompt.discount a:active,
141
- .np-item-prompt.savings a:active {
142
- color: var(--color-sentiment-positive-primary-active);
143
- }
144
- .np-prompt-interactive.np-item-prompt.positive:hover,
145
- .np-prompt-interactive.np-item-prompt.discount:hover,
146
- .np-prompt-interactive.np-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.np-item-prompt.positive:active,
150
- .np-prompt-interactive.np-item-prompt.discount:active,
151
- .np-prompt-interactive.np-item-prompt.savings:active {
152
- background-color: color-mix(in srgb, var(--color-sentiment-positive-secondary) 90%, var(--color-sentiment-positive-primary));
153
- }
154
- .np-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
- .np-item-prompt.neutral a {
161
- color: #37517e;
162
- color: var(--color-content-primary);
163
- }
164
- .np-prompt-interactive.np-item-prompt.neutral:hover {
165
- background-color: var(--color-background-neutral-hover);
166
- }
167
- .np-prompt-interactive.np-item-prompt.neutral:active {
168
- background-color: var(--color-background-neutral-active);
169
- }
170
- .np-item-prompt.warning {
171
- background-color: var(--color-sentiment-warning-secondary);
172
- color: var(--color-sentiment-warning-content);
173
- }
174
- .np-item-prompt.warning a {
175
- color: var(--color-sentiment-warning-content);
176
- }
177
- .np-item-prompt.warning a:hover {
178
- color: var(--color-sentiment-warning-content-hover);
179
- }
180
- .np-item-prompt.warning a:active {
181
- color: var(--color-sentiment-warning-content-active);
182
- }
183
- .np-prompt-interactive.np-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.np-item-prompt.warning:active {
187
- background-color: color-mix(in srgb, var(--color-sentiment-warning-secondary) 80%, var(--color-sentiment-warning-primary));
188
- }