@infomaximum/ui-kit 0.17.4 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Button/Button.styles.js +36 -0
- package/dist/components/Button/Button.tokens.d.ts +15 -0
- package/dist/components/Button/Button.tokens.js +15 -0
- package/dist/components/Button/Button.types.d.ts +1 -1
- package/dist/components/Collapse/Collapse.d.ts +2 -0
- package/dist/components/Collapse/Collapse.js +49 -0
- package/dist/components/Collapse/Collapse.styles.d.ts +16 -0
- package/dist/components/Collapse/Collapse.styles.js +19 -0
- package/dist/components/Collapse/Collapse.tokens.d.ts +8 -0
- package/dist/components/Collapse/Collapse.tokens.js +9 -0
- package/dist/components/Collapse/Collapse.types.d.ts +49 -0
- package/dist/components/Collapse/components/CollapsePanel/CollapsePanel.d.ts +2 -0
- package/dist/components/Collapse/components/CollapsePanel/CollapsePanel.js +86 -0
- package/dist/components/Collapse/components/CollapsePanel/CollapsePanel.styles.d.ts +87 -0
- package/dist/components/Collapse/components/CollapsePanel/CollapsePanel.styles.js +102 -0
- package/dist/components/Collapse/components/CollapsePanel/CollapsePanel.types.d.ts +7 -0
- package/dist/components/Collapse/index.d.ts +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/package.json +1 -1
|
@@ -57,6 +57,18 @@ const getWrapperSolidStyle = (theme, color, disabled) => {
|
|
|
57
57
|
colorStyle = getSolidColorStyle(buttonTokens.buttonDanger, buttonTokens.buttonDangerHover, buttonTokens.buttonDangerActive);
|
|
58
58
|
break;
|
|
59
59
|
}
|
|
60
|
+
case "warning": {
|
|
61
|
+
colorStyle = getSolidColorStyle(buttonTokens.buttonWarning, buttonTokens.buttonWarningHover, buttonTokens.buttonWarningActive);
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
case "positive": {
|
|
65
|
+
colorStyle = getSolidColorStyle(buttonTokens.buttonPositive, buttonTokens.buttonPositiveHover, buttonTokens.buttonPositiveActive);
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
case "info": {
|
|
69
|
+
colorStyle = getSolidColorStyle(buttonTokens.buttonInfo, buttonTokens.buttonInfoHover, buttonTokens.buttonInfoActive);
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
60
72
|
case "remove": {
|
|
61
73
|
colorStyle = getSolidColorStyle(buttonTokens.buttonSolidDefaultBg, buttonTokens.buttonDangerHover, buttonTokens.buttonDangerActive);
|
|
62
74
|
break;
|
|
@@ -93,6 +105,18 @@ const getWrapperOutlinedStyle = (theme, color, disabled, borderStyle = "solid")
|
|
|
93
105
|
colorStyle = getOutlinedColorStyle(buttonTokens.buttonDanger, buttonTokens.buttonDanger, buttonTokens.buttonDangerHover, buttonTokens.buttonDangerActive, borderStyle);
|
|
94
106
|
break;
|
|
95
107
|
}
|
|
108
|
+
case "warning": {
|
|
109
|
+
colorStyle = getOutlinedColorStyle(buttonTokens.buttonWarning, buttonTokens.buttonWarning, buttonTokens.buttonWarningHover, buttonTokens.buttonWarningActive, borderStyle);
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
case "positive": {
|
|
113
|
+
colorStyle = getOutlinedColorStyle(buttonTokens.buttonPositive, buttonTokens.buttonPositive, buttonTokens.buttonPositiveHover, buttonTokens.buttonPositiveActive, borderStyle);
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
case "info": {
|
|
117
|
+
colorStyle = getOutlinedColorStyle(buttonTokens.buttonInfo, buttonTokens.buttonInfo, buttonTokens.buttonInfoHover, buttonTokens.buttonInfoActive, borderStyle);
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
96
120
|
case "remove": {
|
|
97
121
|
colorStyle = getOutlinedColorStyle(buttonTokens.buttonDefaultBorder, buttonTokens.buttonDefaultText, buttonTokens.buttonDangerHover, buttonTokens.buttonDangerActive, borderStyle);
|
|
98
122
|
break;
|
|
@@ -131,6 +155,18 @@ const getWrapperTextStyle = (theme, color, disabled) => {
|
|
|
131
155
|
colorStyle = getTextColorStyle("none", buttonTokens.buttonTextDangerBgHover, buttonTokens.buttonTextDangerBgActive, buttonTokens.buttonDanger);
|
|
132
156
|
break;
|
|
133
157
|
}
|
|
158
|
+
case "warning": {
|
|
159
|
+
colorStyle = getTextColorStyle("none", buttonTokens.buttonTextWarningBgHover, buttonTokens.buttonTextWarningBgActive, buttonTokens.buttonWarning);
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
case "positive": {
|
|
163
|
+
colorStyle = getTextColorStyle("none", buttonTokens.buttonTextPositiveBgHover, buttonTokens.buttonTextPositiveBgActive, buttonTokens.buttonPositive);
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
case "info": {
|
|
167
|
+
colorStyle = getTextColorStyle("none", buttonTokens.buttonTextInfoBgHover, buttonTokens.buttonTextInfoBgActive, buttonTokens.buttonInfo);
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
134
170
|
case "remove": {
|
|
135
171
|
colorStyle = getTextColorStyle("none", buttonTokens.buttonTextDefaultBgHover, buttonTokens.buttonTextDefaultBgActive, buttonTokens.buttonDefaultText, buttonTokens.buttonDanger);
|
|
136
172
|
break;
|
|
@@ -6,6 +6,15 @@ export declare const getButtonTokens: (theme: Theme) => {
|
|
|
6
6
|
buttonDanger: "#FF4D4F";
|
|
7
7
|
buttonDangerHover: "#FF7875";
|
|
8
8
|
buttonDangerActive: "#CF1322";
|
|
9
|
+
buttonWarning: "#FA8C16";
|
|
10
|
+
buttonWarningHover: "#FFA940";
|
|
11
|
+
buttonWarningActive: "#D46B08";
|
|
12
|
+
buttonPositive: "#52C41A";
|
|
13
|
+
buttonPositiveHover: "#73D13D";
|
|
14
|
+
buttonPositiveActive: "#389E0D";
|
|
15
|
+
buttonInfo: "#1677FF";
|
|
16
|
+
buttonInfoHover: "#4096FF";
|
|
17
|
+
buttonInfoActive: "#0958D9";
|
|
9
18
|
buttonDefaultText: "#262626";
|
|
10
19
|
buttonDefaultBorder: "#D9D9D9";
|
|
11
20
|
buttonSolidText: "#FFFFFF";
|
|
@@ -19,6 +28,12 @@ export declare const getButtonTokens: (theme: Theme) => {
|
|
|
19
28
|
buttonTextPrimaryBgActive: "#A3E6DD";
|
|
20
29
|
buttonTextDangerBgHover: "#FFF1F0";
|
|
21
30
|
buttonTextDangerBgActive: "#FFCCC7";
|
|
31
|
+
buttonTextWarningBgHover: "#FFF7E6";
|
|
32
|
+
buttonTextWarningBgActive: "#FFE7BA";
|
|
33
|
+
buttonTextPositiveBgHover: "#F6FFED";
|
|
34
|
+
buttonTextPositiveBgActive: "#D9F7BE";
|
|
35
|
+
buttonTextInfoBgHover: "#E6F4FF";
|
|
36
|
+
buttonTextInfoBgActive: "#BAE0FF";
|
|
22
37
|
buttonDisabledText: "#8C8C8C";
|
|
23
38
|
buttonDisabledBg: "#F0F0F0";
|
|
24
39
|
buttonPaddingVertical: 4;
|
|
@@ -5,6 +5,15 @@ const getButtonTokens = (theme) => ({
|
|
|
5
5
|
buttonDanger: theme.dangerBase,
|
|
6
6
|
buttonDangerHover: theme.dangerHover,
|
|
7
7
|
buttonDangerActive: theme.dangerActive,
|
|
8
|
+
buttonWarning: theme.warningBase,
|
|
9
|
+
buttonWarningHover: theme.warningHover,
|
|
10
|
+
buttonWarningActive: theme.warningActive,
|
|
11
|
+
buttonPositive: theme.positiveBase,
|
|
12
|
+
buttonPositiveHover: theme.positiveHover,
|
|
13
|
+
buttonPositiveActive: theme.positiveActive,
|
|
14
|
+
buttonInfo: theme.infoBase,
|
|
15
|
+
buttonInfoHover: theme.infoHover,
|
|
16
|
+
buttonInfoActive: theme.infoActive,
|
|
8
17
|
buttonDefaultText: theme.textPrimary,
|
|
9
18
|
buttonDefaultBorder: theme.lineBorder,
|
|
10
19
|
buttonSolidText: theme.textContrast,
|
|
@@ -18,6 +27,12 @@ const getButtonTokens = (theme) => ({
|
|
|
18
27
|
buttonTextPrimaryBgActive: theme.primaryActiveInverse,
|
|
19
28
|
buttonTextDangerBgHover: theme.dangerHoverInverse,
|
|
20
29
|
buttonTextDangerBgActive: theme.dangerActiveInverse,
|
|
30
|
+
buttonTextWarningBgHover: theme.warningHoverInverse,
|
|
31
|
+
buttonTextWarningBgActive: theme.warningActiveInverse,
|
|
32
|
+
buttonTextPositiveBgHover: theme.positiveHoverInverse,
|
|
33
|
+
buttonTextPositiveBgActive: theme.positiveActiveInverse,
|
|
34
|
+
buttonTextInfoBgHover: theme.infoHoverInverse,
|
|
35
|
+
buttonTextInfoBgActive: theme.infoActiveInverse,
|
|
21
36
|
buttonDisabledText: theme.textDisabled,
|
|
22
37
|
buttonDisabledBg: theme.bgContainerDisabled,
|
|
23
38
|
buttonPaddingVertical: theme.x1,
|
|
@@ -3,7 +3,7 @@ import { ButtonHTMLAttributes, MouseEvent, ReactNode } from 'react';
|
|
|
3
3
|
import { Theme } from '../../themes';
|
|
4
4
|
import { TooltipProps } from '../Tooltip';
|
|
5
5
|
export type ButtonVariant = "solid" | "outlined" | "dashed" | "text" | "link";
|
|
6
|
-
export type ButtonColor = "default" | "primary" | "danger" | "remove";
|
|
6
|
+
export type ButtonColor = "default" | "primary" | "danger" | "warning" | "positive" | "info" | "remove";
|
|
7
7
|
export type ButtonIconPosition = "start" | "end";
|
|
8
8
|
export type ButtonType = "default" | "primary" | "dashed" | "text" | "link";
|
|
9
9
|
export interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "type"> {
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { memo, useMemo, useCallback } from "react";
|
|
3
|
+
import { getCollapseTokens } from "./Collapse.tokens.js";
|
|
4
|
+
import { getCollapseContainerStyle } from "./Collapse.styles.js";
|
|
5
|
+
import { CollapsePanel } from "./components/CollapsePanel/CollapsePanel.js";
|
|
6
|
+
import { useTheme } from "../../hooks/useTheme/useTheme.js";
|
|
7
|
+
import { useControlledState } from "../../hooks/useControlledState/useControlledState.js";
|
|
8
|
+
const normalizeKeys = (key) => {
|
|
9
|
+
if (key === void 0) return [];
|
|
10
|
+
return Array.isArray(key) ? key : [key];
|
|
11
|
+
};
|
|
12
|
+
const CollapseComponent = (props) => {
|
|
13
|
+
const {
|
|
14
|
+
items,
|
|
15
|
+
activeKey,
|
|
16
|
+
defaultActiveKey,
|
|
17
|
+
accordion = false,
|
|
18
|
+
bordered = true,
|
|
19
|
+
collapsible = "header",
|
|
20
|
+
expandIcon,
|
|
21
|
+
inline = false,
|
|
22
|
+
size = "middle",
|
|
23
|
+
onChange,
|
|
24
|
+
destroyOnHidden = false,
|
|
25
|
+
styles,
|
|
26
|
+
"test-id": testId
|
|
27
|
+
} = props;
|
|
28
|
+
const theme = useTheme();
|
|
29
|
+
const tokens = getCollapseTokens(theme);
|
|
30
|
+
const normalizedActiveKey = useMemo(() => activeKey !== void 0 ? normalizeKeys(activeKey) : void 0, [activeKey]);
|
|
31
|
+
const [activeKeys, setActiveKeys] = useControlledState(normalizeKeys(defaultActiveKey), normalizedActiveKey);
|
|
32
|
+
const handleToggle = useCallback((key) => {
|
|
33
|
+
if (collapsible === "disabled") return;
|
|
34
|
+
let newActiveKeys;
|
|
35
|
+
if (accordion) {
|
|
36
|
+
newActiveKeys = (activeKeys == null ? void 0 : activeKeys.includes(key)) ? [] : [key];
|
|
37
|
+
} else {
|
|
38
|
+
newActiveKeys = (activeKeys == null ? void 0 : activeKeys.includes(key)) ? activeKeys.filter((k) => k !== key) : [...activeKeys || [], key];
|
|
39
|
+
}
|
|
40
|
+
setActiveKeys(newActiveKeys);
|
|
41
|
+
onChange == null ? void 0 : onChange(newActiveKeys);
|
|
42
|
+
}, [activeKeys, accordion, collapsible, onChange, setActiveKeys]);
|
|
43
|
+
const effectiveInline = inline && !bordered;
|
|
44
|
+
return /* @__PURE__ */ jsx("div", { css: getCollapseContainerStyle(tokens, bordered, size)(theme), "test-id": testId, children: items.map((item, index) => /* @__PURE__ */ jsx(CollapsePanel, { item, isActive: (activeKeys == null ? void 0 : activeKeys.includes(item.key)) || false, isLast: index === items.length - 1, bordered, inline: effectiveInline, size, collapsible, expandIcon, destroyOnHidden, styles, onToggle: handleToggle }, item.key)) });
|
|
45
|
+
};
|
|
46
|
+
const Collapse = memo(CollapseComponent);
|
|
47
|
+
export {
|
|
48
|
+
Collapse
|
|
49
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Theme } from '../../themes';
|
|
2
|
+
import { CollapseTokens } from './Collapse.tokens';
|
|
3
|
+
import { CollapseSize } from './Collapse.types';
|
|
4
|
+
export declare const getCollapseContainerStyle: (tokens: CollapseTokens, bordered: boolean, size: CollapseSize) => (theme: Theme) => {
|
|
5
|
+
"& > *:first-child > *:first-child": {
|
|
6
|
+
borderTopLeftRadius: 4 | 8;
|
|
7
|
+
borderTopRightRadius: 4 | 8;
|
|
8
|
+
};
|
|
9
|
+
border?: string | undefined;
|
|
10
|
+
color: "#262626";
|
|
11
|
+
width: string;
|
|
12
|
+
borderRadius: 4 | 8;
|
|
13
|
+
fontFamily: "Roboto";
|
|
14
|
+
fontSize: 14;
|
|
15
|
+
lineHeight: "20px";
|
|
16
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const getCollapseContainerStyle = (tokens, bordered, size) => (theme) => {
|
|
2
|
+
const radius = size === "small" ? theme.borderRadiusM : theme.borderRadiusL;
|
|
3
|
+
return {
|
|
4
|
+
...theme.typography.body2,
|
|
5
|
+
color: tokens.collapseText,
|
|
6
|
+
width: "100%",
|
|
7
|
+
borderRadius: radius,
|
|
8
|
+
...bordered ? {
|
|
9
|
+
border: `1px solid ${tokens.collapseBorder}`
|
|
10
|
+
} : {},
|
|
11
|
+
"& > *:first-child > *:first-child": {
|
|
12
|
+
borderTopLeftRadius: radius,
|
|
13
|
+
borderTopRightRadius: radius
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export {
|
|
18
|
+
getCollapseContainerStyle
|
|
19
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Theme } from '../../themes';
|
|
2
|
+
export declare const getCollapseTokens: (theme: Theme) => {
|
|
3
|
+
readonly collapseText: "#262626";
|
|
4
|
+
readonly collapseBorder: "#D9D9D9";
|
|
5
|
+
readonly collapseBg: "#FFFFFF";
|
|
6
|
+
readonly collapseItemHeaderBgHover: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
7
|
+
};
|
|
8
|
+
export type CollapseTokens = ReturnType<typeof getCollapseTokens>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { CSSProperties, HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
import { Interpolation } from '@emotion/react';
|
|
3
|
+
import { Theme } from '../../themes';
|
|
4
|
+
import { CollapseTokens } from './Collapse.tokens';
|
|
5
|
+
export type GetStyle = (collapseTokens: CollapseTokens, theme: Theme) => Interpolation;
|
|
6
|
+
export type CollapseKey = string | number;
|
|
7
|
+
export type CollapseSize = "small" | "middle";
|
|
8
|
+
export type CollapseCollapsible = "header" | "icon" | "disabled";
|
|
9
|
+
export interface CollapseExpandIconProps {
|
|
10
|
+
isActive: boolean;
|
|
11
|
+
panelKey: CollapseKey;
|
|
12
|
+
}
|
|
13
|
+
export interface CollapseItemType extends Pick<HTMLAttributes<HTMLDivElement>, "onClick"> {
|
|
14
|
+
key: CollapseKey;
|
|
15
|
+
label: ReactNode;
|
|
16
|
+
children: ReactNode;
|
|
17
|
+
extra?: ReactNode;
|
|
18
|
+
showArrow?: boolean;
|
|
19
|
+
forceRender?: boolean;
|
|
20
|
+
styles?: {
|
|
21
|
+
header?: CSSProperties;
|
|
22
|
+
body?: CSSProperties;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export interface CollapseProps {
|
|
26
|
+
items: CollapseItemType[];
|
|
27
|
+
activeKey?: CollapseKey | CollapseKey[];
|
|
28
|
+
defaultActiveKey?: CollapseKey | CollapseKey[];
|
|
29
|
+
/** @default false */
|
|
30
|
+
accordion?: boolean;
|
|
31
|
+
/** @default true */
|
|
32
|
+
bordered?: boolean;
|
|
33
|
+
/** @default 'header' */
|
|
34
|
+
collapsible?: CollapseCollapsible;
|
|
35
|
+
expandIcon?: (props: CollapseExpandIconProps) => ReactNode;
|
|
36
|
+
/** @default false */
|
|
37
|
+
inline?: boolean;
|
|
38
|
+
/** @default 'middle' */
|
|
39
|
+
size?: CollapseSize;
|
|
40
|
+
onChange?: (key: CollapseKey[]) => void;
|
|
41
|
+
/** @default false */
|
|
42
|
+
destroyOnHidden?: boolean;
|
|
43
|
+
styles?: {
|
|
44
|
+
panelHeader?: GetStyle;
|
|
45
|
+
panelHeaderText?: GetStyle;
|
|
46
|
+
panelBody?: GetStyle;
|
|
47
|
+
};
|
|
48
|
+
"test-id"?: string;
|
|
49
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { jsx, jsxs } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { memo, useRef } from "react";
|
|
3
|
+
import { CaretRightOutlined } from "@infomaximum/icons";
|
|
4
|
+
import { getCollapseTokens } from "../../Collapse.tokens.js";
|
|
5
|
+
import { getLastPanelEndStyle, getCollapsePanelHeaderStyle, getCollapsePanelIconStyle, collapsePanelLabelStyle, collapsePanelExtraStyle, getCollapsePanelBodyStyle } from "./CollapsePanel.styles.js";
|
|
6
|
+
import { useTheme } from "../../../../hooks/useTheme/useTheme.js";
|
|
7
|
+
const isActivationKey = (key) => key === "Enter" || key === " ";
|
|
8
|
+
const CollapsePanelComponent = (props) => {
|
|
9
|
+
var _a, _b, _c, _d, _e;
|
|
10
|
+
const {
|
|
11
|
+
item,
|
|
12
|
+
isActive,
|
|
13
|
+
isLast,
|
|
14
|
+
bordered,
|
|
15
|
+
inline,
|
|
16
|
+
size,
|
|
17
|
+
collapsible,
|
|
18
|
+
expandIcon,
|
|
19
|
+
destroyOnHidden,
|
|
20
|
+
styles,
|
|
21
|
+
onToggle
|
|
22
|
+
} = props;
|
|
23
|
+
const theme = useTheme();
|
|
24
|
+
const tokens = getCollapseTokens(theme);
|
|
25
|
+
const hasRenderedRef = useRef(item.forceRender ?? false);
|
|
26
|
+
if (isActive) hasRenderedRef.current = true;
|
|
27
|
+
const shouldRender = destroyOnHidden ? isActive : hasRenderedRef.current;
|
|
28
|
+
const lastPanelEndStyle = isLast ? getLastPanelEndStyle({
|
|
29
|
+
size,
|
|
30
|
+
bordered
|
|
31
|
+
})(theme) : void 0;
|
|
32
|
+
const handleHeaderClick = () => {
|
|
33
|
+
if (collapsible === "header") {
|
|
34
|
+
onToggle(item.key);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const handleHeaderKeyDown = (e) => {
|
|
38
|
+
if (collapsible === "header" && isActivationKey(e.key)) {
|
|
39
|
+
e.preventDefault();
|
|
40
|
+
onToggle(item.key);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
const handleIconClick = (e) => {
|
|
44
|
+
if (collapsible === "icon") {
|
|
45
|
+
e.stopPropagation();
|
|
46
|
+
onToggle(item.key);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const handleIconKeyDown = (e) => {
|
|
50
|
+
if (collapsible === "icon" && isActivationKey(e.key)) {
|
|
51
|
+
e.preventDefault();
|
|
52
|
+
e.stopPropagation();
|
|
53
|
+
onToggle(item.key);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
const iconNode = expandIcon ? expandIcon({
|
|
57
|
+
isActive,
|
|
58
|
+
panelKey: item.key
|
|
59
|
+
}) : /* @__PURE__ */ jsx(CaretRightOutlined, {});
|
|
60
|
+
const showArrow = item.showArrow !== false;
|
|
61
|
+
return /* @__PURE__ */ jsxs("div", { onClick: item.onClick, children: [
|
|
62
|
+
/* @__PURE__ */ jsxs("div", { css: [getCollapsePanelHeaderStyle({
|
|
63
|
+
tokens,
|
|
64
|
+
size,
|
|
65
|
+
bordered,
|
|
66
|
+
inline,
|
|
67
|
+
collapsible
|
|
68
|
+
})(theme), (_a = styles == null ? void 0 : styles.panelHeader) == null ? void 0 : _a.call(styles, tokens, theme), !isActive && lastPanelEndStyle, process.env.NODE_ENV === "production" ? "" : ";label:CollapsePanelComponent;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQ29sbGFwc2UvY29tcG9uZW50cy9Db2xsYXBzZVBhbmVsL0NvbGxhcHNlUGFuZWwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStFUSIsImZpbGUiOiIvYnVpbGRzL2Zyb250ZW5kL2xpYnMvdWkta2l0L3NyYy9jb21wb25lbnRzL0NvbGxhcHNlL2NvbXBvbmVudHMvQ29sbGFwc2VQYW5lbC9Db2xsYXBzZVBhbmVsLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lbW8sIHVzZVJlZiwgdHlwZSBGQywgdHlwZSBLZXlib2FyZEV2ZW50LCB0eXBlIE1vdXNlRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IENhcmV0UmlnaHRPdXRsaW5lZCB9IGZyb20gXCJAaW5mb21heGltdW0vaWNvbnNcIjtcbmltcG9ydCB7IHVzZVRoZW1lIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2hvb2tzL3VzZVRoZW1lXCI7XG5pbXBvcnQgeyBnZXRDb2xsYXBzZVRva2VucyB9IGZyb20gXCIuLi8uLi9Db2xsYXBzZS50b2tlbnNcIjtcbmltcG9ydCB0eXBlIHsgQ29sbGFwc2VQYW5lbFByb3BzIH0gZnJvbSBcIi4vQ29sbGFwc2VQYW5lbC50eXBlc1wiO1xuaW1wb3J0IHtcbiAgZ2V0TGFzdFBhbmVsRW5kU3R5bGUsXG4gIGdldENvbGxhcHNlUGFuZWxCb2R5U3R5bGUsXG4gIGdldENvbGxhcHNlUGFuZWxIZWFkZXJTdHlsZSxcbiAgZ2V0Q29sbGFwc2VQYW5lbEljb25TdHlsZSxcbiAgY29sbGFwc2VQYW5lbEV4dHJhU3R5bGUsXG4gIGNvbGxhcHNlUGFuZWxMYWJlbFN0eWxlLFxufSBmcm9tIFwiLi9Db2xsYXBzZVBhbmVsLnN0eWxlc1wiO1xuXG5jb25zdCBpc0FjdGl2YXRpb25LZXkgPSAoa2V5OiBzdHJpbmcpID0+IGtleSA9PT0gXCJFbnRlclwiIHx8IGtleSA9PT0gXCIgXCI7XG5cbmNvbnN0IENvbGxhcHNlUGFuZWxDb21wb25lbnQ6IEZDPENvbGxhcHNlUGFuZWxQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGl0ZW0sXG4gICAgaXNBY3RpdmUsXG4gICAgaXNMYXN0LFxuICAgIGJvcmRlcmVkLFxuICAgIGlubGluZSxcbiAgICBzaXplLFxuICAgIGNvbGxhcHNpYmxlLFxuICAgIGV4cGFuZEljb24sXG4gICAgZGVzdHJveU9uSGlkZGVuLFxuICAgIHN0eWxlcyxcbiAgICBvblRvZ2dsZSxcbiAgfSA9IHByb3BzO1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IHRva2VucyA9IGdldENvbGxhcHNlVG9rZW5zKHRoZW1lKTtcblxuICBjb25zdCBoYXNSZW5kZXJlZFJlZiA9IHVzZVJlZihpdGVtLmZvcmNlUmVuZGVyID8/IGZhbHNlKTtcbiAgaWYgKGlzQWN0aXZlKSBoYXNSZW5kZXJlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcblxuICBjb25zdCBzaG91bGRSZW5kZXIgPSBkZXN0cm95T25IaWRkZW4gPyBpc0FjdGl2ZSA6IGhhc1JlbmRlcmVkUmVmLmN1cnJlbnQ7XG5cbiAgY29uc3QgbGFzdFBhbmVsRW5kU3R5bGUgPSBpc0xhc3QgPyBnZXRMYXN0UGFuZWxFbmRTdHlsZSh7IHNpemUsIGJvcmRlcmVkIH0pKHRoZW1lKSA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBoYW5kbGVIZWFkZXJDbGljayA9ICgpID0+IHtcbiAgICBpZiAoY29sbGFwc2libGUgPT09IFwiaGVhZGVyXCIpIHtcbiAgICAgIG9uVG9nZ2xlKGl0ZW0ua2V5KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlSGVhZGVyS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGlmIChjb2xsYXBzaWJsZSA9PT0gXCJoZWFkZXJcIiAmJiBpc0FjdGl2YXRpb25LZXkoZS5rZXkpKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBvblRvZ2dsZShpdGVtLmtleSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUljb25DbGljayA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgaWYgKGNvbGxhcHNpYmxlID09PSBcImljb25cIikge1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIG9uVG9nZ2xlKGl0ZW0ua2V5KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlSWNvbktleURvd24gPSAoZTogS2V5Ym9hcmRFdmVudDxIVE1MU3BhbkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGNvbGxhcHNpYmxlID09PSBcImljb25cIiAmJiBpc0FjdGl2YXRpb25LZXkoZS5rZXkpKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgb25Ub2dnbGUoaXRlbS5rZXkpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBpY29uTm9kZSA9IGV4cGFuZEljb24gPyAoXG4gICAgZXhwYW5kSWNvbih7IGlzQWN0aXZlLCBwYW5lbEtleTogaXRlbS5rZXkgfSlcbiAgKSA6IChcbiAgICA8Q2FyZXRSaWdodE91dGxpbmVkIC8+XG4gICk7XG5cbiAgY29uc3Qgc2hvd0Fycm93ID0gaXRlbS5zaG93QXJyb3cgIT09IGZhbHNlO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBvbkNsaWNrPXtpdGVtLm9uQ2xpY2t9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e1tcbiAgICAgICAgICBnZXRDb2xsYXBzZVBhbmVsSGVhZGVyU3R5bGUoeyB0b2tlbnMsIHNpemUsIGJvcmRlcmVkLCBpbmxpbmUsIGNvbGxhcHNpYmxlIH0pKHRoZW1lKSxcbiAgICAgICAgICBzdHlsZXM/LnBhbmVsSGVhZGVyPy4odG9rZW5zLCB0aGVtZSksXG4gICAgICAgICAgIWlzQWN0aXZlICYmIGxhc3RQYW5lbEVuZFN0eWxlLFxuICAgICAgICBdfVxuICAgICAgICBzdHlsZT17aXRlbS5zdHlsZXM/LmhlYWRlcn1cbiAgICAgICAgcm9sZT17Y29sbGFwc2libGUgIT09IFwiZGlzYWJsZWRcIiA/IFwiYnV0dG9uXCIgOiB1bmRlZmluZWR9XG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9e2lzQWN0aXZlfVxuICAgICAgICBhcmlhLWRpc2FibGVkPXtjb2xsYXBzaWJsZSA9PT0gXCJkaXNhYmxlZFwiIHx8IHVuZGVmaW5lZH1cbiAgICAgICAgdGFiSW5kZXg9e2NvbGxhcHNpYmxlID09PSBcImhlYWRlclwiID8gMCA6IHVuZGVmaW5lZH1cbiAgICAgICAgb25DbGljaz17aGFuZGxlSGVhZGVyQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlSGVhZGVyS2V5RG93bn1cbiAgICAgICAgdGVzdC1pZD17YGNvbGxhcHNlLXBhbmVsLWhlYWRlci0ke2l0ZW0ua2V5fWB9XG4gICAgICA+XG4gICAgICAgIHtzaG93QXJyb3cgJiYgKFxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjc3M9e2dldENvbGxhcHNlUGFuZWxJY29uU3R5bGUoaXNBY3RpdmUsIGNvbGxhcHNpYmxlKSh0aGVtZSl9XG4gICAgICAgICAgICByb2xlPXtjb2xsYXBzaWJsZSA9PT0gXCJpY29uXCIgPyBcImJ1dHRvblwiIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgdGFiSW5kZXg9e2NvbGxhcHNpYmxlID09PSBcImljb25cIiA/IDAgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVJY29uQ2xpY2t9XG4gICAgICAgICAgICBvbktleURvd249e2hhbmRsZUljb25LZXlEb3dufVxuICAgICAgICAgICAgdGVzdC1pZD17YGNvbGxhcHNlLXBhbmVsLWljb24tJHtpdGVtLmtleX1gfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpY29uTm9kZX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICl9XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY3NzPXtbY29sbGFwc2VQYW5lbExhYmVsU3R5bGUsIHN0eWxlcz8ucGFuZWxIZWFkZXJUZXh0Py4odG9rZW5zLCB0aGVtZSldfVxuICAgICAgICAgIHRlc3QtaWQ9e2Bjb2xsYXBzZS1wYW5lbC1oZWFkZXItdGV4dC0ke2l0ZW0ua2V5fWB9XG4gICAgICAgID5cbiAgICAgICAgICB7aXRlbS5sYWJlbH1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB7aXRlbS5leHRyYSAhPT0gdW5kZWZpbmVkICYmIDxzcGFuIGNzcz17Y29sbGFwc2VQYW5lbEV4dHJhU3R5bGUodGhlbWUpfT57aXRlbS5leHRyYX08L3NwYW4+fVxuICAgICAgPC9kaXY+XG4gICAgICB7c2hvdWxkUmVuZGVyICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgZ2V0Q29sbGFwc2VQYW5lbEJvZHlTdHlsZSh7IHRva2Vucywgc2l6ZSwgYm9yZGVyZWQsIGlubGluZSB9KSh0aGVtZSksXG4gICAgICAgICAgICBzdHlsZXM/LnBhbmVsQm9keT8uKHRva2VucywgdGhlbWUpLFxuICAgICAgICAgICAgaXNBY3RpdmUgJiYgbGFzdFBhbmVsRW5kU3R5bGUsXG4gICAgICAgICAgICAhaXNBY3RpdmUgJiYgeyBkaXNwbGF5OiBcIm5vbmVcIiB9LFxuICAgICAgICAgIF19XG4gICAgICAgICAgc3R5bGU9e2l0ZW0uc3R5bGVzPy5ib2R5fVxuICAgICAgICAgIHRlc3QtaWQ9e2Bjb2xsYXBzZS1wYW5lbC1ib2R5LSR7aXRlbS5rZXl9YH1cbiAgICAgICAgPlxuICAgICAgICAgIHtpdGVtLmNoaWxkcmVufVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgQ29sbGFwc2VQYW5lbCA9IG1lbW8oQ29sbGFwc2VQYW5lbENvbXBvbmVudCk7XG4iXX0= */"], style: (_b = item.styles) == null ? void 0 : _b.header, role: collapsible !== "disabled" ? "button" : void 0, "aria-expanded": isActive, "aria-disabled": collapsible === "disabled" || void 0, tabIndex: collapsible === "header" ? 0 : void 0, onClick: handleHeaderClick, onKeyDown: handleHeaderKeyDown, "test-id": `collapse-panel-header-${item.key}`, children: [
|
|
69
|
+
showArrow && /* @__PURE__ */ jsx("span", { css: getCollapsePanelIconStyle(isActive, collapsible)(theme), role: collapsible === "icon" ? "button" : void 0, tabIndex: collapsible === "icon" ? 0 : void 0, onClick: handleIconClick, onKeyDown: handleIconKeyDown, "test-id": `collapse-panel-icon-${item.key}`, children: iconNode }),
|
|
70
|
+
/* @__PURE__ */ jsx("span", { css: [collapsePanelLabelStyle, (_c = styles == null ? void 0 : styles.panelHeaderText) == null ? void 0 : _c.call(styles, tokens, theme), process.env.NODE_ENV === "production" ? "" : ";label:CollapsePanelComponent;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQ29sbGFwc2UvY29tcG9uZW50cy9Db2xsYXBzZVBhbmVsL0NvbGxhcHNlUGFuZWwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBHVSIsImZpbGUiOiIvYnVpbGRzL2Zyb250ZW5kL2xpYnMvdWkta2l0L3NyYy9jb21wb25lbnRzL0NvbGxhcHNlL2NvbXBvbmVudHMvQ29sbGFwc2VQYW5lbC9Db2xsYXBzZVBhbmVsLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lbW8sIHVzZVJlZiwgdHlwZSBGQywgdHlwZSBLZXlib2FyZEV2ZW50LCB0eXBlIE1vdXNlRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IENhcmV0UmlnaHRPdXRsaW5lZCB9IGZyb20gXCJAaW5mb21heGltdW0vaWNvbnNcIjtcbmltcG9ydCB7IHVzZVRoZW1lIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2hvb2tzL3VzZVRoZW1lXCI7XG5pbXBvcnQgeyBnZXRDb2xsYXBzZVRva2VucyB9IGZyb20gXCIuLi8uLi9Db2xsYXBzZS50b2tlbnNcIjtcbmltcG9ydCB0eXBlIHsgQ29sbGFwc2VQYW5lbFByb3BzIH0gZnJvbSBcIi4vQ29sbGFwc2VQYW5lbC50eXBlc1wiO1xuaW1wb3J0IHtcbiAgZ2V0TGFzdFBhbmVsRW5kU3R5bGUsXG4gIGdldENvbGxhcHNlUGFuZWxCb2R5U3R5bGUsXG4gIGdldENvbGxhcHNlUGFuZWxIZWFkZXJTdHlsZSxcbiAgZ2V0Q29sbGFwc2VQYW5lbEljb25TdHlsZSxcbiAgY29sbGFwc2VQYW5lbEV4dHJhU3R5bGUsXG4gIGNvbGxhcHNlUGFuZWxMYWJlbFN0eWxlLFxufSBmcm9tIFwiLi9Db2xsYXBzZVBhbmVsLnN0eWxlc1wiO1xuXG5jb25zdCBpc0FjdGl2YXRpb25LZXkgPSAoa2V5OiBzdHJpbmcpID0+IGtleSA9PT0gXCJFbnRlclwiIHx8IGtleSA9PT0gXCIgXCI7XG5cbmNvbnN0IENvbGxhcHNlUGFuZWxDb21wb25lbnQ6IEZDPENvbGxhcHNlUGFuZWxQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGl0ZW0sXG4gICAgaXNBY3RpdmUsXG4gICAgaXNMYXN0LFxuICAgIGJvcmRlcmVkLFxuICAgIGlubGluZSxcbiAgICBzaXplLFxuICAgIGNvbGxhcHNpYmxlLFxuICAgIGV4cGFuZEljb24sXG4gICAgZGVzdHJveU9uSGlkZGVuLFxuICAgIHN0eWxlcyxcbiAgICBvblRvZ2dsZSxcbiAgfSA9IHByb3BzO1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IHRva2VucyA9IGdldENvbGxhcHNlVG9rZW5zKHRoZW1lKTtcblxuICBjb25zdCBoYXNSZW5kZXJlZFJlZiA9IHVzZVJlZihpdGVtLmZvcmNlUmVuZGVyID8/IGZhbHNlKTtcbiAgaWYgKGlzQWN0aXZlKSBoYXNSZW5kZXJlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcblxuICBjb25zdCBzaG91bGRSZW5kZXIgPSBkZXN0cm95T25IaWRkZW4gPyBpc0FjdGl2ZSA6IGhhc1JlbmRlcmVkUmVmLmN1cnJlbnQ7XG5cbiAgY29uc3QgbGFzdFBhbmVsRW5kU3R5bGUgPSBpc0xhc3QgPyBnZXRMYXN0UGFuZWxFbmRTdHlsZSh7IHNpemUsIGJvcmRlcmVkIH0pKHRoZW1lKSA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBoYW5kbGVIZWFkZXJDbGljayA9ICgpID0+IHtcbiAgICBpZiAoY29sbGFwc2libGUgPT09IFwiaGVhZGVyXCIpIHtcbiAgICAgIG9uVG9nZ2xlKGl0ZW0ua2V5KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlSGVhZGVyS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGlmIChjb2xsYXBzaWJsZSA9PT0gXCJoZWFkZXJcIiAmJiBpc0FjdGl2YXRpb25LZXkoZS5rZXkpKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBvblRvZ2dsZShpdGVtLmtleSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUljb25DbGljayA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgaWYgKGNvbGxhcHNpYmxlID09PSBcImljb25cIikge1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIG9uVG9nZ2xlKGl0ZW0ua2V5KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlSWNvbktleURvd24gPSAoZTogS2V5Ym9hcmRFdmVudDxIVE1MU3BhbkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGNvbGxhcHNpYmxlID09PSBcImljb25cIiAmJiBpc0FjdGl2YXRpb25LZXkoZS5rZXkpKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgb25Ub2dnbGUoaXRlbS5rZXkpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBpY29uTm9kZSA9IGV4cGFuZEljb24gPyAoXG4gICAgZXhwYW5kSWNvbih7IGlzQWN0aXZlLCBwYW5lbEtleTogaXRlbS5rZXkgfSlcbiAgKSA6IChcbiAgICA8Q2FyZXRSaWdodE91dGxpbmVkIC8+XG4gICk7XG5cbiAgY29uc3Qgc2hvd0Fycm93ID0gaXRlbS5zaG93QXJyb3cgIT09IGZhbHNlO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBvbkNsaWNrPXtpdGVtLm9uQ2xpY2t9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e1tcbiAgICAgICAgICBnZXRDb2xsYXBzZVBhbmVsSGVhZGVyU3R5bGUoeyB0b2tlbnMsIHNpemUsIGJvcmRlcmVkLCBpbmxpbmUsIGNvbGxhcHNpYmxlIH0pKHRoZW1lKSxcbiAgICAgICAgICBzdHlsZXM/LnBhbmVsSGVhZGVyPy4odG9rZW5zLCB0aGVtZSksXG4gICAgICAgICAgIWlzQWN0aXZlICYmIGxhc3RQYW5lbEVuZFN0eWxlLFxuICAgICAgICBdfVxuICAgICAgICBzdHlsZT17aXRlbS5zdHlsZXM/LmhlYWRlcn1cbiAgICAgICAgcm9sZT17Y29sbGFwc2libGUgIT09IFwiZGlzYWJsZWRcIiA/IFwiYnV0dG9uXCIgOiB1bmRlZmluZWR9XG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9e2lzQWN0aXZlfVxuICAgICAgICBhcmlhLWRpc2FibGVkPXtjb2xsYXBzaWJsZSA9PT0gXCJkaXNhYmxlZFwiIHx8IHVuZGVmaW5lZH1cbiAgICAgICAgdGFiSW5kZXg9e2NvbGxhcHNpYmxlID09PSBcImhlYWRlclwiID8gMCA6IHVuZGVmaW5lZH1cbiAgICAgICAgb25DbGljaz17aGFuZGxlSGVhZGVyQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlSGVhZGVyS2V5RG93bn1cbiAgICAgICAgdGVzdC1pZD17YGNvbGxhcHNlLXBhbmVsLWhlYWRlci0ke2l0ZW0ua2V5fWB9XG4gICAgICA+XG4gICAgICAgIHtzaG93QXJyb3cgJiYgKFxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjc3M9e2dldENvbGxhcHNlUGFuZWxJY29uU3R5bGUoaXNBY3RpdmUsIGNvbGxhcHNpYmxlKSh0aGVtZSl9XG4gICAgICAgICAgICByb2xlPXtjb2xsYXBzaWJsZSA9PT0gXCJpY29uXCIgPyBcImJ1dHRvblwiIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgdGFiSW5kZXg9e2NvbGxhcHNpYmxlID09PSBcImljb25cIiA/IDAgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVJY29uQ2xpY2t9XG4gICAgICAgICAgICBvbktleURvd249e2hhbmRsZUljb25LZXlEb3dufVxuICAgICAgICAgICAgdGVzdC1pZD17YGNvbGxhcHNlLXBhbmVsLWljb24tJHtpdGVtLmtleX1gfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpY29uTm9kZX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICl9XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY3NzPXtbY29sbGFwc2VQYW5lbExhYmVsU3R5bGUsIHN0eWxlcz8ucGFuZWxIZWFkZXJUZXh0Py4odG9rZW5zLCB0aGVtZSldfVxuICAgICAgICAgIHRlc3QtaWQ9e2Bjb2xsYXBzZS1wYW5lbC1oZWFkZXItdGV4dC0ke2l0ZW0ua2V5fWB9XG4gICAgICAgID5cbiAgICAgICAgICB7aXRlbS5sYWJlbH1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB7aXRlbS5leHRyYSAhPT0gdW5kZWZpbmVkICYmIDxzcGFuIGNzcz17Y29sbGFwc2VQYW5lbEV4dHJhU3R5bGUodGhlbWUpfT57aXRlbS5leHRyYX08L3NwYW4+fVxuICAgICAgPC9kaXY+XG4gICAgICB7c2hvdWxkUmVuZGVyICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgZ2V0Q29sbGFwc2VQYW5lbEJvZHlTdHlsZSh7IHRva2Vucywgc2l6ZSwgYm9yZGVyZWQsIGlubGluZSB9KSh0aGVtZSksXG4gICAgICAgICAgICBzdHlsZXM/LnBhbmVsQm9keT8uKHRva2VucywgdGhlbWUpLFxuICAgICAgICAgICAgaXNBY3RpdmUgJiYgbGFzdFBhbmVsRW5kU3R5bGUsXG4gICAgICAgICAgICAhaXNBY3RpdmUgJiYgeyBkaXNwbGF5OiBcIm5vbmVcIiB9LFxuICAgICAgICAgIF19XG4gICAgICAgICAgc3R5bGU9e2l0ZW0uc3R5bGVzPy5ib2R5fVxuICAgICAgICAgIHRlc3QtaWQ9e2Bjb2xsYXBzZS1wYW5lbC1ib2R5LSR7aXRlbS5rZXl9YH1cbiAgICAgICAgPlxuICAgICAgICAgIHtpdGVtLmNoaWxkcmVufVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgQ29sbGFwc2VQYW5lbCA9IG1lbW8oQ29sbGFwc2VQYW5lbENvbXBvbmVudCk7XG4iXX0= */"], "test-id": `collapse-panel-header-text-${item.key}`, children: item.label }),
|
|
71
|
+
item.extra !== void 0 && /* @__PURE__ */ jsx("span", { css: collapsePanelExtraStyle(theme), children: item.extra })
|
|
72
|
+
] }),
|
|
73
|
+
shouldRender && /* @__PURE__ */ jsx("div", { css: [getCollapsePanelBodyStyle({
|
|
74
|
+
tokens,
|
|
75
|
+
size,
|
|
76
|
+
bordered,
|
|
77
|
+
inline
|
|
78
|
+
})(theme), (_d = styles == null ? void 0 : styles.panelBody) == null ? void 0 : _d.call(styles, tokens, theme), isActive && lastPanelEndStyle, !isActive && {
|
|
79
|
+
display: "none"
|
|
80
|
+
}, process.env.NODE_ENV === "production" ? "" : ";label:CollapsePanelComponent;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQ29sbGFwc2UvY29tcG9uZW50cy9Db2xsYXBzZVBhbmVsL0NvbGxhcHNlUGFuZWwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1IVSIsImZpbGUiOiIvYnVpbGRzL2Zyb250ZW5kL2xpYnMvdWkta2l0L3NyYy9jb21wb25lbnRzL0NvbGxhcHNlL2NvbXBvbmVudHMvQ29sbGFwc2VQYW5lbC9Db2xsYXBzZVBhbmVsLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lbW8sIHVzZVJlZiwgdHlwZSBGQywgdHlwZSBLZXlib2FyZEV2ZW50LCB0eXBlIE1vdXNlRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IENhcmV0UmlnaHRPdXRsaW5lZCB9IGZyb20gXCJAaW5mb21heGltdW0vaWNvbnNcIjtcbmltcG9ydCB7IHVzZVRoZW1lIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2hvb2tzL3VzZVRoZW1lXCI7XG5pbXBvcnQgeyBnZXRDb2xsYXBzZVRva2VucyB9IGZyb20gXCIuLi8uLi9Db2xsYXBzZS50b2tlbnNcIjtcbmltcG9ydCB0eXBlIHsgQ29sbGFwc2VQYW5lbFByb3BzIH0gZnJvbSBcIi4vQ29sbGFwc2VQYW5lbC50eXBlc1wiO1xuaW1wb3J0IHtcbiAgZ2V0TGFzdFBhbmVsRW5kU3R5bGUsXG4gIGdldENvbGxhcHNlUGFuZWxCb2R5U3R5bGUsXG4gIGdldENvbGxhcHNlUGFuZWxIZWFkZXJTdHlsZSxcbiAgZ2V0Q29sbGFwc2VQYW5lbEljb25TdHlsZSxcbiAgY29sbGFwc2VQYW5lbEV4dHJhU3R5bGUsXG4gIGNvbGxhcHNlUGFuZWxMYWJlbFN0eWxlLFxufSBmcm9tIFwiLi9Db2xsYXBzZVBhbmVsLnN0eWxlc1wiO1xuXG5jb25zdCBpc0FjdGl2YXRpb25LZXkgPSAoa2V5OiBzdHJpbmcpID0+IGtleSA9PT0gXCJFbnRlclwiIHx8IGtleSA9PT0gXCIgXCI7XG5cbmNvbnN0IENvbGxhcHNlUGFuZWxDb21wb25lbnQ6IEZDPENvbGxhcHNlUGFuZWxQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGl0ZW0sXG4gICAgaXNBY3RpdmUsXG4gICAgaXNMYXN0LFxuICAgIGJvcmRlcmVkLFxuICAgIGlubGluZSxcbiAgICBzaXplLFxuICAgIGNvbGxhcHNpYmxlLFxuICAgIGV4cGFuZEljb24sXG4gICAgZGVzdHJveU9uSGlkZGVuLFxuICAgIHN0eWxlcyxcbiAgICBvblRvZ2dsZSxcbiAgfSA9IHByb3BzO1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IHRva2VucyA9IGdldENvbGxhcHNlVG9rZW5zKHRoZW1lKTtcblxuICBjb25zdCBoYXNSZW5kZXJlZFJlZiA9IHVzZVJlZihpdGVtLmZvcmNlUmVuZGVyID8/IGZhbHNlKTtcbiAgaWYgKGlzQWN0aXZlKSBoYXNSZW5kZXJlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcblxuICBjb25zdCBzaG91bGRSZW5kZXIgPSBkZXN0cm95T25IaWRkZW4gPyBpc0FjdGl2ZSA6IGhhc1JlbmRlcmVkUmVmLmN1cnJlbnQ7XG5cbiAgY29uc3QgbGFzdFBhbmVsRW5kU3R5bGUgPSBpc0xhc3QgPyBnZXRMYXN0UGFuZWxFbmRTdHlsZSh7IHNpemUsIGJvcmRlcmVkIH0pKHRoZW1lKSA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBoYW5kbGVIZWFkZXJDbGljayA9ICgpID0+IHtcbiAgICBpZiAoY29sbGFwc2libGUgPT09IFwiaGVhZGVyXCIpIHtcbiAgICAgIG9uVG9nZ2xlKGl0ZW0ua2V5KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlSGVhZGVyS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGlmIChjb2xsYXBzaWJsZSA9PT0gXCJoZWFkZXJcIiAmJiBpc0FjdGl2YXRpb25LZXkoZS5rZXkpKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBvblRvZ2dsZShpdGVtLmtleSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUljb25DbGljayA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgaWYgKGNvbGxhcHNpYmxlID09PSBcImljb25cIikge1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIG9uVG9nZ2xlKGl0ZW0ua2V5KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlSWNvbktleURvd24gPSAoZTogS2V5Ym9hcmRFdmVudDxIVE1MU3BhbkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGNvbGxhcHNpYmxlID09PSBcImljb25cIiAmJiBpc0FjdGl2YXRpb25LZXkoZS5rZXkpKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgb25Ub2dnbGUoaXRlbS5rZXkpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBpY29uTm9kZSA9IGV4cGFuZEljb24gPyAoXG4gICAgZXhwYW5kSWNvbih7IGlzQWN0aXZlLCBwYW5lbEtleTogaXRlbS5rZXkgfSlcbiAgKSA6IChcbiAgICA8Q2FyZXRSaWdodE91dGxpbmVkIC8+XG4gICk7XG5cbiAgY29uc3Qgc2hvd0Fycm93ID0gaXRlbS5zaG93QXJyb3cgIT09IGZhbHNlO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBvbkNsaWNrPXtpdGVtLm9uQ2xpY2t9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e1tcbiAgICAgICAgICBnZXRDb2xsYXBzZVBhbmVsSGVhZGVyU3R5bGUoeyB0b2tlbnMsIHNpemUsIGJvcmRlcmVkLCBpbmxpbmUsIGNvbGxhcHNpYmxlIH0pKHRoZW1lKSxcbiAgICAgICAgICBzdHlsZXM/LnBhbmVsSGVhZGVyPy4odG9rZW5zLCB0aGVtZSksXG4gICAgICAgICAgIWlzQWN0aXZlICYmIGxhc3RQYW5lbEVuZFN0eWxlLFxuICAgICAgICBdfVxuICAgICAgICBzdHlsZT17aXRlbS5zdHlsZXM/LmhlYWRlcn1cbiAgICAgICAgcm9sZT17Y29sbGFwc2libGUgIT09IFwiZGlzYWJsZWRcIiA/IFwiYnV0dG9uXCIgOiB1bmRlZmluZWR9XG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9e2lzQWN0aXZlfVxuICAgICAgICBhcmlhLWRpc2FibGVkPXtjb2xsYXBzaWJsZSA9PT0gXCJkaXNhYmxlZFwiIHx8IHVuZGVmaW5lZH1cbiAgICAgICAgdGFiSW5kZXg9e2NvbGxhcHNpYmxlID09PSBcImhlYWRlclwiID8gMCA6IHVuZGVmaW5lZH1cbiAgICAgICAgb25DbGljaz17aGFuZGxlSGVhZGVyQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlSGVhZGVyS2V5RG93bn1cbiAgICAgICAgdGVzdC1pZD17YGNvbGxhcHNlLXBhbmVsLWhlYWRlci0ke2l0ZW0ua2V5fWB9XG4gICAgICA+XG4gICAgICAgIHtzaG93QXJyb3cgJiYgKFxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjc3M9e2dldENvbGxhcHNlUGFuZWxJY29uU3R5bGUoaXNBY3RpdmUsIGNvbGxhcHNpYmxlKSh0aGVtZSl9XG4gICAgICAgICAgICByb2xlPXtjb2xsYXBzaWJsZSA9PT0gXCJpY29uXCIgPyBcImJ1dHRvblwiIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgdGFiSW5kZXg9e2NvbGxhcHNpYmxlID09PSBcImljb25cIiA/IDAgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVJY29uQ2xpY2t9XG4gICAgICAgICAgICBvbktleURvd249e2hhbmRsZUljb25LZXlEb3dufVxuICAgICAgICAgICAgdGVzdC1pZD17YGNvbGxhcHNlLXBhbmVsLWljb24tJHtpdGVtLmtleX1gfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpY29uTm9kZX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICl9XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY3NzPXtbY29sbGFwc2VQYW5lbExhYmVsU3R5bGUsIHN0eWxlcz8ucGFuZWxIZWFkZXJUZXh0Py4odG9rZW5zLCB0aGVtZSldfVxuICAgICAgICAgIHRlc3QtaWQ9e2Bjb2xsYXBzZS1wYW5lbC1oZWFkZXItdGV4dC0ke2l0ZW0ua2V5fWB9XG4gICAgICAgID5cbiAgICAgICAgICB7aXRlbS5sYWJlbH1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB7aXRlbS5leHRyYSAhPT0gdW5kZWZpbmVkICYmIDxzcGFuIGNzcz17Y29sbGFwc2VQYW5lbEV4dHJhU3R5bGUodGhlbWUpfT57aXRlbS5leHRyYX08L3NwYW4+fVxuICAgICAgPC9kaXY+XG4gICAgICB7c2hvdWxkUmVuZGVyICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgZ2V0Q29sbGFwc2VQYW5lbEJvZHlTdHlsZSh7IHRva2Vucywgc2l6ZSwgYm9yZGVyZWQsIGlubGluZSB9KSh0aGVtZSksXG4gICAgICAgICAgICBzdHlsZXM/LnBhbmVsQm9keT8uKHRva2VucywgdGhlbWUpLFxuICAgICAgICAgICAgaXNBY3RpdmUgJiYgbGFzdFBhbmVsRW5kU3R5bGUsXG4gICAgICAgICAgICAhaXNBY3RpdmUgJiYgeyBkaXNwbGF5OiBcIm5vbmVcIiB9LFxuICAgICAgICAgIF19XG4gICAgICAgICAgc3R5bGU9e2l0ZW0uc3R5bGVzPy5ib2R5fVxuICAgICAgICAgIHRlc3QtaWQ9e2Bjb2xsYXBzZS1wYW5lbC1ib2R5LSR7aXRlbS5rZXl9YH1cbiAgICAgICAgPlxuICAgICAgICAgIHtpdGVtLmNoaWxkcmVufVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgQ29sbGFwc2VQYW5lbCA9IG1lbW8oQ29sbGFwc2VQYW5lbENvbXBvbmVudCk7XG4iXX0= */"], style: (_e = item.styles) == null ? void 0 : _e.body, "test-id": `collapse-panel-body-${item.key}`, children: item.children })
|
|
81
|
+
] });
|
|
82
|
+
};
|
|
83
|
+
const CollapsePanel = memo(CollapsePanelComponent);
|
|
84
|
+
export {
|
|
85
|
+
CollapsePanel
|
|
86
|
+
};
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Theme } from '../../../../themes';
|
|
2
|
+
import { CollapseTokens } from '../../Collapse.tokens';
|
|
3
|
+
import { CollapseCollapsible, CollapseSize } from '../../Collapse.types';
|
|
4
|
+
export declare const getLastPanelEndStyle: ({ size, bordered }: {
|
|
5
|
+
size: CollapseSize;
|
|
6
|
+
bordered: boolean;
|
|
7
|
+
}) => (theme: Theme) => {
|
|
8
|
+
borderBottom?: string | undefined;
|
|
9
|
+
paddingBlockEnd?: 4 | 8 | undefined;
|
|
10
|
+
borderBottomLeftRadius: 4 | 8;
|
|
11
|
+
borderBottomRightRadius: 4 | 8;
|
|
12
|
+
};
|
|
13
|
+
export declare const getCollapsePanelHeaderStyle: ({ tokens, size, bordered, inline, collapsible, }: {
|
|
14
|
+
tokens: CollapseTokens;
|
|
15
|
+
size: CollapseSize;
|
|
16
|
+
bordered: boolean;
|
|
17
|
+
inline: boolean;
|
|
18
|
+
collapsible: CollapseCollapsible;
|
|
19
|
+
}) => (theme: Theme) => {
|
|
20
|
+
":hover"?: {
|
|
21
|
+
backgroundColor: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
22
|
+
} | undefined;
|
|
23
|
+
gap: 8 | 12;
|
|
24
|
+
backgroundColor: "#FFFFFF";
|
|
25
|
+
cursor: string;
|
|
26
|
+
userSelect: "none";
|
|
27
|
+
borderBottom?: string | undefined;
|
|
28
|
+
paddingBlockStart: 4 | 8;
|
|
29
|
+
paddingBlockEnd: number;
|
|
30
|
+
paddingInline: number;
|
|
31
|
+
fontFamily: "Roboto";
|
|
32
|
+
fontSize: 14;
|
|
33
|
+
lineHeight: "20px";
|
|
34
|
+
display: string;
|
|
35
|
+
alignItems: string;
|
|
36
|
+
} | {
|
|
37
|
+
":hover"?: {
|
|
38
|
+
backgroundColor: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
39
|
+
} | undefined;
|
|
40
|
+
gap: 8 | 12;
|
|
41
|
+
backgroundColor: "#FFFFFF";
|
|
42
|
+
cursor: string;
|
|
43
|
+
userSelect: "none";
|
|
44
|
+
borderBottom?: string | undefined;
|
|
45
|
+
paddingBlockStart: 4 | 8;
|
|
46
|
+
paddingBlockEnd: number;
|
|
47
|
+
paddingInline: number;
|
|
48
|
+
fontFamily: "Roboto";
|
|
49
|
+
fontSize: 12;
|
|
50
|
+
lineHeight: "20px";
|
|
51
|
+
display: string;
|
|
52
|
+
alignItems: string;
|
|
53
|
+
};
|
|
54
|
+
export declare const collapsePanelLabelStyle: {
|
|
55
|
+
flex: number;
|
|
56
|
+
minWidth: number;
|
|
57
|
+
overflow: "hidden";
|
|
58
|
+
textOverflow: "ellipsis";
|
|
59
|
+
whiteSpace: "nowrap";
|
|
60
|
+
};
|
|
61
|
+
export declare const collapsePanelExtraStyle: (theme: Theme) => {
|
|
62
|
+
display: string;
|
|
63
|
+
alignItems: string;
|
|
64
|
+
flexShrink: number;
|
|
65
|
+
fontSize: 16;
|
|
66
|
+
};
|
|
67
|
+
export declare const getCollapsePanelIconStyle: (isActive: boolean, collapsible: CollapseCollapsible) => (theme: Theme) => {
|
|
68
|
+
cursor?: string | undefined;
|
|
69
|
+
display: string;
|
|
70
|
+
alignItems: string;
|
|
71
|
+
fontSize: 12;
|
|
72
|
+
lineHeight: number;
|
|
73
|
+
flexShrink: number;
|
|
74
|
+
transform: string;
|
|
75
|
+
};
|
|
76
|
+
export declare const getCollapsePanelBodyStyle: ({ tokens, size, bordered, inline, }: {
|
|
77
|
+
tokens: CollapseTokens;
|
|
78
|
+
size: CollapseSize;
|
|
79
|
+
bordered: boolean;
|
|
80
|
+
inline: boolean;
|
|
81
|
+
}) => (theme: Theme) => {
|
|
82
|
+
backgroundColor: string;
|
|
83
|
+
borderBottom?: string | undefined;
|
|
84
|
+
paddingBlockStart: 4 | 8;
|
|
85
|
+
paddingBlockEnd: number;
|
|
86
|
+
paddingInline: number;
|
|
87
|
+
};
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
const getPanelSectionCommonStyle = ({
|
|
2
|
+
size,
|
|
3
|
+
bordered,
|
|
4
|
+
inline,
|
|
5
|
+
tokens,
|
|
6
|
+
theme
|
|
7
|
+
}) => ({
|
|
8
|
+
paddingBlockStart: size === "small" ? theme.x1 : theme.x2,
|
|
9
|
+
paddingBlockEnd: (size === "small" ? theme.x1 : theme.x2) - (bordered ? 1 : 0),
|
|
10
|
+
paddingInline: inline ? 0 : size === "small" ? theme.x2 : theme.x3,
|
|
11
|
+
...bordered ? {
|
|
12
|
+
borderBottom: `1px solid ${tokens.collapseBorder}`
|
|
13
|
+
} : {}
|
|
14
|
+
});
|
|
15
|
+
const getLastPanelEndStyle = ({
|
|
16
|
+
size,
|
|
17
|
+
bordered
|
|
18
|
+
}) => (theme) => {
|
|
19
|
+
const radius = size === "small" ? theme.borderRadiusM : theme.borderRadiusL;
|
|
20
|
+
return {
|
|
21
|
+
borderBottomLeftRadius: radius,
|
|
22
|
+
borderBottomRightRadius: radius,
|
|
23
|
+
...bordered ? {
|
|
24
|
+
borderBottom: "none",
|
|
25
|
+
paddingBlockEnd: size === "small" ? theme.x1 : theme.x2
|
|
26
|
+
} : {}
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
const getCollapsePanelHeaderStyle = ({
|
|
30
|
+
tokens,
|
|
31
|
+
size,
|
|
32
|
+
bordered,
|
|
33
|
+
inline,
|
|
34
|
+
collapsible
|
|
35
|
+
}) => (theme) => ({
|
|
36
|
+
display: "flex",
|
|
37
|
+
alignItems: "center",
|
|
38
|
+
...size === "small" ? theme.typography.body3 : theme.typography.body2,
|
|
39
|
+
...getPanelSectionCommonStyle({
|
|
40
|
+
size,
|
|
41
|
+
bordered,
|
|
42
|
+
inline,
|
|
43
|
+
tokens,
|
|
44
|
+
theme
|
|
45
|
+
}),
|
|
46
|
+
gap: size === "small" ? theme.spaceM : theme.spaceL,
|
|
47
|
+
backgroundColor: tokens.collapseBg,
|
|
48
|
+
cursor: collapsible === "header" ? "pointer" : collapsible === "disabled" ? "not-allowed" : "default",
|
|
49
|
+
userSelect: "none",
|
|
50
|
+
...collapsible === "header" ? {
|
|
51
|
+
":hover": {
|
|
52
|
+
backgroundColor: tokens.collapseItemHeaderBgHover
|
|
53
|
+
}
|
|
54
|
+
} : {}
|
|
55
|
+
});
|
|
56
|
+
const collapsePanelLabelStyle = {
|
|
57
|
+
flex: 1,
|
|
58
|
+
minWidth: 0,
|
|
59
|
+
overflow: "hidden",
|
|
60
|
+
textOverflow: "ellipsis",
|
|
61
|
+
whiteSpace: "nowrap"
|
|
62
|
+
};
|
|
63
|
+
const collapsePanelExtraStyle = (theme) => ({
|
|
64
|
+
display: "flex",
|
|
65
|
+
alignItems: "center",
|
|
66
|
+
flexShrink: 0,
|
|
67
|
+
fontSize: theme.iconM
|
|
68
|
+
});
|
|
69
|
+
const getCollapsePanelIconStyle = (isActive, collapsible) => (theme) => ({
|
|
70
|
+
display: "flex",
|
|
71
|
+
alignItems: "center",
|
|
72
|
+
fontSize: theme.iconS,
|
|
73
|
+
lineHeight: 1,
|
|
74
|
+
flexShrink: 0,
|
|
75
|
+
transform: isActive ? "rotate(90deg)" : "rotate(0deg)",
|
|
76
|
+
...collapsible === "icon" ? {
|
|
77
|
+
cursor: "pointer"
|
|
78
|
+
} : {}
|
|
79
|
+
});
|
|
80
|
+
const getCollapsePanelBodyStyle = ({
|
|
81
|
+
tokens,
|
|
82
|
+
size,
|
|
83
|
+
bordered,
|
|
84
|
+
inline
|
|
85
|
+
}) => (theme) => ({
|
|
86
|
+
...getPanelSectionCommonStyle({
|
|
87
|
+
size,
|
|
88
|
+
bordered,
|
|
89
|
+
inline,
|
|
90
|
+
tokens,
|
|
91
|
+
theme
|
|
92
|
+
}),
|
|
93
|
+
backgroundColor: bordered ? tokens.collapseBg : "transparent"
|
|
94
|
+
});
|
|
95
|
+
export {
|
|
96
|
+
collapsePanelExtraStyle,
|
|
97
|
+
collapsePanelLabelStyle,
|
|
98
|
+
getCollapsePanelBodyStyle,
|
|
99
|
+
getCollapsePanelHeaderStyle,
|
|
100
|
+
getCollapsePanelIconStyle,
|
|
101
|
+
getLastPanelEndStyle
|
|
102
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CollapseItemType, CollapseKey, CollapseProps } from '../../Collapse.types';
|
|
2
|
+
export interface CollapsePanelProps extends Required<Pick<CollapseProps, "bordered" | "inline" | "size" | "collapsible">>, Pick<CollapseProps, "expandIcon" | "styles" | "destroyOnHidden"> {
|
|
3
|
+
item: CollapseItemType;
|
|
4
|
+
isActive: boolean;
|
|
5
|
+
isLast: boolean;
|
|
6
|
+
onToggle: (key: CollapseKey) => void;
|
|
7
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -50,4 +50,5 @@ export { type SegmentedProps, type SegmentedLabeledOption, Segmented, } from './
|
|
|
50
50
|
export { ContextIsolator } from './components/ContextIsolator';
|
|
51
51
|
export { type SpinProps, Spin } from './components/Spin';
|
|
52
52
|
export { type TableProps, type DefaultRecord, type RenderFn, type Column, type ColumnWithChildren, Table, } from './components/Table';
|
|
53
|
+
export { Collapse, type CollapseProps, type CollapseItemType, type CollapseKey, type CollapseExpandIconProps, } from './components/Collapse';
|
|
53
54
|
export * from 'react-intersection-observer/test-utils';
|
package/dist/index.js
CHANGED
|
@@ -39,12 +39,14 @@ import { Segmented } from "./components/Segmented/Segmented.js";
|
|
|
39
39
|
import { ContextIsolator } from "./components/ContextIsolator/ContextIsolator.js";
|
|
40
40
|
import { Spin } from "./components/Spin/Spin.js";
|
|
41
41
|
import { Table } from "./components/Table/Table.js";
|
|
42
|
+
import { Collapse } from "./components/Collapse/Collapse.js";
|
|
42
43
|
export {
|
|
43
44
|
Alert,
|
|
44
45
|
Avatar,
|
|
45
46
|
Breadcrumb,
|
|
46
47
|
Button,
|
|
47
48
|
Checkbox,
|
|
49
|
+
Collapse,
|
|
48
50
|
ConfigProvider,
|
|
49
51
|
ContextIsolator,
|
|
50
52
|
DatePicker,
|