@yeongseoksong/framework 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -10
- package/dist/types/index.cjs +18 -0
- package/dist/types/index.d.mts +1 -18
- package/dist/types/index.d.ts +1 -18
- package/dist/types/index.mjs +0 -386
- package/dist/ui/{index.js → index.cjs} +99 -90
- package/dist/ui/index.mjs +99 -90
- package/dist/util/{index.js → index.cjs} +23 -4
- package/dist/util/index.d.mts +26 -2
- package/dist/util/index.d.ts +26 -2
- package/dist/util/index.mjs +20 -4
- package/package.json +26 -11
- package/dist/types/index.js +0 -424
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:
|
|
47
|
-
alt:
|
|
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(
|
|
67
|
-
var _b =
|
|
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(
|
|
74
|
-
var _b =
|
|
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(
|
|
78
|
-
var _b =
|
|
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) {
|
|
@@ -134,16 +144,15 @@ import { Title as MantineTitle } from "@mantine/core";
|
|
|
134
144
|
|
|
135
145
|
// util/text.util.ts
|
|
136
146
|
var COMPANY_TOKEN = "%c";
|
|
137
|
-
var companyName = "UKNOWN";
|
|
138
147
|
function t(text) {
|
|
139
|
-
return text.replaceAll(COMPANY_TOKEN,
|
|
148
|
+
return text.replaceAll(COMPANY_TOKEN, COMPANY_NAME);
|
|
140
149
|
}
|
|
141
150
|
|
|
142
151
|
// ui/atom/Title.tsx
|
|
143
152
|
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
144
153
|
function createTitle(defaults) {
|
|
145
|
-
return function SdTitle2(
|
|
146
|
-
var _b =
|
|
154
|
+
return function SdTitle2(_a4) {
|
|
155
|
+
var _b = _a4, { children } = _b, props = __objRest(_b, ["children"]);
|
|
147
156
|
const resolved = typeof children === "string" ? t(children) : children;
|
|
148
157
|
return /* @__PURE__ */ jsx4(MantineTitle, __spreadProps(__spreadValues(__spreadValues({}, defaults), props), { children: resolved }));
|
|
149
158
|
};
|
|
@@ -163,8 +172,8 @@ var SdTitle = {
|
|
|
163
172
|
import { Text as MantineText } from "@mantine/core";
|
|
164
173
|
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
165
174
|
function createText(defaults) {
|
|
166
|
-
return function SdText2(
|
|
167
|
-
var _b =
|
|
175
|
+
return function SdText2(_a4) {
|
|
176
|
+
var _b = _a4, { children } = _b, props = __objRest(_b, ["children"]);
|
|
168
177
|
const resolved = typeof children === "string" ? t(children) : children;
|
|
169
178
|
return /* @__PURE__ */ jsx5(MantineText, __spreadProps(__spreadValues(__spreadValues({}, defaults), props), { children: resolved }));
|
|
170
179
|
};
|
|
@@ -184,8 +193,8 @@ import { Button as MantineButton } from "@mantine/core";
|
|
|
184
193
|
import { IconTrash, IconX } from "@tabler/icons-react";
|
|
185
194
|
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
186
195
|
function createButton(defaults) {
|
|
187
|
-
return function SdButton2(
|
|
188
|
-
var _b =
|
|
196
|
+
return function SdButton2(_a4) {
|
|
197
|
+
var _b = _a4, { children } = _b, props = __objRest(_b, ["children"]);
|
|
189
198
|
return /* @__PURE__ */ jsx6(MantineButton, __spreadProps(__spreadValues(__spreadValues({}, defaults), props), { children }));
|
|
190
199
|
};
|
|
191
200
|
}
|
|
@@ -228,12 +237,12 @@ function QuoteInner({ lines, name, role }) {
|
|
|
228
237
|
] })
|
|
229
238
|
] });
|
|
230
239
|
}
|
|
231
|
-
function Plain(
|
|
232
|
-
var _b =
|
|
240
|
+
function Plain(_a4) {
|
|
241
|
+
var _b = _a4, { lines, name, role } = _b, boxProps = __objRest(_b, ["lines", "name", "role"]);
|
|
233
242
|
return /* @__PURE__ */ jsx7(Center, { children: /* @__PURE__ */ jsx7(Box2, __spreadProps(__spreadValues({ w: "fit-content" }, boxProps), { children: /* @__PURE__ */ jsx7(QuoteInner, { lines, name, role }) })) });
|
|
234
243
|
}
|
|
235
|
-
function CardQuote(
|
|
236
|
-
var _b =
|
|
244
|
+
function CardQuote(_a4) {
|
|
245
|
+
var _b = _a4, { lines, name, role } = _b, boxProps = __objRest(_b, ["lines", "name", "role"]);
|
|
237
246
|
return /* @__PURE__ */ jsx7(Center, { children: /* @__PURE__ */ jsx7(Card, __spreadProps(__spreadValues({ w: "fit-content" }, boxProps), { children: /* @__PURE__ */ jsx7(QuoteInner, { lines, name, role }) })) });
|
|
238
247
|
}
|
|
239
248
|
var SdQuote = {
|
|
@@ -264,12 +273,12 @@ var base = {
|
|
|
264
273
|
verticalSpacing: "sm",
|
|
265
274
|
horizontalSpacing: "md"
|
|
266
275
|
};
|
|
267
|
-
function SpecTh(
|
|
268
|
-
var _b =
|
|
276
|
+
function SpecTh(_a4) {
|
|
277
|
+
var _b = _a4, { children } = _b, props = __objRest(_b, ["children"]);
|
|
269
278
|
return /* @__PURE__ */ jsx8(Table.Th, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsx8(SdText.Strong, { c: "white", children }) }));
|
|
270
279
|
}
|
|
271
|
-
function SpecTd(
|
|
272
|
-
var _b =
|
|
280
|
+
function SpecTd(_a4) {
|
|
281
|
+
var _b = _a4, { children } = _b, props = __objRest(_b, ["children"]);
|
|
273
282
|
return /* @__PURE__ */ jsx8(Table.Td, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsx8(SdText.Body, { children }) }));
|
|
274
283
|
}
|
|
275
284
|
var Spec = createTable(__spreadProps(__spreadValues({}, base), {
|
|
@@ -309,8 +318,8 @@ var SdModal = createModal({
|
|
|
309
318
|
// ui/atom/NumberIcon.tsx
|
|
310
319
|
import { ThemeIcon } from "@mantine/core";
|
|
311
320
|
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
312
|
-
function SdNumberIcon(
|
|
313
|
-
var _b =
|
|
321
|
+
function SdNumberIcon(_a4) {
|
|
322
|
+
var _b = _a4, { value, size = 48, radius = "xl", color = "primary" } = _b, props = __objRest(_b, ["value", "size", "radius", "color"]);
|
|
314
323
|
return /* @__PURE__ */ jsx10(ThemeIcon, __spreadProps(__spreadValues({ size, radius, color }, props), { children: /* @__PURE__ */ jsx10(SdText.Strong, { c: "white", children: value }) }));
|
|
315
324
|
}
|
|
316
325
|
|
|
@@ -318,8 +327,8 @@ function SdNumberIcon(_a) {
|
|
|
318
327
|
import { Badge as MantineBadge } from "@mantine/core";
|
|
319
328
|
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
320
329
|
function createBadge(defaults) {
|
|
321
|
-
return function SdBadge2(
|
|
322
|
-
var _b =
|
|
330
|
+
return function SdBadge2(_a4) {
|
|
331
|
+
var _b = _a4, { children } = _b, props = __objRest(_b, ["children"]);
|
|
323
332
|
return /* @__PURE__ */ jsx11(MantineBadge, __spreadProps(__spreadValues(__spreadValues({}, defaults), props), { children }));
|
|
324
333
|
};
|
|
325
334
|
}
|
|
@@ -343,26 +352,26 @@ import {
|
|
|
343
352
|
} from "@mantine/core";
|
|
344
353
|
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
345
354
|
function createTextInput(defaults) {
|
|
346
|
-
return function SdInput2(
|
|
347
|
-
var props = __objRest(
|
|
355
|
+
return function SdInput2(_a4) {
|
|
356
|
+
var props = __objRest(_a4, []);
|
|
348
357
|
return /* @__PURE__ */ jsx12(TextInput, __spreadValues(__spreadValues({}, defaults), props));
|
|
349
358
|
};
|
|
350
359
|
}
|
|
351
360
|
function createTextarea(defaults) {
|
|
352
|
-
return function SdInputTextarea(
|
|
353
|
-
var props = __objRest(
|
|
361
|
+
return function SdInputTextarea(_a4) {
|
|
362
|
+
var props = __objRest(_a4, []);
|
|
354
363
|
return /* @__PURE__ */ jsx12(Textarea, __spreadValues(__spreadValues({}, defaults), props));
|
|
355
364
|
};
|
|
356
365
|
}
|
|
357
366
|
function createPasswordInput(defaults) {
|
|
358
|
-
return function SdInputPassword(
|
|
359
|
-
var props = __objRest(
|
|
367
|
+
return function SdInputPassword(_a4) {
|
|
368
|
+
var props = __objRest(_a4, []);
|
|
360
369
|
return /* @__PURE__ */ jsx12(PasswordInput, __spreadValues(__spreadValues({}, defaults), props));
|
|
361
370
|
};
|
|
362
371
|
}
|
|
363
372
|
function createSelect(defaults) {
|
|
364
|
-
return function SdInputSelect(
|
|
365
|
-
var props = __objRest(
|
|
373
|
+
return function SdInputSelect(_a4) {
|
|
374
|
+
var props = __objRest(_a4, []);
|
|
366
375
|
return /* @__PURE__ */ jsx12(Select, __spreadValues(__spreadValues({}, defaults), props));
|
|
367
376
|
};
|
|
368
377
|
}
|
|
@@ -382,20 +391,20 @@ var SdInput = {
|
|
|
382
391
|
// ui/atom/Skeleton.tsx
|
|
383
392
|
import { Box as Box3, Skeleton as MantineSkeleton, Stack as Stack2 } from "@mantine/core";
|
|
384
393
|
import { jsx as jsx13, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
385
|
-
function SkeletonText(
|
|
386
|
-
var _b =
|
|
394
|
+
function SkeletonText(_a4) {
|
|
395
|
+
var _b = _a4, { width = "100%" } = _b, props = __objRest(_b, ["width"]);
|
|
387
396
|
return /* @__PURE__ */ jsx13(MantineSkeleton, __spreadValues({ height: 14, width, radius: "sm" }, props));
|
|
388
397
|
}
|
|
389
|
-
function SkeletonTitle(
|
|
390
|
-
var _b =
|
|
398
|
+
function SkeletonTitle(_a4) {
|
|
399
|
+
var _b = _a4, { width = "60%" } = _b, props = __objRest(_b, ["width"]);
|
|
391
400
|
return /* @__PURE__ */ jsx13(MantineSkeleton, __spreadValues({ height: 20, width, radius: "sm" }, props));
|
|
392
401
|
}
|
|
393
|
-
function SkeletonImage(
|
|
394
|
-
var _b =
|
|
402
|
+
function SkeletonImage(_a4) {
|
|
403
|
+
var _b = _a4, { height = 200 } = _b, props = __objRest(_b, ["height"]);
|
|
395
404
|
return /* @__PURE__ */ jsx13(MantineSkeleton, __spreadValues({ height, radius: "md" }, props));
|
|
396
405
|
}
|
|
397
|
-
function SkeletonAvatar(
|
|
398
|
-
var _b =
|
|
406
|
+
function SkeletonAvatar(_a4) {
|
|
407
|
+
var _b = _a4, { size = 40 } = _b, props = __objRest(_b, ["size"]);
|
|
399
408
|
return /* @__PURE__ */ jsx13(MantineSkeleton, __spreadValues({ height: size, width: size, circle: true }, props));
|
|
400
409
|
}
|
|
401
410
|
function SkeletonCard({ height, lines = 3 }) {
|
|
@@ -436,8 +445,8 @@ var SdSkeletonAvatar = SkeletonAvatar;
|
|
|
436
445
|
import { Stack as Stack3 } from "@mantine/core";
|
|
437
446
|
import { jsx as jsx14, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
438
447
|
function createTextBox(titleVariant, defaultGap = "xs", descVariant = "Body", color_ = void 0) {
|
|
439
|
-
return function SdTextBox2(
|
|
440
|
-
var _b =
|
|
448
|
+
return function SdTextBox2(_a4) {
|
|
449
|
+
var _b = _a4, {
|
|
441
450
|
label,
|
|
442
451
|
title,
|
|
443
452
|
description,
|
|
@@ -513,8 +522,8 @@ import { Group as Group2, Stack as Stack5, Timeline as MantineTimeline } from "@
|
|
|
513
522
|
import { jsx as jsx16, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
514
523
|
function SdTimeline({ items }) {
|
|
515
524
|
const grouped = items.filter((item) => item.isShow).sort((a, b) => b.year - a.year || b.month - a.month).reduce((acc, item) => {
|
|
516
|
-
var
|
|
517
|
-
((_b = acc[
|
|
525
|
+
var _a4, _b;
|
|
526
|
+
((_b = acc[_a4 = item.year]) != null ? _b : acc[_a4] = []).push(item);
|
|
518
527
|
return acc;
|
|
519
528
|
}, {});
|
|
520
529
|
const years = Object.keys(grouped).map(Number).sort((a, b) => b - a);
|
|
@@ -627,8 +636,8 @@ function AuthorRow({ item }) {
|
|
|
627
636
|
] })
|
|
628
637
|
] });
|
|
629
638
|
}
|
|
630
|
-
function CardTestimonial(
|
|
631
|
-
var _b =
|
|
639
|
+
function CardTestimonial(_a4) {
|
|
640
|
+
var _b = _a4, { item } = _b, boxProps = __objRest(_b, ["item"]);
|
|
632
641
|
return /* @__PURE__ */ jsx18(Card4, __spreadProps(__spreadValues({ h: "100%" }, boxProps), { children: /* @__PURE__ */ jsxs7(Stack7, { gap: "md", h: "100%", children: [
|
|
633
642
|
item.rating && /* @__PURE__ */ jsx18(Rating, { value: item.rating, readOnly: true, size: "sm", color: "primary" }),
|
|
634
643
|
/* @__PURE__ */ jsxs7(Stack7, { gap: "xs", style: { flex: 1 }, children: [
|
|
@@ -638,8 +647,8 @@ function CardTestimonial(_a) {
|
|
|
638
647
|
/* @__PURE__ */ jsx18(AuthorRow, { item })
|
|
639
648
|
] }) }));
|
|
640
649
|
}
|
|
641
|
-
function Strip2(
|
|
642
|
-
var _b =
|
|
650
|
+
function Strip2(_a4) {
|
|
651
|
+
var _b = _a4, { item } = _b, boxProps = __objRest(_b, ["item"]);
|
|
643
652
|
return /* @__PURE__ */ jsx18(Box5, __spreadProps(__spreadValues({}, boxProps), { children: /* @__PURE__ */ jsxs7(Stack7, { gap: "md", children: [
|
|
644
653
|
item.rating && /* @__PURE__ */ jsx18(Rating, { value: item.rating, readOnly: true, size: "sm", color: "primary" }),
|
|
645
654
|
/* @__PURE__ */ jsxs7(Group4, { gap: 4, align: "flex-start", children: [
|
|
@@ -672,9 +681,9 @@ import {
|
|
|
672
681
|
} from "@mantine/core";
|
|
673
682
|
import { IconCheck, IconX as IconX2 } from "@tabler/icons-react";
|
|
674
683
|
import { jsx as jsx19, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
675
|
-
function Default(
|
|
676
|
-
var _b =
|
|
677
|
-
var
|
|
684
|
+
function Default(_a4) {
|
|
685
|
+
var _b = _a4, { item, onSelect } = _b, cardProps = __objRest(_b, ["item", "onSelect"]);
|
|
686
|
+
var _a5;
|
|
678
687
|
return /* @__PURE__ */ jsx19(
|
|
679
688
|
Card5,
|
|
680
689
|
__spreadProps(__spreadValues({
|
|
@@ -717,14 +726,14 @@ function Default(_a) {
|
|
|
717
726
|
}
|
|
718
727
|
)
|
|
719
728
|
] }, i)) }),
|
|
720
|
-
/* @__PURE__ */ jsx19(SdButton.Outline, { fullWidth: true, onClick: () => onSelect == null ? void 0 : onSelect(item), children: (
|
|
729
|
+
/* @__PURE__ */ jsx19(SdButton.Outline, { fullWidth: true, onClick: () => onSelect == null ? void 0 : onSelect(item), children: (_a5 = item.ctaLabel) != null ? _a5 : "\uC2DC\uC791\uD558\uAE30" })
|
|
721
730
|
] })
|
|
722
731
|
})
|
|
723
732
|
);
|
|
724
733
|
}
|
|
725
|
-
function Featured(
|
|
726
|
-
var _b =
|
|
727
|
-
var
|
|
734
|
+
function Featured(_a4) {
|
|
735
|
+
var _b = _a4, { item, onSelect } = _b, cardProps = __objRest(_b, ["item", "onSelect"]);
|
|
736
|
+
var _a5;
|
|
728
737
|
return /* @__PURE__ */ jsx19(
|
|
729
738
|
Card5,
|
|
730
739
|
__spreadProps(__spreadValues({
|
|
@@ -767,7 +776,7 @@ function Featured(_a) {
|
|
|
767
776
|
}
|
|
768
777
|
)
|
|
769
778
|
] }, i)) }),
|
|
770
|
-
/* @__PURE__ */ jsx19(SdButton.White, { fullWidth: true, onClick: () => onSelect == null ? void 0 : onSelect(item), children: (
|
|
779
|
+
/* @__PURE__ */ jsx19(SdButton.White, { fullWidth: true, onClick: () => onSelect == null ? void 0 : onSelect(item), children: (_a5 = item.ctaLabel) != null ? _a5 : "\uC2DC\uC791\uD558\uAE30" })
|
|
771
780
|
] })
|
|
772
781
|
})
|
|
773
782
|
);
|
|
@@ -789,22 +798,22 @@ var SdPricingCard = {
|
|
|
789
798
|
// ui/molecule/Faq.tsx
|
|
790
799
|
import { Accordion, Box as Box7, Stack as Stack9 } from "@mantine/core";
|
|
791
800
|
import { jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
792
|
-
function Default2(
|
|
793
|
-
var _b =
|
|
801
|
+
function Default2(_a4) {
|
|
802
|
+
var _b = _a4, { items } = _b, boxProps = __objRest(_b, ["items"]);
|
|
794
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: [
|
|
795
804
|
/* @__PURE__ */ jsx20(Accordion.Control, { children: /* @__PURE__ */ jsx20(SdText.Strong, { fz: "sm", children: item.question }) }),
|
|
796
805
|
/* @__PURE__ */ jsx20(Accordion.Panel, { children: /* @__PURE__ */ jsx20(SdText.Body, { fz: "sm", children: item.answer }) })
|
|
797
806
|
] }, i)) }) }));
|
|
798
807
|
}
|
|
799
|
-
function Filled(
|
|
800
|
-
var _b =
|
|
808
|
+
function Filled(_a4) {
|
|
809
|
+
var _b = _a4, { items } = _b, boxProps = __objRest(_b, ["items"]);
|
|
801
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: [
|
|
802
811
|
/* @__PURE__ */ jsx20(Accordion.Control, { children: /* @__PURE__ */ jsx20(SdText.Strong, { fz: "sm", children: item.question }) }),
|
|
803
812
|
/* @__PURE__ */ jsx20(Accordion.Panel, { children: /* @__PURE__ */ jsx20(SdText.Body, { fz: "sm", children: item.answer }) })
|
|
804
813
|
] }, i)) }) }));
|
|
805
814
|
}
|
|
806
|
-
function WithHeader(
|
|
807
|
-
var _b =
|
|
815
|
+
function WithHeader(_a4) {
|
|
816
|
+
var _b = _a4, { label, title, description, items } = _b, boxProps = __objRest(_b, ["label", "title", "description", "items"]);
|
|
808
817
|
return /* @__PURE__ */ jsxs9(Stack9, __spreadProps(__spreadValues({ gap: "xl" }, boxProps), { children: [
|
|
809
818
|
/* @__PURE__ */ jsxs9(Stack9, { gap: "xs", children: [
|
|
810
819
|
label && /* @__PURE__ */ jsx20(SdText.Eyebrow, { children: label }),
|
|
@@ -826,8 +835,8 @@ var SdFaq = {
|
|
|
826
835
|
// ui/molecule/Cta.tsx
|
|
827
836
|
import { Box as Box8, Center as Center2, Group as Group6, Stack as Stack10 } from "@mantine/core";
|
|
828
837
|
import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
829
|
-
function Banner(
|
|
830
|
-
var _b =
|
|
838
|
+
function Banner(_a4) {
|
|
839
|
+
var _b = _a4, {
|
|
831
840
|
label,
|
|
832
841
|
title,
|
|
833
842
|
description,
|
|
@@ -873,8 +882,8 @@ function Banner(_a) {
|
|
|
873
882
|
})
|
|
874
883
|
);
|
|
875
884
|
}
|
|
876
|
-
function Subtle(
|
|
877
|
-
var _b =
|
|
885
|
+
function Subtle(_a4) {
|
|
886
|
+
var _b = _a4, {
|
|
878
887
|
label,
|
|
879
888
|
title,
|
|
880
889
|
description,
|
|
@@ -913,8 +922,8 @@ function Subtle(_a) {
|
|
|
913
922
|
})
|
|
914
923
|
);
|
|
915
924
|
}
|
|
916
|
-
function Inline(
|
|
917
|
-
var _b =
|
|
925
|
+
function Inline(_a4) {
|
|
926
|
+
var _b = _a4, {
|
|
918
927
|
label,
|
|
919
928
|
title,
|
|
920
929
|
description,
|
|
@@ -984,16 +993,16 @@ import {
|
|
|
984
993
|
} from "@mantine/core";
|
|
985
994
|
import Link2 from "next/link";
|
|
986
995
|
import { jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
987
|
-
function SolutionCardItem(
|
|
988
|
-
var _b =
|
|
989
|
-
var
|
|
996
|
+
function SolutionCardItem(_a4) {
|
|
997
|
+
var _b = _a4, { item, onSelect } = _b, cardProps = __objRest(_b, ["item", "onSelect"]);
|
|
998
|
+
var _a5, _b2;
|
|
990
999
|
return /* @__PURE__ */ jsx22(Card6, __spreadProps(__spreadValues({ withBorder: true }, cardProps), { children: /* @__PURE__ */ jsxs11(Stack11, { gap: "md", children: [
|
|
991
1000
|
item.icon,
|
|
992
1001
|
/* @__PURE__ */ jsx22(SdBadge.Primary, { children: item.category }),
|
|
993
1002
|
/* @__PURE__ */ jsx22(SdTitle.Card, { children: item.title }),
|
|
994
1003
|
/* @__PURE__ */ jsx22(SdText.Body, { children: item.description }),
|
|
995
1004
|
item.href ? /* @__PURE__ */ jsxs11(Button, { variant: "subtle", color: "slate", component: Link2, href: item.href, children: [
|
|
996
|
-
(
|
|
1005
|
+
(_a5 = item.ctaLabel) != null ? _a5 : "\uC790\uC138\uD788 \uBCF4\uAE30",
|
|
997
1006
|
" \u2192"
|
|
998
1007
|
] }) : /* @__PURE__ */ jsxs11(SdButton.Ghost, { onClick: () => onSelect == null ? void 0 : onSelect(item), children: [
|
|
999
1008
|
(_b2 = item.ctaLabel) != null ? _b2 : "\uC790\uC138\uD788 \uBCF4\uAE30",
|
|
@@ -1024,7 +1033,7 @@ function Filtered({ items, allLabel = "\uC804\uCCB4", cols, onSelect }) {
|
|
|
1024
1033
|
}
|
|
1025
1034
|
function List({ items, onSelect }) {
|
|
1026
1035
|
return /* @__PURE__ */ jsx23(Stack12, { gap: 0, children: items.map((item, i) => {
|
|
1027
|
-
var
|
|
1036
|
+
var _a4, _b;
|
|
1028
1037
|
return /* @__PURE__ */ jsxs12("div", { children: [
|
|
1029
1038
|
i > 0 && /* @__PURE__ */ jsx23(Divider2, {}),
|
|
1030
1039
|
/* @__PURE__ */ jsxs12(Group7, { align: "flex-start", py: "lg", gap: "lg", children: [
|
|
@@ -1042,7 +1051,7 @@ function List({ items, onSelect }) {
|
|
|
1042
1051
|
href: item.href,
|
|
1043
1052
|
style: { alignSelf: "flex-start", paddingInline: 0 },
|
|
1044
1053
|
children: [
|
|
1045
|
-
(
|
|
1054
|
+
(_a4 = item.ctaLabel) != null ? _a4 : "\uC790\uC138\uD788 \uBCF4\uAE30",
|
|
1046
1055
|
" \u2192"
|
|
1047
1056
|
]
|
|
1048
1057
|
}
|
|
@@ -1160,15 +1169,15 @@ function MapFrame({ address, height }) {
|
|
|
1160
1169
|
] })
|
|
1161
1170
|
] });
|
|
1162
1171
|
}
|
|
1163
|
-
function Single(
|
|
1164
|
-
var _b =
|
|
1172
|
+
function Single(_a4) {
|
|
1173
|
+
var _b = _a4, { address, height = 400 } = _b, boxProps = __objRest(_b, ["address", "height"]);
|
|
1165
1174
|
if (!address.embbedUrl) return null;
|
|
1166
1175
|
return /* @__PURE__ */ jsx25(Box10, __spreadProps(__spreadValues({}, boxProps), { children: /* @__PURE__ */ jsx25(MapFrame, { address, height }) }));
|
|
1167
1176
|
}
|
|
1168
1177
|
function Tabs2({ addresses, height = 400 }) {
|
|
1169
|
-
var
|
|
1178
|
+
var _a4, _b, _c;
|
|
1170
1179
|
const mapped = addresses.filter((a) => a.embbedUrl);
|
|
1171
|
-
const [active, setActive] = useState2((_b = (
|
|
1180
|
+
const [active, setActive] = useState2((_b = (_a4 = mapped[0]) == null ? void 0 : _a4.label) != null ? _b : "");
|
|
1172
1181
|
if (mapped.length === 0) return null;
|
|
1173
1182
|
if (mapped.length === 1) return /* @__PURE__ */ jsx25(MapFrame, { address: mapped[0], height });
|
|
1174
1183
|
const current = (_c = mapped.find((a) => a.label === active)) != null ? _c : mapped[0];
|
|
@@ -1198,8 +1207,8 @@ var variantMap = {
|
|
|
1198
1207
|
white: SdButton.White
|
|
1199
1208
|
};
|
|
1200
1209
|
function CtaButton({ cta }) {
|
|
1201
|
-
var
|
|
1202
|
-
const Button3 = variantMap[(
|
|
1210
|
+
var _a4;
|
|
1211
|
+
const Button3 = variantMap[(_a4 = cta.variant) != null ? _a4 : "primary"];
|
|
1203
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 }) });
|
|
1204
1213
|
}
|
|
1205
1214
|
function HeroCarousel({ slides, children }) {
|
|
@@ -1358,8 +1367,8 @@ function SdFooter({ company, navItems, policyLinks, description }) {
|
|
|
1358
1367
|
// ui/organism/FeatureSection.tsx
|
|
1359
1368
|
import { Stack as Stack17 } from "@mantine/core";
|
|
1360
1369
|
import { jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1361
|
-
function SdFeatureSection(
|
|
1362
|
-
var _b =
|
|
1370
|
+
function SdFeatureSection(_a4) {
|
|
1371
|
+
var _b = _a4, {
|
|
1363
1372
|
label,
|
|
1364
1373
|
title,
|
|
1365
1374
|
description,
|
|
@@ -1393,8 +1402,8 @@ function SdFeatureSection(_a) {
|
|
|
1393
1402
|
// ui/organism/TimelineSection.tsx
|
|
1394
1403
|
import { Center as Center3, Stack as Stack18 } from "@mantine/core";
|
|
1395
1404
|
import { jsx as jsx30, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1396
|
-
function SdTimelineSection(
|
|
1397
|
-
var _b =
|
|
1405
|
+
function SdTimelineSection(_a4) {
|
|
1406
|
+
var _b = _a4, {
|
|
1398
1407
|
label,
|
|
1399
1408
|
title,
|
|
1400
1409
|
description,
|
|
@@ -1423,8 +1432,8 @@ function SdTimelineSection(_a) {
|
|
|
1423
1432
|
// ui/organism/StepsSection.tsx
|
|
1424
1433
|
import { Stack as Stack19 } from "@mantine/core";
|
|
1425
1434
|
import { jsx as jsx31, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1426
|
-
function SdStepsSection(
|
|
1427
|
-
var _b =
|
|
1435
|
+
function SdStepsSection(_a4) {
|
|
1436
|
+
var _b = _a4, {
|
|
1428
1437
|
label,
|
|
1429
1438
|
title,
|
|
1430
1439
|
description,
|
|
@@ -20,22 +20,41 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// util/index.ts
|
|
21
21
|
var util_exports = {};
|
|
22
22
|
__export(util_exports, {
|
|
23
|
+
COMPANY_NAME: () => COMPANY_NAME,
|
|
24
|
+
LOGO_ALT: () => LOGO_ALT,
|
|
25
|
+
LOGO_SRC: () => LOGO_SRC,
|
|
23
26
|
setCompanyName: () => setCompanyName,
|
|
24
27
|
t: () => t
|
|
25
28
|
});
|
|
26
29
|
module.exports = __toCommonJS(util_exports);
|
|
27
30
|
|
|
31
|
+
// util/env.util.ts
|
|
32
|
+
var _a;
|
|
33
|
+
var COMPANY_NAME = (_a = process.env.NEXT_PUBLIC_COMPANY_NAME) != null ? _a : "";
|
|
34
|
+
var _a2;
|
|
35
|
+
var LOGO_SRC = (_a2 = process.env.NEXT_PUBLIC_LOGO_SRC) != null ? _a2 : "/logo.svg";
|
|
36
|
+
var _a3;
|
|
37
|
+
var LOGO_ALT = (_a3 = process.env.NEXT_PUBLIC_LOGO_ALT) != null ? _a3 : "\uB85C\uACE0";
|
|
38
|
+
|
|
28
39
|
// util/text.util.ts
|
|
29
40
|
var COMPANY_TOKEN = "%c";
|
|
30
|
-
var
|
|
31
|
-
function setCompanyName(
|
|
32
|
-
|
|
41
|
+
var warned = false;
|
|
42
|
+
function setCompanyName(_name) {
|
|
43
|
+
if (!warned) {
|
|
44
|
+
warned = true;
|
|
45
|
+
console.warn(
|
|
46
|
+
"[@yeongseoksong/framework] setCompanyName()\uC740 \uB3D9\uC791\uD558\uC9C0 \uC54A\uC73C\uBA70 2.0.0\uC5D0\uC11C \uC81C\uAC70\uB429\uB2C8\uB2E4. NEXT_PUBLIC_COMPANY_NAME \uD658\uACBD\uBCC0\uC218\uB97C \uC0AC\uC6A9\uD558\uC138\uC694."
|
|
47
|
+
);
|
|
48
|
+
}
|
|
33
49
|
}
|
|
34
50
|
function t(text) {
|
|
35
|
-
return text.replaceAll(COMPANY_TOKEN,
|
|
51
|
+
return text.replaceAll(COMPANY_TOKEN, COMPANY_NAME);
|
|
36
52
|
}
|
|
37
53
|
// Annotate the CommonJS export names for ESM import in node:
|
|
38
54
|
0 && (module.exports = {
|
|
55
|
+
COMPANY_NAME,
|
|
56
|
+
LOGO_ALT,
|
|
57
|
+
LOGO_SRC,
|
|
39
58
|
setCompanyName,
|
|
40
59
|
t
|
|
41
60
|
});
|
package/dist/util/index.d.mts
CHANGED
|
@@ -1,4 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* 소비자 앱이 주입하는 상수들.
|
|
3
|
+
*
|
|
4
|
+
* 값은 소비자 앱의 `NEXT_PUBLIC_*` 환경변수에서 온다. 번들러가 빌드 시점에
|
|
5
|
+
* 리터럴로 치환하므로, tsup이 ui/util 번들을 나눠도 양쪽에 같은 값이 박힌다.
|
|
6
|
+
* (모듈 전역 변수로 주입하던 이전 방식은 번들이 갈리면서 값이 공유되지 않았다.)
|
|
7
|
+
*
|
|
8
|
+
* `process.env.X` 형태로 통째로 접근해야 한다. 구조분해(`const { X } = process.env`)는
|
|
9
|
+
* 번들러의 정적 치환 대상이 아니라서 undefined가 된다.
|
|
10
|
+
*/
|
|
11
|
+
/** `%c` 토큰이 치환될 회사명. 소비자 앱에서 필수. */
|
|
12
|
+
declare const COMPANY_NAME: string;
|
|
13
|
+
/** 헤더 로고 이미지 경로. */
|
|
14
|
+
declare const LOGO_SRC: string;
|
|
15
|
+
/** 헤더 로고 대체 텍스트. */
|
|
16
|
+
declare const LOGO_ALT: string;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @deprecated 동작하지 않는다. tsup이 ui/util을 별개 번들로 빌드하면서 이 모듈이
|
|
20
|
+
* `dist/ui`에 인라인 복사되기 때문에, 여기서 값을 바꿔도 `t()`를 실제로 호출하는
|
|
21
|
+
* `SdText`/`SdTitle`은 다른 사본을 읽는다. 대신 `NEXT_PUBLIC_COMPANY_NAME`을 사용할 것.
|
|
22
|
+
* 2.0.0에서 제거한다.
|
|
23
|
+
*/
|
|
24
|
+
declare function setCompanyName(_name: string): void;
|
|
25
|
+
/** 문자열 안의 `%c`를 회사명으로 치환한다. 서버/클라이언트 양쪽에서 안전하다. */
|
|
2
26
|
declare function t(text: string): string;
|
|
3
27
|
|
|
4
|
-
export { setCompanyName, t };
|
|
28
|
+
export { COMPANY_NAME, LOGO_ALT, LOGO_SRC, setCompanyName, t };
|
package/dist/util/index.d.ts
CHANGED
|
@@ -1,4 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* 소비자 앱이 주입하는 상수들.
|
|
3
|
+
*
|
|
4
|
+
* 값은 소비자 앱의 `NEXT_PUBLIC_*` 환경변수에서 온다. 번들러가 빌드 시점에
|
|
5
|
+
* 리터럴로 치환하므로, tsup이 ui/util 번들을 나눠도 양쪽에 같은 값이 박힌다.
|
|
6
|
+
* (모듈 전역 변수로 주입하던 이전 방식은 번들이 갈리면서 값이 공유되지 않았다.)
|
|
7
|
+
*
|
|
8
|
+
* `process.env.X` 형태로 통째로 접근해야 한다. 구조분해(`const { X } = process.env`)는
|
|
9
|
+
* 번들러의 정적 치환 대상이 아니라서 undefined가 된다.
|
|
10
|
+
*/
|
|
11
|
+
/** `%c` 토큰이 치환될 회사명. 소비자 앱에서 필수. */
|
|
12
|
+
declare const COMPANY_NAME: string;
|
|
13
|
+
/** 헤더 로고 이미지 경로. */
|
|
14
|
+
declare const LOGO_SRC: string;
|
|
15
|
+
/** 헤더 로고 대체 텍스트. */
|
|
16
|
+
declare const LOGO_ALT: string;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @deprecated 동작하지 않는다. tsup이 ui/util을 별개 번들로 빌드하면서 이 모듈이
|
|
20
|
+
* `dist/ui`에 인라인 복사되기 때문에, 여기서 값을 바꿔도 `t()`를 실제로 호출하는
|
|
21
|
+
* `SdText`/`SdTitle`은 다른 사본을 읽는다. 대신 `NEXT_PUBLIC_COMPANY_NAME`을 사용할 것.
|
|
22
|
+
* 2.0.0에서 제거한다.
|
|
23
|
+
*/
|
|
24
|
+
declare function setCompanyName(_name: string): void;
|
|
25
|
+
/** 문자열 안의 `%c`를 회사명으로 치환한다. 서버/클라이언트 양쪽에서 안전하다. */
|
|
2
26
|
declare function t(text: string): string;
|
|
3
27
|
|
|
4
|
-
export { setCompanyName, t };
|
|
28
|
+
export { COMPANY_NAME, LOGO_ALT, LOGO_SRC, setCompanyName, t };
|
package/dist/util/index.mjs
CHANGED
|
@@ -1,13 +1,29 @@
|
|
|
1
|
+
// util/env.util.ts
|
|
2
|
+
var _a;
|
|
3
|
+
var COMPANY_NAME = (_a = process.env.NEXT_PUBLIC_COMPANY_NAME) != null ? _a : "";
|
|
4
|
+
var _a2;
|
|
5
|
+
var LOGO_SRC = (_a2 = process.env.NEXT_PUBLIC_LOGO_SRC) != null ? _a2 : "/logo.svg";
|
|
6
|
+
var _a3;
|
|
7
|
+
var LOGO_ALT = (_a3 = process.env.NEXT_PUBLIC_LOGO_ALT) != null ? _a3 : "\uB85C\uACE0";
|
|
8
|
+
|
|
1
9
|
// util/text.util.ts
|
|
2
10
|
var COMPANY_TOKEN = "%c";
|
|
3
|
-
var
|
|
4
|
-
function setCompanyName(
|
|
5
|
-
|
|
11
|
+
var warned = false;
|
|
12
|
+
function setCompanyName(_name) {
|
|
13
|
+
if (!warned) {
|
|
14
|
+
warned = true;
|
|
15
|
+
console.warn(
|
|
16
|
+
"[@yeongseoksong/framework] setCompanyName()\uC740 \uB3D9\uC791\uD558\uC9C0 \uC54A\uC73C\uBA70 2.0.0\uC5D0\uC11C \uC81C\uAC70\uB429\uB2C8\uB2E4. NEXT_PUBLIC_COMPANY_NAME \uD658\uACBD\uBCC0\uC218\uB97C \uC0AC\uC6A9\uD558\uC138\uC694."
|
|
17
|
+
);
|
|
18
|
+
}
|
|
6
19
|
}
|
|
7
20
|
function t(text) {
|
|
8
|
-
return text.replaceAll(COMPANY_TOKEN,
|
|
21
|
+
return text.replaceAll(COMPANY_TOKEN, COMPANY_NAME);
|
|
9
22
|
}
|
|
10
23
|
export {
|
|
24
|
+
COMPANY_NAME,
|
|
25
|
+
LOGO_ALT,
|
|
26
|
+
LOGO_SRC,
|
|
11
27
|
setCompanyName,
|
|
12
28
|
t
|
|
13
29
|
};
|