@transferwise/components 46.27.0 → 46.29.0

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 (206) hide show
  1. package/build/i18n/th.json +2 -2
  2. package/build/index.js +344 -1147
  3. package/build/index.js.map +1 -1
  4. package/build/index.mjs +346 -1147
  5. package/build/index.mjs.map +1 -1
  6. package/build/main.css +16 -5
  7. package/build/styles/logo/Logo.css +16 -0
  8. package/build/styles/main.css +16 -5
  9. package/build/types/alert/Alert.d.ts +47 -58
  10. package/build/types/alert/Alert.d.ts.map +1 -1
  11. package/build/types/alert/index.d.ts +2 -1
  12. package/build/types/alert/index.d.ts.map +1 -1
  13. package/build/types/button/Button.d.ts +7 -9
  14. package/build/types/button/Button.d.ts.map +1 -1
  15. package/build/types/common/dateUtils/isWithinRange/isWithinRange.d.ts +1 -1
  16. package/build/types/common/dateUtils/isWithinRange/isWithinRange.d.ts.map +1 -1
  17. package/build/types/common/dateUtils/moveToWithinRange/moveToWithinRange.d.ts +1 -1
  18. package/build/types/common/dateUtils/moveToWithinRange/moveToWithinRange.d.ts.map +1 -1
  19. package/build/types/common/propsValues/sentiment.d.ts +0 -1
  20. package/build/types/common/propsValues/sentiment.d.ts.map +1 -1
  21. package/build/types/dateLookup/DateLookup.d.ts +75 -28
  22. package/build/types/dateLookup/DateLookup.d.ts.map +1 -1
  23. package/build/types/dateLookup/DateLookup.messages.d.ts +42 -63
  24. package/build/types/dateLookup/DateLookup.messages.d.ts.map +1 -1
  25. package/build/types/dateLookup/dateHeader/DateHeader.d.ts +9 -22
  26. package/build/types/dateLookup/dateHeader/DateHeader.d.ts.map +1 -1
  27. package/build/types/dateLookup/dateHeader/index.d.ts +1 -1
  28. package/build/types/dateLookup/dateHeader/index.d.ts.map +1 -1
  29. package/build/types/dateLookup/dateTrigger/DateTrigger.d.ts +13 -31
  30. package/build/types/dateLookup/dateTrigger/DateTrigger.d.ts.map +1 -1
  31. package/build/types/dateLookup/dateTrigger/index.d.ts +1 -1
  32. package/build/types/dateLookup/dateTrigger/index.d.ts.map +1 -1
  33. package/build/types/dateLookup/dayCalendar/DayCalendar.d.ts +19 -2
  34. package/build/types/dateLookup/dayCalendar/DayCalendar.d.ts.map +1 -1
  35. package/build/types/dateLookup/dayCalendar/index.d.ts +1 -1
  36. package/build/types/dateLookup/dayCalendar/index.d.ts.map +1 -1
  37. package/build/types/dateLookup/dayCalendar/table/DayCalendarTable.d.ts +12 -2
  38. package/build/types/dateLookup/dayCalendar/table/DayCalendarTable.d.ts.map +1 -1
  39. package/build/types/dateLookup/dayCalendar/table/index.d.ts +1 -1
  40. package/build/types/dateLookup/dayCalendar/table/index.d.ts.map +1 -1
  41. package/build/types/dateLookup/getStartOfDay/getStartOfDay.d.ts +1 -1
  42. package/build/types/dateLookup/getStartOfDay/getStartOfDay.d.ts.map +1 -1
  43. package/build/types/dateLookup/getStartOfDay/index.d.ts +1 -1
  44. package/build/types/dateLookup/getStartOfDay/index.d.ts.map +1 -1
  45. package/build/types/dateLookup/index.d.ts +2 -1
  46. package/build/types/dateLookup/index.d.ts.map +1 -1
  47. package/build/types/dateLookup/monthCalendar/MonthCalendar.d.ts +17 -2
  48. package/build/types/dateLookup/monthCalendar/MonthCalendar.d.ts.map +1 -1
  49. package/build/types/dateLookup/monthCalendar/index.d.ts +1 -1
  50. package/build/types/dateLookup/monthCalendar/index.d.ts.map +1 -1
  51. package/build/types/dateLookup/monthCalendar/table/MonthCalendarTable.d.ts +10 -26
  52. package/build/types/dateLookup/monthCalendar/table/MonthCalendarTable.d.ts.map +1 -1
  53. package/build/types/dateLookup/monthCalendar/table/index.d.ts +1 -1
  54. package/build/types/dateLookup/monthCalendar/table/index.d.ts.map +1 -1
  55. package/build/types/dateLookup/yearCalendar/YearCalendar.d.ts +15 -2
  56. package/build/types/dateLookup/yearCalendar/YearCalendar.d.ts.map +1 -1
  57. package/build/types/dateLookup/yearCalendar/index.d.ts +1 -1
  58. package/build/types/dateLookup/yearCalendar/index.d.ts.map +1 -1
  59. package/build/types/dateLookup/yearCalendar/table/YearCalendarTable.d.ts +10 -26
  60. package/build/types/dateLookup/yearCalendar/table/YearCalendarTable.d.ts.map +1 -1
  61. package/build/types/dateLookup/yearCalendar/table/index.d.ts +1 -1
  62. package/build/types/dateLookup/yearCalendar/table/index.d.ts.map +1 -1
  63. package/build/types/dimmer/Dimmer.d.ts.map +1 -1
  64. package/build/types/index.d.ts +2 -2
  65. package/build/types/index.d.ts.map +1 -1
  66. package/build/types/inlineAlert/InlineAlert.d.ts +2 -4
  67. package/build/types/inlineAlert/InlineAlert.d.ts.map +1 -1
  68. package/build/types/inputs/SelectInput.d.ts.map +1 -1
  69. package/build/types/inputs/_BottomSheet.d.ts.map +1 -1
  70. package/build/types/loader/Loader.d.ts.map +1 -1
  71. package/build/types/logo/Logo.d.ts.map +1 -1
  72. package/build/types/phoneNumberInput/PhoneNumberInput.d.ts.map +1 -1
  73. package/build/types/popover/Popover.d.ts.map +1 -1
  74. package/build/types/segmentedControl/SegmentedControl.d.ts +2 -2
  75. package/build/types/segmentedControl/SegmentedControl.d.ts.map +1 -1
  76. package/build/types/select/Select.d.ts.map +1 -1
  77. package/build/types/statusIcon/StatusIcon.d.ts +1 -1
  78. package/build/types/statusIcon/StatusIcon.d.ts.map +1 -1
  79. package/build/types/stepper/deviceDetection.d.ts.map +1 -1
  80. package/build/types/uploadInput/uploadButton/UploadButton.d.ts.map +1 -1
  81. package/package.json +3 -3
  82. package/src/accordion/Accordion.story.tsx +1 -1
  83. package/src/alert/{Alert.spec.js → Alert.spec.tsx} +43 -40
  84. package/src/alert/Alert.story.tsx +1 -2
  85. package/src/alert/Alert.tsx +219 -0
  86. package/src/alert/index.ts +2 -0
  87. package/src/avatar/colors/colors.ts +1 -1
  88. package/src/body/Body.spec.tsx +1 -1
  89. package/src/body/Body.story.tsx +8 -8
  90. package/src/button/Button.tsx +6 -10
  91. package/src/checkbox/Checkbox.js +1 -1
  92. package/src/checkboxButton/CheckboxButton.spec.tsx +0 -1
  93. package/src/common/Option/Option.tsx +1 -1
  94. package/src/common/dateUtils/isWithinRange/isWithinRange.spec.ts +21 -0
  95. package/src/common/dateUtils/isWithinRange/isWithinRange.ts +2 -2
  96. package/src/common/dateUtils/moveToWithinRange/moveToWithinRange.ts +8 -4
  97. package/src/common/deviceDetection/deviceDetection.js +1 -1
  98. package/src/common/deviceDetection/deviceDetection.spec.js +4 -2
  99. package/src/common/propsValues/sentiment.ts +0 -10
  100. package/src/common/responsivePanel/ResponsivePanel.spec.js +11 -15
  101. package/src/dateLookup/DateLookup.state.spec.js +7 -0
  102. package/src/dateLookup/{DateLookup.story.js → DateLookup.story.tsx} +13 -14
  103. package/src/dateLookup/DateLookup.tests.story.tsx +70 -0
  104. package/src/dateLookup/{DateLookup.js → DateLookup.tsx} +115 -81
  105. package/src/dateLookup/dateHeader/{DateHeader.js → DateHeader.tsx} +15 -15
  106. package/src/dateLookup/dateTrigger/DateTrigger.spec.js +0 -22
  107. package/src/dateLookup/dateTrigger/{DateTrigger.js → DateTrigger.tsx} +15 -32
  108. package/src/dateLookup/dayCalendar/{DayCalendar.js → DayCalendar.tsx} +14 -21
  109. package/src/dateLookup/dayCalendar/table/{DayCalendarTable.js → DayCalendarTable.tsx} +26 -37
  110. package/src/dateLookup/getStartOfDay/{getStartOfDay.js → getStartOfDay.tsx} +1 -1
  111. package/src/dateLookup/index.ts +2 -0
  112. package/src/dateLookup/monthCalendar/{MonthCalendar.js → MonthCalendar.tsx} +19 -22
  113. package/src/dateLookup/monthCalendar/table/{MonthCalendarTable.js → MonthCalendarTable.tsx} +31 -30
  114. package/src/dateLookup/yearCalendar/{YearCalendar.js → YearCalendar.tsx} +18 -21
  115. package/src/dateLookup/yearCalendar/table/{YearCalendarTable.js → YearCalendarTable.tsx} +26 -28
  116. package/src/decision/Decision.spec.js +0 -1
  117. package/src/dimmer/Dimmer.tsx +6 -2
  118. package/src/i18n/th.json +2 -2
  119. package/src/index.ts +2 -2
  120. package/src/inlineAlert/InlineAlert.spec.tsx +0 -7
  121. package/src/inlineAlert/InlineAlert.story.tsx +8 -7
  122. package/src/inlineAlert/InlineAlert.tsx +19 -47
  123. package/src/inputs/InputGroup.tsx +3 -3
  124. package/src/inputs/SelectInput.tsx +2 -0
  125. package/src/inputs/_BottomSheet.tsx +21 -26
  126. package/src/inputs/_Popover.tsx +4 -4
  127. package/src/link/Link.story.tsx +16 -16
  128. package/src/loader/Loader.tsx +0 -1
  129. package/src/logo/Logo.css +16 -0
  130. package/src/logo/Logo.js +4 -9
  131. package/src/logo/Logo.less +16 -0
  132. package/src/logo/__snapshots__/Logo.spec.js.snap +104 -8
  133. package/src/main.css +16 -5
  134. package/src/main.less +0 -1
  135. package/src/moneyInput/MoneyInput.story.tsx +3 -3
  136. package/src/nudge/Nudge.spec.tsx +5 -5
  137. package/src/phoneNumberInput/PhoneNumberInput.tsx +2 -1
  138. package/src/phoneNumberInput/utils/cleanNumber/cleanNumber.ts +1 -1
  139. package/src/popover/Popover.tsx +2 -1
  140. package/src/promoCard/PromoCard.tsx +1 -1
  141. package/src/radioGroup/RadioGroup.spec.js +1 -1
  142. package/src/section/Section.story.tsx +2 -1
  143. package/src/segmentedControl/SegmentedControl.spec.tsx +88 -2
  144. package/src/segmentedControl/SegmentedControl.story.tsx +54 -16
  145. package/src/segmentedControl/SegmentedControl.tsx +21 -33
  146. package/src/select/Select.js +2 -3
  147. package/src/statusIcon/StatusIcon.tsx +14 -14
  148. package/src/stepper/deviceDetection.js +1 -2
  149. package/src/stepper/deviceDetection.spec.js +8 -3
  150. package/src/test-utils/index.js +1 -1
  151. package/src/test-utils/story-config.ts +1 -1
  152. package/src/title/Title.spec.tsx +1 -1
  153. package/src/typeahead/Typeahead.spec.js +4 -2
  154. package/src/upload/Upload.spec.js +8 -4
  155. package/src/uploadInput/uploadButton/UploadButton.tsx +1 -0
  156. package/build/styles/dynamicFieldDefinitionList/FormattedValue/FormattedValue.css +0 -5
  157. package/build/types/alert/withArrow/alertArrowPositions.d.ts +0 -9
  158. package/build/types/alert/withArrow/alertArrowPositions.d.ts.map +0 -1
  159. package/build/types/alert/withArrow/index.d.ts +0 -3
  160. package/build/types/alert/withArrow/index.d.ts.map +0 -1
  161. package/build/types/alert/withArrow/withArrow.d.ts +0 -11
  162. package/build/types/alert/withArrow/withArrow.d.ts.map +0 -1
  163. package/build/types/common/requirements.d.ts +0 -3
  164. package/build/types/common/requirements.d.ts.map +0 -1
  165. package/build/types/dynamicFieldDefinitionList/DynamicFieldDefinitionList.d.ts +0 -21
  166. package/build/types/dynamicFieldDefinitionList/DynamicFieldDefinitionList.d.ts.map +0 -1
  167. package/build/types/dynamicFieldDefinitionList/FormattedValue/FormattedValue.d.ts +0 -12
  168. package/build/types/dynamicFieldDefinitionList/FormattedValue/FormattedValue.d.ts.map +0 -1
  169. package/build/types/dynamicFieldDefinitionList/FormattedValue/index.d.ts +0 -2
  170. package/build/types/dynamicFieldDefinitionList/FormattedValue/index.d.ts.map +0 -1
  171. package/build/types/dynamicFieldDefinitionList/index.d.ts +0 -2
  172. package/build/types/dynamicFieldDefinitionList/index.d.ts.map +0 -1
  173. package/build/types/dynamicFieldDefinitionList/utils/createDefinitions.d.ts +0 -2
  174. package/build/types/dynamicFieldDefinitionList/utils/createDefinitions.d.ts.map +0 -1
  175. package/build/types/dynamicFieldDefinitionList/utils/text-format.d.ts +0 -2
  176. package/build/types/dynamicFieldDefinitionList/utils/text-format.d.ts.map +0 -1
  177. package/src/alert/Alert.js +0 -196
  178. package/src/alert/index.js +0 -1
  179. package/src/alert/withArrow/alertArrowPositions.ts +0 -9
  180. package/src/alert/withArrow/index.js +0 -2
  181. package/src/alert/withArrow/withArrow.js +0 -50
  182. package/src/alert/withArrow/withArrow.spec.js +0 -51
  183. package/src/dateLookup/index.js +0 -1
  184. package/src/dynamicFieldDefinitionList/DynamicFieldDefinitionList.js +0 -41
  185. package/src/dynamicFieldDefinitionList/DynamicFieldDefinitionList.spec.js +0 -21
  186. package/src/dynamicFieldDefinitionList/DynamicFieldDefinitionList.story.js +0 -134
  187. package/src/dynamicFieldDefinitionList/FormattedValue/FormattedValue.css +0 -5
  188. package/src/dynamicFieldDefinitionList/FormattedValue/FormattedValue.js +0 -73
  189. package/src/dynamicFieldDefinitionList/FormattedValue/FormattedValue.less +0 -4
  190. package/src/dynamicFieldDefinitionList/FormattedValue/FormattedValue.spec.js +0 -200
  191. package/src/dynamicFieldDefinitionList/FormattedValue/index.js +0 -1
  192. package/src/dynamicFieldDefinitionList/index.js +0 -1
  193. package/src/dynamicFieldDefinitionList/utils/createDefinitions.js +0 -33
  194. package/src/dynamicFieldDefinitionList/utils/createDefinitions.spec.js +0 -83
  195. package/src/dynamicFieldDefinitionList/utils/text-format.js +0 -46
  196. package/src/dynamicFieldDefinitionList/utils/text-format.spec.js +0 -43
  197. /package/src/dateLookup/{DateLookup.messages.js → DateLookup.messages.ts} +0 -0
  198. /package/src/dateLookup/dateHeader/{index.js → index.ts} +0 -0
  199. /package/src/dateLookup/dateTrigger/{index.js → index.ts} +0 -0
  200. /package/src/dateLookup/dayCalendar/{index.js → index.ts} +0 -0
  201. /package/src/dateLookup/dayCalendar/table/{index.js → index.ts} +0 -0
  202. /package/src/dateLookup/getStartOfDay/{index.js → index.ts} +0 -0
  203. /package/src/dateLookup/monthCalendar/{index.js → index.ts} +0 -0
  204. /package/src/dateLookup/monthCalendar/table/{index.js → index.ts} +0 -0
  205. /package/src/dateLookup/yearCalendar/{index.js → index.ts} +0 -0
  206. /package/src/dateLookup/yearCalendar/table/{index.js → index.ts} +0 -0
package/src/index.ts CHANGED
@@ -4,6 +4,7 @@
4
4
  export type { AccordionProps, AccordionItem } from './accordion';
5
5
  export type { AvatarProps } from './avatar';
6
6
  export type { ActionOptionProps } from './actionOption';
7
+ export type { AlertProps, AlertAction, AlertArrowPosition, AlertType } from './alert';
7
8
  export type { BadgeProps } from './badge';
8
9
  export type { CircularButtonProps } from './circularButton';
9
10
  export type { DecisionProps } from './decision/Decision';
@@ -12,6 +13,7 @@ export type { InfoProps } from './info';
12
13
  export type { SummaryProps } from './summary';
13
14
  export type { InputProps } from './inputs/Input';
14
15
  export type { DateInputProps } from './dateInput';
16
+ export type { DateLookupProps } from './dateLookup';
15
17
  export type { InputWithDisplayFormatProps } from './inputWithDisplayFormat';
16
18
  export type { InputGroupProps } from './inputs/InputGroup';
17
19
  export type { LoaderProps } from './loader';
@@ -96,7 +98,6 @@ export { default as Dimmer } from './dimmer';
96
98
  export { default as Display } from './display';
97
99
  export { default as Drawer } from './drawer';
98
100
  export { default as DropFade } from './dropFade';
99
- export { default as DynamicFieldDefinitionList } from './dynamicFieldDefinitionList';
100
101
  export { default as Emphasis } from './emphasis';
101
102
  export { default as FlowNavigation } from './flowNavigation/FlowNavigation';
102
103
  export { default as Header } from './header';
@@ -194,7 +195,6 @@ export { AvatarType } from './avatar';
194
195
  export { InfoPresentation } from './info';
195
196
  export { UploadStep } from './upload';
196
197
  export { DecisionPresentation, DecisionType } from './decision';
197
- export { AlertArrowPosition } from './alert/withArrow';
198
198
  export { LogoType } from './logo';
199
199
  export { FileType } from './common';
200
200
 
@@ -21,13 +21,6 @@ describe('InlineAlert', () => {
21
21
 
22
22
  expect(component).toHaveClass('alert-neutral');
23
23
  });
24
-
25
- it('has a top left arrow', () => {
26
- render(<InlineAlert>{message}</InlineAlert>);
27
- const component = screen.getByRole('alert');
28
-
29
- expect(component).toHaveClass('arrow');
30
- });
31
24
  });
32
25
 
33
26
  describe('render with types', () => {
@@ -31,21 +31,22 @@ export const Basic = () => {
31
31
 
32
32
  let typeClass = '';
33
33
  switch (type) {
34
- case 'error':
35
- case 'negative':
34
+ case Sentiment.ERROR:
35
+ case Sentiment.NEGATIVE:
36
36
  typeClass = 'has-error';
37
37
  break;
38
- case 'success':
39
- case 'positive':
38
+ case Sentiment.SUCCESS:
39
+ case Sentiment.POSITIVE:
40
40
  typeClass = 'has-success';
41
41
  break;
42
- case 'info':
43
- case 'neutral':
42
+ case Sentiment.INFO:
43
+ case Sentiment.NEUTRAL:
44
44
  typeClass = 'has-info';
45
45
  break;
46
- case 'warning':
46
+ case Sentiment.WARNING:
47
47
  typeClass = 'has-warning';
48
48
  break;
49
+ case Sentiment.PENDING:
49
50
  }
50
51
 
51
52
  return (
@@ -1,59 +1,31 @@
1
1
  import { AlertCircle as AlertCircleIcon } from '@transferwise/icons';
2
- import { useTheme } from '@wise/components-theming';
3
2
  import classNames from 'classnames';
4
3
  import { ReactNode } from 'react';
5
4
 
6
- import withArrow, { AlertArrowPosition } from '../alert/withArrow';
7
5
  import { Sentiment } from '../common';
8
- import { SentimentString } from '../common/propsValues/sentiment';
9
6
 
10
7
  export interface InlineAlertProps {
11
8
  id?: string;
12
- type?: Sentiment | SentimentString;
9
+ type?: `${Sentiment}`;
13
10
  className?: string;
14
11
  children: ReactNode;
15
12
  }
16
13
 
17
- const typeClassMap: Record<Sentiment.ERROR | Sentiment.NEGATIVE, string> = {
18
- [Sentiment.ERROR]: 'danger',
19
- [Sentiment.NEGATIVE]: 'danger',
20
- };
21
-
22
- const InlineAlert = ({ id, type = Sentiment.NEUTRAL, className, children }: InlineAlertProps) => {
23
- const { isModern } = useTheme();
24
-
25
- const typeClass = `alert-${typeClassMap[type as Sentiment.ERROR | Sentiment.NEGATIVE] || type}`;
26
-
27
- if (isModern) {
28
- return (
29
- <div role="alert" id={id} className={classNames('alert alert-detach', typeClass, className)}>
30
- {(type === 'error' || type === 'negative') && <AlertCircleIcon />}
31
- <div>{children}</div>
32
- </div>
33
- );
34
- }
35
-
36
- const getAlertContents = ({
37
- children,
38
- className,
39
- }: {
40
- children: ReactNode;
41
- className?: string;
42
- }) => {
43
- return (
44
- <div
45
- role="alert"
46
- id={id}
47
- className={classNames('alert alert-detach p-x-2 p-y-1', typeClass, className)}
48
- >
49
- {children}
50
- </div>
51
- );
52
- };
53
-
54
- const AlertWithArrow = withArrow(getAlertContents, AlertArrowPosition.TOP_LEFT);
55
-
56
- return <AlertWithArrow {...{ id, type, className, children }} />;
57
- };
58
-
59
- export default InlineAlert;
14
+ export default function InlineAlert({
15
+ id,
16
+ type = 'neutral',
17
+ className,
18
+ children,
19
+ }: InlineAlertProps) {
20
+ const danger = type === 'negative' || type === 'error';
21
+ return (
22
+ <div
23
+ role="alert"
24
+ id={id}
25
+ className={classNames('alert alert-detach', `alert-${danger ? 'danger' : type}`, className)}
26
+ >
27
+ {danger && <AlertCircleIcon />}
28
+ <div>{children}</div>
29
+ </div>
30
+ );
31
+ }
@@ -107,9 +107,9 @@ function InputAddon({
107
107
  const ref = useRef<HTMLSpanElement>(null);
108
108
  useResizeObserver(ref, (entry) => {
109
109
  // TODO: Remove fallback once most browsers support `borderBoxSize`
110
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
111
- if (entry.borderBoxSize != null) {
112
- setInputPadding(entry.borderBoxSize[0].inlineSize);
110
+ const inlineSize = entry.borderBoxSize?.[0]?.inlineSize;
111
+ if (inlineSize != null) {
112
+ setInputPadding(inlineSize);
113
113
  } else {
114
114
  const targetStyle = getComputedStyle(entry.target);
115
115
  setInputPadding(
@@ -180,6 +180,7 @@ const defaultRenderTrigger = (({ content, placeholderShown, clear, disabled, siz
180
180
  </span>
181
181
  </span>
182
182
  ),
183
+ initialContentWidth: 24 + 4,
183
184
  padding: 'sm',
184
185
  }}
185
186
  disabled={disabled}
@@ -537,6 +538,7 @@ function SelectInputOptions<T = string>({
537
538
 
538
539
  <section
539
540
  ref={listboxContainerRef}
541
+ tabIndex={-1}
540
542
  className={classNames(
541
543
  'np-select-input-listbox-container',
542
544
  items.some((item) => item.type === 'group') &&
@@ -7,12 +7,12 @@ import {
7
7
  useRole,
8
8
  } from '@floating-ui/react';
9
9
  import { Transition } from '@headlessui/react';
10
+ import { FocusScope } from '@react-aria/focus';
10
11
  import { ThemeProvider, useTheme } from '@wise/components-theming';
11
12
  import classNames from 'classnames';
12
13
  import { useState } from 'react';
13
14
 
14
15
  import { CloseButton } from '../common/closeButton';
15
- import FocusBoundary from '../common/focusBoundary/FocusBoundary';
16
16
  import { PreventScroll } from '../common/preventScroll/PreventScroll';
17
17
  import { Size } from '../common/propsValues/size';
18
18
 
@@ -81,30 +81,25 @@ export function BottomSheet({
81
81
  }}
82
82
  afterLeave={onCloseEnd}
83
83
  >
84
- <FocusBoundary>
84
+ <Transition.Child
85
+ enter="np-bottom-sheet-v2-backdrop-container--enter"
86
+ enterFrom="np-bottom-sheet-v2-backdrop-container--enter-from"
87
+ leave="np-bottom-sheet-v2-backdrop-container--leave"
88
+ leaveTo="np-bottom-sheet-v2-backdrop-container--leave-to"
89
+ >
90
+ <div className="np-bottom-sheet-v2-backdrop" />
91
+ </Transition.Child>
92
+
93
+ <div className="np-bottom-sheet-v2">
85
94
  <Transition.Child
86
- enter="np-bottom-sheet-v2-backdrop-container--enter"
87
- enterFrom="np-bottom-sheet-v2-backdrop-container--enter-from"
88
- leave="np-bottom-sheet-v2-backdrop-container--leave"
89
- leaveTo="np-bottom-sheet-v2-backdrop-container--leave-to"
95
+ className="np-bottom-sheet-v2-content"
96
+ enter="np-bottom-sheet-v2-content--enter"
97
+ enterFrom="np-bottom-sheet-v2-content--enter-from"
98
+ leave="np-bottom-sheet-v2-content--leave"
99
+ leaveTo="np-bottom-sheet-v2-content--leave-to"
90
100
  >
91
- <div className="np-bottom-sheet-v2-backdrop" />
92
- </Transition.Child>
93
-
94
- <div className="np-bottom-sheet-v2">
95
- <Transition.Child
96
- className="np-bottom-sheet-v2-content"
97
- enter="np-bottom-sheet-v2-content--enter"
98
- enterFrom="np-bottom-sheet-v2-content--enter-from"
99
- leave="np-bottom-sheet-v2-content--leave"
100
- leaveTo="np-bottom-sheet-v2-content--leave-to"
101
- >
102
- <FloatingFocusManager
103
- context={context}
104
- initialFocus={initialFocusRef}
105
- guards={false}
106
- modal={false}
107
- >
101
+ <FocusScope>
102
+ <FloatingFocusManager context={context} initialFocus={initialFocusRef}>
108
103
  <div
109
104
  key={floatingKey} // Force inner state invalidation on open
110
105
  ref={refs.setFloating}
@@ -137,9 +132,9 @@ export function BottomSheet({
137
132
  </div>
138
133
  </div>
139
134
  </FloatingFocusManager>
140
- </Transition.Child>
141
- </div>
142
- </FocusBoundary>
135
+ </FocusScope>
136
+ </Transition.Child>
137
+ </div>
143
138
  </Transition>
144
139
  </ThemeProvider>
145
140
  </FloatingPortal>
@@ -13,11 +13,11 @@ import {
13
13
  useRole,
14
14
  } from '@floating-ui/react';
15
15
  import { Transition } from '@headlessui/react';
16
+ import { FocusScope } from '@react-aria/focus';
16
17
  import { ThemeProvider, useTheme } from '@wise/components-theming';
17
18
  import classNames from 'classnames';
18
19
  import { useState } from 'react';
19
20
 
20
- import FocusBoundary from '../common/focusBoundary/FocusBoundary';
21
21
  import { PreventScroll } from '../common/preventScroll/PreventScroll';
22
22
 
23
23
  export interface PopoverProps {
@@ -104,8 +104,8 @@ export function Popover({
104
104
  }}
105
105
  afterLeave={onCloseEnd}
106
106
  >
107
- <FocusBoundary>
108
- <FloatingFocusManager context={context} guards={false} modal={false}>
107
+ <FocusScope>
108
+ <FloatingFocusManager context={context}>
109
109
  <div
110
110
  key={floatingKey} // Force inner state invalidation on open
111
111
  ref={refs.setFloating}
@@ -129,7 +129,7 @@ export function Popover({
129
129
  </div>
130
130
  </div>
131
131
  </FloatingFocusManager>
132
- </FocusBoundary>
132
+ </FocusScope>
133
133
  </Transition>
134
134
  </ThemeProvider>
135
135
  </FloatingPortal>
@@ -29,64 +29,64 @@ export const Basic = () => {
29
29
  Links via <code>{'<Link />'}</code> component in all types of body copy
30
30
  </Title>
31
31
  <Body type={Typography.BODY_LARGE_BOLD} className="m-t-3">
32
- We’re building the world's{' '}
32
+ We’re building the worlds{' '}
33
33
  <Link href="#" target="_blank">
34
34
  most international account
35
35
  </Link>
36
- . We’re building the world's most international account
36
+ . We’re building the worlds most international account
37
37
  </Body>
38
38
  <Body type={Typography.BODY_LARGE} className="m-t-3">
39
- We’re building the world's{' '}
39
+ We’re building the worlds{' '}
40
40
  <Link href="#" target="_blank">
41
41
  most international account
42
42
  </Link>
43
- . We’re building the world's most international account
43
+ . We’re building the worlds most international account
44
44
  </Body>
45
45
  <Body type={Typography.BODY_DEFAULT_BOLD} className="m-t-3">
46
- We’re building the world's{' '}
46
+ We’re building the worlds{' '}
47
47
  <Link href="#" target="_blank">
48
48
  most international account
49
49
  </Link>
50
- . We’re building the world's most international account
50
+ . We’re building the worlds most international account
51
51
  </Body>
52
52
  <Body type={Typography.BODY_DEFAULT} className="m-t-3">
53
- We’re building the world's{' '}
53
+ We’re building the worlds{' '}
54
54
  <Link href="#" target="_blank">
55
55
  most international account
56
56
  </Link>
57
- . We’re building the world's most international account
57
+ . We’re building the worlds most international account
58
58
  </Body>
59
59
 
60
60
  <Title type={Typography.TITLE_SCREEN} className="m-t-3">
61
61
  Links via <code>{'<a>'}</code> tag in all types of body copy
62
62
  </Title>
63
63
  <Body type={Typography.BODY_LARGE_BOLD} className="m-t-3">
64
- We’re building the world's{' '}
64
+ We’re building the worlds{' '}
65
65
  <a href="#" target="_blank">
66
66
  most international account
67
67
  </a>
68
- . We’re building the world's most international account
68
+ . We’re building the worlds most international account
69
69
  </Body>
70
70
  <Body type={Typography.BODY_LARGE} className="m-t-3">
71
- We’re building the world's{' '}
71
+ We’re building the worlds{' '}
72
72
  <a href="#" target="_blank">
73
73
  most international account
74
74
  </a>
75
- . We’re building the world's most international account
75
+ . We’re building the worlds most international account
76
76
  </Body>
77
77
  <Body type={Typography.BODY_DEFAULT_BOLD} className="m-t-3">
78
- We’re building the world's{' '}
78
+ We’re building the worlds{' '}
79
79
  <a href="#" target="_blank">
80
80
  most international account
81
81
  </a>
82
- . We’re building the world's most international account
82
+ . We’re building the worlds most international account
83
83
  </Body>
84
84
  <Body type={Typography.BODY_DEFAULT} className="m-t-3">
85
- We’re building the world's{' '}
85
+ We’re building the worlds{' '}
86
86
  <a href="#" target="_blank">
87
87
  most international account
88
88
  </a>
89
- . We’re building the world's most international account
89
+ . We’re building the worlds most international account
90
90
  </Body>
91
91
  </>
92
92
  );
@@ -54,7 +54,6 @@ const Loader = ({
54
54
  }
55
55
 
56
56
  return () => {
57
- // eslint-disable-next-line fp/no-mutation
58
57
  cancelled = true;
59
58
 
60
59
  clearTimeout(timeout);
package/src/logo/Logo.css CHANGED
@@ -8,3 +8,19 @@
8
8
  .np-theme-personal--dark .np-logo-svg path {
9
9
  fill: var(--color-white);
10
10
  }
11
+ .np-logo-svg--size-sm {
12
+ display: block;
13
+ }
14
+ @media (min-width: 576px) {
15
+ .np-logo-svg--size-sm {
16
+ display: none;
17
+ }
18
+ }
19
+ .np-logo-svg--size-md {
20
+ display: none;
21
+ }
22
+ @media (min-width: 576px) {
23
+ .np-logo-svg--size-md {
24
+ display: block;
25
+ }
26
+ }
package/src/logo/Logo.js CHANGED
@@ -1,9 +1,6 @@
1
1
  import classNames from 'classnames';
2
2
  import PropTypes from 'prop-types';
3
3
 
4
- import { Breakpoint } from '../common';
5
- import { useScreenSize } from '../common/hooks/useScreenSize';
6
-
7
4
  import { LogoType } from './logoTypes';
8
5
  import { ReactComponent as LogoFlagInverse } from './svg/flag-inverse.svg';
9
6
  import { ReactComponent as LogoFlagPlatformInverse } from './svg/flag-platform-white.svg';
@@ -34,22 +31,20 @@ const Logo = ({ className, inverse, type }) => {
34
31
  ];
35
32
  const LogoMd = svgPaths[`${type}${inverse ? '_INVERSE' : ''}`];
36
33
 
37
- const screenMd = useScreenSize(Breakpoint.MEDIUM);
38
-
39
34
  return (
40
35
  <span
41
36
  aria-label={
42
37
  type === LogoType.WISE
43
38
  ? 'Wise'
44
39
  : 'Wise Business' | (type === LogoType.WISE_PLATFORM)
45
- ? 'Wise Platform'
46
- : 'Wise Business'
40
+ ? 'Wise Platform'
41
+ : 'Wise Business'
47
42
  }
48
43
  role="img"
49
44
  className={classNames(className, 'np-logo')}
50
45
  >
51
- {!screenMd && <LogoSm className="np-logo-svg" />}
52
- {screenMd && <LogoMd className="np-logo-svg" />}
46
+ <LogoSm className="np-logo-svg np-logo-svg--size-sm" />
47
+ <LogoMd className="np-logo-svg np-logo-svg--size-md" />
53
48
  </span>
54
49
  );
55
50
  };
@@ -13,4 +13,20 @@
13
13
  fill: var(--color-white);
14
14
  }
15
15
  }
16
+
17
+ &--size-sm {
18
+ display: block;
19
+
20
+ @media (--screen-sm) {
21
+ display: none;
22
+ }
23
+ }
24
+
25
+ &--size-md {
26
+ display: none;
27
+
28
+ @media (--screen-sm) {
29
+ display: block;
30
+ }
31
+ }
16
32
  }
@@ -8,7 +8,7 @@ exports[`Logo on mobile renders only fast flag 1`] = `
8
8
  role="img"
9
9
  >
10
10
  <svg
11
- class="np-logo-svg"
11
+ class="np-logo-svg np-logo-svg--size-sm"
12
12
  fill="none"
13
13
  height="24"
14
14
  width="26"
@@ -19,6 +19,18 @@ exports[`Logo on mobile renders only fast flag 1`] = `
19
19
  fill="#163300"
20
20
  />
21
21
  </svg>
22
+ <svg
23
+ class="np-logo-svg np-logo-svg--size-md"
24
+ fill="none"
25
+ height="24"
26
+ width="106"
27
+ xmlns="http://www.w3.org/2000/svg"
28
+ >
29
+ <path
30
+ d="M58.738.359h6.498l-3.27 23.322h-6.498L58.739.359Zm-8.193 0L46.16 13.794 44.247.359h-4.545L33.96 13.754 33.243.36h-6.299l2.193 23.322h5.223l6.458-14.75 2.272 14.75h5.143L56.725.359h-6.18Zm54.558 13.555H89.674c.08 3.03 1.894 5.023 4.565 5.023 2.014 0 3.608-1.077 4.844-3.13l5.208 2.368C102.501 21.702 98.729 24 94.08 24c-6.339 0-10.545-4.266-10.545-11.123C83.535 5.342 88.478 0 95.455 0c6.14 0 10.007 4.146 10.007 10.605 0 1.076-.12 2.152-.359 3.309Zm-5.78-4.466c0-2.71-1.516-4.425-3.947-4.425-2.512 0-4.585 1.794-5.144 4.425h9.09ZM6.632 7.387 0 15.139h11.844l1.33-3.655H8.1l3.1-3.586.01-.095-2.016-3.471h9.072l-7.032 19.35h4.812L24.538.358H2.6l4.033 7.028Zm69.168-2.364c2.292 0 4.3 1.233 6.055 3.346l.921-6.575C81.143.688 78.93 0 76 0c-5.82 0-9.09 3.409-9.09 7.734 0 3 1.675 4.834 4.426 6.02l1.315.598c2.452 1.047 3.11 1.565 3.11 2.671 0 1.146-1.106 1.874-2.79 1.874-2.782.01-5.034-1.415-6.728-3.847l-.94 6.699C67.234 23.22 69.708 24 72.97 24c5.532 0 8.93-3.19 8.93-7.615 0-3.01-1.335-4.943-4.704-6.458l-1.435-.678c-1.994-.887-2.671-1.375-2.671-2.352 0-1.056.927-1.874 2.71-1.874Z"
31
+ fill="#163300"
32
+ />
33
+ </svg>
22
34
  </span>
23
35
  </div>
24
36
  `;
@@ -31,7 +43,19 @@ exports[`Logo renders wise business logo 1`] = `
31
43
  role="img"
32
44
  >
33
45
  <svg
34
- class="np-logo-svg"
46
+ class="np-logo-svg np-logo-svg--size-sm"
47
+ fill="none"
48
+ height="24"
49
+ width="26"
50
+ xmlns="http://www.w3.org/2000/svg"
51
+ >
52
+ <path
53
+ d="M6.826 7.232 0 15.21h12.188l1.37-3.762H8.335l3.191-3.69.01-.098L9.461 4.09h9.336L11.56 24h4.953L25.25 0H2.676l4.15 7.232Z"
54
+ fill="#163300"
55
+ />
56
+ </svg>
57
+ <svg
58
+ class="np-logo-svg np-logo-svg--size-md"
35
59
  fill="none"
36
60
  height="24"
37
61
  width="106"
@@ -54,7 +78,19 @@ exports[`Logo renders wise business logo inversed 1`] = `
54
78
  role="img"
55
79
  >
56
80
  <svg
57
- class="np-logo-svg"
81
+ class="np-logo-svg np-logo-svg--size-sm"
82
+ fill="none"
83
+ height="24"
84
+ width="26"
85
+ xmlns="http://www.w3.org/2000/svg"
86
+ >
87
+ <path
88
+ d="M6.826 7.232 0 15.21h12.188l1.37-3.762H8.335l3.191-3.69.01-.098L9.461 4.09h9.336L11.56 24h4.953L25.25 0H2.676l4.15 7.232Z"
89
+ fill="#9FE870"
90
+ />
91
+ </svg>
92
+ <svg
93
+ class="np-logo-svg np-logo-svg--size-md"
58
94
  fill="none"
59
95
  height="24"
60
96
  width="106"
@@ -77,7 +113,19 @@ exports[`Logo renders wise logo 1`] = `
77
113
  role="img"
78
114
  >
79
115
  <svg
80
- class="np-logo-svg"
116
+ class="np-logo-svg np-logo-svg--size-sm"
117
+ fill="none"
118
+ height="24"
119
+ width="26"
120
+ xmlns="http://www.w3.org/2000/svg"
121
+ >
122
+ <path
123
+ d="M6.826 7.232 0 15.21h12.188l1.37-3.762H8.335l3.191-3.69.01-.098L9.461 4.09h9.336L11.56 24h4.953L25.25 0H2.676l4.15 7.232Z"
124
+ fill="#163300"
125
+ />
126
+ </svg>
127
+ <svg
128
+ class="np-logo-svg np-logo-svg--size-md"
81
129
  fill="none"
82
130
  height="24"
83
131
  width="106"
@@ -100,7 +148,19 @@ exports[`Logo renders wise logo by default 1`] = `
100
148
  role="img"
101
149
  >
102
150
  <svg
103
- class="np-logo-svg"
151
+ class="np-logo-svg np-logo-svg--size-sm"
152
+ fill="none"
153
+ height="24"
154
+ width="26"
155
+ xmlns="http://www.w3.org/2000/svg"
156
+ >
157
+ <path
158
+ d="M6.826 7.232 0 15.21h12.188l1.37-3.762H8.335l3.191-3.69.01-.098L9.461 4.09h9.336L11.56 24h4.953L25.25 0H2.676l4.15 7.232Z"
159
+ fill="#163300"
160
+ />
161
+ </svg>
162
+ <svg
163
+ class="np-logo-svg np-logo-svg--size-md"
104
164
  fill="none"
105
165
  height="24"
106
166
  width="106"
@@ -123,7 +183,19 @@ exports[`Logo renders wise logo inversed 1`] = `
123
183
  role="img"
124
184
  >
125
185
  <svg
126
- class="np-logo-svg"
186
+ class="np-logo-svg np-logo-svg--size-sm"
187
+ fill="none"
188
+ height="24"
189
+ width="26"
190
+ xmlns="http://www.w3.org/2000/svg"
191
+ >
192
+ <path
193
+ d="M6.826 7.232 0 15.21h12.188l1.37-3.762H8.335l3.191-3.69.01-.098L9.461 4.09h9.336L11.56 24h4.953L25.25 0H2.676l4.15 7.232Z"
194
+ fill="#9FE870"
195
+ />
196
+ </svg>
197
+ <svg
198
+ class="np-logo-svg np-logo-svg--size-md"
127
199
  fill="none"
128
200
  height="24"
129
201
  width="106"
@@ -146,7 +218,19 @@ exports[`Logo renders wise platform logo 1`] = `
146
218
  role="img"
147
219
  >
148
220
  <svg
149
- class="np-logo-svg"
221
+ class="np-logo-svg np-logo-svg--size-sm"
222
+ fill="none"
223
+ height="18"
224
+ width="111"
225
+ xmlns="http://www.w3.org/2000/svg"
226
+ >
227
+ <path
228
+ d="M4.887 5.92 0 11.525h8.726l.98-2.642H5.969L8.252 6.29l.008-.068-1.486-2.508h6.683L8.276 17.7h3.546L18.079.84H1.916l2.97 5.08Zm17.114 11.8V.792h6.15c1.341 0 2.454.24 3.334.719.882.48 1.541 1.134 1.979 1.963.438.83.657 1.762.657 2.798s-.22 1.976-.662 2.806c-.44.829-1.104 1.485-1.988 1.967-.885.482-1.995.723-3.331.723h-4.23V9.603h3.994c.848 0 1.536-.144 2.064-.434.528-.29.914-.684 1.162-1.186.248-.501.37-1.07.37-1.71 0-.639-.122-1.206-.37-1.702-.248-.497-.636-.885-1.166-1.165-.531-.282-1.228-.422-2.093-.422h-3.268v14.735H22h.001ZM38.823.793v16.926h-2.518V.793h2.518ZM45.712 18c-.82 0-1.561-.15-2.224-.45a3.665 3.665 0 0 1-1.572-1.31c-.385-.573-.576-1.275-.576-2.107 0-.717.14-1.307.42-1.768.281-.462.661-.83 1.138-1.1a6.036 6.036 0 0 1 1.6-.612c.59-.139 1.19-.243 1.802-.314.775-.088 1.404-.16 1.887-.218.482-.058.834-.153 1.052-.286.22-.132.33-.347.33-.644v-.058c0-.72-.208-1.28-.62-1.678-.412-.396-1.025-.595-1.84-.595-.813 0-1.514.183-2 .55-.486.366-.822.772-1.007 1.218L41.736 8.1c.28-.772.692-1.395 1.234-1.873a5.034 5.034 0 0 1 1.874-1.041 7.562 7.562 0 0 1 2.232-.327c.516 0 1.065.06 1.647.178a4.949 4.949 0 0 1 1.634.65c.509.313.925.76 1.25 1.342.325.58.49 1.334.49 2.26v8.43h-2.46v-1.736h-.101c-.163.32-.408.634-.733.942-.326.309-.744.565-1.255.77-.512.204-1.123.305-1.836.305Zm.547-1.984c.696 0 1.294-.135 1.79-.405.497-.27.876-.623 1.138-1.062a2.71 2.71 0 0 0 .392-1.409v-1.637c-.09.089-.262.17-.518.244a7.313 7.313 0 0 1-.871.19c-.327.054-.644.1-.952.14l-.774.104c-.489.06-.933.162-1.336.306-.4.144-.722.348-.96.616-.239.267-.358.62-.358 1.062 0 .612.23 1.073.69 1.385.46.31 1.048.466 1.76.466ZM60.833 5.025V7.01h-7.067V5.025h7.067Zm-5.172-3.04h2.518v12.008c0 .48.074.838.22 1.078a1.1 1.1 0 0 0 .568.488c.233.086.487.128.763.128.201 0 .378-.014.53-.04l.354-.066.455 2.041a4.53 4.53 0 0 1-.624.17c-.27.058-.607.09-1.01.095a4.509 4.509 0 0 1-1.853-.347 3.166 3.166 0 0 1-1.39-1.124c-.355-.506-.531-1.143-.531-1.91V1.985Zm13.846 3.041V7.01h-7.312V5.026h7.312ZM64.2 17.72V3.555c0-.794.177-1.453.531-1.98.354-.525.823-.92 1.406-1.18a4.615 4.615 0 0 1 1.904-.393A6.072 6.072 0 0 1 70.14.34l-.59 2c-.117-.034-.27-.074-.454-.12a2.81 2.81 0 0 0-.674-.07c-.612 0-1.048.148-1.309.445-.26.297-.392.728-.392 1.29V17.72H64.2Zm12.182.257c-1.213 0-2.27-.273-3.175-.818-.904-.545-1.606-1.31-2.106-2.289-.5-.981-.75-2.127-.75-3.438 0-1.312.25-2.469.75-3.455.5-.986 1.202-1.753 2.106-2.298.904-.545 1.963-.818 3.175-.818 1.213 0 2.271.273 3.176.818.904.545 1.605 1.312 2.106 2.298.499.986.75 2.138.75 3.455 0 1.316-.251 2.457-.75 3.438-.5.981-1.202 1.744-2.106 2.289-.905.545-1.963.818-3.176.818Zm.008-2.075c.787 0 1.438-.203 1.954-.611.517-.41.9-.95 1.15-1.628.25-.678.374-1.425.374-2.24 0-.815-.124-1.555-.374-2.236-.25-.68-.633-1.227-1.15-1.64-.516-.415-1.167-.62-1.954-.62-.786 0-1.448.206-1.967.62-.519.412-.904.96-1.153 1.64a6.43 6.43 0 0 0-.375 2.236c0 .81.125 1.562.375 2.24.25.677.634 1.22 1.153 1.627.52.408 1.176.613 1.967.613Zm8.044 1.818V5.026h2.434v2.016h.135a3.098 3.098 0 0 1 1.25-1.617 3.618 3.618 0 0 1 2.034-.591 10.677 10.677 0 0 1 1.071.058v2.363a5.1 5.1 0 0 0-.538-.095 5.6 5.6 0 0 0-.775-.054c-.595 0-1.124.122-1.588.368-.464.245-.83.583-1.1 1.017-.27.432-.405.924-.405 1.475v7.752h-2.518v.002Zm8.589 0V5.025h2.418v2.067h.16c.27-.7.71-1.246 1.322-1.641.612-.394 1.345-.592 2.2-.592.854 0 1.59.198 2.177.596.587.396 1.021.942 1.302 1.637h.135c.309-.678.8-1.22 1.474-1.624.674-.405 1.477-.607 2.409-.607 1.174 0 2.132.361 2.876 1.082.744.722 1.117 1.81 1.117 3.265v8.512h-2.519V9.44c0-.86-.239-1.483-.716-1.869-.477-.386-1.047-.578-1.71-.578-.82 0-1.457.246-1.912.739-.455.492-.683 1.125-.683 1.896v8.092h-2.509V9.283c0-.69-.219-1.243-.657-1.662-.437-.419-1.007-.627-1.71-.627-.477 0-.917.122-1.318.368a2.74 2.74 0 0 0-.969 1.02c-.243.435-.365.94-.365 1.513v7.826h-2.519l-.003-.001Z"
229
+ fill="#163300"
230
+ />
231
+ </svg>
232
+ <svg
233
+ class="np-logo-svg np-logo-svg--size-md"
150
234
  fill="none"
151
235
  height="18"
152
236
  width="172"
@@ -169,7 +253,19 @@ exports[`Logo renders wise platform logo inversed 1`] = `
169
253
  role="img"
170
254
  >
171
255
  <svg
172
- class="np-logo-svg"
256
+ class="np-logo-svg np-logo-svg--size-sm"
257
+ fill="none"
258
+ height="18"
259
+ width="111"
260
+ xmlns="http://www.w3.org/2000/svg"
261
+ >
262
+ <path
263
+ d="M4.887 5.918 0 11.523h8.726l.98-2.642H5.969l2.284-2.593.008-.068-1.486-2.508h6.683L8.276 17.699h3.546L18.079.838H1.916l2.97 5.08Zm17.114 11.799V.791h6.15c1.341 0 2.454.24 3.334.719.882.48 1.541 1.134 1.979 1.963.438.83.657 1.762.657 2.798s-.22 1.976-.662 2.806c-.44.83-1.104 1.485-1.988 1.967-.885.482-1.995.723-3.331.723h-4.23V9.6h3.994c.848 0 1.536-.144 2.064-.434.528-.29.914-.684 1.162-1.186.248-.501.37-1.07.37-1.71 0-.639-.122-1.206-.37-1.702-.248-.497-.636-.885-1.166-1.165-.531-.282-1.228-.422-2.093-.422h-3.268v14.735H22h.001ZM38.823.791v16.926h-2.518V.791h2.518Zm6.889 17.207c-.82 0-1.561-.15-2.224-.45a3.665 3.665 0 0 1-1.572-1.31c-.385-.573-.576-1.275-.576-2.107 0-.716.14-1.307.42-1.768.281-.462.661-.83 1.138-1.1a6.036 6.036 0 0 1 1.6-.612c.59-.139 1.19-.243 1.802-.313.775-.09 1.404-.161 1.887-.22.482-.057.834-.152 1.052-.285.22-.132.33-.347.33-.644v-.058c0-.72-.208-1.28-.62-1.678-.412-.396-1.025-.595-1.84-.595-.813 0-1.514.183-2 .55-.486.366-.822.772-1.007 1.218l-2.366-.528c.28-.772.692-1.395 1.234-1.872a5.034 5.034 0 0 1 1.874-1.042 7.562 7.562 0 0 1 2.232-.327c.516 0 1.065.06 1.647.178a4.949 4.949 0 0 1 1.634.65c.509.313.925.76 1.25 1.342.325.58.49 1.334.49 2.26v8.43h-2.46V15.98h-.101c-.163.32-.408.634-.733.942-.326.309-.744.565-1.255.77-.512.204-1.123.305-1.836.305Zm.547-1.984c.696 0 1.294-.135 1.79-.405.497-.27.876-.623 1.138-1.062a2.71 2.71 0 0 0 .392-1.409v-1.637c-.09.089-.262.17-.518.245a7.313 7.313 0 0 1-.871.19 33.88 33.88 0 0 1-.952.14l-.774.103c-.489.06-.933.162-1.336.306-.4.144-.722.348-.96.616-.239.267-.358.62-.358 1.062 0 .612.23 1.073.69 1.385.46.31 1.048.466 1.76.466ZM60.833 5.023v1.984h-7.067V5.023h7.067Zm-5.172-3.04h2.518V13.99c0 .48.074.838.22 1.078a1.1 1.1 0 0 0 .568.488c.233.086.487.128.763.128.201 0 .378-.014.53-.04l.354-.066.455 2.041a4.518 4.518 0 0 1-.624.17c-.27.058-.607.09-1.01.095a4.509 4.509 0 0 1-1.853-.347 3.165 3.165 0 0 1-1.39-1.124c-.355-.506-.531-1.143-.531-1.91V1.983Zm13.846 3.041v1.984h-7.312V5.024h7.312ZM64.2 17.718V3.553c0-.794.177-1.453.531-1.98.354-.525.823-.92 1.406-1.18A4.615 4.615 0 0 1 68.041 0a6.072 6.072 0 0 1 2.098.338l-.59 2c-.117-.034-.27-.074-.454-.12a2.81 2.81 0 0 0-.674-.07c-.612 0-1.048.148-1.309.445-.26.297-.392.728-.392 1.29v13.835H64.2Zm12.182.257c-1.213 0-2.27-.273-3.175-.818-.904-.545-1.606-1.31-2.106-2.289-.5-.981-.75-2.127-.75-3.438 0-1.312.25-2.469.75-3.455.5-.986 1.202-1.753 2.106-2.298.904-.545 1.963-.818 3.175-.818 1.213 0 2.271.273 3.176.818.904.545 1.605 1.312 2.106 2.298.499.986.75 2.138.75 3.455 0 1.316-.251 2.457-.75 3.438-.5.981-1.202 1.744-2.106 2.289-.905.545-1.963.818-3.176.818Zm.008-2.074c.787 0 1.438-.204 1.954-.612.517-.41.9-.95 1.15-1.628.25-.678.374-1.425.374-2.24 0-.815-.124-1.555-.374-2.236-.25-.68-.633-1.227-1.15-1.64-.516-.415-1.167-.62-1.954-.62-.786 0-1.448.206-1.967.62-.519.412-.904.96-1.153 1.64a6.43 6.43 0 0 0-.375 2.236c0 .81.125 1.562.375 2.24.25.677.634 1.22 1.153 1.628.52.407 1.176.612 1.967.612Zm8.044 1.817V5.024h2.434V7.04h.135a3.098 3.098 0 0 1 1.25-1.617 3.619 3.619 0 0 1 2.034-.591 10.666 10.666 0 0 1 1.071.058v2.363a5.1 5.1 0 0 0-.538-.095 5.6 5.6 0 0 0-.775-.054c-.595 0-1.124.122-1.588.368-.464.245-.83.584-1.1 1.017-.27.432-.405.924-.405 1.475v7.752h-2.518v.002Zm8.589 0V5.023h2.418V7.09h.16c.27-.7.71-1.246 1.322-1.641.612-.394 1.345-.592 2.2-.592.854 0 1.59.198 2.177.596.587.396 1.021.942 1.302 1.637h.135c.309-.678.8-1.22 1.474-1.624.674-.405 1.477-.607 2.409-.607 1.174 0 2.132.361 2.876 1.082.744.722 1.117 1.81 1.117 3.265v8.512h-2.519v-8.28c0-.86-.239-1.483-.716-1.869-.477-.386-1.047-.578-1.71-.578-.82 0-1.457.246-1.912.739-.455.492-.683 1.125-.683 1.896v8.092h-2.509V9.281c0-.69-.219-1.242-.657-1.662-.437-.419-1.007-.627-1.71-.627-.477 0-.917.122-1.318.368a2.74 2.74 0 0 0-.969 1.02c-.243.435-.365.94-.365 1.513v7.826h-2.522Z"
264
+ fill="#fff"
265
+ />
266
+ </svg>
267
+ <svg
268
+ class="np-logo-svg np-logo-svg--size-md"
173
269
  fill="none"
174
270
  height="18"
175
271
  width="172"