@ndla/ui 8.2.5 → 9.0.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 (73) hide show
  1. package/es/Article/ArticleNotions.js +9 -7
  2. package/es/Figure/Figure.js +6 -5
  3. package/es/Figure/FigureExpandButton.js +6 -6
  4. package/es/Figure/FigureOpenDialogButton.js +45 -0
  5. package/es/Figure/index.js +2 -1
  6. package/es/Image/Image.js +1 -1
  7. package/es/MessageBox/MessageBox.js +8 -8
  8. package/es/Notion/ConceptNotion.js +79 -28
  9. package/es/Notion/FigureNotion.js +5 -6
  10. package/es/Notion/Notion.js +19 -98
  11. package/es/Notion/NotionImage.js +25 -6
  12. package/es/Notion/NotionVisualElement.js +49 -10
  13. package/es/Topic/Topic.js +21 -21
  14. package/es/all.css +1 -1
  15. package/es/index.js +1 -2
  16. package/es/locale/messages-en.js +1 -1
  17. package/es/locale/messages-nb.js +1 -1
  18. package/es/locale/messages-nn.js +1 -1
  19. package/lib/Article/ArticleNotions.d.ts +2 -1
  20. package/lib/Article/ArticleNotions.js +9 -7
  21. package/lib/Figure/Figure.d.ts +2 -1
  22. package/lib/Figure/Figure.js +6 -5
  23. package/lib/Figure/FigureExpandButton.js +6 -6
  24. package/lib/Figure/FigureOpenDialogButton.d.ts +16 -0
  25. package/lib/Figure/FigureOpenDialogButton.js +57 -0
  26. package/lib/Figure/index.d.ts +1 -0
  27. package/lib/Figure/index.js +8 -0
  28. package/lib/Image/Image.js +1 -1
  29. package/lib/MessageBox/MessageBox.js +9 -9
  30. package/lib/Notion/ConceptNotion.d.ts +6 -7
  31. package/lib/Notion/ConceptNotion.js +84 -30
  32. package/lib/Notion/FigureNotion.d.ts +3 -2
  33. package/lib/Notion/FigureNotion.js +5 -7
  34. package/lib/Notion/Notion.d.ts +1 -12
  35. package/lib/Notion/Notion.js +23 -105
  36. package/lib/Notion/NotionImage.d.ts +2 -1
  37. package/lib/Notion/NotionImage.js +25 -7
  38. package/lib/Notion/NotionVisualElement.d.ts +6 -7
  39. package/lib/Notion/NotionVisualElement.js +48 -18
  40. package/lib/Topic/Topic.js +21 -21
  41. package/lib/all.css +1 -1
  42. package/lib/index.d.ts +1 -2
  43. package/lib/index.js +7 -9
  44. package/lib/locale/messages-en.js +1 -1
  45. package/lib/locale/messages-nb.js +1 -1
  46. package/lib/locale/messages-nn.js +1 -1
  47. package/package.json +9 -9
  48. package/src/Article/ArticleNotions.tsx +3 -2
  49. package/src/Figure/Figure.tsx +49 -41
  50. package/src/Figure/FigureExpandButton.tsx +4 -4
  51. package/src/Figure/FigureOpenDialogButton.tsx +37 -0
  52. package/src/Figure/component.figure.scss +4 -0
  53. package/src/Figure/index.ts +1 -0
  54. package/src/Image/Image.tsx +1 -1
  55. package/src/MessageBox/MessageBox.tsx +1 -1
  56. package/src/Notion/ConceptNotion.tsx +136 -37
  57. package/src/Notion/FigureNotion.tsx +6 -6
  58. package/src/Notion/Notion.tsx +7 -145
  59. package/src/Notion/NotionImage.tsx +44 -15
  60. package/src/Notion/NotionVisualElement.tsx +35 -8
  61. package/src/Topic/Topic.tsx +1 -1
  62. package/src/index.ts +2 -2
  63. package/src/locale/messages-en.ts +1 -1
  64. package/src/locale/messages-nb.ts +1 -1
  65. package/src/locale/messages-nn.ts +1 -1
  66. package/es/CloseButton/CloseButton.js +0 -46
  67. package/es/CloseButton/index.js +0 -10
  68. package/lib/CloseButton/CloseButton.d.ts +0 -10
  69. package/lib/CloseButton/CloseButton.js +0 -54
  70. package/lib/CloseButton/index.d.ts +0 -10
  71. package/lib/CloseButton/index.js +0 -26
  72. package/src/CloseButton/CloseButton.tsx +0 -36
  73. package/src/CloseButton/index.ts +0 -13
@@ -1,11 +1,8 @@
1
- /**
2
- * Copyright (c) 2022-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
- */
1
+ import { ReactNode } from 'react';
7
2
  import { Copyright } from '../types';
8
3
  export declare type NotionVisualElementType = {
4
+ element?: ReactNode;
5
+ type?: 'video' | 'image' | 'h5p';
9
6
  resource?: string;
10
7
  title?: string;
11
8
  url?: string;
@@ -17,6 +14,8 @@ export declare type NotionVisualElementType = {
17
14
  };
18
15
  interface Props {
19
16
  visualElement: NotionVisualElementType;
17
+ id: string;
18
+ figureId: string;
20
19
  }
21
- declare const NotionVisualElement: ({ visualElement }: Props) => JSX.Element;
20
+ declare const NotionVisualElement: ({ visualElement, id, figureId }: Props) => JSX.Element;
22
21
  export default NotionVisualElement;
@@ -5,34 +5,60 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
 
8
+ var _styledBase = _interopRequireDefault(require("@emotion/styled-base"));
9
+
10
+ var _core = require("@emotion/core");
11
+
8
12
  var _react = _interopRequireDefault(require("react"));
9
13
 
10
14
  var _FigureNotion = _interopRequireDefault(require("./FigureNotion"));
11
15
 
12
- var _core = require("@emotion/core");
13
-
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
17
 
16
- /**
17
- * Copyright (c) 2022-present, NDLA.
18
- *
19
- * This source code is licensed under the GPLv3 license found in the
20
- * LICENSE file in the root directory of this source tree. *
21
- */
22
- var supportedEmbedTypes = ['brightcove', 'h5p', 'iframe', 'external'];
18
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
19
+
20
+ var _ref = process.env.NODE_ENV === "production" ? {
21
+ name: "fifnyn-StyledIframe",
22
+ styles: "min-height:400px;;label:StyledIframe;"
23
+ } : {
24
+ name: "fifnyn-StyledIframe",
25
+ styles: "min-height:400px;;label:StyledIframe;",
26
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk5vdGlvblZpc3VhbEVsZW1lbnQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVXIiwiZmlsZSI6Ik5vdGlvblZpc3VhbEVsZW1lbnQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjItcHJlc2VudCwgTkRMQS5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEx2MyBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiAqXG4gKi9cbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2NvcmUnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENvcHlyaWdodCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCBGaWd1cmVOb3Rpb24gZnJvbSAnLi9GaWd1cmVOb3Rpb24nO1xuXG5jb25zdCBTdHlsZWRJZnJhbWUgPSBzdHlsZWQuaWZyYW1lPHsgdHlwZTogc3RyaW5nIH0+YFxuICAkeyhwcm9wcykgPT5cbiAgICBwcm9wcy50eXBlID09PSAndmlkZW8nXG4gICAgICA/IGNzc2BcbiAgICAgICAgICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgICAgICAgYFxuICAgICAgOiAnJ31cbmA7XG5cbmV4cG9ydCB0eXBlIE5vdGlvblZpc3VhbEVsZW1lbnRUeXBlID0ge1xuICBlbGVtZW50PzogUmVhY3ROb2RlO1xuICB0eXBlPzogJ3ZpZGVvJyB8ICdpbWFnZScgfCAnaDVwJztcbiAgcmVzb3VyY2U/OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICB1cmw/OiBzdHJpbmc7XG4gIGNvcHlyaWdodD86IFBhcnRpYWw8Q29weXJpZ2h0PjtcbiAgaW1hZ2U/OiB7XG4gICAgc3JjOiBzdHJpbmc7XG4gICAgYWx0Pzogc3RyaW5nO1xuICB9O1xufTtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgdmlzdWFsRWxlbWVudDogTm90aW9uVmlzdWFsRWxlbWVudFR5cGU7XG4gIGlkOiBzdHJpbmc7XG4gIGZpZ3VyZUlkOiBzdHJpbmc7XG59XG5jb25zdCBzdXBwb3J0ZWRFbWJlZFR5cGVzID0gWydicmlnaHRjb3ZlJywgJ2g1cCcsICdpZnJhbWUnLCAnZXh0ZXJuYWwnLCAnaW1hZ2UnXTtcblxuY29uc3QgZ2V0VHlwZSA9IChyZXNvdXJjZTogc3RyaW5nKSA9PiB7XG4gIGlmIChyZXNvdXJjZSA9PT0gJ2JyaWdodGNvdmUnKSB7XG4gICAgcmV0dXJuICd2aWRlbyc7XG4gIH1cbiAgaWYgKHJlc291cmNlID09PSAnaW1hZ2UnKSB7XG4gICAgcmV0dXJuICdpbWFnZSc7XG4gIH1cbiAgcmV0dXJuICdoNXAnO1xufTtcblxuY29uc3QgTm90aW9uVmlzdWFsRWxlbWVudCA9ICh7IHZpc3VhbEVsZW1lbnQsIGlkLCBmaWd1cmVJZCB9OiBQcm9wcykgPT4ge1xuICBpZiAoIXZpc3VhbEVsZW1lbnQucmVzb3VyY2UgfHwgIXN1cHBvcnRlZEVtYmVkVHlwZXMuaW5jbHVkZXModmlzdWFsRWxlbWVudC5yZXNvdXJjZSkpIHtcbiAgICByZXR1cm4gPHA+RW1iZWQgdHlwZSBpcyBub3Qgc3VwcG9ydGVkITwvcD47XG4gIH1cblxuICBjb25zdCB0eXBlID0gZ2V0VHlwZSh2aXN1YWxFbGVtZW50LnJlc291cmNlKTtcblxuICByZXR1cm4gKFxuICAgIDxGaWd1cmVOb3Rpb25cbiAgICAgIHJlc2l6ZUlmcmFtZVxuICAgICAgaWQ9e2lkfVxuICAgICAgZmlndXJlSWQ9e2ZpZ3VyZUlkfVxuICAgICAgdGl0bGU9e3Zpc3VhbEVsZW1lbnQudGl0bGUgPz8gJyd9XG4gICAgICBjb3B5cmlnaHQ9e3Zpc3VhbEVsZW1lbnQuY29weXJpZ2h0fVxuICAgICAgbGljZW5zZVN0cmluZz17dmlzdWFsRWxlbWVudC5jb3B5cmlnaHQ/LmxpY2Vuc2U/LmxpY2Vuc2UgPz8gJyd9XG4gICAgICB0eXBlPXt0eXBlfT5cbiAgICAgIHt2aXN1YWxFbGVtZW50LmltYWdlPy5zcmMgPyAoXG4gICAgICAgIDxpbWcgc3JjPXt2aXN1YWxFbGVtZW50LmltYWdlPy5zcmN9IGFsdD17dmlzdWFsRWxlbWVudC5pbWFnZS5hbHR9IC8+XG4gICAgICApIDogKFxuICAgICAgICA8U3R5bGVkSWZyYW1lIHR5cGU9e3R5cGV9IHNyYz17dmlzdWFsRWxlbWVudC51cmx9IHRpdGxlPXt2aXN1YWxFbGVtZW50LnRpdGxlfSAvPlxuICAgICAgKX1cbiAgICA8L0ZpZ3VyZU5vdGlvbj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5vdGlvblZpc3VhbEVsZW1lbnQ7XG4iXX0= */",
27
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
28
+ };
29
+
30
+ var StyledIframe = (0, _styledBase["default"])("iframe", {
31
+ target: "e1hql2mu0",
32
+ label: "StyledIframe"
33
+ })(function (props) {
34
+ return props.type === 'video' ? _ref : '';
35
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk5vdGlvblZpc3VhbEVsZW1lbnQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlvRCIsImZpbGUiOiJOb3Rpb25WaXN1YWxFbGVtZW50LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIyLXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gKlxuICovXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb3B5cmlnaHQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgRmlndXJlTm90aW9uIGZyb20gJy4vRmlndXJlTm90aW9uJztcblxuY29uc3QgU3R5bGVkSWZyYW1lID0gc3R5bGVkLmlmcmFtZTx7IHR5cGU6IHN0cmluZyB9PmBcbiAgJHsocHJvcHMpID0+XG4gICAgcHJvcHMudHlwZSA9PT0gJ3ZpZGVvJ1xuICAgICAgPyBjc3NgXG4gICAgICAgICAgbWluLWhlaWdodDogNDAwcHg7XG4gICAgICAgIGBcbiAgICAgIDogJyd9XG5gO1xuXG5leHBvcnQgdHlwZSBOb3Rpb25WaXN1YWxFbGVtZW50VHlwZSA9IHtcbiAgZWxlbWVudD86IFJlYWN0Tm9kZTtcbiAgdHlwZT86ICd2aWRlbycgfCAnaW1hZ2UnIHwgJ2g1cCc7XG4gIHJlc291cmNlPzogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgdXJsPzogc3RyaW5nO1xuICBjb3B5cmlnaHQ/OiBQYXJ0aWFsPENvcHlyaWdodD47XG4gIGltYWdlPzoge1xuICAgIHNyYzogc3RyaW5nO1xuICAgIGFsdD86IHN0cmluZztcbiAgfTtcbn07XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIHZpc3VhbEVsZW1lbnQ6IE5vdGlvblZpc3VhbEVsZW1lbnRUeXBlO1xuICBpZDogc3RyaW5nO1xuICBmaWd1cmVJZDogc3RyaW5nO1xufVxuY29uc3Qgc3VwcG9ydGVkRW1iZWRUeXBlcyA9IFsnYnJpZ2h0Y292ZScsICdoNXAnLCAnaWZyYW1lJywgJ2V4dGVybmFsJywgJ2ltYWdlJ107XG5cbmNvbnN0IGdldFR5cGUgPSAocmVzb3VyY2U6IHN0cmluZykgPT4ge1xuICBpZiAocmVzb3VyY2UgPT09ICdicmlnaHRjb3ZlJykge1xuICAgIHJldHVybiAndmlkZW8nO1xuICB9XG4gIGlmIChyZXNvdXJjZSA9PT0gJ2ltYWdlJykge1xuICAgIHJldHVybiAnaW1hZ2UnO1xuICB9XG4gIHJldHVybiAnaDVwJztcbn07XG5cbmNvbnN0IE5vdGlvblZpc3VhbEVsZW1lbnQgPSAoeyB2aXN1YWxFbGVtZW50LCBpZCwgZmlndXJlSWQgfTogUHJvcHMpID0+IHtcbiAgaWYgKCF2aXN1YWxFbGVtZW50LnJlc291cmNlIHx8ICFzdXBwb3J0ZWRFbWJlZFR5cGVzLmluY2x1ZGVzKHZpc3VhbEVsZW1lbnQucmVzb3VyY2UpKSB7XG4gICAgcmV0dXJuIDxwPkVtYmVkIHR5cGUgaXMgbm90IHN1cHBvcnRlZCE8L3A+O1xuICB9XG5cbiAgY29uc3QgdHlwZSA9IGdldFR5cGUodmlzdWFsRWxlbWVudC5yZXNvdXJjZSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmlndXJlTm90aW9uXG4gICAgICByZXNpemVJZnJhbWVcbiAgICAgIGlkPXtpZH1cbiAgICAgIGZpZ3VyZUlkPXtmaWd1cmVJZH1cbiAgICAgIHRpdGxlPXt2aXN1YWxFbGVtZW50LnRpdGxlID8/ICcnfVxuICAgICAgY29weXJpZ2h0PXt2aXN1YWxFbGVtZW50LmNvcHlyaWdodH1cbiAgICAgIGxpY2Vuc2VTdHJpbmc9e3Zpc3VhbEVsZW1lbnQuY29weXJpZ2h0Py5saWNlbnNlPy5saWNlbnNlID8/ICcnfVxuICAgICAgdHlwZT17dHlwZX0+XG4gICAgICB7dmlzdWFsRWxlbWVudC5pbWFnZT8uc3JjID8gKFxuICAgICAgICA8aW1nIHNyYz17dmlzdWFsRWxlbWVudC5pbWFnZT8uc3JjfSBhbHQ9e3Zpc3VhbEVsZW1lbnQuaW1hZ2UuYWx0fSAvPlxuICAgICAgKSA6IChcbiAgICAgICAgPFN0eWxlZElmcmFtZSB0eXBlPXt0eXBlfSBzcmM9e3Zpc3VhbEVsZW1lbnQudXJsfSB0aXRsZT17dmlzdWFsRWxlbWVudC50aXRsZX0gLz5cbiAgICAgICl9XG4gICAgPC9GaWd1cmVOb3Rpb24+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOb3Rpb25WaXN1YWxFbGVtZW50O1xuIl19 */");
36
+ var supportedEmbedTypes = ['brightcove', 'h5p', 'iframe', 'external', 'image'];
37
+
38
+ var getType = function getType(resource) {
39
+ if (resource === 'brightcove') {
40
+ return 'video';
41
+ }
42
+
43
+ if (resource === 'image') {
44
+ return 'image';
45
+ }
46
+
47
+ return 'h5p';
48
+ };
23
49
 
24
- var NotionVisualElement = function NotionVisualElement(_ref) {
25
- var _visualElement$title, _visualElement$copyri, _visualElement$copyri2, _visualElement$copyri3;
50
+ var NotionVisualElement = function NotionVisualElement(_ref2) {
51
+ var _visualElement$title, _visualElement$copyri, _visualElement$copyri2, _visualElement$copyri3, _visualElement$image, _visualElement$image2;
26
52
 
27
- var visualElement = _ref.visualElement;
28
- var id = '1';
29
- var figureId = 'figure-1';
53
+ var visualElement = _ref2.visualElement,
54
+ id = _ref2.id,
55
+ figureId = _ref2.figureId;
30
56
 
31
57
  if (!visualElement.resource || !supportedEmbedTypes.includes(visualElement.resource)) {
32
58
  return (0, _core.jsx)("p", null, "Embed type is not supported!");
33
59
  }
34
60
 
35
- var type = visualElement.resource === 'brightcove' ? 'video' : 'h5p';
61
+ var type = getType(visualElement.resource);
36
62
  return (0, _core.jsx)(_FigureNotion["default"], {
37
63
  resizeIframe: true,
38
64
  id: id,
@@ -41,9 +67,13 @@ var NotionVisualElement = function NotionVisualElement(_ref) {
41
67
  copyright: visualElement.copyright,
42
68
  licenseString: (_visualElement$copyri = (_visualElement$copyri2 = visualElement.copyright) === null || _visualElement$copyri2 === void 0 ? void 0 : (_visualElement$copyri3 = _visualElement$copyri2.license) === null || _visualElement$copyri3 === void 0 ? void 0 : _visualElement$copyri3.license) !== null && _visualElement$copyri !== void 0 ? _visualElement$copyri : '',
43
69
  type: type
44
- }, (0, _core.jsx)("iframe", {
45
- title: visualElement.title,
46
- src: visualElement.url
70
+ }, ((_visualElement$image = visualElement.image) === null || _visualElement$image === void 0 ? void 0 : _visualElement$image.src) ? (0, _core.jsx)("img", {
71
+ src: (_visualElement$image2 = visualElement.image) === null || _visualElement$image2 === void 0 ? void 0 : _visualElement$image2.src,
72
+ alt: visualElement.image.alt
73
+ }) : (0, _core.jsx)(StyledIframe, {
74
+ type: type,
75
+ src: visualElement.url,
76
+ title: visualElement.title
47
77
  }));
48
78
  };
49
79