@transferwise/components 0.0.0-experimental-bb32303 → 0.0.0-experimental-d11e9c5

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 (130) hide show
  1. package/build/avatar/Avatar.js +3 -0
  2. package/build/avatar/Avatar.js.map +1 -1
  3. package/build/avatar/Avatar.mjs +3 -0
  4. package/build/avatar/Avatar.mjs.map +1 -1
  5. package/build/avatarView/AvatarView.js +163 -0
  6. package/build/avatarView/AvatarView.js.map +1 -0
  7. package/build/avatarView/AvatarView.mjs +161 -0
  8. package/build/avatarView/AvatarView.mjs.map +1 -0
  9. package/build/avatarView/NotificationDot.js +59 -0
  10. package/build/avatarView/NotificationDot.js.map +1 -0
  11. package/build/avatarView/NotificationDot.mjs +57 -0
  12. package/build/avatarView/NotificationDot.mjs.map +1 -0
  13. package/build/avatarWrapper/AvatarWrapper.js +10 -4
  14. package/build/avatarWrapper/AvatarWrapper.js.map +1 -1
  15. package/build/avatarWrapper/AvatarWrapper.mjs +10 -4
  16. package/build/avatarWrapper/AvatarWrapper.mjs.map +1 -1
  17. package/build/badge/Badge.js +3 -1
  18. package/build/badge/Badge.js.map +1 -1
  19. package/build/badge/Badge.mjs +3 -1
  20. package/build/badge/Badge.mjs.map +1 -1
  21. package/build/badge/BadgeAssets.js +85 -0
  22. package/build/badge/BadgeAssets.js.map +1 -0
  23. package/build/badge/BadgeAssets.mjs +83 -0
  24. package/build/badge/BadgeAssets.mjs.map +1 -0
  25. package/build/button/Button.js.map +1 -1
  26. package/build/button/Button.mjs.map +1 -1
  27. package/build/button/legacyUtils/legacyUtils.js.map +1 -1
  28. package/build/button/legacyUtils/legacyUtils.mjs.map +1 -1
  29. package/build/common/circle/Circle.js +17 -1
  30. package/build/common/circle/Circle.js.map +1 -1
  31. package/build/common/circle/Circle.mjs +17 -1
  32. package/build/common/circle/Circle.mjs.map +1 -1
  33. package/build/i18n/th.json +5 -0
  34. package/build/i18n/th.json.js +5 -0
  35. package/build/i18n/th.json.js.map +1 -1
  36. package/build/i18n/th.json.mjs +5 -0
  37. package/build/i18n/th.json.mjs.map +1 -1
  38. package/build/index.js +128 -121
  39. package/build/index.js.map +1 -1
  40. package/build/index.mjs +33 -29
  41. package/build/index.mjs.map +1 -1
  42. package/build/main.css +109 -5
  43. package/build/styles/avatarGroup/AvatarGroup.css +29 -0
  44. package/build/styles/avatarView/AvatarView.css +42 -0
  45. package/build/styles/avatarView/NotificationDot.css +20 -0
  46. package/build/styles/badge/Badge.css +6 -5
  47. package/build/styles/common/circle/Circle.css +32 -0
  48. package/build/styles/main.css +109 -5
  49. package/build/types/avatar/Avatar.d.ts +3 -0
  50. package/build/types/avatar/Avatar.d.ts.map +1 -1
  51. package/build/types/avatarGroup/AvatarGroup.d.ts +18 -0
  52. package/build/types/avatarGroup/AvatarGroup.d.ts.map +1 -0
  53. package/build/types/avatarGroup/index.d.ts +3 -0
  54. package/build/types/avatarGroup/index.d.ts.map +1 -0
  55. package/build/types/avatarView/AvatarView.d.ts +19 -0
  56. package/build/types/avatarView/AvatarView.d.ts.map +1 -0
  57. package/build/types/avatarView/NotificationDot.d.ts +8 -0
  58. package/build/types/avatarView/NotificationDot.d.ts.map +1 -0
  59. package/build/types/avatarView/index.d.ts +3 -0
  60. package/build/types/avatarView/index.d.ts.map +1 -0
  61. package/build/types/avatarWrapper/AvatarWrapper.d.ts +3 -0
  62. package/build/types/avatarWrapper/AvatarWrapper.d.ts.map +1 -1
  63. package/build/types/badge/Badge.d.ts +5 -1
  64. package/build/types/badge/Badge.d.ts.map +1 -1
  65. package/build/types/badge/BadgeAssets.d.ts +15 -0
  66. package/build/types/badge/BadgeAssets.d.ts.map +1 -0
  67. package/build/types/badge/index.d.ts +2 -0
  68. package/build/types/badge/index.d.ts.map +1 -1
  69. package/build/types/button/Button.d.ts +1 -1
  70. package/build/types/button/Button.d.ts.map +1 -1
  71. package/build/types/button/legacyUtils/legacyUtils.d.ts +2 -2
  72. package/build/types/button/legacyUtils/legacyUtils.d.ts.map +1 -1
  73. package/build/types/common/circle/Circle.d.ts +2 -0
  74. package/build/types/common/circle/Circle.d.ts.map +1 -1
  75. package/build/types/index.d.ts +3 -1
  76. package/build/types/index.d.ts.map +1 -1
  77. package/package.json +3 -4
  78. package/src/avatar/Avatar.tsx +3 -0
  79. package/src/avatarGroup/AvatarGroup.css +29 -0
  80. package/src/avatarGroup/AvatarGroup.less +42 -0
  81. package/src/avatarGroup/AvatarGroup.story.tsx +284 -0
  82. package/src/avatarGroup/AvatarGroup.tsx +117 -0
  83. package/src/avatarGroup/index.ts +2 -0
  84. package/src/avatarView/AvatarView.css +42 -0
  85. package/src/avatarView/AvatarView.less +33 -0
  86. package/src/avatarView/AvatarView.story.tsx +425 -0
  87. package/src/avatarView/AvatarView.tsx +141 -0
  88. package/src/avatarView/NotificationDot.css +20 -0
  89. package/src/avatarView/NotificationDot.less +24 -0
  90. package/src/avatarView/NotificationDot.tsx +35 -0
  91. package/src/avatarView/index.ts +2 -0
  92. package/src/avatarWrapper/AvatarWrapper.tsx +3 -0
  93. package/src/badge/Badge.css +6 -5
  94. package/src/badge/Badge.less +4 -3
  95. package/src/badge/Badge.tsx +8 -1
  96. package/src/badge/BadgeAssets.tsx +65 -0
  97. package/src/badge/index.ts +3 -0
  98. package/src/button/{Button.spec.tsx → Button.spec.js} +2 -3
  99. package/src/button/Button.tsx +1 -1
  100. package/src/button/legacyUtils/{legacyUtils.spec.tsx → legacyUtils.spec.js} +1 -1
  101. package/src/button/legacyUtils/legacyUtils.ts +2 -2
  102. package/src/common/circle/Circle.css +32 -0
  103. package/src/common/circle/Circle.less +35 -0
  104. package/src/common/circle/Circle.tsx +22 -1
  105. package/src/decision/Decision.story.tsx +10 -46
  106. package/src/flowNavigation/FlowNavigation.story.tsx +10 -48
  107. package/src/i18n/th.json +5 -0
  108. package/src/index.ts +4 -0
  109. package/src/listItem/ListItem.story.tsx +5 -43
  110. package/src/main.css +109 -5
  111. package/src/main.less +2 -0
  112. package/src/modal/{Modal.rtl.spec.tsx → Modal.rtl.spec.js} +7 -8
  113. package/src/navigationOption/NavigationOption.story.tsx +14 -65
  114. package/src/overlayHeader/OverlayHeader.story.tsx +5 -10
  115. package/src/radio/Radio.story.tsx +5 -5
  116. package/src/radioGroup/RadioGroup.story.tsx +3 -3
  117. package/src/selectOption/SelectOption.story.tsx +31 -30
  118. package/src/slidingPanel/SlidingPanel.spec.js +1 -1
  119. package/src/ssr.spec.js +256 -0
  120. package/src/test-utils/{index.tsx → index.js} +6 -11
  121. package/src/test-utils/{jest.setup.ts → jest.setup.js} +8 -13
  122. package/src/tile/Tile.story.tsx +2 -6
  123. package/build/types/test-utils/index.d.ts +0 -158
  124. package/build/types/test-utils/index.d.ts.map +0 -1
  125. package/build/types/test-utils/jest.setup.d.ts +0 -2
  126. package/build/types/test-utils/jest.setup.d.ts.map +0 -1
  127. package/src/ssr.spec.tsx +0 -264
  128. /package/src/button/__snapshots__/{Button.spec.tsx.snap → Button.spec.js.snap} +0 -0
  129. /package/src/dimmer/{Dimmer.rtl.spec.tsx → Dimmer.rtl.spec.js} +0 -0
  130. /package/src/info/{Info.spec.jsx → Info.spec.js} +0 -0
package/src/ssr.spec.tsx DELETED
@@ -1,264 +0,0 @@
1
- /**
2
- * @jest-environment node
3
- */
4
- import { renderToString } from 'react-dom/server';
5
-
6
- import en from './i18n/en.json';
7
-
8
- import * as exposedLibraryItems from '.';
9
-
10
- type ExposedLibraryItemsType = typeof exposedLibraryItems;
11
- type ExposedLibraryKeysType = keyof ExposedLibraryItemsType;
12
-
13
- const excluded = new Set<ExposedLibraryKeysType | string>([
14
- // hooks
15
- 'useSnackbar',
16
- 'useDirection',
17
- 'useLayout',
18
- 'useScreenSize',
19
-
20
- // specific components
21
- 'Provider',
22
- 'BottomSheet',
23
- 'DropFade',
24
- 'SelectInputTriggerButton',
25
- 'Panel',
26
- 'ResponsivePanel',
27
-
28
- // enums
29
- 'Size',
30
- 'Width',
31
- 'Sentiment',
32
- 'Variant',
33
- 'Priority',
34
- 'ControlType',
35
- 'Type',
36
- 'Theme',
37
- 'DateMode',
38
- 'MonthFormat',
39
- 'Position',
40
- 'Scroll',
41
- 'ProfileType',
42
- 'Breakpoint',
43
- 'Layout',
44
- 'Status',
45
- 'MarkdownNodeType',
46
- 'AvatarType',
47
- 'InfoPresentation',
48
- 'UploadStep',
49
- 'DecisionPresentation',
50
- 'DecisionType',
51
- 'AlertArrowPosition',
52
- 'LogoType',
53
- 'FileType',
54
- 'Direction',
55
- 'Typography',
56
-
57
- // types
58
- 'SearchInputProps',
59
- 'SelectInputItem',
60
- 'SelectInputOptionContentProps',
61
- 'SelectInputProps',
62
- 'UploadedFile',
63
- 'UploadError',
64
- 'UploadResponse',
65
- 'LayoutDirection',
66
-
67
- // utils
68
- 'SUPPORTED_LANGUAGES',
69
- 'RTL_LANGUAGES',
70
- 'DEFAULT_LANG',
71
- 'DEFAULT_LOCALE',
72
- 'adjustLocale',
73
- 'getLangFromLocale',
74
- 'getCountryFromLocale',
75
- 'getDirectionFromLocale',
76
- 'isServerSide',
77
- 'isBrowser',
78
-
79
- // other
80
- 'translations',
81
- ]);
82
-
83
- function isNotExcluded(item: ExposedLibraryKeysType) {
84
- return !excluded.has(item);
85
- }
86
-
87
- describe('Server side rendering', () => {
88
- const componentNames = (
89
- Object.keys(exposedLibraryItems) as (keyof ExposedLibraryItemsType)[]
90
- ).filter((moduleName) => isNotExcluded(moduleName));
91
-
92
- // stick all possible properties we might need to render all components in here
93
- const allProps: Record<string, unknown> = {
94
- currencies: [],
95
- steps: [],
96
- stepper: {
97
- steps: [],
98
- },
99
- items: [],
100
- children: 'yo',
101
- id: '1',
102
- text: 'test',
103
- timeout: 0,
104
- timestamp: 1,
105
- title: 'trolo',
106
- name: 'lolo',
107
- label: 'hello',
108
- content: 'world',
109
- currency: 'XYZ',
110
- amount: 0,
111
- options: [],
112
- model: {},
113
- fields: {},
114
- media: <h1>Hello</h1>,
115
- onClick: jest.fn(),
116
- onChange: jest.fn(),
117
- status: 'processing',
118
- size: 'sm',
119
- body: 'body',
120
- onClose: jest.fn(),
121
- onDismiss: jest.fn(),
122
- onRemove: jest.fn(),
123
- radios: [
124
- {
125
- id: 'id-test-0',
126
- label: 'Radio1',
127
- },
128
- {
129
- id: 'id-test-0',
130
- label: 'Radio1',
131
- },
132
- ],
133
- position: 'left',
134
- open: true,
135
- tabs: [],
136
- direction: {
137
- xs: 'column',
138
- sm: 'row',
139
- md: 'column',
140
- lg: 'row',
141
- },
142
- alt: '',
143
- src: '',
144
- details: 'yo',
145
- icon: <svg />,
146
- badge: <svg />,
147
- link: 'link',
148
- href: '#',
149
- description: 'description',
150
- 'aria-label': 'a label',
151
- logo: <svg />,
152
- chips: [
153
- {
154
- value: 1,
155
- label: 'One',
156
- },
157
- {
158
- value: 2,
159
- label: 'Two',
160
- },
161
- ],
162
- segments: [
163
- {
164
- id: '1',
165
- value: 'accounting',
166
- label: 'Accounting',
167
- },
168
- {
169
- id: '2',
170
- value: 'payroll',
171
- label: 'Payroll',
172
- },
173
- {
174
- id: '3',
175
- value: 'reporting',
176
- label: 'Reporting',
177
- },
178
- ],
179
- };
180
-
181
- // Override props in case of name collision.
182
- const overrideProps: Partial<Record<keyof ExposedLibraryItemsType, Record<string, unknown>>> = {
183
- Alert: { children: undefined, message: 'Fluffy kittens', size: undefined },
184
- Card: { isExpanded: true },
185
- CheckboxButton: { children: undefined, onChange: jest.fn() },
186
- Typeahead: { size: 'md' },
187
- InputWithDisplayFormat: { displayPattern: '**-**' },
188
- TextareaWithDisplayFormat: { displayPattern: '**-**' },
189
- Sticky: { position: 'top' },
190
- MoneyInput: { selectedCurrency: { currency: 'EUR' } },
191
- Tabs: { selected: 1, onTabSelect: jest.fn() },
192
- Markdown: { children: '# Markdown string' },
193
- SnackbarConsumer: {
194
- children: jest.fn(),
195
- },
196
- SnackbarContext: {
197
- children: jest.fn(),
198
- },
199
- Popover: {
200
- children: <div />,
201
- },
202
- Progress: {
203
- progress: { value: 50, max: 100 },
204
- },
205
- ProgressBar: {
206
- progress: { value: 50, max: 100 },
207
- },
208
- Field: {
209
- model: 'a model',
210
- type: 'text',
211
- children: <input />,
212
- },
213
- Input: {
214
- children: undefined,
215
- },
216
- SearchInput: {
217
- children: undefined,
218
- },
219
- TextArea: {
220
- children: undefined,
221
- },
222
- Summary: {
223
- status: 'done',
224
- content: undefined,
225
- },
226
- Modal: { position: 'top' },
227
- ActionOption: { action: 'hello' },
228
- DateLookup: { value: new Date() },
229
- Link: { size: 16 },
230
- Tooltip: { children: <>yo</> },
231
- SelectOption: { placeholder: { media: <img alt="img" /> } },
232
- };
233
-
234
- const { Provider } = exposedLibraryItems;
235
- type ComponentWithProvider = React.ComponentType<unknown> & {
236
- Provider?: React.ComponentType<unknown>;
237
- };
238
-
239
- componentNames.forEach((componentName: ExposedLibraryKeysType) => {
240
- it(`can render component: ${componentName}`, () => {
241
- const Component = exposedLibraryItems[componentName] as ComponentWithProvider;
242
- const newProps = { ...allProps };
243
-
244
- Object.keys(overrideProps[componentName] ?? {}).forEach((propertyToOverrideKey) => {
245
- const key = propertyToOverrideKey as keyof (typeof overrideProps)[typeof componentName];
246
- newProps[key] = overrideProps?.[componentName]?.[key];
247
- });
248
-
249
- const view = renderToString(
250
- <Provider i18n={{ locale: 'en-GB', messages: en }}>
251
- {componentName.endsWith('Context') && Component.Provider ? (
252
- <Component.Provider {...newProps} />
253
- ) : (
254
- <div>
255
- <Component {...newProps} />
256
- </div>
257
- )}
258
- </Provider>,
259
- );
260
-
261
- expect(view).toStrictEqual(expect.any(String));
262
- });
263
- });
264
- });
File without changes