sellmate-design-system-react 3.0.0 → 3.1.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.
Files changed (75) hide show
  1. package/AGENTS.md +661 -0
  2. package/README.md +85 -0
  3. package/dist/components/SActionModal/README.md +41 -0
  4. package/dist/components/SBadge/README.md +25 -0
  5. package/dist/components/SBarcodeInput/README.md +64 -0
  6. package/dist/components/SButton/README.md +49 -0
  7. package/dist/components/SCalendar/README.md +42 -0
  8. package/dist/components/SCallout/README.md +29 -0
  9. package/dist/components/SCard/README.md +12 -0
  10. package/dist/components/SCheckbox/README.md +44 -0
  11. package/dist/components/SChip/README.md +57 -0
  12. package/dist/components/SChipInput/README.md +77 -0
  13. package/dist/components/SCircleProgress/README.md +35 -0
  14. package/dist/components/SConfirmModal/README.md +61 -0
  15. package/dist/components/SDatePicker/README.md +62 -0
  16. package/dist/components/SDateRangePicker/README.md +64 -0
  17. package/dist/components/SDivider/README.md +25 -0
  18. package/dist/components/SDraggableItem/README.md +40 -0
  19. package/dist/components/SDropdownButton/README.md +50 -0
  20. package/dist/components/SExpansionItem/README.md +40 -0
  21. package/dist/components/SField/README.md +91 -0
  22. package/dist/components/SFilePicker/README.md +72 -0
  23. package/dist/components/SForm/README.md +31 -0
  24. package/dist/components/SGhostButton/README.md +76 -0
  25. package/dist/components/SGnb/README.md +56 -0
  26. package/dist/components/SGuide/README.md +34 -0
  27. package/dist/components/SIcon/README.md +91 -0
  28. package/dist/components/SInput/README.md +66 -0
  29. package/dist/components/SKeyValueTable/README.md +59 -0
  30. package/dist/components/SLayout/README.md +42 -0
  31. package/dist/components/SLinearProgress/README.md +17 -0
  32. package/dist/components/SList/README.md +14 -0
  33. package/dist/components/SListItem/README.md +19 -0
  34. package/dist/components/SLoadingContainer/README.md +29 -0
  35. package/dist/components/SLoadingModal/README.md +52 -0
  36. package/dist/components/SModal/README.md +192 -0
  37. package/dist/components/SModalContainer/README.md +49 -0
  38. package/dist/components/SNumberInput/README.md +74 -0
  39. package/dist/components/SPage/README.md +25 -0
  40. package/dist/components/SPagination/README.md +40 -0
  41. package/dist/components/SPopover/README.md +54 -0
  42. package/dist/components/SPopup/README.md +38 -0
  43. package/dist/components/SPortal/README.md +51 -0
  44. package/dist/components/SRadio/README.md +57 -0
  45. package/dist/components/SRadioButton/README.md +24 -0
  46. package/dist/components/SScrollArea/README.md +16 -0
  47. package/dist/components/SSectionHeaderCard/README.md +51 -0
  48. package/dist/components/SSelect/README.md +79 -0
  49. package/dist/components/SStepper/README.md +30 -0
  50. package/dist/components/SSwitch/README.md +24 -0
  51. package/dist/components/STable/README.md +82 -0
  52. package/dist/components/STableBar/README.md +28 -0
  53. package/dist/components/STabs/README.md +37 -0
  54. package/dist/components/STag/README.md +44 -0
  55. package/dist/components/STextLink/README.md +48 -0
  56. package/dist/components/STextarea/README.md +60 -0
  57. package/dist/components/STimePicker/README.md +65 -0
  58. package/dist/components/STimeRangePicker/README.md +63 -0
  59. package/dist/components/SToast/README.md +70 -0
  60. package/dist/components/SToggle/README.md +22 -0
  61. package/dist/components/STooltip/README.md +57 -0
  62. package/dist/llms.txt +3496 -0
  63. package/dist/styles.css +209 -0
  64. package/dist/theme.css +8 -0
  65. package/eslint/index.mjs +66 -0
  66. package/eslint/lib/class-names.mjs +119 -0
  67. package/eslint/lib/table-column.mjs +53 -0
  68. package/eslint/rules/no-arbitrary-class.mjs +91 -0
  69. package/eslint/rules/no-off-scale-spacing.mjs +67 -0
  70. package/eslint/rules/no-raw-html-control.mjs +117 -0
  71. package/eslint/rules/prefer-typo-preset.mjs +73 -0
  72. package/eslint/rules/require-locale-number.mjs +78 -0
  73. package/eslint/rules/table-numeric-align.mjs +93 -0
  74. package/eslint/scale.gen.mjs +16 -0
  75. package/package.json +9 -4
@@ -0,0 +1,28 @@
1
+ # STableBar
2
+
3
+ > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
4
+
5
+ ### STableBar
6
+
7
+ #### Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `total?` | `number` | — | 전체 건수. 지정하면 "총 N 건" 을 표시한다 (천단위 구분 자동) |
12
+ | `selected?` | `number` | — | 선택 건수. 지정하면 "N건 선택" 을 표시한다 |
13
+ | `actions?` | `ReactNode` | — | 구분선 오른쪽 좌측 액션 영역 |
14
+ | `rightActions?` | `ReactNode` | — | 우측 정렬 액션 영역 |
15
+
16
+ ## Dependencies
17
+
18
+ ### Depends on
19
+
20
+ - [SDivider](../SDivider)
21
+
22
+ ### Graph
23
+
24
+ ```mermaid
25
+ graph TD;
26
+ STableBar --> SDivider
27
+ style STableBar fill:#f9f,stroke:#333,stroke-width:4px
28
+ ```
@@ -0,0 +1,37 @@
1
+ # STabs
2
+
3
+ > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
4
+
5
+ ### STabs
6
+
7
+ #### Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `value` | `string` | — | 현재 선택된 탭 value |
12
+ | `tabs` | `STabOption[]` | — | 탭 옵션 목록 |
13
+ | `size?` | `STabSize` | `'md'` | 탭 크기 (main 전용) |
14
+ | `isSub?` | `boolean` | `false` | 서브 탭(밑줄형) 스타일 |
15
+ | `vertical?` | `boolean` | `false` | 세로 배치 (sub 전용 — main 폴더형은 항상 가로) |
16
+ | `className?` | `string` | — | |
17
+ | `style?` | `CSSProperties` | — | |
18
+
19
+ #### Events
20
+
21
+ | Event | Type | Description |
22
+ |-------|------|-------------|
23
+ | `onValueChange` | `(value: string) => void` | 탭 변경 (sdUpdate) |
24
+
25
+ ## Dependencies
26
+
27
+ ### Depends on
28
+
29
+ - [STag](../STag)
30
+
31
+ ### Graph
32
+
33
+ ```mermaid
34
+ graph TD;
35
+ STabs --> STag
36
+ style STabs fill:#f9f,stroke:#333,stroke-width:4px
37
+ ```
@@ -0,0 +1,44 @@
1
+ # STag
2
+
3
+ > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
4
+
5
+ ### STag
6
+
7
+ #### Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `shape?` | `STagShape` | `'square'` | 모양 |
12
+ | `size?` | `STagSize` | `'sm'` | 크기 |
13
+ | `color?` | `STagColor` | `'grey'` | 색상 |
14
+ | `label?` | `string` | `''` | 레이블 텍스트 |
15
+ | `icon?` | `SIconName` | — | 아이콘명 |
16
+ | `iconLeft?` | `boolean` | `true` | 아이콘을 레이블 왼쪽에 배치 |
17
+ | `width?` | `string \| number` | — | 태그 너비 (숫자면 px, 문자열이면 그대로 적용). 미지정 시 콘텐츠 크기 |
18
+
19
+ ## Dependencies
20
+
21
+ ### Used by
22
+
23
+ - [SConfirmModal](../SConfirmModal)
24
+ - [SGhostButton](../SGhostButton)
25
+ - [SGnb](../SGnb)
26
+ - [STabs](../STabs)
27
+ - [STextLink](../STextLink)
28
+
29
+ ### Depends on
30
+
31
+ - [SIcon](../SIcon)
32
+
33
+ ### Graph
34
+
35
+ ```mermaid
36
+ graph TD;
37
+ STag --> SIcon
38
+ SConfirmModal --> STag
39
+ SGhostButton --> STag
40
+ SGnb --> STag
41
+ STabs --> STag
42
+ STextLink --> STag
43
+ style STag fill:#f9f,stroke:#333,stroke-width:4px
44
+ ```
@@ -0,0 +1,48 @@
1
+ # STextLink
2
+
3
+ > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
4
+
5
+ ### STextLink
6
+
7
+ #### Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `label?` | `string` | `''` | 레이블 |
12
+ | `icon?` | `SIconName` | — | 좌측 아이콘 |
13
+ | `iconColor?` | `SColor` | — | 좌측 아이콘 색상. 팔레트 키(`grey_65`, `red_95` …) 또는 임의 CSS 색상 |
14
+ | `labelClass?` | `string` | — | 레이블 span에 추가할 클래스 |
15
+ | `rightArrow?` | `STextLinkArrow` | `'none'` | 우측 화살표 |
16
+ | `underline?` | `boolean` | `false` | 밑줄 여부 |
17
+ | `disabled?` | `boolean` | `false` | 비활성 |
18
+ | `size?` | `STextLinkSize` | `'sm'` | 크기 |
19
+ | `tooltipText?` | `string` | — | 호버 시 표시할 툴팁 텍스트 (회색 STag 스타일) |
20
+
21
+ #### Events
22
+
23
+ | Event | Type | Description |
24
+ |-------|------|-------------|
25
+ | `onClick` | `() => void` | |
26
+
27
+ ## Dependencies
28
+
29
+ ### Used by
30
+
31
+ - [SChipInput](../SChipInput)
32
+ - [SPopover](../SPopover)
33
+
34
+ ### Depends on
35
+
36
+ - [SIcon](../SIcon)
37
+ - [STag](../STag)
38
+
39
+ ### Graph
40
+
41
+ ```mermaid
42
+ graph TD;
43
+ STextLink --> SIcon
44
+ STextLink --> STag
45
+ SChipInput --> STextLink
46
+ SPopover --> STextLink
47
+ style STextLink fill:#f9f,stroke:#333,stroke-width:4px
48
+ ```
@@ -0,0 +1,60 @@
1
+ # STextarea
2
+
3
+ > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
4
+
5
+ ### STextarea
6
+
7
+ #### Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `value?` | `string` | — | 값 (제어) |
12
+ | `rows?` | `number` | `3` | 행 수 |
13
+ | `rules?` | `Rule[]` | — | 유효성 규칙 — blur 시 자동 검증 |
14
+ | `status?` | `SFieldStatus` | — | 필드 상태 ('default' | 'pass' | 'error') |
15
+ | `focused?` | `boolean` | — | 포커스 상태 (제어/반영) |
16
+ | `hovered?` | `boolean` | — | 호버 상태 (제어/반영) |
17
+ | `textareaClass?` | `string` | — | 내부 textarea 요소 className |
18
+ | `textareaStyle?` | `CSSProperties` | — | 내부 textarea 요소 style |
19
+ | `label?` | `string` | — | |
20
+ | `labelWidth?` | `number \| string` | — | |
21
+ | `icon?` | `SIconName` | — | 레이블 영역 아이콘 |
22
+ | `iconColor?` | `SColor` | — | |
23
+ | `labelTooltip?` | `string` | — | 레이블 툴팁 텍스트 |
24
+ | `labelTooltipProps?` | `Partial<STooltipProps>` | — | 레이블 툴팁 상세 옵션 |
25
+ | `addonLabel?` | `string` | — | 우측 어드온 레이블 |
26
+ | `addonAlign?` | `SFieldAddonAlign` | — | 어드온 정렬 |
27
+ | `hint?` | `string` | — | |
28
+ | `error?` | `boolean` | — | |
29
+ | `errorMessage?` | `string` | — | |
30
+ | `width?` | `number \| string` | — | |
31
+ | `disabled?` | `boolean` | `false` | |
32
+ | `readOnly?` | `boolean` | `false` | |
33
+ | `className?` | `string` | — | |
34
+ | `style?` | `CSSProperties` | — | |
35
+
36
+ #### Events
37
+
38
+ | Event | Type | Description |
39
+ |-------|------|-------------|
40
+ | `onValueChange` | `(value: string) => void` | 값 변경 (sdUpdate) |
41
+ | `onChange` | `TextareaHTMLAttributes<HTMLTextAreaElement>['onChange']` | 네이티브 onChange (form-agnostic) |
42
+
43
+ ## Dependencies
44
+
45
+ ### Used by
46
+
47
+ - [SKeyValueTable](../SKeyValueTable)
48
+
49
+ ### Depends on
50
+
51
+ - [SField](../SField)
52
+
53
+ ### Graph
54
+
55
+ ```mermaid
56
+ graph TD;
57
+ STextarea --> SField
58
+ SKeyValueTable --> STextarea
59
+ style STextarea fill:#f9f,stroke:#333,stroke-width:4px
60
+ ```
@@ -0,0 +1,65 @@
1
+ # STimePicker
2
+
3
+ > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
4
+
5
+ ### STimePicker
6
+
7
+ #### Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `value?` | `string \| null` | — | 선택 시간 (HH:mm) |
12
+ | `type?` | `STimePickerType` | `'default'` | 표시 타입: default(24시간) / midday(오전·오후) |
13
+ | `size?` | `STimePickerSize` | `'sm'` | |
14
+ | `placeholder?` | `string` | `'00:00'` | |
15
+ | `disabled?` | `boolean` | `false` | |
16
+ | `clearable?` | `boolean` | `false` | |
17
+ | `useMeridiem?` | `boolean` | — | 오전/오후 선택 표시 여부. 지정하지 않으면 type="midday"일 때만 켜집니다. |
18
+ | `minuteStep?` | `number` | `1` | |
19
+ | `width?` | `number \| string` | — | |
20
+ | `name?` | `string` | — | |
21
+ | `rules?` | `Rule[]` | — | |
22
+ | `status?` | `SFieldStatus` | — | |
23
+ | `label?` | `string` | — | |
24
+ | `labelWidth?` | `number \| string` | — | |
25
+ | `icon?` | `SIconName` | — | |
26
+ | `iconColor?` | `SColor` | — | |
27
+ | `labelTooltip?` | `string` | — | |
28
+ | `labelTooltipProps?` | `Partial<STooltipProps>` | — | |
29
+ | `addonLabel?` | `string` | — | |
30
+ | `addonAlign?` | `SFieldAddonAlign` | — | |
31
+ | `hint?` | `string` | — | |
32
+ | `error?` | `boolean` | — | |
33
+ | `errorMessage?` | `string` | — | |
34
+ | `className?` | `string` | — | |
35
+ | `style?` | `CSSProperties` | — | |
36
+
37
+ #### Events
38
+
39
+ | Event | Type | Description |
40
+ |-------|------|-------------|
41
+ | `onValueChange` | `(time: string \| null) => void` | 선택 변경 (sdUpdate) |
42
+ | `onOpenChange` | `(open: boolean) => void` | 열림/닫힘 변경 (sdDropDownShow) |
43
+
44
+ ## Dependencies
45
+
46
+ ### Used by
47
+
48
+ - [STimeRangePicker](../STimeRangePicker)
49
+
50
+ ### Depends on
51
+
52
+ - [SField](../SField)
53
+ - [SGhostButton](../SGhostButton)
54
+ - [SIcon](../SIcon)
55
+
56
+ ### Graph
57
+
58
+ ```mermaid
59
+ graph TD;
60
+ STimePicker --> SField
61
+ STimePicker --> SGhostButton
62
+ STimePicker --> SIcon
63
+ STimeRangePicker --> STimePicker
64
+ style STimePicker fill:#f9f,stroke:#333,stroke-width:4px
65
+ ```
@@ -0,0 +1,63 @@
1
+ # STimeRangePicker
2
+
3
+ > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
4
+
5
+ ### STimeRangePicker
6
+
7
+ #### Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `value?` | `STimeRangeValue` | — | 선택 시간 범위 [시작, 종료] (HH:mm) |
12
+ | `type?` | `STimeRangePickerType` | `'default'` | 표시 타입: default(24시간) / midday(오전·오후) |
13
+ | `size?` | `STimeRangePickerSize` | `'sm'` | |
14
+ | `placeholder?` | `string` | `'00:00 ~ 23:59'` | |
15
+ | `disabled?` | `boolean` | `false` | |
16
+ | `clearable?` | `boolean` | `false` | |
17
+ | `useMeridiem?` | `boolean` | — | 오전/오후 선택 표시 여부. 지정하지 않으면 type="midday"일 때만 켜집니다. |
18
+ | `minuteStep?` | `number` | `1` | |
19
+ | `rangeOrder?` | `STimeRangePickerRangeOrder` | `'strict'` | 범위 순서 정책. strict는 시작 시간이 종료 시간보다 늦어지지 않도록 보정합니다. |
20
+ | `width?` | `number \| string` | — | |
21
+ | `name?` | `string` | — | |
22
+ | `rules?` | `Rule[]` | — | |
23
+ | `status?` | `SFieldStatus` | — | |
24
+ | `label?` | `string` | — | |
25
+ | `labelWidth?` | `number \| string` | — | |
26
+ | `icon?` | `SIconName` | — | |
27
+ | `iconColor?` | `SColor` | — | |
28
+ | `labelTooltip?` | `string` | — | |
29
+ | `labelTooltipProps?` | `Partial<STooltipProps>` | — | |
30
+ | `addonLabel?` | `string` | — | |
31
+ | `addonAlign?` | `SFieldAddonAlign` | — | |
32
+ | `hint?` | `string` | — | |
33
+ | `error?` | `boolean` | — | |
34
+ | `errorMessage?` | `string` | — | |
35
+ | `className?` | `string` | — | |
36
+ | `style?` | `CSSProperties` | — | |
37
+
38
+ #### Events
39
+
40
+ | Event | Type | Description |
41
+ |-------|------|-------------|
42
+ | `onValueChange` | `(range: STimeRangeValue) => void` | 선택 변경 (sdUpdate) |
43
+ | `onOpenChange` | `(open: boolean) => void` | 열림/닫힘 변경 (sdDropDownShow) |
44
+
45
+ ## Dependencies
46
+
47
+ ### Depends on
48
+
49
+ - [SField](../SField)
50
+ - [SGhostButton](../SGhostButton)
51
+ - [SIcon](../SIcon)
52
+ - [STimePicker](../STimePicker)
53
+
54
+ ### Graph
55
+
56
+ ```mermaid
57
+ graph TD;
58
+ STimeRangePicker --> SField
59
+ STimeRangePicker --> SGhostButton
60
+ STimeRangePicker --> SIcon
61
+ STimeRangePicker --> STimePicker
62
+ style STimeRangePicker fill:#f9f,stroke:#333,stroke-width:4px
63
+ ```
@@ -0,0 +1,70 @@
1
+ # SToast
2
+
3
+ > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
4
+
5
+ ### SToastContainer
6
+
7
+ #### Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `position?` | `SToastPosition` | `'bottom-center'` | |
12
+ | `maxVisible?` | `number` | `3` | |
13
+ | `defaultDuration?` | `number` | `4000` | 자동 닫힘 기본 지연(ms) |
14
+ | `zIndex?` | `number` | `1100` | 스택 z-index. 기본값(1100)은 모달(1000/1001) 위 — 토스트는 전역 알림이라 항상 최상단 |
15
+
16
+ #### Events
17
+
18
+ | Event | Type | Description |
19
+ |-------|------|-------------|
20
+ | `onShow` | `(payload: { id: string }) => void` | 토스트가 표시될 때 (sdToastShow) |
21
+ | `onDismiss` | `(payload: { id: string }) => void` | 토스트가 제거될 때 (sdToastDismiss) |
22
+
23
+ #### Methods (ref)
24
+
25
+ | Method | Type | Description |
26
+ |--------|------|-------------|
27
+ | `create` | `(options: SToastNotifyOptions) => string` | |
28
+ | `dismiss` | `(id: string) => void` | |
29
+ | `dismissAll` | `() => void` | |
30
+
31
+ ### SToast
32
+
33
+ #### Props
34
+
35
+ | Prop | Type | Default | Description |
36
+ |------|------|---------|-------------|
37
+ | `icon?` | `SIconName` | — | 좌측 아이콘 |
38
+ | `message` | `string` | — | 메시지 |
39
+ | `link?` | `string` | — | 우측 링크 URL |
40
+ | `linkLabel?` | `string` | — | 링크 레이블 (없으면 URL) |
41
+ | `buttonLabel?` | `string` | — | 우측 버튼 레이블 |
42
+ | `useClose?` | `boolean` | `false` | 닫기 버튼 표시 |
43
+ | `type?` | `SToastType` | `'default'` | 타입(색상/프리셋) |
44
+ | `className?` | `string` | — | |
45
+ | `style?` | `CSSProperties` | — | |
46
+
47
+ #### Events
48
+
49
+ | Event | Type | Description |
50
+ |-------|------|-------------|
51
+ | `onClose` | `() => void` | 닫기 (sdClose) |
52
+ | `onButtonClick` | `(e: MouseEvent) => void` | 버튼 클릭 (sdButtonClick) |
53
+
54
+ ## Dependencies
55
+
56
+ ### Depends on
57
+
58
+ - [SButton](../SButton)
59
+ - [SGhostButton](../SGhostButton)
60
+ - [SIcon](../SIcon)
61
+
62
+ ### Graph
63
+
64
+ ```mermaid
65
+ graph TD;
66
+ SToast --> SButton
67
+ SToast --> SGhostButton
68
+ SToast --> SIcon
69
+ style SToast fill:#f9f,stroke:#333,stroke-width:4px
70
+ ```
@@ -0,0 +1,22 @@
1
+ # SToggle
2
+
3
+ > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
4
+
5
+ ### SToggle
6
+
7
+ #### Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `value?` | `boolean` | `false` | 선택(on/off) 상태 |
12
+ | `label?` | `string` | `''` | 라벨 |
13
+ | `disabled?` | `boolean` | `false` | 비활성 |
14
+ | `className?` | `string` | — | |
15
+ | `style?` | `CSSProperties` | — | |
16
+
17
+ #### Events
18
+
19
+ | Event | Type | Description |
20
+ |-------|------|-------------|
21
+ | `onValueChange` | `(value: boolean) => void` | 변경 (sdUpdate) |
22
+
@@ -0,0 +1,57 @@
1
+ # STooltip
2
+
3
+ > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
4
+
5
+ ### STooltip
6
+
7
+ #### Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `content?` | `ReactNode` | — | 툴팁 본문 (ReactNode). message 보다 우선 |
12
+ | `message?` | `string[]` | `[]` | 툴팁 본문 줄 목록 (각 항목이 한 줄, HTML 문자열 허용 — innerHTML 렌더링) |
13
+ | `trigger?` | `STooltipTrigger` | `'hover'` | 트리거 방식 |
14
+ | `placement?` | `STooltipPlacement` | `'top'` | 표시 방향 |
15
+ | `tooltipType?` | `STooltipType` | `'default'` | 배경/텍스트 색상 타입 |
16
+ | `useClose?` | `boolean` | `false` | 우측 상단 닫기 버튼. 켜면 자동 닫힘이 비활성화되고 X(또는 hide())로만 닫힘 (hover·click 공통) |
17
+ | `disabled?` | `boolean` | `false` | 비활성 — 트리거만 렌더하고 툴팁을 열지 않음 |
18
+ | `children?` | `ReactNode` | — | 커스텀 트리거. 없으면 아이콘 트리거를 렌더 |
19
+ | `icon?` | `SIconName` | `'helpOutline'` | 기본(아이콘) 트리거 설정 |
20
+ | `iconSize?` | `number` | `12` | |
21
+ | `color?` | `SColor` | `'#01BB4B'` | 트리거 아이콘 색상. 팔레트 키(`grey_65`, `red_95` …) 또는 임의 CSS 색상 |
22
+ | `ariaLabel?` | `string` | — | 접근성 레이블 |
23
+ | `className?` | `string` | — | |
24
+ | `triggerClassName?` | `string` | — | |
25
+ | `style?` | `CSSProperties` | — | |
26
+
27
+ #### Methods (ref)
28
+
29
+ | Method | Type | Description |
30
+ |--------|------|-------------|
31
+ | `show` | `() => void` | 툴팁을 표시합니다. |
32
+ | `hide` | `() => void` | 툴팁을 숨깁니다. |
33
+
34
+ ## Dependencies
35
+
36
+ ### Used by
37
+
38
+ - [SField](../SField)
39
+ - [SKeyValueTable](../SKeyValueTable)
40
+ - [SList](../SList)
41
+
42
+ ### Depends on
43
+
44
+ - [SGhostButton](../SGhostButton)
45
+ - [SIcon](../SIcon)
46
+
47
+ ### Graph
48
+
49
+ ```mermaid
50
+ graph TD;
51
+ STooltip --> SGhostButton
52
+ STooltip --> SIcon
53
+ SField --> STooltip
54
+ SKeyValueTable --> STooltip
55
+ SList --> STooltip
56
+ style STooltip fill:#f9f,stroke:#333,stroke-width:4px
57
+ ```