@elcrm/form 0.0.80 → 0.0.82

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.
@@ -2,10 +2,12 @@ import e from "../styles/Field.module.js";
2
2
  import t from "../core/Field.js";
3
3
  import { useFormFieldState as n } from "../hooks/use.js";
4
4
  import r from "../events/onEvent.js";
5
- import i from "react";
6
- import { jsx as a, jsxs as o } from "react/jsx-runtime";
5
+ import i from "../styles/Select.module.js";
6
+ import a from "react";
7
+ import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
8
+ import { createPortal as l } from "react-dom";
7
9
  //#region src/lib/fields/Time.tsx
8
- function s(e) {
10
+ function u(e) {
9
11
  let t = window.getSelection();
10
12
  if (!t || t.rangeCount === 0) return 0;
11
13
  let n = t.getRangeAt(0);
@@ -13,27 +15,27 @@ function s(e) {
13
15
  let r = document.createRange();
14
16
  return r.selectNodeContents(e), r.setEnd(n.startContainer, n.startOffset), r.toString().length;
15
17
  }
16
- function c(e, t) {
18
+ function d(e, t) {
17
19
  let n = t.firstChild;
18
20
  if (!n || n.nodeType !== Node.TEXT_NODE) return;
19
21
  let r = n.textContent?.length ?? 0, i = Math.max(0, Math.min(e, r)), a = document.createRange(), o = window.getSelection();
20
22
  o && (a.setStart(n, i), a.collapse(!0), o.removeAllRanges(), o.addRange(a), t.focus());
21
23
  }
22
- function l(e) {
24
+ function f(e) {
23
25
  return String(e).padStart(2, "0");
24
26
  }
25
- function u(e) {
27
+ function p(e) {
26
28
  return (e || "").replace(/\D/g, "");
27
29
  }
28
- function d(e) {
30
+ function m(e) {
29
31
  if (e == null || e === "" || typeof e != "string") return "";
30
32
  let t = e.trim(), n = /^(\d{1,2}):(\d{2})(?::(\d{2}))?$/.exec(t);
31
33
  if (!n) return "";
32
34
  let r = Math.min(23, Math.max(0, parseInt(n[1], 10))), i = Math.min(59, Math.max(0, parseInt(n[2], 10)));
33
- return `${l(r)}:${l(i)}`;
35
+ return `${f(r)}:${f(i)}`;
34
36
  }
35
- function f(e) {
36
- let t = d(e);
37
+ function h(e) {
38
+ let t = m(e);
37
39
  if (!t) return {
38
40
  h: null,
39
41
  m: null
@@ -44,224 +46,396 @@ function f(e) {
44
46
  m: r
45
47
  };
46
48
  }
47
- function p(e, t) {
49
+ function g(e, t) {
48
50
  if (e === null && t === null) return "";
49
51
  let n = e ?? 0, r = t ?? 0;
50
- return `${l(n)}:${l(r)}`;
52
+ return `${f(n)}:${f(r)}`;
51
53
  }
52
- function m(e, t) {
53
- let n = u(e).slice(0, 2);
54
+ function _(e, t) {
55
+ let n = p(e).slice(0, 2);
54
56
  if (n === "") return null;
55
57
  let r = parseInt(n, 10);
56
58
  return Number.isNaN(r) ? null : Math.min(t, Math.max(0, r));
57
59
  }
58
- function h(e) {
59
- let t = d(e);
60
+ function v(e) {
61
+ let t = m(e);
60
62
  if (!t) return null;
61
63
  let [n, r] = t.split(":").map((e) => parseInt(e, 10));
62
64
  return n * 60 + r;
63
65
  }
64
- function ee(e, t) {
66
+ function y(e, t) {
65
67
  let n = Math.max(1, Math.round(t / 60));
66
68
  if (n <= 1) return e;
67
69
  let r = Math.round(e / n) * n;
68
70
  return Math.min(59, Math.max(0, r));
69
71
  }
70
- function g(e, t, n) {
71
- let r = d(e);
72
+ function b(e, t, n) {
73
+ let r = m(e);
72
74
  if (!r) return "";
73
- let i = h(r);
75
+ let i = v(r);
74
76
  if (i === null) return "";
75
77
  if (t) {
76
- let e = h(t);
78
+ let e = v(t);
77
79
  e !== null && (i = Math.max(i, e));
78
80
  }
79
81
  if (n) {
80
- let e = h(n);
82
+ let e = v(n);
81
83
  e !== null && (i = Math.min(i, e));
82
84
  }
83
- return p(Math.floor(i / 60), i % 60);
85
+ return g(Math.floor(i / 60), i % 60);
86
+ }
87
+ function ee(e, t, n, r) {
88
+ if (r && r.length > 0) {
89
+ let e = /* @__PURE__ */ new Set(), i = [];
90
+ for (let a of r) {
91
+ let r = m(a);
92
+ !r || e.has(r) || (e.add(r), i.push(b(r, t, n) || r));
93
+ }
94
+ return i;
95
+ }
96
+ let i = Math.max(1, Math.round(e / 60));
97
+ i < 5 && (i = 15);
98
+ let a = t ? v(t) ?? 0 : 0, o = n ? v(n) ?? 1439 : 1439, s = Math.min(1439, o), c = [], l = Math.ceil(a / i) * i;
99
+ for (let e = l; e <= s; e += i) {
100
+ let t = Math.floor(e / 60);
101
+ if (t > 23) break;
102
+ let n = e % 60;
103
+ c.push(g(t, n));
104
+ }
105
+ return c;
84
106
  }
85
- function _({ value: h = "", form: _, onValue: v, onBlur: y, name: b = "", placeholder: x = "", label: S = "", hidden: C = !1, disabled: w = !1, error: T = "", className: E = "", after: D = "", before: O = "", step: k = 60, min: A, max: j, id: M, spellCheck: N = !1, align: P = "start" }) {
86
- let { value: F, version: I } = n(_, b, h), L = d(F), R = !w, z = i.useRef(null), B = i.useRef(null), V = i.useRef(null), [H, U] = i.useState(!1);
87
- i.useLayoutEffect(() => {
88
- if (!H || !R) return;
89
- let { h: e, m: t } = f(L), n = (e, t) => {
107
+ function te() {
108
+ return /* @__PURE__ */ c("svg", {
109
+ viewBox: "0 0 24 24",
110
+ width: "20",
111
+ height: "20",
112
+ fill: "none",
113
+ "aria-hidden": !0,
114
+ children: [/* @__PURE__ */ s("circle", {
115
+ cx: "12",
116
+ cy: "12",
117
+ r: "8.25",
118
+ stroke: "currentColor",
119
+ strokeWidth: "1.75"
120
+ }), /* @__PURE__ */ s("path", {
121
+ d: "M12 7.5V12l3 2",
122
+ stroke: "currentColor",
123
+ strokeWidth: "1.75",
124
+ strokeLinecap: "round",
125
+ strokeLinejoin: "round"
126
+ })]
127
+ });
128
+ }
129
+ function x({ value: i = "", form: v, onValue: x, onBlur: S, name: C = "", placeholder: re = "", label: w = "", hidden: ie = !1, disabled: T = !1, error: ae = "", className: E = "", after: D = "", before: O = "", step: k = 60, min: A, max: j, id: oe, spellCheck: M = !1, align: se = "start", picker: N = !1, presets: P }) {
130
+ let { value: ce, version: le } = n(v, C, i), F = m(ce), I = !T, L = a.useRef(null), R = a.useRef(null), ue = a.useRef(null), z = a.useRef(null), [B, V] = a.useState(!1), [H, U] = a.useState(!1), [W, G] = a.useState(null), [K, q] = a.useState(0), J = a.useId(), Y = a.useMemo(() => ee(k, A, j, P), [
131
+ k,
132
+ A,
133
+ j,
134
+ P
135
+ ]);
136
+ a.useLayoutEffect(() => {
137
+ if (!B || !I) return;
138
+ let { h: e, m: t } = h(F), n = (e, t) => {
90
139
  e && (t === null ? e.innerHTML = "<br>" : e.textContent = String(t));
91
140
  };
92
- n(z.current, e), n(B.current, t);
141
+ n(L.current, e), n(R.current, t);
93
142
  }, [
94
- H,
95
- L,
96
- I,
97
- R
143
+ B,
144
+ F,
145
+ le,
146
+ I
98
147
  ]);
99
- let W = i.useCallback(() => {
100
- let e = m(z.current?.textContent || "", 23), t = m(B.current?.textContent || "", 59);
148
+ let X = a.useCallback(() => {
149
+ let e = _(L.current?.textContent || "", 23), t = _(R.current?.textContent || "", 59);
101
150
  if (e === null && t === null) return "";
102
- let n = p(e, t);
151
+ let n = g(e, t);
103
152
  if (!n) return "";
104
- let { h: r, m: i } = f(n);
105
- return i !== null && (n = p(r, ee(i, k))), n &&= g(n, A, j), n || "";
153
+ let { h: r, m: i } = h(n);
154
+ return i !== null && (n = g(r, y(i, k))), n &&= b(n, A, j), n || "";
106
155
  }, [
107
156
  A,
108
157
  j,
109
158
  k
110
- ]), G = (e) => (t) => {
111
- if (t.preventDefault(), !R) return;
112
- let n = u(t.clipboardData?.getData("text/plain") ?? ""), r = e === "hour" ? 23 : 59;
159
+ ]), Z = a.useCallback((e) => {
160
+ let t = m(e);
161
+ if (t) {
162
+ let { h: e, m: n } = h(t);
163
+ n !== null && (t = g(e, y(n, k))), t = b(t, A, j);
164
+ }
165
+ return v && C && v.setValue({
166
+ name: C,
167
+ value: t
168
+ }), x && x !== v?.onValue && x({
169
+ value: t,
170
+ name: C
171
+ }), t;
172
+ }, [
173
+ v,
174
+ C,
175
+ x,
176
+ A,
177
+ j,
178
+ k
179
+ ]), de = a.useCallback(() => {
180
+ if (!N || !I || Y.length === 0) return;
181
+ let e = z.current;
182
+ if (!e) return;
183
+ let t = Math.max(0, Y.findIndex((e) => e === F));
184
+ q(t >= 0 ? t : 0), G(e.getBoundingClientRect()), U(!0);
185
+ }, [
186
+ N,
187
+ I,
188
+ Y,
189
+ F
190
+ ]);
191
+ a.useEffect(() => {
192
+ if (!H) return;
193
+ let e = () => {
194
+ let e = z.current;
195
+ e && G(e.getBoundingClientRect());
196
+ };
197
+ return window.addEventListener("scroll", e, !0), window.addEventListener("resize", e), () => {
198
+ window.removeEventListener("scroll", e, !0), window.removeEventListener("resize", e);
199
+ };
200
+ }, [H]), a.useEffect(() => {
201
+ if (!H) return;
202
+ let e = (e) => {
203
+ if (e.key === "Escape") {
204
+ e.preventDefault(), U(!1);
205
+ return;
206
+ }
207
+ if (Y.length !== 0) {
208
+ if (e.key === "ArrowDown") e.preventDefault(), q((e) => (e + 1) % Y.length);
209
+ else if (e.key === "ArrowUp") e.preventDefault(), q((e) => e - 1 < 0 ? Y.length - 1 : e - 1);
210
+ else if (e.key === "Enter") {
211
+ e.preventDefault();
212
+ let t = Y[K];
213
+ t && (Z(t), U(!1));
214
+ }
215
+ }
216
+ };
217
+ return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
218
+ }, [
219
+ H,
220
+ Y,
221
+ K,
222
+ Z
223
+ ]);
224
+ let Q = (e) => (t) => {
225
+ if (t.preventDefault(), !I) return;
226
+ let n = p(t.clipboardData?.getData("text/plain") ?? ""), r = e === "hour" ? 23 : 59;
113
227
  if (n.length >= 4) {
114
- let e = Math.min(23, Math.max(0, parseInt(n.slice(0, 2), 10))), t = Math.min(59, Math.max(0, parseInt(n.slice(2, 4), 10))), r = z.current, i = B.current;
115
- r && (r.textContent = String(e), queueMicrotask(() => c(String(e).length, r))), i && (i.textContent = String(t), queueMicrotask(() => c(String(t).length, i)));
228
+ let e = Math.min(23, Math.max(0, parseInt(n.slice(0, 2), 10))), t = Math.min(59, Math.max(0, parseInt(n.slice(2, 4), 10))), r = L.current, i = R.current;
229
+ r && (r.textContent = String(e), queueMicrotask(() => d(String(e).length, r))), i && (i.textContent = String(t), queueMicrotask(() => d(String(t).length, i)));
116
230
  return;
117
231
  }
118
232
  let i = n.slice(0, 2), a = t.currentTarget;
119
233
  if (i === "") {
120
- a.innerHTML = "<br>", queueMicrotask(() => c(0, a));
234
+ a.innerHTML = "<br>", queueMicrotask(() => d(0, a));
121
235
  return;
122
236
  }
123
237
  let o = parseInt(i, 10);
124
238
  if (Number.isNaN(o)) return;
125
239
  let s = String(Math.min(r, Math.max(0, o)));
126
- a.textContent = s, queueMicrotask(() => c(s.length, a));
127
- }, K = (e) => {
128
- let t = e.target, n = t.textContent || "", r = s(t), i = n.slice(0, r).replace(/\D/g, "").length, a = u(n).slice(0, 2);
240
+ a.textContent = s, queueMicrotask(() => d(s.length, a));
241
+ }, fe = (e) => {
242
+ let t = e.target, n = t.textContent || "", r = u(t), i = n.slice(0, r).replace(/\D/g, "").length, a = p(n).slice(0, 2);
129
243
  if (a === "") {
130
- t.innerHTML = "<br>", queueMicrotask(() => c(0, t));
244
+ t.innerHTML = "<br>", queueMicrotask(() => d(0, t));
131
245
  return;
132
246
  }
133
247
  let o = parseInt(a, 10);
134
248
  if (Number.isNaN(o)) return;
135
- let l = String(Math.min(23, Math.max(0, o)));
136
- t.textContent = l;
137
- let d = Math.min(i, l.length);
138
- queueMicrotask(() => c(d, t));
139
- }, q = (e) => {
140
- let t = e.target, n = t.textContent || "", r = s(t), i = n.slice(0, r).replace(/\D/g, "").length, a = u(n).slice(0, 2);
249
+ let s = String(Math.min(23, Math.max(0, o)));
250
+ t.textContent = s;
251
+ let c = Math.min(i, s.length);
252
+ queueMicrotask(() => d(c, t));
253
+ }, pe = (e) => {
254
+ let t = e.target, n = t.textContent || "", r = u(t), i = n.slice(0, r).replace(/\D/g, "").length, a = p(n).slice(0, 2);
141
255
  if (a === "") {
142
- t.innerHTML = "<br>", queueMicrotask(() => c(0, t));
256
+ t.innerHTML = "<br>", queueMicrotask(() => d(0, t));
143
257
  return;
144
258
  }
145
259
  let o = parseInt(a, 10);
146
260
  if (Number.isNaN(o)) return;
147
- let l = String(Math.min(59, Math.max(0, o)));
148
- t.textContent = l;
149
- let d = Math.min(i, l.length);
150
- queueMicrotask(() => c(d, t));
151
- }, te = (e) => {
152
- (e.key === "Enter" || e.key === ":") && (e.preventDefault(), B.current?.focus());
153
- }, ne = (e) => {
261
+ let s = String(Math.min(59, Math.max(0, o)));
262
+ t.textContent = s;
263
+ let c = Math.min(i, s.length);
264
+ queueMicrotask(() => d(c, t));
265
+ }, me = (e) => {
266
+ (e.key === "Enter" || e.key === ":") && (e.preventDefault(), R.current?.focus());
267
+ }, he = (e) => {
154
268
  e.key === "Enter" && e.preventDefault();
155
- }, J = (e) => {
269
+ }, ge = (e) => {
156
270
  let t = e.currentTarget;
157
- (t.textContent || "").trim().length || (t.innerHTML = "<br>"), R && U(!0);
158
- }, Y = (e) => {
271
+ (t.textContent || "").trim().length || (t.innerHTML = "<br>"), I && V(!0);
272
+ }, _e = (e) => {
159
273
  r.Blur(e);
160
274
  };
161
- i.useEffect(() => {
162
- let e = V.current;
275
+ a.useEffect(() => {
276
+ let e = ue.current;
163
277
  if (!e) return;
164
278
  let t = (t) => {
165
279
  let n = t.relatedTarget;
166
280
  if (n && e.contains(n)) return;
167
- let r = W();
168
- _ && b && _.setValue({
169
- name: b,
281
+ let r = X();
282
+ v && C && v.setValue({
283
+ name: C,
170
284
  value: r
171
- }), v && v !== _?.onValue && v({
285
+ }), x && x !== v?.onValue && x({
172
286
  value: r,
173
- name: b
174
- }), y && b && y({
287
+ name: C
288
+ }), S && C && S({
175
289
  value: r,
176
- name: b
177
- }), U(!1);
290
+ name: C
291
+ }), V(!1);
178
292
  };
179
293
  return e.addEventListener("focusout", t), () => e.removeEventListener("focusout", t);
180
294
  }, [
181
- _,
182
- b,
183
- y,
295
+ v,
296
+ C,
297
+ S,
184
298
  A,
185
299
  j,
186
300
  k,
187
- W
301
+ X
188
302
  ]);
189
- let { h: X, m: Z } = f(L), Q = {};
190
- R && (Q.edit = "");
191
- let $ = { ...Q }, re = { ...Q };
192
- x && ($.placeholder = x);
193
- let ie = L !== "" || H;
194
- return C && L === "" ? null : /* @__PURE__ */ o(t, {
195
- type: "time",
196
- label: S,
197
- error: T,
198
- element_blok: { className: [E || ""] },
199
- element_input: {
200
- className: [
201
- e.w,
202
- e.time,
203
- P === "center" ? e.timeAlignCenter : ""
204
- ].filter(Boolean),
205
- props: { "data-disabled": w || !R ? "true" : void 0 }
206
- },
207
- children: [
208
- O ? /* @__PURE__ */ a("span", {
209
- className: e.affix,
210
- children: O
211
- }) : null,
212
- /* @__PURE__ */ o("div", {
213
- ref: V,
214
- className: e.timeInner,
215
- role: "group",
216
- "aria-label": S || "Время",
217
- children: [
218
- /* @__PURE__ */ a("div", {
219
- id: M,
220
- ref: z,
221
- className: e.timePart,
222
- contentEditable: R ? "plaintext-only" : !1,
223
- suppressContentEditableWarning: !0,
224
- spellCheck: N,
225
- inputMode: "numeric",
226
- onPaste: G("hour"),
227
- onInput: K,
228
- onKeyDown: te,
229
- onFocus: J,
230
- onBlur: Y,
231
- "aria-label": "Часы, 0–23",
232
- ...$,
233
- children: !R || !H ? X === null ? "" : l(X) : null
234
- }),
235
- ie && /* @__PURE__ */ a("span", {
236
- className: e.timeSep,
237
- "aria-hidden": "true",
238
- children: ":"
239
- }),
240
- /* @__PURE__ */ a("div", {
241
- ref: B,
242
- className: e.timePart,
243
- contentEditable: R ? "plaintext-only" : !1,
244
- suppressContentEditableWarning: !0,
245
- spellCheck: N,
246
- inputMode: "numeric",
247
- onPaste: G("minute"),
248
- onInput: q,
249
- onKeyDown: ne,
250
- onFocus: J,
251
- onBlur: Y,
252
- "aria-label": "Минуты, 0–59",
253
- ...re,
254
- children: !R || !H ? Z === null ? "" : l(Z) : null
255
- })
256
- ]
257
- }),
258
- D ? /* @__PURE__ */ a("span", {
259
- className: e.affix,
260
- children: D
261
- }) : null
262
- ]
263
- });
303
+ let { h: ve, m: ye } = h(F), $ = {};
304
+ I && ($.edit = "");
305
+ let be = { ...$ }, xe = { ...$ };
306
+ re && (be.placeholder = re);
307
+ let Se = F !== "" || B;
308
+ return ie && F === "" ? null : /* @__PURE__ */ c(o, { children: [/* @__PURE__ */ s("div", {
309
+ ref: z,
310
+ children: /* @__PURE__ */ c(t, {
311
+ type: "time",
312
+ label: w,
313
+ error: ae,
314
+ element_blok: { className: [E || ""] },
315
+ element_input: {
316
+ className: [
317
+ e.w,
318
+ e.time,
319
+ se === "center" ? e.timeAlignCenter : ""
320
+ ].filter(Boolean),
321
+ props: { "data-disabled": T || !I ? "true" : void 0 }
322
+ },
323
+ children: [
324
+ O ? /* @__PURE__ */ s("span", {
325
+ className: e.affix,
326
+ children: O
327
+ }) : null,
328
+ /* @__PURE__ */ c("div", {
329
+ ref: ue,
330
+ className: e.timeInner,
331
+ role: "group",
332
+ "aria-label": w || "Время",
333
+ children: [
334
+ /* @__PURE__ */ s("div", {
335
+ id: oe,
336
+ ref: L,
337
+ className: e.timePart,
338
+ contentEditable: I ? "plaintext-only" : !1,
339
+ suppressContentEditableWarning: !0,
340
+ spellCheck: M,
341
+ inputMode: "numeric",
342
+ onPaste: Q("hour"),
343
+ onInput: fe,
344
+ onKeyDown: me,
345
+ onFocus: ge,
346
+ onBlur: _e,
347
+ "aria-label": "Часы, 0–23",
348
+ ...be,
349
+ children: !I || !B ? ve === null ? "" : f(ve) : null
350
+ }),
351
+ Se && /* @__PURE__ */ s("span", {
352
+ className: e.timeSep,
353
+ "aria-hidden": "true",
354
+ children: ":"
355
+ }),
356
+ /* @__PURE__ */ s("div", {
357
+ ref: R,
358
+ className: e.timePart,
359
+ contentEditable: I ? "plaintext-only" : !1,
360
+ suppressContentEditableWarning: !0,
361
+ spellCheck: M,
362
+ inputMode: "numeric",
363
+ onPaste: Q("minute"),
364
+ onInput: pe,
365
+ onKeyDown: he,
366
+ onFocus: ge,
367
+ onBlur: _e,
368
+ "aria-label": "Минуты, 0–59",
369
+ ...xe,
370
+ children: !I || !B ? ye === null ? "" : f(ye) : null
371
+ })
372
+ ]
373
+ }),
374
+ N ? /* @__PURE__ */ s("button", {
375
+ type: "button",
376
+ className: e.timePickerBtn,
377
+ disabled: !I || Y.length === 0,
378
+ "aria-label": "Быстрый выбор времени",
379
+ "aria-haspopup": "listbox",
380
+ "aria-expanded": H,
381
+ "aria-controls": J,
382
+ onMouseDown: (e) => e.preventDefault(),
383
+ onClick: de,
384
+ children: /* @__PURE__ */ s(te, {})
385
+ }) : null,
386
+ D ? /* @__PURE__ */ s("span", {
387
+ className: e.affix,
388
+ children: D
389
+ }) : null
390
+ ]
391
+ })
392
+ }), H && W && l(/* @__PURE__ */ s(ne, {
393
+ parent: W,
394
+ slots: Y,
395
+ current: F,
396
+ activeIndex: K,
397
+ listId: J,
398
+ className: E,
399
+ setOpen: U,
400
+ setActiveIndex: q,
401
+ onPick: (e) => {
402
+ Z(e), U(!1);
403
+ }
404
+ }), document.body)] });
264
405
  }
265
- _.displayName = "TimeField";
406
+ x.displayName = "TimeField";
407
+ var ne = ({ parent: e, slots: t, current: n, activeIndex: r, listId: l, className: u, setOpen: d, setActiveIndex: f, onPick: p }) => {
408
+ let m = a.useRef(null);
409
+ a.useEffect(() => {
410
+ (m.current?.querySelector("[data-focus=\"true\"]"))?.scrollIntoView({ block: "nearest" });
411
+ }, [r]);
412
+ let h = window.innerHeight - e.bottom < 306 ? Math.max(6, e.top - 300 - 6) : Math.min(window.innerHeight - 300 - 6, e.bottom + 6), g = Math.max(e.width, 160), _ = Math.min(Math.max(6, e.left), window.innerWidth - g - 6);
413
+ return /* @__PURE__ */ c(o, { children: [/* @__PURE__ */ s("div", {
414
+ className: i.o,
415
+ onClick: () => d(!1),
416
+ "aria-hidden": !0
417
+ }), /* @__PURE__ */ s("div", {
418
+ className: [i.l, u].filter((e) => e !== void 0).join(" "),
419
+ style: {
420
+ top: h + "px",
421
+ left: _ + "px",
422
+ width: g
423
+ },
424
+ children: /* @__PURE__ */ s("ul", {
425
+ id: l,
426
+ role: "listbox",
427
+ ref: m,
428
+ children: t.map((e, t) => /* @__PURE__ */ s("li", {
429
+ id: `${l}-opt-${t}`,
430
+ role: "option",
431
+ "aria-selected": n === e,
432
+ "data-focus": r === t ? "true" : "false",
433
+ onMouseEnter: () => f(t),
434
+ onClick: () => p(e),
435
+ children: e
436
+ }, e))
437
+ })
438
+ })] });
439
+ };
266
440
  //#endregion
267
- export { _ as default };
441
+ export { x as default };
@@ -0,0 +1,8 @@
1
+ import { TInput } from './type';
2
+ /** UrlField — нативный input type=url. */
3
+ export type TUrl = TInput;
4
+ declare function UrlField({ value, form, onValue, onBlur: onBlurField, name, placeholder, label, error, hidden, disabled, className, after, before, maxLength, autoComplete, id, }: TUrl): import("react/jsx-runtime").JSX.Element | null;
5
+ declare namespace UrlField {
6
+ var displayName: string;
7
+ }
8
+ export default UrlField;