-
Notifications
You must be signed in to change notification settings - Fork 2
Chore/sync main to dev #344
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* feat: ํ๋ก์ ํธ ๊ฐ๋ฐ ํ๊ฒฝ ์ธํ (#2) * feat: ํ๋ก์ ํธ ์ด๊ธฐ ์ธํ * feat: eslint "import/order" ์ค์ ์ถ๊ฐ * fix: prettier "semi" ์ค์ ๊ฐ true๋ก ์์ * feat: ๋์์ธ ์์คํ ๋ฐ ์คํ์ผ๋ง ์ ์ (#5) * chore: style-dictionary ์ค์น * feat: ์๋ฉํฑ ์ปฌ๋ฌ ๋์์ธ ํ ํฐ์ ํ ์ผ์๋ css ๋ณ์๋ก ์ ์ฉ * feat: ํฐํธ ๋์์ธ ํ ํฐ ์ ์ฉ * fix: label-xs ํฐํธ ์ฌ์ด์ฆ ์์ * feat: scheme (gap, radius, stroke, opacity) ํ ํฐ ์ค์ * rename: ํฐํธ css ํ์ผ๋ช ๋ณ๊ฒฝ (index.css -> typography.css) * fix: ๋์์ธ ํ ํฐ ํ์ผ ์์น styles/tokens/์ผ๋ก ๋ณ๊ฒฝ * feat: environment ํ ํฐ ์ค์ (shadow, motion) * feat: index.js ๋ก ํ ํฐ cssํ์ผ ํ๋ฒ์ import ํ๊ธฐ * feat: typescript-eslint/naming-convention ์ค์ * feat: ๊ธ๋ก๋ฒ ์คํ์ผ ์ค์ (ํฐํธ) * fix: font-display ์์ฑ block์ผ๋ก ๋ณ๊ฒฝ * chore: zustand ์ค์น * fix: font-display ์์ฑ swap ์ผ๋ก ๋ณ๊ฒฝ * rename: build-tokens.js -> token.config.js๋ก ํ์ผ๋ช ๋ณ๊ฒฝ, index.js -> index.ts๋ก ๋ณ๊ฒฝ * fix: ํ์ดํฌ๊ทธ๋ํผ @layer utilities ์ฌ์ฉ * remove: ๋ถํ์ํ ์ฝ๋ ์ ๊ฑฐ * remove: ์ฃผ์ ์ ๊ฑฐ * chore: Qodana ci ํ์ดํ๋ผ์ธ ๊ตฌ์ถ (#7) * Add qodana.yaml file * Add github workflow file --------- Co-authored-by: Qodana Application <[email protected]> * chore: ์คํ ๋ฆฌ๋ถ ํ๊ฒฝ ๊ตฌ์ถ ๋ฐ CI ์ค์ (#10) * chore: storybook ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค. * chore: ts์ปดํ์ผ๋ฌ์ ์คํ ๋ฆฌ๋ถ์ ํฌํจ์ํต๋๋ค. * fix: naming convention ์ค์ ์ด rules์ ํฌํจ๋๋๋ก ๊ตฌ๋ฌธ์ ์์ ํฉ๋๋ค. * feat: eslint ignore ์ต์ ์ storybook ๋๋ ํ ๋ฆฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: storybook preview์ ๋์์ธ ํ ํฐ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: storybook preview ์ ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ๋์ผํ ์คํ์ผ ์ค์ ์ ์ฃผ์ ํฉ๋๋ค. * move: ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์น๋ ์คํ ๋ฆฌ๋ถ ์์ ํ์ผ์ ์ญ์ ํฉ๋๋ค. * feat: ์คํ ๋ฆฌ๋ถ ํ ์คํธ๋ฅผ ์ํ ๋ฒํผ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํฉ๋๋ค. * feat: ๋ฒํผ ์ปดํฌ๋ํธ์ ๋ํ ์คํ ๋ฆฌ๋ถ ์ฝ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค. * chore: dev dependencies์ chromatic ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค. * feat: ์คํ ๋ฆฌ๋ถ ์๋ ๋ฐฐํฌ๋ฅผ ์ํ yml ํ์ผ์ ์์ฑํฉ๋๋ค. * feat: chormatic ๋ช ๋ ์ด๋ฅผ ์ฝ์ ํฉ๋๋ค. * feat: ๋ฒํผ ๋๋ฒ๊น ์ ์ํด width ์์ฑ์ ์์ ํฉ๋๋ค. * chore: eslint ์ถ๊ฐ ์ค์ ์ ์ํ ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๋ tailwind ์ค์ ํ์ผ์ ์ ๊ฑฐํฉ๋๋ค. * feat: ์ถ๊ฐ ํจํค์ง๋ฅผ ํตํด eslint์ prettier์์ ์ถฉ๋์ด ๋๋ ๊ตฌ๊ฐ์ ์ ์ดํฉ๋๋ค. * fix: ์์ ๋ eslint ์ค์ ์ ๋ง์ถฐ ์คํ ๋ฆฌ๋ถ ์ฝ๋๋ฅผ ์์ ํฉ๋๋ค. * feat: ํด๋ ๊ตฌ์กฐ ์ธํ ๋ฐ ์ ๋ ๊ฒฝ๋ก ์ฒ๋ฆฌ (#13) * feat: ํด๋ ์ํคํ ์ฒ ์ค์ (์์ํ์ผ์์ฑ) * chore: ์ ๋ ๊ฒฝ๋ก ์ฒ๋ฆฌ๋ฅผ ์ํ @types/node ๋ชจ๋ ์ค์น * feat: @(src) ์ ๋ ๊ฒฝ๋ก ์ค์ * fix: main.tsx ์ ๋ ๊ฒฝ๋ก๋ก import ํ๊ธฐ * chore: Tanstack query ๊ด๋ จ ๋ชจ๋ ์ค์น * feat: eslint-plugin-query ํ๋ฌ๊ทธ์ธ ์ค์ * style: ํ์ผ import ์ ํ์ฅ์ ์ ๊ฑฐ * chore: Qodana ์คํฌ๋ฆฝํธ ์์ (#15) * feat: ์ ์ ๋ถ์ ์คํฌ๋ฆฝํธ์ ์ปค์คํฐ๋ง์ด์ง ์ต์ ์ ์ถ๊ฐํฉ๋๋ค. * feat: ์คํฌ๋ฆฝํธ ์คํ ์ ์์กด์ฑ ์ค์น๋ฅผ ์ ํํ๋๋ก ์ฒ๋ฆฌํฉ๋๋ค. * chore: ymlํ์ผ์ ๋ค์ด๋ฐ์ ์์ ํฉ๋๋ค. * feat: Interaction ์ปดํฌ๋ํธ ๊ตฌํ (#17) * feat: Interaction ์ปดํฌ๋ํธ ๊ตฌํ * feat: Interaction์ ๊ณตํต ์คํ์ผ ๋ถ๋ฆฌ (.interaction) * remove: ํ์ํ์ง ์์ opacity ํ ํฐ ์ ๊ฑฐ tailwind ์์ฒด์์ ์ ๊ณตํ๋ ์คํ์ผ๊ณผ ๋์ผํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ * fix: interaction ์ ํธ๋ฆฌํฐ ์ค๋ฅ๋ก ๋ถ๋ฆฌ ์์ ์์๋ณต๊ท * Merge branch 'dev' of https://github.com/JECT-Study/JECT-Official-WebSite-Client into feat/9-interactionComponent * move: Interaction ํ์ผ common ํด๋๋ก ์ด๋ * feat: Interaction ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: InteractionStyle ๊ฐ์ฒด ์ ์ * refactor: InteractionStyle ๊ฐ์ฒด ํ์ฉํ์ฌ ์ค๋ณต๋๋ ์ฝ๋ ์ ๋ฆฌ * fix: tailwind์ ํด๋์ค ๋ค์ ๋์ ๊ตฌ์ฑ์ผ๋ก ์ธํ ์ค๋ฅ ํด๊ฒฐ ๊ฐ์ฒด์ ์ ์ฅ๋ ํด๋์ค ๋ค์์ ์์ ํ ํด๋์ค ๋ค์์ผ๋ก ๋ณ๊ฒฝ * fix: ๋ณ๊ฒฝํ interactionStyle ๊ฐ์ฒด ์ ์ฉ * feat: ์ธํฐ๋ ์ ์คํ ๋ฆฌ๋ถ ์ถ๊ฐ ์์ฑ * rename: ์คํ ๋ฆฌ ๋ณ์ ๋๋ฌธ์๋ก ๋ณ๊ฒฝ * feat: eslint const ๋ค์ด๋ฐ ์ปจ๋ฒค์ PascalCase ํ์ฉ * feat: radius ๊ธฐ๋ณธ๊ฐ ๋น๋ฌธ์์ด๋ก ์ฒ๋ฆฌ * feat: Label ๋ฐ Badge ์ปดํฌ๋ํธ ๊ตฌํ (#20) * feat: Badge ์ปดํฌ๋ํธ ๊ตฌํ * feat: Label ์ปดํฌ๋ํธ ๊ตฌํ * feat: Badge ์ปดํฌ๋ํธ ์ฌ๊ตฌํ Label ์ปดํฌ๋ํธ ์ด์ฉ * feat: Badge ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: Label ์คํ ๋ฆฌ๋ถ ์์ฑ * style: Label ๊ฐ์ฒด ๊ตฌ์ฑ ์์ ๋ฐ ๊ฐ์ฒด๋ช ๋ณ๊ฒฝ * style: ์ฝ๋ ์ ๋ฆฌ * rename: ์คํ ๋ฆฌ ์ด๋ฆ Primary๋ก ๋ณ๊ฒฝ * fix: ์ธํฐ๋ ์ ์ปดํฌ๋ํธ ์์ ๋ฐ storybook ์ค์ (#22) * feat(preview.ts): ์คํ ๋ฆฌ๋ถ ๋ฐฐ๊ฒฝ์ dark๋ก ๊ธฐ๋ณธ ์ค์ * feat: Label์ ํ ์คํธ children์ผ๋ก ๋ฐ๋๋ก ์์ * fix: Badge์ ๋ณ๊ฒฝ๋ Label ์ ์ฉ * feat: Label ์คํ ๋ฆฌ๋ถ argTypes ๋ฐ ํฐํธ ์์ ์์ * feat: ์ธํฐ๋ ์ ์ปดํฌ๋ํธ ์์ - ๋ฐฐ๊ฒฝ์ ์๋ ์์ ์์๋ ์ ๋์ํ๋๋ก ํจ - props๋ช ๋ณ๊ฒฝ ๋ฐ ์ถ๊ฐ * feat: ์ธํฐ๋ ์ ์คํ ๋ฆฌ๋ถ ์์ * style: Badge ๋ฐ Label ์คํ ๋ฆฌ ํ์ ์ฝ๋ ์ ๋ฆฌ * feat: ์ธํฐ๋ ์ description ์ถ๊ฐ * feat: ReactNode import ํ๊ธฐ * feat: Badge ์ปดํฌ๋ํธ text props -> children์ผ๋ก ๋ณ๊ฒฝ * style: ํ์ดํฌ๊ทธ๋ํผ ์คํ ์์ * feat: Badge, Interaction, Label ์คํ ๋ฆฌ๋ถ ์ปดํฌ๋ํธ ๋ฐฉ์์ ์คํ ๋ฆฌ ์์ฑ * feat: ์ธํฐ๋ ์ childHasBg, childRadius ๊ฐ ๋ฐ์ง ์๊ณ ์ธํฐ๋ ์ ๋ด๋ถ์์ ์ ๊ทผํ๋๋ก ์์ * feat: ์ธํฐ๋ ์ ์คํ ๋ฆฌ๋ถ ์์ * feat: Title, Callout, Hero ์ปดํฌ๋ํธ ๊ตฌํ (#23) * feat: Title ์ปดํฌ๋ํธ ๊ตฌํ * feat: Title ์คํ ๋ฆฌ๋ถ ์์ฑ * fix: border-radius ์คํด ํ ํฐ ์ค๋ฒ๋ผ์ด๋ฉ ์คํจ ๋ฌธ์ ๋ก ํ ํฐ ํ์ผ ์์ * feat: CalloutNumerical ์ปดํฌ๋ํธ ๊ตฌํ * feat: CalloutInformation ์ปดํฌ๋ํธ ๊ตฌํ * feat: HeroIndex ์ปดํฌ๋ํธ ๊ตฌํ * feat: Hero ์ปดํฌ๋ํธ ๊ตฌํ * feat: HeroIndex์ index min-width ์ค์ * feat: CalloutNumerical ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: CalloutInformation ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: HeroIndex ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: Hero ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: Title ReactNode import ํ๊ธฐ * remove: titleStyle lineHeight ์ ๊ฑฐ * remove: labelStyle lineHeight ์ ๊ฑฐ * feat: 22PR ๋ณ๊ฒฝ๋ Label Badge ์ปดํฌ๋ํธ ๋ฐ์ * feat: Title ์คํ ๋ฆฌ๊ฐ์ฒด ํ์ ์์ * feat: progress ์ปดํฌ๋ํธ ๊ตฌํ (#29) * feat: ProgressIndex ์ปดํฌ๋ํธ ๊ตฌํ * feat: ProgressBridge ๋ฐ ProgressIndicator ์ปดํฌ๋ํธ ๊ตฌํ * feat: ProgressItem ์ปดํฌ๋ํธ ๊ตฌํ * feat: Title textColor ์ ํ์ ์ธ Prop ์ถ๊ฐ * feat: ProgressVerticalBridge ๊ตฌํ * feat: Progress ๊ด๋ จ ์คํ ๋ฆฌ๋ถ ์์ฑ (Bridge ์ปดํฌ๋ํธ ์ ์ธ) * refactor: active style ์์ ๋ถ๋ฆฌ * remove: console.log ์ ๊ฑฐ * feat: new Array -> Array.from() ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ * feat: Title || -> ?? ๋ ๋ณํฉ ์ฐ์ฐ์๋ก ๋ณ๊ฒฝ undefined, null ์ผ ๊ฒฝ์ฐ์๋ง ๊ธฐ๋ณธ ํฐํธ ์์ ์ ์ฉ (๋น๋ฌธ์์ด๊ณผ ๊ฐ์ด ์ค์๋ก ๊ฐ์ ๋ฃ์์ ๊ฒฝ์ฐ๋ ์คํ์ผ ์ ์ฉ X) * feat: ๋ฒ์ฉ์ฑ์๋ ๋ฒํผ ์ปดํฌ๋ํธ ๊ตฌํ (#30) * chore: tailwind ์ฌ์ฉ ์ ํธ์์ฑ์ ์ํด clsx ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค. * move: ์์๋ก ์ฌ์ฉ๋ ๋ฒํผ ์ปดํฌ๋ํธ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * feat: BlockButton ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: BlockButton์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * feat: LabelButton ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: LabelButton์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * feat: storybook์์ ์ฌ์ฉํ ์ ์๋ ์คํ์ผ ์ํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: storybook์ด ๊ธฐ๋ณธ์ ์ผ๋ก docs๋ฅผ ์์ฑํ๋๋ก ์ค์ ํฉ๋๋ค. * refactor: ๋ฒํผ ์ปดํฌ๋ํธ๋ค์ ํ์ ๋ช ์ ์์ ํฉ๋๋ค. * refactor: ์คํ ๋ฆฌ๋ถ ์์์ ๋ค์ํ ๋ฒํผ์ ํํํ๋๋ก ์์ ํฉ๋๋ค. * typo: import ํ์ผ์ ๋ค์ด๋ฐ ์ค๋ฅ๋ฅผ ์์ ํฉ๋๋ค. * typo: ์คํ์ผ ํ์ผ์ ์๋ชป ์ ์ธ๋ ์คํ์ผ์ ์์ ํฉ๋๋ค. * typo: radius์ ์ ํธ๋ฆฌํฐ ๊ฐ ๋ค์ด๋ฐ์ ์์ ํฉ๋๋ค. * feat: Interaction ์ปดํฌ๋ํธ๋ฅผ ์ ์ฉํ๊ธฐ ์ํ ๋งต ๊ฐ์ฒด๋ฅผ ์ ์ธํฉ๋๋ค. * feat: ์ ์ธํ map ๊ฐ์ฒด๋ฅผ ์ด์ฉํด BlockButton์ ์ธํฐ๋ ์ ์ ์ ์ฉํฉ๋๋ค. * feat: ์ ์ธ๋ radius๋ฅผ ์ถ์ถํ๊ธฐ ์ํ ์ ํธ๋ฆฌํฐ ํจ์๋ฅผ ๊ตฌํํฉ๋๋ค. * refactor: ์ ํธ๋ฆฌํฐ ํจ์๋ฅผ ์ด์ฉํด BlockButton์ radius ๊ฐ์ Interaction ์ปดํฌ๋ํธ์ ์ ๋ฌํฉ๋๋ค. * feat: blockButton์ ๋งต ๊ฐ์ฒด ๋ค์ด๋ฐ์ ๊ตฌ์ฒดํํฉ๋๋ค. * feat: labelButton์ Interaction ์คํ์ผ ๊ฐ์ฒด๋ฅผ ์ ์ธํฉ๋๋ค. * feat: labelButton์ Interaction ์ปดํฌ๋ํธ๋ฅผ ์ ์ฉํฉ๋๋ค. * refactor: ์์ ๋ Interaction ์ปดํฌ๋ํธ๋ ๋์ด์ radius๋ฅผ props๋ก ๋ฐ์ง ์์ต๋๋ค. * refactor: ๋ฒํผ ์ปดํฌ๋ํธ๊ฐ Interaction ์ปดํฌ๋ํธ์ ๋ง์ถฐ์ง radius๋ฅผ ๊ฐ์ง๋๋ก ์ค์ ํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๋ ์ ํธ๋ฆฌํฐ ํจ์๋ฅผ ์ญ์ ํฉ๋๋ค. * feat: Interaction ์ปดํฌ๋ํธ์ outlineOffset ์ค์ ์ ์ถ๊ฐํฉ๋๋ค. * feat: LabelButton์ ์คํ์ผ ๊ฐ์ฒด์ ์ฌ์ด์ฆ ๋ณ offset ๊ฐ์ ์ถ๊ฐํฉ๋๋ค. * refactor: labelButton์ด Interaction ์์ offset ๊ฐ์ ๋์ ์ผ๋ก ํ ๋นํฉ๋๋ค. * feat: ๋์ ์คํ์ผ๋ง์ ์ํ ๋งคํ ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค. * refactor: Interaction์ ๋์ ์คํ์ผ๋ง ๋ฐฉ์์ ์์ ํฉ๋๋ค. * feat: ์์ด์ฝ๋ ธ๊ทธ๋ํผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ด์ฝ ์ปดํฌ๋ํธ ๊ตฌํ (#32) * feat: ์์ด์ฝ 13๊ฐ ์ปดํฌ๋ํธ ๊ตฌํ * feat: ์์ด์ฝ ์ฌ์ด์ฆ ์คํ์ผ ๊ฐ์ฒด ์์ฑ * feat: ์์ด์ฝ ์ฌ์ด์ฆ ์คํ์ผ ๊ฐ์ฒด ์์ฑ * feat: ์์ด์ฝ ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: ์คํ ๋ฆฌ๋ถ description ์ปดํฌ๋ํธ ์ด๋ฆ ์์ * remove: ์์ด์ฝ ๊ฐ๋ณ ์ปดํฌ๋ํธ ์ญ์ * remove: ์์ด์ฝ ๊ฐ๋ณ ์ปดํฌ๋ํธ ์คํ ๋ฆฌ๋ถ ์ญ์ * chore: vite-plugin-svgr ์ค์น * chore: svg ์์ด์ฝ์ ์ปดํฌ๋ํธ๋ก ์ฌ์ฉํ๊ธฐ ์ํ ์ค์ * feat: assets/svg ์์น์ ์์ด์ฝ svg ํ์ผ๋ค ์ถ๊ฐ * feat: ์์ด์ฝ ํตํฉ ์ปดํฌ๋ํธ ์์ฑ ๋ฐ ์์ด์ฝ ์ด๋ฆ ํ์ ์ ์ * feat: Icon ์ปดํฌ๋ํธ ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: Icon ์ปดํฌ๋ํธ switch -> ๊ฐ์ฒด ๋งคํ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ * fix: ์ธํฐ๋์ ์ปดํฌ๋ํธ ์ฌ๊ตฌํ ๋ฐ semantic ์ปฌ๋ฌ ํ ํฐ ์ ๋ฐ์ดํธ (#35) * fix: ์ธํฐ๋ ์ ์ฌ๊ตฌํ - ์ธํฐ๋ ์ scale ๊ฐ์ผ๋ก ํฌ๊ธฐ ์กฐ์ - ์ธํฐ๋ ์ ์ปดํฌ๋ํธ ๋ถ๋ชจ ์์ ๊ด๊ณ -> ํ์ ๊ด๊ณ๋ก ๋ฐฉ์ ๋ณ๊ฒฝ * design: semantic ํ ํฐ ์ ๋ฐ์ดํธ * feat: Interaction ์ปดํฌ๋ํธ isInversed props ์ถ๊ฐ * feat: ์์ ๋ interactionStyle ๋ฐ์ * remove: ๋ถํ์ ์ฝ๋ ์ญ์ * feat: Interaction ์ปดํฌ๋ํธ className props ์ถ๊ฐ * feat: ์ธํฐ๋ ์ ์คํ ๋ฆฌ๋ถ ์์ * fix: LabelButton import ๋ฒ๊ทธ ์์ * remove: semantic.json ํ์ผ ์ญ์ * docs: token.config.js ์ semantic.css ํ์ผ ์์ฑ ๋ฐฉ๋ฒ ์ฃผ์ ๋ฌ๊ธฐ * style: Interaction className ์ฝ๋ ์ค๋ฐ๊ฟ * feat: Input ์ปดํฌ๋ํธ ๊ตฌํ (#36) * feat: InputTextArea ์ปดํฌ๋ํธ ๊ตฌํ * Merge branch 'dev' of https://github.com/JECT-Study/JECT-Official-WebSite-Client into feat/24-input * feat: TextAreaField ์ปดํฌ๋ํธ ๋ถ๋ฆฌ, AnswerBox๋ก ์ปดํฌ๋ํธ๋ช ๋ณ๊ฒฝ * design: InputField grow ๊ฐ ์์ * feat: environment์ duration ํ ํฐ ๊ฐ ์์ฑ * feat: AnswerBox, InputField ์ปดํฌ๋ํธ ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: InputField, TextAreaField์ duration ๋ฐ motion ์ ์ฉ * rename: AnswerBox -> InputArea ๋ก ์ปดํฌ๋ํธ๋ช ๋ณ๊ฒฝ * rename: InputField -> Input ์ปดํฌ๋ํธ๋ช ๋ณ๊ฒฝ * feat: Input ์คํ ๋ฆฌ๋ถ ์์ด์ฝ ์คํ ๋ฆฌ ์ถ๊ฐ * rename: TextAreaField -> TextArea๋ก ์ปดํฌ๋ํธ๋ช ๋ณ๊ฒฝ * feat: InputArea required args ์ถ๊ฐ * style: TextArea ์ฝ๋ ์ ๋ฆฌ * style: Input ์ฝ๋ ์ ๋ฆฌ * feat: Label cursor-default ์์ฑ ์ถ๊ฐ * style: inputArea ์ฝ๋ ์ ๋ฆฌ * feat: InputField ๋ฒํผ ์์๋ค children์ผ๋ก ์ ๋ถ ๋ณ๊ฒฝ * feat: Input ์คํ ๋ฆฌ๋ถ ์์ * feat: InputField ๋ถํ์ํ props ์ ๊ฑฐ * feat: InputField ์คํ ๋ฆฌ๋ถ ์์ฑ * style: TextArea ์ฝ๋ ์ ๋ฆฌ * feat: input, textarea ์์ ํ์ ComponentPropsWithoutRef ์ฌ์ฉ * feat: ์ง์ํ๊ธฐ ํ์ด์ง UI ๊ตฌํ (#40) * chore: react-router-dom ์ค์น * feat: router ์ธํ ๋ฐ /apply ๋ผ์ฐํฐ ์ค์ * feat: ProgressItem์ content prop ํ์ ReactNode๋ก ๋ณ๊ฒฝ * feat: client-apply-01 ํ์ด์ง UI ๊ตฌํ (๋ฒํผ ์ ์ธ) * feat: ์ง์ํ๊ธฐ ๋งํฌ ํด๋ฆญ ์ ํ์ด์ง ํ๋จ์ผ๋ก ์ด๋ * fix: ์์ด์ฝ ์ค์ ์ถ๊ฐ * feat: ์ง์ ํ๊ธฐ ๋ฒํผ ์์ฑ * feat: ProgressItem p ํ๊ทธ -> div ํ๊ทธ๋ก ๋ณ๊ฒฝ * feat: ๋จธ์ง์ ์ถฉ๋์์๋ ํ์ผ ๋ณํฉ * remove: ๋ถํ์ํ ์ฝ๋ ์ ๊ฑฐ * feat: moveToBottom utils ํจ์ ์์ฑ * feat: CreateNewTab ์ปดํฌ๋ํธ ์์ฑ - ์๋ก์ด ํญ์ผ๋ก ํ์ดํผ๋งํฌ ์ด๊ธฐ * rename: scrollFucion -> scrollFunction์ผ๋ก ํ์ผ๋ช ์คํ ์์ * feat: apply page์ ํ์ํ ๋ฐ์ดํฐ ๊ฐ์ฒด ๋ฐฐ์ด ์์ฑ * feat: ๋ฆฌํฉํ ๋ง ๋ฐ ์ง์ํ๊ธฐ ๋ฒํผ ui ๊ตฌํ * style: ์ฝ๋ ์คํ์ผ ์ ๋ฆฌ * remove: router.tsx ํ์ผ ์ด๋ * fix: router import ๊ฒฝ๋ก ์์ * feat: now -> currentDate๋ก ๋ณ์๋ช ๋ณ๊ฒฝ ๋ฐ applyData ๊ฐ์ฒด id ๊ฐ ์ถ๊ฐ * feat: ์ง์ํ๊ธฐ ํ์ด์ง ํ์ดํ ์์ํ * rename: CreateNewTab -> NewTabLink ์ปดํฌ๋ํธ๋ช ์์ * feat: Card์ Post ์ปดํฌ๋ํธ ๊ตฌํ (#37) * feat: Post ์ปดํฌ๋ํธ๋ฅผ ํผ๋ธ๋ฆฌ์ฑ ํฉ๋๋ค. * feat: Post ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * feat: Card ์ปดํฌ๋ํธ๋ฅผ ํผ๋ธ๋ฆฌ์ฑ ํฉ๋๋ค. * feat: ์คํ ๋ฆฌ๋ถ์ ์ํ ์ํ ์ด๋ฏธ์ง๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: Card ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * feat: descriptionVisible props์ ๋ฐ๋ผ children ์์์ ์ถ๋ ฅ ์ ๋ฌด๋ฅผ ์กฐ๊ฑด๋ถ๋ก ๋ ๋๋งํฉ๋๋ค. * feat: ์กฐ๊ฑด๋ถ ๋ ๋๋ง ์ ๋ถ๊ธฐ๊ฐ ํ์ํ ํ๊ทธ๋ฅผ ๋ฐ์ํฉ๋๋ค. * feat: ์ถ๊ฐ๋ props๋ฅผ ์คํ ๋ฆฌ๋ถ์ ๋ฐ์ํฉ๋๋ค. * fix: ๊ณต์ฉ ์ปดํฌ๋ํธ๊ฐ ๋จ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ฐ์ง๋๋ก ์์ ํฉ๋๋ค. * rename: boolean typo์ props ๋ค์ด๋ฐ์ ์์ ํฉ๋๋ค. * refactor: ๋ถ๋ชจ container์ items-stretch๋ฅผ ์ ์ฉํ๊ณ , flex grow๋ฅผ ์ ์ฉํฉ๋๋ค. * feat: ์คํ ๋ฆฌ๋ถ์ ๊ธฐ๋ณธ args๋ฅผ ์ฃผ์ ํฉ๋๋ค. * feat: ํญ ์ปดํฌ๋ํธ ๊ตฌํ (#39) * feat: Tab ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: Tab ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * feat: Tab ์ปดํฌ๋ํธ์ Interaction์ ์ ์ฉํฉ๋๋ค. * feat: active ์ TabItem์ stroke๊ฐ ๊ธฐ๋ณธ stroke์ ์ฌ๋ผ์ค๋๋ก ํฉ๋๋ค. * refactor: context API๋ฅผ ์ฌ์ฉํ์ฌ Tab์ ์ ๋ฐ์ ์ธ ์ฝํ ์ธ ์ ํญ ํค๋๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. * feat: ์ค์ง์ ์ธ ๋ฉ์ธ ์ธํฐํ์ด์ค๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค. * typo: ์ปดํฌ๋ํธ์ ์ธํฐํ์ด์ค์ ๋ค์ด๋ฐ์ ๋จ์ํ์ผ๋ก ์์ ํฉ๋๋ค. * feat: ์์ ๋ ์ปดํฌ๋ํธ๋ฅผ ์คํ ๋ฆฌ๋ถ์ ๋ฐ์ํฉ๋๋ค. * refactor: tab์ id๋ฅผ number ํํ๋ก ๋ณํํฉ๋๋ค. * refactor: tab header์ width๋ฅผ 100%๋ก ์ฒ๋ฆฌํฉ๋๋ค. * feat: ์ถ๊ฐ์ ์ธ ์ผ์ด์ค์ ์คํ ๋ฆฌ๋ถ์ ์ฃผ์ ํฉ๋๋ค. * feat: ํ๊ทธ์ ๋ช ์์ ์ธ aria-label์ ์ถ๊ฐํฉ๋๋ค. * feat: FAQ ํ์ด์ง UI ๊ตฌํ ๋ฐ ์์ฝ๋์ธ ์ปดํฌ๋ํธ ๊ตฌํ (#53) * feat: faq ํ์ด์ง ๋ฐ ๋ผ์ฐํฐ ์์ฑ * move: Badge, Label, Title ํด๋๋ก ๋ฌถ์ * feat: Badge, Label, Title ๋ณ๊ฒฝ๋ ๊ฒฝ๋ก ์์ * fix: Title textColor null ํ์ ํ์ฉ * feat: Accordion ์ปดํฌ๋ํธ ์์ฑ * feat: list-ject(list-style-type) ์ ํธ๋ฆฌํฐ ์คํ์ผ ์์ฑ * feat: faq '์ง์ ๊ด๋ จ' TabPanel ๊ตฌ์ฑ * feat: Accordion ์ปดํฌ๋ํธ expand ์์ด์ฝ ๋ฐ ์บก์ prop ์ถ๊ฐ * feat: FAQ ํ์ด์ง ๋ฐ์ดํฐ ๊ฐ์ฒด ๋ฐฐ์ด ์์ฑ * feat: list-decimal margin ์์ ๋ฐ list-ject -> list-disc-ject ๋ก ์คํ์ผ ๋ค์ด๋ฐ ๋ณ๊ฒฝ * feat: Faq ํ์ด์ง ์ปดํฌ๋ํธ faq ๊ฐ์ฒด ๋ฐ์ดํฐ ์ ์ฉ * feat: Accordion ์คํ ๋ฆฌ๋ถ ์์ฑ * fix: Accordion ์ปดํฌ๋ํธ, ref ์ด์ฉํ ์คํ์ผ ์ฃผ์ ๋ฐฉ์ -> className์ ์ง์ ์กฐ๊ฑด๋ถ ์ฒ๋ฆฌ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ * feat: Select ์ปดํฌ๋ํธ ๊ตฌํ (#44) * move: ๋ถํ์ํ import ๋ฌธ์ ์ ๊ฑฐํฉ๋๋ค. * feat: Select ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: Select ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * feat: Select ์ปดํฌ๋ํธ์ Interaction์ ์ฃผ์ ํฉ๋๋ค. * feat: Interaction ์ฌ์ฉ์ duration๊ณผ motion ์์ฑ์ ์ถ๊ฐํฉ๋๋ค. * refactor: Select ์ปดํฌ๋ํธ์ disabled props๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: ์์ ๋ ์ปดํฌ๋ํธ๋ฅผ ์คํ ๋ฆฌ๋ถ์ ๋ฐ์ํฉ๋๋ค. * fix: ์ ์ฉ๋์ง ์๋ motion๊ณผ duration ์คํ์ผ์ ์์ ํฉ๋๋ค. * refactor: SelectItem์ ์ธํฐํ์ด์ค ๊ตฌ์กฐ๋ฅผ ํ์ฅ์ฑ ์๊ฒ ๋ณ๊ฒฝํฉ๋๋ค. * fix: ์ต์์ div์ width๋ฅผ 100%๋ก ์์ ํฉ๋๋ค. * rename: rest props์ ๋ค์ด๋ฐ์ ์ง๊ด์ ์ผ๋ก ์์ ํฉ๋๋ค. * rename: props๋ก ์ ๋ฌ๋ onClick ํธ๋ค๋ฌ์ ์ด๋ฆ์ ๊ตฌ๋ถ ์ง์ต๋๋ค. * refactor: Select ์ปดํฌ๋ํธ์ defaultValue ์ต์ ๋ props๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: SnackBar ์ปดํฌ๋ํธ ๊ตฌํ (#45) * feat: blockButton์ Interaction์ isInversed ๊ฐ์ ์ถ๊ฐํฉ๋๋ค. * feat: button ์ปดํฌ๋ํธ์ peer ์คํ์ผ์ ์ถ๊ฐํฉ๋๋ค. * refactor: BlockButton์ disabled ์์ฑ์ ์ถ๊ฐํฉ๋๋ค. * feat: BlockButton์ disabled case์ ์ถ๊ฐ์ ๋ง์ถฐ ์คํ ๋ฆฌ๋ถ์ ์์ ํฉ๋๋ค. * feat: Icon์ด ์์ ์์ disabled ์ผ์ด์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: BlockButton์ Interaction์ motion๊ณผ duration์ ์ถ๊ฐํฉ๋๋ค. * refactor: LabelButton์ disabled ์์ฑ์ ์ฃผ์ ํฉ๋๋ค. * move: ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ Interaction ๊ด๋ จ ๊ฐ์ฒด๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * feat: LabelButton์ Interaction์ isInversed ์์๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: LabelButton์ Interaction์ duration๊ณผ motion์ ์ถ๊ฐํฉ๋๋ค. * feat: LabelButton์ Interaction์ scale์ ์ฃผ์ ํฉ๋๋ค. * feat: ์์ ๋ LabelButton์ ์คํ ๋ฆฌ๋ถ์ ๋ฐ์ํฉ๋๋ค. * feat: LabelButton์ Interaction ์ฃผ์ ์ ์ํ peer ์์ฑ์ ์ถ๊ฐํฉ๋๋ค. * rename: ๋ฒํผ ์ปดํฌ๋ํธ๋ค์ ์คํ ๋ฆฌ๋ถ ๋ค์ด๋ฐ์ ์ปดํฌ๋ํธ ์ด๋ฆ๊ณผ ํต์ผํฉ๋๋ค. * feat: SnackBar ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: SnackBar ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * feat: LabelButton์ children์ ์ต์ ๋๋ก ์์ ํฉ๋๋ค. * feat: LabelButton์์ ์์ด์ฝ๋ง ์๋ ์คํ ๋ฆฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: onAction props๋ฅผ ์ต์ ๋์์ ํ์๋ก ๋ณ๊ฒฝํฉ๋๋ค. * Fix: ์ธํฐ๋ ์ ์ฌ๊ตฌํ 3์ฐจ (#60) * feat: ์ธํฐ๋ ์ ์คํ์ผ ๋ค์ ์์ฑ * feat: global.css์ interaction.css ๋ฑ๋ก * remove: ๊ธฐ์กด ์ธํฐ๋ ์ ์ปดํฌ๋ํธ, ์คํ ๋ฆฌ๋ถ, ์คํ์ผ ํ์ผ ์ญ์ * fix: ๊ธฐ์กด ์ธํฐ๋ ์ ์ ์ฉ๋์ด์๋ ์ปดํฌ๋ํธ์ ์๋ก์ด ์ธํฐ๋ ์ ์คํ์ผ ์ ์ฉ * feat: transition-faster-fluent ์คํ์ผ ์ ์ * refactor: transition-faster-fluent ๊ณตํต์ผ๋ก ๋ค์ด๊ฐ๋ ๊ณณ์ ์ ์ฉ * fix: Variant, Density ํ์ ์์ฑํ์ฌ eslint ์๋ฌ ํด๊ฒฐ * feat: Header, Footer ๊ด๋ จ ์ปดํฌ๋ํธ ๊ตฌํ ๋ฐ Layout ์ ์ฉ (#56) * feat: Header, Footer ์ปดํฌ๋ํธ ์์ฑ * feat: Layout ์ปดํฌ๋ํธ ์์ฑ * feat: ๋ ์ด์์ ๋ผ์ฐํฐ ์ค์ * feat: Logo ์ปดํฌ๋ํธ ๊ตฌํ * feat: NavigationItem ์ปดํฌ๋ํธ ๊ตฌํ * feat: /project, /activity ๋ผ์ฐํฐ ์์ฑ ๋ฐ pathName ํ์ ์์ฑ * feat: NavigationItem path์ ๋ฐ๋ผ UI ๋ณ๊ฒฝ * feat: Navigation ์ปดํฌ๋ํธ ๊ตฌํ * feat: Header ๊ตฌํ * fix: NewTabLink ์ปดํฌ๋ํธ children ํ์ ReactNode๋ก ๋ณ๊ฒฝ * feat: Footer ์ปดํฌ๋ํธ ๊ตฌํ * chore: footer ์ฉ ์ ํ๋ธ svg ์์ฑ * fix: Navigation ์ปดํฌ๋ํธ ์๋ฉํฑ ํ๊ทธ ํ์ฉ * feat: PageContainer ์์ฑ - page ์ปดํฌ๋ํธ๋ค์ ๋์ด, ๋ฐฐ๊ฒฝ์ ์ง์ * refactor: NavigationItem button props ์ ๊ฑฐ ๋ฐ disabled props ์ถ๊ฐ * move: PathName ํ์ NavigationItem.tsx๋ก ์ด๋ * feat: Navigation Logo ํ ์ด๋ ๊ธฐ๋ฅ ๊ตฌํ ๋ฐ focus-visible ์คํ์ผ ์ง์ * feat: Footer์ ์ ํธ ์๊ฐ ๋ฌธ๊ตฌ ๋ฐ ์ด๋ฉ์ผ ์์ํ * rename: Footer, Header, Layout, PagesContainer ํ์ผ ์์น ์์ * fix: NavigationItem์ PathName ํ์ ์์ * feat: Footer, Navigation, NavigationItem ์ปดํฌ๋ํธ ์คํ ๋ฆฌ๋ถ ์์ฑ * fix: router Layout import ๊ฒฝ๋ก ์์ * fix: faq ํ์ด์ง mainํ๊ทธ->sectionํ๊ทธ๋ก ๋ณ๊ฒฝ * feat: Logo ์คํ ๋ฆฌ๋ถ ์์ฑ * remove: Logo ์คํ ๋ฆฌ๋ถ ๋ถํ์ํ ์ฝ๋ ์ ๊ฑฐ * fix: Navigation ์คํ ๋ฆฌ๋ถ ์คํ ๋ฆฌ ์์ * rename: ject.ts -> footer.ts ๋ก ํ์ผ๋ช ๋ณ๊ฒฝ * feat: ๋ค๋น๊ฒ์ด์ PathName ํ์ ์์ฑ * fix: ์์ฑํ PathName ํ์ ์ ์ฉ * feat: footer.ts ์์ ์ํฌํธ ๊ฒฝ๋ก ์์ * feat: PATH ๋ค์ ์์ํ * feat: PathKeys, PathValues ํ์ ์์ฑ * refactor: PATH ์์ ์ ์ฉ * fix: NavigationItem pathName ํ์ PathValues ๋ก ์ง์ * remove: ๋ถํ์ํ์ผ ์ญ์ * fix: NavigationItem, button -> NavLink ํ๊ทธ๋ก ๋ณ๊ฒฝ ๋ฐ ์ธํฐ๋ ์ ์ฌ์ ์ฉ * fix: NavigationItem className ๋์ด์ฐ๊ธฐ ์ถ๊ฐ * feat: NavigationItem disabled ์ํ ํ๊ทธ ์ ๊ฑฐ * refactor: Card ๋ฐ Post ์ปดํฌ๋ํธ Interaction ์ฃผ์ (#55) * refactor: Card ์ปดํฌ๋ํธ์ ์ต์์ ํ๊ทธ๋ฅผ button์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. * feat: Card ์ปดํฌ๋ํธ์ Interaction์ ์ฃผ์ ํฉ๋๋ค. * refactor: Card ์ปดํฌ๋ํธ์ disabled ์์ฑ์ ์ถ๊ฐํฉ๋๋ค. * refactor: Card ์ปดํฌ๋ํธ์ ์ฌ์ง์ด ์ถ๋ ฅ๋๋ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. * feat: Card ์ปดํฌ๋ํธ์ imageContainer์ ํ๋จ border์ ์ถ๊ฐํฉ๋๋ค. * feat: ์คํ ๋ฆฌ๋ถ์ disabled์ ์ฌ๋ก๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: disabled์ ์ ๋ฌด์ ๋ฐ๋ผ cursor ์ด๋ฒคํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: Card ์ปดํฌ๋ํธ์ disabled ๊ธฐ๋ณธ ์ต์ ์ ์ถ๊ฐํฉ๋๋ค. * refactor: Post ์ปดํฌ๋ํธ์ disabled ์์ฑ์ ์ถ๊ฐํฉ๋๋ค. * fix: ์๋ชป์ ์ฉ๋ Interaction์ duration์ ์์ ํฉ๋๋ค. * feat: Post ์ปดํฌ๋ํธ์ Interaction์ ์ฃผ์ ํฉ๋๋ค. * feat: Post ์ปดํฌ๋ํธ์ Pointer ์ด๋ฒคํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: Post ์ปดํฌ๋ํธ์ ์ค์ ์ฌ์ฉ ์์์ disabled ์ผ์ด์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: ์คํ์ผ๋ง์ ๋ด๋ถ clsx๋ก ํต์ผํ์ฌ ๊ด๋ฆฌํฉ๋๋ค. * refactor: ์ต์์ button ํ๊ทธ๋ฅผ a ํ๊ทธ๋ก ์์ ํฉ๋๋ค. * feat: ํ ์คํธ๊ฐ ํํ๋๋ ๋ถ๋ถ์ truncate ํด๋์ค๋ฅผ ์ฃผ์ ํฉ๋๋ค. * refactor: Label์ Title ์ปดํฌ๋ํธ์ ์คํ์ผ์ ์ค๋ฒ๋ผ์ด๋ฉ ํ ์ ์๋ ์์๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: Card ์ปดํฌ๋ํธ์ ํ ์คํธ ์์๋ค์ด ์ค๋ฒํ๋ก์ฐ ์ ๋ง์ค์ํ ์ฒ๋ฆฌ๋ฅผ ํฉ๋๋ค. * fix: ์๋ชป ์ ์ฉ๋ border์ ์์ ํฉ๋๋ค. * refactor: Post ์ปดํฌ๋ํธ์ ์ต์์ ํ๊ทธ๋ฅผ a ํ๊ทธ๋ก ๋ณ๊ฒฝํฉ๋๋ค. * refactor: Post ์ปดํฌ๋ํธ์์ ์๋ชป ์ ์ฉ๋ ์คํ์ผ๋ง์ ์์ ํฉ๋๋ค. * feat: Post ์ปดํฌ๋ํธ์ args๋ฅผ ์ฃผ์ ํ์ฌ Default ์ผ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค. * refactor: Post ์ปดํฌ๋ํธ์ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๊ณ , ๋ง์ค์ํ ์ฒ๋ฆฌ๊ฐ ๋ ์ ์๋๋ก ํฉ๋๋ค. * move: disabled ์ ์ ์ธ๋ ๋ถํ์ํ ์์ฑ์ ์ ๊ฑฐํฉ๋๋ค. * refactor: Card ์ปดํฌ๋ํธ์ ์ต์์ ํ๊ทธ๋ฅผ Link ํ๊ทธ๋ก ๋ณ๊ฒฝํฉ๋๋ค. * refactor: Card ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ MemoryRouter์ ์ฃผ์ ํ To ๊ธฐ๋ณธ ์ค์ ์ ์ถ๊ฐํฉ๋๋ค. * refactor: ๋ฎ์ด์์์ง๋ block ์์๋ฅผ ์ ๊ฑฐ ํ className์ผ๋ก๋ง ์คํ์ผ์ ์ฌ์ค์ ํฉ๋๋ค. * refactor: ๋ด์ฉ ํ๋์ height๋ฅผ ์ฌ์ฃผ์ ํฉ๋๋ค. * refactor: Post ์ปดํฌ๋ํธ์์ ๋ฎ์ด์์์ง๋ block ์์๋ฅผ ์ ๊ฑฐ ํ className์ผ๋ก๋ง ์คํ์ผ์ ์ฌ์ค์ ํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๊ฒ๋ date props๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * refactor: Post ์ปดํฌ๋ํธ์ ์์ ๋ ๊ตฌ์กฐ๋ฅผ ๋ฐ์ํฉ๋๋ค. * feat: a ํ๊ทธ์ ์ ํฉํ ๊ธฐ๋ณธ target๊ณผ rel์ ์ถ๊ฐํฉ๋๋ค. * feat: Post ์ปดํฌ๋ํธ์ ๊ธฐ๋ณธ target๊ณผ rel ์ค์ ์ ๋ํ ์ค๋ช ์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * feat: Post ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ href๋ฅผ ์ฌ์ฉํ๋ ์ผ์ด์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: Title ์ปดํฌ๋ํธ ๊ตฌ์กฐ๋ฅผ ๋จ์ํํฉ๋๋ค. * refactor: Label ์ปดํฌ๋ํธ ๊ตฌ์กฐ๋ฅผ ๋จ์ํํ๊ณ className props๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * refactor: Interaction ์ปดํฌ๋ํธ๋ฅผ ์ ๊ฑฐํ๊ณ , className์ผ๋ก ๋ง์ค์ํ ์ฒ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. * feat: ์์ฃผ ์ฌ์ฉ๋๋ interaction์ ์ผ์ด์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: ์์ ๋ Interaction์ Post์ ์ฌ์ ์ฉํฉ๋๋ค. * fix: ์์ ๋ interaction์ ๋ค์ด๋ฐ์ ์ ์ฉํฉ๋๋ค. * refactor: ์์ ๋ Interaction์ Card ์ปดํฌ๋ํธ์ ์ ์ฉํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๋ className์ ์ ๊ฑฐํฉ๋๋ค. * refactor: focus ํจ๊ณผ๋ ํค๋ณด๋ ์ฌ์ฉ์์๊ฒ๋ง ๋ํ๋ฉ๋๋ค. * feat: Role ์ปดํฌ๋ํธ ๊ตฌํ (#63) * feat: ์ด๋ฏธ์ง asset์ png ํํ๋ก ์ถ๊ฐํฉ๋๋ค. * feat: Badge ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: Badge ์ปดํฌ๋ํธ์ storybook์ ์ถ๊ฐํฉ๋๋ค. * feat: Role ์ปดํฌ๋ํธ ์ค Hero๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: Hero ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * fix: ์คํ ๋ฆฌ๋ถ์ title์ ์ค๋ณต๋์ง ์๊ฒ ์์ ํฉ๋๋ค. * fix: props์ ๋ค์ด๋ฐ์ ์ง๊ด์ ์ผ๋ก ์์ ํฉ๋๋ค. * refactor: ๋จ์ํ ์คํ์ผ์ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด ํ์์ผ๋ก ์์ ํฉ๋๋ค. * rename: ๊ณตํต๋ ์ด๋ฆ์ ๊ฐ์ง Badge๋ฅผ RoleBadge๋ก ๋ค์ด๋ฐ์ ์์ ํฉ๋๋ค. * rename: ๊ณตํต๋ ์ด๋ฆ์ ๊ฐ์ง Hero๋ฅผ RoleHero๋ก ๋ค์ด๋ฐ์ ์์ ํฉ๋๋ค. * refactor: img์ alt ๋ค์ด๋ฐ์ ์ง๊ด์ ์ผ๋ก ์์ ํฉ๋๋ค. * refactor: ์ต์์ div์ ์คํ์ผ์ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด ํํ๋ก ๋ณ๊ฒฝํฉ๋๋ค. * move: ๋ถํ์ํ import ๋ฌธ์ ์ ๊ฑฐํฉ๋๋ค. * move: ๋ถํ์ํ import ๋ฌธ์ ์ ๊ฑฐํฉ๋๋ค. * refactor: ์ปดํฌ๋ํธ ๋ฐฐ๊ฒฝ์ ๋ฐ์๋ opacity๋ฅผ ๋ฐ์ํฉ๋๋ค. * refactor: ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋๋ ํ์ ์ ๋ถ๋ฆฌํฉ๋๋ค. * fix: opacity ์คํ์ผ ์ ์ฉ ๋ฐฉ์์ ๋ณ๊ฒฝํฉ๋๋ค. * feat: dialog ์ปดํฌ๋ํธ ๊ตฌํ (#61) * feat: Dialog ์ปดํฌ๋ํธ ๊ตฌํ * feat: useDialog ํ ์์ฑ * feat: Dialog ์คํ ๋ฆฌ๋ถ ์์ฑ * remove: ๋ถํ์ํ index.ts ํ์ผ ์ญ์ * refactor: useDialog useState ํ์ ๋ช ์ ์ ๊ฑฐ * fix: props ๋ค์ด๋ฐ ๋ณ๊ฒฝ ๋ฐ btnLayout์ ๋ฐ๋ฅธ ๋ฒํผ ์์น ์์ + ์คํ ๋ฆฌ๋ถ ์์ * feat: Dialog BlockButton className ์ ๊ฑฐ * chore: favicon ์ค์ (#58) * chore: ํ๋น์ฝ png ์ถ๊ฐ * chore: index.html ํ๋น์ฝ ์ค์ * feat: ์์ด์ฝ ์ถ๊ฐ (#74) * chore: ์๋ก์ด ์์ด์ฝ svg ํ์ผ 6๊ฐ ์ถ๊ฐ * feat: ์์ด์ฝ ์ปดํฌ๋ํธ์ ์๋ก์ด ์์ด์ฝ ์ถ๊ฐ * feat: ์์ด์ฝ ์คํ ๋ฆฌ๋ถ ์ ๋ฐ์ดํธ (์๋ก์ด ์์ด์ฝ 6๊ฐ ์ถ๊ฐ) * fix: HeroIndex ์ปดํฌ๋ํธ ์์ (#80) * fix: HeroIndex์ Badge ๋ฐฐ๊ฒฝ์์/ํฐํธ์์ ์ฃผ์ ๊ฐ๋ฅํ๋๋ก props ์์ * feat: HeroIndex ์คํ ๋ฆฌ๋ถ ์์ฑ ์์ * feat: ํ๋ ํ์ด์ง UI ๊ตฌํ (#77) * feat: ํ๋ ํ์ด์ง router ์ค์ * feat: ์์ ๋ฐ์ดํฐ ์ด์ฉํ์ฌ Activity ํ์ด์ง UI ๊ตฌํ * feat: Toast ๊ตฌํ (#67) * feat: toastStore ์์ฑ * feat: Toast ์ปดํฌ๋ํธ ๊ตฌํ ๋ฐ toast ์ ๋๋ฉ์ด์ ์ ์ * feat: useToast ํ ์์ฑ * feat: Toast, useToast ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: Layout์ Toast ์ปดํฌ๋ํธ ์ถ๊ฐ * refactor: ToastType bg -> backgroundColor๋ก ๋ค์ด๋ฐ ์์ * refactor: Toast ์ปดํฌ๋ํธ useState ํ์ ์ถ๋ก ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ * refactor: Toast className clsx ์ฌ์ฉ * remove: useToast ์ญ์ * fix: useToast -> useToastActions ์ฌ์ฉ์ผ๋ก ์คํ ๋ฆฌ๋ถ ์์ * feat: toastStore ์คํ๋ ๋ ์ฐ์ฐ์ ์ฌ์ฉ์ผ๋ก ๋ถ๋ณ์ฑ ์งํค๊ธฐ * refactor: animation.css ์์ฑ ๋ฐ ์ ๋๋ฉ์ด์ ๊ด๋ จ css ์ฝ๋ ๋ถ๋ฆฌ * feat: ๋ฉ์ธํ์ด์ง UI ๊ตฌํ (#78) * feat: ์ ๋๋ฉ์ด์ ๋ถ๋ถ์ ์์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: Main ํ์ด์ง์ ํ์ ๊ตฌํํฉ๋๋ค. * feat: ์ ๋๋ฉ์ด์ ์ด ๋ค์ด๊ฐ๋ ๋ถ๋ถ์ ์ปดํฌ๋ํธํํฉ๋๋ค. * feat: AnimatedSection์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * chore: gsap ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํฉ๋๋ค. * refactor: gsap๋ฅผ ์ด์ฉํด ์ ๋๋ฉ์ด์ ์ ์ฌ๊ตฌ์ฑํฉ๋๋ค. * feat: AnimatedSection์ ๋ฉ์ธํ์ด์ง์ ์ ์ฉํฉ๋๋ค. * feat: ๋ฉ์ธํ์ด์ง๋ฅผ ๋ผ์ฐํธ์ ์ถ๊ฐํฉ๋๋ค. * feat: ๋ฉ์ธํ์ด์ง์ ๋๋ฒ์งธ ์น์ ์ ๊ตฌํํฉ๋๋ค. * refactor: HeroIndex์ width์ 100%๋ฅผ ๋ถ์ฌํฉ๋๋ค. * refactor: CalloutNumerical์ width์ 100%๋ฅผ ๋ถ์ฌํฉ๋๋ค. * feat: ๋ฉ์ธํ์ด์ง์ ์ธ๋ฒ์งธ section์ ๊ตฌํํฉ๋๋ค. * feat: ๊ณตํต์ ์ผ๋ก ์ ์ฉ๋๋ ํ๋ ์์ className์ ์์ํํฉ๋๋ค. * feat: Tab ์ปดํฌ๋ํธ์ cursor pointer ์คํ์ผ์ ์ถ๊ฐํฉ๋๋ค. * feat: ๋ฉ์ธํ์ด์ง์ ๋ค๋ฒ์งธ section์ ๊ตฌํํฉ๋๋ค. * refactor: Hero ์ปดํฌ๋ํธ์ content๋ฅผ children ํํ๋ก ๋ฐ๋๋ก ์์ ํฉ๋๋ค. * refactor: HeroIndex ์ปดํฌ๋ํธ์ content๋ฅผ children ํํ๋ก ๋ฐ๋๋ก ์์ ํฉ๋๋ค. * feat: ๋ฉ์ธํ์ด์ง์ ๋ง์ง๋ง section์ ๊ตฌํํฉ๋๋ค. * refactor: ์์ ๋ HeroIndex ์ปดํฌ๋ํธ์ props ๊ตฌ์กฐ๋ฅผ ๋ฐ์ํฉ๋๋ค. * move: ๋ถํ์ํ import ๋ฌธ์ ์ ๊ฑฐํ๊ณ ์ ๋ ฌํฉ๋๋ค. * rename: ๊ณตํต wrapper์ ์คํ์ผ ๋ช ์นญ์ ์ง๊ด์ ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. * refactor: Hero ์ปดํฌ๋ํธ๊ฐ badge์ ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ ์ํํ๋๋ก ์์ ํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๋ badgeText props ๊ฐ์ ์ ๊ฑฐํฉ๋๋ค. * fix: ์ ๋๋ฉ์ด์ ์ ์ํ section์ ์คํ์ผ์ ์๊ตฌ์ฌํญ์ ๋ง์ถฐ ๋ณ๊ฒฝํฉ๋๋ค. * feat: ๋ฉ์ธํ์ด์ง์ scroll ์คํ์ผ์ ์ถ๊ฐํฉ๋๋ค. * feat: ๋ฉ์ธ ํ์ด์ง์ ์คํฌ๋กค ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: ์คํฌ๋กค ํธ๋ฆฌ๊ฑฐ ์งํ ์ context๋ฅผ ์ด์ฉํด ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ต์ํํฉ๋๋ค. * refactor: ๋๋ฉ ํ์ด์ง ์ ๋๋ฉ์ด์ ์ด ํ๊ธ์ ์ฉ ํ์ดํ ๋๋๋ก ์์ ํฉ๋๋ค. * feat: ํ์๋ผ์ธ section์ ํ์ํ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค. * feat: ํ์๋ผ์ธ section์ ๊ตฌ์กฐ ๋ถํด ํ ๋น์ ์ด์ฉํ์ฌ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋งคํํฉ๋๋ค. * fix: ์๋ชป ๋ฐ์๋ RoleHero์ ๋์์ธ์ ์์ ํฉ๋๋ค. * feat: ํฌ์ง์ section์ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค. * feat: ํฌ์ง์ section์ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐ ๋ถํด ํ ๋น์ผ๋ก ๋งคํํฉ๋๋ค. * fix: Hero ์ปดํฌ๋ํธ์ ์๋ชป ์ ์ฉ๋ ์คํ์ผ์ ์์ ํฉ๋๋ค. * feat: ํต์ฌ ๊ฐ์น section์ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค. * feat: ํต์ฌ ๊ฐ์น section ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐ ๋ถํด ํ ๋น์ผ๋ก ๋งคํํฉ๋๋ค. * fix: HeroIndex์ ์๋ชป ์ ์ฉ๋ padding ๊ฐ์ ์์ ํฉ๋๋ค. * move: ๋ถํ์ํ ์ฃผ์์ ์ ๊ฑฐํฉ๋๋ค. * feat: Title์ ์ผ๋ถ๋ถ์ accent ์์์ ์ฃผ์ ํฉ๋๋ค. * fix: ์๋ชป ์ ์ฉ๋ ์คํ์ผ์ ์์ ํฉ๋๋ค. * fix: ์๋ชป ์ ์ฉ๋ ์คํ์ผ์ ์ฌ์์ ํฉ๋๋ค. * fix: ๋ถํ์ํ fragment๋ฅผ ์ ๊ฑฐํ๊ณ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋จ์ํํฉ๋๋ค. * feat: ๊ฐ์ฒด ๋ฐ์ดํฐ์ ํ์ ์ ๊ตฌ์ฒดํํฉ๋๋ค. * move: ๋ถํ์ํ๊ฒ ์ ์ฉ๋ ์คํ์ผ์ ์ ๊ฑฐํฉ๋๋ค. * feat: section์ ๋ทฐํฌํธ๋ฅผ dvh๋ก ์ฌ์ ์ํฉ๋๋ค. * feat: ์คํฌ๋กค ๊ฐ๋ฅํ ์์์ ์คํฌ๋กค ๋ฐ๋ฅผ ํ์ํ์ง ์๋ global ์คํ์ผ์ ์ถ๊ฐํฉ๋๋ค. * refactor: ์คํฌ๋กค ์ ๋๋ฉ์ด์ ๋์ ์ ๊ธฐ๋ณธ ์คํฌ๋กค์ ๋นํ์ฑํํ๋๋ก ๊ตฌ์กฐ๋ฅผ ์์ ํฉ๋๋ค. * feat: gsap ํ๋ฌ๊ทธ์ธ์ ์ง์ ์ ์ main.tsx๋ก ์ค์ ํฉ๋๋ค. * refactor: context๋ฅผ ์ด์ฉํด context ๋ด๋ถ section์ ๋ํด์๋ง ์ ๋๋ฉ์ด์ ์ฒ๋ฆฌ๋ฅผ ์ํํฉ๋๋ค. * feat: ํ๋จ์์ ์๋จ์ผ๋ก ์ฌ๋ผ๊ฐ๋ ์คํฌ๋กค ์ ๋๋ฉ์ด์ ์ ์ถ๊ฐํฉ๋๋ค. * feat: ๊ฐ์ฒด ๋ฐ์ดํฐ์ ๋ฑ์ง ์คํ์ผ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: HeroIndex์ ๋ฑ์ง ์คํ์ผ์ ์ถ๊ฐํฉ๋๋ค. * move: ์ ๋๋ฉ์ด์ ๋๋ฒ๊น ์ ์ํ marker ์ต์ ์ ์ ๊ฑฐํฉ๋๋ค. * move: ์๋จ ์คํฌ๋กค ์ ๋๋ฉ์ด์ ๋๋ฒ๊น ์ ์ํ marker ์ต์ ์ ์ ๊ฑฐํฉ๋๋ค. * feat: apply-3 ํ์ด์ง ๋ฐ ์ง์ ์๋ฃ ํ์ด์ง UI ๊ตฌํ (#81) * feat: ์ง์ ๊ณผ์ ํ์ด์ง PATH ์ถ๊ฐ * feat: ์ง์ ๊ณผ์ ํ์ด์ง๋ค router ์ค์ * feat: ์ง์ ๊ด๋ จ ํ์ด์ง์ ํ์ดํ ๋ฌธ๊ตฌ APPLY_TITLE ๊ฐ์ฒดํ ๋ฐ ์ ์ฉ - ํ์ผ๋ช applyData -> applyPageData๋ก ๋ณ๊ฒฝ * rename: faqData -> faqPageData๋ก ํ์ผ๋ช ์์ ๋ฐ ์ํฌํธ ์์ * feat: ์ง์ ๊ด๋ จ ํ์ด์ง ๋ด ์ฌ์ฉ๋๋ ๋ฉ์์ง ์์ํ * feat: ์ง์ ์๋ฃ ํ์ด์ง UI ๊ตฌํ * remove: ์ง์ ์๋ฃํ์ด์ง ๋ถํ์ํ ๋ฒํผ className ์ญ์ * feat: apply-3 ํ์ด์ง UI ๊ตฌํ (์ด๋ฆ, ์ ํ๋ฒํธ ์ ๋ ฅ ํ์ด์ง) * feat: apply-3 ํ์ด์ง router์ ์ปดํฌ๋ํธ ์ถ๊ฐ * fix: ApplyComplete ๋ฒํผ className w-full ์ถ๊ฐ * refactor: ApplyApplicationInfo ์ปดํฌ๋ํธ css ์์ * refactor: ApplyComplete ํ์ด์ง css ์์ ๋ฐ Link -> navigate ์ฌ์ฉ * refactor: ApplyApplicationInfo ํ์ด์ง Link -> navigate ์ฌ์ฉ * fix: ์ง์ ์๋ฃ ํ์ด์ง ์ปจํ ์ธ ์ค์ ์ ๋ ฌ * fix: ProgressIndicator key๊ฐ ์ถ๊ฐ * fix: APPLY_HELPER_MESSAGE ๋ค์ด๋ฐ ๋ฐฉ์ ํต์ผ * fix: APPLY_MESSAGE ๊ตฌ์กฐ ๋ฐ ๋ฌธ๊ตฌ ์์ * refactor: ApplyComplete ์ปดํฌ๋ํธ ๋ด์ฉ๊ธ ๋ฐ ๋ฒํผ ๋ฌธ๊ตฌ ์์ํ * feat: File, Uploader ์ปดํฌ๋ํธ ๊ตฌํ (#76) * feat: validateFileType util ํจ์ ์์ฑ * feat: file ํ์ฅ์ ๋ฐ fileMine ๊ฐ์ฒด ์์ฑ * feat: changeFileSizeUnit util ํจ์ ์์ฑ * feat: TextArea ์ปดํฌ๋ํธ outline-none ํด๋์ค ์ถ๊ฐ * fix: InputArea ์ปดํฌ๋ํธ w-full ๋ก ๋ณ๊ฒฝ * feat: Uploader ์ปดํฌ๋ํธ ๊ตฌํ ๋ฐ ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: File ์ปดํฌ๋ํธ ๊ตฌํ ๋ฐ ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: InputFile ์ปดํฌ๋ํธ(File+Uploader) ๊ตฌํ ๋ฐ ์คํ ๋ฆฌ๋ถ ์์ฑ * fix: inputFile -> InputFile ํ์ผ๋ช ๋ณ๊ฒฝ ๋ฐ file ํ์ ์ ๋ฐ๋ผ key๊ฐ ์ฒ๋ฆฌ * feat: InputFile ์คํ ๋ฆฌ๋ถ ์์ * refactor: File openFile ํจ์ ์ฝ๋ ์์ (if๋ฌธ ๋์ ์ผํญ์ฐ์ฐ์ ์ฌ์ฉ) * fix: File ์ปดํฌ๋ํธ์ deleteHandler event ํ์ ์์ * remove: ๋ถํ์ํ ์ฝ๋ ์ ๊ฑฐ * feat: fileUrl ํ์ ์ถ๊ฐ * fix: fileUrl ํ์ ๋๋ฌธ์ ์์์ผ๋ก ์์ * feat: File ์ปดํฌ๋ํธ CDN URL๋ง ๋ฐ๋ ๊ฑธ๋ก ์์ * fix: InputFile๋ CDN URl ๋ง ๋ฐ๋๋ก ์์ * fix: Uploader disabled ์ํ ์์ ๋ฐ ๊น๋ฐ์ ํ์ ํด๊ฒฐ + ์ค๋ณต ์ฝ๋ ์ ๋ฆฌ * feat: Uploader disabled ์คํ ๋ฆฌ ์ถ๊ฐ * style: File ์ปค์ํฌ์ธํฐ ์ถ๊ฐ * docs: File ์คํ ๋ฆฌ๋ถ ์ ๋ฐ์ดํธ * feat: InputFile UI ์ ๋ฐ์ดํธ (๋ ์ด๋ธ ๋ฐ ์ฉ๋ ํ๊ธฐ ์ถ๊ฐ) * feat: feedback ํ์ ์ File ์ปดํฌ๋ํธ ์ถ๊ฐ * fix: feedback ํ์ File cursor pointer ์ ๊ฑฐ * fix: Uploader ์ปดํฌ๋ํธ ํ์ฅ์ ๊ฒ์ฆ ๋ก์ง ์ ๊ฑฐ ํ์ฅ์ ๊ฒ์ฆ์ File ์ปดํฌ๋ํธ ๋ ๋๋ง ํ์ด๋ฐ์ ์ํ * fix: InputFile์์ File ์ปดํฌ๋ํธ ์ ๊ฑฐ File ์ปดํฌ๋ํธ๋ children์ผ๋ก ๋ฐ๋๋ก ์์ * refactor: fileStyle ๋ถ๋ฆฌ * fix: FileUrl id ํ์ string์ผ๋ก ๋ณ๊ฒฝ * design: useState์ <boolean> ์ญ์ * refactor: maxSize ์ด๊ธฐ๊ฐ ์ญ์ * feat: ํ๋ก์ ํธ, ํ๋ก์ ํธ ์์ธํ์ด์ง ๊ตฌํ (#84) * feat: ํ๋ก์ ํธ ํ์ด์ง ํ์ ์์ฑํฉ๋๋ค. * feat: ํ๋ก์ ํธ ํ์ด์ง๋ฅผ ๋ผ์ฐํฐ์ ์ถ๊ฐํฉ๋๋ค. * feat: ํ๋ก์ ํธ์ ํด์ปคํค์ ์ํ ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํฉ๋๋ค. * feat: ํ๋ก์ ํธ ํ๊ธฐ section์ ๋๋ฏธ ๋ฐ์ดํฐ๋ก ํผ๋ธ๋ฆฌ์ฑ ํฉ๋๋ค. * feat: ํ๋ก์ ํธ ์์ธ ํ์ด์ง์ ํ์ ์์ฑํฉ๋๋ค. * feat: ํ๋ก์ ํธ ์์ธ ํ์ด์ง์ ๊ฒฝ๋ก๋ฅผ router์ ์ถ๊ฐํฉ๋๋ค. * refactor: CalloutInformation ์ปดํฌ๋ํธ์ ์ต์์ ํ๊ทธ์ w-full์ ์ ์ฉํฉ๋๋ค. * feat: ํ๋ก์ ํธ ์์ธํ์ด์ง์ ํ๋ฉด์ ๋๋ฏธ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด ํผ๋ธ๋ฆฌ์ฑํฉ๋๋ค. * feat: ํ๋ก์ ํธ ํ์ด์ง์ ๋ฒํผ ํ ์คํธ๋ฅผ ๊ธฐ์ ํฉ๋๋ค. * fix: ์๋ชป ์ ์ฉ๋ ๋ฒํผ ์์ด์ฝ์ ์คํ์ผ์ ์์ ํฉ๋๋ค. * fix: content๋ฅผ ๊ฐ์ธ๋ wrapper์ ๋์ด๋ฅผ ๊ณ ์ ๊ฐ์ด ์๋ ์ต์ ๊ฐ์ผ๋ก ์์ ํฉ๋๋ค. * feat: ํด์ปคํค ํ์ด์ง ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: ๊ฒฝ๋ก ํธ์ถ์ ์์ํ๋ ๊ฒฝ๋ก๋ก ๋ณ๊ฒฝํฉ๋๋ค. * design: grid ๋์ flex-col ์ฌ์ฉํ์ฌ ๋จ์ผ column ๋ ์ด์์์ผ๋ก ํฉ๋๋ค. * fix: router์ import order์ eslint ์ค์ ์ ๋ง๊ฒ ์์ ํฉ๋๋ค. * design: ๋ ์ด์์์ ์ต์ ํฌ๊ธฐ๋ฅผ ์๊ตฌ์ฌํญ์ ๋ง์ถฐ ์ ๊ฑฐํฉ๋๋ค. * refactor: TabItem์ props ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝ ํ disabled ์์ฑ์ ์ฃผ์ ํฉ๋๋ค. * refactor: type์ผ๋ก ์ ์ธ๋ props๋ฅผ interface ๊ตฌ์กฐ๋ก ํต์ผํฉ๋๋ค. * feat: TabItem์ ๋นํ์ฑํ ์์๊ณผ ํฌ์ธํฐ ์ด๋ฒคํธ ์ ์ด๋ฅผ ๋ฐ์ํฉ๋๋ค. * feat: ํด์ปคํค Tab์ disabled์ ์ฃผ์ ํฉ๋๋ค. * feat: ํ๋ก์ ํธ ์์ธ ํ์ด์ง์ Select ์ปดํฌ๋ํธ๋ฅผ ์ ์ฉํฉ๋๋ค. * fix: ์ธํฐ๋ ์ focus-visible ํจ๊ณผ ๋ํ๋ ๋ border๊ฐ ๋ณด์ด์ง ์๋ ๋ฒ๊ทธ ํด๊ฒฐ (#89) * fix: focus-visible ํจ๊ณผ ๋ํ๋ ๋ border์ด ๋ณด์ด์ง ์๋ ๋ฒ๊ทธ ํด๊ฒฐ * fix: scale ๊ณ ๋ คํ interaction ์คํ์ผ ์์ฑ * refactor: scale ์ธํฐ๋ ์ ์ด ํ์ํ ์ปดํฌ๋ํธ์ ์ ์ฉ (์์ฝ๋์ธ, ๋ผ๋ฒจ๋ฒํผ) * bug: ๋น๋ ํ์ผ ์์ฑ ๊ณผ์ ์์ ๋ฐ์ํ ์๋ฌ ์์ (#88) * refactor: BlockButton์ style props๋ช ์ ๊ธฐ๋ณธ button style๊ณผ ๋ช ํํ ๊ตฌ๋ถ ์ง์ต๋๋ค. * docs: ์์ ๋ props ์ด๋ฆ์ BlockButton ์คํ ๋ฆฌ ํ์ผ์ ๋ฐ์ํฉ๋๋ค. * docs: ์๋ชป ๊ธฐ์ ๋ size ๋ช ์นญ์ ๋ณ๊ฒฝํฉ๋๋ค. * docs: fileId ์ ๊ฐ์ file ํ์ ์์ ์ ์ธํ string ํ์ ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. * docs: snackBar์์ ๋๋ฝ๋ onaction props๋ฅผ ์คํ ๋ฆฌ ํ์ผ์ ์์ฑํฉ๋๋ค. * refactor: TabItem์ ์ธํฐํ์ด์ค ์ค id๋ฅผ ์ปค์คํ props๋ก ์ฌ๊ตฌ์ฑํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๋ import ๋ฌธ์ ์ ๊ฑฐํฉ๋๋ค. * docs: ์๋ชป ์ ์ธ๋ ์ปดํฌ๋ํธ ๋ค์ด๋ฐ์ ์์ ํฉ๋๋ค. * fix: ํ์ import ๊ฒฝ๋ก๋ฅผ ์ ๋๊ฒฝ๋ก์์ ์๋๊ฒฝ๋ก๋ก ๋ณ๊ฒฝํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๋ ๋ณ์๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * fix: BlockButton์ ์ธํฐํ์ด์ค ๋ช ์ ๊ธฐ์กด์ ์ด๋ฆ์ผ๋ก ์ฌ์์ ํฉ๋๋ค. * feat: apply-2 ํ์ด์ง UI ๊ตฌํ (#82) * feat: ApplyVerify ํ์ด์ง UI ๊ตฌํ * fix: InputField ํฌํผ๋ฉ์์ง ํฐํธ์์ ์กฐ๊ฑด๋ถ ์์ * refactor: Title ๊ฐ์ธ๋ div ํ๊ทธ ์ ๊ฑฐ * fix: ์๋ชป ์์ ๋ ๋ถ๋ถ ๋ณต๊ตฌ * fix: isExist -> isNewApplicant ๋ก ๋ณ์๋ช ๋ณ๊ฒฝ * refactor: ์ค์ฒฉ ์ผํญ์ฐ์ฐ์ ํํ ๋ณ๊ฒฝ * refactor: ์ค์ฒจ์ผํญ์ฐ์ฐ์ clsx ์ฌ์ฉ * refactor: ApplyVerify๋ฅผ ApplyVerifyEmail, ApplyVerifyPin ํ์ด์ง ์ปดํฌ๋ํธ๋ก ๋ถ๋ฆฌ * feat: Input ์ปดํฌ๋ํธ disabled ์ผ๋ text ์์ ์ถ๊ฐ * fix: NewTabLink className props์ผ๋ก ๋ฐ๋๋ก ์์ * feat: ๋น๋ฐ๋ฒํธ ์ฌ์ค์ ํ์ด์ง ์ฐ๊ฒฐ * feat: ๋น๋ฐ๋ฒํธ ์ฌ์ค์ ์ผ ๊ฒฝ์ฐ ์กฐ๊ฑด๋ถ ๋ ๋๋ง * fix: applyInfoList NewTabLink className ๋ฌ๊ธฐ * feat: ์ด๋ฉ์ผ ์ธ์ฆ ํ์ด์ง ๋ผ์ฐํฐ ์ค์ * fix: ์ด๋ฉ์ผ ์ธ์ฆ ํ์ด์ง PATH ์์ * remove: ApplyVerify ์ปดํฌ๋ํธ ์ญ์ * feat: APPLY_TITLE ๋น๋ฐ๋ฒํธ์ฌ์ค์ ํ์ด์ง ํ์ดํ ์ถ๊ฐ * feat: ์ง์ํ๊ธฐ ํ์ด์ง์์ ์ด๋ฉ์ผ ์ธ์ฆ ํ์ด์ง navigate ์ค์ * fix: ApplyApplicationInfo ์ปดํฌ๋ํธ isReady -> isStepCompleted ๋ณ์๋ช ์์ * fix: prop ์ ๋ฌ๋ฐ์ ๊ฐ์ผ๋ก ์ปดํฌ๋ํธ ๋ ๋๋ง ๋ถ๊ฐ๋ก ๋ฐฉ์ ๋ณ๊ฒฝ * fix: PATH ๋ณ์๋ช applyVerify๋ก ์ฌ์์ * remove: ๋ถํ์ํ ์ํฌํธ ์ญ์ * refactor: setter ์ ๊ฑฐ * refactor: Input isError ์ต์ ๋ ์ฒ๋ฆฌ * refactor: ์ํ ๋ ๋๋ง ๋ฌธ์ ๋ฐ์ ์ฐ๋ ค๋ก ApplyVerify ์ปดํฌ๋ํธ์์ ํ์ด์ง ์ปดํฌ๋ํธ ์กฐ๊ฑด๋ถ ๋ ๋๋งํ๋๋ก ์์ * refactor: Apply ํ์ด์ง ์ค main ํ๊ทธ -> sectionํ๊ทธ๋ก ๋ณ๊ฒฝ ๋ฐ ์ฌ์ฉํ์ง ์๋ form ํ๊ทธ์ action='' ์ ๊ฑฐ * refactor: email ๋๋ฏธ๋ฐ์ดํฐ ๋น๋ฌธ์์ด๋ก ๋ณ๊ฒฝ * refactor: useState ๋ถ๋ฆฌ์ธํ์ ์ง์ ์ ๊ฑฐ * refactor: ApplyVerify ์กฐ๊ฑด๋ถ ๋ฆฌํฉํ ๋ง * refactor: ApplyVerify ์ผํญ์ฐ์ฐ์ ์ฌ์ฉํ์ฌ return ํ๊ธฐ * feat: ์ง์์ ์์ฑ ํ์ด์ง UI ๊ตฌํ(apply-4) (#85) * feat: ApplyRegistration ํ์ด์ง ์์ฑ ๋ฐ select์ ๋ฐ๋ฅธ ๋ฌธํญ ๋ํ๋๋๋ก UI ๊ตฌํ * fix: InputArea ๊ณ ์ ๋ width ๊ฐ ์ ๊ฑฐ * refactor: TextArea ์ปดํฌ๋ํธ outline none ์ฒ๋ฆฌ ๋ฐ ์๋ ๋์ด ์กฐ์ ์ ์ํ row=1 ์ง์ * feat: ํ ์คํธ ์๋งํผ TextArea์ ๋์ด ์๋ ์กฐ์ ๊ธฐ๋ฅ ์ถ๊ฐ * feat: ApplyRegistration ํ์ด์ง ์ปดํฌ๋ํธ ๋ผ์ฐํฐ ๋ฑ๋ก * feat: ์๋ฌ์ผ ๊ฒฝ์ฐ TextArea border ์ฒ๋ฆฌ * feat: InputArea ํฌํผ๋ฉ์์ง ๊ธฐ๋ฅ ์ถ๊ฐ ๋ฐ ์๋ฌ์ผ ๊ฒฝ์ฐ ์คํ์ผ ์ฒ๋ฆฌ * refactor: ๋ถํ์ํ ์คํ์ผ ๋ฐ ํ๊ทธ ์ ๊ฑฐ * remove: console.log ์ ๊ฑฐ * feat: select ํค๋ณด๋ ์ ๋ ฅ์ผ๋ก ํฌ์ง์ ์ ํํ๊ธฐ ๋ฐ select outside ํด๋ฆญ ์ ๋ซํ๊ธฐ * feat: mergeRefs ์ ํธํจ์ ์์ฑ * feat: mergeRefs ์ ํธํจ์ ์ฌ์ฉํ์ฌ textareaRef, ref ๋ฐ๋๋ก ํจ * refactor: ApplyRegistration ์ฝ๋ ์ ๋ฆฌ * refactor: POSITIONS ๋ฐฐ์ด ์์ ์ฌ์ฉ * feat: Uploader ์ต๋ ๊ฐ๋ฅ ์ฉ๋๊ฐ ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋๋๋ก ํจ. * refactor: ApplyRegistration ์ปดํฌ๋ํธ ํ์ผ ๋๋ฏธ ๋ฐ์ดํฐ ์ฌ์ฉํ์ฌ InputFile ๊ตฌํ * refactor: InputFile File ์ปดํฌ๋ํธ ๋ฐฐ์ด์ ๋ฐ๋๋ก ์์ File ์ปดํฌ๋ํธ ๋ฆฌ์คํธ๋ค์ ๊ฐ์ธ๋ ์ปจํ ์ด๋ ํ๊ทธ๋ฅผ ์ผ์ผ์ด ์์ฑํ์ง ์๋๋ก InputFile์์ ์ด๋์ํค๊ธฐ ์ํจ. ์ถ๊ฐ๋ก ๋ฆฌ์คํธ๊ฐ ์์ ๊ฒฝ์ฐ์๋ง ์ปจํ ์ด๋ ํ๊ทธ๊ฐ ๋ํ๋๋๋ก ํ๊ธฐ ์ํด children ์์ฑ์ด ์๋ ๋ฐฐ์ด์ ๋ฐ๋๋ก ๋ณ๊ฒฝ. * refactor: ApplyRegistration์ ์์ ๋ InputFile ์ ์ฉ * refactor: InputArea errorHelper ์กฐ๊ฑด๋ถ ์์ * docs: InputArea ์คํ ๋ฆฌ๋ถ ์ ๋ฐ์ดํธ * docs: mergeRefs TSDoc ์ถ๊ฐ * fix: ์ง๊ตฐ ์ ํ ์ด๊ธฐ์๋ง ํค๋ณด๋ ์์ฑ ๊ฐ๋ฅํ ๋ฒ๊ทธ ์์ * fix: ApplyRegistration select ํค๋ณด๋ ํญ ์ ํ ๋ฒ๊ทธ ํด๊ฒฐ * fix: ApplyRegistration ํค๋ณด๋ ํ์ดํ ๊ธฐ๋ฅ ์ ๊ฑฐ select ์ ํ์ง๋ฅผ ์ ํํ๊ธฐ ์ํ input์ด๋ฏ๋ก ํ์ดํ ๊ธฐ๋ฅ ๋ถํ์ ํ์ดํ์ด ๊ฐ๋ฅํ ๊ฒฝ์ฐ, ํผ๋์ด ์์ ์ ์์ * design: Input ์ปดํฌ๋ํธ readonly์ผ ๊ฒฝ์ฐ์ cursor default * refactor: TextArea์ className props ์ถ๊ฐ, focus ํจ๊ณผ ๋์์ธ ์์ * docs: InputArea ์คํ ๋ฆฌ๋ถ description ์ถ๊ฐ * feat: forwardRef ์ปดํฌ๋ํธ์ displayName ๋ฌ๊ธฐ * refactor: Input, InputField, TextArea isError ์ต์ ๋ ์ฒ๋ฆฌ * remove: ๋ถํ์ํ index.ts ์ญ์ * refactor: setIsSelectOpen false๋ก ์์ * refactor: MutableRefObject import ํ๊ธฐ * refactor: Ref import ํ๊ธฐ * feat: ๋ฆฌํฉํ ๋ง ์ด์ ํ ํ๋ฆฟ ์ถ๊ฐ (#92) ๋ฆฌํฉํ ๋ง ์ด์ ํ ํ๋ฆฟ์ ์ถ๊ฐํฉ๋๋ค. * chore: api ์ฐ๋์ ์ํ axios, tanstack query ์ธํ ๋ฐ ํ ์คํธ (#90) * feat: QueryClientProvider ๋ฐ DevTools ์ค์ * chore: axios ์ค์น * chore: gitignore์ .env ์ถ๊ฐ * feat: axiosInstance ์์ฑ * feat: vite proxy ์ค์ * feat: ํ๋ก์ ์๋ฒ ์ด์ฉํ๋ฏ๋ก axioInstance BASE_URL ์์๋ก '/api' ์ค์ * feat: requestHandler ์์ฑ * feat: ApiResponse ๊ณตํต ํ์ ์ ์ ( + Sort) * feat: fetchMiniStudies ํจ์ ์์ฑ * feat: Tanstack query ์ฌ์ฉํ useMiniStudies ํ ์์ฑ * refactor: ๋ฏธ๋์คํฐ๋ api ์ฐ๋ * refactor: ๋ฏธ๋์คํฐ๋ fetch ํจ์ ํ์ค๋ก ์ค์ด๊ธฐ * refactor: axiosInstance ๋ถํ์ํ ๋ณ์ ์ ๊ฑฐ * remove: ๋ถํ์ํ index.ts ํ์ผ ์ญ์ * rename: axiosInstance.ts -> httpClient.ts ํ์ผ๋ช ๋ณ๊ฒฝ ๋ฐ utils/ ๋ก ์ด๋ * refactor: ๊ฒฝ๋ก ์์ * refactor: ReactQueryDevtools๋ ๊ฐ๋ฐํ๊ฒฝ ์กฐ๊ฑด๋ถ ๋ ๋๋ง ์ฒ๋ฆฌ * refactor: api endpoint ๋ฐ ํ์ ์ธํฐํ์ด์ค ๋ถ๋ฆฌ * refactor: fetchMiniStudies -> getMiniStudies๋ก ํจ์๋ช ๋ณ๊ฒฝ * refactor: types ํด๋ ์ ๋ฆฌ * refactor: types ํด๋ ์ ๋ฆฌํ ํ์ผ๋ค ๊ฒฝ๋ก ์์ * feat: requestHandler์ 401,403, 500, ๊ธฐํ ๋คํธ์ํฌ ์๋ฌ ์ ์ญ ์ฒ๋ฆฌ * feat: ApiResponse์ State ์ข ๋ฅ ์ ๋ฐ์ดํธ * refactor: TODO ์ถ๊ฐ * refactor: Sort ํ์ sort ํ์ผ๋ก ๋ถ๋ฆฌ ๋ฐ ์ ์ฉ * refactor: requestHandler ์ ๋ค๋ฆญ ํ์ ์์ (#102) * refactor: requestHandler ์ ๋ค๋ฆญ ํ์ ์์ * refactor: getMiniStudies์์ ApiResponse ์ ๊ฑฐ * feat: CheckBox ์ปดํฌ๋ํธ ๊ตฌํ (#86) * feat: CheckBox ์ปดํฌ๋ํธ์ type์ ์ ์ธํฉ๋๋ค. * feat: CheckBox ์ปดํฌ๋ํธ์์ ์ฌ์ฉ๋๋ CheckBoxIcon ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: CheckBox ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํฉ๋๋ค. * docs: CheckBox ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ ์์ฑํฉ๋๋ค. * design: interaction์ click ์์ ํจ๊ณผ๋ฅผ ์นดํ ๊ณ ๋ฆฌํํฉ๋๋ค. * design: CheckBox์ interaction ์์๋ฅผ ์ฃผ์ ํฉ๋๋ค. * fix: ์ค์ interaction์ด ์ ์ฉ๋๋ ํ๊ทธ์ interaction์ ์ฌ์ฃผ์ ํฉ๋๋ค. * style: import ๋ฌธ์ ์ ๋๊ฒฝ๋ก๋ฅผ ์๋๊ฒฝ๋ก๋ก ์์ ํฉ๋๋ค. * typo: ์ปดํฌ๋ํธ์ ์คํ์๋ฅผ ์์ ํฉ๋๋ค. * feat: CheckBox์ hover interaction์ ์ถ๊ฐํฉ๋๋ค. * typo: ํจ์์ ํ์ ๋ช ์ ํ์ค์นผ ์ผ์ด์ค๋ก ์์ ํฉ๋๋ค. * feat: interaction์ ์ปค์คํ ํ์ฌ CheckBox ์ปดํฌ๋ํธ์ ๋ถ์ฌํฉ๋๋ค. * docs: checkbox ์คํ ๋ฆฌ ํ์ผ์ interaction์ด ์ ์ฉ๋๋ ์ผ์ด์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค. * docs: useState ์ render ์ฝ๋ฐฑ์์ ํธ์ถํ์ง ์๋๋ก ๋ณ๊ฒฝํฉ๋๋ค. * refactor: tabIndex๋ฅผ ์ด์ฉํด interaction ์ญํ ์ ์ํํ๋ div์ interaction์ ์ฃผ์ ํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๋ interaction ์ ์ ๊ฑฐํฉ๋๋ค. * feat: interaction์ด ์ ์ฉ๋๋ div์ tabIndex๋ฅผ ์ถ๊ฐํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๋ group ์์ฑ์ ์ ๊ฑฐํฉ๋๋ค. * refactor: Icon ์ปดํฌ๋ํธ์ import ๋ฐฉ์์ ๋ณ๊ฒฝํฉ๋๋ค. * refactor: interaction์ ์ํ div์ ์ ๊ฑฐํ๊ณ ์ค์ ์์์ interaction์ ์ํํฉ๋๋ค. * fix: focus ์ before ๊ฐ์์์๋ฅผ ์ ๊ฑฐํ๊ณ ์์ ์์์ ์ํ์ ๋ฐ๋ผ focus ๋๋๋ก ์คํ์ผ์ ์์ ํฉ๋๋ค. * refactor: ์คํ์ผ ํด๋ ๋ฆฌํฉํ ๋ง (#100) * refactor: ๋ธ๋ญ ๋ฒํผ, ๋ผ๋ฒจ ๋ฒํผ ์คํ์ผ ํ์ผ ์ปดํฌ๋ํธ ํด๋๋ก ์ด๋ * refactor: file ์คํ์ผ ํ์ผ ํ์ผ ์ปดํฌ๋ํธ ํด๋๋ก ์ด๋ * refactor: ์์ด์ฝ ์คํ์ผ ํ์ผ ์ปดํฌ๋ํธ ํด๋๋ก ์ด๋ * refactor: ํ์ดํ ์คํ์ผ ํ์ผ ์ปดํฌ๋ํธ ํด๋๋ก ์ด๋ * refactor: ๋ ์ด๋ธ ์คํ์ผ ํ์ผ ์ปดํฌ๋ํธ ํด๋๋ก ์ด๋ * refactor: ์ง๊ตฐ๋ช , ์ด๋ฉ์ผ ๋ณ๊ฒฝ ๋ฐ ๋ฐ๋ธ์ต์ค ์ ๋๋ฉ์ด์ ๋นํ์ฑํ (#104) * refactor: ํ๋ก์ ํธ ๋งค๋์ ์์ ํ๋ก๋ํธ ๋งค๋์ ๋ก ๋ณ๊ฒฝ * refactor: [email protected]๋ก ๋ณ๊ฒฝ * refactor: ๋ฉ์ธํ์ด์ง ๋ฐ๋ธ์ต์ค ์ ๋๋ฉ์ด์ ๋นํ์ฑํ ์ฒ๋ฆฌ * feat: ์ ํก ์กฐํ ๊ธฐ๋ฅ ๋ฐ EmptyData ์ปดํฌ๋ํธ ๊ตฌํ (#99) * feat: jectalk Response ํ์ ์์ฑ * feat: getJectalks fetch ํจ์ ์์ฑ * feat: useJectalks ํ ์์ฑ * feat: EmptyData ๊ณตํต ์ปดํฌ๋ํธ ์์ฑ ๋ฐ ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: activity page, ์ญํก ์กฐํ API ์ฐ๊ฒฐ ๋ฐ EmptyData ์ปดํฌ๋ํธ ์ ์ฉ * refactor: jectalk fetch ํจ์ ํ์ ์์ * refactor: EmptyData ์ปดํฌ๋ํธ Label ์ ๋๊ฒฝ๋ก๋ก ์์ * refactor: react-query ์ฌ์ฉ ํ ์ Query ์ ๋ฏธ์ฌ ์ฌ์ฉ * refactor: useQuery ์๋ฌ ๋ก๊ทธ ์ถ๋ ฅ * refactor: ์๋ฌ ๋ก๊ทธ ๋ฌธ๊ตฌ ์์ * feat: ์ ํก summary ํ์ ๋ฐ EmptyData ์กฐ๊ฑด๋ถ ์์ (#111) * feat: ์ ํก ๋ ์ด๋ธ ํ์ * refactor: ๋ฏธ๋์คํฐ๋, ์ ํก ๋ ๋๋ง ์กฐ๊ฑด ์์ * feat: ํ์ผ ์ ๋ก๋ ๊ธฐ๋ฅ ๊ตฌํ (#109) * feat: ํ์ผ ์ ๋ก๋ api ์์ฒญ ํจ์ ๋ฐ ํ ์์ฑ * fix: Uploader ์ปดํฌ๋ํธ ๋์ผํ ํ์ผ ์ฐ์ ์ ํ ๋ถ๊ฐ ๋ฒ๊ทธ ํด๊ฒฐ * refactor: changeFileSizeUnit ์ ํธํจ์ ์์ - ๋จ์ ํ๊ธฐ ์ฌ๋ถ ์ถ๊ฐ * feat: validateMaxSize ์ ํธํจ์ ์ถ๊ฐ * feat: Portfolio, NewPortfolio ํ์ ์์ฑ * remove: FileUrl ํ์ ์ญ์ * chore: lottie-react ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น * chore: loadingSpinner json ํ์ผ ์ถ๊ฐ * refactor: select ์ธ๋ถ ํด๋ฆญ ์ ๋ซํ๊ธฐ ๋ก์ง useCloseOutSide ํ ์ผ๋ก ๋ถ๋ฆฌ * feat: S3 ํ์ผ ์ ๋ก๋ ์์ฒญ ๋ฐ File ์ปดํฌ๋ํธ๋ช FileItem์ผ๋ก ๋ณ๊ฒฝ * docs: FileItem ์คํ ๋ฆฌ๋ถ ์ ๋ฐ์ดํธ * refactor: InputFile์ fileNode prop -> children์ผ๋ก ๋ณ๊ฒฝ * docs: InputFile ์คํ ๋ฆฌ๋ถ ์์ * feat: ํ์ผ presignedUrl ์์ฑ ์์ฒญ ๋ฐ ApplyRegistration์์ ๋ฌธํญ ์ฝ๋ ๋ถ๋ฆฌ * feat: ๋คํธ์ํฌ ๋ถ์์ ์ด์, ํ์ธํ ์ ์๋ ํ์ผ ํ์ ์์ธ ์ฒ๋ฆฌ * fix: eslint ์๋ฌ ์์ * refactor: uploadFileToS3 axios ํจ์ ํ์ผ ๋ถ๋ฆฌ ๋ฐ mutate ๋ณ์๋ช ๋ถ์ด๊ธฐ * feat: S3 ํ์ผ ์ ๋ก๋ ์คํจ ์ retry 3ํ ์ค์ * design: ๋ฉ์์ง ๋ฌธ๊ตฌ ์์ * feat: ์์๋ ํ์ผ ํ์ธ ๋ฐ ๋ถ๋ฆฌํด์ฃผ๋ ์ ํธํจ์ ์์ฑ * fix: ํ์ผ ํํฐ๋ง ๋ฐ ์์ธ ์ฒ๋ฆฌ ์์ - pdf๊ฐ ์๋ ํ์ผ์ผ ๊ฒฝ์ฐ ์๋ฌ ํ ์คํธ๋ง ์ ์ - ์์๋ pdf ํ์ผ์ผ ๊ฒฝ์ฐ ์๋ฌ UI ํ์ผ, ํ ์คํธ ์ ์ * feat: ํ์ผ ๋น์ด์์ ๊ฒฝ์ฐ ์์ธ ์ฒ๋ฆฌ * feat: ์ ๋ก๋ ์ค์ธ ํ์ผ ์ ๋ก๋ ์์ฒญ ์ทจ์ ๊ธฐ๋ฅ ์ถ๊ฐ ๋ฐ ๋คํธ์ํฌ ์๋ฌ์ ํ์ผ ์ ๋ก๋ ์์ธ์ฒ๋ฆฌ ์์ * refactor: fileExtensions ๋ณ์๋ช ๋ณต์ ์ฒ๋ฆฌ * refactor: changeFileSizeUnit ์ ํธํจ์ ๋ก์ง ์์ ๋ฐ ๋ฆฌํฉํ ๋ง * refactor: ์ ํธ ํจ์ ๊ฐ๋ ์ฑ์ ์ํ ๊ฐํ ์ฒ๋ฆฌ * refactor: ์๋ต ๋ฐ์ดํฐ ํ์ ๋ช ~ResponseData ํ์์ผ๋ก ๋ณ๊ฒฝ * refactor: ์ ํธ ํจ์ ๊ฐ๋ ์ฑ์ ์ํ ๊ฐํ ์ฒ๋ฆฌ * refactor: splitValidAndInvalidFiles ์ ํธํจ์ filter -> reduce ๋ฉ์๋ ์ฌ์ฉ * refactor: useCloseOutside ์ผ๋ฆฌ๋ฆฌํด * refactor: Uploader handleClick ํจ์ ์ผ๋ฆฌ๋ฆฌํด * refactor: description ๋์ด์ฐ๊ธฐ ์ฒ๋ฆฌ * refactor: FileField ๊ฐ๋ ์ฑ์ ์ํ ๊ฐํ ์ฒ๋ฆฌ * refactor: FileItem์ extractFileInfo ์ ํธํจ์ ์์ฑ ํ ์ ์ฉ * refactor: ํฌํธํด๋ฆฌ์ค ์ ๋ก๋ api ์๋ต ๋ฐ์ดํฐ keyName -> cdnUrl ์์ ๋ฐ์ * remove: validateFileType ์ ํธ ํจ์ ์ ๊ฑฐ * refactor: ํ์ ๋ช ์ Response, Request suffix ์ถ๊ฐ - uploadPortfolio.ts - answer.ts * refactor: ์ ํก, ๋ฏธ๋์คํฐ๋ ๋ฐ์ดํฐํ์ Response suffix ์ถ๊ฐ * remove: ๋ถํ์ํ ๋ก๊ทธ ์ถ๋ ฅ ์ฝ๋ ์ ๊ฑฐ * feat: ์ง์์ ํ๋ก์ฐ ๊ธฐ๋ฅ ๊ตฌํ (#112) * feat: ํ์ผ ์ ๋ก๋ api ์์ฒญ ํจ์ ๋ฐ ํ ์์ฑ * fix: Uploader ์ปดํฌ๋ํธ ๋์ผํ ํ์ผ ์ฐ์ ์ ํ ๋ถ๊ฐ ๋ฒ๊ทธ ํด๊ฒฐ * refactor: changeFileSizeUnit ์ ํธํจ์ ์์ - ๋จ์ ํ๊ธฐ ์ฌ๋ถ ์ถ๊ฐ * feat: validateMaxSize ์ ํธํจ์ ์ถ๊ฐ * feat: Portfolio, NewPortfolio ํ์ ์์ฑ * remove: FileUrl ํ์ ์ญ์ * chore: lottie-react ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น * chore: loadingSpinner json ํ์ผ ์ถ๊ฐ * refactor: select ์ธ๋ถ ํด๋ฆญ ์ ๋ซํ๊ธฐ ๋ก์ง useCloseOutSide ํ ์ผ๋ก ๋ถ๋ฆฌ * feat: S3 ํ์ผ ์ ๋ก๋ ์์ฒญ ๋ฐ File ์ปดํฌ๋ํธ๋ช FileItem์ผ๋ก ๋ณ๊ฒฝ * docs: FileItem ์คํ ๋ฆฌ๋ถ ์ ๋ฐ์ดํธ * refactor: InputFile์ fileNode prop -> children์ผ๋ก ๋ณ๊ฒฝ * docs: InputFile ์คํ ๋ฆฌ๋ถ ์์ * feat: ํ์ผ presignedUrl ์์ฑ ์์ฒญ ๋ฐ ApplyRegistration์์ ๋ฌธํญ ์ฝ๋ ๋ถ๋ฆฌ * feat: ์ง์์ ๋ฌธํญ ์กฐํ api ํจ์ ๋ฐ ํ ์์ฑ * remove: validateFileType ์ ํธํจ์ ์ญ์ * feat: url ํ์ ๊ฒ์ฆ ์ ํธํจ์ ์์ฑ * feat: Answers ํ์ ์ ์ * feat: ์ง๊ตฐ์ ๋ง๋ ์ง์์ ๋ฌธํญ ๋ ๋๋ง ๋ฐ URL ๊ฒ์ฆ ๋ก์ง ์ถ๊ฐ * refactor: detailedRegex ์์ * feat: ์์ ์ ์ฅ API ์ฐ๋ * feat: ์๋ ์์์ ์ฅ ๊ธฐ๋ฅ ๊ตฌํ * refactor: select์ jobFamily ๋งคํ ๋ฐฉํฅ ์์ FE, BE, PM, PO๋ฅผ key๋ก ๋ณ๊ฒฝ * refactor: postDraft์ param prop null ํ์ ์ถ๊ฐ * feat: ์์ ์ ์ฅ ์กฐํ api ์์ฒญ ํจ์ ๋ฐ ํ ์์ฑ * feat: ์์์ ์ฅ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ * refactor: handleChangeAnswer, handleChangePortfolios ํจ์ useCallback ์ฒ๋ฆฌ * feat: ์์ ์ ์ฅ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ (์์์ ์ฅ ๋ถ๋ฌ์ค๊ธฐ ๋ค์ด์ผ๋ก๊ทธ ์ ์ธ) - react router์ location.state ์ด์ฉํ์ฌ ์์์ ์ฅ ๋ถ๋ฌ์ค๊ธฐ ์ฌ๋ถ ๊ฒฐ์ - ์์ฑ ์ค ์๋ก๊ณ ์นจ ์ ์์ ์ ์ฅ๋ ๊ธ ์๋ ๋ถ๋ฌ์ค๊ธฐ * refactor: Dialog ์์ - p ํ๊ทธ -> div ํ๊ทธ๋ก ๋ณ๊ฒฝ ( ReactNode๋ก ๋ฐ์ ๋ ํฌ๊ด์ ์ธ ํ๊ทธ ์ฌ์ฉ์ ์ํด) - children ๊ณต๊ฐ์ ์ค๋ ๋ฌธ๊ตฌ text-center ์ฒ๋ฆฌ - useDialog state ๋ณ์๋ช ์์ (isCloseOutside์ state์ ๊ฒน์นจ ๋ฌธ์ ) * feat: ์ง์์ ์ง๊ตฐ ๋ณ๊ฒฝ ๊ธฐ๋ฅ ๊ตฌํ - apiEndpoint ์ถ๊ฐ - axios ํจ์ ์์ฑ - react query ํ ์์ฑ - ์ง๊ตฐ ๋ณ๊ฒฝ ์ dialog ๋์ฐ๊ธฐ - ์ง๊ตฐ ๋ณ๊ฒฝ ์ ๋ต๋ณ ์ด๊ธฐํ ๋ฐ ์ง๊ตฐ ๋ณ๊ฒฝ api ์์ฒญ ๋ณ๊ฐ๋ก, - ์ด๋ฐ์ ์์์ ์ฅ ๋ถ๋ฌ์ค์ง ์๊ณ ์๋ก ์์ฑํ ๊ฒฝ์ฐ, ์ถ๊ฐ์ ์ธ ์์์ ์ฅ ์ ๊น์ง ์์์ ์ฅ ๋ถ๋ฌ์ค์ง ์๋๋ก ์์ * refactor: ApplyRegistration ์ฝ๋ ๋ฆฌํฉํ ๋ง ๋ณ์๋ช ๋ณ๊ฒฝ, ํจ์ ๋ถ๋ฆฌ ๋ณ์๋ช ๋ณ๊ฒฝ - selectPosition -> selectedPosition - selectQuestion -> questionPosition - values -> answersPayload ํจ์ ๋ถ๋ฆฌ - formatNewPortfolio ํจ์ ์์ฑ (FileField์์ ์ฌ์ฉ) - notLoadDraft ํจ์ ์์ฑ * design: textField ๋ต๋ณ ๊ธธ์ด ์ ํ ์ด๊ณผ ์ ํ๋ ์คํ์ผ ๋ณ๊ฒฝ - ํฌํผ ๋ฉ์์ง ํ์ - ํ๋ ํ ๋๋ฆฌ ๋ฐ ๊ธ์ ์ ํ ์คํธ ๋นจ๊ฐ์ ํ์ * feat: ์ง์์ ์ ์ถ ๋ต๋ณ ์ ํจ์ฑ ๊ฒ์ฌ - ํ์ ๋ต๋ณ ์์ฑ ๊ฒ์ฌ - ๋ต๋ณ ๊ธ์ ์ ์ ํ ๊ฒ์ฌ - url ์ ํจ์ฑ ๊ฒ์ฌ * refactor: useDialog state ๋ณ์๋ช ์์๋ณต๊ตฌ - ๋ณ์๋ช ๊ฒน์น ๊ฒฝ์ฐ ๋ณ์นญ ์ฌ์ฉ * refactor: mutationKey ๋ฌ๊ธฐ * feat: ์ง์์ ์ ์ถ ๊ธฐ๋ฅ ๊ตฌํ - ์ง์์ ์ ์ถ api endpoint ์์ฑ - submitAnswer ํจ์ ์์ฑ - useSubmitAnswerQuery ํ ์์ฑ - ์ ์ถ ์ ๋ค์ด์ผ๋ก๊ทธ ํ์ ๋ฐ ์ฑ๊ณต ์ ์ง์ ์๋ฃ ํ์ด์ง ์ด๋ * feat: 15๋ถ๋ง๋ค ์๋ ์์์ ์ฅ ๊ธฐ๋ฅ ๊ตฌํ * refactor: ApplyRegistration ๋ฆฌํฉํ ๋ง - state์ ๊ด๋ จ ํจ์๋ฅผ ๊ด๋ฆฌํ๋ useApplicationState ํ ์์ฑ - ํฌ์ง์ ์ ํ ๊ด๋ จ selectBox ์ปดํฌ๋ํธ ๋ถ๋ฆฌ - ๋ฌธํญ ๋ฐ ๋ต๋ณ ๊ด๋ จ Answers ์ปดํฌ๋ํธ ๋ถ๋ฆฌ * remove: ๋ถํ์ํ ์ฃผ์ ์ ๊ฑฐ * refactor: ์ง๊ตฐ์ ํํํ๋ ๋จ์ด position -> job์ผ๋ก ๋ณ๊ฒฝ * refactor: isLoadDraft ํจ์ ์์ (๋ถํ์ํ ๋ฆฌํด ์ ๊ฑฐ) * refactor: validateAnswersPayload if๋ฌธ ๊ฐ์ํ * refactor: draft ๋ฐ์ดํฐ uuid ์ถ์ถ ์ค๋ฅ ํด๊ฒฐ * refactor: isLoadDraft ํจ์ ๊ฐ์ํ * refactor: ์ง์์ ๋ฌธํญ ์กฐํ ์คํจ ์ ๋น ํผ ๋ฐํ. * feat: Input read-only ์ผ ๋ ์ปค์ ๊ธฐ๋ณธ ์คํ์ผ ์ง์ * feat: api ์์ ์๋ฌ ์ฒ๋ฆฌ (์๋ฌ ๋ก๊ทธ ์ถ๋ ฅ) * refactor: onKeyDown -> onKeyUp์ผ๋ก ๋ณ๊ฒฝ * refactor: draft, submitAnswer ํธ์ถ ์ param null ์ฒ๋ฆฌ * refactor: formatForPresignedUrl, formatNewPortfolio ๊ตฌ์กฐ ๋ถํด ํ ๋น ์ฒ๋ฆฌ * refactor: Dialog title p ํ๊ทธ๋ก ๋ณ๊ฒฝ * refactor: submitButtonActive -> setSubmitButtonActive ๋ก ํจ์๋ช ๋ณ๊ฒฝ * refactor: ํ ์ ์ธ ๊ฐํ์ฒ๋ฆฌ * refactor: File ํ์ file -> rawFile๋ก ๋ค์ด๋ฐ ๋ณ๊ฒฝ * refactor: AnswersRequest answers key ํ์ number๋ก ๋ณ๊ฒฝ * refactor: QuestionResponse ํ์ ์ ์ * refactor: putJob request ํ์ ์ ์ * refactor: ์ ์ถ ๋ค์ด์ผ๋ก๊ทธ ๋ด์ฉ ๋ฌธ๊ตฌ ๋์ด์ฐ๊ธฐ ์์ * refactor: initialAnswer ํ์ ์ค์ * feat: ํ์ด์ง ํ๋จ ์ง์ ์ค๋ต๋ฐ ๊ตฌํ (#120) * feat: 3๊ธฐ ์ง์ ์ค๋ต๋ฐ ๊ณตํต ์ปดํฌ๋ํธ ์์ฑ * feat: ๋ฉ์ธ, ํ๋ก์ ํธ, ํ๋, faq ํ์ด์ง์ ์ค๋ต๋ฐ ๋ ธ์ถ * remove: ๋ถํ์ํ index.ts ํ์ผ ์ญ์ * refactor: isMain -> width ๋ก props ๋ณ๊ฒฝ ํ์ด์ง ๋จ์์ ์ด๋ค width ๊ฐ์ด ๋ค์ด๊ฐ๋์ง ํ์ธํ ์ ์๋๋ก ๋ณ๊ฒฝ * refactor: SnackBar ์ปดํฌ๋ํธ ์์ ์์ * refactor: ์ง์ ์ค๋ต๋ฐ ๋์ด ์์ * feat: ์ง์ ์ค๋ต๋ฐ ์ ๋๋ฉ์ด์ ์ถ๊ฐ * feat: ๋ก์ปฌ์คํ ๋ฆฌ์ง ์๋ ์์ ์ ์ฅ ๊ธฐ๋ฅ ๊ตฌํ (#122) * feat: ๋ก์ปฌ์คํ ๋ฆฌ์ง๋ฅผ ์ด์ฉํ ์๋ ์์์ ์ฅ ๊ธฐ๋ฅ ๊ตฌํ * fix: ์ ๋ก๋๋ ํ์ผ ์ด๊ธฐ ์คํจ ๋ฒ๊ทธ ํด๊ฒฐ * refactor: ํจ์๋ช ์์ * refactor: ๋ถํ์ํ ๋ณ์ ์ ๊ฑฐ * feat: ํ์ ๋นํ์ ์ธ์ฆ ๋ฐ ํ์์ ๋ณด ๋ฑ๋ก ๊ธฐ๋ฅ (#114) * chore: zod์ react-hook-form ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํฉ๋๋ค. * feat: zod๋ฅผ ์ด์ฉํด ์ง์ ํ์ด์ง์ ์ฌ์ฉ๋๋ ์คํค๋ง๋ฅผ ์์ฑํฉ๋๋ค. * feat: zod์ react-hook-form์ ์ฐ๋ํ์ฌ ์ ํจ์ฑ ๊ฒ์ฌ ํ ์ ์์ฑํฉ๋๋ค. * refactor: umd ๋ณ์๋ก ์ ์ธ๋ props๋ฅผ ์ ๋์จ ํ์ ์ ๋ณํํฉ๋๋ค. * feat: api ์ฐ๋์ ์ํ ์๋ ํฌ์ธํธ๋ฅผ ์ค์ ํฉ๋๋ค. * feat: apply ๊ด๋ จ api response๋ฅผ ๋ฐ์ํ์ฌ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค. * feat: ํผ ํธ๋ค๋ฌ ์ฒ๋ฆฌ๋ฅผ ๋๋ ์ ํธ๋ฆฌํฐ ํจ์๋ฅผ ์์ฑํฉ๋๋ค. * feat: ์๊ตฌ์ฌํญ์ ๋ฐ์ํ์ฌ ์ง์ api ํธ์ถ๋ถ๋ฅผ ์ค์ ํฉ๋๋ค. * feat: ์ปค์คํ ํ ์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ ํจ์นญ์ ์ฒ๋ฆฌํ๋ ๋ก์ง์ ๋ก๊น ๊ณผ ํจ๊ป ์์ฑํฉ๋๋ค. * feat: input ์ปดํฌ๋ํธ์ undefined ์ฒ๋ฆฌ๋๋ ์ต์ ๋ props์ ๊ธฐ๋ณธ ๊ฐ์ ํ ๋นํฉ๋๋ค. * feat: ์ง์ํ๊ธฐ ๋ฐ์ดํฐ ํจ์นญ ๋ก์ง์ ์ง์ํ์ด์ง์ ์ ์ฉํฉ๋๋ค. * refactor: ํผ ์ ์ถ ํผํผ ํจ์์ ๋ฐ์ดํฐ ํ์ ์ ํด๋น ํจ์๋ฅผ ์ฌ์ฉํ๋ ๋ถ๋ถ์์ ์ฒ๋ฆฌํ๋๋ก ๋ณ๊ฒฝํฉ๋๋ค. * fix: ์ต์ react-query์ ์์ฑ์ ๋ฐ์ํ์ฌ isLoading isPending ์ผ๋ก ์์ ํฉ๋๋ค. * feat: Label ์ปดํฌ๋ํธ์ ๊ฐ์ ์ฌํญ์ ํ๊ธฐํฉ๋๋ค. * refactor: Label ์ปดํฌ๋ํธ๊ฐ htmlFor ์์ฑ์ ๋ฐ์ง ๋ชปํ๋ ๋ฌธ์ ๋ฅผ ์ถ๊ฐ ํ๊ทธ๋ฅผ ์ด์ฉํด ์ฒ๋ฆฌํฉ๋๋ค. * move: ์คํ ๋ฆฌ๋ถ์ ์ธํฐ๋ ์ ์์๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * feat: CheckBox ์ปดํฌ๋ํธ๋ฅผ ํ๋จ Label์ ์ถ๊ฐํฉ๋๋ค. * feat: ํ ๋ก๊ทธ์ธ ์ฑ๊ณต์ navigate ๋ก์ง์ ์ถ๊ฐํฉ๋๋ค. * design: ์๋ชป ์ ์ฉ๋ gap ๊ฐ์ ์์ ํฉ๋๋ค. * feat: ํ์ ์กด์ฌ ์ฌ๋ถ ํ์ธ api์ ์๋ํฌ์ธํธ๋ฅผ ์์ฑํฉ๋๋ค. * feat: ํ์ ์กด์ฌ ์ฌ๋ถ ํ์ธ api์ ๋ฐํ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค. * feat: ํ์ ์กด์ฌ ์ฌ๋ถ api์ ํธ์ถ๋ถ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: ์ด๋ฉ์ผ ์ธ์ฆ api ๋ฅผ ํธ์ถํ๊ธฐ ์ ์ด๋ฉ์ผ ์กด์ฌ ์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค. * feat: email ๊ฐ์ state๋ก ์ฒ๋ฆฌํ์ฌ ์ ๋ฌํ ์ ์๋๋ก ์ฒ๋ฆฌํฉ๋๋ค. * feat: ํ์ ์กด์ฌ ์ฌ๋ถ api์ ๋ํ ์ปค์คํ ํ ์ ์์ฑํฉ๋๋ค. * feat: status ํ์ ์ ์ถ๊ฐํฉ๋๋ค. * feat: ์ด๋ฉ์ผ ์ธ์ฆ api์ ๋ํ ์๋ฌ ์ํฉ์ ์ฒ๋ฆฌํฉ๋๋ค. * feat: ๋ฒํผ ๋นํ์ฑํ ์ํ์ ์กฐ๊ฑด์ ์ถ๊ฐํฉ๋๋ค. * feat: ๊ธฐ์กด ํ์์ PIN ๋ก๊ทธ์ธ ๋ก์ง์ ๊ตฌํํฉ๋๋ค. * move: ๋ถํ์ํ๊ฒ ์ถ๊ฐ๋ ์ํ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * feat: ์ง์์ ์ ๋ณด์ ๋ํ ์คํค๋ง๋ฅผ ์์ฑํฉ๋๋ค. * feat: ์ง์์ ์ ๋ณด ์คํค๋ง์ ์์ธ ์ํฉ์ ์๋ฐํ๊ฒ ์ ํํฉ๋๋ค. * feat: ํ์ ์ ๋ณด ์ ๋ฐ์ดํธ api์ ์๋ํฌ์ธํธ๋ฅผ ์์ฑํฉ๋๋ค. * feat: ํ์ ์ ๋ณด ์ ๋ฐ์ดํธ api์ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค. * feat: ํ์ ์ ๋ณด ์ ๋ฐ์ดํธ api์ ํธ์ถ๋ถ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: zod๋ฅผ ์ด์ฉํด์ ์ง์ ๋ ์คํค๋ง์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํํฉ๋๋ค. * feat: ์ปค์คํ ํ ์ ์ด์ฉํด ํ์ ์ ๋ณด ์ ์ฅ์ ๋ํ ๋ฐ์ดํฐ ํจ์นญ์ ์งํํฉ๋๋ค. * feat: ํญ๋ชฉ์ด ๋น์ด์์ ๋๋ ์ ํจํ์ง ์์ ์คํค๋ง๋ก ํ๋จํฉ๋๋ค. * feat: ์ง์์ ์ ๋ณด ์ ๋ ฅ ํ์ด์ง์ ๋ฐ์ดํฐ ํจ์นญ ๋ก์ง์ ๋ถ์ฌํฉ๋๋ค. * feat: auth ๊ด๋ฆฌ๋ฅผ ์ํ api์ ์๋ํฌ์ธํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * chore: ์ถ๊ฐ๋ env ํ์ผ์ ๋ํ ์ปดํ์ผ ์ต์ ์ ์ค์ ํฉ๋๋ค. * chore: ์ ์ญ ๋ณ์์ ํ์ ์ ์ค์ ํฉ๋๋ค. * feat: ์ํ ์ฐธ์กฐ๋ฅผ ๊ณ ๋ คํ์ฌ requestHandler๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ํ ํฐ ๋ฆฌํ๋ ์ฌ api๋ฅผ ํธ์ถํฉ๋๋ค. * feat: interceptor๋ฅผ ์ด์ฉํด api ํธ์ถ ์ ํ header์ ๊ฐ๋ฐ ํ๊ฒฝ ๋ณ ํ ํฐ ๊ด๋ฆฌ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. * feat: requestHandler์ option ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: ํ ํฐ ๊ด๋ฆฌ๋ฅผ ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: ํ์ ์ ๋ณด ๋ฑ๋ก์ ์ํ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค. * feat: ํ์ ์ ๋ณด ๋ฑ๋ก api์ ํธ์ถ๋ถ๋ฅผ ์์ฑํฉ๋๋ค. * feat: ํ์ ์ ๋ณด ๋ฑ๋ก api๋ฅผ ์ปค์คํ ํ ์ ์ด์ฉํด ๊ด๋ฆฌํฉ๋๋ค. * feat: PIN์ ์ด์ฉํ ๋ก๊ทธ์ธ ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์์ ํ ํฐ์ header์ ์ฌ์ฉํ๋๋ก ์ค์ ํฉ๋๋ค. * fix: ์ ๊ท ์ฌ์ฉ์์ ๊ฒฝ์ฐ ์์ ํ์ ๊ฐ์ api๋ฅผ ํตํด ํ๋ก์ฐ๋ฅผ ์งํํฉ๋๋ค. * fix: ๋์์ธ ์๊ตฌ์ฌํญ์ ๋ง์ถฐ ์ปดํฌ๋ํธ ๊ฐ ๊ฐ๊ฒฉ์ ์กฐ์ ํฉ๋๋ค. * feat: FAQ ๋์ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: Accordion์ ์ถ๊ฐ๋์ด์ผ ํ ์๊ตฌ์ฌํญ์ TODO๋ฅผ ์ด์ฉํด ๊ธฐ์ฌํฉ๋๋ค. * feat: cta ๋ฒํผ์ onClick ํธ๋ค๋ฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * fix: ๋ถํ์ํ๊ฒ ์ค์ ๋ error์ ํ์ ๊ฒ์ฌ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * typo: Email ์ธ์ฆ ์ธํฐํ์ด์ค ํ์ ๋ช ์ ํต์ผํฉ๋๋ค. * refactor: ์ด๋ฉ์ผ ๊ด๋ จ api์ ๋งค๊ฐ๋ณ์์ payload๋ฅผ ๊ฐ์ฒด ๋ถํ ํํ๋ก ํต์ผํฉ๋๋ค. * refactor: ์ปค์คํ ํ ์ mutationKey๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: ๋ณ๊ฒฝ๋ ์ปค์คํ ํ ์ ๋งค๊ฐ๋ณ์๋ฅผ mutate ๊ฐ์ฒด์ ๋ฐ์ํฉ๋๋ค. * typo: ๋ณ๊ฒฝ๋ api์ response์ ๋ง๊ฒ ์ธํฐํ์ด์ค ๋ช ์ ์์ ํฉ๋๋ค. * typo: ๋ณ๊ฒฝ๋ ์ธํฐํ์ด์ค์ ๋ง์ถฐ ์คํค๋ง์ ๋ณ์ ๋ช ์ ์์ ํฉ๋๋ค. * refactor: ๋ณ๊ฒฝ๋ api์ ๋ง๊ฒ ํจ์๋ช ์ ๋ณ๊ฒฝํฉ๋๋ค. * refactor: ์ด๋ฉ์ผ ์ธ์ฆ api์ query params๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: ์ด๋ฉ์ผ ์ธ์ฆ ์ปค์คํ ํ ์ mutationKey๋ฅผ ์ถ๊ฐํ๊ณ ๋งค๊ฐ๋ณ์๋ก query params๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: ์ด๋ฉ์ผ ์ธ์ฆ api์ ๋ณ๊ฒฝ์ ์ ์ถ๊ฐํฉ๋๋ค. * feat: ์ด๋ฉ์ผ ์ธ์ฆ api์ ์ฌ์ฉ๋๋ ์ธํฐํ์ด์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: ์์ ๋ ์ด๋ฉ์ผ ์ธ์ฆ api์ ํธ์ถ๋ถ์ query params๋ฅผ ๋ถ์ฌํ๋ ๋ก์ง์ ์ถ๊ฐํฉ๋๋ค. * refactor: ์ด๋ฉ์ผ ์ธ์ฆ api๋ฅผ ์ฌ์ฉํ๋ ์ปค์คํ ํ ์ ๋งค๊ฐ๋ณ์๋ฅผ ๊ตฌ์ฒดํํฉ๋๋ค. * feat: ๋ณ๊ฒฝ๋ ์ด๋ฉ์ผ ์ธ์ฆ ๋ก์ง์ ์ง์ ํ์ด์ง์ ์ ์ฉํฉ๋๋ค. * typo: PIN์ ์ด์ฉํ ๋ก๊ทธ์ธ ์ ์ฌ์ฉ๋๋ ์ธํฐํ์ด์ค ๋ช ์ ๊ฐ์ํํฉ๋๋ค. * refactor: PIN์ ์ด์ฉํ ๋ก๊ทธ์ธ ์ปค์คํ ํ ์ ๋ณ๊ฒฝ๋ ์ธํฐํ์ด์ค ๋ช ์ ์ ์ฉํ๊ณ mutationKey๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: PIN์ ์ด์ฉํ ๋ก๊ทธ์ธ์ API ํธ์ถ๋ถ์ ๊ณตํต ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ํํฉ๋๋ค. * typo: ํ์ ์ ๋ณด ์ ๋ฐ์ดํธ ์ธํฐํ์ด์ค์ ๋ช ์นญ์ ํต์ผํฉ๋๋ค. * typo: ์์ ํ์๊ฐ์ api ์ธํฐํ์ด์ค์ ๋ช ์นญ์ ํต์ผํฉ๋๋ค. * feat: api ํธ์ถ ์ ์ ์ด์ ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ์ ๊ฑฐํ๋ ๋ก์ง์ ์ถ๊ฐํฉ๋๋ค. * feat: base url์ ์ ์ธ ์กฐ๊ฑด์ prod๋ก ๋ณ๊ฒฝํฉ๋๋ค. * feat: interceptor ๊ฐ ๋ก์ปฌ ํ๊ฒฝ์ด ์๋ ๋ withCredentials๊ฐ true ๊ฐ์ ๊ฐ์ง๋๋ก ์ค์ ์ ์ถ๊ฐํฉ๋๋ค. * move: ๋ถํ์ํ๊ฒ ๊ธฐ์ ๋ import ๋ฌธ์ ์์ ํฉ๋๋ค. * feat: ์ธ์ฆ ๋ฒํธ ์ ํจ ์๊ฐ ์ด๊ณผ ์ ์ด๋ฉ์ผ ๋ฒํผ์ enabled ํ๊ณ label์ ๋ณ๊ฒฝํฉ๋๋ค. * refactor: ์ธ์ฆ๋ฒํธ์ Input ์ฐฝ์ ๊ฐ์งํ์ฌ ๊ฐ์ด ์กด์ฌํ์ง ์์ ๋ ๋ฒํผ์ ํ์ํ์ง ์์ต๋๋ค. * fix: ๋ฒํผ์ ๋ฌธ๊ตฌ๋ฅผ ๋์์ธ์ ๋ง๋ ํ ์คํธ๋ก ๋ณ๊ฒฝํฉ๋๋ค. * feat: ์ ์ถ ๋ฒํผ์ ์์ด์ฝ๊ณผ ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ ์ถ๊ฐํฉ๋๋ค. * feat: input ํ๊ทธ์ ์๋์์ฑ ์คํ์ผ์ด ์ปค์คํ ์์์ผ๋ก ์ฒ๋ฆฌ๋๋๋ก ์ฒ๋ฆฌํฉ๋๋ค. * bug: workflow runner ๋ฒ์ ์ ๋ฐ์ดํธ (#133) * refactor: ๋ค์ด์ผ๋ก๊ทธ ํจ์ ํธ์ถ์์ผ๋ก ์ฌ๊ตฌํ (#127) * feat: dialogStore ์์ฑ * refactor: Dialog ์ปดํฌ๋ํธ ์์ (dialogStore ์ด์ฉ) * remove: useDialog ํ ์ญ์ * refactor: Dialog ์ปดํฌ๋ํธ Layout ์ ์ถ๊ฐ * refactor: ์ง์์ ์์ฑ ํ์ด์ง ์์ ๋ ๋ค์ด์ผ๋ก๊ทธ ์ ์ฉ * docs: Dialog ์คํ ๋ฆฌ๋ถ ์์ * refactor: dialog promise ์ ๊ฑฐ * docs: ๋ค์ด์ผ๋ก๊ทธ ์คํ ๋ฆฌ๋ถ ์์ (promise ์ฌ์ฉ ์คํ ๋ฆฌ ์์ ) * remove: ๋ถํ์ํ ํ์ผ ์ ๊ฑฐ (useApplicationDialog) * feat: ๋ค์ด์ผ๋ก๊ทธ ์ด๋ฆฐ ์ํ ์คํฌ๋กค ์ ์ง ๊ธฐ๋ฅ ๊ตฌํ * feat: primary ๋ฒํผ๋ง ์๋ Dialog ์ถ๊ฐ * docs: ๋ฒํผ ํ๋ Dialog ์คํ ๋ฆฌ ์ถ๊ฐ * refactor: ๋ถํ์ํ void ์ ๊ฑฐ * docs: Dialog ์คํ ๋ฆฌ๋ถ ์ค๋ช ์์ * docs: Dialog ์คํ ๋ฆฌ๋ถ ํจ์๋ช ์์ * refactor: dialogStore์ ํ์ ๋ช ๋ณต์๋ก ์์ * refactor: ๋ค์ด์ผ๋ก๊ทธ ์ํ ๊ด๋ฆฌ ๋ฐฉ์ ์์ - ์ ์ ์ธ ๋ฐ์ดํฐ๋ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ก ๊ด๋ฆฌ, constants/dialog.tsx ์์ฑ - dialogStore๋ ์ด๊ณ ๋ซํ ์ํ, ๋ค์ด์ผ๋ก๊ทธ ํ์ , ๋ฒํผ ์ก์ ๋ฅผ ๊ด๋ฆฌ - ์ 2๊ฐ์ง๋ฅผ Dialog ์ปดํฌ๋ํธ์ ๋ฐ์ * docs: Dialog ์คํ ๋ฆฌ๋ถ ์์ * refactor: ApplyRegistration ํ์ด์ง ๋ค์ด์ผ๋ก๊ทธ ์ฝ๋ ์์ * docs: Dialog ์คํ ๋ฆฌ๋ถ ์ค๋ช ์ถ๊ฐ * refactor: dialog ์คํ ์์ ๋ฐ DialogTypes types/ ํด๋๋ก ๋ถ๋ฆฌ * refactor: dialogStore openDialog ๊ฐ์ํ * refactor: Dialog ๋ฒํผ handleClick ํจ์ ๊ฐ์ํ * style: dialogStore ํ์ค ์์ฑ * chore: ๋ฐฐํฌ ์คํฌ๋ฆฝํธ ๋ฐ ํ๊ฒฝ ์ค์ (#135) * fix: Uploader ์คํ ๋ฆฌ๋ถ ์๋ฌ ํด๊ฒฐ (#138) * feat: ๋ต๋ณ SELECT ํ๋ ์ถ๊ฐ (#130) * refactor: useCloseOutside ํ ref ๋ฐฐ์ด๋ ๋ฐ์ ์ ์๋๋ก ์์ * refactor: selectBox ๋ซ๊ธฐ ๊น๋ฐ์ ์์ * feat: ์ง์์ ์์ฑ ํ์ด์ง์ ๊ฐ๊ด์ ๋ฌธํญ์ ์ํ selectField ๊ตฌํ * feat: Question ์๋ฒ ๋ฐ์ดํฐ ํ์ ๋ณ๊ฒฝ ๋ฐ ์ ์ฉ * refactor: ๋ต๋ณ ํ๋ label ์๋ฒ ๋ฐ์ดํฐ ์ฐ๊ฒฐ * fix: ์ด๊ธฐ ๋ ๋๋ง ์ select field ์ ํํด๋ ๋น๋ฌธ์์ด๋ก ์ ์ฅ๋๋ ๋ฒ๊ทธ ํด๊ฒฐ * style: question ํ์ ํํ ์์ * feat: ์์์ ์ฅ ๋ถ๋ฌ์ค๊ธฐ ๋ค์ด์ผ๋ก๊ทธ ํ์ ๋ฐ ์์์ง์์ ์ ๊ฑฐ api ์ฐ๋ (+์ง์์ ๊ด๋ จ ํจ์ ๋ฐ ํ์ ๋ฆฌํฉํ ๋ง) (#134) * feat: ์ง๊ตฐ ๋ณ๊ฒฝ api๊ฐ ์์์ง์์ ์ ๊ฑฐ api๋ก ๋ณ๊ฒฝ๋์ด changeJob api ์ ๊ฑฐ ๋ฐ deleteDraft api ์์ฑ * refactor: ์ง๊ตฐ ๋ณ๊ฒฝ ์ ์์์ง์์ ์ ๊ฑฐ api ์์ฒญ * rename: mutation ํ ์ use~Mutation์ผ๋ก ํ ๋ช ๋ณ๊ฒฝ ๋ฐ ์ ์ฉ * feat: ์์์ ์ฅ ๋ค์ด์ผ๋ก๊ทธ ํโฆ
* feat: ํ๋ก์ ํธ ๊ฐ๋ฐ ํ๊ฒฝ ์ธํ (#2) * feat: ํ๋ก์ ํธ ์ด๊ธฐ ์ธํ * feat: eslint "import/order" ์ค์ ์ถ๊ฐ * fix: prettier "semi" ์ค์ ๊ฐ true๋ก ์์ * feat: ๋์์ธ ์์คํ ๋ฐ ์คํ์ผ๋ง ์ ์ (#5) * chore: style-dictionary ์ค์น * feat: ์๋ฉํฑ ์ปฌ๋ฌ ๋์์ธ ํ ํฐ์ ํ ์ผ์๋ css ๋ณ์๋ก ์ ์ฉ * feat: ํฐํธ ๋์์ธ ํ ํฐ ์ ์ฉ * fix: label-xs ํฐํธ ์ฌ์ด์ฆ ์์ * feat: scheme (gap, radius, stroke, opacity) ํ ํฐ ์ค์ * rename: ํฐํธ css ํ์ผ๋ช ๋ณ๊ฒฝ (index.css -> typography.css) * fix: ๋์์ธ ํ ํฐ ํ์ผ ์์น styles/tokens/์ผ๋ก ๋ณ๊ฒฝ * feat: environment ํ ํฐ ์ค์ (shadow, motion) * feat: index.js ๋ก ํ ํฐ cssํ์ผ ํ๋ฒ์ import ํ๊ธฐ * feat: typescript-eslint/naming-convention ์ค์ * feat: ๊ธ๋ก๋ฒ ์คํ์ผ ์ค์ (ํฐํธ) * fix: font-display ์์ฑ block์ผ๋ก ๋ณ๊ฒฝ * chore: zustand ์ค์น * fix: font-display ์์ฑ swap ์ผ๋ก ๋ณ๊ฒฝ * rename: build-tokens.js -> token.config.js๋ก ํ์ผ๋ช ๋ณ๊ฒฝ, index.js -> index.ts๋ก ๋ณ๊ฒฝ * fix: ํ์ดํฌ๊ทธ๋ํผ @layer utilities ์ฌ์ฉ * remove: ๋ถํ์ํ ์ฝ๋ ์ ๊ฑฐ * remove: ์ฃผ์ ์ ๊ฑฐ * chore: Qodana ci ํ์ดํ๋ผ์ธ ๊ตฌ์ถ (#7) * Add qodana.yaml file * Add github workflow file --------- Co-authored-by: Qodana Application <[email protected]> * chore: ์คํ ๋ฆฌ๋ถ ํ๊ฒฝ ๊ตฌ์ถ ๋ฐ CI ์ค์ (#10) * chore: storybook ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค. * chore: ts์ปดํ์ผ๋ฌ์ ์คํ ๋ฆฌ๋ถ์ ํฌํจ์ํต๋๋ค. * fix: naming convention ์ค์ ์ด rules์ ํฌํจ๋๋๋ก ๊ตฌ๋ฌธ์ ์์ ํฉ๋๋ค. * feat: eslint ignore ์ต์ ์ storybook ๋๋ ํ ๋ฆฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: storybook preview์ ๋์์ธ ํ ํฐ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: storybook preview ์ ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ๋์ผํ ์คํ์ผ ์ค์ ์ ์ฃผ์ ํฉ๋๋ค. * move: ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์น๋ ์คํ ๋ฆฌ๋ถ ์์ ํ์ผ์ ์ญ์ ํฉ๋๋ค. * feat: ์คํ ๋ฆฌ๋ถ ํ ์คํธ๋ฅผ ์ํ ๋ฒํผ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํฉ๋๋ค. * feat: ๋ฒํผ ์ปดํฌ๋ํธ์ ๋ํ ์คํ ๋ฆฌ๋ถ ์ฝ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค. * chore: dev dependencies์ chromatic ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค. * feat: ์คํ ๋ฆฌ๋ถ ์๋ ๋ฐฐํฌ๋ฅผ ์ํ yml ํ์ผ์ ์์ฑํฉ๋๋ค. * feat: chormatic ๋ช ๋ ์ด๋ฅผ ์ฝ์ ํฉ๋๋ค. * feat: ๋ฒํผ ๋๋ฒ๊น ์ ์ํด width ์์ฑ์ ์์ ํฉ๋๋ค. * chore: eslint ์ถ๊ฐ ์ค์ ์ ์ํ ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๋ tailwind ์ค์ ํ์ผ์ ์ ๊ฑฐํฉ๋๋ค. * feat: ์ถ๊ฐ ํจํค์ง๋ฅผ ํตํด eslint์ prettier์์ ์ถฉ๋์ด ๋๋ ๊ตฌ๊ฐ์ ์ ์ดํฉ๋๋ค. * fix: ์์ ๋ eslint ์ค์ ์ ๋ง์ถฐ ์คํ ๋ฆฌ๋ถ ์ฝ๋๋ฅผ ์์ ํฉ๋๋ค. * feat: ํด๋ ๊ตฌ์กฐ ์ธํ ๋ฐ ์ ๋ ๊ฒฝ๋ก ์ฒ๋ฆฌ (#13) * feat: ํด๋ ์ํคํ ์ฒ ์ค์ (์์ํ์ผ์์ฑ) * chore: ์ ๋ ๊ฒฝ๋ก ์ฒ๋ฆฌ๋ฅผ ์ํ @types/node ๋ชจ๋ ์ค์น * feat: @(src) ์ ๋ ๊ฒฝ๋ก ์ค์ * fix: main.tsx ์ ๋ ๊ฒฝ๋ก๋ก import ํ๊ธฐ * chore: Tanstack query ๊ด๋ จ ๋ชจ๋ ์ค์น * feat: eslint-plugin-query ํ๋ฌ๊ทธ์ธ ์ค์ * style: ํ์ผ import ์ ํ์ฅ์ ์ ๊ฑฐ * chore: Qodana ์คํฌ๋ฆฝํธ ์์ (#15) * feat: ์ ์ ๋ถ์ ์คํฌ๋ฆฝํธ์ ์ปค์คํฐ๋ง์ด์ง ์ต์ ์ ์ถ๊ฐํฉ๋๋ค. * feat: ์คํฌ๋ฆฝํธ ์คํ ์ ์์กด์ฑ ์ค์น๋ฅผ ์ ํํ๋๋ก ์ฒ๋ฆฌํฉ๋๋ค. * chore: ymlํ์ผ์ ๋ค์ด๋ฐ์ ์์ ํฉ๋๋ค. * feat: Interaction ์ปดํฌ๋ํธ ๊ตฌํ (#17) * feat: Interaction ์ปดํฌ๋ํธ ๊ตฌํ * feat: Interaction์ ๊ณตํต ์คํ์ผ ๋ถ๋ฆฌ (.interaction) * remove: ํ์ํ์ง ์์ opacity ํ ํฐ ์ ๊ฑฐ tailwind ์์ฒด์์ ์ ๊ณตํ๋ ์คํ์ผ๊ณผ ๋์ผํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ * fix: interaction ์ ํธ๋ฆฌํฐ ์ค๋ฅ๋ก ๋ถ๋ฆฌ ์์ ์์๋ณต๊ท * Merge branch 'dev' of https://github.com/JECT-Study/JECT-Official-WebSite-Client into feat/9-interactionComponent * move: Interaction ํ์ผ common ํด๋๋ก ์ด๋ * feat: Interaction ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: InteractionStyle ๊ฐ์ฒด ์ ์ * refactor: InteractionStyle ๊ฐ์ฒด ํ์ฉํ์ฌ ์ค๋ณต๋๋ ์ฝ๋ ์ ๋ฆฌ * fix: tailwind์ ํด๋์ค ๋ค์ ๋์ ๊ตฌ์ฑ์ผ๋ก ์ธํ ์ค๋ฅ ํด๊ฒฐ ๊ฐ์ฒด์ ์ ์ฅ๋ ํด๋์ค ๋ค์์ ์์ ํ ํด๋์ค ๋ค์์ผ๋ก ๋ณ๊ฒฝ * fix: ๋ณ๊ฒฝํ interactionStyle ๊ฐ์ฒด ์ ์ฉ * feat: ์ธํฐ๋ ์ ์คํ ๋ฆฌ๋ถ ์ถ๊ฐ ์์ฑ * rename: ์คํ ๋ฆฌ ๋ณ์ ๋๋ฌธ์๋ก ๋ณ๊ฒฝ * feat: eslint const ๋ค์ด๋ฐ ์ปจ๋ฒค์ PascalCase ํ์ฉ * feat: radius ๊ธฐ๋ณธ๊ฐ ๋น๋ฌธ์์ด๋ก ์ฒ๋ฆฌ * feat: Label ๋ฐ Badge ์ปดํฌ๋ํธ ๊ตฌํ (#20) * feat: Badge ์ปดํฌ๋ํธ ๊ตฌํ * feat: Label ์ปดํฌ๋ํธ ๊ตฌํ * feat: Badge ์ปดํฌ๋ํธ ์ฌ๊ตฌํ Label ์ปดํฌ๋ํธ ์ด์ฉ * feat: Badge ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: Label ์คํ ๋ฆฌ๋ถ ์์ฑ * style: Label ๊ฐ์ฒด ๊ตฌ์ฑ ์์ ๋ฐ ๊ฐ์ฒด๋ช ๋ณ๊ฒฝ * style: ์ฝ๋ ์ ๋ฆฌ * rename: ์คํ ๋ฆฌ ์ด๋ฆ Primary๋ก ๋ณ๊ฒฝ * fix: ์ธํฐ๋ ์ ์ปดํฌ๋ํธ ์์ ๋ฐ storybook ์ค์ (#22) * feat(preview.ts): ์คํ ๋ฆฌ๋ถ ๋ฐฐ๊ฒฝ์ dark๋ก ๊ธฐ๋ณธ ์ค์ * feat: Label์ ํ ์คํธ children์ผ๋ก ๋ฐ๋๋ก ์์ * fix: Badge์ ๋ณ๊ฒฝ๋ Label ์ ์ฉ * feat: Label ์คํ ๋ฆฌ๋ถ argTypes ๋ฐ ํฐํธ ์์ ์์ * feat: ์ธํฐ๋ ์ ์ปดํฌ๋ํธ ์์ - ๋ฐฐ๊ฒฝ์ ์๋ ์์ ์์๋ ์ ๋์ํ๋๋ก ํจ - props๋ช ๋ณ๊ฒฝ ๋ฐ ์ถ๊ฐ * feat: ์ธํฐ๋ ์ ์คํ ๋ฆฌ๋ถ ์์ * style: Badge ๋ฐ Label ์คํ ๋ฆฌ ํ์ ์ฝ๋ ์ ๋ฆฌ * feat: ์ธํฐ๋ ์ description ์ถ๊ฐ * feat: ReactNode import ํ๊ธฐ * feat: Badge ์ปดํฌ๋ํธ text props -> children์ผ๋ก ๋ณ๊ฒฝ * style: ํ์ดํฌ๊ทธ๋ํผ ์คํ ์์ * feat: Badge, Interaction, Label ์คํ ๋ฆฌ๋ถ ์ปดํฌ๋ํธ ๋ฐฉ์์ ์คํ ๋ฆฌ ์์ฑ * feat: ์ธํฐ๋ ์ childHasBg, childRadius ๊ฐ ๋ฐ์ง ์๊ณ ์ธํฐ๋ ์ ๋ด๋ถ์์ ์ ๊ทผํ๋๋ก ์์ * feat: ์ธํฐ๋ ์ ์คํ ๋ฆฌ๋ถ ์์ * feat: Title, Callout, Hero ์ปดํฌ๋ํธ ๊ตฌํ (#23) * feat: Title ์ปดํฌ๋ํธ ๊ตฌํ * feat: Title ์คํ ๋ฆฌ๋ถ ์์ฑ * fix: border-radius ์คํด ํ ํฐ ์ค๋ฒ๋ผ์ด๋ฉ ์คํจ ๋ฌธ์ ๋ก ํ ํฐ ํ์ผ ์์ * feat: CalloutNumerical ์ปดํฌ๋ํธ ๊ตฌํ * feat: CalloutInformation ์ปดํฌ๋ํธ ๊ตฌํ * feat: HeroIndex ์ปดํฌ๋ํธ ๊ตฌํ * feat: Hero ์ปดํฌ๋ํธ ๊ตฌํ * feat: HeroIndex์ index min-width ์ค์ * feat: CalloutNumerical ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: CalloutInformation ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: HeroIndex ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: Hero ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: Title ReactNode import ํ๊ธฐ * remove: titleStyle lineHeight ์ ๊ฑฐ * remove: labelStyle lineHeight ์ ๊ฑฐ * feat: 22PR ๋ณ๊ฒฝ๋ Label Badge ์ปดํฌ๋ํธ ๋ฐ์ * feat: Title ์คํ ๋ฆฌ๊ฐ์ฒด ํ์ ์์ * feat: progress ์ปดํฌ๋ํธ ๊ตฌํ (#29) * feat: ProgressIndex ์ปดํฌ๋ํธ ๊ตฌํ * feat: ProgressBridge ๋ฐ ProgressIndicator ์ปดํฌ๋ํธ ๊ตฌํ * feat: ProgressItem ์ปดํฌ๋ํธ ๊ตฌํ * feat: Title textColor ์ ํ์ ์ธ Prop ์ถ๊ฐ * feat: ProgressVerticalBridge ๊ตฌํ * feat: Progress ๊ด๋ จ ์คํ ๋ฆฌ๋ถ ์์ฑ (Bridge ์ปดํฌ๋ํธ ์ ์ธ) * refactor: active style ์์ ๋ถ๋ฆฌ * remove: console.log ์ ๊ฑฐ * feat: new Array -> Array.from() ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ * feat: Title || -> ?? ๋ ๋ณํฉ ์ฐ์ฐ์๋ก ๋ณ๊ฒฝ undefined, null ์ผ ๊ฒฝ์ฐ์๋ง ๊ธฐ๋ณธ ํฐํธ ์์ ์ ์ฉ (๋น๋ฌธ์์ด๊ณผ ๊ฐ์ด ์ค์๋ก ๊ฐ์ ๋ฃ์์ ๊ฒฝ์ฐ๋ ์คํ์ผ ์ ์ฉ X) * feat: ๋ฒ์ฉ์ฑ์๋ ๋ฒํผ ์ปดํฌ๋ํธ ๊ตฌํ (#30) * chore: tailwind ์ฌ์ฉ ์ ํธ์์ฑ์ ์ํด clsx ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค. * move: ์์๋ก ์ฌ์ฉ๋ ๋ฒํผ ์ปดํฌ๋ํธ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * feat: BlockButton ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: BlockButton์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * feat: LabelButton ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: LabelButton์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * feat: storybook์์ ์ฌ์ฉํ ์ ์๋ ์คํ์ผ ์ํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: storybook์ด ๊ธฐ๋ณธ์ ์ผ๋ก docs๋ฅผ ์์ฑํ๋๋ก ์ค์ ํฉ๋๋ค. * refactor: ๋ฒํผ ์ปดํฌ๋ํธ๋ค์ ํ์ ๋ช ์ ์์ ํฉ๋๋ค. * refactor: ์คํ ๋ฆฌ๋ถ ์์์ ๋ค์ํ ๋ฒํผ์ ํํํ๋๋ก ์์ ํฉ๋๋ค. * typo: import ํ์ผ์ ๋ค์ด๋ฐ ์ค๋ฅ๋ฅผ ์์ ํฉ๋๋ค. * typo: ์คํ์ผ ํ์ผ์ ์๋ชป ์ ์ธ๋ ์คํ์ผ์ ์์ ํฉ๋๋ค. * typo: radius์ ์ ํธ๋ฆฌํฐ ๊ฐ ๋ค์ด๋ฐ์ ์์ ํฉ๋๋ค. * feat: Interaction ์ปดํฌ๋ํธ๋ฅผ ์ ์ฉํ๊ธฐ ์ํ ๋งต ๊ฐ์ฒด๋ฅผ ์ ์ธํฉ๋๋ค. * feat: ์ ์ธํ map ๊ฐ์ฒด๋ฅผ ์ด์ฉํด BlockButton์ ์ธํฐ๋ ์ ์ ์ ์ฉํฉ๋๋ค. * feat: ์ ์ธ๋ radius๋ฅผ ์ถ์ถํ๊ธฐ ์ํ ์ ํธ๋ฆฌํฐ ํจ์๋ฅผ ๊ตฌํํฉ๋๋ค. * refactor: ์ ํธ๋ฆฌํฐ ํจ์๋ฅผ ์ด์ฉํด BlockButton์ radius ๊ฐ์ Interaction ์ปดํฌ๋ํธ์ ์ ๋ฌํฉ๋๋ค. * feat: blockButton์ ๋งต ๊ฐ์ฒด ๋ค์ด๋ฐ์ ๊ตฌ์ฒดํํฉ๋๋ค. * feat: labelButton์ Interaction ์คํ์ผ ๊ฐ์ฒด๋ฅผ ์ ์ธํฉ๋๋ค. * feat: labelButton์ Interaction ์ปดํฌ๋ํธ๋ฅผ ์ ์ฉํฉ๋๋ค. * refactor: ์์ ๋ Interaction ์ปดํฌ๋ํธ๋ ๋์ด์ radius๋ฅผ props๋ก ๋ฐ์ง ์์ต๋๋ค. * refactor: ๋ฒํผ ์ปดํฌ๋ํธ๊ฐ Interaction ์ปดํฌ๋ํธ์ ๋ง์ถฐ์ง radius๋ฅผ ๊ฐ์ง๋๋ก ์ค์ ํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๋ ์ ํธ๋ฆฌํฐ ํจ์๋ฅผ ์ญ์ ํฉ๋๋ค. * feat: Interaction ์ปดํฌ๋ํธ์ outlineOffset ์ค์ ์ ์ถ๊ฐํฉ๋๋ค. * feat: LabelButton์ ์คํ์ผ ๊ฐ์ฒด์ ์ฌ์ด์ฆ ๋ณ offset ๊ฐ์ ์ถ๊ฐํฉ๋๋ค. * refactor: labelButton์ด Interaction ์์ offset ๊ฐ์ ๋์ ์ผ๋ก ํ ๋นํฉ๋๋ค. * feat: ๋์ ์คํ์ผ๋ง์ ์ํ ๋งคํ ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค. * refactor: Interaction์ ๋์ ์คํ์ผ๋ง ๋ฐฉ์์ ์์ ํฉ๋๋ค. * feat: ์์ด์ฝ๋ ธ๊ทธ๋ํผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ด์ฝ ์ปดํฌ๋ํธ ๊ตฌํ (#32) * feat: ์์ด์ฝ 13๊ฐ ์ปดํฌ๋ํธ ๊ตฌํ * feat: ์์ด์ฝ ์ฌ์ด์ฆ ์คํ์ผ ๊ฐ์ฒด ์์ฑ * feat: ์์ด์ฝ ์ฌ์ด์ฆ ์คํ์ผ ๊ฐ์ฒด ์์ฑ * feat: ์์ด์ฝ ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: ์คํ ๋ฆฌ๋ถ description ์ปดํฌ๋ํธ ์ด๋ฆ ์์ * remove: ์์ด์ฝ ๊ฐ๋ณ ์ปดํฌ๋ํธ ์ญ์ * remove: ์์ด์ฝ ๊ฐ๋ณ ์ปดํฌ๋ํธ ์คํ ๋ฆฌ๋ถ ์ญ์ * chore: vite-plugin-svgr ์ค์น * chore: svg ์์ด์ฝ์ ์ปดํฌ๋ํธ๋ก ์ฌ์ฉํ๊ธฐ ์ํ ์ค์ * feat: assets/svg ์์น์ ์์ด์ฝ svg ํ์ผ๋ค ์ถ๊ฐ * feat: ์์ด์ฝ ํตํฉ ์ปดํฌ๋ํธ ์์ฑ ๋ฐ ์์ด์ฝ ์ด๋ฆ ํ์ ์ ์ * feat: Icon ์ปดํฌ๋ํธ ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: Icon ์ปดํฌ๋ํธ switch -> ๊ฐ์ฒด ๋งคํ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ * fix: ์ธํฐ๋์ ์ปดํฌ๋ํธ ์ฌ๊ตฌํ ๋ฐ semantic ์ปฌ๋ฌ ํ ํฐ ์ ๋ฐ์ดํธ (#35) * fix: ์ธํฐ๋ ์ ์ฌ๊ตฌํ - ์ธํฐ๋ ์ scale ๊ฐ์ผ๋ก ํฌ๊ธฐ ์กฐ์ - ์ธํฐ๋ ์ ์ปดํฌ๋ํธ ๋ถ๋ชจ ์์ ๊ด๊ณ -> ํ์ ๊ด๊ณ๋ก ๋ฐฉ์ ๋ณ๊ฒฝ * design: semantic ํ ํฐ ์ ๋ฐ์ดํธ * feat: Interaction ์ปดํฌ๋ํธ isInversed props ์ถ๊ฐ * feat: ์์ ๋ interactionStyle ๋ฐ์ * remove: ๋ถํ์ ์ฝ๋ ์ญ์ * feat: Interaction ์ปดํฌ๋ํธ className props ์ถ๊ฐ * feat: ์ธํฐ๋ ์ ์คํ ๋ฆฌ๋ถ ์์ * fix: LabelButton import ๋ฒ๊ทธ ์์ * remove: semantic.json ํ์ผ ์ญ์ * docs: token.config.js ์ semantic.css ํ์ผ ์์ฑ ๋ฐฉ๋ฒ ์ฃผ์ ๋ฌ๊ธฐ * style: Interaction className ์ฝ๋ ์ค๋ฐ๊ฟ * feat: Input ์ปดํฌ๋ํธ ๊ตฌํ (#36) * feat: InputTextArea ์ปดํฌ๋ํธ ๊ตฌํ * Merge branch 'dev' of https://github.com/JECT-Study/JECT-Official-WebSite-Client into feat/24-input * feat: TextAreaField ์ปดํฌ๋ํธ ๋ถ๋ฆฌ, AnswerBox๋ก ์ปดํฌ๋ํธ๋ช ๋ณ๊ฒฝ * design: InputField grow ๊ฐ ์์ * feat: environment์ duration ํ ํฐ ๊ฐ ์์ฑ * feat: AnswerBox, InputField ์ปดํฌ๋ํธ ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: InputField, TextAreaField์ duration ๋ฐ motion ์ ์ฉ * rename: AnswerBox -> InputArea ๋ก ์ปดํฌ๋ํธ๋ช ๋ณ๊ฒฝ * rename: InputField -> Input ์ปดํฌ๋ํธ๋ช ๋ณ๊ฒฝ * feat: Input ์คํ ๋ฆฌ๋ถ ์์ด์ฝ ์คํ ๋ฆฌ ์ถ๊ฐ * rename: TextAreaField -> TextArea๋ก ์ปดํฌ๋ํธ๋ช ๋ณ๊ฒฝ * feat: InputArea required args ์ถ๊ฐ * style: TextArea ์ฝ๋ ์ ๋ฆฌ * style: Input ์ฝ๋ ์ ๋ฆฌ * feat: Label cursor-default ์์ฑ ์ถ๊ฐ * style: inputArea ์ฝ๋ ์ ๋ฆฌ * feat: InputField ๋ฒํผ ์์๋ค children์ผ๋ก ์ ๋ถ ๋ณ๊ฒฝ * feat: Input ์คํ ๋ฆฌ๋ถ ์์ * feat: InputField ๋ถํ์ํ props ์ ๊ฑฐ * feat: InputField ์คํ ๋ฆฌ๋ถ ์์ฑ * style: TextArea ์ฝ๋ ์ ๋ฆฌ * feat: input, textarea ์์ ํ์ ComponentPropsWithoutRef ์ฌ์ฉ * feat: ์ง์ํ๊ธฐ ํ์ด์ง UI ๊ตฌํ (#40) * chore: react-router-dom ์ค์น * feat: router ์ธํ ๋ฐ /apply ๋ผ์ฐํฐ ์ค์ * feat: ProgressItem์ content prop ํ์ ReactNode๋ก ๋ณ๊ฒฝ * feat: client-apply-01 ํ์ด์ง UI ๊ตฌํ (๋ฒํผ ์ ์ธ) * feat: ์ง์ํ๊ธฐ ๋งํฌ ํด๋ฆญ ์ ํ์ด์ง ํ๋จ์ผ๋ก ์ด๋ * fix: ์์ด์ฝ ์ค์ ์ถ๊ฐ * feat: ์ง์ ํ๊ธฐ ๋ฒํผ ์์ฑ * feat: ProgressItem p ํ๊ทธ -> div ํ๊ทธ๋ก ๋ณ๊ฒฝ * feat: ๋จธ์ง์ ์ถฉ๋์์๋ ํ์ผ ๋ณํฉ * remove: ๋ถํ์ํ ์ฝ๋ ์ ๊ฑฐ * feat: moveToBottom utils ํจ์ ์์ฑ * feat: CreateNewTab ์ปดํฌ๋ํธ ์์ฑ - ์๋ก์ด ํญ์ผ๋ก ํ์ดํผ๋งํฌ ์ด๊ธฐ * rename: scrollFucion -> scrollFunction์ผ๋ก ํ์ผ๋ช ์คํ ์์ * feat: apply page์ ํ์ํ ๋ฐ์ดํฐ ๊ฐ์ฒด ๋ฐฐ์ด ์์ฑ * feat: ๋ฆฌํฉํ ๋ง ๋ฐ ์ง์ํ๊ธฐ ๋ฒํผ ui ๊ตฌํ * style: ์ฝ๋ ์คํ์ผ ์ ๋ฆฌ * remove: router.tsx ํ์ผ ์ด๋ * fix: router import ๊ฒฝ๋ก ์์ * feat: now -> currentDate๋ก ๋ณ์๋ช ๋ณ๊ฒฝ ๋ฐ applyData ๊ฐ์ฒด id ๊ฐ ์ถ๊ฐ * feat: ์ง์ํ๊ธฐ ํ์ด์ง ํ์ดํ ์์ํ * rename: CreateNewTab -> NewTabLink ์ปดํฌ๋ํธ๋ช ์์ * feat: Card์ Post ์ปดํฌ๋ํธ ๊ตฌํ (#37) * feat: Post ์ปดํฌ๋ํธ๋ฅผ ํผ๋ธ๋ฆฌ์ฑ ํฉ๋๋ค. * feat: Post ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * feat: Card ์ปดํฌ๋ํธ๋ฅผ ํผ๋ธ๋ฆฌ์ฑ ํฉ๋๋ค. * feat: ์คํ ๋ฆฌ๋ถ์ ์ํ ์ํ ์ด๋ฏธ์ง๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: Card ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * feat: descriptionVisible props์ ๋ฐ๋ผ children ์์์ ์ถ๋ ฅ ์ ๋ฌด๋ฅผ ์กฐ๊ฑด๋ถ๋ก ๋ ๋๋งํฉ๋๋ค. * feat: ์กฐ๊ฑด๋ถ ๋ ๋๋ง ์ ๋ถ๊ธฐ๊ฐ ํ์ํ ํ๊ทธ๋ฅผ ๋ฐ์ํฉ๋๋ค. * feat: ์ถ๊ฐ๋ props๋ฅผ ์คํ ๋ฆฌ๋ถ์ ๋ฐ์ํฉ๋๋ค. * fix: ๊ณต์ฉ ์ปดํฌ๋ํธ๊ฐ ๋จ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ฐ์ง๋๋ก ์์ ํฉ๋๋ค. * rename: boolean typo์ props ๋ค์ด๋ฐ์ ์์ ํฉ๋๋ค. * refactor: ๋ถ๋ชจ container์ items-stretch๋ฅผ ์ ์ฉํ๊ณ , flex grow๋ฅผ ์ ์ฉํฉ๋๋ค. * feat: ์คํ ๋ฆฌ๋ถ์ ๊ธฐ๋ณธ args๋ฅผ ์ฃผ์ ํฉ๋๋ค. * feat: ํญ ์ปดํฌ๋ํธ ๊ตฌํ (#39) * feat: Tab ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: Tab ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * feat: Tab ์ปดํฌ๋ํธ์ Interaction์ ์ ์ฉํฉ๋๋ค. * feat: active ์ TabItem์ stroke๊ฐ ๊ธฐ๋ณธ stroke์ ์ฌ๋ผ์ค๋๋ก ํฉ๋๋ค. * refactor: context API๋ฅผ ์ฌ์ฉํ์ฌ Tab์ ์ ๋ฐ์ ์ธ ์ฝํ ์ธ ์ ํญ ํค๋๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. * feat: ์ค์ง์ ์ธ ๋ฉ์ธ ์ธํฐํ์ด์ค๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค. * typo: ์ปดํฌ๋ํธ์ ์ธํฐํ์ด์ค์ ๋ค์ด๋ฐ์ ๋จ์ํ์ผ๋ก ์์ ํฉ๋๋ค. * feat: ์์ ๋ ์ปดํฌ๋ํธ๋ฅผ ์คํ ๋ฆฌ๋ถ์ ๋ฐ์ํฉ๋๋ค. * refactor: tab์ id๋ฅผ number ํํ๋ก ๋ณํํฉ๋๋ค. * refactor: tab header์ width๋ฅผ 100%๋ก ์ฒ๋ฆฌํฉ๋๋ค. * feat: ์ถ๊ฐ์ ์ธ ์ผ์ด์ค์ ์คํ ๋ฆฌ๋ถ์ ์ฃผ์ ํฉ๋๋ค. * feat: ํ๊ทธ์ ๋ช ์์ ์ธ aria-label์ ์ถ๊ฐํฉ๋๋ค. * feat: FAQ ํ์ด์ง UI ๊ตฌํ ๋ฐ ์์ฝ๋์ธ ์ปดํฌ๋ํธ ๊ตฌํ (#53) * feat: faq ํ์ด์ง ๋ฐ ๋ผ์ฐํฐ ์์ฑ * move: Badge, Label, Title ํด๋๋ก ๋ฌถ์ * feat: Badge, Label, Title ๋ณ๊ฒฝ๋ ๊ฒฝ๋ก ์์ * fix: Title textColor null ํ์ ํ์ฉ * feat: Accordion ์ปดํฌ๋ํธ ์์ฑ * feat: list-ject(list-style-type) ์ ํธ๋ฆฌํฐ ์คํ์ผ ์์ฑ * feat: faq '์ง์ ๊ด๋ จ' TabPanel ๊ตฌ์ฑ * feat: Accordion ์ปดํฌ๋ํธ expand ์์ด์ฝ ๋ฐ ์บก์ prop ์ถ๊ฐ * feat: FAQ ํ์ด์ง ๋ฐ์ดํฐ ๊ฐ์ฒด ๋ฐฐ์ด ์์ฑ * feat: list-decimal margin ์์ ๋ฐ list-ject -> list-disc-ject ๋ก ์คํ์ผ ๋ค์ด๋ฐ ๋ณ๊ฒฝ * feat: Faq ํ์ด์ง ์ปดํฌ๋ํธ faq ๊ฐ์ฒด ๋ฐ์ดํฐ ์ ์ฉ * feat: Accordion ์คํ ๋ฆฌ๋ถ ์์ฑ * fix: Accordion ์ปดํฌ๋ํธ, ref ์ด์ฉํ ์คํ์ผ ์ฃผ์ ๋ฐฉ์ -> className์ ์ง์ ์กฐ๊ฑด๋ถ ์ฒ๋ฆฌ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ * feat: Select ์ปดํฌ๋ํธ ๊ตฌํ (#44) * move: ๋ถํ์ํ import ๋ฌธ์ ์ ๊ฑฐํฉ๋๋ค. * feat: Select ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: Select ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * feat: Select ์ปดํฌ๋ํธ์ Interaction์ ์ฃผ์ ํฉ๋๋ค. * feat: Interaction ์ฌ์ฉ์ duration๊ณผ motion ์์ฑ์ ์ถ๊ฐํฉ๋๋ค. * refactor: Select ์ปดํฌ๋ํธ์ disabled props๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: ์์ ๋ ์ปดํฌ๋ํธ๋ฅผ ์คํ ๋ฆฌ๋ถ์ ๋ฐ์ํฉ๋๋ค. * fix: ์ ์ฉ๋์ง ์๋ motion๊ณผ duration ์คํ์ผ์ ์์ ํฉ๋๋ค. * refactor: SelectItem์ ์ธํฐํ์ด์ค ๊ตฌ์กฐ๋ฅผ ํ์ฅ์ฑ ์๊ฒ ๋ณ๊ฒฝํฉ๋๋ค. * fix: ์ต์์ div์ width๋ฅผ 100%๋ก ์์ ํฉ๋๋ค. * rename: rest props์ ๋ค์ด๋ฐ์ ์ง๊ด์ ์ผ๋ก ์์ ํฉ๋๋ค. * rename: props๋ก ์ ๋ฌ๋ onClick ํธ๋ค๋ฌ์ ์ด๋ฆ์ ๊ตฌ๋ถ ์ง์ต๋๋ค. * refactor: Select ์ปดํฌ๋ํธ์ defaultValue ์ต์ ๋ props๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: SnackBar ์ปดํฌ๋ํธ ๊ตฌํ (#45) * feat: blockButton์ Interaction์ isInversed ๊ฐ์ ์ถ๊ฐํฉ๋๋ค. * feat: button ์ปดํฌ๋ํธ์ peer ์คํ์ผ์ ์ถ๊ฐํฉ๋๋ค. * refactor: BlockButton์ disabled ์์ฑ์ ์ถ๊ฐํฉ๋๋ค. * feat: BlockButton์ disabled case์ ์ถ๊ฐ์ ๋ง์ถฐ ์คํ ๋ฆฌ๋ถ์ ์์ ํฉ๋๋ค. * feat: Icon์ด ์์ ์์ disabled ์ผ์ด์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: BlockButton์ Interaction์ motion๊ณผ duration์ ์ถ๊ฐํฉ๋๋ค. * refactor: LabelButton์ disabled ์์ฑ์ ์ฃผ์ ํฉ๋๋ค. * move: ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ Interaction ๊ด๋ จ ๊ฐ์ฒด๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * feat: LabelButton์ Interaction์ isInversed ์์๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: LabelButton์ Interaction์ duration๊ณผ motion์ ์ถ๊ฐํฉ๋๋ค. * feat: LabelButton์ Interaction์ scale์ ์ฃผ์ ํฉ๋๋ค. * feat: ์์ ๋ LabelButton์ ์คํ ๋ฆฌ๋ถ์ ๋ฐ์ํฉ๋๋ค. * feat: LabelButton์ Interaction ์ฃผ์ ์ ์ํ peer ์์ฑ์ ์ถ๊ฐํฉ๋๋ค. * rename: ๋ฒํผ ์ปดํฌ๋ํธ๋ค์ ์คํ ๋ฆฌ๋ถ ๋ค์ด๋ฐ์ ์ปดํฌ๋ํธ ์ด๋ฆ๊ณผ ํต์ผํฉ๋๋ค. * feat: SnackBar ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: SnackBar ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * feat: LabelButton์ children์ ์ต์ ๋๋ก ์์ ํฉ๋๋ค. * feat: LabelButton์์ ์์ด์ฝ๋ง ์๋ ์คํ ๋ฆฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: onAction props๋ฅผ ์ต์ ๋์์ ํ์๋ก ๋ณ๊ฒฝํฉ๋๋ค. * Fix: ์ธํฐ๋ ์ ์ฌ๊ตฌํ 3์ฐจ (#60) * feat: ์ธํฐ๋ ์ ์คํ์ผ ๋ค์ ์์ฑ * feat: global.css์ interaction.css ๋ฑ๋ก * remove: ๊ธฐ์กด ์ธํฐ๋ ์ ์ปดํฌ๋ํธ, ์คํ ๋ฆฌ๋ถ, ์คํ์ผ ํ์ผ ์ญ์ * fix: ๊ธฐ์กด ์ธํฐ๋ ์ ์ ์ฉ๋์ด์๋ ์ปดํฌ๋ํธ์ ์๋ก์ด ์ธํฐ๋ ์ ์คํ์ผ ์ ์ฉ * feat: transition-faster-fluent ์คํ์ผ ์ ์ * refactor: transition-faster-fluent ๊ณตํต์ผ๋ก ๋ค์ด๊ฐ๋ ๊ณณ์ ์ ์ฉ * fix: Variant, Density ํ์ ์์ฑํ์ฌ eslint ์๋ฌ ํด๊ฒฐ * feat: Header, Footer ๊ด๋ จ ์ปดํฌ๋ํธ ๊ตฌํ ๋ฐ Layout ์ ์ฉ (#56) * feat: Header, Footer ์ปดํฌ๋ํธ ์์ฑ * feat: Layout ์ปดํฌ๋ํธ ์์ฑ * feat: ๋ ์ด์์ ๋ผ์ฐํฐ ์ค์ * feat: Logo ์ปดํฌ๋ํธ ๊ตฌํ * feat: NavigationItem ์ปดํฌ๋ํธ ๊ตฌํ * feat: /project, /activity ๋ผ์ฐํฐ ์์ฑ ๋ฐ pathName ํ์ ์์ฑ * feat: NavigationItem path์ ๋ฐ๋ผ UI ๋ณ๊ฒฝ * feat: Navigation ์ปดํฌ๋ํธ ๊ตฌํ * feat: Header ๊ตฌํ * fix: NewTabLink ์ปดํฌ๋ํธ children ํ์ ReactNode๋ก ๋ณ๊ฒฝ * feat: Footer ์ปดํฌ๋ํธ ๊ตฌํ * chore: footer ์ฉ ์ ํ๋ธ svg ์์ฑ * fix: Navigation ์ปดํฌ๋ํธ ์๋ฉํฑ ํ๊ทธ ํ์ฉ * feat: PageContainer ์์ฑ - page ์ปดํฌ๋ํธ๋ค์ ๋์ด, ๋ฐฐ๊ฒฝ์ ์ง์ * refactor: NavigationItem button props ์ ๊ฑฐ ๋ฐ disabled props ์ถ๊ฐ * move: PathName ํ์ NavigationItem.tsx๋ก ์ด๋ * feat: Navigation Logo ํ ์ด๋ ๊ธฐ๋ฅ ๊ตฌํ ๋ฐ focus-visible ์คํ์ผ ์ง์ * feat: Footer์ ์ ํธ ์๊ฐ ๋ฌธ๊ตฌ ๋ฐ ์ด๋ฉ์ผ ์์ํ * rename: Footer, Header, Layout, PagesContainer ํ์ผ ์์น ์์ * fix: NavigationItem์ PathName ํ์ ์์ * feat: Footer, Navigation, NavigationItem ์ปดํฌ๋ํธ ์คํ ๋ฆฌ๋ถ ์์ฑ * fix: router Layout import ๊ฒฝ๋ก ์์ * fix: faq ํ์ด์ง mainํ๊ทธ->sectionํ๊ทธ๋ก ๋ณ๊ฒฝ * feat: Logo ์คํ ๋ฆฌ๋ถ ์์ฑ * remove: Logo ์คํ ๋ฆฌ๋ถ ๋ถํ์ํ ์ฝ๋ ์ ๊ฑฐ * fix: Navigation ์คํ ๋ฆฌ๋ถ ์คํ ๋ฆฌ ์์ * rename: ject.ts -> footer.ts ๋ก ํ์ผ๋ช ๋ณ๊ฒฝ * feat: ๋ค๋น๊ฒ์ด์ PathName ํ์ ์์ฑ * fix: ์์ฑํ PathName ํ์ ์ ์ฉ * feat: footer.ts ์์ ์ํฌํธ ๊ฒฝ๋ก ์์ * feat: PATH ๋ค์ ์์ํ * feat: PathKeys, PathValues ํ์ ์์ฑ * refactor: PATH ์์ ์ ์ฉ * fix: NavigationItem pathName ํ์ PathValues ๋ก ์ง์ * remove: ๋ถํ์ํ์ผ ์ญ์ * fix: NavigationItem, button -> NavLink ํ๊ทธ๋ก ๋ณ๊ฒฝ ๋ฐ ์ธํฐ๋ ์ ์ฌ์ ์ฉ * fix: NavigationItem className ๋์ด์ฐ๊ธฐ ์ถ๊ฐ * feat: NavigationItem disabled ์ํ ํ๊ทธ ์ ๊ฑฐ * refactor: Card ๋ฐ Post ์ปดํฌ๋ํธ Interaction ์ฃผ์ (#55) * refactor: Card ์ปดํฌ๋ํธ์ ์ต์์ ํ๊ทธ๋ฅผ button์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. * feat: Card ์ปดํฌ๋ํธ์ Interaction์ ์ฃผ์ ํฉ๋๋ค. * refactor: Card ์ปดํฌ๋ํธ์ disabled ์์ฑ์ ์ถ๊ฐํฉ๋๋ค. * refactor: Card ์ปดํฌ๋ํธ์ ์ฌ์ง์ด ์ถ๋ ฅ๋๋ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. * feat: Card ์ปดํฌ๋ํธ์ imageContainer์ ํ๋จ border์ ์ถ๊ฐํฉ๋๋ค. * feat: ์คํ ๋ฆฌ๋ถ์ disabled์ ์ฌ๋ก๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: disabled์ ์ ๋ฌด์ ๋ฐ๋ผ cursor ์ด๋ฒคํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: Card ์ปดํฌ๋ํธ์ disabled ๊ธฐ๋ณธ ์ต์ ์ ์ถ๊ฐํฉ๋๋ค. * refactor: Post ์ปดํฌ๋ํธ์ disabled ์์ฑ์ ์ถ๊ฐํฉ๋๋ค. * fix: ์๋ชป์ ์ฉ๋ Interaction์ duration์ ์์ ํฉ๋๋ค. * feat: Post ์ปดํฌ๋ํธ์ Interaction์ ์ฃผ์ ํฉ๋๋ค. * feat: Post ์ปดํฌ๋ํธ์ Pointer ์ด๋ฒคํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: Post ์ปดํฌ๋ํธ์ ์ค์ ์ฌ์ฉ ์์์ disabled ์ผ์ด์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: ์คํ์ผ๋ง์ ๋ด๋ถ clsx๋ก ํต์ผํ์ฌ ๊ด๋ฆฌํฉ๋๋ค. * refactor: ์ต์์ button ํ๊ทธ๋ฅผ a ํ๊ทธ๋ก ์์ ํฉ๋๋ค. * feat: ํ ์คํธ๊ฐ ํํ๋๋ ๋ถ๋ถ์ truncate ํด๋์ค๋ฅผ ์ฃผ์ ํฉ๋๋ค. * refactor: Label์ Title ์ปดํฌ๋ํธ์ ์คํ์ผ์ ์ค๋ฒ๋ผ์ด๋ฉ ํ ์ ์๋ ์์๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: Card ์ปดํฌ๋ํธ์ ํ ์คํธ ์์๋ค์ด ์ค๋ฒํ๋ก์ฐ ์ ๋ง์ค์ํ ์ฒ๋ฆฌ๋ฅผ ํฉ๋๋ค. * fix: ์๋ชป ์ ์ฉ๋ border์ ์์ ํฉ๋๋ค. * refactor: Post ์ปดํฌ๋ํธ์ ์ต์์ ํ๊ทธ๋ฅผ a ํ๊ทธ๋ก ๋ณ๊ฒฝํฉ๋๋ค. * refactor: Post ์ปดํฌ๋ํธ์์ ์๋ชป ์ ์ฉ๋ ์คํ์ผ๋ง์ ์์ ํฉ๋๋ค. * feat: Post ์ปดํฌ๋ํธ์ args๋ฅผ ์ฃผ์ ํ์ฌ Default ์ผ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค. * refactor: Post ์ปดํฌ๋ํธ์ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๊ณ , ๋ง์ค์ํ ์ฒ๋ฆฌ๊ฐ ๋ ์ ์๋๋ก ํฉ๋๋ค. * move: disabled ์ ์ ์ธ๋ ๋ถํ์ํ ์์ฑ์ ์ ๊ฑฐํฉ๋๋ค. * refactor: Card ์ปดํฌ๋ํธ์ ์ต์์ ํ๊ทธ๋ฅผ Link ํ๊ทธ๋ก ๋ณ๊ฒฝํฉ๋๋ค. * refactor: Card ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ MemoryRouter์ ์ฃผ์ ํ To ๊ธฐ๋ณธ ์ค์ ์ ์ถ๊ฐํฉ๋๋ค. * refactor: ๋ฎ์ด์์์ง๋ block ์์๋ฅผ ์ ๊ฑฐ ํ className์ผ๋ก๋ง ์คํ์ผ์ ์ฌ์ค์ ํฉ๋๋ค. * refactor: ๋ด์ฉ ํ๋์ height๋ฅผ ์ฌ์ฃผ์ ํฉ๋๋ค. * refactor: Post ์ปดํฌ๋ํธ์์ ๋ฎ์ด์์์ง๋ block ์์๋ฅผ ์ ๊ฑฐ ํ className์ผ๋ก๋ง ์คํ์ผ์ ์ฌ์ค์ ํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๊ฒ๋ date props๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * refactor: Post ์ปดํฌ๋ํธ์ ์์ ๋ ๊ตฌ์กฐ๋ฅผ ๋ฐ์ํฉ๋๋ค. * feat: a ํ๊ทธ์ ์ ํฉํ ๊ธฐ๋ณธ target๊ณผ rel์ ์ถ๊ฐํฉ๋๋ค. * feat: Post ์ปดํฌ๋ํธ์ ๊ธฐ๋ณธ target๊ณผ rel ์ค์ ์ ๋ํ ์ค๋ช ์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * feat: Post ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ href๋ฅผ ์ฌ์ฉํ๋ ์ผ์ด์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: Title ์ปดํฌ๋ํธ ๊ตฌ์กฐ๋ฅผ ๋จ์ํํฉ๋๋ค. * refactor: Label ์ปดํฌ๋ํธ ๊ตฌ์กฐ๋ฅผ ๋จ์ํํ๊ณ className props๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * refactor: Interaction ์ปดํฌ๋ํธ๋ฅผ ์ ๊ฑฐํ๊ณ , className์ผ๋ก ๋ง์ค์ํ ์ฒ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. * feat: ์์ฃผ ์ฌ์ฉ๋๋ interaction์ ์ผ์ด์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: ์์ ๋ Interaction์ Post์ ์ฌ์ ์ฉํฉ๋๋ค. * fix: ์์ ๋ interaction์ ๋ค์ด๋ฐ์ ์ ์ฉํฉ๋๋ค. * refactor: ์์ ๋ Interaction์ Card ์ปดํฌ๋ํธ์ ์ ์ฉํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๋ className์ ์ ๊ฑฐํฉ๋๋ค. * refactor: focus ํจ๊ณผ๋ ํค๋ณด๋ ์ฌ์ฉ์์๊ฒ๋ง ๋ํ๋ฉ๋๋ค. * feat: Role ์ปดํฌ๋ํธ ๊ตฌํ (#63) * feat: ์ด๋ฏธ์ง asset์ png ํํ๋ก ์ถ๊ฐํฉ๋๋ค. * feat: Badge ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: Badge ์ปดํฌ๋ํธ์ storybook์ ์ถ๊ฐํฉ๋๋ค. * feat: Role ์ปดํฌ๋ํธ ์ค Hero๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: Hero ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * fix: ์คํ ๋ฆฌ๋ถ์ title์ ์ค๋ณต๋์ง ์๊ฒ ์์ ํฉ๋๋ค. * fix: props์ ๋ค์ด๋ฐ์ ์ง๊ด์ ์ผ๋ก ์์ ํฉ๋๋ค. * refactor: ๋จ์ํ ์คํ์ผ์ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด ํ์์ผ๋ก ์์ ํฉ๋๋ค. * rename: ๊ณตํต๋ ์ด๋ฆ์ ๊ฐ์ง Badge๋ฅผ RoleBadge๋ก ๋ค์ด๋ฐ์ ์์ ํฉ๋๋ค. * rename: ๊ณตํต๋ ์ด๋ฆ์ ๊ฐ์ง Hero๋ฅผ RoleHero๋ก ๋ค์ด๋ฐ์ ์์ ํฉ๋๋ค. * refactor: img์ alt ๋ค์ด๋ฐ์ ์ง๊ด์ ์ผ๋ก ์์ ํฉ๋๋ค. * refactor: ์ต์์ div์ ์คํ์ผ์ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด ํํ๋ก ๋ณ๊ฒฝํฉ๋๋ค. * move: ๋ถํ์ํ import ๋ฌธ์ ์ ๊ฑฐํฉ๋๋ค. * move: ๋ถํ์ํ import ๋ฌธ์ ์ ๊ฑฐํฉ๋๋ค. * refactor: ์ปดํฌ๋ํธ ๋ฐฐ๊ฒฝ์ ๋ฐ์๋ opacity๋ฅผ ๋ฐ์ํฉ๋๋ค. * refactor: ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋๋ ํ์ ์ ๋ถ๋ฆฌํฉ๋๋ค. * fix: opacity ์คํ์ผ ์ ์ฉ ๋ฐฉ์์ ๋ณ๊ฒฝํฉ๋๋ค. * feat: dialog ์ปดํฌ๋ํธ ๊ตฌํ (#61) * feat: Dialog ์ปดํฌ๋ํธ ๊ตฌํ * feat: useDialog ํ ์์ฑ * feat: Dialog ์คํ ๋ฆฌ๋ถ ์์ฑ * remove: ๋ถํ์ํ index.ts ํ์ผ ์ญ์ * refactor: useDialog useState ํ์ ๋ช ์ ์ ๊ฑฐ * fix: props ๋ค์ด๋ฐ ๋ณ๊ฒฝ ๋ฐ btnLayout์ ๋ฐ๋ฅธ ๋ฒํผ ์์น ์์ + ์คํ ๋ฆฌ๋ถ ์์ * feat: Dialog BlockButton className ์ ๊ฑฐ * chore: favicon ์ค์ (#58) * chore: ํ๋น์ฝ png ์ถ๊ฐ * chore: index.html ํ๋น์ฝ ์ค์ * feat: ์์ด์ฝ ์ถ๊ฐ (#74) * chore: ์๋ก์ด ์์ด์ฝ svg ํ์ผ 6๊ฐ ์ถ๊ฐ * feat: ์์ด์ฝ ์ปดํฌ๋ํธ์ ์๋ก์ด ์์ด์ฝ ์ถ๊ฐ * feat: ์์ด์ฝ ์คํ ๋ฆฌ๋ถ ์ ๋ฐ์ดํธ (์๋ก์ด ์์ด์ฝ 6๊ฐ ์ถ๊ฐ) * fix: HeroIndex ์ปดํฌ๋ํธ ์์ (#80) * fix: HeroIndex์ Badge ๋ฐฐ๊ฒฝ์์/ํฐํธ์์ ์ฃผ์ ๊ฐ๋ฅํ๋๋ก props ์์ * feat: HeroIndex ์คํ ๋ฆฌ๋ถ ์์ฑ ์์ * feat: ํ๋ ํ์ด์ง UI ๊ตฌํ (#77) * feat: ํ๋ ํ์ด์ง router ์ค์ * feat: ์์ ๋ฐ์ดํฐ ์ด์ฉํ์ฌ Activity ํ์ด์ง UI ๊ตฌํ * feat: Toast ๊ตฌํ (#67) * feat: toastStore ์์ฑ * feat: Toast ์ปดํฌ๋ํธ ๊ตฌํ ๋ฐ toast ์ ๋๋ฉ์ด์ ์ ์ * feat: useToast ํ ์์ฑ * feat: Toast, useToast ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: Layout์ Toast ์ปดํฌ๋ํธ ์ถ๊ฐ * refactor: ToastType bg -> backgroundColor๋ก ๋ค์ด๋ฐ ์์ * refactor: Toast ์ปดํฌ๋ํธ useState ํ์ ์ถ๋ก ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ * refactor: Toast className clsx ์ฌ์ฉ * remove: useToast ์ญ์ * fix: useToast -> useToastActions ์ฌ์ฉ์ผ๋ก ์คํ ๋ฆฌ๋ถ ์์ * feat: toastStore ์คํ๋ ๋ ์ฐ์ฐ์ ์ฌ์ฉ์ผ๋ก ๋ถ๋ณ์ฑ ์งํค๊ธฐ * refactor: animation.css ์์ฑ ๋ฐ ์ ๋๋ฉ์ด์ ๊ด๋ จ css ์ฝ๋ ๋ถ๋ฆฌ * feat: ๋ฉ์ธํ์ด์ง UI ๊ตฌํ (#78) * feat: ์ ๋๋ฉ์ด์ ๋ถ๋ถ์ ์์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: Main ํ์ด์ง์ ํ์ ๊ตฌํํฉ๋๋ค. * feat: ์ ๋๋ฉ์ด์ ์ด ๋ค์ด๊ฐ๋ ๋ถ๋ถ์ ์ปดํฌ๋ํธํํฉ๋๋ค. * feat: AnimatedSection์ ์คํ ๋ฆฌ๋ถ์ ์ถ๊ฐํฉ๋๋ค. * chore: gsap ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํฉ๋๋ค. * refactor: gsap๋ฅผ ์ด์ฉํด ์ ๋๋ฉ์ด์ ์ ์ฌ๊ตฌ์ฑํฉ๋๋ค. * feat: AnimatedSection์ ๋ฉ์ธํ์ด์ง์ ์ ์ฉํฉ๋๋ค. * feat: ๋ฉ์ธํ์ด์ง๋ฅผ ๋ผ์ฐํธ์ ์ถ๊ฐํฉ๋๋ค. * feat: ๋ฉ์ธํ์ด์ง์ ๋๋ฒ์งธ ์น์ ์ ๊ตฌํํฉ๋๋ค. * refactor: HeroIndex์ width์ 100%๋ฅผ ๋ถ์ฌํฉ๋๋ค. * refactor: CalloutNumerical์ width์ 100%๋ฅผ ๋ถ์ฌํฉ๋๋ค. * feat: ๋ฉ์ธํ์ด์ง์ ์ธ๋ฒ์งธ section์ ๊ตฌํํฉ๋๋ค. * feat: ๊ณตํต์ ์ผ๋ก ์ ์ฉ๋๋ ํ๋ ์์ className์ ์์ํํฉ๋๋ค. * feat: Tab ์ปดํฌ๋ํธ์ cursor pointer ์คํ์ผ์ ์ถ๊ฐํฉ๋๋ค. * feat: ๋ฉ์ธํ์ด์ง์ ๋ค๋ฒ์งธ section์ ๊ตฌํํฉ๋๋ค. * refactor: Hero ์ปดํฌ๋ํธ์ content๋ฅผ children ํํ๋ก ๋ฐ๋๋ก ์์ ํฉ๋๋ค. * refactor: HeroIndex ์ปดํฌ๋ํธ์ content๋ฅผ children ํํ๋ก ๋ฐ๋๋ก ์์ ํฉ๋๋ค. * feat: ๋ฉ์ธํ์ด์ง์ ๋ง์ง๋ง section์ ๊ตฌํํฉ๋๋ค. * refactor: ์์ ๋ HeroIndex ์ปดํฌ๋ํธ์ props ๊ตฌ์กฐ๋ฅผ ๋ฐ์ํฉ๋๋ค. * move: ๋ถํ์ํ import ๋ฌธ์ ์ ๊ฑฐํ๊ณ ์ ๋ ฌํฉ๋๋ค. * rename: ๊ณตํต wrapper์ ์คํ์ผ ๋ช ์นญ์ ์ง๊ด์ ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. * refactor: Hero ์ปดํฌ๋ํธ๊ฐ badge์ ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ ์ํํ๋๋ก ์์ ํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๋ badgeText props ๊ฐ์ ์ ๊ฑฐํฉ๋๋ค. * fix: ์ ๋๋ฉ์ด์ ์ ์ํ section์ ์คํ์ผ์ ์๊ตฌ์ฌํญ์ ๋ง์ถฐ ๋ณ๊ฒฝํฉ๋๋ค. * feat: ๋ฉ์ธํ์ด์ง์ scroll ์คํ์ผ์ ์ถ๊ฐํฉ๋๋ค. * feat: ๋ฉ์ธ ํ์ด์ง์ ์คํฌ๋กค ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: ์คํฌ๋กค ํธ๋ฆฌ๊ฑฐ ์งํ ์ context๋ฅผ ์ด์ฉํด ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ต์ํํฉ๋๋ค. * refactor: ๋๋ฉ ํ์ด์ง ์ ๋๋ฉ์ด์ ์ด ํ๊ธ์ ์ฉ ํ์ดํ ๋๋๋ก ์์ ํฉ๋๋ค. * feat: ํ์๋ผ์ธ section์ ํ์ํ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค. * feat: ํ์๋ผ์ธ section์ ๊ตฌ์กฐ ๋ถํด ํ ๋น์ ์ด์ฉํ์ฌ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋งคํํฉ๋๋ค. * fix: ์๋ชป ๋ฐ์๋ RoleHero์ ๋์์ธ์ ์์ ํฉ๋๋ค. * feat: ํฌ์ง์ section์ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค. * feat: ํฌ์ง์ section์ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐ ๋ถํด ํ ๋น์ผ๋ก ๋งคํํฉ๋๋ค. * fix: Hero ์ปดํฌ๋ํธ์ ์๋ชป ์ ์ฉ๋ ์คํ์ผ์ ์์ ํฉ๋๋ค. * feat: ํต์ฌ ๊ฐ์น section์ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค. * feat: ํต์ฌ ๊ฐ์น section ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐ ๋ถํด ํ ๋น์ผ๋ก ๋งคํํฉ๋๋ค. * fix: HeroIndex์ ์๋ชป ์ ์ฉ๋ padding ๊ฐ์ ์์ ํฉ๋๋ค. * move: ๋ถํ์ํ ์ฃผ์์ ์ ๊ฑฐํฉ๋๋ค. * feat: Title์ ์ผ๋ถ๋ถ์ accent ์์์ ์ฃผ์ ํฉ๋๋ค. * fix: ์๋ชป ์ ์ฉ๋ ์คํ์ผ์ ์์ ํฉ๋๋ค. * fix: ์๋ชป ์ ์ฉ๋ ์คํ์ผ์ ์ฌ์์ ํฉ๋๋ค. * fix: ๋ถํ์ํ fragment๋ฅผ ์ ๊ฑฐํ๊ณ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋จ์ํํฉ๋๋ค. * feat: ๊ฐ์ฒด ๋ฐ์ดํฐ์ ํ์ ์ ๊ตฌ์ฒดํํฉ๋๋ค. * move: ๋ถํ์ํ๊ฒ ์ ์ฉ๋ ์คํ์ผ์ ์ ๊ฑฐํฉ๋๋ค. * feat: section์ ๋ทฐํฌํธ๋ฅผ dvh๋ก ์ฌ์ ์ํฉ๋๋ค. * feat: ์คํฌ๋กค ๊ฐ๋ฅํ ์์์ ์คํฌ๋กค ๋ฐ๋ฅผ ํ์ํ์ง ์๋ global ์คํ์ผ์ ์ถ๊ฐํฉ๋๋ค. * refactor: ์คํฌ๋กค ์ ๋๋ฉ์ด์ ๋์ ์ ๊ธฐ๋ณธ ์คํฌ๋กค์ ๋นํ์ฑํํ๋๋ก ๊ตฌ์กฐ๋ฅผ ์์ ํฉ๋๋ค. * feat: gsap ํ๋ฌ๊ทธ์ธ์ ์ง์ ์ ์ main.tsx๋ก ์ค์ ํฉ๋๋ค. * refactor: context๋ฅผ ์ด์ฉํด context ๋ด๋ถ section์ ๋ํด์๋ง ์ ๋๋ฉ์ด์ ์ฒ๋ฆฌ๋ฅผ ์ํํฉ๋๋ค. * feat: ํ๋จ์์ ์๋จ์ผ๋ก ์ฌ๋ผ๊ฐ๋ ์คํฌ๋กค ์ ๋๋ฉ์ด์ ์ ์ถ๊ฐํฉ๋๋ค. * feat: ๊ฐ์ฒด ๋ฐ์ดํฐ์ ๋ฑ์ง ์คํ์ผ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: HeroIndex์ ๋ฑ์ง ์คํ์ผ์ ์ถ๊ฐํฉ๋๋ค. * move: ์ ๋๋ฉ์ด์ ๋๋ฒ๊น ์ ์ํ marker ์ต์ ์ ์ ๊ฑฐํฉ๋๋ค. * move: ์๋จ ์คํฌ๋กค ์ ๋๋ฉ์ด์ ๋๋ฒ๊น ์ ์ํ marker ์ต์ ์ ์ ๊ฑฐํฉ๋๋ค. * feat: apply-3 ํ์ด์ง ๋ฐ ์ง์ ์๋ฃ ํ์ด์ง UI ๊ตฌํ (#81) * feat: ์ง์ ๊ณผ์ ํ์ด์ง PATH ์ถ๊ฐ * feat: ์ง์ ๊ณผ์ ํ์ด์ง๋ค router ์ค์ * feat: ์ง์ ๊ด๋ จ ํ์ด์ง์ ํ์ดํ ๋ฌธ๊ตฌ APPLY_TITLE ๊ฐ์ฒดํ ๋ฐ ์ ์ฉ - ํ์ผ๋ช applyData -> applyPageData๋ก ๋ณ๊ฒฝ * rename: faqData -> faqPageData๋ก ํ์ผ๋ช ์์ ๋ฐ ์ํฌํธ ์์ * feat: ์ง์ ๊ด๋ จ ํ์ด์ง ๋ด ์ฌ์ฉ๋๋ ๋ฉ์์ง ์์ํ * feat: ์ง์ ์๋ฃ ํ์ด์ง UI ๊ตฌํ * remove: ์ง์ ์๋ฃํ์ด์ง ๋ถํ์ํ ๋ฒํผ className ์ญ์ * feat: apply-3 ํ์ด์ง UI ๊ตฌํ (์ด๋ฆ, ์ ํ๋ฒํธ ์ ๋ ฅ ํ์ด์ง) * feat: apply-3 ํ์ด์ง router์ ์ปดํฌ๋ํธ ์ถ๊ฐ * fix: ApplyComplete ๋ฒํผ className w-full ์ถ๊ฐ * refactor: ApplyApplicationInfo ์ปดํฌ๋ํธ css ์์ * refactor: ApplyComplete ํ์ด์ง css ์์ ๋ฐ Link -> navigate ์ฌ์ฉ * refactor: ApplyApplicationInfo ํ์ด์ง Link -> navigate ์ฌ์ฉ * fix: ์ง์ ์๋ฃ ํ์ด์ง ์ปจํ ์ธ ์ค์ ์ ๋ ฌ * fix: ProgressIndicator key๊ฐ ์ถ๊ฐ * fix: APPLY_HELPER_MESSAGE ๋ค์ด๋ฐ ๋ฐฉ์ ํต์ผ * fix: APPLY_MESSAGE ๊ตฌ์กฐ ๋ฐ ๋ฌธ๊ตฌ ์์ * refactor: ApplyComplete ์ปดํฌ๋ํธ ๋ด์ฉ๊ธ ๋ฐ ๋ฒํผ ๋ฌธ๊ตฌ ์์ํ * feat: File, Uploader ์ปดํฌ๋ํธ ๊ตฌํ (#76) * feat: validateFileType util ํจ์ ์์ฑ * feat: file ํ์ฅ์ ๋ฐ fileMine ๊ฐ์ฒด ์์ฑ * feat: changeFileSizeUnit util ํจ์ ์์ฑ * feat: TextArea ์ปดํฌ๋ํธ outline-none ํด๋์ค ์ถ๊ฐ * fix: InputArea ์ปดํฌ๋ํธ w-full ๋ก ๋ณ๊ฒฝ * feat: Uploader ์ปดํฌ๋ํธ ๊ตฌํ ๋ฐ ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: File ์ปดํฌ๋ํธ ๊ตฌํ ๋ฐ ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: InputFile ์ปดํฌ๋ํธ(File+Uploader) ๊ตฌํ ๋ฐ ์คํ ๋ฆฌ๋ถ ์์ฑ * fix: inputFile -> InputFile ํ์ผ๋ช ๋ณ๊ฒฝ ๋ฐ file ํ์ ์ ๋ฐ๋ผ key๊ฐ ์ฒ๋ฆฌ * feat: InputFile ์คํ ๋ฆฌ๋ถ ์์ * refactor: File openFile ํจ์ ์ฝ๋ ์์ (if๋ฌธ ๋์ ์ผํญ์ฐ์ฐ์ ์ฌ์ฉ) * fix: File ์ปดํฌ๋ํธ์ deleteHandler event ํ์ ์์ * remove: ๋ถํ์ํ ์ฝ๋ ์ ๊ฑฐ * feat: fileUrl ํ์ ์ถ๊ฐ * fix: fileUrl ํ์ ๋๋ฌธ์ ์์์ผ๋ก ์์ * feat: File ์ปดํฌ๋ํธ CDN URL๋ง ๋ฐ๋ ๊ฑธ๋ก ์์ * fix: InputFile๋ CDN URl ๋ง ๋ฐ๋๋ก ์์ * fix: Uploader disabled ์ํ ์์ ๋ฐ ๊น๋ฐ์ ํ์ ํด๊ฒฐ + ์ค๋ณต ์ฝ๋ ์ ๋ฆฌ * feat: Uploader disabled ์คํ ๋ฆฌ ์ถ๊ฐ * style: File ์ปค์ํฌ์ธํฐ ์ถ๊ฐ * docs: File ์คํ ๋ฆฌ๋ถ ์ ๋ฐ์ดํธ * feat: InputFile UI ์ ๋ฐ์ดํธ (๋ ์ด๋ธ ๋ฐ ์ฉ๋ ํ๊ธฐ ์ถ๊ฐ) * feat: feedback ํ์ ์ File ์ปดํฌ๋ํธ ์ถ๊ฐ * fix: feedback ํ์ File cursor pointer ์ ๊ฑฐ * fix: Uploader ์ปดํฌ๋ํธ ํ์ฅ์ ๊ฒ์ฆ ๋ก์ง ์ ๊ฑฐ ํ์ฅ์ ๊ฒ์ฆ์ File ์ปดํฌ๋ํธ ๋ ๋๋ง ํ์ด๋ฐ์ ์ํ * fix: InputFile์์ File ์ปดํฌ๋ํธ ์ ๊ฑฐ File ์ปดํฌ๋ํธ๋ children์ผ๋ก ๋ฐ๋๋ก ์์ * refactor: fileStyle ๋ถ๋ฆฌ * fix: FileUrl id ํ์ string์ผ๋ก ๋ณ๊ฒฝ * design: useState์ <boolean> ์ญ์ * refactor: maxSize ์ด๊ธฐ๊ฐ ์ญ์ * feat: ํ๋ก์ ํธ, ํ๋ก์ ํธ ์์ธํ์ด์ง ๊ตฌํ (#84) * feat: ํ๋ก์ ํธ ํ์ด์ง ํ์ ์์ฑํฉ๋๋ค. * feat: ํ๋ก์ ํธ ํ์ด์ง๋ฅผ ๋ผ์ฐํฐ์ ์ถ๊ฐํฉ๋๋ค. * feat: ํ๋ก์ ํธ์ ํด์ปคํค์ ์ํ ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํฉ๋๋ค. * feat: ํ๋ก์ ํธ ํ๊ธฐ section์ ๋๋ฏธ ๋ฐ์ดํฐ๋ก ํผ๋ธ๋ฆฌ์ฑ ํฉ๋๋ค. * feat: ํ๋ก์ ํธ ์์ธ ํ์ด์ง์ ํ์ ์์ฑํฉ๋๋ค. * feat: ํ๋ก์ ํธ ์์ธ ํ์ด์ง์ ๊ฒฝ๋ก๋ฅผ router์ ์ถ๊ฐํฉ๋๋ค. * refactor: CalloutInformation ์ปดํฌ๋ํธ์ ์ต์์ ํ๊ทธ์ w-full์ ์ ์ฉํฉ๋๋ค. * feat: ํ๋ก์ ํธ ์์ธํ์ด์ง์ ํ๋ฉด์ ๋๋ฏธ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด ํผ๋ธ๋ฆฌ์ฑํฉ๋๋ค. * feat: ํ๋ก์ ํธ ํ์ด์ง์ ๋ฒํผ ํ ์คํธ๋ฅผ ๊ธฐ์ ํฉ๋๋ค. * fix: ์๋ชป ์ ์ฉ๋ ๋ฒํผ ์์ด์ฝ์ ์คํ์ผ์ ์์ ํฉ๋๋ค. * fix: content๋ฅผ ๊ฐ์ธ๋ wrapper์ ๋์ด๋ฅผ ๊ณ ์ ๊ฐ์ด ์๋ ์ต์ ๊ฐ์ผ๋ก ์์ ํฉ๋๋ค. * feat: ํด์ปคํค ํ์ด์ง ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: ๊ฒฝ๋ก ํธ์ถ์ ์์ํ๋ ๊ฒฝ๋ก๋ก ๋ณ๊ฒฝํฉ๋๋ค. * design: grid ๋์ flex-col ์ฌ์ฉํ์ฌ ๋จ์ผ column ๋ ์ด์์์ผ๋ก ํฉ๋๋ค. * fix: router์ import order์ eslint ์ค์ ์ ๋ง๊ฒ ์์ ํฉ๋๋ค. * design: ๋ ์ด์์์ ์ต์ ํฌ๊ธฐ๋ฅผ ์๊ตฌ์ฌํญ์ ๋ง์ถฐ ์ ๊ฑฐํฉ๋๋ค. * refactor: TabItem์ props ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝ ํ disabled ์์ฑ์ ์ฃผ์ ํฉ๋๋ค. * refactor: type์ผ๋ก ์ ์ธ๋ props๋ฅผ interface ๊ตฌ์กฐ๋ก ํต์ผํฉ๋๋ค. * feat: TabItem์ ๋นํ์ฑํ ์์๊ณผ ํฌ์ธํฐ ์ด๋ฒคํธ ์ ์ด๋ฅผ ๋ฐ์ํฉ๋๋ค. * feat: ํด์ปคํค Tab์ disabled์ ์ฃผ์ ํฉ๋๋ค. * feat: ํ๋ก์ ํธ ์์ธ ํ์ด์ง์ Select ์ปดํฌ๋ํธ๋ฅผ ์ ์ฉํฉ๋๋ค. * fix: ์ธํฐ๋ ์ focus-visible ํจ๊ณผ ๋ํ๋ ๋ border๊ฐ ๋ณด์ด์ง ์๋ ๋ฒ๊ทธ ํด๊ฒฐ (#89) * fix: focus-visible ํจ๊ณผ ๋ํ๋ ๋ border์ด ๋ณด์ด์ง ์๋ ๋ฒ๊ทธ ํด๊ฒฐ * fix: scale ๊ณ ๋ คํ interaction ์คํ์ผ ์์ฑ * refactor: scale ์ธํฐ๋ ์ ์ด ํ์ํ ์ปดํฌ๋ํธ์ ์ ์ฉ (์์ฝ๋์ธ, ๋ผ๋ฒจ๋ฒํผ) * bug: ๋น๋ ํ์ผ ์์ฑ ๊ณผ์ ์์ ๋ฐ์ํ ์๋ฌ ์์ (#88) * refactor: BlockButton์ style props๋ช ์ ๊ธฐ๋ณธ button style๊ณผ ๋ช ํํ ๊ตฌ๋ถ ์ง์ต๋๋ค. * docs: ์์ ๋ props ์ด๋ฆ์ BlockButton ์คํ ๋ฆฌ ํ์ผ์ ๋ฐ์ํฉ๋๋ค. * docs: ์๋ชป ๊ธฐ์ ๋ size ๋ช ์นญ์ ๋ณ๊ฒฝํฉ๋๋ค. * docs: fileId ์ ๊ฐ์ file ํ์ ์์ ์ ์ธํ string ํ์ ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. * docs: snackBar์์ ๋๋ฝ๋ onaction props๋ฅผ ์คํ ๋ฆฌ ํ์ผ์ ์์ฑํฉ๋๋ค. * refactor: TabItem์ ์ธํฐํ์ด์ค ์ค id๋ฅผ ์ปค์คํ props๋ก ์ฌ๊ตฌ์ฑํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๋ import ๋ฌธ์ ์ ๊ฑฐํฉ๋๋ค. * docs: ์๋ชป ์ ์ธ๋ ์ปดํฌ๋ํธ ๋ค์ด๋ฐ์ ์์ ํฉ๋๋ค. * fix: ํ์ import ๊ฒฝ๋ก๋ฅผ ์ ๋๊ฒฝ๋ก์์ ์๋๊ฒฝ๋ก๋ก ๋ณ๊ฒฝํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๋ ๋ณ์๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * fix: BlockButton์ ์ธํฐํ์ด์ค ๋ช ์ ๊ธฐ์กด์ ์ด๋ฆ์ผ๋ก ์ฌ์์ ํฉ๋๋ค. * feat: apply-2 ํ์ด์ง UI ๊ตฌํ (#82) * feat: ApplyVerify ํ์ด์ง UI ๊ตฌํ * fix: InputField ํฌํผ๋ฉ์์ง ํฐํธ์์ ์กฐ๊ฑด๋ถ ์์ * refactor: Title ๊ฐ์ธ๋ div ํ๊ทธ ์ ๊ฑฐ * fix: ์๋ชป ์์ ๋ ๋ถ๋ถ ๋ณต๊ตฌ * fix: isExist -> isNewApplicant ๋ก ๋ณ์๋ช ๋ณ๊ฒฝ * refactor: ์ค์ฒฉ ์ผํญ์ฐ์ฐ์ ํํ ๋ณ๊ฒฝ * refactor: ์ค์ฒจ์ผํญ์ฐ์ฐ์ clsx ์ฌ์ฉ * refactor: ApplyVerify๋ฅผ ApplyVerifyEmail, ApplyVerifyPin ํ์ด์ง ์ปดํฌ๋ํธ๋ก ๋ถ๋ฆฌ * feat: Input ์ปดํฌ๋ํธ disabled ์ผ๋ text ์์ ์ถ๊ฐ * fix: NewTabLink className props์ผ๋ก ๋ฐ๋๋ก ์์ * feat: ๋น๋ฐ๋ฒํธ ์ฌ์ค์ ํ์ด์ง ์ฐ๊ฒฐ * feat: ๋น๋ฐ๋ฒํธ ์ฌ์ค์ ์ผ ๊ฒฝ์ฐ ์กฐ๊ฑด๋ถ ๋ ๋๋ง * fix: applyInfoList NewTabLink className ๋ฌ๊ธฐ * feat: ์ด๋ฉ์ผ ์ธ์ฆ ํ์ด์ง ๋ผ์ฐํฐ ์ค์ * fix: ์ด๋ฉ์ผ ์ธ์ฆ ํ์ด์ง PATH ์์ * remove: ApplyVerify ์ปดํฌ๋ํธ ์ญ์ * feat: APPLY_TITLE ๋น๋ฐ๋ฒํธ์ฌ์ค์ ํ์ด์ง ํ์ดํ ์ถ๊ฐ * feat: ์ง์ํ๊ธฐ ํ์ด์ง์์ ์ด๋ฉ์ผ ์ธ์ฆ ํ์ด์ง navigate ์ค์ * fix: ApplyApplicationInfo ์ปดํฌ๋ํธ isReady -> isStepCompleted ๋ณ์๋ช ์์ * fix: prop ์ ๋ฌ๋ฐ์ ๊ฐ์ผ๋ก ์ปดํฌ๋ํธ ๋ ๋๋ง ๋ถ๊ฐ๋ก ๋ฐฉ์ ๋ณ๊ฒฝ * fix: PATH ๋ณ์๋ช applyVerify๋ก ์ฌ์์ * remove: ๋ถํ์ํ ์ํฌํธ ์ญ์ * refactor: setter ์ ๊ฑฐ * refactor: Input isError ์ต์ ๋ ์ฒ๋ฆฌ * refactor: ์ํ ๋ ๋๋ง ๋ฌธ์ ๋ฐ์ ์ฐ๋ ค๋ก ApplyVerify ์ปดํฌ๋ํธ์์ ํ์ด์ง ์ปดํฌ๋ํธ ์กฐ๊ฑด๋ถ ๋ ๋๋งํ๋๋ก ์์ * refactor: Apply ํ์ด์ง ์ค main ํ๊ทธ -> sectionํ๊ทธ๋ก ๋ณ๊ฒฝ ๋ฐ ์ฌ์ฉํ์ง ์๋ form ํ๊ทธ์ action='' ์ ๊ฑฐ * refactor: email ๋๋ฏธ๋ฐ์ดํฐ ๋น๋ฌธ์์ด๋ก ๋ณ๊ฒฝ * refactor: useState ๋ถ๋ฆฌ์ธํ์ ์ง์ ์ ๊ฑฐ * refactor: ApplyVerify ์กฐ๊ฑด๋ถ ๋ฆฌํฉํ ๋ง * refactor: ApplyVerify ์ผํญ์ฐ์ฐ์ ์ฌ์ฉํ์ฌ return ํ๊ธฐ * feat: ์ง์์ ์์ฑ ํ์ด์ง UI ๊ตฌํ(apply-4) (#85) * feat: ApplyRegistration ํ์ด์ง ์์ฑ ๋ฐ select์ ๋ฐ๋ฅธ ๋ฌธํญ ๋ํ๋๋๋ก UI ๊ตฌํ * fix: InputArea ๊ณ ์ ๋ width ๊ฐ ์ ๊ฑฐ * refactor: TextArea ์ปดํฌ๋ํธ outline none ์ฒ๋ฆฌ ๋ฐ ์๋ ๋์ด ์กฐ์ ์ ์ํ row=1 ์ง์ * feat: ํ ์คํธ ์๋งํผ TextArea์ ๋์ด ์๋ ์กฐ์ ๊ธฐ๋ฅ ์ถ๊ฐ * feat: ApplyRegistration ํ์ด์ง ์ปดํฌ๋ํธ ๋ผ์ฐํฐ ๋ฑ๋ก * feat: ์๋ฌ์ผ ๊ฒฝ์ฐ TextArea border ์ฒ๋ฆฌ * feat: InputArea ํฌํผ๋ฉ์์ง ๊ธฐ๋ฅ ์ถ๊ฐ ๋ฐ ์๋ฌ์ผ ๊ฒฝ์ฐ ์คํ์ผ ์ฒ๋ฆฌ * refactor: ๋ถํ์ํ ์คํ์ผ ๋ฐ ํ๊ทธ ์ ๊ฑฐ * remove: console.log ์ ๊ฑฐ * feat: select ํค๋ณด๋ ์ ๋ ฅ์ผ๋ก ํฌ์ง์ ์ ํํ๊ธฐ ๋ฐ select outside ํด๋ฆญ ์ ๋ซํ๊ธฐ * feat: mergeRefs ์ ํธํจ์ ์์ฑ * feat: mergeRefs ์ ํธํจ์ ์ฌ์ฉํ์ฌ textareaRef, ref ๋ฐ๋๋ก ํจ * refactor: ApplyRegistration ์ฝ๋ ์ ๋ฆฌ * refactor: POSITIONS ๋ฐฐ์ด ์์ ์ฌ์ฉ * feat: Uploader ์ต๋ ๊ฐ๋ฅ ์ฉ๋๊ฐ ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋๋๋ก ํจ. * refactor: ApplyRegistration ์ปดํฌ๋ํธ ํ์ผ ๋๋ฏธ ๋ฐ์ดํฐ ์ฌ์ฉํ์ฌ InputFile ๊ตฌํ * refactor: InputFile File ์ปดํฌ๋ํธ ๋ฐฐ์ด์ ๋ฐ๋๋ก ์์ File ์ปดํฌ๋ํธ ๋ฆฌ์คํธ๋ค์ ๊ฐ์ธ๋ ์ปจํ ์ด๋ ํ๊ทธ๋ฅผ ์ผ์ผ์ด ์์ฑํ์ง ์๋๋ก InputFile์์ ์ด๋์ํค๊ธฐ ์ํจ. ์ถ๊ฐ๋ก ๋ฆฌ์คํธ๊ฐ ์์ ๊ฒฝ์ฐ์๋ง ์ปจํ ์ด๋ ํ๊ทธ๊ฐ ๋ํ๋๋๋ก ํ๊ธฐ ์ํด children ์์ฑ์ด ์๋ ๋ฐฐ์ด์ ๋ฐ๋๋ก ๋ณ๊ฒฝ. * refactor: ApplyRegistration์ ์์ ๋ InputFile ์ ์ฉ * refactor: InputArea errorHelper ์กฐ๊ฑด๋ถ ์์ * docs: InputArea ์คํ ๋ฆฌ๋ถ ์ ๋ฐ์ดํธ * docs: mergeRefs TSDoc ์ถ๊ฐ * fix: ์ง๊ตฐ ์ ํ ์ด๊ธฐ์๋ง ํค๋ณด๋ ์์ฑ ๊ฐ๋ฅํ ๋ฒ๊ทธ ์์ * fix: ApplyRegistration select ํค๋ณด๋ ํญ ์ ํ ๋ฒ๊ทธ ํด๊ฒฐ * fix: ApplyRegistration ํค๋ณด๋ ํ์ดํ ๊ธฐ๋ฅ ์ ๊ฑฐ select ์ ํ์ง๋ฅผ ์ ํํ๊ธฐ ์ํ input์ด๋ฏ๋ก ํ์ดํ ๊ธฐ๋ฅ ๋ถํ์ ํ์ดํ์ด ๊ฐ๋ฅํ ๊ฒฝ์ฐ, ํผ๋์ด ์์ ์ ์์ * design: Input ์ปดํฌ๋ํธ readonly์ผ ๊ฒฝ์ฐ์ cursor default * refactor: TextArea์ className props ์ถ๊ฐ, focus ํจ๊ณผ ๋์์ธ ์์ * docs: InputArea ์คํ ๋ฆฌ๋ถ description ์ถ๊ฐ * feat: forwardRef ์ปดํฌ๋ํธ์ displayName ๋ฌ๊ธฐ * refactor: Input, InputField, TextArea isError ์ต์ ๋ ์ฒ๋ฆฌ * remove: ๋ถํ์ํ index.ts ์ญ์ * refactor: setIsSelectOpen false๋ก ์์ * refactor: MutableRefObject import ํ๊ธฐ * refactor: Ref import ํ๊ธฐ * feat: ๋ฆฌํฉํ ๋ง ์ด์ ํ ํ๋ฆฟ ์ถ๊ฐ (#92) ๋ฆฌํฉํ ๋ง ์ด์ ํ ํ๋ฆฟ์ ์ถ๊ฐํฉ๋๋ค. * chore: api ์ฐ๋์ ์ํ axios, tanstack query ์ธํ ๋ฐ ํ ์คํธ (#90) * feat: QueryClientProvider ๋ฐ DevTools ์ค์ * chore: axios ์ค์น * chore: gitignore์ .env ์ถ๊ฐ * feat: axiosInstance ์์ฑ * feat: vite proxy ์ค์ * feat: ํ๋ก์ ์๋ฒ ์ด์ฉํ๋ฏ๋ก axioInstance BASE_URL ์์๋ก '/api' ์ค์ * feat: requestHandler ์์ฑ * feat: ApiResponse ๊ณตํต ํ์ ์ ์ ( + Sort) * feat: fetchMiniStudies ํจ์ ์์ฑ * feat: Tanstack query ์ฌ์ฉํ useMiniStudies ํ ์์ฑ * refactor: ๋ฏธ๋์คํฐ๋ api ์ฐ๋ * refactor: ๋ฏธ๋์คํฐ๋ fetch ํจ์ ํ์ค๋ก ์ค์ด๊ธฐ * refactor: axiosInstance ๋ถํ์ํ ๋ณ์ ์ ๊ฑฐ * remove: ๋ถํ์ํ index.ts ํ์ผ ์ญ์ * rename: axiosInstance.ts -> httpClient.ts ํ์ผ๋ช ๋ณ๊ฒฝ ๋ฐ utils/ ๋ก ์ด๋ * refactor: ๊ฒฝ๋ก ์์ * refactor: ReactQueryDevtools๋ ๊ฐ๋ฐํ๊ฒฝ ์กฐ๊ฑด๋ถ ๋ ๋๋ง ์ฒ๋ฆฌ * refactor: api endpoint ๋ฐ ํ์ ์ธํฐํ์ด์ค ๋ถ๋ฆฌ * refactor: fetchMiniStudies -> getMiniStudies๋ก ํจ์๋ช ๋ณ๊ฒฝ * refactor: types ํด๋ ์ ๋ฆฌ * refactor: types ํด๋ ์ ๋ฆฌํ ํ์ผ๋ค ๊ฒฝ๋ก ์์ * feat: requestHandler์ 401,403, 500, ๊ธฐํ ๋คํธ์ํฌ ์๋ฌ ์ ์ญ ์ฒ๋ฆฌ * feat: ApiResponse์ State ์ข ๋ฅ ์ ๋ฐ์ดํธ * refactor: TODO ์ถ๊ฐ * refactor: Sort ํ์ sort ํ์ผ๋ก ๋ถ๋ฆฌ ๋ฐ ์ ์ฉ * refactor: requestHandler ์ ๋ค๋ฆญ ํ์ ์์ (#102) * refactor: requestHandler ์ ๋ค๋ฆญ ํ์ ์์ * refactor: getMiniStudies์์ ApiResponse ์ ๊ฑฐ * feat: CheckBox ์ปดํฌ๋ํธ ๊ตฌํ (#86) * feat: CheckBox ์ปดํฌ๋ํธ์ type์ ์ ์ธํฉ๋๋ค. * feat: CheckBox ์ปดํฌ๋ํธ์์ ์ฌ์ฉ๋๋ CheckBoxIcon ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: CheckBox ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํฉ๋๋ค. * docs: CheckBox ์ปดํฌ๋ํธ์ ์คํ ๋ฆฌ๋ถ์ ์์ฑํฉ๋๋ค. * design: interaction์ click ์์ ํจ๊ณผ๋ฅผ ์นดํ ๊ณ ๋ฆฌํํฉ๋๋ค. * design: CheckBox์ interaction ์์๋ฅผ ์ฃผ์ ํฉ๋๋ค. * fix: ์ค์ interaction์ด ์ ์ฉ๋๋ ํ๊ทธ์ interaction์ ์ฌ์ฃผ์ ํฉ๋๋ค. * style: import ๋ฌธ์ ์ ๋๊ฒฝ๋ก๋ฅผ ์๋๊ฒฝ๋ก๋ก ์์ ํฉ๋๋ค. * typo: ์ปดํฌ๋ํธ์ ์คํ์๋ฅผ ์์ ํฉ๋๋ค. * feat: CheckBox์ hover interaction์ ์ถ๊ฐํฉ๋๋ค. * typo: ํจ์์ ํ์ ๋ช ์ ํ์ค์นผ ์ผ์ด์ค๋ก ์์ ํฉ๋๋ค. * feat: interaction์ ์ปค์คํ ํ์ฌ CheckBox ์ปดํฌ๋ํธ์ ๋ถ์ฌํฉ๋๋ค. * docs: checkbox ์คํ ๋ฆฌ ํ์ผ์ interaction์ด ์ ์ฉ๋๋ ์ผ์ด์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค. * docs: useState ์ render ์ฝ๋ฐฑ์์ ํธ์ถํ์ง ์๋๋ก ๋ณ๊ฒฝํฉ๋๋ค. * refactor: tabIndex๋ฅผ ์ด์ฉํด interaction ์ญํ ์ ์ํํ๋ div์ interaction์ ์ฃผ์ ํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๋ interaction ์ ์ ๊ฑฐํฉ๋๋ค. * feat: interaction์ด ์ ์ฉ๋๋ div์ tabIndex๋ฅผ ์ถ๊ฐํฉ๋๋ค. * move: ์ฌ์ฉํ์ง ์๋ group ์์ฑ์ ์ ๊ฑฐํฉ๋๋ค. * refactor: Icon ์ปดํฌ๋ํธ์ import ๋ฐฉ์์ ๋ณ๊ฒฝํฉ๋๋ค. * refactor: interaction์ ์ํ div์ ์ ๊ฑฐํ๊ณ ์ค์ ์์์ interaction์ ์ํํฉ๋๋ค. * fix: focus ์ before ๊ฐ์์์๋ฅผ ์ ๊ฑฐํ๊ณ ์์ ์์์ ์ํ์ ๋ฐ๋ผ focus ๋๋๋ก ์คํ์ผ์ ์์ ํฉ๋๋ค. * refactor: ์คํ์ผ ํด๋ ๋ฆฌํฉํ ๋ง (#100) * refactor: ๋ธ๋ญ ๋ฒํผ, ๋ผ๋ฒจ ๋ฒํผ ์คํ์ผ ํ์ผ ์ปดํฌ๋ํธ ํด๋๋ก ์ด๋ * refactor: file ์คํ์ผ ํ์ผ ํ์ผ ์ปดํฌ๋ํธ ํด๋๋ก ์ด๋ * refactor: ์์ด์ฝ ์คํ์ผ ํ์ผ ์ปดํฌ๋ํธ ํด๋๋ก ์ด๋ * refactor: ํ์ดํ ์คํ์ผ ํ์ผ ์ปดํฌ๋ํธ ํด๋๋ก ์ด๋ * refactor: ๋ ์ด๋ธ ์คํ์ผ ํ์ผ ์ปดํฌ๋ํธ ํด๋๋ก ์ด๋ * refactor: ์ง๊ตฐ๋ช , ์ด๋ฉ์ผ ๋ณ๊ฒฝ ๋ฐ ๋ฐ๋ธ์ต์ค ์ ๋๋ฉ์ด์ ๋นํ์ฑํ (#104) * refactor: ํ๋ก์ ํธ ๋งค๋์ ์์ ํ๋ก๋ํธ ๋งค๋์ ๋ก ๋ณ๊ฒฝ * refactor: [email protected]๋ก ๋ณ๊ฒฝ * refactor: ๋ฉ์ธํ์ด์ง ๋ฐ๋ธ์ต์ค ์ ๋๋ฉ์ด์ ๋นํ์ฑํ ์ฒ๋ฆฌ * feat: ์ ํก ์กฐํ ๊ธฐ๋ฅ ๋ฐ EmptyData ์ปดํฌ๋ํธ ๊ตฌํ (#99) * feat: jectalk Response ํ์ ์์ฑ * feat: getJectalks fetch ํจ์ ์์ฑ * feat: useJectalks ํ ์์ฑ * feat: EmptyData ๊ณตํต ์ปดํฌ๋ํธ ์์ฑ ๋ฐ ์คํ ๋ฆฌ๋ถ ์์ฑ * feat: activity page, ์ญํก ์กฐํ API ์ฐ๊ฒฐ ๋ฐ EmptyData ์ปดํฌ๋ํธ ์ ์ฉ * refactor: jectalk fetch ํจ์ ํ์ ์์ * refactor: EmptyData ์ปดํฌ๋ํธ Label ์ ๋๊ฒฝ๋ก๋ก ์์ * refactor: react-query ์ฌ์ฉ ํ ์ Query ์ ๋ฏธ์ฌ ์ฌ์ฉ * refactor: useQuery ์๋ฌ ๋ก๊ทธ ์ถ๋ ฅ * refactor: ์๋ฌ ๋ก๊ทธ ๋ฌธ๊ตฌ ์์ * feat: ์ ํก summary ํ์ ๋ฐ EmptyData ์กฐ๊ฑด๋ถ ์์ (#111) * feat: ์ ํก ๋ ์ด๋ธ ํ์ * refactor: ๋ฏธ๋์คํฐ๋, ์ ํก ๋ ๋๋ง ์กฐ๊ฑด ์์ * feat: ํ์ผ ์ ๋ก๋ ๊ธฐ๋ฅ ๊ตฌํ (#109) * feat: ํ์ผ ์ ๋ก๋ api ์์ฒญ ํจ์ ๋ฐ ํ ์์ฑ * fix: Uploader ์ปดํฌ๋ํธ ๋์ผํ ํ์ผ ์ฐ์ ์ ํ ๋ถ๊ฐ ๋ฒ๊ทธ ํด๊ฒฐ * refactor: changeFileSizeUnit ์ ํธํจ์ ์์ - ๋จ์ ํ๊ธฐ ์ฌ๋ถ ์ถ๊ฐ * feat: validateMaxSize ์ ํธํจ์ ์ถ๊ฐ * feat: Portfolio, NewPortfolio ํ์ ์์ฑ * remove: FileUrl ํ์ ์ญ์ * chore: lottie-react ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น * chore: loadingSpinner json ํ์ผ ์ถ๊ฐ * refactor: select ์ธ๋ถ ํด๋ฆญ ์ ๋ซํ๊ธฐ ๋ก์ง useCloseOutSide ํ ์ผ๋ก ๋ถ๋ฆฌ * feat: S3 ํ์ผ ์ ๋ก๋ ์์ฒญ ๋ฐ File ์ปดํฌ๋ํธ๋ช FileItem์ผ๋ก ๋ณ๊ฒฝ * docs: FileItem ์คํ ๋ฆฌ๋ถ ์ ๋ฐ์ดํธ * refactor: InputFile์ fileNode prop -> children์ผ๋ก ๋ณ๊ฒฝ * docs: InputFile ์คํ ๋ฆฌ๋ถ ์์ * feat: ํ์ผ presignedUrl ์์ฑ ์์ฒญ ๋ฐ ApplyRegistration์์ ๋ฌธํญ ์ฝ๋ ๋ถ๋ฆฌ * feat: ๋คํธ์ํฌ ๋ถ์์ ์ด์, ํ์ธํ ์ ์๋ ํ์ผ ํ์ ์์ธ ์ฒ๋ฆฌ * fix: eslint ์๋ฌ ์์ * refactor: uploadFileToS3 axios ํจ์ ํ์ผ ๋ถ๋ฆฌ ๋ฐ mutate ๋ณ์๋ช ๋ถ์ด๊ธฐ * feat: S3 ํ์ผ ์ ๋ก๋ ์คํจ ์ retry 3ํ ์ค์ * design: ๋ฉ์์ง ๋ฌธ๊ตฌ ์์ * feat: ์์๋ ํ์ผ ํ์ธ ๋ฐ ๋ถ๋ฆฌํด์ฃผ๋ ์ ํธํจ์ ์์ฑ * fix: ํ์ผ ํํฐ๋ง ๋ฐ ์์ธ ์ฒ๋ฆฌ ์์ - pdf๊ฐ ์๋ ํ์ผ์ผ ๊ฒฝ์ฐ ์๋ฌ ํ ์คํธ๋ง ์ ์ - ์์๋ pdf ํ์ผ์ผ ๊ฒฝ์ฐ ์๋ฌ UI ํ์ผ, ํ ์คํธ ์ ์ * feat: ํ์ผ ๋น์ด์์ ๊ฒฝ์ฐ ์์ธ ์ฒ๋ฆฌ * feat: ์ ๋ก๋ ์ค์ธ ํ์ผ ์ ๋ก๋ ์์ฒญ ์ทจ์ ๊ธฐ๋ฅ ์ถ๊ฐ ๋ฐ ๋คํธ์ํฌ ์๋ฌ์ ํ์ผ ์ ๋ก๋ ์์ธ์ฒ๋ฆฌ ์์ * refactor: fileExtensions ๋ณ์๋ช ๋ณต์ ์ฒ๋ฆฌ * refactor: changeFileSizeUnit ์ ํธํจ์ ๋ก์ง ์์ ๋ฐ ๋ฆฌํฉํ ๋ง * refactor: ์ ํธ ํจ์ ๊ฐ๋ ์ฑ์ ์ํ ๊ฐํ ์ฒ๋ฆฌ * refactor: ์๋ต ๋ฐ์ดํฐ ํ์ ๋ช ~ResponseData ํ์์ผ๋ก ๋ณ๊ฒฝ * refactor: ์ ํธ ํจ์ ๊ฐ๋ ์ฑ์ ์ํ ๊ฐํ ์ฒ๋ฆฌ * refactor: splitValidAndInvalidFiles ์ ํธํจ์ filter -> reduce ๋ฉ์๋ ์ฌ์ฉ * refactor: useCloseOutside ์ผ๋ฆฌ๋ฆฌํด * refactor: Uploader handleClick ํจ์ ์ผ๋ฆฌ๋ฆฌํด * refactor: description ๋์ด์ฐ๊ธฐ ์ฒ๋ฆฌ * refactor: FileField ๊ฐ๋ ์ฑ์ ์ํ ๊ฐํ ์ฒ๋ฆฌ * refactor: FileItem์ extractFileInfo ์ ํธํจ์ ์์ฑ ํ ์ ์ฉ * refactor: ํฌํธํด๋ฆฌ์ค ์ ๋ก๋ api ์๋ต ๋ฐ์ดํฐ keyName -> cdnUrl ์์ ๋ฐ์ * remove: validateFileType ์ ํธ ํจ์ ์ ๊ฑฐ * refactor: ํ์ ๋ช ์ Response, Request suffix ์ถ๊ฐ - uploadPortfolio.ts - answer.ts * refactor: ์ ํก, ๋ฏธ๋์คํฐ๋ ๋ฐ์ดํฐํ์ Response suffix ์ถ๊ฐ * remove: ๋ถํ์ํ ๋ก๊ทธ ์ถ๋ ฅ ์ฝ๋ ์ ๊ฑฐ * feat: ์ง์์ ํ๋ก์ฐ ๊ธฐ๋ฅ ๊ตฌํ (#112) * feat: ํ์ผ ์ ๋ก๋ api ์์ฒญ ํจ์ ๋ฐ ํ ์์ฑ * fix: Uploader ์ปดํฌ๋ํธ ๋์ผํ ํ์ผ ์ฐ์ ์ ํ ๋ถ๊ฐ ๋ฒ๊ทธ ํด๊ฒฐ * refactor: changeFileSizeUnit ์ ํธํจ์ ์์ - ๋จ์ ํ๊ธฐ ์ฌ๋ถ ์ถ๊ฐ * feat: validateMaxSize ์ ํธํจ์ ์ถ๊ฐ * feat: Portfolio, NewPortfolio ํ์ ์์ฑ * remove: FileUrl ํ์ ์ญ์ * chore: lottie-react ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น * chore: loadingSpinner json ํ์ผ ์ถ๊ฐ * refactor: select ์ธ๋ถ ํด๋ฆญ ์ ๋ซํ๊ธฐ ๋ก์ง useCloseOutSide ํ ์ผ๋ก ๋ถ๋ฆฌ * feat: S3 ํ์ผ ์ ๋ก๋ ์์ฒญ ๋ฐ File ์ปดํฌ๋ํธ๋ช FileItem์ผ๋ก ๋ณ๊ฒฝ * docs: FileItem ์คํ ๋ฆฌ๋ถ ์ ๋ฐ์ดํธ * refactor: InputFile์ fileNode prop -> children์ผ๋ก ๋ณ๊ฒฝ * docs: InputFile ์คํ ๋ฆฌ๋ถ ์์ * feat: ํ์ผ presignedUrl ์์ฑ ์์ฒญ ๋ฐ ApplyRegistration์์ ๋ฌธํญ ์ฝ๋ ๋ถ๋ฆฌ * feat: ์ง์์ ๋ฌธํญ ์กฐํ api ํจ์ ๋ฐ ํ ์์ฑ * remove: validateFileType ์ ํธํจ์ ์ญ์ * feat: url ํ์ ๊ฒ์ฆ ์ ํธํจ์ ์์ฑ * feat: Answers ํ์ ์ ์ * feat: ์ง๊ตฐ์ ๋ง๋ ์ง์์ ๋ฌธํญ ๋ ๋๋ง ๋ฐ URL ๊ฒ์ฆ ๋ก์ง ์ถ๊ฐ * refactor: detailedRegex ์์ * feat: ์์ ์ ์ฅ API ์ฐ๋ * feat: ์๋ ์์์ ์ฅ ๊ธฐ๋ฅ ๊ตฌํ * refactor: select์ jobFamily ๋งคํ ๋ฐฉํฅ ์์ FE, BE, PM, PO๋ฅผ key๋ก ๋ณ๊ฒฝ * refactor: postDraft์ param prop null ํ์ ์ถ๊ฐ * feat: ์์ ์ ์ฅ ์กฐํ api ์์ฒญ ํจ์ ๋ฐ ํ ์์ฑ * feat: ์์์ ์ฅ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ * refactor: handleChangeAnswer, handleChangePortfolios ํจ์ useCallback ์ฒ๋ฆฌ * feat: ์์ ์ ์ฅ ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ (์์์ ์ฅ ๋ถ๋ฌ์ค๊ธฐ ๋ค์ด์ผ๋ก๊ทธ ์ ์ธ) - react router์ location.state ์ด์ฉํ์ฌ ์์์ ์ฅ ๋ถ๋ฌ์ค๊ธฐ ์ฌ๋ถ ๊ฒฐ์ - ์์ฑ ์ค ์๋ก๊ณ ์นจ ์ ์์ ์ ์ฅ๋ ๊ธ ์๋ ๋ถ๋ฌ์ค๊ธฐ * refactor: Dialog ์์ - p ํ๊ทธ -> div ํ๊ทธ๋ก ๋ณ๊ฒฝ ( ReactNode๋ก ๋ฐ์ ๋ ํฌ๊ด์ ์ธ ํ๊ทธ ์ฌ์ฉ์ ์ํด) - children ๊ณต๊ฐ์ ์ค๋ ๋ฌธ๊ตฌ text-center ์ฒ๋ฆฌ - useDialog state ๋ณ์๋ช ์์ (isCloseOutside์ state์ ๊ฒน์นจ ๋ฌธ์ ) * feat: ์ง์์ ์ง๊ตฐ ๋ณ๊ฒฝ ๊ธฐ๋ฅ ๊ตฌํ - apiEndpoint ์ถ๊ฐ - axios ํจ์ ์์ฑ - react query ํ ์์ฑ - ์ง๊ตฐ ๋ณ๊ฒฝ ์ dialog ๋์ฐ๊ธฐ - ์ง๊ตฐ ๋ณ๊ฒฝ ์ ๋ต๋ณ ์ด๊ธฐํ ๋ฐ ์ง๊ตฐ ๋ณ๊ฒฝ api ์์ฒญ ๋ณ๊ฐ๋ก, - ์ด๋ฐ์ ์์์ ์ฅ ๋ถ๋ฌ์ค์ง ์๊ณ ์๋ก ์์ฑํ ๊ฒฝ์ฐ, ์ถ๊ฐ์ ์ธ ์์์ ์ฅ ์ ๊น์ง ์์์ ์ฅ ๋ถ๋ฌ์ค์ง ์๋๋ก ์์ * refactor: ApplyRegistration ์ฝ๋ ๋ฆฌํฉํ ๋ง ๋ณ์๋ช ๋ณ๊ฒฝ, ํจ์ ๋ถ๋ฆฌ ๋ณ์๋ช ๋ณ๊ฒฝ - selectPosition -> selectedPosition - selectQuestion -> questionPosition - values -> answersPayload ํจ์ ๋ถ๋ฆฌ - formatNewPortfolio ํจ์ ์์ฑ (FileField์์ ์ฌ์ฉ) - notLoadDraft ํจ์ ์์ฑ * design: textField ๋ต๋ณ ๊ธธ์ด ์ ํ ์ด๊ณผ ์ ํ๋ ์คํ์ผ ๋ณ๊ฒฝ - ํฌํผ ๋ฉ์์ง ํ์ - ํ๋ ํ ๋๋ฆฌ ๋ฐ ๊ธ์ ์ ํ ์คํธ ๋นจ๊ฐ์ ํ์ * feat: ์ง์์ ์ ์ถ ๋ต๋ณ ์ ํจ์ฑ ๊ฒ์ฌ - ํ์ ๋ต๋ณ ์์ฑ ๊ฒ์ฌ - ๋ต๋ณ ๊ธ์ ์ ์ ํ ๊ฒ์ฌ - url ์ ํจ์ฑ ๊ฒ์ฌ * refactor: useDialog state ๋ณ์๋ช ์์๋ณต๊ตฌ - ๋ณ์๋ช ๊ฒน์น ๊ฒฝ์ฐ ๋ณ์นญ ์ฌ์ฉ * refactor: mutationKey ๋ฌ๊ธฐ * feat: ์ง์์ ์ ์ถ ๊ธฐ๋ฅ ๊ตฌํ - ์ง์์ ์ ์ถ api endpoint ์์ฑ - submitAnswer ํจ์ ์์ฑ - useSubmitAnswerQuery ํ ์์ฑ - ์ ์ถ ์ ๋ค์ด์ผ๋ก๊ทธ ํ์ ๋ฐ ์ฑ๊ณต ์ ์ง์ ์๋ฃ ํ์ด์ง ์ด๋ * feat: 15๋ถ๋ง๋ค ์๋ ์์์ ์ฅ ๊ธฐ๋ฅ ๊ตฌํ * refactor: ApplyRegistration ๋ฆฌํฉํ ๋ง - state์ ๊ด๋ จ ํจ์๋ฅผ ๊ด๋ฆฌํ๋ useApplicationState ํ ์์ฑ - ํฌ์ง์ ์ ํ ๊ด๋ จ selectBox ์ปดํฌ๋ํธ ๋ถ๋ฆฌ - ๋ฌธํญ ๋ฐ ๋ต๋ณ ๊ด๋ จ Answers ์ปดํฌ๋ํธ ๋ถ๋ฆฌ * remove: ๋ถํ์ํ ์ฃผ์ ์ ๊ฑฐ * refactor: ์ง๊ตฐ์ ํํํ๋ ๋จ์ด position -> job์ผ๋ก ๋ณ๊ฒฝ * refactor: isLoadDraft ํจ์ ์์ (๋ถํ์ํ ๋ฆฌํด ์ ๊ฑฐ) * refactor: validateAnswersPayload if๋ฌธ ๊ฐ์ํ * refactor: draft ๋ฐ์ดํฐ uuid ์ถ์ถ ์ค๋ฅ ํด๊ฒฐ * refactor: isLoadDraft ํจ์ ๊ฐ์ํ * refactor: ์ง์์ ๋ฌธํญ ์กฐํ ์คํจ ์ ๋น ํผ ๋ฐํ. * feat: Input read-only ์ผ ๋ ์ปค์ ๊ธฐ๋ณธ ์คํ์ผ ์ง์ * feat: api ์์ ์๋ฌ ์ฒ๋ฆฌ (์๋ฌ ๋ก๊ทธ ์ถ๋ ฅ) * refactor: onKeyDown -> onKeyUp์ผ๋ก ๋ณ๊ฒฝ * refactor: draft, submitAnswer ํธ์ถ ์ param null ์ฒ๋ฆฌ * refactor: formatForPresignedUrl, formatNewPortfolio ๊ตฌ์กฐ ๋ถํด ํ ๋น ์ฒ๋ฆฌ * refactor: Dialog title p ํ๊ทธ๋ก ๋ณ๊ฒฝ * refactor: submitButtonActive -> setSubmitButtonActive ๋ก ํจ์๋ช ๋ณ๊ฒฝ * refactor: ํ ์ ์ธ ๊ฐํ์ฒ๋ฆฌ * refactor: File ํ์ file -> rawFile๋ก ๋ค์ด๋ฐ ๋ณ๊ฒฝ * refactor: AnswersRequest answers key ํ์ number๋ก ๋ณ๊ฒฝ * refactor: QuestionResponse ํ์ ์ ์ * refactor: putJob request ํ์ ์ ์ * refactor: ์ ์ถ ๋ค์ด์ผ๋ก๊ทธ ๋ด์ฉ ๋ฌธ๊ตฌ ๋์ด์ฐ๊ธฐ ์์ * refactor: initialAnswer ํ์ ์ค์ * feat: ํ์ด์ง ํ๋จ ์ง์ ์ค๋ต๋ฐ ๊ตฌํ (#120) * feat: 3๊ธฐ ์ง์ ์ค๋ต๋ฐ ๊ณตํต ์ปดํฌ๋ํธ ์์ฑ * feat: ๋ฉ์ธ, ํ๋ก์ ํธ, ํ๋, faq ํ์ด์ง์ ์ค๋ต๋ฐ ๋ ธ์ถ * remove: ๋ถํ์ํ index.ts ํ์ผ ์ญ์ * refactor: isMain -> width ๋ก props ๋ณ๊ฒฝ ํ์ด์ง ๋จ์์ ์ด๋ค width ๊ฐ์ด ๋ค์ด๊ฐ๋์ง ํ์ธํ ์ ์๋๋ก ๋ณ๊ฒฝ * refactor: SnackBar ์ปดํฌ๋ํธ ์์ ์์ * refactor: ์ง์ ์ค๋ต๋ฐ ๋์ด ์์ * feat: ์ง์ ์ค๋ต๋ฐ ์ ๋๋ฉ์ด์ ์ถ๊ฐ * feat: ๋ก์ปฌ์คํ ๋ฆฌ์ง ์๋ ์์ ์ ์ฅ ๊ธฐ๋ฅ ๊ตฌํ (#122) * feat: ๋ก์ปฌ์คํ ๋ฆฌ์ง๋ฅผ ์ด์ฉํ ์๋ ์์์ ์ฅ ๊ธฐ๋ฅ ๊ตฌํ * fix: ์ ๋ก๋๋ ํ์ผ ์ด๊ธฐ ์คํจ ๋ฒ๊ทธ ํด๊ฒฐ * refactor: ํจ์๋ช ์์ * refactor: ๋ถํ์ํ ๋ณ์ ์ ๊ฑฐ * feat: ํ์ ๋นํ์ ์ธ์ฆ ๋ฐ ํ์์ ๋ณด ๋ฑ๋ก ๊ธฐ๋ฅ (#114) * chore: zod์ react-hook-form ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํฉ๋๋ค. * feat: zod๋ฅผ ์ด์ฉํด ์ง์ ํ์ด์ง์ ์ฌ์ฉ๋๋ ์คํค๋ง๋ฅผ ์์ฑํฉ๋๋ค. * feat: zod์ react-hook-form์ ์ฐ๋ํ์ฌ ์ ํจ์ฑ ๊ฒ์ฌ ํ ์ ์์ฑํฉ๋๋ค. * refactor: umd ๋ณ์๋ก ์ ์ธ๋ props๋ฅผ ์ ๋์จ ํ์ ์ ๋ณํํฉ๋๋ค. * feat: api ์ฐ๋์ ์ํ ์๋ ํฌ์ธํธ๋ฅผ ์ค์ ํฉ๋๋ค. * feat: apply ๊ด๋ จ api response๋ฅผ ๋ฐ์ํ์ฌ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค. * feat: ํผ ํธ๋ค๋ฌ ์ฒ๋ฆฌ๋ฅผ ๋๋ ์ ํธ๋ฆฌํฐ ํจ์๋ฅผ ์์ฑํฉ๋๋ค. * feat: ์๊ตฌ์ฌํญ์ ๋ฐ์ํ์ฌ ์ง์ api ํธ์ถ๋ถ๋ฅผ ์ค์ ํฉ๋๋ค. * feat: ์ปค์คํ ํ ์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ ํจ์นญ์ ์ฒ๋ฆฌํ๋ ๋ก์ง์ ๋ก๊น ๊ณผ ํจ๊ป ์์ฑํฉ๋๋ค. * feat: input ์ปดํฌ๋ํธ์ undefined ์ฒ๋ฆฌ๋๋ ์ต์ ๋ props์ ๊ธฐ๋ณธ ๊ฐ์ ํ ๋นํฉ๋๋ค. * feat: ์ง์ํ๊ธฐ ๋ฐ์ดํฐ ํจ์นญ ๋ก์ง์ ์ง์ํ์ด์ง์ ์ ์ฉํฉ๋๋ค. * refactor: ํผ ์ ์ถ ํผํผ ํจ์์ ๋ฐ์ดํฐ ํ์ ์ ํด๋น ํจ์๋ฅผ ์ฌ์ฉํ๋ ๋ถ๋ถ์์ ์ฒ๋ฆฌํ๋๋ก ๋ณ๊ฒฝํฉ๋๋ค. * fix: ์ต์ react-query์ ์์ฑ์ ๋ฐ์ํ์ฌ isLoading isPending ์ผ๋ก ์์ ํฉ๋๋ค. * feat: Label ์ปดํฌ๋ํธ์ ๊ฐ์ ์ฌํญ์ ํ๊ธฐํฉ๋๋ค. * refactor: Label ์ปดํฌ๋ํธ๊ฐ htmlFor ์์ฑ์ ๋ฐ์ง ๋ชปํ๋ ๋ฌธ์ ๋ฅผ ์ถ๊ฐ ํ๊ทธ๋ฅผ ์ด์ฉํด ์ฒ๋ฆฌํฉ๋๋ค. * move: ์คํ ๋ฆฌ๋ถ์ ์ธํฐ๋ ์ ์์๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * feat: CheckBox ์ปดํฌ๋ํธ๋ฅผ ํ๋จ Label์ ์ถ๊ฐํฉ๋๋ค. * feat: ํ ๋ก๊ทธ์ธ ์ฑ๊ณต์ navigate ๋ก์ง์ ์ถ๊ฐํฉ๋๋ค. * design: ์๋ชป ์ ์ฉ๋ gap ๊ฐ์ ์์ ํฉ๋๋ค. * feat: ํ์ ์กด์ฌ ์ฌ๋ถ ํ์ธ api์ ์๋ํฌ์ธํธ๋ฅผ ์์ฑํฉ๋๋ค. * feat: ํ์ ์กด์ฌ ์ฌ๋ถ ํ์ธ api์ ๋ฐํ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค. * feat: ํ์ ์กด์ฌ ์ฌ๋ถ api์ ํธ์ถ๋ถ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: ์ด๋ฉ์ผ ์ธ์ฆ api ๋ฅผ ํธ์ถํ๊ธฐ ์ ์ด๋ฉ์ผ ์กด์ฌ ์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค. * feat: email ๊ฐ์ state๋ก ์ฒ๋ฆฌํ์ฌ ์ ๋ฌํ ์ ์๋๋ก ์ฒ๋ฆฌํฉ๋๋ค. * feat: ํ์ ์กด์ฌ ์ฌ๋ถ api์ ๋ํ ์ปค์คํ ํ ์ ์์ฑํฉ๋๋ค. * feat: status ํ์ ์ ์ถ๊ฐํฉ๋๋ค. * feat: ์ด๋ฉ์ผ ์ธ์ฆ api์ ๋ํ ์๋ฌ ์ํฉ์ ์ฒ๋ฆฌํฉ๋๋ค. * feat: ๋ฒํผ ๋นํ์ฑํ ์ํ์ ์กฐ๊ฑด์ ์ถ๊ฐํฉ๋๋ค. * feat: ๊ธฐ์กด ํ์์ PIN ๋ก๊ทธ์ธ ๋ก์ง์ ๊ตฌํํฉ๋๋ค. * move: ๋ถํ์ํ๊ฒ ์ถ๊ฐ๋ ์ํ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * feat: ์ง์์ ์ ๋ณด์ ๋ํ ์คํค๋ง๋ฅผ ์์ฑํฉ๋๋ค. * feat: ์ง์์ ์ ๋ณด ์คํค๋ง์ ์์ธ ์ํฉ์ ์๋ฐํ๊ฒ ์ ํํฉ๋๋ค. * feat: ํ์ ์ ๋ณด ์ ๋ฐ์ดํธ api์ ์๋ํฌ์ธํธ๋ฅผ ์์ฑํฉ๋๋ค. * feat: ํ์ ์ ๋ณด ์ ๋ฐ์ดํธ api์ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค. * feat: ํ์ ์ ๋ณด ์ ๋ฐ์ดํธ api์ ํธ์ถ๋ถ๋ฅผ ๊ตฌํํฉ๋๋ค. * feat: zod๋ฅผ ์ด์ฉํด์ ์ง์ ๋ ์คํค๋ง์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํํฉ๋๋ค. * feat: ์ปค์คํ ํ ์ ์ด์ฉํด ํ์ ์ ๋ณด ์ ์ฅ์ ๋ํ ๋ฐ์ดํฐ ํจ์นญ์ ์งํํฉ๋๋ค. * feat: ํญ๋ชฉ์ด ๋น์ด์์ ๋๋ ์ ํจํ์ง ์์ ์คํค๋ง๋ก ํ๋จํฉ๋๋ค. * feat: ์ง์์ ์ ๋ณด ์ ๋ ฅ ํ์ด์ง์ ๋ฐ์ดํฐ ํจ์นญ ๋ก์ง์ ๋ถ์ฌํฉ๋๋ค. * feat: auth ๊ด๋ฆฌ๋ฅผ ์ํ api์ ์๋ํฌ์ธํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * chore: ์ถ๊ฐ๋ env ํ์ผ์ ๋ํ ์ปดํ์ผ ์ต์ ์ ์ค์ ํฉ๋๋ค. * chore: ์ ์ญ ๋ณ์์ ํ์ ์ ์ค์ ํฉ๋๋ค. * feat: ์ํ ์ฐธ์กฐ๋ฅผ ๊ณ ๋ คํ์ฌ requestHandler๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ํ ํฐ ๋ฆฌํ๋ ์ฌ api๋ฅผ ํธ์ถํฉ๋๋ค. * feat: interceptor๋ฅผ ์ด์ฉํด api ํธ์ถ ์ ํ header์ ๊ฐ๋ฐ ํ๊ฒฝ ๋ณ ํ ํฐ ๊ด๋ฆฌ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. * feat: requestHandler์ option ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: ํ ํฐ ๊ด๋ฆฌ๋ฅผ ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: ํ์ ์ ๋ณด ๋ฑ๋ก์ ์ํ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค. * feat: ํ์ ์ ๋ณด ๋ฑ๋ก api์ ํธ์ถ๋ถ๋ฅผ ์์ฑํฉ๋๋ค. * feat: ํ์ ์ ๋ณด ๋ฑ๋ก api๋ฅผ ์ปค์คํ ํ ์ ์ด์ฉํด ๊ด๋ฆฌํฉ๋๋ค. * feat: PIN์ ์ด์ฉํ ๋ก๊ทธ์ธ ์ ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ์์ ํ ํฐ์ header์ ์ฌ์ฉํ๋๋ก ์ค์ ํฉ๋๋ค. * fix: ์ ๊ท ์ฌ์ฉ์์ ๊ฒฝ์ฐ ์์ ํ์ ๊ฐ์ api๋ฅผ ํตํด ํ๋ก์ฐ๋ฅผ ์งํํฉ๋๋ค. * fix: ๋์์ธ ์๊ตฌ์ฌํญ์ ๋ง์ถฐ ์ปดํฌ๋ํธ ๊ฐ ๊ฐ๊ฒฉ์ ์กฐ์ ํฉ๋๋ค. * feat: FAQ ๋์ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: Accordion์ ์ถ๊ฐ๋์ด์ผ ํ ์๊ตฌ์ฌํญ์ TODO๋ฅผ ์ด์ฉํด ๊ธฐ์ฌํฉ๋๋ค. * feat: cta ๋ฒํผ์ onClick ํธ๋ค๋ฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * fix: ๋ถํ์ํ๊ฒ ์ค์ ๋ error์ ํ์ ๊ฒ์ฌ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * typo: Email ์ธ์ฆ ์ธํฐํ์ด์ค ํ์ ๋ช ์ ํต์ผํฉ๋๋ค. * refactor: ์ด๋ฉ์ผ ๊ด๋ จ api์ ๋งค๊ฐ๋ณ์์ payload๋ฅผ ๊ฐ์ฒด ๋ถํ ํํ๋ก ํต์ผํฉ๋๋ค. * refactor: ์ปค์คํ ํ ์ mutationKey๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: ๋ณ๊ฒฝ๋ ์ปค์คํ ํ ์ ๋งค๊ฐ๋ณ์๋ฅผ mutate ๊ฐ์ฒด์ ๋ฐ์ํฉ๋๋ค. * typo: ๋ณ๊ฒฝ๋ api์ response์ ๋ง๊ฒ ์ธํฐํ์ด์ค ๋ช ์ ์์ ํฉ๋๋ค. * typo: ๋ณ๊ฒฝ๋ ์ธํฐํ์ด์ค์ ๋ง์ถฐ ์คํค๋ง์ ๋ณ์ ๋ช ์ ์์ ํฉ๋๋ค. * refactor: ๋ณ๊ฒฝ๋ api์ ๋ง๊ฒ ํจ์๋ช ์ ๋ณ๊ฒฝํฉ๋๋ค. * refactor: ์ด๋ฉ์ผ ์ธ์ฆ api์ query params๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: ์ด๋ฉ์ผ ์ธ์ฆ ์ปค์คํ ํ ์ mutationKey๋ฅผ ์ถ๊ฐํ๊ณ ๋งค๊ฐ๋ณ์๋ก query params๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: ์ด๋ฉ์ผ ์ธ์ฆ api์ ๋ณ๊ฒฝ์ ์ ์ถ๊ฐํฉ๋๋ค. * feat: ์ด๋ฉ์ผ ์ธ์ฆ api์ ์ฌ์ฉ๋๋ ์ธํฐํ์ด์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: ์์ ๋ ์ด๋ฉ์ผ ์ธ์ฆ api์ ํธ์ถ๋ถ์ query params๋ฅผ ๋ถ์ฌํ๋ ๋ก์ง์ ์ถ๊ฐํฉ๋๋ค. * refactor: ์ด๋ฉ์ผ ์ธ์ฆ api๋ฅผ ์ฌ์ฉํ๋ ์ปค์คํ ํ ์ ๋งค๊ฐ๋ณ์๋ฅผ ๊ตฌ์ฒดํํฉ๋๋ค. * feat: ๋ณ๊ฒฝ๋ ์ด๋ฉ์ผ ์ธ์ฆ ๋ก์ง์ ์ง์ ํ์ด์ง์ ์ ์ฉํฉ๋๋ค. * typo: PIN์ ์ด์ฉํ ๋ก๊ทธ์ธ ์ ์ฌ์ฉ๋๋ ์ธํฐํ์ด์ค ๋ช ์ ๊ฐ์ํํฉ๋๋ค. * refactor: PIN์ ์ด์ฉํ ๋ก๊ทธ์ธ ์ปค์คํ ํ ์ ๋ณ๊ฒฝ๋ ์ธํฐํ์ด์ค ๋ช ์ ์ ์ฉํ๊ณ mutationKey๋ฅผ ์ถ๊ฐํฉ๋๋ค. * refactor: PIN์ ์ด์ฉํ ๋ก๊ทธ์ธ์ API ํธ์ถ๋ถ์ ๊ณตํต ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ํํฉ๋๋ค. * typo: ํ์ ์ ๋ณด ์ ๋ฐ์ดํธ ์ธํฐํ์ด์ค์ ๋ช ์นญ์ ํต์ผํฉ๋๋ค. * typo: ์์ ํ์๊ฐ์ api ์ธํฐํ์ด์ค์ ๋ช ์นญ์ ํต์ผํฉ๋๋ค. * feat: api ํธ์ถ ์ ์ ์ด์ ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ์ ๊ฑฐํ๋ ๋ก์ง์ ์ถ๊ฐํฉ๋๋ค. * feat: base url์ ์ ์ธ ์กฐ๊ฑด์ prod๋ก ๋ณ๊ฒฝํฉ๋๋ค. * feat: interceptor ๊ฐ ๋ก์ปฌ ํ๊ฒฝ์ด ์๋ ๋ withCredentials๊ฐ true ๊ฐ์ ๊ฐ์ง๋๋ก ์ค์ ์ ์ถ๊ฐํฉ๋๋ค. * move: ๋ถํ์ํ๊ฒ ๊ธฐ์ ๋ import ๋ฌธ์ ์์ ํฉ๋๋ค. * feat: ์ธ์ฆ ๋ฒํธ ์ ํจ ์๊ฐ ์ด๊ณผ ์ ์ด๋ฉ์ผ ๋ฒํผ์ enabled ํ๊ณ label์ ๋ณ๊ฒฝํฉ๋๋ค. * refactor: ์ธ์ฆ๋ฒํธ์ Input ์ฐฝ์ ๊ฐ์งํ์ฌ ๊ฐ์ด ์กด์ฌํ์ง ์์ ๋ ๋ฒํผ์ ํ์ํ์ง ์์ต๋๋ค. * fix: ๋ฒํผ์ ๋ฌธ๊ตฌ๋ฅผ ๋์์ธ์ ๋ง๋ ํ ์คํธ๋ก ๋ณ๊ฒฝํฉ๋๋ค. * feat: ์ ์ถ ๋ฒํผ์ ์์ด์ฝ๊ณผ ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ ์ถ๊ฐํฉ๋๋ค. * feat: input ํ๊ทธ์ ์๋์์ฑ ์คํ์ผ์ด ์ปค์คํ ์์์ผ๋ก ์ฒ๋ฆฌ๋๋๋ก ์ฒ๋ฆฌํฉ๋๋ค. * bug: workflow runner ๋ฒ์ ์ ๋ฐ์ดํธ (#133) * refactor: ๋ค์ด์ผ๋ก๊ทธ ํจ์ ํธ์ถ์์ผ๋ก ์ฌ๊ตฌํ (#127) * feat: dialogStore ์์ฑ * refactor: Dialog ์ปดํฌ๋ํธ ์์ (dialogStore ์ด์ฉ) * remove: useDialog ํ ์ญ์ * refactor: Dialog ์ปดํฌ๋ํธ Layout ์ ์ถ๊ฐ * refactor: ์ง์์ ์์ฑ ํ์ด์ง ์์ ๋ ๋ค์ด์ผ๋ก๊ทธ ์ ์ฉ * docs: Dialog ์คํ ๋ฆฌ๋ถ ์์ * refactor: dialog promise ์ ๊ฑฐ * docs: ๋ค์ด์ผ๋ก๊ทธ ์คํ ๋ฆฌ๋ถ ์์ (promise ์ฌ์ฉ ์คํ ๋ฆฌ ์์ ) * remove: ๋ถํ์ํ ํ์ผ ์ ๊ฑฐ (useApplicationDialog) * feat: ๋ค์ด์ผ๋ก๊ทธ ์ด๋ฆฐ ์ํ ์คํฌ๋กค ์ ์ง ๊ธฐ๋ฅ ๊ตฌํ * feat: primary ๋ฒํผ๋ง ์๋ Dialog ์ถ๊ฐ * docs: ๋ฒํผ ํ๋ Dialog ์คํ ๋ฆฌ ์ถ๊ฐ * refactor: ๋ถํ์ํ void ์ ๊ฑฐ * docs: Dialog ์คํ ๋ฆฌ๋ถ ์ค๋ช ์์ * docs: Dialog ์คํ ๋ฆฌ๋ถ ํจ์๋ช ์์ * refactor: dialogStore์ ํ์ ๋ช ๋ณต์๋ก ์์ * refactor: ๋ค์ด์ผ๋ก๊ทธ ์ํ ๊ด๋ฆฌ ๋ฐฉ์ ์์ - ์ ์ ์ธ ๋ฐ์ดํฐ๋ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ก ๊ด๋ฆฌ, constants/dialog.tsx ์์ฑ - dialogStore๋ ์ด๊ณ ๋ซํ ์ํ, ๋ค์ด์ผ๋ก๊ทธ ํ์ , ๋ฒํผ ์ก์ ๋ฅผ ๊ด๋ฆฌ - ์ 2๊ฐ์ง๋ฅผ Dialog ์ปดํฌ๋ํธ์ ๋ฐ์ * docs: Dialog ์คํ ๋ฆฌ๋ถ ์์ * refactor: ApplyRegistration ํ์ด์ง ๋ค์ด์ผ๋ก๊ทธ ์ฝ๋ ์์ * docs: Dialog ์คํ ๋ฆฌ๋ถ ์ค๋ช ์ถ๊ฐ * refactor: dialog ์คํ ์์ ๋ฐ DialogTypes types/ ํด๋๋ก ๋ถ๋ฆฌ * refactor: dialogStore openDialog ๊ฐ์ํ * refactor: Dialog ๋ฒํผ handleClick ํจ์ ๊ฐ์ํ * style: dialogStore ํ์ค ์์ฑ * chore: ๋ฐฐํฌ ์คํฌ๋ฆฝํธ ๋ฐ ํ๊ฒฝ ์ค์ (#135) * fix: Uploader ์คํ ๋ฆฌ๋ถ ์๋ฌ ํด๊ฒฐ (#138) * feat: ๋ต๋ณ SELECT ํ๋ ์ถ๊ฐ (#130) * refactor: useCloseOutside ํ ref ๋ฐฐ์ด๋ ๋ฐ์ ์ ์๋๋ก ์์ * refactor: selectBox ๋ซ๊ธฐ ๊น๋ฐ์ ์์ * feat: ์ง์์ ์์ฑ ํ์ด์ง์ ๊ฐ๊ด์ ๋ฌธํญ์ ์ํ selectField ๊ตฌํ * feat: Question ์๋ฒ ๋ฐ์ดํฐ ํ์ ๋ณ๊ฒฝ ๋ฐ ์ ์ฉ * refactor: ๋ต๋ณ ํ๋ label ์๋ฒ ๋ฐ์ดํฐ ์ฐ๊ฒฐ * fix: ์ด๊ธฐ ๋ ๋๋ง ์ select field ์ ํํด๋ ๋น๋ฌธ์์ด๋ก ์ ์ฅ๋๋ ๋ฒ๊ทธ ํด๊ฒฐ * style: question ํ์ ํํ ์์ * feat: ์์์ ์ฅ ๋ถ๋ฌ์ค๊ธฐ ๋ค์ด์ผ๋ก๊ทธ ํ์ ๋ฐ ์์์ง์์ ์ ๊ฑฐ api ์ฐ๋ (+์ง์์ ๊ด๋ จ ํจ์ ๋ฐ ํ์ ๋ฆฌํฉํ ๋ง) (#134) * feat: ์ง๊ตฐ ๋ณ๊ฒฝ api๊ฐ ์์์ง์์ ์ ๊ฑฐ api๋ก ๋ณ๊ฒฝ๋์ด changeJob api ์ ๊ฑฐ ๋ฐ deleteDraft api ์์ฑ * refactor: ์ง๊ตฐ ๋ณ๊ฒฝ ์ ์์์ง์์ ์ ๊ฑฐ api ์์ฒญ * rename: mutation ํ ์ use~Mutation์ผ๋ก ํ ๋ช ๋ณ๊ฒฝ ๋ฐ ์ ์ฉ * feat: ์์์ ์ฅ ๋ค์ด์ผ๋ก๊ทธ ํโฆ
* feat: ์ธ์ฆ๋ฒํธ๋ฅผ ๋ฐ์ง ๋ชปํ์ จ๋์ ๋ฒํผ์ ์ํญ์ผ๋ก FAQ ํ์ด์ง apply-5 ์์ฝ๋์ธ์ด ์ด๋ฆฌ๋๋ก ์์ ํฉ๋๋ค * fix: ๋น๋ ์๋ฌ๋ฅผ ํด๊ฒฐํฉ๋๋ค
* chore: jds IconMap์ information-fill์ ์ถ๊ฐํฉ๋๋ค * feat: ์ง๋ฌด ๊ด๋ จ ๊ฒฝํ ๊ธฐ๊ฐ SelectField ๋ ์ด๋ธ์ ํดํ์ ์ถ๊ฐํฉ๋๋ค.
* fix: ์์ ํ์์ ์ต์ด ํ๋กํ ์ ๋ณด ๋ฑ๋ก ์ฌ๋ถ ํ์ธ API์ ์๋ชป ์ ์ฉ๋์ด์๋ Params๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * fix: ์์ ์ ์ฅ API ํธ์ถ ์ ์๋ชป ์์ฑ๋ params๋ฅผ ์ ๊ฑฐํฉ๋๋ค. * fix: ์๋ฒ draft๋ ์ ์งํ๊ณ ํด๋ผ์ด์ธํธ์ draft ๊ฐ๋ง ์กฐ์ ํ๋๋ก ๋ณ๊ฒฝํฉ๋๋ค. - useDeleteDraftMutation๋ ์ฌ์ฉ์ ํ๋กํ๊น์ง ์ญ์ ๋ฅผ ํ๊ธฐ ๋๋ฌธ * feat: ๋ค๋ฅธ ์ง์์์ ์ ๊ทผํ์ ๋ ์์ธ ์ผ์ด์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: ํ์ฌ ๋ก๊ทธ์ธํ ํ์ ํ๋กํ ์กฐํ API๋ฅผ ์ถ๊ฐํฉ๋๋ค. * feat: ํํธ ๋ณ๊ฒฝ ์ ์ํ๋๋ ๋ก์ง์ ์ถ๊ฐํฉ๋๋ค. 1. ํ์ฌ ํ๋กํ ๋ฐฑ์ 2. ๊ธฐ์กด draft + ํ๋กํ ์ญ์ 3. ๋ฐฑ์ ๋ ํ๋กํ๋ก ํ์ฌ ํ๋กํ ๋ณต์ 4. ์ง์์ ์์ฑํ๊ธฐ ํ์ด์ง๋ก ์ด๋ * feat: ์์ ๋ฐ์ดํฐ๋ฅผ ์์ ํฉ๋๋ค. * feat: profile ๋ฑ๋ก ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค. * fix(JDS): input ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ ์ปดํฌ๋ํธ์ ๋ธ๋ผ์ฐ์ autofill ์คํ์ผ์ ์ถ๊ฐํฉ๋๋ค.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
๐ก ์์ ๋ด์ฉ
๐ก ์์ธํ ์ค๋ช
๊ตฌํํ ์๋๋ฅผ ์ค๋ช ํด์ฃผ์ธ์.
์์ ์ฌํญ์ด ์๋ค๋ฉด ์์ ํ ์ด์ ๋ฅผ ์ ์ด์ฃผ์ธ์.
ํ์ํ๋ค๋ฉด ์คํฌ๋ฆฐ์ท ๋๋ ์ฝ๋ ์กฐ๊ฐ์ ์ฌ์ฉํด์ฃผ์ธ์.
๐ ์ฐธ๊ณ ์๋ฃ (์ ํ)
๐ข ๋ฆฌ๋ทฐ ์๊ตฌ ์ฌํญ (์ ํ)
โ ์ ํ ์ฒดํฌ๋ฆฌ์คํธ
closes #์ด์๋ฒํธ