@ndla/ui 30.9.0 → 32.0.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.
Files changed (155) hide show
  1. package/README.md +4 -0
  2. package/es/Animation/DisplayOnPageYOffset.js +1 -1
  3. package/es/Article/Article.js +3 -3
  4. package/es/Filter/FilterListPhone.js +1 -1
  5. package/es/NDLAFilm/AllMoviesAlphabetically.js +12 -12
  6. package/es/ResourceBox/ResourceBox.js +9 -11
  7. package/es/TopicMenu/TopicMenu.js +2 -2
  8. package/es/TreeStructure/AddFolderButton.js +2 -2
  9. package/es/TreeStructure/ComboboxButton.js +2 -2
  10. package/es/TreeStructure/FolderItem.js +11 -10
  11. package/es/TreeStructure/FolderItems.js +28 -37
  12. package/es/TreeStructure/TreeStructure.js +8 -8
  13. package/es/User/parseUserObject.js +1 -1
  14. package/lib/Animation/DisplayOnPageYOffset.js +2 -2
  15. package/lib/Article/Article.d.ts +5 -5
  16. package/lib/Article/Article.js +4 -4
  17. package/lib/Article/ArticleAccessMessage.d.ts +1 -1
  18. package/lib/Article/ArticleByline.d.ts +3 -3
  19. package/lib/Article/ArticleContent.d.ts +1 -1
  20. package/lib/Article/ArticleFootNotes.d.ts +1 -1
  21. package/lib/Article/ArticleHeaderWrapper.d.ts +2 -2
  22. package/lib/Article/ArticleNotions.d.ts +2 -2
  23. package/lib/Article/ArticleSideBar.d.ts +1 -1
  24. package/lib/AudioPlayer/AudioPlayer.d.ts +1 -1
  25. package/lib/AudioPlayer/Controls.d.ts +1 -1
  26. package/lib/AudioPlayer/SpeechControl.d.ts +1 -1
  27. package/lib/BannerCard/BannerCard.d.ts +2 -2
  28. package/lib/BlogPosts/BlogPost.d.ts +1 -1
  29. package/lib/Breadcrumblist/Breadcrumblist.d.ts +2 -2
  30. package/lib/CompetenceGoalTab/CompetenceGoalTab.d.ts +1 -1
  31. package/lib/CompetenceGoalTab/CompetenceItem.d.ts +5 -5
  32. package/lib/CompetenceGoalTab/SearchButton.d.ts +1 -1
  33. package/lib/ComponentCursor/ComponentCursor.d.ts +1 -1
  34. package/lib/CreatedBy/CreatedBy.d.ts +1 -1
  35. package/lib/ErrorMessage/ErrorResourceAccessDenied.d.ts +1 -1
  36. package/lib/Figure/Figure.d.ts +1 -1
  37. package/lib/Filter/FilterButtons.d.ts +2 -2
  38. package/lib/Filter/FilterListPhone.js +2 -2
  39. package/lib/Footer/EditorName.d.ts +1 -1
  40. package/lib/Footer/Footer.d.ts +1 -1
  41. package/lib/Footer/FooterLinks.d.ts +1 -1
  42. package/lib/Footer/FooterPrivacy.d.ts +1 -1
  43. package/lib/Footer/FooterText.d.ts +1 -1
  44. package/lib/Frontpage/FrontpageAllSubjects.d.ts +3 -3
  45. package/lib/Frontpage/FrontpageFilm.d.ts +1 -1
  46. package/lib/Frontpage/FrontpageInfo.d.ts +1 -1
  47. package/lib/Frontpage/FrontpageMultidisciplinarySubject.d.ts +1 -1
  48. package/lib/Frontpage/FrontpageProgramMenu.d.ts +1 -1
  49. package/lib/Frontpage/FrontpageSearch.d.ts +1 -1
  50. package/lib/Frontpage/FrontpageToolbox.d.ts +1 -1
  51. package/lib/Hero/Hero.d.ts +1 -1
  52. package/lib/LanguageSelector/LanguageSelector.d.ts +1 -1
  53. package/lib/LanguageSelector/LanguageSelectorContent.d.ts +1 -1
  54. package/lib/LearningPaths/LearningPathMenu.d.ts +1 -1
  55. package/lib/LearningPaths/LearningPathMenuAside.d.ts +1 -1
  56. package/lib/LearningPaths/LearningPathMenuAsideCopyright.d.ts +1 -1
  57. package/lib/LearningPaths/LearningPathMenuContent.d.ts +1 -1
  58. package/lib/LearningPaths/LearningPathMenuModalWrapper.d.ts +1 -1
  59. package/lib/LearningPaths/LearningPathMobileStepInfo.d.ts +1 -1
  60. package/lib/LearningPaths/LearningPathSticky.d.ts +1 -1
  61. package/lib/Messages/MessageBox.d.ts +1 -1
  62. package/lib/Messages/MessageBoxTag.d.ts +1 -1
  63. package/lib/MultidisciplinarySubject/List.d.ts +1 -1
  64. package/lib/MultidisciplinarySubject/ListItem.d.ts +1 -1
  65. package/lib/MultidisciplinarySubject/MultidisciplinarySubject.d.ts +1 -1
  66. package/lib/MultidisciplinarySubject/MultidisciplinarySubjectHeader.d.ts +3 -3
  67. package/lib/MyNdla/Resource/Folder.d.ts +1 -1
  68. package/lib/MyNdla/Resource/FolderInput.d.ts +1 -1
  69. package/lib/NDLAFilm/AllMoviesAlphabetically.js +13 -13
  70. package/lib/Navigation/NavigationBox.d.ts +3 -3
  71. package/lib/Navigation/NavigationHeading.d.ts +1 -1
  72. package/lib/Navigation/NavigationTopicAbout.d.ts +1 -1
  73. package/lib/Notion/Notion.d.ts +1 -1
  74. package/lib/Notion/NotionVisualElement.d.ts +1 -1
  75. package/lib/Programme/Programme.d.ts +1 -1
  76. package/lib/Programme/ProgrammeSubjects.d.ts +2 -2
  77. package/lib/Resource/resourceComponents.d.ts +1 -1
  78. package/lib/ResourceBox/ResourceBox.d.ts +2 -1
  79. package/lib/ResourceBox/ResourceBox.js +9 -11
  80. package/lib/ResourceGroup/ResourceGroup.d.ts +1 -1
  81. package/lib/ResourceGroup/ResourceItem.d.ts +1 -1
  82. package/lib/ResourceGroup/ResourceList.d.ts +1 -1
  83. package/lib/Search/ContentTypeResult.d.ts +1 -1
  84. package/lib/Search/ContentTypeResultStyles.d.ts +2 -2
  85. package/lib/Search/LoadingWrapper.d.ts +1 -1
  86. package/lib/Search/SearchResultSleeve.d.ts +1 -1
  87. package/lib/SearchTypeResult/ActiveFilterContent.d.ts +2 -2
  88. package/lib/SearchTypeResult/ActiveFilters.d.ts +1 -1
  89. package/lib/SearchTypeResult/PopupFilter.d.ts +2 -2
  90. package/lib/SearchTypeResult/ResultNavigation.d.ts +1 -1
  91. package/lib/SearchTypeResult/SearchFieldHeader.d.ts +1 -1
  92. package/lib/SearchTypeResult/SearchFilterContent.d.ts +1 -1
  93. package/lib/SearchTypeResult/SearchHeader.d.ts +1 -1
  94. package/lib/SearchTypeResult/SearchItem.d.ts +2 -2
  95. package/lib/SearchTypeResult/SearchItems.d.ts +1 -1
  96. package/lib/SearchTypeResult/SearchNotionItem.d.ts +1 -1
  97. package/lib/SearchTypeResult/SearchNotionsResult.d.ts +1 -1
  98. package/lib/SearchTypeResult/SearchSubjectItem.d.ts +2 -2
  99. package/lib/SearchTypeResult/SearchSubjectResult.d.ts +1 -1
  100. package/lib/SearchTypeResult/SearchTypeHeader.d.ts +2 -2
  101. package/lib/SearchTypeResult/SearchTypeResult.d.ts +2 -2
  102. package/lib/SearchTypeResult/SearchViewType.d.ts +1 -1
  103. package/lib/SearchTypeResult/components/ItemContexts.d.ts +2 -2
  104. package/lib/SearchTypeResult/components/ItemResourceHeader.d.ts +1 -1
  105. package/lib/SearchTypeResult/components/ItemTopicHeader.d.ts +1 -1
  106. package/lib/SearchTypeResult/components/SubjectFilters.d.ts +4 -4
  107. package/lib/Subject/SubjectBanner.d.ts +2 -2
  108. package/lib/Subject/SubjectHeader.d.ts +1 -1
  109. package/lib/Topic/Topic.d.ts +2 -2
  110. package/lib/TopicMenu/TopicMenu.js +3 -3
  111. package/lib/TreeStructure/AddFolderButton.d.ts +2 -2
  112. package/lib/TreeStructure/AddFolderButton.js +2 -2
  113. package/lib/TreeStructure/ComboboxButton.d.ts +7 -6
  114. package/lib/TreeStructure/ComboboxButton.js +2 -2
  115. package/lib/TreeStructure/FolderItem.d.ts +5 -3
  116. package/lib/TreeStructure/FolderItem.js +11 -10
  117. package/lib/TreeStructure/FolderItems.d.ts +4 -3
  118. package/lib/TreeStructure/FolderItems.js +28 -36
  119. package/lib/TreeStructure/TreeStructure.d.ts +3 -2
  120. package/lib/TreeStructure/TreeStructure.js +11 -11
  121. package/lib/TreeStructure/arrowNavigation.d.ts +2 -2
  122. package/lib/TreeStructure/helperFunctions.d.ts +3 -2
  123. package/lib/TreeStructure/index.d.ts +0 -1
  124. package/lib/TreeStructure/types.d.ts +8 -12
  125. package/lib/User/AuthModal.d.ts +1 -1
  126. package/lib/User/apiTypes.d.ts +3 -3
  127. package/lib/User/parseUserObject.d.ts +1 -1
  128. package/lib/User/parseUserObject.js +3 -2
  129. package/lib/index.d.ts +1 -1
  130. package/lib/locale/LocaleProvider.d.ts +1 -1
  131. package/lib/types.d.ts +11 -11
  132. package/package.json +10 -10
  133. package/src/Animation/DisplayOnPageYOffset.tsx +1 -1
  134. package/src/Article/Article.tsx +1 -1
  135. package/src/Filter/FilterListPhone.tsx +1 -1
  136. package/src/NDLAFilm/AllMoviesAlphabetically.tsx +1 -1
  137. package/src/ResourceBox/ResourceBox.tsx +3 -4
  138. package/src/TopicMenu/TopicMenu.jsx +1 -1
  139. package/src/TreeStructure/AddFolderButton.tsx +2 -2
  140. package/src/TreeStructure/ComboboxButton.tsx +7 -6
  141. package/src/TreeStructure/FolderItem.tsx +10 -7
  142. package/src/TreeStructure/FolderItems.tsx +31 -36
  143. package/src/TreeStructure/TreeStructure.tsx +7 -7
  144. package/src/TreeStructure/arrowNavigation.ts +5 -5
  145. package/src/TreeStructure/helperFunctions.ts +4 -3
  146. package/src/TreeStructure/index.ts +0 -1
  147. package/src/TreeStructure/types.ts +5 -10
  148. package/src/User/parseUserObject.ts +1 -1
  149. package/src/index.ts +1 -1
  150. package/es/LetterFilter/LetterFilter.stories.js +0 -44
  151. package/es/TreeStructure/NavigationLink.js +0 -91
  152. package/lib/LetterFilter/LetterFilter.stories.js +0 -45
  153. package/lib/TreeStructure/NavigationLink.d.ts +0 -14
  154. package/lib/TreeStructure/NavigationLink.js +0 -93
  155. package/src/TreeStructure/NavigationLink.tsx +0 -107
@@ -1,91 +0,0 @@
1
- import _styled from "@emotion/styled/base";
2
- function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
3
- /**
4
- * Copyright (c) 2022-present, NDLA.
5
- *
6
- * This source code is licensed under the GPLv3 license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- *
9
- */
10
-
11
- import { colors, fonts, spacing } from '@ndla/core';
12
- import React, { useEffect, useRef } from 'react';
13
- import SafeLink from '@ndla/safelink';
14
- import { arrowNavigation } from './arrowNavigation';
15
- import { jsx as _jsx } from "@emotion/react/jsx-runtime";
16
- import { jsxs as _jsxs } from "@emotion/react/jsx-runtime";
17
- var StyledSafeLink = /*#__PURE__*/_styled(SafeLink, {
18
- target: "et3arba1",
19
- label: "StyledSafeLink"
20
- })("display:grid;grid-template-columns:", spacing.medium, " 1fr;align-items:center;padding:", spacing.xxsmall, ";margin:", spacing.xsmall, " 0;gap:", spacing.xxsmall, ";box-shadow:none;color:", function (_ref) {
21
- var selected = _ref.selected;
22
- return selected ? colors.brand.primary : colors.text.primary;
23
- }, ";font-weight:", function (_ref2) {
24
- var selected = _ref2.selected;
25
- return selected ? fonts.weight.semibold : fonts.weight.normal;
26
- }, ";", fonts.sizes('16px'), ";:hover,:focus{color:", colors.brand.primary, ";}svg{height:26px;width:26px;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk5hdmlnYXRpb25MaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQm9EIiwiZmlsZSI6Ik5hdmlnYXRpb25MaW5rLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIyLXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY29sb3JzLCBmb250cywgc3BhY2luZyB9IGZyb20gJ0BuZGxhL2NvcmUnO1xuaW1wb3J0IFJlYWN0LCB7IEtleWJvYXJkRXZlbnQsIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFNhZmVMaW5rIGZyb20gJ0BuZGxhL3NhZmVsaW5rJztcbmltcG9ydCB7IGFycm93TmF2aWdhdGlvbiB9IGZyb20gJy4vYXJyb3dOYXZpZ2F0aW9uJztcbmltcG9ydCB7IENvbW1vbkZvbGRlckl0ZW1zUHJvcHMsIEZvbGRlclR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIFN0eWxlZFByb3BzIHtcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWRTYWZlTGluayA9IHN0eWxlZChTYWZlTGluayk8U3R5bGVkUHJvcHM+YFxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICR7c3BhY2luZy5tZWRpdW19IDFmcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogJHtzcGFjaW5nLnh4c21hbGx9O1xuICBtYXJnaW46ICR7c3BhY2luZy54c21hbGx9IDA7XG4gIGdhcDogJHtzcGFjaW5nLnh4c21hbGx9O1xuICBib3gtc2hhZG93OiBub25lO1xuXG4gIGNvbG9yOiAkeyh7IHNlbGVjdGVkIH0pID0+IChzZWxlY3RlZCA/IGNvbG9ycy5icmFuZC5wcmltYXJ5IDogY29sb3JzLnRleHQucHJpbWFyeSl9O1xuICBmb250LXdlaWdodDogJHsoeyBzZWxlY3RlZCB9KSA9PiAoc2VsZWN0ZWQgPyBmb250cy53ZWlnaHQuc2VtaWJvbGQgOiBmb250cy53ZWlnaHQubm9ybWFsKX07XG4gICR7Zm9udHMuc2l6ZXMoJzE2cHgnKX07XG5cbiAgOmhvdmVyLFxuICA6Zm9jdXMge1xuICAgIGNvbG9yOiAke2NvbG9ycy5icmFuZC5wcmltYXJ5fTtcbiAgfVxuICBzdmcge1xuICAgIGhlaWdodDogMjZweDtcbiAgICB3aWR0aDogMjZweDtcbiAgfVxuYDtcblxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5gO1xuXG5pbnRlcmZhY2UgUHJvcHMgZXh0ZW5kcyBDb21tb25Gb2xkZXJJdGVtc1Byb3BzIHtcbiAgaXNPcGVuOiBib29sZWFuO1xuICBmb2xkZXI6IEZvbGRlclR5cGU7XG59XG5cbmNvbnN0IE5hdmlnYXRpb25MaW5rID0gKHtcbiAgbG9hZGluZyxcbiAgZm9sZGVyLFxuICBzZWxlY3RlZEZvbGRlcixcbiAgZm9jdXNlZEZvbGRlcixcbiAgc2V0U2VsZWN0ZWRGb2xkZXIsXG4gIHNldEZvY3VzZWRGb2xkZXIsXG4gIHZpc2libGVGb2xkZXJzLFxuICBvbk9wZW5Gb2xkZXIsXG4gIG9uQ2xvc2VGb2xkZXIsXG59OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IGlkLCBpY29uLCBuYW1lIH0gPSBmb2xkZXI7XG4gIGNvbnN0IHNlbGVjdGVkID0gc2VsZWN0ZWRGb2xkZXIgJiYgc2VsZWN0ZWRGb2xkZXIuaWQgPT09IGlkO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQgJiBIVE1MQW5jaG9yRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGZvY3VzZWQgPSBmb2N1c2VkRm9sZGVyPy5pZCA9PT0gaWQ7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKCFzZWxlY3RlZCkge1xuICAgICAgc2V0U2VsZWN0ZWRGb2xkZXIoZm9sZGVyKTtcbiAgICAgIHNldEZvY3VzZWRGb2xkZXIoZm9sZGVyKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZm9jdXNlZEZvbGRlcj8uaWQgPT09IGlkKSB7XG4gICAgICByZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH0sIFtmb2N1c2VkRm9sZGVyLCByZWYsIGlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkU2FmZUxpbmtcbiAgICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgICByZWY9e3JlZn1cbiAgICAgIG9uS2V5RG93bj17KGU6IEtleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgIHNldFNlbGVjdGVkRm9sZGVyKGZvbGRlcik7XG4gICAgICAgICAgc2V0Rm9jdXNlZEZvbGRlcihmb2xkZXIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBhcnJvd05hdmlnYXRpb24oZSwgaWQsIHZpc2libGVGb2xkZXJzLCBzZXRGb2N1c2VkRm9sZGVyLCBvbk9wZW5Gb2xkZXIsIG9uQ2xvc2VGb2xkZXIpO1xuICAgICAgfX1cbiAgICAgIGFyaWEtY3VycmVudD17c2VsZWN0ZWQgPyAncGFnZScgOiB1bmRlZmluZWR9XG4gICAgICB0YWJJbmRleD17c2VsZWN0ZWQgfHwgZm9jdXNlZCA/IDAgOiAtMX1cbiAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldEZvY3VzZWRGb2xkZXIoZm9sZGVyKX1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgdG89e2xvYWRpbmcgPyAnJyA6IGAvbWlubmRsYS8ke2lkfWB9PlxuICAgICAgPEljb25XcmFwcGVyPntpY29ufTwvSWNvbldyYXBwZXI+XG4gICAgICB7bmFtZX1cbiAgICA8L1N0eWxlZFNhZmVMaW5rPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmF2aWdhdGlvbkxpbms7XG4iXX0= */"));
27
- var IconWrapper = /*#__PURE__*/_styled("span", {
28
- target: "et3arba0",
29
- label: "IconWrapper"
30
- })(process.env.NODE_ENV === "production" ? {
31
- name: "1wnowod",
32
- styles: "display:flex;align-items:center;justify-content:center"
33
- } : {
34
- name: "1wnowod",
35
- styles: "display:flex;align-items:center;justify-content:center",
36
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk5hdmlnYXRpb25MaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwQytCIiwiZmlsZSI6Ik5hdmlnYXRpb25MaW5rLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIyLXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY29sb3JzLCBmb250cywgc3BhY2luZyB9IGZyb20gJ0BuZGxhL2NvcmUnO1xuaW1wb3J0IFJlYWN0LCB7IEtleWJvYXJkRXZlbnQsIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFNhZmVMaW5rIGZyb20gJ0BuZGxhL3NhZmVsaW5rJztcbmltcG9ydCB7IGFycm93TmF2aWdhdGlvbiB9IGZyb20gJy4vYXJyb3dOYXZpZ2F0aW9uJztcbmltcG9ydCB7IENvbW1vbkZvbGRlckl0ZW1zUHJvcHMsIEZvbGRlclR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIFN0eWxlZFByb3BzIHtcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWRTYWZlTGluayA9IHN0eWxlZChTYWZlTGluayk8U3R5bGVkUHJvcHM+YFxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICR7c3BhY2luZy5tZWRpdW19IDFmcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogJHtzcGFjaW5nLnh4c21hbGx9O1xuICBtYXJnaW46ICR7c3BhY2luZy54c21hbGx9IDA7XG4gIGdhcDogJHtzcGFjaW5nLnh4c21hbGx9O1xuICBib3gtc2hhZG93OiBub25lO1xuXG4gIGNvbG9yOiAkeyh7IHNlbGVjdGVkIH0pID0+IChzZWxlY3RlZCA/IGNvbG9ycy5icmFuZC5wcmltYXJ5IDogY29sb3JzLnRleHQucHJpbWFyeSl9O1xuICBmb250LXdlaWdodDogJHsoeyBzZWxlY3RlZCB9KSA9PiAoc2VsZWN0ZWQgPyBmb250cy53ZWlnaHQuc2VtaWJvbGQgOiBmb250cy53ZWlnaHQubm9ybWFsKX07XG4gICR7Zm9udHMuc2l6ZXMoJzE2cHgnKX07XG5cbiAgOmhvdmVyLFxuICA6Zm9jdXMge1xuICAgIGNvbG9yOiAke2NvbG9ycy5icmFuZC5wcmltYXJ5fTtcbiAgfVxuICBzdmcge1xuICAgIGhlaWdodDogMjZweDtcbiAgICB3aWR0aDogMjZweDtcbiAgfVxuYDtcblxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5gO1xuXG5pbnRlcmZhY2UgUHJvcHMgZXh0ZW5kcyBDb21tb25Gb2xkZXJJdGVtc1Byb3BzIHtcbiAgaXNPcGVuOiBib29sZWFuO1xuICBmb2xkZXI6IEZvbGRlclR5cGU7XG59XG5cbmNvbnN0IE5hdmlnYXRpb25MaW5rID0gKHtcbiAgbG9hZGluZyxcbiAgZm9sZGVyLFxuICBzZWxlY3RlZEZvbGRlcixcbiAgZm9jdXNlZEZvbGRlcixcbiAgc2V0U2VsZWN0ZWRGb2xkZXIsXG4gIHNldEZvY3VzZWRGb2xkZXIsXG4gIHZpc2libGVGb2xkZXJzLFxuICBvbk9wZW5Gb2xkZXIsXG4gIG9uQ2xvc2VGb2xkZXIsXG59OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IGlkLCBpY29uLCBuYW1lIH0gPSBmb2xkZXI7XG4gIGNvbnN0IHNlbGVjdGVkID0gc2VsZWN0ZWRGb2xkZXIgJiYgc2VsZWN0ZWRGb2xkZXIuaWQgPT09IGlkO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQgJiBIVE1MQW5jaG9yRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGZvY3VzZWQgPSBmb2N1c2VkRm9sZGVyPy5pZCA9PT0gaWQ7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKCFzZWxlY3RlZCkge1xuICAgICAgc2V0U2VsZWN0ZWRGb2xkZXIoZm9sZGVyKTtcbiAgICAgIHNldEZvY3VzZWRGb2xkZXIoZm9sZGVyKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZm9jdXNlZEZvbGRlcj8uaWQgPT09IGlkKSB7XG4gICAgICByZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH0sIFtmb2N1c2VkRm9sZGVyLCByZWYsIGlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkU2FmZUxpbmtcbiAgICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgICByZWY9e3JlZn1cbiAgICAgIG9uS2V5RG93bj17KGU6IEtleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgIHNldFNlbGVjdGVkRm9sZGVyKGZvbGRlcik7XG4gICAgICAgICAgc2V0Rm9jdXNlZEZvbGRlcihmb2xkZXIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBhcnJvd05hdmlnYXRpb24oZSwgaWQsIHZpc2libGVGb2xkZXJzLCBzZXRGb2N1c2VkRm9sZGVyLCBvbk9wZW5Gb2xkZXIsIG9uQ2xvc2VGb2xkZXIpO1xuICAgICAgfX1cbiAgICAgIGFyaWEtY3VycmVudD17c2VsZWN0ZWQgPyAncGFnZScgOiB1bmRlZmluZWR9XG4gICAgICB0YWJJbmRleD17c2VsZWN0ZWQgfHwgZm9jdXNlZCA/IDAgOiAtMX1cbiAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldEZvY3VzZWRGb2xkZXIoZm9sZGVyKX1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgdG89e2xvYWRpbmcgPyAnJyA6IGAvbWlubmRsYS8ke2lkfWB9PlxuICAgICAgPEljb25XcmFwcGVyPntpY29ufTwvSWNvbldyYXBwZXI+XG4gICAgICB7bmFtZX1cbiAgICA8L1N0eWxlZFNhZmVMaW5rPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmF2aWdhdGlvbkxpbms7XG4iXX0= */",
37
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
38
- });
39
- var NavigationLink = function NavigationLink(_ref3) {
40
- var loading = _ref3.loading,
41
- folder = _ref3.folder,
42
- selectedFolder = _ref3.selectedFolder,
43
- focusedFolder = _ref3.focusedFolder,
44
- setSelectedFolder = _ref3.setSelectedFolder,
45
- setFocusedFolder = _ref3.setFocusedFolder,
46
- visibleFolders = _ref3.visibleFolders,
47
- onOpenFolder = _ref3.onOpenFolder,
48
- onCloseFolder = _ref3.onCloseFolder;
49
- var id = folder.id,
50
- icon = folder.icon,
51
- name = folder.name;
52
- var selected = selectedFolder && selectedFolder.id === id;
53
- var ref = useRef(null);
54
- var focused = (focusedFolder === null || focusedFolder === void 0 ? void 0 : focusedFolder.id) === id;
55
- var handleClick = function handleClick() {
56
- if (!selected) {
57
- setSelectedFolder(folder);
58
- setFocusedFolder(folder);
59
- }
60
- };
61
- useEffect(function () {
62
- if ((focusedFolder === null || focusedFolder === void 0 ? void 0 : focusedFolder.id) === id) {
63
- var _ref$current;
64
- (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.focus();
65
- }
66
- }, [focusedFolder, ref, id]);
67
- return _jsxs(StyledSafeLink, {
68
- role: "treeitem",
69
- ref: ref,
70
- onKeyDown: function onKeyDown(e) {
71
- if (e.key === 'Enter') {
72
- setSelectedFolder(folder);
73
- setFocusedFolder(folder);
74
- return;
75
- }
76
- arrowNavigation(e, id, visibleFolders, setFocusedFolder, onOpenFolder, onCloseFolder);
77
- },
78
- "aria-current": selected ? 'page' : undefined,
79
- tabIndex: selected || focused ? 0 : -1,
80
- selected: selected,
81
- onFocus: function onFocus() {
82
- return setFocusedFolder(folder);
83
- },
84
- onClick: handleClick,
85
- to: loading ? '' : "/minndla/".concat(id),
86
- children: [_jsx(IconWrapper, {
87
- children: icon
88
- }), name]
89
- });
90
- };
91
- export default NavigationLink;
@@ -1,45 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = exports.LetterFilterStory = void 0;
7
- var _clientApi = require("@storybook/client-api");
8
- var _react = _interopRequireDefault(require("react"));
9
- var _defaults = require("../../../designmanual/stories/defaults");
10
- var _LetterFilter = _interopRequireDefault(require("./LetterFilter"));
11
- var _jsxRuntime = require("@emotion/react/jsx-runtime");
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
14
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
15
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
16
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
17
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
18
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
19
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
22
- var _default = {
23
- title: 'Enkle komponenter/LetterFilter',
24
- component: _LetterFilter["default"],
25
- parameters: _objectSpread({}, _defaults.defaultParameters),
26
- args: {
27
- enabledLetters: ['a', 'c'],
28
- onChange: function onChange(value) {}
29
- }
30
- };
31
- exports["default"] = _default;
32
- var LetterFilterStory = function LetterFilterStory(args) {
33
- var _useArgs = (0, _clientApi.useArgs)(),
34
- _useArgs2 = _slicedToArray(_useArgs, 2),
35
- updateArgs = _useArgs2[1];
36
- return (0, _jsxRuntime.jsx)(_LetterFilter["default"], _objectSpread(_objectSpread({}, args), {}, {
37
- onChange: function onChange(val) {
38
- return updateArgs({
39
- value: val
40
- });
41
- }
42
- }));
43
- };
44
- exports.LetterFilterStory = LetterFilterStory;
45
- LetterFilterStory.storyName = 'LetterFilter';
@@ -1,14 +0,0 @@
1
- /**
2
- * Copyright (c) 2022-present, NDLA.
3
- *
4
- * This source code is licensed under the GPLv3 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- */
8
- import { CommonFolderItemsProps, FolderType } from './types';
9
- interface Props extends CommonFolderItemsProps {
10
- isOpen: boolean;
11
- folder: FolderType;
12
- }
13
- declare const NavigationLink: ({ loading, folder, selectedFolder, focusedFolder, setSelectedFolder, setFocusedFolder, visibleFolders, onOpenFolder, onCloseFolder, }: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
14
- export default NavigationLink;
@@ -1,93 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = void 0;
8
- var _base = _interopRequireDefault(require("@emotion/styled/base"));
9
- var _core = require("@ndla/core");
10
- var _react = _interopRequireWildcard(require("react"));
11
- var _safelink = _interopRequireDefault(require("@ndla/safelink"));
12
- var _arrowNavigation = require("./arrowNavigation");
13
- var _jsxRuntime = require("@emotion/react/jsx-runtime");
14
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
- function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
18
- var StyledSafeLink = /*#__PURE__*/(0, _base["default"])(_safelink["default"], {
19
- target: "et3arba1",
20
- label: "StyledSafeLink"
21
- })("display:grid;grid-template-columns:", _core.spacing.medium, " 1fr;align-items:center;padding:", _core.spacing.xxsmall, ";margin:", _core.spacing.xsmall, " 0;gap:", _core.spacing.xxsmall, ";box-shadow:none;color:", function (_ref) {
22
- var selected = _ref.selected;
23
- return selected ? _core.colors.brand.primary : _core.colors.text.primary;
24
- }, ";font-weight:", function (_ref2) {
25
- var selected = _ref2.selected;
26
- return selected ? _core.fonts.weight.semibold : _core.fonts.weight.normal;
27
- }, ";", _core.fonts.sizes('16px'), ";:hover,:focus{color:", _core.colors.brand.primary, ";}svg{height:26px;width:26px;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk5hdmlnYXRpb25MaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQm9EIiwiZmlsZSI6Ik5hdmlnYXRpb25MaW5rLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIyLXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY29sb3JzLCBmb250cywgc3BhY2luZyB9IGZyb20gJ0BuZGxhL2NvcmUnO1xuaW1wb3J0IFJlYWN0LCB7IEtleWJvYXJkRXZlbnQsIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFNhZmVMaW5rIGZyb20gJ0BuZGxhL3NhZmVsaW5rJztcbmltcG9ydCB7IGFycm93TmF2aWdhdGlvbiB9IGZyb20gJy4vYXJyb3dOYXZpZ2F0aW9uJztcbmltcG9ydCB7IENvbW1vbkZvbGRlckl0ZW1zUHJvcHMsIEZvbGRlclR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIFN0eWxlZFByb3BzIHtcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWRTYWZlTGluayA9IHN0eWxlZChTYWZlTGluayk8U3R5bGVkUHJvcHM+YFxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICR7c3BhY2luZy5tZWRpdW19IDFmcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogJHtzcGFjaW5nLnh4c21hbGx9O1xuICBtYXJnaW46ICR7c3BhY2luZy54c21hbGx9IDA7XG4gIGdhcDogJHtzcGFjaW5nLnh4c21hbGx9O1xuICBib3gtc2hhZG93OiBub25lO1xuXG4gIGNvbG9yOiAkeyh7IHNlbGVjdGVkIH0pID0+IChzZWxlY3RlZCA/IGNvbG9ycy5icmFuZC5wcmltYXJ5IDogY29sb3JzLnRleHQucHJpbWFyeSl9O1xuICBmb250LXdlaWdodDogJHsoeyBzZWxlY3RlZCB9KSA9PiAoc2VsZWN0ZWQgPyBmb250cy53ZWlnaHQuc2VtaWJvbGQgOiBmb250cy53ZWlnaHQubm9ybWFsKX07XG4gICR7Zm9udHMuc2l6ZXMoJzE2cHgnKX07XG5cbiAgOmhvdmVyLFxuICA6Zm9jdXMge1xuICAgIGNvbG9yOiAke2NvbG9ycy5icmFuZC5wcmltYXJ5fTtcbiAgfVxuICBzdmcge1xuICAgIGhlaWdodDogMjZweDtcbiAgICB3aWR0aDogMjZweDtcbiAgfVxuYDtcblxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5gO1xuXG5pbnRlcmZhY2UgUHJvcHMgZXh0ZW5kcyBDb21tb25Gb2xkZXJJdGVtc1Byb3BzIHtcbiAgaXNPcGVuOiBib29sZWFuO1xuICBmb2xkZXI6IEZvbGRlclR5cGU7XG59XG5cbmNvbnN0IE5hdmlnYXRpb25MaW5rID0gKHtcbiAgbG9hZGluZyxcbiAgZm9sZGVyLFxuICBzZWxlY3RlZEZvbGRlcixcbiAgZm9jdXNlZEZvbGRlcixcbiAgc2V0U2VsZWN0ZWRGb2xkZXIsXG4gIHNldEZvY3VzZWRGb2xkZXIsXG4gIHZpc2libGVGb2xkZXJzLFxuICBvbk9wZW5Gb2xkZXIsXG4gIG9uQ2xvc2VGb2xkZXIsXG59OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IGlkLCBpY29uLCBuYW1lIH0gPSBmb2xkZXI7XG4gIGNvbnN0IHNlbGVjdGVkID0gc2VsZWN0ZWRGb2xkZXIgJiYgc2VsZWN0ZWRGb2xkZXIuaWQgPT09IGlkO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQgJiBIVE1MQW5jaG9yRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGZvY3VzZWQgPSBmb2N1c2VkRm9sZGVyPy5pZCA9PT0gaWQ7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKCFzZWxlY3RlZCkge1xuICAgICAgc2V0U2VsZWN0ZWRGb2xkZXIoZm9sZGVyKTtcbiAgICAgIHNldEZvY3VzZWRGb2xkZXIoZm9sZGVyKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZm9jdXNlZEZvbGRlcj8uaWQgPT09IGlkKSB7XG4gICAgICByZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH0sIFtmb2N1c2VkRm9sZGVyLCByZWYsIGlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkU2FmZUxpbmtcbiAgICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgICByZWY9e3JlZn1cbiAgICAgIG9uS2V5RG93bj17KGU6IEtleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgIHNldFNlbGVjdGVkRm9sZGVyKGZvbGRlcik7XG4gICAgICAgICAgc2V0Rm9jdXNlZEZvbGRlcihmb2xkZXIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBhcnJvd05hdmlnYXRpb24oZSwgaWQsIHZpc2libGVGb2xkZXJzLCBzZXRGb2N1c2VkRm9sZGVyLCBvbk9wZW5Gb2xkZXIsIG9uQ2xvc2VGb2xkZXIpO1xuICAgICAgfX1cbiAgICAgIGFyaWEtY3VycmVudD17c2VsZWN0ZWQgPyAncGFnZScgOiB1bmRlZmluZWR9XG4gICAgICB0YWJJbmRleD17c2VsZWN0ZWQgfHwgZm9jdXNlZCA/IDAgOiAtMX1cbiAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldEZvY3VzZWRGb2xkZXIoZm9sZGVyKX1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgdG89e2xvYWRpbmcgPyAnJyA6IGAvbWlubmRsYS8ke2lkfWB9PlxuICAgICAgPEljb25XcmFwcGVyPntpY29ufTwvSWNvbldyYXBwZXI+XG4gICAgICB7bmFtZX1cbiAgICA8L1N0eWxlZFNhZmVMaW5rPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmF2aWdhdGlvbkxpbms7XG4iXX0= */"));
28
- var IconWrapper = /*#__PURE__*/(0, _base["default"])("span", {
29
- target: "et3arba0",
30
- label: "IconWrapper"
31
- })(process.env.NODE_ENV === "production" ? {
32
- name: "1wnowod",
33
- styles: "display:flex;align-items:center;justify-content:center"
34
- } : {
35
- name: "1wnowod",
36
- styles: "display:flex;align-items:center;justify-content:center",
37
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk5hdmlnYXRpb25MaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwQytCIiwiZmlsZSI6Ik5hdmlnYXRpb25MaW5rLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIyLXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY29sb3JzLCBmb250cywgc3BhY2luZyB9IGZyb20gJ0BuZGxhL2NvcmUnO1xuaW1wb3J0IFJlYWN0LCB7IEtleWJvYXJkRXZlbnQsIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFNhZmVMaW5rIGZyb20gJ0BuZGxhL3NhZmVsaW5rJztcbmltcG9ydCB7IGFycm93TmF2aWdhdGlvbiB9IGZyb20gJy4vYXJyb3dOYXZpZ2F0aW9uJztcbmltcG9ydCB7IENvbW1vbkZvbGRlckl0ZW1zUHJvcHMsIEZvbGRlclR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIFN0eWxlZFByb3BzIHtcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWRTYWZlTGluayA9IHN0eWxlZChTYWZlTGluayk8U3R5bGVkUHJvcHM+YFxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICR7c3BhY2luZy5tZWRpdW19IDFmcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogJHtzcGFjaW5nLnh4c21hbGx9O1xuICBtYXJnaW46ICR7c3BhY2luZy54c21hbGx9IDA7XG4gIGdhcDogJHtzcGFjaW5nLnh4c21hbGx9O1xuICBib3gtc2hhZG93OiBub25lO1xuXG4gIGNvbG9yOiAkeyh7IHNlbGVjdGVkIH0pID0+IChzZWxlY3RlZCA/IGNvbG9ycy5icmFuZC5wcmltYXJ5IDogY29sb3JzLnRleHQucHJpbWFyeSl9O1xuICBmb250LXdlaWdodDogJHsoeyBzZWxlY3RlZCB9KSA9PiAoc2VsZWN0ZWQgPyBmb250cy53ZWlnaHQuc2VtaWJvbGQgOiBmb250cy53ZWlnaHQubm9ybWFsKX07XG4gICR7Zm9udHMuc2l6ZXMoJzE2cHgnKX07XG5cbiAgOmhvdmVyLFxuICA6Zm9jdXMge1xuICAgIGNvbG9yOiAke2NvbG9ycy5icmFuZC5wcmltYXJ5fTtcbiAgfVxuICBzdmcge1xuICAgIGhlaWdodDogMjZweDtcbiAgICB3aWR0aDogMjZweDtcbiAgfVxuYDtcblxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5gO1xuXG5pbnRlcmZhY2UgUHJvcHMgZXh0ZW5kcyBDb21tb25Gb2xkZXJJdGVtc1Byb3BzIHtcbiAgaXNPcGVuOiBib29sZWFuO1xuICBmb2xkZXI6IEZvbGRlclR5cGU7XG59XG5cbmNvbnN0IE5hdmlnYXRpb25MaW5rID0gKHtcbiAgbG9hZGluZyxcbiAgZm9sZGVyLFxuICBzZWxlY3RlZEZvbGRlcixcbiAgZm9jdXNlZEZvbGRlcixcbiAgc2V0U2VsZWN0ZWRGb2xkZXIsXG4gIHNldEZvY3VzZWRGb2xkZXIsXG4gIHZpc2libGVGb2xkZXJzLFxuICBvbk9wZW5Gb2xkZXIsXG4gIG9uQ2xvc2VGb2xkZXIsXG59OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IGlkLCBpY29uLCBuYW1lIH0gPSBmb2xkZXI7XG4gIGNvbnN0IHNlbGVjdGVkID0gc2VsZWN0ZWRGb2xkZXIgJiYgc2VsZWN0ZWRGb2xkZXIuaWQgPT09IGlkO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQgJiBIVE1MQW5jaG9yRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGZvY3VzZWQgPSBmb2N1c2VkRm9sZGVyPy5pZCA9PT0gaWQ7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKCFzZWxlY3RlZCkge1xuICAgICAgc2V0U2VsZWN0ZWRGb2xkZXIoZm9sZGVyKTtcbiAgICAgIHNldEZvY3VzZWRGb2xkZXIoZm9sZGVyKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZm9jdXNlZEZvbGRlcj8uaWQgPT09IGlkKSB7XG4gICAgICByZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH0sIFtmb2N1c2VkRm9sZGVyLCByZWYsIGlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkU2FmZUxpbmtcbiAgICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgICByZWY9e3JlZn1cbiAgICAgIG9uS2V5RG93bj17KGU6IEtleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgIHNldFNlbGVjdGVkRm9sZGVyKGZvbGRlcik7XG4gICAgICAgICAgc2V0Rm9jdXNlZEZvbGRlcihmb2xkZXIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBhcnJvd05hdmlnYXRpb24oZSwgaWQsIHZpc2libGVGb2xkZXJzLCBzZXRGb2N1c2VkRm9sZGVyLCBvbk9wZW5Gb2xkZXIsIG9uQ2xvc2VGb2xkZXIpO1xuICAgICAgfX1cbiAgICAgIGFyaWEtY3VycmVudD17c2VsZWN0ZWQgPyAncGFnZScgOiB1bmRlZmluZWR9XG4gICAgICB0YWJJbmRleD17c2VsZWN0ZWQgfHwgZm9jdXNlZCA/IDAgOiAtMX1cbiAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldEZvY3VzZWRGb2xkZXIoZm9sZGVyKX1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgdG89e2xvYWRpbmcgPyAnJyA6IGAvbWlubmRsYS8ke2lkfWB9PlxuICAgICAgPEljb25XcmFwcGVyPntpY29ufTwvSWNvbldyYXBwZXI+XG4gICAgICB7bmFtZX1cbiAgICA8L1N0eWxlZFNhZmVMaW5rPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmF2aWdhdGlvbkxpbms7XG4iXX0= */",
38
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
39
- });
40
- var NavigationLink = function NavigationLink(_ref3) {
41
- var loading = _ref3.loading,
42
- folder = _ref3.folder,
43
- selectedFolder = _ref3.selectedFolder,
44
- focusedFolder = _ref3.focusedFolder,
45
- setSelectedFolder = _ref3.setSelectedFolder,
46
- setFocusedFolder = _ref3.setFocusedFolder,
47
- visibleFolders = _ref3.visibleFolders,
48
- onOpenFolder = _ref3.onOpenFolder,
49
- onCloseFolder = _ref3.onCloseFolder;
50
- var id = folder.id,
51
- icon = folder.icon,
52
- name = folder.name;
53
- var selected = selectedFolder && selectedFolder.id === id;
54
- var ref = (0, _react.useRef)(null);
55
- var focused = (focusedFolder === null || focusedFolder === void 0 ? void 0 : focusedFolder.id) === id;
56
- var handleClick = function handleClick() {
57
- if (!selected) {
58
- setSelectedFolder(folder);
59
- setFocusedFolder(folder);
60
- }
61
- };
62
- (0, _react.useEffect)(function () {
63
- if ((focusedFolder === null || focusedFolder === void 0 ? void 0 : focusedFolder.id) === id) {
64
- var _ref$current;
65
- (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.focus();
66
- }
67
- }, [focusedFolder, ref, id]);
68
- return (0, _jsxRuntime.jsxs)(StyledSafeLink, {
69
- role: "treeitem",
70
- ref: ref,
71
- onKeyDown: function onKeyDown(e) {
72
- if (e.key === 'Enter') {
73
- setSelectedFolder(folder);
74
- setFocusedFolder(folder);
75
- return;
76
- }
77
- (0, _arrowNavigation.arrowNavigation)(e, id, visibleFolders, setFocusedFolder, onOpenFolder, onCloseFolder);
78
- },
79
- "aria-current": selected ? 'page' : undefined,
80
- tabIndex: selected || focused ? 0 : -1,
81
- selected: selected,
82
- onFocus: function onFocus() {
83
- return setFocusedFolder(folder);
84
- },
85
- onClick: handleClick,
86
- to: loading ? '' : "/minndla/".concat(id),
87
- children: [(0, _jsxRuntime.jsx)(IconWrapper, {
88
- children: icon
89
- }), name]
90
- });
91
- };
92
- var _default = NavigationLink;
93
- exports["default"] = _default;
@@ -1,107 +0,0 @@
1
- /**
2
- * Copyright (c) 2022-present, NDLA.
3
- *
4
- * This source code is licensed under the GPLv3 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- */
8
-
9
- import styled from '@emotion/styled';
10
- import { colors, fonts, spacing } from '@ndla/core';
11
- import React, { KeyboardEvent, useEffect, useRef } from 'react';
12
- import SafeLink from '@ndla/safelink';
13
- import { arrowNavigation } from './arrowNavigation';
14
- import { CommonFolderItemsProps, FolderType } from './types';
15
-
16
- interface StyledProps {
17
- selected?: boolean;
18
- }
19
-
20
- const StyledSafeLink = styled(SafeLink)<StyledProps>`
21
- display: grid;
22
- grid-template-columns: ${spacing.medium} 1fr;
23
- align-items: center;
24
- padding: ${spacing.xxsmall};
25
- margin: ${spacing.xsmall} 0;
26
- gap: ${spacing.xxsmall};
27
- box-shadow: none;
28
-
29
- color: ${({ selected }) => (selected ? colors.brand.primary : colors.text.primary)};
30
- font-weight: ${({ selected }) => (selected ? fonts.weight.semibold : fonts.weight.normal)};
31
- ${fonts.sizes('16px')};
32
-
33
- :hover,
34
- :focus {
35
- color: ${colors.brand.primary};
36
- }
37
- svg {
38
- height: 26px;
39
- width: 26px;
40
- }
41
- `;
42
-
43
- const IconWrapper = styled.span`
44
- display: flex;
45
- align-items: center;
46
- justify-content: center;
47
- `;
48
-
49
- interface Props extends CommonFolderItemsProps {
50
- isOpen: boolean;
51
- folder: FolderType;
52
- }
53
-
54
- const NavigationLink = ({
55
- loading,
56
- folder,
57
- selectedFolder,
58
- focusedFolder,
59
- setSelectedFolder,
60
- setFocusedFolder,
61
- visibleFolders,
62
- onOpenFolder,
63
- onCloseFolder,
64
- }: Props) => {
65
- const { id, icon, name } = folder;
66
- const selected = selectedFolder && selectedFolder.id === id;
67
- const ref = useRef<HTMLButtonElement & HTMLAnchorElement>(null);
68
- const focused = focusedFolder?.id === id;
69
-
70
- const handleClick = () => {
71
- if (!selected) {
72
- setSelectedFolder(folder);
73
- setFocusedFolder(folder);
74
- }
75
- };
76
-
77
- useEffect(() => {
78
- if (focusedFolder?.id === id) {
79
- ref.current?.focus();
80
- }
81
- }, [focusedFolder, ref, id]);
82
-
83
- return (
84
- <StyledSafeLink
85
- role="treeitem"
86
- ref={ref}
87
- onKeyDown={(e: KeyboardEvent<HTMLElement>) => {
88
- if (e.key === 'Enter') {
89
- setSelectedFolder(folder);
90
- setFocusedFolder(folder);
91
- return;
92
- }
93
- arrowNavigation(e, id, visibleFolders, setFocusedFolder, onOpenFolder, onCloseFolder);
94
- }}
95
- aria-current={selected ? 'page' : undefined}
96
- tabIndex={selected || focused ? 0 : -1}
97
- selected={selected}
98
- onFocus={() => setFocusedFolder(folder)}
99
- onClick={handleClick}
100
- to={loading ? '' : `/minndla/${id}`}>
101
- <IconWrapper>{icon}</IconWrapper>
102
- {name}
103
- </StyledSafeLink>
104
- );
105
- };
106
-
107
- export default NavigationLink;