From 044d643938c54747b55a38a119d8bb806534f873 Mon Sep 17 00:00:00 2001 From: Davide Di Pumpo Date: Fri, 21 Aug 2026 15:39:46 +0200 Subject: [PATCH 1/4] feat(vue): use v-number-input for OmegaForm number fields Vuetify 4 promotes VNumberInput to a first-class component; the OmegaForm "number" type now renders it instead of v-text-field type="number" ("range" keeps its own v-slider branch, behavior unchanged). Precision is schema-driven: S.Int fields get precision 0 (no decimal separator), plain S.Number gets free decimals (precision null), and an explicit :precision via attrs still wins. The int refinement already detected in the field meta is now forwarded through inputProps. Adds a NumberInput story covering min/max clamping, decimals, attrs passthrough (step/control-variant) and a per-field decimal-separator. --- .../src/components/OmegaForm/InputProps.ts | 1 + .../OmegaForm/OmegaInputVuetify.vue | 39 +++++++++--- .../OmegaForm/OmegaInternalInput.vue | 1 + .../stories/OmegaForm.stories.ts | 8 +++ .../stories/OmegaForm/NumberInput.vue | 62 +++++++++++++++++++ 5 files changed, 103 insertions(+), 8 deletions(-) create mode 100644 packages/vue-components/stories/OmegaForm/NumberInput.vue diff --git a/packages/vue-components/src/components/OmegaForm/InputProps.ts b/packages/vue-components/src/components/OmegaForm/InputProps.ts index eaec0cf14..a67a6b540 100644 --- a/packages/vue-components/src/components/OmegaForm/InputProps.ts +++ b/packages/vue-components/src/components/OmegaForm/InputProps.ts @@ -36,6 +36,7 @@ export type InputProps, TName extends Deep maxLength?: number | false max?: number | false min?: number | false + refinement?: "int" errorMessages: string[] error: boolean label: string diff --git a/packages/vue-components/src/components/OmegaForm/OmegaInputVuetify.vue b/packages/vue-components/src/components/OmegaForm/OmegaInputVuetify.vue index b78221509..412b2d905 100644 --- a/packages/vue-components/src/components/OmegaForm/OmegaInputVuetify.vue +++ b/packages/vue-components/src/components/OmegaForm/OmegaInputVuetify.vue @@ -87,20 +87,43 @@ /> - + + + - + +
{{ values }}
- + - +