@yeongseoksong/framework 0.1.0 → 1.0.1
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/README.md +383 -0
- package/dist/types/index.d.mts +8 -1
- package/dist/types/index.d.ts +8 -1
- package/dist/types/index.js +14 -17
- package/dist/types/index.mjs +14 -17
- package/dist/ui/index.d.mts +105 -6
- package/dist/ui/index.d.ts +105 -6
- package/dist/ui/index.js +526 -394
- package/dist/ui/index.mjs +472 -364
- package/package.json +3 -5
package/dist/ui/index.js
CHANGED
|
@@ -66,7 +66,16 @@ __export(ui_exports, {
|
|
|
66
66
|
PageLayout: () => PageLayout,
|
|
67
67
|
SdBadge: () => SdBadge,
|
|
68
68
|
SdButton: () => SdButton,
|
|
69
|
+
SdButtonCancel: () => SdButtonCancel,
|
|
70
|
+
SdButtonDelete: () => SdButtonDelete,
|
|
71
|
+
SdButtonGhost: () => SdButtonGhost,
|
|
72
|
+
SdButtonOutline: () => SdButtonOutline,
|
|
73
|
+
SdButtonPrimary: () => SdButtonPrimary,
|
|
74
|
+
SdButtonSecondary: () => SdButtonSecondary,
|
|
75
|
+
SdButtonWhite: () => SdButtonWhite,
|
|
69
76
|
SdClients: () => SdClients,
|
|
77
|
+
SdClientsGrid: () => SdClientsGrid,
|
|
78
|
+
SdClientsMarquee: () => SdClientsMarquee,
|
|
70
79
|
SdContainer: () => SdContainer,
|
|
71
80
|
SdCta: () => SdCta,
|
|
72
81
|
SdErrorView: () => SdErrorView,
|
|
@@ -77,19 +86,34 @@ __export(ui_exports, {
|
|
|
77
86
|
SdHeader: () => SdHeader,
|
|
78
87
|
SdInput: () => SdInput,
|
|
79
88
|
SdMap: () => SdMap,
|
|
89
|
+
SdMapSingle: () => SdMapSingle,
|
|
90
|
+
SdMapTabs: () => SdMapTabs,
|
|
80
91
|
SdModal: () => SdModal,
|
|
81
92
|
SdNumberIcon: () => SdNumberIcon,
|
|
82
93
|
SdPricingCard: () => SdPricingCard,
|
|
83
94
|
SdQuote: () => SdQuote,
|
|
95
|
+
SdSkeleton: () => SdSkeleton,
|
|
96
|
+
SdSkeletonAvatar: () => SdSkeletonAvatar,
|
|
97
|
+
SdSkeletonCard: () => SdSkeletonCard,
|
|
98
|
+
SdSkeletonImage: () => SdSkeletonImage,
|
|
99
|
+
SdSkeletonText: () => SdSkeletonText,
|
|
100
|
+
SdSkeletonTitle: () => SdSkeletonTitle,
|
|
84
101
|
SdSolution: () => SdSolution,
|
|
85
102
|
SdSolutionCard: () => SdSolutionCard,
|
|
86
103
|
SdSteps: () => SdSteps,
|
|
87
104
|
SdStepsSection: () => SdStepsSection,
|
|
88
105
|
SdTable: () => SdTable,
|
|
89
106
|
SdTabs: () => SdTabs,
|
|
107
|
+
SdTabsOutline: () => SdTabsOutline,
|
|
108
|
+
SdTabsPills: () => SdTabsPills,
|
|
109
|
+
SdTabsUnderline: () => SdTabsUnderline,
|
|
90
110
|
SdTestimonial: () => SdTestimonial,
|
|
91
111
|
SdText: () => SdText,
|
|
92
112
|
SdTextBox: () => SdTextBox,
|
|
113
|
+
SdTextBoxCard: () => SdTextBoxCard,
|
|
114
|
+
SdTextBoxHero: () => SdTextBoxHero,
|
|
115
|
+
SdTextBoxSection: () => SdTextBoxSection,
|
|
116
|
+
SdTextBoxSub: () => SdTextBoxSub,
|
|
93
117
|
SdTimeline: () => SdTimeline,
|
|
94
118
|
SdTimelineSection: () => SdTimelineSection,
|
|
95
119
|
SdTitle: () => SdTitle,
|
|
@@ -191,6 +215,9 @@ var SdTabs = {
|
|
|
191
215
|
}
|
|
192
216
|
})
|
|
193
217
|
};
|
|
218
|
+
var SdTabsPills = SdTabs.Pills;
|
|
219
|
+
var SdTabsUnderline = SdTabs.Underline;
|
|
220
|
+
var SdTabsOutline = SdTabs.Outline;
|
|
194
221
|
|
|
195
222
|
// ui/atom/Title.tsx
|
|
196
223
|
var import_core4 = require("@mantine/core");
|
|
@@ -255,6 +282,8 @@ function createButton(defaults) {
|
|
|
255
282
|
var SdButton = {
|
|
256
283
|
/** 주요 액션 — filled primary */
|
|
257
284
|
Primary: createButton({ color: "primary" }),
|
|
285
|
+
/** 보조 액션 — white bg + slate text */
|
|
286
|
+
Secondary: createButton({ variant: "white", color: "slate" }),
|
|
258
287
|
/** 보조 액션 — outline */
|
|
259
288
|
Outline: createButton({ variant: "outline", color: "primary" }),
|
|
260
289
|
/** 텍스트 수준 — subtle */
|
|
@@ -266,6 +295,13 @@ var SdButton = {
|
|
|
266
295
|
/** 취소 — outline slate + X 아이콘 */
|
|
267
296
|
Cancel: createButton({ variant: "outline", color: "slate", leftSection: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_icons_react.IconX, { size: 16 }) })
|
|
268
297
|
};
|
|
298
|
+
var SdButtonPrimary = SdButton.Primary;
|
|
299
|
+
var SdButtonSecondary = SdButton.Secondary;
|
|
300
|
+
var SdButtonOutline = SdButton.Outline;
|
|
301
|
+
var SdButtonGhost = SdButton.Ghost;
|
|
302
|
+
var SdButtonWhite = SdButton.White;
|
|
303
|
+
var SdButtonDelete = SdButton.Delete;
|
|
304
|
+
var SdButtonCancel = SdButton.Cancel;
|
|
269
305
|
|
|
270
306
|
// ui/atom/Quote.tsx
|
|
271
307
|
var import_core7 = require("@mantine/core");
|
|
@@ -428,9 +464,62 @@ var SdInput = {
|
|
|
428
464
|
Select: createSelect({})
|
|
429
465
|
};
|
|
430
466
|
|
|
431
|
-
// ui/
|
|
467
|
+
// ui/atom/Skeleton.tsx
|
|
432
468
|
var import_core13 = require("@mantine/core");
|
|
433
469
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
470
|
+
function SkeletonText(_a) {
|
|
471
|
+
var _b = _a, { width = "100%" } = _b, props = __objRest(_b, ["width"]);
|
|
472
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core13.Skeleton, __spreadValues({ height: 14, width, radius: "sm" }, props));
|
|
473
|
+
}
|
|
474
|
+
function SkeletonTitle(_a) {
|
|
475
|
+
var _b = _a, { width = "60%" } = _b, props = __objRest(_b, ["width"]);
|
|
476
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core13.Skeleton, __spreadValues({ height: 20, width, radius: "sm" }, props));
|
|
477
|
+
}
|
|
478
|
+
function SkeletonImage(_a) {
|
|
479
|
+
var _b = _a, { height = 200 } = _b, props = __objRest(_b, ["height"]);
|
|
480
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core13.Skeleton, __spreadValues({ height, radius: "md" }, props));
|
|
481
|
+
}
|
|
482
|
+
function SkeletonAvatar(_a) {
|
|
483
|
+
var _b = _a, { size = 40 } = _b, props = __objRest(_b, ["size"]);
|
|
484
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core13.Skeleton, __spreadValues({ height: size, width: size, circle: true }, props));
|
|
485
|
+
}
|
|
486
|
+
function SkeletonCard({ height, lines = 3 }) {
|
|
487
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
488
|
+
import_core13.Box,
|
|
489
|
+
{
|
|
490
|
+
p: "md",
|
|
491
|
+
style: { borderRadius: "var(--mantine-radius-md)", border: "1px solid var(--mantine-color-gray-3)", height },
|
|
492
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core13.Stack, { gap: "sm", children: [
|
|
493
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core13.Skeleton, { height: 20, width: "50%", radius: "sm" }),
|
|
494
|
+
Array.from({ length: lines }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
495
|
+
import_core13.Skeleton,
|
|
496
|
+
{
|
|
497
|
+
height: 14,
|
|
498
|
+
width: i === lines - 1 ? "70%" : "100%",
|
|
499
|
+
radius: "sm"
|
|
500
|
+
},
|
|
501
|
+
i
|
|
502
|
+
))
|
|
503
|
+
] })
|
|
504
|
+
}
|
|
505
|
+
);
|
|
506
|
+
}
|
|
507
|
+
var SdSkeleton = {
|
|
508
|
+
Card: SkeletonCard,
|
|
509
|
+
Text: SkeletonText,
|
|
510
|
+
Title: SkeletonTitle,
|
|
511
|
+
Image: SkeletonImage,
|
|
512
|
+
Avatar: SkeletonAvatar
|
|
513
|
+
};
|
|
514
|
+
var SdSkeletonCard = SkeletonCard;
|
|
515
|
+
var SdSkeletonText = SkeletonText;
|
|
516
|
+
var SdSkeletonTitle = SkeletonTitle;
|
|
517
|
+
var SdSkeletonImage = SkeletonImage;
|
|
518
|
+
var SdSkeletonAvatar = SkeletonAvatar;
|
|
519
|
+
|
|
520
|
+
// ui/molecule/TextBox.tsx
|
|
521
|
+
var import_core14 = require("@mantine/core");
|
|
522
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
434
523
|
function createTextBox(titleVariant, defaultGap = "xs", descVariant = "Body", color_ = void 0) {
|
|
435
524
|
return function SdTextBox2(_a) {
|
|
436
525
|
var _b = _a, {
|
|
@@ -454,10 +543,10 @@ function createTextBox(titleVariant, defaultGap = "xs", descVariant = "Body", co
|
|
|
454
543
|
const variant = variantOverride != null ? variantOverride : titleVariant;
|
|
455
544
|
const TitleComponent = SdTitle[variant];
|
|
456
545
|
const DescComponent = SdText[descVariant];
|
|
457
|
-
return /* @__PURE__ */ (0,
|
|
458
|
-
label && /* @__PURE__ */ (0,
|
|
459
|
-
/* @__PURE__ */ (0,
|
|
460
|
-
description && /* @__PURE__ */ (0,
|
|
546
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core14.Stack, __spreadProps(__spreadValues({ gap: defaultGap }, stackProps), { children: [
|
|
547
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SdText.Eyebrow, { children: label }),
|
|
548
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(TitleComponent, { c: colorRes, children: title }),
|
|
549
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DescComponent, { c: colorRes, maw: maxDescWidth, mt: 4, children: description }),
|
|
461
550
|
children
|
|
462
551
|
] }));
|
|
463
552
|
};
|
|
@@ -468,9 +557,13 @@ var SdTextBox = {
|
|
|
468
557
|
Card: createTextBox("Card", "xs", "Body"),
|
|
469
558
|
Sub: createTextBox("Sub", "xs", "Sub")
|
|
470
559
|
};
|
|
560
|
+
var SdTextBoxHero = SdTextBox.Hero;
|
|
561
|
+
var SdTextBoxSection = SdTextBox.Section;
|
|
562
|
+
var SdTextBoxCard = SdTextBox.Card;
|
|
563
|
+
var SdTextBoxSub = SdTextBox.Sub;
|
|
471
564
|
|
|
472
565
|
// ui/molecule/Features.tsx
|
|
473
|
-
var
|
|
566
|
+
var import_core15 = require("@mantine/core");
|
|
474
567
|
|
|
475
568
|
// util/sort.util.ts
|
|
476
569
|
function filterAndSort(items) {
|
|
@@ -478,25 +571,31 @@ function filterAndSort(items) {
|
|
|
478
571
|
}
|
|
479
572
|
|
|
480
573
|
// ui/molecule/Features.tsx
|
|
481
|
-
var
|
|
574
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
482
575
|
function SdFeatures({ items, cols = { base: 1, sm: 2, md: 3 } }) {
|
|
483
576
|
const visible = filterAndSort(items);
|
|
484
|
-
return /* @__PURE__ */ (0,
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
577
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core15.SimpleGrid, { cols, spacing: "xl", children: visible.map((item) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
578
|
+
import_core15.Card,
|
|
579
|
+
{
|
|
580
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core15.Stack, { gap: "sm", children: [
|
|
581
|
+
item.icon,
|
|
582
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
583
|
+
SdTextBox.Card,
|
|
584
|
+
{
|
|
585
|
+
label: item.label,
|
|
586
|
+
title: item.title,
|
|
587
|
+
description: item.description
|
|
588
|
+
}
|
|
589
|
+
)
|
|
590
|
+
] }, item.id)
|
|
591
|
+
},
|
|
592
|
+
item.id
|
|
593
|
+
)) });
|
|
495
594
|
}
|
|
496
595
|
|
|
497
596
|
// ui/molecule/Timeline.tsx
|
|
498
|
-
var
|
|
499
|
-
var
|
|
597
|
+
var import_core16 = require("@mantine/core");
|
|
598
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
500
599
|
function SdTimeline({ items }) {
|
|
501
600
|
const grouped = items.filter((item) => item.isShow).sort((a, b) => b.year - a.year || b.month - a.month).reduce((acc, item) => {
|
|
502
601
|
var _a, _b;
|
|
@@ -504,19 +603,19 @@ function SdTimeline({ items }) {
|
|
|
504
603
|
return acc;
|
|
505
604
|
}, {});
|
|
506
605
|
const years = Object.keys(grouped).map(Number).sort((a, b) => b - a);
|
|
507
|
-
return /* @__PURE__ */ (0,
|
|
508
|
-
|
|
606
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core16.Timeline, { active: items.length, bulletSize: 24, lineWidth: 2, children: years.map((year) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
607
|
+
import_core16.Timeline.Item,
|
|
509
608
|
{
|
|
510
|
-
title: /* @__PURE__ */ (0,
|
|
609
|
+
title: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(SdTitle.Sub, { children: [
|
|
511
610
|
year,
|
|
512
611
|
"\uB144"
|
|
513
612
|
] }),
|
|
514
|
-
children: /* @__PURE__ */ (0,
|
|
515
|
-
/* @__PURE__ */ (0,
|
|
613
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core16.Stack, { gap: 6, mt: "xs", children: grouped[year].map((event) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_core16.Group, { gap: "md", align: "center", wrap: "nowrap", children: [
|
|
614
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(SdText.Eyebrow, { miw: 28, children: [
|
|
516
615
|
event.month,
|
|
517
616
|
"\uC6D4"
|
|
518
617
|
] }),
|
|
519
|
-
/* @__PURE__ */ (0,
|
|
618
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(SdText.Sub, { style: { flex: 1 }, children: event.description })
|
|
520
619
|
] }, event.id)) })
|
|
521
620
|
},
|
|
522
621
|
year
|
|
@@ -524,26 +623,26 @@ function SdTimeline({ items }) {
|
|
|
524
623
|
}
|
|
525
624
|
|
|
526
625
|
// ui/molecule/Steps.tsx
|
|
527
|
-
var
|
|
626
|
+
var import_core17 = require("@mantine/core");
|
|
528
627
|
var import_icons_react2 = require("@tabler/icons-react");
|
|
529
|
-
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
530
628
|
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
629
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
531
630
|
function BubbleStep({ item, index, isLast }) {
|
|
532
|
-
return /* @__PURE__ */ (0,
|
|
533
|
-
/* @__PURE__ */ (0,
|
|
534
|
-
/* @__PURE__ */ (0,
|
|
535
|
-
!isLast && /* @__PURE__ */ (0,
|
|
631
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core17.Group, { align: "flex-start", gap: "lg", wrap: "nowrap", children: [
|
|
632
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core17.Box, { style: { display: "flex", flexDirection: "column", alignItems: "center", flexShrink: 0 }, children: [
|
|
633
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(SdNumberIcon, { value: String(index + 1).padStart(2, "0") }),
|
|
634
|
+
!isLast && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Box, { style: { width: 2, flex: 1, minHeight: 32, marginTop: 8, background: "var(--mantine-color-primary-2)" } })
|
|
536
635
|
] }),
|
|
537
|
-
/* @__PURE__ */ (0,
|
|
636
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(SdTextBox.Card, { title: item.title, description: item.description, pb: !isLast ? "xl" : 0, pt: 4 })
|
|
538
637
|
] });
|
|
539
638
|
}
|
|
540
639
|
function Bubble({ items }) {
|
|
541
|
-
return /* @__PURE__ */ (0,
|
|
640
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Box, { children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(BubbleStep, { item, index: i, isLast: i === items.length - 1 }, i)) });
|
|
542
641
|
}
|
|
543
642
|
function CardStep({ item, index }) {
|
|
544
|
-
return /* @__PURE__ */ (0,
|
|
545
|
-
/* @__PURE__ */ (0,
|
|
546
|
-
|
|
643
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core17.Card, { withBorder: true, radius: "md", p: 0, style: { height: "100%", overflow: "hidden" }, children: [
|
|
644
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
645
|
+
import_core17.Box,
|
|
547
646
|
{
|
|
548
647
|
py: "lg",
|
|
549
648
|
style: {
|
|
@@ -551,54 +650,54 @@ function CardStep({ item, index }) {
|
|
|
551
650
|
justifyContent: "center",
|
|
552
651
|
background: "var(--mantine-color-primary-0)"
|
|
553
652
|
},
|
|
554
|
-
children: /* @__PURE__ */ (0,
|
|
653
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(SdText.Eyebrow, { children: [
|
|
555
654
|
"STEP ",
|
|
556
655
|
String(index + 1).padStart(2, "0")
|
|
557
656
|
] })
|
|
558
657
|
}
|
|
559
658
|
),
|
|
560
|
-
/* @__PURE__ */ (0,
|
|
659
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Box, { p: "lg", style: { textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(SdTextBox.Card, { title: item.title, description: item.description }) })
|
|
561
660
|
] });
|
|
562
661
|
}
|
|
563
662
|
function CardArrow({ direction }) {
|
|
564
|
-
return /* @__PURE__ */ (0,
|
|
663
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.ThemeIcon, { size: 36, radius: "xl", variant: "light", color: "primary", children: direction === "right" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_icons_react2.IconArrowRight, { size: 20, stroke: 2.5 }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_icons_react2.IconArrowDown, { size: 20, stroke: 2.5 }) });
|
|
565
664
|
}
|
|
566
665
|
function CardVariant({ items }) {
|
|
567
|
-
return /* @__PURE__ */ (0,
|
|
568
|
-
/* @__PURE__ */ (0,
|
|
569
|
-
/* @__PURE__ */ (0,
|
|
570
|
-
i < items.length - 1 && /* @__PURE__ */ (0,
|
|
666
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
|
|
667
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Stack, { gap: "sm", hiddenFrom: "sm", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime17.Fragment, { children: [
|
|
668
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(CardStep, { item, index: i }),
|
|
669
|
+
i < items.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Box, { style: { display: "flex", justifyContent: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(CardArrow, { direction: "down" }) })
|
|
571
670
|
] }, i)) }),
|
|
572
|
-
/* @__PURE__ */ (0,
|
|
573
|
-
/* @__PURE__ */ (0,
|
|
574
|
-
i < items.length - 1 && /* @__PURE__ */ (0,
|
|
671
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Group, { wrap: "nowrap", align: "stretch", gap: 0, visibleFrom: "sm", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime17.Fragment, { children: [
|
|
672
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Box, { style: { flex: 1, minWidth: 0 }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(CardStep, { item, index: i }) }),
|
|
673
|
+
i < items.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Box, { style: { display: "flex", alignItems: "center", padding: "0 8px" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(CardArrow, { direction: "right" }) })
|
|
575
674
|
] }, i)) })
|
|
576
675
|
] });
|
|
577
676
|
}
|
|
578
677
|
function StripStep({ item, index }) {
|
|
579
|
-
return /* @__PURE__ */ (0,
|
|
580
|
-
/* @__PURE__ */ (0,
|
|
678
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Box, { pl: "md", style: { borderLeft: "3px solid var(--mantine-color-primary-6)" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core17.Stack, { gap: 4, children: [
|
|
679
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(SdText.Eyebrow, { children: [
|
|
581
680
|
"STEP ",
|
|
582
681
|
String(index + 1).padStart(2, "0")
|
|
583
682
|
] }),
|
|
584
|
-
/* @__PURE__ */ (0,
|
|
683
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(SdTextBox.Card, { title: item.title, description: item.description })
|
|
585
684
|
] }) });
|
|
586
685
|
}
|
|
587
686
|
function Strip({ items }) {
|
|
588
|
-
return /* @__PURE__ */ (0,
|
|
687
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Stack, { gap: "xl", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(StripStep, { item, index: i }, i)) });
|
|
589
688
|
}
|
|
590
689
|
var SdSteps = { Bubble, Card: CardVariant, Strip };
|
|
591
690
|
|
|
592
691
|
// ui/molecule/Testimonial.tsx
|
|
593
|
-
var
|
|
594
|
-
var
|
|
692
|
+
var import_core18 = require("@mantine/core");
|
|
693
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
595
694
|
function AuthorRow({ item }) {
|
|
596
|
-
return /* @__PURE__ */ (0,
|
|
597
|
-
item.avatar && /* @__PURE__ */ (0,
|
|
598
|
-
!item.avatar && /* @__PURE__ */ (0,
|
|
599
|
-
/* @__PURE__ */ (0,
|
|
600
|
-
/* @__PURE__ */ (0,
|
|
601
|
-
/* @__PURE__ */ (0,
|
|
695
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_core18.Group, { gap: "sm", wrap: "nowrap", children: [
|
|
696
|
+
item.avatar && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_core18.Avatar, { src: item.avatar, size: "md", radius: "xl" }),
|
|
697
|
+
!item.avatar && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_core18.Avatar, { size: "md", radius: "xl", color: "primary", children: item.name.charAt(0) }),
|
|
698
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_core18.Stack, { gap: 0, children: [
|
|
699
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(SdText.Strong, { fz: "sm", children: item.name }),
|
|
700
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(SdText.Sub, { children: [
|
|
602
701
|
item.role,
|
|
603
702
|
item.company ? ` \xB7 ${item.company}` : ""
|
|
604
703
|
] })
|
|
@@ -607,28 +706,28 @@ function AuthorRow({ item }) {
|
|
|
607
706
|
}
|
|
608
707
|
function CardTestimonial(_a) {
|
|
609
708
|
var _b = _a, { item } = _b, boxProps = __objRest(_b, ["item"]);
|
|
610
|
-
return /* @__PURE__ */ (0,
|
|
611
|
-
item.rating && /* @__PURE__ */ (0,
|
|
612
|
-
/* @__PURE__ */ (0,
|
|
613
|
-
/* @__PURE__ */ (0,
|
|
614
|
-
item.lines.map((line, i) => /* @__PURE__ */ (0,
|
|
709
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_core18.Card, __spreadProps(__spreadValues({ h: "100%" }, boxProps), { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_core18.Stack, { gap: "md", h: "100%", children: [
|
|
710
|
+
item.rating && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_core18.Rating, { value: item.rating, readOnly: true, size: "sm", color: "primary" }),
|
|
711
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_core18.Stack, { gap: "xs", style: { flex: 1 }, children: [
|
|
712
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(SdTitle.Display, { c: "primary.6", lh: 0.8, "aria-hidden": true, children: "\u201C" }),
|
|
713
|
+
item.lines.map((line, i) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(SdText.Body, { children: line }, i))
|
|
615
714
|
] }),
|
|
616
|
-
/* @__PURE__ */ (0,
|
|
715
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(AuthorRow, { item })
|
|
617
716
|
] }) }));
|
|
618
717
|
}
|
|
619
718
|
function Strip2(_a) {
|
|
620
719
|
var _b = _a, { item } = _b, boxProps = __objRest(_b, ["item"]);
|
|
621
|
-
return /* @__PURE__ */ (0,
|
|
622
|
-
item.rating && /* @__PURE__ */ (0,
|
|
623
|
-
/* @__PURE__ */ (0,
|
|
624
|
-
/* @__PURE__ */ (0,
|
|
625
|
-
/* @__PURE__ */ (0,
|
|
720
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_core18.Box, __spreadProps(__spreadValues({}, boxProps), { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_core18.Stack, { gap: "md", children: [
|
|
721
|
+
item.rating && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_core18.Rating, { value: item.rating, readOnly: true, size: "sm", color: "primary" }),
|
|
722
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_core18.Group, { gap: 4, align: "flex-start", children: [
|
|
723
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(SdTitle.Display, { c: "primary.6", lh: 0.8, "aria-hidden": true, children: "\u201C" }),
|
|
724
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_core18.Stack, { gap: "xs", style: { flex: 1 }, children: item.lines.map((line, i) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(SdText.Body, { children: line }, i)) })
|
|
626
725
|
] }),
|
|
627
|
-
/* @__PURE__ */ (0,
|
|
726
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(AuthorRow, { item })
|
|
628
727
|
] }) }));
|
|
629
728
|
}
|
|
630
729
|
function Grid({ items, cols = { base: 1, sm: 2, md: 3 } }) {
|
|
631
|
-
return /* @__PURE__ */ (0,
|
|
730
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_core18.SimpleGrid, { cols, spacing: "xl", style: { alignItems: "stretch" }, children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(CardTestimonial, { item }, i)) });
|
|
632
731
|
}
|
|
633
732
|
var SdTestimonial = {
|
|
634
733
|
/** 카드형 — 그리드 배치용 */
|
|
@@ -640,46 +739,46 @@ var SdTestimonial = {
|
|
|
640
739
|
};
|
|
641
740
|
|
|
642
741
|
// ui/molecule/PricingCard.tsx
|
|
643
|
-
var
|
|
742
|
+
var import_core19 = require("@mantine/core");
|
|
644
743
|
var import_icons_react3 = require("@tabler/icons-react");
|
|
645
|
-
var
|
|
744
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
646
745
|
function Default(_a) {
|
|
647
746
|
var _b = _a, { item, onSelect } = _b, cardProps = __objRest(_b, ["item", "onSelect"]);
|
|
648
747
|
var _a2;
|
|
649
|
-
return /* @__PURE__ */ (0,
|
|
650
|
-
|
|
748
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
749
|
+
import_core19.Card,
|
|
651
750
|
__spreadProps(__spreadValues({
|
|
652
751
|
withBorder: true,
|
|
653
752
|
style: { position: "relative" }
|
|
654
753
|
}, cardProps), {
|
|
655
|
-
children: /* @__PURE__ */ (0,
|
|
656
|
-
/* @__PURE__ */ (0,
|
|
657
|
-
/* @__PURE__ */ (0,
|
|
658
|
-
/* @__PURE__ */ (0,
|
|
659
|
-
item.isPopular && /* @__PURE__ */ (0,
|
|
754
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_core19.Stack, { gap: "xl", children: [
|
|
755
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_core19.Stack, { gap: "xs", children: [
|
|
756
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_core19.Group, { justify: "space-between", align: "flex-start", children: [
|
|
757
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SdTitle.Card, { children: item.name }),
|
|
758
|
+
item.isPopular && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SdBadge.Primary, { children: "\uCD94\uCC9C" })
|
|
660
759
|
] }),
|
|
661
|
-
item.description && /* @__PURE__ */ (0,
|
|
760
|
+
item.description && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SdText.Sub, { children: item.description })
|
|
662
761
|
] }),
|
|
663
|
-
/* @__PURE__ */ (0,
|
|
664
|
-
/* @__PURE__ */ (0,
|
|
665
|
-
item.period && /* @__PURE__ */ (0,
|
|
762
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_core19.Group, { gap: 4, align: "baseline", children: [
|
|
763
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SdTitle.Display, { children: item.price }),
|
|
764
|
+
item.period && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(SdText.Sub, { children: [
|
|
666
765
|
"/ ",
|
|
667
766
|
item.period
|
|
668
767
|
] })
|
|
669
768
|
] }),
|
|
670
|
-
/* @__PURE__ */ (0,
|
|
671
|
-
/* @__PURE__ */ (0,
|
|
672
|
-
/* @__PURE__ */ (0,
|
|
673
|
-
|
|
769
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Divider, {}),
|
|
770
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Stack, { gap: "sm", children: item.features.map((f, i) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_core19.Group, { gap: "sm", wrap: "nowrap", children: [
|
|
771
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
772
|
+
import_core19.ThemeIcon,
|
|
674
773
|
{
|
|
675
774
|
size: "xs",
|
|
676
775
|
radius: "xl",
|
|
677
776
|
color: f.included ? "primary" : "slate",
|
|
678
777
|
variant: f.included ? "filled" : "subtle",
|
|
679
|
-
children: f.included ? /* @__PURE__ */ (0,
|
|
778
|
+
children: f.included ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_icons_react3.IconCheck, { size: 12 }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_icons_react3.IconX, { size: 12 })
|
|
680
779
|
}
|
|
681
780
|
),
|
|
682
|
-
/* @__PURE__ */ (0,
|
|
781
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
683
782
|
SdText.Body,
|
|
684
783
|
{
|
|
685
784
|
fz: "sm",
|
|
@@ -688,7 +787,7 @@ function Default(_a) {
|
|
|
688
787
|
}
|
|
689
788
|
)
|
|
690
789
|
] }, i)) }),
|
|
691
|
-
/* @__PURE__ */ (0,
|
|
790
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SdButton.Outline, { fullWidth: true, onClick: () => onSelect == null ? void 0 : onSelect(item), children: (_a2 = item.ctaLabel) != null ? _a2 : "\uC2DC\uC791\uD558\uAE30" })
|
|
692
791
|
] })
|
|
693
792
|
})
|
|
694
793
|
);
|
|
@@ -696,40 +795,40 @@ function Default(_a) {
|
|
|
696
795
|
function Featured(_a) {
|
|
697
796
|
var _b = _a, { item, onSelect } = _b, cardProps = __objRest(_b, ["item", "onSelect"]);
|
|
698
797
|
var _a2;
|
|
699
|
-
return /* @__PURE__ */ (0,
|
|
700
|
-
|
|
798
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
799
|
+
import_core19.Card,
|
|
701
800
|
__spreadProps(__spreadValues({
|
|
702
801
|
bg: "primary.6",
|
|
703
802
|
style: { position: "relative" }
|
|
704
803
|
}, cardProps), {
|
|
705
|
-
children: /* @__PURE__ */ (0,
|
|
706
|
-
/* @__PURE__ */ (0,
|
|
707
|
-
/* @__PURE__ */ (0,
|
|
708
|
-
/* @__PURE__ */ (0,
|
|
709
|
-
item.isPopular && /* @__PURE__ */ (0,
|
|
804
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_core19.Stack, { gap: "xl", children: [
|
|
805
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_core19.Stack, { gap: "xs", children: [
|
|
806
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_core19.Group, { justify: "space-between", align: "flex-start", children: [
|
|
807
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SdTitle.Card, { c: "white", children: item.name }),
|
|
808
|
+
item.isPopular && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SdBadge.Default, { c: "white", style: { borderColor: "rgba(255,255,255,0.5)" }, children: "\uCD94\uCC9C" })
|
|
710
809
|
] }),
|
|
711
|
-
item.description && /* @__PURE__ */ (0,
|
|
810
|
+
item.description && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SdText.Body, { c: "primary.1", children: item.description })
|
|
712
811
|
] }),
|
|
713
|
-
/* @__PURE__ */ (0,
|
|
714
|
-
/* @__PURE__ */ (0,
|
|
715
|
-
item.period && /* @__PURE__ */ (0,
|
|
812
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_core19.Group, { gap: 4, align: "baseline", children: [
|
|
813
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SdTitle.Display, { c: "white", children: item.price }),
|
|
814
|
+
item.period && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(SdText.Body, { c: "primary.2", children: [
|
|
716
815
|
"/ ",
|
|
717
816
|
item.period
|
|
718
817
|
] })
|
|
719
818
|
] }),
|
|
720
|
-
/* @__PURE__ */ (0,
|
|
721
|
-
/* @__PURE__ */ (0,
|
|
722
|
-
/* @__PURE__ */ (0,
|
|
723
|
-
|
|
819
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Divider, { color: "primary.4" }),
|
|
820
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Stack, { gap: "sm", children: item.features.map((f, i) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_core19.Group, { gap: "sm", wrap: "nowrap", children: [
|
|
821
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
822
|
+
import_core19.ThemeIcon,
|
|
724
823
|
{
|
|
725
824
|
size: "xs",
|
|
726
825
|
radius: "xl",
|
|
727
826
|
color: "white",
|
|
728
827
|
variant: f.included ? "filled" : "subtle",
|
|
729
|
-
children: f.included ? /* @__PURE__ */ (0,
|
|
828
|
+
children: f.included ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_icons_react3.IconCheck, { size: 12, color: "var(--mantine-color-primary-6)" }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_icons_react3.IconX, { size: 12, color: "rgba(255,255,255,0.4)" })
|
|
730
829
|
}
|
|
731
830
|
),
|
|
732
|
-
/* @__PURE__ */ (0,
|
|
831
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
733
832
|
SdText.Body,
|
|
734
833
|
{
|
|
735
834
|
fz: "sm",
|
|
@@ -738,14 +837,14 @@ function Featured(_a) {
|
|
|
738
837
|
}
|
|
739
838
|
)
|
|
740
839
|
] }, i)) }),
|
|
741
|
-
/* @__PURE__ */ (0,
|
|
840
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SdButton.White, { fullWidth: true, onClick: () => onSelect == null ? void 0 : onSelect(item), children: (_a2 = item.ctaLabel) != null ? _a2 : "\uC2DC\uC791\uD558\uAE30" })
|
|
742
841
|
] })
|
|
743
842
|
})
|
|
744
843
|
);
|
|
745
844
|
}
|
|
746
845
|
function Grid2({ items, cols = { base: 1, sm: 2, md: 3 }, onSelect }) {
|
|
747
|
-
return /* @__PURE__ */ (0,
|
|
748
|
-
(item, i) => item.isPopular ? /* @__PURE__ */ (0,
|
|
846
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.SimpleGrid, { cols, spacing: "xl", style: { alignItems: "stretch" }, children: items.map(
|
|
847
|
+
(item, i) => item.isPopular ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Featured, { item, onSelect }, i) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Default, { item, onSelect }, i)
|
|
749
848
|
) });
|
|
750
849
|
}
|
|
751
850
|
var SdPricingCard = {
|
|
@@ -758,31 +857,31 @@ var SdPricingCard = {
|
|
|
758
857
|
};
|
|
759
858
|
|
|
760
859
|
// ui/molecule/Faq.tsx
|
|
761
|
-
var
|
|
762
|
-
var
|
|
860
|
+
var import_core20 = require("@mantine/core");
|
|
861
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
763
862
|
function Default2(_a) {
|
|
764
863
|
var _b = _a, { items } = _b, boxProps = __objRest(_b, ["items"]);
|
|
765
|
-
return /* @__PURE__ */ (0,
|
|
766
|
-
/* @__PURE__ */ (0,
|
|
767
|
-
/* @__PURE__ */ (0,
|
|
864
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Box, __spreadProps(__spreadValues({}, boxProps), { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Accordion, { variant: "separated", radius: "md", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_core20.Accordion.Item, { value: String(i), children: [
|
|
865
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Accordion.Control, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SdText.Strong, { fz: "sm", children: item.question }) }),
|
|
866
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Accordion.Panel, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SdText.Body, { fz: "sm", children: item.answer }) })
|
|
768
867
|
] }, i)) }) }));
|
|
769
868
|
}
|
|
770
869
|
function Filled(_a) {
|
|
771
870
|
var _b = _a, { items } = _b, boxProps = __objRest(_b, ["items"]);
|
|
772
|
-
return /* @__PURE__ */ (0,
|
|
773
|
-
/* @__PURE__ */ (0,
|
|
774
|
-
/* @__PURE__ */ (0,
|
|
871
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Box, __spreadProps(__spreadValues({}, boxProps), { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Accordion, { variant: "filled", radius: "md", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_core20.Accordion.Item, { value: String(i), children: [
|
|
872
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Accordion.Control, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SdText.Strong, { fz: "sm", children: item.question }) }),
|
|
873
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Accordion.Panel, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SdText.Body, { fz: "sm", children: item.answer }) })
|
|
775
874
|
] }, i)) }) }));
|
|
776
875
|
}
|
|
777
876
|
function WithHeader(_a) {
|
|
778
877
|
var _b = _a, { label, title, description, items } = _b, boxProps = __objRest(_b, ["label", "title", "description", "items"]);
|
|
779
|
-
return /* @__PURE__ */ (0,
|
|
780
|
-
/* @__PURE__ */ (0,
|
|
781
|
-
label && /* @__PURE__ */ (0,
|
|
782
|
-
/* @__PURE__ */ (0,
|
|
783
|
-
description && /* @__PURE__ */ (0,
|
|
878
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_core20.Stack, __spreadProps(__spreadValues({ gap: "xl" }, boxProps), { children: [
|
|
879
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_core20.Stack, { gap: "xs", children: [
|
|
880
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SdText.Eyebrow, { children: label }),
|
|
881
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SdTitle.Section, { children: title }),
|
|
882
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SdText.Body, { children: description })
|
|
784
883
|
] }),
|
|
785
|
-
/* @__PURE__ */ (0,
|
|
884
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Default2, { items })
|
|
786
885
|
] }));
|
|
787
886
|
}
|
|
788
887
|
var SdFaq = {
|
|
@@ -795,8 +894,8 @@ var SdFaq = {
|
|
|
795
894
|
};
|
|
796
895
|
|
|
797
896
|
// ui/molecule/Cta.tsx
|
|
798
|
-
var
|
|
799
|
-
var
|
|
897
|
+
var import_core21 = require("@mantine/core");
|
|
898
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
800
899
|
function Banner(_a) {
|
|
801
900
|
var _b = _a, {
|
|
802
901
|
label,
|
|
@@ -815,22 +914,22 @@ function Banner(_a) {
|
|
|
815
914
|
"onPrimary",
|
|
816
915
|
"onSecondary"
|
|
817
916
|
]);
|
|
818
|
-
return /* @__PURE__ */ (0,
|
|
819
|
-
|
|
917
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
918
|
+
import_core21.Box,
|
|
820
919
|
__spreadProps(__spreadValues({
|
|
821
920
|
bg: "primary.7",
|
|
822
921
|
py: { base: "xl", md: 80 },
|
|
823
922
|
px: { base: "md", md: "xl" }
|
|
824
923
|
}, boxProps), {
|
|
825
|
-
children: /* @__PURE__ */ (0,
|
|
826
|
-
/* @__PURE__ */ (0,
|
|
827
|
-
label && /* @__PURE__ */ (0,
|
|
828
|
-
/* @__PURE__ */ (0,
|
|
829
|
-
description && /* @__PURE__ */ (0,
|
|
924
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core21.Center, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_core21.Stack, { gap: "xl", align: "center", maw: 600, children: [
|
|
925
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_core21.Stack, { gap: "sm", align: "center", children: [
|
|
926
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SdText.Eyebrow, { c: "primary.3", children: label }),
|
|
927
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SdTitle.Section, { c: "white", ta: "center", children: title }),
|
|
928
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SdText.Body, { c: "primary.2", ta: "center", children: description })
|
|
830
929
|
] }),
|
|
831
|
-
/* @__PURE__ */ (0,
|
|
832
|
-
/* @__PURE__ */ (0,
|
|
833
|
-
secondaryLabel && /* @__PURE__ */ (0,
|
|
930
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_core21.Group, { gap: "sm", children: [
|
|
931
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SdButton.White, { size: "md", onClick: onPrimary, children: primaryLabel }),
|
|
932
|
+
secondaryLabel && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
834
933
|
SdButton.Ghost,
|
|
835
934
|
{
|
|
836
935
|
size: "md",
|
|
@@ -862,23 +961,23 @@ function Subtle(_a) {
|
|
|
862
961
|
"onPrimary",
|
|
863
962
|
"onSecondary"
|
|
864
963
|
]);
|
|
865
|
-
return /* @__PURE__ */ (0,
|
|
866
|
-
|
|
964
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
965
|
+
import_core21.Box,
|
|
867
966
|
__spreadProps(__spreadValues({
|
|
868
967
|
bg: "primary.0",
|
|
869
968
|
py: { base: "xl", md: 60 },
|
|
870
969
|
px: { base: "md", md: "xl" },
|
|
871
970
|
style: { borderRadius: "var(--mantine-radius-lg)" }
|
|
872
971
|
}, boxProps), {
|
|
873
|
-
children: /* @__PURE__ */ (0,
|
|
874
|
-
/* @__PURE__ */ (0,
|
|
875
|
-
label && /* @__PURE__ */ (0,
|
|
876
|
-
/* @__PURE__ */ (0,
|
|
877
|
-
description && /* @__PURE__ */ (0,
|
|
972
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core21.Center, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_core21.Stack, { gap: "lg", align: "center", maw: 560, children: [
|
|
973
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_core21.Stack, { gap: "sm", align: "center", children: [
|
|
974
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SdText.Eyebrow, { children: label }),
|
|
975
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SdTitle.Section, { ta: "center", children: title }),
|
|
976
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SdText.Body, { ta: "center", children: description })
|
|
878
977
|
] }),
|
|
879
|
-
/* @__PURE__ */ (0,
|
|
880
|
-
/* @__PURE__ */ (0,
|
|
881
|
-
secondaryLabel && /* @__PURE__ */ (0,
|
|
978
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_core21.Group, { gap: "sm", children: [
|
|
979
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SdButton.Primary, { size: "md", onClick: onPrimary, children: primaryLabel }),
|
|
980
|
+
secondaryLabel && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SdButton.Outline, { size: "md", onClick: onSecondary, children: secondaryLabel })
|
|
882
981
|
] })
|
|
883
982
|
] }) })
|
|
884
983
|
})
|
|
@@ -902,8 +1001,8 @@ function Inline(_a) {
|
|
|
902
1001
|
"onPrimary",
|
|
903
1002
|
"onSecondary"
|
|
904
1003
|
]);
|
|
905
|
-
return /* @__PURE__ */ (0,
|
|
906
|
-
|
|
1004
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1005
|
+
import_core21.Box,
|
|
907
1006
|
__spreadProps(__spreadValues({
|
|
908
1007
|
py: { base: "xl", md: 48 },
|
|
909
1008
|
px: { base: "md", md: "xl" },
|
|
@@ -912,15 +1011,15 @@ function Inline(_a) {
|
|
|
912
1011
|
borderBottom: "1px solid var(--mantine-color-slate-2)"
|
|
913
1012
|
}
|
|
914
1013
|
}, boxProps), {
|
|
915
|
-
children: /* @__PURE__ */ (0,
|
|
916
|
-
/* @__PURE__ */ (0,
|
|
917
|
-
label && /* @__PURE__ */ (0,
|
|
918
|
-
/* @__PURE__ */ (0,
|
|
919
|
-
description && /* @__PURE__ */ (0,
|
|
1014
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_core21.Group, { justify: "space-between", align: "center", gap: "xl", children: [
|
|
1015
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_core21.Stack, { gap: "xs", style: { flex: 1 }, children: [
|
|
1016
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SdText.Eyebrow, { children: label }),
|
|
1017
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SdTitle.Card, { children: title }),
|
|
1018
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SdText.Sub, { children: description })
|
|
920
1019
|
] }),
|
|
921
|
-
/* @__PURE__ */ (0,
|
|
922
|
-
/* @__PURE__ */ (0,
|
|
923
|
-
secondaryLabel && /* @__PURE__ */ (0,
|
|
1020
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_core21.Group, { gap: "sm", wrap: "nowrap", children: [
|
|
1021
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SdButton.Primary, { size: "md", onClick: onPrimary, children: primaryLabel }),
|
|
1022
|
+
secondaryLabel && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(SdButton.Outline, { size: "md", onClick: onSecondary, children: secondaryLabel })
|
|
924
1023
|
] })
|
|
925
1024
|
] })
|
|
926
1025
|
})
|
|
@@ -937,32 +1036,32 @@ var SdCta = {
|
|
|
937
1036
|
|
|
938
1037
|
// ui/molecule/Solution.tsx
|
|
939
1038
|
var import_react = require("react");
|
|
940
|
-
var
|
|
1039
|
+
var import_core23 = require("@mantine/core");
|
|
941
1040
|
var import_link3 = __toESM(require("next/link"));
|
|
942
1041
|
|
|
943
1042
|
// ui/molecule/SolutionCard.tsx
|
|
944
|
-
var
|
|
1043
|
+
var import_core22 = require("@mantine/core");
|
|
945
1044
|
var import_link2 = __toESM(require("next/link"));
|
|
946
|
-
var
|
|
1045
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
947
1046
|
function SolutionCardItem(_a) {
|
|
948
1047
|
var _b = _a, { item, onSelect } = _b, cardProps = __objRest(_b, ["item", "onSelect"]);
|
|
949
1048
|
var _a2, _b2;
|
|
950
|
-
return /* @__PURE__ */ (0,
|
|
1049
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Card, __spreadProps(__spreadValues({ withBorder: true }, cardProps), { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_core22.Stack, { gap: "md", children: [
|
|
951
1050
|
item.icon,
|
|
952
|
-
/* @__PURE__ */ (0,
|
|
953
|
-
/* @__PURE__ */ (0,
|
|
954
|
-
/* @__PURE__ */ (0,
|
|
955
|
-
item.href ? /* @__PURE__ */ (0,
|
|
1051
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SdBadge.Primary, { children: item.category }),
|
|
1052
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SdTitle.Card, { children: item.title }),
|
|
1053
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SdText.Body, { children: item.description }),
|
|
1054
|
+
item.href ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_core22.Button, { variant: "subtle", color: "slate", component: import_link2.default, href: item.href, children: [
|
|
956
1055
|
(_a2 = item.ctaLabel) != null ? _a2 : "\uC790\uC138\uD788 \uBCF4\uAE30",
|
|
957
1056
|
" \u2192"
|
|
958
|
-
] }) : /* @__PURE__ */ (0,
|
|
1057
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(SdButton.Ghost, { onClick: () => onSelect == null ? void 0 : onSelect(item), children: [
|
|
959
1058
|
(_b2 = item.ctaLabel) != null ? _b2 : "\uC790\uC138\uD788 \uBCF4\uAE30",
|
|
960
1059
|
" \u2192"
|
|
961
1060
|
] })
|
|
962
1061
|
] }) }));
|
|
963
1062
|
}
|
|
964
1063
|
function Grid3({ items, cols = { base: 1, sm: 2, md: 3 }, onSelect }) {
|
|
965
|
-
return /* @__PURE__ */ (0,
|
|
1064
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.SimpleGrid, { cols, spacing: "xl", children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SolutionCardItem, { item, onSelect }, i)) });
|
|
966
1065
|
}
|
|
967
1066
|
var SdSolutionCard = {
|
|
968
1067
|
/** 단일 compact 카드 */
|
|
@@ -972,29 +1071,29 @@ var SdSolutionCard = {
|
|
|
972
1071
|
};
|
|
973
1072
|
|
|
974
1073
|
// ui/molecule/Solution.tsx
|
|
975
|
-
var
|
|
1074
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
976
1075
|
function Filtered({ items, allLabel = "\uC804\uCCB4", cols, onSelect }) {
|
|
977
1076
|
const categories = ["all", ...Array.from(new Set(items.map((i) => i.category)))];
|
|
978
1077
|
const [active, setActive] = (0, import_react.useState)("all");
|
|
979
1078
|
const filtered = active === "all" ? items : items.filter((i) => i.category === active);
|
|
980
|
-
return /* @__PURE__ */ (0,
|
|
981
|
-
/* @__PURE__ */ (0,
|
|
982
|
-
/* @__PURE__ */ (0,
|
|
1079
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core23.Stack, { gap: "xl", children: [
|
|
1080
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SdTabs.Pills, { value: active, onChange: (v) => setActive(v != null ? v : "all"), children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SdTabs.Pills.List, { children: categories.map((cat) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SdTabs.Pills.Tab, { value: cat, children: cat === "all" ? allLabel : cat }, cat)) }) }),
|
|
1081
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SdSolutionCard.Grid, { items: filtered, cols, onSelect })
|
|
983
1082
|
] });
|
|
984
1083
|
}
|
|
985
1084
|
function List({ items, onSelect }) {
|
|
986
|
-
return /* @__PURE__ */ (0,
|
|
1085
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core23.Stack, { gap: 0, children: items.map((item, i) => {
|
|
987
1086
|
var _a, _b;
|
|
988
|
-
return /* @__PURE__ */ (0,
|
|
989
|
-
i > 0 && /* @__PURE__ */ (0,
|
|
990
|
-
/* @__PURE__ */ (0,
|
|
991
|
-
item.icon && /* @__PURE__ */ (0,
|
|
992
|
-
/* @__PURE__ */ (0,
|
|
993
|
-
/* @__PURE__ */ (0,
|
|
994
|
-
/* @__PURE__ */ (0,
|
|
995
|
-
/* @__PURE__ */ (0,
|
|
996
|
-
item.href ? /* @__PURE__ */ (0,
|
|
997
|
-
|
|
1087
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { children: [
|
|
1088
|
+
i > 0 && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core23.Divider, {}),
|
|
1089
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core23.Group, { align: "flex-start", py: "lg", gap: "lg", children: [
|
|
1090
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core23.ThemeIcon, { variant: "light", color: "primary", size: "xl", radius: "md", children: item.icon }),
|
|
1091
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core23.Stack, { gap: "xs", style: { flex: 1 }, children: [
|
|
1092
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SdBadge.Primary, { children: item.category }),
|
|
1093
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SdTitle.Card, { children: item.title }),
|
|
1094
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SdText.Body, { children: item.description }),
|
|
1095
|
+
item.href ? /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1096
|
+
import_core23.Button,
|
|
998
1097
|
{
|
|
999
1098
|
variant: "subtle",
|
|
1000
1099
|
color: "slate",
|
|
@@ -1006,7 +1105,7 @@ function List({ items, onSelect }) {
|
|
|
1006
1105
|
" \u2192"
|
|
1007
1106
|
]
|
|
1008
1107
|
}
|
|
1009
|
-
) : /* @__PURE__ */ (0,
|
|
1108
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1010
1109
|
SdButton.Ghost,
|
|
1011
1110
|
{
|
|
1012
1111
|
onClick: () => onSelect == null ? void 0 : onSelect(item),
|
|
@@ -1030,8 +1129,8 @@ var SdSolution = {
|
|
|
1030
1129
|
};
|
|
1031
1130
|
|
|
1032
1131
|
// ui/molecule/Clients.tsx
|
|
1033
|
-
var
|
|
1034
|
-
var
|
|
1132
|
+
var import_core24 = require("@mantine/core");
|
|
1133
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1035
1134
|
var grayStyle = {
|
|
1036
1135
|
filter: "grayscale(1) opacity(0.5)",
|
|
1037
1136
|
transition: "filter 0.25s"
|
|
@@ -1040,7 +1139,7 @@ var colorStyle = {
|
|
|
1040
1139
|
filter: "grayscale(0) opacity(1)"
|
|
1041
1140
|
};
|
|
1042
1141
|
function LogoImage({ client, height }) {
|
|
1043
|
-
return /* @__PURE__ */ (0,
|
|
1142
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core24.Tooltip, { label: client.name, withArrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core24.Anchor, { href: client.url, target: "_blank", rel: "noopener noreferrer", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1044
1143
|
"img",
|
|
1045
1144
|
{
|
|
1046
1145
|
src: client.logo,
|
|
@@ -1056,15 +1155,15 @@ function Grid4({
|
|
|
1056
1155
|
cols = { base: 2, sm: 3, md: 4, lg: 6 },
|
|
1057
1156
|
logoHeight = 40
|
|
1058
1157
|
}) {
|
|
1059
|
-
return /* @__PURE__ */ (0,
|
|
1158
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core24.SimpleGrid, { cols, spacing: "xl", children: items.map((client, i) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core24.Box, { style: { display: "flex", alignItems: "center", justifyContent: "center", padding: "12px 8px" }, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(LogoImage, { client, height: logoHeight }) }, i)) });
|
|
1060
1159
|
}
|
|
1061
1160
|
var KEYFRAME = `@keyframes sd-clients-marquee { from { transform: translateX(0) } to { transform: translateX(-50%) } }`;
|
|
1062
1161
|
function Marquee({ items, speed = 40, logoHeight = 36, gap = 64 }) {
|
|
1063
1162
|
const doubled = [...items, ...items];
|
|
1064
|
-
return /* @__PURE__ */ (0,
|
|
1065
|
-
/* @__PURE__ */ (0,
|
|
1066
|
-
/* @__PURE__ */ (0,
|
|
1067
|
-
|
|
1163
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_core24.Box, { style: { overflow: "hidden" }, children: [
|
|
1164
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("style", { children: KEYFRAME }),
|
|
1165
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1166
|
+
import_core24.Box,
|
|
1068
1167
|
{
|
|
1069
1168
|
style: {
|
|
1070
1169
|
display: "flex",
|
|
@@ -1079,7 +1178,7 @@ function Marquee({ items, speed = 40, logoHeight = 36, gap = 64 }) {
|
|
|
1079
1178
|
onMouseLeave: (e) => {
|
|
1080
1179
|
e.currentTarget.style.animationPlayState = "running";
|
|
1081
1180
|
},
|
|
1082
|
-
children: doubled.map((client, i) => /* @__PURE__ */ (0,
|
|
1181
|
+
children: doubled.map((client, i) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(LogoImage, { client, height: logoHeight }, i))
|
|
1083
1182
|
}
|
|
1084
1183
|
)
|
|
1085
1184
|
] });
|
|
@@ -1090,14 +1189,16 @@ var SdClients = {
|
|
|
1090
1189
|
/** 무한 수평 스크롤 띠 — 호버 시 일시정지 */
|
|
1091
1190
|
Marquee
|
|
1092
1191
|
};
|
|
1192
|
+
var SdClientsGrid = Grid4;
|
|
1193
|
+
var SdClientsMarquee = Marquee;
|
|
1093
1194
|
|
|
1094
1195
|
// ui/molecule/Map.tsx
|
|
1095
1196
|
var import_react2 = require("react");
|
|
1096
|
-
var
|
|
1097
|
-
var
|
|
1197
|
+
var import_core25 = require("@mantine/core");
|
|
1198
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1098
1199
|
function MapFrame({ address, height }) {
|
|
1099
|
-
return /* @__PURE__ */ (0,
|
|
1100
|
-
/* @__PURE__ */ (0,
|
|
1200
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_core25.Stack, { gap: "xs", children: [
|
|
1201
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core25.Box, { style: { borderRadius: "var(--mantine-radius-md)", overflow: "hidden", height }, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1101
1202
|
"iframe",
|
|
1102
1203
|
{
|
|
1103
1204
|
src: address.embbedUrl,
|
|
@@ -1110,7 +1211,7 @@ function MapFrame({ address, height }) {
|
|
|
1110
1211
|
title: address.label
|
|
1111
1212
|
}
|
|
1112
1213
|
) }),
|
|
1113
|
-
/* @__PURE__ */ (0,
|
|
1214
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(SdText.Sub, { children: [
|
|
1114
1215
|
"[",
|
|
1115
1216
|
address.label,
|
|
1116
1217
|
"] ",
|
|
@@ -1121,18 +1222,18 @@ function MapFrame({ address, height }) {
|
|
|
1121
1222
|
function Single(_a) {
|
|
1122
1223
|
var _b = _a, { address, height = 400 } = _b, boxProps = __objRest(_b, ["address", "height"]);
|
|
1123
1224
|
if (!address.embbedUrl) return null;
|
|
1124
|
-
return /* @__PURE__ */ (0,
|
|
1225
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_core25.Box, __spreadProps(__spreadValues({}, boxProps), { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(MapFrame, { address, height }) }));
|
|
1125
1226
|
}
|
|
1126
1227
|
function Tabs2({ addresses, height = 400 }) {
|
|
1127
1228
|
var _a, _b, _c;
|
|
1128
1229
|
const mapped = addresses.filter((a) => a.embbedUrl);
|
|
1129
1230
|
const [active, setActive] = (0, import_react2.useState)((_b = (_a = mapped[0]) == null ? void 0 : _a.label) != null ? _b : "");
|
|
1130
1231
|
if (mapped.length === 0) return null;
|
|
1131
|
-
if (mapped.length === 1) return /* @__PURE__ */ (0,
|
|
1232
|
+
if (mapped.length === 1) return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(MapFrame, { address: mapped[0], height });
|
|
1132
1233
|
const current = (_c = mapped.find((a) => a.label === active)) != null ? _c : mapped[0];
|
|
1133
|
-
return /* @__PURE__ */ (0,
|
|
1134
|
-
/* @__PURE__ */ (0,
|
|
1135
|
-
/* @__PURE__ */ (0,
|
|
1234
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_core25.Stack, { gap: "md", children: [
|
|
1235
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SdTabs.Pills, { value: active, onChange: (v) => setActive(v != null ? v : mapped[0].label), children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SdTabs.Pills.List, { children: mapped.map((addr) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SdTabs.Pills.Tab, { value: addr.label, children: addr.label }, addr.label)) }) }),
|
|
1236
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(MapFrame, { address: current, height })
|
|
1136
1237
|
] });
|
|
1137
1238
|
}
|
|
1138
1239
|
var SdMap = {
|
|
@@ -1141,16 +1242,30 @@ var SdMap = {
|
|
|
1141
1242
|
/** 여러 주소 탭 전환 지도 — embbedUrl 있는 항목만 표시 */
|
|
1142
1243
|
Tabs: Tabs2
|
|
1143
1244
|
};
|
|
1245
|
+
var SdMapSingle = Single;
|
|
1246
|
+
var SdMapTabs = Tabs2;
|
|
1144
1247
|
|
|
1145
1248
|
// ui/organism/HeroCarousel.tsx
|
|
1146
1249
|
var import_carousel = require("@mantine/carousel");
|
|
1147
|
-
var
|
|
1148
|
-
var
|
|
1250
|
+
var import_core26 = require("@mantine/core");
|
|
1251
|
+
var import_icons_react4 = require("@tabler/icons-react");
|
|
1252
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1253
|
+
var variantMap = {
|
|
1254
|
+
primary: SdButton.Primary,
|
|
1255
|
+
secondary: SdButton.Secondary,
|
|
1256
|
+
outline: SdButton.Outline,
|
|
1257
|
+
white: SdButton.White
|
|
1258
|
+
};
|
|
1259
|
+
function CtaButton({ cta }) {
|
|
1260
|
+
var _a;
|
|
1261
|
+
const Button3 = variantMap[(_a = cta.variant) != null ? _a : "primary"];
|
|
1262
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core26.Anchor, { href: cta.href, underline: "never", children: cta.icon ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Button3, { size: "md", rightSection: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_icons_react4.IconArrowNarrowRight, {}), children: cta.label }) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Button3, { size: "md", children: cta.label }) });
|
|
1263
|
+
}
|
|
1149
1264
|
function HeroCarousel({ slides, children }) {
|
|
1150
|
-
if (children) return /* @__PURE__ */ (0,
|
|
1265
|
+
if (children) return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_jsx_runtime27.Fragment, { children });
|
|
1151
1266
|
const filterdSlides = filterAndSort(slides);
|
|
1152
|
-
return /* @__PURE__ */ (0,
|
|
1153
|
-
|
|
1267
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_carousel.Carousel, { withIndicators: true, height: "60svh", children: filterdSlides.map((slide, i) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_carousel.Carousel.Slide, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1268
|
+
import_core26.Box,
|
|
1154
1269
|
{
|
|
1155
1270
|
style: {
|
|
1156
1271
|
height: "100%",
|
|
@@ -1161,150 +1276,147 @@ function HeroCarousel({ slides, children }) {
|
|
|
1161
1276
|
alignItems: "center",
|
|
1162
1277
|
justifyContent: "center"
|
|
1163
1278
|
},
|
|
1164
|
-
children: /* @__PURE__ */ (0,
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1279
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_core26.Stack, { align: "center", style: { textAlign: "center", maxWidth: 780 }, px: "xl", children: [
|
|
1280
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1281
|
+
SdTextBox.Hero,
|
|
1282
|
+
{
|
|
1283
|
+
title: slide.title,
|
|
1284
|
+
description: slide.description,
|
|
1285
|
+
ta: "center",
|
|
1286
|
+
align: "center"
|
|
1287
|
+
}
|
|
1288
|
+
),
|
|
1289
|
+
slide.ctas && slide.ctas.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core26.Group, { gap: "sm", mt: "md", children: slide.ctas.map((cta, i2) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CtaButton, { cta }, cta.href)) })
|
|
1290
|
+
] })
|
|
1173
1291
|
}
|
|
1174
1292
|
) }, i)) });
|
|
1175
1293
|
}
|
|
1176
1294
|
|
|
1177
1295
|
// ui/organism/Header.tsx
|
|
1178
|
-
var
|
|
1296
|
+
var import_core27 = require("@mantine/core");
|
|
1179
1297
|
var import_hooks = require("@mantine/hooks");
|
|
1180
|
-
var
|
|
1298
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
1181
1299
|
function SdHeader({ navItems, loginFlag, children }) {
|
|
1182
1300
|
const [opened, { toggle, close }] = (0, import_hooks.useDisclosure)();
|
|
1183
1301
|
const visibleTopItems = navItems.filter((item) => item.isShow && !item.parentId).sort((a, b) => a.order - b.order);
|
|
1184
|
-
return /* @__PURE__ */ (0,
|
|
1185
|
-
/* @__PURE__ */ (0,
|
|
1186
|
-
/* @__PURE__ */ (0,
|
|
1187
|
-
/* @__PURE__ */ (0,
|
|
1188
|
-
/* @__PURE__ */ (0,
|
|
1189
|
-
loginFlag && /* @__PURE__ */ (0,
|
|
1190
|
-
/* @__PURE__ */ (0,
|
|
1191
|
-
/* @__PURE__ */ (0,
|
|
1302
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
|
|
1303
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SdContainer, { h: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core27.Group, { justify: "space-between", h: "100%", children: [
|
|
1304
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Logo, {}),
|
|
1305
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Group, { gap: "xl", visibleFrom: "sm", children: visibleTopItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Anchor, { href: item.href, c: "slate.7", fw: 500, underline: "never", fz: 15, children: item.label }, item.id)) }),
|
|
1306
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Burger, { hiddenFrom: "sm", opened, onClick: toggle }),
|
|
1307
|
+
loginFlag && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core27.Group, { gap: "sm", visibleFrom: "sm", children: [
|
|
1308
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SdButton.Ghost, { size: "sm", children: "\uB85C\uADF8\uC778" }),
|
|
1309
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SdButton.Primary, { size: "sm", children: "\uBB34\uB8CC \uC2DC\uC791" })
|
|
1192
1310
|
] }),
|
|
1193
1311
|
children
|
|
1194
1312
|
] }) }),
|
|
1195
|
-
/* @__PURE__ */ (0,
|
|
1196
|
-
visibleTopItems.map((item) => /* @__PURE__ */ (0,
|
|
1197
|
-
loginFlag && /* @__PURE__ */ (0,
|
|
1198
|
-
/* @__PURE__ */ (0,
|
|
1199
|
-
/* @__PURE__ */ (0,
|
|
1313
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Drawer, { opened, onClose: close, hiddenFrom: "sm", size: "xs", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core27.Stack, { children: [
|
|
1314
|
+
visibleTopItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Anchor, { href: item.href, c: "slate.7", fw: 500, underline: "never", fz: 16, onClick: close, children: item.label }, item.id)),
|
|
1315
|
+
loginFlag && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core27.Stack, { gap: "xs", mt: "md", children: [
|
|
1316
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SdButton.Ghost, { size: "sm", children: "\uB85C\uADF8\uC778" }),
|
|
1317
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SdButton.Primary, { size: "sm", children: "\uBB34\uB8CC \uC2DC\uC791" })
|
|
1200
1318
|
] })
|
|
1201
1319
|
] }) })
|
|
1202
1320
|
] });
|
|
1203
1321
|
}
|
|
1204
1322
|
|
|
1205
|
-
// ui/organism/Footer
|
|
1206
|
-
var
|
|
1207
|
-
|
|
1208
|
-
// ui/organism/Footer/FooterBrand.tsx
|
|
1209
|
-
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
1210
|
-
function FooterBrand() {
|
|
1211
|
-
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Logo, { size: "xs" });
|
|
1212
|
-
}
|
|
1213
|
-
|
|
1214
|
-
// ui/organism/Footer/FooterContact.tsx
|
|
1215
|
-
var import_core27 = require("@mantine/core");
|
|
1323
|
+
// ui/organism/Footer.tsx
|
|
1324
|
+
var import_core28 = require("@mantine/core");
|
|
1216
1325
|
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
1217
|
-
function
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1326
|
+
function FooterNavColumns({ items }) {
|
|
1327
|
+
const topLevel = items.filter((item) => !item.parentId);
|
|
1328
|
+
const getChildren = (parentId) => items.filter((item) => item.parentId === parentId);
|
|
1329
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_jsx_runtime29.Fragment, { children: topLevel.map((group) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Grid.Col, { span: { base: 6, sm: 4, md: "auto" }, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core28.Stack, { gap: "sm", children: [
|
|
1330
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SdText.Strong, { fz: "sm", children: group.label }),
|
|
1331
|
+
getChildren(group.id).map((link) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
1332
|
+
import_core28.Anchor,
|
|
1333
|
+
{
|
|
1334
|
+
href: link.href,
|
|
1335
|
+
fz: "sm",
|
|
1336
|
+
c: "slate.6",
|
|
1337
|
+
underline: "never",
|
|
1338
|
+
style: { transition: "color 0.15s" },
|
|
1339
|
+
onMouseEnter: (e) => {
|
|
1340
|
+
e.currentTarget.style.color = "var(--mantine-color-primary-6)";
|
|
1341
|
+
},
|
|
1342
|
+
onMouseLeave: (e) => {
|
|
1343
|
+
e.currentTarget.style.color = "";
|
|
1344
|
+
},
|
|
1345
|
+
children: link.label
|
|
1346
|
+
},
|
|
1347
|
+
link.id
|
|
1348
|
+
))
|
|
1349
|
+
] }) }, group.id)) });
|
|
1350
|
+
}
|
|
1351
|
+
function FooterCompanyInfo({ company }) {
|
|
1352
|
+
const sortedAddresses = [...company.addresses].sort((a, b) => a.order - b.order);
|
|
1353
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core28.Group, { gap: "xs", wrap: "wrap", children: [
|
|
1354
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SdText.Sub, { children: company.name }),
|
|
1355
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SdText.Sub, { c: "slate.4", children: "|" }),
|
|
1356
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(SdText.Sub, { children: [
|
|
1221
1357
|
"\uC0AC\uC5C5\uC790\uB4F1\uB85D\uBC88\uD638 ",
|
|
1222
1358
|
company.registrationNumber
|
|
1223
1359
|
] }),
|
|
1224
|
-
|
|
1225
|
-
|
|
1360
|
+
sortedAddresses.map((addr) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core28.Group, { gap: "xs", wrap: "nowrap", children: [
|
|
1361
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SdText.Sub, { c: "slate.4", children: "|" }),
|
|
1362
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SdText.Sub, { children: addr.address })
|
|
1363
|
+
] }, addr.label)),
|
|
1364
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SdText.Sub, { c: "slate.4", children: "|" }),
|
|
1365
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core28.Anchor, { href: `tel:${company.tel}`, fz: "xs", c: "slate.5", underline: "never", children: [
|
|
1226
1366
|
"Tel ",
|
|
1227
1367
|
company.tel
|
|
1228
1368
|
] }),
|
|
1229
|
-
company.fax && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
1230
|
-
"
|
|
1231
|
-
|
|
1369
|
+
company.fax && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
|
|
1370
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SdText.Sub, { c: "slate.4", children: "|" }),
|
|
1371
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(SdText.Sub, { children: [
|
|
1372
|
+
"Fax ",
|
|
1373
|
+
company.fax
|
|
1374
|
+
] })
|
|
1232
1375
|
] }),
|
|
1233
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
1376
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SdText.Sub, { c: "slate.4", children: "|" }),
|
|
1377
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Anchor, { href: `mailto:${company.email}`, fz: "xs", c: "slate.5", underline: "never", children: company.email })
|
|
1234
1378
|
] });
|
|
1235
1379
|
}
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
var import_core28 = require("@mantine/core");
|
|
1239
|
-
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
1240
|
-
function FooterNav({ items }) {
|
|
1241
|
-
const topLevel = items.filter((item) => !item.parentId);
|
|
1242
|
-
const getChildren = (parentId) => items.filter((item) => item.parentId === parentId);
|
|
1243
|
-
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core28.Group, { gap: 48, align: "flex-start", wrap: "wrap", children: topLevel.map((item) => {
|
|
1244
|
-
const children = getChildren(item.id);
|
|
1245
|
-
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_core28.Stack, { gap: "sm", children: [
|
|
1246
|
-
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(SdText.Eyebrow, { c: "slate.4", children: item.label }),
|
|
1247
|
-
children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1248
|
-
import_core28.Anchor,
|
|
1249
|
-
{
|
|
1250
|
-
href: child.href,
|
|
1251
|
-
fz: "xs",
|
|
1252
|
-
c: "slate.5",
|
|
1253
|
-
underline: "never",
|
|
1254
|
-
style: { transition: "color 0.15s" },
|
|
1255
|
-
onMouseEnter: (e) => {
|
|
1256
|
-
e.currentTarget.style.color = "var(--mantine-color-slate-1)";
|
|
1257
|
-
},
|
|
1258
|
-
onMouseLeave: (e) => {
|
|
1259
|
-
e.currentTarget.style.color = "";
|
|
1260
|
-
},
|
|
1261
|
-
children: child.label
|
|
1262
|
-
},
|
|
1263
|
-
child.id
|
|
1264
|
-
))
|
|
1265
|
-
] }, item.id);
|
|
1266
|
-
}) });
|
|
1267
|
-
}
|
|
1268
|
-
|
|
1269
|
-
// ui/organism/Footer/index.tsx
|
|
1270
|
-
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
1271
|
-
function SdFooter({ company, utilityLinks, policyLinks }) {
|
|
1272
|
-
const visibleUtility = filterAndSort(utilityLinks);
|
|
1380
|
+
function SdFooter({ company, navItems, policyLinks, description }) {
|
|
1381
|
+
const visibleNav = filterAndSort(navItems);
|
|
1273
1382
|
const visiblePolicy = filterAndSort(policyLinks);
|
|
1274
|
-
return /* @__PURE__ */ (0,
|
|
1275
|
-
/* @__PURE__ */ (0,
|
|
1276
|
-
/* @__PURE__ */ (0,
|
|
1277
|
-
|
|
1383
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Box, { component: "footer", py: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(SdContainer, { children: [
|
|
1384
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core28.Grid, { style: { "--grid-gutter": "48px" }, children: [
|
|
1385
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Grid.Col, { span: { base: 12, md: 4 }, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core28.Stack, { gap: "md", children: [
|
|
1386
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Logo, { size: "sm" }),
|
|
1387
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SdText.Body, { c: "slate.4", fz: "sm", children: description })
|
|
1388
|
+
] }) }),
|
|
1389
|
+
visibleNav.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Grid.Col, { span: { base: 12, md: 8 }, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Grid, { style: { "--grid-gutter": "24px" }, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(FooterNavColumns, { items: visibleNav }) }) })
|
|
1278
1390
|
] }),
|
|
1279
|
-
/* @__PURE__ */ (0,
|
|
1280
|
-
/* @__PURE__ */ (0,
|
|
1281
|
-
/* @__PURE__ */ (0,
|
|
1282
|
-
|
|
1283
|
-
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(SdText.Sub, { c: "slate.5", children: [
|
|
1391
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Divider, {}),
|
|
1392
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(FooterCompanyInfo, { company }),
|
|
1393
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core28.Group, { justify: "space-between", wrap: "wrap", gap: "xs", mt: "md", children: [
|
|
1394
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(SdText.Sub, { c: "slate.5", children: [
|
|
1284
1395
|
"\xA9 ",
|
|
1285
1396
|
company.copyrightYear,
|
|
1286
1397
|
" ",
|
|
1287
1398
|
company.name,
|
|
1288
1399
|
". All rights reserved."
|
|
1289
1400
|
] }),
|
|
1290
|
-
visiblePolicy.length > 0 && /* @__PURE__ */ (0,
|
|
1291
|
-
|
|
1401
|
+
visiblePolicy.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Group, { gap: "lg", children: visiblePolicy.map((item) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
1402
|
+
import_core28.Anchor,
|
|
1292
1403
|
{
|
|
1293
1404
|
href: item.href,
|
|
1294
1405
|
fz: "xs",
|
|
1295
|
-
|
|
1406
|
+
fw: item.highlight ? 700 : 400,
|
|
1407
|
+
c: item.highlight ? "white" : "slate.5",
|
|
1296
1408
|
underline: "never",
|
|
1297
1409
|
children: item.label
|
|
1298
1410
|
},
|
|
1299
1411
|
item.id
|
|
1300
1412
|
)) })
|
|
1301
1413
|
] })
|
|
1302
|
-
] });
|
|
1414
|
+
] }) });
|
|
1303
1415
|
}
|
|
1304
1416
|
|
|
1305
1417
|
// ui/organism/FeatureSection.tsx
|
|
1306
|
-
var
|
|
1307
|
-
var
|
|
1418
|
+
var import_core29 = require("@mantine/core");
|
|
1419
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
1308
1420
|
function SdFeatureSection(_a) {
|
|
1309
1421
|
var _b = _a, {
|
|
1310
1422
|
label,
|
|
@@ -1321,8 +1433,8 @@ function SdFeatureSection(_a) {
|
|
|
1321
1433
|
"cols",
|
|
1322
1434
|
"py"
|
|
1323
1435
|
]);
|
|
1324
|
-
return /* @__PURE__ */ (0,
|
|
1325
|
-
/* @__PURE__ */ (0,
|
|
1436
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(SdContainer, __spreadProps(__spreadValues({ py }, boxProps), { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_core29.Stack, { gap: "xl", children: [
|
|
1437
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1326
1438
|
SdTextBox.Section,
|
|
1327
1439
|
{
|
|
1328
1440
|
label,
|
|
@@ -1333,13 +1445,13 @@ function SdFeatureSection(_a) {
|
|
|
1333
1445
|
align: "center"
|
|
1334
1446
|
}
|
|
1335
1447
|
),
|
|
1336
|
-
/* @__PURE__ */ (0,
|
|
1448
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(SdFeatures, { items, cols })
|
|
1337
1449
|
] }) }));
|
|
1338
1450
|
}
|
|
1339
1451
|
|
|
1340
1452
|
// ui/organism/TimelineSection.tsx
|
|
1341
|
-
var
|
|
1342
|
-
var
|
|
1453
|
+
var import_core30 = require("@mantine/core");
|
|
1454
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
1343
1455
|
function SdTimelineSection(_a) {
|
|
1344
1456
|
var _b = _a, {
|
|
1345
1457
|
label,
|
|
@@ -1354,8 +1466,8 @@ function SdTimelineSection(_a) {
|
|
|
1354
1466
|
"items",
|
|
1355
1467
|
"py"
|
|
1356
1468
|
]);
|
|
1357
|
-
return /* @__PURE__ */ (0,
|
|
1358
|
-
/* @__PURE__ */ (0,
|
|
1469
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core30.Center, { children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_core30.Stack, __spreadProps(__spreadValues({ py, gap: "md" }, boxProps), { children: [
|
|
1470
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
1359
1471
|
SdTextBox.Section,
|
|
1360
1472
|
{
|
|
1361
1473
|
label,
|
|
@@ -1363,13 +1475,13 @@ function SdTimelineSection(_a) {
|
|
|
1363
1475
|
description
|
|
1364
1476
|
}
|
|
1365
1477
|
),
|
|
1366
|
-
/* @__PURE__ */ (0,
|
|
1478
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core30.Center, { children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SdTimeline, { items }) })
|
|
1367
1479
|
] })) });
|
|
1368
1480
|
}
|
|
1369
1481
|
|
|
1370
1482
|
// ui/organism/StepsSection.tsx
|
|
1371
|
-
var
|
|
1372
|
-
var
|
|
1483
|
+
var import_core31 = require("@mantine/core");
|
|
1484
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
1373
1485
|
function SdStepsSection(_a) {
|
|
1374
1486
|
var _b = _a, {
|
|
1375
1487
|
label,
|
|
@@ -1384,18 +1496,18 @@ function SdStepsSection(_a) {
|
|
|
1384
1496
|
"items",
|
|
1385
1497
|
"py"
|
|
1386
1498
|
]);
|
|
1387
|
-
return /* @__PURE__ */ (0,
|
|
1388
|
-
(label || title || description) && /* @__PURE__ */ (0,
|
|
1389
|
-
/* @__PURE__ */ (0,
|
|
1499
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(SdContainer, __spreadProps(__spreadValues({ py }, boxProps), { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core31.Stack, { gap: "xl", children: [
|
|
1500
|
+
(label || title || description) && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(SdTextBox.Section, { label, title, description }),
|
|
1501
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(SdSteps.Bubble, { items })
|
|
1390
1502
|
] }) }));
|
|
1391
1503
|
}
|
|
1392
1504
|
|
|
1393
1505
|
// ui/organism/ErrorView.tsx
|
|
1394
|
-
var
|
|
1395
|
-
var
|
|
1506
|
+
var import_core32 = require("@mantine/core");
|
|
1507
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
1396
1508
|
function StatusCode({ code }) {
|
|
1397
|
-
return /* @__PURE__ */ (0,
|
|
1398
|
-
|
|
1509
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
1510
|
+
import_core32.Text,
|
|
1399
1511
|
{
|
|
1400
1512
|
fz: 160,
|
|
1401
1513
|
fw: 900,
|
|
@@ -1408,19 +1520,15 @@ function StatusCode({ code }) {
|
|
|
1408
1520
|
);
|
|
1409
1521
|
}
|
|
1410
1522
|
function Page({ error, onReset, onHome }) {
|
|
1411
|
-
return /* @__PURE__ */ (0,
|
|
1412
|
-
/* @__PURE__ */ (0,
|
|
1413
|
-
/* @__PURE__ */ (0,
|
|
1414
|
-
/* @__PURE__ */ (0,
|
|
1415
|
-
/* @__PURE__ */ (0,
|
|
1416
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(SdText.Sub, { children: [
|
|
1417
|
-
"\uC624\uB958 \uCF54\uB4DC: ",
|
|
1418
|
-
error.digest
|
|
1419
|
-
] })
|
|
1523
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core32.Center, { mih: "60vh", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SdContainer, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core32.Stack, { align: "center", gap: "lg", ta: "center", children: [
|
|
1524
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(StatusCode, { code: "500" }),
|
|
1525
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core32.Stack, { gap: "sm", align: "center", children: [
|
|
1526
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SdTitle.Section, { children: "\uC11C\uBC84\uC5D0\uC11C \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4" }),
|
|
1527
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SdText.Body, { maw: 480, children: "\uC608\uAE30\uCE58 \uC54A\uC740 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. \uC7A0\uC2DC \uD6C4 \uB2E4\uC2DC \uC2DC\uB3C4\uD574 \uC8FC\uC138\uC694." })
|
|
1420
1528
|
] }),
|
|
1421
|
-
/* @__PURE__ */ (0,
|
|
1422
|
-
/* @__PURE__ */ (0,
|
|
1423
|
-
onHome && /* @__PURE__ */ (0,
|
|
1529
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core32.Group, { gap: "sm", justify: "center", children: [
|
|
1530
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SdButton.Primary, { onClick: onReset, children: "\uB2E4\uC2DC \uC2DC\uB3C4" }),
|
|
1531
|
+
onHome && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SdButton.Ghost, { onClick: onHome, children: "\uD648\uC73C\uB85C" })
|
|
1424
1532
|
] })
|
|
1425
1533
|
] }) }) });
|
|
1426
1534
|
}
|
|
@@ -1432,15 +1540,15 @@ function NotFound({
|
|
|
1432
1540
|
},
|
|
1433
1541
|
onBack = () => window.history.back()
|
|
1434
1542
|
}) {
|
|
1435
|
-
return /* @__PURE__ */ (0,
|
|
1436
|
-
/* @__PURE__ */ (0,
|
|
1437
|
-
/* @__PURE__ */ (0,
|
|
1438
|
-
/* @__PURE__ */ (0,
|
|
1439
|
-
/* @__PURE__ */ (0,
|
|
1543
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core32.Center, { mih: "60vh", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SdContainer, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core32.Stack, { align: "center", gap: "lg", ta: "center", children: [
|
|
1544
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(StatusCode, { code: "404" }),
|
|
1545
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core32.Stack, { gap: "sm", align: "center", children: [
|
|
1546
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SdTitle.Section, { children: title }),
|
|
1547
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SdText.Body, { maw: 480, children: description })
|
|
1440
1548
|
] }),
|
|
1441
|
-
/* @__PURE__ */ (0,
|
|
1442
|
-
onHome && /* @__PURE__ */ (0,
|
|
1443
|
-
onBack && /* @__PURE__ */ (0,
|
|
1549
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core32.Group, { gap: "sm", justify: "center", children: [
|
|
1550
|
+
onHome && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SdButton.Primary, { onClick: onHome, children: "\uD648\uC73C\uB85C" }),
|
|
1551
|
+
onBack && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SdButton.Ghost, { onClick: onBack, children: "\uB4A4\uB85C \uAC00\uAE30" })
|
|
1444
1552
|
] })
|
|
1445
1553
|
] }) }) });
|
|
1446
1554
|
}
|
|
@@ -1452,28 +1560,28 @@ var SdErrorView = {
|
|
|
1452
1560
|
};
|
|
1453
1561
|
|
|
1454
1562
|
// ui/template/MainLayout.tsx
|
|
1455
|
-
var
|
|
1456
|
-
var
|
|
1563
|
+
var import_core33 = require("@mantine/core");
|
|
1564
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
1457
1565
|
function MainLayout({ children, navItems, companyInfo }) {
|
|
1458
|
-
return /* @__PURE__ */ (0,
|
|
1459
|
-
/* @__PURE__ */ (0,
|
|
1460
|
-
/* @__PURE__ */ (0,
|
|
1461
|
-
/* @__PURE__ */ (0,
|
|
1566
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core33.AppShell, { header: { height: 60 }, children: [
|
|
1567
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core33.AppShell.Header, { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SdHeader, { navItems }) }),
|
|
1568
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core33.AppShell.Main, { children }),
|
|
1569
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SdFooter, { company: companyInfo })
|
|
1462
1570
|
] });
|
|
1463
1571
|
}
|
|
1464
1572
|
|
|
1465
1573
|
// ui/template/PageLayout.tsx
|
|
1466
|
-
var
|
|
1467
|
-
var
|
|
1574
|
+
var import_core34 = require("@mantine/core");
|
|
1575
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
1468
1576
|
function Content({ children }) {
|
|
1469
|
-
return /* @__PURE__ */ (0,
|
|
1577
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(SdContainer, { py: "xl", children });
|
|
1470
1578
|
}
|
|
1471
1579
|
function LayoutGap() {
|
|
1472
|
-
return /* @__PURE__ */ (0,
|
|
1580
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core34.Space, { h: 48 });
|
|
1473
1581
|
}
|
|
1474
1582
|
function Minimal({ label, title, description, children }) {
|
|
1475
|
-
return /* @__PURE__ */ (0,
|
|
1476
|
-
/* @__PURE__ */ (0,
|
|
1583
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_jsx_runtime35.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Plain2, { children: [
|
|
1584
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
1477
1585
|
SdTextBox.Section,
|
|
1478
1586
|
{
|
|
1479
1587
|
label,
|
|
@@ -1482,19 +1590,19 @@ function Minimal({ label, title, description, children }) {
|
|
|
1482
1590
|
mb: "xl"
|
|
1483
1591
|
}
|
|
1484
1592
|
),
|
|
1485
|
-
/* @__PURE__ */ (0,
|
|
1593
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core34.Divider, {}),
|
|
1486
1594
|
children
|
|
1487
1595
|
] }) });
|
|
1488
1596
|
}
|
|
1489
1597
|
function Plain2({ children }) {
|
|
1490
|
-
return /* @__PURE__ */ (0,
|
|
1491
|
-
/* @__PURE__ */ (0,
|
|
1492
|
-
/* @__PURE__ */ (0,
|
|
1598
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
|
|
1599
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(LayoutGap, {}),
|
|
1600
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Content, { children })
|
|
1493
1601
|
] });
|
|
1494
1602
|
}
|
|
1495
1603
|
function Image2({ image, label, title, description, children }) {
|
|
1496
|
-
return /* @__PURE__ */ (0,
|
|
1497
|
-
/* @__PURE__ */ (0,
|
|
1604
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
|
|
1605
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_core34.Box, { style: {
|
|
1498
1606
|
position: "relative",
|
|
1499
1607
|
minHeight: "30svh",
|
|
1500
1608
|
display: "flex",
|
|
@@ -1504,13 +1612,13 @@ function Image2({ image, label, title, description, children }) {
|
|
|
1504
1612
|
backgroundPosition: "center",
|
|
1505
1613
|
backgroundColor: "var(--mantine-color-slate-9)"
|
|
1506
1614
|
}, children: [
|
|
1507
|
-
/* @__PURE__ */ (0,
|
|
1615
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core34.Box, { style: {
|
|
1508
1616
|
position: "absolute",
|
|
1509
1617
|
inset: 0,
|
|
1510
1618
|
background: "rgba(0, 0, 0, 0.55)"
|
|
1511
1619
|
} }),
|
|
1512
|
-
/* @__PURE__ */ (0,
|
|
1513
|
-
|
|
1620
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(SdContainer, { style: { position: "relative", zIndex: 1, width: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
1621
|
+
import_core34.Box,
|
|
1514
1622
|
{
|
|
1515
1623
|
py: 48,
|
|
1516
1624
|
px: 40,
|
|
@@ -1522,7 +1630,7 @@ function Image2({ image, label, title, description, children }) {
|
|
|
1522
1630
|
borderRadius: "var(--mantine-radius-md)",
|
|
1523
1631
|
border: "1px solid rgba(255,255,255,0.18)"
|
|
1524
1632
|
},
|
|
1525
|
-
children: /* @__PURE__ */ (0,
|
|
1633
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
1526
1634
|
SdTextBox.Hero,
|
|
1527
1635
|
{
|
|
1528
1636
|
label,
|
|
@@ -1535,12 +1643,12 @@ function Image2({ image, label, title, description, children }) {
|
|
|
1535
1643
|
}
|
|
1536
1644
|
) })
|
|
1537
1645
|
] }),
|
|
1538
|
-
/* @__PURE__ */ (0,
|
|
1646
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Content, { children })
|
|
1539
1647
|
] });
|
|
1540
1648
|
}
|
|
1541
1649
|
function Brand({ label, title, description, children }) {
|
|
1542
|
-
return /* @__PURE__ */ (0,
|
|
1543
|
-
/* @__PURE__ */ (0,
|
|
1650
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
|
|
1651
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_core34.Box, { style: {
|
|
1544
1652
|
position: "relative",
|
|
1545
1653
|
minHeight: "40svh",
|
|
1546
1654
|
display: "flex",
|
|
@@ -1548,7 +1656,7 @@ function Brand({ label, title, description, children }) {
|
|
|
1548
1656
|
overflow: "hidden",
|
|
1549
1657
|
background: "linear-gradient(135deg, var(--mantine-color-primary-8) 0%, var(--mantine-color-primary-6) 50%, var(--mantine-color-primary-4) 100%)"
|
|
1550
1658
|
}, children: [
|
|
1551
|
-
/* @__PURE__ */ (0,
|
|
1659
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core34.Box, { style: {
|
|
1552
1660
|
position: "absolute",
|
|
1553
1661
|
top: -80,
|
|
1554
1662
|
right: -80,
|
|
@@ -1558,7 +1666,7 @@ function Brand({ label, title, description, children }) {
|
|
|
1558
1666
|
background: "rgba(255,255,255,0.06)",
|
|
1559
1667
|
pointerEvents: "none"
|
|
1560
1668
|
} }),
|
|
1561
|
-
/* @__PURE__ */ (0,
|
|
1669
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core34.Box, { style: {
|
|
1562
1670
|
position: "absolute",
|
|
1563
1671
|
bottom: -60,
|
|
1564
1672
|
left: -60,
|
|
@@ -1568,9 +1676,9 @@ function Brand({ label, title, description, children }) {
|
|
|
1568
1676
|
background: "rgba(255,255,255,0.04)",
|
|
1569
1677
|
pointerEvents: "none"
|
|
1570
1678
|
} }),
|
|
1571
|
-
/* @__PURE__ */ (0,
|
|
1679
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(SdContainer, { style: { position: "relative", zIndex: 1, width: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(SdTextBox.Hero, { label, title, description, ta: "center", align: "center", maw: 640, mx: "auto", pt: 80, pb: 64 }) })
|
|
1572
1680
|
] }),
|
|
1573
|
-
/* @__PURE__ */ (0,
|
|
1681
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Content, { children })
|
|
1574
1682
|
] });
|
|
1575
1683
|
}
|
|
1576
1684
|
var PageLayout = {
|
|
@@ -1585,7 +1693,7 @@ var PageLayout = {
|
|
|
1585
1693
|
};
|
|
1586
1694
|
|
|
1587
1695
|
// ui/theme.ts
|
|
1588
|
-
var
|
|
1696
|
+
var import_core35 = require("@mantine/core");
|
|
1589
1697
|
var primary = [
|
|
1590
1698
|
"#e7f0fb",
|
|
1591
1699
|
"#c8dcf4",
|
|
@@ -1659,7 +1767,7 @@ var indigo = [
|
|
|
1659
1767
|
"#3730a3",
|
|
1660
1768
|
"#312e81"
|
|
1661
1769
|
];
|
|
1662
|
-
var theme = (0,
|
|
1770
|
+
var theme = (0, import_core35.createTheme)({
|
|
1663
1771
|
/* ---- Color ---- */
|
|
1664
1772
|
colors: { primary, secondary, slate, cyan, indigo, dark: slate },
|
|
1665
1773
|
primaryColor: "primary",
|
|
@@ -1671,20 +1779,20 @@ var theme = (0, import_core36.createTheme)({
|
|
|
1671
1779
|
fontFamily: "'Noto Sans KR', ui-sans-serif, system-ui, sans-serif",
|
|
1672
1780
|
fontWeight: "700",
|
|
1673
1781
|
sizes: {
|
|
1674
|
-
h1: { fontSize: (0,
|
|
1675
|
-
h2: { fontSize: (0,
|
|
1676
|
-
h3: { fontSize: (0,
|
|
1677
|
-
h4: { fontSize: (0,
|
|
1678
|
-
h5: { fontSize: (0,
|
|
1679
|
-
h6: { fontSize: (0,
|
|
1782
|
+
h1: { fontSize: (0, import_core35.rem)(48), lineHeight: "1.1", fontWeight: "900" },
|
|
1783
|
+
h2: { fontSize: (0, import_core35.rem)(36), lineHeight: "1.1", fontWeight: "900" },
|
|
1784
|
+
h3: { fontSize: (0, import_core35.rem)(28), lineHeight: "1.15", fontWeight: "700" },
|
|
1785
|
+
h4: { fontSize: (0, import_core35.rem)(20), lineHeight: "1.3", fontWeight: "700" },
|
|
1786
|
+
h5: { fontSize: (0, import_core35.rem)(16), lineHeight: "1.4", fontWeight: "700" },
|
|
1787
|
+
h6: { fontSize: (0, import_core35.rem)(14), lineHeight: "1.4", fontWeight: "700" }
|
|
1680
1788
|
}
|
|
1681
1789
|
},
|
|
1682
1790
|
fontSizes: {
|
|
1683
|
-
xs: (0,
|
|
1684
|
-
sm: (0,
|
|
1685
|
-
md: (0,
|
|
1686
|
-
lg: (0,
|
|
1687
|
-
xl: (0,
|
|
1791
|
+
xs: (0, import_core35.rem)(14),
|
|
1792
|
+
sm: (0, import_core35.rem)(16),
|
|
1793
|
+
md: (0, import_core35.rem)(18),
|
|
1794
|
+
lg: (0, import_core35.rem)(20),
|
|
1795
|
+
xl: (0, import_core35.rem)(22)
|
|
1688
1796
|
},
|
|
1689
1797
|
lineHeights: {
|
|
1690
1798
|
xs: "1.4",
|
|
@@ -1695,18 +1803,18 @@ var theme = (0, import_core36.createTheme)({
|
|
|
1695
1803
|
},
|
|
1696
1804
|
defaultRadius: "md",
|
|
1697
1805
|
radius: {
|
|
1698
|
-
xs: (0,
|
|
1699
|
-
sm: (0,
|
|
1700
|
-
md: (0,
|
|
1701
|
-
lg: (0,
|
|
1702
|
-
xl: (0,
|
|
1806
|
+
xs: (0, import_core35.rem)(6),
|
|
1807
|
+
sm: (0, import_core35.rem)(8),
|
|
1808
|
+
md: (0, import_core35.rem)(10),
|
|
1809
|
+
lg: (0, import_core35.rem)(14),
|
|
1810
|
+
xl: (0, import_core35.rem)(18)
|
|
1703
1811
|
},
|
|
1704
1812
|
spacing: {
|
|
1705
|
-
xs: (0,
|
|
1706
|
-
sm: (0,
|
|
1707
|
-
md: (0,
|
|
1708
|
-
lg: (0,
|
|
1709
|
-
xl: (0,
|
|
1813
|
+
xs: (0, import_core35.rem)(8),
|
|
1814
|
+
sm: (0, import_core35.rem)(12),
|
|
1815
|
+
md: (0, import_core35.rem)(16),
|
|
1816
|
+
lg: (0, import_core35.rem)(24),
|
|
1817
|
+
xl: (0, import_core35.rem)(32)
|
|
1710
1818
|
},
|
|
1711
1819
|
shadows: {
|
|
1712
1820
|
xs: "0 1px 2px 0 rgb(0 0 0 / 0.05)",
|
|
@@ -1804,7 +1912,16 @@ var theme = (0, import_core36.createTheme)({
|
|
|
1804
1912
|
PageLayout,
|
|
1805
1913
|
SdBadge,
|
|
1806
1914
|
SdButton,
|
|
1915
|
+
SdButtonCancel,
|
|
1916
|
+
SdButtonDelete,
|
|
1917
|
+
SdButtonGhost,
|
|
1918
|
+
SdButtonOutline,
|
|
1919
|
+
SdButtonPrimary,
|
|
1920
|
+
SdButtonSecondary,
|
|
1921
|
+
SdButtonWhite,
|
|
1807
1922
|
SdClients,
|
|
1923
|
+
SdClientsGrid,
|
|
1924
|
+
SdClientsMarquee,
|
|
1808
1925
|
SdContainer,
|
|
1809
1926
|
SdCta,
|
|
1810
1927
|
SdErrorView,
|
|
@@ -1815,19 +1932,34 @@ var theme = (0, import_core36.createTheme)({
|
|
|
1815
1932
|
SdHeader,
|
|
1816
1933
|
SdInput,
|
|
1817
1934
|
SdMap,
|
|
1935
|
+
SdMapSingle,
|
|
1936
|
+
SdMapTabs,
|
|
1818
1937
|
SdModal,
|
|
1819
1938
|
SdNumberIcon,
|
|
1820
1939
|
SdPricingCard,
|
|
1821
1940
|
SdQuote,
|
|
1941
|
+
SdSkeleton,
|
|
1942
|
+
SdSkeletonAvatar,
|
|
1943
|
+
SdSkeletonCard,
|
|
1944
|
+
SdSkeletonImage,
|
|
1945
|
+
SdSkeletonText,
|
|
1946
|
+
SdSkeletonTitle,
|
|
1822
1947
|
SdSolution,
|
|
1823
1948
|
SdSolutionCard,
|
|
1824
1949
|
SdSteps,
|
|
1825
1950
|
SdStepsSection,
|
|
1826
1951
|
SdTable,
|
|
1827
1952
|
SdTabs,
|
|
1953
|
+
SdTabsOutline,
|
|
1954
|
+
SdTabsPills,
|
|
1955
|
+
SdTabsUnderline,
|
|
1828
1956
|
SdTestimonial,
|
|
1829
1957
|
SdText,
|
|
1830
1958
|
SdTextBox,
|
|
1959
|
+
SdTextBoxCard,
|
|
1960
|
+
SdTextBoxHero,
|
|
1961
|
+
SdTextBoxSection,
|
|
1962
|
+
SdTextBoxSub,
|
|
1831
1963
|
SdTimeline,
|
|
1832
1964
|
SdTimelineSection,
|
|
1833
1965
|
SdTitle,
|