[Web Import] Add Box Icons Import#907
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review infoConfiguration used: Repository UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
WalkthroughAdds BoxIcons support across the SDK and IDE plugin. Introduces a new BoxLogo colored ImageVector in the compose icons library. Adds BoxIconsRepository, BoxIconsUseCase, and BoxIconsModule for loading fonts, codepoints and SVGs. Adds BoxIconsImportScreen and integrates it into the web import flow and selector UI. Extends the standard import model and UI with IconStyle, exportName and style fields, and persists a boxiconsSize setting. Localization entries for Box Icons were added. 🚥 Pre-merge checks | ✅ 1 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
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: 3
🧹 Nitpick comments (1)
tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/boxicons/data/BoxIconsRepository.kt (1)
17-21: Pin the BoxIcons version for stability.Using
@latestin the unpkg URL means the application will automatically pull new BoxIcons releases, which could introduce breaking changes (e.g., renamed icons, changed CSS format, or modified codepoint mappings) without warning.Pin to version
2.1.4(the current stable version) for predictable behavior, similar to how package.json dependencies are typically locked.♻️ Suggested change
companion object { - private const val UNPKG_BASE = "https://unpkg.com/boxicons@latest" + private const val UNPKG_BASE = "https://unpkg.com/boxicons@2.1.4" private const val CSS_URL = "$UNPKG_BASE/css/boxicons.min.css" private const val FONT_WOFF2_URL = "$UNPKG_BASE/fonts/boxicons.woff2" }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/boxicons/data/BoxIconsRepository.kt` around lines 17 - 21, Update the hardcoded Unpkg URLs in BoxIconsRepository's companion object to pin the BoxIcons package to v2.1.4 instead of using `@latest`: change the UNPKG_BASE, and consequently CSS_URL and FONT_WOFF2_URL, to reference "@2.1.4" so the companion object constants UNPKG_BASE, CSS_URL, and FONT_WOFF2_URL always point to the fixed 2.1.4 release for stability.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/model/StandardIcon.kt`:
- Around line 10-14: The KDoc is ambiguous about which field controls generated
symbol/file names—unify it by making exportName the sole canonical naming field:
remove any file-naming/generation responsibility text from the name property's
KDoc and update exportName's KDoc to clearly state it is "The canonical name
used for generated symbol/file names" (and that name is only the human/display
name), referencing the properties exportName and name in StandardIcon to locate
the change; ensure no other comment duplicates generation semantics.
- Line 19: The default for exportName should be the raw API identifier instead
of the UI-transformed displayName; update the StandardIcon constructor so
exportName defaults to name (not displayName) to preserve canonical symbol
names, and ensure call sites in BootstrapUseCase, LucideUseCase, and
RemixUseCase continue to work without changes by relying on the new default;
locate the StandardIcon declaration and change the parameter default from
displayName to name while leaving displayName assigned via name.toDisplayName()
as before.
In `@tools/idea-plugin/src/main/resources/messages/Valkyrie.properties`:
- Around line 125-126: The properties values for the Box Icons strings are
inconsistent; update the property value(s) that currently use "BoxIcons" to
match "Box Icons" (or vice versa if you prefer the concatenated form) so both
web.import.selector.boxicons.title and the corresponding import title key on
line 144 use the exact same casing/spacing; ensure
web.import.selector.boxicons.description remains aligned with the chosen form
and verify both selector and import title keys use the identical label across
the file.
---
Nitpick comments:
In
`@tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/boxicons/data/BoxIconsRepository.kt`:
- Around line 17-21: Update the hardcoded Unpkg URLs in BoxIconsRepository's
companion object to pin the BoxIcons package to v2.1.4 instead of using `@latest`:
change the UNPKG_BASE, and consequently CSS_URL and FONT_WOFF2_URL, to reference
"@2.1.4" so the companion object constants UNPKG_BASE, CSS_URL, and
FONT_WOFF2_URL always point to the fixed 2.1.4 release for stability.
ℹ️ Review info
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (20)
sdk/compose/icons/api/icons.apisdk/compose/icons/api/icons.klib.apisdk/compose/icons/src/commonMain/kotlin/io/github/composegears/valkyrie/sdk/compose/icons/colored/BoxLogo.kttools/idea-plugin/CHANGELOG.mdtools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/service/PersistentSettings.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/settings/InMemorySettings.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/WebImportFlow.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/WebImportSelectorScreen.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/StandardIconViewModel.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/StandardImportScreenUI.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/boxicons/BoxIconsImportScreen.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/boxicons/data/BoxIconsRepository.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/boxicons/di/BoxIconsModule.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/boxicons/domain/BoxIconsUseCase.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/model/IconStyle.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/model/StandardIcon.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/model/StandardIconConfig.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/ui/StandardTopActions.kttools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/webimport/standard/util/StandardGridFiltering.kttools/idea-plugin/src/main/resources/messages/Valkyrie.properties
Adds Box Icon set to web import feature
Screen.Recording.2026-02-26.at.19.46.08.mov
📝 Changelog
If this PR introduces user-facing changes, please update the relevant Unreleased section in changelogs: