@transferwise/components 0.0.0-experimental-c54e90a → 0.0.0-experimental-e611dd1
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.
- package/build/common/hooks/useResizeObserver.js +3 -3
- package/build/common/hooks/useResizeObserver.js.map +1 -1
- package/build/common/hooks/useResizeObserver.mjs +3 -3
- package/build/common/hooks/useResizeObserver.mjs.map +1 -1
- package/build/field/Field.js +2 -3
- package/build/field/Field.js.map +1 -1
- package/build/field/Field.mjs +2 -3
- package/build/field/Field.mjs.map +1 -1
- package/build/i18n/en.json +0 -2
- package/build/i18n/en.json.js +0 -2
- package/build/i18n/en.json.js.map +1 -1
- package/build/i18n/en.json.mjs +0 -2
- package/build/i18n/en.json.mjs.map +1 -1
- package/build/index.js +0 -2
- package/build/index.js.map +1 -1
- package/build/index.mjs +0 -1
- package/build/index.mjs.map +1 -1
- package/build/listItem/Prompt/ListItemPrompt.js +2 -3
- package/build/listItem/Prompt/ListItemPrompt.js.map +1 -1
- package/build/listItem/Prompt/ListItemPrompt.mjs +2 -3
- package/build/listItem/Prompt/ListItemPrompt.mjs.map +1 -1
- package/build/main.css +29 -192
- package/build/prompt/ActionPrompt/ActionPrompt.js +40 -8
- package/build/prompt/ActionPrompt/ActionPrompt.js.map +1 -1
- package/build/prompt/ActionPrompt/ActionPrompt.mjs +40 -8
- package/build/prompt/ActionPrompt/ActionPrompt.mjs.map +1 -1
- package/build/prompt/PrimitivePrompt/PrimitivePrompt.js +4 -11
- package/build/prompt/PrimitivePrompt/PrimitivePrompt.js.map +1 -1
- package/build/prompt/PrimitivePrompt/PrimitivePrompt.mjs +4 -11
- package/build/prompt/PrimitivePrompt/PrimitivePrompt.mjs.map +1 -1
- package/build/styles/main.css +29 -192
- package/build/table/Table.js +5 -5
- package/build/table/Table.js.map +1 -1
- package/build/table/Table.mjs +5 -5
- package/build/table/Table.mjs.map +1 -1
- package/build/typeahead/Typeahead.js +2 -3
- package/build/typeahead/Typeahead.js.map +1 -1
- package/build/typeahead/Typeahead.mjs +2 -3
- package/build/typeahead/Typeahead.mjs.map +1 -1
- package/build/types/common/hooks/useResizeObserver.d.ts +1 -1
- package/build/types/common/hooks/useResizeObserver.d.ts.map +1 -1
- package/build/types/index.d.ts +2 -2
- package/build/types/index.d.ts.map +1 -1
- package/build/types/prompt/ActionPrompt/ActionPrompt.d.ts +11 -2
- package/build/types/prompt/ActionPrompt/ActionPrompt.d.ts.map +1 -1
- package/build/types/prompt/PrimitivePrompt/PrimitivePrompt.d.ts +3 -35
- package/build/types/prompt/PrimitivePrompt/PrimitivePrompt.d.ts.map +1 -1
- package/build/types/prompt/index.d.ts +0 -2
- package/build/types/prompt/index.d.ts.map +1 -1
- package/build/types/test-utils/index.d.ts +0 -4
- package/build/types/test-utils/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/common/bottomSheet/BottomSheet.test.story.tsx +6 -5
- package/src/common/hooks/useResizeObserver.ts +2 -3
- package/src/i18n/en.json +0 -2
- package/src/index.ts +2 -2
- package/src/main.css +29 -192
- package/src/main.less +1 -3
- package/src/prompt/ActionPrompt/ActionPrompt.tsx +62 -9
- package/src/prompt/PrimitivePrompt/PrimitivePrompt.tsx +40 -56
- package/src/prompt/index.ts +0 -4
- package/src/sentimentSurface/SentimentSurface.story.tsx +17 -43
- package/src/table/Table.story.tsx +1 -1
- package/src/table/Table.tsx +5 -5
- package/build/common/hooks/useContainerSize.js +0 -30
- package/build/common/hooks/useContainerSize.js.map +0 -1
- package/build/common/hooks/useContainerSize.mjs +0 -28
- package/build/common/hooks/useContainerSize.mjs.map +0 -1
- package/build/prompt/CriticalBanner/CriticalBanner.js +0 -142
- package/build/prompt/CriticalBanner/CriticalBanner.js.map +0 -1
- package/build/prompt/CriticalBanner/CriticalBanner.mjs +0 -140
- package/build/prompt/CriticalBanner/CriticalBanner.mjs.map +0 -1
- package/build/prompt/CriticalBanner/helpers.js +0 -29
- package/build/prompt/CriticalBanner/helpers.js.map +0 -1
- package/build/prompt/CriticalBanner/helpers.mjs +0 -26
- package/build/prompt/CriticalBanner/helpers.mjs.map +0 -1
- package/build/prompt/common/Expander/Expander.js +0 -35
- package/build/prompt/common/Expander/Expander.js.map +0 -1
- package/build/prompt/common/Expander/Expander.messages.js +0 -17
- package/build/prompt/common/Expander/Expander.messages.js.map +0 -1
- package/build/prompt/common/Expander/Expander.messages.mjs +0 -13
- package/build/prompt/common/Expander/Expander.messages.mjs.map +0 -1
- package/build/prompt/common/Expander/Expander.mjs +0 -33
- package/build/prompt/common/Expander/Expander.mjs.map +0 -1
- package/build/prompt/helpers/promptMedia.js +0 -52
- package/build/prompt/helpers/promptMedia.js.map +0 -1
- package/build/prompt/helpers/promptMedia.mjs +0 -50
- package/build/prompt/helpers/promptMedia.mjs.map +0 -1
- package/build/styles/prompt/CriticalBanner/CriticalBanner.css +0 -132
- package/build/styles/prompt/CriticalBanner/CriticalBanner.vars.css +0 -0
- package/build/styles/prompt/common/Expander/Expander.css +0 -8
- package/build/types/common/hooks/useContainerSize.d.ts +0 -14
- package/build/types/common/hooks/useContainerSize.d.ts.map +0 -1
- package/build/types/prompt/CriticalBanner/CriticalBanner.d.ts +0 -39
- package/build/types/prompt/CriticalBanner/CriticalBanner.d.ts.map +0 -1
- package/build/types/prompt/CriticalBanner/helpers.d.ts +0 -18
- package/build/types/prompt/CriticalBanner/helpers.d.ts.map +0 -1
- package/build/types/prompt/CriticalBanner/index.d.ts +0 -3
- package/build/types/prompt/CriticalBanner/index.d.ts.map +0 -1
- package/build/types/prompt/common/Expander/Expander.d.ts +0 -20
- package/build/types/prompt/common/Expander/Expander.d.ts.map +0 -1
- package/build/types/prompt/common/Expander/Expander.messages.d.ts +0 -14
- package/build/types/prompt/common/Expander/Expander.messages.d.ts.map +0 -1
- package/build/types/prompt/helpers/promptMedia.d.ts +0 -22
- package/build/types/prompt/helpers/promptMedia.d.ts.map +0 -1
- package/src/common/hooks/useContainerSize.test.tsx +0 -121
- package/src/common/hooks/useContainerSize.ts +0 -32
- package/src/prompt/CriticalBanner/CriticalBanner.accessibility.docs.mdx +0 -113
- package/src/prompt/CriticalBanner/CriticalBanner.css +0 -132
- package/src/prompt/CriticalBanner/CriticalBanner.less +0 -153
- package/src/prompt/CriticalBanner/CriticalBanner.story.tsx +0 -635
- package/src/prompt/CriticalBanner/CriticalBanner.test.story.tsx +0 -422
- package/src/prompt/CriticalBanner/CriticalBanner.tsx +0 -178
- package/src/prompt/CriticalBanner/CriticalBanner.vars.css +0 -0
- package/src/prompt/CriticalBanner/CriticalBanner.vars.less +0 -6
- package/src/prompt/CriticalBanner/helpers.ts +0 -39
- package/src/prompt/CriticalBanner/index.ts +0 -2
- package/src/prompt/common/Expander/Expander.css +0 -8
- package/src/prompt/common/Expander/Expander.less +0 -9
- package/src/prompt/common/Expander/Expander.messages.ts +0 -14
- package/src/prompt/common/Expander/Expander.test.tsx +0 -167
- package/src/prompt/common/Expander/Expander.tsx +0 -83
- package/src/prompt/helpers/promptMedia.tsx +0 -79
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var clsx = require('clsx');
|
|
5
|
+
var StatusIcon = require('../../statusIcon/StatusIcon.js');
|
|
5
6
|
var Body = require('../../body/Body.js');
|
|
6
7
|
var Button_resolver = require('../../button/Button.resolver.js');
|
|
7
8
|
require('../../common/theme.js');
|
|
@@ -24,13 +25,14 @@ require('../../common/propsValues/scroll.js');
|
|
|
24
25
|
require('../../common/propsValues/markdownNodeType.js');
|
|
25
26
|
require('../../common/fileType.js');
|
|
26
27
|
require('@transferwise/formatting');
|
|
27
|
-
require('@transferwise/icons');
|
|
28
|
+
var icons = require('@transferwise/icons');
|
|
28
29
|
require('react-intl');
|
|
29
30
|
require('../../common/closeButton/CloseButton.messages.js');
|
|
30
31
|
var jsxRuntime = require('react/jsx-runtime');
|
|
32
|
+
var AvatarView = require('../../avatarView/AvatarView.js');
|
|
33
|
+
var Image = require('../../image/Image.js');
|
|
31
34
|
var PrimitivePrompt = require('../PrimitivePrompt/PrimitivePrompt.js');
|
|
32
35
|
var useScreenSize = require('../../common/hooks/useScreenSize.js');
|
|
33
|
-
var promptMedia = require('../helpers/promptMedia.js');
|
|
34
36
|
|
|
35
37
|
const ActionPrompt = ({
|
|
36
38
|
sentiment = 'neutral',
|
|
@@ -50,12 +52,42 @@ const ActionPrompt = ({
|
|
|
50
52
|
const titleId = React.useId();
|
|
51
53
|
const descId = React.useId();
|
|
52
54
|
const ariaLabelledByIds = [media['aria-hidden'] ? undefined : mediaId, ariaLabel ? undefined : titleId].filter(Boolean).join(' ');
|
|
53
|
-
const renderMedia = () =>
|
|
54
|
-
media
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
const renderMedia = () => {
|
|
56
|
+
if (media?.imgSrc) {
|
|
57
|
+
return /*#__PURE__*/jsxRuntime.jsx(Image.default, {
|
|
58
|
+
id: mediaId,
|
|
59
|
+
src: media.imgSrc,
|
|
60
|
+
className: "wds-action-prompt--media-image",
|
|
61
|
+
alt: media['aria-label'] ?? ''
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (media?.avatar) {
|
|
65
|
+
const badge = media.avatar.badge ? media.avatar.badge : sentiment === 'proposition' ? {} : {
|
|
66
|
+
status: sentiment
|
|
67
|
+
};
|
|
68
|
+
return /*#__PURE__*/jsxRuntime.jsx(AvatarView.default, {
|
|
69
|
+
...media.avatar,
|
|
70
|
+
badge: badge,
|
|
71
|
+
"aria-label": media['aria-label'],
|
|
72
|
+
"aria-hidden": media['aria-hidden'],
|
|
73
|
+
id: mediaId,
|
|
74
|
+
size: 48,
|
|
75
|
+
children: media.avatar.asset
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return sentiment === 'proposition' ? /*#__PURE__*/jsxRuntime.jsx(AvatarView.default, {
|
|
79
|
+
id: mediaId,
|
|
80
|
+
size: 48,
|
|
81
|
+
"aria-label": media['aria-label'],
|
|
82
|
+
"aria-hidden": media['aria-hidden'],
|
|
83
|
+
children: /*#__PURE__*/jsxRuntime.jsx(icons.GiftBox, {})
|
|
84
|
+
}) : /*#__PURE__*/jsxRuntime.jsx(StatusIcon.default, {
|
|
85
|
+
id: mediaId,
|
|
86
|
+
size: 48,
|
|
87
|
+
sentiment: sentiment,
|
|
88
|
+
iconLabel: media['aria-hidden'] ? null : media['aria-label']
|
|
89
|
+
});
|
|
90
|
+
};
|
|
59
91
|
return /*#__PURE__*/jsxRuntime.jsx(PrimitivePrompt.PrimitivePrompt, {
|
|
60
92
|
id: id,
|
|
61
93
|
sentiment: sentiment,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionPrompt.js","sources":["../../../src/prompt/ActionPrompt/ActionPrompt.tsx"],"sourcesContent":["import { AriaAttributes, ReactNode, useId } from 'react';\nimport { clsx } from 'clsx';\n\nimport Body from '../../body';\nimport Button from '../../button';\nimport { Breakpoint, Typography } from '../../common';\nimport { ButtonProps } from '../../button/Button.types';\nimport { PrimitivePrompt, PrimitivePromptProps } from '../PrimitivePrompt';\nimport {
|
|
1
|
+
{"version":3,"file":"ActionPrompt.js","sources":["../../../src/prompt/ActionPrompt/ActionPrompt.tsx"],"sourcesContent":["import { AriaAttributes, ReactNode, useId } from 'react';\nimport { clsx } from 'clsx';\n\nimport StatusIcon from '../../statusIcon';\nimport Body from '../../body';\nimport Button from '../../button';\nimport { Breakpoint, Typography } from '../../common';\nimport AvatarView, { AvatarViewProps } from '../../avatarView';\nimport Image from '../../image';\nimport { ButtonProps } from '../../button/Button.types';\nimport { PrimitivePrompt, PrimitivePromptProps } from '../PrimitivePrompt';\nimport { BadgeAssetsProps } from '../../badge';\nimport { GiftBox } from '@transferwise/icons';\nimport { useScreenSize } from '../../common/hooks/useScreenSize';\n\nexport type ActionPromptProps = {\n title: ReactNode;\n description?: ReactNode;\n /** @default {} */\n media?: {\n imgSrc?: string;\n avatar?: Pick<AvatarViewProps, 'imgSrc' | 'profileName' | 'profileType'> & {\n asset?: AvatarViewProps['children'];\n badge?: Pick<BadgeAssetsProps, 'flagCode'>;\n };\n 'aria-label'?: string;\n 'aria-hidden'?: boolean;\n };\n action: Pick<ButtonProps, 'onClick' | 'href' | 'target'> & {\n label: ButtonProps['children'];\n };\n actionSecondary?: Pick<ButtonProps, 'onClick' | 'href' | 'target'> & {\n label: ButtonProps['children'];\n };\n 'aria-label'?: AriaAttributes['aria-label'];\n} & Pick<PrimitivePromptProps, 'id' | 'className' | 'data-testid' | 'onDismiss'> & {\n /**\n * The sentiment determines the colour scheme\n * @default 'neutral'\n */\n sentiment?: PrimitivePromptProps['sentiment'];\n };\n\n/**\n * Use an action prompt for optional feedback that doesn't require immediate action, such as feature upsells, warnings, or suggestions. These prompts are typically used outside of core product flows (e.g., Launchpad, Recipient, or Transaction screens) and can be addressed at the user's convenience.\n *\n * If your message is about immediate user feedback (e.g., form submission errors, download failures, missing data warnings), use an [info prompt](https://storybook.wise.design/?path=/docs/prompts-infoprompt--docs) instead.\n *\n * Guidance can be found in the [design system](https://wise.design/components/action-prompt).\n */\nexport const ActionPrompt = ({\n sentiment = 'neutral',\n title,\n description,\n onDismiss,\n media = {},\n action,\n actionSecondary,\n id,\n className,\n 'data-testid': testId,\n 'aria-label': ariaLabel,\n}: ActionPromptProps) => {\n const isMobile = !useScreenSize(Breakpoint.MEDIUM);\n\n const mediaId = useId();\n const titleId = useId();\n const descId = useId();\n\n const ariaLabelledByIds = [\n media['aria-hidden'] ? undefined : mediaId,\n ariaLabel ? undefined : titleId,\n ]\n .filter(Boolean)\n .join(' ');\n\n const renderMedia = () => {\n if (media?.imgSrc) {\n return (\n <Image\n id={mediaId}\n src={media.imgSrc}\n className=\"wds-action-prompt--media-image\"\n alt={media['aria-label'] ?? ''}\n />\n );\n }\n if (media?.avatar) {\n const badge = media.avatar.badge\n ? media.avatar.badge\n : sentiment === 'proposition'\n ? {}\n : { status: sentiment };\n return (\n <AvatarView\n {...media.avatar}\n badge={badge}\n aria-label={media['aria-label']}\n aria-hidden={media['aria-hidden']}\n id={mediaId}\n size={48}\n >\n {media.avatar.asset}\n </AvatarView>\n );\n }\n return sentiment === 'proposition' ? (\n <AvatarView\n id={mediaId}\n size={48}\n aria-label={media['aria-label']}\n aria-hidden={media['aria-hidden']}\n >\n <GiftBox />\n </AvatarView>\n ) : (\n <StatusIcon\n id={mediaId}\n size={48}\n sentiment={sentiment}\n iconLabel={media['aria-hidden'] ? null : media['aria-label']}\n />\n );\n };\n\n return (\n <PrimitivePrompt\n id={id}\n sentiment={sentiment}\n data-testid={testId}\n className={clsx(\n 'wds-action-prompt',\n { 'wds-action-prompt--with-two-actions': !!actionSecondary },\n className,\n )}\n media={renderMedia()}\n actions={\n <>\n {actionSecondary && (\n // @ts-expect-error onClick type mismatch\n <Button\n v2\n size=\"md\"\n priority=\"secondary\"\n href={actionSecondary.href}\n block={isMobile}\n onClick={actionSecondary?.onClick}\n >\n {actionSecondary.label}\n </Button>\n )}\n {/* @ts-expect-error onClick type mismatch */}\n <Button\n v2\n size=\"md\"\n priority=\"primary\"\n href={action.href}\n block={isMobile}\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n </>\n }\n role=\"region\"\n onDismiss={onDismiss}\n {...(ariaLabel\n ? { 'aria-label': ariaLabel }\n : {\n 'aria-labelledby': ariaLabelledByIds,\n 'aria-describedby': descId,\n })}\n >\n <div className={clsx('d-flex', 'flex-column', 'justify-content-center')}>\n <Body id={titleId} type={Typography.BODY_LARGE_BOLD} className=\"wds-action-prompt__content\">\n {title}\n </Body>\n {description && (\n <Body id={descId} className=\"wds-action-prompt__content\">\n {description}\n </Body>\n )}\n </div>\n </PrimitivePrompt>\n );\n};\n\nexport default ActionPrompt;\n"],"names":["ActionPrompt","sentiment","title","description","onDismiss","media","action","actionSecondary","id","className","testId","ariaLabel","isMobile","useScreenSize","Breakpoint","MEDIUM","mediaId","useId","titleId","descId","ariaLabelledByIds","undefined","filter","Boolean","join","renderMedia","imgSrc","_jsx","Image","src","alt","avatar","badge","status","AvatarView","size","children","asset","GiftBox","StatusIcon","iconLabel","PrimitivePrompt","clsx","actions","_jsxs","_Fragment","Button","v2","priority","href","block","onClick","label","role","Body","type","Typography","BODY_LARGE_BOLD"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDO,MAAMA,YAAY,GAAGA,CAAC;AAC3BC,EAAAA,SAAS,GAAG,SAAS;EACrBC,KAAK;EACLC,WAAW;EACXC,SAAS;EACTC,KAAK,GAAG,EAAE;EACVC,MAAM;EACNC,eAAe;EACfC,EAAE;EACFC,SAAS;AACT,EAAA,aAAa,EAAEC,MAAM;AACrB,EAAA,YAAY,EAAEC;AAAS,CACL,KAAI;EACtB,MAAMC,QAAQ,GAAG,CAACC,2BAAa,CAACC,qBAAU,CAACC,MAAM,CAAC;AAElD,EAAA,MAAMC,OAAO,GAAGC,WAAK,EAAE;AACvB,EAAA,MAAMC,OAAO,GAAGD,WAAK,EAAE;AACvB,EAAA,MAAME,MAAM,GAAGF,WAAK,EAAE;EAEtB,MAAMG,iBAAiB,GAAG,CACxBf,KAAK,CAAC,aAAa,CAAC,GAAGgB,SAAS,GAAGL,OAAO,EAC1CL,SAAS,GAAGU,SAAS,GAAGH,OAAO,CAChC,CACEI,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,GAAG,CAAC;EAEZ,MAAMC,WAAW,GAAGA,MAAK;IACvB,IAAIpB,KAAK,EAAEqB,MAAM,EAAE;MACjB,oBACEC,cAAA,CAACC,aAAK,EAAA;AACJpB,QAAAA,EAAE,EAAEQ,OAAQ;QACZa,GAAG,EAAExB,KAAK,CAACqB,MAAO;AAClBjB,QAAAA,SAAS,EAAC,gCAAgC;AAC1CqB,QAAAA,GAAG,EAAEzB,KAAK,CAAC,YAAY,CAAC,IAAI;AAAG,OAAA,CAC/B;AAEN,IAAA;IACA,IAAIA,KAAK,EAAE0B,MAAM,EAAE;MACjB,MAAMC,KAAK,GAAG3B,KAAK,CAAC0B,MAAM,CAACC,KAAK,GAC5B3B,KAAK,CAAC0B,MAAM,CAACC,KAAK,GAClB/B,SAAS,KAAK,aAAa,GACzB,EAAE,GACF;AAAEgC,QAAAA,MAAM,EAAEhC;OAAW;MAC3B,oBACE0B,cAAA,CAACO,kBAAU,EAAA;QAAA,GACL7B,KAAK,CAAC0B,MAAM;AAChBC,QAAAA,KAAK,EAAEA,KAAM;QACb,YAAA,EAAY3B,KAAK,CAAC,YAAY,CAAE;QAChC,aAAA,EAAaA,KAAK,CAAC,aAAa,CAAE;AAClCG,QAAAA,EAAE,EAAEQ,OAAQ;AACZmB,QAAAA,IAAI,EAAE,EAAG;AAAAC,QAAAA,QAAA,EAER/B,KAAK,CAAC0B,MAAM,CAACM;AAAK,OACT,CAAC;AAEjB,IAAA;AACA,IAAA,OAAOpC,SAAS,KAAK,aAAa,gBAChC0B,cAAA,CAACO,kBAAU,EAAA;AACT1B,MAAAA,EAAE,EAAEQ,OAAQ;AACZmB,MAAAA,IAAI,EAAE,EAAG;MACT,YAAA,EAAY9B,KAAK,CAAC,YAAY,CAAE;MAChC,aAAA,EAAaA,KAAK,CAAC,aAAa,CAAE;AAAA+B,MAAAA,QAAA,eAElCT,cAAA,CAACW,aAAO,EAAA,EAAA;AACV,KAAY,CAAC,gBAEbX,cAAA,CAACY,kBAAU,EAAA;AACT/B,MAAAA,EAAE,EAAEQ,OAAQ;AACZmB,MAAAA,IAAI,EAAE,EAAG;AACTlC,MAAAA,SAAS,EAAEA,SAAU;MACrBuC,SAAS,EAAEnC,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,GAAGA,KAAK,CAAC,YAAY;AAAE,KAAA,CAEhE;EACH,CAAC;EAED,oBACEsB,cAAA,CAACc,+BAAe,EAAA;AACdjC,IAAAA,EAAE,EAAEA,EAAG;AACPP,IAAAA,SAAS,EAAEA,SAAU;AACrB,IAAA,aAAA,EAAaS,MAAO;AACpBD,IAAAA,SAAS,EAAEiC,SAAI,CACb,mBAAmB,EACnB;MAAE,qCAAqC,EAAE,CAAC,CAACnC;KAAiB,EAC5DE,SAAS,CACT;IACFJ,KAAK,EAAEoB,WAAW,EAAG;IACrBkB,OAAO,eACLC,eAAA,CAAAC,mBAAA,EAAA;AAAAT,MAAAA,QAAA,GACG7B,eAAe;AAAA;AACd;AACAoB,MAAAA,cAAA,CAACmB,uBAAM,EAAA;QACLC,EAAE,EAAA,IAAA;AACFZ,QAAAA,IAAI,EAAC,IAAI;AACTa,QAAAA,QAAQ,EAAC,WAAW;QACpBC,IAAI,EAAE1C,eAAe,CAAC0C,IAAK;AAC3BC,QAAAA,KAAK,EAAEtC,QAAS;QAChBuC,OAAO,EAAE5C,eAAe,EAAE4C,OAAQ;QAAAf,QAAA,EAEjC7B,eAAe,CAAC6C;AAAK,OAChB,CACT,eAEDzB,cAAA,CAACmB,uBAAM,EAAA;QACLC,EAAE,EAAA,IAAA;AACFZ,QAAAA,IAAI,EAAC,IAAI;AACTa,QAAAA,QAAQ,EAAC,SAAS;QAClBC,IAAI,EAAE3C,MAAM,CAAC2C,IAAK;AAClBC,QAAAA,KAAK,EAAEtC,QAAS;QAChBuC,OAAO,EAAE7C,MAAM,CAAC6C,OAAQ;QAAAf,QAAA,EAEvB9B,MAAM,CAAC8C;AAAK,OACP,CACV;AAAA,KAAA,CACD;AACDC,IAAAA,IAAI,EAAC,QAAQ;AACbjD,IAAAA,SAAS,EAAEA,SAAU;AAAA,IAAA,IAChBO,SAAS,GACV;AAAE,MAAA,YAAY,EAAEA;AAAS,KAAE,GAC3B;AACE,MAAA,iBAAiB,EAAES,iBAAiB;AACpC,MAAA,kBAAkB,EAAED;KACrB,CAAA;AAAAiB,IAAAA,QAAA,eAELQ,eAAA,CAAA,KAAA,EAAA;MAAKnC,SAAS,EAAEiC,SAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,wBAAwB,CAAE;MAAAN,QAAA,EAAA,cACtET,cAAA,CAAC2B,YAAI,EAAA;AAAC9C,QAAAA,EAAE,EAAEU,OAAQ;QAACqC,IAAI,EAAEC,qBAAU,CAACC,eAAgB;AAAChD,QAAAA,SAAS,EAAC,4BAA4B;AAAA2B,QAAAA,QAAA,EACxFlC;AAAK,OACF,CACN,EAACC,WAAW,iBACVwB,cAAA,CAAC2B,YAAI,EAAA;AAAC9C,QAAAA,EAAE,EAAEW,MAAO;AAACV,QAAAA,SAAS,EAAC,4BAA4B;AAAA2B,QAAAA,QAAA,EACrDjC;AAAW,OACR,CACP;KACE;AACP,GAAiB,CAAC;AAEtB;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { useId } from 'react';
|
|
2
2
|
import { clsx } from 'clsx';
|
|
3
|
+
import StatusIcon from '../../statusIcon/StatusIcon.mjs';
|
|
3
4
|
import Body from '../../body/Body.mjs';
|
|
4
5
|
import Button from '../../button/Button.resolver.mjs';
|
|
5
6
|
import '../../common/theme.mjs';
|
|
@@ -22,13 +23,14 @@ import '../../common/propsValues/scroll.mjs';
|
|
|
22
23
|
import '../../common/propsValues/markdownNodeType.mjs';
|
|
23
24
|
import '../../common/fileType.mjs';
|
|
24
25
|
import '@transferwise/formatting';
|
|
25
|
-
import '@transferwise/icons';
|
|
26
|
+
import { GiftBox } from '@transferwise/icons';
|
|
26
27
|
import 'react-intl';
|
|
27
28
|
import '../../common/closeButton/CloseButton.messages.mjs';
|
|
28
29
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
30
|
+
import AvatarView from '../../avatarView/AvatarView.mjs';
|
|
31
|
+
import Image from '../../image/Image.mjs';
|
|
29
32
|
import { PrimitivePrompt } from '../PrimitivePrompt/PrimitivePrompt.mjs';
|
|
30
33
|
import { useScreenSize } from '../../common/hooks/useScreenSize.mjs';
|
|
31
|
-
import { renderPromptMedia } from '../helpers/promptMedia.mjs';
|
|
32
34
|
|
|
33
35
|
const ActionPrompt = ({
|
|
34
36
|
sentiment = 'neutral',
|
|
@@ -48,12 +50,42 @@ const ActionPrompt = ({
|
|
|
48
50
|
const titleId = useId();
|
|
49
51
|
const descId = useId();
|
|
50
52
|
const ariaLabelledByIds = [media['aria-hidden'] ? undefined : mediaId, ariaLabel ? undefined : titleId].filter(Boolean).join(' ');
|
|
51
|
-
const renderMedia = () =>
|
|
52
|
-
media
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
const renderMedia = () => {
|
|
54
|
+
if (media?.imgSrc) {
|
|
55
|
+
return /*#__PURE__*/jsx(Image, {
|
|
56
|
+
id: mediaId,
|
|
57
|
+
src: media.imgSrc,
|
|
58
|
+
className: "wds-action-prompt--media-image",
|
|
59
|
+
alt: media['aria-label'] ?? ''
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
if (media?.avatar) {
|
|
63
|
+
const badge = media.avatar.badge ? media.avatar.badge : sentiment === 'proposition' ? {} : {
|
|
64
|
+
status: sentiment
|
|
65
|
+
};
|
|
66
|
+
return /*#__PURE__*/jsx(AvatarView, {
|
|
67
|
+
...media.avatar,
|
|
68
|
+
badge: badge,
|
|
69
|
+
"aria-label": media['aria-label'],
|
|
70
|
+
"aria-hidden": media['aria-hidden'],
|
|
71
|
+
id: mediaId,
|
|
72
|
+
size: 48,
|
|
73
|
+
children: media.avatar.asset
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return sentiment === 'proposition' ? /*#__PURE__*/jsx(AvatarView, {
|
|
77
|
+
id: mediaId,
|
|
78
|
+
size: 48,
|
|
79
|
+
"aria-label": media['aria-label'],
|
|
80
|
+
"aria-hidden": media['aria-hidden'],
|
|
81
|
+
children: /*#__PURE__*/jsx(GiftBox, {})
|
|
82
|
+
}) : /*#__PURE__*/jsx(StatusIcon, {
|
|
83
|
+
id: mediaId,
|
|
84
|
+
size: 48,
|
|
85
|
+
sentiment: sentiment,
|
|
86
|
+
iconLabel: media['aria-hidden'] ? null : media['aria-label']
|
|
87
|
+
});
|
|
88
|
+
};
|
|
57
89
|
return /*#__PURE__*/jsx(PrimitivePrompt, {
|
|
58
90
|
id: id,
|
|
59
91
|
sentiment: sentiment,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionPrompt.mjs","sources":["../../../src/prompt/ActionPrompt/ActionPrompt.tsx"],"sourcesContent":["import { AriaAttributes, ReactNode, useId } from 'react';\nimport { clsx } from 'clsx';\n\nimport Body from '../../body';\nimport Button from '../../button';\nimport { Breakpoint, Typography } from '../../common';\nimport { ButtonProps } from '../../button/Button.types';\nimport { PrimitivePrompt, PrimitivePromptProps } from '../PrimitivePrompt';\nimport {
|
|
1
|
+
{"version":3,"file":"ActionPrompt.mjs","sources":["../../../src/prompt/ActionPrompt/ActionPrompt.tsx"],"sourcesContent":["import { AriaAttributes, ReactNode, useId } from 'react';\nimport { clsx } from 'clsx';\n\nimport StatusIcon from '../../statusIcon';\nimport Body from '../../body';\nimport Button from '../../button';\nimport { Breakpoint, Typography } from '../../common';\nimport AvatarView, { AvatarViewProps } from '../../avatarView';\nimport Image from '../../image';\nimport { ButtonProps } from '../../button/Button.types';\nimport { PrimitivePrompt, PrimitivePromptProps } from '../PrimitivePrompt';\nimport { BadgeAssetsProps } from '../../badge';\nimport { GiftBox } from '@transferwise/icons';\nimport { useScreenSize } from '../../common/hooks/useScreenSize';\n\nexport type ActionPromptProps = {\n title: ReactNode;\n description?: ReactNode;\n /** @default {} */\n media?: {\n imgSrc?: string;\n avatar?: Pick<AvatarViewProps, 'imgSrc' | 'profileName' | 'profileType'> & {\n asset?: AvatarViewProps['children'];\n badge?: Pick<BadgeAssetsProps, 'flagCode'>;\n };\n 'aria-label'?: string;\n 'aria-hidden'?: boolean;\n };\n action: Pick<ButtonProps, 'onClick' | 'href' | 'target'> & {\n label: ButtonProps['children'];\n };\n actionSecondary?: Pick<ButtonProps, 'onClick' | 'href' | 'target'> & {\n label: ButtonProps['children'];\n };\n 'aria-label'?: AriaAttributes['aria-label'];\n} & Pick<PrimitivePromptProps, 'id' | 'className' | 'data-testid' | 'onDismiss'> & {\n /**\n * The sentiment determines the colour scheme\n * @default 'neutral'\n */\n sentiment?: PrimitivePromptProps['sentiment'];\n };\n\n/**\n * Use an action prompt for optional feedback that doesn't require immediate action, such as feature upsells, warnings, or suggestions. These prompts are typically used outside of core product flows (e.g., Launchpad, Recipient, or Transaction screens) and can be addressed at the user's convenience.\n *\n * If your message is about immediate user feedback (e.g., form submission errors, download failures, missing data warnings), use an [info prompt](https://storybook.wise.design/?path=/docs/prompts-infoprompt--docs) instead.\n *\n * Guidance can be found in the [design system](https://wise.design/components/action-prompt).\n */\nexport const ActionPrompt = ({\n sentiment = 'neutral',\n title,\n description,\n onDismiss,\n media = {},\n action,\n actionSecondary,\n id,\n className,\n 'data-testid': testId,\n 'aria-label': ariaLabel,\n}: ActionPromptProps) => {\n const isMobile = !useScreenSize(Breakpoint.MEDIUM);\n\n const mediaId = useId();\n const titleId = useId();\n const descId = useId();\n\n const ariaLabelledByIds = [\n media['aria-hidden'] ? undefined : mediaId,\n ariaLabel ? undefined : titleId,\n ]\n .filter(Boolean)\n .join(' ');\n\n const renderMedia = () => {\n if (media?.imgSrc) {\n return (\n <Image\n id={mediaId}\n src={media.imgSrc}\n className=\"wds-action-prompt--media-image\"\n alt={media['aria-label'] ?? ''}\n />\n );\n }\n if (media?.avatar) {\n const badge = media.avatar.badge\n ? media.avatar.badge\n : sentiment === 'proposition'\n ? {}\n : { status: sentiment };\n return (\n <AvatarView\n {...media.avatar}\n badge={badge}\n aria-label={media['aria-label']}\n aria-hidden={media['aria-hidden']}\n id={mediaId}\n size={48}\n >\n {media.avatar.asset}\n </AvatarView>\n );\n }\n return sentiment === 'proposition' ? (\n <AvatarView\n id={mediaId}\n size={48}\n aria-label={media['aria-label']}\n aria-hidden={media['aria-hidden']}\n >\n <GiftBox />\n </AvatarView>\n ) : (\n <StatusIcon\n id={mediaId}\n size={48}\n sentiment={sentiment}\n iconLabel={media['aria-hidden'] ? null : media['aria-label']}\n />\n );\n };\n\n return (\n <PrimitivePrompt\n id={id}\n sentiment={sentiment}\n data-testid={testId}\n className={clsx(\n 'wds-action-prompt',\n { 'wds-action-prompt--with-two-actions': !!actionSecondary },\n className,\n )}\n media={renderMedia()}\n actions={\n <>\n {actionSecondary && (\n // @ts-expect-error onClick type mismatch\n <Button\n v2\n size=\"md\"\n priority=\"secondary\"\n href={actionSecondary.href}\n block={isMobile}\n onClick={actionSecondary?.onClick}\n >\n {actionSecondary.label}\n </Button>\n )}\n {/* @ts-expect-error onClick type mismatch */}\n <Button\n v2\n size=\"md\"\n priority=\"primary\"\n href={action.href}\n block={isMobile}\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n </>\n }\n role=\"region\"\n onDismiss={onDismiss}\n {...(ariaLabel\n ? { 'aria-label': ariaLabel }\n : {\n 'aria-labelledby': ariaLabelledByIds,\n 'aria-describedby': descId,\n })}\n >\n <div className={clsx('d-flex', 'flex-column', 'justify-content-center')}>\n <Body id={titleId} type={Typography.BODY_LARGE_BOLD} className=\"wds-action-prompt__content\">\n {title}\n </Body>\n {description && (\n <Body id={descId} className=\"wds-action-prompt__content\">\n {description}\n </Body>\n )}\n </div>\n </PrimitivePrompt>\n );\n};\n\nexport default ActionPrompt;\n"],"names":["ActionPrompt","sentiment","title","description","onDismiss","media","action","actionSecondary","id","className","testId","ariaLabel","isMobile","useScreenSize","Breakpoint","MEDIUM","mediaId","useId","titleId","descId","ariaLabelledByIds","undefined","filter","Boolean","join","renderMedia","imgSrc","_jsx","Image","src","alt","avatar","badge","status","AvatarView","size","children","asset","GiftBox","StatusIcon","iconLabel","PrimitivePrompt","clsx","actions","_jsxs","_Fragment","Button","v2","priority","href","block","onClick","label","role","Body","type","Typography","BODY_LARGE_BOLD"],"mappings":"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"}
|
|
@@ -6,26 +6,20 @@ var SentimentSurface = require('../../sentimentSurface/SentimentSurface.js');
|
|
|
6
6
|
var IconButton = require('../../iconButton/IconButton.js');
|
|
7
7
|
var reactIntl = require('react-intl');
|
|
8
8
|
var CloseButton_messages = require('../../common/closeButton/CloseButton.messages.js');
|
|
9
|
-
var React = require('react');
|
|
10
9
|
var jsxRuntime = require('react/jsx-runtime');
|
|
11
10
|
|
|
12
|
-
const PrimitivePrompt =
|
|
11
|
+
const PrimitivePrompt = ({
|
|
13
12
|
sentiment = 'success',
|
|
14
|
-
emphasis = 'base',
|
|
15
13
|
media,
|
|
16
14
|
actions,
|
|
17
15
|
onDismiss,
|
|
18
16
|
className,
|
|
19
17
|
children,
|
|
20
18
|
...restProps
|
|
21
|
-
}
|
|
19
|
+
}) => {
|
|
22
20
|
const intl = reactIntl.useIntl();
|
|
23
|
-
return /*#__PURE__*/jsxRuntime.jsx(SentimentSurface.default
|
|
24
|
-
// @ts-expect-error - SentimentSurface forwardRef types don't expose ref in props
|
|
25
|
-
, {
|
|
26
|
-
ref: ref,
|
|
21
|
+
return /*#__PURE__*/jsxRuntime.jsx(SentimentSurface.default, {
|
|
27
22
|
sentiment: sentiment,
|
|
28
|
-
emphasis: emphasis,
|
|
29
23
|
className: clsx.clsx('wds-prompt', `wds-prompt--${sentiment}`, className),
|
|
30
24
|
...restProps,
|
|
31
25
|
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
@@ -47,8 +41,7 @@ const PrimitivePrompt = /*#__PURE__*/React.forwardRef(({
|
|
|
47
41
|
})]
|
|
48
42
|
})
|
|
49
43
|
});
|
|
50
|
-
}
|
|
51
|
-
PrimitivePrompt.displayName = 'PrimitivePrompt';
|
|
44
|
+
};
|
|
52
45
|
|
|
53
46
|
exports.PrimitivePrompt = PrimitivePrompt;
|
|
54
47
|
//# sourceMappingURL=PrimitivePrompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrimitivePrompt.js","sources":["../../../src/prompt/PrimitivePrompt/PrimitivePrompt.tsx"],"sourcesContent":["import { Cross } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport SentimentSurface, {
|
|
1
|
+
{"version":3,"file":"PrimitivePrompt.js","sources":["../../../src/prompt/PrimitivePrompt/PrimitivePrompt.tsx"],"sourcesContent":["import { Cross } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport SentimentSurface, { Sentiment } from '../../sentimentSurface';\nimport IconButton from '../../iconButton';\nimport { useIntl } from 'react-intl';\nimport closeBtnMessages from '../../common/closeButton/CloseButton.messages';\nimport { HTMLAttributes, ReactNode } from 'react';\n\nexport type PrimitivePromptProps = HTMLAttributes<HTMLDivElement> & {\n /**\n * The sentiment determines the colour scheme\n * @default success\n */\n sentiment?: Sentiment;\n /**\n * Media to be displayed on the prompt (icon/image/etc).\n */\n media: ReactNode;\n /**\n * Any actions to be displayed on the prompt.\n */\n actions?: ReactNode;\n /**\n * Handler called when the close button is clicked. If not provided, then the close button is hidden.\n */\n onDismiss?: () => void;\n /**\n * Test ID for testing tools\n */\n 'data-testid'?: string;\n};\n\n/**\n * PrimitivePrompt is a low-level component that provides the structure, sentiment support and styling for various prompts.\n * Uses several css variables to handle styling from within the consuming component, e.g. --Prompt-padding. */\nexport const PrimitivePrompt = ({\n sentiment = 'success',\n media,\n actions,\n onDismiss,\n className,\n children,\n ...restProps\n}: PrimitivePromptProps) => {\n const intl = useIntl();\n\n return (\n <SentimentSurface\n sentiment={sentiment}\n className={clsx('wds-prompt', `wds-prompt--${sentiment}`, className)}\n {...restProps}\n >\n <div\n className={clsx('wds-prompt__content-wrapper', {\n 'wds-prompt__content-wrapper--with-dismiss': !!onDismiss,\n })}\n >\n <div className={clsx('wds-prompt__media-wrapper')}>{media}</div>\n {children}\n {onDismiss && (\n <IconButton\n size={24}\n priority=\"secondary\"\n aria-label={intl.formatMessage(closeBtnMessages.ariaLabel)}\n onClick={onDismiss}\n >\n <Cross />\n </IconButton>\n )}\n {actions && <div className=\"wds-prompt__actions-wrapper\">{actions}</div>}\n </div>\n </SentimentSurface>\n );\n};\n"],"names":["PrimitivePrompt","sentiment","media","actions","onDismiss","className","children","restProps","intl","useIntl","_jsx","SentimentSurface","clsx","_jsxs","IconButton","size","priority","formatMessage","closeBtnMessages","ariaLabel","onClick","Cross"],"mappings":";;;;;;;;;;AAmCO,MAAMA,eAAe,GAAGA,CAAC;AAC9BC,EAAAA,SAAS,GAAG,SAAS;EACrBC,KAAK;EACLC,OAAO;EACPC,SAAS;EACTC,SAAS;EACTC,QAAQ;EACR,GAAGC;AAAS,CACS,KAAI;AACzB,EAAA,MAAMC,IAAI,GAAGC,iBAAO,EAAE;EAEtB,oBACEC,cAAA,CAACC,wBAAgB,EAAA;AACfV,IAAAA,SAAS,EAAEA,SAAU;IACrBI,SAAS,EAAEO,SAAI,CAAC,YAAY,EAAE,eAAeX,SAAS,CAAA,CAAE,EAAEI,SAAS,CAAE;AAAA,IAAA,GACjEE,SAAS;AAAAD,IAAAA,QAAA,eAEbO,eAAA,CAAA,KAAA,EAAA;AACER,MAAAA,SAAS,EAAEO,SAAI,CAAC,6BAA6B,EAAE;QAC7C,2CAA2C,EAAE,CAAC,CAACR;AAChD,OAAA,CAAE;AAAAE,MAAAA,QAAA,gBAEHI,cAAA,CAAA,KAAA,EAAA;AAAKL,QAAAA,SAAS,EAAEO,SAAI,CAAC,2BAA2B,CAAE;AAAAN,QAAAA,QAAA,EAAEJ;OAAW,CAC/D,EAACI,QAAQ,EACRF,SAAS,iBACRM,cAAA,CAACI,kBAAU,EAAA;AACTC,QAAAA,IAAI,EAAE,EAAG;AACTC,QAAAA,QAAQ,EAAC,WAAW;AACpB,QAAA,YAAA,EAAYR,IAAI,CAACS,aAAa,CAACC,4BAAgB,CAACC,SAAS,CAAE;AAC3DC,QAAAA,OAAO,EAAEhB,SAAU;AAAAE,QAAAA,QAAA,eAEnBI,cAAA,CAACW,WAAK,EAAA,EAAA;AACR,OAAY,CACb,EACAlB,OAAO,iBAAIO,cAAA,CAAA,KAAA,EAAA;AAAKL,QAAAA,SAAS,EAAC,6BAA6B;AAAAC,QAAAA,QAAA,EAAEH;AAAO,OAAM,CAAC;KACrE;AACP,GAAkB,CAAC;AAEvB;;;;"}
|
|
@@ -4,26 +4,20 @@ import SentimentSurface from '../../sentimentSurface/SentimentSurface.mjs';
|
|
|
4
4
|
import IconButton from '../../iconButton/IconButton.mjs';
|
|
5
5
|
import { useIntl } from 'react-intl';
|
|
6
6
|
import closeBtnMessages from '../../common/closeButton/CloseButton.messages.mjs';
|
|
7
|
-
import { forwardRef } from 'react';
|
|
8
7
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
9
8
|
|
|
10
|
-
const PrimitivePrompt =
|
|
9
|
+
const PrimitivePrompt = ({
|
|
11
10
|
sentiment = 'success',
|
|
12
|
-
emphasis = 'base',
|
|
13
11
|
media,
|
|
14
12
|
actions,
|
|
15
13
|
onDismiss,
|
|
16
14
|
className,
|
|
17
15
|
children,
|
|
18
16
|
...restProps
|
|
19
|
-
}
|
|
17
|
+
}) => {
|
|
20
18
|
const intl = useIntl();
|
|
21
|
-
return /*#__PURE__*/jsx(SentimentSurface
|
|
22
|
-
// @ts-expect-error - SentimentSurface forwardRef types don't expose ref in props
|
|
23
|
-
, {
|
|
24
|
-
ref: ref,
|
|
19
|
+
return /*#__PURE__*/jsx(SentimentSurface, {
|
|
25
20
|
sentiment: sentiment,
|
|
26
|
-
emphasis: emphasis,
|
|
27
21
|
className: clsx('wds-prompt', `wds-prompt--${sentiment}`, className),
|
|
28
22
|
...restProps,
|
|
29
23
|
children: /*#__PURE__*/jsxs("div", {
|
|
@@ -45,8 +39,7 @@ const PrimitivePrompt = /*#__PURE__*/forwardRef(({
|
|
|
45
39
|
})]
|
|
46
40
|
})
|
|
47
41
|
});
|
|
48
|
-
}
|
|
49
|
-
PrimitivePrompt.displayName = 'PrimitivePrompt';
|
|
42
|
+
};
|
|
50
43
|
|
|
51
44
|
export { PrimitivePrompt };
|
|
52
45
|
//# sourceMappingURL=PrimitivePrompt.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrimitivePrompt.mjs","sources":["../../../src/prompt/PrimitivePrompt/PrimitivePrompt.tsx"],"sourcesContent":["import { Cross } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport SentimentSurface, {
|
|
1
|
+
{"version":3,"file":"PrimitivePrompt.mjs","sources":["../../../src/prompt/PrimitivePrompt/PrimitivePrompt.tsx"],"sourcesContent":["import { Cross } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport SentimentSurface, { Sentiment } from '../../sentimentSurface';\nimport IconButton from '../../iconButton';\nimport { useIntl } from 'react-intl';\nimport closeBtnMessages from '../../common/closeButton/CloseButton.messages';\nimport { HTMLAttributes, ReactNode } from 'react';\n\nexport type PrimitivePromptProps = HTMLAttributes<HTMLDivElement> & {\n /**\n * The sentiment determines the colour scheme\n * @default success\n */\n sentiment?: Sentiment;\n /**\n * Media to be displayed on the prompt (icon/image/etc).\n */\n media: ReactNode;\n /**\n * Any actions to be displayed on the prompt.\n */\n actions?: ReactNode;\n /**\n * Handler called when the close button is clicked. If not provided, then the close button is hidden.\n */\n onDismiss?: () => void;\n /**\n * Test ID for testing tools\n */\n 'data-testid'?: string;\n};\n\n/**\n * PrimitivePrompt is a low-level component that provides the structure, sentiment support and styling for various prompts.\n * Uses several css variables to handle styling from within the consuming component, e.g. --Prompt-padding. */\nexport const PrimitivePrompt = ({\n sentiment = 'success',\n media,\n actions,\n onDismiss,\n className,\n children,\n ...restProps\n}: PrimitivePromptProps) => {\n const intl = useIntl();\n\n return (\n <SentimentSurface\n sentiment={sentiment}\n className={clsx('wds-prompt', `wds-prompt--${sentiment}`, className)}\n {...restProps}\n >\n <div\n className={clsx('wds-prompt__content-wrapper', {\n 'wds-prompt__content-wrapper--with-dismiss': !!onDismiss,\n })}\n >\n <div className={clsx('wds-prompt__media-wrapper')}>{media}</div>\n {children}\n {onDismiss && (\n <IconButton\n size={24}\n priority=\"secondary\"\n aria-label={intl.formatMessage(closeBtnMessages.ariaLabel)}\n onClick={onDismiss}\n >\n <Cross />\n </IconButton>\n )}\n {actions && <div className=\"wds-prompt__actions-wrapper\">{actions}</div>}\n </div>\n </SentimentSurface>\n );\n};\n"],"names":["PrimitivePrompt","sentiment","media","actions","onDismiss","className","children","restProps","intl","useIntl","_jsx","SentimentSurface","clsx","_jsxs","IconButton","size","priority","formatMessage","closeBtnMessages","ariaLabel","onClick","Cross"],"mappings":";;;;;;;;AAmCO,MAAMA,eAAe,GAAGA,CAAC;AAC9BC,EAAAA,SAAS,GAAG,SAAS;EACrBC,KAAK;EACLC,OAAO;EACPC,SAAS;EACTC,SAAS;EACTC,QAAQ;EACR,GAAGC;AAAS,CACS,KAAI;AACzB,EAAA,MAAMC,IAAI,GAAGC,OAAO,EAAE;EAEtB,oBACEC,GAAA,CAACC,gBAAgB,EAAA;AACfV,IAAAA,SAAS,EAAEA,SAAU;IACrBI,SAAS,EAAEO,IAAI,CAAC,YAAY,EAAE,eAAeX,SAAS,CAAA,CAAE,EAAEI,SAAS,CAAE;AAAA,IAAA,GACjEE,SAAS;AAAAD,IAAAA,QAAA,eAEbO,IAAA,CAAA,KAAA,EAAA;AACER,MAAAA,SAAS,EAAEO,IAAI,CAAC,6BAA6B,EAAE;QAC7C,2CAA2C,EAAE,CAAC,CAACR;AAChD,OAAA,CAAE;AAAAE,MAAAA,QAAA,gBAEHI,GAAA,CAAA,KAAA,EAAA;AAAKL,QAAAA,SAAS,EAAEO,IAAI,CAAC,2BAA2B,CAAE;AAAAN,QAAAA,QAAA,EAAEJ;OAAW,CAC/D,EAACI,QAAQ,EACRF,SAAS,iBACRM,GAAA,CAACI,UAAU,EAAA;AACTC,QAAAA,IAAI,EAAE,EAAG;AACTC,QAAAA,QAAQ,EAAC,WAAW;AACpB,QAAA,YAAA,EAAYR,IAAI,CAACS,aAAa,CAACC,gBAAgB,CAACC,SAAS,CAAE;AAC3DC,QAAAA,OAAO,EAAEhB,SAAU;AAAAE,QAAAA,QAAA,eAEnBI,GAAA,CAACW,KAAK,EAAA,EAAA;AACR,OAAY,CACb,EACAlB,OAAO,iBAAIO,GAAA,CAAA,KAAA,EAAA;AAAKL,QAAAA,SAAS,EAAC,6BAA6B;AAAAC,QAAAA,QAAA,EAAEH;AAAO,OAAM,CAAC;KACrE;AACP,GAAkB,CAAC;AAEvB;;;;"}
|
package/build/styles/main.css
CHANGED
|
@@ -32233,198 +32233,6 @@ html:not([dir="rtl"]) .np-navigation-option {
|
|
|
32233
32233
|
padding: 0;
|
|
32234
32234
|
}
|
|
32235
32235
|
|
|
32236
|
-
.wds-action-prompt {
|
|
32237
|
-
--Prompt-padding: var(--size-16);
|
|
32238
|
-
--Prompt-actions-gap: var(--size-8);
|
|
32239
|
-
--Prompt-gap: var(--size-10) var(--size-16);
|
|
32240
|
-
--Prompt-border-radius: var(--radius-large);
|
|
32241
|
-
}
|
|
32242
|
-
|
|
32243
|
-
.wds-action-prompt--media-image {
|
|
32244
|
-
width: 48px;
|
|
32245
|
-
width: var(--size-48);
|
|
32246
|
-
height: 48px;
|
|
32247
|
-
height: var(--size-48);
|
|
32248
|
-
-o-object-fit: contain;
|
|
32249
|
-
object-fit: contain;
|
|
32250
|
-
}
|
|
32251
|
-
|
|
32252
|
-
@media (max-width: 767px) {
|
|
32253
|
-
.wds-action-prompt--with-two-actions .wds-prompt__actions-wrapper .wds-Button {
|
|
32254
|
-
flex: 1 1 calc(50% - (var(--Prompt-actions-gap) / 2));
|
|
32255
|
-
min-width: -moz-fit-content;
|
|
32256
|
-
min-width: fit-content;
|
|
32257
|
-
}
|
|
32258
|
-
}
|
|
32259
|
-
|
|
32260
|
-
.wds-action-prompt__content {
|
|
32261
|
-
max-width: calc(48px * 10);
|
|
32262
|
-
max-width: calc(var(--size-48) * 10);
|
|
32263
|
-
}
|
|
32264
|
-
|
|
32265
|
-
.wds-critical-banner {
|
|
32266
|
-
--Prompt-padding: var(--size-16);
|
|
32267
|
-
--Prompt-actions-gap: var(--size-8);
|
|
32268
|
-
--Prompt-gap: var(--size-10) var(--size-16);
|
|
32269
|
-
--Prompt-border-radius: 0;
|
|
32270
|
-
container-type: inline-size;
|
|
32271
|
-
--critical-banner-easing: cubic-bezier(0.9, 0, 0.7, 1);
|
|
32272
|
-
--critical-banner-duration: 150ms;
|
|
32273
|
-
/* Override PrimitivePrompt's --screen-sm-max actions behaviour:
|
|
32274
|
-
actions only go full-width below mobile-max token (container query) */
|
|
32275
|
-
}
|
|
32276
|
-
|
|
32277
|
-
.wds-critical-banner--media-image {
|
|
32278
|
-
width: 48px;
|
|
32279
|
-
width: var(--size-48);
|
|
32280
|
-
height: 48px;
|
|
32281
|
-
height: var(--size-48);
|
|
32282
|
-
-o-object-fit: contain;
|
|
32283
|
-
object-fit: contain;
|
|
32284
|
-
}
|
|
32285
|
-
|
|
32286
|
-
.wds-critical-banner__title {
|
|
32287
|
-
display: -webkit-box;
|
|
32288
|
-
-webkit-line-clamp: 8;
|
|
32289
|
-
line-clamp: 8;
|
|
32290
|
-
-webkit-box-orient: vertical;
|
|
32291
|
-
max-height: 192px;
|
|
32292
|
-
overflow: hidden;
|
|
32293
|
-
transition: max-height var(--critical-banner-duration) var(--critical-banner-easing);
|
|
32294
|
-
}
|
|
32295
|
-
|
|
32296
|
-
.wds-critical-banner--collapsed .wds-critical-banner__title {
|
|
32297
|
-
-webkit-line-clamp: 2;
|
|
32298
|
-
line-clamp: 2;
|
|
32299
|
-
max-height: 48px;
|
|
32300
|
-
}
|
|
32301
|
-
|
|
32302
|
-
.wds-critical-banner__description {
|
|
32303
|
-
max-height: 30vh;
|
|
32304
|
-
opacity: 1;
|
|
32305
|
-
overflow: hidden;
|
|
32306
|
-
transition: max-height var(--critical-banner-duration) var(--critical-banner-easing), opacity var(--critical-banner-duration) var(--critical-banner-easing);
|
|
32307
|
-
}
|
|
32308
|
-
|
|
32309
|
-
.wds-critical-banner--collapsed .wds-critical-banner__description--with-title {
|
|
32310
|
-
max-height: 0;
|
|
32311
|
-
opacity: 0;
|
|
32312
|
-
}
|
|
32313
|
-
|
|
32314
|
-
.wds-critical-banner--collapsed .wds-critical-banner__description:not(.wds-critical-banner__description--with-title) {
|
|
32315
|
-
display: -webkit-box;
|
|
32316
|
-
-webkit-line-clamp: 2;
|
|
32317
|
-
line-clamp: 2;
|
|
32318
|
-
-webkit-box-orient: vertical;
|
|
32319
|
-
overflow: hidden;
|
|
32320
|
-
}
|
|
32321
|
-
|
|
32322
|
-
.wds-critical-banner .wds-prompt__content-wrapper {
|
|
32323
|
-
grid-template-columns: auto 1fr auto;
|
|
32324
|
-
align-items: flex-start;
|
|
32325
|
-
transition: row-gap var(--critical-banner-duration) var(--critical-banner-easing);
|
|
32326
|
-
}
|
|
32327
|
-
|
|
32328
|
-
.wds-critical-banner--collapsed .wds-prompt__content-wrapper {
|
|
32329
|
-
row-gap: 0;
|
|
32330
|
-
}
|
|
32331
|
-
|
|
32332
|
-
.wds-critical-banner__text-wrapper {
|
|
32333
|
-
position: relative;
|
|
32334
|
-
display: flex;
|
|
32335
|
-
flex-direction: column;
|
|
32336
|
-
justify-content: center;
|
|
32337
|
-
min-width: 0;
|
|
32338
|
-
max-width: 480px;
|
|
32339
|
-
height: 100%;
|
|
32340
|
-
padding-top: 3px;
|
|
32341
|
-
}
|
|
32342
|
-
|
|
32343
|
-
@media (max-width: 320px) {
|
|
32344
|
-
.wds-critical-banner__text-wrapper {
|
|
32345
|
-
padding-top: 0;
|
|
32346
|
-
}
|
|
32347
|
-
}
|
|
32348
|
-
|
|
32349
|
-
@container (--screen-400-zoom) {
|
|
32350
|
-
.wds-critical-banner__text-wrapper {
|
|
32351
|
-
padding-top: 0px;
|
|
32352
|
-
}
|
|
32353
|
-
}
|
|
32354
|
-
|
|
32355
|
-
.wds-critical-banner--collapsed .wds-critical-banner__title,
|
|
32356
|
-
.wds-critical-banner--collapsed .wds-critical-banner__description {
|
|
32357
|
-
transform: translateY(0);
|
|
32358
|
-
}
|
|
32359
|
-
|
|
32360
|
-
.wds-critical-banner__toggle {
|
|
32361
|
-
flex-shrink: 0;
|
|
32362
|
-
transition: transform var(--critical-banner-duration) var(--critical-banner-easing);
|
|
32363
|
-
}
|
|
32364
|
-
|
|
32365
|
-
.wds-critical-banner__toggle--collapsed {
|
|
32366
|
-
transform: rotate(180deg);
|
|
32367
|
-
}
|
|
32368
|
-
|
|
32369
|
-
@container (min-width: 768px) {
|
|
32370
|
-
.wds-critical-banner__toggle {
|
|
32371
|
-
display: none;
|
|
32372
|
-
}
|
|
32373
|
-
}
|
|
32374
|
-
|
|
32375
|
-
.wds-critical-banner .wds-prompt__actions-wrapper {
|
|
32376
|
-
grid-column-start: 2;
|
|
32377
|
-
grid-column-end: 3;
|
|
32378
|
-
max-height: 200px;
|
|
32379
|
-
opacity: 1;
|
|
32380
|
-
overflow: visible;
|
|
32381
|
-
}
|
|
32382
|
-
|
|
32383
|
-
@container (max-width: 600px) {
|
|
32384
|
-
.wds-critical-banner .wds-prompt__actions-wrapper {
|
|
32385
|
-
grid-column: span 3;
|
|
32386
|
-
width: 100%;
|
|
32387
|
-
}
|
|
32388
|
-
.wds-critical-banner .wds-prompt__actions-wrapper .wds-Button {
|
|
32389
|
-
flex: 1 1 100%;
|
|
32390
|
-
width: 100%;
|
|
32391
|
-
}
|
|
32392
|
-
}
|
|
32393
|
-
|
|
32394
|
-
.wds-critical-banner--collapsed .wds-prompt__actions-wrapper {
|
|
32395
|
-
max-height: 0;
|
|
32396
|
-
opacity: 0;
|
|
32397
|
-
overflow: hidden;
|
|
32398
|
-
pointer-events: none;
|
|
32399
|
-
}
|
|
32400
|
-
|
|
32401
|
-
@container (max-width: 600px) {
|
|
32402
|
-
.wds-critical-banner--with-two-actions .wds-prompt__actions-wrapper .wds-Button {
|
|
32403
|
-
flex: 1 1 calc(50% - (var(--Prompt-actions-gap) / 2));
|
|
32404
|
-
min-width: -moz-fit-content;
|
|
32405
|
-
min-width: fit-content;
|
|
32406
|
-
}
|
|
32407
|
-
}
|
|
32408
|
-
|
|
32409
|
-
@media (prefers-reduced-motion: reduce) {
|
|
32410
|
-
.wds-critical-banner__description,
|
|
32411
|
-
.wds-critical-banner__title,
|
|
32412
|
-
.wds-critical-banner .wds-prompt__content-wrapper,
|
|
32413
|
-
.wds-critical-banner__toggle {
|
|
32414
|
-
transition: none !important;
|
|
32415
|
-
}
|
|
32416
|
-
}
|
|
32417
|
-
|
|
32418
|
-
.wds-expander-toggle {
|
|
32419
|
-
align-self: flex-start;
|
|
32420
|
-
flex-shrink: 0;
|
|
32421
|
-
transition: transform 0.2s ease-in-out;
|
|
32422
|
-
}
|
|
32423
|
-
|
|
32424
|
-
.wds-expander-toggle--collapsed {
|
|
32425
|
-
transform: rotate(180deg);
|
|
32426
|
-
}
|
|
32427
|
-
|
|
32428
32236
|
.wds-radio-group .np-radio:last-child label {
|
|
32429
32237
|
margin-bottom: 0;
|
|
32430
32238
|
}
|
|
@@ -34850,3 +34658,32 @@ html:not([dir="rtl"]) .np-navigation-option {
|
|
|
34850
34658
|
.np-list-item__action {
|
|
34851
34659
|
flex-shrink: 0;
|
|
34852
34660
|
}
|
|
34661
|
+
|
|
34662
|
+
.wds-action-prompt {
|
|
34663
|
+
--Prompt-padding: var(--size-16);
|
|
34664
|
+
--Prompt-actions-gap: var(--size-8);
|
|
34665
|
+
--Prompt-gap: var(--size-10) var(--size-16);
|
|
34666
|
+
--Prompt-border-radius: var(--radius-large);
|
|
34667
|
+
}
|
|
34668
|
+
|
|
34669
|
+
.wds-action-prompt--media-image {
|
|
34670
|
+
width: 48px;
|
|
34671
|
+
width: var(--size-48);
|
|
34672
|
+
height: 48px;
|
|
34673
|
+
height: var(--size-48);
|
|
34674
|
+
-o-object-fit: contain;
|
|
34675
|
+
object-fit: contain;
|
|
34676
|
+
}
|
|
34677
|
+
|
|
34678
|
+
@media (max-width: 767px) {
|
|
34679
|
+
.wds-action-prompt--with-two-actions .wds-prompt__actions-wrapper .wds-Button {
|
|
34680
|
+
flex: 1 1 calc(50% - (var(--Prompt-actions-gap) / 2));
|
|
34681
|
+
min-width: -moz-fit-content;
|
|
34682
|
+
min-width: fit-content;
|
|
34683
|
+
}
|
|
34684
|
+
}
|
|
34685
|
+
|
|
34686
|
+
.wds-action-prompt__content {
|
|
34687
|
+
max-width: calc(48px * 10);
|
|
34688
|
+
max-width: calc(var(--size-48) * 10);
|
|
34689
|
+
}
|
package/build/table/Table.js
CHANGED
|
@@ -6,7 +6,7 @@ var reactIntl = require('react-intl');
|
|
|
6
6
|
var TableCell = require('./TableCell.js');
|
|
7
7
|
var TableHeader = require('./TableHeader.js');
|
|
8
8
|
var TableRow = require('./TableRow.js');
|
|
9
|
-
var
|
|
9
|
+
var InfoPrompt = require('../prompt/InfoPrompt/InfoPrompt.js');
|
|
10
10
|
var Table_messages = require('./Table.messages.js');
|
|
11
11
|
var Loader = require('../loader/Loader.js');
|
|
12
12
|
require('../common/theme.js');
|
|
@@ -95,13 +95,13 @@ const Table = ({
|
|
|
95
95
|
});
|
|
96
96
|
};
|
|
97
97
|
if (error) {
|
|
98
|
-
return /*#__PURE__*/jsxRuntime.jsx(
|
|
98
|
+
return /*#__PURE__*/jsxRuntime.jsx(InfoPrompt.InfoPrompt, {
|
|
99
99
|
className: "np-table-error",
|
|
100
|
-
|
|
101
|
-
|
|
100
|
+
description: error.message ?? '',
|
|
101
|
+
sentiment: "negative",
|
|
102
102
|
action: {
|
|
103
103
|
href: error?.action?.href ?? '/',
|
|
104
|
-
|
|
104
|
+
label: error?.action?.text ?? formatMessage(Table_messages.default.refreshPage)
|
|
105
105
|
},
|
|
106
106
|
"data-testid": "np-table-error"
|
|
107
107
|
});
|