Skip to content

Feat/overhaul UI#114

Merged
Lechros merged 21 commits intonextfrom
feat/overhaul-ui
Feb 18, 2026
Merged

Feat/overhaul UI#114
Lechros merged 21 commits intonextfrom
feat/overhaul-ui

Conversation

@Lechros
Copy link
Owner

@Lechros Lechros commented Feb 18, 2026

Note

Medium Risk
Large UI refactor across inventory, gear enchant, search, and settings screens, plus changes to starforce max-star/setting logic that can affect upgrade behavior. Risk is mostly UX/regression in navigation/selection flows and starforce boundary handling.

Overview
Major UI overhaul across gear enchantment, inventory, search, and settings pages: new responsive layouts (3-column/aside tabs, pill tabs, drawers), redesigned headers/footers and selection/delete flows, and updated dialogs/tooltips to consistently use SettingsStore tooltip options.

New UI primitives and refactors: adds reusable input-group, item, slider, spinner, and textarea components plus form layout helpers, removes older item-card/tab-selector/search header+footer components, and updates select-list virtualizer/item styling hooks.

Behavioral changes: starforce logic now uses an implicit max-star model (getImplicitMaxStar) and extends setStarforce to respect ignoreMaxStar; upgrade tab selection logic is simplified (including dedicated-only scrolls); settings columns becomes numeric with updated persistence; dependency updates include tailwind-variants v3 and @lucide/svelte bump plus new vite-plugin-devtools-json.

Written by Cursor Bugbot for commit ba915e3. This will update automatically on new commits. Configure here.

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Feb 18, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
itemsim ba915e3 Commit Preview URL

Branch Preview URL
Feb 18 2026, 10:36 AM

@Lechros Lechros merged commit e5654a9 into next Feb 18, 2026
2 of 3 checks passed
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 4 potential issues.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

}

export function canAddStarforce(gear: Gear, star: number, ignoreMaxStar: boolean) {
return gear.star + star <= getImplicitMaxStar(gear, ignoreMaxStar);
Copy link

Choose a reason for hiding this comment

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

canAddStarforce missing gear capability check enables non-functional buttons

Medium Severity

The refactored canAddStarforce only checks star count limits via getImplicitMaxStar, dropping the previous gear.canApplyStarforce / gear.canApplyStarforceIgnoringMaxStar capability checks. In StarScrollTab.svelte, the "일반 장비 강화" buttons use canAddStarforce without a separate gear.starScroll guard. After star scrolls are applied, the regular starforce buttons appear enabled but silently do nothing since addStarforce still checks the gear capability internally.

Additional Locations (1)

Fix in Cursor Fix in Web

}

export function canAddStarforce(gear: Gear, star: number, ignoreMaxStar: boolean) {
export function getImplicitMaxStar(gear: Gear, ignoreMaxStar: boolean) {
Copy link

Choose a reason for hiding this comment

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

Unused exported functions left after refactoring

Low Severity

The exported functions showStarforceIgnoreMaxStar, showStarScrollIgnoreMaxStar, canSetStarScroll, and setStarScroll are no longer imported anywhere in the codebase after this refactoring. Their callers in StarforceTab.svelte and StarScrollTab.svelte were removed, making them dead code.

Fix in Cursor Fix in Web

case PotentialGrade.Legendary:
return 'potentialTitleLegendary';
}
}
Copy link

Choose a reason for hiding this comment

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

Duplicate getPotentialTitle function across two files

Low Severity

The newly added getPotentialTitle function in GearEnchantUI.svelte is an exact copy of the one already in PotentialTitle.svelte. Both map PotentialGrade enum values to image key strings. This duplication means a future change to the mapping would need to be applied in two places.

Fix in Cursor Fix in Web

aria-invalid={cuttableCountError !== undefined}
id="cuttableCount"
class="text-center"
/>
Copy link

Choose a reason for hiding this comment

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

Missing type="number" on cuttable count input

Medium Severity

The InputGroup.Input for the cuttable count is missing type="number", which the old Input element had. Without it, the input renders as a text field, so min/max attributes are ignored by the browser, bind:value yields a string instead of a number, and users can type non-numeric characters. Other similar inputs in ChaosScrollTab and StarforceTab correctly include type="number".

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant