@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,142 +1,177 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) 2024-present, NDLA.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the GPLv3 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
indicatorSeparator: () => ({
|
|
37
|
-
display: "none",
|
|
38
|
-
}),
|
|
39
|
-
indicatorsContainer: (provided) => ({
|
|
40
|
-
...provided,
|
|
41
|
-
alignSelf: "flex-end",
|
|
42
|
-
}),
|
|
43
|
-
};
|
|
9
|
+
import { forwardRef, useEffect, useId, useRef } from "react";
|
|
10
|
+
import type { ComboboxCollectionItem } from "@ark-ui/react";
|
|
11
|
+
import { ComboboxContext, useTagsInputContext } from "@ark-ui/react";
|
|
12
|
+
import { Cross } from "@ndla/icons/action";
|
|
13
|
+
import {
|
|
14
|
+
ComboboxClearTrigger,
|
|
15
|
+
ComboboxControl,
|
|
16
|
+
ComboboxControlProps,
|
|
17
|
+
ComboboxInput,
|
|
18
|
+
ComboboxInputProps,
|
|
19
|
+
ComboboxLabel,
|
|
20
|
+
ComboboxRoot,
|
|
21
|
+
ComboboxRootProps,
|
|
22
|
+
ComboboxTrigger,
|
|
23
|
+
TagsInputControl,
|
|
24
|
+
TagsInputControlProps,
|
|
25
|
+
TagsInputInput,
|
|
26
|
+
TagsInputInputProps,
|
|
27
|
+
TagsInputItem,
|
|
28
|
+
TagsInputItemDeleteTrigger,
|
|
29
|
+
TagsInputItemPreview,
|
|
30
|
+
TagsInputItemText,
|
|
31
|
+
TagsInputRoot,
|
|
32
|
+
TagsInputRootProps,
|
|
33
|
+
TagsInputItemInput,
|
|
34
|
+
} from "@ndla/primitives";
|
|
35
|
+
import { contains } from "@ndla/util";
|
|
44
36
|
|
|
45
|
-
|
|
46
|
-
display: flex;
|
|
47
|
-
flex-direction: column;
|
|
48
|
-
flex: 1;
|
|
49
|
-
overflow: hidden;
|
|
50
|
-
`;
|
|
51
|
-
|
|
52
|
-
interface StyledLabelProps {
|
|
53
|
-
labelHidden?: boolean;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const StyledLabel = styled.label<StyledLabelProps>`
|
|
57
|
-
font-weight: ${fonts.weight.semibold};
|
|
58
|
-
${(p) => p.labelHidden && utils.labelHidden}
|
|
59
|
-
`;
|
|
60
|
-
|
|
61
|
-
interface Props {
|
|
62
|
-
label: string;
|
|
63
|
-
tags: string[];
|
|
64
|
-
selected: string[];
|
|
65
|
-
onChange: (tags: string[]) => void;
|
|
66
|
-
onCreateTag: (name: string) => void;
|
|
67
|
-
className?: string;
|
|
68
|
-
labelHidden?: boolean;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
const TagSelector = ({
|
|
72
|
-
selected: _selected,
|
|
73
|
-
tags: _tags,
|
|
74
|
-
onChange,
|
|
75
|
-
onCreateTag,
|
|
76
|
-
className,
|
|
77
|
-
label,
|
|
78
|
-
labelHidden,
|
|
79
|
-
}: Props) => {
|
|
80
|
-
const { t } = useTranslation();
|
|
81
|
-
const [input, setInput] = useState("");
|
|
82
|
-
const tags = useMemo(() => _tags.map((tag) => ({ value: tag, label: tag })), [_tags]);
|
|
83
|
-
const selected = useMemo(() => _selected.map((tag) => ({ value: tag, label: tag })), [_selected]);
|
|
84
|
-
|
|
85
|
-
const handleSpaceClick = (e: KeyboardEvent<HTMLDivElement>) => {
|
|
86
|
-
if (e.key === " ") {
|
|
87
|
-
e.preventDefault();
|
|
88
|
-
if (!_selected.find((tag) => tag === input) && input !== "") {
|
|
89
|
-
onChange(_selected.concat(input));
|
|
90
|
-
}
|
|
91
|
-
setInput("");
|
|
92
|
-
}
|
|
93
|
-
};
|
|
37
|
+
export type TagSelectorRootProps<T extends ComboboxCollectionItem> = ComboboxRootProps<T> & TagsInputRootProps;
|
|
94
38
|
|
|
95
|
-
|
|
96
|
-
|
|
39
|
+
export const TagSelectorRoot = <T extends ComboboxCollectionItem>({
|
|
40
|
+
allowCustomValue = true,
|
|
41
|
+
multiple = true,
|
|
42
|
+
selectionBehavior = "clear",
|
|
43
|
+
editable,
|
|
44
|
+
addOnPaste = false,
|
|
45
|
+
onValueChange,
|
|
46
|
+
children,
|
|
47
|
+
value,
|
|
48
|
+
translations,
|
|
49
|
+
...rest
|
|
50
|
+
}: TagSelectorRootProps<T>) => {
|
|
51
|
+
const ids = {
|
|
52
|
+
root: useId(),
|
|
53
|
+
input: useId(),
|
|
54
|
+
control: useId(),
|
|
97
55
|
};
|
|
98
56
|
|
|
99
|
-
const
|
|
57
|
+
const controlRef = useRef<HTMLDivElement | undefined>(undefined);
|
|
58
|
+
|
|
59
|
+
useEffect(() => {
|
|
60
|
+
if (!controlRef.current) {
|
|
61
|
+
controlRef.current = document.getElementById(ids.control) as HTMLDivElement | undefined;
|
|
62
|
+
}
|
|
63
|
+
}, [ids.control]);
|
|
100
64
|
|
|
101
65
|
return (
|
|
102
|
-
<
|
|
103
|
-
{
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
styles={styles}
|
|
135
|
-
tabSelectsValue={false}
|
|
136
|
-
value={selected}
|
|
137
|
-
/>
|
|
138
|
-
</StyledTagSelector>
|
|
66
|
+
<ComboboxRoot
|
|
67
|
+
ids={ids}
|
|
68
|
+
asChild
|
|
69
|
+
allowCustomValue={allowCustomValue}
|
|
70
|
+
multiple={multiple}
|
|
71
|
+
selectionBehavior={selectionBehavior}
|
|
72
|
+
onValueChange={onValueChange}
|
|
73
|
+
translations={translations}
|
|
74
|
+
onPointerDownOutside={(event) => {
|
|
75
|
+
if (contains(controlRef.current, event.detail.originalEvent.target)) {
|
|
76
|
+
event.preventDefault();
|
|
77
|
+
}
|
|
78
|
+
}}
|
|
79
|
+
value={value}
|
|
80
|
+
{...rest}
|
|
81
|
+
>
|
|
82
|
+
<ComboboxContext>
|
|
83
|
+
{(api) => (
|
|
84
|
+
<TagsInputRoot
|
|
85
|
+
ids={ids}
|
|
86
|
+
value={value}
|
|
87
|
+
onInputValueChange={(details) => api.setInputValue(details.inputValue)}
|
|
88
|
+
editable={editable}
|
|
89
|
+
onValueChange={onValueChange}
|
|
90
|
+
addOnPaste={addOnPaste}
|
|
91
|
+
translations={translations}
|
|
92
|
+
>
|
|
93
|
+
{children}
|
|
94
|
+
</TagsInputRoot>
|
|
95
|
+
)}
|
|
96
|
+
</ComboboxContext>
|
|
97
|
+
</ComboboxRoot>
|
|
139
98
|
);
|
|
140
99
|
};
|
|
141
100
|
|
|
142
|
-
export
|
|
101
|
+
export type TagSelectorControlProps = ComboboxControlProps & TagsInputControlProps;
|
|
102
|
+
|
|
103
|
+
export const TagSelectorLabel = ComboboxLabel;
|
|
104
|
+
|
|
105
|
+
export const TagSelectorItemInput = TagsInputItemInput;
|
|
106
|
+
|
|
107
|
+
export const TagSelectorTrigger = ComboboxTrigger;
|
|
108
|
+
|
|
109
|
+
export const TagSelectorControl = forwardRef<HTMLDivElement, TagSelectorControlProps>(({ children, ...props }, ref) => {
|
|
110
|
+
return (
|
|
111
|
+
<ComboboxControl asChild>
|
|
112
|
+
<TagsInputControl {...props} ref={ref}>
|
|
113
|
+
{children}
|
|
114
|
+
</TagsInputControl>
|
|
115
|
+
</ComboboxControl>
|
|
116
|
+
);
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
export const TagSelectorClearTrigger = ComboboxClearTrigger;
|
|
120
|
+
|
|
121
|
+
export type TagSelectorInputProps = ComboboxInputProps & TagsInputInputProps;
|
|
122
|
+
|
|
123
|
+
// If you need to modify the TagsInputItem, you can use this.
|
|
124
|
+
export const TagSelectorInputBase = forwardRef<HTMLInputElement, TagSelectorInputProps>(
|
|
125
|
+
({ children, ...props }, ref) => {
|
|
126
|
+
const tagsApi = useTagsInputContext();
|
|
127
|
+
|
|
128
|
+
return (
|
|
129
|
+
<ComboboxInput asChild>
|
|
130
|
+
<TagsInputInput
|
|
131
|
+
{...props}
|
|
132
|
+
onKeyDown={(event) => {
|
|
133
|
+
if (event.key === "Enter") {
|
|
134
|
+
tagsApi.addValue(tagsApi.inputValue);
|
|
135
|
+
}
|
|
136
|
+
}}
|
|
137
|
+
ref={ref}
|
|
138
|
+
>
|
|
139
|
+
{children}
|
|
140
|
+
</TagsInputInput>
|
|
141
|
+
</ComboboxInput>
|
|
142
|
+
);
|
|
143
|
+
},
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
export const TagSelectorInput = forwardRef<HTMLInputElement, TagSelectorInputProps>(({ children, ...props }, ref) => {
|
|
147
|
+
const tagsApi = useTagsInputContext();
|
|
148
|
+
|
|
149
|
+
return (
|
|
150
|
+
<>
|
|
151
|
+
{tagsApi.value.map((value, index) => (
|
|
152
|
+
<TagsInputItem index={index} value={value} key={value}>
|
|
153
|
+
<TagsInputItemPreview>
|
|
154
|
+
<TagsInputItemText>{value}</TagsInputItemText>
|
|
155
|
+
<TagsInputItemDeleteTrigger>
|
|
156
|
+
<Cross />
|
|
157
|
+
</TagsInputItemDeleteTrigger>
|
|
158
|
+
</TagsInputItemPreview>
|
|
159
|
+
<TagsInputItemInput />
|
|
160
|
+
</TagsInputItem>
|
|
161
|
+
))}
|
|
162
|
+
<ComboboxInput asChild>
|
|
163
|
+
<TagsInputInput
|
|
164
|
+
{...props}
|
|
165
|
+
onKeyDown={(event) => {
|
|
166
|
+
if (event.key === "Enter") {
|
|
167
|
+
tagsApi.addValue(tagsApi.inputValue);
|
|
168
|
+
}
|
|
169
|
+
}}
|
|
170
|
+
ref={ref}
|
|
171
|
+
>
|
|
172
|
+
{children}
|
|
173
|
+
</TagsInputInput>
|
|
174
|
+
</ComboboxInput>
|
|
175
|
+
</>
|
|
176
|
+
);
|
|
177
|
+
});
|
package/src/i18n/index.ts
CHANGED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2024-present, NDLA.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the GPLv3 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { useTranslation } from "react-i18next";
|
|
10
|
+
import type { ComboboxCollectionItem } from "@ark-ui/react";
|
|
11
|
+
import type { ComboboxRootProps, PaginationRootProps, TagsInputRootProps } from "@ndla/primitives";
|
|
12
|
+
import { TagSelectorRootProps } from "../TagSelector/TagSelector";
|
|
13
|
+
|
|
14
|
+
export const useTagsInputTranslations = (
|
|
15
|
+
translations?: Partial<TagsInputRootProps["translations"]>,
|
|
16
|
+
): TagsInputRootProps["translations"] => {
|
|
17
|
+
const { t } = useTranslation("translation", { keyPrefix: "component.tagsInput" });
|
|
18
|
+
|
|
19
|
+
return {
|
|
20
|
+
clearTriggerLabel: t("clearTriggerLabel"),
|
|
21
|
+
deleteTagTriggerLabel: (tag) => t("deleteTagTriggerLabel", { tag }),
|
|
22
|
+
tagAdded: (tag) => t("tagAdded", { tag }),
|
|
23
|
+
tagsPasted: (tag) => t("tagsPasted", { length: tag.length }),
|
|
24
|
+
tagEdited: (tag) => t("tagEdited", { tag }),
|
|
25
|
+
tagUpdated: (tag) => t("tagUpdated", { tag }),
|
|
26
|
+
tagDeleted: (tag) => t("tagDeleted", { tag }),
|
|
27
|
+
tagSelected: (tag) => t("tagSelected", { tag }),
|
|
28
|
+
...translations,
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export const useComboboxTranslations = <T extends ComboboxCollectionItem>(
|
|
33
|
+
translations?: Partial<ComboboxRootProps<T>["translations"]>,
|
|
34
|
+
): ComboboxRootProps<T>["translations"] => {
|
|
35
|
+
const { t } = useTranslation("translation", { keyPrefix: "component.combobox" });
|
|
36
|
+
|
|
37
|
+
return {
|
|
38
|
+
triggerLabel: t("triggerLabel"),
|
|
39
|
+
clearTriggerLabel: t("clearTriggerLabel"),
|
|
40
|
+
...translations,
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export const useTagSelectorTranslations = <T extends ComboboxCollectionItem>(
|
|
45
|
+
translations?: Partial<TagSelectorRootProps<T>["translations"]>,
|
|
46
|
+
): TagSelectorRootProps<T>["translations"] => {
|
|
47
|
+
const tagsInputTranslations = useTagsInputTranslations();
|
|
48
|
+
const comboboxTranslations = useComboboxTranslations();
|
|
49
|
+
|
|
50
|
+
return {
|
|
51
|
+
...comboboxTranslations,
|
|
52
|
+
...tagsInputTranslations,
|
|
53
|
+
...translations,
|
|
54
|
+
} as TagSelectorRootProps<T>["translations"];
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export const usePaginationTranslations = (
|
|
58
|
+
translations?: Partial<PaginationRootProps["translations"]>,
|
|
59
|
+
): PaginationRootProps["translations"] => {
|
|
60
|
+
const { t } = useTranslation("translation", { keyPrefix: "component.pagination" });
|
|
61
|
+
|
|
62
|
+
return {
|
|
63
|
+
rootLabel: t("rootLabel"),
|
|
64
|
+
prevTriggerLabel: t("prevTriggerLabel"),
|
|
65
|
+
nextTriggerLabel: t("nextTriggerLabel"),
|
|
66
|
+
itemLabel: (details) => {
|
|
67
|
+
const lastPage = details.totalPages > 1 && details.page === details.totalPages;
|
|
68
|
+
return lastPage ? t("lastPage", { page: details.page }) : t("page", { page: details.page });
|
|
69
|
+
},
|
|
70
|
+
...translations,
|
|
71
|
+
};
|
|
72
|
+
};
|
package/src/index.ts
CHANGED
|
@@ -9,10 +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 { ExpandableBox, ExpandableBoxSummary } from "./ExpandableBox";
|
|
13
|
-
export { default as FramedContent } from "./FramedContent";
|
|
14
12
|
export {
|
|
15
|
-
ConceptNotionV2,
|
|
16
13
|
ImageEmbed,
|
|
17
14
|
getCrop,
|
|
18
15
|
getFocalPoint,
|
|
@@ -51,8 +48,6 @@ export type { ArticleModifier } from "./Article";
|
|
|
51
48
|
|
|
52
49
|
export { getPossiblyRelativeUrl } from "./utils/relativeUrl";
|
|
53
50
|
|
|
54
|
-
export { default as Table, TableStyling } from "./Table";
|
|
55
|
-
|
|
56
51
|
export { default as ContentLoader } from "./ContentLoader";
|
|
57
52
|
|
|
58
53
|
export { default as RelatedArticleList, RelatedArticle } from "./RelatedArticleList";
|
|
@@ -65,9 +60,6 @@ export { default as Logo } from "./Logo";
|
|
|
65
60
|
|
|
66
61
|
export { default as FactBox } from "./FactBox";
|
|
67
62
|
|
|
68
|
-
export { default as Image, ImageLink, makeSrcQueryString } from "./Image";
|
|
69
|
-
export type { ImageCrop, ImageFocalPoint } from "./Image";
|
|
70
|
-
|
|
71
63
|
export type { HeroContentType } from "./Hero";
|
|
72
64
|
export {
|
|
73
65
|
SubjectMaterialHero,
|
|
@@ -83,9 +75,6 @@ export {
|
|
|
83
75
|
|
|
84
76
|
export { FooterBlock } from "./Footer";
|
|
85
77
|
|
|
86
|
-
export { Figure } from "./Figure";
|
|
87
|
-
export type { FigureType } from "./Figure";
|
|
88
|
-
|
|
89
78
|
export { LanguageSelector } from "./LanguageSelector";
|
|
90
79
|
|
|
91
80
|
export { default as SearchResultSleeve } from "./Search/SearchResultSleeve";
|
|
@@ -115,7 +104,13 @@ export { default as messagesSMA } from "./locale/messages-sma";
|
|
|
115
104
|
export { default as Breadcrumb, HomeBreadcrumb } from "./Breadcrumb";
|
|
116
105
|
export type { SimpleBreadcrumbItem, IndexedBreadcrumbItem } from "./Breadcrumb";
|
|
117
106
|
|
|
118
|
-
export {
|
|
107
|
+
export {
|
|
108
|
+
i18nInstance,
|
|
109
|
+
formatNestedMessages,
|
|
110
|
+
useTagsInputTranslations,
|
|
111
|
+
useTagSelectorTranslations,
|
|
112
|
+
useComboboxTranslations,
|
|
113
|
+
} from "./i18n";
|
|
119
114
|
|
|
120
115
|
export { default as LayoutItem, OneColumn, PageContainer } from "./Layout";
|
|
121
116
|
|
|
@@ -130,14 +125,26 @@ export {
|
|
|
130
125
|
ConceptBadge,
|
|
131
126
|
} from "./ContentTypeBadge";
|
|
132
127
|
|
|
128
|
+
export type { ContentTypeBadgeProps } from "./ContentTypeBadge/ContentTypeBadgeNew";
|
|
129
|
+
export {
|
|
130
|
+
ContentTypeBadge as ContentTypeBadgeNew,
|
|
131
|
+
contentTypeToBadgeVariantMap,
|
|
132
|
+
} from "./ContentTypeBadge/ContentTypeBadgeNew";
|
|
133
|
+
|
|
133
134
|
export { default as CopyParagraphButton } from "./CopyParagraphButton";
|
|
134
135
|
|
|
135
136
|
export { default as ContentPlaceholder } from "./ContentPlaceholder";
|
|
136
137
|
|
|
137
|
-
export {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
138
|
+
export {
|
|
139
|
+
TagSelectorRoot,
|
|
140
|
+
TagSelectorLabel,
|
|
141
|
+
TagSelectorItemInput,
|
|
142
|
+
TagSelectorTrigger,
|
|
143
|
+
TagSelectorControl,
|
|
144
|
+
TagSelectorClearTrigger,
|
|
145
|
+
TagSelectorInputBase,
|
|
146
|
+
TagSelectorInput,
|
|
147
|
+
} from "./TagSelector/TagSelector";
|
|
141
148
|
|
|
142
149
|
export { SnackbarProvider, useSnack, BaseSnack, DefaultSnackbar } from "./SnackBar";
|
|
143
150
|
export type { Snack, SnackContext } from "./SnackBar";
|
|
@@ -145,9 +152,7 @@ export { TreeStructure } from "./TreeStructure";
|
|
|
145
152
|
export type { TreeStructureProps } from "./TreeStructure";
|
|
146
153
|
|
|
147
154
|
export { SearchField, SearchResultList, SearchResultItem, ActiveFilters } from "./Search";
|
|
148
|
-
export { default as LetterFilter } from "./LetterFilter";
|
|
149
155
|
|
|
150
|
-
export { OrderedList, UnOrderedList } from "./List";
|
|
151
156
|
export { BlogPostV2 } from "./BlogPost";
|
|
152
157
|
export { ProgrammeCard } from "./ProgrammeCard";
|
|
153
158
|
export { KeyFigure } from "./KeyFigure";
|
|
@@ -162,7 +167,6 @@ export {
|
|
|
162
167
|
FRONTPAGE_ARTICLE_MAX_WIDTH,
|
|
163
168
|
WIDE_FRONTPAGE_ARTICLE_MAX_WIDTH,
|
|
164
169
|
} from "./FrontpageArticle";
|
|
165
|
-
export { DefinitionTerm, DefinitionDescription } from "./DefinitionList";
|
|
166
170
|
export type { ProgrammeV2 } from "./ProgrammeCard";
|
|
167
171
|
|
|
168
172
|
export { Gloss, GlossExample } from "./Gloss";
|
|
@@ -203,7 +203,7 @@ const messages = {
|
|
|
203
203
|
alphabeticSort: "Subjects grouped alphabetically",
|
|
204
204
|
subjectGroup: 'Group "{{ category }}"',
|
|
205
205
|
allSubjects: "All subjects",
|
|
206
|
-
myFavoriteSubjects: "
|
|
206
|
+
myFavoriteSubjects: "Your favorite subjects",
|
|
207
207
|
chooseSubject: "Choose subject",
|
|
208
208
|
errorDescription: "Sorry, an error occurred while loading the subjects.",
|
|
209
209
|
confirmRemove: "Are you sure you want to remove {{subject}} from your favorite subjects?",
|
|
@@ -334,7 +334,7 @@ const messages = {
|
|
|
334
334
|
useCompentenceGoalsFilter: "Use filter",
|
|
335
335
|
closeCompentenceGoalsFilter: "Close filter",
|
|
336
336
|
competenceGoalsNarrowBackButton: "Go back",
|
|
337
|
-
competenceGoalResourceSearchText: "View resources
|
|
337
|
+
competenceGoalResourceSearchText: "View resources for {{code}}",
|
|
338
338
|
coreResourceSearchText: "View resources to core element {{code}}",
|
|
339
339
|
competenceGoalShowExtra: "Show",
|
|
340
340
|
competenceGoalCloseExtra: "Hide",
|
|
@@ -577,6 +577,8 @@ const messages = {
|
|
|
577
577
|
podcast: "Podcast",
|
|
578
578
|
h5p: "H5P",
|
|
579
579
|
video: "Video",
|
|
580
|
+
missing: "Unknown",
|
|
581
|
+
external: "External",
|
|
580
582
|
},
|
|
581
583
|
modal: {
|
|
582
584
|
closeModal: "Close",
|
|
@@ -1419,6 +1421,7 @@ const messages = {
|
|
|
1419
1421
|
},
|
|
1420
1422
|
gloss: {
|
|
1421
1423
|
examples: "Examples",
|
|
1424
|
+
showExamples: "Show examples",
|
|
1422
1425
|
wordClass: "Word class",
|
|
1423
1426
|
play: "Play gloss",
|
|
1424
1427
|
transcriptions: {
|
|
@@ -1470,6 +1473,29 @@ const messages = {
|
|
|
1470
1473
|
menuTitle: "About NDLA",
|
|
1471
1474
|
},
|
|
1472
1475
|
login: "Log in",
|
|
1476
|
+
component: {
|
|
1477
|
+
tagsInput: {
|
|
1478
|
+
clearTriggerLabel: "Clear all tags",
|
|
1479
|
+
deleteTagTriggerLabel: "Remove tag {{tag}}",
|
|
1480
|
+
tagAdded: "Added tag {{tag}}",
|
|
1481
|
+
tagsPasted: "Pasted {{length}} tags",
|
|
1482
|
+
tagEdited: "Edited tag {{tag}}. Press enter to save, or escape to cancel.",
|
|
1483
|
+
tagUpdated: "Tag updated to {{tag}}",
|
|
1484
|
+
tagDeleted: "Tag {{tag}} deleted",
|
|
1485
|
+
tagSelected: "Tag {{tag}} selected. Press enter to edit. Press backspace or delete to delete.",
|
|
1486
|
+
},
|
|
1487
|
+
combobox: {
|
|
1488
|
+
triggerLabel: "Show suggestions",
|
|
1489
|
+
clearTriggerLabel: "Clear selection",
|
|
1490
|
+
},
|
|
1491
|
+
pagination: {
|
|
1492
|
+
rootLabel: "Pagination",
|
|
1493
|
+
prevTriggerLabel: "Previous page",
|
|
1494
|
+
nextTriggerLabel: "Next page",
|
|
1495
|
+
lastPage: "Last page, page {{page}}",
|
|
1496
|
+
page: "Page {{page}}",
|
|
1497
|
+
},
|
|
1498
|
+
},
|
|
1473
1499
|
};
|
|
1474
1500
|
|
|
1475
1501
|
export default messages;
|
|
@@ -203,7 +203,7 @@ const messages = {
|
|
|
203
203
|
alphabeticSort: "Fag gruppert alfabetisk",
|
|
204
204
|
subjectGroup: 'Gruppe "{{ category }}"',
|
|
205
205
|
allSubjects: "Alle fag",
|
|
206
|
-
myFavoriteSubjects: "
|
|
206
|
+
myFavoriteSubjects: "Dine favorittfag",
|
|
207
207
|
errorDescription: "Beklager, en feil oppstod under lasting av fagene.",
|
|
208
208
|
chooseSubject: "Velg fag",
|
|
209
209
|
confirmRemove: "Er du sikker på at du vil fjerne {{subject}} fra favorittfag?",
|
|
@@ -334,7 +334,7 @@ const messages = {
|
|
|
334
334
|
useCompentenceGoalsFilter: "Bruk filter",
|
|
335
335
|
closeCompentenceGoalsFilter: "Lukk filter",
|
|
336
336
|
competenceGoalsNarrowBackButton: "Tilbake",
|
|
337
|
-
competenceGoalResourceSearchText: "Vis ressurser til
|
|
337
|
+
competenceGoalResourceSearchText: "Vis ressurser til {{code}}",
|
|
338
338
|
coreResourceSearchText: "Vis ressurser til kjerneelement {{code}}",
|
|
339
339
|
competenceGoalShowExtra: "Vis støtte til læreplanen",
|
|
340
340
|
competenceGoalCloseExtra: "Skjul støtte til læreplanen",
|
|
@@ -577,6 +577,8 @@ const messages = {
|
|
|
577
577
|
podcast: "Podkast",
|
|
578
578
|
h5p: "H5P",
|
|
579
579
|
video: "Video",
|
|
580
|
+
missing: "Ukjent",
|
|
581
|
+
external: "Ekstern",
|
|
580
582
|
},
|
|
581
583
|
modal: {
|
|
582
584
|
closeModal: "Lukk",
|
|
@@ -1419,6 +1421,7 @@ const messages = {
|
|
|
1419
1421
|
},
|
|
1420
1422
|
gloss: {
|
|
1421
1423
|
examples: "Eksempler",
|
|
1424
|
+
showExamples: "Vis eksempler",
|
|
1422
1425
|
wordClass: "Ordklasse",
|
|
1423
1426
|
play: "Spill av glose",
|
|
1424
1427
|
transcriptions: {
|
|
@@ -1470,6 +1473,29 @@ const messages = {
|
|
|
1470
1473
|
menuTitle: "Om NDLA",
|
|
1471
1474
|
},
|
|
1472
1475
|
login: "Logg inn",
|
|
1476
|
+
component: {
|
|
1477
|
+
tagsInput: {
|
|
1478
|
+
clearTriggerLabel: "Fjern alle emneknagger",
|
|
1479
|
+
deleteTagTriggerLabel: "Fjern emneknagg {{tag}}",
|
|
1480
|
+
tagAdded: "Emneknagg {{tag}} lagt til",
|
|
1481
|
+
tagsPasted: "Limte inn {{length}} emneknagger",
|
|
1482
|
+
tagEdited: "Redigerer emneknagg {{tag}}. Trykk enter for å lagre, eller esc for å avbryte.",
|
|
1483
|
+
tagUpdated: "Emneknagg oppdatert til {{tag}}",
|
|
1484
|
+
tagDeleted: "Emneknagg {{tag}} slettet",
|
|
1485
|
+
tagSelected: "Emneknagg {{tag}} valgt. Trykk enter for å redigere. Trykk backspace eller delete for å slette",
|
|
1486
|
+
},
|
|
1487
|
+
combobox: {
|
|
1488
|
+
triggerLabel: "Vis resultater",
|
|
1489
|
+
clearTriggerLabel: "Fjern valg",
|
|
1490
|
+
},
|
|
1491
|
+
pagination: {
|
|
1492
|
+
rootLabel: "Sidenavigering",
|
|
1493
|
+
prevTriggerLabel: "Forrige side",
|
|
1494
|
+
nextTriggerLabel: "Neste side",
|
|
1495
|
+
lastPage: "Siste side, side {{page}}",
|
|
1496
|
+
page: "Side {{page}}",
|
|
1497
|
+
},
|
|
1498
|
+
},
|
|
1473
1499
|
};
|
|
1474
1500
|
|
|
1475
1501
|
export default messages;
|
|
@@ -203,7 +203,7 @@ const messages = {
|
|
|
203
203
|
alphabeticSort: "Fag gruppert alfabetisk",
|
|
204
204
|
subjectGroup: 'Gruppe "{{ category }}"',
|
|
205
205
|
allSubjects: "Alle fag",
|
|
206
|
-
myFavoriteSubjects: "Favorittfaga
|
|
206
|
+
myFavoriteSubjects: "Favorittfaga dine",
|
|
207
207
|
errorDescription: "Orsak, ein feil oppstod under lasting av faga.",
|
|
208
208
|
chooseSubject: "Vel fag",
|
|
209
209
|
confirmRemove: "Er du sikker på at du vil fjerne {{subject}} fra favorittfag?",
|
|
@@ -334,7 +334,7 @@ const messages = {
|
|
|
334
334
|
useCompentenceGoalsFilter: "Bruk filter",
|
|
335
335
|
closeCompentenceGoalsFilter: "Lukk filter",
|
|
336
336
|
competenceGoalsNarrowBackButton: "Tilbake",
|
|
337
|
-
competenceGoalResourceSearchText: "Vis ressursar til
|
|
337
|
+
competenceGoalResourceSearchText: "Vis ressursar til {{code}}",
|
|
338
338
|
coreResourceSearchText: "Vis ressursar til kjerneelement {{code}}",
|
|
339
339
|
competenceGoalShowExtra: "Vis støtte til læreplanen",
|
|
340
340
|
competenceGoalCloseExtra: "Skjul støtte til læreplanen",
|
|
@@ -577,6 +577,8 @@ const messages = {
|
|
|
577
577
|
podcast: "Podkast",
|
|
578
578
|
h5p: "H5P",
|
|
579
579
|
video: "Video",
|
|
580
|
+
missing: "Ukjent",
|
|
581
|
+
external: "Ekstern",
|
|
580
582
|
},
|
|
581
583
|
modal: {
|
|
582
584
|
closeModal: "Lukk",
|
|
@@ -1418,6 +1420,7 @@ const messages = {
|
|
|
1418
1420
|
},
|
|
1419
1421
|
gloss: {
|
|
1420
1422
|
examples: "Eksempler",
|
|
1423
|
+
showExamples: "Vis eksempler",
|
|
1421
1424
|
wordClass: "Ordklasse",
|
|
1422
1425
|
play: "Spill av glose",
|
|
1423
1426
|
transcriptions: {
|
|
@@ -1469,6 +1472,29 @@ const messages = {
|
|
|
1469
1472
|
menuTitle: "Om NDLA",
|
|
1470
1473
|
},
|
|
1471
1474
|
login: "Logg inn",
|
|
1475
|
+
component: {
|
|
1476
|
+
tagsInput: {
|
|
1477
|
+
clearTriggerLabel: "Fjern alle emneknaggar",
|
|
1478
|
+
deleteTagTriggerLabel: "Fjern emneknagg {{tag}}",
|
|
1479
|
+
tagAdded: "Emneknagg {{tag}} lagt til",
|
|
1480
|
+
tagsPasted: "Limte inn {{length}} emneknaggar",
|
|
1481
|
+
tagEdited: "Redigerer emneknagg {{tag}}. Trykk enter for å lagre, eller esc for å avbryte.",
|
|
1482
|
+
tagUpdated: "Emneknagg oppdatret til {{tag}}",
|
|
1483
|
+
tagDeleted: "Emneknagg {{tag}} slettet",
|
|
1484
|
+
tagSelected: "Emneknagg {{tag}} valgt. Trykk enter for å redigere. Trykk backspace eller delete for å slette",
|
|
1485
|
+
},
|
|
1486
|
+
combobox: {
|
|
1487
|
+
triggerLabel: "Vis resultater",
|
|
1488
|
+
clearTriggerLabel: "Fjern valg",
|
|
1489
|
+
},
|
|
1490
|
+
pagination: {
|
|
1491
|
+
rootLabel: "Sidenavigering",
|
|
1492
|
+
prevTriggerLabel: "Førre side",
|
|
1493
|
+
nextTriggerLabel: "Neste side",
|
|
1494
|
+
lastPage: "Siste side, side {{page}}",
|
|
1495
|
+
page: "Side {{page}}",
|
|
1496
|
+
},
|
|
1497
|
+
},
|
|
1472
1498
|
};
|
|
1473
1499
|
|
|
1474
1500
|
export default messages;
|