@elcrm/components 0.2.13 → 0.5.1
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 +76 -38
- package/dist/ActionGroup-DcApj_Mz.js +27 -0
- package/dist/ActionGroup.css +1 -1
- package/dist/ActionGroup.d.ts +19 -19
- package/dist/ActionGroup.js +1 -1
- package/dist/Avatar-eGdLrMCv.js +113 -0
- package/dist/Avatar.css +1 -1
- package/dist/Avatar.d.ts +4 -4
- package/dist/Avatar.js +1 -1
- package/dist/AvatarGroup-Dq-UrOaC.js +81 -0
- package/dist/AvatarGroup.css +1 -1
- package/dist/AvatarGroup.d.ts +8 -28
- package/dist/AvatarGroup.js +1 -1
- package/dist/AvatarName-3B4yCxHn.js +68 -0
- package/dist/AvatarName.css +1 -1
- package/dist/AvatarName.js +1 -1
- package/dist/Badge-BjScAXGy.js +28 -0
- package/dist/Badge.css +1 -1
- package/dist/Badge.js +1 -1
- package/dist/Banner-DAY18FWO.js +34 -0
- package/dist/Banner.css +1 -1
- package/dist/Banner.js +1 -1
- package/dist/Brand-BfCuiyf7.js +34 -0
- package/dist/Brand.css +1 -1
- package/dist/Brand.d.ts +8 -10
- package/dist/Brand.js +1 -1
- package/dist/Breadcrumb-DM_hWw5n.js +98 -0
- package/dist/Breadcrumb.css +1 -1
- package/dist/Breadcrumb.d.ts +8 -5
- package/dist/Breadcrumb.js +1 -1
- package/dist/Card-a7N8Uh_H.js +12 -0
- package/dist/Card.css +1 -1
- package/dist/Card.js +1 -1
- package/dist/ChatFrame-BdSYRF-B.js +37 -0
- package/dist/ChatFrame.css +1 -1
- package/dist/ChatList.js +2 -2
- package/dist/{ChatMessages-B8rdXiK-.js → ChatMessages-CLxwRGIa.js} +1 -1
- package/dist/ChatMessages.js +1 -1
- package/dist/ChatSplit-8iw_1Shp.js +21 -0
- package/dist/CodeBlock-B3wvMejv.js +34 -0
- package/dist/CodeBlock.css +1 -1
- package/dist/CodeBlock.js +1 -1
- package/dist/Dropdown-CR_XxNak.js +185 -0
- package/dist/Dropdown.css +1 -1
- package/dist/Dropdown.d.ts +4 -94
- package/dist/Dropdown.js +1 -1
- package/dist/EmptyState-B_wWPjUu.js +23 -0
- package/dist/EmptyState.css +1 -1
- package/dist/EmptyState.d.ts +1 -1
- package/dist/EmptyState.js +1 -1
- package/dist/{Footer-qxUlnPR9.js → Footer-Bgh_JCUe.js} +4 -4
- package/dist/Footer.css +1 -1
- package/dist/Footer.js +1 -1
- package/dist/Header-BMDIi3u2.js +21 -0
- package/dist/Header.css +1 -1
- package/dist/Header.js +1 -1
- package/dist/Healthmap-Z-LLfGW0.js +359 -0
- package/dist/Healthmap.css +1 -1
- package/dist/Healthmap.d.ts +25 -3
- package/dist/Healthmap.js +1 -1
- package/dist/{Item-D4okhsfW.js → Item-CGpkMJu0.js} +13 -13
- package/dist/Item.css +1 -1
- package/dist/Item.d.ts +7 -7
- package/dist/Item.js +1 -1
- package/dist/ItemColumn-Ch61LqE0.js +41 -0
- package/dist/ItemColumn.css +1 -1
- package/dist/ItemColumn.js +1 -1
- package/dist/Layout-CzEGKl9s.js +31 -0
- package/dist/Layout.css +1 -1
- package/dist/Layout.d.ts +1 -1
- package/dist/Layout.js +1 -1
- package/dist/List-D13pqaUY.js +12 -0
- package/dist/List.css +1 -1
- package/dist/List.js +1 -1
- package/dist/Loading-C_CKD-zt.js +16 -0
- package/dist/Loading.css +1 -1
- package/dist/Loading.d.ts +1 -1
- package/dist/Loading.js +1 -1
- package/dist/Menu-D2kf7fN_.js +72 -0
- package/dist/Menu.css +1 -1
- package/dist/Menu.d.ts +7 -25
- package/dist/Menu.js +1 -1
- package/dist/NavSections-CNxxBMPT.js +154 -0
- package/dist/NavSections.css +1 -1
- package/dist/NavSections.d.ts +16 -28
- package/dist/NavSections.js +1 -1
- package/dist/PageHead-BfClTLrF.js +31 -0
- package/dist/PageHead.css +1 -1
- package/dist/PageHead.d.ts +1 -1
- package/dist/PageHead.js +1 -1
- package/dist/PageShell-BAJges-G.js +30 -0
- package/dist/PageShell.css +1 -1
- package/dist/PageShell.js +1 -1
- package/dist/PanelInfo-Db5GCr-c.js +137 -0
- package/dist/PanelInfo.css +1 -1
- package/dist/PanelInfo.d.ts +16 -9
- package/dist/PanelInfo.js +1 -1
- package/dist/Popover-xEZoMY-h.js +143 -0
- package/dist/Popover.css +1 -1
- package/dist/Popover.d.ts +40 -11
- package/dist/Popover.js +1 -1
- package/dist/PricingGroup-CWy47MlE.js +138 -0
- package/dist/PricingGroup.css +1 -1
- package/dist/PricingGroup.d.ts +0 -2
- package/dist/PricingGroup.js +1 -1
- package/dist/PricingTable-BjpGVAhi.js +157 -0
- package/dist/PricingTable.css +1 -1
- package/dist/PricingTable.d.ts +4 -7
- package/dist/PricingTable.js +1 -1
- package/dist/RadioGroup-DI4KKUvZ.js +121 -0
- package/dist/RadioGroup.css +1 -1
- package/dist/RadioGroup.js +1 -1
- package/dist/Section-PprWjOvt.js +47 -0
- package/dist/Section.css +1 -1
- package/dist/Section.d.ts +29 -9
- package/dist/Section.js +1 -1
- package/dist/Sidebar-Bouhd5SS.js +205 -0
- package/dist/Sidebar.css +1 -1
- package/dist/Sidebar.d.ts +18 -26
- package/dist/Sidebar.js +1 -1
- package/dist/SplitPane-DBa-g9td.js +92 -0
- package/dist/SplitPane.css +1 -1
- package/dist/SplitPane.d.ts +8 -7
- package/dist/SplitPane.js +1 -1
- package/dist/Stack-BPTehVYc.js +53 -0
- package/dist/Stack.css +1 -1
- package/dist/Stack.d.ts +2 -1
- package/dist/Stack.js +1 -1
- package/dist/Stat-p8j4PjrC.js +28 -0
- package/dist/Stat.css +1 -1
- package/dist/Stat.js +1 -1
- package/dist/TabSections-Dppe9wiz.js +84 -0
- package/dist/TabSections.css +1 -1
- package/dist/TabSections.d.ts +7 -2
- package/dist/TabSections.js +1 -1
- package/dist/Table-DqrDUUtb.js +27 -0
- package/dist/Table.css +1 -1
- package/dist/Table.d.ts +10 -2
- package/dist/Table.js +1 -1
- package/dist/Text-Bo1u7gVC.js +25 -0
- package/dist/Text.css +1 -0
- package/dist/Text.d.ts +19 -0
- package/dist/Text.js +4 -0
- package/dist/TextGroup-236jHxdT.js +23 -0
- package/dist/TextGroup.css +1 -1
- package/dist/TextGroup.js +1 -1
- package/dist/Toolbar-Bl9-5Mis.js +35 -0
- package/dist/Toolbar.css +1 -1
- package/dist/Toolbar.d.ts +7 -12
- package/dist/Toolbar.js +1 -2
- package/dist/cx.d.ts +1 -1
- package/dist/dark.css +12 -0
- package/dist/index.css +41 -39
- package/dist/index.d.ts +7 -12
- package/dist/index.es.d.ts +7 -12
- package/dist/index.es.js +110 -107
- package/dist/kit-manifest.json +1646 -0
- package/dist/lazyRoute.d.ts +12 -6
- package/dist/light.css +12 -0
- package/dist/navTree.d.ts +13 -1
- package/dist/rovingKeys-Di9N1Nct.js +23 -0
- package/dist/rovingKeys.d.ts +7 -1
- package/dist/stackGap.d.ts +1 -1
- package/dist/tokens.css +20 -2
- package/dist/useControllableValue-BaE0VR5d.js +13 -0
- package/dist/useControllableValue.d.ts +3 -0
- package/package.json +48 -4
- package/dist/ActionGroup-ChKFW0mt.js +0 -27
- package/dist/Avatar-loGgFt72.js +0 -113
- package/dist/AvatarGroup-D1gnT3Od.js +0 -81
- package/dist/AvatarName-0BzyfpMq.js +0 -68
- package/dist/Badge-jp-9iNNL.js +0 -28
- package/dist/Banner-B72lcEMo.js +0 -34
- package/dist/Block-Bu7NEA0g.js +0 -8
- package/dist/Block.d.ts +0 -30
- package/dist/Block.js +0 -4
- package/dist/Brand-Zq-Idks4.js +0 -34
- package/dist/Breadcrumb-CAM_e9LN.js +0 -98
- package/dist/Card-hn37Opo3.js +0 -12
- package/dist/ChatFrame-BW2TmCkZ.js +0 -37
- package/dist/ChatSplit-DNnu3TNq.js +0 -21
- package/dist/CodeBlock-CRzVopIv.js +0 -25
- package/dist/Column-BiogBDf8.js +0 -8
- package/dist/Column.d.ts +0 -24
- package/dist/Column.js +0 -4
- package/dist/Dropdown-DosvDR13.js +0 -147
- package/dist/EmptyState-mBiWtMIM.js +0 -23
- package/dist/Header-DZQopVNy.js +0 -21
- package/dist/Healthmap-B6cdiLUl.js +0 -243
- package/dist/ItemColumn-M7a9L8CI.js +0 -41
- package/dist/Layout-mi6Ghayv.js +0 -31
- package/dist/List-BgKkYaGO.js +0 -12
- package/dist/Loading-DkkG7RcE.js +0 -16
- package/dist/Menu-DuXQv-zT.js +0 -66
- package/dist/NavSections-D6rDEtT1.js +0 -142
- package/dist/PageHead-DgaJ1mXY.js +0 -31
- package/dist/PageShell-D9EZiO8o.js +0 -30
- package/dist/PanelInfo-A5y5ysH8.js +0 -81
- package/dist/Popover-DWdvZTuA.js +0 -135
- package/dist/PricingGroup-Czuhe81Z.js +0 -120
- package/dist/PricingTable-BuLC0opK.js +0 -152
- package/dist/RadioGroup-fcXzhvMu.js +0 -129
- package/dist/Row-DsQOVn18.js +0 -8
- package/dist/Row.d.ts +0 -24
- package/dist/Row.js +0 -4
- package/dist/Section-Crxk2J-E.js +0 -34
- package/dist/Sidebar-CYFaPqdC.js +0 -178
- package/dist/SplitPane-DR7PCZ8f.js +0 -74
- package/dist/Stack-XkmPSswj.js +0 -53
- package/dist/Stat-sKXJwz5L.js +0 -27
- package/dist/TabSections-DN7yVJoF.js +0 -69
- package/dist/Table-BoDr3X2d.js +0 -25
- package/dist/TextGroup-DmhuyMR1.js +0 -23
- package/dist/Toolbar-C1zAk9ak.js +0 -42
- package/dist/rovingKeys-CGlfTtNQ.js +0 -15
- package/dist/useControllableValue-CWqH1kpM.js +0 -10
package/dist/TabSections.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer elcrm-components{.
|
|
1
|
+
@layer elcrm-components{.ntr{display:flex;flex-direction:column;gap:var(--shell-gap);width:100%;min-width:0}.ntb{display:flex;align-items:flex-end;gap:var(--shell-gap);border-bottom:1px solid var(--shell-border);min-width:0}.ntn{display:flex;align-items:stretch;gap:var(--shell-gap-lg);flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:thin}.ntt{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:var(--shell-gap-sm);flex:0 0 auto;margin:0 0 -1px;padding:var(--shell-padding-block) .15rem;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--shell-color-muted);font:inherit;font-size:var(--shell-font-size);font-weight:500;white-space:nowrap;cursor:pointer}.ntt:hover:not(:disabled){color:var(--shell-color)}.nta{color:var(--shell-color);border-bottom-color:var(--shell-color-accent)}.ntt:disabled{opacity:var(--shell-disabled-opacity);cursor:not-allowed}.nte{display:inline-flex;align-items:center;justify-content:center;min-width:1.15em;height:1.15em;padding:0 .35em;border-radius:999px;background:var(--shell-color-danger);color:var(--avatar-color);font-size:var(--sidebar-group-font-size);font-style:normal;font-weight:700;line-height:1}.nts{flex:0 0 auto;display:flex;align-items:center;padding-bottom:var(--shell-gap-sm)}.ntm{min-width:0;width:100%}}
|
package/dist/TabSections.d.ts
CHANGED
|
@@ -29,8 +29,13 @@ export type TabSectionsProps = {
|
|
|
29
29
|
/**
|
|
30
30
|
* Резолвер панели по `value`.
|
|
31
31
|
* Обычно: `createLazyResolver((v) => import(\`./sections/${v}.tsx\`))`.
|
|
32
|
+
* Не нужен, если передали `children`.
|
|
32
33
|
*/
|
|
33
|
-
resolveSection
|
|
34
|
+
resolveSection?: (value: string) => LazyRouteChunk | React.ComponentType;
|
|
35
|
+
/**
|
|
36
|
+
* Готовая панель без lazy (вместо `resolveSection`).
|
|
37
|
+
*/
|
|
38
|
+
children?: React.ReactNode;
|
|
34
39
|
/** Контролируемый активный `value`. */
|
|
35
40
|
value?: string;
|
|
36
41
|
/** Начальный `value` (неконтролируемый режим). */
|
|
@@ -84,4 +89,4 @@ export type TabSectionsProps = {
|
|
|
84
89
|
* />
|
|
85
90
|
* ```
|
|
86
91
|
*/
|
|
87
|
-
export declare function TabSections({ items, resolveSection, value: valueProp, defaultValue, onValueChange, loading, actions, className, navLabel, }: TabSectionsProps): React.JSX.Element;
|
|
92
|
+
export declare function TabSections({ items, resolveSection, children, value: valueProp, defaultValue, onValueChange, loading, actions, className, navLabel, }: TabSectionsProps): React.JSX.Element;
|
package/dist/TabSections.js
CHANGED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import e from "react";
|
|
2
|
+
import { c as a } from "./cx-CcykAxZN.js";
|
|
3
|
+
import './Table.css';const l = "dtw", n = "dtt", d = "dtf", f = "dts", t = {
|
|
4
|
+
wrap: l,
|
|
5
|
+
table: n,
|
|
6
|
+
fixed: d,
|
|
7
|
+
sticky: f
|
|
8
|
+
};
|
|
9
|
+
function x({
|
|
10
|
+
layout: s = "auto",
|
|
11
|
+
stickyHeader: c = !1,
|
|
12
|
+
className: o,
|
|
13
|
+
children: r,
|
|
14
|
+
...i
|
|
15
|
+
}) {
|
|
16
|
+
return /* @__PURE__ */ e.createElement("div", { className: a(t.wrap, c && t.sticky) }, /* @__PURE__ */ e.createElement(
|
|
17
|
+
"table",
|
|
18
|
+
{
|
|
19
|
+
className: a(t.table, s === "fixed" && t.fixed, o),
|
|
20
|
+
...i
|
|
21
|
+
},
|
|
22
|
+
r
|
|
23
|
+
));
|
|
24
|
+
}
|
|
25
|
+
export {
|
|
26
|
+
x as T
|
|
27
|
+
};
|
package/dist/Table.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer elcrm-components{.
|
|
1
|
+
@layer elcrm-components{.dtw{overflow:auto;max-height:var(--table-max-height, none)}.dtt{width:100%;border-collapse:collapse;font-size:var(--table-font-size);color:var(--shell-color)}.dtf{table-layout:fixed}.dtt th,.dtt td{padding:var(--table-cell-padding);border-bottom:1px solid var(--shell-border);text-align:left;vertical-align:top}.dtt th{color:var(--shell-color-muted);font-weight:var(--shell-font-weight);font-size:var(--table-head-font-size);text-transform:uppercase;letter-spacing:.04em}.dtt code{font-size:var(--table-code-font-size)}.dts .dtt thead th{position:sticky;top:0;z-index:1;background:var(--table-head-background, var(--shell-background));box-shadow:0 1px 0 var(--shell-border)}}
|
package/dist/Table.d.ts
CHANGED
|
@@ -2,13 +2,21 @@ import { default as React } from 'react';
|
|
|
2
2
|
export type TableProps = React.TableHTMLAttributes<HTMLTableElement> & {
|
|
3
3
|
/** `fixed` — равномерные колонки, ширины через col/colgroup в children. */
|
|
4
4
|
layout?: "auto" | "fixed";
|
|
5
|
+
/**
|
|
6
|
+
* Липкий `<thead>` при скролле обёртки.
|
|
7
|
+
* Фон шапки: `--table-head-background` (иначе `--shell-background`).
|
|
8
|
+
*/
|
|
9
|
+
stickyHeader?: boolean;
|
|
5
10
|
};
|
|
6
11
|
/**
|
|
7
12
|
* Таблица данных: обёртка со скроллом + стили shell.
|
|
8
13
|
*
|
|
14
|
+
* Подпись таблицы — нативный `<caption>` в `children` (a11y).
|
|
15
|
+
*
|
|
9
16
|
* @example
|
|
10
17
|
* ```tsx
|
|
11
|
-
* <Table>
|
|
18
|
+
* <Table stickyHeader>
|
|
19
|
+
* <caption className="sr-only">Пользователи</caption>
|
|
12
20
|
* <thead>
|
|
13
21
|
* <tr>
|
|
14
22
|
* <th>Имя</th>
|
|
@@ -26,4 +34,4 @@ export type TableProps = React.TableHTMLAttributes<HTMLTableElement> & {
|
|
|
26
34
|
*
|
|
27
35
|
* Токены: `--table-*`, `--shell-border`, `--shell-color`.
|
|
28
36
|
*/
|
|
29
|
-
export declare function Table({ layout, className, children, ...rest }: TableProps): React.JSX.Element;
|
|
37
|
+
export declare function Table({ layout, stickyHeader, className, children, ...rest }: TableProps): React.JSX.Element;
|
package/dist/Table.js
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import s from "react";
|
|
2
|
+
import { c as a } from "./cx-CcykAxZN.js";
|
|
3
|
+
import './Text.css';const n = "txr", u = "txm", t = {
|
|
4
|
+
root: n,
|
|
5
|
+
muted: u
|
|
6
|
+
};
|
|
7
|
+
function f({
|
|
8
|
+
tone: o = "default",
|
|
9
|
+
as: e = "p",
|
|
10
|
+
className: r,
|
|
11
|
+
children: m,
|
|
12
|
+
...c
|
|
13
|
+
}) {
|
|
14
|
+
return /* @__PURE__ */ s.createElement(
|
|
15
|
+
e,
|
|
16
|
+
{
|
|
17
|
+
className: a(t.root, o === "muted" && t.muted, r),
|
|
18
|
+
...c
|
|
19
|
+
},
|
|
20
|
+
m
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
f as T
|
|
25
|
+
};
|
package/dist/Text.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer elcrm-components{.txr{margin:0;font-size:.9rem;line-height:1.45;color:var(--shell-color)}.txm{color:var(--shell-color-muted)}}
|
package/dist/Text.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export type TextTone = "default" | "muted";
|
|
3
|
+
export type TextProps = React.HTMLAttributes<HTMLElement> & {
|
|
4
|
+
/** Семантика цвета: default = `--shell-color`, muted = `--shell-color-muted` */
|
|
5
|
+
tone?: TextTone;
|
|
6
|
+
/** HTML-тег */
|
|
7
|
+
as?: "p" | "span" | "div" | "label" | "strong" | "em";
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Короткий текст с тоном. Для пары title+description — {@link TextGroup}.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* <Text tone="muted">Ничего не найдено</Text>
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* Токены: `--shell-color`, `--shell-color-muted`, `--shell-font-size`.
|
|
18
|
+
*/
|
|
19
|
+
export declare function Text({ tone, as: Tag, className, children, ...rest }: TextProps): React.JSX.Element;
|
package/dist/Text.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import l from "react";
|
|
2
|
+
import { c as m } from "./cx-CcykAxZN.js";
|
|
3
|
+
import './TextGroup.css';const g = "tgr", u = "tgt", d = "tgd", i = "tgs", p = "tgl", t = {
|
|
4
|
+
root: g,
|
|
5
|
+
title: u,
|
|
6
|
+
desc: d,
|
|
7
|
+
small: i,
|
|
8
|
+
large: p
|
|
9
|
+
};
|
|
10
|
+
function E({
|
|
11
|
+
title: s,
|
|
12
|
+
description: e,
|
|
13
|
+
size: a = "m",
|
|
14
|
+
children: o,
|
|
15
|
+
className: c,
|
|
16
|
+
...n
|
|
17
|
+
}) {
|
|
18
|
+
const r = a === "s" ? t.small : a === "l" ? t.large : void 0;
|
|
19
|
+
return /* @__PURE__ */ l.createElement("div", { className: m(t.root, r, c), ...n }, s != null ? /* @__PURE__ */ l.createElement("span", { className: t.title }, s) : null, e != null ? /* @__PURE__ */ l.createElement("span", { className: t.desc }, e) : null, o);
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
E as T
|
|
23
|
+
};
|
package/dist/TextGroup.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer elcrm-components{.
|
|
1
|
+
@layer elcrm-components{.tgr{display:flex;flex-direction:column;gap:2px;min-width:0;text-align:left}.tgt{margin:0;font-size:var(--shell-font-size);font-weight:var(--shell-font-weight);color:var(--shell-color);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tgd{margin:0;font-size:var(--shell-font-size-sm);font-weight:400;color:var(--shell-color-muted);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tgs .tgt{font-size:var(--shell-font-size-sm)}.tgl .tgt{font-size:var(--shell-font-size-lg)}.tgl .tgd{font-size:var(--shell-font-size)}}
|
package/dist/TextGroup.js
CHANGED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import t from "react";
|
|
2
|
+
import { c as i } from "./cx-CcykAxZN.js";
|
|
3
|
+
import './Toolbar.css';const u = "kwr", m = {
|
|
4
|
+
root: u
|
|
5
|
+
}, a = t.createContext(null);
|
|
6
|
+
function x() {
|
|
7
|
+
return t.useContext(a);
|
|
8
|
+
}
|
|
9
|
+
function f({
|
|
10
|
+
size: o = "s",
|
|
11
|
+
label: r = "Тулбар",
|
|
12
|
+
align: e = "start",
|
|
13
|
+
width: n = "l",
|
|
14
|
+
className: l,
|
|
15
|
+
children: s,
|
|
16
|
+
...c
|
|
17
|
+
}) {
|
|
18
|
+
return /* @__PURE__ */ t.createElement(a.Provider, { value: { size: o } }, /* @__PURE__ */ t.createElement(
|
|
19
|
+
"div",
|
|
20
|
+
{
|
|
21
|
+
className: i(m.root, l),
|
|
22
|
+
role: "toolbar",
|
|
23
|
+
"aria-label": r,
|
|
24
|
+
"data-size": o,
|
|
25
|
+
"data-align": e,
|
|
26
|
+
"data-width": n,
|
|
27
|
+
...c
|
|
28
|
+
},
|
|
29
|
+
s
|
|
30
|
+
));
|
|
31
|
+
}
|
|
32
|
+
export {
|
|
33
|
+
f as T,
|
|
34
|
+
x as u
|
|
35
|
+
};
|
package/dist/Toolbar.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer elcrm-components{.
|
|
1
|
+
@layer elcrm-components{.kwr{display:flex;flex-wrap:wrap;align-items:center;gap:var(--toolbar-gap);width:100%;min-width:0;box-sizing:border-box;--field-width: auto}.kwr>[data-field]{flex:0 1 auto;width:auto;min-width:0;max-width:100%}.kwr>[data-field=search]{flex:1 1 var(--field-search-min-width, 10rem);width:auto;max-width:none}.kwr[data-width=s]{display:inline-flex;width:auto;max-width:100%}.kwr[data-align=center]{justify-content:center}.kwr[data-align=end]{justify-content:flex-end}.kwr[data-align=between]{justify-content:space-between}.kwr[data-size=s]{--control-height: var(--control-height-s);--field-height: var(--control-height-s);--control-font-size: var(--control-font-size-s, .8125rem);--button-height: var(--button-height-s)}.kwr[data-size=l]{--control-height: var(--control-height-l);--field-height: var(--control-height-l);--button-height: var(--button-height-l)}}
|
package/dist/Toolbar.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
import { UiSize } from './types';
|
|
3
|
-
/** Контекст размера тулбара — дети
|
|
3
|
+
/** Контекст размера тулбара — дети читают через {@link useToolbar}. */
|
|
4
4
|
export type ToolbarContextValue = {
|
|
5
5
|
size: UiSize;
|
|
6
6
|
};
|
|
@@ -11,8 +11,8 @@ export type ToolbarAlign = "start" | "center" | "end" | "between";
|
|
|
11
11
|
export type ToolbarWidth = "s" | "l";
|
|
12
12
|
export type ToolbarProps = Omit<React.HTMLAttributes<HTMLDivElement>, "children"> & {
|
|
13
13
|
/**
|
|
14
|
-
* Общий
|
|
15
|
-
* Явный `size` у ребёнка
|
|
14
|
+
* Общий размер: токены `data-size` + {@link useToolbar}.
|
|
15
|
+
* Явный `size` у ребёнка важнее контекста.
|
|
16
16
|
* @default "s"
|
|
17
17
|
*/
|
|
18
18
|
size?: UiSize;
|
|
@@ -31,20 +31,19 @@ export type ToolbarProps = Omit<React.HTMLAttributes<HTMLDivElement>, "children"
|
|
|
31
31
|
width?: ToolbarWidth;
|
|
32
32
|
/**
|
|
33
33
|
* Узлы тулбара (`*Field`, `Search`, `Button`, `Dropdown`, …).
|
|
34
|
-
*
|
|
34
|
+
* Размер — через контекст / CSS, не через cloneElement.
|
|
35
35
|
*/
|
|
36
36
|
children?: React.ReactNode;
|
|
37
37
|
};
|
|
38
|
-
/** Прокинуть `size` прямым детям-компонентам, если у них его ещё нет. */
|
|
39
|
-
export declare function applyToolbarSize(node: React.ReactNode, size: UiSize): React.ReactNode;
|
|
40
38
|
/**
|
|
41
39
|
* Ряд контролов одной высоты: поиск, поля, кнопки, меню.
|
|
42
40
|
*
|
|
43
41
|
* Роли: Toolbar = фильтры / действия над списком (`PageHead.children`).
|
|
44
42
|
* Иконки в карточке — `ActionGroup`.
|
|
45
43
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
44
|
+
* Размер:
|
|
45
|
+
* - CSS: `data-size` → `--control-height` / `--field-height` / `--button-height`;
|
|
46
|
+
* - JS: {@link useToolbar} (как {@link Dropdown}).
|
|
48
47
|
*
|
|
49
48
|
* @example
|
|
50
49
|
* ```tsx
|
|
@@ -52,10 +51,6 @@ export declare function applyToolbarSize(node: React.ReactNode, size: UiSize): R
|
|
|
52
51
|
* <Search value={q} onValue={setQ} />
|
|
53
52
|
* <Button label="Создать" />
|
|
54
53
|
* </Toolbar>
|
|
55
|
-
* <Toolbar width="s" align="center">
|
|
56
|
-
* <Button label="Отмена" />
|
|
57
|
-
* <Button label="Сохранить" />
|
|
58
|
-
* </Toolbar>
|
|
59
54
|
* ```
|
|
60
55
|
*
|
|
61
56
|
* Токены: `--toolbar-gap`, `--control-height-*`, `--button-height-*`.
|
package/dist/Toolbar.js
CHANGED
package/dist/cx.d.ts
CHANGED
package/dist/dark.css
CHANGED
|
@@ -23,6 +23,18 @@ body[data-theme="dark"] {
|
|
|
23
23
|
--sidebar-item-active: var(--shell-color);
|
|
24
24
|
--sidebar-item-active-bg: var(--shell-background-selected);
|
|
25
25
|
--sidebar-icon-active: var(--shell-color-accent);
|
|
26
|
+
/* панель аккаунта — цвета текущей темы */
|
|
27
|
+
--sidebar-account-menu-bg: var(--shell-background);
|
|
28
|
+
--sidebar-account-menu-color: var(--shell-color);
|
|
29
|
+
--sidebar-account-menu-border: var(--shell-border);
|
|
30
|
+
--sidebar-account-menu-shadow: var(--popup-shadow, var(--shell-shadow));
|
|
31
|
+
--sidebar-account-item-hover: var(--shell-background-hover);
|
|
32
|
+
--sidebar-account-item-icon: var(--shell-color-muted);
|
|
33
|
+
--sidebar-account-danger-hover: color-mix(
|
|
34
|
+
in srgb,
|
|
35
|
+
var(--shell-color-danger) 14%,
|
|
36
|
+
transparent
|
|
37
|
+
);
|
|
26
38
|
|
|
27
39
|
--avatar-background: var(--shell-color-accent);
|
|
28
40
|
--avatar-color: var(--button-primary-fg);
|