@wishket/design-system 0.0.1 → 0.0.3
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/.editorconfig +12 -0
- package/.eslintignore +3 -0
- package/.eslintrc.js +33 -0
- package/.github/CODEOWNERS +1 -0
- package/.github/ISSUE_TEMPLATE/bug.md +44 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +29 -0
- package/.github/pull_request_template.md +36 -0
- package/.github/release-drafter.yml +49 -0
- package/.github/workflows/design-system-canary.yml +78 -0
- package/.github/workflows/design-system-dev.yml +77 -0
- package/.github/workflows/design-system-release.yml +61 -0
- package/.github/workflows/pr-checklist.yml +23 -0
- package/.github/workflows/release-drafter.yml +16 -0
- package/.github/workflows/todo-bot.yml +19 -0
- package/.prettierrc +7 -0
- package/.vscode/settings.json +24 -0
- package/Components/Atoms/Typography/Typography.d.ts +3 -0
- package/Components/Atoms/Typography/Typography.tsx +9 -0
- package/Components/Atoms/Typography/index.ts +3 -0
- package/Components/Atoms/index.ts +1 -0
- package/Components/index.ts +1 -0
- package/README.md +36 -1
- package/__test__/setupTests.ts +3 -0
- package/index.d.ts +1 -0
- package/jest.config.js +26 -0
- package/next.config.js +4 -0
- package/package.json +38 -29
- package/postcss.config.js +6 -0
- package/public/next.svg +1 -0
- package/public/vercel.svg +1 -0
- package/src/app/favicon.ico +0 -0
- package/src/app/globals.css +3 -0
- package/src/app/layout.tsx +19 -0
- package/src/app/page.tsx +9 -0
- package/tailwind.config.ts +19 -0
- package/tsconfig.json +27 -0
package/.editorconfig
ADDED
package/.eslintignore
ADDED
package/.eslintrc.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
parser: '@typescript-eslint/parser',
|
|
3
|
+
parserOptions: {
|
|
4
|
+
project: ['tsconfig.json'],
|
|
5
|
+
tsconfigRootDir: __dirname,
|
|
6
|
+
sourceType: 'module',
|
|
7
|
+
createDefaultProgram: true
|
|
8
|
+
},
|
|
9
|
+
ignorePatterns: ['*.d.ts'],
|
|
10
|
+
extends: ["@wishket/eslint-config-wishket"],
|
|
11
|
+
root: true,
|
|
12
|
+
env: {
|
|
13
|
+
node: true,
|
|
14
|
+
browser: true
|
|
15
|
+
},
|
|
16
|
+
globals: {
|
|
17
|
+
document: false,
|
|
18
|
+
Map: false,
|
|
19
|
+
Promise: false
|
|
20
|
+
},
|
|
21
|
+
settings: {
|
|
22
|
+
react: {
|
|
23
|
+
version: 'detect'
|
|
24
|
+
},
|
|
25
|
+
'import/parsers': {
|
|
26
|
+
'@typescript-eslint/parser': ['.ts', '.tsx']
|
|
27
|
+
},
|
|
28
|
+
'import/resolver': {
|
|
29
|
+
typescript: {}
|
|
30
|
+
},
|
|
31
|
+
'import/ignore': ['testing-utils']
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* @wishket/frontend
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 버그 이슈
|
|
3
|
+
about: 버그에 대한 티켓을 생성합니다.
|
|
4
|
+
title: ''
|
|
5
|
+
labels: 'bug'
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 버그에 대한 내용
|
|
9
|
+
|
|
10
|
+
어떤 버그인지 기대 동작과 현상에 대해 작성합니다.
|
|
11
|
+
|
|
12
|
+
- ex. 등록 버튼 클릭 시 서버 요청 에러가 발생하고 결과에 대한 팝업이 노출되지 않음
|
|
13
|
+
|
|
14
|
+
## To reproduce
|
|
15
|
+
|
|
16
|
+
버그 재현 방법에 대해 작성합니다.
|
|
17
|
+
|
|
18
|
+
- ex.
|
|
19
|
+
1. <https://example.com> 접속
|
|
20
|
+
2. 계정 로그인
|
|
21
|
+
3. <https://example.com/form> 접속
|
|
22
|
+
4. form 작성
|
|
23
|
+
5. '등록' 버튼 클릭
|
|
24
|
+
|
|
25
|
+
## 기대 현상
|
|
26
|
+
|
|
27
|
+
예상한 상황에 대한 명확하고 간결한 설명입니다.
|
|
28
|
+
|
|
29
|
+
- ex. 등록 버튼 클릭 시 서버 요청 및 응답 받아 해당 결과에 대한 팝업 노출
|
|
30
|
+
|
|
31
|
+
## Screenshots
|
|
32
|
+
|
|
33
|
+
버그를 설명하는데 도움이 되는 스크린샷을 추가합니다.
|
|
34
|
+
|
|
35
|
+
### 발생 환경
|
|
36
|
+
|
|
37
|
+
- Device: [e.g. iPhone6]
|
|
38
|
+
- OS: [e.g. iOS]
|
|
39
|
+
- Browser [e.g. chrome, safari]
|
|
40
|
+
- Version [e.g. 22]
|
|
41
|
+
|
|
42
|
+
### Additional context
|
|
43
|
+
|
|
44
|
+
추가적인 컨텍스트를 작성합니다.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 기능 변경/추가
|
|
3
|
+
about: 제품에 추가할 기능의 변경 또는 추가에 대한 티켓을 생성합니다.
|
|
4
|
+
title: ''
|
|
5
|
+
labels: 'feat'
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 기능에 대한 내용
|
|
9
|
+
|
|
10
|
+
어떤 기능을 추가/변경 하는지 기대 동작과 현상에 대해 작성합니다.
|
|
11
|
+
|
|
12
|
+
- ex. 사용자 프로필 이미지 변경 기능 추가
|
|
13
|
+
|
|
14
|
+
## 계획 / 설계
|
|
15
|
+
|
|
16
|
+
기능을 구현하기 위한 계획 또는 설계를 작성합니다.
|
|
17
|
+
|
|
18
|
+
- ex.
|
|
19
|
+
- 이미지 변경 버튼 UI 추가
|
|
20
|
+
- 이미지 변경 버튼 클릭 시 이미지 변경 모달 노출
|
|
21
|
+
- 이미지 변경 모달에서 이미지 변경 후 저장 버튼 클릭 시 서버 요청
|
|
22
|
+
- 서버 요청 성공 시 성공 모달 노출
|
|
23
|
+
|
|
24
|
+
## 추가 컨텍스트
|
|
25
|
+
|
|
26
|
+
추가적인 컨텍스트를 작성합니다.
|
|
27
|
+
|
|
28
|
+
- 관련된 slack, trello, confluence, github issue, github pr 등의 링크
|
|
29
|
+
- 구현에 참조할 만한 내용
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
### Short description
|
|
2
|
+
|
|
3
|
+
*내용을 간단히 알 수 있도록 한줄로 요약하여 작성합니다.*
|
|
4
|
+
|
|
5
|
+
### Proposed changes
|
|
6
|
+
|
|
7
|
+
*변경 사항에 대해 리뷰어가 이해할 수 있도록 상세히 작성합니다.*
|
|
8
|
+
|
|
9
|
+
- 변경 사항 1
|
|
10
|
+
- 변경 사항 2
|
|
11
|
+
- 변경 사항 3
|
|
12
|
+
|
|
13
|
+
### How to test
|
|
14
|
+
|
|
15
|
+
*리뷰어가 재현을 할 수 있는 방법에 대해 작성합니다.*
|
|
16
|
+
|
|
17
|
+
### Screenshots
|
|
18
|
+
|
|
19
|
+
*UI의 변경 사항이나 이미지/비디오를 통해 설명을 보완할 수 있는 내용에 대해 작성합니다.*
|
|
20
|
+
|
|
21
|
+
|AS-IS|TO-BE|
|
|
22
|
+
|--|--|
|
|
23
|
+
|변경 전|변경 후|
|
|
24
|
+
|
|
25
|
+
|구분|내용|
|
|
26
|
+
|--|--|
|
|
27
|
+
|타이틀|스크린샷|
|
|
28
|
+
|
|
29
|
+
### Reference
|
|
30
|
+
|
|
31
|
+
*해당 작업을 하게 된 레퍼런스에 대해 작성합니다*
|
|
32
|
+
*라벨은 github 자동 이슈 링킹에 대한 예약어이므로 변경하지 않습니다.*
|
|
33
|
+
|
|
34
|
+
fix #issue-number_
|
|
35
|
+
resolve #issue-number_
|
|
36
|
+
close #issue-number_
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
name-template: 'v$NEXT_PATCH_VERSION 🌈'
|
|
2
|
+
tag-template: 'v$NEXT_PATCH_VERSION'
|
|
3
|
+
categories:
|
|
4
|
+
- title: '🎉 User stories'
|
|
5
|
+
labels:
|
|
6
|
+
- 'epic'
|
|
7
|
+
- 'Epic'
|
|
8
|
+
- 'user story'
|
|
9
|
+
- 'User story'
|
|
10
|
+
- 'user-story'
|
|
11
|
+
- title: '🚀 Features'
|
|
12
|
+
labels:
|
|
13
|
+
- 'feat'
|
|
14
|
+
- 'feature'
|
|
15
|
+
- 'Feature'
|
|
16
|
+
- 'enhancement'
|
|
17
|
+
- 'Enhancement'
|
|
18
|
+
- title: '🐛 Bug Fixes'
|
|
19
|
+
labels:
|
|
20
|
+
- 'fix'
|
|
21
|
+
- 'Fix'
|
|
22
|
+
- 'bugfix'
|
|
23
|
+
- 'bug'
|
|
24
|
+
- 'Bug'
|
|
25
|
+
- 'hotfix'
|
|
26
|
+
- title: '🦾 Refactoring'
|
|
27
|
+
labels:
|
|
28
|
+
- 'refactor'
|
|
29
|
+
- 'Refactor'
|
|
30
|
+
- title: '📚 Documentation'
|
|
31
|
+
labels:
|
|
32
|
+
- 'documentation'
|
|
33
|
+
- 'Documentation'
|
|
34
|
+
- title: '🧰 Maintenance'
|
|
35
|
+
label:
|
|
36
|
+
- 'chore'
|
|
37
|
+
- 'Chore'
|
|
38
|
+
- 'ci'
|
|
39
|
+
- 'CI'
|
|
40
|
+
- 'build'
|
|
41
|
+
- 'Build'
|
|
42
|
+
- title: '🛠 Dependencies'
|
|
43
|
+
label:
|
|
44
|
+
- 'dependencies'
|
|
45
|
+
- 'Dependencies'
|
|
46
|
+
change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
|
|
47
|
+
template: |
|
|
48
|
+
## Changes
|
|
49
|
+
$CHANGES
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
name: design-system-canary
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
paths:
|
|
8
|
+
- '**'
|
|
9
|
+
- '.github/workflows/design-system-canary.yml'
|
|
10
|
+
|
|
11
|
+
env:
|
|
12
|
+
NODE_OPTIONS: --max_old_space_size=4096
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
install-dependencies:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- name: Checkout code
|
|
19
|
+
uses: actions/checkout@v3
|
|
20
|
+
|
|
21
|
+
- name: Setup node.js
|
|
22
|
+
uses: actions/setup-node@v3
|
|
23
|
+
with:
|
|
24
|
+
node-version: '18'
|
|
25
|
+
|
|
26
|
+
- name: Install dependencies
|
|
27
|
+
if: steps.cache.outputs.cache-hit != 'true'
|
|
28
|
+
run: yarn install --frozen-lockfile
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
publish-canary:
|
|
32
|
+
runs-on: ubuntu-latest
|
|
33
|
+
needs: [install-dependencies]
|
|
34
|
+
steps:
|
|
35
|
+
- name: Checkout code
|
|
36
|
+
uses: actions/checkout@v3
|
|
37
|
+
|
|
38
|
+
- name: Setup node.js
|
|
39
|
+
uses: actions/setup-node@v3
|
|
40
|
+
with:
|
|
41
|
+
node-version: '18'
|
|
42
|
+
|
|
43
|
+
- name: Restore dependencies from cache
|
|
44
|
+
id: cache
|
|
45
|
+
uses: actions/cache@v3
|
|
46
|
+
with:
|
|
47
|
+
path: ./node_modules
|
|
48
|
+
key: ${{ runner.os }}-yarn-${{ hashFiles(format('{0}{1}', github.workspace, '/yarn.lock')) }}
|
|
49
|
+
restore-keys: |
|
|
50
|
+
${{ runner.os }}-yarn-
|
|
51
|
+
- name: Install dependencies
|
|
52
|
+
if: steps.cache.outputs.cache-hit != 'true'
|
|
53
|
+
run: yarn install --frozen-lockfile
|
|
54
|
+
|
|
55
|
+
- name: Create .npmrc
|
|
56
|
+
run: |
|
|
57
|
+
cat << EOF > "$HOME/.npmrc"
|
|
58
|
+
//registry.npmjs.org/:_authToken=$NPM_TOKEN
|
|
59
|
+
EOF
|
|
60
|
+
env:
|
|
61
|
+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
62
|
+
|
|
63
|
+
- name: Publish canary
|
|
64
|
+
run: |
|
|
65
|
+
cat <<< "$( jq '.version = "0.0.0"' package.json )" > package.json
|
|
66
|
+
echo -e "---\n'@wishket/design-system': patch\n---\n\nPublish canary" > .changeset/force-publish.md
|
|
67
|
+
yarn changeset version --snapshot
|
|
68
|
+
yarn changeset publish --tag canary
|
|
69
|
+
env:
|
|
70
|
+
GITHUB_TOKEN: ${{ secrets.PJW_GITHUB_TOKEN }}
|
|
71
|
+
|
|
72
|
+
- name: Output canary version number
|
|
73
|
+
run: |
|
|
74
|
+
name=$(jq -r .name package.json)
|
|
75
|
+
version=$(jq -r .version package.json)
|
|
76
|
+
yarn dlx action-status --context "Published $name" --state success --description $version --url "https://unpkg.com/$name@$version/"
|
|
77
|
+
env:
|
|
78
|
+
GITHUB_TOKEN: ${{ secrets.PJW_GITHUB_TOKEN }}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
name: design-system-dev
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches-ignore:
|
|
6
|
+
- master
|
|
7
|
+
paths:
|
|
8
|
+
- '**'
|
|
9
|
+
- '.github/workflows/design-system-dev.yml'
|
|
10
|
+
|
|
11
|
+
env:
|
|
12
|
+
NODE_OPTIONS: --max_old_space_size=4096
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
install-dependencies:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- name: Checkout code
|
|
19
|
+
uses: actions/checkout@v3
|
|
20
|
+
|
|
21
|
+
- name: Setup node.js
|
|
22
|
+
uses: actions/setup-node@v3
|
|
23
|
+
with:
|
|
24
|
+
node-version: '18'
|
|
25
|
+
|
|
26
|
+
- name: Install dependencies
|
|
27
|
+
if: steps.cache.outputs.cache-hit != 'true'
|
|
28
|
+
run: yarn install --frozen-lockfile
|
|
29
|
+
|
|
30
|
+
publish-dev:
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
needs: [install-dependencies]
|
|
33
|
+
steps:
|
|
34
|
+
- name: Checkout code
|
|
35
|
+
uses: actions/checkout@v3
|
|
36
|
+
|
|
37
|
+
- name: Setup node.js
|
|
38
|
+
uses: actions/setup-node@v3
|
|
39
|
+
with:
|
|
40
|
+
node-version: '18'
|
|
41
|
+
|
|
42
|
+
- name: Restore dependencies from cache
|
|
43
|
+
id: cache
|
|
44
|
+
uses: actions/cache@v3
|
|
45
|
+
with:
|
|
46
|
+
path: ./node_modules
|
|
47
|
+
key: ${{ runner.os }}-yarn-${{ hashFiles(format('{0}{1}', github.workspace, '/yarn.lock')) }}
|
|
48
|
+
restore-keys: |
|
|
49
|
+
${{ runner.os }}-yarn-
|
|
50
|
+
- name: Install dependencies
|
|
51
|
+
if: steps.cache.outputs.cache-hit != 'true'
|
|
52
|
+
run: yarn install --frozen-lockfile
|
|
53
|
+
|
|
54
|
+
- name: Create .npmrc
|
|
55
|
+
run: |
|
|
56
|
+
cat << EOF > "$HOME/.npmrc"
|
|
57
|
+
//registry.npmjs.org/:_authToken=$NPM_TOKEN
|
|
58
|
+
EOF
|
|
59
|
+
env:
|
|
60
|
+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
61
|
+
|
|
62
|
+
- name: Publish dev
|
|
63
|
+
run: |
|
|
64
|
+
cat <<< "$( jq '.version = "0.0.0"' package.json )" > package.json
|
|
65
|
+
echo -e "---\n'@wishket/design-system': patch\n---\n\nPublish dev" > .changeset/force-publish.md
|
|
66
|
+
yarn changeset version --snapshot
|
|
67
|
+
yarn changeset publish --tag dev
|
|
68
|
+
env:
|
|
69
|
+
GITHUB_TOKEN: ${{ secrets.PJW_GITHUB_TOKEN }}
|
|
70
|
+
|
|
71
|
+
- name: Output dev version number
|
|
72
|
+
run: |
|
|
73
|
+
name=$(jq -r .name package.json)
|
|
74
|
+
version=$(jq -r .version package.json)
|
|
75
|
+
yarn dlx action-status --context "Published $name" --state success --description $version --url "https://unpkg.com/$name@$version/"
|
|
76
|
+
env:
|
|
77
|
+
GITHUB_TOKEN: ${{ secrets.PJW_GITHUB_TOKEN }}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
name: design-system-release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
env:
|
|
8
|
+
NODE_OPTIONS: --max_old_space_size=4096
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
publish:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- name: Checkout code
|
|
15
|
+
uses: actions/checkout@v3
|
|
16
|
+
|
|
17
|
+
- name: Setup node.js
|
|
18
|
+
uses: actions/setup-node@v3
|
|
19
|
+
with:
|
|
20
|
+
node-version: '18'
|
|
21
|
+
|
|
22
|
+
- name: Restore dependencies from cache
|
|
23
|
+
id: cache
|
|
24
|
+
uses: actions/cache@v3
|
|
25
|
+
with:
|
|
26
|
+
path: ./node_modules
|
|
27
|
+
key: ${{ runner.os }}-yarn-${{ hashFiles(format('{0}{1}', github.workspace, '/yarn.lock')) }}
|
|
28
|
+
restore-keys: |
|
|
29
|
+
${{ runner.os }}-yarn-
|
|
30
|
+
- name: Install dependencies
|
|
31
|
+
if: steps.cache.outputs.cache-hit != 'true'
|
|
32
|
+
run: yarn install --frozen-lockfile
|
|
33
|
+
|
|
34
|
+
- name: Create .npmrc
|
|
35
|
+
run: |
|
|
36
|
+
cat << EOF > "$HOME/.npmrc"
|
|
37
|
+
//registry.npmjs.org/:_authToken=$NPM_TOKEN
|
|
38
|
+
EOF
|
|
39
|
+
env:
|
|
40
|
+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
41
|
+
|
|
42
|
+
- name: Publish
|
|
43
|
+
run: |
|
|
44
|
+
TAG_NAME=${GITHUB_REF#refs/tags/}
|
|
45
|
+
TAG_NAME=${TAG_NAME#v}
|
|
46
|
+
echo "TAG_NAME=$TAG_NAME"
|
|
47
|
+
cat <<< "$( jq ".version = \"$TAG_NAME\"" package.json )" > package.json
|
|
48
|
+
cat package.json
|
|
49
|
+
echo -e "---\n'@wishket/design-system': patch\n---\n\nPublish with tag $TAG_NAME" > .changeset/force-publish.md
|
|
50
|
+
yarn changeset publish
|
|
51
|
+
env:
|
|
52
|
+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
53
|
+
GITHUB_TOKEN: ${{ secrets.PJW_GITHUB_TOKEN }}
|
|
54
|
+
|
|
55
|
+
- name: Output version number
|
|
56
|
+
run: |
|
|
57
|
+
name=$(jq -r .name package.json)
|
|
58
|
+
version=$(jq -r .version package.json)
|
|
59
|
+
yarn dlx action-status --context "Published $name" --state success --description $version --url "https://unpkg.com/$name@$version/"
|
|
60
|
+
env:
|
|
61
|
+
GITHUB_TOKEN: ${{ secrets.PJW_GITHUB_TOKEN }}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
name: Pull Request Checklist
|
|
2
|
+
on: [pull_request]
|
|
3
|
+
jobs:
|
|
4
|
+
run:
|
|
5
|
+
runs-on: ubuntu-latest
|
|
6
|
+
steps:
|
|
7
|
+
- uses: wow-actions/auto-comment@v1
|
|
8
|
+
with:
|
|
9
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
10
|
+
pullRequestOpenedComment: |
|
|
11
|
+
👋 @{{ author }}
|
|
12
|
+
아래 체크리스트를 확인하시고 관련된 내용에 대한 리뷰 및 피드백을 부탁드립니다.
|
|
13
|
+
|
|
14
|
+
- [ ] Commit과 PR: Commit과 PR의 내용이 변경사항을 명확하게 잘 설명하고 있는가?
|
|
15
|
+
- [ ] 목적 일치성: PR의 목적에 부합하며, 불필요하거나 관련 없는 코드가 포함되어 있지 않은가?
|
|
16
|
+
- [ ] 기능 구현 적합성: 구현하고자 하는 기능이 목적에 맞게 적절하게 구현되어 있는가?
|
|
17
|
+
- [ ] 코드 가독성: 코드가 복잡하거나 읽기 어려운 부분 없이 명확하고 이해하기 쉬운가?
|
|
18
|
+
- [ ] 의존성 관리: 의존성이 적절하게 관리되고 있으며, 필요한 경우 적절히 독립되어 있는가?
|
|
19
|
+
- [ ] 코드 중복: 코드 중복이 최소화되었는가?
|
|
20
|
+
- [ ] 코드 퍼포먼스: 성능에 부정적인 영향을 미치는 부분이 없는가?
|
|
21
|
+
- [ ] 보안 취약점: 보안상 취약한 부분이 없는가?
|
|
22
|
+
- [ ] 컴포넌트 설계: 컴포넌트가 재사용 가능하고, 적절히 분리되어 있는가?
|
|
23
|
+
- [ ] 브라우저 호환성: 주요 브라우저와 버전에서 문제없이 작동하는가?
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name: Release Drafter
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
update_release_draft:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: release-drafter/release-drafter@v5
|
|
13
|
+
env:
|
|
14
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
15
|
+
with:
|
|
16
|
+
config-name: release-drafter.yml
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
name: Convert TODOs to Issues
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
convert_todos:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout repository
|
|
14
|
+
uses: actions/checkout@v2
|
|
15
|
+
|
|
16
|
+
- name: Convert TODOs to Issues
|
|
17
|
+
uses: alstr/todo-to-issue-action@master
|
|
18
|
+
with:
|
|
19
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
package/.prettierrc
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"editor.tabSize": 2,
|
|
3
|
+
"editor.formatOnSave": true,
|
|
4
|
+
"editor.formatOnPaste": true,
|
|
5
|
+
"editor.formatOnType": true,
|
|
6
|
+
"files.autoSave": "onFocusChange",
|
|
7
|
+
"editor.renderWhitespace": "all",
|
|
8
|
+
"editor.codeActionsOnSave": {
|
|
9
|
+
"source.fixAll": "explicit"
|
|
10
|
+
},
|
|
11
|
+
"[typescriptreact]": {
|
|
12
|
+
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint"
|
|
13
|
+
},
|
|
14
|
+
"eslint.lintTask.options": "--ignore-path .eslintignore",
|
|
15
|
+
"cSpell.words": [
|
|
16
|
+
"Menlo",
|
|
17
|
+
"rvest",
|
|
18
|
+
"tailwindcss",
|
|
19
|
+
"dotenv",
|
|
20
|
+
"VERCEL",
|
|
21
|
+
"wishdev",
|
|
22
|
+
"Wishket"
|
|
23
|
+
]
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Typography } from './Typography';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Atoms';
|
package/README.md
CHANGED
|
@@ -1 +1,36 @@
|
|
|
1
|
-
|
|
1
|
+
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
|
|
2
|
+
|
|
3
|
+
## Getting Started
|
|
4
|
+
|
|
5
|
+
First, run the development server:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm run dev
|
|
9
|
+
# or
|
|
10
|
+
yarn dev
|
|
11
|
+
# or
|
|
12
|
+
pnpm dev
|
|
13
|
+
# or
|
|
14
|
+
bun dev
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
|
18
|
+
|
|
19
|
+
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
|
|
20
|
+
|
|
21
|
+
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
|
|
22
|
+
|
|
23
|
+
## Learn More
|
|
24
|
+
|
|
25
|
+
To learn more about Next.js, take a look at the following resources:
|
|
26
|
+
|
|
27
|
+
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
|
|
28
|
+
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
|
|
29
|
+
|
|
30
|
+
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
|
|
31
|
+
|
|
32
|
+
## Deploy on Vercel
|
|
33
|
+
|
|
34
|
+
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
|
|
35
|
+
|
|
36
|
+
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
|
package/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Components/Atoms'
|
package/jest.config.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// jest.config.js
|
|
2
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
3
|
+
const nextJest = require('next/jest');
|
|
4
|
+
|
|
5
|
+
const createJestConfig = nextJest({
|
|
6
|
+
// Provide the path to your Next.js app to load next.config.js and .env files in your test environment
|
|
7
|
+
dir: './',
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
// Add any custom config to be passed to Jest
|
|
11
|
+
const customJestConfig = {
|
|
12
|
+
// Add more setup options before each test is run
|
|
13
|
+
setupFiles: ['dotenv/config'],
|
|
14
|
+
setupFilesAfterEnv: ['<rootDir>/__test__/setupTests.ts'],
|
|
15
|
+
testPathIgnorePatterns: ['<rootDir>/.next/', '<rootDir>/node_modules/'],
|
|
16
|
+
// if using TypeScript with a baseUrl set to the root directory then you need the below for alias' to work
|
|
17
|
+
moduleDirectories: ['node_modules', '<rootDir>/'],
|
|
18
|
+
testEnvironment: 'jest-environment-jsdom',
|
|
19
|
+
moduleNameMapper: {
|
|
20
|
+
'\\.(css|less|scss|sss|style)$': '<rootDir>/node_modules/jest-css-modules',
|
|
21
|
+
'^@/(.*)$': '<rootDir>/src/$1',
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// createJestConfig is exported this way to ensure that next/jest can load the Next.js config which is async
|
|
26
|
+
module.exports = createJestConfig(customJestConfig);
|
package/next.config.js
ADDED
package/package.json
CHANGED
|
@@ -1,36 +1,45 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wishket/design-system",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"files": [
|
|
8
|
-
"dist"
|
|
9
|
-
],
|
|
3
|
+
"version": "0.0.3",
|
|
4
|
+
"description": "Wishket Design System",
|
|
5
|
+
"types": "index.d.ts",
|
|
6
|
+
"license": "MIT",
|
|
10
7
|
"scripts": {
|
|
11
|
-
"
|
|
8
|
+
"dev": "next dev",
|
|
9
|
+
"build": "next build",
|
|
10
|
+
"start": "next start",
|
|
11
|
+
"lint": "eslint \"./**/*.{ts,tsx,js,jsx}\" --ignore-path .eslintignore || true",
|
|
12
|
+
"test:unit": "jest --ci --runInBand --coverage --watchAll=false --passWithNoTests --testMatch=\"**/*.unit.spec.@(ts|tsx)\"",
|
|
13
|
+
"test:e2e": "jest --ci --runInBand --coverage --watchAll=false --passWithNoTests --testMatch=\"**/*.e2e.spec.@(ts|tsx)\""
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"next": "14.0.4",
|
|
17
|
+
"react": "^18",
|
|
18
|
+
"react-dom": "^18"
|
|
12
19
|
},
|
|
13
20
|
"devDependencies": {
|
|
14
|
-
"@
|
|
15
|
-
"@
|
|
16
|
-
"@
|
|
17
|
-
"@
|
|
18
|
-
"@types/
|
|
19
|
-
"@types/
|
|
20
|
-
"@types/react
|
|
21
|
-
"
|
|
21
|
+
"@testing-library/dom": "^9.3.3",
|
|
22
|
+
"@testing-library/jest-dom": "^6.2.0",
|
|
23
|
+
"@testing-library/react": "^14.1.2",
|
|
24
|
+
"@testing-library/user-event": "^14.5.2",
|
|
25
|
+
"@types/jest": "^29.5.11",
|
|
26
|
+
"@types/node": "^20.10.7",
|
|
27
|
+
"@types/react": "^18",
|
|
28
|
+
"@types/react-dom": "^18",
|
|
29
|
+
"@wishket/eslint-config-wishket": "^1.0.0",
|
|
30
|
+
"autoprefixer": "^10.0.1",
|
|
31
|
+
"babel-jest": "^29.7.0",
|
|
22
32
|
"dotenv": "^16.3.1",
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
}
|
|
35
|
-
"packageManager": "yarn@4.0.2"
|
|
33
|
+
"eslint": "^8",
|
|
34
|
+
"eslint-config-next": "14.0.4",
|
|
35
|
+
"jest": "^29.7.0",
|
|
36
|
+
"jest-dom": "^4.0.0",
|
|
37
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
38
|
+
"postcss": "^8",
|
|
39
|
+
"prettier-plugin-tailwindcss": "^0.5.11",
|
|
40
|
+
"tailwindcss": "^3.3.0",
|
|
41
|
+
"ts-jest": "^29.1.1",
|
|
42
|
+
"ts-node": "^10.9.2",
|
|
43
|
+
"typescript": "^5"
|
|
44
|
+
}
|
|
36
45
|
}
|
package/public/next.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 283 64"><path fill="black" d="M141 16c-11 0-19 7-19 18s9 18 20 18c7 0 13-3 16-7l-7-5c-2 3-6 4-9 4-5 0-9-3-10-7h28v-3c0-11-8-18-19-18zm-9 15c1-4 4-7 9-7s8 3 9 7h-18zm117-15c-11 0-19 7-19 18s9 18 20 18c6 0 12-3 16-7l-8-5c-2 3-5 4-8 4-5 0-9-3-11-7h28l1-3c0-11-8-18-19-18zm-10 15c2-4 5-7 10-7s8 3 9 7h-19zm-39 3c0 6 4 10 10 10 4 0 7-2 9-5l8 5c-3 5-9 8-17 8-11 0-19-7-19-18s8-18 19-18c8 0 14 3 17 8l-8 5c-2-3-5-5-9-5-6 0-10 4-10 10zm83-29v46h-9V5h9zM37 0l37 64H0L37 0zm92 5-27 48L74 5h10l18 30 17-30h10zm59 12v10l-3-1c-6 0-10 4-10 10v15h-9V17h9v9c0-5 6-9 13-9z"/></svg>
|
|
Binary file
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Metadata } from 'next';
|
|
2
|
+
import { Inter } from 'next/font/google';
|
|
3
|
+
import './globals.css';
|
|
4
|
+
import { PropsWithChildren } from 'react';
|
|
5
|
+
|
|
6
|
+
const inter = Inter({ subsets: ['latin'] });
|
|
7
|
+
|
|
8
|
+
export const metadata: Metadata = {
|
|
9
|
+
title: 'Create Next App',
|
|
10
|
+
description: 'Generated by create next app',
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export default function RootLayout({ children }: PropsWithChildren) {
|
|
14
|
+
return (
|
|
15
|
+
<html lang="en">
|
|
16
|
+
<body className={inter.className}>{children}</body>
|
|
17
|
+
</html>
|
|
18
|
+
);
|
|
19
|
+
}
|
package/src/app/page.tsx
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Config } from 'tailwindcss';
|
|
2
|
+
|
|
3
|
+
const config: Config = {
|
|
4
|
+
content: [
|
|
5
|
+
'./Components/**/*.{js,ts,jsx,tsx,mdx}',
|
|
6
|
+
'./src/app/**/*.{js,ts,jsx,tsx,mdx}',
|
|
7
|
+
],
|
|
8
|
+
theme: {
|
|
9
|
+
extend: {
|
|
10
|
+
backgroundImage: {
|
|
11
|
+
'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
|
|
12
|
+
'gradient-conic':
|
|
13
|
+
'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
plugins: [],
|
|
18
|
+
};
|
|
19
|
+
export default config;
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "es5",
|
|
4
|
+
"lib": ["dom", "dom.iterable", "esnext"],
|
|
5
|
+
"allowJs": true,
|
|
6
|
+
"skipLibCheck": true,
|
|
7
|
+
"strict": true,
|
|
8
|
+
"noEmit": true,
|
|
9
|
+
"esModuleInterop": true,
|
|
10
|
+
"module": "esnext",
|
|
11
|
+
"moduleResolution": "bundler",
|
|
12
|
+
"resolveJsonModule": true,
|
|
13
|
+
"isolatedModules": true,
|
|
14
|
+
"jsx": "preserve",
|
|
15
|
+
"incremental": true,
|
|
16
|
+
"plugins": [
|
|
17
|
+
{
|
|
18
|
+
"name": "next"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"paths": {
|
|
22
|
+
"@/*": ["./src/*"]
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
|
26
|
+
"exclude": ["node_modules"]
|
|
27
|
+
}
|