@vodafone_de/brix-components 7.0.10 → 7.0.11

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.
@@ -648,6 +648,7 @@ const IconLoader = ({
648
648
  ...props
649
649
  }) => {
650
650
  const MappedIcon = mapNameToInlineIcons[name];
651
+ if (!MappedIcon) return null;
651
652
  return /* @__PURE__ */ jsx(MappedIcon, { ...props, className });
652
653
  };
653
654
  export {
@@ -0,0 +1,6 @@
1
+ import { FC } from 'react';
2
+ import { TabGroupProps } from './props';
3
+ declare const TabGroup: FC<TabGroupProps>;
4
+ export default TabGroup;
5
+ export * from './props';
6
+ export * from './styled';
@@ -0,0 +1,314 @@
1
+ "use client";
2
+ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
3
+ import { useState, useRef, useEffect } from "react";
4
+ import IconLoader from "../IconLoader/index.js";
5
+ import { b as iconSizeSm } from "../../styled-DPHfwWsx.js";
6
+ import styled from "styled-components";
7
+ import Container from "../Container/index.js";
8
+ import Flex from "../Flex/index.js";
9
+ import forcedColors from "../../foundations/media-query/forcedColors/index.js";
10
+ import { getBorderColor } from "../../foundations/token/getBorderColor/index.js";
11
+ import { getBorderRadius } from "../../foundations/token/getBorderRadius/index.js";
12
+ import { getBorderWidth } from "../../foundations/token/getBorderWidth/index.js";
13
+ import { getFontWeight } from "../../foundations/token/getFontWeight/index.js";
14
+ import { getHoverColor } from "../../foundations/token/getHoverColor/index.js";
15
+ import { getObjectColor } from "../../foundations/token/getObjectColor/index.js";
16
+ import { getSpacing } from "../../foundations/token/getSpacing/index.js";
17
+ import { c as colorBackgroundNeutral } from "../../BackgroundColor-e0N9tdDR.js";
18
+ import { j as colorBorderSubtle, c as colorBorderFocus } from "../../BorderColor-BummoQ1-.js";
19
+ import { d as borderRadiusSm } from "../../BorderRadius-ClUShVLu.js";
20
+ import { a as borderWidthFocus } from "../../BorderWidth-DfOlyKK7.js";
21
+ import { f as fontWeightBold } from "../../FontWeight-DEBGHbtO.js";
22
+ import { c as colorObjectBrand } from "../../ObjectColor-BZDBuV8H.js";
23
+ import { c as spacingSm, a as spacingXs, e as spacing2Xs } from "../../Spacing-D0HQH9YJ.js";
24
+ import { a as filterProps } from "../../filterProps-CBnuV0LI.js";
25
+ import { d as flexJustifyCenter } from "../../styled-CPUu8mvT.js";
26
+ const tabOrientationHorizontal = "horizontal";
27
+ const tabOrientationVertical = "vertical";
28
+ const tabGroupWidthFull = "full";
29
+ const tabGroupWidthAuto = "auto";
30
+ const TabGroupTabsScrollableContainerStyled = styled.div.withConfig({
31
+ shouldForwardProp: filterProps(),
32
+ displayName: "TabGroupTabsScrollableContainerStyled",
33
+ componentId: "sc-qawwg-0"
34
+ })(({
35
+ width
36
+ }) => ({
37
+ width: width || "100%",
38
+ position: "relative",
39
+ ...width === "auto" && {
40
+ overflowX: "auto",
41
+ /* Firefox */
42
+ scrollbarWidth: "none",
43
+ /* IE and Edge */
44
+ msOverflowStyle: "none",
45
+ /* Webkit (Chrome, Safari, Opera) */
46
+ "::-webkit-scrollbar": {
47
+ display: "none"
48
+ }
49
+ }
50
+ }));
51
+ const TabGroupTabsStyled = styled(Flex).withConfig({
52
+ displayName: "TabGroupTabsStyled",
53
+ componentId: "sc-qawwg-1"
54
+ })({
55
+ display: "flex",
56
+ gap: 0,
57
+ width: "fit-content",
58
+ borderBottom: `${getBorderWidth("Divider")} solid ${getBorderColor(colorBorderSubtle)}`,
59
+ ...forcedColors({
60
+ borderBottom: `${getBorderWidth("Divider")} solid CanvasText`
61
+ })
62
+ });
63
+ const TabStyled = styled.button.withConfig({
64
+ shouldForwardProp: filterProps(["tabOrientation", "width"]),
65
+ displayName: "TabStyled",
66
+ componentId: "sc-qawwg-2"
67
+ })({
68
+ background: "none",
69
+ border: "none",
70
+ color: "inherit",
71
+ cursor: "pointer",
72
+ display: "flex",
73
+ alignItems: "center",
74
+ whiteSpace: "nowrap",
75
+ padding: getSpacing(spacingSm),
76
+ borderRadius: getBorderRadius(borderRadiusSm),
77
+ justifyContent: flexJustifyCenter,
78
+ "&:focus-visible": {
79
+ outline: "none",
80
+ boxShadow: `inset 0px 0px 0px 4px ${getBorderColor(colorBorderFocus)} `,
81
+ borderRadius: `${getBorderRadius(borderRadiusSm)} ${getBorderRadius(borderRadiusSm)} 0 0`,
82
+ ...forcedColors({
83
+ outline: `${getBorderWidth(borderWidthFocus)} solid ${getBorderColor(colorBorderFocus)}`,
84
+ outlineOffset: "-6px",
85
+ borderRadius: `${getBorderRadius(borderRadiusSm)} ${getBorderRadius(borderRadiusSm)} 0 0`
86
+ })
87
+ },
88
+ "&:hover": {
89
+ background: getHoverColor(colorBackgroundNeutral),
90
+ ...forcedColors({
91
+ background: "transparent"
92
+ })
93
+ }
94
+ }, ({
95
+ tabOrientation
96
+ }) => ({
97
+ flexDirection: tabOrientation === tabOrientationVertical ? "column" : "row",
98
+ gap: tabOrientation === tabOrientationVertical ? getSpacing(spacingXs) : getSpacing(spacing2Xs)
99
+ }), ({
100
+ width
101
+ }) => ({
102
+ ...width === "full" && {
103
+ flex: 1
104
+ }
105
+ }));
106
+ const TabLabelStyled = styled.span.withConfig({
107
+ displayName: "TabLabelStyled",
108
+ componentId: "sc-qawwg-3"
109
+ })({
110
+ '[aria-selected="true"] &': {
111
+ fontWeight: getFontWeight(fontWeightBold)
112
+ }
113
+ });
114
+ const TabGroupIndicatorStyled = styled.div.withConfig({
115
+ displayName: "TabGroupIndicatorStyled",
116
+ componentId: "sc-qawwg-4"
117
+ })({
118
+ position: "absolute",
119
+ bottom: "1px",
120
+ width: "50px",
121
+ height: "4px",
122
+ borderRadius: `${getBorderRadius(borderRadiusSm)} ${getBorderRadius(borderRadiusSm)} 0 0`,
123
+ background: getObjectColor(colorObjectBrand),
124
+ transition: "all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms",
125
+ ...forcedColors({
126
+ background: "SelectedItem"
127
+ })
128
+ });
129
+ const PanelStyled = styled(Container).withConfig({
130
+ displayName: "PanelStyled",
131
+ componentId: "sc-qawwg-5"
132
+ })({
133
+ "&:focus-visible": {
134
+ outline: `4px solid ${getBorderColor(colorBorderFocus)}`,
135
+ borderRadius: `${getBorderRadius(borderRadiusSm)} ${getBorderRadius(borderRadiusSm)} 0 0`,
136
+ ...forcedColors({
137
+ outline: "4px solid CanvasText"
138
+ })
139
+ }
140
+ });
141
+ const TabGroup = ({
142
+ tabs,
143
+ tabOrientation = tabOrientationHorizontal,
144
+ value,
145
+ width = tabGroupWidthFull,
146
+ "aria-label": ariaLabel,
147
+ onTabChange
148
+ }) => {
149
+ if (!(tabs == null ? void 0 : tabs.length)) return null;
150
+ const getValueFromUrl = () => {
151
+ if (typeof window === "undefined") return null;
152
+ const hash = window.location.hash;
153
+ if (!hash.startsWith("#tab-")) return null;
154
+ const tabValueFromHash = hash.replace("#tab-", "");
155
+ return tabs.some((tab) => tab.value === tabValueFromHash) ? tabValueFromHash : null;
156
+ };
157
+ const [activeTab, setActiveTab] = useState(() => {
158
+ return value || tabs[0].value || "";
159
+ });
160
+ const [indicatorStyle, setIndicatorStyle] = useState({
161
+ left: 0,
162
+ width: 0
163
+ });
164
+ const tabRefs = useRef({});
165
+ const tabsContainerRef = useRef(null);
166
+ useEffect(() => {
167
+ const handleHashChange = () => {
168
+ const valueFromUrl = getValueFromUrl();
169
+ if (valueFromUrl) {
170
+ setActiveTab(valueFromUrl);
171
+ onTabChange == null ? void 0 : onTabChange(valueFromUrl);
172
+ }
173
+ };
174
+ window.addEventListener("hashchange", handleHashChange);
175
+ handleHashChange();
176
+ return () => window.removeEventListener("hashchange", handleHashChange);
177
+ }, [tabs]);
178
+ useEffect(() => {
179
+ const valueFromUrl = getValueFromUrl();
180
+ if (value !== void 0 && value !== activeTab && !valueFromUrl) {
181
+ setActiveTab(value);
182
+ }
183
+ }, [value]);
184
+ useEffect(() => {
185
+ const valueFromUrl = getValueFromUrl();
186
+ if (valueFromUrl) {
187
+ setActiveTab(valueFromUrl);
188
+ onTabChange == null ? void 0 : onTabChange(valueFromUrl);
189
+ }
190
+ }, []);
191
+ useEffect(() => {
192
+ const activeEl = tabRefs.current[activeTab];
193
+ if (!activeEl) return;
194
+ const updateIndicator = () => {
195
+ setIndicatorStyle({
196
+ left: activeEl.offsetLeft,
197
+ width: activeEl.offsetWidth
198
+ });
199
+ };
200
+ const resizeObserver = new ResizeObserver(() => {
201
+ updateIndicator();
202
+ });
203
+ resizeObserver.observe(activeEl);
204
+ requestAnimationFrame(() => {
205
+ updateIndicator();
206
+ });
207
+ window.addEventListener("resize", updateIndicator);
208
+ return () => {
209
+ resizeObserver.disconnect();
210
+ window.removeEventListener("resize", updateIndicator);
211
+ };
212
+ }, [activeTab, tabs]);
213
+ useEffect(() => {
214
+ if (width !== "auto") return;
215
+ const activeEl = tabRefs.current[activeTab];
216
+ if (activeEl) {
217
+ requestAnimationFrame(() => {
218
+ scrollTabIntoView(activeEl);
219
+ });
220
+ }
221
+ }, [activeTab, width]);
222
+ const scrollTabIntoView = (tabEl) => {
223
+ if (width !== "auto") return;
224
+ const containerEl = tabsContainerRef.current;
225
+ if (!containerEl) return;
226
+ const tabLeft = tabEl.offsetLeft;
227
+ const tabRight = tabLeft + tabEl.offsetWidth;
228
+ const containerScrollLeft = containerEl.scrollLeft;
229
+ const containerWidth = containerEl.offsetWidth;
230
+ if (tabLeft < containerScrollLeft) {
231
+ containerEl.scrollTo({
232
+ left: tabLeft,
233
+ behavior: "smooth"
234
+ });
235
+ } else if (tabRight > containerScrollLeft + containerWidth) {
236
+ containerEl.scrollTo({
237
+ left: tabRight - containerWidth,
238
+ behavior: "smooth"
239
+ });
240
+ }
241
+ };
242
+ const clearHash = () => {
243
+ if (typeof window === "undefined") return;
244
+ const currentHash = window.location.hash.replace("#", "");
245
+ if (currentHash.startsWith("tab-")) {
246
+ history.replaceState(null, "", window.location.pathname + window.location.search);
247
+ }
248
+ };
249
+ const handleTabClick = (newValue) => {
250
+ if (newValue !== activeTab) {
251
+ setActiveTab(newValue);
252
+ onTabChange == null ? void 0 : onTabChange(newValue);
253
+ }
254
+ clearHash();
255
+ const tabEl = tabRefs.current[newValue];
256
+ if (tabEl) scrollTabIntoView(tabEl);
257
+ };
258
+ const handleKeyDown = (e, index) => {
259
+ const lastIndex = tabs.length - 1;
260
+ if (e.key === "ArrowRight" || e.key === "ArrowLeft") {
261
+ const isRight = e.key === "ArrowRight";
262
+ const newIndex = isRight ? index === lastIndex ? 0 : index + 1 : index === 0 ? lastIndex : index - 1;
263
+ const newTabValue = tabs[newIndex].value;
264
+ e.preventDefault();
265
+ const newTabEl = tabRefs.current[newTabValue];
266
+ if (newTabEl) {
267
+ newTabEl.focus();
268
+ scrollTabIntoView(newTabEl);
269
+ }
270
+ }
271
+ if (e.key === "Enter" || e.key === " ") {
272
+ e.preventDefault();
273
+ const newTabValue = tabs[index].value;
274
+ setActiveTab(newTabValue);
275
+ onTabChange == null ? void 0 : onTabChange(newTabValue);
276
+ clearHash();
277
+ }
278
+ };
279
+ const getTabs = tabs.map((tab, tabIndex) => {
280
+ const tabValue = tab.value;
281
+ const isActive = tabValue === activeTab;
282
+ return /* @__PURE__ */ jsxs(TabStyled, { tabOrientation, width, type: "button", ref: (el) => {
283
+ tabRefs.current[tabValue] = el;
284
+ }, onClick: () => handleTabClick(tabValue), "aria-selected": isActive, tabIndex: isActive ? 0 : -1, role: "tab", id: `tab-${tabValue}`, "aria-controls": `tabpanel-${tabValue}`, onKeyDown: (e) => handleKeyDown(e, tabIndex), children: [
285
+ tab.icon ? /* @__PURE__ */ jsx(IconLoader, { name: tab.icon, size: iconSizeSm }) : null,
286
+ /* @__PURE__ */ jsx(TabLabelStyled, { children: tab.label })
287
+ ] }, `tab-${tabIndex}`);
288
+ });
289
+ const getPanels = tabs.map((tab, tabIndex) => {
290
+ const tabValue = tab.value;
291
+ const isActive = tabValue === activeTab;
292
+ return /* @__PURE__ */ jsx(PanelStyled, { role: "tabpanel", id: `tabpanel-${tabValue}`, "aria-labelledby": `tab-${tabValue}`, hidden: !isActive, tabIndex: 0, children: tab.panelContent }, `tabpanel-${tabIndex}`);
293
+ });
294
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
295
+ /* @__PURE__ */ jsxs(TabGroupTabsScrollableContainerStyled, { width, ref: tabsContainerRef, children: [
296
+ /* @__PURE__ */ jsx(TabGroupTabsStyled, { "aria-label": ariaLabel, role: "tablist", children: getTabs }),
297
+ /* @__PURE__ */ jsx(TabGroupIndicatorStyled, { style: indicatorStyle })
298
+ ] }),
299
+ getPanels
300
+ ] });
301
+ };
302
+ export {
303
+ PanelStyled,
304
+ TabGroupIndicatorStyled,
305
+ TabGroupTabsScrollableContainerStyled,
306
+ TabGroupTabsStyled,
307
+ TabLabelStyled,
308
+ TabStyled,
309
+ TabGroup as default,
310
+ tabGroupWidthAuto,
311
+ tabGroupWidthFull,
312
+ tabOrientationHorizontal,
313
+ tabOrientationVertical
314
+ };
@@ -0,0 +1,53 @@
1
+ import { IconName } from '@vfde-react/inline-icon-library/IconName';
2
+ import { ButtonHTMLAttributes, HTMLAttributes, ReactNode } from 'react';
3
+ import { PatternProps } from '../../foundations/PatternProps';
4
+ export declare const tabOrientationHorizontal = "horizontal";
5
+ export declare const tabOrientationVertical = "vertical";
6
+ export declare const tabGroupWidthFull = "full";
7
+ export declare const tabGroupWidthAuto = "auto";
8
+ export type TabOrientation = typeof tabOrientationHorizontal | typeof tabOrientationVertical;
9
+ export type TabGroupWidth = typeof tabGroupWidthFull | typeof tabGroupWidthAuto;
10
+ export interface TabProps extends ButtonHTMLAttributes<HTMLInputElement> {
11
+ /**
12
+ * Specify a system icon to be displayed to the left of the label.
13
+ */
14
+ icon?: IconName;
15
+ /**
16
+ * Label for the tab
17
+ */
18
+ label: string;
19
+ /**
20
+ * Unique tab value
21
+ */
22
+ value?: string;
23
+ /**
24
+ * Content of the tab
25
+ */
26
+ panelContent: ReactNode;
27
+ }
28
+ export interface TabGroupProps extends PatternProps, HTMLAttributes<HTMLDivElement> {
29
+ /**
30
+ * Pin component's name from string to the concrete name
31
+ */
32
+ component?: 'TabGroup';
33
+ /**
34
+ * List of tabs
35
+ */
36
+ tabs: TabProps[];
37
+ /**
38
+ * TabGroup tabs orientation, can be horizontal or vertical
39
+ */
40
+ tabOrientation?: TabOrientation;
41
+ /**
42
+ * TabGroup width, when it's Auto, the TabGroup is scrollable horizontally
43
+ */
44
+ width?: TabGroupWidth;
45
+ /**
46
+ * Controlled value of the selected tab
47
+ */
48
+ value: string;
49
+ /**
50
+ * Callback when a tab is selected
51
+ */
52
+ onTabChange?: (value: string) => void;
53
+ }
@@ -0,0 +1,7 @@
1
+ import { TabGroupProps } from './props';
2
+ export declare const TabGroupTabsScrollableContainerStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<TabGroupProps, "width">>> & string;
3
+ export declare const TabGroupTabsStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('../Flex').FlexProps, never>> & string & Omit<import('react').FC<import('../Flex').FlexProps>, keyof import('react').Component<any, {}, any>>;
4
+ export declare const TabStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, Pick<TabGroupProps, "width" | "tabOrientation">>> & string;
5
+ export declare const TabLabelStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>> & string;
6
+ export declare const TabGroupIndicatorStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
7
+ export declare const PanelStyled: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('../Container').ContainerProps, never>> & string & Omit<import('react').FC<import('../Container').ContainerProps>, keyof import('react').Component<any, {}, any>>;
package/dist/index.d.ts CHANGED
@@ -10,6 +10,8 @@ export * from './components/TextList';
10
10
  export { default as TextList } from './components/TextList';
11
11
  export * from './components/TabularPrice';
12
12
  export { default as TabularPrice } from './components/TabularPrice';
13
+ export * from './components/TabGroup';
14
+ export { default as TabGroup } from './components/TabGroup';
13
15
  export * from './components/Switch';
14
16
  export { default as Switch } from './components/Switch';
15
17
  export * from './components/SuggestInput';
package/dist/index.js CHANGED
@@ -4,76 +4,77 @@ import { default as default4 } from "./components/TimeInput/index.js";
4
4
  import { default as default5 } from "./components/Textarea/index.js";
5
5
  import { R, T, a } from "./index-9io8adeQ.js";
6
6
  import { P, T as T2, c, g, f, p, a as a2, e, d, b } from "./index-TImInHXt.js";
7
- import { default as default6 } from "./components/Switch/index.js";
8
- import { default as default7 } from "./components/SuggestInput/index.js";
9
- import { default as default8 } from "./components/Stepper/index.js";
10
- import { default as default9 } from "./components/SelectInput/index.js";
11
- import { default as default10 } from "./components/SearchInput/index.js";
7
+ import { PanelStyled, default as default6, TabGroupIndicatorStyled, TabGroupTabsScrollableContainerStyled, TabGroupTabsStyled, TabLabelStyled, TabStyled, tabGroupWidthAuto, tabGroupWidthFull, tabOrientationHorizontal, tabOrientationVertical } from "./components/TabGroup/index.js";
8
+ import { default as default7 } from "./components/Switch/index.js";
9
+ import { default as default8 } from "./components/SuggestInput/index.js";
10
+ import { default as default9 } from "./components/Stepper/index.js";
11
+ import { default as default10 } from "./components/SelectInput/index.js";
12
+ import { default as default11 } from "./components/SearchInput/index.js";
12
13
  import { S } from "./index-GwyCjtti.js";
13
- import { default as default11 } from "./components/ResponsiveImage/index.js";
14
- import { HiddenRadioStyled, default as default12, StarLabelStyled, StarsWrapperStyled } from "./components/Rating/index.js";
15
- import { default as default13 } from "./components/RadioGroup/index.js";
16
- import { default as default14 } from "./components/ProductCard/index.js";
17
- import { default as default15 } from "./components/PickerGroup/index.js";
18
- import { default as default16, overlayAppearancePrimary, overlayAppearanceSecondary } from "./components/Overlay/index.js";
19
- import { default as default17, notificationStatusError, notificationStatusInfo, notificationStatusSuccess, notificationStatusWarning } from "./components/Notification/index.js";
20
- import { default as default18, mediaTextPositionLeft, mediaTextPositionRight, mediaTextPositionTop } from "./components/MediaText/index.js";
21
- import { default as default19 } from "./components/LoadingSpinner/index.js";
22
- import { default as default20, linkListItemVariantHorizontal, linkListItemVariantVertical } from "./components/LinkListItem/index.js";
23
- import { default as default21, linkListVariantColumn, linkListVariantRow } from "./components/LinkList/index.js";
14
+ import { default as default12 } from "./components/ResponsiveImage/index.js";
15
+ import { HiddenRadioStyled, default as default13, StarLabelStyled, StarsWrapperStyled } from "./components/Rating/index.js";
16
+ import { default as default14 } from "./components/RadioGroup/index.js";
17
+ import { default as default15 } from "./components/ProductCard/index.js";
18
+ import { default as default16 } from "./components/PickerGroup/index.js";
19
+ import { default as default17, overlayAppearancePrimary, overlayAppearanceSecondary } from "./components/Overlay/index.js";
20
+ import { default as default18, notificationStatusError, notificationStatusInfo, notificationStatusSuccess, notificationStatusWarning } from "./components/Notification/index.js";
21
+ import { default as default19, mediaTextPositionLeft, mediaTextPositionRight, mediaTextPositionTop } from "./components/MediaText/index.js";
22
+ import { default as default20 } from "./components/LoadingSpinner/index.js";
23
+ import { default as default21, linkListItemVariantHorizontal, linkListItemVariantVertical } from "./components/LinkListItem/index.js";
24
+ import { default as default22, linkListVariantColumn, linkListVariantRow } from "./components/LinkList/index.js";
24
25
  import { L } from "./index-Cqh8IRpl.js";
25
- import { default as default22 } from "./components/Link/index.js";
26
- import { default as default23 } from "./components/Legend/index.js";
27
- import { default as default24 } from "./components/Label/index.js";
28
- import { default as default25 } from "./components/Input/index.js";
29
- import { default as default26 } from "./components/InlineLink/index.js";
30
- import { default as default27 } from "./components/InlineIcon/index.js";
31
- import { default as default28, imageHeaderPositionLeft, imageHeaderPositionRight, imageHeaderVariantFull, imageHeaderVariantSplit } from "./components/ImageHeader/index.js";
32
- import { default as default29, aspectRatio16_9, aspectRatio1_1, aspectRatio21_9, aspectRatio32_9, aspectRatio3_4, aspectRatio48_9, horizontalAlignmentCenter, horizontalAlignmentLeft, horizontalAlignmentRight, objectFitContain, objectFitCover, objectFitNone, objectPositionCenter, objectPositionLeftBottom, objectPositionLeftCenter, objectPositionLeftTop, objectPositionRightBottom, objectPositionRightCenter, objectPositionRightTop } from "./components/Image/index.js";
33
- import { default as default30 } from "./components/IconSnippetList/index.js";
34
- import { default as default31, iconSnippetAlignCenter, iconSnippetAlignTop, iconSnippetPositionCenter, iconSnippetPositionLeft, iconSnippetSize3Xl, iconSnippetSizeLarge, iconSnippetSizeSmall } from "./components/IconSnippet/index.js";
35
- import { default as default32 } from "./components/IconLoader/index.js";
36
- import { default as default33, iconButtonShapeCircle, iconButtonShapeSquare } from "./components/IconButton/index.js";
37
- import { default as default34, iconSize6xl, iconSize7xl, iconSize8xl, iconSize9xl } from "./components/Icon/index.js";
38
- import { default as default35 } from "./components/HifiIcon/index.js";
39
- import { default as default36, headingAlignCenter, headingAlignLeft } from "./components/Heading/index.js";
40
- import { default as default37 } from "./components/GridItem/index.js";
41
- import { default as default38 } from "./components/Grid/index.js";
42
- import { default as default39 } from "./components/GoogleMap/index.js";
43
- import { default as default40, inputStatusIcons } from "./components/FormHelperStatusIcon/index.js";
44
- import { default as default41 } from "./components/FormHelperMessage/index.js";
45
- import { default as default42 } from "./components/FormHelperLabel/index.js";
46
- import { default as default43 } from "./components/FormElement/index.js";
47
- import { default as default44 } from "./components/Form/index.js";
48
- import { default as default45 } from "./components/FootnoteLink/index.js";
49
- import { default as default46 } from "./components/FootnoteContent/index.js";
50
- import { default as default47, flexItemAutoGrow, flexItemFullGrow } from "./components/FlexItem/index.js";
51
- import { default as default48 } from "./components/Flex/index.js";
52
- import { default as default49 } from "./components/FilterGroup/index.js";
53
- import { default as default50 } from "./components/Fieldset/index.js";
54
- import { default as default51 } from "./components/Divider/index.js";
55
- import { default as default52 } from "./components/DiscoveryCardGroup/index.js";
56
- import { default as default53, discoveryCardOrientationHorizontal, discoveryCardOrientationVertical } from "./components/DiscoveryCard/index.js";
57
- import { default as default54 } from "./components/Dialog/index.js";
58
- import { default as default55 } from "./components/DemoBox/index.js";
59
- import { default as default56 } from "./components/DateInput/index.js";
60
- import { default as default57, ContainerAppearanceColor } from "./components/Container/index.js";
61
- import { default as default58 } from "./components/ConsentMessage/index.js";
62
- import { default as default59 } from "./components/ColorSwatchGroup/index.js";
63
- import { default as default60, colorSwatchSizeMedium, colorSwatchSizeSmall } from "./components/ColorSwatch/index.js";
64
- import { default as default61 } from "./components/Collapsible/index.js";
65
- import { default as default62 } from "./components/CheckboxGroup/index.js";
66
- import { default as default63 } from "./components/Checkbox/index.js";
67
- import { default as default64 } from "./components/Carousel/index.js";
68
- import { default as default65 } from "./components/Card/index.js";
69
- import { default as default66 } from "./components/ButtonGroup/index.js";
26
+ import { default as default23 } from "./components/Link/index.js";
27
+ import { default as default24 } from "./components/Legend/index.js";
28
+ import { default as default25 } from "./components/Label/index.js";
29
+ import { default as default26 } from "./components/Input/index.js";
30
+ import { default as default27 } from "./components/InlineLink/index.js";
31
+ import { default as default28 } from "./components/InlineIcon/index.js";
32
+ import { default as default29, imageHeaderPositionLeft, imageHeaderPositionRight, imageHeaderVariantFull, imageHeaderVariantSplit } from "./components/ImageHeader/index.js";
33
+ import { default as default30, aspectRatio16_9, aspectRatio1_1, aspectRatio21_9, aspectRatio32_9, aspectRatio3_4, aspectRatio48_9, horizontalAlignmentCenter, horizontalAlignmentLeft, horizontalAlignmentRight, objectFitContain, objectFitCover, objectFitNone, objectPositionCenter, objectPositionLeftBottom, objectPositionLeftCenter, objectPositionLeftTop, objectPositionRightBottom, objectPositionRightCenter, objectPositionRightTop } from "./components/Image/index.js";
34
+ import { default as default31 } from "./components/IconSnippetList/index.js";
35
+ import { default as default32, iconSnippetAlignCenter, iconSnippetAlignTop, iconSnippetPositionCenter, iconSnippetPositionLeft, iconSnippetSize3Xl, iconSnippetSizeLarge, iconSnippetSizeSmall } from "./components/IconSnippet/index.js";
36
+ import { default as default33 } from "./components/IconLoader/index.js";
37
+ import { default as default34, iconButtonShapeCircle, iconButtonShapeSquare } from "./components/IconButton/index.js";
38
+ import { default as default35, iconSize6xl, iconSize7xl, iconSize8xl, iconSize9xl } from "./components/Icon/index.js";
39
+ import { default as default36 } from "./components/HifiIcon/index.js";
40
+ import { default as default37, headingAlignCenter, headingAlignLeft } from "./components/Heading/index.js";
41
+ import { default as default38 } from "./components/GridItem/index.js";
42
+ import { default as default39 } from "./components/Grid/index.js";
43
+ import { default as default40 } from "./components/GoogleMap/index.js";
44
+ import { default as default41, inputStatusIcons } from "./components/FormHelperStatusIcon/index.js";
45
+ import { default as default42 } from "./components/FormHelperMessage/index.js";
46
+ import { default as default43 } from "./components/FormHelperLabel/index.js";
47
+ import { default as default44 } from "./components/FormElement/index.js";
48
+ import { default as default45 } from "./components/Form/index.js";
49
+ import { default as default46 } from "./components/FootnoteLink/index.js";
50
+ import { default as default47 } from "./components/FootnoteContent/index.js";
51
+ import { default as default48, flexItemAutoGrow, flexItemFullGrow } from "./components/FlexItem/index.js";
52
+ import { default as default49 } from "./components/Flex/index.js";
53
+ import { default as default50 } from "./components/FilterGroup/index.js";
54
+ import { default as default51 } from "./components/Fieldset/index.js";
55
+ import { default as default52 } from "./components/Divider/index.js";
56
+ import { default as default53 } from "./components/DiscoveryCardGroup/index.js";
57
+ import { default as default54, discoveryCardOrientationHorizontal, discoveryCardOrientationVertical } from "./components/DiscoveryCard/index.js";
58
+ import { default as default55 } from "./components/Dialog/index.js";
59
+ import { default as default56 } from "./components/DemoBox/index.js";
60
+ import { default as default57 } from "./components/DateInput/index.js";
61
+ import { default as default58, ContainerAppearanceColor } from "./components/Container/index.js";
62
+ import { default as default59 } from "./components/ConsentMessage/index.js";
63
+ import { default as default60 } from "./components/ColorSwatchGroup/index.js";
64
+ import { default as default61, colorSwatchSizeMedium, colorSwatchSizeSmall } from "./components/ColorSwatch/index.js";
65
+ import { default as default62 } from "./components/Collapsible/index.js";
66
+ import { default as default63 } from "./components/CheckboxGroup/index.js";
67
+ import { default as default64 } from "./components/Checkbox/index.js";
68
+ import { default as default65 } from "./components/Carousel/index.js";
69
+ import { default as default66 } from "./components/Card/index.js";
70
+ import { default as default67 } from "./components/ButtonGroup/index.js";
70
71
  import { B } from "./index-hNV7tcRV.js";
71
- import { default as default67, buttonAutoWidth, buttonFullWidth } from "./components/Button/index.js";
72
- import { default as default68 } from "./components/BottomBar/index.js";
73
- import { default as default69, bodyAlignCenter, bodyAlignLeft, bodyAlignRight } from "./components/Body/index.js";
72
+ import { default as default68, buttonAutoWidth, buttonFullWidth } from "./components/Button/index.js";
73
+ import { default as default69 } from "./components/BottomBar/index.js";
74
+ import { default as default70, bodyAlignCenter, bodyAlignLeft, bodyAlignRight } from "./components/Body/index.js";
74
75
  import { B as B2, a as a3 } from "./index-BdPmdY9v.js";
75
- import { default as default70 } from "./components/AccordionGroup/index.js";
76
- import { default as default71, accordionToggleCollapsed, accordionToggleCollapsing, accordionToggleExpanded } from "./components/Accordion/index.js";
76
+ import { default as default71 } from "./components/AccordionGroup/index.js";
77
+ import { default as default72, accordionToggleCollapsed, accordionToggleCollapsing, accordionToggleExpanded } from "./components/Accordion/index.js";
77
78
  import { getTextDecoration } from "./foundations/token/getTextDecoration/index.js";
78
79
  import { getTextColor } from "./foundations/token/getTextColor/index.js";
79
80
  import { getSpacing } from "./foundations/token/getSpacing/index.js";
@@ -106,89 +107,96 @@ import { I, m as m2, f as f2, i as i2, g as g2, h, j, d as d2, c as c2, b as b2,
106
107
  import { e as e3, d as d3, c as c3, b as b3, f as f3, a as a6 } from "./styled-CPUu8mvT.js";
107
108
  import { C } from "./styled-DINwm57V.js";
108
109
  export {
109
- default71 as Accordion,
110
- default70 as AccordionGroup,
110
+ default72 as Accordion,
111
+ default71 as AccordionGroup,
111
112
  B2 as Badge,
112
113
  a3 as BadgeAppearanceColor,
113
- default69 as Body,
114
- default68 as BottomBar,
115
- default67 as Button,
114
+ default70 as Body,
115
+ default69 as BottomBar,
116
+ default68 as Button,
116
117
  B as ButtonAsLink,
117
- default66 as ButtonGroup,
118
- default65 as Card,
118
+ default67 as ButtonGroup,
119
+ default66 as Card,
119
120
  C as CardAppearanceColor,
120
- default64 as Carousel,
121
- default63 as Checkbox,
122
- default62 as CheckboxGroup,
123
- default61 as Collapsible,
124
- default60 as ColorSwatch,
125
- default59 as ColorSwatchGroup,
126
- default58 as ConsentMessage,
127
- default57 as Container,
121
+ default65 as Carousel,
122
+ default64 as Checkbox,
123
+ default63 as CheckboxGroup,
124
+ default62 as Collapsible,
125
+ default61 as ColorSwatch,
126
+ default60 as ColorSwatchGroup,
127
+ default59 as ConsentMessage,
128
+ default58 as Container,
128
129
  ContainerAppearanceColor,
129
- default56 as DateInput,
130
+ default57 as DateInput,
130
131
  DefaultLinkComponent,
131
- default55 as DemoBox,
132
- default54 as Dialog,
133
- default53 as DiscoveryCard,
134
- default52 as DiscoveryCardGroup,
135
- default51 as Divider,
136
- default50 as Fieldset,
137
- default49 as FilterGroup,
138
- default48 as Flex,
139
- default47 as FlexItem,
140
- default46 as FootnoteContent,
141
- default45 as FootnoteLink,
142
- default44 as Form,
143
- default43 as FormElement,
144
- default42 as FormHelperLabel,
145
- default41 as FormHelperMessage,
146
- default40 as FormHelperStatusIcon,
132
+ default56 as DemoBox,
133
+ default55 as Dialog,
134
+ default54 as DiscoveryCard,
135
+ default53 as DiscoveryCardGroup,
136
+ default52 as Divider,
137
+ default51 as Fieldset,
138
+ default50 as FilterGroup,
139
+ default49 as Flex,
140
+ default48 as FlexItem,
141
+ default47 as FootnoteContent,
142
+ default46 as FootnoteLink,
143
+ default45 as Form,
144
+ default44 as FormElement,
145
+ default43 as FormHelperLabel,
146
+ default42 as FormHelperMessage,
147
+ default41 as FormHelperStatusIcon,
147
148
  GlobalStyle,
148
- default39 as GoogleMap,
149
- default38 as Grid,
150
- default37 as GridItem,
151
- default36 as Heading,
149
+ default40 as GoogleMap,
150
+ default39 as Grid,
151
+ default38 as GridItem,
152
+ default37 as Heading,
152
153
  HiddenRadioStyled,
153
- default35 as HifiIcon,
154
- default34 as Icon,
155
- default33 as IconButton,
156
- default32 as IconLoader,
157
- default31 as IconSnippet,
158
- default30 as IconSnippetList,
154
+ default36 as HifiIcon,
155
+ default35 as Icon,
156
+ default34 as IconButton,
157
+ default33 as IconLoader,
158
+ default32 as IconSnippet,
159
+ default31 as IconSnippetList,
159
160
  I as IconWithAccent,
160
- default29 as Image,
161
- default28 as ImageHeader,
162
- default27 as InlineIcon,
161
+ default30 as Image,
162
+ default29 as ImageHeader,
163
+ default28 as InlineIcon,
163
164
  m2 as InlineIconStyled,
164
- default26 as InlineLink,
165
- default25 as Input,
166
- default24 as Label,
167
- default23 as Legend,
168
- default22 as Link,
165
+ default27 as InlineLink,
166
+ default26 as Input,
167
+ default25 as Label,
168
+ default24 as Legend,
169
+ default23 as Link,
169
170
  L as LinkAsButton,
170
171
  LinkContext,
171
- default21 as LinkList,
172
- default20 as LinkListItem,
173
- default19 as LoadingSpinner,
174
- default18 as MediaText,
175
- default17 as Notification,
176
- default16 as Overlay,
177
- default15 as PickerGroup,
172
+ default22 as LinkList,
173
+ default21 as LinkListItem,
174
+ default20 as LoadingSpinner,
175
+ default19 as MediaText,
176
+ default18 as Notification,
177
+ default17 as Overlay,
178
+ PanelStyled,
179
+ default16 as PickerGroup,
178
180
  P as Price,
179
- default14 as ProductCard,
180
- default13 as RadioGroup,
181
- default12 as Rating,
182
- default11 as ResponsiveImage,
181
+ default15 as ProductCard,
182
+ default14 as RadioGroup,
183
+ default13 as Rating,
184
+ default12 as ResponsiveImage,
183
185
  R as RichText,
184
186
  S as ScreenreaderOnly,
185
- default10 as SearchInput,
186
- default9 as SelectInput,
187
+ default11 as SearchInput,
188
+ default10 as SelectInput,
187
189
  StarLabelStyled,
188
190
  StarsWrapperStyled,
189
- default8 as Stepper,
190
- default7 as SuggestInput,
191
- default6 as Switch,
191
+ default9 as Stepper,
192
+ default8 as SuggestInput,
193
+ default7 as Switch,
194
+ default6 as TabGroup,
195
+ TabGroupIndicatorStyled,
196
+ TabGroupTabsScrollableContainerStyled,
197
+ TabGroupTabsStyled,
198
+ TabLabelStyled,
199
+ TabStyled,
192
200
  T2 as TabularPrice,
193
201
  T as TextList,
194
202
  a as TextListItem,
@@ -317,6 +325,10 @@ export {
317
325
  d as priceSizeMd,
318
326
  b as priceSizeSm,
319
327
  reducedMotionQuery,
328
+ tabGroupWidthAuto,
329
+ tabGroupWidthFull,
330
+ tabOrientationHorizontal,
331
+ tabOrientationVertical,
320
332
  useFocusWithin,
321
333
  useForcedColors,
322
334
  useLinkComponent,
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": "7.0.10",
4
+ "version": "7.0.11",
5
5
  "exports": {
6
6
  "./package.json": "./package.json",
7
7
  ".": {