sellmate-design-system-react 9.0.0-beta.40 → 9.0.0-beta.41
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 +41 -20
- package/dist/components/SBarcodeInput/README.md +3 -3
- package/dist/components/SBarcodeInput/SBarcodeInput.d.ts +3 -1
- package/dist/components/SChipInput/README.md +1 -1
- package/dist/components/SChipInput/SChipInput.d.ts +1 -1
- package/dist/components/SConfirmModal/README.md +3 -11
- package/dist/components/SConfirmModal/SConfirmModal.d.ts +16 -8
- package/dist/components/SConfirmModal/index.d.ts +1 -1
- package/dist/components/SDateRangePicker/README.md +2 -2
- package/dist/components/SDateRangePicker/SDateRangePicker.d.ts +4 -4
- package/dist/components/SEditor/EditorBody.d.ts +1 -1
- package/dist/components/SEditor/README.md +4 -4
- package/dist/components/SEditor/SEditor.d.ts +3 -3
- package/dist/components/SField/README.md +2 -2
- package/dist/components/SField/SField.d.ts +8 -2
- package/dist/components/SFilePicker/README.md +3 -3
- package/dist/components/SFilePicker/SFilePicker.d.ts +4 -4
- package/dist/components/SForm/README.md +1 -1
- package/dist/components/SForm/SForm.d.ts +2 -2
- package/dist/components/SGnb/README.md +7 -7
- package/dist/components/SGnb/SGnb.d.ts +9 -9
- package/dist/components/SGnb/gnb.config.d.ts +2 -2
- package/dist/components/SImage/README.md +1 -1
- package/dist/components/SImage/SImage.d.ts +2 -2
- package/dist/components/SInput/README.md +3 -3
- package/dist/components/SInput/SInput.d.ts +3 -3
- package/dist/components/SLayout/README.md +1 -1
- package/dist/components/SLayout/SLayout.d.ts +2 -2
- package/dist/components/SList/README.md +10 -2
- package/dist/components/SList/SList.d.ts +7 -3
- package/dist/components/SList/index.d.ts +1 -1
- package/dist/components/SLoadingModal/README.md +1 -1
- package/dist/components/SLoadingModal/SLoadingModal.d.ts +2 -2
- package/dist/components/SModal/README.md +1 -1
- package/dist/components/SNumberInput/README.md +5 -5
- package/dist/components/SNumberInput/SNumberInput.d.ts +5 -3
- package/dist/components/SPage/README.md +42 -3
- package/dist/components/SPage/SPage.d.ts +16 -1
- package/dist/components/SPage/SPageHeader.d.ts +19 -8
- package/dist/components/SPage/index.d.ts +1 -1
- package/dist/components/SPage/page-column.d.ts +11 -2
- package/dist/components/SPage/page-width.d.ts +23 -0
- package/dist/components/SPage/page.config.d.ts +18 -0
- package/dist/components/SPopup/README.md +8 -2
- package/dist/components/SPopup/SPopup.d.ts +7 -3
- package/dist/components/SPopup/index.d.ts +1 -1
- package/dist/components/SSearchInput/README.md +3 -3
- package/dist/components/SSearchInput/SSearchInput.d.ts +3 -3
- package/dist/components/SSelect/README.md +5 -5
- package/dist/components/SSelect/SSelect.d.ts +14 -6
- package/dist/components/SSplitter/README.md +2 -2
- package/dist/components/SSplitter/SSplitter.d.ts +7 -3
- package/dist/components/SSwitch/README.md +0 -1
- package/dist/components/SSwitch/SSwitch.d.ts +1 -3
- package/dist/components/STable/README.md +8 -9
- package/dist/components/STable/STable.d.ts +9 -11
- package/dist/components/STabs/README.md +1 -1
- package/dist/components/STabs/STabs.d.ts +2 -2
- package/dist/components/STextLink/README.md +1 -1
- package/dist/components/STextLink/STextLink.d.ts +1 -1
- package/dist/components/STextarea/README.md +3 -3
- package/dist/components/STextarea/STextarea.d.ts +3 -3
- package/dist/components/STimePicker/README.md +1 -1
- package/dist/components/STimePicker/STimePicker.d.ts +4 -4
- package/dist/components/STimeRangePicker/README.md +1 -1
- package/dist/components/STimeRangePicker/STimeRangePicker.d.ts +4 -4
- package/dist/components/SToast/README.md +1 -1
- package/dist/components/SToast/SToast.d.ts +2 -2
- package/dist/components/STooltip/README.md +1 -1
- package/dist/components/STooltip/STooltip.d.ts +1 -1
- package/dist/components/STree/README.md +4 -4
- package/dist/components/STree/STree.d.ts +17 -5
- package/dist/index.cjs +295 -237
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +294 -238
- package/dist/index.js.map +1 -1
- package/dist/llms-full.txt +170 -106
- package/dist/llms.txt +41 -20
- package/dist/styles.css +9 -0
- package/package.json +1 -1
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
| `clearable?` | `boolean` | `false` | 지우기 버튼 — 값이 있을 때만 나타난다 |
|
|
15
15
|
| `disabled?` | `boolean` | `false` | 비활성 |
|
|
16
16
|
| `width?` | `SFieldWidth` | — | 컨트롤 너비 — 폭 등급(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) · 숫자=px · CSS 길이. 등급은 `--cmp-field-width-*` 토큰으로 풀리므로 토큰이 바뀌면 화면이 따라간다. 값 길이에 상한이 없으면 `"100%"` 로 두어 행 전체를 쓴다. 미지정 시 부모 폭을 채운다. |
|
|
17
|
-
| `focused?` | `boolean` | — | 포커스
|
|
18
|
-
| `hovered?` | `boolean` | — | 호버
|
|
19
|
-
| `
|
|
17
|
+
| `focused?` | `boolean` | — | 포커스 상태를 밖에서 지정한다 — 강조 테두리·링이 즉시 걸린다 (SField 로 그대로 넘어간다) |
|
|
18
|
+
| `hovered?` | `boolean` | — | 호버 상태를 밖에서 지정한다 — 강조는 `focused` 와 같다 (SField 로 그대로 넘어간다) |
|
|
19
|
+
| `inputClassName?` | `string` | — | 내부 input 요소 className |
|
|
20
20
|
| `inputStyle?` | `CSSProperties` | — | 내부 input 요소 style |
|
|
21
21
|
| `className?` | `string` | — | |
|
|
22
22
|
| `style?` | `CSSProperties` | — | |
|
|
@@ -29,12 +29,12 @@ export interface SSearchInputProps extends Omit<InputHTMLAttributes<HTMLInputEle
|
|
|
29
29
|
* 미지정 시 부모 폭을 채운다.
|
|
30
30
|
*/
|
|
31
31
|
width?: SFieldWidth;
|
|
32
|
-
/** 포커스
|
|
32
|
+
/** 포커스 상태를 밖에서 지정한다 — 강조 테두리·링이 즉시 걸린다 (SField 로 그대로 넘어간다) */
|
|
33
33
|
focused?: boolean;
|
|
34
|
-
/** 호버
|
|
34
|
+
/** 호버 상태를 밖에서 지정한다 — 강조는 `focused` 와 같다 (SField 로 그대로 넘어간다) */
|
|
35
35
|
hovered?: boolean;
|
|
36
36
|
/** 내부 input 요소 className */
|
|
37
|
-
|
|
37
|
+
inputClassName?: string;
|
|
38
38
|
/** 내부 input 요소 style */
|
|
39
39
|
inputStyle?: CSSProperties;
|
|
40
40
|
className?: string;
|
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
|
|
9
9
|
| Prop | Type | Default | Description |
|
|
10
10
|
|------|------|---------|-------------|
|
|
11
|
-
| `value?` | `(string \| number \| SSelectOption) \| (string \| number \| SSelectOption)[] \| null` | — | 선택 값. multi 타입이면 배열.
|
|
12
|
-
| `
|
|
11
|
+
| `value?` | `(string \| number \| SSelectOption) \| (string \| number \| SSelectOption)[] \| null` | — | 선택 값. multi 타입이면 배열. 기본(valueAsPrimitive=false) 라운드트립을 위해 SSelectOption 객체도 허용 |
|
|
12
|
+
| `valueAsPrimitive?` | `boolean` | `false` | `value`·`onValueChange` 가 옵션 객체 대신 원시값(string|number)을 주고받는다. **기본값 `false`(옵션 객체)는 유지한다** — 원본(sd-select) 호환 때문이고, 뒤집으면 이 값을 주지 않던 화면이 조용히 다른 모양의 값을 받게 되어 타입으로도 잡히지 않는다. 새로 쓰는 화면은 켜는 쪽이 다루기 쉽다 — 서버로 보내는 것도, 폼 상태에 담는 것도 결국 값 하나이기 때문이다. |
|
|
13
13
|
| `name?` | `string` | — | 폼 연동용 name 속성 |
|
|
14
14
|
| `options?` | `SSelectOption[]` | `[]` | 옵션 목록 (children으로 계층 표현) |
|
|
15
15
|
| `type?` | `SSelectType` | `'default'` | 타입: default | multi | default_depth | multi_depth |
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
16
|
+
| `showSearch?` | `boolean` | `false` | 검색 입력 사용 |
|
|
17
|
+
| `showSelectAll?` | `boolean` | `false` | 전체선택 옵션 사용 (multi 전용) |
|
|
18
18
|
| `allSelectedLabel?` | `string` | `'전체'` | 전체선택 레이블 |
|
|
19
19
|
| `placeholder?` | `string` | `'선택'` | placeholder |
|
|
20
20
|
| `disabled?` | `boolean` | `false` | 비활성 |
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
|
|
43
43
|
| Event | Type | Description |
|
|
44
44
|
|-------|------|-------------|
|
|
45
|
-
| `onValueChange` | `(value: any) => void` | 값
|
|
45
|
+
| `onValueChange` | `(value: any) => void` | 값 변경. 기본은 SSelectOption(들)이 오고, `valueAsPrimitive` 면 원시값이 온다 |
|
|
46
46
|
| `onOpenChange` | `(open: boolean) => void` | 열림/닫힘 변경 (sdDropDownShow) |
|
|
47
47
|
|
|
48
48
|
#### Methods (ref)
|
|
@@ -14,14 +14,22 @@ export interface SSelectHandle {
|
|
|
14
14
|
open: () => void;
|
|
15
15
|
}
|
|
16
16
|
export interface SSelectProps {
|
|
17
|
-
/** 선택 값. multi 타입이면 배열.
|
|
17
|
+
/** 선택 값. multi 타입이면 배열. 기본(valueAsPrimitive=false) 라운드트립을 위해 SSelectOption 객체도 허용 */
|
|
18
18
|
value?: (string | number | SSelectOption) | (string | number | SSelectOption)[] | null;
|
|
19
|
-
/** 값
|
|
19
|
+
/** 값 변경. 기본은 SSelectOption(들)이 오고, `valueAsPrimitive` 면 원시값이 온다 */
|
|
20
20
|
onValueChange?: (value: any) => void;
|
|
21
21
|
/** 열림/닫힘 변경 (sdDropDownShow) */
|
|
22
22
|
onOpenChange?: (open: boolean) => void;
|
|
23
|
-
/**
|
|
24
|
-
|
|
23
|
+
/**
|
|
24
|
+
* `value`·`onValueChange` 가 옵션 객체 대신 원시값(string|number)을 주고받는다.
|
|
25
|
+
*
|
|
26
|
+
* **기본값 `false`(옵션 객체)는 유지한다** — 원본(sd-select) 호환 때문이고, 뒤집으면 이 값을
|
|
27
|
+
* 주지 않던 화면이 조용히 다른 모양의 값을 받게 되어 타입으로도 잡히지 않는다.
|
|
28
|
+
*
|
|
29
|
+
* 새로 쓰는 화면은 켜는 쪽이 다루기 쉽다 — 서버로 보내는 것도, 폼 상태에 담는 것도
|
|
30
|
+
* 결국 값 하나이기 때문이다.
|
|
31
|
+
*/
|
|
32
|
+
valueAsPrimitive?: boolean;
|
|
25
33
|
/** 폼 연동용 name 속성 */
|
|
26
34
|
name?: string;
|
|
27
35
|
/** 옵션 목록 (children으로 계층 표현) */
|
|
@@ -29,9 +37,9 @@ export interface SSelectProps {
|
|
|
29
37
|
/** 타입: default | multi | default_depth | multi_depth */
|
|
30
38
|
type?: SSelectType;
|
|
31
39
|
/** 검색 입력 사용 */
|
|
32
|
-
|
|
40
|
+
showSearch?: boolean;
|
|
33
41
|
/** 전체선택 옵션 사용 (multi 전용) */
|
|
34
|
-
|
|
42
|
+
showSelectAll?: boolean;
|
|
35
43
|
/** 전체선택 레이블 */
|
|
36
44
|
allSelectedLabel?: string;
|
|
37
45
|
/** placeholder */
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
| `defaultValue?` | `number` | — | 첫 패널 초기 크기. uncontrolled. 기본은 '%' 면 50, 'px' 면 240 |
|
|
13
13
|
| `unit?` | `SSplitterUnit` | `'%'` | 모델·limits 를 읽는 단위 |
|
|
14
14
|
| `limits?` | `readonly [number, number]` | — | [최소, 최대]. 생략하면 '%' 는 [10, 90], 'px' 는 [50, Infinity] |
|
|
15
|
-
| `
|
|
15
|
+
| `updateWhileDragging?` | `boolean` | `false` | 드래그하는 동안에도 `onValueChange` 를 계속 보낸다. 기본은 놓는 순간 한 번만 — 미리보기는 컴포넌트가 내부에서 그리므로, 값을 저장하는 쪽이 프레임마다 불릴 이유가 없다. 패널 크기에 맞춰 밖의 무언가를 실시간으로 다시 그려야 할 때만 켠다. |
|
|
16
16
|
| `vertical?` | `boolean` | `false` | true면 패널을 위아래로 쌓는다 (Quasar q-splitter 의 horizontal 에 해당) |
|
|
17
17
|
| `disabled?` | `boolean` | `false` | true면 크기를 바꿀 수 없다. 커서도 구분선도 나오지 않는다 |
|
|
18
18
|
| `dividerClassName?` | `string` | — | 구분선에 얹을 클래스 |
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
| Event | Type | Description |
|
|
25
25
|
|-------|------|-------------|
|
|
26
|
-
| `onValueChange` | `(value: number) => void` | 크기가 확정될 때.
|
|
26
|
+
| `onValueChange` | `(value: number) => void` | 크기가 확정될 때. `updateWhileDragging` 이 아니면 드래그를 놓는 순간 한 번만 온다 |
|
|
27
27
|
|
|
28
28
|
## Types
|
|
29
29
|
|
|
@@ -7,14 +7,18 @@ export interface SSplitterProps extends Omit<HTMLAttributes<HTMLDivElement>, 'de
|
|
|
7
7
|
value?: number;
|
|
8
8
|
/** 첫 패널 초기 크기. uncontrolled. 기본은 '%' 면 50, 'px' 면 240 */
|
|
9
9
|
defaultValue?: number;
|
|
10
|
-
/** 크기가 확정될 때.
|
|
10
|
+
/** 크기가 확정될 때. `updateWhileDragging` 이 아니면 드래그를 놓는 순간 한 번만 온다 */
|
|
11
11
|
onValueChange?: (value: number) => void;
|
|
12
12
|
/** 모델·limits 를 읽는 단위 */
|
|
13
13
|
unit?: SSplitterUnit;
|
|
14
14
|
/** [최소, 최대]. 생략하면 '%' 는 [10, 90], 'px' 는 [50, Infinity] */
|
|
15
15
|
limits?: readonly [number, number];
|
|
16
|
-
/**
|
|
17
|
-
|
|
16
|
+
/**
|
|
17
|
+
* 드래그하는 동안에도 `onValueChange` 를 계속 보낸다. 기본은 놓는 순간 한 번만 —
|
|
18
|
+
* 미리보기는 컴포넌트가 내부에서 그리므로, 값을 저장하는 쪽이 프레임마다 불릴 이유가 없다.
|
|
19
|
+
* 패널 크기에 맞춰 밖의 무언가를 실시간으로 다시 그려야 할 때만 켠다.
|
|
20
|
+
*/
|
|
21
|
+
updateWhileDragging?: boolean;
|
|
18
22
|
/** true면 패널을 위아래로 쌓는다 (Quasar q-splitter 의 horizontal 에 해당) */
|
|
19
23
|
vertical?: boolean;
|
|
20
24
|
/** true면 크기를 바꿀 수 없다. 커서도 구분선도 나오지 않는다 */
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
| `value?` | `boolean` | `false` | on/off 상태 |
|
|
12
12
|
| `leftLabel?` | `string` | — | 스위치 좌측 라벨 |
|
|
13
13
|
| `rightLabel?` | `string` | — | 스위치 우측 라벨 |
|
|
14
|
-
| `label?` | `string` | — | |
|
|
15
14
|
| `disabled?` | `boolean` | `false` | 비활성 |
|
|
16
15
|
| `className?` | `string` | — | |
|
|
17
16
|
| `style?` | `CSSProperties` | — | |
|
|
@@ -6,8 +6,6 @@ export interface SSwitchProps {
|
|
|
6
6
|
leftLabel?: string;
|
|
7
7
|
/** 스위치 우측 라벨 */
|
|
8
8
|
rightLabel?: string;
|
|
9
|
-
/** @deprecated `rightLabel` 사용. 우측 라벨(하위호환) */
|
|
10
|
-
label?: string;
|
|
11
9
|
/** 비활성 */
|
|
12
10
|
disabled?: boolean;
|
|
13
11
|
/** 변경 (sdUpdate) */
|
|
@@ -16,4 +14,4 @@ export interface SSwitchProps {
|
|
|
16
14
|
style?: CSSProperties;
|
|
17
15
|
}
|
|
18
16
|
/** SSwitch — sd-switch 포팅 (Radix SSwitch). 32×20 트랙, 16 노브. 좌/우 라벨 지원. */
|
|
19
|
-
export declare function SSwitch({ value, leftLabel, rightLabel,
|
|
17
|
+
export declare function SSwitch({ value, leftLabel, rightLabel, disabled, onValueChange, className, style, }: SSwitchProps): import("react").JSX.Element;
|
|
@@ -18,20 +18,19 @@
|
|
|
18
18
|
| `resizable?` | `boolean` | `false` | 컬럼 너비 조절 |
|
|
19
19
|
| `width?` | `string` | — | |
|
|
20
20
|
| `height?` | `string` | — | |
|
|
21
|
-
| `stickyHeader?` | `boolean` | — | |
|
|
22
21
|
| `stickyColumn?` | `STableStickyColumn` | — | 고정할 좌/우 컬럼 수 |
|
|
23
22
|
| `radius?` | `'default' \| 'useTop' \| 'full'` | `'default'` | border-radius 제어 |
|
|
24
23
|
| `bordered?` | `boolean` | `true` | 바깥 테두리. 기본은 `true`. `SSectionHeaderCard` 의 `padding="none"` 안에 넣어 카드 가장자리까지 채울 때 `false` 로 끈다 — 카드가 이미 바깥 테두리를 그리므로, 켜 두면 1px 두 개가 나란히 놓여 그 변만 2px 로 보인다. 페이지네이션 바의 테두리와 1px 겹침(`-mt-px`)도 함께 꺼진다. 본문 테두리가 없으면 겹칠 대상이 없어, 그대로 두면 페이지네이션만 테두리를 갖고 1px 어긋난다. |
|
|
25
|
-
| `
|
|
26
|
-
| `
|
|
27
|
-
| `
|
|
24
|
+
| `emptyLabel?` | `string` | `'데이터가 없습니다.'` | |
|
|
25
|
+
| `emptySlot?` | `ReactNode` | — | 데이터가 없을 때 body 영역 전체를 대체하는 슬롯. 지정하면 `emptyLabel` 대신 이 콘텐츠가 헤더 아래 영역을 채우며, 버튼 등 인터랙션도 동작한다. |
|
|
26
|
+
| `loading?` | `boolean` | `false` | |
|
|
28
27
|
| `dense?` | `boolean` | `false` | 행 높이를 좁게 (세로 여백만 줄인다 — 좌우 패딩은 그대로). **시작 밀도이자 밀도 토글의 스위치다.** 켜면 하단 바 우측에 `좁게 보기` · `넓게 보기` 토글이 붙는다 — 페이지네이션이 없으면 이 바를 토글만 담아 그린다. 누른 뒤의 밀도는 테이블이 내부 상태로 들고 가므로 `onDenseChange` 를 받지 않아도 토글은 동작하고, 넓게 본 뒤에도 토글은 그대로 남는다(붙일지는 이 prop 이 정한다). 이 prop 값이 바뀌면 내부 밀도도 그 값으로 맞춰진다. |
|
|
29
|
-
| `
|
|
28
|
+
| `hoverable?` | `boolean` | `true` | true면 행에 마우스를 올려도 hover 배경(grey_05)을 표시하지 않는다 |
|
|
30
29
|
| `pagination?` | `STablePagination` | — | 페이지네이션 (있으면 하단 표시) |
|
|
31
|
-
| `
|
|
32
|
-
| `
|
|
30
|
+
| `internalPagination?` | `boolean` | `false` | 테이블 내부에서 페이지네이션을 직접 관리 (rows를 내부 슬라이싱) |
|
|
31
|
+
| `showRowsPerPageSelect?` | `boolean` | `false` | 페이지당 행 수 셀렉트 표시 |
|
|
33
32
|
| `rowsPerPageOption?` | `SSelectOption[]` | `DEFAULT_ROWS_PER_PAGE_OPTION` | |
|
|
34
|
-
| `
|
|
33
|
+
| `virtualScroll?` | `boolean` | `false` | 가상 스크롤 |
|
|
35
34
|
| `rowHeight?` | `number` | — | |
|
|
36
35
|
| `virtualBuffer?` | `number` | `5` | |
|
|
37
36
|
| `virtualEndThreshold?` | `number` | `10` | |
|
|
@@ -58,7 +57,7 @@
|
|
|
58
57
|
|--------|------|-------------|
|
|
59
58
|
| `isRowSelected` | `(row: SRow) => boolean` | 행 선택 여부 |
|
|
60
59
|
| `getIsAllChecked` | `(rows: SRow[]) => boolean \| null` | 주어진 행들의 전체 선택 상태 (true/false/null=indeterminate) |
|
|
61
|
-
| `getPaginationInfo` | `<union 2종>` | 내부 페이지네이션 정보 (
|
|
60
|
+
| `getPaginationInfo` | `<union 2종>` | 내부 페이지네이션 정보 (internalPagination 아니면 null) |
|
|
62
61
|
| `getStickyStyle` | `(colIdx: number) => CSSProperties` | 컬럼 sticky 스타일 (CSS 변수 + 고정폭) |
|
|
63
62
|
| `setRowCount` | `(count: number) => void` | 가상 스크롤 총 행 수 설정 |
|
|
64
63
|
| `updateRowSelect` | `(row: SRow) => void` | 단일 행 선택 토글 (sd-table updateRowSelect) — onSelectedChange 발생 |
|
|
@@ -163,7 +163,7 @@ export interface STableHandle {
|
|
|
163
163
|
isRowSelected: (row: SRow) => boolean;
|
|
164
164
|
/** 주어진 행들의 전체 선택 상태 (true/false/null=indeterminate) */
|
|
165
165
|
getIsAllChecked: (rows: SRow[]) => boolean | null;
|
|
166
|
-
/** 내부 페이지네이션 정보 (
|
|
166
|
+
/** 내부 페이지네이션 정보 (internalPagination 아니면 null) */
|
|
167
167
|
getPaginationInfo: () => {
|
|
168
168
|
startIndex: number;
|
|
169
169
|
endIndex: number;
|
|
@@ -207,8 +207,6 @@ export interface STableProps {
|
|
|
207
207
|
resizable?: boolean;
|
|
208
208
|
width?: string;
|
|
209
209
|
height?: string;
|
|
210
|
-
/** @deprecated 헤더는 항상 세로 스크롤에서 제외되어 고정됩니다 (body만 세로 스크롤) */
|
|
211
|
-
stickyHeader?: boolean;
|
|
212
210
|
/** 고정할 좌/우 컬럼 수 */
|
|
213
211
|
stickyColumn?: STableStickyColumn;
|
|
214
212
|
/** border-radius 제어 */
|
|
@@ -223,13 +221,13 @@ export interface STableProps {
|
|
|
223
221
|
* 없어, 그대로 두면 페이지네이션만 테두리를 갖고 1px 어긋난다.
|
|
224
222
|
*/
|
|
225
223
|
bordered?: boolean;
|
|
226
|
-
|
|
224
|
+
emptyLabel?: string;
|
|
227
225
|
/**
|
|
228
226
|
* 데이터가 없을 때 body 영역 전체를 대체하는 슬롯.
|
|
229
|
-
* 지정하면 `
|
|
227
|
+
* 지정하면 `emptyLabel` 대신 이 콘텐츠가 헤더 아래 영역을 채우며, 버튼 등 인터랙션도 동작한다.
|
|
230
228
|
*/
|
|
231
|
-
|
|
232
|
-
|
|
229
|
+
emptySlot?: ReactNode;
|
|
230
|
+
loading?: boolean;
|
|
233
231
|
/**
|
|
234
232
|
* 행 높이를 좁게 (세로 여백만 줄인다 — 좌우 패딩은 그대로).
|
|
235
233
|
*
|
|
@@ -247,18 +245,18 @@ export interface STableProps {
|
|
|
247
245
|
*/
|
|
248
246
|
onDenseChange?: (dense: boolean) => void;
|
|
249
247
|
/** true면 행에 마우스를 올려도 hover 배경(grey_05)을 표시하지 않는다 */
|
|
250
|
-
|
|
248
|
+
hoverable?: boolean;
|
|
251
249
|
/** 페이지네이션 (있으면 하단 표시) */
|
|
252
250
|
pagination?: STablePagination;
|
|
253
251
|
onPageChange?: (page: number) => void;
|
|
254
252
|
/** 테이블 내부에서 페이지네이션을 직접 관리 (rows를 내부 슬라이싱) */
|
|
255
|
-
|
|
253
|
+
internalPagination?: boolean;
|
|
256
254
|
/** 페이지당 행 수 셀렉트 표시 */
|
|
257
|
-
|
|
255
|
+
showRowsPerPageSelect?: boolean;
|
|
258
256
|
rowsPerPageOption?: SSelectOption[];
|
|
259
257
|
onRowsPerPageChange?: (perPage: number) => void;
|
|
260
258
|
/** 가상 스크롤 */
|
|
261
|
-
|
|
259
|
+
virtualScroll?: boolean;
|
|
262
260
|
rowHeight?: number;
|
|
263
261
|
virtualBuffer?: number;
|
|
264
262
|
virtualEndThreshold?: number;
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|------|------|---------|-------------|
|
|
11
11
|
| `value` | `string` | — | 현재 선택된 탭 value |
|
|
12
12
|
| `tabs` | `STabOption[]` | — | 탭 옵션 목록 |
|
|
13
|
-
| `
|
|
13
|
+
| `sub?` | `boolean` | `false` | 서브 탭(밑줄형) 스타일 |
|
|
14
14
|
| `vertical?` | `boolean` | `false` | 세로 배치 (sub 전용 — main 폴더형은 항상 가로) |
|
|
15
15
|
| `className?` | `string` | — | |
|
|
16
16
|
| `style?` | `CSSProperties` | — | |
|
|
@@ -8,7 +8,7 @@ export interface STabsProps {
|
|
|
8
8
|
/** 탭 변경 (sdUpdate) */
|
|
9
9
|
onValueChange?: (value: string) => void;
|
|
10
10
|
/** 서브 탭(밑줄형) 스타일 */
|
|
11
|
-
|
|
11
|
+
sub?: boolean;
|
|
12
12
|
/** 세로 배치 (sub 전용 — main 폴더형은 항상 가로) */
|
|
13
13
|
vertical?: boolean;
|
|
14
14
|
className?: string;
|
|
@@ -19,4 +19,4 @@ export interface STabsProps {
|
|
|
19
19
|
* main = 폴더형(탭 줄에 파란 baseline, 탭은 위쪽만 둥글고 하단 테두리 없음),
|
|
20
20
|
* sub = 밑줄형(선택 시 하단 라인). 뱃지(STag), 세로 배치, value 제어 + onValueChange(sdUpdate).
|
|
21
21
|
*/
|
|
22
|
-
export declare function STabs({ value, tabs, onValueChange,
|
|
22
|
+
export declare function STabs({ value, tabs, onValueChange, sub, vertical, className, style, }: STabsProps): import("react").JSX.Element;
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
| `icon?` | `SIconName` | — | 좌측 아이콘 |
|
|
13
13
|
| `iconColor?` | `SColor` | — | 좌측 아이콘 색상. 팔레트 키(`grey_65`, `red_95` …) 또는 임의 CSS 색상 |
|
|
14
14
|
| `iconRotate?` | `0 \| 90 \| 180 \| 270` | — | 좌측 아이콘 회전 각도. 같은 아이콘을 방향만 바꿔 쓸 때 (`SIcon` 의 `rotate` 로 그대로 간다) |
|
|
15
|
-
| `
|
|
15
|
+
| `labelClassName?` | `string` | — | 레이블 span에 추가할 클래스 |
|
|
16
16
|
| `rightArrow?` | `STextLinkArrow` | `'none'` | 우측 화살표 |
|
|
17
17
|
| `rightArrowRotate?` | `0 \| 90 \| 180 \| 270` | — | 우측 화살표 회전 각도. 같은 화살표를 방향만 바꿔 쓸 때 (`SIcon` 의 `rotate` 로 그대로 간다) |
|
|
18
18
|
| `underline?` | `boolean` | `false` | 밑줄 여부 |
|
|
@@ -13,7 +13,7 @@ export interface STextLinkProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'o
|
|
|
13
13
|
/** 좌측 아이콘 회전 각도. 같은 아이콘을 방향만 바꿔 쓸 때 (`SIcon` 의 `rotate` 로 그대로 간다) */
|
|
14
14
|
iconRotate?: 0 | 90 | 180 | 270;
|
|
15
15
|
/** 레이블 span에 추가할 클래스 */
|
|
16
|
-
|
|
16
|
+
labelClassName?: string;
|
|
17
17
|
/** 우측 화살표 */
|
|
18
18
|
rightArrow?: STextLinkArrow;
|
|
19
19
|
/** 우측 화살표 회전 각도. 같은 화살표를 방향만 바꿔 쓸 때 (`SIcon` 의 `rotate` 로 그대로 간다) */
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
| `rows?` | `number` | `3` | 행 수 |
|
|
13
13
|
| `rules?` | `Rule[]` | — | 유효성 규칙 — blur 시 자동 검증 |
|
|
14
14
|
| `status?` | `SFieldStatus` | — | 필드 상태 ('default' | 'pass' | 'error') |
|
|
15
|
-
| `focused?` | `boolean` | — | 포커스
|
|
16
|
-
| `hovered?` | `boolean` | — | 호버
|
|
17
|
-
| `
|
|
15
|
+
| `focused?` | `boolean` | — | 포커스 상태를 밖에서 지정한다 — 강조 테두리·링이 즉시 걸린다 (SField 로 그대로 넘어간다) |
|
|
16
|
+
| `hovered?` | `boolean` | — | 호버 상태를 밖에서 지정한다 — 강조는 `focused` 와 같다 (SField 로 그대로 넘어간다) |
|
|
17
|
+
| `textareaClassName?` | `string` | — | 내부 textarea 요소 className |
|
|
18
18
|
| `textareaStyle?` | `CSSProperties` | — | 내부 textarea 요소 style |
|
|
19
19
|
| `label?` | `string` | — | |
|
|
20
20
|
| `labelWidth?` | `number \| string` | — | |
|
|
@@ -18,12 +18,12 @@ export interface STextareaProps extends Omit<TextareaHTMLAttributes<HTMLTextArea
|
|
|
18
18
|
rules?: Rule[];
|
|
19
19
|
/** 필드 상태 ('default' | 'pass' | 'error') */
|
|
20
20
|
status?: SFieldStatus;
|
|
21
|
-
/** 포커스
|
|
21
|
+
/** 포커스 상태를 밖에서 지정한다 — 강조 테두리·링이 즉시 걸린다 (SField 로 그대로 넘어간다) */
|
|
22
22
|
focused?: boolean;
|
|
23
|
-
/** 호버
|
|
23
|
+
/** 호버 상태를 밖에서 지정한다 — 강조는 `focused` 와 같다 (SField 로 그대로 넘어간다) */
|
|
24
24
|
hovered?: boolean;
|
|
25
25
|
/** 내부 textarea 요소 className */
|
|
26
|
-
|
|
26
|
+
textareaClassName?: string;
|
|
27
27
|
/** 내부 textarea 요소 style */
|
|
28
28
|
textareaStyle?: CSSProperties;
|
|
29
29
|
label?: string;
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
| `placeholder?` | `string` | `'00:00'` | |
|
|
15
15
|
| `disabled?` | `boolean` | `false` | |
|
|
16
16
|
| `clearable?` | `boolean` | `false` | |
|
|
17
|
-
| `
|
|
17
|
+
| `showMeridiem?` | `boolean` | — | 오전/오후 선택 표시 여부. 지정하지 않으면 type="midday"일 때만 켜집니다. |
|
|
18
18
|
| `minuteStep?` | `number` | `1` | |
|
|
19
19
|
| `width?` | `SFieldWidth` | — | 컨트롤 너비 — 폭 등급(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) · 숫자=px · CSS 길이. 등급은 `--cmp-field-width-*` 토큰으로 풀리므로 토큰이 바뀌면 화면이 따라간다. 값 길이에 상한이 없으면 `"100%"` 로 두어 행 전체를 쓴다. |
|
|
20
20
|
| `name?` | `string` | — | |
|
|
@@ -21,7 +21,7 @@ export interface STimePickerProps {
|
|
|
21
21
|
disabled?: boolean;
|
|
22
22
|
clearable?: boolean;
|
|
23
23
|
/** 오전/오후 선택 표시 여부. 지정하지 않으면 type="midday"일 때만 켜집니다. */
|
|
24
|
-
|
|
24
|
+
showMeridiem?: boolean;
|
|
25
25
|
minuteStep?: number;
|
|
26
26
|
/**
|
|
27
27
|
* 컨트롤 너비 — 폭 등급(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) · 숫자=px · CSS 길이.
|
|
@@ -46,11 +46,11 @@ export interface STimePickerProps {
|
|
|
46
46
|
className?: string;
|
|
47
47
|
style?: CSSProperties;
|
|
48
48
|
}
|
|
49
|
-
export declare function TimeSelector({ value,
|
|
49
|
+
export declare function TimeSelector({ value, showMeridiem, minuteStep, onChange, }: {
|
|
50
50
|
value?: string | null;
|
|
51
|
-
|
|
51
|
+
showMeridiem: boolean;
|
|
52
52
|
minuteStep: number;
|
|
53
53
|
onChange: (time: string) => void;
|
|
54
54
|
}): import("react").JSX.Element;
|
|
55
55
|
/** STimePicker — sd-time-picker 포팅. SField + Popover(TimeSelector). */
|
|
56
|
-
export declare function STimePicker({ value, onValueChange, onOpenChange, type, size, placeholder, disabled, clearable,
|
|
56
|
+
export declare function STimePicker({ value, onValueChange, onOpenChange, type, size, placeholder, disabled, clearable, showMeridiem, minuteStep, width, name, rules, status, label, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, className, style, }: STimePickerProps): import("react").JSX.Element;
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
| `placeholder?` | `string` | `'00:00 ~ 23:59'` | |
|
|
15
15
|
| `disabled?` | `boolean` | `false` | |
|
|
16
16
|
| `clearable?` | `boolean` | `false` | |
|
|
17
|
-
| `
|
|
17
|
+
| `showMeridiem?` | `boolean` | — | 오전/오후 선택 표시 여부. 지정하지 않으면 type="midday"일 때만 켜집니다. |
|
|
18
18
|
| `minuteStep?` | `number` | `1` | |
|
|
19
19
|
| `rangeOrder?` | `STimeRangePickerRangeOrder` | `'strict'` | 범위 순서 정책. strict는 시작 시간이 종료 시간보다 늦어지지 않도록 보정합니다. |
|
|
20
20
|
| `width?` | `SFieldWidth` | — | 컨트롤 너비 — 폭 등급(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) · 숫자=px · CSS 길이. 등급은 `--cmp-field-width-*` 토큰으로 풀리므로 토큰이 바뀌면 화면이 따라간다. 값 길이에 상한이 없으면 `"100%"` 로 두어 행 전체를 쓴다. |
|
|
@@ -21,7 +21,7 @@ export interface STimeRangePickerProps {
|
|
|
21
21
|
disabled?: boolean;
|
|
22
22
|
clearable?: boolean;
|
|
23
23
|
/** 오전/오후 선택 표시 여부. 지정하지 않으면 type="midday"일 때만 켜집니다. */
|
|
24
|
-
|
|
24
|
+
showMeridiem?: boolean;
|
|
25
25
|
minuteStep?: number;
|
|
26
26
|
/** 범위 순서 정책. strict는 시작 시간이 종료 시간보다 늦어지지 않도록 보정합니다. */
|
|
27
27
|
rangeOrder?: STimeRangePickerRangeOrder;
|
|
@@ -48,12 +48,12 @@ export interface STimeRangePickerProps {
|
|
|
48
48
|
className?: string;
|
|
49
49
|
style?: CSSProperties;
|
|
50
50
|
}
|
|
51
|
-
export declare function RangeTimeSelector({ value,
|
|
51
|
+
export declare function RangeTimeSelector({ value, showMeridiem, minuteStep, rangeOrder, onChange, }: {
|
|
52
52
|
value?: STimeRangeValue;
|
|
53
|
-
|
|
53
|
+
showMeridiem: boolean;
|
|
54
54
|
minuteStep: number;
|
|
55
55
|
rangeOrder: STimeRangePickerRangeOrder;
|
|
56
56
|
onChange: (range: [string, string]) => void;
|
|
57
57
|
}): import("react").JSX.Element;
|
|
58
58
|
/** STimeRangePicker — sd-time-range-picker 포팅. SField + Popover(RangeTimeSelector). */
|
|
59
|
-
export declare function STimeRangePicker({ value, onValueChange, onOpenChange, type, size, placeholder, disabled, clearable,
|
|
59
|
+
export declare function STimeRangePicker({ value, onValueChange, onOpenChange, type, size, placeholder, disabled, clearable, showMeridiem, minuteStep, rangeOrder, width, name, rules, status, label, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, className, style, }: STimeRangePickerProps): import("react").JSX.Element;
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
| `link?` | `string` | — | 우측 링크 URL |
|
|
40
40
|
| `linkLabel?` | `string` | — | 링크 레이블 (없으면 URL) |
|
|
41
41
|
| `buttonLabel?` | `string` | — | 우측 버튼 레이블 |
|
|
42
|
-
| `
|
|
42
|
+
| `showClose?` | `boolean` | `false` | 닫기 버튼 표시 |
|
|
43
43
|
| `type?` | `SToastType` | `'default'` | 타입(색상/프리셋) |
|
|
44
44
|
| `className?` | `string` | — | |
|
|
45
45
|
| `style?` | `CSSProperties` | — | |
|
|
@@ -13,7 +13,7 @@ export interface SToastProps {
|
|
|
13
13
|
/** 우측 버튼 레이블 */
|
|
14
14
|
buttonLabel?: string;
|
|
15
15
|
/** 닫기 버튼 표시 */
|
|
16
|
-
|
|
16
|
+
showClose?: boolean;
|
|
17
17
|
/** 타입(색상/프리셋) */
|
|
18
18
|
type?: SToastType;
|
|
19
19
|
/** 닫기 (sdClose) */
|
|
@@ -24,4 +24,4 @@ export interface SToastProps {
|
|
|
24
24
|
style?: CSSProperties;
|
|
25
25
|
}
|
|
26
26
|
/** SToast — sd-toast 포팅. 타입별 색상 + 아이콘/링크/버튼/닫기. */
|
|
27
|
-
export declare function SToast({ icon, message, link, linkLabel, buttonLabel,
|
|
27
|
+
export declare function SToast({ icon, message, link, linkLabel, buttonLabel, showClose, type, onClose, onButtonClick, className, style, }: SToastProps): import("react").JSX.Element;
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
| `placement?` | `STooltipPlacement` | `'top'` | 표시 방향 |
|
|
16
16
|
| `sideOffset?` | `number` | `8` | 앵커와의 간격(px) |
|
|
17
17
|
| `tooltipType?` | `STooltipType` | `'default'` | 배경/텍스트 색상 타입 |
|
|
18
|
-
| `
|
|
18
|
+
| `showClose?` | `boolean` | `false` | 우측 상단 닫기 버튼. 켜면 자동 닫힘이 비활성화되고 X(또는 hide())로만 닫힘 (hover·click 공통, `trigger='none'` 에서는 무시) |
|
|
19
19
|
| `disabled?` | `boolean` | `false` | 비활성 — 트리거만 렌더하고 툴팁을 열지 않음 |
|
|
20
20
|
| `children?` | `ReactNode` | — | 커스텀 트리거. 없으면 아이콘 트리거를 렌더 |
|
|
21
21
|
| `icon?` | `SIconName` | `'helpOutline'` | 기본(아이콘) 트리거 설정 |
|
|
@@ -22,7 +22,7 @@ export interface STooltipProps {
|
|
|
22
22
|
/** 배경/텍스트 색상 타입 */
|
|
23
23
|
tooltipType?: STooltipType;
|
|
24
24
|
/** 우측 상단 닫기 버튼. 켜면 자동 닫힘이 비활성화되고 X(또는 hide())로만 닫힘 (hover·click 공통, `trigger='none'` 에서는 무시) */
|
|
25
|
-
|
|
25
|
+
showClose?: boolean;
|
|
26
26
|
/** 비활성 — 트리거만 렌더하고 툴팁을 열지 않음 */
|
|
27
27
|
disabled?: boolean;
|
|
28
28
|
/** 커스텀 트리거. 없으면 아이콘 트리거를 렌더 */
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
| Prop | Type | Default | Description |
|
|
10
10
|
|------|------|---------|-------------|
|
|
11
11
|
| `node` | `STreeNode` | — | 렌더링할 노드 |
|
|
12
|
-
| `depth?` | `number` | `1` | 중첩
|
|
13
|
-
| `
|
|
14
|
-
| `ancestorLast?` | `boolean[]` | `[]` | 상위 depth 별 마지막 자식
|
|
12
|
+
| `depth?` | `number` | `1` | 중첩 단계. 연결선의 들여쓰기 폭을 정한다. |
|
|
13
|
+
| `last?` | `boolean` | `true` | 마지막 자식 여부. 연결선을 이 아이템에서 끊을지 결정한다. |
|
|
14
|
+
| `ancestorLast?` | `boolean[]` | `[]` | 상위 depth 별 마지막 자식 여부. 조상 쪽 연결선을 어디까지 잇는지 정한다. |
|
|
15
15
|
| `expanded?` | `boolean` | `false` | 펼침 상태 |
|
|
16
16
|
| `selected?` | `boolean` | `false` | 선택 상태 |
|
|
17
17
|
| `guideline?` | `boolean` | `true` | depth 연결선 표시 여부 |
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
| `defaultExpandedIds?` | `string[]` | — | 비제어 펼침 초기값 |
|
|
43
43
|
| `selectable?` | `boolean` | `true` | 체크박스 표시 여부 |
|
|
44
44
|
| `size?` | `STreeSize` | `'sm'` | 타이포그래피 크기 |
|
|
45
|
-
| `
|
|
45
|
+
| `showSelectAll?` | `boolean` | `false` | 체크박스 사용 시 최상단 전체 선택 아이템 표시 여부 |
|
|
46
46
|
| `guideline?` | `boolean` | `true` | depth 연결선 표시 여부 |
|
|
47
47
|
| `border?` | `boolean` | `true` | 아이템 하단 border 표시 여부 |
|
|
48
48
|
| `cascadeSelection?` | `boolean` | `true` | 부모 선택 시 하위 노드까지 함께 토글 |
|
|
@@ -23,11 +23,23 @@ export interface STreeItemRenderState {
|
|
|
23
23
|
export interface STreeItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'title' | 'onSelect' | 'onToggle'> {
|
|
24
24
|
/** 렌더링할 노드 */
|
|
25
25
|
node: STreeNode;
|
|
26
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* 중첩 단계. 연결선의 들여쓰기 폭을 정한다.
|
|
28
|
+
*
|
|
29
|
+
* @nodemo STree 가 노드를 그리며 채운다 — 소비자가 직접 주는 값이 아니다.
|
|
30
|
+
*/
|
|
27
31
|
depth?: number;
|
|
28
|
-
/**
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
/**
|
|
33
|
+
* 마지막 자식 여부. 연결선을 이 아이템에서 끊을지 결정한다.
|
|
34
|
+
*
|
|
35
|
+
* @nodemo STree 가 노드를 그리며 채운다 — 소비자가 직접 주는 값이 아니다.
|
|
36
|
+
*/
|
|
37
|
+
last?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* 상위 depth 별 마지막 자식 여부. 조상 쪽 연결선을 어디까지 잇는지 정한다.
|
|
40
|
+
*
|
|
41
|
+
* @nodemo STree 가 노드를 그리며 채운다 — 소비자가 직접 주는 값이 아니다.
|
|
42
|
+
*/
|
|
31
43
|
ancestorLast?: boolean[];
|
|
32
44
|
/** 펼침 상태 */
|
|
33
45
|
expanded?: boolean;
|
|
@@ -68,7 +80,7 @@ export interface STreeProps extends Omit<HTMLAttributes<HTMLDivElement>, 'childr
|
|
|
68
80
|
/** 타이포그래피 크기 */
|
|
69
81
|
size?: STreeSize;
|
|
70
82
|
/** 체크박스 사용 시 최상단 전체 선택 아이템 표시 여부 */
|
|
71
|
-
|
|
83
|
+
showSelectAll?: boolean;
|
|
72
84
|
/** depth 연결선 표시 여부 */
|
|
73
85
|
guideline?: boolean;
|
|
74
86
|
/** 아이템 하단 border 표시 여부 */
|