@ndla/ui 56.0.38-alpha.0 → 56.0.39-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/dist/panda.buildinfo.json +2 -0
- package/dist/styles.css +10 -0
- package/es/Embed/CopyrightEmbed.js +10 -1
- package/es/Embed/EmbedWrapper.js +24 -0
- package/es/Embed/UuDisclaimerEmbed.js +6 -2
- package/es/Embed/index.js +2 -1
- package/es/LicenseByline/EmbedByline.js +8 -4
- package/es/LicenseByline/LicenseLink.js +11 -1
- package/es/index.js +1 -1
- package/es/locale/messages-en.js +1 -4
- package/es/locale/messages-nb.js +1 -4
- package/es/locale/messages-nn.js +1 -4
- package/es/locale/messages-se.js +1 -4
- package/es/locale/messages-sma.js +1 -4
- package/lib/Embed/CopyrightEmbed.js +10 -1
- package/lib/Embed/EmbedWrapper.d.ts +11 -0
- package/lib/Embed/EmbedWrapper.js +30 -0
- package/lib/Embed/UuDisclaimerEmbed.js +6 -2
- package/lib/Embed/index.d.ts +1 -0
- package/lib/Embed/index.js +7 -0
- package/lib/LicenseByline/EmbedByline.js +8 -4
- package/lib/LicenseByline/LicenseLink.d.ts +2 -1
- package/lib/LicenseByline/LicenseLink.js +11 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +6 -0
- package/lib/locale/messages-en.d.ts +1 -4
- package/lib/locale/messages-en.js +1 -4
- package/lib/locale/messages-nb.d.ts +1 -4
- package/lib/locale/messages-nb.js +1 -4
- package/lib/locale/messages-nn.d.ts +1 -4
- package/lib/locale/messages-nn.js +1 -4
- package/lib/locale/messages-se.d.ts +1 -4
- package/lib/locale/messages-se.js +1 -4
- package/lib/locale/messages-sma.d.ts +1 -4
- package/lib/locale/messages-sma.js +1 -4
- package/package.json +6 -6
- package/src/Embed/CopyrightEmbed.tsx +8 -1
- package/src/Embed/EmbedWrapper.tsx +25 -0
- package/src/Embed/UuDisclaimerEmbed.tsx +2 -1
- package/src/Embed/index.ts +1 -0
- package/src/LicenseByline/EmbedByline.tsx +11 -6
- package/src/LicenseByline/LicenseLink.tsx +9 -2
- package/src/index.ts +1 -0
- package/src/locale/messages-en.ts +2 -5
- package/src/locale/messages-nb.ts +2 -5
- package/src/locale/messages-nn.ts +2 -5
- package/src/locale/messages-se.ts +2 -5
- package/src/locale/messages-sma.ts +2 -5
|
@@ -247,6 +247,7 @@
|
|
|
247
247
|
"width]___[value:surface.xlarge",
|
|
248
248
|
"maxHeight]___[value:50vh",
|
|
249
249
|
"overflowY]___[value:auto",
|
|
250
|
+
"marginBlockEnd]___[value:xsmall",
|
|
250
251
|
"background]___[value:background.subtle",
|
|
251
252
|
"height]___[value:5xlarge]___[cond:& svg",
|
|
252
253
|
"width]___[value:5xlarge]___[cond:& svg",
|
|
@@ -412,6 +413,7 @@
|
|
|
412
413
|
"color]___[value:text.link",
|
|
413
414
|
"whiteSpace]___[value:nowrap",
|
|
414
415
|
"textDecoration]___[value:none]___[cond:_focusWithin",
|
|
416
|
+
"display]___[value:none]___[cond:mobileWideDown<___>_disabled",
|
|
415
417
|
"textDecoration]___[value:underline]___[cond:& h3",
|
|
416
418
|
"transitionProperty]___[value:width, height]___[cond:& [data-forward]",
|
|
417
419
|
"transitionTimingFunction]___[value:ease-in-out]___[cond:& [data-forward]",
|
package/dist/styles.css
CHANGED
|
@@ -498,6 +498,10 @@
|
|
|
498
498
|
max-height: 50vh;
|
|
499
499
|
}
|
|
500
500
|
|
|
501
|
+
.mbe_xsmall {
|
|
502
|
+
margin-block-end: var(--spacing-xsmall);
|
|
503
|
+
}
|
|
504
|
+
|
|
501
505
|
.bg_background\.subtle {
|
|
502
506
|
background: var(--colors-background-subtle);
|
|
503
507
|
}
|
|
@@ -1763,6 +1767,12 @@
|
|
|
1763
1767
|
.mobileWideDown\:open\:max-h_none:is([open], [data-open], [data-state="open"]) {
|
|
1764
1768
|
max-height: none;
|
|
1765
1769
|
}
|
|
1770
|
+
}
|
|
1771
|
+
|
|
1772
|
+
@media screen and (max-width: 29.7475rem) {
|
|
1773
|
+
.mobileWideDown\:disabled\:d_none:is(:disabled, [disabled], [data-disabled], [aria-disabled='true']) {
|
|
1774
|
+
display: none;
|
|
1775
|
+
}
|
|
1766
1776
|
}
|
|
1767
1777
|
|
|
1768
1778
|
@media screen and (max-width: 19.9975rem) {
|
|
@@ -6,8 +6,14 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
import { styled } from "@ndla/styled-system/jsx";
|
|
9
10
|
import { EmbedByline } from "../LicenseByline";
|
|
10
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
+
const StyledCopyrightContent = styled("div", {
|
|
13
|
+
base: {
|
|
14
|
+
marginBlockEnd: "xsmall"
|
|
15
|
+
}
|
|
16
|
+
});
|
|
11
17
|
const CopyrightEmbed = _ref => {
|
|
12
18
|
let {
|
|
13
19
|
embed,
|
|
@@ -15,7 +21,10 @@ const CopyrightEmbed = _ref => {
|
|
|
15
21
|
} = _ref;
|
|
16
22
|
return /*#__PURE__*/_jsxs("figure", {
|
|
17
23
|
"data-embed-type": "copyright",
|
|
18
|
-
children: [
|
|
24
|
+
children: [/*#__PURE__*/_jsx(StyledCopyrightContent, {
|
|
25
|
+
"data-copyright-content": "",
|
|
26
|
+
children: children
|
|
27
|
+
}), /*#__PURE__*/_jsx(EmbedByline, {
|
|
19
28
|
type: "copyright",
|
|
20
29
|
copyright: embed.embedData.copyright
|
|
21
30
|
})]
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2024-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 { forwardRef } from "react";
|
|
10
|
+
import { ark } from "@ark-ui/react";
|
|
11
|
+
import { styled } from "@ndla/styled-system/jsx";
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
const StyledEmbedWrapper = styled(ark.div, {
|
|
14
|
+
base: {
|
|
15
|
+
position: "relative"
|
|
16
|
+
}
|
|
17
|
+
}, {
|
|
18
|
+
baseComponent: true
|
|
19
|
+
});
|
|
20
|
+
export const EmbedWrapper = /*#__PURE__*/forwardRef((props, ref) => /*#__PURE__*/_jsx(StyledEmbedWrapper, {
|
|
21
|
+
"data-embed-wrapper": "",
|
|
22
|
+
...props,
|
|
23
|
+
ref: ref
|
|
24
|
+
}));
|
|
@@ -15,7 +15,8 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
15
15
|
const StyledMessageBox = styled(MessageBox, {
|
|
16
16
|
base: {
|
|
17
17
|
display: "flex",
|
|
18
|
-
alignItems: "center"
|
|
18
|
+
alignItems: "center",
|
|
19
|
+
marginBlockEnd: "xsmall"
|
|
19
20
|
}
|
|
20
21
|
});
|
|
21
22
|
const Disclaimer = styled("div", {
|
|
@@ -55,7 +56,10 @@ const UuDisclaimerEmbed = _ref => {
|
|
|
55
56
|
children: [/*#__PURE__*/_jsx(InformationLine, {}), /*#__PURE__*/_jsxs(Disclaimer, {
|
|
56
57
|
children: [embedData.disclaimer, disclaimerLink]
|
|
57
58
|
})]
|
|
58
|
-
}),
|
|
59
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
60
|
+
"data-uu-content": "",
|
|
61
|
+
children: children
|
|
62
|
+
})]
|
|
59
63
|
});
|
|
60
64
|
};
|
|
61
65
|
export default UuDisclaimerEmbed;
|
package/es/Embed/index.js
CHANGED
|
@@ -20,4 +20,5 @@ export { ConceptEmbed, InlineConcept, BlockConcept } from "./ConceptEmbed";
|
|
|
20
20
|
export { default as UnknownEmbed } from "./UnknownEmbed";
|
|
21
21
|
export { default as UuDisclaimerEmbed } from "./UuDisclaimerEmbed";
|
|
22
22
|
export { default as CopyrightEmbed } from "./CopyrightEmbed";
|
|
23
|
-
export { default as CodeEmbed } from "./CodeEmbed";
|
|
23
|
+
export { default as CodeEmbed } from "./CodeEmbed";
|
|
24
|
+
export { EmbedWrapper } from "./EmbedWrapper";
|
|
@@ -19,7 +19,6 @@ const BylineWrapper = styled("figcaption", {
|
|
|
19
19
|
display: "flex",
|
|
20
20
|
flexDirection: "column",
|
|
21
21
|
paddingBlock: "xsmall",
|
|
22
|
-
background: "surface.default",
|
|
23
22
|
textStyle: "label.medium",
|
|
24
23
|
color: "text.subtle"
|
|
25
24
|
}
|
|
@@ -144,9 +143,10 @@ const StyledButton = styled(Button, {
|
|
|
144
143
|
});
|
|
145
144
|
const LicenseDescription = _ref2 => {
|
|
146
145
|
let {
|
|
147
|
-
children
|
|
146
|
+
children,
|
|
147
|
+
isOpen,
|
|
148
|
+
setIsOpen
|
|
148
149
|
} = _ref2;
|
|
149
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
150
150
|
const open = isOpen ? {
|
|
151
151
|
"data-open": ""
|
|
152
152
|
} : {};
|
|
@@ -184,18 +184,22 @@ export const LicenseContainerContent = _ref3 => {
|
|
|
184
184
|
const license = copyright ? getLicenseByAbbreviation(copyright.license?.license ?? "", i18n.language) : undefined;
|
|
185
185
|
const authors = getLicenseCredits(copyright);
|
|
186
186
|
const captionAuthors = Object.values(authors).find(i => i.length > 0) ?? [];
|
|
187
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
187
188
|
const content = /*#__PURE__*/_jsxs(_Fragment, {
|
|
188
189
|
children: [children, ` ${t(`embed.type.${type}`)}${captionAuthors.length ? ": " : ""}`, /*#__PURE__*/_jsx("span", {
|
|
189
190
|
property: "cc:attributionName",
|
|
190
191
|
children: captionAuthors.map(author => author.name).join(", ")
|
|
191
192
|
}), license ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
192
193
|
children: [" / ", /*#__PURE__*/_jsx(LicenseLink, {
|
|
193
|
-
license: license
|
|
194
|
+
license: license,
|
|
195
|
+
hideLink: !isOpen && !!children
|
|
194
196
|
})]
|
|
195
197
|
}) : null]
|
|
196
198
|
});
|
|
197
199
|
if (children) {
|
|
198
200
|
return /*#__PURE__*/_jsx(LicenseDescription, {
|
|
201
|
+
isOpen: isOpen,
|
|
202
|
+
setIsOpen: setIsOpen,
|
|
199
203
|
children: content
|
|
200
204
|
});
|
|
201
205
|
}
|
|
@@ -19,13 +19,22 @@ const StyledSafeLink = styled(SafeLink, {
|
|
|
19
19
|
},
|
|
20
20
|
_focusWithin: {
|
|
21
21
|
textDecoration: "none"
|
|
22
|
+
},
|
|
23
|
+
mobileWideDown: {
|
|
24
|
+
_disabled: {
|
|
25
|
+
display: "none"
|
|
26
|
+
}
|
|
22
27
|
}
|
|
23
28
|
}
|
|
24
29
|
});
|
|
25
30
|
export const LicenseLink = _ref => {
|
|
26
31
|
let {
|
|
27
|
-
license
|
|
32
|
+
license,
|
|
33
|
+
hideLink
|
|
28
34
|
} = _ref;
|
|
35
|
+
const disabled = hideLink ? {
|
|
36
|
+
"data-disabled": ""
|
|
37
|
+
} : {};
|
|
29
38
|
if (license.abbreviation === "unknown") {
|
|
30
39
|
return null;
|
|
31
40
|
}
|
|
@@ -33,6 +42,7 @@ export const LicenseLink = _ref => {
|
|
|
33
42
|
return /*#__PURE__*/_jsx(StyledSafeLink, {
|
|
34
43
|
to: license.url,
|
|
35
44
|
rel: "license",
|
|
45
|
+
...disabled,
|
|
36
46
|
children: license.abbreviation
|
|
37
47
|
});
|
|
38
48
|
}
|
package/es/index.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
// Move components to this file when they are migrated to typescript
|
|
11
11
|
|
|
12
12
|
export { Concept } from "./Concept/Concept";
|
|
13
|
-
export { ImageEmbed, getCrop, getFocalPoint, AudioEmbed, H5pEmbed, ExternalEmbed, IframeEmbed, FootnoteEmbed, BrightcoveEmbed, ContentLinkEmbed, RelatedContentEmbed, ConceptEmbed, UnknownEmbed, InlineConcept, BlockConcept, UuDisclaimerEmbed, CopyrightEmbed, CodeEmbed, InlineTriggerButton } from "./Embed";
|
|
13
|
+
export { ImageEmbed, getCrop, getFocalPoint, AudioEmbed, H5pEmbed, ExternalEmbed, IframeEmbed, FootnoteEmbed, BrightcoveEmbed, ContentLinkEmbed, RelatedContentEmbed, ConceptEmbed, UnknownEmbed, InlineConcept, BlockConcept, UuDisclaimerEmbed, CopyrightEmbed, CodeEmbed, InlineTriggerButton, EmbedWrapper } from "./Embed";
|
|
14
14
|
export { LicenseLink, EmbedByline } from "./LicenseByline";
|
|
15
15
|
export { ArticleByline, ArticleBylineAccordionItem, ArticleFootNotes, ArticleWrapper, Article, ArticleFooter, ArticleHeader, ArticleContent, ArticleHGroup, ArticleTitle } from "./Article";
|
|
16
16
|
export { getPossiblyRelativeUrl } from "./utils/relativeUrl";
|
package/es/locale/messages-en.js
CHANGED
|
@@ -1218,10 +1218,7 @@ const messages = {
|
|
|
1218
1218
|
learningpathUnsupported: "Learning paths and multidisciplinary cases cannot be shown directly in a shared folder. You can open the learning path in a new tab by clicking the link in the navigation menu to the left.",
|
|
1219
1219
|
drawerButton: "Show folders and resources",
|
|
1220
1220
|
drawerTitle: "Folders and resources",
|
|
1221
|
-
description:
|
|
1222
|
-
all: "In this folder you find articles and tasks from NDLA. The articles have been collected and placed in order by a teacher.\n\nYou can use the menu to navigate through the articles.",
|
|
1223
|
-
info1: "In this folder you find articles and tasks from NDLA. The articles have been collected and placed in order by a teacher."
|
|
1224
|
-
},
|
|
1221
|
+
description: "In this folder you find articles and tasks from NDLA. The articles have been collected and placed in order by a teacher.",
|
|
1225
1222
|
willOpenInNewTab: "Opens in a new tab."
|
|
1226
1223
|
},
|
|
1227
1224
|
myPage: {
|
package/es/locale/messages-nb.js
CHANGED
|
@@ -1218,10 +1218,7 @@ const messages = {
|
|
|
1218
1218
|
learningpathUnsupported: "Læringsstier og tverrfaglige caser kan ikke vises direkte i delte mapper. Dersom du trykker på lenka i navigasjonsmenyen til venstre, vil stien åpnes i en ny fane.",
|
|
1219
1219
|
drawerButton: "Vis mapper og ressurser",
|
|
1220
1220
|
drawerTitle: "Mapper og ressurser",
|
|
1221
|
-
description:
|
|
1222
|
-
all: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.\n\nDu kan bla i artiklene ved å bruke menyen.",
|
|
1223
|
-
info1: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer."
|
|
1224
|
-
},
|
|
1221
|
+
description: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.",
|
|
1225
1222
|
willOpenInNewTab: "Åpnes i ny fane."
|
|
1226
1223
|
},
|
|
1227
1224
|
myPage: {
|
package/es/locale/messages-nn.js
CHANGED
|
@@ -1218,10 +1218,7 @@ const messages = {
|
|
|
1218
1218
|
drawerButton: "Vis mapper og ressursar",
|
|
1219
1219
|
drawerTitle: "Mapper og ressursar",
|
|
1220
1220
|
learningpathUnsupported: "Læringsstiar og tverrfaglege caser kan ikkje visast direkte i delte mapper. Dersom du trykker på lenka i navigasjonsmenyen til venstre, blir stien opna i ei ny fane.",
|
|
1221
|
-
description:
|
|
1222
|
-
all: "I denne delte mappa finn du fagstoff og oppgåver frå NDLA. Artiklane er samla inn og sette i rekkefølge av ein lærar.\n\nDu kan bla i artiklane ved å bruke menyen.",
|
|
1223
|
-
info1: "I denne delte mappa finn du fagstoff og oppgåver frå NDLA. Artiklane er samla inn og sette i rekkefølge av ein lærar."
|
|
1224
|
-
},
|
|
1221
|
+
description: "I denne delte mappa finn du fagstoff og oppgåver frå NDLA. Artiklane er samla inn og sette i rekkefølge av ein lærar.",
|
|
1225
1222
|
willOpenInNewTab: "Blir opna i ny fane."
|
|
1226
1223
|
},
|
|
1227
1224
|
myPage: {
|
package/es/locale/messages-se.js
CHANGED
|
@@ -1218,10 +1218,7 @@ const messages = {
|
|
|
1218
1218
|
learningpathUnsupported: "Læringsstier og tverrfaglige caser kan ikke vises direkte i delte mapper. Dersom du trykker på lenka i navigasjonsmenyen til venstre, vil stien åpnes i en ny fane.",
|
|
1219
1219
|
drawerButton: "Vis mapper og ressurser",
|
|
1220
1220
|
drawerTitle: "Mapper og ressurser",
|
|
1221
|
-
description:
|
|
1222
|
-
all: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.\n\nDu kan bla i artiklene ved å bruke menyen.",
|
|
1223
|
-
info1: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer."
|
|
1224
|
-
},
|
|
1221
|
+
description: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.",
|
|
1225
1222
|
willOpenInNewTab: "Åpnes i ny fane."
|
|
1226
1223
|
},
|
|
1227
1224
|
myPage: {
|
|
@@ -1218,10 +1218,7 @@ const messages = {
|
|
|
1218
1218
|
learningpathUnsupported: "Læringsstier og tverrfaglige caser kan ikke vises direkte i delte mapper. Dersom du trykker på lenka i navigasjonsmenyen til venstre, vil stien åpnes i en ny fane.",
|
|
1219
1219
|
drawerButton: "Vis mapper og ressurser",
|
|
1220
1220
|
drawerTitle: "Mapper og ressurser",
|
|
1221
|
-
description:
|
|
1222
|
-
all: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.\n\nDu kan bla i artiklene ved å bruke menyen.",
|
|
1223
|
-
info1: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer."
|
|
1224
|
-
},
|
|
1221
|
+
description: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.",
|
|
1225
1222
|
willOpenInNewTab: "Åpnes i ny fane."
|
|
1226
1223
|
},
|
|
1227
1224
|
myPage: {
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
+
var _jsx2 = require("@ndla/styled-system/jsx");
|
|
7
8
|
var _LicenseByline = require("../LicenseByline");
|
|
8
9
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
10
|
/**
|
|
@@ -14,6 +15,11 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
14
15
|
*
|
|
15
16
|
*/
|
|
16
17
|
|
|
18
|
+
const StyledCopyrightContent = (0, _jsx2.styled)("div", {
|
|
19
|
+
base: {
|
|
20
|
+
marginBlockEnd: "xsmall"
|
|
21
|
+
}
|
|
22
|
+
});
|
|
17
23
|
const CopyrightEmbed = _ref => {
|
|
18
24
|
let {
|
|
19
25
|
embed,
|
|
@@ -21,7 +27,10 @@ const CopyrightEmbed = _ref => {
|
|
|
21
27
|
} = _ref;
|
|
22
28
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("figure", {
|
|
23
29
|
"data-embed-type": "copyright",
|
|
24
|
-
children: [
|
|
30
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(StyledCopyrightContent, {
|
|
31
|
+
"data-copyright-content": "",
|
|
32
|
+
children: children
|
|
33
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_LicenseByline.EmbedByline, {
|
|
25
34
|
type: "copyright",
|
|
26
35
|
copyright: embed.embedData.copyright
|
|
27
36
|
})]
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2024-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
|
+
/// <reference types="react" />
|
|
9
|
+
export declare const EmbedWrapper: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
10
|
+
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
11
|
+
}, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.EmbedWrapper = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _react2 = require("@ark-ui/react");
|
|
9
|
+
var _jsx2 = require("@ndla/styled-system/jsx");
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
/**
|
|
12
|
+
* Copyright (c) 2024-present, NDLA.
|
|
13
|
+
*
|
|
14
|
+
* This source code is licensed under the GPLv3 license found in the
|
|
15
|
+
* LICENSE file in the root directory of this source tree.
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
const StyledEmbedWrapper = (0, _jsx2.styled)(_react2.ark.div, {
|
|
20
|
+
base: {
|
|
21
|
+
position: "relative"
|
|
22
|
+
}
|
|
23
|
+
}, {
|
|
24
|
+
baseComponent: true
|
|
25
|
+
});
|
|
26
|
+
const EmbedWrapper = exports.EmbedWrapper = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledEmbedWrapper, {
|
|
27
|
+
"data-embed-wrapper": "",
|
|
28
|
+
...props,
|
|
29
|
+
ref: ref
|
|
30
|
+
}));
|
|
@@ -21,7 +21,8 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
21
21
|
const StyledMessageBox = (0, _jsx2.styled)(_primitives.MessageBox, {
|
|
22
22
|
base: {
|
|
23
23
|
display: "flex",
|
|
24
|
-
alignItems: "center"
|
|
24
|
+
alignItems: "center",
|
|
25
|
+
marginBlockEnd: "xsmall"
|
|
25
26
|
}
|
|
26
27
|
});
|
|
27
28
|
const Disclaimer = (0, _jsx2.styled)("div", {
|
|
@@ -61,7 +62,10 @@ const UuDisclaimerEmbed = _ref => {
|
|
|
61
62
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_common.InformationLine, {}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Disclaimer, {
|
|
62
63
|
children: [embedData.disclaimer, disclaimerLink]
|
|
63
64
|
})]
|
|
64
|
-
}),
|
|
65
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
66
|
+
"data-uu-content": "",
|
|
67
|
+
children: children
|
|
68
|
+
})]
|
|
65
69
|
});
|
|
66
70
|
};
|
|
67
71
|
var _default = exports.default = UuDisclaimerEmbed;
|
package/lib/Embed/index.d.ts
CHANGED
|
@@ -22,3 +22,4 @@ export { default as UuDisclaimerEmbed } from "./UuDisclaimerEmbed";
|
|
|
22
22
|
export { default as CopyrightEmbed } from "./CopyrightEmbed";
|
|
23
23
|
export { default as CodeEmbed } from "./CodeEmbed";
|
|
24
24
|
export type { HeartButtonType, CanonicalUrlFuncs, RenderContext } from "./types";
|
|
25
|
+
export { EmbedWrapper } from "./EmbedWrapper";
|
package/lib/Embed/index.js
CHANGED
|
@@ -45,6 +45,12 @@ Object.defineProperty(exports, "CopyrightEmbed", {
|
|
|
45
45
|
return _CopyrightEmbed.default;
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
|
+
Object.defineProperty(exports, "EmbedWrapper", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () {
|
|
51
|
+
return _EmbedWrapper.EmbedWrapper;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
48
54
|
Object.defineProperty(exports, "ExternalEmbed", {
|
|
49
55
|
enumerable: true,
|
|
50
56
|
get: function () {
|
|
@@ -132,6 +138,7 @@ var _UnknownEmbed = _interopRequireDefault(require("./UnknownEmbed"));
|
|
|
132
138
|
var _UuDisclaimerEmbed = _interopRequireDefault(require("./UuDisclaimerEmbed"));
|
|
133
139
|
var _CopyrightEmbed = _interopRequireDefault(require("./CopyrightEmbed"));
|
|
134
140
|
var _CodeEmbed = _interopRequireDefault(require("./CodeEmbed"));
|
|
141
|
+
var _EmbedWrapper = require("./EmbedWrapper");
|
|
135
142
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
136
143
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
137
144
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -25,7 +25,6 @@ const BylineWrapper = (0, _jsx2.styled)("figcaption", {
|
|
|
25
25
|
display: "flex",
|
|
26
26
|
flexDirection: "column",
|
|
27
27
|
paddingBlock: "xsmall",
|
|
28
|
-
background: "surface.default",
|
|
29
28
|
textStyle: "label.medium",
|
|
30
29
|
color: "text.subtle"
|
|
31
30
|
}
|
|
@@ -151,9 +150,10 @@ const StyledButton = (0, _jsx2.styled)(_primitives.Button, {
|
|
|
151
150
|
});
|
|
152
151
|
const LicenseDescription = _ref2 => {
|
|
153
152
|
let {
|
|
154
|
-
children
|
|
153
|
+
children,
|
|
154
|
+
isOpen,
|
|
155
|
+
setIsOpen
|
|
155
156
|
} = _ref2;
|
|
156
|
-
const [isOpen, setIsOpen] = (0, _react.useState)(false);
|
|
157
157
|
const open = isOpen ? {
|
|
158
158
|
"data-open": ""
|
|
159
159
|
} : {};
|
|
@@ -191,18 +191,22 @@ const LicenseContainerContent = _ref3 => {
|
|
|
191
191
|
const license = copyright ? (0, _licenses.getLicenseByAbbreviation)(copyright.license?.license ?? "", i18n.language) : undefined;
|
|
192
192
|
const authors = (0, _licenses.getLicenseCredits)(copyright);
|
|
193
193
|
const captionAuthors = Object.values(authors).find(i => i.length > 0) ?? [];
|
|
194
|
+
const [isOpen, setIsOpen] = (0, _react.useState)(false);
|
|
194
195
|
const content = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
195
196
|
children: [children, ` ${t(`embed.type.${type}`)}${captionAuthors.length ? ": " : ""}`, /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
196
197
|
property: "cc:attributionName",
|
|
197
198
|
children: captionAuthors.map(author => author.name).join(", ")
|
|
198
199
|
}), license ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
199
200
|
children: [" / ", /*#__PURE__*/(0, _jsxRuntime.jsx)(_LicenseLink.LicenseLink, {
|
|
200
|
-
license: license
|
|
201
|
+
license: license,
|
|
202
|
+
hideLink: !isOpen && !!children
|
|
201
203
|
})]
|
|
202
204
|
}) : null]
|
|
203
205
|
});
|
|
204
206
|
if (children) {
|
|
205
207
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(LicenseDescription, {
|
|
208
|
+
isOpen: isOpen,
|
|
209
|
+
setIsOpen: setIsOpen,
|
|
206
210
|
children: content
|
|
207
211
|
});
|
|
208
212
|
}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import { LicenseLocaleType } from "@ndla/licenses";
|
|
9
9
|
interface Props {
|
|
10
10
|
license: LicenseLocaleType;
|
|
11
|
+
hideLink?: boolean;
|
|
11
12
|
}
|
|
12
|
-
export declare const LicenseLink: ({ license }: Props) => import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
+
export declare const LicenseLink: ({ license, hideLink }: Props) => import("react/jsx-runtime").JSX.Element | null;
|
|
13
14
|
export {};
|
|
@@ -25,13 +25,22 @@ const StyledSafeLink = (0, _jsx2.styled)(_safelink.SafeLink, {
|
|
|
25
25
|
},
|
|
26
26
|
_focusWithin: {
|
|
27
27
|
textDecoration: "none"
|
|
28
|
+
},
|
|
29
|
+
mobileWideDown: {
|
|
30
|
+
_disabled: {
|
|
31
|
+
display: "none"
|
|
32
|
+
}
|
|
28
33
|
}
|
|
29
34
|
}
|
|
30
35
|
});
|
|
31
36
|
const LicenseLink = _ref => {
|
|
32
37
|
let {
|
|
33
|
-
license
|
|
38
|
+
license,
|
|
39
|
+
hideLink
|
|
34
40
|
} = _ref;
|
|
41
|
+
const disabled = hideLink ? {
|
|
42
|
+
"data-disabled": ""
|
|
43
|
+
} : {};
|
|
35
44
|
if (license.abbreviation === "unknown") {
|
|
36
45
|
return null;
|
|
37
46
|
}
|
|
@@ -39,6 +48,7 @@ const LicenseLink = _ref => {
|
|
|
39
48
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledSafeLink, {
|
|
40
49
|
to: license.url,
|
|
41
50
|
rel: "license",
|
|
51
|
+
...disabled,
|
|
42
52
|
children: license.abbreviation
|
|
43
53
|
});
|
|
44
54
|
}
|
package/lib/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
export { Concept } from "./Concept/Concept";
|
|
9
|
-
export { ImageEmbed, getCrop, getFocalPoint, AudioEmbed, H5pEmbed, ExternalEmbed, IframeEmbed, FootnoteEmbed, BrightcoveEmbed, ContentLinkEmbed, RelatedContentEmbed, ConceptEmbed, UnknownEmbed, InlineConcept, BlockConcept, UuDisclaimerEmbed, CopyrightEmbed, CodeEmbed, InlineTriggerButton, } from "./Embed";
|
|
9
|
+
export { ImageEmbed, getCrop, getFocalPoint, AudioEmbed, H5pEmbed, ExternalEmbed, IframeEmbed, FootnoteEmbed, BrightcoveEmbed, ContentLinkEmbed, RelatedContentEmbed, ConceptEmbed, UnknownEmbed, InlineConcept, BlockConcept, UuDisclaimerEmbed, CopyrightEmbed, CodeEmbed, InlineTriggerButton, EmbedWrapper, } from "./Embed";
|
|
10
10
|
export { LicenseLink, EmbedByline } from "./LicenseByline";
|
|
11
11
|
export { ArticleByline, ArticleBylineAccordionItem, ArticleFootNotes, ArticleWrapper, Article, ArticleFooter, ArticleHeader, ArticleContent, ArticleHGroup, ArticleTitle, } from "./Article";
|
|
12
12
|
export { getPossiblyRelativeUrl } from "./utils/relativeUrl";
|
package/lib/index.js
CHANGED
|
@@ -207,6 +207,12 @@ Object.defineProperty(exports, "EmbedByline", {
|
|
|
207
207
|
return _LicenseByline.EmbedByline;
|
|
208
208
|
}
|
|
209
209
|
});
|
|
210
|
+
Object.defineProperty(exports, "EmbedWrapper", {
|
|
211
|
+
enumerable: true,
|
|
212
|
+
get: function () {
|
|
213
|
+
return _Embed.EmbedWrapper;
|
|
214
|
+
}
|
|
215
|
+
});
|
|
210
216
|
Object.defineProperty(exports, "ErrorMessage", {
|
|
211
217
|
enumerable: true,
|
|
212
218
|
get: function () {
|
|
@@ -1208,10 +1208,7 @@ declare const messages: {
|
|
|
1208
1208
|
learningpathUnsupported: string;
|
|
1209
1209
|
drawerButton: string;
|
|
1210
1210
|
drawerTitle: string;
|
|
1211
|
-
description:
|
|
1212
|
-
all: string;
|
|
1213
|
-
info1: string;
|
|
1214
|
-
};
|
|
1211
|
+
description: string;
|
|
1215
1212
|
willOpenInNewTab: string;
|
|
1216
1213
|
};
|
|
1217
1214
|
myPage: {
|
|
@@ -1225,10 +1225,7 @@ const messages = {
|
|
|
1225
1225
|
learningpathUnsupported: "Learning paths and multidisciplinary cases cannot be shown directly in a shared folder. You can open the learning path in a new tab by clicking the link in the navigation menu to the left.",
|
|
1226
1226
|
drawerButton: "Show folders and resources",
|
|
1227
1227
|
drawerTitle: "Folders and resources",
|
|
1228
|
-
description:
|
|
1229
|
-
all: "In this folder you find articles and tasks from NDLA. The articles have been collected and placed in order by a teacher.\n\nYou can use the menu to navigate through the articles.",
|
|
1230
|
-
info1: "In this folder you find articles and tasks from NDLA. The articles have been collected and placed in order by a teacher."
|
|
1231
|
-
},
|
|
1228
|
+
description: "In this folder you find articles and tasks from NDLA. The articles have been collected and placed in order by a teacher.",
|
|
1232
1229
|
willOpenInNewTab: "Opens in a new tab."
|
|
1233
1230
|
},
|
|
1234
1231
|
myPage: {
|
|
@@ -1208,10 +1208,7 @@ declare const messages: {
|
|
|
1208
1208
|
learningpathUnsupported: string;
|
|
1209
1209
|
drawerButton: string;
|
|
1210
1210
|
drawerTitle: string;
|
|
1211
|
-
description:
|
|
1212
|
-
all: string;
|
|
1213
|
-
info1: string;
|
|
1214
|
-
};
|
|
1211
|
+
description: string;
|
|
1215
1212
|
willOpenInNewTab: string;
|
|
1216
1213
|
};
|
|
1217
1214
|
myPage: {
|
|
@@ -1225,10 +1225,7 @@ const messages = {
|
|
|
1225
1225
|
learningpathUnsupported: "Læringsstier og tverrfaglige caser kan ikke vises direkte i delte mapper. Dersom du trykker på lenka i navigasjonsmenyen til venstre, vil stien åpnes i en ny fane.",
|
|
1226
1226
|
drawerButton: "Vis mapper og ressurser",
|
|
1227
1227
|
drawerTitle: "Mapper og ressurser",
|
|
1228
|
-
description:
|
|
1229
|
-
all: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.\n\nDu kan bla i artiklene ved å bruke menyen.",
|
|
1230
|
-
info1: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer."
|
|
1231
|
-
},
|
|
1228
|
+
description: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.",
|
|
1232
1229
|
willOpenInNewTab: "Åpnes i ny fane."
|
|
1233
1230
|
},
|
|
1234
1231
|
myPage: {
|
|
@@ -1208,10 +1208,7 @@ declare const messages: {
|
|
|
1208
1208
|
drawerButton: string;
|
|
1209
1209
|
drawerTitle: string;
|
|
1210
1210
|
learningpathUnsupported: string;
|
|
1211
|
-
description:
|
|
1212
|
-
all: string;
|
|
1213
|
-
info1: string;
|
|
1214
|
-
};
|
|
1211
|
+
description: string;
|
|
1215
1212
|
willOpenInNewTab: string;
|
|
1216
1213
|
};
|
|
1217
1214
|
myPage: {
|
|
@@ -1225,10 +1225,7 @@ const messages = {
|
|
|
1225
1225
|
drawerButton: "Vis mapper og ressursar",
|
|
1226
1226
|
drawerTitle: "Mapper og ressursar",
|
|
1227
1227
|
learningpathUnsupported: "Læringsstiar og tverrfaglege caser kan ikkje visast direkte i delte mapper. Dersom du trykker på lenka i navigasjonsmenyen til venstre, blir stien opna i ei ny fane.",
|
|
1228
|
-
description:
|
|
1229
|
-
all: "I denne delte mappa finn du fagstoff og oppgåver frå NDLA. Artiklane er samla inn og sette i rekkefølge av ein lærar.\n\nDu kan bla i artiklane ved å bruke menyen.",
|
|
1230
|
-
info1: "I denne delte mappa finn du fagstoff og oppgåver frå NDLA. Artiklane er samla inn og sette i rekkefølge av ein lærar."
|
|
1231
|
-
},
|
|
1228
|
+
description: "I denne delte mappa finn du fagstoff og oppgåver frå NDLA. Artiklane er samla inn og sette i rekkefølge av ein lærar.",
|
|
1232
1229
|
willOpenInNewTab: "Blir opna i ny fane."
|
|
1233
1230
|
},
|
|
1234
1231
|
myPage: {
|
|
@@ -1208,10 +1208,7 @@ declare const messages: {
|
|
|
1208
1208
|
learningpathUnsupported: string;
|
|
1209
1209
|
drawerButton: string;
|
|
1210
1210
|
drawerTitle: string;
|
|
1211
|
-
description:
|
|
1212
|
-
all: string;
|
|
1213
|
-
info1: string;
|
|
1214
|
-
};
|
|
1211
|
+
description: string;
|
|
1215
1212
|
willOpenInNewTab: string;
|
|
1216
1213
|
};
|
|
1217
1214
|
myPage: {
|
|
@@ -1225,10 +1225,7 @@ const messages = {
|
|
|
1225
1225
|
learningpathUnsupported: "Læringsstier og tverrfaglige caser kan ikke vises direkte i delte mapper. Dersom du trykker på lenka i navigasjonsmenyen til venstre, vil stien åpnes i en ny fane.",
|
|
1226
1226
|
drawerButton: "Vis mapper og ressurser",
|
|
1227
1227
|
drawerTitle: "Mapper og ressurser",
|
|
1228
|
-
description:
|
|
1229
|
-
all: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.\n\nDu kan bla i artiklene ved å bruke menyen.",
|
|
1230
|
-
info1: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer."
|
|
1231
|
-
},
|
|
1228
|
+
description: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.",
|
|
1232
1229
|
willOpenInNewTab: "Åpnes i ny fane."
|
|
1233
1230
|
},
|
|
1234
1231
|
myPage: {
|
|
@@ -1208,10 +1208,7 @@ declare const messages: {
|
|
|
1208
1208
|
learningpathUnsupported: string;
|
|
1209
1209
|
drawerButton: string;
|
|
1210
1210
|
drawerTitle: string;
|
|
1211
|
-
description:
|
|
1212
|
-
all: string;
|
|
1213
|
-
info1: string;
|
|
1214
|
-
};
|
|
1211
|
+
description: string;
|
|
1215
1212
|
willOpenInNewTab: string;
|
|
1216
1213
|
};
|
|
1217
1214
|
myPage: {
|
|
@@ -1225,10 +1225,7 @@ const messages = {
|
|
|
1225
1225
|
learningpathUnsupported: "Læringsstier og tverrfaglige caser kan ikke vises direkte i delte mapper. Dersom du trykker på lenka i navigasjonsmenyen til venstre, vil stien åpnes i en ny fane.",
|
|
1226
1226
|
drawerButton: "Vis mapper og ressurser",
|
|
1227
1227
|
drawerTitle: "Mapper og ressurser",
|
|
1228
|
-
description:
|
|
1229
|
-
all: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.\n\nDu kan bla i artiklene ved å bruke menyen.",
|
|
1230
|
-
info1: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer."
|
|
1231
|
-
},
|
|
1228
|
+
description: "I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.",
|
|
1232
1229
|
willOpenInNewTab: "Åpnes i ny fane."
|
|
1233
1230
|
},
|
|
1234
1231
|
myPage: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ndla/ui",
|
|
3
|
-
"version": "56.0.
|
|
3
|
+
"version": "56.0.39-alpha.0",
|
|
4
4
|
"description": "UI component library for NDLA",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
],
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@ndla/core": "^5.0.2",
|
|
36
|
-
"@ndla/icons": "^8.0.
|
|
36
|
+
"@ndla/icons": "^8.0.27-alpha.0",
|
|
37
37
|
"@ndla/licenses": "^8.0.3-alpha.0",
|
|
38
|
-
"@ndla/primitives": "^1.0.
|
|
39
|
-
"@ndla/safelink": "^7.0.
|
|
38
|
+
"@ndla/primitives": "^1.0.36-alpha.0",
|
|
39
|
+
"@ndla/safelink": "^7.0.36-alpha.0",
|
|
40
40
|
"@ndla/styled-system": "^0.0.23",
|
|
41
41
|
"@ndla/util": "^5.0.0-alpha.0",
|
|
42
42
|
"html-react-parser": "^5.1.8",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"react-router-dom": "> 6.0.0"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@ndla/preset-panda": "^0.0.
|
|
53
|
+
"@ndla/preset-panda": "^0.0.36",
|
|
54
54
|
"@ndla/types-backend": "^0.2.86",
|
|
55
55
|
"@ndla/types-embed": "^5.0.3-alpha.0",
|
|
56
56
|
"@pandacss/dev": "^0.46.0"
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"publishConfig": {
|
|
59
59
|
"access": "public"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "84234a46743d9d044f220e90e6710e2da307d65d"
|
|
62
62
|
}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { ReactNode } from "react";
|
|
10
|
+
import { styled } from "@ndla/styled-system/jsx";
|
|
10
11
|
import { CopyrightMetaData } from "@ndla/types-embed";
|
|
11
12
|
import { EmbedByline } from "../LicenseByline";
|
|
12
13
|
|
|
@@ -15,10 +16,16 @@ interface Props {
|
|
|
15
16
|
children?: ReactNode;
|
|
16
17
|
}
|
|
17
18
|
|
|
19
|
+
const StyledCopyrightContent = styled("div", {
|
|
20
|
+
base: {
|
|
21
|
+
marginBlockEnd: "xsmall",
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
|
|
18
25
|
const CopyrightEmbed = ({ embed, children }: Props) => {
|
|
19
26
|
return (
|
|
20
27
|
<figure data-embed-type="copyright">
|
|
21
|
-
{children}
|
|
28
|
+
<StyledCopyrightContent data-copyright-content="">{children}</StyledCopyrightContent>
|
|
22
29
|
<EmbedByline type="copyright" copyright={embed.embedData.copyright} />
|
|
23
30
|
</figure>
|
|
24
31
|
);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2024-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 { ComponentPropsWithRef, forwardRef } from "react";
|
|
10
|
+
import { ark } from "@ark-ui/react";
|
|
11
|
+
import { styled } from "@ndla/styled-system/jsx";
|
|
12
|
+
|
|
13
|
+
const StyledEmbedWrapper = styled(
|
|
14
|
+
ark.div,
|
|
15
|
+
{
|
|
16
|
+
base: {
|
|
17
|
+
position: "relative",
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
{ baseComponent: true },
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
export const EmbedWrapper = forwardRef<HTMLDivElement, ComponentPropsWithRef<"div">>((props, ref) => (
|
|
24
|
+
<StyledEmbedWrapper data-embed-wrapper="" {...props} ref={ref} />
|
|
25
|
+
));
|
|
@@ -23,6 +23,7 @@ const StyledMessageBox = styled(MessageBox, {
|
|
|
23
23
|
base: {
|
|
24
24
|
display: "flex",
|
|
25
25
|
alignItems: "center",
|
|
26
|
+
marginBlockEnd: "xsmall",
|
|
26
27
|
},
|
|
27
28
|
});
|
|
28
29
|
const Disclaimer = styled("div", {
|
|
@@ -58,7 +59,7 @@ const UuDisclaimerEmbed = ({ embed, children }: Props) => {
|
|
|
58
59
|
{disclaimerLink}
|
|
59
60
|
</Disclaimer>
|
|
60
61
|
</StyledMessageBox>
|
|
61
|
-
{children}
|
|
62
|
+
<div data-uu-content="">{children}</div>
|
|
62
63
|
</div>
|
|
63
64
|
);
|
|
64
65
|
};
|
package/src/Embed/index.ts
CHANGED
|
@@ -23,3 +23,4 @@ export { default as UuDisclaimerEmbed } from "./UuDisclaimerEmbed";
|
|
|
23
23
|
export { default as CopyrightEmbed } from "./CopyrightEmbed";
|
|
24
24
|
export { default as CodeEmbed } from "./CodeEmbed";
|
|
25
25
|
export type { HeartButtonType, CanonicalUrlFuncs, RenderContext } from "./types";
|
|
26
|
+
export { EmbedWrapper } from "./EmbedWrapper";
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import { ReactNode, useState } from "react";
|
|
9
|
+
import { Dispatch, ReactNode, SetStateAction, useState } from "react";
|
|
10
10
|
import { useTranslation } from "react-i18next";
|
|
11
11
|
import { AlertLine } from "@ndla/icons/common";
|
|
12
12
|
import { getLicenseByAbbreviation, getLicenseCredits } from "@ndla/licenses";
|
|
@@ -78,7 +78,6 @@ const BylineWrapper = styled("figcaption", {
|
|
|
78
78
|
display: "flex",
|
|
79
79
|
flexDirection: "column",
|
|
80
80
|
paddingBlock: "xsmall",
|
|
81
|
-
background: "surface.default",
|
|
82
81
|
textStyle: "label.medium",
|
|
83
82
|
color: "text.subtle",
|
|
84
83
|
},
|
|
@@ -216,10 +215,11 @@ const StyledButton = styled(Button, {
|
|
|
216
215
|
|
|
217
216
|
interface LicenseDescriptionProps {
|
|
218
217
|
children?: ReactNode;
|
|
218
|
+
isOpen: Boolean;
|
|
219
|
+
setIsOpen: Dispatch<SetStateAction<boolean>>;
|
|
219
220
|
}
|
|
220
221
|
|
|
221
|
-
const LicenseDescription = ({ children }: LicenseDescriptionProps) => {
|
|
222
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
222
|
+
const LicenseDescription = ({ children, isOpen, setIsOpen }: LicenseDescriptionProps) => {
|
|
223
223
|
const open = isOpen ? { "data-open": "" } : {};
|
|
224
224
|
const { t } = useTranslation();
|
|
225
225
|
|
|
@@ -244,6 +244,7 @@ export const LicenseContainerContent = ({ children, copyright, type }: LicenseCo
|
|
|
244
244
|
const license = copyright ? getLicenseByAbbreviation(copyright.license?.license ?? "", i18n.language) : undefined;
|
|
245
245
|
const authors = getLicenseCredits(copyright);
|
|
246
246
|
const captionAuthors = Object.values(authors).find((i) => i.length > 0) ?? [];
|
|
247
|
+
const [isOpen, setIsOpen] = useState<boolean>(false);
|
|
247
248
|
|
|
248
249
|
const content = (
|
|
249
250
|
<>
|
|
@@ -254,14 +255,18 @@ export const LicenseContainerContent = ({ children, copyright, type }: LicenseCo
|
|
|
254
255
|
{license ? (
|
|
255
256
|
<>
|
|
256
257
|
{" / "}
|
|
257
|
-
<LicenseLink license={license} />
|
|
258
|
+
{<LicenseLink license={license} hideLink={!isOpen && !!children} />}
|
|
258
259
|
</>
|
|
259
260
|
) : null}
|
|
260
261
|
</>
|
|
261
262
|
);
|
|
262
263
|
|
|
263
264
|
if (children) {
|
|
264
|
-
return
|
|
265
|
+
return (
|
|
266
|
+
<LicenseDescription isOpen={isOpen} setIsOpen={setIsOpen}>
|
|
267
|
+
{content}
|
|
268
|
+
</LicenseDescription>
|
|
269
|
+
);
|
|
265
270
|
}
|
|
266
271
|
|
|
267
272
|
return (
|
|
@@ -12,6 +12,7 @@ import { styled } from "@ndla/styled-system/jsx";
|
|
|
12
12
|
|
|
13
13
|
interface Props {
|
|
14
14
|
license: LicenseLocaleType;
|
|
15
|
+
hideLink?: boolean;
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
const StyledSafeLink = styled(SafeLink, {
|
|
@@ -25,16 +26,22 @@ const StyledSafeLink = styled(SafeLink, {
|
|
|
25
26
|
_focusWithin: {
|
|
26
27
|
textDecoration: "none",
|
|
27
28
|
},
|
|
29
|
+
mobileWideDown: {
|
|
30
|
+
_disabled: {
|
|
31
|
+
display: "none",
|
|
32
|
+
},
|
|
33
|
+
},
|
|
28
34
|
},
|
|
29
35
|
});
|
|
30
36
|
|
|
31
|
-
export const LicenseLink = ({ license }: Props) => {
|
|
37
|
+
export const LicenseLink = ({ license, hideLink }: Props) => {
|
|
38
|
+
const disabled = hideLink ? { "data-disabled": "" } : {};
|
|
32
39
|
if (license.abbreviation === "unknown") {
|
|
33
40
|
return null;
|
|
34
41
|
}
|
|
35
42
|
if (license.url?.length) {
|
|
36
43
|
return (
|
|
37
|
-
<StyledSafeLink to={license.url} rel="license">
|
|
44
|
+
<StyledSafeLink to={license.url} rel="license" {...disabled}>
|
|
38
45
|
{license.abbreviation}
|
|
39
46
|
</StyledSafeLink>
|
|
40
47
|
);
|
package/src/index.ts
CHANGED
|
@@ -1247,11 +1247,8 @@ const messages = {
|
|
|
1247
1247
|
"Learning paths and multidisciplinary cases cannot be shown directly in a shared folder. You can open the learning path in a new tab by clicking the link in the navigation menu to the left.",
|
|
1248
1248
|
drawerButton: "Show folders and resources",
|
|
1249
1249
|
drawerTitle: "Folders and resources",
|
|
1250
|
-
description:
|
|
1251
|
-
|
|
1252
|
-
info1:
|
|
1253
|
-
"In this folder you find articles and tasks from NDLA. The articles have been collected and placed in order by a teacher.",
|
|
1254
|
-
},
|
|
1250
|
+
description:
|
|
1251
|
+
"In this folder you find articles and tasks from NDLA. The articles have been collected and placed in order by a teacher.",
|
|
1255
1252
|
willOpenInNewTab: "Opens in a new tab.",
|
|
1256
1253
|
},
|
|
1257
1254
|
myPage: {
|
|
@@ -1247,11 +1247,8 @@ const messages = {
|
|
|
1247
1247
|
"Læringsstier og tverrfaglige caser kan ikke vises direkte i delte mapper. Dersom du trykker på lenka i navigasjonsmenyen til venstre, vil stien åpnes i en ny fane.",
|
|
1248
1248
|
drawerButton: "Vis mapper og ressurser",
|
|
1249
1249
|
drawerTitle: "Mapper og ressurser",
|
|
1250
|
-
description:
|
|
1251
|
-
|
|
1252
|
-
info1:
|
|
1253
|
-
"I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.",
|
|
1254
|
-
},
|
|
1250
|
+
description:
|
|
1251
|
+
"I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.",
|
|
1255
1252
|
willOpenInNewTab: "Åpnes i ny fane.",
|
|
1256
1253
|
},
|
|
1257
1254
|
myPage: {
|
|
@@ -1247,11 +1247,8 @@ const messages = {
|
|
|
1247
1247
|
drawerTitle: "Mapper og ressursar",
|
|
1248
1248
|
learningpathUnsupported:
|
|
1249
1249
|
"Læringsstiar og tverrfaglege caser kan ikkje visast direkte i delte mapper. Dersom du trykker på lenka i navigasjonsmenyen til venstre, blir stien opna i ei ny fane.",
|
|
1250
|
-
description:
|
|
1251
|
-
|
|
1252
|
-
info1:
|
|
1253
|
-
"I denne delte mappa finn du fagstoff og oppgåver frå NDLA. Artiklane er samla inn og sette i rekkefølge av ein lærar.",
|
|
1254
|
-
},
|
|
1250
|
+
description:
|
|
1251
|
+
"I denne delte mappa finn du fagstoff og oppgåver frå NDLA. Artiklane er samla inn og sette i rekkefølge av ein lærar.",
|
|
1255
1252
|
willOpenInNewTab: "Blir opna i ny fane.",
|
|
1256
1253
|
},
|
|
1257
1254
|
myPage: {
|
|
@@ -1249,11 +1249,8 @@ const messages = {
|
|
|
1249
1249
|
"Læringsstier og tverrfaglige caser kan ikke vises direkte i delte mapper. Dersom du trykker på lenka i navigasjonsmenyen til venstre, vil stien åpnes i en ny fane.",
|
|
1250
1250
|
drawerButton: "Vis mapper og ressurser",
|
|
1251
1251
|
drawerTitle: "Mapper og ressurser",
|
|
1252
|
-
description:
|
|
1253
|
-
|
|
1254
|
-
info1:
|
|
1255
|
-
"I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.",
|
|
1256
|
-
},
|
|
1252
|
+
description:
|
|
1253
|
+
"I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.",
|
|
1257
1254
|
willOpenInNewTab: "Åpnes i ny fane.",
|
|
1258
1255
|
},
|
|
1259
1256
|
myPage: {
|
|
@@ -1251,11 +1251,8 @@ const messages = {
|
|
|
1251
1251
|
"Læringsstier og tverrfaglige caser kan ikke vises direkte i delte mapper. Dersom du trykker på lenka i navigasjonsmenyen til venstre, vil stien åpnes i en ny fane.",
|
|
1252
1252
|
drawerButton: "Vis mapper og ressurser",
|
|
1253
1253
|
drawerTitle: "Mapper og ressurser",
|
|
1254
|
-
description:
|
|
1255
|
-
|
|
1256
|
-
info1:
|
|
1257
|
-
"I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.",
|
|
1258
|
-
},
|
|
1254
|
+
description:
|
|
1255
|
+
"I denne delte mappa finner du fagstoff og oppgaver fra NDLA. Artiklene er samlet inn og satt i rekkefølge av en lærer.",
|
|
1259
1256
|
willOpenInNewTab: "Åpnes i ny fane.",
|
|
1260
1257
|
},
|
|
1261
1258
|
myPage: {
|