sellmate-design-system-react 9.0.0-beta.73 → 9.0.0-beta.75
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 +2 -2
- package/dist/components/SBarcodeInput/README.md +1 -0
- package/dist/components/SBarcodeInput/SBarcodeInput.d.ts +7 -0
- package/dist/components/SChipInput/README.md +1 -0
- package/dist/components/SChipInput/SChipInput.d.ts +7 -0
- package/dist/components/SDatePicker/README.md +1 -0
- package/dist/components/SDatePicker/SDatePicker.d.ts +8 -1
- package/dist/components/SDateRangePicker/README.md +1 -0
- package/dist/components/SDateRangePicker/SDateRangePicker.d.ts +8 -1
- package/dist/components/SEditor/README.md +1 -0
- package/dist/components/SEditor/SEditor.d.ts +7 -0
- package/dist/components/SField/README.md +1 -0
- package/dist/components/SField/SField.d.ts +7 -0
- package/dist/components/SFilePicker/README.md +1 -0
- package/dist/components/SFilePicker/SFilePicker.d.ts +8 -1
- package/dist/components/SInput/README.md +1 -0
- package/dist/components/SInput/SInput.d.ts +4 -0
- package/dist/components/SLauncherListBox/README.md +1 -1
- package/dist/components/SLauncherListBox/launcherListBox.config.d.ts +2 -2
- package/dist/components/SLogo/README.md +1 -0
- package/dist/components/SLogo/logo.config.d.ts +1 -1
- package/dist/components/SNumberInput/README.md +1 -0
- package/dist/components/SNumberInput/SNumberInput.d.ts +7 -0
- package/dist/components/SRadioButton/README.md +8 -0
- package/dist/components/SRadioButton/SRadioButton.d.ts +8 -1
- package/dist/components/SSelect/README.md +1 -0
- package/dist/components/SSelect/SSelect.d.ts +7 -0
- package/dist/components/STextarea/README.md +1 -0
- package/dist/components/STextarea/STextarea.d.ts +7 -0
- package/dist/components/STimePicker/README.md +1 -0
- package/dist/components/STimePicker/STimePicker.d.ts +8 -1
- package/dist/components/STimeRangePicker/README.md +1 -0
- package/dist/components/STimeRangePicker/STimeRangePicker.d.ts +8 -1
- package/dist/index.cjs +114 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +114 -1
- package/dist/index.js.map +1 -1
- package/dist/llms-full.txt +24 -3
- package/dist/llms.txt +2 -2
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -1580,7 +1580,7 @@ tableRef.current.scrollToRow(row); // 복원
|
|
|
1580
1580
|
```
|
|
1581
1581
|
|
|
1582
1582
|
- **`launcher` 를 주지 않으면 런처 버튼 자체가 렌더되지 않는다.** 옮겨 갈 서비스가 없는 앱은 이 슬롯을 비워 둔다 — 눌러도 아무것도 없는 버튼을 상단바에 남기지 않는다.
|
|
1583
|
-
- **서비스는 키(`service`)로 고른다 — 보이는 것은 아무것도 넘기지 않는다.** 쓸 수 있는 키는 `SLogo` 가 로고를 가진 서비스 전부(`'sellmate' | 'wms' | 'chat' | 'plm' | 'account' | 'people' | 'crm' | 'work' | 'pos'` — `SLauncherService`)이고, 서비스 로고(워드마크와 `WMS`·`Account`·`CRM` … 표기가 한 덩어리인 브랜드 로고)·아래 줄 한글 이름·상태 태그(`NEW`·`출시예정`)·출시 여부를 카탈로그(`LAUNCHER_SERVICE_CATALOG`)가 그 키로 정한다. 앱이 넘기게 하면 같은 서비스가 앱마다 다른 이름·색·문구로 선다. **서비스가 늘거나 이름·상태가 바뀌면 디자인 시스템 릴리스로 따라온다** — 앱은 고칠 것이 없다.
|
|
1583
|
+
- **서비스는 키(`service`)로 고른다 — 보이는 것은 아무것도 넘기지 않는다.** 쓸 수 있는 키는 `SLogo` 가 로고를 가진 서비스 전부(`'sellmate' | 'wms' | 'chat' | 'chatbot' | 'plm' | 'account' | 'people' | 'crm' | 'work' | 'pos'` — `SLauncherService`)이고, 서비스 로고(워드마크와 `WMS`·`Account`·`CRM` … 표기가 한 덩어리인 브랜드 로고)·아래 줄 한글 이름·상태 태그(`NEW`·`출시예정`)·출시 여부를 카탈로그(`LAUNCHER_SERVICE_CATALOG`)가 그 키로 정한다. 앱이 넘기게 하면 같은 서비스가 앱마다 다른 이름·색·문구로 선다. **서비스가 늘거나 이름·상태가 바뀌면 디자인 시스템 릴리스로 따라온다** — 앱은 고칠 것이 없다.
|
|
1584
1584
|
|
|
1585
1585
|
```tsx
|
|
1586
1586
|
✅ { service: 'wms', href: env.WMS_URL }
|
|
@@ -2046,7 +2046,7 @@ const [selectedId, setSelectedId] = useState<string>();
|
|
|
2046
2046
|
|
|
2047
2047
|
셀메이트·서비스 로고는 `<svg>` 를 직접 붙이지 않고 `SLogo` 를 쓴다. **`SIcon` 과 같은 손맛(`name`·`size`·`color`)이지만 두 가지가 다르다.**
|
|
2048
2048
|
|
|
2049
|
-
- **`name` 에 서비스를 넣으면 그 서비스 로고가 나온다**(`sellmate` · `wms` · `chat` · `plm` · `account` · `people` · `crm` · `work` · `pos` · `console` — `SLogoName`). [셀메이트 워드마크 + 서비스 표기]가 한 덩어리다. **워드마크 옆에 표기를 앱이 따로 잇지 않는다** — 표기의 서체·자간·색이 원본과 어긋난다.
|
|
2049
|
+
- **`name` 에 서비스를 넣으면 그 서비스 로고가 나온다**(`sellmate` · `wms` · `chat` · `chatbot` · `plm` · `account` · `people` · `crm` · `work` · `pos` · `console` — `SLogoName`). [셀메이트 워드마크 + 서비스 표기]가 한 덩어리다. **워드마크 옆에 표기를 앱이 따로 잇지 않는다** — 표기의 서체·자간·색이 원본과 어긋난다.
|
|
2050
2050
|
- **배경에 맞춰 `mode` 를 준다.** 밝은 면은 `light`(기본), 어두운 면(dark GNB 등)은 `dark`. 워드마크 색과 서비스 표기 색을 모드가 정하므로 색을 직접 주지 않는다.
|
|
2051
2051
|
- **표기를 워드마크 아래에 두려면 `direction="vertical"` 을 준다**(로그인 카드처럼 폭이 좁고 로고가 가운데 서는 자리). 워드마크 아래에 표기를 앱이 따로 쌓지 않는다. 모든 서비스 로고가 세로를 가진다(`sellmate` 는 표기가 없어 어느 쪽이든 같다). 세로의 표기 색도 원본이 정하므로 색을 직접 맞추지 않는다.
|
|
2052
2052
|
- **`size` 는 높이다.** 로고는 가로로 길어 정사각으로 그리면 찌그러진다 — 폭은 비율에서 저절로 나오므로 주지 않는다. `vertical` 에서는 두 줄 전체의 높이라, 같은 `size` 면 워드마크가 가로보다 작다.
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
| `inputStyle?` | `CSSProperties` | — | |
|
|
27
27
|
| `label?` | `string` | — | |
|
|
28
28
|
| `labelPosition?` | `SFieldLabelPosition` | — | 레이블 위치 — `top` 이면 라벨이 컨트롤 위에 선다 (SField 로 그대로 넘어간다). |
|
|
29
|
+
| `subLabel?` | `string` | — | 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다). |
|
|
29
30
|
| `labelWidth?` | `number \| string` | — | |
|
|
30
31
|
| `icon?` | `SIconName` | — | |
|
|
31
32
|
| `iconColor?` | `SColor` | — | |
|
|
@@ -39,6 +39,13 @@ export interface SBarcodeInputProps {
|
|
|
39
39
|
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
40
40
|
*/
|
|
41
41
|
labelPosition?: SFieldLabelPosition;
|
|
42
|
+
/**
|
|
43
|
+
* 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다).
|
|
44
|
+
*
|
|
45
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
46
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
47
|
+
*/
|
|
48
|
+
subLabel?: string;
|
|
42
49
|
labelWidth?: number | string;
|
|
43
50
|
icon?: SIconName;
|
|
44
51
|
iconColor?: SColor;
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
| `dropdownMinWidth?` | `number \| string` | `200` | 드롭다운 최소 너비 (숫자=px) |
|
|
29
29
|
| `label?` | `string` | — | |
|
|
30
30
|
| `labelPosition?` | `SFieldLabelPosition` | — | 레이블 위치 — `top` 이면 라벨이 컨트롤 위에 선다 (SField 로 그대로 넘어간다). |
|
|
31
|
+
| `subLabel?` | `string` | — | 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다). |
|
|
31
32
|
| `labelWidth?` | `number \| string` | — | |
|
|
32
33
|
| `hint?` | `string` | — | |
|
|
33
34
|
| `errorMessage?` | `string` | — | |
|
|
@@ -55,6 +55,13 @@ export interface SChipInputProps {
|
|
|
55
55
|
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
56
56
|
*/
|
|
57
57
|
labelPosition?: SFieldLabelPosition;
|
|
58
|
+
/**
|
|
59
|
+
* 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다).
|
|
60
|
+
*
|
|
61
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
62
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
63
|
+
*/
|
|
64
|
+
subLabel?: string;
|
|
58
65
|
labelWidth?: number | string;
|
|
59
66
|
hint?: string;
|
|
60
67
|
errorMessage?: string;
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
| `status?` | `SFieldStatus` | — | |
|
|
42
42
|
| `label?` | `string` | — | |
|
|
43
43
|
| `labelPosition?` | `SFieldLabelPosition` | — | 레이블 위치 — `top` 이면 라벨이 컨트롤 위에 선다 (SField 로 그대로 넘어간다). |
|
|
44
|
+
| `subLabel?` | `string` | — | 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다). |
|
|
44
45
|
| `labelWidth?` | `number \| string` | — | |
|
|
45
46
|
| `icon?` | `SIconName` | — | |
|
|
46
47
|
| `iconColor?` | `SColor` | — | |
|
|
@@ -58,6 +58,13 @@ export interface SDatePickerProps {
|
|
|
58
58
|
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
59
59
|
*/
|
|
60
60
|
labelPosition?: SFieldLabelPosition;
|
|
61
|
+
/**
|
|
62
|
+
* 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다).
|
|
63
|
+
*
|
|
64
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
65
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
66
|
+
*/
|
|
67
|
+
subLabel?: string;
|
|
61
68
|
labelWidth?: number | string;
|
|
62
69
|
icon?: SIconName;
|
|
63
70
|
iconColor?: SColor;
|
|
@@ -102,4 +109,4 @@ export interface SDatePickerMonthListboxProps {
|
|
|
102
109
|
* 자체 트리거/팝오버 없이 연도+월 리스트만 필요한 커스텀 조합에 재사용한다. */
|
|
103
110
|
export declare function SDatePickerMonthListbox({ value, anchorYear, selectable, onValueChange, onMonthSelect, className, style, }: SDatePickerMonthListboxProps): import("react").JSX.Element;
|
|
104
111
|
/** SDatePicker — sd-date-picker 포팅. SField + SPopover(SCalendar). */
|
|
105
|
-
export declare function SDatePicker({ value, onValueChange, onViewChange, mode, size, placeholder, selectable, disabled, clearable, width, maxWidth, name, rules, status, label, labelPosition, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, className, style, }: SDatePickerProps): import("react").JSX.Element;
|
|
112
|
+
export declare function SDatePicker({ value, onValueChange, onViewChange, mode, size, placeholder, selectable, disabled, clearable, width, maxWidth, name, rules, status, label, labelPosition, subLabel, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, className, style, }: SDatePickerProps): import("react").JSX.Element;
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
| `status?` | `SFieldStatus` | — | |
|
|
24
24
|
| `label?` | `string` | — | |
|
|
25
25
|
| `labelPosition?` | `SFieldLabelPosition` | — | 레이블 위치 — `top` 이면 라벨이 컨트롤 위에 선다 (SField 로 그대로 넘어간다). |
|
|
26
|
+
| `subLabel?` | `string` | — | 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다). |
|
|
26
27
|
| `labelWidth?` | `number \| string` | — | |
|
|
27
28
|
| `icon?` | `SIconName` | — | |
|
|
28
29
|
| `iconColor?` | `SColor` | — | |
|
|
@@ -61,6 +61,13 @@ export interface SDateRangePickerProps {
|
|
|
61
61
|
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
62
62
|
*/
|
|
63
63
|
labelPosition?: SFieldLabelPosition;
|
|
64
|
+
/**
|
|
65
|
+
* 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다).
|
|
66
|
+
*
|
|
67
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
68
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
69
|
+
*/
|
|
70
|
+
subLabel?: string;
|
|
64
71
|
labelWidth?: number | string;
|
|
65
72
|
icon?: SIconName;
|
|
66
73
|
iconColor?: SColor;
|
|
@@ -91,4 +98,4 @@ export interface SRangeCalendarProps {
|
|
|
91
98
|
* 캘린더 그리드만 필요한 커스텀 조합(예: 다른 트리거에 팝오버로 얹는 경우)에 재사용한다. */
|
|
92
99
|
export declare function RangeCalendar({ value, selectable, maxRange, showTimePicker, onSelect, onPendingStartChange, onViewChange, }: SRangeCalendarProps): import("react").JSX.Element;
|
|
93
100
|
/** SDateRangePicker — sd-date-range-picker 포팅. SField + SPopover(범위 캘린더). */
|
|
94
|
-
export declare function SDateRangePicker({ value, onValueChange, onViewChange, size, placeholder, selectable, maxRange, showTimePicker, disabled, clearable, width, maxWidth, name, rules, status, label, labelPosition, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, className, style, }: SDateRangePickerProps): import("react").JSX.Element;
|
|
101
|
+
export declare function SDateRangePicker({ value, onValueChange, onViewChange, size, placeholder, selectable, maxRange, showTimePicker, disabled, clearable, width, maxWidth, name, rules, status, label, labelPosition, subLabel, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, className, style, }: SDateRangePickerProps): import("react").JSX.Element;
|
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
| `editorStyle?` | `CSSProperties` | — | 편집 영역 style |
|
|
71
71
|
| `label?` | `string` | — | |
|
|
72
72
|
| `labelPosition?` | `SFieldLabelPosition` | — | 레이블 위치 — `top` 이면 라벨이 컨트롤 위에 선다 (SField 로 그대로 넘어간다). |
|
|
73
|
+
| `subLabel?` | `string` | — | 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다). |
|
|
73
74
|
| `labelWidth?` | `number \| string` | — | |
|
|
74
75
|
| `icon?` | `SIconName` | — | 레이블 영역 아이콘 |
|
|
75
76
|
| `iconColor?` | `SColor` | — | |
|
|
@@ -76,6 +76,13 @@ export interface SEditorProps {
|
|
|
76
76
|
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
77
77
|
*/
|
|
78
78
|
labelPosition?: SFieldLabelPosition;
|
|
79
|
+
/**
|
|
80
|
+
* 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다).
|
|
81
|
+
*
|
|
82
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
83
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
84
|
+
*/
|
|
85
|
+
subLabel?: string;
|
|
79
86
|
labelWidth?: number | string;
|
|
80
87
|
/** 레이블 영역 아이콘 */
|
|
81
88
|
icon?: SIconName;
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
|------|------|---------|-------------|
|
|
11
11
|
| `name?` | `string` | — | 폼 연동용 name 속성 |
|
|
12
12
|
| `label?` | `string` | `''` | 레이블 텍스트 |
|
|
13
|
+
| `subLabel?` | `string` | `''` | 보조 레이블. 레이블 오른쪽 같은 줄에 붙는다 (예: `(선택)`, `최대 50자`). 레이블보다 한 단계 약하게 보이도록 기본 타이포(body/sm/medium)·`fg.secondary` 색을 쓴다. 레이블 폭이 모자라면 레이블이 먼저 말줄임되고 보조 레이블은 그대로 남는다. `label` 이 없으면(`addonLabel` 만 있을 때 포함) 그려지지 않는다. |
|
|
13
14
|
| `icon?` | `SIconName` | — | 레이블 영역 아이콘명 (크기는 size 토큰 16px 고정) |
|
|
14
15
|
| `iconColor?` | `SColor` | — | 레이블 영역 아이콘 색상. 미지정 시 currentColor 상속 |
|
|
15
16
|
| `labelTooltip?` | `string` | `''` | 레이블 툴팁 텍스트 |
|
|
@@ -18,6 +18,13 @@ export interface SFieldProps {
|
|
|
18
18
|
name?: string;
|
|
19
19
|
/** 레이블 텍스트 */
|
|
20
20
|
label?: string;
|
|
21
|
+
/**
|
|
22
|
+
* 보조 레이블. 레이블 오른쪽 같은 줄에 붙는다 (예: `(선택)`, `최대 50자`).
|
|
23
|
+
* 레이블보다 한 단계 약하게 보이도록 기본 타이포(body/sm/medium)·`fg.secondary` 색을 쓴다.
|
|
24
|
+
* 레이블 폭이 모자라면 레이블이 먼저 말줄임되고 보조 레이블은 그대로 남는다.
|
|
25
|
+
* `label` 이 없으면(`addonLabel` 만 있을 때 포함) 그려지지 않는다.
|
|
26
|
+
*/
|
|
27
|
+
subLabel?: string;
|
|
21
28
|
/** 레이블 영역 아이콘명 (크기는 size 토큰 16px 고정) */
|
|
22
29
|
icon?: SIconName;
|
|
23
30
|
/** 레이블 영역 아이콘 색상. 미지정 시 currentColor 상속 */
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
| `size?` | `SFieldSize` | `'sm'` | |
|
|
27
27
|
| `label?` | `string` | — | |
|
|
28
28
|
| `labelPosition?` | `SFieldLabelPosition` | — | 레이블 위치 — `top` 이면 라벨이 컨트롤 위에 선다 (SField 로 그대로 넘어간다). |
|
|
29
|
+
| `subLabel?` | `string` | — | 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다). |
|
|
29
30
|
| `labelWidth?` | `number \| string` | — | |
|
|
30
31
|
| `icon?` | `SIconName` | — | |
|
|
31
32
|
| `iconColor?` | `SColor` | — | |
|
|
@@ -43,6 +43,13 @@ export interface SFilePickerProps {
|
|
|
43
43
|
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
44
44
|
*/
|
|
45
45
|
labelPosition?: SFieldLabelPosition;
|
|
46
|
+
/**
|
|
47
|
+
* 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다).
|
|
48
|
+
*
|
|
49
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
50
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
51
|
+
*/
|
|
52
|
+
subLabel?: string;
|
|
46
53
|
labelWidth?: number | string;
|
|
47
54
|
icon?: SIconName;
|
|
48
55
|
iconColor?: SColor;
|
|
@@ -63,4 +70,4 @@ export interface SFilePickerProps {
|
|
|
63
70
|
style?: CSSProperties;
|
|
64
71
|
}
|
|
65
72
|
/** SFilePicker — sd-file-picker 포팅. 단일/다중 파일 + 크기·개수 검증 + 칩 목록. */
|
|
66
|
-
export declare function SFilePicker({ value, onValueChange, onReject, placeholder, disabled, focused, hovered, inline, multiple, showMultipleListBox, accept, maxFileSize, maxTotalSize, maxFiles, name, rules, status, size, label, labelPosition, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, width, className, style, }: SFilePickerProps): import("react").JSX.Element;
|
|
73
|
+
export declare function SFilePicker({ value, onValueChange, onReject, placeholder, disabled, focused, hovered, inline, multiple, showMultipleListBox, accept, maxFileSize, maxTotalSize, maxFiles, name, rules, status, size, label, labelPosition, subLabel, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, width, className, style, }: SFilePickerProps): import("react").JSX.Element;
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
| `inputStyle?` | `CSSProperties` | — | 내부 input 요소 style |
|
|
25
25
|
| `label?` | `string` | — | |
|
|
26
26
|
| `labelPosition?` | `SFieldLabelPosition` | — | 레이블 위치 — `top` 이면 라벨이 컨트롤 위에 선다 (SField 로 그대로 넘어간다) |
|
|
27
|
+
| `subLabel?` | `string` | — | 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다). |
|
|
27
28
|
| `labelWidth?` | `number \| string` | — | |
|
|
28
29
|
| `labelTooltip?` | `string` | — | 레이블 툴팁 텍스트 |
|
|
29
30
|
| `labelTooltipProps?` | `Partial<STooltipProps>` | — | 레이블 툴팁 상세 옵션 |
|
|
@@ -41,6 +41,10 @@ export interface SInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
|
|
|
41
41
|
label?: string;
|
|
42
42
|
/** 레이블 위치 — `top` 이면 라벨이 컨트롤 위에 선다 (SField 로 그대로 넘어간다) */
|
|
43
43
|
labelPosition?: SFieldLabelPosition;
|
|
44
|
+
/**
|
|
45
|
+
* 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다).
|
|
46
|
+
*/
|
|
47
|
+
subLabel?: string;
|
|
44
48
|
labelWidth?: number | string;
|
|
45
49
|
/** 레이블 툴팁 텍스트 */
|
|
46
50
|
labelTooltip?: string;
|
|
@@ -53,7 +53,7 @@ export interface SLauncherListBoxItem {
|
|
|
53
53
|
* 있는지 보이지 않는다). 대신 아래 `LOGO_COVERAGE` 가 로고 목록과 어긋나지 않는지 타입으로 지킨다.
|
|
54
54
|
*/
|
|
55
55
|
export type SLauncherService =
|
|
56
|
-
'sellmate' | 'wms' | 'chat' | 'plm' | 'account' | 'people' | 'crm' | 'work' | 'pos';
|
|
56
|
+
'sellmate' | 'wms' | 'chat' | 'chatbot' | 'plm' | 'account' | 'people' | 'crm' | 'work' | 'pos';
|
|
57
57
|
```
|
|
58
58
|
|
|
59
59
|
## Dependencies
|
|
@@ -38,12 +38,12 @@ export declare const LAUNCHER_LIST_BOX_TRAILING_ICON: SIconName;
|
|
|
38
38
|
* 문서에서 바로 읽히도록 키를 풀어 쓴다(`Exclude<SLogoName, …>` 로 두면 README·Storybook 에 무엇이
|
|
39
39
|
* 있는지 보이지 않는다). 대신 아래 `LOGO_COVERAGE` 가 로고 목록과 어긋나지 않는지 타입으로 지킨다.
|
|
40
40
|
*/
|
|
41
|
-
export type SLauncherService = 'sellmate' | 'wms' | 'chat' | 'plm' | 'account' | 'people' | 'crm' | 'work' | 'pos';
|
|
41
|
+
export type SLauncherService = 'sellmate' | 'wms' | 'chat' | 'chatbot' | 'plm' | 'account' | 'people' | 'crm' | 'work' | 'pos';
|
|
42
42
|
/**
|
|
43
43
|
* 런처에 설 수 있는 서비스 — **목록의 순서이기도 하다**(로고 순서와 같다).
|
|
44
44
|
* 앱이 넘긴 순서가 아니라 이 순서로 선다: 같은 런처가 앱마다 다른 순서로 뜨면 사용자가 매번 다시 찾는다.
|
|
45
45
|
*/
|
|
46
|
-
export declare const LAUNCHER_SERVICES: readonly ["sellmate", "wms", "chat", "plm", "account", "people", "crm", "work", "pos"];
|
|
46
|
+
export declare const LAUNCHER_SERVICES: readonly ["sellmate", "wms", "chat", "chatbot", "plm", "account", "people", "crm", "work", "pos"];
|
|
47
47
|
/**
|
|
48
48
|
* 서비스가 아닌 로고 — 런처의 서비스 줄로 세우지 않는다.
|
|
49
49
|
* `console` 은 통합 콘솔이라 목록 아래 "셀메이트 콘솔로 이동" 링크가 늘 맡는다. 줄로도 세우면 같은 곳이 두 번 선다.
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* 담고 있는 로고 — 셀메이트 본체와 서비스들, 그리고 통합 콘솔. 로고 한 벌은 [셀메이트 워드마크 + 표기]다.
|
|
9
9
|
* 늘어나면 여기와 `logos.tsx` 의 맵에 함께 추가한다.
|
|
10
10
|
*/
|
|
11
|
-
export declare const LOGO_NAMES: readonly ["sellmate", "wms", "chat", "plm", "account", "people", "crm", "work", "pos", "console"];
|
|
11
|
+
export declare const LOGO_NAMES: readonly ["sellmate", "wms", "chat", "chatbot", "plm", "account", "people", "crm", "work", "pos", "console"];
|
|
12
12
|
export type SLogoName = (typeof LOGO_NAMES)[number];
|
|
13
13
|
/**
|
|
14
14
|
* 로고가 서는 배경. 밝은 면에는 `light`(남색 워드마크), 어두운 면에는 `dark`(흰 워드마크).
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
| `hovered?` | `boolean` | — | 호버 상태를 밖에서 지정한다 — 강조는 `focused` 와 같다 (SField 로 그대로 넘어간다) |
|
|
33
33
|
| `label?` | `string` | — | |
|
|
34
34
|
| `labelPosition?` | `SFieldLabelPosition` | — | 레이블 위치 — `top` 이면 라벨이 컨트롤 위에 선다 (SField 로 그대로 넘어간다). |
|
|
35
|
+
| `subLabel?` | `string` | — | 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다). |
|
|
35
36
|
| `labelWidth?` | `number \| string` | — | |
|
|
36
37
|
| `icon?` | `SIconName` | — | |
|
|
37
38
|
| `iconColor?` | `SColor` | — | |
|
|
@@ -79,6 +79,13 @@ export interface SNumberInputProps {
|
|
|
79
79
|
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
80
80
|
*/
|
|
81
81
|
labelPosition?: SFieldLabelPosition;
|
|
82
|
+
/**
|
|
83
|
+
* 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다).
|
|
84
|
+
*
|
|
85
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
86
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
87
|
+
*/
|
|
88
|
+
subLabel?: string;
|
|
82
89
|
labelWidth?: number | string;
|
|
83
90
|
icon?: SIconName;
|
|
84
91
|
iconColor?: SColor;
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
| `size?` | `SRadioButtonSize` | `'sm'` | 크기 |
|
|
14
14
|
| `disabled?` | `boolean` | `false` | 전체 비활성 |
|
|
15
15
|
| `name?` | `string` | — | input name 속성 |
|
|
16
|
+
| `showTooltip?` | `boolean` | `false` | 옵션 호버 시 툴팁 노출. 문구는 옵션별 `tooltip` 으로 주며, 문구가 없는 옵션은 툴팁을 띄우지 않는다. 툴팁 타입은 `accent` 고정이다. |
|
|
16
17
|
| `className?` | `string` | — | |
|
|
17
18
|
| `style?` | `CSSProperties` | — | |
|
|
18
19
|
|
|
@@ -31,6 +32,8 @@ export interface SRadioButtonOption {
|
|
|
31
32
|
value: string | number;
|
|
32
33
|
label: string;
|
|
33
34
|
disabled?: boolean;
|
|
35
|
+
/** 호버 시 툴팁 문구. `showTooltip` 이 켜져 있을 때만 노출된다 */
|
|
36
|
+
tooltip?: string;
|
|
34
37
|
}
|
|
35
38
|
```
|
|
36
39
|
|
|
@@ -46,10 +49,15 @@ export type SRadioButtonSize = 'xs' | 'sm' | 'md';
|
|
|
46
49
|
|
|
47
50
|
- [SChipFilter](../SChipFilter)
|
|
48
51
|
|
|
52
|
+
### Depends on
|
|
53
|
+
|
|
54
|
+
- [STooltip](../STooltip)
|
|
55
|
+
|
|
49
56
|
### Graph
|
|
50
57
|
|
|
51
58
|
```mermaid
|
|
52
59
|
graph TD;
|
|
60
|
+
SRadioButton --> STooltip
|
|
53
61
|
SChipFilter --> SRadioButton
|
|
54
62
|
style SRadioButton fill:#f9f,stroke:#333,stroke-width:4px
|
|
55
63
|
```
|
|
@@ -4,6 +4,8 @@ export interface SRadioButtonOption {
|
|
|
4
4
|
value: string | number;
|
|
5
5
|
label: string;
|
|
6
6
|
disabled?: boolean;
|
|
7
|
+
/** 호버 시 툴팁 문구. `showTooltip` 이 켜져 있을 때만 노출된다 */
|
|
8
|
+
tooltip?: string;
|
|
7
9
|
}
|
|
8
10
|
export interface SRadioButtonProps {
|
|
9
11
|
/** 옵션 목록 */
|
|
@@ -16,6 +18,11 @@ export interface SRadioButtonProps {
|
|
|
16
18
|
disabled?: boolean;
|
|
17
19
|
/** input name 속성 */
|
|
18
20
|
name?: string;
|
|
21
|
+
/**
|
|
22
|
+
* 옵션 호버 시 툴팁 노출. 문구는 옵션별 `tooltip` 으로 주며, 문구가 없는 옵션은 툴팁을 띄우지 않는다.
|
|
23
|
+
* 툴팁 타입은 `accent` 고정이다.
|
|
24
|
+
*/
|
|
25
|
+
showTooltip?: boolean;
|
|
19
26
|
/** 변경 (sdUpdate) */
|
|
20
27
|
onValueChange?: (value: string | number) => void;
|
|
21
28
|
className?: string;
|
|
@@ -25,4 +32,4 @@ export interface SRadioButtonProps {
|
|
|
25
32
|
* SRadioButton — sd-radio-button 포팅. 세그먼트형 라디오(버튼 그룹).
|
|
26
33
|
* default(흰 배경/회색, hover 파란 채움) · select(흰 배경/파란 테두리·글자) · disabled.
|
|
27
34
|
*/
|
|
28
|
-
export declare function SRadioButton({ options, value, size, disabled, name, onValueChange, className, style, }: SRadioButtonProps): import("react").JSX.Element;
|
|
35
|
+
export declare function SRadioButton({ options, value, size, disabled, name, showTooltip, onValueChange, className, style, }: SRadioButtonProps): import("react").JSX.Element;
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
| `searchDebounce?` | `number` | `DEFAULT_SEARCH_DEBOUNCE` | `serverSearch` 에서 검색어를 서버로 넘기기 전 기다리는 시간(ms) |
|
|
34
34
|
| `label?` | `string` | — | |
|
|
35
35
|
| `labelPosition?` | `SFieldLabelPosition` | — | 레이블 위치 — `top` 이면 라벨이 컨트롤 위에 선다 (SField 로 그대로 넘어간다). |
|
|
36
|
+
| `subLabel?` | `string` | — | 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다). |
|
|
36
37
|
| `labelWidth?` | `number \| string` | — | |
|
|
37
38
|
| `icon?` | `SIconName` | — | 레이블 영역 아이콘 |
|
|
38
39
|
| `iconColor?` | `SColor` | — | |
|
|
@@ -115,6 +115,13 @@ export interface SSelectProps {
|
|
|
115
115
|
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
116
116
|
*/
|
|
117
117
|
labelPosition?: SFieldLabelPosition;
|
|
118
|
+
/**
|
|
119
|
+
* 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다).
|
|
120
|
+
*
|
|
121
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
122
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
123
|
+
*/
|
|
124
|
+
subLabel?: string;
|
|
118
125
|
labelWidth?: number | string;
|
|
119
126
|
/** 레이블 영역 아이콘 */
|
|
120
127
|
icon?: SIconName;
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
| `textareaStyle?` | `CSSProperties` | — | 내부 textarea 요소 style |
|
|
22
22
|
| `label?` | `string` | — | |
|
|
23
23
|
| `labelPosition?` | `SFieldLabelPosition` | — | 레이블 위치 — `top` 이면 라벨이 컨트롤 위에 선다 (SField 로 그대로 넘어간다). |
|
|
24
|
+
| `subLabel?` | `string` | — | 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다). |
|
|
24
25
|
| `labelWidth?` | `number \| string` | — | |
|
|
25
26
|
| `icon?` | `SIconName` | — | 레이블 영역 아이콘 |
|
|
26
27
|
| `iconColor?` | `SColor` | — | |
|
|
@@ -57,6 +57,13 @@ export interface STextareaProps extends Omit<TextareaHTMLAttributes<HTMLTextArea
|
|
|
57
57
|
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
58
58
|
*/
|
|
59
59
|
labelPosition?: SFieldLabelPosition;
|
|
60
|
+
/**
|
|
61
|
+
* 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다).
|
|
62
|
+
*
|
|
63
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
64
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
65
|
+
*/
|
|
66
|
+
subLabel?: string;
|
|
60
67
|
labelWidth?: number | string;
|
|
61
68
|
/** 레이블 영역 아이콘 */
|
|
62
69
|
icon?: SIconName;
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
| `status?` | `SFieldStatus` | — | |
|
|
24
24
|
| `label?` | `string` | — | |
|
|
25
25
|
| `labelPosition?` | `SFieldLabelPosition` | — | 레이블 위치 — `top` 이면 라벨이 컨트롤 위에 선다 (SField 로 그대로 넘어간다). |
|
|
26
|
+
| `subLabel?` | `string` | — | 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다). |
|
|
26
27
|
| `labelWidth?` | `number \| string` | — | |
|
|
27
28
|
| `icon?` | `SIconName` | — | |
|
|
28
29
|
| `iconColor?` | `SColor` | — | |
|
|
@@ -50,6 +50,13 @@ export interface STimePickerProps {
|
|
|
50
50
|
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
51
51
|
*/
|
|
52
52
|
labelPosition?: SFieldLabelPosition;
|
|
53
|
+
/**
|
|
54
|
+
* 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다).
|
|
55
|
+
*
|
|
56
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
57
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
58
|
+
*/
|
|
59
|
+
subLabel?: string;
|
|
53
60
|
labelWidth?: number | string;
|
|
54
61
|
icon?: SIconName;
|
|
55
62
|
iconColor?: SColor;
|
|
@@ -70,4 +77,4 @@ export declare function TimeSelector({ value, showMeridiem, minuteStep, onChange
|
|
|
70
77
|
onChange: (time: string) => void;
|
|
71
78
|
}): import("react").JSX.Element;
|
|
72
79
|
/** STimePicker — sd-time-picker 포팅. SField + Popover(TimeSelector). */
|
|
73
|
-
export declare function STimePicker({ value, onValueChange, onOpenChange, type, size, placeholder, disabled, clearable, showMeridiem, minuteStep, width, maxWidth, name, rules, status, label, labelPosition, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, className, style, }: STimePickerProps): import("react").JSX.Element;
|
|
80
|
+
export declare function STimePicker({ value, onValueChange, onOpenChange, type, size, placeholder, disabled, clearable, showMeridiem, minuteStep, width, maxWidth, name, rules, status, label, labelPosition, subLabel, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, className, style, }: STimePickerProps): import("react").JSX.Element;
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
| `status?` | `SFieldStatus` | — | |
|
|
25
25
|
| `label?` | `string` | — | |
|
|
26
26
|
| `labelPosition?` | `SFieldLabelPosition` | — | 레이블 위치 — `top` 이면 라벨이 컨트롤 위에 선다 (SField 로 그대로 넘어간다). |
|
|
27
|
+
| `subLabel?` | `string` | — | 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다). |
|
|
27
28
|
| `labelWidth?` | `number \| string` | — | |
|
|
28
29
|
| `icon?` | `SIconName` | — | |
|
|
29
30
|
| `iconColor?` | `SColor` | — | |
|
|
@@ -51,6 +51,13 @@ export interface STimeRangePickerProps {
|
|
|
51
51
|
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
52
52
|
*/
|
|
53
53
|
labelPosition?: SFieldLabelPosition;
|
|
54
|
+
/**
|
|
55
|
+
* 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다).
|
|
56
|
+
*
|
|
57
|
+
* @nodemo SField 에서 내려오는 공통 필드 옵션이다 — 같은 데모를 컨트롤마다 복제하지 않고
|
|
58
|
+
* 대표 컨트롤 `SInput` 과 `SField` 에 한 번 둔다 (scripts/check-docs-coverage.mjs 머리말).
|
|
59
|
+
*/
|
|
60
|
+
subLabel?: string;
|
|
54
61
|
labelWidth?: number | string;
|
|
55
62
|
icon?: SIconName;
|
|
56
63
|
iconColor?: SColor;
|
|
@@ -72,4 +79,4 @@ export declare function RangeTimeSelector({ value, showMeridiem, minuteStep, ran
|
|
|
72
79
|
onChange: (range: [string, string]) => void;
|
|
73
80
|
}): import("react").JSX.Element;
|
|
74
81
|
/** STimeRangePicker — sd-time-range-picker 포팅. SField + Popover(RangeTimeSelector). */
|
|
75
|
-
export declare function STimeRangePicker({ value, onValueChange, onOpenChange, type, size, placeholder, disabled, clearable, showMeridiem, minuteStep, rangeOrder, width, maxWidth, name, rules, status, label, labelPosition, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, className, style, }: STimeRangePickerProps): import("react").JSX.Element;
|
|
82
|
+
export declare function STimeRangePicker({ value, onValueChange, onOpenChange, type, size, placeholder, disabled, clearable, showMeridiem, minuteStep, rangeOrder, width, maxWidth, name, rules, status, label, labelPosition, subLabel, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, className, style, }: STimeRangePickerProps): import("react").JSX.Element;
|