@transferwise/components 46.148.1 → 46.149.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 (77) hide show
  1. package/build/flowNavigation/FlowNavigation.js +56 -42
  2. package/build/flowNavigation/FlowNavigation.js.map +1 -1
  3. package/build/flowNavigation/FlowNavigation.mjs +56 -42
  4. package/build/flowNavigation/FlowNavigation.mjs.map +1 -1
  5. package/build/main.css +31 -14
  6. package/build/overlayHeader/OverlayHeader.js +3 -0
  7. package/build/overlayHeader/OverlayHeader.js.map +1 -1
  8. package/build/overlayHeader/OverlayHeader.mjs +3 -0
  9. package/build/overlayHeader/OverlayHeader.mjs.map +1 -1
  10. package/build/prompt/CriticalBanner/CriticalBanner.js +1 -1
  11. package/build/prompt/CriticalBanner/CriticalBanner.js.map +1 -1
  12. package/build/prompt/CriticalBanner/CriticalBanner.mjs +1 -1
  13. package/build/prompt/CriticalBanner/CriticalBanner.mjs.map +1 -1
  14. package/build/styles/css/neptune.css +11 -11
  15. package/build/styles/flowNavigation/FlowNavigation.css +16 -2
  16. package/build/styles/less/legacy-variables.less +1 -1
  17. package/build/styles/less/neptune-tokens.less +2 -2
  18. package/build/styles/main.css +31 -14
  19. package/build/styles/props/custom-media.css +1 -1
  20. package/build/styles/props/neptune-tokens.css +1 -1
  21. package/build/styles/sentimentSurface/SentimentSurface.css +1 -1
  22. package/build/styles/styles/less/neptune.css +11 -11
  23. package/build/types/flowNavigation/FlowNavigation.d.ts +15 -3
  24. package/build/types/flowNavigation/FlowNavigation.d.ts.map +1 -1
  25. package/build/types/overlayHeader/OverlayHeader.d.ts +6 -0
  26. package/build/types/overlayHeader/OverlayHeader.d.ts.map +1 -1
  27. package/package.json +15 -15
  28. package/src/body/Body.story.tsx +1 -5
  29. package/src/calendar/Calendar.story.tsx +1 -4
  30. package/src/checkbox/Checkbox.story.tsx +1 -4
  31. package/src/chevron/Chevron.story.tsx +1 -1
  32. package/src/container/Container.story.tsx +1 -4
  33. package/src/dateInput/DateInput.story.tsx +1 -4
  34. package/src/dateLookup/DateLookup.story.tsx +1 -4
  35. package/src/decision/Decision.story.tsx +1 -4
  36. package/src/definitionList/DefinitionList.story.tsx +1 -4
  37. package/src/dimmer/Dimmer.story.tsx +1 -5
  38. package/src/display/Display.story.tsx +1 -4
  39. package/src/emphasis/Emphasis.story.tsx +1 -5
  40. package/src/expressiveMoneyInput/ExpressiveMoneyInput.story.tsx +1 -4
  41. package/src/field/Field.story.tsx +1 -4
  42. package/src/flowNavigation/FlowNavigation.css +16 -2
  43. package/src/flowNavigation/FlowNavigation.less +20 -4
  44. package/src/flowNavigation/FlowNavigation.story.tsx +249 -0
  45. package/src/flowNavigation/FlowNavigation.tsx +91 -58
  46. package/src/header/Header.story.tsx +1 -4
  47. package/src/inputWithDisplayFormat/InputWithDisplayFormat.story.tsx +1 -4
  48. package/src/inputs/InputGroup.story.tsx +1 -4
  49. package/src/inputs/SearchInput.story.tsx +1 -4
  50. package/src/inputs/TextArea.story.tsx +1 -4
  51. package/src/instructionsList/InstructionsList.story.tsx +1 -4
  52. package/src/label/Label.story.tsx +1 -4
  53. package/src/link/Link.story.tsx +1 -4
  54. package/src/loader/Loader.story.tsx +1 -1
  55. package/src/main.css +31 -14
  56. package/src/markdown/Markdown.story.tsx +1 -5
  57. package/src/money/Money.story.tsx +0 -1
  58. package/src/moneyInput/MoneyInput.story.tsx +1 -4
  59. package/src/overlayHeader/OverlayHeader.story.tsx +4 -0
  60. package/src/overlayHeader/OverlayHeader.tsx +6 -0
  61. package/src/phoneNumberInput/PhoneNumberInput.story.tsx +1 -4
  62. package/src/promoCard/PromoCard.story.tsx +1 -4
  63. package/src/promoCard/PromoCardGroup.story.tsx +1 -4
  64. package/src/prompt/CriticalBanner/CriticalBanner.story.tsx +1 -1
  65. package/src/prompt/CriticalBanner/CriticalBanner.tsx +1 -1
  66. package/src/radio/Radio.story.tsx +1 -4
  67. package/src/radioGroup/RadioGroup.story.tsx +1 -4
  68. package/src/segmentedControl/SegmentedControl.story.tsx +1 -4
  69. package/src/sentimentSurface/SentimentSurface.css +1 -1
  70. package/src/statusIcon/StatusIcon.story.tsx +1 -1
  71. package/src/styles/less/neptune.css +11 -11
  72. package/src/textareaWithDisplayFormat/TextareaWithDisplayFormat.story.tsx +1 -4
  73. package/src/title/Title.story.tsx +1 -5
  74. package/src/typeahead/Typeahead.story.tsx +1 -4
  75. package/src/upload/Upload.story.tsx +1 -4
  76. package/src/uploadInput/UploadInput.story.tsx +1 -4
  77. package/src/flowNavigation/FlowNavigation.test.js +0 -190
@@ -7,6 +7,7 @@ import { CloseButton } from '../common/closeButton';
7
7
  import FlowHeader from '../common/flowHeader/FlowHeader';
8
8
  import Logo from '../logo';
9
9
  import Stepper, { type Step } from '../stepper/Stepper';
10
+ import Container from '../container';
10
11
 
11
12
  import { useScreenSize } from '../common/hooks/useScreenSize';
12
13
  import messages from './FlowNavigation.messages';
@@ -14,6 +15,8 @@ import AnimatedLabel from './animatedLabel';
14
15
  import IconButton from '../iconButton';
15
16
  import { ArrowLeft } from '@transferwise/icons';
16
17
 
18
+ const defaultLogo = <Logo />;
19
+
17
20
  export interface FlowNavigationProps {
18
21
  /** @default 0 */
19
22
  activeStep?: number;
@@ -26,86 +29,116 @@ export interface FlowNavigationProps {
26
29
  onClose?: () => void;
27
30
  /** Called when the back button is clicked. If not provided the back button won't show. The back button only shows on small screens */
28
31
  onGoBack?: () => void;
29
- /** Steps to be displayed in stepper. If you don't need the stepper, please use OverlayHeader instead */
30
- steps: readonly Step[];
32
+ /** Steps to be displayed in stepper. If not provided, the stepper won't show. */
33
+ steps?: readonly Step[];
34
+ /**
35
+ * When true, renders in composable mode using a fluid Container.
36
+ * This allows the FlowNavigation to be used within custom layout containers.
37
+ * @default false
38
+ */
39
+ composable?: boolean;
40
+ /**
41
+ * Controls whether the bottom border is displayed.
42
+ * Only applies to the composable variant. Non-composable variant always uses the done state.
43
+ * @default true
44
+ */
45
+ showBottomBorder?: boolean;
31
46
  }
32
47
 
33
48
  const FlowNavigation = ({
34
49
  activeStep = 0,
35
50
  avatar,
36
- logo = <Logo />,
51
+ logo = defaultLogo,
37
52
  done = false,
38
53
  onClose,
39
54
  onGoBack,
40
55
  steps,
56
+ composable = false,
57
+ showBottomBorder = true,
41
58
  }: FlowNavigationProps) => {
42
59
  const intl = useIntl();
43
-
44
- const closeButton = onClose != null && <CloseButton size="lg" onClick={onClose} />;
45
-
46
60
  const screenSm = useScreenSize(Breakpoint.SMALL);
47
61
  const screenLg = useScreenSize(Breakpoint.LARGE);
48
62
 
49
- const newAvatar = done ? null : avatar;
63
+ const closeButton = onClose != null && <CloseButton size="lg" onClick={onClose} />;
50
64
 
65
+ const newAvatar = done ? null : avatar;
51
66
  const displayGoBack = onGoBack != null && activeStep > 0;
52
67
 
68
+ const flowHeaderContent = (
69
+ <FlowHeader
70
+ className={clsx(
71
+ 'np-flow-navigation__content',
72
+ !composable && 'p-x-3',
73
+ screenSm == null
74
+ ? 'np-flow-navigation--hidden'
75
+ : {
76
+ 'np-flow-navigation--xs-max': !screenSm,
77
+ // Size switches on parent container which may or may not have the same size as the window.
78
+ 'np-flow-navigation--sm': screenSm,
79
+ 'np-flow-navigation--lg': screenLg,
80
+ },
81
+ )}
82
+ leftContent={
83
+ <>
84
+ {!screenSm && displayGoBack ? (
85
+ <IconButton
86
+ size={40}
87
+ priority="tertiary"
88
+ type="default"
89
+ aria-label={intl.formatMessage(messages.back)}
90
+ onClick={onGoBack}
91
+ >
92
+ <ArrowLeft />
93
+ </IconButton>
94
+ ) : (
95
+ <div className="np-flow-header__left">{logo}</div>
96
+ )}
97
+ {!screenSm && !done && steps && steps.length > 0 && (
98
+ <AnimatedLabel className="m-x-1" steps={steps} activeLabel={activeStep} />
99
+ )}
100
+ </>
101
+ }
102
+ rightContent={
103
+ <div className="np-flow-header__right d-flex align-items-center justify-content-end order-2--lg">
104
+ {newAvatar}
105
+ {newAvatar && closeButton && <span className="m-x-1" />}
106
+ {closeButton}
107
+ </div>
108
+ }
109
+ bottomContent={
110
+ !done && steps && steps.length > 0 ? (
111
+ <Stepper
112
+ activeStep={activeStep}
113
+ steps={steps}
114
+ className={clsx('np-flow-navigation__stepper')}
115
+ />
116
+ ) : null
117
+ }
118
+ layout={!screenLg ? Layout.VERTICAL : Layout.HORIZONTAL}
119
+ />
120
+ );
121
+
122
+ if (composable) {
123
+ return (
124
+ <Container
125
+ size="fluid"
126
+ className={clsx('np-flow-navigation np-flow-navigation--composable', {
127
+ 'np-flow-navigation--border-bottom': showBottomBorder,
128
+ })}
129
+ >
130
+ {flowHeaderContent}
131
+ </Container>
132
+ );
133
+ }
134
+
53
135
  return (
54
136
  <div
55
- className={clsx('np-flow-navigation d-flex align-items-center justify-content-center p-y-3', {
137
+ className={clsx('np-flow-navigation p-y-3', {
56
138
  'np-flow-navigation--border-bottom': !done,
57
139
  })}
58
140
  >
59
- <FlowHeader
60
- className={clsx(
61
- 'np-flow-navigation__content p-x-3',
62
- screenSm == null
63
- ? 'np-flow-navigation--hidden'
64
- : {
65
- 'np-flow-navigation--xs-max': !screenSm,
66
- // Size switches on parent container which may or may not have the same size as the window.
67
- 'np-flow-navigation--sm': screenSm,
68
- 'np-flow-navigation--lg': screenLg,
69
- },
70
- )}
71
- leftContent={
72
- <>
73
- {!screenSm && displayGoBack ? (
74
- <IconButton
75
- size={40}
76
- priority="tertiary"
77
- type="default"
78
- aria-label={intl.formatMessage(messages.back)}
79
- onClick={onGoBack}
80
- >
81
- <ArrowLeft />
82
- </IconButton>
83
- ) : (
84
- <div className="np-flow-header__left">{logo}</div>
85
- )}
86
- {!screenSm && !done && (
87
- <AnimatedLabel className="m-x-1" steps={steps} activeLabel={activeStep} />
88
- )}
89
- </>
90
- }
91
- rightContent={
92
- <div className="np-flow-header__right d-flex align-items-center justify-content-end order-2--lg">
93
- {newAvatar}
94
- {newAvatar && closeButton && <span className="m-x-1" />}
95
- {closeButton}
96
- </div>
97
- }
98
- bottomContent={
99
- !done && steps.length > 0 ? (
100
- <Stepper
101
- activeStep={activeStep}
102
- steps={steps}
103
- className={clsx('np-flow-navigation__stepper')}
104
- />
105
- ) : null
106
- }
107
- layout={!screenLg ? Layout.VERTICAL : Layout.HORIZONTAL}
108
- />
141
+ {flowHeaderContent}
109
142
  </div>
110
143
  );
111
144
  };
@@ -1,9 +1,6 @@
1
1
  import { Meta, StoryObj } from '@storybook/react-webpack5';
2
2
  import Header, { HeaderProps } from './Header';
3
- import {
4
- createSandboxStory,
5
- globalScope,
6
- } from '../../.storybook/components/sandbox/SandboxEditor';
3
+ import { createSandboxStory, globalScope } from '../../.storybook/components/sandbox/SandboxEditor';
7
4
 
8
5
  const withContainer = (Story: any) => (
9
6
  <div style={{ display: 'flex', justifyContent: 'center' }}>
@@ -1,9 +1,6 @@
1
1
  import { userEvent, within, fn } from 'storybook/test';
2
2
 
3
- import {
4
- createSandboxStory,
5
- globalScope,
6
- } from '../../.storybook/components/sandbox/SandboxEditor';
3
+ import { createSandboxStory, globalScope } from '../../.storybook/components/sandbox/SandboxEditor';
7
4
  import InputWithDisplayFormat, { InputWithDisplayFormatProps } from '.';
8
5
  import { Field, FieldProps } from '../field/Field';
9
6
  import { Meta, type StoryObj } from '@storybook/react-webpack5';
@@ -2,10 +2,7 @@ import type { Meta, StoryObj } from '@storybook/react-webpack5';
2
2
  import { Search } from '@transferwise/icons';
3
3
  import { useRef, useState } from 'react';
4
4
 
5
- import {
6
- createSandboxStory,
7
- globalScope,
8
- } from '../../.storybook/components/sandbox/SandboxEditor';
5
+ import { createSandboxStory, globalScope } from '../../.storybook/components/sandbox/SandboxEditor';
9
6
  import { Button } from '..';
10
7
  import { Field } from '../field/Field';
11
8
 
@@ -1,10 +1,7 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react-webpack5';
2
2
  import { useState } from 'react';
3
3
 
4
- import {
5
- createSandboxStory,
6
- globalScope,
7
- } from '../../.storybook/components/sandbox/SandboxEditor';
4
+ import { createSandboxStory, globalScope } from '../../.storybook/components/sandbox/SandboxEditor';
8
5
  import { Size } from '../common';
9
6
  import { Field } from '../field/Field';
10
7
 
@@ -1,10 +1,7 @@
1
1
  import { useEffect, useState } from 'react';
2
2
  import { Meta, StoryObj } from '@storybook/react-webpack5';
3
3
 
4
- import {
5
- createSandboxStory,
6
- globalScope,
7
- } from '../../.storybook/components/sandbox/SandboxEditor';
4
+ import { createSandboxStory, globalScope } from '../../.storybook/components/sandbox/SandboxEditor';
8
5
  import { Field } from '../field/Field';
9
6
  import { Sentiment } from '../common';
10
7
  import { TextArea } from './TextArea';
@@ -4,10 +4,7 @@ import { fn } from 'storybook/test';
4
4
  import Link from '../link';
5
5
 
6
6
  import InstructionsList, { InstructionsListProps } from './InstructionsList';
7
- import {
8
- createSandboxStory,
9
- globalScope,
10
- } from '../../.storybook/components/sandbox/SandboxEditor';
7
+ import { createSandboxStory, globalScope } from '../../.storybook/components/sandbox/SandboxEditor';
11
8
 
12
9
  export default {
13
10
  component: InstructionsList,
@@ -1,7 +1,4 @@
1
- import {
2
- createSandboxStory,
3
- globalScope,
4
- } from '../../.storybook/components/sandbox/SandboxEditor';
1
+ import { createSandboxStory, globalScope } from '../../.storybook/components/sandbox/SandboxEditor';
5
2
  import Info from '../info';
6
3
  import { Label } from './Label';
7
4
 
@@ -4,10 +4,7 @@ import Title from '../title/Title';
4
4
 
5
5
  import SentimentSurface from '../sentimentSurface';
6
6
  import Link from '.';
7
- import {
8
- createSandboxStory,
9
- globalScope,
10
- } from '../../.storybook/components/sandbox/SandboxEditor';
7
+ import { createSandboxStory, globalScope } from '../../.storybook/components/sandbox/SandboxEditor';
11
8
 
12
9
  export default {
13
10
  component: Link,
@@ -1,5 +1,5 @@
1
1
  import { Meta, StoryObj } from '@storybook/react-webpack5';
2
- import { createSandboxStory } from '../../.storybook/components/sandbox/SandboxEditor';
2
+ import { createSandboxStory } from '../../.storybook/components/sandbox/SandboxEditor';
3
3
 
4
4
  import Loader from './Loader';
5
5
 
package/src/main.css CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly, this file was auto-generated.
3
- * Generated on Wed, 27 May 2026 15:50:09 GMT
3
+ * Generated on Tue, 09 Jun 2026 08:11:03 GMT
4
4
  */
5
5
 
6
6
  :root {
@@ -144,7 +144,7 @@
144
144
 
145
145
  /**
146
146
  * Do not edit directly, this file was auto-generated.
147
- * Generated on Wed, 27 May 2026 15:50:10 GMT
147
+ * Generated on Tue, 09 Jun 2026 08:11:04 GMT
148
148
  */
149
149
 
150
150
  .np-theme-personal {
@@ -328,7 +328,7 @@
328
328
 
329
329
  /**
330
330
  * Do not edit directly, this file was auto-generated.
331
- * Generated on Wed, 27 May 2026 15:50:10 GMT
331
+ * Generated on Tue, 09 Jun 2026 08:11:04 GMT
332
332
  */
333
333
 
334
334
  .np-theme-personal--forest-green {
@@ -512,7 +512,7 @@
512
512
 
513
513
  /**
514
514
  * Do not edit directly, this file was auto-generated.
515
- * Generated on Wed, 27 May 2026 15:50:10 GMT
515
+ * Generated on Tue, 09 Jun 2026 08:11:04 GMT
516
516
  */
517
517
 
518
518
  .np-theme-personal--bright-green {
@@ -696,7 +696,7 @@
696
696
 
697
697
  /**
698
698
  * Do not edit directly, this file was auto-generated.
699
- * Generated on Wed, 27 May 2026 15:50:10 GMT
699
+ * Generated on Tue, 09 Jun 2026 08:11:04 GMT
700
700
  */
701
701
 
702
702
  .np-theme-personal--dark {
@@ -880,7 +880,7 @@
880
880
 
881
881
  /**
882
882
  * Do not edit directly, this file was auto-generated.
883
- * Generated on Wed, 27 May 2026 15:50:10 GMT
883
+ * Generated on Tue, 09 Jun 2026 08:11:04 GMT
884
884
  */
885
885
 
886
886
  .np-theme-platform {
@@ -1064,7 +1064,7 @@
1064
1064
 
1065
1065
  /**
1066
1066
  * Do not edit directly, this file was auto-generated.
1067
- * Generated on Wed, 27 May 2026 15:50:10 GMT
1067
+ * Generated on Tue, 09 Jun 2026 08:11:04 GMT
1068
1068
  */
1069
1069
 
1070
1070
  .np-theme-platform--forest-green {
@@ -1248,7 +1248,7 @@
1248
1248
 
1249
1249
  /**
1250
1250
  * Do not edit directly, this file was auto-generated.
1251
- * Generated on Wed, 27 May 2026 15:50:10 GMT
1251
+ * Generated on Tue, 09 Jun 2026 08:11:04 GMT
1252
1252
  */
1253
1253
 
1254
1254
  .np-theme-business {
@@ -1433,7 +1433,7 @@
1433
1433
 
1434
1434
  /**
1435
1435
  * Do not edit directly, this file was auto-generated.
1436
- * Generated on Wed, 27 May 2026 15:50:10 GMT
1436
+ * Generated on Tue, 09 Jun 2026 08:11:04 GMT
1437
1437
  */
1438
1438
 
1439
1439
  .np-theme-business--dark {
@@ -1618,7 +1618,7 @@
1618
1618
 
1619
1619
  /**
1620
1620
  * Do not edit directly, this file was auto-generated.
1621
- * Generated on Wed, 27 May 2026 15:50:10 GMT
1621
+ * Generated on Tue, 09 Jun 2026 08:11:04 GMT
1622
1622
  */
1623
1623
 
1624
1624
  .np-theme-business--forest-green {
@@ -1803,7 +1803,7 @@
1803
1803
 
1804
1804
  /**
1805
1805
  * Do not edit directly, this file was auto-generated.
1806
- * Generated on Wed, 27 May 2026 15:50:11 GMT
1806
+ * Generated on Tue, 09 Jun 2026 08:11:04 GMT
1807
1807
  */
1808
1808
 
1809
1809
  .np-theme-business--bright-green {
@@ -1990,7 +1990,7 @@
1990
1990
 
1991
1991
  /**
1992
1992
  * Do not edit directly, this file was auto-generated.
1993
- * Generated on Wed, 27 May 2026 15:50:11 GMT
1993
+ * Generated on Tue, 09 Jun 2026 08:11:04 GMT
1994
1994
  */
1995
1995
 
1996
1996
  .wds-sentiment-negative-light-base {
@@ -28754,12 +28754,15 @@ button.np-option {
28754
28754
  }
28755
28755
 
28756
28756
  .np-flow-navigation {
28757
+ display: flex;
28758
+ align-items: center;
28759
+ justify-content: center;
28757
28760
  width: 100%;
28758
- min-height: 97px;
28761
+ box-sizing: border-box;
28762
+ min-height: 96px;
28759
28763
  }
28760
28764
 
28761
28765
  .np-flow-navigation--border-bottom {
28762
- min-height: 96px;
28763
28766
  border-bottom: 1px solid rgba(0,0,0,0.10196);
28764
28767
  border-bottom: 1px solid var(--color-border-neutral);
28765
28768
  }
@@ -28844,6 +28847,20 @@ html:not([dir="rtl"]) .np-flow-navigation--sm .np-flow-navigation__stepper {
28844
28847
  visibility: hidden;
28845
28848
  }
28846
28849
 
28850
+ .np-flow-navigation--composable {
28851
+ min-height: 80px;
28852
+ }
28853
+
28854
+ @media (min-width: 320.02px) {
28855
+ .np-flow-navigation--composable {
28856
+ min-height: 128px;
28857
+ }
28858
+ }
28859
+
28860
+ .np-flow-navigation--composable .np-flow-navigation__content {
28861
+ max-width: none;
28862
+ }
28863
+
28847
28864
  .np-theme-personal--forest-green .np-flow-navigation .np-flow-header__left path,
28848
28865
  .np-theme-personal--bright-green .np-flow-navigation .np-flow-header__left path,
28849
28866
  .np-theme-personal--dark .np-flow-navigation .np-flow-header__left path {
@@ -1,10 +1,7 @@
1
1
  import { Meta, StoryObj } from '@storybook/react-webpack5';
2
2
 
3
3
  import Markdown from './Markdown';
4
- import {
5
- createSandboxStory,
6
- globalScope,
7
- } from '../../.storybook/components/sandbox/SandboxEditor';
4
+ import { createSandboxStory, globalScope } from '../../.storybook/components/sandbox/SandboxEditor';
8
5
 
9
6
  export default {
10
7
  component: Markdown,
@@ -34,4 +31,3 @@ export const Basic: Story = {
34
31
  - sublist`,
35
32
  },
36
33
  };
37
-
@@ -21,4 +21,3 @@ export const Basic: Story = {
21
21
  currency: 'GBP',
22
22
  },
23
23
  };
24
-
@@ -3,10 +3,7 @@ import { within, userEvent, expect } from 'storybook/test';
3
3
  import { Padlock } from '@transferwise/icons';
4
4
  import { useState } from 'react';
5
5
 
6
- import {
7
- createSandboxStory,
8
- globalScope,
9
- } from '../../.storybook/components/sandbox/SandboxEditor';
6
+ import { createSandboxStory, globalScope } from '../../.storybook/components/sandbox/SandboxEditor';
10
7
  import MoneyInput, { CurrencyOptionItem } from '.';
11
8
  import { Field } from '../field/Field';
12
9
  import translations from '../i18n/en.json';
@@ -15,9 +15,13 @@ interface CustomControls {
15
15
  }
16
16
  export type StoryArgs = OverlayHeaderProps & CustomControls;
17
17
 
18
+ /**
19
+ * @deprecated Use `FlowNavigation` component instead
20
+ */
18
21
  const meta: Meta<StoryArgs> = {
19
22
  component: OverlayHeader,
20
23
  title: 'Navigation/OverlayHeader',
24
+ tags: ['deprecated'],
21
25
  argTypes: {
22
26
  avatarType: { control: 'select', options: ['', 'Business', 'Profile'] },
23
27
  avatarURL: { control: 'text' },
@@ -5,6 +5,9 @@ import { CloseButton } from '../common/closeButton';
5
5
  import FlowHeader from '../common/flowHeader';
6
6
  import Logo from '../logo';
7
7
 
8
+ /**
9
+ * @deprecated Use `FlowNavigation` component instead, with `steps={[]}`
10
+ */
8
11
  export interface OverlayHeaderProps {
9
12
  /** An Avatar */
10
13
  avatar?: React.ReactNode;
@@ -15,6 +18,9 @@ export interface OverlayHeaderProps {
15
18
 
16
19
  const defaultLogo = <Logo />;
17
20
 
21
+ /**
22
+ * @deprecated Use `FlowNavigation` component instead
23
+ */
18
24
  export default function OverlayHeader({ avatar, onClose, logo = defaultLogo }: OverlayHeaderProps) {
19
25
  const closeButton = onClose && <CloseButton size={Size.LARGE} onClick={onClose} />;
20
26
  return (
@@ -1,9 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react-webpack5';
2
2
 
3
- import {
4
- createSandboxStory,
5
- globalScope,
6
- } from '../../.storybook/components/sandbox/SandboxEditor';
3
+ import { createSandboxStory, globalScope } from '../../.storybook/components/sandbox/SandboxEditor';
7
4
  import { Field } from '../field/Field';
8
5
  import PhoneNumberInput from './PhoneNumberInput';
9
6
 
@@ -2,10 +2,7 @@ import type { Meta, StoryObj } from '@storybook/react-webpack5';
2
2
  import { StarFill } from '@transferwise/icons';
3
3
 
4
4
  import PromoCard, { type PromoCardCheckedProps, type PromoCardLinkProps } from './PromoCard';
5
- import {
6
- createSandboxStory,
7
- globalScope,
8
- } from '../../.storybook/components/sandbox/SandboxEditor';
5
+ import { createSandboxStory, globalScope } from '../../.storybook/components/sandbox/SandboxEditor';
9
6
 
10
7
  const meta: Meta<typeof PromoCard> = {
11
8
  component: PromoCard,
@@ -2,10 +2,7 @@ import { Meta, StoryObj } from '@storybook/react-webpack5';
2
2
 
3
3
  import PromoCard from './PromoCard';
4
4
  import PromoCardGroup from './PromoCardGroup';
5
- import {
6
- createSandboxStory,
7
- globalScope,
8
- } from '../../.storybook/components/sandbox/SandboxEditor';
5
+ import { createSandboxStory, globalScope } from '../../.storybook/components/sandbox/SandboxEditor';
9
6
 
10
7
  const PromoCards = () => {
11
8
  return (
@@ -19,7 +19,7 @@ const meta = {
19
19
  component: CriticalBanner,
20
20
  title: 'Prompts/CriticalBanner',
21
21
  tags: ['new'],
22
- parameters: { docs: { toc: true }, padding: '0', },
22
+ parameters: { docs: { toc: true }, padding: '0' },
23
23
  args: {
24
24
  title: 'Your account requires verification',
25
25
  description: 'Please verify your identity to continue using all features.',
@@ -80,9 +80,9 @@ export const CriticalBanner = ({
80
80
 
81
81
  const bannerSurface = (
82
82
  <Container
83
+ ref={containerRef}
83
84
  size="fluid"
84
85
  as={PrimitivePrompt as ElementType}
85
- ref={containerRef}
86
86
  id={id}
87
87
  sentiment={sentiment}
88
88
  emphasis={sentiment === 'neutral' ? 'base' : 'elevated'}
@@ -1,9 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react-webpack5';
2
2
  import { useState } from 'react';
3
- import {
4
- createSandboxStory,
5
- globalScope,
6
- } from '../../.storybook/components/sandbox/SandboxEditor';
3
+ import { createSandboxStory, globalScope } from '../../.storybook/components/sandbox/SandboxEditor';
7
4
  import Radio, { type RadioProps } from './Radio';
8
5
  import AvatarView from '../avatarView';
9
6
  import { Flag } from '@wise/art';
@@ -1,8 +1,5 @@
1
1
  import { Flag } from '@wise/art';
2
- import {
3
- createSandboxStory,
4
- globalScope,
5
- } from '../../.storybook/components/sandbox/SandboxEditor';
2
+ import { createSandboxStory, globalScope } from '../../.storybook/components/sandbox/SandboxEditor';
6
3
  import RadioGroup, { RadioGroupProps, RadioGroupRadio } from './RadioGroup';
7
4
  import { Field } from '../field/Field';
8
5
  import { Meta, StoryObj } from '@storybook/react-webpack5';
@@ -1,10 +1,7 @@
1
1
  import { StoryFn, StoryObj } from '@storybook/react-webpack5';
2
2
  import React from 'react';
3
3
 
4
- import {
5
- createSandboxStory,
6
- globalScope,
7
- } from '../../.storybook/components/sandbox/SandboxEditor';
4
+ import { createSandboxStory, globalScope } from '../../.storybook/components/sandbox/SandboxEditor';
8
5
  import Button from '../button';
9
6
 
10
7
  import SegmentedControl from './SegmentedControl';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly, this file was auto-generated.
3
- * Generated on Wed, 27 May 2026 15:50:11 GMT
3
+ * Generated on Tue, 09 Jun 2026 08:11:04 GMT
4
4
  */
5
5
 
6
6
 
@@ -39,7 +39,7 @@ export const Playground: Story = {
39
39
 
40
40
  export const Sandbox = createSandboxStory({
41
41
  code: `<StatusIcon sentiment="positive" size={48} />`,
42
- scope: { StatusIcon },
42
+ scope: { StatusIcon },
43
43
  });
44
44
 
45
45
  /**