@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.js CHANGED
@@ -28,6 +28,8 @@ __export(index_exports, {
28
28
  CategorySegmentedControl: () => CategorySegmentedControl,
29
29
  Column: () => Column,
30
30
  ColumnContentContainer: () => ColumnContentContainer,
31
+ ColumnDescription: () => ColumnDescription,
32
+ ColumnDescriptionList: () => ColumnDescriptionList,
31
33
  ColumnLabel: () => ColumnLabel,
32
34
  ColumnSubTitle: () => ColumnSubTitle,
33
35
  ColumnText: () => ColumnText,
@@ -44,6 +46,7 @@ __export(index_exports, {
44
46
  FormTextArea: () => FormTextArea,
45
47
  IconCheck: () => IconCheck,
46
48
  IconChevronDownXS: () => IconChevronDownXS,
49
+ IconCompass: () => IconCompass,
47
50
  IconInfo: () => IconInfo,
48
51
  List: () => List,
49
52
  Modal: () => Modal,
@@ -219,6 +222,28 @@ var IconGoBack = ({ className, stroke }) => {
219
222
  }
220
223
  );
221
224
  };
225
+ var IconCompass = ({ className, fill }) => {
226
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
227
+ "svg",
228
+ {
229
+ className,
230
+ width: "16",
231
+ height: "16",
232
+ viewBox: "0 0 16 16",
233
+ fill: "none",
234
+ xmlns: "http://www.w3.org/2000/svg",
235
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
236
+ "path",
237
+ {
238
+ fillRule: "evenodd",
239
+ clipRule: "evenodd",
240
+ 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",
241
+ fill: fill || "#121212"
242
+ }
243
+ )
244
+ }
245
+ );
246
+ };
222
247
 
223
248
  // src/components/BackButton/BackButton.tsx
224
249
  var import_jsx_runtime2 = require("react/jsx-runtime");
@@ -307,8 +332,8 @@ var MultiColumn = Object.assign(MultiColumnMain, {
307
332
  // src/components/Column/Column.tsx
308
333
  var import_jsx_runtime5 = require("react/jsx-runtime");
309
334
  var Column = ({ className, children, header }) => {
310
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: cn("flex flex-col gap-5", "h-full w-full px-5 pt-3 pb-8", className), children: [
311
- header && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("h1", { className: cn("text-head3-medium text-primary font-bold"), children: header }),
335
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: cn("flex flex-col gap-5", "h-full w-full px-5 py-3", className), children: [
336
+ header && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("h1", { className: cn("text-body1-medium text-primary"), children: header }),
312
337
  children
313
338
  ] });
314
339
  };
@@ -345,70 +370,87 @@ var ColumnSubTitle = ({
345
370
  as: Tag2 = "h2"
346
371
  }) => {
347
372
  return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(Tag2, { className: cn("flex items-center justify-between gap-1.5", "w-full", className), children: [
348
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: cn("text-head3-medium text-strong"), children }),
373
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: cn("text-body1-medium text-primary"), children }),
349
374
  action && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "flex shrink-0 items-center", children: action })
350
375
  ] });
351
376
  };
352
377
 
353
- // src/components/Form/BasicFormField.tsx
378
+ // src/components/Column/ColumnDescription.tsx
354
379
  var import_jsx_runtime10 = require("react/jsx-runtime");
380
+ var ColumnDescription = ({
381
+ className,
382
+ children,
383
+ bullet = true
384
+ }) => {
385
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: cn("flex items-start gap-3", className), children: [
386
+ bullet && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "flex shrink-0 items-center py-1", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(IconCompass, { className: "size-4" }) }),
387
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "min-w-0 flex-1 whitespace-pre-line text-body3-book text-primary", children })
388
+ ] });
389
+ };
390
+ var ColumnDescriptionList = ({ className, children }) => {
391
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: cn("flex flex-col gap-4", className), children });
392
+ };
393
+
394
+ // src/components/Form/BasicFormField.tsx
395
+ var import_jsx_runtime11 = require("react/jsx-runtime");
355
396
  var BasicFormField = ({
356
397
  children,
357
398
  isDanger,
358
399
  dangerText,
359
400
  className
360
401
  }) => {
361
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: cn("flex flex-col gap-1.5", className), children: [
402
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: cn("flex flex-col gap-1.5", className), children: [
362
403
  children,
363
- isDanger && dangerText && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "text-caption-book text-danger", children: dangerText })
404
+ isDanger && dangerText && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "text-caption-book text-danger", children: dangerText })
364
405
  ] });
365
406
  };
366
407
  var getInputStyles = (isDanger, additionalClass) => {
367
408
  return cn(
368
- "w-full h-10 px-3",
409
+ // 디자인 스펙: 높이 41px, 좌우 12px / 상하 10px 패딩
410
+ "w-full h-[41px] px-3 py-2.5",
369
411
  "box-border border border-gray02 focus:outline-none focus:border-black",
370
- "bg-white hover:bg-gray00 transition-colors focus:hover:bg-white",
412
+ "bg-white transition-colors",
371
413
  ColumnTextStyle,
372
414
  "text-primary placeholder:text-quaternary",
373
415
  isDanger && "border-danger",
374
- // 에러 시 빨간 테두리
416
+ // 경고 시 빨간 테두리 (#E42939)
375
417
  additionalClass
376
418
  // 각 인풋별 추가 스타일 (예: textarea의 h-30)
377
419
  );
378
420
  };
379
421
 
380
422
  // src/components/Form/FormText.tsx
381
- var import_jsx_runtime11 = require("react/jsx-runtime");
423
+ var import_jsx_runtime12 = require("react/jsx-runtime");
382
424
  var FormText = ({ className, isDanger, dangerText, ...props }) => {
383
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("input", { type: "text", className: getInputStyles(isDanger, className), ...props }) });
425
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("input", { type: "text", className: getInputStyles(isDanger, className), ...props }) });
384
426
  };
385
427
 
386
428
  // src/components/Form/FormTextArea.tsx
387
- var import_jsx_runtime12 = require("react/jsx-runtime");
429
+ var import_jsx_runtime13 = require("react/jsx-runtime");
388
430
  var FormTextArea = ({ className, isDanger, dangerText, ...props }) => {
389
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
431
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
390
432
  "textarea",
391
433
  {
392
- className: getInputStyles(isDanger, "resize-none h-30 py-2.5 " + (className || "")),
434
+ className: getInputStyles(isDanger, "resize-none h-30 px-4 py-2.5 " + (className || "")),
393
435
  ...props
394
436
  }
395
437
  ) });
396
438
  };
397
439
 
398
440
  // src/components/Form/FormNumber.tsx
399
- var import_jsx_runtime13 = require("react/jsx-runtime");
441
+ var import_jsx_runtime14 = require("react/jsx-runtime");
400
442
  var FormNumber = ({ className, isDanger, dangerText, ...props }) => {
401
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("input", { type: "number", className: getInputStyles(isDanger, className), ...props }) });
443
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("input", { type: "number", className: getInputStyles(isDanger, className), ...props }) });
402
444
  };
403
445
 
404
446
  // src/components/Form/FormPassword.tsx
405
- var import_jsx_runtime14 = require("react/jsx-runtime");
447
+ var import_jsx_runtime15 = require("react/jsx-runtime");
406
448
  var FormPassword = ({ className, isDanger, dangerText, ...props }) => {
407
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("input", { type: "password", className: getInputStyles(isDanger, className), ...props }) });
449
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("input", { type: "password", className: getInputStyles(isDanger, className), ...props }) });
408
450
  };
409
451
 
410
452
  // src/components/Form/FormTel.tsx
411
- var import_jsx_runtime15 = require("react/jsx-runtime");
453
+ var import_jsx_runtime16 = require("react/jsx-runtime");
412
454
  var FormTel = ({ className, isDanger, dangerText, onChange, ...props }) => {
413
455
  const handlePhoneChange = (e) => {
414
456
  const rawValue = e.target.value.replace(/[^0-9]/g, "");
@@ -420,7 +462,7 @@ var FormTel = ({ className, isDanger, dangerText, onChange, ...props }) => {
420
462
  e.target.value = formattedValue;
421
463
  if (onChange) onChange(e);
422
464
  };
423
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
465
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
424
466
  "input",
425
467
  {
426
468
  type: "tel",
@@ -434,7 +476,7 @@ var FormTel = ({ className, isDanger, dangerText, onChange, ...props }) => {
434
476
 
435
477
  // src/components/Form/FormColor.tsx
436
478
  var import_react = require("react");
437
- var import_jsx_runtime16 = require("react/jsx-runtime");
479
+ var import_jsx_runtime17 = require("react/jsx-runtime");
438
480
  var FormColor = ({
439
481
  className,
440
482
  isDanger,
@@ -452,7 +494,7 @@ var FormColor = ({
452
494
  setInternalColor(e.target.value);
453
495
  onChange?.(e);
454
496
  };
455
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
497
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
456
498
  "label",
457
499
  {
458
500
  className: getInputStyles(
@@ -461,7 +503,7 @@ var FormColor = ({
461
503
  "flex items-center gap-2 relative focus-within:border-black focus-within:hover:bg-white" + (className || "")
462
504
  ),
463
505
  children: [
464
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "w-6 h-6 shrink-0 overflow-hidden", style: { backgroundColor: color }, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
506
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "w-6 h-6 shrink-0 overflow-hidden", style: { backgroundColor: color }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
465
507
  "input",
466
508
  {
467
509
  type: "color",
@@ -471,7 +513,7 @@ var FormColor = ({
471
513
  ...props
472
514
  }
473
515
  ) }),
474
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "text-primary text-body3-regular uppercase flex-1 select-none", children: color })
516
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "text-primary text-body3-regular uppercase flex-1 select-none", children: color })
475
517
  ]
476
518
  }
477
519
  ) });
@@ -479,12 +521,11 @@ var FormColor = ({
479
521
 
480
522
  // src/components/Form/FormFile.tsx
481
523
  var import_react2 = require("react");
482
- var import_jsx_runtime17 = require("react/jsx-runtime");
524
+ var import_jsx_runtime18 = require("react/jsx-runtime");
483
525
  var FormFile = ({
484
526
  className,
485
527
  isDanger,
486
528
  dangerText,
487
- placeholder = "\uD30C\uC77C\uC744 \uC120\uD0DD\uD574\uC8FC\uC138\uC694",
488
529
  fileUrl,
489
530
  filename,
490
531
  onChange,
@@ -541,32 +582,31 @@ var FormFile = ({
541
582
  }
542
583
  };
543
584
  const displayFileName = selectedFile?.name || (fileUrl ? fileUrl.split("/").pop() : null);
544
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
585
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
545
586
  "div",
546
587
  {
547
588
  className: getInputStyles(
548
589
  isDanger,
549
- "active:bg-gray00 flex items-center gap-2 justify-between " + (className || "")
590
+ // 디자인 스펙: 파일 전 상태는 우측 정렬("파일 첨부"만), 파일 후 상태는 좌우 배치
591
+ cn(
592
+ "flex items-center gap-2",
593
+ displayFileName ? "justify-between" : "justify-end",
594
+ className
595
+ )
550
596
  ),
551
597
  children: [
552
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
553
- "div",
598
+ displayFileName && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
599
+ "span",
554
600
  {
555
- className: `truncate flex-1 max-w-50 w-full ${displayFileName ? "text-primary" : "text-quaternary"}`,
556
- children: displayFileName ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
557
- "span",
558
- {
559
- onClick: handleDownload,
560
- className: "w-full underline text-primary cursor-pointer hover:text-black transition-colors",
561
- title: `${displayFileName} \uB2E4\uC6B4\uB85C\uB4DC`,
562
- children: displayFileName
563
- }
564
- ) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "w-full", children: placeholder })
601
+ onClick: handleDownload,
602
+ className: "text-body3-book text-primary truncate max-w-[200px] cursor-pointer",
603
+ title: `${displayFileName} \uB2E4\uC6B4\uB85C\uB4DC`,
604
+ children: displayFileName
565
605
  }
566
606
  ),
567
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("label", { className: "px-1 -mx-1 cursor-pointer", children: [
568
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "text-primary text-caption-regular underline", children: "\uD30C\uC77C \uCCA8\uBD80" }),
569
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("input", { type: "file", className: "hidden", onChange: handleFileChange, ...props })
607
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("label", { className: "shrink-0 px-1 -mx-1 cursor-pointer", children: [
608
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "text-primary text-caption-regular underline", children: displayFileName ? "\uB2E4\uC2DC \uCCA8\uBD80" : "\uD30C\uC77C \uCCA8\uBD80" }),
609
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("input", { type: "file", className: "hidden", onChange: handleFileChange, ...props })
570
610
  ] })
571
611
  ]
572
612
  }
@@ -574,7 +614,7 @@ var FormFile = ({
574
614
  };
575
615
 
576
616
  // src/components/Form/FormCheckBox.tsx
577
- var import_jsx_runtime18 = require("react/jsx-runtime");
617
+ var import_jsx_runtime19 = require("react/jsx-runtime");
578
618
  var FormCheckBox = ({
579
619
  isChecked,
580
620
  setIsChecked,
@@ -583,19 +623,18 @@ var FormCheckBox = ({
583
623
  textStyle,
584
624
  ...props
585
625
  }) => {
586
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
626
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
587
627
  "label",
588
628
  {
589
629
  className: cn(
590
- "w-fit h-fit pr-1",
630
+ "group w-fit h-fit",
591
631
  "flex items-center gap-1",
592
- "hover:bg-gray00 active:bg-gray01 transition-colors",
593
632
  "cursor-pointer select-none",
594
633
  // 💡 1. 텍스트 드래그 방지 추가
595
634
  className
596
635
  ),
597
636
  children: [
598
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
637
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
599
638
  "input",
600
639
  {
601
640
  type: "checkbox",
@@ -605,20 +644,29 @@ var FormCheckBox = ({
605
644
  ...props
606
645
  }
607
646
  ),
608
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "flex items-center justify-center w-5 h-5 shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
647
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
609
648
  "div",
610
649
  {
611
650
  className: cn(
612
- "w-[15px] h-[15px]",
613
- "box-border border",
614
- "flex items-center justify-center transition-colors duration-200",
615
- // 💡 3. 키보드 Tab 이동 시 접근성 향상 (포커스 링 표시)
616
- "peer-focus-visible:ring-2 peer-focus-visible:ring-black peer-focus-visible:ring-offset-1"
651
+ "flex items-center justify-center w-5 h-5 shrink-0 rounded transition-colors",
652
+ "group-hover:bg-gray00 group-active:bg-gray01"
617
653
  ),
618
- children: isChecked && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(IconCheck, {})
654
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
655
+ "div",
656
+ {
657
+ className: cn(
658
+ "w-[15px] h-[15px]",
659
+ "box-border border border-black",
660
+ "flex items-center justify-center transition-colors duration-200",
661
+ // 💡 3. 키보드 Tab 이동 시 접근성 향상 (포커스 링 표시)
662
+ "peer-focus-visible:ring-2 peer-focus-visible:ring-black peer-focus-visible:ring-offset-1"
663
+ ),
664
+ children: isChecked && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(IconCheck, {})
665
+ }
666
+ )
619
667
  }
620
- ) }),
621
- children && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: cn(ColumnTextStyle, textStyle), children })
668
+ ),
669
+ children && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: cn("text-body3-book text-primary", textStyle), children })
622
670
  ]
623
671
  }
624
672
  );
@@ -628,19 +676,20 @@ var FormCheckBox = ({
628
676
  var import_react3 = require("react");
629
677
 
630
678
  // src/components/Form/SelectBoxOption.tsx
631
- var import_jsx_runtime19 = require("react/jsx-runtime");
679
+ var import_jsx_runtime20 = require("react/jsx-runtime");
632
680
  var SelectBoxOption = ({
633
681
  label,
634
682
  onClick,
635
683
  // selectedLabel,
636
684
  className
637
685
  }) => {
638
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
686
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
639
687
  "li",
640
688
  {
641
689
  onClick,
642
690
  className: cn(
643
- "w-full h-11 px-3 shrink-0",
691
+ "w-full p-3 shrink-0",
692
+ // 디자인 스펙: 12px 패딩
644
693
  "flex items-center justify-start",
645
694
  // "box-border border-b border-gray02",
646
695
  "text-body3-book text-primary",
@@ -656,7 +705,7 @@ var SelectBoxOption = ({
656
705
  };
657
706
 
658
707
  // src/components/Form/FormSelectBox.tsx
659
- var import_jsx_runtime20 = require("react/jsx-runtime");
708
+ var import_jsx_runtime21 = require("react/jsx-runtime");
660
709
  var FormSelectBox = ({
661
710
  options,
662
711
  value,
@@ -679,8 +728,8 @@ var FormSelectBox = ({
679
728
  document.removeEventListener("mousedown", handleClickOutside);
680
729
  };
681
730
  }, []);
682
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { ref: containerRef, className: "relative w-full", children: [
683
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
731
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(BasicFormField, { isDanger, dangerText, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { ref: containerRef, className: "relative w-full", children: [
732
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
684
733
  "div",
685
734
  {
686
735
  tabIndex: 0,
@@ -688,8 +737,8 @@ var FormSelectBox = ({
688
737
  isDanger,
689
738
  cn(
690
739
  "flex items-center justify-between cursor-pointer select-none",
691
- isOpen && "border-black",
692
- // 💡 열려있을 때는 테두리를 검은색으로 고정 (포커스 효과)
740
+ isOpen && "border-gray08",
741
+ // 열려있을 때 테두리 #3A414C 고정 (디자인 스펙)
693
742
  className
694
743
  )
695
744
  ),
@@ -700,8 +749,8 @@ var FormSelectBox = ({
700
749
  setIsOpen((prev) => !prev);
701
750
  },
702
751
  children: [
703
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: value ? "text-primary" : "text-quaternary", children: value || placeholder }),
704
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
752
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: value ? "text-primary" : "text-quaternary", children: value || placeholder }),
753
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
705
754
  IconChevronDownXS,
706
755
  {
707
756
  className: cn("text-gray06 transition-transform", isOpen && "rotate-180"),
@@ -711,17 +760,17 @@ var FormSelectBox = ({
711
760
  ]
712
761
  }
713
762
  ),
714
- isOpen && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
763
+ isOpen && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
715
764
  "ul",
716
765
  {
717
766
  className: cn(
718
767
  "absolute top-full left-0 right-0 z-10",
719
768
  // 💡 Input 바로 아래에 띄움
720
769
  "box-border border border-gray02 bg-white flex flex-col",
721
- "max-h-50 overflow-y-auto shadow-sm"
722
- // 💡 항목이 너무 많으면 스크롤 생성
770
+ "max-h-50 overflow-y-auto"
771
+ // 항목이 너무 많으면 스크롤 생성 (디자인 스펙: 그림자 없음)
723
772
  ),
724
- children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
773
+ children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
725
774
  SelectBoxOption,
726
775
  {
727
776
  label: option,
@@ -738,7 +787,7 @@ var FormSelectBox = ({
738
787
  };
739
788
 
740
789
  // src/components/TextButton/TextButton.tsx
741
- var import_jsx_runtime21 = require("react/jsx-runtime");
790
+ var import_jsx_runtime22 = require("react/jsx-runtime");
742
791
  var TextButton = ({
743
792
  children,
744
793
  icon,
@@ -748,15 +797,15 @@ var TextButton = ({
748
797
  className,
749
798
  ...props
750
799
  }) => {
751
- const content = /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
752
- icon && iconPosition === "left" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "flex shrink-0 items-center", children: icon }),
753
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: cn(underline && "underline underline-offset-2"), children }),
754
- icon && iconPosition === "right" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "flex shrink-0 items-center", children: icon })
800
+ const content = /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
801
+ icon && iconPosition === "left" && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "flex shrink-0 items-center", children: icon }),
802
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: cn(underline && "underline underline-offset-2"), children }),
803
+ icon && iconPosition === "right" && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "flex shrink-0 items-center", children: icon })
755
804
  ] });
756
805
  const classes = cn(
757
806
  "inline-flex w-fit items-center gap-1 px-1 -mx-1",
758
807
  "text-caption-book",
759
- alert ? "text-danger" : "text-tertiary",
808
+ alert ? "text-danger" : "text-secondary",
760
809
  "hover:bg-gray00 active:bg-gray01 transition-colors",
761
810
  alert ? "hover:text-danger" : "hover:text-primary",
762
811
  "cursor-pointer select-none",
@@ -766,15 +815,15 @@ var TextButton = ({
766
815
  );
767
816
  if (props.href !== void 0) {
768
817
  const { href, ...rest } = props;
769
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("a", { href, className: classes, ...rest, children: content });
818
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("a", { href, className: classes, ...rest, children: content });
770
819
  }
771
820
  const buttonProps = props;
772
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("button", { type: "button", className: classes, ...buttonProps, children: content });
821
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("button", { type: "button", className: classes, ...buttonProps, children: content });
773
822
  };
774
823
 
775
824
  // src/components/Dropdown/Dropdown.tsx
776
825
  var import_react4 = require("react");
777
- var import_jsx_runtime22 = require("react/jsx-runtime");
826
+ var import_jsx_runtime23 = require("react/jsx-runtime");
778
827
  var Dropdown = ({ selectedLabel, setSelectedLabel, labels, className }) => {
779
828
  const [isOpen, setIsOpen] = (0, import_react4.useState)(false);
780
829
  const containerRef = (0, import_react4.useRef)(null);
@@ -789,8 +838,8 @@ var Dropdown = ({ selectedLabel, setSelectedLabel, labels, className }) => {
789
838
  document.removeEventListener("mousedown", handleClickOutside);
790
839
  };
791
840
  }, []);
792
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { ref: containerRef, className: "relative", children: [
793
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
841
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { ref: containerRef, className: "relative", children: [
842
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
794
843
  "div",
795
844
  {
796
845
  className: cn(
@@ -803,8 +852,8 @@ var Dropdown = ({ selectedLabel, setSelectedLabel, labels, className }) => {
803
852
  ),
804
853
  onClick: () => setIsOpen((prev) => !prev),
805
854
  children: [
806
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { children: selectedLabel }),
807
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
855
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { children: selectedLabel }),
856
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
808
857
  IconChevronDownXS,
809
858
  {
810
859
  className: cn("text-gray06 transition-transform", isOpen && "rotate-180"),
@@ -814,7 +863,7 @@ var Dropdown = ({ selectedLabel, setSelectedLabel, labels, className }) => {
814
863
  ]
815
864
  }
816
865
  ),
817
- isOpen && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: cn("absolute top-full right-0 z-10", "box-border border border-gray02"), children: labels.map((label) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
866
+ isOpen && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: cn("absolute top-full right-0 z-10", "box-border border border-gray02"), children: labels.map((label) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
818
867
  SelectBoxOption,
819
868
  {
820
869
  label,
@@ -830,7 +879,7 @@ var Dropdown = ({ selectedLabel, setSelectedLabel, labels, className }) => {
830
879
  };
831
880
 
832
881
  // src/components/ListView/List.tsx
833
- var import_jsx_runtime23 = require("react/jsx-runtime");
882
+ var import_jsx_runtime24 = require("react/jsx-runtime");
834
883
  function List({
835
884
  className,
836
885
  label1,
@@ -843,7 +892,7 @@ function List({
843
892
  children,
844
893
  ...props
845
894
  }) {
846
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
895
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
847
896
  "li",
848
897
  {
849
898
  className: cn(
@@ -858,11 +907,11 @@ function List({
858
907
  ...props,
859
908
  onClick,
860
909
  children: [
861
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("section", { className: cn("flex items-center gap-4"), children: [
862
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("label", { className: cn("text-body2-regular"), children: label1 ? label1 : "-" }),
863
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: cn("flex items-center gap-2"), children })
910
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("section", { className: cn("flex items-center gap-4"), children: [
911
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("label", { className: cn("text-body2-regular"), children: label1 ? label1 : "-" }),
912
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: cn("flex items-center gap-2"), children })
864
913
  ] }),
865
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
914
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
866
915
  "label",
867
916
  {
868
917
  className: cn(
@@ -874,21 +923,21 @@ function List({
874
923
  children: label2 ? label2 : "-"
875
924
  }
876
925
  ),
877
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("label", { className: cn("text-body3-regular text-right"), children: label3 ? label3 : "-" })
926
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("label", { className: cn("text-body3-regular text-right"), children: label3 ? label3 : "-" })
878
927
  ]
879
928
  }
880
929
  );
881
930
  }
882
931
 
883
932
  // src/components/Modal/Modal.tsx
884
- var import_jsx_runtime24 = require("react/jsx-runtime");
933
+ var import_jsx_runtime25 = require("react/jsx-runtime");
885
934
  var ModalBase = ({ isVisible, header, children, className }) => {
886
935
  if (!isVisible) return null;
887
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: cn("fixed inset-0 z-50 pointer-events-auto"), children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
936
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: cn("fixed inset-0 z-50 pointer-events-auto"), children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
888
937
  "div",
889
938
  {
890
939
  className: cn("fixed inset-0 z-1001 flex items-center justify-center pointer-events-auto"),
891
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
940
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
892
941
  "main",
893
942
  {
894
943
  className: cn(
@@ -899,7 +948,7 @@ var ModalBase = ({ isVisible, header, children, className }) => {
899
948
  className
900
949
  ),
901
950
  children: [
902
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("h1", { className: cn("text-strong font-[500] text-[24px] leading-[32px]"), children: header }),
951
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("h1", { className: cn("text-strong font-[500] text-[24px] leading-[32px]"), children: header }),
903
952
  children
904
953
  ]
905
954
  }
@@ -908,7 +957,7 @@ var ModalBase = ({ isVisible, header, children, className }) => {
908
957
  ) });
909
958
  };
910
959
  var Contents = ({ children, className }) => {
911
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
960
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
912
961
  "div",
913
962
  {
914
963
  className: cn(
@@ -925,7 +974,7 @@ var CTAs2 = ({ children, className, row = false }) => {
925
974
  if (!children) return null;
926
975
  return (
927
976
  // CTA 버튼들을 중앙에 배치하는 예시 (우측 정렬이 필요하면 justify-end 사용)
928
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
977
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
929
978
  "div",
930
979
  {
931
980
  className: cn(
@@ -944,9 +993,9 @@ var Modal = Object.assign(ModalBase, {
944
993
  });
945
994
 
946
995
  // src/components/Modal/ModalText.tsx
947
- var import_jsx_runtime25 = require("react/jsx-runtime");
996
+ var import_jsx_runtime26 = require("react/jsx-runtime");
948
997
  var ModalText = ({ children, className }) => {
949
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
998
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
950
999
  "div",
951
1000
  {
952
1001
  className: cn(
@@ -962,14 +1011,14 @@ var ModalText = ({ children, className }) => {
962
1011
  };
963
1012
 
964
1013
  // src/components/createPost/CategorySegment.tsx
965
- var import_jsx_runtime26 = require("react/jsx-runtime");
1014
+ var import_jsx_runtime27 = require("react/jsx-runtime");
966
1015
  var CategorySegment = ({
967
1016
  selected = false,
968
1017
  label,
969
1018
  className,
970
1019
  onClick
971
1020
  }) => {
972
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1021
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
973
1022
  "div",
974
1023
  {
975
1024
  className: cn(
@@ -989,7 +1038,7 @@ var CategorySegment = ({
989
1038
  };
990
1039
 
991
1040
  // src/components/createPost/CategorySegmentedControl.tsx
992
- var import_jsx_runtime27 = require("react/jsx-runtime");
1041
+ var import_jsx_runtime28 = require("react/jsx-runtime");
993
1042
  var categorySegments = {
994
1043
  info: ["\uACF5\uC6A9 \uBB3C\uD488", "\uC77C\uBC18 \uAE30\uC790\uC7AC", "\uD2B9\uC218 \uAE30\uC790\uC7AC"],
995
1044
  archive: ["\uD504\uB9B0\uD2B8\uC2E4", "\uD64D\uC775\uC2DC\uB514"],
@@ -1003,8 +1052,8 @@ var CategorySegmentedControl = ({
1003
1052
  className
1004
1053
  }) => {
1005
1054
  const segments = categorySegments[variable];
1006
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: cn("w-full h-fit flex items-center justify-start", className), children: [
1007
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1055
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: cn("w-full h-fit flex items-center justify-start", className), children: [
1056
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1008
1057
  "div",
1009
1058
  {
1010
1059
  className: cn(
@@ -1017,7 +1066,7 @@ var CategorySegmentedControl = ({
1017
1066
  children: variable === "infoTag" ? "\uD0DC\uADF8 \uC120\uD0DD" : "\uCE74\uD14C\uACE0\uB9AC \uC120\uD0DD"
1018
1067
  }
1019
1068
  ),
1020
- segments.map((label) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1069
+ segments.map((label) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1021
1070
  CategorySegment,
1022
1071
  {
1023
1072
  label,
@@ -1030,9 +1079,9 @@ var CategorySegmentedControl = ({
1030
1079
  };
1031
1080
 
1032
1081
  // src/components/createPost/TitleInput.tsx
1033
- var import_jsx_runtime28 = require("react/jsx-runtime");
1082
+ var import_jsx_runtime29 = require("react/jsx-runtime");
1034
1083
  var TitleInput = ({ title, onChange, className }) => {
1035
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1084
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1036
1085
  "input",
1037
1086
  {
1038
1087
  type: "text",
@@ -1052,9 +1101,9 @@ var TitleInput = ({ title, onChange, className }) => {
1052
1101
  };
1053
1102
 
1054
1103
  // src/components/notice/NoticeBadge.tsx
1055
- var import_jsx_runtime29 = require("react/jsx-runtime");
1104
+ var import_jsx_runtime30 = require("react/jsx-runtime");
1056
1105
  var NoticeBadge = ({ variable, className, onClick }) => {
1057
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1106
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1058
1107
  "button",
1059
1108
  {
1060
1109
  type: "button",
@@ -1075,7 +1124,7 @@ var NoticeBadge = ({ variable, className, onClick }) => {
1075
1124
  };
1076
1125
 
1077
1126
  // src/components/notice/NoticeBar.tsx
1078
- var import_jsx_runtime30 = require("react/jsx-runtime");
1127
+ var import_jsx_runtime31 = require("react/jsx-runtime");
1079
1128
  var NoticeBar = ({
1080
1129
  variable = "default",
1081
1130
  badgeVariable,
@@ -1084,7 +1133,7 @@ var NoticeBar = ({
1084
1133
  className,
1085
1134
  onClick
1086
1135
  }) => {
1087
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
1136
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
1088
1137
  "div",
1089
1138
  {
1090
1139
  className: cn(
@@ -1096,20 +1145,20 @@ var NoticeBar = ({
1096
1145
  ),
1097
1146
  onClick,
1098
1147
  children: [
1099
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("section", { className: "flex items-center gap-3", children: [
1100
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(NoticeBadge, { variable: badgeVariable }),
1101
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("h1", { className: "text-head1-medium text-strong", children: title })
1148
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("section", { className: "flex items-center gap-3", children: [
1149
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(NoticeBadge, { variable: badgeVariable }),
1150
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("h1", { className: "text-head1-medium text-strong", children: title })
1102
1151
  ] }),
1103
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: "text-body3-book text-tertiary", children: date })
1152
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("p", { className: "text-body3-book text-tertiary", children: date })
1104
1153
  ]
1105
1154
  }
1106
1155
  );
1107
1156
  };
1108
1157
 
1109
1158
  // src/components/SearchBar/SearchBar.tsx
1110
- var import_jsx_runtime31 = require("react/jsx-runtime");
1159
+ var import_jsx_runtime32 = require("react/jsx-runtime");
1111
1160
  var SearchBar = ({ value, onChange, className }) => {
1112
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
1161
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
1113
1162
  "label",
1114
1163
  {
1115
1164
  className: cn(
@@ -1120,8 +1169,8 @@ var SearchBar = ({ value, onChange, className }) => {
1120
1169
  className
1121
1170
  ),
1122
1171
  children: [
1123
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(IconSearch, {}),
1124
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1172
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(IconSearch, {}),
1173
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1125
1174
  "input",
1126
1175
  {
1127
1176
  type: "text",
@@ -1170,7 +1219,7 @@ var RadioSelected_default = "./RadioSelected-DOLVV7ZM.svg";
1170
1219
  var RadioUnselected_default = "./RadioUnselected-QN74EU46.svg";
1171
1220
 
1172
1221
  // src/components/SideRadioAccordion/SideRadioAccordion.tsx
1173
- var import_jsx_runtime32 = require("react/jsx-runtime");
1222
+ var import_jsx_runtime33 = require("react/jsx-runtime");
1174
1223
  var printColorBgClass = {
1175
1224
  Plotter: "bg-print-plotter",
1176
1225
  Printer: "bg-print-printer",
@@ -1214,8 +1263,8 @@ var SideRadioAccordion = (0, import_react6.forwardRef)(
1214
1263
  setIsOpen(next);
1215
1264
  onOpenChange?.(next);
1216
1265
  };
1217
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { ref, className: cn("w-full", className), children: [
1218
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1266
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { ref, className: cn("w-full border-r border-gray02 bg-white", className), children: [
1267
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1219
1268
  Stepper,
1220
1269
  {
1221
1270
  step,
@@ -1226,8 +1275,8 @@ var SideRadioAccordion = (0, import_react6.forwardRef)(
1226
1275
  className: cn(stickyHeader && "sticky top-0 z-10")
1227
1276
  }
1228
1277
  ),
1229
- expanded && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "flex flex-col", children: [
1230
- radioToggleList.map((item) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1278
+ expanded && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex flex-col divide-y divide-gray02", children: [
1279
+ radioToggleList.map((item) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1231
1280
  RadioToggleItem,
1232
1281
  {
1233
1282
  ...item,
@@ -1236,29 +1285,22 @@ var SideRadioAccordion = (0, import_react6.forwardRef)(
1236
1285
  },
1237
1286
  itemKey(item)
1238
1287
  )),
1239
- quantityLimitLabel && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1240
- TextButton2,
1241
- {
1242
- label: quantityLimitLabel,
1243
- onClick: onClickQuantityLimit,
1244
- className: "mt-2"
1245
- }
1246
- )
1288
+ quantityLimitLabel && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "px-5 py-4", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(TextButton2, { label: quantityLimitLabel, onClick: onClickQuantityLimit }) })
1247
1289
  ] })
1248
1290
  ] });
1249
1291
  }
1250
1292
  );
1251
1293
  var Stepper = ({ step, title, isOpen, collapsible, onClick, className }) => {
1252
- const label = /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("span", { children: [
1294
+ const label = /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("span", { children: [
1253
1295
  step,
1254
1296
  " | ",
1255
1297
  title
1256
1298
  ] });
1257
- const base = "w-full flex items-center justify-between px-3 py-2.5 text-body1-medium text-strong text-left bg-white";
1299
+ 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";
1258
1300
  if (!collapsible) {
1259
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: cn(base, className), children: label });
1301
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: cn(base, className), children: label });
1260
1302
  }
1261
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
1303
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
1262
1304
  "button",
1263
1305
  {
1264
1306
  type: "button",
@@ -1266,7 +1308,7 @@ var Stepper = ({ step, title, isOpen, collapsible, onClick, className }) => {
1266
1308
  className: cn(base, "cursor-pointer hover:bg-gray00 active:bg-gray01", className),
1267
1309
  children: [
1268
1310
  label,
1269
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1311
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1270
1312
  "img",
1271
1313
  {
1272
1314
  src: ChevronDown_default,
@@ -1292,29 +1334,29 @@ var RadioToggleItem = ({
1292
1334
  }) => {
1293
1335
  const rowBg = !open ? "bg-white hover:bg-gray00" : color ? void 0 : printColor ? printColorBgClass[printColor] : "bg-gray00";
1294
1336
  const style = open && color ? { backgroundColor: color } : void 0;
1295
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "w-full", children: [
1296
- /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
1337
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "w-full", children: [
1338
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
1297
1339
  "button",
1298
1340
  {
1299
1341
  type: "button",
1300
1342
  onClick: onSelect,
1301
1343
  style,
1302
1344
  className: cn(
1303
- "w-full flex items-center gap-1.5 px-3 py-2.5",
1304
- "text-body2-regular text-primary text-left cursor-pointer",
1345
+ "w-full flex items-center gap-1.5 p-3",
1346
+ "text-body1-regular text-secondary text-left cursor-pointer",
1305
1347
  rowBg,
1306
1348
  className
1307
1349
  ),
1308
1350
  children: [
1309
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Radio, { selected: open }),
1310
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { children: title })
1351
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Radio, { selected: open }),
1352
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { children: title })
1311
1353
  ]
1312
1354
  }
1313
1355
  ),
1314
- open && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "flex flex-col gap-2 px-3 py-3 bg-white", children: [
1315
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("p", { className: "text-caption-regular text-secondary", children: content }),
1316
- badges && badges.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "flex gap-1", children: badges.map((badge) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Badge, { label: badge }, badge)) }),
1317
- labelTextButton && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1356
+ open && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex flex-col gap-2 px-3 py-3 bg-white", children: [
1357
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("p", { className: "text-caption-regular text-secondary", children: content }),
1358
+ badges && badges.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "flex gap-1", children: badges.map((badge) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Badge, { label: badge }, badge)) }),
1359
+ labelTextButton && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1318
1360
  TextButton2,
1319
1361
  {
1320
1362
  label: labelTextButton,
@@ -1327,17 +1369,17 @@ var RadioToggleItem = ({
1327
1369
  ] });
1328
1370
  };
1329
1371
  var Radio = ({ selected = false, className }) => {
1330
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1372
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1331
1373
  "img",
1332
1374
  {
1333
1375
  src: selected ? RadioSelected_default : RadioUnselected_default,
1334
1376
  alt: "",
1335
- className: cn("w-4 h-4", className)
1377
+ className: cn("w-6 h-6", className)
1336
1378
  }
1337
1379
  );
1338
1380
  };
1339
1381
  var TextButton2 = ({ label, onClick, showIcon = false, className }) => {
1340
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
1382
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
1341
1383
  "button",
1342
1384
  {
1343
1385
  type: "button",
@@ -1350,14 +1392,14 @@ var TextButton2 = ({ label, onClick, showIcon = false, className }) => {
1350
1392
  className
1351
1393
  ),
1352
1394
  children: [
1353
- showIcon && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("img", { src: Exclamation_default, alt: "" }),
1395
+ showIcon && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("img", { src: Exclamation_default, alt: "" }),
1354
1396
  label
1355
1397
  ]
1356
1398
  }
1357
1399
  );
1358
1400
  };
1359
1401
  var Badge = ({ label, className }) => {
1360
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1402
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1361
1403
  "div",
1362
1404
  {
1363
1405
  className: cn(
@@ -1371,7 +1413,7 @@ var Badge = ({ label, className }) => {
1371
1413
  };
1372
1414
 
1373
1415
  // src/components/Tag/Tag.tsx
1374
- var import_jsx_runtime33 = require("react/jsx-runtime");
1416
+ var import_jsx_runtime34 = require("react/jsx-runtime");
1375
1417
  var Tag = ({
1376
1418
  className,
1377
1419
  children,
@@ -1381,7 +1423,7 @@ var Tag = ({
1381
1423
  onClick,
1382
1424
  ...props
1383
1425
  }) => {
1384
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1426
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1385
1427
  "button",
1386
1428
  {
1387
1429
  className: cn(
@@ -1400,7 +1442,7 @@ var Tag = ({
1400
1442
  disabled,
1401
1443
  style: bgColor ? { backgroundColor: bgColor, border: "none" } : void 0,
1402
1444
  ...props,
1403
- children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { children })
1445
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { children })
1404
1446
  }
1405
1447
  );
1406
1448
  };
@@ -1442,7 +1484,7 @@ var formatWeekRange = (weekStart) => {
1442
1484
  };
1443
1485
 
1444
1486
  // src/components/Timetable/WeekNavigation.tsx
1445
- var import_jsx_runtime34 = require("react/jsx-runtime");
1487
+ var import_jsx_runtime35 = require("react/jsx-runtime");
1446
1488
  var weekLabel = {
1447
1489
  thisWeek: "\uC774\uBC88 \uC8FC",
1448
1490
  nextWeek: "\uB2E4\uC74C \uC8FC",
@@ -1453,53 +1495,62 @@ var WeekNavigation = (0, import_react7.forwardRef)(
1453
1495
  const showPrev = canPrev ?? (week ? week !== "thisWeek" : true);
1454
1496
  const showNext = canNext ?? (week ? week !== "twoWeeksLater" : true);
1455
1497
  const text = label ?? (week ? `${weekLabel[week]} (${formatWeekRange(date)})` : formatWeekRange(date));
1456
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
1498
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
1457
1499
  "div",
1458
1500
  {
1459
1501
  ref,
1460
1502
  className: cn(
1461
- "flex items-center justify-between",
1462
- "w-full h-11 px-3",
1463
- "bg-white border border-gray02",
1464
- "text-body2-regular text-primary",
1503
+ "flex items-stretch justify-between",
1504
+ "w-full h-12",
1505
+ "bg-white border-b border-gray02",
1506
+ "text-body1-medium text-secondary",
1465
1507
  className
1466
1508
  ),
1467
1509
  children: [
1468
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ArrowButton, { direction: "left", visible: showPrev, onClick: onPrevWeek }),
1469
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { children: text }),
1470
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ArrowButton, { direction: "right", visible: showNext, onClick: onNextWeek })
1510
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ArrowButton, { direction: "left", visible: showPrev, onClick: onPrevWeek }),
1511
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "flex flex-1 items-center justify-center text-center", children: text }),
1512
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ArrowButton, { direction: "right", visible: showNext, onClick: onNextWeek })
1471
1513
  ]
1472
1514
  }
1473
1515
  );
1474
1516
  }
1475
1517
  );
1476
1518
  var ArrowButton = ({ direction, visible, onClick }) => {
1519
+ const divider = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" });
1477
1520
  if (!visible) {
1478
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "w-6 h-6" });
1521
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-stretch", children: [
1522
+ direction === "right" && divider,
1523
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "w-[42px]" }),
1524
+ direction === "left" && divider
1525
+ ] });
1479
1526
  }
1480
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1481
- "button",
1482
- {
1483
- type: "button",
1484
- onClick,
1485
- className: cn(
1486
- "flex items-center justify-center w-6 h-6",
1487
- "text-gray06 cursor-pointer",
1488
- "hover:bg-gray00 active:bg-gray01"
1489
- ),
1490
- children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1491
- IconChevronDownXS,
1492
- {
1493
- className: direction === "left" ? "rotate-90" : "-rotate-90",
1494
- stroke: "currentColor"
1495
- }
1496
- )
1497
- }
1498
- );
1527
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-stretch", children: [
1528
+ direction === "right" && divider,
1529
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1530
+ "button",
1531
+ {
1532
+ type: "button",
1533
+ onClick,
1534
+ className: cn(
1535
+ "flex w-[42px] items-center justify-center",
1536
+ "text-gray06 cursor-pointer transition-colors",
1537
+ "hover:bg-gray00 active:bg-gray01"
1538
+ ),
1539
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1540
+ IconChevronDownXS,
1541
+ {
1542
+ className: direction === "left" ? "rotate-90" : "-rotate-90",
1543
+ stroke: "currentColor"
1544
+ }
1545
+ )
1546
+ }
1547
+ ),
1548
+ direction === "left" && divider
1549
+ ] });
1499
1550
  };
1500
1551
 
1501
1552
  // src/components/Timetable/Timetable.tsx
1502
- var import_jsx_runtime35 = require("react/jsx-runtime");
1553
+ var import_jsx_runtime36 = require("react/jsx-runtime");
1503
1554
  var printColorHoverClass = {
1504
1555
  Plotter: "hover:bg-print-plotter",
1505
1556
  Printer: "hover:bg-print-printer",
@@ -1522,8 +1573,8 @@ var Timetable = (0, import_react8.forwardRef)(function Timetable2({
1522
1573
  canNextWeek,
1523
1574
  className
1524
1575
  }, ref) {
1525
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { ref, className: cn(fluid && "w-full", className), children: [
1526
- !hideWeekNavigation && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1576
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { ref, className: cn(fluid && "w-full", className), children: [
1577
+ !hideWeekNavigation && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1527
1578
  WeekNavigation,
1528
1579
  {
1529
1580
  date: weekStart,
@@ -1534,7 +1585,7 @@ var Timetable = (0, import_react8.forwardRef)(function Timetable2({
1534
1585
  onNextWeek
1535
1586
  }
1536
1587
  ),
1537
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: cn("flex", fluid && "w-full"), children: days.map((day) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1588
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: cn("flex", fluid && "w-full"), children: days.map((day) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1538
1589
  DailyTimetable,
1539
1590
  {
1540
1591
  date: day.date,
@@ -1547,9 +1598,9 @@ var Timetable = (0, import_react8.forwardRef)(function Timetable2({
1547
1598
  ] });
1548
1599
  });
1549
1600
  var DailyTimetable = ({ date, slots, fluid, onSelectTime, className }) => {
1550
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: cn("flex flex-col", fluid ? "flex-1 min-w-0" : "w-18", className), children: [
1551
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "h-13 flex items-center justify-center text-body3-medium text-secondary", children: formatDayLabel(date) }),
1552
- slots.map((slot) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1601
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: cn("flex flex-col", fluid ? "flex-1 min-w-0" : "w-18", className), children: [
1602
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "h-12 flex items-center justify-center border-b border-gray02 text-body1-regular text-secondary", children: formatDayLabel(date) }),
1603
+ slots.map((slot) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1553
1604
  TimeItem,
1554
1605
  {
1555
1606
  state: slot.state,
@@ -1575,17 +1626,17 @@ var TimeItem = ({
1575
1626
  }) => {
1576
1627
  const clickable = (state === "default" || state === "selected") && !!onClick;
1577
1628
  const style = state === "default" && color ? { "--tt-hover": color } : void 0;
1578
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1629
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1579
1630
  "div",
1580
1631
  {
1581
1632
  onClick: clickable ? onClick : void 0,
1582
1633
  style,
1583
1634
  className: cn(
1584
- "h-18 flex items-center justify-center",
1635
+ "h-18 flex items-center justify-center border-b border-gray02",
1585
1636
  fluid ? "w-full" : "w-18",
1586
1637
  "text-body1-medium text-center bg-white text-primary",
1587
1638
  state === "none" && "bg-gray00 text-transparent",
1588
- state === "selected" && "bg-black text-gray02 hover:cursor-pointer",
1639
+ state === "selected" && "bg-black text-white hover:cursor-pointer",
1589
1640
  state === "disabled" && "bg-gray00 text-gray03",
1590
1641
  state === "default" && [
1591
1642
  "hover:cursor-pointer",
@@ -1600,7 +1651,7 @@ var TimeItem = ({
1600
1651
 
1601
1652
  // src/components/TNB/TNB.tsx
1602
1653
  var import_react9 = require("react");
1603
- var import_jsx_runtime36 = require("react/jsx-runtime");
1654
+ var import_jsx_runtime37 = require("react/jsx-runtime");
1604
1655
  function useControllableState2(controlled, defaultValue) {
1605
1656
  const isControlled = controlled !== void 0;
1606
1657
  const [uncontrolled, setUncontrolled] = (0, import_react9.useState)(defaultValue);
@@ -1652,8 +1703,8 @@ var TNB = (0, import_react9.forwardRef)(function TNB2({
1652
1703
  setLowerValue(label);
1653
1704
  onSelectedLowerChange?.(label);
1654
1705
  };
1655
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("nav", { ref, "aria-label": ariaLabel, className: cn("w-full bg-white", className), children: [
1656
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1706
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("nav", { ref, "aria-label": ariaLabel, className: cn("w-full bg-white", className), children: [
1707
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1657
1708
  UpperPart,
1658
1709
  {
1659
1710
  logo,
@@ -1664,7 +1715,7 @@ var TNB = (0, import_react9.forwardRef)(function TNB2({
1664
1715
  linkComponent
1665
1716
  }
1666
1717
  ),
1667
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1718
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1668
1719
  LowerPart,
1669
1720
  {
1670
1721
  lowerPartItemList: currentLowerItemList,
@@ -1679,7 +1730,7 @@ var NavClickable = (0, import_react9.forwardRef)(function NavClickable2({ href,
1679
1730
  const ariaCurrent = current ? "page" : void 0;
1680
1731
  if (href && !disabled) {
1681
1732
  if (Link) {
1682
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1733
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1683
1734
  Link,
1684
1735
  {
1685
1736
  href,
@@ -1691,7 +1742,7 @@ var NavClickable = (0, import_react9.forwardRef)(function NavClickable2({ href,
1691
1742
  }
1692
1743
  );
1693
1744
  }
1694
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1745
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1695
1746
  "a",
1696
1747
  {
1697
1748
  href,
@@ -1703,7 +1754,7 @@ var NavClickable = (0, import_react9.forwardRef)(function NavClickable2({ href,
1703
1754
  }
1704
1755
  );
1705
1756
  }
1706
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1757
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1707
1758
  "button",
1708
1759
  {
1709
1760
  type: "button",
@@ -1725,33 +1776,50 @@ var UpperPart = ({
1725
1776
  linkComponent,
1726
1777
  className
1727
1778
  }) => {
1728
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: cn("w-full h-13 px-4 flex items-center justify-between", className), children: [
1729
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex items-center gap-6", children: [
1730
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(NavIconButton, { ...logo, linkComponent }),
1731
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "flex items-center gap-4", children: upperPartItemList.map((item) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1732
- UpperPartTab,
1733
- {
1734
- label: item.label,
1735
- href: item.href,
1736
- selected: item.label === selected,
1737
- linkComponent,
1738
- onClick: () => {
1739
- item.onClick?.();
1740
- onSelectItem(item.label);
1741
- }
1742
- },
1743
- item.id ?? item.label
1744
- )) })
1745
- ] }),
1746
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "flex items-center gap-2", children: upperPartIconList.map((icon, index) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1747
- NavIconButton,
1748
- {
1749
- ...icon,
1750
- linkComponent
1751
- },
1752
- icon.id ?? icon.src ?? icon.label ?? index
1753
- )) })
1754
- ] });
1779
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
1780
+ "div",
1781
+ {
1782
+ className: cn(
1783
+ "w-full min-h-13 flex items-stretch justify-between border-b border-gray02",
1784
+ className
1785
+ ),
1786
+ children: [
1787
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-stretch", children: [
1788
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex w-14 shrink-0 items-center justify-center px-3", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(NavIconButton, { ...logo, linkComponent }) }),
1789
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-stretch", children: [
1790
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" }),
1791
+ upperPartItemList.map((item) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_react9.Fragment, { children: [
1792
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1793
+ UpperPartTab,
1794
+ {
1795
+ label: item.label,
1796
+ href: item.href,
1797
+ selected: item.label === selected,
1798
+ linkComponent,
1799
+ onClick: () => {
1800
+ item.onClick?.();
1801
+ onSelectItem(item.label);
1802
+ }
1803
+ }
1804
+ ),
1805
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" })
1806
+ ] }, item.id ?? item.label))
1807
+ ] })
1808
+ ] }),
1809
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-stretch", children: [
1810
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" }),
1811
+ upperPartIconList.map((icon, index) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1812
+ NavIconButton,
1813
+ {
1814
+ ...icon,
1815
+ linkComponent
1816
+ },
1817
+ icon.id ?? icon.src ?? icon.label ?? index
1818
+ ))
1819
+ ] })
1820
+ ]
1821
+ }
1822
+ );
1755
1823
  };
1756
1824
  var UpperPartTab = ({
1757
1825
  label,
@@ -1761,7 +1829,7 @@ var UpperPartTab = ({
1761
1829
  linkComponent,
1762
1830
  className
1763
1831
  }) => {
1764
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1832
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
1765
1833
  NavClickable,
1766
1834
  {
1767
1835
  href,
@@ -1769,11 +1837,14 @@ var UpperPartTab = ({
1769
1837
  linkComponent,
1770
1838
  current: selected,
1771
1839
  className: cn(
1772
- "inline-flex px-1 py-1.5 text-body2-regular cursor-pointer no-underline",
1773
- selected ? "text-strong font-medium underline underline-offset-4" : "text-quaternary hover:text-secondary",
1840
+ "inline-flex min-h-13 flex-col items-center gap-2 pt-2.5 cursor-pointer no-underline",
1841
+ "transition-colors hover:bg-gray00 active:bg-gray01",
1774
1842
  className
1775
1843
  ),
1776
- children: label
1844
+ children: [
1845
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: cn("px-5 text-head1-medium", selected ? "text-strong" : "text-quaternary"), children: label }),
1846
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: cn("h-0.5 w-full", selected ? "bg-black" : "bg-transparent") })
1847
+ ]
1777
1848
  }
1778
1849
  );
1779
1850
  };
@@ -1781,7 +1852,7 @@ var NavIconButton = (0, import_react9.forwardRef)(
1781
1852
  function NavIconButton2({ src, icon, alt, label, href, onClick, selected, badge, className, linkComponent }, forwardedRef) {
1782
1853
  const interactive = Boolean(onClick || href);
1783
1854
  const showBadge = badge !== void 0 && badge !== null && badge !== false;
1784
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
1855
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
1785
1856
  NavClickable,
1786
1857
  {
1787
1858
  ref: forwardedRef,
@@ -1791,15 +1862,15 @@ var NavIconButton = (0, import_react9.forwardRef)(
1791
1862
  current: selected,
1792
1863
  disabled: !interactive,
1793
1864
  className: cn(
1794
- "relative inline-flex h-8 min-w-8 items-center justify-center gap-1.5 rounded-full px-1.5",
1865
+ "relative inline-flex h-13 min-w-13 items-center justify-center gap-1.5 px-3 transition-colors",
1795
1866
  interactive && "cursor-pointer",
1796
1867
  selected ? "bg-black text-white" : "bg-transparent hover:bg-gray00 active:bg-gray01",
1797
1868
  className
1798
1869
  ),
1799
1870
  children: [
1800
- icon ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "inline-flex h-5 w-5 items-center justify-center", children: icon }) : src ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("img", { src, alt: alt ?? label ?? "", className: "h-5 w-5" }) : null,
1801
- label ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: cn("text-body2-regular", selected ? "text-white" : "text-secondary"), children: label }) : null,
1802
- showBadge ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1871
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "inline-flex h-6 w-6 items-center justify-center", children: icon }) : src ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("img", { src, alt: alt ?? label ?? "", className: "h-6 w-6" }) : null,
1872
+ label ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: cn("text-body2-regular", selected ? "text-white" : "text-secondary"), children: label }) : null,
1873
+ showBadge ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1803
1874
  "span",
1804
1875
  {
1805
1876
  "aria-hidden": badge === true,
@@ -1825,24 +1896,29 @@ var LowerPart = ({
1825
1896
  if (lowerPartItemList.length === 0) {
1826
1897
  return null;
1827
1898
  }
1828
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1899
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
1829
1900
  "div",
1830
1901
  {
1831
- className: cn("w-full h-9 px-4 flex items-center gap-4 border-t border-gray02", className),
1832
- children: lowerPartItemList.map((item) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1833
- LowerPartItemButton,
1834
- {
1835
- label: item.label,
1836
- href: item.href,
1837
- selected: item.label === selected,
1838
- linkComponent,
1839
- onClick: () => {
1840
- item.onClick?.();
1841
- onSelectItem(item.label);
1842
- }
1843
- },
1844
- item.id ?? item.label
1845
- ))
1902
+ className: cn("w-full h-[42px] pl-14 flex items-stretch border-b border-gray02", className),
1903
+ children: [
1904
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" }),
1905
+ lowerPartItemList.map((item) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_react9.Fragment, { children: [
1906
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1907
+ LowerPartItemButton,
1908
+ {
1909
+ label: item.label,
1910
+ href: item.href,
1911
+ selected: item.label === selected,
1912
+ linkComponent,
1913
+ onClick: () => {
1914
+ item.onClick?.();
1915
+ onSelectItem(item.label);
1916
+ }
1917
+ }
1918
+ ),
1919
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" })
1920
+ ] }, item.id ?? item.label))
1921
+ ]
1846
1922
  }
1847
1923
  );
1848
1924
  };
@@ -1854,7 +1930,7 @@ var LowerPartItemButton = ({
1854
1930
  linkComponent,
1855
1931
  className
1856
1932
  }) => {
1857
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1933
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1858
1934
  NavClickable,
1859
1935
  {
1860
1936
  href,
@@ -1862,9 +1938,9 @@ var LowerPartItemButton = ({
1862
1938
  linkComponent,
1863
1939
  current: selected,
1864
1940
  className: cn(
1865
- "inline-flex px-1.5 py-1 text-caption-regular cursor-pointer no-underline",
1866
- "hover:bg-gray00 active:bg-gray01",
1867
- selected ? "text-strong font-medium" : "text-quaternary",
1941
+ "inline-flex h-full items-center justify-center px-5 text-head3-medium cursor-pointer no-underline",
1942
+ "transition-colors hover:bg-gray00 active:bg-gray01",
1943
+ selected ? "text-strong" : "text-quaternary",
1868
1944
  className
1869
1945
  ),
1870
1946
  children: label
@@ -1874,7 +1950,7 @@ var LowerPartItemButton = ({
1874
1950
 
1875
1951
  // src/components/Toast/Toast.tsx
1876
1952
  var import_react10 = require("react");
1877
- var import_jsx_runtime37 = require("react/jsx-runtime");
1953
+ var import_jsx_runtime38 = require("react/jsx-runtime");
1878
1954
  var EXIT_MS = 300;
1879
1955
  var Toast = (0, import_react10.forwardRef)(function Toast2({ message, open, duration = 3e3, onClose, position = "none", className }, ref) {
1880
1956
  const controlled = open !== void 0;
@@ -1897,7 +1973,7 @@ var Toast = (0, import_react10.forwardRef)(function Toast2({ message, open, dura
1897
1973
  return () => clearTimeout(timer);
1898
1974
  }, [controlled, open, duration, onClose]);
1899
1975
  if (!mounted) return null;
1900
- const banner = /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1976
+ const banner = /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1901
1977
  "div",
1902
1978
  {
1903
1979
  ref,
@@ -1905,7 +1981,7 @@ var Toast = (0, import_react10.forwardRef)(function Toast2({ message, open, dura
1905
1981
  "aria-live": "polite",
1906
1982
  className: cn(
1907
1983
  "w-full h-fit py-2.5 bg-gray06",
1908
- "font-pretendard text-white text-center font-semibold text-[17px]",
1984
+ "font-pretendard text-white text-center font-semibold text-[17px] leading-[1.6]",
1909
1985
  "shadow-[0_2px_15px_rgba(0,0,0,0.18)]",
1910
1986
  controlled && "transition-opacity duration-300",
1911
1987
  controlled && (visible ? "opacity-100" : "opacity-0"),
@@ -1915,7 +1991,7 @@ var Toast = (0, import_react10.forwardRef)(function Toast2({ message, open, dura
1915
1991
  }
1916
1992
  );
1917
1993
  if (position === "none") return banner;
1918
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1994
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1919
1995
  "div",
1920
1996
  {
1921
1997
  className: cn(
@@ -1935,6 +2011,8 @@ var Toast = (0, import_react10.forwardRef)(function Toast2({ message, open, dura
1935
2011
  CategorySegmentedControl,
1936
2012
  Column,
1937
2013
  ColumnContentContainer,
2014
+ ColumnDescription,
2015
+ ColumnDescriptionList,
1938
2016
  ColumnLabel,
1939
2017
  ColumnSubTitle,
1940
2018
  ColumnText,
@@ -1951,6 +2029,7 @@ var Toast = (0, import_react10.forwardRef)(function Toast2({ message, open, dura
1951
2029
  FormTextArea,
1952
2030
  IconCheck,
1953
2031
  IconChevronDownXS,
2032
+ IconCompass,
1954
2033
  IconInfo,
1955
2034
  List,
1956
2035
  Modal,