@athbnb/ui 0.0.2 → 0.0.3

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.
@@ -0,0 +1,609 @@
1
+ import { c as e } from "react/compiler-runtime";
2
+ import { Fragment as t, jsx as n, jsxs as r } from "react/jsx-runtime";
3
+ import * as i from "react";
4
+ //#region src/ui/Dropdown.tsx
5
+ function a(e) {
6
+ return e.map((e) => typeof e == "string" ? {
7
+ value: e,
8
+ label: e
9
+ } : {
10
+ ...e,
11
+ value: String(e.value)
12
+ });
13
+ }
14
+ function ee(t) {
15
+ let r = e(6), { open: i, className: a } = t, ee = i ? "rotate-180" : "rotate-0", o = a ?? "", s;
16
+ r[0] !== ee || r[1] !== o ? (s = [
17
+ "shrink-0 fill-secondary transition-transform duration-200 pointer-events-none",
18
+ ee,
19
+ o
20
+ ].filter(Boolean), r[0] = ee, r[1] = o, r[2] = s) : s = r[2];
21
+ let c = s.join(" "), l;
22
+ r[3] === Symbol.for("react.memo_cache_sentinel") ? (l = /* @__PURE__ */ n("path", { d: "M7 10l5 5 5-5H7z" }), r[3] = l) : l = r[3];
23
+ let u;
24
+ return r[4] === c ? u = r[5] : (u = /* @__PURE__ */ n("svg", {
25
+ xmlns: "http://www.w3.org/2000/svg",
26
+ viewBox: "0 0 24 24",
27
+ className: c,
28
+ "aria-hidden": !0,
29
+ children: l
30
+ }), r[4] = c, r[5] = u), u;
31
+ }
32
+ function o(i) {
33
+ let a = e(9), { description: ee, error: o, helperText: s, helperClassName: c } = i, l = c === void 0 ? "text-sm" : c, u;
34
+ a[0] === ee ? u = a[1] : (u = ee ? /* @__PURE__ */ n("div", {
35
+ className: "mt-1 sm:text-base text-sm text-secondary/60",
36
+ children: ee
37
+ }) : null, a[0] = ee, a[1] = u);
38
+ let d;
39
+ a[2] !== o || a[3] !== l || a[4] !== s ? (d = (o || s) && /* @__PURE__ */ n("p", {
40
+ className: `mt-1 ${l} ${o ? "text-red-500" : "text-secondary/50"}`,
41
+ children: o || s
42
+ }), a[2] = o, a[3] = l, a[4] = s, a[5] = d) : d = a[5];
43
+ let f;
44
+ return a[6] !== u || a[7] !== d ? (f = /* @__PURE__ */ r(t, { children: [u, d] }), a[6] = u, a[7] = d, a[8] = f) : f = a[8], f;
45
+ }
46
+ function s(t) {
47
+ let o = e(37), { label: s, description: d, placeholder: f, options: p, value: m, onValueChange: h, multiple: te, error: ne, errors: re, className: g, disabled: _, name: v, id: ie } = t, y = f === void 0 ? "Select…" : f, b = te === void 0 ? !1 : te, x = g === void 0 ? "" : g, S = _ === void 0 ? !1 : _, C = a(p), w = ne ?? re, [T, ae] = i.useState(!1), E = ie ?? v, D = `relative space-y-0 ${x}`, O;
48
+ o[0] !== s || o[1] !== E ? (O = s ? /* @__PURE__ */ n("label", {
49
+ htmlFor: E,
50
+ className: "block text-secondary text-sm sm:text-lg font-bold mb-2",
51
+ children: s
52
+ }) : null, o[0] = s, o[1] = E, o[2] = O) : O = o[2];
53
+ let k;
54
+ o[3] === d ? k = o[4] : (k = d ? /* @__PURE__ */ n("p", {
55
+ className: "mb-2 sm:text-base text-sm text-secondary/75",
56
+ children: d
57
+ }) : null, o[3] = d, o[4] = k);
58
+ let A, j;
59
+ o[5] === Symbol.for("react.memo_cache_sentinel") ? (j = () => ae(u), A = () => ae(!1), o[5] = A, o[6] = j) : (A = o[5], j = o[6]);
60
+ let M;
61
+ o[7] !== b || o[8] !== h ? (M = (e) => {
62
+ ae(!1), h(b ? Array.from(e.target.selectedOptions).map(l) : e.target.value);
63
+ }, o[7] = b, o[8] = h, o[9] = M) : M = o[9];
64
+ let N;
65
+ o[10] !== b || o[11] !== y ? (N = b ? null : /* @__PURE__ */ n("option", {
66
+ value: "",
67
+ disabled: !0,
68
+ children: y
69
+ }), o[10] = b, o[11] = y, o[12] = N) : N = o[12];
70
+ let P = C.map(c), F;
71
+ o[13] !== S || o[14] !== b || o[15] !== v || o[16] !== E || o[17] !== A || o[18] !== M || o[19] !== N || o[20] !== P || o[21] !== j || o[22] !== m ? (F = /* @__PURE__ */ r("select", {
72
+ id: E,
73
+ name: v,
74
+ multiple: b,
75
+ disabled: S,
76
+ value: m,
77
+ onMouseDown: j,
78
+ onBlur: A,
79
+ onChange: M,
80
+ className: "appearance-none w-full sm:px-3 sm:py-2.5 px-3 py-1.5 text-sm sm:text-base rounded-medium sm:rounded-primary md:rounded-medium lg:rounded-primary outline -outline-offset-1 outline-primary/50 focus:outline-offset-1 focus:outline-primary cursor-pointer disabled:cursor-not-allowed disabled:opacity-75",
81
+ children: [N, P]
82
+ }), o[13] = S, o[14] = b, o[15] = v, o[16] = E, o[17] = A, o[18] = M, o[19] = N, o[20] = P, o[21] = j, o[22] = m, o[23] = F) : F = o[23];
83
+ let I;
84
+ o[24] === T ? I = o[25] : (I = /* @__PURE__ */ n("div", {
85
+ className: "pointer-events-none absolute inset-y-0 right-3 flex items-center",
86
+ children: /* @__PURE__ */ n(ee, {
87
+ open: T,
88
+ className: "sm:w-4 sm:h-4 w-2.5 h-2.5"
89
+ })
90
+ }), o[24] = T, o[25] = I);
91
+ let L;
92
+ o[26] !== F || o[27] !== I ? (L = /* @__PURE__ */ r("div", {
93
+ className: "relative",
94
+ children: [F, I]
95
+ }), o[26] = F, o[27] = I, o[28] = L) : L = o[28];
96
+ let R;
97
+ o[29] === w ? R = o[30] : (R = w ? /* @__PURE__ */ n("p", {
98
+ className: "text-red-500 text-xs mt-1",
99
+ children: w
100
+ }) : null, o[29] = w, o[30] = R);
101
+ let z;
102
+ return o[31] !== L || o[32] !== R || o[33] !== D || o[34] !== O || o[35] !== k ? (z = /* @__PURE__ */ r("div", {
103
+ className: D,
104
+ children: [
105
+ O,
106
+ k,
107
+ L,
108
+ R
109
+ ]
110
+ }), o[31] = L, o[32] = R, o[33] = D, o[34] = O, o[35] = k, o[36] = z) : z = o[36], z;
111
+ }
112
+ function c(e) {
113
+ return /* @__PURE__ */ n("option", {
114
+ value: e.value,
115
+ disabled: e.disabled,
116
+ children: typeof e.label == "string" ? e.label : e.value
117
+ }, e.value);
118
+ }
119
+ function l(e) {
120
+ return e.value;
121
+ }
122
+ function u(e) {
123
+ return !e;
124
+ }
125
+ function d(e, t) {
126
+ return !t || typeof e != "string" ? e : e.toLowerCase();
127
+ }
128
+ function f(t) {
129
+ let s = e(82), c, l, u, f, p, m, h, te, ne, re, g, _, v, ie, y, b, x, S, C, w;
130
+ s[0] === t ? (c = s[1], l = s[2], u = s[3], f = s[4], p = s[5], m = s[6], h = s[7], te = s[8], ne = s[9], re = s[10], g = s[11], _ = s[12], v = s[13], ie = s[14], y = s[15], b = s[16], x = s[17], S = s[18], C = s[19], w = s[20]) : ({label: te, placeholder: v, name: l, id: c, value: ie, onValueChange: f, onBlur: u, error: y, description: b, helperText: x, required: S, disabled: C, options: p, className: w, selectClassName: ne, optionClassName: re, allowEmpty: g, optionLabelLowercase: _, style: h, ...m} = t, s[0] = t, s[1] = c, s[2] = l, s[3] = u, s[4] = f, s[5] = p, s[6] = m, s[7] = h, s[8] = te, s[9] = ne, s[10] = re, s[11] = g, s[12] = _, s[13] = v, s[14] = ie, s[15] = y, s[16] = b, s[17] = x, s[18] = S, s[19] = C, s[20] = w);
131
+ let T = te === void 0 ? "" : te, ae = v === void 0 ? "" : v, E = ie === void 0 ? "" : ie, D = y === void 0 ? "" : y, O = b === void 0 ? "" : b, k = x === void 0 ? "" : x, A = S === void 0 ? !1 : S, j = C === void 0 ? !1 : C, M = w === void 0 ? "" : w, N = ne === void 0 ? "" : ne, P = re === void 0 ? "" : re, F = g === void 0 ? !0 : g, I = _ === void 0 ? !1 : _, L = a(p), [R, z] = i.useState(!1), [oe, B] = i.useState(!1), V = c ?? l, se, H;
132
+ s[21] === E ? (se = s[22], H = s[23]) : (se = () => {
133
+ E?.toString().trim() && z(!0);
134
+ }, H = [E], s[21] = E, s[22] = se, s[23] = H), i.useEffect(se, H);
135
+ let U = `relative flex flex-col ${M}`, W;
136
+ s[24] === h ? W = s[25] : (W = {
137
+ textTransform: "none",
138
+ ...h
139
+ }, s[24] = h, s[25] = W);
140
+ let G;
141
+ s[26] === f ? G = s[27] : (G = (e) => {
142
+ f(e.target.value), B(!1);
143
+ }, s[26] = f, s[27] = G);
144
+ let K;
145
+ s[28] === Symbol.for("react.memo_cache_sentinel") ? (K = () => {
146
+ z(!0), B(!0);
147
+ }, s[28] = K) : K = s[28];
148
+ let q;
149
+ s[29] !== u || s[30] !== E ? (q = (e) => {
150
+ E?.toString().trim() || z(!1), B(!1), u?.(e);
151
+ }, s[29] = u, s[30] = E, s[31] = q) : q = s[31];
152
+ let J;
153
+ s[32] === Symbol.for("react.memo_cache_sentinel") ? (J = (e) => {
154
+ e.target.tagName === "SELECT" && B(!0);
155
+ }, s[32] = J) : J = s[32];
156
+ let Y = D ? "border-red-500" : R ? "border-primary" : "border-primary/50", X = j ? "bg-white cursor-not-allowed opacity-75" : "", Z;
157
+ s[33] !== N || s[34] !== Y || s[35] !== X ? (Z = [
158
+ "min-h-[42px] peer w-full h-full pl-3 pr-10 py-3 sm:py-3 text-sm bg-transparent border rounded-md outline-none appearance-none transition-all text-[14px] text-ellipsis overflow-hidden whitespace-nowrap cursor-pointer",
159
+ Y,
160
+ X,
161
+ N
162
+ ].filter(Boolean), s[33] = N, s[34] = Y, s[35] = X, s[36] = Z) : Z = s[36];
163
+ let ce = Z.join(" "), le = !F, ue = !F, de = ae || T, Q;
164
+ s[37] !== le || s[38] !== ue || s[39] !== de ? (Q = /* @__PURE__ */ n("option", {
165
+ value: "",
166
+ disabled: le,
167
+ hidden: ue,
168
+ children: de
169
+ }), s[37] = le, s[38] = ue, s[39] = de, s[40] = Q) : Q = s[40];
170
+ let $;
171
+ s[41] !== P || s[42] !== I ? ($ = (e, t) => /* @__PURE__ */ n("option", {
172
+ value: e.value,
173
+ disabled: e.disabled,
174
+ className: `text-[14px] ${P}`,
175
+ children: d(e.label ?? e.value, I)
176
+ }, e.value ?? t), s[41] = P, s[42] = I, s[43] = $) : $ = s[43];
177
+ let fe = L.map($), pe;
178
+ s[44] !== j || s[45] !== l || s[46] !== m || s[47] !== V || s[48] !== W || s[49] !== G || s[50] !== K || s[51] !== q || s[52] !== J || s[53] !== ce || s[54] !== Q || s[55] !== fe || s[56] !== E ? (pe = /* @__PURE__ */ r("select", {
179
+ id: V,
180
+ name: l,
181
+ value: E,
182
+ disabled: j,
183
+ style: W,
184
+ onChange: G,
185
+ onFocus: K,
186
+ onBlur: q,
187
+ onMouseDown: J,
188
+ className: ce,
189
+ ...m,
190
+ children: [Q, fe]
191
+ }), s[44] = j, s[45] = l, s[46] = m, s[47] = V, s[48] = W, s[49] = G, s[50] = K, s[51] = q, s[52] = J, s[53] = ce, s[54] = Q, s[55] = fe, s[56] = E, s[57] = pe) : pe = s[57];
192
+ let me = R ? "-top-2.5 text-sm! text-secondary bg-white font-bold" : "top-2.5 text-secondary/50 w-11/12", he = D ? "!text-red-500" : "", ge;
193
+ s[58] !== me || s[59] !== he ? (ge = [
194
+ "absolute left-2 px-1 transition-all duration-300 ease-in-out bg-white sm:text-base text-sm pointer-events-none",
195
+ me,
196
+ he
197
+ ].filter(Boolean), s[58] = me, s[59] = he, s[60] = ge) : ge = s[60];
198
+ let _e = ge.join(" "), ve;
199
+ s[61] === A ? ve = s[62] : (ve = A ? /* @__PURE__ */ n("span", {
200
+ className: "text-red-500 ml-0.5",
201
+ children: "*"
202
+ }) : null, s[61] = A, s[62] = ve);
203
+ let ye;
204
+ s[63] !== T || s[64] !== V || s[65] !== _e || s[66] !== ve ? (ye = /* @__PURE__ */ r("label", {
205
+ htmlFor: V,
206
+ className: _e,
207
+ children: [T, ve]
208
+ }), s[63] = T, s[64] = V, s[65] = _e, s[66] = ve, s[67] = ye) : ye = s[67];
209
+ let be = R && oe, xe;
210
+ s[68] === be ? xe = s[69] : (xe = /* @__PURE__ */ n(ee, {
211
+ open: be,
212
+ className: "absolute right-3 top-1/2 -translate-y-1/2 h-[14px] w-[14px]"
213
+ }), s[68] = be, s[69] = xe);
214
+ let Se;
215
+ s[70] !== pe || s[71] !== ye || s[72] !== xe ? (Se = /* @__PURE__ */ r("div", {
216
+ className: "relative",
217
+ children: [
218
+ pe,
219
+ ye,
220
+ xe
221
+ ]
222
+ }), s[70] = pe, s[71] = ye, s[72] = xe, s[73] = Se) : Se = s[73];
223
+ let Ce;
224
+ s[74] !== O || s[75] !== D || s[76] !== k ? (Ce = /* @__PURE__ */ n(o, {
225
+ description: O,
226
+ error: D,
227
+ helperText: k
228
+ }), s[74] = O, s[75] = D, s[76] = k, s[77] = Ce) : Ce = s[77];
229
+ let we;
230
+ return s[78] !== U || s[79] !== Se || s[80] !== Ce ? (we = /* @__PURE__ */ r("div", {
231
+ className: U,
232
+ children: [Se, Ce]
233
+ }), s[78] = U, s[79] = Se, s[80] = Ce, s[81] = we) : we = s[81], we;
234
+ }
235
+ function p(t) {
236
+ let s = e(27), { label: c, placeholder: l, name: u, value: f, onValueChange: p, onBlur: h, error: te, description: ne, helperText: re, required: g, disabled: _, options: v, className: ie, optionLabelLowercase: y, listMaxHeightClassName: b } = t, x = c === void 0 ? "" : c, S = l === void 0 ? "" : l, C = f === void 0 ? "" : f, w = te === void 0 ? "" : te, T = ne === void 0 ? "" : ne, ae = re === void 0 ? "" : re, E = g === void 0 ? !1 : g, D = _ === void 0 ? !1 : _, O = ie === void 0 ? "" : ie, k = y === void 0 ? !1 : y, A = b === void 0 ? "max-h-[144px]" : b, j = a(v), M = i.useRef(null), [N, P] = i.useState(!1), [F, I] = i.useState(!1), L;
237
+ s[0] === C ? L = s[1] : (L = (e) => String(e.value) === String(C), s[0] = C, s[1] = L);
238
+ let R = j.find(L), z, oe;
239
+ s[2] !== h || s[3] !== C ? (z = () => {
240
+ let e = (e) => {
241
+ M.current && !M.current.contains(e.target) && (I(!1), C?.toString()?.trim() || P(!1), h?.());
242
+ };
243
+ return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
244
+ }, oe = [C, h], s[2] = h, s[3] = C, s[4] = z, s[5] = oe) : (z = s[4], oe = s[5]), i.useEffect(z, oe);
245
+ let B = w ? "border-red-500" : F || N ? "border-primary" : "border-primary/50", V = D ? "bg-white cursor-not-allowed opacity-50" : "cursor-pointer", se;
246
+ s[6] !== B || s[7] !== V ? (se = [
247
+ "min-h-[42px] w-full pl-3 pr-10 py-3 sm:py-3 text-sm bg-transparent border rounded-md outline-none transition-all text-[14px] flex items-center",
248
+ B,
249
+ V
250
+ ].filter(Boolean), s[6] = B, s[7] = V, s[8] = se) : se = s[8];
251
+ let H;
252
+ s[9] === D ? H = s[10] : (H = () => {
253
+ D || (I(m), P(!0));
254
+ }, s[9] = D, s[10] = H);
255
+ let U;
256
+ s[11] === Symbol.for("react.memo_cache_sentinel") ? (U = (e) => {
257
+ e.key === "Escape" && I(!1);
258
+ }, s[11] = U) : U = s[11];
259
+ let W = N || R ? "-top-2.5 text-sm! text-secondary font-bold" : "top-2.5 text-secondary/50 w-11/12", G = w ? "!text-red-500" : "", K;
260
+ s[12] !== W || s[13] !== G ? (K = [
261
+ "absolute left-2 px-1 transition-all duration-300 ease-in-out bg-white sm:text-base text-sm pointer-events-none",
262
+ W,
263
+ G
264
+ ].filter(Boolean), s[12] = W, s[13] = G, s[14] = K) : K = s[14];
265
+ let q = K.join(" "), J;
266
+ s[15] === E ? J = s[16] : (J = E ? /* @__PURE__ */ n("span", {
267
+ className: "text-red-500 ml-0.5",
268
+ children: "*"
269
+ }) : null, s[15] = E, s[16] = J);
270
+ let Y;
271
+ s[17] !== x || s[18] !== q || s[19] !== J ? (Y = /* @__PURE__ */ r("label", {
272
+ className: q,
273
+ children: [x, J]
274
+ }), s[17] = x, s[18] = q, s[19] = J, s[20] = Y) : Y = s[20];
275
+ let X;
276
+ s[21] === F ? X = s[22] : (X = /* @__PURE__ */ n(ee, {
277
+ open: F,
278
+ className: "absolute right-3 top-1/2 -translate-y-1/2 h-[14px] w-[14px]"
279
+ }), s[21] = F, s[22] = X);
280
+ let Z;
281
+ return s[23] !== T || s[24] !== w || s[25] !== ae ? (Z = /* @__PURE__ */ n(o, {
282
+ description: T,
283
+ error: w,
284
+ helperText: ae
285
+ }), s[23] = T, s[24] = w, s[25] = ae, s[26] = Z) : Z = s[26], /* @__PURE__ */ r("div", {
286
+ ref: M,
287
+ className: `relative flex flex-col ${O}`,
288
+ children: [/* @__PURE__ */ r("div", {
289
+ className: "relative",
290
+ children: [
291
+ /* @__PURE__ */ n("div", {
292
+ id: u,
293
+ role: "combobox",
294
+ "aria-expanded": F,
295
+ "aria-haspopup": "listbox",
296
+ className: se.join(" "),
297
+ onClick: H,
298
+ onKeyDown: U,
299
+ children: /* @__PURE__ */ n("span", {
300
+ className: R ? "text-secondary" : "text-secondary/40 text-sm truncate",
301
+ children: R ? d(R.label ?? R.value, k) : S || x
302
+ })
303
+ }),
304
+ Y,
305
+ X,
306
+ F && !D ? /* @__PURE__ */ n("ul", {
307
+ role: "listbox",
308
+ className: `absolute z-30 top-full mt-1 w-full bg-white border border-primary/50 rounded-md shadow-lg ${A} overflow-y-auto`,
309
+ children: j.map((e, t) => {
310
+ let r = String(e.value), i = r === String(C);
311
+ return /* @__PURE__ */ n("li", {
312
+ role: "option",
313
+ "aria-selected": i,
314
+ onClick: () => {
315
+ p(r), I(!1);
316
+ },
317
+ className: ["px-3 py-2 cursor-pointer text-sm hover:bg-primary/10", i ? "bg-primary/5 font-semibold text-primary" : "text-secondary"].filter(Boolean).join(" "),
318
+ children: d(e.label ?? e.value, k)
319
+ }, e.value ?? t);
320
+ })
321
+ }) : null
322
+ ]
323
+ }), Z]
324
+ });
325
+ }
326
+ function m(e) {
327
+ return !e;
328
+ }
329
+ function h(t) {
330
+ let s = e(36), { label: c, name: l, id: u, placeholder: d, options: f, onSelectionChange: p, onToggle: m, onBlur: h, error: ne, description: re, helperText: g, required: _, disabled: v, className: ie } = t, y = c === void 0 ? "" : c, b = d === void 0 ? "Select an option" : d, x = ne === void 0 ? "" : ne, S = re === void 0 ? "" : re, C = g === void 0 ? "" : g, w = _ === void 0 ? !1 : _, T = v === void 0 ? !1 : v, ae = ie === void 0 ? "" : ie, E = a(f), D = "field" in t && t.field ? t.field.value : t.value, O = "field" in t && t.field ? t.field.onChange : t.onValueChange, k = "field" in t && t.field ? t.field.onBlur : void 0, [A, j] = i.useState(!1), [M, N] = i.useState(!1), P = i.useRef(null), F = u ?? l ?? "dropdown-custom-trigger", I;
331
+ s[0] === D ? I = s[1] : (I = (e) => e.value === D, s[0] = D, s[1] = I);
332
+ let L = E.find(I), R = !!(M || D), z, oe;
333
+ s[2] === Symbol.for("react.memo_cache_sentinel") ? (oe = () => {
334
+ let e = (e) => {
335
+ P.current && !P.current.contains(e.target) && (j(!1), N(!1));
336
+ };
337
+ return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
338
+ }, z = [], s[2] = z, s[3] = oe) : (z = s[2], oe = s[3]), i.useEffect(oe, z);
339
+ let B, V;
340
+ s[4] !== A || s[5] !== m ? (B = () => {
341
+ m?.(A);
342
+ }, V = [A, m], s[4] = A, s[5] = m, s[6] = B, s[7] = V) : (B = s[6], V = s[7]), i.useEffect(B, V);
343
+ let se = () => L?.label == null ? M || A ? b : "" : L.label, H = R ? "-top-2.5 translate-y-0 text-sm! text-secondary font-bold" : `${x ? "top-1/3" : "top-1/2"} -translate-y-1/2 text-secondary/50 w-[86%] truncate`, U = x ? "!text-red-500" : "", W;
344
+ s[8] !== H || s[9] !== U ? (W = [
345
+ "absolute left-2 px-1 text-[14px] transition-all duration-300 ease-in-out bg-white sm:text-base text-sm z-10 pointer-events-none",
346
+ H,
347
+ U
348
+ ].filter(Boolean), s[8] = H, s[9] = U, s[10] = W) : W = s[10];
349
+ let G = W.join(" "), K;
350
+ s[11] === w ? K = s[12] : (K = w ? /* @__PURE__ */ n("span", {
351
+ className: "text-red-500 ml-0.5",
352
+ children: "*"
353
+ }) : null, s[11] = w, s[12] = K);
354
+ let q;
355
+ s[13] !== F || s[14] !== y || s[15] !== G || s[16] !== K ? (q = /* @__PURE__ */ r("label", {
356
+ htmlFor: F,
357
+ className: G,
358
+ children: [y, K]
359
+ }), s[13] = F, s[14] = y, s[15] = G, s[16] = K, s[17] = q) : q = s[17];
360
+ let J, Y;
361
+ s[18] === Symbol.for("react.memo_cache_sentinel") ? (J = () => {
362
+ j(te), N(!0);
363
+ }, Y = () => N(!0), s[18] = J, s[19] = Y) : (J = s[18], Y = s[19]);
364
+ let X;
365
+ s[20] !== h || s[21] !== k ? (X = (e) => {
366
+ N(!1), h?.(e), k?.(e);
367
+ }, s[20] = h, s[21] = k, s[22] = X) : X = s[22];
368
+ let Z = T ? "bg-white cursor-not-allowed opacity-75" : "", ce = x ? "border-red-500" : M || D ? "border-primary" : "border-primary/50", le;
369
+ s[23] !== Z || s[24] !== ce ? (le = [
370
+ "peer w-full sm:h-[48px] h-[42px] px-3 text-left text-[14px] text-base bg-transparent border rounded-md outline-none transition-all",
371
+ Z,
372
+ ce
373
+ ].filter(Boolean), s[23] = Z, s[24] = ce, s[25] = le) : le = s[25];
374
+ let ue = `absolute right-3 ${x ? "top-1/3" : "top-1/2"} -translate-y-1/2 h-[14px] w-[14px]`, de;
375
+ s[26] !== A || s[27] !== ue ? (de = /* @__PURE__ */ n(ee, {
376
+ open: A,
377
+ className: ue
378
+ }), s[26] = A, s[27] = ue, s[28] = de) : de = s[28];
379
+ let Q;
380
+ s[29] !== S || s[30] !== x || s[31] !== C ? (Q = /* @__PURE__ */ n(o, {
381
+ description: S,
382
+ error: x,
383
+ helperText: C
384
+ }), s[29] = S, s[30] = x, s[31] = C, s[32] = Q) : Q = s[32];
385
+ let $;
386
+ return s[33] !== l || s[34] !== D ? ($ = l ? /* @__PURE__ */ n("input", {
387
+ type: "hidden",
388
+ name: l,
389
+ value: D,
390
+ readOnly: !0
391
+ }) : null, s[33] = l, s[34] = D, s[35] = $) : $ = s[35], /* @__PURE__ */ r("div", {
392
+ className: `relative ${ae}`,
393
+ ref: P,
394
+ children: [
395
+ q,
396
+ /* @__PURE__ */ n("button", {
397
+ id: F,
398
+ type: "button",
399
+ disabled: T,
400
+ onClick: J,
401
+ onFocus: Y,
402
+ onBlur: X,
403
+ className: le.join(" "),
404
+ children: /* @__PURE__ */ n("div", {
405
+ className: `${D ? "text-secondary" : "text-gray-500"} truncate`,
406
+ children: se()
407
+ })
408
+ }),
409
+ A ? /* @__PURE__ */ n("div", {
410
+ className: "absolute z-50 w-full mt-1 bg-white border shadow-primary border-primary rounded-md overflow-hidden overflow-y-auto max-h-60",
411
+ children: E.map((e) => {
412
+ let t = e.label ?? e.value, i = e.description;
413
+ return /* @__PURE__ */ r("div", {
414
+ role: "option",
415
+ tabIndex: 0,
416
+ onClick: () => {
417
+ O(e.value), p?.(e), j(!1);
418
+ },
419
+ onKeyDown: (t) => {
420
+ (t.key === "Enter" || t.key === " ") && (t.preventDefault(), O(e.value), p?.(e), j(!1));
421
+ },
422
+ className: "px-4 py-3 hover:bg-gray-50 cursor-pointer text-[14px]",
423
+ children: [/* @__PURE__ */ n("div", {
424
+ className: "text-secondary text-sm sm:text-lg",
425
+ children: t
426
+ }), i ? /* @__PURE__ */ n("div", {
427
+ className: "text-sm sm:text-sm text-secondary/75 mt-1",
428
+ children: i
429
+ }) : null]
430
+ }, e.value);
431
+ })
432
+ }) : null,
433
+ de,
434
+ Q,
435
+ $
436
+ ]
437
+ });
438
+ }
439
+ function te(e) {
440
+ return !e;
441
+ }
442
+ function ne(t) {
443
+ let s = e(44), { label: c, placeholder: l, name: u, value: d, onValueChange: f, onBlur: p, options: m, allOptions: h, maxSelect: te, error: ne, description: g, helperText: _, required: v, disabled: ie, className: y } = t, b = c === void 0 ? "" : c, x = l === void 0 ? "" : l, S = d === void 0 ? [] : d, C = te === void 0 ? 4 : te, w = ne === void 0 ? "" : ne, T = g === void 0 ? "" : g, ae = _ === void 0 ? "" : _, E = v === void 0 ? !1 : v, D = ie === void 0 ? !1 : ie, O = y === void 0 ? "" : y, k = a(m), A = a(h ?? m), j = i.useRef(null), [M, N] = i.useState(!1), [P, F] = i.useState(!1);
444
+ i.useEffect(() => {
445
+ S.length > 0 && N(!0);
446
+ }, [S]);
447
+ let I, L;
448
+ s[0] === p ? (I = s[1], L = s[2]) : (I = () => {
449
+ let e = (e) => {
450
+ j.current && !j.current.contains(e.target) && (F(!1), N(!1), p?.(e));
451
+ };
452
+ return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
453
+ }, L = [p], s[0] = p, s[1] = I, s[2] = L), i.useEffect(I, L);
454
+ let R = (e) => {
455
+ if (!e) return;
456
+ let t = S.some((t) => t == e), n;
457
+ if (t) n = S.filter((t) => t != e);
458
+ else {
459
+ if (S.length >= C) return;
460
+ n = [...S, e];
461
+ }
462
+ f(n);
463
+ }, z = (e) => {
464
+ f(S.filter((t) => t !== e));
465
+ }, oe = k.filter((e) => !S.some((t) => t == e.value)), B = `relative flex flex-col ${O}`, V = w ? "border-red-500" : M ? "border-primary" : "border-primary/50", se = D ? "bg-gray-100 cursor-not-allowed" : "bg-white cursor-pointer", H;
466
+ s[3] !== V || s[4] !== se ? (H = [
467
+ "relative flex flex-wrap items-center gap-1 min-h-[42px] peer w-full px-3 sm:py-3 py-3 border rounded-md",
468
+ V,
469
+ se
470
+ ].filter(Boolean), s[3] = V, s[4] = se, s[5] = H) : H = s[5];
471
+ let U = H.join(" "), W;
472
+ s[6] === D ? W = s[7] : (W = () => !D && F(re), s[6] = D, s[7] = W);
473
+ let G;
474
+ s[8] === Symbol.for("react.memo_cache_sentinel") ? (G = (e) => e.key === "Escape" && F(!1), s[8] = G) : G = s[8];
475
+ let K = D ? -1 : 0, q = S.length > 0 ? /* @__PURE__ */ n("div", {
476
+ className: "flex flex-wrap items-center gap-1 py-1 sm:py-0",
477
+ children: S.map((e, t) => {
478
+ let i = A.find((t) => (t.value || t) == e), a = typeof i?.label == "string" ? i.label : i?.label ?? i?.value ?? e;
479
+ return /* @__PURE__ */ r("span", {
480
+ className: "flex items-center gap-1 bg-primary/10 text-primary text-xs px-2 py-1 rounded-full",
481
+ children: [a, /* @__PURE__ */ n("button", {
482
+ type: "button",
483
+ className: "text-red-500 ml-1 border-0 bg-transparent p-0 cursor-pointer",
484
+ "aria-label": `Remove ${String(a)}`,
485
+ onClick: (t) => {
486
+ t.stopPropagation(), z(e);
487
+ },
488
+ children: "✕"
489
+ })]
490
+ }, `${e}-${t}`);
491
+ })
492
+ }) : /* @__PURE__ */ n("span", {
493
+ className: "text-secondary/50 text-sm",
494
+ children: x || `Select ${b}`
495
+ }), J;
496
+ s[9] === P ? J = s[10] : (J = /* @__PURE__ */ n(ee, {
497
+ open: P,
498
+ className: "absolute right-3 top-1/2 -translate-y-1/2 sm:w-4 z-10 sm:h-4 w-3 h-3"
499
+ }), s[9] = P, s[10] = J);
500
+ let Y;
501
+ s[11] !== P || s[12] !== U || s[13] !== W || s[14] !== K || s[15] !== q || s[16] !== J ? (Y = /* @__PURE__ */ r("div", {
502
+ role: "combobox",
503
+ "aria-expanded": P,
504
+ className: U,
505
+ onClick: W,
506
+ onKeyDown: G,
507
+ tabIndex: K,
508
+ children: [q, J]
509
+ }), s[11] = P, s[12] = U, s[13] = W, s[14] = K, s[15] = q, s[16] = J, s[17] = Y) : Y = s[17];
510
+ let X = P && !D ? /* @__PURE__ */ n("ul", {
511
+ role: "listbox",
512
+ className: "absolute z-30 mt-1 w-full bg-white border border-primary/50 rounded-md shadow-lg max-h-48 overflow-y-auto",
513
+ children: oe.map((e, t) => {
514
+ let r = String(e.value), i = S.some((e) => e == r), a = !!e.disabled || !i && S.length >= C;
515
+ return /* @__PURE__ */ n("li", {
516
+ role: "option",
517
+ onClick: () => !a && R(r),
518
+ className: [
519
+ "px-3 py-2 cursor-pointer text-sm hover:bg-primary/10",
520
+ i ? "bg-primary/5 font-semibold" : "",
521
+ a ? "opacity-50 cursor-not-allowed hover:bg-white" : ""
522
+ ].filter(Boolean).join(" "),
523
+ children: e.label || e.value
524
+ }, r ?? t);
525
+ })
526
+ }) : null, Z = M || S.length > 0 ? "-top-2.5 text-sm! text-secondary font-bold" : "top-1/2 -translate-y-1/2 text-secondary/50 w-11/12", ce = w ? "!text-red-500" : "", le;
527
+ s[18] !== Z || s[19] !== ce ? (le = [
528
+ "absolute left-2 px-1 transition-all duration-300 ease-in-out bg-white sm:text-base text-sm pointer-events-none",
529
+ Z,
530
+ ce
531
+ ].filter(Boolean), s[18] = Z, s[19] = ce, s[20] = le) : le = s[20];
532
+ let ue = le.join(" "), de;
533
+ s[21] === E ? de = s[22] : (de = E ? /* @__PURE__ */ n("span", {
534
+ className: "text-red-500 ml-0.5",
535
+ children: "*"
536
+ }) : null, s[21] = E, s[22] = de);
537
+ let Q;
538
+ s[23] !== b || s[24] !== u || s[25] !== ue || s[26] !== de ? (Q = /* @__PURE__ */ r("label", {
539
+ htmlFor: u,
540
+ className: ue,
541
+ children: [b, de]
542
+ }), s[23] = b, s[24] = u, s[25] = ue, s[26] = de, s[27] = Q) : Q = s[27];
543
+ let $;
544
+ s[28] !== Y || s[29] !== X || s[30] !== Q ? ($ = /* @__PURE__ */ r("div", {
545
+ className: "relative",
546
+ children: [
547
+ Y,
548
+ X,
549
+ Q
550
+ ]
551
+ }), s[28] = Y, s[29] = X, s[30] = Q, s[31] = $) : $ = s[31];
552
+ let fe;
553
+ s[32] !== T || s[33] !== w || s[34] !== ae ? (fe = /* @__PURE__ */ n(o, {
554
+ description: T,
555
+ error: w,
556
+ helperText: ae,
557
+ helperClassName: "text-xs"
558
+ }), s[32] = T, s[33] = w, s[34] = ae, s[35] = fe) : fe = s[35];
559
+ let pe;
560
+ s[36] !== C || s[37] !== S.length ? (pe = S.length > C ? /* @__PURE__ */ r("p", {
561
+ className: "mt-1 text-xs text-red-500",
562
+ children: [
563
+ "You can select up to ",
564
+ C,
565
+ " options."
566
+ ]
567
+ }) : null, s[36] = C, s[37] = S.length, s[38] = pe) : pe = s[38];
568
+ let me;
569
+ return s[39] !== B || s[40] !== $ || s[41] !== fe || s[42] !== pe ? (me = /* @__PURE__ */ r("div", {
570
+ ref: j,
571
+ className: B,
572
+ children: [
573
+ $,
574
+ fe,
575
+ pe
576
+ ]
577
+ }), s[39] = B, s[40] = $, s[41] = fe, s[42] = pe, s[43] = me) : me = s[43], me;
578
+ }
579
+ function re(e) {
580
+ return !e;
581
+ }
582
+ function g(t) {
583
+ let r = e(10);
584
+ switch (t.variant) {
585
+ case "stacked": {
586
+ let e;
587
+ return r[0] === t ? e = r[1] : (e = /* @__PURE__ */ n(s, { ...t }), r[0] = t, r[1] = e), e;
588
+ }
589
+ case "floating-native": {
590
+ let e;
591
+ return r[2] === t ? e = r[3] : (e = /* @__PURE__ */ n(f, { ...t }), r[2] = t, r[3] = e), e;
592
+ }
593
+ case "floating-scrollable": {
594
+ let e;
595
+ return r[4] === t ? e = r[5] : (e = /* @__PURE__ */ n(p, { ...t }), r[4] = t, r[5] = e), e;
596
+ }
597
+ case "floating-custom": {
598
+ let e;
599
+ return r[6] === t ? e = r[7] : (e = /* @__PURE__ */ n(h, { ...t }), r[6] = t, r[7] = e), e;
600
+ }
601
+ case "multi": {
602
+ let e;
603
+ return r[8] === t ? e = r[9] : (e = /* @__PURE__ */ n(ne, { ...t }), r[8] = t, r[9] = e), e;
604
+ }
605
+ default: return null;
606
+ }
607
+ }
608
+ //#endregion
609
+ export { g as Dropdown, a as normalizeDropdownOptions };
@@ -0,0 +1,26 @@
1
+ import { c as e } from "react/compiler-runtime";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ import { APIProvider as n, Map as r } from "@vis.gl/react-google-maps";
4
+ //#region src/ui/GoogleMap.tsx
5
+ var i = n;
6
+ function a(n) {
7
+ let i = e(12), a, o, s;
8
+ i[0] === n ? (a = i[1], o = i[2], s = i[3]) : ({className: s, style: o, ...a} = n, i[0] = n, i[1] = a, i[2] = o, i[3] = s);
9
+ let c = s === void 0 ? "" : s, l;
10
+ i[4] === c ? l = i[5] : (l = ["w-full min-h-[280px]", c].filter(Boolean), i[4] = c, i[5] = l);
11
+ let u = l.join(" "), d;
12
+ i[6] === o ? d = i[7] : (d = {
13
+ width: "100%",
14
+ height: "100%",
15
+ minHeight: 280,
16
+ ...o
17
+ }, i[6] = o, i[7] = d);
18
+ let f;
19
+ return i[8] !== a || i[9] !== u || i[10] !== d ? (f = /* @__PURE__ */ t(r, {
20
+ ...a,
21
+ className: u,
22
+ style: d
23
+ }), i[8] = a, i[9] = u, i[10] = d, i[11] = f) : f = i[11], f;
24
+ }
25
+ //#endregion
26
+ export { a as GoogleMap, i as GoogleMapsProvider };