@ndla/ui 56.0.37-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.
Files changed (48) hide show
  1. package/dist/panda.buildinfo.json +2 -0
  2. package/dist/styles.css +10 -0
  3. package/es/Embed/CopyrightEmbed.js +10 -1
  4. package/es/Embed/EmbedWrapper.js +24 -0
  5. package/es/Embed/UuDisclaimerEmbed.js +6 -2
  6. package/es/Embed/index.js +2 -1
  7. package/es/LicenseByline/EmbedByline.js +8 -4
  8. package/es/LicenseByline/LicenseLink.js +11 -1
  9. package/es/index.js +1 -1
  10. package/es/locale/messages-en.js +1 -4
  11. package/es/locale/messages-nb.js +1 -4
  12. package/es/locale/messages-nn.js +1 -4
  13. package/es/locale/messages-se.js +1 -4
  14. package/es/locale/messages-sma.js +1 -4
  15. package/lib/Embed/CopyrightEmbed.js +10 -1
  16. package/lib/Embed/EmbedWrapper.d.ts +11 -0
  17. package/lib/Embed/EmbedWrapper.js +30 -0
  18. package/lib/Embed/UuDisclaimerEmbed.js +6 -2
  19. package/lib/Embed/index.d.ts +1 -0
  20. package/lib/Embed/index.js +7 -0
  21. package/lib/LicenseByline/EmbedByline.js +8 -4
  22. package/lib/LicenseByline/LicenseLink.d.ts +2 -1
  23. package/lib/LicenseByline/LicenseLink.js +11 -1
  24. package/lib/index.d.ts +1 -1
  25. package/lib/index.js +6 -0
  26. package/lib/locale/messages-en.d.ts +1 -4
  27. package/lib/locale/messages-en.js +1 -4
  28. package/lib/locale/messages-nb.d.ts +1 -4
  29. package/lib/locale/messages-nb.js +1 -4
  30. package/lib/locale/messages-nn.d.ts +1 -4
  31. package/lib/locale/messages-nn.js +1 -4
  32. package/lib/locale/messages-se.d.ts +1 -4
  33. package/lib/locale/messages-se.js +1 -4
  34. package/lib/locale/messages-sma.d.ts +1 -4
  35. package/lib/locale/messages-sma.js +1 -4
  36. package/package.json +6 -6
  37. package/src/Embed/CopyrightEmbed.tsx +8 -1
  38. package/src/Embed/EmbedWrapper.tsx +25 -0
  39. package/src/Embed/UuDisclaimerEmbed.tsx +2 -1
  40. package/src/Embed/index.ts +1 -0
  41. package/src/LicenseByline/EmbedByline.tsx +11 -6
  42. package/src/LicenseByline/LicenseLink.tsx +9 -2
  43. package/src/index.ts +1 -0
  44. package/src/locale/messages-en.ts +2 -5
  45. package/src/locale/messages-nb.ts +2 -5
  46. package/src/locale/messages-nn.ts +2 -5
  47. package/src/locale/messages-se.ts +2 -5
  48. 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: [children, /*#__PURE__*/_jsx(EmbedByline, {
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
- }), children]
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";
@@ -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: {
@@ -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
  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: {
@@ -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: [children, /*#__PURE__*/(0, _jsxRuntime.jsx)(_LicenseByline.EmbedByline, {
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
- }), children]
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;
@@ -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";
@@ -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.37-alpha.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.26-alpha.0",
36
+ "@ndla/icons": "^8.0.27-alpha.0",
37
37
  "@ndla/licenses": "^8.0.3-alpha.0",
38
- "@ndla/primitives": "^1.0.34-alpha.0",
39
- "@ndla/safelink": "^7.0.34-alpha.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.35",
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": "5bad5d1659659f8f6a1a8cb790d43fdbbfcdedbc"
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
  };
@@ -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 <LicenseDescription>{content}</LicenseDescription>;
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
@@ -31,6 +31,7 @@ export {
31
31
  CopyrightEmbed,
32
32
  CodeEmbed,
33
33
  InlineTriggerButton,
34
+ EmbedWrapper,
34
35
  } from "./Embed";
35
36
 
36
37
  export { LicenseLink, EmbedByline } from "./LicenseByline";
@@ -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
- 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.",
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
- 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.",
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
- 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.",
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
- 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.",
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
- 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.",
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: {