@ndla/ui 56.0.129-alpha.0 → 56.0.131-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 (76) hide show
  1. package/es/Embed/ConceptEmbed.js +5 -5
  2. package/es/Embed/ConceptEmbed.js.map +1 -1
  3. package/es/Embed/GlossEmbed.js +3 -3
  4. package/es/Embed/GlossEmbed.js.map +1 -1
  5. package/lib/Article/Article.js +4 -4
  6. package/lib/Article/ArticleByline.js +2 -2
  7. package/lib/Article/ArticleByline.js.map +1 -1
  8. package/lib/AudioPlayer/AudioPlayer.js +4 -4
  9. package/lib/AudioPlayer/index.js +2 -2
  10. package/lib/Breadcrumb/Breadcrumb.js +2 -2
  11. package/lib/Breadcrumb/HomeBreadcrumb.js +2 -2
  12. package/lib/Breadcrumb/index.js +3 -3
  13. package/lib/CampaignBlock/CampaignBlock.js +2 -2
  14. package/lib/CampaignBlock/CampaignBlock.js.map +1 -1
  15. package/lib/Concept/Concept.js +11 -11
  16. package/lib/Concept/Concept.js.map +1 -1
  17. package/lib/ContactBlock/ContactBlock.js +2 -2
  18. package/lib/ContentTypeBadge/ContentTypeBadge.js +20 -20
  19. package/lib/ContentTypeBadge/ContentTypeBadge.js.map +1 -1
  20. package/lib/ContentTypeHero/ContentTypeHero.js +20 -20
  21. package/lib/ContentTypeHero/ContentTypeHero.js.map +1 -1
  22. package/lib/CopyParagraphButton/index.js +2 -2
  23. package/lib/Embed/AudioEmbed.js +9 -9
  24. package/lib/Embed/AudioEmbed.js.map +1 -1
  25. package/lib/Embed/BrightcoveEmbed.js +6 -6
  26. package/lib/Embed/BrightcoveEmbed.js.map +1 -1
  27. package/lib/Embed/CodeEmbed.js +6 -6
  28. package/lib/Embed/CodeEmbed.js.map +1 -1
  29. package/lib/Embed/ConceptEmbed.d.ts +4 -2
  30. package/lib/Embed/ConceptEmbed.js +13 -13
  31. package/lib/Embed/ConceptEmbed.js.map +1 -1
  32. package/lib/Embed/ConceptInlineTriggerButton.js +2 -2
  33. package/lib/Embed/ConceptInlineTriggerButton.js.map +1 -1
  34. package/lib/Embed/CopyrightEmbed.js +2 -2
  35. package/lib/Embed/EmbedErrorPlaceholder.js +2 -2
  36. package/lib/Embed/ExternalEmbed.js +4 -4
  37. package/lib/Embed/ExternalEmbed.js.map +1 -1
  38. package/lib/Embed/GlossEmbed.d.ts +3 -1
  39. package/lib/Embed/GlossEmbed.js +9 -9
  40. package/lib/Embed/GlossEmbed.js.map +1 -1
  41. package/lib/Embed/H5pEmbed.js +2 -2
  42. package/lib/Embed/H5pEmbed.js.map +1 -1
  43. package/lib/Embed/IframeEmbed.js +4 -4
  44. package/lib/Embed/IframeEmbed.js.map +1 -1
  45. package/lib/Embed/ImageEmbed.js +6 -6
  46. package/lib/Embed/ImageEmbed.js.map +1 -1
  47. package/lib/Embed/RelatedContentEmbed.js +6 -6
  48. package/lib/Embed/RelatedContentEmbed.js.map +1 -1
  49. package/lib/ErrorMessage/index.js +2 -2
  50. package/lib/FactBox/index.js +2 -2
  51. package/lib/FileList/File.js +2 -2
  52. package/lib/FileList/File.js.map +1 -1
  53. package/lib/Gloss/Gloss.js +4 -4
  54. package/lib/LicenseByline/EmbedByline.js +2 -2
  55. package/lib/LinkBlock/LinkBlock.js +2 -2
  56. package/lib/LinkBlock/LinkBlock.js.map +1 -1
  57. package/lib/Pitch/Pitch.js +2 -2
  58. package/lib/Pitch/Pitch.js.map +1 -1
  59. package/lib/RelatedArticleList/RelatedArticleList.js +4 -4
  60. package/lib/RelatedArticleList/RelatedArticleList.js.map +1 -1
  61. package/lib/RelatedArticleList/index.js +2 -2
  62. package/lib/i18n/i18n.js +8 -8
  63. package/lib/i18n/i18n.js.map +1 -1
  64. package/lib/index.js +156 -156
  65. package/lib/locale/messages-en.js +2 -2
  66. package/lib/locale/messages-nb.js +2 -2
  67. package/lib/locale/messages-nn.js +2 -2
  68. package/lib/locale/messages-se.js +2 -2
  69. package/lib/model/index.js +10 -10
  70. package/lib/utils/relativeUrl.js +2 -2
  71. package/lib/utils/relativeUrl.js.map +1 -1
  72. package/package.json +7 -7
  73. package/src/Embed/ConceptEmbed.stories.tsx +5 -2
  74. package/src/Embed/ConceptEmbed.tsx +8 -7
  75. package/src/Embed/GlossEmbed.stories.tsx +5 -2
  76. package/src/Embed/GlossEmbed.tsx +5 -4
@@ -7,7 +7,7 @@
7
7
  */
8
8
 
9
9
  import parse from "html-react-parser";
10
- import { forwardRef, useMemo, useRef } from "react";
10
+ import { forwardRef, useMemo, useRef, type ReactNode } from "react";
11
11
  import { Portal } from "@ark-ui/react";
12
12
  import { PopoverContent, PopoverRoot, PopoverTrigger } from "@ndla/primitives";
13
13
  import { styled } from "@ndla/styled-system/jsx";
@@ -26,6 +26,7 @@ interface BaseProps {
26
26
 
27
27
  interface Props extends BaseProps {
28
28
  embed: ConceptMetaData;
29
+ children?: ReactNode;
29
30
  }
30
31
 
31
32
  const StyledPopoverContent = styled(PopoverContent, {
@@ -36,7 +37,7 @@ const StyledPopoverContent = styled(PopoverContent, {
36
37
  },
37
38
  });
38
39
 
39
- export const ConceptEmbed = ({ embed, renderContext, lang, previewAlt }: Props) => {
40
+ export const ConceptEmbed = ({ embed, renderContext, lang, previewAlt, children }: Props) => {
40
41
  const parsedContent = useMemo(() => {
41
42
  if (embed.status === "error" || !embed.data.concept.content) return undefined;
42
43
  return parse(embed.data.concept.content.htmlContent);
@@ -48,7 +49,7 @@ export const ConceptEmbed = ({ embed, renderContext, lang, previewAlt }: Props)
48
49
  );
49
50
 
50
51
  if (embed.status === "error" && embed.embedData.type === "inline") {
51
- return <span>{embed.embedData.linkText}</span>;
52
+ return <span>{children}</span>;
52
53
  }
53
54
  if (embed.status === "error") {
54
55
  // TODO: This could be either concept or gloss. We don't know if it errors out. :)
@@ -66,7 +67,7 @@ export const ConceptEmbed = ({ embed, renderContext, lang, previewAlt }: Props)
66
67
  return (
67
68
  <InlineConcept
68
69
  previewAlt={previewAlt}
69
- linkText={embed.embedData.linkText}
70
+ linkContent={children}
70
71
  copyright={concept.copyright}
71
72
  visualElement={visualElement}
72
73
  lang={lang}
@@ -93,18 +94,18 @@ export const ConceptEmbed = ({ embed, renderContext, lang, previewAlt }: Props)
93
94
  };
94
95
 
95
96
  export interface InlineConceptProps extends ConceptProps, BaseProps {
96
- linkText?: string;
97
+ linkContent?: ReactNode;
97
98
  source?: string;
98
99
  }
99
100
 
100
101
  export const InlineConcept = forwardRef<HTMLSpanElement, InlineConceptProps>(
101
- ({ linkText, copyright, visualElement, previewAlt, lang, children, title, source, ...rest }, ref) => {
102
+ ({ linkContent, copyright, visualElement, previewAlt, lang, children, title, source, ...rest }, ref) => {
102
103
  const contentRef = useRef<HTMLDivElement>(null);
103
104
  return (
104
105
  <PopoverRoot initialFocusEl={() => contentRef.current}>
105
106
  {/* @ts-expect-error placing ref and rest on popover trigger somehow removes a bug where the popover target becomes a bit bigger */}
106
107
  <PopoverTrigger asChild ref={ref} {...rest}>
107
- <ConceptInlineTriggerButton>{linkText}</ConceptInlineTriggerButton>
108
+ <ConceptInlineTriggerButton>{linkContent}</ConceptInlineTriggerButton>
108
109
  </PopoverTrigger>
109
110
  <Portal>
110
111
  <StyledPopoverContent ref={contentRef}>
@@ -14,12 +14,10 @@ const glossBlockEmbedData: ConceptEmbedData = {
14
14
  contentId: "4942",
15
15
  resource: "concept",
16
16
  type: "block",
17
- linkText: "",
18
17
  };
19
18
 
20
19
  const glossInlineEmbedData: ConceptEmbedData = {
21
20
  contentId: "23",
22
- linkText: "glose",
23
21
  resource: "concept",
24
22
  type: "inline",
25
23
  };
@@ -89,6 +87,9 @@ export default {
89
87
  title: "Embeds/GlossEmbed",
90
88
  component: GlossEmbed,
91
89
  tags: ["autodocs"],
90
+ argTypes: {
91
+ children: { control: false },
92
+ },
92
93
  render: (args) => <GlossEmbed {...args} />,
93
94
  } satisfies Meta<typeof GlossEmbed>;
94
95
 
@@ -121,6 +122,7 @@ export const Inline: StoryObj<typeof GlossEmbed> = {
121
122
  embedData: glossInlineEmbedData,
122
123
  data: glossBlockData,
123
124
  },
125
+ children: "glose",
124
126
  },
125
127
  };
126
128
 
@@ -131,5 +133,6 @@ export const InlineFailed: StoryObj<typeof GlossEmbed> = {
131
133
  status: "error",
132
134
  embedData: glossInlineEmbedData,
133
135
  },
136
+ children: "glose",
134
137
  },
135
138
  };
@@ -6,7 +6,7 @@
6
6
  *
7
7
  */
8
8
 
9
- import { useRef } from "react";
9
+ import { useRef, type ReactNode } from "react";
10
10
  import { Portal } from "@ark-ui/react";
11
11
  import { Figure, PopoverContent, PopoverRoot, PopoverTrigger } from "@ndla/primitives";
12
12
  import { styled } from "@ndla/styled-system/jsx";
@@ -17,6 +17,7 @@ import { Gloss } from "../Gloss";
17
17
 
18
18
  interface Props {
19
19
  embed: ConceptMetaData;
20
+ children?: ReactNode;
20
21
  }
21
22
 
22
23
  const StyledPopoverContent = styled(PopoverContent, {
@@ -25,10 +26,10 @@ const StyledPopoverContent = styled(PopoverContent, {
25
26
  },
26
27
  });
27
28
 
28
- export const GlossEmbed = ({ embed }: Props) => {
29
+ export const GlossEmbed = ({ embed, children }: Props) => {
29
30
  const contentRef = useRef<HTMLDivElement>(null);
30
31
  if (embed.status === "error" && embed.embedData.type === "inline") {
31
- return <span>{embed.embedData.linkText}</span>;
32
+ return <span>{children}</span>;
32
33
  }
33
34
  if (embed.status === "error" || !embed.data.concept.glossData) {
34
35
  return <EmbedErrorPlaceholder type="gloss" />;
@@ -48,7 +49,7 @@ export const GlossEmbed = ({ embed }: Props) => {
48
49
  return (
49
50
  <PopoverRoot initialFocusEl={() => contentRef.current}>
50
51
  <PopoverTrigger asChild>
51
- <ConceptInlineTriggerButton>{embed.embedData.linkText}</ConceptInlineTriggerButton>
52
+ <ConceptInlineTriggerButton>{children}</ConceptInlineTriggerButton>
52
53
  </PopoverTrigger>
53
54
  <Portal>
54
55
  <StyledPopoverContent ref={contentRef}>