@imc0nt0/mirror 0.1.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.
package/dist/mirror.js ADDED
@@ -0,0 +1,1858 @@
1
+ import { AnimatePresence as e, AnimatePresence as t, motion as n, useAnimate as r } from "framer-motion";
2
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
3
+ import { useEffect as o, useState as s } from "react";
4
+ //#region src/components/Button.jsx
5
+ function c({ children: e, variant: t = "primary", size: r = "medium", disabled: a = !1, fullWidth: o = !1, onClick: s, className: c = "", ...l }) {
6
+ let u = {
7
+ primary: {
8
+ background: "#b8e8fd",
9
+ color: "#000000",
10
+ border: "none"
11
+ },
12
+ secondary: {
13
+ background: "#f4f4fe",
14
+ color: "#000000",
15
+ border: "none"
16
+ },
17
+ outline: {
18
+ background: "transparent",
19
+ color: "#b8e8fd",
20
+ border: "1px solid #b8e8fd"
21
+ },
22
+ ghost: {
23
+ background: "transparent",
24
+ color: "#212529",
25
+ border: "none"
26
+ }
27
+ }, d = {
28
+ small: {
29
+ padding: "8px 16px",
30
+ fontSize: "13px",
31
+ borderRadius: "8px"
32
+ },
33
+ medium: {
34
+ padding: "14px 20px",
35
+ fontSize: "15px",
36
+ borderRadius: "10px"
37
+ },
38
+ large: {
39
+ padding: "18px 24px",
40
+ fontSize: "16px",
41
+ borderRadius: "12px"
42
+ }
43
+ }, f = {
44
+ ...u[t],
45
+ ...d[r],
46
+ cursor: a ? "not-allowed" : "pointer",
47
+ fontWeight: "600",
48
+ width: o ? "100%" : "auto",
49
+ opacity: a ? .4 : 1,
50
+ display: "inline-flex",
51
+ alignItems: "center",
52
+ justifyContent: "center",
53
+ gap: "6px",
54
+ transition: "all 0.2s"
55
+ };
56
+ return /* @__PURE__ */ i(n.button, {
57
+ style: f,
58
+ className: c,
59
+ onClick: a ? void 0 : s,
60
+ disabled: a,
61
+ whileHover: a ? {} : {
62
+ opacity: .9,
63
+ scale: 1.02
64
+ },
65
+ whileTap: a ? {} : { scale: .98 },
66
+ transition: { duration: .15 },
67
+ ...l,
68
+ children: e
69
+ });
70
+ }
71
+ //#endregion
72
+ //#region src/components/Card.jsx
73
+ function l({ children: e, hoverable: t = !1, onClick: r, noPadding: a = !1, className: o = "", ...s }) {
74
+ let c = {
75
+ background: "#ffffff",
76
+ borderRadius: "16px",
77
+ boxShadow: "0 1px 3px rgba(0,0,0,0.08)",
78
+ padding: a ? "0" : "20px",
79
+ cursor: r ? "pointer" : "default",
80
+ overflow: "hidden"
81
+ };
82
+ return /* @__PURE__ */ i(n.div, {
83
+ style: c,
84
+ className: o,
85
+ onClick: r,
86
+ whileHover: t || r ? {
87
+ boxShadow: "0 4px 12px rgba(0,0,0,0.12)",
88
+ y: -2
89
+ } : {},
90
+ whileTap: r ? { scale: .98 } : {},
91
+ transition: { duration: .2 },
92
+ ...s,
93
+ children: e
94
+ });
95
+ }
96
+ //#endregion
97
+ //#region src/components/TextField.jsx
98
+ function u({ label: e, placeholder: t, error: n, disabled: r = !1, fullWidth: o = !1, type: c = "text", value: l, onChange: u, className: d = "", ...f }) {
99
+ let [p, m] = s(!1), [h, g] = s(!1), _ = {
100
+ display: "flex",
101
+ flexDirection: "column",
102
+ gap: "8px",
103
+ width: o ? "100%" : "auto"
104
+ }, v = {
105
+ padding: "12px 16px",
106
+ fontSize: "16px",
107
+ borderRadius: "8px",
108
+ border: n ? "2px solid #ef4444" : p ? "2px solid #b8e8fd" : h ? "2px solid #d4f1fd" : "2px solid #e5e7eb",
109
+ outline: "none",
110
+ transition: "all 0.2s",
111
+ background: r ? "#f9fafb" : h ? "#fafbfc" : "#ffffff",
112
+ cursor: r ? "not-allowed" : "text",
113
+ width: "100%",
114
+ color: "#212529"
115
+ }, y = {
116
+ fontSize: "14px",
117
+ fontWeight: "600",
118
+ color: "#374151"
119
+ }, b = {
120
+ fontSize: "12px",
121
+ color: "#ef4444",
122
+ marginTop: "4px"
123
+ };
124
+ return /* @__PURE__ */ a("div", {
125
+ style: _,
126
+ className: d,
127
+ children: [
128
+ e && /* @__PURE__ */ i("label", {
129
+ style: y,
130
+ children: e
131
+ }),
132
+ /* @__PURE__ */ i("input", {
133
+ type: c,
134
+ style: v,
135
+ placeholder: t,
136
+ disabled: r,
137
+ value: l,
138
+ onChange: u,
139
+ onFocus: () => m(!0),
140
+ onBlur: () => m(!1),
141
+ onMouseEnter: () => g(!0),
142
+ onMouseLeave: () => g(!1),
143
+ ...f
144
+ }),
145
+ n && /* @__PURE__ */ i("span", {
146
+ style: b,
147
+ children: n
148
+ })
149
+ ]
150
+ });
151
+ }
152
+ //#endregion
153
+ //#region src/components/Toast.jsx
154
+ function d({ message: e, type: r = "info", position: c = "bottom", duration: l = 3e3, onClose: u, isOpen: d = !0 }) {
155
+ let [f, p] = s(d);
156
+ o(() => {
157
+ p(d);
158
+ }, [d]), o(() => {
159
+ if (f && l > 0) {
160
+ let e = setTimeout(() => {
161
+ p(!1), u?.();
162
+ }, l);
163
+ return () => clearTimeout(e);
164
+ }
165
+ }, [
166
+ f,
167
+ l,
168
+ u
169
+ ]);
170
+ let m = {
171
+ success: {
172
+ icon: "bi-check-circle-fill",
173
+ iconBg: "#4bd964"
174
+ },
175
+ error: {
176
+ icon: "bi-x-circle-fill",
177
+ iconBg: "#cc0000"
178
+ },
179
+ warning: {
180
+ icon: "bi-exclamation-triangle-fill",
181
+ iconBg: "#ff4d00"
182
+ },
183
+ info: {
184
+ icon: "bi-info-circle-fill",
185
+ iconBg: "#b8e8fd"
186
+ }
187
+ }, h = {
188
+ position: "fixed",
189
+ ...c === "top" ? { top: "24px" } : { bottom: "24px" },
190
+ left: "50%",
191
+ transform: "translateX(-50%)",
192
+ background: "rgba(50, 50, 50, 0.95)",
193
+ backdropFilter: "blur(10px)",
194
+ color: "#ffffff",
195
+ padding: "14px 20px",
196
+ borderRadius: "12px",
197
+ fontSize: "14px",
198
+ fontWeight: "500",
199
+ boxShadow: "0 4px 16px rgba(0,0,0,0.25)",
200
+ zIndex: 9999,
201
+ maxWidth: "90%",
202
+ minWidth: "200px",
203
+ display: "flex",
204
+ alignItems: "center",
205
+ gap: "12px"
206
+ }, g = {
207
+ width: "24px",
208
+ height: "24px",
209
+ display: "flex",
210
+ alignItems: "center",
211
+ justifyContent: "center",
212
+ flexShrink: 0
213
+ }, _ = {
214
+ fontSize: "20px",
215
+ color: m[r].iconBg
216
+ }, v = c === "top" ? {
217
+ initial: {
218
+ opacity: 0,
219
+ y: -50,
220
+ scale: .8
221
+ },
222
+ animate: {
223
+ opacity: 1,
224
+ y: 0,
225
+ scale: 1
226
+ },
227
+ exit: {
228
+ opacity: 0,
229
+ y: -50,
230
+ scale: .8
231
+ }
232
+ } : {
233
+ initial: {
234
+ opacity: 0,
235
+ y: 50,
236
+ scale: .8
237
+ },
238
+ animate: {
239
+ opacity: 1,
240
+ y: 0,
241
+ scale: 1
242
+ },
243
+ exit: {
244
+ opacity: 0,
245
+ y: 50,
246
+ scale: .8
247
+ }
248
+ };
249
+ return /* @__PURE__ */ i(t, { children: f && /* @__PURE__ */ a(n.div, {
250
+ style: h,
251
+ ...v,
252
+ transition: {
253
+ type: "spring",
254
+ stiffness: 400,
255
+ damping: 25,
256
+ mass: .5
257
+ },
258
+ children: [/* @__PURE__ */ i(n.div, {
259
+ style: g,
260
+ initial: {
261
+ scale: 0,
262
+ rotate: -180
263
+ },
264
+ animate: {
265
+ scale: 1,
266
+ rotate: 0
267
+ },
268
+ transition: {
269
+ delay: .1,
270
+ type: "spring",
271
+ stiffness: 500,
272
+ damping: 15
273
+ },
274
+ children: /* @__PURE__ */ i("i", {
275
+ className: `bi ${m[r].icon}`,
276
+ style: _
277
+ })
278
+ }), /* @__PURE__ */ i(n.span, {
279
+ initial: {
280
+ opacity: 0,
281
+ x: -10
282
+ },
283
+ animate: {
284
+ opacity: 1,
285
+ x: 0
286
+ },
287
+ transition: { delay: .15 },
288
+ children: e
289
+ })]
290
+ }) });
291
+ }
292
+ function f() {
293
+ let [e, t] = s(null), n = (e, n = "info", r = "bottom", i = 3e3) => {
294
+ t({
295
+ id: Date.now() + Math.random(),
296
+ message: e,
297
+ type: n,
298
+ position: r,
299
+ duration: i,
300
+ isOpen: !0
301
+ });
302
+ }, r = () => {
303
+ t((e) => e ? {
304
+ ...e,
305
+ isOpen: !1
306
+ } : null);
307
+ };
308
+ return {
309
+ toast: e,
310
+ showToast: n,
311
+ hideToast: r,
312
+ ToastComponent: e ? /* @__PURE__ */ i(d, {
313
+ message: e.message,
314
+ type: e.type,
315
+ position: e.position,
316
+ duration: e.duration,
317
+ isOpen: e.isOpen,
318
+ onClose: r
319
+ }, e.id) : null
320
+ };
321
+ }
322
+ //#endregion
323
+ //#region src/components/Modal.jsx
324
+ function p({ isOpen: e = !1, onClose: r, title: s, children: c, type: l = "normal", confirmText: u = "확인", cancelText: d = "취소", onConfirm: f, showCloseButton: p = !0 }) {
325
+ o(() => {
326
+ let t = (t) => {
327
+ t.key === "Escape" && e && r?.();
328
+ };
329
+ return window.addEventListener("keydown", t), () => window.removeEventListener("keydown", t);
330
+ }, [e, r]), o(() => (e ? document.body.style.overflow = "hidden" : document.body.style.overflow = "unset", () => {
331
+ document.body.style.overflow = "unset";
332
+ }), [e]);
333
+ let m = {
334
+ position: "fixed",
335
+ top: 0,
336
+ left: 0,
337
+ right: 0,
338
+ bottom: 0,
339
+ background: "rgba(0, 0, 0, 0.5)",
340
+ backdropFilter: "blur(4px)",
341
+ display: "flex",
342
+ alignItems: "center",
343
+ justifyContent: "center",
344
+ zIndex: 1e4,
345
+ padding: "20px"
346
+ }, h = {
347
+ background: "#ffffff",
348
+ borderRadius: "16px",
349
+ boxShadow: "0 8px 32px rgba(0,0,0,0.2)",
350
+ maxWidth: "500px",
351
+ width: "100%",
352
+ maxHeight: "90vh",
353
+ overflow: "hidden",
354
+ display: "flex",
355
+ flexDirection: "column"
356
+ }, g = {
357
+ padding: "24px 24px 16px",
358
+ borderBottom: "1px solid #f1f3f5",
359
+ display: "flex",
360
+ alignItems: "center",
361
+ justifyContent: "space-between"
362
+ }, _ = {
363
+ fontSize: "18px",
364
+ fontWeight: "700",
365
+ color: "#212529",
366
+ margin: 0
367
+ }, v = {
368
+ background: "transparent",
369
+ border: "none",
370
+ fontSize: "24px",
371
+ color: "#868e96",
372
+ cursor: "pointer",
373
+ padding: "4px",
374
+ display: "flex",
375
+ alignItems: "center",
376
+ justifyContent: "center",
377
+ width: "32px",
378
+ height: "32px",
379
+ borderRadius: "8px",
380
+ transition: "all 0.2s"
381
+ }, y = {
382
+ padding: "24px",
383
+ overflowY: "auto",
384
+ flex: 1,
385
+ fontSize: "14px",
386
+ color: "#495057",
387
+ lineHeight: "1.6"
388
+ }, b = {
389
+ padding: "16px 24px",
390
+ borderTop: "1px solid #f1f3f5",
391
+ display: "flex",
392
+ gap: "12px",
393
+ justifyContent: "flex-end"
394
+ }, x = {
395
+ padding: "10px 20px",
396
+ borderRadius: "8px",
397
+ fontSize: "14px",
398
+ fontWeight: "600",
399
+ cursor: "pointer",
400
+ border: "none",
401
+ transition: "all 0.2s"
402
+ }, S = {
403
+ ...x,
404
+ background: "#f1f3f5",
405
+ color: "#212529"
406
+ }, C = {
407
+ ...x,
408
+ background: "#b8e8fd",
409
+ color: "#000000"
410
+ };
411
+ return /* @__PURE__ */ i(t, { children: e && /* @__PURE__ */ i(n.div, {
412
+ style: m,
413
+ initial: { opacity: 0 },
414
+ animate: { opacity: 1 },
415
+ exit: { opacity: 0 },
416
+ onClick: r,
417
+ children: /* @__PURE__ */ a(n.div, {
418
+ style: h,
419
+ initial: {
420
+ scale: .8,
421
+ opacity: 0,
422
+ y: 20
423
+ },
424
+ animate: {
425
+ scale: 1,
426
+ opacity: 1,
427
+ y: 0
428
+ },
429
+ exit: {
430
+ scale: .8,
431
+ opacity: 0,
432
+ y: 20
433
+ },
434
+ transition: {
435
+ type: "spring",
436
+ stiffness: 300,
437
+ damping: 25
438
+ },
439
+ onClick: (e) => e.stopPropagation(),
440
+ children: [
441
+ /* @__PURE__ */ a("div", {
442
+ style: g,
443
+ children: [/* @__PURE__ */ i("h2", {
444
+ style: _,
445
+ children: s
446
+ }), p && /* @__PURE__ */ i(n.button, {
447
+ style: v,
448
+ onClick: r,
449
+ whileHover: { background: "#f1f3f5" },
450
+ whileTap: { scale: .95 },
451
+ children: /* @__PURE__ */ i("i", { className: "bi bi-x-lg" })
452
+ })]
453
+ }),
454
+ /* @__PURE__ */ i("div", {
455
+ style: y,
456
+ children: c
457
+ }),
458
+ l === "confirm" && /* @__PURE__ */ a("div", {
459
+ style: b,
460
+ children: [/* @__PURE__ */ i(n.button, {
461
+ style: S,
462
+ onClick: r,
463
+ whileHover: { opacity: .8 },
464
+ whileTap: { scale: .98 },
465
+ children: d
466
+ }), /* @__PURE__ */ i(n.button, {
467
+ style: C,
468
+ onClick: () => {
469
+ f?.(), r?.();
470
+ },
471
+ whileHover: { opacity: .9 },
472
+ whileTap: { scale: .98 },
473
+ children: u
474
+ })]
475
+ })
476
+ ]
477
+ })
478
+ }) });
479
+ }
480
+ function m() {
481
+ let [e, t] = s(!1);
482
+ return {
483
+ isOpen: e,
484
+ openModal: () => t(!0),
485
+ closeModal: () => t(!1)
486
+ };
487
+ }
488
+ //#endregion
489
+ //#region src/components/IconButton.jsx
490
+ function h({ icon: e, variant: t = "ghost", size: r = "medium", disabled: a = !1, rounded: o = !0, onClick: s, className: c = "", ...l }) {
491
+ let u = {
492
+ primary: {
493
+ background: "#b8e8fd",
494
+ color: "#000000",
495
+ border: "none"
496
+ },
497
+ secondary: {
498
+ background: "#f4f4fe",
499
+ color: "#000000",
500
+ border: "none"
501
+ },
502
+ ghost: {
503
+ background: "transparent",
504
+ color: "#212529",
505
+ border: "none"
506
+ },
507
+ danger: {
508
+ background: "transparent",
509
+ color: "#cc0000",
510
+ border: "none"
511
+ }
512
+ }, d = {
513
+ small: {
514
+ width: "32px",
515
+ height: "32px",
516
+ fontSize: "16px",
517
+ borderRadius: o ? "50%" : "6px"
518
+ },
519
+ medium: {
520
+ width: "40px",
521
+ height: "40px",
522
+ fontSize: "20px",
523
+ borderRadius: o ? "50%" : "8px"
524
+ },
525
+ large: {
526
+ width: "48px",
527
+ height: "48px",
528
+ fontSize: "24px",
529
+ borderRadius: o ? "50%" : "10px"
530
+ }
531
+ }, f = {
532
+ ...u[t],
533
+ ...d[r],
534
+ cursor: a ? "not-allowed" : "pointer",
535
+ opacity: a ? .4 : 1,
536
+ display: "inline-flex",
537
+ alignItems: "center",
538
+ justifyContent: "center",
539
+ transition: "all 0.2s",
540
+ padding: 0
541
+ };
542
+ return /* @__PURE__ */ i(n.button, {
543
+ style: f,
544
+ className: c,
545
+ onClick: a ? void 0 : s,
546
+ disabled: a,
547
+ whileHover: a ? {} : {
548
+ ghost: { background: "#f1f3f5" },
549
+ primary: { opacity: .9 },
550
+ secondary: { opacity: .9 },
551
+ danger: { background: "#fff5f5" }
552
+ }[t],
553
+ whileTap: a ? {} : { scale: .95 },
554
+ transition: { duration: .15 },
555
+ ...l,
556
+ children: /* @__PURE__ */ i("i", { className: `bi ${e}` })
557
+ });
558
+ }
559
+ //#endregion
560
+ //#region src/components/ListRow.jsx
561
+ function g({ left: e, title: t, description: r, right: o, showArrow: s = !1, divider: c = !0, onClick: l, disabled: u = !1, className: d = "", ...f }) {
562
+ let p = {
563
+ display: "flex",
564
+ alignItems: "center",
565
+ padding: "18px 0",
566
+ gap: "14px",
567
+ background: "transparent",
568
+ borderBottom: c ? "1px solid #f1f3f5" : "none",
569
+ cursor: l && !u ? "pointer" : "default",
570
+ transition: "all 0.2s ease",
571
+ userSelect: "none",
572
+ position: "relative"
573
+ }, m = {
574
+ display: "flex",
575
+ alignItems: "center",
576
+ justifyContent: "center",
577
+ flexShrink: 0
578
+ }, h = {
579
+ flex: 1,
580
+ display: "flex",
581
+ flexDirection: "column",
582
+ gap: "5px",
583
+ minWidth: 0
584
+ }, g = {
585
+ fontSize: "16px",
586
+ fontWeight: "600",
587
+ color: u ? "#adb5bd" : "#191f28",
588
+ lineHeight: "1.5",
589
+ letterSpacing: "-0.3px",
590
+ textAlign: "left"
591
+ }, _ = {
592
+ fontSize: "14px",
593
+ color: u ? "#ced4da" : "#8b95a1",
594
+ lineHeight: "1.5",
595
+ letterSpacing: "-0.2px",
596
+ textAlign: "left"
597
+ }, v = {
598
+ display: "flex",
599
+ alignItems: "center",
600
+ gap: "6px",
601
+ flexShrink: 0,
602
+ color: "#8b95a1",
603
+ fontSize: "15px",
604
+ fontWeight: "500"
605
+ }, y = {
606
+ fontSize: "18px",
607
+ color: "#b0b8c1",
608
+ marginLeft: "2px"
609
+ };
610
+ return /* @__PURE__ */ a(n.div, {
611
+ style: p,
612
+ className: d,
613
+ onClick: l && !u ? l : void 0,
614
+ whileHover: l && !u ? { x: 2 } : {},
615
+ transition: {
616
+ duration: .2,
617
+ ease: "easeOut"
618
+ },
619
+ ...f,
620
+ children: [
621
+ e && /* @__PURE__ */ i("div", {
622
+ style: m,
623
+ children: e
624
+ }),
625
+ /* @__PURE__ */ a("div", {
626
+ style: h,
627
+ children: [/* @__PURE__ */ i("div", {
628
+ style: g,
629
+ children: t
630
+ }), r && /* @__PURE__ */ i("div", {
631
+ style: _,
632
+ children: r
633
+ })]
634
+ }),
635
+ (o || s) && /* @__PURE__ */ a("div", {
636
+ style: v,
637
+ children: [o, s && /* @__PURE__ */ i("i", {
638
+ className: "bi bi-chevron-right",
639
+ style: y
640
+ })]
641
+ })
642
+ ]
643
+ });
644
+ }
645
+ function _({ color: e = "#b8e8fd", size: t = 44 }) {
646
+ return /* @__PURE__ */ i("div", { style: {
647
+ width: `${t}px`,
648
+ height: `${t}px`,
649
+ borderRadius: "12px",
650
+ background: e,
651
+ flexShrink: 0
652
+ } });
653
+ }
654
+ function v({ title: e, children: t, className: n = "", ...r }) {
655
+ let o = { marginBottom: "32px" }, s = {
656
+ fontSize: "14px",
657
+ fontWeight: "700",
658
+ color: "#6b7684",
659
+ padding: "0 0 12px 0",
660
+ letterSpacing: "-0.2px"
661
+ }, c = {
662
+ background: "#ffffff",
663
+ borderRadius: "12px",
664
+ padding: "0 20px",
665
+ boxShadow: "0 1px 3px rgba(0,0,0,0.04)"
666
+ };
667
+ return /* @__PURE__ */ a("div", {
668
+ style: o,
669
+ className: n,
670
+ ...r,
671
+ children: [e && /* @__PURE__ */ i("div", {
672
+ style: s,
673
+ children: e
674
+ }), /* @__PURE__ */ i("div", {
675
+ style: c,
676
+ children: t
677
+ })]
678
+ });
679
+ }
680
+ //#endregion
681
+ //#region src/components/Stepper.jsx
682
+ function y({ steps: e = [], currentStep: t = null, className: n = "", style: r = {}, ...a }) {
683
+ return /* @__PURE__ */ i("div", {
684
+ style: {
685
+ background: "#ffffff",
686
+ borderRadius: "12px",
687
+ padding: "0",
688
+ boxShadow: "0 1px 3px rgba(0,0,0,0.04)",
689
+ overflow: "hidden",
690
+ ...r
691
+ },
692
+ className: n,
693
+ ...a,
694
+ children: e.map((n, r) => /* @__PURE__ */ i(b, {
695
+ stepNumber: r + 1,
696
+ title: n.title,
697
+ description: n.description,
698
+ icon: n.icon || "bi-chevron-right",
699
+ onClick: n.onClick,
700
+ isLast: r === e.length - 1,
701
+ isActive: t !== null && r === t
702
+ }, r))
703
+ });
704
+ }
705
+ function b({ stepNumber: e, title: t, description: r, icon: o, onClick: c, isLast: l, isActive: u }) {
706
+ let [d, f] = s(!1), p = {
707
+ display: "flex",
708
+ alignItems: "center",
709
+ gap: "16px",
710
+ padding: "20px 20px",
711
+ borderBottom: l ? "none" : "1px solid #f1f3f5",
712
+ cursor: c ? "pointer" : "default",
713
+ background: u ? "#fafbfc" : "#ffffff",
714
+ transition: "background 0.2s ease"
715
+ }, m = {
716
+ width: "32px",
717
+ height: "32px",
718
+ borderRadius: "50%",
719
+ background: u ? "#b8e8fd" : "#f1f3f5",
720
+ color: u ? "#212529" : "#868e96",
721
+ display: "flex",
722
+ alignItems: "center",
723
+ justifyContent: "center",
724
+ fontSize: "14px",
725
+ fontWeight: "600",
726
+ flexShrink: 0
727
+ }, h = {
728
+ flex: 1,
729
+ minWidth: 0
730
+ }, g = {
731
+ fontSize: "16px",
732
+ fontWeight: "600",
733
+ color: "#212529",
734
+ marginBottom: r ? "4px" : "0",
735
+ textAlign: "left"
736
+ };
737
+ return /* @__PURE__ */ a(n.div, {
738
+ style: p,
739
+ onClick: c,
740
+ onMouseEnter: () => f(!0),
741
+ onMouseLeave: () => f(!1),
742
+ whileHover: c ? { backgroundColor: "#fafbfc" } : {},
743
+ animate: c && d ? { x: [
744
+ 0,
745
+ 4,
746
+ 0
747
+ ] } : { x: 0 },
748
+ transition: { duration: .3 },
749
+ children: [
750
+ /* @__PURE__ */ i("div", {
751
+ style: m,
752
+ children: e
753
+ }),
754
+ /* @__PURE__ */ a("div", {
755
+ style: h,
756
+ children: [/* @__PURE__ */ i("div", {
757
+ style: g,
758
+ children: t
759
+ }), r && /* @__PURE__ */ i("div", {
760
+ style: {
761
+ fontSize: "14px",
762
+ color: "#868e96",
763
+ lineHeight: "1.4",
764
+ textAlign: "left"
765
+ },
766
+ children: r
767
+ })]
768
+ }),
769
+ o && /* @__PURE__ */ i("div", {
770
+ style: {
771
+ fontSize: "20px",
772
+ color: "#adb5bd",
773
+ flexShrink: 0
774
+ },
775
+ children: typeof o == "string" ? /* @__PURE__ */ i("i", { className: o }) : o
776
+ })
777
+ ]
778
+ });
779
+ }
780
+ //#endregion
781
+ //#region src/components/Skeleton.jsx
782
+ function x({ variant: e = "rect", width: t = "100%", height: r = "20px", animation: a = !0, className: o = "", style: s = {}, ...c }) {
783
+ let l = {
784
+ display: "inline-block",
785
+ background: "linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%)",
786
+ backgroundSize: "200% 100%",
787
+ width: typeof t == "number" ? `${t}px` : t,
788
+ height: typeof r == "number" ? `${r}px` : r,
789
+ ...s
790
+ }, u = {
791
+ text: {
792
+ borderRadius: "4px",
793
+ height: r || "16px"
794
+ },
795
+ circle: {
796
+ borderRadius: "50%",
797
+ width: t || r || "40px",
798
+ height: r || t || "40px"
799
+ },
800
+ rect: { borderRadius: "8px" }
801
+ }, d = {
802
+ ...l,
803
+ ...u[e]
804
+ };
805
+ return /* @__PURE__ */ i(n.div, {
806
+ style: d,
807
+ className: o,
808
+ animate: a ? { backgroundPosition: ["0% 0%", "100% 0%"] } : {},
809
+ transition: {
810
+ duration: 1.5,
811
+ repeat: Infinity,
812
+ ease: "linear"
813
+ },
814
+ ...c
815
+ });
816
+ }
817
+ function S({ lines: e = 3, lastLineWidth: t = "60%", spacing: n = "12px" }) {
818
+ return /* @__PURE__ */ i("div", {
819
+ style: {
820
+ display: "flex",
821
+ flexDirection: "column",
822
+ gap: n,
823
+ width: "100%"
824
+ },
825
+ children: Array.from({ length: e }, (n, r) => /* @__PURE__ */ i(x, {
826
+ variant: "text",
827
+ width: r === e - 1 ? t : "100%"
828
+ }, r))
829
+ });
830
+ }
831
+ function C({ hasImage: e = !0, hasAvatar: t = !1 }) {
832
+ return /* @__PURE__ */ a("div", {
833
+ style: {
834
+ background: "#ffffff",
835
+ borderRadius: "12px",
836
+ padding: "20px",
837
+ boxShadow: "0 1px 3px rgba(0,0,0,0.04)"
838
+ },
839
+ children: [
840
+ e && /* @__PURE__ */ i(x, {
841
+ variant: "rect",
842
+ width: "100%",
843
+ height: "180px",
844
+ style: { marginBottom: "16px" }
845
+ }),
846
+ t && /* @__PURE__ */ a("div", {
847
+ style: {
848
+ display: "flex",
849
+ gap: "12px",
850
+ marginBottom: "16px",
851
+ alignItems: "center"
852
+ },
853
+ children: [/* @__PURE__ */ i(x, {
854
+ variant: "circle",
855
+ width: "40px",
856
+ height: "40px"
857
+ }), /* @__PURE__ */ i("div", {
858
+ style: { flex: 1 },
859
+ children: /* @__PURE__ */ i(x, {
860
+ variant: "text",
861
+ width: "40%",
862
+ height: "14px"
863
+ })
864
+ })]
865
+ }),
866
+ /* @__PURE__ */ a("div", {
867
+ style: {
868
+ display: "flex",
869
+ flexDirection: "column",
870
+ gap: "12px"
871
+ },
872
+ children: [/* @__PURE__ */ i(x, {
873
+ variant: "text",
874
+ width: "80%",
875
+ height: "18px"
876
+ }), /* @__PURE__ */ i(S, {
877
+ lines: 2,
878
+ lastLineWidth: "60%"
879
+ })]
880
+ })
881
+ ]
882
+ });
883
+ }
884
+ function w({ count: e = 3, hasIcon: t = !0 }) {
885
+ let n = {
886
+ background: "#ffffff",
887
+ borderRadius: "12px",
888
+ padding: "0 20px",
889
+ boxShadow: "0 1px 3px rgba(0,0,0,0.04)"
890
+ }, r = {
891
+ display: "flex",
892
+ alignItems: "center",
893
+ gap: "14px",
894
+ padding: "18px 0",
895
+ borderBottom: "1px solid #f1f3f5"
896
+ }, o = {
897
+ ...r,
898
+ borderBottom: "none"
899
+ }, s = {
900
+ flex: 1,
901
+ display: "flex",
902
+ flexDirection: "column",
903
+ gap: "8px"
904
+ };
905
+ return /* @__PURE__ */ i("div", {
906
+ style: n,
907
+ children: Array.from({ length: e }, (n, c) => /* @__PURE__ */ a("div", {
908
+ style: c === e - 1 ? o : r,
909
+ children: [
910
+ t && /* @__PURE__ */ i(x, {
911
+ variant: "circle",
912
+ width: "44px",
913
+ height: "44px"
914
+ }),
915
+ /* @__PURE__ */ a("div", {
916
+ style: s,
917
+ children: [/* @__PURE__ */ i(x, {
918
+ variant: "text",
919
+ width: "60%",
920
+ height: "16px"
921
+ }), /* @__PURE__ */ i(x, {
922
+ variant: "text",
923
+ width: "40%",
924
+ height: "14px"
925
+ })]
926
+ }),
927
+ /* @__PURE__ */ i(x, {
928
+ variant: "text",
929
+ width: "20px",
930
+ height: "20px"
931
+ })
932
+ ]
933
+ }, c))
934
+ });
935
+ }
936
+ //#endregion
937
+ //#region src/components/StatusSection.jsx
938
+ function T({ icon: e = "✅", title: t, description: r, buttonText: o, onButtonClick: s, type: c = "success", className: l = "", style: u = {}, ...d }) {
939
+ let f = {
940
+ display: "flex",
941
+ flexDirection: "column",
942
+ alignItems: "center",
943
+ textAlign: "center",
944
+ gap: "14px",
945
+ paddingTop: "32px",
946
+ ...u
947
+ }, p = {
948
+ fontSize: "48px",
949
+ lineHeight: 1,
950
+ marginBottom: "4px",
951
+ fontFamily: "var(--font-emoji, TossFace)"
952
+ }, m = {
953
+ fontSize: "20px",
954
+ fontWeight: "700",
955
+ lineHeight: 1.3,
956
+ margin: 0,
957
+ letterSpacing: "-0.3px",
958
+ color: "#191f28"
959
+ }, h = {
960
+ fontSize: "13px",
961
+ color: "#888",
962
+ lineHeight: 1.65,
963
+ margin: 0,
964
+ wordBreak: "keep-all"
965
+ }, g = {
966
+ width: "100%",
967
+ padding: "14px",
968
+ background: "#b8e8fd",
969
+ color: "#111",
970
+ fontSize: "15px",
971
+ fontWeight: "700",
972
+ border: "none",
973
+ borderRadius: "50px",
974
+ cursor: "pointer",
975
+ fontFamily: "inherit",
976
+ position: "relative",
977
+ overflow: "hidden"
978
+ }, _ = {
979
+ hidden: {
980
+ scale: .25,
981
+ opacity: 0
982
+ },
983
+ visible: {
984
+ scale: [
985
+ .25,
986
+ 1.22,
987
+ .9,
988
+ 1
989
+ ],
990
+ opacity: 1,
991
+ transition: {
992
+ duration: .58,
993
+ ease: [
994
+ .34,
995
+ 1.56,
996
+ .64,
997
+ 1
998
+ ]
999
+ }
1000
+ }
1001
+ };
1002
+ return /* @__PURE__ */ a(n.div, {
1003
+ style: f,
1004
+ className: l,
1005
+ initial: "hidden",
1006
+ animate: "visible",
1007
+ variants: {
1008
+ hidden: {
1009
+ opacity: 0,
1010
+ y: 14,
1011
+ filter: "blur(3px)"
1012
+ },
1013
+ visible: {
1014
+ opacity: 1,
1015
+ y: 0,
1016
+ filter: "blur(0px)",
1017
+ transition: {
1018
+ duration: .28,
1019
+ ease: [
1020
+ .22,
1021
+ 1,
1022
+ .36,
1023
+ 1
1024
+ ]
1025
+ }
1026
+ }
1027
+ },
1028
+ ...d,
1029
+ children: [
1030
+ /* @__PURE__ */ i(n.div, {
1031
+ style: p,
1032
+ variants: _,
1033
+ children: e
1034
+ }),
1035
+ t && /* @__PURE__ */ i("p", {
1036
+ style: m,
1037
+ children: t
1038
+ }),
1039
+ r && /* @__PURE__ */ i("p", {
1040
+ style: h,
1041
+ children: r
1042
+ }),
1043
+ o && s && /* @__PURE__ */ i(n.button, {
1044
+ style: g,
1045
+ onClick: s,
1046
+ whileHover: {
1047
+ opacity: .92,
1048
+ y: -1,
1049
+ boxShadow: "0 6px 22px rgba(184, 232, 253, 0.65)"
1050
+ },
1051
+ whileTap: {
1052
+ scale: .97,
1053
+ y: 0,
1054
+ boxShadow: "none",
1055
+ transition: { duration: .08 }
1056
+ },
1057
+ children: o
1058
+ })
1059
+ ]
1060
+ });
1061
+ }
1062
+ //#endregion
1063
+ //#region src/components/Border.jsx
1064
+ function E({ children: e, width: t = 1, color: n = "#e9ecef", style: r = "solid", radius: a = 0, top: o, right: s, bottom: c, left: l, padding: u, className: d = "", ...f }) {
1065
+ let p = o !== void 0 || s !== void 0 || c !== void 0 || l !== void 0, m = (e, i) => {
1066
+ if (i === !1) return "none";
1067
+ if (i === !0) return `${t}px ${r} ${n}`;
1068
+ if (typeof i == "string") return `${t}px ${r} ${i}`;
1069
+ };
1070
+ return /* @__PURE__ */ i("div", {
1071
+ style: {
1072
+ ...p ? {
1073
+ borderTop: o === void 0 ? "none" : m("top", o),
1074
+ borderRight: s === void 0 ? "none" : m("right", s),
1075
+ borderBottom: c === void 0 ? "none" : m("bottom", c),
1076
+ borderLeft: l === void 0 ? "none" : m("left", l)
1077
+ } : { border: `${t}px ${r} ${n}` },
1078
+ borderRadius: typeof a == "number" ? `${a}px` : a,
1079
+ ...u && { padding: typeof u == "number" ? `${u}px` : u }
1080
+ },
1081
+ className: d,
1082
+ ...f,
1083
+ children: e
1084
+ });
1085
+ }
1086
+ function D({ children: e, variant: t = "default", padding: n = 20, className: r = "", ...a }) {
1087
+ return /* @__PURE__ */ i("div", {
1088
+ style: {
1089
+ ...{
1090
+ default: {
1091
+ border: "1px solid #e9ecef",
1092
+ borderRadius: "12px"
1093
+ },
1094
+ primary: {
1095
+ border: "2px solid #b8e8fd",
1096
+ borderRadius: "12px"
1097
+ },
1098
+ secondary: {
1099
+ border: "2px solid #f4f4fe",
1100
+ borderRadius: "12px"
1101
+ },
1102
+ dashed: {
1103
+ border: "2px dashed #e9ecef",
1104
+ borderRadius: "12px"
1105
+ },
1106
+ shadow: {
1107
+ border: "1px solid #e9ecef",
1108
+ borderRadius: "12px",
1109
+ boxShadow: "0 2px 8px rgba(0,0,0,0.04)"
1110
+ }
1111
+ }[t],
1112
+ padding: typeof n == "number" ? `${n}px` : n
1113
+ },
1114
+ className: r,
1115
+ ...a,
1116
+ children: e
1117
+ });
1118
+ }
1119
+ function O({ orientation: e = "horizontal", color: t = "#f1f3f5", thickness: n = 1, spacing: r = 20, dashed: a = !1, className: o = "", style: s = {}, ...c }) {
1120
+ let l = e === "horizontal";
1121
+ return /* @__PURE__ */ i("div", {
1122
+ style: {
1123
+ background: a ? "transparent" : t,
1124
+ ...a && {
1125
+ borderTop: l ? `${n}px dashed ${t}` : "none",
1126
+ borderLeft: l ? "none" : `${n}px dashed ${t}`
1127
+ },
1128
+ ...l ? {
1129
+ width: "100%",
1130
+ height: a ? "0" : `${n}px`,
1131
+ margin: `${r}px 0`
1132
+ } : {
1133
+ width: a ? "0" : `${n}px`,
1134
+ height: "100%",
1135
+ margin: `0 ${r}px`
1136
+ },
1137
+ ...s
1138
+ },
1139
+ className: o,
1140
+ ...c
1141
+ });
1142
+ }
1143
+ function k({ children: e, title: t, divider: n = !0, padding: r = 20, className: o = "", ...s }) {
1144
+ let c = {
1145
+ background: "#ffffff",
1146
+ borderRadius: "12px",
1147
+ border: "1px solid #f1f3f5",
1148
+ overflow: "hidden"
1149
+ }, l = {
1150
+ fontSize: "16px",
1151
+ fontWeight: "600",
1152
+ color: "#191f28",
1153
+ padding: typeof r == "number" ? `${r}px` : r,
1154
+ borderBottom: n ? "1px solid #f1f3f5" : "none",
1155
+ margin: 0
1156
+ }, u = { padding: typeof r == "number" ? `${r}px` : r };
1157
+ return /* @__PURE__ */ a("div", {
1158
+ style: c,
1159
+ className: o,
1160
+ ...s,
1161
+ children: [t && /* @__PURE__ */ i("div", {
1162
+ style: l,
1163
+ children: t
1164
+ }), /* @__PURE__ */ i("div", {
1165
+ style: u,
1166
+ children: e
1167
+ })]
1168
+ });
1169
+ }
1170
+ //#endregion
1171
+ //#region src/components/Dialog.jsx
1172
+ function A() {
1173
+ let [e, t] = s(!1);
1174
+ return {
1175
+ isOpen: e,
1176
+ openDialog: () => t(!0),
1177
+ closeDialog: () => t(!1)
1178
+ };
1179
+ }
1180
+ function j({ isOpen: e, onClose: r, title: s, children: c, confirmText: l = "확인", icon: u, type: d = "info", ...f }) {
1181
+ o(() => {
1182
+ if (!e) return;
1183
+ let t = (e) => {
1184
+ e.key === "Escape" && r();
1185
+ };
1186
+ return document.addEventListener("keydown", t), () => document.removeEventListener("keydown", t);
1187
+ }, [e, r]);
1188
+ let { icon: p, color: m } = (() => {
1189
+ switch (d) {
1190
+ case "success": return {
1191
+ icon: "✅",
1192
+ color: "#4bd964"
1193
+ };
1194
+ case "warning": return {
1195
+ icon: "⚠️",
1196
+ color: "#ff4d00"
1197
+ };
1198
+ case "error": return {
1199
+ icon: "❌",
1200
+ color: "#cc0000"
1201
+ };
1202
+ default: return {
1203
+ icon: "ℹ️",
1204
+ color: "#b8e8fd"
1205
+ };
1206
+ }
1207
+ })(), h = {
1208
+ position: "fixed",
1209
+ inset: 0,
1210
+ background: "rgba(0, 0, 0, 0.5)",
1211
+ display: "flex",
1212
+ alignItems: "center",
1213
+ justifyContent: "center",
1214
+ zIndex: 1e3,
1215
+ padding: "20px"
1216
+ }, g = {
1217
+ background: "#ffffff",
1218
+ borderRadius: "16px",
1219
+ maxWidth: "400px",
1220
+ width: "100%",
1221
+ boxShadow: "0 20px 60px rgba(0, 0, 0, 0.3)",
1222
+ overflow: "hidden"
1223
+ }, _ = {
1224
+ padding: "32px 24px 24px",
1225
+ textAlign: "center"
1226
+ }, v = {
1227
+ fontSize: "48px",
1228
+ marginBottom: "16px",
1229
+ lineHeight: 1,
1230
+ fontFamily: "var(--font-emoji, TossFace)"
1231
+ }, y = {
1232
+ fontSize: "20px",
1233
+ fontWeight: "700",
1234
+ color: "#191f28",
1235
+ marginBottom: "12px",
1236
+ lineHeight: 1.3
1237
+ }, b = {
1238
+ fontSize: "14px",
1239
+ color: "#6b7684",
1240
+ lineHeight: 1.6,
1241
+ marginBottom: "24px"
1242
+ }, x = {
1243
+ width: "100%",
1244
+ padding: "14px",
1245
+ background: m,
1246
+ color: d === "warning" || d === "error" ? "#ffffff" : "#111111",
1247
+ fontSize: "15px",
1248
+ fontWeight: "700",
1249
+ border: "none",
1250
+ borderRadius: "8px",
1251
+ cursor: "pointer",
1252
+ fontFamily: "inherit"
1253
+ };
1254
+ return /* @__PURE__ */ i(t, { children: e && /* @__PURE__ */ i(n.div, {
1255
+ style: h,
1256
+ onClick: r,
1257
+ initial: { opacity: 0 },
1258
+ animate: { opacity: 1 },
1259
+ exit: { opacity: 0 },
1260
+ transition: { duration: .2 },
1261
+ ...f,
1262
+ children: /* @__PURE__ */ i(n.div, {
1263
+ style: g,
1264
+ onClick: (e) => e.stopPropagation(),
1265
+ initial: {
1266
+ scale: .9,
1267
+ opacity: 0,
1268
+ y: 20
1269
+ },
1270
+ animate: {
1271
+ scale: 1,
1272
+ opacity: 1,
1273
+ y: 0
1274
+ },
1275
+ exit: {
1276
+ scale: .9,
1277
+ opacity: 0,
1278
+ y: 20
1279
+ },
1280
+ transition: {
1281
+ type: "spring",
1282
+ damping: 25,
1283
+ stiffness: 300
1284
+ },
1285
+ children: /* @__PURE__ */ a("div", {
1286
+ style: _,
1287
+ children: [
1288
+ (u || p) && /* @__PURE__ */ i(n.div, {
1289
+ style: v,
1290
+ initial: {
1291
+ scale: 0,
1292
+ rotate: -180
1293
+ },
1294
+ animate: {
1295
+ scale: 1,
1296
+ rotate: 0
1297
+ },
1298
+ transition: {
1299
+ type: "spring",
1300
+ damping: 15,
1301
+ stiffness: 200,
1302
+ delay: .1
1303
+ },
1304
+ children: u || p
1305
+ }),
1306
+ s && /* @__PURE__ */ i("div", {
1307
+ style: y,
1308
+ children: s
1309
+ }),
1310
+ c && /* @__PURE__ */ i("div", {
1311
+ style: b,
1312
+ children: c
1313
+ }),
1314
+ /* @__PURE__ */ i(n.button, {
1315
+ style: x,
1316
+ onClick: r,
1317
+ whileHover: { opacity: .9 },
1318
+ whileTap: { scale: .97 },
1319
+ children: l
1320
+ })
1321
+ ]
1322
+ })
1323
+ })
1324
+ }) });
1325
+ }
1326
+ function M({ isOpen: e, onClose: r, onConfirm: s, title: c, children: l, confirmText: u = "확인", cancelText: d = "취소", icon: f, type: p = "info", ...m }) {
1327
+ o(() => {
1328
+ if (!e) return;
1329
+ let t = (e) => {
1330
+ e.key === "Escape" && r();
1331
+ };
1332
+ return document.addEventListener("keydown", t), () => document.removeEventListener("keydown", t);
1333
+ }, [e, r]);
1334
+ let h = () => {
1335
+ s?.(), r();
1336
+ }, { icon: g, color: _ } = (() => {
1337
+ switch (p) {
1338
+ case "success": return {
1339
+ icon: "✅",
1340
+ color: "#4bd964"
1341
+ };
1342
+ case "warning": return {
1343
+ icon: "⚠️",
1344
+ color: "#ff4d00"
1345
+ };
1346
+ case "error": return {
1347
+ icon: "❌",
1348
+ color: "#cc0000"
1349
+ };
1350
+ default: return {
1351
+ icon: "❓",
1352
+ color: "#b8e8fd"
1353
+ };
1354
+ }
1355
+ })(), v = {
1356
+ position: "fixed",
1357
+ inset: 0,
1358
+ background: "rgba(0, 0, 0, 0.5)",
1359
+ display: "flex",
1360
+ alignItems: "center",
1361
+ justifyContent: "center",
1362
+ zIndex: 1e3,
1363
+ padding: "20px"
1364
+ }, y = {
1365
+ background: "#ffffff",
1366
+ borderRadius: "16px",
1367
+ maxWidth: "400px",
1368
+ width: "100%",
1369
+ boxShadow: "0 20px 60px rgba(0, 0, 0, 0.3)",
1370
+ overflow: "hidden"
1371
+ }, b = {
1372
+ padding: "32px 24px 24px",
1373
+ textAlign: "center"
1374
+ }, x = {
1375
+ fontSize: "48px",
1376
+ marginBottom: "16px",
1377
+ lineHeight: 1,
1378
+ fontFamily: "var(--font-emoji, TossFace)"
1379
+ }, S = {
1380
+ fontSize: "20px",
1381
+ fontWeight: "700",
1382
+ color: "#191f28",
1383
+ marginBottom: "12px",
1384
+ lineHeight: 1.3
1385
+ }, C = {
1386
+ fontSize: "14px",
1387
+ color: "#6b7684",
1388
+ lineHeight: 1.6,
1389
+ marginBottom: "24px"
1390
+ }, w = {
1391
+ display: "flex",
1392
+ gap: "12px"
1393
+ }, T = {
1394
+ flex: 1,
1395
+ padding: "14px",
1396
+ background: "#f1f3f5",
1397
+ color: "#495057",
1398
+ fontSize: "15px",
1399
+ fontWeight: "600",
1400
+ border: "none",
1401
+ borderRadius: "8px",
1402
+ cursor: "pointer",
1403
+ fontFamily: "inherit"
1404
+ }, E = {
1405
+ flex: 1,
1406
+ padding: "14px",
1407
+ background: _,
1408
+ color: p === "warning" || p === "error" ? "#ffffff" : "#111111",
1409
+ fontSize: "15px",
1410
+ fontWeight: "700",
1411
+ border: "none",
1412
+ borderRadius: "8px",
1413
+ cursor: "pointer",
1414
+ fontFamily: "inherit"
1415
+ };
1416
+ return /* @__PURE__ */ i(t, { children: e && /* @__PURE__ */ i(n.div, {
1417
+ style: v,
1418
+ onClick: r,
1419
+ initial: { opacity: 0 },
1420
+ animate: { opacity: 1 },
1421
+ exit: { opacity: 0 },
1422
+ transition: { duration: .2 },
1423
+ ...m,
1424
+ children: /* @__PURE__ */ i(n.div, {
1425
+ style: y,
1426
+ onClick: (e) => e.stopPropagation(),
1427
+ initial: {
1428
+ scale: .9,
1429
+ opacity: 0,
1430
+ y: 20
1431
+ },
1432
+ animate: {
1433
+ scale: 1,
1434
+ opacity: 1,
1435
+ y: 0
1436
+ },
1437
+ exit: {
1438
+ scale: .9,
1439
+ opacity: 0,
1440
+ y: 20
1441
+ },
1442
+ transition: {
1443
+ type: "spring",
1444
+ damping: 25,
1445
+ stiffness: 300
1446
+ },
1447
+ children: /* @__PURE__ */ a("div", {
1448
+ style: b,
1449
+ children: [
1450
+ (f || g) && /* @__PURE__ */ i(n.div, {
1451
+ style: x,
1452
+ initial: {
1453
+ scale: 0,
1454
+ rotate: -180
1455
+ },
1456
+ animate: {
1457
+ scale: 1,
1458
+ rotate: 0
1459
+ },
1460
+ transition: {
1461
+ type: "spring",
1462
+ damping: 15,
1463
+ stiffness: 200,
1464
+ delay: .1
1465
+ },
1466
+ children: f || g
1467
+ }),
1468
+ c && /* @__PURE__ */ i("div", {
1469
+ style: S,
1470
+ children: c
1471
+ }),
1472
+ l && /* @__PURE__ */ i("div", {
1473
+ style: C,
1474
+ children: l
1475
+ }),
1476
+ /* @__PURE__ */ a("div", {
1477
+ style: w,
1478
+ children: [/* @__PURE__ */ i(n.button, {
1479
+ style: T,
1480
+ onClick: r,
1481
+ whileHover: { opacity: .9 },
1482
+ whileTap: { scale: .97 },
1483
+ children: d
1484
+ }), /* @__PURE__ */ i(n.button, {
1485
+ style: E,
1486
+ onClick: h,
1487
+ whileHover: { opacity: .9 },
1488
+ whileTap: { scale: .97 },
1489
+ children: u
1490
+ })]
1491
+ })
1492
+ ]
1493
+ })
1494
+ })
1495
+ }) });
1496
+ }
1497
+ //#endregion
1498
+ //#region src/animations/index.js
1499
+ var N = {
1500
+ linear: [
1501
+ 0,
1502
+ 0,
1503
+ 1,
1504
+ 1
1505
+ ],
1506
+ ease: [
1507
+ .25,
1508
+ .1,
1509
+ .25,
1510
+ 1
1511
+ ],
1512
+ easeIn: [
1513
+ .42,
1514
+ 0,
1515
+ 1,
1516
+ 1
1517
+ ],
1518
+ easeOut: [
1519
+ 0,
1520
+ 0,
1521
+ .58,
1522
+ 1
1523
+ ],
1524
+ easeInOut: [
1525
+ .42,
1526
+ 0,
1527
+ .58,
1528
+ 1
1529
+ ],
1530
+ spring: {
1531
+ type: "spring",
1532
+ damping: 25,
1533
+ stiffness: 300
1534
+ },
1535
+ springBouncy: {
1536
+ type: "spring",
1537
+ damping: 15,
1538
+ stiffness: 200
1539
+ },
1540
+ springSoft: {
1541
+ type: "spring",
1542
+ damping: 30,
1543
+ stiffness: 150
1544
+ },
1545
+ toss: [
1546
+ .22,
1547
+ 1,
1548
+ .36,
1549
+ 1
1550
+ ],
1551
+ smooth: [
1552
+ .34,
1553
+ 1.56,
1554
+ .64,
1555
+ 1
1556
+ ],
1557
+ bounce: [
1558
+ .68,
1559
+ -.55,
1560
+ .265,
1561
+ 1.55
1562
+ ],
1563
+ anticipate: [
1564
+ .36,
1565
+ 0,
1566
+ .66,
1567
+ -.56
1568
+ ]
1569
+ }, P = {
1570
+ fadeIn: {
1571
+ from: { opacity: 0 },
1572
+ to: { opacity: 1 },
1573
+ duration: .3,
1574
+ ease: N.ease
1575
+ },
1576
+ fadeOut: {
1577
+ from: { opacity: 1 },
1578
+ to: { opacity: 0 },
1579
+ duration: .3,
1580
+ ease: N.ease
1581
+ },
1582
+ slideUp: {
1583
+ from: {
1584
+ y: 20,
1585
+ opacity: 0
1586
+ },
1587
+ to: {
1588
+ y: 0,
1589
+ opacity: 1
1590
+ },
1591
+ duration: .4,
1592
+ ease: N.toss
1593
+ },
1594
+ slideDown: {
1595
+ from: {
1596
+ y: -20,
1597
+ opacity: 0
1598
+ },
1599
+ to: {
1600
+ y: 0,
1601
+ opacity: 1
1602
+ },
1603
+ duration: .4,
1604
+ ease: N.toss
1605
+ },
1606
+ slideLeft: {
1607
+ from: {
1608
+ x: 20,
1609
+ opacity: 0
1610
+ },
1611
+ to: {
1612
+ x: 0,
1613
+ opacity: 1
1614
+ },
1615
+ duration: .4,
1616
+ ease: N.toss
1617
+ },
1618
+ slideRight: {
1619
+ from: {
1620
+ x: -20,
1621
+ opacity: 0
1622
+ },
1623
+ to: {
1624
+ x: 0,
1625
+ opacity: 1
1626
+ },
1627
+ duration: .4,
1628
+ ease: N.toss
1629
+ },
1630
+ scaleIn: {
1631
+ from: {
1632
+ scale: .8,
1633
+ opacity: 0
1634
+ },
1635
+ to: {
1636
+ scale: 1,
1637
+ opacity: 1
1638
+ },
1639
+ duration: .3,
1640
+ ease: N.smooth
1641
+ },
1642
+ scaleOut: {
1643
+ from: {
1644
+ scale: 1,
1645
+ opacity: 1
1646
+ },
1647
+ to: {
1648
+ scale: .8,
1649
+ opacity: 0
1650
+ },
1651
+ duration: .3,
1652
+ ease: N.ease
1653
+ },
1654
+ scaleBounce: {
1655
+ from: {
1656
+ scale: .25,
1657
+ opacity: 0
1658
+ },
1659
+ to: {
1660
+ scale: 1,
1661
+ opacity: 1
1662
+ },
1663
+ duration: .58,
1664
+ ease: N.smooth
1665
+ },
1666
+ rotateIn: {
1667
+ from: {
1668
+ rotate: -180,
1669
+ scale: 0,
1670
+ opacity: 0
1671
+ },
1672
+ to: {
1673
+ rotate: 0,
1674
+ scale: 1,
1675
+ opacity: 1
1676
+ },
1677
+ duration: .5,
1678
+ ease: N.spring
1679
+ },
1680
+ blurIn: {
1681
+ from: {
1682
+ filter: "blur(10px)",
1683
+ opacity: 0
1684
+ },
1685
+ to: {
1686
+ filter: "blur(0px)",
1687
+ opacity: 1
1688
+ },
1689
+ duration: .4,
1690
+ ease: N.ease
1691
+ },
1692
+ entrance: {
1693
+ from: {
1694
+ y: 20,
1695
+ opacity: 0,
1696
+ filter: "blur(3px)"
1697
+ },
1698
+ to: {
1699
+ y: 0,
1700
+ opacity: 1,
1701
+ filter: "blur(0px)"
1702
+ },
1703
+ duration: .5,
1704
+ ease: N.toss
1705
+ },
1706
+ pop: {
1707
+ from: {
1708
+ scale: .9,
1709
+ opacity: 0
1710
+ },
1711
+ to: {
1712
+ scale: [
1713
+ .9,
1714
+ 1.05,
1715
+ 1
1716
+ ],
1717
+ opacity: 1
1718
+ },
1719
+ duration: .4,
1720
+ ease: N.bounce
1721
+ }
1722
+ };
1723
+ function F() {
1724
+ let [e, t] = r(), n = async (e, n, r = {}) => {
1725
+ let { from: i, to: a, duration: o, ease: s, delay: c = 0 } = {
1726
+ ...n,
1727
+ ...r
1728
+ };
1729
+ return i && await t(e, i, { duration: 0 }), t(e, a, {
1730
+ duration: o,
1731
+ ease: s,
1732
+ delay: c
1733
+ });
1734
+ }, i = async (e) => {
1735
+ for (let t of e) {
1736
+ let { target: e, motion: r, options: i } = t;
1737
+ await n(e, r, i);
1738
+ }
1739
+ }, a = async (e) => {
1740
+ let t = e.map(({ target: e, motion: t, options: r }) => n(e, t, r));
1741
+ return Promise.all(t);
1742
+ }, o = async (e, t = .1) => {
1743
+ let r = e.map(({ target: e, motion: r, options: i }, a) => n(e, r, {
1744
+ ...i,
1745
+ delay: (i?.delay || 0) + t * a
1746
+ }));
1747
+ return Promise.all(r);
1748
+ };
1749
+ return {
1750
+ scope: e,
1751
+ animate: t,
1752
+ play: n,
1753
+ serial: i,
1754
+ parallel: a,
1755
+ stagger: o,
1756
+ timeline: async (e) => {
1757
+ for (let t of e) t.type === "serial" ? await i(t.animations) : t.type === "parallel" ? await a(t.animations) : t.type === "stagger" ? await o(t.animations, t.delayBetween) : t.type === "wait" && await new Promise((e) => setTimeout(e, t.duration * 1e3));
1758
+ }
1759
+ };
1760
+ }
1761
+ function I({ from: e, to: t, duration: n = .3, ease: r = N.ease }) {
1762
+ return {
1763
+ from: e,
1764
+ to: t,
1765
+ duration: n,
1766
+ ease: r
1767
+ };
1768
+ }
1769
+ function L(...e) {
1770
+ return e.reduce((e, t) => ({
1771
+ from: {
1772
+ ...e.from,
1773
+ ...t.from
1774
+ },
1775
+ to: {
1776
+ ...e.to,
1777
+ ...t.to
1778
+ },
1779
+ duration: Math.max(e.duration || 0, t.duration || 0),
1780
+ ease: t.ease || e.ease
1781
+ }), {});
1782
+ }
1783
+ //#endregion
1784
+ //#region src/components/Animate.jsx
1785
+ function R({ children: e, motion: t = "fadeIn", delay: r = 0, onComplete: a, className: o = "", style: s = {}, ...c }) {
1786
+ let { from: l, to: u, duration: d, ease: f } = P[t] || P.fadeIn;
1787
+ return /* @__PURE__ */ i(n.div, {
1788
+ initial: l,
1789
+ animate: u,
1790
+ transition: {
1791
+ duration: d,
1792
+ ease: f,
1793
+ delay: r
1794
+ },
1795
+ onAnimationComplete: a,
1796
+ className: o,
1797
+ style: s,
1798
+ ...c,
1799
+ children: e
1800
+ });
1801
+ }
1802
+ function z({ children: e, motion: t = "slideUp", delay: r = 0, once: a = !0, amount: o = .3, className: s = "", style: c = {}, ...l }) {
1803
+ let { from: u, to: d, duration: f, ease: p } = P[t] || P.slideUp;
1804
+ return /* @__PURE__ */ i(n.div, {
1805
+ initial: u,
1806
+ whileInView: d,
1807
+ viewport: {
1808
+ once: a,
1809
+ amount: o
1810
+ },
1811
+ transition: {
1812
+ duration: f,
1813
+ ease: p,
1814
+ delay: r
1815
+ },
1816
+ className: s,
1817
+ style: c,
1818
+ ...l,
1819
+ children: e
1820
+ });
1821
+ }
1822
+ function B({ children: e, motion: t = "fadeIn", staggerDelay: r = .1, className: a = "", style: o = {}, ...s }) {
1823
+ let { from: c, to: l, duration: u, ease: d } = P[t] || P.fadeIn;
1824
+ return /* @__PURE__ */ i(n.div, {
1825
+ initial: "hidden",
1826
+ animate: "visible",
1827
+ variants: {
1828
+ hidden: {},
1829
+ visible: { transition: { staggerChildren: r } }
1830
+ },
1831
+ className: a,
1832
+ style: o,
1833
+ ...s,
1834
+ children: Array.isArray(e) ? e.map((e, t) => /* @__PURE__ */ i(n.div, {
1835
+ variants: {
1836
+ hidden: c,
1837
+ visible: l
1838
+ },
1839
+ transition: {
1840
+ duration: u,
1841
+ ease: d
1842
+ },
1843
+ children: e
1844
+ }, t)) : /* @__PURE__ */ i(n.div, {
1845
+ variants: {
1846
+ hidden: c,
1847
+ visible: l
1848
+ },
1849
+ transition: {
1850
+ duration: u,
1851
+ ease: d
1852
+ },
1853
+ children: e
1854
+ })
1855
+ });
1856
+ }
1857
+ //#endregion
1858
+ export { j as AlertDialog, R as Animate, z as AnimateOnView, e as AnimatePresence, B as AnimateStagger, E as Border, D as BorderBox, c as Button, l as Card, _ as ColorBlock, M as ConfirmDialog, O as Divider, h as IconButton, g as ListRow, v as ListSection, p as Modal, k as Section, x as Skeleton, C as SkeletonCard, w as SkeletonListRow, S as SkeletonText, T as StatusSection, y as Stepper, u as TextField, d as Toast, L as combineMotions, I as createMotion, N as easings, P as motions, F as useAnimation, A as useDialog, m as useModal, f as useToast };