Skip to content

chore(deps): pnpm named catalog 기반 의존성 버전 중앙 관리#84

Merged
ohprettyhak merged 8 commits intowipfrom
chore/pnpm-catalog-dependency-management
Feb 11, 2026
Merged

chore(deps): pnpm named catalog 기반 의존성 버전 중앙 관리#84
ohprettyhak merged 8 commits intowipfrom
chore/pnpm-catalog-dependency-management

Conversation

@ohprettyhak
Copy link
Contributor

@ohprettyhak ohprettyhak commented Feb 11, 2026

Summary

  • pnpm-workspace.yaml에 named catalogs(core, types, build) 정의하여 공유 의존성 버전을 중앙 관리
  • 7개 패키지의 package.json에서 catalog:<name> 프로토콜 적용 (react, typescript, rollup 빌드 도구 등)
  • CI workflow를 모든 브랜치에서 실행하도록 변경 (branches: ['**'])
  • react-icons index 생성 스크립트의 biome 호환성 수정 (trailing newline, case-insensitive 정렬)

Catalog 구성

카탈로그 포함 의존성
core react, react-dom, typescript
types @types/react, @types/react-dom
build @babel/preset-, @rollup/plugin-, rollup, rollup-plugin-*

Test plan

  • pnpm install — lockfile 정상 갱신
  • pnpm build — 전체 빌드 성공 (5/5 tasks)
  • pnpm check — biome lint/format 통과 (178 files, no errors)

🤖 Generated with Claude Code

Summary by CodeRabbit

릴리스 노트

  • 새로운 기능

    • 문서 내 이전/다음 페이지 네비게이션 기능 추가
    • 섹션 컴포넌트 구조 개선 및 서브컴포넌트 추가
  • 문서화

    • 시스템 요구사항 정보 추가
    • 설치 가이드 업데이트
    • 새로운 소개 및 기능 설명 콘텐츠 추가
  • 스타일

    • 전역 CSS 및 테마 지원 강화
    • 스타일링 유틸리티 개선
  • 기타

    • 자동화된 CI 워크플로우 추가
    • 타입 검사 및 코드 검증 자동화 구성
    • 의존성 업데이트

공유 의존성(react, typescript, rollup 빌드 도구 등)의 버전을
pnpm-workspace.yaml의 named catalog(core, types, build)에서
중앙 관리하도록 변경하여 버전 불일치를 방지하고 업데이트를 단순화한다.

- pnpm-workspace.yaml에 catalogs(core/types/build) 섹션 추가
- 7개 패키지의 package.json에서 catalog: 프로토콜 적용
- CI workflow를 모든 브랜치에서 실행하도록 변경
- react-icons index 생성 스크립트의 biome 호환성 수정
  (trailing newline 추가, case-insensitive 정렬)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@vercel
Copy link

vercel bot commented Feb 11, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cocso-ui Ready Ready Preview, Comment Feb 11, 2026 1:26pm
cocso-ui-storybook Ready Ready Preview, Comment Feb 11, 2026 1:26pm

Request Review

@changeset-bot
Copy link

changeset-bot bot commented Feb 11, 2026

⚠️ No Changeset found

Latest commit: 7789b98

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai
Copy link

coderabbitai bot commented Feb 11, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Walkthrough

이 PR은 프로젝트 전반에 걸쳐 CI/CD 워크플로우 추가, pnpm 워크스페이스 카탈로그 도입을 통한 의존성 통합, 다중 패키지의 타입 체크 스크립트 추가, 문서 웹사이트 레이아웃 재구성, 그리고 코드 스타일 정규화 등을 포함합니다.

Changes

Cohort / File(s) Summary
CI/CD 및 워크플로우
.github/workflows/ci.yml
새로운 GitHub Actions CI 워크플로우 추가. Ubuntu에서 의존성 설치, Biome 체크, TypeScript 타입 검사 실행.
구성 및 무시 규칙
.gitignore, biome.json, ecosystem/baseframe/tsconfig.json, docs/website/tsconfig.json, packages/react/tsconfig.json
Biome 스키마 업그레이드, 스캐너 무시 패턴 포함 배열로 이동, TypeScript 구성 포맷팅 및 최적화, Node 타입 제거.
pnpm 워크스페이스 카탈로그 설정
pnpm-workspace.yaml, package.json
pnpm 워크스페이스 카탈로그 추가(core, types, build)로 의존성 버전 중앙화. 루트 패키지.json에 check 및 typecheck 스크립트 추가.
다중 패키지 의존성 및 스크립트 업데이트
docs/storybook/package.json, docs/website/package.json, ecosystem/baseframe/package.json, packages/react-icons/package.json, packages/react/package.json
모든 패키지에 check-types 스크립트 추가. 의존성을 catalog:core/catalog:types로 통합. Storybook, React, 빌드 도구 버전 업그레이드.
문서 웹사이트 구조 및 컴포넌트
docs/website/src/app/layout.tsx, docs/website/src/app/[slug]/page.tsx, docs/website/src/app/_fonts/index.ts, docs/website/src/app/layout.config.tsx, docs/website/src/components/layout/*, docs/website/src/components/ui/*
ViewTransitions 제거, GeistMono 폰트 추가, RootProvider 테마 비활성화. 헤더 검색 UI 개선, 사이드바 스타일 업데이트. 새로운 PageNavigation 컴포넌트 추가, Section 컴포넌트를 복합 객체로 재구성.
문서 웹사이트 스타일링
docs/website/src/app/globals.css, docs/website/src/styles/globals.css, docs/website/src/styles/utilities.css
새로운 globals.css 추가(Tailwind, 테마 변수, 글로벌 스타일). 기존 globals.css 및 utilities.css 삭제(레이아웃 유틸리티 및 데코레이션 요소 제거).
문서 웹사이트 콘텐츠
docs/website/content/installation.mdx, docs/website/content/introduction.mdx
요구사항 섹션 추가, 설치 지시사항 업데이트(@cocso-ui/css 포함). 배경, 특징, 탐색 유도 콘텐츠 섹션 추가.
MDX 컴포넌트 설정
docs/website/src/mdx-components.tsx
PageNavigation 컴포넌트를 MDX 컴포넌트로 등록.
Baseframe 생성 도구
ecosystem/baseframe/bin/index.js, ecosystem/baseframe/src/cli/index.ts, ecosystem/baseframe/src/core/builders/css-vars.ts, ecosystem/baseframe/src/core/builders/utils/css.ts, ecosystem/baseframe/src/core/index.ts, ecosystem/baseframe/src/core/parsers/*, ecosystem/baseframe/src/core/transforms/*, ecosystem/baseframe/src/core/types/index.ts
import 순서 정렬, type-only import 적용, 화살표 함수 포맷팅 일관화. 내보내기 순서 재정렬. Number.isNaN 사용으로 NaN 검사 개선(주의: build.ts에서 buildAst import 누락).
React 아이콘 컴포넌트
packages/react-icons/scripts/generate-index-file.mjs, packages/react-icons/src/components/brand/index.ts, packages/react-icons/src/components/semantic/*, packages/react-icons/src/index.ts
스크립트에 로케일 인식 정렬 및 줄바꿈 처리 추가. CheckbookIcon 내보내기 순서 조정, DownloadIcon에 aria-hidden 속성 추가, 인덱스 파일 줄바꿈 정리.
React 패키지 컴포넌트
packages/react/src/select/Select.tsx, packages/react/src/day-picker/DayPicker.stories.tsx, packages/react/src/month-picker/MonthPicker.stories.tsx
Select 컴포넌트에 드롭다운 아이콘 span 추가 및 props 매개변수 구조 개선. DayPicker 주석 제거, MonthPicker 스토리 6개 제거.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 풀 리퀘스트 제목은 pnpm 카탈로그 기반의 의존성 버전 중앙 관리라는 주요 변경사항을 명확하게 요약하고 있습니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/pnpm-catalog-dependency-management

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @ohprettyhak, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 풀 리퀘스트는 pnpm의 named catalog 기능을 활용하여 프로젝트의 의존성 관리를 중앙화하고 표준화하는 것을 목표로 합니다. 이를 통해 여러 패키지 간의 의존성 버전 불일치 문제를 줄이고, 빌드 및 개발 환경의 일관성을 확보합니다. 또한, 문서 웹사이트의 콘텐츠와 구조를 개선하고, CI 워크플로우를 확장하여 전반적인 개발 효율성과 사용자 경험을 향상시켰습니다.

Highlights

  • 의존성 중앙 관리: pnpm named catalog(core, types, build)를 pnpm-workspace.yaml에 정의하여 React, TypeScript, Rollup 빌드 도구 등 공유 의존성 버전을 중앙에서 관리하도록 변경했습니다.
  • 패키지 의존성 업데이트: 7개 패키지의 package.json 파일에서 catalog:<name> 프로토콜을 적용하여 의존성을 업데이트했습니다.
  • CI 워크플로우 개선: CI 워크플로우가 모든 브랜치에서 실행되도록 (branches: ['**']) 설정하여 개발 흐름을 개선했습니다.
  • 문서 웹사이트 개선: 문서 웹사이트에 새로운 섹션(요구사항, 배경, 특징)을 추가하고, 전역 CSS 스타일을 재구성하며, 페이지 탐색 컴포넌트를 도입하는 등 UI/UX를 개선했습니다.
  • 스크립트 및 설정 파일 수정: react-icons 인덱스 생성 스크립트의 Biome 호환성을 수정하고, biome.jsontsconfig.json 파일의 설정을 업데이트했습니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • .gitignore
    • .omc 디렉토리를 무시 목록에 추가했습니다.
  • biome.json
    • Biome 스키마 버전을 2.3.2에서 2.3.8로 업데이트했습니다.
    • experimentalScannerIgnores 배열의 형식을 변경했습니다.
  • docs/storybook/package.json
    • check-types 스크립트를 추가했습니다.
    • 의존성 react, react-dom, typescriptcatalog:core로 변경했습니다.
    • 의존성 @types/react, @types/react-domcatalog:types로 변경했습니다.
    • 다른 개발 의존성들의 버전을 업데이트했습니다.
  • docs/website/content/installation.mdx
    • 설치 문서에 '요구사항' 섹션을 추가했습니다.
    • 설치 명령어에 @cocso-ui/css를 추가했습니다.
    • PageNavigation 컴포넌트를 추가했습니다.
  • docs/website/content/introduction.mdx
    • 소개 문서에 '배경' 및 '특징' 섹션을 추가했습니다.
    • PageNavigation 컴포넌트를 추가했습니다.
  • docs/website/package.json
    • check-types 스크립트를 추가했습니다.
    • 의존성 react, react-dom, typescriptcatalog:core로 변경했습니다.
    • 의존성 @types/react, @types/react-domcatalog:types로 변경했습니다.
    • next-view-transitions 의존성을 제거했습니다.
    • 다른 의존성들의 버전을 업데이트했습니다.
  • docs/website/src/app/[slug]/page.tsx
    • Props 타입 정의를 수정했습니다.
    • Typography 컴포넌트의 weightcolor 속성을 업데이트했습니다.
  • docs/website/src/app/_fonts/index.ts
    • GeistMono 폰트를 추가하고 Pretendard 폰트 설정을 업데이트했습니다.
  • docs/website/src/app/globals.css
    • 전역 CSS 스타일을 정의하는 새 파일을 추가했습니다.
  • docs/website/src/app/layout.config.tsx
    • themeSwitch 기능을 비활성화했습니다.
  • docs/website/src/app/layout.tsx
    • 전역 CSS 파일 import 경로를 변경했습니다.
    • ViewTransitions 컴포넌트를 제거했습니다.
    • RootProvider import 경로를 변경하고 theme 속성을 추가했습니다.
    • Viewport 메타데이터를 추가했습니다.
    • body 클래스에 폰트 변수를 적용했습니다.
  • docs/website/src/components/layout/header.tsx
    • 클라이언트 컴포넌트로 전환했습니다.
    • SearchToggle을 커스텀 검색 버튼으로 교체했습니다.
    • next-view-transitionsLinknext/link로 변경했습니다.
    • 헤더 스타일링을 업데이트했습니다.
  • docs/website/src/components/layout/root.tsx
    • Fragment를 JSX 단축 문법으로 변경했습니다.
    • mainSidebar 컴포넌트의 스타일링을 업데이트했습니다.
    • article에서 viewTransitionName 속성을 제거했습니다.
  • docs/website/src/components/layout/sidebar.tsx
    • 클라이언트 컴포넌트로 전환했습니다.
    • next-view-transitionsLinknext/link로 변경했습니다.
    • Props 인터페이스를 SidebarProps로 변경했습니다.
    • 사이드바 항목의 스타일링을 업데이트했습니다.
  • docs/website/src/components/ui/component-example.tsx
    • Props 타입을 인터페이스로 변경했습니다.
  • docs/website/src/components/ui/component-preview.tsx
    • Props 타입을 인터페이스로 변경하고 ComponentType을 import했습니다.
  • docs/website/src/components/ui/index.ts
    • page-navigation 컴포넌트를 내보내도록 추가했습니다.
  • docs/website/src/components/ui/page-navigation.tsx
    • 페이지 탐색 기능을 제공하는 새 파일을 추가했습니다.
  • docs/website/src/components/ui/section.tsx
    • Section 컴포넌트를 Title, Text, UnorderedList, OrderedList, ListItem과 같은 하위 컴포넌트를 포함하도록 리팩토링하고 스타일링을 업데이트했습니다.
  • docs/website/src/mdx-components.tsx
    • PageNavigation 컴포넌트를 import하고 내보내도록 추가했습니다.
  • docs/website/src/styles/globals.css
    • 파일을 제거했습니다. 내용은 docs/website/src/app/globals.css로 이동했습니다.
  • docs/website/src/styles/utilities.css
    • 파일을 제거했습니다. 내용은 docs/website/src/app/globals.css로 이동했습니다.
  • docs/website/tsconfig.json
    • libpaths 배열을 간소화했습니다.
    • node_modules에 대한 exclude 설정을 제거했습니다.
  • ecosystem/baseframe/bin/index.js
    • Number.isNaN 사용법을 업데이트하고 import 순서를 재정렬했습니다.
  • ecosystem/baseframe/package.json
    • check-types 스크립트를 추가했습니다.
    • yaml, @types/yargs, esbuild 의존성 버전을 업데이트했습니다.
    • typescript 의존성을 catalog:core로 변경했습니다.
  • ecosystem/baseframe/src/cli/index.ts
    • import 순서를 재정렬하고 yargs 명령어의 화살표 함수 구문을 간소화했습니다.
  • ecosystem/baseframe/src/core/builders/css-vars.ts
    • import 순서를 재정렬하고 화살표 함수 구문을 간소화했습니다.
  • ecosystem/baseframe/src/core/builders/utils/css.ts
    • import 순서를 재정렬하고 화살표 함수 구문을 간소화했습니다.
  • ecosystem/baseframe/src/core/index.ts
    • 내보내기 순서를 재정렬했습니다.
  • ecosystem/baseframe/src/core/parsers/ast.ts
    • import 순서를 재정렬하고 화살표 함수 구문을 간소화했습니다.
  • ecosystem/baseframe/src/core/parsers/index.ts
    • 내보내기 순서를 재정렬했습니다.
  • ecosystem/baseframe/src/core/parsers/value.ts
    • import를 간소화하고 isNaNNumber.isNaN으로 변경했습니다.
    • 화살표 함수 구문을 간소화하고 catch 블록에 _error를 추가했습니다.
  • ecosystem/baseframe/src/core/transforms/build.ts
    • import 순서를 재정렬하고 collectionMap 생성 로직을 간소화했습니다.
  • ecosystem/baseframe/src/core/transforms/resolve.ts
    • import 순서를 재정렬하고 화살표 함수 구문을 간소화했습니다.
  • ecosystem/baseframe/src/core/transforms/validate.ts
    • import 순서를 재정렬하고 화살표 함수 구문을 간소화했습니다.
  • ecosystem/baseframe/src/core/types/index.ts
    • 내보내기 순서를 재정렬했습니다.
  • ecosystem/baseframe/tsconfig.json
    • nodebun에 대한 types 설정을 제거했습니다.
  • package.json
    • checktypecheck 스크립트를 추가했습니다.
    • @biomejs/biome, @changesets/cli, turbo 의존성 버전을 업데이트했습니다.
    • prettier 의존성을 제거했습니다.
    • typescript 의존성을 catalog:core로 변경했습니다.
  • packages/react-icons/package.json
    • check-types 스크립트를 추가했습니다.
    • 개발 의존성들을 catalog:build, catalog:types, catalog:core로 변경했습니다.
  • packages/react-icons/scripts/generate-index-file.mjs
    • 생성된 인덱스 파일에 정렬 및 후행 개행 문자를 추가했습니다.
  • packages/react-icons/src/components/brand/index.ts
    • 후행 개행 문자를 추가했습니다.
  • packages/react-icons/src/components/semantic/DownloadIcon.tsx
    • SVG에 aria-hidden="true" 속성을 추가했습니다.
  • packages/react-icons/src/components/semantic/index.ts
    • 내보내기 순서를 재정렬하고 후행 개행 문자를 추가했습니다.
  • packages/react-icons/src/index.ts
    • 후행 개행 문자를 추가했습니다.
  • packages/react/package.json
    • check-types 스크립트를 추가했습니다.
    • @radix-ui/react-primitive, @radix-ui/react-slot, react-datepicker 의존성 버전을 업데이트했습니다.
    • 개발 의존성들을 catalog:build, catalog:types, catalog:core로 변경했습니다.
  • packages/react/src/day-picker/DayPicker.stories.tsx
    • 한국어 주석을 제거했습니다.
  • packages/react/src/month-picker/MonthPicker.stories.tsx
    • 한국어 주석을 제거했습니다.
  • packages/react/src/select/Select.tsx
    • 가독성을 위해 props 및 div 형식을 재정렬했습니다.
  • packages/react/tsconfig.json
    • exclude 목록에 src/**/*.stories.tsx를 추가했습니다.
  • pnpm-workspace.yaml
    • catalogs 섹션을 추가하여 core, types, build 의존성 그룹을 정의했습니다.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/ci.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 11

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
packages/react-icons/package.json (1)

46-49: 🧹 Nitpick | 🔵 Trivial

peerDependencies와 카탈로그 버전 간 범위 차이 인지.

peerDependencies의 react/react-dom은 ^19.1.1이고, 카탈로그(core)의 react/react-dom은 ^19.2.1입니다. 현재 dev 버전이 peer 범위를 만족하므로 문제는 없지만, 향후 카탈로그 버전을 올릴 때 peer 범위도 함께 검토해 주세요.

docs/website/src/components/layout/sidebar.tsx (1)

29-50: 🧹 Nitpick | 🔵 Trivial

현재 모든 사이드바 항목이 type: 'page'로만 구성되어 있어 null 반환은 실행되지 않습니다.

사이드바 상수(docs/website/src/constants/sidebar.ts)를 확인한 결과, 6개의 모든 항목이 type: 'page'로 정의되어 있습니다. 따라서 현재 코드의 null 반환 처리는 실제로 동작하지 않습니다. 향후 다른 타입의 항목을 추가할 계획이 없다면, 타입 가드를 제거하거나 코드 의도를 명확히 하는 주석을 추가하는 것을 고려해주세요.

🤖 Fix all issues with AI agents
In @.github/workflows/ci.yml:
- Around line 3-7: The workflow currently triggers both push: and pull_request:
for all branches which can cause duplicate runs; change the triggers so push
only runs for protected branches (e.g., replace push: branches: ['**'] with
push: branches: ['main','release'] or your primary branch name) while leaving
pull_request: branches: ['**'] to run PR checks, ensuring the
concurrency/grouping uses the same ref form; update the on: block (push:,
pull_request:, branches:) accordingly so pushes to feature branches don't fire
duplicate workflows.

In `@docs/website/src/app/globals.css`:
- Around line 46-47: Replace the longhand overflow-x and overflow-y declarations
with the shorthand overflow property: change the two lines `overflow-x: hidden;`
and `overflow-y: scroll;` to a single `overflow: hidden scroll;` so stylelint's
`declaration-block-no-redundant-longhand-properties` is satisfied and behavior
is preserved (keep this change in the same rule where `overflow-x`/`overflow-y`
appear).

In `@docs/website/src/app/layout.tsx`:
- Around line 19-23: The viewport export currently hardcodes themeColor which
will break when dark mode is enabled; update the viewport.themeColor assignment
in layout.tsx (the exported viewport object) to compute the color dynamically
instead of '#FFFFFF' — for example, read the app/theme setting (e.g.,
theme.enabled or current theme mode) or a CSS variable and return the
appropriate light/dark color string so themeColor reflects the active theme at
runtime.

In `@docs/website/src/components/layout/header.tsx`:
- Around line 20-26: The search button using the SearchIcon lacks an
accessibility label; update the button element (the one that calls
setOpenSearch(true) and renders <SearchIcon />) to include an appropriate
aria-label (e.g., "Search" or a localized equivalent) so screen readers can
announce its purpose; ensure the label is concise and descriptive and add it to
the button element that currently has onClick={() => setOpenSearch(true)}.

In `@docs/website/src/components/ui/page-navigation.tsx`:
- Around line 28-38: The twMerge call around the className in the Link rendering
(the Link that renders prevPage with ArrowIOSBackwardIcon) is unnecessary
because the class strings do not conflict; replace twMerge(...) with a plain
string or template literal for the className (and do the same for the symmetric
Next link instance), and remove the twMerge import if it becomes unused; ensure
you update the className on both the previous-link and next-link JSX (the Link
that uses prevPage.name and the corresponding nextPage.name) accordingly.
- Around line 15-21: The PageNavigation component computes currentIndex from
pathname but doesn't handle currentIndex === -1, so unmatched paths incorrectly
show a "Next" pointing to pages[0]; update PageNavigation to validate
currentIndex (from usePathname()/pages) before deriving prevPage/nextPage — if
currentIndex is -1, set prevPage and nextPage to undefined (or short-circuit
render and return null/empty navigation) so no navigation links are shown for
unknown routes; ensure references to currentIndex, prevPage, nextPage and pages
are the ones guarded.

In `@docs/website/src/components/ui/section.tsx`:
- Line 4: The empty interface declarations (e.g., SectionRootProps,
SectionTitleProps, SectionEyebrowProps, SectionDescriptionProps,
SectionContentProps, SectionActionsProps) currently just extend
ComponentProps<'section'> (or other elements) with no additions; replace each
empty interface with an equivalent type alias (e.g., type SectionRootProps =
ComponentProps<'section'>) to simplify the code, or if you intend to add fields
later, leave the interface and add a brief comment documenting that it's
intentionally left open for extension; update all references to these symbols
accordingly.

In `@ecosystem/baseframe/tsconfig.json`:
- Line 11: Type errors occur because Node types are missing for usages like
process.stdout.write, process.exit, and process.argv; fix by either restoring
"types": ["node"] in tsconfig.json or adding `@types/node` to devDependencies (and
run npm/yarn install), ensuring the compiler picks up Node definitions so tsc
--noEmit succeeds; reference tsconfig.json, `@types/node`, and the CLI usages
(ecosystem/baseframe/src/cli index references to process.stdout.write,
process.exit, process.argv) when making the change.

In `@package.json`:
- Line 10: The package.json "format" script still calls "prettier" even though
prettier was removed from devDependencies; update the "format" npm script (the
"format" entry) to use the remaining formatter (e.g., replace the prettier
invocation with the equivalent Biome command) or re-add prettier to
devDependencies; ensure the script target patterns remain correct for
TypeScript/MD files and reference the "format" script and the formatter name
(prettier or biome) when making the change.

In `@packages/react-icons/scripts/generate-index-file.mjs`:
- Around line 29-30: The sort uses localeCompare with an undefined locale which
can vary across environments; update both .sort((a, b) => a.localeCompare(b,
undefined, { sensitivity: 'base' })) occurrences in generate-index-file.mjs to
pass a fixed locale (e.g., 'en') instead of undefined (so: a.localeCompare(b,
'en', { sensitivity: 'base' })) to ensure deterministic ordering in CI and local
builds.

In `@packages/react/src/select/Select.tsx`:
- Around line 16-28: The Select component is still wrapped with React's
forwardRef; remove the forwardRef wrapper and accept ref as a normal prop on the
Select function signature (use the ref property on SelectProps or augment the
props type with ref?: Ref<HTMLSelectElement>), update the exported declaration
to export const Select = (props) => { ... } (destructure ref from props
alongside className, size, etc.), and remove the forwardRef import if no longer
used; keep behavior for size, disabled, stretch and children unchanged.

@ohprettyhak ohprettyhak changed the base branch from main to wip February 11, 2026 12:55
PR이 열린 상태에서 push 시 push/pull_request 이벤트가
동시에 발생하여 워크플로우가 중복 실행되는 문제를 방지한다.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
환경별 시스템 기본 locale 차이로 인한 비결정론적 정렬을 방지한다.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이 PR은 pnpm의 named catalog 기능을 도입하여 의존성 버전을 중앙에서 관리하도록 개선하는 중요한 변경을 포함하고 있습니다. 이를 통해 여러 패키지에 걸쳐 일관된 의존성 버전을 유지하고 관리를 용이하게 할 수 있습니다. 또한 문서 웹사이트의 대대적인 리팩토링, react-icons 생성 스크립트 개선, Biome linter/formatter 적용 등 코드 품질과 개발 경험을 향상시키는 여러 유용한 변경사항들이 포함되어 있습니다. 전반적으로 훌륭한 개선 작업이라고 생각합니다. 한 가지 작은 문제를 발견하여 package.json 파일에 코멘트를 남겼습니다. 이 부분을 수정하면 더 완벽한 PR이 될 것입니다.

I am having trouble creating individual review comments. Click here to see my feedback.

package.json (10)

high

format 스크립트가 prettier를 사용하고 있지만, devDependencies에서 prettier가 제거되어 스크립트 실행 시 오류가 발생합니다. 프로젝트가 Biome으로 마이그레이션되고 있는 것으로 보이므로, 이 스크립트를 Biome을 사용하도록 수정해야 합니다.

예를 들어, biome format --write .로 변경할 수 있습니다.

    "format": "biome format --write ."

biome을 단독 포매터/린터로 사용하므로 불필요한 prettier/eslint 잔여 코드를 정리:
- format 스크립트를 biome format으로 변경
- .prettierrc 설정 파일 삭제
- baseframe .gitignore에서 .eslintcache 항목 제거

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
CI 클린 환경에서 @cocso-ui/react의 타입체크가 @cocso-ui/react-icons의
dist(타입 선언 파일)를 찾지 못하는 문제 해결. check-types의 dependsOn을
^check-types에서 ^build로 변경하여 의존 패키지가 먼저 빌드되도록 보장.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
CI 환경에서 .source 디렉토리가 없어 typecheck가 실패하는 문제 수정.
fumadocs-mdx CLI를 check-types 스크립트 앞에 실행하여 생성된 타입을 보장.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 검색 버튼에 aria-label 추가
- currentIndex가 -1일 때 잘못된 페이지 참조 방지

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ohprettyhak ohprettyhak merged commit 134dad6 into wip Feb 11, 2026
5 checks passed
@ohprettyhak ohprettyhak deleted the chore/pnpm-catalog-dependency-management branch March 11, 2026 05:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant