@ndla/ui 56.0.34-alpha.0 → 56.0.36-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/panda.buildinfo.json +8 -20
  2. package/dist/styles.css +20 -64
  3. package/es/CampaignBlock/CampaignBlock.js +36 -47
  4. package/es/Embed/CodeEmbed.js +6 -2
  5. package/es/Embed/ConceptEmbed.js +1 -0
  6. package/es/Embed/EmbedErrorPlaceholder.js +8 -9
  7. package/es/Layout/index.js +1 -3
  8. package/es/index.js +1 -2
  9. package/es/locale/messages-en.js +2 -1
  10. package/es/locale/messages-nb.js +2 -1
  11. package/es/locale/messages-nn.js +2 -1
  12. package/es/locale/messages-se.js +2 -1
  13. package/es/locale/messages-sma.js +2 -1
  14. package/lib/CampaignBlock/CampaignBlock.d.ts +4 -2
  15. package/lib/CampaignBlock/CampaignBlock.js +35 -46
  16. package/lib/Embed/CodeEmbed.js +7 -2
  17. package/lib/Embed/ConceptEmbed.js +1 -0
  18. package/lib/Embed/EmbedErrorPlaceholder.js +7 -8
  19. package/lib/Layout/index.d.ts +0 -2
  20. package/lib/Layout/index.js +1 -11
  21. package/lib/LicenseByline/EmbedByline.d.ts +1 -1
  22. package/lib/index.d.ts +1 -3
  23. package/lib/index.js +1 -14
  24. package/lib/locale/messages-en.d.ts +1 -0
  25. package/lib/locale/messages-en.js +2 -1
  26. package/lib/locale/messages-nb.d.ts +1 -0
  27. package/lib/locale/messages-nb.js +2 -1
  28. package/lib/locale/messages-nn.d.ts +1 -0
  29. package/lib/locale/messages-nn.js +2 -1
  30. package/lib/locale/messages-se.d.ts +1 -0
  31. package/lib/locale/messages-se.js +2 -1
  32. package/lib/locale/messages-sma.d.ts +1 -0
  33. package/lib/locale/messages-sma.js +2 -1
  34. package/package.json +6 -6
  35. package/src/CampaignBlock/CampaignBlock.tsx +43 -44
  36. package/src/ContentTypeHero/ContentTypeHero.stories.tsx +3 -4
  37. package/src/Embed/AudioEmbed.stories.tsx +3 -3
  38. package/src/Embed/BrightcoveEmbed.stories.tsx +3 -3
  39. package/src/Embed/CodeEmbed.tsx +5 -2
  40. package/src/Embed/ConceptEmbed.stories.tsx +3 -3
  41. package/src/Embed/ConceptEmbed.tsx +1 -0
  42. package/src/Embed/EmbedErrorPlaceholder.tsx +8 -9
  43. package/src/Embed/ExternalEmbed.stories.tsx +3 -3
  44. package/src/Embed/H5pEmbed.stories.tsx +3 -3
  45. package/src/Embed/IframeEmbed.stories.tsx +3 -3
  46. package/src/Embed/ImageEmbed.stories.tsx +3 -4
  47. package/src/Embed/RelatedContentEmbed.stories.tsx +3 -3
  48. package/src/Embed/UuDisclaimerEmbed.stories.tsx +3 -4
  49. package/src/Grid/Grid.stories.tsx +4 -3
  50. package/src/Layout/index.ts +0 -4
  51. package/src/LicenseByline/EmbedByline.tsx +1 -1
  52. package/src/index.ts +1 -4
  53. package/src/locale/messages-en.ts +1 -0
  54. package/src/locale/messages-nb.ts +1 -0
  55. package/src/locale/messages-nn.ts +1 -0
  56. package/src/locale/messages-se.ts +1 -0
  57. package/src/locale/messages-sma.ts +1 -0
  58. package/es/Layout/LayoutItem.js +0 -35
  59. package/es/TreeStructure/TreeStructure.js +0 -318
  60. package/es/TreeStructure/helperFunctions.js +0 -29
  61. package/es/TreeStructure/index.js +0 -9
  62. package/es/TreeStructure/types.js +0 -1
  63. package/lib/Layout/LayoutItem.d.ts +0 -11
  64. package/lib/Layout/LayoutItem.js +0 -40
  65. package/lib/TreeStructure/TreeStructure.d.ts +0 -22
  66. package/lib/TreeStructure/TreeStructure.js +0 -325
  67. package/lib/TreeStructure/helperFunctions.d.ts +0 -9
  68. package/lib/TreeStructure/helperFunctions.js +0 -36
  69. package/lib/TreeStructure/index.d.ts +0 -9
  70. package/lib/TreeStructure/index.js +0 -12
  71. package/lib/TreeStructure/types.d.ts +0 -15
  72. package/lib/TreeStructure/types.js +0 -5
  73. package/src/Layout/LayoutItem.tsx +0 -36
  74. package/src/TreeStructure/TreeStructure.stories.tsx +0 -282
  75. package/src/TreeStructure/TreeStructure.tsx +0 -354
  76. package/src/TreeStructure/helperFunctions.ts +0 -18
  77. package/src/TreeStructure/index.ts +0 -10
  78. package/src/TreeStructure/types.ts +0 -22
@@ -7,10 +7,10 @@
7
7
  */
8
8
 
9
9
  import { Meta, StoryObj } from "@storybook/react";
10
+ import { PageContent } from "@ndla/primitives";
10
11
  import { AudioEmbedData, AudioMeta } from "@ndla/types-embed";
11
12
  import AudioEmbed from "./AudioEmbed";
12
13
  import { ArticleContent, ArticleWrapper } from "../Article";
13
- import { OneColumn } from "../Layout";
14
14
 
15
15
  const embedData: AudioEmbedData = {
16
16
  resource: "audio",
@@ -187,13 +187,13 @@ const meta: Meta<typeof AudioEmbed> = {
187
187
  tags: ["autodocs"],
188
188
  decorators: [
189
189
  (Story) => (
190
- <OneColumn>
190
+ <PageContent variant="content" asChild>
191
191
  <ArticleWrapper>
192
192
  <ArticleContent>
193
193
  <Story />
194
194
  </ArticleContent>
195
195
  </ArticleWrapper>
196
- </OneColumn>
196
+ </PageContent>
197
197
  ),
198
198
  ],
199
199
  };
@@ -7,10 +7,10 @@
7
7
  */
8
8
 
9
9
  import { Meta, StoryObj } from "@storybook/react";
10
+ import { PageContent } from "@ndla/primitives";
10
11
  import { BrightcoveData, BrightcoveEmbedData, BrightcoveMetaData } from "@ndla/types-embed";
11
12
  import BrightcoveEmbed from "./BrightcoveEmbed";
12
13
  import { ArticleContent, ArticleWrapper } from "../Article";
13
- import { OneColumn } from "../Layout";
14
14
 
15
15
  const embedData: BrightcoveEmbedData = {
16
16
  resource: "brightcove",
@@ -157,13 +157,13 @@ const meta: Meta<typeof BrightcoveEmbed> = {
157
157
  tags: ["autodocs"],
158
158
  decorators: [
159
159
  (Story) => (
160
- <OneColumn>
160
+ <PageContent variant="content" asChild>
161
161
  <ArticleWrapper>
162
162
  <ArticleContent>
163
163
  <Story />
164
164
  </ArticleContent>
165
165
  </ArticleWrapper>
166
- </OneColumn>
166
+ </PageContent>
167
167
  ),
168
168
  ],
169
169
  };
@@ -14,11 +14,10 @@ import { Button, Figure } from "@ndla/primitives";
14
14
  import { styled } from "@ndla/styled-system/jsx";
15
15
  import { CodeMetaData } from "@ndla/types-embed";
16
16
  import { copyTextToClipboard } from "@ndla/util";
17
+ import EmbedErrorPlaceholder from "./EmbedErrorPlaceholder";
17
18
  import { CodeBlock, codeLanguageOptions } from "../CodeBlock";
18
19
  import { ICodeLangugeOption } from "../CodeBlock/codeLanguageOptions";
19
20
 
20
- // TODO: We need an error state for this
21
-
22
21
  interface Props {
23
22
  embed: CodeMetaData;
24
23
  }
@@ -61,6 +60,10 @@ const CodeEmbed = ({ embed }: Props) => {
61
60
  }
62
61
  }, [isCopied]);
63
62
 
63
+ if (embed.status === "error") {
64
+ return <EmbedErrorPlaceholder type="code" />;
65
+ }
66
+
64
67
  return (
65
68
  <StyledFigure data-embed-type="code-block">
66
69
  <StyledFigCaption>{embed.embedData.title || getTitleFromFormat(embed.embedData.codeFormat)}</StyledFigCaption>
@@ -7,10 +7,10 @@
7
7
  */
8
8
 
9
9
  import { Meta, StoryObj } from "@storybook/react";
10
+ import { PageContent } from "@ndla/primitives";
10
11
  import { ConceptData, ConceptEmbedData } from "@ndla/types-embed";
11
12
  import { ConceptEmbed } from "./ConceptEmbed";
12
13
  import { ArticleContent, ArticleWrapper } from "../Article";
13
- import { OneColumn } from "../Layout";
14
14
 
15
15
  const blockEmbedData: ConceptEmbedData = {
16
16
  contentId: "35",
@@ -149,13 +149,13 @@ const meta: Meta<typeof ConceptEmbed> = {
149
149
  tags: ["autodocs"],
150
150
  decorators: [
151
151
  (Story) => (
152
- <OneColumn>
152
+ <PageContent variant="content" asChild>
153
153
  <ArticleWrapper>
154
154
  <ArticleContent>
155
155
  <Story />
156
156
  </ArticleContent>
157
157
  </ArticleWrapper>
158
- </OneColumn>
158
+ </PageContent>
159
159
  ),
160
160
  ],
161
161
  };
@@ -46,6 +46,7 @@ export const ConceptEmbed = ({ embed, renderContext, lang, previewAlt }: Props)
46
46
  return <span>{embed.embedData.linkText}</span>;
47
47
  }
48
48
  if (embed.status === "error") {
49
+ // TODO: This could be either concept or gloss. We don't know if it errors out. :)
49
50
  return <EmbedErrorPlaceholder type="gloss" />;
50
51
  }
51
52
 
@@ -7,7 +7,7 @@
7
7
  */
8
8
 
9
9
  import { ReactNode } from "react";
10
- import { AlertLine } from "@ndla/icons/common";
10
+ import { Report } from "@ndla/icons/common";
11
11
  import { Figure, type FigureFloat, type FigureSize } from "@ndla/primitives";
12
12
  import { styled } from "@ndla/styled-system/jsx";
13
13
  import { EmbedByline } from "../LicenseByline";
@@ -25,16 +25,15 @@ const ErrorPlaceholder = styled("div", {
25
25
  display: "flex",
26
26
  alignItems: "center",
27
27
  justifyContent: "center",
28
- backgroundColor: "surface.disabled",
28
+ background: "background.subtle",
29
29
  height: "surface.xsmall",
30
+ border: "1px solid",
31
+ borderColor: "stroke.default",
30
32
  borderRadius: "xsmall",
31
33
  "& svg": {
32
- fill: "text.subtle",
33
- height: "90%",
34
- width: "90%",
35
- },
36
- "&[data-embed-type='audio']": {
37
- height: "surface.3xsmall",
34
+ height: "5xlarge",
35
+ width: "5xlarge",
36
+ fill: "stroke.default",
38
37
  },
39
38
  },
40
39
  });
@@ -52,7 +51,7 @@ const EmbedErrorPlaceholder = ({ type, children, figureType, float }: Props) =>
52
51
  <StyledFigure size={figureType} float={float} data-embed-type={type}>
53
52
  {children ?? (
54
53
  <ErrorPlaceholder data-embed-type={type}>
55
- <AlertLine />
54
+ <Report />
56
55
  </ErrorPlaceholder>
57
56
  )}
58
57
  <EmbedByline error type={type} />
@@ -7,10 +7,10 @@
7
7
  */
8
8
 
9
9
  import { Meta, StoryObj } from "@storybook/react";
10
+ import { PageContent } from "@ndla/primitives";
10
11
  import { OembedEmbedData, OembedData } from "@ndla/types-embed";
11
12
  import ExternalEmbed from "./ExternalEmbed";
12
13
  import { ArticleWrapper, ArticleContent } from "../Article";
13
- import { OneColumn } from "../Layout";
14
14
 
15
15
  const embedData: OembedEmbedData = {
16
16
  resource: "external",
@@ -55,7 +55,7 @@ const meta: Meta<typeof ExternalEmbed> = {
55
55
  tags: ["autodocs"],
56
56
  decorators: [
57
57
  (Story) => (
58
- <OneColumn>
58
+ <PageContent variant="content" asChild>
59
59
  <ArticleWrapper>
60
60
  <ArticleContent>
61
61
  <section>
@@ -63,7 +63,7 @@ const meta: Meta<typeof ExternalEmbed> = {
63
63
  </section>
64
64
  </ArticleContent>
65
65
  </ArticleWrapper>
66
- </OneColumn>
66
+ </PageContent>
67
67
  ),
68
68
  ],
69
69
  };
@@ -7,10 +7,10 @@
7
7
  */
8
8
 
9
9
  import { Meta, StoryObj } from "@storybook/react";
10
+ import { PageContent } from "@ndla/primitives";
10
11
  import { H5pEmbedData, H5pData } from "@ndla/types-embed";
11
12
  import H5pEmbed from "./H5pEmbed";
12
13
  import { ArticleWrapper, ArticleContent } from "../Article";
13
- import { OneColumn } from "../Layout";
14
14
 
15
15
  const embedData: H5pEmbedData = {
16
16
  resource: "h5p",
@@ -52,13 +52,13 @@ const meta: Meta<typeof H5pEmbed> = {
52
52
  tags: ["autodocs"],
53
53
  decorators: [
54
54
  (Story) => (
55
- <OneColumn>
55
+ <PageContent variant="content" asChild>
56
56
  <ArticleWrapper>
57
57
  <ArticleContent>
58
58
  <Story />
59
59
  </ArticleContent>
60
60
  </ArticleWrapper>
61
- </OneColumn>
61
+ </PageContent>
62
62
  ),
63
63
  ],
64
64
  };
@@ -7,10 +7,10 @@
7
7
  */
8
8
 
9
9
  import { Meta, StoryObj } from "@storybook/react";
10
+ import { PageContent } from "@ndla/primitives";
10
11
  import { IframeData, IframeEmbedData } from "@ndla/types-embed";
11
12
  import IframeEmbed from "./IframeEmbed";
12
13
  import { ArticleWrapper, ArticleContent } from "../Article";
13
- import { OneColumn } from "../Layout";
14
14
 
15
15
  const embedData: IframeEmbedData = {
16
16
  width: "708px",
@@ -27,13 +27,13 @@ const meta: Meta<typeof IframeEmbed> = {
27
27
  tags: ["autodocs"],
28
28
  decorators: [
29
29
  (Story) => (
30
- <OneColumn>
30
+ <PageContent variant="content" asChild>
31
31
  <ArticleWrapper>
32
32
  <ArticleContent>
33
33
  <Story />
34
34
  </ArticleContent>
35
35
  </ArticleWrapper>
36
- </OneColumn>
36
+ </PageContent>
37
37
  ),
38
38
  ],
39
39
  };
@@ -8,14 +8,13 @@
8
8
 
9
9
  import { ReactNode } from "react";
10
10
  import { Meta, StoryFn, StoryObj } from "@storybook/react";
11
- import { Text } from "@ndla/primitives";
11
+ import { PageContent, Text } from "@ndla/primitives";
12
12
  import { styled } from "@ndla/styled-system/jsx";
13
13
  import { IImageMetaInformationV3 } from "@ndla/types-backend/image-api";
14
14
  import { ImageEmbedData } from "@ndla/types-embed";
15
15
  import ImageEmbed from "./ImageEmbed";
16
16
  import { ArticleWrapper, ArticleContent } from "../Article";
17
17
  import { Grid } from "../Grid";
18
- import { OneColumn } from "../Layout";
19
18
 
20
19
  const embedData: ImageEmbedData = {
21
20
  resource: "image",
@@ -96,13 +95,13 @@ const meta: Meta<typeof ImageEmbed> = {
96
95
  },
97
96
  decorators: [
98
97
  (Story) => (
99
- <OneColumn>
98
+ <PageContent variant="content" asChild>
100
99
  <ArticleWrapper>
101
100
  <ArticleContent>
102
101
  <Story />
103
102
  </ArticleContent>
104
103
  </ArticleWrapper>
105
- </OneColumn>
104
+ </PageContent>
106
105
  ),
107
106
  ],
108
107
  };
@@ -7,10 +7,10 @@
7
7
  */
8
8
 
9
9
  import { Meta, StoryObj } from "@storybook/react";
10
+ import { PageContent } from "@ndla/primitives";
10
11
  import { RelatedContentMetaData } from "@ndla/types-embed";
11
12
  import RelatedContentEmbed from "./RelatedContentEmbed";
12
13
  import { ArticleWrapper, ArticleContent } from "../Article";
13
- import { OneColumn } from "../Layout";
14
14
  import RelatedArticleList from "../RelatedArticleList";
15
15
 
16
16
  const filmResourceMeta: RelatedContentMetaData = {
@@ -367,13 +367,13 @@ const meta: Meta<typeof RelatedContentEmbed> = {
367
367
  tags: ["autodocs"],
368
368
  decorators: [
369
369
  (Story) => (
370
- <OneColumn>
370
+ <PageContent variant="content" asChild>
371
371
  <ArticleWrapper>
372
372
  <ArticleContent>
373
373
  <Story />
374
374
  </ArticleContent>
375
375
  </ArticleWrapper>
376
- </OneColumn>
376
+ </PageContent>
377
377
  ),
378
378
  ],
379
379
  };
@@ -7,7 +7,7 @@
7
7
  */
8
8
 
9
9
  import { Meta, StoryObj } from "@storybook/react";
10
- import { ExpandableBox, ExpandableBoxSummary, FramedContent } from "@ndla/primitives";
10
+ import { ExpandableBox, ExpandableBoxSummary, FramedContent, PageContent } from "@ndla/primitives";
11
11
  import { UuDisclaimerEmbedData } from "@ndla/types-embed";
12
12
  import H5pEmbed from "./H5pEmbed";
13
13
  import IframeEmbed from "./IframeEmbed";
@@ -15,7 +15,6 @@ import UuDisclaimerEmbed from "./UuDisclaimerEmbed";
15
15
  import { ArticleWrapper, ArticleContent } from "../Article";
16
16
  import CopyParagraphButton from "../CopyParagraphButton";
17
17
  import FactBox from "../FactBox";
18
- import { OneColumn } from "../Layout";
19
18
 
20
19
  const embedData: UuDisclaimerEmbedData = {
21
20
  resource: "uu-disclaimer",
@@ -29,13 +28,13 @@ const meta: Meta<typeof UuDisclaimerEmbed> = {
29
28
  tags: ["autodocs"],
30
29
  decorators: [
31
30
  (Story) => (
32
- <OneColumn>
31
+ <PageContent variant="content" asChild>
33
32
  <ArticleWrapper>
34
33
  <ArticleContent>
35
34
  <Story />
36
35
  </ArticleContent>
37
36
  </ArticleWrapper>
38
- </OneColumn>
37
+ </PageContent>
39
38
  ),
40
39
  ],
41
40
  };
@@ -7,7 +7,8 @@
7
7
  */
8
8
 
9
9
  import { Meta, StoryFn } from "@storybook/react";
10
- import { ArticleContent, ArticleWrapper, OneColumn } from "@ndla/ui";
10
+ import { PageContent } from "@ndla/primitives";
11
+ import { ArticleContent, ArticleWrapper } from "@ndla/ui";
11
12
  import { Grid } from "./Grid";
12
13
  import { BlogPostStory } from "../BlogPost/BlogPost.stories";
13
14
  import { Plain } from "../KeyFigure/KeyFigure.stories";
@@ -27,13 +28,13 @@ export default {
27
28
  },
28
29
  decorators: [
29
30
  (Story) => (
30
- <OneColumn wide>
31
+ <PageContent asChild>
31
32
  <ArticleWrapper>
32
33
  <ArticleContent>
33
34
  <Story />
34
35
  </ArticleContent>
35
36
  </ArticleWrapper>
36
- </OneColumn>
37
+ </PageContent>
37
38
  ),
38
39
  ],
39
40
  } as Meta<typeof Grid>;
@@ -6,9 +6,5 @@
6
6
  *
7
7
  */
8
8
 
9
- import LayoutItem from "./LayoutItem";
10
-
11
9
  export { default as OneColumn } from "./OneColumn";
12
10
  export { default as PageContainer } from "./PageContainer";
13
-
14
- export default LayoutItem;
@@ -29,7 +29,7 @@ interface BaseProps {
29
29
  }
30
30
 
31
31
  export interface EmbedBylineErrorProps extends BaseProps {
32
- type: EmbedBylineTypeProps["type"] | "h5p" | "external";
32
+ type: EmbedBylineTypeProps["type"] | "h5p" | "external" | "code";
33
33
  error: true;
34
34
  }
35
35
 
package/src/index.ts CHANGED
@@ -90,7 +90,7 @@ export {
90
90
  useVideoSearchTranslations,
91
91
  } from "./i18n";
92
92
 
93
- export { default as LayoutItem, OneColumn, PageContainer } from "./Layout";
93
+ export { OneColumn, PageContainer } from "./Layout";
94
94
 
95
95
  export {
96
96
  default as ContentTypeBadge,
@@ -122,9 +122,6 @@ export {
122
122
  TagSelectorInput,
123
123
  } from "./TagSelector/TagSelector";
124
124
 
125
- export { TreeStructure } from "./TreeStructure";
126
- export type { TreeStructureProps } from "./TreeStructure";
127
-
128
125
  export { BlogPostV2 } from "./BlogPost";
129
126
  export { KeyFigure } from "./KeyFigure";
130
127
  export { ContactBlock, contactBlockBackgrounds } from "./ContactBlock";
@@ -1427,6 +1427,7 @@ const messages = {
1427
1427
  external: "External resource",
1428
1428
  gloss: "Gloss",
1429
1429
  copyright: "Text",
1430
+ code: "Code block",
1430
1431
  },
1431
1432
  },
1432
1433
  gloss: {
@@ -1427,6 +1427,7 @@ const messages = {
1427
1427
  external: "Ekstern ressurs",
1428
1428
  gloss: "Glose",
1429
1429
  copyright: "Tekst",
1430
+ code: "Kodeblokk",
1430
1431
  },
1431
1432
  },
1432
1433
  gloss: {
@@ -1426,6 +1426,7 @@ const messages = {
1426
1426
  external: "Ekstern ressurs",
1427
1427
  gloss: "Glose",
1428
1428
  copyright: "Tekst",
1429
+ code: "Kodeblokk",
1429
1430
  },
1430
1431
  },
1431
1432
  gloss: {
@@ -1429,6 +1429,7 @@ const messages = {
1429
1429
  external: "Olgguldas resursa",
1430
1430
  gloss: "Glose",
1431
1431
  copyright: "Tekst",
1432
+ code: "Kodeblokk",
1432
1433
  },
1433
1434
  },
1434
1435
  gloss: {
@@ -1431,6 +1431,7 @@ const messages = {
1431
1431
  external: "Ekstern ressurs",
1432
1432
  gloss: "Glosa",
1433
1433
  copyright: "Tekst",
1434
+ code: "Kodeblokk",
1434
1435
  },
1435
1436
  },
1436
1437
  gloss: {
@@ -1,35 +0,0 @@
1
- /**
2
- * Copyright (c) 2016-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 "@ndla/styled-system/jsx";
10
-
11
- // TODO: Refactor this. This is a copy of our old layout.
12
- export const LayoutItem = styled("section", {
13
- defaultVariants: {
14
- layout: "center"
15
- },
16
- variants: {
17
- layout: {
18
- center: {
19
- position: "relative!",
20
- width: "83.333%",
21
- right: "auto !important",
22
- left: "8.333%"
23
- },
24
- extend: {
25
- tablet: {
26
- position: "relative!",
27
- width: "83.333%",
28
- right: "auto!",
29
- left: "8.333%"
30
- }
31
- }
32
- }
33
- }
34
- });
35
- export default LayoutItem;