@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 CHANGED
@@ -183,38 +183,40 @@ Custom variants задаются через `--variant-{name}-*` токены:
183
183
 
184
184
  ### Card.Toolbar
185
185
 
186
- `Card.Toolbar` занимает всю внутреннюю ширину Card. По умолчанию `inset=true` задаёт его контенту внутренние отступы Card при размещении непосредственно в Card; `inset={false}` оставляет компактный padding Toolbar без боковых границ и скруглений. `dividerTop` и `dividerBottom` независимо включают линии сверху и снизу (по умолчанию выключены). `dividers` управляет разделителями между группами.
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
- `Card.Toolbar align="left|right|between"` задает общее выравнивание прямых групп. Если нужно разнести группы по зонам, используйте `Card.Toolbar.Section`:
188
+ Для колонок используйте Grid, для ряда с переносами — Row. Toolbar не добавляет обёрток и не управляет шириной колонок.
189
189
 
190
190
  ```tsx
191
- <Card.Toolbar>
192
- <Card.Toolbar.Section align="left">
193
- <Card.Toolbar.Group attached>
194
- <Card.Toolbar.Button label="Все" />
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
- </Card.Toolbar.Section>
198
-
199
- <Card.Toolbar.Section align="center">
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
- </Card.Toolbar.Section>
200
+ </Grid>
201
+ </Card.Toolbar>
202
+ ```
205
203
 
206
- <Card.Toolbar.Section align="right">
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.Split
209
- variant="primary"
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
- </Card.Toolbar.Section>
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: (_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 8v4", strokeLinecap: "round" }), _jsx("circle", { cx: "10", cy: "6", r: "0.8", fill: "currentColor", stroke: "none" })] })),
23
- primary: (_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 8v4", strokeLinecap: "round" }), _jsx("circle", { cx: "10", cy: "6", r: "0.8", fill: "currentColor", stroke: "none" })] })),
24
- secondary: (_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 8v4", strokeLinecap: "round" }), _jsx("circle", { cx: "10", cy: "6", r: "0.8", fill: "currentColor", stroke: "none" })] })),
25
- info: (_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 8v4", strokeLinecap: "round" }), _jsx("circle", { cx: "10", cy: "6", r: "0.8", fill: "currentColor", stroke: "none" })] })),
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: (_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 8v4", strokeLinecap: "round" }), _jsx("circle", { cx: "10", cy: "6", r: "0.8", fill: "currentColor", stroke: "none" })] })),
30
- light: (_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 8v4", strokeLinecap: "round" }), _jsx("circle", { cx: "10", cy: "6", r: "0.8", fill: "currentColor", stroke: "none" })] })),
31
- neutral: (_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 8v4", strokeLinecap: "round" }), _jsx("circle", { cx: "10", cy: "6", r: "0.8", fill: "currentColor", stroke: "none" })] })),
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":"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"}
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
- /** Apply Card section padding when placed directly inside Card. Defaults to true. */
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 useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
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
- const getToolbarSectionAlign = (child) => {
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
- .filter(Boolean)
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.hideLabelOn;
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 CardToolbarSection({ align = 'left', className, ...props }) {
198
- const classes = [styles.toolbarSection, className].filter(Boolean).join(' ');
199
- return _jsx("div", { className: classes, "data-card-toolbar-section": align, ...props });
200
- }
201
- function CardToolbarGroup({ attached = false, className, role, ...props }) {
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: flex;
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-radius: var(--card-toolbar-border-radius, 0);
85
+ border-inline: 1px solid var(--color-line);
86
+ border-radius: var(--card-toolbar-border-radius, var(--radius-default));
96
87
  }
97
88
 
98
- /* Keep the surface and dividers full-width; inset only the content. */
89
+ /* Inset panels align their frame with section content. */
99
90
  .card > .toolbarInset {
100
- padding: var(--card-padding-y, var(--spacing-7)) var(--card-padding-x, var(--spacing-7));
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
- .toolbarItem[data-toolbar-section-align='center'] .toolbarSection {
223
- justify-content: center;
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
- .toolbarItem[data-toolbar-section-align='right'] .toolbarSection {
227
- 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));
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, CardToolbarSectionAlign, CardToolbarSectionProps, } from './components/Card/Card';
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;AAQzD,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"}
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`, расположенный непосредственно в Card, занимает всю внутреннюю ширину. `inset` задаёт padding контента вместо прежних внешних margin. `inset={false}` оставляет компактный padding Toolbar. Полная рамка заменена независимыми `dividerTop`/`dividerBottom`; по умолчанию оба выключены. Toolbar внутри Body и самостоятельный Toolbar сохраняют компактные отступы. Общий gap корневого Card больше не разделяет произвольные дочерние элементы.
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
- Toolbar занимает всю внутреннюю ширину Card независимо от `inset`: фон и линии не имеют внешнего отступа. `inset` (по умолчанию `true`) задаёт **внутренние отступы контента** через `--card-padding-x` и `--card-padding-y` при размещении Toolbar непосредственно в Card. `inset={false}` оставляет компактный padding Toolbar (`--spacing-2` по вертикали и `--spacing-3` по горизонтали; на экранах до 720px — `--spacing-2` по обеим осям).
115
+ При размещении Toolbar непосредственно в Card:
116
116
 
117
- `dividerTop` и `dividerBottom` независимо включают разделители сверху и снизу на всю ширину Toolbar. Оба по умолчанию `false`; боковых границ нет. `dividers` по-прежнему управляет только внутренними разделителями групп.
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; `inset` их не отменяет и не добавляет вторые. Верхний и нижний разделители доступны при любом размещении. При `inset={false}` боковых границ и скруглений нет, даже если Toolbar — первый или последний элемент Card. При `inset=true` крайние Toolbar наследуют соответствующие скругления Card; для остальных можно задать `--card-toolbar-border-radius`. Если соседний Header/Footer уже рисует линию на общем стыке, включайте разделитель только с одной стороны, чтобы не удваивать его толщину.
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
- <Card.Toolbar.Group attached>
134
- <Card.Toolbar.Button label="Обзор" />
135
- <Card.Toolbar.Button label="Метрики" />
136
- <Card.Toolbar.Button label="Логи" />
137
- </Card.Toolbar.Group>
138
-
139
- <Card.Toolbar.Group attached>
140
- <Card.Toolbar.Button icon={<SaveIcon />} label="Сохранить" />
141
- <Card.Toolbar.Button icon={<RefreshIcon />} label="Обновить" />
142
- </Card.Toolbar.Group>
143
-
144
- <Card.Toolbar.Group>
145
- <Card.Toolbar.Button aria-label="Настройки" icon={<SettingsIcon />} />
146
- </Card.Toolbar.Group>
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
- `Card.Toolbar align="left" | "right" | "between"` задает общее выравнивание прямых групп. Если нужно разнести несколько зон независимо, используйте `Card.Toolbar.Section`:
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
- <Card.Toolbar.Section align="left">
160
- <Card.Toolbar.Group attached>
161
- <Card.Toolbar.Button label="Все" />
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
- </Card.Toolbar.Section>
165
-
166
- <Card.Toolbar.Section align="center">
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
- </Card.Toolbar.Section>
182
+ </Grid>
183
+ </Card.Toolbar>
184
+ ```
185
+
186
+ Для разнесения по краям без разделителя:
172
187
 
173
- <Card.Toolbar.Section align="right">
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.Split
176
- variant="primary"
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
- </Card.Toolbar.Section>
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`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phpsoftbox/react-softbox",
3
- "version": "2.7.1",
3
+ "version": "2.8.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",