sellmate-design-system-react 2.2.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.
- package/AGENTS.md +661 -0
- package/README.md +85 -0
- package/dist/components/SActionModal/README.md +41 -0
- package/dist/components/SBadge/README.md +25 -0
- package/dist/components/SBarcodeInput/README.md +64 -0
- package/dist/components/SButton/README.md +49 -0
- package/dist/components/SCalendar/README.md +42 -0
- package/dist/components/SCallout/README.md +29 -0
- package/dist/components/SCallout/SCallout.cjs +76 -1
- package/dist/components/SCallout/SCallout.cjs.map +1 -1
- package/dist/components/SCallout/SCallout.d.ts +6 -2
- package/dist/components/SCallout/SCallout.js +76 -1
- package/dist/components/SCallout/SCallout.js.map +1 -1
- package/dist/components/SCard/README.md +12 -0
- package/dist/components/SCheckbox/README.md +44 -0
- package/dist/components/SChip/README.md +57 -0
- package/dist/components/SChipInput/README.md +77 -0
- package/dist/components/SCircleProgress/README.md +35 -0
- package/dist/components/SConfirmModal/README.md +61 -0
- package/dist/components/SDatePicker/README.md +62 -0
- package/dist/components/SDateRangePicker/README.md +64 -0
- package/dist/components/SDivider/README.md +25 -0
- package/dist/components/SDraggableItem/README.md +40 -0
- package/dist/components/SDraggableItem/SDraggableItem.cjs +3079 -0
- package/dist/components/SDraggableItem/SDraggableItem.cjs.map +1 -0
- package/dist/components/SDraggableItem/SDraggableItem.d.ts +33 -0
- package/dist/components/SDraggableItem/SDraggableItem.js +3077 -0
- package/dist/components/SDraggableItem/SDraggableItem.js.map +1 -0
- package/dist/components/SDraggableItem/index.d.ts +1 -0
- package/dist/components/SDropdownButton/README.md +50 -0
- package/dist/components/SExpansionItem/README.md +40 -0
- package/dist/components/SExpansionItem/SExpansionItem.cjs +6 -15
- package/dist/components/SExpansionItem/SExpansionItem.cjs.map +1 -1
- package/dist/components/SExpansionItem/SExpansionItem.js +6 -15
- package/dist/components/SExpansionItem/SExpansionItem.js.map +1 -1
- package/dist/components/SField/README.md +91 -0
- package/dist/components/SFilePicker/README.md +72 -0
- package/dist/components/SForm/README.md +31 -0
- package/dist/components/SGhostButton/README.md +76 -0
- package/dist/components/SGnb/README.md +56 -0
- package/dist/components/SGuide/README.md +34 -0
- package/dist/components/SIcon/README.md +91 -0
- package/dist/components/SInput/README.md +66 -0
- package/dist/components/SKeyValueTable/README.md +59 -0
- package/dist/components/SLayout/README.md +42 -0
- package/dist/components/SLinearProgress/README.md +17 -0
- package/dist/components/SList/README.md +14 -0
- package/dist/components/SList/SList.cjs +38 -0
- package/dist/components/SList/SList.cjs.map +1 -0
- package/dist/components/SList/SList.d.ts +10 -0
- package/dist/components/SList/SList.js +36 -0
- package/dist/components/SList/SList.js.map +1 -0
- package/dist/components/SList/index.d.ts +1 -0
- package/dist/components/SListItem/README.md +19 -0
- package/dist/components/SListItem/SListItem.cjs +83 -0
- package/dist/components/SListItem/SListItem.cjs.map +1 -0
- package/dist/components/SListItem/SListItem.d.ts +26 -0
- package/dist/components/SListItem/SListItem.js +81 -0
- package/dist/components/SListItem/SListItem.js.map +1 -0
- package/dist/components/SListItem/index.d.ts +1 -0
- package/dist/components/SLoadingContainer/README.md +29 -0
- package/dist/components/SLoadingModal/README.md +52 -0
- package/dist/components/SModal/README.md +192 -0
- package/dist/components/SModalContainer/README.md +49 -0
- package/dist/components/SNumberInput/README.md +74 -0
- package/dist/components/SPage/README.md +25 -0
- package/dist/components/SPagination/README.md +40 -0
- package/dist/components/SPopover/README.md +54 -0
- package/dist/components/SPopup/README.md +38 -0
- package/dist/components/SPortal/README.md +51 -0
- package/dist/components/SRadio/README.md +57 -0
- package/dist/components/SRadioButton/README.md +24 -0
- package/dist/components/SScrollArea/README.md +16 -0
- package/dist/components/SSectionHeaderCard/README.md +51 -0
- package/dist/components/SSectionHeaderCard/SSectionHeaderCard.cjs +3414 -0
- package/dist/components/SSectionHeaderCard/SSectionHeaderCard.cjs.map +1 -0
- package/dist/components/SSectionHeaderCard/SSectionHeaderCard.d.ts +32 -0
- package/dist/components/SSectionHeaderCard/SSectionHeaderCard.js +3392 -0
- package/dist/components/SSectionHeaderCard/SSectionHeaderCard.js.map +1 -0
- package/dist/components/SSectionHeaderCard/index.d.ts +1 -0
- package/dist/components/SSelect/README.md +79 -0
- package/dist/components/SStepper/README.md +30 -0
- package/dist/components/SSwitch/README.md +24 -0
- package/dist/components/STable/README.md +82 -0
- package/dist/components/STableBar/README.md +28 -0
- package/dist/components/STabs/README.md +37 -0
- package/dist/components/STag/README.md +44 -0
- package/dist/components/STextLink/README.md +48 -0
- package/dist/components/STextarea/README.md +60 -0
- package/dist/components/STimePicker/README.md +65 -0
- package/dist/components/STimeRangePicker/README.md +63 -0
- package/dist/components/SToast/README.md +70 -0
- package/dist/components/SToggle/README.md +22 -0
- package/dist/components/STooltip/README.md +57 -0
- package/dist/index.cjs +815 -419
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +815 -423
- package/dist/index.js.map +1 -1
- package/dist/llms.txt +3496 -0
- package/dist/styles.css +545 -19
- package/dist/theme.css +22 -0
- package/eslint/index.mjs +66 -0
- package/eslint/lib/class-names.mjs +119 -0
- package/eslint/lib/table-column.mjs +53 -0
- package/eslint/rules/no-arbitrary-class.mjs +91 -0
- package/eslint/rules/no-off-scale-spacing.mjs +67 -0
- package/eslint/rules/no-raw-html-control.mjs +117 -0
- package/eslint/rules/prefer-typo-preset.mjs +73 -0
- package/eslint/rules/require-locale-number.mjs +78 -0
- package/eslint/rules/table-numeric-align.mjs +93 -0
- package/eslint/scale.gen.mjs +16 -0
- package/package.json +9 -4
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# SModalContainer
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SModalContainer
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `open?` | `boolean` | — | 표시 여부 (제어) |
|
|
12
|
+
| `ariaTitle?` | `string` | `'모달'` | 접근성 제목 (스크린리더용). 시각 제목은 children이 담당 |
|
|
13
|
+
| `showClose?` | `boolean` | `false` | 우측 상단 닫기 버튼 |
|
|
14
|
+
| `persistent?` | `boolean` | `false` | true면 백드롭 클릭·ESC로 닫히지 않고 흔들림(shake) 애니메이션 (sd-modal-container persistent) |
|
|
15
|
+
| `width?` | `number \| string` | — | 너비/높이 |
|
|
16
|
+
| `height?` | `number \| string` | — | |
|
|
17
|
+
| `children?` | `ReactNode` | — | |
|
|
18
|
+
| `className?` | `string` | — | |
|
|
19
|
+
| `style?` | `CSSProperties` | — | |
|
|
20
|
+
|
|
21
|
+
#### Events
|
|
22
|
+
|
|
23
|
+
| Event | Type | Description |
|
|
24
|
+
|-------|------|-------------|
|
|
25
|
+
| `onOpenChange` | `(open: boolean) => void` | 표시 상태 변경 |
|
|
26
|
+
| `onClose` | `() => void` | 닫기(X) 버튼 클릭 시 발생 (sd-modal-container 닫기 버튼 대응) |
|
|
27
|
+
|
|
28
|
+
## Dependencies
|
|
29
|
+
|
|
30
|
+
### Used by
|
|
31
|
+
|
|
32
|
+
- [SActionModal](../SActionModal)
|
|
33
|
+
- [SConfirmModal](../SConfirmModal)
|
|
34
|
+
- [SLoadingModal](../SLoadingModal)
|
|
35
|
+
|
|
36
|
+
### Depends on
|
|
37
|
+
|
|
38
|
+
- [SGhostButton](../SGhostButton)
|
|
39
|
+
|
|
40
|
+
### Graph
|
|
41
|
+
|
|
42
|
+
```mermaid
|
|
43
|
+
graph TD;
|
|
44
|
+
SModalContainer --> SGhostButton
|
|
45
|
+
SActionModal --> SModalContainer
|
|
46
|
+
SConfirmModal --> SModalContainer
|
|
47
|
+
SLoadingModal --> SModalContainer
|
|
48
|
+
style SModalContainer fill:#f9f,stroke:#333,stroke-width:4px
|
|
49
|
+
```
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# SNumberInput
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SNumberInput
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `value?` | `string \| number \| null` | — | 입력 값 |
|
|
12
|
+
| `size?` | `SNumberInputSize` | `'sm'` | 크기 |
|
|
13
|
+
| `min?` | `number` | `Number.NEGATIVE_INFINITY` | 최솟값 |
|
|
14
|
+
| `max?` | `number` | `Number.POSITIVE_INFINITY` | 최댓값 |
|
|
15
|
+
| `step?` | `number` | `1` | 스텝 단위 |
|
|
16
|
+
| `useButton?` | `boolean` | `false` | 증감 버튼 표시 |
|
|
17
|
+
| `useDecimal?` | `boolean` | `false` | 소수점 입력 허용 |
|
|
18
|
+
| `maxDecimalLength?` | `number` | — | 소수점 이하 최대 자리수 |
|
|
19
|
+
| `inputPrefix?` | `string` | `''` | 입력 앞 접두 텍스트 |
|
|
20
|
+
| `inputSuffix?` | `string` | `''` | 입력 뒤 접미 텍스트 |
|
|
21
|
+
| `inputClass?` | `string` | — | 네이티브 input className |
|
|
22
|
+
| `inputStyle?` | `CSSProperties` | — | 네이티브 input style |
|
|
23
|
+
| `autoFocus?` | `boolean` | — | 마운트 시 자동 포커스 |
|
|
24
|
+
| `name?` | `string` | — | 폼 연동 name |
|
|
25
|
+
| `placeholder?` | `string` | `'입력해 주세요.'` | |
|
|
26
|
+
| `disabled?` | `boolean` | `false` | |
|
|
27
|
+
| `readOnly?` | `boolean` | `false` | |
|
|
28
|
+
| `rules?` | `Rule[]` | — | 유효성 규칙 — blur 시 검증 |
|
|
29
|
+
| `status?` | `SFieldStatus` | — | |
|
|
30
|
+
| `focused?` | `boolean` | — | |
|
|
31
|
+
| `hovered?` | `boolean` | — | |
|
|
32
|
+
| `label?` | `string` | — | |
|
|
33
|
+
| `labelWidth?` | `number \| string` | — | |
|
|
34
|
+
| `icon?` | `SIconName` | — | |
|
|
35
|
+
| `iconColor?` | `SColor` | — | |
|
|
36
|
+
| `labelTooltip?` | `string` | — | |
|
|
37
|
+
| `labelTooltipProps?` | `Partial<STooltipProps>` | — | |
|
|
38
|
+
| `addonLabel?` | `string` | — | |
|
|
39
|
+
| `addonAlign?` | `SFieldAddonAlign` | — | |
|
|
40
|
+
| `hint?` | `string` | — | |
|
|
41
|
+
| `error?` | `boolean` | — | |
|
|
42
|
+
| `errorMessage?` | `string` | — | |
|
|
43
|
+
| `width?` | `number \| string` | — | |
|
|
44
|
+
| `className?` | `string` | — | |
|
|
45
|
+
| `style?` | `CSSProperties` | — | |
|
|
46
|
+
|
|
47
|
+
#### Events
|
|
48
|
+
|
|
49
|
+
| Event | Type | Description |
|
|
50
|
+
|-------|------|-------------|
|
|
51
|
+
| `onValueChange` | `(value: number \| null) => void` | 값 변경 (sdUpdate) — number|null 전달 |
|
|
52
|
+
| `onFocus` | `(e: React.FocusEvent<HTMLInputElement>) => void` | 포커스 이벤트 (sdFocus) |
|
|
53
|
+
| `onBlur` | `(e: React.FocusEvent<HTMLInputElement>) => void` | 블러 이벤트 (sdBlur) |
|
|
54
|
+
|
|
55
|
+
## Dependencies
|
|
56
|
+
|
|
57
|
+
### Used by
|
|
58
|
+
|
|
59
|
+
- [SKeyValueTable](../SKeyValueTable)
|
|
60
|
+
|
|
61
|
+
### Depends on
|
|
62
|
+
|
|
63
|
+
- [SField](../SField)
|
|
64
|
+
- [SIcon](../SIcon)
|
|
65
|
+
|
|
66
|
+
### Graph
|
|
67
|
+
|
|
68
|
+
```mermaid
|
|
69
|
+
graph TD;
|
|
70
|
+
SNumberInput --> SField
|
|
71
|
+
SNumberInput --> SIcon
|
|
72
|
+
SKeyValueTable --> SNumberInput
|
|
73
|
+
style SNumberInput fill:#f9f,stroke:#333,stroke-width:4px
|
|
74
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# SPage
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SPage
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `background?` | `SPageBackground` | `'frame'` | 페이지 배경 표면. frame=흰 콘텐츠 면, neutral=옅은 회색 면, screen=앱 바탕. 스크롤바 처리도 여기 묶여 있다 — 셋 다 구분선+트랙 배경이고, 트랙 색만 neutral 에서 흰색이 된다. |
|
|
12
|
+
|
|
13
|
+
## Dependencies
|
|
14
|
+
|
|
15
|
+
### Depends on
|
|
16
|
+
|
|
17
|
+
- [SLayout](../SLayout)
|
|
18
|
+
|
|
19
|
+
### Graph
|
|
20
|
+
|
|
21
|
+
```mermaid
|
|
22
|
+
graph TD;
|
|
23
|
+
SPage --> SLayout
|
|
24
|
+
style SPage fill:#f9f,stroke:#333,stroke-width:4px
|
|
25
|
+
```
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# SPagination
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SPagination
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `currentPage?` | `number` | `1` | 현재 페이지 |
|
|
12
|
+
| `lastPage?` | `number` | `1` | 마지막 페이지 |
|
|
13
|
+
| `simple?` | `boolean` | `false` | 단순 모드 (현재/마지막만 표시) |
|
|
14
|
+
| `className?` | `string` | — | |
|
|
15
|
+
| `style?` | `CSSProperties` | — | |
|
|
16
|
+
|
|
17
|
+
#### Events
|
|
18
|
+
|
|
19
|
+
| Event | Type | Description |
|
|
20
|
+
|-------|------|-------------|
|
|
21
|
+
| `onPageChange` | `(page: number) => void` | 페이지 변경 (sdPageChange) |
|
|
22
|
+
|
|
23
|
+
## Dependencies
|
|
24
|
+
|
|
25
|
+
### Used by
|
|
26
|
+
|
|
27
|
+
- [STable](../STable)
|
|
28
|
+
|
|
29
|
+
### Depends on
|
|
30
|
+
|
|
31
|
+
- [SIcon](../SIcon)
|
|
32
|
+
|
|
33
|
+
### Graph
|
|
34
|
+
|
|
35
|
+
```mermaid
|
|
36
|
+
graph TD;
|
|
37
|
+
SPagination --> SIcon
|
|
38
|
+
STable --> SPagination
|
|
39
|
+
style SPagination fill:#f9f,stroke:#333,stroke-width:4px
|
|
40
|
+
```
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# SPopover
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SPopover
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `open?` | `boolean` | — | 표시 여부 (제어). onOpenChange 와 함께 사용 |
|
|
12
|
+
| `defaultOpen?` | `boolean` | — | 기본 표시 여부 (비제어) |
|
|
13
|
+
| `placement?` | `SPopoverPlacement` | `'bottom'` | 표시 방향 |
|
|
14
|
+
| `type?` | `SPopoverType` | `'default'` | 색상 타입 (default: 다크 / danger·warning·accent: 라이트 배경) |
|
|
15
|
+
| `menuTitle` | `string` | — | 메뉴 제목 (필수) |
|
|
16
|
+
| `titleIcon?` | `SIconName` | — | 제목 좌측 아이콘 (선택) |
|
|
17
|
+
| `children?` | `ReactNode` | — | 본문 내용 |
|
|
18
|
+
| `trigger?` | `ReactNode` | — | 커스텀 트리거. 없으면 아이콘 트리거 렌더 |
|
|
19
|
+
| `icon?` | `SIconName` | `'helpOutline'` | 기본(아이콘) 트리거 설정 |
|
|
20
|
+
| `iconSize?` | `number` | `12` | |
|
|
21
|
+
| `color?` | `SColor` | `'#01BB4B'` | 트리거 아이콘 색상. 팔레트 키(`grey_65`, `red_95` …) 또는 임의 CSS 색상 |
|
|
22
|
+
| `leftLinkLabel?` | `string` | — | 하단 좌측 링크 레이블 (선택). 스타일은 chevron 링크로 고정 |
|
|
23
|
+
| `buttonLabel` | `string` | — | 하단 우측 버튼 레이블 (필수). 색상/스타일은 type 별로 고정 |
|
|
24
|
+
| `ariaLabel?` | `string` | — | |
|
|
25
|
+
| `menuClassName?` | `string` | — | |
|
|
26
|
+
| `style?` | `CSSProperties` | — | |
|
|
27
|
+
|
|
28
|
+
#### Events
|
|
29
|
+
|
|
30
|
+
| Event | Type | Description |
|
|
31
|
+
|-------|------|-------------|
|
|
32
|
+
| `onOpenChange` | `(open: boolean) => void` | 표시 상태 변경 (sdShowChange) |
|
|
33
|
+
| `onLeftLinkClick` | `() => void` | 하단 좌측 링크 클릭 |
|
|
34
|
+
| `onButtonClick` | `() => void` | 하단 우측 버튼 클릭 |
|
|
35
|
+
|
|
36
|
+
## Dependencies
|
|
37
|
+
|
|
38
|
+
### Depends on
|
|
39
|
+
|
|
40
|
+
- [SButton](../SButton)
|
|
41
|
+
- [SGhostButton](../SGhostButton)
|
|
42
|
+
- [SIcon](../SIcon)
|
|
43
|
+
- [STextLink](../STextLink)
|
|
44
|
+
|
|
45
|
+
### Graph
|
|
46
|
+
|
|
47
|
+
```mermaid
|
|
48
|
+
graph TD;
|
|
49
|
+
SPopover --> SButton
|
|
50
|
+
SPopover --> SGhostButton
|
|
51
|
+
SPopover --> SIcon
|
|
52
|
+
SPopover --> STextLink
|
|
53
|
+
style SPopover fill:#f9f,stroke:#333,stroke-width:4px
|
|
54
|
+
```
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# SPopup
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SPopup
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `popupTitle?` | `string` | `''` | 헤더 제목 |
|
|
12
|
+
| `type?` | `SPopupType` | `'default'` | 타입 (헤더 색상) |
|
|
13
|
+
| `useFooter?` | `boolean` | `true` | 하단 footer 표시 여부 |
|
|
14
|
+
| `submitButton?` | `SPopupSubmitButton` | — | 확인 버튼 설정 |
|
|
15
|
+
| `footerLeft?` | `ReactNode` | — | footer 좌측 영역 |
|
|
16
|
+
| `children?` | `ReactNode` | — | 본문 |
|
|
17
|
+
| `className?` | `string` | — | |
|
|
18
|
+
| `style?` | `CSSProperties` | — | |
|
|
19
|
+
|
|
20
|
+
#### Events
|
|
21
|
+
|
|
22
|
+
| Event | Type | Description |
|
|
23
|
+
|-------|------|-------------|
|
|
24
|
+
| `onSubmit` | `() => void` | 확인 버튼 클릭 (sdSubmit) |
|
|
25
|
+
|
|
26
|
+
## Dependencies
|
|
27
|
+
|
|
28
|
+
### Depends on
|
|
29
|
+
|
|
30
|
+
- [SButton](../SButton)
|
|
31
|
+
|
|
32
|
+
### Graph
|
|
33
|
+
|
|
34
|
+
```mermaid
|
|
35
|
+
graph TD;
|
|
36
|
+
SPopup --> SButton
|
|
37
|
+
style SPopup fill:#f9f,stroke:#333,stroke-width:4px
|
|
38
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# SPortal
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SPortal
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `open` | `boolean` | — | 표시 여부 (제어). onClose 와 함께 사용한다. |
|
|
12
|
+
| `anchorRef` | `RefObject<HTMLElement \| null>` | — | 위치 기준이 되는 앵커 엘리먼트 ref (sd-portal `parentRef` 대응). 트리거 버튼 등에 그대로 걸면 그 엘리먼트에 붙어서 뜬다. |
|
|
13
|
+
| `placement?` | `SPortalPlacement` | `'bottom'` | 표시 방향 (공간이 부족하면 자동으로 반대 방향으로 전환). |
|
|
14
|
+
| `align?` | `SPortalAlign` | `'start'` | 교차축 정렬 (start·center·end). |
|
|
15
|
+
| `offset?` | `number` | `4` | 앵커로부터의 간격 px (sd-portal offset[1]). |
|
|
16
|
+
| `alignOffset?` | `number` | `0` | 정렬축 오프셋 px (sd-portal offset[0]). |
|
|
17
|
+
| `fit?` | `boolean` | `false` | 앵커 너비에 맞춰 최소 너비를 잡는다. |
|
|
18
|
+
| `maxHeight?` | `number` | — | 콘텐츠 최대 높이 px. 넘치면 세로 스크롤. |
|
|
19
|
+
| `autoClose?` | `boolean` | `false` | 콘텐츠 내부를 클릭하면 자동으로 닫는다. |
|
|
20
|
+
| `persistent?` | `boolean` | `false` | 외부 클릭 · ESC 로 닫히지 않게 한다. |
|
|
21
|
+
| `viewportPadding?` | `number` | `0` | 뷰포트 경계 여백 px (충돌 회피 패딩). |
|
|
22
|
+
| `children?` | `ReactNode` | — | 본문 내용 (콘텐츠 자유). |
|
|
23
|
+
| `className?` | `string` | — | |
|
|
24
|
+
| `style?` | `CSSProperties` | — | |
|
|
25
|
+
| `ariaLabel?` | `string` | — | |
|
|
26
|
+
|
|
27
|
+
#### Events
|
|
28
|
+
|
|
29
|
+
| Event | Type | Description |
|
|
30
|
+
|-------|------|-------------|
|
|
31
|
+
| `onClose` | `() => void` | 외부 클릭 · ESC 등으로 닫힘이 요청될 때 (sd-portal `sdClose` 대응). |
|
|
32
|
+
| `onOpenChange` | `(open: boolean) => void` | 열림/닫힘 변경 전체 콜백 (선택). |
|
|
33
|
+
| `onOpenAutoFocus` | `(event: Event) => void` | 열릴 때 포커스 이동 처리 (기본은 Radix가 콘텐츠로 포커스를 옮김). e.preventDefault()로 막을 수 있다. |
|
|
34
|
+
| `onCloseAutoFocus` | `(event: Event) => void` | 닫힐 때 포커스 복귀 처리 (기본은 Radix가 앵커로 포커스를 되돌림). e.preventDefault()로 막을 수 있다. |
|
|
35
|
+
| `onPointerDownOutside` | `(event: Event) => void` | 바깥 영역 pointerdown 으로 닫힘이 시작될 때 (앵커 위 클릭·persistent 는 제외). |
|
|
36
|
+
|
|
37
|
+
## Dependencies
|
|
38
|
+
|
|
39
|
+
### Used by
|
|
40
|
+
|
|
41
|
+
- [SChipInput](../SChipInput)
|
|
42
|
+
- [SSelect](../SSelect)
|
|
43
|
+
|
|
44
|
+
### Graph
|
|
45
|
+
|
|
46
|
+
```mermaid
|
|
47
|
+
graph TD;
|
|
48
|
+
SChipInput --> SPortal
|
|
49
|
+
SSelect --> SPortal
|
|
50
|
+
style SPortal fill:#f9f,stroke:#333,stroke-width:4px
|
|
51
|
+
```
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# SRadio
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SRadioGroup
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `options?` | `SRadioOption[]` | `[]` | 옵션 목록 |
|
|
12
|
+
| `value?` | `SRadioValue \| null` | — | 현재 선택 값 |
|
|
13
|
+
| `direction?` | `'vertical' \| 'horizontal'` | `'vertical'` | 배치 방향 |
|
|
14
|
+
| `disabled?` | `boolean` | `false` | 전체 비활성 |
|
|
15
|
+
| `groupName?` | `string` | — | 라디오 name 속성 (form-agnostic 그룹핑) |
|
|
16
|
+
| `className?` | `string` | — | |
|
|
17
|
+
| `style?` | `CSSProperties` | — | |
|
|
18
|
+
|
|
19
|
+
#### Events
|
|
20
|
+
|
|
21
|
+
| Event | Type | Description |
|
|
22
|
+
|-------|------|-------------|
|
|
23
|
+
| `onValueChange` | `(val: SRadioValue) => void` | 선택 변경 (sdUpdate) |
|
|
24
|
+
|
|
25
|
+
### SRadio
|
|
26
|
+
|
|
27
|
+
#### Props
|
|
28
|
+
|
|
29
|
+
| Prop | Type | Default | Description |
|
|
30
|
+
|------|------|---------|-------------|
|
|
31
|
+
| `val` | `SRadioValue` | — | 이 라디오의 값 |
|
|
32
|
+
| `value?` | `SRadioValue \| null` | — | 그룹의 현재 선택 값 |
|
|
33
|
+
| `label?` | `string` | — | 라벨 |
|
|
34
|
+
| `disabled?` | `boolean` | `false` | 비활성 |
|
|
35
|
+
| `name?` | `string` | — | native radio name (form-agnostic 그룹핑) |
|
|
36
|
+
| `className?` | `string` | — | |
|
|
37
|
+
| `style?` | `CSSProperties` | — | |
|
|
38
|
+
|
|
39
|
+
#### Events
|
|
40
|
+
|
|
41
|
+
| Event | Type | Description |
|
|
42
|
+
|-------|------|-------------|
|
|
43
|
+
| `onValueChange` | `(val: SRadioValue) => void` | 선택 변경 (sdUpdate) — 선택된 val 전달 |
|
|
44
|
+
|
|
45
|
+
## Dependencies
|
|
46
|
+
|
|
47
|
+
### Used by
|
|
48
|
+
|
|
49
|
+
- [SKeyValueTable](../SKeyValueTable)
|
|
50
|
+
|
|
51
|
+
### Graph
|
|
52
|
+
|
|
53
|
+
```mermaid
|
|
54
|
+
graph TD;
|
|
55
|
+
SKeyValueTable --> SRadio
|
|
56
|
+
style SRadio fill:#f9f,stroke:#333,stroke-width:4px
|
|
57
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# SRadioButton
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SRadioButton
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `options?` | `SRadioButtonOption[]` | `[]` | 옵션 목록 |
|
|
12
|
+
| `value?` | `string \| number \| null` | — | 현재 선택 값 |
|
|
13
|
+
| `size?` | `SRadioButtonSize` | `'sm'` | 크기 |
|
|
14
|
+
| `disabled?` | `boolean` | `false` | 전체 비활성 |
|
|
15
|
+
| `name?` | `string` | — | input name 속성 |
|
|
16
|
+
| `className?` | `string` | — | |
|
|
17
|
+
| `style?` | `CSSProperties` | — | |
|
|
18
|
+
|
|
19
|
+
#### Events
|
|
20
|
+
|
|
21
|
+
| Event | Type | Description |
|
|
22
|
+
|-------|------|-------------|
|
|
23
|
+
| `onValueChange` | `(value: string \| number) => void` | 변경 (sdUpdate) |
|
|
24
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# SScrollArea
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SScrollArea
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `axis?` | `SScrollAreaAxis` | `'both'` | 스크롤 방향. vertical=세로만, horizontal=가로만, both=양방향 |
|
|
12
|
+
| `background?` | `boolean` | `false` | true면 스크롤바 트랙 배경을 채운다. 콘텐츠 영역 배경은 바뀌지 않는다. |
|
|
13
|
+
| `bordered?` | `boolean` | `false` | true면 스크롤바와 콘텐츠 사이에 1px 구분선을 그린다. 컨테이너 테두리가 아니다. |
|
|
14
|
+
| `maxHeight?` | `string` | — | viewport 최대 높이 (예: '400px'). 비우면 부모 크기를 따른다. |
|
|
15
|
+
| `maxWidth?` | `string` | — | viewport 최대 너비 (예: '480px'). 비우면 부모 크기를 따른다. |
|
|
16
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# SSectionHeaderCard
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SSectionHeaderCardBody
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `children?` | `SSectionHeaderCardBodyChildren` | — | 바디 슬롯. 특정 컴포넌트 타입으로 제한하지 않습니다. |
|
|
12
|
+
|
|
13
|
+
### SSectionHeaderCardHeader
|
|
14
|
+
|
|
15
|
+
#### Props
|
|
16
|
+
|
|
17
|
+
| Prop | Type | Default | Description |
|
|
18
|
+
|------|------|---------|-------------|
|
|
19
|
+
| `title` | `ReactNode` | — | 헤더 제목 |
|
|
20
|
+
| `marker?` | `boolean` | `false` | 제목 앞 점 표시 여부 |
|
|
21
|
+
| `required?` | `boolean` | `false` | 제목 뒤 필수 별 표시 여부 |
|
|
22
|
+
| `helpText?` | `string[]` | — | 도움말 툴팁 메시지 |
|
|
23
|
+
| `subtitle?` | `ReactNode` | — | 부제 |
|
|
24
|
+
| `slot?` | `ReactNode` | — | 헤더 우측 슬롯 |
|
|
25
|
+
| `thickness?` | `SSectionHeaderCardThickness` | `false` | 상단 border 색상 타입. false면 표시하지 않습니다. |
|
|
26
|
+
|
|
27
|
+
### SSectionHeaderCard
|
|
28
|
+
|
|
29
|
+
#### Props
|
|
30
|
+
|
|
31
|
+
| Prop | Type | Default | Description |
|
|
32
|
+
|------|------|---------|-------------|
|
|
33
|
+
| `children?` | `SSectionHeaderCardChildren` | — | SSectionHeaderCard 슬롯. 특정 컴포넌트 타입으로 제한하지 않습니다. |
|
|
34
|
+
|
|
35
|
+
## Dependencies
|
|
36
|
+
|
|
37
|
+
### Depends on
|
|
38
|
+
|
|
39
|
+
- [SBadge](../SBadge)
|
|
40
|
+
- [SIcon](../SIcon)
|
|
41
|
+
- [STooltip](../STooltip)
|
|
42
|
+
|
|
43
|
+
### Graph
|
|
44
|
+
|
|
45
|
+
```mermaid
|
|
46
|
+
graph TD;
|
|
47
|
+
SSectionHeaderCard --> SBadge
|
|
48
|
+
SSectionHeaderCard --> SIcon
|
|
49
|
+
SSectionHeaderCard --> STooltip
|
|
50
|
+
style SSectionHeaderCard fill:#f9f,stroke:#333,stroke-width:4px
|
|
51
|
+
```
|