@vodafone_de/brix-components 8.0.1 → 8.1.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.
@@ -6,7 +6,7 @@ import Body, { isBodyProps, bodyAlignLeft, bodyAlignCenter } from "../Body/index
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-Drem899y.js";
9
- import { R as RichText } from "../../index-CHlQcF_n.js";
9
+ import { R as RichText } from "../../index-CFj4lfgX.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";
@@ -20,7 +20,7 @@ import "../../hooks/useLinkComponent/index.js";
20
20
  import "../../index-Drem899y.js";
21
21
  import "../InlineLink/index.js";
22
22
  import "../../TableWrapper-Do9KCTGV.js";
23
- import "../../index-CHlQcF_n.js";
23
+ import "../../index-CFj4lfgX.js";
24
24
  import "../Image/index.js";
25
25
  const DiscoveryCardGroupGridStyled = styled(Grid).withConfig({
26
26
  displayName: "DiscoveryCardGroupGridStyled",
@@ -1,5 +1,10 @@
1
1
  "use client";
2
- import { jsx } from "react/jsx-runtime";
2
+ import { jsxs, jsx } from "react/jsx-runtime";
3
+ import Body from "../Body/index.js";
4
+ import ButtonGroup from "../ButtonGroup/index.js";
5
+ import Heading from "../Heading/index.js";
6
+ import IconSnippet from "../IconSnippet/index.js";
7
+ import { R as RichText } from "../../index-CFj4lfgX.js";
3
8
  import { c as spacingNone } from "../../Spacing-8v6hcO2x.js";
4
9
  import styled from "styled-components";
5
10
  import { getBottomSpacing } from "../../foundations/token/getBottomSpacing/index.js";
@@ -13,8 +18,19 @@ const Form = ({
13
18
  children,
14
19
  noValidate = true,
15
20
  bottomSpacing = spacingNone,
21
+ heading,
22
+ subline,
23
+ buttons,
24
+ uid,
16
25
  ...props
17
- }) => /* @__PURE__ */ jsx(FormStyled, { ...props, noValidate, bottomSpacing, children });
26
+ }) => /* @__PURE__ */ jsxs(FormStyled, { ...props, noValidate, bottomSpacing, "aria-labelledby": heading && subline ? `${uid}-heading ${uid}-subline` : heading ? `${uid}-heading` : props["aria-labelledby"], children: [
27
+ heading && /* @__PURE__ */ jsx(Heading, { ...heading, id: `${uid}-heading` }),
28
+ subline && subline.component === "Body" && /* @__PURE__ */ jsx(Body, { ...subline, id: `${uid}-subline` }),
29
+ subline && subline.component === "RichText" && /* @__PURE__ */ jsx(RichText, { ...subline, id: `${uid}-subline` }),
30
+ subline && subline.component === "IconSnippet" && /* @__PURE__ */ jsx(IconSnippet, { ...subline, id: `${uid}-subline` }),
31
+ children,
32
+ buttons && /* @__PURE__ */ jsx(ButtonGroup, { ...buttons })
33
+ ] });
18
34
  export {
19
35
  Form as default
20
36
  };
@@ -1,4 +1,9 @@
1
1
  import { FormHTMLAttributes } from 'react';
2
+ import { BodyProps } from '../Body';
3
+ import { ButtonGroupProps } from '../ButtonGroup';
4
+ import { HeadingProps } from '../Heading';
5
+ import { IconSnippetProps } from '../IconSnippet';
6
+ import { RichTextProps } from '../RichText';
2
7
  import { PatternProps } from '../../foundations/PatternProps';
3
8
  export interface FormProps extends PatternProps, FormHTMLAttributes<HTMLFormElement> {
4
9
  /**
@@ -8,6 +13,18 @@ export interface FormProps extends PatternProps, FormHTMLAttributes<HTMLFormElem
8
13
  * default will be true in pattern
9
14
  */
10
15
  noValidate?: boolean;
16
+ /**
17
+ * Heading that will be rendered at the top of the Form and automatically label the Form via aria-labelledby
18
+ */
19
+ heading?: HeadingProps;
20
+ /**
21
+ * Body or RichText that will be rendered at the top of the Form beneath the Heading and automatically label the Form via aria-labelledby
22
+ */
23
+ subline?: BodyProps | RichTextProps | IconSnippetProps;
24
+ /**
25
+ * ButtonGroup that will be rendered at the bottom of the Form
26
+ */
27
+ buttons?: ButtonGroupProps;
11
28
  /**
12
29
  * Pin component's name from string to the concrete name
13
30
  */
@@ -4,7 +4,7 @@ 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-CHlQcF_n.js";
7
+ import { R as RichText } from "../../index-CFj4lfgX.js";
8
8
  import { d as divTagName, c as spanTagName } from "../../tags-D7CRQqc1.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";
@@ -117,7 +117,7 @@ const getContents = (contents) => {
117
117
  if ("InlineLink" === content.component) {
118
118
  return /* @__PURE__ */ jsx(Body, { bottomSpacing: spacingXs, children: /* @__PURE__ */ jsx(InlineLink, { ...content, children: content.children }) }, content.uid);
119
119
  }
120
- if ("Link" === content.component) {
120
+ if ("Link" === content.component || "LinkAsButton" === content.component) {
121
121
  return /* @__PURE__ */ jsx(Link, { ...content, children: content.children }, content.uid);
122
122
  }
123
123
  return null;
@@ -5,7 +5,7 @@ import Button from "../Button/index.js";
5
5
  import Container from "../Container/index.js";
6
6
  import Heading, { headingAlignCenter } from "../Heading/index.js";
7
7
  import { P as Price, b as priceSizeSm } from "../../index-Drem899y.js";
8
- import { R as RichText } from "../../index-CHlQcF_n.js";
8
+ import { R as RichText } from "../../index-CFj4lfgX.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";
@@ -2,7 +2,7 @@
2
2
  import { jsxs, jsx } from "react/jsx-runtime";
3
3
  import Button from "../Button/index.js";
4
4
  import FlexItem from "../FlexItem/index.js";
5
- import Heading from "../Heading/index.js";
5
+ import Heading, { headingAlignLeft } from "../Heading/index.js";
6
6
  import Icon from "../Icon/index.js";
7
7
  import { a as fontWeightRegular } from "../../FontWeight-DEBGHbtO.js";
8
8
  import { t as textHeadingXs } from "../../HeadingSize-CfCRn3Lh.js";
@@ -81,7 +81,7 @@ const InfoBanner = ({
81
81
  icon && /* @__PURE__ */ jsx(FlexItem, { children: /* @__PURE__ */ jsx(Icon, { name: icon, size: iconSizeLg, "aria-hidden": true }) }),
82
82
  /* @__PURE__ */ jsx(FlexItem, { grow: "full", children: /* @__PURE__ */ jsx(Heading, { ...heading, id: headingId, size: textHeadingXs, weight: fontWeightRegular, style: {
83
83
  color: "inherit"
84
- }, bottomSpacing: spacingNone }) })
84
+ }, align: headingAlignLeft, bottomSpacing: spacingNone }) })
85
85
  ] }),
86
86
  button && /* @__PURE__ */ jsx(Button, { ...button, bottomSpacing: spacingNone, "aria-describedby": headingId })
87
87
  ] });
@@ -24,7 +24,7 @@ export interface InfoBannerProps extends PatternProps, HTMLAttributes<HTMLDivEle
24
24
  /**
25
25
  * Heading
26
26
  */
27
- heading: Omit<HeadingProps, 'size' | 'weight' | 'bottomSpacing'>;
27
+ heading: Omit<HeadingProps, 'size' | 'weight' | 'bottomSpacing' | 'align'>;
28
28
  /**
29
29
  * Button
30
30
  */
@@ -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-CHlQcF_n.js";
6
+ import { R as RichText } from "../../index-CFj4lfgX.js";
7
7
  import styled from "styled-components";
8
8
  const LegendStyled = styled.legend.withConfig({
9
9
  displayName: "LegendStyled",
@@ -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-CHlQcF_n.js";
9
+ import "../../index-CFj4lfgX.js";
10
10
  import "../RichtTextContentful/index.js";
11
11
  import "../YoutubeVideo/index.js";
12
12
  import "../../tags-D7CRQqc1.js";
@@ -14,7 +14,7 @@ import "../../FontWeight-DEBGHbtO.js";
14
14
  import "../../HeadingSize-CfCRn3Lh.js";
15
15
  import "../../Spacing-8v6hcO2x.js";
16
16
  import "../../hooks/useViewport/index.js";
17
- import { M, i, a, b, m, c, v } from "../../index-vziwfNHJ.js";
17
+ import { M, i, a, b, m, c, v } from "../../index-X3REY6f1.js";
18
18
  import "../../styled-BV6KxOQh.js";
19
19
  import "../../validate-DYmFz2FF.js";
20
20
  export {
@@ -7,7 +7,7 @@ import Flex from "../Flex/index.js";
7
7
  import Heading from "../Heading/index.js";
8
8
  import { I as IconLoader } from "../../index--RjkzZm0.js";
9
9
  import Link from "../Link/index.js";
10
- import { R as RichText } from "../../index-CHlQcF_n.js";
10
+ import { R as RichText } from "../../index-CFj4lfgX.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";
@@ -5,7 +5,7 @@ import AccordionGroup from "../AccordionGroup/index.js";
5
5
  import Container from "../Container/index.js";
6
6
  import FootnoteContent from "../FootnoteContent/index.js";
7
7
  import Heading from "../Heading/index.js";
8
- import { R as RichText } from "../../index-CHlQcF_n.js";
8
+ import { R as RichText } from "../../index-CFj4lfgX.js";
9
9
  import { b as textHeadingSm, c as textHeadingLg } from "../../HeadingSize-CfCRn3Lh.js";
10
10
  import { h as h3TagName } from "../../tags-D7CRQqc1.js";
11
11
  const getFootnoteContent = (content, footnoteContentBacklinkText) => {
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import "react/jsx-runtime";
3
3
  import "react";
4
- import { R } from "../../index-CHlQcF_n.js";
4
+ import { R } from "../../index-CFj4lfgX.js";
5
5
  export {
6
6
  R as default
7
7
  };
@@ -5,7 +5,7 @@ import Body from "../Body/index.js";
5
5
  import Divider from "../Divider/index.js";
6
6
  import Heading from "../Heading/index.js";
7
7
  import InlineLink from "../InlineLink/index.js";
8
- import { a as TextListItem, T as TextList } from "../../index-CHlQcF_n.js";
8
+ import { a as TextListItem, T as TextList } from "../../index-CFj4lfgX.js";
9
9
  import styled from "styled-components";
10
10
  import { getBottomSpacing } from "../../foundations/token/getBottomSpacing/index.js";
11
11
  import { a as filterProps } from "../../filterProps-DYkraWyH.js";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import "react/jsx-runtime";
3
- import { a, T } from "../../index-CHlQcF_n.js";
3
+ import { a, T } from "../../index-CFj4lfgX.js";
4
4
  import "../../tags-D7CRQqc1.js";
5
5
  import "../../Spacing-8v6hcO2x.js";
6
6
  import "../../renderInlineRichTextFromOpenText-RvOG3QbI.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import "react/jsx-runtime";
3
3
  import "@contentful/live-preview/react";
4
- import { L } from "../../mapContentToComponents-DzoG1jxP.js";
4
+ import { L } from "../../mapContentToComponents-D_ULBSpu.js";
5
5
  export {
6
6
  L as LivePreviewInspector
7
7
  };
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx, Fragment } from "react/jsx-runtime";
3
3
  import { useContentfulLiveUpdates, ContentfulLivePreviewProvider } from "@contentful/live-preview/react";
4
- import { m as mapContentToComponents } from "../../mapContentToComponents-DzoG1jxP.js";
4
+ import { m as mapContentToComponents } from "../../mapContentToComponents-D_ULBSpu.js";
5
5
  const BrixLiveRendererComponents = ({
6
6
  data
7
7
  }) => {
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx, Fragment } from "react/jsx-runtime";
3
3
  import LivePreviewRenderer from "../live-preview-renderer/index.js";
4
- import { m as mapContentToComponents } from "../../mapContentToComponents-DzoG1jxP.js";
4
+ import { m as mapContentToComponents } from "../../mapContentToComponents-D_ULBSpu.js";
5
5
  const Renderer = ({
6
6
  content,
7
7
  isDraftMode
@@ -7,7 +7,7 @@ import Heading from "./components/Heading/index.js";
7
7
  import InlineLink from "./components/InlineLink/index.js";
8
8
  import { T as TableWrapper, e as TableHead, a as TableBody, d as TableFoot } from "./TableWrapper-Do9KCTGV.js";
9
9
  import { e as headingHtmlTags, o as olTagName, f as strongTagName, g as supTagName, u as ulTagName } from "./tags-D7CRQqc1.js";
10
- import { s as spacingMd, c as spacingNone } from "./Spacing-8v6hcO2x.js";
10
+ import { c as spacingNone, s as spacingMd } from "./Spacing-8v6hcO2x.js";
11
11
  import { r as renderInlineRichTextFromOpenText } from "./renderInlineRichTextFromOpenText-RvOG3QbI.js";
12
12
  import styled from "styled-components";
13
13
  import { getBodySize } from "./foundations/token/getBodySize/index.js";
@@ -173,7 +173,10 @@ const TextListItemStyled = styled.li.withConfig({
173
173
  componentId: "sc-e2ohp8-0"
174
174
  })({
175
175
  display: "list-item",
176
- marginBottom: getSpacing(spacingMd)
176
+ marginBottom: getSpacing(spacingMd),
177
+ "& :last-child": {
178
+ marginBottom: getSpacing(spacingNone)
179
+ }
177
180
  }, ({
178
181
  bottomSpacing = spacingNone
179
182
  }) => getBottomSpacing({
@@ -5,7 +5,7 @@ import FlexItem from "./components/FlexItem/index.js";
5
5
  import Heading, { isHeadingProps, headingAlignLeft } from "./components/Heading/index.js";
6
6
  import Image from "./components/Image/index.js";
7
7
  import Link, { isLinkProps } from "./components/Link/index.js";
8
- import { R as RichText } from "./index-CHlQcF_n.js";
8
+ import { R as RichText } from "./index-CFj4lfgX.js";
9
9
  import RichTextContentful from "./components/RichtTextContentful/index.js";
10
10
  import YoutubeVideo from "./components/YoutubeVideo/index.js";
11
11
  import { r as pTagName, u as ulTagName, d as divTagName, l as liTagName } from "./tags-D7CRQqc1.js";
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import { default as default3 } from "./components/UtilityLink/index.js";
3
3
  import { default as default4 } from "./components/Tray/index.js";
4
4
  import { default as default5 } from "./components/TimeInput/index.js";
5
5
  import { default as default6 } from "./components/Textarea/index.js";
6
- import { R, T, a } from "./index-CHlQcF_n.js";
6
+ import { R, T, a } from "./index-CFj4lfgX.js";
7
7
  import { P, T as T2, c, k, g, f, j, p, a as a2, i, e, d, b, h, v } from "./index-Drem899y.js";
8
8
  import { T as T3, a as a3, b as b2, c as c2, d as d2, e as e2, f as f2, T as T4 } from "./TableWrapper-Do9KCTGV.js";
9
9
  import { PanelStyled, default as default7, TabGroupContainerStyled, TabGroupIndicatorStyled, TabGroupTabsScrollableContainerStyled, TabGroupTabsStyled, TabLabelStyled, TabStyled, iconPositionLeft, iconPositionTop, tabGroupWidthAuto, tabGroupWidthFull } from "./components/TabGroup/index.js";
@@ -24,7 +24,7 @@ import { default as default20 } from "./components/PickerGroup/index.js";
24
24
  import { default as default21, overlayAppearancePrimary, overlayAppearanceSecondary } from "./components/Overlay/index.js";
25
25
  import { default as default22 } from "./components/OpenTextFootnoteAdapter/index.js";
26
26
  import { default as default23, notificationStatusError, notificationStatusInfo, notificationStatusSuccess, notificationStatusWarning } from "./components/Notification/index.js";
27
- import { M, i as i2, a as a4, b as b3, m, c as c3, v as v2 } from "./index-vziwfNHJ.js";
27
+ import { M, i as i2, a as a4, b as b3, m, c as c3, v as v2 } from "./index-X3REY6f1.js";
28
28
  import { default as default24 } from "./components/LocalStyle/index.js";
29
29
  import { default as default25 } from "./components/LoadingSpinner/index.js";
30
30
  import { default as default26, linkListItemVariantHorizontal, linkListItemVariantVertical } from "./components/LinkListItem/index.js";
@@ -114,7 +114,7 @@ import { useForcedColors } from "./hooks/useForcedColors/index.js";
114
114
  import { useFocusWithin } from "./hooks/useFocusWithin/index.js";
115
115
  import "react/jsx-runtime";
116
116
  import "@contentful/live-preview/react";
117
- import { L as L2 } from "./mapContentToComponents-DzoG1jxP.js";
117
+ import { L as L2 } from "./mapContentToComponents-D_ULBSpu.js";
118
118
  import { a as a8, i as i7 } from "./props-DDpgcryb.js";
119
119
  import { p as p3, m as m2, q, r, s as s2, n, t as t2, x, d as d5, h as h2, c as c6, w, z, o, a as a9, b as b6, u, e as e4, i as i8, g as g2, f as f4, l, k as k2, j as j2, v as v7, y } from "./validate-DYmFz2FF.js";
120
120
  import { e as e5, d as d6, c as c7, b as b7, f as f5, a as a10 } from "./styled-BV6KxOQh.js";
@@ -23,7 +23,7 @@ import ImageHeader, { isImageHeaderProps } from "./components/ImageHeader/index.
23
23
  import Link, { isLinkProps } from "./components/Link/index.js";
24
24
  import { i as isLinkAsButtonProps, L as LinkAsButton } from "./index-C8-Q-EZ3.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-vziwfNHJ.js";
26
+ import { d as isConsentMessageProps, e as isRichTextContentfulProps, f as isYoutubeVideoProps, i as isMediaTextProps, M as MediaText } from "./index-X3REY6f1.js";
27
27
  import { k as isPriceProps, P as Price } from "./index-Drem899y.js";
28
28
  import ResponsiveImage, { isResponsiveImageProps } from "./components/ResponsiveImage/index.js";
29
29
  import RichTextContentful from "./components/RichtTextContentful/index.js";
@@ -47,7 +47,7 @@ import "./components/FlexItem/index.js";
47
47
  import "./styled-D0QqjIRm.js";
48
48
  import "./components/InlineLink/index.js";
49
49
  import "./TableWrapper-Do9KCTGV.js";
50
- import "./index-CHlQcF_n.js";
50
+ import "./index-CFj4lfgX.js";
51
51
  import "./styled-CizpdAAZ.js";
52
52
  const validateLegibleContent = (check) => {
53
53
  var _a, _b, _c, _d;
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": "8.0.1",
4
+ "version": "8.1.0",
5
5
  "exports": {
6
6
  "./package.json": "./package.json",
7
7
  ".": {