sellmate-design-system-react 9.0.0-beta.109 → 9.0.0-beta.111

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.
Files changed (118) hide show
  1. package/AGENTS.md +49 -41
  2. package/README.md +8 -8
  3. package/dist/components/SActionModal/README.md +5 -4
  4. package/dist/components/SActionModal/SActionModal.d.ts +8 -6
  5. package/dist/components/SBadge/SBadge.d.ts +1 -1
  6. package/dist/components/SBarcodeInput/README.md +1 -1
  7. package/dist/components/SBarcodeInput/SBarcodeInput.d.ts +2 -2
  8. package/dist/components/SButton/SButton.d.ts +2 -3
  9. package/dist/components/SCalendar/README.md +2 -2
  10. package/dist/components/SCalendar/SCalendar.d.ts +3 -3
  11. package/dist/components/SCalendarBoard/CalendarDayCard.d.ts +8 -0
  12. package/dist/components/SCallout/SCallout.d.ts +2 -3
  13. package/dist/components/SCard/SCard.d.ts +1 -1
  14. package/dist/components/SCheckbox/README.md +1 -1
  15. package/dist/components/SCheckbox/SCheckbox.d.ts +2 -2
  16. package/dist/components/SChip/README.md +4 -4
  17. package/dist/components/SChip/SChip.d.ts +5 -5
  18. package/dist/components/SChipInput/README.md +2 -2
  19. package/dist/components/SChipInput/SChipInput.d.ts +4 -4
  20. package/dist/components/SCircleProgress/SCircleProgress.d.ts +1 -1
  21. package/dist/components/SConfirmModal/README.md +10 -9
  22. package/dist/components/SConfirmModal/SConfirmModal.d.ts +15 -13
  23. package/dist/components/SDatePicker/README.md +2 -2
  24. package/dist/components/SDatePicker/SDatePicker.d.ts +3 -3
  25. package/dist/components/SDateRangePicker/README.md +2 -2
  26. package/dist/components/SDateRangePicker/SDateRangePicker.d.ts +3 -3
  27. package/dist/components/SDivider/SDivider.d.ts +1 -1
  28. package/dist/components/SDrawer/README.md +2 -1
  29. package/dist/components/SDrawer/SDrawer.d.ts +10 -5
  30. package/dist/components/SDropdownButton/README.md +5 -5
  31. package/dist/components/SDropdownButton/SDropdownButton.d.ts +5 -5
  32. package/dist/components/SEditor/README.md +1 -1
  33. package/dist/components/SEditor/SEditor.d.ts +1 -1
  34. package/dist/components/SField/SField.d.ts +3 -3
  35. package/dist/components/SFilePicker/README.md +2 -2
  36. package/dist/components/SFilePicker/SFilePicker.d.ts +3 -3
  37. package/dist/components/SForm/README.md +4 -4
  38. package/dist/components/SForm/SForm.d.ts +6 -6
  39. package/dist/components/SGhostButton/README.md +1 -1
  40. package/dist/components/SGhostButton/SGhostButton.d.ts +2 -2
  41. package/dist/components/SGnb/README.md +2 -2
  42. package/dist/components/SGnb/SGnb.d.ts +2 -2
  43. package/dist/components/SGuide/README.md +1 -1
  44. package/dist/components/SGuide/SGuide.d.ts +2 -2
  45. package/dist/components/SIcon/SIcon.d.ts +1 -2
  46. package/dist/components/SInput/README.md +3 -3
  47. package/dist/components/SInput/SInput.d.ts +4 -4
  48. package/dist/components/SKeyValueTable/README.md +2 -2
  49. package/dist/components/SKeyValueTable/SKeyValueTable.d.ts +3 -3
  50. package/dist/components/SLinearProgress/SLinearProgress.d.ts +1 -1
  51. package/dist/components/SLoadingContainer/README.md +1 -1
  52. package/dist/components/SLoadingContainer/SLoadingContainer.d.ts +3 -3
  53. package/dist/components/SLoadingModal/README.md +4 -3
  54. package/dist/components/SLoadingModal/SLoadingModal.d.ts +7 -5
  55. package/dist/components/SModal/README.md +7 -7
  56. package/dist/components/SModal/SModal.d.ts +4 -4
  57. package/dist/components/SModalContainer/README.md +3 -2
  58. package/dist/components/SModalContainer/SModalContainer.d.ts +12 -7
  59. package/dist/components/SNumberInput/README.md +3 -3
  60. package/dist/components/SNumberInput/SNumberInput.d.ts +4 -4
  61. package/dist/components/SPage/SPageHeader.d.ts +1 -1
  62. package/dist/components/SPagination/README.md +11 -1
  63. package/dist/components/SPagination/SPagination.d.ts +9 -3
  64. package/dist/components/SPagination/index.d.ts +1 -1
  65. package/dist/components/SPopover/README.md +1 -1
  66. package/dist/components/SPopover/SPopover.d.ts +2 -2
  67. package/dist/components/SPopup/README.md +1 -1
  68. package/dist/components/SPopup/SPopup.d.ts +2 -2
  69. package/dist/components/SPortal/README.md +6 -5
  70. package/dist/components/SPortal/SPortal.d.ts +11 -9
  71. package/dist/components/SRadio/README.md +4 -4
  72. package/dist/components/SRadio/SRadio.d.ts +3 -3
  73. package/dist/components/SRadio/SRadioGroup.d.ts +3 -3
  74. package/dist/components/SRadioButton/README.md +1 -1
  75. package/dist/components/SRadioButton/SRadioButton.d.ts +2 -2
  76. package/dist/components/SRadioCard/README.md +2 -2
  77. package/dist/components/SRadioCard/SRadioCard.d.ts +1 -1
  78. package/dist/components/SRadioCard/SRadioCardGroup.d.ts +1 -1
  79. package/dist/components/SScrollArea/SScrollArea.d.ts +1 -2
  80. package/dist/components/SSelect/README.md +4 -4
  81. package/dist/components/SSelect/SSelect.d.ts +4 -4
  82. package/dist/components/SSelect/select.config.d.ts +2 -2
  83. package/dist/components/SSlider/README.md +1 -1
  84. package/dist/components/SSlider/SSlider.d.ts +1 -1
  85. package/dist/components/SStepper/SStepper.d.ts +1 -1
  86. package/dist/components/SSwitch/README.md +1 -1
  87. package/dist/components/SSwitch/SSwitch.d.ts +2 -2
  88. package/dist/components/STable/README.md +2 -2
  89. package/dist/components/STable/STable.d.ts +4 -4
  90. package/dist/components/STabs/README.md +1 -1
  91. package/dist/components/STabs/STabs.d.ts +3 -4
  92. package/dist/components/STag/STag.d.ts +1 -2
  93. package/dist/components/STextLink/STextLink.d.ts +1 -1
  94. package/dist/components/STextarea/README.md +1 -1
  95. package/dist/components/STextarea/STextarea.d.ts +2 -2
  96. package/dist/components/STimePicker/README.md +2 -2
  97. package/dist/components/STimePicker/STimePicker.d.ts +3 -3
  98. package/dist/components/STimeRangePicker/README.md +2 -2
  99. package/dist/components/STimeRangePicker/STimeRangePicker.d.ts +3 -3
  100. package/dist/components/SToast/README.md +4 -4
  101. package/dist/components/SToast/SToast.d.ts +3 -3
  102. package/dist/components/SToast/SToastContainer.d.ts +3 -3
  103. package/dist/components/SToggle/README.md +1 -1
  104. package/dist/components/SToggle/SToggle.d.ts +2 -2
  105. package/dist/components/STooltip/STooltip.d.ts +1 -1
  106. package/dist/index.cjs +224 -134
  107. package/dist/index.cjs.map +1 -1
  108. package/dist/index.js +224 -134
  109. package/dist/index.js.map +1 -1
  110. package/dist/lib/color.d.ts +1 -1
  111. package/dist/lib/floating-anim.d.ts +2 -2
  112. package/dist/lib/floating-width.d.ts +1 -2
  113. package/dist/lib/form.d.ts +1 -1
  114. package/dist/llms-full.txt +167 -145
  115. package/dist/llms.txt +54 -56
  116. package/dist/styles.css +19 -0
  117. package/dist/theme.css +8 -5
  118. package/package.json +5 -1
@@ -1,15 +1,17 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import { type STagColor, type STagShape, type STagSize } from '../STag';
3
- export type SConfirmModalType = 'positive' | 'negative' | 'default';
3
+ export type SConfirmModalType = 'positive' | 'negative' | 'complete' | 'default';
4
4
  export interface SConfirmModalProps {
5
5
  open?: boolean;
6
6
  onOpenChange?: (open: boolean) => void;
7
- /** 백드롭·ESC로 안 닫히고 흔들림 (sd-modal-container persistent). **기본값 false** — 확인 모달은 잃을 입력이 없어 백드롭·ESC로 닫힌다 */
7
+ /** 백드롭 클릭으로 안 닫히고 흔들림. **기본값 false** — 확인 모달은 잃을 입력이 없어 백드롭으로 닫힌다 */
8
8
  persistent?: boolean;
9
- /** 타입 (아이콘·메인버튼 색 결정) */
9
+ /** ESC 로 닫는다. **기본값 true** — false 면 ESC 로 안 닫히고 흔들림 */
10
+ closeOnEscape?: boolean;
11
+ /** 타입 (아이콘·메인버튼 색 결정). positive=알림 · negative=위험 · complete=작업·절차의 끝(완료) · default=중립 */
10
12
  type?: SConfirmModalType;
11
13
  modalTitle?: string;
12
- /** 제목 엘리먼트에 추가할 클래스 (sd-confirm-modal titleClassName) */
14
+ /** 제목 엘리먼트에 추가할 클래스 */
13
15
  titleClassName?: string;
14
16
  /** 콘텐츠 박스 상단 메시지 목록 (각 항목이 한 줄, HTML 문자열 허용 — innerHTML 렌더링) */
15
17
  topMessage?: string[];
@@ -17,7 +19,7 @@ export interface SConfirmModalProps {
17
19
  bottomMessage?: string[];
18
20
  /** tag 슬롯 기본 태그 레이블 (tagSlot 미지정 시) */
19
21
  tagLabel?: string;
20
- /** 태그 프리셋 (shape/size/color) — sd-confirm-modal tagPreset 대응 */
22
+ /** 태그 프리셋 (shape/size/color) */
21
23
  tagShape?: STagShape;
22
24
  tagSize?: STagSize;
23
25
  tagColor?: STagColor;
@@ -33,13 +35,13 @@ export interface SConfirmModalProps {
33
35
  mainButtonLabel?: string;
34
36
  /**
35
37
  * 메인 버튼을 아웃라인(테두리)으로 세울지. 지정하지 않으면 `type` 이 정한다 —
36
- * positive·negative 는 채운 버튼, default 는 아웃라인.
38
+ * positive·negative 는 채운 버튼, complete·default 는 아웃라인.
37
39
  *
38
40
  * **색은 여기서 고르지 않는다.** `type` 이 정한다(positive=primary / negative=danger /
39
- * default=neutral) — 아이콘·제목이 말하는 것과 버튼 색이 어긋나면 읽는 사람이 헷갈리므로
41
+ * complete=neutral / default=neutral) — 아이콘·제목이 말하는 것과 버튼 색이 어긋나면 읽는 사람이 헷갈리므로
40
42
  * 그 조합은 타입에서 막는다. 글자는 `mainButtonLabel` 이다.
41
43
  *
42
- * `type="default"` 에 `false` 를 주면 테두리 없는 흰 버튼이 된다(neutral 은 solid·outline 이
44
+ * `type="default"`·`"complete"` 에 `false` 를 주면 테두리 없는 흰 버튼이 된다(neutral 은 solid·outline 이
43
45
  * 같은 흰 면이고 테두리 유무만 다르다). 확인 버튼이 눌러야 할 것으로 안 읽히므로 권하지 않는다.
44
46
  */
45
47
  mainButtonOutline?: boolean;
@@ -61,7 +63,7 @@ export interface SConfirmModalProps {
61
63
  * 확인 하나만 남는다.
62
64
  *
63
65
  * **`onCancel` 이 닫는 것 말고 따로 할 일이 있을 때만 준다.** 눌러도 창만 닫힌다면 X 버튼이
64
- * 이미 그 일을 하므로(X 는 늘 서 있고, `persistent` 를 켜지 않았으면 백드롭·ESC 로도 닫힌다)
66
+ * 이미 그 일을 하므로(X 는 늘 서 있고, `persistent` 를 켜지 않았으면 백드롭으로, `closeOnEscape` 를 끄지 않았으면 ESC 로도 닫힌다)
65
67
  * 같은 일을 하는 버튼을 하나 더 세우지 않는다. 되묻는 모달이라고 해서 예외가 아니다 —
66
68
  * "삭제할까요?" 에 답하지 않고 나가는 것은 X 로 충분하다.
67
69
  *
@@ -74,11 +76,11 @@ export interface SConfirmModalProps {
74
76
  * ```
75
77
  */
76
78
  subButtonLabel?: string;
77
- /** 확인 버튼 클릭 (sdOk) */
79
+ /** 확인 버튼 클릭 */
78
80
  onOk?: () => void;
79
81
  onCancel?: () => void;
80
- /** 닫기(X) 버튼 클릭 (sdClose) */
82
+ /** 닫기(X) 버튼 클릭 */
81
83
  onClose?: () => void;
82
84
  }
83
- /** SConfirmModal — sd-confirm-modal 포팅. 아이콘+제목+메시지+태그+확인/취소 버튼. */
84
- export declare function SConfirmModal({ open, onOpenChange, persistent, type, modalTitle, titleClassName, topMessage, bottomMessage, tagLabel, tagShape, tagSize, tagColor, slotLabel, tagSlot, optionSlot, contentSlot, mainButtonLabel: mainButtonLabelProp, mainButtonOutline, mainButtonDisabled, subButtonLabel, onOk, onCancel, onClose, }: SConfirmModalProps): import("react").JSX.Element;
85
+ /** SConfirmModal — 아이콘+제목+메시지+태그+확인/취소 버튼. */
86
+ export declare function SConfirmModal({ open, onOpenChange, persistent, closeOnEscape, type, modalTitle, titleClassName, topMessage, bottomMessage, tagLabel, tagShape, tagSize, tagColor, slotLabel, tagSlot, optionSlot, contentSlot, mainButtonLabel: mainButtonLabelProp, mainButtonOutline, mainButtonDisabled, subButtonLabel, onOk, onCancel, onClose, }: SConfirmModalProps): import("react").JSX.Element;
@@ -60,8 +60,8 @@
60
60
 
61
61
  | Event | Type | Description |
62
62
  |-------|------|-------------|
63
- | `onValueChange` | `(value: string \| null) => void` | 선택 변경 (sdUpdate). `clearable` 로 지우면 `null` 이 온다 |
64
- | `onViewChange` | `(view: { year: number; month: number }) => void` | 보이는 연·월 변경 (sdViewChange) |
63
+ | `onValueChange` | `(value: string \| null) => void` | 선택 변경. `clearable` 로 지우면 `null` 이 온다 |
64
+ | `onViewChange` | `(view: { year: number; month: number }) => void` | 보이는 연·월 변경 |
65
65
 
66
66
  ### SDatePickerYearListbox
67
67
 
@@ -10,9 +10,9 @@ export type SDatePickerMode = 'date' | 'month' | 'year';
10
10
  export interface SDatePickerProps {
11
11
  /** 선택 값 (date: YYYY-MM-DD, month: YYYY-MM, year: YYYY) */
12
12
  value?: string | null;
13
- /** 선택 변경 (sdUpdate). `clearable` 로 지우면 `null` 이 온다 */
13
+ /** 선택 변경. `clearable` 로 지우면 `null` 이 온다 */
14
14
  onValueChange?: (value: string | null) => void;
15
- /** 보이는 연·월 변경 (sdViewChange) */
15
+ /** 보이는 연·월 변경 */
16
16
  onViewChange?: (view: {
17
17
  year: number;
18
18
  month: number;
@@ -116,5 +116,5 @@ export interface SDatePickerMonthListboxProps {
116
116
  /** SDatePickerMonthListbox — SDatePicker의 월 선택 listbox 조각.
117
117
  * 자체 트리거/팝오버 없이 연도+월 리스트만 필요한 커스텀 조합에 재사용한다. */
118
118
  export declare function SDatePickerMonthListbox({ value, anchorYear, selectable, onValueChange, onMonthSelect, className, style, }: SDatePickerMonthListboxProps): import("react").JSX.Element;
119
- /** SDatePicker — sd-date-picker 포팅. SField + SPopover(SCalendar). */
119
+ /** SDatePicker — SField + SPopover(SCalendar). */
120
120
  export declare function SDatePicker({ value, onValueChange, onViewChange, mode, size, placeholder, selectable, disabled, showWeekday, clearable, width, maxWidth, name, rules, status, label, labelPosition, subLabel, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, className, style, }: SDatePickerProps): import("react").JSX.Element;
@@ -42,8 +42,8 @@
42
42
 
43
43
  | Event | Type | Description |
44
44
  |-------|------|-------------|
45
- | `onValueChange` | `(range: SDateRangeValue) => void` | 선택 변경 (sdUpdate) — [start, end]. `clearable` 로 지우면 `null` 이 온다 |
46
- | `onViewChange` | `(view: { year: number; month: number }) => void` | 보이는 연·월 변경 (sdViewChange) |
45
+ | `onValueChange` | `(range: SDateRangeValue) => void` | 선택 변경 — [start, end]. `clearable` 로 지우면 `null` 이 온다 |
46
+ | `onViewChange` | `(view: { year: number; month: number }) => void` | 보이는 연·월 변경 |
47
47
 
48
48
  ### SRangeCalendar
49
49
 
@@ -9,9 +9,9 @@ export type SDateRangeValue = [string, string] | null;
9
9
  export type SDateRangePickerSize = SFieldSize;
10
10
  export interface SDateRangePickerProps {
11
11
  value?: SDateRangeValue;
12
- /** 선택 변경 (sdUpdate) — [start, end]. `clearable` 로 지우면 `null` 이 온다 */
12
+ /** 선택 변경 — [start, end]. `clearable` 로 지우면 `null` 이 온다 */
13
13
  onValueChange?: (range: SDateRangeValue) => void;
14
- /** 보이는 연·월 변경 (sdViewChange) */
14
+ /** 보이는 연·월 변경 */
15
15
  onViewChange?: (view: {
16
16
  year: number;
17
17
  month: number;
@@ -105,5 +105,5 @@ export interface SRangeCalendarProps {
105
105
  /** RangeCalendar — SDateRangePicker의 캘린더 부분만 떼어낸 조각. 자체 트리거/팝오버 없이
106
106
  * 캘린더 그리드만 필요한 커스텀 조합(예: 다른 트리거에 팝오버로 얹는 경우)에 재사용한다. */
107
107
  export declare function RangeCalendar({ value, selectable, maxRange, showTimePicker, onSelect, onPendingStartChange, onViewChange, }: SRangeCalendarProps): import("react").JSX.Element;
108
- /** SDateRangePicker — sd-date-range-picker 포팅. SField + SPopover(범위 캘린더). */
108
+ /** SDateRangePicker — SField + SPopover(범위 캘린더). */
109
109
  export declare function SDateRangePicker({ value, onValueChange, onViewChange, size, placeholder, selectable, maxRange, showTimePicker, showWeekday, disabled, clearable, width, maxWidth, name, rules, status, label, labelPosition, subLabel, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, className, style, }: SDateRangePickerProps): import("react").JSX.Element;
@@ -14,5 +14,5 @@ export interface SDividerProps extends HTMLAttributes<HTMLHRElement> {
14
14
  */
15
15
  height?: number | string;
16
16
  }
17
- /** SDivider — sd-divider 포팅. 색상은 `--sys-color-divider-default`. */
17
+ /** SDivider — 색상은 `--sys-color-divider-default`. */
18
18
  export declare const SDivider: import("react").ForwardRefExoticComponent<SDividerProps & import("react").RefAttributes<HTMLHRElement>>;
@@ -9,7 +9,8 @@
9
9
  | Prop | Type | Default | Description |
10
10
  |------|------|---------|-------------|
11
11
  | `open?` | `boolean` | — | 표시 여부 |
12
- | `persistent?` | `boolean` | `true` | backdrop·ESC로 닫히지 않고 흔들림 효과를 준다. **기본값 true** — Drawer는 내용을 작성·구성하는 곳이라 임의 닫힘을 막는 것이 기본이다. 닫기 경로는 X 버튼과 footer 버튼뿐이다. false로 주면 backdrop·ESC 닫기가 열린다. |
12
+ | `persistent?` | `boolean` | `true` | backdrop 클릭으로 닫히지 않고 흔들림 효과를 준다. ESC 는 `closeOnEscape` 가 따로 제어한다. **기본값 true** — Drawer는 내용을 작성·구성하는 곳이라 backdrop 으로 임의 닫히는 것을 막는 것이 기본이다. false로 주면 backdrop 클릭으로 닫힌다. |
13
+ | `closeOnEscape?` | `boolean` | `true` | ESC 로 닫는다. **기본값 true** — `persistent` 와 무관하게 ESC 는 열려 있다. false 로 주면 ESC 로 닫히지 않고 흔들림 효과를 준다. |
13
14
  | `title?` | `string` | `''` | 접근성 제목 및 헤더 제목 |
14
15
  | `width?` | `number \| string` | `572` | Drawer 너비. 기본값은 Figma drawer 기준 572px이다. 창이 이보다 좁으면 창 폭까지만 넓어진다 — 드로어가 화면 밖으로 나가지 않는다. `resizable` 로 조절한 폭은 이 값이 바뀔 때 되돌아간다 — 앱이 폭을 저장해 두었다가 다시 열 때 넘겨주면 그 폭으로 열린다. |
15
16
  | `resizable?` | `boolean` | `false` | 왼쪽 테두리를 끌어 너비를 조절할 수 있게 한다. 조절선은 패널 왼쪽 경계 전체이며 평소엔 보이지 않다가 hover·포커스·조절 중에만 드러난다(SSplitter·SGnb 와 같은 선). 포커스를 받아 방향키(Shift 는 크게)·Home·End 로도 조절된다. |
@@ -9,11 +9,16 @@ export interface SDrawerProps {
9
9
  /** 닫기(X) 버튼 클릭 */
10
10
  onClose?: () => void;
11
11
  /**
12
- * backdrop·ESC로 닫히지 않고 흔들림 효과를 준다.
13
- * **기본값 true** — Drawer는 내용을 작성·구성하는 곳이라 임의 닫힘을 막는 것이 기본이다.
14
- * 닫기 경로는 X 버튼과 footer 버튼뿐이다. false로 주면 backdrop·ESC 닫기가 열린다.
12
+ * backdrop 클릭으로 닫히지 않고 흔들림 효과를 준다. ESC 는 `closeOnEscape` 가 따로 제어한다.
13
+ * **기본값 true** — Drawer는 내용을 작성·구성하는 곳이라 backdrop 으로 임의 닫히는 것을 막는 것이 기본이다.
14
+ * false로 주면 backdrop 클릭으로 닫힌다.
15
15
  */
16
16
  persistent?: boolean;
17
+ /**
18
+ * ESC 로 닫는다. **기본값 true** — `persistent` 와 무관하게 ESC 는 열려 있다.
19
+ * false 로 주면 ESC 로 닫히지 않고 흔들림 효과를 준다.
20
+ */
21
+ closeOnEscape?: boolean;
17
22
  /** 접근성 제목 및 헤더 제목 */
18
23
  title?: string;
19
24
  /**
@@ -44,10 +49,10 @@ export interface SDrawerProps {
44
49
  style?: CSSProperties;
45
50
  }
46
51
  /**
47
- * SDrawer — Figma drawer 포팅.
52
+ * SDrawer — Figma drawer 디자인의 오버레이 패널.
48
53
  *
49
54
  * 모달과 동일한 전역 modal host와 stack을 공유한다. 따라서 Drawer가 열린 상태에서
50
55
  * 모달을 추가로 열면 새 모달이 Drawer 위에 쌓이고, Drawer 내부 floating은 전용 portal
51
56
  * container를 통해 Drawer의 backdrop 위에 표시된다.
52
57
  */
53
- export declare function SDrawer({ open, onOpenChange, onClose, persistent, title, width, resizable, minWidth, maxWidth, onWidthChange, footerLeft, button, children, className, style, }: SDrawerProps): import("react").JSX.Element;
58
+ export declare function SDrawer({ open, onOpenChange, onClose, persistent, closeOnEscape, title, width, resizable, minWidth, maxWidth, onWidthChange, footerLeft, button, children, className, style, }: SDrawerProps): import("react").JSX.Element;
@@ -22,16 +22,16 @@
22
22
 
23
23
  | Event | Type | Description |
24
24
  |-------|------|-------------|
25
- | `onItemClick` | `(value: string \| number) => void` | 메뉴 아이템 선택 (sdClick) |
26
- | `onLabelClick` | `() => void` | split 레이블 버튼 클릭 (sdButtonClick) |
27
- | `onOpenChange` | `(open: boolean) => void` | 열림/닫힘 변경 (sdDropDownShow) |
25
+ | `onItemClick` | `(value: string \| number) => void` | 메뉴 아이템 선택 |
26
+ | `onLabelClick` | `() => void` | split 레이블 버튼 클릭 |
27
+ | `onOpenChange` | `(open: boolean) => void` | 열림/닫힘 변경 |
28
28
 
29
29
  #### Methods (ref)
30
30
 
31
31
  | Method | Type | Description |
32
32
  |--------|------|-------------|
33
- | `open` | `() => void` | 드롭다운 열기 (sdOpen) |
34
- | `close` | `() => void` | 드롭다운 닫기 (sdClose) |
33
+ | `open` | `() => void` | 드롭다운 열기 |
34
+ | `close` | `() => void` | 드롭다운 닫기 |
35
35
 
36
36
  ## Types
37
37
 
@@ -11,9 +11,9 @@ export interface SDropdownButtonItem {
11
11
  disabled?: boolean;
12
12
  }
13
13
  export interface SDropdownButtonHandle {
14
- /** 드롭다운 열기 (sdOpen) */
14
+ /** 드롭다운 열기 */
15
15
  open: () => void;
16
- /** 드롭다운 닫기 (sdClose) */
16
+ /** 드롭다운 닫기 */
17
17
  close: () => void;
18
18
  }
19
19
  export interface SDropdownButtonProps {
@@ -31,11 +31,11 @@ export interface SDropdownButtonProps {
31
31
  split?: boolean;
32
32
  /** 비활성 */
33
33
  disabled?: boolean;
34
- /** 메뉴 아이템 선택 (sdClick) */
34
+ /** 메뉴 아이템 선택 */
35
35
  onItemClick?: (value: string | number) => void;
36
- /** split 레이블 버튼 클릭 (sdButtonClick) */
36
+ /** split 레이블 버튼 클릭 */
37
37
  onLabelClick?: () => void;
38
- /** 열림/닫힘 변경 (sdDropDownShow) */
38
+ /** 열림/닫힘 변경 */
39
39
  onOpenChange?: (open: boolean) => void;
40
40
  className?: string;
41
41
  style?: CSSProperties;
@@ -93,7 +93,7 @@
93
93
 
94
94
  | Event | Type | Description |
95
95
  |-------|------|-------------|
96
- | `onValueChange` | `(html: string) => void` | 값 변경 (sdUpdate) — 빈 문서면 빈 문자열을 준다 |
96
+ | `onValueChange` | `(html: string) => void` | 값 변경 — 빈 문서면 빈 문자열을 준다 |
97
97
  | `onImageUpload` | `(file: File) => Promise<string>` | 이미지 업로드 — 고른 파일을 저장하고 **표시할 URL 을 돌려준다.** 저장 위치는 앱마다 다르므로 DS 가 정하지 않는다. 이 훅이 없으면 툴바에서 이미지 항목이 빠진다 (본문에 base64 를 박지 않는다 — HTML 이 그대로 DB 로 실려 간다). |
98
98
  | `onFocus` | `() => void` | 포커스 진입 |
99
99
  | `onBlur` | `() => void` | 포커스 이탈 |
@@ -28,7 +28,7 @@ export interface SEditorProps {
28
28
  value?: string;
29
29
  /** 초기값 (비제어) — HTML 문자열 */
30
30
  defaultValue?: string;
31
- /** 값 변경 (sdUpdate) — 빈 문서면 빈 문자열을 준다 */
31
+ /** 값 변경 — 빈 문서면 빈 문자열을 준다 */
32
32
  onValueChange?: (html: string) => void;
33
33
  /** 빈 문서에 보일 안내 문구. 생략하면 `SLocaleProvider` 로케일의 기본 문구(ko: "내용을 입력해 주세요.")를 쓴다 */
34
34
  placeholder?: string;
@@ -8,7 +8,7 @@ export type SFieldSize = 'sm' | 'md';
8
8
  export type SFieldAddonAlign = 'start' | 'center' | 'end';
9
9
  export type SFieldStatus = 'default' | 'pass' | 'error';
10
10
  export type SFieldLabelPosition = 'left' | 'top';
11
- /** ref로 노출되는 UX 메서드 (sd-field @Method sdFocus 대응) */
11
+ /** ref로 노출되는 UX 메서드 */
12
12
  export interface SFieldHandle {
13
13
  /** 내부 컨트롤에 포커스하고 필드를 화면에 스크롤합니다. */
14
14
  focus: () => void;
@@ -141,8 +141,8 @@ export declare const fieldLabelId: (controlId: string) => string;
141
141
  */
142
142
  export declare function useFieldControlId(id?: string): string;
143
143
  /**
144
- * SField — sd-field 포팅. 폼 컨트롤 래퍼.
144
+ * SField — 폼 컨트롤 래퍼.
145
145
  * ★ SField 가 컨트롤 테두리 박스(border/radius/bg + hover/focus/error/disabled 상태)를 소유하고,
146
- * children(input/select 등)은 테두리 없이 그 안을 채운다. (Stencil sd-field 구조)
146
+ * children(input/select 등)은 테두리 없이 그 안을 채운다.
147
147
  */
148
148
  export declare const SField: import("react").ForwardRefExoticComponent<SFieldProps & import("react").RefAttributes<SFieldHandle>>;
@@ -45,8 +45,8 @@
45
45
 
46
46
  | Event | Type | Description |
47
47
  |-------|------|-------------|
48
- | `onValueChange` | `(value: SFilePickerValue) => void` | 파일 변경 (sdUpdate) |
49
- | `onReject` | `(detail: { files: File[]; reason: SFilePickerRejectReason }) => void` | 제한 초과 거부 (sdReject) |
48
+ | `onValueChange` | `(value: SFilePickerValue) => void` | 파일 변경 |
49
+ | `onReject` | `(detail: { files: File[]; reason: SFilePickerRejectReason }) => void` | 제한 초과 거부 |
50
50
 
51
51
  ## Types
52
52
 
@@ -9,9 +9,9 @@ export type SFilePickerValue = File[] | File | null;
9
9
  export type SFilePickerRejectReason = 'max-file-size' | 'max-total-size' | 'max-files';
10
10
  export interface SFilePickerProps {
11
11
  value?: SFilePickerValue;
12
- /** 파일 변경 (sdUpdate) */
12
+ /** 파일 변경 */
13
13
  onValueChange?: (value: SFilePickerValue) => void;
14
- /** 제한 초과 거부 (sdReject) */
14
+ /** 제한 초과 거부 */
15
15
  onReject?: (detail: {
16
16
  files: File[];
17
17
  reason: SFilePickerRejectReason;
@@ -69,5 +69,5 @@ export interface SFilePickerProps {
69
69
  className?: string;
70
70
  style?: CSSProperties;
71
71
  }
72
- /** SFilePicker — sd-file-picker 포팅. 단일/다중 파일 + 크기·개수 검증 + 칩 목록. */
72
+ /** SFilePicker — 단일/다중 파일 + 크기·개수 검증 + 칩 목록. */
73
73
  export declare function SFilePicker({ value, onValueChange, onReject, placeholder, disabled, focused, hovered, inline, multiple, showMultipleListBox, accept, maxFileSize, maxTotalSize, maxFiles, name, rules, status, size, label, labelPosition, subLabel, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, width, className, style, }: SFilePickerProps): import("react").JSX.Element;
@@ -8,7 +8,7 @@
8
8
 
9
9
  | Prop | Type | Default | Description |
10
10
  |------|------|---------|-------------|
11
- | `formClassName?` | `string` | — | form 엘리먼트에 추가할 클래스 (sd-form formClassName 대응) |
11
+ | `formClassName?` | `string` | — | form 엘리먼트에 추가할 클래스 |
12
12
  | `children?` | `ReactNode` | — | |
13
13
  | `className?` | `string` | — | |
14
14
  | `style?` | `CSSProperties` | — | |
@@ -17,8 +17,8 @@
17
17
 
18
18
  | Event | Type | Description |
19
19
  |-------|------|-------------|
20
- | `onSubmit` | `() => void` | 모든 필드 검증 통과 후 발생 (sd-form sdSubmit 대응) |
21
- | `onValidationError` | `(error: SFormValidationError) => void` | 검증 실패 시 실패한 필드 name 목록 전달 (sd-form sdValidationError 대응) |
20
+ | `onSubmit` | `() => void` | 모든 필드 검증 통과 후 발생 |
21
+ | `onValidationError` | `(error: SFormValidationError) => void` | 검증 실패 시 실패한 필드 name 목록 전달 |
22
22
 
23
23
  #### Methods (ref)
24
24
 
@@ -26,7 +26,7 @@
26
26
  |--------|------|-------------|
27
27
  | `validate` | `() => boolean` | 등록된 모든 필드를 검증하고 통과 여부를 반환 |
28
28
  | `resetValidation` | `() => void` | 모든 필드의 검증 상태만 초기화 (값은 소비자 소유) |
29
- | `reset` | `() => void` | resetValidation 별칭 — sd-form sdReset 대응. 값 리셋은 소비자(value/onChange) 책임 |
29
+ | `reset` | `() => void` | resetValidation 별칭. 값 리셋은 소비자(value/onChange) 책임 |
30
30
  | `focusFirstInvalid` | `() => void` | 첫 번째 실패 필드로 포커스 이동 |
31
31
 
32
32
  ## Types
@@ -3,30 +3,30 @@ export interface SFormValidationError {
3
3
  /** 검증에 실패한 필드 name 목록 (DOM 순서) */
4
4
  names: string[];
5
5
  }
6
- /** ref로 노출되는 폼 제어 메서드 (sd-form @Method 대응) */
6
+ /** ref로 노출되는 폼 제어 메서드 */
7
7
  export interface SFormHandle {
8
8
  /** 등록된 모든 필드를 검증하고 통과 여부를 반환 */
9
9
  validate: () => boolean;
10
10
  /** 모든 필드의 검증 상태만 초기화 (값은 소비자 소유) */
11
11
  resetValidation: () => void;
12
- /** resetValidation 별칭 — sd-form sdReset 대응. 값 리셋은 소비자(value/onChange) 책임 */
12
+ /** resetValidation 별칭. 값 리셋은 소비자(value/onChange) 책임 */
13
13
  reset: () => void;
14
14
  /** 첫 번째 실패 필드로 포커스 이동 */
15
15
  focusFirstInvalid: () => void;
16
16
  }
17
17
  export interface SFormProps {
18
- /** form 엘리먼트에 추가할 클래스 (sd-form formClassName 대응) */
18
+ /** form 엘리먼트에 추가할 클래스 */
19
19
  formClassName?: string;
20
- /** 모든 필드 검증 통과 후 발생 (sd-form sdSubmit 대응) */
20
+ /** 모든 필드 검증 통과 후 발생 */
21
21
  onSubmit?: () => void;
22
- /** 검증 실패 시 실패한 필드 name 목록 전달 (sd-form sdValidationError 대응) */
22
+ /** 검증 실패 시 실패한 필드 name 목록 전달 */
23
23
  onValidationError?: (error: SFormValidationError) => void;
24
24
  children?: ReactNode;
25
25
  className?: string;
26
26
  style?: CSSProperties;
27
27
  }
28
28
  /**
29
- * SForm — sd-form 포팅. 폼 안의 rule-bearing 컨트롤(useFormField로 등록)을 모아
29
+ * SForm — 폼 안의 rule-bearing 컨트롤(useFormField로 등록)을 모아
30
30
  * submit 시 일괄 검증한다. 하나라도 실패하면 제출을 막고 첫 실패 필드에 포커스한 뒤
31
31
  * onValidationError를 발생시킨다. 값은 여전히 소비자 소유(form-agnostic 유지).
32
32
  */
@@ -27,7 +27,7 @@
27
27
 
28
28
  | Event | Type | Description |
29
29
  |-------|------|-------------|
30
- | `onClick` | `(e: MouseEvent<HTMLButtonElement \| HTMLAnchorElement>) => void` | 클릭 (sdClick). `href` 와 함께 주면 이동 전에 불린다 |
30
+ | `onClick` | `(e: MouseEvent<HTMLButtonElement \| HTMLAnchorElement>) => void` | 클릭. `href` 와 함께 주면 이동 전에 불린다 |
31
31
 
32
32
  ## Types
33
33
 
@@ -30,7 +30,7 @@ export interface SGhostButtonProps {
30
30
  href?: string;
31
31
  /** `href` 를 여는 곳. `'_blank'` 면 `rel="noopener noreferrer"` 를 함께 붙인다 */
32
32
  target?: string;
33
- /** 클릭 (sdClick). `href` 와 함께 주면 이동 전에 불린다 */
33
+ /** 클릭. `href` 와 함께 주면 이동 전에 불린다 */
34
34
  onClick?: (e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;
35
35
  /** tooltip anchor wrapper 클래스. tooltipText가 있을 때 위치 조정용으로 사용합니다. */
36
36
  anchorClassName?: string;
@@ -40,7 +40,7 @@ export interface SGhostButtonProps {
40
40
  style?: CSSProperties;
41
41
  }
42
42
  /**
43
- * SGhostButton — sd-ghost-button 포팅. 아이콘 전용 투명 버튼.
43
+ * SGhostButton — 아이콘 전용 투명 버튼.
44
44
  * hover 시 intent 색 오버레이(5%), focus-visible 링, 옵션 툴팁(회색 STag).
45
45
  *
46
46
  * `href` 를 주면 같은 모양의 링크(`<a>`)로 그린다.
@@ -34,9 +34,9 @@
34
34
 
35
35
  | Event | Type | Description |
36
36
  |-------|------|-------------|
37
- | `onValueChange` | `(value: string) => void` | 선택 변경 (sdUpdate) |
37
+ | `onValueChange` | `(value: string) => void` | 선택 변경 |
38
38
  | `onRailChange` | `(value: string) => void` | 레일 선택 변경. 레일 아이템을 눌러 패널이 바뀔 때 알린다(선택 상태는 SGnb 가 자체 관리). |
39
- | `onFoldedChange` | `(folded: boolean) => void` | 접힘 토글 (sdFoldChange) |
39
+ | `onFoldedChange` | `(folded: boolean) => void` | 접힘 토글 |
40
40
  | `onMenuWidthChange` | `(width: number) => void` | 메뉴 폭이 확정될 때(드래그를 놓거나 방향키 조작). 드래그하는 동안에는 오지 않는다 |
41
41
 
42
42
  ## Types
@@ -102,13 +102,13 @@ export interface SGnbProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color'>
102
102
  showRail?: boolean;
103
103
  /** 현재 선택된 아이템 value */
104
104
  value?: string;
105
- /** 선택 변경 (sdUpdate) */
105
+ /** 선택 변경 */
106
106
  onValueChange?: (value: string) => void;
107
107
  /** 레일 선택 변경. 레일 아이템을 눌러 패널이 바뀔 때 알린다(선택 상태는 SGnb 가 자체 관리). */
108
108
  onRailChange?: (value: string) => void;
109
109
  /** 접힘(레일) 상태. 미지정 시 SLayout 의 folded 를 따른다. */
110
110
  folded?: boolean;
111
- /** 접힘 토글 (sdFoldChange) */
111
+ /** 접힘 토글 */
112
112
  onFoldedChange?: (folded: boolean) => void;
113
113
  /**
114
114
  * 앱런처(그리드) 버튼. 미지정 시 런처 버튼을 렌더하지 않는다.
@@ -28,7 +28,7 @@ export type SGuideType = 'tip' | 'notion';
28
28
  ### SGuideMessage
29
29
 
30
30
  ```ts
31
- /** 중첩 배열로 depth 표현 (원본 renderListItem 대응). 예: ['상위', ['하위1', '하위2']] */
31
+ /** 중첩 배열로 depth 표현. 예: ['상위', ['하위1', '하위2']] */
32
32
  export type SGuideMessage = string | SGuideMessage[];
33
33
  ```
34
34
 
@@ -1,6 +1,6 @@
1
1
  import { type CSSProperties } from 'react';
2
2
  export type SGuideType = 'tip' | 'notion';
3
- /** 중첩 배열로 depth 표현 (원본 renderListItem 대응). 예: ['상위', ['하위1', '하위2']] */
3
+ /** 중첩 배열로 depth 표현. 예: ['상위', ['하위1', '하위2']] */
4
4
  export type SGuideMessage = string | SGuideMessage[];
5
5
  export interface SGuideProps {
6
6
  /** 가이드 타입 (tip: 팝업, notion: 외부 링크) */
@@ -21,5 +21,5 @@ export interface SGuideProps {
21
21
  className?: string;
22
22
  style?: CSSProperties;
23
23
  }
24
- /** SGuide — sd-guide 포팅. tip=팝업 안내, notion=외부 링크. */
24
+ /** SGuide — tip=팝업 안내, notion=외부 링크. */
25
25
  export declare function SGuide({ type, label, message, url, popupTitle, popupWidth, className, style, }: SGuideProps): import("react").JSX.Element;
@@ -20,7 +20,6 @@ export interface SIconProps {
20
20
  style?: CSSProperties;
21
21
  }
22
22
  /**
23
- * SIcon — sd-icon 포팅.
24
- * icons.gen.tsx 의 SVG 를 currentColor 기반으로 렌더한다.
23
+ * SIcon — icons.gen.tsx 의 SVG 를 currentColor 기반으로 렌더한다.
25
24
  */
26
25
  export declare const SIcon: import("react").ForwardRefExoticComponent<SIconProps & import("react").RefAttributes<HTMLSpanElement>>;
@@ -13,8 +13,8 @@
13
13
  | `size?` | `SFieldSize` | `'sm'` | 크기 |
14
14
  | `icon?` | `SIconName` | — | 좌측 아이콘명 |
15
15
  | `iconColor?` | `SColor` | — | 좌측 아이콘 색상 |
16
- | `prefix?` | `ReactNode` | — | 입력 앞(좌측) 커스텀 노드 — 원본 slot="prefix" |
17
- | `suffix?` | `ReactNode` | — | 입력 뒤(우측) 커스텀 노드 — 원본 slot="suffix" |
16
+ | `prefix?` | `ReactNode` | — | 입력 앞(좌측) 커스텀 노드 |
17
+ | `suffix?` | `ReactNode` | — | 입력 뒤(우측) 커스텀 노드 |
18
18
  | `clearable?` | `boolean` | `false` | 지우기 버튼 |
19
19
  | `rules?` | `Rule[]` | — | 유효성 규칙 — blur 시 자동 검증 |
20
20
  | `status?` | `SFieldStatus` | — | 필드 상태 ('default' | 'pass' | 'error') |
@@ -43,7 +43,7 @@
43
43
 
44
44
  | Event | Type | Description |
45
45
  |-------|------|-------------|
46
- | `onValueChange` | `(value: string) => void` | 값 변경 (sdUpdate) — 문자열 전달 |
46
+ | `onValueChange` | `(value: string) => void` | 값 변경 — 문자열 전달 |
47
47
  | `onChange` | `InputHTMLAttributes<HTMLInputElement>['onChange']` | 네이티브 onChange (form-agnostic 연동용, RHF 등) |
48
48
 
49
49
  ## Dependencies
@@ -8,7 +8,7 @@ import { type SFieldWidth } from '../../lib/field-width';
8
8
  export interface SInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'value' | 'onChange' | 'type' | 'prefix' | 'suffix'> {
9
9
  /** 값 (제어) */
10
10
  value?: string | number;
11
- /** 값 변경 (sdUpdate) — 문자열 전달 */
11
+ /** 값 변경 — 문자열 전달 */
12
12
  onValueChange?: (value: string) => void;
13
13
  /** 네이티브 onChange (form-agnostic 연동용, RHF 등) */
14
14
  onChange?: InputHTMLAttributes<HTMLInputElement>['onChange'];
@@ -20,9 +20,9 @@ export interface SInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
20
20
  icon?: SIconName;
21
21
  /** 좌측 아이콘 색상 */
22
22
  iconColor?: SColor;
23
- /** 입력 앞(좌측) 커스텀 노드 — 원본 slot="prefix" */
23
+ /** 입력 앞(좌측) 커스텀 노드 */
24
24
  prefix?: ReactNode;
25
- /** 입력 뒤(우측) 커스텀 노드 — 원본 slot="suffix" */
25
+ /** 입력 뒤(우측) 커스텀 노드 */
26
26
  suffix?: ReactNode;
27
27
  /** 지우기 버튼 */
28
28
  clearable?: boolean;
@@ -67,5 +67,5 @@ export interface SInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
67
67
  className?: string;
68
68
  style?: CSSProperties;
69
69
  }
70
- /** SInput — sd-input 포팅. SField(테두리 박스) + borderless native input + clearable/password/icon. */
70
+ /** SInput — SField(테두리 박스) + borderless native input + clearable/password/icon. */
71
71
  export declare const SInput: import("react").ForwardRefExoticComponent<SInputProps & import("react").RefAttributes<HTMLInputElement>>;
@@ -22,8 +22,8 @@
22
22
 
23
23
  | Event | Type | Description |
24
24
  |-------|------|-------------|
25
- | `onChange` | `(detail: SKeyValueChangeDetail) => void` | 값 변경 (sdChange) |
26
- | `onSearch` | `() => void` | 검색 클릭 (sdSearch) |
25
+ | `onChange` | `(detail: SKeyValueChangeDetail) => void` | 값 변경 |
26
+ | `onSearch` | `() => void` | 검색 클릭 |
27
27
 
28
28
  ## Types
29
29
 
@@ -138,13 +138,13 @@ export interface SKeyValueTableProps {
138
138
  * 개별 필드만 예외로 두려면 그 필드의 `options.maxWidth` 를 준다 — 이 정책보다 우선한다.
139
139
  */
140
140
  fieldWidth?: 'auto' | 'fill';
141
- /** 값 변경 (sdChange) */
141
+ /** 값 변경 */
142
142
  onChange?: (detail: SKeyValueChangeDetail) => void;
143
- /** 검색 클릭 (sdSearch) */
143
+ /** 검색 클릭 */
144
144
  onSearch?: () => void;
145
145
  className?: string;
146
146
  style?: CSSProperties;
147
147
  }
148
- /** SKeyValueTable — sd-key-value-table 포팅. th/td 폼 레이아웃 + 필드 렌더러. */
148
+ /** SKeyValueTable — th/td 폼 레이아웃 + 필드 렌더러. */
149
149
  export declare function SKeyValueTable({ fields, values, dense, search, radius, bordered, fieldWidth, onChange, onSearch, className, style, }: SKeyValueTableProps): import("react").JSX.Element | null;
150
150
  export {};
@@ -21,5 +21,5 @@ export interface SLinearProgressProps {
21
21
  className?: string;
22
22
  style?: CSSProperties;
23
23
  }
24
- /** SLinearProgress — sd-linear-progress 포팅. */
24
+ /** SLinearProgress — 가로 막대 진행률. type 별 색, 진행률 없는 indeterminate 지원. */
25
25
  export declare const SLinearProgress: import("react").ForwardRefExoticComponent<SLinearProgressProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -8,7 +8,7 @@
8
8
 
9
9
  | Prop | Type | Default | Description |
10
10
  |------|------|---------|-------------|
11
- | `open?` | `boolean` | `false` | 오버레이 표시 여부 (Stencil의 show()/hide() 명령형 API → 제어 prop으로 대체) |
11
+ | `open?` | `boolean` | `false` | 오버레이 표시 여부 (제어 prop) |
12
12
  | `message?` | `string` | — | 스피너 하단 메시지 |
13
13
  | `zIndex?` | `number` | `Z_INDEX.loading` | z-index. 기본값(1200)은 토스트(1100)·모달 호스트(1000) 위 — 전체 화면을 막는 최상단 블로킹 오버레이 |
14
14
  | `className?` | `string` | — | |
@@ -1,6 +1,6 @@
1
1
  import { type CSSProperties } from 'react';
2
2
  export interface SLoadingContainerProps {
3
- /** 오버레이 표시 여부 (Stencil의 show()/hide() 명령형 API → 제어 prop으로 대체) */
3
+ /** 오버레이 표시 여부 (제어 prop) */
4
4
  open?: boolean;
5
5
  /** 스피너 하단 메시지 */
6
6
  message?: string;
@@ -10,8 +10,8 @@ export interface SLoadingContainerProps {
10
10
  style?: CSSProperties;
11
11
  }
12
12
  /**
13
- * SLoadingContainer — sd-loading-container 포팅.
14
- * 전체 화면 딤 오버레이 + inverse 스피너. React에서는 `open` 제어 prop 사용.
13
+ * SLoadingContainer — 전체 화면 딤 오버레이 + inverse 스피너. `open` 제어 prop 으로 띄운다.
14
+ * 명령형으로 띄우려면 `loading.show()` 를 쓴다.
15
15
  * body 로 portal 해 조상의 스태킹 컨텍스트에 갇히지 않고 항상 최상단에 뜨게 한다.
16
16
  */
17
17
  export declare const SLoadingContainer: import("react").ForwardRefExoticComponent<SLoadingContainerProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -9,7 +9,8 @@
9
9
  | Prop | Type | Default | Description |
10
10
  |------|------|---------|-------------|
11
11
  | `open?` | `boolean` | — | |
12
- | `persistent?` | `boolean` | — | 백드롭·ESC로 안 닫히고 흔들림 (sd-modal-container persistent). **기본값 true** |
12
+ | `persistent?` | `boolean` | — | 백드롭 클릭으로 안 닫히고 흔들림. **기본값 true** |
13
+ | `closeOnEscape?` | `boolean` | `false` | ESC 로 닫는다. **기본값 false** — 로딩 중 임의 닫힘을 막는다. true 면 ESC 로 닫힌다 |
13
14
  | `state?` | `SLoadingModalState` | `'loading'` | 상태 (loading: 스피너, error: 경고 아이콘) |
14
15
  | `progress?` | `number` | — | 진행률 (0–100) — 지정 시 determinate 스피너 |
15
16
  | `message?` | `string \| string[]` | — | 메시지 (없으면 state 기본값) |
@@ -23,8 +24,8 @@
23
24
  | Event | Type | Description |
24
25
  |-------|------|-------------|
25
26
  | `onOpenChange` | `(open: boolean) => void` | |
26
- | `onClose` | `() => void` | 닫기(X) 버튼 클릭 (sdClose) — error 상태에서만 노출 |
27
- | `onButtonClick` | `() => void` | 버튼 클릭 (sdClick) |
27
+ | `onClose` | `() => void` | 닫기(X) 버튼 클릭 — error 상태에서만 노출 |
28
+ | `onButtonClick` | `() => void` | 버튼 클릭 |
28
29
 
29
30
  ## Types
30
31