@vodafone_de/brix-components 10.0.0 → 10.0.2

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 (61) hide show
  1. package/dist/components/Accordion/index.js +1 -1
  2. package/dist/components/Badge/index.js +1 -1
  3. package/dist/components/Button/index.js +3 -3
  4. package/dist/components/ButtonAsLink/index.js +1 -1
  5. package/dist/components/ButtonGroup/index.js +2 -2
  6. package/dist/components/CheckboxGroup/index.js +1 -1
  7. package/dist/components/ColorSwatchGroup/index.js +1 -1
  8. package/dist/components/ConsentMessage/index.js +2 -2
  9. package/dist/components/DiscoveryCard/index.js +5 -6
  10. package/dist/components/DiscoveryCardGroup/index.js +4 -4
  11. package/dist/components/EnergySnippet/index.js +1 -1
  12. package/dist/components/FeatureCardGroup/components/FeatureCard/index.d.ts +5 -0
  13. package/dist/components/FeatureCardGroup/components/FeatureCard/props.d.ts +55 -0
  14. package/dist/components/FeatureCardGroup/components/FeatureCard/styled.d.ts +4 -0
  15. package/dist/components/FeatureCardGroup/index.d.ts +5 -0
  16. package/dist/components/FeatureCardGroup/index.js +119 -0
  17. package/dist/components/FeatureCardGroup/props.d.ts +31 -0
  18. package/dist/components/FeatureCardGroup/styled.d.ts +2 -0
  19. package/dist/components/FilterGroup/index.js +1 -1
  20. package/dist/components/Flex/index.js +2 -2
  21. package/dist/components/Form/index.js +1 -1
  22. package/dist/components/FormHelperStatusIcon/index.js +1 -1
  23. package/dist/components/Icon/index.js +1 -1
  24. package/dist/components/IconButton/index.js +2 -2
  25. package/dist/components/IconLoader/index.js +2 -1
  26. package/dist/components/IconSnippet/index.js +2 -2
  27. package/dist/components/Image/index.js +2 -2
  28. package/dist/components/ImageHeader/index.js +3 -3
  29. package/dist/components/Legend/index.js +1 -1
  30. package/dist/components/Link/index.js +3 -3
  31. package/dist/components/LinkAsButton/index.js +1 -1
  32. package/dist/components/LinkListItem/index.js +2 -2
  33. package/dist/components/MediaText/index.js +3 -3
  34. package/dist/components/Notification/index.js +2 -2
  35. package/dist/components/OpenTextFootnoteAdapter/index.js +1 -1
  36. package/dist/components/PickerGroup/index.js +2 -2
  37. package/dist/components/ProductCard/index.js +3 -3
  38. package/dist/components/RichText/index.js +1 -1
  39. package/dist/components/RichtTextContentful/index.js +1 -1
  40. package/dist/components/SearchInput/index.js +1 -1
  41. package/dist/components/SuggestInput/index.js +1 -1
  42. package/dist/components/Switch/index.js +1 -1
  43. package/dist/components/TabGroup/index.js +1 -1
  44. package/dist/components/TextList/index.js +1 -1
  45. package/dist/components/Tray/index.js +1 -1
  46. package/dist/components/UtilityLink/index.d.ts +1 -0
  47. package/dist/contentful/live-preview-inspector/index.js +1 -1
  48. package/dist/contentful/live-preview-renderer/index.js +1 -1
  49. package/dist/contentful/renderer/index.js +1 -1
  50. package/dist/{index--RjkzZm0.js → index-B3v10poy.js} +7 -2
  51. package/dist/{index-DP6Nlg-a.js → index-BXt1ptbH.js} +14 -13
  52. package/dist/{index-72IFVw5W.js → index-CflWbzuv.js} +4 -4
  53. package/dist/{index-Dd-A7i9Y.js → index-r-dbrZxA.js} +2 -2
  54. package/dist/{index-DwGcrvTh.js → index-sJClnrzW.js} +1 -1
  55. package/dist/index.d.ts +2 -0
  56. package/dist/index.js +56 -54
  57. package/dist/{mapContentToComponents-DcPjYAXH.js → mapContentToComponents-D215P4kM.js} +8 -8
  58. package/dist/{styled-CUp4EbPh.js → styled-BY19C9EO.js} +1 -1
  59. package/dist/{styled-BKH3egch.js → styled-CepQAcdi.js} +1 -1
  60. package/dist/{validate-CLBUbscx.js → validate-BxqNSkch.js} +2 -2
  61. package/package.json +1 -1
@@ -2,7 +2,7 @@
2
2
  import { jsxs, jsx } from "react/jsx-runtime";
3
3
  import { useRef, useState, useEffect } from "react";
4
4
  import Collapsible from "../Collapsible/index.js";
5
- import { b as iconNames, I as IconLoader } from "../../index--RjkzZm0.js";
5
+ import { b as iconNames, I as IconLoader } from "../../index-B3v10poy.js";
6
6
  import { c as iconSizeMd } from "../../IconSize-AJp7xdJi.js";
7
7
  import { bf as ChevronDownIcon } from "../../_5gPlusIcon-CnxmOo1u.js";
8
8
  import styled from "styled-components";
@@ -4,7 +4,7 @@ import "../../index-BsykXBqC.js";
4
4
  import "../../IconSize-AJp7xdJi.js";
5
5
  import "../../SizeTypes-Ck_RdzIf.js";
6
6
  import "../../Spacing-8v6hcO2x.js";
7
- import { b, c, d, B, i, p, s, a, t, v } from "../../index-DwGcrvTh.js";
7
+ import { b, c, d, B, i, p, s, a, t, v } from "../../index-sJClnrzW.js";
8
8
  export {
9
9
  b as BadgeAppearanceColor,
10
10
  c as badgeAppearances,
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import { B as ButtonAsLink, g as getButtonIcon } from "../../validate-CLBUbscx.js";
4
- import { c, a, b, d, f, e } from "../../validate-CLBUbscx.js";
5
- import { B as ButtonStyled } from "../../styled-BKH3egch.js";
3
+ import { B as ButtonAsLink, g as getButtonIcon } from "../../validate-BxqNSkch.js";
4
+ import { c, a, b, d, f, e } from "../../validate-BxqNSkch.js";
5
+ import { B as ButtonStyled } from "../../styled-CepQAcdi.js";
6
6
  const isButtonAsLinkProp = (props) => {
7
7
  return props.href !== void 0;
8
8
  };
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import "react/jsx-runtime";
3
- import { B, i, v } from "../../validate-CLBUbscx.js";
3
+ import { B, i, v } from "../../validate-BxqNSkch.js";
4
4
  import "../../hooks/useLinkComponent/index.js";
5
5
  import "../../filterProps-CxkibNnG.js";
6
6
  import "../../sanitizeLinkProps-D2Kkovy1.js";
@@ -2,11 +2,11 @@
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import Button from "../Button/index.js";
4
4
  import Flex from "../Flex/index.js";
5
- import { b as flexJustifyStart, c as flexJustifyEnd, d as flexJustifyCenter, e as flexJustifyBetween, f as flexOrientationHorizontal, a as flexOrientationVertical } from "../../styled-CUp4EbPh.js";
5
+ import { b as flexJustifyStart, c as flexJustifyEnd, d as flexJustifyCenter, e as flexJustifyBetween, f as flexOrientationHorizontal, a as flexOrientationVertical } from "../../styled-BY19C9EO.js";
6
6
  import FlexItem from "../FlexItem/index.js";
7
7
  import { b as spacingSm, s as spacingMd } from "../../Spacing-8v6hcO2x.js";
8
8
  import { u as useViewport } from "../../index-DKCzYjXw.js";
9
- import { e as validateButtonProps, v as validateButtonAsLinkProps } from "../../validate-CLBUbscx.js";
9
+ import { e as validateButtonProps, v as validateButtonAsLinkProps } from "../../validate-BxqNSkch.js";
10
10
  import { i as isObject, h as hasMatchingComponentName } from "../../isObject-BYBrvoVW.js";
11
11
  import { i as isBottomSpacing } from "../../isBottomSpacing-BxfreCZU.js";
12
12
  const flexJustifyBehaviours = [flexJustifyStart, flexJustifyEnd, flexJustifyCenter, flexJustifyBetween];
@@ -5,7 +5,7 @@ import Checkbox from "../Checkbox/index.js";
5
5
  import Fieldset from "../Fieldset/index.js";
6
6
  import { g as spacingLg, s as spacingMd, c as spacingNone } from "../../Spacing-8v6hcO2x.js";
7
7
  import styled from "styled-components";
8
- import { F as FlexStyled } from "../../styled-CUp4EbPh.js";
8
+ import { F as FlexStyled } from "../../styled-BY19C9EO.js";
9
9
  import { getBottomSpacing } from "../../foundations/token/getBottomSpacing/index.js";
10
10
  import { getSpacing } from "../../foundations/token/getSpacing/index.js";
11
11
  import { a as filterProps } from "../../filterProps-CxkibNnG.js";
@@ -3,7 +3,7 @@ import { jsx } from "react/jsx-runtime";
3
3
  import ColorSwatch, { colorSwatchSizeSmall, colorSwatchSizes } from "../ColorSwatch/index.js";
4
4
  import { s as spacingMd, f as spacing2Xs } from "../../Spacing-8v6hcO2x.js";
5
5
  import styled from "styled-components";
6
- import { F as FlexStyled } from "../../styled-CUp4EbPh.js";
6
+ import { F as FlexStyled } from "../../styled-BY19C9EO.js";
7
7
  import { getBottomSpacing } from "../../foundations/token/getBottomSpacing/index.js";
8
8
  import { c as iconSizeMd } from "../../IconSize-AJp7xdJi.js";
9
9
  import { a as filterProps } from "../../filterProps-CxkibNnG.js";
@@ -3,9 +3,9 @@ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
3
3
  import { useState, useEffect } from "react";
4
4
  import Body, { bodyAlignCenter } from "../Body/index.js";
5
5
  import Button from "../Button/index.js";
6
- import { a as buttonAutoWidth } from "../../validate-CLBUbscx.js";
6
+ import { a as buttonAutoWidth } from "../../validate-BxqNSkch.js";
7
7
  import styled from "styled-components";
8
- import { B as ButtonStyled, t as tertiaryAppearance } from "../../styled-BKH3egch.js";
8
+ import { B as ButtonStyled, t as tertiaryAppearance } from "../../styled-CepQAcdi.js";
9
9
  import viewport from "../../foundations/media-query/viewport/index.js";
10
10
  import { getBackgroundColor } from "../../foundations/token/getBackgroundColor/index.js";
11
11
  import { getSpacing } from "../../foundations/token/getSpacing/index.js";
@@ -1,20 +1,20 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { Fragment } from "react";
4
- import { e as BadgeStyled, i as isBadgeProps, B as Badge } from "../../index-DwGcrvTh.js";
4
+ import { e as BadgeStyled, i as isBadgeProps, B as Badge } from "../../index-sJClnrzW.js";
5
5
  import Body, { isBodyProps, bodyAlignLeft, bodyAlignCenter } from "../Body/index.js";
6
6
  import Heading, { isHeadingProps } from "../Heading/index.js";
7
7
  import Link, { isLinkProps } from "../Link/index.js";
8
8
  import { k as isPriceProps, b as priceSizeSm, P as Price, f as priceAlignLeft, g as priceAlignCenter, a as priceOrientationVertical } from "../../index-DCXRnuHz.js";
9
- import { R as RichText } from "../../index-DP6Nlg-a.js";
9
+ import { R as RichText } from "../../index-BXt1ptbH.js";
10
10
  import { f as fontWeightBold } from "../../FontWeight-DEBGHbtO.js";
11
11
  import { b as textHeadingSm } from "../../HeadingSize-CfCRn3Lh.js";
12
12
  import { s as smallSize } from "../../SizeTypes-Ck_RdzIf.js";
13
13
  import { s as spacingMd, c as spacingNone, a as spacingXs, b as spacingSm } from "../../Spacing-8v6hcO2x.js";
14
14
  import "../../index-C2E3JrhF.js";
15
15
  import "../../index-BsykXBqC.js";
16
- import "../../styled-BKH3egch.js";
17
- import { a as LinkStyled } from "../../index-Dd-A7i9Y.js";
16
+ import "../../styled-CepQAcdi.js";
17
+ import { a as LinkStyled } from "../../index-r-dbrZxA.js";
18
18
  import "../../hooks/useLinkComponent/index.js";
19
19
  import "html-react-parser";
20
20
  import "../InlineLink/index.js";
@@ -25,7 +25,6 @@ import Image, { aspectRatio16_9, aspectRatio1_1, isImageProps } from "../Image/i
25
25
  import { getBottomSpacing } from "../../foundations/token/getBottomSpacing/index.js";
26
26
  import { getSpacing } from "../../foundations/token/getSpacing/index.js";
27
27
  import { a as filterProps } from "../../filterProps-CxkibNnG.js";
28
- import { a as cornerRounded } from "../../CornerStyle-JEbGNArR.js";
29
28
  import "../../index-DbG0QL9D.js";
30
29
  import "../../index-Bu-7sSif.js";
31
30
  import "../UtilityLink/index.js";
@@ -110,7 +109,7 @@ const DiscoveryCardLinkedImage = ({
110
109
  },
111
110
  orientation = discoveryCardOrientationVertical,
112
111
  bottomSpacing
113
- }) => /* @__PURE__ */ jsx(DiscoveryCardImageLinkStyled, { ...linkProps, tabIndex: -1, "aria-describedby": `headingId-${uid}`, orientation, bottomSpacing, children: /* @__PURE__ */ jsx(Image, { ...image, aspectRatio: orientation === discoveryCardOrientationVertical ? aspectRatio16_9 : aspectRatio1_1, corners: cornerRounded }) });
112
+ }) => /* @__PURE__ */ jsx(DiscoveryCardImageLinkStyled, { ...linkProps, tabIndex: -1, "aria-describedby": `headingId-${uid}`, orientation, bottomSpacing, children: /* @__PURE__ */ jsx(Image, { ...image, aspectRatio: orientation === discoveryCardOrientationVertical ? aspectRatio16_9 : aspectRatio1_1, roundedCorners: true, bottomSpacing: spacingNone }) });
114
113
  const validateDiscoveryCardProps = (props) => {
115
114
  if (!isObject(props)) {
116
115
  return false;
@@ -3,23 +3,23 @@ import { jsxs, jsx } from "react/jsx-runtime";
3
3
  import styled from "styled-components";
4
4
  import DiscoveryCard, { discoveryCardOrientationVertical, validateDiscoveryCardProps, discoveryCardOrientationHorizontal } from "../DiscoveryCard/index.js";
5
5
  import { a as Grid, G as GridItem } from "../../index-Bu-7sSif.js";
6
- import { a as LinkStyled } from "../../index-Dd-A7i9Y.js";
6
+ import { a as LinkStyled } from "../../index-r-dbrZxA.js";
7
7
  import { getSpacing } from "../../foundations/token/getSpacing/index.js";
8
8
  import { s as spacingMd } from "../../Spacing-8v6hcO2x.js";
9
9
  import "react";
10
10
  import "../../index-C2E3JrhF.js";
11
11
  import "../../index-BsykXBqC.js";
12
- import "../../index-DwGcrvTh.js";
12
+ import "../../index-sJClnrzW.js";
13
13
  import { i as isObject, h as hasMatchingComponentName } from "../../isObject-BYBrvoVW.js";
14
14
  import "../Body/index.js";
15
15
  import "../Heading/index.js";
16
- import "../../styled-BKH3egch.js";
16
+ import "../../styled-CepQAcdi.js";
17
17
  import "../../hooks/useLinkComponent/index.js";
18
18
  import "../../index-DCXRnuHz.js";
19
19
  import "html-react-parser";
20
20
  import "../InlineLink/index.js";
21
21
  import "../../TableWrapper-Do9KCTGV.js";
22
- import "../../index-DP6Nlg-a.js";
22
+ import "../../index-BXt1ptbH.js";
23
23
  import "../../index-DbG0QL9D.js";
24
24
  import "../UtilityLink/index.js";
25
25
  import "../../hooks/useImageComponent/index.js";
@@ -4,7 +4,7 @@ import Link from "../Link/index.js";
4
4
  import styled from "styled-components";
5
5
  import viewport from "../../foundations/media-query/viewport/index.js";
6
6
  import { a as filterProps } from "../../filterProps-CxkibNnG.js";
7
- import { F as FlexStyled } from "../../styled-CUp4EbPh.js";
7
+ import { F as FlexStyled } from "../../styled-BY19C9EO.js";
8
8
  import UtilityLink from "../UtilityLink/index.js";
9
9
  const letterPathMapping = {
10
10
  A: "M46.99,29.398c0.118,0.365 0.186,0.649 0.22,0.86c0.025,0.211 -0.009,0.365 -0.118,0.47c-0.11,0.106 -0.296,0.171 -0.566,0.195c-0.269,0.024 -0.64,0.04 -1.113,0.04c-0.472,0 -0.877,0 -1.147,-0.024c-0.27,-0.024 -0.489,-0.049 -0.633,-0.089c-0.143,-0.049 -0.244,-0.106 -0.303,-0.187c-0.059,-0.081 -0.11,-0.186 -0.143,-0.316l-1.257,-3.916l-7.035,-0l-1.189,3.811c-0.042,0.138 -0.092,0.259 -0.151,0.357c-0.06,0.097 -0.161,0.17 -0.304,0.227c-0.143,0.056 -0.337,0.089 -0.591,0.113c-0.253,0.016 -0.59,0.033 -1.003,0.033c-0.447,-0 -0.793,-0.017 -1.046,-0.049c-0.253,-0.033 -0.422,-0.106 -0.523,-0.219c-0.093,-0.114 -0.126,-0.276 -0.101,-0.487c0.025,-0.21 0.101,-0.494 0.219,-0.843l5.778,-17.28c0.059,-0.17 0.126,-0.308 0.202,-0.413c0.076,-0.105 0.202,-0.186 0.371,-0.243c0.169,-0.057 0.405,-0.089 0.7,-0.106c0.295,-0.016 0.692,-0.024 1.189,-0.024c0.566,0 1.021,0 1.358,0.024c0.338,0.025 0.599,0.049 0.793,0.106c0.194,0.057 0.321,0.138 0.405,0.251c0.084,0.114 0.152,0.26 0.211,0.454l5.786,17.272l-0.009,-0.017Zm-8.594,-14.287l-0.017,-0l-2.648,8.279l5.313,-0l-2.648,-8.279Z",
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ import { FeatureCardProps } from './props';
3
+ declare const FeatureCard: FC<FeatureCardProps>;
4
+ export default FeatureCard;
5
+ export * from './props';
@@ -0,0 +1,55 @@
1
+ import { HTMLAttributes } from 'react';
2
+ import { BadgeProps } from '../../../Badge';
3
+ import { HeadingProps } from '../../../Heading';
4
+ import { ImageProps } from '../../../Image';
5
+ import { LinkProps } from '../../../Link';
6
+ import { PriceProps } from '../../../Price';
7
+ import { RichTextProps } from '../../../RichText';
8
+ import { ToggleButtonProps } from '../../../ToggleButton';
9
+ import { PatternProps } from '../../../../foundations/PatternProps';
10
+ export interface FeatureCardProps extends PatternProps, HTMLAttributes<HTMLDivElement> {
11
+ /**
12
+ * Pin component's name from string to the concrete name
13
+ */
14
+ component?: 'FeatureCard';
15
+ /**
16
+ * Unique feature id.
17
+ */
18
+ featureId: string;
19
+ /**
20
+ * Optional visual representation of the feature.
21
+ * Aspect ratio is controlled by the FeatureCard layout
22
+ * and therefore cannot be overridden.
23
+ */
24
+ image?: Omit<ImageProps, 'aspectRatio'>;
25
+ /**
26
+ * Primary heading of the card.
27
+ */
28
+ heading: Omit<HeadingProps, 'size' | 'weight' | 'bottomSpacing' | 'align'> & {
29
+ size?: HeadingProps['size'];
30
+ weight?: HeadingProps['weight'];
31
+ };
32
+ /**
33
+ * Optional badge shown near the heading.
34
+ */
35
+ badge?: BadgeProps;
36
+ /**
37
+ * Pricing information for the feature.
38
+ */
39
+ price: Omit<PriceProps, 'size' | 'orientation' | 'align' | 'bottomSpacing'> & {
40
+ size?: PriceProps['size'];
41
+ };
42
+ /**
43
+ * Optional descriptive content for the feature.
44
+ */
45
+ richText?: RichTextProps;
46
+ /**
47
+ * Optional URL of page that opens when the link in the card is clicked
48
+ */
49
+ link?: LinkProps;
50
+ /**
51
+ * Optional toggle control used to select or activate the feature.
52
+ * Typically part of a comparison or multi-select flow.
53
+ */
54
+ toggleButton?: ToggleButtonProps;
55
+ }
@@ -0,0 +1,4 @@
1
+ export declare const FeatureCardStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('../../../Card').CardProps, never>> & string & Omit<import('react').FC<import('../../../Card').CardProps>, keyof import('react').Component<any, {}, any>>;
2
+ export declare const FeatureCardUpperContentStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').ClassAttributes<HTMLDivElement> & import('react').HTMLAttributes<HTMLDivElement>, never>> & string;
3
+ export declare const FeatureCardLowerContentStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').ClassAttributes<HTMLDivElement> & import('react').HTMLAttributes<HTMLDivElement>, never>> & string;
4
+ export declare const FeatureCardImageStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('../../../Image').ImageProps, never>> & string & Omit<import('react').FC<import('../../../Image').ImageProps>, keyof import('react').Component<any, {}, any>>;
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ import { FeatureCardGroupProps } from './props';
3
+ declare const FeatureCardGroup: FC<FeatureCardGroupProps>;
4
+ export default FeatureCardGroup;
5
+ export * from './props';
@@ -0,0 +1,119 @@
1
+ "use client";
2
+ import { jsxs, jsx } from "react/jsx-runtime";
3
+ import { a as Grid, G as GridItem } from "../../index-Bu-7sSif.js";
4
+ import ToggleButtonProvider from "../ToggleButtonProvider/index.js";
5
+ import { B as Badge } from "../../index-sJClnrzW.js";
6
+ import Heading, { headingAlignCenter } from "../Heading/index.js";
7
+ import "react";
8
+ import "../../index-DbG0QL9D.js";
9
+ import "../../hooks/useLinkComponent/index.js";
10
+ import "../UtilityLink/index.js";
11
+ import "../../hooks/useImageComponent/index.js";
12
+ import Image, { aspectRatio1_1 } from "../Image/index.js";
13
+ import Link from "../Link/index.js";
14
+ import { d as priceSizeMd, P as Price, g as priceAlignCenter, a as priceOrientationVertical } from "../../index-DCXRnuHz.js";
15
+ import { R as RichText } from "../../index-BXt1ptbH.js";
16
+ import ToggleButton from "../ToggleButton/index.js";
17
+ import { f as fontWeightBold } from "../../FontWeight-DEBGHbtO.js";
18
+ import { a as textHeadingMd } from "../../HeadingSize-CfCRn3Lh.js";
19
+ import { s as spacingMd, c as spacingNone } from "../../Spacing-8v6hcO2x.js";
20
+ import styled from "styled-components";
21
+ import Card from "../Card/index.js";
22
+ import { getSpacing } from "../../foundations/token/getSpacing/index.js";
23
+ const FeatureCardStyled = styled(Card).withConfig({
24
+ displayName: "FeatureCardStyled",
25
+ componentId: "sc-1dad94e-0"
26
+ })({
27
+ gap: getSpacing(spacingMd),
28
+ alignItems: "center",
29
+ justifyContent: "space-between"
30
+ });
31
+ const contentCssObject = {
32
+ gap: getSpacing(spacingMd),
33
+ alignItems: "center",
34
+ display: "flex",
35
+ flexDirection: "column",
36
+ width: "100%"
37
+ };
38
+ const FeatureCardUpperContentStyled = styled("div").withConfig({
39
+ displayName: "FeatureCardUpperContentStyled",
40
+ componentId: "sc-1dad94e-1"
41
+ })({
42
+ ...contentCssObject
43
+ });
44
+ const FeatureCardLowerContentStyled = styled("div").withConfig({
45
+ displayName: "FeatureCardLowerContentStyled",
46
+ componentId: "sc-1dad94e-2"
47
+ })(contentCssObject);
48
+ const FeatureCardImageStyled = styled(Image).withConfig({
49
+ displayName: "FeatureCardImageStyled",
50
+ componentId: "sc-1dad94e-3"
51
+ })({
52
+ height: "200px"
53
+ });
54
+ const FeatureCard = ({
55
+ featureId,
56
+ image,
57
+ heading,
58
+ badge,
59
+ price,
60
+ richText,
61
+ link,
62
+ toggleButton,
63
+ ...props
64
+ }) => {
65
+ const headingId = `heading-${featureId == null ? void 0 : featureId.replace(/\s/g, "")}`;
66
+ const headingProps = {
67
+ ...heading,
68
+ id: headingId,
69
+ size: heading.size || textHeadingMd,
70
+ weight: heading.weight || fontWeightBold,
71
+ bottomSpacing: spacingNone,
72
+ align: headingAlignCenter
73
+ };
74
+ const priceProps = {
75
+ ...price,
76
+ orientation: priceOrientationVertical,
77
+ align: priceAlignCenter,
78
+ size: price.size || priceSizeMd,
79
+ bottomSpacing: spacingNone
80
+ };
81
+ return /* @__PURE__ */ jsxs(FeatureCardStyled, { ...props, children: [
82
+ /* @__PURE__ */ jsxs(FeatureCardUpperContentStyled, { children: [
83
+ image && /* @__PURE__ */ jsx(FeatureCardImageStyled, { ...image, aspectRatio: aspectRatio1_1 }),
84
+ /* @__PURE__ */ jsx(Heading, { ...headingProps }),
85
+ badge && /* @__PURE__ */ jsx(Badge, { ...badge, bottomSpacing: spacingNone })
86
+ ] }),
87
+ /* @__PURE__ */ jsxs(FeatureCardLowerContentStyled, { children: [
88
+ price && /* @__PURE__ */ jsx(Price, { ...priceProps }),
89
+ richText && /* @__PURE__ */ jsx(RichText, { ...richText, bottomSpacing: spacingNone }),
90
+ link && /* @__PURE__ */ jsx(Link, { ...link, bottomSpacing: spacingNone, "aria-describedby": headingId }),
91
+ toggleButton && /* @__PURE__ */ jsx(ToggleButton, { ...toggleButton })
92
+ ] })
93
+ ] });
94
+ };
95
+ const FeatureCardGroupStyled = styled(Grid).withConfig({
96
+ displayName: "FeatureCardGroupStyled",
97
+ componentId: "sc-12niz1k-0"
98
+ })(({
99
+ gapSpacing = spacingMd
100
+ }) => ({
101
+ gap: getSpacing(gapSpacing)
102
+ }));
103
+ const FeatureCardGroup = ({
104
+ featureCardList,
105
+ toggleButtonProvider,
106
+ gridConfig = {
107
+ sm: 12,
108
+ md: 6,
109
+ lg: 4
110
+ },
111
+ ...props
112
+ }) => {
113
+ return /* @__PURE__ */ jsx(ToggleButtonProvider, { ...toggleButtonProvider, children: /* @__PURE__ */ jsx(FeatureCardGroupStyled, { ...props, autoLayout: gridConfig, stretch: true, component: "Grid", children: featureCardList.map((featureCard) => {
114
+ return /* @__PURE__ */ jsx(GridItem, { ...gridConfig, children: /* @__PURE__ */ jsx(FeatureCard, { ...featureCard }) }, featureCard.featureId);
115
+ }) }) });
116
+ };
117
+ export {
118
+ FeatureCardGroup as default
119
+ };
@@ -0,0 +1,31 @@
1
+ import { HTMLAttributes } from 'react';
2
+ import { GridConfig } from '../Grid';
3
+ import { ToggleButtonProviderProps } from '../ToggleButtonProvider';
4
+ import { PatternProps } from '../../foundations/PatternProps';
5
+ import { Spacing } from '../../foundations/types/Spacing';
6
+ import { FeatureCardProps } from './components/FeatureCard/props';
7
+ export interface FeatureCardGroupProps extends PatternProps, HTMLAttributes<HTMLDivElement> {
8
+ /**
9
+ * Pin component's name from string to the concrete name
10
+ */
11
+ component?: 'FeatureCardGroup';
12
+ /**
13
+ * Config of grid to align Feature Cards
14
+ */
15
+ gridConfig?: GridConfig;
16
+ /**
17
+ * Spacing between Feature Cards.
18
+ */
19
+ gapSpacing?: Spacing;
20
+ /**
21
+ * List of feature cards to be rendered in the group.
22
+ * Order matters and defines the visual/layout order.
23
+ */
24
+ featureCardList: FeatureCardProps[];
25
+ /**
26
+ * Shared toggle state provider for all cards in the group.
27
+ * Ensures toggle buttons behave consistently
28
+ * (e.g. single-select vs multi-select).
29
+ */
30
+ toggleButtonProvider: ToggleButtonProviderProps;
31
+ }
@@ -0,0 +1,2 @@
1
+ import { FeatureCardGroupProps } from './props';
2
+ export declare const FeatureCardGroupStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('../Grid').GridProps, Pick<FeatureCardGroupProps, "gapSpacing">>> & string & Omit<import('react').FC<import('../Grid').GridProps>, keyof import('react').Component<any, {}, any>>;
@@ -4,7 +4,7 @@ import { useState } from "react";
4
4
  import Fieldset from "../Fieldset/index.js";
5
5
  import { i as iconSizeSm } from "../../IconSize-AJp7xdJi.js";
6
6
  import styled from "styled-components";
7
- import { I as IconLoader } from "../../index--RjkzZm0.js";
7
+ import { I as IconLoader } from "../../index-B3v10poy.js";
8
8
  import { s as screenreaderOnly } from "../../index-C2E3JrhF.js";
9
9
  import forcedColors from "../../foundations/media-query/forcedColors/index.js";
10
10
  import { getBackgroundColor } from "../../foundations/token/getBackgroundColor/index.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import { F as FlexStyled } from "../../styled-CUp4EbPh.js";
4
- import { i, h, g, e, d, c, b, f, a } from "../../styled-CUp4EbPh.js";
3
+ import { F as FlexStyled } from "../../styled-BY19C9EO.js";
4
+ import { i, h, g, e, d, c, b, f, a } from "../../styled-BY19C9EO.js";
5
5
  const Flex = ({
6
6
  children,
7
7
  ...props
@@ -4,7 +4,7 @@ import Body from "../Body/index.js";
4
4
  import ButtonGroup from "../ButtonGroup/index.js";
5
5
  import Heading from "../Heading/index.js";
6
6
  import IconSnippet from "../IconSnippet/index.js";
7
- import { R as RichText } from "../../index-DP6Nlg-a.js";
7
+ import { R as RichText } from "../../index-BXt1ptbH.js";
8
8
  import { c as spacingNone } from "../../Spacing-8v6hcO2x.js";
9
9
  import styled from "styled-components";
10
10
  import { getBottomSpacing } from "../../foundations/token/getBottomSpacing/index.js";
@@ -2,7 +2,7 @@
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { i as iconSizeSm } from "../../IconSize-AJp7xdJi.js";
4
4
  import styled from "styled-components";
5
- import { I as IconLoader } from "../../index--RjkzZm0.js";
5
+ import { I as IconLoader } from "../../index-B3v10poy.js";
6
6
  import forcedColors from "../../foundations/media-query/forcedColors/index.js";
7
7
  import { getIconColor } from "../../foundations/token/getIconColor/index.js";
8
8
  import { c as colorIconSuccess, a as colorIconCritical } from "../../IconColor-CtC9WUgr.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import HifiIcon from "../HifiIcon/index.js";
4
- import { I as IconLoader } from "../../index--RjkzZm0.js";
4
+ import { I as IconLoader } from "../../index-B3v10poy.js";
5
5
  const isIconProp = (props) => {
6
6
  return props.icon !== void 0;
7
7
  };
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import { I as IconLoader } from "../../index--RjkzZm0.js";
3
+ import { I as IconLoader } from "../../index-B3v10poy.js";
4
4
  import { i as iconSizeSm } from "../../IconSize-AJp7xdJi.js";
5
5
  import styled from "styled-components";
6
6
  import { s as shadow28 } from "../../shadow-u158mzuN.js";
@@ -12,7 +12,7 @@ import { getOpacity } from "../../foundations/token/getOpacity/index.js";
12
12
  import { getSpacing } from "../../foundations/token/getSpacing/index.js";
13
13
  import { b as borderRadiusMd, a as borderRadiusFull } from "../../BorderRadius-2LdggXbQ.js";
14
14
  import { c as borderWidthSelected } from "../../BorderWidth-BjXpOdM5.js";
15
- import { b as buttonHeight, p as primaryAppearance } from "../../styled-BKH3egch.js";
15
+ import { b as buttonHeight, p as primaryAppearance } from "../../styled-CepQAcdi.js";
16
16
  import { a as opacityDisabled } from "../../Opacity-smkGiwsf.js";
17
17
  import { a as spacingXs, s as spacingMd } from "../../Spacing-8v6hcO2x.js";
18
18
  import { a as filterProps } from "../../filterProps-CxkibNnG.js";
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  import "react/jsx-runtime";
3
- import { I, i, a, v } from "../../index--RjkzZm0.js";
3
+ import { I, i, a, v } from "../../index-B3v10poy.js";
4
+ import "../../foundations/token/getBottomSpacing/index.js";
4
5
  export {
5
6
  I as default,
6
7
  i as iconSizes,
@@ -4,12 +4,12 @@ import Body from "../Body/index.js";
4
4
  import Heading from "../Heading/index.js";
5
5
  import InlineLink from "../InlineLink/index.js";
6
6
  import Link from "../Link/index.js";
7
- import { R as RichText } from "../../index-DP6Nlg-a.js";
7
+ import { R as RichText } from "../../index-BXt1ptbH.js";
8
8
  import { d as divTagName, c as spanTagName } from "../../tags-Cwgg3Gx2.js";
9
9
  import { a as iconSizeLg, f as iconSize3xl, i as iconSizeSm } from "../../IconSize-AJp7xdJi.js";
10
10
  import { b as spacingSm, s as spacingMd, c as spacingNone, a as spacingXs } from "../../Spacing-8v6hcO2x.js";
11
11
  import styled from "styled-components";
12
- import { I as IconLoader } from "../../index--RjkzZm0.js";
12
+ import { I as IconLoader } from "../../index-B3v10poy.js";
13
13
  import { getBottomSpacing } from "../../foundations/token/getBottomSpacing/index.js";
14
14
  import { getSpacing } from "../../foundations/token/getSpacing/index.js";
15
15
  import { a as filterProps } from "../../filterProps-CxkibNnG.js";
@@ -8,10 +8,10 @@ import { useImageComponent, filterImagePropsToImageComponentProps } from "../../
8
8
  import { g as getSizesFromGridConfig } from "../../getSizesFromGridConfig-DKOLupyb.js";
9
9
  import styled from "styled-components";
10
10
  import { getBorderRadius } from "../../foundations/token/getBorderRadius/index.js";
11
- import { b as borderRadiusMd, c as borderRadiusNone } from "../../BorderRadius-2LdggXbQ.js";
12
- import { a as filterProps } from "../../filterProps-CxkibNnG.js";
13
11
  import { getBottomSpacing } from "../../foundations/token/getBottomSpacing/index.js";
12
+ import { b as borderRadiusMd, c as borderRadiusNone } from "../../BorderRadius-2LdggXbQ.js";
14
13
  import { s as spacingMd } from "../../Spacing-8v6hcO2x.js";
14
+ import { a as filterProps } from "../../filterProps-CxkibNnG.js";
15
15
  import { i as isObject, h as hasMatchingComponentName } from "../../isObject-BYBrvoVW.js";
16
16
  const aspectRatio1_1 = "1/1";
17
17
  const aspectRatio3_4 = "3/4";
@@ -5,15 +5,15 @@ import Button from "../Button/index.js";
5
5
  import { C as Container } from "../../index-DbG0QL9D.js";
6
6
  import Heading, { headingAlignCenter } from "../Heading/index.js";
7
7
  import { P as Price, b as priceSizeSm } from "../../index-DCXRnuHz.js";
8
- import { R as RichText } from "../../index-DP6Nlg-a.js";
8
+ import { R as RichText } from "../../index-BXt1ptbH.js";
9
9
  import { b as fontWeightLight } from "../../FontWeight-DEBGHbtO.js";
10
10
  import { m as mediumSize } from "../../SizeTypes-Ck_RdzIf.js";
11
11
  import { s as spacingMd, b as spacingSm, e as spacingXl, a as spacingXs, f as spacing2Xs, c as spacingNone } from "../../Spacing-8v6hcO2x.js";
12
12
  import styled from "styled-components";
13
13
  import ArtDirectedImage from "../ArtDirectedImage/index.js";
14
- import { B as Badge } from "../../index-DwGcrvTh.js";
14
+ import { B as Badge } from "../../index-sJClnrzW.js";
15
15
  import ButtonGroup from "../ButtonGroup/index.js";
16
- import { a as flexOrientationVertical } from "../../styled-CUp4EbPh.js";
16
+ import { a as flexOrientationVertical } from "../../styled-BY19C9EO.js";
17
17
  import { a as Grid, G as GridItem } from "../../index-Bu-7sSif.js";
18
18
  import viewport from "../../foundations/media-query/viewport/index.js";
19
19
  import { getBackgroundColor } from "../../foundations/token/getBackgroundColor/index.js";
@@ -3,7 +3,7 @@ import { jsx, Fragment } from "react/jsx-runtime";
3
3
  import Body from "../Body/index.js";
4
4
  import Heading from "../Heading/index.js";
5
5
  import IconSnippet, { iconSnippetAlignCenter } from "../IconSnippet/index.js";
6
- import { R as RichText } from "../../index-DP6Nlg-a.js";
6
+ import { R as RichText } from "../../index-BXt1ptbH.js";
7
7
  import styled from "styled-components";
8
8
  const LegendStyled = styled.legend.withConfig({
9
9
  displayName: "LegendStyled",
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import { L as LinkAsButton, p as primaryAppearance, a as LinkStyled, g as getLinkIcon } from "../../index-Dd-A7i9Y.js";
3
+ import { L as LinkAsButton, p as primaryAppearance, a as LinkStyled, g as getLinkIcon } from "../../index-r-dbrZxA.js";
4
4
  import { useLinkComponent } from "../../hooks/useLinkComponent/index.js";
5
5
  import { f as filterPropsForUnstyledComponent } from "../../filterProps-CxkibNnG.js";
6
6
  import { s as sanitizeLinkProps } from "../../sanitizeLinkProps-D2Kkovy1.js";
7
- import { b as iconNames } from "../../index--RjkzZm0.js";
8
- import { l as leftPosition, r as rightPosition } from "../../styled-BKH3egch.js";
7
+ import { b as iconNames } from "../../index-B3v10poy.js";
8
+ import { l as leftPosition, r as rightPosition } from "../../styled-CepQAcdi.js";
9
9
  import { i as isObject, h as hasMatchingComponentName } from "../../isObject-BYBrvoVW.js";
10
10
  const validateLinkProps = (props) => {
11
11
  if (!isObject(props)) {
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import "react/jsx-runtime";
3
- import { L, i, v } from "../../index-Dd-A7i9Y.js";
3
+ import { L, i, v } from "../../index-r-dbrZxA.js";
4
4
  export {
5
5
  L as default,
6
6
  i as isLinkAsButtonProps,
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
- import { B as Badge } from "../../index-DwGcrvTh.js";
4
- import { I as IconLoader } from "../../index--RjkzZm0.js";
3
+ import { B as Badge } from "../../index-sJClnrzW.js";
4
+ import { I as IconLoader } from "../../index-B3v10poy.js";
5
5
  import { c as spanTagName } from "../../tags-Cwgg3Gx2.js";
6
6
  import { c as iconSizeMd } from "../../IconSize-AJp7xdJi.js";
7
7
  import { s as smallSize } from "../../SizeTypes-Ck_RdzIf.js";
@@ -6,7 +6,7 @@ import "../FlexItem/index.js";
6
6
  import "../Heading/index.js";
7
7
  import "../Image/index.js";
8
8
  import "../Link/index.js";
9
- import "../../index-DP6Nlg-a.js";
9
+ import "../../index-BXt1ptbH.js";
10
10
  import "../RichtTextContentful/index.js";
11
11
  import "../YoutubeVideo/index.js";
12
12
  import "../../tags-Cwgg3Gx2.js";
@@ -14,8 +14,8 @@ import "../../FontWeight-DEBGHbtO.js";
14
14
  import "../../HeadingSize-CfCRn3Lh.js";
15
15
  import "../../Spacing-8v6hcO2x.js";
16
16
  import "../../index-DKCzYjXw.js";
17
- import { M, i, a, b, m, c, v } from "../../index-72IFVw5W.js";
18
- import "../../styled-CUp4EbPh.js";
17
+ import { M, i, a, b, m, c, v } from "../../index-CflWbzuv.js";
18
+ import "../../styled-BY19C9EO.js";
19
19
  export {
20
20
  M as default,
21
21
  i as isMediaTextProps,
@@ -5,9 +5,9 @@ import Button from "../Button/index.js";
5
5
  import ButtonGroup from "../ButtonGroup/index.js";
6
6
  import Flex from "../Flex/index.js";
7
7
  import Heading from "../Heading/index.js";
8
- import { I as IconLoader } from "../../index--RjkzZm0.js";
8
+ import { I as IconLoader } from "../../index-B3v10poy.js";
9
9
  import Link from "../Link/index.js";
10
- import { R as RichText } from "../../index-DP6Nlg-a.js";
10
+ import { R as RichText } from "../../index-BXt1ptbH.js";
11
11
  import { i as iconSizeSm } from "../../IconSize-AJp7xdJi.js";
12
12
  import { getBorderColor } from "../../foundations/token/getBorderColor/index.js";
13
13
  import { getObjectColor } from "../../foundations/token/getObjectColor/index.js";