@vodafone_de/brix-components 9.0.4 → 10.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 (160) hide show
  1. package/dist/{BorderRadius-ClUShVLu.js → BorderRadius-2LdggXbQ.js} +2 -2
  2. package/dist/components/Accordion/index.js +1 -1
  3. package/dist/components/AccordionGroup/index.js +1 -1
  4. package/dist/components/ArtDirectedImage/index.d.ts +5 -0
  5. package/dist/components/ArtDirectedImage/index.js +75 -0
  6. package/dist/components/ArtDirectedImage/props.d.ts +24 -0
  7. package/dist/components/ArtDirectedImage/styled.d.ts +2 -0
  8. package/dist/components/ArtDirectedImage/validate.d.ts +3 -0
  9. package/dist/components/Badge/index.js +2 -3
  10. package/dist/components/Body/index.js +4 -5
  11. package/dist/components/BottomBar/index.js +4 -4
  12. package/dist/components/BottomBar/props.d.ts +1 -1
  13. package/dist/components/Button/index.js +4 -5
  14. package/dist/components/ButtonAsLink/index.js +2 -3
  15. package/dist/components/ButtonGroup/index.js +6 -6
  16. package/dist/components/ButtonGroup/props.d.ts +2 -2
  17. package/dist/components/ButtonGroup/validate.d.ts +2 -2
  18. package/dist/components/Calendar/index.js +305 -72
  19. package/dist/components/Card/index.js +3 -3
  20. package/dist/components/Carousel/index.js +6 -7
  21. package/dist/components/Checkbox/index.js +2 -2
  22. package/dist/components/CheckboxGroup/index.js +2 -2
  23. package/dist/components/Collapsible/index.js +19 -5
  24. package/dist/components/Collapsible/props.d.ts +5 -0
  25. package/dist/components/Collapsible/styled.d.ts +1 -1
  26. package/dist/components/ColorSwatch/index.js +1 -1
  27. package/dist/components/ColorSwatchGroup/index.js +2 -2
  28. package/dist/components/ConsentMessage/index.js +2 -2
  29. package/dist/components/Container/index.d.ts +1 -0
  30. package/dist/components/Container/index.js +10 -105
  31. package/dist/components/Container/styled.d.ts +2 -0
  32. package/dist/components/DateInput/index.js +1 -1
  33. package/dist/components/DemoBox/index.js +1 -1
  34. package/dist/components/Dialog/index.js +1 -1
  35. package/dist/components/DiscoveryCard/index.js +14 -11
  36. package/dist/components/DiscoveryCard/styled.d.ts +1 -1
  37. package/dist/components/DiscoveryCardGroup/index.js +12 -10
  38. package/dist/components/Divider/index.js +1 -1
  39. package/dist/components/EnergySnippet/index.js +2 -2
  40. package/dist/components/Fieldset/index.js +1 -1
  41. package/dist/components/FilterGroup/index.js +3 -3
  42. package/dist/components/Flex/index.js +5 -2
  43. package/dist/components/Flex/props.d.ts +11 -3
  44. package/dist/components/Flex/stories/alignCenterArgs.d.ts +2 -0
  45. package/dist/components/Flex/stories/alignEndArgs.d.ts +2 -0
  46. package/dist/components/Flex/stories/alignStartArgs.d.ts +2 -0
  47. package/dist/components/Flex/styled.d.ts +3 -2
  48. package/dist/components/FlexItem/index.js +1 -1
  49. package/dist/components/FootnoteContent/index.js +1 -1
  50. package/dist/components/FootnoteLink/index.js +2 -2
  51. package/dist/components/Form/index.js +2 -2
  52. package/dist/components/FormElement/index.js +1 -1
  53. package/dist/components/GoogleMap/index.js +2 -2
  54. package/dist/components/Grid/index.d.ts +3 -1
  55. package/dist/components/Grid/index.js +16 -91
  56. package/dist/components/GridItem/index.d.ts +7 -0
  57. package/dist/components/GridItem/index.js +11 -54
  58. package/dist/components/Heading/index.js +4 -5
  59. package/dist/components/HifiIcon/index.js +1 -1
  60. package/dist/components/IconButton/index.js +3 -3
  61. package/dist/components/IconSnippet/index.js +3 -3
  62. package/dist/components/IconSnippetList/index.js +2 -3
  63. package/dist/components/Image/index.js +111 -52
  64. package/dist/components/Image/props.d.ts +21 -35
  65. package/dist/components/Image/styled.d.ts +1 -1
  66. package/dist/components/Image/validate.d.ts +1 -4
  67. package/dist/components/ImageHeader/index.js +18 -25
  68. package/dist/components/ImageHeader/props.d.ts +2 -2
  69. package/dist/components/ImageHeader/styled.d.ts +1 -1
  70. package/dist/components/InfoBanner/index.js +1 -1
  71. package/dist/components/InlineIcon/index.js +1 -1
  72. package/dist/components/InlineLink/index.js +1 -1
  73. package/dist/components/Input/index.js +2 -3
  74. package/dist/components/Label/index.js +2 -3
  75. package/dist/components/Legend/index.js +1 -1
  76. package/dist/components/Link/index.js +4 -5
  77. package/dist/components/LinkAsButton/index.js +1 -2
  78. package/dist/components/LinkList/index.js +2 -3
  79. package/dist/components/LinkListItem/index.js +5 -5
  80. package/dist/components/LoadingSpinner/index.js +2 -2
  81. package/dist/components/LocalStyle/index.js +2 -2
  82. package/dist/components/MediaText/index.js +5 -6
  83. package/dist/components/Notification/index.js +3 -3
  84. package/dist/components/OpenTextFootnoteAdapter/index.js +3 -3
  85. package/dist/components/Overlay/index.js +1 -1
  86. package/dist/components/PickerGroup/index.js +8 -11
  87. package/dist/components/Price/index.d.ts +1 -1
  88. package/dist/components/Price/index.js +2 -3
  89. package/dist/components/ProductCard/index.js +29 -22
  90. package/dist/components/ProductCard/props.d.ts +11 -14
  91. package/dist/components/ProductCard/styled.d.ts +1 -0
  92. package/dist/components/QuickLinkList/index.js +3 -5
  93. package/dist/components/RadioGroup/index.js +2 -2
  94. package/dist/components/Rating/index.js +2 -2
  95. package/dist/components/RichText/index.js +1 -1
  96. package/dist/components/RichtTextContentful/index.js +2 -2
  97. package/dist/components/ScreenreaderOnly/index.js +1 -1
  98. package/dist/components/SearchInput/index.js +4 -5
  99. package/dist/components/SelectInput/index.js +3 -4
  100. package/dist/components/Stepper/index.js +3 -4
  101. package/dist/components/SuggestInput/index.js +4 -5
  102. package/dist/components/Switch/index.js +2 -2
  103. package/dist/components/TabGroup/index.js +2 -2
  104. package/dist/components/TabularPrice/index.js +2 -3
  105. package/dist/components/TextList/index.js +2 -3
  106. package/dist/components/Textarea/index.js +3 -4
  107. package/dist/components/TimeInput/index.js +1 -1
  108. package/dist/components/Tray/index.js +1 -1
  109. package/dist/components/UtilityLink/index.js +20 -2
  110. package/dist/components/UtilityLink/styled.d.ts +1 -0
  111. package/dist/components/YoutubeVideo/index.js +2 -2
  112. package/dist/contentful/components.d.ts +1 -1
  113. package/dist/contentful/live-preview-inspector/index.js +1 -1
  114. package/dist/contentful/live-preview-renderer/index.js +1 -1
  115. package/dist/contentful/map/artDirectedImage.d.ts +4 -0
  116. package/dist/contentful/renderer/index.js +1 -1
  117. package/dist/{cssVars-ZsZIfkeD.js → cssVars-TmhA1NpG.js} +1 -1
  118. package/dist/filterProps-CxkibNnG.js +18 -0
  119. package/dist/foundations/GlobalStyle/index.js +1 -1
  120. package/dist/getSizesFromGridConfig-DKOLupyb.js +48 -0
  121. package/dist/hooks/useImageComponent/index.d.ts +37 -0
  122. package/dist/hooks/useImageComponent/index.js +23 -0
  123. package/dist/hooks/usePictureComponent/index.d.ts +49 -0
  124. package/dist/hooks/usePictureComponent/index.js +38 -0
  125. package/dist/hooks/useViewport/index.js +5 -20
  126. package/dist/{index-ClAH0TNC.js → index-72IFVw5W.js} +14 -12
  127. package/dist/{index-BJHhIBYl.js → index-BsykXBqC.js} +1 -1
  128. package/dist/index-Bu-7sSif.js +201 -0
  129. package/dist/{index-DCE5HNIR.js → index-C2E3JrhF.js} +1 -1
  130. package/dist/{index-TL0X3rXH.js → index-DCXRnuHz.js} +7 -8
  131. package/dist/index-DKCzYjXw.js +25 -0
  132. package/dist/{index-C4eCcl02.js → index-DP6Nlg-a.js} +4 -5
  133. package/dist/index-DbG0QL9D.js +113 -0
  134. package/dist/{index-CEotMXpL.js → index-Dd-A7i9Y.js} +3 -4
  135. package/dist/{index-j22agtAk.js → index-DwGcrvTh.js} +4 -5
  136. package/dist/index.d.ts +4 -2
  137. package/dist/index.js +213 -212
  138. package/dist/{mapContentToComponents-C_O2rRrX.js → mapContentToComponents-DcPjYAXH.js} +155 -140
  139. package/dist/{styled-Dw5c-xwf.js → styled-BIcsESkS.js} +1 -1
  140. package/dist/{styled-7vJ7mrAA.js → styled-BKH3egch.js} +2 -2
  141. package/dist/{styled-BxkvYuWW.js → styled-CUp4EbPh.js} +23 -2
  142. package/dist/{styled-BBXC0aka.js → styled-D-fzMZNS.js} +1 -1
  143. package/dist/{styled-0KSRG-Fv.js → styled-DdeOXNN9.js} +26 -4
  144. package/dist/{styled-xKyZg4q9.js → styled-DmMk0W0J.js} +2 -2
  145. package/dist/{styled-Dq0NuP5r.js → styled-rsUoUFyl.js} +2 -2
  146. package/dist/{tags-D7CRQqc1.js → tags-Cwgg3Gx2.js} +7 -7
  147. package/dist/{validate-Dlzxlfzp.js → validate-CLBUbscx.js} +4 -6
  148. package/package.json +1 -1
  149. package/dist/Viewport-C35jx6QE.js +0 -8
  150. package/dist/components/ResponsiveImage/index.d.ts +0 -6
  151. package/dist/components/ResponsiveImage/index.js +0 -124
  152. package/dist/components/ResponsiveImage/props.d.ts +0 -16
  153. package/dist/components/ResponsiveImage/styled.d.ts +0 -4
  154. package/dist/components/ResponsiveImage/validate.d.ts +0 -3
  155. package/dist/components/ResponsiveImage/validate.test.d.ts +0 -1
  156. package/dist/contentful/map/responsiveImage.d.ts +0 -4
  157. package/dist/filterProps-BJ5SpbnA.js +0 -17
  158. package/dist/renderInlineRichTextFromOpenText-RvOG3QbI.js +0 -13
  159. package/dist/styled-BiCOjvNq.js +0 -29
  160. package/dist/validate-DYmFz2FF.js +0 -85
@@ -1,54 +1,55 @@
1
1
  import Accordion, { isAccordionProps } from "./components/Accordion/index.js";
2
2
  import AccordionGroup, { isAccordionGroupProps } from "./components/AccordionGroup/index.js";
3
- import { i as isBadgeProps, B as Badge } from "./index-j22agtAk.js";
3
+ import ArtDirectedImage from "./components/ArtDirectedImage/index.js";
4
+ import { i as isBadgeProps, B as Badge } from "./index-DwGcrvTh.js";
4
5
  import Body, { isBodyProps } from "./components/Body/index.js";
5
6
  import Button from "./components/Button/index.js";
6
- import { i as isButtonAsLinkProps, f as isButtonProps, B as ButtonAsLink } from "./validate-Dlzxlfzp.js";
7
+ import { i as isButtonAsLinkProps, f as isButtonProps, B as ButtonAsLink } from "./validate-CLBUbscx.js";
7
8
  import ButtonGroup, { isButtonGroupProps } from "./components/ButtonGroup/index.js";
8
9
  import Card, { isCardProps } from "./components/Card/index.js";
9
10
  import ConsentMessage from "./components/ConsentMessage/index.js";
10
- import Container, { isContainerProps } from "./components/Container/index.js";
11
+ import { i as isContainerProps, C as Container } from "./index-DbG0QL9D.js";
11
12
  import DiscoveryCard, { isDiscoveryCardProps } from "./components/DiscoveryCard/index.js";
12
13
  import DiscoveryCardGroup, { isDiscoveryCardGroupProps } from "./components/DiscoveryCardGroup/index.js";
13
14
  import Divider, { isDividerProps } from "./components/Divider/index.js";
14
- import Grid, { isGridProps, isGridConfig } from "./components/Grid/index.js";
15
- import GridItem, { isGridItemProps } from "./components/GridItem/index.js";
15
+ import { n as isGridProps, l as isGridConfig, a as Grid, i as isGridItemProps, G as GridItem } from "./index-Bu-7sSif.js";
16
16
  import Heading, { isHeadingProps } from "./components/Heading/index.js";
17
17
  import HifiIcon, { isHifiIconProps } from "./components/HifiIcon/index.js";
18
18
  import { a as isIconLoaderProps, I as IconLoader, b as iconNames } from "./index--RjkzZm0.js";
19
19
  import IconSnippet, { isIconSnippetProps } from "./components/IconSnippet/index.js";
20
20
  import IconSnippetList, { isIconSnippetListProps } from "./components/IconSnippetList/index.js";
21
- import Image from "./components/Image/index.js";
21
+ import Image, { isImageProps } from "./components/Image/index.js";
22
22
  import ImageHeader, { isImageHeaderProps } from "./components/ImageHeader/index.js";
23
23
  import Link, { isLinkProps } from "./components/Link/index.js";
24
- import { i as isLinkAsButtonProps, L as LinkAsButton } from "./index-CEotMXpL.js";
24
+ import { i as isLinkAsButtonProps, L as LinkAsButton } from "./index-Dd-A7i9Y.js";
25
25
  import LinkList, { linkListVariantRow, linkListVariantColumn } from "./components/LinkList/index.js";
26
- import { d as isConsentMessageProps, e as isRichTextContentfulProps, f as isYoutubeVideoProps, i as isMediaTextProps, M as MediaText } from "./index-ClAH0TNC.js";
27
- import { k as isPriceProps, P as Price } from "./index-TL0X3rXH.js";
28
- import ResponsiveImage, { isResponsiveImageProps } from "./components/ResponsiveImage/index.js";
26
+ import { d as isConsentMessageProps, e as isRichTextContentfulProps, f as isYoutubeVideoProps, i as isMediaTextProps, M as MediaText } from "./index-72IFVw5W.js";
27
+ import { k as isPriceProps, P as Price } from "./index-DCXRnuHz.js";
29
28
  import RichTextContentful from "./components/RichtTextContentful/index.js";
30
29
  import YoutubeVideo from "./components/YoutubeVideo/index.js";
31
30
  import { jsx } from "react/jsx-runtime";
32
31
  import { i as isObject, h as hasMatchingComponentName } from "./isObject-BYBrvoVW.js";
33
32
  import { useContentfulInspectorMode } from "@contentful/live-preview/react";
34
- import "./styled-7vJ7mrAA.js";
33
+ import { i as isBottomSpacing } from "./isBottomSpacing-BxfreCZU.js";
34
+ import "react";
35
35
  import "./hooks/useLinkComponent/index.js";
36
- import "html-react-parser";
36
+ import "./components/UtilityLink/index.js";
37
+ import "./hooks/useImageComponent/index.js";
37
38
  import { a as cornerRounded, c as cornerStraight } from "./CornerStyle-JEbGNArR.js";
38
- import { z as isImageProps } from "./validate-DYmFz2FF.js";
39
+ import "./styled-BKH3egch.js";
39
40
  import { linkListItemVariantVertical, linkListItemVariantHorizontal } from "./components/LinkListItem/index.js";
40
- import "./index-DCE5HNIR.js";
41
- import "./index-BJHhIBYl.js";
41
+ import "./index-C2E3JrhF.js";
42
+ import "./index-BsykXBqC.js";
42
43
  import "./NotificationErrorIcon-DMnAJgPN.js";
43
- import "react";
44
44
  import "./components/Collapsible/index.js";
45
- import "./styled-BxkvYuWW.js";
45
+ import "./hooks/usePictureComponent/index.js";
46
+ import "./styled-CUp4EbPh.js";
46
47
  import "./components/FlexItem/index.js";
47
- import "./styled-Dq0NuP5r.js";
48
+ import "./styled-rsUoUFyl.js";
49
+ import "html-react-parser";
48
50
  import "./components/InlineLink/index.js";
49
51
  import "./TableWrapper-Do9KCTGV.js";
50
- import "./index-C4eCcl02.js";
51
- import "./styled-0KSRG-Fv.js";
52
+ import "./index-DP6Nlg-a.js";
52
53
  const validateLegibleContent = (check) => {
53
54
  var _a, _b, _c, _d;
54
55
  if (null === check) {
@@ -249,6 +250,130 @@ const mapAccordionGroup = (content, isDraft = false) => {
249
250
  const Component = isDraft ? LivePreviewInspector : AccordionGroup;
250
251
  return /* @__PURE__ */ jsx(Component, { ...props, children }, props.uid);
251
252
  };
253
+ const validateArtDirectedImageProps = (props) => {
254
+ if (!isObject(props)) {
255
+ return false;
256
+ }
257
+ const artDirectedImageProps = props;
258
+ if (!hasMatchingComponentName(artDirectedImageProps.component, "ArtDirectedImage")) {
259
+ return false;
260
+ }
261
+ if (!artDirectedImageProps.image || !isImageProps(artDirectedImageProps.image)) {
262
+ return false;
263
+ }
264
+ if (artDirectedImageProps.sources !== void 0 && !isObject(artDirectedImageProps.sources)) {
265
+ return false;
266
+ }
267
+ if (artDirectedImageProps.bottomSpacing && !isBottomSpacing(artDirectedImageProps.bottomSpacing)) {
268
+ return false;
269
+ }
270
+ return true;
271
+ };
272
+ const isArtDirectedImageProps = (props) => {
273
+ return validateArtDirectedImageProps(props);
274
+ };
275
+ const mapCmsToCornerStyle = {
276
+ Straight: cornerStraight,
277
+ Rounded: cornerRounded
278
+ };
279
+ const transformCornerStyle = (cmsCornerStyle) => {
280
+ if (!cmsCornerStyle) {
281
+ return void 0;
282
+ }
283
+ if (!mapCmsToCornerStyle[cmsCornerStyle]) {
284
+ return void 0;
285
+ }
286
+ return mapCmsToCornerStyle[cmsCornerStyle];
287
+ };
288
+ const mapImageProps = (content) => {
289
+ if (!isLegibleContent(content)) {
290
+ return false;
291
+ }
292
+ if (!content.fields.imgSrc) {
293
+ return false;
294
+ }
295
+ const uid = getContentfulIdentifier(content);
296
+ const {
297
+ objectFit,
298
+ horizontalAlignment,
299
+ corners,
300
+ alt,
301
+ aspectRatio,
302
+ bottomSpacing,
303
+ ariaAttributes
304
+ } = content.fields;
305
+ const src = content.fields.imgSrc.fields.file.url;
306
+ const transformedAriaAttributes = transformAriaAttributes(ariaAttributes);
307
+ const props = {
308
+ src,
309
+ alt,
310
+ aspectRatio,
311
+ horizontalAlignment,
312
+ objectFit,
313
+ corners: transformCornerStyle(corners),
314
+ bottomSpacing: transformBottomSpacing(bottomSpacing),
315
+ component: "Image",
316
+ uid,
317
+ internal: content,
318
+ ...transformedAriaAttributes
319
+ };
320
+ removeUndefinedInPlace(props);
321
+ if (isImageProps(props)) {
322
+ return props;
323
+ }
324
+ return false;
325
+ };
326
+ const mapImage = (content, isDraft) => {
327
+ const props = mapImageProps(content);
328
+ if (false === props) {
329
+ return null;
330
+ }
331
+ const Component = isDraft ? LivePreviewInspector : Image;
332
+ return /* @__PURE__ */ jsx(Component, { ...props }, props.uid);
333
+ };
334
+ const mapArtDirectedImageProps = (content) => {
335
+ if (!isLegibleContent(content)) {
336
+ return false;
337
+ }
338
+ if (!content.fields.image) {
339
+ console.log("::error::", "image is mandatory for ArtDirectedImage");
340
+ }
341
+ if (!content.fields.sources) {
342
+ console.log("::error::", "sources is mandatory for ArtDirectedImage");
343
+ }
344
+ const uid = getContentfulIdentifier(content);
345
+ const image = mapImageProps(content.fields.image);
346
+ if (false === image) {
347
+ console.log("::error::", "image is not valid for ResponsiveImage");
348
+ return false;
349
+ }
350
+ content.fields.sourceMd;
351
+ content.fields.sourceLg;
352
+ const sources = {
353
+ /* md: sourceMd,
354
+ lg: sourceLg, */
355
+ };
356
+ const props = {
357
+ sources,
358
+ image,
359
+ component: "ArtDirectedImage",
360
+ uid,
361
+ internal: content
362
+ };
363
+ removeUndefinedInPlace(props);
364
+ if (isArtDirectedImageProps(props)) {
365
+ return props;
366
+ }
367
+ return false;
368
+ };
369
+ const mapArtDirectedImage = (content, isDraft) => {
370
+ const props = mapArtDirectedImageProps(content);
371
+ if (false === props) {
372
+ return null;
373
+ }
374
+ const Component = isDraft ? LivePreviewInspector : ArtDirectedImage;
375
+ return /* @__PURE__ */ jsx(Component, { ...props }, props.uid);
376
+ };
252
377
  const mapBadgeProps = (content) => {
253
378
  if (!isLegibleContent(content)) {
254
379
  return false;
@@ -739,67 +864,6 @@ const mapHeading = (content, isDraft) => {
739
864
  const Component = isDraft ? LivePreviewInspector : Heading;
740
865
  return /* @__PURE__ */ jsx(Component, { ...props, children }, props.uid);
741
866
  };
742
- const mapCmsToCornerStyle = {
743
- Straight: cornerStraight,
744
- Rounded: cornerRounded
745
- };
746
- const transformCornerStyle = (cmsCornerStyle) => {
747
- if (!cmsCornerStyle) {
748
- return void 0;
749
- }
750
- if (!mapCmsToCornerStyle[cmsCornerStyle]) {
751
- return void 0;
752
- }
753
- return mapCmsToCornerStyle[cmsCornerStyle];
754
- };
755
- const mapImageProps = (content) => {
756
- if (!isLegibleContent(content)) {
757
- return false;
758
- }
759
- if (!content.fields.imgSrc) {
760
- return false;
761
- }
762
- const uid = getContentfulIdentifier(content);
763
- const {
764
- objectFit,
765
- objectPosition,
766
- horizontalAlignment,
767
- corners,
768
- alt,
769
- aspectRatio,
770
- bottomSpacing,
771
- ariaAttributes
772
- } = content.fields;
773
- const src = content.fields.imgSrc.fields.file.url;
774
- const transformedAriaAttributes = transformAriaAttributes(ariaAttributes);
775
- const props = {
776
- src,
777
- alt,
778
- aspectRatio,
779
- objectPosition,
780
- horizontalAlignment,
781
- objectFit,
782
- corners: transformCornerStyle(corners),
783
- bottomSpacing: transformBottomSpacing(bottomSpacing),
784
- component: "Image",
785
- uid,
786
- internal: content,
787
- ...transformedAriaAttributes
788
- };
789
- removeUndefinedInPlace(props);
790
- if (isImageProps(props)) {
791
- return props;
792
- }
793
- return false;
794
- };
795
- const mapImage = (content, isDraft) => {
796
- const props = mapImageProps(content);
797
- if (false === props) {
798
- return null;
799
- }
800
- const Component = isDraft ? LivePreviewInspector : Image;
801
- return /* @__PURE__ */ jsx(Component, { ...props }, props.uid);
802
- };
803
867
  const mapPriceProps = (content) => {
804
868
  if (!isLegibleContent(content)) {
805
869
  return false;
@@ -1262,61 +1326,12 @@ const mapIconSnippetList = (content, isDraft = false) => {
1262
1326
  const Component = isDraft ? LivePreviewInspector : IconSnippetList;
1263
1327
  return /* @__PURE__ */ jsx(Component, { ...props, children }, props.uid);
1264
1328
  };
1265
- const mapResponsiveImageProps = (content) => {
1266
- if (!isLegibleContent(content)) {
1267
- return false;
1268
- }
1269
- if (!content.fields.imageSm) {
1270
- console.log("::error::", "imageSm is mandatory for ResponsiveImage");
1271
- }
1272
- const uid = getContentfulIdentifier(content);
1273
- const imageSm = mapImageProps(content.fields.imageSm);
1274
- const imageMd = mapImageProps(content.fields.imageMd);
1275
- const imageLg = mapImageProps(content.fields.imageLg);
1276
- const {
1277
- ariaAttributes
1278
- } = content.fields;
1279
- const transformedAriaAttributes = transformAriaAttributes(ariaAttributes);
1280
- if (false === imageSm) {
1281
- console.log("::error::", "imageSm is not valid for ResponsiveImage");
1282
- return false;
1283
- }
1284
- const images = {
1285
- sm: imageSm
1286
- };
1287
- if (false !== imageMd) {
1288
- images.md = imageMd;
1289
- }
1290
- if (false !== imageLg) {
1291
- images.lg = imageLg;
1292
- }
1293
- const props = {
1294
- images,
1295
- component: "ResponsiveImage",
1296
- uid,
1297
- internal: content,
1298
- ...transformedAriaAttributes
1299
- };
1300
- removeUndefinedInPlace(props);
1301
- if (isResponsiveImageProps(props)) {
1302
- return props;
1303
- }
1304
- return false;
1305
- };
1306
- const mapResponsiveImage = (content, isDraft) => {
1307
- const props = mapResponsiveImageProps(content);
1308
- if (false === props) {
1309
- return null;
1310
- }
1311
- const Component = isDraft ? LivePreviewInspector : ResponsiveImage;
1312
- return /* @__PURE__ */ jsx(Component, { ...props }, props.uid);
1313
- };
1314
1329
  const mapImageHeaderProps = (content) => {
1315
1330
  if (!isLegibleContent(content)) {
1316
1331
  return false;
1317
1332
  }
1318
- if (!content.fields.responsiveImage) {
1319
- console.log("::error::", "responsiveImage is mandatory for ImageHeader");
1333
+ if (!content.fields.artDirectedImage) {
1334
+ console.log("::error::", "artDirectedImage is mandatory for ImageHeader");
1320
1335
  }
1321
1336
  if (!content.fields.heading) {
1322
1337
  console.log("::error::", "heading is mandatory for ImageHeader");
@@ -1329,7 +1344,7 @@ const mapImageHeaderProps = (content) => {
1329
1344
  ariaAttributes
1330
1345
  } = content.fields;
1331
1346
  const transformedAriaAttributes = transformAriaAttributes(ariaAttributes);
1332
- const responsiveImage = mapResponsiveImageProps(content.fields.responsiveImage) || void 0;
1347
+ const artDirectedImage = mapArtDirectedImageProps(content.fields.artDirectedImage) || void 0;
1333
1348
  const badge = mapBadgeProps(content.fields.badge) || void 0;
1334
1349
  const heading = mapHeadingProps(content.fields.heading) || void 0;
1335
1350
  const subline = mapHeadingProps(content.fields.subline) || mapBodyProps(content.fields.subline) || mapRichtTextContentfulProps(content.fields.subline) || void 0;
@@ -1337,7 +1352,7 @@ const mapImageHeaderProps = (content) => {
1337
1352
  const price = mapPriceProps(content.fields.price) || void 0;
1338
1353
  const contentGridDesktopColumns = parseInt(content.fields.contentGridDesktopColumns, 10) || void 0;
1339
1354
  const props = {
1340
- responsiveImage,
1355
+ artDirectedImage,
1341
1356
  badge,
1342
1357
  heading,
1343
1358
  subline,
@@ -1810,7 +1825,7 @@ const mapGridItem = (content, isDraft = false) => {
1810
1825
  const Component = isDraft ? LivePreviewInspector : GridItem;
1811
1826
  return /* @__PURE__ */ jsx(Component, { ...props, children }, props.uid);
1812
1827
  };
1813
- const supportedComponents = ["Accordion", "AccordionGroup", "Badge", "Body", "Button", "ButtonGroup", "ButtonAsLink", "Card", "Container", "ConsentMessage", "DiscoveryCard", "DiscoveryCardGroup", "Divider", "Grid", "GridItem", "Heading", "HifiIcon", "Link", "LinkAsButton", "LinkList", "IconSnippet", "IconSnippetList", "Image", "ImageHeader", "IconLoader", "Price", "MediaText", "ResponsiveImage", "RichTextContentful", "YoutubeVideo"];
1828
+ const supportedComponents = ["Accordion", "AccordionGroup", "Badge", "Body", "Button", "ButtonGroup", "ButtonAsLink", "Card", "Container", "ConsentMessage", "DiscoveryCard", "DiscoveryCardGroup", "Divider", "Grid", "GridItem", "Heading", "HifiIcon", "Link", "LinkAsButton", "LinkList", "IconSnippet", "IconSnippetList", "Image", "ImageHeader", "IconLoader", "Price", "MediaText", "ArtDirectedImage", "RichTextContentful", "YoutubeVideo"];
1814
1829
  const componentsFeatures = {
1815
1830
  Accordion: {
1816
1831
  component: Accordion,
@@ -2028,12 +2043,12 @@ const componentsFeatures = {
2028
2043
  propsMap: mapMediaTextProps,
2029
2044
  mapChildren: false
2030
2045
  },
2031
- ResponsiveImage: {
2032
- component: ResponsiveImage,
2046
+ ArtDirectedImage: {
2047
+ component: ArtDirectedImage,
2033
2048
  inspectorField: "cmsTitle",
2034
- contentModel: "responsiveImage",
2035
- contentMapper: mapResponsiveImage,
2036
- propsMap: mapResponsiveImageProps,
2049
+ contentModel: "artDirectedImage",
2050
+ contentMapper: mapArtDirectedImage,
2051
+ propsMap: mapArtDirectedImageProps,
2037
2052
  mapChildren: false
2038
2053
  },
2039
2054
  RichTextContentful: {
@@ -6,7 +6,7 @@ import { getTextColor } from "./foundations/token/getTextColor/index.js";
6
6
  import { f as colorBorderWarning } from "./BorderColor-BummoQ1-.js";
7
7
  import { b as spacingSm, s as spacingMd } from "./Spacing-8v6hcO2x.js";
8
8
  import { a as colorTextNeutral } from "./TextColor-BXVMXUVE.js";
9
- import { a as filterProps } from "./filterProps-BJ5SpbnA.js";
9
+ import { a as filterProps } from "./filterProps-CxkibNnG.js";
10
10
  const DemoBoxStyled = styled.div.withConfig({
11
11
  shouldForwardProp: filterProps(),
12
12
  displayName: "DemoBoxStyled",
@@ -8,12 +8,12 @@ import { getBottomSpacing } from "./foundations/token/getBottomSpacing/index.js"
8
8
  import { getFontWeight } from "./foundations/token/getFontWeight/index.js";
9
9
  import { getOpacity } from "./foundations/token/getOpacity/index.js";
10
10
  import { getSpacing } from "./foundations/token/getSpacing/index.js";
11
- import { b as borderRadiusMd } from "./BorderRadius-ClUShVLu.js";
11
+ import { b as borderRadiusMd } from "./BorderRadius-2LdggXbQ.js";
12
12
  import { a as fontWeightRegular } from "./FontWeight-DEBGHbtO.js";
13
13
  import { a as opacityDisabled } from "./Opacity-smkGiwsf.js";
14
14
  import { a as spacingXs, e as spacingXl, c as spacingNone, s as spacingMd } from "./Spacing-8v6hcO2x.js";
15
15
  import { t as textBodyMd } from "./TextBodySize-BcZR9mh2.js";
16
- import { a as filterProps } from "./filterProps-BJ5SpbnA.js";
16
+ import { a as filterProps } from "./filterProps-CxkibNnG.js";
17
17
  const leftPosition = "left";
18
18
  const rightPosition = "right";
19
19
  const primaryAppearance = "primary";
@@ -2,13 +2,16 @@ import styled from "styled-components";
2
2
  import { getBottomSpacing } from "./foundations/token/getBottomSpacing/index.js";
3
3
  import { getSpacing } from "./foundations/token/getSpacing/index.js";
4
4
  import { s as spacingMd, c as spacingNone } from "./Spacing-8v6hcO2x.js";
5
- import { a as filterProps } from "./filterProps-BJ5SpbnA.js";
5
+ import { a as filterProps } from "./filterProps-CxkibNnG.js";
6
6
  const flexOrientationHorizontal = "horizontal";
7
7
  const flexOrientationVertical = "vertical";
8
8
  const flexJustifyStart = "start";
9
9
  const flexJustifyEnd = "end";
10
10
  const flexJustifyCenter = "center";
11
11
  const flexJustifyBetween = "between";
12
+ const flexAlignStart = "start";
13
+ const flexAlignEnd = "end";
14
+ const flexAlignCenter = "center";
12
15
  const translateToJustifyContent = (justify) => {
13
16
  if (!justify) {
14
17
  return;
@@ -21,6 +24,17 @@ const translateToJustifyContent = (justify) => {
21
24
  };
22
25
  return justifyValues[justify];
23
26
  };
27
+ const translateToAlignItems = (alignItems) => {
28
+ if (!alignItems) {
29
+ return;
30
+ }
31
+ const alignValues = {
32
+ [flexAlignEnd]: "flex-end",
33
+ [flexAlignCenter]: "center",
34
+ [flexAlignStart]: "flex-start"
35
+ };
36
+ return alignValues[alignItems];
37
+ };
24
38
  const FlexStyled = styled.div.withConfig({
25
39
  shouldForwardProp: filterProps(),
26
40
  displayName: "FlexStyled",
@@ -47,6 +61,10 @@ const FlexStyled = styled.div.withConfig({
47
61
  justify = flexJustifyStart
48
62
  }) => ({
49
63
  justifyContent: translateToJustifyContent(justify)
64
+ }), ({
65
+ alignItems = flexAlignStart
66
+ }) => ({
67
+ alignItems: translateToAlignItems(alignItems)
50
68
  }), ({
51
69
  gapSpacing = spacingMd
52
70
  }) => {
@@ -67,5 +85,8 @@ export {
67
85
  flexJustifyEnd as c,
68
86
  flexJustifyCenter as d,
69
87
  flexJustifyBetween as e,
70
- flexOrientationHorizontal as f
88
+ flexOrientationHorizontal as f,
89
+ flexAlignStart as g,
90
+ flexAlignEnd as h,
91
+ flexAlignCenter as i
71
92
  };
@@ -14,7 +14,7 @@ import { b as colorBackgroundOverlay } from "./BackgroundColor-e0N9tdDR.js";
14
14
  import { o as opacityOverlay } from "./Opacity-smkGiwsf.js";
15
15
  import { l as largeSize } from "./SizeTypes-Ck_RdzIf.js";
16
16
  import { c as spacingNone } from "./Spacing-8v6hcO2x.js";
17
- import { a as filterProps } from "./filterProps-BJ5SpbnA.js";
17
+ import { a as filterProps } from "./filterProps-CxkibNnG.js";
18
18
  const loadingSpinnerOverlays = {
19
19
  Light: `rgba(255, 255, 255, ${getOpacity(opacityOverlay)})`,
20
20
  Dark: `rgba(38, 38, 38, ${getOpacity(opacityOverlay)})`
@@ -1,11 +1,11 @@
1
1
  import styled from "styled-components";
2
- import { a as CardStyled } from "./styled-Dq0NuP5r.js";
3
- import { D as DemoBoxStyled } from "./styled-Dw5c-xwf.js";
2
+ import { a as CardStyled } from "./styled-rsUoUFyl.js";
3
+ import { D as DemoBoxStyled } from "./styled-BIcsESkS.js";
4
4
  import viewport from "./foundations/media-query/viewport/index.js";
5
5
  import { getSpacing } from "./foundations/token/getSpacing/index.js";
6
6
  import { s as spacingMd } from "./Spacing-8v6hcO2x.js";
7
7
  import { getBottomSpacing } from "./foundations/token/getBottomSpacing/index.js";
8
- import { a as filterProps } from "./filterProps-BJ5SpbnA.js";
8
+ import { a as filterProps } from "./filterProps-CxkibNnG.js";
9
9
  const getColumnWidth = ({
10
10
  sm,
11
11
  md,
@@ -128,6 +128,28 @@ const GridItemStyled = styled.div.withConfig({
128
128
  }), ({
129
129
  align
130
130
  }) => getCardAlignment(align), getBottomSpacing);
131
+ const GridStyled = styled.div.withConfig({
132
+ shouldForwardProp: filterProps(),
133
+ displayName: "GridStyled",
134
+ componentId: "sc-1ydkxh9-0"
135
+ })({
136
+ boxSizing: "border-box",
137
+ display: "flex",
138
+ flexWrap: "wrap"
139
+ }, ({
140
+ align = "left"
141
+ }) => ({
142
+ justifyContent: align
143
+ }), ({
144
+ stretch = false
145
+ }) => ({
146
+ alignItems: stretch ? "stretch" : "flex-start"
147
+ }), ({
148
+ spacing = spacingMd
149
+ }) => ({
150
+ gap: getSpacing(spacing)
151
+ }), getBottomSpacing);
131
152
  export {
132
- GridItemStyled as G
153
+ GridItemStyled as G,
154
+ GridStyled as a
133
155
  };
@@ -10,11 +10,11 @@ import { getSpacing } from "./foundations/token/getSpacing/index.js";
10
10
  import { getTextColor } from "./foundations/token/getTextColor/index.js";
11
11
  import { c as colorBackgroundNeutral, a as colorBackgroundSubtle } from "./BackgroundColor-e0N9tdDR.js";
12
12
  import { c as colorBorderFocus, a as colorBorderNeutral, b as colorBorderUnselected, d as colorBorderSuccess, e as colorBorderCritical } from "./BorderColor-BummoQ1-.js";
13
- import { b as borderRadiusMd } from "./BorderRadius-ClUShVLu.js";
13
+ import { b as borderRadiusMd } from "./BorderRadius-2LdggXbQ.js";
14
14
  import { b as borderWidthUnselected } from "./BorderWidth-BjXpOdM5.js";
15
15
  import { b as spacingSm, a as spacingXs } from "./Spacing-8v6hcO2x.js";
16
16
  import { c as colorTextPlaceholder, a as colorTextNeutral } from "./TextColor-BXVMXUVE.js";
17
- import { a as filterProps } from "./filterProps-BJ5SpbnA.js";
17
+ import { a as filterProps } from "./filterProps-CxkibNnG.js";
18
18
  const InputWrapperStyled = styled.div.withConfig({
19
19
  shouldForwardProp: filterProps(["readOnly"]),
20
20
  displayName: "InputWrapperStyled",
@@ -6,10 +6,10 @@ import { getBorderRadius } from "./foundations/token/getBorderRadius/index.js";
6
6
  import { getBottomSpacing } from "./foundations/token/getBottomSpacing/index.js";
7
7
  import { getSpacing } from "./foundations/token/getSpacing/index.js";
8
8
  import { getTextColor } from "./foundations/token/getTextColor/index.js";
9
- import { b as borderRadiusMd } from "./BorderRadius-ClUShVLu.js";
9
+ import { b as borderRadiusMd } from "./BorderRadius-2LdggXbQ.js";
10
10
  import { s as spacingMd } from "./Spacing-8v6hcO2x.js";
11
11
  import { a as colorTextNeutral } from "./TextColor-BXVMXUVE.js";
12
- import { a as filterProps } from "./filterProps-BJ5SpbnA.js";
12
+ import { a as filterProps } from "./filterProps-CxkibNnG.js";
13
13
  import { g as getCssVar } from "./getCssVar-BP6T9pFM.js";
14
14
  import { e as colorBackgroundBrandGradient, c as colorBackgroundNeutral } from "./BackgroundColor-e0N9tdDR.js";
15
15
  const CardAppearanceColor = {
@@ -19,8 +19,8 @@ const asideTagName = "aside";
19
19
  const navTagName = "nav";
20
20
  const mainTagName = "main";
21
21
  export {
22
- asideTagName as a,
23
- articleTagName as b,
22
+ articleTagName as a,
23
+ asideTagName as b,
24
24
  spanTagName as c,
25
25
  divTagName as d,
26
26
  headingHtmlTags as e,
@@ -31,12 +31,12 @@ export {
31
31
  h4TagName as j,
32
32
  h2TagName as k,
33
33
  liTagName as l,
34
- mainTagName as m,
35
- navTagName as n,
34
+ h1TagName as m,
35
+ h6TagName as n,
36
36
  olTagName as o,
37
- h1TagName as p,
38
- h6TagName as q,
39
- pTagName as r,
37
+ pTagName as p,
38
+ navTagName as q,
39
+ mainTagName as r,
40
40
  sectionTagName as s,
41
41
  ulTagName as u
42
42
  };
@@ -1,9 +1,8 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { i as iconSizeSm } from "./IconSize-AJp7xdJi.js";
3
- import { a as ButtonIconStyled, l as leftPosition, b as buttonHeight, p as primaryAppearance, s as secondaryAppearance, t as tertiaryAppearance, r as rightPosition } from "./styled-7vJ7mrAA.js";
3
+ import { a as ButtonIconStyled, l as leftPosition, b as buttonHeight, p as primaryAppearance, s as secondaryAppearance, t as tertiaryAppearance, r as rightPosition } from "./styled-BKH3egch.js";
4
4
  import { useLinkComponent } from "./hooks/useLinkComponent/index.js";
5
- import { a as filterProps, f as filterPropsForUnstyledComponent } from "./filterProps-BJ5SpbnA.js";
6
- import { r as renderInlineRichTextFromOpenText } from "./renderInlineRichTextFromOpenText-RvOG3QbI.js";
5
+ import { a as filterProps, f as filterPropsForUnstyledComponent } from "./filterProps-CxkibNnG.js";
7
6
  import { s as sanitizeLinkProps } from "./sanitizeLinkProps-D2Kkovy1.js";
8
7
  import styled from "styled-components";
9
8
  import { g as getButtonAppearance } from "./ButtonAppearanceHelper-DBCLijF0.js";
@@ -13,11 +12,10 @@ import { getBorderRadius } from "./foundations/token/getBorderRadius/index.js";
13
12
  import { getBottomSpacing } from "./foundations/token/getBottomSpacing/index.js";
14
13
  import { getFontWeight } from "./foundations/token/getFontWeight/index.js";
15
14
  import { getSpacing } from "./foundations/token/getSpacing/index.js";
16
- import { b as borderRadiusMd } from "./BorderRadius-ClUShVLu.js";
15
+ import { b as borderRadiusMd } from "./BorderRadius-2LdggXbQ.js";
17
16
  import { a as fontWeightRegular } from "./FontWeight-DEBGHbtO.js";
18
17
  import { c as spacingNone, a as spacingXs, e as spacingXl, s as spacingMd } from "./Spacing-8v6hcO2x.js";
19
18
  import { t as textBodyMd } from "./TextBodySize-BcZR9mh2.js";
20
- import "html-react-parser";
21
19
  import { i as isObject, h as hasMatchingComponentName } from "./isObject-BYBrvoVW.js";
22
20
  import { i as isBottomSpacing } from "./isBottomSpacing-BxfreCZU.js";
23
21
  import { b as iconNames } from "./index--RjkzZm0.js";
@@ -109,7 +107,7 @@ const isButtonAsLinkProps = (props) => {
109
107
  const ButtonAsLink = (props) => {
110
108
  const LinkComponent = useLinkComponent();
111
109
  return /* @__PURE__ */ jsx(ButtonAsLinkStyled, { ...props, children: /* @__PURE__ */ jsxs(LinkComponent, { ...sanitizeLinkProps(filterPropsForUnstyledComponent(props)), children: [
112
- renderInlineRichTextFromOpenText(props.children),
110
+ props.children,
113
111
  getButtonIcon(props == null ? void 0 : props.icon)
114
112
  ] }) });
115
113
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vodafone_de/brix-components",
3
3
  "description": "Brix is the digital design system for vodafone.de",
4
- "version": "9.0.4",
4
+ "version": "10.0.0",
5
5
  "exports": {
6
6
  "./package.json": "./package.json",
7
7
  ".": {
@@ -1,8 +0,0 @@
1
- const viewportSm = "sm";
2
- const viewportMd = "md";
3
- const viewportLg = "lg";
4
- export {
5
- viewportLg as a,
6
- viewportMd as b,
7
- viewportSm as v
8
- };
@@ -1,6 +0,0 @@
1
- import { FC } from 'react';
2
- import { ResponsiveImageProps } from './props';
3
- declare const ResponsiveImage: FC<ResponsiveImageProps>;
4
- export default ResponsiveImage;
5
- export * from './props';
6
- export * from './validate';