@phpsoftbox/react-softbox 2.7.0 → 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 +7 -8
- package/dist/components/Card/Card.js +18 -120
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/Card/Card.module.css +24 -117
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/docs/card.md +78 -40
- 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 inset={false}`
|
|
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,19 +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;
|
|
28
|
-
|
|
27
|
+
/** Show the top border. Defaults to inset. */
|
|
28
|
+
dividerTop?: boolean;
|
|
29
|
+
/** Show the bottom border. Defaults to inset. */
|
|
30
|
+
dividerBottom?: boolean;
|
|
29
31
|
buttonHideLabelOn?: 'never' | 'md';
|
|
30
|
-
dividers?: boolean;
|
|
31
|
-
};
|
|
32
|
-
export type CardToolbarSectionProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
33
|
-
align?: CardToolbarSectionAlign;
|
|
34
32
|
};
|
|
35
33
|
export type CardToolbarGroupProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
36
34
|
attached?: boolean;
|
|
35
|
+
/** Explicit side dividers, independent of layout. Defaults to none. */
|
|
36
|
+
divider?: 'none' | 'left' | 'right' | 'both';
|
|
37
37
|
};
|
|
38
38
|
type CardToolbarButtonBaseProps<TElement extends React.ElementType = 'button'> = Omit<ButtonProps<TElement>, 'children'> & {
|
|
39
39
|
icon?: React.ReactNode;
|
|
@@ -53,7 +53,6 @@ export type CardToolbarButtonProps<TElement extends React.ElementType = 'button'
|
|
|
53
53
|
});
|
|
54
54
|
type CardToolbarButtonComponent = <TElement extends React.ElementType = 'button'>(props: CardToolbarButtonProps<TElement>) => React.ReactElement | null;
|
|
55
55
|
type CardToolbarComponent = React.FC<CardToolbarProps> & {
|
|
56
|
-
Section: React.FC<CardToolbarSectionProps>;
|
|
57
56
|
Group: React.FC<CardToolbarGroupProps>;
|
|
58
57
|
Button: CardToolbarButtonComponent;
|
|
59
58
|
};
|
|
@@ -42,128 +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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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);
|
|
96
|
-
const classes = [styles.toolbar, inset ? styles.toolbarInset : null, alignClass, hasSections ? styles.toolbarSections : null, className]
|
|
97
|
-
.filter(Boolean)
|
|
98
|
-
.join(' ');
|
|
99
|
-
useIsomorphicLayoutEffect(() => {
|
|
100
|
-
const root = rootRef.current;
|
|
101
|
-
if (!root) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
let frameId = null;
|
|
105
|
-
const collect = () => {
|
|
106
|
-
root.setAttribute('data-toolbar-measuring', 'true');
|
|
107
|
-
try {
|
|
108
|
-
const items = Array.from(root.querySelectorAll('[data-card-toolbar-item="true"]'));
|
|
109
|
-
const nextRows = resolveToolbarRows(items);
|
|
110
|
-
setRows((previousRows) => (isSameRows(previousRows, nextRows) ? previousRows : nextRows));
|
|
111
|
-
}
|
|
112
|
-
finally {
|
|
113
|
-
root.removeAttribute('data-toolbar-measuring');
|
|
114
|
-
}
|
|
115
|
-
};
|
|
116
|
-
const scheduleCollect = () => {
|
|
117
|
-
if (typeof window === 'undefined') {
|
|
118
|
-
collect();
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
if (frameId !== null) {
|
|
122
|
-
window.cancelAnimationFrame(frameId);
|
|
123
|
-
}
|
|
124
|
-
frameId = window.requestAnimationFrame(() => {
|
|
125
|
-
frameId = null;
|
|
126
|
-
collect();
|
|
127
|
-
});
|
|
128
|
-
};
|
|
129
|
-
scheduleCollect();
|
|
130
|
-
const handleResize = () => scheduleCollect();
|
|
131
|
-
window.addEventListener('resize', handleResize);
|
|
132
|
-
if (typeof ResizeObserver !== 'undefined') {
|
|
133
|
-
const observer = new ResizeObserver(() => scheduleCollect());
|
|
134
|
-
observer.observe(root);
|
|
135
|
-
Array.from(root.children).forEach((child) => {
|
|
136
|
-
if (child instanceof HTMLElement) {
|
|
137
|
-
observer.observe(child);
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
return () => {
|
|
141
|
-
observer.disconnect();
|
|
142
|
-
window.removeEventListener('resize', handleResize);
|
|
143
|
-
if (frameId !== null) {
|
|
144
|
-
window.cancelAnimationFrame(frameId);
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
return () => {
|
|
149
|
-
window.removeEventListener('resize', handleResize);
|
|
150
|
-
if (frameId !== null) {
|
|
151
|
-
window.cancelAnimationFrame(frameId);
|
|
152
|
-
}
|
|
153
|
-
};
|
|
154
|
-
}, [toolbarChildren.length]);
|
|
155
|
-
return (_jsx(CardToolbarContext.Provider, { value: { hideLabelOn: buttonHideLabelOn }, children: _jsx("div", { ref: rootRef, className: classes, ...props, children: toolbarChildren.map((child, index) => {
|
|
156
|
-
const rowMeta = rows[index];
|
|
157
|
-
const key = React.isValidElement(child) && child.key !== null ? child.key : `toolbar-item-${index}`;
|
|
158
|
-
const row = rowMeta?.row ?? 0;
|
|
159
|
-
const rowStart = rowMeta?.rowStart ?? index === 0;
|
|
160
|
-
const sectionAlign = getToolbarSectionAlign(child);
|
|
161
|
-
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));
|
|
162
|
-
}) }) }));
|
|
51
|
+
function CardToolbarBase({ inset = true, dividerTop = inset, dividerBottom = inset, buttonHideLabelOn = 'md', className, children, ...props }) {
|
|
52
|
+
const classes = [
|
|
53
|
+
styles.toolbar,
|
|
54
|
+
inset ? styles.toolbarInset : null,
|
|
55
|
+
dividerTop ? styles.toolbarDividerTop : null,
|
|
56
|
+
dividerBottom ? styles.toolbarDividerBottom : null,
|
|
57
|
+
className,
|
|
58
|
+
].filter(Boolean).join(' ');
|
|
59
|
+
return (_jsx(CardToolbarContext.Provider, { value: { hideLabelOn: buttonHideLabelOn }, children: _jsx("div", { className: classes, ...props, children: children }) }));
|
|
163
60
|
}
|
|
164
61
|
function CardToolbarButton({ icon, label, hideLabelOn, size, appearance, className, ...props }) {
|
|
165
62
|
const toolbarConfig = React.useContext(CardToolbarContext);
|
|
166
|
-
const resolvedHideLabelOn = hideLabelOn ?? toolbarConfig
|
|
63
|
+
const resolvedHideLabelOn = hideLabelOn ?? toolbarConfig?.hideLabelOn ?? 'md';
|
|
167
64
|
const resolvedSize = (size ?? 'md');
|
|
168
65
|
const resolvedAppearance = (appearance ?? 'outline');
|
|
169
66
|
const hasIcon = icon !== undefined && icon !== null;
|
|
@@ -186,13 +83,15 @@ function CardToolbarButton({ icon, label, hideLabelOn, size, appearance, classNa
|
|
|
186
83
|
const ToolbarButtonComponent = Button;
|
|
187
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] }));
|
|
188
85
|
}
|
|
189
|
-
function
|
|
190
|
-
const
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
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
|
+
}
|
|
194
91
|
const classes = [
|
|
195
92
|
styles.toolbarGroup,
|
|
93
|
+
divider === 'left' || divider === 'both' ? styles.toolbarGroupDividerLeft : null,
|
|
94
|
+
divider === 'right' || divider === 'both' ? styles.toolbarGroupDividerRight : null,
|
|
196
95
|
attached ? styles.toolbarGroupAttached : null,
|
|
197
96
|
attached ? 'btn-group btn-group-horizontal' : null,
|
|
198
97
|
className,
|
|
@@ -201,7 +100,6 @@ function CardToolbarGroup({ attached = false, className, role, ...props }) {
|
|
|
201
100
|
return _jsx("div", { className: classes, role: resolvedRole, ...props });
|
|
202
101
|
}
|
|
203
102
|
const CardToolbar = Object.assign(CardToolbarBase, {
|
|
204
|
-
Section: CardToolbarSection,
|
|
205
103
|
Group: CardToolbarGroup,
|
|
206
104
|
Button: CardToolbarButton,
|
|
207
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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"}
|
|
@@ -70,104 +70,38 @@
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
.toolbar {
|
|
73
|
-
display:
|
|
74
|
-
align-items: stretch;
|
|
75
|
-
flex-wrap: wrap;
|
|
76
|
-
column-gap: var(--spacing-2);
|
|
77
|
-
row-gap: 0;
|
|
73
|
+
display: block;
|
|
78
74
|
padding: var(--spacing-2) var(--spacing-3);
|
|
79
|
-
|
|
80
|
-
|
|
75
|
+
margin: 0;
|
|
76
|
+
min-width: 0;
|
|
77
|
+
box-sizing: border-box;
|
|
78
|
+
border-radius: 0;
|
|
79
|
+
border: 0;
|
|
81
80
|
background: var(--surface-panel-soft);
|
|
82
81
|
overflow: hidden;
|
|
83
82
|
}
|
|
84
83
|
|
|
85
|
-
.
|
|
86
|
-
|
|
84
|
+
.toolbarInset {
|
|
85
|
+
border-inline: 1px solid var(--color-line);
|
|
86
|
+
border-radius: var(--card-toolbar-border-radius, var(--radius-default));
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
/*
|
|
89
|
+
/* Inset panels align their frame with section content. */
|
|
90
90
|
.card > .toolbarInset {
|
|
91
91
|
margin: var(--card-padding-y, var(--spacing-7)) var(--card-padding-x, var(--spacing-7));
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
.
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
.toolbarAlignBetween {
|
|
99
|
-
justify-content: space-between;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
.toolbarSections {
|
|
103
|
-
display: grid;
|
|
104
|
-
grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
|
|
105
|
-
align-items: stretch;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
.toolbarItem {
|
|
109
|
-
display: flex;
|
|
110
|
-
align-items: center;
|
|
111
|
-
min-width: 0;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
.toolbarSections .toolbarItem[data-toolbar-section-align='left'] {
|
|
115
|
-
grid-column: 1;
|
|
116
|
-
justify-content: flex-start;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
.toolbarSections .toolbarItem[data-toolbar-section-align='center'] {
|
|
120
|
-
grid-column: 2;
|
|
121
|
-
justify-content: center;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
.toolbarSections .toolbarItem[data-toolbar-section-align='right'] {
|
|
125
|
-
grid-column: 3;
|
|
126
|
-
justify-content: flex-end;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
.toolbarItem[data-toolbar-divider="true"] {
|
|
130
|
-
position: relative;
|
|
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));
|
|
131
97
|
}
|
|
132
98
|
|
|
133
|
-
.
|
|
134
|
-
|
|
135
|
-
position: absolute;
|
|
136
|
-
left: calc(var(--spacing-2) / -2);
|
|
137
|
-
top: 0;
|
|
138
|
-
bottom: 0;
|
|
139
|
-
width: 1px;
|
|
140
|
-
background: var(--color-line);
|
|
141
|
-
opacity: 0.55;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
.toolbarItem[data-toolbar-row-wrapped="true"] {
|
|
145
|
-
margin-top: var(--spacing-2);
|
|
146
|
-
padding-top: var(--spacing-2);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
.toolbarItem[data-toolbar-row-start="true"][data-toolbar-row-wrapped="true"] {
|
|
150
|
-
position: relative;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
.toolbarItem[data-toolbar-row-start="true"][data-toolbar-row-wrapped="true"]::before {
|
|
154
|
-
content: '';
|
|
155
|
-
position: absolute;
|
|
156
|
-
top: 0;
|
|
157
|
-
left: -2000px;
|
|
158
|
-
right: -2000px;
|
|
159
|
-
height: 1px;
|
|
160
|
-
background: var(--color-line);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
.toolbar[data-toolbar-measuring="true"] .toolbarItem[data-toolbar-row-wrapped="true"] {
|
|
164
|
-
margin-top: 0;
|
|
165
|
-
padding-top: 0;
|
|
99
|
+
.toolbarDividerTop {
|
|
100
|
+
border-top: 1px solid var(--color-line);
|
|
166
101
|
}
|
|
167
102
|
|
|
168
|
-
.
|
|
169
|
-
|
|
170
|
-
display: none;
|
|
103
|
+
.toolbarDividerBottom {
|
|
104
|
+
border-bottom: 1px solid var(--color-line);
|
|
171
105
|
}
|
|
172
106
|
|
|
173
107
|
.toolbarGroup {
|
|
@@ -175,39 +109,24 @@
|
|
|
175
109
|
align-items: center;
|
|
176
110
|
flex-wrap: wrap;
|
|
177
111
|
gap: var(--spacing-2);
|
|
178
|
-
padding-inline: var(--spacing-1);
|
|
179
112
|
min-height: var(--card-toolbar-button-height-md);
|
|
180
113
|
min-width: 0;
|
|
114
|
+
box-sizing: border-box;
|
|
181
115
|
}
|
|
182
116
|
|
|
183
117
|
.toolbarGroupAttached {
|
|
184
118
|
flex-wrap: nowrap;
|
|
185
119
|
gap: 0;
|
|
186
|
-
padding-inline: var(--spacing-1);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
.toolbarSection {
|
|
190
|
-
display: inline-flex;
|
|
191
|
-
align-items: center;
|
|
192
|
-
gap: var(--spacing-2);
|
|
193
|
-
flex-wrap: wrap;
|
|
194
|
-
min-width: 0;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
.toolbarItem[data-toolbar-section-align] .toolbarSection {
|
|
198
|
-
width: 100%;
|
|
199
120
|
}
|
|
200
121
|
|
|
201
|
-
.
|
|
202
|
-
|
|
122
|
+
.toolbarGroupDividerLeft {
|
|
123
|
+
border-left: 1px solid var(--color-line);
|
|
124
|
+
padding-left: var(--card-toolbar-group-divider-gap, var(--spacing-2));
|
|
203
125
|
}
|
|
204
126
|
|
|
205
|
-
.
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
.toolbarItem[data-toolbar-section-align='right'] .toolbarSection {
|
|
210
|
-
justify-content: flex-end;
|
|
127
|
+
.toolbarGroupDividerRight {
|
|
128
|
+
border-right: 1px solid var(--color-line);
|
|
129
|
+
padding-right: var(--card-toolbar-group-divider-gap, var(--spacing-2));
|
|
211
130
|
}
|
|
212
131
|
|
|
213
132
|
.toolbarButton {
|
|
@@ -421,16 +340,4 @@
|
|
|
421
340
|
padding: var(--spacing-2);
|
|
422
341
|
}
|
|
423
342
|
|
|
424
|
-
.toolbarSections {
|
|
425
|
-
grid-template-columns: 1fr;
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
.toolbarSections .toolbarItem[data-toolbar-section-align] {
|
|
429
|
-
grid-column: 1;
|
|
430
|
-
justify-content: flex-start;
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
.toolbarItem[data-toolbar-section-align] .toolbarSection {
|
|
434
|
-
justify-content: flex-start;
|
|
435
|
-
}
|
|
436
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,74 +112,102 @@ Header использует CSS Grid для прямых слотов. Прои
|
|
|
112
112
|
|
|
113
113
|
## Toolbar
|
|
114
114
|
|
|
115
|
-
|
|
115
|
+
При размещении Toolbar непосредственно в Card:
|
|
116
|
+
|
|
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.
|
|
116
121
|
|
|
117
122
|
```tsx
|
|
118
123
|
<Card>
|
|
119
124
|
<Card.Header title="Отчёты" />
|
|
120
|
-
<Card.Toolbar inset={false}>
|
|
125
|
+
<Card.Toolbar inset={false} dividerTop dividerBottom>
|
|
121
126
|
<Card.Toolbar.Button label="Обновить" />
|
|
122
127
|
</Card.Toolbar>
|
|
123
128
|
<Card.Body>Контент</Card.Body>
|
|
124
129
|
</Card>
|
|
125
130
|
```
|
|
126
131
|
|
|
127
|
-
|
|
132
|
+
Чтобы получить полноширинную полосу, размещайте Toolbar непосредственно в Card. Внутри `Card.Body` отступы задаёт сам Body: Toolbar не выходит за них и сохраняет компактный внутренний padding, без добавления внешних отступов Card. Самостоятельный Toolbar также сохраняет компактный padding. Рамка и разделители доступны при любом размещении. Радиус панели задаётся `--card-toolbar-border-radius` и не наследует углы Card, даже если Toolbar — первая или последняя секция. При `inset={false}` углы всегда прямые. Если соседний Header/Footer уже рисует линию на общем стыке, включайте разделитель только с одной стороны, чтобы не удваивать его толщину.
|
|
128
133
|
|
|
129
134
|
```tsx
|
|
130
135
|
<Card.Toolbar>
|
|
131
|
-
<
|
|
132
|
-
<Card.Toolbar.
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
<Card.Toolbar.
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
<Card.Toolbar.
|
|
144
|
-
|
|
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>
|
|
145
152
|
</Card.Toolbar>
|
|
146
153
|
```
|
|
147
154
|
|
|
148
155
|
`Card.Toolbar.Button` принимает `icon` и/или `label` (минимум одно из них обязательно).
|
|
149
156
|
Если переданы оба, контент рендерится через отдельные icon/label слоты. На средних экранах текстовая часть скрывается.
|
|
150
|
-
`Card.Toolbar.Group attached` склеивает соседние кнопки в одну группу; без `attached` группы остаются разделёнными gap и toolbar-разделителями.
|
|
151
|
-
`Card.Toolbar` по умолчанию рисует вертикальные разделители между группами; если они не нужны, передайте `dividers={false}`.
|
|
152
157
|
|
|
153
|
-
|
|
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 не добавляет обёрток и не управляет шириной колонок.
|
|
154
171
|
|
|
155
172
|
```tsx
|
|
156
|
-
<Card.Toolbar>
|
|
157
|
-
<
|
|
158
|
-
<Card.Toolbar.Group
|
|
159
|
-
<
|
|
160
|
-
<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>
|
|
161
177
|
</Card.Toolbar.Group>
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
<Card.Toolbar.Group attached>
|
|
166
|
-
<Card.Toolbar.Button label="День" />
|
|
167
|
-
<Card.Toolbar.Button label="Неделя" />
|
|
178
|
+
<Card.Toolbar.Group divider="left" style={{ justifyContent: 'flex-end' }}>
|
|
179
|
+
<Card.Toolbar.Button label="Экспорт" />
|
|
180
|
+
<Card.Toolbar.Button label="Добавить" />
|
|
168
181
|
</Card.Toolbar.Group>
|
|
169
|
-
</
|
|
182
|
+
</Grid>
|
|
183
|
+
</Card.Toolbar>
|
|
184
|
+
```
|
|
170
185
|
|
|
171
|
-
|
|
186
|
+
Для разнесения по краям без разделителя:
|
|
187
|
+
|
|
188
|
+
```tsx
|
|
189
|
+
<Card.Toolbar inset={false}>
|
|
190
|
+
<Row justify="space-between" wrap="wrap" gap="16px">
|
|
191
|
+
<Text>Всего записей: 5</Text>
|
|
172
192
|
<Card.Toolbar.Group>
|
|
173
|
-
<Button
|
|
174
|
-
|
|
175
|
-
main={{ label: 'Импорт', onClick: handleImport }}
|
|
176
|
-
menu={{ ariaLabel: 'Действия импорта', items }}
|
|
177
|
-
/>
|
|
193
|
+
<Card.Toolbar.Button label="Экспорт" />
|
|
194
|
+
<Card.Toolbar.Button label="Добавить" />
|
|
178
195
|
</Card.Toolbar.Group>
|
|
179
|
-
</
|
|
196
|
+
</Row>
|
|
180
197
|
</Card.Toolbar>
|
|
181
198
|
```
|
|
182
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
|
+
|
|
183
211
|
`Button.Split` можно размещать внутри `Card.Toolbar.Group`; toolbar выставит ему ту же высоту, размер и attached-геометрию, что и обычным toolbar-кнопкам.
|
|
184
212
|
|
|
185
213
|
Если передан `icon` без `label`, кнопка становится стабильным square-контролом. Для таких кнопок указывайте `aria-label`.
|
|
@@ -247,3 +275,13 @@ const InertiaToolbarButtonLink = (props) => (
|
|
|
247
275
|
Скрытие текста включено по умолчанию (`md`) и настраивается:
|
|
248
276
|
- на уровне `Card.Toolbar`: `buttonHideLabelOn="md" | "never"`
|
|
249
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`.
|