urfu-ui-kit-react 2.1.6 → 2.1.7-next.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/dist/components/Modal/useModalTitleClearance.js +5 -5
- package/dist/components/Multiselect/Multiselect.js +1 -1
- package/dist/components/StickyActionBar/StickyActionBar.d.ts.map +1 -1
- package/dist/components/StickyActionBar/StickyActionBar.js +45 -58
- package/dist/components/Table/Filter/FilterStringBox.d.ts.map +1 -1
- package/dist/components/Table/Filter/FilterStringBox.js +45 -40
- package/dist/components/Table/Filter/filterLoading.d.ts +4 -1
- package/dist/components/Table/Filter/filterLoading.d.ts.map +1 -1
- package/dist/components/Table/Filter/filterLoading.js +6 -2
- package/dist/components/Table/Filter/useServerFilterOptions.d.ts +4 -1
- package/dist/components/Table/Filter/useServerFilterOptions.d.ts.map +1 -1
- package/dist/components/Table/Filter/useServerFilterOptions.js +28 -25
- package/dist/components/Table/Table.dataPipeline.js +37 -37
- package/dist/components/Table/Table.filterTypes.d.ts +5 -0
- package/dist/components/Table/Table.filterTypes.d.ts.map +1 -1
- package/dist/components/Table/Table.js +13 -13
- package/dist/components/Table/useTableVirtualization.js +20 -20
- package/dist/components/Tabs/useTabsOverflow.js +24 -24
- package/dist/components/Tooltip/Tooltip.js +7 -7
- package/dist/dev/index.js +3 -4
- package/dist/dev/types/vanilla/src/dev/panelStyles.d.ts +1 -1
- package/dist/shared/kitCopy.js +1 -1
- package/dist/style-no-fonts.css +1 -1
- package/dist/style.css +1 -1
- package/dist/style.layer.css +1 -1
- package/dist/style.shell.css +1 -1
- package/dist/utils/describeError.d.ts.map +1 -1
- package/dist/utils/inputMode.d.ts +5 -0
- package/dist/utils/inputMode.d.ts.map +1 -1
- package/dist/vanilla/core/dateMask.js +6 -6
- package/dist/vanilla/core/describeError.js +38 -38
- package/dist/vanilla/core/inputMode.js +18 -11
- package/dist/vanilla/core/kitRegistry.js +4 -4
- package/dist/vanilla/core/tabsScroll.js +5 -5
- package/package.json +1 -1
- package/dist/shared/devLauncherOffset.d.ts +0 -8
- package/dist/shared/devLauncherOffset.d.ts.map +0 -1
- package/dist/vanilla/core/devLauncherOffset.js +0 -20
|
@@ -23,15 +23,15 @@ import { useMobileFilterColumns$u as wr } from "./useMobileFilterColumns.js";
|
|
|
23
23
|
import { nextCardMode$u as xr, getStickyLeft$u as Fr } from "./Table.helpers.js";
|
|
24
24
|
const Or = (i) => i.map((T, y) => ({ ...T, tableData: { number: y + 1 } })), Wr = (i) => {
|
|
25
25
|
if (typeof i == "number") return i > 0 ? i : void 0;
|
|
26
|
-
if (typeof i == "string" && /^\d+(\.\d+)?(px)?$/.test(i.trim())) return parseFloat(i);
|
|
26
|
+
if (typeof i == "string" && /^\d+(\.\d+)?(px)?$/.test(i.trim())) return Number.parseFloat(i);
|
|
27
27
|
}, Pr = ({
|
|
28
28
|
data: i,
|
|
29
29
|
columns: T,
|
|
30
30
|
borders: y = "horizontal",
|
|
31
31
|
striped: Me,
|
|
32
32
|
linesNotActive: Te,
|
|
33
|
-
fixedHeader:
|
|
34
|
-
headerBorders:
|
|
33
|
+
fixedHeader: Ne,
|
|
34
|
+
headerBorders: ze,
|
|
35
35
|
tdStyle: Ve,
|
|
36
36
|
thStyle: je,
|
|
37
37
|
cellStyle: G,
|
|
@@ -39,7 +39,7 @@ const Or = (i) => i.map((T, y) => ({ ...T, tableData: { number: y + 1 } })), Wr
|
|
|
39
39
|
thContentStyle: Le,
|
|
40
40
|
cellContentStyle: Q,
|
|
41
41
|
contentForEmptyTable: _e = /* @__PURE__ */ o("p", { children: "Ничего не найдено" }),
|
|
42
|
-
messageForEmptyTable:
|
|
42
|
+
messageForEmptyTable: N,
|
|
43
43
|
messageForEmptyFilter: X = "Ничего не найдено. Измените или сбросьте фильтры.",
|
|
44
44
|
mobileMessageForEmptyTable: Y,
|
|
45
45
|
className: Z = "",
|
|
@@ -62,7 +62,7 @@ const Or = (i) => i.map((T, y) => ({ ...T, tableData: { number: y + 1 } })), Wr
|
|
|
62
62
|
setFilteredTableData: re,
|
|
63
63
|
withoutHeader: oe,
|
|
64
64
|
filterResetParam: se,
|
|
65
|
-
filterMode:
|
|
65
|
+
filterMode: z = "client",
|
|
66
66
|
filters: Xe,
|
|
67
67
|
defaultFilters: Ye,
|
|
68
68
|
onFiltersChange: Ze,
|
|
@@ -110,7 +110,7 @@ const Or = (i) => i.map((T, y) => ({ ...T, tableData: { number: y + 1 } })), Wr
|
|
|
110
110
|
setLookColumnWidths: Ht,
|
|
111
111
|
handleMouseDown: It,
|
|
112
112
|
thRefs: Mt
|
|
113
|
-
} = br(g, C), [Tt, ue] = H(void 0), [
|
|
113
|
+
} = br(g, C), [Tt, ue] = H(void 0), [Nt, _] = H([]), [zt, Vt] = H(void 0), jt = U(() => g.filter((e) => e.hidden !== !0), [g]), { filters: he, setFilters: ae, uncheckedValues: w, setUncheckedValues: Bt, filterDates: x, setFilterDates: Lt } = Sr({ filters: Xe, defaultFilters: Ye, onFiltersChange: Ze, filterResetParam: se }), {
|
|
114
114
|
sort: F,
|
|
115
115
|
setSort: _t,
|
|
116
116
|
hoveredSortCol: kt,
|
|
@@ -132,12 +132,12 @@ const Or = (i) => i.map((T, y) => ({ ...T, tableData: { number: y + 1 } })), Wr
|
|
|
132
132
|
columns: g,
|
|
133
133
|
sort: le && !ie ? void 0 : F,
|
|
134
134
|
uncheckedValues: w,
|
|
135
|
-
filterMode:
|
|
135
|
+
filterMode: z,
|
|
136
136
|
filterDates: x,
|
|
137
137
|
whereFindChecked: Ue,
|
|
138
138
|
filterEmptyLabel: ee,
|
|
139
139
|
parentDataField: p
|
|
140
|
-
})), pe = !r ||
|
|
140
|
+
})), pe = !r || zt === r, s = U(() => pe ? void 0 : fe(r), [pe, r]) ?? Nt, {
|
|
141
141
|
rootRef: u,
|
|
142
142
|
start: O,
|
|
143
143
|
visibleCount: Kt,
|
|
@@ -169,7 +169,7 @@ const Or = (i) => i.map((T, y) => ({ ...T, tableData: { number: y + 1 } })), Wr
|
|
|
169
169
|
const e = fe(r);
|
|
170
170
|
_(e), Vt(r), re && re(e);
|
|
171
171
|
}
|
|
172
|
-
}, [r, w, x, F,
|
|
172
|
+
}, [r, w, x, F, z]);
|
|
173
173
|
const Pt = (e) => {
|
|
174
174
|
const t = [...s];
|
|
175
175
|
t[e].parentDataOpened = !0, _(t);
|
|
@@ -213,7 +213,7 @@ const Or = (i) => i.map((T, y) => ({ ...T, tableData: { number: y + 1 } })), Wr
|
|
|
213
213
|
), Fe = P === void 0 ? -1 : n.findIndex((e, t) => M(e, t) === P), E = Fe >= 0 ? Fe : n.length - 1, v = n.map((e, t) => {
|
|
214
214
|
const l = Wr(e.width), f = h && t === E && l !== void 0 ? l : or[M(e, t)] ?? l;
|
|
215
215
|
return C && !e.resizeOff ? Math.max(L[e.field] || f || 0, e.width || 0) : f;
|
|
216
|
-
}), Oe = xe && v.length > 0 && v.every((e) => (e ?? 0) > 0), sr = Object.values(w).some((e) => e.length > 0) || x.some((e) => e.begin != null || e.end != null), We =
|
|
216
|
+
}), Oe = xe && v.length > 0 && v.every((e) => (e ?? 0) > 0), sr = Object.values(w).some((e) => e.length > 0) || x.some((e) => e.begin != null || e.end != null), We = z === "client" && sr && (r == null ? void 0 : r.length) > 0 && s.length === 0, De = We ? X : N, J = !B && !d && s.length === 0 && !!De;
|
|
217
217
|
I(() => {
|
|
218
218
|
const e = u.current;
|
|
219
219
|
if (!J || !e || typeof ResizeObserver > "u") return;
|
|
@@ -245,11 +245,11 @@ const Or = (i) => i.map((T, y) => ({ ...T, tableData: { number: y + 1 } })), Wr
|
|
|
245
245
|
fillColumnIndex: h ? E : -1
|
|
246
246
|
};
|
|
247
247
|
return /* @__PURE__ */ $(He, { children: [
|
|
248
|
-
c || d || (r == null ? void 0 : r.length) !== 0 || (r == null ? void 0 : r.length) === 0 &&
|
|
248
|
+
c || d || (r == null ? void 0 : r.length) !== 0 || (r == null ? void 0 : r.length) === 0 && N ? /* @__PURE__ */ o(
|
|
249
249
|
"div",
|
|
250
250
|
{
|
|
251
251
|
id: S,
|
|
252
|
-
className: `u-table${["horizontal", "vertical", "none", "both"].includes(y) ? dr(y) : ""}${Me ? " striped" : ""}${Te ? " not-active-lines" : ""}${
|
|
252
|
+
className: `u-table${["horizontal", "vertical", "none", "both"].includes(y) ? dr(y) : ""}${Me ? " striped" : ""}${Te ? " not-active-lines" : ""}${Ne ? " thead-fixed" : ""}${ze ? " header-borders" : ""}${Z ? " " + Z : ""}${m ? " u-table-mobile" : ""}`,
|
|
253
253
|
style: {
|
|
254
254
|
maxHeight: Je,
|
|
255
255
|
minHeight: Ke,
|
|
@@ -269,7 +269,7 @@ const Or = (i) => i.map((T, y) => ({ ...T, tableData: { number: y + 1 } })), Wr
|
|
|
269
269
|
isCardMode: m,
|
|
270
270
|
isLoading: c,
|
|
271
271
|
isLoadingPreloader: d,
|
|
272
|
-
messageForEmptyTable: Y === "off" || B ? void 0 : We ? X : Y ??
|
|
272
|
+
messageForEmptyTable: Y === "off" || B ? void 0 : We ? X : Y ?? N,
|
|
273
273
|
effectiveSortField: k,
|
|
274
274
|
effectiveSortDir: q,
|
|
275
275
|
applySort: At,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useRef as i, useState as A, useLayoutEffect as
|
|
1
|
+
import { useRef as i, useState as A, useLayoutEffect as N, useCallback as k, useMemo as Z, useEffect as B } from "react";
|
|
2
2
|
const ot = ({
|
|
3
3
|
filteredData: e,
|
|
4
4
|
virtualizationOn: c,
|
|
@@ -11,7 +11,7 @@ const ot = ({
|
|
|
11
11
|
pageSize: p
|
|
12
12
|
}) => {
|
|
13
13
|
const s = i(null), [h, P] = A(0), [_, $] = A(0), d = i([]), j = i([]), F = i([]), G = i([]), J = i([]), K = i({}), T = i(0);
|
|
14
|
-
|
|
14
|
+
N(() => {
|
|
15
15
|
if (!C && !S && s.current) {
|
|
16
16
|
if (e.length === 0) {
|
|
17
17
|
T.current = 0;
|
|
@@ -21,7 +21,7 @@ const ot = ({
|
|
|
21
21
|
t > 0 && (T.current = t);
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
-
const [L, O] = A(void 0), Q =
|
|
24
|
+
const [L, O] = A(void 0), Q = k(
|
|
25
25
|
(t) => d.current[t] ?? I,
|
|
26
26
|
[I]
|
|
27
27
|
), l = Z(() => {
|
|
@@ -32,7 +32,7 @@ const ot = ({
|
|
|
32
32
|
}, [e.length, Q, _]), a = Z(
|
|
33
33
|
() => l.length > 0 ? l[l.length - 1] : 0,
|
|
34
34
|
[l]
|
|
35
|
-
),
|
|
35
|
+
), b = q + 1, U = k(
|
|
36
36
|
(t) => {
|
|
37
37
|
let n = 0, o = l.length - 1;
|
|
38
38
|
for (; n < o; ) {
|
|
@@ -44,15 +44,15 @@ const ot = ({
|
|
|
44
44
|
[l, e.length]
|
|
45
45
|
), X = typeof H == "number" && typeof p == "number" && p > 0, z = X ? e.slice((H - 1) * p, H * p) : e, f = c && !X && e.length > q, D = f ? l[h] : 0, tt = f ? Math.max(
|
|
46
46
|
0,
|
|
47
|
-
a - l[Math.min(e.length, h +
|
|
48
|
-
) : 0, V =
|
|
47
|
+
a - l[Math.min(e.length, h + b)]
|
|
48
|
+
) : 0, V = k(
|
|
49
49
|
(t) => {
|
|
50
50
|
if (!f)
|
|
51
51
|
return;
|
|
52
|
-
const n = t.target, o = Math.max(0, e.length -
|
|
52
|
+
const n = t.target, o = Math.max(0, e.length - b), r = Math.min(o, U(n.scrollTop));
|
|
53
53
|
P(r);
|
|
54
54
|
},
|
|
55
|
-
[e.length, U, f,
|
|
55
|
+
[e.length, U, f, b]
|
|
56
56
|
);
|
|
57
57
|
B(() => {
|
|
58
58
|
if (c && s.current) {
|
|
@@ -77,14 +77,14 @@ const ot = ({
|
|
|
77
77
|
return o.observe(t), () => o.disconnect();
|
|
78
78
|
}, [c]);
|
|
79
79
|
const Y = i(null);
|
|
80
|
-
return
|
|
80
|
+
return N(() => {
|
|
81
81
|
if (!c || C) return;
|
|
82
82
|
const t = Y.current;
|
|
83
83
|
Y.current = { data: e, width: M }, !(!t || t.data === e && t.width === M) && (d.current = [], $((n) => n + 1));
|
|
84
84
|
}, [c, C, e, M]), B(() => {
|
|
85
85
|
if (!c)
|
|
86
86
|
return;
|
|
87
|
-
const t = f ? h : 0, n = f ? Math.min(e.length, h +
|
|
87
|
+
const t = f ? h : 0, n = f ? Math.min(e.length, h + b) : e.length;
|
|
88
88
|
let o = !1;
|
|
89
89
|
for (let r = t; r < n; r++) {
|
|
90
90
|
const u = K.current[r];
|
|
@@ -93,16 +93,16 @@ const ot = ({
|
|
|
93
93
|
(!d.current[r] || Math.abs(d.current[r] - m) > 0.5) && (d.current[r] = m, o = !0);
|
|
94
94
|
}
|
|
95
95
|
o && $((r) => r + 1);
|
|
96
|
-
}, [c, f, h,
|
|
96
|
+
}, [c, f, h, b, e.length, M]), N(() => {
|
|
97
97
|
var t;
|
|
98
98
|
if (!C && e.length > 0) {
|
|
99
|
-
const n = Array.from(((t = s.current) == null ? void 0 : t.querySelectorAll(".table tbody tr")) ?? []).filter((
|
|
100
|
-
n.forEach((
|
|
101
|
-
const y = Number(
|
|
102
|
-
if (isNaN(y)) return;
|
|
103
|
-
const nt =
|
|
99
|
+
const n = Array.from(((t = s.current) == null ? void 0 : t.querySelectorAll(".table tbody tr")) ?? []).filter((w) => w.cells.length > 0), o = new Array(e.length).fill(void 0), r = new Array(e.length).fill(void 0), u = new Array(e.length).fill(void 0), m = new Array(e.length).fill(void 0), v = new Array(e.length).fill(void 0);
|
|
100
|
+
n.forEach((w, W) => {
|
|
101
|
+
const y = Number(w.dataset.virtualIndex ?? W);
|
|
102
|
+
if (Number.isNaN(y)) return;
|
|
103
|
+
const nt = w.getBoundingClientRect().height;
|
|
104
104
|
o[y] = nt;
|
|
105
|
-
const x = Array.from(
|
|
105
|
+
const x = Array.from(w.children);
|
|
106
106
|
r[y] = x.map((R) => R.getBoundingClientRect().height), u[y] = x.map((R) => {
|
|
107
107
|
const g = R.firstElementChild;
|
|
108
108
|
return g ? g.getBoundingClientRect().height : 0;
|
|
@@ -117,9 +117,9 @@ const ot = ({
|
|
|
117
117
|
background: g.background
|
|
118
118
|
};
|
|
119
119
|
});
|
|
120
|
-
}), d.current = o.map((
|
|
120
|
+
}), d.current = o.map((w, W) => w ?? d.current[W]), j.current = r.filter(Boolean), F.current = u.filter(Boolean), G.current = m.filter(Boolean), J.current = v.filter(Boolean);
|
|
121
121
|
}
|
|
122
|
-
}, [C, e, E, H, p, h,
|
|
122
|
+
}, [C, e, E, H, p, h, b]), B(() => {
|
|
123
123
|
!S && e.length > 0 && setTimeout(() => {
|
|
124
124
|
const t = document.querySelector(`#${E} .table tbody`);
|
|
125
125
|
t && O(t.getBoundingClientRect().height);
|
|
@@ -127,7 +127,7 @@ const ot = ({
|
|
|
127
127
|
}, [S, e, E]), {
|
|
128
128
|
rootRef: s,
|
|
129
129
|
start: h,
|
|
130
|
-
visibleCount:
|
|
130
|
+
visibleCount: b,
|
|
131
131
|
pagedData: z,
|
|
132
132
|
hasOverflow: f,
|
|
133
133
|
topPadding: D,
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
import { useRef as O, useState as
|
|
2
|
-
import { TAB_PADDING_MIN_RATIO$u as
|
|
3
|
-
const U = (l,
|
|
4
|
-
const
|
|
5
|
-
var
|
|
6
|
-
const t =
|
|
1
|
+
import { useRef as O, useState as q, useCallback as P, useLayoutEffect as D } from "react";
|
|
2
|
+
import { TAB_PADDING_MIN_RATIO$u as B, distributeTabs$u as G, lineTabsSqueeze$u as k, tabsSqueeze$u as J } from "../../vanilla/core/distributeTabs.js";
|
|
3
|
+
const U = (l, N, u, b) => {
|
|
4
|
+
const g = O(null), m = O(null), L = O(null), h = JSON.stringify(l.map((t) => t.id)), S = l.map((t, e) => e), [z, T] = q({ signature: h, order: S }), p = z.signature === h ? z.order : S, [r, _] = q({ widths: [], paddings: [], available: 0, gap: 0, more: 0 }), o = P(() => {
|
|
5
|
+
var x;
|
|
6
|
+
const t = g.current, e = m.current;
|
|
7
7
|
if (!t || !e) return;
|
|
8
|
-
const n = getComputedStyle(t), a = t.getBoundingClientRect().width - (parseFloat(n.borderLeftWidth) || 0) - (parseFloat(n.borderRightWidth) || 0) - (parseFloat(n.paddingLeft) || 0) - (parseFloat(n.paddingRight) || 0), s = Array.from(e.querySelectorAll("[data-measure-tab]")),
|
|
8
|
+
const n = getComputedStyle(t), a = t.getBoundingClientRect().width - (Number.parseFloat(n.borderLeftWidth) || 0) - (Number.parseFloat(n.borderRightWidth) || 0) - (Number.parseFloat(n.paddingLeft) || 0) - (Number.parseFloat(n.paddingRight) || 0), s = Array.from(e.querySelectorAll("[data-measure-tab]")), v = s.map((i) => i.getBoundingClientRect().width), R = s.map((i) => {
|
|
9
9
|
const c = getComputedStyle(i);
|
|
10
|
-
return [parseFloat(c.paddingLeft) || 0, parseFloat(c.paddingRight) || 0];
|
|
11
|
-
}),
|
|
12
|
-
widths:
|
|
10
|
+
return [Number.parseFloat(c.paddingLeft) || 0, Number.parseFloat(c.paddingRight) || 0];
|
|
11
|
+
}), f = {
|
|
12
|
+
widths: v,
|
|
13
13
|
paddings: R,
|
|
14
14
|
available: a,
|
|
15
|
-
gap: parseFloat(n.columnGap || "0") || 0,
|
|
16
|
-
more: ((
|
|
15
|
+
gap: Number.parseFloat(n.columnGap || "0") || 0,
|
|
16
|
+
more: ((x = L.current) == null ? void 0 : x.getBoundingClientRect().width) || 0
|
|
17
17
|
};
|
|
18
|
-
|
|
19
|
-
var
|
|
20
|
-
return c === ((
|
|
21
|
-
}) ? i :
|
|
18
|
+
_((i) => i.available === f.available && i.gap === f.gap && i.more === f.more && i.widths.length === v.length && i.widths.every((c, y) => c === v[y]) && i.paddings.every(([c, y], A) => {
|
|
19
|
+
var E, I;
|
|
20
|
+
return c === ((E = R[A]) == null ? void 0 : E[0]) && y === ((I = R[A]) == null ? void 0 : I[1]);
|
|
21
|
+
}) ? i : f);
|
|
22
22
|
}, []);
|
|
23
23
|
D(() => {
|
|
24
24
|
var n, a;
|
|
25
25
|
o();
|
|
26
26
|
let t = !1;
|
|
27
27
|
const e = typeof ResizeObserver > "u" ? null : new ResizeObserver(o);
|
|
28
|
-
return
|
|
28
|
+
return g.current && (e == null || e.observe(g.current)), m.current && (e == null || e.observe(m.current)), window.addEventListener("resize", o), (n = document.fonts) == null || n.addEventListener("loadingdone", o), (a = document.fonts) == null || a.ready.then(() => {
|
|
29
29
|
t || o();
|
|
30
30
|
}), () => {
|
|
31
31
|
var s;
|
|
32
32
|
t = !0, e == null || e.disconnect(), window.removeEventListener("resize", o), (s = document.fonts) == null || s.removeEventListener("loadingdone", o);
|
|
33
33
|
};
|
|
34
|
-
}, [o, l,
|
|
35
|
-
const
|
|
36
|
-
return { containerRef:
|
|
34
|
+
}, [o, l, u, b]);
|
|
35
|
+
const M = N === void 0 ? -1 : l.findIndex((t) => t.id === N), F = r.widths.length === l.length && r.widths.every((t) => t > 0), w = u ? [] : r.paddings.map(([t, e]) => (t + e) * (1 - B)), d = F && !b ? G(p, r.widths, r.available, r.gap, r.more, M, u, w) : { visible: p, overflow: [] }, C = !F || u ? 0 : b ? k(p, r.widths, w, r.available, r.gap) : J(d.visible, r.widths, w, r.available, r.gap, r.more, d.overflow.length > 0);
|
|
36
|
+
return { containerRef: g, measureRef: m, moreMeasureRef: L, ...d, paddingOf: (t) => {
|
|
37
37
|
const e = r.paddings[t];
|
|
38
|
-
if (!
|
|
39
|
-
const n = 1 -
|
|
38
|
+
if (!C || !e) return;
|
|
39
|
+
const n = 1 - C * (1 - B);
|
|
40
40
|
return { paddingLeft: e[0] * n, paddingRight: e[1] * n };
|
|
41
41
|
}, promote: (t) => {
|
|
42
42
|
if (!d.overflow.includes(t)) return;
|
|
43
43
|
const e = d.visible[d.visible.length - 1];
|
|
44
44
|
if (e === void 0) return;
|
|
45
|
-
const n = [...
|
|
46
|
-
[n[a], n[s]] = [n[s], n[a]],
|
|
45
|
+
const n = [...p], a = n.indexOf(t), s = n.indexOf(e);
|
|
46
|
+
[n[a], n[s]] = [n[s], n[a]], T({ signature: h, order: n });
|
|
47
47
|
} };
|
|
48
48
|
};
|
|
49
49
|
export { U as useTabsOverflow$u };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs as X, jsx as $ } from "react/jsx-runtime";
|
|
2
|
-
import { useRef as z, useState as
|
|
2
|
+
import { useRef as z, useState as N, useCallback as B, useEffect as v, useLayoutEffect as W, useId as q } from "react";
|
|
3
3
|
/* empty css */
|
|
4
4
|
import { createPortal as tt } from "react-dom";
|
|
5
5
|
/* empty css */
|
|
@@ -17,7 +17,7 @@ const ot = 100, it = {
|
|
|
17
17
|
return r === "bottom" ? { x: y, y: t.y + t.height + t.scrollY + u } : r === "right" ? { x: t.x + t.width + u + n / 2, y: m } : r === "left" ? { x: t.x - u - n / 2, y: m } : { x: y, y: t.y + t.scrollY - u - a };
|
|
18
18
|
}, R = 8, V = 10, ct = 14, J = (r) => {
|
|
19
19
|
if (typeof window > "u" || typeof document > "u") return r;
|
|
20
|
-
const t = parseFloat(getComputedStyle(document.documentElement).fontSize);
|
|
20
|
+
const t = Number.parseFloat(getComputedStyle(document.documentElement).fontSize);
|
|
21
21
|
return !Number.isFinite(t) || t <= 0 ? r : r * (t / 16);
|
|
22
22
|
}, ut = {
|
|
23
23
|
top: "bottom",
|
|
@@ -50,8 +50,8 @@ const ot = 100, it = {
|
|
|
50
50
|
let f = M.x;
|
|
51
51
|
const x = n / 2;
|
|
52
52
|
f - x < R ? f = x + R : f + x > m - R && (f = m - R - x);
|
|
53
|
-
const T = t.x + t.width / 2, s = Math.max(0, x - ct),
|
|
54
|
-
return { placement: M.placement, x: f, y: M.y, arrowShift:
|
|
53
|
+
const T = t.x + t.width / 2, s = Math.max(0, x - ct), Y = Math.max(-s, Math.min(s, T - f));
|
|
54
|
+
return { placement: M.placement, x: f, y: M.y, arrowShift: Y };
|
|
55
55
|
}, K = (r) => {
|
|
56
56
|
const t = document.activeElement;
|
|
57
57
|
if (!r || !t || !r.contains(t)) return !1;
|
|
@@ -81,10 +81,10 @@ const at = () => {
|
|
|
81
81
|
showWhenActive: d = !1,
|
|
82
82
|
showDelay: M = ot
|
|
83
83
|
}) => {
|
|
84
|
-
const f = z(null), x = z(null), T = z(null), [s,
|
|
84
|
+
const f = z(null), x = z(null), T = z(null), [s, Y] = N(!1), [_, I] = N(null), [o, p] = N(null), [b, H] = N(w), [k, G] = N(!1), P = () => {
|
|
85
85
|
T.current && (clearTimeout(T.current), T.current = null);
|
|
86
86
|
}, h = B(() => {
|
|
87
|
-
P(),
|
|
87
|
+
P(), Y(!1), I(null), G(!1);
|
|
88
88
|
}, []), { shouldRender: D, isAnimated: j } = nt({ isOpen: s, duration: rt.instant });
|
|
89
89
|
v(() => {
|
|
90
90
|
D || (p(null), H(w));
|
|
@@ -92,7 +92,7 @@ const at = () => {
|
|
|
92
92
|
const F = B((e) => {
|
|
93
93
|
P();
|
|
94
94
|
const { x: c, y: i, width: l, height: E } = e.getBoundingClientRect();
|
|
95
|
-
I({ x: c, y: i, width: l, height: E, scrollY: window.scrollY }),
|
|
95
|
+
I({ x: c, y: i, width: l, height: E, scrollY: window.scrollY }), Y(!0);
|
|
96
96
|
}, []), O = B((e) => {
|
|
97
97
|
const { x: c, y: i, width: l, height: E } = e.getBoundingClientRect();
|
|
98
98
|
I((S) => S && { x: c, y: i, width: l, height: E, scrollY: window.scrollY });
|
package/dist/dev/index.js
CHANGED
|
@@ -952,9 +952,8 @@ const La = `
|
|
|
952
952
|
/* «Анимации ×5» ставит длительности на каждый элемент документа, в том числе на хост панели:
|
|
953
953
|
режим замедляет сервис, а не инструмент, которым его включили. */
|
|
954
954
|
--u-duration-instant: 100ms; --u-duration-fast: 150ms; --u-duration-base: 200ms; --u-duration-moderate: 250ms; --u-duration-slow: 300ms;
|
|
955
|
-
/* Отступ кнопки снизу:
|
|
956
|
-
|
|
957
|
-
--launcher-bottom: var(--u-dev-launcher-bottom, calc(12px + env(safe-area-inset-bottom, 0px)));
|
|
955
|
+
/* Отступ кнопки снизу: всегда левый нижний угол, StickyActionBar её не поднимает. */
|
|
956
|
+
--launcher-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
|
|
958
957
|
font-family: Montserrat, "Segoe UI", Arial, sans-serif; font-size: 14px; line-height: 1.4; color: var(--u-color-text, #222); }
|
|
959
958
|
button, input, textarea { font: inherit; color: inherit; }
|
|
960
959
|
/* Кнопка панели — в цветах кита: токены --u-color-* с :root сервиса проходят в shadow DOM
|
|
@@ -1574,7 +1573,7 @@ function hn(t) {
|
|
|
1574
1573
|
function mn() {
|
|
1575
1574
|
(zt() ?? ot).reset();
|
|
1576
1575
|
}
|
|
1577
|
-
const bn = () => "2.1.
|
|
1576
|
+
const bn = () => "2.1.7-next.1";
|
|
1578
1577
|
function xn(t) {
|
|
1579
1578
|
return pn(t, { name: "urfu-ui-kit-react", version: bn() });
|
|
1580
1579
|
}
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* список «ключ — значение»). Цвета, радиусы, тени и движение — токены кита (`--u-*`):
|
|
5
5
|
* CSS-переменные документа проходят в Shadow DOM, `all: initial` их не сбрасывает.
|
|
6
6
|
*/
|
|
7
|
-
export declare const STYLES = "\n:host { all: initial; }\n* { box-sizing: border-box; }\n.root {\n /* \u00AB\u0410\u043D\u0438\u043C\u0430\u0446\u0438\u0438 \u00D75\u00BB \u0441\u0442\u0430\u0432\u0438\u0442 \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438 \u043D\u0430 \u043A\u0430\u0436\u0434\u044B\u0439 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430, \u0432 \u0442\u043E\u043C \u0447\u0438\u0441\u043B\u0435 \u043D\u0430 \u0445\u043E\u0441\u0442 \u043F\u0430\u043D\u0435\u043B\u0438:\n \u0440\u0435\u0436\u0438\u043C \u0437\u0430\u043C\u0435\u0434\u043B\u044F\u0435\u0442 \u0441\u0435\u0440\u0432\u0438\u0441, \u0430 \u043D\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442, \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u0435\u0433\u043E \u0432\u043A\u043B\u044E\u0447\u0438\u043B\u0438. */\n --u-duration-instant: 100ms; --u-duration-fast: 150ms; --u-duration-base: 200ms; --u-duration-moderate: 250ms; --u-duration-slow: 300ms;\n /* \u041E\u0442\u0441\u0442\u0443\u043F \u043A\u043D\u043E\u043F\u043A\u0438 \u0441\u043D\u0438\u0437\u0443: StickyActionBar \u043A\u0438\u0442\u0430, \u043F\u043E\u043A\u0430 \u0441\u0442\u043E\u0438\u0442 \u0443 \u043D\u0438\u0436\u043D\u0435\u0433\u043E \u043A\u0440\u0430\u044F, \u0437\u0430\u0434\u0430\u0451\u0442 \u043D\u0430 <html>\n --u-dev-launcher-bottom (\u0435\u0433\u043E \u0432\u044B\u0441\u043E\u0442\u0430 + 12px) \u2014 \u043A\u043D\u043E\u043F\u043A\u0430 \u0438 \u043F\u0430\u043D\u0435\u043B\u044C \u043F\u043E\u0434\u043D\u0438\u043C\u0430\u044E\u0442\u0441\u044F \u043D\u0430\u0434 \u043D\u0438\u043C. */\n --launcher-bottom: var(--u-dev-launcher-bottom, calc(12px + env(safe-area-inset-bottom, 0px)));\n font-family: Montserrat, \"Segoe UI\", Arial, sans-serif; font-size: 14px; line-height: 1.4; color: var(--u-color-text, #222); }\nbutton, input, textarea { font: inherit; color: inherit; }\n/* \u041A\u043D\u043E\u043F\u043A\u0430 \u043F\u0430\u043D\u0435\u043B\u0438 \u2014 \u0432 \u0446\u0432\u0435\u0442\u0430\u0445 \u043A\u0438\u0442\u0430: \u0442\u043E\u043A\u0435\u043D\u044B --u-color-* \u0441 :root \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043F\u0440\u043E\u0445\u043E\u0434\u044F\u0442 \u0432 shadow DOM\n (all: initial \u0438\u0445 \u043D\u0435 \u0441\u0431\u0440\u0430\u0441\u044B\u0432\u0430\u0435\u0442), \u0437\u0430\u043F\u0430\u0441\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u2014 \u043A\u0430\u043A \u0432 \u043A\u0438\u0442\u0435. \u0412 \u043F\u043E\u043A\u043E\u0435 \u2014 \u043A\u0440\u0443\u0433 \u0441 \u043B\u043E\u0433\u043E\u0442\u0438\u043F\u043E\u043C,\n \u0447\u0442\u043E\u0431\u044B \u043C\u0435\u043D\u044C\u0448\u0435 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043D\u0438\u0436\u043D\u0438\u0435 \u043B\u0438\u043F\u043A\u0438\u0435 \u043F\u0430\u043D\u0435\u043B\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430; \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0438 \u0444\u043E\u043A\u0443\u0441\u0435 \u0440\u0430\u0441\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F\n \u0432 \u00AB\u043B\u043E\u0433\u043E\u0442\u0438\u043F + Dev\u00BB; \u043F\u0440\u0438 \u0432\u043A\u043B\u044E\u0447\u0451\u043D\u043D\u044B\u0445 \u0441\u0431\u043E\u044F\u0445 \u0440\u0430\u0441\u043A\u0440\u044B\u0442\u0430 \u0432\u0441\u0435\u0433\u0434\u0430, \u0446\u0432\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u0438 \u0438 \u0447\u0438\u0441\u043B\u043E \u0441\u0431\u043E\u0435\u0432. */\n.pill { --kit-p: var(--u-color-primary, #1e4391); --kit-error: var(--u-color-error, #ef302b);\n --kit-surface: var(--u-color-surface, #fff); --kit-line: var(--u-color-border, #748ab9);\n position: fixed; left: 12px; bottom: var(--launcher-bottom); z-index: 2147483000;\n display: inline-flex; align-items: center; height: 36px; padding: 0; border: 1px solid var(--kit-line); border-radius: 18px;\n background: var(--kit-surface); color: var(--kit-p); font-size: 13px; font-weight: 500; white-space: nowrap; cursor: pointer;\n box-shadow: 0 2px 8px rgba(0,0,0,.15);\n transition: background-color var(--u-duration-fast) var(--u-ease-standard), border-color var(--u-duration-fast) var(--u-ease-standard); }\n.pill .logo { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--kit-surface); }\n.pill .logo svg { display: block; width: 20px; height: 20px; }\n.pill .label { max-width: 0; overflow: hidden; opacity: 0; padding: 0;\n transition: max-width var(--u-duration-base) var(--u-ease-move), opacity var(--u-duration-base) var(--u-ease-move), padding var(--u-duration-base) var(--u-ease-move); }\n.pill:hover .label, .pill:focus-visible .label, .pill.on .label { max-width: 260px; opacity: 1; padding: 0 14px 0 2px; }\n.pill.on { background: var(--kit-error); border-color: var(--kit-error); color: #fff; }\n.pill.on .logo { width: 30px; height: 30px; margin: 0 1px 0 2px; }\n.pill:focus-visible { outline: 2px solid var(--kit-p); outline-offset: 2px; }\n.panel { position: fixed; left: 12px; bottom: calc(var(--launcher-bottom) + 44px); z-index: 2147483001;\n width: 400px; max-width: calc(100vw - 24px); max-height: min(75vh, 680px); display: flex; flex-direction: column;\n background: var(--u-color-surface, #fff); border: 1px solid var(--u-color-border-light, #d3d3d3); border-radius: var(--u-radius, 10px);\n box-shadow: var(--u-shadow-popup, 0 8px 24px rgba(15,43,94,.16)); }\n.panel.alone { bottom: var(--launcher-bottom); }\n/* \u041F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430 \u0443 \u043A\u043D\u043E\u043F\u043A\u0438 \u2014 \u043F\u0443\u0437\u044B\u0440\u044C, \u043A\u0430\u043A \u0443 Tooltip \u043A\u0438\u0442\u0430. */\n.hint { position: fixed; left: 12px; bottom: var(--launcher-bottom); z-index: 2147483000;\n max-width: min(360px, calc(100vw - 24px)); padding: 8px 12px; border-radius: var(--u-radius-small, 8px);\n background: var(--u-color-text, #222); color: var(--u-color-surface, #fff); font-size: 12px; box-shadow: var(--u-shadow-popup); }\n.pill ~ .hint { bottom: calc(var(--launcher-bottom) + 44px); }\n/* min-height \u0443 u-message-small \u043E\u0442\u043C\u0435\u043D\u044F\u0435\u0442 \u0437\u0430\u0449\u0438\u0442\u0443 \u0444\u043B\u0435\u043A\u0441-\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u043E\u0442 \u0441\u0436\u0430\u0442\u0438\u044F: \u0431\u0435\u0437 flex-shrink \u0442\u0435\u043A\u0441\u0442 \u043E\u0431\u0440\u0435\u0437\u0430\u0435\u0442\u0441\u044F. */\n.note { margin: 0 16px 8px; overflow-wrap: anywhere; flex-shrink: 0; }\n.head { display: flex; align-items: center; gap: 4px; padding: 10px 8px 2px 16px; }\n.title { flex: 1; min-width: 0; font-weight: 600; font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.title .u-selectbox { width: 100%; }\n.title .u-selectbox-select-title { font-weight: 600; }\n.intro, .caption, .escape { margin: 0; color: var(--u-color-text-secondary, #545454); }\n.intro { padding: 0 16px 10px; }\n.tabs { padding: 0 16px 8px; }\n.tabs .u-tab-segment { padding: 6px 4px; }\n.body { overflow: auto; padding: 4px 16px 12px; display: flex; flex-direction: column; gap: 14px; }\n.body .u-search { display: block; width: 100%; }\n.group { display: flex; flex-direction: column; gap: 8px; }\n.group-title { font-weight: 600; color: var(--u-color-text-secondary, #545454); }\n.u-switch { align-items: flex-start; }\n.u-switch .tt { padding-top: 3px; }\n.u-switch .sub { display: block; color: var(--u-color-text-secondary, #545454); font-size: 12px; }\n/* Select \u043A\u0438\u0442\u0430: \u043E\u0442\u043C\u0435\u0442\u043A\u0430 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0438 \u043F\u0443\u043D\u043A\u0442\u0430 \u043F\u043E\u0434 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043E\u0439 \u2014 \u043A\u0430\u043A \u0443 Select \u0432 React \u0438 Vue. */\n.u-selectbox-option[aria-selected=\"true\"] { background: var(--u-color-background, #f6f6f6); }\n.u-selectbox-option.active { background: var(--u-color-selected, #e7f2ff); }\n.u-selectbox-select-icon-arrow { transition: transform var(--u-duration-fast) var(--u-ease-standard); }\n.u-selectbox-select-open .u-selectbox-select-icon-arrow { transform: rotate(180deg); }\n.rule { display: flex; align-items: center; gap: 10px; padding: 6px 4px 6px 10px; border-radius: var(--u-radius-small, 8px);\n background: var(--u-color-background-light, #f9f9f9); }\n.rule .text { flex: 1; min-width: 0; font-family: Consolas, monospace; font-size: 12px; overflow-wrap: anywhere; }\n.rule small, .req small, .shown small { display: block; color: var(--u-color-text-secondary, #545454);\n font-family: Montserrat, \"Segoe UI\", Arial, sans-serif; font-size: 12px; }\n.add { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 8px; }\n.add .wide { grid-column: 1 / -1; }\n.add .u-textarea { height: auto; min-height: 76px; font-family: Consolas, monospace; font-size: 12px; resize: vertical; }\n.add .u-form-field__hint { color: var(--u-color-warning, #e98446); }\n.add [type=\"submit\"] { align-self: end; }\n.foot { display: flex; flex-direction: column; gap: 8px; padding: 10px 16px 12px; border-top: 1px solid var(--u-color-border-light, #d3d3d3); }\n.actions { display: flex; gap: 8px; flex-wrap: wrap; }\n.empty { margin: 0; color: var(--u-color-text-secondary, #545454); }\n.list-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--u-color-text-secondary, #545454); }\n.requests { display: flex; flex-direction: column; }\n.req { display: grid; grid-template-columns: 52px 1fr auto auto; gap: 8px; align-items: center; padding: 6px 0;\n border-bottom: 1px solid var(--u-color-background, #f6f6f6); font-family: Consolas, monospace; font-size: 12px; }\n.req .path { min-width: 0; overflow-wrap: break-word; }\n/* \u041F\u0443\u0442\u044C \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u0441\u044F \u043F\u043E \u00AB/\u00BB (<wbr>), \u0430 \u043D\u0435 \u043F\u043E\u0441\u0440\u0435\u0434\u0438 \u0441\u043B\u043E\u0432\u0430; \u0434\u043B\u0438\u043D\u043D\u044B\u0439 \u043E\u0431\u0440\u0435\u0437\u0430\u0435\u0442\u0441\u044F \u043D\u0430 \u0432\u0442\u043E\u0440\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0435, \u043F\u043E\u043B\u043D\u044B\u0439 \u2014 \u0432 title. */\n.req .path .p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }\n.req .u-status { font-family: Montserrat, \"Segoe UI\", Arial, sans-serif; }\n.shown { padding: 8px 0; border-bottom: 1px solid var(--u-color-background, #f6f6f6); }\n.shown-head { display: flex; justify-content: space-between; gap: 8px; color: var(--u-color-text-secondary, #545454); font-size: 12px; }\n.shown-head .kind { font-weight: 600; color: var(--u-color-error, #ef302b); }\n.shown-head .kind.warning { color: var(--u-color-warning, #e98446); }\n.shown-title { font-weight: 600; }\n.shown .cause { margin-top: 2px; font-family: Consolas, monospace; font-size: 12px; }\ndl { display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; margin: 0; }\ndt { color: var(--u-color-text-secondary, #545454); }\ndd { margin: 0; font-family: Consolas, monospace; font-size: 12px; overflow-wrap: anywhere; }\n@media (max-width: 576px) {\n .panel { left: 0; right: 0; bottom: 0; width: auto; max-width: none; max-height: 80vh;\n border-radius: var(--u-radius, 10px) var(--u-radius, 10px) 0 0; padding-bottom: env(safe-area-inset-bottom, 0px); }\n .panel ~ .pill { display: none; }\n}\n@media (prefers-reduced-motion: reduce) { .u-selectbox-select-icon-arrow, .pill, .pill .label { transition: none; } }\n";
|
|
7
|
+
export declare const STYLES = "\n:host { all: initial; }\n* { box-sizing: border-box; }\n.root {\n /* \u00AB\u0410\u043D\u0438\u043C\u0430\u0446\u0438\u0438 \u00D75\u00BB \u0441\u0442\u0430\u0432\u0438\u0442 \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438 \u043D\u0430 \u043A\u0430\u0436\u0434\u044B\u0439 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430, \u0432 \u0442\u043E\u043C \u0447\u0438\u0441\u043B\u0435 \u043D\u0430 \u0445\u043E\u0441\u0442 \u043F\u0430\u043D\u0435\u043B\u0438:\n \u0440\u0435\u0436\u0438\u043C \u0437\u0430\u043C\u0435\u0434\u043B\u044F\u0435\u0442 \u0441\u0435\u0440\u0432\u0438\u0441, \u0430 \u043D\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442, \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u0435\u0433\u043E \u0432\u043A\u043B\u044E\u0447\u0438\u043B\u0438. */\n --u-duration-instant: 100ms; --u-duration-fast: 150ms; --u-duration-base: 200ms; --u-duration-moderate: 250ms; --u-duration-slow: 300ms;\n /* \u041E\u0442\u0441\u0442\u0443\u043F \u043A\u043D\u043E\u043F\u043A\u0438 \u0441\u043D\u0438\u0437\u0443: \u0432\u0441\u0435\u0433\u0434\u0430 \u043B\u0435\u0432\u044B\u0439 \u043D\u0438\u0436\u043D\u0438\u0439 \u0443\u0433\u043E\u043B, StickyActionBar \u0435\u0451 \u043D\u0435 \u043F\u043E\u0434\u043D\u0438\u043C\u0430\u0435\u0442. */\n --launcher-bottom: calc(12px + env(safe-area-inset-bottom, 0px));\n font-family: Montserrat, \"Segoe UI\", Arial, sans-serif; font-size: 14px; line-height: 1.4; color: var(--u-color-text, #222); }\nbutton, input, textarea { font: inherit; color: inherit; }\n/* \u041A\u043D\u043E\u043F\u043A\u0430 \u043F\u0430\u043D\u0435\u043B\u0438 \u2014 \u0432 \u0446\u0432\u0435\u0442\u0430\u0445 \u043A\u0438\u0442\u0430: \u0442\u043E\u043A\u0435\u043D\u044B --u-color-* \u0441 :root \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043F\u0440\u043E\u0445\u043E\u0434\u044F\u0442 \u0432 shadow DOM\n (all: initial \u0438\u0445 \u043D\u0435 \u0441\u0431\u0440\u0430\u0441\u044B\u0432\u0430\u0435\u0442), \u0437\u0430\u043F\u0430\u0441\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u2014 \u043A\u0430\u043A \u0432 \u043A\u0438\u0442\u0435. \u0412 \u043F\u043E\u043A\u043E\u0435 \u2014 \u043A\u0440\u0443\u0433 \u0441 \u043B\u043E\u0433\u043E\u0442\u0438\u043F\u043E\u043C,\n \u0447\u0442\u043E\u0431\u044B \u043C\u0435\u043D\u044C\u0448\u0435 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043D\u0438\u0436\u043D\u0438\u0435 \u043B\u0438\u043F\u043A\u0438\u0435 \u043F\u0430\u043D\u0435\u043B\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430; \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0438 \u0444\u043E\u043A\u0443\u0441\u0435 \u0440\u0430\u0441\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F\n \u0432 \u00AB\u043B\u043E\u0433\u043E\u0442\u0438\u043F + Dev\u00BB; \u043F\u0440\u0438 \u0432\u043A\u043B\u044E\u0447\u0451\u043D\u043D\u044B\u0445 \u0441\u0431\u043E\u044F\u0445 \u0440\u0430\u0441\u043A\u0440\u044B\u0442\u0430 \u0432\u0441\u0435\u0433\u0434\u0430, \u0446\u0432\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u0438 \u0438 \u0447\u0438\u0441\u043B\u043E \u0441\u0431\u043E\u0435\u0432. */\n.pill { --kit-p: var(--u-color-primary, #1e4391); --kit-error: var(--u-color-error, #ef302b);\n --kit-surface: var(--u-color-surface, #fff); --kit-line: var(--u-color-border, #748ab9);\n position: fixed; left: 12px; bottom: var(--launcher-bottom); z-index: 2147483000;\n display: inline-flex; align-items: center; height: 36px; padding: 0; border: 1px solid var(--kit-line); border-radius: 18px;\n background: var(--kit-surface); color: var(--kit-p); font-size: 13px; font-weight: 500; white-space: nowrap; cursor: pointer;\n box-shadow: 0 2px 8px rgba(0,0,0,.15);\n transition: background-color var(--u-duration-fast) var(--u-ease-standard), border-color var(--u-duration-fast) var(--u-ease-standard); }\n.pill .logo { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--kit-surface); }\n.pill .logo svg { display: block; width: 20px; height: 20px; }\n.pill .label { max-width: 0; overflow: hidden; opacity: 0; padding: 0;\n transition: max-width var(--u-duration-base) var(--u-ease-move), opacity var(--u-duration-base) var(--u-ease-move), padding var(--u-duration-base) var(--u-ease-move); }\n.pill:hover .label, .pill:focus-visible .label, .pill.on .label { max-width: 260px; opacity: 1; padding: 0 14px 0 2px; }\n.pill.on { background: var(--kit-error); border-color: var(--kit-error); color: #fff; }\n.pill.on .logo { width: 30px; height: 30px; margin: 0 1px 0 2px; }\n.pill:focus-visible { outline: 2px solid var(--kit-p); outline-offset: 2px; }\n.panel { position: fixed; left: 12px; bottom: calc(var(--launcher-bottom) + 44px); z-index: 2147483001;\n width: 400px; max-width: calc(100vw - 24px); max-height: min(75vh, 680px); display: flex; flex-direction: column;\n background: var(--u-color-surface, #fff); border: 1px solid var(--u-color-border-light, #d3d3d3); border-radius: var(--u-radius, 10px);\n box-shadow: var(--u-shadow-popup, 0 8px 24px rgba(15,43,94,.16)); }\n.panel.alone { bottom: var(--launcher-bottom); }\n/* \u041F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430 \u0443 \u043A\u043D\u043E\u043F\u043A\u0438 \u2014 \u043F\u0443\u0437\u044B\u0440\u044C, \u043A\u0430\u043A \u0443 Tooltip \u043A\u0438\u0442\u0430. */\n.hint { position: fixed; left: 12px; bottom: var(--launcher-bottom); z-index: 2147483000;\n max-width: min(360px, calc(100vw - 24px)); padding: 8px 12px; border-radius: var(--u-radius-small, 8px);\n background: var(--u-color-text, #222); color: var(--u-color-surface, #fff); font-size: 12px; box-shadow: var(--u-shadow-popup); }\n.pill ~ .hint { bottom: calc(var(--launcher-bottom) + 44px); }\n/* min-height \u0443 u-message-small \u043E\u0442\u043C\u0435\u043D\u044F\u0435\u0442 \u0437\u0430\u0449\u0438\u0442\u0443 \u0444\u043B\u0435\u043A\u0441-\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u043E\u0442 \u0441\u0436\u0430\u0442\u0438\u044F: \u0431\u0435\u0437 flex-shrink \u0442\u0435\u043A\u0441\u0442 \u043E\u0431\u0440\u0435\u0437\u0430\u0435\u0442\u0441\u044F. */\n.note { margin: 0 16px 8px; overflow-wrap: anywhere; flex-shrink: 0; }\n.head { display: flex; align-items: center; gap: 4px; padding: 10px 8px 2px 16px; }\n.title { flex: 1; min-width: 0; font-weight: 600; font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.title .u-selectbox { width: 100%; }\n.title .u-selectbox-select-title { font-weight: 600; }\n.intro, .caption, .escape { margin: 0; color: var(--u-color-text-secondary, #545454); }\n.intro { padding: 0 16px 10px; }\n.tabs { padding: 0 16px 8px; }\n.tabs .u-tab-segment { padding: 6px 4px; }\n.body { overflow: auto; padding: 4px 16px 12px; display: flex; flex-direction: column; gap: 14px; }\n.body .u-search { display: block; width: 100%; }\n.group { display: flex; flex-direction: column; gap: 8px; }\n.group-title { font-weight: 600; color: var(--u-color-text-secondary, #545454); }\n.u-switch { align-items: flex-start; }\n.u-switch .tt { padding-top: 3px; }\n.u-switch .sub { display: block; color: var(--u-color-text-secondary, #545454); font-size: 12px; }\n/* Select \u043A\u0438\u0442\u0430: \u043E\u0442\u043C\u0435\u0442\u043A\u0430 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0438 \u043F\u0443\u043D\u043A\u0442\u0430 \u043F\u043E\u0434 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043E\u0439 \u2014 \u043A\u0430\u043A \u0443 Select \u0432 React \u0438 Vue. */\n.u-selectbox-option[aria-selected=\"true\"] { background: var(--u-color-background, #f6f6f6); }\n.u-selectbox-option.active { background: var(--u-color-selected, #e7f2ff); }\n.u-selectbox-select-icon-arrow { transition: transform var(--u-duration-fast) var(--u-ease-standard); }\n.u-selectbox-select-open .u-selectbox-select-icon-arrow { transform: rotate(180deg); }\n.rule { display: flex; align-items: center; gap: 10px; padding: 6px 4px 6px 10px; border-radius: var(--u-radius-small, 8px);\n background: var(--u-color-background-light, #f9f9f9); }\n.rule .text { flex: 1; min-width: 0; font-family: Consolas, monospace; font-size: 12px; overflow-wrap: anywhere; }\n.rule small, .req small, .shown small { display: block; color: var(--u-color-text-secondary, #545454);\n font-family: Montserrat, \"Segoe UI\", Arial, sans-serif; font-size: 12px; }\n.add { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 8px; }\n.add .wide { grid-column: 1 / -1; }\n.add .u-textarea { height: auto; min-height: 76px; font-family: Consolas, monospace; font-size: 12px; resize: vertical; }\n.add .u-form-field__hint { color: var(--u-color-warning, #e98446); }\n.add [type=\"submit\"] { align-self: end; }\n.foot { display: flex; flex-direction: column; gap: 8px; padding: 10px 16px 12px; border-top: 1px solid var(--u-color-border-light, #d3d3d3); }\n.actions { display: flex; gap: 8px; flex-wrap: wrap; }\n.empty { margin: 0; color: var(--u-color-text-secondary, #545454); }\n.list-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--u-color-text-secondary, #545454); }\n.requests { display: flex; flex-direction: column; }\n.req { display: grid; grid-template-columns: 52px 1fr auto auto; gap: 8px; align-items: center; padding: 6px 0;\n border-bottom: 1px solid var(--u-color-background, #f6f6f6); font-family: Consolas, monospace; font-size: 12px; }\n.req .path { min-width: 0; overflow-wrap: break-word; }\n/* \u041F\u0443\u0442\u044C \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u0441\u044F \u043F\u043E \u00AB/\u00BB (<wbr>), \u0430 \u043D\u0435 \u043F\u043E\u0441\u0440\u0435\u0434\u0438 \u0441\u043B\u043E\u0432\u0430; \u0434\u043B\u0438\u043D\u043D\u044B\u0439 \u043E\u0431\u0440\u0435\u0437\u0430\u0435\u0442\u0441\u044F \u043D\u0430 \u0432\u0442\u043E\u0440\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0435, \u043F\u043E\u043B\u043D\u044B\u0439 \u2014 \u0432 title. */\n.req .path .p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }\n.req .u-status { font-family: Montserrat, \"Segoe UI\", Arial, sans-serif; }\n.shown { padding: 8px 0; border-bottom: 1px solid var(--u-color-background, #f6f6f6); }\n.shown-head { display: flex; justify-content: space-between; gap: 8px; color: var(--u-color-text-secondary, #545454); font-size: 12px; }\n.shown-head .kind { font-weight: 600; color: var(--u-color-error, #ef302b); }\n.shown-head .kind.warning { color: var(--u-color-warning, #e98446); }\n.shown-title { font-weight: 600; }\n.shown .cause { margin-top: 2px; font-family: Consolas, monospace; font-size: 12px; }\ndl { display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; margin: 0; }\ndt { color: var(--u-color-text-secondary, #545454); }\ndd { margin: 0; font-family: Consolas, monospace; font-size: 12px; overflow-wrap: anywhere; }\n@media (max-width: 576px) {\n .panel { left: 0; right: 0; bottom: 0; width: auto; max-width: none; max-height: 80vh;\n border-radius: var(--u-radius, 10px) var(--u-radius, 10px) 0 0; padding-bottom: env(safe-area-inset-bottom, 0px); }\n .panel ~ .pill { display: none; }\n}\n@media (prefers-reduced-motion: reduce) { .u-selectbox-select-icon-arrow, .pill, .pill .label { transition: none; } }\n";
|
package/dist/shared/kitCopy.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { registerKitCopy$u as e, getKitCopies$u as r, hasLegacyKitOverlay$u as o, kitIdPrefix$u as n } from "../vanilla/core/kitRegistry.js";
|
|
2
|
-
const c = "2.1.
|
|
2
|
+
const c = "2.1.7-next.1", t = () => e("react", c), a = () => n(t());
|
|
3
3
|
function p() {
|
|
4
4
|
return t(), r();
|
|
5
5
|
}
|