@ndla/ui 55.0.13-alpha.0 → 55.0.15-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 +142 -1
- package/dist/styles.css +597 -0
- package/es/Article/ArticleByline.js +7 -7
- package/es/Article/ArticleParagraph.js +11 -13
- package/es/AudioPlayer/AudioPlayer.js +1 -0
- package/es/CampaignBlock/CampaignBlock.js +103 -68
- package/es/Concept/Concept.js +69 -0
- package/es/ContactBlock/ContactBlock.js +17 -17
- package/es/ContentTypeBadge/ContentTypeBadgeNew.js +48 -0
- package/es/Embed/AudioEmbed.js +1 -2
- package/es/Embed/BrightcoveEmbed.js +13 -25
- 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 +3 -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/LicenseByline/EmbedByline.js +143 -33
- package/es/LicenseByline/LicenseLink.js +16 -9
- package/es/LicenseByline/index.js +2 -2
- 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 -12
- 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 +597 -0
- package/lib/Article/ArticleByline.js +8 -8
- package/lib/Article/ArticleParagraph.js +12 -14
- package/lib/AudioPlayer/AudioPlayer.js +1 -0
- 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/ContactBlock/ContactBlock.js +18 -18
- 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 -26
- 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 +5 -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/LicenseByline/EmbedByline.d.ts +2 -4
- package/lib/LicenseByline/EmbedByline.js +145 -35
- package/lib/LicenseByline/LicenseLink.d.ts +2 -2
- package/lib/LicenseByline/LicenseLink.js +16 -9
- package/lib/LicenseByline/index.d.ts +2 -2
- package/lib/LicenseByline/index.js +4 -5
- 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 -15
- package/lib/index.js +70 -102
- 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 +597 -0
- package/package.json +11 -13
- package/src/Article/ArticleByline.tsx +1 -1
- package/src/Article/ArticleParagraph.tsx +11 -9
- package/src/AudioPlayer/AudioPlayer.tsx +1 -0
- package/src/CampaignBlock/CampaignBlock.tsx +92 -55
- package/src/Concept/Concept.stories.tsx +142 -0
- package/src/Concept/Concept.tsx +73 -0
- package/src/ContactBlock/ContactBlock.tsx +1 -1
- 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 +18 -20
- 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/LicenseByline/EmbedByline.stories.tsx +9 -4
- package/src/LicenseByline/EmbedByline.tsx +139 -53
- package/src/LicenseByline/LicenseLink.tsx +15 -15
- package/src/LicenseByline/index.tsx +2 -2
- 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 -19
- 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/LicenseByline/LicenseDescription.js +0 -63
- package/es/List/OrderedList.js +0 -41
- package/es/List/UnOrderedList.js +0 -28
- package/es/List/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/LicenseByline/LicenseDescription.d.ts +0 -15
- package/lib/LicenseByline/LicenseDescription.js +0 -70
- package/lib/List/OrderedList.d.ts +0 -16
- package/lib/List/OrderedList.js +0 -48
- package/lib/List/UnOrderedList.d.ts +0 -10
- package/lib/List/UnOrderedList.js +0 -35
- package/lib/List/index.d.ts +0 -9
- package/lib/List/index.js +0 -20
- 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/LicenseByline/LicenseDescription.tsx +0 -100
- package/src/List/OrderedList.stories.tsx +0 -135
- package/src/List/OrderedList.tsx +0 -158
- package/src/List/UnOrderedList.tsx +0 -43
- package/src/List/UnorderedList.stories.tsx +0 -72
- package/src/List/index.ts +0 -10
- 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,26 +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 { ComponentPropsWithRef, forwardRef } from "react";
|
|
10
|
-
import styled from "@emotion/styled";
|
|
11
|
-
import { colors, spacing } from "@ndla/core";
|
|
12
|
-
|
|
13
|
-
const StyledFramedContent = styled.div`
|
|
14
|
-
padding: ${spacing.mediumlarge};
|
|
15
|
-
margin: ${spacing.large} 0;
|
|
16
|
-
border: 1px solid ${colors.brand.tertiary};
|
|
17
|
-
overflow: hidden;
|
|
18
|
-
`;
|
|
19
|
-
|
|
20
|
-
const FramedContent = forwardRef<HTMLDivElement, ComponentPropsWithRef<"div">>(({ children, ...rest }, ref) => (
|
|
21
|
-
<StyledFramedContent {...rest} ref={ref}>
|
|
22
|
-
{children}
|
|
23
|
-
</StyledFramedContent>
|
|
24
|
-
));
|
|
25
|
-
|
|
26
|
-
export default FramedContent;
|
|
@@ -1,10 +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 FramedContent from "./FramedContent";
|
|
10
|
-
export default FramedContent;
|
|
@@ -1,61 +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 Image from "./Image";
|
|
11
|
-
|
|
12
|
-
export default {
|
|
13
|
-
title: "Components/Image",
|
|
14
|
-
tags: ["autodocs"],
|
|
15
|
-
component: Image,
|
|
16
|
-
parameters: {
|
|
17
|
-
inlineStories: true,
|
|
18
|
-
},
|
|
19
|
-
args: {
|
|
20
|
-
alt: "Mann med maske",
|
|
21
|
-
src: "https://api.test.ndla.no/image-api/raw/id/604",
|
|
22
|
-
},
|
|
23
|
-
} as Meta<typeof Image>;
|
|
24
|
-
|
|
25
|
-
export const Default: StoryObj<typeof Image> = {};
|
|
26
|
-
|
|
27
|
-
export const Crop: StoryObj<typeof Image> = {
|
|
28
|
-
args: {
|
|
29
|
-
crop: {
|
|
30
|
-
startX: 14.59,
|
|
31
|
-
endX: 79.63,
|
|
32
|
-
startY: 20,
|
|
33
|
-
endY: 100,
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export const FocalPoint: StoryObj<typeof Image> = {
|
|
39
|
-
args: {
|
|
40
|
-
focalPoint: {
|
|
41
|
-
x: 65.08,
|
|
42
|
-
y: 45.28,
|
|
43
|
-
},
|
|
44
|
-
sizes: "(min-width: 320px) 320px",
|
|
45
|
-
},
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
export const LazyLoad: StoryObj<typeof Image> = {
|
|
49
|
-
args: {
|
|
50
|
-
alt: "Lyspære",
|
|
51
|
-
src: "https://api.staging.ndla.no/image-api/raw/Ide.jpg",
|
|
52
|
-
lazyLoad: true,
|
|
53
|
-
lazyLoadSrc: `data:image/svg+xml;utf8,
|
|
54
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="400" width="100%">
|
|
55
|
-
<rect x="0" y="0" width="100%" height="100%" style="fill:#EFF0F2;">
|
|
56
|
-
<animate attributeType="XML" attributeName="fill" values="#EFF0F2;#E8E3E3;#EFF0F2;" dur="3s" repeatCount="indefinite"/>
|
|
57
|
-
</rect>
|
|
58
|
-
</svg>
|
|
59
|
-
`,
|
|
60
|
-
},
|
|
61
|
-
};
|
package/src/Image/Image.tsx
DELETED
|
@@ -1,147 +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
|
-
import { ReactNode } from "react";
|
|
10
|
-
import styled from "@emotion/styled";
|
|
11
|
-
import { colors, misc } from "@ndla/core";
|
|
12
|
-
|
|
13
|
-
export interface ImageCrop {
|
|
14
|
-
startX: number;
|
|
15
|
-
startY: number;
|
|
16
|
-
endX: number;
|
|
17
|
-
endY: number;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export interface ImageFocalPoint {
|
|
21
|
-
x: number;
|
|
22
|
-
y: number;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export const makeSrcQueryString = (width: number | undefined, crop?: ImageCrop, focalPoint?: ImageFocalPoint) => {
|
|
26
|
-
const widthParams = width && `width=${width}`;
|
|
27
|
-
const cropParams =
|
|
28
|
-
crop && `cropStartX=${crop.startX}&cropEndX=${crop.endX}&cropStartY=${crop.startY}&cropEndY=${crop.endY}`;
|
|
29
|
-
const focalPointParams = focalPoint && `focalX=${focalPoint.x}&focalY=${focalPoint.y}`;
|
|
30
|
-
const params = [widthParams, cropParams, focalPointParams].filter((p) => p).join("&");
|
|
31
|
-
|
|
32
|
-
return params;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const getSrcSet = (src: string, crop: ImageCrop | undefined, focalPoint: ImageFocalPoint | undefined) => {
|
|
36
|
-
const widths = [2720, 2080, 1760, 1440, 1120, 1000, 960, 800, 640, 480, 320, 240, 180];
|
|
37
|
-
return widths.map((width) => `${src}?${makeSrcQueryString(width, crop, focalPoint)} ${width}w`).join(", ");
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
const StyledImageWrapper = styled.div`
|
|
41
|
-
overflow: hidden;
|
|
42
|
-
position: relative;
|
|
43
|
-
|
|
44
|
-
&[data-expanded="true"] {
|
|
45
|
-
width: 100%;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
picture {
|
|
49
|
-
width: 100%;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
&[data-svg="true"] {
|
|
53
|
-
display: flex;
|
|
54
|
-
justify-content: center;
|
|
55
|
-
}
|
|
56
|
-
&[data-border="true"] {
|
|
57
|
-
border: 1px solid ${colors.brand.tertiary};
|
|
58
|
-
border-bottom: 0;
|
|
59
|
-
border-radius: ${misc.borderRadius};
|
|
60
|
-
border-bottom-left-radius: 0;
|
|
61
|
-
border-bottom-right-radius: 0;
|
|
62
|
-
}
|
|
63
|
-
&[data-expandable="true"] {
|
|
64
|
-
cursor: pointer;
|
|
65
|
-
}
|
|
66
|
-
`;
|
|
67
|
-
|
|
68
|
-
const StyledImage = styled.img`
|
|
69
|
-
&[data-border="true"] {
|
|
70
|
-
border-radius: 3px;
|
|
71
|
-
border-bottom-left-radius: 0;
|
|
72
|
-
border-bottom-right-radius: 0;
|
|
73
|
-
}
|
|
74
|
-
`;
|
|
75
|
-
|
|
76
|
-
interface Props {
|
|
77
|
-
alt: string;
|
|
78
|
-
src: string;
|
|
79
|
-
sizes?: string;
|
|
80
|
-
fallbackWidth?: number;
|
|
81
|
-
contentType?: string;
|
|
82
|
-
srcSet?: string;
|
|
83
|
-
lazyLoad?: boolean;
|
|
84
|
-
lazyLoadSrc?: string;
|
|
85
|
-
expandButton?: ReactNode;
|
|
86
|
-
crop?: ImageCrop;
|
|
87
|
-
focalPoint?: ImageFocalPoint;
|
|
88
|
-
border?: string;
|
|
89
|
-
lang?: string;
|
|
90
|
-
onExpand?: () => void;
|
|
91
|
-
expanded?: boolean;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
const Image = ({
|
|
95
|
-
alt,
|
|
96
|
-
src,
|
|
97
|
-
lazyLoad,
|
|
98
|
-
lazyLoadSrc,
|
|
99
|
-
crop,
|
|
100
|
-
focalPoint,
|
|
101
|
-
contentType,
|
|
102
|
-
sizes = "(min-width: 1024px) 1024px, 100vw",
|
|
103
|
-
expandButton,
|
|
104
|
-
fallbackWidth = 1024,
|
|
105
|
-
border,
|
|
106
|
-
lang,
|
|
107
|
-
onExpand,
|
|
108
|
-
expanded,
|
|
109
|
-
...rest
|
|
110
|
-
}: Props) => {
|
|
111
|
-
const srcSet = rest.srcSet ?? getSrcSet(src, crop, focalPoint);
|
|
112
|
-
const queryString = makeSrcQueryString(fallbackWidth, crop, focalPoint);
|
|
113
|
-
const loading = lazyLoad ? "lazy" : undefined;
|
|
114
|
-
|
|
115
|
-
if (contentType && contentType === "image/gif") {
|
|
116
|
-
return (
|
|
117
|
-
<StyledImageWrapper data-border={border} data-expanded={expanded} data-expandable={!!onExpand} onClick={onExpand}>
|
|
118
|
-
<StyledImage alt={alt} loading={loading} src={`${src}`} {...rest} data-border={border} lang={lang} />
|
|
119
|
-
</StyledImageWrapper>
|
|
120
|
-
);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
return (
|
|
124
|
-
<StyledImageWrapper
|
|
125
|
-
data-svg={contentType === "image/svg+xml"}
|
|
126
|
-
data-border={border}
|
|
127
|
-
data-expandable={!!onExpand}
|
|
128
|
-
data-expanded={expanded}
|
|
129
|
-
onClick={onExpand}
|
|
130
|
-
>
|
|
131
|
-
<picture>
|
|
132
|
-
<source type={contentType} srcSet={srcSet} sizes={sizes} />
|
|
133
|
-
<StyledImage
|
|
134
|
-
alt={alt}
|
|
135
|
-
loading={loading}
|
|
136
|
-
src={`${src}?${queryString}`}
|
|
137
|
-
{...rest}
|
|
138
|
-
data-border={border}
|
|
139
|
-
lang={lang}
|
|
140
|
-
/>
|
|
141
|
-
</picture>
|
|
142
|
-
{expandButton}
|
|
143
|
-
</StyledImageWrapper>
|
|
144
|
-
);
|
|
145
|
-
};
|
|
146
|
-
|
|
147
|
-
export default Image;
|
package/src/Image/ImageLink.tsx
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2019-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 { ReactNode } from "react";
|
|
10
|
-
import styled from "@emotion/styled";
|
|
11
|
-
import { ImageCrop, ImageFocalPoint } from ".";
|
|
12
|
-
import { makeSrcQueryString } from "./Image";
|
|
13
|
-
|
|
14
|
-
const StyledLink = styled.a`
|
|
15
|
-
box-shadow: inset 0 0;
|
|
16
|
-
`;
|
|
17
|
-
|
|
18
|
-
interface Props {
|
|
19
|
-
src: string;
|
|
20
|
-
children: ReactNode;
|
|
21
|
-
sizes?: string;
|
|
22
|
-
crop?: ImageCrop;
|
|
23
|
-
focalPoint?: ImageFocalPoint;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export function ImageLink({ src, crop, children, ...rest }: Props) {
|
|
27
|
-
return (
|
|
28
|
-
<StyledLink
|
|
29
|
-
target="_blank"
|
|
30
|
-
href={`${src}?${makeSrcQueryString(undefined, crop)}`}
|
|
31
|
-
rel="noopener noreferrer"
|
|
32
|
-
{...rest}
|
|
33
|
-
>
|
|
34
|
-
{children}
|
|
35
|
-
</StyledLink>
|
|
36
|
-
);
|
|
37
|
-
}
|
package/src/Image/index.ts
DELETED
|
@@ -1,14 +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
|
-
import Image from "./Image";
|
|
10
|
-
export { makeSrcQueryString } from "./Image";
|
|
11
|
-
export { ImageLink } from "./ImageLink";
|
|
12
|
-
export type { ImageCrop, ImageFocalPoint } from "./Image";
|
|
13
|
-
|
|
14
|
-
export default Image;
|
|
@@ -1,29 +0,0 @@
|
|
|
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
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { useArgs } from "@storybook/preview-api";
|
|
10
|
-
import { Meta, StoryFn } from "@storybook/react";
|
|
11
|
-
import LetterFilter from "./LetterFilter";
|
|
12
|
-
|
|
13
|
-
export default {
|
|
14
|
-
title: "Components/LetterFilter",
|
|
15
|
-
component: LetterFilter,
|
|
16
|
-
tags: ["autodocs"],
|
|
17
|
-
args: {
|
|
18
|
-
enabledLetters: ["a", "c"],
|
|
19
|
-
onChange: (value?: string) => {},
|
|
20
|
-
},
|
|
21
|
-
} as Meta<typeof LetterFilter>;
|
|
22
|
-
|
|
23
|
-
export const LetterFilterStory: StoryFn<typeof LetterFilter> = (args) => {
|
|
24
|
-
const [, updateArgs] = useArgs();
|
|
25
|
-
|
|
26
|
-
return <LetterFilter {...args} onChange={(val) => updateArgs({ value: val })} />;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
LetterFilterStory.storyName = "LetterFilter";
|
|
@@ -1,78 +0,0 @@
|
|
|
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
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { useMemo } from "react";
|
|
10
|
-
import { useTranslation } from "react-i18next";
|
|
11
|
-
import styled from "@emotion/styled";
|
|
12
|
-
import { IconButtonV2 as IconButton } from "@ndla/button";
|
|
13
|
-
import { colors, fonts, spacing } from "@ndla/core";
|
|
14
|
-
import { alphabet } from "./alphabet";
|
|
15
|
-
|
|
16
|
-
const StyledUL = styled.ul`
|
|
17
|
-
list-style: none;
|
|
18
|
-
display: flex;
|
|
19
|
-
flex-direction: row;
|
|
20
|
-
flex-wrap: wrap;
|
|
21
|
-
gap: ${spacing.xsmall};
|
|
22
|
-
`;
|
|
23
|
-
|
|
24
|
-
const StyledButton = styled(IconButton)`
|
|
25
|
-
display: flex;
|
|
26
|
-
align-items: center;
|
|
27
|
-
justify-content: center;
|
|
28
|
-
width: ${spacing.normal};
|
|
29
|
-
height: ${spacing.normal};
|
|
30
|
-
padding: 0;
|
|
31
|
-
${fonts.sizes(18)};
|
|
32
|
-
&& {
|
|
33
|
-
font-weight: ${fonts.weight.semibold};
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
:disabled {
|
|
37
|
-
pointer-events: none;
|
|
38
|
-
color: ${colors.brand.light};
|
|
39
|
-
}
|
|
40
|
-
`;
|
|
41
|
-
|
|
42
|
-
interface Props {
|
|
43
|
-
value?: string | undefined;
|
|
44
|
-
onChange: (value?: string) => void;
|
|
45
|
-
enabledLetters: string[];
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
const LetterFilter = ({ value, onChange, enabledLetters }: Props) => {
|
|
49
|
-
const { t } = useTranslation();
|
|
50
|
-
const uppercaseLetters = useMemo(() => enabledLetters.map((letter) => letter.toUpperCase()), [enabledLetters]);
|
|
51
|
-
|
|
52
|
-
return (
|
|
53
|
-
<StyledUL>
|
|
54
|
-
{alphabet.map((letter) => {
|
|
55
|
-
const disabled = !uppercaseLetters.includes(letter.toUpperCase());
|
|
56
|
-
const selected = letter.toUpperCase() === value?.toUpperCase();
|
|
57
|
-
return (
|
|
58
|
-
<li key={letter}>
|
|
59
|
-
<StyledButton
|
|
60
|
-
onClick={() => (selected ? onChange(undefined) : onChange(letter))}
|
|
61
|
-
aria-label={t("listview.filters.alphabet.letterFilter", {
|
|
62
|
-
letter,
|
|
63
|
-
})}
|
|
64
|
-
variant={!selected ? "ghost" : undefined}
|
|
65
|
-
colorTheme={!selected ? "lighter" : "primary"}
|
|
66
|
-
disabled={disabled}
|
|
67
|
-
size="xsmall"
|
|
68
|
-
>
|
|
69
|
-
{letter}
|
|
70
|
-
</StyledButton>
|
|
71
|
-
</li>
|
|
72
|
-
);
|
|
73
|
-
})}
|
|
74
|
-
</StyledUL>
|
|
75
|
-
);
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
export default LetterFilter;
|
|
@@ -1,39 +0,0 @@
|
|
|
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
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
export const alphabet = [
|
|
10
|
-
"A",
|
|
11
|
-
"B",
|
|
12
|
-
"C",
|
|
13
|
-
"D",
|
|
14
|
-
"E",
|
|
15
|
-
"F",
|
|
16
|
-
"G",
|
|
17
|
-
"H",
|
|
18
|
-
"I",
|
|
19
|
-
"J",
|
|
20
|
-
"K",
|
|
21
|
-
"L",
|
|
22
|
-
"M",
|
|
23
|
-
"N",
|
|
24
|
-
"O",
|
|
25
|
-
"P",
|
|
26
|
-
"Q",
|
|
27
|
-
"R",
|
|
28
|
-
"S",
|
|
29
|
-
"T",
|
|
30
|
-
"U",
|
|
31
|
-
"V",
|
|
32
|
-
"W",
|
|
33
|
-
"X",
|
|
34
|
-
"Y",
|
|
35
|
-
"Z",
|
|
36
|
-
"Æ",
|
|
37
|
-
"Ø",
|
|
38
|
-
"Å",
|
|
39
|
-
];
|
|
@@ -1,11 +0,0 @@
|
|
|
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
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import LetterFilter from "./LetterFilter";
|
|
10
|
-
|
|
11
|
-
export default LetterFilter;
|
|
@@ -1,100 +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 { t } from "i18next";
|
|
10
|
-
import { ReactNode, useState } from "react";
|
|
11
|
-
import styled from "@emotion/styled";
|
|
12
|
-
import { ButtonV2 } from "@ndla/button";
|
|
13
|
-
import { breakpoints, colors, fonts, mq, spacing } from "@ndla/core";
|
|
14
|
-
|
|
15
|
-
interface Props {
|
|
16
|
-
icon?: ReactNode;
|
|
17
|
-
children?: ReactNode;
|
|
18
|
-
warningByline?: boolean;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const StyledFigCaption = styled.div`
|
|
22
|
-
display: flex;
|
|
23
|
-
gap: ${spacing.small};
|
|
24
|
-
align-items: center;
|
|
25
|
-
background: unset;
|
|
26
|
-
padding: unset;
|
|
27
|
-
font-size: unset;
|
|
28
|
-
color: unset;
|
|
29
|
-
p {
|
|
30
|
-
margin: 0;
|
|
31
|
-
}
|
|
32
|
-
`;
|
|
33
|
-
|
|
34
|
-
const StyledDescription = styled.div`
|
|
35
|
-
display: inline-flex;
|
|
36
|
-
white-space: pre-wrap;
|
|
37
|
-
&[data-warning="false"] {
|
|
38
|
-
${mq.range({ until: breakpoints.mobileWide })} {
|
|
39
|
-
&[data-open="true"] {
|
|
40
|
-
display: inline;
|
|
41
|
-
}
|
|
42
|
-
display: grid;
|
|
43
|
-
grid-template-columns: 1fr auto;
|
|
44
|
-
overflow: hidden;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
`;
|
|
48
|
-
|
|
49
|
-
const TextContent = styled.span`
|
|
50
|
-
&[data-warning="false"] {
|
|
51
|
-
${mq.range({ until: breakpoints.mobileWide })} {
|
|
52
|
-
white-space: nowrap;
|
|
53
|
-
max-height: ${spacing.medium};
|
|
54
|
-
&[data-open="true"] {
|
|
55
|
-
white-space: pre-wrap;
|
|
56
|
-
max-height: none;
|
|
57
|
-
}
|
|
58
|
-
overflow: hidden;
|
|
59
|
-
text-overflow: ellipsis;
|
|
60
|
-
transition: max-height 0.7s ease-in;
|
|
61
|
-
margin: auto 0;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
`;
|
|
65
|
-
|
|
66
|
-
const Button = styled(ButtonV2)`
|
|
67
|
-
color: ${colors.brand.primary};
|
|
68
|
-
font-weight: ${fonts.weight.semibold};
|
|
69
|
-
min-width: fit-content;
|
|
70
|
-
margin-left: ${spacing.small};
|
|
71
|
-
${mq.range({ from: breakpoints.mobileWide })} {
|
|
72
|
-
display: none;
|
|
73
|
-
}
|
|
74
|
-
`;
|
|
75
|
-
|
|
76
|
-
const LicenseDescription = ({ icon, children, warningByline = false }: Props) => {
|
|
77
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
78
|
-
|
|
79
|
-
const handleToggle = () => {
|
|
80
|
-
setIsOpen(!isOpen);
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
return (
|
|
84
|
-
<StyledFigCaption>
|
|
85
|
-
{icon}
|
|
86
|
-
<StyledDescription data-open={isOpen} data-warning={warningByline}>
|
|
87
|
-
<TextContent data-open={isOpen} data-warning={warningByline}>
|
|
88
|
-
{children}
|
|
89
|
-
</TextContent>
|
|
90
|
-
{!warningByline && (
|
|
91
|
-
<Button variant="link" onClick={handleToggle}>
|
|
92
|
-
{isOpen ? `${t("audio.readLessDescriptionLabel")}` : `${t("audio.readMoreDescriptionLabel")}`}
|
|
93
|
-
</Button>
|
|
94
|
-
)}
|
|
95
|
-
</StyledDescription>
|
|
96
|
-
</StyledFigCaption>
|
|
97
|
-
);
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
export default LicenseDescription;
|
|
@@ -1,135 +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 OrderedList from "./OrderedList";
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Lister bør ikke inneholde flere enn 10 punkter. Har du mye mer, bør du vurdere å organisere innholdet annerledes.
|
|
14
|
-
*/
|
|
15
|
-
export default {
|
|
16
|
-
title: "Base Styles/Ordered List",
|
|
17
|
-
tags: ["autodocs"],
|
|
18
|
-
component: OrderedList,
|
|
19
|
-
parameters: {
|
|
20
|
-
inlineStories: true,
|
|
21
|
-
},
|
|
22
|
-
render: ({ ...args }) => (
|
|
23
|
-
<OrderedList {...args}>
|
|
24
|
-
<li>Listepunkt 1</li>
|
|
25
|
-
<li>Listepunkt 2</li>
|
|
26
|
-
<li>
|
|
27
|
-
Listepunkt 3
|
|
28
|
-
<OrderedList {...args}>
|
|
29
|
-
<li>Listepunkt 1</li>
|
|
30
|
-
<li>Listepunkt 2</li>
|
|
31
|
-
<li>
|
|
32
|
-
Listepunkt 3
|
|
33
|
-
<OrderedList {...args}>
|
|
34
|
-
<li>Listepunkt 1</li>
|
|
35
|
-
<li>Listepunkt 2</li>
|
|
36
|
-
<li>Listepunkt 3</li>
|
|
37
|
-
</OrderedList>
|
|
38
|
-
</li>
|
|
39
|
-
</OrderedList>
|
|
40
|
-
</li>
|
|
41
|
-
<li>Listepunkt 4</li>
|
|
42
|
-
</OrderedList>
|
|
43
|
-
),
|
|
44
|
-
} as Meta<typeof OrderedList>;
|
|
45
|
-
|
|
46
|
-
export const Default: StoryObj = {};
|
|
47
|
-
|
|
48
|
-
export const Letters: StoryObj = {
|
|
49
|
-
args: {
|
|
50
|
-
type: "letters",
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export const WithNumbersAndLetters: StoryFn = () => (
|
|
55
|
-
<OrderedList>
|
|
56
|
-
<li>Listepunkt 1</li>
|
|
57
|
-
<li>Listepunkt 2</li>
|
|
58
|
-
<li>
|
|
59
|
-
Listepunkt 3
|
|
60
|
-
<OrderedList data-type="letters">
|
|
61
|
-
<li>Listepunkt 1</li>
|
|
62
|
-
<li>Listepunkt 2</li>
|
|
63
|
-
<li>
|
|
64
|
-
Listepunkt 3
|
|
65
|
-
<OrderedList data-type="letters">
|
|
66
|
-
<li>Listepunkt 1</li>
|
|
67
|
-
<li>Listepunkt 2</li>
|
|
68
|
-
<li>
|
|
69
|
-
Listepunkt 3
|
|
70
|
-
<OrderedList>
|
|
71
|
-
<li>Listepunkt 1</li>
|
|
72
|
-
<li>Listepunkt 2</li>
|
|
73
|
-
<li>Listepunkt 3</li>
|
|
74
|
-
</OrderedList>
|
|
75
|
-
</li>
|
|
76
|
-
</OrderedList>
|
|
77
|
-
</li>
|
|
78
|
-
</OrderedList>
|
|
79
|
-
</li>
|
|
80
|
-
<li>Listepunkt 4</li>
|
|
81
|
-
</OrderedList>
|
|
82
|
-
);
|
|
83
|
-
|
|
84
|
-
export const StartingAtFive: StoryFn = () => (
|
|
85
|
-
<OrderedList start={5} data-type="letters">
|
|
86
|
-
<li>Listepunkt 1</li>
|
|
87
|
-
<li>Listepunkt 2</li>
|
|
88
|
-
<li>
|
|
89
|
-
Listepunkt 3
|
|
90
|
-
<OrderedList data-type="letters">
|
|
91
|
-
<li>Listepunkt 1</li>
|
|
92
|
-
<li>Listepunkt 2</li>
|
|
93
|
-
<li>
|
|
94
|
-
Listepunkt 3
|
|
95
|
-
<OrderedList data-type="letters">
|
|
96
|
-
<li>Listepunkt 1</li>
|
|
97
|
-
<li>Listepunkt 2</li>
|
|
98
|
-
<li>
|
|
99
|
-
Listepunkt 3
|
|
100
|
-
<OrderedList start={5}>
|
|
101
|
-
<li>Listepunkt 1</li>
|
|
102
|
-
<li>Listepunkt 2</li>
|
|
103
|
-
<li>Listepunkt 3</li>
|
|
104
|
-
</OrderedList>
|
|
105
|
-
</li>
|
|
106
|
-
</OrderedList>
|
|
107
|
-
</li>
|
|
108
|
-
</OrderedList>
|
|
109
|
-
</li>
|
|
110
|
-
<li>Listepunkt 4</li>
|
|
111
|
-
</OrderedList>
|
|
112
|
-
);
|
|
113
|
-
|
|
114
|
-
export const NoStyle: StoryFn = () => (
|
|
115
|
-
<ol>
|
|
116
|
-
<li>Listepunkt 1</li>
|
|
117
|
-
<li>Listepunkt 2</li>
|
|
118
|
-
<li>
|
|
119
|
-
Listepunkt 3
|
|
120
|
-
<ol>
|
|
121
|
-
<li>Listepunkt 1</li>
|
|
122
|
-
<li>Listepunkt 2</li>
|
|
123
|
-
<li>
|
|
124
|
-
Listepunkt 3
|
|
125
|
-
<ol>
|
|
126
|
-
<li>Listepunkt 1</li>
|
|
127
|
-
<li>Listepunkt 2</li>
|
|
128
|
-
<li>Listepunkt 3</li>
|
|
129
|
-
</ol>
|
|
130
|
-
</li>
|
|
131
|
-
</ol>
|
|
132
|
-
</li>
|
|
133
|
-
<li>Listepunkt 4</li>
|
|
134
|
-
</ol>
|
|
135
|
-
);
|