@dynatrace/strato-components 0.84.31 → 0.84.42
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/core/components/app-root/AppRoot.d.ts +2 -2
- package/core/hooks/useFontsUpdated.d.ts +9 -0
- package/core/hooks/useFontsUpdated.js +51 -0
- package/core/hooks/useMergeRefs.d.ts +7 -0
- package/core/hooks/useMergeRefs.js +34 -0
- package/core/index.d.ts +4 -0
- package/core/styles/focusRing.css +88 -0
- package/core/styles/focusRing.sty.d.ts +96 -0
- package/core/styles/focusRing.sty.js +27 -0
- package/core/styles/useFocusRing.d.ts +49 -0
- package/core/styles/useFocusRing.js +83 -0
- package/core/types/a11y-props.d.ts +19 -0
- package/core/types/a11y-props.js +15 -0
- package/core/types/dom.d.ts +19 -0
- package/core/types/dom.js +15 -0
- package/core/types/focusable-element.d.ts +5 -0
- package/core/types/focusable-element.js +15 -0
- package/core/types/heading.d.ts +9 -0
- package/core/types/heading.js +15 -0
- package/core/types/polymorph.d.ts +25 -0
- package/core/types/polymorph.js +15 -0
- package/core/utils/colorUtils.css +80 -0
- package/core/utils/colorUtils.sty.d.ts +48 -0
- package/core/utils/colorUtils.sty.js +27 -0
- package/esm/core/hooks/useFontsUpdated.js +33 -0
- package/esm/core/hooks/useFontsUpdated.js.map +7 -0
- package/esm/core/hooks/useMergeRefs.js +16 -0
- package/esm/core/hooks/useMergeRefs.js.map +7 -0
- package/esm/core/index.js.map +1 -1
- package/esm/core/styles/focusRing.css +88 -0
- package/esm/core/styles/focusRing.sty.js +9 -0
- package/esm/core/styles/focusRing.sty.js.map +7 -0
- package/esm/core/styles/useFocusRing.js +69 -0
- package/esm/core/styles/useFocusRing.js.map +7 -0
- package/esm/core/types/a11y-props.js +1 -0
- package/esm/core/types/a11y-props.js.map +7 -0
- package/esm/core/types/dom.js +1 -0
- package/esm/core/types/dom.js.map +7 -0
- package/esm/core/types/focusable-element.js +1 -0
- package/esm/core/types/focusable-element.js.map +7 -0
- package/esm/core/types/heading.js +1 -0
- package/esm/core/types/heading.js.map +7 -0
- package/esm/core/types/polymorph.js +1 -0
- package/esm/core/types/polymorph.js.map +7 -0
- package/esm/core/utils/colorUtils.css +80 -0
- package/esm/core/utils/colorUtils.sty.js +9 -0
- package/esm/core/utils/colorUtils.sty.js.map +7 -0
- package/esm/index.js +2 -0
- package/esm/index.js.map +2 -2
- package/esm/layouts/Divider/Divider.css +23 -0
- package/esm/layouts/Divider/Divider.js +39 -0
- package/esm/layouts/Divider/Divider.js.map +7 -0
- package/esm/layouts/Divider/Divider.sty.js +8 -0
- package/esm/layouts/Divider/Divider.sty.js.map +7 -0
- package/esm/layouts/index.js +5 -0
- package/esm/layouts/index.js.map +7 -0
- package/esm/styles/textStyle.css +64 -0
- package/esm/styles/textStyle.sty.js +7 -0
- package/esm/styles/textStyle.sty.js.map +7 -0
- package/esm/typography/BlockQuote/Blockquote.css +17 -0
- package/esm/typography/BlockQuote/Blockquote.js +34 -0
- package/esm/typography/BlockQuote/Blockquote.js.map +7 -0
- package/esm/typography/BlockQuote/Blockquote.sty.js +6 -0
- package/esm/typography/BlockQuote/Blockquote.sty.js.map +7 -0
- package/esm/typography/Code/Code.css +16 -0
- package/esm/typography/Code/Code.js +34 -0
- package/esm/typography/Code/Code.js.map +7 -0
- package/esm/typography/Code/Code.sty.js +6 -0
- package/esm/typography/Code/Code.sty.js.map +7 -0
- package/esm/typography/Emphasis/Emphasis.css +4 -0
- package/esm/typography/Emphasis/Emphasis.js +34 -0
- package/esm/typography/Emphasis/Emphasis.js.map +7 -0
- package/esm/typography/Emphasis/Emphasis.sty.js +6 -0
- package/esm/typography/Emphasis/Emphasis.sty.js.map +7 -0
- package/esm/typography/ExternalLink/ExternalLink.css +28 -0
- package/esm/typography/ExternalLink/ExternalLink.js +56 -0
- package/esm/typography/ExternalLink/ExternalLink.js.map +7 -0
- package/esm/typography/ExternalLink/ExternalLink.sty.js +6 -0
- package/esm/typography/ExternalLink/ExternalLink.sty.js.map +7 -0
- package/esm/typography/Heading/Heading.css +54 -0
- package/esm/typography/Heading/Heading.js +36 -0
- package/esm/typography/Heading/Heading.js.map +7 -0
- package/esm/typography/Heading/Heading.sty.js +7 -0
- package/esm/typography/Heading/Heading.sty.js.map +7 -0
- package/esm/typography/Highlight/Highlight.css +4 -0
- package/esm/typography/Highlight/Highlight.js +111 -0
- package/esm/typography/Highlight/Highlight.js.map +7 -0
- package/esm/typography/Highlight/Highlight.sty.js +6 -0
- package/esm/typography/Highlight/Highlight.sty.js.map +7 -0
- package/esm/typography/Link/Link.css +15 -0
- package/esm/typography/Link/Link.js +49 -0
- package/esm/typography/Link/Link.js.map +7 -0
- package/esm/typography/Link/Link.sty.js +6 -0
- package/esm/typography/Link/Link.sty.js.map +7 -0
- package/esm/typography/List/List.css +16 -0
- package/esm/typography/List/List.js +81 -0
- package/esm/typography/List/List.js.map +7 -0
- package/esm/typography/List/List.sty.js +8 -0
- package/esm/typography/List/List.sty.js.map +7 -0
- package/esm/typography/Paragraph/Paragraph.css +19 -0
- package/esm/typography/Paragraph/Paragraph.js +49 -0
- package/esm/typography/Paragraph/Paragraph.js.map +7 -0
- package/esm/typography/Paragraph/Paragraph.sty.js +7 -0
- package/esm/typography/Paragraph/Paragraph.sty.js.map +7 -0
- package/esm/typography/Strikethrough/Strikethrough.css +5 -0
- package/esm/typography/Strikethrough/Strikethrough.js +32 -0
- package/esm/typography/Strikethrough/Strikethrough.js.map +7 -0
- package/esm/typography/Strikethrough/Strikethrough.sty.js +6 -0
- package/esm/typography/Strikethrough/Strikethrough.sty.js.map +7 -0
- package/esm/typography/Strong/Strong.css +4 -0
- package/esm/typography/Strong/Strong.js +34 -0
- package/esm/typography/Strong/Strong.js.map +7 -0
- package/esm/typography/Strong/Strong.sty.js +6 -0
- package/esm/typography/Strong/Strong.sty.js.map +7 -0
- package/esm/typography/Text/Text.css +18 -0
- package/esm/typography/Text/Text.js +43 -0
- package/esm/typography/Text/Text.js.map +7 -0
- package/esm/typography/Text/Text.sty.js +7 -0
- package/esm/typography/Text/Text.sty.js.map +7 -0
- package/esm/typography/TextEllipsis/TextEllipsis.css +22 -0
- package/esm/typography/TextEllipsis/TextEllipsis.js +143 -0
- package/esm/typography/TextEllipsis/TextEllipsis.js.map +7 -0
- package/esm/typography/TextEllipsis/TextEllipsis.sty.js +7 -0
- package/esm/typography/TextEllipsis/TextEllipsis.sty.js.map +7 -0
- package/esm/typography/index.js +43 -0
- package/esm/typography/index.js.map +7 -0
- package/esm/typography/utils.js +101 -0
- package/esm/typography/utils.js.map +7 -0
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/lang/en.json +6 -0
- package/lang/uncompiled/en.json +6 -1
- package/layouts/Divider/Divider.css +23 -0
- package/layouts/Divider/Divider.d.ts +39 -0
- package/layouts/Divider/Divider.js +67 -0
- package/layouts/Divider/Divider.sty.d.ts +16 -0
- package/layouts/Divider/Divider.sty.js +26 -0
- package/layouts/index.d.ts +2 -0
- package/layouts/index.js +23 -0
- package/package.json +17 -2
- package/styles/textStyle.css +64 -0
- package/styles/textStyle.sty.d.ts +12 -0
- package/styles/textStyle.sty.js +25 -0
- package/testing/mocks/text-ellipsis-mock.d.ts +1 -1
- package/testing/mocks/text-ellipsis-mock.js +8 -3
- package/typography/BlockQuote/Blockquote.css +17 -0
- package/typography/BlockQuote/Blockquote.d.ts +19 -0
- package/typography/BlockQuote/Blockquote.js +62 -0
- package/typography/BlockQuote/Blockquote.sty.d.ts +1 -0
- package/typography/BlockQuote/Blockquote.sty.js +24 -0
- package/typography/Code/Code.css +16 -0
- package/typography/Code/Code.d.ts +17 -0
- package/typography/Code/Code.js +62 -0
- package/typography/Code/Code.sty.d.ts +1 -0
- package/typography/Code/Code.sty.js +24 -0
- package/typography/Emphasis/Emphasis.css +4 -0
- package/typography/Emphasis/Emphasis.d.ts +14 -0
- package/typography/Emphasis/Emphasis.js +62 -0
- package/typography/Emphasis/Emphasis.sty.d.ts +1 -0
- package/typography/Emphasis/Emphasis.sty.js +24 -0
- package/typography/ExternalLink/ExternalLink.css +28 -0
- package/typography/ExternalLink/ExternalLink.d.ts +21 -0
- package/typography/ExternalLink/ExternalLink.js +82 -0
- package/typography/ExternalLink/ExternalLink.sty.d.ts +1 -0
- package/typography/ExternalLink/ExternalLink.sty.js +24 -0
- package/typography/Heading/Heading.css +54 -0
- package/typography/Heading/Heading.d.ts +24 -0
- package/typography/Heading/Heading.js +64 -0
- package/typography/Heading/Heading.sty.d.ts +52 -0
- package/typography/Heading/Heading.sty.js +25 -0
- package/typography/Highlight/Highlight.css +4 -0
- package/typography/Highlight/Highlight.d.ts +27 -0
- package/typography/Highlight/Highlight.js +139 -0
- package/typography/Highlight/Highlight.sty.d.ts +1 -0
- package/typography/Highlight/Highlight.sty.js +24 -0
- package/typography/Link/Link.css +15 -0
- package/typography/Link/Link.d.ts +17 -0
- package/typography/Link/Link.js +75 -0
- package/typography/Link/Link.sty.d.ts +1 -0
- package/typography/Link/Link.sty.js +24 -0
- package/typography/List/List.css +16 -0
- package/typography/List/List.d.ts +39 -0
- package/typography/List/List.js +109 -0
- package/typography/List/List.sty.d.ts +2 -0
- package/typography/List/List.sty.js +26 -0
- package/typography/Paragraph/Paragraph.css +19 -0
- package/typography/Paragraph/Paragraph.d.ts +19 -0
- package/typography/Paragraph/Paragraph.js +77 -0
- package/typography/Paragraph/Paragraph.sty.d.ts +16 -0
- package/typography/Paragraph/Paragraph.sty.js +25 -0
- package/typography/Strikethrough/Strikethrough.css +5 -0
- package/typography/Strikethrough/Strikethrough.d.ts +15 -0
- package/typography/Strikethrough/Strikethrough.js +60 -0
- package/typography/Strikethrough/Strikethrough.sty.d.ts +1 -0
- package/typography/Strikethrough/Strikethrough.sty.js +24 -0
- package/typography/Strong/Strong.css +4 -0
- package/typography/Strong/Strong.d.ts +14 -0
- package/typography/Strong/Strong.js +62 -0
- package/typography/Strong/Strong.sty.d.ts +1 -0
- package/typography/Strong/Strong.sty.js +24 -0
- package/typography/Text/Text.css +18 -0
- package/typography/Text/Text.d.ts +26 -0
- package/typography/Text/Text.js +71 -0
- package/typography/Text/Text.sty.d.ts +16 -0
- package/typography/Text/Text.sty.js +25 -0
- package/typography/TextEllipsis/TextEllipsis.css +22 -0
- package/typography/TextEllipsis/TextEllipsis.d.ts +32 -0
- package/typography/TextEllipsis/TextEllipsis.js +167 -0
- package/typography/TextEllipsis/TextEllipsis.sty.d.ts +15 -0
- package/typography/TextEllipsis/TextEllipsis.sty.js +25 -0
- package/typography/index.d.ts +28 -0
- package/typography/index.js +54 -0
- package/typography/utils.d.ts +52 -0
- package/typography/utils.js +119 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var Emphasis_exports = {};
|
|
29
|
+
__export(Emphasis_exports, {
|
|
30
|
+
Emphasis: () => Emphasis
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(Emphasis_exports);
|
|
33
|
+
var import_clsx = __toESM(require("clsx"));
|
|
34
|
+
var import_react = __toESM(require("react"));
|
|
35
|
+
var import_Emphasis_css = require("./Emphasis.sty.js");
|
|
36
|
+
const Emphasis = /* @__PURE__ */ (0, import_react.forwardRef)(
|
|
37
|
+
(props, ref) => {
|
|
38
|
+
const {
|
|
39
|
+
children,
|
|
40
|
+
"data-testid": dataTestId,
|
|
41
|
+
"data-dtrum-mask": dataDtrumMask,
|
|
42
|
+
"data-dtrum-allow": dataDtrumAllow,
|
|
43
|
+
className: consumerClassName,
|
|
44
|
+
style: consumerStyle,
|
|
45
|
+
...remainingProps
|
|
46
|
+
} = props;
|
|
47
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
48
|
+
"em",
|
|
49
|
+
{
|
|
50
|
+
ref,
|
|
51
|
+
"data-testid": dataTestId,
|
|
52
|
+
"data-dtrum-mask": dataDtrumMask,
|
|
53
|
+
"data-dtrum-allow": dataDtrumAllow,
|
|
54
|
+
className: (0, import_clsx.default)(import_Emphasis_css.emphasisCSS, consumerClassName),
|
|
55
|
+
style: consumerStyle,
|
|
56
|
+
...remainingProps
|
|
57
|
+
},
|
|
58
|
+
children
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
Emphasis.displayName = "Emphasis";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const emphasisCSS: string;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var Emphasis_css_exports = {};
|
|
19
|
+
__export(Emphasis_css_exports, {
|
|
20
|
+
emphasisCSS: () => emphasisCSS
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(Emphasis_css_exports);
|
|
23
|
+
var import_Emphasis_css_ts_vanilla = require("./Emphasis.css");
|
|
24
|
+
var emphasisCSS = "Emphasis_emphasisCSS__19xtnhr0";
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
.ExternalLink_externalLinkCSS__8noiqs0 {
|
|
2
|
+
display: inline-block;
|
|
3
|
+
color: var(--dt-colors-text-primary-default, #454cc9);
|
|
4
|
+
text-decoration: underline;
|
|
5
|
+
overflow-wrap: anywhere;
|
|
6
|
+
}
|
|
7
|
+
.ExternalLink_externalLinkCSS__8noiqs0:hover {
|
|
8
|
+
color: var(--dt-colors-text-primary-default-hover, #3332ae);
|
|
9
|
+
}
|
|
10
|
+
.ExternalLink_externalLinkCSS__8noiqs0:active {
|
|
11
|
+
color: var(--dt-colors-text-primary-default-active, #241193);
|
|
12
|
+
}
|
|
13
|
+
.ExternalLink_externalLinkCSS__8noiqs0:focus-visible {
|
|
14
|
+
text-decoration: none;
|
|
15
|
+
}
|
|
16
|
+
.ExternalLink_externalLinkCSS__8noiqs0 > span {
|
|
17
|
+
white-space: nowrap;
|
|
18
|
+
display: inline-flex;
|
|
19
|
+
}
|
|
20
|
+
.ExternalLink_externalLinkCSS__8noiqs0 > span > svg {
|
|
21
|
+
margin-left: var(--dt-spacings-size-2, 2px);
|
|
22
|
+
align-self: center;
|
|
23
|
+
min-width: var(--dt-spacings-size-20, 20px);
|
|
24
|
+
width: calc(20em / 14);
|
|
25
|
+
height: calc(20em / 14);
|
|
26
|
+
max-width: var(--dt-spacings-size-24, 24px);
|
|
27
|
+
max-height: var(--dt-spacings-size-24, 24px);
|
|
28
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React, { MouseEventHandler } from 'react';
|
|
2
|
+
import { type DataTestId, type StylingProps, type WithChildren } from '../../core/index.js';
|
|
3
|
+
import type { MaskingProps } from '../../core/types/masking-props.js';
|
|
4
|
+
/**
|
|
5
|
+
* The props for the ExternalLink component.
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export interface ExternalLinkProps extends WithChildren, StylingProps, DataTestId, MaskingProps {
|
|
9
|
+
/** The href used for the link. */
|
|
10
|
+
href: string;
|
|
11
|
+
/** Callback handler called on click. */
|
|
12
|
+
onClick?: MouseEventHandler;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @public
|
|
16
|
+
* Use the `ExternalLink` component to link outside of the
|
|
17
|
+
* Dynatrace platform. For resources within the Dynatrace platform, use the
|
|
18
|
+
* {@link https://developer.dynatrace.com/reference/design-system/preview/typography/Link/ | `Link`}
|
|
19
|
+
* component instead.
|
|
20
|
+
*/
|
|
21
|
+
export declare const ExternalLink: (props: ExternalLinkProps & React.RefAttributes<HTMLAnchorElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var ExternalLink_exports = {};
|
|
29
|
+
__export(ExternalLink_exports, {
|
|
30
|
+
ExternalLink: () => ExternalLink
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(ExternalLink_exports);
|
|
33
|
+
var import_clsx = __toESM(require("clsx"));
|
|
34
|
+
var import_react = __toESM(require("react"));
|
|
35
|
+
var import_react_intl = require("react-intl");
|
|
36
|
+
var import_strato_icons = require("@dynatrace/strato-icons");
|
|
37
|
+
var import_ExternalLink_css = require("./ExternalLink.sty.js");
|
|
38
|
+
var import_core = require("../../core/index.js");
|
|
39
|
+
var import_useFocusRing = require("../../core/styles/useFocusRing.js");
|
|
40
|
+
const ExternalLink = /* @__PURE__ */ (0, import_react.forwardRef)((props, ref) => {
|
|
41
|
+
const {
|
|
42
|
+
children,
|
|
43
|
+
"data-testid": dataTestId,
|
|
44
|
+
"data-dtrum-mask": dataDtrumMask,
|
|
45
|
+
"data-dtrum-allow": dataDtrumAllow,
|
|
46
|
+
className: consumerClassName,
|
|
47
|
+
style: consumerStyle,
|
|
48
|
+
...remainingProps
|
|
49
|
+
} = props;
|
|
50
|
+
const { focusProps, focusClassName } = (0, import_useFocusRing.useFocusRing)({
|
|
51
|
+
variant: "primary",
|
|
52
|
+
isMinimal: true
|
|
53
|
+
});
|
|
54
|
+
const intl = (0, import_react_intl.useIntl)();
|
|
55
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
56
|
+
"a",
|
|
57
|
+
{
|
|
58
|
+
ref,
|
|
59
|
+
target: "_blank",
|
|
60
|
+
rel: "noopener noreferrer",
|
|
61
|
+
"data-testid": dataTestId,
|
|
62
|
+
"data-dtrum-mask": dataDtrumMask,
|
|
63
|
+
"data-dtrum-allow": dataDtrumAllow,
|
|
64
|
+
className: (0, import_clsx.default)(focusClassName, import_ExternalLink_css.externalLinkCSS, consumerClassName),
|
|
65
|
+
style: consumerStyle,
|
|
66
|
+
...(0, import_core._mergeProps)(remainingProps, focusProps)
|
|
67
|
+
},
|
|
68
|
+
children,
|
|
69
|
+
/* @__PURE__ */ import_react.default.createElement("span", null, "\uFEFF", /* @__PURE__ */ import_react.default.createElement(
|
|
70
|
+
import_strato_icons.ExternalLinkIcon,
|
|
71
|
+
{
|
|
72
|
+
"aria-hidden": "false",
|
|
73
|
+
"aria-label": intl.formatMessage({
|
|
74
|
+
defaultMessage: "Opening the link in a new window",
|
|
75
|
+
id: "JzYy8MUVfPcyf4l5",
|
|
76
|
+
description: "External link icon that describes the external link icon"
|
|
77
|
+
})
|
|
78
|
+
}
|
|
79
|
+
))
|
|
80
|
+
);
|
|
81
|
+
});
|
|
82
|
+
ExternalLink.displayName = "ExternalLink";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const externalLinkCSS: string;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var ExternalLink_css_exports = {};
|
|
19
|
+
__export(ExternalLink_css_exports, {
|
|
20
|
+
externalLinkCSS: () => externalLinkCSS
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(ExternalLink_css_exports);
|
|
23
|
+
var import_ExternalLink_css_ts_vanilla = require("./ExternalLink.css");
|
|
24
|
+
var externalLinkCSS = "ExternalLink_externalLinkCSS__8noiqs0";
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
.Heading_headingCSS__u4t9450 {
|
|
2
|
+
margin: 0;
|
|
3
|
+
overflow-wrap: break-word;
|
|
4
|
+
font-style: normal;
|
|
5
|
+
color: var(--dt-colors-text-neutral-default, #2b2a58);
|
|
6
|
+
}
|
|
7
|
+
.Heading_headingCSS_visualLevel_1__u4t9451 {
|
|
8
|
+
font-family: var(--dt-typography-heading-level-1-family, DynatraceFlow,Roboto,Helvetica,sans-serif);
|
|
9
|
+
font-size: var(--dt-typography-heading-level-1-size, 32px);
|
|
10
|
+
font-weight: var(--dt-typography-heading-level-1-weight, 600);
|
|
11
|
+
line-height: var(--dt-typography-heading-level-1-line-height, 1.25);
|
|
12
|
+
text-transform: var(--dt-typography-heading-level-1-text-transform, none);
|
|
13
|
+
text-decoration: var(--dt-typography-heading-level-1-text-decoration, none);
|
|
14
|
+
}
|
|
15
|
+
.Heading_headingCSS_visualLevel_2__u4t9452 {
|
|
16
|
+
font-family: var(--dt-typography-heading-level-2-family, DynatraceFlow,Roboto,Helvetica,sans-serif);
|
|
17
|
+
font-size: var(--dt-typography-heading-level-2-size, 28px);
|
|
18
|
+
font-weight: var(--dt-typography-heading-level-2-weight, 600);
|
|
19
|
+
line-height: var(--dt-typography-heading-level-2-line-height, 1.2857142857);
|
|
20
|
+
text-transform: var(--dt-typography-heading-level-2-text-transform, none);
|
|
21
|
+
text-decoration: var(--dt-typography-heading-level-2-text-decoration, none);
|
|
22
|
+
}
|
|
23
|
+
.Heading_headingCSS_visualLevel_3__u4t9453 {
|
|
24
|
+
font-family: var(--dt-typography-heading-level-3-family, DynatraceFlow,Roboto,Helvetica,sans-serif);
|
|
25
|
+
font-size: var(--dt-typography-heading-level-3-size, 24px);
|
|
26
|
+
font-weight: var(--dt-typography-heading-level-3-weight, 600);
|
|
27
|
+
line-height: var(--dt-typography-heading-level-3-line-height, 1.3333333333);
|
|
28
|
+
text-transform: var(--dt-typography-heading-level-3-text-transform, none);
|
|
29
|
+
text-decoration: var(--dt-typography-heading-level-3-text-decoration, none);
|
|
30
|
+
}
|
|
31
|
+
.Heading_headingCSS_visualLevel_4__u4t9454 {
|
|
32
|
+
font-family: var(--dt-typography-heading-level-4-family, DynatraceFlow,Roboto,Helvetica,sans-serif);
|
|
33
|
+
font-size: var(--dt-typography-heading-level-4-size, 20px);
|
|
34
|
+
font-weight: var(--dt-typography-heading-level-4-weight, 600);
|
|
35
|
+
line-height: var(--dt-typography-heading-level-4-line-height, 1.4);
|
|
36
|
+
text-transform: var(--dt-typography-heading-level-4-text-transform, none);
|
|
37
|
+
text-decoration: var(--dt-typography-heading-level-4-text-decoration, none);
|
|
38
|
+
}
|
|
39
|
+
.Heading_headingCSS_visualLevel_5__u4t9455 {
|
|
40
|
+
font-family: var(--dt-typography-heading-level-5-family, DynatraceFlow,Roboto,Helvetica,sans-serif);
|
|
41
|
+
font-size: var(--dt-typography-heading-level-5-size, 16px);
|
|
42
|
+
font-weight: var(--dt-typography-heading-level-5-weight, 600);
|
|
43
|
+
line-height: var(--dt-typography-heading-level-5-line-height, 1.5);
|
|
44
|
+
text-transform: var(--dt-typography-heading-level-5-text-transform, none);
|
|
45
|
+
text-decoration: var(--dt-typography-heading-level-5-text-decoration, none);
|
|
46
|
+
}
|
|
47
|
+
.Heading_headingCSS_visualLevel_6__u4t9456 {
|
|
48
|
+
font-family: var(--dt-typography-heading-level-6-family, DynatraceFlow,Roboto,Helvetica,sans-serif);
|
|
49
|
+
font-size: var(--dt-typography-heading-level-6-size, 14px);
|
|
50
|
+
font-weight: var(--dt-typography-heading-level-6-weight, 600);
|
|
51
|
+
line-height: var(--dt-typography-heading-level-6-line-height, 1.4285714286);
|
|
52
|
+
text-transform: var(--dt-typography-heading-level-6-text-transform, none);
|
|
53
|
+
text-decoration: var(--dt-typography-heading-level-6-text-decoration, none);
|
|
54
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type DataTestId, type StylingProps, type WithChildren, type MaskingProps } from '../../core/index.js';
|
|
3
|
+
import type { DOMProps } from '../../core/types/dom.js';
|
|
4
|
+
/**
|
|
5
|
+
* @public
|
|
6
|
+
* Props used for the Heading component */
|
|
7
|
+
export interface HeadingProps extends DOMProps, WithChildren, StylingProps, DataTestId, MaskingProps {
|
|
8
|
+
/**
|
|
9
|
+
* The visual level of the heading.
|
|
10
|
+
* @defaultValue 1
|
|
11
|
+
*/
|
|
12
|
+
level?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
13
|
+
/**
|
|
14
|
+
* The polymorphed HTML tag that determines the semantic level of the heading.
|
|
15
|
+
* @defaultValue 'h1'
|
|
16
|
+
*/
|
|
17
|
+
as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @public
|
|
21
|
+
* Use the `Heading` to render semantic HTML heading elements (`h1`, `h2`, etc.).
|
|
22
|
+
* The component allows you to independently define both the visual and the semantic level of the heading.
|
|
23
|
+
*/
|
|
24
|
+
export declare const Heading: (props: HeadingProps & React.RefAttributes<HTMLHeadingElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var Heading_exports = {};
|
|
29
|
+
__export(Heading_exports, {
|
|
30
|
+
Heading: () => Heading
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(Heading_exports);
|
|
33
|
+
var import_clsx = __toESM(require("clsx"));
|
|
34
|
+
var import_react = __toESM(require("react"));
|
|
35
|
+
var import_Heading_css = require("./Heading.sty.js");
|
|
36
|
+
const Heading = /* @__PURE__ */ (0, import_react.forwardRef)((props, forwardedRef) => {
|
|
37
|
+
const {
|
|
38
|
+
level,
|
|
39
|
+
children,
|
|
40
|
+
as,
|
|
41
|
+
"data-testid": dataTestId,
|
|
42
|
+
"data-dtrum-mask": dataDtrumMask,
|
|
43
|
+
"data-dtrum-allow": dataDtrumAllow,
|
|
44
|
+
className: consumerClassName,
|
|
45
|
+
style: consumerStyle,
|
|
46
|
+
...remainingProps
|
|
47
|
+
} = props;
|
|
48
|
+
const visualLevel = level ?? 1;
|
|
49
|
+
const HeadingTag = as ?? `h${visualLevel}`;
|
|
50
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
51
|
+
HeadingTag,
|
|
52
|
+
{
|
|
53
|
+
ref: forwardedRef,
|
|
54
|
+
"data-testid": dataTestId,
|
|
55
|
+
"data-dtrum-mask": dataDtrumMask,
|
|
56
|
+
"data-dtrum-allow": dataDtrumAllow,
|
|
57
|
+
className: (0, import_clsx.default)((0, import_Heading_css.headingCSS)({ visualLevel }), consumerClassName),
|
|
58
|
+
style: consumerStyle,
|
|
59
|
+
...remainingProps
|
|
60
|
+
},
|
|
61
|
+
children
|
|
62
|
+
);
|
|
63
|
+
});
|
|
64
|
+
Heading.displayName = "Heading";
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export declare const headingCSS: import("@vanilla-extract/recipes").RuntimeFn<{
|
|
2
|
+
visualLevel: {
|
|
3
|
+
1: {
|
|
4
|
+
fontFamily: string;
|
|
5
|
+
fontSize: string;
|
|
6
|
+
fontWeight: string;
|
|
7
|
+
lineHeight: string;
|
|
8
|
+
textTransform: any;
|
|
9
|
+
textDecoration: string;
|
|
10
|
+
};
|
|
11
|
+
2: {
|
|
12
|
+
fontFamily: string;
|
|
13
|
+
fontSize: string;
|
|
14
|
+
fontWeight: string;
|
|
15
|
+
lineHeight: string;
|
|
16
|
+
textTransform: any;
|
|
17
|
+
textDecoration: string;
|
|
18
|
+
};
|
|
19
|
+
3: {
|
|
20
|
+
fontFamily: string;
|
|
21
|
+
fontSize: string;
|
|
22
|
+
fontWeight: string;
|
|
23
|
+
lineHeight: string;
|
|
24
|
+
textTransform: any;
|
|
25
|
+
textDecoration: string;
|
|
26
|
+
};
|
|
27
|
+
4: {
|
|
28
|
+
fontFamily: string;
|
|
29
|
+
fontSize: string;
|
|
30
|
+
fontWeight: string;
|
|
31
|
+
lineHeight: string;
|
|
32
|
+
textTransform: any;
|
|
33
|
+
textDecoration: string;
|
|
34
|
+
};
|
|
35
|
+
5: {
|
|
36
|
+
fontFamily: string;
|
|
37
|
+
fontSize: string;
|
|
38
|
+
fontWeight: string;
|
|
39
|
+
lineHeight: string;
|
|
40
|
+
textTransform: any;
|
|
41
|
+
textDecoration: string;
|
|
42
|
+
};
|
|
43
|
+
6: {
|
|
44
|
+
fontFamily: string;
|
|
45
|
+
fontSize: string;
|
|
46
|
+
fontWeight: string;
|
|
47
|
+
lineHeight: string;
|
|
48
|
+
textTransform: any;
|
|
49
|
+
textDecoration: string;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
}>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var Heading_css_exports = {};
|
|
19
|
+
__export(Heading_css_exports, {
|
|
20
|
+
headingCSS: () => headingCSS
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(Heading_css_exports);
|
|
23
|
+
var import_Heading_css_ts_vanilla = require("./Heading.css");
|
|
24
|
+
var import_createRuntimeFn = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
25
|
+
var headingCSS = (0, import_createRuntimeFn.createRuntimeFn)({ defaultClassName: "Heading_headingCSS__u4t9450", variantClassNames: { visualLevel: { "1": "Heading_headingCSS_visualLevel_1__u4t9451", "2": "Heading_headingCSS_visualLevel_2__u4t9452", "3": "Heading_headingCSS_visualLevel_3__u4t9453", "4": "Heading_headingCSS_visualLevel_4__u4t9454", "5": "Heading_headingCSS_visualLevel_5__u4t9455", "6": "Heading_headingCSS_visualLevel_6__u4t9456" } }, defaultVariants: {}, compoundVariants: [] });
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { type DataTestId, type WithChildren } from '../../core/index.js';
|
|
3
|
+
import type { MaskingProps } from '../../core/types/masking-props.js';
|
|
4
|
+
/**
|
|
5
|
+
* The props for the Heading component.
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export interface HighlightProps extends WithChildren, DataTestId, MaskingProps {
|
|
9
|
+
/**
|
|
10
|
+
* Either a substring or an array of multiple different substrings that
|
|
11
|
+
* should be highlighted in the projected content.
|
|
12
|
+
* Every occurrence of the string(s) is highlighted accordingly.
|
|
13
|
+
*/
|
|
14
|
+
term: string | string[];
|
|
15
|
+
/**
|
|
16
|
+
* Property that determines whether the highlighting search is case-sensitive.
|
|
17
|
+
* If set to `true`, the component searches for case sensitive occurrences.
|
|
18
|
+
* @defaultValue false
|
|
19
|
+
*/
|
|
20
|
+
caseSensitive?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @public
|
|
24
|
+
* Use the `Highlight` component to highlight one or more substrings within a
|
|
25
|
+
* text.
|
|
26
|
+
*/
|
|
27
|
+
export declare const Highlight: (props: HighlightProps) => ReactElement;
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var Highlight_exports = {};
|
|
29
|
+
__export(Highlight_exports, {
|
|
30
|
+
Highlight: () => Highlight
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(Highlight_exports);
|
|
33
|
+
var import_clsx = __toESM(require("clsx"));
|
|
34
|
+
var import_react = __toESM(require("react"));
|
|
35
|
+
var import_Highlight_css = require("./Highlight.sty.js");
|
|
36
|
+
const HTML_CHARS_OVERRIDES = [
|
|
37
|
+
[/</g, "<"],
|
|
38
|
+
[/>/g, ">"],
|
|
39
|
+
[/&/g, "&"],
|
|
40
|
+
[/ /g, " "]
|
|
41
|
+
];
|
|
42
|
+
function escapeRegExp(text) {
|
|
43
|
+
return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
44
|
+
}
|
|
45
|
+
function highlightChildren(children, term, caseSensitive, dataTestId, dataDtrumMask, dataDtrumAllow) {
|
|
46
|
+
const terms = (() => {
|
|
47
|
+
if (Array.isArray(term)) {
|
|
48
|
+
return term.filter((t) => t);
|
|
49
|
+
}
|
|
50
|
+
return term ? [term] : [];
|
|
51
|
+
})();
|
|
52
|
+
return terms.length > 0 ? import_react.default.Children.map(
|
|
53
|
+
children,
|
|
54
|
+
(child) => highlightRecursive(
|
|
55
|
+
child,
|
|
56
|
+
terms,
|
|
57
|
+
caseSensitive,
|
|
58
|
+
dataTestId,
|
|
59
|
+
dataDtrumMask,
|
|
60
|
+
dataDtrumAllow
|
|
61
|
+
)
|
|
62
|
+
) : children;
|
|
63
|
+
}
|
|
64
|
+
function highlightRecursive(sourceElement, terms, caseSensitive, dataTestId, dataDtrumMask, dataDtrumAllow) {
|
|
65
|
+
if (!sourceElement) {
|
|
66
|
+
return sourceElement;
|
|
67
|
+
}
|
|
68
|
+
if (import_react.default.isValidElement(sourceElement)) {
|
|
69
|
+
const children = import_react.default.Children.map(
|
|
70
|
+
sourceElement.props.children,
|
|
71
|
+
(child) => highlightRecursive(
|
|
72
|
+
child,
|
|
73
|
+
terms,
|
|
74
|
+
caseSensitive,
|
|
75
|
+
dataTestId,
|
|
76
|
+
dataDtrumMask,
|
|
77
|
+
dataDtrumAllow
|
|
78
|
+
)
|
|
79
|
+
);
|
|
80
|
+
return import_react.default.cloneElement(sourceElement, sourceElement.props, children);
|
|
81
|
+
}
|
|
82
|
+
return highlightLeafElement(
|
|
83
|
+
sourceElement,
|
|
84
|
+
terms,
|
|
85
|
+
caseSensitive,
|
|
86
|
+
dataTestId,
|
|
87
|
+
dataDtrumMask,
|
|
88
|
+
dataDtrumAllow
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
function highlightLeafElement(textContent, terms, caseSensitive, dataTestId, dataDtrumMask, dataDtrumAllow) {
|
|
92
|
+
if (terms.length === 0) {
|
|
93
|
+
return textContent;
|
|
94
|
+
}
|
|
95
|
+
const sanitizedTextContent = HTML_CHARS_OVERRIDES.reduce(
|
|
96
|
+
(text, [needle, replacement]) => text.replace(needle, replacement),
|
|
97
|
+
`${textContent}`
|
|
98
|
+
);
|
|
99
|
+
const termsInLowerCase = terms.map((t) => t.toLowerCase());
|
|
100
|
+
return getTextTokens(sanitizedTextContent, terms, caseSensitive).map(
|
|
101
|
+
(token) => termsInLowerCase.includes(token.toLowerCase()) ? /* @__PURE__ */ import_react.default.createElement(
|
|
102
|
+
"mark",
|
|
103
|
+
{
|
|
104
|
+
role: "mark",
|
|
105
|
+
className: (0, import_clsx.default)(import_Highlight_css.highlightCSS),
|
|
106
|
+
"data-dtrum-mask": dataDtrumMask,
|
|
107
|
+
"data-dtrum-allow": dataDtrumAllow
|
|
108
|
+
},
|
|
109
|
+
token
|
|
110
|
+
) : /* @__PURE__ */ import_react.default.createElement("span", null, token)
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
function getTextTokens(textContent, terms, caseSensitive) {
|
|
114
|
+
const flags = caseSensitive ? "gm" : "gmi";
|
|
115
|
+
const regExp = new RegExp(
|
|
116
|
+
`(${terms.map((t) => escapeRegExp(t)).join("|")})`,
|
|
117
|
+
flags
|
|
118
|
+
);
|
|
119
|
+
return textContent.toString().split(regExp).filter((s) => s.length > 0);
|
|
120
|
+
}
|
|
121
|
+
const Highlight = (props) => {
|
|
122
|
+
const {
|
|
123
|
+
children,
|
|
124
|
+
term,
|
|
125
|
+
caseSensitive = false,
|
|
126
|
+
"data-testid": dataTestId,
|
|
127
|
+
"data-dtrum-mask": dataDtrumMask,
|
|
128
|
+
"data-dtrum-allow": dataDtrumAllow
|
|
129
|
+
} = props;
|
|
130
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, highlightChildren(
|
|
131
|
+
children,
|
|
132
|
+
term,
|
|
133
|
+
caseSensitive,
|
|
134
|
+
dataTestId,
|
|
135
|
+
dataDtrumMask,
|
|
136
|
+
dataDtrumAllow
|
|
137
|
+
));
|
|
138
|
+
};
|
|
139
|
+
Highlight.displayName = "Highlight";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const highlightCSS: string;
|