Update dependencies and project structure - #2
Conversation
📝 WalkthroughWalkthroughThis PR reorganizes the catalog into androidApp, desktopApp, and webApp modules, updates build logic and Gradle settings, refreshes dependency/version catalog entries, and switches Preview imports to AndroidX across catalog screens and shared UI code. ChangesBuild restructuring and CI updates
Compose preview import migration
Estimated code review effort: 4 (Complex) | ~60 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
✨ Simplify code
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: 1
🧹 Nitpick comments (5)
catalog/androidApp/build.gradle.kts (2)
45-55: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win
storeFilecan silently end up null while signing config is still created.
releaseSigningPropertiesgates whether thereleasesigning config exists, butstoreFile/storePassword/keyAlias/keyPasswordare each independently nullable viagetProperty(...). Ifsigning.propertiesexists but is missingstore.path(typo, partial file, etc.), the signing config is created with a nullstoreFile, deferring the failure to the packaging step with a less clear error.🤖 Prompt for 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. In `@catalog/androidApp/build.gradle.kts` around lines 45 - 55, The release signing config in signingConfigs should not be created with partially missing values from releaseSigningProperties, because create("release") can proceed with a null storeFile. Update the release block to validate the required properties up front in build.gradle.kts and fail fast with a clear error if any of store.path, store.password, key.alias, or key.password is missing, so the release signing configuration is only created when all values are present.
11-14: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winVersion code calculation silently breaks for two/three-digit version segments.
bits[1] * 1_00 + bits[2]assumes each non-major segment stays below 100; a minor/patch of 100+ overflows into the next segment and produces a wrong (possibly non-monotonic)versionCode, which can break Play Store upgrade ordering.💡 Suggested guard
val catalogVersionCode = catalogVersionName.split('.').map { it.toInt() }.let { bits -> check(bits.size == 3) + check(bits.all { it in 0..99 }) { "Each version component must be between 0 and 99" } bits[0] * 1_00_00 + bits[1] * 1_00 + bits[2] }🤖 Prompt for 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. In `@catalog/androidApp/build.gradle.kts` around lines 11 - 14, The versionCode computation in catalogVersionCode assumes minor and patch segments are always below 100, which can produce incorrect or non-monotonic values for larger version parts. Update the calculation in build.gradle.kts so it either validates each segment stays within the supported range or uses a safer encoding scheme that preserves ordering for all expected version values; keep the logic centered around catalogVersionName, bits, and the versionCode expression.catalog/build.gradle.kts (1)
104-108: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚖️ Poor tradeoffOptional: hoist these DSL helpers into build-logic.
The identical
android()/sourceSets()extension helpers are duplicated acrosscatalog,icons,illustrations,ui, andwebApp. Since abuild-logicconventions module already exists, extracting them (or the shared subset) would remove the copy-paste. The helpers themselves are a reasonable workaround while type-safe accessors for the new AGP 9 KMP plugin are unavailable.🤖 Prompt for 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. In `@catalog/build.gradle.kts` around lines 104 - 108, The KotlinMultiplatformExtension DSL helpers are duplicated across multiple build scripts, so hoist the shared android() and sourceSets() helpers into the existing build-logic conventions module and update catalog, icons, illustrations, ui, and webApp to use the shared definitions. Keep the helper names and signatures aligned with the current KotlinMultiplatformExtension/ExtensionAware usage so the workaround remains available in one place rather than copy-pasted.build-logic/conventions/src/main/kotlin/glass/yasan/orbit/buildlogic/LibraryPlugin.kt (1)
135-150: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winPrefer the documented typed target API over string-keyed
ExtensionAwarelookup.
android(configure: Action<KotlinMultiplatformAndroidLibraryTarget>)andsourceSets(...)resolve the extensions by hardcoded string name ("android","sourceSets") via reflection. Android's own guide for authoring custom Gradle plugins for the Android KMP library plugin recommends the typed, documented approach instead: The android {} block within the Kotlin extension in a KMP project is represented by the KotlinMultiplatformAndroidLibraryTarget interface, which also extends KotlinMultiplatformAndroidLibraryExtension. This lets you configure it viakmpExtension.targets.withType<KotlinMultiplatformAndroidLibraryTarget>().configureEach { ... }, avoiding brittle string-based extension lookups that could silently break if the extension is renamed internally.♻️ Suggested refactor using the documented typed API
- extensions.configure<KotlinMultiplatformExtension> { + extensions.configure<KotlinMultiplatformExtension> { explicitApi() // Android - android { + targets.withType<KotlinMultiplatformAndroidLibraryTarget>().configureEach { namespace = "glass.yasan.orbit.${project.name}" ... }🤖 Prompt for 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. In `@build-logic/conventions/src/main/kotlin/glass/yasan/orbit/buildlogic/LibraryPlugin.kt` around lines 135 - 150, The helper extensions in LibraryPlugin (`KotlinMultiplatformExtension.android` and `KotlinMultiplatformExtension.sourceSets`) use string-keyed `ExtensionAware` lookups, which is brittle and should be replaced with the documented typed Android KMP API. Refactor the plugin setup to configure the Android target through `KotlinMultiplatformExtension.targets.withType<KotlinMultiplatformAndroidLibraryTarget>().configureEach { ... }` and access source sets through the typed Kotlin Multiplatform model instead of `"android"`/`"sourceSets"` extension names. Keep the surrounding task configuration (`IncrementalSyncTask.isTestExecutableCompileSync`) unchanged.gradle/libs.versions.toml (1)
24-56: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueMixed catalog styles: some libraries still use inline version strings.
androidx-appCompat,compose-bom,compose-material3, andvannitktech-mavenPublish-gradlestill use inline"group:artifact:version"strings while others (agp,androidx-activityCompose,androidx-core,coil) were migrated tomodule+version.ref. Consider migrating the remaining entries for consistency in a follow-up.🤖 Prompt for 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. In `@gradle/libs.versions.toml` around lines 24 - 56, The version catalog still mixes inline coordinates with the newer module/version.ref style. Update the remaining entries in libs.versions.toml—androidx-appCompat, compose-bom, compose-material3, and vannitktech-mavenPublish-gradle—to use the same module-based pattern as agp, androidx-activityCompose, androidx-core, and coil, so the catalog stays consistent and easier to maintain.
🤖 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 `@build.gradle.kts`:
- Around line 18-24: The root Gradle setup is globally re-enabling npm lifecycle
scripts through the Yarn root extensions, which affects all Kotlin/JS and Wasm
dependencies. Update the configuration around NodeJsPlugin, WasmNodeJsPlugin,
YarnRootExtension, and WasmYarnRootExtension so install-time scripts stay
disabled by default and only the specific dependency that needs scripts is
exempted; if a global exception is unavoidable, add a clear comment documenting
why it must apply to the whole build.
---
Nitpick comments:
In
`@build-logic/conventions/src/main/kotlin/glass/yasan/orbit/buildlogic/LibraryPlugin.kt`:
- Around line 135-150: The helper extensions in LibraryPlugin
(`KotlinMultiplatformExtension.android` and
`KotlinMultiplatformExtension.sourceSets`) use string-keyed `ExtensionAware`
lookups, which is brittle and should be replaced with the documented typed
Android KMP API. Refactor the plugin setup to configure the Android target
through
`KotlinMultiplatformExtension.targets.withType<KotlinMultiplatformAndroidLibraryTarget>().configureEach
{ ... }` and access source sets through the typed Kotlin Multiplatform model
instead of `"android"`/`"sourceSets"` extension names. Keep the surrounding task
configuration (`IncrementalSyncTask.isTestExecutableCompileSync`) unchanged.
In `@catalog/androidApp/build.gradle.kts`:
- Around line 45-55: The release signing config in signingConfigs should not be
created with partially missing values from releaseSigningProperties, because
create("release") can proceed with a null storeFile. Update the release block to
validate the required properties up front in build.gradle.kts and fail fast with
a clear error if any of store.path, store.password, key.alias, or key.password
is missing, so the release signing configuration is only created when all values
are present.
- Around line 11-14: The versionCode computation in catalogVersionCode assumes
minor and patch segments are always below 100, which can produce incorrect or
non-monotonic values for larger version parts. Update the calculation in
build.gradle.kts so it either validates each segment stays within the supported
range or uses a safer encoding scheme that preserves ordering for all expected
version values; keep the logic centered around catalogVersionName, bits, and the
versionCode expression.
In `@catalog/build.gradle.kts`:
- Around line 104-108: The KotlinMultiplatformExtension DSL helpers are
duplicated across multiple build scripts, so hoist the shared android() and
sourceSets() helpers into the existing build-logic conventions module and update
catalog, icons, illustrations, ui, and webApp to use the shared definitions.
Keep the helper names and signatures aligned with the current
KotlinMultiplatformExtension/ExtensionAware usage so the workaround remains
available in one place rather than copy-pasted.
In `@gradle/libs.versions.toml`:
- Around line 24-56: The version catalog still mixes inline coordinates with the
newer module/version.ref style. Update the remaining entries in
libs.versions.toml—androidx-appCompat, compose-bom, compose-material3, and
vannitktech-mavenPublish-gradle—to use the same module-based pattern as agp,
androidx-activityCompose, androidx-core, and coil, so the catalog stays
consistent and easier to maintain.
🪄 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: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: ac934364-8901-4469-ab6b-d913075b218e
⛔ Files ignored due to path filters (13)
catalog/androidApp/src/main/res/mipmap-hdpi/ic_launcher.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-hdpi/ic_launcher_round.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-mdpi/ic_launcher.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-mdpi/ic_launcher_round.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-xhdpi/ic_launcher.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-xhdpi/ic_launcher_round.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-xxhdpi/ic_launcher.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-xxhdpi/ic_launcher_round.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher_round.pngis excluded by!**/*.pngcatalog/webApp/src/wasmJsMain/resources/favicon.pngis excluded by!**/*.pnggradle/wrapper/gradle-wrapper.jaris excluded by!**/*.jarkotlin-js-store/yarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (71)
.github/workflows/android.yml.github/workflows/desktop.yml.github/workflows/ios.yml.github/workflows/js.yml.github/workflows/wasm.ymlbuild-logic/conventions/build.gradle.ktsbuild-logic/conventions/src/main/kotlin/glass/yasan/orbit/buildlogic/LibraryPlugin.ktbuild-logic/settings.gradle.ktsbuild.gradle.ktscatalog/androidApp/build.gradle.ktscatalog/androidApp/proguard-rules.procatalog/androidApp/src/ci/res/values/ic_launcher_background.xmlcatalog/androidApp/src/debug/res/values/ic_launcher_background.xmlcatalog/androidApp/src/main/AndroidManifest.xmlcatalog/androidApp/src/main/kotlin/glass/yasan/orbit/catalog/MainActivity.ktcatalog/androidApp/src/main/res/drawable/ic_launcher_foreground.xmlcatalog/androidApp/src/main/res/mipmap-anydpi-v26/ic_launcher.xmlcatalog/androidApp/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xmlcatalog/androidApp/src/main/res/values-night/themes.xmlcatalog/androidApp/src/main/res/values/ic_launcher_background.xmlcatalog/androidApp/src/main/res/values/strings.xmlcatalog/androidApp/src/main/res/values/themes.xmlcatalog/build.gradle.ktscatalog/desktopApp/build.gradle.ktscatalog/desktopApp/src/main/kotlin/glass/yasan/orbit/catalog/Main.ktcatalog/lint-baseline.xmlcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/AlertScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/BadgeListScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/BadgeScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/ButtonScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/CardScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/CheckboxScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/ChoiceTileScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/CollapseScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/ColorsScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/CouponScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/EmptyStateScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/KeyValueScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/LinearProgressIndicatorScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/ListChoiceScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/ListScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/LoadingScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/PillButtonScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/RadioScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/SegmentedSwitchScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/SelectFieldScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/StepperScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/SwitchScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TabsScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TagScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TextFieldScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TileGroupScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TileScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TimelineScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TypographyScreen.ktcatalog/webApp/build.gradle.ktscatalog/webApp/src/jsMain/kotlin/glass/yasan/orbit/catalog/Main.ktcatalog/webApp/src/jsMain/resources/index.htmlcatalog/webApp/src/wasmJsMain/kotlin/glass/yasan/orbit/catalog/Main.ktcatalog/webApp/src/wasmJsMain/resources/index.htmlcatalog/webApp/webpack.config.d/webApp.jsgradle.propertiesgradle/libs.versions.tomlgradle/wrapper/gradle-wrapper.propertiesgradlewgradlew.baticons/build.gradle.ktsillustrations/build.gradle.ktssettings.gradle.ktsui/build.gradle.ktsui/src/commonMain/kotlin/glass/yasan/orbit/ui/controls/internal/Preview.kt
💤 Files with no reviewable changes (1)
- catalog/lint-baseline.xml
| val managedNodeVersion = "22.21.1" | ||
|
|
||
| NodeJsPlugin.apply(rootProject).version.set(managedNodeVersion) | ||
| WasmNodeJsPlugin.apply(rootProject).version.set(managedNodeVersion) | ||
|
|
||
| YarnRootExtension[rootProject].ignoreScripts = false | ||
| WasmYarnRootExtension[rootProject].ignoreScripts = false |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Map repository files relevant to build.gradle.kts and npm/yarn configuration.
git ls-files | rg '(^|/)(build\.gradle\.kts|settings\.gradle\.kts|gradle\.properties|package\.json|yarn\.lock|pnpm-lock\.yaml|npm-shrinkwrap\.json|.yarnrc\.yml)$|(^|/)webpack|webApp|npm|yarn|wasm' -n
# Inspect the target file around the cited lines.
wc -l build.gradle.kts
cat -n build.gradle.kts | sed -n '1,80p'Repository: yasanglass/orbit-compose-multiplatform
Length of output: 2384
🏁 Script executed:
#!/bin/bash
set -euo pipefail
git ls-files | rg '(^|/)(build\.gradle\.kts|settings\.gradle\.kts|gradle\.properties|package\.json|yarn\.lock|pnpm-lock\.yaml|npm-shrinkwrap\.json|.yarnrc\.yml)$|(^|/)webpack|webApp|npm|yarn|wasm' -n
wc -l build.gradle.kts
cat -n build.gradle.kts | sed -n '1,80p'Repository: yasanglass/orbit-compose-multiplatform
Length of output: 2384
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo '--- ignoreScripts / lifecycle references ---'
rg -n --hidden --no-ignore-vcs 'ignoreScripts|postinstall|lifecycle script|npm lifecycle|scripts' \
build.gradle.kts settings.gradle.kts gradle.properties catalog build-logic .github/workflows kotlin-js-store || true
echo
echo '--- package.json files ---'
git ls-files '*package.json' '*package.json.*' '.yarnrc.yml' '.npmrc' | sed -n '1,200p'
echo
echo '--- catalog/webApp/build.gradle.kts ---'
wc -l catalog/webApp/build.gradle.kts
cat -n catalog/webApp/build.gradle.kts | sed -n '1,220p'
echo
echo '--- .github/workflows/wasm.yml ---'
wc -l .github/workflows/wasm.yml
cat -n .github/workflows/wasm.yml | sed -n '1,220p'Repository: yasanglass/orbit-compose-multiplatform
Length of output: 3121
Keep npm lifecycle scripts disabled Re-enabling ignoreScripts here turns on install-time scripts for Kotlin/JS and Wasm dependencies; scope this exception to the dependency that needs it, or document why it must be global.
🤖 Prompt for 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.
In `@build.gradle.kts` around lines 18 - 24, The root Gradle setup is globally
re-enabling npm lifecycle scripts through the Yarn root extensions, which
affects all Kotlin/JS and Wasm dependencies. Update the configuration around
NodeJsPlugin, WasmNodeJsPlugin, YarnRootExtension, and WasmYarnRootExtension so
install-time scripts stay disabled by default and only the specific dependency
that needs scripts is exempted; if a global exception is unavoidable, add a
clear comment documenting why it must apply to the whole build.
There was a problem hiding this comment.
🧹 Nitpick comments (1)
catalog/build.gradle.kts (1)
82-86: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winDuplicate extension helpers across every KMP module build script.
The exact same
KotlinMultiplatformExtension.android(...)/.sourceSets(...)bridging functions are copy-pasted verbatim inicons/build.gradle.kts,illustrations/build.gradle.kts,ui/build.gradle.kts, andwebApp/build.gradle.kts(per graph context). Since this PR already touchesbuild-logic/conventions/src/main/kotlin/glass/yasan/orbit/buildlogic/LibraryPlugin.kt, consider hoisting these two functions into a shared build-logic extension/precompiled script plugin instead of duplicating them in every module.♻️ Example: shared extension in build-logic
// build-logic/conventions/src/main/kotlin/glass/yasan/orbit/buildlogic/KmpExtensions.kt fun KotlinMultiplatformExtension.android(configure: Action<KotlinMultiplatformAndroidLibraryTarget>): Unit = (this as ExtensionAware).extensions.configure("android", configure) fun KotlinMultiplatformExtension.sourceSets(configure: Action<NamedDomainObjectContainer<KotlinSourceSet>>): Unit = (this as ExtensionAware).extensions.configure("sourceSets", configure)Then import it from each module's
build.gradle.ktsinstead of redefining it locally.🤖 Prompt for 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. In `@catalog/build.gradle.kts` around lines 82 - 86, The `KotlinMultiplatformExtension.android(...)` and `.sourceSets(...)` helper functions are duplicated across multiple KMP module build scripts. Move these bridge extensions into a shared build-logic location, such as the conventions plugin alongside `LibraryPlugin` or a shared `KmpExtensions` file, and have each module reuse them instead of redefining them locally. Keep the existing function names and signatures so the module scripts can import and call the shared helpers unchanged.
🤖 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.
Nitpick comments:
In `@catalog/build.gradle.kts`:
- Around line 82-86: The `KotlinMultiplatformExtension.android(...)` and
`.sourceSets(...)` helper functions are duplicated across multiple KMP module
build scripts. Move these bridge extensions into a shared build-logic location,
such as the conventions plugin alongside `LibraryPlugin` or a shared
`KmpExtensions` file, and have each module reuse them instead of redefining them
locally. Keep the existing function names and signatures so the module scripts
can import and call the shared helpers unchanged.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 78a43344-dbba-4495-8fb7-c42373b6520b
⛔ Files ignored due to path filters (13)
catalog/androidApp/src/main/res/mipmap-hdpi/ic_launcher.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-hdpi/ic_launcher_round.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-mdpi/ic_launcher.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-mdpi/ic_launcher_round.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-xhdpi/ic_launcher.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-xhdpi/ic_launcher_round.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-xxhdpi/ic_launcher.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-xxhdpi/ic_launcher_round.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher.pngis excluded by!**/*.pngcatalog/androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher_round.pngis excluded by!**/*.pngcatalog/webApp/src/wasmJsMain/resources/favicon.pngis excluded by!**/*.pnggradle/wrapper/gradle-wrapper.jaris excluded by!**/*.jarkotlin-js-store/yarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (71)
.github/workflows/android.yml.github/workflows/desktop.yml.github/workflows/ios.yml.github/workflows/js.yml.github/workflows/wasm.ymlbuild-logic/conventions/build.gradle.ktsbuild-logic/conventions/src/main/kotlin/glass/yasan/orbit/buildlogic/LibraryPlugin.ktbuild-logic/settings.gradle.ktsbuild.gradle.ktscatalog/androidApp/build.gradle.ktscatalog/androidApp/proguard-rules.procatalog/androidApp/src/ci/res/values/ic_launcher_background.xmlcatalog/androidApp/src/debug/res/values/ic_launcher_background.xmlcatalog/androidApp/src/main/AndroidManifest.xmlcatalog/androidApp/src/main/kotlin/glass/yasan/orbit/catalog/MainActivity.ktcatalog/androidApp/src/main/res/drawable/ic_launcher_foreground.xmlcatalog/androidApp/src/main/res/mipmap-anydpi-v26/ic_launcher.xmlcatalog/androidApp/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xmlcatalog/androidApp/src/main/res/values-night/themes.xmlcatalog/androidApp/src/main/res/values/ic_launcher_background.xmlcatalog/androidApp/src/main/res/values/strings.xmlcatalog/androidApp/src/main/res/values/themes.xmlcatalog/build.gradle.ktscatalog/desktopApp/build.gradle.ktscatalog/desktopApp/src/main/kotlin/glass/yasan/orbit/catalog/Main.ktcatalog/lint-baseline.xmlcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/AlertScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/BadgeListScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/BadgeScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/ButtonScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/CardScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/CheckboxScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/ChoiceTileScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/CollapseScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/ColorsScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/CouponScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/EmptyStateScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/KeyValueScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/LinearProgressIndicatorScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/ListChoiceScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/ListScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/LoadingScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/PillButtonScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/RadioScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/SegmentedSwitchScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/SelectFieldScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/StepperScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/SwitchScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TabsScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TagScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TextFieldScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TileGroupScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TileScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TimelineScreen.ktcatalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TypographyScreen.ktcatalog/webApp/build.gradle.ktscatalog/webApp/src/jsMain/kotlin/glass/yasan/orbit/catalog/Main.ktcatalog/webApp/src/jsMain/resources/index.htmlcatalog/webApp/src/wasmJsMain/kotlin/glass/yasan/orbit/catalog/Main.ktcatalog/webApp/src/wasmJsMain/resources/index.htmlcatalog/webApp/webpack.config.d/webApp.jsgradle.propertiesgradle/libs.versions.tomlgradle/wrapper/gradle-wrapper.propertiesgradlewgradlew.baticons/build.gradle.ktsillustrations/build.gradle.ktssettings.gradle.ktsui/build.gradle.ktsui/src/commonMain/kotlin/glass/yasan/orbit/ui/controls/internal/Preview.kt
💤 Files with no reviewable changes (1)
- catalog/lint-baseline.xml
✅ Files skipped from review due to trivial changes (32)
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TimelineScreen.kt
- catalog/webApp/src/wasmJsMain/resources/index.html
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/BadgeListScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TypographyScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TileScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TextFieldScreen.kt
- gradle/wrapper/gradle-wrapper.properties
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/ListChoiceScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/RadioScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/BadgeScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/ButtonScreen.kt
- .github/workflows/desktop.yml
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/SegmentedSwitchScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/StepperScreen.kt
- illustrations/build.gradle.kts
- gradlew.bat
- catalog/androidApp/src/main/AndroidManifest.xml
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/CheckboxScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/CardScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/LoadingScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/SwitchScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TileGroupScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/ListScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TabsScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/PillButtonScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/CollapseScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/KeyValueScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/LinearProgressIndicatorScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/SelectFieldScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/ChoiceTileScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/TagScreen.kt
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/EmptyStateScreen.kt
🚧 Files skipped from review as they are similar to previous changes (22)
- catalog/webApp/src/jsMain/resources/index.html
- .github/workflows/ios.yml
- icons/build.gradle.kts
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/CouponScreen.kt
- .github/workflows/js.yml
- gradle.properties
- ui/src/commonMain/kotlin/glass/yasan/orbit/ui/controls/internal/Preview.kt
- build-logic/conventions/build.gradle.kts
- .github/workflows/wasm.yml
- .github/workflows/android.yml
- catalog/webApp/webpack.config.d/webApp.js
- gradlew
- catalog/desktopApp/build.gradle.kts
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/AlertScreen.kt
- catalog/webApp/build.gradle.kts
- gradle/libs.versions.toml
- ui/build.gradle.kts
- catalog/src/commonMain/kotlin/glass/yasan/orbit/catalog/screens/ColorsScreen.kt
- build-logic/settings.gradle.kts
- catalog/androidApp/build.gradle.kts
- build-logic/conventions/src/main/kotlin/glass/yasan/orbit/buildlogic/LibraryPlugin.kt
- settings.gradle.kts
90d55e7 to
edf4905
Compare
Summary by CodeRabbit