sellmate-design-system-react 9.0.0-beta.56 → 9.0.0-beta.59
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 +92 -4
- package/dist/components/SBarChart/barChart.config.d.ts +2 -8
- package/dist/components/SDateRangePicker/README.md +1 -0
- package/dist/components/SDateRangePicker/SDateRangePicker.d.ts +11 -1
- package/dist/components/SKeyValueTable/README.md +1 -0
- package/dist/components/SKeyValueTable/SKeyValueTable.d.ts +17 -1
- package/dist/components/SLineChart/README.md +106 -0
- package/dist/components/SLineChart/SLineChart.d.ts +88 -0
- package/dist/components/SLineChart/index.d.ts +1 -0
- package/dist/components/SLineChart/lineChart.config.d.ts +75 -0
- package/dist/components/STable/README.md +16 -0
- package/dist/components/STable/STable.d.ts +45 -0
- package/dist/components/STag/README.md +1 -0
- package/dist/components/STag/tag.config.d.ts +1 -1
- package/dist/components/STimePicker/README.md +1 -0
- package/dist/components/STimePicker/STimePicker.d.ts +11 -1
- package/dist/components/STimeRangePicker/README.md +1 -0
- package/dist/components/STimeRangePicker/STimeRangePicker.d.ts +10 -1
- package/dist/index.cjs +785 -140
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +784 -140
- package/dist/index.js.map +1 -1
- package/dist/lib/chart/cartesian.d.ts +10 -0
- package/dist/lib/date.d.ts +2 -1
- package/dist/llms-full.txt +236 -4
- package/dist/llms.txt +110 -7
- package/dist/styles.css +59 -4
- package/dist/theme.css +41 -0
- package/eslint/scale.gen.mjs +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import { type CSSProperties, type UIEvent as ReactUIEvent, type ReactNode } from 'react';
|
|
2
|
+
import { type SIconName } from '../SIcon';
|
|
2
3
|
import { type SSelectOption } from '../SSelect';
|
|
3
4
|
export type SRow = Record<string, any>;
|
|
5
|
+
/** 오른쪽 클릭 메뉴의 항목 한 줄 */
|
|
6
|
+
export interface STableContextMenuItem {
|
|
7
|
+
/** 클릭 시 `onContextMenuItemClick` 으로 돌아오는 값 */
|
|
8
|
+
value: string | number;
|
|
9
|
+
label: string;
|
|
10
|
+
icon?: SIconName;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
}
|
|
4
13
|
/** `STableColumn.renderCell`에 전달되는 컨텍스트 */
|
|
5
14
|
export interface STableCellContext {
|
|
6
15
|
row: SRow;
|
|
@@ -217,6 +226,42 @@ export interface STableProps {
|
|
|
217
226
|
rowKey?: string;
|
|
218
227
|
/** 행 선택 체크박스 */
|
|
219
228
|
selectable?: boolean;
|
|
229
|
+
/**
|
|
230
|
+
* 행을 드래그해서 고른다. 기본 `false`.
|
|
231
|
+
*
|
|
232
|
+
* 고르는 수단만 다를 뿐 `selectable` 과 같은 선택이다 — `selected` · `onSelectedChange` ·
|
|
233
|
+
* `isRowSelectable` 을 그대로 쓴다. 체크박스 열은 생기지 않고, 대신 고른 구간이 배경색과
|
|
234
|
+
* 바깥 테두리로 표시된다.
|
|
235
|
+
*
|
|
236
|
+
* **`selectable` 과 함께 켜면 `selectable` 이 이긴다** — 체크박스가 있는 표에서 드래그까지
|
|
237
|
+
* 걸리면 글자를 긁으려던 손이 선택을 갈아치운다. 둘 다 필요해 보이면 체크박스 쪽만 남긴다.
|
|
238
|
+
*
|
|
239
|
+
* 누른 자리가 구간의 기준점이고, 끌어간 자리까지가 구간이다. **새로 끌면 이전 선택은 풀린다** —
|
|
240
|
+
* 기존 선택에 더하려면 `Ctrl`(macOS 는 `Cmd`)을 짚고 끈다. 잠긴 행(`isRowSelectable`)은
|
|
241
|
+
* 구간 안에 있어도 그냥 지나간다.
|
|
242
|
+
*
|
|
243
|
+
* **켜 두면 셀 안의 글자를 긁어 복사할 수 없다** — 끌기가 곧 선택이라 글자 선택과 같은 손짓을
|
|
244
|
+
* 두고 다툰다. 값을 복사해 가는 표에는 켜지 않는다. 셀 안의 버튼·입력은 그대로 눌린다.
|
|
245
|
+
*/
|
|
246
|
+
dragSelectable?: boolean;
|
|
247
|
+
/**
|
|
248
|
+
* 드래그 선택에서 **행을 오른쪽 클릭했을 때** 커서 자리에 뜨는 메뉴의 항목.
|
|
249
|
+
* 주지 않거나 비면 메뉴가 뜨지 않고 브라우저 기본 메뉴가 나온다.
|
|
250
|
+
*
|
|
251
|
+
* **`dragSelectable` 에서만 동작한다** — 체크박스 모드에서는 무시된다.
|
|
252
|
+
*
|
|
253
|
+
* 고르지 않은 행에서 누르면 **그 행만 고른 뒤** 열린다. 메뉴가 다룰 대상과 화면에 칠해진
|
|
254
|
+
* 것이 어긋나지 않게 하기 위함이다. 잠긴 행(`isRowSelectable`) 위에서는 열리지 않는다 —
|
|
255
|
+
* 고를 수 없는 행을 대상으로 삼을 수 없기 때문이다.
|
|
256
|
+
*/
|
|
257
|
+
contextMenuItems?: STableContextMenuItem[];
|
|
258
|
+
/**
|
|
259
|
+
* 메뉴 항목을 골랐을 때. 고른 항목의 `value` 와 **그 메뉴가 다루는 행들**이 함께 온다.
|
|
260
|
+
*
|
|
261
|
+
* 행 목록은 메뉴가 열린 시점에 확정되므로 `selected` 를 따로 읽지 않아도 된다 — 오른쪽
|
|
262
|
+
* 클릭이 선택을 바꾸는 경우(고르지 않은 행)에도 바뀐 뒤의 행이 온다.
|
|
263
|
+
*/
|
|
264
|
+
onContextMenuItemClick?: (value: string | number, rows: SRow[]) => void;
|
|
220
265
|
/**
|
|
221
266
|
* 이 행을 고를 수 있는가. 주지 않으면 모든 행을 고를 수 있다.
|
|
222
267
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const TAG_SHAPES: readonly ["square", "pill"];
|
|
2
2
|
export declare const TAG_SIZES: readonly ["xs", "sm", "md"];
|
|
3
|
-
export declare const TAG_COLORS: readonly ["grey", "red", "orange", "yellow", "green", "blue", "darkblue", "indigo"];
|
|
3
|
+
export declare const TAG_COLORS: readonly ["grey", "red", "orange", "yellow", "green", "blue", "darkblue", "indigo", "purple"];
|
|
4
4
|
export type STagShape = (typeof TAG_SHAPES)[number];
|
|
5
5
|
export type STagSize = (typeof TAG_SIZES)[number];
|
|
6
6
|
export type STagColor = (typeof TAG_COLORS)[number];
|
|
@@ -17,6 +17,7 @@
|
|
|
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
|
+
| `maxWidth?` | `SFieldWidth` | — | 컨트롤 최대 너비 — 폭 등급 · 숫자=px · CSS 길이. 지정하지 않으면 값 길이(`HH:mm`)에 맞춘 내장 상한(`size='md'` → `lg`, `'sm'` → `md`)이 걸려, `width="100%"` 를 받아도 행 전체로 늘어나지 않는다. 팝오버처럼 폭이 이미 좁게 정해진 자리에서 그 폭을 그대로 채워야 하면 `width="100%"` 와 함께 `maxWidth="100%"` 를 준다. `0` 은 상한을 아예 걸지 않는다 — 부모보다 넓어지는 것까지 허용해야 할 때만 쓴다. |
|
|
20
21
|
| `name?` | `string` | — | |
|
|
21
22
|
| `rules?` | `Rule[]` | — | |
|
|
22
23
|
| `status?` | `SFieldStatus` | — | |
|
|
@@ -29,6 +29,16 @@ export interface STimePickerProps {
|
|
|
29
29
|
* 값 길이에 상한이 없으면 `"100%"` 로 두어 행 전체를 쓴다.
|
|
30
30
|
*/
|
|
31
31
|
width?: SFieldWidth;
|
|
32
|
+
/**
|
|
33
|
+
* 컨트롤 최대 너비 — 폭 등급 · 숫자=px · CSS 길이. 지정하지 않으면 값 길이(`HH:mm`)에 맞춘
|
|
34
|
+
* 내장 상한(`size='md'` → `lg`, `'sm'` → `md`)이 걸려, `width="100%"` 를 받아도 행 전체로
|
|
35
|
+
* 늘어나지 않는다.
|
|
36
|
+
*
|
|
37
|
+
* 팝오버처럼 폭이 이미 좁게 정해진 자리에서 그 폭을 그대로 채워야 하면 `width="100%"` 와 함께
|
|
38
|
+
* `maxWidth="100%"` 를 준다. `0` 은 상한을 아예 걸지 않는다 — 부모보다 넓어지는 것까지 허용해야
|
|
39
|
+
* 할 때만 쓴다.
|
|
40
|
+
*/
|
|
41
|
+
maxWidth?: SFieldWidth;
|
|
32
42
|
name?: string;
|
|
33
43
|
rules?: Rule[];
|
|
34
44
|
status?: SFieldStatus;
|
|
@@ -53,4 +63,4 @@ export declare function TimeSelector({ value, showMeridiem, minuteStep, onChange
|
|
|
53
63
|
onChange: (time: string) => void;
|
|
54
64
|
}): import("react").JSX.Element;
|
|
55
65
|
/** STimePicker — sd-time-picker 포팅. SField + Popover(TimeSelector). */
|
|
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;
|
|
66
|
+
export declare function STimePicker({ value, onValueChange, onOpenChange, type, size, placeholder, disabled, clearable, showMeridiem, minuteStep, width, maxWidth, name, rules, status, label, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, className, style, }: STimePickerProps): import("react").JSX.Element;
|
|
@@ -18,6 +18,7 @@
|
|
|
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
|
+
| `maxWidth?` | `SFieldWidth` | — | 컨트롤 최대 너비 — 폭 등급 · 숫자=px · CSS 길이. 지정하지 않으면 값 길이(`HH:mm ~ HH:mm`)에 맞춘 내장 상한이 걸려, `width="100%"` 를 받아도 행 전체로 늘어나지 않는다. 팝오버처럼 폭이 이미 좁게 정해진 자리에서 그 폭을 그대로 채워야 하면 `width="100%"` 와 함께 `maxWidth="100%"` 를 준다. `0` 은 상한을 아예 걸지 않는다 — 부모보다 넓어지는 것까지 허용해야 할 때만 쓴다. |
|
|
21
22
|
| `name?` | `string` | — | |
|
|
22
23
|
| `rules?` | `Rule[]` | — | |
|
|
23
24
|
| `status?` | `SFieldStatus` | — | |
|
|
@@ -31,6 +31,15 @@ export interface STimeRangePickerProps {
|
|
|
31
31
|
* 값 길이에 상한이 없으면 `"100%"` 로 두어 행 전체를 쓴다.
|
|
32
32
|
*/
|
|
33
33
|
width?: SFieldWidth;
|
|
34
|
+
/**
|
|
35
|
+
* 컨트롤 최대 너비 — 폭 등급 · 숫자=px · CSS 길이. 지정하지 않으면 값 길이(`HH:mm ~ HH:mm`)에 맞춘
|
|
36
|
+
* 내장 상한이 걸려, `width="100%"` 를 받아도 행 전체로 늘어나지 않는다.
|
|
37
|
+
*
|
|
38
|
+
* 팝오버처럼 폭이 이미 좁게 정해진 자리에서 그 폭을 그대로 채워야 하면 `width="100%"` 와 함께
|
|
39
|
+
* `maxWidth="100%"` 를 준다. `0` 은 상한을 아예 걸지 않는다 — 부모보다 넓어지는 것까지 허용해야
|
|
40
|
+
* 할 때만 쓴다.
|
|
41
|
+
*/
|
|
42
|
+
maxWidth?: SFieldWidth;
|
|
34
43
|
name?: string;
|
|
35
44
|
rules?: Rule[];
|
|
36
45
|
status?: SFieldStatus;
|
|
@@ -56,4 +65,4 @@ export declare function RangeTimeSelector({ value, showMeridiem, minuteStep, ran
|
|
|
56
65
|
onChange: (range: [string, string]) => void;
|
|
57
66
|
}): import("react").JSX.Element;
|
|
58
67
|
/** STimeRangePicker — sd-time-range-picker 포팅. SField + Popover(RangeTimeSelector). */
|
|
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;
|
|
68
|
+
export declare function STimeRangePicker({ value, onValueChange, onOpenChange, type, size, placeholder, disabled, clearable, showMeridiem, minuteStep, rangeOrder, width, maxWidth, name, rules, status, label, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, className, style, }: STimeRangePickerProps): import("react").JSX.Element;
|