@loword/loword-design-system 0.1.0 → 0.1.2
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 +24 -6
- package/dist/index.css +21 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
- **React 19** / **React DOM 19** (peer dependency)
|
|
13
13
|
- **Tailwind CSS v4** — `theme.css` 경로로 쓸 때만 필요합니다. 완성된 `styles.css`만 쓴다면 없어도 됩니다.
|
|
14
|
-
- **Next.js 15** (optional) — `LDTanstackTable`·`LDCollapsibleTanstackTable
|
|
14
|
+
- **Next.js 15** (optional) — `LDTanstackTable`·`LDCollapsibleTanstackTable`은 내부에서 `next/navigation`을 무조건 호출하므로 Next 환경에서만 돕니다.
|
|
15
15
|
|
|
16
16
|
## 설치
|
|
17
17
|
|
|
@@ -21,7 +21,7 @@ npm install @loword/loword-design-system
|
|
|
21
21
|
pnpm add @loword/loword-design-system
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
Editor·Carousel·Drawer·Table·
|
|
24
|
+
Editor·Carousel·Drawer·Table·Chart·DatePicker 같은 일부 컴포넌트는 뒤에 깔린 라이브러리를 **optional peer dependency**로 둡니다. 해당 컴포넌트를 쓸 때만 같이 설치하면 됩니다 — `@tiptap/*`(Editor), `embla-carousel*`(Carousel), `vaul`(Drawer), `@radix-ui/*`(Accordion/Modal/Popover/Tabs/Tooltip), `@tanstack/react-table`·`next`(Table), `chart.js`·`react-chartjs-2`(Chart), `react-day-picker`·`dayjs`(DatePicker/Calendar), `react-hot-toast`(Toast), `react-daum-postcode`(DaumPostButton).
|
|
25
25
|
|
|
26
26
|
## 설정
|
|
27
27
|
|
|
@@ -81,28 +81,45 @@ import LDButton from '@loword/loword-design-system/components/LDButton/LDButton'
|
|
|
81
81
|
|
|
82
82
|
**레이아웃/표시**: `LDBadge` · `LDAvatar` · `LDDivider` · `LDCallout` · `LDEmpty` · `LDSkeleton` · `LDSpinner` · `LDLoadingDots` · `LDProgressBar` · `LDScrollArea` · `LDAccordion` · `LDTeamHistory`
|
|
83
83
|
|
|
84
|
-
**내비게이션**: `LDBreadCrumb` · `LDMenuBar` · `LDTabs` · `LDSectionNav` · `LDPagination` · `LDLNB`
|
|
84
|
+
**내비게이션**: `LDBreadCrumb` · `LDMenuBar` · `LDTabs` · `LDSectionNav` · `LDPagination` · `LDLNB`
|
|
85
85
|
|
|
86
86
|
**오버레이/피드백**: `LDModal` · `LDModalView` · `LDDrawer` · `LDPopover` · `LDTooltip` · `LDToast` · `LDToaster` · `LDNotification`
|
|
87
87
|
|
|
88
|
-
**콘텐츠/데이터**: `LDEditor` · `LDViewer` · `LDCarousel` · `LDChart` · `LDTable` · `LDTanstackTable` · `LDCollapsibleTanstackTable`
|
|
88
|
+
**콘텐츠/데이터**: `LDEditor` · `LDViewer` · `LDCarousel` · `LDChart` · `LDTable` · `LDTanstackTable` · `LDCollapsibleTanstackTable`
|
|
89
89
|
|
|
90
90
|
**폼 연동**: `LDForm` · `LDNativeForm` · `LDFormField` · `LDFormErrorMessage` · `LDFormInput` · `LDFormTextarea` · `LDFormSelect` · `LDFormMultiSelect` · `LDFormCheckbox` · `LDFormCheckboxGroup` · `LDFormRadioGroup` · `LDFormDatePicker` · `LDFormDateRangePicker` · `LDFormTimePicker` · `LDFormToggleButton` · `LDFormOTPInput` · `LDFormRate`
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
**유틸**: `Show` — 조건부 렌더링 컴포넌트. `when`이 truthy면 `children`, falsy면 `fallback`을 렌더링하고, `children`을 함수로 넘기면 `NonNullable`로 좁혀진 값을 인자로 받습니다.
|
|
93
|
+
|
|
94
|
+
```tsx
|
|
95
|
+
<Show when={user} fallback={<LDSpinner />}>
|
|
96
|
+
{(result) => <span>{result.name}</span>}
|
|
97
|
+
</Show>
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
> barrel의 값 export는 `Show` · `openModal`(`LDModal`의 하위호환 별칭) · `TextareaContent` 셋 말고는 전부 `LD` 접두사입니다. 타입 export에는 예외가 조금 더 있습니다.
|
|
93
101
|
|
|
94
102
|
## 빠른 시작 (개발)
|
|
95
103
|
|
|
96
104
|
```bash
|
|
97
105
|
pnpm install # 의존성 설치
|
|
106
|
+
pnpm switch -c <브랜치> # 열려 있는 release/* 위에 작업 브랜치 생성
|
|
98
107
|
pnpm storybook # Storybook 개발 서버 (port 6006)
|
|
99
108
|
pnpm build # 프로덕션 빌드
|
|
100
109
|
pnpm check-types # 타입 체크
|
|
101
110
|
pnpm lint # ESLint (--fix 포함, src + .storybook)
|
|
102
111
|
pnpm prettier # Prettier
|
|
103
112
|
pnpm test # vitest (utils 유닛 + 스토리 브라우저 실행 + a11y)
|
|
113
|
+
pnpm test:coverage # 커버리지 (utils / components 분리 측정)
|
|
114
|
+
pnpm changeset # .changes/{브랜치명}.md 생성
|
|
104
115
|
```
|
|
105
116
|
|
|
117
|
+
## 변경 기록 (기여)
|
|
118
|
+
|
|
119
|
+
코드를 고쳤으면 `pnpm changeset`으로 **`.changes/{브랜치명}.md`** 를 만들어 같은 PR에 포함합니다. 이 디렉토리가 변경 기록의 유일한 원본이고, `docs/CHANGELOG.md`와 `docs/releases/vX.Y.Z.md`는 배포 시점에 여기서 생성되므로 직접 편집하지 않습니다.
|
|
120
|
+
|
|
121
|
+
작업 브랜치는 `main`이 아니라 열려 있는 `release/*`에서 분기하고 PR base도 거기로 잡습니다(`pnpm switch -c <브랜치>`가 자동으로 처리합니다). 모든 PR은 merge commit으로 머지합니다(squash 금지). 자세한 규칙은 [docs/release-process.md](./docs/release-process.md).
|
|
122
|
+
|
|
106
123
|
## 문서
|
|
107
124
|
|
|
108
125
|
- **아키텍처와 상세 가이드**: [docs/architecture.md](./docs/architecture.md)
|
|
@@ -114,7 +131,8 @@ pnpm test # vitest (utils 유닛 + 스토리 브라우저 실행 + a
|
|
|
114
131
|
- **프리셋 스타일 작성 규칙**: [docs/style-conventions.md](./docs/style-conventions.md)
|
|
115
132
|
- **CSS 캐스케이드 레이어**: [docs/css-layers.md](./docs/css-layers.md) — 컴포넌트 스타일이 왜 이기고 지는지, className override가 안 먹을 때의 진단 순서
|
|
116
133
|
- **타입 컨벤션**: [docs/type-conventions.md](./docs/type-conventions.md)
|
|
117
|
-
-
|
|
134
|
+
- **릴리즈/브랜치 운영**: [docs/release-process.md](./docs/release-process.md) — changeset 작성법, `release/*` 브랜치 흐름, 배포 자동화
|
|
135
|
+
- **변경 이력**: [docs/CHANGELOG.md](./docs/CHANGELOG.md) (생성물) · 버전별 릴리즈 노트는 [docs/releases/](./docs/releases/)
|
|
118
136
|
|
|
119
137
|
## 라이선스
|
|
120
138
|
|
package/dist/index.css
CHANGED
|
@@ -1247,6 +1247,9 @@
|
|
|
1247
1247
|
.ml-1 {
|
|
1248
1248
|
margin-left: calc(var(--spacing) * 1);
|
|
1249
1249
|
}
|
|
1250
|
+
.ml-2 {
|
|
1251
|
+
margin-left: calc(var(--spacing) * 2);
|
|
1252
|
+
}
|
|
1250
1253
|
.ml-auto {
|
|
1251
1254
|
margin-left: auto;
|
|
1252
1255
|
}
|
|
@@ -1941,6 +1944,9 @@
|
|
|
1941
1944
|
.grid-cols-\[64px_repeat\(3\,180px\)\] {
|
|
1942
1945
|
grid-template-columns: 64px repeat(3,180px);
|
|
1943
1946
|
}
|
|
1947
|
+
.grid-cols-\[auto_1fr\] {
|
|
1948
|
+
grid-template-columns: auto 1fr;
|
|
1949
|
+
}
|
|
1944
1950
|
.grid-rows-\[0fr\] {
|
|
1945
1951
|
grid-template-rows: 0fr;
|
|
1946
1952
|
}
|
|
@@ -2058,6 +2064,9 @@
|
|
|
2058
2064
|
.gap-x-4 {
|
|
2059
2065
|
column-gap: calc(var(--spacing) * 4);
|
|
2060
2066
|
}
|
|
2067
|
+
.gap-y-1 {
|
|
2068
|
+
row-gap: calc(var(--spacing) * 1);
|
|
2069
|
+
}
|
|
2061
2070
|
.divide-x {
|
|
2062
2071
|
:where(& > :not(:last-child)) {
|
|
2063
2072
|
--tw-divide-x-reverse: 0;
|
|
@@ -2883,6 +2892,9 @@
|
|
|
2883
2892
|
.text-nowrap {
|
|
2884
2893
|
text-wrap: nowrap;
|
|
2885
2894
|
}
|
|
2895
|
+
.break-all {
|
|
2896
|
+
word-break: break-all;
|
|
2897
|
+
}
|
|
2886
2898
|
.whitespace-nowrap {
|
|
2887
2899
|
white-space: nowrap;
|
|
2888
2900
|
}
|
|
@@ -2937,12 +2949,18 @@
|
|
|
2937
2949
|
.text-mono500 {
|
|
2938
2950
|
color: var(--color-mono500);
|
|
2939
2951
|
}
|
|
2952
|
+
.text-mono600 {
|
|
2953
|
+
color: var(--color-mono600);
|
|
2954
|
+
}
|
|
2940
2955
|
.text-mono700 {
|
|
2941
2956
|
color: var(--color-mono700);
|
|
2942
2957
|
}
|
|
2943
2958
|
.text-mono800 {
|
|
2944
2959
|
color: var(--color-mono800);
|
|
2945
2960
|
}
|
|
2961
|
+
.text-mono900 {
|
|
2962
|
+
color: var(--color-mono900);
|
|
2963
|
+
}
|
|
2946
2964
|
.text-neutral100 {
|
|
2947
2965
|
color: var(--color-neutral100);
|
|
2948
2966
|
}
|
|
@@ -2979,6 +2997,9 @@
|
|
|
2979
2997
|
.text-red500 {
|
|
2980
2998
|
color: var(--color-red500);
|
|
2981
2999
|
}
|
|
3000
|
+
.text-success600 {
|
|
3001
|
+
color: var(--color-success600);
|
|
3002
|
+
}
|
|
2982
3003
|
.text-transparent {
|
|
2983
3004
|
color: transparent;
|
|
2984
3005
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loword/loword-design-system",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "로워드 디자인 시스템 컴포넌트 패키지(Tailwind v4)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -281,6 +281,7 @@
|
|
|
281
281
|
"storybook": "storybook dev -p 6006",
|
|
282
282
|
"storybook:stop": "lsof -ti tcp:6006 -sTCP:LISTEN | xargs -r kill",
|
|
283
283
|
"build-storybook": "storybook build",
|
|
284
|
-
"generate-story": "npx tsx scripts/generate-story.ts"
|
|
284
|
+
"generate-story": "npx tsx scripts/generate-story.ts",
|
|
285
|
+
"switch": "sh scripts/switch.sh"
|
|
285
286
|
}
|
|
286
287
|
}
|