Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
b647bea
βž• storybook μ˜μ‘΄μ„± μΆ”κ°€ 및 μ„€μ •
jjjuni Apr 28, 2025
5abd95e
βž• svgr μ˜μ‘΄μ„± μΆ”κ°€
jjjuni Apr 28, 2025
6963659
πŸ”₯ λΆˆν•„μš”ν•œ 파일 μ‚­μ œ
jjjuni Apr 28, 2025
5c67b77
πŸ’„ 카카였 μ•„μ΄μ½˜ μΆ”κ°€
jjjuni Apr 28, 2025
12f964c
πŸ’„ global css μ„€μ •
jjjuni Apr 28, 2025
f4708dd
πŸ’„ 헀더 UI κ΅¬ν˜„
jjjuni Apr 28, 2025
2f75d79
πŸ’„ 헀더 story 생성
jjjuni Apr 28, 2025
dd4fa5c
🚚 파일 경둜 μˆ˜μ •
jjjuni Apr 28, 2025
2a4243a
βž• framer-motion μ˜μ‘΄μ„± μΆ”κ°€
jjjuni Apr 28, 2025
414f6db
πŸ’„ νƒœκ·Έ λ²„νŠΌ UI κ΅¬ν˜„
jjjuni Apr 28, 2025
8c15ef9
πŸ’„ 헀더 style μˆ˜μ •
jjjuni Apr 28, 2025
d1343ac
πŸ’„ νƒœκ·Έ λ²„νŠΌ story 생성
jjjuni Apr 28, 2025
d94afd5
πŸ’„ plane μ•„μ΄μ½˜ μΆ”κ°€
jjjuni Apr 29, 2025
3092074
πŸ’„ 폰트 μˆ˜μ •
jjjuni Apr 29, 2025
37d49ac
πŸ’„ ν† κΈ€ UI κ΅¬ν˜„
jjjuni Apr 29, 2025
06db7ce
πŸ’„ ν† κΈ€ story 생성
jjjuni Apr 29, 2025
8c17c6f
πŸ’„ PlanInput UI κ΅¬ν˜„
jjjuni Apr 29, 2025
296dbc2
πŸ’„ PlanInput story 생성
jjjuni Apr 29, 2025
18e2f85
πŸ’„ Button UI κ΅¬ν˜„
jjjuni Apr 29, 2025
d157d6c
πŸ’„ Button story 생성
jjjuni Apr 29, 2025
4d01d98
πŸ’„ TagButton UI μˆ˜μ •
jjjuni Apr 29, 2025
66c3c1b
πŸ’„ TagButton story μˆ˜μ •
jjjuni Apr 29, 2025
693ccfa
πŸ’„ ν™”μ‚΄ν‘œ μ•„μ΄μ½˜ μΆ”κ°€
jjjuni Apr 29, 2025
6ba35ab
βž• react-grid-layout μ˜μ‘΄μ„± μΆ”κ°€
jjjuni Apr 29, 2025
f32869d
πŸ’„ react-grid-layout css μ„€μ •
jjjuni Apr 29, 2025
0db8235
πŸ’„ μ•„μ΄μ½˜ μˆ˜μ •
jjjuni Apr 30, 2025
fd56c1d
πŸ’„ react-grid-layout style μΆ”κ°€
jjjuni Apr 30, 2025
2fe81de
πŸ’„ PlanBox 및 Planner UI κ΅¬ν˜„
jjjuni Apr 30, 2025
e3bc7f9
πŸ’„ PlanBox 및 Planner story 생성
jjjuni Apr 30, 2025
47f717f
πŸ’„ Planner style μˆ˜μ •
jjjuni Apr 30, 2025
4a51771
βž• chromatic μ˜μ‘΄μ„± μΆ”κ°€
jjjuni Apr 30, 2025
6773f4e
πŸš€ μŠ€ν† λ¦¬λΆ 배포 μ„€μ •
jjjuni Apr 30, 2025
69dcecf
πŸš€ μŠ€ν† λ¦¬λΆ 배포 ν…ŒμŠ€νŠΈ
jjjuni Apr 30, 2025
311af0a
πŸš€ μŠ€ν† λ¦¬λΆ 배포 ν…ŒμŠ€νŠΈ
jjjuni Apr 30, 2025
3bc9d36
πŸš€ μŠ€ν† λ¦¬λΆ 배포 ν…ŒμŠ€νŠΈ
jjjuni Apr 30, 2025
7e646a4
πŸš€ μŠ€ν† λ¦¬λΆ 배포 ν…ŒμŠ€νŠΈ
jjjuni Apr 30, 2025
3a780cc
βž• react-calandar μ˜μ‘΄μ„± μΆ”κ°€
jjjuni May 12, 2025
c1f366f
πŸ’„ global style μˆ˜μ •
jjjuni May 12, 2025
36a5716
πŸ’„ Calandar UI κ΅¬ν˜„
jjjuni May 12, 2025
5a6dd29
πŸ’„ Calandar story 생성
jjjuni May 12, 2025
4855526
πŸ“ story 이름 μˆ˜μ •
jjjuni May 12, 2025
c12b348
🚚 μ»΄ν¬λ„ŒνŠΈ 이름 μˆ˜μ • 및 경둜 μˆ˜μ •
jjjuni May 12, 2025
102e496
βž• @types/navermaps μ˜μ‘΄μ„± μΆ”κ°€
jjjuni May 12, 2025
35ab8c3
✨ 넀이버 지도 api 연동
jjjuni May 12, 2025
e136870
πŸ’„ MapContent story 생성
jjjuni May 12, 2025
706b03e
πŸ”§ μŠ€ν† λ¦¬λΆ 슀크립트 ν™˜κ²½λ³€μˆ˜ μΆ”κ°€
jjjuni May 12, 2025
c28595d
πŸš€ κΉƒ μ•‘μ…˜ .env 파일 생성 μΆ”κ°€
jjjuni May 12, 2025
1487fa5
πŸš€ κΉƒ μ›Œν¬ν”Œλ‘œ μˆ˜μ •
jjjuni May 12, 2025
ee55147
🚚 μ•„μ΄μ½˜ 경둜 μˆ˜μ •
jjjuni May 12, 2025
a3fa4e6
✨ ν† κΈ€ 선택 κΈ°λŠ₯ μΆ”κ°€
jjjuni May 12, 2025
074b696
πŸ’„ Place 및 PlaceList μ»΄ν¬λ„ŒνŠΈ UI κ΅¬ν˜„
jjjuni May 12, 2025
b3fb987
πŸ’„ Place 및 PlaceList story 생성
jjjuni May 12, 2025
45b99b2
🚚 μ»΄ν¬λ„ŒνŠΈ 및 prop 넀이밍 μˆ˜μ •
jjjuni May 12, 2025
46e9bc1
πŸ’„ 지도 style μˆ˜μ •
jjjuni May 13, 2025
b3617dd
πŸ’„ Planner UI κ΅¬ν˜„
jjjuni May 13, 2025
b0a0a94
🀑 place mock 생성
jjjuni May 13, 2025
ba2f0b8
πŸ’„ Planner story 생성
jjjuni May 13, 2025
9154de1
πŸ”₯ λΆˆν•„μš”ν•œ 파일 μ‚­μ œ
jjjuni May 13, 2025
413a0fb
πŸ”§ svgr κ΄€λ ¨ config μˆ˜μ •
jjjuni May 13, 2025
b1d0547
πŸ’„ global style μˆ˜μ •
jjjuni May 13, 2025
70b27b1
🚚 파일 경둜 μˆ˜μ •
jjjuni May 13, 2025
1352ccd
πŸ’„ λ°°κ²½ 이미지 μΆ”κ°€
jjjuni May 13, 2025
9a00036
✨ νŽ˜μ΄μ§€ μ „ν™˜ κ΄€λ ¨ util μΆ”κ°€
jjjuni May 13, 2025
12ad556
βž• zustand 라이브러리 μΆ”κ°€
jjjuni May 13, 2025
1a7c128
βž• μ˜μ‘΄μ„± μΆ”κ°€
jjjuni May 14, 2025
71ae9f4
♻️ 지도 λ¦¬νŒ©ν† λ§
jjjuni May 14, 2025
f32a74b
♻️ Scheduler λ¦¬νŒ©ν† λ§
jjjuni May 14, 2025
14d61eb
πŸ’„ style μˆ˜μ •
jjjuni May 14, 2025
31eb47b
πŸ’„ ν™ˆ UI κ΅¬ν˜„
jjjuni May 14, 2025
c497016
πŸ’„ ν”Œλžœ νŽ˜μ΄μ§€ UI κ΅¬ν˜„
jjjuni May 14, 2025
3038361
πŸ› λΉŒλ“œ μ—λŸ¬ μˆ˜μ •
jjjuni May 14, 2025
119fbc5
πŸ› storybook μ—λŸ¬ μˆ˜μ •
jjjuni May 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/workflows/chromatic.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: "Chromatic"

on: push

jobs:
chromatic:
name: Run Chromatic
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 22.12.0

- name: Install pnpm
run: npm install -g pnpm

- name: Install dependencies
run: pnpm install

- name: Run Chromatic
uses: chromaui/action@latest
with:
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,5 @@ yarn-error.log*
# typescript
*.tsbuildinfo
next-env.d.ts

*storybook.log
45 changes: 45 additions & 0 deletions .storybook/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import type { StorybookConfig } from '@storybook/nextjs';

const config: StorybookConfig = {
"stories": [
"../src/**/*.mdx",
"../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"
],
"addons": [
"@storybook/addon-essentials",
"@storybook/addon-onboarding",
"@chromatic-com/storybook",
"@storybook/experimental-addon-test"
],
"framework": {
"name": "@storybook/nextjs",
"options": {
fastRefresh: true
}
},
"staticDirs": [
"../public"
],
webpackFinal: async config => {
const imageRule = config.module?.rules?.find(rule => {
const test = (rule as { test: RegExp }).test

if (!test) {
return false
}

return test.test('.svg')
}) as { [key: string]: any }

imageRule.exclude = /\.svg$/

config.module?.rules?.push({
test: /\.svg$/,
use: ['@svgr/webpack']
})

return config
}

};
export default config;
15 changes: 15 additions & 0 deletions .storybook/preview.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import type { Preview } from '@storybook/react'
import '../src/styles/globals.css'

const preview: Preview = {
parameters: {
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/i,
},
},
},
};

export default preview;
9 changes: 9 additions & 0 deletions .storybook/vitest.setup.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { beforeAll } from 'vitest';
import { setProjectAnnotations } from '@storybook/experimental-nextjs-vite';
import * as projectAnnotations from './preview';

// This is an important step to apply the right configuration when testing your stories.
// More info at: https://storybook.js.org/docs/api/portable-stories/portable-stories-vitest#setprojectannotations
const project = setProjectAnnotations([projectAnnotations]);

beforeAll(project.beforeAll);
20 changes: 20 additions & 0 deletions next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,26 @@ import type { NextConfig } from "next";

const nextConfig: NextConfig = {
/* config options here */

webpack(config) {
config.module.rules.push({
test: /\.svg$/i,
use: ["@svgr/webpack"],
});

return config;
},

experimental: {
turbo: {
rules: {
"*.svg": {
loaders: ["@svgr/webpack"],
as: "*.js",
},
},
},
},
};

export default nextConfig;
48 changes: 41 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,56 @@
"dev": "next dev --turbopack",
"build": "next build",
"start": "next start",
"lint": "next lint"
"lint": "next lint",
"storybook": "dotenv -e .env -- storybook dev -p 6006",
"build-storybook": "dotenv -e .env -- storybook build",
"chromatic": "npx chromatic --project-token=chpt_f2897a40bf07024"
},
"dependencies": {
"@svgr/webpack": "^8.1.0",
"framer-motion": "^12.9.2",
"next": "15.3.1",
"react": "^19.0.0",
"react-calendar": "^5.1.0",
"react-dom": "^19.0.0",
"next": "15.3.1"
"react-grid-layout": "^1.5.1",
"react-resizable": "^3.0.5",
"uuid": "^11.1.0",
"zustand": "^5.0.4"
},
"devDependencies": {
"typescript": "^5",
"@chromatic-com/storybook": "3",
"@eslint/eslintrc": "^3",
"@storybook/addon-essentials": "8.6.12",
"@storybook/addon-onboarding": "8.6.12",
"@storybook/blocks": "8.6.12",
"@storybook/experimental-addon-test": "8.6.12",
"@storybook/experimental-nextjs-vite": "8.6.12",
"@storybook/nextjs": "^8.6.12",
"@storybook/react": "8.6.12",
"@storybook/test": "8.6.12",
"@tailwindcss/postcss": "^4",
"@types/navermaps": "^3.7.9",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"@tailwindcss/postcss": "^4",
"tailwindcss": "^4",
"@types/react-grid-layout": "^1.3.5",
"@vitest/browser": "^3.1.2",
"@vitest/coverage-v8": "^3.1.2",
"chromatic": "^11.28.2",
"dotenv-cli": "^8.0.0",
"eslint": "^9",
"eslint-config-next": "15.3.1",
"@eslint/eslintrc": "^3"
"eslint-plugin-storybook": "^0.12.0",
"playwright": "^1.52.0",
"storybook": "8.6.12",
"tailwindcss": "^4",
"typescript": "^5",
"vitest": "^3.1.2"
},
"eslintConfig": {
"extends": [
"plugin:storybook/recommended"
]
}
}
}
Loading