sellmate-design-system-react 9.0.0-beta.4 → 9.0.0-beta.40
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 +642 -88
- package/README.md +111 -9
- package/dist/components/SAccountListBox/AccountListBoxPortal.d.ts +31 -0
- package/dist/components/SAccountListBox/README.md +86 -0
- package/dist/components/SAccountListBox/SAccountListBox.d.ts +79 -0
- package/dist/components/SAccountListBox/SystemMenuPortal.d.ts +58 -0
- package/dist/components/SAccountListBox/accountListBox.config.d.ts +64 -0
- package/dist/components/SAccountListBox/index.d.ts +2 -0
- package/dist/components/SBadge/README.md +26 -0
- package/dist/components/SBadge/SBadge.d.ts +1 -1
- package/dist/components/SBarcodeInput/README.md +9 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.d.ts +7 -1
- package/dist/components/SButton/README.md +38 -0
- package/dist/components/SCalendar/README.md +13 -0
- package/dist/components/SCalendarBoard/CalendarDayCard.d.ts +38 -0
- package/dist/components/SCalendarBoard/CalendarDayEventListBox.d.ts +26 -0
- package/dist/components/SCalendarBoard/CalendarEventButton.d.ts +13 -0
- package/dist/components/SCalendarBoard/CalendarMoreButton.d.ts +12 -0
- package/dist/components/SCalendarBoard/README.md +137 -0
- package/dist/components/SCalendarBoard/SCalendarBoard.d.ts +68 -0
- package/dist/components/SCalendarBoard/calendarBoard.config.d.ts +33 -0
- package/dist/components/SCalendarBoard/index.d.ts +3 -0
- package/dist/components/SCalendarBoard/types.d.ts +31 -0
- package/dist/components/SCallout/README.md +16 -1
- package/dist/components/SCallout/SCallout.d.ts +9 -4
- package/dist/components/SCard/README.md +16 -0
- package/dist/components/SCard/SCard.d.ts +17 -2
- package/dist/components/SCheckbox/README.md +8 -0
- package/dist/components/SChipFilter/README.md +339 -14
- package/dist/components/SChipFilter/SChipFilter.d.ts +150 -60
- package/dist/components/SChipFilter/index.d.ts +1 -1
- package/dist/components/SChipInput/README.md +15 -1
- package/dist/components/SChipInput/SChipInput.d.ts +7 -1
- package/dist/components/SChipInput/index.d.ts +1 -1
- package/dist/components/SCircleProgress/README.md +8 -0
- package/dist/components/SConfirmModal/README.md +17 -1
- package/dist/components/SConfirmModal/SConfirmModal.d.ts +2 -2
- package/dist/components/SConfirmModal/index.d.ts +1 -1
- package/dist/components/SDatePicker/README.md +20 -2
- package/dist/components/SDatePicker/SDatePicker.d.ts +27 -4
- package/dist/components/SDateRangePicker/README.md +17 -2
- package/dist/components/SDateRangePicker/SDateRangePicker.d.ts +16 -3
- package/dist/components/SDivider/README.md +7 -0
- package/dist/components/SDivider/SDivider.d.ts +11 -0
- package/dist/components/SDraggableItem/README.md +37 -0
- package/dist/components/SDraggableItem/SDraggableItem.d.ts +2 -0
- package/dist/components/SDraggableItem/index.d.ts +1 -1
- package/dist/components/SDraggableList/README.md +30 -0
- package/dist/components/SDraggableList/SDraggableList.d.ts +11 -0
- package/dist/components/SDraggableList/index.d.ts +1 -1
- package/dist/components/SDrawer/README.md +8 -0
- package/dist/components/SDropdownButton/README.md +19 -0
- package/dist/components/SEditor/EditorBody.d.ts +36 -0
- package/dist/components/SEditor/EditorToolbar.d.ts +93 -0
- package/dist/components/SEditor/README.md +203 -0
- package/dist/components/SEditor/SEditor.d.ts +114 -0
- package/dist/components/SEditor/editor-icons.d.ts +63 -0
- package/dist/components/SEditor/editor.config.d.ts +119 -0
- package/dist/components/SEditor/index.d.ts +8 -0
- package/dist/components/SEditor/tiptap-api.d.ts +29 -0
- package/dist/components/SEditor/use-is-mobile.d.ts +14 -0
- package/dist/components/SExpansionItem/README.md +36 -0
- package/dist/components/SExpansionItem/index.d.ts +1 -1
- package/dist/components/SField/README.md +27 -3
- package/dist/components/SField/SField.d.ts +12 -6
- package/dist/components/SFilePicker/README.md +15 -1
- package/dist/components/SFilePicker/SFilePicker.d.ts +7 -1
- package/dist/components/SFooter/README.md +25 -0
- package/dist/components/SFooter/SFooter.d.ts +4 -3
- package/dist/components/SForm/README.md +11 -0
- package/dist/components/SGhostButton/README.md +22 -4
- package/dist/components/SGnb/README.md +51 -0
- package/dist/components/SGnb/SGnb.d.ts +50 -0
- package/dist/components/SGnb/gnb.config.d.ts +10 -3
- package/dist/components/SGnb/index.d.ts +1 -1
- package/dist/components/SGnbSystem/README.md +186 -0
- package/dist/components/SGnbSystem/SGnbSystem.d.ts +179 -0
- package/dist/components/SGnbSystem/gnbSystem.config.d.ts +122 -0
- package/dist/components/SGnbSystem/index.d.ts +2 -0
- package/dist/components/SGuide/README.md +15 -0
- package/dist/components/SIcon/README.md +10 -0
- package/dist/components/SIcon/SIcon.d.ts +1 -1
- package/dist/components/SIcon/icons.gen.d.ts +4 -0
- package/dist/components/SImage/README.md +14 -0
- package/dist/components/SInput/README.md +3 -1
- package/dist/components/SInput/SInput.d.ts +7 -1
- package/dist/components/SKeyValueTable/README.md +86 -0
- package/dist/components/SKeyValueTable/SKeyValueTable.d.ts +6 -2
- package/dist/components/SKeyValueTable/index.d.ts +1 -1
- package/dist/components/SLayout/README.md +21 -0
- package/dist/components/SLayout/SLayout.d.ts +4 -0
- package/dist/components/SLayout/index.d.ts +1 -1
- package/dist/components/SLinearProgress/README.md +15 -0
- package/dist/components/SLinearProgress/SLinearProgress.d.ts +3 -0
- package/dist/components/SLinearProgress/index.d.ts +1 -1
- package/dist/components/SList/README.md +5 -1
- package/dist/components/SList/SList.d.ts +0 -2
- package/dist/components/SListItem/README.md +41 -0
- package/dist/components/SListItem/index.d.ts +1 -1
- package/dist/components/SLoadingContainer/loading.d.ts +18 -2
- package/dist/components/SLoadingModal/README.md +9 -1
- package/dist/components/SLoadingModal/SLoadingModal.d.ts +2 -2
- package/dist/components/SLoadingModal/index.d.ts +1 -1
- package/dist/components/SNumberInput/README.md +9 -1
- package/dist/components/SNumberInput/SNumberInput.d.ts +7 -1
- package/dist/components/SPage/README.md +47 -4
- package/dist/components/SPage/SPage.d.ts +15 -10
- package/dist/components/SPage/SPageHeader.d.ts +18 -11
- package/dist/components/SPage/index.d.ts +1 -1
- package/dist/components/SPage/page-column.d.ts +25 -0
- package/dist/components/SPopover/README.md +15 -0
- package/dist/components/SPopup/README.md +19 -0
- package/dist/components/SPortal/README.md +18 -0
- package/dist/components/SRadio/README.md +20 -0
- package/dist/components/SRadioButton/README.md +18 -0
- package/dist/components/SRadioButton/SRadioButton.d.ts +1 -1
- package/dist/components/SRadioCard/README.md +78 -0
- package/dist/components/SRadioCard/SRadioCard.d.ts +29 -0
- package/dist/components/SRadioCard/SRadioCardGroup.d.ts +36 -0
- package/dist/components/SRadioCard/index.d.ts +2 -0
- package/dist/components/SScrollArea/README.md +27 -0
- package/dist/components/SSearchInput/README.md +63 -0
- package/dist/components/SSearchInput/SSearchInput.d.ts +52 -0
- package/dist/components/SSearchInput/index.d.ts +1 -0
- package/dist/components/SSectionHeaderCard/README.md +37 -0
- package/dist/components/SSectionHeaderCard/SSectionHeaderCard.d.ts +10 -0
- package/dist/components/SSelect/README.md +24 -6
- package/dist/components/SSelect/SSelect.d.ts +14 -2
- package/dist/components/SSplitter/README.md +15 -0
- package/dist/components/SStepper/README.md +26 -0
- package/dist/components/SSwitch/README.md +13 -0
- package/dist/components/SSystemActionButton/README.md +221 -0
- package/dist/components/SSystemActionButton/SSystemActionButton.d.ts +161 -0
- package/dist/components/SSystemActionButton/index.d.ts +2 -0
- package/dist/components/SSystemActionButton/systemActionButton.config.d.ts +93 -0
- package/dist/components/STable/README.md +86 -1
- package/dist/components/STable/STable.d.ts +121 -11
- package/dist/components/STable/index.d.ts +1 -1
- package/dist/components/STabs/README.md +12 -1
- package/dist/components/STabs/STabs.d.ts +2 -4
- package/dist/components/STabs/index.d.ts +1 -1
- package/dist/components/STabs/tabs.config.d.ts +3 -4
- package/dist/components/STag/README.md +52 -0
- package/dist/components/STag/STag.d.ts +3 -1
- package/dist/components/STextLink/README.md +18 -0
- package/dist/components/STextLink/STextLink.d.ts +4 -0
- package/dist/components/STextarea/README.md +1 -1
- package/dist/components/STextarea/STextarea.d.ts +7 -1
- package/dist/components/STimePicker/README.md +15 -1
- package/dist/components/STimePicker/STimePicker.d.ts +7 -1
- package/dist/components/STimePicker/timepicker.config.d.ts +4 -2
- package/dist/components/STimeRangePicker/README.md +27 -1
- package/dist/components/STimeRangePicker/STimeRangePicker.d.ts +7 -1
- package/dist/components/SToast/README.md +24 -0
- package/dist/components/SToggle/README.md +8 -0
- package/dist/components/SToggle/index.d.ts +1 -1
- package/dist/components/STooltip/README.md +24 -0
- package/dist/components/STree/README.md +41 -0
- package/dist/components/STree/STree.d.ts +8 -0
- package/dist/components/STree/index.d.ts +1 -1
- package/dist/docs/Gallery.d.ts +9 -0
- package/dist/docs/gallery-previews.d.ts +24 -0
- package/dist/index.cjs +10754 -5244
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.js +10718 -5244
- package/dist/index.js.map +1 -1
- package/dist/lib/doc-sections.d.ts +35 -0
- package/dist/lib/field-width.d.ts +31 -0
- package/dist/lib/floating-height.d.ts +15 -0
- package/dist/lib/story-docs.d.ts +19 -3
- package/dist/lib/truncated-value-tooltip.d.ts +18 -0
- package/dist/llms-full.txt +3263 -228
- package/dist/llms.txt +647 -90
- package/dist/playground/categories.d.ts +19 -0
- package/dist/styles.css +1725 -169
- package/dist/theme.css +216 -24
- package/eslint/index.mjs +14 -0
- package/eslint/lib/table-column.mjs +26 -0
- package/eslint/rules/divider-vertical-height.mjs +137 -0
- package/eslint/rules/field-width-grade.d.mts +41 -0
- package/eslint/rules/field-width-grade.mjs +311 -0
- package/eslint/rules/table-column-width.mjs +110 -0
- package/eslint/scale.gen.mjs +5 -2
- package/package.json +13 -1
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { SSystemActionButtonColor } from '../SSystemActionButton';
|
|
2
|
+
/**
|
|
3
|
+
* SGnbSystem 설정.
|
|
4
|
+
*
|
|
5
|
+
* 토큰은 GNB system 패널 한 벌(`--cmp-gnb-system-*`)이다.
|
|
6
|
+
* 패널(배경·경계·구분선·간격) → --cmp-gnb-system-panel-*
|
|
7
|
+
* 도메인 태그 → --cmp-gnb-system-domainTag-*
|
|
8
|
+
* 행 공통(높이·라운드·아이콘 프레임) → --cmp-gnb-system-item-* (SSystemActionButton 과 공유)
|
|
9
|
+
* 알림 버튼 → --cmp-gnb-system-alertButton-*
|
|
10
|
+
* 설정 버튼 → --cmp-gnb-system-setting-*
|
|
11
|
+
* 펼침·접힘 패널 여백 → --cmp-gnb-system-project-padding · --cmp-gnb-system-min-padding
|
|
12
|
+
*
|
|
13
|
+
* 타이포그래피는 CSS 변수가 아니라 `.typo-*` 프리셋으로 나온다.
|
|
14
|
+
* domainTag.typography → typo-body-sm-medium (12/500/20)
|
|
15
|
+
* item.label.typography → typo-body-sm-semibold (12/600/20)
|
|
16
|
+
* alertButton.count → typo-body-md-bold (13/700/22)
|
|
17
|
+
*/
|
|
18
|
+
/** 색상(표면). light = 흰 면, dark = 오션블루 면. GNB 의 color 를 그대로 따라간다 */
|
|
19
|
+
export declare const GNB_SYSTEM_COLORS: readonly ["light", "dark"];
|
|
20
|
+
export type SGnbSystemColor = (typeof GNB_SYSTEM_COLORS)[number];
|
|
21
|
+
/**
|
|
22
|
+
* 조각들이 놓이는 자리. GNB 의 `header` 가 정하므로 앱이 고르지 않는다.
|
|
23
|
+
* - `panel` — GNB 바닥에 깔리는 세로 판 (header="fix"). 접히면 48px 레일용 min 형태가 된다.
|
|
24
|
+
* - `top` — 레이아웃 전폭 상단바 위 (header="full"). 판을 깔지 않고 가로 한 줄로 선다.
|
|
25
|
+
*/
|
|
26
|
+
export declare const GNB_SYSTEM_PLACEMENTS: readonly ["panel", "top"];
|
|
27
|
+
export type SGnbSystemPlacement = (typeof GNB_SYSTEM_PLACEMENTS)[number];
|
|
28
|
+
/**
|
|
29
|
+
* 패널 색이 곧 행 색이다 — 행(아이콘 프레임·라벨·hover)은 SSystemActionButton 과 같은
|
|
30
|
+
* `--cmp-gnb-system-item-*` 토큰을 쓰므로, 그 색표를 그대로 빌려 두 컴포넌트가 어긋나지 않게 한다.
|
|
31
|
+
* `darker`(판 없이 어두운 GNB 면에 바로 얹는 색)는 판을 깔지 않는 `top` 자리가 쓴다
|
|
32
|
+
* → GNB_SYSTEM_TOP_COLOR_CONFIG.
|
|
33
|
+
*/
|
|
34
|
+
export type GnbSystemItemColor = SSystemActionButtonColor;
|
|
35
|
+
export interface GnbSystemColorTokens {
|
|
36
|
+
/** 패널 배경 */
|
|
37
|
+
bg: string;
|
|
38
|
+
/**
|
|
39
|
+
* 패널 위쪽 경계 (GNB 본문과 나누는 선). 배경만으로 경계가 읽히는 색에서는 없다.
|
|
40
|
+
* 토큰에는 light·dark 모두 정의돼 있지만, dark 는 시안이 선을 긋지 않는다 — 아래 주석 참고.
|
|
41
|
+
*/
|
|
42
|
+
border?: string;
|
|
43
|
+
/** 패널 안 구분선 (가로 divider · 알림↔설정 세로선) */
|
|
44
|
+
divider: string;
|
|
45
|
+
/** 도메인 태그 배경 */
|
|
46
|
+
domainBg: string;
|
|
47
|
+
/** 도메인 태그 글자색 */
|
|
48
|
+
domainText: string;
|
|
49
|
+
/** 알림이 있을 때의 벨 글리프색 */
|
|
50
|
+
alertIcon: string;
|
|
51
|
+
/** 알림 개수(펼침) · 점 배지(접힘) 색 */
|
|
52
|
+
alertCount: string;
|
|
53
|
+
/** 알림이 있을 때의 hover 배경. 없으면 행 기본 hover 를 쓴다 */
|
|
54
|
+
alertHoverBg?: string;
|
|
55
|
+
}
|
|
56
|
+
export declare const GNB_SYSTEM_COLOR_CONFIG: Record<SGnbSystemColor, GnbSystemColorTokens>;
|
|
57
|
+
/**
|
|
58
|
+
* `top` 자리(전폭 상단바)의 색.
|
|
59
|
+
*
|
|
60
|
+
* 상단바에는 판을 깔지 않고 조각을 GNB 면에 바로 얹는다 — 그래서 행 색이 패널과 한 단계 다르다.
|
|
61
|
+
* dark 는 패널의 오션블루(`dark`)가 아니라 GNB 네이비 면용 `darker` 를 쓰고, 구분선·도메인 태그도
|
|
62
|
+
* 그에 맞춘 `*-darker-*` 토큰을 쓴다. 알림 강조색은 darker 대응 토큰이 없어 dark 값을 그대로 쓴다
|
|
63
|
+
* (두 면 모두 어두운 면이라 같은 노랑이 맞는다).
|
|
64
|
+
*/
|
|
65
|
+
export interface GnbSystemTopColorTokens {
|
|
66
|
+
/** 조각(액션·알림·설정·계정)이 쓰는 행 색 */
|
|
67
|
+
item: GnbSystemItemColor;
|
|
68
|
+
/** 조각 사이 세로 구분선 */
|
|
69
|
+
divider: string;
|
|
70
|
+
/** 도메인 태그 배경 */
|
|
71
|
+
domainBg: string;
|
|
72
|
+
/** 도메인 태그 글자색 */
|
|
73
|
+
domainText: string;
|
|
74
|
+
/** 알림이 있을 때의 벨 글리프색 */
|
|
75
|
+
alertIcon: string;
|
|
76
|
+
/** 알림 개수 색 */
|
|
77
|
+
alertCount: string;
|
|
78
|
+
/** 알림이 있을 때의 hover 배경. 없으면 행 기본 hover 를 쓴다 */
|
|
79
|
+
alertHoverBg?: string;
|
|
80
|
+
}
|
|
81
|
+
export declare const GNB_SYSTEM_TOP_COLOR_CONFIG: Record<SGnbSystemColor, GnbSystemTopColorTokens>;
|
|
82
|
+
/** 치수 — 전부 토큰 참조 */
|
|
83
|
+
export declare const GNB_SYSTEM_LAYOUT: {
|
|
84
|
+
/** 펼친 패널의 안쪽 여백 */
|
|
85
|
+
readonly padding: "var(--cmp-gnb-system-project-padding)";
|
|
86
|
+
/** 접힌(min) 패널의 안쪽 여백 */
|
|
87
|
+
readonly foldedPadding: "var(--cmp-gnb-system-min-padding)";
|
|
88
|
+
/**
|
|
89
|
+
* 패널이 쌓는 블록 사이 간격. 알림↔설정 사이의 가로 간격도 전용 토큰이 없어 이 값을 쓴다
|
|
90
|
+
* (시안에서 두 간격이 같다).
|
|
91
|
+
*/
|
|
92
|
+
readonly gap: string;
|
|
93
|
+
/** 행 높이 */
|
|
94
|
+
readonly itemHeight: string;
|
|
95
|
+
/** 행 라운드 */
|
|
96
|
+
readonly itemRadius: string;
|
|
97
|
+
/** 아이콘 프레임 한 변 */
|
|
98
|
+
readonly iconFrame: string;
|
|
99
|
+
/** 아이콘 글리프 크기 */
|
|
100
|
+
readonly iconGlyph: string;
|
|
101
|
+
/** 아이콘 프레임 라운드 */
|
|
102
|
+
readonly iconRadius: string;
|
|
103
|
+
/** 아이콘 프레임 ↔ 라벨 간격 */
|
|
104
|
+
readonly iconLabelGap: string;
|
|
105
|
+
/** 알림 버튼 좌우 여백 */
|
|
106
|
+
readonly alertPaddingX: string;
|
|
107
|
+
/** 설정 버튼 좌우 여백 */
|
|
108
|
+
readonly settingPaddingX: "var(--cmp-gnb-system-setting-paddingX)";
|
|
109
|
+
/** 도메인 태그 */
|
|
110
|
+
readonly domainPaddingX: string;
|
|
111
|
+
readonly domainPaddingY: string;
|
|
112
|
+
readonly domainRadius: string;
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* 알림 점 배지 지름(px). 접힌 패널에는 개수를 적을 자리가 없어 점만 찍는다.
|
|
116
|
+
* 전용 토큰이 없어 시안 값을 상수로 둔다.
|
|
117
|
+
*/
|
|
118
|
+
export declare const GNB_SYSTEM_ALERT_DOT_SIZE = 6;
|
|
119
|
+
/** 알림 버튼 기본 라벨 */
|
|
120
|
+
export declare const GNB_SYSTEM_ALERT_LABEL = "\uC54C\uB9BC";
|
|
121
|
+
/** 설정 버튼 기본 라벨 */
|
|
122
|
+
export declare const GNB_SYSTEM_SETTING_LABEL = "\uC124\uC815";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { SGnbSystem, type SGnbSystemProps, type SGnbSystemAction, type SGnbSystemAlert, type SGnbSystemSetting, type SGnbSystemAccount, } from './SGnbSystem';
|
|
2
|
+
export { GNB_SYSTEM_COLORS, GNB_SYSTEM_COLOR_CONFIG, GNB_SYSTEM_LAYOUT, GNB_SYSTEM_PLACEMENTS, GNB_SYSTEM_TOP_COLOR_CONFIG, type SGnbSystemColor, type SGnbSystemPlacement, type GnbSystemColorTokens, type GnbSystemTopColorTokens, } from './gnbSystem.config';
|
|
@@ -17,6 +17,21 @@
|
|
|
17
17
|
| `className?` | `string` | — | |
|
|
18
18
|
| `style?` | `CSSProperties` | — | |
|
|
19
19
|
|
|
20
|
+
## Types
|
|
21
|
+
|
|
22
|
+
### SGuideType
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
export type SGuideType = 'tip' | 'notion';
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### SGuideMessage
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
/** 중첩 배열로 depth 표현 (원본 renderListItem 대응). 예: ['상위', ['하위1', '하위2']] */
|
|
32
|
+
export type SGuideMessage = string | SGuideMessage[];
|
|
33
|
+
```
|
|
34
|
+
|
|
20
35
|
## Dependencies
|
|
21
36
|
|
|
22
37
|
### Depends on
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
### Used by
|
|
22
22
|
|
|
23
|
+
- [SAccountListBox](../SAccountListBox)
|
|
23
24
|
- [SButton](../SButton)
|
|
24
25
|
- [SCallout](../SCallout)
|
|
25
26
|
- [SCheckbox](../SCheckbox)
|
|
@@ -30,11 +31,13 @@
|
|
|
30
31
|
- [SDateRangePicker](../SDateRangePicker)
|
|
31
32
|
- [SDraggableItem](../SDraggableItem)
|
|
32
33
|
- [SDropdownButton](../SDropdownButton)
|
|
34
|
+
- [SEditor](../SEditor)
|
|
33
35
|
- [SExpansionItem](../SExpansionItem)
|
|
34
36
|
- [SField](../SField)
|
|
35
37
|
- [SFilePicker](../SFilePicker)
|
|
36
38
|
- [SGhostButton](../SGhostButton)
|
|
37
39
|
- [SGnb](../SGnb)
|
|
40
|
+
- [SGnbSystem](../SGnbSystem)
|
|
38
41
|
- [SGuide](../SGuide)
|
|
39
42
|
- [SImage](../SImage)
|
|
40
43
|
- [SKeyValueTable](../SKeyValueTable)
|
|
@@ -43,9 +46,11 @@
|
|
|
43
46
|
- [SNumberInput](../SNumberInput)
|
|
44
47
|
- [SPagination](../SPagination)
|
|
45
48
|
- [SPopover](../SPopover)
|
|
49
|
+
- [SSearchInput](../SSearchInput)
|
|
46
50
|
- [SSectionHeaderCard](../SSectionHeaderCard)
|
|
47
51
|
- [SSelect](../SSelect)
|
|
48
52
|
- [SStepper](../SStepper)
|
|
53
|
+
- [SSystemActionButton](../SSystemActionButton)
|
|
49
54
|
- [STable](../STable)
|
|
50
55
|
- [STag](../STag)
|
|
51
56
|
- [STextLink](../STextLink)
|
|
@@ -58,6 +63,7 @@
|
|
|
58
63
|
|
|
59
64
|
```mermaid
|
|
60
65
|
graph TD;
|
|
66
|
+
SAccountListBox --> SIcon
|
|
61
67
|
SButton --> SIcon
|
|
62
68
|
SCallout --> SIcon
|
|
63
69
|
SCheckbox --> SIcon
|
|
@@ -68,11 +74,13 @@ graph TD;
|
|
|
68
74
|
SDateRangePicker --> SIcon
|
|
69
75
|
SDraggableItem --> SIcon
|
|
70
76
|
SDropdownButton --> SIcon
|
|
77
|
+
SEditor --> SIcon
|
|
71
78
|
SExpansionItem --> SIcon
|
|
72
79
|
SField --> SIcon
|
|
73
80
|
SFilePicker --> SIcon
|
|
74
81
|
SGhostButton --> SIcon
|
|
75
82
|
SGnb --> SIcon
|
|
83
|
+
SGnbSystem --> SIcon
|
|
76
84
|
SGuide --> SIcon
|
|
77
85
|
SImage --> SIcon
|
|
78
86
|
SKeyValueTable --> SIcon
|
|
@@ -81,9 +89,11 @@ graph TD;
|
|
|
81
89
|
SNumberInput --> SIcon
|
|
82
90
|
SPagination --> SIcon
|
|
83
91
|
SPopover --> SIcon
|
|
92
|
+
SSearchInput --> SIcon
|
|
84
93
|
SSectionHeaderCard --> SIcon
|
|
85
94
|
SSelect --> SIcon
|
|
86
95
|
SStepper --> SIcon
|
|
96
|
+
SSystemActionButton --> SIcon
|
|
87
97
|
STable --> SIcon
|
|
88
98
|
STag --> SIcon
|
|
89
99
|
STextLink --> SIcon
|
|
@@ -17,6 +17,6 @@ export interface SIconProps {
|
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* SIcon — sd-icon 포팅.
|
|
20
|
-
*
|
|
20
|
+
* icons.gen.tsx 의 SVG 를 currentColor 기반으로 렌더한다.
|
|
21
21
|
*/
|
|
22
22
|
export declare const SIcon: import("react").ForwardRefExoticComponent<SIconProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
@@ -3,6 +3,7 @@ export type IconRenderProps = {
|
|
|
3
3
|
size?: number | string;
|
|
4
4
|
} & SVGProps<SVGSVGElement>;
|
|
5
5
|
export declare const ICONS: {
|
|
6
|
+
readonly account: (p: IconRenderProps) => import("react").JSX.Element;
|
|
6
7
|
readonly add: (p: IconRenderProps) => import("react").JSX.Element;
|
|
7
8
|
readonly alert: (p: IconRenderProps) => import("react").JSX.Element;
|
|
8
9
|
readonly alignKorean: (p: IconRenderProps) => import("react").JSX.Element;
|
|
@@ -15,6 +16,7 @@ export declare const ICONS: {
|
|
|
15
16
|
readonly attachFile: (p: IconRenderProps) => import("react").JSX.Element;
|
|
16
17
|
readonly barcode: (p: IconRenderProps) => import("react").JSX.Element;
|
|
17
18
|
readonly bell: (p: IconRenderProps) => import("react").JSX.Element;
|
|
19
|
+
readonly bellRinging: (p: IconRenderProps) => import("react").JSX.Element;
|
|
18
20
|
readonly bill: (p: IconRenderProps) => import("react").JSX.Element;
|
|
19
21
|
readonly board: (p: IconRenderProps) => import("react").JSX.Element;
|
|
20
22
|
readonly box: (p: IconRenderProps) => import("react").JSX.Element;
|
|
@@ -39,6 +41,7 @@ export declare const ICONS: {
|
|
|
39
41
|
readonly clockFill: (p: IconRenderProps) => import("react").JSX.Element;
|
|
40
42
|
readonly clockOutline: (p: IconRenderProps) => import("react").JSX.Element;
|
|
41
43
|
readonly close: (p: IconRenderProps) => import("react").JSX.Element;
|
|
44
|
+
readonly company: (p: IconRenderProps) => import("react").JSX.Element;
|
|
42
45
|
readonly copy: (p: IconRenderProps) => import("react").JSX.Element;
|
|
43
46
|
readonly coupon: (p: IconRenderProps) => import("react").JSX.Element;
|
|
44
47
|
readonly dashboard: (p: IconRenderProps) => import("react").JSX.Element;
|
|
@@ -76,6 +79,7 @@ export declare const ICONS: {
|
|
|
76
79
|
readonly reset: (p: IconRenderProps) => import("react").JSX.Element;
|
|
77
80
|
readonly robot: (p: IconRenderProps) => import("react").JSX.Element;
|
|
78
81
|
readonly row: (p: IconRenderProps) => import("react").JSX.Element;
|
|
82
|
+
readonly rowDense: (p: IconRenderProps) => import("react").JSX.Element;
|
|
79
83
|
readonly save: (p: IconRenderProps) => import("react").JSX.Element;
|
|
80
84
|
readonly search: (p: IconRenderProps) => import("react").JSX.Element;
|
|
81
85
|
readonly send: (p: IconRenderProps) => import("react").JSX.Element;
|
|
@@ -27,6 +27,20 @@
|
|
|
27
27
|
| `onLoad` | `(src: string) => void` | 로드 완료. 로드된 src 를 넘긴다 |
|
|
28
28
|
| `onError` | `(event: SyntheticEvent<HTMLImageElement>) => void` | 로드 실패 |
|
|
29
29
|
|
|
30
|
+
## Types
|
|
31
|
+
|
|
32
|
+
### SImageFit
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
export type SImageFit = (typeof IMAGE_FITS)[number];
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### IMAGE_FITS
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
export const IMAGE_FITS = ['cover', 'contain', 'fill', 'none', 'scale-down'] as const;
|
|
42
|
+
```
|
|
43
|
+
|
|
30
44
|
## Dependencies
|
|
31
45
|
|
|
32
46
|
### Depends on
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
| `errorMessage?` | `string` | — | |
|
|
32
32
|
| `addonLabel?` | `string` | — | |
|
|
33
33
|
| `addonAlign?` | `SFieldAddonAlign` | — | 어드온 정렬 |
|
|
34
|
-
| `width?` | `
|
|
34
|
+
| `width?` | `SFieldWidth` | — | 컨트롤 너비 — 폭 등급(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) · 숫자=px · CSS 길이. 등급은 `--cmp-field-width-*` 토큰으로 풀리며 `maxLength`(= 스키마 상한)로 고른다. 상한이 `xl` 을 넘거나 상한이 없으면 `"100%"`. (`sellmate/field-width-grade` 가 검사한다) |
|
|
35
35
|
| `disabled?` | `boolean` | `false` | |
|
|
36
36
|
| `readOnly?` | `boolean` | `false` | |
|
|
37
37
|
| `className?` | `string` | — | |
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
|
|
49
49
|
### Used by
|
|
50
50
|
|
|
51
|
+
- [SEditor](../SEditor)
|
|
51
52
|
- [SKeyValueTable](../SKeyValueTable)
|
|
52
53
|
|
|
53
54
|
### Depends on
|
|
@@ -61,6 +62,7 @@
|
|
|
61
62
|
graph TD;
|
|
62
63
|
SInput --> SField
|
|
63
64
|
SInput --> SGhostButton
|
|
65
|
+
SEditor --> SInput
|
|
64
66
|
SKeyValueTable --> SInput
|
|
65
67
|
style SInput fill:#f9f,stroke:#333,stroke-width:4px
|
|
66
68
|
```
|
|
@@ -4,6 +4,7 @@ import { type SIconName } from '../SIcon';
|
|
|
4
4
|
import { type SColor } from '../../lib/color';
|
|
5
5
|
import { type Rule } from '../../lib/form';
|
|
6
6
|
import { type STooltipProps } from '../STooltip';
|
|
7
|
+
import { type SFieldWidth } from '../../lib/field-width';
|
|
7
8
|
export interface SInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'value' | 'onChange' | 'type' | 'prefix' | 'suffix'> {
|
|
8
9
|
/** 값 (제어) */
|
|
9
10
|
value?: string | number;
|
|
@@ -49,7 +50,12 @@ export interface SInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
|
|
|
49
50
|
addonLabel?: string;
|
|
50
51
|
/** 어드온 정렬 */
|
|
51
52
|
addonAlign?: SFieldAddonAlign;
|
|
52
|
-
|
|
53
|
+
/**
|
|
54
|
+
* 컨트롤 너비 — 폭 등급(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) · 숫자=px · CSS 길이.
|
|
55
|
+
* 등급은 `--cmp-field-width-*` 토큰으로 풀리며 `maxLength`(= 스키마 상한)로 고른다.
|
|
56
|
+
* 상한이 `xl` 을 넘거나 상한이 없으면 `"100%"`. (`sellmate/field-width-grade` 가 검사한다)
|
|
57
|
+
*/
|
|
58
|
+
width?: SFieldWidth;
|
|
53
59
|
disabled?: boolean;
|
|
54
60
|
readOnly?: boolean;
|
|
55
61
|
className?: string;
|
|
@@ -23,6 +23,90 @@
|
|
|
23
23
|
| `onChange` | `(detail: SKeyValueChangeDetail) => void` | 값 변경 (sdChange) |
|
|
24
24
|
| `onSearch` | `() => void` | 검색 클릭 (sdSearch) |
|
|
25
25
|
|
|
26
|
+
## Types
|
|
27
|
+
|
|
28
|
+
### SKeyValueField
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
export type SKeyValueField = SKeyValueFieldBase & SKeyValueFieldByType;
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### SKeyValueChangeDetail
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
/**
|
|
38
|
+
* `onChange` 콜백 detail.
|
|
39
|
+
* 제네릭 `V`에 폼 값 형태(`{ [name]: value }`)를 넘기면 `name`/`value`/`values`가 정밀하게 타이핑됩니다.
|
|
40
|
+
* 미지정 시 `value`는 {@link SKeyValueFieldValue} 유니온으로 잡힙니다.
|
|
41
|
+
*/
|
|
42
|
+
export interface SKeyValueChangeDetail<
|
|
43
|
+
V extends Record<string, SKeyValueFieldValue> = Record<string, SKeyValueFieldValue>,
|
|
44
|
+
> {
|
|
45
|
+
/** 변경된 field의 name */
|
|
46
|
+
name: Extract<keyof V, string>;
|
|
47
|
+
/** 변경된 field의 새 값 */
|
|
48
|
+
value: V[Extract<keyof V, string>];
|
|
49
|
+
/** 변경이 반영된 전체 값 객체 (`{ [name]: value }`). controlled 패턴에서 그대로 상태에 반영하면 됩니다. */
|
|
50
|
+
values: V;
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### SKeyValueFieldBase
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
/** field type과 무관한 공통 속성 (레이아웃·레이블·스팬 등) */
|
|
58
|
+
export interface SKeyValueFieldBase {
|
|
59
|
+
name: string;
|
|
60
|
+
label?: string;
|
|
61
|
+
required?: boolean;
|
|
62
|
+
helpText?: string[];
|
|
63
|
+
hideTh?: boolean;
|
|
64
|
+
thRowSpan?: number;
|
|
65
|
+
thColSpan?: number;
|
|
66
|
+
tdRowSpan?: number;
|
|
67
|
+
tdColSpan?: number;
|
|
68
|
+
thWidth?: number | string;
|
|
69
|
+
thClass?: string;
|
|
70
|
+
tdClass?: string;
|
|
71
|
+
/** 셀 커스텀 렌더 (React 확장). 지정 시 type/options는 무시되고 이 노드가 그대로 렌더됩니다. */
|
|
72
|
+
render?: ReactNode;
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### SKeyValueFieldByType
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
/**
|
|
80
|
+
* `type`에 따라 `options`가 해당 컴포넌트의 props로 좁혀지는 discriminated union.
|
|
81
|
+
* `type` 생략 시 `text`로 동작합니다.
|
|
82
|
+
*/
|
|
83
|
+
export type SKeyValueFieldByType =
|
|
84
|
+
| { type?: 'text'; options?: { value?: ReactNode } }
|
|
85
|
+
| { type: 'input'; options?: FieldOptions<SInputProps> }
|
|
86
|
+
| { type: 'textarea'; options?: FieldOptions<STextareaProps> }
|
|
87
|
+
| { type: 'number-input'; options?: FieldOptions<SNumberInputProps> }
|
|
88
|
+
| { type: 'select'; options?: FieldOptions<SSelectProps> }
|
|
89
|
+
| { type: 'radio'; options?: FieldOptions<SRadioGroupProps> }
|
|
90
|
+
| { type: 'checkbox'; options?: FieldOptions<SCheckboxProps> }
|
|
91
|
+
| { type: 'switch'; options?: FieldOptions<SSwitchProps> }
|
|
92
|
+
| { type: 'date-picker'; options?: FieldOptions<SDatePickerProps> }
|
|
93
|
+
| { type: 'date-range-picker'; options?: FieldOptions<SDateRangePickerProps> }
|
|
94
|
+
| { type: 'file-picker'; options?: FieldOptions<SFilePickerProps> };
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### SKeyValueFieldValue
|
|
98
|
+
|
|
99
|
+
```ts
|
|
100
|
+
/**
|
|
101
|
+
* field type별 `onChange`로 올라오는 값 타입.
|
|
102
|
+
* - `string`: input · textarea · select · radio · date-picker
|
|
103
|
+
* - `number`: number-input
|
|
104
|
+
* - `boolean`: checkbox · switch
|
|
105
|
+
* - `string[]`: date-range-picker
|
|
106
|
+
*/
|
|
107
|
+
export type SKeyValueFieldValue = string | number | boolean | string[];
|
|
108
|
+
```
|
|
109
|
+
|
|
26
110
|
## Dependencies
|
|
27
111
|
|
|
28
112
|
### Depends on
|
|
@@ -37,6 +121,7 @@
|
|
|
37
121
|
- [SNumberInput](../SNumberInput)
|
|
38
122
|
- [SRadio](../SRadio)
|
|
39
123
|
- [SSelect](../SSelect)
|
|
124
|
+
- [SSwitch](../SSwitch)
|
|
40
125
|
- [STextarea](../STextarea)
|
|
41
126
|
- [STooltip](../STooltip)
|
|
42
127
|
|
|
@@ -54,6 +139,7 @@ graph TD;
|
|
|
54
139
|
SKeyValueTable --> SNumberInput
|
|
55
140
|
SKeyValueTable --> SRadio
|
|
56
141
|
SKeyValueTable --> SSelect
|
|
142
|
+
SKeyValueTable --> SSwitch
|
|
57
143
|
SKeyValueTable --> STextarea
|
|
58
144
|
SKeyValueTable --> STooltip
|
|
59
145
|
style SKeyValueTable fill:#f9f,stroke:#333,stroke-width:4px
|
|
@@ -5,10 +5,11 @@ import { type SNumberInputProps } from '../SNumberInput';
|
|
|
5
5
|
import { type SSelectProps } from '../SSelect';
|
|
6
6
|
import { type SRadioGroupProps } from '../SRadio';
|
|
7
7
|
import { type SCheckboxProps } from '../SCheckbox';
|
|
8
|
+
import { type SSwitchProps } from '../SSwitch';
|
|
8
9
|
import { type SDatePickerProps } from '../SDatePicker';
|
|
9
10
|
import { type SDateRangePickerProps } from '../SDateRangePicker';
|
|
10
11
|
import { type SFilePickerProps } from '../SFilePicker';
|
|
11
|
-
export type SKeyValueFieldType = 'text' | 'input' | 'textarea' | 'number-input' | 'select' | 'radio' | 'checkbox' | 'date-picker' | 'date-range-picker' | 'file-picker';
|
|
12
|
+
export type SKeyValueFieldType = 'text' | 'input' | 'textarea' | 'number-input' | 'select' | 'radio' | 'checkbox' | 'switch' | 'date-picker' | 'date-range-picker' | 'file-picker';
|
|
12
13
|
/** field type과 무관한 공통 속성 (레이아웃·레이블·스팬 등) */
|
|
13
14
|
export interface SKeyValueFieldBase {
|
|
14
15
|
name: string;
|
|
@@ -59,6 +60,9 @@ export type SKeyValueFieldByType = {
|
|
|
59
60
|
} | {
|
|
60
61
|
type: 'checkbox';
|
|
61
62
|
options?: FieldOptions<SCheckboxProps>;
|
|
63
|
+
} | {
|
|
64
|
+
type: 'switch';
|
|
65
|
+
options?: FieldOptions<SSwitchProps>;
|
|
62
66
|
} | {
|
|
63
67
|
type: 'date-picker';
|
|
64
68
|
options?: FieldOptions<SDatePickerProps>;
|
|
@@ -74,7 +78,7 @@ export type SKeyValueField = SKeyValueFieldBase & SKeyValueFieldByType;
|
|
|
74
78
|
* field type별 `onChange`로 올라오는 값 타입.
|
|
75
79
|
* - `string`: input · textarea · select · radio · date-picker
|
|
76
80
|
* - `number`: number-input
|
|
77
|
-
* - `boolean`: checkbox
|
|
81
|
+
* - `boolean`: checkbox · switch
|
|
78
82
|
* - `string[]`: date-range-picker
|
|
79
83
|
*/
|
|
80
84
|
export type SKeyValueFieldValue = string | number | boolean | string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { SKeyValueTable, type SKeyValueTableProps, type SKeyValueField, type SKeyValueFieldType, type SKeyValueChangeDetail, } from './SKeyValueTable';
|
|
1
|
+
export { SKeyValueTable, type SKeyValueTableProps, type SKeyValueField, type SKeyValueFieldBase, type SKeyValueFieldByType, type SKeyValueFieldType, type SKeyValueFieldValue, type SKeyValueChangeDetail, } from './SKeyValueTable';
|
|
@@ -20,6 +20,22 @@
|
|
|
20
20
|
|-------|------|-------------|
|
|
21
21
|
| `onFoldedChange` | `(folded: boolean) => void` | 접힘 상태 변경 |
|
|
22
22
|
|
|
23
|
+
## Types
|
|
24
|
+
|
|
25
|
+
### SLayoutType
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
/** 메뉴 스타일: box(라운드) / belt(풀폭 행) — 자식 SGnb 의 메뉴 모양 */
|
|
29
|
+
export type SLayoutType = SGnbType;
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### SLayoutHeader
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
/** 레이아웃 구조: fix(좌측 GNB + 페이지 가로 분할) / full(풀폭 상단바 + 아래에 메뉴|페이지) */
|
|
36
|
+
export type SLayoutHeader = SGnbHeader;
|
|
37
|
+
```
|
|
38
|
+
|
|
23
39
|
## Dependencies
|
|
24
40
|
|
|
25
41
|
### Used by
|
|
@@ -27,10 +43,15 @@
|
|
|
27
43
|
- [SGnb](../SGnb)
|
|
28
44
|
- [SPage](../SPage)
|
|
29
45
|
|
|
46
|
+
### Depends on
|
|
47
|
+
|
|
48
|
+
- [SPage](../SPage)
|
|
49
|
+
|
|
30
50
|
### Graph
|
|
31
51
|
|
|
32
52
|
```mermaid
|
|
33
53
|
graph TD;
|
|
54
|
+
SLayout --> SPage
|
|
34
55
|
SGnb --> SLayout
|
|
35
56
|
SPage --> SLayout
|
|
36
57
|
style SLayout fill:#f9f,stroke:#333,stroke-width:4px
|
|
@@ -106,5 +106,9 @@ export interface SLayoutProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
106
106
|
* "header header" ← 전폭 상단바 (1행, 높이 = 등록된 topHeight)
|
|
107
107
|
* "nav page" ← 메뉴 열(등록된 columnWidth) | 페이지
|
|
108
108
|
* 접으면 nav 열을 0 으로 접어 페이지가 전폭을 쓴다.
|
|
109
|
+
*
|
|
110
|
+
* 자식 순서는 `SGnb` → (선택) `SPageHeader` → `SPage` 다. `SPageHeader` 를 두면 **그 자식부터 뒤가**
|
|
111
|
+
* 하나의 페이지 열로 묶여(page-column.tsx) 헤더가 페이지 위에 고정되고, 그 아래에서만 스크롤이 일어난다.
|
|
112
|
+
* 헤더를 두지 않으면 아무것도 감싸지 않는다 — `SPage` 가 예전처럼 프레임의 자식으로 남는다.
|
|
109
113
|
*/
|
|
110
114
|
export declare const SLayout: import("react").ForwardRefExoticComponent<SLayoutProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { SLayout, SLayoutContext, SLAYOUT_MIN_WIDTH, useSLayout, type SLayoutProps, type SLayoutType, type SLayoutHeader, type SLayoutContextValue, } from './SLayout';
|
|
1
|
+
export { SLayout, SLayoutContext, SLAYOUT_MIN_WIDTH, useSLayout, type SLayoutProps, type SLayoutType, type SLayoutHeader, type SLayoutNavState, type SLayoutContextValue, } from './SLayout';
|
|
@@ -10,8 +10,23 @@
|
|
|
10
10
|
|------|------|---------|-------------|
|
|
11
11
|
| `value?` | `number` | `0` | 진행률 (0–100) |
|
|
12
12
|
| `type?` | `SLinearProgressType` | `'primary'` | 색상 타입 |
|
|
13
|
+
| `size?` | `SLinearProgressSize` | `'sm'` | 바 높이. xs 는 바 안에 퍼센트 텍스트를 넣지 않는다 |
|
|
13
14
|
| `indeterminate?` | `boolean` | `false` | 진행률 없이 무한 애니메이션 |
|
|
14
15
|
| `label?` | `string` | — | 하단 레이블 |
|
|
15
16
|
| `className?` | `string` | — | |
|
|
16
17
|
| `style?` | `CSSProperties` | — | |
|
|
17
18
|
|
|
19
|
+
## Types
|
|
20
|
+
|
|
21
|
+
### SLinearProgressType
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
export type SLinearProgressType = 'primary' | 'error' | 'complete';
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### SLinearProgressSize
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
export type SLinearProgressSize = 'xs' | 'sm' | 'md';
|
|
31
|
+
```
|
|
32
|
+
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { type CSSProperties } from 'react';
|
|
2
2
|
export type SLinearProgressType = 'primary' | 'error' | 'complete';
|
|
3
|
+
export type SLinearProgressSize = 'xs' | 'sm' | 'md';
|
|
3
4
|
export interface SLinearProgressProps {
|
|
4
5
|
/** 진행률 (0–100) */
|
|
5
6
|
value?: number;
|
|
6
7
|
/** 색상 타입 */
|
|
7
8
|
type?: SLinearProgressType;
|
|
9
|
+
/** 바 높이. xs 는 바 안에 퍼센트 텍스트를 넣지 않는다 */
|
|
10
|
+
size?: SLinearProgressSize;
|
|
8
11
|
/** 진행률 없이 무한 애니메이션 */
|
|
9
12
|
indeterminate?: boolean;
|
|
10
13
|
/** 하단 레이블 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { SLinearProgress, type SLinearProgressProps, type SLinearProgressType, } from './SLinearProgress';
|
|
1
|
+
export { SLinearProgress, type SLinearProgressProps, type SLinearProgressType, type SLinearProgressSize, } from './SLinearProgress';
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
| `children?` | `ReactNode` | — | 리스트 컨테이너 내부에 렌더링할 내용 |
|
|
12
12
|
| `useGap?` | `boolean` | `false` | 리스트 아이템 사이 gap 토큰 적용 여부 |
|
|
13
13
|
| `usePadding?` | `boolean` | `false` | 리스트 컨테이너 padding 토큰 적용 여부 |
|
|
14
|
-
| `separator?` | `boolean` | `false` | 아이템 하단 구분선 표시 여부. 테두리를 가진 아이템(`bordered`)에는 쓰지 않는다 |
|
|
15
14
|
|
|
16
15
|
## Dependencies
|
|
17
16
|
|
|
@@ -20,10 +19,15 @@
|
|
|
20
19
|
- [SDraggableList](../SDraggableList)
|
|
21
20
|
- [SExpansionList](../SExpansionList)
|
|
22
21
|
|
|
22
|
+
### Depends on
|
|
23
|
+
|
|
24
|
+
- [SDivider](../SDivider)
|
|
25
|
+
|
|
23
26
|
### Graph
|
|
24
27
|
|
|
25
28
|
```mermaid
|
|
26
29
|
graph TD;
|
|
30
|
+
SList --> SDivider
|
|
27
31
|
SDraggableList --> SList
|
|
28
32
|
SExpansionList --> SList
|
|
29
33
|
style SList fill:#f9f,stroke:#333,stroke-width:4px
|
|
@@ -6,7 +6,5 @@ export interface SListProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
6
6
|
useGap?: boolean;
|
|
7
7
|
/** 리스트 컨테이너 padding 토큰 적용 여부 */
|
|
8
8
|
usePadding?: boolean;
|
|
9
|
-
/** 아이템 하단 구분선 표시 여부. 테두리를 가진 아이템(`bordered`)에는 쓰지 않는다 */
|
|
10
|
-
separator?: boolean;
|
|
11
9
|
}
|
|
12
10
|
export declare const SList: import("react").ForwardRefExoticComponent<SListProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -23,6 +23,47 @@
|
|
|
23
23
|
| `size?` | `SListItemSize` | `'sm'` | 타이포그래피 크기 |
|
|
24
24
|
| `disabled?` | `boolean` | `false` | 비활성 상태 여부 |
|
|
25
25
|
|
|
26
|
+
## Types
|
|
27
|
+
|
|
28
|
+
### SListItemSlot
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
export type SListItemSlot = ReactNode | SListItemRenderProp;
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### SListItemSupportingTextPosition
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
export type SListItemSupportingTextPosition = 'right' | 'bottom';
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### SListItemInteraction
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
export type SListItemInteraction = 'chevron';
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### SListItemSize
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
export type SListItemSize = 'sm' | 'md';
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### SListItemRenderProp
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
export type SListItemRenderProp = (state: SListItemRenderState) => ReactNode;
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### SListItemRenderState
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
export interface SListItemRenderState {
|
|
62
|
+
hovered: boolean;
|
|
63
|
+
disabled: boolean;
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
26
67
|
## Dependencies
|
|
27
68
|
|
|
28
69
|
### Used by
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { SListItem, type SListItemProps, type SListItemSupportingTextPosition } from './SListItem';
|
|
1
|
+
export { SListItem, type SListItemInteraction, type SListItemProps, type SListItemRenderProp, type SListItemRenderState, type SListItemSize, type SListItemSlot, type SListItemSupportingTextPosition, } from './SListItem';
|