@hivcd-printshop/design-system 1.2.1 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/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.jsx)("div", { className: cn("fixed inset-0 z-50 pointer-events-auto"), children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
937
- "div",
938
- {
939
- className: cn("fixed inset-0 z-1001 flex items-center justify-center pointer-events-auto"),
940
- children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
941
- "main",
942
- {
943
- className: cn(
944
- "w-110 pt-8 h-fit",
945
- "flex flex-col items-center",
946
- "border border-gray02",
947
- "bg-white shadow-[0 0 30px 0 rgba(0, 0, 0, 0.08);]",
948
- className
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-black/10", 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
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("h1", { className: cn("text-strong font-[500] text-[24px] leading-[32px]"), children: header }),
952
- children
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
  );
@@ -1355,7 +1442,7 @@ var RadioToggleItem = ({
1355
1442
  ),
1356
1443
  open && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex flex-col gap-2 px-3 py-3 bg-white", children: [
1357
1444
  /* @__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)) }),
1445
+ 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
1446
  labelTextButton && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1360
1447
  TextButton2,
1361
1448
  {
@@ -1369,14 +1456,8 @@ var RadioToggleItem = ({
1369
1456
  ] });
1370
1457
  };
1371
1458
  var Radio = ({ selected = false, className }) => {
1372
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1373
- "img",
1374
- {
1375
- src: selected ? RadioSelected_default : RadioUnselected_default,
1376
- alt: "",
1377
- className: cn("w-6 h-6", className)
1378
- }
1379
- );
1459
+ const Icon = selected ? IconRadioSelected : IconRadioUnselected;
1460
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Icon, { className: cn("w-6 h-6", className) });
1380
1461
  };
1381
1462
  var TextButton2 = ({ label, onClick, showIcon = false, className }) => {
1382
1463
  return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
@@ -1392,7 +1473,7 @@ var TextButton2 = ({ label, onClick, showIcon = false, className }) => {
1392
1473
  className
1393
1474
  ),
1394
1475
  children: [
1395
- showIcon && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("img", { src: Exclamation_default, alt: "" }),
1476
+ showIcon && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(IconExclamation, {}),
1396
1477
  label
1397
1478
  ]
1398
1479
  }
@@ -1403,7 +1484,7 @@ var Badge = ({ label, className }) => {
1403
1484
  "div",
1404
1485
  {
1405
1486
  className: cn(
1406
- "w-fit h-fit px-2 py-0.5 border border-gray02",
1487
+ "w-fit h-fit px-2 py-0.5 border border-gray02 shrink-0 whitespace-nowrap",
1407
1488
  "text-tertiary text-caption-book",
1408
1489
  className
1409
1490
  ),
@@ -2029,8 +2110,12 @@ var Toast = (0, import_react10.forwardRef)(function Toast2({ message, open, dura
2029
2110
  FormTextArea,
2030
2111
  IconCheck,
2031
2112
  IconChevronDownXS,
2113
+ IconClose,
2032
2114
  IconCompass,
2115
+ IconExclamation,
2033
2116
  IconInfo,
2117
+ IconRadioSelected,
2118
+ IconRadioUnselected,
2034
2119
  List,
2035
2120
  Modal,
2036
2121
  ModalText,