@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.
- package/dist/components/IconLoader/index.js +1 -0
- package/dist/components/TabGroup/index.d.ts +6 -0
- package/dist/components/TabGroup/index.js +314 -0
- package/dist/components/TabGroup/props.d.ts +53 -0
- package/dist/components/TabGroup/styled.d.ts +7 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +144 -132
- package/package.json +1 -1
|
@@ -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/
|
|
8
|
-
import { default as default7 } from "./components/
|
|
9
|
-
import { default as default8 } from "./components/
|
|
10
|
-
import { default as default9 } from "./components/
|
|
11
|
-
import { default as default10 } from "./components/
|
|
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
|
|
14
|
-
import { HiddenRadioStyled, default as
|
|
15
|
-
import { default as
|
|
16
|
-
import { default as
|
|
17
|
-
import { default as
|
|
18
|
-
import { default as
|
|
19
|
-
import { default as
|
|
20
|
-
import { default as
|
|
21
|
-
import { default as
|
|
22
|
-
import { default as
|
|
23
|
-
import { default as
|
|
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
|
|
26
|
-
import { default as
|
|
27
|
-
import { default as
|
|
28
|
-
import { default as
|
|
29
|
-
import { default as
|
|
30
|
-
import { default as
|
|
31
|
-
import { default as
|
|
32
|
-
import { default as
|
|
33
|
-
import { default as
|
|
34
|
-
import { default as
|
|
35
|
-
import { default as
|
|
36
|
-
import { default as
|
|
37
|
-
import { default as
|
|
38
|
-
import { default as
|
|
39
|
-
import { default as
|
|
40
|
-
import { default as
|
|
41
|
-
import { default as
|
|
42
|
-
import { default as
|
|
43
|
-
import { default as
|
|
44
|
-
import { default as
|
|
45
|
-
import { default as
|
|
46
|
-
import { default as
|
|
47
|
-
import { default as
|
|
48
|
-
import { default as
|
|
49
|
-
import { default as
|
|
50
|
-
import { default as
|
|
51
|
-
import { default as
|
|
52
|
-
import { default as
|
|
53
|
-
import { default as
|
|
54
|
-
import { default as
|
|
55
|
-
import { default as
|
|
56
|
-
import { default as
|
|
57
|
-
import { default as
|
|
58
|
-
import { default as
|
|
59
|
-
import { default as
|
|
60
|
-
import { default as
|
|
61
|
-
import { default as
|
|
62
|
-
import { default as
|
|
63
|
-
import { default as
|
|
64
|
-
import { default as
|
|
65
|
-
import { default as
|
|
66
|
-
import { default as
|
|
67
|
-
import { default as
|
|
68
|
-
import { default as
|
|
69
|
-
import { default as
|
|
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
|
|
72
|
-
import { default as
|
|
73
|
-
import { default as
|
|
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
|
|
76
|
-
import { default as
|
|
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
|
-
|
|
110
|
-
|
|
110
|
+
default72 as Accordion,
|
|
111
|
+
default71 as AccordionGroup,
|
|
111
112
|
B2 as Badge,
|
|
112
113
|
a3 as BadgeAppearanceColor,
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
default70 as Body,
|
|
115
|
+
default69 as BottomBar,
|
|
116
|
+
default68 as Button,
|
|
116
117
|
B as ButtonAsLink,
|
|
117
|
-
|
|
118
|
-
|
|
118
|
+
default67 as ButtonGroup,
|
|
119
|
+
default66 as Card,
|
|
119
120
|
C as CardAppearanceColor,
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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
|
-
|
|
130
|
+
default57 as DateInput,
|
|
130
131
|
DefaultLinkComponent,
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
149
|
+
default40 as GoogleMap,
|
|
150
|
+
default39 as Grid,
|
|
151
|
+
default38 as GridItem,
|
|
152
|
+
default37 as Heading,
|
|
152
153
|
HiddenRadioStyled,
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
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
|
-
|
|
161
|
-
|
|
162
|
-
|
|
161
|
+
default30 as Image,
|
|
162
|
+
default29 as ImageHeader,
|
|
163
|
+
default28 as InlineIcon,
|
|
163
164
|
m2 as InlineIconStyled,
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
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
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
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
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
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
|
-
|
|
186
|
-
|
|
187
|
+
default11 as SearchInput,
|
|
188
|
+
default10 as SelectInput,
|
|
187
189
|
StarLabelStyled,
|
|
188
190
|
StarsWrapperStyled,
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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,
|