github quasarframework/quasar quasar-v2.23.5

5 hours ago

Fixes

  • fix(QTime): default value to match docs
  • fix(QRange): handle "null" as model value
  • fix(QDate): events rendered no marker unless event-color was also set
  • fix(QDate): undefined model rejected by the validator
  • fix(useField): the control slot's field key never existed
  • fix(QFile): file/selected slot scopes "ref" value
  • fix(QEditor): a toolbar dropdown crashed the render on an unknown option token
  • fix(QTree): setTicked() did nothing unless ticked was v-model bound
  • fix(morph): cancel() crashed when reversing a non-tween morph
  • fix(uploader-core): remove dead branch
  • fix(morph): spacers pointed at missing keyframes
  • fix(QUploader): factory() leaked the upload thread
  • fix(useValidate): a misspelled pattern rule silently passed validation
  • fix(QUploader): no "failed" event when the URL was missing
  • fix(QTable): scrollTo() was a no-op without virtual-scroll-sticky-size-start
  • fix(QTable): non-virtual scrollTo() threw on a non-numeric index
  • fix(QCheckbox;QToggle;QRadio): [regression] label wrapped components do not work as expected anymore #18499
  • fix(TouchPan;TouchSwipe): stop shielding the page from pointer events after the mouse gesture ended #18496

Notable behaviour changes

  • Validation: a misspelled string rule now fails instead of silently passing (b67ea77, 843a8c7)

Affects all components using rules (QInput, QSelect, QField, QFile, QDate, QTime, ...). Previously, a string rule that doesn't match any embedded validation pattern (e.g. rules: [ 'emial' ] instead of 'email') was silently skipped — the field validated as if the rule wasn't there. Such a rule now logs a console.error and fails validation (like any message-less rule, with no error message displayed).

Action needed: if a field in your app suddenly refuses to validate and the console shows Unknown validation pattern rule: "...", fix the rule name. The old behavior was accepting any input through the typo.

  • QDate: event markers now render without event-color (9101b16)

Previously, setting events without also setting event-color rendered no marker at all. Markers now render with the default styling (the secondary brand color), as documented. If you had events set and were (unknowingly) relying on the markers being invisible, days matching events will now show a marker.

Passing an explicitly undefined model (e.g. v-model="myDate" before myDate is initialized) no longer triggers a Vue prop-validation warning — it now resolves to null ("no value selected"), matching the documented String | null | undefined type and the pattern QSlider already uses. Omitting the prop entirely still warns as a required prop. No action needed unless you were watching for that console warning.

  • QUploader: @failed now fires when the upload URL is missing or invalid (7a45734)

Previously, an invalid/unset url only logged a console error and marked the files as failed — the @failed event never fired, so programmatic error handling couldn't react. The event now fires with the documented { files, xhr } payload (an XHR that was never sent, so xhr.status is 0). If you have a @failed listener, it will now also receive this case.

  • QTree: setTicked() now works without v-model:ticked too (edfb46a)

The public setTicked() method (and tickboxes in uncontrolled usage) previously did nothing unless ticked was bound with v-model. It now updates the internal state, mirroring how setExpanded() already behaved. Controlled usage (with v-model:ticked) is unchanged.

Donations

Quasar Framework is an open-source MIT-licensed project made possible due to the generous contributions by sponsors and backers. If Quasar is useful in your workflow and you want to support ongoing maintenance, please consider the following:

Don't miss a new quasar release

NewReleases is sending notifications on new releases.