sellmate-design-system-react 3.0.0 → 3.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/AGENTS.md +695 -0
- package/README.md +106 -0
- package/bin/sellmate-ds.mjs +337 -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/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/SDropdownButton/README.md +50 -0
- package/dist/components/SExpansionItem/README.md +40 -0
- 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/SListItem/README.md +19 -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/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/llms-full.txt +3530 -0
- package/dist/llms.txt +882 -0
- package/dist/styles.css +221 -0
- package/dist/theme.css +8 -0
- package/eslint/index.mjs +69 -0
- package/eslint/lib/class-names.mjs +119 -0
- package/eslint/lib/table-column.mjs +53 -0
- package/eslint/rules/component-group-gap.mjs +186 -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 +15 -4
|
@@ -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
|
+
```
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# SSelect
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SSelect
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `value?` | `(string \| number \| SSelectOption) \| (string \| number \| SSelectOption)[] \| null` | — | 선택 값. multi 타입이면 배열. emitValue=false(기본) 라운드트립을 위해 SSelectOption 객체도 허용 |
|
|
12
|
+
| `emitValue?` | `boolean` | `false` | true면 SSelectOption 대신 원시값(string|number) 방출 |
|
|
13
|
+
| `name?` | `string` | — | 폼 연동용 name 속성 |
|
|
14
|
+
| `options?` | `SSelectOption[]` | `[]` | 옵션 목록 (children으로 계층 표현) |
|
|
15
|
+
| `type?` | `SSelectType` | `'default'` | 타입: default | multi | default_depth | multi_depth |
|
|
16
|
+
| `useSearch?` | `boolean` | `false` | 검색 입력 사용 |
|
|
17
|
+
| `useSelectAll?` | `boolean` | `false` | 전체선택 옵션 사용 (multi 전용) |
|
|
18
|
+
| `allSelectedLabel?` | `string` | `'전체'` | 전체선택 레이블 |
|
|
19
|
+
| `placeholder?` | `string` | `'선택'` | placeholder |
|
|
20
|
+
| `disabled?` | `boolean` | `false` | 비활성 |
|
|
21
|
+
| `error?` | `boolean` | `false` | 에러 상태 |
|
|
22
|
+
| `rules?` | `Rule[]` | — | 유효성 규칙 — 닫힐 때 자동 검증 |
|
|
23
|
+
| `labelTooltipProps?` | `Partial<STooltipProps>` | — | 레이블 툴팁 상세 옵션 |
|
|
24
|
+
| `dropdownHeight?` | `string` | `'260px'` | 드롭다운 최대 높이 |
|
|
25
|
+
| `dropdownWidth?` | `string` | — | 드롭다운 너비 (없으면 트리거 너비) |
|
|
26
|
+
| `maxDropdownWidth?` | `string` | `'640px'` | 드롭다운 최대 너비 |
|
|
27
|
+
| `label?` | `string` | — | |
|
|
28
|
+
| `labelWidth?` | `number \| string` | — | |
|
|
29
|
+
| `icon?` | `SIconName` | — | 레이블 영역 아이콘 |
|
|
30
|
+
| `iconColor?` | `SColor` | — | |
|
|
31
|
+
| `labelTooltip?` | `string` | — | 레이블 툴팁 텍스트 |
|
|
32
|
+
| `addonLabel?` | `string` | — | 우측 어드온 레이블 |
|
|
33
|
+
| `addonAlign?` | `SFieldAddonAlign` | — | 어드온 정렬 |
|
|
34
|
+
| `hint?` | `string` | — | |
|
|
35
|
+
| `errorMessage?` | `string` | — | |
|
|
36
|
+
| `width?` | `number \| string` | — | |
|
|
37
|
+
| `className?` | `string` | — | |
|
|
38
|
+
| `style?` | `CSSProperties` | — | |
|
|
39
|
+
|
|
40
|
+
#### Events
|
|
41
|
+
|
|
42
|
+
| Event | Type | Description |
|
|
43
|
+
|-------|------|-------------|
|
|
44
|
+
| `onValueChange` | `(value: any) => void` | 값 변경 (sdUpdate). emitValue=false(기본)면 SSelectOption(들), true면 원시값 |
|
|
45
|
+
| `onOpenChange` | `(open: boolean) => void` | 열림/닫힘 변경 (sdDropDownShow) |
|
|
46
|
+
|
|
47
|
+
#### Methods (ref)
|
|
48
|
+
|
|
49
|
+
| Method | Type | Description |
|
|
50
|
+
|--------|------|-------------|
|
|
51
|
+
| `focus` | `() => void` | 트리거 버튼에 포커스 (sdFocus) |
|
|
52
|
+
| `open` | `() => void` | 드롭다운 열기 (sdOpen) |
|
|
53
|
+
|
|
54
|
+
## Dependencies
|
|
55
|
+
|
|
56
|
+
### Used by
|
|
57
|
+
|
|
58
|
+
- [SKeyValueTable](../SKeyValueTable)
|
|
59
|
+
- [STable](../STable)
|
|
60
|
+
|
|
61
|
+
### Depends on
|
|
62
|
+
|
|
63
|
+
- [SField](../SField)
|
|
64
|
+
- [SGhostButton](../SGhostButton)
|
|
65
|
+
- [SIcon](../SIcon)
|
|
66
|
+
- [SPortal](../SPortal)
|
|
67
|
+
|
|
68
|
+
### Graph
|
|
69
|
+
|
|
70
|
+
```mermaid
|
|
71
|
+
graph TD;
|
|
72
|
+
SSelect --> SField
|
|
73
|
+
SSelect --> SGhostButton
|
|
74
|
+
SSelect --> SIcon
|
|
75
|
+
SSelect --> SPortal
|
|
76
|
+
SKeyValueTable --> SSelect
|
|
77
|
+
STable --> SSelect
|
|
78
|
+
style SSelect fill:#f9f,stroke:#333,stroke-width:4px
|
|
79
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# SStepper
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SStepper
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `items` | `SStepperItem[]` | — | 단계 목록 |
|
|
12
|
+
| `value?` | `string` | — | 현재 활성 단계 value |
|
|
13
|
+
| `size?` | `SStepperSize` | `'sm'` | 크기 |
|
|
14
|
+
| `ariaLabel?` | `string` | `'진행 단계'` | 접근성 레이블 |
|
|
15
|
+
| `className?` | `string` | — | |
|
|
16
|
+
| `style?` | `CSSProperties` | — | |
|
|
17
|
+
|
|
18
|
+
## Dependencies
|
|
19
|
+
|
|
20
|
+
### Depends on
|
|
21
|
+
|
|
22
|
+
- [SIcon](../SIcon)
|
|
23
|
+
|
|
24
|
+
### Graph
|
|
25
|
+
|
|
26
|
+
```mermaid
|
|
27
|
+
graph TD;
|
|
28
|
+
SStepper --> SIcon
|
|
29
|
+
style SStepper fill:#f9f,stroke:#333,stroke-width:4px
|
|
30
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# SSwitch
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SSwitch
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `value?` | `boolean` | `false` | on/off 상태 |
|
|
12
|
+
| `leftLabel?` | `string` | — | 스위치 좌측 라벨 |
|
|
13
|
+
| `rightLabel?` | `string` | — | 스위치 우측 라벨 |
|
|
14
|
+
| `label?` | `string` | — | |
|
|
15
|
+
| `disabled?` | `boolean` | `false` | 비활성 |
|
|
16
|
+
| `className?` | `string` | — | |
|
|
17
|
+
| `style?` | `CSSProperties` | — | |
|
|
18
|
+
|
|
19
|
+
#### Events
|
|
20
|
+
|
|
21
|
+
| Event | Type | Description |
|
|
22
|
+
|-------|------|-------------|
|
|
23
|
+
| `onValueChange` | `(value: boolean) => void` | 변경 (sdUpdate) |
|
|
24
|
+
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# STable
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### STable
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `columns?` | `STableColumn[]` | `[]` | |
|
|
12
|
+
| `rows?` | `SRow[]` | `[]` | |
|
|
13
|
+
| `rowKey?` | `string` | `'id'` | 행 식별 필드 |
|
|
14
|
+
| `selectable?` | `boolean` | `false` | 행 선택 체크박스 |
|
|
15
|
+
| `selected?` | `SRow[]` | `[]` | |
|
|
16
|
+
| `resizable?` | `boolean` | `false` | 컬럼 너비 조절 |
|
|
17
|
+
| `width?` | `string` | — | |
|
|
18
|
+
| `height?` | `string` | — | |
|
|
19
|
+
| `stickyHeader?` | `boolean` | — | |
|
|
20
|
+
| `stickyColumn?` | `STableStickyColumn` | — | 고정할 좌/우 컬럼 수 |
|
|
21
|
+
| `radius?` | `'default' \| 'useTop' \| 'full'` | `'default'` | border-radius 제어 |
|
|
22
|
+
| `noDataLabel?` | `string` | `'데이터가 없습니다.'` | |
|
|
23
|
+
| `noDataSlot?` | `ReactNode` | — | 데이터가 없을 때 body 영역 전체를 대체하는 슬롯. 지정하면 `noDataLabel` 대신 이 콘텐츠가 헤더 아래 영역을 채우며, 버튼 등 인터랙션도 동작한다. |
|
|
24
|
+
| `isLoading?` | `boolean` | `false` | |
|
|
25
|
+
| `dense?` | `boolean` | `false` | |
|
|
26
|
+
| `noHover?` | `boolean` | `false` | true면 행에 마우스를 올려도 hover 배경(grey_05)을 표시하지 않는다 |
|
|
27
|
+
| `pagination?` | `STablePagination` | — | 페이지네이션 (있으면 하단 표시) |
|
|
28
|
+
| `useInternalPagination?` | `boolean` | `false` | 테이블 내부에서 페이지네이션을 직접 관리 (rows를 내부 슬라이싱) |
|
|
29
|
+
| `useRowsPerPageSelect?` | `boolean` | `false` | 페이지당 행 수 셀렉트 표시 |
|
|
30
|
+
| `rowsPerPageOption?` | `SSelectOption[]` | `DEFAULT_ROWS_PER_PAGE_OPTION` | |
|
|
31
|
+
| `useVirtualScroll?` | `boolean` | `false` | 가상 스크롤 |
|
|
32
|
+
| `rowHeight?` | `number` | — | |
|
|
33
|
+
| `virtualBuffer?` | `number` | `5` | |
|
|
34
|
+
| `virtualEndThreshold?` | `number` | `10` | |
|
|
35
|
+
| `tableId?` | `string` | — | 테이블 식별자 (없으면 자동 생성) |
|
|
36
|
+
| `className?` | `string` | — | |
|
|
37
|
+
| `style?` | `CSSProperties` | — | |
|
|
38
|
+
|
|
39
|
+
#### Events
|
|
40
|
+
|
|
41
|
+
| Event | Type | Description |
|
|
42
|
+
|-------|------|-------------|
|
|
43
|
+
| `onSelectedChange` | `(rows: SRow[]) => void` | |
|
|
44
|
+
| `onPageChange` | `(page: number) => void` | |
|
|
45
|
+
| `onRowsPerPageChange` | `(perPage: number) => void` | |
|
|
46
|
+
| `onVirtualUpdate` | `(range: { from: number; to: number }) => void` | |
|
|
47
|
+
| `onVirtualReachEnd` | `(info: { from: number; to: number; rowCount: number; threshold: number; }) =>…` | |
|
|
48
|
+
| `onRowClick` | `(row: SRow) => void` | 행 클릭 |
|
|
49
|
+
|
|
50
|
+
#### Methods (ref)
|
|
51
|
+
|
|
52
|
+
| Method | Type | Description |
|
|
53
|
+
|--------|------|-------------|
|
|
54
|
+
| `isRowSelected` | `(row: SRow) => boolean` | 행 선택 여부 |
|
|
55
|
+
| `getIsAllChecked` | `(rows: SRow[]) => boolean \| null` | 주어진 행들의 전체 선택 상태 (true/false/null=indeterminate) |
|
|
56
|
+
| `getPaginationInfo` | `<union 2종>` | 내부 페이지네이션 정보 (useInternalPagination 아니면 null) |
|
|
57
|
+
| `getStickyStyle` | `(colIdx: number) => CSSProperties` | 컬럼 sticky 스타일 (CSS 변수 + 고정폭) |
|
|
58
|
+
| `setRowCount` | `(count: number) => void` | 가상 스크롤 총 행 수 설정 |
|
|
59
|
+
| `updateRowSelect` | `(row: SRow) => void` | 단일 행 선택 토글 (sd-table updateRowSelect) — onSelectedChange 발생 |
|
|
60
|
+
| `toggleSelectAll` | `(checked: boolean, rows: SRow[]) => void` | 주어진 행들 전체 선택/해제 (sd-table toggleSelectAll) — onSelectedChange 발생 |
|
|
61
|
+
|
|
62
|
+
## Dependencies
|
|
63
|
+
|
|
64
|
+
### Depends on
|
|
65
|
+
|
|
66
|
+
- [SCheckbox](../SCheckbox)
|
|
67
|
+
- [SCircleProgress](../SCircleProgress)
|
|
68
|
+
- [SIcon](../SIcon)
|
|
69
|
+
- [SPagination](../SPagination)
|
|
70
|
+
- [SSelect](../SSelect)
|
|
71
|
+
|
|
72
|
+
### Graph
|
|
73
|
+
|
|
74
|
+
```mermaid
|
|
75
|
+
graph TD;
|
|
76
|
+
STable --> SCheckbox
|
|
77
|
+
STable --> SCircleProgress
|
|
78
|
+
STable --> SIcon
|
|
79
|
+
STable --> SPagination
|
|
80
|
+
STable --> SSelect
|
|
81
|
+
style STable fill:#f9f,stroke:#333,stroke-width:4px
|
|
82
|
+
```
|
|
@@ -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
|
+
```
|