Vue Components
Daily log of changes to the Vue components
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.