@dimasbaguspm/versaur 0.0.16 → 0.0.17

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 (58) hide show
  1. package/dist/js/bottom-sheet-CHRSxXRE.js +501 -0
  2. package/dist/js/{switch-input-Bx6_2zG9.js → email-input-CVyrFzqL.js} +592 -807
  3. package/dist/js/enforce-subpath-import.js +5 -2
  4. package/dist/js/feedbacks/index.js +1 -1
  5. package/dist/js/{form-layout-4ASWdXn8.js → form-layout-Dhlv-FZL.js} +1 -1
  6. package/dist/js/forms/index.js +17 -14
  7. package/dist/js/{index-DOdDlCoL.js → index-C1uJQB34.js} +2 -2
  8. package/dist/js/index.js +45 -43
  9. package/dist/js/layouts/index.js +1 -1
  10. package/dist/js/modal-FqewbVts.js +150 -0
  11. package/dist/js/navigation/index.js +1 -1
  12. package/dist/js/overlays/index.js +4 -4
  13. package/dist/js/primitive/index.js +14 -15
  14. package/dist/js/{skeleton-BNZyaRjo.js → skeleton-QEyPZAuF.js} +1 -1
  15. package/dist/js/{tabs-BbOkYchB.js → tabs-DYcTvVao.js} +1 -1
  16. package/dist/js/tile-B9bt2AY6.js +1776 -0
  17. package/dist/types/forms/chip-multiple-input/chip-multiple-input.atoms.d.ts +10 -0
  18. package/dist/types/forms/chip-multiple-input/chip-multiple-input.d.ts +5 -0
  19. package/dist/types/forms/chip-multiple-input/index.d.ts +2 -0
  20. package/dist/types/forms/{chip-input → chip-multiple-input}/types.d.ts +16 -4
  21. package/dist/types/forms/chip-single-input/chip-single-input.atoms.d.ts +10 -0
  22. package/dist/types/forms/chip-single-input/chip-single-input.d.ts +5 -0
  23. package/dist/types/forms/chip-single-input/index.d.ts +1 -0
  24. package/dist/types/forms/chip-single-input/types.d.ts +67 -0
  25. package/dist/types/forms/date-single-picker-input/date-single-picker-input.d.ts +1 -8
  26. package/dist/types/forms/date-single-picker-input/index.d.ts +1 -1
  27. package/dist/types/forms/date-single-picker-input/types.d.ts +12 -66
  28. package/dist/types/forms/email-input/email-input.d.ts +8 -0
  29. package/dist/types/forms/email-input/index.d.ts +2 -0
  30. package/dist/types/forms/email-input/types.d.ts +6 -0
  31. package/dist/types/forms/index.d.ts +5 -1
  32. package/dist/types/forms/price-input/index.d.ts +2 -0
  33. package/dist/types/forms/price-input/price-input.d.ts +6 -0
  34. package/dist/types/forms/price-input/types.d.ts +15 -0
  35. package/dist/types/forms/price-input/use-price-input.d.ts +6 -0
  36. package/dist/types/forms/search-input/index.d.ts +2 -0
  37. package/dist/types/forms/search-input/search-input.d.ts +8 -0
  38. package/dist/types/forms/search-input/types.d.ts +35 -0
  39. package/dist/types/forms/segment-multiple-input/types.d.ts +1 -5
  40. package/dist/types/forms/segment-single-input/types.d.ts +1 -5
  41. package/dist/types/overlays/modal/types.d.ts +1 -1
  42. package/dist/types/primitive/anchor/types.d.ts +8 -2
  43. package/package.json +1 -1
  44. package/dist/js/bottom-sheet-Difan0U1.js +0 -340
  45. package/dist/js/calendar-CUjVZ7Ap.js +0 -811
  46. package/dist/js/menu-Bm-yPIMN.js +0 -310
  47. package/dist/js/tile-BjhJ5Mvl.js +0 -939
  48. package/dist/types/forms/chip-input/chip-input.atoms.d.ts +0 -10
  49. package/dist/types/forms/chip-input/chip-input.d.ts +0 -5
  50. package/dist/types/forms/chip-input/index.d.ts +0 -2
  51. package/dist/types/forms/date-range-picker-input/date-range-picker-input.d.ts +0 -10
  52. package/dist/types/forms/date-range-picker-input/index.d.ts +0 -2
  53. package/dist/types/forms/date-range-picker-input/types.d.ts +0 -64
  54. package/dist/types/forms/date-range-picker-input/use-date-range-picker.d.ts +0 -13
  55. package/dist/types/forms/date-single-picker-input/date-single-picker-input.atoms.d.ts +0 -13
  56. package/dist/types/forms/date-single-picker-input/date-single-picker-input.docked.d.ts +0 -14
  57. package/dist/types/forms/date-single-picker-input/date-single-picker-input.modal.d.ts +0 -15
  58. package/dist/types/forms/date-single-picker-input/use-date-single-picker.d.ts +0 -10
@@ -0,0 +1,501 @@
1
+ import { a as d, j as s, c as u } from "./index-C1uJQB34.js";
2
+ import p, { createContext as y, useContext as k, forwardRef as m, useCallback as D, useEffect as v, useId as E, useRef as h } from "react";
3
+ const j = y(null);
4
+ function w() {
5
+ const t = k(j);
6
+ if (!t)
7
+ throw new Error(
8
+ "Drawer components must be used within a DrawerRoot component"
9
+ );
10
+ return t;
11
+ }
12
+ const N = d(
13
+ "fixed inset-0 z-50 transition-opacity duration-300 bg-foreground/30 backdrop-blur-md",
14
+ {
15
+ variants: {
16
+ state: {
17
+ open: "opacity-100",
18
+ closed: "opacity-0 pointer-events-none"
19
+ }
20
+ },
21
+ defaultVariants: {
22
+ state: "closed"
23
+ }
24
+ }
25
+ ), z = d("fixed z-50 shadow-xl flex flex-col", {
26
+ variants: {
27
+ position: {
28
+ left: "left-0 top-0 bottom-0 border-r",
29
+ right: "right-0 top-0 bottom-0 border-l"
30
+ },
31
+ size: {
32
+ sm: "w-80",
33
+ md: "w-96",
34
+ lg: "w-[28rem]",
35
+ xl: "w-[32rem]",
36
+ "3/4": "w-[75vw]",
37
+ full: "w-full"
38
+ },
39
+ variant: {
40
+ default: "bg-white border-border",
41
+ glass: "bg-white/10 backdrop-blur-lg border-white/20"
42
+ },
43
+ transitionType: {
44
+ slide: "transition-transform duration-300 ease-in-out",
45
+ fade: "transition-opacity duration-300 ease-in-out"
46
+ }
47
+ },
48
+ defaultVariants: {
49
+ position: "right",
50
+ size: "md",
51
+ variant: "default",
52
+ transitionType: "slide"
53
+ }
54
+ }), C = d("flex-shrink-0 px-6", {
55
+ variants: {
56
+ variant: {
57
+ default: "bg-white",
58
+ glass: "bg-transparent "
59
+ },
60
+ tab: {
61
+ true: "pt-4 pb-2",
62
+ false: "border-b border-border py-4 "
63
+ }
64
+ },
65
+ defaultVariants: {
66
+ variant: "default",
67
+ tab: !1
68
+ }
69
+ }), S = d("flex-1 overflow-y-auto px-6 py-4", {
70
+ variants: {
71
+ variant: {
72
+ default: "bg-white",
73
+ glass: "bg-transparent"
74
+ }
75
+ },
76
+ defaultVariants: {
77
+ variant: "default"
78
+ }
79
+ }), M = d("flex-shrink-0 px-6 py-4 border-t", {
80
+ variants: {
81
+ variant: {
82
+ default: "bg-white border-border",
83
+ glass: "bg-transparent border-white/10"
84
+ },
85
+ responsiveFlex: {
86
+ true: "flex flex-row gap-3 sm:justify-end [&>*]:sm:flex-grow-0 [&>*]:flex-grow",
87
+ false: "flex gap-2"
88
+ }
89
+ },
90
+ defaultVariants: {
91
+ variant: "default",
92
+ responsiveFlex: !0
93
+ }
94
+ }), R = p.forwardRef(({ className: t, ...e }, r) => {
95
+ const { isOpen: n, onClose: o } = w(), a = () => {
96
+ o();
97
+ };
98
+ return /* @__PURE__ */ s.jsx(
99
+ "div",
100
+ {
101
+ ref: r,
102
+ onClick: a,
103
+ className: u(
104
+ N({
105
+ state: n ? "open" : "closed"
106
+ }),
107
+ t
108
+ ),
109
+ ...e
110
+ }
111
+ );
112
+ }), F = p.forwardRef(
113
+ ({ children: t, className: e, hasTab: r, ...n }, o) => {
114
+ const { variant: a } = w();
115
+ return /* @__PURE__ */ s.jsx(
116
+ "div",
117
+ {
118
+ ref: o,
119
+ className: u(
120
+ C({ variant: a, tab: !!r }),
121
+ e
122
+ ),
123
+ ...n,
124
+ children: t
125
+ }
126
+ );
127
+ }
128
+ ), I = m(
129
+ ({ children: t, className: e, ...r }, n) => /* @__PURE__ */ s.jsx("div", { ref: n, className: u("[&>div]:px-6", e), ...r, children: t })
130
+ ), L = p.forwardRef(
131
+ ({ children: t, className: e, ...r }, n) => {
132
+ const { variant: o } = w();
133
+ return /* @__PURE__ */ s.jsx(
134
+ "div",
135
+ {
136
+ ref: n,
137
+ className: u(S({ variant: o }), e),
138
+ ...r,
139
+ children: t
140
+ }
141
+ );
142
+ }
143
+ ), H = p.forwardRef(
144
+ ({ children: t, className: e, responsiveFlex: r = !0, ...n }, o) => {
145
+ const { variant: a } = w();
146
+ return /* @__PURE__ */ s.jsx(
147
+ "div",
148
+ {
149
+ ref: o,
150
+ className: u(
151
+ M({ variant: a, responsiveFlex: r }),
152
+ e
153
+ ),
154
+ ...n,
155
+ children: t
156
+ }
157
+ );
158
+ }
159
+ ), T = ({
160
+ children: t,
161
+ isOpen: e,
162
+ onClose: r,
163
+ position: n = "right",
164
+ size: o = "md",
165
+ variant: a = "default",
166
+ transitionType: i = "slide",
167
+ className: l,
168
+ ...b
169
+ }) => {
170
+ const c = D(() => {
171
+ r(!1);
172
+ }, [r]), x = {
173
+ isOpen: e,
174
+ onClose: c,
175
+ position: n,
176
+ size: o,
177
+ variant: a,
178
+ transitionType: i
179
+ };
180
+ return v(() => {
181
+ const f = (B) => {
182
+ B.key === "Escape" && e && c();
183
+ };
184
+ return e && (document.addEventListener("keydown", f), document.body.style.overflow = "hidden"), () => {
185
+ document.removeEventListener("keydown", f), document.body.style.overflow = "unset";
186
+ };
187
+ }, [e, c]), /* @__PURE__ */ s.jsx(j.Provider, { value: x, children: /* @__PURE__ */ s.jsxs(
188
+ "div",
189
+ {
190
+ className: u(
191
+ "fixed z-50 inset-0 pointer-events-none",
192
+ e && "pointer-events-auto"
193
+ ),
194
+ children: [
195
+ /* @__PURE__ */ s.jsx(R, {}),
196
+ /* @__PURE__ */ s.jsx(
197
+ "div",
198
+ {
199
+ role: e ? "dialog" : void 0,
200
+ "aria-modal": e ? "true" : void 0,
201
+ className: u(
202
+ z({
203
+ position: n,
204
+ size: o,
205
+ variant: a,
206
+ transitionType: i
207
+ }),
208
+ i === "slide" ? [
209
+ !e && n === "left" && "-translate-x-full",
210
+ !e && n === "right" && "translate-x-full"
211
+ ] : [
212
+ "left-0 right-0 top-0 bottom-0",
213
+ e ? "opacity-100" : "opacity-0 pointer-events-none"
214
+ ],
215
+ l
216
+ ),
217
+ ...b,
218
+ children: e && t
219
+ }
220
+ )
221
+ ]
222
+ }
223
+ ) });
224
+ }, se = Object.assign(T, {
225
+ Header: F,
226
+ Tab: I,
227
+ Body: L,
228
+ Footer: H
229
+ }), V = y(null), g = () => {
230
+ const t = k(V);
231
+ if (!t)
232
+ throw new Error("useMenuContext must be used within a Menu component");
233
+ return t;
234
+ }, A = d(
235
+ "z-30 min-w-40 bg-background text-black rounded-lg border border-border",
236
+ {
237
+ variants: {
238
+ variant: {
239
+ default: "",
240
+ outline: "border bg-transparent"
241
+ },
242
+ size: {
243
+ sm: "py-1.5 px-1",
244
+ md: "py-2 px-1"
245
+ }
246
+ },
247
+ defaultVariants: {
248
+ variant: "default",
249
+ size: "md"
250
+ }
251
+ }
252
+ ), q = d(
253
+ "w-full text-left px-4 rounded-sm cursor-pointer transition-colors duration-150 select-none hover:bg-background-light outline-none border border-transparent focus-visible:border-primary-light disabled:opacity-50 disabled:cursor-not-allowed",
254
+ {
255
+ variants: {
256
+ size: {
257
+ sm: "text-sm py-1",
258
+ md: "text-base py-1"
259
+ }
260
+ },
261
+ defaultVariants: {
262
+ size: "md"
263
+ }
264
+ }
265
+ ), K = m(
266
+ ({ children: t, ...e }, r) => {
267
+ const { open: n, triggerRef: o } = g();
268
+ return /* @__PURE__ */ s.jsx(
269
+ "span",
270
+ {
271
+ ref: (a) => {
272
+ o.current = a, typeof r == "function" ? r(a) : r && (r.current = a);
273
+ },
274
+ "aria-haspopup": "menu",
275
+ "aria-expanded": n,
276
+ "aria-controls": "menu-content",
277
+ ...e,
278
+ children: t
279
+ }
280
+ );
281
+ }
282
+ ), P = m(
283
+ ({ children: t, className: e, ...r }, n) => {
284
+ const { open: o, contentRef: a, triggerRef: i, size: l } = g(), b = E();
285
+ let c = 0, x = 0;
286
+ if (i.current) {
287
+ const f = i.current.getBoundingClientRect();
288
+ c = f.bottom + window.scrollY + 4, x = f.left + window.scrollX;
289
+ }
290
+ return /* @__PURE__ */ s.jsx(
291
+ "div",
292
+ {
293
+ ref: (f) => {
294
+ a.current = f, typeof n == "function" ? n(f) : n && (n.current = f);
295
+ },
296
+ id: `menu-content-${b}`,
297
+ role: "menu",
298
+ tabIndex: -1,
299
+ "aria-hidden": !o,
300
+ className: u(
301
+ A({
302
+ size: l
303
+ }),
304
+ "absolute z-50 transition-opacity duration-150 ease-out",
305
+ o ? "opacity-100" : "opacity-0",
306
+ e
307
+ ),
308
+ style: {
309
+ minWidth: i.current?.offsetWidth,
310
+ top: c,
311
+ left: x
312
+ },
313
+ ...r,
314
+ children: o && t
315
+ }
316
+ );
317
+ }
318
+ ), W = m(
319
+ ({ children: t, disabled: e, className: r, ...n }, o) => {
320
+ const { size: a } = g();
321
+ return /* @__PURE__ */ s.jsx(
322
+ "button",
323
+ {
324
+ ref: o,
325
+ role: "menuitem",
326
+ tabIndex: 0,
327
+ disabled: e,
328
+ "aria-disabled": e,
329
+ className: u(
330
+ q({
331
+ size: a
332
+ }),
333
+ r
334
+ ),
335
+ ...n,
336
+ children: t
337
+ }
338
+ );
339
+ }
340
+ );
341
+ function _(t, e, r, n) {
342
+ v(() => {
343
+ if (!t) return;
344
+ function o(a) {
345
+ !e.current?.contains(a.target) && !r.current?.contains(a.target) && n();
346
+ }
347
+ return document.addEventListener("mousedown", o), () => document.removeEventListener("mousedown", o);
348
+ }, [t, n, e, r]);
349
+ }
350
+ function U(t, e) {
351
+ v(() => {
352
+ if (t && e.current) {
353
+ const r = e.current.querySelectorAll('[role="menuitem"]');
354
+ r.length && r[0].focus();
355
+ }
356
+ }, [t, e]);
357
+ }
358
+ function X(t, e, r, n) {
359
+ v(() => {
360
+ if (!t || !e.current) return;
361
+ const o = e.current;
362
+ function a(i) {
363
+ const l = Array.from(
364
+ o.querySelectorAll('[role="menuitem"]')
365
+ ), b = document.activeElement, c = l.indexOf(b);
366
+ i.key === "ArrowDown" ? (i.preventDefault(), l.length && l[(c + 1) % l.length].focus()) : i.key === "ArrowUp" ? (i.preventDefault(), l.length && l[(c - 1 + l.length) % l.length].focus()) : i.key === "Home" ? (i.preventDefault(), l.length && l[0].focus()) : i.key === "End" ? (i.preventDefault(), l.length && l[l.length - 1].focus()) : i.key === "Escape" && (i.preventDefault(), n(), r.current?.focus());
367
+ }
368
+ return o.addEventListener("keydown", a), () => o.removeEventListener("keydown", a);
369
+ }, [t, n, e, r]);
370
+ }
371
+ const Y = ({
372
+ children: t,
373
+ isOpen: e,
374
+ onOutsideClick: r,
375
+ size: n = "md"
376
+ }) => {
377
+ const o = h(null), a = h(null);
378
+ return _(e, a, o, r), U(e, a), X(e, a, o, r), /* @__PURE__ */ s.jsx(
379
+ V.Provider,
380
+ {
381
+ value: { open: e, triggerRef: o, contentRef: a, size: n },
382
+ children: t
383
+ }
384
+ );
385
+ }, ie = Object.assign(Y, {
386
+ Trigger: K,
387
+ Content: P,
388
+ Item: W
389
+ }), $ = d(
390
+ [
391
+ "fixed left-0 bottom-0 z-40 w-full max-h-[90dvh] bg-background rounded-t-xl shadow-lg border-t border-border rounded-lg",
392
+ "transition-transform duration-300 ease-in-out will-change-transform"
393
+ ],
394
+ {
395
+ variants: {
396
+ open: {
397
+ true: "translate-y-0",
398
+ false: "translate-y-full"
399
+ }
400
+ },
401
+ defaultVariants: {
402
+ open: !1
403
+ }
404
+ }
405
+ ), G = d(
406
+ ["fixed inset-0 z-40 duration-300"],
407
+ {
408
+ variants: {
409
+ open: {
410
+ true: "backdrop-blur-md bg-foreground/30",
411
+ false: "pointer-events-none"
412
+ }
413
+ },
414
+ defaultVariants: {
415
+ open: !1
416
+ }
417
+ }
418
+ ), J = d("px-4 pt-4 pb-2"), Q = d("px-4 py-2"), Z = d("px-4 pt-2 pb-4"), O = m(function({ className: e, ...r }, n) {
419
+ return /* @__PURE__ */ s.jsx(
420
+ "h2",
421
+ {
422
+ ref: n,
423
+ className: ["text-lg font-semibold text-foreground", e].filter(Boolean).join(" "),
424
+ ...r
425
+ }
426
+ );
427
+ }), ee = m(({ className: t, ...e }, r) => /* @__PURE__ */ s.jsx(
428
+ "div",
429
+ {
430
+ ref: r,
431
+ className: J({ className: t }),
432
+ ...e
433
+ }
434
+ )), te = m(
435
+ ({ className: t, ...e }, r) => /* @__PURE__ */ s.jsx(
436
+ "div",
437
+ {
438
+ ref: r,
439
+ className: Q({ className: t }),
440
+ ...e
441
+ }
442
+ )
443
+ ), re = m(({ className: t, ...e }, r) => /* @__PURE__ */ s.jsx(
444
+ "div",
445
+ {
446
+ ref: r,
447
+ className: Z({ className: t }),
448
+ ...e
449
+ }
450
+ )), ne = m(
451
+ ({ isOpen: t, children: e, className: r, onClose: n, ...o }, a) => {
452
+ v(() => {
453
+ const l = (b) => {
454
+ b.key === "Escape" && t && n();
455
+ };
456
+ return t && (document.addEventListener("keydown", l), document.body.style.overflow = "hidden"), () => {
457
+ document.removeEventListener("keydown", l), document.body.style.overflow = "unset";
458
+ };
459
+ }, [t, n]);
460
+ const i = () => {
461
+ n?.();
462
+ };
463
+ return /* @__PURE__ */ s.jsxs(s.Fragment, { children: [
464
+ /* @__PURE__ */ s.jsx(
465
+ "div",
466
+ {
467
+ className: G({ open: t }),
468
+ "aria-hidden": "true",
469
+ onClick: i
470
+ }
471
+ ),
472
+ /* @__PURE__ */ s.jsx(
473
+ "div",
474
+ {
475
+ ref: a,
476
+ className: u(
477
+ $({
478
+ open: t
479
+ }),
480
+ r
481
+ ),
482
+ role: "dialog",
483
+ "aria-modal": "true",
484
+ tabIndex: -1,
485
+ ...o,
486
+ children: e
487
+ }
488
+ )
489
+ ] });
490
+ }
491
+ ), le = Object.assign(ne, {
492
+ Header: ee,
493
+ Title: O,
494
+ Body: te,
495
+ Footer: re
496
+ });
497
+ export {
498
+ le as B,
499
+ se as D,
500
+ ie as M
501
+ };