Vue Components
Daily log of changes to the Vue components. Entries are grouped by merge date and list the components affected.
Breaking changes are flagged with a 🚨 Breaking badge and include a short migration note.
2026-06-09
list,calendar,drawer,fileupload,phoneinput,dateslider,multiselect— type-only symbols (HTMLAttributes,Ref,ComputedRef,DateRange,DateValue,ChunkOptions,VueUploadItem, …) are now imported withimport type/ inlinetype. They were previously imported as runtime values, which compiles under a lenient setup but breaks the build underverbatimModuleSyntax: true(now the default in recentcreate-vue/@vue/tsconfigscaffolds) withTS1484. No API change — import-only fix. If you reached into these components and copied animport { DateRange }fromradix-vue, note thatradix-vueexports it as a type only; useimport { type DateRange }rather than re-declaring it.
2026-05-20
input— forwards native HTML attributes (autocomplete,name,required, …) to the inner<input>so they bind to the actual form field instead of being absorbed by the wrapper element.phoneinput— same forwarding pattern applied to the nested<Input>, so callers can passautocomplete="tel"and the like and have them reach the right element.
2026-05-04 — 🚨 Breaking
badge— removed theextra-one…extra-sevenad-hoc variants (and theirsubtlecompound variants). Migration: switch to one of the standard variants (brand,informative,highlight, …) or define the extra colours in your project’s components config.
2026-04-30
fileupload— dropped dead type-only and unused imports. No API change.
2026-04-13
multiselect— newmoreTextprop to customise the “+N more” overflow label.timepicker—lazyprop fixed: the model is now updated only on commit whenlazyis on, instead of leaking every intermediate keystroke.
2026-04-09
timepicker— when the picker opens, the validated value typed manually is now scrolled into view and centered inside the dropdown.
2026-03-17
datepicker— fixed: the picker was incorrectly disabled while in editable mode; the segmented input now syncs the initial value correctly. Layout classes that used to be hard-coded inline have been moved to the component config so projects can override them.
2026-03-09
datepicker— minor fixes (component config + a typo in the registry payload).
2026-03-06 — 🚨 Breaking
datepicker— rewritten on top of reka-ui’sDateFieldRoot/DateFieldInputfor proper native date segments instead of manual input masking. Neweditableprop; locale is now driven by thelocaleprop (falls back toen-GBfordd/mm/yyyy,en-USotherwise). Internally now usesPopoverAnchorinstead ofPopoverTriggerto preserve keyboard navigation in editable mode. Migration:reka-uibecomes a peer dependency; if you reached into the previousDateInput-on-top-of-Inputinternals you’ll need to update.
2026-03-04
timepicker— fixed: theHH(24h) andhh(12h) format tokens were swapped and now match the standard convention. Projects using either token will format correctly without code changes.
2026-03-02
calendar— newcaptionLayoutprop ("default" | "dropdown") with month/year dropdowns indropdownmode, default year range of ±100 years, reactiveplaceholder.datepicker— picks up the new calendar internals and related navigation tweaks.
2026-02-13 — 🚨 Breaking
popover—customWidthprop renamed tofullWidthand the semantics are inverted. Before, the popover width defaulted to the configuredpopoverConfig.width; now it sizes to its content by default and only stretches to the configured width whenfullWidthistrue. Migration: dropcustomWidth={false}(matches the new default); replacecustomWidth={true}with no prop, or passfullWidthif you want the popover to stretch to the trigger width.select,multiselect— newfullWidthprop (non-breaking) so the listbox can stretch to the trigger.multiselect— fixed wrong React import that was breaking SSR builds.
2026-02-05
datepicker— the dropdown caption now shows the year next to the month name;truncateregression fixed on the trigger label; typo fixes in the iconset andDatePresetsTrigger.vue.
2026-01-14
actionbar— default value fix: when the consumer doesn’t pass an explicit prop, the component now falls back to the internalisLgbreakpoint check instead of a stale hard-coded default.