@hivcd-printshop/design-system 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +28 -2
- package/dist/index.d.ts +28 -2
- package/dist/index.js +341 -262
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +339 -262
- package/dist/index.mjs.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -153,6 +153,28 @@ var IconGoBack = ({ className, stroke }) => {
|
|
|
153
153
|
}
|
|
154
154
|
);
|
|
155
155
|
};
|
|
156
|
+
var IconCompass = ({ className, fill }) => {
|
|
157
|
+
return /* @__PURE__ */ jsx(
|
|
158
|
+
"svg",
|
|
159
|
+
{
|
|
160
|
+
className,
|
|
161
|
+
width: "16",
|
|
162
|
+
height: "16",
|
|
163
|
+
viewBox: "0 0 16 16",
|
|
164
|
+
fill: "none",
|
|
165
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
166
|
+
children: /* @__PURE__ */ jsx(
|
|
167
|
+
"path",
|
|
168
|
+
{
|
|
169
|
+
fillRule: "evenodd",
|
|
170
|
+
clipRule: "evenodd",
|
|
171
|
+
d: "M12.5731 7.37945C12.2964 5.32806 10.668 3.70356 8.6166 3.42688V0H7.37945V3.42688C5.32806 3.70356 3.70356 5.32806 3.42688 7.37945H0V8.62055H3.42688C3.70356 10.6719 5.32806 12.2964 7.37945 12.5731V16H8.6166V12.5731C10.668 12.2964 12.2964 10.6719 12.5731 8.62055H16V7.37945H12.5731ZM7.37945 11.3241C6.01186 11.0672 4.93281 9.98814 4.67589 8.62055H7.37945V11.3241ZM7.4664 5.51383C7.41897 5.81423 7.39131 6.14229 7.37945 6.50988V7.37945H4.67589C4.89328 6.22925 5.68775 5.28458 6.75099 4.86166C6.9921 4.73122 7.07905 4.67589 7.19763 4.41502L7.67984 4.57312C7.58498 4.90119 7.51779 5.21344 7.4664 5.51383ZM9.24506 11.1383C9.00395 11.2727 8.917 11.3241 8.79842 11.5889L8.31621 11.4269C8.41107 11.1028 8.47826 10.7905 8.52965 10.4901C8.57312 10.2134 8.60474 9.91304 8.6166 9.58103V8.62055H11.3202C11.1067 9.77075 10.3083 10.7154 9.24506 11.1383ZM8.6166 7.37945V4.67984C9.98419 4.93281 11.0672 6.01186 11.3202 7.37945H8.6166Z",
|
|
172
|
+
fill: fill || "#121212"
|
|
173
|
+
}
|
|
174
|
+
)
|
|
175
|
+
}
|
|
176
|
+
);
|
|
177
|
+
};
|
|
156
178
|
|
|
157
179
|
// src/components/BackButton/BackButton.tsx
|
|
158
180
|
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
@@ -241,8 +263,8 @@ var MultiColumn = Object.assign(MultiColumnMain, {
|
|
|
241
263
|
// src/components/Column/Column.tsx
|
|
242
264
|
import { jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
243
265
|
var Column = ({ className, children, header }) => {
|
|
244
|
-
return /* @__PURE__ */ jsxs2("div", { className: cn("flex flex-col gap-5", "h-full w-full px-5
|
|
245
|
-
header && /* @__PURE__ */ jsx5("h1", { className: cn("text-
|
|
266
|
+
return /* @__PURE__ */ jsxs2("div", { className: cn("flex flex-col gap-5", "h-full w-full px-5 py-3", className), children: [
|
|
267
|
+
header && /* @__PURE__ */ jsx5("h1", { className: cn("text-body1-medium text-primary"), children: header }),
|
|
246
268
|
children
|
|
247
269
|
] });
|
|
248
270
|
};
|
|
@@ -279,70 +301,87 @@ var ColumnSubTitle = ({
|
|
|
279
301
|
as: Tag2 = "h2"
|
|
280
302
|
}) => {
|
|
281
303
|
return /* @__PURE__ */ jsxs4(Tag2, { className: cn("flex items-center justify-between gap-1.5", "w-full", className), children: [
|
|
282
|
-
/* @__PURE__ */ jsx9("span", { className: cn("text-
|
|
304
|
+
/* @__PURE__ */ jsx9("span", { className: cn("text-body1-medium text-primary"), children }),
|
|
283
305
|
action && /* @__PURE__ */ jsx9("span", { className: "flex shrink-0 items-center", children: action })
|
|
284
306
|
] });
|
|
285
307
|
};
|
|
286
308
|
|
|
287
|
-
// src/components/
|
|
309
|
+
// src/components/Column/ColumnDescription.tsx
|
|
288
310
|
import { jsx as jsx10, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
311
|
+
var ColumnDescription = ({
|
|
312
|
+
className,
|
|
313
|
+
children,
|
|
314
|
+
bullet = true
|
|
315
|
+
}) => {
|
|
316
|
+
return /* @__PURE__ */ jsxs5("div", { className: cn("flex items-start gap-3", className), children: [
|
|
317
|
+
bullet && /* @__PURE__ */ jsx10("span", { className: "flex shrink-0 items-center py-1", children: /* @__PURE__ */ jsx10(IconCompass, { className: "size-4" }) }),
|
|
318
|
+
/* @__PURE__ */ jsx10("div", { className: "min-w-0 flex-1 whitespace-pre-line text-body3-book text-primary", children })
|
|
319
|
+
] });
|
|
320
|
+
};
|
|
321
|
+
var ColumnDescriptionList = ({ className, children }) => {
|
|
322
|
+
return /* @__PURE__ */ jsx10("div", { className: cn("flex flex-col gap-4", className), children });
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
// src/components/Form/BasicFormField.tsx
|
|
326
|
+
import { jsx as jsx11, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
289
327
|
var BasicFormField = ({
|
|
290
328
|
children,
|
|
291
329
|
isDanger,
|
|
292
330
|
dangerText,
|
|
293
331
|
className
|
|
294
332
|
}) => {
|
|
295
|
-
return /* @__PURE__ */
|
|
333
|
+
return /* @__PURE__ */ jsxs6("div", { className: cn("flex flex-col gap-1.5", className), children: [
|
|
296
334
|
children,
|
|
297
|
-
isDanger && dangerText && /* @__PURE__ */
|
|
335
|
+
isDanger && dangerText && /* @__PURE__ */ jsx11("span", { className: "text-caption-book text-danger", children: dangerText })
|
|
298
336
|
] });
|
|
299
337
|
};
|
|
300
338
|
var getInputStyles = (isDanger, additionalClass) => {
|
|
301
339
|
return cn(
|
|
302
|
-
|
|
340
|
+
// 디자인 스펙: 높이 41px, 좌우 12px / 상하 10px 패딩
|
|
341
|
+
"w-full h-[41px] px-3 py-2.5",
|
|
303
342
|
"box-border border border-gray02 focus:outline-none focus:border-black",
|
|
304
|
-
"bg-white
|
|
343
|
+
"bg-white transition-colors",
|
|
305
344
|
ColumnTextStyle,
|
|
306
345
|
"text-primary placeholder:text-quaternary",
|
|
307
346
|
isDanger && "border-danger",
|
|
308
|
-
//
|
|
347
|
+
// 경고 시 빨간 테두리 (#E42939)
|
|
309
348
|
additionalClass
|
|
310
349
|
// 각 인풋별 추가 스타일 (예: textarea의 h-30)
|
|
311
350
|
);
|
|
312
351
|
};
|
|
313
352
|
|
|
314
353
|
// src/components/Form/FormText.tsx
|
|
315
|
-
import { jsx as
|
|
354
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
316
355
|
var FormText = ({ className, isDanger, dangerText, ...props }) => {
|
|
317
|
-
return /* @__PURE__ */
|
|
356
|
+
return /* @__PURE__ */ jsx12(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ jsx12("input", { type: "text", className: getInputStyles(isDanger, className), ...props }) });
|
|
318
357
|
};
|
|
319
358
|
|
|
320
359
|
// src/components/Form/FormTextArea.tsx
|
|
321
|
-
import { jsx as
|
|
360
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
322
361
|
var FormTextArea = ({ className, isDanger, dangerText, ...props }) => {
|
|
323
|
-
return /* @__PURE__ */
|
|
362
|
+
return /* @__PURE__ */ jsx13(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ jsx13(
|
|
324
363
|
"textarea",
|
|
325
364
|
{
|
|
326
|
-
className: getInputStyles(isDanger, "resize-none h-30 py-2.5 " + (className || "")),
|
|
365
|
+
className: getInputStyles(isDanger, "resize-none h-30 px-4 py-2.5 " + (className || "")),
|
|
327
366
|
...props
|
|
328
367
|
}
|
|
329
368
|
) });
|
|
330
369
|
};
|
|
331
370
|
|
|
332
371
|
// src/components/Form/FormNumber.tsx
|
|
333
|
-
import { jsx as
|
|
372
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
334
373
|
var FormNumber = ({ className, isDanger, dangerText, ...props }) => {
|
|
335
|
-
return /* @__PURE__ */
|
|
374
|
+
return /* @__PURE__ */ jsx14(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ jsx14("input", { type: "number", className: getInputStyles(isDanger, className), ...props }) });
|
|
336
375
|
};
|
|
337
376
|
|
|
338
377
|
// src/components/Form/FormPassword.tsx
|
|
339
|
-
import { jsx as
|
|
378
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
340
379
|
var FormPassword = ({ className, isDanger, dangerText, ...props }) => {
|
|
341
|
-
return /* @__PURE__ */
|
|
380
|
+
return /* @__PURE__ */ jsx15(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ jsx15("input", { type: "password", className: getInputStyles(isDanger, className), ...props }) });
|
|
342
381
|
};
|
|
343
382
|
|
|
344
383
|
// src/components/Form/FormTel.tsx
|
|
345
|
-
import { jsx as
|
|
384
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
346
385
|
var FormTel = ({ className, isDanger, dangerText, onChange, ...props }) => {
|
|
347
386
|
const handlePhoneChange = (e) => {
|
|
348
387
|
const rawValue = e.target.value.replace(/[^0-9]/g, "");
|
|
@@ -354,7 +393,7 @@ var FormTel = ({ className, isDanger, dangerText, onChange, ...props }) => {
|
|
|
354
393
|
e.target.value = formattedValue;
|
|
355
394
|
if (onChange) onChange(e);
|
|
356
395
|
};
|
|
357
|
-
return /* @__PURE__ */
|
|
396
|
+
return /* @__PURE__ */ jsx16(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ jsx16(
|
|
358
397
|
"input",
|
|
359
398
|
{
|
|
360
399
|
type: "tel",
|
|
@@ -368,7 +407,7 @@ var FormTel = ({ className, isDanger, dangerText, onChange, ...props }) => {
|
|
|
368
407
|
|
|
369
408
|
// src/components/Form/FormColor.tsx
|
|
370
409
|
import { useState } from "react";
|
|
371
|
-
import { jsx as
|
|
410
|
+
import { jsx as jsx17, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
372
411
|
var FormColor = ({
|
|
373
412
|
className,
|
|
374
413
|
isDanger,
|
|
@@ -386,7 +425,7 @@ var FormColor = ({
|
|
|
386
425
|
setInternalColor(e.target.value);
|
|
387
426
|
onChange?.(e);
|
|
388
427
|
};
|
|
389
|
-
return /* @__PURE__ */
|
|
428
|
+
return /* @__PURE__ */ jsx17(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ jsxs7(
|
|
390
429
|
"label",
|
|
391
430
|
{
|
|
392
431
|
className: getInputStyles(
|
|
@@ -395,7 +434,7 @@ var FormColor = ({
|
|
|
395
434
|
"flex items-center gap-2 relative focus-within:border-black focus-within:hover:bg-white" + (className || "")
|
|
396
435
|
),
|
|
397
436
|
children: [
|
|
398
|
-
/* @__PURE__ */
|
|
437
|
+
/* @__PURE__ */ jsx17("div", { className: "w-6 h-6 shrink-0 overflow-hidden", style: { backgroundColor: color }, children: /* @__PURE__ */ jsx17(
|
|
399
438
|
"input",
|
|
400
439
|
{
|
|
401
440
|
type: "color",
|
|
@@ -405,7 +444,7 @@ var FormColor = ({
|
|
|
405
444
|
...props
|
|
406
445
|
}
|
|
407
446
|
) }),
|
|
408
|
-
/* @__PURE__ */
|
|
447
|
+
/* @__PURE__ */ jsx17("span", { className: "text-primary text-body3-regular uppercase flex-1 select-none", children: color })
|
|
409
448
|
]
|
|
410
449
|
}
|
|
411
450
|
) });
|
|
@@ -413,12 +452,11 @@ var FormColor = ({
|
|
|
413
452
|
|
|
414
453
|
// src/components/Form/FormFile.tsx
|
|
415
454
|
import { useState as useState2 } from "react";
|
|
416
|
-
import { jsx as
|
|
455
|
+
import { jsx as jsx18, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
417
456
|
var FormFile = ({
|
|
418
457
|
className,
|
|
419
458
|
isDanger,
|
|
420
459
|
dangerText,
|
|
421
|
-
placeholder = "\uD30C\uC77C\uC744 \uC120\uD0DD\uD574\uC8FC\uC138\uC694",
|
|
422
460
|
fileUrl,
|
|
423
461
|
filename,
|
|
424
462
|
onChange,
|
|
@@ -475,32 +513,31 @@ var FormFile = ({
|
|
|
475
513
|
}
|
|
476
514
|
};
|
|
477
515
|
const displayFileName = selectedFile?.name || (fileUrl ? fileUrl.split("/").pop() : null);
|
|
478
|
-
return /* @__PURE__ */
|
|
516
|
+
return /* @__PURE__ */ jsx18(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ jsxs8(
|
|
479
517
|
"div",
|
|
480
518
|
{
|
|
481
519
|
className: getInputStyles(
|
|
482
520
|
isDanger,
|
|
483
|
-
|
|
521
|
+
// 디자인 스펙: 파일 전 상태는 우측 정렬("파일 첨부"만), 파일 후 상태는 좌우 배치
|
|
522
|
+
cn(
|
|
523
|
+
"flex items-center gap-2",
|
|
524
|
+
displayFileName ? "justify-between" : "justify-end",
|
|
525
|
+
className
|
|
526
|
+
)
|
|
484
527
|
),
|
|
485
528
|
children: [
|
|
486
|
-
/* @__PURE__ */
|
|
487
|
-
"
|
|
529
|
+
displayFileName && /* @__PURE__ */ jsx18(
|
|
530
|
+
"span",
|
|
488
531
|
{
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
onClick: handleDownload,
|
|
494
|
-
className: "w-full underline text-primary cursor-pointer hover:text-black transition-colors",
|
|
495
|
-
title: `${displayFileName} \uB2E4\uC6B4\uB85C\uB4DC`,
|
|
496
|
-
children: displayFileName
|
|
497
|
-
}
|
|
498
|
-
) : /* @__PURE__ */ jsx17("span", { className: "w-full", children: placeholder })
|
|
532
|
+
onClick: handleDownload,
|
|
533
|
+
className: "text-body3-book text-primary truncate max-w-[200px] cursor-pointer",
|
|
534
|
+
title: `${displayFileName} \uB2E4\uC6B4\uB85C\uB4DC`,
|
|
535
|
+
children: displayFileName
|
|
499
536
|
}
|
|
500
537
|
),
|
|
501
|
-
/* @__PURE__ */
|
|
502
|
-
/* @__PURE__ */
|
|
503
|
-
/* @__PURE__ */
|
|
538
|
+
/* @__PURE__ */ jsxs8("label", { className: "shrink-0 px-1 -mx-1 cursor-pointer", children: [
|
|
539
|
+
/* @__PURE__ */ jsx18("div", { className: "text-primary text-caption-regular underline", children: displayFileName ? "\uB2E4\uC2DC \uCCA8\uBD80" : "\uD30C\uC77C \uCCA8\uBD80" }),
|
|
540
|
+
/* @__PURE__ */ jsx18("input", { type: "file", className: "hidden", onChange: handleFileChange, ...props })
|
|
504
541
|
] })
|
|
505
542
|
]
|
|
506
543
|
}
|
|
@@ -508,7 +545,7 @@ var FormFile = ({
|
|
|
508
545
|
};
|
|
509
546
|
|
|
510
547
|
// src/components/Form/FormCheckBox.tsx
|
|
511
|
-
import { jsx as
|
|
548
|
+
import { jsx as jsx19, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
512
549
|
var FormCheckBox = ({
|
|
513
550
|
isChecked,
|
|
514
551
|
setIsChecked,
|
|
@@ -517,19 +554,18 @@ var FormCheckBox = ({
|
|
|
517
554
|
textStyle,
|
|
518
555
|
...props
|
|
519
556
|
}) => {
|
|
520
|
-
return /* @__PURE__ */
|
|
557
|
+
return /* @__PURE__ */ jsxs9(
|
|
521
558
|
"label",
|
|
522
559
|
{
|
|
523
560
|
className: cn(
|
|
524
|
-
"w-fit h-fit
|
|
561
|
+
"group w-fit h-fit",
|
|
525
562
|
"flex items-center gap-1",
|
|
526
|
-
"hover:bg-gray00 active:bg-gray01 transition-colors",
|
|
527
563
|
"cursor-pointer select-none",
|
|
528
564
|
// 💡 1. 텍스트 드래그 방지 추가
|
|
529
565
|
className
|
|
530
566
|
),
|
|
531
567
|
children: [
|
|
532
|
-
/* @__PURE__ */
|
|
568
|
+
/* @__PURE__ */ jsx19(
|
|
533
569
|
"input",
|
|
534
570
|
{
|
|
535
571
|
type: "checkbox",
|
|
@@ -539,20 +575,29 @@ var FormCheckBox = ({
|
|
|
539
575
|
...props
|
|
540
576
|
}
|
|
541
577
|
),
|
|
542
|
-
/* @__PURE__ */
|
|
578
|
+
/* @__PURE__ */ jsx19(
|
|
543
579
|
"div",
|
|
544
580
|
{
|
|
545
581
|
className: cn(
|
|
546
|
-
"w-
|
|
547
|
-
"
|
|
548
|
-
"flex items-center justify-center transition-colors duration-200",
|
|
549
|
-
// 💡 3. 키보드 Tab 이동 시 접근성 향상 (포커스 링 표시)
|
|
550
|
-
"peer-focus-visible:ring-2 peer-focus-visible:ring-black peer-focus-visible:ring-offset-1"
|
|
582
|
+
"flex items-center justify-center w-5 h-5 shrink-0 rounded transition-colors",
|
|
583
|
+
"group-hover:bg-gray00 group-active:bg-gray01"
|
|
551
584
|
),
|
|
552
|
-
children:
|
|
585
|
+
children: /* @__PURE__ */ jsx19(
|
|
586
|
+
"div",
|
|
587
|
+
{
|
|
588
|
+
className: cn(
|
|
589
|
+
"w-[15px] h-[15px]",
|
|
590
|
+
"box-border border border-black",
|
|
591
|
+
"flex items-center justify-center transition-colors duration-200",
|
|
592
|
+
// 💡 3. 키보드 Tab 이동 시 접근성 향상 (포커스 링 표시)
|
|
593
|
+
"peer-focus-visible:ring-2 peer-focus-visible:ring-black peer-focus-visible:ring-offset-1"
|
|
594
|
+
),
|
|
595
|
+
children: isChecked && /* @__PURE__ */ jsx19(IconCheck, {})
|
|
596
|
+
}
|
|
597
|
+
)
|
|
553
598
|
}
|
|
554
|
-
)
|
|
555
|
-
children && /* @__PURE__ */
|
|
599
|
+
),
|
|
600
|
+
children && /* @__PURE__ */ jsx19("span", { className: cn("text-body3-book text-primary", textStyle), children })
|
|
556
601
|
]
|
|
557
602
|
}
|
|
558
603
|
);
|
|
@@ -562,19 +607,20 @@ var FormCheckBox = ({
|
|
|
562
607
|
import { useEffect, useRef, useState as useState3 } from "react";
|
|
563
608
|
|
|
564
609
|
// src/components/Form/SelectBoxOption.tsx
|
|
565
|
-
import { jsx as
|
|
610
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
566
611
|
var SelectBoxOption = ({
|
|
567
612
|
label,
|
|
568
613
|
onClick,
|
|
569
614
|
// selectedLabel,
|
|
570
615
|
className
|
|
571
616
|
}) => {
|
|
572
|
-
return /* @__PURE__ */
|
|
617
|
+
return /* @__PURE__ */ jsx20(
|
|
573
618
|
"li",
|
|
574
619
|
{
|
|
575
620
|
onClick,
|
|
576
621
|
className: cn(
|
|
577
|
-
"w-full
|
|
622
|
+
"w-full p-3 shrink-0",
|
|
623
|
+
// 디자인 스펙: 12px 패딩
|
|
578
624
|
"flex items-center justify-start",
|
|
579
625
|
// "box-border border-b border-gray02",
|
|
580
626
|
"text-body3-book text-primary",
|
|
@@ -590,7 +636,7 @@ var SelectBoxOption = ({
|
|
|
590
636
|
};
|
|
591
637
|
|
|
592
638
|
// src/components/Form/FormSelectBox.tsx
|
|
593
|
-
import { jsx as
|
|
639
|
+
import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
594
640
|
var FormSelectBox = ({
|
|
595
641
|
options,
|
|
596
642
|
value,
|
|
@@ -613,8 +659,8 @@ var FormSelectBox = ({
|
|
|
613
659
|
document.removeEventListener("mousedown", handleClickOutside);
|
|
614
660
|
};
|
|
615
661
|
}, []);
|
|
616
|
-
return /* @__PURE__ */
|
|
617
|
-
/* @__PURE__ */
|
|
662
|
+
return /* @__PURE__ */ jsx21(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ jsxs10("div", { ref: containerRef, className: "relative w-full", children: [
|
|
663
|
+
/* @__PURE__ */ jsxs10(
|
|
618
664
|
"div",
|
|
619
665
|
{
|
|
620
666
|
tabIndex: 0,
|
|
@@ -622,8 +668,8 @@ var FormSelectBox = ({
|
|
|
622
668
|
isDanger,
|
|
623
669
|
cn(
|
|
624
670
|
"flex items-center justify-between cursor-pointer select-none",
|
|
625
|
-
isOpen && "border-
|
|
626
|
-
//
|
|
671
|
+
isOpen && "border-gray08",
|
|
672
|
+
// 열려있을 때 테두리 #3A414C 고정 (디자인 스펙)
|
|
627
673
|
className
|
|
628
674
|
)
|
|
629
675
|
),
|
|
@@ -634,8 +680,8 @@ var FormSelectBox = ({
|
|
|
634
680
|
setIsOpen((prev) => !prev);
|
|
635
681
|
},
|
|
636
682
|
children: [
|
|
637
|
-
/* @__PURE__ */
|
|
638
|
-
/* @__PURE__ */
|
|
683
|
+
/* @__PURE__ */ jsx21("span", { className: value ? "text-primary" : "text-quaternary", children: value || placeholder }),
|
|
684
|
+
/* @__PURE__ */ jsx21(
|
|
639
685
|
IconChevronDownXS,
|
|
640
686
|
{
|
|
641
687
|
className: cn("text-gray06 transition-transform", isOpen && "rotate-180"),
|
|
@@ -645,17 +691,17 @@ var FormSelectBox = ({
|
|
|
645
691
|
]
|
|
646
692
|
}
|
|
647
693
|
),
|
|
648
|
-
isOpen && /* @__PURE__ */
|
|
694
|
+
isOpen && /* @__PURE__ */ jsx21(
|
|
649
695
|
"ul",
|
|
650
696
|
{
|
|
651
697
|
className: cn(
|
|
652
698
|
"absolute top-full left-0 right-0 z-10",
|
|
653
699
|
// 💡 Input 바로 아래에 띄움
|
|
654
700
|
"box-border border border-gray02 bg-white flex flex-col",
|
|
655
|
-
"max-h-50 overflow-y-auto
|
|
656
|
-
//
|
|
701
|
+
"max-h-50 overflow-y-auto"
|
|
702
|
+
// 항목이 너무 많으면 스크롤 생성 (디자인 스펙: 그림자 없음)
|
|
657
703
|
),
|
|
658
|
-
children: options.map((option) => /* @__PURE__ */
|
|
704
|
+
children: options.map((option) => /* @__PURE__ */ jsx21(
|
|
659
705
|
SelectBoxOption,
|
|
660
706
|
{
|
|
661
707
|
label: option,
|
|
@@ -672,7 +718,7 @@ var FormSelectBox = ({
|
|
|
672
718
|
};
|
|
673
719
|
|
|
674
720
|
// src/components/TextButton/TextButton.tsx
|
|
675
|
-
import { Fragment, jsx as
|
|
721
|
+
import { Fragment, jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
676
722
|
var TextButton = ({
|
|
677
723
|
children,
|
|
678
724
|
icon,
|
|
@@ -682,15 +728,15 @@ var TextButton = ({
|
|
|
682
728
|
className,
|
|
683
729
|
...props
|
|
684
730
|
}) => {
|
|
685
|
-
const content = /* @__PURE__ */
|
|
686
|
-
icon && iconPosition === "left" && /* @__PURE__ */
|
|
687
|
-
/* @__PURE__ */
|
|
688
|
-
icon && iconPosition === "right" && /* @__PURE__ */
|
|
731
|
+
const content = /* @__PURE__ */ jsxs11(Fragment, { children: [
|
|
732
|
+
icon && iconPosition === "left" && /* @__PURE__ */ jsx22("span", { className: "flex shrink-0 items-center", children: icon }),
|
|
733
|
+
/* @__PURE__ */ jsx22("span", { className: cn(underline && "underline underline-offset-2"), children }),
|
|
734
|
+
icon && iconPosition === "right" && /* @__PURE__ */ jsx22("span", { className: "flex shrink-0 items-center", children: icon })
|
|
689
735
|
] });
|
|
690
736
|
const classes = cn(
|
|
691
737
|
"inline-flex w-fit items-center gap-1 px-1 -mx-1",
|
|
692
738
|
"text-caption-book",
|
|
693
|
-
alert ? "text-danger" : "text-
|
|
739
|
+
alert ? "text-danger" : "text-secondary",
|
|
694
740
|
"hover:bg-gray00 active:bg-gray01 transition-colors",
|
|
695
741
|
alert ? "hover:text-danger" : "hover:text-primary",
|
|
696
742
|
"cursor-pointer select-none",
|
|
@@ -700,15 +746,15 @@ var TextButton = ({
|
|
|
700
746
|
);
|
|
701
747
|
if (props.href !== void 0) {
|
|
702
748
|
const { href, ...rest } = props;
|
|
703
|
-
return /* @__PURE__ */
|
|
749
|
+
return /* @__PURE__ */ jsx22("a", { href, className: classes, ...rest, children: content });
|
|
704
750
|
}
|
|
705
751
|
const buttonProps = props;
|
|
706
|
-
return /* @__PURE__ */
|
|
752
|
+
return /* @__PURE__ */ jsx22("button", { type: "button", className: classes, ...buttonProps, children: content });
|
|
707
753
|
};
|
|
708
754
|
|
|
709
755
|
// src/components/Dropdown/Dropdown.tsx
|
|
710
756
|
import { useEffect as useEffect2, useRef as useRef2, useState as useState4 } from "react";
|
|
711
|
-
import { jsx as
|
|
757
|
+
import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
712
758
|
var Dropdown = ({ selectedLabel, setSelectedLabel, labels, className }) => {
|
|
713
759
|
const [isOpen, setIsOpen] = useState4(false);
|
|
714
760
|
const containerRef = useRef2(null);
|
|
@@ -723,8 +769,8 @@ var Dropdown = ({ selectedLabel, setSelectedLabel, labels, className }) => {
|
|
|
723
769
|
document.removeEventListener("mousedown", handleClickOutside);
|
|
724
770
|
};
|
|
725
771
|
}, []);
|
|
726
|
-
return /* @__PURE__ */
|
|
727
|
-
/* @__PURE__ */
|
|
772
|
+
return /* @__PURE__ */ jsxs12("div", { ref: containerRef, className: "relative", children: [
|
|
773
|
+
/* @__PURE__ */ jsxs12(
|
|
728
774
|
"div",
|
|
729
775
|
{
|
|
730
776
|
className: cn(
|
|
@@ -737,8 +783,8 @@ var Dropdown = ({ selectedLabel, setSelectedLabel, labels, className }) => {
|
|
|
737
783
|
),
|
|
738
784
|
onClick: () => setIsOpen((prev) => !prev),
|
|
739
785
|
children: [
|
|
740
|
-
/* @__PURE__ */
|
|
741
|
-
/* @__PURE__ */
|
|
786
|
+
/* @__PURE__ */ jsx23("p", { children: selectedLabel }),
|
|
787
|
+
/* @__PURE__ */ jsx23(
|
|
742
788
|
IconChevronDownXS,
|
|
743
789
|
{
|
|
744
790
|
className: cn("text-gray06 transition-transform", isOpen && "rotate-180"),
|
|
@@ -748,7 +794,7 @@ var Dropdown = ({ selectedLabel, setSelectedLabel, labels, className }) => {
|
|
|
748
794
|
]
|
|
749
795
|
}
|
|
750
796
|
),
|
|
751
|
-
isOpen && /* @__PURE__ */
|
|
797
|
+
isOpen && /* @__PURE__ */ jsx23("div", { className: cn("absolute top-full right-0 z-10", "box-border border border-gray02"), children: labels.map((label) => /* @__PURE__ */ jsx23(
|
|
752
798
|
SelectBoxOption,
|
|
753
799
|
{
|
|
754
800
|
label,
|
|
@@ -764,7 +810,7 @@ var Dropdown = ({ selectedLabel, setSelectedLabel, labels, className }) => {
|
|
|
764
810
|
};
|
|
765
811
|
|
|
766
812
|
// src/components/ListView/List.tsx
|
|
767
|
-
import { jsx as
|
|
813
|
+
import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
768
814
|
function List({
|
|
769
815
|
className,
|
|
770
816
|
label1,
|
|
@@ -777,7 +823,7 @@ function List({
|
|
|
777
823
|
children,
|
|
778
824
|
...props
|
|
779
825
|
}) {
|
|
780
|
-
return /* @__PURE__ */
|
|
826
|
+
return /* @__PURE__ */ jsxs13(
|
|
781
827
|
"li",
|
|
782
828
|
{
|
|
783
829
|
className: cn(
|
|
@@ -792,11 +838,11 @@ function List({
|
|
|
792
838
|
...props,
|
|
793
839
|
onClick,
|
|
794
840
|
children: [
|
|
795
|
-
/* @__PURE__ */
|
|
796
|
-
/* @__PURE__ */
|
|
797
|
-
/* @__PURE__ */
|
|
841
|
+
/* @__PURE__ */ jsxs13("section", { className: cn("flex items-center gap-4"), children: [
|
|
842
|
+
/* @__PURE__ */ jsx24("label", { className: cn("text-body2-regular"), children: label1 ? label1 : "-" }),
|
|
843
|
+
/* @__PURE__ */ jsx24("div", { className: cn("flex items-center gap-2"), children })
|
|
798
844
|
] }),
|
|
799
|
-
/* @__PURE__ */
|
|
845
|
+
/* @__PURE__ */ jsx24(
|
|
800
846
|
"label",
|
|
801
847
|
{
|
|
802
848
|
className: cn(
|
|
@@ -808,21 +854,21 @@ function List({
|
|
|
808
854
|
children: label2 ? label2 : "-"
|
|
809
855
|
}
|
|
810
856
|
),
|
|
811
|
-
/* @__PURE__ */
|
|
857
|
+
/* @__PURE__ */ jsx24("label", { className: cn("text-body3-regular text-right"), children: label3 ? label3 : "-" })
|
|
812
858
|
]
|
|
813
859
|
}
|
|
814
860
|
);
|
|
815
861
|
}
|
|
816
862
|
|
|
817
863
|
// src/components/Modal/Modal.tsx
|
|
818
|
-
import { jsx as
|
|
864
|
+
import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
819
865
|
var ModalBase = ({ isVisible, header, children, className }) => {
|
|
820
866
|
if (!isVisible) return null;
|
|
821
|
-
return /* @__PURE__ */
|
|
867
|
+
return /* @__PURE__ */ jsx25("div", { className: cn("fixed inset-0 z-50 pointer-events-auto"), children: /* @__PURE__ */ jsx25(
|
|
822
868
|
"div",
|
|
823
869
|
{
|
|
824
870
|
className: cn("fixed inset-0 z-1001 flex items-center justify-center pointer-events-auto"),
|
|
825
|
-
children: /* @__PURE__ */
|
|
871
|
+
children: /* @__PURE__ */ jsxs14(
|
|
826
872
|
"main",
|
|
827
873
|
{
|
|
828
874
|
className: cn(
|
|
@@ -833,7 +879,7 @@ var ModalBase = ({ isVisible, header, children, className }) => {
|
|
|
833
879
|
className
|
|
834
880
|
),
|
|
835
881
|
children: [
|
|
836
|
-
/* @__PURE__ */
|
|
882
|
+
/* @__PURE__ */ jsx25("h1", { className: cn("text-strong font-[500] text-[24px] leading-[32px]"), children: header }),
|
|
837
883
|
children
|
|
838
884
|
]
|
|
839
885
|
}
|
|
@@ -842,7 +888,7 @@ var ModalBase = ({ isVisible, header, children, className }) => {
|
|
|
842
888
|
) });
|
|
843
889
|
};
|
|
844
890
|
var Contents = ({ children, className }) => {
|
|
845
|
-
return /* @__PURE__ */
|
|
891
|
+
return /* @__PURE__ */ jsx25(
|
|
846
892
|
"div",
|
|
847
893
|
{
|
|
848
894
|
className: cn(
|
|
@@ -859,7 +905,7 @@ var CTAs2 = ({ children, className, row = false }) => {
|
|
|
859
905
|
if (!children) return null;
|
|
860
906
|
return (
|
|
861
907
|
// CTA 버튼들을 중앙에 배치하는 예시 (우측 정렬이 필요하면 justify-end 사용)
|
|
862
|
-
/* @__PURE__ */
|
|
908
|
+
/* @__PURE__ */ jsx25(
|
|
863
909
|
"div",
|
|
864
910
|
{
|
|
865
911
|
className: cn(
|
|
@@ -878,9 +924,9 @@ var Modal = Object.assign(ModalBase, {
|
|
|
878
924
|
});
|
|
879
925
|
|
|
880
926
|
// src/components/Modal/ModalText.tsx
|
|
881
|
-
import { jsx as
|
|
927
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
882
928
|
var ModalText = ({ children, className }) => {
|
|
883
|
-
return /* @__PURE__ */
|
|
929
|
+
return /* @__PURE__ */ jsx26(
|
|
884
930
|
"div",
|
|
885
931
|
{
|
|
886
932
|
className: cn(
|
|
@@ -896,14 +942,14 @@ var ModalText = ({ children, className }) => {
|
|
|
896
942
|
};
|
|
897
943
|
|
|
898
944
|
// src/components/createPost/CategorySegment.tsx
|
|
899
|
-
import { jsx as
|
|
945
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
900
946
|
var CategorySegment = ({
|
|
901
947
|
selected = false,
|
|
902
948
|
label,
|
|
903
949
|
className,
|
|
904
950
|
onClick
|
|
905
951
|
}) => {
|
|
906
|
-
return /* @__PURE__ */
|
|
952
|
+
return /* @__PURE__ */ jsx27(
|
|
907
953
|
"div",
|
|
908
954
|
{
|
|
909
955
|
className: cn(
|
|
@@ -923,7 +969,7 @@ var CategorySegment = ({
|
|
|
923
969
|
};
|
|
924
970
|
|
|
925
971
|
// src/components/createPost/CategorySegmentedControl.tsx
|
|
926
|
-
import { jsx as
|
|
972
|
+
import { jsx as jsx28, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
927
973
|
var categorySegments = {
|
|
928
974
|
info: ["\uACF5\uC6A9 \uBB3C\uD488", "\uC77C\uBC18 \uAE30\uC790\uC7AC", "\uD2B9\uC218 \uAE30\uC790\uC7AC"],
|
|
929
975
|
archive: ["\uD504\uB9B0\uD2B8\uC2E4", "\uD64D\uC775\uC2DC\uB514"],
|
|
@@ -937,8 +983,8 @@ var CategorySegmentedControl = ({
|
|
|
937
983
|
className
|
|
938
984
|
}) => {
|
|
939
985
|
const segments = categorySegments[variable];
|
|
940
|
-
return /* @__PURE__ */
|
|
941
|
-
/* @__PURE__ */
|
|
986
|
+
return /* @__PURE__ */ jsxs15("div", { className: cn("w-full h-fit flex items-center justify-start", className), children: [
|
|
987
|
+
/* @__PURE__ */ jsx28(
|
|
942
988
|
"div",
|
|
943
989
|
{
|
|
944
990
|
className: cn(
|
|
@@ -951,7 +997,7 @@ var CategorySegmentedControl = ({
|
|
|
951
997
|
children: variable === "infoTag" ? "\uD0DC\uADF8 \uC120\uD0DD" : "\uCE74\uD14C\uACE0\uB9AC \uC120\uD0DD"
|
|
952
998
|
}
|
|
953
999
|
),
|
|
954
|
-
segments.map((label) => /* @__PURE__ */
|
|
1000
|
+
segments.map((label) => /* @__PURE__ */ jsx28(
|
|
955
1001
|
CategorySegment,
|
|
956
1002
|
{
|
|
957
1003
|
label,
|
|
@@ -964,9 +1010,9 @@ var CategorySegmentedControl = ({
|
|
|
964
1010
|
};
|
|
965
1011
|
|
|
966
1012
|
// src/components/createPost/TitleInput.tsx
|
|
967
|
-
import { jsx as
|
|
1013
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
968
1014
|
var TitleInput = ({ title, onChange, className }) => {
|
|
969
|
-
return /* @__PURE__ */
|
|
1015
|
+
return /* @__PURE__ */ jsx29(
|
|
970
1016
|
"input",
|
|
971
1017
|
{
|
|
972
1018
|
type: "text",
|
|
@@ -986,9 +1032,9 @@ var TitleInput = ({ title, onChange, className }) => {
|
|
|
986
1032
|
};
|
|
987
1033
|
|
|
988
1034
|
// src/components/notice/NoticeBadge.tsx
|
|
989
|
-
import { jsx as
|
|
1035
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
990
1036
|
var NoticeBadge = ({ variable, className, onClick }) => {
|
|
991
|
-
return /* @__PURE__ */
|
|
1037
|
+
return /* @__PURE__ */ jsx30(
|
|
992
1038
|
"button",
|
|
993
1039
|
{
|
|
994
1040
|
type: "button",
|
|
@@ -1009,7 +1055,7 @@ var NoticeBadge = ({ variable, className, onClick }) => {
|
|
|
1009
1055
|
};
|
|
1010
1056
|
|
|
1011
1057
|
// src/components/notice/NoticeBar.tsx
|
|
1012
|
-
import { jsx as
|
|
1058
|
+
import { jsx as jsx31, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1013
1059
|
var NoticeBar = ({
|
|
1014
1060
|
variable = "default",
|
|
1015
1061
|
badgeVariable,
|
|
@@ -1018,7 +1064,7 @@ var NoticeBar = ({
|
|
|
1018
1064
|
className,
|
|
1019
1065
|
onClick
|
|
1020
1066
|
}) => {
|
|
1021
|
-
return /* @__PURE__ */
|
|
1067
|
+
return /* @__PURE__ */ jsxs16(
|
|
1022
1068
|
"div",
|
|
1023
1069
|
{
|
|
1024
1070
|
className: cn(
|
|
@@ -1030,20 +1076,20 @@ var NoticeBar = ({
|
|
|
1030
1076
|
),
|
|
1031
1077
|
onClick,
|
|
1032
1078
|
children: [
|
|
1033
|
-
/* @__PURE__ */
|
|
1034
|
-
/* @__PURE__ */
|
|
1035
|
-
/* @__PURE__ */
|
|
1079
|
+
/* @__PURE__ */ jsxs16("section", { className: "flex items-center gap-3", children: [
|
|
1080
|
+
/* @__PURE__ */ jsx31(NoticeBadge, { variable: badgeVariable }),
|
|
1081
|
+
/* @__PURE__ */ jsx31("h1", { className: "text-head1-medium text-strong", children: title })
|
|
1036
1082
|
] }),
|
|
1037
|
-
/* @__PURE__ */
|
|
1083
|
+
/* @__PURE__ */ jsx31("p", { className: "text-body3-book text-tertiary", children: date })
|
|
1038
1084
|
]
|
|
1039
1085
|
}
|
|
1040
1086
|
);
|
|
1041
1087
|
};
|
|
1042
1088
|
|
|
1043
1089
|
// src/components/SearchBar/SearchBar.tsx
|
|
1044
|
-
import { jsx as
|
|
1090
|
+
import { jsx as jsx32, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1045
1091
|
var SearchBar = ({ value, onChange, className }) => {
|
|
1046
|
-
return /* @__PURE__ */
|
|
1092
|
+
return /* @__PURE__ */ jsxs17(
|
|
1047
1093
|
"label",
|
|
1048
1094
|
{
|
|
1049
1095
|
className: cn(
|
|
@@ -1054,8 +1100,8 @@ var SearchBar = ({ value, onChange, className }) => {
|
|
|
1054
1100
|
className
|
|
1055
1101
|
),
|
|
1056
1102
|
children: [
|
|
1057
|
-
/* @__PURE__ */
|
|
1058
|
-
/* @__PURE__ */
|
|
1103
|
+
/* @__PURE__ */ jsx32(IconSearch, {}),
|
|
1104
|
+
/* @__PURE__ */ jsx32(
|
|
1059
1105
|
"input",
|
|
1060
1106
|
{
|
|
1061
1107
|
type: "text",
|
|
@@ -1104,7 +1150,7 @@ var RadioSelected_default = "./RadioSelected-DOLVV7ZM.svg";
|
|
|
1104
1150
|
var RadioUnselected_default = "./RadioUnselected-QN74EU46.svg";
|
|
1105
1151
|
|
|
1106
1152
|
// src/components/SideRadioAccordion/SideRadioAccordion.tsx
|
|
1107
|
-
import { jsx as
|
|
1153
|
+
import { jsx as jsx33, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1108
1154
|
var printColorBgClass = {
|
|
1109
1155
|
Plotter: "bg-print-plotter",
|
|
1110
1156
|
Printer: "bg-print-printer",
|
|
@@ -1148,8 +1194,8 @@ var SideRadioAccordion = forwardRef(
|
|
|
1148
1194
|
setIsOpen(next);
|
|
1149
1195
|
onOpenChange?.(next);
|
|
1150
1196
|
};
|
|
1151
|
-
return /* @__PURE__ */
|
|
1152
|
-
/* @__PURE__ */
|
|
1197
|
+
return /* @__PURE__ */ jsxs18("div", { ref, className: cn("w-full border-r border-gray02 bg-white", className), children: [
|
|
1198
|
+
/* @__PURE__ */ jsx33(
|
|
1153
1199
|
Stepper,
|
|
1154
1200
|
{
|
|
1155
1201
|
step,
|
|
@@ -1160,8 +1206,8 @@ var SideRadioAccordion = forwardRef(
|
|
|
1160
1206
|
className: cn(stickyHeader && "sticky top-0 z-10")
|
|
1161
1207
|
}
|
|
1162
1208
|
),
|
|
1163
|
-
expanded && /* @__PURE__ */
|
|
1164
|
-
radioToggleList.map((item) => /* @__PURE__ */
|
|
1209
|
+
expanded && /* @__PURE__ */ jsxs18("div", { className: "flex flex-col divide-y divide-gray02", children: [
|
|
1210
|
+
radioToggleList.map((item) => /* @__PURE__ */ jsx33(
|
|
1165
1211
|
RadioToggleItem,
|
|
1166
1212
|
{
|
|
1167
1213
|
...item,
|
|
@@ -1170,29 +1216,22 @@ var SideRadioAccordion = forwardRef(
|
|
|
1170
1216
|
},
|
|
1171
1217
|
itemKey(item)
|
|
1172
1218
|
)),
|
|
1173
|
-
quantityLimitLabel && /* @__PURE__ */
|
|
1174
|
-
TextButton2,
|
|
1175
|
-
{
|
|
1176
|
-
label: quantityLimitLabel,
|
|
1177
|
-
onClick: onClickQuantityLimit,
|
|
1178
|
-
className: "mt-2"
|
|
1179
|
-
}
|
|
1180
|
-
)
|
|
1219
|
+
quantityLimitLabel && /* @__PURE__ */ jsx33("div", { className: "px-5 py-4", children: /* @__PURE__ */ jsx33(TextButton2, { label: quantityLimitLabel, onClick: onClickQuantityLimit }) })
|
|
1181
1220
|
] })
|
|
1182
1221
|
] });
|
|
1183
1222
|
}
|
|
1184
1223
|
);
|
|
1185
1224
|
var Stepper = ({ step, title, isOpen, collapsible, onClick, className }) => {
|
|
1186
|
-
const label = /* @__PURE__ */
|
|
1225
|
+
const label = /* @__PURE__ */ jsxs18("span", { children: [
|
|
1187
1226
|
step,
|
|
1188
1227
|
" | ",
|
|
1189
1228
|
title
|
|
1190
1229
|
] });
|
|
1191
|
-
const base = "w-full flex items-center justify-between px-
|
|
1230
|
+
const base = "w-full flex items-center justify-between px-5 py-2.5 text-head3-medium text-primary text-left bg-white border-b border-gray02";
|
|
1192
1231
|
if (!collapsible) {
|
|
1193
|
-
return /* @__PURE__ */
|
|
1232
|
+
return /* @__PURE__ */ jsx33("div", { className: cn(base, className), children: label });
|
|
1194
1233
|
}
|
|
1195
|
-
return /* @__PURE__ */
|
|
1234
|
+
return /* @__PURE__ */ jsxs18(
|
|
1196
1235
|
"button",
|
|
1197
1236
|
{
|
|
1198
1237
|
type: "button",
|
|
@@ -1200,7 +1239,7 @@ var Stepper = ({ step, title, isOpen, collapsible, onClick, className }) => {
|
|
|
1200
1239
|
className: cn(base, "cursor-pointer hover:bg-gray00 active:bg-gray01", className),
|
|
1201
1240
|
children: [
|
|
1202
1241
|
label,
|
|
1203
|
-
/* @__PURE__ */
|
|
1242
|
+
/* @__PURE__ */ jsx33(
|
|
1204
1243
|
"img",
|
|
1205
1244
|
{
|
|
1206
1245
|
src: ChevronDown_default,
|
|
@@ -1226,29 +1265,29 @@ var RadioToggleItem = ({
|
|
|
1226
1265
|
}) => {
|
|
1227
1266
|
const rowBg = !open ? "bg-white hover:bg-gray00" : color ? void 0 : printColor ? printColorBgClass[printColor] : "bg-gray00";
|
|
1228
1267
|
const style = open && color ? { backgroundColor: color } : void 0;
|
|
1229
|
-
return /* @__PURE__ */
|
|
1230
|
-
/* @__PURE__ */
|
|
1268
|
+
return /* @__PURE__ */ jsxs18("div", { className: "w-full", children: [
|
|
1269
|
+
/* @__PURE__ */ jsxs18(
|
|
1231
1270
|
"button",
|
|
1232
1271
|
{
|
|
1233
1272
|
type: "button",
|
|
1234
1273
|
onClick: onSelect,
|
|
1235
1274
|
style,
|
|
1236
1275
|
className: cn(
|
|
1237
|
-
"w-full flex items-center gap-1.5
|
|
1238
|
-
"text-
|
|
1276
|
+
"w-full flex items-center gap-1.5 p-3",
|
|
1277
|
+
"text-body1-regular text-secondary text-left cursor-pointer",
|
|
1239
1278
|
rowBg,
|
|
1240
1279
|
className
|
|
1241
1280
|
),
|
|
1242
1281
|
children: [
|
|
1243
|
-
/* @__PURE__ */
|
|
1244
|
-
/* @__PURE__ */
|
|
1282
|
+
/* @__PURE__ */ jsx33(Radio, { selected: open }),
|
|
1283
|
+
/* @__PURE__ */ jsx33("span", { children: title })
|
|
1245
1284
|
]
|
|
1246
1285
|
}
|
|
1247
1286
|
),
|
|
1248
|
-
open && /* @__PURE__ */
|
|
1249
|
-
/* @__PURE__ */
|
|
1250
|
-
badges && badges.length > 0 && /* @__PURE__ */
|
|
1251
|
-
labelTextButton && /* @__PURE__ */
|
|
1287
|
+
open && /* @__PURE__ */ jsxs18("div", { className: "flex flex-col gap-2 px-3 py-3 bg-white", children: [
|
|
1288
|
+
/* @__PURE__ */ jsx33("p", { className: "text-caption-regular text-secondary", children: content }),
|
|
1289
|
+
badges && badges.length > 0 && /* @__PURE__ */ jsx33("div", { className: "flex gap-1", children: badges.map((badge) => /* @__PURE__ */ jsx33(Badge, { label: badge }, badge)) }),
|
|
1290
|
+
labelTextButton && /* @__PURE__ */ jsx33(
|
|
1252
1291
|
TextButton2,
|
|
1253
1292
|
{
|
|
1254
1293
|
label: labelTextButton,
|
|
@@ -1261,17 +1300,17 @@ var RadioToggleItem = ({
|
|
|
1261
1300
|
] });
|
|
1262
1301
|
};
|
|
1263
1302
|
var Radio = ({ selected = false, className }) => {
|
|
1264
|
-
return /* @__PURE__ */
|
|
1303
|
+
return /* @__PURE__ */ jsx33(
|
|
1265
1304
|
"img",
|
|
1266
1305
|
{
|
|
1267
1306
|
src: selected ? RadioSelected_default : RadioUnselected_default,
|
|
1268
1307
|
alt: "",
|
|
1269
|
-
className: cn("w-
|
|
1308
|
+
className: cn("w-6 h-6", className)
|
|
1270
1309
|
}
|
|
1271
1310
|
);
|
|
1272
1311
|
};
|
|
1273
1312
|
var TextButton2 = ({ label, onClick, showIcon = false, className }) => {
|
|
1274
|
-
return /* @__PURE__ */
|
|
1313
|
+
return /* @__PURE__ */ jsxs18(
|
|
1275
1314
|
"button",
|
|
1276
1315
|
{
|
|
1277
1316
|
type: "button",
|
|
@@ -1284,14 +1323,14 @@ var TextButton2 = ({ label, onClick, showIcon = false, className }) => {
|
|
|
1284
1323
|
className
|
|
1285
1324
|
),
|
|
1286
1325
|
children: [
|
|
1287
|
-
showIcon && /* @__PURE__ */
|
|
1326
|
+
showIcon && /* @__PURE__ */ jsx33("img", { src: Exclamation_default, alt: "" }),
|
|
1288
1327
|
label
|
|
1289
1328
|
]
|
|
1290
1329
|
}
|
|
1291
1330
|
);
|
|
1292
1331
|
};
|
|
1293
1332
|
var Badge = ({ label, className }) => {
|
|
1294
|
-
return /* @__PURE__ */
|
|
1333
|
+
return /* @__PURE__ */ jsx33(
|
|
1295
1334
|
"div",
|
|
1296
1335
|
{
|
|
1297
1336
|
className: cn(
|
|
@@ -1305,7 +1344,7 @@ var Badge = ({ label, className }) => {
|
|
|
1305
1344
|
};
|
|
1306
1345
|
|
|
1307
1346
|
// src/components/Tag/Tag.tsx
|
|
1308
|
-
import { jsx as
|
|
1347
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
1309
1348
|
var Tag = ({
|
|
1310
1349
|
className,
|
|
1311
1350
|
children,
|
|
@@ -1315,7 +1354,7 @@ var Tag = ({
|
|
|
1315
1354
|
onClick,
|
|
1316
1355
|
...props
|
|
1317
1356
|
}) => {
|
|
1318
|
-
return /* @__PURE__ */
|
|
1357
|
+
return /* @__PURE__ */ jsx34(
|
|
1319
1358
|
"button",
|
|
1320
1359
|
{
|
|
1321
1360
|
className: cn(
|
|
@@ -1334,7 +1373,7 @@ var Tag = ({
|
|
|
1334
1373
|
disabled,
|
|
1335
1374
|
style: bgColor ? { backgroundColor: bgColor, border: "none" } : void 0,
|
|
1336
1375
|
...props,
|
|
1337
|
-
children: /* @__PURE__ */
|
|
1376
|
+
children: /* @__PURE__ */ jsx34("span", { children })
|
|
1338
1377
|
}
|
|
1339
1378
|
);
|
|
1340
1379
|
};
|
|
@@ -1376,7 +1415,7 @@ var formatWeekRange = (weekStart) => {
|
|
|
1376
1415
|
};
|
|
1377
1416
|
|
|
1378
1417
|
// src/components/Timetable/WeekNavigation.tsx
|
|
1379
|
-
import { jsx as
|
|
1418
|
+
import { jsx as jsx35, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1380
1419
|
var weekLabel = {
|
|
1381
1420
|
thisWeek: "\uC774\uBC88 \uC8FC",
|
|
1382
1421
|
nextWeek: "\uB2E4\uC74C \uC8FC",
|
|
@@ -1387,53 +1426,62 @@ var WeekNavigation = forwardRef2(
|
|
|
1387
1426
|
const showPrev = canPrev ?? (week ? week !== "thisWeek" : true);
|
|
1388
1427
|
const showNext = canNext ?? (week ? week !== "twoWeeksLater" : true);
|
|
1389
1428
|
const text = label ?? (week ? `${weekLabel[week]} (${formatWeekRange(date)})` : formatWeekRange(date));
|
|
1390
|
-
return /* @__PURE__ */
|
|
1429
|
+
return /* @__PURE__ */ jsxs19(
|
|
1391
1430
|
"div",
|
|
1392
1431
|
{
|
|
1393
1432
|
ref,
|
|
1394
1433
|
className: cn(
|
|
1395
|
-
"flex items-
|
|
1396
|
-
"w-full h-
|
|
1397
|
-
"bg-white border border-gray02",
|
|
1398
|
-
"text-
|
|
1434
|
+
"flex items-stretch justify-between",
|
|
1435
|
+
"w-full h-12",
|
|
1436
|
+
"bg-white border-b border-gray02",
|
|
1437
|
+
"text-body1-medium text-secondary",
|
|
1399
1438
|
className
|
|
1400
1439
|
),
|
|
1401
1440
|
children: [
|
|
1402
|
-
/* @__PURE__ */
|
|
1403
|
-
/* @__PURE__ */
|
|
1404
|
-
/* @__PURE__ */
|
|
1441
|
+
/* @__PURE__ */ jsx35(ArrowButton, { direction: "left", visible: showPrev, onClick: onPrevWeek }),
|
|
1442
|
+
/* @__PURE__ */ jsx35("span", { className: "flex flex-1 items-center justify-center text-center", children: text }),
|
|
1443
|
+
/* @__PURE__ */ jsx35(ArrowButton, { direction: "right", visible: showNext, onClick: onNextWeek })
|
|
1405
1444
|
]
|
|
1406
1445
|
}
|
|
1407
1446
|
);
|
|
1408
1447
|
}
|
|
1409
1448
|
);
|
|
1410
1449
|
var ArrowButton = ({ direction, visible, onClick }) => {
|
|
1450
|
+
const divider = /* @__PURE__ */ jsx35("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" });
|
|
1411
1451
|
if (!visible) {
|
|
1412
|
-
return /* @__PURE__ */
|
|
1452
|
+
return /* @__PURE__ */ jsxs19("div", { className: "flex items-stretch", children: [
|
|
1453
|
+
direction === "right" && divider,
|
|
1454
|
+
/* @__PURE__ */ jsx35("span", { className: "w-[42px]" }),
|
|
1455
|
+
direction === "left" && divider
|
|
1456
|
+
] });
|
|
1413
1457
|
}
|
|
1414
|
-
return /* @__PURE__ */
|
|
1415
|
-
"
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1458
|
+
return /* @__PURE__ */ jsxs19("div", { className: "flex items-stretch", children: [
|
|
1459
|
+
direction === "right" && divider,
|
|
1460
|
+
/* @__PURE__ */ jsx35(
|
|
1461
|
+
"button",
|
|
1462
|
+
{
|
|
1463
|
+
type: "button",
|
|
1464
|
+
onClick,
|
|
1465
|
+
className: cn(
|
|
1466
|
+
"flex w-[42px] items-center justify-center",
|
|
1467
|
+
"text-gray06 cursor-pointer transition-colors",
|
|
1468
|
+
"hover:bg-gray00 active:bg-gray01"
|
|
1469
|
+
),
|
|
1470
|
+
children: /* @__PURE__ */ jsx35(
|
|
1471
|
+
IconChevronDownXS,
|
|
1472
|
+
{
|
|
1473
|
+
className: direction === "left" ? "rotate-90" : "-rotate-90",
|
|
1474
|
+
stroke: "currentColor"
|
|
1475
|
+
}
|
|
1476
|
+
)
|
|
1477
|
+
}
|
|
1478
|
+
),
|
|
1479
|
+
direction === "left" && divider
|
|
1480
|
+
] });
|
|
1433
1481
|
};
|
|
1434
1482
|
|
|
1435
1483
|
// src/components/Timetable/Timetable.tsx
|
|
1436
|
-
import { jsx as
|
|
1484
|
+
import { jsx as jsx36, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1437
1485
|
var printColorHoverClass = {
|
|
1438
1486
|
Plotter: "hover:bg-print-plotter",
|
|
1439
1487
|
Printer: "hover:bg-print-printer",
|
|
@@ -1456,8 +1504,8 @@ var Timetable = forwardRef3(function Timetable2({
|
|
|
1456
1504
|
canNextWeek,
|
|
1457
1505
|
className
|
|
1458
1506
|
}, ref) {
|
|
1459
|
-
return /* @__PURE__ */
|
|
1460
|
-
!hideWeekNavigation && /* @__PURE__ */
|
|
1507
|
+
return /* @__PURE__ */ jsxs20("div", { ref, className: cn(fluid && "w-full", className), children: [
|
|
1508
|
+
!hideWeekNavigation && /* @__PURE__ */ jsx36(
|
|
1461
1509
|
WeekNavigation,
|
|
1462
1510
|
{
|
|
1463
1511
|
date: weekStart,
|
|
@@ -1468,7 +1516,7 @@ var Timetable = forwardRef3(function Timetable2({
|
|
|
1468
1516
|
onNextWeek
|
|
1469
1517
|
}
|
|
1470
1518
|
),
|
|
1471
|
-
/* @__PURE__ */
|
|
1519
|
+
/* @__PURE__ */ jsx36("div", { className: cn("flex", fluid && "w-full"), children: days.map((day) => /* @__PURE__ */ jsx36(
|
|
1472
1520
|
DailyTimetable,
|
|
1473
1521
|
{
|
|
1474
1522
|
date: day.date,
|
|
@@ -1481,9 +1529,9 @@ var Timetable = forwardRef3(function Timetable2({
|
|
|
1481
1529
|
] });
|
|
1482
1530
|
});
|
|
1483
1531
|
var DailyTimetable = ({ date, slots, fluid, onSelectTime, className }) => {
|
|
1484
|
-
return /* @__PURE__ */
|
|
1485
|
-
/* @__PURE__ */
|
|
1486
|
-
slots.map((slot) => /* @__PURE__ */
|
|
1532
|
+
return /* @__PURE__ */ jsxs20("div", { className: cn("flex flex-col", fluid ? "flex-1 min-w-0" : "w-18", className), children: [
|
|
1533
|
+
/* @__PURE__ */ jsx36("div", { className: "h-12 flex items-center justify-center border-b border-gray02 text-body1-regular text-secondary", children: formatDayLabel(date) }),
|
|
1534
|
+
slots.map((slot) => /* @__PURE__ */ jsx36(
|
|
1487
1535
|
TimeItem,
|
|
1488
1536
|
{
|
|
1489
1537
|
state: slot.state,
|
|
@@ -1509,17 +1557,17 @@ var TimeItem = ({
|
|
|
1509
1557
|
}) => {
|
|
1510
1558
|
const clickable = (state === "default" || state === "selected") && !!onClick;
|
|
1511
1559
|
const style = state === "default" && color ? { "--tt-hover": color } : void 0;
|
|
1512
|
-
return /* @__PURE__ */
|
|
1560
|
+
return /* @__PURE__ */ jsx36(
|
|
1513
1561
|
"div",
|
|
1514
1562
|
{
|
|
1515
1563
|
onClick: clickable ? onClick : void 0,
|
|
1516
1564
|
style,
|
|
1517
1565
|
className: cn(
|
|
1518
|
-
"h-18 flex items-center justify-center",
|
|
1566
|
+
"h-18 flex items-center justify-center border-b border-gray02",
|
|
1519
1567
|
fluid ? "w-full" : "w-18",
|
|
1520
1568
|
"text-body1-medium text-center bg-white text-primary",
|
|
1521
1569
|
state === "none" && "bg-gray00 text-transparent",
|
|
1522
|
-
state === "selected" && "bg-black text-
|
|
1570
|
+
state === "selected" && "bg-black text-white hover:cursor-pointer",
|
|
1523
1571
|
state === "disabled" && "bg-gray00 text-gray03",
|
|
1524
1572
|
state === "default" && [
|
|
1525
1573
|
"hover:cursor-pointer",
|
|
@@ -1534,11 +1582,12 @@ var TimeItem = ({
|
|
|
1534
1582
|
|
|
1535
1583
|
// src/components/TNB/TNB.tsx
|
|
1536
1584
|
import {
|
|
1585
|
+
Fragment as Fragment2,
|
|
1537
1586
|
forwardRef as forwardRef4,
|
|
1538
1587
|
useCallback as useCallback2,
|
|
1539
1588
|
useState as useState6
|
|
1540
1589
|
} from "react";
|
|
1541
|
-
import { jsx as
|
|
1590
|
+
import { jsx as jsx37, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
1542
1591
|
function useControllableState2(controlled, defaultValue) {
|
|
1543
1592
|
const isControlled = controlled !== void 0;
|
|
1544
1593
|
const [uncontrolled, setUncontrolled] = useState6(defaultValue);
|
|
@@ -1590,8 +1639,8 @@ var TNB = forwardRef4(function TNB2({
|
|
|
1590
1639
|
setLowerValue(label);
|
|
1591
1640
|
onSelectedLowerChange?.(label);
|
|
1592
1641
|
};
|
|
1593
|
-
return /* @__PURE__ */
|
|
1594
|
-
/* @__PURE__ */
|
|
1642
|
+
return /* @__PURE__ */ jsxs21("nav", { ref, "aria-label": ariaLabel, className: cn("w-full bg-white", className), children: [
|
|
1643
|
+
/* @__PURE__ */ jsx37(
|
|
1595
1644
|
UpperPart,
|
|
1596
1645
|
{
|
|
1597
1646
|
logo,
|
|
@@ -1602,7 +1651,7 @@ var TNB = forwardRef4(function TNB2({
|
|
|
1602
1651
|
linkComponent
|
|
1603
1652
|
}
|
|
1604
1653
|
),
|
|
1605
|
-
/* @__PURE__ */
|
|
1654
|
+
/* @__PURE__ */ jsx37(
|
|
1606
1655
|
LowerPart,
|
|
1607
1656
|
{
|
|
1608
1657
|
lowerPartItemList: currentLowerItemList,
|
|
@@ -1617,7 +1666,7 @@ var NavClickable = forwardRef4(function NavClickable2({ href, onClick, linkCompo
|
|
|
1617
1666
|
const ariaCurrent = current ? "page" : void 0;
|
|
1618
1667
|
if (href && !disabled) {
|
|
1619
1668
|
if (Link) {
|
|
1620
|
-
return /* @__PURE__ */
|
|
1669
|
+
return /* @__PURE__ */ jsx37(
|
|
1621
1670
|
Link,
|
|
1622
1671
|
{
|
|
1623
1672
|
href,
|
|
@@ -1629,7 +1678,7 @@ var NavClickable = forwardRef4(function NavClickable2({ href, onClick, linkCompo
|
|
|
1629
1678
|
}
|
|
1630
1679
|
);
|
|
1631
1680
|
}
|
|
1632
|
-
return /* @__PURE__ */
|
|
1681
|
+
return /* @__PURE__ */ jsx37(
|
|
1633
1682
|
"a",
|
|
1634
1683
|
{
|
|
1635
1684
|
href,
|
|
@@ -1641,7 +1690,7 @@ var NavClickable = forwardRef4(function NavClickable2({ href, onClick, linkCompo
|
|
|
1641
1690
|
}
|
|
1642
1691
|
);
|
|
1643
1692
|
}
|
|
1644
|
-
return /* @__PURE__ */
|
|
1693
|
+
return /* @__PURE__ */ jsx37(
|
|
1645
1694
|
"button",
|
|
1646
1695
|
{
|
|
1647
1696
|
type: "button",
|
|
@@ -1663,33 +1712,50 @@ var UpperPart = ({
|
|
|
1663
1712
|
linkComponent,
|
|
1664
1713
|
className
|
|
1665
1714
|
}) => {
|
|
1666
|
-
return /* @__PURE__ */
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
linkComponent,
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1715
|
+
return /* @__PURE__ */ jsxs21(
|
|
1716
|
+
"div",
|
|
1717
|
+
{
|
|
1718
|
+
className: cn(
|
|
1719
|
+
"w-full min-h-13 flex items-stretch justify-between border-b border-gray02",
|
|
1720
|
+
className
|
|
1721
|
+
),
|
|
1722
|
+
children: [
|
|
1723
|
+
/* @__PURE__ */ jsxs21("div", { className: "flex items-stretch", children: [
|
|
1724
|
+
/* @__PURE__ */ jsx37("div", { className: "flex w-14 shrink-0 items-center justify-center px-3", children: /* @__PURE__ */ jsx37(NavIconButton, { ...logo, linkComponent }) }),
|
|
1725
|
+
/* @__PURE__ */ jsxs21("div", { className: "flex items-stretch", children: [
|
|
1726
|
+
/* @__PURE__ */ jsx37("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" }),
|
|
1727
|
+
upperPartItemList.map((item) => /* @__PURE__ */ jsxs21(Fragment2, { children: [
|
|
1728
|
+
/* @__PURE__ */ jsx37(
|
|
1729
|
+
UpperPartTab,
|
|
1730
|
+
{
|
|
1731
|
+
label: item.label,
|
|
1732
|
+
href: item.href,
|
|
1733
|
+
selected: item.label === selected,
|
|
1734
|
+
linkComponent,
|
|
1735
|
+
onClick: () => {
|
|
1736
|
+
item.onClick?.();
|
|
1737
|
+
onSelectItem(item.label);
|
|
1738
|
+
}
|
|
1739
|
+
}
|
|
1740
|
+
),
|
|
1741
|
+
/* @__PURE__ */ jsx37("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" })
|
|
1742
|
+
] }, item.id ?? item.label))
|
|
1743
|
+
] })
|
|
1744
|
+
] }),
|
|
1745
|
+
/* @__PURE__ */ jsxs21("div", { className: "flex items-stretch", children: [
|
|
1746
|
+
/* @__PURE__ */ jsx37("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" }),
|
|
1747
|
+
upperPartIconList.map((icon, index) => /* @__PURE__ */ jsx37(
|
|
1748
|
+
NavIconButton,
|
|
1749
|
+
{
|
|
1750
|
+
...icon,
|
|
1751
|
+
linkComponent
|
|
1752
|
+
},
|
|
1753
|
+
icon.id ?? icon.src ?? icon.label ?? index
|
|
1754
|
+
))
|
|
1755
|
+
] })
|
|
1756
|
+
]
|
|
1757
|
+
}
|
|
1758
|
+
);
|
|
1693
1759
|
};
|
|
1694
1760
|
var UpperPartTab = ({
|
|
1695
1761
|
label,
|
|
@@ -1699,7 +1765,7 @@ var UpperPartTab = ({
|
|
|
1699
1765
|
linkComponent,
|
|
1700
1766
|
className
|
|
1701
1767
|
}) => {
|
|
1702
|
-
return /* @__PURE__ */
|
|
1768
|
+
return /* @__PURE__ */ jsxs21(
|
|
1703
1769
|
NavClickable,
|
|
1704
1770
|
{
|
|
1705
1771
|
href,
|
|
@@ -1707,11 +1773,14 @@ var UpperPartTab = ({
|
|
|
1707
1773
|
linkComponent,
|
|
1708
1774
|
current: selected,
|
|
1709
1775
|
className: cn(
|
|
1710
|
-
"inline-flex
|
|
1711
|
-
|
|
1776
|
+
"inline-flex min-h-13 flex-col items-center gap-2 pt-2.5 cursor-pointer no-underline",
|
|
1777
|
+
"transition-colors hover:bg-gray00 active:bg-gray01",
|
|
1712
1778
|
className
|
|
1713
1779
|
),
|
|
1714
|
-
children:
|
|
1780
|
+
children: [
|
|
1781
|
+
/* @__PURE__ */ jsx37("span", { className: cn("px-5 text-head1-medium", selected ? "text-strong" : "text-quaternary"), children: label }),
|
|
1782
|
+
/* @__PURE__ */ jsx37("span", { className: cn("h-0.5 w-full", selected ? "bg-black" : "bg-transparent") })
|
|
1783
|
+
]
|
|
1715
1784
|
}
|
|
1716
1785
|
);
|
|
1717
1786
|
};
|
|
@@ -1719,7 +1788,7 @@ var NavIconButton = forwardRef4(
|
|
|
1719
1788
|
function NavIconButton2({ src, icon, alt, label, href, onClick, selected, badge, className, linkComponent }, forwardedRef) {
|
|
1720
1789
|
const interactive = Boolean(onClick || href);
|
|
1721
1790
|
const showBadge = badge !== void 0 && badge !== null && badge !== false;
|
|
1722
|
-
return /* @__PURE__ */
|
|
1791
|
+
return /* @__PURE__ */ jsxs21(
|
|
1723
1792
|
NavClickable,
|
|
1724
1793
|
{
|
|
1725
1794
|
ref: forwardedRef,
|
|
@@ -1729,15 +1798,15 @@ var NavIconButton = forwardRef4(
|
|
|
1729
1798
|
current: selected,
|
|
1730
1799
|
disabled: !interactive,
|
|
1731
1800
|
className: cn(
|
|
1732
|
-
"relative inline-flex h-
|
|
1801
|
+
"relative inline-flex h-13 min-w-13 items-center justify-center gap-1.5 px-3 transition-colors",
|
|
1733
1802
|
interactive && "cursor-pointer",
|
|
1734
1803
|
selected ? "bg-black text-white" : "bg-transparent hover:bg-gray00 active:bg-gray01",
|
|
1735
1804
|
className
|
|
1736
1805
|
),
|
|
1737
1806
|
children: [
|
|
1738
|
-
icon ? /* @__PURE__ */
|
|
1739
|
-
label ? /* @__PURE__ */
|
|
1740
|
-
showBadge ? /* @__PURE__ */
|
|
1807
|
+
icon ? /* @__PURE__ */ jsx37("span", { className: "inline-flex h-6 w-6 items-center justify-center", children: icon }) : src ? /* @__PURE__ */ jsx37("img", { src, alt: alt ?? label ?? "", className: "h-6 w-6" }) : null,
|
|
1808
|
+
label ? /* @__PURE__ */ jsx37("span", { className: cn("text-body2-regular", selected ? "text-white" : "text-secondary"), children: label }) : null,
|
|
1809
|
+
showBadge ? /* @__PURE__ */ jsx37(
|
|
1741
1810
|
"span",
|
|
1742
1811
|
{
|
|
1743
1812
|
"aria-hidden": badge === true,
|
|
@@ -1763,24 +1832,29 @@ var LowerPart = ({
|
|
|
1763
1832
|
if (lowerPartItemList.length === 0) {
|
|
1764
1833
|
return null;
|
|
1765
1834
|
}
|
|
1766
|
-
return /* @__PURE__ */
|
|
1835
|
+
return /* @__PURE__ */ jsxs21(
|
|
1767
1836
|
"div",
|
|
1768
1837
|
{
|
|
1769
|
-
className: cn("w-full h-
|
|
1770
|
-
children:
|
|
1771
|
-
|
|
1772
|
-
{
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1838
|
+
className: cn("w-full h-[42px] pl-14 flex items-stretch border-b border-gray02", className),
|
|
1839
|
+
children: [
|
|
1840
|
+
/* @__PURE__ */ jsx37("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" }),
|
|
1841
|
+
lowerPartItemList.map((item) => /* @__PURE__ */ jsxs21(Fragment2, { children: [
|
|
1842
|
+
/* @__PURE__ */ jsx37(
|
|
1843
|
+
LowerPartItemButton,
|
|
1844
|
+
{
|
|
1845
|
+
label: item.label,
|
|
1846
|
+
href: item.href,
|
|
1847
|
+
selected: item.label === selected,
|
|
1848
|
+
linkComponent,
|
|
1849
|
+
onClick: () => {
|
|
1850
|
+
item.onClick?.();
|
|
1851
|
+
onSelectItem(item.label);
|
|
1852
|
+
}
|
|
1853
|
+
}
|
|
1854
|
+
),
|
|
1855
|
+
/* @__PURE__ */ jsx37("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" })
|
|
1856
|
+
] }, item.id ?? item.label))
|
|
1857
|
+
]
|
|
1784
1858
|
}
|
|
1785
1859
|
);
|
|
1786
1860
|
};
|
|
@@ -1792,7 +1866,7 @@ var LowerPartItemButton = ({
|
|
|
1792
1866
|
linkComponent,
|
|
1793
1867
|
className
|
|
1794
1868
|
}) => {
|
|
1795
|
-
return /* @__PURE__ */
|
|
1869
|
+
return /* @__PURE__ */ jsx37(
|
|
1796
1870
|
NavClickable,
|
|
1797
1871
|
{
|
|
1798
1872
|
href,
|
|
@@ -1800,9 +1874,9 @@ var LowerPartItemButton = ({
|
|
|
1800
1874
|
linkComponent,
|
|
1801
1875
|
current: selected,
|
|
1802
1876
|
className: cn(
|
|
1803
|
-
"inline-flex px-
|
|
1804
|
-
"hover:bg-gray00 active:bg-gray01",
|
|
1805
|
-
selected ? "text-strong
|
|
1877
|
+
"inline-flex h-full items-center justify-center px-5 text-head3-medium cursor-pointer no-underline",
|
|
1878
|
+
"transition-colors hover:bg-gray00 active:bg-gray01",
|
|
1879
|
+
selected ? "text-strong" : "text-quaternary",
|
|
1806
1880
|
className
|
|
1807
1881
|
),
|
|
1808
1882
|
children: label
|
|
@@ -1812,7 +1886,7 @@ var LowerPartItemButton = ({
|
|
|
1812
1886
|
|
|
1813
1887
|
// src/components/Toast/Toast.tsx
|
|
1814
1888
|
import { forwardRef as forwardRef5, useEffect as useEffect3, useState as useState7 } from "react";
|
|
1815
|
-
import { jsx as
|
|
1889
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
1816
1890
|
var EXIT_MS = 300;
|
|
1817
1891
|
var Toast = forwardRef5(function Toast2({ message, open, duration = 3e3, onClose, position = "none", className }, ref) {
|
|
1818
1892
|
const controlled = open !== void 0;
|
|
@@ -1835,7 +1909,7 @@ var Toast = forwardRef5(function Toast2({ message, open, duration = 3e3, onClose
|
|
|
1835
1909
|
return () => clearTimeout(timer);
|
|
1836
1910
|
}, [controlled, open, duration, onClose]);
|
|
1837
1911
|
if (!mounted) return null;
|
|
1838
|
-
const banner = /* @__PURE__ */
|
|
1912
|
+
const banner = /* @__PURE__ */ jsx38(
|
|
1839
1913
|
"div",
|
|
1840
1914
|
{
|
|
1841
1915
|
ref,
|
|
@@ -1843,7 +1917,7 @@ var Toast = forwardRef5(function Toast2({ message, open, duration = 3e3, onClose
|
|
|
1843
1917
|
"aria-live": "polite",
|
|
1844
1918
|
className: cn(
|
|
1845
1919
|
"w-full h-fit py-2.5 bg-gray06",
|
|
1846
|
-
"font-pretendard text-white text-center font-semibold text-[17px]",
|
|
1920
|
+
"font-pretendard text-white text-center font-semibold text-[17px] leading-[1.6]",
|
|
1847
1921
|
"shadow-[0_2px_15px_rgba(0,0,0,0.18)]",
|
|
1848
1922
|
controlled && "transition-opacity duration-300",
|
|
1849
1923
|
controlled && (visible ? "opacity-100" : "opacity-0"),
|
|
@@ -1853,7 +1927,7 @@ var Toast = forwardRef5(function Toast2({ message, open, duration = 3e3, onClose
|
|
|
1853
1927
|
}
|
|
1854
1928
|
);
|
|
1855
1929
|
if (position === "none") return banner;
|
|
1856
|
-
return /* @__PURE__ */
|
|
1930
|
+
return /* @__PURE__ */ jsx38(
|
|
1857
1931
|
"div",
|
|
1858
1932
|
{
|
|
1859
1933
|
className: cn(
|
|
@@ -1872,6 +1946,8 @@ export {
|
|
|
1872
1946
|
CategorySegmentedControl,
|
|
1873
1947
|
Column,
|
|
1874
1948
|
ColumnContentContainer,
|
|
1949
|
+
ColumnDescription,
|
|
1950
|
+
ColumnDescriptionList,
|
|
1875
1951
|
ColumnLabel,
|
|
1876
1952
|
ColumnSubTitle,
|
|
1877
1953
|
ColumnText,
|
|
@@ -1888,6 +1964,7 @@ export {
|
|
|
1888
1964
|
FormTextArea,
|
|
1889
1965
|
IconCheck,
|
|
1890
1966
|
IconChevronDownXS,
|
|
1967
|
+
IconCompass,
|
|
1891
1968
|
IconInfo,
|
|
1892
1969
|
List,
|
|
1893
1970
|
Modal,
|