@ndla/ui 56.0.166-alpha.0 → 56.0.168-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -11
- package/dist/panda.buildinfo.json +9 -9
- package/dist/styles.css +38 -36
- package/es/AnchorHeading/AnchorHeading.mjs +43 -0
- package/es/AnchorHeading/AnchorHeading.mjs.map +1 -0
- package/es/CodeBlock/codeLanguageOptions.mjs.map +1 -1
- package/es/ContactBlock/ContactBlock.mjs.map +1 -1
- package/es/ContentTypeBadge/ContentTypeBadge.mjs.map +1 -1
- package/es/Embed/ImageEmbed.mjs.map +1 -1
- package/es/Grid/Grid.mjs +2 -2
- package/es/Grid/Grid.mjs.map +1 -1
- package/es/_virtual/rolldown_runtime.mjs +2 -2
- package/es/index.mjs +2 -2
- package/es/locale/messages-en.mjs +1 -0
- package/es/locale/messages-en.mjs.map +1 -1
- package/es/locale/messages-nb.mjs +1 -0
- package/es/locale/messages-nb.mjs.map +1 -1
- package/es/locale/messages-nn.mjs +1 -0
- package/es/locale/messages-nn.mjs.map +1 -1
- package/es/locale/messages-se.mjs +1 -0
- package/es/locale/messages-se.mjs.map +1 -1
- package/es/model/ContentType.mjs.map +1 -1
- package/es/model/SubjectCategories.mjs +2 -2
- package/es/model/SubjectTypes.mjs +2 -2
- package/es/model/WordClass.mjs +2 -2
- package/lib/{CopyParagraphButton/CopyParagraphButton.d.ts → AnchorHeading/AnchorHeading.d.ts} +1 -1
- package/lib/AnchorHeading/AnchorHeading.js +44 -0
- package/lib/AnchorHeading/AnchorHeading.js.map +1 -0
- package/lib/Article/Article.js +14 -14
- package/lib/Article/Article.js.map +1 -1
- package/lib/Article/ArticleByline.js +13 -13
- package/lib/Article/ArticleByline.js.map +1 -1
- package/lib/Article/ArticleFootNotes.js +5 -5
- package/lib/Article/ArticleFootNotes.js.map +1 -1
- package/lib/Article/BadgesContainer.js +2 -2
- package/lib/Article/BadgesContainer.js.map +1 -1
- package/lib/AudioPlayer/AudioPlayer.js +16 -16
- package/lib/AudioPlayer/AudioPlayer.js.map +1 -1
- package/lib/AudioPlayer/Controls.js +35 -35
- package/lib/AudioPlayer/Controls.js.map +1 -1
- package/lib/AudioPlayer/SpeechControl.js +4 -4
- package/lib/AudioPlayer/SpeechControl.js.map +1 -1
- package/lib/Breadcrumb/Breadcrumb.js +2 -2
- package/lib/Breadcrumb/Breadcrumb.js.map +1 -1
- package/lib/Breadcrumb/BreadcrumbItem.js +2 -2
- package/lib/Breadcrumb/BreadcrumbItem.js.map +1 -1
- package/lib/Breadcrumb/HomeBreadcrumb.js +8 -8
- package/lib/Breadcrumb/HomeBreadcrumb.js.map +1 -1
- package/lib/CampaignBlock/CampaignBlock.js +12 -12
- package/lib/CampaignBlock/CampaignBlock.js.map +1 -1
- package/lib/CodeBlock/CodeBlock.js +4 -4
- package/lib/CodeBlock/CodeBlock.js.map +1 -1
- package/lib/CodeBlock/codeLanguageOptions.js.map +1 -1
- package/lib/Concept/Concept.js +4 -4
- package/lib/Concept/Concept.js.map +1 -1
- package/lib/ContactBlock/ContactBlock.js +12 -12
- package/lib/ContactBlock/ContactBlock.js.map +1 -1
- package/lib/ContentTypeBadge/ContentTypeBadge.js +2 -2
- package/lib/ContentTypeBadge/ContentTypeBadge.js.map +1 -1
- package/lib/Embed/AudioEmbed.js +3 -3
- package/lib/Embed/AudioEmbed.js.map +1 -1
- package/lib/Embed/BrightcoveEmbed.js +5 -5
- package/lib/Embed/BrightcoveEmbed.js.map +1 -1
- package/lib/Embed/CodeEmbed.js +7 -7
- package/lib/Embed/CodeEmbed.js.map +1 -1
- package/lib/Embed/ConceptEmbed.js +7 -7
- package/lib/Embed/ConceptEmbed.js.map +1 -1
- package/lib/Embed/ConceptInlineTriggerButton.js +2 -2
- package/lib/Embed/ConceptInlineTriggerButton.js.map +1 -1
- package/lib/Embed/ContentLinkEmbed.js +2 -2
- package/lib/Embed/CopyrightEmbed.js +2 -2
- package/lib/Embed/CopyrightEmbed.js.map +1 -1
- package/lib/Embed/EmbedErrorPlaceholder.js +6 -6
- package/lib/Embed/EmbedErrorPlaceholder.js.map +1 -1
- package/lib/Embed/EmbedWrapper.js +6 -6
- package/lib/Embed/EmbedWrapper.js.map +1 -1
- package/lib/Embed/ExternalEmbed.js +4 -4
- package/lib/Embed/ExternalEmbed.js.map +1 -1
- package/lib/Embed/FootnoteEmbed.js +2 -2
- package/lib/Embed/FootnoteEmbed.js.map +1 -1
- package/lib/Embed/GlossEmbed.js +9 -9
- package/lib/Embed/GlossEmbed.js.map +1 -1
- package/lib/Embed/H5pEmbed.js +4 -4
- package/lib/Embed/H5pEmbed.js.map +1 -1
- package/lib/Embed/IframeEmbed.js +4 -4
- package/lib/Embed/IframeEmbed.js.map +1 -1
- package/lib/Embed/ImageEmbed.js +8 -8
- package/lib/Embed/ImageEmbed.js.map +1 -1
- package/lib/Embed/InlineTriggerButton.js +4 -4
- package/lib/Embed/InlineTriggerButton.js.map +1 -1
- package/lib/Embed/UnknownEmbed.js +2 -2
- package/lib/Embed/UuDisclaimerEmbed.js +11 -11
- package/lib/Embed/UuDisclaimerEmbed.js.map +1 -1
- package/lib/FactBox/FactBox.js +7 -7
- package/lib/FactBox/FactBox.js.map +1 -1
- package/lib/FileList/File.js +13 -13
- package/lib/FileList/File.js.map +1 -1
- package/lib/FileList/FileList.js +4 -4
- package/lib/FileList/FileList.js.map +1 -1
- package/lib/FileList/PdfFile.js +6 -6
- package/lib/FileList/PdfFile.js.map +1 -1
- package/lib/Gloss/Gloss.js +19 -19
- package/lib/Gloss/Gloss.js.map +1 -1
- package/lib/Gloss/GlossExample.js +6 -6
- package/lib/Gloss/GlossExample.js.map +1 -1
- package/lib/Grid/Grid.js +5 -5
- package/lib/Grid/Grid.js.map +1 -1
- package/lib/KeyFigure/KeyFigure.js +5 -5
- package/lib/KeyFigure/KeyFigure.js.map +1 -1
- package/lib/LicenseByline/EmbedByline.js +15 -15
- package/lib/LicenseByline/EmbedByline.js.map +1 -1
- package/lib/LicenseByline/LicenseLink.js +3 -3
- package/lib/LicenseByline/LicenseLink.js.map +1 -1
- package/lib/LinkBlock/LinkBlock.js +10 -10
- package/lib/LinkBlock/LinkBlock.js.map +1 -1
- package/lib/LinkBlock/LinkBlockSection.js +2 -2
- package/lib/LinkBlock/LinkBlockSection.js.map +1 -1
- package/lib/Pitch/Pitch.js +10 -10
- package/lib/Pitch/Pitch.js.map +1 -1
- package/lib/RelatedArticleList/RelatedArticleList.js +19 -19
- package/lib/RelatedArticleList/RelatedArticleList.js.map +1 -1
- package/lib/ResourceBox/ResourceBox.js +13 -13
- package/lib/ResourceBox/ResourceBox.js.map +1 -1
- package/lib/TagSelector/TagSelector.js +22 -22
- package/lib/TagSelector/TagSelector.js.map +1 -1
- package/lib/ZendeskButton/ZendeskButton.js +2 -2
- package/lib/_virtual/rolldown_runtime.js +2 -2
- package/lib/index.d.ts +1 -1
- package/lib/index.js +6 -6
- package/lib/locale/messages-en.d.ts +1 -0
- package/lib/locale/messages-en.js +3 -2
- package/lib/locale/messages-en.js.map +1 -1
- package/lib/locale/messages-nb.d.ts +1 -0
- package/lib/locale/messages-nb.js +3 -2
- package/lib/locale/messages-nb.js.map +1 -1
- package/lib/locale/messages-nn.d.ts +1 -0
- package/lib/locale/messages-nn.js +3 -2
- package/lib/locale/messages-nn.js.map +1 -1
- package/lib/locale/messages-se.d.ts +1 -0
- package/lib/locale/messages-se.js +3 -2
- package/lib/locale/messages-se.js.map +1 -1
- package/lib/model/ContentType.js.map +1 -1
- package/lib/model/SubjectCategories.js +1 -1
- package/lib/model/SubjectTypes.js +1 -1
- package/lib/model/WordClass.js +1 -1
- package/lib/utils/licenseAttributes.js +2 -2
- package/lib/utils/licenseAttributes.js.map +1 -1
- package/package.json +10 -10
- package/src/AnchorHeading/AnchorHeading.tsx +60 -0
- package/src/Embed/UuDisclaimerEmbed.stories.tsx +8 -8
- package/src/Grid/Grid.tsx +4 -2
- package/src/index.ts +1 -1
- package/src/locale/messages-en.ts +1 -0
- package/src/locale/messages-nb.ts +1 -0
- package/src/locale/messages-nn.ts +1 -0
- package/src/locale/messages-se.ts +1 -0
- package/es/CopyParagraphButton/CopyParagraphButton.mjs +0 -69
- package/es/CopyParagraphButton/CopyParagraphButton.mjs.map +0 -1
- package/lib/CopyParagraphButton/CopyParagraphButton.js +0 -70
- package/lib/CopyParagraphButton/CopyParagraphButton.js.map +0 -1
- package/src/CopyParagraphButton/CopyParagraphButton.tsx +0 -87
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2021-present, NDLA.
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the GPLv3 license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
|
6
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { type ReactNode, useCallback, useEffect, useMemo, useState } from "react";
|
|
10
|
-
import { useTranslation } from "react-i18next";
|
|
11
|
-
import { LinkMedium } from "@ndla/icons";
|
|
12
|
-
import { IconButton } from "@ndla/primitives";
|
|
13
|
-
import { styled } from "@ndla/styled-system/jsx";
|
|
14
|
-
|
|
15
|
-
const ContainerDiv = styled("div", {
|
|
16
|
-
base: {
|
|
17
|
-
position: "relative",
|
|
18
|
-
_hover: {
|
|
19
|
-
"& [data-copy-button]": {
|
|
20
|
-
opacity: "1",
|
|
21
|
-
cursor: "pointer",
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
const StyledIconButton = styled(IconButton, {
|
|
28
|
-
base: {
|
|
29
|
-
position: "absolute",
|
|
30
|
-
left: "-xxlarge",
|
|
31
|
-
top: "-4xsmall",
|
|
32
|
-
opacity: "0",
|
|
33
|
-
cursor: "pointer",
|
|
34
|
-
"&:focus, &:focus-visible, &:active": {
|
|
35
|
-
opacity: "1",
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
interface Props {
|
|
41
|
-
// What to render within the h2
|
|
42
|
-
children: ReactNode;
|
|
43
|
-
copyText: string;
|
|
44
|
-
lang?: string;
|
|
45
|
-
}
|
|
46
|
-
export const CopyParagraphButton = ({ children, copyText, lang }: Props) => {
|
|
47
|
-
const [hasCopied, setHasCopied] = useState(false);
|
|
48
|
-
const { t } = useTranslation();
|
|
49
|
-
const sanitizedTitle = useMemo(() => encodeURIComponent(copyText.replace(/ /g, "-")), [copyText]);
|
|
50
|
-
|
|
51
|
-
useEffect(() => {
|
|
52
|
-
if (hasCopied) {
|
|
53
|
-
setTimeout(() => setHasCopied(false), 3000);
|
|
54
|
-
}
|
|
55
|
-
}, [hasCopied]);
|
|
56
|
-
|
|
57
|
-
const onCopyClick = useCallback(async () => {
|
|
58
|
-
const { location } = window;
|
|
59
|
-
const newHash = `#${sanitizedTitle}`;
|
|
60
|
-
const port = location.port ? `:${location.port}` : "";
|
|
61
|
-
const urlToCopy = `${location.protocol}//${location.hostname}${port}${location.pathname}${location.search}${newHash}`;
|
|
62
|
-
try {
|
|
63
|
-
await navigator.clipboard.writeText(urlToCopy);
|
|
64
|
-
setHasCopied(true);
|
|
65
|
-
} catch {
|
|
66
|
-
// do nothing
|
|
67
|
-
}
|
|
68
|
-
}, [sanitizedTitle]);
|
|
69
|
-
|
|
70
|
-
const tooltip = hasCopied ? t("article.copyPageLinkCopied") : t("article.copyHeaderLink");
|
|
71
|
-
return (
|
|
72
|
-
<ContainerDiv data-embed-type="copy-heading">
|
|
73
|
-
<StyledIconButton
|
|
74
|
-
variant="clear"
|
|
75
|
-
data-copy-button=""
|
|
76
|
-
onClick={onCopyClick}
|
|
77
|
-
title={tooltip}
|
|
78
|
-
aria-label={`${tooltip}: ${copyText}`}
|
|
79
|
-
>
|
|
80
|
-
<LinkMedium />
|
|
81
|
-
</StyledIconButton>
|
|
82
|
-
<h2 id={sanitizedTitle} tabIndex={-1} lang={lang}>
|
|
83
|
-
{children}
|
|
84
|
-
</h2>
|
|
85
|
-
</ContainerDiv>
|
|
86
|
-
);
|
|
87
|
-
};
|