sellmate-design-system-react 0.2.0 → 0.4.0
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/README.md +84 -21
- package/dist/components/SActionModal/SActionModal.cjs +2 -0
- package/dist/components/SActionModal/SActionModal.cjs.map +1 -1
- package/dist/components/SActionModal/SActionModal.js +2 -0
- package/dist/components/SActionModal/SActionModal.js.map +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.cjs +2 -0
- package/dist/components/SBarcodeInput/SBarcodeInput.cjs.map +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.js +2 -0
- package/dist/components/SBarcodeInput/SBarcodeInput.js.map +1 -1
- package/dist/components/SCalendar/SCalendar.cjs +2 -0
- package/dist/components/SCalendar/SCalendar.cjs.map +1 -1
- package/dist/components/SCalendar/SCalendar.js +2 -0
- package/dist/components/SCalendar/SCalendar.js.map +1 -1
- package/dist/components/SChip/SChip.cjs +2 -0
- package/dist/components/SChip/SChip.cjs.map +1 -1
- package/dist/components/SChip/SChip.js +2 -0
- package/dist/components/SChip/SChip.js.map +1 -1
- package/dist/components/SChipInput/SChipInput.cjs +2 -0
- package/dist/components/SChipInput/SChipInput.cjs.map +1 -1
- package/dist/components/SChipInput/SChipInput.js +2 -0
- package/dist/components/SChipInput/SChipInput.js.map +1 -1
- package/dist/components/SConfirmModal/SConfirmModal.cjs +2 -0
- package/dist/components/SConfirmModal/SConfirmModal.cjs.map +1 -1
- package/dist/components/SConfirmModal/SConfirmModal.js +2 -0
- package/dist/components/SConfirmModal/SConfirmModal.js.map +1 -1
- package/dist/components/SDatePicker/SDatePicker.cjs +2 -0
- package/dist/components/SDatePicker/SDatePicker.cjs.map +1 -1
- package/dist/components/SDatePicker/SDatePicker.js +2 -0
- package/dist/components/SDatePicker/SDatePicker.js.map +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.cjs +2 -0
- package/dist/components/SDateRangePicker/SDateRangePicker.cjs.map +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.js +2 -0
- package/dist/components/SDateRangePicker/SDateRangePicker.js.map +1 -1
- package/dist/components/SField/SField.cjs +2 -0
- package/dist/components/SField/SField.cjs.map +1 -1
- package/dist/components/SField/SField.js +2 -0
- package/dist/components/SField/SField.js.map +1 -1
- package/dist/components/SFilePicker/SFilePicker.cjs +2 -0
- package/dist/components/SFilePicker/SFilePicker.cjs.map +1 -1
- package/dist/components/SFilePicker/SFilePicker.js +2 -0
- package/dist/components/SFilePicker/SFilePicker.js.map +1 -1
- package/dist/components/SGhostButton/SGhostButton.cjs +2 -0
- package/dist/components/SGhostButton/SGhostButton.cjs.map +1 -1
- package/dist/components/SGhostButton/SGhostButton.d.ts +3 -1
- package/dist/components/SGhostButton/SGhostButton.js +2 -0
- package/dist/components/SGhostButton/SGhostButton.js.map +1 -1
- package/dist/components/SGnb/SGnb.cjs +394 -213
- package/dist/components/SGnb/SGnb.cjs.map +1 -1
- package/dist/components/SGnb/SGnb.d.ts +16 -12
- package/dist/components/SGnb/SGnb.js +375 -214
- package/dist/components/SGnb/SGnb.js.map +1 -1
- package/dist/components/SGnb/gnb.config.d.ts +35 -11
- package/dist/components/SGnb/index.d.ts +1 -1
- package/dist/components/SGuide/SGuide.cjs +2 -0
- package/dist/components/SGuide/SGuide.cjs.map +1 -1
- package/dist/components/SGuide/SGuide.js +2 -0
- package/dist/components/SGuide/SGuide.js.map +1 -1
- package/dist/components/SInput/SInput.cjs +2 -0
- package/dist/components/SInput/SInput.cjs.map +1 -1
- package/dist/components/SInput/SInput.js +2 -0
- package/dist/components/SInput/SInput.js.map +1 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.cjs +2 -0
- package/dist/components/SKeyValueTable/SKeyValueTable.cjs.map +1 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.js +2 -0
- package/dist/components/SKeyValueTable/SKeyValueTable.js.map +1 -1
- package/dist/components/SLayout/SLayout.cjs +26 -8
- package/dist/components/SLayout/SLayout.cjs.map +1 -1
- package/dist/components/SLayout/SLayout.d.ts +15 -9
- package/dist/components/SLayout/SLayout.js +26 -8
- package/dist/components/SLayout/SLayout.js.map +1 -1
- package/dist/components/SLayout/index.d.ts +1 -1
- package/dist/components/SLoadingModal/SLoadingModal.cjs +2 -0
- package/dist/components/SLoadingModal/SLoadingModal.cjs.map +1 -1
- package/dist/components/SLoadingModal/SLoadingModal.js +2 -0
- package/dist/components/SLoadingModal/SLoadingModal.js.map +1 -1
- package/dist/components/SModalContainer/SModalContainer.cjs +2 -0
- package/dist/components/SModalContainer/SModalContainer.cjs.map +1 -1
- package/dist/components/SModalContainer/SModalContainer.js +2 -0
- package/dist/components/SModalContainer/SModalContainer.js.map +1 -1
- package/dist/components/SNumberInput/SNumberInput.cjs +2 -0
- package/dist/components/SNumberInput/SNumberInput.cjs.map +1 -1
- package/dist/components/SNumberInput/SNumberInput.js +2 -0
- package/dist/components/SNumberInput/SNumberInput.js.map +1 -1
- package/dist/components/SPage/SPage.cjs +27 -9
- package/dist/components/SPage/SPage.cjs.map +1 -1
- package/dist/components/SPage/SPage.d.ts +2 -2
- package/dist/components/SPage/SPage.js +27 -9
- package/dist/components/SPage/SPage.js.map +1 -1
- package/dist/components/SPopover/SPopover.cjs +2 -0
- package/dist/components/SPopover/SPopover.cjs.map +1 -1
- package/dist/components/SPopover/SPopover.js +2 -0
- package/dist/components/SPopover/SPopover.js.map +1 -1
- package/dist/components/SSelect/SSelect.cjs +2 -0
- package/dist/components/SSelect/SSelect.cjs.map +1 -1
- package/dist/components/SSelect/SSelect.js +2 -0
- package/dist/components/SSelect/SSelect.js.map +1 -1
- package/dist/components/STable/STable.cjs +3 -1
- package/dist/components/STable/STable.cjs.map +1 -1
- package/dist/components/STable/STable.js +3 -1
- package/dist/components/STable/STable.js.map +1 -1
- package/dist/components/STextarea/STextarea.cjs +2 -0
- package/dist/components/STextarea/STextarea.cjs.map +1 -1
- package/dist/components/STextarea/STextarea.js +2 -0
- package/dist/components/STextarea/STextarea.js.map +1 -1
- package/dist/components/STimePicker/STimePicker.cjs +3834 -0
- package/dist/components/STimePicker/STimePicker.cjs.map +1 -0
- package/dist/components/STimePicker/STimePicker.d.ts +50 -0
- package/dist/components/STimePicker/STimePicker.js +3811 -0
- package/dist/components/STimePicker/STimePicker.js.map +1 -0
- package/dist/components/STimePicker/index.d.ts +2 -0
- package/dist/components/STimePicker/timepicker.config.d.ts +23 -0
- package/dist/components/STimeRangePicker/STimeRangePicker.cjs +3908 -0
- package/dist/components/STimeRangePicker/STimeRangePicker.cjs.map +1 -0
- package/dist/components/STimeRangePicker/STimeRangePicker.d.ts +53 -0
- package/dist/components/STimeRangePicker/STimeRangePicker.js +3885 -0
- package/dist/components/STimeRangePicker/STimeRangePicker.js.map +1 -0
- package/dist/components/STimeRangePicker/index.d.ts +1 -0
- package/dist/components/STimeRangePicker/time-range-picker.config.d.ts +9 -0
- package/dist/components/SToast/SToast.cjs +2 -0
- package/dist/components/SToast/SToast.cjs.map +1 -1
- package/dist/components/SToast/SToast.js +2 -0
- package/dist/components/SToast/SToast.js.map +1 -1
- package/dist/components/SToast/SToastContainer.cjs +2 -0
- package/dist/components/SToast/SToastContainer.cjs.map +1 -1
- package/dist/components/SToast/SToastContainer.js +2 -0
- package/dist/components/SToast/SToastContainer.js.map +1 -1
- package/dist/components/STooltip/STooltip.cjs +2 -0
- package/dist/components/STooltip/STooltip.cjs.map +1 -1
- package/dist/components/STooltip/STooltip.js +2 -0
- package/dist/components/STooltip/STooltip.js.map +1 -1
- package/dist/index.cjs +1011 -136
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +1006 -136
- package/dist/index.js.map +1 -1
- package/dist/styles.css +475 -74
- package/dist/theme.css +85 -70
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -21,8 +21,8 @@ npm install sellmate-design-system-react
|
|
|
21
21
|
|
|
22
22
|
```css
|
|
23
23
|
/* app globals.css */
|
|
24
|
-
@import
|
|
25
|
-
@import
|
|
24
|
+
@import 'tailwindcss';
|
|
25
|
+
@import 'sellmate-design-system-react/theme.css';
|
|
26
26
|
@source "../node_modules/sellmate-design-system-react/dist";
|
|
27
27
|
```
|
|
28
28
|
|
|
@@ -34,37 +34,100 @@ npm install sellmate-design-system-react
|
|
|
34
34
|
Tailwind를 쓰지 않는 앱은 컴파일된 CSS를 직접 import 합니다.
|
|
35
35
|
|
|
36
36
|
```ts
|
|
37
|
-
import
|
|
37
|
+
import 'sellmate-design-system-react/styles.css';
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Next.js (App Router)
|
|
41
|
+
|
|
42
|
+
별도 설정 없이 동작합니다. `dist` 가 이미 빌드되어 있으므로 `transpilePackages` 는 필요 없습니다.
|
|
43
|
+
|
|
44
|
+
전역 CSS 는 위 **방식 1** 과 같습니다. `@source` 는 **CSS 파일 기준 상대경로**이므로 `app/globals.css` 에 둔다면 다음과 같습니다.
|
|
45
|
+
|
|
46
|
+
```css
|
|
47
|
+
/* app/globals.css */
|
|
48
|
+
@import 'tailwindcss';
|
|
49
|
+
@import 'sellmate-design-system-react/theme.css';
|
|
50
|
+
@source "../node_modules/sellmate-design-system-react/dist";
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 서버 컴포넌트에서 그대로 import 할 수 있습니다
|
|
54
|
+
|
|
55
|
+
패키지 엔트리가 `"use client"` 로 선언된 클라이언트 경계라, 서버 컴포넌트에서 바로 import 해도 됩니다. 서버에서 렌더(SSR)된 뒤 클라이언트에서 하이드레이션됩니다.
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
// app/page.tsx — "use client" 없음
|
|
59
|
+
import { SButton } from 'sellmate-design-system-react';
|
|
60
|
+
|
|
61
|
+
export default function Page() {
|
|
62
|
+
return <SButton color="primary" size="md" label="확인" />;
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### 이벤트 핸들러가 필요하면 소비자 쪽에 `"use client"`
|
|
67
|
+
|
|
68
|
+
RSC 경계를 넘어 **함수는 전달할 수 없습니다.** 위 페이지에 `onClick` 을 추가하면 빌드가 실패합니다.
|
|
69
|
+
|
|
70
|
+
```text
|
|
71
|
+
Error: Event handlers cannot be passed to Client Component props.
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
이는 라이브러리 제약이 아니라 React 서버 컴포넌트의 규칙입니다. 핸들러·상태가 필요한 화면은 그 파일을 클라이언트 컴포넌트로 만드세요.
|
|
75
|
+
|
|
76
|
+
```tsx
|
|
77
|
+
'use client';
|
|
78
|
+
|
|
79
|
+
import { useState } from 'react';
|
|
80
|
+
import { SCheckbox } from 'sellmate-design-system-react';
|
|
81
|
+
|
|
82
|
+
export function AgreeField() {
|
|
83
|
+
const [value, setValue] = useState(false);
|
|
84
|
+
return <SCheckbox value={value} onValueChange={setValue} label="동의" />;
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
동작을 직접 확인하려면 Next playground 를 띄우세요 — 이 패키지를 소비 앱과 동일하게 `dist` 로 소비합니다.
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
npm run playground:next # http://localhost:3010
|
|
38
92
|
```
|
|
39
93
|
|
|
40
94
|
## 사용법
|
|
41
95
|
|
|
42
96
|
```tsx
|
|
43
|
-
import {
|
|
97
|
+
import { SButton } from 'sellmate-design-system-react';
|
|
44
98
|
|
|
45
99
|
export function Example() {
|
|
46
|
-
return (
|
|
47
|
-
<Button variant="primary" size="md" onClick={() => alert("clicked")}>
|
|
48
|
-
확인
|
|
49
|
-
</Button>
|
|
50
|
-
);
|
|
100
|
+
return <SButton color="primary" size="md" label="확인" onClick={() => alert('clicked')} />;
|
|
51
101
|
}
|
|
52
102
|
```
|
|
53
103
|
|
|
104
|
+
모든 컴포넌트는 **`S` 접두어**를 씁니다(`SButton`, `SInput` …). 공개 타입도 마찬가지입니다(`SButtonProps`).
|
|
105
|
+
|
|
106
|
+
`SButton` 은 텍스트를 **`label`(문자열)로만** 받습니다 — `children` 은 받지 않으며, 아이콘은 `icon`/`rightIcon` 을 씁니다. 색상 prop 은 `color` 입니다(`variant` 아님).
|
|
107
|
+
|
|
54
108
|
## 제공 컴포넌트
|
|
55
109
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
|
59
|
-
|
|
|
60
|
-
|
|
|
61
|
-
|
|
|
62
|
-
|
|
|
63
|
-
|
|
|
64
|
-
|
|
|
65
|
-
|
|
|
66
|
-
|
|
67
|
-
|
|
110
|
+
분류는 `src/index.ts` 의 export 그룹과 동일합니다.
|
|
111
|
+
|
|
112
|
+
| 분류 | 컴포넌트 |
|
|
113
|
+
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
114
|
+
| Atoms | `SIcon` · `SBadge` · `SCard` · `SDivider` · `STag` · `SButton` · `SCallout` · `SLinearProgress` · `SCircleProgress` · `SLoadingContainer` |
|
|
115
|
+
| Control | `STextLink` · `SDropdownButton` · `SGhostButton` · `SSwitch` · `SToggle` |
|
|
116
|
+
| Overlays | `STooltip` · `SPopover` · `SPortal` · `SPopup` · `SGuide` |
|
|
117
|
+
| Modals | `SConfirmModal` · `SActionModal` · `SLoadingModal` |
|
|
118
|
+
| Layout | `SGnb` · `SLayout` · `SPage` |
|
|
119
|
+
| Navigation | `STabs` · `SPagination` |
|
|
120
|
+
| Data | `STable` · `SKeyValueTable` |
|
|
121
|
+
| Feedback | `SToast` |
|
|
122
|
+
| SField (폼) | `SForm` · `SField` · `SCheckbox` · `SRadio` · `SRadioButton` · `SInput` · `STextarea` · `SSelect` · `SNumberInput` · `SChip` · `SChipInput` · `SBarcodeInput` · `SCalendar` · `SDatePicker` · `SDateRangePicker` · `SFilePicker` |
|
|
123
|
+
|
|
124
|
+
`SModalContainer` 는 모달 3종의 내부 공통 컨테이너로 **공개 export 가 아닙니다.** 소비자는 `SConfirmModal`/`SActionModal`/`SLoadingModal` 을 사용하세요.
|
|
125
|
+
|
|
126
|
+
유틸리티도 함께 export 합니다.
|
|
127
|
+
|
|
128
|
+
- `cn` — 클래스 병합 헬퍼
|
|
129
|
+
- `resolveColor` · `isColorKey` · `COLOR_KEYS` · `SColor` · `SColorKey` — 색상 토큰 유틸
|
|
130
|
+
- `Rule` — `rules` prop(`SField` · `SChip` · `SBarcodeInput` 등)에 넘기는 검증 함수 타입
|
|
68
131
|
|
|
69
132
|
## 특징
|
|
70
133
|
|
|
@@ -2995,6 +2995,7 @@ function SGhostButton({
|
|
|
2995
2995
|
size = "sm",
|
|
2996
2996
|
intent = "default",
|
|
2997
2997
|
ariaLabel = "",
|
|
2998
|
+
ariaPressed,
|
|
2998
2999
|
tooltipText,
|
|
2999
3000
|
disabled = false,
|
|
3000
3001
|
onClick,
|
|
@@ -3031,6 +3032,7 @@ function SGhostButton({
|
|
|
3031
3032
|
disabled,
|
|
3032
3033
|
"aria-disabled": disabled ? "true" : void 0,
|
|
3033
3034
|
"aria-label": ariaLabel.trim() || void 0,
|
|
3035
|
+
"aria-pressed": ariaPressed,
|
|
3034
3036
|
tabIndex: disabled ? -1 : void 0,
|
|
3035
3037
|
onClick: (e) => {
|
|
3036
3038
|
if (disabled) {
|