@ndla/ui 55.0.13-alpha.0 → 55.0.14-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 +120 -1
- package/dist/styles.css +511 -0
- package/es/Article/ArticleParagraph.js +11 -13
- package/es/CampaignBlock/CampaignBlock.js +103 -68
- package/es/Concept/Concept.js +69 -0
- package/es/ContentTypeBadge/ContentTypeBadgeNew.js +48 -0
- package/es/Embed/AudioEmbed.js +1 -2
- package/es/Embed/BrightcoveEmbed.js +13 -24
- package/es/Embed/ConceptEmbed.js +57 -301
- package/es/Embed/ConceptListEmbed.js +18 -24
- package/es/Embed/ContentLinkEmbed.js +10 -10
- package/es/Embed/CopyrightEmbed.js +4 -21
- package/es/Embed/ExternalEmbed.js +10 -18
- package/es/Embed/FootnoteEmbed.js +11 -8
- package/es/Embed/GlossEmbed.js +68 -0
- package/es/Embed/H5pEmbed.js +19 -19
- package/es/Embed/IframeEmbed.js +9 -6
- package/es/Embed/InlineTriggerButton.js +70 -0
- package/es/Embed/UnknownEmbed.js +9 -9
- package/es/Embed/UuDisclaimerEmbed.js +14 -25
- package/es/Embed/index.js +1 -3
- package/es/ErrorMessage/ErrorMessage.js +41 -22
- package/es/ErrorMessage/ErrorResourceAccessDenied.js +8 -6
- package/es/FactBox/FactBox.js +118 -47
- package/es/FileList/PdfFile.js +23 -5
- package/es/Gloss/Gloss.js +116 -86
- package/es/Gloss/GlossExample.js +49 -51
- package/es/LinkBlock/LinkBlock.js +61 -33
- package/es/LinkBlock/LinkBlockSection.js +9 -6
- package/es/Logo/Logo.js +1 -30
- package/es/RelatedArticleList/RelatedArticleList.js +70 -87
- package/es/ResourceBox/ResourceBox.js +65 -37
- package/es/TagSelector/TagSelector.js +124 -131
- package/es/i18n/index.js +2 -1
- package/es/i18n/useComponentTranslations.js +83 -0
- package/es/index.js +4 -11
- package/es/locale/messages-en.js +30 -4
- package/es/locale/messages-nb.js +30 -4
- package/es/locale/messages-nn.js +30 -4
- package/es/locale/messages-se.js +30 -4
- package/es/locale/messages-sma.js +30 -4
- package/es/model/ContentType.js +3 -0
- package/es/styles.css +511 -0
- package/lib/Article/ArticleParagraph.js +12 -14
- package/lib/CampaignBlock/CampaignBlock.d.ts +2 -2
- package/lib/CampaignBlock/CampaignBlock.js +106 -68
- package/lib/Concept/Concept.d.ts +18 -0
- package/lib/Concept/Concept.js +75 -0
- package/lib/ContentTypeBadge/ContentTypeBadgeNew.d.ts +17 -0
- package/lib/ContentTypeBadge/ContentTypeBadgeNew.js +56 -0
- package/lib/Embed/AudioEmbed.js +2 -3
- package/lib/Embed/BrightcoveEmbed.d.ts +1 -2
- package/lib/Embed/BrightcoveEmbed.js +16 -25
- package/lib/Embed/ConceptEmbed.d.ts +15 -21
- package/lib/Embed/ConceptEmbed.js +58 -301
- package/lib/Embed/ConceptListEmbed.js +21 -26
- package/lib/Embed/ContentLinkEmbed.js +10 -11
- package/lib/Embed/CopyrightEmbed.js +6 -22
- package/lib/Embed/ExternalEmbed.d.ts +1 -2
- package/lib/Embed/ExternalEmbed.js +13 -19
- package/lib/Embed/FootnoteEmbed.js +11 -9
- package/lib/Embed/GlossEmbed.d.ts +13 -0
- package/lib/Embed/GlossEmbed.js +76 -0
- package/lib/Embed/H5pEmbed.d.ts +1 -2
- package/lib/Embed/H5pEmbed.js +21 -19
- package/lib/Embed/IframeEmbed.d.ts +1 -2
- package/lib/Embed/IframeEmbed.js +11 -8
- package/lib/Embed/InlineTriggerButton.d.ts +11 -0
- package/lib/Embed/InlineTriggerButton.js +76 -0
- package/lib/Embed/UnknownEmbed.js +9 -10
- package/lib/Embed/UuDisclaimerEmbed.js +16 -26
- package/lib/Embed/index.d.ts +2 -3
- package/lib/Embed/index.js +2 -9
- package/lib/ErrorMessage/ErrorMessage.js +40 -23
- package/lib/ErrorMessage/ErrorResourceAccessDenied.js +7 -6
- package/lib/FactBox/FactBox.d.ts +0 -1
- package/lib/FactBox/FactBox.js +119 -46
- package/lib/FileList/PdfFile.js +23 -5
- package/lib/Gloss/Gloss.d.ts +10 -2
- package/lib/Gloss/Gloss.js +116 -85
- package/lib/Gloss/GlossExample.d.ts +3 -5
- package/lib/Gloss/GlossExample.js +49 -52
- package/lib/LinkBlock/LinkBlock.js +62 -34
- package/lib/LinkBlock/LinkBlockSection.js +9 -7
- package/lib/Logo/Logo.d.ts +1 -3
- package/lib/Logo/Logo.js +2 -30
- package/lib/RelatedArticleList/RelatedArticleList.d.ts +4 -4
- package/lib/RelatedArticleList/RelatedArticleList.js +74 -90
- package/lib/ResourceBox/ResourceBox.js +64 -37
- package/lib/TagSelector/TagSelector.d.ts +27 -12
- package/lib/TagSelector/TagSelector.js +126 -131
- package/lib/i18n/index.d.ts +1 -0
- package/lib/i18n/index.js +20 -1
- package/lib/i18n/useComponentTranslations.d.ts +14 -0
- package/lib/i18n/useComponentTranslations.js +93 -0
- package/lib/index.d.ts +5 -14
- package/lib/index.js +70 -89
- package/lib/locale/messages-en.d.ts +26 -0
- package/lib/locale/messages-en.js +30 -4
- package/lib/locale/messages-nb.d.ts +26 -0
- package/lib/locale/messages-nb.js +30 -4
- package/lib/locale/messages-nn.d.ts +26 -0
- package/lib/locale/messages-nn.js +30 -4
- package/lib/locale/messages-se.d.ts +26 -0
- package/lib/locale/messages-se.js +30 -4
- package/lib/locale/messages-sma.d.ts +26 -0
- package/lib/locale/messages-sma.js +30 -4
- package/lib/model/ContentType.d.ts +3 -0
- package/lib/model/ContentType.js +4 -1
- package/lib/styles.css +511 -0
- package/package.json +11 -13
- package/src/Article/ArticleParagraph.tsx +11 -9
- package/src/CampaignBlock/CampaignBlock.tsx +92 -55
- package/src/Concept/Concept.stories.tsx +142 -0
- package/src/Concept/Concept.tsx +73 -0
- package/src/ContentTypeBadge/ContentTypeBadgeNew.stories.tsx +70 -0
- package/src/ContentTypeBadge/ContentTypeBadgeNew.tsx +69 -0
- package/src/Embed/AudioEmbed.tsx +2 -2
- package/src/Embed/BrightcoveEmbed.stories.tsx +0 -3
- package/src/Embed/BrightcoveEmbed.tsx +17 -19
- package/src/Embed/ConceptEmbed.stories.tsx +1 -105
- package/src/Embed/ConceptEmbed.tsx +60 -385
- package/src/Embed/ConceptListEmbed.tsx +20 -19
- package/src/Embed/ContentLinkEmbed.tsx +8 -10
- package/src/Embed/CopyrightEmbed.tsx +1 -11
- package/src/Embed/ExternalEmbed.tsx +14 -17
- package/src/Embed/FootnoteEmbed.stories.tsx +2 -5
- package/src/Embed/FootnoteEmbed.tsx +13 -16
- package/src/Embed/GlossEmbed.stories.tsx +140 -0
- package/src/Embed/GlossEmbed.tsx +64 -0
- package/src/Embed/H5pEmbed.tsx +22 -16
- package/src/Embed/IframeEmbed.tsx +12 -6
- package/src/Embed/InlineTriggerButton.tsx +72 -0
- package/src/Embed/UnknownEmbed.tsx +6 -7
- package/src/Embed/UuDisclaimerEmbed.stories.tsx +4 -4
- package/src/Embed/UuDisclaimerEmbed.tsx +17 -25
- package/src/Embed/index.ts +2 -3
- package/src/ErrorMessage/ErrorMessage.tsx +40 -29
- package/src/ErrorMessage/ErrorResourceAccessDenied.tsx +8 -6
- package/src/FactBox/FactBox.tsx +115 -115
- package/src/FactBox/Factbox.stories.tsx +43 -27
- package/src/FileList/FileList.stories.tsx +6 -1
- package/src/FileList/PdfFile.tsx +22 -5
- package/src/Gloss/Gloss.stories.tsx +107 -1
- package/src/Gloss/Gloss.tsx +143 -156
- package/src/Gloss/GlossExample.tsx +51 -77
- package/src/LinkBlock/LinkBlock.stories.tsx +8 -10
- package/src/LinkBlock/LinkBlock.tsx +54 -59
- package/src/LinkBlock/LinkBlockSection.tsx +9 -12
- package/src/Logo/Logo.stories.tsx +0 -1
- package/src/Logo/Logo.tsx +2 -30
- package/src/RelatedArticleList/RelatedArticleList.tsx +69 -88
- package/src/ResourceBox/ResourceBox.tsx +63 -59
- package/src/TagSelector/TagSelector.stories.tsx +92 -68
- package/src/TagSelector/TagSelector.tsx +161 -126
- package/src/i18n/index.ts +5 -0
- package/src/i18n/useComponentTranslations.ts +72 -0
- package/src/index.ts +23 -18
- package/src/locale/messages-en.ts +28 -2
- package/src/locale/messages-nb.ts +28 -2
- package/src/locale/messages-nn.ts +28 -2
- package/src/locale/messages-se.ts +28 -2
- package/src/locale/messages-sma.ts +28 -2
- package/src/model/ContentType.ts +3 -0
- package/es/DefinitionList/DefinitionDescription.js +0 -28
- package/es/DefinitionList/DefinitionTerm.js +0 -28
- package/es/DefinitionList/index.js +0 -10
- package/es/Embed/conceptComponents.js +0 -155
- package/es/ExpandableBox/ExpandableBox.js +0 -29
- package/es/ExpandableBox/index.js +0 -9
- package/es/Figure/Figure.js +0 -73
- package/es/Figure/index.js +0 -9
- package/es/FramedContent/FramedContent.js +0 -28
- package/es/FramedContent/index.js +0 -10
- package/es/Image/Image.js +0 -99
- package/es/Image/ImageLink.js +0 -39
- package/es/Image/index.js +0 -12
- package/es/LetterFilter/LetterFilter.js +0 -54
- package/es/LetterFilter/alphabet.js +0 -9
- package/es/LetterFilter/index.js +0 -10
- package/es/Notion/Notion.js +0 -76
- package/es/Notion/NotionImage.js +0 -46
- package/es/Notion/index.js +0 -9
- package/es/Table/Table.js +0 -141
- package/es/Table/index.js +0 -11
- package/es/TagSelector/Control.js +0 -28
- package/es/TagSelector/DropdownIndicator.js +0 -60
- package/es/TagSelector/Input.js +0 -22
- package/es/TagSelector/Menu.js +0 -27
- package/es/TagSelector/MenuList.js +0 -28
- package/es/TagSelector/Option.js +0 -60
- package/es/TagSelector/SelectContainer.js +0 -27
- package/es/TagSelector/ValueButton.js +0 -53
- package/es/TagSelector/ariaMessages.js +0 -94
- package/es/TagSelector/index.js +0 -10
- package/es/TagSelector/types.js +0 -1
- package/lib/DefinitionList/DefinitionDescription.d.ts +0 -10
- package/lib/DefinitionList/DefinitionDescription.js +0 -35
- package/lib/DefinitionList/DefinitionTerm.d.ts +0 -10
- package/lib/DefinitionList/DefinitionTerm.js +0 -35
- package/lib/DefinitionList/index.d.ts +0 -9
- package/lib/DefinitionList/index.js +0 -20
- package/lib/Embed/conceptComponents.d.ts +0 -40
- package/lib/Embed/conceptComponents.js +0 -163
- package/lib/ExpandableBox/ExpandableBox.d.ts +0 -15
- package/lib/ExpandableBox/ExpandableBox.js +0 -37
- package/lib/ExpandableBox/index.d.ts +0 -8
- package/lib/ExpandableBox/index.js +0 -18
- package/lib/Figure/Figure.d.ts +0 -16
- package/lib/Figure/Figure.js +0 -81
- package/lib/Figure/index.d.ts +0 -9
- package/lib/Figure/index.js +0 -13
- package/lib/FramedContent/FramedContent.d.ts +0 -12
- package/lib/FramedContent/FramedContent.js +0 -35
- package/lib/FramedContent/index.d.ts +0 -9
- package/lib/FramedContent/index.js +0 -16
- package/lib/Image/Image.d.ts +0 -38
- package/lib/Image/Image.js +0 -105
- package/lib/Image/ImageLink.d.ts +0 -18
- package/lib/Image/ImageLink.js +0 -44
- package/lib/Image/index.d.ts +0 -12
- package/lib/Image/index.js +0 -30
- package/lib/LetterFilter/LetterFilter.d.ts +0 -14
- package/lib/LetterFilter/LetterFilter.js +0 -61
- package/lib/LetterFilter/alphabet.d.ts +0 -8
- package/lib/LetterFilter/alphabet.js +0 -15
- package/lib/LetterFilter/index.d.ts +0 -9
- package/lib/LetterFilter/index.js +0 -16
- package/lib/Notion/Notion.d.ts +0 -20
- package/lib/Notion/Notion.js +0 -82
- package/lib/Notion/NotionImage.d.ts +0 -13
- package/lib/Notion/NotionImage.js +0 -54
- package/lib/Notion/index.d.ts +0 -8
- package/lib/Notion/index.js +0 -13
- package/lib/Table/Table.d.ts +0 -19
- package/lib/Table/Table.js +0 -145
- package/lib/Table/index.d.ts +0 -10
- package/lib/Table/index.js +0 -23
- package/lib/TagSelector/Control.d.ts +0 -11
- package/lib/TagSelector/Control.js +0 -35
- package/lib/TagSelector/DropdownIndicator.d.ts +0 -11
- package/lib/TagSelector/DropdownIndicator.js +0 -64
- package/lib/TagSelector/Input.d.ts +0 -12
- package/lib/TagSelector/Input.js +0 -29
- package/lib/TagSelector/Menu.d.ts +0 -12
- package/lib/TagSelector/Menu.js +0 -34
- package/lib/TagSelector/MenuList.d.ts +0 -16
- package/lib/TagSelector/MenuList.js +0 -35
- package/lib/TagSelector/Option.d.ts +0 -12
- package/lib/TagSelector/Option.js +0 -67
- package/lib/TagSelector/SelectContainer.d.ts +0 -11
- package/lib/TagSelector/SelectContainer.js +0 -34
- package/lib/TagSelector/ValueButton.d.ts +0 -20
- package/lib/TagSelector/ValueButton.js +0 -60
- package/lib/TagSelector/ariaMessages.d.ts +0 -16
- package/lib/TagSelector/ariaMessages.js +0 -101
- package/lib/TagSelector/index.d.ts +0 -11
- package/lib/TagSelector/index.js +0 -13
- package/lib/TagSelector/types.d.ts +0 -11
- package/lib/TagSelector/types.js +0 -5
- package/src/DefinitionList/DefinitionDescription.tsx +0 -26
- package/src/DefinitionList/DefinitionTerm.tsx +0 -26
- package/src/DefinitionList/index.tsx +0 -10
- package/src/Embed/conceptComponents.tsx +0 -293
- package/src/ExpandableBox/ExpandableBox.stories.tsx +0 -41
- package/src/ExpandableBox/ExpandableBox.tsx +0 -23
- package/src/ExpandableBox/index.ts +0 -9
- package/src/Figure/Figure.tsx +0 -167
- package/src/Figure/index.ts +0 -11
- package/src/FramedContent/FramedContent.stories.tsx +0 -152
- package/src/FramedContent/FramedContent.tsx +0 -26
- package/src/FramedContent/index.ts +0 -10
- package/src/Image/Image.stories.tsx +0 -61
- package/src/Image/Image.tsx +0 -147
- package/src/Image/ImageLink.tsx +0 -37
- package/src/Image/index.ts +0 -14
- package/src/LetterFilter/LetterFilter.stories.tsx +0 -29
- package/src/LetterFilter/LetterFilter.tsx +0 -78
- package/src/LetterFilter/alphabet.ts +0 -39
- package/src/LetterFilter/index.ts +0 -11
- package/src/Notion/Notion.tsx +0 -96
- package/src/Notion/NotionImage.tsx +0 -64
- package/src/Notion/index.ts +0 -9
- package/src/Table/Table.stories.tsx +0 -738
- package/src/Table/Table.tsx +0 -284
- package/src/Table/index.ts +0 -12
- package/src/TagSelector/Control.tsx +0 -34
- package/src/TagSelector/DropdownIndicator.tsx +0 -55
- package/src/TagSelector/Input.tsx +0 -31
- package/src/TagSelector/Menu.tsx +0 -38
- package/src/TagSelector/MenuList.tsx +0 -30
- package/src/TagSelector/Option.tsx +0 -58
- package/src/TagSelector/SelectContainer.tsx +0 -31
- package/src/TagSelector/ValueButton.tsx +0 -47
- package/src/TagSelector/ariaMessages.ts +0 -96
- package/src/TagSelector/index.ts +0 -14
- package/src/TagSelector/types.ts +0 -12
|
@@ -1,293 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2023-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
|
-
/** @jsxImportSource @emotion/react */
|
|
10
|
-
import { forwardRef, ReactNode, RefAttributes } from "react";
|
|
11
|
-
import { useTranslation } from "react-i18next";
|
|
12
|
-
import { css } from "@emotion/react";
|
|
13
|
-
import styled from "@emotion/styled";
|
|
14
|
-
import { breakpoints, colors, fonts, misc, mq, spacing, stackOrder } from "@ndla/core";
|
|
15
|
-
import { ConceptData, ConceptVisualElementMeta } from "@ndla/types-embed";
|
|
16
|
-
import { ExternalEmbed, IframeEmbed } from ".";
|
|
17
|
-
import BrightcoveEmbed from "./BrightcoveEmbed";
|
|
18
|
-
import H5pEmbed from "./H5pEmbed";
|
|
19
|
-
import ImageEmbed from "./ImageEmbed";
|
|
20
|
-
import { Gloss } from "../Gloss";
|
|
21
|
-
import { LicenseContainerContent } from "../LicenseByline/EmbedByline";
|
|
22
|
-
import { Copyright } from "../types";
|
|
23
|
-
|
|
24
|
-
export type ConceptType = "concept" | "gloss";
|
|
25
|
-
|
|
26
|
-
export interface ConceptNotionData {
|
|
27
|
-
title: ConceptData["concept"]["title"];
|
|
28
|
-
content?: ReactNode;
|
|
29
|
-
metaImage?: {
|
|
30
|
-
url?: string;
|
|
31
|
-
alt?: string;
|
|
32
|
-
};
|
|
33
|
-
copyright?: Copyright;
|
|
34
|
-
source?: string;
|
|
35
|
-
visualElement?: ConceptVisualElementMeta;
|
|
36
|
-
conceptType: ConceptData["concept"]["conceptType"];
|
|
37
|
-
glossData?: ConceptData["concept"]["glossData"];
|
|
38
|
-
lang?: string;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
interface ConceptNotionProps extends RefAttributes<HTMLDivElement>, Omit<ConceptNotionData, "metaImage"> {
|
|
42
|
-
className?: string;
|
|
43
|
-
closeButton?: ReactNode;
|
|
44
|
-
previewAlt?: boolean;
|
|
45
|
-
inPopover?: boolean;
|
|
46
|
-
tags?: string[];
|
|
47
|
-
subjects?: string[];
|
|
48
|
-
headerButtons?: ReactNode;
|
|
49
|
-
exampleIds?: string;
|
|
50
|
-
exampleLangs?: string;
|
|
51
|
-
showTitle?: boolean;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
const NotionDialogText = styled.div`
|
|
55
|
-
font-weight: ${fonts.weight.normal};
|
|
56
|
-
${fonts.sizes("18px", 1.3)};
|
|
57
|
-
color: ${colors.text.primary};
|
|
58
|
-
font-family: ${fonts.sans};
|
|
59
|
-
`;
|
|
60
|
-
|
|
61
|
-
const NotionDialogContent = styled.div`
|
|
62
|
-
padding-bottom: ${spacing.normal};
|
|
63
|
-
display: flex;
|
|
64
|
-
flex-direction: column;
|
|
65
|
-
`;
|
|
66
|
-
|
|
67
|
-
const ContentSpacing = styled.div`
|
|
68
|
-
padding: ${spacing.normal};
|
|
69
|
-
&[data-is-concept="false"] {
|
|
70
|
-
margin-bottom: ${spacing.normal};
|
|
71
|
-
}
|
|
72
|
-
`;
|
|
73
|
-
|
|
74
|
-
const notionContentCss = css`
|
|
75
|
-
@keyframes animateIn {
|
|
76
|
-
0% {
|
|
77
|
-
opacity: 0;
|
|
78
|
-
transform: translate3d(0, -13px, 0);
|
|
79
|
-
}
|
|
80
|
-
100% {
|
|
81
|
-
opacity: 1;
|
|
82
|
-
transform: translate3d(0, 0, 0);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
animation-name: animateIn;
|
|
87
|
-
animation-duration: 300ms;
|
|
88
|
-
background-color: white;
|
|
89
|
-
z-index: ${stackOrder.offsetSingle};
|
|
90
|
-
box-shadow: 0 0 30px rgba(0, 0, 0, 0.2);
|
|
91
|
-
${mq.range({ from: breakpoints.tablet })} {
|
|
92
|
-
width: 500px;
|
|
93
|
-
}
|
|
94
|
-
${mq.range({ from: breakpoints.desktop })} {
|
|
95
|
-
width: 720px;
|
|
96
|
-
max-width: 60vw;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
${mq.range({ until: breakpoints.tablet })} {
|
|
100
|
-
padding: ${spacing.small};
|
|
101
|
-
z-index: ${stackOrder.popover};
|
|
102
|
-
height: 100%;
|
|
103
|
-
width: 100%;
|
|
104
|
-
overflow: auto;
|
|
105
|
-
}
|
|
106
|
-
`;
|
|
107
|
-
|
|
108
|
-
const NotionHeader = styled.div`
|
|
109
|
-
display: flex;
|
|
110
|
-
align-items: center;
|
|
111
|
-
justify-content: flex-end;
|
|
112
|
-
border-bottom: 2px solid ${colors.brand.tertiary};
|
|
113
|
-
padding-bottom: ${spacing.small};
|
|
114
|
-
h1 {
|
|
115
|
-
display: flex;
|
|
116
|
-
align-items: center;
|
|
117
|
-
flex-wrap: wrap;
|
|
118
|
-
flex-grow: 1;
|
|
119
|
-
margin: 0;
|
|
120
|
-
font-weight: ${fonts.weight.bold};
|
|
121
|
-
${fonts.sizes("22px", 1.2)};
|
|
122
|
-
}
|
|
123
|
-
small {
|
|
124
|
-
display: flex;
|
|
125
|
-
${fonts.sizes("20px", 1.2)};
|
|
126
|
-
font-weight: ${fonts.weight.normal};
|
|
127
|
-
}
|
|
128
|
-
${mq.range({ from: breakpoints.mobileWide })} {
|
|
129
|
-
&[data-is-concept="true"] {
|
|
130
|
-
small:before {
|
|
131
|
-
display: inline-flex;
|
|
132
|
-
align-self: center;
|
|
133
|
-
margin: 0 ${spacing.xsmall};
|
|
134
|
-
content: "";
|
|
135
|
-
height: ${spacing.normal};
|
|
136
|
-
width: 1px;
|
|
137
|
-
background-color: ${colors.brand.greyLight};
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
&[data-is-concept="false"] {
|
|
142
|
-
margin-bottom: ${spacing.large};
|
|
143
|
-
}
|
|
144
|
-
`;
|
|
145
|
-
|
|
146
|
-
const ListWrapper = styled.div`
|
|
147
|
-
display: flex;
|
|
148
|
-
gap: ${spacing.small};
|
|
149
|
-
align-items: center;
|
|
150
|
-
`;
|
|
151
|
-
|
|
152
|
-
const StyledNotionDialogContent = styled(NotionDialogContent)`
|
|
153
|
-
padding-top: ${spacing.small};
|
|
154
|
-
figure {
|
|
155
|
-
width: 100% !important;
|
|
156
|
-
padding: 0;
|
|
157
|
-
margin: 0;
|
|
158
|
-
padding-bottom: ${spacing.normal};
|
|
159
|
-
}
|
|
160
|
-
`;
|
|
161
|
-
|
|
162
|
-
const ButtonWrapper = styled.div`
|
|
163
|
-
display: flex;
|
|
164
|
-
gap: ${spacing.xsmall};
|
|
165
|
-
align-items: center;
|
|
166
|
-
`;
|
|
167
|
-
|
|
168
|
-
const StyledList = styled.ul`
|
|
169
|
-
display: flex;
|
|
170
|
-
gap: ${spacing.small};
|
|
171
|
-
align-items: center;
|
|
172
|
-
list-style: none;
|
|
173
|
-
> li {
|
|
174
|
-
font-family: ${fonts.sans};
|
|
175
|
-
font-weight: ${fonts.weight.semibold};
|
|
176
|
-
border-radius: ${misc.borderRadius};
|
|
177
|
-
background-color: ${colors.brand.greyLightest};
|
|
178
|
-
${fonts.sizes("12px", 1.2)};
|
|
179
|
-
padding: ${spacing.xxsmall};
|
|
180
|
-
}
|
|
181
|
-
`;
|
|
182
|
-
const BylineWrapper = styled.div`
|
|
183
|
-
padding: 0 ${spacing.normal} ${spacing.small} ${spacing.normal};
|
|
184
|
-
span {
|
|
185
|
-
font-family: ${fonts.sans};
|
|
186
|
-
${fonts.sizes("16px", "26px")};
|
|
187
|
-
}
|
|
188
|
-
`;
|
|
189
|
-
|
|
190
|
-
export const ConceptNotionV2 = forwardRef<HTMLDivElement, ConceptNotionProps>(
|
|
191
|
-
(
|
|
192
|
-
{
|
|
193
|
-
visualElement,
|
|
194
|
-
title,
|
|
195
|
-
content,
|
|
196
|
-
source,
|
|
197
|
-
copyright,
|
|
198
|
-
closeButton,
|
|
199
|
-
inPopover,
|
|
200
|
-
previewAlt,
|
|
201
|
-
tags,
|
|
202
|
-
subjects,
|
|
203
|
-
conceptType,
|
|
204
|
-
glossData,
|
|
205
|
-
headerButtons,
|
|
206
|
-
lang,
|
|
207
|
-
exampleIds,
|
|
208
|
-
exampleLangs,
|
|
209
|
-
showTitle = true,
|
|
210
|
-
...rest
|
|
211
|
-
},
|
|
212
|
-
ref,
|
|
213
|
-
) => {
|
|
214
|
-
const { t } = useTranslation();
|
|
215
|
-
const isConcept = conceptType === "concept";
|
|
216
|
-
return (
|
|
217
|
-
<div css={inPopover ? notionContentCss : undefined} {...rest} ref={ref}>
|
|
218
|
-
<ContentSpacing data-is-concept={isConcept}>
|
|
219
|
-
<NotionHeader data-is-concept={isConcept}>
|
|
220
|
-
{showTitle && (
|
|
221
|
-
<h1>
|
|
222
|
-
{isConcept && title.title}
|
|
223
|
-
{<small data-is-concept={isConcept}>{t(`searchPage.resultType.${conceptType}`)}</small>}
|
|
224
|
-
</h1>
|
|
225
|
-
)}
|
|
226
|
-
<ButtonWrapper>
|
|
227
|
-
{headerButtons}
|
|
228
|
-
{closeButton}
|
|
229
|
-
</ButtonWrapper>
|
|
230
|
-
</NotionHeader>
|
|
231
|
-
{isConcept ? (
|
|
232
|
-
<>
|
|
233
|
-
<StyledNotionDialogContent>
|
|
234
|
-
{visualElement?.resource === "image" ? (
|
|
235
|
-
<ImageEmbed embed={visualElement} lang={lang} />
|
|
236
|
-
) : visualElement?.resource === "brightcove" ? (
|
|
237
|
-
<BrightcoveEmbed embed={visualElement} />
|
|
238
|
-
) : visualElement?.resource === "h5p" ? (
|
|
239
|
-
<H5pEmbed embed={visualElement} />
|
|
240
|
-
) : visualElement?.resource === "iframe" ? (
|
|
241
|
-
<IframeEmbed embed={visualElement} />
|
|
242
|
-
) : visualElement?.resource === "external" ? (
|
|
243
|
-
<ExternalEmbed embed={visualElement} />
|
|
244
|
-
) : null}
|
|
245
|
-
{content && <NotionDialogText lang={lang}>{content}</NotionDialogText>}
|
|
246
|
-
</StyledNotionDialogContent>
|
|
247
|
-
{tags && (
|
|
248
|
-
<ListWrapper>
|
|
249
|
-
{`${t("notions.tags")}:`}
|
|
250
|
-
<StyledList>
|
|
251
|
-
{tags.map((tag, index) => (
|
|
252
|
-
<li key={index}>{tag}</li>
|
|
253
|
-
))}
|
|
254
|
-
</StyledList>
|
|
255
|
-
</ListWrapper>
|
|
256
|
-
)}
|
|
257
|
-
{subjects && (
|
|
258
|
-
<ListWrapper>
|
|
259
|
-
{`${t("notions.usedIn")}:`}
|
|
260
|
-
<StyledList>
|
|
261
|
-
{subjects.map((subject, index) => (
|
|
262
|
-
<li key={index}>{subject}</li>
|
|
263
|
-
))}
|
|
264
|
-
</StyledList>
|
|
265
|
-
</ListWrapper>
|
|
266
|
-
)}
|
|
267
|
-
</>
|
|
268
|
-
) : (
|
|
269
|
-
<Gloss
|
|
270
|
-
title={title}
|
|
271
|
-
glossData={glossData!}
|
|
272
|
-
audio={
|
|
273
|
-
visualElement?.status === "success" && visualElement.resource === "audio"
|
|
274
|
-
? {
|
|
275
|
-
src: visualElement.data.audioFile.url,
|
|
276
|
-
title: visualElement.data.title.title,
|
|
277
|
-
}
|
|
278
|
-
: undefined
|
|
279
|
-
}
|
|
280
|
-
exampleIds={exampleIds}
|
|
281
|
-
exampleLangs={exampleLangs}
|
|
282
|
-
/>
|
|
283
|
-
)}
|
|
284
|
-
</ContentSpacing>
|
|
285
|
-
{copyright && (
|
|
286
|
-
<BylineWrapper>
|
|
287
|
-
<LicenseContainerContent copyright={copyright} type={conceptType as ConceptType} />
|
|
288
|
-
</BylineWrapper>
|
|
289
|
-
)}
|
|
290
|
-
</div>
|
|
291
|
-
);
|
|
292
|
-
},
|
|
293
|
-
);
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2023-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 { Meta, StoryFn, StoryObj } from "@storybook/react";
|
|
10
|
-
import { ExpandableBox, ExpandableBoxSummary } from "./ExpandableBox";
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* This is just a thin wrapper around the native HTML details element.
|
|
14
|
-
* `ExpandableBoxSummary` is a thin wrapper around the native HTML summary element.
|
|
15
|
-
* The components will eventually add style and functionality to the native elements, as opposed to the components being styled by global css.
|
|
16
|
-
*/
|
|
17
|
-
export default {
|
|
18
|
-
title: "Components/ExpandableBox",
|
|
19
|
-
tags: ["autodocs"],
|
|
20
|
-
parameters: {
|
|
21
|
-
inlineStories: true,
|
|
22
|
-
},
|
|
23
|
-
component: ExpandableBox,
|
|
24
|
-
render: (args) => (
|
|
25
|
-
<ExpandableBox {...args}>
|
|
26
|
-
<ExpandableBoxSummary>Open me</ExpandableBoxSummary>
|
|
27
|
-
Everything here is only visible when the box is open
|
|
28
|
-
</ExpandableBox>
|
|
29
|
-
),
|
|
30
|
-
} as Meta<typeof ExpandableBox>;
|
|
31
|
-
|
|
32
|
-
export const Default: StoryObj<typeof ExpandableBox> = {};
|
|
33
|
-
|
|
34
|
-
export const WithHeader: StoryFn<typeof ExpandableBox> = ({ ...args }) => (
|
|
35
|
-
<ExpandableBox {...args}>
|
|
36
|
-
<ExpandableBoxSummary>
|
|
37
|
-
<h2>Open me as header text</h2>
|
|
38
|
-
</ExpandableBoxSummary>
|
|
39
|
-
Everything here is only visible when the box is open
|
|
40
|
-
</ExpandableBox>
|
|
41
|
-
);
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2023-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 { HTMLAttributes } from "react";
|
|
10
|
-
import styled from "@emotion/styled";
|
|
11
|
-
import { fonts } from "@ndla/core";
|
|
12
|
-
|
|
13
|
-
interface Props extends HTMLAttributes<HTMLDetailsElement> {}
|
|
14
|
-
|
|
15
|
-
export const ExpandableBox = ({ children, ...rest }: Props) => {
|
|
16
|
-
return <details {...rest}>{children}</details>;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
interface SummaryProps extends HTMLAttributes<HTMLElement> {}
|
|
20
|
-
|
|
21
|
-
export const ExpandableBoxSummary = ({ children, ...rest }: SummaryProps) => {
|
|
22
|
-
return <summary {...rest}>{children}</summary>;
|
|
23
|
-
};
|
package/src/Figure/Figure.tsx
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2016-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
|
-
// N.B These components is used to render static markup serverside
|
|
10
|
-
|
|
11
|
-
/** @jsxImportSource @emotion/react */
|
|
12
|
-
import { ComponentPropsWithRef, forwardRef, useMemo } from "react";
|
|
13
|
-
import { SerializedStyles, css } from "@emotion/react";
|
|
14
|
-
import styled from "@emotion/styled";
|
|
15
|
-
import { breakpoints, mq, spacing } from "@ndla/core";
|
|
16
|
-
|
|
17
|
-
const StyledFigure = styled.figure`
|
|
18
|
-
position: relative;
|
|
19
|
-
width: 100%;
|
|
20
|
-
transition:
|
|
21
|
-
transform 0.4s,
|
|
22
|
-
width 0.4s,
|
|
23
|
-
height 0.4s;
|
|
24
|
-
img {
|
|
25
|
-
width: 100%;
|
|
26
|
-
}
|
|
27
|
-
iframe {
|
|
28
|
-
display: block;
|
|
29
|
-
border: 0;
|
|
30
|
-
}
|
|
31
|
-
&[data-sizetype="full"][data-float=""] {
|
|
32
|
-
margin: ${spacing.normal} 0 ${spacing.normal};
|
|
33
|
-
}
|
|
34
|
-
&[data-sizetype="full"] {
|
|
35
|
-
margin-bottom: ${spacing.normal};
|
|
36
|
-
}
|
|
37
|
-
`;
|
|
38
|
-
|
|
39
|
-
const floatSizes: Record<FigureType, SerializedStyles> = {
|
|
40
|
-
left: css`
|
|
41
|
-
margin-top: ${spacing.xsmall};
|
|
42
|
-
--float: left;
|
|
43
|
-
--width: 50%;
|
|
44
|
-
--width-desktop: 65%;
|
|
45
|
-
& {
|
|
46
|
-
${mq.range({ from: breakpoints.tablet })} {
|
|
47
|
-
padding-right: ${spacing.small};
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
`,
|
|
51
|
-
right: css`
|
|
52
|
-
margin-top: ${spacing.xsmall};
|
|
53
|
-
--float: right;
|
|
54
|
-
--width: 50%;
|
|
55
|
-
--width-desktop: 65%;
|
|
56
|
-
& {
|
|
57
|
-
${mq.range({ from: breakpoints.tablet })} {
|
|
58
|
-
padding-left: ${spacing.small};
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
`,
|
|
62
|
-
"small-left": css`
|
|
63
|
-
margin-top: ${spacing.xsmall};
|
|
64
|
-
--float: left;
|
|
65
|
-
--width: 25%;
|
|
66
|
-
--width-desktop: 50%;
|
|
67
|
-
& {
|
|
68
|
-
${mq.range({ from: breakpoints.tablet })} {
|
|
69
|
-
padding-right: ${spacing.small};
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
`,
|
|
73
|
-
"small-right": css`
|
|
74
|
-
margin-top: ${spacing.xsmall};
|
|
75
|
-
--float: right;
|
|
76
|
-
--width: 25%;
|
|
77
|
-
--width-desktop: 50%;
|
|
78
|
-
& {
|
|
79
|
-
${mq.range({ from: breakpoints.tablet })} {
|
|
80
|
-
padding-left: ${spacing.small};
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
`,
|
|
84
|
-
"xsmall-left": css`
|
|
85
|
-
--float: left;
|
|
86
|
-
--width: 25%;
|
|
87
|
-
& {
|
|
88
|
-
${mq.range({ from: breakpoints.tablet })} {
|
|
89
|
-
padding-right: ${spacing.small};
|
|
90
|
-
margin: ${spacing.xsmall} 0 ${spacing.medium};
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
`,
|
|
94
|
-
"xsmall-right": css`
|
|
95
|
-
--float: right;
|
|
96
|
-
--width: 25%;
|
|
97
|
-
& {
|
|
98
|
-
${mq.range({ from: breakpoints.tablet })} {
|
|
99
|
-
padding-left: ${spacing.small};
|
|
100
|
-
margin: ${spacing.xsmall} 0 ${spacing.normal} ${spacing.xsmall};
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
`,
|
|
104
|
-
full: css`
|
|
105
|
-
margin-top: ${spacing.xsmall};
|
|
106
|
-
`,
|
|
107
|
-
"full-column": css`
|
|
108
|
-
left: auto !important;
|
|
109
|
-
right: auto !important;
|
|
110
|
-
width: auto !important;
|
|
111
|
-
padding-left: 0;
|
|
112
|
-
padding-right: 0;
|
|
113
|
-
padding-bottom: ${spacing.large};
|
|
114
|
-
margin-bottom: 0;
|
|
115
|
-
`,
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
const floatStyle = css`
|
|
119
|
-
${mq.range({ from: breakpoints.tablet })} {
|
|
120
|
-
float: var(--float);
|
|
121
|
-
clear: var(--float);
|
|
122
|
-
width: var(--width) !important;
|
|
123
|
-
z-index: 1;
|
|
124
|
-
left: auto !important;
|
|
125
|
-
padding: 0;
|
|
126
|
-
}
|
|
127
|
-
${mq.range({ from: breakpoints.desktop })} {
|
|
128
|
-
width: var(--width-desktop, var(--width)) !important;
|
|
129
|
-
}
|
|
130
|
-
`;
|
|
131
|
-
|
|
132
|
-
const Figure = forwardRef<HTMLElement, Props>(({ children, type = "full", ...rest }, ref) => {
|
|
133
|
-
const styles = useMemo(() => {
|
|
134
|
-
const styles = [];
|
|
135
|
-
const floatCss = floatSizes[type];
|
|
136
|
-
if (type !== "full-column" && type !== "full") {
|
|
137
|
-
styles.push(floatStyle);
|
|
138
|
-
}
|
|
139
|
-
if (floatCss) {
|
|
140
|
-
styles.push(floatCss);
|
|
141
|
-
}
|
|
142
|
-
return styles;
|
|
143
|
-
}, [type]);
|
|
144
|
-
|
|
145
|
-
return (
|
|
146
|
-
<StyledFigure data-sizetype={type} css={styles} {...rest} ref={ref}>
|
|
147
|
-
{children}
|
|
148
|
-
</StyledFigure>
|
|
149
|
-
);
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
export type FigureType =
|
|
153
|
-
| "full"
|
|
154
|
-
| "full-column"
|
|
155
|
-
| "left"
|
|
156
|
-
| "small-left"
|
|
157
|
-
| "right"
|
|
158
|
-
| "small-right"
|
|
159
|
-
| "xsmall-right"
|
|
160
|
-
| "xsmall-left";
|
|
161
|
-
|
|
162
|
-
interface Props extends Omit<ComponentPropsWithRef<"figure">, "type"> {
|
|
163
|
-
type?: FigureType;
|
|
164
|
-
noFigcaption?: boolean;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
export default Figure;
|
package/src/Figure/index.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2017-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
|
-
export { default as Figure } from "./Figure";
|
|
10
|
-
|
|
11
|
-
export type { FigureType } from "./Figure";
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2023-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 { Meta, StoryObj } from "@storybook/react";
|
|
10
|
-
import { CopyrightMetaData } from "@ndla/types-embed";
|
|
11
|
-
import FramedContent from "./FramedContent";
|
|
12
|
-
import FigureImage from "../../../../stories/article/FigureImage";
|
|
13
|
-
import { CopyrightEmbed } from "../Embed";
|
|
14
|
-
|
|
15
|
-
export default {
|
|
16
|
-
title: "Components/FramedContent",
|
|
17
|
-
component: FramedContent,
|
|
18
|
-
tags: ["autodocs"],
|
|
19
|
-
parameters: {
|
|
20
|
-
inlineStories: true,
|
|
21
|
-
},
|
|
22
|
-
args: {
|
|
23
|
-
children: <p>Content!</p>,
|
|
24
|
-
},
|
|
25
|
-
} as Meta<typeof FramedContent>;
|
|
26
|
-
|
|
27
|
-
export const WithFloating: StoryObj<typeof FramedContent> = {
|
|
28
|
-
args: {
|
|
29
|
-
children: (
|
|
30
|
-
<>
|
|
31
|
-
<p>En boks med flytelementer</p>
|
|
32
|
-
<FigureImage embedData={{ alt: "", align: "right" }} />
|
|
33
|
-
<p>
|
|
34
|
-
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
35
|
-
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
36
|
-
</p>
|
|
37
|
-
<p>
|
|
38
|
-
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
39
|
-
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
40
|
-
</p>
|
|
41
|
-
</>
|
|
42
|
-
),
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
export const WithFloatingSmall: StoryObj<typeof FramedContent> = {
|
|
47
|
-
args: {
|
|
48
|
-
children: (
|
|
49
|
-
<>
|
|
50
|
-
<p>En boks med flytelementer</p>
|
|
51
|
-
<FigureImage embedData={{ alt: "", align: "right", size: "small" }} />
|
|
52
|
-
<p>
|
|
53
|
-
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
54
|
-
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
55
|
-
</p>
|
|
56
|
-
<p>
|
|
57
|
-
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
58
|
-
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
59
|
-
</p>
|
|
60
|
-
</>
|
|
61
|
-
),
|
|
62
|
-
},
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
export const TooMuchContent: StoryObj<typeof FramedContent> = {
|
|
66
|
-
args: {
|
|
67
|
-
children: (
|
|
68
|
-
<>
|
|
69
|
-
<h2>
|
|
70
|
-
Tekst i ramme fungerer <em>dårlig</em> med mye tekst.
|
|
71
|
-
</h2>
|
|
72
|
-
<p>
|
|
73
|
-
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
74
|
-
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
75
|
-
</p>
|
|
76
|
-
<p>
|
|
77
|
-
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
78
|
-
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
79
|
-
</p>
|
|
80
|
-
<p>
|
|
81
|
-
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
82
|
-
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
83
|
-
</p>
|
|
84
|
-
<p>
|
|
85
|
-
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
86
|
-
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
87
|
-
</p>
|
|
88
|
-
<p>
|
|
89
|
-
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
90
|
-
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
91
|
-
</p>
|
|
92
|
-
<p>
|
|
93
|
-
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
94
|
-
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
95
|
-
</p>
|
|
96
|
-
<p>
|
|
97
|
-
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
98
|
-
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
99
|
-
</p>
|
|
100
|
-
<p>
|
|
101
|
-
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
102
|
-
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
103
|
-
</p>
|
|
104
|
-
</>
|
|
105
|
-
),
|
|
106
|
-
},
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
const copyrightEmbed: CopyrightMetaData = {
|
|
110
|
-
resource: "copyright",
|
|
111
|
-
status: "success",
|
|
112
|
-
data: undefined,
|
|
113
|
-
embedData: {
|
|
114
|
-
resource: "copyright",
|
|
115
|
-
title: "Hallo",
|
|
116
|
-
copyright: {
|
|
117
|
-
license: {
|
|
118
|
-
license: "CC-BY-SA-4.0",
|
|
119
|
-
description: "Creative Commons Attribution-ShareAlike 4.0 International",
|
|
120
|
-
url: "https://creativecommons.org/licenses/by-sa/4.0/",
|
|
121
|
-
},
|
|
122
|
-
creators: [
|
|
123
|
-
{
|
|
124
|
-
type: "originator",
|
|
125
|
-
name: "Camilla Øvstebø ",
|
|
126
|
-
},
|
|
127
|
-
],
|
|
128
|
-
processors: [
|
|
129
|
-
{
|
|
130
|
-
type: "linguistic",
|
|
131
|
-
name: "Totaltekst",
|
|
132
|
-
},
|
|
133
|
-
],
|
|
134
|
-
rightsholders: [],
|
|
135
|
-
processed: false,
|
|
136
|
-
},
|
|
137
|
-
},
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
export const WithCopyrightEmbed: StoryObj<typeof FramedContent> = {
|
|
141
|
-
args: {
|
|
142
|
-
children: (
|
|
143
|
-
<>
|
|
144
|
-
<h2>Her har du helt vanlig innhold</h2>
|
|
145
|
-
<p>Det kan som sagt være hva som helst.</p>
|
|
146
|
-
<CopyrightEmbed embed={copyrightEmbed}>
|
|
147
|
-
<p>Dette er innhold som er i en copyright-embed.</p>
|
|
148
|
-
</CopyrightEmbed>
|
|
149
|
-
</>
|
|
150
|
-
),
|
|
151
|
-
},
|
|
152
|
-
};
|