sellmate-design-system-react 9.0.0-beta.50 → 9.0.0-beta.52
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 +105 -37
- package/dist/components/SBarChart/barChart.config.d.ts +41 -14
- package/dist/components/SLoginCard/sellmate-wordmark.d.ts +2 -1
- package/dist/components/SScrollArea/README.md +1 -0
- package/dist/components/SScrollArea/SScrollArea.d.ts +17 -0
- package/dist/components/SSelect/select.config.d.ts +1 -1
- package/dist/components/SSystemActionButton/README.md +12 -7
- package/dist/components/SSystemActionButton/SSystemActionButton.d.ts +15 -9
- package/dist/components/STable/README.md +6 -1
- package/dist/components/STable/STable.d.ts +61 -1
- package/dist/components/STableBar/README.md +1 -0
- package/dist/components/STableBar/STableBar.d.ts +8 -1
- package/dist/index.cjs +692 -384
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +692 -384
- package/dist/index.js.map +1 -1
- package/dist/lib/chart/tooltip.d.ts +12 -4
- package/dist/lib/chart/use-element-size.d.ts +22 -0
- package/dist/lib/overlay-scrollbar.d.ts +32 -0
- package/dist/{components/SSelect → lib}/row-metrics.d.ts +1 -0
- package/dist/llms-full.txt +125 -45
- package/dist/llms.txt +105 -37
- package/dist/styles.css +17 -20
- package/dist/theme.css +8 -4
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type CSSProperties, type ReactNode } from 'react';
|
|
1
|
+
import { type CSSProperties, type UIEvent as ReactUIEvent, type ReactNode } from 'react';
|
|
2
2
|
import { type SSelectOption } from '../SSelect';
|
|
3
3
|
export type SRow = Record<string, any>;
|
|
4
4
|
/** `STableColumn.renderCell`에 전달되는 컨텍스트 */
|
|
@@ -172,6 +172,35 @@ export interface STableHandle {
|
|
|
172
172
|
} | null;
|
|
173
173
|
/** 컬럼 sticky 스타일 (CSS 변수 + 고정폭) */
|
|
174
174
|
getStickyStyle: (colIdx: number) => CSSProperties;
|
|
175
|
+
/**
|
|
176
|
+
* 본문의 세로 스크롤 컨테이너. 본문이 슬롯으로 대체됐거나 아직 안 그려졌으면 `null`.
|
|
177
|
+
*
|
|
178
|
+
* 스크롤 위치를 읽고 되돌리거나, 표 안에서 스크롤 여지를 재야 할 때 쓴다 —
|
|
179
|
+
* **DOM 을 뒤져 컨테이너를 찾지 않는다.** 내부 구조는 예고 없이 바뀐다.
|
|
180
|
+
*
|
|
181
|
+
* ⚠️ `virtualScroll` 에서 **위치를 픽셀로 저장했다 되돌리는 것은 미덥지 않다.** 다시 그릴 때
|
|
182
|
+
* 아직 안 그려진 행은 추정 높이로 잡히므로, 실측이 쌓이기 전의 같은 `scrollTop` 이 다른 행을
|
|
183
|
+
* 가리킨다. 그 경우엔 위치가 아니라 **보고 있던 행**을 기억해 두는 편이 맞다.
|
|
184
|
+
*/
|
|
185
|
+
getScrollElement: () => HTMLDivElement | null;
|
|
186
|
+
/**
|
|
187
|
+
* 지금 본문 맨 위에 걸린 행의 인덱스 (`rows` 기준). 행이 없으면 `0`.
|
|
188
|
+
*
|
|
189
|
+
* **스크롤 위치를 저장할 때는 픽셀이 아니라 이 값을 저장한다** — `virtualScroll` 에서
|
|
190
|
+
* 픽셀은 좌표계가 실측으로 움직이는 값이라, 되돌릴 때 다른 행을 가리킨다.
|
|
191
|
+
*/
|
|
192
|
+
getFirstVisibleRow: () => number;
|
|
193
|
+
/**
|
|
194
|
+
* 그 행이 본문 맨 위에 오도록 스크롤한다 (`rows` 기준 인덱스, 범위를 벗어나면 잘린다).
|
|
195
|
+
*
|
|
196
|
+
* `virtualScroll` 에서는 **실측이 정착할 때까지 그 행을 계속 다시 겨냥한다** — 옮기는
|
|
197
|
+
* 시점의 좌표는 아직 추정치라 한 번만 옮기면 몇 행씩 밀린다. 사용자가 직접 스크롤하면
|
|
198
|
+
* 겨냥을 놓는다.
|
|
199
|
+
*
|
|
200
|
+
* 페이지네이션을 쓰는 표에서는 **지금 페이지에 그려진 행만** 닿는다 — 다른 페이지의
|
|
201
|
+
* 행이라면 페이지를 먼저 옮긴다.
|
|
202
|
+
*/
|
|
203
|
+
scrollToRow: (index: number) => void;
|
|
175
204
|
/** 가상 스크롤 총 행 수 설정 */
|
|
176
205
|
setRowCount: (count: number) => void;
|
|
177
206
|
/** 단일 행 선택 토글 (sd-table updateRowSelect) — onSelectedChange 발생 */
|
|
@@ -188,6 +217,19 @@ export interface STableProps {
|
|
|
188
217
|
rowKey?: string;
|
|
189
218
|
/** 행 선택 체크박스 */
|
|
190
219
|
selectable?: boolean;
|
|
220
|
+
/**
|
|
221
|
+
* 이 행을 고를 수 있는가. 주지 않으면 모든 행을 고를 수 있다.
|
|
222
|
+
*
|
|
223
|
+
* 고를 수 없는 행은 체크박스가 잠기고, **전체 선택·Shift 구간 선택의 셈에서도 빠진다** —
|
|
224
|
+
* 잠긴 행이 셈에 남으면 "전부 선택됨"에 닿지 못해 헤더 체크박스가 해제 방향으로 가지 못한다.
|
|
225
|
+
*
|
|
226
|
+
* 목록에서 지워 버리는 것과 다르다. 실패 0건인 차수처럼 **자리는 보여야 하지만 대상이 될 수는
|
|
227
|
+
* 없는 행**에 쓴다. 아예 대상이 아니라면 `rows` 에서 거르는 편이 낫다.
|
|
228
|
+
*
|
|
229
|
+
* 잠금은 그리기 시점의 판정일 뿐이라, 이미 `selected` 에 든 행이 나중에 잠겨도 DS 가 빼지
|
|
230
|
+
* 않는다(제어 상태를 말없이 바꾸지 않는다). 다만 헤더의 전체 해제로는 걷어낼 수 있다.
|
|
231
|
+
*/
|
|
232
|
+
isRowSelectable?: (row: SRow) => boolean;
|
|
191
233
|
selected?: SRow[];
|
|
192
234
|
onSelectedChange?: (rows: SRow[]) => void;
|
|
193
235
|
/**
|
|
@@ -257,9 +299,27 @@ export interface STableProps {
|
|
|
257
299
|
onRowsPerPageChange?: (perPage: number) => void;
|
|
258
300
|
/** 가상 스크롤 */
|
|
259
301
|
virtualScroll?: boolean;
|
|
302
|
+
/**
|
|
303
|
+
* 행 높이의 **출발점**(px). 미지정이면 밀도에 따라 44 / 32.
|
|
304
|
+
*
|
|
305
|
+
* 행마다 높이가 달라도 된다 — 화면에 나온 행은 실제 높이를 재서 덮으므로, 이 값은
|
|
306
|
+
* **아직 안 그려진 행의 추정치**이자 행의 최소 높이일 뿐이다. 실측이 쌓일수록 뒤쪽
|
|
307
|
+
* 추정도 그 평균으로 수렴한다.
|
|
308
|
+
*
|
|
309
|
+
* 그래서 높이가 제각각인 표에서 "가장 흔한 높이"를 넣어 두면 충분하다. 값이 실제와
|
|
310
|
+
* 멀수록 아직 안 그려진 구간의 스크롤바 길이만 덜 정확할 뿐, 그리는 위치는 어긋나지 않는다.
|
|
311
|
+
*/
|
|
260
312
|
rowHeight?: number;
|
|
261
313
|
virtualBuffer?: number;
|
|
262
314
|
virtualEndThreshold?: number;
|
|
315
|
+
/**
|
|
316
|
+
* 본문이 스크롤될 때. **실제 스크롤에만 울린다** — 행 수·컬럼 폭·로딩이 바뀌어
|
|
317
|
+
* 내부에서 위치를 다시 잴 때는 오지 않는다.
|
|
318
|
+
*
|
|
319
|
+
* `onVirtualUpdate` 는 그리는 창이 바뀔 때만 오므로 그 사이 스크롤을 알 수 없다.
|
|
320
|
+
* 스크롤 위치를 읽어 두었다 되돌리는 것처럼 **위치 자체가 필요하면** 이쪽을 쓴다.
|
|
321
|
+
*/
|
|
322
|
+
onScroll?: (event: ReactUIEvent<HTMLDivElement>) => void;
|
|
263
323
|
onVirtualUpdate?: (range: {
|
|
264
324
|
from: number;
|
|
265
325
|
to: number;
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
| Prop | Type | Default | Description |
|
|
10
10
|
|------|------|---------|-------------|
|
|
11
|
+
| `title?` | `ReactNode` | — | 건수 앞에 서는 제목 슬롯. 이 바가 무엇의 목록인지 말한다. 문자열을 주면 바의 기본 타이포로 그린다. 다른 모양이 필요하면 요소를 통째로 넘긴다 — 슬롯이라 안에 무엇이 오든 자리만 잡아 준다. |
|
|
11
12
|
| `total?` | `number` | — | 전체 건수. 지정하면 "총 N 건" 을 표시한다 (천단위 구분 자동) |
|
|
12
13
|
| `selected?` | `number` | — | 선택 건수. 지정하면 "N건 선택" 을 표시한다 |
|
|
13
14
|
| `actions?` | `ReactNode` | — | 구분선 오른쪽 좌측 액션 영역 |
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
-
export interface STableBarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
2
|
+
export interface STableBarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'title'> {
|
|
3
|
+
/**
|
|
4
|
+
* 건수 앞에 서는 제목 슬롯. 이 바가 무엇의 목록인지 말한다.
|
|
5
|
+
*
|
|
6
|
+
* 문자열을 주면 바의 기본 타이포로 그린다. 다른 모양이 필요하면 요소를 통째로 넘긴다 —
|
|
7
|
+
* 슬롯이라 안에 무엇이 오든 자리만 잡아 준다.
|
|
8
|
+
*/
|
|
9
|
+
title?: ReactNode;
|
|
3
10
|
/** 전체 건수. 지정하면 "총 N 건" 을 표시한다 (천단위 구분 자동) */
|
|
4
11
|
total?: number;
|
|
5
12
|
/** 선택 건수. 지정하면 "N건 선택" 을 표시한다 */
|