@ndla/ui 22.3.0 → 24.1.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/Article/ArticleAuthorContent.js +2 -4
- package/es/Article/ArticleFavoritesButton.js +2 -2
- package/es/AuthorInfo/AuthorInfo.js +29 -16
- package/es/ContentCard/ContentCard.js +66 -25
- package/es/FileList/File.js +34 -8
- package/es/FileList/FileList.js +29 -3
- package/es/InfoBox/InfoBox.js +10 -3
- package/es/InfoWidget/InfoWidget.js +67 -22
- package/es/MyNdla/Resource/FolderInput.js +19 -6
- package/es/NoContentBox/NoContentBox.js +1 -6
- package/es/Portrait/Portrait.js +19 -13
- package/es/Resource/BlockResource.js +7 -6
- package/es/Resource/ListResource.js +8 -7
- package/es/ResourceBox/ResourceBox.js +7 -35
- package/es/Search/ActiveFilterContent.js +4 -14
- package/es/Search/ActiveFilters.js +8 -19
- package/es/Search/SearchField.js +31 -52
- package/es/Search/SearchResult.js +113 -136
- package/es/Search/ToggleSearchButton.js +34 -43
- package/es/Search/index.js +2 -8
- package/es/TreeStructure/FolderItems.js +3 -3
- package/es/TreeStructure/FolderNameInput.js +32 -14
- package/es/all.css +1 -1
- package/es/index-javascript.js +0 -1
- package/es/index.js +2 -1
- package/es/locale/messages-en.js +3 -3
- package/es/locale/messages-nb.js +3 -3
- package/es/locale/messages-nn.js +3 -3
- package/es/locale/messages-se.js +3 -3
- package/es/locale/messages-sma.js +3 -3
- package/lib/Article/ArticleAuthorContent.js +9 -4
- package/lib/Article/ArticleFavoritesButton.js +2 -2
- package/lib/AuthorInfo/AuthorInfo.d.ts +1 -11
- package/lib/AuthorInfo/AuthorInfo.js +36 -20
- package/lib/ContentCard/ContentCard.d.ts +1 -15
- package/lib/ContentCard/ContentCard.js +60 -28
- package/lib/FileList/File.js +36 -12
- package/lib/FileList/FileList.js +28 -5
- package/lib/InfoBox/InfoBox.js +12 -5
- package/lib/InfoWidget/InfoWidget.js +61 -25
- package/lib/MyNdla/Resource/FolderInput.js +18 -5
- package/lib/NoContentBox/NoContentBox.js +1 -8
- package/lib/Portrait/Portrait.js +19 -14
- package/lib/Resource/BlockResource.js +7 -6
- package/lib/Resource/ListResource.js +8 -7
- package/lib/ResourceBox/ResourceBox.d.ts +1 -4
- package/lib/ResourceBox/ResourceBox.js +15 -35
- package/lib/Search/ActiveFilterContent.d.ts +13 -0
- package/lib/Search/ActiveFilterContent.js +4 -15
- package/lib/Search/ActiveFilters.d.ts +13 -0
- package/lib/Search/ActiveFilters.js +8 -20
- package/lib/Search/SearchField.d.ts +19 -0
- package/lib/Search/SearchField.js +32 -56
- package/lib/Search/SearchResult.d.ts +36 -0
- package/lib/Search/SearchResult.js +116 -159
- package/lib/Search/ToggleSearchButton.d.ts +16 -0
- package/lib/Search/ToggleSearchButton.js +36 -46
- package/lib/Search/index.d.ts +12 -0
- package/lib/Search/index.js +0 -54
- package/lib/SearchTypeResult/SearchTypeHeader.d.ts +1 -1
- package/lib/TreeStructure/FolderItems.js +3 -3
- package/lib/TreeStructure/FolderNameInput.js +34 -14
- package/lib/TreeStructure/types.d.ts +1 -1
- package/lib/all.css +1 -1
- package/lib/index-javascript.js +0 -74
- package/lib/index.d.ts +1 -0
- package/lib/index.js +38 -1
- package/lib/locale/messages-en.js +3 -3
- package/lib/locale/messages-nb.js +3 -3
- package/lib/locale/messages-nn.js +3 -3
- package/lib/locale/messages-se.js +3 -3
- package/lib/locale/messages-sma.js +3 -3
- package/package.json +10 -10
- package/src/Article/ArticleAuthorContent.tsx +1 -1
- package/src/Article/ArticleFavoritesButton.tsx +2 -2
- package/src/AuthorInfo/AuthorInfo.tsx +53 -19
- package/src/ContentCard/ContentCard.tsx +127 -35
- package/src/FileList/File.tsx +47 -17
- package/src/FileList/FileList.tsx +37 -8
- package/src/InfoBox/InfoBox.tsx +24 -4
- package/src/InfoWidget/InfoWidget.tsx +83 -34
- package/src/MyNdla/Resource/FolderInput.tsx +18 -3
- package/src/NoContentBox/NoContentBox.tsx +2 -7
- package/src/Portrait/Portrait.tsx +25 -10
- package/src/Resource/BlockResource.tsx +1 -1
- package/src/Resource/ListResource.tsx +3 -1
- package/src/ResourceBox/ResourceBox.tsx +1 -20
- package/src/Search/{ActiveFilterContent.jsx → ActiveFilterContent.tsx} +11 -12
- package/src/Search/{ActiveFilters.jsx → ActiveFilters.tsx} +20 -17
- package/src/Search/{SearchField.jsx → SearchField.tsx} +58 -68
- package/src/Search/SearchResult.tsx +360 -0
- package/src/Search/ToggleSearchButton.tsx +73 -0
- package/src/Search/component.search.scss +0 -4
- package/src/Search/index.ts +16 -0
- package/src/SectionHeading/SectionHeading.tsx +1 -0
- package/src/TreeStructure/FolderItems.tsx +1 -1
- package/src/TreeStructure/FolderNameInput.tsx +33 -9
- package/src/TreeStructure/types.ts +1 -1
- package/src/all.scss +0 -1
- package/src/index-javascript.js +0 -15
- package/src/index.ts +2 -0
- package/src/locale/messages-en.ts +3 -3
- package/src/locale/messages-nb.ts +3 -3
- package/src/locale/messages-nn.ts +3 -3
- package/src/locale/messages-se.ts +3 -3
- package/src/locale/messages-sma.ts +3 -3
- package/src/main.scss +0 -8
- package/es/BackgroundImage/BackgroundImage.js +0 -27
- package/es/BackgroundImage/index.js +0 -2
- package/es/Search/SearchFilter.js +0 -72
- package/es/Search/SearchFilterList.js +0 -115
- package/es/Search/SearchOverlay.js +0 -39
- package/es/Search/SearchPage.js +0 -178
- package/es/Search/SearchPopoverFilter.js +0 -152
- package/es/Search/SearchResultAuthor.js +0 -51
- package/lib/BackgroundImage/BackgroundImage.d.ts +0 -12
- package/lib/BackgroundImage/BackgroundImage.js +0 -40
- package/lib/BackgroundImage/index.d.ts +0 -2
- package/lib/BackgroundImage/index.js +0 -13
- package/lib/Search/SearchFilter.js +0 -88
- package/lib/Search/SearchFilterList.js +0 -137
- package/lib/Search/SearchOverlay.js +0 -62
- package/lib/Search/SearchPage.js +0 -207
- package/lib/Search/SearchPopoverFilter.js +0 -172
- package/lib/Search/SearchResultAuthor.js +0 -60
- package/src/AuthorInfo/component.author-info.scss +0 -54
- package/src/BackgroundImage/BackgroundImage.tsx +0 -32
- package/src/BackgroundImage/component.background-image.scss +0 -52
- package/src/BackgroundImage/index.ts +0 -3
- package/src/ContentCard/component.content-card.scss +0 -109
- package/src/FileList/component.file-list.scss +0 -102
- package/src/InfoBox/component.info-box.scss +0 -21
- package/src/InfoWidget/component.info-widget.scss +0 -52
- package/src/NoContentBox/component.no-content-box.scss +0 -17
- package/src/Portrait/component.portrait.scss +0 -29
- package/src/Search/SearchFilter.jsx +0 -82
- package/src/Search/SearchFilterList.jsx +0 -110
- package/src/Search/SearchOverlay.jsx +0 -38
- package/src/Search/SearchPage.jsx +0 -178
- package/src/Search/SearchPopoverFilter.jsx +0 -109
- package/src/Search/SearchResult.jsx +0 -239
- package/src/Search/SearchResultAuthor.jsx +0 -54
- package/src/Search/ToggleSearchButton.jsx +0 -64
- package/src/Search/component.search-filter.scss +0 -67
- package/src/Search/component.search-overlay.scss +0 -103
- package/src/Search/component.search-page.scss +0 -125
- package/src/Search/component.search-result-author.scss +0 -65
- package/src/Search/index.js +0 -34
package/lib/index-javascript.js
CHANGED
|
@@ -23,78 +23,6 @@ Object.defineProperty(exports, "FilterButtons", {
|
|
|
23
23
|
return _Filter.FilterButtons;
|
|
24
24
|
}
|
|
25
25
|
});
|
|
26
|
-
Object.defineProperty(exports, "SearchOverlay", {
|
|
27
|
-
enumerable: true,
|
|
28
|
-
get: function get() {
|
|
29
|
-
return _Search.SearchOverlay;
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
Object.defineProperty(exports, "SearchField", {
|
|
33
|
-
enumerable: true,
|
|
34
|
-
get: function get() {
|
|
35
|
-
return _Search.SearchField;
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
Object.defineProperty(exports, "SearchPage", {
|
|
39
|
-
enumerable: true,
|
|
40
|
-
get: function get() {
|
|
41
|
-
return _Search.SearchPage;
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
Object.defineProperty(exports, "SearchResult", {
|
|
45
|
-
enumerable: true,
|
|
46
|
-
get: function get() {
|
|
47
|
-
return _Search.SearchResult;
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
Object.defineProperty(exports, "SearchResultAuthor", {
|
|
51
|
-
enumerable: true,
|
|
52
|
-
get: function get() {
|
|
53
|
-
return _Search.SearchResultAuthor;
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
Object.defineProperty(exports, "SearchResultList", {
|
|
57
|
-
enumerable: true,
|
|
58
|
-
get: function get() {
|
|
59
|
-
return _Search.SearchResultList;
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
Object.defineProperty(exports, "SearchResultItem", {
|
|
63
|
-
enumerable: true,
|
|
64
|
-
get: function get() {
|
|
65
|
-
return _Search.SearchResultItem;
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
Object.defineProperty(exports, "SearchFilter", {
|
|
69
|
-
enumerable: true,
|
|
70
|
-
get: function get() {
|
|
71
|
-
return _Search.SearchFilter;
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
Object.defineProperty(exports, "SearchFilterList", {
|
|
75
|
-
enumerable: true,
|
|
76
|
-
get: function get() {
|
|
77
|
-
return _Search.SearchFilterList;
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
Object.defineProperty(exports, "SearchPopoverFilter", {
|
|
81
|
-
enumerable: true,
|
|
82
|
-
get: function get() {
|
|
83
|
-
return _Search.SearchPopoverFilter;
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
Object.defineProperty(exports, "ActiveFilters", {
|
|
87
|
-
enumerable: true,
|
|
88
|
-
get: function get() {
|
|
89
|
-
return _Search.ActiveFilters;
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
Object.defineProperty(exports, "ToggleSearchButton", {
|
|
93
|
-
enumerable: true,
|
|
94
|
-
get: function get() {
|
|
95
|
-
return _Search.ToggleSearchButton;
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
26
|
Object.defineProperty(exports, "TopicIntroductionList", {
|
|
99
27
|
enumerable: true,
|
|
100
28
|
get: function get() {
|
|
@@ -146,8 +74,6 @@ Object.defineProperty(exports, "CompetenceGoalsDialog", {
|
|
|
146
74
|
|
|
147
75
|
var _Filter = require("./Filter");
|
|
148
76
|
|
|
149
|
-
var _Search = require("./Search");
|
|
150
|
-
|
|
151
77
|
var _TopicIntroductionList = _interopRequireDefault(require("./TopicIntroductionList"));
|
|
152
78
|
|
|
153
79
|
var _TopicMenu = _interopRequireWildcard(require("./TopicMenu"));
|
package/lib/index.d.ts
CHANGED
|
@@ -89,3 +89,4 @@ export type { Snack, SnackContext } from './SnackBar';
|
|
|
89
89
|
export { InfoBlock } from './InfoBlock';
|
|
90
90
|
export { TreeStructure } from './TreeStructure';
|
|
91
91
|
export type { FolderType, TreeStructureProps, TreeStructureMenuProps } from './TreeStructure';
|
|
92
|
+
export { SearchField, SearchResultList, SearchResultItem, ActiveFilters, ToggleSearchButton } from './Search';
|
package/lib/index.js
CHANGED
|
@@ -188,7 +188,12 @@ var _exportNames = {
|
|
|
188
188
|
BaseSnack: true,
|
|
189
189
|
DefaultSnackbar: true,
|
|
190
190
|
InfoBlock: true,
|
|
191
|
-
TreeStructure: true
|
|
191
|
+
TreeStructure: true,
|
|
192
|
+
SearchField: true,
|
|
193
|
+
SearchResultList: true,
|
|
194
|
+
SearchResultItem: true,
|
|
195
|
+
ActiveFilters: true,
|
|
196
|
+
ToggleSearchButton: true
|
|
192
197
|
};
|
|
193
198
|
Object.defineProperty(exports, "ArticleByline", {
|
|
194
199
|
enumerable: true,
|
|
@@ -1288,6 +1293,36 @@ Object.defineProperty(exports, "TreeStructure", {
|
|
|
1288
1293
|
return _TreeStructure.TreeStructure;
|
|
1289
1294
|
}
|
|
1290
1295
|
});
|
|
1296
|
+
Object.defineProperty(exports, "SearchField", {
|
|
1297
|
+
enumerable: true,
|
|
1298
|
+
get: function get() {
|
|
1299
|
+
return _Search.SearchField;
|
|
1300
|
+
}
|
|
1301
|
+
});
|
|
1302
|
+
Object.defineProperty(exports, "SearchResultList", {
|
|
1303
|
+
enumerable: true,
|
|
1304
|
+
get: function get() {
|
|
1305
|
+
return _Search.SearchResultList;
|
|
1306
|
+
}
|
|
1307
|
+
});
|
|
1308
|
+
Object.defineProperty(exports, "SearchResultItem", {
|
|
1309
|
+
enumerable: true,
|
|
1310
|
+
get: function get() {
|
|
1311
|
+
return _Search.SearchResultItem;
|
|
1312
|
+
}
|
|
1313
|
+
});
|
|
1314
|
+
Object.defineProperty(exports, "ActiveFilters", {
|
|
1315
|
+
enumerable: true,
|
|
1316
|
+
get: function get() {
|
|
1317
|
+
return _Search.ActiveFilters;
|
|
1318
|
+
}
|
|
1319
|
+
});
|
|
1320
|
+
Object.defineProperty(exports, "ToggleSearchButton", {
|
|
1321
|
+
enumerable: true,
|
|
1322
|
+
get: function get() {
|
|
1323
|
+
return _Search.ToggleSearchButton;
|
|
1324
|
+
}
|
|
1325
|
+
});
|
|
1291
1326
|
|
|
1292
1327
|
var _indexJavascript = require("./index-javascript");
|
|
1293
1328
|
|
|
@@ -1440,6 +1475,8 @@ var _InfoBlock = require("./InfoBlock");
|
|
|
1440
1475
|
|
|
1441
1476
|
var _TreeStructure = require("./TreeStructure");
|
|
1442
1477
|
|
|
1478
|
+
var _Search = require("./Search");
|
|
1479
|
+
|
|
1443
1480
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
1444
1481
|
|
|
1445
1482
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
|
|
@@ -985,7 +985,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
985
985
|
more: 'More options',
|
|
986
986
|
listView: 'List view',
|
|
987
987
|
detailView: 'Detailed listview',
|
|
988
|
-
shortView: '
|
|
988
|
+
shortView: 'Card view',
|
|
989
989
|
myPage: {
|
|
990
990
|
confirmDeleteAccount: 'Are you sure you want to delete your account?',
|
|
991
991
|
confirmDeleteAccountButton: 'Delete account',
|
|
@@ -1016,7 +1016,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
1016
1016
|
newFavourite: 'Recently favourited',
|
|
1017
1017
|
storageInfo: {
|
|
1018
1018
|
title: 'How to save your favourite resources from NDLA',
|
|
1019
|
-
text: 'When you wish to save a resource, you can do so by clicking the heart
|
|
1019
|
+
text: 'When you wish to save a resource, you can do so by clicking the heart button. You will then get an option to store the resource in a folder'
|
|
1020
1020
|
},
|
|
1021
1021
|
folderInfo: {
|
|
1022
1022
|
title: 'How to organise your favourite resources in folders',
|
|
@@ -1036,7 +1036,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
1036
1036
|
linkCopied: 'Copied to clipboard',
|
|
1037
1037
|
addToMyNdla: 'Add to My NDLA',
|
|
1038
1038
|
addedToMyNdla: 'Added to My NDLA',
|
|
1039
|
-
addedToFolder: 'Resource added to
|
|
1039
|
+
addedToFolder: 'Resource added to ',
|
|
1040
1040
|
removedFromFolder: 'Removed from "{{folderName}}"',
|
|
1041
1041
|
titleUpdated: 'Title updated',
|
|
1042
1042
|
tagsUpdated: 'Tags updated',
|
|
@@ -985,7 +985,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
985
985
|
more: 'Flere valg',
|
|
986
986
|
listView: 'Listevisning',
|
|
987
987
|
detailView: 'Detaljrik listevisning',
|
|
988
|
-
shortView: '
|
|
988
|
+
shortView: 'Kortvisning',
|
|
989
989
|
myPage: {
|
|
990
990
|
confirmDeleteAccount: 'Er du sikker på at du vil slette kontoen?',
|
|
991
991
|
confirmDeleteAccountButton: 'Slett konto',
|
|
@@ -1016,7 +1016,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
1016
1016
|
feide: 'Dette henter vi om deg fra Feide',
|
|
1017
1017
|
storageInfo: {
|
|
1018
1018
|
title: 'Slik lagrer du dine favorittressurser fra NDLA',
|
|
1019
|
-
text: 'Når du ønsker å lagre en ressurs, kan du gjøre dette ved å klikke på
|
|
1019
|
+
text: 'Når du ønsker å lagre en ressurs, kan du gjøre dette ved å klikke på hjerteknappen der den er tilgjengelig. Du vil da få mulighet til å lagre ressursen i en mappe.'
|
|
1020
1020
|
},
|
|
1021
1021
|
folderInfo: {
|
|
1022
1022
|
title: 'Slik organiserer du dine favorittressurser i mapper',
|
|
@@ -1036,7 +1036,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
1036
1036
|
linkCopied: 'Kopiert til utklippstavle',
|
|
1037
1037
|
addToMyNdla: 'Legg i Min NDLA',
|
|
1038
1038
|
addedToMyNdla: 'Lagt i Min NDLA',
|
|
1039
|
-
addedToFolder: 'Ressurs er lagt i
|
|
1039
|
+
addedToFolder: 'Ressurs er lagt i ',
|
|
1040
1040
|
removedFromFolder: 'Fjernet fra "{{folderName}}"',
|
|
1041
1041
|
titleUpdated: 'Tittel oppdatert',
|
|
1042
1042
|
tagsUpdated: 'Tags oppdatert',
|
|
@@ -985,7 +985,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
985
985
|
more: 'Fleire val',
|
|
986
986
|
listView: 'Listevisning',
|
|
987
987
|
detailView: 'Detaljrik listevisning',
|
|
988
|
-
shortView: '
|
|
988
|
+
shortView: 'Kortvisning',
|
|
989
989
|
myPage: {
|
|
990
990
|
confirmDeleteAccount: 'Er du sikker på at du vil slette kontoen?',
|
|
991
991
|
confirmDeleteAccountButton: 'Slett konto',
|
|
@@ -1016,7 +1016,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
1016
1016
|
feide: 'Dette henter vi om deg fra Feide',
|
|
1017
1017
|
storageInfo: {
|
|
1018
1018
|
title: 'Slik lagrer du dine favorittressurser fra NDLA',
|
|
1019
|
-
text: 'Når du ønsker å lagre en ressurs, kan du gjøre dette ved å klikke på
|
|
1019
|
+
text: 'Når du ønsker å lagre en ressurs, kan du gjøre dette ved å klikke på hjerteknappen der den er tilgjengeleg. Du vil da få mulighet til å lagre ressursen i en mappe.'
|
|
1020
1020
|
},
|
|
1021
1021
|
folderInfo: {
|
|
1022
1022
|
title: 'Slik organiserer du dine favorittressurser i mapper',
|
|
@@ -1036,7 +1036,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
1036
1036
|
linkCopied: 'Kopiert til utklippstavla',
|
|
1037
1037
|
addToMyNdla: 'Legg i Min NDLA',
|
|
1038
1038
|
addedToMyNdla: 'Lagt i Min NDLA',
|
|
1039
|
-
addedToFolder: 'Ressurs er lagt i
|
|
1039
|
+
addedToFolder: 'Ressurs er lagt i ',
|
|
1040
1040
|
removedFromFolder: 'Fjernet fra "{{folderName}}"',
|
|
1041
1041
|
titleUpdated: 'Tittel oppdatert',
|
|
1042
1042
|
tagsUpdated: 'Tags oppdatert',
|
|
@@ -985,7 +985,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
985
985
|
more: 'Flere valg',
|
|
986
986
|
listView: 'Listevisning',
|
|
987
987
|
detailView: 'Detaljrik listevisning',
|
|
988
|
-
shortView: '
|
|
988
|
+
shortView: 'Kortvisning',
|
|
989
989
|
myPage: {
|
|
990
990
|
confirmDeleteAccount: 'Er du sikker på at du vil slette kontoen?',
|
|
991
991
|
confirmDeleteAccountButton: 'Slett konto',
|
|
@@ -1016,7 +1016,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
1016
1016
|
feide: 'Dette henter vi om deg fra Feide',
|
|
1017
1017
|
storageInfo: {
|
|
1018
1018
|
title: 'Slik lagrer du dine favorittressurser fra NDLA',
|
|
1019
|
-
text: 'Når du ønsker å lagre en ressurs, kan du gjøre dette ved å klikke på
|
|
1019
|
+
text: 'Når du ønsker å lagre en ressurs, kan du gjøre dette ved å klikke på hjerteknappen der den er tilgjengeleg. Du vil da få mulighet til å lagre ressursen i en mappe.'
|
|
1020
1020
|
},
|
|
1021
1021
|
folderInfo: {
|
|
1022
1022
|
title: 'Slik organiserer du dine favorittressurser i mapper',
|
|
@@ -1036,7 +1036,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
1036
1036
|
linkCopied: 'Kopiert til utklippstavla',
|
|
1037
1037
|
addToMyNdla: 'Legg i Min NDLA',
|
|
1038
1038
|
addedToMyNdla: 'Lagt i Min NDLA',
|
|
1039
|
-
addedToFolder: 'Ressurs er lagt i
|
|
1039
|
+
addedToFolder: 'Ressurs er lagt i ',
|
|
1040
1040
|
removedFromFolder: 'Fjernet fra "{{folderName}}"',
|
|
1041
1041
|
titleUpdated: 'Tittel oppdatert',
|
|
1042
1042
|
tagsUpdated: 'Tags oppdatert',
|
|
@@ -985,7 +985,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
985
985
|
more: 'Flere valg',
|
|
986
986
|
listView: 'Listevisning',
|
|
987
987
|
detailView: 'Detaljrik listevisning',
|
|
988
|
-
shortView: '
|
|
988
|
+
shortView: 'Kortvisning',
|
|
989
989
|
myPage: {
|
|
990
990
|
confirmDeleteAccount: 'Er du sikker på at du vil slette kontoen?',
|
|
991
991
|
confirmDeleteAccountButton: 'Slett konto',
|
|
@@ -1016,7 +1016,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
1016
1016
|
feide: 'Dette henter vi om deg fra Feide',
|
|
1017
1017
|
storageInfo: {
|
|
1018
1018
|
title: 'Slik lagrer du dine favorittressurser fra NDLA',
|
|
1019
|
-
text: 'Når du ønsker å lagre en ressurs, kan du gjøre dette ved å klikke på
|
|
1019
|
+
text: 'Når du ønsker å lagre en ressurs, kan du gjøre dette ved å klikke på hjerteknappen der den er tilgjengeleg. Du vil da få mulighet til å lagre ressursen i en mappe.'
|
|
1020
1020
|
},
|
|
1021
1021
|
folderInfo: {
|
|
1022
1022
|
title: 'Slik organiserer du dine favorittressurser i mapper',
|
|
@@ -1036,7 +1036,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
1036
1036
|
linkCopied: 'Kopiert til utklippstavla',
|
|
1037
1037
|
addToMyNdla: 'Legg i Min NDLA',
|
|
1038
1038
|
addedToMyNdla: 'Lagt i Min NDLA',
|
|
1039
|
-
addedToFolder: 'Ressurs er lagt i
|
|
1039
|
+
addedToFolder: 'Ressurs er lagt i ',
|
|
1040
1040
|
removedFromFolder: 'Fjernet fra "{{folderName}}"',
|
|
1041
1041
|
titleUpdated: 'Tittel oppdatert',
|
|
1042
1042
|
tagsUpdated: 'Tags oppdatert',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ndla/ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "24.1.0",
|
|
4
4
|
"description": "UI component library for NDLA.",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -32,20 +32,20 @@
|
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@ndla/article-scripts": "^3.0.1",
|
|
35
|
-
"@ndla/button": "^3.3.
|
|
35
|
+
"@ndla/button": "^3.3.2",
|
|
36
36
|
"@ndla/carousel": "^1.2.16",
|
|
37
37
|
"@ndla/core": "^2.3.4",
|
|
38
|
-
"@ndla/forms": "^3.1.
|
|
38
|
+
"@ndla/forms": "^3.1.5",
|
|
39
39
|
"@ndla/hooks": "^1.1.5",
|
|
40
40
|
"@ndla/icons": "^1.11.4",
|
|
41
|
-
"@ndla/licenses": "^5.0.
|
|
42
|
-
"@ndla/modal": "^1.
|
|
43
|
-
"@ndla/notion": "^3.1.
|
|
44
|
-
"@ndla/safelink": "^2.2.
|
|
41
|
+
"@ndla/licenses": "^5.0.8",
|
|
42
|
+
"@ndla/modal": "^1.3.0",
|
|
43
|
+
"@ndla/notion": "^3.1.32",
|
|
44
|
+
"@ndla/safelink": "^2.2.8",
|
|
45
45
|
"@ndla/switch": "^0.1.11",
|
|
46
46
|
"@ndla/tabs": "^1.1.15",
|
|
47
|
-
"@ndla/tooltip": "^2.
|
|
48
|
-
"@ndla/types-learningpath-api": "^0.0.
|
|
47
|
+
"@ndla/tooltip": "^2.2.0",
|
|
48
|
+
"@ndla/types-learningpath-api": "^0.0.13",
|
|
49
49
|
"@ndla/util": "^3.0.1",
|
|
50
50
|
"@reach/menu-button": "^0.16.2",
|
|
51
51
|
"@reach/slider": "^0.16.0",
|
|
@@ -85,5 +85,5 @@
|
|
|
85
85
|
"publishConfig": {
|
|
86
86
|
"access": "public"
|
|
87
87
|
},
|
|
88
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "4b4dab829416f2d642693cbd6dcd5e0beb4b0ed5"
|
|
89
89
|
}
|
|
@@ -78,7 +78,7 @@ const ArticleAuthorContent = ({ showAuthor, authors, onSelectAuthor }: Props) =>
|
|
|
78
78
|
return (
|
|
79
79
|
<div {...classes()}>
|
|
80
80
|
<div {...classes('author-info')}>
|
|
81
|
-
{image && <Portrait src={image} alt={name}
|
|
81
|
+
{image && <Portrait src={image} alt={name} />}
|
|
82
82
|
<section>
|
|
83
83
|
<h1>{name}</h1>
|
|
84
84
|
<hr />
|
|
@@ -25,8 +25,8 @@ export const ArticleFavoritesButton = ({ isFavorite, onToggleAddToFavorites, art
|
|
|
25
25
|
return (
|
|
26
26
|
<Tooltip tooltip={isFavorite ? addToFavoritesLabel : removeFromFavoritesLabel}>
|
|
27
27
|
<IconButtonDualStates
|
|
28
|
-
ariaLabelActive={t('myNdla.
|
|
29
|
-
ariaLabelInActive={t('myNdla.
|
|
28
|
+
ariaLabelActive={t('myNdla.alreadyFavourited')}
|
|
29
|
+
ariaLabelInActive={t('myNdla.addToFavourites')}
|
|
30
30
|
activeIcon={<Heart />}
|
|
31
31
|
inactiveIcon={<HeartOutline />}
|
|
32
32
|
active={isFavorite}
|
|
@@ -7,16 +7,11 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import React from 'react';
|
|
10
|
-
import
|
|
11
|
-
import BEMHelper from 'react-bem-helper';
|
|
10
|
+
import styled from '@emotion/styled';
|
|
12
11
|
import SafeLink from '@ndla/safelink';
|
|
12
|
+
import { breakpoints, fonts, mq, spacing } from '@ndla/core';
|
|
13
13
|
import Portrait from '../Portrait';
|
|
14
14
|
|
|
15
|
-
const classes = new BEMHelper({
|
|
16
|
-
name: 'author-info',
|
|
17
|
-
prefix: 'c-',
|
|
18
|
-
});
|
|
19
|
-
|
|
20
15
|
interface Props {
|
|
21
16
|
authorName: string;
|
|
22
17
|
authorRole: string;
|
|
@@ -25,24 +20,63 @@ interface Props {
|
|
|
25
20
|
image?: string;
|
|
26
21
|
}
|
|
27
22
|
|
|
23
|
+
const AuthorInfoSection = styled.section`
|
|
24
|
+
display: flex;
|
|
25
|
+
align-items: flex-start;
|
|
26
|
+
padding-bottom: ${spacing.large};
|
|
27
|
+
font-family: ${fonts.sans};
|
|
28
|
+
p,
|
|
29
|
+
a {
|
|
30
|
+
margin: 0;
|
|
31
|
+
${mq.range({ until: breakpoints.tablet })} {
|
|
32
|
+
${fonts.sizes('14px', '22px')};
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
`;
|
|
36
|
+
|
|
37
|
+
const StyledPortrait = styled(Portrait)`
|
|
38
|
+
margin-right: ${spacing.large};
|
|
39
|
+
${mq.range({ until: breakpoints.desktop })} {
|
|
40
|
+
margin-right: ${spacing.medium};
|
|
41
|
+
width: 7rem;
|
|
42
|
+
height: 7rem;
|
|
43
|
+
span {
|
|
44
|
+
width: 7rem;
|
|
45
|
+
height: 7rem;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
${mq.range({ until: breakpoints.desktop })} {
|
|
49
|
+
margin-right: ${spacing.small};
|
|
50
|
+
width: 4rem;
|
|
51
|
+
height: 4rem;
|
|
52
|
+
span {
|
|
53
|
+
width: 4rem;
|
|
54
|
+
height: 4rem;
|
|
55
|
+
}
|
|
56
|
+
} ;
|
|
57
|
+
`;
|
|
58
|
+
|
|
59
|
+
const StyledHeading = styled.h1`
|
|
60
|
+
margin: 0 0 ${spacing.small};
|
|
61
|
+
${mq.range({ until: breakpoints.desktop })} {
|
|
62
|
+
${fonts.sizes('22px', '22px')};
|
|
63
|
+
}
|
|
64
|
+
${mq.range({ until: breakpoints.tablet })} {
|
|
65
|
+
${fonts.sizes('18px', '18px')};
|
|
66
|
+
margin-bottom: ${spacing.xsmall};
|
|
67
|
+
}
|
|
68
|
+
`;
|
|
69
|
+
|
|
28
70
|
const AuthorInfo = ({ authorName, authorRole, email, image, phone }: Props) => (
|
|
29
|
-
<
|
|
30
|
-
{image && <
|
|
71
|
+
<AuthorInfoSection>
|
|
72
|
+
{image && <StyledPortrait src={image} alt={authorName} modifier="large" />}
|
|
31
73
|
<div>
|
|
32
|
-
<
|
|
74
|
+
<StyledHeading>{authorName}</StyledHeading>
|
|
33
75
|
<p>{authorRole}</p>
|
|
34
76
|
{phone && <p>{phone}</p>}
|
|
35
77
|
{email && <SafeLink to={`mailto:${email}`}>{email}</SafeLink>}
|
|
36
78
|
</div>
|
|
37
|
-
</
|
|
79
|
+
</AuthorInfoSection>
|
|
38
80
|
);
|
|
39
81
|
|
|
40
|
-
AuthorInfo.propTypes = {
|
|
41
|
-
authorName: PropTypes.string.isRequired,
|
|
42
|
-
authorRole: PropTypes.string.isRequired,
|
|
43
|
-
phone: PropTypes.string,
|
|
44
|
-
email: PropTypes.string,
|
|
45
|
-
image: PropTypes.string,
|
|
46
|
-
};
|
|
47
|
-
|
|
48
82
|
export default AuthorInfo;
|
|
@@ -1,11 +1,123 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
2
|
+
import styled from '@emotion/styled';
|
|
4
3
|
import { Play } from '@ndla/icons/common';
|
|
5
4
|
import SafeLink from '@ndla/safelink';
|
|
6
5
|
import type { SafeLinkProps } from '@ndla/safelink';
|
|
6
|
+
import { breakpoints, colors, fonts, mq, spacing, spacingUnit } from '@ndla/core';
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
interface ContentCardContainerProps {
|
|
9
|
+
columnWidth: number;
|
|
10
|
+
}
|
|
11
|
+
const ContentCardContainer = styled.article<ContentCardContainerProps>`
|
|
12
|
+
position: relative;
|
|
13
|
+
display: block;
|
|
14
|
+
width: ${(p) => `${p.columnWidth}px`};
|
|
15
|
+
`;
|
|
16
|
+
|
|
17
|
+
const StyledHeading = styled.h1`
|
|
18
|
+
font-weight: ${fonts.weight.semibold};
|
|
19
|
+
${fonts.sizes('14px', '16px')};
|
|
20
|
+
margin: ${spacing.xsmall} 0;
|
|
21
|
+
color: ${colors.brand.primary};
|
|
22
|
+
|
|
23
|
+
${mq.range({ from: breakpoints.tablet })} {
|
|
24
|
+
margin: ${spacing.small} 0 ${spacing.xsmall};
|
|
25
|
+
${fonts.sizes('20px', '22px')};
|
|
26
|
+
}
|
|
27
|
+
`;
|
|
28
|
+
|
|
29
|
+
const ContentCardLink = styled(SafeLink)`
|
|
30
|
+
color: ${colors.text.primary};
|
|
31
|
+
&:hover,
|
|
32
|
+
&:focus {
|
|
33
|
+
${StyledHeading} {
|
|
34
|
+
text-decoration: underline;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
`;
|
|
38
|
+
|
|
39
|
+
const ImageWrapper = styled.div`
|
|
40
|
+
width: 100%;
|
|
41
|
+
height: 72px;
|
|
42
|
+
border-radius: 5px;
|
|
43
|
+
position: relative;
|
|
44
|
+
overflow: hidden;
|
|
45
|
+
background: ${colors.background.grayDark};
|
|
46
|
+
${mq.range({ from: breakpoints.tablet })} {
|
|
47
|
+
height: ${spacingUnit * 4.5}px;
|
|
48
|
+
}
|
|
49
|
+
`;
|
|
50
|
+
|
|
51
|
+
interface BackgroundImageProps {
|
|
52
|
+
image: string;
|
|
53
|
+
}
|
|
54
|
+
const BackgroundImage = styled.div<BackgroundImageProps>`
|
|
55
|
+
display: flex;
|
|
56
|
+
height: 100%;
|
|
57
|
+
width: 100%;
|
|
58
|
+
background-position: center center;
|
|
59
|
+
background-size: cover;
|
|
60
|
+
background-image: url(${(p) => p.image});
|
|
61
|
+
`;
|
|
62
|
+
|
|
63
|
+
const PlayBackground = styled.div`
|
|
64
|
+
position: absolute;
|
|
65
|
+
left: 50%;
|
|
66
|
+
top: 50%;
|
|
67
|
+
transform: translate3d(-50%, -50%, 0);
|
|
68
|
+
height: 35px;
|
|
69
|
+
width: 35px;
|
|
70
|
+
background-color: rgba(0, 0, 0, 0.48);
|
|
71
|
+
border-radius: 100%;
|
|
72
|
+
display: flex;
|
|
73
|
+
align-items: center;
|
|
74
|
+
justify-content: center;
|
|
75
|
+
${mq.range({ from: breakpoints.tablet })} {
|
|
76
|
+
height: 42px;
|
|
77
|
+
width: 42px;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.c-icon {
|
|
81
|
+
color: ${colors.white};
|
|
82
|
+
height: 20px;
|
|
83
|
+
width: 20px;
|
|
84
|
+
margin-right: -1px;
|
|
85
|
+
|
|
86
|
+
${mq.range({ from: breakpoints.tablet })} {
|
|
87
|
+
height: 25px;
|
|
88
|
+
width: 25px;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
`;
|
|
92
|
+
|
|
93
|
+
const StyledContentType = styled.p`
|
|
94
|
+
${fonts.sizes('12px', '20px')};
|
|
95
|
+
position: absolute;
|
|
96
|
+
left: ${spacing.small};
|
|
97
|
+
bottom: ${spacing.small};
|
|
98
|
+
display: inline-block;
|
|
99
|
+
background: ${colors.brand.greyLightest};
|
|
100
|
+
border-radius: 2px;
|
|
101
|
+
font-weight: 600;
|
|
102
|
+
margin: 0;
|
|
103
|
+
padding: 0 ${spacing.xxsmall};
|
|
104
|
+
|
|
105
|
+
display: none;
|
|
106
|
+
${mq.range({ from: breakpoints.tablet })} {
|
|
107
|
+
display: inline-block;
|
|
108
|
+
}
|
|
109
|
+
`;
|
|
110
|
+
|
|
111
|
+
const StyledDescription = styled.p`
|
|
112
|
+
${fonts.sizes('16px')};
|
|
113
|
+
line-height: 1.25rem;
|
|
114
|
+
margin: 0;
|
|
115
|
+
display: none;
|
|
116
|
+
|
|
117
|
+
${mq.range({ from: breakpoints.tablet })} {
|
|
118
|
+
display: block;
|
|
119
|
+
}
|
|
120
|
+
`;
|
|
9
121
|
|
|
10
122
|
interface Props {
|
|
11
123
|
title: string;
|
|
@@ -18,43 +130,23 @@ interface Props {
|
|
|
18
130
|
}
|
|
19
131
|
|
|
20
132
|
const ContentCard = ({ title, text, image, type, isFilm = false, toLinkProps, columnWidth }: Props) => (
|
|
21
|
-
<
|
|
22
|
-
<
|
|
133
|
+
<ContentCardContainer columnWidth={columnWidth}>
|
|
134
|
+
<ContentCardLink {...toLinkProps()} title={title}>
|
|
23
135
|
<header>
|
|
24
|
-
<
|
|
25
|
-
<
|
|
26
|
-
{...classes('background-image')}
|
|
27
|
-
role="img"
|
|
28
|
-
aria-label={title}
|
|
29
|
-
style={{
|
|
30
|
-
backgroundImage: `url(${image})`,
|
|
31
|
-
}}
|
|
32
|
-
/>
|
|
136
|
+
<ImageWrapper>
|
|
137
|
+
<BackgroundImage image={image} role="img" aria-label={title} />
|
|
33
138
|
{isFilm && (
|
|
34
|
-
<
|
|
139
|
+
<PlayBackground>
|
|
35
140
|
<Play />
|
|
36
|
-
</
|
|
141
|
+
</PlayBackground>
|
|
37
142
|
)}
|
|
38
|
-
<
|
|
39
|
-
</
|
|
40
|
-
<
|
|
143
|
+
<StyledContentType>{type}</StyledContentType>
|
|
144
|
+
</ImageWrapper>
|
|
145
|
+
<StyledHeading>{title}</StyledHeading>
|
|
41
146
|
</header>
|
|
42
|
-
<
|
|
43
|
-
</
|
|
44
|
-
</
|
|
147
|
+
<StyledDescription>{text}</StyledDescription>
|
|
148
|
+
</ContentCardLink>
|
|
149
|
+
</ContentCardContainer>
|
|
45
150
|
);
|
|
46
151
|
|
|
47
|
-
ContentCard.propTypes = {
|
|
48
|
-
title: PropTypes.string.isRequired,
|
|
49
|
-
text: PropTypes.string.isRequired,
|
|
50
|
-
type: PropTypes.string.isRequired,
|
|
51
|
-
image: PropTypes.string.isRequired,
|
|
52
|
-
isFilm: PropTypes.bool,
|
|
53
|
-
toLinkProps: PropTypes.func.isRequired,
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
ContentCard.defaultProps = {
|
|
57
|
-
isFilm: false,
|
|
58
|
-
};
|
|
59
|
-
|
|
60
152
|
export default ContentCard;
|