@rpcbase/ui 0.207.0 → 0.208.0

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.
Files changed (232) hide show
  1. package/dist/index.js +7 -7
  2. package/dist/index19.js +1 -1
  3. package/dist/index19.js.map +1 -1
  4. package/dist/index200.js +56 -55
  5. package/dist/index200.js.map +1 -1
  6. package/dist/index201.js +60 -8
  7. package/dist/index201.js.map +1 -1
  8. package/dist/index202.js +7 -15
  9. package/dist/index202.js.map +1 -1
  10. package/dist/index203.js +15 -143
  11. package/dist/index203.js.map +1 -1
  12. package/dist/index204.js +145 -4
  13. package/dist/index204.js.map +1 -1
  14. package/dist/index205.js +4 -11
  15. package/dist/index205.js.map +1 -1
  16. package/dist/index206.js +10 -104
  17. package/dist/index206.js.map +1 -1
  18. package/dist/index207.js +94 -347
  19. package/dist/index207.js.map +1 -1
  20. package/dist/index208.js +349 -87
  21. package/dist/index208.js.map +1 -1
  22. package/dist/index209.js +73 -304
  23. package/dist/index209.js.map +1 -1
  24. package/dist/index210.js +309 -193
  25. package/dist/index210.js.map +1 -1
  26. package/dist/index211.js +211 -19
  27. package/dist/index211.js.map +1 -1
  28. package/dist/index212.js +18 -27
  29. package/dist/index212.js.map +1 -1
  30. package/dist/index213.js +27 -187
  31. package/dist/index213.js.map +1 -1
  32. package/dist/index214.js +186 -16
  33. package/dist/index214.js.map +1 -1
  34. package/dist/index215.js +18 -44
  35. package/dist/index215.js.map +1 -1
  36. package/dist/index216.js +60 -8
  37. package/dist/index216.js.map +1 -1
  38. package/dist/index217.js +42 -23
  39. package/dist/index217.js.map +1 -1
  40. package/dist/index218.js +9 -44
  41. package/dist/index218.js.map +1 -1
  42. package/dist/index219.js +25 -18
  43. package/dist/index219.js.map +1 -1
  44. package/dist/index220.js +45 -3
  45. package/dist/index220.js.map +1 -1
  46. package/dist/index221.js +17 -4
  47. package/dist/index221.js.map +1 -1
  48. package/dist/index222.js +3 -21
  49. package/dist/index222.js.map +1 -1
  50. package/dist/index223.js +4 -24
  51. package/dist/index223.js.map +1 -1
  52. package/dist/index224.js +17 -64
  53. package/dist/index224.js.map +1 -1
  54. package/dist/index225.js +23 -13
  55. package/dist/index225.js.map +1 -1
  56. package/dist/index226.js +68 -4
  57. package/dist/index226.js.map +1 -1
  58. package/dist/index227.js +14 -50
  59. package/dist/index227.js.map +1 -1
  60. package/dist/index228.js +4 -6
  61. package/dist/index228.js.map +1 -1
  62. package/dist/index229.js +50 -26
  63. package/dist/index229.js.map +1 -1
  64. package/dist/index230.js +5 -13
  65. package/dist/index230.js.map +1 -1
  66. package/dist/index231.js +25 -8
  67. package/dist/index231.js.map +1 -1
  68. package/dist/index232.js +17 -3
  69. package/dist/index232.js.map +1 -0
  70. package/dist/index233.js +8 -24
  71. package/dist/index233.js.map +1 -1
  72. package/dist/index234.js +2 -71
  73. package/dist/index235.js +29 -3
  74. package/dist/index235.js.map +1 -0
  75. package/dist/index236.js +69 -12
  76. package/dist/index236.js.map +1 -1
  77. package/dist/index237.js +3 -54
  78. package/dist/index238.js +11 -114
  79. package/dist/index238.js.map +1 -1
  80. package/dist/index239.js +51 -6
  81. package/dist/index239.js.map +1 -1
  82. package/dist/index240.js +115 -13
  83. package/dist/index240.js.map +1 -1
  84. package/dist/index241.js +6 -687
  85. package/dist/index241.js.map +1 -1
  86. package/dist/index242.js +13 -253
  87. package/dist/index242.js.map +1 -1
  88. package/dist/index243.js +662 -676
  89. package/dist/index243.js.map +1 -1
  90. package/dist/index244.js +252 -7430
  91. package/dist/index244.js.map +1 -1
  92. package/dist/index245.js +700 -6
  93. package/dist/index245.js.map +1 -1
  94. package/dist/index246.js +7429 -11
  95. package/dist/index246.js.map +1 -1
  96. package/dist/index247.js +5 -4
  97. package/dist/index247.js.map +1 -1
  98. package/dist/index248.js +11 -458
  99. package/dist/index248.js.map +1 -1
  100. package/dist/index249.js +5 -37
  101. package/dist/index249.js.map +1 -1
  102. package/dist/index250.js +458 -18
  103. package/dist/index250.js.map +1 -1
  104. package/dist/index251.js +34 -24
  105. package/dist/index251.js.map +1 -1
  106. package/dist/index252.js +19 -4
  107. package/dist/index252.js.map +1 -1
  108. package/dist/index253.js +23 -54
  109. package/dist/index253.js.map +1 -1
  110. package/dist/index254.js +4 -7
  111. package/dist/index254.js.map +1 -1
  112. package/dist/index255.js +57 -11
  113. package/dist/index255.js.map +1 -1
  114. package/dist/index256.js +8 -3
  115. package/dist/index256.js.map +1 -1
  116. package/dist/index257.js +12 -16
  117. package/dist/index257.js.map +1 -1
  118. package/dist/index258.js +3 -26
  119. package/dist/index258.js.map +1 -1
  120. package/dist/index259.js +15 -42
  121. package/dist/index259.js.map +1 -1
  122. package/dist/index260.js +25 -13
  123. package/dist/index260.js.map +1 -1
  124. package/dist/index261.js +40 -22
  125. package/dist/index261.js.map +1 -1
  126. package/dist/index262.js +13 -17
  127. package/dist/index262.js.map +1 -1
  128. package/dist/index263.js +24 -34
  129. package/dist/index263.js.map +1 -1
  130. package/dist/index264.js +17 -5
  131. package/dist/index264.js.map +1 -1
  132. package/dist/index265.js +35 -9
  133. package/dist/index265.js.map +1 -1
  134. package/dist/index266.js +5 -8
  135. package/dist/index266.js.map +1 -1
  136. package/dist/index267.js +9 -9
  137. package/dist/index267.js.map +1 -1
  138. package/dist/index268.js +8 -10
  139. package/dist/index268.js.map +1 -1
  140. package/dist/index269.js +9 -7
  141. package/dist/index269.js.map +1 -1
  142. package/dist/index270.js +9 -72
  143. package/dist/index270.js.map +1 -1
  144. package/dist/index271.js +7 -171
  145. package/dist/index271.js.map +1 -1
  146. package/dist/index272.js +63 -104
  147. package/dist/index272.js.map +1 -1
  148. package/dist/index273.js +169 -12
  149. package/dist/index273.js.map +1 -1
  150. package/dist/index274.js +109 -75
  151. package/dist/index274.js.map +1 -1
  152. package/dist/index275.js +12 -44
  153. package/dist/index275.js.map +1 -1
  154. package/dist/index276.js +79 -12
  155. package/dist/index276.js.map +1 -1
  156. package/dist/index277.js +45 -15
  157. package/dist/index277.js.map +1 -1
  158. package/dist/index278.js +12 -98
  159. package/dist/index278.js.map +1 -1
  160. package/dist/index279.js +15 -55
  161. package/dist/index279.js.map +1 -1
  162. package/dist/index280.js +89 -98
  163. package/dist/index280.js.map +1 -1
  164. package/dist/index281.js +27 -42
  165. package/dist/index281.js.map +1 -1
  166. package/dist/index282.js +92 -97
  167. package/dist/index282.js.map +1 -1
  168. package/dist/index283.js +62 -46
  169. package/dist/index283.js.map +1 -1
  170. package/dist/index284.js +108 -38
  171. package/dist/index284.js.map +1 -1
  172. package/dist/index285.js +48 -135
  173. package/dist/index285.js.map +1 -1
  174. package/dist/index286.js +43 -139
  175. package/dist/index286.js.map +1 -1
  176. package/dist/index287.js +105 -217
  177. package/dist/index287.js.map +1 -1
  178. package/dist/index288.js +109 -210
  179. package/dist/index288.js.map +1 -1
  180. package/dist/index289.js +168 -212
  181. package/dist/index289.js.map +1 -1
  182. package/dist/index290.js +240 -5
  183. package/dist/index290.js.map +1 -1
  184. package/dist/index291.js +298 -6
  185. package/dist/index291.js.map +1 -1
  186. package/dist/index292.js +5 -7
  187. package/dist/index292.js.map +1 -1
  188. package/dist/index293.js +4 -4
  189. package/dist/index293.js.map +1 -1
  190. package/dist/index294.js +7 -6
  191. package/dist/index294.js.map +1 -1
  192. package/dist/index295.js +6 -21
  193. package/dist/index295.js.map +1 -1
  194. package/dist/index296.js +6 -10
  195. package/dist/index296.js.map +1 -1
  196. package/dist/index297.js +18 -123
  197. package/dist/index297.js.map +1 -1
  198. package/dist/index298.js +10 -164
  199. package/dist/index298.js.map +1 -1
  200. package/dist/index299.js +116 -58
  201. package/dist/index299.js.map +1 -1
  202. package/dist/index300.js +161 -106
  203. package/dist/index300.js.map +1 -1
  204. package/dist/index301.js +66 -489
  205. package/dist/index301.js.map +1 -1
  206. package/dist/index302.js +106 -59
  207. package/dist/index302.js.map +1 -1
  208. package/dist/index303.js +492 -4
  209. package/dist/index303.js.map +1 -1
  210. package/dist/index304.js +62 -27
  211. package/dist/index304.js.map +1 -1
  212. package/dist/index305.js +4 -66
  213. package/dist/index305.js.map +1 -1
  214. package/dist/index306.js +27 -152
  215. package/dist/index306.js.map +1 -1
  216. package/dist/index307.js +59 -555
  217. package/dist/index307.js.map +1 -1
  218. package/dist/index308.js +143 -201
  219. package/dist/index308.js.map +1 -1
  220. package/dist/index309.js +56 -326
  221. package/dist/index309.js.map +1 -1
  222. package/dist/index310.js +553 -260
  223. package/dist/index310.js.map +1 -1
  224. package/dist/index311.js +214 -0
  225. package/dist/index311.js.map +1 -0
  226. package/dist/index312.js +335 -0
  227. package/dist/index312.js.map +1 -0
  228. package/dist/index313.js +272 -0
  229. package/dist/index313.js.map +1 -0
  230. package/package.json +2 -2
  231. package/dist/index234.js.map +0 -1
  232. package/dist/index237.js.map +0 -1
package/dist/index245.js CHANGED
@@ -1,10 +1,704 @@
1
- import e from "./index244.js";
2
- //#region ../../node_modules/libphonenumber-js/min/exports/withMetadataArgument.js
3
- function t(t, n) {
4
- var r = Array.prototype.slice.call(n);
5
- return r.push(e), t.apply(this, r);
1
+ import { useIsTouchDevice as e } from "./index4.js";
2
+ import { cn as t } from "./index12.js";
3
+ import { DismissableLayerBranch as n } from "./index23.js";
4
+ import { Select as r, SelectContent as i, SelectItem as a, SelectTrigger as o, SelectValue as s } from "./index244.js";
5
+ import { c } from "react/compiler-runtime";
6
+ import * as l from "react";
7
+ import { jsx as u, jsxs as d } from "react/jsx-runtime";
8
+ import { Check as f, ChevronDown as p, ChevronUp as m } from "lucide-react";
9
+ import { createPortal as h } from "react-dom";
10
+ import { IMaskInput as g } from "react-imask";
11
+ import _, { InputMask as v } from "imask";
12
+ //#region src/components/HourPickerField/index.tsx
13
+ var y = _;
14
+ typeof y.InputMask != "function" && (y.InputMask = v);
15
+ function b(e) {
16
+ return String(e).padStart(2, "0");
17
+ }
18
+ function x(e) {
19
+ let t = e.trim();
20
+ if (!t) return null;
21
+ let n = /^(\d{1,2}):(\d{2})$/.exec(t);
22
+ if (!n) return null;
23
+ let r = Number(n[1]), i = Number(n[2]);
24
+ return !Number.isFinite(r) || !Number.isFinite(i) || r < 0 || r > 23 || i < 0 || i > 59 ? null : `${b(r)}:${b(i)}`;
25
+ }
26
+ function ee(e) {
27
+ let t = x(e);
28
+ if (t) return `parsed:${t}`;
29
+ let n = e.replace(/\D/g, "");
30
+ if (!n) return "empty";
31
+ if (n.length <= 2) return `hour:${Number(n)}`;
32
+ let r = n.slice(-2), i = n.slice(0, -2);
33
+ return `hour-minute:${Number(i)}:${r}`;
34
+ }
35
+ function te(e, t) {
36
+ let n = x(e);
37
+ return n ? C(t.find((e) => e.value === n)) ? {
38
+ parsed: n,
39
+ selectableValue: n
40
+ } : {
41
+ parsed: n,
42
+ selectableValue: null
43
+ } : null;
44
+ }
45
+ function S(e) {
46
+ let t = /^(\d{2}):(\d{2})$/.exec(e);
47
+ if (!t) return null;
48
+ let n = Number(t[1]), r = Number(t[2]);
49
+ return !Number.isFinite(n) || !Number.isFinite(r) ? null : n * 60 + r;
50
+ }
51
+ function C(e) {
52
+ return e ? !e.disabled : !1;
53
+ }
54
+ function w(e, t) {
55
+ let n = null, r = Infinity, i = -Infinity;
56
+ for (let a of t) {
57
+ if (!C(a)) continue;
58
+ let t = S(a.value);
59
+ if (t == null) continue;
60
+ let o = Math.abs(t - e);
61
+ (o < r || o === r && t > i) && (n = a, r = o, i = t);
62
+ }
63
+ return n;
64
+ }
65
+ function T({ direction: e, viewportRef: n, speed: r = 400, className: i }) {
66
+ let [a, o] = l.useState(!0), s = l.useRef(void 0), c = l.useRef(void 0), d = l.useRef(!1), f = l.useCallback(() => {
67
+ let t = n.current;
68
+ if (!t) {
69
+ o(!0);
70
+ return;
71
+ }
72
+ let { scrollTop: r, scrollHeight: i, clientHeight: a } = t, s = r > 2, c = r < i - a - 2;
73
+ if (!(i > a + 2)) {
74
+ o(!0);
75
+ return;
76
+ }
77
+ o(e === "up" ? !s : !c);
78
+ }, [e, n]);
79
+ l.useEffect(() => {
80
+ let e = n.current;
81
+ if (!e) return;
82
+ f();
83
+ let t = () => f(), r = () => f();
84
+ e.addEventListener("scroll", t, { passive: !0 });
85
+ let i = new ResizeObserver(r);
86
+ i.observe(e);
87
+ let a = new MutationObserver(r);
88
+ return a.observe(e, {
89
+ childList: !0,
90
+ subtree: !0
91
+ }), () => {
92
+ e.removeEventListener("scroll", t), i.disconnect(), a.disconnect();
93
+ };
94
+ }, [n, f]);
95
+ let h = l.useCallback(() => {
96
+ s.current &&= (cancelAnimationFrame(s.current), void 0), d.current = !1, c.current = void 0;
97
+ }, []), g = l.useCallback((t) => {
98
+ let i = n.current;
99
+ if (!i || a || !d.current) {
100
+ h();
101
+ return;
102
+ }
103
+ c.current ||= t;
104
+ let o = r * (t - c.current) / 1e3;
105
+ if (o < .1) {
106
+ s.current = requestAnimationFrame(g);
107
+ return;
108
+ }
109
+ let l = i.scrollTop, u = i.scrollHeight - i.clientHeight, p;
110
+ p = e === "up" ? Math.max(0, l - o) : Math.min(u, l + o), i.scrollTo({ top: p }), c.current = t, (e === "up" ? p > 1 : p < u - 1) && Math.abs(p - l) > .01 ? s.current = requestAnimationFrame(g) : (h(), setTimeout(f, 16));
111
+ }, [
112
+ f,
113
+ e,
114
+ a,
115
+ r,
116
+ h,
117
+ n
118
+ ]), _ = l.useCallback(() => {
119
+ a || !n.current || d.current || (d.current = !0, c.current = void 0, s.current = requestAnimationFrame(g));
120
+ }, [
121
+ a,
122
+ g,
123
+ n
124
+ ]);
125
+ return l.useEffect(() => h, [h]), /* @__PURE__ */ u("div", {
126
+ className: t("flex items-center justify-center py-1 select-none", a ? "cursor-default opacity-40" : "cursor-pointer opacity-100 hover:bg-accent/20", i),
127
+ onPointerEnter: () => {
128
+ a || _();
129
+ },
130
+ onPointerMove: () => {
131
+ !a && !d.current && _();
132
+ },
133
+ onPointerLeave: () => {
134
+ h();
135
+ },
136
+ children: u(e === "up" ? m : p, {
137
+ "aria-hidden": !0,
138
+ className: "h-4 w-4 opacity-50"
139
+ })
140
+ });
141
+ }
142
+ function E({ id: e, value: r, onChange: i, onValueUpdate: a, options: o, placeholder: s = "Select time", className: c, inputClassName: p, disabled: m, readOnly: g, open: _, onOpenChange: v, triggerTestId: y, contentTestId: b, isHydrated: x }) {
143
+ let ee = l.useId(), te = e ?? `hours-picker-${ee}`, S = l.useRef(null), w = l.useRef(null), E = l.useCallback((e) => {
144
+ w.current = e;
145
+ }, []), D = l.useRef(null), O = l.useRef(!1), [k, ne] = l.useState(null), j = l.useRef(null), M = l.useRef(null), N = l.useRef(null), [P, F] = l.useState(() => ({
146
+ left: 0,
147
+ top: 0,
148
+ width: 0
149
+ })), [I, L] = l.useState(!1), R = _ ?? I, z = v ?? L, B = l.useRef(!1);
150
+ B.current = R, l.useEffect(() => {
151
+ if (!R || m || g) return;
152
+ let e = S.current;
153
+ e instanceof HTMLInputElement && (typeof document < "u" && document.activeElement === e || e.focus({ preventScroll: !0 }));
154
+ }, [
155
+ m,
156
+ R,
157
+ g
158
+ ]);
159
+ let V = l.useCallback((e) => {
160
+ D.current = e, ne(e);
161
+ }, []), re = l.useCallback(() => {
162
+ O.current = !0;
163
+ }, []);
164
+ l.useEffect(() => {
165
+ if (!R) return;
166
+ let e = o.find((e) => e.value === r);
167
+ if (e && C(e)) {
168
+ V(e.value);
169
+ return;
170
+ }
171
+ V(o.find((e) => C(e))?.value ?? null);
172
+ }, [
173
+ R,
174
+ o,
175
+ V,
176
+ r
177
+ ]);
178
+ let ie = l.useCallback((e) => {
179
+ if (e === null) {
180
+ a && a(null);
181
+ return;
182
+ }
183
+ C(o.find((t) => t.value === e)) && a && a(e);
184
+ }, [a, o]), H = l.useCallback((e) => {
185
+ if (e === null) {
186
+ a && a(null), i(null);
187
+ return;
188
+ }
189
+ C(o.find((t) => t.value === e)) && (a && a(e), i(e));
190
+ }, [
191
+ i,
192
+ a,
193
+ o
194
+ ]);
195
+ l.useEffect(() => {
196
+ if (!R) return;
197
+ let e = j.current?.ownerDocument ?? document, t = e.defaultView ?? window, n = (e) => {
198
+ let t = e.target;
199
+ if (!(t instanceof Node)) return;
200
+ let n = j.current;
201
+ n && (n.contains(t) || M.current?.contains(t) || z(!1));
202
+ }, r = (e) => {
203
+ if (e.key !== "Escape" || !B.current) return;
204
+ let t = e.target;
205
+ if (!(t instanceof Node)) return;
206
+ let n = j.current, r = M.current;
207
+ !n?.contains(t) && !r?.contains(t) || (e.preventDefault(), e.stopPropagation(), z(!1));
208
+ };
209
+ return e.addEventListener("pointerdown", n, !0), t.addEventListener("keydown", r, !0), () => {
210
+ e.removeEventListener("pointerdown", n, !0), t.removeEventListener("keydown", r, !0);
211
+ };
212
+ }, [R, z]), l.useEffect(() => {
213
+ if (!R) return;
214
+ let e = M.current;
215
+ if (!e) return;
216
+ let t = (e) => {
217
+ let t = N.current;
218
+ if (!t) return;
219
+ let n = e.deltaY;
220
+ if (n === 0) return;
221
+ let r = Math.max(0, t.scrollHeight - t.clientHeight), i = t.scrollTop <= 0, a = t.scrollTop >= r, o = e.target;
222
+ if (o instanceof Node && t.contains(o)) {
223
+ (n < 0 && i || n > 0 && a) && e.preventDefault();
224
+ return;
225
+ }
226
+ e.preventDefault(), t.scrollTop = Math.min(r, Math.max(0, t.scrollTop + n));
227
+ };
228
+ return e.addEventListener("wheel", t, { passive: !1 }), () => {
229
+ e.removeEventListener("wheel", t);
230
+ };
231
+ }, [R]), l.useEffect(() => {
232
+ if (!R || _ !== void 0 && !v || typeof window > "u" || !("IntersectionObserver" in window)) return;
233
+ let e = S.current;
234
+ if (!(e instanceof HTMLElement)) return;
235
+ let t = !0, n = new IntersectionObserver((e) => {
236
+ if (!t) return;
237
+ let n = e[0];
238
+ n && !n.isIntersecting && z(!1);
239
+ });
240
+ return n.observe(e), () => {
241
+ t = !1, n.disconnect();
242
+ };
243
+ }, [
244
+ v,
245
+ R,
246
+ _,
247
+ z
248
+ ]);
249
+ let U = l.useCallback(() => {
250
+ if (typeof window > "u") return;
251
+ let e = S.current, t = M.current;
252
+ if (!(e instanceof HTMLElement) || !t) return;
253
+ let n = e.getBoundingClientRect(), r = t.offsetHeight, i = window.innerWidth ?? 0, a = window.innerHeight ?? 0, o = n.width, s = n.left;
254
+ s + o > i - 8 && (s = Math.max(8, i - o - 8)), s < 8 && (s = 8);
255
+ let c = n.bottom + 8, l = c + r > a - 8, u = n.top - r - 8;
256
+ l && u >= 8 && (c = u), c < 8 && (c = 8), c + r > a - 8 && (c = Math.max(8, a - r - 8)), F({
257
+ left: s,
258
+ top: c,
259
+ width: o
260
+ });
261
+ }, []);
262
+ return l.useLayoutEffect(() => {
263
+ if (!R || m || typeof window > "u") return;
264
+ U();
265
+ let e = window.requestAnimationFrame(U);
266
+ return window.addEventListener("scroll", U, !0), window.addEventListener("resize", U), () => {
267
+ window.cancelAnimationFrame(e), window.removeEventListener("scroll", U, !0), window.removeEventListener("resize", U);
268
+ };
269
+ }, [
270
+ m,
271
+ R,
272
+ U
273
+ ]), l.useEffect(() => {
274
+ if (!R) return;
275
+ let e = N.current;
276
+ if (!e) return;
277
+ let t = requestAnimationFrame(() => {
278
+ let t = e.querySelector("[role=\"option\"][data-state=\"checked\"]");
279
+ if (t instanceof HTMLElement) {
280
+ let n = t.offsetTop - 8, r = t.offsetTop + t.offsetHeight + 8;
281
+ if (n < e.scrollTop) {
282
+ e.scrollTop = Math.max(0, n);
283
+ return;
284
+ }
285
+ r > e.scrollTop + e.clientHeight && (e.scrollTop = Math.max(0, r - e.clientHeight));
286
+ return;
287
+ }
288
+ let n = Array.from(e.querySelectorAll("[role=\"option\"]"));
289
+ if (!n.length) return;
290
+ let r, i;
291
+ for (let e of n) {
292
+ if (!e.hasAttribute("data-disabled")) {
293
+ r = e;
294
+ break;
295
+ }
296
+ i = e;
297
+ }
298
+ r && (e.scrollTop = Math.max(0, (i || r).offsetTop - 8));
299
+ });
300
+ return () => cancelAnimationFrame(t);
301
+ }, [R, o]), l.useEffect(() => {
302
+ if (!R || !k || !O.current) return;
303
+ let e = N.current;
304
+ if (!e) return;
305
+ let t = e.querySelector(`[role="option"][data-value="${k}"]`);
306
+ if (!(t instanceof HTMLElement)) return;
307
+ let n = t.offsetTop - 8, r = t.offsetTop + t.offsetHeight + 8;
308
+ if (n < e.scrollTop) {
309
+ e.scrollTop = Math.max(0, n);
310
+ return;
311
+ }
312
+ r > e.scrollTop + e.clientHeight && (e.scrollTop = Math.max(0, r - e.clientHeight));
313
+ }, [k, R]), /* @__PURE__ */ u("div", {
314
+ "data-slot": "hours-picker-input",
315
+ className: t("w-[150px]", c),
316
+ ref: j,
317
+ children: /* @__PURE__ */ d("div", {
318
+ className: "relative",
319
+ children: [/* @__PURE__ */ u(A, {
320
+ id: te,
321
+ placeholder: s,
322
+ value: r,
323
+ onValueUpdate: ie,
324
+ onCommit: H,
325
+ options: o,
326
+ disabled: m,
327
+ readOnly: g,
328
+ open: R,
329
+ setOpen: z,
330
+ inputClassName: p,
331
+ triggerTestId: y,
332
+ isHydrated: x,
333
+ highlightedValueRef: D,
334
+ setHighlightedValue: V,
335
+ markKeyboardNavigation: re,
336
+ inputRef: (e) => {
337
+ S.current = e;
338
+ },
339
+ onDraftValueHandlerChange: E
340
+ }), R ? (() => {
341
+ let e = /* @__PURE__ */ u(n, { children: /* @__PURE__ */ d("div", {
342
+ ref: M,
343
+ "data-testid": b,
344
+ "data-state": "open",
345
+ className: t("pointer-events-auto fixed z-[60] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md", "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95"),
346
+ style: {
347
+ left: P.left,
348
+ top: P.top,
349
+ width: P.width
350
+ },
351
+ children: [
352
+ /* @__PURE__ */ u(T, {
353
+ direction: "up",
354
+ viewportRef: N
355
+ }),
356
+ /* @__PURE__ */ u("div", {
357
+ ref: N,
358
+ role: "listbox",
359
+ className: "max-h-64 overflow-y-auto p-1 [overscroll-behavior:contain] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden",
360
+ children: o.map((e) => {
361
+ let n = e.value === r;
362
+ return /* @__PURE__ */ d("div", {
363
+ role: "option",
364
+ "aria-selected": n,
365
+ "data-value": e.value,
366
+ "data-state": n ? "checked" : "unchecked",
367
+ "data-disabled": e.disabled ? "" : void 0,
368
+ className: t("relative flex w-full select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none cursor-pointer", e.disabled && "pointer-events-none opacity-50", k === e.value && "bg-accent text-accent-foreground"),
369
+ onMouseDown: (e) => {
370
+ e.preventDefault();
371
+ },
372
+ onClick: () => {
373
+ e.disabled || (w.current?.(e.value), V(e.value), S.current?.focus({ preventScroll: !0 }), H(e.value), z(!1));
374
+ },
375
+ onPointerEnter: () => {
376
+ O.current || (O.current = !1, V(e.value));
377
+ },
378
+ onPointerMove: (t) => {
379
+ O.current && t.movementX === 0 && t.movementY === 0 || (O.current = !1, V(e.value));
380
+ },
381
+ children: [/* @__PURE__ */ u("span", {
382
+ className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center",
383
+ children: n ? /* @__PURE__ */ u(f, {
384
+ "aria-hidden": !0,
385
+ className: "h-4 w-4"
386
+ }) : null
387
+ }), /* @__PURE__ */ d("div", {
388
+ className: "flex flex-col",
389
+ children: [/* @__PURE__ */ u("span", { children: e.label }), e.description == null ? null : /* @__PURE__ */ u("span", {
390
+ "data-slot": "description",
391
+ className: "text-xs text-muted-foreground",
392
+ children: e.description
393
+ })]
394
+ })]
395
+ }, e.value);
396
+ })
397
+ }),
398
+ /* @__PURE__ */ u(T, {
399
+ direction: "down",
400
+ viewportRef: N
401
+ })
402
+ ]
403
+ }) });
404
+ return typeof document > "u" ? e : h(e, document.body);
405
+ })() : null]
406
+ })
407
+ });
408
+ }
409
+ E.displayName = "HourPickerInput";
410
+ function D(e) {
411
+ let n = c(36), { id: a, value: l, onChange: f, onValueUpdate: p, options: m, placeholder: h, className: g, inputClassName: _, disabled: v, open: y, onOpenChange: b, triggerTestId: x, contentTestId: ee, isHydrated: te } = e, S = h === void 0 ? "Select time" : h, w;
412
+ n[0] !== f || n[1] !== p || n[2] !== m ? (w = (e) => {
413
+ C(m.find((t) => t.value === e)) && (p && p(e), f(e));
414
+ }, n[0] = f, n[1] = p, n[2] = m, n[3] = w) : w = n[3];
415
+ let T = w, E;
416
+ n[4] === g ? E = n[5] : (E = t("w-[150px]", g), n[4] = g, n[5] = E);
417
+ let D = l ?? "", k;
418
+ n[6] === T ? k = n[7] : (k = (e) => T(e), n[6] = T, n[7] = k);
419
+ let A = te ? "true" : void 0, ne = !l && "text-muted-foreground", j = y && "ring-2 ring-primary ring-offset-2", M;
420
+ n[8] !== _ || n[9] !== ne || n[10] !== j ? (M = t("transition-colors hover:bg-accent hover:text-accent-foreground", ne, j, "[&_[data-slot='description']]:hidden", _), n[8] = _, n[9] = ne, n[10] = j, n[11] = M) : M = n[11];
421
+ let N;
422
+ n[12] === S ? N = n[13] : (N = /* @__PURE__ */ u(s, { placeholder: S }), n[12] = S, n[13] = N);
423
+ let P;
424
+ n[14] !== a || n[15] !== N || n[16] !== A || n[17] !== M || n[18] !== x ? (P = /* @__PURE__ */ u(o, {
425
+ id: a,
426
+ "data-testid": x,
427
+ "data-hydrated": A,
428
+ className: M,
429
+ children: N
430
+ }), n[14] = a, n[15] = N, n[16] = A, n[17] = M, n[18] = x, n[19] = P) : P = n[19];
431
+ let F;
432
+ n[20] === m ? F = n[21] : (F = m.map(O), n[20] = m, n[21] = F);
433
+ let I;
434
+ n[22] !== ee || n[23] !== F ? (I = /* @__PURE__ */ u(i, {
435
+ "data-testid": ee,
436
+ autoScroll: "firstEnabledWithContext",
437
+ className: "max-h-64 overflow-y-auto",
438
+ children: F
439
+ }), n[22] = ee, n[23] = F, n[24] = I) : I = n[24];
440
+ let L;
441
+ n[25] !== v || n[26] !== b || n[27] !== y || n[28] !== P || n[29] !== I || n[30] !== D || n[31] !== k ? (L = /* @__PURE__ */ d(r, {
442
+ disabled: v,
443
+ open: y,
444
+ onOpenChange: b,
445
+ value: D,
446
+ onValueChange: k,
447
+ children: [P, I]
448
+ }), n[25] = v, n[26] = b, n[27] = y, n[28] = P, n[29] = I, n[30] = D, n[31] = k, n[32] = L) : L = n[32];
449
+ let R;
450
+ return n[33] !== L || n[34] !== E ? (R = /* @__PURE__ */ u("div", {
451
+ "data-slot": "hours-picker-field",
452
+ className: E,
453
+ children: L
454
+ }), n[33] = L, n[34] = E, n[35] = R) : R = n[35], R;
455
+ }
456
+ function O(e) {
457
+ return /* @__PURE__ */ d(a, {
458
+ value: e.value,
459
+ disabled: e.disabled,
460
+ children: [/* @__PURE__ */ u("span", { children: e.label }), e.description == null ? null : /* @__PURE__ */ u("span", {
461
+ "data-slot": "description",
462
+ className: "block text-xs text-muted-foreground",
463
+ children: e.description
464
+ })]
465
+ }, e.value);
466
+ }
467
+ function k(t) {
468
+ let n = c(4);
469
+ if (e()) {
470
+ let e;
471
+ return n[0] === t ? e = n[1] : (e = /* @__PURE__ */ u(D, { ...t }), n[0] = t, n[1] = e), e;
472
+ }
473
+ let r;
474
+ return n[2] === t ? r = n[3] : (r = /* @__PURE__ */ u(E, { ...t }), n[2] = t, n[3] = r), r;
475
+ }
476
+ k.displayName = "HourPickerField";
477
+ function A(e) {
478
+ let n = c(93), { id: r, placeholder: i, value: a, onValueUpdate: o, onCommit: s, options: f, disabled: m, readOnly: h, open: _, setOpen: v, inputClassName: y, triggerTestId: x, isHydrated: T, highlightedValueRef: E, setHighlightedValue: D, markKeyboardNavigation: O, inputRef: k, onDraftValueHandlerChange: A } = e, N = l.useRef(!1), P = l.useRef(!1), F = l.useRef(!1), I = l.useRef(null), L = l.useRef(null), R = l.useRef(!1), z;
479
+ n[0] === a ? z = n[1] : (z = () => a || "", n[0] = a, n[1] = z);
480
+ let [B, V] = l.useState(z), re, ie;
481
+ n[2] === A ? (re = n[3], ie = n[4]) : (re = () => (A((e) => {
482
+ V(e);
483
+ }), () => {
484
+ A(null);
485
+ }), ie = [A], n[2] = A, n[3] = re, n[4] = ie), l.useEffect(re, ie);
486
+ let H;
487
+ n[5] !== E || n[6] !== o || n[7] !== f || n[8] !== D || n[9] !== a ? (H = (e) => {
488
+ let t = E.current ?? a ?? "", n = f.findIndex((e) => e.value === t);
489
+ n === -1 && (n = e === 1 ? -1 : f.length);
490
+ for (let t = n + e; t >= 0 && t < f.length; t += e) {
491
+ let e = f[t];
492
+ if (C(e)) {
493
+ D(e.value), I.current = e.value, V(e.value), o(e.value);
494
+ return;
495
+ }
496
+ }
497
+ }, n[5] = E, n[6] = o, n[7] = f, n[8] = D, n[9] = a, n[10] = H) : H = n[10];
498
+ let U = H, ae, oe;
499
+ n[11] === a ? (ae = n[12], oe = n[13]) : (ae = () => {
500
+ N.current || V(a || "");
501
+ }, oe = [a], n[11] = a, n[12] = ae, n[13] = oe), l.useEffect(ae, oe);
502
+ let se, ce;
503
+ n[14] === B ? (se = n[15], ce = n[16]) : (se = () => {
504
+ L.current = ee(B);
505
+ }, ce = [B], n[14] = B, n[15] = se, n[16] = ce), l.useEffect(se, ce);
506
+ let le, ue;
507
+ n[17] === a ? (le = n[18], ue = n[19]) : (ue = () => {
508
+ a === null && (R.current = !1);
509
+ }, le = [a], n[17] = a, n[18] = le, n[19] = ue), l.useEffect(ue, le);
510
+ let de = !B && "text-muted-foreground", fe = _ && "ring-2 ring-primary ring-offset-2", pe;
511
+ n[20] !== y || n[21] !== de || n[22] !== fe ? (pe = t("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 pr-10 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "transition-colors group-hover:bg-accent group-hover:text-accent-foreground", de, fe, "[&_[data-slot='description']]:hidden", y), n[20] = y, n[21] = de, n[22] = fe, n[23] = pe) : pe = n[23];
512
+ let me = pe, he = T ? "true" : void 0, ge;
513
+ n[24] === Symbol.for("react.memo_cache_sentinel") ? (ge = [{
514
+ mask: "00:00",
515
+ lazy: !0
516
+ }, {
517
+ mask: "0:00",
518
+ lazy: !0
519
+ }], n[24] = ge) : ge = n[24];
520
+ let W;
521
+ n[25] === f ? W = n[26] : (W = (e, t) => {
522
+ let n = (t.value + e).replace(/\D/g, "");
523
+ if (n.length <= 2 || n.length >= 4) return t.compiledMasks[0];
524
+ let r = b(Number(n.slice(0, 2)));
525
+ return f.some((e) => e.value.startsWith(`${r}:`)) ? t.compiledMasks[0] : t.compiledMasks[1];
526
+ }, n[25] = f, n[26] = W);
527
+ let G;
528
+ n[27] !== s || n[28] !== a ? (G = (e, t, n) => {
529
+ if (!n) return;
530
+ let r = typeof e == "string" ? e : String(e ?? ""), i = r.replace(/\D/g, ""), o = ee(r);
531
+ if (L.current !== o) {
532
+ if (L.current = o, V(r), i.length !== 0) {
533
+ R.current = !1;
534
+ return;
535
+ }
536
+ a && !R.current && (R.current = !0, s(null));
537
+ }
538
+ }, n[27] = s, n[28] = a, n[29] = G) : G = n[29];
539
+ let K;
540
+ n[30] !== s || n[31] !== f || n[32] !== D || n[33] !== a ? (K = (e, t, n) => {
541
+ if (!n) return;
542
+ let r = typeof e == "string" ? e : String(e ?? "");
543
+ if (I.current === r) {
544
+ I.current = null;
545
+ return;
546
+ }
547
+ let i = te(r, f);
548
+ if (!i) return;
549
+ if (i.selectableValue) {
550
+ if (D(i.selectableValue), V(i.selectableValue), a === i.selectableValue) return;
551
+ s(i.selectableValue);
552
+ return;
553
+ }
554
+ let o = S(i.parsed);
555
+ if (o == null) return;
556
+ let c = w(o, f);
557
+ c && D(c.value);
558
+ }, n[30] = s, n[31] = f, n[32] = D, n[33] = a, n[34] = K) : K = n[34];
559
+ let q, J, Y;
560
+ n[35] !== m || n[36] !== _ || n[37] !== v ? (q = () => {
561
+ P.current = !0, !m && (_ || v(!0));
562
+ }, J = (e) => {
563
+ P.current = !0, F.current = typeof document < "u" && document.activeElement === e.currentTarget, !m && (_ || v(!0));
564
+ }, Y = () => {
565
+ m || _ || v(!0);
566
+ }, n[35] = m, n[36] = _, n[37] = v, n[38] = q, n[39] = J, n[40] = Y) : (q = n[38], J = n[39], Y = n[40]);
567
+ let X;
568
+ n[41] !== m || n[42] !== B || n[43] !== E || n[44] !== O || n[45] !== U || n[46] !== s || n[47] !== _ || n[48] !== f || n[49] !== D || n[50] !== v ? (X = (e) => {
569
+ if (!m) {
570
+ if (e.key === "Tab" && _ && !e.defaultPrevented) {
571
+ v(!1);
572
+ return;
573
+ }
574
+ if (e.key === "Escape") {
575
+ if (!_) return;
576
+ e.preventDefault(), v(!1);
577
+ return;
578
+ }
579
+ if (!_ && !e.defaultPrevented && (e.key.length === 1 || e.key === "Backspace" || e.key === "Delete") && !e.ctrlKey && !e.metaKey && !e.altKey && v(!0), e.key === "ArrowDown" || e.key === "ArrowUp") {
580
+ if (O(), e.preventDefault(), !_) {
581
+ v(!0);
582
+ return;
583
+ }
584
+ U(e.key === "ArrowDown" ? 1 : -1);
585
+ return;
586
+ }
587
+ if (e.key === "Enter") {
588
+ O();
589
+ let t = te(B, f);
590
+ if (!t) {
591
+ if (!_ || B.trim() !== "") return;
592
+ let t = f.find((e) => e.value === E.current), n = (C(t) ? t?.value : void 0) ?? f.find(M)?.value;
593
+ if (!n) return;
594
+ e.preventDefault(), D(n), V(n), s(n), v(!1);
595
+ return;
596
+ }
597
+ if (t.selectableValue) {
598
+ e.preventDefault(), D(t.selectableValue), V(t.selectableValue), s(t.selectableValue), v(!1);
599
+ return;
600
+ }
601
+ let n = S(t.parsed);
602
+ if (n == null) return;
603
+ let r = w(n, f);
604
+ if (!r) return;
605
+ e.preventDefault(), D(r.value), V(r.value), s(r.value), v(!1);
606
+ return;
607
+ }
608
+ }
609
+ }, n[41] = m, n[42] = B, n[43] = E, n[44] = O, n[45] = U, n[46] = s, n[47] = _, n[48] = f, n[49] = D, n[50] = v, n[51] = X) : X = n[51];
610
+ let Z;
611
+ n[52] !== m || n[53] !== _ || n[54] !== v ? (Z = (e) => {
612
+ let t = !P.current || !F.current;
613
+ if (P.current = !1, F.current = !1, N.current = !0, t) {
614
+ let t = e.currentTarget;
615
+ requestAnimationFrame(() => t.select());
616
+ }
617
+ m || _ || v(!0);
618
+ }, n[52] = m, n[53] = _, n[54] = v, n[55] = Z) : Z = n[55];
619
+ let Q;
620
+ n[56] !== B || n[57] !== s || n[58] !== f || n[59] !== a ? (Q = () => {
621
+ N.current = !1;
622
+ let e = B.trim();
623
+ if (!e) {
624
+ V(a || "");
625
+ return;
626
+ }
627
+ let t = te(e, f);
628
+ if (!t) {
629
+ V(a || "");
630
+ return;
631
+ }
632
+ if (!t.selectableValue) {
633
+ V(a || "");
634
+ return;
635
+ }
636
+ V(t.selectableValue), a !== t.selectableValue && s(t.selectableValue);
637
+ }, n[56] = B, n[57] = s, n[58] = f, n[59] = a, n[60] = Q) : Q = n[60];
638
+ let $;
639
+ n[61] !== m || n[62] !== B || n[63] !== r || n[64] !== k || n[65] !== i || n[66] !== h || n[67] !== he || n[68] !== W || n[69] !== G || n[70] !== K || n[71] !== q || n[72] !== J || n[73] !== Y || n[74] !== X || n[75] !== Z || n[76] !== Q || n[77] !== me || n[78] !== x ? ($ = /* @__PURE__ */ u(g, {
640
+ id: r,
641
+ "data-testid": x,
642
+ "data-hydrated": he,
643
+ type: "text",
644
+ disabled: m,
645
+ readOnly: h,
646
+ inputRef: k,
647
+ autoComplete: "off",
648
+ mask: ge,
649
+ dispatch: W,
650
+ placeholder: i,
651
+ value: B,
652
+ className: me,
653
+ onAccept: G,
654
+ onComplete: K,
655
+ onPointerDown: q,
656
+ onMouseDown: J,
657
+ onClick: Y,
658
+ onKeyDown: X,
659
+ onFocus: Z,
660
+ onBlur: Q
661
+ }), n[61] = m, n[62] = B, n[63] = r, n[64] = k, n[65] = i, n[66] = h, n[67] = he, n[68] = W, n[69] = G, n[70] = K, n[71] = q, n[72] = J, n[73] = Y, n[74] = X, n[75] = Z, n[76] = Q, n[77] = me, n[78] = x, n[79] = $) : $ = n[79];
662
+ let _e;
663
+ n[80] === Symbol.for("react.memo_cache_sentinel") ? (_e = t("absolute right-1 top-1/2 inline-flex size-8 -translate-y-1/2 items-center justify-center rounded-md text-muted-foreground transition-colors hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"), n[80] = _e) : _e = n[80];
664
+ let ve = _ ? "Close time picker" : "Open time picker", ye;
665
+ n[81] !== m || n[82] !== _ || n[83] !== v ? (ye = () => {
666
+ m || v(!_);
667
+ }, n[81] = m, n[82] = _, n[83] = v, n[84] = ye) : ye = n[84];
668
+ let be;
669
+ n[85] === Symbol.for("react.memo_cache_sentinel") ? (be = /* @__PURE__ */ u(p, {
670
+ "aria-hidden": !0,
671
+ className: "size-4"
672
+ }), n[85] = be) : be = n[85];
673
+ let xe;
674
+ n[86] !== m || n[87] !== ve || n[88] !== ye ? (xe = /* @__PURE__ */ u("button", {
675
+ type: "button",
676
+ tabIndex: -1,
677
+ disabled: m,
678
+ "data-slot": "hours-picker-input-toggle",
679
+ className: _e,
680
+ "aria-label": ve,
681
+ onPointerDown: j,
682
+ onMouseDown: ne,
683
+ onClick: ye,
684
+ children: be
685
+ }), n[86] = m, n[87] = ve, n[88] = ye, n[89] = xe) : xe = n[89];
686
+ let Se;
687
+ return n[90] !== $ || n[91] !== xe ? (Se = /* @__PURE__ */ d("div", {
688
+ className: "relative group",
689
+ children: [$, xe]
690
+ }), n[90] = $, n[91] = xe, n[92] = Se) : Se = n[92], Se;
691
+ }
692
+ function ne(e) {
693
+ e.preventDefault();
694
+ }
695
+ function j(e) {
696
+ e.preventDefault();
697
+ }
698
+ function M(e) {
699
+ return C(e);
6
700
  }
7
701
  //#endregion
8
- export { t as default };
702
+ export { k as HourPickerField, E as HourPickerInput };
9
703
 
10
704
  //# sourceMappingURL=index245.js.map