@hivcd-printshop/design-system 1.3.2 → 1.4.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/index.d.mts +45 -1
- package/dist/index.d.ts +45 -1
- package/dist/index.js +290 -213
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +256 -181
- package/dist/index.mjs.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -376,8 +376,33 @@ var BackButton = ({ onClick, className }) => {
|
|
|
376
376
|
);
|
|
377
377
|
};
|
|
378
378
|
|
|
379
|
-
// src/components/
|
|
379
|
+
// src/components/Badge/Badge.tsx
|
|
380
380
|
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
381
|
+
var variantStyles = {
|
|
382
|
+
warning: "bg-sub-warning text-strong",
|
|
383
|
+
restriction: "bg-sub-restriction text-strong",
|
|
384
|
+
outline: "bg-white border border-gray02 text-primary",
|
|
385
|
+
neutral: "bg-gray01 text-secondary",
|
|
386
|
+
solid: "bg-black text-white"
|
|
387
|
+
};
|
|
388
|
+
var Badge = ({ variant = "neutral", children, className, ...props }) => {
|
|
389
|
+
return /* @__PURE__ */ jsx4(
|
|
390
|
+
"span",
|
|
391
|
+
{
|
|
392
|
+
className: cn(
|
|
393
|
+
"inline-flex h-8 w-fit items-center justify-center px-2 py-1",
|
|
394
|
+
"text-body3-book whitespace-nowrap select-none",
|
|
395
|
+
variantStyles[variant],
|
|
396
|
+
className
|
|
397
|
+
),
|
|
398
|
+
...props,
|
|
399
|
+
children
|
|
400
|
+
}
|
|
401
|
+
);
|
|
402
|
+
};
|
|
403
|
+
|
|
404
|
+
// src/components/CTA/CTA.tsx
|
|
405
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
381
406
|
var CTA = ({
|
|
382
407
|
primary = false,
|
|
383
408
|
alert = false,
|
|
@@ -388,7 +413,7 @@ var CTA = ({
|
|
|
388
413
|
forModal = false,
|
|
389
414
|
...props
|
|
390
415
|
}) => {
|
|
391
|
-
return /* @__PURE__ */
|
|
416
|
+
return /* @__PURE__ */ jsx5(
|
|
392
417
|
"button",
|
|
393
418
|
{
|
|
394
419
|
type: "button",
|
|
@@ -416,22 +441,22 @@ var CTA = ({
|
|
|
416
441
|
};
|
|
417
442
|
|
|
418
443
|
// src/components/Column/MultiColumn.tsx
|
|
419
|
-
import { jsx as
|
|
444
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
420
445
|
var MultiColumnMain = ({ children, className }) => {
|
|
421
|
-
return /* @__PURE__ */
|
|
446
|
+
return /* @__PURE__ */ jsx6("div", { className: cn("flex flex-col w-full h-full", className), children });
|
|
422
447
|
};
|
|
423
448
|
var Columns = ({ children, className }) => {
|
|
424
449
|
return (
|
|
425
450
|
// flex 래퍼를 사용하고 하위 Column들이 flex-1을 가지게 하거나,
|
|
426
451
|
// grid를 사용하여 열을 나눌 수 있어. 여기서는 flex를 활용한 균등 분할 예시야.
|
|
427
|
-
/* @__PURE__ */
|
|
452
|
+
/* @__PURE__ */ jsx6("div", { className: cn("flex w-full h-full divide-x divide-gray02", className), children })
|
|
428
453
|
);
|
|
429
454
|
};
|
|
430
455
|
var CTAs = ({ children, className }) => {
|
|
431
456
|
if (!children) return null;
|
|
432
457
|
return (
|
|
433
458
|
// CTA 버튼들을 중앙에 배치하는 예시 (우측 정렬이 필요하면 justify-end 사용)
|
|
434
|
-
/* @__PURE__ */
|
|
459
|
+
/* @__PURE__ */ jsx6("div", { className: cn("flex flex-col w-full h-fit", className), children })
|
|
435
460
|
);
|
|
436
461
|
};
|
|
437
462
|
var MultiColumn = Object.assign(MultiColumnMain, {
|
|
@@ -440,39 +465,39 @@ var MultiColumn = Object.assign(MultiColumnMain, {
|
|
|
440
465
|
});
|
|
441
466
|
|
|
442
467
|
// src/components/Column/Column.tsx
|
|
443
|
-
import { jsx as
|
|
468
|
+
import { jsx as jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
444
469
|
var Column = ({ className, children, header }) => {
|
|
445
470
|
return /* @__PURE__ */ jsxs3("div", { className: cn("flex flex-col gap-5", "h-full w-full px-5 py-3", className), children: [
|
|
446
|
-
header && /* @__PURE__ */
|
|
471
|
+
header && /* @__PURE__ */ jsx7("h1", { className: cn("text-body1-medium text-primary"), children: header }),
|
|
447
472
|
children
|
|
448
473
|
] });
|
|
449
474
|
};
|
|
450
475
|
|
|
451
476
|
// src/components/Column/ColumnContentContainer.tsx
|
|
452
|
-
import { jsx as
|
|
477
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
453
478
|
var ColumnContentContainer = ({ className, children }) => {
|
|
454
|
-
return /* @__PURE__ */
|
|
479
|
+
return /* @__PURE__ */ jsx8("div", { className: cn("flex flex-col gap-1.5 w-full h-fit", className), children });
|
|
455
480
|
};
|
|
456
481
|
|
|
457
482
|
// src/components/Column/ColumnLabel.tsx
|
|
458
|
-
import { jsx as
|
|
483
|
+
import { jsx as jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
459
484
|
var ColumnLabel = ({ className, children, subLabel, htmlFor }) => {
|
|
460
485
|
return /* @__PURE__ */ jsxs4("label", { htmlFor, className: cn("flex gap-1.5 items-end", className), children: [
|
|
461
|
-
/* @__PURE__ */
|
|
462
|
-
subLabel && /* @__PURE__ */
|
|
486
|
+
/* @__PURE__ */ jsx9("span", { className: cn("text-body2-regular text-tertiary"), children }),
|
|
487
|
+
subLabel && /* @__PURE__ */ jsx9("span", { className: cn("text-caption-book text-quaternary"), children: subLabel })
|
|
463
488
|
] });
|
|
464
489
|
};
|
|
465
490
|
|
|
466
491
|
// src/components/Column/ColumnText.tsx
|
|
467
|
-
import { jsx as
|
|
492
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
468
493
|
var ColumnTextStyle = "text-body3-book text-strong";
|
|
469
494
|
var ModalTextStyle = "text-body1-regular text-primary";
|
|
470
495
|
var ColumnText = ({ className, alert = false, children, onClick }) => {
|
|
471
|
-
return /* @__PURE__ */
|
|
496
|
+
return /* @__PURE__ */ jsx10("div", { className: cn(ColumnTextStyle, alert && "text-danger", className), onClick, children: children ? children : "-" });
|
|
472
497
|
};
|
|
473
498
|
|
|
474
499
|
// src/components/Column/ColumnSubTitle.tsx
|
|
475
|
-
import { jsx as
|
|
500
|
+
import { jsx as jsx11, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
476
501
|
var ColumnSubTitle = ({
|
|
477
502
|
className,
|
|
478
503
|
children,
|
|
@@ -480,29 +505,29 @@ var ColumnSubTitle = ({
|
|
|
480
505
|
as: Tag2 = "h2"
|
|
481
506
|
}) => {
|
|
482
507
|
return /* @__PURE__ */ jsxs5(Tag2, { className: cn("flex items-center justify-between gap-1.5", "w-full", className), children: [
|
|
483
|
-
/* @__PURE__ */
|
|
484
|
-
action && /* @__PURE__ */
|
|
508
|
+
/* @__PURE__ */ jsx11("span", { className: cn("text-body1-medium text-primary"), children }),
|
|
509
|
+
action && /* @__PURE__ */ jsx11("span", { className: "flex shrink-0 items-center", children: action })
|
|
485
510
|
] });
|
|
486
511
|
};
|
|
487
512
|
|
|
488
513
|
// src/components/Column/ColumnDescription.tsx
|
|
489
|
-
import { jsx as
|
|
514
|
+
import { jsx as jsx12, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
490
515
|
var ColumnDescription = ({
|
|
491
516
|
className,
|
|
492
517
|
children,
|
|
493
518
|
bullet = true
|
|
494
519
|
}) => {
|
|
495
520
|
return /* @__PURE__ */ jsxs6("div", { className: cn("flex items-start gap-3", className), children: [
|
|
496
|
-
bullet && /* @__PURE__ */
|
|
497
|
-
/* @__PURE__ */
|
|
521
|
+
bullet && /* @__PURE__ */ jsx12("span", { className: "flex shrink-0 items-center py-1", children: /* @__PURE__ */ jsx12(IconCompass, { className: "size-4" }) }),
|
|
522
|
+
/* @__PURE__ */ jsx12("div", { className: "min-w-0 flex-1 whitespace-pre-line text-body3-book text-primary", children })
|
|
498
523
|
] });
|
|
499
524
|
};
|
|
500
525
|
var ColumnDescriptionList = ({ className, children }) => {
|
|
501
|
-
return /* @__PURE__ */
|
|
526
|
+
return /* @__PURE__ */ jsx12("div", { className: cn("flex flex-col gap-4", className), children });
|
|
502
527
|
};
|
|
503
528
|
|
|
504
529
|
// src/components/Form/BasicFormField.tsx
|
|
505
|
-
import { jsx as
|
|
530
|
+
import { jsx as jsx13, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
506
531
|
var BasicFormField = ({
|
|
507
532
|
children,
|
|
508
533
|
isDanger,
|
|
@@ -511,7 +536,7 @@ var BasicFormField = ({
|
|
|
511
536
|
}) => {
|
|
512
537
|
return /* @__PURE__ */ jsxs7("div", { className: cn("flex flex-col gap-1.5", className), children: [
|
|
513
538
|
children,
|
|
514
|
-
isDanger && dangerText && /* @__PURE__ */
|
|
539
|
+
isDanger && dangerText && /* @__PURE__ */ jsx13("span", { className: "text-caption-book text-danger", children: dangerText })
|
|
515
540
|
] });
|
|
516
541
|
};
|
|
517
542
|
var getInputStyles = (isDanger, additionalClass) => {
|
|
@@ -522,6 +547,9 @@ var getInputStyles = (isDanger, additionalClass) => {
|
|
|
522
547
|
"bg-white transition-colors",
|
|
523
548
|
ColumnTextStyle,
|
|
524
549
|
"text-primary placeholder:text-quaternary",
|
|
550
|
+
// 비활성(disabled) 상태: 배경/글자를 죽이고 커서 차단
|
|
551
|
+
"disabled:bg-gray00 disabled:text-quaternary disabled:cursor-not-allowed",
|
|
552
|
+
"disabled:placeholder:text-quaternary",
|
|
525
553
|
isDanger && "border-danger",
|
|
526
554
|
// 경고 시 빨간 테두리 (#E42939)
|
|
527
555
|
additionalClass
|
|
@@ -530,15 +558,15 @@ var getInputStyles = (isDanger, additionalClass) => {
|
|
|
530
558
|
};
|
|
531
559
|
|
|
532
560
|
// src/components/Form/FormText.tsx
|
|
533
|
-
import { jsx as
|
|
561
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
534
562
|
var FormText = ({ className, isDanger, dangerText, ...props }) => {
|
|
535
|
-
return /* @__PURE__ */
|
|
563
|
+
return /* @__PURE__ */ jsx14(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ jsx14("input", { type: "text", className: getInputStyles(isDanger, className), ...props }) });
|
|
536
564
|
};
|
|
537
565
|
|
|
538
566
|
// src/components/Form/FormTextArea.tsx
|
|
539
|
-
import { jsx as
|
|
567
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
540
568
|
var FormTextArea = ({ className, isDanger, dangerText, ...props }) => {
|
|
541
|
-
return /* @__PURE__ */
|
|
569
|
+
return /* @__PURE__ */ jsx15(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ jsx15(
|
|
542
570
|
"textarea",
|
|
543
571
|
{
|
|
544
572
|
className: getInputStyles(isDanger, "resize-none h-30 px-4 py-2.5 " + (className || "")),
|
|
@@ -548,19 +576,19 @@ var FormTextArea = ({ className, isDanger, dangerText, ...props }) => {
|
|
|
548
576
|
};
|
|
549
577
|
|
|
550
578
|
// src/components/Form/FormNumber.tsx
|
|
551
|
-
import { jsx as
|
|
579
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
552
580
|
var FormNumber = ({ className, isDanger, dangerText, ...props }) => {
|
|
553
|
-
return /* @__PURE__ */
|
|
581
|
+
return /* @__PURE__ */ jsx16(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ jsx16("input", { type: "number", className: getInputStyles(isDanger, className), ...props }) });
|
|
554
582
|
};
|
|
555
583
|
|
|
556
584
|
// src/components/Form/FormPassword.tsx
|
|
557
|
-
import { jsx as
|
|
585
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
558
586
|
var FormPassword = ({ className, isDanger, dangerText, ...props }) => {
|
|
559
|
-
return /* @__PURE__ */
|
|
587
|
+
return /* @__PURE__ */ jsx17(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ jsx17("input", { type: "password", className: getInputStyles(isDanger, className), ...props }) });
|
|
560
588
|
};
|
|
561
589
|
|
|
562
590
|
// src/components/Form/FormTel.tsx
|
|
563
|
-
import { jsx as
|
|
591
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
564
592
|
var FormTel = ({ className, isDanger, dangerText, onChange, ...props }) => {
|
|
565
593
|
const handlePhoneChange = (e) => {
|
|
566
594
|
const rawValue = e.target.value.replace(/[^0-9]/g, "");
|
|
@@ -572,7 +600,7 @@ var FormTel = ({ className, isDanger, dangerText, onChange, ...props }) => {
|
|
|
572
600
|
e.target.value = formattedValue;
|
|
573
601
|
if (onChange) onChange(e);
|
|
574
602
|
};
|
|
575
|
-
return /* @__PURE__ */
|
|
603
|
+
return /* @__PURE__ */ jsx18(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ jsx18(
|
|
576
604
|
"input",
|
|
577
605
|
{
|
|
578
606
|
type: "tel",
|
|
@@ -586,7 +614,7 @@ var FormTel = ({ className, isDanger, dangerText, onChange, ...props }) => {
|
|
|
586
614
|
|
|
587
615
|
// src/components/Form/FormColor.tsx
|
|
588
616
|
import { useState as useState2 } from "react";
|
|
589
|
-
import { jsx as
|
|
617
|
+
import { jsx as jsx19, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
590
618
|
var FormColor = ({
|
|
591
619
|
className,
|
|
592
620
|
isDanger,
|
|
@@ -604,7 +632,7 @@ var FormColor = ({
|
|
|
604
632
|
setInternalColor(e.target.value);
|
|
605
633
|
onChange?.(e);
|
|
606
634
|
};
|
|
607
|
-
return /* @__PURE__ */
|
|
635
|
+
return /* @__PURE__ */ jsx19(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ jsxs8(
|
|
608
636
|
"label",
|
|
609
637
|
{
|
|
610
638
|
className: getInputStyles(
|
|
@@ -613,7 +641,7 @@ var FormColor = ({
|
|
|
613
641
|
"flex items-center gap-2 relative focus-within:border-black focus-within:hover:bg-white" + (className || "")
|
|
614
642
|
),
|
|
615
643
|
children: [
|
|
616
|
-
/* @__PURE__ */
|
|
644
|
+
/* @__PURE__ */ jsx19("div", { className: "w-6 h-6 shrink-0 overflow-hidden", style: { backgroundColor: color }, children: /* @__PURE__ */ jsx19(
|
|
617
645
|
"input",
|
|
618
646
|
{
|
|
619
647
|
type: "color",
|
|
@@ -623,7 +651,7 @@ var FormColor = ({
|
|
|
623
651
|
...props
|
|
624
652
|
}
|
|
625
653
|
) }),
|
|
626
|
-
/* @__PURE__ */
|
|
654
|
+
/* @__PURE__ */ jsx19("span", { className: "text-primary text-body3-regular uppercase flex-1 select-none", children: color })
|
|
627
655
|
]
|
|
628
656
|
}
|
|
629
657
|
) });
|
|
@@ -631,7 +659,7 @@ var FormColor = ({
|
|
|
631
659
|
|
|
632
660
|
// src/components/Form/FormFile.tsx
|
|
633
661
|
import { useState as useState3 } from "react";
|
|
634
|
-
import { jsx as
|
|
662
|
+
import { jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
635
663
|
var FormFile = ({
|
|
636
664
|
className,
|
|
637
665
|
isDanger,
|
|
@@ -692,7 +720,7 @@ var FormFile = ({
|
|
|
692
720
|
}
|
|
693
721
|
};
|
|
694
722
|
const displayFileName = selectedFile?.name || (fileUrl ? fileUrl.split("/").pop() : null);
|
|
695
|
-
return /* @__PURE__ */
|
|
723
|
+
return /* @__PURE__ */ jsx20(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ jsxs9(
|
|
696
724
|
"div",
|
|
697
725
|
{
|
|
698
726
|
className: getInputStyles(
|
|
@@ -705,7 +733,7 @@ var FormFile = ({
|
|
|
705
733
|
)
|
|
706
734
|
),
|
|
707
735
|
children: [
|
|
708
|
-
displayFileName && /* @__PURE__ */
|
|
736
|
+
displayFileName && /* @__PURE__ */ jsx20(
|
|
709
737
|
"span",
|
|
710
738
|
{
|
|
711
739
|
onClick: handleDownload,
|
|
@@ -715,8 +743,8 @@ var FormFile = ({
|
|
|
715
743
|
}
|
|
716
744
|
),
|
|
717
745
|
/* @__PURE__ */ jsxs9("label", { className: "shrink-0 px-1 -mx-1 cursor-pointer", children: [
|
|
718
|
-
/* @__PURE__ */
|
|
719
|
-
/* @__PURE__ */
|
|
746
|
+
/* @__PURE__ */ jsx20("div", { className: "text-primary text-caption-regular underline", children: displayFileName ? "\uB2E4\uC2DC \uCCA8\uBD80" : "\uD30C\uC77C \uCCA8\uBD80" }),
|
|
747
|
+
/* @__PURE__ */ jsx20("input", { type: "file", className: "hidden", onChange: handleFileChange, ...props })
|
|
720
748
|
] })
|
|
721
749
|
]
|
|
722
750
|
}
|
|
@@ -724,7 +752,7 @@ var FormFile = ({
|
|
|
724
752
|
};
|
|
725
753
|
|
|
726
754
|
// src/components/Form/FormCheckBox.tsx
|
|
727
|
-
import { jsx as
|
|
755
|
+
import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
728
756
|
var FormCheckBox = ({
|
|
729
757
|
isChecked,
|
|
730
758
|
setIsChecked,
|
|
@@ -744,7 +772,7 @@ var FormCheckBox = ({
|
|
|
744
772
|
className
|
|
745
773
|
),
|
|
746
774
|
children: [
|
|
747
|
-
/* @__PURE__ */
|
|
775
|
+
/* @__PURE__ */ jsx21(
|
|
748
776
|
"input",
|
|
749
777
|
{
|
|
750
778
|
type: "checkbox",
|
|
@@ -754,14 +782,14 @@ var FormCheckBox = ({
|
|
|
754
782
|
...props
|
|
755
783
|
}
|
|
756
784
|
),
|
|
757
|
-
/* @__PURE__ */
|
|
785
|
+
/* @__PURE__ */ jsx21(
|
|
758
786
|
"div",
|
|
759
787
|
{
|
|
760
788
|
className: cn(
|
|
761
789
|
"flex items-center justify-center w-5 h-5 shrink-0 rounded transition-colors",
|
|
762
790
|
"group-hover:bg-gray00 group-active:bg-gray01"
|
|
763
791
|
),
|
|
764
|
-
children: /* @__PURE__ */
|
|
792
|
+
children: /* @__PURE__ */ jsx21(
|
|
765
793
|
"div",
|
|
766
794
|
{
|
|
767
795
|
className: cn(
|
|
@@ -771,12 +799,12 @@ var FormCheckBox = ({
|
|
|
771
799
|
// 💡 3. 키보드 Tab 이동 시 접근성 향상 (포커스 링 표시)
|
|
772
800
|
"peer-focus-visible:ring-2 peer-focus-visible:ring-black peer-focus-visible:ring-offset-1"
|
|
773
801
|
),
|
|
774
|
-
children: isChecked && /* @__PURE__ */
|
|
802
|
+
children: isChecked && /* @__PURE__ */ jsx21(IconCheck, {})
|
|
775
803
|
}
|
|
776
804
|
)
|
|
777
805
|
}
|
|
778
806
|
),
|
|
779
|
-
children && /* @__PURE__ */
|
|
807
|
+
children && /* @__PURE__ */ jsx21("span", { className: cn("text-body3-book text-primary", textStyle), children })
|
|
780
808
|
]
|
|
781
809
|
}
|
|
782
810
|
);
|
|
@@ -786,14 +814,14 @@ var FormCheckBox = ({
|
|
|
786
814
|
import { useEffect, useRef, useState as useState4 } from "react";
|
|
787
815
|
|
|
788
816
|
// src/components/Form/SelectBoxOption.tsx
|
|
789
|
-
import { jsx as
|
|
817
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
790
818
|
var SelectBoxOption = ({
|
|
791
819
|
label,
|
|
792
820
|
onClick,
|
|
793
821
|
// selectedLabel,
|
|
794
822
|
className
|
|
795
823
|
}) => {
|
|
796
|
-
return /* @__PURE__ */
|
|
824
|
+
return /* @__PURE__ */ jsx22(
|
|
797
825
|
"li",
|
|
798
826
|
{
|
|
799
827
|
onClick,
|
|
@@ -815,7 +843,7 @@ var SelectBoxOption = ({
|
|
|
815
843
|
};
|
|
816
844
|
|
|
817
845
|
// src/components/Form/FormSelectBox.tsx
|
|
818
|
-
import { jsx as
|
|
846
|
+
import { jsx as jsx23, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
819
847
|
var FormSelectBox = ({
|
|
820
848
|
options,
|
|
821
849
|
value,
|
|
@@ -838,7 +866,7 @@ var FormSelectBox = ({
|
|
|
838
866
|
document.removeEventListener("mousedown", handleClickOutside);
|
|
839
867
|
};
|
|
840
868
|
}, []);
|
|
841
|
-
return /* @__PURE__ */
|
|
869
|
+
return /* @__PURE__ */ jsx23(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ jsxs11("div", { ref: containerRef, className: "relative w-full", children: [
|
|
842
870
|
/* @__PURE__ */ jsxs11(
|
|
843
871
|
"div",
|
|
844
872
|
{
|
|
@@ -859,8 +887,8 @@ var FormSelectBox = ({
|
|
|
859
887
|
setIsOpen((prev) => !prev);
|
|
860
888
|
},
|
|
861
889
|
children: [
|
|
862
|
-
/* @__PURE__ */
|
|
863
|
-
/* @__PURE__ */
|
|
890
|
+
/* @__PURE__ */ jsx23("span", { className: value ? "text-primary" : "text-quaternary", children: value || placeholder }),
|
|
891
|
+
/* @__PURE__ */ jsx23(
|
|
864
892
|
IconChevronDownXS,
|
|
865
893
|
{
|
|
866
894
|
className: cn("text-gray06 transition-transform", isOpen && "rotate-180"),
|
|
@@ -870,7 +898,7 @@ var FormSelectBox = ({
|
|
|
870
898
|
]
|
|
871
899
|
}
|
|
872
900
|
),
|
|
873
|
-
isOpen && /* @__PURE__ */
|
|
901
|
+
isOpen && /* @__PURE__ */ jsx23(
|
|
874
902
|
"ul",
|
|
875
903
|
{
|
|
876
904
|
className: cn(
|
|
@@ -880,7 +908,7 @@ var FormSelectBox = ({
|
|
|
880
908
|
"max-h-50 overflow-y-auto"
|
|
881
909
|
// 항목이 너무 많으면 스크롤 생성 (디자인 스펙: 그림자 없음)
|
|
882
910
|
),
|
|
883
|
-
children: options.map((option) => /* @__PURE__ */
|
|
911
|
+
children: options.map((option) => /* @__PURE__ */ jsx23(
|
|
884
912
|
SelectBoxOption,
|
|
885
913
|
{
|
|
886
914
|
label: option,
|
|
@@ -897,7 +925,7 @@ var FormSelectBox = ({
|
|
|
897
925
|
};
|
|
898
926
|
|
|
899
927
|
// src/components/TextButton/TextButton.tsx
|
|
900
|
-
import { Fragment, jsx as
|
|
928
|
+
import { Fragment, jsx as jsx24, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
901
929
|
var TextButton = ({
|
|
902
930
|
children,
|
|
903
931
|
icon,
|
|
@@ -908,9 +936,9 @@ var TextButton = ({
|
|
|
908
936
|
...props
|
|
909
937
|
}) => {
|
|
910
938
|
const content = /* @__PURE__ */ jsxs12(Fragment, { children: [
|
|
911
|
-
icon && iconPosition === "left" && /* @__PURE__ */
|
|
912
|
-
/* @__PURE__ */
|
|
913
|
-
icon && iconPosition === "right" && /* @__PURE__ */
|
|
939
|
+
icon && iconPosition === "left" && /* @__PURE__ */ jsx24("span", { className: "flex shrink-0 items-center", children: icon }),
|
|
940
|
+
/* @__PURE__ */ jsx24("span", { className: cn(underline && "underline underline-offset-2"), children }),
|
|
941
|
+
icon && iconPosition === "right" && /* @__PURE__ */ jsx24("span", { className: "flex shrink-0 items-center", children: icon })
|
|
914
942
|
] });
|
|
915
943
|
const classes = cn(
|
|
916
944
|
"inline-flex w-fit items-center gap-1 px-1 -mx-1",
|
|
@@ -925,15 +953,15 @@ var TextButton = ({
|
|
|
925
953
|
);
|
|
926
954
|
if (props.href !== void 0) {
|
|
927
955
|
const { href, ...rest } = props;
|
|
928
|
-
return /* @__PURE__ */
|
|
956
|
+
return /* @__PURE__ */ jsx24("a", { href, className: classes, ...rest, children: content });
|
|
929
957
|
}
|
|
930
958
|
const buttonProps = props;
|
|
931
|
-
return /* @__PURE__ */
|
|
959
|
+
return /* @__PURE__ */ jsx24("button", { type: "button", className: classes, ...buttonProps, children: content });
|
|
932
960
|
};
|
|
933
961
|
|
|
934
962
|
// src/components/Dropdown/Dropdown.tsx
|
|
935
963
|
import { useEffect as useEffect2, useRef as useRef2, useState as useState5 } from "react";
|
|
936
|
-
import { jsx as
|
|
964
|
+
import { jsx as jsx25, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
937
965
|
var Dropdown = ({ selectedLabel, setSelectedLabel, labels, className }) => {
|
|
938
966
|
const [isOpen, setIsOpen] = useState5(false);
|
|
939
967
|
const containerRef = useRef2(null);
|
|
@@ -962,8 +990,8 @@ var Dropdown = ({ selectedLabel, setSelectedLabel, labels, className }) => {
|
|
|
962
990
|
),
|
|
963
991
|
onClick: () => setIsOpen((prev) => !prev),
|
|
964
992
|
children: [
|
|
965
|
-
/* @__PURE__ */
|
|
966
|
-
/* @__PURE__ */
|
|
993
|
+
/* @__PURE__ */ jsx25("p", { children: selectedLabel }),
|
|
994
|
+
/* @__PURE__ */ jsx25(
|
|
967
995
|
IconChevronDownXS,
|
|
968
996
|
{
|
|
969
997
|
className: cn("text-gray06 transition-transform", isOpen && "rotate-180"),
|
|
@@ -973,7 +1001,7 @@ var Dropdown = ({ selectedLabel, setSelectedLabel, labels, className }) => {
|
|
|
973
1001
|
]
|
|
974
1002
|
}
|
|
975
1003
|
),
|
|
976
|
-
isOpen && /* @__PURE__ */
|
|
1004
|
+
isOpen && /* @__PURE__ */ jsx25("div", { className: cn("absolute top-full right-0 z-10", "box-border border border-gray02"), children: labels.map((label) => /* @__PURE__ */ jsx25(
|
|
977
1005
|
SelectBoxOption,
|
|
978
1006
|
{
|
|
979
1007
|
label,
|
|
@@ -989,7 +1017,7 @@ var Dropdown = ({ selectedLabel, setSelectedLabel, labels, className }) => {
|
|
|
989
1017
|
};
|
|
990
1018
|
|
|
991
1019
|
// src/components/ListView/List.tsx
|
|
992
|
-
import { jsx as
|
|
1020
|
+
import { jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
993
1021
|
function List({
|
|
994
1022
|
className,
|
|
995
1023
|
label1,
|
|
@@ -1018,10 +1046,10 @@ function List({
|
|
|
1018
1046
|
onClick,
|
|
1019
1047
|
children: [
|
|
1020
1048
|
/* @__PURE__ */ jsxs14("section", { className: cn("flex items-center gap-4"), children: [
|
|
1021
|
-
/* @__PURE__ */
|
|
1022
|
-
/* @__PURE__ */
|
|
1049
|
+
/* @__PURE__ */ jsx26("label", { className: cn("text-body2-regular"), children: label1 ? label1 : "-" }),
|
|
1050
|
+
/* @__PURE__ */ jsx26("div", { className: cn("flex items-center gap-2"), children })
|
|
1023
1051
|
] }),
|
|
1024
|
-
/* @__PURE__ */
|
|
1052
|
+
/* @__PURE__ */ jsx26(
|
|
1025
1053
|
"label",
|
|
1026
1054
|
{
|
|
1027
1055
|
className: cn(
|
|
@@ -1033,18 +1061,18 @@ function List({
|
|
|
1033
1061
|
children: label2 ? label2 : "-"
|
|
1034
1062
|
}
|
|
1035
1063
|
),
|
|
1036
|
-
/* @__PURE__ */
|
|
1064
|
+
/* @__PURE__ */ jsx26("label", { className: cn("text-body3-regular text-right"), children: label3 ? label3 : "-" })
|
|
1037
1065
|
]
|
|
1038
1066
|
}
|
|
1039
1067
|
);
|
|
1040
1068
|
}
|
|
1041
1069
|
|
|
1042
1070
|
// src/components/Modal/Modal.tsx
|
|
1043
|
-
import { jsx as
|
|
1071
|
+
import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1044
1072
|
var ModalBase = ({ isVisible, header, children, className, onClose }) => {
|
|
1045
1073
|
if (!isVisible) return null;
|
|
1046
1074
|
return /* @__PURE__ */ jsxs15("div", { className: cn("fixed inset-0 z-50"), children: [
|
|
1047
|
-
/* @__PURE__ */
|
|
1075
|
+
/* @__PURE__ */ jsx27(
|
|
1048
1076
|
"div",
|
|
1049
1077
|
{
|
|
1050
1078
|
"aria-hidden": true,
|
|
@@ -1052,7 +1080,7 @@ var ModalBase = ({ isVisible, header, children, className, onClose }) => {
|
|
|
1052
1080
|
className: cn("fixed inset-0 z-1000 bg-[#212121]/30", onClose && "cursor-pointer")
|
|
1053
1081
|
}
|
|
1054
1082
|
),
|
|
1055
|
-
/* @__PURE__ */
|
|
1083
|
+
/* @__PURE__ */ jsx27("div", { className: "fixed inset-0 z-1001 flex items-center justify-center pointer-events-none", children: /* @__PURE__ */ jsxs15(
|
|
1056
1084
|
"main",
|
|
1057
1085
|
{
|
|
1058
1086
|
role: "dialog",
|
|
@@ -1065,7 +1093,7 @@ var ModalBase = ({ isVisible, header, children, className, onClose }) => {
|
|
|
1065
1093
|
className
|
|
1066
1094
|
),
|
|
1067
1095
|
children: [
|
|
1068
|
-
onClose && /* @__PURE__ */
|
|
1096
|
+
onClose && /* @__PURE__ */ jsx27(
|
|
1069
1097
|
"button",
|
|
1070
1098
|
{
|
|
1071
1099
|
type: "button",
|
|
@@ -1075,10 +1103,10 @@ var ModalBase = ({ isVisible, header, children, className, onClose }) => {
|
|
|
1075
1103
|
"absolute right-3 top-3 flex size-8 items-center justify-center",
|
|
1076
1104
|
"text-tertiary transition-colors hover:bg-gray00 active:bg-gray01 cursor-pointer"
|
|
1077
1105
|
),
|
|
1078
|
-
children: /* @__PURE__ */
|
|
1106
|
+
children: /* @__PURE__ */ jsx27(IconClose, {})
|
|
1079
1107
|
}
|
|
1080
1108
|
),
|
|
1081
|
-
/* @__PURE__ */
|
|
1109
|
+
/* @__PURE__ */ jsx27("h1", { className: cn("text-head-lg-medium text-strong"), children: header }),
|
|
1082
1110
|
children
|
|
1083
1111
|
]
|
|
1084
1112
|
}
|
|
@@ -1086,7 +1114,7 @@ var ModalBase = ({ isVisible, header, children, className, onClose }) => {
|
|
|
1086
1114
|
] });
|
|
1087
1115
|
};
|
|
1088
1116
|
var Contents = ({ children, className }) => {
|
|
1089
|
-
return /* @__PURE__ */
|
|
1117
|
+
return /* @__PURE__ */ jsx27(
|
|
1090
1118
|
"div",
|
|
1091
1119
|
{
|
|
1092
1120
|
className: cn(
|
|
@@ -1103,7 +1131,7 @@ var CTAs2 = ({ children, className, row = false }) => {
|
|
|
1103
1131
|
if (!children) return null;
|
|
1104
1132
|
return (
|
|
1105
1133
|
// CTA 버튼들을 중앙에 배치하는 예시 (우측 정렬이 필요하면 justify-end 사용)
|
|
1106
|
-
/* @__PURE__ */
|
|
1134
|
+
/* @__PURE__ */ jsx27(
|
|
1107
1135
|
"div",
|
|
1108
1136
|
{
|
|
1109
1137
|
className: cn(
|
|
@@ -1122,9 +1150,9 @@ var Modal = Object.assign(ModalBase, {
|
|
|
1122
1150
|
});
|
|
1123
1151
|
|
|
1124
1152
|
// src/components/Modal/ModalText.tsx
|
|
1125
|
-
import { jsx as
|
|
1153
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
1126
1154
|
var ModalText = ({ children, className }) => {
|
|
1127
|
-
return /* @__PURE__ */
|
|
1155
|
+
return /* @__PURE__ */ jsx28(
|
|
1128
1156
|
"div",
|
|
1129
1157
|
{
|
|
1130
1158
|
className: cn(
|
|
@@ -1140,14 +1168,14 @@ var ModalText = ({ children, className }) => {
|
|
|
1140
1168
|
};
|
|
1141
1169
|
|
|
1142
1170
|
// src/components/createPost/CategorySegment.tsx
|
|
1143
|
-
import { jsx as
|
|
1171
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
1144
1172
|
var CategorySegment = ({
|
|
1145
1173
|
selected = false,
|
|
1146
1174
|
label,
|
|
1147
1175
|
className,
|
|
1148
1176
|
onClick
|
|
1149
1177
|
}) => {
|
|
1150
|
-
return /* @__PURE__ */
|
|
1178
|
+
return /* @__PURE__ */ jsx29(
|
|
1151
1179
|
"div",
|
|
1152
1180
|
{
|
|
1153
1181
|
className: cn(
|
|
@@ -1167,7 +1195,7 @@ var CategorySegment = ({
|
|
|
1167
1195
|
};
|
|
1168
1196
|
|
|
1169
1197
|
// src/components/createPost/CategorySegmentedControl.tsx
|
|
1170
|
-
import { jsx as
|
|
1198
|
+
import { jsx as jsx30, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1171
1199
|
var categorySegments = {
|
|
1172
1200
|
info: ["\uACF5\uC6A9 \uBB3C\uD488", "\uC77C\uBC18 \uAE30\uC790\uC7AC", "\uD2B9\uC218 \uAE30\uC790\uC7AC"],
|
|
1173
1201
|
archive: ["\uD504\uB9B0\uD2B8\uC2E4", "\uD64D\uC775\uC2DC\uB514"],
|
|
@@ -1182,7 +1210,7 @@ var CategorySegmentedControl = ({
|
|
|
1182
1210
|
}) => {
|
|
1183
1211
|
const segments = categorySegments[variable];
|
|
1184
1212
|
return /* @__PURE__ */ jsxs16("div", { className: cn("w-full h-fit flex items-center justify-start", className), children: [
|
|
1185
|
-
/* @__PURE__ */
|
|
1213
|
+
/* @__PURE__ */ jsx30(
|
|
1186
1214
|
"div",
|
|
1187
1215
|
{
|
|
1188
1216
|
className: cn(
|
|
@@ -1195,7 +1223,7 @@ var CategorySegmentedControl = ({
|
|
|
1195
1223
|
children: variable === "infoTag" ? "\uD0DC\uADF8 \uC120\uD0DD" : "\uCE74\uD14C\uACE0\uB9AC \uC120\uD0DD"
|
|
1196
1224
|
}
|
|
1197
1225
|
),
|
|
1198
|
-
segments.map((label) => /* @__PURE__ */
|
|
1226
|
+
segments.map((label) => /* @__PURE__ */ jsx30(
|
|
1199
1227
|
CategorySegment,
|
|
1200
1228
|
{
|
|
1201
1229
|
label,
|
|
@@ -1208,9 +1236,9 @@ var CategorySegmentedControl = ({
|
|
|
1208
1236
|
};
|
|
1209
1237
|
|
|
1210
1238
|
// src/components/createPost/TitleInput.tsx
|
|
1211
|
-
import { jsx as
|
|
1239
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
1212
1240
|
var TitleInput = ({ title, onChange, className }) => {
|
|
1213
|
-
return /* @__PURE__ */
|
|
1241
|
+
return /* @__PURE__ */ jsx31(
|
|
1214
1242
|
"input",
|
|
1215
1243
|
{
|
|
1216
1244
|
type: "text",
|
|
@@ -1230,9 +1258,9 @@ var TitleInput = ({ title, onChange, className }) => {
|
|
|
1230
1258
|
};
|
|
1231
1259
|
|
|
1232
1260
|
// src/components/notice/NoticeBadge.tsx
|
|
1233
|
-
import { jsx as
|
|
1261
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
1234
1262
|
var NoticeBadge = ({ variable, className, onClick }) => {
|
|
1235
|
-
return /* @__PURE__ */
|
|
1263
|
+
return /* @__PURE__ */ jsx32(
|
|
1236
1264
|
"button",
|
|
1237
1265
|
{
|
|
1238
1266
|
type: "button",
|
|
@@ -1253,7 +1281,7 @@ var NoticeBadge = ({ variable, className, onClick }) => {
|
|
|
1253
1281
|
};
|
|
1254
1282
|
|
|
1255
1283
|
// src/components/notice/NoticeBar.tsx
|
|
1256
|
-
import { jsx as
|
|
1284
|
+
import { jsx as jsx33, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1257
1285
|
var NoticeBar = ({
|
|
1258
1286
|
variable = "default",
|
|
1259
1287
|
badgeVariable,
|
|
@@ -1275,17 +1303,17 @@ var NoticeBar = ({
|
|
|
1275
1303
|
onClick,
|
|
1276
1304
|
children: [
|
|
1277
1305
|
/* @__PURE__ */ jsxs17("section", { className: "flex items-center gap-3", children: [
|
|
1278
|
-
/* @__PURE__ */
|
|
1279
|
-
/* @__PURE__ */
|
|
1306
|
+
/* @__PURE__ */ jsx33(NoticeBadge, { variable: badgeVariable }),
|
|
1307
|
+
/* @__PURE__ */ jsx33("h1", { className: "text-head1-medium text-strong", children: title })
|
|
1280
1308
|
] }),
|
|
1281
|
-
/* @__PURE__ */
|
|
1309
|
+
/* @__PURE__ */ jsx33("p", { className: "text-body3-book text-tertiary", children: date })
|
|
1282
1310
|
]
|
|
1283
1311
|
}
|
|
1284
1312
|
);
|
|
1285
1313
|
};
|
|
1286
1314
|
|
|
1287
1315
|
// src/components/SearchBar/SearchBar.tsx
|
|
1288
|
-
import { jsx as
|
|
1316
|
+
import { jsx as jsx34, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1289
1317
|
var SearchBar = ({ value, onChange, className }) => {
|
|
1290
1318
|
return /* @__PURE__ */ jsxs18(
|
|
1291
1319
|
"label",
|
|
@@ -1298,8 +1326,8 @@ var SearchBar = ({ value, onChange, className }) => {
|
|
|
1298
1326
|
className
|
|
1299
1327
|
),
|
|
1300
1328
|
children: [
|
|
1301
|
-
/* @__PURE__ */
|
|
1302
|
-
/* @__PURE__ */
|
|
1329
|
+
/* @__PURE__ */ jsx34(IconSearch, {}),
|
|
1330
|
+
/* @__PURE__ */ jsx34(
|
|
1303
1331
|
"input",
|
|
1304
1332
|
{
|
|
1305
1333
|
type: "text",
|
|
@@ -1319,7 +1347,7 @@ var SearchBar = ({ value, onChange, className }) => {
|
|
|
1319
1347
|
|
|
1320
1348
|
// src/components/SideRadioAccordion/SideRadioAccordion.tsx
|
|
1321
1349
|
import { forwardRef as forwardRef2 } from "react";
|
|
1322
|
-
import { jsx as
|
|
1350
|
+
import { jsx as jsx35, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1323
1351
|
var printColorBgClass = {
|
|
1324
1352
|
Plotter: "bg-print-plotter",
|
|
1325
1353
|
Printer: "bg-print-printer",
|
|
@@ -1364,7 +1392,7 @@ var SideRadioAccordion = forwardRef2(
|
|
|
1364
1392
|
onOpenChange?.(next);
|
|
1365
1393
|
};
|
|
1366
1394
|
return /* @__PURE__ */ jsxs19("div", { ref, className: cn("w-full border-r border-gray02 bg-white", className), children: [
|
|
1367
|
-
/* @__PURE__ */
|
|
1395
|
+
/* @__PURE__ */ jsx35(
|
|
1368
1396
|
Stepper,
|
|
1369
1397
|
{
|
|
1370
1398
|
step,
|
|
@@ -1376,7 +1404,7 @@ var SideRadioAccordion = forwardRef2(
|
|
|
1376
1404
|
}
|
|
1377
1405
|
),
|
|
1378
1406
|
expanded && /* @__PURE__ */ jsxs19("div", { className: "flex flex-col divide-y divide-gray02", children: [
|
|
1379
|
-
radioToggleList.map((item) => /* @__PURE__ */
|
|
1407
|
+
radioToggleList.map((item) => /* @__PURE__ */ jsx35(
|
|
1380
1408
|
RadioToggleItem,
|
|
1381
1409
|
{
|
|
1382
1410
|
...item,
|
|
@@ -1385,7 +1413,7 @@ var SideRadioAccordion = forwardRef2(
|
|
|
1385
1413
|
},
|
|
1386
1414
|
itemKey(item)
|
|
1387
1415
|
)),
|
|
1388
|
-
quantityLimitLabel && /* @__PURE__ */
|
|
1416
|
+
quantityLimitLabel && /* @__PURE__ */ jsx35("div", { className: "px-5 py-4", children: /* @__PURE__ */ jsx35(TextButton2, { label: quantityLimitLabel, onClick: onClickQuantityLimit }) })
|
|
1389
1417
|
] })
|
|
1390
1418
|
] });
|
|
1391
1419
|
}
|
|
@@ -1398,7 +1426,7 @@ var Stepper = ({ step, title, isOpen, collapsible, onClick, className }) => {
|
|
|
1398
1426
|
] });
|
|
1399
1427
|
const base = "w-full flex items-center justify-between px-5 py-2.5 text-head3-medium text-primary text-left bg-white border-b border-gray02";
|
|
1400
1428
|
if (!collapsible) {
|
|
1401
|
-
return /* @__PURE__ */
|
|
1429
|
+
return /* @__PURE__ */ jsx35("div", { className: cn(base, className), children: label });
|
|
1402
1430
|
}
|
|
1403
1431
|
return /* @__PURE__ */ jsxs19(
|
|
1404
1432
|
"button",
|
|
@@ -1408,7 +1436,7 @@ var Stepper = ({ step, title, isOpen, collapsible, onClick, className }) => {
|
|
|
1408
1436
|
className: cn(base, "cursor-pointer hover:bg-gray00 active:bg-gray01", className),
|
|
1409
1437
|
children: [
|
|
1410
1438
|
label,
|
|
1411
|
-
/* @__PURE__ */
|
|
1439
|
+
/* @__PURE__ */ jsx35(IconChevronDownXS, { className: cn("transition-transform", isOpen && "rotate-180") })
|
|
1412
1440
|
]
|
|
1413
1441
|
}
|
|
1414
1442
|
);
|
|
@@ -1443,15 +1471,15 @@ var RadioToggleItem = ({
|
|
|
1443
1471
|
className
|
|
1444
1472
|
),
|
|
1445
1473
|
children: [
|
|
1446
|
-
/* @__PURE__ */
|
|
1447
|
-
/* @__PURE__ */
|
|
1474
|
+
/* @__PURE__ */ jsx35(Radio, { selected: open }),
|
|
1475
|
+
/* @__PURE__ */ jsx35("span", { children: title })
|
|
1448
1476
|
]
|
|
1449
1477
|
}
|
|
1450
1478
|
),
|
|
1451
1479
|
open && /* @__PURE__ */ jsxs19("div", { className: "flex flex-col gap-2 px-3 py-3 bg-white", children: [
|
|
1452
|
-
/* @__PURE__ */
|
|
1453
|
-
badges && badges.length > 0 && /* @__PURE__ */
|
|
1454
|
-
labelTextButton && /* @__PURE__ */
|
|
1480
|
+
/* @__PURE__ */ jsx35("p", { className: "text-caption-regular text-secondary", children: content }),
|
|
1481
|
+
badges && badges.length > 0 && /* @__PURE__ */ jsx35("div", { className: "flex flex-wrap gap-1", children: badges.map((badge) => /* @__PURE__ */ jsx35(Badge2, { label: badge }, badge)) }),
|
|
1482
|
+
labelTextButton && /* @__PURE__ */ jsx35(
|
|
1455
1483
|
TextButton2,
|
|
1456
1484
|
{
|
|
1457
1485
|
label: labelTextButton,
|
|
@@ -1469,7 +1497,7 @@ var Radio = ({ selected = false, className }) => {
|
|
|
1469
1497
|
// 디자인 스펙(Figma "radio" 5:781): 24px 히트 영역 안에 10px 원만 중앙에 그려진다.
|
|
1470
1498
|
// 아이콘 자체 색은 고정, hover/pressed 시 24px 원형 배경 칩만 나타난다(gray00/gray01).
|
|
1471
1499
|
// 부모 버튼의 group-hover/active로 동기화.
|
|
1472
|
-
/* @__PURE__ */
|
|
1500
|
+
/* @__PURE__ */ jsx35(
|
|
1473
1501
|
"span",
|
|
1474
1502
|
{
|
|
1475
1503
|
className: cn(
|
|
@@ -1477,7 +1505,7 @@ var Radio = ({ selected = false, className }) => {
|
|
|
1477
1505
|
"group-hover:bg-gray00 group-active:bg-gray01",
|
|
1478
1506
|
className
|
|
1479
1507
|
),
|
|
1480
|
-
children: /* @__PURE__ */
|
|
1508
|
+
children: /* @__PURE__ */ jsx35(Icon, { className: "size-2.5" })
|
|
1481
1509
|
}
|
|
1482
1510
|
)
|
|
1483
1511
|
);
|
|
@@ -1496,14 +1524,14 @@ var TextButton2 = ({ label, onClick, showIcon = false, className }) => {
|
|
|
1496
1524
|
className
|
|
1497
1525
|
),
|
|
1498
1526
|
children: [
|
|
1499
|
-
showIcon && /* @__PURE__ */
|
|
1527
|
+
showIcon && /* @__PURE__ */ jsx35(IconExclamation, {}),
|
|
1500
1528
|
label
|
|
1501
1529
|
]
|
|
1502
1530
|
}
|
|
1503
1531
|
);
|
|
1504
1532
|
};
|
|
1505
|
-
var
|
|
1506
|
-
return /* @__PURE__ */
|
|
1533
|
+
var Badge2 = ({ label, className }) => {
|
|
1534
|
+
return /* @__PURE__ */ jsx35(
|
|
1507
1535
|
"div",
|
|
1508
1536
|
{
|
|
1509
1537
|
className: cn(
|
|
@@ -1517,7 +1545,7 @@ var Badge = ({ label, className }) => {
|
|
|
1517
1545
|
};
|
|
1518
1546
|
|
|
1519
1547
|
// src/components/Tag/Tag.tsx
|
|
1520
|
-
import { jsx as
|
|
1548
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
1521
1549
|
var Tag = ({
|
|
1522
1550
|
className,
|
|
1523
1551
|
children,
|
|
@@ -1527,7 +1555,7 @@ var Tag = ({
|
|
|
1527
1555
|
onClick,
|
|
1528
1556
|
...props
|
|
1529
1557
|
}) => {
|
|
1530
|
-
return /* @__PURE__ */
|
|
1558
|
+
return /* @__PURE__ */ jsx36(
|
|
1531
1559
|
"button",
|
|
1532
1560
|
{
|
|
1533
1561
|
className: cn(
|
|
@@ -1546,16 +1574,61 @@ var Tag = ({
|
|
|
1546
1574
|
disabled,
|
|
1547
1575
|
style: bgColor ? { backgroundColor: bgColor, border: "none" } : void 0,
|
|
1548
1576
|
...props,
|
|
1549
|
-
children: /* @__PURE__ */
|
|
1577
|
+
children: /* @__PURE__ */ jsx36("span", { children })
|
|
1550
1578
|
}
|
|
1551
1579
|
);
|
|
1552
1580
|
};
|
|
1553
1581
|
|
|
1582
|
+
// src/components/TabSwitch/TabSwitch.tsx
|
|
1583
|
+
import { forwardRef as forwardRef3 } from "react";
|
|
1584
|
+
import { jsx as jsx37, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1585
|
+
var itemKey2 = (item) => item.value ?? item.label;
|
|
1586
|
+
var TabSwitch = forwardRef3(function TabSwitch2({ items, selected, defaultSelected, onSelect, className }, ref) {
|
|
1587
|
+
const [selectedValue, setSelectedValue] = useControllableState(
|
|
1588
|
+
selected,
|
|
1589
|
+
defaultSelected ?? itemKey2(items[0])
|
|
1590
|
+
);
|
|
1591
|
+
return /* @__PURE__ */ jsx37("div", { ref, className: cn("w-full border-b border-gray02", className), children: /* @__PURE__ */ jsx37("div", { className: "flex items-stretch", children: items.map((item) => {
|
|
1592
|
+
const key = itemKey2(item);
|
|
1593
|
+
const isSelected = key === selectedValue;
|
|
1594
|
+
return /* @__PURE__ */ jsxs20("div", { className: "flex items-stretch", children: [
|
|
1595
|
+
/* @__PURE__ */ jsxs20(
|
|
1596
|
+
"button",
|
|
1597
|
+
{
|
|
1598
|
+
type: "button",
|
|
1599
|
+
onClick: () => {
|
|
1600
|
+
setSelectedValue(key);
|
|
1601
|
+
onSelect?.(key);
|
|
1602
|
+
},
|
|
1603
|
+
className: cn(
|
|
1604
|
+
"flex flex-col items-center pt-2.5 cursor-pointer",
|
|
1605
|
+
isSelected ? "gap-2" : "pb-2.5"
|
|
1606
|
+
),
|
|
1607
|
+
children: [
|
|
1608
|
+
/* @__PURE__ */ jsx37(
|
|
1609
|
+
"span",
|
|
1610
|
+
{
|
|
1611
|
+
className: cn(
|
|
1612
|
+
"px-4 whitespace-nowrap",
|
|
1613
|
+
isSelected ? "text-body1-medium text-strong" : "text-body1-regular text-quaternary"
|
|
1614
|
+
),
|
|
1615
|
+
children: item.label
|
|
1616
|
+
}
|
|
1617
|
+
),
|
|
1618
|
+
isSelected && /* @__PURE__ */ jsx37("span", { className: "h-0.5 w-full bg-black" })
|
|
1619
|
+
]
|
|
1620
|
+
}
|
|
1621
|
+
),
|
|
1622
|
+
/* @__PURE__ */ jsx37("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" })
|
|
1623
|
+
] }, key);
|
|
1624
|
+
}) }) });
|
|
1625
|
+
});
|
|
1626
|
+
|
|
1554
1627
|
// src/components/Timetable/Timetable.tsx
|
|
1555
|
-
import { forwardRef as
|
|
1628
|
+
import { forwardRef as forwardRef5 } from "react";
|
|
1556
1629
|
|
|
1557
1630
|
// src/components/Timetable/WeekNavigation.tsx
|
|
1558
|
-
import { forwardRef as
|
|
1631
|
+
import { forwardRef as forwardRef4 } from "react";
|
|
1559
1632
|
|
|
1560
1633
|
// src/components/Timetable/dateUtils.ts
|
|
1561
1634
|
var KOREAN_WEEKDAYS = ["\uC77C", "\uC6D4", "\uD654", "\uC218", "\uBAA9", "\uAE08", "\uD1A0"];
|
|
@@ -1588,18 +1661,18 @@ var formatWeekRange = (weekStart) => {
|
|
|
1588
1661
|
};
|
|
1589
1662
|
|
|
1590
1663
|
// src/components/Timetable/WeekNavigation.tsx
|
|
1591
|
-
import { jsx as
|
|
1664
|
+
import { jsx as jsx38, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
1592
1665
|
var weekLabel = {
|
|
1593
1666
|
thisWeek: "\uC774\uBC88 \uC8FC",
|
|
1594
1667
|
nextWeek: "\uB2E4\uC74C \uC8FC",
|
|
1595
1668
|
twoWeeksLater: "\uB2E4\uB2E4\uC74C \uC8FC"
|
|
1596
1669
|
};
|
|
1597
|
-
var WeekNavigation =
|
|
1670
|
+
var WeekNavigation = forwardRef4(
|
|
1598
1671
|
function WeekNavigation2({ date, week, label, canPrev, canNext, onPrevWeek, onNextWeek, className }, ref) {
|
|
1599
1672
|
const showPrev = canPrev ?? (week ? week !== "thisWeek" : true);
|
|
1600
1673
|
const showNext = canNext ?? (week ? week !== "twoWeeksLater" : true);
|
|
1601
1674
|
const text = label ?? (week ? `${weekLabel[week]} (${formatWeekRange(date)})` : formatWeekRange(date));
|
|
1602
|
-
return /* @__PURE__ */
|
|
1675
|
+
return /* @__PURE__ */ jsxs21(
|
|
1603
1676
|
"div",
|
|
1604
1677
|
{
|
|
1605
1678
|
ref,
|
|
@@ -1611,22 +1684,22 @@ var WeekNavigation = forwardRef3(
|
|
|
1611
1684
|
className
|
|
1612
1685
|
),
|
|
1613
1686
|
children: [
|
|
1614
|
-
/* @__PURE__ */
|
|
1615
|
-
/* @__PURE__ */
|
|
1616
|
-
/* @__PURE__ */
|
|
1687
|
+
/* @__PURE__ */ jsx38(ArrowButton, { direction: "left", visible: showPrev, onClick: onPrevWeek }),
|
|
1688
|
+
/* @__PURE__ */ jsx38("span", { className: "flex flex-1 items-center justify-center text-center", children: text }),
|
|
1689
|
+
/* @__PURE__ */ jsx38(ArrowButton, { direction: "right", visible: showNext, onClick: onNextWeek })
|
|
1617
1690
|
]
|
|
1618
1691
|
}
|
|
1619
1692
|
);
|
|
1620
1693
|
}
|
|
1621
1694
|
);
|
|
1622
1695
|
var ArrowButton = ({ direction, visible, onClick }) => {
|
|
1623
|
-
const divider = /* @__PURE__ */
|
|
1696
|
+
const divider = /* @__PURE__ */ jsx38("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" });
|
|
1624
1697
|
if (!visible) {
|
|
1625
|
-
return /* @__PURE__ */
|
|
1698
|
+
return /* @__PURE__ */ jsx38("span", { "aria-hidden": true, className: "w-[43px]" });
|
|
1626
1699
|
}
|
|
1627
|
-
return /* @__PURE__ */
|
|
1700
|
+
return /* @__PURE__ */ jsxs21("div", { className: "flex items-stretch", children: [
|
|
1628
1701
|
direction === "right" && divider,
|
|
1629
|
-
/* @__PURE__ */
|
|
1702
|
+
/* @__PURE__ */ jsx38(
|
|
1630
1703
|
"button",
|
|
1631
1704
|
{
|
|
1632
1705
|
type: "button",
|
|
@@ -1636,7 +1709,7 @@ var ArrowButton = ({ direction, visible, onClick }) => {
|
|
|
1636
1709
|
"text-gray06 cursor-pointer transition-colors",
|
|
1637
1710
|
"hover:bg-gray00 active:bg-gray01"
|
|
1638
1711
|
),
|
|
1639
|
-
children: /* @__PURE__ */
|
|
1712
|
+
children: /* @__PURE__ */ jsx38(
|
|
1640
1713
|
IconChevronDownXS,
|
|
1641
1714
|
{
|
|
1642
1715
|
className: direction === "left" ? "rotate-90" : "-rotate-90",
|
|
@@ -1650,7 +1723,7 @@ var ArrowButton = ({ direction, visible, onClick }) => {
|
|
|
1650
1723
|
};
|
|
1651
1724
|
|
|
1652
1725
|
// src/components/Timetable/Timetable.tsx
|
|
1653
|
-
import { jsx as
|
|
1726
|
+
import { jsx as jsx39, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
1654
1727
|
var printColorHoverClass = {
|
|
1655
1728
|
Plotter: "hover:bg-print-plotter",
|
|
1656
1729
|
Printer: "hover:bg-print-printer",
|
|
@@ -1660,7 +1733,7 @@ var printColorHoverClass = {
|
|
|
1660
1733
|
"Seet Cutting": "hover:bg-print-seet-cutting",
|
|
1661
1734
|
"Laser Cutting": "hover:bg-print-laser-cutting"
|
|
1662
1735
|
};
|
|
1663
|
-
var Timetable =
|
|
1736
|
+
var Timetable = forwardRef5(function Timetable2({
|
|
1664
1737
|
weekStart,
|
|
1665
1738
|
week,
|
|
1666
1739
|
days,
|
|
@@ -1673,8 +1746,8 @@ var Timetable = forwardRef4(function Timetable2({
|
|
|
1673
1746
|
canNextWeek,
|
|
1674
1747
|
className
|
|
1675
1748
|
}, ref) {
|
|
1676
|
-
return /* @__PURE__ */
|
|
1677
|
-
!hideWeekNavigation && /* @__PURE__ */
|
|
1749
|
+
return /* @__PURE__ */ jsxs22("div", { ref, className: cn(fluid && "w-full", className), children: [
|
|
1750
|
+
!hideWeekNavigation && /* @__PURE__ */ jsx39(
|
|
1678
1751
|
WeekNavigation,
|
|
1679
1752
|
{
|
|
1680
1753
|
date: weekStart,
|
|
@@ -1685,7 +1758,7 @@ var Timetable = forwardRef4(function Timetable2({
|
|
|
1685
1758
|
onNextWeek
|
|
1686
1759
|
}
|
|
1687
1760
|
),
|
|
1688
|
-
/* @__PURE__ */
|
|
1761
|
+
/* @__PURE__ */ jsx39("div", { className: cn("flex divide-x divide-gray02", fluid && "w-full"), children: days.map((day) => /* @__PURE__ */ jsx39(
|
|
1689
1762
|
DailyTimetable,
|
|
1690
1763
|
{
|
|
1691
1764
|
date: day.date,
|
|
@@ -1698,12 +1771,12 @@ var Timetable = forwardRef4(function Timetable2({
|
|
|
1698
1771
|
] });
|
|
1699
1772
|
});
|
|
1700
1773
|
var DailyTimetable = ({ date, slots, fluid, onSelectTime, className }) => {
|
|
1701
|
-
return /* @__PURE__ */
|
|
1702
|
-
/* @__PURE__ */
|
|
1774
|
+
return /* @__PURE__ */ jsxs22("div", { className: cn("flex flex-col", fluid ? "flex-1 min-w-0" : "w-18", className), children: [
|
|
1775
|
+
/* @__PURE__ */ jsx39("div", { className: "h-12 flex items-center justify-center border-b border-gray02 text-body1-regular text-secondary", children: formatDayLabel(date) }),
|
|
1703
1776
|
slots.map((slot, index) => {
|
|
1704
1777
|
const prevState = index > 0 ? slots[index - 1].state : void 0;
|
|
1705
1778
|
const withTopBorder = slot.state !== "none" && prevState === "none";
|
|
1706
|
-
return /* @__PURE__ */
|
|
1779
|
+
return /* @__PURE__ */ jsx39(
|
|
1707
1780
|
TimeItem,
|
|
1708
1781
|
{
|
|
1709
1782
|
state: slot.state,
|
|
@@ -1732,7 +1805,7 @@ var TimeItem = ({
|
|
|
1732
1805
|
}) => {
|
|
1733
1806
|
const clickable = (state === "default" || state === "selected") && !!onClick;
|
|
1734
1807
|
const style = state === "default" && color ? { "--tt-hover": color } : void 0;
|
|
1735
|
-
return /* @__PURE__ */
|
|
1808
|
+
return /* @__PURE__ */ jsx39(
|
|
1736
1809
|
"div",
|
|
1737
1810
|
{
|
|
1738
1811
|
onClick: clickable ? onClick : void 0,
|
|
@@ -1760,11 +1833,11 @@ var TimeItem = ({
|
|
|
1760
1833
|
// src/components/TNB/TNB.tsx
|
|
1761
1834
|
import {
|
|
1762
1835
|
Fragment as Fragment2,
|
|
1763
|
-
forwardRef as
|
|
1836
|
+
forwardRef as forwardRef6,
|
|
1764
1837
|
useCallback as useCallback2,
|
|
1765
1838
|
useState as useState6
|
|
1766
1839
|
} from "react";
|
|
1767
|
-
import { jsx as
|
|
1840
|
+
import { jsx as jsx40, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
1768
1841
|
function useControllableState2(controlled, defaultValue) {
|
|
1769
1842
|
const isControlled = controlled !== void 0;
|
|
1770
1843
|
const [uncontrolled, setUncontrolled] = useState6(defaultValue);
|
|
@@ -1777,7 +1850,7 @@ function useControllableState2(controlled, defaultValue) {
|
|
|
1777
1850
|
);
|
|
1778
1851
|
return [value, setValue, isControlled];
|
|
1779
1852
|
}
|
|
1780
|
-
var TNB =
|
|
1853
|
+
var TNB = forwardRef6(function TNB2({
|
|
1781
1854
|
logo,
|
|
1782
1855
|
upperPartItemList,
|
|
1783
1856
|
upperPartIconList,
|
|
@@ -1816,8 +1889,8 @@ var TNB = forwardRef5(function TNB2({
|
|
|
1816
1889
|
setLowerValue(label);
|
|
1817
1890
|
onSelectedLowerChange?.(label);
|
|
1818
1891
|
};
|
|
1819
|
-
return /* @__PURE__ */
|
|
1820
|
-
/* @__PURE__ */
|
|
1892
|
+
return /* @__PURE__ */ jsxs23("nav", { ref, "aria-label": ariaLabel, className: cn("w-full bg-white", className), children: [
|
|
1893
|
+
/* @__PURE__ */ jsx40(
|
|
1821
1894
|
UpperPart,
|
|
1822
1895
|
{
|
|
1823
1896
|
logo,
|
|
@@ -1828,7 +1901,7 @@ var TNB = forwardRef5(function TNB2({
|
|
|
1828
1901
|
linkComponent
|
|
1829
1902
|
}
|
|
1830
1903
|
),
|
|
1831
|
-
/* @__PURE__ */
|
|
1904
|
+
/* @__PURE__ */ jsx40(
|
|
1832
1905
|
LowerPart,
|
|
1833
1906
|
{
|
|
1834
1907
|
lowerPartItemList: currentLowerItemList,
|
|
@@ -1839,11 +1912,11 @@ var TNB = forwardRef5(function TNB2({
|
|
|
1839
1912
|
)
|
|
1840
1913
|
] });
|
|
1841
1914
|
});
|
|
1842
|
-
var NavClickable =
|
|
1915
|
+
var NavClickable = forwardRef6(function NavClickable2({ href, onClick, linkComponent: Link, current, disabled, className, children }, ref) {
|
|
1843
1916
|
const ariaCurrent = current ? "page" : void 0;
|
|
1844
1917
|
if (href && !disabled) {
|
|
1845
1918
|
if (Link) {
|
|
1846
|
-
return /* @__PURE__ */
|
|
1919
|
+
return /* @__PURE__ */ jsx40(
|
|
1847
1920
|
Link,
|
|
1848
1921
|
{
|
|
1849
1922
|
href,
|
|
@@ -1855,7 +1928,7 @@ var NavClickable = forwardRef5(function NavClickable2({ href, onClick, linkCompo
|
|
|
1855
1928
|
}
|
|
1856
1929
|
);
|
|
1857
1930
|
}
|
|
1858
|
-
return /* @__PURE__ */
|
|
1931
|
+
return /* @__PURE__ */ jsx40(
|
|
1859
1932
|
"a",
|
|
1860
1933
|
{
|
|
1861
1934
|
href,
|
|
@@ -1867,7 +1940,7 @@ var NavClickable = forwardRef5(function NavClickable2({ href, onClick, linkCompo
|
|
|
1867
1940
|
}
|
|
1868
1941
|
);
|
|
1869
1942
|
}
|
|
1870
|
-
return /* @__PURE__ */
|
|
1943
|
+
return /* @__PURE__ */ jsx40(
|
|
1871
1944
|
"button",
|
|
1872
1945
|
{
|
|
1873
1946
|
type: "button",
|
|
@@ -1889,7 +1962,7 @@ var UpperPart = ({
|
|
|
1889
1962
|
linkComponent,
|
|
1890
1963
|
className
|
|
1891
1964
|
}) => {
|
|
1892
|
-
return /* @__PURE__ */
|
|
1965
|
+
return /* @__PURE__ */ jsxs23(
|
|
1893
1966
|
"div",
|
|
1894
1967
|
{
|
|
1895
1968
|
className: cn(
|
|
@@ -1897,12 +1970,12 @@ var UpperPart = ({
|
|
|
1897
1970
|
className
|
|
1898
1971
|
),
|
|
1899
1972
|
children: [
|
|
1900
|
-
/* @__PURE__ */
|
|
1901
|
-
/* @__PURE__ */
|
|
1902
|
-
/* @__PURE__ */
|
|
1903
|
-
/* @__PURE__ */
|
|
1904
|
-
upperPartItemList.map((item) => /* @__PURE__ */
|
|
1905
|
-
/* @__PURE__ */
|
|
1973
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex items-stretch", children: [
|
|
1974
|
+
/* @__PURE__ */ jsx40("div", { className: "flex w-14 shrink-0 items-center justify-center px-3", children: /* @__PURE__ */ jsx40(NavIconButton, { ...logo, linkComponent }) }),
|
|
1975
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex items-stretch", children: [
|
|
1976
|
+
/* @__PURE__ */ jsx40("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" }),
|
|
1977
|
+
upperPartItemList.map((item) => /* @__PURE__ */ jsxs23(Fragment2, { children: [
|
|
1978
|
+
/* @__PURE__ */ jsx40(
|
|
1906
1979
|
UpperPartTab,
|
|
1907
1980
|
{
|
|
1908
1981
|
label: item.label,
|
|
@@ -1915,15 +1988,15 @@ var UpperPart = ({
|
|
|
1915
1988
|
}
|
|
1916
1989
|
}
|
|
1917
1990
|
),
|
|
1918
|
-
/* @__PURE__ */
|
|
1991
|
+
/* @__PURE__ */ jsx40("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" })
|
|
1919
1992
|
] }, item.id ?? item.label))
|
|
1920
1993
|
] })
|
|
1921
1994
|
] }),
|
|
1922
|
-
/* @__PURE__ */
|
|
1923
|
-
/* @__PURE__ */
|
|
1924
|
-
upperPartIconList.map((icon, index) => /* @__PURE__ */
|
|
1925
|
-
/* @__PURE__ */
|
|
1926
|
-
/* @__PURE__ */
|
|
1995
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex items-stretch", children: [
|
|
1996
|
+
/* @__PURE__ */ jsx40("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" }),
|
|
1997
|
+
upperPartIconList.map((icon, index) => /* @__PURE__ */ jsxs23(Fragment2, { children: [
|
|
1998
|
+
/* @__PURE__ */ jsx40(NavIconButton, { ...icon, linkComponent }),
|
|
1999
|
+
/* @__PURE__ */ jsx40("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" })
|
|
1927
2000
|
] }, icon.id ?? icon.src ?? icon.label ?? index))
|
|
1928
2001
|
] })
|
|
1929
2002
|
]
|
|
@@ -1938,7 +2011,7 @@ var UpperPartTab = ({
|
|
|
1938
2011
|
linkComponent,
|
|
1939
2012
|
className
|
|
1940
2013
|
}) => {
|
|
1941
|
-
return /* @__PURE__ */
|
|
2014
|
+
return /* @__PURE__ */ jsxs23(
|
|
1942
2015
|
NavClickable,
|
|
1943
2016
|
{
|
|
1944
2017
|
href,
|
|
@@ -1953,17 +2026,17 @@ var UpperPartTab = ({
|
|
|
1953
2026
|
className
|
|
1954
2027
|
),
|
|
1955
2028
|
children: [
|
|
1956
|
-
/* @__PURE__ */
|
|
1957
|
-
/* @__PURE__ */
|
|
2029
|
+
/* @__PURE__ */ jsx40("span", { className: cn("px-5 text-head1-medium", selected ? "text-strong" : "text-quaternary"), children: label }),
|
|
2030
|
+
/* @__PURE__ */ jsx40("span", { className: cn("h-0.5 w-full", selected ? "bg-black" : "bg-transparent") })
|
|
1958
2031
|
]
|
|
1959
2032
|
}
|
|
1960
2033
|
);
|
|
1961
2034
|
};
|
|
1962
|
-
var NavIconButton =
|
|
2035
|
+
var NavIconButton = forwardRef6(
|
|
1963
2036
|
function NavIconButton2({ src, icon, alt, label, href, onClick, selected, badge, className, linkComponent }, forwardedRef) {
|
|
1964
2037
|
const interactive = Boolean(onClick || href);
|
|
1965
2038
|
const showBadge = badge !== void 0 && badge !== null && badge !== false;
|
|
1966
|
-
return /* @__PURE__ */
|
|
2039
|
+
return /* @__PURE__ */ jsxs23(
|
|
1967
2040
|
NavClickable,
|
|
1968
2041
|
{
|
|
1969
2042
|
ref: forwardedRef,
|
|
@@ -1979,9 +2052,9 @@ var NavIconButton = forwardRef5(
|
|
|
1979
2052
|
className
|
|
1980
2053
|
),
|
|
1981
2054
|
children: [
|
|
1982
|
-
icon ? /* @__PURE__ */
|
|
1983
|
-
label ? /* @__PURE__ */
|
|
1984
|
-
showBadge ? /* @__PURE__ */
|
|
2055
|
+
icon ? /* @__PURE__ */ jsx40("span", { className: "inline-flex h-6 w-6 items-center justify-center", children: icon }) : src ? /* @__PURE__ */ jsx40("img", { src, alt: alt ?? label ?? "", className: "h-6 w-6" }) : null,
|
|
2056
|
+
label ? /* @__PURE__ */ jsx40("span", { className: cn("text-body2-regular", selected ? "text-white" : "text-secondary"), children: label }) : null,
|
|
2057
|
+
showBadge ? /* @__PURE__ */ jsx40(
|
|
1985
2058
|
"span",
|
|
1986
2059
|
{
|
|
1987
2060
|
"aria-hidden": badge === true,
|
|
@@ -2007,14 +2080,14 @@ var LowerPart = ({
|
|
|
2007
2080
|
if (lowerPartItemList.length === 0) {
|
|
2008
2081
|
return null;
|
|
2009
2082
|
}
|
|
2010
|
-
return /* @__PURE__ */
|
|
2083
|
+
return /* @__PURE__ */ jsxs23(
|
|
2011
2084
|
"div",
|
|
2012
2085
|
{
|
|
2013
2086
|
className: cn("w-full h-[42px] pl-14 flex items-stretch border-b border-gray02", className),
|
|
2014
2087
|
children: [
|
|
2015
|
-
/* @__PURE__ */
|
|
2016
|
-
lowerPartItemList.map((item) => /* @__PURE__ */
|
|
2017
|
-
/* @__PURE__ */
|
|
2088
|
+
/* @__PURE__ */ jsx40("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" }),
|
|
2089
|
+
lowerPartItemList.map((item) => /* @__PURE__ */ jsxs23(Fragment2, { children: [
|
|
2090
|
+
/* @__PURE__ */ jsx40(
|
|
2018
2091
|
LowerPartItemButton,
|
|
2019
2092
|
{
|
|
2020
2093
|
label: item.label,
|
|
@@ -2027,7 +2100,7 @@ var LowerPart = ({
|
|
|
2027
2100
|
}
|
|
2028
2101
|
}
|
|
2029
2102
|
),
|
|
2030
|
-
/* @__PURE__ */
|
|
2103
|
+
/* @__PURE__ */ jsx40("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" })
|
|
2031
2104
|
] }, item.id ?? item.label))
|
|
2032
2105
|
]
|
|
2033
2106
|
}
|
|
@@ -2041,7 +2114,7 @@ var LowerPartItemButton = ({
|
|
|
2041
2114
|
linkComponent,
|
|
2042
2115
|
className
|
|
2043
2116
|
}) => {
|
|
2044
|
-
return /* @__PURE__ */
|
|
2117
|
+
return /* @__PURE__ */ jsx40(
|
|
2045
2118
|
NavClickable,
|
|
2046
2119
|
{
|
|
2047
2120
|
href,
|
|
@@ -2060,10 +2133,10 @@ var LowerPartItemButton = ({
|
|
|
2060
2133
|
};
|
|
2061
2134
|
|
|
2062
2135
|
// src/components/Toast/Toast.tsx
|
|
2063
|
-
import { forwardRef as
|
|
2064
|
-
import { jsx as
|
|
2136
|
+
import { forwardRef as forwardRef7, useEffect as useEffect3, useState as useState7 } from "react";
|
|
2137
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
2065
2138
|
var EXIT_MS = 300;
|
|
2066
|
-
var Toast =
|
|
2139
|
+
var Toast = forwardRef7(function Toast2({ message, open, duration = 3e3, onClose, position = "none", className }, ref) {
|
|
2067
2140
|
const controlled = open !== void 0;
|
|
2068
2141
|
const [mounted, setMounted] = useState7(!controlled || open);
|
|
2069
2142
|
const [visible, setVisible] = useState7(!controlled || open);
|
|
@@ -2084,7 +2157,7 @@ var Toast = forwardRef6(function Toast2({ message, open, duration = 3e3, onClose
|
|
|
2084
2157
|
return () => clearTimeout(timer);
|
|
2085
2158
|
}, [controlled, open, duration, onClose]);
|
|
2086
2159
|
if (!mounted) return null;
|
|
2087
|
-
const banner = /* @__PURE__ */
|
|
2160
|
+
const banner = /* @__PURE__ */ jsx41(
|
|
2088
2161
|
"div",
|
|
2089
2162
|
{
|
|
2090
2163
|
ref,
|
|
@@ -2102,7 +2175,7 @@ var Toast = forwardRef6(function Toast2({ message, open, duration = 3e3, onClose
|
|
|
2102
2175
|
}
|
|
2103
2176
|
);
|
|
2104
2177
|
if (position === "none") return banner;
|
|
2105
|
-
return /* @__PURE__ */
|
|
2178
|
+
return /* @__PURE__ */ jsx41(
|
|
2106
2179
|
"div",
|
|
2107
2180
|
{
|
|
2108
2181
|
className: cn(
|
|
@@ -2116,6 +2189,7 @@ var Toast = forwardRef6(function Toast2({ message, open, duration = 3e3, onClose
|
|
|
2116
2189
|
export {
|
|
2117
2190
|
Accordion,
|
|
2118
2191
|
BackButton,
|
|
2192
|
+
Badge,
|
|
2119
2193
|
BasicFormField,
|
|
2120
2194
|
CTA,
|
|
2121
2195
|
CategorySegment,
|
|
@@ -2157,6 +2231,7 @@ export {
|
|
|
2157
2231
|
SelectBoxOption,
|
|
2158
2232
|
SideRadioAccordion,
|
|
2159
2233
|
TNB,
|
|
2234
|
+
TabSwitch,
|
|
2160
2235
|
Tag,
|
|
2161
2236
|
TextButton,
|
|
2162
2237
|
Timetable,
|