Skip to content

Replace Naive UI number input and slider primitives #3021

@nighca

Description

@nighca

Background

As part of #3017, another sub-area is numeric and range-like input.

Current dependency points include:

  • src/components/ui/UINumberInput.vue
  • src/components/ui/UISlider.vue

Problem

These controls still depend on naive-ui primitives and styling assumptions:

  • UINumberInput wraps NInputNumber
  • UINumberInput relies on deep selectors against naive-ui input DOM/class names
  • UINumberInput also works around autofocus behavior manually
  • UISlider is built on NSlider
  • downstream call sites also style against naive-ui slider DOM/class names in some places

These controls should be migrated as a pair because they both represent scalar value editing and may benefit from aligned UX behavior.

Goal

Replace the remaining naive-ui dependency in numeric and range-like inputs with internal implementations.

Scope

  • replace NInputNumber in UINumberInput
  • replace NSlider in UISlider
  • preserve current features such as min/max, prefix/suffix slots, autofocus, custom thumb rendering, color variants, and dragend vs input update behavior
  • reduce styling and DOM coupling to naive-ui
  • align behavior with existing XBuilder expectations in places that consume numeric controls heavily

Notes

This issue is intentionally grouped around scalar value controls. Text input and boolean/choice controls are tracked separately.

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