@elcrm/form 0.0.85 → 0.0.87
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/assets/styles/Field.module.css +1 -1
- package/dist/core/Field.d.ts +3 -1
- package/dist/core/Field.js +3 -2
- package/dist/fields/Check.d.ts +20 -2
- package/dist/fields/Check.js +29 -22
- package/dist/fields/Input.d.ts +1 -1
- package/dist/fields/Input.js +39 -37
- package/dist/fields/Numeric.d.ts +1 -1
- package/dist/fields/Numeric.js +39 -38
- package/dist/fields/Select.d.ts +1 -1
- package/dist/fields/Select.js +42 -41
- package/dist/fields/Textarea.d.ts +1 -1
- package/dist/fields/Textarea.js +23 -22
- package/dist/fields/type.d.ts +5 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +32 -31
- package/dist/index.umd.js +2 -2
- package/dist/overlayZ.d.ts +2 -0
- package/dist/overlayZ.js +5 -1
- package/dist/package.js +1 -1
- package/dist/style.css +1 -1
- package/dist/styles/Field.module.js +73 -72
- package/package.json +1 -1
package/dist/fields/Numeric.js
CHANGED
|
@@ -6,16 +6,16 @@ import { isEmptyTextLike as a } from "./visibility.js";
|
|
|
6
6
|
import o from "react";
|
|
7
7
|
import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
8
8
|
//#region src/lib/fields/Numeric.tsx
|
|
9
|
-
function u({ value: u, form: d, onValue: f, name: p = "", placeholder: m = "", label: h = "", hidden: g = !1, disabled: _ = !1, onBlur: v, className: y = "", after: b = "", before: x = "", error: S = "",
|
|
10
|
-
let
|
|
11
|
-
m = m === void 0 ? "" : m,
|
|
12
|
-
let
|
|
9
|
+
function u({ value: u, form: d, onValue: f, name: p = "", placeholder: m = "", label: h = "", hidden: g = !1, disabled: _ = !1, onBlur: v, className: y = "", after: b = "", before: x = "", error: S = "", size: C = "md", inputmode: w = "numeric", maxLength: T, max: E, view: D }) {
|
|
10
|
+
let O = !_, { value: k, version: A } = n(d, p, u);
|
|
11
|
+
m = m === void 0 ? "" : m, E = E === void 0 ? 99 : E;
|
|
12
|
+
let j = k != null && k !== "" ? String(k) : "", M = o.useRef(null), N = o.useRef(!1);
|
|
13
13
|
o.useLayoutEffect(() => {
|
|
14
|
-
if (
|
|
15
|
-
let e =
|
|
16
|
-
e && e.textContent !==
|
|
17
|
-
}, [
|
|
18
|
-
let
|
|
14
|
+
if (N.current) return;
|
|
15
|
+
let e = M.current;
|
|
16
|
+
e && e.textContent !== j && (e.textContent = j);
|
|
17
|
+
}, [j, A]);
|
|
18
|
+
let P = T ?? E, F = !1, I = (e, t) => {
|
|
19
19
|
e.textContent !== t && (e.textContent = t, queueMicrotask(() => {
|
|
20
20
|
let n = e.firstChild;
|
|
21
21
|
if (n && n.nodeType === Node.TEXT_NODE) {
|
|
@@ -23,50 +23,51 @@ function u({ value: u, form: d, onValue: f, name: p = "", placeholder: m = "", l
|
|
|
23
23
|
i.setStart(n, e), i.collapse(!0), r?.removeAllRanges(), r?.addRange(i);
|
|
24
24
|
} else t || (e.innerHTML = "<br>");
|
|
25
25
|
}));
|
|
26
|
-
},
|
|
26
|
+
}, L = (e) => {
|
|
27
27
|
let t = e.currentTarget, n = (t.textContent || "").replace(/\D/g, "");
|
|
28
|
-
|
|
28
|
+
P > 0 && n.length > P && (n = n.slice(0, P)), I(t, n);
|
|
29
29
|
let r = {
|
|
30
30
|
value: n,
|
|
31
31
|
name: p
|
|
32
32
|
};
|
|
33
33
|
d && p && d.onValue(r), f && f !== d?.onValue && f(r);
|
|
34
|
-
},
|
|
35
|
-
|
|
34
|
+
}, R = (e) => {
|
|
35
|
+
N.current = !0;
|
|
36
36
|
let t = e.currentTarget;
|
|
37
37
|
t.textContent = (t.textContent || "").replace(/\D/g, ""), r.Focus({ target: e.currentTarget });
|
|
38
|
-
},
|
|
39
|
-
if (
|
|
40
|
-
if (e.which === 17 || e.which === 91) return
|
|
38
|
+
}, z = (e) => {
|
|
39
|
+
if (F && e.which === 86) return;
|
|
40
|
+
if (e.which === 17 || e.which === 91) return F = !0;
|
|
41
41
|
if (e.key === "Backspace") return;
|
|
42
42
|
let t = (e.currentTarget.textContent ?? "").replace(/\D/g, "").length;
|
|
43
|
-
|
|
44
|
-
}, z = (e) => {
|
|
45
|
-
if (e.which === 17 || e.which === 91) return P = !1;
|
|
43
|
+
P > 0 && t >= P && e.key.length === 1 && /\d/.test(e.key) && e.preventDefault(), e.key === "Enter" && e.preventDefault(), e.key.length === 1 && !/\d/.test(e.key) && !e.metaKey && !e.ctrlKey && e.preventDefault();
|
|
46
44
|
}, B = (e) => {
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
if (e.which === 17 || e.which === 91) return F = !1;
|
|
46
|
+
}, V = (e) => {
|
|
47
|
+
r.PasteDigits(P, i(e)), queueMicrotask(() => {
|
|
48
|
+
let e = M.current;
|
|
49
49
|
if (!e) return;
|
|
50
50
|
let t = (e.textContent || "").replace(/\D/g, "");
|
|
51
|
-
|
|
51
|
+
P > 0 && t.length > P && (t = t.slice(0, P)), I(e, t), d && p && d.onValue({
|
|
52
52
|
value: t,
|
|
53
53
|
name: p
|
|
54
54
|
});
|
|
55
55
|
});
|
|
56
|
-
}, V = (e) => {
|
|
57
|
-
e.preventDefault();
|
|
58
56
|
}, H = (e) => {
|
|
57
|
+
e.preventDefault();
|
|
58
|
+
}, U = (e) => {
|
|
59
59
|
r.Blur(e);
|
|
60
60
|
let t = (e.currentTarget.textContent || "").replace(/\D/g, "");
|
|
61
61
|
e.currentTarget.textContent !== t && (e.currentTarget.textContent = t), v?.({
|
|
62
62
|
value: t,
|
|
63
63
|
name: p
|
|
64
|
-
}),
|
|
65
|
-
},
|
|
66
|
-
return
|
|
64
|
+
}), N.current = !1;
|
|
65
|
+
}, W = {};
|
|
66
|
+
return O && (W.edit = ""), W.inputMode = w ?? "numeric", m && (W.placeholder = m), g && a(k) ? /* @__PURE__ */ c(s, {}) : /* @__PURE__ */ l(t, {
|
|
67
67
|
type: "numeric",
|
|
68
68
|
label: h,
|
|
69
69
|
error: S,
|
|
70
|
+
size: C,
|
|
70
71
|
element_blok: { className: [y || ""] },
|
|
71
72
|
element_input: { className: [e.w] },
|
|
72
73
|
children: [
|
|
@@ -75,22 +76,22 @@ function u({ value: u, form: d, onValue: f, name: p = "", placeholder: m = "", l
|
|
|
75
76
|
children: x
|
|
76
77
|
}) : null,
|
|
77
78
|
/* @__PURE__ */ c("div", {
|
|
78
|
-
ref:
|
|
79
|
-
onPaste:
|
|
80
|
-
onDrop:
|
|
79
|
+
ref: M,
|
|
80
|
+
onPaste: V,
|
|
81
|
+
onDrop: H,
|
|
81
82
|
onDragOver: (e) => e.preventDefault(),
|
|
82
|
-
onInput:
|
|
83
|
-
onFocus:
|
|
84
|
-
onBlur:
|
|
85
|
-
onKeyDown:
|
|
86
|
-
onKeyUp:
|
|
83
|
+
onInput: L,
|
|
84
|
+
onFocus: R,
|
|
85
|
+
onBlur: U,
|
|
86
|
+
onKeyDown: z,
|
|
87
|
+
onKeyUp: B,
|
|
87
88
|
spellCheck: !1,
|
|
88
89
|
role: "textbox",
|
|
89
|
-
tabIndex:
|
|
90
|
+
tabIndex: O ? 0 : -1,
|
|
90
91
|
"aria-label": h || m || "Число",
|
|
91
|
-
contentEditable:
|
|
92
|
+
contentEditable: O ? "plaintext-only" : !1,
|
|
92
93
|
suppressContentEditableWarning: !0,
|
|
93
|
-
...
|
|
94
|
+
...W
|
|
94
95
|
}),
|
|
95
96
|
b ? /* @__PURE__ */ c("span", {
|
|
96
97
|
className: e.affix,
|
package/dist/fields/Select.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export type TSelect = TInput & {
|
|
|
14
14
|
options?: SelectOptions;
|
|
15
15
|
order?: number[];
|
|
16
16
|
};
|
|
17
|
-
declare function SelectField({ value, form, onValue, name, placeholder, label, error, hidden, disabled, className, after, before, options, order, }: TSelect): import("react/jsx-runtime").JSX.Element | "";
|
|
17
|
+
declare function SelectField({ value, form, onValue, name, placeholder, label, error, hidden, disabled, className, after, before, options, order, size, }: TSelect): import("react/jsx-runtime").JSX.Element | "";
|
|
18
18
|
declare namespace SelectField {
|
|
19
19
|
var displayName: string;
|
|
20
20
|
}
|
package/dist/fields/Select.js
CHANGED
|
@@ -7,9 +7,9 @@ import o, { useEffect as s, useState as c } from "react";
|
|
|
7
7
|
import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
8
8
|
import { createPortal as f } from "react-dom";
|
|
9
9
|
//#region src/lib/fields/Select.tsx
|
|
10
|
-
function p({ value: r = 0, form: i, onValue: s, name: c = "", placeholder: p = "", label: h, error: g, hidden: _ = !1, disabled: v = !1, className: y, after: b = "", before: x = "", options: S, order: C }) {
|
|
11
|
-
let [
|
|
12
|
-
S && (
|
|
10
|
+
function p({ value: r = 0, form: i, onValue: s, name: c = "", placeholder: p = "", label: h, error: g, hidden: _ = !1, disabled: v = !1, className: y, after: b = "", before: x = "", options: S, order: C, size: w = "md" }) {
|
|
11
|
+
let [T, E] = o.useState(!1), [D, O] = o.useState(0), [k, A] = o.useState(null), j = o.useId(), { value: M } = n(i, c, r ?? 0), N = Number(M), P = [];
|
|
12
|
+
S && (P = Array.isArray(S) ? S.map((e) => ({
|
|
13
13
|
id: e.id ?? e.i ?? 0,
|
|
14
14
|
label: e.n || "",
|
|
15
15
|
hidden: e.s === 0
|
|
@@ -21,67 +21,68 @@ function p({ value: r = 0, form: i, onValue: s, name: c = "", placeholder: p = "
|
|
|
21
21
|
hidden: n?.s === 0
|
|
22
22
|
};
|
|
23
23
|
}).filter((e) => e.label.length > 0));
|
|
24
|
-
let
|
|
25
|
-
if (!C || C.length === 0) return
|
|
26
|
-
let e = new Map(
|
|
24
|
+
let F = (() => {
|
|
25
|
+
if (!C || C.length === 0) return P;
|
|
26
|
+
let e = new Map(P.map((e) => [e.id, e]));
|
|
27
27
|
return C.map((t) => e.get(t)).filter((e) => !!e);
|
|
28
|
-
})().filter((e) => !e.hidden),
|
|
28
|
+
})().filter((e) => !e.hidden), I = (e) => F.find((t) => t.id === e)?.label, L = T && F.length > 0 ? `${j}-opt-${D}` : void 0, R = (e) => {
|
|
29
29
|
let t = {
|
|
30
30
|
value: e,
|
|
31
31
|
name: c
|
|
32
32
|
};
|
|
33
33
|
i && c && i.onValue(t), s && s !== i?.onValue && s(t);
|
|
34
|
-
}, R = (e) => {
|
|
35
|
-
if (P.length === 0 || v) return;
|
|
36
|
-
let t = P.findIndex((e) => e.id === M);
|
|
37
|
-
k(e.getBoundingClientRect()), D(t >= 0 ? t : 0), T(!0);
|
|
38
34
|
}, z = (e) => {
|
|
39
|
-
|
|
35
|
+
if (F.length === 0 || v) return;
|
|
36
|
+
let t = F.findIndex((e) => e.id === N);
|
|
37
|
+
A(e.getBoundingClientRect()), O(t >= 0 ? t : 0), E(!0);
|
|
40
38
|
}, B = (e) => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
z(e.currentTarget);
|
|
40
|
+
}, V = (e) => {
|
|
41
|
+
if (!v && F.length !== 0) {
|
|
42
|
+
if (!T && (e.key === "ArrowDown" || e.key === "Enter" || e.key === " ")) {
|
|
43
|
+
e.preventDefault(), z(e.currentTarget);
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
|
-
if (
|
|
46
|
+
if (T) {
|
|
47
47
|
if (e.key === "Escape") {
|
|
48
|
-
e.preventDefault(),
|
|
48
|
+
e.preventDefault(), E(!1);
|
|
49
49
|
return;
|
|
50
50
|
}
|
|
51
51
|
if (e.key === "ArrowDown") {
|
|
52
|
-
e.preventDefault(),
|
|
52
|
+
e.preventDefault(), O((e) => (e + 1) % F.length);
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
55
55
|
if (e.key === "ArrowUp") {
|
|
56
|
-
e.preventDefault(),
|
|
56
|
+
e.preventDefault(), O((e) => e - 1 < 0 ? F.length - 1 : e - 1);
|
|
57
57
|
return;
|
|
58
58
|
}
|
|
59
59
|
if (e.key === "Enter") {
|
|
60
60
|
e.preventDefault();
|
|
61
|
-
let t =
|
|
62
|
-
t &&
|
|
61
|
+
let t = F[D];
|
|
62
|
+
t && R(t.id), E(!1);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
},
|
|
67
|
-
p && (
|
|
68
|
-
let
|
|
69
|
-
return _ &&
|
|
66
|
+
}, H = {};
|
|
67
|
+
p && (H.placeholder = p);
|
|
68
|
+
let U = I(N), W = (U === void 0 || U === "") && !!p, G = N === 0 || I(N) === void 0;
|
|
69
|
+
return _ && G ? "" : /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ d(t, {
|
|
70
70
|
type: "select",
|
|
71
71
|
label: h,
|
|
72
72
|
element_blok: { className: [y || ""] },
|
|
73
73
|
error: g,
|
|
74
|
+
size: w,
|
|
74
75
|
element_input: {
|
|
75
76
|
className: [a.f],
|
|
76
77
|
props: {
|
|
77
|
-
onClick:
|
|
78
|
-
onKeyDown:
|
|
78
|
+
onClick: B,
|
|
79
|
+
onKeyDown: V,
|
|
79
80
|
tabIndex: v ? -1 : 0,
|
|
80
81
|
role: "combobox",
|
|
81
|
-
"aria-expanded":
|
|
82
|
+
"aria-expanded": T,
|
|
82
83
|
"aria-haspopup": "listbox",
|
|
83
|
-
"aria-controls":
|
|
84
|
-
...
|
|
84
|
+
"aria-controls": j,
|
|
85
|
+
...L ? { "aria-activedescendant": L } : {},
|
|
85
86
|
"aria-disabled": v,
|
|
86
87
|
"data-disabled": v
|
|
87
88
|
}
|
|
@@ -92,24 +93,24 @@ function p({ value: r = 0, form: i, onValue: s, name: c = "", placeholder: p = "
|
|
|
92
93
|
children: x
|
|
93
94
|
}) : null,
|
|
94
95
|
/* @__PURE__ */ u("div", {
|
|
95
|
-
...
|
|
96
|
-
className:
|
|
97
|
-
children:
|
|
96
|
+
...H,
|
|
97
|
+
className: W ? a.placeholderValue : void 0,
|
|
98
|
+
children: U ?? p ?? ""
|
|
98
99
|
}),
|
|
99
100
|
b ? /* @__PURE__ */ u("span", {
|
|
100
101
|
className: e.affix,
|
|
101
102
|
children: b
|
|
102
103
|
}) : null
|
|
103
104
|
]
|
|
104
|
-
}),
|
|
105
|
-
parent:
|
|
106
|
-
onValue:
|
|
105
|
+
}), T && f(/* @__PURE__ */ u(m, {
|
|
106
|
+
parent: k || void 0,
|
|
107
|
+
onValue: R,
|
|
107
108
|
className: y,
|
|
108
|
-
items:
|
|
109
|
-
setOpen:
|
|
110
|
-
listId:
|
|
111
|
-
activeIndex:
|
|
112
|
-
currentValue:
|
|
109
|
+
items: F,
|
|
110
|
+
setOpen: E,
|
|
111
|
+
listId: j,
|
|
112
|
+
activeIndex: D,
|
|
113
|
+
currentValue: N
|
|
113
114
|
}), document.body)] });
|
|
114
115
|
}
|
|
115
116
|
p.displayName = "SelectField";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TInput } from './type';
|
|
2
2
|
/** TextareaField — многострочное поле (contentEditable). */
|
|
3
|
-
declare function TextareaField({ value, form, onValue, name, placeholder, label, hidden, disabled, onBlur: onBlurField, className, after, before, error, inputmode, maxLength, spellCheck, }: TInput): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
declare function TextareaField({ value, form, onValue, name, placeholder, label, hidden, disabled, onBlur: onBlurField, className, after, before, error, size, inputmode, maxLength, spellCheck, }: TInput): import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
declare namespace TextareaField {
|
|
5
5
|
var displayName: string;
|
|
6
6
|
}
|
package/dist/fields/Textarea.js
CHANGED
|
@@ -6,29 +6,30 @@ import { isEmptyTextLike as a } from "./visibility.js";
|
|
|
6
6
|
import o from "react";
|
|
7
7
|
import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
8
8
|
//#region src/lib/fields/Textarea.tsx
|
|
9
|
-
function u({ value: u, form: d, onValue: f, name: p = "", placeholder: m = "", label: h = "", hidden: g = !1, disabled: _ = !1, onBlur: v, className: y = "", after: b = "", before: x = "", error: S = "",
|
|
10
|
-
let { value:
|
|
9
|
+
function u({ value: u, form: d, onValue: f, name: p = "", placeholder: m = "", label: h = "", hidden: g = !1, disabled: _ = !1, onBlur: v, className: y = "", after: b = "", before: x = "", error: S = "", size: C = "md", inputmode: w = "text", maxLength: T, spellCheck: E = !0 }) {
|
|
10
|
+
let { value: D, version: O } = n(d, p || "", u), k = !_, A = String(D ?? ""), j = o.useRef(null), M = o.useRef(!1);
|
|
11
11
|
o.useLayoutEffect(() => {
|
|
12
|
-
if (
|
|
13
|
-
let e =
|
|
14
|
-
e && e.innerText !==
|
|
15
|
-
}, [
|
|
16
|
-
let
|
|
12
|
+
if (M.current) return;
|
|
13
|
+
let e = j.current;
|
|
14
|
+
e && e.innerText !== A && (e.innerText = A);
|
|
15
|
+
}, [A, O]);
|
|
16
|
+
let N = (e) => {
|
|
17
17
|
let t = {
|
|
18
18
|
value: e.currentTarget.innerText,
|
|
19
19
|
name: p || ""
|
|
20
20
|
};
|
|
21
21
|
d && p && d.onValue(t), f && f !== d?.onValue && f(t);
|
|
22
|
-
},
|
|
22
|
+
}, P = (e) => {
|
|
23
23
|
let t = (e.currentTarget.textContent ?? "").trim();
|
|
24
|
-
|
|
25
|
-
},
|
|
26
|
-
if (g && a(
|
|
27
|
-
let
|
|
28
|
-
return m && (
|
|
24
|
+
T && t.length >= T && e.key !== "Backspace" && e.preventDefault(), e.key === "Enter" && !e.shiftKey && e.preventDefault();
|
|
25
|
+
}, F = (e) => r.Paste(T || 0, i(e));
|
|
26
|
+
if (g && a(D)) return /* @__PURE__ */ c(s, {});
|
|
27
|
+
let I = {};
|
|
28
|
+
return m && (I.placeholder = m), k && (I.edit = ""), I.inputMode = w || "text", /* @__PURE__ */ l(t, {
|
|
29
29
|
type: "note",
|
|
30
30
|
label: h,
|
|
31
31
|
error: S,
|
|
32
|
+
size: C,
|
|
32
33
|
element_blok: { className: [y || ""] },
|
|
33
34
|
element_input: { className: [e.n] },
|
|
34
35
|
children: [
|
|
@@ -37,23 +38,23 @@ function u({ value: u, form: d, onValue: f, name: p = "", placeholder: m = "", l
|
|
|
37
38
|
children: x
|
|
38
39
|
}) : null,
|
|
39
40
|
/* @__PURE__ */ c("div", {
|
|
40
|
-
ref:
|
|
41
|
-
onPaste:
|
|
42
|
-
onInput:
|
|
41
|
+
ref: j,
|
|
42
|
+
onPaste: F,
|
|
43
|
+
onInput: N,
|
|
43
44
|
onFocus: () => {
|
|
44
|
-
|
|
45
|
+
M.current = !0;
|
|
45
46
|
},
|
|
46
47
|
onBlur: (e) => {
|
|
47
48
|
r.Blur(e), v?.({
|
|
48
49
|
value: (e.currentTarget.textContent ?? "").trim(),
|
|
49
50
|
name: p || ""
|
|
50
|
-
}),
|
|
51
|
+
}), M.current = !1;
|
|
51
52
|
},
|
|
52
|
-
onKeyDown:
|
|
53
|
-
spellCheck:
|
|
54
|
-
contentEditable:
|
|
53
|
+
onKeyDown: P,
|
|
54
|
+
spellCheck: E,
|
|
55
|
+
contentEditable: k ? "plaintext-only" : !1,
|
|
55
56
|
suppressContentEditableWarning: !0,
|
|
56
|
-
...
|
|
57
|
+
...I
|
|
57
58
|
}),
|
|
58
59
|
b ? /* @__PURE__ */ c("span", {
|
|
59
60
|
className: e.affix,
|
package/dist/fields/type.d.ts
CHANGED
|
@@ -27,6 +27,11 @@ export type TFieldPresentation = {
|
|
|
27
27
|
view?: string;
|
|
28
28
|
id?: string;
|
|
29
29
|
className?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Плотность поля: `md` — формы/модалки (по умолчанию),
|
|
32
|
+
* `sm` — тулбары и плотные модалки.
|
|
33
|
+
*/
|
|
34
|
+
size?: "sm" | "md";
|
|
30
35
|
isCopy?: boolean;
|
|
31
36
|
maxLength?: number;
|
|
32
37
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export { default as HiddenField } from './fields/Hidden';
|
|
|
32
32
|
export { default as DisplayField } from './fields/Display';
|
|
33
33
|
export { ReadonlyField } from './fields/Display';
|
|
34
34
|
export { useForm, useFormField, useFormFieldState } from './hooks/use';
|
|
35
|
+
export type TFieldSize = "sm" | "md";
|
|
35
36
|
export type { TInput, TValue, TPasswordField, TFieldFormBindings, TFieldPresentation, } from './fields/type';
|
|
36
37
|
export type { TRange, TProgress } from './fields/Range';
|
|
37
38
|
export type { TTime } from './fields/Time';
|
|
@@ -56,3 +57,6 @@ export { Form } from './Form';
|
|
|
56
57
|
export type { FormInitProps, TModalOpenPayload } from './Form';
|
|
57
58
|
export { useFormInit } from './FormInitContext';
|
|
58
59
|
export type { FormInitContextValue } from './FormInitContext';
|
|
60
|
+
/** Общий стек z-index оверлеев (globalThis.elcrm.overlayZ) */
|
|
61
|
+
export { acquireOverlayZIndex, releaseOverlayZIndex, peekOverlayZIndex, } from './overlayZ';
|
|
62
|
+
export type { TCheckSize, TCheckVariant } from './fields/Check';
|