Skip to content

Conversation

@egorikftp
Copy link
Member

@egorikftp egorikftp commented Jan 11, 2026

ref: #592

@coderabbitai
Copy link

coderabbitai bot commented Jan 11, 2026

Walkthrough

Public API and package namespaces were migrated from io.github.composegears.valkyrie.compose.core to io.github.composegears.valkyrie.sdk.compose.foundation (including animation and layout subpackages). Gradle module dependencies and settings now reference sdk:compose:foundation instead of compose:core. Import sites across the codebase were updated accordingly. Layout APIs were refactored: VerticalSpacer/HorizontalSpacer unified into Spacer, SizeSpacer removed, and WeightSpacer changed from a composable to an inline (non-@composable) function. State helpers (e.g., rememberMutableState, rememberMutableIntState) and animation types (e.g., Shimmer, rememberShimmer) were relocated to the foundation SDK.

🚥 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
Title check ✅ Passed The title accurately summarizes the main changes: moving the compose:core module into sdk:compose:foundation and updating Spacer components.
Description check ✅ Passed The description references issue #592, which provides context for the changes, though minimal detail is provided.

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

✨ Finishing touches
  • 📝 Generate docstrings

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.

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: 2

🤖 Fix all issues with AI agents
In @tools/compose-app/build.gradle.kts:
- Line 1: The import statement "import
org.gradle.declarative.dsl.schema.FqName.Empty.packageName" is unused and should
be removed; locate the import referencing FqName.Empty.packageName at the top of
the file and delete that line so the file no longer imports the unused
packageName symbol.

In @tools/idea-plugin/build.gradle.kts:
- Line 2: Remove the unused internal Gradle API import "import
org.gradle.internal.impldep.org.eclipse.jgit.lib.RepositoryCache.FileKey.lenient"
from build.gradle.kts; the code should use the public Gradle API method
lenient(boolean) on ArtifactView.ViewConfiguration (as used around the
lenient(...) call), so simply delete that import line to avoid referencing an
internal/unused symbol.
🧹 Nitpick comments (3)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/PreviewAnnotationSection.kt (1)

20-20: Spacer migration looks correct; consider aliasing to avoid future name clashes.

Spacer(8.dp) is inside a Column scope, so it should correctly resolve to ColumnScope.Spacer (vertical spacing). If this file ever needs androidx.compose.foundation.layout.Spacer too, consider importing one of them with an alias to avoid confusion/ambiguity.

Also applies to: 47-47

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/GeneratorSettingsScreen.kt (1)

19-19: Spacer migration is consistent and should preserve layout behavior.

All Spacer(16.dp) calls are within a Column scope, so they should map cleanly to vertical spacing (replacement for VerticalSpacer). Same note as elsewhere: consider aliasing if you later need the modifier-based Compose Spacer in this file.

Also applies to: 55-55, 60-60, 95-95

sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (1)

24-32: Consider validating weight > 0f to fail fast with a clearer error.

Proposed tweak
 @Composable
 inline fun RowScope.WeightSpacer(modifier: Modifier = Modifier, weight: Float = 1f) {
+    require(weight > 0f) { "weight must be > 0, was $weight" }
     Spacer(modifier = modifier.weight(weight))
 }

 @Composable
 inline fun ColumnScope.WeightSpacer(modifier: Modifier = Modifier, weight: Float = 1f) {
+    require(weight > 0f) { "weight must be > 0, was $weight" }
     Spacer(modifier = modifier.weight(weight))
 }
📜 Review details

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between da1e72f and 9e20527.

📒 Files selected for processing (65)
  • compose/codeviewer/build.gradle.kts
  • compose/codeviewer/src/commonMain/kotlin/io/github/composegears/valkyrie/compose/codeviewer/KotlinCodeViewer.kt
  • compose/codeviewer/src/commonMain/kotlin/io/github/composegears/valkyrie/compose/codeviewer/core/CodeEditor.kt
  • compose/core/api/core.klib.api
  • compose/ui/build.gradle.kts
  • compose/ui/src/commonMain/kotlin/io/github/composegears/valkyrie/compose/ui/InfoCard.kt
  • sdk/compose/foundation/api/foundation.api
  • sdk/compose/foundation/api/foundation.klib.api
  • sdk/compose/foundation/build.gradle.kts
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/Modifier.kt
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/RememberMutableState.kt
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/animation/ExpandedAnimatedContent.kt
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/animation/RememberShimmer.kt
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Row.kt
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt
  • settings.gradle.kts
  • tools/compose-app/build.gradle.kts
  • tools/compose-app/src/commonMain/kotlin/io/github/composegears/valkyrie/ValkyrieApp.kt
  • tools/compose-app/src/commonMain/kotlin/io/github/composegears/valkyrie/screen/intro/IntroScreen.kt
  • tools/compose-app/src/commonMain/kotlin/io/github/composegears/valkyrie/screen/mode/simple/SimpleConversionScreen.kt
  • tools/idea-plugin/build.gradle.kts
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/action/dialog/RequiredIconPackModeDialog.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/editor/ui/VirtualFileImageVector.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/common/picker/UniversalPicker.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/DragAndDropBox.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/DropdownMenu.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/FocusableTextField.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/InfoItem.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/InputField.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/TooltipButton.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/TopAppBar.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/components/previewer/ImageVectorPreviewPanel.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/components/previewer/PreviewParsingError.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/components/previewer/TopActions.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/conversion/GenericConversionScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/picker/GenericPickerScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/platform/DragAndDropHandler.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/editor/EditorSelectScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/editor/edit/ui/EditorSelectUi.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/intro/IntroScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/DragAndDropOverlay.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/batch/BatchProcessingStateUi.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/batch/ui/ImportIssues.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/picker/IconPackPickerStateUi.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/creation/IconPackCreationScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/creation/common/packedit/ui/PackEditUi.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ui/foundation/ChooseExistingPackFile.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ui/foundation/ExistingPackEditor.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/ChoosePackDirectory.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/NewPackCreation.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/simple/conversion/SimpleConversionScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/AboutSettingsScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/GeneralSettingsScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/GeneratorSettingsScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/IndentSizeSection.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/OutputFormatSection.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/PreviewAnnotationSection.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/ui/SelectableCard.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/preview/ImageVectorPreviewSettingsScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/WebImportSelectorScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/SearchInputField.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/WebImportScreenComponents.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/WebImportTopActions.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/material/MaterialSymbolsImportScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/material/ui/FontCustomization.kt
💤 Files with no reviewable changes (1)
  • compose/core/api/core.klib.api
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-12-07T20:07:49.753Z
Learnt from: egorikftp
Repo: ComposeGears/Valkyrie PR: 750
File: tools/gradle-plugin/src/main/kotlin/io/github/composegears/valkyrie/gradle/internal/task/GenerateImageVectorsTask.kt:71-85
Timestamp: 2025-12-07T20:07:49.753Z
Learning: In the Valkyrie Gradle plugin (Kotlin), the `useFlatPackage` flag in `IconPackExtension` is only applicable when nested packs are configured. For single icon packs (without nested packs), the flag is intentionally not propagated to `ImageVectorGeneratorConfig` as there is no package hierarchy to flatten.

Applied to files:

  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/ChoosePackDirectory.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/editor/ui/VirtualFileImageVector.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/preview/ImageVectorPreviewSettingsScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/picker/IconPackPickerStateUi.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ui/foundation/ExistingPackEditor.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/components/previewer/ImageVectorPreviewPanel.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/creation/common/packedit/ui/PackEditUi.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/creation/IconPackCreationScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/action/dialog/RequiredIconPackModeDialog.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/DragAndDropOverlay.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/NewPackCreation.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/intro/IntroScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ui/foundation/ChooseExistingPackFile.kt
📚 Learning: 2026-01-01T18:09:41.901Z
Learnt from: egorikftp
Repo: ComposeGears/Valkyrie PR: 801
File: gradle/libs.versions.toml:14-14
Timestamp: 2026-01-01T18:09:41.901Z
Learning: In the Valkyrie project (ComposeGears/Valkyrie), compose-ui-tooling-preview must use version 1.10.0 (even though runtime Compose is 1.8.2) because 1.10.0+ provides unified KMP preview annotation support required for IntelliJ IDEA 2025.3+ preview functionality.

Applied to files:

  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/ChoosePackDirectory.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/editor/edit/ui/EditorSelectUi.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/InputField.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/preview/ImageVectorPreviewSettingsScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/FocusableTextField.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/picker/IconPackPickerStateUi.kt
  • compose/codeviewer/build.gradle.kts
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ui/foundation/ExistingPackEditor.kt
  • tools/compose-app/build.gradle.kts
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/OutputFormatSection.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/simple/conversion/SimpleConversionScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/components/previewer/ImageVectorPreviewPanel.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/ui/SelectableCard.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/batch/ui/ImportIssues.kt
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/RememberMutableState.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/PreviewAnnotationSection.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/GeneratorSettingsScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/creation/common/packedit/ui/PackEditUi.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/TopAppBar.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/DropdownMenu.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/action/dialog/RequiredIconPackModeDialog.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/batch/BatchProcessingStateUi.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/components/previewer/TopActions.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/TooltipButton.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/material/ui/FontCustomization.kt
  • compose/ui/build.gradle.kts
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/components/previewer/PreviewParsingError.kt
  • tools/idea-plugin/build.gradle.kts
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/DragAndDropOverlay.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/common/picker/UniversalPicker.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/IndentSizeSection.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/DragAndDropBox.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/NewPackCreation.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/AboutSettingsScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/picker/GenericPickerScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/WebImportScreenComponents.kt
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/Modifier.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ui/foundation/ChooseExistingPackFile.kt
📚 Learning: 2025-10-21T20:55:27.073Z
Learnt from: egorikftp
Repo: ComposeGears/Valkyrie PR: 651
File: tools/idea-plugin/build.gradle.kts:147-175
Timestamp: 2025-10-21T20:55:27.073Z
Learning: In Gradle Kotlin DSL (.gradle.kts) scripts, the types `org.gradle.api.artifacts.ArtifactCollection` and `org.gradle.api.artifacts.component.ModuleComponentIdentifier` are implicitly available and do not require explicit import statements.

Applied to files:

  • compose/codeviewer/build.gradle.kts
  • tools/compose-app/build.gradle.kts
  • compose/ui/build.gradle.kts
  • tools/idea-plugin/build.gradle.kts
🧬 Code graph analysis (22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/ChoosePackDirectory.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/WebImportSelectorScreen.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/SearchInputField.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/preview/ImageVectorPreviewSettingsScreen.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ui/foundation/ExistingPackEditor.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/OutputFormatSection.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/compose-app/src/commonMain/kotlin/io/github/composegears/valkyrie/screen/intro/IntroScreen.kt (2)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/util/ValkyrieStrings.kt (1)
  • stringResource (15-21)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/batch/ui/ImportIssues.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/PreviewAnnotationSection.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/GeneratorSettingsScreen.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/creation/common/packedit/ui/PackEditUi.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/creation/IconPackCreationScreen.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/WebImportTopActions.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/material/ui/FontCustomization.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/editor/EditorSelectScreen.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/common/picker/UniversalPicker.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/IndentSizeSection.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/NewPackCreation.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/intro/IntroScreen.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/picker/GenericPickerScreen.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/WebImportScreenComponents.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/compose-app/src/commonMain/kotlin/io/github/composegears/valkyrie/ValkyrieApp.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build (ubuntu-latest)
🔇 Additional comments (84)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/ui/SelectableCard.kt (1)

19-19: Import migration is correct.

The import path has been properly updated to reflect the module reorganization from compose.core.layout to sdk.compose.foundation.layout, aligning with the PR objectives. The CenterVerticalRow usage on line 43 remains unchanged and fully compatible.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/FocusableTextField.kt (1)

54-55: LGTM!

Import paths correctly updated to the new sdk.compose.foundation namespace as part of the module reorganization. Usage of CenterVerticalRow and rememberMutableState throughout the file remains consistent with these updated imports.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/WebImportSelectorScreen.kt (2)

22-22: LGTM! Clean migration to the new foundation package.

The import correctly reflects the API migration from compose.core.layout to sdk.compose.foundation.layout.


71-71: LGTM! Correct migration to the unified Spacer API.

The change from VerticalSpacer(16.dp) to Spacer(16.dp) is correct. Since this call is within a ColumnScope, the new Spacer function automatically creates vertical spacing, maintaining the same behavior.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/TopAppBar.kt (1)

25-26: LGTM! Import paths successfully migrated to the foundation module.

The import path updates for CenterVerticalRow and WeightSpacer correctly reflect the module reorganization from compose.core.layout to sdk.compose.foundation.layout, aligning with the PR objectives.

compose/ui/src/commonMain/kotlin/io/github/composegears/valkyrie/compose/ui/InfoCard.kt (1)

21-23: Import path is correct; dependency verified.

The CenterVerticalRow import points to the correct location in the foundation module, which is already declared as a dependency in compose/ui's build.gradle.kts. The function signature matches the usage in InfoCard (modifier and horizontalArrangement parameters).

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/DragAndDropOverlay.kt (1)

26-26: Import migration is correct and properly wired.

Verification confirms:

  • No old compose.core.layout.CenterVerticalRow imports remain anywhere in the codebase
  • New import path is used consistently across 21+ files in tools/idea-plugin and compose/ui
  • Module dependency projects.sdk.compose.foundation is already declared in the build configuration
  • Target file has the correct import and usage

No further action needed.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/material/MaterialSymbolsImportScreen.kt (1)

40-42: LGTM! Import paths correctly updated.

The import path updates from compose.core to sdk.compose.foundation are part of the module reorganization described in the PR. The new package structure is logical, with animation utilities under the animation subpackage and state management at the foundation root level.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/OutputFormatSection.kt (1)

20-20: LGTM! Clean migration to the unified Spacer API.

The import and usage have been correctly updated to use the new Spacer function from sdk.compose.foundation.layout. Since this is called within a Column (ColumnScope), it will apply the height modifier, maintaining the same behavior as the previous VerticalSpacer(8.dp).

Also applies to: 45-45

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/WebImportScreenComponents.kt (2)

37-41: LGTM! Clean package refactoring.

The import statements have been correctly updated to the new sdk.compose.foundation package structure, aligning with the PR's objective to consolidate compose utilities.


88-88: LGTM! Correct usage of the unified Spacer API.

The change from VerticalSpacer(16.dp) to Spacer(16.dp) is correct. Since this is within a Column scope, the ColumnScope.Spacer extension function will be invoked, which applies the .height(dp) modifier to maintain the same vertical spacing behavior.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/picker/IconPackPickerStateUi.kt (1)

6-6: LGTM! Clean import path update.

The import has been correctly updated to reflect the module reorganization from compose.core to sdk.compose.foundation. The usage of WeightSpacer remains unchanged, confirming API compatibility.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/picker/GenericPickerScreen.kt (2)

25-28: LGTM! Clean import migration to SDK foundation package.

The import paths have been correctly updated to the new sdk.compose.foundation package structure, and all imported components are used in the file.


131-131: LGTM! Correct migration to context-aware Spacer API.

Both Spacer usages are correctly placed within a Column scope (line 119), so they will automatically apply vertical spacing via the ColumnScope.Spacer extension function. The behavior is preserved while using the cleaner, context-aware API.

Also applies to: 161-161

tools/compose-app/src/commonMain/kotlin/io/github/composegears/valkyrie/screen/intro/IntroScreen.kt (2)

26-27: LGTM! Imports correctly updated.

The import statements properly reflect the migration to the new sdk.compose.foundation module structure.


65-65: LGTM! Spacer migration is correct.

The replacement of VerticalSpacer with the scope-aware Spacer function is appropriate. Within the Column scope, Spacer(dp) automatically applies vertical spacing via Modifier.height(dp), maintaining equivalent behavior.

Also applies to: 72-72

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/components/previewer/PreviewParsingError.kt (1)

24-24: LGTM! Import updated correctly as part of the refactoring.

The import has been properly updated from the old compose.core package to the new sdk.compose.foundation package, aligning with the PR's objective to consolidate the public API surface. The usage of WeightSpacer at lines 38 and 49 remains unchanged, confirming API compatibility.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/components/previewer/TopActions.kt (1)

18-18: Import path correctly updated for module migration.

The import statement on line 18 has been properly updated from compose.core.layout to sdk.compose.foundation.layout. The usage of CenterVerticalRow remains unchanged, confirming this is purely a package reorganization with no functional impact. No remaining references to the old compose.core package path exist in the codebase.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/intro/IntroScreen.kt (2)

33-34: LGTM! Import updates align with the module migration.

The imports correctly reference the new foundation SDK location for Spacer and WeightSpacer.


99-158: LGTM! Spacer API migration is correct.

The refactoring from VerticalSpacer to Spacer is correctly applied. All calls are within ColumnScope, so the context-aware Spacer function will properly apply the height modifier for vertical spacing. The spacing values are preserved, and the migration is consistent throughout the file.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/material/ui/FontCustomization.kt (3)

33-35: LGTM! Import paths correctly updated.

The migration from the internal compose.core module to sdk.compose.foundation.layout is clean and consistent.


76-76: LGTM! Spacer API migration correctly applied.

The unified Spacer function automatically resolves to horizontal or vertical spacing based on scope (RowScope vs ColumnScope), which is more idiomatic than the previous explicit API. All usages are contextually correct:

  • Line 76: Horizontal spacing within CenterVerticalRow
  • Lines 98, 112, 131, 161: Vertical spacing within Column

Also applies to: 98-98, 112-112, 131-131, 161-161


67-67: LGTM! WeightSpacer usages correctly maintained.

The call sites remain unchanged after the migration to the sdk foundation module. The underlying change from composable to inline function is an internal optimization that doesn't impact usage.

Also applies to: 106-106, 246-246

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/SearchInputField.kt (2)

55-67: Spacer(4.dp) replacement is fine and matches the new unified API.
Given horizontalArrangement = Arrangement.spacedBy(4.dp), just sanity-check that the extra leading Spacer(4.dp) (plus padding(start = 4.dp)) is still the intended left inset.


38-40: Import migration is correct and consistent. The CenterVerticalRow composable provides RowScope to its content lambda, and the Spacer(4.dp) extension is properly defined for RowScope in the SDK. The code will resolve and compile correctly.

tools/compose-app/build.gradle.kts (1)

41-41: Dependency migration complete and verified.

The change from projects.compose.core to projects.sdk.compose.foundation is correct and all source files have been properly updated. Found active imports from the new module in ValkyrieApp.kt, IntroScreen.kt, and SimpleConversionScreen.kt with no stale imports from the old package remaining.

tools/compose-app/src/commonMain/kotlin/io/github/composegears/valkyrie/screen/mode/simple/SimpleConversionScreen.kt (1)

17-17: LGTM! Import migration looks good.

The import path update correctly reflects the module reorganization from compose.core to sdk.compose.foundation. The WeightSpacer() usage remains compatible with the new implementation.

Also applies to: 33-33, 35-35

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/simple/conversion/SimpleConversionScreen.kt (2)

18-18: LGTM! Import path updated correctly.

The import migration from compose.core to sdk.compose.foundation is consistent with the module reorganization.


87-87: Migration complete and verified.

All usages of WeightSpacer across the codebase have been successfully migrated to the new inline function in sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt. No old imports remain, and all 32 usages (including lines 87, 94, 100 in this file) correctly use the new API with proper weight parameters.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/conversion/GenericConversionScreen.kt (1)

11-13: LGTM! Import paths updated correctly for module reorganization.

The import path updates align with the PR objective of migrating from :compose:core to :sdk:compose:foundation. The WeightSpacer function is correctly defined as an inline @composable, and the existing usage at line 74 works correctly since all parameters have defaults. All three imported functions (ExpandedAnimatedContent, WeightSpacer, and rememberMutableState) are compatible with their usage in the file.

tools/compose-app/src/commonMain/kotlin/io/github/composegears/valkyrie/ValkyrieApp.kt (3)

28-29: LGTM! Import paths correctly updated.

The import paths have been successfully migrated from the old compose.core package to the new sdk.compose.foundation package, aligning with the module reorganization.


42-42: LGTM! Correct Spacer usage in ColumnScope.

The replacement of VerticalSpacer with Spacer is correct. Since NavigationRail provides a ColumnScope, the Spacer(4.dp) will automatically use the height modifier as expected.

Also applies to: 55-55


48-48: LGTM! WeightSpacer correctly placed for flexible spacing.

The addition of WeightSpacer() creates flexible spacing between the logo and settings items, pushing them to opposite ends of the navigation rail. This is a good use of the weight-based spacing pattern.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/editor/edit/ui/EditorSelectUi.kt (1)

6-6: LGTM! Import path correctly migrated.

The import path for WeightSpacer has been properly updated to the new foundation package location.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/WebImportTopActions.kt (2)

31-33: LGTM! Import paths correctly migrated.

All layout utility imports have been properly updated to the new sdk.compose.foundation.layout package.


116-116: LGTM! Correct Spacer usage in ColumnScope.

The replacement of VerticalSpacer(8.dp) with Spacer(8.dp) is correct. Within the Column scope, the Spacer extension will use the appropriate height modifier.

compose/ui/build.gradle.kts (1)

10-10: LGTM! Dependency correctly updated for module migration.

The dependency has been properly updated from projects.compose.core to projects.sdk.compose.foundation, aligning with the module reorganization described in the PR objectives.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/AboutSettingsScreen.kt (2)

33-34: LGTM! Import paths correctly migrated.

Both CenterVerticalRow and Spacer imports have been properly updated to the new foundation package location.


50-50: LGTM! Consistent Spacer usage in ColumnScope.

All replacements of VerticalSpacer(16.dp) with Spacer(16.dp) are correct. Within the Column scope, the Spacer extension will apply the appropriate height modifier, maintaining the existing vertical spacing behavior.

Also applies to: 74-74, 76-76, 86-86

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ui/foundation/ExistingPackEditor.kt (2)

15-15: LGTM: Import path updated correctly.

The import has been successfully migrated from the old core package to the new foundation SDK package.


45-45: LGTM: Spacer usage is correct.

The migration from VerticalSpacer to Spacer is correct. Since this is used within a Column scope, it will resolve to the ColumnScope.Spacer extension that applies a height modifier.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/ChoosePackDirectory.kt (2)

22-22: LGTM: Import migrated correctly.


85-85: LGTM: Spacer usages are correct.

Both Spacer calls are within a Column scope and will correctly resolve to the ColumnScope.Spacer extension, maintaining the same vertical spacing behavior as the previous VerticalSpacer implementation.

Also applies to: 105-105

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/IndentSizeSection.kt (2)

30-32: LGTM: All imports migrated correctly.

The imports for CenterVerticalRow, Spacer, and rememberMutableState have been successfully updated to the new foundation SDK package paths.


74-74: LGTM: Spacer usage is correct.

The Spacer is used within CenterVerticalRow (which provides RowScope), so it will correctly resolve to the RowScope.Spacer extension that applies a width modifier, maintaining the same horizontal spacing as HorizontalSpacer.

compose/codeviewer/build.gradle.kts (1)

10-10: LGTM: Dependency updated correctly.

The dependency has been properly updated to reference the new sdk:compose:foundation module using the type-safe project accessor.

settings.gradle.kts (1)

79-79: LGTM: Module structure updated correctly.

The sdk:compose:foundation module has been added correctly and follows the project's module naming conventions. All references to the old compose:core module have been successfully removed from the codebase, and the directory structure reflects the change.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/preview/ImageVectorPreviewSettingsScreen.kt (2)

26-26: LGTM: Import updated to foundation SDK package.

The import correctly reflects the module reorganization from compose.core to sdk.compose.foundation.


53-53: LGTM: Spacer usage is correct.

Both Spacer(16.dp) calls are within ColumnScope and will correctly apply vertical spacing via the height modifier.

Also applies to: 106-106

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/common/picker/UniversalPicker.kt (2)

32-35: LGTM: Imports updated to foundation SDK package.

All imports correctly reflect the migration from compose.core to sdk.compose.foundation.


148-148: LGTM: Spacer usage is correct.

The Spacer(16.dp) call is within ColumnScope and will correctly apply vertical spacing.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/NewPackCreation.kt (2)

32-34: LGTM: Imports updated to foundation SDK package.

Imports correctly reflect the module reorganization.


69-69: LGTM: Spacer usage is correct.

Both Spacer(32.dp) calls are within ColumnScope and will correctly apply vertical spacing.

Also applies to: 76-76

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/GeneralSettingsScreen.kt (2)

43-46: LGTM: Imports updated to foundation SDK package.

All imports correctly reflect the module reorganization from compose.core to sdk.compose.foundation.


120-120: LGTM: Spacer usage is correct.

All Spacer(16.dp) calls are within ColumnScope and will correctly apply vertical spacing.

Also applies to: 181-181, 187-187, 199-199

tools/idea-plugin/build.gradle.kts (1)

36-36: LGTM: Dependency updated to foundation SDK module.

The dependency change correctly reflects the module reorganization from compose.core to sdk.compose.foundation.

sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)

3-3: Package move looks consistent with the new sdk.compose.foundation namespace.


14-22: ColumnScope.Spacer(Dp) / RowScope.Spacer(Dp) are clear and avoid ambiguity with androidx.compose.foundation.layout.Spacer(Modifier).

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/editor/EditorSelectScreen.kt (1)

27-27: Spacer migration is correct here (ColumnScope.Spacer(8.dp) inside Column).

Also applies to: 59-59

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/creation/common/packedit/ui/PackEditUi.kt (1)

15-16: Spacer replacements are scope-correct (all within Column, so vertical spacing semantics are preserved).

Also applies to: 73-73, 126-126, 162-162

sdk/compose/foundation/api/foundation.api (1)

1-35: ABI dump additions look consistent with the new foundation module + relocated APIs.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/action/dialog/RequiredIconPackModeDialog.kt (1)

19-19: CenterVerticalRow import relocation is straightforward and safe.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ui/foundation/ChooseExistingPackFile.kt (1)

18-18: rememberMutableState migration is consistent; usage remains clear (keyed by isDragging).

Also applies to: 49-49

compose/codeviewer/src/commonMain/kotlin/io/github/composegears/valkyrie/compose/codeviewer/KotlinCodeViewer.kt (1)

16-16: rememberMutableState relocation is fine; recomputation keys for highlights are appropriate.

Also applies to: 26-32

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/DragAndDropBox.kt (1)

29-29: LGTM! Import path updated correctly.

The import has been successfully migrated from the core package to the foundation SDK package as part of the module reorganization. The usage remains unchanged.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/creation/IconPackCreationScreen.kt (2)

31-31: LGTM! Import migrated to foundation.

The Spacer import has been successfully updated to use the foundation SDK package.


105-105: LGTM! Spacer API correctly unified.

The VerticalSpacer call has been correctly replaced with the unified Spacer API. Since this is inside a Column (line 73), the ColumnScope.Spacer extension function will be resolved, which correctly applies the height modifier.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/TooltipButton.kt (1)

24-24: LGTM! CenterVerticalRow import migrated correctly.

The import has been successfully updated to the foundation SDK package. The usage in the preview function remains unchanged.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/platform/DragAndDropHandler.kt (1)

11-11: LGTM! Import path correctly updated.

The rememberMutableState import has been successfully migrated to the foundation SDK package as part of the module reorganization.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/InfoItem.kt (1)

16-16: LGTM! Import successfully migrated.

The CenterVerticalRow import has been correctly updated to use the foundation SDK package. The usage remains unchanged.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/InputField.kt (1)

21-21: Import path correctly updated.

The import path for CenterVerticalRow has been correctly migrated from the old compose.core namespace to sdk.compose.foundation.layout.

compose/codeviewer/src/commonMain/kotlin/io/github/composegears/valkyrie/compose/codeviewer/core/CodeEditor.kt (1)

42-43: Import paths correctly updated.

Both rememberMutableIntState and rememberMutableState have been correctly migrated from the old compose.core namespace to sdk.compose.foundation.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/DropdownMenu.kt (1)

35-37: Import paths correctly updated.

All three imports (applyIf, CenterVerticalRow, and rememberMutableState) have been correctly migrated from the old compose.core namespace to sdk.compose.foundation.

sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/animation/ExpandedAnimatedContent.kt (1)

1-1: Package migration is complete and correct.

The namespace change from io.github.composegears.valkyrie.compose.core.animation to io.github.composegears.valkyrie.sdk.compose.foundation.animation has been successfully applied. All import references to ExpandedAnimatedContent in the codebase have been updated to use the new package path.

sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/RememberMutableState.kt (1)

1-1: Package migration is complete with all imports properly updated.

The namespace change from io.github.composegears.valkyrie.compose.core to io.github.composegears.valkyrie.sdk.compose.foundation has been successfully applied across the codebase. All references to the old package have been removed, and the public utility functions (rememberMutableState and rememberMutableIntState) are now being imported and used from the new package location in 20+ files across the IDEA plugin and compose modules.

sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/Modifier.kt (1)

1-1: Package move is consistent with new module namespace.

File path and package io.github.composegears.valkyrie.sdk.compose.foundation are aligned; as long as downstream imports were migrated, this should be safe.

sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Row.kt (1)

1-1: Package move looks correct; no functional change.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/batch/ui/ImportIssues.kt (1)

21-21: Spacer replacement is correct in a ColumnScope context.

Spacer(16.dp) here should resolve to the foundation ColumnScope.Spacer(dp: Dp, ...) overload (since it’s inside Column { ... }).

Also applies to: 54-54

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/editor/ui/VirtualFileImageVector.kt (1)

16-16: Dependency configuration confirmed correctly updated.

The tools/idea-plugin module has been properly updated: line 36 of build.gradle.kts includes implementation(projects.sdk.compose.foundation), there are no references to the removed compose:core module, and no stale imports exist in the codebase. The import on line 16 of VirtualFileImageVector.kt is correct.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/batch/BatchProcessingStateUi.kt (1)

41-44: No issues found with the foundation import migration.

The WeightSpacer import is correct and the API signature supports the usage in this file. Both RowScope.WeightSpacer and ColumnScope.WeightSpacer are defined with default parameters (modifier: Modifier = Modifier, weight: Float = 1f), allowing calls with no arguments as used on line 110. No naming collision exists with the androidx Spacer import on line 9.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/components/previewer/ImageVectorPreviewPanel.kt (2)

26-27: LGTM! Import paths correctly updated.

The imports have been properly migrated to the new sdk.compose.foundation package structure.


179-179: LGTM! Spacer usage updated correctly.

The migration from VerticalSpacer to the unified Spacer API is correct. Since this is within a Column context (line 163), the ColumnScope.Spacer extension will be properly resolved.

sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/animation/RememberShimmer.kt (1)

1-1: LGTM! Package migration completed correctly.

The package declaration has been properly updated to the new sdk.compose.foundation.animation namespace as part of the module reorganization.

sdk/compose/foundation/api/foundation.klib.api (1)

1-27: LGTM! ABI dump properly documents the foundation module's public API.

The Klib ABI dump correctly captures the public API surface of the new sdk.compose.foundation module, including the unified Spacer API (lines 18, 20) as context-dependent inline extensions on ColumnScope and RowScope, along with all other migrated APIs.

@egorikftp egorikftp force-pushed the task/compose-core-to-foundation branch from 9e20527 to ced1f20 Compare January 11, 2026 20:29
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: 0

🧹 Nitpick comments (2)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/DropdownMenu.kt (1)

15-16: Consider disambiguating DropdownMenu to avoid symbol shadowing confusion.
This file defines fun DropdownMenu(...) and also imports androidx.compose.material3.DropdownMenu; the call at Line 86 currently resolves fine, but it’s easy to misread / mis-auto-import later.

Proposed clarity tweak
-import androidx.compose.material3.DropdownMenu
+import androidx.compose.material3.DropdownMenu as M3DropdownMenu
@@
-        DropdownMenu(
+        M3DropdownMenu(
             modifier = Modifier
                 .widthIn(min = minDropDownWidth)
                 .applyIf(!MaterialTheme.colorScheme.isLight) {
                     border(
                         width = Dp.Hairline,
                         color = MaterialTheme.colorScheme.onSurface.subtle(),
                         shape = MaterialTheme.shapes.extraSmall,
                     )
                 },
             expanded = dropdownVisible,
             onDismissRequest = { dropdownVisible = false },
             containerColor = MaterialTheme.colorScheme.surface,
         ) {

Also applies to: 41-46, 86-99

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/GeneratorSettingsScreen.kt (1)

55-60: Spacer migration looks correct in Column scope.
Spacer(16.dp) here should bind to the ColumnScope.Spacer(Dp) extension and keep the same vertical spacing semantics.

(Optional) If you ever want to reduce “bookend” nodes, you could replace the first/last Spacer(16.dp) with a Modifier.padding(vertical = 16.dp) on the Column (keeping the middle Spacer(16.dp) as-is).

Also applies to: 95-95

📜 Review details

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9e20527 and ced1f20.

📒 Files selected for processing (65)
  • compose/codeviewer/build.gradle.kts
  • compose/codeviewer/src/commonMain/kotlin/io/github/composegears/valkyrie/compose/codeviewer/KotlinCodeViewer.kt
  • compose/codeviewer/src/commonMain/kotlin/io/github/composegears/valkyrie/compose/codeviewer/core/CodeEditor.kt
  • compose/core/api/core.klib.api
  • compose/ui/build.gradle.kts
  • compose/ui/src/commonMain/kotlin/io/github/composegears/valkyrie/compose/ui/InfoCard.kt
  • sdk/compose/foundation/api/foundation.api
  • sdk/compose/foundation/api/foundation.klib.api
  • sdk/compose/foundation/build.gradle.kts
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/Modifier.kt
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/RememberMutableState.kt
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/animation/ExpandedAnimatedContent.kt
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/animation/RememberShimmer.kt
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Row.kt
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt
  • settings.gradle.kts
  • tools/compose-app/build.gradle.kts
  • tools/compose-app/src/commonMain/kotlin/io/github/composegears/valkyrie/ValkyrieApp.kt
  • tools/compose-app/src/commonMain/kotlin/io/github/composegears/valkyrie/screen/intro/IntroScreen.kt
  • tools/compose-app/src/commonMain/kotlin/io/github/composegears/valkyrie/screen/mode/simple/SimpleConversionScreen.kt
  • tools/idea-plugin/build.gradle.kts
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/action/dialog/RequiredIconPackModeDialog.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/editor/ui/VirtualFileImageVector.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/common/picker/UniversalPicker.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/DragAndDropBox.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/DropdownMenu.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/FocusableTextField.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/InfoItem.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/InputField.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/TooltipButton.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/TopAppBar.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/components/previewer/ImageVectorPreviewPanel.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/components/previewer/PreviewParsingError.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/components/previewer/TopActions.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/conversion/GenericConversionScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/picker/GenericPickerScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/platform/DragAndDropHandler.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/editor/EditorSelectScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/editor/edit/ui/EditorSelectUi.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/intro/IntroScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/DragAndDropOverlay.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/batch/BatchProcessingStateUi.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/batch/ui/ImportIssues.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/picker/IconPackPickerStateUi.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/creation/IconPackCreationScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/creation/common/packedit/ui/PackEditUi.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ui/foundation/ChooseExistingPackFile.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ui/foundation/ExistingPackEditor.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/ChoosePackDirectory.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/NewPackCreation.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/simple/conversion/SimpleConversionScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/AboutSettingsScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/GeneralSettingsScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/GeneratorSettingsScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/IndentSizeSection.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/OutputFormatSection.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/PreviewAnnotationSection.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/ui/SelectableCard.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/preview/ImageVectorPreviewSettingsScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/WebImportSelectorScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/SearchInputField.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/WebImportScreenComponents.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/WebImportTopActions.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/material/MaterialSymbolsImportScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/material/ui/FontCustomization.kt
💤 Files with no reviewable changes (1)
  • compose/core/api/core.klib.api
✅ Files skipped from review due to trivial changes (1)
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/FocusableTextField.kt
🚧 Files skipped from review as they are similar to previous changes (42)
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/RememberMutableState.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/components/previewer/ImageVectorPreviewPanel.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/SearchInputField.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/batch/ui/ImportIssues.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/material/ui/FontCustomization.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/creation/common/packedit/ui/PackEditUi.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/preview/ImageVectorPreviewSettingsScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/TooltipButton.kt
  • tools/compose-app/src/commonMain/kotlin/io/github/composegears/valkyrie/screen/mode/simple/SimpleConversionScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/DragAndDropOverlay.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/WebImportTopActions.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/editor/edit/ui/EditorSelectUi.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/simple/conversion/SimpleConversionScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/AboutSettingsScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/picker/GenericPickerScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/components/previewer/PreviewParsingError.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/DragAndDropBox.kt
  • settings.gradle.kts
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/batch/BatchProcessingStateUi.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/creation/IconPackCreationScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/common/picker/UniversalPicker.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/editor/EditorSelectScreen.kt
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/animation/RememberShimmer.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/action/dialog/RequiredIconPackModeDialog.kt
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Row.kt
  • compose/ui/src/commonMain/kotlin/io/github/composegears/valkyrie/compose/ui/InfoCard.kt
  • compose/codeviewer/build.gradle.kts
  • compose/ui/build.gradle.kts
  • tools/compose-app/src/commonMain/kotlin/io/github/composegears/valkyrie/screen/intro/IntroScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/IndentSizeSection.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/ui/SelectableCard.kt
  • tools/compose-app/build.gradle.kts
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/PreviewAnnotationSection.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/material/MaterialSymbolsImportScreen.kt
  • tools/compose-app/src/commonMain/kotlin/io/github/composegears/valkyrie/ValkyrieApp.kt
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/animation/ExpandedAnimatedContent.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ui/foundation/ChooseExistingPackFile.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/picker/IconPackPickerStateUi.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/components/previewer/TopActions.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/intro/IntroScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/WebImportSelectorScreen.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/GeneralSettingsScreen.kt
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: egorikftp
Repo: ComposeGears/Valkyrie PR: 801
File: gradle/libs.versions.toml:14-14
Timestamp: 2026-01-01T18:09:41.901Z
Learning: In the Valkyrie project (ComposeGears/Valkyrie), compose-ui-tooling-preview must use version 1.10.0 (even though runtime Compose is 1.8.2) because 1.10.0+ provides unified KMP preview annotation support required for IntelliJ IDEA 2025.3+ preview functionality.
📚 Learning: 2026-01-01T18:09:41.901Z
Learnt from: egorikftp
Repo: ComposeGears/Valkyrie PR: 801
File: gradle/libs.versions.toml:14-14
Timestamp: 2026-01-01T18:09:41.901Z
Learning: In the Valkyrie project (ComposeGears/Valkyrie), compose-ui-tooling-preview must use version 1.10.0 (even though runtime Compose is 1.8.2) because 1.10.0+ provides unified KMP preview annotation support required for IntelliJ IDEA 2025.3+ preview functionality.

Applied to files:

  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/DropdownMenu.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/NewPackCreation.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/TopAppBar.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/WebImportScreenComponents.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/ChoosePackDirectory.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ui/foundation/ExistingPackEditor.kt
  • sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/Modifier.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/InputField.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/OutputFormatSection.kt
  • tools/idea-plugin/build.gradle.kts
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/GeneratorSettingsScreen.kt
📚 Learning: 2025-12-07T20:07:49.753Z
Learnt from: egorikftp
Repo: ComposeGears/Valkyrie PR: 750
File: tools/gradle-plugin/src/main/kotlin/io/github/composegears/valkyrie/gradle/internal/task/GenerateImageVectorsTask.kt:71-85
Timestamp: 2025-12-07T20:07:49.753Z
Learning: In the Valkyrie Gradle plugin (Kotlin), the `useFlatPackage` flag in `IconPackExtension` is only applicable when nested packs are configured. For single icon packs (without nested packs), the flag is intentionally not propagated to `ImageVectorGeneratorConfig` as there is no package hierarchy to flatten.

Applied to files:

  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/NewPackCreation.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/ChoosePackDirectory.kt
  • tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ui/foundation/ExistingPackEditor.kt
📚 Learning: 2025-10-21T20:55:27.073Z
Learnt from: egorikftp
Repo: ComposeGears/Valkyrie PR: 651
File: tools/idea-plugin/build.gradle.kts:147-175
Timestamp: 2025-10-21T20:55:27.073Z
Learning: In Gradle Kotlin DSL (.gradle.kts) scripts, the types `org.gradle.api.artifacts.ArtifactCollection` and `org.gradle.api.artifacts.component.ModuleComponentIdentifier` are implicitly available and do not require explicit import statements.

Applied to files:

  • tools/idea-plugin/build.gradle.kts
🧬 Code graph analysis (6)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/NewPackCreation.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/WebImportScreenComponents.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/ChoosePackDirectory.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ui/foundation/ExistingPackEditor.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/OutputFormatSection.kt (1)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/GeneratorSettingsScreen.kt (2)
sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)
  • Spacer (14-17)
  • Spacer (19-22)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/OutputFormatSection.kt (1)
  • OutputFormatSection (27-63)
🔇 Additional comments (30)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/DropdownMenu.kt (1)

35-37: Import migration to sdk.compose.foundation looks consistent.
applyIf, CenterVerticalRow, and rememberMutableState are updated coherently and match usage in this file.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/InfoItem.kt (1)

16-16: LGTM! Import path correctly updated.

The import path for CenterVerticalRow has been properly migrated from compose.core.layout to sdk.compose.foundation.layout, consistent with the PR's objective to move the core module into the foundation SDK.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/editor/ui/VirtualFileImageVector.kt (1)

16-16: Import migration looks correct and consistent with usage. The rememberMutableState usages at Line 33–34 align with the new foundation SDK namespace.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/existingpack/ui/foundation/ExistingPackEditor.kt (2)

15-15: LGTM! Import updated correctly.

The import path has been updated to reflect the new foundation package structure as part of the module reorganization.


45-45: LGTM! Spacer usage is correct.

The replacement of VerticalSpacer(32.dp) with Spacer(32.dp) is correct. Since this is within a ColumnScope, the appropriate extension function will be invoked, maintaining the same vertical spacing behavior.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/InputField.kt (1)

21-21: LGTM! Import path correctly updated to reflect the package migration.

The import change from compose.core.layout to sdk.compose.foundation.layout aligns with the PR objective to consolidate core layout components into the foundation SDK. The usage of CenterVerticalRow at line 38 remains unchanged, confirming API compatibility.

compose/codeviewer/src/commonMain/kotlin/io/github/composegears/valkyrie/compose/codeviewer/core/CodeEditor.kt (1)

42-43: Import paths correctly migrated to new namespace.

The imports of rememberMutableIntState and rememberMutableState have been properly updated to io.github.composegears.valkyrie.sdk.compose.foundation and are actively used at lines 69-70. No remaining references to the old io.github.composegears.valkyrie.compose.core namespace exist in the codebase.

compose/codeviewer/src/commonMain/kotlin/io/github/composegears/valkyrie/compose/codeviewer/KotlinCodeViewer.kt (1)

16-16: LGTM! Import path correctly updated.

The import path has been properly updated to reflect the module migration from :compose:core to :sdk:compose:foundation. The usage at line 26 remains unchanged and compatible with the new namespace. Verification confirms no stale imports from the old package path remain in the codebase.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/platform/DragAndDropHandler.kt (1)

11-12: Import migration is correctly configured; no issues found.

The import to sdk.compose.foundation.rememberMutableState is correct. The Gradle dependency implementation(projects.sdk.compose.foundation) is properly configured in tools/idea-plugin's build.gradle.kts, and the function's return type MutableState is fully compatible with the delegate usage at Line 52 (var state by rememberMutableState { ... }). No residual old core dependencies remain.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/OutputFormatSection.kt (1)

20-20: LGTM!

The import and usage changes are correct. Spacer(8.dp) is called within a Column scope, so it correctly resolves to ColumnScope.Spacer which applies height(dp) — matching the previous VerticalSpacer behavior.

Also applies to: 45-45

sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/layout/Spacer.kt (2)

14-32: LGTM! Clean unified Spacer API.

The scope-specific extension functions provide a nice ergonomic API:

  • ColumnScope.Spacer(dp) applies height
  • RowScope.Spacer(dp) applies width
  • WeightSpacer variants work correctly with the weight modifier from their respective scopes

The inline + @Composable combination is appropriate here for zero-overhead wrappers.


24-27: Note: AI summary discrepancy.

The AI summary incorrectly stated that WeightSpacer changed to a "non-@composable" function. The actual code correctly retains the @Composable annotation, which is required since it invokes the Spacer composable.

sdk/compose/foundation/api/foundation.klib.api (1)

1-27: LGTM!

This is an auto-generated Klib ABI dump that correctly reflects the public API surface. The Compose compiler-generated parameters (Composer?, Int) in the signatures confirm that WeightSpacer functions are indeed @Composable (contrary to the AI summary).

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/ChoosePackDirectory.kt (1)

22-22: LGTM!

Import and usage changes are correct. Both Spacer(36.dp) and Spacer(16.dp) are called within a Column, correctly resolving to the ColumnScope.Spacer extension that applies vertical spacing.

Also applies to: 85-85, 105-105

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/newpack/ui/foundation/NewPackCreation.kt (1)

32-34: LGTM!

All imports are correctly updated to the new sdk.compose.foundation package paths. The Spacer(32.dp) calls within the Column correctly resolve to ColumnScope.Spacer for vertical spacing. Usage of rememberMutableState and CenterVerticalRow is consistent with the API migration.

Also applies to: 69-69, 76-76

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/common/ui/WebImportScreenComponents.kt (2)

37-41: LGTM! Import migrations are correct.

The package namespace migration from io.github.composegears.valkyrie.compose.core to io.github.composegears.valkyrie.sdk.compose.foundation is applied consistently across all affected imports.


88-88: LGTM! Spacer API migration is correct.

The change from VerticalSpacer(16.dp) to Spacer(16.dp) is correct within the Column scope. The scoped ColumnScope.Spacer(dp: Dp) extension function will be resolved, which internally applies vertical spacing via modifier.height(dp).

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/settings/tabs/generator/GeneratorSettingsScreen.kt (1)

19-19: Dependency verified—import will compile successfully.

The tools/idea-plugin module correctly depends on sdk:compose:foundation via implementation(projects.sdk.compose.foundation) in its build.gradle.kts, so the import of Spacer will resolve properly.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/conversion/GenericConversionScreen.kt (2)

11-13: LGTM! Import paths correctly updated.

The import path changes correctly reflect the package namespace migration from compose.core to sdk.compose.foundation.


74-74: The original review comment is based on an incorrect premise. The API signature in sdk/compose/foundation/api/foundation.api shows that WeightSpacer is still a @Composable function (evidenced by the Composer parameter and void return type in the compiled signature). It was not converted to a non-@composable inline function. The current standalone usage WeightSpacer() at line 74 is correct and requires no changes.

Likely an incorrect or invalid review comment.

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/foundation/TopAppBar.kt (1)

25-26: Import migration is correct and compatible.

The imports have been properly updated to the new sdk.compose.foundation.layout package namespace, consistent with the PR's objective. The WeightSpacer implementation (defined in Spacer.kt) is correctly marked as @Composable inline, making it fully compatible with its usage in this file (lines 216, 228) where it's called as a statement within a @Composable RowScope.() -> Unit lambda.

tools/idea-plugin/build.gradle.kts (1)

35-35: Dependency swap verified—tooling-preview pinned correctly at 1.10.0.

The migration from projects.compose.core to projects.sdk.compose.foundation is clean. No remaining references to the old module exist in the plugin, and libs.compose.ui.tooling.preview remains correctly pinned to version 1.10.0 in the version catalog, preserving KMP preview annotation support.

sdk/compose/foundation/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/foundation/Modifier.kt (1)

1-1: The package declaration in Modifier.kt uses the current namespace io.github.composegears.valkyrie.sdk.compose.foundation. All downstream modules and imports across the codebase already reference this same namespace—no references to an old namespace exist. The migration is complete and no compatibility bridge is required.

Likely an incorrect or invalid review comment.

sdk/compose/foundation/api/foundation.api (7)

1-4: LGTM - ModifierKt package migration looks correct.

The migration of ModifierKt from the core package to the foundation SDK package is consistent with the PR objectives.


6-11: LGTM - RememberMutableStateKt package migration looks correct.

The state helper utilities have been successfully migrated to the foundation SDK package.


13-15: LGTM - ExpandedAnimatedContentKt package migration looks correct.

The animation utility has been successfully migrated to the foundation SDK animation package.


17-20: LGTM - RememberShimmerKt package migration looks correct.

The shimmer animation utilities have been successfully migrated to the foundation SDK animation package with proper type references.


22-24: LGTM - Shimmer class package migration looks correct.

The Shimmer animation type has been successfully migrated to the foundation SDK animation package.


26-28: LGTM - RowKt package migration looks correct.

The row layout utility has been successfully migrated to the foundation SDK layout package.


30-35: WeightSpacer remains @composable – AI summary was incorrect.

The WeightSpacer implementation (lines 25, 30 in Spacer.kt) is correctly marked as @Composable inline, matching the API signature with the Composer parameter. The AI summary incorrectly claimed it was changed to a non-@Composable inline function; this does not reflect the actual code state.

@egorikftp egorikftp merged commit 7684a44 into main Jan 12, 2026
3 checks passed
@egorikftp egorikftp deleted the task/compose-core-to-foundation branch January 12, 2026 07:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants