@yeongseoksong/framework 0.1.0 → 1.0.2

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/ui/index.mjs CHANGED
@@ -35,6 +35,16 @@ var __objRest = (source, exclude) => {
35
35
  import Image from "next/image";
36
36
  import Link from "next/link";
37
37
  import { rem, useProps, useMantineTheme } from "@mantine/core";
38
+
39
+ // util/env.util.ts
40
+ var _a;
41
+ var COMPANY_NAME = (_a = process.env.NEXT_PUBLIC_COMPANY_NAME) != null ? _a : "";
42
+ var _a2;
43
+ var LOGO_SRC = (_a2 = process.env.NEXT_PUBLIC_LOGO_SRC) != null ? _a2 : "/logo.svg";
44
+ var _a3;
45
+ var LOGO_ALT = (_a3 = process.env.NEXT_PUBLIC_LOGO_ALT) != null ? _a3 : "\uB85C\uACE0";
46
+
47
+ // ui/atom/Logo.tsx
38
48
  import { jsx } from "react/jsx-runtime";
39
49
  function Logo(_props) {
40
50
  const { size } = useProps("Logo", { size: "md" }, _props);
@@ -43,8 +53,8 @@ function Logo(_props) {
43
53
  return /* @__PURE__ */ jsx(Link, { href: "/", style: { display: "inline-flex", alignItems: "center" }, children: /* @__PURE__ */ jsx(
44
54
  Image,
45
55
  {
46
- src: "/logo.svg",
47
- alt: "\uB85C\uACE0",
56
+ src: LOGO_SRC,
57
+ alt: LOGO_ALT,
48
58
  width: resolved.width,
49
59
  height: resolved.height,
50
60
  style: {
@@ -63,19 +73,19 @@ import { Box, Tabs } from "@mantine/core";
63
73
  // ui/atom/Container.tsx
64
74
  import { Container } from "@mantine/core";
65
75
  import { jsx as jsx2 } from "react/jsx-runtime";
66
- function SdContainer(_a) {
67
- var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
76
+ function SdContainer(_a4) {
77
+ var _b = _a4, { children } = _b, props = __objRest(_b, ["children"]);
68
78
  return /* @__PURE__ */ jsx2(Container, __spreadProps(__spreadValues({ px: { base: "md", sm: "xl" } }, props), { children }));
69
79
  }
70
80
 
71
81
  // ui/atom/Tabs.tsx
72
82
  import { jsx as jsx3 } from "react/jsx-runtime";
73
- function SdPanel(_a) {
74
- var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
83
+ function SdPanel(_a4) {
84
+ var _b = _a4, { children } = _b, props = __objRest(_b, ["children"]);
75
85
  return /* @__PURE__ */ jsx3(Tabs.Panel, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsx3(SdContainer, { py: "xl", children }) }));
76
86
  }
77
- function SdScrollableList(_a) {
78
- var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
87
+ function SdScrollableList(_a4) {
88
+ var _b = _a4, { children } = _b, props = __objRest(_b, ["children"]);
79
89
  return /* @__PURE__ */ jsx3(Box, { style: { overflowX: "auto", width: "100%" }, children: /* @__PURE__ */ jsx3(Tabs.List, __spreadProps(__spreadValues({}, props), { children })) });
80
90
  }
81
91
  function createTabs(defaults, scrollable = false) {
@@ -125,22 +135,24 @@ var SdTabs = {
125
135
  }
126
136
  })
127
137
  };
138
+ var SdTabsPills = SdTabs.Pills;
139
+ var SdTabsUnderline = SdTabs.Underline;
140
+ var SdTabsOutline = SdTabs.Outline;
128
141
 
129
142
  // ui/atom/Title.tsx
130
143
  import { Title as MantineTitle } from "@mantine/core";
131
144
 
132
145
  // util/text.util.ts
133
146
  var COMPANY_TOKEN = "%c";
134
- var companyName = "UKNOWN";
135
147
  function t(text) {
136
- return text.replaceAll(COMPANY_TOKEN, companyName);
148
+ return text.replaceAll(COMPANY_TOKEN, COMPANY_NAME);
137
149
  }
138
150
 
139
151
  // ui/atom/Title.tsx
140
152
  import { jsx as jsx4 } from "react/jsx-runtime";
141
153
  function createTitle(defaults) {
142
- return function SdTitle2(_a) {
143
- var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
154
+ return function SdTitle2(_a4) {
155
+ var _b = _a4, { children } = _b, props = __objRest(_b, ["children"]);
144
156
  const resolved = typeof children === "string" ? t(children) : children;
145
157
  return /* @__PURE__ */ jsx4(MantineTitle, __spreadProps(__spreadValues(__spreadValues({}, defaults), props), { children: resolved }));
146
158
  };
@@ -160,8 +172,8 @@ var SdTitle = {
160
172
  import { Text as MantineText } from "@mantine/core";
161
173
  import { jsx as jsx5 } from "react/jsx-runtime";
162
174
  function createText(defaults) {
163
- return function SdText2(_a) {
164
- var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
175
+ return function SdText2(_a4) {
176
+ var _b = _a4, { children } = _b, props = __objRest(_b, ["children"]);
165
177
  const resolved = typeof children === "string" ? t(children) : children;
166
178
  return /* @__PURE__ */ jsx5(MantineText, __spreadProps(__spreadValues(__spreadValues({}, defaults), props), { children: resolved }));
167
179
  };
@@ -181,14 +193,16 @@ import { Button as MantineButton } from "@mantine/core";
181
193
  import { IconTrash, IconX } from "@tabler/icons-react";
182
194
  import { jsx as jsx6 } from "react/jsx-runtime";
183
195
  function createButton(defaults) {
184
- return function SdButton2(_a) {
185
- var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
196
+ return function SdButton2(_a4) {
197
+ var _b = _a4, { children } = _b, props = __objRest(_b, ["children"]);
186
198
  return /* @__PURE__ */ jsx6(MantineButton, __spreadProps(__spreadValues(__spreadValues({}, defaults), props), { children }));
187
199
  };
188
200
  }
189
201
  var SdButton = {
190
202
  /** 주요 액션 — filled primary */
191
203
  Primary: createButton({ color: "primary" }),
204
+ /** 보조 액션 — white bg + slate text */
205
+ Secondary: createButton({ variant: "white", color: "slate" }),
192
206
  /** 보조 액션 — outline */
193
207
  Outline: createButton({ variant: "outline", color: "primary" }),
194
208
  /** 텍스트 수준 — subtle */
@@ -200,6 +214,13 @@ var SdButton = {
200
214
  /** 취소 — outline slate + X 아이콘 */
201
215
  Cancel: createButton({ variant: "outline", color: "slate", leftSection: /* @__PURE__ */ jsx6(IconX, { size: 16 }) })
202
216
  };
217
+ var SdButtonPrimary = SdButton.Primary;
218
+ var SdButtonSecondary = SdButton.Secondary;
219
+ var SdButtonOutline = SdButton.Outline;
220
+ var SdButtonGhost = SdButton.Ghost;
221
+ var SdButtonWhite = SdButton.White;
222
+ var SdButtonDelete = SdButton.Delete;
223
+ var SdButtonCancel = SdButton.Cancel;
203
224
 
204
225
  // ui/atom/Quote.tsx
205
226
  import { Box as Box2, Card, Center, Group, Stack } from "@mantine/core";
@@ -216,12 +237,12 @@ function QuoteInner({ lines, name, role }) {
216
237
  ] })
217
238
  ] });
218
239
  }
219
- function Plain(_a) {
220
- var _b = _a, { lines, name, role } = _b, boxProps = __objRest(_b, ["lines", "name", "role"]);
240
+ function Plain(_a4) {
241
+ var _b = _a4, { lines, name, role } = _b, boxProps = __objRest(_b, ["lines", "name", "role"]);
221
242
  return /* @__PURE__ */ jsx7(Center, { children: /* @__PURE__ */ jsx7(Box2, __spreadProps(__spreadValues({ w: "fit-content" }, boxProps), { children: /* @__PURE__ */ jsx7(QuoteInner, { lines, name, role }) })) });
222
243
  }
223
- function CardQuote(_a) {
224
- var _b = _a, { lines, name, role } = _b, boxProps = __objRest(_b, ["lines", "name", "role"]);
244
+ function CardQuote(_a4) {
245
+ var _b = _a4, { lines, name, role } = _b, boxProps = __objRest(_b, ["lines", "name", "role"]);
225
246
  return /* @__PURE__ */ jsx7(Center, { children: /* @__PURE__ */ jsx7(Card, __spreadProps(__spreadValues({ w: "fit-content" }, boxProps), { children: /* @__PURE__ */ jsx7(QuoteInner, { lines, name, role }) })) });
226
247
  }
227
248
  var SdQuote = {
@@ -252,12 +273,12 @@ var base = {
252
273
  verticalSpacing: "sm",
253
274
  horizontalSpacing: "md"
254
275
  };
255
- function SpecTh(_a) {
256
- var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
276
+ function SpecTh(_a4) {
277
+ var _b = _a4, { children } = _b, props = __objRest(_b, ["children"]);
257
278
  return /* @__PURE__ */ jsx8(Table.Th, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsx8(SdText.Strong, { c: "white", children }) }));
258
279
  }
259
- function SpecTd(_a) {
260
- var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
280
+ function SpecTd(_a4) {
281
+ var _b = _a4, { children } = _b, props = __objRest(_b, ["children"]);
261
282
  return /* @__PURE__ */ jsx8(Table.Td, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsx8(SdText.Body, { children }) }));
262
283
  }
263
284
  var Spec = createTable(__spreadProps(__spreadValues({}, base), {
@@ -297,8 +318,8 @@ var SdModal = createModal({
297
318
  // ui/atom/NumberIcon.tsx
298
319
  import { ThemeIcon } from "@mantine/core";
299
320
  import { jsx as jsx10 } from "react/jsx-runtime";
300
- function SdNumberIcon(_a) {
301
- var _b = _a, { value, size = 48, radius = "xl", color = "primary" } = _b, props = __objRest(_b, ["value", "size", "radius", "color"]);
321
+ function SdNumberIcon(_a4) {
322
+ var _b = _a4, { value, size = 48, radius = "xl", color = "primary" } = _b, props = __objRest(_b, ["value", "size", "radius", "color"]);
302
323
  return /* @__PURE__ */ jsx10(ThemeIcon, __spreadProps(__spreadValues({ size, radius, color }, props), { children: /* @__PURE__ */ jsx10(SdText.Strong, { c: "white", children: value }) }));
303
324
  }
304
325
 
@@ -306,8 +327,8 @@ function SdNumberIcon(_a) {
306
327
  import { Badge as MantineBadge } from "@mantine/core";
307
328
  import { jsx as jsx11 } from "react/jsx-runtime";
308
329
  function createBadge(defaults) {
309
- return function SdBadge2(_a) {
310
- var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
330
+ return function SdBadge2(_a4) {
331
+ var _b = _a4, { children } = _b, props = __objRest(_b, ["children"]);
311
332
  return /* @__PURE__ */ jsx11(MantineBadge, __spreadProps(__spreadValues(__spreadValues({}, defaults), props), { children }));
312
333
  };
313
334
  }
@@ -331,26 +352,26 @@ import {
331
352
  } from "@mantine/core";
332
353
  import { jsx as jsx12 } from "react/jsx-runtime";
333
354
  function createTextInput(defaults) {
334
- return function SdInput2(_a) {
335
- var props = __objRest(_a, []);
355
+ return function SdInput2(_a4) {
356
+ var props = __objRest(_a4, []);
336
357
  return /* @__PURE__ */ jsx12(TextInput, __spreadValues(__spreadValues({}, defaults), props));
337
358
  };
338
359
  }
339
360
  function createTextarea(defaults) {
340
- return function SdInputTextarea(_a) {
341
- var props = __objRest(_a, []);
361
+ return function SdInputTextarea(_a4) {
362
+ var props = __objRest(_a4, []);
342
363
  return /* @__PURE__ */ jsx12(Textarea, __spreadValues(__spreadValues({}, defaults), props));
343
364
  };
344
365
  }
345
366
  function createPasswordInput(defaults) {
346
- return function SdInputPassword(_a) {
347
- var props = __objRest(_a, []);
367
+ return function SdInputPassword(_a4) {
368
+ var props = __objRest(_a4, []);
348
369
  return /* @__PURE__ */ jsx12(PasswordInput, __spreadValues(__spreadValues({}, defaults), props));
349
370
  };
350
371
  }
351
372
  function createSelect(defaults) {
352
- return function SdInputSelect(_a) {
353
- var props = __objRest(_a, []);
373
+ return function SdInputSelect(_a4) {
374
+ var props = __objRest(_a4, []);
354
375
  return /* @__PURE__ */ jsx12(Select, __spreadValues(__spreadValues({}, defaults), props));
355
376
  };
356
377
  }
@@ -367,12 +388,65 @@ var SdInput = {
367
388
  Select: createSelect({})
368
389
  };
369
390
 
370
- // ui/molecule/TextBox.tsx
371
- import { Stack as Stack2 } from "@mantine/core";
391
+ // ui/atom/Skeleton.tsx
392
+ import { Box as Box3, Skeleton as MantineSkeleton, Stack as Stack2 } from "@mantine/core";
372
393
  import { jsx as jsx13, jsxs as jsxs2 } from "react/jsx-runtime";
394
+ function SkeletonText(_a4) {
395
+ var _b = _a4, { width = "100%" } = _b, props = __objRest(_b, ["width"]);
396
+ return /* @__PURE__ */ jsx13(MantineSkeleton, __spreadValues({ height: 14, width, radius: "sm" }, props));
397
+ }
398
+ function SkeletonTitle(_a4) {
399
+ var _b = _a4, { width = "60%" } = _b, props = __objRest(_b, ["width"]);
400
+ return /* @__PURE__ */ jsx13(MantineSkeleton, __spreadValues({ height: 20, width, radius: "sm" }, props));
401
+ }
402
+ function SkeletonImage(_a4) {
403
+ var _b = _a4, { height = 200 } = _b, props = __objRest(_b, ["height"]);
404
+ return /* @__PURE__ */ jsx13(MantineSkeleton, __spreadValues({ height, radius: "md" }, props));
405
+ }
406
+ function SkeletonAvatar(_a4) {
407
+ var _b = _a4, { size = 40 } = _b, props = __objRest(_b, ["size"]);
408
+ return /* @__PURE__ */ jsx13(MantineSkeleton, __spreadValues({ height: size, width: size, circle: true }, props));
409
+ }
410
+ function SkeletonCard({ height, lines = 3 }) {
411
+ return /* @__PURE__ */ jsx13(
412
+ Box3,
413
+ {
414
+ p: "md",
415
+ style: { borderRadius: "var(--mantine-radius-md)", border: "1px solid var(--mantine-color-gray-3)", height },
416
+ children: /* @__PURE__ */ jsxs2(Stack2, { gap: "sm", children: [
417
+ /* @__PURE__ */ jsx13(MantineSkeleton, { height: 20, width: "50%", radius: "sm" }),
418
+ Array.from({ length: lines }).map((_, i) => /* @__PURE__ */ jsx13(
419
+ MantineSkeleton,
420
+ {
421
+ height: 14,
422
+ width: i === lines - 1 ? "70%" : "100%",
423
+ radius: "sm"
424
+ },
425
+ i
426
+ ))
427
+ ] })
428
+ }
429
+ );
430
+ }
431
+ var SdSkeleton = {
432
+ Card: SkeletonCard,
433
+ Text: SkeletonText,
434
+ Title: SkeletonTitle,
435
+ Image: SkeletonImage,
436
+ Avatar: SkeletonAvatar
437
+ };
438
+ var SdSkeletonCard = SkeletonCard;
439
+ var SdSkeletonText = SkeletonText;
440
+ var SdSkeletonTitle = SkeletonTitle;
441
+ var SdSkeletonImage = SkeletonImage;
442
+ var SdSkeletonAvatar = SkeletonAvatar;
443
+
444
+ // ui/molecule/TextBox.tsx
445
+ import { Stack as Stack3 } from "@mantine/core";
446
+ import { jsx as jsx14, jsxs as jsxs3 } from "react/jsx-runtime";
373
447
  function createTextBox(titleVariant, defaultGap = "xs", descVariant = "Body", color_ = void 0) {
374
- return function SdTextBox2(_a) {
375
- var _b = _a, {
448
+ return function SdTextBox2(_a4) {
449
+ var _b = _a4, {
376
450
  label,
377
451
  title,
378
452
  description,
@@ -393,10 +467,10 @@ function createTextBox(titleVariant, defaultGap = "xs", descVariant = "Body", co
393
467
  const variant = variantOverride != null ? variantOverride : titleVariant;
394
468
  const TitleComponent = SdTitle[variant];
395
469
  const DescComponent = SdText[descVariant];
396
- return /* @__PURE__ */ jsxs2(Stack2, __spreadProps(__spreadValues({ gap: defaultGap }, stackProps), { children: [
397
- label && /* @__PURE__ */ jsx13(SdText.Eyebrow, { children: label }),
398
- /* @__PURE__ */ jsx13(TitleComponent, { c: colorRes, children: title }),
399
- description && /* @__PURE__ */ jsx13(DescComponent, { c: colorRes, maw: maxDescWidth, mt: 4, children: description }),
470
+ return /* @__PURE__ */ jsxs3(Stack3, __spreadProps(__spreadValues({ gap: defaultGap }, stackProps), { children: [
471
+ label && /* @__PURE__ */ jsx14(SdText.Eyebrow, { children: label }),
472
+ /* @__PURE__ */ jsx14(TitleComponent, { c: colorRes, children: title }),
473
+ description && /* @__PURE__ */ jsx14(DescComponent, { c: colorRes, maw: maxDescWidth, mt: 4, children: description }),
400
474
  children
401
475
  ] }));
402
476
  };
@@ -407,9 +481,13 @@ var SdTextBox = {
407
481
  Card: createTextBox("Card", "xs", "Body"),
408
482
  Sub: createTextBox("Sub", "xs", "Sub")
409
483
  };
484
+ var SdTextBoxHero = SdTextBox.Hero;
485
+ var SdTextBoxSection = SdTextBox.Section;
486
+ var SdTextBoxCard = SdTextBox.Card;
487
+ var SdTextBoxSub = SdTextBox.Sub;
410
488
 
411
489
  // ui/molecule/Features.tsx
412
- import { Card as Card2, SimpleGrid, Stack as Stack3 } from "@mantine/core";
490
+ import { Card as Card2, SimpleGrid, Stack as Stack4 } from "@mantine/core";
413
491
 
414
492
  // util/sort.util.ts
415
493
  function filterAndSort(items) {
@@ -417,45 +495,51 @@ function filterAndSort(items) {
417
495
  }
418
496
 
419
497
  // ui/molecule/Features.tsx
420
- import { jsx as jsx14, jsxs as jsxs3 } from "react/jsx-runtime";
498
+ import { jsx as jsx15, jsxs as jsxs4 } from "react/jsx-runtime";
421
499
  function SdFeatures({ items, cols = { base: 1, sm: 2, md: 3 } }) {
422
500
  const visible = filterAndSort(items);
423
- return /* @__PURE__ */ jsx14(SimpleGrid, { cols, spacing: "xl", children: visible.map((item) => /* @__PURE__ */ jsx14(Card2, { children: /* @__PURE__ */ jsxs3(Stack3, { gap: "sm", children: [
424
- item.icon,
425
- /* @__PURE__ */ jsx14(
426
- SdTextBox.Card,
427
- {
428
- label: item.label,
429
- title: item.title,
430
- description: item.description
431
- }
432
- )
433
- ] }, item.id) })) });
501
+ return /* @__PURE__ */ jsx15(SimpleGrid, { cols, spacing: "xl", children: visible.map((item) => /* @__PURE__ */ jsx15(
502
+ Card2,
503
+ {
504
+ children: /* @__PURE__ */ jsxs4(Stack4, { gap: "sm", children: [
505
+ item.icon,
506
+ /* @__PURE__ */ jsx15(
507
+ SdTextBox.Card,
508
+ {
509
+ label: item.label,
510
+ title: item.title,
511
+ description: item.description
512
+ }
513
+ )
514
+ ] }, item.id)
515
+ },
516
+ item.id
517
+ )) });
434
518
  }
435
519
 
436
520
  // ui/molecule/Timeline.tsx
437
- import { Group as Group2, Stack as Stack4, Timeline as MantineTimeline } from "@mantine/core";
438
- import { jsx as jsx15, jsxs as jsxs4 } from "react/jsx-runtime";
521
+ import { Group as Group2, Stack as Stack5, Timeline as MantineTimeline } from "@mantine/core";
522
+ import { jsx as jsx16, jsxs as jsxs5 } from "react/jsx-runtime";
439
523
  function SdTimeline({ items }) {
440
524
  const grouped = items.filter((item) => item.isShow).sort((a, b) => b.year - a.year || b.month - a.month).reduce((acc, item) => {
441
- var _a, _b;
442
- ((_b = acc[_a = item.year]) != null ? _b : acc[_a] = []).push(item);
525
+ var _a4, _b;
526
+ ((_b = acc[_a4 = item.year]) != null ? _b : acc[_a4] = []).push(item);
443
527
  return acc;
444
528
  }, {});
445
529
  const years = Object.keys(grouped).map(Number).sort((a, b) => b - a);
446
- return /* @__PURE__ */ jsx15(MantineTimeline, { active: items.length, bulletSize: 24, lineWidth: 2, children: years.map((year) => /* @__PURE__ */ jsx15(
530
+ return /* @__PURE__ */ jsx16(MantineTimeline, { active: items.length, bulletSize: 24, lineWidth: 2, children: years.map((year) => /* @__PURE__ */ jsx16(
447
531
  MantineTimeline.Item,
448
532
  {
449
- title: /* @__PURE__ */ jsxs4(SdTitle.Sub, { children: [
533
+ title: /* @__PURE__ */ jsxs5(SdTitle.Sub, { children: [
450
534
  year,
451
535
  "\uB144"
452
536
  ] }),
453
- children: /* @__PURE__ */ jsx15(Stack4, { gap: 6, mt: "xs", children: grouped[year].map((event) => /* @__PURE__ */ jsxs4(Group2, { gap: "md", align: "center", wrap: "nowrap", children: [
454
- /* @__PURE__ */ jsxs4(SdText.Eyebrow, { miw: 28, children: [
537
+ children: /* @__PURE__ */ jsx16(Stack5, { gap: 6, mt: "xs", children: grouped[year].map((event) => /* @__PURE__ */ jsxs5(Group2, { gap: "md", align: "center", wrap: "nowrap", children: [
538
+ /* @__PURE__ */ jsxs5(SdText.Eyebrow, { miw: 28, children: [
455
539
  event.month,
456
540
  "\uC6D4"
457
541
  ] }),
458
- /* @__PURE__ */ jsx15(SdText.Sub, { style: { flex: 1 }, children: event.description })
542
+ /* @__PURE__ */ jsx16(SdText.Sub, { style: { flex: 1 }, children: event.description })
459
543
  ] }, event.id)) })
460
544
  },
461
545
  year
@@ -463,26 +547,26 @@ function SdTimeline({ items }) {
463
547
  }
464
548
 
465
549
  // ui/molecule/Steps.tsx
466
- import { Box as Box3, Card as Card3, Group as Group3, Stack as Stack5, ThemeIcon as ThemeIcon2 } from "@mantine/core";
550
+ import { Box as Box4, Card as Card3, Group as Group3, Stack as Stack6, ThemeIcon as ThemeIcon2 } from "@mantine/core";
467
551
  import { IconArrowDown, IconArrowRight } from "@tabler/icons-react";
468
552
  import { Fragment } from "react/jsx-runtime";
469
- import { Fragment as Fragment2, jsx as jsx16, jsxs as jsxs5 } from "react/jsx-runtime";
553
+ import { Fragment as Fragment2, jsx as jsx17, jsxs as jsxs6 } from "react/jsx-runtime";
470
554
  function BubbleStep({ item, index, isLast }) {
471
- return /* @__PURE__ */ jsxs5(Group3, { align: "flex-start", gap: "lg", wrap: "nowrap", children: [
472
- /* @__PURE__ */ jsxs5(Box3, { style: { display: "flex", flexDirection: "column", alignItems: "center", flexShrink: 0 }, children: [
473
- /* @__PURE__ */ jsx16(SdNumberIcon, { value: String(index + 1).padStart(2, "0") }),
474
- !isLast && /* @__PURE__ */ jsx16(Box3, { style: { width: 2, flex: 1, minHeight: 32, marginTop: 8, background: "var(--mantine-color-primary-2)" } })
555
+ return /* @__PURE__ */ jsxs6(Group3, { align: "flex-start", gap: "lg", wrap: "nowrap", children: [
556
+ /* @__PURE__ */ jsxs6(Box4, { style: { display: "flex", flexDirection: "column", alignItems: "center", flexShrink: 0 }, children: [
557
+ /* @__PURE__ */ jsx17(SdNumberIcon, { value: String(index + 1).padStart(2, "0") }),
558
+ !isLast && /* @__PURE__ */ jsx17(Box4, { style: { width: 2, flex: 1, minHeight: 32, marginTop: 8, background: "var(--mantine-color-primary-2)" } })
475
559
  ] }),
476
- /* @__PURE__ */ jsx16(SdTextBox.Card, { title: item.title, description: item.description, pb: !isLast ? "xl" : 0, pt: 4 })
560
+ /* @__PURE__ */ jsx17(SdTextBox.Card, { title: item.title, description: item.description, pb: !isLast ? "xl" : 0, pt: 4 })
477
561
  ] });
478
562
  }
479
563
  function Bubble({ items }) {
480
- return /* @__PURE__ */ jsx16(Box3, { children: items.map((item, i) => /* @__PURE__ */ jsx16(BubbleStep, { item, index: i, isLast: i === items.length - 1 }, i)) });
564
+ return /* @__PURE__ */ jsx17(Box4, { children: items.map((item, i) => /* @__PURE__ */ jsx17(BubbleStep, { item, index: i, isLast: i === items.length - 1 }, i)) });
481
565
  }
482
566
  function CardStep({ item, index }) {
483
- return /* @__PURE__ */ jsxs5(Card3, { withBorder: true, radius: "md", p: 0, style: { height: "100%", overflow: "hidden" }, children: [
484
- /* @__PURE__ */ jsx16(
485
- Box3,
567
+ return /* @__PURE__ */ jsxs6(Card3, { withBorder: true, radius: "md", p: 0, style: { height: "100%", overflow: "hidden" }, children: [
568
+ /* @__PURE__ */ jsx17(
569
+ Box4,
486
570
  {
487
571
  py: "lg",
488
572
  style: {
@@ -490,92 +574,92 @@ function CardStep({ item, index }) {
490
574
  justifyContent: "center",
491
575
  background: "var(--mantine-color-primary-0)"
492
576
  },
493
- children: /* @__PURE__ */ jsxs5(SdText.Eyebrow, { children: [
577
+ children: /* @__PURE__ */ jsxs6(SdText.Eyebrow, { children: [
494
578
  "STEP ",
495
579
  String(index + 1).padStart(2, "0")
496
580
  ] })
497
581
  }
498
582
  ),
499
- /* @__PURE__ */ jsx16(Box3, { p: "lg", style: { textAlign: "center" }, children: /* @__PURE__ */ jsx16(SdTextBox.Card, { title: item.title, description: item.description }) })
583
+ /* @__PURE__ */ jsx17(Box4, { p: "lg", style: { textAlign: "center" }, children: /* @__PURE__ */ jsx17(SdTextBox.Card, { title: item.title, description: item.description }) })
500
584
  ] });
501
585
  }
502
586
  function CardArrow({ direction }) {
503
- return /* @__PURE__ */ jsx16(ThemeIcon2, { size: 36, radius: "xl", variant: "light", color: "primary", children: direction === "right" ? /* @__PURE__ */ jsx16(IconArrowRight, { size: 20, stroke: 2.5 }) : /* @__PURE__ */ jsx16(IconArrowDown, { size: 20, stroke: 2.5 }) });
587
+ return /* @__PURE__ */ jsx17(ThemeIcon2, { size: 36, radius: "xl", variant: "light", color: "primary", children: direction === "right" ? /* @__PURE__ */ jsx17(IconArrowRight, { size: 20, stroke: 2.5 }) : /* @__PURE__ */ jsx17(IconArrowDown, { size: 20, stroke: 2.5 }) });
504
588
  }
505
589
  function CardVariant({ items }) {
506
- return /* @__PURE__ */ jsxs5(Fragment2, { children: [
507
- /* @__PURE__ */ jsx16(Stack5, { gap: "sm", hiddenFrom: "sm", children: items.map((item, i) => /* @__PURE__ */ jsxs5(Fragment, { children: [
508
- /* @__PURE__ */ jsx16(CardStep, { item, index: i }),
509
- i < items.length - 1 && /* @__PURE__ */ jsx16(Box3, { style: { display: "flex", justifyContent: "center" }, children: /* @__PURE__ */ jsx16(CardArrow, { direction: "down" }) })
590
+ return /* @__PURE__ */ jsxs6(Fragment2, { children: [
591
+ /* @__PURE__ */ jsx17(Stack6, { gap: "sm", hiddenFrom: "sm", children: items.map((item, i) => /* @__PURE__ */ jsxs6(Fragment, { children: [
592
+ /* @__PURE__ */ jsx17(CardStep, { item, index: i }),
593
+ i < items.length - 1 && /* @__PURE__ */ jsx17(Box4, { style: { display: "flex", justifyContent: "center" }, children: /* @__PURE__ */ jsx17(CardArrow, { direction: "down" }) })
510
594
  ] }, i)) }),
511
- /* @__PURE__ */ jsx16(Group3, { wrap: "nowrap", align: "stretch", gap: 0, visibleFrom: "sm", children: items.map((item, i) => /* @__PURE__ */ jsxs5(Fragment, { children: [
512
- /* @__PURE__ */ jsx16(Box3, { style: { flex: 1, minWidth: 0 }, children: /* @__PURE__ */ jsx16(CardStep, { item, index: i }) }),
513
- i < items.length - 1 && /* @__PURE__ */ jsx16(Box3, { style: { display: "flex", alignItems: "center", padding: "0 8px" }, children: /* @__PURE__ */ jsx16(CardArrow, { direction: "right" }) })
595
+ /* @__PURE__ */ jsx17(Group3, { wrap: "nowrap", align: "stretch", gap: 0, visibleFrom: "sm", children: items.map((item, i) => /* @__PURE__ */ jsxs6(Fragment, { children: [
596
+ /* @__PURE__ */ jsx17(Box4, { style: { flex: 1, minWidth: 0 }, children: /* @__PURE__ */ jsx17(CardStep, { item, index: i }) }),
597
+ i < items.length - 1 && /* @__PURE__ */ jsx17(Box4, { style: { display: "flex", alignItems: "center", padding: "0 8px" }, children: /* @__PURE__ */ jsx17(CardArrow, { direction: "right" }) })
514
598
  ] }, i)) })
515
599
  ] });
516
600
  }
517
601
  function StripStep({ item, index }) {
518
- return /* @__PURE__ */ jsx16(Box3, { pl: "md", style: { borderLeft: "3px solid var(--mantine-color-primary-6)" }, children: /* @__PURE__ */ jsxs5(Stack5, { gap: 4, children: [
519
- /* @__PURE__ */ jsxs5(SdText.Eyebrow, { children: [
602
+ return /* @__PURE__ */ jsx17(Box4, { pl: "md", style: { borderLeft: "3px solid var(--mantine-color-primary-6)" }, children: /* @__PURE__ */ jsxs6(Stack6, { gap: 4, children: [
603
+ /* @__PURE__ */ jsxs6(SdText.Eyebrow, { children: [
520
604
  "STEP ",
521
605
  String(index + 1).padStart(2, "0")
522
606
  ] }),
523
- /* @__PURE__ */ jsx16(SdTextBox.Card, { title: item.title, description: item.description })
607
+ /* @__PURE__ */ jsx17(SdTextBox.Card, { title: item.title, description: item.description })
524
608
  ] }) });
525
609
  }
526
610
  function Strip({ items }) {
527
- return /* @__PURE__ */ jsx16(Stack5, { gap: "xl", children: items.map((item, i) => /* @__PURE__ */ jsx16(StripStep, { item, index: i }, i)) });
611
+ return /* @__PURE__ */ jsx17(Stack6, { gap: "xl", children: items.map((item, i) => /* @__PURE__ */ jsx17(StripStep, { item, index: i }, i)) });
528
612
  }
529
613
  var SdSteps = { Bubble, Card: CardVariant, Strip };
530
614
 
531
615
  // ui/molecule/Testimonial.tsx
532
616
  import {
533
617
  Avatar,
534
- Box as Box4,
618
+ Box as Box5,
535
619
  Card as Card4,
536
620
  Group as Group4,
537
621
  Rating,
538
622
  SimpleGrid as SimpleGrid2,
539
- Stack as Stack6
623
+ Stack as Stack7
540
624
  } from "@mantine/core";
541
- import { jsx as jsx17, jsxs as jsxs6 } from "react/jsx-runtime";
625
+ import { jsx as jsx18, jsxs as jsxs7 } from "react/jsx-runtime";
542
626
  function AuthorRow({ item }) {
543
- return /* @__PURE__ */ jsxs6(Group4, { gap: "sm", wrap: "nowrap", children: [
544
- item.avatar && /* @__PURE__ */ jsx17(Avatar, { src: item.avatar, size: "md", radius: "xl" }),
545
- !item.avatar && /* @__PURE__ */ jsx17(Avatar, { size: "md", radius: "xl", color: "primary", children: item.name.charAt(0) }),
546
- /* @__PURE__ */ jsxs6(Stack6, { gap: 0, children: [
547
- /* @__PURE__ */ jsx17(SdText.Strong, { fz: "sm", children: item.name }),
548
- /* @__PURE__ */ jsxs6(SdText.Sub, { children: [
627
+ return /* @__PURE__ */ jsxs7(Group4, { gap: "sm", wrap: "nowrap", children: [
628
+ item.avatar && /* @__PURE__ */ jsx18(Avatar, { src: item.avatar, size: "md", radius: "xl" }),
629
+ !item.avatar && /* @__PURE__ */ jsx18(Avatar, { size: "md", radius: "xl", color: "primary", children: item.name.charAt(0) }),
630
+ /* @__PURE__ */ jsxs7(Stack7, { gap: 0, children: [
631
+ /* @__PURE__ */ jsx18(SdText.Strong, { fz: "sm", children: item.name }),
632
+ /* @__PURE__ */ jsxs7(SdText.Sub, { children: [
549
633
  item.role,
550
634
  item.company ? ` \xB7 ${item.company}` : ""
551
635
  ] })
552
636
  ] })
553
637
  ] });
554
638
  }
555
- function CardTestimonial(_a) {
556
- var _b = _a, { item } = _b, boxProps = __objRest(_b, ["item"]);
557
- return /* @__PURE__ */ jsx17(Card4, __spreadProps(__spreadValues({ h: "100%" }, boxProps), { children: /* @__PURE__ */ jsxs6(Stack6, { gap: "md", h: "100%", children: [
558
- item.rating && /* @__PURE__ */ jsx17(Rating, { value: item.rating, readOnly: true, size: "sm", color: "primary" }),
559
- /* @__PURE__ */ jsxs6(Stack6, { gap: "xs", style: { flex: 1 }, children: [
560
- /* @__PURE__ */ jsx17(SdTitle.Display, { c: "primary.6", lh: 0.8, "aria-hidden": true, children: "\u201C" }),
561
- item.lines.map((line, i) => /* @__PURE__ */ jsx17(SdText.Body, { children: line }, i))
639
+ function CardTestimonial(_a4) {
640
+ var _b = _a4, { item } = _b, boxProps = __objRest(_b, ["item"]);
641
+ return /* @__PURE__ */ jsx18(Card4, __spreadProps(__spreadValues({ h: "100%" }, boxProps), { children: /* @__PURE__ */ jsxs7(Stack7, { gap: "md", h: "100%", children: [
642
+ item.rating && /* @__PURE__ */ jsx18(Rating, { value: item.rating, readOnly: true, size: "sm", color: "primary" }),
643
+ /* @__PURE__ */ jsxs7(Stack7, { gap: "xs", style: { flex: 1 }, children: [
644
+ /* @__PURE__ */ jsx18(SdTitle.Display, { c: "primary.6", lh: 0.8, "aria-hidden": true, children: "\u201C" }),
645
+ item.lines.map((line, i) => /* @__PURE__ */ jsx18(SdText.Body, { children: line }, i))
562
646
  ] }),
563
- /* @__PURE__ */ jsx17(AuthorRow, { item })
647
+ /* @__PURE__ */ jsx18(AuthorRow, { item })
564
648
  ] }) }));
565
649
  }
566
- function Strip2(_a) {
567
- var _b = _a, { item } = _b, boxProps = __objRest(_b, ["item"]);
568
- return /* @__PURE__ */ jsx17(Box4, __spreadProps(__spreadValues({}, boxProps), { children: /* @__PURE__ */ jsxs6(Stack6, { gap: "md", children: [
569
- item.rating && /* @__PURE__ */ jsx17(Rating, { value: item.rating, readOnly: true, size: "sm", color: "primary" }),
570
- /* @__PURE__ */ jsxs6(Group4, { gap: 4, align: "flex-start", children: [
571
- /* @__PURE__ */ jsx17(SdTitle.Display, { c: "primary.6", lh: 0.8, "aria-hidden": true, children: "\u201C" }),
572
- /* @__PURE__ */ jsx17(Stack6, { gap: "xs", style: { flex: 1 }, children: item.lines.map((line, i) => /* @__PURE__ */ jsx17(SdText.Body, { children: line }, i)) })
650
+ function Strip2(_a4) {
651
+ var _b = _a4, { item } = _b, boxProps = __objRest(_b, ["item"]);
652
+ return /* @__PURE__ */ jsx18(Box5, __spreadProps(__spreadValues({}, boxProps), { children: /* @__PURE__ */ jsxs7(Stack7, { gap: "md", children: [
653
+ item.rating && /* @__PURE__ */ jsx18(Rating, { value: item.rating, readOnly: true, size: "sm", color: "primary" }),
654
+ /* @__PURE__ */ jsxs7(Group4, { gap: 4, align: "flex-start", children: [
655
+ /* @__PURE__ */ jsx18(SdTitle.Display, { c: "primary.6", lh: 0.8, "aria-hidden": true, children: "\u201C" }),
656
+ /* @__PURE__ */ jsx18(Stack7, { gap: "xs", style: { flex: 1 }, children: item.lines.map((line, i) => /* @__PURE__ */ jsx18(SdText.Body, { children: line }, i)) })
573
657
  ] }),
574
- /* @__PURE__ */ jsx17(AuthorRow, { item })
658
+ /* @__PURE__ */ jsx18(AuthorRow, { item })
575
659
  ] }) }));
576
660
  }
577
661
  function Grid({ items, cols = { base: 1, sm: 2, md: 3 } }) {
578
- return /* @__PURE__ */ jsx17(SimpleGrid2, { cols, spacing: "xl", style: { alignItems: "stretch" }, children: items.map((item, i) => /* @__PURE__ */ jsx17(CardTestimonial, { item }, i)) });
662
+ return /* @__PURE__ */ jsx18(SimpleGrid2, { cols, spacing: "xl", style: { alignItems: "stretch" }, children: items.map((item, i) => /* @__PURE__ */ jsx18(CardTestimonial, { item }, i)) });
579
663
  }
580
664
  var SdTestimonial = {
581
665
  /** 카드형 — 그리드 배치용 */
@@ -592,48 +676,48 @@ import {
592
676
  Divider,
593
677
  Group as Group5,
594
678
  SimpleGrid as SimpleGrid3,
595
- Stack as Stack7,
679
+ Stack as Stack8,
596
680
  ThemeIcon as ThemeIcon3
597
681
  } from "@mantine/core";
598
682
  import { IconCheck, IconX as IconX2 } from "@tabler/icons-react";
599
- import { jsx as jsx18, jsxs as jsxs7 } from "react/jsx-runtime";
600
- function Default(_a) {
601
- var _b = _a, { item, onSelect } = _b, cardProps = __objRest(_b, ["item", "onSelect"]);
602
- var _a2;
603
- return /* @__PURE__ */ jsx18(
683
+ import { jsx as jsx19, jsxs as jsxs8 } from "react/jsx-runtime";
684
+ function Default(_a4) {
685
+ var _b = _a4, { item, onSelect } = _b, cardProps = __objRest(_b, ["item", "onSelect"]);
686
+ var _a5;
687
+ return /* @__PURE__ */ jsx19(
604
688
  Card5,
605
689
  __spreadProps(__spreadValues({
606
690
  withBorder: true,
607
691
  style: { position: "relative" }
608
692
  }, cardProps), {
609
- children: /* @__PURE__ */ jsxs7(Stack7, { gap: "xl", children: [
610
- /* @__PURE__ */ jsxs7(Stack7, { gap: "xs", children: [
611
- /* @__PURE__ */ jsxs7(Group5, { justify: "space-between", align: "flex-start", children: [
612
- /* @__PURE__ */ jsx18(SdTitle.Card, { children: item.name }),
613
- item.isPopular && /* @__PURE__ */ jsx18(SdBadge.Primary, { children: "\uCD94\uCC9C" })
693
+ children: /* @__PURE__ */ jsxs8(Stack8, { gap: "xl", children: [
694
+ /* @__PURE__ */ jsxs8(Stack8, { gap: "xs", children: [
695
+ /* @__PURE__ */ jsxs8(Group5, { justify: "space-between", align: "flex-start", children: [
696
+ /* @__PURE__ */ jsx19(SdTitle.Card, { children: item.name }),
697
+ item.isPopular && /* @__PURE__ */ jsx19(SdBadge.Primary, { children: "\uCD94\uCC9C" })
614
698
  ] }),
615
- item.description && /* @__PURE__ */ jsx18(SdText.Sub, { children: item.description })
699
+ item.description && /* @__PURE__ */ jsx19(SdText.Sub, { children: item.description })
616
700
  ] }),
617
- /* @__PURE__ */ jsxs7(Group5, { gap: 4, align: "baseline", children: [
618
- /* @__PURE__ */ jsx18(SdTitle.Display, { children: item.price }),
619
- item.period && /* @__PURE__ */ jsxs7(SdText.Sub, { children: [
701
+ /* @__PURE__ */ jsxs8(Group5, { gap: 4, align: "baseline", children: [
702
+ /* @__PURE__ */ jsx19(SdTitle.Display, { children: item.price }),
703
+ item.period && /* @__PURE__ */ jsxs8(SdText.Sub, { children: [
620
704
  "/ ",
621
705
  item.period
622
706
  ] })
623
707
  ] }),
624
- /* @__PURE__ */ jsx18(Divider, {}),
625
- /* @__PURE__ */ jsx18(Stack7, { gap: "sm", children: item.features.map((f, i) => /* @__PURE__ */ jsxs7(Group5, { gap: "sm", wrap: "nowrap", children: [
626
- /* @__PURE__ */ jsx18(
708
+ /* @__PURE__ */ jsx19(Divider, {}),
709
+ /* @__PURE__ */ jsx19(Stack8, { gap: "sm", children: item.features.map((f, i) => /* @__PURE__ */ jsxs8(Group5, { gap: "sm", wrap: "nowrap", children: [
710
+ /* @__PURE__ */ jsx19(
627
711
  ThemeIcon3,
628
712
  {
629
713
  size: "xs",
630
714
  radius: "xl",
631
715
  color: f.included ? "primary" : "slate",
632
716
  variant: f.included ? "filled" : "subtle",
633
- children: f.included ? /* @__PURE__ */ jsx18(IconCheck, { size: 12 }) : /* @__PURE__ */ jsx18(IconX2, { size: 12 })
717
+ children: f.included ? /* @__PURE__ */ jsx19(IconCheck, { size: 12 }) : /* @__PURE__ */ jsx19(IconX2, { size: 12 })
634
718
  }
635
719
  ),
636
- /* @__PURE__ */ jsx18(
720
+ /* @__PURE__ */ jsx19(
637
721
  SdText.Body,
638
722
  {
639
723
  fz: "sm",
@@ -642,48 +726,48 @@ function Default(_a) {
642
726
  }
643
727
  )
644
728
  ] }, i)) }),
645
- /* @__PURE__ */ jsx18(SdButton.Outline, { fullWidth: true, onClick: () => onSelect == null ? void 0 : onSelect(item), children: (_a2 = item.ctaLabel) != null ? _a2 : "\uC2DC\uC791\uD558\uAE30" })
729
+ /* @__PURE__ */ jsx19(SdButton.Outline, { fullWidth: true, onClick: () => onSelect == null ? void 0 : onSelect(item), children: (_a5 = item.ctaLabel) != null ? _a5 : "\uC2DC\uC791\uD558\uAE30" })
646
730
  ] })
647
731
  })
648
732
  );
649
733
  }
650
- function Featured(_a) {
651
- var _b = _a, { item, onSelect } = _b, cardProps = __objRest(_b, ["item", "onSelect"]);
652
- var _a2;
653
- return /* @__PURE__ */ jsx18(
734
+ function Featured(_a4) {
735
+ var _b = _a4, { item, onSelect } = _b, cardProps = __objRest(_b, ["item", "onSelect"]);
736
+ var _a5;
737
+ return /* @__PURE__ */ jsx19(
654
738
  Card5,
655
739
  __spreadProps(__spreadValues({
656
740
  bg: "primary.6",
657
741
  style: { position: "relative" }
658
742
  }, cardProps), {
659
- children: /* @__PURE__ */ jsxs7(Stack7, { gap: "xl", children: [
660
- /* @__PURE__ */ jsxs7(Stack7, { gap: "xs", children: [
661
- /* @__PURE__ */ jsxs7(Group5, { justify: "space-between", align: "flex-start", children: [
662
- /* @__PURE__ */ jsx18(SdTitle.Card, { c: "white", children: item.name }),
663
- item.isPopular && /* @__PURE__ */ jsx18(SdBadge.Default, { c: "white", style: { borderColor: "rgba(255,255,255,0.5)" }, children: "\uCD94\uCC9C" })
743
+ children: /* @__PURE__ */ jsxs8(Stack8, { gap: "xl", children: [
744
+ /* @__PURE__ */ jsxs8(Stack8, { gap: "xs", children: [
745
+ /* @__PURE__ */ jsxs8(Group5, { justify: "space-between", align: "flex-start", children: [
746
+ /* @__PURE__ */ jsx19(SdTitle.Card, { c: "white", children: item.name }),
747
+ item.isPopular && /* @__PURE__ */ jsx19(SdBadge.Default, { c: "white", style: { borderColor: "rgba(255,255,255,0.5)" }, children: "\uCD94\uCC9C" })
664
748
  ] }),
665
- item.description && /* @__PURE__ */ jsx18(SdText.Body, { c: "primary.1", children: item.description })
749
+ item.description && /* @__PURE__ */ jsx19(SdText.Body, { c: "primary.1", children: item.description })
666
750
  ] }),
667
- /* @__PURE__ */ jsxs7(Group5, { gap: 4, align: "baseline", children: [
668
- /* @__PURE__ */ jsx18(SdTitle.Display, { c: "white", children: item.price }),
669
- item.period && /* @__PURE__ */ jsxs7(SdText.Body, { c: "primary.2", children: [
751
+ /* @__PURE__ */ jsxs8(Group5, { gap: 4, align: "baseline", children: [
752
+ /* @__PURE__ */ jsx19(SdTitle.Display, { c: "white", children: item.price }),
753
+ item.period && /* @__PURE__ */ jsxs8(SdText.Body, { c: "primary.2", children: [
670
754
  "/ ",
671
755
  item.period
672
756
  ] })
673
757
  ] }),
674
- /* @__PURE__ */ jsx18(Divider, { color: "primary.4" }),
675
- /* @__PURE__ */ jsx18(Stack7, { gap: "sm", children: item.features.map((f, i) => /* @__PURE__ */ jsxs7(Group5, { gap: "sm", wrap: "nowrap", children: [
676
- /* @__PURE__ */ jsx18(
758
+ /* @__PURE__ */ jsx19(Divider, { color: "primary.4" }),
759
+ /* @__PURE__ */ jsx19(Stack8, { gap: "sm", children: item.features.map((f, i) => /* @__PURE__ */ jsxs8(Group5, { gap: "sm", wrap: "nowrap", children: [
760
+ /* @__PURE__ */ jsx19(
677
761
  ThemeIcon3,
678
762
  {
679
763
  size: "xs",
680
764
  radius: "xl",
681
765
  color: "white",
682
766
  variant: f.included ? "filled" : "subtle",
683
- children: f.included ? /* @__PURE__ */ jsx18(IconCheck, { size: 12, color: "var(--mantine-color-primary-6)" }) : /* @__PURE__ */ jsx18(IconX2, { size: 12, color: "rgba(255,255,255,0.4)" })
767
+ children: f.included ? /* @__PURE__ */ jsx19(IconCheck, { size: 12, color: "var(--mantine-color-primary-6)" }) : /* @__PURE__ */ jsx19(IconX2, { size: 12, color: "rgba(255,255,255,0.4)" })
684
768
  }
685
769
  ),
686
- /* @__PURE__ */ jsx18(
770
+ /* @__PURE__ */ jsx19(
687
771
  SdText.Body,
688
772
  {
689
773
  fz: "sm",
@@ -692,14 +776,14 @@ function Featured(_a) {
692
776
  }
693
777
  )
694
778
  ] }, i)) }),
695
- /* @__PURE__ */ jsx18(SdButton.White, { fullWidth: true, onClick: () => onSelect == null ? void 0 : onSelect(item), children: (_a2 = item.ctaLabel) != null ? _a2 : "\uC2DC\uC791\uD558\uAE30" })
779
+ /* @__PURE__ */ jsx19(SdButton.White, { fullWidth: true, onClick: () => onSelect == null ? void 0 : onSelect(item), children: (_a5 = item.ctaLabel) != null ? _a5 : "\uC2DC\uC791\uD558\uAE30" })
696
780
  ] })
697
781
  })
698
782
  );
699
783
  }
700
784
  function Grid2({ items, cols = { base: 1, sm: 2, md: 3 }, onSelect }) {
701
- return /* @__PURE__ */ jsx18(SimpleGrid3, { cols, spacing: "xl", style: { alignItems: "stretch" }, children: items.map(
702
- (item, i) => item.isPopular ? /* @__PURE__ */ jsx18(Featured, { item, onSelect }, i) : /* @__PURE__ */ jsx18(Default, { item, onSelect }, i)
785
+ return /* @__PURE__ */ jsx19(SimpleGrid3, { cols, spacing: "xl", style: { alignItems: "stretch" }, children: items.map(
786
+ (item, i) => item.isPopular ? /* @__PURE__ */ jsx19(Featured, { item, onSelect }, i) : /* @__PURE__ */ jsx19(Default, { item, onSelect }, i)
703
787
  ) });
704
788
  }
705
789
  var SdPricingCard = {
@@ -712,31 +796,31 @@ var SdPricingCard = {
712
796
  };
713
797
 
714
798
  // ui/molecule/Faq.tsx
715
- import { Accordion, Box as Box6, Stack as Stack8 } from "@mantine/core";
716
- import { jsx as jsx19, jsxs as jsxs8 } from "react/jsx-runtime";
717
- function Default2(_a) {
718
- var _b = _a, { items } = _b, boxProps = __objRest(_b, ["items"]);
719
- return /* @__PURE__ */ jsx19(Box6, __spreadProps(__spreadValues({}, boxProps), { children: /* @__PURE__ */ jsx19(Accordion, { variant: "separated", radius: "md", children: items.map((item, i) => /* @__PURE__ */ jsxs8(Accordion.Item, { value: String(i), children: [
720
- /* @__PURE__ */ jsx19(Accordion.Control, { children: /* @__PURE__ */ jsx19(SdText.Strong, { fz: "sm", children: item.question }) }),
721
- /* @__PURE__ */ jsx19(Accordion.Panel, { children: /* @__PURE__ */ jsx19(SdText.Body, { fz: "sm", children: item.answer }) })
799
+ import { Accordion, Box as Box7, Stack as Stack9 } from "@mantine/core";
800
+ import { jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
801
+ function Default2(_a4) {
802
+ var _b = _a4, { items } = _b, boxProps = __objRest(_b, ["items"]);
803
+ return /* @__PURE__ */ jsx20(Box7, __spreadProps(__spreadValues({}, boxProps), { children: /* @__PURE__ */ jsx20(Accordion, { variant: "separated", radius: "md", children: items.map((item, i) => /* @__PURE__ */ jsxs9(Accordion.Item, { value: String(i), children: [
804
+ /* @__PURE__ */ jsx20(Accordion.Control, { children: /* @__PURE__ */ jsx20(SdText.Strong, { fz: "sm", children: item.question }) }),
805
+ /* @__PURE__ */ jsx20(Accordion.Panel, { children: /* @__PURE__ */ jsx20(SdText.Body, { fz: "sm", children: item.answer }) })
722
806
  ] }, i)) }) }));
723
807
  }
724
- function Filled(_a) {
725
- var _b = _a, { items } = _b, boxProps = __objRest(_b, ["items"]);
726
- return /* @__PURE__ */ jsx19(Box6, __spreadProps(__spreadValues({}, boxProps), { children: /* @__PURE__ */ jsx19(Accordion, { variant: "filled", radius: "md", children: items.map((item, i) => /* @__PURE__ */ jsxs8(Accordion.Item, { value: String(i), children: [
727
- /* @__PURE__ */ jsx19(Accordion.Control, { children: /* @__PURE__ */ jsx19(SdText.Strong, { fz: "sm", children: item.question }) }),
728
- /* @__PURE__ */ jsx19(Accordion.Panel, { children: /* @__PURE__ */ jsx19(SdText.Body, { fz: "sm", children: item.answer }) })
808
+ function Filled(_a4) {
809
+ var _b = _a4, { items } = _b, boxProps = __objRest(_b, ["items"]);
810
+ return /* @__PURE__ */ jsx20(Box7, __spreadProps(__spreadValues({}, boxProps), { children: /* @__PURE__ */ jsx20(Accordion, { variant: "filled", radius: "md", children: items.map((item, i) => /* @__PURE__ */ jsxs9(Accordion.Item, { value: String(i), children: [
811
+ /* @__PURE__ */ jsx20(Accordion.Control, { children: /* @__PURE__ */ jsx20(SdText.Strong, { fz: "sm", children: item.question }) }),
812
+ /* @__PURE__ */ jsx20(Accordion.Panel, { children: /* @__PURE__ */ jsx20(SdText.Body, { fz: "sm", children: item.answer }) })
729
813
  ] }, i)) }) }));
730
814
  }
731
- function WithHeader(_a) {
732
- var _b = _a, { label, title, description, items } = _b, boxProps = __objRest(_b, ["label", "title", "description", "items"]);
733
- return /* @__PURE__ */ jsxs8(Stack8, __spreadProps(__spreadValues({ gap: "xl" }, boxProps), { children: [
734
- /* @__PURE__ */ jsxs8(Stack8, { gap: "xs", children: [
735
- label && /* @__PURE__ */ jsx19(SdText.Eyebrow, { children: label }),
736
- /* @__PURE__ */ jsx19(SdTitle.Section, { children: title }),
737
- description && /* @__PURE__ */ jsx19(SdText.Body, { children: description })
815
+ function WithHeader(_a4) {
816
+ var _b = _a4, { label, title, description, items } = _b, boxProps = __objRest(_b, ["label", "title", "description", "items"]);
817
+ return /* @__PURE__ */ jsxs9(Stack9, __spreadProps(__spreadValues({ gap: "xl" }, boxProps), { children: [
818
+ /* @__PURE__ */ jsxs9(Stack9, { gap: "xs", children: [
819
+ label && /* @__PURE__ */ jsx20(SdText.Eyebrow, { children: label }),
820
+ /* @__PURE__ */ jsx20(SdTitle.Section, { children: title }),
821
+ description && /* @__PURE__ */ jsx20(SdText.Body, { children: description })
738
822
  ] }),
739
- /* @__PURE__ */ jsx19(Default2, { items })
823
+ /* @__PURE__ */ jsx20(Default2, { items })
740
824
  ] }));
741
825
  }
742
826
  var SdFaq = {
@@ -749,10 +833,10 @@ var SdFaq = {
749
833
  };
750
834
 
751
835
  // ui/molecule/Cta.tsx
752
- import { Box as Box7, Center as Center2, Group as Group6, Stack as Stack9 } from "@mantine/core";
753
- import { jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
754
- function Banner(_a) {
755
- var _b = _a, {
836
+ import { Box as Box8, Center as Center2, Group as Group6, Stack as Stack10 } from "@mantine/core";
837
+ import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
838
+ function Banner(_a4) {
839
+ var _b = _a4, {
756
840
  label,
757
841
  title,
758
842
  description,
@@ -769,22 +853,22 @@ function Banner(_a) {
769
853
  "onPrimary",
770
854
  "onSecondary"
771
855
  ]);
772
- return /* @__PURE__ */ jsx20(
773
- Box7,
856
+ return /* @__PURE__ */ jsx21(
857
+ Box8,
774
858
  __spreadProps(__spreadValues({
775
859
  bg: "primary.7",
776
860
  py: { base: "xl", md: 80 },
777
861
  px: { base: "md", md: "xl" }
778
862
  }, boxProps), {
779
- children: /* @__PURE__ */ jsx20(Center2, { children: /* @__PURE__ */ jsxs9(Stack9, { gap: "xl", align: "center", maw: 600, children: [
780
- /* @__PURE__ */ jsxs9(Stack9, { gap: "sm", align: "center", children: [
781
- label && /* @__PURE__ */ jsx20(SdText.Eyebrow, { c: "primary.3", children: label }),
782
- /* @__PURE__ */ jsx20(SdTitle.Section, { c: "white", ta: "center", children: title }),
783
- description && /* @__PURE__ */ jsx20(SdText.Body, { c: "primary.2", ta: "center", children: description })
863
+ children: /* @__PURE__ */ jsx21(Center2, { children: /* @__PURE__ */ jsxs10(Stack10, { gap: "xl", align: "center", maw: 600, children: [
864
+ /* @__PURE__ */ jsxs10(Stack10, { gap: "sm", align: "center", children: [
865
+ label && /* @__PURE__ */ jsx21(SdText.Eyebrow, { c: "primary.3", children: label }),
866
+ /* @__PURE__ */ jsx21(SdTitle.Section, { c: "white", ta: "center", children: title }),
867
+ description && /* @__PURE__ */ jsx21(SdText.Body, { c: "primary.2", ta: "center", children: description })
784
868
  ] }),
785
- /* @__PURE__ */ jsxs9(Group6, { gap: "sm", children: [
786
- /* @__PURE__ */ jsx20(SdButton.White, { size: "md", onClick: onPrimary, children: primaryLabel }),
787
- secondaryLabel && /* @__PURE__ */ jsx20(
869
+ /* @__PURE__ */ jsxs10(Group6, { gap: "sm", children: [
870
+ /* @__PURE__ */ jsx21(SdButton.White, { size: "md", onClick: onPrimary, children: primaryLabel }),
871
+ secondaryLabel && /* @__PURE__ */ jsx21(
788
872
  SdButton.Ghost,
789
873
  {
790
874
  size: "md",
@@ -798,8 +882,8 @@ function Banner(_a) {
798
882
  })
799
883
  );
800
884
  }
801
- function Subtle(_a) {
802
- var _b = _a, {
885
+ function Subtle(_a4) {
886
+ var _b = _a4, {
803
887
  label,
804
888
  title,
805
889
  description,
@@ -816,30 +900,30 @@ function Subtle(_a) {
816
900
  "onPrimary",
817
901
  "onSecondary"
818
902
  ]);
819
- return /* @__PURE__ */ jsx20(
820
- Box7,
903
+ return /* @__PURE__ */ jsx21(
904
+ Box8,
821
905
  __spreadProps(__spreadValues({
822
906
  bg: "primary.0",
823
907
  py: { base: "xl", md: 60 },
824
908
  px: { base: "md", md: "xl" },
825
909
  style: { borderRadius: "var(--mantine-radius-lg)" }
826
910
  }, boxProps), {
827
- children: /* @__PURE__ */ jsx20(Center2, { children: /* @__PURE__ */ jsxs9(Stack9, { gap: "lg", align: "center", maw: 560, children: [
828
- /* @__PURE__ */ jsxs9(Stack9, { gap: "sm", align: "center", children: [
829
- label && /* @__PURE__ */ jsx20(SdText.Eyebrow, { children: label }),
830
- /* @__PURE__ */ jsx20(SdTitle.Section, { ta: "center", children: title }),
831
- description && /* @__PURE__ */ jsx20(SdText.Body, { ta: "center", children: description })
911
+ children: /* @__PURE__ */ jsx21(Center2, { children: /* @__PURE__ */ jsxs10(Stack10, { gap: "lg", align: "center", maw: 560, children: [
912
+ /* @__PURE__ */ jsxs10(Stack10, { gap: "sm", align: "center", children: [
913
+ label && /* @__PURE__ */ jsx21(SdText.Eyebrow, { children: label }),
914
+ /* @__PURE__ */ jsx21(SdTitle.Section, { ta: "center", children: title }),
915
+ description && /* @__PURE__ */ jsx21(SdText.Body, { ta: "center", children: description })
832
916
  ] }),
833
- /* @__PURE__ */ jsxs9(Group6, { gap: "sm", children: [
834
- /* @__PURE__ */ jsx20(SdButton.Primary, { size: "md", onClick: onPrimary, children: primaryLabel }),
835
- secondaryLabel && /* @__PURE__ */ jsx20(SdButton.Outline, { size: "md", onClick: onSecondary, children: secondaryLabel })
917
+ /* @__PURE__ */ jsxs10(Group6, { gap: "sm", children: [
918
+ /* @__PURE__ */ jsx21(SdButton.Primary, { size: "md", onClick: onPrimary, children: primaryLabel }),
919
+ secondaryLabel && /* @__PURE__ */ jsx21(SdButton.Outline, { size: "md", onClick: onSecondary, children: secondaryLabel })
836
920
  ] })
837
921
  ] }) })
838
922
  })
839
923
  );
840
924
  }
841
- function Inline(_a) {
842
- var _b = _a, {
925
+ function Inline(_a4) {
926
+ var _b = _a4, {
843
927
  label,
844
928
  title,
845
929
  description,
@@ -856,8 +940,8 @@ function Inline(_a) {
856
940
  "onPrimary",
857
941
  "onSecondary"
858
942
  ]);
859
- return /* @__PURE__ */ jsx20(
860
- Box7,
943
+ return /* @__PURE__ */ jsx21(
944
+ Box8,
861
945
  __spreadProps(__spreadValues({
862
946
  py: { base: "xl", md: 48 },
863
947
  px: { base: "md", md: "xl" },
@@ -866,15 +950,15 @@ function Inline(_a) {
866
950
  borderBottom: "1px solid var(--mantine-color-slate-2)"
867
951
  }
868
952
  }, boxProps), {
869
- children: /* @__PURE__ */ jsxs9(Group6, { justify: "space-between", align: "center", gap: "xl", children: [
870
- /* @__PURE__ */ jsxs9(Stack9, { gap: "xs", style: { flex: 1 }, children: [
871
- label && /* @__PURE__ */ jsx20(SdText.Eyebrow, { children: label }),
872
- /* @__PURE__ */ jsx20(SdTitle.Card, { children: title }),
873
- description && /* @__PURE__ */ jsx20(SdText.Sub, { children: description })
953
+ children: /* @__PURE__ */ jsxs10(Group6, { justify: "space-between", align: "center", gap: "xl", children: [
954
+ /* @__PURE__ */ jsxs10(Stack10, { gap: "xs", style: { flex: 1 }, children: [
955
+ label && /* @__PURE__ */ jsx21(SdText.Eyebrow, { children: label }),
956
+ /* @__PURE__ */ jsx21(SdTitle.Card, { children: title }),
957
+ description && /* @__PURE__ */ jsx21(SdText.Sub, { children: description })
874
958
  ] }),
875
- /* @__PURE__ */ jsxs9(Group6, { gap: "sm", wrap: "nowrap", children: [
876
- /* @__PURE__ */ jsx20(SdButton.Primary, { size: "md", onClick: onPrimary, children: primaryLabel }),
877
- secondaryLabel && /* @__PURE__ */ jsx20(SdButton.Outline, { size: "md", onClick: onSecondary, children: secondaryLabel })
959
+ /* @__PURE__ */ jsxs10(Group6, { gap: "sm", wrap: "nowrap", children: [
960
+ /* @__PURE__ */ jsx21(SdButton.Primary, { size: "md", onClick: onPrimary, children: primaryLabel }),
961
+ secondaryLabel && /* @__PURE__ */ jsx21(SdButton.Outline, { size: "md", onClick: onSecondary, children: secondaryLabel })
878
962
  ] })
879
963
  ] })
880
964
  })
@@ -895,7 +979,7 @@ import {
895
979
  Button as Button2,
896
980
  Divider as Divider2,
897
981
  Group as Group7,
898
- Stack as Stack11,
982
+ Stack as Stack12,
899
983
  ThemeIcon as ThemeIcon4
900
984
  } from "@mantine/core";
901
985
  import Link3 from "next/link";
@@ -905,29 +989,29 @@ import {
905
989
  Button,
906
990
  Card as Card6,
907
991
  SimpleGrid as SimpleGrid4,
908
- Stack as Stack10
992
+ Stack as Stack11
909
993
  } from "@mantine/core";
910
994
  import Link2 from "next/link";
911
- import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
912
- function SolutionCardItem(_a) {
913
- var _b = _a, { item, onSelect } = _b, cardProps = __objRest(_b, ["item", "onSelect"]);
914
- var _a2, _b2;
915
- return /* @__PURE__ */ jsx21(Card6, __spreadProps(__spreadValues({ withBorder: true }, cardProps), { children: /* @__PURE__ */ jsxs10(Stack10, { gap: "md", children: [
995
+ import { jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
996
+ function SolutionCardItem(_a4) {
997
+ var _b = _a4, { item, onSelect } = _b, cardProps = __objRest(_b, ["item", "onSelect"]);
998
+ var _a5, _b2;
999
+ return /* @__PURE__ */ jsx22(Card6, __spreadProps(__spreadValues({ withBorder: true }, cardProps), { children: /* @__PURE__ */ jsxs11(Stack11, { gap: "md", children: [
916
1000
  item.icon,
917
- /* @__PURE__ */ jsx21(SdBadge.Primary, { children: item.category }),
918
- /* @__PURE__ */ jsx21(SdTitle.Card, { children: item.title }),
919
- /* @__PURE__ */ jsx21(SdText.Body, { children: item.description }),
920
- item.href ? /* @__PURE__ */ jsxs10(Button, { variant: "subtle", color: "slate", component: Link2, href: item.href, children: [
921
- (_a2 = item.ctaLabel) != null ? _a2 : "\uC790\uC138\uD788 \uBCF4\uAE30",
1001
+ /* @__PURE__ */ jsx22(SdBadge.Primary, { children: item.category }),
1002
+ /* @__PURE__ */ jsx22(SdTitle.Card, { children: item.title }),
1003
+ /* @__PURE__ */ jsx22(SdText.Body, { children: item.description }),
1004
+ item.href ? /* @__PURE__ */ jsxs11(Button, { variant: "subtle", color: "slate", component: Link2, href: item.href, children: [
1005
+ (_a5 = item.ctaLabel) != null ? _a5 : "\uC790\uC138\uD788 \uBCF4\uAE30",
922
1006
  " \u2192"
923
- ] }) : /* @__PURE__ */ jsxs10(SdButton.Ghost, { onClick: () => onSelect == null ? void 0 : onSelect(item), children: [
1007
+ ] }) : /* @__PURE__ */ jsxs11(SdButton.Ghost, { onClick: () => onSelect == null ? void 0 : onSelect(item), children: [
924
1008
  (_b2 = item.ctaLabel) != null ? _b2 : "\uC790\uC138\uD788 \uBCF4\uAE30",
925
1009
  " \u2192"
926
1010
  ] })
927
1011
  ] }) }));
928
1012
  }
929
1013
  function Grid3({ items, cols = { base: 1, sm: 2, md: 3 }, onSelect }) {
930
- return /* @__PURE__ */ jsx21(SimpleGrid4, { cols, spacing: "xl", children: items.map((item, i) => /* @__PURE__ */ jsx21(SolutionCardItem, { item, onSelect }, i)) });
1014
+ return /* @__PURE__ */ jsx22(SimpleGrid4, { cols, spacing: "xl", children: items.map((item, i) => /* @__PURE__ */ jsx22(SolutionCardItem, { item, onSelect }, i)) });
931
1015
  }
932
1016
  var SdSolutionCard = {
933
1017
  /** 단일 compact 카드 */
@@ -937,28 +1021,28 @@ var SdSolutionCard = {
937
1021
  };
938
1022
 
939
1023
  // ui/molecule/Solution.tsx
940
- import { jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
1024
+ import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
941
1025
  function Filtered({ items, allLabel = "\uC804\uCCB4", cols, onSelect }) {
942
1026
  const categories = ["all", ...Array.from(new Set(items.map((i) => i.category)))];
943
1027
  const [active, setActive] = useState("all");
944
1028
  const filtered = active === "all" ? items : items.filter((i) => i.category === active);
945
- return /* @__PURE__ */ jsxs11(Stack11, { gap: "xl", children: [
946
- /* @__PURE__ */ jsx22(SdTabs.Pills, { value: active, onChange: (v) => setActive(v != null ? v : "all"), children: /* @__PURE__ */ jsx22(SdTabs.Pills.List, { children: categories.map((cat) => /* @__PURE__ */ jsx22(SdTabs.Pills.Tab, { value: cat, children: cat === "all" ? allLabel : cat }, cat)) }) }),
947
- /* @__PURE__ */ jsx22(SdSolutionCard.Grid, { items: filtered, cols, onSelect })
1029
+ return /* @__PURE__ */ jsxs12(Stack12, { gap: "xl", children: [
1030
+ /* @__PURE__ */ jsx23(SdTabs.Pills, { value: active, onChange: (v) => setActive(v != null ? v : "all"), children: /* @__PURE__ */ jsx23(SdTabs.Pills.List, { children: categories.map((cat) => /* @__PURE__ */ jsx23(SdTabs.Pills.Tab, { value: cat, children: cat === "all" ? allLabel : cat }, cat)) }) }),
1031
+ /* @__PURE__ */ jsx23(SdSolutionCard.Grid, { items: filtered, cols, onSelect })
948
1032
  ] });
949
1033
  }
950
1034
  function List({ items, onSelect }) {
951
- return /* @__PURE__ */ jsx22(Stack11, { gap: 0, children: items.map((item, i) => {
952
- var _a, _b;
953
- return /* @__PURE__ */ jsxs11("div", { children: [
954
- i > 0 && /* @__PURE__ */ jsx22(Divider2, {}),
955
- /* @__PURE__ */ jsxs11(Group7, { align: "flex-start", py: "lg", gap: "lg", children: [
956
- item.icon && /* @__PURE__ */ jsx22(ThemeIcon4, { variant: "light", color: "primary", size: "xl", radius: "md", children: item.icon }),
957
- /* @__PURE__ */ jsxs11(Stack11, { gap: "xs", style: { flex: 1 }, children: [
958
- /* @__PURE__ */ jsx22(SdBadge.Primary, { children: item.category }),
959
- /* @__PURE__ */ jsx22(SdTitle.Card, { children: item.title }),
960
- /* @__PURE__ */ jsx22(SdText.Body, { children: item.description }),
961
- item.href ? /* @__PURE__ */ jsxs11(
1035
+ return /* @__PURE__ */ jsx23(Stack12, { gap: 0, children: items.map((item, i) => {
1036
+ var _a4, _b;
1037
+ return /* @__PURE__ */ jsxs12("div", { children: [
1038
+ i > 0 && /* @__PURE__ */ jsx23(Divider2, {}),
1039
+ /* @__PURE__ */ jsxs12(Group7, { align: "flex-start", py: "lg", gap: "lg", children: [
1040
+ item.icon && /* @__PURE__ */ jsx23(ThemeIcon4, { variant: "light", color: "primary", size: "xl", radius: "md", children: item.icon }),
1041
+ /* @__PURE__ */ jsxs12(Stack12, { gap: "xs", style: { flex: 1 }, children: [
1042
+ /* @__PURE__ */ jsx23(SdBadge.Primary, { children: item.category }),
1043
+ /* @__PURE__ */ jsx23(SdTitle.Card, { children: item.title }),
1044
+ /* @__PURE__ */ jsx23(SdText.Body, { children: item.description }),
1045
+ item.href ? /* @__PURE__ */ jsxs12(
962
1046
  Button2,
963
1047
  {
964
1048
  variant: "subtle",
@@ -967,11 +1051,11 @@ function List({ items, onSelect }) {
967
1051
  href: item.href,
968
1052
  style: { alignSelf: "flex-start", paddingInline: 0 },
969
1053
  children: [
970
- (_a = item.ctaLabel) != null ? _a : "\uC790\uC138\uD788 \uBCF4\uAE30",
1054
+ (_a4 = item.ctaLabel) != null ? _a4 : "\uC790\uC138\uD788 \uBCF4\uAE30",
971
1055
  " \u2192"
972
1056
  ]
973
1057
  }
974
- ) : /* @__PURE__ */ jsxs11(
1058
+ ) : /* @__PURE__ */ jsxs12(
975
1059
  SdButton.Ghost,
976
1060
  {
977
1061
  onClick: () => onSelect == null ? void 0 : onSelect(item),
@@ -995,8 +1079,8 @@ var SdSolution = {
995
1079
  };
996
1080
 
997
1081
  // ui/molecule/Clients.tsx
998
- import { Anchor, Box as Box8, SimpleGrid as SimpleGrid5, Tooltip } from "@mantine/core";
999
- import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
1082
+ import { Anchor, Box as Box9, SimpleGrid as SimpleGrid5, Tooltip } from "@mantine/core";
1083
+ import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
1000
1084
  var grayStyle = {
1001
1085
  filter: "grayscale(1) opacity(0.5)",
1002
1086
  transition: "filter 0.25s"
@@ -1005,7 +1089,7 @@ var colorStyle = {
1005
1089
  filter: "grayscale(0) opacity(1)"
1006
1090
  };
1007
1091
  function LogoImage({ client, height }) {
1008
- return /* @__PURE__ */ jsx23(Tooltip, { label: client.name, withArrow: true, children: /* @__PURE__ */ jsx23(Anchor, { href: client.url, target: "_blank", rel: "noopener noreferrer", children: /* @__PURE__ */ jsx23(
1092
+ return /* @__PURE__ */ jsx24(Tooltip, { label: client.name, withArrow: true, children: /* @__PURE__ */ jsx24(Anchor, { href: client.url, target: "_blank", rel: "noopener noreferrer", children: /* @__PURE__ */ jsx24(
1009
1093
  "img",
1010
1094
  {
1011
1095
  src: client.logo,
@@ -1021,15 +1105,15 @@ function Grid4({
1021
1105
  cols = { base: 2, sm: 3, md: 4, lg: 6 },
1022
1106
  logoHeight = 40
1023
1107
  }) {
1024
- return /* @__PURE__ */ jsx23(SimpleGrid5, { cols, spacing: "xl", children: items.map((client, i) => /* @__PURE__ */ jsx23(Box8, { style: { display: "flex", alignItems: "center", justifyContent: "center", padding: "12px 8px" }, children: /* @__PURE__ */ jsx23(LogoImage, { client, height: logoHeight }) }, i)) });
1108
+ return /* @__PURE__ */ jsx24(SimpleGrid5, { cols, spacing: "xl", children: items.map((client, i) => /* @__PURE__ */ jsx24(Box9, { style: { display: "flex", alignItems: "center", justifyContent: "center", padding: "12px 8px" }, children: /* @__PURE__ */ jsx24(LogoImage, { client, height: logoHeight }) }, i)) });
1025
1109
  }
1026
1110
  var KEYFRAME = `@keyframes sd-clients-marquee { from { transform: translateX(0) } to { transform: translateX(-50%) } }`;
1027
1111
  function Marquee({ items, speed = 40, logoHeight = 36, gap = 64 }) {
1028
1112
  const doubled = [...items, ...items];
1029
- return /* @__PURE__ */ jsxs12(Box8, { style: { overflow: "hidden" }, children: [
1030
- /* @__PURE__ */ jsx23("style", { children: KEYFRAME }),
1031
- /* @__PURE__ */ jsx23(
1032
- Box8,
1113
+ return /* @__PURE__ */ jsxs13(Box9, { style: { overflow: "hidden" }, children: [
1114
+ /* @__PURE__ */ jsx24("style", { children: KEYFRAME }),
1115
+ /* @__PURE__ */ jsx24(
1116
+ Box9,
1033
1117
  {
1034
1118
  style: {
1035
1119
  display: "flex",
@@ -1044,7 +1128,7 @@ function Marquee({ items, speed = 40, logoHeight = 36, gap = 64 }) {
1044
1128
  onMouseLeave: (e) => {
1045
1129
  e.currentTarget.style.animationPlayState = "running";
1046
1130
  },
1047
- children: doubled.map((client, i) => /* @__PURE__ */ jsx23(LogoImage, { client, height: logoHeight }, i))
1131
+ children: doubled.map((client, i) => /* @__PURE__ */ jsx24(LogoImage, { client, height: logoHeight }, i))
1048
1132
  }
1049
1133
  )
1050
1134
  ] });
@@ -1055,14 +1139,16 @@ var SdClients = {
1055
1139
  /** 무한 수평 스크롤 띠 — 호버 시 일시정지 */
1056
1140
  Marquee
1057
1141
  };
1142
+ var SdClientsGrid = Grid4;
1143
+ var SdClientsMarquee = Marquee;
1058
1144
 
1059
1145
  // ui/molecule/Map.tsx
1060
1146
  import { useState as useState2 } from "react";
1061
- import { Box as Box9, Stack as Stack12 } from "@mantine/core";
1062
- import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
1147
+ import { Box as Box10, Stack as Stack13 } from "@mantine/core";
1148
+ import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
1063
1149
  function MapFrame({ address, height }) {
1064
- return /* @__PURE__ */ jsxs13(Stack12, { gap: "xs", children: [
1065
- /* @__PURE__ */ jsx24(Box9, { style: { borderRadius: "var(--mantine-radius-md)", overflow: "hidden", height }, children: /* @__PURE__ */ jsx24(
1150
+ return /* @__PURE__ */ jsxs14(Stack13, { gap: "xs", children: [
1151
+ /* @__PURE__ */ jsx25(Box10, { style: { borderRadius: "var(--mantine-radius-md)", overflow: "hidden", height }, children: /* @__PURE__ */ jsx25(
1066
1152
  "iframe",
1067
1153
  {
1068
1154
  src: address.embbedUrl,
@@ -1075,7 +1161,7 @@ function MapFrame({ address, height }) {
1075
1161
  title: address.label
1076
1162
  }
1077
1163
  ) }),
1078
- /* @__PURE__ */ jsxs13(SdText.Sub, { children: [
1164
+ /* @__PURE__ */ jsxs14(SdText.Sub, { children: [
1079
1165
  "[",
1080
1166
  address.label,
1081
1167
  "] ",
@@ -1083,21 +1169,21 @@ function MapFrame({ address, height }) {
1083
1169
  ] })
1084
1170
  ] });
1085
1171
  }
1086
- function Single(_a) {
1087
- var _b = _a, { address, height = 400 } = _b, boxProps = __objRest(_b, ["address", "height"]);
1172
+ function Single(_a4) {
1173
+ var _b = _a4, { address, height = 400 } = _b, boxProps = __objRest(_b, ["address", "height"]);
1088
1174
  if (!address.embbedUrl) return null;
1089
- return /* @__PURE__ */ jsx24(Box9, __spreadProps(__spreadValues({}, boxProps), { children: /* @__PURE__ */ jsx24(MapFrame, { address, height }) }));
1175
+ return /* @__PURE__ */ jsx25(Box10, __spreadProps(__spreadValues({}, boxProps), { children: /* @__PURE__ */ jsx25(MapFrame, { address, height }) }));
1090
1176
  }
1091
1177
  function Tabs2({ addresses, height = 400 }) {
1092
- var _a, _b, _c;
1178
+ var _a4, _b, _c;
1093
1179
  const mapped = addresses.filter((a) => a.embbedUrl);
1094
- const [active, setActive] = useState2((_b = (_a = mapped[0]) == null ? void 0 : _a.label) != null ? _b : "");
1180
+ const [active, setActive] = useState2((_b = (_a4 = mapped[0]) == null ? void 0 : _a4.label) != null ? _b : "");
1095
1181
  if (mapped.length === 0) return null;
1096
- if (mapped.length === 1) return /* @__PURE__ */ jsx24(MapFrame, { address: mapped[0], height });
1182
+ if (mapped.length === 1) return /* @__PURE__ */ jsx25(MapFrame, { address: mapped[0], height });
1097
1183
  const current = (_c = mapped.find((a) => a.label === active)) != null ? _c : mapped[0];
1098
- return /* @__PURE__ */ jsxs13(Stack12, { gap: "md", children: [
1099
- /* @__PURE__ */ jsx24(SdTabs.Pills, { value: active, onChange: (v) => setActive(v != null ? v : mapped[0].label), children: /* @__PURE__ */ jsx24(SdTabs.Pills.List, { children: mapped.map((addr) => /* @__PURE__ */ jsx24(SdTabs.Pills.Tab, { value: addr.label, children: addr.label }, addr.label)) }) }),
1100
- /* @__PURE__ */ jsx24(MapFrame, { address: current, height })
1184
+ return /* @__PURE__ */ jsxs14(Stack13, { gap: "md", children: [
1185
+ /* @__PURE__ */ jsx25(SdTabs.Pills, { value: active, onChange: (v) => setActive(v != null ? v : mapped[0].label), children: /* @__PURE__ */ jsx25(SdTabs.Pills.List, { children: mapped.map((addr) => /* @__PURE__ */ jsx25(SdTabs.Pills.Tab, { value: addr.label, children: addr.label }, addr.label)) }) }),
1186
+ /* @__PURE__ */ jsx25(MapFrame, { address: current, height })
1101
1187
  ] });
1102
1188
  }
1103
1189
  var SdMap = {
@@ -1106,16 +1192,30 @@ var SdMap = {
1106
1192
  /** 여러 주소 탭 전환 지도 — embbedUrl 있는 항목만 표시 */
1107
1193
  Tabs: Tabs2
1108
1194
  };
1195
+ var SdMapSingle = Single;
1196
+ var SdMapTabs = Tabs2;
1109
1197
 
1110
1198
  // ui/organism/HeroCarousel.tsx
1111
1199
  import { Carousel } from "@mantine/carousel";
1112
- import { Box as Box10, Stack as Stack13 } from "@mantine/core";
1113
- import { Fragment as Fragment3, jsx as jsx25 } from "react/jsx-runtime";
1200
+ import { Anchor as Anchor2, Box as Box11, Group as Group8, Stack as Stack14 } from "@mantine/core";
1201
+ import { IconArrowNarrowRight } from "@tabler/icons-react";
1202
+ import { Fragment as Fragment3, jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
1203
+ var variantMap = {
1204
+ primary: SdButton.Primary,
1205
+ secondary: SdButton.Secondary,
1206
+ outline: SdButton.Outline,
1207
+ white: SdButton.White
1208
+ };
1209
+ function CtaButton({ cta }) {
1210
+ var _a4;
1211
+ const Button3 = variantMap[(_a4 = cta.variant) != null ? _a4 : "primary"];
1212
+ return /* @__PURE__ */ jsx26(Anchor2, { href: cta.href, underline: "never", children: cta.icon ? /* @__PURE__ */ jsx26(Button3, { size: "md", rightSection: /* @__PURE__ */ jsx26(IconArrowNarrowRight, {}), children: cta.label }) : /* @__PURE__ */ jsx26(Button3, { size: "md", children: cta.label }) });
1213
+ }
1114
1214
  function HeroCarousel({ slides, children }) {
1115
- if (children) return /* @__PURE__ */ jsx25(Fragment3, { children });
1215
+ if (children) return /* @__PURE__ */ jsx26(Fragment3, { children });
1116
1216
  const filterdSlides = filterAndSort(slides);
1117
- return /* @__PURE__ */ jsx25(Carousel, { withIndicators: true, height: "60svh", children: filterdSlides.map((slide, i) => /* @__PURE__ */ jsx25(Carousel.Slide, { children: /* @__PURE__ */ jsx25(
1118
- Box10,
1217
+ return /* @__PURE__ */ jsx26(Carousel, { withIndicators: true, height: "60svh", children: filterdSlides.map((slide, i) => /* @__PURE__ */ jsx26(Carousel.Slide, { children: /* @__PURE__ */ jsx26(
1218
+ Box11,
1119
1219
  {
1120
1220
  style: {
1121
1221
  height: "100%",
@@ -1126,125 +1226,121 @@ function HeroCarousel({ slides, children }) {
1126
1226
  alignItems: "center",
1127
1227
  justifyContent: "center"
1128
1228
  },
1129
- children: /* @__PURE__ */ jsx25(Stack13, { align: "center", style: { textAlign: "center", maxWidth: 780 }, px: "xl", children: /* @__PURE__ */ jsx25(
1130
- SdTextBox.Hero,
1131
- {
1132
- title: slide.title,
1133
- description: slide.description,
1134
- ta: "center",
1135
- align: "center"
1136
- }
1137
- ) })
1229
+ children: /* @__PURE__ */ jsxs15(Stack14, { align: "center", style: { textAlign: "center", maxWidth: 780 }, px: "xl", children: [
1230
+ /* @__PURE__ */ jsx26(
1231
+ SdTextBox.Hero,
1232
+ {
1233
+ title: slide.title,
1234
+ description: slide.description,
1235
+ ta: "center",
1236
+ align: "center"
1237
+ }
1238
+ ),
1239
+ slide.ctas && slide.ctas.length > 0 && /* @__PURE__ */ jsx26(Group8, { gap: "sm", mt: "md", children: slide.ctas.map((cta, i2) => /* @__PURE__ */ jsx26(CtaButton, { cta }, cta.href)) })
1240
+ ] })
1138
1241
  }
1139
1242
  ) }, i)) });
1140
1243
  }
1141
1244
 
1142
1245
  // ui/organism/Header.tsx
1143
- import { Anchor as Anchor2, Drawer, Group as Group8, Burger, Stack as Stack14 } from "@mantine/core";
1246
+ import { Anchor as Anchor3, Drawer, Group as Group9, Burger, Stack as Stack15 } from "@mantine/core";
1144
1247
  import { useDisclosure } from "@mantine/hooks";
1145
- import { Fragment as Fragment4, jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
1248
+ import { Fragment as Fragment4, jsx as jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
1146
1249
  function SdHeader({ navItems, loginFlag, children }) {
1147
1250
  const [opened, { toggle, close }] = useDisclosure();
1148
1251
  const visibleTopItems = navItems.filter((item) => item.isShow && !item.parentId).sort((a, b) => a.order - b.order);
1149
- return /* @__PURE__ */ jsxs14(Fragment4, { children: [
1150
- /* @__PURE__ */ jsx26(SdContainer, { h: "100%", children: /* @__PURE__ */ jsxs14(Group8, { justify: "space-between", h: "100%", children: [
1151
- /* @__PURE__ */ jsx26(Logo, {}),
1152
- /* @__PURE__ */ jsx26(Group8, { gap: "xl", visibleFrom: "sm", children: visibleTopItems.map((item) => /* @__PURE__ */ jsx26(Anchor2, { href: item.href, c: "slate.7", fw: 500, underline: "never", fz: 15, children: item.label }, item.id)) }),
1153
- /* @__PURE__ */ jsx26(Burger, { hiddenFrom: "sm", opened, onClick: toggle }),
1154
- loginFlag && /* @__PURE__ */ jsxs14(Group8, { gap: "sm", visibleFrom: "sm", children: [
1155
- /* @__PURE__ */ jsx26(SdButton.Ghost, { size: "sm", children: "\uB85C\uADF8\uC778" }),
1156
- /* @__PURE__ */ jsx26(SdButton.Primary, { size: "sm", children: "\uBB34\uB8CC \uC2DC\uC791" })
1252
+ return /* @__PURE__ */ jsxs16(Fragment4, { children: [
1253
+ /* @__PURE__ */ jsx27(SdContainer, { h: "100%", children: /* @__PURE__ */ jsxs16(Group9, { justify: "space-between", h: "100%", children: [
1254
+ /* @__PURE__ */ jsx27(Logo, {}),
1255
+ /* @__PURE__ */ jsx27(Group9, { gap: "xl", visibleFrom: "sm", children: visibleTopItems.map((item) => /* @__PURE__ */ jsx27(Anchor3, { href: item.href, c: "slate.7", fw: 500, underline: "never", fz: 15, children: item.label }, item.id)) }),
1256
+ /* @__PURE__ */ jsx27(Burger, { hiddenFrom: "sm", opened, onClick: toggle }),
1257
+ loginFlag && /* @__PURE__ */ jsxs16(Group9, { gap: "sm", visibleFrom: "sm", children: [
1258
+ /* @__PURE__ */ jsx27(SdButton.Ghost, { size: "sm", children: "\uB85C\uADF8\uC778" }),
1259
+ /* @__PURE__ */ jsx27(SdButton.Primary, { size: "sm", children: "\uBB34\uB8CC \uC2DC\uC791" })
1157
1260
  ] }),
1158
1261
  children
1159
1262
  ] }) }),
1160
- /* @__PURE__ */ jsx26(Drawer, { opened, onClose: close, hiddenFrom: "sm", size: "xs", children: /* @__PURE__ */ jsxs14(Stack14, { children: [
1161
- visibleTopItems.map((item) => /* @__PURE__ */ jsx26(Anchor2, { href: item.href, c: "slate.7", fw: 500, underline: "never", fz: 16, onClick: close, children: item.label }, item.id)),
1162
- loginFlag && /* @__PURE__ */ jsxs14(Stack14, { gap: "xs", mt: "md", children: [
1163
- /* @__PURE__ */ jsx26(SdButton.Ghost, { size: "sm", children: "\uB85C\uADF8\uC778" }),
1164
- /* @__PURE__ */ jsx26(SdButton.Primary, { size: "sm", children: "\uBB34\uB8CC \uC2DC\uC791" })
1263
+ /* @__PURE__ */ jsx27(Drawer, { opened, onClose: close, hiddenFrom: "sm", size: "xs", children: /* @__PURE__ */ jsxs16(Stack15, { children: [
1264
+ visibleTopItems.map((item) => /* @__PURE__ */ jsx27(Anchor3, { href: item.href, c: "slate.7", fw: 500, underline: "never", fz: 16, onClick: close, children: item.label }, item.id)),
1265
+ loginFlag && /* @__PURE__ */ jsxs16(Stack15, { gap: "xs", mt: "md", children: [
1266
+ /* @__PURE__ */ jsx27(SdButton.Ghost, { size: "sm", children: "\uB85C\uADF8\uC778" }),
1267
+ /* @__PURE__ */ jsx27(SdButton.Primary, { size: "sm", children: "\uBB34\uB8CC \uC2DC\uC791" })
1165
1268
  ] })
1166
1269
  ] }) })
1167
1270
  ] });
1168
1271
  }
1169
1272
 
1170
- // ui/organism/Footer/index.tsx
1171
- import { Anchor as Anchor5, Box as Box11, Divider as Divider3, Grid as Grid5, Group as Group11 } from "@mantine/core";
1172
-
1173
- // ui/organism/Footer/FooterBrand.tsx
1174
- import { jsx as jsx27 } from "react/jsx-runtime";
1175
- function FooterBrand() {
1176
- return /* @__PURE__ */ jsx27(Logo, { size: "xs" });
1177
- }
1178
-
1179
- // ui/organism/Footer/FooterContact.tsx
1180
- import { Anchor as Anchor3, Group as Group9 } from "@mantine/core";
1181
- import { jsx as jsx28, jsxs as jsxs15 } from "react/jsx-runtime";
1182
- function FooterContact({ company }) {
1183
- return /* @__PURE__ */ jsxs15(Group9, { gap: "lg", wrap: "wrap", children: [
1184
- /* @__PURE__ */ jsx28(SdText.Sub, { c: "slate.5", children: company.name }),
1185
- /* @__PURE__ */ jsxs15(SdText.Sub, { c: "slate.5", children: [
1273
+ // ui/organism/Footer.tsx
1274
+ import { Anchor as Anchor4, Box as Box12, Divider as Divider3, Grid as Grid5, Group as Group10, Stack as Stack16 } from "@mantine/core";
1275
+ import { Fragment as Fragment5, jsx as jsx28, jsxs as jsxs17 } from "react/jsx-runtime";
1276
+ function FooterNavColumns({ items }) {
1277
+ const topLevel = items.filter((item) => !item.parentId);
1278
+ const getChildren = (parentId) => items.filter((item) => item.parentId === parentId);
1279
+ return /* @__PURE__ */ jsx28(Fragment5, { children: topLevel.map((group) => /* @__PURE__ */ jsx28(Grid5.Col, { span: { base: 6, sm: 4, md: "auto" }, children: /* @__PURE__ */ jsxs17(Stack16, { gap: "sm", children: [
1280
+ /* @__PURE__ */ jsx28(SdText.Strong, { fz: "sm", children: group.label }),
1281
+ getChildren(group.id).map((link) => /* @__PURE__ */ jsx28(
1282
+ Anchor4,
1283
+ {
1284
+ href: link.href,
1285
+ fz: "sm",
1286
+ c: "slate.6",
1287
+ underline: "never",
1288
+ style: { transition: "color 0.15s" },
1289
+ onMouseEnter: (e) => {
1290
+ e.currentTarget.style.color = "var(--mantine-color-primary-6)";
1291
+ },
1292
+ onMouseLeave: (e) => {
1293
+ e.currentTarget.style.color = "";
1294
+ },
1295
+ children: link.label
1296
+ },
1297
+ link.id
1298
+ ))
1299
+ ] }) }, group.id)) });
1300
+ }
1301
+ function FooterCompanyInfo({ company }) {
1302
+ const sortedAddresses = [...company.addresses].sort((a, b) => a.order - b.order);
1303
+ return /* @__PURE__ */ jsxs17(Group10, { gap: "xs", wrap: "wrap", children: [
1304
+ /* @__PURE__ */ jsx28(SdText.Sub, { children: company.name }),
1305
+ /* @__PURE__ */ jsx28(SdText.Sub, { c: "slate.4", children: "|" }),
1306
+ /* @__PURE__ */ jsxs17(SdText.Sub, { children: [
1186
1307
  "\uC0AC\uC5C5\uC790\uB4F1\uB85D\uBC88\uD638 ",
1187
1308
  company.registrationNumber
1188
1309
  ] }),
1189
- company.addresses.map((addr) => /* @__PURE__ */ jsx28(SdText.Sub, { c: "slate.5", children: addr.address }, addr.label)),
1190
- /* @__PURE__ */ jsxs15(Anchor3, { href: `tel:${company.tel}`, fz: "xs", c: "slate.5", underline: "never", children: [
1310
+ sortedAddresses.map((addr) => /* @__PURE__ */ jsxs17(Group10, { gap: "xs", wrap: "nowrap", children: [
1311
+ /* @__PURE__ */ jsx28(SdText.Sub, { c: "slate.4", children: "|" }),
1312
+ /* @__PURE__ */ jsx28(SdText.Sub, { children: addr.address })
1313
+ ] }, addr.label)),
1314
+ /* @__PURE__ */ jsx28(SdText.Sub, { c: "slate.4", children: "|" }),
1315
+ /* @__PURE__ */ jsxs17(Anchor4, { href: `tel:${company.tel}`, fz: "xs", c: "slate.5", underline: "never", children: [
1191
1316
  "Tel ",
1192
1317
  company.tel
1193
1318
  ] }),
1194
- company.fax && /* @__PURE__ */ jsxs15(SdText.Sub, { c: "slate.5", children: [
1195
- "Fax ",
1196
- company.fax
1319
+ company.fax && /* @__PURE__ */ jsxs17(Fragment5, { children: [
1320
+ /* @__PURE__ */ jsx28(SdText.Sub, { c: "slate.4", children: "|" }),
1321
+ /* @__PURE__ */ jsxs17(SdText.Sub, { children: [
1322
+ "Fax ",
1323
+ company.fax
1324
+ ] })
1197
1325
  ] }),
1198
- /* @__PURE__ */ jsx28(Anchor3, { href: `mailto:${company.email}`, fz: "xs", c: "slate.5", underline: "never", children: company.email })
1326
+ /* @__PURE__ */ jsx28(SdText.Sub, { c: "slate.4", children: "|" }),
1327
+ /* @__PURE__ */ jsx28(Anchor4, { href: `mailto:${company.email}`, fz: "xs", c: "slate.5", underline: "never", children: company.email })
1199
1328
  ] });
1200
1329
  }
1201
-
1202
- // ui/organism/Footer/FooterNav.tsx
1203
- import { Anchor as Anchor4, Group as Group10, Stack as Stack15 } from "@mantine/core";
1204
- import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
1205
- function FooterNav({ items }) {
1206
- const topLevel = items.filter((item) => !item.parentId);
1207
- const getChildren = (parentId) => items.filter((item) => item.parentId === parentId);
1208
- return /* @__PURE__ */ jsx29(Group10, { gap: 48, align: "flex-start", wrap: "wrap", children: topLevel.map((item) => {
1209
- const children = getChildren(item.id);
1210
- return /* @__PURE__ */ jsxs16(Stack15, { gap: "sm", children: [
1211
- /* @__PURE__ */ jsx29(SdText.Eyebrow, { c: "slate.4", children: item.label }),
1212
- children.map((child) => /* @__PURE__ */ jsx29(
1213
- Anchor4,
1214
- {
1215
- href: child.href,
1216
- fz: "xs",
1217
- c: "slate.5",
1218
- underline: "never",
1219
- style: { transition: "color 0.15s" },
1220
- onMouseEnter: (e) => {
1221
- e.currentTarget.style.color = "var(--mantine-color-slate-1)";
1222
- },
1223
- onMouseLeave: (e) => {
1224
- e.currentTarget.style.color = "";
1225
- },
1226
- children: child.label
1227
- },
1228
- child.id
1229
- ))
1230
- ] }, item.id);
1231
- }) });
1232
- }
1233
-
1234
- // ui/organism/Footer/index.tsx
1235
- import { jsx as jsx30, jsxs as jsxs17 } from "react/jsx-runtime";
1236
- function SdFooter({ company, utilityLinks, policyLinks }) {
1237
- const visibleUtility = filterAndSort(utilityLinks);
1330
+ function SdFooter({ company, navItems, policyLinks, description }) {
1331
+ const visibleNav = filterAndSort(navItems);
1238
1332
  const visiblePolicy = filterAndSort(policyLinks);
1239
- return /* @__PURE__ */ jsxs17(Box11, { children: [
1240
- /* @__PURE__ */ jsxs17(Grid5, { style: { "--grid-gutter": "48px" }, align: "flex-start", children: [
1241
- /* @__PURE__ */ jsx30(Grid5.Col, { span: { base: 12, md: 3 }, children: /* @__PURE__ */ jsx30(FooterBrand, {}) }),
1242
- /* @__PURE__ */ jsx30(Grid5.Col, { span: { base: 12, md: 9 }, children: /* @__PURE__ */ jsx30(FooterNav, { items: visibleUtility != null ? visibleUtility : [] }) })
1333
+ return /* @__PURE__ */ jsx28(Box12, { component: "footer", py: "xl", children: /* @__PURE__ */ jsxs17(SdContainer, { children: [
1334
+ /* @__PURE__ */ jsxs17(Grid5, { style: { "--grid-gutter": "48px" }, children: [
1335
+ /* @__PURE__ */ jsx28(Grid5.Col, { span: { base: 12, md: 4 }, children: /* @__PURE__ */ jsxs17(Stack16, { gap: "md", children: [
1336
+ /* @__PURE__ */ jsx28(Logo, { size: "sm" }),
1337
+ description && /* @__PURE__ */ jsx28(SdText.Body, { c: "slate.4", fz: "sm", children: description })
1338
+ ] }) }),
1339
+ visibleNav.length > 0 && /* @__PURE__ */ jsx28(Grid5.Col, { span: { base: 12, md: 8 }, children: /* @__PURE__ */ jsx28(Grid5, { style: { "--grid-gutter": "24px" }, children: /* @__PURE__ */ jsx28(FooterNavColumns, { items: visibleNav }) }) })
1243
1340
  ] }),
1244
- /* @__PURE__ */ jsx30(Divider3, {}),
1245
- /* @__PURE__ */ jsx30(FooterContact, { company }),
1246
- /* @__PURE__ */ jsx30(Divider3, {}),
1247
- /* @__PURE__ */ jsxs17(Group11, { justify: "space-between", wrap: "wrap", gap: "xs", children: [
1341
+ /* @__PURE__ */ jsx28(Divider3, {}),
1342
+ /* @__PURE__ */ jsx28(FooterCompanyInfo, { company }),
1343
+ /* @__PURE__ */ jsxs17(Group10, { justify: "space-between", wrap: "wrap", gap: "xs", mt: "md", children: [
1248
1344
  /* @__PURE__ */ jsxs17(SdText.Sub, { c: "slate.5", children: [
1249
1345
  "\xA9 ",
1250
1346
  company.copyrightYear,
@@ -1252,26 +1348,27 @@ function SdFooter({ company, utilityLinks, policyLinks }) {
1252
1348
  company.name,
1253
1349
  ". All rights reserved."
1254
1350
  ] }),
1255
- visiblePolicy.length > 0 && /* @__PURE__ */ jsx30(Group11, { gap: "lg", children: visiblePolicy.map((item) => /* @__PURE__ */ jsx30(
1256
- Anchor5,
1351
+ visiblePolicy.length > 0 && /* @__PURE__ */ jsx28(Group10, { gap: "lg", children: visiblePolicy.map((item) => /* @__PURE__ */ jsx28(
1352
+ Anchor4,
1257
1353
  {
1258
1354
  href: item.href,
1259
1355
  fz: "xs",
1260
- c: item.highlight ? "primary.6" : "slate.5",
1356
+ fw: item.highlight ? 700 : 400,
1357
+ c: item.highlight ? "white" : "slate.5",
1261
1358
  underline: "never",
1262
1359
  children: item.label
1263
1360
  },
1264
1361
  item.id
1265
1362
  )) })
1266
1363
  ] })
1267
- ] });
1364
+ ] }) });
1268
1365
  }
1269
1366
 
1270
1367
  // ui/organism/FeatureSection.tsx
1271
- import { Stack as Stack16 } from "@mantine/core";
1272
- import { jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
1273
- function SdFeatureSection(_a) {
1274
- var _b = _a, {
1368
+ import { Stack as Stack17 } from "@mantine/core";
1369
+ import { jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
1370
+ function SdFeatureSection(_a4) {
1371
+ var _b = _a4, {
1275
1372
  label,
1276
1373
  title,
1277
1374
  description,
@@ -1286,8 +1383,8 @@ function SdFeatureSection(_a) {
1286
1383
  "cols",
1287
1384
  "py"
1288
1385
  ]);
1289
- return /* @__PURE__ */ jsx31(SdContainer, __spreadProps(__spreadValues({ py }, boxProps), { children: /* @__PURE__ */ jsxs18(Stack16, { gap: "xl", children: [
1290
- /* @__PURE__ */ jsx31(
1386
+ return /* @__PURE__ */ jsx29(SdContainer, __spreadProps(__spreadValues({ py }, boxProps), { children: /* @__PURE__ */ jsxs18(Stack17, { gap: "xl", children: [
1387
+ /* @__PURE__ */ jsx29(
1291
1388
  SdTextBox.Section,
1292
1389
  {
1293
1390
  label,
@@ -1298,15 +1395,15 @@ function SdFeatureSection(_a) {
1298
1395
  align: "center"
1299
1396
  }
1300
1397
  ),
1301
- /* @__PURE__ */ jsx31(SdFeatures, { items, cols })
1398
+ /* @__PURE__ */ jsx29(SdFeatures, { items, cols })
1302
1399
  ] }) }));
1303
1400
  }
1304
1401
 
1305
1402
  // ui/organism/TimelineSection.tsx
1306
- import { Center as Center3, Stack as Stack17 } from "@mantine/core";
1307
- import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
1308
- function SdTimelineSection(_a) {
1309
- var _b = _a, {
1403
+ import { Center as Center3, Stack as Stack18 } from "@mantine/core";
1404
+ import { jsx as jsx30, jsxs as jsxs19 } from "react/jsx-runtime";
1405
+ function SdTimelineSection(_a4) {
1406
+ var _b = _a4, {
1310
1407
  label,
1311
1408
  title,
1312
1409
  description,
@@ -1319,8 +1416,8 @@ function SdTimelineSection(_a) {
1319
1416
  "items",
1320
1417
  "py"
1321
1418
  ]);
1322
- return /* @__PURE__ */ jsx32(Center3, { children: /* @__PURE__ */ jsxs19(Stack17, __spreadProps(__spreadValues({ py, gap: "md" }, boxProps), { children: [
1323
- /* @__PURE__ */ jsx32(
1419
+ return /* @__PURE__ */ jsx30(Center3, { children: /* @__PURE__ */ jsxs19(Stack18, __spreadProps(__spreadValues({ py, gap: "md" }, boxProps), { children: [
1420
+ /* @__PURE__ */ jsx30(
1324
1421
  SdTextBox.Section,
1325
1422
  {
1326
1423
  label,
@@ -1328,15 +1425,15 @@ function SdTimelineSection(_a) {
1328
1425
  description
1329
1426
  }
1330
1427
  ),
1331
- /* @__PURE__ */ jsx32(Center3, { children: /* @__PURE__ */ jsx32(SdTimeline, { items }) })
1428
+ /* @__PURE__ */ jsx30(Center3, { children: /* @__PURE__ */ jsx30(SdTimeline, { items }) })
1332
1429
  ] })) });
1333
1430
  }
1334
1431
 
1335
1432
  // ui/organism/StepsSection.tsx
1336
- import { Stack as Stack18 } from "@mantine/core";
1337
- import { jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
1338
- function SdStepsSection(_a) {
1339
- var _b = _a, {
1433
+ import { Stack as Stack19 } from "@mantine/core";
1434
+ import { jsx as jsx31, jsxs as jsxs20 } from "react/jsx-runtime";
1435
+ function SdStepsSection(_a4) {
1436
+ var _b = _a4, {
1340
1437
  label,
1341
1438
  title,
1342
1439
  description,
@@ -1349,17 +1446,17 @@ function SdStepsSection(_a) {
1349
1446
  "items",
1350
1447
  "py"
1351
1448
  ]);
1352
- return /* @__PURE__ */ jsx33(SdContainer, __spreadProps(__spreadValues({ py }, boxProps), { children: /* @__PURE__ */ jsxs20(Stack18, { gap: "xl", children: [
1353
- (label || title || description) && /* @__PURE__ */ jsx33(SdTextBox.Section, { label, title, description }),
1354
- /* @__PURE__ */ jsx33(SdSteps.Bubble, { items })
1449
+ return /* @__PURE__ */ jsx31(SdContainer, __spreadProps(__spreadValues({ py }, boxProps), { children: /* @__PURE__ */ jsxs20(Stack19, { gap: "xl", children: [
1450
+ (label || title || description) && /* @__PURE__ */ jsx31(SdTextBox.Section, { label, title, description }),
1451
+ /* @__PURE__ */ jsx31(SdSteps.Bubble, { items })
1355
1452
  ] }) }));
1356
1453
  }
1357
1454
 
1358
1455
  // ui/organism/ErrorView.tsx
1359
- import { Center as Center4, Group as Group12, Stack as Stack19, Text as Text2 } from "@mantine/core";
1360
- import { jsx as jsx34, jsxs as jsxs21 } from "react/jsx-runtime";
1456
+ import { Center as Center4, Group as Group11, Stack as Stack20, Text as Text2 } from "@mantine/core";
1457
+ import { jsx as jsx32, jsxs as jsxs21 } from "react/jsx-runtime";
1361
1458
  function StatusCode({ code }) {
1362
- return /* @__PURE__ */ jsx34(
1459
+ return /* @__PURE__ */ jsx32(
1363
1460
  Text2,
1364
1461
  {
1365
1462
  fz: 160,
@@ -1373,19 +1470,15 @@ function StatusCode({ code }) {
1373
1470
  );
1374
1471
  }
1375
1472
  function Page({ error, onReset, onHome }) {
1376
- return /* @__PURE__ */ jsx34(Center4, { mih: "60vh", children: /* @__PURE__ */ jsx34(SdContainer, { children: /* @__PURE__ */ jsxs21(Stack19, { align: "center", gap: "lg", ta: "center", children: [
1377
- /* @__PURE__ */ jsx34(StatusCode, { code: "500" }),
1378
- /* @__PURE__ */ jsxs21(Stack19, { gap: "sm", align: "center", children: [
1379
- /* @__PURE__ */ jsx34(SdTitle.Section, { children: "\uC11C\uBC84\uC5D0\uC11C \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4" }),
1380
- /* @__PURE__ */ jsx34(SdText.Body, { maw: 480, children: error.message || "\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." }),
1381
- /* @__PURE__ */ jsxs21(SdText.Sub, { children: [
1382
- "\uC624\uB958 \uCF54\uB4DC: ",
1383
- error.digest
1384
- ] })
1473
+ return /* @__PURE__ */ jsx32(Center4, { mih: "60vh", children: /* @__PURE__ */ jsx32(SdContainer, { children: /* @__PURE__ */ jsxs21(Stack20, { align: "center", gap: "lg", ta: "center", children: [
1474
+ /* @__PURE__ */ jsx32(StatusCode, { code: "500" }),
1475
+ /* @__PURE__ */ jsxs21(Stack20, { gap: "sm", align: "center", children: [
1476
+ /* @__PURE__ */ jsx32(SdTitle.Section, { children: "\uC11C\uBC84\uC5D0\uC11C \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4" }),
1477
+ /* @__PURE__ */ jsx32(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." })
1385
1478
  ] }),
1386
- /* @__PURE__ */ jsxs21(Group12, { gap: "sm", justify: "center", children: [
1387
- /* @__PURE__ */ jsx34(SdButton.Primary, { onClick: onReset, children: "\uB2E4\uC2DC \uC2DC\uB3C4" }),
1388
- onHome && /* @__PURE__ */ jsx34(SdButton.Ghost, { onClick: onHome, children: "\uD648\uC73C\uB85C" })
1479
+ /* @__PURE__ */ jsxs21(Group11, { gap: "sm", justify: "center", children: [
1480
+ /* @__PURE__ */ jsx32(SdButton.Primary, { onClick: onReset, children: "\uB2E4\uC2DC \uC2DC\uB3C4" }),
1481
+ onHome && /* @__PURE__ */ jsx32(SdButton.Ghost, { onClick: onHome, children: "\uD648\uC73C\uB85C" })
1389
1482
  ] })
1390
1483
  ] }) }) });
1391
1484
  }
@@ -1397,15 +1490,15 @@ function NotFound({
1397
1490
  },
1398
1491
  onBack = () => window.history.back()
1399
1492
  }) {
1400
- return /* @__PURE__ */ jsx34(Center4, { mih: "60vh", children: /* @__PURE__ */ jsx34(SdContainer, { children: /* @__PURE__ */ jsxs21(Stack19, { align: "center", gap: "lg", ta: "center", children: [
1401
- /* @__PURE__ */ jsx34(StatusCode, { code: "404" }),
1402
- /* @__PURE__ */ jsxs21(Stack19, { gap: "sm", align: "center", children: [
1403
- /* @__PURE__ */ jsx34(SdTitle.Section, { children: title }),
1404
- /* @__PURE__ */ jsx34(SdText.Body, { maw: 480, children: description })
1493
+ return /* @__PURE__ */ jsx32(Center4, { mih: "60vh", children: /* @__PURE__ */ jsx32(SdContainer, { children: /* @__PURE__ */ jsxs21(Stack20, { align: "center", gap: "lg", ta: "center", children: [
1494
+ /* @__PURE__ */ jsx32(StatusCode, { code: "404" }),
1495
+ /* @__PURE__ */ jsxs21(Stack20, { gap: "sm", align: "center", children: [
1496
+ /* @__PURE__ */ jsx32(SdTitle.Section, { children: title }),
1497
+ /* @__PURE__ */ jsx32(SdText.Body, { maw: 480, children: description })
1405
1498
  ] }),
1406
- /* @__PURE__ */ jsxs21(Group12, { gap: "sm", justify: "center", children: [
1407
- onHome && /* @__PURE__ */ jsx34(SdButton.Primary, { onClick: onHome, children: "\uD648\uC73C\uB85C" }),
1408
- onBack && /* @__PURE__ */ jsx34(SdButton.Ghost, { onClick: onBack, children: "\uB4A4\uB85C \uAC00\uAE30" })
1499
+ /* @__PURE__ */ jsxs21(Group11, { gap: "sm", justify: "center", children: [
1500
+ onHome && /* @__PURE__ */ jsx32(SdButton.Primary, { onClick: onHome, children: "\uD648\uC73C\uB85C" }),
1501
+ onBack && /* @__PURE__ */ jsx32(SdButton.Ghost, { onClick: onBack, children: "\uB4A4\uB85C \uAC00\uAE30" })
1409
1502
  ] })
1410
1503
  ] }) }) });
1411
1504
  }
@@ -1418,27 +1511,27 @@ var SdErrorView = {
1418
1511
 
1419
1512
  // ui/template/MainLayout.tsx
1420
1513
  import { AppShell } from "@mantine/core";
1421
- import { jsx as jsx35, jsxs as jsxs22 } from "react/jsx-runtime";
1514
+ import { jsx as jsx33, jsxs as jsxs22 } from "react/jsx-runtime";
1422
1515
  function MainLayout({ children, navItems, companyInfo }) {
1423
1516
  return /* @__PURE__ */ jsxs22(AppShell, { header: { height: 60 }, children: [
1424
- /* @__PURE__ */ jsx35(AppShell.Header, { children: /* @__PURE__ */ jsx35(SdHeader, { navItems }) }),
1425
- /* @__PURE__ */ jsx35(AppShell.Main, { children }),
1426
- /* @__PURE__ */ jsx35(SdFooter, { company: companyInfo, utilityLinks: navItems })
1517
+ /* @__PURE__ */ jsx33(AppShell.Header, { children: /* @__PURE__ */ jsx33(SdHeader, { navItems }) }),
1518
+ /* @__PURE__ */ jsx33(AppShell.Main, { children }),
1519
+ /* @__PURE__ */ jsx33(SdFooter, { company: companyInfo })
1427
1520
  ] });
1428
1521
  }
1429
1522
 
1430
1523
  // ui/template/PageLayout.tsx
1431
- import { Box as Box13, Divider as Divider4, Space } from "@mantine/core";
1432
- import { Fragment as Fragment5, jsx as jsx36, jsxs as jsxs23 } from "react/jsx-runtime";
1524
+ import { Box as Box14, Divider as Divider4, Space } from "@mantine/core";
1525
+ import { Fragment as Fragment6, jsx as jsx34, jsxs as jsxs23 } from "react/jsx-runtime";
1433
1526
  function Content({ children }) {
1434
- return /* @__PURE__ */ jsx36(SdContainer, { py: "xl", children });
1527
+ return /* @__PURE__ */ jsx34(SdContainer, { py: "xl", children });
1435
1528
  }
1436
1529
  function LayoutGap() {
1437
- return /* @__PURE__ */ jsx36(Space, { h: 48 });
1530
+ return /* @__PURE__ */ jsx34(Space, { h: 48 });
1438
1531
  }
1439
1532
  function Minimal({ label, title, description, children }) {
1440
- return /* @__PURE__ */ jsx36(Fragment5, { children: /* @__PURE__ */ jsxs23(Plain2, { children: [
1441
- /* @__PURE__ */ jsx36(
1533
+ return /* @__PURE__ */ jsx34(Fragment6, { children: /* @__PURE__ */ jsxs23(Plain2, { children: [
1534
+ /* @__PURE__ */ jsx34(
1442
1535
  SdTextBox.Section,
1443
1536
  {
1444
1537
  label,
@@ -1447,19 +1540,19 @@ function Minimal({ label, title, description, children }) {
1447
1540
  mb: "xl"
1448
1541
  }
1449
1542
  ),
1450
- /* @__PURE__ */ jsx36(Divider4, {}),
1543
+ /* @__PURE__ */ jsx34(Divider4, {}),
1451
1544
  children
1452
1545
  ] }) });
1453
1546
  }
1454
1547
  function Plain2({ children }) {
1455
- return /* @__PURE__ */ jsxs23(Fragment5, { children: [
1456
- /* @__PURE__ */ jsx36(LayoutGap, {}),
1457
- /* @__PURE__ */ jsx36(Content, { children })
1548
+ return /* @__PURE__ */ jsxs23(Fragment6, { children: [
1549
+ /* @__PURE__ */ jsx34(LayoutGap, {}),
1550
+ /* @__PURE__ */ jsx34(Content, { children })
1458
1551
  ] });
1459
1552
  }
1460
1553
  function Image2({ image, label, title, description, children }) {
1461
- return /* @__PURE__ */ jsxs23(Fragment5, { children: [
1462
- /* @__PURE__ */ jsxs23(Box13, { style: {
1554
+ return /* @__PURE__ */ jsxs23(Fragment6, { children: [
1555
+ /* @__PURE__ */ jsxs23(Box14, { style: {
1463
1556
  position: "relative",
1464
1557
  minHeight: "30svh",
1465
1558
  display: "flex",
@@ -1469,13 +1562,13 @@ function Image2({ image, label, title, description, children }) {
1469
1562
  backgroundPosition: "center",
1470
1563
  backgroundColor: "var(--mantine-color-slate-9)"
1471
1564
  }, children: [
1472
- /* @__PURE__ */ jsx36(Box13, { style: {
1565
+ /* @__PURE__ */ jsx34(Box14, { style: {
1473
1566
  position: "absolute",
1474
1567
  inset: 0,
1475
1568
  background: "rgba(0, 0, 0, 0.55)"
1476
1569
  } }),
1477
- /* @__PURE__ */ jsx36(SdContainer, { style: { position: "relative", zIndex: 1, width: "100%" }, children: /* @__PURE__ */ jsx36(
1478
- Box13,
1570
+ /* @__PURE__ */ jsx34(SdContainer, { style: { position: "relative", zIndex: 1, width: "100%" }, children: /* @__PURE__ */ jsx34(
1571
+ Box14,
1479
1572
  {
1480
1573
  py: 48,
1481
1574
  px: 40,
@@ -1487,7 +1580,7 @@ function Image2({ image, label, title, description, children }) {
1487
1580
  borderRadius: "var(--mantine-radius-md)",
1488
1581
  border: "1px solid rgba(255,255,255,0.18)"
1489
1582
  },
1490
- children: /* @__PURE__ */ jsx36(
1583
+ children: /* @__PURE__ */ jsx34(
1491
1584
  SdTextBox.Hero,
1492
1585
  {
1493
1586
  label,
@@ -1500,12 +1593,12 @@ function Image2({ image, label, title, description, children }) {
1500
1593
  }
1501
1594
  ) })
1502
1595
  ] }),
1503
- /* @__PURE__ */ jsx36(Content, { children })
1596
+ /* @__PURE__ */ jsx34(Content, { children })
1504
1597
  ] });
1505
1598
  }
1506
1599
  function Brand({ label, title, description, children }) {
1507
- return /* @__PURE__ */ jsxs23(Fragment5, { children: [
1508
- /* @__PURE__ */ jsxs23(Box13, { style: {
1600
+ return /* @__PURE__ */ jsxs23(Fragment6, { children: [
1601
+ /* @__PURE__ */ jsxs23(Box14, { style: {
1509
1602
  position: "relative",
1510
1603
  minHeight: "40svh",
1511
1604
  display: "flex",
@@ -1513,7 +1606,7 @@ function Brand({ label, title, description, children }) {
1513
1606
  overflow: "hidden",
1514
1607
  background: "linear-gradient(135deg, var(--mantine-color-primary-8) 0%, var(--mantine-color-primary-6) 50%, var(--mantine-color-primary-4) 100%)"
1515
1608
  }, children: [
1516
- /* @__PURE__ */ jsx36(Box13, { style: {
1609
+ /* @__PURE__ */ jsx34(Box14, { style: {
1517
1610
  position: "absolute",
1518
1611
  top: -80,
1519
1612
  right: -80,
@@ -1523,7 +1616,7 @@ function Brand({ label, title, description, children }) {
1523
1616
  background: "rgba(255,255,255,0.06)",
1524
1617
  pointerEvents: "none"
1525
1618
  } }),
1526
- /* @__PURE__ */ jsx36(Box13, { style: {
1619
+ /* @__PURE__ */ jsx34(Box14, { style: {
1527
1620
  position: "absolute",
1528
1621
  bottom: -60,
1529
1622
  left: -60,
@@ -1533,9 +1626,9 @@ function Brand({ label, title, description, children }) {
1533
1626
  background: "rgba(255,255,255,0.04)",
1534
1627
  pointerEvents: "none"
1535
1628
  } }),
1536
- /* @__PURE__ */ jsx36(SdContainer, { style: { position: "relative", zIndex: 1, width: "100%" }, children: /* @__PURE__ */ jsx36(SdTextBox.Hero, { label, title, description, ta: "center", align: "center", maw: 640, mx: "auto", pt: 80, pb: 64 }) })
1629
+ /* @__PURE__ */ jsx34(SdContainer, { style: { position: "relative", zIndex: 1, width: "100%" }, children: /* @__PURE__ */ jsx34(SdTextBox.Hero, { label, title, description, ta: "center", align: "center", maw: 640, mx: "auto", pt: 80, pb: 64 }) })
1537
1630
  ] }),
1538
- /* @__PURE__ */ jsx36(Content, { children })
1631
+ /* @__PURE__ */ jsx34(Content, { children })
1539
1632
  ] });
1540
1633
  }
1541
1634
  var PageLayout = {
@@ -1768,7 +1861,16 @@ export {
1768
1861
  PageLayout,
1769
1862
  SdBadge,
1770
1863
  SdButton,
1864
+ SdButtonCancel,
1865
+ SdButtonDelete,
1866
+ SdButtonGhost,
1867
+ SdButtonOutline,
1868
+ SdButtonPrimary,
1869
+ SdButtonSecondary,
1870
+ SdButtonWhite,
1771
1871
  SdClients,
1872
+ SdClientsGrid,
1873
+ SdClientsMarquee,
1772
1874
  SdContainer,
1773
1875
  SdCta,
1774
1876
  SdErrorView,
@@ -1779,19 +1881,34 @@ export {
1779
1881
  SdHeader,
1780
1882
  SdInput,
1781
1883
  SdMap,
1884
+ SdMapSingle,
1885
+ SdMapTabs,
1782
1886
  SdModal,
1783
1887
  SdNumberIcon,
1784
1888
  SdPricingCard,
1785
1889
  SdQuote,
1890
+ SdSkeleton,
1891
+ SdSkeletonAvatar,
1892
+ SdSkeletonCard,
1893
+ SdSkeletonImage,
1894
+ SdSkeletonText,
1895
+ SdSkeletonTitle,
1786
1896
  SdSolution,
1787
1897
  SdSolutionCard,
1788
1898
  SdSteps,
1789
1899
  SdStepsSection,
1790
1900
  SdTable,
1791
1901
  SdTabs,
1902
+ SdTabsOutline,
1903
+ SdTabsPills,
1904
+ SdTabsUnderline,
1792
1905
  SdTestimonial,
1793
1906
  SdText,
1794
1907
  SdTextBox,
1908
+ SdTextBoxCard,
1909
+ SdTextBoxHero,
1910
+ SdTextBoxSection,
1911
+ SdTextBoxSub,
1795
1912
  SdTimeline,
1796
1913
  SdTimelineSection,
1797
1914
  SdTitle,