@transferwise/components 0.0.0-experimental-3227da5 → 0.0.0-experimental-6a37363
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/Markup/Markup.js +15 -14
- package/build/Markup/Markup.js.map +1 -1
- package/build/Markup/Markup.mjs +15 -14
- package/build/Markup/Markup.mjs.map +1 -1
- package/build/types/Body/Body.d.ts +2 -2
- package/build/types/IconButton/IconButton.d.ts +1 -1
- package/build/types/Markup/Markup.d.ts.map +1 -1
- package/build/types/Markup/Markup.types.d.ts +16 -5
- package/build/types/Markup/Markup.types.d.ts.map +1 -1
- package/build/types/Markup/index.d.ts +1 -1
- package/build/types/Markup/index.d.ts.map +1 -1
- package/build/types/MoneyInput/MoneyInput.d.ts +1 -1
- package/build/types/MoneyInput/MoneyInput.d.ts.map +1 -1
- package/build/types/Title/Title.d.ts +2 -2
- package/build/types/Upload/Steps/UploadImageStep/UploadImageStep.d.ts +1 -1
- package/build/types/UploadInput/UploadItem/UploadItemLink.d.ts +1 -1
- package/build/types/index.d.ts +1 -1
- package/build/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/Markup/Markup.test.tsx +8 -7
- package/src/Markup/Markup.tsx +18 -15
- package/src/Markup/Markup.types.ts +16 -6
- package/src/Markup/_stories/Markup.docs.mdx +60 -0
- package/src/Markup/_stories/Markup.story.tsx +7 -8
- package/src/Markup/index.ts +6 -1
- package/src/index.ts +1 -1
package/build/Markup/Markup.js
CHANGED
|
@@ -12,18 +12,19 @@ const PLACEHOLDER_REGEX = /\{\{(\w+)\}\}/g;
|
|
|
12
12
|
function substituteData(text, data) {
|
|
13
13
|
return text.replace(PLACEHOLDER_REGEX, (match, key) => Object.prototype.hasOwnProperty.call(data, key) ? String(data[key]) : match);
|
|
14
14
|
}
|
|
15
|
-
function renderNodes(nodes,
|
|
16
|
-
return nodes.map((node, index) => renderNode(node,
|
|
15
|
+
function renderNodes(nodes, onAction, data, allowLinks) {
|
|
16
|
+
return nodes.map((node, index) => renderNode(node, onAction, data, allowLinks, index));
|
|
17
17
|
}
|
|
18
|
-
function renderLinkNode(node,
|
|
19
|
-
const children = renderNodes(node.children,
|
|
20
|
-
if (node.action &&
|
|
18
|
+
function renderLinkNode(node, onAction, data, allowLinks, key) {
|
|
19
|
+
const children = renderNodes(node.children, onAction, data, allowLinks);
|
|
20
|
+
if (node.action && onAction) {
|
|
21
|
+
const actionId = node.action;
|
|
21
22
|
return (
|
|
22
23
|
/*#__PURE__*/
|
|
23
24
|
// eslint-disable-next-line jsx-a11y/click-events-have-key-events
|
|
24
25
|
jsxRuntime.jsx(Link.default, {
|
|
25
26
|
"aria-label": node.accessibilityLabel,
|
|
26
|
-
onClick:
|
|
27
|
+
onClick: () => onAction(actionId),
|
|
27
28
|
children: children
|
|
28
29
|
}, key)
|
|
29
30
|
);
|
|
@@ -41,7 +42,7 @@ function renderLinkNode(node, actions, data, allowLinks, key) {
|
|
|
41
42
|
children: children
|
|
42
43
|
}, key);
|
|
43
44
|
}
|
|
44
|
-
function renderNode(node,
|
|
45
|
+
function renderNode(node, onAction, data, allowLinks, key) {
|
|
45
46
|
switch (node.type) {
|
|
46
47
|
case 'text':
|
|
47
48
|
return /*#__PURE__*/jsxRuntime.jsx(React.Fragment, {
|
|
@@ -55,27 +56,27 @@ function renderNode(node, actions, data, allowLinks, key) {
|
|
|
55
56
|
return /*#__PURE__*/jsxRuntime.jsx("em", {
|
|
56
57
|
className: `wds-markup-emphasis wds-markup-emphasis--${node.type}`,
|
|
57
58
|
"aria-label": node.accessibilityLabel,
|
|
58
|
-
children: renderNodes(node.children,
|
|
59
|
+
children: renderNodes(node.children, onAction, data, allowLinks)
|
|
59
60
|
}, key);
|
|
60
61
|
case 'strong':
|
|
61
62
|
return /*#__PURE__*/jsxRuntime.jsx("strong", {
|
|
62
63
|
className: "wds-markup-strong",
|
|
63
64
|
"aria-label": node.accessibilityLabel,
|
|
64
|
-
children: renderNodes(node.children,
|
|
65
|
+
children: renderNodes(node.children, onAction, data, allowLinks)
|
|
65
66
|
}, key);
|
|
66
67
|
case 'strikethrough':
|
|
67
68
|
return /*#__PURE__*/jsxRuntime.jsx("del", {
|
|
68
69
|
className: "wds-markup-strikethrough",
|
|
69
70
|
"aria-label": node.accessibilityLabel,
|
|
70
|
-
children: renderNodes(node.children,
|
|
71
|
+
children: renderNodes(node.children, onAction, data, allowLinks)
|
|
71
72
|
}, key);
|
|
72
73
|
case 'paragraph':
|
|
73
74
|
return /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
74
75
|
className: "wds-markup-paragraph",
|
|
75
|
-
children: renderNodes(node.children,
|
|
76
|
+
children: renderNodes(node.children, onAction, data, allowLinks)
|
|
76
77
|
}, key);
|
|
77
78
|
case 'link':
|
|
78
|
-
return renderLinkNode(node,
|
|
79
|
+
return renderLinkNode(node, onAction, data, allowLinks, key);
|
|
79
80
|
}
|
|
80
81
|
}
|
|
81
82
|
function hasParagraph(nodes) {
|
|
@@ -106,7 +107,7 @@ const Markup = ({
|
|
|
106
107
|
children,
|
|
107
108
|
data,
|
|
108
109
|
allowLinks = 'internal',
|
|
109
|
-
|
|
110
|
+
onAction,
|
|
110
111
|
as,
|
|
111
112
|
className,
|
|
112
113
|
'data-testid': testId
|
|
@@ -129,7 +130,7 @@ const Markup = ({
|
|
|
129
130
|
return /*#__PURE__*/jsxRuntime.jsx(Element, {
|
|
130
131
|
className: className,
|
|
131
132
|
"data-testid": testId,
|
|
132
|
-
children: renderNodes(tree,
|
|
133
|
+
children: renderNodes(tree, onAction, data, allowLinks)
|
|
133
134
|
});
|
|
134
135
|
};
|
|
135
136
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Markup.js","sources":["../../src/Markup/Markup.tsx"],"sourcesContent":["import React, { Fragment, useMemo } from 'react';\n\nimport Link from '../Link';\n\nimport { parseMarkup } from './utils/parseMarkup';\nimport { type AllowLinksMode, isHrefAllowedByMode, sanitiseHref } from './utils/sanitise';\nimport type {
|
|
1
|
+
{"version":3,"file":"Markup.js","sources":["../../src/Markup/Markup.tsx"],"sourcesContent":["import React, { Fragment, useMemo } from 'react';\n\nimport Link from '../Link';\n\nimport { parseMarkup } from './utils/parseMarkup';\nimport { type AllowLinksMode, isHrefAllowedByMode, sanitiseHref } from './utils/sanitise';\nimport type { MarkupActionHandler, MarkupNode, MarkupProps } from './Markup.types';\n\nconst PLACEHOLDER_REGEX = /\\{\\{(\\w+)\\}\\}/g;\n\ntype MarkupData = Record<string, string | number>;\n\nfunction substituteData(text: string, data: MarkupData): string {\n return text.replace(PLACEHOLDER_REGEX, (match, key: string) =>\n Object.prototype.hasOwnProperty.call(data, key) ? String(data[key]) : match,\n );\n}\n\ntype OnAction = MarkupActionHandler | undefined;\n\nfunction renderNodes(\n nodes: MarkupNode[],\n onAction: OnAction,\n data: MarkupData | undefined,\n allowLinks: AllowLinksMode,\n): React.ReactNode[] {\n return nodes.map((node, index) => renderNode(node, onAction, data, allowLinks, index));\n}\n\nfunction renderLinkNode(\n node: Extract<MarkupNode, { type: 'link' }>,\n onAction: OnAction,\n data: MarkupData | undefined,\n allowLinks: AllowLinksMode,\n key: number,\n): React.ReactNode {\n const children = renderNodes(node.children, onAction, data, allowLinks);\n\n if (node.action && onAction) {\n const actionId = node.action;\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <Link key={key} aria-label={node.accessibilityLabel} onClick={() => onAction(actionId)}>\n {children}\n </Link>\n );\n }\n\n const sanitisedHref = node.href ? sanitiseHref(node.href) : undefined;\n if (sanitisedHref && isHrefAllowedByMode(sanitisedHref, allowLinks)) {\n return (\n <Link\n key={key}\n href={sanitisedHref}\n target={node.target}\n aria-label={node.accessibilityLabel}\n >\n {children}\n </Link>\n );\n }\n\n return <Fragment key={key}>{children}</Fragment>;\n}\n\nfunction renderNode(\n node: MarkupNode,\n onAction: OnAction,\n data: MarkupData | undefined,\n allowLinks: AllowLinksMode,\n key: number,\n): React.ReactNode {\n switch (node.type) {\n case 'text':\n return (\n <Fragment key={key}>{data ? substituteData(node.content, data) : node.content}</Fragment>\n );\n case 'newline':\n return <br key={key} />;\n case 'important':\n case 'positive':\n case 'negative':\n return (\n <em\n key={key}\n className={`wds-markup-emphasis wds-markup-emphasis--${node.type}`}\n aria-label={node.accessibilityLabel}\n >\n {renderNodes(node.children, onAction, data, allowLinks)}\n </em>\n );\n case 'strong':\n return (\n <strong key={key} className=\"wds-markup-strong\" aria-label={node.accessibilityLabel}>\n {renderNodes(node.children, onAction, data, allowLinks)}\n </strong>\n );\n case 'strikethrough':\n return (\n <del key={key} className=\"wds-markup-strikethrough\" aria-label={node.accessibilityLabel}>\n {renderNodes(node.children, onAction, data, allowLinks)}\n </del>\n );\n case 'paragraph':\n return (\n <p key={key} className=\"wds-markup-paragraph\">\n {renderNodes(node.children, onAction, data, allowLinks)}\n </p>\n );\n case 'link':\n return renderLinkNode(node, onAction, data, allowLinks, key);\n }\n}\n\nfunction hasParagraph(nodes: MarkupNode[]): boolean {\n for (const node of nodes) {\n if (node.type === 'paragraph') {\n return true;\n }\n if ('children' in node && hasParagraph(node.children)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Parses a markup string and renders it as React elements. Supports `<important>`,\n * `<positive>`, `<negative>`, `<strong>`, `<strikethrough>`, `<paragraph>` (alias `<p>`),\n * and `<link>` (alias `<a>`) with secure href validation.\n *\n * It only processes `string` input, while `ReactNode` is passed-through without processing.\n *\n * > The component supersedes [Emphasis](?path=/docs/typography-emphasis--docs), which will be\n * eventually deprecated.\n *\n * @see http://storybook.wise.design/?path=/docs/typography-markup--docs\n * @link ../emphasis/Emphasis | Emphasis\n */\nexport const Markup: React.FC<MarkupProps> = ({\n children,\n data,\n allowLinks = 'internal',\n onAction,\n as,\n className,\n 'data-testid': testId,\n}) => {\n const tree = useMemo(\n () => (typeof children === 'string' ? parseMarkup(children) : []),\n [children],\n );\n\n if (typeof children !== 'string') {\n if (children == null) {\n return null;\n }\n return (\n <span className={className} data-testid={testId}>\n {children}\n </span>\n );\n }\n\n if (tree.length === 0) {\n return null;\n }\n\n const Element = as ?? (hasParagraph(tree) ? 'div' : 'span');\n\n return (\n <Element className={className} data-testid={testId}>\n {renderNodes(tree, onAction, data, allowLinks)}\n </Element>\n );\n};\n\nexport default Markup;\n"],"names":["PLACEHOLDER_REGEX","substituteData","text","data","replace","match","key","Object","prototype","hasOwnProperty","call","String","renderNodes","nodes","onAction","allowLinks","map","node","index","renderNode","renderLinkNode","children","action","actionId","_jsx","Link","accessibilityLabel","onClick","sanitisedHref","href","sanitiseHref","undefined","isHrefAllowedByMode","target","Fragment","type","content","className","hasParagraph","Markup","as","testId","tree","useMemo","parseMarkup","length","Element"],"mappings":"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"}
|
package/build/Markup/Markup.mjs
CHANGED
|
@@ -8,18 +8,19 @@ const PLACEHOLDER_REGEX = /\{\{(\w+)\}\}/g;
|
|
|
8
8
|
function substituteData(text, data) {
|
|
9
9
|
return text.replace(PLACEHOLDER_REGEX, (match, key) => Object.prototype.hasOwnProperty.call(data, key) ? String(data[key]) : match);
|
|
10
10
|
}
|
|
11
|
-
function renderNodes(nodes,
|
|
12
|
-
return nodes.map((node, index) => renderNode(node,
|
|
11
|
+
function renderNodes(nodes, onAction, data, allowLinks) {
|
|
12
|
+
return nodes.map((node, index) => renderNode(node, onAction, data, allowLinks, index));
|
|
13
13
|
}
|
|
14
|
-
function renderLinkNode(node,
|
|
15
|
-
const children = renderNodes(node.children,
|
|
16
|
-
if (node.action &&
|
|
14
|
+
function renderLinkNode(node, onAction, data, allowLinks, key) {
|
|
15
|
+
const children = renderNodes(node.children, onAction, data, allowLinks);
|
|
16
|
+
if (node.action && onAction) {
|
|
17
|
+
const actionId = node.action;
|
|
17
18
|
return (
|
|
18
19
|
/*#__PURE__*/
|
|
19
20
|
// eslint-disable-next-line jsx-a11y/click-events-have-key-events
|
|
20
21
|
jsx(Link, {
|
|
21
22
|
"aria-label": node.accessibilityLabel,
|
|
22
|
-
onClick:
|
|
23
|
+
onClick: () => onAction(actionId),
|
|
23
24
|
children: children
|
|
24
25
|
}, key)
|
|
25
26
|
);
|
|
@@ -37,7 +38,7 @@ function renderLinkNode(node, actions, data, allowLinks, key) {
|
|
|
37
38
|
children: children
|
|
38
39
|
}, key);
|
|
39
40
|
}
|
|
40
|
-
function renderNode(node,
|
|
41
|
+
function renderNode(node, onAction, data, allowLinks, key) {
|
|
41
42
|
switch (node.type) {
|
|
42
43
|
case 'text':
|
|
43
44
|
return /*#__PURE__*/jsx(Fragment, {
|
|
@@ -51,27 +52,27 @@ function renderNode(node, actions, data, allowLinks, key) {
|
|
|
51
52
|
return /*#__PURE__*/jsx("em", {
|
|
52
53
|
className: `wds-markup-emphasis wds-markup-emphasis--${node.type}`,
|
|
53
54
|
"aria-label": node.accessibilityLabel,
|
|
54
|
-
children: renderNodes(node.children,
|
|
55
|
+
children: renderNodes(node.children, onAction, data, allowLinks)
|
|
55
56
|
}, key);
|
|
56
57
|
case 'strong':
|
|
57
58
|
return /*#__PURE__*/jsx("strong", {
|
|
58
59
|
className: "wds-markup-strong",
|
|
59
60
|
"aria-label": node.accessibilityLabel,
|
|
60
|
-
children: renderNodes(node.children,
|
|
61
|
+
children: renderNodes(node.children, onAction, data, allowLinks)
|
|
61
62
|
}, key);
|
|
62
63
|
case 'strikethrough':
|
|
63
64
|
return /*#__PURE__*/jsx("del", {
|
|
64
65
|
className: "wds-markup-strikethrough",
|
|
65
66
|
"aria-label": node.accessibilityLabel,
|
|
66
|
-
children: renderNodes(node.children,
|
|
67
|
+
children: renderNodes(node.children, onAction, data, allowLinks)
|
|
67
68
|
}, key);
|
|
68
69
|
case 'paragraph':
|
|
69
70
|
return /*#__PURE__*/jsx("p", {
|
|
70
71
|
className: "wds-markup-paragraph",
|
|
71
|
-
children: renderNodes(node.children,
|
|
72
|
+
children: renderNodes(node.children, onAction, data, allowLinks)
|
|
72
73
|
}, key);
|
|
73
74
|
case 'link':
|
|
74
|
-
return renderLinkNode(node,
|
|
75
|
+
return renderLinkNode(node, onAction, data, allowLinks, key);
|
|
75
76
|
}
|
|
76
77
|
}
|
|
77
78
|
function hasParagraph(nodes) {
|
|
@@ -102,7 +103,7 @@ const Markup = ({
|
|
|
102
103
|
children,
|
|
103
104
|
data,
|
|
104
105
|
allowLinks = 'internal',
|
|
105
|
-
|
|
106
|
+
onAction,
|
|
106
107
|
as,
|
|
107
108
|
className,
|
|
108
109
|
'data-testid': testId
|
|
@@ -125,7 +126,7 @@ const Markup = ({
|
|
|
125
126
|
return /*#__PURE__*/jsx(Element, {
|
|
126
127
|
className: className,
|
|
127
128
|
"data-testid": testId,
|
|
128
|
-
children: renderNodes(tree,
|
|
129
|
+
children: renderNodes(tree, onAction, data, allowLinks)
|
|
129
130
|
});
|
|
130
131
|
};
|
|
131
132
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Markup.mjs","sources":["../../src/Markup/Markup.tsx"],"sourcesContent":["import React, { Fragment, useMemo } from 'react';\n\nimport Link from '../Link';\n\nimport { parseMarkup } from './utils/parseMarkup';\nimport { type AllowLinksMode, isHrefAllowedByMode, sanitiseHref } from './utils/sanitise';\nimport type {
|
|
1
|
+
{"version":3,"file":"Markup.mjs","sources":["../../src/Markup/Markup.tsx"],"sourcesContent":["import React, { Fragment, useMemo } from 'react';\n\nimport Link from '../Link';\n\nimport { parseMarkup } from './utils/parseMarkup';\nimport { type AllowLinksMode, isHrefAllowedByMode, sanitiseHref } from './utils/sanitise';\nimport type { MarkupActionHandler, MarkupNode, MarkupProps } from './Markup.types';\n\nconst PLACEHOLDER_REGEX = /\\{\\{(\\w+)\\}\\}/g;\n\ntype MarkupData = Record<string, string | number>;\n\nfunction substituteData(text: string, data: MarkupData): string {\n return text.replace(PLACEHOLDER_REGEX, (match, key: string) =>\n Object.prototype.hasOwnProperty.call(data, key) ? String(data[key]) : match,\n );\n}\n\ntype OnAction = MarkupActionHandler | undefined;\n\nfunction renderNodes(\n nodes: MarkupNode[],\n onAction: OnAction,\n data: MarkupData | undefined,\n allowLinks: AllowLinksMode,\n): React.ReactNode[] {\n return nodes.map((node, index) => renderNode(node, onAction, data, allowLinks, index));\n}\n\nfunction renderLinkNode(\n node: Extract<MarkupNode, { type: 'link' }>,\n onAction: OnAction,\n data: MarkupData | undefined,\n allowLinks: AllowLinksMode,\n key: number,\n): React.ReactNode {\n const children = renderNodes(node.children, onAction, data, allowLinks);\n\n if (node.action && onAction) {\n const actionId = node.action;\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <Link key={key} aria-label={node.accessibilityLabel} onClick={() => onAction(actionId)}>\n {children}\n </Link>\n );\n }\n\n const sanitisedHref = node.href ? sanitiseHref(node.href) : undefined;\n if (sanitisedHref && isHrefAllowedByMode(sanitisedHref, allowLinks)) {\n return (\n <Link\n key={key}\n href={sanitisedHref}\n target={node.target}\n aria-label={node.accessibilityLabel}\n >\n {children}\n </Link>\n );\n }\n\n return <Fragment key={key}>{children}</Fragment>;\n}\n\nfunction renderNode(\n node: MarkupNode,\n onAction: OnAction,\n data: MarkupData | undefined,\n allowLinks: AllowLinksMode,\n key: number,\n): React.ReactNode {\n switch (node.type) {\n case 'text':\n return (\n <Fragment key={key}>{data ? substituteData(node.content, data) : node.content}</Fragment>\n );\n case 'newline':\n return <br key={key} />;\n case 'important':\n case 'positive':\n case 'negative':\n return (\n <em\n key={key}\n className={`wds-markup-emphasis wds-markup-emphasis--${node.type}`}\n aria-label={node.accessibilityLabel}\n >\n {renderNodes(node.children, onAction, data, allowLinks)}\n </em>\n );\n case 'strong':\n return (\n <strong key={key} className=\"wds-markup-strong\" aria-label={node.accessibilityLabel}>\n {renderNodes(node.children, onAction, data, allowLinks)}\n </strong>\n );\n case 'strikethrough':\n return (\n <del key={key} className=\"wds-markup-strikethrough\" aria-label={node.accessibilityLabel}>\n {renderNodes(node.children, onAction, data, allowLinks)}\n </del>\n );\n case 'paragraph':\n return (\n <p key={key} className=\"wds-markup-paragraph\">\n {renderNodes(node.children, onAction, data, allowLinks)}\n </p>\n );\n case 'link':\n return renderLinkNode(node, onAction, data, allowLinks, key);\n }\n}\n\nfunction hasParagraph(nodes: MarkupNode[]): boolean {\n for (const node of nodes) {\n if (node.type === 'paragraph') {\n return true;\n }\n if ('children' in node && hasParagraph(node.children)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Parses a markup string and renders it as React elements. Supports `<important>`,\n * `<positive>`, `<negative>`, `<strong>`, `<strikethrough>`, `<paragraph>` (alias `<p>`),\n * and `<link>` (alias `<a>`) with secure href validation.\n *\n * It only processes `string` input, while `ReactNode` is passed-through without processing.\n *\n * > The component supersedes [Emphasis](?path=/docs/typography-emphasis--docs), which will be\n * eventually deprecated.\n *\n * @see http://storybook.wise.design/?path=/docs/typography-markup--docs\n * @link ../emphasis/Emphasis | Emphasis\n */\nexport const Markup: React.FC<MarkupProps> = ({\n children,\n data,\n allowLinks = 'internal',\n onAction,\n as,\n className,\n 'data-testid': testId,\n}) => {\n const tree = useMemo(\n () => (typeof children === 'string' ? parseMarkup(children) : []),\n [children],\n );\n\n if (typeof children !== 'string') {\n if (children == null) {\n return null;\n }\n return (\n <span className={className} data-testid={testId}>\n {children}\n </span>\n );\n }\n\n if (tree.length === 0) {\n return null;\n }\n\n const Element = as ?? (hasParagraph(tree) ? 'div' : 'span');\n\n return (\n <Element className={className} data-testid={testId}>\n {renderNodes(tree, onAction, data, allowLinks)}\n </Element>\n );\n};\n\nexport default Markup;\n"],"names":["PLACEHOLDER_REGEX","substituteData","text","data","replace","match","key","Object","prototype","hasOwnProperty","call","String","renderNodes","nodes","onAction","allowLinks","map","node","index","renderNode","renderLinkNode","children","action","actionId","_jsx","Link","accessibilityLabel","onClick","sanitisedHref","href","sanitiseHref","undefined","isHrefAllowedByMode","target","Fragment","type","content","className","hasParagraph","Markup","as","testId","tree","useMemo","parseMarkup","length","Element"],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ export type BodyProps = HTMLAttributes<HTMLSpanElement | HTMLParagraphElement> &
|
|
|
11
11
|
*/
|
|
12
12
|
preserveNewlines?: boolean;
|
|
13
13
|
};
|
|
14
|
-
declare const Body: import("react").ForwardRefExoticComponent<HTMLAttributes<
|
|
14
|
+
declare const Body: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLParagraphElement | HTMLSpanElement> & {
|
|
15
15
|
/** @default 'body-default' */
|
|
16
16
|
type?: BodyTypes;
|
|
17
17
|
/** @default 'div' */
|
|
@@ -21,6 +21,6 @@ declare const Body: import("react").ForwardRefExoticComponent<HTMLAttributes<HTM
|
|
|
21
21
|
* @default false
|
|
22
22
|
*/
|
|
23
23
|
preserveNewlines?: boolean;
|
|
24
|
-
} & import("react").RefAttributes<HTMLDivElement |
|
|
24
|
+
} & import("react").RefAttributes<HTMLDivElement | HTMLParagraphElement | HTMLSpanElement | null>>;
|
|
25
25
|
export default Body;
|
|
26
26
|
//# sourceMappingURL=Body.d.ts.map
|
|
@@ -16,6 +16,6 @@ declare const IconButton: import("react").ForwardRefExoticComponent<{
|
|
|
16
16
|
/** @default 'default' */
|
|
17
17
|
type?: "default" | "negative";
|
|
18
18
|
'data-testid'?: string;
|
|
19
|
-
} & Pick<AnchorHTMLAttributes<HTMLAnchorElement>, "onClick" | "target" | "href"> & Pick<ButtonHTMLAttributes<HTMLButtonElement>, "disabled" | "onClick"> & Pick<HTMLAttributes<HTMLDivElement>, "
|
|
19
|
+
} & Pick<AnchorHTMLAttributes<HTMLAnchorElement>, "onClick" | "target" | "href"> & Pick<ButtonHTMLAttributes<HTMLButtonElement>, "disabled" | "onClick"> & Pick<HTMLAttributes<HTMLDivElement>, "id" | "className" | "tabIndex" | "role" | "aria-label" | "children"> & import("react").RefAttributes<unknown>>;
|
|
20
20
|
export default IconButton;
|
|
21
21
|
//# sourceMappingURL=IconButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Markup.d.ts","sourceRoot":"","sources":["../../../src/Markup/Markup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAMjD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Markup.d.ts","sourceRoot":"","sources":["../../../src/Markup/Markup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAMjD,OAAO,KAAK,EAAmC,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAwHnF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAoCxC,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { LinkProps } from '../Link';
|
|
3
2
|
export type MarkupNode = {
|
|
4
3
|
type: 'text';
|
|
5
4
|
content: string;
|
|
@@ -36,8 +35,19 @@ export type MarkupNode = {
|
|
|
36
35
|
accessibilityLabel?: string;
|
|
37
36
|
children: MarkupNode[];
|
|
38
37
|
};
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Callback signature for the `onAction` prop. Receives the action name from
|
|
40
|
+
* `<link action="name">` when clicked.
|
|
41
|
+
*/
|
|
42
|
+
export type MarkupActionHandler = (actionId: string) => void;
|
|
43
|
+
/**
|
|
44
|
+
* Per-prop Markup configuration that host components can accept via a `markupOptions`
|
|
45
|
+
* prop keyed by their text prop names (e.g. `{ title?: MarkupTextOptions; description?: MarkupTextOptions }`).
|
|
46
|
+
*/
|
|
47
|
+
export type MarkupTextOptions = {
|
|
48
|
+
data?: Record<string, string | number>;
|
|
49
|
+
allowLinks?: 'internal' | 'all' | 'none';
|
|
50
|
+
};
|
|
41
51
|
export interface MarkupProps {
|
|
42
52
|
/**
|
|
43
53
|
* Markup string to parse and render, or arbitrary JSX to pass through unchanged.
|
|
@@ -59,9 +69,10 @@ export interface MarkupProps {
|
|
|
59
69
|
* */
|
|
60
70
|
allowLinks?: 'internal' | 'all' | 'none';
|
|
61
71
|
/**
|
|
62
|
-
*
|
|
72
|
+
* Callback invoked when a `<link action="name">` button-mode link is clicked.
|
|
73
|
+
* Receives the action name as argument.
|
|
63
74
|
* */
|
|
64
|
-
|
|
75
|
+
onAction?: MarkupActionHandler;
|
|
65
76
|
/**
|
|
66
77
|
* Wrapper element. Defaults to `div` when the parsed tree contains `<paragraph>` nodes,
|
|
67
78
|
* `span` otherwise. Set explicitly to override auto-detection.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Markup.types.d.ts","sourceRoot":"","sources":["../../../src/Markup/Markup.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,
|
|
1
|
+
{"version":3,"file":"Markup.types.d.ts","sourceRoot":"","sources":["../../../src/Markup/Markup.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAE,GACzE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAE,GACzE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAE,GAC9E;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAE,GAC7C;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB,CAAC;AAEN;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;AAE7D;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC;CAC1C,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B;;;SAGK;IACL,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;SAGK;IACL,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACvC;;;;;;;SAOK;IACL,UAAU,CAAC,EAAE,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC;IACzC;;;SAGK;IACL,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B;;;;SAIK;IACL,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;SAEK;IACL,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { default } from './Markup';
|
|
2
|
-
export type { MarkupActionHandler,
|
|
2
|
+
export type { MarkupActionHandler, MarkupNode, MarkupProps, MarkupTextOptions, } from './Markup.types';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Markup/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Markup/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,YAAY,EACV,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,iBAAiB,GAClB,MAAM,gBAAgB,CAAC"}
|
|
@@ -55,6 +55,7 @@ declare const _default: import("react").FC<{
|
|
|
55
55
|
selectProps?: Partial<SelectInputProps<CurrencyOptionItem>> | undefined;
|
|
56
56
|
amount: number | null;
|
|
57
57
|
searchPlaceholder?: string | undefined;
|
|
58
|
+
decimals?: number | undefined;
|
|
58
59
|
currencies: readonly CurrencyItem[];
|
|
59
60
|
selectedCurrency: CurrencyOptionItem;
|
|
60
61
|
onCurrencyChange?: ((value: CurrencyOptionItem) => void) | undefined;
|
|
@@ -66,7 +67,6 @@ declare const _default: import("react").FC<{
|
|
|
66
67
|
}) => void) | undefined;
|
|
67
68
|
customActionLabel?: import("react").ReactNode;
|
|
68
69
|
onCustomAction?: (() => void) | undefined;
|
|
69
|
-
decimals?: number | undefined;
|
|
70
70
|
}>;
|
|
71
71
|
export default _default;
|
|
72
72
|
//# sourceMappingURL=MoneyInput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MoneyInput.d.ts","sourceRoot":"","sources":["../../../src/MoneyInput/MoneyInput.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE9E,OAAO,EAGL,SAAS,EACT,UAAU,EACV,SAAS,EAEV,MAAM,WAAW,CAAC;AACnB,OAAO,EAAuB,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEnF,OAAO,EAKL,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAO/B,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;AAoDnE,MAAM,WAAW,eAAgB,SAAQ,qBAAqB;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,SAAS,YAAY,EAAE,CAAC;IACpC,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAC1C,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,YAAY,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3F,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5D;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,kCAAkC,GAAG,eAAe,GAC9D,OAAO,CAAC,wBAAwB,CAAC,CAAC;;SA5B7B,MAAM;wBACS,MAAM;YAMnB,SAAS,GAAG,UAAU,GAAG,SAAS;kBAF3B,MAAM;iBAYP,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;kBACrB,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;YAZnD,MAAM,GAAG,IAAI;wBAID,MAAM;
|
|
1
|
+
{"version":3,"file":"MoneyInput.d.ts","sourceRoot":"","sources":["../../../src/MoneyInput/MoneyInput.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE9E,OAAO,EAGL,SAAS,EACT,UAAU,EACV,SAAS,EAEV,MAAM,WAAW,CAAC;AACnB,OAAO,EAAuB,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEnF,OAAO,EAKL,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAO/B,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;AAoDnE,MAAM,WAAW,eAAgB,SAAQ,qBAAqB;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,SAAS,YAAY,EAAE,CAAC;IACpC,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAC1C,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,YAAY,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3F,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5D;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,kCAAkC,GAAG,eAAe,GAC9D,OAAO,CAAC,wBAAwB,CAAC,CAAC;;SA5B7B,MAAM;wBACS,MAAM;YAMnB,SAAS,GAAG,UAAU,GAAG,SAAS;kBAF3B,MAAM;iBAYP,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;kBACrB,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;YAZnD,MAAM,GAAG,IAAI;wBAID,MAAM;eAcf,MAAM;gBAtBL,SAAS,YAAY,EAAE;sBACjB,kBAAkB;wBACjB,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI;sBAIrC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI;;sBAM9B,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,YAAY,EAAE,CAAA;KAAE,KAAK,IAAI;;sBAEzE,MAAM,IAAI;;AAib7B,wBAA2F"}
|
|
@@ -10,7 +10,7 @@ export type TitleProps = LabelHTMLAttributes<HTMLHeadingElement | HTMLSpanElemen
|
|
|
10
10
|
*/
|
|
11
11
|
type?: TitleTypes;
|
|
12
12
|
};
|
|
13
|
-
declare const Title: React.ForwardRefExoticComponent<React.LabelHTMLAttributes<
|
|
13
|
+
declare const Title: React.ForwardRefExoticComponent<React.LabelHTMLAttributes<HTMLHeadingElement | HTMLLabelElement | HTMLSpanElement> & React.LiHTMLAttributes<HTMLLIElement> & {
|
|
14
14
|
/**
|
|
15
15
|
* Default value will based one `type` prop
|
|
16
16
|
*/
|
|
@@ -19,6 +19,6 @@ declare const Title: React.ForwardRefExoticComponent<React.LabelHTMLAttributes<H
|
|
|
19
19
|
* Default value: {@link DEFAULT_TYPE}
|
|
20
20
|
*/
|
|
21
21
|
type?: TitleTypes;
|
|
22
|
-
} & React.RefAttributes<
|
|
22
|
+
} & React.RefAttributes<HTMLHeadingElement | HTMLLabelElement | HTMLLegendElement | HTMLLIElement | HTMLSpanElement>>;
|
|
23
23
|
export default Title;
|
|
24
24
|
//# sourceMappingURL=Title.d.ts.map
|
|
@@ -15,7 +15,7 @@ export default class UploadImageStep extends PureComponent<UploadImageStepProps>
|
|
|
15
15
|
uploadInputRef: import("react").RefObject<HTMLInputElement>;
|
|
16
16
|
onManualUpload: () => void;
|
|
17
17
|
onKeyDown: (event: React.KeyboardEvent<HTMLLabelElement>) => void;
|
|
18
|
-
getImage: () => number | true | import("react").
|
|
18
|
+
getImage: () => number | true | Iterable<import("react").ReactNode> | import("react").JSX.Element;
|
|
19
19
|
render(): import("react").JSX.Element;
|
|
20
20
|
}
|
|
21
21
|
//# sourceMappingURL=UploadImageStep.d.ts.map
|
|
@@ -5,5 +5,5 @@ export declare const UploadItemLink: import("react").ForwardRefExoticComponent<{
|
|
|
5
5
|
singleFileUpload: boolean;
|
|
6
6
|
} & {
|
|
7
7
|
children?: import("react").ReactNode | undefined;
|
|
8
|
-
} & import("react").RefAttributes<
|
|
8
|
+
} & import("react").RefAttributes<HTMLAnchorElement | HTMLDivElement>>;
|
|
9
9
|
//# sourceMappingURL=UploadItemLink.d.ts.map
|
package/build/types/index.d.ts
CHANGED
|
@@ -54,7 +54,7 @@ export type { LegacyListItemProps } from './_deprecated/LegacyListItem';
|
|
|
54
54
|
export type { LinkProps } from './Link';
|
|
55
55
|
export type { LoaderProps } from './Loader';
|
|
56
56
|
export type { MarkdownProps } from './Markdown';
|
|
57
|
-
export type { MarkupActionHandler,
|
|
57
|
+
export type { MarkupActionHandler, MarkupNode, MarkupProps, MarkupTextOptions } from './Markup';
|
|
58
58
|
export type { ModalProps } from './Modal';
|
|
59
59
|
export type { MoneyProps } from './Money';
|
|
60
60
|
export type { CurrencyHeaderItem, CurrencyItem, CurrencyOptionItem, MoneyInputProps, } from './MoneyInput';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -130,15 +130,16 @@ describe('Markup', () => {
|
|
|
130
130
|
expect(link).toHaveAttribute('target', '_blank');
|
|
131
131
|
});
|
|
132
132
|
|
|
133
|
-
it('renders a button-mode link with action', async () => {
|
|
134
|
-
const
|
|
135
|
-
render(<Markup
|
|
133
|
+
it('renders a button-mode link and calls onAction with the action name', async () => {
|
|
134
|
+
const handleAction = jest.fn();
|
|
135
|
+
render(<Markup onAction={handleAction}>{'<link action="save">Save</link>'}</Markup>);
|
|
136
136
|
const button = screen.getByRole('button', { name: 'Save' });
|
|
137
137
|
await userEvent.click(button);
|
|
138
|
-
expect(
|
|
138
|
+
expect(handleAction).toHaveBeenCalledTimes(1);
|
|
139
|
+
expect(handleAction).toHaveBeenCalledWith('save');
|
|
139
140
|
});
|
|
140
141
|
|
|
141
|
-
it('renders as plain text when
|
|
142
|
+
it('renders as plain text when onAction is not provided', () => {
|
|
142
143
|
render(<Markup>{'<link action="missing">text</link>'}</Markup>);
|
|
143
144
|
expect(screen.queryByRole('link')).not.toBeInTheDocument();
|
|
144
145
|
expect(screen.queryByRole('button')).not.toBeInTheDocument();
|
|
@@ -300,7 +301,7 @@ describe('Markup', () => {
|
|
|
300
301
|
it('applies aria-label to button-mode link tags', () => {
|
|
301
302
|
const handler = jest.fn();
|
|
302
303
|
render(
|
|
303
|
-
<Markup
|
|
304
|
+
<Markup onAction={handler}>
|
|
304
305
|
{'<link action="save" accessibilityLabel="Save your changes">Save</link>'}
|
|
305
306
|
</Markup>,
|
|
306
307
|
);
|
|
@@ -447,7 +448,7 @@ describe('Markup', () => {
|
|
|
447
448
|
it('does not affect action-based links in "none" mode', () => {
|
|
448
449
|
const handleClick = jest.fn();
|
|
449
450
|
render(
|
|
450
|
-
<Markup allowLinks="none"
|
|
451
|
+
<Markup allowLinks="none" onAction={handleClick}>
|
|
451
452
|
{'<link action="save">save</link>'}
|
|
452
453
|
</Markup>,
|
|
453
454
|
);
|
package/src/Markup/Markup.tsx
CHANGED
|
@@ -4,7 +4,7 @@ import Link from '../Link';
|
|
|
4
4
|
|
|
5
5
|
import { parseMarkup } from './utils/parseMarkup';
|
|
6
6
|
import { type AllowLinksMode, isHrefAllowedByMode, sanitiseHref } from './utils/sanitise';
|
|
7
|
-
import type {
|
|
7
|
+
import type { MarkupActionHandler, MarkupNode, MarkupProps } from './Markup.types';
|
|
8
8
|
|
|
9
9
|
const PLACEHOLDER_REGEX = /\{\{(\w+)\}\}/g;
|
|
10
10
|
|
|
@@ -16,28 +16,31 @@ function substituteData(text: string, data: MarkupData): string {
|
|
|
16
16
|
);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
type OnAction = MarkupActionHandler | undefined;
|
|
20
|
+
|
|
19
21
|
function renderNodes(
|
|
20
22
|
nodes: MarkupNode[],
|
|
21
|
-
|
|
23
|
+
onAction: OnAction,
|
|
22
24
|
data: MarkupData | undefined,
|
|
23
25
|
allowLinks: AllowLinksMode,
|
|
24
26
|
): React.ReactNode[] {
|
|
25
|
-
return nodes.map((node, index) => renderNode(node,
|
|
27
|
+
return nodes.map((node, index) => renderNode(node, onAction, data, allowLinks, index));
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
function renderLinkNode(
|
|
29
31
|
node: Extract<MarkupNode, { type: 'link' }>,
|
|
30
|
-
|
|
32
|
+
onAction: OnAction,
|
|
31
33
|
data: MarkupData | undefined,
|
|
32
34
|
allowLinks: AllowLinksMode,
|
|
33
35
|
key: number,
|
|
34
36
|
): React.ReactNode {
|
|
35
|
-
const children = renderNodes(node.children,
|
|
37
|
+
const children = renderNodes(node.children, onAction, data, allowLinks);
|
|
36
38
|
|
|
37
|
-
if (node.action &&
|
|
39
|
+
if (node.action && onAction) {
|
|
40
|
+
const actionId = node.action;
|
|
38
41
|
return (
|
|
39
42
|
// eslint-disable-next-line jsx-a11y/click-events-have-key-events
|
|
40
|
-
<Link key={key} aria-label={node.accessibilityLabel} onClick={
|
|
43
|
+
<Link key={key} aria-label={node.accessibilityLabel} onClick={() => onAction(actionId)}>
|
|
41
44
|
{children}
|
|
42
45
|
</Link>
|
|
43
46
|
);
|
|
@@ -62,7 +65,7 @@ function renderLinkNode(
|
|
|
62
65
|
|
|
63
66
|
function renderNode(
|
|
64
67
|
node: MarkupNode,
|
|
65
|
-
|
|
68
|
+
onAction: OnAction,
|
|
66
69
|
data: MarkupData | undefined,
|
|
67
70
|
allowLinks: AllowLinksMode,
|
|
68
71
|
key: number,
|
|
@@ -83,29 +86,29 @@ function renderNode(
|
|
|
83
86
|
className={`wds-markup-emphasis wds-markup-emphasis--${node.type}`}
|
|
84
87
|
aria-label={node.accessibilityLabel}
|
|
85
88
|
>
|
|
86
|
-
{renderNodes(node.children,
|
|
89
|
+
{renderNodes(node.children, onAction, data, allowLinks)}
|
|
87
90
|
</em>
|
|
88
91
|
);
|
|
89
92
|
case 'strong':
|
|
90
93
|
return (
|
|
91
94
|
<strong key={key} className="wds-markup-strong" aria-label={node.accessibilityLabel}>
|
|
92
|
-
{renderNodes(node.children,
|
|
95
|
+
{renderNodes(node.children, onAction, data, allowLinks)}
|
|
93
96
|
</strong>
|
|
94
97
|
);
|
|
95
98
|
case 'strikethrough':
|
|
96
99
|
return (
|
|
97
100
|
<del key={key} className="wds-markup-strikethrough" aria-label={node.accessibilityLabel}>
|
|
98
|
-
{renderNodes(node.children,
|
|
101
|
+
{renderNodes(node.children, onAction, data, allowLinks)}
|
|
99
102
|
</del>
|
|
100
103
|
);
|
|
101
104
|
case 'paragraph':
|
|
102
105
|
return (
|
|
103
106
|
<p key={key} className="wds-markup-paragraph">
|
|
104
|
-
{renderNodes(node.children,
|
|
107
|
+
{renderNodes(node.children, onAction, data, allowLinks)}
|
|
105
108
|
</p>
|
|
106
109
|
);
|
|
107
110
|
case 'link':
|
|
108
|
-
return renderLinkNode(node,
|
|
111
|
+
return renderLinkNode(node, onAction, data, allowLinks, key);
|
|
109
112
|
}
|
|
110
113
|
}
|
|
111
114
|
|
|
@@ -138,7 +141,7 @@ export const Markup: React.FC<MarkupProps> = ({
|
|
|
138
141
|
children,
|
|
139
142
|
data,
|
|
140
143
|
allowLinks = 'internal',
|
|
141
|
-
|
|
144
|
+
onAction,
|
|
142
145
|
as,
|
|
143
146
|
className,
|
|
144
147
|
'data-testid': testId,
|
|
@@ -167,7 +170,7 @@ export const Markup: React.FC<MarkupProps> = ({
|
|
|
167
170
|
|
|
168
171
|
return (
|
|
169
172
|
<Element className={className} data-testid={testId}>
|
|
170
|
-
{renderNodes(tree,
|
|
173
|
+
{renderNodes(tree, onAction, data, allowLinks)}
|
|
171
174
|
</Element>
|
|
172
175
|
);
|
|
173
176
|
};
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
|
|
3
|
-
import type { LinkProps } from '../Link';
|
|
4
|
-
|
|
5
3
|
export type MarkupNode =
|
|
6
4
|
| { type: 'text'; content: string }
|
|
7
5
|
| { type: 'newline' }
|
|
@@ -20,9 +18,20 @@ export type MarkupNode =
|
|
|
20
18
|
children: MarkupNode[];
|
|
21
19
|
};
|
|
22
20
|
|
|
23
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Callback signature for the `onAction` prop. Receives the action name from
|
|
23
|
+
* `<link action="name">` when clicked.
|
|
24
|
+
*/
|
|
25
|
+
export type MarkupActionHandler = (actionId: string) => void;
|
|
24
26
|
|
|
25
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Per-prop Markup configuration that host components can accept via a `markupOptions`
|
|
29
|
+
* prop keyed by their text prop names (e.g. `{ title?: MarkupTextOptions; description?: MarkupTextOptions }`).
|
|
30
|
+
*/
|
|
31
|
+
export type MarkupTextOptions = {
|
|
32
|
+
data?: Record<string, string | number>;
|
|
33
|
+
allowLinks?: 'internal' | 'all' | 'none';
|
|
34
|
+
};
|
|
26
35
|
|
|
27
36
|
export interface MarkupProps {
|
|
28
37
|
/**
|
|
@@ -45,9 +54,10 @@ export interface MarkupProps {
|
|
|
45
54
|
* */
|
|
46
55
|
allowLinks?: 'internal' | 'all' | 'none';
|
|
47
56
|
/**
|
|
48
|
-
*
|
|
57
|
+
* Callback invoked when a `<link action="name">` button-mode link is clicked.
|
|
58
|
+
* Receives the action name as argument.
|
|
49
59
|
* */
|
|
50
|
-
|
|
60
|
+
onAction?: MarkupActionHandler;
|
|
51
61
|
/**
|
|
52
62
|
* Wrapper element. Defaults to `div` when the parsed tree contains `<paragraph>` nodes,
|
|
53
63
|
* `span` otherwise. Set explicitly to override auto-detection.
|
|
@@ -4,6 +4,66 @@ import { Meta, Source } from '@storybook/addon-docs/blocks';
|
|
|
4
4
|
|
|
5
5
|
# Developer notes
|
|
6
6
|
|
|
7
|
+
## Integrating Markup in host components
|
|
8
|
+
|
|
9
|
+
To integrate any component with Markup (e.g. `title`, `description`), follow this pattern:
|
|
10
|
+
|
|
11
|
+
1. **Add `onMarkupAction`** — if the component is expected to accept actions, add a single callback prop that the
|
|
12
|
+
component forwards to every internal `<Markup onAction={onMarkupAction}>` instance. The name of this prop must
|
|
13
|
+
remain consistent across components.
|
|
14
|
+
|
|
15
|
+
2. **Add `markupOptions`** — an optional prop keyed by the text prop names, carrying per-prop Markup configuration
|
|
16
|
+
(`data`, `allowLinks`). `MarkupTextOptions` type is exposed by the component.
|
|
17
|
+
|
|
18
|
+
<Source dark language="tsx" code={`
|
|
19
|
+
import Markup, { type MarkupActionHandler, type MarkupTextOptions } from '../Markup';
|
|
20
|
+
|
|
21
|
+
type MyComponentProps = {
|
|
22
|
+
title: ReactNode;
|
|
23
|
+
description?: ReactNode;
|
|
24
|
+
onMarkupAction?: MarkupActionHandler;
|
|
25
|
+
markupOptions?: {
|
|
26
|
+
title?: MarkupTextOptions;
|
|
27
|
+
description?: MarkupTextOptions;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
function MyComponent({ title, description, onMarkupAction, markupOptions }: MyComponentProps) {
|
|
32
|
+
return (
|
|
33
|
+
<div>
|
|
34
|
+
<Markup onAction={onMarkupAction} {...markupOptions?.title}>
|
|
35
|
+
{title}
|
|
36
|
+
</Markup>
|
|
37
|
+
|
|
38
|
+
{description && (
|
|
39
|
+
<Markup onAction={onMarkupAction} {...markupOptions?.description}>
|
|
40
|
+
{description}
|
|
41
|
+
</Markup>
|
|
42
|
+
)}
|
|
43
|
+
</div>
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
`} />
|
|
47
|
+
|
|
48
|
+
Consumer usage:
|
|
49
|
+
|
|
50
|
+
<Source
|
|
51
|
+
dark
|
|
52
|
+
language="tsx"
|
|
53
|
+
code={`
|
|
54
|
+
<MyComponent
|
|
55
|
+
title='Something went wrong. <link action="retry">Try again</link>.'
|
|
56
|
+
description='Your balance is {{amount}}.'
|
|
57
|
+
onMarkupAction={(actionId) => {
|
|
58
|
+
if (actionId === 'retry') refetch();
|
|
59
|
+
}}
|
|
60
|
+
markupOptions={{
|
|
61
|
+
description: { data: { amount: '£100.00' }, allowLinks: 'all' }
|
|
62
|
+
}}
|
|
63
|
+
/>
|
|
64
|
+
`}
|
|
65
|
+
/>
|
|
66
|
+
|
|
7
67
|
## How parsing works
|
|
8
68
|
|
|
9
69
|
The parser runs in two phases: **tokenise** then **parse**.
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import { Meta, StoryObj } from '@storybook/react-webpack5';
|
|
3
|
-
import { action } from 'storybook/actions';
|
|
4
3
|
|
|
5
4
|
import {
|
|
6
5
|
createSandboxStory,
|
|
@@ -9,7 +8,6 @@ import {
|
|
|
9
8
|
import { storySourceWithoutNoise } from '../../../.storybook/helpers';
|
|
10
9
|
|
|
11
10
|
import { Markup } from '../Markup';
|
|
12
|
-
import type { MarkupActionHandler } from '../Markup.types';
|
|
13
11
|
|
|
14
12
|
export default {
|
|
15
13
|
component: Markup,
|
|
@@ -58,8 +56,8 @@ export const WithLinks: Story = {
|
|
|
58
56
|
};
|
|
59
57
|
|
|
60
58
|
/**
|
|
61
|
-
* Button-mode link using the `action` attribute. The handler is provided via the `
|
|
62
|
-
* If
|
|
59
|
+
* Button-mode link using the `action` attribute. The handler is provided via the `onAction` prop.
|
|
60
|
+
* If `onAction` is not provided, the link degrades to plain text.
|
|
63
61
|
* */
|
|
64
62
|
export const WithLinksAsButtons = storySourceWithoutNoise<Story>({
|
|
65
63
|
args: {
|
|
@@ -68,14 +66,15 @@ export const WithLinksAsButtons = storySourceWithoutNoise<Story>({
|
|
|
68
66
|
render: function Render(args) {
|
|
69
67
|
const [count, setCount] = useState(0);
|
|
70
68
|
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
const handleAction = (actionId: string) => {
|
|
70
|
+
if (actionId === 'increment') {
|
|
71
|
+
setCount((prev) => prev + 1);
|
|
72
|
+
}
|
|
74
73
|
};
|
|
75
74
|
|
|
76
75
|
return (
|
|
77
76
|
<>
|
|
78
|
-
<Markup
|
|
77
|
+
<Markup onAction={handleAction}>{args.children}</Markup>
|
|
79
78
|
<output>{count}</output>
|
|
80
79
|
</>
|
|
81
80
|
);
|
package/src/Markup/index.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -95,7 +95,7 @@ export type { LegacyListItemProps } from './_deprecated/LegacyListItem';
|
|
|
95
95
|
export type { LinkProps } from './Link';
|
|
96
96
|
export type { LoaderProps } from './Loader';
|
|
97
97
|
export type { MarkdownProps } from './Markdown';
|
|
98
|
-
export type { MarkupActionHandler,
|
|
98
|
+
export type { MarkupActionHandler, MarkupNode, MarkupProps, MarkupTextOptions } from './Markup';
|
|
99
99
|
export type { ModalProps } from './Modal';
|
|
100
100
|
export type { MoneyProps } from './Money';
|
|
101
101
|
export type {
|