@transferwise/components 46.87.1 → 46.88.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 (143) hide show
  1. package/build/avatarLayout/AvatarLayout.js +9 -2
  2. package/build/avatarLayout/AvatarLayout.js.map +1 -1
  3. package/build/avatarLayout/AvatarLayout.mjs +9 -2
  4. package/build/avatarLayout/AvatarLayout.mjs.map +1 -1
  5. package/build/button/Button.js +92 -79
  6. package/build/button/Button.js.map +1 -1
  7. package/build/button/Button.mjs +93 -80
  8. package/build/button/Button.mjs.map +1 -1
  9. package/build/button/Button.resolver.js +74 -0
  10. package/build/button/Button.resolver.js.map +1 -0
  11. package/build/button/Button.resolver.mjs +72 -0
  12. package/build/button/Button.resolver.mjs.map +1 -0
  13. package/build/button/LegacyButton.js +114 -0
  14. package/build/button/LegacyButton.js.map +1 -0
  15. package/build/button/LegacyButton.mjs +112 -0
  16. package/build/button/LegacyButton.mjs.map +1 -0
  17. package/build/circularButton/CircularButton.js.map +1 -1
  18. package/build/circularButton/CircularButton.mjs.map +1 -1
  19. package/build/criticalBanner/CriticalCommsBanner.js +2 -2
  20. package/build/criticalBanner/CriticalCommsBanner.js.map +1 -1
  21. package/build/criticalBanner/CriticalCommsBanner.mjs +1 -1
  22. package/build/header/Header.js +2 -2
  23. package/build/header/Header.js.map +1 -1
  24. package/build/header/Header.mjs +1 -1
  25. package/build/i18n/ja.json +1 -0
  26. package/build/i18n/ja.json.js +1 -0
  27. package/build/i18n/ja.json.js.map +1 -1
  28. package/build/i18n/ja.json.mjs +1 -0
  29. package/build/i18n/ja.json.mjs.map +1 -1
  30. package/build/i18n/pt.json +1 -0
  31. package/build/i18n/pt.json.js +1 -0
  32. package/build/i18n/pt.json.js.map +1 -1
  33. package/build/i18n/pt.json.mjs +1 -0
  34. package/build/i18n/pt.json.mjs.map +1 -1
  35. package/build/i18n/ru.json +1 -0
  36. package/build/i18n/ru.json.js +1 -0
  37. package/build/i18n/ru.json.js.map +1 -1
  38. package/build/i18n/ru.json.mjs +1 -0
  39. package/build/i18n/ru.json.mjs.map +1 -1
  40. package/build/i18n/zh-HK.json +1 -0
  41. package/build/i18n/zh-HK.json.js +1 -0
  42. package/build/i18n/zh-HK.json.js.map +1 -1
  43. package/build/i18n/zh-HK.json.mjs +1 -0
  44. package/build/i18n/zh-HK.json.mjs.map +1 -1
  45. package/build/index.js +2 -2
  46. package/build/index.mjs +1 -1
  47. package/build/link/Link.js +8 -3
  48. package/build/link/Link.js.map +1 -1
  49. package/build/link/Link.mjs +8 -3
  50. package/build/link/Link.mjs.map +1 -1
  51. package/build/main.css +247 -0
  52. package/build/primitives/PrimitiveAnchor/src/PrimitiveAnchor.js +2 -4
  53. package/build/primitives/PrimitiveAnchor/src/PrimitiveAnchor.js.map +1 -1
  54. package/build/primitives/PrimitiveAnchor/src/PrimitiveAnchor.mjs +2 -4
  55. package/build/primitives/PrimitiveAnchor/src/PrimitiveAnchor.mjs.map +1 -1
  56. package/build/primitives/PrimitiveButton/src/PrimitiveButton.js +3 -5
  57. package/build/primitives/PrimitiveButton/src/PrimitiveButton.js.map +1 -1
  58. package/build/primitives/PrimitiveButton/src/PrimitiveButton.mjs +3 -5
  59. package/build/primitives/PrimitiveButton/src/PrimitiveButton.mjs.map +1 -1
  60. package/build/select/Select.js +2 -2
  61. package/build/select/Select.js.map +1 -1
  62. package/build/select/Select.mjs +1 -1
  63. package/build/styles/avatarLayout/AvatarLayout.css +11 -0
  64. package/build/styles/button/Button.css +228 -15
  65. package/build/styles/button/Button.vars.css +46 -0
  66. package/build/styles/button/LegacyButton.css +23 -0
  67. package/build/styles/main.css +247 -0
  68. package/build/types/avatarLayout/AvatarLayout.d.ts.map +1 -1
  69. package/build/types/button/Button.d.ts +2 -23
  70. package/build/types/button/Button.d.ts.map +1 -1
  71. package/build/types/button/Button.resolver.d.ts +35 -0
  72. package/build/types/button/Button.resolver.d.ts.map +1 -0
  73. package/build/types/button/Button.types.d.ts +70 -0
  74. package/build/types/button/Button.types.d.ts.map +1 -0
  75. package/build/types/button/LegacyButton.d.ts +44 -0
  76. package/build/types/button/LegacyButton.d.ts.map +1 -0
  77. package/build/types/button/index.d.ts +2 -2
  78. package/build/types/button/index.d.ts.map +1 -1
  79. package/build/types/circularButton/CircularButton.d.ts.map +1 -1
  80. package/build/types/link/Link.d.ts +2 -2
  81. package/build/types/link/Link.d.ts.map +1 -1
  82. package/build/types/primitives/PrimitiveAnchor/src/PrimitiveAnchor.d.ts.map +1 -1
  83. package/build/types/primitives/PrimitiveAnchor/src/PrimitiveAnchor.types.d.ts +6 -2
  84. package/build/types/primitives/PrimitiveAnchor/src/PrimitiveAnchor.types.d.ts.map +1 -1
  85. package/build/types/primitives/PrimitiveButton/src/PrimitiveButton.d.ts.map +1 -1
  86. package/build/types/test-utils/story-config.d.ts +1 -1
  87. package/build/types/test-utils/story-config.d.ts.map +1 -1
  88. package/build/upload/steps/completeStep/completeStep.js +2 -2
  89. package/build/upload/steps/completeStep/completeStep.js.map +1 -1
  90. package/build/upload/steps/completeStep/completeStep.mjs +1 -1
  91. package/build/upload/steps/processingStep/processingStep.js +2 -2
  92. package/build/upload/steps/processingStep/processingStep.js.map +1 -1
  93. package/build/upload/steps/processingStep/processingStep.mjs +1 -1
  94. package/build/uploadInput/UploadInput.js +3 -3
  95. package/build/uploadInput/UploadInput.js.map +1 -1
  96. package/build/uploadInput/UploadInput.mjs +1 -1
  97. package/package.json +2 -2
  98. package/src/alert/Alert.tests.story.tsx +1 -1
  99. package/src/avatar/Avatar.story.tsx +1 -1
  100. package/src/avatarLayout/AvatarLayout.css +11 -0
  101. package/src/avatarLayout/AvatarLayout.less +18 -1
  102. package/src/avatarLayout/AvatarLayout.tsx +10 -2
  103. package/src/avatarWrapper/AvatarWrapper.story.tsx +1 -1
  104. package/src/badge/Badge.story.tsx +1 -1
  105. package/src/button/Button.accessibility.docs.mdx +103 -0
  106. package/src/button/Button.css +228 -15
  107. package/src/button/Button.less +242 -14
  108. package/src/button/Button.resolver.tsx +73 -0
  109. package/src/button/Button.spec.tsx +329 -213
  110. package/src/button/Button.story.tsx +782 -134
  111. package/src/button/Button.tests.story.tsx +27 -0
  112. package/src/button/Button.tsx +103 -132
  113. package/src/button/Button.types.ts +92 -0
  114. package/src/button/Button.vars.css +46 -0
  115. package/src/button/Button.vars.less +59 -0
  116. package/src/button/LegacyButton.css +23 -0
  117. package/src/button/LegacyButton.less +24 -0
  118. package/src/button/LegacyButton.spec.tsx +147 -0
  119. package/src/button/LegacyButton.story.tsx +228 -0
  120. package/src/button/LegacyButton.tsx +177 -0
  121. package/src/button/index.ts +2 -3
  122. package/src/card/Card.story.tsx +6 -1
  123. package/src/circularButton/CircularButton.tsx +1 -0
  124. package/src/field/Field.story.tsx +1 -1
  125. package/src/flowNavigation/__snapshots__/FlowNavigation.spec.js.snap +1 -2
  126. package/src/i18n/ja.json +1 -0
  127. package/src/i18n/pt.json +1 -0
  128. package/src/i18n/ru.json +1 -0
  129. package/src/i18n/zh-HK.json +1 -0
  130. package/src/inputs/SelectInput.story.tsx +1 -1
  131. package/src/label/Label.story.tsx +1 -1
  132. package/src/link/Link.tsx +15 -6
  133. package/src/main.css +247 -0
  134. package/src/main.less +1 -0
  135. package/src/primitives/PrimitiveAnchor/src/PrimitiveAnchor.tsx +2 -8
  136. package/src/primitives/PrimitiveAnchor/src/PrimitiveAnchor.types.ts +7 -2
  137. package/src/primitives/PrimitiveAnchor/test/PrimitiveAnchor.spec.tsx +1 -3
  138. package/src/primitives/PrimitiveButton/src/PrimitiveButton.tsx +4 -12
  139. package/src/primitives/PrimitiveButton/test/PrimitiveButton.spec.tsx +16 -13
  140. package/src/select/Select.story.tsx +4 -1
  141. package/src/test-utils/Parameters.d.ts +9 -1
  142. package/src/test-utils/story-config.ts +10 -1
  143. package/src/button/__snapshots__/Button.spec.tsx.snap +0 -309
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sources":["../../src/header/Header.tsx"],"sourcesContent":["import { clsx } from 'clsx';\n\nimport { ActionButtonProps } from '../actionButton/ActionButton';\nimport Button from '../button';\nimport { AriaLabelProperty, CommonProps, Heading, LinkProps, Typography } from '../common';\nimport Link from '../link';\nimport Title from '../title';\n\ntype ActionProps = AriaLabelProperty & {\n text: string;\n};\n\ntype ButtonActionProps = ActionProps & ActionButtonProps;\n\ntype LinkActionProps = ActionProps & LinkProps;\n\nexport type HeaderProps = CommonProps & {\n /**\n * When the `href` property is provided to the `action`, we will render a `Link` instead of a `ActionButton`.\n */\n action?: ButtonActionProps | LinkActionProps;\n /**\n * Override the heading element rendered for the title, useful to specify the semantics of your header.\n *\n * @default \"h5\"\n */\n as?: Heading | 'legend';\n title: string;\n};\n\nconst HeaderAction = ({ action }: { action: ButtonActionProps | LinkActionProps }) => {\n const props = {\n 'aria-label': action['aria-label'],\n };\n\n if ('href' in action) {\n return (\n <Link href={action.href} target={action.target} onClick={action.onClick} {...props}>\n {action.text}\n </Link>\n );\n }\n\n return (\n <Button\n className=\"np-header__button\"\n priority=\"tertiary\"\n size=\"sm\"\n onClick={action.onClick}\n {...props}\n >\n {action.text}\n </Button>\n );\n};\n\n/**\n *\n * Neptune Web: https://transferwise.github.io/neptune-web/components/content/Header\n *\n */\nexport const Header = ({ action, as = 'h5', title, className }: HeaderProps) => {\n if (!action) {\n return (\n <Title\n as={as}\n type={Typography.TITLE_GROUP}\n className={clsx('np-header', 'np-header__title', className)}\n >\n {title}\n </Title>\n );\n }\n\n if (as === 'legend') {\n // eslint-disable-next-line no-console\n console.warn(\n 'Legends should be the first child in a fieldset, and this is not possible when including an action',\n );\n }\n\n return (\n <div className={clsx('np-header', className)}>\n <Title as={as} type={Typography.TITLE_GROUP} className=\"np-header__title\">\n {title}\n </Title>\n <HeaderAction action={action} />\n </div>\n );\n};\n\nexport default Header;\n"],"names":["HeaderAction","action","props","_jsx","Link","href","target","onClick","children","text","Button","className","priority","size","Header","as","title","Title","type","Typography","TITLE_GROUP","clsx","console","warn","_jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,MAAMA,YAAY,GAAGA,CAAC;AAAEC,EAAAA,MAAAA;AAAM,CAAmD,KAAI;AACnF,EAAA,MAAMC,KAAK,GAAG;IACZ,YAAY,EAAED,MAAM,CAAC,YAAY,CAAA;GAClC,CAAA;EAED,IAAI,MAAM,IAAIA,MAAM,EAAE;IACpB,oBACEE,cAAA,CAACC,IAAI,EAAA;MAACC,IAAI,EAAEJ,MAAM,CAACI,IAAK;MAACC,MAAM,EAAEL,MAAM,CAACK,MAAO;MAACC,OAAO,EAAEN,MAAM,CAACM,OAAQ;AAAA,MAAA,GAAKL,KAAK;MAAAM,QAAA,EAC/EP,MAAM,CAACQ,IAAAA;AAAI,KACR,CAAC,CAAA;AAEX,GAAA;EAEA,oBACEN,cAAA,CAACO,MAAM,EAAA;AACLC,IAAAA,SAAS,EAAC,mBAAmB;AAC7BC,IAAAA,QAAQ,EAAC,UAAU;AACnBC,IAAAA,IAAI,EAAC,IAAI;IACTN,OAAO,EAAEN,MAAM,CAACM,OAAQ;AAAA,IAAA,GACpBL,KAAK;IAAAM,QAAA,EAERP,MAAM,CAACQ,IAAAA;AAAI,GACN,CAAC,CAAA;AAEb,CAAC,CAAA;AAED;;;;AAIG;AACI,MAAMK,MAAM,GAAGA,CAAC;EAAEb,MAAM;AAAEc,EAAAA,EAAE,GAAG,IAAI;EAAEC,KAAK;AAAEL,EAAAA,SAAAA;AAAS,CAAe,KAAI;EAC7E,IAAI,CAACV,MAAM,EAAE;IACX,oBACEE,cAAA,CAACc,KAAK,EAAA;AACJF,MAAAA,EAAE,EAAEA,EAAG;MACPG,IAAI,EAAEC,qBAAU,CAACC,WAAY;MAC7BT,SAAS,EAAEU,SAAI,CAAC,WAAW,EAAE,kBAAkB,EAAEV,SAAS,CAAE;AAAAH,MAAAA,QAAA,EAE3DQ,KAAAA;AAAK,KACD,CAAC,CAAA;AAEZ,GAAA;EAEA,IAAID,EAAE,KAAK,QAAQ,EAAE;AACnB;AACAO,IAAAA,OAAO,CAACC,IAAI,CACV,oGAAoG,CACrG,CAAA;AACH,GAAA;AAEA,EAAA,oBACEC,eAAA,CAAA,KAAA,EAAA;AAAKb,IAAAA,SAAS,EAAEU,SAAI,CAAC,WAAW,EAAEV,SAAS,CAAE;IAAAH,QAAA,EAAA,cAC3CL,cAAA,CAACc,KAAK,EAAA;AAACF,MAAAA,EAAE,EAAEA,EAAG;MAACG,IAAI,EAAEC,qBAAU,CAACC,WAAY;AAACT,MAAAA,SAAS,EAAC,kBAAkB;AAAAH,MAAAA,QAAA,EACtEQ,KAAAA;AAAK,KACD,CACP,eAAAb,cAAA,CAACH,YAAY,EAAA;AAACC,MAAAA,MAAM,EAAEA,MAAAA;AAAO,KAC/B,CAAA,CAAA;AAAA,GAAK,CAAC,CAAA;AAEV;;;;;"}
1
+ {"version":3,"file":"Header.js","sources":["../../src/header/Header.tsx"],"sourcesContent":["import { clsx } from 'clsx';\n\nimport { ActionButtonProps } from '../actionButton/ActionButton';\nimport Button from '../button';\nimport { AriaLabelProperty, CommonProps, Heading, LinkProps, Typography } from '../common';\nimport Link from '../link';\nimport Title from '../title';\n\ntype ActionProps = AriaLabelProperty & {\n text: string;\n};\n\ntype ButtonActionProps = ActionProps & ActionButtonProps;\n\ntype LinkActionProps = ActionProps & LinkProps;\n\nexport type HeaderProps = CommonProps & {\n /**\n * When the `href` property is provided to the `action`, we will render a `Link` instead of a `ActionButton`.\n */\n action?: ButtonActionProps | LinkActionProps;\n /**\n * Override the heading element rendered for the title, useful to specify the semantics of your header.\n *\n * @default \"h5\"\n */\n as?: Heading | 'legend';\n title: string;\n};\n\nconst HeaderAction = ({ action }: { action: ButtonActionProps | LinkActionProps }) => {\n const props = {\n 'aria-label': action['aria-label'],\n };\n\n if ('href' in action) {\n return (\n <Link href={action.href} target={action.target} onClick={action.onClick} {...props}>\n {action.text}\n </Link>\n );\n }\n\n return (\n <Button\n className=\"np-header__button\"\n priority=\"tertiary\"\n size=\"sm\"\n onClick={action.onClick}\n {...props}\n >\n {action.text}\n </Button>\n );\n};\n\n/**\n *\n * Neptune Web: https://transferwise.github.io/neptune-web/components/content/Header\n *\n */\nexport const Header = ({ action, as = 'h5', title, className }: HeaderProps) => {\n if (!action) {\n return (\n <Title\n as={as}\n type={Typography.TITLE_GROUP}\n className={clsx('np-header', 'np-header__title', className)}\n >\n {title}\n </Title>\n );\n }\n\n if (as === 'legend') {\n // eslint-disable-next-line no-console\n console.warn(\n 'Legends should be the first child in a fieldset, and this is not possible when including an action',\n );\n }\n\n return (\n <div className={clsx('np-header', className)}>\n <Title as={as} type={Typography.TITLE_GROUP} className=\"np-header__title\">\n {title}\n </Title>\n <HeaderAction action={action} />\n </div>\n );\n};\n\nexport default Header;\n"],"names":["HeaderAction","action","props","_jsx","Link","href","target","onClick","children","text","Button","className","priority","size","Header","as","title","Title","type","Typography","TITLE_GROUP","clsx","console","warn","_jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,MAAMA,YAAY,GAAGA,CAAC;AAAEC,EAAAA,MAAAA;AAAM,CAAmD,KAAI;AACnF,EAAA,MAAMC,KAAK,GAAG;IACZ,YAAY,EAAED,MAAM,CAAC,YAAY,CAAA;GAClC,CAAA;EAED,IAAI,MAAM,IAAIA,MAAM,EAAE;IACpB,oBACEE,cAAA,CAACC,IAAI,EAAA;MAACC,IAAI,EAAEJ,MAAM,CAACI,IAAK;MAACC,MAAM,EAAEL,MAAM,CAACK,MAAO;MAACC,OAAO,EAAEN,MAAM,CAACM,OAAQ;AAAA,MAAA,GAAKL,KAAK;MAAAM,QAAA,EAC/EP,MAAM,CAACQ,IAAAA;AAAI,KACR,CAAC,CAAA;AAEX,GAAA;EAEA,oBACEN,cAAA,CAACO,eAAM,EAAA;AACLC,IAAAA,SAAS,EAAC,mBAAmB;AAC7BC,IAAAA,QAAQ,EAAC,UAAU;AACnBC,IAAAA,IAAI,EAAC,IAAI;IACTN,OAAO,EAAEN,MAAM,CAACM,OAAQ;AAAA,IAAA,GACpBL,KAAK;IAAAM,QAAA,EAERP,MAAM,CAACQ,IAAAA;AAAI,GACN,CAAC,CAAA;AAEb,CAAC,CAAA;AAED;;;;AAIG;AACI,MAAMK,MAAM,GAAGA,CAAC;EAAEb,MAAM;AAAEc,EAAAA,EAAE,GAAG,IAAI;EAAEC,KAAK;AAAEL,EAAAA,SAAAA;AAAS,CAAe,KAAI;EAC7E,IAAI,CAACV,MAAM,EAAE;IACX,oBACEE,cAAA,CAACc,KAAK,EAAA;AACJF,MAAAA,EAAE,EAAEA,EAAG;MACPG,IAAI,EAAEC,qBAAU,CAACC,WAAY;MAC7BT,SAAS,EAAEU,SAAI,CAAC,WAAW,EAAE,kBAAkB,EAAEV,SAAS,CAAE;AAAAH,MAAAA,QAAA,EAE3DQ,KAAAA;AAAK,KACD,CAAC,CAAA;AAEZ,GAAA;EAEA,IAAID,EAAE,KAAK,QAAQ,EAAE;AACnB;AACAO,IAAAA,OAAO,CAACC,IAAI,CACV,oGAAoG,CACrG,CAAA;AACH,GAAA;AAEA,EAAA,oBACEC,eAAA,CAAA,KAAA,EAAA;AAAKb,IAAAA,SAAS,EAAEU,SAAI,CAAC,WAAW,EAAEV,SAAS,CAAE;IAAAH,QAAA,EAAA,cAC3CL,cAAA,CAACc,KAAK,EAAA;AAACF,MAAAA,EAAE,EAAEA,EAAG;MAACG,IAAI,EAAEC,qBAAU,CAACC,WAAY;AAACT,MAAAA,SAAS,EAAC,kBAAkB;AAAAH,MAAAA,QAAA,EACtEQ,KAAAA;AAAK,KACD,CACP,eAAAb,cAAA,CAACH,YAAY,EAAA;AAACC,MAAAA,MAAM,EAAEA,MAAAA;AAAO,KAC/B,CAAA,CAAA;AAAA,GAAK,CAAC,CAAA;AAEV;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { clsx } from 'clsx';
2
- import Button from '../button/Button.mjs';
2
+ import Button from '../button/Button.resolver.mjs';
3
3
  import '../common/theme.mjs';
4
4
  import '../common/direction.mjs';
5
5
  import '../common/propsValues/control.mjs';
@@ -54,6 +54,7 @@
54
54
  "neptune.UploadButton.allFileTypes": "すべてのファイル種類",
55
55
  "neptune.UploadButton.dropFiles": "ファイルをドロップしてアップロードする",
56
56
  "neptune.UploadButton.instructions": "{fileTypes}、{size}MB以下",
57
+ "neptune.UploadButton.maximumFiles": "最大ファイル数:{maxFiles}個",
57
58
  "neptune.UploadButton.uploadFile": "ファイルをアップロードする",
58
59
  "neptune.UploadButton.uploadFiles": "ファイルをアップロードする",
59
60
  "neptune.UploadInput.deleteModalBody": "このファイルを削除すると、当社のシステムからも削除されます。",
@@ -56,6 +56,7 @@ var ja = {
56
56
  "neptune.UploadButton.allFileTypes": "すべてのファイル種類",
57
57
  "neptune.UploadButton.dropFiles": "ファイルをドロップしてアップロードする",
58
58
  "neptune.UploadButton.instructions": "{fileTypes}、{size}MB以下",
59
+ "neptune.UploadButton.maximumFiles": "最大ファイル数:{maxFiles}個",
59
60
  "neptune.UploadButton.uploadFile": "ファイルをアップロードする",
60
61
  "neptune.UploadButton.uploadFiles": "ファイルをアップロードする",
61
62
  "neptune.UploadInput.deleteModalBody": "このファイルを削除すると、当社のシステムからも削除されます。",
@@ -1 +1 @@
1
- {"version":3,"file":"ja.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ja.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -54,6 +54,7 @@ var ja = {
54
54
  "neptune.UploadButton.allFileTypes": "すべてのファイル種類",
55
55
  "neptune.UploadButton.dropFiles": "ファイルをドロップしてアップロードする",
56
56
  "neptune.UploadButton.instructions": "{fileTypes}、{size}MB以下",
57
+ "neptune.UploadButton.maximumFiles": "最大ファイル数:{maxFiles}個",
57
58
  "neptune.UploadButton.uploadFile": "ファイルをアップロードする",
58
59
  "neptune.UploadButton.uploadFiles": "ファイルをアップロードする",
59
60
  "neptune.UploadInput.deleteModalBody": "このファイルを削除すると、当社のシステムからも削除されます。",
@@ -1 +1 @@
1
- {"version":3,"file":"ja.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ja.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -54,6 +54,7 @@
54
54
  "neptune.UploadButton.allFileTypes": "Todos os tipos de arquivos",
55
55
  "neptune.UploadButton.dropFiles": "Arraste o arquivo para iniciar o envio",
56
56
  "neptune.UploadButton.instructions": "{fileTypes}, com menos de {size}MB",
57
+ "neptune.UploadButton.maximumFiles": "Máximo de {maxFiles} arquivos.",
57
58
  "neptune.UploadButton.uploadFile": "Enviar arquivo",
58
59
  "neptune.UploadButton.uploadFiles": "Enviar arquivos",
59
60
  "neptune.UploadInput.deleteModalBody": "Se você remover este arquivo, ele será permanentemente excluído do nosso sistema.",
@@ -56,6 +56,7 @@ var pt = {
56
56
  "neptune.UploadButton.allFileTypes": "Todos os tipos de arquivos",
57
57
  "neptune.UploadButton.dropFiles": "Arraste o arquivo para iniciar o envio",
58
58
  "neptune.UploadButton.instructions": "{fileTypes}, com menos de {size}MB",
59
+ "neptune.UploadButton.maximumFiles": "Máximo de {maxFiles} arquivos.",
59
60
  "neptune.UploadButton.uploadFile": "Enviar arquivo",
60
61
  "neptune.UploadButton.uploadFiles": "Enviar arquivos",
61
62
  "neptune.UploadInput.deleteModalBody": "Se você remover este arquivo, ele será permanentemente excluído do nosso sistema.",
@@ -1 +1 @@
1
- {"version":3,"file":"pt.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"pt.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -54,6 +54,7 @@ var pt = {
54
54
  "neptune.UploadButton.allFileTypes": "Todos os tipos de arquivos",
55
55
  "neptune.UploadButton.dropFiles": "Arraste o arquivo para iniciar o envio",
56
56
  "neptune.UploadButton.instructions": "{fileTypes}, com menos de {size}MB",
57
+ "neptune.UploadButton.maximumFiles": "Máximo de {maxFiles} arquivos.",
57
58
  "neptune.UploadButton.uploadFile": "Enviar arquivo",
58
59
  "neptune.UploadButton.uploadFiles": "Enviar arquivos",
59
60
  "neptune.UploadInput.deleteModalBody": "Se você remover este arquivo, ele será permanentemente excluído do nosso sistema.",
@@ -1 +1 @@
1
- {"version":3,"file":"pt.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"pt.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -54,6 +54,7 @@
54
54
  "neptune.UploadButton.allFileTypes": "Все типы файлов",
55
55
  "neptune.UploadButton.dropFiles": "Перетащите файл, чтобы начать загрузку",
56
56
  "neptune.UploadButton.instructions": "{fileTypes}, не превышающий {size} MB",
57
+ "neptune.UploadButton.maximumFiles": "Макс. количество файлов: {maxFiles}.",
57
58
  "neptune.UploadButton.uploadFile": "Загрузить файл",
58
59
  "neptune.UploadButton.uploadFiles": "Загрузить файлы",
59
60
  "neptune.UploadInput.deleteModalBody": "Удаление этого файла приведет к его удалению из нашей системы.",
@@ -56,6 +56,7 @@ var ru = {
56
56
  "neptune.UploadButton.allFileTypes": "Все типы файлов",
57
57
  "neptune.UploadButton.dropFiles": "Перетащите файл, чтобы начать загрузку",
58
58
  "neptune.UploadButton.instructions": "{fileTypes}, не превышающий {size} MB",
59
+ "neptune.UploadButton.maximumFiles": "Макс. количество файлов: {maxFiles}.",
59
60
  "neptune.UploadButton.uploadFile": "Загрузить файл",
60
61
  "neptune.UploadButton.uploadFiles": "Загрузить файлы",
61
62
  "neptune.UploadInput.deleteModalBody": "Удаление этого файла приведет к его удалению из нашей системы.",
@@ -1 +1 @@
1
- {"version":3,"file":"ru.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ru.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -54,6 +54,7 @@ var ru = {
54
54
  "neptune.UploadButton.allFileTypes": "Все типы файлов",
55
55
  "neptune.UploadButton.dropFiles": "Перетащите файл, чтобы начать загрузку",
56
56
  "neptune.UploadButton.instructions": "{fileTypes}, не превышающий {size} MB",
57
+ "neptune.UploadButton.maximumFiles": "Макс. количество файлов: {maxFiles}.",
57
58
  "neptune.UploadButton.uploadFile": "Загрузить файл",
58
59
  "neptune.UploadButton.uploadFiles": "Загрузить файлы",
59
60
  "neptune.UploadInput.deleteModalBody": "Удаление этого файла приведет к его удалению из нашей системы.",
@@ -1 +1 @@
1
- {"version":3,"file":"ru.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ru.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -54,6 +54,7 @@
54
54
  "neptune.UploadButton.allFileTypes": "所有檔案類型",
55
55
  "neptune.UploadButton.dropFiles": "拖放檔案以開始上載",
56
56
  "neptune.UploadButton.instructions": "{fileTypes},小於{size}MB",
57
+ "neptune.UploadButton.maximumFiles": "最多{maxFiles}個檔案。",
57
58
  "neptune.UploadButton.uploadFile": "上載檔案",
58
59
  "neptune.UploadButton.uploadFiles": "上載檔案",
59
60
  "neptune.UploadInput.deleteModalBody": "移除此檔案會把它從我們的系統中刪除。",
@@ -56,6 +56,7 @@ var zhHK = {
56
56
  "neptune.UploadButton.allFileTypes": "所有檔案類型",
57
57
  "neptune.UploadButton.dropFiles": "拖放檔案以開始上載",
58
58
  "neptune.UploadButton.instructions": "{fileTypes},小於{size}MB",
59
+ "neptune.UploadButton.maximumFiles": "最多{maxFiles}個檔案。",
59
60
  "neptune.UploadButton.uploadFile": "上載檔案",
60
61
  "neptune.UploadButton.uploadFiles": "上載檔案",
61
62
  "neptune.UploadInput.deleteModalBody": "移除此檔案會把它從我們的系統中刪除。",
@@ -1 +1 @@
1
- {"version":3,"file":"zh-HK.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"zh-HK.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -54,6 +54,7 @@ var zhHK = {
54
54
  "neptune.UploadButton.allFileTypes": "所有檔案類型",
55
55
  "neptune.UploadButton.dropFiles": "拖放檔案以開始上載",
56
56
  "neptune.UploadButton.instructions": "{fileTypes},小於{size}MB",
57
+ "neptune.UploadButton.maximumFiles": "最多{maxFiles}個檔案。",
57
58
  "neptune.UploadButton.uploadFile": "上載檔案",
58
59
  "neptune.UploadButton.uploadFiles": "上載檔案",
59
60
  "neptune.UploadInput.deleteModalBody": "移除此檔案會把它從我們的系統中刪除。",
@@ -1 +1 @@
1
- {"version":3,"file":"zh-HK.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"zh-HK.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/build/index.js CHANGED
@@ -21,7 +21,7 @@ require('react/jsx-runtime');
21
21
  var Image = require('./image/Image.js');
22
22
  require('@transferwise/icons');
23
23
  var Body = require('./body/Body.js');
24
- var Button = require('./button/Button.js');
24
+ var Button_resolver = require('./button/Button.resolver.js');
25
25
  var IconButton = require('./iconButton/IconButton.js');
26
26
  var Carousel = require('./carousel/Carousel.js');
27
27
  var Card = require('./card/Card.js');
@@ -165,7 +165,7 @@ Object.defineProperty(exports, "Breakpoint", {
165
165
  });
166
166
  exports.Image = Image.default;
167
167
  exports.Body = Body;
168
- exports.Button = Button;
168
+ exports.Button = Button_resolver;
169
169
  exports.IconButton = IconButton;
170
170
  exports.Carousel = Carousel;
171
171
  exports.Card = Card;
package/build/index.mjs CHANGED
@@ -19,7 +19,7 @@ import 'react/jsx-runtime';
19
19
  export { default as Image } from './image/Image.mjs';
20
20
  import '@transferwise/icons';
21
21
  export { default as Body } from './body/Body.mjs';
22
- export { default as Button } from './button/Button.mjs';
22
+ export { default as Button } from './button/Button.resolver.mjs';
23
23
  export { default as IconButton } from './iconButton/IconButton.mjs';
24
24
  export { default as Carousel } from './carousel/Carousel.mjs';
25
25
  export { default as Card } from './card/Card.mjs';
@@ -3,6 +3,8 @@
3
3
  var icons = require('@transferwise/icons');
4
4
  var clsx = require('clsx');
5
5
  var reactIntl = require('react-intl');
6
+ require('../primitives/PrimitiveButton/src/PrimitiveButton.js');
7
+ var PrimitiveAnchor = require('../primitives/PrimitiveAnchor/src/PrimitiveAnchor.js');
6
8
  var Link_messages = require('./Link.messages.js');
7
9
  var jsxRuntime = require('react/jsx-runtime');
8
10
 
@@ -16,14 +18,17 @@ const Link = ({
16
18
  onClick,
17
19
  ...props
18
20
  }) => {
19
- const isBlank = target === '_blank';
20
21
  const {
21
22
  formatMessage
22
23
  } = reactIntl.useIntl();
23
- return /*#__PURE__*/jsxRuntime.jsxs("a", {
24
+ const isBlank = target === '_blank';
25
+ const classNames = clsx.clsx('np-link', 'd-inline-flex', {
26
+ [`np-text-${type}`]: type
27
+ }, className);
28
+ return /*#__PURE__*/jsxRuntime.jsxs(PrimitiveAnchor, {
24
29
  href: href,
25
30
  target: target,
26
- className: clsx.clsx('np-link', type ? `np-text-${type}` : undefined, 'd-inline-flex', className),
31
+ className: classNames,
27
32
  "aria-label": ariaLabel,
28
33
  rel: isBlank ? 'noreferrer' : undefined,
29
34
  onClick: onClick,
@@ -1 +1 @@
1
- {"version":3,"file":"Link.js","sources":["../../src/link/Link.tsx"],"sourcesContent":["import { NavigateAway as NavigateAwayIcon } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport { AnchorHTMLAttributes } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { LinkLarge, LinkDefault } from '../common';\n\nimport messages from './Link.messages';\n\nexport type Props = AnchorHTMLAttributes<HTMLAnchorElement> & { type?: LinkLarge | LinkDefault };\n\n/**\n * Standard Link component with navigate away icon\n *\n * Documentation: https://transferwise.github.io/neptune-web/components/content/Link\n */\nconst Link = ({\n className,\n children,\n href,\n target,\n type,\n 'aria-label': ariaLabel,\n onClick,\n ...props\n}: Props) => {\n const isBlank = target === '_blank';\n\n const { formatMessage } = useIntl();\n\n return (\n <a\n href={href}\n target={target}\n className={clsx('np-link', type ? `np-text-${type}` : undefined, 'd-inline-flex', className)}\n aria-label={ariaLabel}\n rel={isBlank ? 'noreferrer' : undefined}\n onClick={onClick}\n {...props}\n >\n {children} {isBlank && <NavigateAwayIcon title={formatMessage(messages.opensInNewTab)} />}\n </a>\n );\n};\n\nexport default Link;\n"],"names":["Link","className","children","href","target","type","ariaLabel","onClick","props","isBlank","formatMessage","useIntl","_jsxs","clsx","undefined","rel","_jsx","NavigateAwayIcon","title","messages","opensInNewTab"],"mappings":";;;;;;;;AAgBMA,MAAAA,IAAI,GAAGA,CAAC;EACZC,SAAS;EACTC,QAAQ;EACRC,IAAI;EACJC,MAAM;EACNC,IAAI;AACJ,EAAA,YAAY,EAAEC,SAAS;EACvBC,OAAO;EACP,GAAGC,KAAAA;AACG,CAAA,KAAI;AACV,EAAA,MAAMC,OAAO,GAAGL,MAAM,KAAK,QAAQ,CAAA;EAEnC,MAAM;AAAEM,IAAAA,aAAAA;GAAe,GAAGC,iBAAO,EAAE,CAAA;AAEnC,EAAA,oBACEC,eAAA,CAAA,GAAA,EAAA;AACET,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,MAAM,EAAEA,MAAO;AACfH,IAAAA,SAAS,EAAEY,SAAI,CAAC,SAAS,EAAER,IAAI,GAAG,CAAA,QAAA,EAAWA,IAAI,CAAA,CAAE,GAAGS,SAAS,EAAE,eAAe,EAAEb,SAAS,CAAE;AAC7F,IAAA,YAAA,EAAYK,SAAU;AACtBS,IAAAA,GAAG,EAAEN,OAAO,GAAG,YAAY,GAAGK,SAAU;AACxCP,IAAAA,OAAO,EAAEA,OAAQ;AAAA,IAAA,GACbC,KAAK;IAAAN,QAAA,EAAA,CAERA,QAAQ,EAAE,GAAA,EAACO,OAAO,iBAAIO,cAAA,CAACC,kBAAgB,EAAA;AAACC,MAAAA,KAAK,EAAER,aAAa,CAACS,aAAQ,CAACC,aAAa,CAAA;AAAE,MAAG,CAAA;AAAA,GACxF,CAAC,CAAA;AAER;;;;"}
1
+ {"version":3,"file":"Link.js","sources":["../../src/link/Link.tsx"],"sourcesContent":["import { NavigateAway as NavigateAwayIcon } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport { useIntl } from 'react-intl';\nimport { PrimitiveAnchor } from '../primitives';\nimport type { PrimitiveAnchorProps } from '../primitives';\n\nimport { LinkLarge, LinkDefault } from '../common';\n\nimport messages from './Link.messages';\n\nexport type Props = PrimitiveAnchorProps & { type?: LinkLarge | LinkDefault };\n\n/**\n * Standard Link component with navigate away icon\n *\n * Documentation: https://transferwise.github.io/neptune-web/components/content/Link\n */\nconst Link = ({\n className,\n children,\n href,\n target,\n type,\n 'aria-label': ariaLabel,\n onClick,\n ...props\n}: Props) => {\n const { formatMessage } = useIntl();\n const isBlank = target === '_blank';\n\n const classNames = clsx(\n 'np-link',\n 'd-inline-flex',\n {\n [`np-text-${type}`]: type,\n },\n className,\n );\n\n return (\n <PrimitiveAnchor\n href={href}\n target={target}\n className={classNames}\n aria-label={ariaLabel}\n rel={isBlank ? 'noreferrer' : undefined}\n onClick={onClick}\n {...props}\n >\n {children} {isBlank && <NavigateAwayIcon title={formatMessage(messages.opensInNewTab)} />}\n </PrimitiveAnchor>\n );\n};\n\nexport default Link;\n"],"names":["Link","className","children","href","target","type","ariaLabel","onClick","props","formatMessage","useIntl","isBlank","classNames","clsx","_jsxs","PrimitiveAnchor","rel","undefined","_jsx","NavigateAwayIcon","title","messages","opensInNewTab"],"mappings":";;;;;;;;;;AAiBMA,MAAAA,IAAI,GAAGA,CAAC;EACZC,SAAS;EACTC,QAAQ;EACRC,IAAI;EACJC,MAAM;EACNC,IAAI;AACJ,EAAA,YAAY,EAAEC,SAAS;EACvBC,OAAO;EACP,GAAGC,KAAAA;AACG,CAAA,KAAI;EACV,MAAM;AAAEC,IAAAA,aAAAA;GAAe,GAAGC,iBAAO,EAAE,CAAA;AACnC,EAAA,MAAMC,OAAO,GAAGP,MAAM,KAAK,QAAQ,CAAA;AAEnC,EAAA,MAAMQ,UAAU,GAAGC,SAAI,CACrB,SAAS,EACT,eAAe,EACf;IACE,CAAC,CAAA,QAAA,EAAWR,IAAI,CAAA,CAAE,GAAGA,IAAAA;GACtB,EACDJ,SAAS,CACV,CAAA;EAED,oBACEa,eAAA,CAACC,eAAe,EAAA;AACdZ,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,MAAM,EAAEA,MAAO;AACfH,IAAAA,SAAS,EAAEW,UAAW;AACtB,IAAA,YAAA,EAAYN,SAAU;AACtBU,IAAAA,GAAG,EAAEL,OAAO,GAAG,YAAY,GAAGM,SAAU;AACxCV,IAAAA,OAAO,EAAEA,OAAQ;AAAA,IAAA,GACbC,KAAK;IAAAN,QAAA,EAAA,CAERA,QAAQ,EAAE,GAAA,EAACS,OAAO,iBAAIO,cAAA,CAACC,kBAAgB,EAAA;AAACC,MAAAA,KAAK,EAAEX,aAAa,CAACY,aAAQ,CAACC,aAAa,CAAA;AAAE,MAAG,CAAA;AAAA,GAC1E,CAAC,CAAA;AAEtB;;;;"}
@@ -1,6 +1,8 @@
1
1
  import { NavigateAway } from '@transferwise/icons';
2
2
  import { clsx } from 'clsx';
3
3
  import { useIntl } from 'react-intl';
4
+ import '../primitives/PrimitiveButton/src/PrimitiveButton.mjs';
5
+ import PrimitiveAnchor from '../primitives/PrimitiveAnchor/src/PrimitiveAnchor.mjs';
4
6
  import messages from './Link.messages.mjs';
5
7
  import { jsxs, jsx } from 'react/jsx-runtime';
6
8
 
@@ -14,14 +16,17 @@ const Link = ({
14
16
  onClick,
15
17
  ...props
16
18
  }) => {
17
- const isBlank = target === '_blank';
18
19
  const {
19
20
  formatMessage
20
21
  } = useIntl();
21
- return /*#__PURE__*/jsxs("a", {
22
+ const isBlank = target === '_blank';
23
+ const classNames = clsx('np-link', 'd-inline-flex', {
24
+ [`np-text-${type}`]: type
25
+ }, className);
26
+ return /*#__PURE__*/jsxs(PrimitiveAnchor, {
22
27
  href: href,
23
28
  target: target,
24
- className: clsx('np-link', type ? `np-text-${type}` : undefined, 'd-inline-flex', className),
29
+ className: classNames,
25
30
  "aria-label": ariaLabel,
26
31
  rel: isBlank ? 'noreferrer' : undefined,
27
32
  onClick: onClick,
@@ -1 +1 @@
1
- {"version":3,"file":"Link.mjs","sources":["../../src/link/Link.tsx"],"sourcesContent":["import { NavigateAway as NavigateAwayIcon } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport { AnchorHTMLAttributes } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { LinkLarge, LinkDefault } from '../common';\n\nimport messages from './Link.messages';\n\nexport type Props = AnchorHTMLAttributes<HTMLAnchorElement> & { type?: LinkLarge | LinkDefault };\n\n/**\n * Standard Link component with navigate away icon\n *\n * Documentation: https://transferwise.github.io/neptune-web/components/content/Link\n */\nconst Link = ({\n className,\n children,\n href,\n target,\n type,\n 'aria-label': ariaLabel,\n onClick,\n ...props\n}: Props) => {\n const isBlank = target === '_blank';\n\n const { formatMessage } = useIntl();\n\n return (\n <a\n href={href}\n target={target}\n className={clsx('np-link', type ? `np-text-${type}` : undefined, 'd-inline-flex', className)}\n aria-label={ariaLabel}\n rel={isBlank ? 'noreferrer' : undefined}\n onClick={onClick}\n {...props}\n >\n {children} {isBlank && <NavigateAwayIcon title={formatMessage(messages.opensInNewTab)} />}\n </a>\n );\n};\n\nexport default Link;\n"],"names":["Link","className","children","href","target","type","ariaLabel","onClick","props","isBlank","formatMessage","useIntl","_jsxs","clsx","undefined","rel","_jsx","NavigateAwayIcon","title","messages","opensInNewTab"],"mappings":";;;;;;AAgBMA,MAAAA,IAAI,GAAGA,CAAC;EACZC,SAAS;EACTC,QAAQ;EACRC,IAAI;EACJC,MAAM;EACNC,IAAI;AACJ,EAAA,YAAY,EAAEC,SAAS;EACvBC,OAAO;EACP,GAAGC,KAAAA;AACG,CAAA,KAAI;AACV,EAAA,MAAMC,OAAO,GAAGL,MAAM,KAAK,QAAQ,CAAA;EAEnC,MAAM;AAAEM,IAAAA,aAAAA;GAAe,GAAGC,OAAO,EAAE,CAAA;AAEnC,EAAA,oBACEC,IAAA,CAAA,GAAA,EAAA;AACET,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,MAAM,EAAEA,MAAO;AACfH,IAAAA,SAAS,EAAEY,IAAI,CAAC,SAAS,EAAER,IAAI,GAAG,CAAA,QAAA,EAAWA,IAAI,CAAA,CAAE,GAAGS,SAAS,EAAE,eAAe,EAAEb,SAAS,CAAE;AAC7F,IAAA,YAAA,EAAYK,SAAU;AACtBS,IAAAA,GAAG,EAAEN,OAAO,GAAG,YAAY,GAAGK,SAAU;AACxCP,IAAAA,OAAO,EAAEA,OAAQ;AAAA,IAAA,GACbC,KAAK;IAAAN,QAAA,EAAA,CAERA,QAAQ,EAAE,GAAA,EAACO,OAAO,iBAAIO,GAAA,CAACC,YAAgB,EAAA;AAACC,MAAAA,KAAK,EAAER,aAAa,CAACS,QAAQ,CAACC,aAAa,CAAA;AAAE,MAAG,CAAA;AAAA,GACxF,CAAC,CAAA;AAER;;;;"}
1
+ {"version":3,"file":"Link.mjs","sources":["../../src/link/Link.tsx"],"sourcesContent":["import { NavigateAway as NavigateAwayIcon } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport { useIntl } from 'react-intl';\nimport { PrimitiveAnchor } from '../primitives';\nimport type { PrimitiveAnchorProps } from '../primitives';\n\nimport { LinkLarge, LinkDefault } from '../common';\n\nimport messages from './Link.messages';\n\nexport type Props = PrimitiveAnchorProps & { type?: LinkLarge | LinkDefault };\n\n/**\n * Standard Link component with navigate away icon\n *\n * Documentation: https://transferwise.github.io/neptune-web/components/content/Link\n */\nconst Link = ({\n className,\n children,\n href,\n target,\n type,\n 'aria-label': ariaLabel,\n onClick,\n ...props\n}: Props) => {\n const { formatMessage } = useIntl();\n const isBlank = target === '_blank';\n\n const classNames = clsx(\n 'np-link',\n 'd-inline-flex',\n {\n [`np-text-${type}`]: type,\n },\n className,\n );\n\n return (\n <PrimitiveAnchor\n href={href}\n target={target}\n className={classNames}\n aria-label={ariaLabel}\n rel={isBlank ? 'noreferrer' : undefined}\n onClick={onClick}\n {...props}\n >\n {children} {isBlank && <NavigateAwayIcon title={formatMessage(messages.opensInNewTab)} />}\n </PrimitiveAnchor>\n );\n};\n\nexport default Link;\n"],"names":["Link","className","children","href","target","type","ariaLabel","onClick","props","formatMessage","useIntl","isBlank","classNames","clsx","_jsxs","PrimitiveAnchor","rel","undefined","_jsx","NavigateAwayIcon","title","messages","opensInNewTab"],"mappings":";;;;;;;;AAiBMA,MAAAA,IAAI,GAAGA,CAAC;EACZC,SAAS;EACTC,QAAQ;EACRC,IAAI;EACJC,MAAM;EACNC,IAAI;AACJ,EAAA,YAAY,EAAEC,SAAS;EACvBC,OAAO;EACP,GAAGC,KAAAA;AACG,CAAA,KAAI;EACV,MAAM;AAAEC,IAAAA,aAAAA;GAAe,GAAGC,OAAO,EAAE,CAAA;AACnC,EAAA,MAAMC,OAAO,GAAGP,MAAM,KAAK,QAAQ,CAAA;AAEnC,EAAA,MAAMQ,UAAU,GAAGC,IAAI,CACrB,SAAS,EACT,eAAe,EACf;IACE,CAAC,CAAA,QAAA,EAAWR,IAAI,CAAA,CAAE,GAAGA,IAAAA;GACtB,EACDJ,SAAS,CACV,CAAA;EAED,oBACEa,IAAA,CAACC,eAAe,EAAA;AACdZ,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,MAAM,EAAEA,MAAO;AACfH,IAAAA,SAAS,EAAEW,UAAW;AACtB,IAAA,YAAA,EAAYN,SAAU;AACtBU,IAAAA,GAAG,EAAEL,OAAO,GAAG,YAAY,GAAGM,SAAU;AACxCV,IAAAA,OAAO,EAAEA,OAAQ;AAAA,IAAA,GACbC,KAAK;IAAAN,QAAA,EAAA,CAERA,QAAQ,EAAE,GAAA,EAACS,OAAO,iBAAIO,GAAA,CAACC,YAAgB,EAAA;AAACC,MAAAA,KAAK,EAAEX,aAAa,CAACY,QAAQ,CAACC,aAAa,CAAA;AAAE,MAAG,CAAA;AAAA,GAC1E,CAAC,CAAA;AAEtB;;;;"}
package/build/main.css CHANGED
@@ -518,10 +518,18 @@ div.critical-comms .critical-comms-body {
518
518
  -webkit-mask-image: radial-gradient(circle at bottom calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)) right calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)), transparent 0, transparent calc(var(--np-avatar-size) / 2 + 2px), black 0);
519
519
  mask-image: radial-gradient(circle at bottom calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)) right calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)), transparent 0, transparent calc(var(--np-avatar-size) / 2 + 2px), black 0);
520
520
  }
521
+ [dir="rtl"] .np-avatar-layout-diagonal-mask {
522
+ -webkit-mask-image: radial-gradient(circle at bottom calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)) left calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)), transparent 0, transparent calc(var(--np-avatar-size) / 2 + 2px), black 0);
523
+ mask-image: radial-gradient(circle at bottom calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)) left calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)), transparent 0, transparent calc(var(--np-avatar-size) / 2 + 2px), black 0);
524
+ }
521
525
  .np-avatar-layout-diagonal-child {
522
526
  margin-left: calc(var(--np-avatar-layout-size) - var(--np-avatar-size) * 2);
523
527
  margin-top: calc(var(--np-avatar-layout-size) - var(--np-avatar-size));
524
528
  }
529
+ [dir="rtl"] .np-avatar-layout-diagonal-child {
530
+ margin-left: 0;
531
+ margin-right: calc(var(--np-avatar-layout-size) - var(--np-avatar-size) * 2);
532
+ }
525
533
  .np-avatar-layout-horizontal {
526
534
  width: calc(var(--np-avatar-size) * var(--np-avatar-avatars-count) - (var(--np-avatar-offset) * (var(--np-avatar-avatars-count) - 1)));
527
535
  width: calc(var(--np-avatar-size) * var(--np-avatar-avatars-count) - calc(var(--np-avatar-offset) * calc(var(--np-avatar-avatars-count) - 1)));
@@ -536,6 +544,9 @@ div.critical-comms .critical-comms-body {
536
544
  .np-avatar-layout-horizontal-child {
537
545
  margin-left: calc(var(--np-avatar-offset) * -1);
538
546
  }
547
+ [dir="rtl"] .np-avatar-layout-horizontal-child {
548
+ margin-right: calc(var(--np-avatar-offset) * -1);
549
+ }
539
550
  .np-icon-button {
540
551
  border: none;
541
552
  }
@@ -706,6 +717,242 @@ div.critical-comms .critical-comms-body {
706
717
  .np-btn.disabled[class] {
707
718
  pointer-events: auto;
708
719
  }
720
+ .wds-Button {
721
+ --Button-background: var(--color-interactive-accent);
722
+ --Button-background-hover: var(--color-interactive-accent-hover);
723
+ --Button-background-active: var(--color-interactive-accent-active);
724
+ --Button-color: var(--color-interactive-control);
725
+ --Button-border-radius: var(--radius-full);
726
+ --Button-label-gap: var(--size-4);
727
+ --Button-large-padding: var(--size-12) var(--size-16);
728
+ --Button-medium-padding: var(--size-8) var(--size-12);
729
+ --Button-small-padding: var(--size-5) var(--size-12);
730
+ --Button-avatar-border-color: var(--color-border-neutral);
731
+ --Button-transition-duration: 150ms;
732
+ --Button-transition-easing: ease-in-out;
733
+ --Button-secondary-background: var(--color-interactive-neutral);
734
+ --Button-secondary-background-hover: var(--color-interactive-neutral-hover);
735
+ --Button-secondary-background-active: var(--color-interactive-neutral-active);
736
+ --Button-secondary-color: var(--color-interactive-primary);
737
+ --Button-secondary-neutral-background: var(--color-background-neutral);
738
+ --Button-secondary-neutral-background-hover: var(--color-background-neutral-hover);
739
+ --Button-secondary-neutral-background-active: var(--color-background-neutral-active);
740
+ --Button-secondary-neutral-color: var(--color-content-primary);
741
+ --Button-tertiary-background: transparent;
742
+ --Button-tertiary-background-hover: var(--color-background-screen-hover);
743
+ --Button-tertiary-background-active: var(--color-background-screen-active);
744
+ --Button-tertiary-color: var(--color-interactive-primary);
745
+ --Button-primary-negative-background: var(--color-sentiment-negative-primary);
746
+ --Button-primary-negative-background-hover: var(--color-sentiment-negative-primary-hover);
747
+ --Button-primary-negative-background-active: var(--color-sentiment-negative-primary-active);
748
+ --Button-primary-negative-color: var(--color-contrast-overlay);
749
+ --Button-secondary-negative-background: var(--color-sentiment-negative-secondary);
750
+ --Button-secondary-negative-background-hover: var(--color-sentiment-negative-secondary-hover);
751
+ --Button-secondary-negative-background-active: var(--color-sentiment-negative-secondary-active);
752
+ --Button-secondary-negative-color: var(--color-sentiment-negative-primary);
753
+ }
754
+ .np-theme-personal--bright-green .wds-Button {
755
+ --Button-primary-negative-color: var(--color-white);
756
+ --Button-secondary-color: var(--color-interactive-control);
757
+ --Button-secondary-negative-color: var(--color-white);
758
+ }
759
+ .np-theme-personal--forest-green .wds-Button {
760
+ --Button-secondary-background: var(--color-interactive-neutral);
761
+ --Button-secondary-negative-background: var(--color-sentiment-negative-primary);
762
+ --Button-secondary-negative-background-hover: var(--color-sentiment-negative-primary-hover);
763
+ --Button-secondary-negative-background-active: var(--color-sentiment-negative-primary-active);
764
+ --Button-secondary-negative-color: var(--color-contrast-overlay);
765
+ }
766
+ /* Button Styles */
767
+ .wds-Button {
768
+ display: inline-flex;
769
+ flex: none;
770
+ width: auto;
771
+ align-items: center;
772
+ justify-content: center;
773
+ vertical-align: middle;
774
+ text-align: center;
775
+ white-space: nowrap;
776
+ word-wrap: break-word;
777
+ -webkit-appearance: none;
778
+ -moz-appearance: none;
779
+ appearance: none;
780
+ background-color: var(--Button-background);
781
+ border: none;
782
+ border-radius: var(--Button-border-radius);
783
+ color: var(--Button-color);
784
+ cursor: pointer;
785
+ transition: color, background-color var(--Button-transition-duration) var(--Button-transition-easing);
786
+ }
787
+ .wds-Button,
788
+ .wds-Button:hover,
789
+ .wds-Button:active,
790
+ .wds-Button:focus {
791
+ -webkit-text-decoration: none;
792
+ text-decoration: none;
793
+ color: var(--Button-color);
794
+ }
795
+ .wds-Button:hover {
796
+ background-color: var(--Button-background-hover);
797
+ }
798
+ .wds-Button:active {
799
+ background-color: var(--Button-background-active);
800
+ }
801
+ .wds-Button.wds-Button--disabled,
802
+ .wds-Button:disabled {
803
+ filter: none;
804
+ mix-blend-mode: luminosity;
805
+ opacity: 0.45;
806
+ cursor: not-allowed;
807
+ }
808
+ .wds-Button.wds-Button--disabled,
809
+ .wds-Button:disabled,
810
+ .wds-Button.wds-Button--disabled:hover,
811
+ .wds-Button:disabled:hover,
812
+ .wds-Button.wds-Button--disabled:active,
813
+ .wds-Button:disabled:active {
814
+ background-color: var(--Button-background);
815
+ }
816
+ .wds-Button--secondary {
817
+ --Button-background: var(--Button-secondary-background);
818
+ --Button-background-hover: var(--Button-secondary-background-hover);
819
+ --Button-background-active: var(--Button-secondary-background-active);
820
+ --Button-color: var(--Button-secondary-color);
821
+ }
822
+ .wds-Button--secondary-neutral {
823
+ --Button-background: var(--Button-secondary-neutral-background);
824
+ --Button-background-hover: var(--Button-secondary-neutral-background-hover);
825
+ --Button-background-active: var(--Button-secondary-neutral-background-active);
826
+ --Button-color: var(--Button-secondary-neutral-color);
827
+ }
828
+ .wds-Button--secondary-neutral .wds-Button-icon--end {
829
+ color: var(--color-interactive-primary);
830
+ }
831
+ .wds-Button--tertiary {
832
+ --Button-background: var(--Button-tertiary-background);
833
+ --Button-background-hover: var(--Button-tertiary-background-hover);
834
+ --Button-background-active: var(--Button-tertiary-background-active);
835
+ --Button-color: var(--Button-tertiary-color);
836
+ }
837
+ .wds-Button--tertiary .wds-Button-labelText,
838
+ .wds-Button--tertiary:hover .wds-Button-labelText,
839
+ .wds-Button--tertiary:active .wds-Button-labelText,
840
+ .wds-Button--tertiary:focus .wds-Button-labelText {
841
+ -webkit-text-decoration: underline;
842
+ text-decoration: underline;
843
+ text-underline-offset: 3px;
844
+ text-decoration-thickness: 1px;
845
+ }
846
+ .wds-Button--negative.wds-Button--primary {
847
+ --Button-background: var(--Button-primary-negative-background);
848
+ --Button-background-hover: var(--Button-primary-negative-background-hover);
849
+ --Button-background-active: var(--Button-primary-negative-background-active);
850
+ --Button-color: var(--Button-primary-negative-color);
851
+ }
852
+ .wds-Button--negative.wds-Button--secondary {
853
+ --Button-background: var(--Button-secondary-negative-background);
854
+ --Button-background-hover: var(--Button-secondary-negative-background-hover);
855
+ --Button-background-active: var(--Button-secondary-negative-background-active);
856
+ --Button-color: var(--Button-secondary-negative-color);
857
+ }
858
+ .wds-Button--large {
859
+ padding: var(--Button-large-padding);
860
+ }
861
+ .wds-Button--medium {
862
+ padding: var(--Button-medium-padding);
863
+ }
864
+ .wds-Button--medium:has(.wds-Button-avatars) {
865
+ padding-inline-start: 8px;
866
+ padding-inline-start: var(--size-8);
867
+ }
868
+ .wds-Button--medium:has(.wds-Button-icon--end) {
869
+ padding-inline-end: 8px;
870
+ padding-inline-end: var(--size-8);
871
+ }
872
+ .wds-Button--medium .wds-Button-icon--start {
873
+ margin-inline-end: var(--Button-label-gap);
874
+ }
875
+ .wds-Button--small {
876
+ padding: var(--Button-small-padding);
877
+ }
878
+ .wds-Button--small:has(.wds-Button-icon--start) {
879
+ padding-inline-start: 8px;
880
+ padding-inline-start: var(--size-8);
881
+ }
882
+ .wds-Button--small:has(.wds-Button-icon--end) {
883
+ padding-inline-end: 8px;
884
+ padding-inline-end: var(--size-8);
885
+ }
886
+ .wds-Button--block {
887
+ width: 100%;
888
+ }
889
+ .wds-Button-avatars {
890
+ display: inline-flex;
891
+ }
892
+ .wds-Button-avatars .np-avatar-view .np-avatar-view-content {
893
+ color: var(--Button-color);
894
+ }
895
+ .wds-Button-icon {
896
+ display: inline-block;
897
+ }
898
+ .wds-Button-icon--md {
899
+ --Button-iconSize: calc(var(--size-10) + var(--size-8));
900
+ }
901
+ .wds-Button-icon--sm {
902
+ --Button-iconSize: var(--size-16);
903
+ }
904
+ .wds-Button-icon svg {
905
+ width: var(--Button-iconSize);
906
+ height: var(--Button-iconSize);
907
+ }
908
+ .wds-Button-content {
909
+ position: relative;
910
+ }
911
+ .wds-Button-content--loading .wds-Button-label,
912
+ .wds-Button-content--loading .wds-Button-media,
913
+ .wds-Button-content--loading .wds-Button-icon {
914
+ visibility: hidden;
915
+ opacity: 0;
916
+ }
917
+ .wds-Button-label {
918
+ display: flex;
919
+ justify-content: center;
920
+ align-items: center;
921
+ gap: var(--Button-label-gap);
922
+ position: relative;
923
+ }
924
+ .wds-Button-loader {
925
+ position: absolute;
926
+ width: 100%;
927
+ height: 100%;
928
+ }
929
+ .wds-Button-loader .process-circle {
930
+ stroke: var(--Button-color);
931
+ }
932
+ /* Avatar border transparency */
933
+ /* dark buttons get 20% transparency, light buttons get 12% */
934
+ .wds-Button-avatars .np-circle {
935
+ --circle-border-color: color-mix(in srgb, var(--Button-color) 20%, transparent);
936
+ }
937
+ .np-theme-personal:not(.np-theme-personal--dark):not(.np-theme-personal--forest-green):not(.np-theme-personal--bright-green) .wds-Button--secondary.wds-Button--negative .wds-Button-avatars .np-circle,
938
+ .np-theme-personal:not(.np-theme-personal--dark):not(.np-theme-personal--forest-green):not(.np-theme-personal--bright-green) .wds-Button--secondary .wds-Button-avatars .np-circle,
939
+ .np-theme-personal:not(.np-theme-personal--dark):not(.np-theme-personal--forest-green):not(.np-theme-personal--bright-green) .wds-Button--secondary-neutral .wds-Button-avatars .np-circle,
940
+ .np-theme-personal:not(.np-theme-personal--dark):not(.np-theme-personal--forest-green):not(.np-theme-personal--bright-green) .wds-Button--tertiary .wds-Button-avatars .np-circle {
941
+ --circle-border-color: color-mix(in srgb, var(--Button-color) 12%, transparent);
942
+ }
943
+ .np-theme-personal--dark .wds-Button--primary .wds-Button-avatars .np-circle,
944
+ .np-theme-personal--dark .wds-Button--primary.wds-Button--negative .wds-Button-avatars .np-circle,
945
+ .np-theme-personal--forest-green .wds-Button--primary .wds-Button-avatars .np-circle,
946
+ .np-theme-personal--forest-green .wds-Button--primary.wds-Button--negative .wds-Button-avatars .np-circle {
947
+ --circle-border-color: color-mix(in srgb, var(--Button-color) 12%, transparent);
948
+ }
949
+ .np-theme-personal--bright-green .wds-Button--tertiary .wds-Button-avatars .np-circle,
950
+ .np-theme-personal--bright-green .wds-Button--secondary-neutral .wds-Button-avatars .np-circle {
951
+ --circle-border-color: color-mix(in srgb, var(--Button-color) 12%, transparent);
952
+ }
953
+ [dir="rtl"] .wds-Button .tw-icon-chevron-right,[dir="rtl"] .wds-Button .tw-icon-arrow-right,[dir="rtl"] .wds-Button .tw-icon-chevron-left,[dir="rtl"] .wds-Button .tw-icon-arrow-left,[dir="rtl"] .wds-Button .tw-icon-arrow-diagonal-down,[dir="rtl"] .wds-Button .tw-icon-arrow-diagonal-up,[dir="rtl"] .wds-Button .tw-icon-list,[dir="rtl"] .wds-Button .tw-icon-activity {
954
+ scale: -1 1;
955
+ }
709
956
  .np-card {
710
957
  overflow: hidden;
711
958
  transition-property: transform, box-shadow;
@@ -19,9 +19,7 @@ const PrimitiveAnchor = /*#__PURE__*/React.forwardRef(({
19
19
  onKeyDown,
20
20
  ...props
21
21
  }, ref) => {
22
- const anchorClasses = clsx.clsx('wds-Anchor', {
23
- 'wds-Anchor--disabled': disabled
24
- }, className);
22
+ const anchorClasses = clsx.clsx(className);
25
23
  const handleClick = React.useCallback(event => {
26
24
  if (disabled) {
27
25
  event.preventDefault();
@@ -56,7 +54,7 @@ const PrimitiveAnchor = /*#__PURE__*/React.forwardRef(({
56
54
  * https://www.scottohara.me/blog/2021/05/28/disabled-links.html
57
55
  */
58
56
  const anchorProps = {
59
- 'aria-disabled': disabled,
57
+ 'aria-disabled': disabled || undefined,
60
58
  className: anchorClasses,
61
59
  'data-testid': testId,
62
60
  href: disabled ? undefined : href,