Skip to content

Remove remaining Naive UI feedback, layout, and style leakage #3018

@nighca

Description

@nighca

Background

As part of #3013, we scanned the current naive-ui dependency surface in spx-gui.

After separating provider / popup / modal / form work, there is still a remaining set of dependencies and leakages that should be cleaned up explicitly.

Current dependency points include:

  • src/components/ui/message/index.ts
  • src/components/ui/message/UIMessageProvider.vue
  • src/components/ui/loading/UILoading.vue
  • src/components/ui/UIDivider.vue
  • src/components/ui/timeline/UITimeline.vue
  • src/components/ui/timeline/UITimelineItem.vue
  • direct business-layer import in src/components/asset/scratch/LoadFromScratch.vue

There are also remaining call-site style couplings to naive-ui DOM/class names, for example:

  • src/components/community/user/AvatarZoomSlider.vue
  • src/components/editor/code-editor/spx-code-editor/ui/input-helper/BooleanInput.vue
  • src/components/editor/code-editor/spx-code-editor/ui/input-helper/SpxDirectionInput.vue

Problem

Even if we replace the bigger primitives first, the project will still retain naive-ui dependency pressure unless we also remove:

  • feedback infrastructure based on NMessageProvider / useMessage
  • loading / divider / timeline primitives still implemented with naive-ui
  • direct imports of naive-ui components from business code such as NGrid / NGridItem
  • style and behavior coupling to naive-ui DOM class names outside the wrapper layer

These remaining pieces are smaller individually, but together they prevent a complete cleanup.

Goal

Finish the remaining naive-ui cleanup after the larger primitive migrations are underway.

Scope

  • replace NMessageProvider / useMessage
  • replace NSpin, NDivider, NTimeline, and NTimelineItem
  • remove direct naive-ui imports from non-UI business components such as LoadFromScratch.vue
  • remove call-site style overrides that target naive-ui DOM/class names
  • ensure the final dependency can actually be removed from package.json

Notes

This issue is intentionally the catch-all for the remaining smaller dependencies and for cleanup that becomes possible only after the larger migrations land.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions