@phpsoftbox/react-softbox 2.7.1 → 2.8.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/README.md +23 -21
- package/dist/components/Alert/Alert.js +9 -7
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/Card/Card.d.ts +5 -8
- package/dist/components/Card/Card.js +12 -122
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/Card/Card.module.css +17 -127
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/docs/card.md +77 -41
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -183,38 +183,40 @@ Custom variants задаются через `--variant-{name}-*` токены:
|
|
|
183
183
|
|
|
184
184
|
### Card.Toolbar
|
|
185
185
|
|
|
186
|
-
`Card.Toolbar`
|
|
186
|
+
`Card.Toolbar` по умолчанию (`inset=true`) — панель в скруглённой рамке: при размещении непосредственно в Card её внешний отступ равен отступу секций, а края рамки выровнены с контентом Header/Body. `inset={false}` — полоса на всю ширину без боковых границ и скруглений; её контент получает боковой padding Card и выровнен с Header/Body. `dividerTop` и `dividerBottom` независимо управляют верхней и нижней границами (по умолчанию равны `inset`). `Card.Toolbar.Group divider="none|left|right|both"` задаёт боковые разделители (по умолчанию `none`). Group должен находиться внутри Toolbar, в том числе через Grid/Row.
|
|
187
187
|
|
|
188
|
-
|
|
188
|
+
Для колонок используйте Grid, для ряда с переносами — Row. Toolbar не добавляет обёрток и не управляет шириной колонок.
|
|
189
189
|
|
|
190
190
|
```tsx
|
|
191
|
-
<Card.Toolbar>
|
|
192
|
-
<
|
|
193
|
-
<Card.Toolbar.Group
|
|
194
|
-
<
|
|
195
|
-
<Card.Toolbar.Button label="Активные" />
|
|
191
|
+
<Card.Toolbar inset={false} dividerBottom>
|
|
192
|
+
<Grid columns={2} columnsSm={1} gap="16px">
|
|
193
|
+
<Card.Toolbar.Group>
|
|
194
|
+
<Text>Всего записей: 5</Text>
|
|
196
195
|
</Card.Toolbar.Group>
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
<Card.Toolbar.Group attached>
|
|
201
|
-
<Card.Toolbar.Button label="День" />
|
|
202
|
-
<Card.Toolbar.Button label="Неделя" />
|
|
196
|
+
<Card.Toolbar.Group divider="left" style={{ justifyContent: 'flex-end' }}>
|
|
197
|
+
<Card.Toolbar.Button label="Экспорт" />
|
|
198
|
+
<Card.Toolbar.Button label="Добавить" />
|
|
203
199
|
</Card.Toolbar.Group>
|
|
204
|
-
</
|
|
200
|
+
</Grid>
|
|
201
|
+
</Card.Toolbar>
|
|
202
|
+
```
|
|
205
203
|
|
|
206
|
-
|
|
204
|
+
Для разнесения по краям без разделителя:
|
|
205
|
+
|
|
206
|
+
```tsx
|
|
207
|
+
<Card.Toolbar inset={false}>
|
|
208
|
+
<Row justify="space-between" wrap="wrap" gap="16px">
|
|
209
|
+
<Text>Всего записей: 5</Text>
|
|
207
210
|
<Card.Toolbar.Group>
|
|
208
|
-
<Button
|
|
209
|
-
|
|
210
|
-
main={{ label: 'Импорт', onClick: handleImport }}
|
|
211
|
-
menu={{ ariaLabel: 'Действия импорта', items }}
|
|
212
|
-
/>
|
|
211
|
+
<Card.Toolbar.Button label="Экспорт" />
|
|
212
|
+
<Card.Toolbar.Button label="Добавить" />
|
|
213
213
|
</Card.Toolbar.Group>
|
|
214
|
-
</
|
|
214
|
+
</Row>
|
|
215
215
|
</Card.Toolbar>
|
|
216
216
|
```
|
|
217
217
|
|
|
218
|
+
Удалены `Toolbar.align`, `Toolbar.dividers` и `Toolbar.Section`: раскладку задают Grid/Row, а боковые линии — Group. Подробнее о переходе: [Card](docs/card.md).
|
|
219
|
+
|
|
218
220
|
### Input / FloatLabel
|
|
219
221
|
|
|
220
222
|
```tsx
|
|
@@ -18,17 +18,19 @@ const iconPlacementClassMap = {
|
|
|
18
18
|
center: styles.iconCenter,
|
|
19
19
|
bottom: styles.iconBottom,
|
|
20
20
|
};
|
|
21
|
+
// Keep the dot visibly separate from the rounded stem even at 16px.
|
|
22
|
+
const infoIcon = (_jsxs("svg", { viewBox: "0 0 20 20", fill: "none", stroke: "currentColor", strokeWidth: "1.8", "aria-hidden": "true", children: [_jsx("circle", { cx: "10", cy: "10", r: "7.2" }), _jsx("path", { d: "M10 9.5v4", strokeLinecap: "round" }), _jsx("circle", { cx: "10", cy: "6", r: "1", fill: "currentColor", stroke: "none" })] }));
|
|
21
23
|
const defaultIcons = {
|
|
22
|
-
default:
|
|
23
|
-
primary:
|
|
24
|
-
secondary:
|
|
25
|
-
info:
|
|
24
|
+
default: infoIcon,
|
|
25
|
+
primary: infoIcon,
|
|
26
|
+
secondary: infoIcon,
|
|
27
|
+
info: infoIcon,
|
|
26
28
|
success: (_jsxs("svg", { viewBox: "0 0 20 20", fill: "none", stroke: "currentColor", strokeWidth: "1.8", "aria-hidden": "true", children: [_jsx("circle", { cx: "10", cy: "10", r: "7.2" }), _jsx("path", { d: "m6.8 10 2.1 2.2 4.3-4.4", strokeLinecap: "round", strokeLinejoin: "round" })] })),
|
|
27
29
|
warning: (_jsxs("svg", { viewBox: "0 0 20 20", fill: "none", stroke: "currentColor", strokeWidth: "1.8", "aria-hidden": "true", children: [_jsx("path", { d: "M10 3.4 17 16.2a1 1 0 0 1-.88 1.4H3.88A1 1 0 0 1 3 16.2L10 3.4Z", strokeLinejoin: "round" }), _jsx("path", { d: "M10 8v4", strokeLinecap: "round" }), _jsx("circle", { cx: "10", cy: "14.4", r: "0.8", fill: "currentColor", stroke: "none" })] })),
|
|
28
30
|
danger: (_jsxs("svg", { viewBox: "0 0 20 20", fill: "none", stroke: "currentColor", strokeWidth: "1.8", "aria-hidden": "true", children: [_jsx("circle", { cx: "10", cy: "10", r: "7.2" }), _jsx("path", { d: "m7.5 7.5 5 5m0-5-5 5", strokeLinecap: "round" })] })),
|
|
29
|
-
dark:
|
|
30
|
-
light:
|
|
31
|
-
neutral:
|
|
31
|
+
dark: infoIcon,
|
|
32
|
+
light: infoIcon,
|
|
33
|
+
neutral: infoIcon,
|
|
32
34
|
};
|
|
33
35
|
export default function Alert({ variant = 'info', title, icon, iconPlacement = 'top', iconBgFilled = false, actions, onClose, className, style, children, ...props }) {
|
|
34
36
|
const variantStyle = isBuiltinUiVariant(variant) ? undefined : buildAlertVariantStyle(variant);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert.js","sourceRoot":"","sources":["../../../src/components/Alert/Alert.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAe/B,MAAM,QAAQ,GAAqC;IACjD,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;IACjB,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC,IAAI;IACjB,KAAK,EAAE,MAAM,CAAC,KAAK;IACnB,OAAO,EAAE,MAAM,CAAC,OAAO;CACxB,CAAC;AAEF,MAAM,qBAAqB,GAAuC;IAChE,GAAG,EAAE,MAAM,CAAC,OAAO;IACnB,MAAM,EAAE,MAAM,CAAC,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC,UAAU;CAC1B,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"Alert.js","sourceRoot":"","sources":["../../../src/components/Alert/Alert.tsx"],"names":[],"mappings":"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"}
|
|
@@ -21,21 +21,19 @@ type CardSectionProps = React.HTMLAttributes<HTMLDivElement>;
|
|
|
21
21
|
type CardFooterProps = CardSectionProps & {
|
|
22
22
|
divider?: boolean;
|
|
23
23
|
};
|
|
24
|
-
export type CardToolbarSectionAlign = 'left' | 'center' | 'right';
|
|
25
24
|
export type CardToolbarProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
26
|
-
/**
|
|
25
|
+
/** Inset rounded panel; false renders a full-width strip with section-aligned content. Defaults to true. */
|
|
27
26
|
inset?: boolean;
|
|
27
|
+
/** Show the top border. Defaults to inset. */
|
|
28
28
|
dividerTop?: boolean;
|
|
29
|
+
/** Show the bottom border. Defaults to inset. */
|
|
29
30
|
dividerBottom?: boolean;
|
|
30
|
-
align?: 'left' | 'right' | 'between';
|
|
31
31
|
buttonHideLabelOn?: 'never' | 'md';
|
|
32
|
-
dividers?: boolean;
|
|
33
|
-
};
|
|
34
|
-
export type CardToolbarSectionProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
35
|
-
align?: CardToolbarSectionAlign;
|
|
36
32
|
};
|
|
37
33
|
export type CardToolbarGroupProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
38
34
|
attached?: boolean;
|
|
35
|
+
/** Explicit side dividers, independent of layout. Defaults to none. */
|
|
36
|
+
divider?: 'none' | 'left' | 'right' | 'both';
|
|
39
37
|
};
|
|
40
38
|
type CardToolbarButtonBaseProps<TElement extends React.ElementType = 'button'> = Omit<ButtonProps<TElement>, 'children'> & {
|
|
41
39
|
icon?: React.ReactNode;
|
|
@@ -55,7 +53,6 @@ export type CardToolbarButtonProps<TElement extends React.ElementType = 'button'
|
|
|
55
53
|
});
|
|
56
54
|
type CardToolbarButtonComponent = <TElement extends React.ElementType = 'button'>(props: CardToolbarButtonProps<TElement>) => React.ReactElement | null;
|
|
57
55
|
type CardToolbarComponent = React.FC<CardToolbarProps> & {
|
|
58
|
-
Section: React.FC<CardToolbarSectionProps>;
|
|
59
56
|
Group: React.FC<CardToolbarGroupProps>;
|
|
60
57
|
Button: CardToolbarButtonComponent;
|
|
61
58
|
};
|
|
@@ -42,136 +42,25 @@ function CardFooter({ divider = false, className, ...props }) {
|
|
|
42
42
|
const classes = [styles.footer, divider ? styles.footerDivider : null, className].filter(Boolean).join(' ');
|
|
43
43
|
return _jsx("div", { className: classes, ...props });
|
|
44
44
|
}
|
|
45
|
-
const
|
|
46
|
-
const CardToolbarContext = React.createContext({ hideLabelOn: 'md' });
|
|
47
|
-
const resolveToolbarRows = (elements) => {
|
|
48
|
-
let currentTop = null;
|
|
49
|
-
let currentRow = 0;
|
|
50
|
-
return elements.map((element) => {
|
|
51
|
-
const top = Math.round(element.offsetTop);
|
|
52
|
-
if (currentTop === null) {
|
|
53
|
-
currentTop = top;
|
|
54
|
-
return { row: currentRow, rowStart: true };
|
|
55
|
-
}
|
|
56
|
-
if (Math.abs(top - currentTop) > 1) {
|
|
57
|
-
currentTop = top;
|
|
58
|
-
currentRow += 1;
|
|
59
|
-
return { row: currentRow, rowStart: true };
|
|
60
|
-
}
|
|
61
|
-
return { row: currentRow, rowStart: false };
|
|
62
|
-
});
|
|
63
|
-
};
|
|
64
|
-
const isSameRows = (left, right) => {
|
|
65
|
-
if (left.length !== right.length) {
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
for (let index = 0; index < left.length; index += 1) {
|
|
69
|
-
if (left[index].row !== right[index].row || left[index].rowStart !== right[index].rowStart) {
|
|
70
|
-
return false;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return true;
|
|
74
|
-
};
|
|
45
|
+
const CardToolbarContext = React.createContext(null);
|
|
75
46
|
const toolbarButtonSizeClass = {
|
|
76
47
|
sm: styles.toolbarButtonSizeSm,
|
|
77
48
|
md: styles.toolbarButtonSizeMd,
|
|
78
49
|
lg: styles.toolbarButtonSizeLg,
|
|
79
50
|
};
|
|
80
|
-
|
|
81
|
-
if (!React.isValidElement(child) || child.type !== CardToolbarSection) {
|
|
82
|
-
return undefined;
|
|
83
|
-
}
|
|
84
|
-
return child.props.align ?? 'left';
|
|
85
|
-
};
|
|
86
|
-
function CardToolbarBase({ inset = true, dividerTop = false, dividerBottom = false, align = 'left', buttonHideLabelOn = 'md', dividers = true, className, children, ...props }) {
|
|
87
|
-
const alignClass = align === 'right'
|
|
88
|
-
? styles.toolbarAlignRight
|
|
89
|
-
: align === 'between'
|
|
90
|
-
? styles.toolbarAlignBetween
|
|
91
|
-
: styles.toolbarAlignLeft;
|
|
92
|
-
const rootRef = React.useRef(null);
|
|
93
|
-
const [rows, setRows] = React.useState([]);
|
|
94
|
-
const toolbarChildren = React.Children.toArray(children);
|
|
95
|
-
const hasSections = toolbarChildren.some((child) => getToolbarSectionAlign(child) !== undefined);
|
|
51
|
+
function CardToolbarBase({ inset = true, dividerTop = inset, dividerBottom = inset, buttonHideLabelOn = 'md', className, children, ...props }) {
|
|
96
52
|
const classes = [
|
|
97
53
|
styles.toolbar,
|
|
98
54
|
inset ? styles.toolbarInset : null,
|
|
99
55
|
dividerTop ? styles.toolbarDividerTop : null,
|
|
100
56
|
dividerBottom ? styles.toolbarDividerBottom : null,
|
|
101
|
-
alignClass,
|
|
102
|
-
hasSections ? styles.toolbarSections : null,
|
|
103
57
|
className,
|
|
104
|
-
]
|
|
105
|
-
|
|
106
|
-
.join(' ');
|
|
107
|
-
useIsomorphicLayoutEffect(() => {
|
|
108
|
-
const root = rootRef.current;
|
|
109
|
-
if (!root) {
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
let frameId = null;
|
|
113
|
-
const collect = () => {
|
|
114
|
-
root.setAttribute('data-toolbar-measuring', 'true');
|
|
115
|
-
try {
|
|
116
|
-
const items = Array.from(root.querySelectorAll('[data-card-toolbar-item="true"]'));
|
|
117
|
-
const nextRows = resolveToolbarRows(items);
|
|
118
|
-
setRows((previousRows) => (isSameRows(previousRows, nextRows) ? previousRows : nextRows));
|
|
119
|
-
}
|
|
120
|
-
finally {
|
|
121
|
-
root.removeAttribute('data-toolbar-measuring');
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
const scheduleCollect = () => {
|
|
125
|
-
if (typeof window === 'undefined') {
|
|
126
|
-
collect();
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
if (frameId !== null) {
|
|
130
|
-
window.cancelAnimationFrame(frameId);
|
|
131
|
-
}
|
|
132
|
-
frameId = window.requestAnimationFrame(() => {
|
|
133
|
-
frameId = null;
|
|
134
|
-
collect();
|
|
135
|
-
});
|
|
136
|
-
};
|
|
137
|
-
scheduleCollect();
|
|
138
|
-
const handleResize = () => scheduleCollect();
|
|
139
|
-
window.addEventListener('resize', handleResize);
|
|
140
|
-
if (typeof ResizeObserver !== 'undefined') {
|
|
141
|
-
const observer = new ResizeObserver(() => scheduleCollect());
|
|
142
|
-
observer.observe(root);
|
|
143
|
-
Array.from(root.children).forEach((child) => {
|
|
144
|
-
if (child instanceof HTMLElement) {
|
|
145
|
-
observer.observe(child);
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
return () => {
|
|
149
|
-
observer.disconnect();
|
|
150
|
-
window.removeEventListener('resize', handleResize);
|
|
151
|
-
if (frameId !== null) {
|
|
152
|
-
window.cancelAnimationFrame(frameId);
|
|
153
|
-
}
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
return () => {
|
|
157
|
-
window.removeEventListener('resize', handleResize);
|
|
158
|
-
if (frameId !== null) {
|
|
159
|
-
window.cancelAnimationFrame(frameId);
|
|
160
|
-
}
|
|
161
|
-
};
|
|
162
|
-
}, [toolbarChildren.length]);
|
|
163
|
-
return (_jsx(CardToolbarContext.Provider, { value: { hideLabelOn: buttonHideLabelOn }, children: _jsx("div", { ref: rootRef, className: classes, ...props, children: toolbarChildren.map((child, index) => {
|
|
164
|
-
const rowMeta = rows[index];
|
|
165
|
-
const key = React.isValidElement(child) && child.key !== null ? child.key : `toolbar-item-${index}`;
|
|
166
|
-
const row = rowMeta?.row ?? 0;
|
|
167
|
-
const rowStart = rowMeta?.rowStart ?? index === 0;
|
|
168
|
-
const sectionAlign = getToolbarSectionAlign(child);
|
|
169
|
-
return (_jsx("div", { className: styles.toolbarItem, "data-card-toolbar-item": "true", "data-toolbar-row": row, "data-toolbar-row-start": rowStart ? 'true' : 'false', "data-toolbar-row-wrapped": row > 0 ? 'true' : 'false', "data-toolbar-divider": dividers && !hasSections && !rowStart ? 'true' : 'false', "data-toolbar-section-align": sectionAlign, children: child }, key));
|
|
170
|
-
}) }) }));
|
|
58
|
+
].filter(Boolean).join(' ');
|
|
59
|
+
return (_jsx(CardToolbarContext.Provider, { value: { hideLabelOn: buttonHideLabelOn }, children: _jsx("div", { className: classes, ...props, children: children }) }));
|
|
171
60
|
}
|
|
172
61
|
function CardToolbarButton({ icon, label, hideLabelOn, size, appearance, className, ...props }) {
|
|
173
62
|
const toolbarConfig = React.useContext(CardToolbarContext);
|
|
174
|
-
const resolvedHideLabelOn = hideLabelOn ?? toolbarConfig
|
|
63
|
+
const resolvedHideLabelOn = hideLabelOn ?? toolbarConfig?.hideLabelOn ?? 'md';
|
|
175
64
|
const resolvedSize = (size ?? 'md');
|
|
176
65
|
const resolvedAppearance = (appearance ?? 'outline');
|
|
177
66
|
const hasIcon = icon !== undefined && icon !== null;
|
|
@@ -194,13 +83,15 @@ function CardToolbarButton({ icon, label, hideLabelOn, size, appearance, classNa
|
|
|
194
83
|
const ToolbarButtonComponent = Button;
|
|
195
84
|
return (_jsxs(ToolbarButtonComponent, { size: resolvedSize, appearance: resolvedAppearance, className: classes, "data-card-toolbar-button-icon-only": isIconOnly ? 'true' : undefined, ...props, children: [hasIcon ? (_jsx("span", { className: styles.toolbarButtonIcon, "data-card-toolbar-button-slot": "icon", children: icon })) : null, hasLabel ? (_jsx("span", { className: styles.toolbarButtonLabel, "data-card-toolbar-button-slot": "label", children: label })) : null] }));
|
|
196
85
|
}
|
|
197
|
-
function
|
|
198
|
-
const
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
86
|
+
function CardToolbarGroup({ attached = false, divider = 'none', className, role, ...props }) {
|
|
87
|
+
const toolbar = React.useContext(CardToolbarContext);
|
|
88
|
+
if (!toolbar) {
|
|
89
|
+
throw new Error('Card.Toolbar.Group must be rendered inside Card.Toolbar (layout wrappers are allowed).');
|
|
90
|
+
}
|
|
202
91
|
const classes = [
|
|
203
92
|
styles.toolbarGroup,
|
|
93
|
+
divider === 'left' || divider === 'both' ? styles.toolbarGroupDividerLeft : null,
|
|
94
|
+
divider === 'right' || divider === 'both' ? styles.toolbarGroupDividerRight : null,
|
|
204
95
|
attached ? styles.toolbarGroupAttached : null,
|
|
205
96
|
attached ? 'btn-group btn-group-horizontal' : null,
|
|
206
97
|
className,
|
|
@@ -209,7 +100,6 @@ function CardToolbarGroup({ attached = false, className, role, ...props }) {
|
|
|
209
100
|
return _jsx("div", { className: classes, role: resolvedRole, ...props });
|
|
210
101
|
}
|
|
211
102
|
const CardToolbar = Object.assign(CardToolbarBase, {
|
|
212
|
-
Section: CardToolbarSection,
|
|
213
103
|
Group: CardToolbarGroup,
|
|
214
104
|
Button: CardToolbarButton,
|
|
215
105
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../src/components/Card/Card.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../src/components/Card/Card.tsx"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
|
|
20
20
|
.card > .header:first-child,
|
|
21
21
|
.card > .body:first-child,
|
|
22
|
-
.card > .toolbarInset:first-child,
|
|
23
22
|
.card > .footer:first-child {
|
|
24
23
|
border-top-left-radius: inherit;
|
|
25
24
|
border-top-right-radius: inherit;
|
|
@@ -27,7 +26,6 @@
|
|
|
27
26
|
|
|
28
27
|
.card > .header:last-child,
|
|
29
28
|
.card > .body:last-child,
|
|
30
|
-
.card > .toolbarInset:last-child,
|
|
31
29
|
.card > .footer:last-child {
|
|
32
30
|
border-bottom-left-radius: inherit;
|
|
33
31
|
border-bottom-right-radius: inherit;
|
|
@@ -72,11 +70,7 @@
|
|
|
72
70
|
}
|
|
73
71
|
|
|
74
72
|
.toolbar {
|
|
75
|
-
display:
|
|
76
|
-
align-items: stretch;
|
|
77
|
-
flex-wrap: wrap;
|
|
78
|
-
column-gap: var(--spacing-2);
|
|
79
|
-
row-gap: 0;
|
|
73
|
+
display: block;
|
|
80
74
|
padding: var(--spacing-2) var(--spacing-3);
|
|
81
75
|
margin: 0;
|
|
82
76
|
min-width: 0;
|
|
@@ -87,17 +81,19 @@
|
|
|
87
81
|
overflow: hidden;
|
|
88
82
|
}
|
|
89
83
|
|
|
90
|
-
.toolbarAlignLeft {
|
|
91
|
-
justify-content: flex-start;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
84
|
.toolbarInset {
|
|
95
|
-
border-
|
|
85
|
+
border-inline: 1px solid var(--color-line);
|
|
86
|
+
border-radius: var(--card-toolbar-border-radius, var(--radius-default));
|
|
96
87
|
}
|
|
97
88
|
|
|
98
|
-
/*
|
|
89
|
+
/* Inset panels align their frame with section content. */
|
|
99
90
|
.card > .toolbarInset {
|
|
100
|
-
|
|
91
|
+
margin: var(--card-padding-y, var(--spacing-7)) var(--card-padding-x, var(--spacing-7));
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/* Full-width strips align their content, not their frame, with sections. */
|
|
95
|
+
.card > .toolbar:not(.toolbarInset) {
|
|
96
|
+
padding-inline: var(--card-padding-x, var(--spacing-7));
|
|
101
97
|
}
|
|
102
98
|
|
|
103
99
|
.toolbarDividerTop {
|
|
@@ -108,123 +104,29 @@
|
|
|
108
104
|
border-bottom: 1px solid var(--color-line);
|
|
109
105
|
}
|
|
110
106
|
|
|
111
|
-
.toolbarAlignRight {
|
|
112
|
-
justify-content: flex-end;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
.toolbarAlignBetween {
|
|
116
|
-
justify-content: space-between;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
.toolbarSections {
|
|
120
|
-
display: grid;
|
|
121
|
-
grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
|
|
122
|
-
align-items: stretch;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
.toolbarItem {
|
|
126
|
-
display: flex;
|
|
127
|
-
align-items: center;
|
|
128
|
-
min-width: 0;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
.toolbarSections .toolbarItem[data-toolbar-section-align='left'] {
|
|
132
|
-
grid-column: 1;
|
|
133
|
-
justify-content: flex-start;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
.toolbarSections .toolbarItem[data-toolbar-section-align='center'] {
|
|
137
|
-
grid-column: 2;
|
|
138
|
-
justify-content: center;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
.toolbarSections .toolbarItem[data-toolbar-section-align='right'] {
|
|
142
|
-
grid-column: 3;
|
|
143
|
-
justify-content: flex-end;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
.toolbarItem[data-toolbar-divider="true"] {
|
|
147
|
-
position: relative;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
.toolbarItem[data-toolbar-divider="true"]::before {
|
|
151
|
-
content: '';
|
|
152
|
-
position: absolute;
|
|
153
|
-
left: calc(var(--spacing-2) / -2);
|
|
154
|
-
top: 0;
|
|
155
|
-
bottom: 0;
|
|
156
|
-
width: 1px;
|
|
157
|
-
background: var(--color-line);
|
|
158
|
-
opacity: 0.55;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
.toolbarItem[data-toolbar-row-wrapped="true"] {
|
|
162
|
-
margin-top: var(--spacing-2);
|
|
163
|
-
padding-top: var(--spacing-2);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
.toolbarItem[data-toolbar-row-start="true"][data-toolbar-row-wrapped="true"] {
|
|
167
|
-
position: relative;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
.toolbarItem[data-toolbar-row-start="true"][data-toolbar-row-wrapped="true"]::before {
|
|
171
|
-
content: '';
|
|
172
|
-
position: absolute;
|
|
173
|
-
top: 0;
|
|
174
|
-
left: -2000px;
|
|
175
|
-
right: -2000px;
|
|
176
|
-
height: 1px;
|
|
177
|
-
background: var(--color-line);
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
.toolbar[data-toolbar-measuring="true"] .toolbarItem[data-toolbar-row-wrapped="true"] {
|
|
181
|
-
margin-top: 0;
|
|
182
|
-
padding-top: 0;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
.toolbar[data-toolbar-measuring="true"] .toolbarItem[data-toolbar-row-start="false"]::before,
|
|
186
|
-
.toolbar[data-toolbar-measuring="true"] .toolbarItem[data-toolbar-row-start="true"][data-toolbar-row-wrapped="true"]::before {
|
|
187
|
-
display: none;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
107
|
.toolbarGroup {
|
|
191
108
|
display: inline-flex;
|
|
192
109
|
align-items: center;
|
|
193
110
|
flex-wrap: wrap;
|
|
194
111
|
gap: var(--spacing-2);
|
|
195
|
-
padding-inline: var(--spacing-1);
|
|
196
112
|
min-height: var(--card-toolbar-button-height-md);
|
|
197
113
|
min-width: 0;
|
|
114
|
+
box-sizing: border-box;
|
|
198
115
|
}
|
|
199
116
|
|
|
200
117
|
.toolbarGroupAttached {
|
|
201
118
|
flex-wrap: nowrap;
|
|
202
119
|
gap: 0;
|
|
203
|
-
padding-inline: var(--spacing-1);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
.toolbarSection {
|
|
207
|
-
display: inline-flex;
|
|
208
|
-
align-items: center;
|
|
209
|
-
gap: var(--spacing-2);
|
|
210
|
-
flex-wrap: wrap;
|
|
211
|
-
min-width: 0;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
.toolbarItem[data-toolbar-section-align] .toolbarSection {
|
|
215
|
-
width: 100%;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
.toolbarItem[data-toolbar-section-align='left'] .toolbarSection {
|
|
219
|
-
justify-content: flex-start;
|
|
220
120
|
}
|
|
221
121
|
|
|
222
|
-
.
|
|
223
|
-
|
|
122
|
+
.toolbarGroupDividerLeft {
|
|
123
|
+
border-left: 1px solid var(--color-line);
|
|
124
|
+
padding-left: var(--card-toolbar-group-divider-gap, var(--spacing-2));
|
|
224
125
|
}
|
|
225
126
|
|
|
226
|
-
.
|
|
227
|
-
|
|
127
|
+
.toolbarGroupDividerRight {
|
|
128
|
+
border-right: 1px solid var(--color-line);
|
|
129
|
+
padding-right: var(--card-toolbar-group-divider-gap, var(--spacing-2));
|
|
228
130
|
}
|
|
229
131
|
|
|
230
132
|
.toolbarButton {
|
|
@@ -438,16 +340,4 @@
|
|
|
438
340
|
padding: var(--spacing-2);
|
|
439
341
|
}
|
|
440
342
|
|
|
441
|
-
.toolbarSections {
|
|
442
|
-
grid-template-columns: 1fr;
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
.toolbarSections .toolbarItem[data-toolbar-section-align] {
|
|
446
|
-
grid-column: 1;
|
|
447
|
-
justify-content: flex-start;
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
.toolbarItem[data-toolbar-section-align] .toolbarSection {
|
|
451
|
-
justify-content: flex-start;
|
|
452
|
-
}
|
|
453
343
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { default as Button } from './components/Button/Button';
|
|
|
2
2
|
export type { ButtonAppearance, ButtonGroupOrientation, ButtonGroupProps, ButtonProps, ButtonSize, ButtonSplitMainProps, ButtonSplitMenuAlign, ButtonSplitMenuItem, ButtonSplitMenuProps, ButtonSplitProps, ButtonVariant, } from './components/Button/Button';
|
|
3
3
|
export { default as Badge } from './components/Badge/Badge';
|
|
4
4
|
export { default as Card } from './components/Card/Card';
|
|
5
|
-
export type { CardToolbarButtonProps, CardToolbarGroupProps, CardToolbarProps,
|
|
5
|
+
export type { CardToolbarButtonProps, CardToolbarGroupProps, CardToolbarProps, } from './components/Card/Card';
|
|
6
6
|
export { default as CollapseButton } from './components/CollapseButton/CollapseButton';
|
|
7
7
|
export { default as Collapse } from './components/Collapse/Collapse';
|
|
8
8
|
export { default as FormField } from './components/Input/FormField/FormField';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAc/D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAc/D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAMzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAO3E,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,4BAA4B,CAAC;AA+B/D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
|
package/docs/card.md
CHANGED
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
- Удалите отрицательные margin и расширение ширины Header/Footer, компенсировавшие старый padding Card. Используйте `divider` вместо самодельной линии.
|
|
77
77
|
- Замените удалённый `right={actions}` на `<Card.Header.Aside>{actions}</Card.Header.Aside>`. В явной композиции добавьте `<Card.Header.Content />` для вывода пропсов title/subtitle и `<Card.Header.Icon />` для иконки из пропса. Дочерние Title и Subtitle объединяйте в Content, чтобы они занимали одну колонку.
|
|
78
78
|
- Для таблиц и другого контента на всю ширину используйте `<Card.Body style={{ padding: 0 }}>…</Card.Body>`.
|
|
79
|
-
- `Card.Toolbar
|
|
79
|
+
- Выбирайте `Card.Toolbar inset` для отдельной панели в рамке с внешними отступами Card, а `inset={false}` — для полноширинной полосы с контентом на одной линии с Header/Body. `dividerTop`/`dividerBottom` по умолчанию равны `inset`, явные значения переопределяют каждую границу независимо. Общий gap корневого Card больше не разделяет произвольные дочерние элементы.
|
|
80
80
|
|
|
81
81
|
Корень Card не обрезает overflow: выпадающие меню и другие выступающие элементы остаются видимыми. Крайние Header/Body/Footer наследуют соответствующие скругления карточки.
|
|
82
82
|
|
|
@@ -112,76 +112,102 @@ Header использует CSS Grid для прямых слотов. Прои
|
|
|
112
112
|
|
|
113
113
|
## Toolbar
|
|
114
114
|
|
|
115
|
-
|
|
115
|
+
При размещении Toolbar непосредственно в Card:
|
|
116
116
|
|
|
117
|
-
`
|
|
117
|
+
- `inset={true}` (по умолчанию) — отдельная панель со скруглённой рамкой. Внешние отступы берутся из `--card-padding-x`/`--card-padding-y`: боковые края рамки начинаются там же, где контент Header/Body. Внутри рамки остаётся компактный padding Toolbar (`--spacing-2` по вертикали, `--spacing-3` по горизонтали; до 720px — `--spacing-2` по обеим осям).
|
|
118
|
+
- `inset={false}` — полоса на всю внутреннюю ширину Card, без внешних отступов, боковых границ и скруглений. Боковой padding контента равен `--card-padding-x`, как у Header/Body, в том числе на мобильных экранах. По вертикали остаётся компактный `--spacing-2`. Группы без divider не добавляют боковой padding, поэтому кнопки внутри Group/Grid/Row также сохраняют выравнивание.
|
|
119
|
+
|
|
120
|
+
`dividerTop` и `dividerBottom` независимо управляют верхней и нижней границами Toolbar. По умолчанию оба равны `inset`: панель имеет замкнутую рамку, полоса — без линий. Явный `false` убирает соответствующую границу панели, явный `true` добавляет линию полосе. Боковые разделители задаются отдельно на Group.
|
|
118
121
|
|
|
119
122
|
```tsx
|
|
120
123
|
<Card>
|
|
121
124
|
<Card.Header title="Отчёты" />
|
|
122
|
-
<Card.Toolbar dividerTop dividerBottom>
|
|
125
|
+
<Card.Toolbar inset={false} dividerTop dividerBottom>
|
|
123
126
|
<Card.Toolbar.Button label="Обновить" />
|
|
124
127
|
</Card.Toolbar>
|
|
125
128
|
<Card.Body>Контент</Card.Body>
|
|
126
129
|
</Card>
|
|
127
130
|
```
|
|
128
131
|
|
|
129
|
-
Внутри `Card.Body` отступы задаёт сам Body
|
|
132
|
+
Чтобы получить полноширинную полосу, размещайте Toolbar непосредственно в Card. Внутри `Card.Body` отступы задаёт сам Body: Toolbar не выходит за них и сохраняет компактный внутренний padding, без добавления внешних отступов Card. Самостоятельный Toolbar также сохраняет компактный padding. Рамка и разделители доступны при любом размещении. Радиус панели задаётся `--card-toolbar-border-radius` и не наследует углы Card, даже если Toolbar — первая или последняя секция. При `inset={false}` углы всегда прямые. Если соседний Header/Footer уже рисует линию на общем стыке, включайте разделитель только с одной стороны, чтобы не удваивать его толщину.
|
|
130
133
|
|
|
131
134
|
```tsx
|
|
132
135
|
<Card.Toolbar>
|
|
133
|
-
<
|
|
134
|
-
<Card.Toolbar.
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
<Card.Toolbar.
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
<Card.Toolbar.
|
|
146
|
-
|
|
136
|
+
<Row gap="var(--card-toolbar-group-divider-gap, var(--spacing-2))" wrap="wrap">
|
|
137
|
+
<Card.Toolbar.Group attached>
|
|
138
|
+
<Card.Toolbar.Button label="Обзор" />
|
|
139
|
+
<Card.Toolbar.Button label="Метрики" />
|
|
140
|
+
<Card.Toolbar.Button label="Логи" />
|
|
141
|
+
</Card.Toolbar.Group>
|
|
142
|
+
|
|
143
|
+
<Card.Toolbar.Group attached divider="left">
|
|
144
|
+
<Card.Toolbar.Button icon={<SaveIcon />} label="Сохранить" />
|
|
145
|
+
<Card.Toolbar.Button icon={<RefreshIcon />} label="Обновить" />
|
|
146
|
+
</Card.Toolbar.Group>
|
|
147
|
+
|
|
148
|
+
<Card.Toolbar.Group divider="left">
|
|
149
|
+
<Card.Toolbar.Button aria-label="Настройки" icon={<SettingsIcon />} />
|
|
150
|
+
</Card.Toolbar.Group>
|
|
151
|
+
</Row>
|
|
147
152
|
</Card.Toolbar>
|
|
148
153
|
```
|
|
149
154
|
|
|
150
155
|
`Card.Toolbar.Button` принимает `icon` и/или `label` (минимум одно из них обязательно).
|
|
151
156
|
Если переданы оба, контент рендерится через отдельные icon/label слоты. На средних экранах текстовая часть скрывается.
|
|
152
|
-
`Card.Toolbar.Group attached` склеивает соседние кнопки в одну группу; без `attached` группы остаются разделёнными gap и toolbar-разделителями.
|
|
153
|
-
`Card.Toolbar` по умолчанию рисует вертикальные разделители между группами; если они не нужны, передайте `dividers={false}`.
|
|
154
157
|
|
|
155
|
-
|
|
158
|
+
### Группы и боковые разделители
|
|
159
|
+
|
|
160
|
+
`Card.Toolbar.Group attached` склеивает соседние кнопки; без `attached` между кнопками остаётся gap. Содержимым Group могут быть не только кнопки, но и текст, поля или другие элементы.
|
|
161
|
+
|
|
162
|
+
`divider="none" | "left" | "right" | "both"` задаёт боковые линии конкретной группы, по умолчанию `none`. Линии занимают высоту группы, а отступ от линии до контента задаётся `--card-toolbar-group-divider-gap` (по умолчанию `--spacing-2`). Проп совместим с `attached` и не зависит от выравнивания, вложенности или положения группы в строке. Left/right обозначают физические стороны.
|
|
163
|
+
|
|
164
|
+
Для одинаковых расстояний по обе стороны линии между соседними группами задавайте Row `gap="var(--card-toolbar-group-divider-gap, var(--spacing-2))"`. Иначе расстояние снаружи группы определяется gap раскладки, а внутри — padding группы: например, gap 16px и padding 8px дадут асимметрию. В Grid с растянутыми колонками свободное место в колонке также влияет на расстояние до контента; для плотного ряда групп используйте Row.
|
|
165
|
+
|
|
166
|
+
Group требует предка Card.Toolbar, но между ними могут находиться Grid, Row и пользовательские компоненты. Без Toolbar компонент выдаёт понятную ошибку. Текст и отдельные кнопки не обязательно оборачивать в Group.
|
|
167
|
+
|
|
168
|
+
При переносе явно заданные боковые линии сохраняются. Автоматических разделителей между группами и строками нет. Для адаптивного изменения линий используйте класс/style группы; не задавайте одновременно right и left у соседних групп, если нужна одна общая линия.
|
|
169
|
+
|
|
170
|
+
Для колонок используйте Grid, для ряда с переносами — Row. Toolbar не добавляет обёрток и не управляет шириной колонок.
|
|
156
171
|
|
|
157
172
|
```tsx
|
|
158
|
-
<Card.Toolbar>
|
|
159
|
-
<
|
|
160
|
-
<Card.Toolbar.Group
|
|
161
|
-
<
|
|
162
|
-
<Card.Toolbar.Button label="Активные" />
|
|
173
|
+
<Card.Toolbar inset={false} dividerBottom>
|
|
174
|
+
<Grid columns={2} columnsSm={1} gap="16px">
|
|
175
|
+
<Card.Toolbar.Group>
|
|
176
|
+
<Text>Всего записей: 5</Text>
|
|
163
177
|
</Card.Toolbar.Group>
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
<Card.Toolbar.Group attached>
|
|
168
|
-
<Card.Toolbar.Button label="День" />
|
|
169
|
-
<Card.Toolbar.Button label="Неделя" />
|
|
178
|
+
<Card.Toolbar.Group divider="left" style={{ justifyContent: 'flex-end' }}>
|
|
179
|
+
<Card.Toolbar.Button label="Экспорт" />
|
|
180
|
+
<Card.Toolbar.Button label="Добавить" />
|
|
170
181
|
</Card.Toolbar.Group>
|
|
171
|
-
</
|
|
182
|
+
</Grid>
|
|
183
|
+
</Card.Toolbar>
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Для разнесения по краям без разделителя:
|
|
172
187
|
|
|
173
|
-
|
|
188
|
+
```tsx
|
|
189
|
+
<Card.Toolbar inset={false}>
|
|
190
|
+
<Row justify="space-between" wrap="wrap" gap="16px">
|
|
191
|
+
<Text>Всего записей: 5</Text>
|
|
174
192
|
<Card.Toolbar.Group>
|
|
175
|
-
<Button
|
|
176
|
-
|
|
177
|
-
main={{ label: 'Импорт', onClick: handleImport }}
|
|
178
|
-
menu={{ ariaLabel: 'Действия импорта', items }}
|
|
179
|
-
/>
|
|
193
|
+
<Card.Toolbar.Button label="Экспорт" />
|
|
194
|
+
<Card.Toolbar.Button label="Добавить" />
|
|
180
195
|
</Card.Toolbar.Group>
|
|
181
|
-
</
|
|
196
|
+
</Row>
|
|
182
197
|
</Card.Toolbar>
|
|
183
198
|
```
|
|
184
199
|
|
|
200
|
+
Для трёх зон с геометрически центрированной средней колонкой задайте Grid `grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr)`. На узком экране переключайте колонки через CSS media query. Готовые примеры есть в playground.
|
|
201
|
+
|
|
202
|
+
### Переход со старого Toolbar
|
|
203
|
+
|
|
204
|
+
- Удалены `align`, `dividers`, `Card.Toolbar.Section` и типы `CardToolbarSectionAlign`/`CardToolbarSectionProps`.
|
|
205
|
+
- Вместо `align="between"` используйте `Row justify="space-between"`; вместо left/right — `justify="flex-start"`/`"flex-end"`.
|
|
206
|
+
- Вместо Section используйте колонки Grid. Grid/Row — непосредственные дети Toolbar, без служебных обёрток.
|
|
207
|
+
- Несколько соседних групп оберните в Row с явными `gap` и `wrap`. Toolbar теперь отвечает только за оформление контейнера.
|
|
208
|
+
- Вместо общего `dividers` назначайте нужным группам `divider`. По умолчанию линий нет, включая раскладку space-between.
|
|
209
|
+
- Удалите стили для старых `data-toolbar-row-*`/`data-card-toolbar-item`: измерения строк, автоматические псевдоэлементы и ResizeObserver больше не используются.
|
|
210
|
+
|
|
185
211
|
`Button.Split` можно размещать внутри `Card.Toolbar.Group`; toolbar выставит ему ту же высоту, размер и attached-геометрию, что и обычным toolbar-кнопкам.
|
|
186
212
|
|
|
187
213
|
Если передан `icon` без `label`, кнопка становится стабильным square-контролом. Для таких кнопок указывайте `aria-label`.
|
|
@@ -249,3 +275,13 @@ const InertiaToolbarButtonLink = (props) => (
|
|
|
249
275
|
Скрытие текста включено по умолчанию (`md`) и настраивается:
|
|
250
276
|
- на уровне `Card.Toolbar`: `buttonHideLabelOn="md" | "never"`
|
|
251
277
|
- на уровне конкретной кнопки: `hideLabelOn="md" | "never"` (переопределяет тулбар)
|
|
278
|
+
|
|
279
|
+
## Проверка раскладки в браузере
|
|
280
|
+
|
|
281
|
+
При установленном Playwright с Chromium запустите playground (`yarn --cwd playground dev`), затем из корня репозитория:
|
|
282
|
+
|
|
283
|
+
```sh
|
|
284
|
+
node playground/tests/card-toolbar.browser.mjs http://127.0.0.1:5174
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Скрипт проверяет ширину Grid, все варианты Group.divider, выравнивание inset-режимов и отсутствие автоматической линии в space-between на экранах 1440, 900 и 375px. Для существующей установки можно передать путь к модулю Playwright через `PLAYWRIGHT_MODULE`, а к браузеру — через `BROWSER_PATH`.
|