@transferwise/components 46.144.0 → 46.144.1

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 (147) hide show
  1. package/README.md +2 -2
  2. package/build/actionOption/ActionOption.js.map +1 -1
  3. package/build/actionOption/ActionOption.mjs.map +1 -1
  4. package/build/checkboxOption/CheckboxOption.js.map +1 -1
  5. package/build/checkboxOption/CheckboxOption.mjs.map +1 -1
  6. package/build/container/Container.js.map +1 -1
  7. package/build/container/Container.mjs.map +1 -1
  8. package/build/legacylistItem/LegacyListItem.js.map +1 -1
  9. package/build/legacylistItem/LegacyListItem.mjs.map +1 -1
  10. package/build/listItem/AvatarLayout/ListItemAvatarLayout.js.map +1 -1
  11. package/build/listItem/AvatarLayout/ListItemAvatarLayout.mjs.map +1 -1
  12. package/build/listItem/AvatarView/ListItemAvatarView.js.map +1 -1
  13. package/build/listItem/AvatarView/ListItemAvatarView.mjs.map +1 -1
  14. package/build/listItem/Button/ListItemButton.js.map +1 -1
  15. package/build/listItem/Button/ListItemButton.mjs.map +1 -1
  16. package/build/listItem/Checkbox/ListItemCheckbox.js.map +1 -1
  17. package/build/listItem/Checkbox/ListItemCheckbox.mjs.map +1 -1
  18. package/build/listItem/IconButton/ListItemIconButton.js.map +1 -1
  19. package/build/listItem/IconButton/ListItemIconButton.mjs.map +1 -1
  20. package/build/listItem/Image/ListItemImage.js.map +1 -1
  21. package/build/listItem/Image/ListItemImage.mjs.map +1 -1
  22. package/build/listItem/ListItem.js.map +1 -1
  23. package/build/listItem/ListItem.mjs.map +1 -1
  24. package/build/listItem/Navigation/ListItemNavigation.js.map +1 -1
  25. package/build/listItem/Navigation/ListItemNavigation.mjs.map +1 -1
  26. package/build/listItem/Prompt/ListItemPrompt.js.map +1 -1
  27. package/build/listItem/Prompt/ListItemPrompt.mjs.map +1 -1
  28. package/build/listItem/Radio/ListItemRadio.js.map +1 -1
  29. package/build/listItem/Radio/ListItemRadio.mjs.map +1 -1
  30. package/build/listItem/Switch/ListItemSwitch.js.map +1 -1
  31. package/build/listItem/Switch/ListItemSwitch.mjs.map +1 -1
  32. package/build/loader/Loader.js +1 -1
  33. package/build/loader/Loader.js.map +1 -1
  34. package/build/loader/Loader.mjs +1 -1
  35. package/build/loader/Loader.mjs.map +1 -1
  36. package/build/logo/Logo.js +1 -1
  37. package/build/logo/Logo.js.map +1 -1
  38. package/build/logo/Logo.mjs +1 -1
  39. package/build/logo/Logo.mjs.map +1 -1
  40. package/build/main.css +11 -11
  41. package/build/navigationOption/NavigationOption.js.map +1 -1
  42. package/build/navigationOption/NavigationOption.mjs.map +1 -1
  43. package/build/navigationOptionsList/NavigationOptionsList.js.map +1 -1
  44. package/build/navigationOptionsList/NavigationOptionsList.mjs.map +1 -1
  45. package/build/prompt/ActionPrompt/ActionPrompt.js.map +1 -1
  46. package/build/prompt/ActionPrompt/ActionPrompt.mjs.map +1 -1
  47. package/build/prompt/CriticalBanner/CriticalBanner.js.map +1 -1
  48. package/build/prompt/CriticalBanner/CriticalBanner.mjs.map +1 -1
  49. package/build/prompt/InfoPrompt/InfoPrompt.js.map +1 -1
  50. package/build/prompt/InfoPrompt/InfoPrompt.mjs.map +1 -1
  51. package/build/radioOption/RadioOption.js.map +1 -1
  52. package/build/radioOption/RadioOption.mjs.map +1 -1
  53. package/build/segmentedControl/SegmentedControl.js +1 -1
  54. package/build/segmentedControl/SegmentedControl.js.map +1 -1
  55. package/build/segmentedControl/SegmentedControl.mjs +1 -1
  56. package/build/segmentedControl/SegmentedControl.mjs.map +1 -1
  57. package/build/styles/css/neptune.css +11 -11
  58. package/build/styles/less/legacy-variables.less +1 -1
  59. package/build/styles/less/neptune-tokens.less +2 -2
  60. package/build/styles/main.css +11 -11
  61. package/build/styles/props/custom-media.css +1 -1
  62. package/build/styles/props/neptune-tokens.css +1 -1
  63. package/build/styles/styles/less/neptune.css +11 -11
  64. package/build/summary/Summary.js +1 -1
  65. package/build/summary/Summary.js.map +1 -1
  66. package/build/summary/Summary.mjs +1 -1
  67. package/build/summary/Summary.mjs.map +1 -1
  68. package/build/switchOption/SwitchOption.js +1 -1
  69. package/build/switchOption/SwitchOption.js.map +1 -1
  70. package/build/switchOption/SwitchOption.mjs +1 -1
  71. package/build/switchOption/SwitchOption.mjs.map +1 -1
  72. package/build/types/actionOption/ActionOption.d.ts +1 -1
  73. package/build/types/checkboxOption/CheckboxOption.d.ts +1 -1
  74. package/build/types/container/Container.d.ts +1 -1
  75. package/build/types/legacylistItem/LegacyListItem.d.ts +1 -1
  76. package/build/types/listItem/AvatarLayout/ListItemAvatarLayout.d.ts +1 -1
  77. package/build/types/listItem/AvatarView/ListItemAvatarView.d.ts +1 -1
  78. package/build/types/listItem/Button/ListItemButton.d.ts +1 -1
  79. package/build/types/listItem/Checkbox/ListItemCheckbox.d.ts +1 -1
  80. package/build/types/listItem/IconButton/ListItemIconButton.d.ts +1 -1
  81. package/build/types/listItem/Image/ListItemImage.d.ts +1 -1
  82. package/build/types/listItem/ListItem.d.ts +1 -1
  83. package/build/types/listItem/Navigation/ListItemNavigation.d.ts +1 -1
  84. package/build/types/listItem/Prompt/ListItemPrompt.d.ts +1 -1
  85. package/build/types/listItem/Radio/ListItemRadio.d.ts +1 -1
  86. package/build/types/listItem/Switch/ListItemSwitch.d.ts +1 -1
  87. package/build/types/logo/Logo.d.ts +1 -1
  88. package/build/types/navigationOption/NavigationOption.d.ts +1 -1
  89. package/build/types/navigationOptionsList/NavigationOptionsList.d.ts +1 -1
  90. package/build/types/prompt/ActionPrompt/ActionPrompt.d.ts +1 -1
  91. package/build/types/prompt/CriticalBanner/CriticalBanner.d.ts +1 -1
  92. package/build/types/prompt/InfoPrompt/InfoPrompt.d.ts +1 -1
  93. package/build/types/radioOption/RadioOption.d.ts +1 -1
  94. package/build/types/summary/Summary.d.ts +1 -1
  95. package/build/types/switchOption/SwitchOption.d.ts +1 -1
  96. package/package.json +20 -21
  97. package/src/actionButton/ActionButton.story.tsx +1 -1
  98. package/src/actionOption/ActionOption.tsx +1 -1
  99. package/src/button/_stories/Button.accessibility.docs.mdx +1 -1
  100. package/src/button/_stories/Button.story.tsx +6 -6
  101. package/src/checkboxButton/CheckboxButton.story.tsx +1 -1
  102. package/src/checkboxOption/CheckboxOption.tsx +1 -1
  103. package/src/chips/Chips.story.tsx +3 -3
  104. package/src/circularButton/CircularButton.story.tsx +4 -4
  105. package/src/container/Container.tsx +1 -1
  106. package/src/divider/Divider.story.tsx +2 -2
  107. package/src/header/Header.accessibility.docs.mdx +1 -1
  108. package/src/header/Header.story.tsx +1 -1
  109. package/src/iconButton/IconButton.story.tsx +4 -4
  110. package/src/legacylistItem/LegacyListItem.tsx +1 -1
  111. package/src/listItem/AdditionalInfo/ListItemAdditionalInfo.story.tsx +1 -1
  112. package/src/listItem/AvatarLayout/ListItemAvatarLayout.story.tsx +1 -1
  113. package/src/listItem/AvatarLayout/ListItemAvatarLayout.tsx +1 -1
  114. package/src/listItem/AvatarView/ListItemAvatarView.story.tsx +3 -3
  115. package/src/listItem/AvatarView/ListItemAvatarView.tsx +1 -1
  116. package/src/listItem/Button/ListItemButton.story.tsx +3 -3
  117. package/src/listItem/Button/ListItemButton.tsx +1 -1
  118. package/src/listItem/Checkbox/ListItemCheckbox.tsx +1 -1
  119. package/src/listItem/IconButton/ListItemIconButton.story.tsx +4 -4
  120. package/src/listItem/IconButton/ListItemIconButton.tsx +1 -1
  121. package/src/listItem/Image/ListItemImage.tsx +1 -1
  122. package/src/listItem/ListItem.tsx +1 -1
  123. package/src/listItem/Navigation/ListItemNavigation.tsx +1 -1
  124. package/src/listItem/Prompt/ListItemPrompt.tsx +1 -1
  125. package/src/listItem/Radio/ListItemRadio.tsx +1 -1
  126. package/src/listItem/Switch/ListItemSwitch.tsx +1 -1
  127. package/src/listItem/_stories/ListItem.disabled.story.tsx +1 -1
  128. package/src/listItem/_stories/ListItem.story.tsx +5 -5
  129. package/src/loader/Loader.tsx +1 -1
  130. package/src/logo/Logo.story.tsx +1 -1
  131. package/src/logo/Logo.tsx +1 -1
  132. package/src/main.css +11 -11
  133. package/src/navigationOption/NavigationOption.tsx +1 -1
  134. package/src/navigationOptionsList/NavigationOptionsList.tsx +1 -1
  135. package/src/prompt/ActionPrompt/ActionPrompt.story.tsx +1 -1
  136. package/src/prompt/ActionPrompt/ActionPrompt.tsx +1 -1
  137. package/src/prompt/CriticalBanner/CriticalBanner.story.tsx +1 -1
  138. package/src/prompt/CriticalBanner/CriticalBanner.tsx +1 -1
  139. package/src/prompt/InfoPrompt/InfoPrompt.story.tsx +1 -1
  140. package/src/prompt/InfoPrompt/InfoPrompt.tsx +1 -1
  141. package/src/radioOption/RadioOption.tsx +1 -1
  142. package/src/segmentedControl/SegmentedControl.test.tsx +1 -1
  143. package/src/segmentedControl/SegmentedControl.tsx +1 -1
  144. package/src/styles/less/neptune.css +11 -11
  145. package/src/summary/Summary.tsx +1 -1
  146. package/src/switch/Switch.story.tsx +1 -1
  147. package/src/switchOption/SwitchOption.tsx +1 -1
@@ -32,7 +32,7 @@ export type CriticalBannerProps = {
32
32
  * A full-width, non-dismissible banner for critical messages such as account blocks or
33
33
  * time-sensitive actions that require immediate user attention.
34
34
 
35
- * @see {@link https://wise.design/components/critical-banner Design Spec}
35
+ * @see {@link https://docs.wise.design/components/critical-banner Design Spec}
36
36
  */
37
37
  export declare const CriticalBanner: ({ sentiment, title, description, media, action, actionSecondary, expanded: expandedProp, onToggle, id, className, "data-testid": testId, }: CriticalBannerProps) => import("react").JSX.Element;
38
38
  export default CriticalBanner;
@@ -61,7 +61,7 @@ export type InfoPromptProps = Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'ar
61
61
  *
62
62
  * Use this component to replace the deprecated `Alert` component (run codemod to migrate: **`npx \@wise/wds-codemods@latest info-prompt`**).
63
63
  *
64
- * Guidance can be found in the [design system](https://wise.design/components/info-prompt).
64
+ * Guidance can be found in the [design system](https://docs.wise.design/components/info-prompt).
65
65
  */
66
66
  export declare const InfoPrompt: ({ sentiment, onDismiss, media, action, title, description, className, "aria-live": ariaLive, "data-testid": dataTestId, ...restProps }: InfoPromptProps) => import("react").JSX.Element;
67
67
  //# sourceMappingURL=InfoPrompt.d.ts.map
@@ -14,7 +14,7 @@ export interface RadioOptionProps<T extends string | number = string> extends Re
14
14
  * @deprecatedSince 46.104.0
15
15
  * @see [Source](../listItem/ListItem.tsx)
16
16
  * @see [Storybook](https://storybook.wise.design/?path=/docs/content-listitem--docs)
17
- * @see [Design docs](https://wise.design/components/list-item)
17
+ * @see [Design docs](https://docs.wise.design/components/list-item)
18
18
  * @see [Release notes](https://transferwise.atlassian.net/wiki/spaces/DS/pages/3647251055/List+Item+release+notes)
19
19
  */
20
20
  declare function RadioOption<T extends string | number = ''>({ 'aria-label': ariaLabel, media, title, content, id, name, checked, onChange, complex, disabled, value, showMediaCircle, showMediaAtAllSizes, isContainerAligned, }: RadioOptionProps<T>): import("react").JSX.Element;
@@ -59,7 +59,7 @@ export interface Props {
59
59
  * @deprecatedSince 46.104.0
60
60
  * @see [Source](../listItem/ListItem.tsx)
61
61
  * @see [Storybook](https://storybook.wise.design/?path=/docs/content-listitem--docs)
62
- * @see [Design docs](https://wise.design/components/list-item)
62
+ * @see [Design docs](https://docs.wise.design/components/list-item)
63
63
  * @see [Release notes](https://transferwise.atlassian.net/wiki/spaces/DS/pages/3647251055/List+Item+release+notes)
64
64
  */
65
65
  declare const Summary: ({ action, as: Element, className, content, description, help, icon, illustration, info, status, title, }: Props) => import("react").JSX.Element;
@@ -17,7 +17,7 @@ export type SwitchOptionProps = {
17
17
  * @deprecatedSince 46.104.0
18
18
  * @see [Source](../listItem/ListItem.tsx)
19
19
  * @see [Storybook](https://storybook.wise.design/?path=/docs/content-listitem--docs)
20
- * @see [Design docs](https://wise.design/components/list-item)
20
+ * @see [Design docs](https://docs.wise.design/components/list-item)
21
21
  * @see [Release notes](https://transferwise.atlassian.net/wiki/spaces/DS/pages/3647251055/List+Item+release+notes)
22
22
  */
23
23
  declare const SwitchOption: ({ checked, complex, content, disabled, id, media, onChange, title, showMediaCircle, showMediaAtAllSizes, isContainerAligned, "aria-label": ariaLabel, }: SwitchOptionProps) => import("react").JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@transferwise/components",
3
- "version": "46.144.0",
3
+ "version": "46.144.1",
4
4
  "description": "Neptune React components",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -41,20 +41,20 @@
41
41
  "devDependencies": {
42
42
  "@babel/core": "^7.29.0",
43
43
  "@babel/plugin-transform-runtime": "^7.29.0",
44
- "@babel/preset-env": "^7.29.3",
44
+ "@babel/preset-env": "^7.29.5",
45
45
  "@babel/preset-react": "^7.28.5",
46
46
  "@babel/preset-typescript": "^7.28.5",
47
- "@formatjs/cli": "^6.14.4",
47
+ "@formatjs/cli": "^6.16.0",
48
48
  "@rollup/plugin-babel": "^7.0.0",
49
49
  "@rollup/plugin-json": "^6.1.0",
50
50
  "@rollup/plugin-node-resolve": "^16.0.3",
51
51
  "@rollup/plugin-typescript": "^12.3.0",
52
52
  "@rollup/plugin-url": "^8.0.2",
53
- "@storybook/addon-a11y": "^10.3.6",
54
- "@storybook/addon-docs": "^10.3.6",
53
+ "@storybook/addon-a11y": "^10.4.0",
54
+ "@storybook/addon-docs": "^10.4.0",
55
55
  "@storybook/addon-mcp": "^0.6.0",
56
56
  "@storybook/addon-webpack5-compiler-babel": "^4.0.1",
57
- "@storybook/react-webpack5": "^10.3.6",
57
+ "@storybook/react-webpack5": "^10.4.0",
58
58
  "@testing-library/dom": "^10.4.1",
59
59
  "@testing-library/jest-dom": "^6.9.1",
60
60
  "@testing-library/react": "^16.3.2",
@@ -63,7 +63,7 @@
63
63
  "@tsconfig/recommended": "^1.0.13",
64
64
  "@types/babel__core": "^7.20.5",
65
65
  "@types/commonmark": "^0.27.10",
66
- "@types/jest": "^30.0.0",
66
+ "@types/jest": "^29.5.14",
67
67
  "@types/lodash": "4.17.24",
68
68
  "@types/lodash.clamp": "^4.0.9",
69
69
  "@types/lodash.debounce": "^4.0.9",
@@ -73,32 +73,31 @@
73
73
  "@monaco-editor/react": "^4.7.0",
74
74
  "monaco-editor": "^0.55.1",
75
75
  "monaco-editor-webpack-plugin": "^7.1.1",
76
- "@wise/art": "^2.30.1",
76
+ "@wise/art": "^2.30.3",
77
77
  "@wise/eslint-config": "^14.2.1",
78
78
  "babel-plugin-formatjs": "^10.5.41",
79
79
  "eslint": "^9.39.4",
80
- "eslint-plugin-storybook": "^10.3.6",
80
+ "eslint-plugin-storybook": "^10.4.0",
81
81
  "gulp": "^5.0.1",
82
- "jest": "^30.3.0",
82
+ "jest": "^29.7.0",
83
83
  "jest-environment-jsdom": "^29.7.0",
84
84
  "jest-fetch-mock": "^3.0.3",
85
85
  "jsdom-testing-mocks": "^1.16.0",
86
86
  "lodash.times": "^4.3.2",
87
87
  "react-intl": "^7.1.14",
88
88
  "react-live": "^4.1.8",
89
- "rollup": "^4.60.2",
89
+ "rollup": "^4.60.4",
90
90
  "rollup-preserve-directives": "^1.1.3",
91
- "storybook": "^10.3.6",
91
+ "storybook": "^10.4.0",
92
92
  "storybook-addon-tag-badges": "^3.1.0",
93
93
  "storybook-addon-test-codegen": "^3.0.1",
94
94
  "@transferwise/less-config": "3.1.2",
95
- "@transferwise/neptune-css": "14.28.0",
96
95
  "@wise/components-theming": "1.10.2",
97
96
  "@wise/wds-configs": "0.0.0"
98
97
  },
99
98
  "peerDependencies": {
100
99
  "@transferwise/icons": "^3 || ^4",
101
- "@wise/art": "^2.30",
100
+ "@wise/art": "^2.30.3",
102
101
  "@wise/components-theming": "^1.10.1",
103
102
  "framer-motion": "^12.23.26",
104
103
  "react": ">=18",
@@ -112,8 +111,8 @@
112
111
  "@react-aria/focus": "^3.22.0",
113
112
  "@react-aria/overlays": "^3.32.0",
114
113
  "@transferwise/formatting": "^2.14.1",
115
- "@transferwise/neptune-tokens": "^8.23.0",
116
- "@transferwise/neptune-validation": "^3.3.3",
114
+ "@transferwise/neptune-tokens": "^8.24.0",
115
+ "@transferwise/neptune-validation": "^3.3.4",
117
116
  "clsx": "^2.1.1",
118
117
  "commonmark": "^0.31.2",
119
118
  "core-js": "^3.49.0",
@@ -134,18 +133,18 @@
134
133
  "dev:translations": "pnpm build:crowdin-source-file",
135
134
  "storybook:dev": "storybook dev -p 4477",
136
135
  "storybook:build": "storybook build --stats-json",
137
- "build:css": "gulp compileLess --dest=src",
138
136
  "build": "npm-run-all build:*",
139
137
  "build:clean": "rm -rf lib build",
138
+ "build:css-main": "gulp compileLess --dest=src",
139
+ "build:css-utils": "npm-run-all build:css-utils:*",
140
+ "build:css-utils:copy-brand-assets": "cpx 'src/styles/img/**' build/styles/img && cpx 'src/styles/fonts/*' build/styles/fonts",
141
+ "build:css-utils:compile": "gulp compileLess --src='src/styles/less' --dest=build/styles/css",
142
+ "build:css-utils:copy-vars": "gulp copyPropsAndVars --src='src/styles/props' --dest='build/styles/props' && gulp copyPropsAndVars --src='src/styles/variables' --dest='build/styles/less'",
140
143
  "build:crowdin-source-file": "formatjs extract 'src/**/*.messages.+(js|ts|tsx)' --out-file src/i18n/en.json --format simple && prettier --write src/i18n/*.json",
141
144
  "build:js": "rollup --config --sourcemap",
142
145
  "build:copy-files": "cpx 'src/**/!(db)/*.{json,svg}' build",
143
146
  "build:copy-css": "cpx 'src/main.css' build/ & cpx 'src/**/*.css' build/styles/",
144
147
  "build:copy-lang": "cpx 'src/i18n/*.json' build/i18n && cpx 'src/i18n/index.js' build/i18n",
145
- "build:neptune-css": "npm-run-all build:neptune-css:*",
146
- "build:neptune-css:copy-brand-assets": "cpx 'src/styles/img/**' build/styles/img && cpx 'src/styles/fonts/*' build/styles/fonts",
147
- "build:neptune-css:compile": "gulp compileLess --src='src/styles/less' --dest=build/styles/css",
148
- "build:neptune-css:copy-vars": "gulp copyPropsAndVars --src='src/styles/props' --dest='build/styles/props' && gulp copyPropsAndVars --src='src/styles/variables' --dest='build/styles/less'",
149
148
  "docs": "pnpm build",
150
149
  "test": "TZ=UTC jest",
151
150
  "test:watch": "TZ=UTC jest --watch",
@@ -7,7 +7,7 @@ import { withVariantConfig } from '../../.storybook/helpers';
7
7
  /**
8
8
  * This component is deprecated please use new [Button](?path=/docs/actions-button--docs).
9
9
  *
10
- * For more details please refer to the [release notes](https://transferwise.atlassian.net/wiki/spaces/DS/pages/3542158737/Button+Updates+New+sizes+Loader+and+Cue) and the [design spec](https://wise.design/components/button).
10
+ * For more details please refer to the [release notes](https://transferwise.atlassian.net/wiki/spaces/DS/pages/3542158737/Button+Updates+New+sizes+Loader+and+Cue) and the [design spec](https://docs.wise.design/components/button).
11
11
  */
12
12
  export default {
13
13
  component: ActionButton,
@@ -40,7 +40,7 @@ export type ActionOptionProps = {
40
40
  * @deprecatedSince 46.104.0
41
41
  * @see [Source](../listItem/ListItem.tsx)
42
42
  * @see [Storybook](https://storybook.wise.design/?path=/docs/content-listitem--docs)
43
- * @see [Design docs](https://wise.design/components/list-item)
43
+ * @see [Design docs](https://docs.wise.design/components/list-item)
44
44
  * @see [Release notes](https://transferwise.atlassian.net/wiki/spaces/DS/pages/3647251055/List+Item+release+notes)
45
45
  */
46
46
  const ActionOption = ({
@@ -12,7 +12,7 @@ Given the `Button` is a widely used and highly sensitive component, there are so
12
12
  <ListItem
13
13
  title="Design guidance"
14
14
  subtitle="Before you start, familiarise yourself with the dedicated accessibility documentation."
15
- control={<ListItem.Navigation href="https://wise.design/components/button#accessibility" />}
15
+ control={<ListItem.Navigation href="https://docs.wise.design/components/button#accessibility" />}
16
16
  media={
17
17
  <ListItem.AvatarView>
18
18
  <Bulb />
@@ -149,7 +149,7 @@ const getPropsForPreview = (args: PreviewStoryArgs) => {
149
149
  };
150
150
 
151
151
  /**
152
- * The stories below document the new Button API, which requires `v2` prop to function. <br />For more details please refer to the [release notes](https://transferwise.atlassian.net/wiki/spaces/DS/pages/3542158737/Button+Updates+New+sizes+Loader+and+Cue) and the [design spec](https://wise.design/components/button). <br />
152
+ * The stories below document the new Button API, which requires `v2` prop to function. <br />For more details please refer to the [release notes](https://transferwise.atlassian.net/wiki/spaces/DS/pages/3542158737/Button+Updates+New+sizes+Loader+and+Cue) and the [design spec](https://docs.wise.design/components/button). <br />
153
153
  * You can still find the old Button documentation under [Legacy Button](?path=/docs/actions-button-legacy--docs)
154
154
  *
155
155
  *
@@ -331,7 +331,7 @@ export const Sandbox = createSandboxStory({
331
331
  /**
332
332
  * There are two different types of button – default and negative – designed to emphasise the nature of the action. <br />
333
333
  * **NB:** Sentiment only applies to `primary` and `secondary` priorities. <br />
334
- * [Design documentation](https://wise.design/components/button#types)
334
+ * [Design documentation](https://docs.wise.design/components/button#types)
335
335
  */
336
336
  export const Sentiment: StoryObj<PreviewStoryArgs> = {
337
337
  render: function Render(args: PreviewStoryArgs) {
@@ -377,7 +377,7 @@ export const Sentiment: StoryObj<PreviewStoryArgs> = {
377
377
  /**
378
378
  * Priorities set a visual hierarchy amongst the buttons displayed on the
379
379
  * screen to help more important buttons to take precedence over others. <br />
380
- * [Design documentation](https://wise.design/components/button#priorities)
380
+ * [Design documentation](https://docs.wise.design/components/button#priorities)
381
381
  */
382
382
  export const Priority: StoryObj<PreviewStoryArgs> = {
383
383
  render: function Render(args: PreviewStoryArgs) {
@@ -413,7 +413,7 @@ export const Priority: StoryObj<PreviewStoryArgs> = {
413
413
 
414
414
  /**
415
415
  * There are three different button sizes – small (`sm`), medium (`md`) and large (`lg`) – each used for different purposes. <br />
416
- * [Design documentation](https://wise.design/components/button#sizes)
416
+ * [Design documentation](https://docs.wise.design/components/button#sizes)
417
417
  */
418
418
  export const Size: StoryObj<PreviewStoryArgs> = {
419
419
  render: function Render(args: PreviewStoryArgs) {
@@ -536,7 +536,7 @@ export const DisplayBlock: StoryObj<PreviewStoryArgs> = {
536
536
 
537
537
  /**
538
538
  * Icons are only supported for `sm` and `md` size Buttons. <br />
539
- * [Design documentation](https://wise.design/components/button#accessories)
539
+ * [Design documentation](https://docs.wise.design/components/button#accessories)
540
540
  */
541
541
  export const WithIcons: StoryObj<PreviewStoryArgs> = {
542
542
  render: function Render(args: PreviewStoryArgs) {
@@ -595,7 +595,7 @@ export const WithIcons: StoryObj<PreviewStoryArgs> = {
595
595
 
596
596
  /**
597
597
  * Avatars are only supported by the `md` size Buttons and are only allowed before the label. <br />
598
- * [Design documentation](https://wise.design/components/button#accessories)
598
+ * [Design documentation](https://docs.wise.design/components/button#accessories)
599
599
  */
600
600
  export const WithAvatars: StoryObj<PreviewStoryArgs> = {
601
601
  render: function Render(args: PreviewStoryArgs) {
@@ -9,7 +9,7 @@ import { Label } from '../label/Label';
9
9
  /**
10
10
  * Use <a href="?path=/docs/forms-checkbox--docs">Checkbox</a> component instead when pairing with a label. Only use CheckboxButton when you need a standalone checkbox (e.g. settings matrix) and provide an `aria-label`.
11
11
  *
12
- * **Design guidance**: <a href="https://wise.design/components/checkbox" target="_blank">wise.design/components/checkbox</a>
12
+ * **Design guidance**: <a href="https://docs.wise.design/components/checkbox" target="_blank">wise.design/components/checkbox</a>
13
13
  */
14
14
  export default {
15
15
  component: CheckboxButton,
@@ -20,7 +20,7 @@ export type CheckboxOptionProps = Omit<BaseOptionProps, 'onChange'> & {
20
20
  * @deprecatedSince 46.104.0
21
21
  * @see [Source](../listItem/ListItem.tsx)
22
22
  * @see [Storybook](https://storybook.wise.design/?path=/docs/content-listitem--docs)
23
- * @see [Design docs](https://wise.design/components/list-item)
23
+ * @see [Design docs](https://docs.wise.design/components/list-item)
24
24
  * @see [Release notes](https://transferwise.atlassian.net/wiki/spaces/DS/pages/3647251055/List+Item+release+notes)
25
25
  */
26
26
  const CheckboxOption = forwardRef<ReferenceType, CheckboxOptionProps>(
@@ -8,7 +8,7 @@ import { storySourceWithoutNoise } from '../../.storybook/helpers';
8
8
  /**
9
9
  * Can be used for making a <a href="?path=/story/actions-chips--choice">choice</a>, or as a <a href="?path=/story/actions-chips--filter">filter</a> with multiple options.
10
10
  *
11
- * **Design guidance**: <a href="https://wise.design/components/chip" target="_blank">wise.design/components/chip</a>
11
+ * **Design guidance**: <a href="https://docs.wise.design/components/chip" target="_blank">wise.design/components/chip</a>
12
12
  */
13
13
  export default {
14
14
  component: Chips,
@@ -93,7 +93,7 @@ export const Playground: Story = storySourceWithoutNoise<typeof Chips>({
93
93
 
94
94
  /**
95
95
  * The user can select any number of chips with the selected prop as an array (`multiple` prop set to `true`). <br />
96
- * <a href="https://wise.design/components/chip#filter-chips" target="_blank">Design documentation</a>
96
+ * <a href="https://docs.wise.design/components/chip#filter-chips" target="_blank">Design documentation</a>
97
97
  */
98
98
  export const Filter: Story = storySourceWithoutNoise<typeof Chips>({
99
99
  args: {
@@ -124,7 +124,7 @@ export const Filter: Story = storySourceWithoutNoise<typeof Chips>({
124
124
 
125
125
  /**
126
126
  * The user can only select one chip with the selected prop as a single value (`multiple` prop set to `false`). <br />
127
- * <a href="https://wise.design/components/chip#choice-chips" target="_blank">Design documentation</a>
127
+ * <a href="https://docs.wise.design/components/chip#choice-chips" target="_blank">Design documentation</a>
128
128
  */
129
129
  export const Choice: Story = storySourceWithoutNoise<typeof Chips>({
130
130
  args: {
@@ -9,7 +9,7 @@ import SentimentSurface from '../sentimentSurface';
9
9
  /**
10
10
  * An <a href="?path=/docs/actions-iconbutton--docs">IconButton</a> with a text label below it.
11
11
  *
12
- * **Design guidance**: <a href="https://wise.design/components/circular-button" target="_blank">wise.design/components/circular-button</a>
12
+ * **Design guidance**: <a href="https://docs.wise.design/components/circular-button" target="_blank">wise.design/components/circular-button</a>
13
13
  */
14
14
  export default {
15
15
  component: CircularButton,
@@ -45,7 +45,7 @@ export const Playground: Story = {};
45
45
  /**
46
46
  * Priorities set a visual hierarchy amongst the buttons displayed on the
47
47
  * screen to help more important buttons to take precedence over others. <br />
48
- * [Design documentation](https://wise.design/components/circular-button#priority)
48
+ * [Design documentation](https://docs.wise.design/components/circular-button#priority)
49
49
  */
50
50
  export const Priority: Story = {
51
51
  args: {
@@ -83,7 +83,7 @@ export const Priority: Story = {
83
83
 
84
84
  /**
85
85
  * There are two different types of button – default and negative – designed to emphasise the nature of the action. <br />
86
- * [Design documentation](https://wise.design/components/circular-button#types)
86
+ * [Design documentation](https://docs.wise.design/components/circular-button#types)
87
87
  */
88
88
  export const Type: Story = {
89
89
  args: {
@@ -163,7 +163,7 @@ export const Disabled: Story = {
163
163
  /**
164
164
  * `CircularButton` is sentiment-aware and will automatically adjust its colours if wrapped inside
165
165
  * the <a href="?path=/docs/foundations-sentimentsurface--docs">SentimentSurface</a> component. <br />
166
- * [Design documentation](https://wise.design/components/circular-button)
166
+ * [Design documentation](https://docs.wise.design/components/circular-button)
167
167
  */
168
168
  export const SentimentAwareness: Story = {
169
169
  render: () => {
@@ -17,7 +17,7 @@ export type ContainerProps<T extends ElementType = 'div'> = PropsWithChildren<
17
17
  /**
18
18
  * Centers page content within a responsive max-width boundary, with automatic horizontal padding that adapts to the viewport size.
19
19
  *
20
- * **Design guidance**: <a href="https://wise.design/foundations/grid" target="_blank">wise.design/foundations/grid</a>
20
+ * **Design guidance**: <a href="https://docs.wise.design/foundations/grid" target="_blank">wise.design/foundations/grid</a>
21
21
  */
22
22
  const Container = <T extends ElementType = 'div'>({
23
23
  size = 'standard',
@@ -24,7 +24,7 @@ const hideControls = (args: string[]) => {
24
24
  * The stories below document the `<Divider />` component, which can be rendered as either a semantic `<hr>` or a non-semantic `<div>`.
25
25
  * levels allow customization for different visual separation needs.
26
26
  *
27
- * For more details, please refer to the [design documentation](https://wise.design/components/divider).
27
+ * For more details, please refer to the [design documentation](https://docs.wise.design/components/divider).
28
28
  */
29
29
  const meta: Meta<typeof Divider> = {
30
30
  component: Divider,
@@ -89,7 +89,7 @@ export const Playground: Story = {
89
89
  /**
90
90
  * There are three different types of divider – `section`, `subsection`, and `content` –
91
91
  * each designed to visually separate or group content. <br />
92
- * [Design documentation](https://wise.design/components/divider)
92
+ * [Design documentation](https://docs.wise.design/components/divider)
93
93
  */
94
94
  export const Level: Story = {
95
95
  argTypes: {
@@ -12,7 +12,7 @@ Given the `Header` is a key component for structuring content and conveying hier
12
12
  <ListItem
13
13
  title="Design guidance"
14
14
  subtitle="Before you start, familiarise yourself with the provided guidance."
15
- control={<ListItem.Navigation href="https://wise.design/components/section-header" />}
15
+ control={<ListItem.Navigation href="https://docs.wise.design/components/section-header" />}
16
16
  media={
17
17
  <ListItem.AvatarView>
18
18
  <Bulb />
@@ -15,7 +15,7 @@ const hideControls = (args: string[]) =>
15
15
 
16
16
  /**
17
17
  * The stories below document the `Header` component, which is used to structure content and convey hierarchy. <br />
18
- * For more details, refer to the [design documentation](https://wise.design/components/section-header).
18
+ * For more details, refer to the [design documentation](https://docs.wise.design/components/section-header).
19
19
  */
20
20
  const meta: Meta<typeof Header> = {
21
21
  component: Header,
@@ -17,7 +17,7 @@ import IconButton, { Props } from './IconButton';
17
17
  import SentimentSurface from '../sentimentSurface';
18
18
 
19
19
  /**
20
- * **Design guidance**: <a href="https://wise.design/components/icon-button" target="_blank">wise.design/components/icon-button</a>
20
+ * **Design guidance**: <a href="https://docs.wise.design/components/icon-button" target="_blank">wise.design/components/icon-button</a>
21
21
  */
22
22
  export default {
23
23
  title: 'Actions/IconButton',
@@ -64,7 +64,7 @@ export const Playground: Story = {
64
64
  /**
65
65
  * Priorities set a visual hierarchy amongst the buttons displayed on the
66
66
  * screen to help more important buttons to take precedence over others. <br />
67
- * <a href="https://wise.design/components/icon-button#priorities" target="_blank">Design documentation</a>
67
+ * <a href="https://docs.wise.design/components/icon-button#priorities" target="_blank">Design documentation</a>
68
68
  */
69
69
  export const Priority: Story = {
70
70
  args: {
@@ -109,7 +109,7 @@ export const Priority: Story = {
109
109
 
110
110
  /**
111
111
  * There are two different types of button – default and negative – designed to emphasise the nature of the action. <br />
112
- * <a href="https://wise.design/components/icon-button#types" target="_blank">Design documentation</a>
112
+ * <a href="https://docs.wise.design/components/icon-button#types" target="_blank">Design documentation</a>
113
113
  */
114
114
  export const Type: Story = {
115
115
  args: {
@@ -148,7 +148,7 @@ export const Type: Story = {
148
148
 
149
149
  /**
150
150
  * IconButton is available in 7 sizes: 16, 24, 32, 40, 48, 56, 72. <br />
151
- * <a href="https://wise.design/components/icon-button#sizes" target="_blank">Design documentation</a>
151
+ * <a href="https://docs.wise.design/components/icon-button#sizes" target="_blank">Design documentation</a>
152
152
  */
153
153
  export const Size: Story = {
154
154
  args: {
@@ -18,7 +18,7 @@ export type LegacyListItemProps = {
18
18
  * @deprecatedSince 46.104.0
19
19
  * @see [Source](../listItem/ListItem.tsx)
20
20
  * @see [Storybook](https://storybook.wise.design/?path=/docs/content-listitem--docs)
21
- * @see [Design docs](https://wise.design/components/list-item)
21
+ * @see [Design docs](https://docs.wise.design/components/list-item)
22
22
  * @see [Release notes](https://transferwise.atlassian.net/wiki/spaces/DS/pages/3647251055/List+Item+release+notes)
23
23
  */
24
24
  const LegacyListItem: FC<LegacyListItemProps> = ({
@@ -14,7 +14,7 @@ import type { ListItemAdditionalInfoProps } from './ListItemAdditionalInfo';
14
14
  /**
15
15
  * Use additional information to add extra details that help make the information clearer for users. Use additional information only after you've used the subtitle.
16
16
  *
17
- * Refer to the [design documentation](https://wise.design/components/list-item#content:~:text=StatusIcon.iconLabel.error-,Additional%20information,-Use%20additional%20information) for more details.
17
+ * Refer to the [design documentation](https://docs.wise.design/components/list-item#content:~:text=StatusIcon.iconLabel.error-,Additional%20information,-Use%20additional%20information) for more details.
18
18
  */
19
19
  export default {
20
20
  component: ListItem.AdditionalInfo,
@@ -58,7 +58,7 @@ export const Playground: Story = {
58
58
 
59
59
  /**
60
60
  * AvatarLayout supports two orientations: horizontal (default) and diagonal. <br />
61
- * Please refer to the [design documentation](https://wise.design/components/avatar#double) for more details.
61
+ * Please refer to the [design documentation](https://docs.wise.design/components/avatar#double) for more details.
62
62
  */
63
63
  export const Orientations: Story = {
64
64
  argTypes: disableControls()(['orientation']),
@@ -12,7 +12,7 @@ export type ListItemAvatarLayoutProps = Omit<AvatarLayoutProps, 'size' | 'intera
12
12
  * [AvatarLayout component](https://storybook.wise.design/?path=/docs/content-avatarlayout--docs), but offers only
13
13
  * a subset of its sizes, and disallows interactive mode, in line with the ListItem's constraints. <br />
14
14
  * <br />
15
- * Please refer to the [Design documentation](https://wise.design/components/list-item#avatar) for details.
15
+ * Please refer to the [Design documentation](https://docs.wise.design/components/list-item#avatar) for details.
16
16
  */
17
17
  export const AvatarLayout = ({ className, size = 48, ...props }: ListItemAvatarLayoutProps) => {
18
18
  useListItemMedia(size);
@@ -134,7 +134,7 @@ export const Playground: Story = {
134
134
 
135
135
  /**
136
136
  * AvatarView can display different types of content including icons, profile images, and initials. <br />
137
- * Refer to the [design documentation](https://wise.design/components/avatar#:~:text=56%2C%20%E2%80%A8and%2072.-,Media,-There%20are%204) for details.
137
+ * Refer to the [design documentation](https://docs.wise.design/components/avatar#:~:text=56%2C%20%E2%80%A8and%2072.-,Media,-There%20are%204) for details.
138
138
  */
139
139
  export const ContentTypes: Story = {
140
140
  args: {
@@ -208,7 +208,7 @@ export const ContentTypes: Story = {
208
208
 
209
209
  /**
210
210
  * AvatarView supports 6 sizes to fit different list item contexts: `24`, `32`, `40`, `48`, `56`, `72`. If decorated with a Badge, those will be sized accordingly as well. <br />
211
- * Please refer to the [design documentation](https://wise.design/components/list-item#avatar:~:text=of%20the%20avatar.-,Avatar%20sizes,-List%20item%20supports) for details on when to use which one.
211
+ * Please refer to the [design documentation](https://docs.wise.design/components/list-item#avatar:~:text=of%20the%20avatar.-,Avatar%20sizes,-List%20item%20supports) for details on when to use which one.
212
212
  */
213
213
  export const Sizes: Story = {
214
214
  parameters: {
@@ -242,7 +242,7 @@ export const Sizes: Story = {
242
242
 
243
243
  /**
244
244
  * AvatarView supports different types of badges for additional context and information. <br />
245
- * Refer to the [design documentation](https://wise.design/components/avatar#:~:text=support%20the%20information.-,With%20badge,-Badges%20contain%20additional) for details.
245
+ * Refer to the [design documentation](https://docs.wise.design/components/avatar#:~:text=support%20the%20information.-,With%20badge,-Badges%20contain%20additional) for details.
246
246
  */
247
247
  export const Badges: Story = {
248
248
  args: {
@@ -12,7 +12,7 @@ export type ListItemAvatarViewProps = Omit<AvatarViewProps, 'size' | 'interactiv
12
12
  * [AvatarView component](https://storybook.wise.design/?path=/docs/content-avatarview--docs), but offers only
13
13
  * a subset of its sizes, in line with the ListItem's constraints. <br />
14
14
  * <br />
15
- * Please refer to the [Design documentation](https://wise.design/components/list-item#avatar) for details.
15
+ * Please refer to the [Design documentation](https://docs.wise.design/components/list-item#avatar) for details.
16
16
  */
17
17
  export const AvatarView = ({ className, size = 48, ...props }: ListItemAvatarViewProps) => {
18
18
  useListItemMedia(size);
@@ -184,7 +184,7 @@ export const Playground: StoryObj<PreviewStoryArgs> = {
184
184
  * If you still require a fully interactive ListItem, you can alternatively use `ListItem.Prompt`
185
185
  * which allows for a single instance of a link or an inline button.
186
186
  *
187
- * Refer to the [design documentation](https://wise.design/components/list-item#interaction) for details.
187
+ * Refer to the [design documentation](https://docs.wise.design/components/list-item#interaction) for details.
188
188
  */
189
189
  export const Interactivity: StoryObj<PreviewStoryArgs> = {
190
190
  args: {
@@ -253,7 +253,7 @@ export const AsAnchor: StoryObj<PreviewStoryArgs> = {
253
253
  /**
254
254
  * There are two different types of button – default and negative – designed to emphasise the nature of the action. <br />
255
255
  * **NB:** Sentiment only applies to `primary` and `secondary` priorities. <br />
256
- * [Design documentation](https://wise.design/components/button#types)
256
+ * [Design documentation](https://docs.wise.design/components/button#types)
257
257
  */
258
258
  export const Sentiment: StoryObj<PreviewStoryArgs> = {
259
259
  args: {
@@ -318,7 +318,7 @@ export const Sentiment: StoryObj<PreviewStoryArgs> = {
318
318
  /**
319
319
  * Priorities set a visual hierarchy amongst the buttons displayed on the
320
320
  * screen to help more important buttons to take precedence over others. <br />
321
- * [Design documentation](https://wise.design/components/button#priorities)
321
+ * [Design documentation](https://docs.wise.design/components/button#priorities)
322
322
  */
323
323
  export const Priority: StoryObj<PreviewStoryArgs> = {
324
324
  args: {
@@ -22,7 +22,7 @@ export type ListItemButtonProps = Omit<
22
22
  * [Button component](https://storybook.wise.design/?path=/docs/content-button--docs), but offers only
23
23
  * a subset of its features in line with the ListItem's constraints. <br />
24
24
  * <br />
25
- * Please refer to the [Design documentation](https://wise.design/components/list-item---button) for details.
25
+ * Please refer to the [Design documentation](https://docs.wise.design/components/list-item---button) for details.
26
26
  */
27
27
  export const Button = forwardRef<HTMLButtonElement, ListItemButtonProps>(
28
28
  (
@@ -13,7 +13,7 @@ export type ListItemCheckboxProps = Pick<
13
13
  * [CheckboxButton component](https://storybook.wise.design/?path=/docs/actions-checkboxbutton--docs),
14
14
  * but offers only a subset of its features in line with the ListItem's constraints. <br />
15
15
  *
16
- * Please refer to the [Design documentation](https://wise.design/components/list-item---checkbox) for details.
16
+ * Please refer to the [Design documentation](https://docs.wise.design/components/list-item---checkbox) for details.
17
17
  */
18
18
  export const Checkbox = function (props: ListItemCheckboxProps) {
19
19
  const { baseItemProps } = useListItemControl('checkbox', { ...props });
@@ -22,7 +22,7 @@ const hideControls = disableControls([
22
22
  /**
23
23
  * Use IconButton to provide compact action controls within a ListItem context using iconography.
24
24
  *
25
- * Refer to the [design documentation](https://wise.design/components/list-item) for more details.
25
+ * Refer to the [design documentation](https://docs.wise.design/components/list-item) for more details.
26
26
  */
27
27
  const meta: Meta<ListItemIconButtonProps> = {
28
28
  component: ListItem.IconButton,
@@ -142,7 +142,7 @@ export const AccessibleName: Story = {
142
142
  * If you still require a fully interactive ListItem, you can alternatively use `ListItem.Prompt`
143
143
  * which allows for a single instance of a link or an inline button.
144
144
  *
145
- * Refer to the [design documentation](https://wise.design/components/list-item#interaction) for details.
145
+ * Refer to the [design documentation](https://docs.wise.design/components/list-item#interaction) for details.
146
146
  */
147
147
  export const Interactivity: Story = {
148
148
  args: {
@@ -177,7 +177,7 @@ export const Interactivity: Story = {
177
177
  /**
178
178
  * There are two different types of icon button – default and negative – designed to emphasise the nature of the action. <br />
179
179
  * **NB:** Sentiment only applies to `primary` and `secondary` priorities. <br />
180
- * [Design documentation](https://wise.design/components/icon-button#types)
180
+ * [Design documentation](https://docs.wise.design/components/icon-button#types)
181
181
  */
182
182
  export const Sentiment: Story = {
183
183
  argTypes: hideControls(['sentiment', 'priority']),
@@ -216,7 +216,7 @@ export const Sentiment: Story = {
216
216
  /**
217
217
  * Priorities set a visual hierarchy amongst the buttons displayed on the
218
218
  * screen to help more important buttons to take precedence over others. <br />
219
- * [Design documentation](https://wise.design/components/icon-button#priorities)
219
+ * [Design documentation](https://docs.wise.design/components/icon-button#priorities)
220
220
  */
221
221
  export const Priority: Story = {
222
222
  argTypes: hideControls(['sentiment', 'priority']),
@@ -19,7 +19,7 @@ export type ListItemIconButtonProps = Pick<
19
19
  * [IconButton component](https://storybook.wise.design/?path=/docs/actions-iconbutton--docs), but offers only
20
20
  * a subset of its features in line with the ListItem's constraints. <br />
21
21
  * <br />
22
- * Please refer to the [Design documentation](https://wise.design/components/list-item---icon-button) for details.
22
+ * Please refer to the [Design documentation](https://docs.wise.design/components/list-item---icon-button) for details.
23
23
  */
24
24
  export const IconButton = function ({
25
25
  priority = 'minimal',
@@ -23,7 +23,7 @@ export type ListItemImageProps = Omit<ImageProps, 'stretch' | 'shrink' | 'id' |
23
23
  * [Image component](https://storybook.wise.design/?path=/docs/content-image--docs), but offers only
24
24
  * a subset of its props, in line with the ListItem's constraints.
25
25
  *
26
- * > **NB**: This component is [not intended for use with illustrations](https://wise.design/foundations/illustration#scale).
26
+ * > **NB**: This component is [not intended for use with illustrations](https://docs.wise.design/foundations/illustration#scale).
27
27
  */
28
28
  export const Image = ({ alt = '', size = 48, className, ...props }: ListItemImageProps) => {
29
29
  useListItemMedia(size);
@@ -106,7 +106,7 @@ export type ListItemProps = {
106
106
  };
107
107
 
108
108
  /**
109
- * @see [Design documentation](https://wise.design/components/list-item)
109
+ * @see [Design documentation](https://docs.wise.design/components/list-item)
110
110
  * @see [Storybook documentation](https://storybook.wise.design/?path=/docs/content-listitem--docs)
111
111
  */
112
112
  export const ListItem = ({