@hivcd-printshop/design-system 1.2.1 → 1.2.3
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 +161 -63
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +157 -63
- package/dist/index.mjs.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +4 -1
- package/dist/ChevronDown-XSALXCW4.svg +0 -3
- package/dist/Exclamation-IUYZYYC4.svg +0 -4
- package/dist/RadioSelected-DOLVV7ZM.svg +0 -4
- package/dist/RadioUnselected-QN74EU46.svg +0 -3
package/dist/index.d.mts
CHANGED
|
@@ -234,13 +234,18 @@ interface ModalProps {
|
|
|
234
234
|
header: string;
|
|
235
235
|
children: react__default.ReactNode;
|
|
236
236
|
className?: string;
|
|
237
|
+
/**
|
|
238
|
+
* 지정하면 배경(백드롭) 클릭 시 호출되고, 카드 우상단에 닫기(X) 버튼이 노출된다.
|
|
239
|
+
* 생략하면 배경은 딤 처리만 되고 클릭해도 닫히지 않는다.
|
|
240
|
+
*/
|
|
241
|
+
onClose?: () => void;
|
|
237
242
|
}
|
|
238
243
|
interface BaseProps {
|
|
239
244
|
children: react__default.ReactNode;
|
|
240
245
|
className?: string;
|
|
241
246
|
row?: boolean;
|
|
242
247
|
}
|
|
243
|
-
declare const Modal: (({ isVisible, header, children, className }: ModalProps) => react__default.JSX.Element | null) & {
|
|
248
|
+
declare const Modal: (({ isVisible, header, children, className, onClose }: ModalProps) => react__default.JSX.Element | null) & {
|
|
244
249
|
Contents: ({ children, className }: BaseProps) => react__default.JSX.Element;
|
|
245
250
|
CTAs: ({ children, className, row }: BaseProps) => react__default.JSX.Element | null;
|
|
246
251
|
};
|
|
@@ -268,6 +273,27 @@ declare const IconCompass: ({ className, fill }: {
|
|
|
268
273
|
className?: string;
|
|
269
274
|
fill?: string;
|
|
270
275
|
}) => react.JSX.Element;
|
|
276
|
+
/** 선택된 라디오 버튼(채워진 점). SideRadioAccordion 등에서 사용. */
|
|
277
|
+
declare const IconRadioSelected: ({ className, stroke, fill, }: {
|
|
278
|
+
className?: string;
|
|
279
|
+
stroke?: string;
|
|
280
|
+
fill?: string;
|
|
281
|
+
}) => react.JSX.Element;
|
|
282
|
+
/** 선택되지 않은 라디오 버튼(빈 원). */
|
|
283
|
+
declare const IconRadioUnselected: ({ className, stroke, }: {
|
|
284
|
+
className?: string;
|
|
285
|
+
stroke?: string;
|
|
286
|
+
}) => react.JSX.Element;
|
|
287
|
+
/** 느낌표(원 안). 보조 안내 텍스트 버튼 등에서 사용. */
|
|
288
|
+
declare const IconExclamation: ({ className, fill }: {
|
|
289
|
+
className?: string;
|
|
290
|
+
fill?: string;
|
|
291
|
+
}) => react.JSX.Element;
|
|
292
|
+
/** 닫기(X) 아이콘. Modal 우상단 등에서 사용. */
|
|
293
|
+
declare const IconClose: ({ className, stroke }: {
|
|
294
|
+
className?: string;
|
|
295
|
+
stroke?: string;
|
|
296
|
+
}) => react.JSX.Element;
|
|
271
297
|
|
|
272
298
|
interface CategorySegmentProps {
|
|
273
299
|
selected?: boolean;
|
|
@@ -519,4 +545,4 @@ interface ToastProps {
|
|
|
519
545
|
}
|
|
520
546
|
declare const Toast: react.ForwardRefExoticComponent<ToastProps & react.RefAttributes<HTMLDivElement>>;
|
|
521
547
|
|
|
522
|
-
export { BackButton, type BackButtonProps, BasicFormField, type BasicFormFieldProps, CTA, type CTAProps, CategorySegment, type CategorySegmentProps, CategorySegmentedControl, type CategorySegmentedControlProps, Column, ColumnContentContainer, type ColumnContentContainerProps, ColumnDescription, ColumnDescriptionList, type ColumnDescriptionListProps, type ColumnDescriptionProps, ColumnLabel, type ColumnLabelProps, type ColumnProps, ColumnSubTitle, type ColumnSubTitleProps, ColumnText, type ColumnTextProps, ColumnTextStyle, type DayColumn, Dropdown, type DropdownProps, FormCheckBox, type FormCheckBoxProps, FormColor, type FormColorProps, FormFile, type FormFileProps, FormNumber, type FormNumberProps, FormPassword, type FormPasswordProps, FormSelectBox, type FormSelectBoxProps, FormTel, type FormTelProps, FormText, FormTextArea, type FormTextAreaProps, type FormTextProps, IconCheck, IconChevronDownXS, IconCompass, IconInfo, type LinkComponent, List, type ListProps, type LowerPartItem, Modal, type ModalProps, ModalText, type ModalTextProps, ModalTextStyle, MultiColumn, type NavIcon, NoticeBadge, type NoticeBadgeProps, type NoticeBadgeVariable, NoticeBar, type NoticeBarBadgeVariable, type NoticeBarProps, type NoticeBarVariable, type RadioToggle, SearchBar, type SearchBarProps, SelectBoxOption, type SelectBoxOptionProps, SideRadioAccordion, type PrintColor$1 as SideRadioAccordionPrintColor, type SideRadioAccordionProps, TNB, type TNBProps, Tag, type TagProps, TextButton, type TextButtonProps, type TimeSlot, type TimeSlotState, Timetable, type PrintColor as TimetablePrintColor, type TimetableProps, TitleInput, type TitleInputProps, Toast, type ToastProps, type UpperPartItem, type Week, WeekNavigation, type WeekNavigationProps, getInputStyles };
|
|
548
|
+
export { BackButton, type BackButtonProps, BasicFormField, type BasicFormFieldProps, CTA, type CTAProps, CategorySegment, type CategorySegmentProps, CategorySegmentedControl, type CategorySegmentedControlProps, Column, ColumnContentContainer, type ColumnContentContainerProps, ColumnDescription, ColumnDescriptionList, type ColumnDescriptionListProps, type ColumnDescriptionProps, ColumnLabel, type ColumnLabelProps, type ColumnProps, ColumnSubTitle, type ColumnSubTitleProps, ColumnText, type ColumnTextProps, ColumnTextStyle, type DayColumn, Dropdown, type DropdownProps, FormCheckBox, type FormCheckBoxProps, FormColor, type FormColorProps, FormFile, type FormFileProps, FormNumber, type FormNumberProps, FormPassword, type FormPasswordProps, FormSelectBox, type FormSelectBoxProps, FormTel, type FormTelProps, FormText, FormTextArea, type FormTextAreaProps, type FormTextProps, IconCheck, IconChevronDownXS, IconClose, IconCompass, IconExclamation, IconInfo, IconRadioSelected, IconRadioUnselected, type LinkComponent, List, type ListProps, type LowerPartItem, Modal, type ModalProps, ModalText, type ModalTextProps, ModalTextStyle, MultiColumn, type NavIcon, NoticeBadge, type NoticeBadgeProps, type NoticeBadgeVariable, NoticeBar, type NoticeBarBadgeVariable, type NoticeBarProps, type NoticeBarVariable, type RadioToggle, SearchBar, type SearchBarProps, SelectBoxOption, type SelectBoxOptionProps, SideRadioAccordion, type PrintColor$1 as SideRadioAccordionPrintColor, type SideRadioAccordionProps, TNB, type TNBProps, Tag, type TagProps, TextButton, type TextButtonProps, type TimeSlot, type TimeSlotState, Timetable, type PrintColor as TimetablePrintColor, type TimetableProps, TitleInput, type TitleInputProps, Toast, type ToastProps, type UpperPartItem, type Week, WeekNavigation, type WeekNavigationProps, getInputStyles };
|
package/dist/index.d.ts
CHANGED
|
@@ -234,13 +234,18 @@ interface ModalProps {
|
|
|
234
234
|
header: string;
|
|
235
235
|
children: react__default.ReactNode;
|
|
236
236
|
className?: string;
|
|
237
|
+
/**
|
|
238
|
+
* 지정하면 배경(백드롭) 클릭 시 호출되고, 카드 우상단에 닫기(X) 버튼이 노출된다.
|
|
239
|
+
* 생략하면 배경은 딤 처리만 되고 클릭해도 닫히지 않는다.
|
|
240
|
+
*/
|
|
241
|
+
onClose?: () => void;
|
|
237
242
|
}
|
|
238
243
|
interface BaseProps {
|
|
239
244
|
children: react__default.ReactNode;
|
|
240
245
|
className?: string;
|
|
241
246
|
row?: boolean;
|
|
242
247
|
}
|
|
243
|
-
declare const Modal: (({ isVisible, header, children, className }: ModalProps) => react__default.JSX.Element | null) & {
|
|
248
|
+
declare const Modal: (({ isVisible, header, children, className, onClose }: ModalProps) => react__default.JSX.Element | null) & {
|
|
244
249
|
Contents: ({ children, className }: BaseProps) => react__default.JSX.Element;
|
|
245
250
|
CTAs: ({ children, className, row }: BaseProps) => react__default.JSX.Element | null;
|
|
246
251
|
};
|
|
@@ -268,6 +273,27 @@ declare const IconCompass: ({ className, fill }: {
|
|
|
268
273
|
className?: string;
|
|
269
274
|
fill?: string;
|
|
270
275
|
}) => react.JSX.Element;
|
|
276
|
+
/** 선택된 라디오 버튼(채워진 점). SideRadioAccordion 등에서 사용. */
|
|
277
|
+
declare const IconRadioSelected: ({ className, stroke, fill, }: {
|
|
278
|
+
className?: string;
|
|
279
|
+
stroke?: string;
|
|
280
|
+
fill?: string;
|
|
281
|
+
}) => react.JSX.Element;
|
|
282
|
+
/** 선택되지 않은 라디오 버튼(빈 원). */
|
|
283
|
+
declare const IconRadioUnselected: ({ className, stroke, }: {
|
|
284
|
+
className?: string;
|
|
285
|
+
stroke?: string;
|
|
286
|
+
}) => react.JSX.Element;
|
|
287
|
+
/** 느낌표(원 안). 보조 안내 텍스트 버튼 등에서 사용. */
|
|
288
|
+
declare const IconExclamation: ({ className, fill }: {
|
|
289
|
+
className?: string;
|
|
290
|
+
fill?: string;
|
|
291
|
+
}) => react.JSX.Element;
|
|
292
|
+
/** 닫기(X) 아이콘. Modal 우상단 등에서 사용. */
|
|
293
|
+
declare const IconClose: ({ className, stroke }: {
|
|
294
|
+
className?: string;
|
|
295
|
+
stroke?: string;
|
|
296
|
+
}) => react.JSX.Element;
|
|
271
297
|
|
|
272
298
|
interface CategorySegmentProps {
|
|
273
299
|
selected?: boolean;
|
|
@@ -519,4 +545,4 @@ interface ToastProps {
|
|
|
519
545
|
}
|
|
520
546
|
declare const Toast: react.ForwardRefExoticComponent<ToastProps & react.RefAttributes<HTMLDivElement>>;
|
|
521
547
|
|
|
522
|
-
export { BackButton, type BackButtonProps, BasicFormField, type BasicFormFieldProps, CTA, type CTAProps, CategorySegment, type CategorySegmentProps, CategorySegmentedControl, type CategorySegmentedControlProps, Column, ColumnContentContainer, type ColumnContentContainerProps, ColumnDescription, ColumnDescriptionList, type ColumnDescriptionListProps, type ColumnDescriptionProps, ColumnLabel, type ColumnLabelProps, type ColumnProps, ColumnSubTitle, type ColumnSubTitleProps, ColumnText, type ColumnTextProps, ColumnTextStyle, type DayColumn, Dropdown, type DropdownProps, FormCheckBox, type FormCheckBoxProps, FormColor, type FormColorProps, FormFile, type FormFileProps, FormNumber, type FormNumberProps, FormPassword, type FormPasswordProps, FormSelectBox, type FormSelectBoxProps, FormTel, type FormTelProps, FormText, FormTextArea, type FormTextAreaProps, type FormTextProps, IconCheck, IconChevronDownXS, IconCompass, IconInfo, type LinkComponent, List, type ListProps, type LowerPartItem, Modal, type ModalProps, ModalText, type ModalTextProps, ModalTextStyle, MultiColumn, type NavIcon, NoticeBadge, type NoticeBadgeProps, type NoticeBadgeVariable, NoticeBar, type NoticeBarBadgeVariable, type NoticeBarProps, type NoticeBarVariable, type RadioToggle, SearchBar, type SearchBarProps, SelectBoxOption, type SelectBoxOptionProps, SideRadioAccordion, type PrintColor$1 as SideRadioAccordionPrintColor, type SideRadioAccordionProps, TNB, type TNBProps, Tag, type TagProps, TextButton, type TextButtonProps, type TimeSlot, type TimeSlotState, Timetable, type PrintColor as TimetablePrintColor, type TimetableProps, TitleInput, type TitleInputProps, Toast, type ToastProps, type UpperPartItem, type Week, WeekNavigation, type WeekNavigationProps, getInputStyles };
|
|
548
|
+
export { BackButton, type BackButtonProps, BasicFormField, type BasicFormFieldProps, CTA, type CTAProps, CategorySegment, type CategorySegmentProps, CategorySegmentedControl, type CategorySegmentedControlProps, Column, ColumnContentContainer, type ColumnContentContainerProps, ColumnDescription, ColumnDescriptionList, type ColumnDescriptionListProps, type ColumnDescriptionProps, ColumnLabel, type ColumnLabelProps, type ColumnProps, ColumnSubTitle, type ColumnSubTitleProps, ColumnText, type ColumnTextProps, ColumnTextStyle, type DayColumn, Dropdown, type DropdownProps, FormCheckBox, type FormCheckBoxProps, FormColor, type FormColorProps, FormFile, type FormFileProps, FormNumber, type FormNumberProps, FormPassword, type FormPasswordProps, FormSelectBox, type FormSelectBoxProps, FormTel, type FormTelProps, FormText, FormTextArea, type FormTextAreaProps, type FormTextProps, IconCheck, IconChevronDownXS, IconClose, IconCompass, IconExclamation, IconInfo, IconRadioSelected, IconRadioUnselected, type LinkComponent, List, type ListProps, type LowerPartItem, Modal, type ModalProps, ModalText, type ModalTextProps, ModalTextStyle, MultiColumn, type NavIcon, NoticeBadge, type NoticeBadgeProps, type NoticeBadgeVariable, NoticeBar, type NoticeBarBadgeVariable, type NoticeBarProps, type NoticeBarVariable, type RadioToggle, SearchBar, type SearchBarProps, SelectBoxOption, type SelectBoxOptionProps, SideRadioAccordion, type PrintColor$1 as SideRadioAccordionPrintColor, type SideRadioAccordionProps, TNB, type TNBProps, Tag, type TagProps, TextButton, type TextButtonProps, type TimeSlot, type TimeSlotState, Timetable, type PrintColor as TimetablePrintColor, type TimetableProps, TitleInput, type TitleInputProps, Toast, type ToastProps, type UpperPartItem, type Week, WeekNavigation, type WeekNavigationProps, getInputStyles };
|
package/dist/index.js
CHANGED
|
@@ -46,8 +46,12 @@ __export(index_exports, {
|
|
|
46
46
|
FormTextArea: () => FormTextArea,
|
|
47
47
|
IconCheck: () => IconCheck,
|
|
48
48
|
IconChevronDownXS: () => IconChevronDownXS,
|
|
49
|
+
IconClose: () => IconClose,
|
|
49
50
|
IconCompass: () => IconCompass,
|
|
51
|
+
IconExclamation: () => IconExclamation,
|
|
50
52
|
IconInfo: () => IconInfo,
|
|
53
|
+
IconRadioSelected: () => IconRadioSelected,
|
|
54
|
+
IconRadioUnselected: () => IconRadioUnselected,
|
|
51
55
|
List: () => List,
|
|
52
56
|
Modal: () => Modal,
|
|
53
57
|
ModalText: () => ModalText,
|
|
@@ -244,6 +248,89 @@ var IconCompass = ({ className, fill }) => {
|
|
|
244
248
|
}
|
|
245
249
|
);
|
|
246
250
|
};
|
|
251
|
+
var IconRadioSelected = ({
|
|
252
|
+
className,
|
|
253
|
+
stroke,
|
|
254
|
+
fill
|
|
255
|
+
}) => {
|
|
256
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
257
|
+
"svg",
|
|
258
|
+
{
|
|
259
|
+
className,
|
|
260
|
+
width: "16",
|
|
261
|
+
height: "16",
|
|
262
|
+
viewBox: "0 0 16 16",
|
|
263
|
+
fill: "none",
|
|
264
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
265
|
+
children: [
|
|
266
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "8", cy: "8", r: "7", stroke: stroke || "#121212" }),
|
|
267
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "8", cy: "8", r: "4", fill: fill || "#121212" })
|
|
268
|
+
]
|
|
269
|
+
}
|
|
270
|
+
);
|
|
271
|
+
};
|
|
272
|
+
var IconRadioUnselected = ({
|
|
273
|
+
className,
|
|
274
|
+
stroke
|
|
275
|
+
}) => {
|
|
276
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
277
|
+
"svg",
|
|
278
|
+
{
|
|
279
|
+
className,
|
|
280
|
+
width: "16",
|
|
281
|
+
height: "16",
|
|
282
|
+
viewBox: "0 0 16 16",
|
|
283
|
+
fill: "none",
|
|
284
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
285
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "8", cy: "8", r: "7", stroke: stroke || "#B4B9C2" })
|
|
286
|
+
}
|
|
287
|
+
);
|
|
288
|
+
};
|
|
289
|
+
var IconExclamation = ({ className, fill }) => {
|
|
290
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
291
|
+
"svg",
|
|
292
|
+
{
|
|
293
|
+
className,
|
|
294
|
+
width: "12",
|
|
295
|
+
height: "12",
|
|
296
|
+
viewBox: "0 0 12 12",
|
|
297
|
+
fill: "none",
|
|
298
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
299
|
+
children: [
|
|
300
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
301
|
+
"path",
|
|
302
|
+
{
|
|
303
|
+
d: "M6.41438 7.18735H5.57954L5.50175 3.10938H6.49218L6.41438 7.18735ZM5.40001 8.3313C5.39801 8.23061 5.42395 8.13738 5.47781 8.05161C5.53167 7.96583 5.60448 7.89777 5.69624 7.84743C5.79 7.79708 5.89174 7.77191 6.00145 7.77191C6.10718 7.77191 6.20592 7.79708 6.29768 7.84743C6.38945 7.89777 6.46226 7.96583 6.51612 8.05161C6.57197 8.13738 6.5999 8.23061 6.5999 8.3313C6.5999 8.43199 6.57197 8.52522 6.51612 8.611C6.46226 8.69677 6.38945 8.76483 6.29768 8.81518C6.20592 8.86552 6.10718 8.89069 6.00145 8.89069C5.89174 8.89069 5.79 8.86552 5.69624 8.81518C5.60448 8.76483 5.53167 8.69677 5.47781 8.611C5.42395 8.52522 5.39801 8.43199 5.40001 8.3313Z",
|
|
304
|
+
fill: fill || "#505865"
|
|
305
|
+
}
|
|
306
|
+
),
|
|
307
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "6", cy: "6", r: "4.5", stroke: fill || "#505865" })
|
|
308
|
+
]
|
|
309
|
+
}
|
|
310
|
+
);
|
|
311
|
+
};
|
|
312
|
+
var IconClose = ({ className, stroke }) => {
|
|
313
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
314
|
+
"svg",
|
|
315
|
+
{
|
|
316
|
+
className,
|
|
317
|
+
width: "16",
|
|
318
|
+
height: "16",
|
|
319
|
+
viewBox: "0 0 16 16",
|
|
320
|
+
fill: "none",
|
|
321
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
322
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
323
|
+
"path",
|
|
324
|
+
{
|
|
325
|
+
d: "M4 4L12 12M12 4L4 12",
|
|
326
|
+
stroke: stroke || "#6d7683",
|
|
327
|
+
strokeWidth: "1.5",
|
|
328
|
+
strokeLinecap: "round"
|
|
329
|
+
}
|
|
330
|
+
)
|
|
331
|
+
}
|
|
332
|
+
);
|
|
333
|
+
};
|
|
247
334
|
|
|
248
335
|
// src/components/BackButton/BackButton.tsx
|
|
249
336
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
@@ -931,30 +1018,49 @@ function List({
|
|
|
931
1018
|
|
|
932
1019
|
// src/components/Modal/Modal.tsx
|
|
933
1020
|
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
934
|
-
var ModalBase = ({ isVisible, header, children, className }) => {
|
|
1021
|
+
var ModalBase = ({ isVisible, header, children, className, onClose }) => {
|
|
935
1022
|
if (!isVisible) return null;
|
|
936
|
-
return /* @__PURE__ */ (0, import_jsx_runtime25.
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
1023
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: cn("fixed inset-0 z-50"), children: [
|
|
1024
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1025
|
+
"div",
|
|
1026
|
+
{
|
|
1027
|
+
"aria-hidden": true,
|
|
1028
|
+
onClick: onClose,
|
|
1029
|
+
className: cn("fixed inset-0 z-1000 bg-[#212121]/30", onClose && "cursor-pointer")
|
|
1030
|
+
}
|
|
1031
|
+
),
|
|
1032
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "fixed inset-0 z-1001 flex items-center justify-center pointer-events-none", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
1033
|
+
"main",
|
|
1034
|
+
{
|
|
1035
|
+
role: "dialog",
|
|
1036
|
+
"aria-modal": "true",
|
|
1037
|
+
className: cn(
|
|
1038
|
+
"relative w-110 pt-8 h-fit pointer-events-auto",
|
|
1039
|
+
"flex flex-col items-center",
|
|
1040
|
+
"border border-gray02",
|
|
1041
|
+
"bg-white shadow-[0px_0px_30px_0px_rgba(0,0,0,0.08)]",
|
|
1042
|
+
className
|
|
1043
|
+
),
|
|
1044
|
+
children: [
|
|
1045
|
+
onClose && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1046
|
+
"button",
|
|
1047
|
+
{
|
|
1048
|
+
type: "button",
|
|
1049
|
+
onClick: onClose,
|
|
1050
|
+
"aria-label": "\uB2EB\uAE30",
|
|
1051
|
+
className: cn(
|
|
1052
|
+
"absolute right-3 top-3 flex size-8 items-center justify-center",
|
|
1053
|
+
"text-tertiary transition-colors hover:bg-gray00 active:bg-gray01 cursor-pointer"
|
|
1054
|
+
),
|
|
1055
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(IconClose, {})
|
|
1056
|
+
}
|
|
949
1057
|
),
|
|
950
|
-
children:
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
}
|
|
957
|
-
) });
|
|
1058
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("h1", { className: cn("text-strong font-[500] text-[24px] leading-[32px]"), children: header }),
|
|
1059
|
+
children
|
|
1060
|
+
]
|
|
1061
|
+
}
|
|
1062
|
+
) })
|
|
1063
|
+
] });
|
|
958
1064
|
};
|
|
959
1065
|
var Contents = ({ children, className }) => {
|
|
960
1066
|
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
@@ -1206,18 +1312,6 @@ function useControllableState(controlled, defaultValue) {
|
|
|
1206
1312
|
return [value, setValue, isControlled];
|
|
1207
1313
|
}
|
|
1208
1314
|
|
|
1209
|
-
// src/components/SideRadioAccordion/Exclamation.svg
|
|
1210
|
-
var Exclamation_default = "./Exclamation-IUYZYYC4.svg";
|
|
1211
|
-
|
|
1212
|
-
// src/components/SideRadioAccordion/ChevronDown.svg
|
|
1213
|
-
var ChevronDown_default = "./ChevronDown-XSALXCW4.svg";
|
|
1214
|
-
|
|
1215
|
-
// src/components/SideRadioAccordion/RadioSelected.svg
|
|
1216
|
-
var RadioSelected_default = "./RadioSelected-DOLVV7ZM.svg";
|
|
1217
|
-
|
|
1218
|
-
// src/components/SideRadioAccordion/RadioUnselected.svg
|
|
1219
|
-
var RadioUnselected_default = "./RadioUnselected-QN74EU46.svg";
|
|
1220
|
-
|
|
1221
1315
|
// src/components/SideRadioAccordion/SideRadioAccordion.tsx
|
|
1222
1316
|
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
1223
1317
|
var printColorBgClass = {
|
|
@@ -1308,14 +1402,7 @@ var Stepper = ({ step, title, isOpen, collapsible, onClick, className }) => {
|
|
|
1308
1402
|
className: cn(base, "cursor-pointer hover:bg-gray00 active:bg-gray01", className),
|
|
1309
1403
|
children: [
|
|
1310
1404
|
label,
|
|
1311
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
1312
|
-
"img",
|
|
1313
|
-
{
|
|
1314
|
-
src: ChevronDown_default,
|
|
1315
|
-
alt: "",
|
|
1316
|
-
className: cn("transition-transform", isOpen && "rotate-180")
|
|
1317
|
-
}
|
|
1318
|
-
)
|
|
1405
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(IconChevronDownXS, { className: cn("transition-transform", isOpen && "rotate-180") })
|
|
1319
1406
|
]
|
|
1320
1407
|
}
|
|
1321
1408
|
);
|
|
@@ -1342,8 +1429,9 @@ var RadioToggleItem = ({
|
|
|
1342
1429
|
onClick: onSelect,
|
|
1343
1430
|
style,
|
|
1344
1431
|
className: cn(
|
|
1345
|
-
"w-full flex items-center gap-1.5 p-3",
|
|
1346
|
-
"text-body1-regular text-
|
|
1432
|
+
"group w-full flex items-center gap-1.5 p-3",
|
|
1433
|
+
"text-body1-regular text-left cursor-pointer",
|
|
1434
|
+
open ? "text-strong" : "text-secondary",
|
|
1347
1435
|
rowBg,
|
|
1348
1436
|
className
|
|
1349
1437
|
),
|
|
@@ -1355,7 +1443,7 @@ var RadioToggleItem = ({
|
|
|
1355
1443
|
),
|
|
1356
1444
|
open && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex flex-col gap-2 px-3 py-3 bg-white", children: [
|
|
1357
1445
|
/* @__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)) }),
|
|
1446
|
+
badges && badges.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "flex flex-wrap gap-1", children: badges.map((badge) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Badge, { label: badge }, badge)) }),
|
|
1359
1447
|
labelTextButton && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
1360
1448
|
TextButton2,
|
|
1361
1449
|
{
|
|
@@ -1369,13 +1457,21 @@ var RadioToggleItem = ({
|
|
|
1369
1457
|
] });
|
|
1370
1458
|
};
|
|
1371
1459
|
var Radio = ({ selected = false, className }) => {
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1460
|
+
const Icon = selected ? IconRadioSelected : IconRadioUnselected;
|
|
1461
|
+
return (
|
|
1462
|
+
// 디자인 스펙(Figma "radio" 5:781): 아이콘 자체 색은 고정, hover/pressed 시
|
|
1463
|
+
// 24px 원형 배경 칩만 나타난다(gray00/gray01). 부모 버튼의 group-hover/active로 동기화.
|
|
1464
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
1465
|
+
"span",
|
|
1466
|
+
{
|
|
1467
|
+
className: cn(
|
|
1468
|
+
"inline-flex size-6 shrink-0 items-center justify-center rounded-full transition-colors",
|
|
1469
|
+
"group-hover:bg-gray00 group-active:bg-gray01",
|
|
1470
|
+
className
|
|
1471
|
+
),
|
|
1472
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Icon, { className: "size-6" })
|
|
1473
|
+
}
|
|
1474
|
+
)
|
|
1379
1475
|
);
|
|
1380
1476
|
};
|
|
1381
1477
|
var TextButton2 = ({ label, onClick, showIcon = false, className }) => {
|
|
@@ -1392,7 +1488,7 @@ var TextButton2 = ({ label, onClick, showIcon = false, className }) => {
|
|
|
1392
1488
|
className
|
|
1393
1489
|
),
|
|
1394
1490
|
children: [
|
|
1395
|
-
showIcon && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
1491
|
+
showIcon && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(IconExclamation, {}),
|
|
1396
1492
|
label
|
|
1397
1493
|
]
|
|
1398
1494
|
}
|
|
@@ -1403,7 +1499,7 @@ var Badge = ({ label, className }) => {
|
|
|
1403
1499
|
"div",
|
|
1404
1500
|
{
|
|
1405
1501
|
className: cn(
|
|
1406
|
-
"w-fit h-fit px-2 py-0.5 border border-gray02",
|
|
1502
|
+
"w-fit h-fit px-2 py-0.5 border border-gray02 shrink-0 whitespace-nowrap",
|
|
1407
1503
|
"text-tertiary text-caption-book",
|
|
1408
1504
|
className
|
|
1409
1505
|
),
|
|
@@ -1808,14 +1904,10 @@ var UpperPart = ({
|
|
|
1808
1904
|
] }),
|
|
1809
1905
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-stretch", children: [
|
|
1810
1906
|
/* @__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.
|
|
1812
|
-
NavIconButton,
|
|
1813
|
-
{
|
|
1814
|
-
|
|
1815
|
-
linkComponent
|
|
1816
|
-
},
|
|
1817
|
-
icon.id ?? icon.src ?? icon.label ?? index
|
|
1818
|
-
))
|
|
1907
|
+
upperPartIconList.map((icon, index) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_react9.Fragment, { children: [
|
|
1908
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(NavIconButton, { ...icon, linkComponent }),
|
|
1909
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { "aria-hidden": true, className: "w-px self-stretch bg-gray02" })
|
|
1910
|
+
] }, icon.id ?? icon.src ?? icon.label ?? index))
|
|
1819
1911
|
] })
|
|
1820
1912
|
]
|
|
1821
1913
|
}
|
|
@@ -1837,7 +1929,9 @@ var UpperPartTab = ({
|
|
|
1837
1929
|
linkComponent,
|
|
1838
1930
|
current: selected,
|
|
1839
1931
|
className: cn(
|
|
1840
|
-
|
|
1932
|
+
// 헤더 바닥 border-b와 언더라인이 겹치도록 높이를 52px로 고정하고
|
|
1933
|
+
// justify-between으로 라벨/언더라인을 위-아래 끝에 붙인다.
|
|
1934
|
+
"inline-flex h-13 flex-col items-center justify-between pt-2.5 cursor-pointer no-underline",
|
|
1841
1935
|
"transition-colors hover:bg-gray00 active:bg-gray01",
|
|
1842
1936
|
className
|
|
1843
1937
|
),
|
|
@@ -2029,8 +2123,12 @@ var Toast = (0, import_react10.forwardRef)(function Toast2({ message, open, dura
|
|
|
2029
2123
|
FormTextArea,
|
|
2030
2124
|
IconCheck,
|
|
2031
2125
|
IconChevronDownXS,
|
|
2126
|
+
IconClose,
|
|
2032
2127
|
IconCompass,
|
|
2128
|
+
IconExclamation,
|
|
2033
2129
|
IconInfo,
|
|
2130
|
+
IconRadioSelected,
|
|
2131
|
+
IconRadioUnselected,
|
|
2034
2132
|
List,
|
|
2035
2133
|
Modal,
|
|
2036
2134
|
ModalText,
|