@hivcd-printshop/design-system 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,4 +1,5 @@
1
1
  import * as react from 'react';
2
+ import react__default, { ReactNode, ComponentType, AnchorHTMLAttributes, Ref } from 'react';
2
3
 
3
4
  interface BackButtonProps {
4
5
  onClick?: () => void;
@@ -6,15 +7,241 @@ interface BackButtonProps {
6
7
  }
7
8
  declare const BackButton: ({ onClick, className }: BackButtonProps) => react.JSX.Element;
8
9
 
9
- interface CTAProps {
10
+ interface CTAProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
10
11
  primary?: boolean;
11
- variable: CTAVariable;
12
+ alert?: boolean;
13
+ disabled?: boolean;
12
14
  label: string;
13
15
  onClick?: () => void;
14
16
  className?: string;
17
+ forModal?: boolean;
15
18
  }
16
- type CTAVariable = "disabled" | "default" | "pressed";
17
- declare const CTA: ({ primary, variable, label, onClick, className, }: CTAProps) => react.JSX.Element;
19
+ declare const CTA: ({ primary, alert, disabled, label, onClick, className, forModal, ...props }: CTAProps) => react.JSX.Element;
20
+
21
+ interface BaseProps$1 {
22
+ children: ReactNode;
23
+ className?: string;
24
+ }
25
+ declare const MultiColumn: (({ children, className }: BaseProps$1) => react__default.JSX.Element) & {
26
+ Columns: ({ children, className }: BaseProps$1) => react__default.JSX.Element;
27
+ CTAs: ({ children, className }: BaseProps$1) => react__default.JSX.Element | null;
28
+ };
29
+
30
+ interface ColumnProps {
31
+ className?: string;
32
+ children: React.ReactNode;
33
+ /**
34
+ * 컬럼 상단 제목. 생략하면 제목 영역을 렌더링하지 않으며,
35
+ * 이 경우 children 안에서 `ColumnSubTitle`로 섹션 제목을 직접 배치할 수 있다.
36
+ */
37
+ header?: string;
38
+ }
39
+ declare const Column: ({ className, children, header }: ColumnProps) => react.JSX.Element;
40
+
41
+ interface ColumnContentContainerProps {
42
+ className?: string;
43
+ children: React.ReactNode;
44
+ }
45
+ declare const ColumnContentContainer: ({ className, children }: ColumnContentContainerProps) => react.JSX.Element;
46
+
47
+ interface ColumnLabelProps {
48
+ className?: string;
49
+ children: string;
50
+ subLabel?: string;
51
+ htmlFor?: string;
52
+ }
53
+ declare const ColumnLabel: ({ className, children, subLabel, htmlFor }: ColumnLabelProps) => react.JSX.Element;
54
+
55
+ interface ColumnTextProps {
56
+ className?: string;
57
+ children?: string | React.ReactNode;
58
+ onClick?: () => void;
59
+ alert?: boolean;
60
+ }
61
+ declare const ColumnTextStyle = "text-body3-book text-strong";
62
+ declare const ModalTextStyle = "text-body1-regular text-primary";
63
+ declare const ColumnText: ({ className, alert, children, onClick }: ColumnTextProps) => react.JSX.Element;
64
+
65
+ interface ColumnSubTitleProps {
66
+ className?: string;
67
+ children: React.ReactNode;
68
+ /** 우측에 부연 아이콘/버튼 등을 배치할 때 사용 (예: 도움말 아이콘) */
69
+ action?: React.ReactNode;
70
+ as?: "h2" | "h3" | "h4" | "header";
71
+ }
72
+ /**
73
+ * Column 내부의 섹션 구분용 부제목.
74
+ * 예: "예약 정보", "예약자 정보", "예약 시 주의사항"
75
+ */
76
+ declare const ColumnSubTitle: ({ className, children, action, as: Tag, }: ColumnSubTitleProps) => react.JSX.Element;
77
+
78
+ interface BasicFormFieldProps {
79
+ children: React.ReactNode;
80
+ isDanger?: boolean;
81
+ dangerText?: string;
82
+ className?: string;
83
+ }
84
+ declare const BasicFormField: ({ children, isDanger, dangerText, className, }: BasicFormFieldProps) => react.JSX.Element;
85
+ declare const getInputStyles: (isDanger?: boolean, additionalClass?: string) => string;
86
+
87
+ interface FormTextProps extends React.InputHTMLAttributes<HTMLInputElement> {
88
+ isDanger?: boolean;
89
+ dangerText?: string;
90
+ }
91
+ declare const FormText: ({ className, isDanger, dangerText, ...props }: FormTextProps) => react.JSX.Element;
92
+
93
+ interface FormTextAreaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
94
+ isDanger?: boolean;
95
+ dangerText?: string;
96
+ }
97
+ declare const FormTextArea: ({ className, isDanger, dangerText, ...props }: FormTextAreaProps) => react.JSX.Element;
98
+
99
+ interface FormNumberProps extends React.InputHTMLAttributes<HTMLInputElement> {
100
+ isDanger?: boolean;
101
+ dangerText?: string;
102
+ }
103
+ declare const FormNumber: ({ className, isDanger, dangerText, ...props }: FormNumberProps) => react.JSX.Element;
104
+
105
+ interface FormPasswordProps extends React.InputHTMLAttributes<HTMLInputElement> {
106
+ isDanger?: boolean;
107
+ dangerText?: string;
108
+ }
109
+ declare const FormPassword: ({ className, isDanger, dangerText, ...props }: FormPasswordProps) => react.JSX.Element;
110
+
111
+ interface FormTelProps extends React.InputHTMLAttributes<HTMLInputElement> {
112
+ isDanger?: boolean;
113
+ dangerText?: string;
114
+ }
115
+ declare const FormTel: ({ className, isDanger, dangerText, onChange, ...props }: FormTelProps) => react.JSX.Element;
116
+
117
+ interface FormColorProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "type"> {
118
+ isDanger?: boolean;
119
+ dangerText?: string;
120
+ }
121
+ declare const FormColor: ({ className, isDanger, dangerText, value, defaultValue, onChange, ...props }: FormColorProps) => react.JSX.Element;
122
+
123
+ interface FormFileProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "onChange"> {
124
+ isDanger?: boolean;
125
+ dangerText?: string;
126
+ fileUrl?: string;
127
+ filename?: string;
128
+ onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
129
+ }
130
+ declare const FormFile: ({ className, isDanger, dangerText, placeholder, fileUrl, filename, onChange, ...props }: FormFileProps) => react.JSX.Element;
131
+
132
+ interface FormCheckBoxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "onChange" | "checked"> {
133
+ isChecked: boolean;
134
+ setIsChecked: (checked: boolean) => void;
135
+ children?: React.ReactNode;
136
+ className?: string;
137
+ textStyle?: string;
138
+ }
139
+ declare const FormCheckBox: ({ isChecked, setIsChecked, children, className, textStyle, ...props }: FormCheckBoxProps) => react.JSX.Element;
140
+
141
+ interface FormSelectBoxProps {
142
+ options: string[];
143
+ value: string;
144
+ onChange: (option: string) => void;
145
+ placeholder?: string;
146
+ isDanger?: boolean;
147
+ dangerText?: string;
148
+ className?: string;
149
+ }
150
+ declare const FormSelectBox: ({ options, value, onChange, placeholder, isDanger, dangerText, className, }: FormSelectBoxProps) => react.JSX.Element;
151
+
152
+ interface SelectBoxOptionProps {
153
+ label: string;
154
+ onClick: () => void;
155
+ className?: string;
156
+ }
157
+ declare const SelectBoxOption: ({ label, onClick, className, }: SelectBoxOptionProps) => react.JSX.Element;
158
+
159
+ type CommonProps = {
160
+ children: React.ReactNode;
161
+ /** 텍스트 앞/뒤에 붙는 아이콘 (예: 도움말 ⓘ, 경고 아이콘) */
162
+ icon?: React.ReactNode;
163
+ iconPosition?: "left" | "right";
164
+ /** 위험/경고 강조 색상 */
165
+ alert?: boolean;
166
+ /** 밑줄 표시 여부 (기본 true) */
167
+ underline?: boolean;
168
+ className?: string;
169
+ };
170
+ type TextButtonProps = CommonProps & (({
171
+ href: string;
172
+ } & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof CommonProps>) | ({
173
+ href?: undefined;
174
+ } & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof CommonProps>));
175
+ /**
176
+ * 인라인 텍스트 버튼/링크.
177
+ * 예: "파일 제작 가이드", "파일 첨부", "더 보기", "다시 시도"
178
+ */
179
+ declare const TextButton: ({ children, icon, iconPosition, alert, underline, className, ...props }: TextButtonProps) => react.JSX.Element;
180
+
181
+ interface DropdownProps {
182
+ selectedLabel: string;
183
+ setSelectedLabel: (label: string) => void;
184
+ labels: string[];
185
+ className?: string;
186
+ }
187
+ declare const Dropdown: ({ selectedLabel, setSelectedLabel, labels, className }: DropdownProps) => react.JSX.Element;
188
+
189
+ interface TagProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
190
+ className?: string;
191
+ children: string | React.ReactNode;
192
+ selected?: boolean;
193
+ onClick?: () => void;
194
+ bgColor?: string;
195
+ }
196
+ declare const Tag: ({ className, children, selected, disabled, bgColor, onClick, ...props }: TagProps) => react.JSX.Element;
197
+
198
+ interface ListProps extends Omit<React.HTMLAttributes<HTMLLIElement>, "children"> {
199
+ className?: string;
200
+ label1?: string;
201
+ label2?: string;
202
+ label2OnClick?: () => void;
203
+ label3?: string;
204
+ disabled?: boolean;
205
+ selected?: boolean;
206
+ onClick?: () => void;
207
+ children?: React.ReactElement<TagProps> | React.ReactElement<TagProps>[];
208
+ }
209
+ declare function List({ className, label1, label2, label2OnClick, label3, disabled, selected, onClick, children, ...props }: ListProps): react.JSX.Element;
210
+
211
+ interface ModalProps {
212
+ isVisible: boolean;
213
+ header: string;
214
+ children: react__default.ReactNode;
215
+ className?: string;
216
+ }
217
+ interface BaseProps {
218
+ children: react__default.ReactNode;
219
+ className?: string;
220
+ row?: boolean;
221
+ }
222
+ declare const Modal: (({ isVisible, header, children, className }: ModalProps) => react__default.JSX.Element | null) & {
223
+ Contents: ({ children, className }: BaseProps) => react__default.JSX.Element;
224
+ CTAs: ({ children, className, row }: BaseProps) => react__default.JSX.Element | null;
225
+ };
226
+
227
+ interface ModalTextProps {
228
+ children: React.ReactNode;
229
+ className?: string;
230
+ }
231
+ declare const ModalText: ({ children, className }: ModalTextProps) => react.JSX.Element;
232
+
233
+ declare const IconChevronDownXS: ({ className, stroke, }: {
234
+ className?: string;
235
+ stroke?: string;
236
+ }) => react.JSX.Element;
237
+ declare const IconCheck: ({ className, stroke }: {
238
+ className?: string;
239
+ stroke?: string;
240
+ }) => react.JSX.Element;
241
+ declare const IconInfo: ({ className, stroke }: {
242
+ className?: string;
243
+ stroke?: string;
244
+ }) => react.JSX.Element;
18
245
 
19
246
  interface CategorySegmentProps {
20
247
  selected?: boolean;
@@ -70,9 +297,21 @@ type PrintColor$1 = "Plotter" | "Printer" | "Riso" | "Fluorescent" | "UV" | "See
70
297
  type RadioToggle = {
71
298
  title: string;
72
299
  content: string;
300
+ /**
301
+ * 선택 상태를 식별할 값. 표시 텍스트(title)와 분리하고 싶을 때 사용한다.
302
+ * 생략하면 title이 식별자로 쓰인다. onSelect도 이 값을 넘겨준다.
303
+ */
304
+ value?: string;
73
305
  badges?: string[];
74
- /** 선택됐을 때 라디오 행에 입힐 배경색. 없으면 회색(gray00)으로 표시 */
306
+ /** 선택됐을 때 라디오 행에 입힐 배경색(팔레트). `color`가 있으면 무시된다. */
75
307
  printColor?: PrintColor$1;
308
+ /**
309
+ * 선택됐을 때 라디오 행에 입힐 임의 배경색(hex/rgb/CSS 변수 등).
310
+ * 고정 팔레트(printColor) 밖의 색이 필요할 때 사용한다.
311
+ */
312
+ color?: string;
313
+ /** 라디오 행(button)에 덧붙일 클래스. 보더/그룹 구분 등 앱별 커스터마이징 훅. */
314
+ className?: string;
76
315
  labelTextButton?: string;
77
316
  onClickTextButton?: () => void;
78
317
  };
@@ -80,42 +319,55 @@ interface SideRadioAccordionProps {
80
319
  step: number;
81
320
  title: string;
82
321
  radioToggleList: RadioToggle[];
83
- /** 처음에 선택돼 있을 항목의 title */
322
+ /** controlled: 현재 선택된 항목의 value(없으면 title). `null`이면 미선택. */
323
+ selected?: string | null;
324
+ /** uncontrolled 초기 선택값. `selected`를 함께 주면 무시된다. */
84
325
  defaultSelected?: string;
85
- onSelect?: (title: string) => void;
326
+ /** 선택이 바뀔 때 호출. 인자는 항목의 value(없으면 title). */
327
+ onSelect?: (value: string) => void;
328
+ /** 헤더(Stepper)를 스크롤 컨테이너 상단에 고정한다. */
329
+ stickyHeader?: boolean;
330
+ /** 헤더 클릭으로 접기/펼치기를 허용할지. false면 항상 펼쳐지고 chevron도 감춘다. 기본 true. */
331
+ collapsible?: boolean;
332
+ /** uncontrolled 펼침 초기값. 기본 true. */
333
+ defaultOpen?: boolean;
334
+ /** controlled 펼침 상태. */
335
+ open?: boolean;
336
+ onOpenChange?: (open: boolean) => void;
86
337
  quantityLimitLabel?: string;
87
338
  onClickQuantityLimit?: () => void;
88
339
  className?: string;
89
340
  }
90
- declare const SideRadioAccordion: ({ step, title, radioToggleList, defaultSelected, onSelect, quantityLimitLabel, onClickQuantityLimit, className, }: SideRadioAccordionProps) => react.JSX.Element;
91
-
92
- interface TagProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
93
- className?: string;
94
- children: string | React.ReactNode;
95
- selected?: boolean;
96
- onClick?: () => void;
97
- bgColor?: string;
98
- }
99
- declare const Tag: ({ className, children, selected, disabled, bgColor, onClick, ...props }: TagProps) => react.JSX.Element;
341
+ declare const SideRadioAccordion: react.ForwardRefExoticComponent<SideRadioAccordionProps & react.RefAttributes<HTMLDivElement>>;
100
342
 
101
343
  type Week = "thisWeek" | "nextWeek" | "twoWeeksLater";
102
344
  interface WeekNavigationProps {
103
345
  /** 표시 중인 주의 월요일(ISO "YYYY-MM-DD"). 범위 라벨(~금요일)을 여기서 계산한다. */
104
346
  date: string;
105
- week: Week;
347
+ /** 3주 모델에 매핑되는 주차. `label`을 직접 주면 생략 가능. */
348
+ week?: Week;
349
+ /** 가운데 텍스트를 직접 지정(주어지면 week 기반 자동 라벨을 대체). */
350
+ label?: string;
351
+ /** 이전/다음 버튼 노출 여부를 명시적으로 제어. 생략 시 week로 자동 판단(thisWeek↔twoWeeksLater 경계). */
352
+ canPrev?: boolean;
353
+ canNext?: boolean;
106
354
  onPrevWeek?: () => void;
107
355
  onNextWeek?: () => void;
108
356
  className?: string;
109
357
  }
110
- declare const WeekNavigation: ({ date, week, onPrevWeek, onNextWeek, className, }: WeekNavigationProps) => react.JSX.Element;
358
+ declare const WeekNavigation: react.ForwardRefExoticComponent<WeekNavigationProps & react.RefAttributes<HTMLDivElement>>;
111
359
 
112
360
  type PrintColor = "Plotter" | "Printer" | "Riso" | "Fluorescent" | "UV" | "Seet Cutting" | "Laser Cutting";
113
361
  type TimeSlotState = "none" | "default" | "disabled" | "selected";
114
362
  interface TimeSlot {
115
363
  time: string;
116
364
  state: TimeSlotState;
117
- /** state가 "default"/"selected"일 때만 사용되는 hover 색상 */
365
+ /** state가 "default"/"selected"일 때만 사용되는 hover 색상(팔레트). `color`가 있으면 무시. */
118
366
  printColor?: PrintColor;
367
+ /** 고정 팔레트 밖의 임의 hover 색상(hex/rgb/CSS 변수 등). */
368
+ color?: string;
369
+ /** 셀(div)에 덧붙일 클래스. 보더/그룹 구분 등 앱별 커스터마이징 훅. */
370
+ className?: string;
119
371
  }
120
372
  interface DayColumn {
121
373
  /** 해당 요일의 ISO 날짜("YYYY-MM-DD") */
@@ -131,24 +383,63 @@ interface TimetableProps {
131
383
  onPrevWeek?: () => void;
132
384
  onNextWeek?: () => void;
133
385
  onSelectSlot?: (date: string, time: string) => void;
386
+ /**
387
+ * true면 열 너비가 고정폭(72px) 대신 컨테이너 폭에 맞춰 균등하게 늘어난다.
388
+ * 기존 고정폭 레이아웃이 필요하면 생략한다.
389
+ */
390
+ fluid?: boolean;
391
+ /** 상단 주간 네비게이션을 숨긴다(외부에서 별도로 렌더링할 때). */
392
+ hideWeekNavigation?: boolean;
393
+ /** 주간 네비게이션의 이전/다음 버튼 노출을 명시적으로 제어(생략 시 week로 자동 판단). */
394
+ canPrevWeek?: boolean;
395
+ canNextWeek?: boolean;
134
396
  className?: string;
135
397
  }
136
- declare const Timetable: ({ weekStart, week, days, onPrevWeek, onNextWeek, onSelectSlot, className, }: TimetableProps) => react.JSX.Element;
398
+ declare const Timetable: react.ForwardRefExoticComponent<TimetableProps & react.RefAttributes<HTMLDivElement>>;
137
399
 
400
+ /**
401
+ * href가 있는 항목을 실제 링크로 렌더링하기 위해 주입하는 컴포넌트.
402
+ * Next.js라면 `next/link`를 그대로 넘기면 된다.
403
+ * 주입하지 않으면 순수 `<a>`로 렌더링된다.
404
+ */
405
+ type LinkComponent = ComponentType<Pick<AnchorHTMLAttributes<HTMLAnchorElement>, "href" | "className" | "onClick" | "aria-current"> & {
406
+ children: ReactNode;
407
+ ref?: Ref<HTMLAnchorElement>;
408
+ }>;
138
409
  type NavIcon = {
139
- src: string;
410
+ /** 아이콘 이미지 URL. `icon`(ReactNode)과 택일해서 사용한다. */
411
+ src?: string;
412
+ /** 인라인 SVG 등 커스텀 노드. `src` 대신 사용한다. 선택 상태 대비를 위해 `currentColor` 사용을 권장. */
413
+ icon?: ReactNode;
140
414
  alt?: string;
415
+ /** 아이콘 옆에 함께 노출할 텍스트 라벨(예: "피드백"). 아이콘 없이 라벨만도 가능. */
416
+ label?: string;
417
+ /** key/상태 식별용 안정적 id(권장). 없으면 `src` → `label` 순으로 대체한다. */
418
+ id?: string;
419
+ /** 지정하면 `<a>`(또는 주입된 LinkComponent)로 렌더링된다. */
420
+ href?: string;
141
421
  onClick?: () => void;
142
- /** true면 아이콘 배경을 검게 채워 강조한다(예: 알림/마이페이지 진입 상태) */
422
+ /** true면 아이콘 배경을 검게 채워 강조한다(예: 알림/마이페이지 진입 상태). */
143
423
  selected?: boolean;
424
+ /** 알림 개수 등 우상단 뱃지. `true`면 점(dot)만 표시. */
425
+ badge?: ReactNode;
144
426
  className?: string;
427
+ /** 렌더링된 `<a>`/`<button>` 엘리먼트로 전달되는 ref(외부 클릭 감지 등에 사용). */
428
+ ref?: Ref<HTMLElement>;
145
429
  };
146
430
  type LowerPartItem = {
147
431
  label: string;
432
+ /** key/상태 식별용 안정적 id(권장). 없으면 `label`을 사용한다. */
433
+ id?: string;
434
+ /** 지정하면 `<a>`(또는 주입된 LinkComponent)로 렌더링된다. */
435
+ href?: string;
148
436
  onClick?: () => void;
149
437
  };
150
438
  type UpperPartItem = {
151
439
  label: string;
440
+ id?: string;
441
+ href?: string;
442
+ onClick?: () => void;
152
443
  /** 이 상단 탭이 선택됐을 때 아래에 노출할 하위 메뉴 */
153
444
  lowerPartItemList: LowerPartItem[];
154
445
  };
@@ -157,17 +448,49 @@ interface TNBProps {
157
448
  upperPartItemList: UpperPartItem[];
158
449
  /** 우측 알림/마이페이지 등 아이콘 목록(로고 제외) */
159
450
  upperPartIconList: NavIcon[];
160
- /** 처음에 선택돼 있을 상단 탭의 label */
451
+ /**
452
+ * controlled: 현재 선택된 상단 탭의 label.
453
+ * `null`을 넘기면 "선택된 탭 없음"(홈 등)으로 표시된다.
454
+ */
455
+ selected?: string | null;
456
+ /** uncontrolled 초기값. `selected`를 함께 넘기면 무시된다. 지정하지 않으면 선택된 탭이 없다. */
161
457
  defaultSelected?: string;
458
+ onSelectedChange?: (label: string) => void;
459
+ /** controlled: 현재 선택된 하위 메뉴 label. `null`이면 미선택. */
460
+ selectedLower?: string | null;
461
+ /** uncontrolled 초기값. */
462
+ defaultSelectedLower?: string;
463
+ onSelectedLowerChange?: (label: string) => void;
464
+ /** @deprecated `onSelectedChange`를 사용하세요. 하위 호환용 별칭입니다. */
162
465
  onSelectItem?: (label: string) => void;
466
+ /** href가 있는 항목을 렌더링할 링크 컴포넌트(Next.js면 `next/link`). */
467
+ linkComponent?: LinkComponent;
468
+ /** nav 랜드마크의 접근성 라벨. */
469
+ "aria-label"?: string;
163
470
  className?: string;
164
471
  }
165
- declare const TNB: ({ logo, upperPartItemList, upperPartIconList, defaultSelected, onSelectItem, className, }: TNBProps) => react.JSX.Element;
472
+ declare const TNB: react.ForwardRefExoticComponent<TNBProps & react.RefAttributes<HTMLElement>>;
166
473
 
167
474
  interface ToastProps {
168
475
  message: string;
476
+ /**
477
+ * 표시 여부(controlled). 생략하면 항상 표시되는 순수 렌더 모드(하위 호환).
478
+ * `true`/`false`를 넘기면 페이드 인/아웃 + 언마운트를 컴포넌트가 스스로 처리한다.
479
+ */
480
+ open?: boolean;
481
+ /**
482
+ * 자동 소멸까지의 시간(ms). `0`/`null`이면 자동 소멸하지 않는다. 기본 3000.
483
+ * `open`이 `true`로 바뀔 때마다 타이머가 재시작된다.
484
+ */
485
+ duration?: number | null;
486
+ /** 자동 소멸 시각 또는 (배너 클릭 시) 호출. controlled 모드에서 `open`을 false로 되돌리는 데 사용. */
487
+ onClose?: () => void;
488
+ /**
489
+ * 화면 고정 위치. `"none"`이면 위치 스타일을 붙이지 않고 부모 레이아웃에 맡긴다(하위 호환 기본값).
490
+ */
491
+ position?: "top" | "bottom" | "none";
169
492
  className?: string;
170
493
  }
171
- declare const Toast: ({ message, className }: ToastProps) => react.JSX.Element;
494
+ declare const Toast: react.ForwardRefExoticComponent<ToastProps & react.RefAttributes<HTMLDivElement>>;
172
495
 
173
- export { BackButton, type BackButtonProps, CTA, type CTAProps, type CTAVariable, CategorySegment, type CategorySegmentProps, CategorySegmentedControl, type CategorySegmentedControlProps, type DayColumn, type LowerPartItem, type NavIcon, NoticeBadge, type NoticeBadgeProps, type NoticeBadgeVariable, NoticeBar, type NoticeBarBadgeVariable, type NoticeBarProps, type NoticeBarVariable, type RadioToggle, SearchBar, type SearchBarProps, SideRadioAccordion, type PrintColor$1 as SideRadioAccordionPrintColor, type SideRadioAccordionProps, TNB, type TNBProps, Tag, type TagProps, type TimeSlot, type TimeSlotState, Timetable, type PrintColor as TimetablePrintColor, type TimetableProps, TitleInput, type TitleInputProps, Toast, type ToastProps, type UpperPartItem, type Week, WeekNavigation, type WeekNavigationProps };
496
+ export { BackButton, type BackButtonProps, BasicFormField, type BasicFormFieldProps, CTA, type CTAProps, CategorySegment, type CategorySegmentProps, CategorySegmentedControl, type CategorySegmentedControlProps, Column, ColumnContentContainer, type ColumnContentContainerProps, 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, 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 };