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,91 @@
|
|
|
1
|
+
# SField
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SField
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `name?` | `string` | — | 폼 연동용 name 속성 |
|
|
12
|
+
| `label?` | `string` | `''` | 레이블 텍스트 |
|
|
13
|
+
| `icon?` | `SIconName` | — | 레이블 영역 아이콘명 (크기는 size 토큰 16px 고정) |
|
|
14
|
+
| `iconColor?` | `SColor` | — | 레이블 영역 아이콘 색상. 미지정 시 currentColor 상속 |
|
|
15
|
+
| `labelTooltip?` | `string` | `''` | 레이블 툴팁 텍스트 |
|
|
16
|
+
| `labelTooltipProps?` | `Partial<STooltipProps>` | — | 레이블 툴팁 상세 옵션 (SdTooltipProps 대응) |
|
|
17
|
+
| `labelWidth?` | `number \| string` | — | 레이블/어드온 레이블 너비 (숫자=px). label·addonLabel 폭에 공통 적용 |
|
|
18
|
+
| `labelHeight?` | `number \| string` | — | 레이블 박스 높이 (숫자=px). 미지정 시 size별 기본값 사용. 컨트롤 박스가 기본 필드 높이보다 큰 경우(multiline 등) 첫 행에 세로 중앙 정렬을 맞추기 위해 컨트롤 박스 높이를 넘겨받는다. |
|
|
19
|
+
| `size?` | `SFieldSize` | `'sm'` | 필드 크기 |
|
|
20
|
+
| `addonLabel?` | `string` | `''` | 우측 어드온 레이블 |
|
|
21
|
+
| `addonAlign?` | `SFieldAddonAlign` | `'start'` | 어드온 정렬 |
|
|
22
|
+
| `error?` | `boolean` | `false` | 에러 상태 |
|
|
23
|
+
| `errorMessage?` | `string` | `''` | 에러 메시지 |
|
|
24
|
+
| `status?` | `SFieldStatus` | — | 필드 상태 — 'error' | 'pass' | 'default'. 'pass'면 초록 테두리 |
|
|
25
|
+
| `focused?` | `boolean` | `false` | 포커스 상태 (제어/반영) |
|
|
26
|
+
| `hovered?` | `boolean` | `false` | 호버 상태 (제어/반영) |
|
|
27
|
+
| `rules?` | `Rule[]` | — | 유효성 규칙 (검증은 컨트롤에서 수행, API 패리티) |
|
|
28
|
+
| `hint?` | `string` | `''` | 하단 힌트 |
|
|
29
|
+
| `disabled?` | `boolean` | `false` | 비활성 |
|
|
30
|
+
| `readOnly?` | `boolean` | `false` | 읽기 전용 (회색 배경) |
|
|
31
|
+
| `width?` | `number \| string` | — | 컨트롤 너비 (숫자=px). 지정하면 필드가 부모 폭을 다 먹지 않고 (레이블 + width) 만큼만 차지한다. 다른 요소와 나란히 놓으려면 부모를 flex 로 두면 된다. |
|
|
32
|
+
| `minWidth?` | `number \| string` | — | 컨트롤 최소 너비 (숫자=px). 하한선만 지정하며 필드는 계속 부모 폭을 채운다 |
|
|
33
|
+
| `multiline?` | `boolean` | `false` | 멀티라인(textarea) — 컨트롤 높이를 고정하지 않고 min-height만 적용 |
|
|
34
|
+
| `borderless?` | `boolean` | `false` | 테두리 박스 제거 (inline 컨트롤용) — border/배경/hover·focus 강조만 사라지고 label·hint·errorMessage 등 나머지 필드 구성은 그대로 동작한다. |
|
|
35
|
+
| `children?` | `ReactNode` | — | 실제 컨트롤 (input/select 등) — 테두리 없이 렌더, 테두리는 SField가 제공 |
|
|
36
|
+
| `className?` | `string` | — | |
|
|
37
|
+
| `style?` | `CSSProperties` | — | |
|
|
38
|
+
|
|
39
|
+
#### Events
|
|
40
|
+
|
|
41
|
+
| Event | Type | Description |
|
|
42
|
+
|-------|------|-------------|
|
|
43
|
+
| `onMouseEnter` | `() => void` | |
|
|
44
|
+
| `onMouseLeave` | `() => void` | |
|
|
45
|
+
|
|
46
|
+
#### Methods (ref)
|
|
47
|
+
|
|
48
|
+
| Method | Type | Description |
|
|
49
|
+
|--------|------|-------------|
|
|
50
|
+
| `focus` | `() => void` | 내부 컨트롤에 포커스하고 필드를 화면에 스크롤합니다. |
|
|
51
|
+
|
|
52
|
+
## Dependencies
|
|
53
|
+
|
|
54
|
+
### Used by
|
|
55
|
+
|
|
56
|
+
- [SBarcodeInput](../SBarcodeInput)
|
|
57
|
+
- [SChipInput](../SChipInput)
|
|
58
|
+
- [SDatePicker](../SDatePicker)
|
|
59
|
+
- [SDateRangePicker](../SDateRangePicker)
|
|
60
|
+
- [SFilePicker](../SFilePicker)
|
|
61
|
+
- [SInput](../SInput)
|
|
62
|
+
- [SNumberInput](../SNumberInput)
|
|
63
|
+
- [SSelect](../SSelect)
|
|
64
|
+
- [STextarea](../STextarea)
|
|
65
|
+
- [STimePicker](../STimePicker)
|
|
66
|
+
- [STimeRangePicker](../STimeRangePicker)
|
|
67
|
+
|
|
68
|
+
### Depends on
|
|
69
|
+
|
|
70
|
+
- [SIcon](../SIcon)
|
|
71
|
+
- [STooltip](../STooltip)
|
|
72
|
+
|
|
73
|
+
### Graph
|
|
74
|
+
|
|
75
|
+
```mermaid
|
|
76
|
+
graph TD;
|
|
77
|
+
SField --> SIcon
|
|
78
|
+
SField --> STooltip
|
|
79
|
+
SBarcodeInput --> SField
|
|
80
|
+
SChipInput --> SField
|
|
81
|
+
SDatePicker --> SField
|
|
82
|
+
SDateRangePicker --> SField
|
|
83
|
+
SFilePicker --> SField
|
|
84
|
+
SInput --> SField
|
|
85
|
+
SNumberInput --> SField
|
|
86
|
+
SSelect --> SField
|
|
87
|
+
STextarea --> SField
|
|
88
|
+
STimePicker --> SField
|
|
89
|
+
STimeRangePicker --> SField
|
|
90
|
+
style SField fill:#f9f,stroke:#333,stroke-width:4px
|
|
91
|
+
```
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# SFilePicker
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SFilePicker
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `value?` | `SFilePickerValue` | `null` | |
|
|
12
|
+
| `placeholder?` | `string` | `'Click to upload'` | |
|
|
13
|
+
| `disabled?` | `boolean` | `false` | |
|
|
14
|
+
| `focused?` | `boolean` | `false` | 포커스 상태 여부 |
|
|
15
|
+
| `hovered?` | `boolean` | `false` | 호버 상태 여부 |
|
|
16
|
+
| `inline?` | `boolean` | `false` | 인라인 표시 — SField 테두리 박스만 사라지고 label/rules/hint 는 그대로 동작 |
|
|
17
|
+
| `multiple?` | `boolean` | `false` | |
|
|
18
|
+
| `useMultipleListBox?` | `boolean` | `false` | multiple 파일 목록을 필드 아래 칩 대신, caret(▼) 클릭 시 열리는 리스트박스 카드로 표시 (바깥 클릭 시 닫힘) |
|
|
19
|
+
| `accept?` | `string` | — | |
|
|
20
|
+
| `maxFileSize?` | `number \| string` | — | |
|
|
21
|
+
| `maxTotalSize?` | `number \| string` | — | |
|
|
22
|
+
| `maxFiles?` | `number \| string` | — | |
|
|
23
|
+
| `name?` | `string` | — | |
|
|
24
|
+
| `rules?` | `Rule[]` | — | |
|
|
25
|
+
| `status?` | `SFieldStatus` | — | |
|
|
26
|
+
| `size?` | `SFieldSize` | `'sm'` | |
|
|
27
|
+
| `label?` | `string` | — | |
|
|
28
|
+
| `labelWidth?` | `number \| string` | — | |
|
|
29
|
+
| `icon?` | `SIconName` | — | |
|
|
30
|
+
| `iconColor?` | `SColor` | — | |
|
|
31
|
+
| `labelTooltip?` | `string` | — | |
|
|
32
|
+
| `labelTooltipProps?` | `Partial<STooltipProps>` | — | |
|
|
33
|
+
| `addonLabel?` | `string` | — | |
|
|
34
|
+
| `addonAlign?` | `SFieldAddonAlign` | `'start'` | |
|
|
35
|
+
| `hint?` | `string` | — | |
|
|
36
|
+
| `error?` | `boolean` | — | |
|
|
37
|
+
| `errorMessage?` | `string` | — | |
|
|
38
|
+
| `width?` | `number \| string` | — | |
|
|
39
|
+
| `className?` | `string` | — | |
|
|
40
|
+
| `style?` | `CSSProperties` | — | |
|
|
41
|
+
|
|
42
|
+
#### Events
|
|
43
|
+
|
|
44
|
+
| Event | Type | Description |
|
|
45
|
+
|-------|------|-------------|
|
|
46
|
+
| `onValueChange` | `(value: SFilePickerValue) => void` | 파일 변경 (sdUpdate) |
|
|
47
|
+
| `onReject` | `(detail: { files: File[]; reason: SFilePickerRejectReason }) => void` | 제한 초과 거부 (sdReject) |
|
|
48
|
+
|
|
49
|
+
## Dependencies
|
|
50
|
+
|
|
51
|
+
### Used by
|
|
52
|
+
|
|
53
|
+
- [SKeyValueTable](../SKeyValueTable)
|
|
54
|
+
|
|
55
|
+
### Depends on
|
|
56
|
+
|
|
57
|
+
- [SChip](../SChip)
|
|
58
|
+
- [SField](../SField)
|
|
59
|
+
- [SGhostButton](../SGhostButton)
|
|
60
|
+
- [SIcon](../SIcon)
|
|
61
|
+
|
|
62
|
+
### Graph
|
|
63
|
+
|
|
64
|
+
```mermaid
|
|
65
|
+
graph TD;
|
|
66
|
+
SFilePicker --> SChip
|
|
67
|
+
SFilePicker --> SField
|
|
68
|
+
SFilePicker --> SGhostButton
|
|
69
|
+
SFilePicker --> SIcon
|
|
70
|
+
SKeyValueTable --> SFilePicker
|
|
71
|
+
style SFilePicker fill:#f9f,stroke:#333,stroke-width:4px
|
|
72
|
+
```
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# SForm
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SForm
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `formClass?` | `string` | — | form 엘리먼트에 추가할 클래스 (sd-form formClass 대응) |
|
|
12
|
+
| `children?` | `ReactNode` | — | |
|
|
13
|
+
| `className?` | `string` | — | |
|
|
14
|
+
| `style?` | `CSSProperties` | — | |
|
|
15
|
+
|
|
16
|
+
#### Events
|
|
17
|
+
|
|
18
|
+
| Event | Type | Description |
|
|
19
|
+
|-------|------|-------------|
|
|
20
|
+
| `onSubmit` | `() => void` | 모든 필드 검증 통과 후 발생 (sd-form sdSubmit 대응) |
|
|
21
|
+
| `onValidationError` | `(error: SFormValidationError) => void` | 검증 실패 시 실패한 필드 name 목록 전달 (sd-form sdValidationError 대응) |
|
|
22
|
+
|
|
23
|
+
#### Methods (ref)
|
|
24
|
+
|
|
25
|
+
| Method | Type | Description |
|
|
26
|
+
|--------|------|-------------|
|
|
27
|
+
| `validate` | `() => boolean` | 등록된 모든 필드를 검증하고 통과 여부를 반환 |
|
|
28
|
+
| `resetValidation` | `() => void` | 모든 필드의 검증 상태만 초기화 (값은 소비자 소유) |
|
|
29
|
+
| `reset` | `() => void` | resetValidation 별칭 — sd-form sdReset 대응. 값 리셋은 소비자(value/onChange) 책임 |
|
|
30
|
+
| `focusFirstInvalid` | `() => void` | 첫 번째 실패 필드로 포커스 이동 |
|
|
31
|
+
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# SGhostButton
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SGhostButton
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `icon` | `SIconName` | — | 표시할 아이콘명 (필수) |
|
|
12
|
+
| `size?` | `SGhostButtonSize` | `'sm'` | 버튼 크기 |
|
|
13
|
+
| `intent?` | `SGhostButtonIntent` | `'default'` | 색상 의도 |
|
|
14
|
+
| `ariaLabel?` | `string` | `''` | 스크린리더용 접근성 레이블 |
|
|
15
|
+
| `ariaPressed?` | `boolean` | — | 토글 버튼일 때 눌림 상태 (aria-pressed). 미지정 시 속성 자체를 내보내지 않는다. |
|
|
16
|
+
| `tooltipText?` | `string` | — | 호버 시 표시할 툴팁 텍스트 |
|
|
17
|
+
| `disabled?` | `boolean` | `false` | 비활성 |
|
|
18
|
+
| `anchorClassName?` | `string` | — | tooltip anchor wrapper 클래스. tooltipText가 있을 때 위치 조정용으로 사용합니다. |
|
|
19
|
+
| `anchorStyle?` | `CSSProperties` | — | tooltip anchor wrapper 스타일. tooltipText가 있을 때 위치 조정용으로 사용합니다. |
|
|
20
|
+
| `className?` | `string` | — | |
|
|
21
|
+
| `style?` | `CSSProperties` | — | |
|
|
22
|
+
|
|
23
|
+
#### Events
|
|
24
|
+
|
|
25
|
+
| Event | Type | Description |
|
|
26
|
+
|-------|------|-------------|
|
|
27
|
+
| `onClick` | `(e: MouseEvent<HTMLButtonElement>) => void` | 클릭 (sdClick) |
|
|
28
|
+
|
|
29
|
+
## Dependencies
|
|
30
|
+
|
|
31
|
+
### Used by
|
|
32
|
+
|
|
33
|
+
- [SBarcodeInput](../SBarcodeInput)
|
|
34
|
+
- [SCalendar](../SCalendar)
|
|
35
|
+
- [SChip](../SChip)
|
|
36
|
+
- [SDateRangePicker](../SDateRangePicker)
|
|
37
|
+
- [SFilePicker](../SFilePicker)
|
|
38
|
+
- [SGnb](../SGnb)
|
|
39
|
+
- [SGuide](../SGuide)
|
|
40
|
+
- [SInput](../SInput)
|
|
41
|
+
- [SModalContainer](../SModalContainer)
|
|
42
|
+
- [SPopover](../SPopover)
|
|
43
|
+
- [SSelect](../SSelect)
|
|
44
|
+
- [STimePicker](../STimePicker)
|
|
45
|
+
- [STimeRangePicker](../STimeRangePicker)
|
|
46
|
+
- [SToast](../SToast)
|
|
47
|
+
- [STooltip](../STooltip)
|
|
48
|
+
|
|
49
|
+
### Depends on
|
|
50
|
+
|
|
51
|
+
- [SIcon](../SIcon)
|
|
52
|
+
- [STag](../STag)
|
|
53
|
+
|
|
54
|
+
### Graph
|
|
55
|
+
|
|
56
|
+
```mermaid
|
|
57
|
+
graph TD;
|
|
58
|
+
SGhostButton --> SIcon
|
|
59
|
+
SGhostButton --> STag
|
|
60
|
+
SBarcodeInput --> SGhostButton
|
|
61
|
+
SCalendar --> SGhostButton
|
|
62
|
+
SChip --> SGhostButton
|
|
63
|
+
SDateRangePicker --> SGhostButton
|
|
64
|
+
SFilePicker --> SGhostButton
|
|
65
|
+
SGnb --> SGhostButton
|
|
66
|
+
SGuide --> SGhostButton
|
|
67
|
+
SInput --> SGhostButton
|
|
68
|
+
SModalContainer --> SGhostButton
|
|
69
|
+
SPopover --> SGhostButton
|
|
70
|
+
SSelect --> SGhostButton
|
|
71
|
+
STimePicker --> SGhostButton
|
|
72
|
+
STimeRangePicker --> SGhostButton
|
|
73
|
+
SToast --> SGhostButton
|
|
74
|
+
STooltip --> SGhostButton
|
|
75
|
+
style SGhostButton fill:#f9f,stroke:#333,stroke-width:4px
|
|
76
|
+
```
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# SGnb
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SGnb
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `type?` | `SGnbType` | — | 메뉴 스타일: box(라운드) / belt(풀폭 행). 미지정 시 SLayout 의 type 을 따른다. |
|
|
12
|
+
| `header?` | `SGnbHeader` | — | 상단바 구조: fix(GNB 폭 고정) / full(레이아웃 전폭). 미지정 시 SLayout 의 header 를 따른다. 단, useRail 이고 레일에 children 없는 아이템이 있으면 메뉴 폭이 출렁이므로 full 로 강제된다. |
|
|
13
|
+
| `color?` | `SGnbColor` | `'light'` | 색상 테마: light / dark |
|
|
14
|
+
| `items` | `SGnbMenuItem[]` | — | 메뉴 트리 (depth1 → depth2 → depth3). useRail 이면 첫 depth 가 레일이 되고 그 children 이 depth1 이 된다. |
|
|
15
|
+
| `useRail?` | `boolean` | — | 좌측 레일 사용 여부. 켜면 items 의 첫 depth 가 아이콘+라벨 버튼의 세로 레일로 서고, 선택된 레일 아이템의 children 이 오른쪽 메뉴 패널에 깔린다. 미지정 시 SLayout 의 useRail 을 따른다. children 없는 레일 아이템이 활성이면 메뉴 패널은 렌더되지 않고 레일만 남는다. |
|
|
16
|
+
| `value?` | `string` | `''` | 현재 선택된 아이템 value |
|
|
17
|
+
| `folded?` | `boolean` | — | 접힘(레일) 상태. 미지정 시 SLayout 의 folded 를 따른다. |
|
|
18
|
+
| `logo?` | `ReactNode` | — | 상단바 로고 영역 (slot) |
|
|
19
|
+
| `railFooter?` | `ReactNode` | — | 레일 하단 고정 슬롯. 레일 아이템이 많아 넘치면 아이템 목록(ul)만 스크롤되고 이 슬롯은 레일 하단에 붙어 고정된다. useRail 일 때만 렌더된다. |
|
|
20
|
+
| `menuFooter?` | `ReactNode` | — | 메뉴 하단 고정 슬롯. 메뉴 아이템이 많아 넘치면 메뉴 목록(ul)만 스크롤되고 이 슬롯은 메뉴 하단에 붙어 고정된다. 메뉴가 렌더될 때만(showMenu) 나타난다. |
|
|
21
|
+
| `foldedFooter?` | `ReactNode` | — | 접힘(fix 레일) 하단 고정 슬롯. 접으면 본문이 빠져나가며 rail/menu footer 도 사라지므로, 48px 폴드 레일 바닥에 붙는 별도 슬롯이다. header="fix" 로 접혔을 때만 나타난다. |
|
|
22
|
+
| `ariaLabel?` | `string` | `'global navigation'` | 메뉴 landmark(nav) 의 접근성 레이블. 한 화면에 nav 가 여럿일 때 구분한다. |
|
|
23
|
+
|
|
24
|
+
#### Events
|
|
25
|
+
|
|
26
|
+
| Event | Type | Description |
|
|
27
|
+
|-------|------|-------------|
|
|
28
|
+
| `onValueChange` | `(value: string) => void` | 선택 변경 (sdUpdate) |
|
|
29
|
+
| `onRailChange` | `(value: string) => void` | 레일 선택 변경. 레일 아이템을 눌러 패널이 바뀔 때 알린다(선택 상태는 SGnb 가 자체 관리). |
|
|
30
|
+
| `onFoldChange` | `(folded: boolean) => void` | 접힘 토글 (sdFoldChange) |
|
|
31
|
+
| `onLauncherClick` | `() => void` | 앱런처(그리드) 버튼 클릭. 미지정 시 런처 버튼을 렌더하지 않는다. 접힘 레일(fix)에는 폴드 버튼만 남으므로 표시되지 않는다. |
|
|
32
|
+
|
|
33
|
+
## Dependencies
|
|
34
|
+
|
|
35
|
+
### Used by
|
|
36
|
+
|
|
37
|
+
- [SLayout](../SLayout)
|
|
38
|
+
|
|
39
|
+
### Depends on
|
|
40
|
+
|
|
41
|
+
- [SGhostButton](../SGhostButton)
|
|
42
|
+
- [SIcon](../SIcon)
|
|
43
|
+
- [SLayout](../SLayout)
|
|
44
|
+
- [STag](../STag)
|
|
45
|
+
|
|
46
|
+
### Graph
|
|
47
|
+
|
|
48
|
+
```mermaid
|
|
49
|
+
graph TD;
|
|
50
|
+
SGnb --> SGhostButton
|
|
51
|
+
SGnb --> SIcon
|
|
52
|
+
SGnb --> SLayout
|
|
53
|
+
SGnb --> STag
|
|
54
|
+
SLayout --> SGnb
|
|
55
|
+
style SGnb fill:#f9f,stroke:#333,stroke-width:4px
|
|
56
|
+
```
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# SGuide
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SGuide
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `type?` | `SGuideType` | `'tip'` | 가이드 타입 (tip: 팝업, notion: 외부 링크) |
|
|
12
|
+
| `label?` | `string` | `''` | 버튼 레이블 (없으면 type 기본값) |
|
|
13
|
+
| `message?` | `SGuideMessage` | `''` | 팝업 메시지 (배열이면 리스트, 중첩 배열이면 depth 표현) |
|
|
14
|
+
| `url?` | `string` | `''` | notion 타입 클릭 시 이동 URL |
|
|
15
|
+
| `popupTitle?` | `string` | `''` | 팝업 제목 (없으면 type 기본값) |
|
|
16
|
+
| `popupWidth?` | `number` | — | 팝업 너비 (px, 기본 426) |
|
|
17
|
+
| `className?` | `string` | — | |
|
|
18
|
+
| `style?` | `CSSProperties` | — | |
|
|
19
|
+
|
|
20
|
+
## Dependencies
|
|
21
|
+
|
|
22
|
+
### Depends on
|
|
23
|
+
|
|
24
|
+
- [SGhostButton](../SGhostButton)
|
|
25
|
+
- [SIcon](../SIcon)
|
|
26
|
+
|
|
27
|
+
### Graph
|
|
28
|
+
|
|
29
|
+
```mermaid
|
|
30
|
+
graph TD;
|
|
31
|
+
SGuide --> SGhostButton
|
|
32
|
+
SGuide --> SIcon
|
|
33
|
+
style SGuide fill:#f9f,stroke:#333,stroke-width:4px
|
|
34
|
+
```
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# SIcon
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SIcon
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `name` | `SIconName` | — | 아이콘명 |
|
|
12
|
+
| `size?` | `number \| string` | `24` | 아이콘 크기(px 또는 CSS 길이) |
|
|
13
|
+
| `color?` | `SColor` | — | 아이콘 색상. 팔레트 키(`grey_65`, `red_95` …) 또는 임의 CSS 색상. 미지정 시 currentColor 상속 |
|
|
14
|
+
| `rotate?` | `0 \| 90 \| 180 \| 270` | — | 회전 각도 |
|
|
15
|
+
| `label?` | `string` | — | 접근성 라벨. 없으면 aria-hidden 처리 |
|
|
16
|
+
| `className?` | `string` | — | |
|
|
17
|
+
| `style?` | `CSSProperties` | — | |
|
|
18
|
+
|
|
19
|
+
## Dependencies
|
|
20
|
+
|
|
21
|
+
### Used by
|
|
22
|
+
|
|
23
|
+
- [SButton](../SButton)
|
|
24
|
+
- [SCallout](../SCallout)
|
|
25
|
+
- [SCheckbox](../SCheckbox)
|
|
26
|
+
- [SChipInput](../SChipInput)
|
|
27
|
+
- [SConfirmModal](../SConfirmModal)
|
|
28
|
+
- [SDatePicker](../SDatePicker)
|
|
29
|
+
- [SDateRangePicker](../SDateRangePicker)
|
|
30
|
+
- [SDraggableItem](../SDraggableItem)
|
|
31
|
+
- [SDropdownButton](../SDropdownButton)
|
|
32
|
+
- [SExpansionItem](../SExpansionItem)
|
|
33
|
+
- [SField](../SField)
|
|
34
|
+
- [SFilePicker](../SFilePicker)
|
|
35
|
+
- [SGhostButton](../SGhostButton)
|
|
36
|
+
- [SGnb](../SGnb)
|
|
37
|
+
- [SGuide](../SGuide)
|
|
38
|
+
- [SKeyValueTable](../SKeyValueTable)
|
|
39
|
+
- [SList](../SList)
|
|
40
|
+
- [SLoadingModal](../SLoadingModal)
|
|
41
|
+
- [SNumberInput](../SNumberInput)
|
|
42
|
+
- [SPagination](../SPagination)
|
|
43
|
+
- [SPopover](../SPopover)
|
|
44
|
+
- [SSectionHeaderCard](../SSectionHeaderCard)
|
|
45
|
+
- [SSelect](../SSelect)
|
|
46
|
+
- [SStepper](../SStepper)
|
|
47
|
+
- [STable](../STable)
|
|
48
|
+
- [STag](../STag)
|
|
49
|
+
- [STextLink](../STextLink)
|
|
50
|
+
- [STimePicker](../STimePicker)
|
|
51
|
+
- [STimeRangePicker](../STimeRangePicker)
|
|
52
|
+
- [SToast](../SToast)
|
|
53
|
+
- [STooltip](../STooltip)
|
|
54
|
+
|
|
55
|
+
### Graph
|
|
56
|
+
|
|
57
|
+
```mermaid
|
|
58
|
+
graph TD;
|
|
59
|
+
SButton --> SIcon
|
|
60
|
+
SCallout --> SIcon
|
|
61
|
+
SCheckbox --> SIcon
|
|
62
|
+
SChipInput --> SIcon
|
|
63
|
+
SConfirmModal --> SIcon
|
|
64
|
+
SDatePicker --> SIcon
|
|
65
|
+
SDateRangePicker --> SIcon
|
|
66
|
+
SDraggableItem --> SIcon
|
|
67
|
+
SDropdownButton --> SIcon
|
|
68
|
+
SExpansionItem --> SIcon
|
|
69
|
+
SField --> SIcon
|
|
70
|
+
SFilePicker --> SIcon
|
|
71
|
+
SGhostButton --> SIcon
|
|
72
|
+
SGnb --> SIcon
|
|
73
|
+
SGuide --> SIcon
|
|
74
|
+
SKeyValueTable --> SIcon
|
|
75
|
+
SList --> SIcon
|
|
76
|
+
SLoadingModal --> SIcon
|
|
77
|
+
SNumberInput --> SIcon
|
|
78
|
+
SPagination --> SIcon
|
|
79
|
+
SPopover --> SIcon
|
|
80
|
+
SSectionHeaderCard --> SIcon
|
|
81
|
+
SSelect --> SIcon
|
|
82
|
+
SStepper --> SIcon
|
|
83
|
+
STable --> SIcon
|
|
84
|
+
STag --> SIcon
|
|
85
|
+
STextLink --> SIcon
|
|
86
|
+
STimePicker --> SIcon
|
|
87
|
+
STimeRangePicker --> SIcon
|
|
88
|
+
SToast --> SIcon
|
|
89
|
+
STooltip --> SIcon
|
|
90
|
+
style SIcon fill:#f9f,stroke:#333,stroke-width:4px
|
|
91
|
+
```
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# SInput
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SInput
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `value?` | `string \| number` | — | 값 (제어) |
|
|
12
|
+
| `type?` | `'text' \| 'password' \| 'email' \| 'number' \| 'tel' \| 'search' \| 'url'` | `'text'` | 입력 타입 |
|
|
13
|
+
| `size?` | `SFieldSize` | `'sm'` | 크기 |
|
|
14
|
+
| `icon?` | `SIconName` | — | 좌측 아이콘명 |
|
|
15
|
+
| `iconColor?` | `SColor` | — | 좌측 아이콘 색상 |
|
|
16
|
+
| `prefix?` | `ReactNode` | — | 입력 앞(좌측) 커스텀 노드 — 원본 slot="prefix" |
|
|
17
|
+
| `suffix?` | `ReactNode` | — | 입력 뒤(우측) 커스텀 노드 — 원본 slot="suffix" |
|
|
18
|
+
| `clearable?` | `boolean` | `false` | 지우기 버튼 |
|
|
19
|
+
| `rules?` | `Rule[]` | — | 유효성 규칙 — blur 시 자동 검증 |
|
|
20
|
+
| `status?` | `SFieldStatus` | — | 필드 상태 ('default' | 'pass' | 'error') |
|
|
21
|
+
| `focused?` | `boolean` | — | 포커스 상태 (제어/반영) |
|
|
22
|
+
| `hovered?` | `boolean` | — | 호버 상태 (제어/반영) |
|
|
23
|
+
| `inputClass?` | `string` | — | 내부 input 요소 className |
|
|
24
|
+
| `inputStyle?` | `CSSProperties` | — | 내부 input 요소 style |
|
|
25
|
+
| `label?` | `string` | — | |
|
|
26
|
+
| `labelWidth?` | `number \| string` | — | |
|
|
27
|
+
| `labelTooltip?` | `string` | — | 레이블 툴팁 텍스트 |
|
|
28
|
+
| `labelTooltipProps?` | `Partial<STooltipProps>` | — | 레이블 툴팁 상세 옵션 |
|
|
29
|
+
| `hint?` | `string` | — | |
|
|
30
|
+
| `error?` | `boolean` | — | |
|
|
31
|
+
| `errorMessage?` | `string` | — | |
|
|
32
|
+
| `addonLabel?` | `string` | — | |
|
|
33
|
+
| `addonAlign?` | `SFieldAddonAlign` | — | 어드온 정렬 |
|
|
34
|
+
| `width?` | `number \| string` | — | |
|
|
35
|
+
| `disabled?` | `boolean` | `false` | |
|
|
36
|
+
| `readOnly?` | `boolean` | `false` | |
|
|
37
|
+
| `className?` | `string` | — | |
|
|
38
|
+
| `style?` | `CSSProperties` | — | |
|
|
39
|
+
|
|
40
|
+
#### Events
|
|
41
|
+
|
|
42
|
+
| Event | Type | Description |
|
|
43
|
+
|-------|------|-------------|
|
|
44
|
+
| `onValueChange` | `(value: string) => void` | 값 변경 (sdUpdate) — 문자열 전달 |
|
|
45
|
+
| `onChange` | `InputHTMLAttributes<HTMLInputElement>['onChange']` | 네이티브 onChange (form-agnostic 연동용, RHF 등) |
|
|
46
|
+
|
|
47
|
+
## Dependencies
|
|
48
|
+
|
|
49
|
+
### Used by
|
|
50
|
+
|
|
51
|
+
- [SKeyValueTable](../SKeyValueTable)
|
|
52
|
+
|
|
53
|
+
### Depends on
|
|
54
|
+
|
|
55
|
+
- [SField](../SField)
|
|
56
|
+
- [SGhostButton](../SGhostButton)
|
|
57
|
+
|
|
58
|
+
### Graph
|
|
59
|
+
|
|
60
|
+
```mermaid
|
|
61
|
+
graph TD;
|
|
62
|
+
SInput --> SField
|
|
63
|
+
SInput --> SGhostButton
|
|
64
|
+
SKeyValueTable --> SInput
|
|
65
|
+
style SInput fill:#f9f,stroke:#333,stroke-width:4px
|
|
66
|
+
```
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# SKeyValueTable
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SKeyValueTable
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `fields?` | `SKeyValueField[][]` | `[]` | 2차원 배열. row → [th|td] 필드들 |
|
|
12
|
+
| `values?` | `Record<string, unknown>` | `{}` | field name을 key로 하는 값 객체 (`{ [name]: value }`). 지정 시 해당 field의 값으로 사용되며, field별 `options.value`보다 우선합니다. `onChange`의 `detail.values`와 함께 controlled 패턴으로 사용합니다. |
|
|
13
|
+
| `search?` | `boolean` | `false` | 우측 검색 패널 |
|
|
14
|
+
| `radius?` | `'default' \| 'useTop' \| 'full'` | `'default'` | border-radius 제어 |
|
|
15
|
+
| `className?` | `string` | — | |
|
|
16
|
+
| `style?` | `CSSProperties` | — | |
|
|
17
|
+
|
|
18
|
+
#### Events
|
|
19
|
+
|
|
20
|
+
| Event | Type | Description |
|
|
21
|
+
|-------|------|-------------|
|
|
22
|
+
| `onChange` | `(detail: SKeyValueChangeDetail) => void` | 값 변경 (sdChange) |
|
|
23
|
+
| `onSearch` | `() => void` | 검색 클릭 (sdSearch) |
|
|
24
|
+
|
|
25
|
+
## Dependencies
|
|
26
|
+
|
|
27
|
+
### Depends on
|
|
28
|
+
|
|
29
|
+
- [SButton](../SButton)
|
|
30
|
+
- [SCheckbox](../SCheckbox)
|
|
31
|
+
- [SDatePicker](../SDatePicker)
|
|
32
|
+
- [SDateRangePicker](../SDateRangePicker)
|
|
33
|
+
- [SFilePicker](../SFilePicker)
|
|
34
|
+
- [SIcon](../SIcon)
|
|
35
|
+
- [SInput](../SInput)
|
|
36
|
+
- [SNumberInput](../SNumberInput)
|
|
37
|
+
- [SRadio](../SRadio)
|
|
38
|
+
- [SSelect](../SSelect)
|
|
39
|
+
- [STextarea](../STextarea)
|
|
40
|
+
- [STooltip](../STooltip)
|
|
41
|
+
|
|
42
|
+
### Graph
|
|
43
|
+
|
|
44
|
+
```mermaid
|
|
45
|
+
graph TD;
|
|
46
|
+
SKeyValueTable --> SButton
|
|
47
|
+
SKeyValueTable --> SCheckbox
|
|
48
|
+
SKeyValueTable --> SDatePicker
|
|
49
|
+
SKeyValueTable --> SDateRangePicker
|
|
50
|
+
SKeyValueTable --> SFilePicker
|
|
51
|
+
SKeyValueTable --> SIcon
|
|
52
|
+
SKeyValueTable --> SInput
|
|
53
|
+
SKeyValueTable --> SNumberInput
|
|
54
|
+
SKeyValueTable --> SRadio
|
|
55
|
+
SKeyValueTable --> SSelect
|
|
56
|
+
SKeyValueTable --> STextarea
|
|
57
|
+
SKeyValueTable --> STooltip
|
|
58
|
+
style SKeyValueTable fill:#f9f,stroke:#333,stroke-width:4px
|
|
59
|
+
```
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# SLayout
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SLayout
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `type?` | `SLayoutType` | `'box'` | 메뉴 스타일: box(라운드) / belt(풀폭 행). 자식 SGnb 가 이 값을 따른다. |
|
|
12
|
+
| `header?` | `SLayoutHeader` | `'fix'` | 레이아웃 구조: fix(가로 분할) / full(풀폭 상단바). 자식 SGnb·SPage 가 이 값을 따른다. |
|
|
13
|
+
| `useRail?` | `boolean` | `false` | GNB 좌측 레일 사용 여부. 자식 SGnb 가 이 값을 따르고, full 의 메뉴 열 폭도 레일만큼 넓어진다. 레일에 children 없는 아이템이 있으면 SGnb 가 header 를 full 로 강제하고, 이 레이아웃도 그에 맞춰 full 그리드로 선다. |
|
|
14
|
+
| `folded?` | `boolean` | — | GNB 접힘 상태 (controlled) |
|
|
15
|
+
| `defaultFolded?` | `boolean` | `false` | GNB 초기 접힘 상태 (uncontrolled) |
|
|
16
|
+
|
|
17
|
+
#### Events
|
|
18
|
+
|
|
19
|
+
| Event | Type | Description |
|
|
20
|
+
|-------|------|-------------|
|
|
21
|
+
| `onFoldedChange` | `(folded: boolean) => void` | 접힘 상태 변경 |
|
|
22
|
+
|
|
23
|
+
## Dependencies
|
|
24
|
+
|
|
25
|
+
### Used by
|
|
26
|
+
|
|
27
|
+
- [SGnb](../SGnb)
|
|
28
|
+
- [SPage](../SPage)
|
|
29
|
+
|
|
30
|
+
### Depends on
|
|
31
|
+
|
|
32
|
+
- [SGnb](../SGnb)
|
|
33
|
+
|
|
34
|
+
### Graph
|
|
35
|
+
|
|
36
|
+
```mermaid
|
|
37
|
+
graph TD;
|
|
38
|
+
SLayout --> SGnb
|
|
39
|
+
SGnb --> SLayout
|
|
40
|
+
SPage --> SLayout
|
|
41
|
+
style SLayout fill:#f9f,stroke:#333,stroke-width:4px
|
|
42
|
+
```
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# SLinearProgress
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SLinearProgress
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `value?` | `number` | `0` | 진행률 (0–100) |
|
|
12
|
+
| `type?` | `SLinearProgressType` | `'primary'` | 색상 타입 |
|
|
13
|
+
| `indeterminate?` | `boolean` | `false` | 진행률 없이 무한 애니메이션 |
|
|
14
|
+
| `label?` | `string` | — | 하단 레이블 |
|
|
15
|
+
| `className?` | `string` | — | |
|
|
16
|
+
| `style?` | `CSSProperties` | — | |
|
|
17
|
+
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# SList
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SList
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `children?` | `ReactNode` | — | 리스트 컨테이너 내부에 렌더링할 내용 |
|
|
12
|
+
| `useGap?` | `boolean` | `false` | 리스트 아이템 사이 gap 토큰 적용 여부 |
|
|
13
|
+
| `usePadding?` | `boolean` | `false` | 리스트 컨테이너 padding 토큰 적용 여부 |
|
|
14
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# SListItem
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SListItem
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `title` | `SListItemSlot` | — | 리스트 아이템 제목 |
|
|
12
|
+
| `depth?` | `1 \| 2 \| 3` | `1` | 중첩 단계. Figma 기준 1~3단계 |
|
|
13
|
+
| `leading?` | `SListItemSlot` | — | 타이틀 앞에 표시할 아이콘/콘텐츠 |
|
|
14
|
+
| `trailing?` | `SListItemSlot` | — | 타이틀 뒤에 표시할 태그/콘텐츠 |
|
|
15
|
+
| `bordered?` | `boolean` | `false` | 외곽 테두리 사용 여부 |
|
|
16
|
+
| `accentStripe?` | `boolean` | `false` | 아이템 왼쪽 accent stripe 표시 여부 |
|
|
17
|
+
| `dense?` | `boolean` | `false` | 조밀한 높이 사용 여부 |
|
|
18
|
+
| `disabled?` | `boolean` | `false` | 비활성 상태 여부 |
|
|
19
|
+
|