@ndla/ui 16.1.1 → 16.2.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/es/Notion/ConceptNotion.js +1 -1
- package/es/Notion/index.js +2 -1
- package/es/TreeStructure/FolderItem.js +39 -28
- package/es/TreeStructure/FolderItems.js +8 -5
- package/es/TreeStructure/TreeStructure.js +6 -4
- package/es/TreeStructure/TreeStructureWrapper.js +2 -2
- package/es/index.js +1 -1
- package/es/locale/messages-en.js +1 -1
- package/es/locale/messages-nb.js +1 -1
- package/es/locale/messages-nn.js +1 -1
- package/es/locale/messages-se.js +1 -1
- package/es/locale/messages-sma.js +1 -1
- package/lib/Breadcrumblist/index.d.ts +1 -0
- package/lib/Notion/ConceptNotion.d.ts +1 -1
- package/lib/Notion/ConceptNotion.js +1 -1
- package/lib/Notion/index.d.ts +4 -1
- package/lib/Notion/index.js +11 -3
- package/lib/TreeStructure/FolderItem.d.ts +3 -2
- package/lib/TreeStructure/FolderItem.js +38 -28
- package/lib/TreeStructure/FolderItems.d.ts +1 -1
- package/lib/TreeStructure/FolderItems.js +8 -5
- package/lib/TreeStructure/TreeStructure.d.ts +1 -1
- package/lib/TreeStructure/TreeStructure.js +6 -4
- package/lib/TreeStructure/TreeStructure.types.d.ts +6 -3
- package/lib/TreeStructure/TreeStructureWrapper.js +2 -2
- package/lib/index.d.ts +6 -2
- package/lib/index.js +7 -0
- package/lib/locale/messages-en.js +1 -1
- package/lib/locale/messages-nb.js +1 -1
- package/lib/locale/messages-nn.js +1 -1
- package/lib/locale/messages-se.js +1 -1
- package/lib/locale/messages-sma.js +1 -1
- package/package.json +13 -13
- package/src/Breadcrumblist/{index.tsx → index.ts} +1 -0
- package/src/Notion/ConceptNotion.tsx +2 -1
- package/src/Notion/index.ts +4 -1
- package/src/TreeStructure/FolderItem.tsx +40 -19
- package/src/TreeStructure/FolderItems.tsx +3 -0
- package/src/TreeStructure/TreeStructure.tsx +2 -0
- package/src/TreeStructure/TreeStructure.types.ts +7 -3
- package/src/TreeStructure/TreeStructureWrapper.tsx +1 -1
- package/src/index.ts +15 -2
- package/src/locale/messages-en.ts +1 -1
- package/src/locale/messages-nb.ts +1 -1
- package/src/locale/messages-nn.ts +1 -1
- package/src/locale/messages-se.ts +1 -1
- package/src/locale/messages-sma.ts +1 -1
package/lib/index.d.ts
CHANGED
|
@@ -25,9 +25,12 @@ export { default as InfoWidget } from './InfoWidget';
|
|
|
25
25
|
export { FrontpageInfo, FrontpageFilm, FrontpageToolbox, FrontpageMultidisciplinarySubject, FrontpageHeader, FrontpageSubjectIllustration, FrontpageSearch, FrontpageProgramMenu, } from './Frontpage';
|
|
26
26
|
export { default as FactBox } from './FactBox';
|
|
27
27
|
export { default as Image, ImageLink, makeSrcQueryString } from './Image';
|
|
28
|
+
export type { ImageCrop, ImageFocalPoint } from './Image';
|
|
29
|
+
export type { HeroContentType } from './Hero';
|
|
28
30
|
export { SubjectMaterialHero, TasksAndActivitiesHero, AssessmentResourcesHero, SubjectHero, ExternalLearningResourcesHero, SourceMaterialHero, Hero, NdlaFilmHero, } from './Hero';
|
|
29
31
|
export { Footer, EditorName, FooterText, FooterAuth } from './Footer';
|
|
30
|
-
export { Figure, FigureCaption, FigureLicenseDialog, FigureExpandButton, FigureOpenDialogButton } from './Figure';
|
|
32
|
+
export { Figure, FigureCaption, FigureLicenseDialog, FigureExpandButton, FigureOpenDialogButton, FigureBylineExpandButton, } from './Figure';
|
|
33
|
+
export type { FigureType } from './Figure';
|
|
31
34
|
export { LanguageSelector } from './LanguageSelector';
|
|
32
35
|
export { LearningPathWrapper, LearningPathContent, LearningPathMenu, LearningPathSticky, LearningPathInformation, LearningPathStickySibling, LearningPathStickyPlaceholder, LearningPathLastStepNavigation, LearningPathMobileStepInfo, LearningPathMobileHeader, } from './LearningPaths';
|
|
33
36
|
export { Translation, TranslationLine, TranslationBox } from './Translation';
|
|
@@ -62,7 +65,7 @@ export { default as Aside } from './Aside';
|
|
|
62
65
|
export { default as AuthorInfo } from './AuthorInfo';
|
|
63
66
|
export { default as Breadcrumb, HeaderBreadcrumb, HomeBreadcrumb, ActionBreadcrumb } from './Breadcrumb';
|
|
64
67
|
export type { SimpleBreadcrumbItem, IndexedBreadcrumbItem } from './Breadcrumb';
|
|
65
|
-
export type { BreadcrumbItemProps } from './Breadcrumblist
|
|
68
|
+
export type { BreadcrumbItemProps } from './Breadcrumblist';
|
|
66
69
|
export { i18nInstance, formatNestedMessages, formatMessage } from './i18n';
|
|
67
70
|
export { default as ResourceGroup } from './ResourceGroup';
|
|
68
71
|
export { default as LayoutItem, OneColumn, PageContainer, Content } from './Layout';
|
|
@@ -75,6 +78,7 @@ export { default as ContentCard } from './ContentCard';
|
|
|
75
78
|
export { default as CopyParagraphButton } from './CopyParagraphButton';
|
|
76
79
|
export { default as ContentPlaceholder } from './ContentPlaceholder';
|
|
77
80
|
export { Notion, ConceptNotion } from './Notion';
|
|
81
|
+
export type { NotionVisualElementType, ConceptNotionType } from './Notion';
|
|
78
82
|
export { BannerCard } from './BannerCard';
|
|
79
83
|
export { VerticalNavigation, Folder, FolderInput } from './MyNdla';
|
|
80
84
|
export { ListResource, BlockResource } from './Resource';
|
package/lib/index.js
CHANGED
|
@@ -68,6 +68,7 @@ var _exportNames = {
|
|
|
68
68
|
FigureLicenseDialog: true,
|
|
69
69
|
FigureExpandButton: true,
|
|
70
70
|
FigureOpenDialogButton: true,
|
|
71
|
+
FigureBylineExpandButton: true,
|
|
71
72
|
LanguageSelector: true,
|
|
72
73
|
LearningPathWrapper: true,
|
|
73
74
|
LearningPathContent: true,
|
|
@@ -560,6 +561,12 @@ Object.defineProperty(exports, "FigureOpenDialogButton", {
|
|
|
560
561
|
return _Figure.FigureOpenDialogButton;
|
|
561
562
|
}
|
|
562
563
|
});
|
|
564
|
+
Object.defineProperty(exports, "FigureBylineExpandButton", {
|
|
565
|
+
enumerable: true,
|
|
566
|
+
get: function get() {
|
|
567
|
+
return _Figure.FigureBylineExpandButton;
|
|
568
|
+
}
|
|
569
|
+
});
|
|
563
570
|
Object.defineProperty(exports, "LanguageSelector", {
|
|
564
571
|
enumerable: true,
|
|
565
572
|
get: function get() {
|
|
@@ -318,7 +318,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
318
318
|
feide: 'This resource is accessible only to teachers who are logged in with Feide.',
|
|
319
319
|
resources: 'This is not a complete course produced by NDLA, but a collection of resources we hope you will find useful.',
|
|
320
320
|
subjectOutdated: 'This course is not updated to the current curriculum.',
|
|
321
|
-
subjectBeta: 'This course is in beta.',
|
|
321
|
+
subjectBeta: 'This course is in beta. New resources are being added continously.',
|
|
322
322
|
newVersion: 'This learning resource is not updated to the current curriculum. You can find an updated version here: ',
|
|
323
323
|
frontPageBeta: 'Revised subjects have been revised in accordance with the new curriculum that will be put into effect from August 2022. Beta versions of subjects are subjects we are still working on. We hope, however, that the learning resources available by now may come in useful already.',
|
|
324
324
|
frontPageExpired: 'Expired subjects are not being taught any longer, but it may still be possible to take exams in these subjects.',
|
|
@@ -318,7 +318,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
318
318
|
feide: 'Denne ressursen er bare tilgjengelig for lærere som er pålogget med Feide.',
|
|
319
319
|
resources: 'Dette er ikke et komplett læremiddel produsert av NDLA, men ei ressurssamling som vi håper kan være nyttig for deg.',
|
|
320
320
|
subjectOutdated: 'Dette faget følger en utgått læreplan.',
|
|
321
|
-
subjectBeta: 'Dette faget er i betaversjon.',
|
|
321
|
+
subjectBeta: 'Dette faget er i betaversjon. Vi fyller på med ressurser fortløpende.',
|
|
322
322
|
newVersion: 'Denne læringsressursen er ikke oppdatert etter gjeldende læreplan. Du finner en oppdatert versjon her: ',
|
|
323
323
|
frontPageBeta: 'Kommende fag er tilpassa ny læreplan som gjelder fra høsten 2022. Betafag er fag under arbeid. Vi håper likevel at læringsressursene i betafaga kan være nyttige allerede nå.',
|
|
324
324
|
frontPageExpired: 'Utgåtte fag undervises det ikke i lenger, men det kan fortsatt være mulig å ta eksamen i faga som privatist.',
|
|
@@ -318,7 +318,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
318
318
|
feide: 'Denne ressursen er berre tilgjengeleg for lærarar som er pålogga med Feide.',
|
|
319
319
|
resources: 'Dette er ikkje eit komplett læremiddel produsert av NDLA, men ei ressurssamling som vi håper kan vere nyttig for deg.',
|
|
320
320
|
subjectOutdated: 'Dette faget følgjer ein utgått læreplan.',
|
|
321
|
-
subjectBeta: 'Dette faget er i betaversjon.',
|
|
321
|
+
subjectBeta: 'Dette faget er i betaversjon. Vi fyller på med ressurser fortløpande.',
|
|
322
322
|
newVersion: 'Denne læringsressursen er ikkje oppdatert etter gjeldande læreplan. Du finn ein oppdatert versjon her: ',
|
|
323
323
|
frontPageBeta: 'Kommande fag er tilpassa ny læreplan som gjeld fra hausten 2022. Betafag er fag under arbeid. Vi håper likevel at læringsressursane i betafaga kan vere nyttige allereie no.',
|
|
324
324
|
frontPageExpired: 'Utgåtte fag blir det ikkje undervist i lenger, men det kan framleis vere mogleg å ta eksamen i faget som privatist.',
|
|
@@ -318,7 +318,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
318
318
|
feide: 'Denne ressursen er bare tilgjengelig for lærere som er pålogget med Feide.',
|
|
319
319
|
resources: 'Dette er ikke et komplett læremiddel produsert av NDLA, men ei ressurssamling som vi håper kan være nyttig for deg.',
|
|
320
320
|
subjectOutdated: 'Dette faget følger en utgått læreplan.',
|
|
321
|
-
subjectBeta: 'Dette faget er i betaversjon.',
|
|
321
|
+
subjectBeta: 'Dette faget er i betaversjon. Vi fyller på med ressurser fortløpende.',
|
|
322
322
|
newVersion: 'Denne læringsressursen er ikke oppdatert etter gjeldende læreplan. Du finner en oppdatert versjon her: ',
|
|
323
323
|
frontPageBeta: 'Kommende fag er tilpassa ny læreplan som gjelder fra høsten 2022. Betafag er fag under arbeid. Vi håper likevel at læringsressursene i betafaga kan være nyttige allerede nå.',
|
|
324
324
|
frontPageExpired: 'Utgåtte fag undervises det ikke i lenger, men det kan fortsatt være mulig å ta eksamen i faga som privatist.',
|
|
@@ -318,7 +318,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
318
318
|
feide: 'Denne ressursen er bare tilgjengelig for lærere som er pålogget med Feide.',
|
|
319
319
|
resources: 'Dette er ikke et komplett læremiddel produsert av NDLA, men ei ressurssamling som vi håper kan være nyttig for deg.',
|
|
320
320
|
subjectOutdated: 'Dette faget følger en utgått læreplan.',
|
|
321
|
-
subjectBeta: 'Dette faget er i betaversjon.',
|
|
321
|
+
subjectBeta: 'Dette faget er i betaversjon. Vi fyller på med ressurser fortløpende.',
|
|
322
322
|
newVersion: 'Denne læringsressursen er ikke oppdatert etter gjeldende læreplan. Du finner en oppdatert versjon her: ',
|
|
323
323
|
frontPageBeta: 'Kommende fag er tilpassa ny læreplan som gjelder fra høsten 2022. Betafag er fag under arbeid. Vi håper likevel at læringsressursene i betafaga kan være nyttige allerede nå.',
|
|
324
324
|
frontPageExpired: 'Utgåtte fag undervises det ikke i lenger, men det kan fortsatt være mulig å ta eksamen i faga som privatist.',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ndla/ui",
|
|
3
|
-
"version": "16.
|
|
3
|
+
"version": "16.2.0",
|
|
4
4
|
"description": "UI component library for NDLA.",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -31,18 +31,18 @@
|
|
|
31
31
|
"types"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@ndla/button": "^2.
|
|
35
|
-
"@ndla/carousel": "^1.2.
|
|
36
|
-
"@ndla/core": "^2.
|
|
34
|
+
"@ndla/button": "^2.5.0",
|
|
35
|
+
"@ndla/carousel": "^1.2.10",
|
|
36
|
+
"@ndla/core": "^2.2.0",
|
|
37
37
|
"@ndla/hooks": "^1.1.4",
|
|
38
|
-
"@ndla/icons": "^1.
|
|
39
|
-
"@ndla/licenses": "^5.0.
|
|
40
|
-
"@ndla/modal": "^1.2.
|
|
41
|
-
"@ndla/notion": "^3.1.
|
|
42
|
-
"@ndla/safelink": "^2.0.
|
|
43
|
-
"@ndla/switch": "^0.1.
|
|
44
|
-
"@ndla/tabs": "^1.1.
|
|
45
|
-
"@ndla/tooltip": "^2.1.
|
|
38
|
+
"@ndla/icons": "^1.9.0",
|
|
39
|
+
"@ndla/licenses": "^5.0.1",
|
|
40
|
+
"@ndla/modal": "^1.2.11",
|
|
41
|
+
"@ndla/notion": "^3.1.15",
|
|
42
|
+
"@ndla/safelink": "^2.0.6",
|
|
43
|
+
"@ndla/switch": "^0.1.6",
|
|
44
|
+
"@ndla/tabs": "^1.1.9",
|
|
45
|
+
"@ndla/tooltip": "^2.1.1",
|
|
46
46
|
"@ndla/util": "^3.0.0",
|
|
47
47
|
"@reach/menu-button": "^0.16.2",
|
|
48
48
|
"@reach/slider": "^0.16.0",
|
|
@@ -81,5 +81,5 @@
|
|
|
81
81
|
"publishConfig": {
|
|
82
82
|
"access": "public"
|
|
83
83
|
},
|
|
84
|
-
"gitHead": "
|
|
84
|
+
"gitHead": "97d16d07a6f4d4fc04c5114f01aac6c9480b0341"
|
|
85
85
|
}
|
|
@@ -16,7 +16,8 @@ import { getLicenseCredits } from '@ndla/licenses';
|
|
|
16
16
|
import Notion, { NotionDialogContent, NotionDialogText, NotionDialogLicenses } from '@ndla/notion';
|
|
17
17
|
import { Notion as UINotion } from '.';
|
|
18
18
|
import { NotionImage } from './NotionImage';
|
|
19
|
-
import NotionVisualElement
|
|
19
|
+
import NotionVisualElement from './NotionVisualElement';
|
|
20
|
+
import type { NotionVisualElementType } from './NotionVisualElement';
|
|
20
21
|
import FigureNotion from './FigureNotion';
|
|
21
22
|
import { Copyright } from '../types';
|
|
22
23
|
import { FigureType } from '../Figure';
|
package/src/Notion/index.ts
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
export { default as Notion } from './Notion';
|
|
2
1
|
export { default as ConceptNotion } from './ConceptNotion';
|
|
2
|
+
export { default as Notion } from './Notion';
|
|
3
|
+
export { default as NotionVisualElement } from './NotionVisualElement';
|
|
4
|
+
export type { NotionVisualElementType } from './NotionVisualElement';
|
|
5
|
+
export type { ConceptNotionType } from './ConceptNotion';
|
|
@@ -11,7 +11,7 @@ import styled from '@emotion/styled';
|
|
|
11
11
|
import { ArrowDropDown } from '@ndla/icons/common';
|
|
12
12
|
import { FolderOutlined } from '@ndla/icons/contentType';
|
|
13
13
|
import { colors, spacing, misc, animations } from '@ndla/core';
|
|
14
|
-
import { SetFocusedFolderId } from './TreeStructure.types';
|
|
14
|
+
import { SetFocusedFolderId, FolderChildFuncType } from './TreeStructure.types';
|
|
15
15
|
|
|
16
16
|
const OpenButton = styled.button<{ isOpen: boolean }>`
|
|
17
17
|
background: transparent;
|
|
@@ -37,6 +37,16 @@ const FolderItemWrapper = styled.div`
|
|
|
37
37
|
align-items: center;
|
|
38
38
|
`;
|
|
39
39
|
|
|
40
|
+
const WrapperForFolderChild = styled.div<{ marked: boolean }>`
|
|
41
|
+
position: absolute;
|
|
42
|
+
right: ${spacing.xsmall};
|
|
43
|
+
opacity: ${({ marked }) => (marked ? 1 : 0.25)};
|
|
44
|
+
&:hover,
|
|
45
|
+
&:focus {
|
|
46
|
+
opacity: 1;
|
|
47
|
+
}
|
|
48
|
+
`;
|
|
49
|
+
|
|
40
50
|
const FolderName = styled.button<{ marked: boolean; noArrow?: boolean }>`
|
|
41
51
|
line-height: 1;
|
|
42
52
|
background: ${({ marked }) => (marked ? colors.brand.lighter : 'transparent')};
|
|
@@ -45,6 +55,9 @@ const FolderName = styled.button<{ marked: boolean; noArrow?: boolean }>`
|
|
|
45
55
|
&:focus {
|
|
46
56
|
background: ${({ marked }) => (marked ? colors.brand.light : colors.brand.lightest)};
|
|
47
57
|
color: ${colors.brand.primary};
|
|
58
|
+
+ ${WrapperForFolderChild} {
|
|
59
|
+
opacity: 1;
|
|
60
|
+
}
|
|
48
61
|
}
|
|
49
62
|
transition: ${animations.durations.superFast};
|
|
50
63
|
border: 0;
|
|
@@ -58,6 +71,7 @@ const FolderName = styled.button<{ marked: boolean; noArrow?: boolean }>`
|
|
|
58
71
|
margin-left: ${({ noArrow }) => (noArrow ? `29px` : `0px`)};
|
|
59
72
|
flex-grow: 1;
|
|
60
73
|
box-shadow: none;
|
|
74
|
+
text-align: left;
|
|
61
75
|
`;
|
|
62
76
|
|
|
63
77
|
const FolderNameLink = FolderName.withComponent('a');
|
|
@@ -77,6 +91,7 @@ interface Props {
|
|
|
77
91
|
url?: string;
|
|
78
92
|
icon?: React.ReactNode;
|
|
79
93
|
noPaddingWhenArrowIsHidden?: boolean;
|
|
94
|
+
folderChild?: FolderChildFuncType;
|
|
80
95
|
}
|
|
81
96
|
|
|
82
97
|
const FolderItem = ({
|
|
@@ -94,6 +109,7 @@ const FolderItem = ({
|
|
|
94
109
|
icon,
|
|
95
110
|
url,
|
|
96
111
|
noPaddingWhenArrowIsHidden,
|
|
112
|
+
folderChild,
|
|
97
113
|
}: Props) => {
|
|
98
114
|
const folderNameLinkRef = useRef<HTMLAnchorElement | null>(null);
|
|
99
115
|
const folderNameButtonRef = useRef<HTMLButtonElement | null>(null);
|
|
@@ -134,24 +150,29 @@ const FolderItem = ({
|
|
|
134
150
|
{name}
|
|
135
151
|
</FolderNameLink>
|
|
136
152
|
) : (
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
<>
|
|
154
|
+
<FolderName
|
|
155
|
+
ref={folderNameButtonRef}
|
|
156
|
+
noArrow={hideArrow && !noPaddingWhenArrowIsHidden}
|
|
157
|
+
tabIndex={marked ? 0 : -1}
|
|
158
|
+
marked={marked}
|
|
159
|
+
disabled={loading}
|
|
160
|
+
onFocus={() => {
|
|
161
|
+
setFocusedFolderId(id);
|
|
162
|
+
}}
|
|
163
|
+
onClick={() => {
|
|
164
|
+
onMarkFolder(id);
|
|
165
|
+
if (openOnFolderClick) {
|
|
166
|
+
onToggleOpen(id);
|
|
167
|
+
}
|
|
168
|
+
}}>
|
|
169
|
+
{icon || <FolderOutlined />}
|
|
170
|
+
{name}
|
|
171
|
+
</FolderName>
|
|
172
|
+
{folderChild && (
|
|
173
|
+
<WrapperForFolderChild marked={marked}>{folderChild(id, marked ? 0 : -1)}</WrapperForFolderChild>
|
|
174
|
+
)}
|
|
175
|
+
</>
|
|
155
176
|
)}
|
|
156
177
|
</FolderItemWrapper>
|
|
157
178
|
);
|
|
@@ -48,6 +48,7 @@ const FolderItems = ({
|
|
|
48
48
|
focusedFolderId,
|
|
49
49
|
setFocusedFolderId,
|
|
50
50
|
firstLevel,
|
|
51
|
+
folderChild,
|
|
51
52
|
}: FolderItemsProps) => (
|
|
52
53
|
<StyledUL role="group" firstLevel={firstLevel}>
|
|
53
54
|
{data.map(({ name, data: dataChildren, id, url, icon }, _index) => {
|
|
@@ -71,6 +72,7 @@ const FolderItems = ({
|
|
|
71
72
|
hideArrow={dataChildren?.length === 0 || newIdPaths.length >= MAX_LEVEL_FOR_FOLDERS}
|
|
72
73
|
noPaddingWhenArrowIsHidden={editable && firstLevel && dataChildren?.length === 0}
|
|
73
74
|
setFocusedFolderId={setFocusedFolderId}
|
|
75
|
+
folderChild={folderChild}
|
|
74
76
|
/>
|
|
75
77
|
</div>
|
|
76
78
|
{newFolder?.parentId === id && (
|
|
@@ -98,6 +100,7 @@ const FolderItems = ({
|
|
|
98
100
|
focusedFolderId={focusedFolderId}
|
|
99
101
|
setFocusedFolderId={setFocusedFolderId}
|
|
100
102
|
firstLevel={false}
|
|
103
|
+
folderChild={folderChild}
|
|
101
104
|
/>
|
|
102
105
|
)}
|
|
103
106
|
</StyledLI>
|
|
@@ -40,6 +40,7 @@ const TreeStructure = ({
|
|
|
40
40
|
framed,
|
|
41
41
|
folderIdMarkedByDefault,
|
|
42
42
|
defaultOpenFolders,
|
|
43
|
+
folderChild,
|
|
43
44
|
}: TreeStructureProps) => {
|
|
44
45
|
const { t } = useTranslation();
|
|
45
46
|
const [newFolder, setNewFolder] = useState<NewFolderProps | undefined>();
|
|
@@ -152,6 +153,7 @@ const TreeStructure = ({
|
|
|
152
153
|
focusedFolderId={focusedFolderId}
|
|
153
154
|
setFocusedFolderId={setFocusedFolderId}
|
|
154
155
|
firstLevel
|
|
156
|
+
folderChild={folderChild}
|
|
155
157
|
/>
|
|
156
158
|
</TreeStructureStyledWrapper>
|
|
157
159
|
{editable && (
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import React from 'react';
|
|
9
|
+
import React, { ReactNode } from 'react';
|
|
10
10
|
|
|
11
11
|
export interface FolderStructureProps {
|
|
12
12
|
id: string;
|
|
@@ -17,7 +17,7 @@ export interface FolderStructureProps {
|
|
|
17
17
|
status?: string;
|
|
18
18
|
openAsDefault?: boolean;
|
|
19
19
|
url?: string;
|
|
20
|
-
icon?:
|
|
20
|
+
icon?: ReactNode;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export interface NewFolderProps {
|
|
@@ -38,6 +38,7 @@ export interface TreeStructureProps extends CommonFolderProps {
|
|
|
38
38
|
folderIdMarkedByDefault?: string;
|
|
39
39
|
onNewFolder: (props: { value: string; parentId?: string; idPaths: number[] }) => Promise<string>;
|
|
40
40
|
defaultOpenFolders?: string[];
|
|
41
|
+
folderChild?: FolderChildFuncType;
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
export type onCreateNewFolderProp = ({
|
|
@@ -51,6 +52,8 @@ export type onCreateNewFolderProp = ({
|
|
|
51
52
|
export type SetOpenFolderProp = React.Dispatch<React.SetStateAction<Set<string>>>;
|
|
52
53
|
export type SetFocusedFolderId = React.Dispatch<React.SetStateAction<string | undefined>>;
|
|
53
54
|
|
|
55
|
+
export type FolderChildFuncType = (id: string, tabIndex: number) => ReactNode;
|
|
56
|
+
|
|
54
57
|
export interface FolderItemsProps extends CommonFolderProps {
|
|
55
58
|
onToggleOpen: (id: string) => void;
|
|
56
59
|
onSaveNewFolder: (value: string) => void;
|
|
@@ -65,5 +68,6 @@ export interface FolderItemsProps extends CommonFolderProps {
|
|
|
65
68
|
setFocusedFolderId: SetFocusedFolderId;
|
|
66
69
|
firstLevel: boolean;
|
|
67
70
|
keyNavigationFocusIsCreateFolderButton?: boolean;
|
|
68
|
-
icon?:
|
|
71
|
+
icon?: ReactNode;
|
|
72
|
+
folderChild?: FolderChildFuncType;
|
|
69
73
|
}
|
|
@@ -15,7 +15,7 @@ const TreeStructureWrapper = styled.div<{ framed?: boolean }>`
|
|
|
15
15
|
${({ framed }) =>
|
|
16
16
|
framed
|
|
17
17
|
? css`
|
|
18
|
-
border: 1px solid ${colors.brand.
|
|
18
|
+
border: 1px solid ${colors.brand.neutral7};
|
|
19
19
|
border-radius: ${misc.borderRadius};
|
|
20
20
|
max-height: 400px;
|
|
21
21
|
overflow-y: scroll;
|
package/src/index.ts
CHANGED
|
@@ -67,7 +67,9 @@ export {
|
|
|
67
67
|
export { default as FactBox } from './FactBox';
|
|
68
68
|
|
|
69
69
|
export { default as Image, ImageLink, makeSrcQueryString } from './Image';
|
|
70
|
+
export type { ImageCrop, ImageFocalPoint } from './Image';
|
|
70
71
|
|
|
72
|
+
export type { HeroContentType } from './Hero';
|
|
71
73
|
export {
|
|
72
74
|
SubjectMaterialHero,
|
|
73
75
|
TasksAndActivitiesHero,
|
|
@@ -81,7 +83,15 @@ export {
|
|
|
81
83
|
|
|
82
84
|
export { Footer, EditorName, FooterText, FooterAuth } from './Footer';
|
|
83
85
|
|
|
84
|
-
export {
|
|
86
|
+
export {
|
|
87
|
+
Figure,
|
|
88
|
+
FigureCaption,
|
|
89
|
+
FigureLicenseDialog,
|
|
90
|
+
FigureExpandButton,
|
|
91
|
+
FigureOpenDialogButton,
|
|
92
|
+
FigureBylineExpandButton,
|
|
93
|
+
} from './Figure';
|
|
94
|
+
export type { FigureType } from './Figure';
|
|
85
95
|
|
|
86
96
|
export { LanguageSelector } from './LanguageSelector';
|
|
87
97
|
|
|
@@ -157,7 +167,7 @@ export { default as AuthorInfo } from './AuthorInfo';
|
|
|
157
167
|
export { default as Breadcrumb, HeaderBreadcrumb, HomeBreadcrumb, ActionBreadcrumb } from './Breadcrumb';
|
|
158
168
|
export type { SimpleBreadcrumbItem, IndexedBreadcrumbItem } from './Breadcrumb';
|
|
159
169
|
|
|
160
|
-
export type { BreadcrumbItemProps } from './Breadcrumblist
|
|
170
|
+
export type { BreadcrumbItemProps } from './Breadcrumblist';
|
|
161
171
|
export { i18nInstance, formatNestedMessages, formatMessage } from './i18n';
|
|
162
172
|
export { default as ResourceGroup } from './ResourceGroup';
|
|
163
173
|
|
|
@@ -221,7 +231,10 @@ export { default as ContentCard } from './ContentCard';
|
|
|
221
231
|
export { default as CopyParagraphButton } from './CopyParagraphButton';
|
|
222
232
|
|
|
223
233
|
export { default as ContentPlaceholder } from './ContentPlaceholder';
|
|
234
|
+
|
|
224
235
|
export { Notion, ConceptNotion } from './Notion';
|
|
236
|
+
export type { NotionVisualElementType, ConceptNotionType } from './Notion';
|
|
237
|
+
|
|
225
238
|
export { BannerCard } from './BannerCard';
|
|
226
239
|
export { VerticalNavigation, Folder, FolderInput } from './MyNdla';
|
|
227
240
|
export { ListResource, BlockResource } from './Resource';
|
|
@@ -347,7 +347,7 @@ const messages = {
|
|
|
347
347
|
resources:
|
|
348
348
|
'This is not a complete course produced by NDLA, but a collection of resources we hope you will find useful.',
|
|
349
349
|
subjectOutdated: 'This course is not updated to the current curriculum.',
|
|
350
|
-
subjectBeta: 'This course is in beta.',
|
|
350
|
+
subjectBeta: 'This course is in beta. New resources are being added continously.',
|
|
351
351
|
newVersion:
|
|
352
352
|
'This learning resource is not updated to the current curriculum. You can find an updated version here: ',
|
|
353
353
|
frontPageBeta:
|
|
@@ -346,7 +346,7 @@ const messages = {
|
|
|
346
346
|
resources:
|
|
347
347
|
'Dette er ikke et komplett læremiddel produsert av NDLA, men ei ressurssamling som vi håper kan være nyttig for deg.',
|
|
348
348
|
subjectOutdated: 'Dette faget følger en utgått læreplan.',
|
|
349
|
-
subjectBeta: 'Dette faget er i betaversjon.',
|
|
349
|
+
subjectBeta: 'Dette faget er i betaversjon. Vi fyller på med ressurser fortløpende.',
|
|
350
350
|
newVersion:
|
|
351
351
|
'Denne læringsressursen er ikke oppdatert etter gjeldende læreplan. Du finner en oppdatert versjon her: ',
|
|
352
352
|
frontPageBeta:
|
|
@@ -347,7 +347,7 @@ const messages = {
|
|
|
347
347
|
resources:
|
|
348
348
|
'Dette er ikkje eit komplett læremiddel produsert av NDLA, men ei ressurssamling som vi håper kan vere nyttig for deg.',
|
|
349
349
|
subjectOutdated: 'Dette faget følgjer ein utgått læreplan.',
|
|
350
|
-
subjectBeta: 'Dette faget er i betaversjon.',
|
|
350
|
+
subjectBeta: 'Dette faget er i betaversjon. Vi fyller på med ressurser fortløpande.',
|
|
351
351
|
newVersion:
|
|
352
352
|
'Denne læringsressursen er ikkje oppdatert etter gjeldande læreplan. Du finn ein oppdatert versjon her: ',
|
|
353
353
|
frontPageBeta:
|
|
@@ -346,7 +346,7 @@ const messages = {
|
|
|
346
346
|
resources:
|
|
347
347
|
'Dette er ikke et komplett læremiddel produsert av NDLA, men ei ressurssamling som vi håper kan være nyttig for deg.',
|
|
348
348
|
subjectOutdated: 'Dette faget følger en utgått læreplan.',
|
|
349
|
-
subjectBeta: 'Dette faget er i betaversjon.',
|
|
349
|
+
subjectBeta: 'Dette faget er i betaversjon. Vi fyller på med ressurser fortløpende.',
|
|
350
350
|
newVersion:
|
|
351
351
|
'Denne læringsressursen er ikke oppdatert etter gjeldende læreplan. Du finner en oppdatert versjon her: ',
|
|
352
352
|
frontPageBeta:
|
|
@@ -346,7 +346,7 @@ const messages = {
|
|
|
346
346
|
resources:
|
|
347
347
|
'Dette er ikke et komplett læremiddel produsert av NDLA, men ei ressurssamling som vi håper kan være nyttig for deg.',
|
|
348
348
|
subjectOutdated: 'Dette faget følger en utgått læreplan.',
|
|
349
|
-
subjectBeta: 'Dette faget er i betaversjon.',
|
|
349
|
+
subjectBeta: 'Dette faget er i betaversjon. Vi fyller på med ressurser fortløpende.',
|
|
350
350
|
newVersion:
|
|
351
351
|
'Denne læringsressursen er ikke oppdatert etter gjeldende læreplan. Du finner en oppdatert versjon her: ',
|
|
352
352
|
frontPageBeta:
|