@ndla/ui 47.1.1 → 47.1.3
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/es/BlogPost/BlogPost.js +6 -7
- package/es/FramedContent/FramedContent.js +37 -0
- package/es/FramedContent/index.js +10 -0
- package/es/Hero/Hero.js +2 -2
- package/es/index.js +1 -0
- package/es/locale/messages-en.js +2 -1
- package/es/locale/messages-nb.js +2 -1
- package/es/locale/messages-nn.js +2 -1
- package/es/locale/messages-se.js +2 -1
- package/es/locale/messages-sma.js +2 -1
- package/lib/BlogPost/BlogPost.js +6 -7
- package/lib/FramedContent/FramedContent.d.ts +12 -0
- package/lib/FramedContent/FramedContent.js +43 -0
- package/lib/FramedContent/index.d.ts +9 -0
- package/lib/FramedContent/index.js +17 -0
- package/lib/Hero/Hero.js +2 -2
- package/lib/index.d.ts +1 -0
- package/lib/index.js +7 -0
- package/lib/locale/messages-en.d.ts +1 -0
- package/lib/locale/messages-en.js +2 -1
- package/lib/locale/messages-nb.d.ts +1 -0
- package/lib/locale/messages-nb.js +2 -1
- package/lib/locale/messages-nn.d.ts +1 -0
- package/lib/locale/messages-nn.js +2 -1
- package/lib/locale/messages-se.d.ts +1 -0
- package/lib/locale/messages-se.js +2 -1
- package/lib/locale/messages-sma.d.ts +1 -0
- package/lib/locale/messages-sma.js +2 -1
- package/package.json +15 -15
- package/src/Article/ArticleByline.stories.tsx +52 -0
- package/src/BlogPost/BlogPost.tsx +1 -7
- package/src/CreatedBy/CreatedBy.stories.tsx +38 -0
- package/src/ErrorMessage/ErrorMessage.stories.tsx +59 -0
- package/src/FramedContent/FramedContent.stories.tsx +88 -0
- package/src/FramedContent/FramedContent.tsx +29 -0
- package/src/FramedContent/index.ts +10 -0
- package/src/Hero/Hero.tsx +4 -6
- package/src/Logo/Logo.stories.tsx +50 -0
- package/src/TagSelector/TagSelector.stories.tsx +88 -0
- package/src/index.ts +1 -0
- package/src/locale/messages-en.ts +1 -0
- package/src/locale/messages-nb.ts +1 -0
- package/src/locale/messages-nn.ts +1 -0
- package/src/locale/messages-se.ts +1 -0
- package/src/locale/messages-sma.ts +1 -0
|
@@ -1059,7 +1059,8 @@ var messages = _objectSpread(_objectSpread({
|
|
|
1059
1059
|
other: 'Andre grupper',
|
|
1060
1060
|
grepCode: 'Grepkodar'
|
|
1061
1061
|
},
|
|
1062
|
-
wrongUserInfoDisclaimer: 'Dersom informasjonen er feil, må han oppdaterast av vertsorganisasjon/skuleeigar som brukaren tilhøyrer. Oversikt over brukarstøtte finst her: '
|
|
1062
|
+
wrongUserInfoDisclaimer: 'Dersom informasjonen er feil, må han oppdaterast av vertsorganisasjon/skuleeigar som brukaren tilhøyrer. Oversikt over brukarstøtte finst her: ',
|
|
1063
|
+
moderator: 'Moderator'
|
|
1063
1064
|
},
|
|
1064
1065
|
checkOutNewFeature: 'Sjekk ut ny funksjonalitet',
|
|
1065
1066
|
slateBlockMenu: {
|
|
@@ -1059,7 +1059,8 @@ var messages = _objectSpread(_objectSpread({
|
|
|
1059
1059
|
other: 'Eará joavkkut',
|
|
1060
1060
|
grepCode: 'Grepkoda'
|
|
1061
1061
|
},
|
|
1062
|
-
wrongUserInfoDisclaimer: 'Jus leat boasttudieđut, de ferte organisašuvdna/skuvlaeaiggát masá geavaheaddji gullá ođasmahttit dan. Visogova geavaheaddjidoarjaga ektui gávnnat dás: '
|
|
1062
|
+
wrongUserInfoDisclaimer: 'Jus leat boasttudieđut, de ferte organisašuvdna/skuvlaeaiggát masá geavaheaddji gullá ođasmahttit dan. Visogova geavaheaddjidoarjaga ektui gávnnat dás: ',
|
|
1063
|
+
moderator: 'Muddenplána'
|
|
1063
1064
|
},
|
|
1064
1065
|
checkOutNewFeature: 'Iskka ođđa doaibmilvuođa',
|
|
1065
1066
|
slateBlockMenu: {
|
|
@@ -1059,7 +1059,8 @@ var messages = _objectSpread(_objectSpread({
|
|
|
1059
1059
|
other: 'Andre grupper',
|
|
1060
1060
|
grepCode: 'Grepkodar'
|
|
1061
1061
|
},
|
|
1062
|
-
wrongUserInfoDisclaimer: 'Dersom informasjonen er feil, må den oppdateres av vertsorganisasjon/skoleeier som brukeren tilhører. Oversikt over brukerstøtte finnes her: '
|
|
1062
|
+
wrongUserInfoDisclaimer: 'Dersom informasjonen er feil, må den oppdateres av vertsorganisasjon/skoleeier som brukeren tilhører. Oversikt over brukerstøtte finnes her: ',
|
|
1063
|
+
moderator: 'Moderatijve'
|
|
1063
1064
|
},
|
|
1064
1065
|
checkOutNewFeature: 'Gïehtjh orre funksjonaliteetem',
|
|
1065
1066
|
slateBlockMenu: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ndla/ui",
|
|
3
|
-
"version": "47.1.
|
|
3
|
+
"version": "47.1.3",
|
|
4
4
|
"description": "UI component library for NDLA.",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -31,22 +31,22 @@
|
|
|
31
31
|
"types"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@ndla/accordion": "^2.2.
|
|
35
|
-
"@ndla/button": "^12.0.
|
|
36
|
-
"@ndla/carousel": "^4.0.
|
|
34
|
+
"@ndla/accordion": "^2.2.29",
|
|
35
|
+
"@ndla/button": "^12.0.3",
|
|
36
|
+
"@ndla/carousel": "^4.0.6",
|
|
37
37
|
"@ndla/core": "^4.2.0",
|
|
38
38
|
"@ndla/dropdown-menu": "^1.0.9",
|
|
39
|
-
"@ndla/forms": "^5.0.
|
|
39
|
+
"@ndla/forms": "^5.0.4",
|
|
40
40
|
"@ndla/hooks": "^2.1.1",
|
|
41
|
-
"@ndla/icons": "^4.1.
|
|
42
|
-
"@ndla/licenses": "^7.
|
|
43
|
-
"@ndla/modal": "^5.0.
|
|
44
|
-
"@ndla/notion": "^6.0.
|
|
45
|
-
"@ndla/safelink": "^4.1.
|
|
46
|
-
"@ndla/select": "^3.1.
|
|
41
|
+
"@ndla/icons": "^4.1.1",
|
|
42
|
+
"@ndla/licenses": "^7.2.0",
|
|
43
|
+
"@ndla/modal": "^5.0.3",
|
|
44
|
+
"@ndla/notion": "^6.0.5",
|
|
45
|
+
"@ndla/safelink": "^4.1.28",
|
|
46
|
+
"@ndla/select": "^3.1.1",
|
|
47
47
|
"@ndla/switch": "^1.1.15",
|
|
48
|
-
"@ndla/tabs": "^3.0
|
|
49
|
-
"@ndla/tooltip": "^5.0.
|
|
48
|
+
"@ndla/tabs": "^3.1.0",
|
|
49
|
+
"@ndla/tooltip": "^5.0.3",
|
|
50
50
|
"@ndla/typography": "^0.2.2",
|
|
51
51
|
"@ndla/util": "^4.0.0",
|
|
52
52
|
"@radix-ui/react-popover": "^1.0.7",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
72
|
"@ndla/types-backend": "^0.2.21",
|
|
73
|
-
"@ndla/types-embed": "^4.0.
|
|
73
|
+
"@ndla/types-embed": "^4.0.4",
|
|
74
74
|
"css-loader": "^6.7.3",
|
|
75
75
|
"mini-css-extract-plugin": "^2.7.5",
|
|
76
76
|
"sass-loader": "^13.2.2",
|
|
@@ -80,5 +80,5 @@
|
|
|
80
80
|
"publishConfig": {
|
|
81
81
|
"access": "public"
|
|
82
82
|
},
|
|
83
|
-
"gitHead": "
|
|
83
|
+
"gitHead": "3ad890362eb5b8d8dcd11cb1a214987adec3a823"
|
|
84
84
|
}
|
|
@@ -0,0 +1,52 @@
|
|
|
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
|
+
|
|
11
|
+
import { defaultParameters } from '../../../../stories/defaults';
|
|
12
|
+
import ArticleByline from './ArticleByline';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Innholder informasjon om forfatter(e), lisensrettigheter, beskrivelse av regler ved bruk av innhold, ikon hvis artikkel er tilleggsstoff og dato for forrige oppdatering.
|
|
16
|
+
*/
|
|
17
|
+
export default {
|
|
18
|
+
title: 'Patterns/ArticleByline',
|
|
19
|
+
component: ArticleByline,
|
|
20
|
+
tags: ['autodocs'],
|
|
21
|
+
parameters: {
|
|
22
|
+
inlineStories: true,
|
|
23
|
+
...defaultParameters,
|
|
24
|
+
},
|
|
25
|
+
args: {
|
|
26
|
+
authors: [{ name: 'Frida Forfatter' }, { name: 'Fred Forfatter' }],
|
|
27
|
+
published: '21.06.2018',
|
|
28
|
+
license: 'CC BY-SA',
|
|
29
|
+
},
|
|
30
|
+
} as Meta<typeof ArticleByline>;
|
|
31
|
+
|
|
32
|
+
export const ArticleBylineStory: StoryFn<typeof ArticleByline> = (args) => {
|
|
33
|
+
return <ArticleByline {...args} />;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
ArticleBylineStory.storyName = 'ArticleByline';
|
|
37
|
+
|
|
38
|
+
export const SeveralAuthors: StoryObj<typeof ArticleByline> = {
|
|
39
|
+
args: {
|
|
40
|
+
published: '21.06.2018',
|
|
41
|
+
license: 'CC BY-SA',
|
|
42
|
+
authors: [{ name: 'Frida Forfatter' }, { name: 'Ida Illustratør' }, { name: 'Fred Forfatter' }],
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export const WithoutCreators: StoryObj<typeof ArticleByline> = {
|
|
47
|
+
args: {
|
|
48
|
+
published: '21.06.2018',
|
|
49
|
+
license: 'CC BY-SA',
|
|
50
|
+
authors: [],
|
|
51
|
+
},
|
|
52
|
+
};
|
|
@@ -10,7 +10,6 @@ import styled from '@emotion/styled';
|
|
|
10
10
|
import { css } from '@emotion/react';
|
|
11
11
|
import SafeLink from '@ndla/safelink';
|
|
12
12
|
import { breakpoints, colors, fonts, misc, mq, spacing } from '@ndla/core';
|
|
13
|
-
import { Quote } from '@ndla/icons/editor';
|
|
14
13
|
import { HeadingLevel } from '@ndla/typography';
|
|
15
14
|
import { useTranslation } from 'react-i18next';
|
|
16
15
|
import { usePossiblyRelativeUrl } from '../utils/relativeUrl';
|
|
@@ -92,12 +91,7 @@ const BlogPost = ({ title, author, url, metaImage, headingLevel: Heading = 'h3',
|
|
|
92
91
|
{title.title}
|
|
93
92
|
</Heading>
|
|
94
93
|
<StyledImg src={metaImage.url} alt={metaImage.alt} />
|
|
95
|
-
{!!author && (
|
|
96
|
-
<AuthorContainer aria-label={t('article.writtenBy', { authors: author })}>
|
|
97
|
-
<Quote />
|
|
98
|
-
{author}
|
|
99
|
-
</AuthorContainer>
|
|
100
|
-
)}
|
|
94
|
+
{!!author && <AuthorContainer aria-label={t('article.writtenBy', { authors: author })}>{author}</AuthorContainer>}
|
|
101
95
|
</Container>
|
|
102
96
|
);
|
|
103
97
|
};
|
|
@@ -0,0 +1,38 @@
|
|
|
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 CreatedBy from './CreatedBy';
|
|
11
|
+
import { defaultParameters } from '../../../../stories/defaults';
|
|
12
|
+
|
|
13
|
+
/***
|
|
14
|
+
* LTI-versjoner av innhold fra NDLA skal vise denne teksten og logo i bunnen. "NDLA" og logoen lenker til ndla.no. "Artikkel" kan være en lenke til artikkelen på ndla.no om den fins. Begge lenker åpner som standard i ny fane men det kan overstyres med target-parameter.
|
|
15
|
+
*/
|
|
16
|
+
export default {
|
|
17
|
+
title: 'Components/CreatedBy',
|
|
18
|
+
component: CreatedBy,
|
|
19
|
+
tags: ['autodocs'],
|
|
20
|
+
parameters: {
|
|
21
|
+
inlineStories: true,
|
|
22
|
+
...defaultParameters,
|
|
23
|
+
},
|
|
24
|
+
args: {
|
|
25
|
+
name: 'Artikkelen',
|
|
26
|
+
description: 'er utarbeidet av',
|
|
27
|
+
},
|
|
28
|
+
} as Meta<typeof CreatedBy>;
|
|
29
|
+
|
|
30
|
+
export const WithoutLink: StoryObj<typeof CreatedBy> = {
|
|
31
|
+
args: {},
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export const WithLink: StoryObj<typeof CreatedBy> = {
|
|
35
|
+
args: {
|
|
36
|
+
url: 'https://ndla.no/subject:26/topic:1:191103/topic:1:4352/resource:1:2052',
|
|
37
|
+
},
|
|
38
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
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 ErrorMessage from './ErrorMessage';
|
|
11
|
+
import { defaultParameters } from '../../../../stories/defaults';
|
|
12
|
+
//@ts-ignore
|
|
13
|
+
import Oops from '../../../../images/oops.gif';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Feilmeldingskomponenten lenker tilbake til forrige side eller til forsiden. Den brukes når det har oppstått en feil i systemet, f.eks. ved 404- eller 503-feil.
|
|
17
|
+
*/
|
|
18
|
+
export default {
|
|
19
|
+
title: 'Patterns/ErrorMessage',
|
|
20
|
+
component: ErrorMessage,
|
|
21
|
+
tags: ['autodocs'],
|
|
22
|
+
parameters: {
|
|
23
|
+
inlineStories: true,
|
|
24
|
+
...defaultParameters,
|
|
25
|
+
},
|
|
26
|
+
args: {
|
|
27
|
+
illustration: {
|
|
28
|
+
url: Oops,
|
|
29
|
+
altText: 'Systemfeil',
|
|
30
|
+
},
|
|
31
|
+
messages: {
|
|
32
|
+
title: 'Oisann, her gikk noe galt',
|
|
33
|
+
description: 'En kort beskrivelse av feilen som oppsto.',
|
|
34
|
+
linksTitle: 'Kom igang:',
|
|
35
|
+
back: 'Gå tilbake',
|
|
36
|
+
goToFrontPage: 'Gå til forsiden',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
} as Meta<typeof ErrorMessage>;
|
|
40
|
+
|
|
41
|
+
export const ErrorMessageStory: StoryFn<typeof ErrorMessage> = (args) => {
|
|
42
|
+
return <ErrorMessage {...args} />;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
ErrorMessageStory.storyName = 'ErrorMessage';
|
|
46
|
+
|
|
47
|
+
export const LoginFailed: StoryObj<typeof ErrorMessage> = {
|
|
48
|
+
args: {
|
|
49
|
+
illustration: {
|
|
50
|
+
url: Oops,
|
|
51
|
+
altText: 'Systemfeil',
|
|
52
|
+
},
|
|
53
|
+
messages: {
|
|
54
|
+
title: 'Ops, her gikk noe galt',
|
|
55
|
+
linksTitle: 'Prøv igjen',
|
|
56
|
+
logInFailed: 'Logg inn',
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
};
|
|
@@ -0,0 +1,88 @@
|
|
|
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 { defaultParameters } from '../../../../stories/defaults';
|
|
11
|
+
import FramedContent from './FramedContent';
|
|
12
|
+
import FigureImage from '../../../../stories/article/FigureImage';
|
|
13
|
+
|
|
14
|
+
export default {
|
|
15
|
+
title: 'Components/FramedContent',
|
|
16
|
+
component: FramedContent,
|
|
17
|
+
tags: ['autodocs'],
|
|
18
|
+
parameters: {
|
|
19
|
+
inlineStories: true,
|
|
20
|
+
...defaultParameters,
|
|
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 TooMuchContent: StoryObj<typeof FramedContent> = {
|
|
47
|
+
args: {
|
|
48
|
+
children: (
|
|
49
|
+
<>
|
|
50
|
+
<h2>
|
|
51
|
+
Tekst i ramme fungerer <em>dårlig</em> med mye tekst.
|
|
52
|
+
</h2>
|
|
53
|
+
<p>
|
|
54
|
+
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
55
|
+
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
56
|
+
</p>
|
|
57
|
+
<p>
|
|
58
|
+
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
59
|
+
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
60
|
+
</p>
|
|
61
|
+
<p>
|
|
62
|
+
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
63
|
+
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
64
|
+
</p>
|
|
65
|
+
<p>
|
|
66
|
+
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
67
|
+
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
68
|
+
</p>
|
|
69
|
+
<p>
|
|
70
|
+
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
71
|
+
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
72
|
+
</p>
|
|
73
|
+
<p>
|
|
74
|
+
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
75
|
+
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
76
|
+
</p>
|
|
77
|
+
<p>
|
|
78
|
+
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
79
|
+
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
80
|
+
</p>
|
|
81
|
+
<p>
|
|
82
|
+
Pitching er også en god måte å bevisstgjøre seg selv på. Når du pitcher, blir idéen og historien i den filmen
|
|
83
|
+
du planlegger å lage, tydeligere for både deg selv og dem du eventuelt jobber sammen med i klassen.
|
|
84
|
+
</p>
|
|
85
|
+
</>
|
|
86
|
+
),
|
|
87
|
+
},
|
|
88
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
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, useMemo } from 'react';
|
|
10
|
+
|
|
11
|
+
interface Props extends HTMLAttributes<HTMLDivElement> {}
|
|
12
|
+
|
|
13
|
+
const FramedContent = ({ className, children, ...rest }: Props) => {
|
|
14
|
+
const classes = useMemo(() => {
|
|
15
|
+
const classes = ['c-bodybox'];
|
|
16
|
+
if (className) {
|
|
17
|
+
classes.push(className);
|
|
18
|
+
}
|
|
19
|
+
return classes.join(' ');
|
|
20
|
+
}, [className]);
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<div className={classes} {...rest}>
|
|
24
|
+
{children}
|
|
25
|
+
</div>
|
|
26
|
+
);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export default FramedContent;
|
|
@@ -0,0 +1,10 @@
|
|
|
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 FramedContent from './FramedContent';
|
|
10
|
+
export default FramedContent;
|
package/src/Hero/Hero.tsx
CHANGED
|
@@ -57,6 +57,8 @@ const StyledDiv = styled.div`
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
&[data-contenttype='frontpage-article'] {
|
|
60
|
+
min-height: unset;
|
|
61
|
+
padding-bottom: unset;
|
|
60
62
|
background-color: ${colors.background.lightBlue};
|
|
61
63
|
}
|
|
62
64
|
|
|
@@ -83,13 +85,9 @@ const StyledDiv = styled.div`
|
|
|
83
85
|
|
|
84
86
|
${mq.range({ until: breakpoints.tablet })} {
|
|
85
87
|
+ div article.c-article {
|
|
86
|
-
margin-left: -${spacing.normal};
|
|
87
|
-
margin-right: -${spacing.normal};
|
|
88
|
-
margin-top: 0;
|
|
89
88
|
background: ${colors.white};
|
|
90
|
-
|
|
91
|
-
padding
|
|
92
|
-
padding-top: ${spacing.large};
|
|
89
|
+
margin: 0 -${spacing.normal};
|
|
90
|
+
padding: ${spacing.large} ${spacing.normal} ${spacing.normal} 0;
|
|
93
91
|
}
|
|
94
92
|
}
|
|
95
93
|
}
|
|
@@ -0,0 +1,50 @@
|
|
|
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 Logo from './Logo';
|
|
11
|
+
import { defaultParameters } from '../../../../stories/defaults';
|
|
12
|
+
|
|
13
|
+
/***
|
|
14
|
+
* Logoen er vårt tydeligste kjennetegn og vårt viktigste verktøy for kommunikasjon. Den skal inspirere målgruppen elever og lærere i videregående opplæring og gjøre dem nysgjerrige på NDLA.
|
|
15
|
+
*
|
|
16
|
+
* Logoen består av navnet NDLA i en spesiell typografi og bør hovedsakelig benyttes sammen med underteksten. Logo uten undertekst kan benyttes i tilfeller der det kommer godt fram andre steder hva NDLA er, eksempelvis på ndla.no.
|
|
17
|
+
*
|
|
18
|
+
* Logo uten undertekst kan kompletteres med en beskrivende tekst til høyre. Logoen kan benyttes i blått, eller i svart eller hvitt avhengig av bakgrunn. Den skal plasseres i det øverste eller nederste hjørnet av en ytterkant. Logoen skal ikke sentreres.
|
|
19
|
+
*/
|
|
20
|
+
export default {
|
|
21
|
+
title: 'Components/Logo',
|
|
22
|
+
component: Logo,
|
|
23
|
+
tags: ['autodocs'],
|
|
24
|
+
parameters: {
|
|
25
|
+
inlineStories: true,
|
|
26
|
+
...defaultParameters,
|
|
27
|
+
},
|
|
28
|
+
args: {
|
|
29
|
+
cssModifier: 'large',
|
|
30
|
+
name: true,
|
|
31
|
+
label: 'Nasjonal digital læringsarena',
|
|
32
|
+
},
|
|
33
|
+
} as Meta<typeof Logo>;
|
|
34
|
+
|
|
35
|
+
export const WithoutUrl: StoryObj<typeof Logo> = {
|
|
36
|
+
args: {},
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const WithUrl: StoryObj<typeof Logo> = {
|
|
40
|
+
args: {
|
|
41
|
+
to: '/',
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export const EnglishLogo: StoryObj<typeof Logo> = {
|
|
46
|
+
args: {
|
|
47
|
+
locale: 'en',
|
|
48
|
+
label: 'Norwegian digital learning arena',
|
|
49
|
+
},
|
|
50
|
+
};
|
|
@@ -0,0 +1,88 @@
|
|
|
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 { useState } from 'react';
|
|
10
|
+
import { Meta, StoryFn } from '@storybook/react';
|
|
11
|
+
import styled from '@emotion/styled';
|
|
12
|
+
import TagSelector from './TagSelector';
|
|
13
|
+
import { defaultParameters } from '../../../../stories/defaults';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Komponent for å tagge noe, primært tiltenkt Min NDLA
|
|
17
|
+
*/
|
|
18
|
+
export default {
|
|
19
|
+
title: 'Patterns/TagSelector',
|
|
20
|
+
component: TagSelector,
|
|
21
|
+
tags: ['autodocs'],
|
|
22
|
+
parameters: {
|
|
23
|
+
inlineStories: true,
|
|
24
|
+
...defaultParameters,
|
|
25
|
+
},
|
|
26
|
+
argTypes: {
|
|
27
|
+
onChange: { control: false },
|
|
28
|
+
onCreateTag: { control: false },
|
|
29
|
+
tags: { control: false },
|
|
30
|
+
selected: { control: false },
|
|
31
|
+
},
|
|
32
|
+
args: {
|
|
33
|
+
label: 'Select tags',
|
|
34
|
+
labelHidden: false,
|
|
35
|
+
},
|
|
36
|
+
} as Meta<typeof TagSelector>;
|
|
37
|
+
|
|
38
|
+
const Container = styled.div`
|
|
39
|
+
margin: 10px auto;
|
|
40
|
+
max-width: 600px;
|
|
41
|
+
max-height: 300px;
|
|
42
|
+
display: flex;
|
|
43
|
+
flex-direction: column;
|
|
44
|
+
`;
|
|
45
|
+
|
|
46
|
+
export const TagSelectorStory: StoryFn<typeof TagSelector> = (args) => {
|
|
47
|
+
const dummyData = [
|
|
48
|
+
'Cat',
|
|
49
|
+
'Dog',
|
|
50
|
+
'Fish',
|
|
51
|
+
'Dinosaur',
|
|
52
|
+
'Frog',
|
|
53
|
+
'Dragon',
|
|
54
|
+
'Lion',
|
|
55
|
+
'Snake',
|
|
56
|
+
'Alligator',
|
|
57
|
+
'Antelope',
|
|
58
|
+
'Bear',
|
|
59
|
+
'Baboon',
|
|
60
|
+
'Kangaroo',
|
|
61
|
+
'Scorpion',
|
|
62
|
+
'Goose',
|
|
63
|
+
'Fox',
|
|
64
|
+
'Donkey',
|
|
65
|
+
'Chicken',
|
|
66
|
+
];
|
|
67
|
+
const [exampleTags, setExampleTags] = useState<string[]>(dummyData);
|
|
68
|
+
const [exampleTagsSelected, setExampleTagsSelected] = useState<string[]>(dummyData.slice(0, 0));
|
|
69
|
+
|
|
70
|
+
return (
|
|
71
|
+
<Container>
|
|
72
|
+
<TagSelector
|
|
73
|
+
label={args.label}
|
|
74
|
+
tags={exampleTags}
|
|
75
|
+
selected={exampleTagsSelected}
|
|
76
|
+
onChange={(tags: string[]) => {
|
|
77
|
+
setExampleTagsSelected(tags);
|
|
78
|
+
}}
|
|
79
|
+
onCreateTag={(newTagName: string) => {
|
|
80
|
+
setExampleTags((prevTags) => [...prevTags, newTagName]);
|
|
81
|
+
setExampleTagsSelected((prevSelectedTags) => [...prevSelectedTags, newTagName]);
|
|
82
|
+
}}
|
|
83
|
+
/>
|
|
84
|
+
</Container>
|
|
85
|
+
);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
TagSelectorStory.storyName = 'TagSelect';
|
package/src/index.ts
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
// Ignore typescript implicit any warning and export all javascript components
|
|
10
10
|
// Move components to this file when they are migrated to typescript
|
|
11
11
|
|
|
12
|
+
export { default as FramedContent } from './FramedContent';
|
|
12
13
|
export { default as SectionHeading } from './SectionHeading';
|
|
13
14
|
export {
|
|
14
15
|
ConceptNotionV2,
|
|
@@ -1098,6 +1098,7 @@ const messages = {
|
|
|
1098
1098
|
},
|
|
1099
1099
|
wrongUserInfoDisclaimer:
|
|
1100
1100
|
'If any information is wrong, it must be updated by the host organization/school owner the user belongs to. An overview of available user support can be found here: ',
|
|
1101
|
+
moderator: 'Moderator',
|
|
1101
1102
|
},
|
|
1102
1103
|
checkOutNewFeature: 'New feature',
|
|
1103
1104
|
slateBlockMenu: {
|
|
@@ -1097,6 +1097,7 @@ const messages = {
|
|
|
1097
1097
|
},
|
|
1098
1098
|
wrongUserInfoDisclaimer:
|
|
1099
1099
|
'Dersom informasjonen er feil, må den oppdateres av vertsorganisasjon/skoleeier som brukeren tilhører. Oversikt over brukerstøtte finnes her: ',
|
|
1100
|
+
moderator: 'Moderator',
|
|
1100
1101
|
},
|
|
1101
1102
|
checkOutNewFeature: 'Sjekk ut ny funksjonalitet',
|
|
1102
1103
|
slateBlockMenu: {
|
|
@@ -1097,6 +1097,7 @@ const messages = {
|
|
|
1097
1097
|
},
|
|
1098
1098
|
wrongUserInfoDisclaimer:
|
|
1099
1099
|
'Dersom informasjonen er feil, må han oppdaterast av vertsorganisasjon/skuleeigar som brukaren tilhøyrer. Oversikt over brukarstøtte finst her: ',
|
|
1100
|
+
moderator: 'Moderator',
|
|
1100
1101
|
},
|
|
1101
1102
|
checkOutNewFeature: 'Sjekk ut ny funksjonalitet',
|
|
1102
1103
|
slateBlockMenu: {
|
|
@@ -1098,6 +1098,7 @@ const messages = {
|
|
|
1098
1098
|
},
|
|
1099
1099
|
wrongUserInfoDisclaimer:
|
|
1100
1100
|
'Jus leat boasttudieđut, de ferte organisašuvdna/skuvlaeaiggát masá geavaheaddji gullá ođasmahttit dan. Visogova geavaheaddjidoarjaga ektui gávnnat dás: ',
|
|
1101
|
+
moderator: 'Muddenplána',
|
|
1101
1102
|
},
|
|
1102
1103
|
checkOutNewFeature: 'Iskka ođđa doaibmilvuođa',
|
|
1103
1104
|
slateBlockMenu: {
|
|
@@ -1101,6 +1101,7 @@ const messages = {
|
|
|
1101
1101
|
},
|
|
1102
1102
|
wrongUserInfoDisclaimer:
|
|
1103
1103
|
'Dersom informasjonen er feil, må den oppdateres av vertsorganisasjon/skoleeier som brukeren tilhører. Oversikt over brukerstøtte finnes her: ',
|
|
1104
|
+
moderator: 'Moderatijve',
|
|
1104
1105
|
},
|
|
1105
1106
|
checkOutNewFeature: 'Gïehtjh orre funksjonaliteetem',
|
|
1106
1107
|
slateBlockMenu: {
|