@elcrm/components 0.5.3 → 0.5.5
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 +12 -1
- package/dist/{AvatarGroup-Dq-UrOaC.js → AvatarGroup-DeceOhGV.js} +29 -26
- package/dist/AvatarGroup.js +1 -1
- package/dist/{Breadcrumb-DM_hWw5n.js → Breadcrumb-BexTTfCV.js} +42 -29
- package/dist/Breadcrumb.js +1 -1
- package/dist/CodeBlock-CZFC4r35.js +37 -0
- package/dist/CodeBlock.js +1 -1
- package/dist/Dropdown-C9rbsSgR.js +190 -0
- package/dist/Dropdown.js +1 -1
- package/dist/{Healthmap-Z-LLfGW0.js → Healthmap-B4h6_9Yv.js} +130 -123
- package/dist/Healthmap.js +1 -1
- package/dist/Layout.css +1 -1
- package/dist/Layout.d.ts +3 -1
- package/dist/Menu-CR2CclSe.js +76 -0
- package/dist/Menu.d.ts +5 -0
- package/dist/Menu.js +1 -1
- package/dist/PageHead-BjBvWtlk.js +33 -0
- package/dist/PageHead.d.ts +7 -1
- package/dist/PageHead.js +1 -1
- package/dist/{PanelInfo-Db5GCr-c.js → PanelInfo-BTkDUF-p.js} +61 -58
- package/dist/PanelInfo.js +1 -1
- package/dist/Popover.d.ts +1 -1
- package/dist/{PricingTable-BjpGVAhi.js → PricingTable-Dt2wsnEz.js} +56 -53
- package/dist/PricingTable.js +1 -1
- package/dist/Section-C5XfBTfd.js +48 -0
- package/dist/Section.d.ts +8 -1
- package/dist/Section.js +1 -1
- package/dist/{Sidebar-Bouhd5SS.js → Sidebar-C5vMwV9L.js} +77 -74
- package/dist/Sidebar.js +1 -1
- package/dist/TabSections-CEM_8Fjy.js +87 -0
- package/dist/TabSections.js +1 -1
- package/dist/index.css +1 -1
- package/dist/index.es.js +12 -12
- package/dist/kit-manifest.json +12 -2
- package/dist/tokens.css +2 -0
- package/package.json +1 -1
- package/dist/CodeBlock-B3wvMejv.js +0 -34
- package/dist/Dropdown-CR_XxNak.js +0 -185
- package/dist/Menu-D2kf7fN_.js +0 -72
- package/dist/PageHead-BfClTLrF.js +0 -31
- package/dist/Section-PprWjOvt.js +0 -47
- package/dist/TabSections-Dppe9wiz.js +0 -84
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import t, { useState as
|
|
2
|
-
import { c as
|
|
3
|
-
import { createPortal as
|
|
4
|
-
import { p as
|
|
1
|
+
import t, { useState as z, useMemo as Y, useEffect as j } from "react";
|
|
2
|
+
import { c as _ } from "./cx-CcykAxZN.js";
|
|
3
|
+
import { createPortal as J } from "react-dom";
|
|
4
|
+
import { p as Q } from "./overlayZ-BvHbYC1x.js";
|
|
5
|
+
import { Button as H } from "@elcrm/button";
|
|
5
6
|
import './Healthmap.css';function L(e) {
|
|
6
|
-
const [a,
|
|
7
|
-
return new Date(Date.UTC(a,
|
|
7
|
+
const [a, s, u] = e.split("-").map(Number);
|
|
8
|
+
return new Date(Date.UTC(a, s - 1, u));
|
|
8
9
|
}
|
|
9
|
-
function
|
|
10
|
+
function X(e, a) {
|
|
10
11
|
if (e <= 0) return 0;
|
|
11
12
|
if (a <= 1) return 4;
|
|
12
|
-
const
|
|
13
|
-
return
|
|
13
|
+
const s = e / a;
|
|
14
|
+
return s > 0.75 ? 4 : s > 0.5 ? 3 : s > 0.25 ? 2 : 1;
|
|
14
15
|
}
|
|
15
|
-
function
|
|
16
|
+
function I(e) {
|
|
16
17
|
let a = 0;
|
|
17
|
-
for (let
|
|
18
|
-
if (e[
|
|
18
|
+
for (let s = e.length - 1; s >= 0; s--) {
|
|
19
|
+
if (e[s].count <= 0) {
|
|
19
20
|
if (a === 0) continue;
|
|
20
21
|
break;
|
|
21
22
|
}
|
|
@@ -23,7 +24,7 @@ function X(e) {
|
|
|
23
24
|
}
|
|
24
25
|
return a;
|
|
25
26
|
}
|
|
26
|
-
function
|
|
27
|
+
function ee(e, a) {
|
|
27
28
|
var D;
|
|
28
29
|
if (!((D = e == null ? void 0 : e.days) != null && D.length))
|
|
29
30
|
return {
|
|
@@ -33,31 +34,31 @@ function I(e, a) {
|
|
|
33
34
|
activeDays: 0,
|
|
34
35
|
bestDay: 0
|
|
35
36
|
};
|
|
36
|
-
const
|
|
37
|
+
const s = Math.max(1, ...e.days.map((l) => l.count)), u = new Map(e.days.map((l) => [l.date, l.count])), E = L(e.from), d = L(e.to), f = E.getUTCDay(), c = f === 0 ? -6 : 1 - f, i = new Date(E);
|
|
37
38
|
i.setUTCDate(i.getUTCDate() + c);
|
|
38
39
|
const p = [], N = [];
|
|
39
40
|
let k = -1;
|
|
40
41
|
for (; i.getTime() <= d.getTime() || p.length === 0; ) {
|
|
41
|
-
const
|
|
42
|
+
const l = [];
|
|
42
43
|
for (let r = 0; r < 7; r++) {
|
|
43
|
-
const o = i.getUTCFullYear(), m = i.getUTCMonth(),
|
|
44
|
-
r === 0 && g && m !== k && (N.push({ label: a[m], col: p.length }), k = m),
|
|
45
|
-
date:
|
|
46
|
-
count: g ?
|
|
47
|
-
level: g ?
|
|
44
|
+
const o = i.getUTCFullYear(), m = i.getUTCMonth(), y = i.getUTCDate(), w = `${o}-${String(m + 1).padStart(2, "0")}-${String(y).padStart(2, "0")}`, g = i.getTime() >= E.getTime() && i.getTime() <= d.getTime(), v = g ? u.get(w) ?? 0 : 0;
|
|
45
|
+
r === 0 && g && m !== k && (N.push({ label: a[m], col: p.length }), k = m), l.push({
|
|
46
|
+
date: w,
|
|
47
|
+
count: g ? v : 0,
|
|
48
|
+
level: g ? X(v, s) : 0
|
|
48
49
|
}), i.setUTCDate(i.getUTCDate() + 1);
|
|
49
50
|
}
|
|
50
|
-
if (p.push(
|
|
51
|
+
if (p.push(l), i.getTime() > d.getTime() && p.length >= 52 || p.length > 60) break;
|
|
51
52
|
}
|
|
52
53
|
return {
|
|
53
54
|
weeks: p,
|
|
54
55
|
months: N,
|
|
55
|
-
streak:
|
|
56
|
-
activeDays: e.days.filter((
|
|
57
|
-
bestDay: Math.max(0, ...e.days.map((
|
|
56
|
+
streak: I(e.days),
|
|
57
|
+
activeDays: e.days.filter((l) => l.count > 0).length,
|
|
58
|
+
bestDay: Math.max(0, ...e.days.map((l) => l.count))
|
|
58
59
|
};
|
|
59
60
|
}
|
|
60
|
-
const U = 5,
|
|
61
|
+
const U = 5, G = [
|
|
61
62
|
"янв",
|
|
62
63
|
"фев",
|
|
63
64
|
"мар",
|
|
@@ -70,16 +71,16 @@ const U = 5, j = [
|
|
|
70
71
|
"окт",
|
|
71
72
|
"ноя",
|
|
72
73
|
"дек"
|
|
73
|
-
],
|
|
74
|
+
], B = ["Пн", "", "Ср", "", "Пт", "", ""], te = {
|
|
74
75
|
one: "действие",
|
|
75
76
|
few: "действия",
|
|
76
77
|
many: "действий"
|
|
77
78
|
};
|
|
78
79
|
function S(e, a) {
|
|
79
|
-
const
|
|
80
|
-
return
|
|
80
|
+
const s = e % 10, u = e % 100;
|
|
81
|
+
return s === 1 && u !== 11 ? a.one : s >= 2 && s <= 4 && (u < 10 || u >= 20) ? a.few : a.many;
|
|
81
82
|
}
|
|
82
|
-
function
|
|
83
|
+
function ne(e) {
|
|
83
84
|
return S(e, { one: "день", few: "дня", many: "дней" });
|
|
84
85
|
}
|
|
85
86
|
function K(e, a) {
|
|
@@ -91,40 +92,40 @@ function K(e, a) {
|
|
|
91
92
|
timeZone: "UTC"
|
|
92
93
|
});
|
|
93
94
|
}
|
|
94
|
-
const
|
|
95
|
-
root:
|
|
96
|
-
calendar:
|
|
95
|
+
const ae = "hhr", se = "hhc", le = "hha", re = "hhh", oe = "hht", ce = "hhm", ie = "hho", me = "hhn", ue = "hhd", he = "hhw", pe = "hhk", de = "hhe", fe = "hhf", ge = "hhi", Ee = "hhg", ye = "hhb", we = "hhp", ve = "hhq", be = "hhv", Ne = "hhl", ke = "hhz", Te = "hhj", De = "hhu", xe = "hhx", Me = "hhs", Ue = "hhy", n = {
|
|
96
|
+
root: ae,
|
|
97
|
+
calendar: se,
|
|
97
98
|
aside: le,
|
|
98
|
-
header:
|
|
99
|
-
title:
|
|
100
|
-
main:
|
|
101
|
-
omonth:
|
|
102
|
-
nest:
|
|
103
|
-
dow:
|
|
104
|
-
weeks:
|
|
105
|
-
krow:
|
|
106
|
-
entry:
|
|
107
|
-
footer:
|
|
108
|
-
ihint:
|
|
109
|
-
gleg:
|
|
99
|
+
header: re,
|
|
100
|
+
title: oe,
|
|
101
|
+
main: ce,
|
|
102
|
+
omonth: ie,
|
|
103
|
+
nest: me,
|
|
104
|
+
dow: ue,
|
|
105
|
+
weeks: he,
|
|
106
|
+
krow: pe,
|
|
107
|
+
entry: de,
|
|
108
|
+
footer: fe,
|
|
109
|
+
ihint: ge,
|
|
110
|
+
gleg: Ee,
|
|
110
111
|
brand: ye,
|
|
111
|
-
plist:
|
|
112
|
-
qkpi:
|
|
113
|
-
value:
|
|
114
|
-
label:
|
|
115
|
-
zyears:
|
|
116
|
-
jump:
|
|
117
|
-
up:
|
|
118
|
-
xbtn:
|
|
119
|
-
selected:
|
|
120
|
-
ytip:
|
|
112
|
+
plist: we,
|
|
113
|
+
qkpi: ve,
|
|
114
|
+
value: be,
|
|
115
|
+
label: Ne,
|
|
116
|
+
zyears: ke,
|
|
117
|
+
jump: Te,
|
|
118
|
+
up: De,
|
|
119
|
+
xbtn: xe,
|
|
120
|
+
selected: Me,
|
|
121
|
+
ytip: Ue
|
|
121
122
|
};
|
|
122
|
-
function
|
|
123
|
+
function $e({
|
|
123
124
|
weeks: e,
|
|
124
125
|
months: a,
|
|
125
|
-
cell:
|
|
126
|
+
cell: s,
|
|
126
127
|
gap: u,
|
|
127
|
-
step:
|
|
128
|
+
step: E,
|
|
128
129
|
weekdays: d,
|
|
129
130
|
focusDate: f,
|
|
130
131
|
locale: c,
|
|
@@ -133,8 +134,8 @@ function Ue({
|
|
|
133
134
|
onShowTip: N,
|
|
134
135
|
onHideTip: k
|
|
135
136
|
}) {
|
|
136
|
-
function D(
|
|
137
|
-
const { key: r } =
|
|
137
|
+
function D(l) {
|
|
138
|
+
const { key: r } = l;
|
|
138
139
|
if (r !== "ArrowLeft" && r !== "ArrowRight" && r !== "ArrowUp" && r !== "ArrowDown" || !e.length) return;
|
|
139
140
|
let o = -1, m = -1;
|
|
140
141
|
for (let x = 0; x < e.length; x++) {
|
|
@@ -145,15 +146,15 @@ function Ue({
|
|
|
145
146
|
}
|
|
146
147
|
}
|
|
147
148
|
if (o < 0) return;
|
|
148
|
-
|
|
149
|
-
let
|
|
150
|
-
r === "ArrowDown" ?
|
|
151
|
-
const g = e[
|
|
149
|
+
l.preventDefault();
|
|
150
|
+
let y = o, w = m;
|
|
151
|
+
r === "ArrowDown" ? w = Math.min(6, m + 1) : r === "ArrowUp" ? w = Math.max(0, m - 1) : r === "ArrowRight" ? y = Math.min(e.length - 1, o + 1) : r === "ArrowLeft" && (y = Math.max(0, o - 1));
|
|
152
|
+
const g = e[y][w];
|
|
152
153
|
p(g.date);
|
|
153
|
-
const
|
|
154
|
+
const v = l.currentTarget.querySelector(
|
|
154
155
|
`[data-date="${g.date}"]`
|
|
155
156
|
);
|
|
156
|
-
|
|
157
|
+
v == null || v.focus();
|
|
157
158
|
}
|
|
158
159
|
return /* @__PURE__ */ t.createElement(t.Fragment, null, /* @__PURE__ */ t.createElement(
|
|
159
160
|
"div",
|
|
@@ -161,32 +162,32 @@ function Ue({
|
|
|
161
162
|
className: n.main,
|
|
162
163
|
"aria-hidden": !0,
|
|
163
164
|
style: {
|
|
164
|
-
width: e.length ? e.length *
|
|
165
|
+
width: e.length ? e.length * E - u : void 0
|
|
165
166
|
}
|
|
166
167
|
},
|
|
167
|
-
a.map((
|
|
168
|
+
a.map((l) => /* @__PURE__ */ t.createElement(
|
|
168
169
|
"span",
|
|
169
170
|
{
|
|
170
|
-
key: `${
|
|
171
|
+
key: `${l.label}-${l.col}`,
|
|
171
172
|
className: n.omonth,
|
|
172
|
-
style: { left:
|
|
173
|
+
style: { left: l.col * E }
|
|
173
174
|
},
|
|
174
|
-
|
|
175
|
+
l.label
|
|
175
176
|
))
|
|
176
|
-
), /* @__PURE__ */ t.createElement("div", { className: n.nest }, /* @__PURE__ */ t.createElement("div", { className: n.dow, "aria-hidden": !0 }, (d.length >= 7 ? d :
|
|
177
|
-
(
|
|
177
|
+
), /* @__PURE__ */ t.createElement("div", { className: n.nest }, /* @__PURE__ */ t.createElement("div", { className: n.dow, "aria-hidden": !0 }, (d.length >= 7 ? d : B).slice(0, 7).map(
|
|
178
|
+
(l, r) => l ? /* @__PURE__ */ t.createElement("span", { key: r }, l) : /* @__PURE__ */ t.createElement("span", { key: r })
|
|
178
179
|
)), /* @__PURE__ */ t.createElement(
|
|
179
180
|
"div",
|
|
180
181
|
{
|
|
181
182
|
className: n.weeks,
|
|
182
183
|
style: {
|
|
183
|
-
gridTemplateColumns: `repeat(${e.length}, ${
|
|
184
|
+
gridTemplateColumns: `repeat(${e.length}, ${s}px)`
|
|
184
185
|
},
|
|
185
186
|
role: "grid",
|
|
186
187
|
"aria-label": "График активности",
|
|
187
188
|
onKeyDown: D
|
|
188
189
|
},
|
|
189
|
-
e.map((
|
|
190
|
+
e.map((l, r) => /* @__PURE__ */ t.createElement("div", { key: r, className: n.krow, role: "row" }, l.map((o) => /* @__PURE__ */ t.createElement(
|
|
190
191
|
"button",
|
|
191
192
|
{
|
|
192
193
|
key: o.date,
|
|
@@ -207,8 +208,8 @@ function Ue({
|
|
|
207
208
|
))))
|
|
208
209
|
)));
|
|
209
210
|
}
|
|
210
|
-
function
|
|
211
|
-
return e ?
|
|
211
|
+
function Ae({ tip: e, locale: a, unit: s }) {
|
|
212
|
+
return e ? J(
|
|
212
213
|
/* @__PURE__ */ t.createElement(
|
|
213
214
|
"div",
|
|
214
215
|
{
|
|
@@ -216,49 +217,55 @@ function $e({ tip: e, locale: a, unit: l }) {
|
|
|
216
217
|
style: {
|
|
217
218
|
left: e.x,
|
|
218
219
|
top: e.y,
|
|
219
|
-
zIndex:
|
|
220
|
+
zIndex: Q() + 10
|
|
220
221
|
},
|
|
221
222
|
role: "tooltip"
|
|
222
223
|
},
|
|
223
224
|
/* @__PURE__ */ t.createElement("div", null, K(e.date, a)),
|
|
224
|
-
/* @__PURE__ */ t.createElement("div", null, e.count, " ", S(e.count,
|
|
225
|
+
/* @__PURE__ */ t.createElement("div", null, e.count, " ", S(e.count, s))
|
|
225
226
|
),
|
|
226
227
|
document.body
|
|
227
228
|
) : null;
|
|
228
229
|
}
|
|
229
|
-
function
|
|
230
|
+
function Ce({
|
|
230
231
|
yearPage: e,
|
|
231
232
|
yearPageCount: a,
|
|
232
|
-
visibleYears:
|
|
233
|
+
visibleYears: s,
|
|
233
234
|
activeYear: u,
|
|
234
|
-
currentYear:
|
|
235
|
+
currentYear: E,
|
|
235
236
|
onYearPageChange: d,
|
|
236
237
|
onYearChange: f
|
|
237
238
|
}) {
|
|
238
239
|
return /* @__PURE__ */ t.createElement("nav", { className: n.zyears, "aria-label": "Год" }, a > 1 ? /* @__PURE__ */ t.createElement(
|
|
239
|
-
|
|
240
|
+
H,
|
|
240
241
|
{
|
|
241
|
-
|
|
242
|
+
variant: "ghost",
|
|
243
|
+
size: "s",
|
|
244
|
+
width: "s",
|
|
242
245
|
className: n.up,
|
|
243
246
|
"aria-label": "Предыдущие годы",
|
|
244
247
|
disabled: e <= 0,
|
|
245
248
|
onClick: () => d((c) => Math.max(0, c - 1))
|
|
246
249
|
},
|
|
247
250
|
"‹"
|
|
248
|
-
) : null, /* @__PURE__ */ t.createElement("div", { className: n.jump, role: "group" },
|
|
249
|
-
|
|
251
|
+
) : null, /* @__PURE__ */ t.createElement("div", { className: n.jump, role: "group" }, s.map((c) => /* @__PURE__ */ t.createElement(
|
|
252
|
+
H,
|
|
250
253
|
{
|
|
251
254
|
key: c,
|
|
252
|
-
|
|
255
|
+
variant: "ghost",
|
|
256
|
+
size: "s",
|
|
257
|
+
width: "s",
|
|
253
258
|
"aria-pressed": c === u,
|
|
254
|
-
className:
|
|
255
|
-
onClick: () => f == null ? void 0 : f(c ===
|
|
259
|
+
className: _(n.xbtn, c === u && n.selected),
|
|
260
|
+
onClick: () => f == null ? void 0 : f(c === E ? null : c)
|
|
256
261
|
},
|
|
257
262
|
c
|
|
258
263
|
))), a > 1 ? /* @__PURE__ */ t.createElement(
|
|
259
|
-
|
|
264
|
+
H,
|
|
260
265
|
{
|
|
261
|
-
|
|
266
|
+
variant: "ghost",
|
|
267
|
+
size: "s",
|
|
268
|
+
width: "s",
|
|
262
269
|
className: n.up,
|
|
263
270
|
"aria-label": "Следующие годы",
|
|
264
271
|
disabled: e >= a - 1,
|
|
@@ -267,47 +274,47 @@ function Ae({
|
|
|
267
274
|
"›"
|
|
268
275
|
) : null);
|
|
269
276
|
}
|
|
270
|
-
function
|
|
277
|
+
function Se() {
|
|
271
278
|
if (typeof document > "u")
|
|
272
279
|
return { cell: 12, gap: 3, step: 15 };
|
|
273
|
-
const e = getComputedStyle(document.documentElement), a = parseFloat(e.getPropertyValue("--healthmap-cell").trim()) || 12,
|
|
274
|
-
return { cell: a, gap:
|
|
280
|
+
const e = getComputedStyle(document.documentElement), a = parseFloat(e.getPropertyValue("--healthmap-cell").trim()) || 12, s = parseFloat(e.getPropertyValue("--healthmap-gap").trim()) || 3;
|
|
281
|
+
return { cell: a, gap: s, step: a + s };
|
|
275
282
|
}
|
|
276
|
-
function
|
|
283
|
+
function qe({
|
|
277
284
|
data: e,
|
|
278
285
|
loading: a = !1,
|
|
279
|
-
year:
|
|
286
|
+
year: s = null,
|
|
280
287
|
onYearChange: u,
|
|
281
|
-
hint:
|
|
288
|
+
hint: E,
|
|
282
289
|
brandName: d = "Активность",
|
|
283
290
|
brandSub: f = "сводка",
|
|
284
|
-
unit: c =
|
|
285
|
-
months: i =
|
|
291
|
+
unit: c = te,
|
|
292
|
+
months: i = G,
|
|
286
293
|
locale: p = "ru-RU",
|
|
287
294
|
loadingLabel: N = "Загрузка…",
|
|
288
295
|
lastYearLabel: k = "последний год",
|
|
289
|
-
weekdays: D =
|
|
290
|
-
className:
|
|
296
|
+
weekdays: D = B,
|
|
297
|
+
className: l
|
|
291
298
|
}) {
|
|
292
|
-
const [r, o] =
|
|
293
|
-
() =>
|
|
299
|
+
const [r, o] = z(0), [m, y] = z(null), [w, g] = z(""), { cell: v, gap: x, step: $ } = Se(), A = i.length >= 12 ? i : G, b = Y(
|
|
300
|
+
() => ee(e, A),
|
|
294
301
|
[e, A]
|
|
295
302
|
);
|
|
296
|
-
|
|
297
|
-
const h =
|
|
303
|
+
j(() => {
|
|
304
|
+
const h = b.weeks.flat();
|
|
298
305
|
if (!h.length) {
|
|
299
306
|
g("");
|
|
300
307
|
return;
|
|
301
308
|
}
|
|
302
309
|
const M = h.find((T) => T.count > 0);
|
|
303
310
|
g((M ?? h[0]).date);
|
|
304
|
-
}, [
|
|
311
|
+
}, [b.weeks]);
|
|
305
312
|
const C = Y(() => {
|
|
306
313
|
var M;
|
|
307
314
|
const h = (M = e == null ? void 0 : e.years) != null && M.length ? [...e.years] : [(/* @__PURE__ */ new Date()).getUTCFullYear(), (/* @__PURE__ */ new Date()).getUTCFullYear() - 1];
|
|
308
|
-
return [...new Set(h)].sort((T,
|
|
309
|
-
}, [e == null ? void 0 : e.years]), F = (/* @__PURE__ */ new Date()).getUTCFullYear(), R =
|
|
310
|
-
|
|
315
|
+
return [...new Set(h)].sort((T, Z) => Z - T);
|
|
316
|
+
}, [e == null ? void 0 : e.years]), F = (/* @__PURE__ */ new Date()).getUTCFullYear(), R = s ?? (e == null ? void 0 : e.year) ?? F, q = (e == null ? void 0 : e.total) ?? 0, O = Math.max(1, Math.ceil(C.length / U));
|
|
317
|
+
j(() => {
|
|
311
318
|
const h = C.indexOf(R);
|
|
312
319
|
h < 0 || o(Math.floor(h / U));
|
|
313
320
|
}, [R, C]);
|
|
@@ -315,34 +322,34 @@ function Le({
|
|
|
315
322
|
r * U,
|
|
316
323
|
r * U + U
|
|
317
324
|
);
|
|
318
|
-
function
|
|
325
|
+
function V(h, M) {
|
|
319
326
|
const T = M.getBoundingClientRect();
|
|
320
|
-
|
|
327
|
+
y({
|
|
321
328
|
date: h.date,
|
|
322
329
|
count: h.count,
|
|
323
330
|
x: T.left + T.width / 2,
|
|
324
331
|
y: T.top
|
|
325
332
|
});
|
|
326
333
|
}
|
|
327
|
-
const
|
|
328
|
-
return /* @__PURE__ */ t.createElement("div", { className:
|
|
329
|
-
|
|
334
|
+
const W = a ? N : `${q} ${S(q, c)} за ${s == null || s === F ? k : `${s} год`}`;
|
|
335
|
+
return /* @__PURE__ */ t.createElement("div", { className: _(n.root, l) }, /* @__PURE__ */ t.createElement("section", { className: n.calendar, "aria-label": "Календарь активности" }, /* @__PURE__ */ t.createElement("div", { className: n.header }, /* @__PURE__ */ t.createElement("h3", { className: n.title }, W)), /* @__PURE__ */ t.createElement(
|
|
336
|
+
$e,
|
|
330
337
|
{
|
|
331
|
-
weeks:
|
|
332
|
-
months:
|
|
333
|
-
cell:
|
|
338
|
+
weeks: b.weeks,
|
|
339
|
+
months: b.months,
|
|
340
|
+
cell: v,
|
|
334
341
|
gap: x,
|
|
335
342
|
step: $,
|
|
336
343
|
weekdays: D,
|
|
337
|
-
focusDate:
|
|
344
|
+
focusDate: w,
|
|
338
345
|
locale: p,
|
|
339
346
|
unit: c,
|
|
340
347
|
onFocusDate: g,
|
|
341
|
-
onShowTip:
|
|
342
|
-
onHideTip: () =>
|
|
348
|
+
onShowTip: V,
|
|
349
|
+
onHideTip: () => y(null)
|
|
343
350
|
}
|
|
344
|
-
), /* @__PURE__ */ t.createElement("div", { className: n.footer }, /* @__PURE__ */ t.createElement("span", { className: n.ihint },
|
|
345
|
-
|
|
351
|
+
), /* @__PURE__ */ t.createElement("div", { className: n.footer }, /* @__PURE__ */ t.createElement("span", { className: n.ihint }, E ?? ""), /* @__PURE__ */ t.createElement(
|
|
352
|
+
Ce,
|
|
346
353
|
{
|
|
347
354
|
yearPage: r,
|
|
348
355
|
yearPageCount: O,
|
|
@@ -352,8 +359,8 @@ function Le({
|
|
|
352
359
|
onYearPageChange: o,
|
|
353
360
|
onYearChange: u
|
|
354
361
|
}
|
|
355
|
-
), /* @__PURE__ */ t.createElement("div", { className: n.gleg, "aria-hidden": !0 }, /* @__PURE__ */ t.createElement("span", null, "Меньше"), [0, 1, 2, 3, 4].map((h) => /* @__PURE__ */ t.createElement("span", { key: h, className: n.entry, "data-level": h })), /* @__PURE__ */ t.createElement("span", null, "Больше")))), /* @__PURE__ */ t.createElement("aside", { className: n.aside, "aria-label": "Сводка" }, /* @__PURE__ */ t.createElement("div", { className: n.brand }, /* @__PURE__ */ t.createElement("span", null, d), /* @__PURE__ */ t.createElement("span", null, f)), /* @__PURE__ */ t.createElement("div", { className: n.plist }, /* @__PURE__ */ t.createElement("div", { className: n.qkpi }, /* @__PURE__ */ t.createElement("span", { className: n.value }, a ? "—" :
|
|
362
|
+
), /* @__PURE__ */ t.createElement("div", { className: n.gleg, "aria-hidden": !0 }, /* @__PURE__ */ t.createElement("span", null, "Меньше"), [0, 1, 2, 3, 4].map((h) => /* @__PURE__ */ t.createElement("span", { key: h, className: n.entry, "data-level": h })), /* @__PURE__ */ t.createElement("span", null, "Больше")))), /* @__PURE__ */ t.createElement("aside", { className: n.aside, "aria-label": "Сводка" }, /* @__PURE__ */ t.createElement("div", { className: n.brand }, /* @__PURE__ */ t.createElement("span", null, d), /* @__PURE__ */ t.createElement("span", null, f)), /* @__PURE__ */ t.createElement("div", { className: n.plist }, /* @__PURE__ */ t.createElement("div", { className: n.qkpi }, /* @__PURE__ */ t.createElement("span", { className: n.value }, a ? "—" : b.streak), /* @__PURE__ */ t.createElement("span", { className: n.label }, "серия, ", ne(b.streak))), /* @__PURE__ */ t.createElement("div", { className: n.qkpi }, /* @__PURE__ */ t.createElement("span", { className: n.value }, a ? "—" : b.activeDays), /* @__PURE__ */ t.createElement("span", { className: n.label }, "активных дней")), /* @__PURE__ */ t.createElement("div", { className: n.qkpi }, /* @__PURE__ */ t.createElement("span", { className: n.value }, a ? "—" : b.bestDay), /* @__PURE__ */ t.createElement("span", { className: n.label }, "макс. за день")))), /* @__PURE__ */ t.createElement(Ae, { tip: m, locale: p, unit: c }));
|
|
356
363
|
}
|
|
357
364
|
export {
|
|
358
|
-
|
|
365
|
+
qe as H
|
|
359
366
|
};
|
package/dist/Healthmap.js
CHANGED
package/dist/Layout.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer elcrm-components{.slr{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;box-sizing:border-box;background:var(--shell-background-muted);margin:var(--layout-margin);padding:var(--layout-padding);max-width:var(--layout-max-width);gap:0}.slx{height:var(--layout-height);max-height:var(--layout-height);overflow:hidden}.slm{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain}.slr:not(.slx){height:auto;max-height:none;overflow:visible}.slr:not(.slx) .slm{overflow:visible;flex:0 1 auto;min-height:auto}.sls{flex-direction:row;align-items:stretch;gap:var(--layout-gap)}.slb{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;overflow:hidden;background:var(--layout-main-background);border-radius:var(--layout-main-radius);box-shadow:var(--layout-main-shadow);border:var(--layout-main-border)}.slr:not(.slx) .slb{overflow:visible}.sla{display:flex;flex-direction:column;flex:0 0 var(--sidebar-width);width:var(--sidebar-width);min-width:0;min-height:0;align-self:stretch}.slk{overflow:hidden}.sla:not(.slk){overflow:auto}.sla>*{flex:1 1 auto;min-height:0;width:100%;height:100%;max-height:100%}@media (max-width: 900px){.sla{flex-basis:72px;width:72px}}.slh,.slf{flex:0 0 auto;min-width:0}}
|
|
1
|
+
@layer elcrm-components{.slr{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;box-sizing:border-box;background:var(--shell-background-muted);margin:var(--layout-margin);padding:var(--layout-padding);max-width:var(--layout-max-width);gap:0}.slx{height:var(--layout-height);max-height:var(--layout-height);overflow:hidden}.slm{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;box-sizing:border-box;padding:var(--layout-main-padding)}.slr:not(.slx){height:auto;max-height:none;overflow:visible}.slr:not(.slx) .slm{overflow:visible;flex:0 1 auto;min-height:auto}.sls{flex-direction:row;align-items:stretch;gap:var(--layout-gap)}.slb{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;overflow:hidden;background:var(--layout-main-background);border-radius:var(--layout-main-radius);box-shadow:var(--layout-main-shadow);border:var(--layout-main-border)}.slr:not(.slx) .slb{overflow:visible}.sla{display:flex;flex-direction:column;flex:0 0 var(--sidebar-width);width:var(--sidebar-width);min-width:0;min-height:0;align-self:stretch}.slk{overflow:hidden}.sla:not(.slk){overflow:auto}.sla>*{flex:1 1 auto;min-height:0;width:100%;height:100%;max-height:100%}@media (max-width: 900px){.sla{flex-basis:72px;width:72px}}.slh,.slf{flex:0 0 auto;min-width:0}}
|
package/dist/Layout.d.ts
CHANGED
|
@@ -26,7 +26,9 @@ export type LayoutFixedSlot = "header" | "footer" | "sidebar";
|
|
|
26
26
|
* </Layout>
|
|
27
27
|
* ```
|
|
28
28
|
*
|
|
29
|
-
* Токены: `--layout-height`, `--layout-padding`, `--layout-
|
|
29
|
+
* Токены: `--layout-height`, `--layout-padding`, `--layout-main-padding`,
|
|
30
|
+
* `--layout-margin`, `--layout-max-width`, `--shell-*`.
|
|
31
|
+
* `--layout-main-padding` — отступ внутри `<main>` (между шапкой и контентом).
|
|
30
32
|
*/
|
|
31
33
|
export type LayoutProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
32
34
|
/** Левая колонка (обычно `<Sidebar />`) — ряд: сайдбар + контент */
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import l from "react";
|
|
2
|
+
import { Button as w } from "@elcrm/button";
|
|
3
|
+
import { B as y } from "./Badge-BjScAXGy.js";
|
|
4
|
+
import { b as B } from "./badgeText-CRzlIzi3.js";
|
|
5
|
+
import { c as p } from "./cx-CcykAxZN.js";
|
|
6
|
+
import { h as E } from "./rovingKeys-Di9N1Nct.js";
|
|
7
|
+
import { u as N } from "./useControllableValue-BaE0VR5d.js";
|
|
8
|
+
import './Menu.css';const z = "lnr", C = "lnv", K = "lni", M = "lnd", D = "lna", I = "lnu", e = {
|
|
9
|
+
root: z,
|
|
10
|
+
vertical: C,
|
|
11
|
+
item: K,
|
|
12
|
+
dot: M,
|
|
13
|
+
active: D,
|
|
14
|
+
underline: I
|
|
15
|
+
};
|
|
16
|
+
function G({
|
|
17
|
+
items: n,
|
|
18
|
+
vertical: r,
|
|
19
|
+
variant: m = "plain",
|
|
20
|
+
value: c,
|
|
21
|
+
defaultValue: s,
|
|
22
|
+
onValueChange: i,
|
|
23
|
+
children: g,
|
|
24
|
+
className: R,
|
|
25
|
+
...h
|
|
26
|
+
}) {
|
|
27
|
+
const [t, v] = N(
|
|
28
|
+
c,
|
|
29
|
+
s,
|
|
30
|
+
i
|
|
31
|
+
), x = (n ?? []).filter((a) => !a.disabled).map((a) => a.value), k = m === "line", d = l.useRef(null), u = i || c !== void 0 || s !== void 0;
|
|
32
|
+
return /* @__PURE__ */ l.createElement(
|
|
33
|
+
"nav",
|
|
34
|
+
{
|
|
35
|
+
ref: d,
|
|
36
|
+
className: p(e.root, r && e.vertical, k && e.underline, R),
|
|
37
|
+
onKeyDown: u ? (a) => E(a, {
|
|
38
|
+
values: x,
|
|
39
|
+
value: t,
|
|
40
|
+
onSelect: v,
|
|
41
|
+
vertical: r,
|
|
42
|
+
focusRoot: d.current
|
|
43
|
+
}) : void 0,
|
|
44
|
+
...h
|
|
45
|
+
},
|
|
46
|
+
n == null ? void 0 : n.map((a) => {
|
|
47
|
+
const o = a.active ?? (t != null && a.value === t), b = B(a.badge);
|
|
48
|
+
return /* @__PURE__ */ l.createElement(
|
|
49
|
+
w,
|
|
50
|
+
{
|
|
51
|
+
key: a.value,
|
|
52
|
+
variant: "ghost",
|
|
53
|
+
size: "m",
|
|
54
|
+
width: "s",
|
|
55
|
+
className: p(e.item, o && e.active),
|
|
56
|
+
"data-value": a.value,
|
|
57
|
+
"data-active": o ? "true" : void 0,
|
|
58
|
+
"aria-current": o ? "page" : void 0,
|
|
59
|
+
"aria-label": a.ariaLabel,
|
|
60
|
+
tabIndex: u ? o ? 0 : -1 : void 0,
|
|
61
|
+
disabled: a.disabled,
|
|
62
|
+
onClick: () => {
|
|
63
|
+
var f;
|
|
64
|
+
(f = a.onClick) == null || f.call(a), v(a.value);
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
a.label,
|
|
68
|
+
b != null ? /* @__PURE__ */ l.createElement(y, { className: e.dot, tone: "accent", size: "s" }, b) : null
|
|
69
|
+
);
|
|
70
|
+
}),
|
|
71
|
+
g
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
export {
|
|
75
|
+
G as M
|
|
76
|
+
};
|
package/dist/Menu.d.ts
CHANGED
|
@@ -24,6 +24,11 @@ export type MenuItem = {
|
|
|
24
24
|
* `0`, `null`, `""` — не рендерим.
|
|
25
25
|
*/
|
|
26
26
|
badge?: number | string | null;
|
|
27
|
+
/**
|
|
28
|
+
* Подпись для скринридера, если `label` — иконка без текста.
|
|
29
|
+
* Попадает в `aria-label` кнопки пункта.
|
|
30
|
+
*/
|
|
31
|
+
ariaLabel?: string;
|
|
27
32
|
};
|
|
28
33
|
/**
|
|
29
34
|
* Props компонента {@link Menu}.
|
package/dist/Menu.js
CHANGED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import t from "react";
|
|
2
|
+
import { c as i } from "./cx-CcykAxZN.js";
|
|
3
|
+
import './PageHead.css';const u = "sdr", f = "sdk", p = "sdw", E = "sdt", N = "sdh", h = "sdn", g = "sdu", v = "sds", w = "sda", x = "sdc", e = {
|
|
4
|
+
root: u,
|
|
5
|
+
kept: f,
|
|
6
|
+
wrap: p,
|
|
7
|
+
textcol: E,
|
|
8
|
+
heading: N,
|
|
9
|
+
name: h,
|
|
10
|
+
usup: g,
|
|
11
|
+
subtitle: v,
|
|
12
|
+
actions: w,
|
|
13
|
+
children: x
|
|
14
|
+
};
|
|
15
|
+
function k(n) {
|
|
16
|
+
return !(n == null || n === !1 || n === "" || typeof n == "number" && n === 0 || n === "0");
|
|
17
|
+
}
|
|
18
|
+
function P({
|
|
19
|
+
title: n,
|
|
20
|
+
sup: s,
|
|
21
|
+
subtitle: a,
|
|
22
|
+
actions: l,
|
|
23
|
+
sticky: r,
|
|
24
|
+
headingLevel: o = "h1",
|
|
25
|
+
className: m,
|
|
26
|
+
children: c
|
|
27
|
+
}) {
|
|
28
|
+
const d = o;
|
|
29
|
+
return /* @__PURE__ */ t.createElement("div", { className: i(e.root, r && e.kept, m) }, /* @__PURE__ */ t.createElement("div", { className: e.wrap }, /* @__PURE__ */ t.createElement("div", { className: e.textcol }, /* @__PURE__ */ t.createElement(d, { className: e.heading }, /* @__PURE__ */ t.createElement("span", { className: e.name }, n), k(s) ? /* @__PURE__ */ t.createElement("span", { className: e.usup }, s) : null), a != null ? /* @__PURE__ */ t.createElement("p", { className: e.subtitle }, a) : null), l != null ? /* @__PURE__ */ t.createElement("div", { className: e.actions }, l) : null), c != null ? /* @__PURE__ */ t.createElement("div", { className: e.children }, c) : null);
|
|
30
|
+
}
|
|
31
|
+
export {
|
|
32
|
+
P
|
|
33
|
+
};
|
package/dist/PageHead.d.ts
CHANGED
|
@@ -28,6 +28,12 @@ export type PageHeadProps = {
|
|
|
28
28
|
sup?: React.ReactNode;
|
|
29
29
|
/** Подзаголовок */
|
|
30
30
|
subtitle?: React.ReactNode;
|
|
31
|
+
/**
|
|
32
|
+
* HTML-тег заголовка.
|
|
33
|
+
* По умолчанию `h1`: PageHead — заголовок страницы.
|
|
34
|
+
* `div` — если семантический заголовок уже есть во внешнем layout.
|
|
35
|
+
*/
|
|
36
|
+
headingLevel?: "h1" | "h2" | "div";
|
|
31
37
|
/** Кнопки / поиск справа в одной строке с заголовком */
|
|
32
38
|
actions?: React.ReactNode;
|
|
33
39
|
/**
|
|
@@ -55,4 +61,4 @@ export type PageHeadProps = {
|
|
|
55
61
|
*
|
|
56
62
|
* @see PageShell, Section, Header, Badge
|
|
57
63
|
*/
|
|
58
|
-
export declare function PageHead({ title, sup, subtitle, actions, sticky, className, children, }: PageHeadProps): React.JSX.Element;
|
|
64
|
+
export declare function PageHead({ title, sup, subtitle, actions, sticky, headingLevel, className, children, }: PageHeadProps): React.JSX.Element;
|
package/dist/PageHead.js
CHANGED