sellmate-design-system-react 9.0.0-beta.89 → 9.0.0-beta.90
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 +46 -2
- package/dist/components/SChatInput/README.md +3 -1
- package/dist/components/SChatInput/SChatInput.d.ts +18 -1
- package/dist/components/SChatMessage/README.md +1 -0
- package/dist/components/SChatMessage/SChatMessage.d.ts +12 -0
- package/dist/components/SCheckbox/README.md +1 -0
- package/dist/components/SCheckbox/SCheckbox.d.ts +9 -1
- package/dist/components/SChipInput/README.md +4 -1
- package/dist/components/SChipInput/SChipInput.d.ts +30 -0
- package/dist/components/SEditor/EditorBody.d.ts +12 -0
- package/dist/components/SEditor/README.md +2 -0
- package/dist/components/SField/README.md +3 -0
- package/dist/components/SField/SField.d.ts +19 -0
- package/dist/components/SField/index.d.ts +1 -1
- package/dist/components/SListItem/README.md +1 -1
- package/dist/components/SListItem/SListItem.d.ts +4 -0
- package/dist/components/SSlider/README.md +86 -0
- package/dist/components/SSlider/SSlider.d.ts +149 -0
- package/dist/components/SSlider/index.d.ts +1 -0
- package/dist/index.cjs +483 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +481 -17
- package/dist/index.js.map +1 -1
- package/dist/llms-full.txt +143 -5
- package/dist/llms.txt +48 -4
- package/dist/styles.css +37 -0
- package/package.json +2 -1
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { type CSSProperties, type ReactElement, type RefAttributes } from 'react';
|
|
2
|
+
import { type SFieldSize, type SFieldStatus, type SFieldLabelPosition } from '../SField';
|
|
3
|
+
import { type SIconName } from '../SIcon';
|
|
4
|
+
import { type STooltipProps } from '../STooltip';
|
|
5
|
+
import { type SColor } from '../../lib/color';
|
|
6
|
+
import { type Rule } from '../../lib/form';
|
|
7
|
+
import { type SFieldWidth } from '../../lib/field-width';
|
|
8
|
+
/** 단일 값은 `number`, 범위는 `[시작, 끝]` */
|
|
9
|
+
export type SSliderValue = number | [number, number];
|
|
10
|
+
/** 값 말풍선을 언제 보일지 */
|
|
11
|
+
export type SSliderShowValue = 'none' | 'drag' | 'always';
|
|
12
|
+
/** 눈금 하나 */
|
|
13
|
+
export interface SSliderMark {
|
|
14
|
+
/** 눈금 위치 값 (`min`~`max`) */
|
|
15
|
+
value: number;
|
|
16
|
+
/** 눈금 아래 라벨. 없으면 점만 찍힌다 */
|
|
17
|
+
label?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface SSliderProps<V extends SSliderValue = number> {
|
|
20
|
+
/**
|
|
21
|
+
* 값 (제어). **`number` 면 단일, `[시작, 끝]` 이면 범위 슬라이더**가 된다 —
|
|
22
|
+
* 손잡이 개수와 `onValueChange` 가 돌려주는 모양이 이 값을 따른다.
|
|
23
|
+
* 범위는 두 손잡이가 서로를 넘어가지 않는다.
|
|
24
|
+
*/
|
|
25
|
+
value?: V;
|
|
26
|
+
/** 값 변경 (sdUpdate) — 드래그 중 매 step 마다 호출된다 */
|
|
27
|
+
onValueChange?: (value: V) => void;
|
|
28
|
+
/**
|
|
29
|
+
* 조작이 끝났을 때 한 번 호출된다 (포인터를 놓을 때, 키보드로 한 칸 움직일 때).
|
|
30
|
+
* 값을 서버에 보내거나 목록을 다시 불러오는 등 **매 step 마다 하면 안 되는 일**은 여기서 한다.
|
|
31
|
+
*/
|
|
32
|
+
onValueCommit?: (value: V) => void;
|
|
33
|
+
/** 최솟값 */
|
|
34
|
+
min?: number;
|
|
35
|
+
/** 최댓값 */
|
|
36
|
+
max?: number;
|
|
37
|
+
/** 한 칸 크기. 값은 `min` 에서 이 간격으로만 움직인다 */
|
|
38
|
+
step?: number;
|
|
39
|
+
/**
|
|
40
|
+
* 눈금. `true` 면 `step` 마다 점을 찍고, 배열이면 그 위치에만 찍는다(라벨을 함께 줄 수 있다).
|
|
41
|
+
* 고를 수 있는 값이 몇 개 안 될 때 어디서 멈추는지 보여 주는 용도다 —
|
|
42
|
+
* `step` 이 촘촘하면 `true` 대신 배열로 대표 위치만 준다.
|
|
43
|
+
*/
|
|
44
|
+
marks?: boolean | SSliderMark[];
|
|
45
|
+
/**
|
|
46
|
+
* 값 말풍선 표시 시점.
|
|
47
|
+
* - `drag` — 드래그·키보드 조작 중, 손잡이에 마우스를 올렸을 때만 보인다
|
|
48
|
+
* - `always` — 늘 보인다. 값을 숫자로 따로 보여 주지 않는 자리에서 쓴다
|
|
49
|
+
* - `none` — 보이지 않는다. 옆에 값을 따로 적어 둘 때 쓴다
|
|
50
|
+
*
|
|
51
|
+
* `none` 이 아니면 말풍선 자리만큼 위쪽 공간을 미리 잡아 두어, 나타날 때 레이아웃이 밀리지 않는다.
|
|
52
|
+
*/
|
|
53
|
+
showValue?: SSliderShowValue;
|
|
54
|
+
/** 말풍선·스크린리더에 읽히는 값 표기 (예: `v => \`${v}%\``) */
|
|
55
|
+
formatValue?: (value: number) => string;
|
|
56
|
+
/**
|
|
57
|
+
* 크기 — 다른 필드와 나란히 놓일 때 라벨과 높이를 맞추는 등급이다. 슬라이더 모양 자체는 같다.
|
|
58
|
+
*
|
|
59
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
60
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
61
|
+
*/
|
|
62
|
+
size?: SFieldSize;
|
|
63
|
+
/** 유효성 규칙 — 조작이 끝날 때(`onValueCommit` 시점)와 SForm 제출 시 검증 */
|
|
64
|
+
rules?: Rule[];
|
|
65
|
+
/** 폼 연동용 name */
|
|
66
|
+
name?: string;
|
|
67
|
+
/**
|
|
68
|
+
* 필드 상태 ('default' | 'pass' | 'error')
|
|
69
|
+
*
|
|
70
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
71
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
72
|
+
*/
|
|
73
|
+
status?: SFieldStatus;
|
|
74
|
+
/** 레이블 텍스트. 손잡이의 접근성 이름으로도 쓰인다 */
|
|
75
|
+
label?: string;
|
|
76
|
+
/**
|
|
77
|
+
* 레이블 위치 — `top` 이면 라벨이 컨트롤 위에 선다 (SField 로 그대로 넘어간다).
|
|
78
|
+
*
|
|
79
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
80
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
81
|
+
*/
|
|
82
|
+
labelPosition?: SFieldLabelPosition;
|
|
83
|
+
/**
|
|
84
|
+
* 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다).
|
|
85
|
+
*
|
|
86
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
87
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
88
|
+
*/
|
|
89
|
+
subLabel?: string;
|
|
90
|
+
/**
|
|
91
|
+
* 레이블 너비 (숫자=px)
|
|
92
|
+
*
|
|
93
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
94
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
95
|
+
*/
|
|
96
|
+
labelWidth?: number | string;
|
|
97
|
+
/**
|
|
98
|
+
* 레이블 영역 아이콘
|
|
99
|
+
*
|
|
100
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
101
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
102
|
+
*/
|
|
103
|
+
icon?: SIconName;
|
|
104
|
+
/**
|
|
105
|
+
* 레이블 영역 아이콘 색상
|
|
106
|
+
*
|
|
107
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
108
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
109
|
+
*/
|
|
110
|
+
iconColor?: SColor;
|
|
111
|
+
/**
|
|
112
|
+
* 레이블 툴팁 텍스트
|
|
113
|
+
*
|
|
114
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
115
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
116
|
+
*/
|
|
117
|
+
labelTooltip?: string;
|
|
118
|
+
/**
|
|
119
|
+
* 레이블 툴팁 상세 옵션
|
|
120
|
+
*
|
|
121
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
122
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
123
|
+
*/
|
|
124
|
+
labelTooltipProps?: Partial<STooltipProps>;
|
|
125
|
+
/** 하단 힌트 */
|
|
126
|
+
hint?: string;
|
|
127
|
+
/** 에러 상태 */
|
|
128
|
+
error?: boolean;
|
|
129
|
+
/** 에러 메시지 */
|
|
130
|
+
errorMessage?: string;
|
|
131
|
+
/**
|
|
132
|
+
* 컨트롤 너비 — 폭 등급 · 숫자=px · CSS 길이. 기본은 부모 폭을 채운다.
|
|
133
|
+
*
|
|
134
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
135
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
136
|
+
*/
|
|
137
|
+
width?: SFieldWidth;
|
|
138
|
+
/** 비활성 — 조작·포커스가 모두 막힌다 */
|
|
139
|
+
disabled?: boolean;
|
|
140
|
+
/** 읽기 전용 — 값은 그대로 보이고 키보드 포커스는 받지만 값이 바뀌지 않는다 */
|
|
141
|
+
readOnly?: boolean;
|
|
142
|
+
className?: string;
|
|
143
|
+
style?: CSSProperties;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* SSlider — 끌어서 수치 하나 또는 범위를 고르는 필드 (Radix Slider 기반).
|
|
147
|
+
* SField 를 테두리 없이 두르고, 라벨·힌트·에러·SForm 검증은 다른 필드와 같게 동작한다.
|
|
148
|
+
*/
|
|
149
|
+
export declare const SSlider: <V extends SSliderValue = number>(props: SSliderProps<V> & RefAttributes<HTMLDivElement>) => ReactElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { SSlider, type SSliderProps, type SSliderValue, type SSliderShowValue, type SSliderMark, } from './SSlider';
|