@vodafone_de/brix-components 3.0.1 → 3.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 (139) hide show
  1. package/dist/BackgroundColor-JObp_2xA.js +14 -0
  2. package/dist/BorderColor-BummoQ1-.js +24 -0
  3. package/dist/BorderRadius-ClUShVLu.js +10 -0
  4. package/dist/BorderWidth-DfOlyKK7.js +16 -0
  5. package/dist/CornerStyle-JEbGNArR.js +6 -0
  6. package/dist/FontWeight-CR22KTex.js +8 -0
  7. package/dist/HeadingSize-CfCRn3Lh.js +12 -0
  8. package/dist/IconColor-CtC9WUgr.js +10 -0
  9. package/dist/ObjectColor-BZDBuV8H.js +22 -0
  10. package/dist/Opacity-smkGiwsf.js +6 -0
  11. package/dist/SizeTypes-Ck_RdzIf.js +8 -0
  12. package/dist/Spacing-D0HQH9YJ.js +16 -0
  13. package/dist/TextBodySize-BcZR9mh2.js +6 -0
  14. package/dist/TextColor-BXiR5Uq9.js +16 -0
  15. package/dist/colorUtils-uLZF5UIN.js +94 -0
  16. package/dist/components/Accordion/index.js +195 -0
  17. package/dist/components/AccordionGroup/index.js +59 -0
  18. package/dist/components/Badge/index.js +11 -0
  19. package/dist/components/Body/index.js +72 -6
  20. package/dist/components/BottomBar/index.js +79 -0
  21. package/dist/components/Button/index.js +24 -0
  22. package/dist/components/ButtonAsLink/index.js +7 -0
  23. package/dist/components/ButtonGroup/index.js +34 -0
  24. package/dist/components/Card/index.js +18 -0
  25. package/dist/components/Carousel/index.js +497 -0
  26. package/dist/components/Checkbox/index.js +218 -0
  27. package/dist/components/CheckboxGroup/index.js +58 -0
  28. package/dist/components/Collapsible/index.js +85 -0
  29. package/dist/components/ColorSwatch/index.js +87 -0
  30. package/dist/components/ColorSwatchGroup/index.js +43 -0
  31. package/dist/components/Container/index.js +76 -0
  32. package/dist/components/DateInput/index.js +86 -0
  33. package/dist/components/DemoBox/index.js +21 -0
  34. package/dist/components/Dialog/index.js +172 -0
  35. package/dist/components/DiscoveryCard/index.js +130 -0
  36. package/dist/components/DiscoveryCardGroup/index.js +53 -0
  37. package/dist/components/Divider/index.js +30 -0
  38. package/dist/components/Fieldset/index.js +41 -0
  39. package/dist/components/FilterGroup/index.js +148 -0
  40. package/dist/components/Flex/index.js +17 -0
  41. package/dist/components/FlexItem/index.js +41 -0
  42. package/dist/components/FootnoteContent/index.js +39 -0
  43. package/dist/components/FootnoteLink/index.js +46 -0
  44. package/dist/components/Form/index.js +20 -0
  45. package/dist/components/FormElement/index.js +31 -0
  46. package/dist/components/FormHelperLabel/index.js +21 -0
  47. package/dist/components/FormHelperMessage/index.js +47 -0
  48. package/dist/components/FormHelperStatusIcon/index.js +50 -0
  49. package/dist/components/GoogleMap/index.js +196 -0
  50. package/dist/components/Grid/index.js +39 -0
  51. package/dist/components/GridItem/index.js +12 -0
  52. package/dist/components/Heading/index.js +94 -0
  53. package/dist/components/HifiIcon/index.js +31 -0
  54. package/dist/components/Icon/index.js +38 -0
  55. package/dist/components/IconButton/index.js +85 -0
  56. package/dist/components/IconSnippet/index.js +112 -0
  57. package/dist/components/IconSnippet/styled.d.ts +1 -1
  58. package/dist/components/IconSnippetList/index.js +25 -0
  59. package/dist/components/Image/index.js +84 -0
  60. package/dist/components/ImageHeader/index.js +262 -0
  61. package/dist/components/ImageHeader/styled.d.ts +4 -4
  62. package/dist/components/InlineLink/index.js +43 -0
  63. package/dist/components/Input/index.js +55 -0
  64. package/dist/components/Label/index.js +22 -0
  65. package/dist/components/Legend/index.js +60 -0
  66. package/dist/components/Link/index.js +19 -0
  67. package/dist/components/LinkAsButton/index.js +7 -0
  68. package/dist/components/LinkList/index.js +64 -0
  69. package/dist/components/LinkListItem/index.js +316 -0
  70. package/dist/components/LoadingSpinner/index.js +70 -0
  71. package/dist/components/Notification/index.js +181 -0
  72. package/dist/components/Overlay/index.js +33 -0
  73. package/dist/components/PickerGroup/index.js +282 -0
  74. package/dist/components/Price/index.js +18 -0
  75. package/dist/components/ProductCard/index.js +81 -0
  76. package/dist/components/RadioGroup/index.js +197 -0
  77. package/dist/components/ResponsiveImage/index.js +89 -0
  78. package/dist/components/RichText/index.js +7 -0
  79. package/dist/components/ScreenreaderOnly/index.js +6 -0
  80. package/dist/components/SearchInput/index.js +140 -0
  81. package/dist/components/SelectInput/index.js +160 -0
  82. package/dist/components/Stepper/index.js +205 -0
  83. package/dist/components/SuggestInput/index.js +387 -0
  84. package/dist/components/Switch/index.js +169 -0
  85. package/dist/components/TabularPrice/index.js +8 -0
  86. package/dist/components/TextList/index.js +10 -0
  87. package/dist/components/Textarea/index.js +156 -0
  88. package/dist/components/Tray/index.js +218 -0
  89. package/dist/easing-Dm-pO8SY.js +6 -0
  90. package/dist/filterProps-Cewck8OH.js +13 -0
  91. package/dist/foundations/GlobalStyle/index.js +3 -292
  92. package/dist/foundations/PatternProps/index.js +1 -0
  93. package/dist/foundations/media-query/forcedColors/index.js +12 -0
  94. package/dist/foundations/media-query/reducedMotion/index.js +21 -0
  95. package/dist/foundations/media-query/viewport/index.js +6 -0
  96. package/dist/foundations/token/getBackgroundColor/index.js +5 -0
  97. package/dist/foundations/token/getBodySize/index.js +13 -2
  98. package/dist/foundations/token/getBorderColor/index.js +5 -0
  99. package/dist/foundations/token/getBorderRadius/index.js +15 -0
  100. package/dist/foundations/token/getBorderWidth/index.js +19 -0
  101. package/dist/foundations/token/getBottomSpacing/index.js +14 -0
  102. package/dist/foundations/token/getFontWeight/index.js +13 -0
  103. package/dist/foundations/token/getHeadingSize/index.js +27 -0
  104. package/dist/foundations/token/getHoverColor/index.js +7 -0
  105. package/dist/foundations/token/getIconColor/index.js +5 -0
  106. package/dist/foundations/token/getObjectColor/index.js +5 -0
  107. package/dist/foundations/token/getOpacity/index.js +11 -0
  108. package/dist/foundations/token/getPressColor/index.js +7 -0
  109. package/dist/foundations/token/getSpacing/index.js +5 -0
  110. package/dist/foundations/token/getTextColor/index.js +5 -0
  111. package/dist/foundations/token/getTextDecoration/index.js +13 -0
  112. package/dist/getCssVar-BP6T9pFM.js +6 -0
  113. package/dist/hooks/useFocusWithin/index.js +36 -0
  114. package/dist/hooks/useForcedColors/index.js +9 -0
  115. package/dist/hooks/useMediaQuery/index.js +19 -0
  116. package/dist/hooks/useReducedMotion/index.js +9 -0
  117. package/dist/hooks/useThirdPartyConsent/index.js +54 -0
  118. package/dist/hooks/useViewport/index.js +24 -0
  119. package/dist/index-BXLT6ke-.js +79 -0
  120. package/dist/index-C4XnzWFL.js +61 -0
  121. package/dist/index-CeJsIf3Z.js +208 -0
  122. package/dist/index-Ck2bCrhT.js +32 -0
  123. package/dist/index-CzTqNQTT.js +79 -0
  124. package/dist/index-D6hvbziL.js +167 -0
  125. package/dist/index-DQhtQZ85.js +24 -0
  126. package/dist/props-Czq9XX2J.js +6 -0
  127. package/dist/{index-BaPlSfS3.js → renderInlineRichTextFromOpenText-CA52y1-B.js} +3 -105
  128. package/dist/shadow-u158mzuN.js +4 -0
  129. package/dist/styled-BpvuD699.js +45 -0
  130. package/dist/styled-CDWclYAa.js +124 -0
  131. package/dist/styled-CXSdomF5.js +34 -0
  132. package/dist/styled-CpoX5USb.js +71 -0
  133. package/dist/styled-DZo6MwrF.js +245 -0
  134. package/dist/styled-FNJyDkPV.js +165 -0
  135. package/dist/styled-Wlt68LfQ.js +133 -0
  136. package/dist/styled-ZpQohvyx.js +29 -0
  137. package/dist/tags-DI6H1biK.js +29 -0
  138. package/package.json +2 -1
  139. package/dist/index-BoPDwZgt.js +0 -18
@@ -0,0 +1,85 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { IconLoader, iconSizeSm } from "@vfde-react/inline-icon-library";
4
+ import styled from "styled-components";
5
+ import { s as shadow28 } from "../../shadow-u158mzuN.js";
6
+ import { getBorderRadius } from "../../foundations/token/getBorderRadius/index.js";
7
+ import { getBorderWidth } from "../../foundations/token/getBorderWidth/index.js";
8
+ import { getBottomSpacing } from "../../foundations/token/getBottomSpacing/index.js";
9
+ import { getObjectColor } from "../../foundations/token/getObjectColor/index.js";
10
+ import { getOpacity } from "../../foundations/token/getOpacity/index.js";
11
+ import { getSpacing } from "../../foundations/token/getSpacing/index.js";
12
+ import { b as borderRadiusMd, c as borderRadiusFull } from "../../BorderRadius-ClUShVLu.js";
13
+ import { d as borderWidthSelected } from "../../BorderWidth-DfOlyKK7.js";
14
+ import { a as opacityDisabled } from "../../Opacity-smkGiwsf.js";
15
+ import { a as spacingXs, s as spacingMd } from "../../Spacing-D0HQH9YJ.js";
16
+ import { b as buttonHeight, g as getButtonAppearance, p as primaryAppearance, a as ButtonAppearanceColor } from "../../styled-FNJyDkPV.js";
17
+ import { f as filterProps } from "../../filterProps-Cewck8OH.js";
18
+ import { g as getCssVar } from "../../getCssVar-BP6T9pFM.js";
19
+ const iconButtonShapeSquare = "square";
20
+ const iconButtonShapeCircle = "circle";
21
+ const IconButtonStyled = styled.button.withConfig({
22
+ shouldForwardProp: filterProps(),
23
+ displayName: "IconButtonStyled",
24
+ componentId: "sc-1ntcgv2-0"
25
+ })({
26
+ display: "flex",
27
+ alignItems: "center",
28
+ justifyContent: "center",
29
+ cursor: "pointer",
30
+ width: buttonHeight,
31
+ height: buttonHeight,
32
+ padding: getSpacing(spacingXs)
33
+ }, ({
34
+ $shape
35
+ }) => ({
36
+ borderRadius: getBorderRadius(iconButtonShapeSquare === $shape ? borderRadiusMd : borderRadiusFull)
37
+ }), ({
38
+ appearance = primaryAppearance
39
+ }) => getButtonAppearance(appearance), ({
40
+ floating = false,
41
+ appearance = primaryAppearance
42
+ }) => {
43
+ if (!floating) {
44
+ return {};
45
+ }
46
+ if (appearance === "tertiary") {
47
+ const background = getObjectColor(ButtonAppearanceColor[appearance]);
48
+ return {
49
+ boxShadow: `inset ${background} 0px 0px 0px ${getBorderWidth(borderWidthSelected)}, ${getCssVar(shadow28)}`
50
+ };
51
+ }
52
+ return {
53
+ boxShadow: getCssVar(shadow28)
54
+ };
55
+ }, () => ({
56
+ "&:hover": {
57
+ boxShadow: getCssVar(shadow28)
58
+ }
59
+ }), ({
60
+ disabled
61
+ }) => {
62
+ if (disabled) {
63
+ return {
64
+ pointerEvents: "none",
65
+ opacity: getOpacity(opacityDisabled)
66
+ };
67
+ }
68
+ return {};
69
+ }, ({
70
+ bottomSpacing = spacingMd
71
+ }) => getBottomSpacing({
72
+ bottomSpacing
73
+ }));
74
+ const IconButton = ({
75
+ label,
76
+ shape = iconButtonShapeCircle,
77
+ ...props
78
+ }) => {
79
+ return /* @__PURE__ */ jsx(IconButtonStyled, { ...props, "aria-label": label, $shape: shape, children: /* @__PURE__ */ jsx(IconLoader, { name: props.iconName, size: iconSizeSm, "aria-hidden": true, focusable: false }) });
80
+ };
81
+ export {
82
+ IconButton as default,
83
+ iconButtonShapeCircle,
84
+ iconButtonShapeSquare
85
+ };
@@ -0,0 +1,112 @@
1
+ "use client";
2
+ import { jsxs, jsx } from "react/jsx-runtime";
3
+ import { IconLoader, iconSizeMd, iconSize2xl } from "@vfde-react/inline-icon-library";
4
+ import Body from "../Body/index.js";
5
+ import Heading from "../Heading/index.js";
6
+ import InlineLink from "../InlineLink/index.js";
7
+ import { R as RichText } from "../../index-D6hvbziL.js";
8
+ import { d as divTagName } from "../../tags-DI6H1biK.js";
9
+ import { a as spacingXs, s as spacingMd } from "../../Spacing-D0HQH9YJ.js";
10
+ import Link from "../Link/index.js";
11
+ import styled from "styled-components";
12
+ import { getBottomSpacing } from "../../foundations/token/getBottomSpacing/index.js";
13
+ import { getSpacing } from "../../foundations/token/getSpacing/index.js";
14
+ import { f as filterProps } from "../../filterProps-Cewck8OH.js";
15
+ const iconSnippetSizeSmall = "small";
16
+ const iconSnippetSizeLarge = "large";
17
+ const iconSnippetPositionLeft = "left";
18
+ const iconSnippetPositionCenter = "center";
19
+ const iconSnippetAlignTop = "top";
20
+ const iconSnippetAlignCenter = "center";
21
+ const IconSnippetStyled = styled.div.withConfig({
22
+ shouldForwardProp: filterProps(),
23
+ displayName: "IconSnippetStyled",
24
+ componentId: "sc-uw0x7w-0"
25
+ })({
26
+ display: "flex"
27
+ }, ({
28
+ iconPosition
29
+ }) => ({
30
+ gap: getSpacing("center" === iconPosition ? spacingXs : spacingMd)
31
+ }), ({
32
+ iconAlign
33
+ }) => ({
34
+ alignItems: "top" === iconAlign ? "start" : iconAlign
35
+ }), ({
36
+ iconPosition
37
+ }) => {
38
+ if ("left" === iconPosition) {
39
+ return {};
40
+ }
41
+ return {
42
+ flexDirection: "column",
43
+ alignItems: "center"
44
+ };
45
+ }, ({
46
+ bottomSpacing = spacingMd
47
+ }) => getBottomSpacing({
48
+ bottomSpacing
49
+ }));
50
+ const IconLoaderStyled = styled(IconLoader).withConfig({
51
+ displayName: "IconLoaderStyled",
52
+ componentId: "sc-uw0x7w-1"
53
+ })({
54
+ flexShrink: 0
55
+ });
56
+ const IconSnippetContentStyled = styled.div.withConfig({
57
+ shouldForwardProp: filterProps(),
58
+ displayName: "IconSnippetContentStyled",
59
+ componentId: "sc-uw0x7w-2"
60
+ })({
61
+ display: "flex",
62
+ flexDirection: "column",
63
+ "& > :last-child": {
64
+ marginBottom: 0
65
+ }
66
+ }, ({
67
+ iconPosition
68
+ }) => ({
69
+ alignItems: "center" === iconPosition ? "center" : "flex-start"
70
+ }));
71
+ const getContents = (contents) => {
72
+ return contents.map((content) => {
73
+ if ("Heading" === content.component) {
74
+ return /* @__PURE__ */ jsx(Heading, { ...content, bottomSpacing: spacingXs, children: content.children }, content.uid);
75
+ }
76
+ if ("Body" === content.component) {
77
+ return /* @__PURE__ */ jsx(Body, { ...content, bottomSpacing: spacingXs, children: content.children }, content.uid);
78
+ }
79
+ if ("RichText" === content.component) {
80
+ return /* @__PURE__ */ jsx(RichText, { paragraphSpacing: spacingXs, ...content }, content.uid);
81
+ }
82
+ if ("InlineLink" === content.component) {
83
+ return /* @__PURE__ */ jsx(Body, { bottomSpacing: spacingXs, children: /* @__PURE__ */ jsx(InlineLink, { ...content, children: content.children }) }, content.uid);
84
+ }
85
+ if ("Link" === content.component) {
86
+ return /* @__PURE__ */ jsx(Link, { ...content, children: content.children }, content.uid);
87
+ }
88
+ return null;
89
+ });
90
+ };
91
+ const IconSnippet = ({
92
+ contents,
93
+ size = iconSnippetSizeSmall,
94
+ iconPosition = iconSnippetPositionLeft,
95
+ iconAlign = iconSnippetAlignTop,
96
+ tag = divTagName,
97
+ ...props
98
+ }) => {
99
+ return /* @__PURE__ */ jsxs(IconSnippetStyled, { ...props, iconPosition, iconAlign, as: tag, children: [
100
+ /* @__PURE__ */ jsx(IconLoaderStyled, { size: size === iconSnippetSizeSmall ? iconSizeMd : iconSize2xl, name: props.icon }),
101
+ /* @__PURE__ */ jsx(IconSnippetContentStyled, { as: tag, iconPosition, children: getContents(contents) })
102
+ ] });
103
+ };
104
+ export {
105
+ IconSnippet as default,
106
+ iconSnippetAlignCenter,
107
+ iconSnippetAlignTop,
108
+ iconSnippetPositionCenter,
109
+ iconSnippetPositionLeft,
110
+ iconSnippetSizeLarge,
111
+ iconSnippetSizeSmall
112
+ };
@@ -1,5 +1,5 @@
1
1
  import { IconSnippetPosition, IconSnippetProps } from './props';
2
- export declare const IconSnippetStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<IconSnippetProps, "size" | "icon" | "contents">>> & string;
2
+ export declare const IconSnippetStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<IconSnippetProps, "size" | "contents" | "icon">>> & string;
3
3
  export declare const IconLoaderStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('@vfde-react/inline-icon-library').IconLoaderProps, never>> & string & Omit<import('react').FC<import('@vfde-react/inline-icon-library').IconLoaderProps>, keyof import('react').Component<any, {}, any>>;
4
4
  export declare const IconSnippetContentStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
5
5
  iconPosition: IconSnippetPosition;
@@ -0,0 +1,25 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import Grid from "../Grid/index.js";
4
+ import GridItem from "../GridItem/index.js";
5
+ import IconSnippet from "../IconSnippet/index.js";
6
+ import { u as ulTagName, l as liTagName } from "../../tags-DI6H1biK.js";
7
+ import { b as spacingNone } from "../../Spacing-D0HQH9YJ.js";
8
+ const IconSnippetList = ({
9
+ component: _component,
10
+ items,
11
+ gridConfig = {
12
+ sm: 6,
13
+ md: 4,
14
+ lg: 2
15
+ },
16
+ bottomSpacing = spacingNone,
17
+ ...props
18
+ }) => {
19
+ return /* @__PURE__ */ jsx(Grid, { ...props, tag: ulTagName, bottomSpacing, children: items.map((item) => {
20
+ return /* @__PURE__ */ jsx(GridItem, { tag: liTagName, ...gridConfig, children: /* @__PURE__ */ jsx(IconSnippet, { ...item }) }, item.uid);
21
+ }) });
22
+ };
23
+ export {
24
+ IconSnippetList as default
25
+ };
@@ -0,0 +1,84 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import styled from "styled-components";
4
+ import { getBorderRadius } from "../../foundations/token/getBorderRadius/index.js";
5
+ import { getBottomSpacing } from "../../foundations/token/getBottomSpacing/index.js";
6
+ import { b as borderRadiusMd, a as borderRadiusNone } from "../../BorderRadius-ClUShVLu.js";
7
+ import { c as cornerStraight } from "../../CornerStyle-JEbGNArR.js";
8
+ import { f as filterProps } from "../../filterProps-Cewck8OH.js";
9
+ const objectFitContain = "contain";
10
+ const objectFitCover = "cover";
11
+ const objectFitNone = "none";
12
+ const horizontalAlignmentLeft = "left";
13
+ const horizontalAlignmentRight = "right";
14
+ const horizontalAlignmentCenter = "center";
15
+ const objectPositionCenter = "center";
16
+ const objectPositionLeftTop = "top left";
17
+ const objectPositionLeftCenter = "center left";
18
+ const objectPositionLeftBottom = "bottom left";
19
+ const objectPositionRightTop = "top right";
20
+ const objectPositionRightCenter = "center right";
21
+ const objectPositionRightBottom = "bottom right";
22
+ const aspectRatio1_1 = "1/1";
23
+ const aspectRatio3_4 = "3/4";
24
+ const aspectRatio16_9 = "16/9";
25
+ const aspectRatio21_9 = "21/9";
26
+ const aspectRatio32_9 = "32/9";
27
+ const aspectRatio48_9 = "48/9";
28
+ const ImageStyled = styled.img.withConfig({
29
+ shouldForwardProp: filterProps(),
30
+ displayName: "ImageStyled",
31
+ componentId: "sc-z3qszb-0"
32
+ })({
33
+ display: "block",
34
+ width: "100%"
35
+ }, ({
36
+ objectFit = "contain"
37
+ }) => ({
38
+ objectFit
39
+ }), ({
40
+ objectPosition
41
+ }) => ({
42
+ objectPosition
43
+ }), ({
44
+ horizontalAlignment = "left"
45
+ }) => ({
46
+ marginLeft: horizontalAlignment === "left" ? 0 : "auto",
47
+ marginRight: horizontalAlignment === "right" ? 0 : "auto"
48
+ }), ({
49
+ corners = cornerStraight
50
+ }) => ({
51
+ borderRadius: corners === "rounded" ? getBorderRadius(borderRadiusMd) : getBorderRadius(borderRadiusNone)
52
+ }), ({
53
+ aspectRatio
54
+ }) => ({
55
+ aspectRatio
56
+ }), getBottomSpacing);
57
+ const Image = ({
58
+ alt = "",
59
+ ...props
60
+ }) => /* @__PURE__ */ jsx(ImageStyled, { ..."" === alt ? {
61
+ "aria-hidden": true
62
+ } : {}, ...props, alt });
63
+ export {
64
+ aspectRatio16_9,
65
+ aspectRatio1_1,
66
+ aspectRatio21_9,
67
+ aspectRatio32_9,
68
+ aspectRatio3_4,
69
+ aspectRatio48_9,
70
+ Image as default,
71
+ horizontalAlignmentCenter,
72
+ horizontalAlignmentLeft,
73
+ horizontalAlignmentRight,
74
+ objectFitContain,
75
+ objectFitCover,
76
+ objectFitNone,
77
+ objectPositionCenter,
78
+ objectPositionLeftBottom,
79
+ objectPositionLeftCenter,
80
+ objectPositionLeftTop,
81
+ objectPositionRightBottom,
82
+ objectPositionRightCenter,
83
+ objectPositionRightTop
84
+ };
@@ -0,0 +1,262 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import Body from "../Body/index.js";
4
+ import { a as fontWeightLight } from "../../FontWeight-CR22KTex.js";
5
+ import { s as spacingMd, c as spacingSm, d as spacingXl, a as spacingXs, e as spacing2Xs, b as spacingNone } from "../../Spacing-D0HQH9YJ.js";
6
+ import { m as mediumSize } from "../../SizeTypes-Ck_RdzIf.js";
7
+ import { g as getUid, R as RichText } from "../../index-D6hvbziL.js";
8
+ import Button from "../Button/index.js";
9
+ import Container from "../Container/index.js";
10
+ import Heading, { headingAlignCenter } from "../Heading/index.js";
11
+ import { P as Price, c as priceSizeSm } from "../../index-CeJsIf3Z.js";
12
+ import styled from "styled-components";
13
+ import { B as Badge } from "../../index-CzTqNQTT.js";
14
+ import ButtonGroup from "../ButtonGroup/index.js";
15
+ import Grid from "../Grid/index.js";
16
+ import GridItem from "../GridItem/index.js";
17
+ import ResponsiveImage from "../ResponsiveImage/index.js";
18
+ import { v as viewport } from "../../index-Ck2bCrhT.js";
19
+ import { getBackgroundColor } from "../../foundations/token/getBackgroundColor/index.js";
20
+ import { getBodySize } from "../../foundations/token/getBodySize/index.js";
21
+ import { getSpacing } from "../../foundations/token/getSpacing/index.js";
22
+ import { a as colorBackgroundOverlay } from "../../BackgroundColor-JObp_2xA.js";
23
+ import { t as textBodyMd } from "../../TextBodySize-BcZR9mh2.js";
24
+ import { b as flexOrientationVertical } from "../../styled-CpoX5USb.js";
25
+ const imageHeaderVariantFull = "full";
26
+ const imageHeaderVariantSplit = "split";
27
+ const imageHeaderPositionRight = "right";
28
+ const imageHeaderPositionLeft = "left";
29
+ const getBadgeTopPosition = () => {
30
+ return `calc(-0.5 * (${getSpacing(spacing2Xs)} * 2 + ${getBodySize(textBodyMd).fontSize} * ${getBodySize(textBodyMd).lineHeight}))`;
31
+ };
32
+ const ImageHeaderStyled = styled(Grid).withConfig({
33
+ displayName: "ImageHeaderStyled",
34
+ componentId: "sc-7ig3h-0"
35
+ })({
36
+ alignItems: "center",
37
+ position: "relative",
38
+ marginRight: `calc(-1 * ${getSpacing(spacingMd)})`,
39
+ marginLeft: `calc(-1 * ${getSpacing(spacingMd)})`,
40
+ ...viewport.lg({
41
+ width: "100%",
42
+ margin: "0 auto"
43
+ })
44
+ }, ({
45
+ position,
46
+ variant
47
+ }) => ({
48
+ ...viewport.lg({
49
+ flexDirection: position === imageHeaderPositionRight ? "row" : "row-reverse",
50
+ ...variant === imageHeaderVariantFull && position === imageHeaderPositionRight && {
51
+ justifyContent: "flex-end"
52
+ }
53
+ })
54
+ }));
55
+ const ImageHeaderImagesContainerStyled = styled(GridItem).withConfig({
56
+ displayName: "ImageHeaderImagesContainerStyled",
57
+ componentId: "sc-7ig3h-1"
58
+ })({
59
+ ...viewport.lg({
60
+ flexGrow: "1",
61
+ width: "auto"
62
+ })
63
+ }, ({
64
+ variant,
65
+ position
66
+ }) => {
67
+ if (variant === imageHeaderVariantSplit) {
68
+ const marginSide = position === imageHeaderPositionRight ? "marginLeft" : "marginRight";
69
+ return {
70
+ ...viewport.lg({
71
+ [marginSide]: "calc(-1*(100vw - 100%) / 2)"
72
+ })
73
+ };
74
+ }
75
+ }, ({
76
+ variant
77
+ }) => {
78
+ if (variant === imageHeaderVariantFull) {
79
+ return {
80
+ ...viewport.lg({
81
+ flexBasis: "100%",
82
+ alignItems: "center",
83
+ marginRight: "calc(-1 * (100vw - 100%) / 2)",
84
+ marginLeft: "calc(-1 * (100vw - 100%) / 2)"
85
+ })
86
+ };
87
+ }
88
+ });
89
+ const ImageHeaderResponsiveImageStyled = styled(ResponsiveImage).withConfig({
90
+ displayName: "ImageHeaderResponsiveImageStyled",
91
+ componentId: "sc-7ig3h-2"
92
+ })({
93
+ ...viewport.lg({
94
+ width: "100%"
95
+ }),
96
+ img: {
97
+ ...viewport.lg({
98
+ height: "450px"
99
+ })
100
+ }
101
+ }, ({
102
+ variant
103
+ }) => {
104
+ if (variant === imageHeaderVariantFull) {
105
+ return {
106
+ img: {
107
+ minHeight: "450px",
108
+ ...viewport.lg({
109
+ minHeight: "unset"
110
+ })
111
+ }
112
+ };
113
+ }
114
+ }, ({
115
+ position,
116
+ variant
117
+ }) => {
118
+ if (variant === imageHeaderVariantSplit) {
119
+ return {
120
+ img: {
121
+ ...viewport.lg({
122
+ objectPosition: `${position === imageHeaderPositionLeft ? imageHeaderPositionLeft : imageHeaderPositionRight} center`
123
+ })
124
+ }
125
+ };
126
+ }
127
+ });
128
+ const ImageHeaderContentStyled = styled(GridItem).withConfig({
129
+ displayName: "ImageHeaderContentStyled",
130
+ componentId: "sc-7ig3h-3"
131
+ })({
132
+ padding: `${getSpacing(spacingXl)} ${getSpacing(spacingMd)}`,
133
+ gap: getSpacing(spacingSm),
134
+ alignItems: "center",
135
+ position: "relative",
136
+ ...viewport.lg({
137
+ alignItems: "flex-start",
138
+ padding: 0
139
+ })
140
+ }, ({
141
+ variant,
142
+ position,
143
+ contentGridDesktopColumns = 6
144
+ }) => {
145
+ if (variant === imageHeaderVariantFull) {
146
+ return {
147
+ width: "100%",
148
+ position: "absolute",
149
+ bottom: 0,
150
+ background: getBackgroundColor(colorBackgroundOverlay),
151
+ ...viewport.lg({
152
+ width: `${100 / (12 / contentGridDesktopColumns)}%`,
153
+ background: "none",
154
+ bottom: "auto",
155
+ justifyContent: "center"
156
+ })
157
+ };
158
+ }
159
+ if (variant === imageHeaderVariantSplit) {
160
+ const paddingSide = position === imageHeaderPositionRight ? "paddingLeft" : "paddingRight";
161
+ return {
162
+ ...viewport.lg({
163
+ [paddingSide]: getSpacing(spacingMd)
164
+ })
165
+ };
166
+ }
167
+ });
168
+ const ImageHeaderBadgeStyled = styled(Badge).withConfig({
169
+ displayName: "ImageHeaderBadgeStyled",
170
+ componentId: "sc-7ig3h-4"
171
+ })({
172
+ position: "absolute",
173
+ top: getBadgeTopPosition(),
174
+ ...viewport.lg({
175
+ position: "static",
176
+ top: 0
177
+ })
178
+ });
179
+ const ImageHeaderHeadingStyled = styled(Heading).withConfig({
180
+ displayName: "ImageHeaderHeadingStyled",
181
+ componentId: "sc-7ig3h-5"
182
+ })({
183
+ ...viewport.lg({
184
+ textAlign: "left"
185
+ })
186
+ });
187
+ const ImageHeaderButtonGroupStyled = styled(ButtonGroup).withConfig({
188
+ displayName: "ImageHeaderButtonGroupStyled",
189
+ componentId: "sc-7ig3h-6"
190
+ })({
191
+ marginTop: getSpacing(spacingXs),
192
+ width: "100%",
193
+ justifyContent: "center",
194
+ ...viewport.lg({
195
+ justifyContent: "flex-start"
196
+ })
197
+ }, ({
198
+ orientation
199
+ }) => flexOrientationVertical === orientation ? viewport.md({
200
+ width: "auto"
201
+ }) : {});
202
+ const ImageHeader = ({
203
+ responsiveImage,
204
+ badge,
205
+ heading,
206
+ subline,
207
+ price,
208
+ action,
209
+ variant = imageHeaderVariantSplit,
210
+ position = imageHeaderPositionLeft,
211
+ contentGridDesktopColumns = 6,
212
+ theme,
213
+ ...props
214
+ }) => {
215
+ const headingId = `heading-${getUid()}`;
216
+ const getSubline = (subline2) => {
217
+ if (!subline2) return null;
218
+ const commonProps = {
219
+ key: subline2.uid,
220
+ bottomSpacing: spacingNone
221
+ };
222
+ switch (subline2.component) {
223
+ case "Heading":
224
+ return /* @__PURE__ */ jsx(Heading, { ...subline2, ...commonProps, size: "md", tag: "div" });
225
+ case "RichText":
226
+ return /* @__PURE__ */ jsx(RichText, { ...subline2, ...commonProps });
227
+ case "Body":
228
+ return /* @__PURE__ */ jsx(Body, { ...subline2, ...commonProps, size: "sm" });
229
+ default:
230
+ return null;
231
+ }
232
+ };
233
+ const getAction = (action2) => {
234
+ if (!action2) return null;
235
+ switch (action2.component) {
236
+ case "Button":
237
+ case "ButtonAsLink":
238
+ return /* @__PURE__ */ jsx(Button, { ...action2, bottomSpacing: spacingNone });
239
+ case "ButtonGroup":
240
+ return /* @__PURE__ */ jsx(ImageHeaderButtonGroupStyled, { ...action2, bottomSpacing: spacingNone });
241
+ default:
242
+ return null;
243
+ }
244
+ };
245
+ return /* @__PURE__ */ jsx(Container, { padding: "None", className: props.className, children: /* @__PURE__ */ jsxs(ImageHeaderStyled, { ...props, position, variant, spacing: spacingNone, component: "Grid", children: [
246
+ /* @__PURE__ */ jsx(ImageHeaderImagesContainerStyled, { align: "center", variant, position, lg: 12 - contentGridDesktopColumns, children: /* @__PURE__ */ jsx(ImageHeaderResponsiveImageStyled, { images: responsiveImage.images, variant, position, bottomSpacing: spacingNone }) }),
247
+ /* @__PURE__ */ jsxs(ImageHeaderContentStyled, { variant, position, contentGridDesktopColumns, lg: contentGridDesktopColumns, className: "Dark" === theme ? " Dark" : "", children: [
248
+ badge && /* @__PURE__ */ jsx(ImageHeaderBadgeStyled, { ...badge, size: mediumSize, bottomSpacing: spacingNone }),
249
+ /* @__PURE__ */ jsx(ImageHeaderHeadingStyled, { ...heading, id: headingId, align: headingAlignCenter, weight: fontWeightLight, bottomSpacing: spacingNone }),
250
+ getSubline(subline),
251
+ price && /* @__PURE__ */ jsx(Price, { ...price, size: priceSizeSm, bottomSpacing: spacingNone }),
252
+ getAction(action)
253
+ ] })
254
+ ] }) });
255
+ };
256
+ export {
257
+ ImageHeader as default,
258
+ imageHeaderPositionLeft,
259
+ imageHeaderPositionRight,
260
+ imageHeaderVariantFull,
261
+ imageHeaderVariantSplit
262
+ };
@@ -1,9 +1,9 @@
1
1
  import { ImageHeaderProps } from './props';
2
2
  export declare const getBadgeTopPosition: () => string;
3
- export declare const ImageHeaderStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('../Grid').GridProps, Pick<ImageHeaderProps, "variant" | "position">>> & string & Omit<import('react').FC<import('../Grid').GridProps>, keyof import('react').Component<any, {}, any>>;
4
- export declare const ImageHeaderImagesContainerStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('../GridItem').GridItemProps, Pick<ImageHeaderProps, "variant" | "position">>> & string & Omit<import('react').FC<import('../GridItem').GridItemProps>, keyof import('react').Component<any, {}, any>>;
5
- export declare const ImageHeaderResponsiveImageStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('../ResponsiveImage').ResponsiveImageProps, Pick<ImageHeaderProps, "variant" | "position">>> & string & Omit<import('react').FC<import('../ResponsiveImage').ResponsiveImageProps>, keyof import('react').Component<any, {}, any>>;
6
- export declare const ImageHeaderContentStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('../GridItem').GridItemProps, Pick<ImageHeaderProps, "variant" | "position" | "contentGridDesktopColumns">>> & string & Omit<import('react').FC<import('../GridItem').GridItemProps>, keyof import('react').Component<any, {}, any>>;
3
+ export declare const ImageHeaderStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('../Grid').GridProps, Pick<ImageHeaderProps, "position" | "variant">>> & string & Omit<import('react').FC<import('../Grid').GridProps>, keyof import('react').Component<any, {}, any>>;
4
+ export declare const ImageHeaderImagesContainerStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('../GridItem').GridItemProps, Pick<ImageHeaderProps, "position" | "variant">>> & string & Omit<import('react').FC<import('../GridItem').GridItemProps>, keyof import('react').Component<any, {}, any>>;
5
+ export declare const ImageHeaderResponsiveImageStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('../ResponsiveImage').ResponsiveImageProps, Pick<ImageHeaderProps, "position" | "variant">>> & string & Omit<import('react').FC<import('../ResponsiveImage').ResponsiveImageProps>, keyof import('react').Component<any, {}, any>>;
6
+ export declare const ImageHeaderContentStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('../GridItem').GridItemProps, Pick<ImageHeaderProps, "position" | "variant" | "contentGridDesktopColumns">>> & string & Omit<import('react').FC<import('../GridItem').GridItemProps>, keyof import('react').Component<any, {}, any>>;
7
7
  export declare const ImageHeaderBadgeStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('../Badge').BadgeProps, never>> & string & Omit<import('react').FC<import('../Badge').BadgeProps>, keyof import('react').Component<any, {}, any>>;
8
8
  export declare const ImageHeaderHeadingStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('../Heading').HeadingProps, never>> & string & Omit<import('react').FC<import('../Heading').HeadingProps>, keyof import('react').Component<any, {}, any>>;
9
9
  export declare const ImageHeaderButtonGroupStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('../ButtonGroup').ButtonGroupProps, never>> & string & Omit<import('react').FC<import('../ButtonGroup').ButtonGroupProps>, keyof import('react').Component<any, {}, any>>;
@@ -0,0 +1,43 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import styled from "styled-components";
4
+ import forcedColors from "../../foundations/media-query/forcedColors/index.js";
5
+ import { e as ease_in_sine } from "../../easing-Dm-pO8SY.js";
6
+ import { getBorderColor } from "../../foundations/token/getBorderColor/index.js";
7
+ import { getBorderWidth } from "../../foundations/token/getBorderWidth/index.js";
8
+ import { getTextColor } from "../../foundations/token/getTextColor/index.js";
9
+ import { c as colorBorderFocus } from "../../BorderColor-BummoQ1-.js";
10
+ import { a as borderWidthFocus } from "../../BorderWidth-DfOlyKK7.js";
11
+ import { a as colorTextNeutral, f as colorTextBrand } from "../../TextColor-BXiR5Uq9.js";
12
+ import { f as filterProps } from "../../filterProps-Cewck8OH.js";
13
+ const hover = {
14
+ textDecoration: "none",
15
+ color: getTextColor(colorTextBrand)
16
+ };
17
+ const InlineLinkStyled = styled.a.withConfig({
18
+ shouldForwardProp: filterProps(),
19
+ displayName: "InlineLinkStyled",
20
+ componentId: "sc-ztdjf-0"
21
+ })({
22
+ cursor: "pointer",
23
+ color: getTextColor(colorTextNeutral),
24
+ textDecoration: "underline",
25
+ transition: `color 0.2s ${ease_in_sine}`,
26
+ verticalAlign: "baseline",
27
+ "&:focus-visible": {
28
+ ...forcedColors({
29
+ outline: `${getBorderWidth(borderWidthFocus)} solid CanvasText`
30
+ }),
31
+ boxShadow: `${getBorderColor(colorBorderFocus)} 0px 0px 0px ${getBorderWidth(borderWidthFocus)}`,
32
+ outline: "none",
33
+ ...hover
34
+ },
35
+ "&:visited": {
36
+ color: getTextColor(colorTextNeutral)
37
+ },
38
+ "&:hover": hover
39
+ });
40
+ const InlineLink = (props) => /* @__PURE__ */ jsx(InlineLinkStyled, { ...props, children: props.children });
41
+ export {
42
+ InlineLink as default
43
+ };