Conversation
* **feat: 디자인 시스템 내 LargeDevicePreview 어노테이션 정의**
* 대화면 기기 환경에서의 UI 구성을 미리 확인하기 위해 가로 1080dp, 세로 1400dp 규격의 `@Preview` 설정을 포함하는 `LargeDevicePreview` 어노테이션을 추가했습니다.
* 기본 배경색(흰색) 및 라이트 모드 설정을 포함하여 대형 디바이스 레이아웃 검증에 활용할 수 있도록 했습니다.
* **refactor: 커스텀 프리뷰 어노테이션 `@LargeDevicePreview` 적용**
* `PrezelButtonPreview`에서 하드코딩된 디바이스 사양(`spec:width=1080dp...`)을 포함한 `@Preview` 대신, 공통으로 정의된 `@LargeDevicePreview` 커스텀 어노테이션을 사용하도록 변경했습니다.
* 불필요해진 기본 `Preview` 임포트를 제거하고 관련 패키지 경로를 업데이트했습니다.
* **feat: `PreviewMatrix` 컴포넌트 및 관련 데이터 모델 추가**
* 디자인 시스템의 다양한 상태나 속성을 격자 형태로 한눈에 비교할 수 있는 `PreviewMatrix` 컴포넌트를 구현했습니다.
* 매트릭스 구성을 위한 `PreviewMatrixColumn`, `PreviewMatrixRow`, `PreviewMatrixDefaults` 데이터 클래스를 추가했습니다.
* **feat: 매트릭스 레이아웃 및 스타일 구현**
* `IntrinsicSize.Min`과 `fillMaxHeight`를 활용하여 동일한 행(Row)에 있는 셀들이 콘텐츠 길이에 상관없이 일정한 높이를 유지하도록 레이아웃을 설계했습니다.
* 헤더 셀(`PreviewMatrixHeaderCell`)과 일반 데이터 셀(`PreviewMatrixCell`)의 배경색 및 텍스트 스타일을 분리하여 시각적 구분을 명확히 했습니다.
* 사용자 정의 콘텐츠 주입을 위해 `headerCellContent`, `rowLabelContent`, `cellContent` 슬롯을 제공합니다.
* **refactor: Chip 상태 및 스타일 모델 재정의**
* `PrezelChipInteraction`을 `PrezelChipState`(Default, Active, Disabled)로, `PrezelChipFeedback`을 `PrezelChipStatus`(Default, Bad, Warning)로 명칭과 역할을 변경했습니다.
* 시각적 우선순위를 위한 `PrezelChipHierarchy`와 컬러 강조를 위한 `PrezelChipAccent` 모델을 추가했습니다.
* 내부 스타일 구조를 `PrezelChipStyle`과 `PrezelChipColors`로 분리하여 관리 효율성을 높였습니다.
* **refactor: `PrezelChip` 및 `PrezelIconChip` API 단순화**
* 외부에서 `config` 객체를 직접 생성하던 방식을 제거하고, 상태 기반 파라미터(`state`, `status`, `hierarchy`, `accent`)를 통해 스타일이 결정되도록 수정했습니다.
* `PrezelChipDefaults`에 상태별 색상 및 레이아웃 해소(Resolve) 로직을 집중시켜 컴포넌트 가독성을 개선했습니다.
* **refactor: Feature 모듈 내 Chip 호출부 리팩터링**
* `home` 및 `history` 모듈에서 하드코딩되어 있던 Chip 색상 및 구성 로직을 제거하고, 의미 중심의 상태 파라미터를 사용하도록 업데이트했습니다.
* **test: 디자인 시스템 프리뷰 강화**
* `PreviewMatrix`를 도입하여 `PrezelChip`과 `PrezelIconChip`의 모든 타입, 크기, 상태 조합을 한눈에 비교할 수 있도록 프리뷰 코드를 재작성했습니다.
* **refactor: Magenta 컬러 토큰 및 테마 속성 삭제**
* `ColorTokens`에서 사용하지 않는 Magenta 계열 색상 팔레트(`Magenta10` ~ `Magenta950`)를 모두 제거했습니다.
* `PrezelColors` 클래스 및 `PrezelColorScheme` 설정에서 `accentMagentaSmall`, `accentMagentaRegular` 속성을 삭제했습니다.
* **style: DatePicker 내 휴일 표시 색상 변경**
* `DatePickerDefaults`에서 휴일 텍스트 색상(`holidayDayTextColor`)을 기존 `accentMagentaRegular`에서 `feedbackWarningRegular`로 변경하여 테마 일관성을 확보했습니다.
* **style: PrezelBadge 내 배경 색상 참조 변경**
* `PrezelBadge` 내부 `Box`의 배경 색상을 `PrezelTheme.colors.bgScrim`에서 `PrezelTheme.colors.scrimContainer`로 업데이트했습니다.
* **refactor: 로컬 프리뷰 어노테이션을 공통 `LargeDevicePreview`로 교체**
* `PrezelTypographyScheme.kt` 내부에서만 정의해 사용하던 `@TypographyPreview`를 삭제하고, 공통 모듈의 `@LargeDevicePreview`를 사용하도록 변경했습니다.
* 이에 따라 관련 Typography 프리뷰 함수(`PrezelTypographyTitlePreview`, `PrezelTypographyBodyPreview` 등)의 어노테이션을 일괄 업데이트했습니다.
* **refactor: Detekt 정적 분석 예외 규칙 수정**
* `detekt-config.yml` 내 `LongMethod` 등 복잡도 검사 제외 대상에서 기존 `@TypographyPreview`를 제거하고 `@LargeDevicePreview`를 추가했습니다.
* Compose 프리뷰 함수들이 긴 메서드 길이 제한 등에 걸리지 않도록 예외 처리 설정을 최신화했습니다.
* **refactor: Chip 컴포넌트 베이스 구조 구축 및 패키지 재구성**
* `component.chip.base` 패키지를 신설하고 공통 레이아웃(`PrezelChipLayout`)과 스타일 클래스(`PrezelChipStyle`, `PrezelChipColors`)를 이동했습니다.
* 칩의 공통 형상(Shape) 및 텍스트 스타일 정의, 그리고 상태별 액센트 컬러 결정 로직을 베이스 함수로 추출하여 중복을 제거했습니다.
* **refactor: 일반 칩 및 아이콘 칩 로직 분리 및 고도화**
* 기존에 혼재되어 있던 일반 칩(`PrezelChip`)과 아이콘 칩(`PrezelIconChip`)의 구현을 각각 `component.chip.chip`과 `component.chip.iconChip` 패키지로 분리했습니다.
* `PrezelChipSize`, `PrezelChipType` 등의 열거형 명칭을 `ChipSize`, `ChipType` (일반 칩) 및 `IconChipSize`, `IconChipType` (아이콘 칩)으로 간소화하고 각 타입에 최적화된 상태값을 갖도록 수정했습니다.
* 각 칩 타입별로 전용 `Defaults` 클래스를 제공하여 스타일 설정 로직의 가독성을 높였습니다.
* **refactor: Feature 모듈 내 변경된 칩 참조 수정**
* `home`, `history` 등 기능 모듈에서 변경된 칩 컴포넌트의 패키지 경로 및 간소화된 enum 명칭(예: `PrezelChipSize.SMALL` -> `ChipSize.SMALL`)을 일괄 반영했습니다.
* **cleanup: 불필요한 코드 및 설정 정리**
* `PrezelChipModels.kt` 등 기존의 범용 설정 파일을 삭제하고 각 패키지 내부에 맞게 재정의했습니다.
* 칩 내부 로직에서 사용되지 않는 상태 처리 및 잘못된 예외 처리 구문을 정리했습니다.
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthrough이 PR은 Prezel 디자인 시스템의 칩 구성 요소를 재구축하여 새로운 열거형 기반 API를 도입하고, 색상 토큰을 업데이트하며, 프리뷰 인프라를 확장합니다. 또한 기능 코드를 새로운 칩 API와 통합합니다. Changes칩 시스템 재구축
디자인 시스템 기초 및 프리뷰 인프라 업데이트
Possibly related PRs
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/chip/chip/PrezelChipDefaults.kt`:
- Around line 145-151: The condition in PrezelChipDefaults.kt currently includes
a dead check "state != ChipState.DEFAULT" because ChipState only has DEFAULT and
ACTIVE and ACTIVE is already handled earlier; update the conditional to only
check "status != ChipStatus.DEFAULT || accent != ChipAccent.DEFAULT" (remove the
state comparison) so the branch correctly returns PrezelTheme.colors.bgLarge
when either ChipStatus or ChipAccent is non-default; locate the conditional that
references ChipState, ChipStatus, and ChipAccent and replace the three-way check
with the two-way status/accent check.
In
`@Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/chip/iconChip/PrezelIconChip.kt`:
- Around line 41-60: Add an optional accessibility label parameter to the
PrezelIconChip API and forward it into the underlying layout: add a parameter
like contentDescription: String? = null to the PrezelIconChip function signature
and pass that contentDescription through to PrezelChipLayout so the icon-only
chip provides a screen-reader label; update any callers/tests accordingly to
supply descriptions where needed.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 7bbf5e6e-07ae-4d26-a7f3-ddc54972c9cb
📒 Files selected for processing (22)
Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/actions/button/PrezelButton.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/chip/PrezelChip.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/chip/PrezelIconChip.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/chip/base/PrezelChipLayout.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/chip/base/PrezelChipStyle.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/chip/chip/PrezelChip.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/chip/chip/PrezelChipDefaults.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/chip/config/PrezelChipDefaults.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/chip/config/PrezelChipModels.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/chip/iconChip/PrezelIconChip.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/chip/iconChip/PrezelIconChipDefaults.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/datepicker/config/DatePickerDefaults.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/foundation/color/ColorTokens.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/foundation/color/PrezelColors.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/preview/BasicPreview.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/preview/PreviewComponent.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/theme/PrezelColorScheme.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/theme/PrezelTypographyScheme.ktPrezel/core/ui/src/main/java/com/team/prezel/core/ui/component/PrezelBadge.ktPrezel/detekt-config.ymlPrezel/feature/history/impl/src/main/java/com/team/prezel/feature/history/impl/component/HistoryPresentationCard.ktPrezel/feature/home/impl/src/main/java/com/team/prezel/feature/home/impl/component/title/PresentationHero.kt
💤 Files with no reviewable changes (4)
- Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/chip/config/PrezelChipDefaults.kt
- Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/chip/PrezelIconChip.kt
- Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/chip/PrezelChip.kt
- Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/chip/config/PrezelChipModels.kt
* **refactor: PrezelChip 배경색 중복 조건문 제거**
* `PrezelChipDefaults`에서 state, status, accent가 기본값이 아닐 경우 일괄적으로 `bgLarge` 색상을 반환하던 조건 블록을 제거했습니다.
* 특정 상태값에 의존하는 대신 hierarchy(PRIMARY, SECONDARY 등) 설정에 따라 적절한 배경색이 적용되도록 로직을 개선했습니다.
* **feat: `PrezelIconChip` 컴포저블에 접근성 설명을 위한 파라미터 추가**
* `contentDescription: String?` 파라미터를 추가하여 아이콘 칩에 대한 접근성 설명을 제공할 수 있도록 개선했습니다.
* 전달된 `contentDescription`이 있는 경우 `Modifier.semantics`를 통해 세맨틱 정보를 설정하도록 로직을 수정했습니다.
📌 작업 내용
chip컴포넌트 구조를chip/chip,chip/iconChip,chip/base패키지로 분리PrezelChip과PrezelIconChip의 defaults 및 모델 책임을 각각 분리Chip/IconChip모델을 컴포넌트별 전용 타입으로 재구성🧩 관련 이슈
📸 스크린샷
📢 논의하고 싶은 내용
Summary by CodeRabbit
릴리스 노트
New Features
Style
Refactor