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.
Background
As part of #3013, we scanned the current
naive-uidependency surface inspx-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.tssrc/components/ui/message/UIMessageProvider.vuesrc/components/ui/loading/UILoading.vuesrc/components/ui/UIDivider.vuesrc/components/ui/timeline/UITimeline.vuesrc/components/ui/timeline/UITimelineItem.vuesrc/components/asset/scratch/LoadFromScratch.vueThere are also remaining call-site style couplings to
naive-uiDOM/class names, for example:src/components/community/user/AvatarZoomSlider.vuesrc/components/editor/code-editor/spx-code-editor/ui/input-helper/BooleanInput.vuesrc/components/editor/code-editor/spx-code-editor/ui/input-helper/SpxDirectionInput.vueProblem
Even if we replace the bigger primitives first, the project will still retain
naive-uidependency pressure unless we also remove:NMessageProvider/useMessagenaive-uinaive-uicomponents from business code such asNGrid/NGridItemnaive-uiDOM class names outside the wrapper layerThese remaining pieces are smaller individually, but together they prevent a complete cleanup.
Goal
Finish the remaining
naive-uicleanup after the larger primitive migrations are underway.Scope
NMessageProvider/useMessageNSpin,NDivider,NTimeline, andNTimelineItemnaive-uiimports from non-UI business components such asLoadFromScratch.vuenaive-uiDOM/class namespackage.jsonNotes
This issue is intentionally the catch-all for the remaining smaller dependencies and for cleanup that becomes possible only after the larger migrations land.