@elcrm/components 0.2.13 → 0.2.14
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 +6 -2
- package/dist/EmptyState.css +1 -1
- package/dist/EmptyState.d.ts +1 -1
- package/dist/Loading.css +1 -1
- package/dist/Loading.d.ts +1 -1
- package/dist/Text-zHK2wmsw.js +25 -0
- package/dist/Text.css +1 -0
- package/dist/Text.d.ts +19 -0
- package/dist/Text.js +4 -0
- package/dist/index.css +4 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.es.d.ts +2 -0
- package/dist/index.es.js +87 -85
- package/dist/tokens.css +7 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -33,6 +33,7 @@ import {
|
|
|
33
33
|
ActionGroup,
|
|
34
34
|
Toolbar,
|
|
35
35
|
TextGroup,
|
|
36
|
+
Text,
|
|
36
37
|
Stat,
|
|
37
38
|
Stack,
|
|
38
39
|
Menu,
|
|
@@ -115,12 +116,13 @@ import { RadioGroup } from "@elcrm/components/RadioGroup";
|
|
|
115
116
|
| **ActionGroup** | Ряд иконок в карточке | `label`, `items` и/или `children` |
|
|
116
117
|
| **Toolbar** | Фильтры одной высоты | `size`, `width` (`l` = 100%, `s` = по контенту), `align`, `label`, `children` |
|
|
117
118
|
| **TextGroup** | Title + description | `title`, `description`, `size` |
|
|
119
|
+
| **Text** | Короткий текст | `tone` (`default`/`muted`), `as` |
|
|
118
120
|
| **ItemColumn** | Иконка + столбик в Item | `icon`, `title`, `extra`, `aside`, `description`, `footer` / `meta`, `unread` |
|
|
119
121
|
| **Stat** | Карточка-метрика | `label`, `value`, `tone`, `labelMuted` |
|
|
120
122
|
| **List** / **Item** | Список и строка | List: `row`; Item: `as`, `active`, `variant` (`plain`/`card`) |
|
|
121
123
|
| **Stack** | Ряд / колонка / сетка | `direction`, `columns` (N или `["1fr", "100px"]`), `gap` |
|
|
122
|
-
| **Loading** | Плейсхолдер загрузки | `children`
|
|
123
|
-
| **EmptyState** |
|
|
124
|
+
| **Loading** | Плейсхолдер загрузки | `children`; `--loading-min-height` |
|
|
125
|
+
| **EmptyState** | Пустой / ошибка | `title`, `description`, `icon`, `actions`; `--empty-*` |
|
|
124
126
|
| **createLazyResolver** | Кэш `import()` секций | `(key) => import(…)` |
|
|
125
127
|
|
|
126
128
|
Слоты `Header` заполняет приложение: поиск — `@elcrm/search`, кнопки — `@elcrm/button`, и т.д.
|
|
@@ -774,6 +776,8 @@ const resolve = createLazyResolver(
|
|
|
774
776
|
--code-block-bg / --code-block-padding / --code-block-font-size
|
|
775
777
|
--split-handle-size / --split-handle-bg / --split-handle-bg-hover
|
|
776
778
|
--banner-padding / --banner-bg / --banner-border
|
|
779
|
+
--loading-min-height
|
|
780
|
+
--empty-max-width / --empty-padding
|
|
777
781
|
--panel-info-width / --panel-info-width-min / --panel-info-overlay-max / --panel-info-backdrop
|
|
778
782
|
--row-gap / --column-gap
|
|
779
783
|
--popup-shadow
|
package/dist/EmptyState.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer elcrm-components{.cpr{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--shell-gap);padding:var(--
|
|
1
|
+
@layer elcrm-components{.cpr{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--shell-gap);padding:var(--empty-padding);max-width:var(--empty-max-width);margin-inline:auto;text-align:center;color:var(--shell-color-muted)}.cpi{display:flex;margin-bottom:var(--shell-gap-sm);color:var(--shell-color-muted)}.cpt{margin:0;font-size:var(--shell-font-size-lg);font-weight:var(--shell-font-weight);color:var(--shell-color);line-height:1.3}.cpd{margin:0;max-width:22rem;font-size:var(--shell-font-size);color:var(--shell-color-muted);line-height:1.45}.cpa{display:flex;flex-wrap:wrap;gap:var(--shell-gap-sm);justify-content:center;margin-top:var(--shell-gap)}}
|
package/dist/EmptyState.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ import { default as React } from 'react';
|
|
|
14
14
|
* />
|
|
15
15
|
* ```
|
|
16
16
|
*
|
|
17
|
-
* Токены: `--shell
|
|
17
|
+
* Токены: `--shell-*`, `--empty-max-width`, `--empty-padding`.
|
|
18
18
|
*/
|
|
19
19
|
export type EmptyStateProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
20
20
|
/** Заголовок заглушки */
|
package/dist/Loading.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer elcrm-components{.cgr{display:flex;align-items:center;justify-content:center;gap:var(--shell-gap-sm);padding:var(--shell-gap-lg);color:var(--shell-color-muted)}.cgi{box-sizing:border-box;width:var(--shell-icon-size);height:var(--shell-icon-size);border:2px solid var(--shell-border);border-top-color:var(--shell-color-accent);border-radius:var(--avatar-radius);animation:cgk .7s linear infinite}}@keyframes cgk{to{transform:rotate(360deg)}}
|
|
1
|
+
@layer elcrm-components{.cgr{display:flex;align-items:center;justify-content:center;gap:var(--shell-gap-sm);padding:var(--shell-gap-lg);min-height:var(--loading-min-height);color:var(--shell-color-muted)}.cgi{box-sizing:border-box;width:var(--shell-icon-size);height:var(--shell-icon-size);border:2px solid var(--shell-border);border-top-color:var(--shell-color-accent);border-radius:var(--avatar-radius);animation:cgk .7s linear infinite}}@keyframes cgk{to{transform:rotate(360deg)}}
|
package/dist/Loading.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ import { default as React } from 'react';
|
|
|
10
10
|
* {isLoading ? <Loading>Загружаем клиентов…</Loading> : <List>…</List>}
|
|
11
11
|
* ```
|
|
12
12
|
*
|
|
13
|
-
* Токены: `--shell
|
|
13
|
+
* Токены: `--shell-*`, `--loading-min-height`.
|
|
14
14
|
*/
|
|
15
15
|
export type LoadingProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
16
16
|
/** Текст или кастомный индикатор (по умолчанию «Загрузка…») */
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import s from "react";
|
|
2
|
+
import { c as a } from "./cx-CcykAxZN.js";
|
|
3
|
+
import './Text.css';const n = "cHr", f = "cHm", t = {
|
|
4
|
+
r: n,
|
|
5
|
+
m: f
|
|
6
|
+
};
|
|
7
|
+
function i({
|
|
8
|
+
tone: r = "default",
|
|
9
|
+
as: c = "p",
|
|
10
|
+
className: e,
|
|
11
|
+
children: m,
|
|
12
|
+
...o
|
|
13
|
+
}) {
|
|
14
|
+
return /* @__PURE__ */ s.createElement(
|
|
15
|
+
c,
|
|
16
|
+
{
|
|
17
|
+
className: a(t.r, r === "muted" && t.m, e),
|
|
18
|
+
...o
|
|
19
|
+
},
|
|
20
|
+
m
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
i as T
|
|
25
|
+
};
|
package/dist/Text.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer elcrm-components{.cHr{margin:0;font-size:.9rem;line-height:1.45;color:var(--shell-color)}.cHm{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
package/dist/index.css
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
|
|
23
23
|
@layer elcrm-components{.crr{position:relative;display:inline-flex;vertical-align:middle}.crt{display:inline-flex;align-items:center;gap:var(--shell-gap-sm);margin:0;padding:var(--shell-padding);box-sizing:border-box;font:inherit;font-size:var(--shell-font-size);font-weight:var(--shell-font-weight);color:var(--shell-color);background:var(--shell-background);border:1px solid var(--shell-border);border-radius:var(--shell-radius);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;line-height:1.2}.crt[data-size]{height:var(--control-height);min-height:var(--control-height);padding-block:0;box-sizing:border-box}.crt:hover{background:var(--shell-background-hover)}.crt[data-open=true]{border-color:var(--shell-color-accent);color:var(--shell-color-accent)}.crc{display:inline-flex;width:var(--shell-icon-size);height:var(--shell-icon-size);flex-shrink:0;color:var(--shell-color-muted)}.crt[data-open=true] .crc{color:var(--shell-color-accent)}.crp{min-width:0}.crh{margin:0;padding:var(--shell-padding);font-size:var(--shell-font-size-sm);font-weight:var(--shell-font-weight);color:var(--shell-color-muted);line-height:1.3}.crg{display:flex;flex-direction:column;gap:2px}.crd{height:0;margin:var(--shell-gap-sm) 0;border:0;border-top:1px solid var(--shell-border)}.cri{display:flex;align-items:center;gap:var(--shell-gap-sm);width:100%;margin:0;padding:var(--shell-padding);box-sizing:border-box;text-align:left;font:inherit;font-size:var(--shell-font-size);font-weight:500;color:var(--shell-color);background:transparent;border:none;border-radius:calc(var(--shell-radius) * .7);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;line-height:1.35}.cri:hover:not(:disabled),.cri:focus-visible:not(:disabled){background:var(--shell-background-hover);outline:none}.cri[data-checked=true]{background:var(--shell-background-selected)}.cri[data-danger=true]{color:var(--shell-color-danger)}.cri[data-danger=true] .crn,.cri[data-danger=true] .crm{color:inherit}.cri:disabled,.cri[aria-disabled=true]{opacity:var(--shell-disabled-opacity);cursor:not-allowed}.crn,.crk{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--shell-icon-size);height:var(--shell-icon-size);color:var(--shell-color-muted)}.crk{color:var(--shell-color-accent)}.crl{flex:1;min-width:0}.cru{flex-shrink:0;margin-left:auto;font-size:var(--shell-font-size-sm);color:var(--shell-color-muted)}.crm{display:inline-flex;flex-shrink:0;margin-left:auto;width:var(--shell-icon-size);height:var(--shell-icon-size);color:var(--shell-color-muted)}.crb{display:inline-flex;flex-shrink:0;width:var(--shell-status-size);height:var(--shell-status-size);border-radius:50%}.cro{background:var(--shell-color-success)}.crf{background:var(--shell-color-muted)}.crx{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;box-sizing:border-box;width:var(--shell-check-size);height:var(--shell-check-size);border:1px solid var(--shell-border);border-radius:calc(var(--shell-radius) * .4);background:var(--shell-background);color:var(--avatar-color)}.cry{border-color:var(--shell-color-accent);background:var(--shell-color-accent)}.crv{width:70%;height:70%;display:block}}
|
|
24
24
|
|
|
25
|
-
@layer elcrm-components{.cpr{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--shell-gap);padding:var(--
|
|
25
|
+
@layer elcrm-components{.cpr{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--shell-gap);padding:var(--empty-padding);max-width:var(--empty-max-width);margin-inline:auto;text-align:center;color:var(--shell-color-muted)}.cpi{display:flex;margin-bottom:var(--shell-gap-sm);color:var(--shell-color-muted)}.cpt{margin:0;font-size:var(--shell-font-size-lg);font-weight:var(--shell-font-weight);color:var(--shell-color);line-height:1.3}.cpd{margin:0;max-width:22rem;font-size:var(--shell-font-size);color:var(--shell-color-muted);line-height:1.45}.cpa{display:flex;flex-wrap:wrap;gap:var(--shell-gap-sm);justify-content:center;margin-top:var(--shell-gap)}}
|
|
26
26
|
|
|
27
27
|
@layer elcrm-components{.cfr{flex-shrink:0;padding:var(--shell-padding);color:var(--shell-color-muted);background:transparent;border-top:1px solid var(--shell-border);font-size:var(--shell-font-size-sm)}}
|
|
28
28
|
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
|
|
39
39
|
@layer elcrm-components{.csr{display:flex;flex-direction:column;gap:var(--shell-gap-sm);padding:0;margin:0;list-style:none}.csh{flex-direction:row;flex-wrap:wrap}}
|
|
40
40
|
|
|
41
|
-
@layer elcrm-components{.cgr{display:flex;align-items:center;justify-content:center;gap:var(--shell-gap-sm);padding:var(--shell-gap-lg);color:var(--shell-color-muted)}.cgi{box-sizing:border-box;width:var(--shell-icon-size);height:var(--shell-icon-size);border:2px solid var(--shell-border);border-top-color:var(--shell-color-accent);border-radius:var(--avatar-radius);animation:cgk .7s linear infinite}}@keyframes cgk{to{transform:rotate(360deg)}}
|
|
41
|
+
@layer elcrm-components{.cgr{display:flex;align-items:center;justify-content:center;gap:var(--shell-gap-sm);padding:var(--shell-gap-lg);min-height:var(--loading-min-height);color:var(--shell-color-muted)}.cgi{box-sizing:border-box;width:var(--shell-icon-size);height:var(--shell-icon-size);border:2px solid var(--shell-border);border-top-color:var(--shell-color-accent);border-radius:var(--avatar-radius);animation:cgk .7s linear infinite}}@keyframes cgk{to{transform:rotate(360deg)}}
|
|
42
42
|
|
|
43
43
|
@layer elcrm-components{.cmr{display:flex;align-items:center;gap:var(--shell-gap-sm);margin:0;padding:0;list-style:none}.cmv{flex-direction:column;align-items:stretch}.cmi{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--button-color-muted);padding:var(--button-padding);border-radius:var(--button-radius);font:inherit;line-height:1;cursor:pointer;text-align:left;gap:var(--shell-gap-sm)}.cmd{flex-shrink:0;min-width:16px;height:16px;padding:0 4px;font-size:10px}.cmi>svg{display:block;flex-shrink:0}.cmi:hover{background:var(--button-background-hover);color:var(--button-color)}.cma,.cmi[aria-current=page],.cmi[data-active=true]{background:var(--button-background-selected);color:var(--button-color)}.cmu{width:100%;align-items:stretch;gap:1.25rem;padding:0;border-bottom:1px solid var(--shell-border)}.cmu .cmi{border-radius:0;background:transparent;padding:.45rem .1rem .55rem;border-bottom:2px solid transparent;margin-bottom:-1px}.cmu .cmi:hover{background:transparent;color:var(--shell-color)}.cmu .cma,.cmu .cmi[aria-current=page],.cmu .cmi[data-active=true]{background:transparent;color:var(--shell-color);border-bottom-color:var(--shell-color-accent)}}
|
|
44
44
|
|
|
@@ -72,6 +72,8 @@
|
|
|
72
72
|
|
|
73
73
|
@layer elcrm-components{.cDw{overflow:auto}.cDt{width:100%;border-collapse:collapse;font-size:var(--table-font-size);color:var(--shell-color)}.cDf{table-layout:fixed}.cDt th,.cDt td{padding:var(--table-cell-padding);border-bottom:1px solid var(--shell-border);text-align:left;vertical-align:top}.cDt 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}.cDt code{font-size:var(--table-code-font-size)}}
|
|
74
74
|
|
|
75
|
+
@layer elcrm-components{.cHr{margin:0;font-size:.9rem;line-height:1.45;color:var(--shell-color)}.cHm{color:var(--shell-color-muted)}}
|
|
76
|
+
|
|
75
77
|
@layer elcrm-components{.c6r{display:flex;flex-direction:column;gap:2px;min-width:0;text-align:left}.c6t{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}.c6d{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}.c6s .c6t{font-size:var(--shell-font-size-sm)}.c6l .c6t{font-size:var(--shell-font-size-lg)}.c6l .c6d{font-size:var(--shell-font-size)}}
|
|
76
78
|
|
|
77
79
|
@layer elcrm-components{.cCr{display:flex;flex-wrap:wrap;align-items:center;gap:var(--toolbar-gap);width:100%;min-width:0;box-sizing:border-box;--field-width: auto}.cCr>[data-field]{flex:0 1 auto;width:auto;min-width:0;max-width:100%}.cCr>[data-field=search]{flex:1 1 var(--field-search-min-width, 10rem);width:auto!important;max-width:none}.cCr[data-width=s]{display:inline-flex;width:auto;max-width:100%}.cCr[data-align=center]{justify-content:center}.cCr[data-align=end]{justify-content:flex-end}.cCr[data-align=between]{justify-content:space-between}.cCr[data-size=s]{--control-height: var(--control-height-s);--field-height: var(--control-height-s);--control-font-size: 13px;--button-height: var(--button-height-s);--button-height-m: var(--button-height-s);--button-padding: var(--button-padding-s);--button-size-m: var(--button-size-s)}.cCr[data-size=l]{--control-height: var(--control-height-l);--field-height: var(--control-height-l);--button-height: var(--button-height-l);--button-height-m: var(--button-height-l);--button-size-m: var(--button-size-l)}}
|
package/dist/index.d.ts
CHANGED
|
@@ -18,6 +18,8 @@ export { Toolbar, useToolbar, applyToolbarSize } from './Toolbar';
|
|
|
18
18
|
export type { ToolbarProps, ToolbarAlign, ToolbarWidth, ToolbarContextValue, } from './Toolbar';
|
|
19
19
|
export { TextGroup } from './TextGroup';
|
|
20
20
|
export type { TextGroupProps } from './TextGroup';
|
|
21
|
+
export { Text } from './Text';
|
|
22
|
+
export type { TextProps, TextTone } from './Text';
|
|
21
23
|
export { Stat } from './Stat';
|
|
22
24
|
export type { StatProps, StatTone } from './Stat';
|
|
23
25
|
export { Block } from './Block';
|
package/dist/index.es.d.ts
CHANGED
|
@@ -18,6 +18,8 @@ export { Toolbar, useToolbar, applyToolbarSize } from './Toolbar';
|
|
|
18
18
|
export type { ToolbarProps, ToolbarAlign, ToolbarWidth, ToolbarContextValue, } from './Toolbar';
|
|
19
19
|
export { TextGroup } from './TextGroup';
|
|
20
20
|
export type { TextGroupProps } from './TextGroup';
|
|
21
|
+
export { Text } from './Text';
|
|
22
|
+
export type { TextProps, TextTone } from './Text';
|
|
21
23
|
export { Stat } from './Stat';
|
|
22
24
|
export type { StatProps, StatTone } from './Stat';
|
|
23
25
|
export { Block } from './Block';
|
package/dist/index.es.js
CHANGED
|
@@ -3,109 +3,111 @@ import { H as l } from "./Header-DZQopVNy.js";
|
|
|
3
3
|
import { F as n } from "./Footer-qxUlnPR9.js";
|
|
4
4
|
import { L as u } from "./List-BgKkYaGO.js";
|
|
5
5
|
import { I as d } from "./Item-D4okhsfW.js";
|
|
6
|
-
import { I as
|
|
7
|
-
import { C as
|
|
6
|
+
import { I as T } from "./ItemColumn-M7a9L8CI.js";
|
|
7
|
+
import { C as B } from "./Card-hn37Opo3.js";
|
|
8
8
|
import { A as I } from "./ActionGroup-ChKFW0mt.js";
|
|
9
9
|
import { T as b, a as A, u as L } from "./Toolbar-C1zAk9ak.js";
|
|
10
10
|
import { T as R } from "./TextGroup-DmhuyMR1.js";
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import { A as so } from "./
|
|
25
|
-
import { A as mo } from "./
|
|
26
|
-
import {
|
|
27
|
-
import { B as io } from "./
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
31
|
-
import { P as
|
|
32
|
-
import { P as Io } from "./
|
|
33
|
-
import { P as bo } from "./
|
|
34
|
-
import {
|
|
35
|
-
import { C as ko } from "./
|
|
36
|
-
import { C as Ho } from "./
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
import {
|
|
40
|
-
import {
|
|
41
|
-
import {
|
|
42
|
-
import {
|
|
43
|
-
import {
|
|
44
|
-
import {
|
|
45
|
-
import {
|
|
46
|
-
import {
|
|
11
|
+
import { T as G } from "./Text-zHK2wmsw.js";
|
|
12
|
+
import { S as g } from "./Stat-sKXJwz5L.js";
|
|
13
|
+
import { B as N } from "./Block-Bu7NEA0g.js";
|
|
14
|
+
import { R as M } from "./Row-DsQOVn18.js";
|
|
15
|
+
import { C as Z } from "./Column-BiogBDf8.js";
|
|
16
|
+
import { S as D, s as E } from "./Stack-XkmPSswj.js";
|
|
17
|
+
import { M as j } from "./Menu-DuXQv-zT.js";
|
|
18
|
+
import { D as K } from "./Dropdown-DosvDR13.js";
|
|
19
|
+
import { B as U } from "./Breadcrumb-CAM_e9LN.js";
|
|
20
|
+
import { L as W } from "./Loading-DkkG7RcE.js";
|
|
21
|
+
import { S as Y } from "./Section-Crxk2J-E.js";
|
|
22
|
+
import { N as $ } from "./NavSections-D6rDEtT1.js";
|
|
23
|
+
import { T as ro } from "./TabSections-DN7yVJoF.js";
|
|
24
|
+
import { A as eo, a as to, i as so } from "./Avatar-loGgFt72.js";
|
|
25
|
+
import { A as mo } from "./AvatarGroup-D1gnT3Od.js";
|
|
26
|
+
import { A as fo } from "./AvatarName-0BzyfpMq.js";
|
|
27
|
+
import { B as io } from "./Badge-jp-9iNNL.js";
|
|
28
|
+
import { B as co } from "./Brand-Zq-Idks4.js";
|
|
29
|
+
import { E as So } from "./EmptyState-mBiWtMIM.js";
|
|
30
|
+
import { R as To } from "./RadioGroup-fcXzhvMu.js";
|
|
31
|
+
import { P as Bo } from "./PricingGroup-Czuhe81Z.js";
|
|
32
|
+
import { P as Io } from "./PricingTable-BuLC0opK.js";
|
|
33
|
+
import { P as bo } from "./PageHead-DgaJ1mXY.js";
|
|
34
|
+
import { P as Lo } from "./PageShell-D9EZiO8o.js";
|
|
35
|
+
import { C as Ro, a as ko } from "./ChatSplit-DNnu3TNq.js";
|
|
36
|
+
import { C as Ho } from "./ChatFrame-BW2TmCkZ.js";
|
|
37
|
+
import { C as Fo } from "./ChatMessages-B8rdXiK-.js";
|
|
38
|
+
import { S as zo } from "./Sidebar-CYFaPqdC.js";
|
|
39
|
+
import { P as Oo } from "./Popover-DWdvZTuA.js";
|
|
40
|
+
import { H as wo } from "./Healthmap-B6cdiLUl.js";
|
|
41
|
+
import { P as Eo } from "./PanelInfo-A5y5ysH8.js";
|
|
42
|
+
import { T as jo } from "./Table-BoDr3X2d.js";
|
|
43
|
+
import { C as Ko } from "./CodeBlock-CRzVopIv.js";
|
|
44
|
+
import { S as Uo, c as Vo } from "./SplitPane-DR7PCZ8f.js";
|
|
45
|
+
import { B as Xo } from "./Banner-B72lcEMo.js";
|
|
46
|
+
import { I as _o } from "./IconButton-DPjpBKJn.js";
|
|
47
|
+
import { a as or, p as rr, r as ar } from "./overlayZ-BvHbYC1x.js";
|
|
47
48
|
import { lazy as e } from "react";
|
|
48
|
-
import { c as
|
|
49
|
+
import { c as tr } from "./cx-CcykAxZN.js";
|
|
49
50
|
function s(a) {
|
|
50
51
|
const r = {};
|
|
51
52
|
return (o) => (r[o] || (r[o] = e(() => a(o))), r[o]);
|
|
52
53
|
}
|
|
53
54
|
export {
|
|
54
55
|
I as ActionGroup,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
56
|
+
eo as Avatar,
|
|
57
|
+
mo as AvatarGroup,
|
|
58
|
+
fo as AvatarName,
|
|
59
|
+
io as Badge,
|
|
60
|
+
Xo as Banner,
|
|
61
|
+
N as Block,
|
|
62
|
+
co as Brand,
|
|
63
|
+
U as Breadcrumb,
|
|
64
|
+
B as Card,
|
|
65
|
+
Ho as ChatFrame,
|
|
66
|
+
Ro as ChatList,
|
|
67
|
+
Fo as ChatMessages,
|
|
68
|
+
ko as ChatSplit,
|
|
69
|
+
Ko as CodeBlock,
|
|
70
|
+
Z as Column,
|
|
71
|
+
K as Dropdown,
|
|
72
|
+
So as EmptyState,
|
|
72
73
|
n as Footer,
|
|
73
74
|
l as Header,
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
wo as Healthmap,
|
|
76
|
+
_o as IconButton,
|
|
76
77
|
d as Item,
|
|
77
|
-
|
|
78
|
+
T as ItemColumn,
|
|
78
79
|
x as Layout,
|
|
79
80
|
u as List,
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
81
|
+
W as Loading,
|
|
82
|
+
j as Menu,
|
|
83
|
+
$ as NavSections,
|
|
84
|
+
bo as PageHead,
|
|
85
|
+
Lo as PageShell,
|
|
86
|
+
Eo as PanelInfo,
|
|
87
|
+
Oo as Popover,
|
|
88
|
+
Bo as PricingGroup,
|
|
89
|
+
Io as PricingTable,
|
|
90
|
+
To as RadioGroup,
|
|
91
|
+
M as Row,
|
|
92
|
+
Y as Section,
|
|
93
|
+
zo as Sidebar,
|
|
94
|
+
Uo as SplitPane,
|
|
95
|
+
D as Stack,
|
|
96
|
+
g as Stat,
|
|
97
|
+
ro as TabSections,
|
|
98
|
+
jo as Table,
|
|
99
|
+
G as Text,
|
|
98
100
|
R as TextGroup,
|
|
99
101
|
b as Toolbar,
|
|
100
|
-
|
|
102
|
+
or as acquireOverlayZIndex,
|
|
101
103
|
A as applyToolbarSize,
|
|
102
|
-
|
|
103
|
-
|
|
104
|
+
to as avatarRadiusStyle,
|
|
105
|
+
Vo as clampSplitRatio,
|
|
104
106
|
s as createLazyResolver,
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
tr as cx,
|
|
108
|
+
so as initialsFromName,
|
|
109
|
+
rr as peekOverlayZIndex,
|
|
110
|
+
ar as releaseOverlayZIndex,
|
|
111
|
+
E as stackColumnsTemplate,
|
|
110
112
|
L as useToolbar
|
|
111
113
|
};
|
package/dist/tokens.css
CHANGED
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
--header-height: 52px;
|
|
42
42
|
--header-shadow: none;
|
|
43
43
|
--header-margin: 0;
|
|
44
|
-
--header-z:
|
|
44
|
+
--header-z: 30;
|
|
45
45
|
/* shorthand: толщина + стиль + цвет, все стороны. Только снизу — `none` и линия через --header-shadow */
|
|
46
46
|
--header-border: 1px solid var(--shell-border);
|
|
47
47
|
/* выравнивание nav в оставшейся ширине шапки: flex-start | center | flex-end */
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
--sidebar-width: 248px;
|
|
109
109
|
--sidebar-pad-x: var(--shell-gap);
|
|
110
110
|
--sidebar-pad-y: var(--shell-gap-lg);
|
|
111
|
-
--sidebar-block-radius:
|
|
111
|
+
--sidebar-block-radius: 14px;
|
|
112
112
|
--sidebar-item-font-size: var(--shell-font-size-sm);
|
|
113
113
|
--sidebar-item-padding: 6px 10px;
|
|
114
114
|
--sidebar-icon-size: 16px;
|
|
@@ -153,4 +153,9 @@
|
|
|
153
153
|
--banner-padding: 0.55rem 0.85rem;
|
|
154
154
|
--banner-bg: color-mix(in srgb, var(--shell-color-accent) 8%, var(--shell-bg));
|
|
155
155
|
--banner-border: color-mix(in srgb, var(--shell-color-accent) 35%, var(--shell-border));
|
|
156
|
+
|
|
157
|
+
/* —— loading / empty —— */
|
|
158
|
+
--loading-min-height: min(50vh, 24rem);
|
|
159
|
+
--empty-max-width: 36rem;
|
|
160
|
+
--empty-padding: 2rem;
|
|
156
161
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elcrm/components",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.14",
|
|
4
4
|
"description": "Shell UI elCRM: Layout, Header, Sidebar, Popover, Healthmap, PanelInfo, PageHead, PageShell, Section, Stack, Stat и др.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "MaSkal <dev@elcrm.online>",
|