Skip to content

Bump quasar from 2.24.0 to 2.27.0 - #453

Merged
Lenni009 merged 1 commit into
devfrom
dependabot/npm_and_yarn/dev/quasar-2.27.0
Sep 7, 2026
Merged

Bump quasar from 2.24.0 to 2.27.0#453
Lenni009 merged 1 commit into
devfrom
dependabot/npm_and_yarn/dev/quasar-2.27.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 31, 2026

Copy link
Copy Markdown
Contributor

Bumps quasar from 2.24.0 to 2.27.0.

Release notes

Sourced from quasar's releases.

quasar-v2.27.0

[!IMPORTANT] Two behavior changes worth checking before you upgrade:

  • A click on the target no longer closes a hover-opened QMenu/QBtnDropdown while it is still animating into view. A single move-and-click gesture can no longer dismiss what it just opened; once the menu is fully shown, clicking toggles it closed exactly as before.
  • Three language packs now report a standards-compliant isoName: kur-CKB reports ckb, mm reports my and sr-CYR reports sr-Cyrl. The old import paths keep working as deprecated aliases for the whole of Quasar v2, but code comparing $q.lang.isoName against the old values needs updating.

New

  • feat(QFab): open on hover -> new hover, hover-delay and hover-hide-delay props, the same contract QMenu and QBtnDropdown got in v2.26. The pointer can cross the gap between the main button and the actions without closing them (150ms grace period by default), touch devices keep tap-toggling, keyboard interaction is untouched, and focus is never moved
  • feat(QTd/QTh): new col-name prop -> a QTd or QTh wrapped in your own component inside QTable's #body slot can finally say which column it belongs to. The cells used to resolve their column from the vnode key, which Vue never forwards through $attrs, so a wrapped cell rendered nothing. Existing key="..." usage keeps working; col-name takes precedence (#17830)
  • feat(ui/lang): canonical names for three language packs -> import quasar/lang/ckb, quasar/lang/my and quasar/lang/sr-Cyrl for Central Kurdish, Burmese and Serbian Cyrillic. kur-CKB, mm and sr-CYR remain available as deprecated aliases

Fixes

  • fix(QMenu): ignore a click on the target while hover is animating the menu into view -> moving the pointer onto a hover menu's target and clicking it in one gesture closed the menu the hover had just opened. Also applies to QBtnDropdown (#18524)
  • fix(QSelect): keep long selected values inside the parent -> a nowrap value made the field grow past its container instead of truncating (#18015). Based on PR #18525 by Timur Arbaev
  • fix(QTable): honor the key set on the grid item slot content -> the mapped rows reached Vue as keyless Fragments, so removing a row recreated every card after it instead of moving the surviving instances (#18045)
  • fix(QScrollArea): put the vertical thumb on the left side in RTL -> the bar moved to the left edge while the thumb stayed glued to the right one, because its inline right inset could not be flipped by the RTL stylesheet (#17943)
  • fix(ui): make overlay content clickable over .q-electron-drag regions in Electron -> menus, dialogs, notifications and tooltips overlapping a draggable title bar lost the overlapping area to window dragging. An explicit drag class on the content itself still wins, and dialogs keep letting you drag the window (#17285)
  • fix(use-mask): don't read a fill char that satisfies its own token as data -> with fill-mask="0" and reverse filling, the unmasked value grew by one fill char per keystroke ("0.01" became "00.01", "000.10", ...), which is the docs' own "Price with 2 decimals" example (#18523)
  • fix(use-mask): keep the fill padding out of the unmasked value -> with unmasked-value and forward filling, a typed "1" over ###-## with fill-mask="0" was reported as "10000"; with mask AA-AA and fill-mask="A", "X" became "XAAA" (#18523)
  • fix(use-mask): follow the data, not the render, when placing the caret -> when the fill char is itself a valid data char, "06" arrived as "60" and, on masks with a leading literal, "09" arrived as "90" (#18523)
  • fix(use-mask): unmask masks that mix token types -> under reverse-fill-mask, every mask mixing letters and digits silently rendered nothing for ordinary values ("ab12" over AA-##), including values the control had just rendered itself (#18523)
  • fix(use-mask): drop a right-aligned separator nothing filled -> "057" over AA-## rendered "-57", which unmasked back to "57", so what the field displayed was not a value it could read again (#18523)
  • fix(ui/lang): repair strings across 51 language packs -> stray quotes and characters, leading/trailing/doubled spaces, broken interpolation, Cyrillic text inside the Latin sr pack, Simplified characters inside zh-TW, untranslated English left in translated packs, and year-range plural/agreement errors in some 40 languages (#18522). Ukrainian was corrected first in PR #18522 by Ihor Diachenko

Other

  • docs(popup offset): the offset prop of the position engine does not translate the popup, it inflates the anchor box, so middle/center origins are offset-invariant by construction. That is why QTooltip's horizontal offset reads as broken on its default anchor="bottom middle". Documented on the API of QMenu, QTooltip, QBtnDropdown, QPopupEdit and QSelect, with the direction each offset component expands in, plus the note that QMenu's cover drops the offset entirely (#18212)
  • The language-pack build validator now checks string values, not only pack shape: validateStringArray was declared with four parameters and called with three, so its loop never ran. Every string, array entry and formatter result is now checked for padding, doubled spaces and control characters, and formatters are probed across the counts that select their plural branches

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:

quasar-v2.26.0

[!IMPORTANT] A few behavior changes worth checking before you upgrade:

  • QEditor no longer emits a placeholder attribute (it was not valid on a div). Custom CSS targeting .q-editor__content[placeholder] must switch to [aria-placeholder].
  • QSelect renders its fall-through attributes only on the focus target, no longer also on the .q-field__native wrapper. Selectors or tests that matched the wrapper copy (or relied on the attribute matching two elements) need updating.
  • The touch/hover behavior of QTooltip, context menus, the touch directives and the slider family is now decided per interaction instead of by the mobile UA. Hybrid devices change the most: touchscreen laptops and tablets with a mouse gain hover tooltips and right-click context menus, mobile UAs gain keyboard support on QSlider/QRange/QKnob, and QRange stops emitting UA-dependent SSR markup.
  • QDialog dismisses its backdrop on mousedown instead of click, so a press on the backdrop with a menu open closes only the menu on desktop too, matching what touch already did.
  • QSlider/QRange/QKnob de-duplicate their emissions: change fires only when an interaction actually moved the value, and a parent that does not sync the model prop back hears each value once per interaction rather than once per press/release/click.
  • Firefox now matches QField's autofill styling: the stylesheet moved from :-webkit-autofill to the standard :autofill, so the q-autofill keyframe and $input-autofill-color apply there for the first time.

New

  • feat(QMenu): open on hover -> new hover, hover-delay and hover-hide-delay props, also forwarded by QBtnDropdown (in split mode hovering either button opens it). A hover-open never steals focus from where you are typing, ESC still dismisses, submenus keep the chain open while the pointer travels between them, and touch devices keep tap-toggling. No effect when context-menu is set (#6776)
  • feat(QRange): new min-range and max-range props -> constrain the width of the selection. Out-of-limits model values are coerced like inner-min/inner-max already do, dragging and the keyboard clamp each thumb to what the other thumb allows, and a minimum width blocks thumb crossover (#18182, #2100). Based on PR #18182 by Teodor Atroshenko (thexeos)
  • feat(QTable): new footer slot -> renders a real <tfoot> element, so a totals/summary row can be made sticky through CSS. Works in default and virtual-scroll modes (not in grid mode) (#7570)
  • feat(date): support the ISO week year -> new getISOWeekYear() util and the Moment/Day.js-compatible GGGG/GG format tokens, so masks like YYYY-[W]ww no longer render the wrong pairing at year boundaries (Jan 1st 2022 was formatted as 2022-W52 instead of 2021-W52) (#17088, credit: psevertson)
  • feat(Ripple): cancel an "early" ripple once the gesture can no longer end in a tap -> a touch that turns into a scroll/pan, or a pressed pointer dragged off the element, now fades the ripple out instead of leaving a full one behind with no click ever happening. On touch, painting waits 100ms (was 50ms) so flick-scrolls are cancelled before anything becomes visible

... (truncated)

Commits
  • f457b29 chore(ui): bump version
  • 5394ee0 chore(app-vite): bump version
  • 654dd92 chore(vite-plugin): bump version
  • be034ce feat(QFab): open on hover via new hover/hover-delay/hover-hide-delay props
  • a07512d feat(ui): add col-name prop to QTd/QTh so wrapped cells can target their colu...
  • b0bfde6 fix(ui): make overlay content clickable over .q-electron-drag regions in Elec...
  • a320e92 fix(docs): cover sub-pixel gaps between sticky table cells (#17925)
  • 77d755f fix(app-vite): self-heal the BEX bridge after MV3 background termination (fix...
  • b34d84f fix(app-vite): honor SSR/SSG-specific options in the dev-server config diffs
  • f3f7472 feat(docs): document the Suspense post-hydration trigger recipe #17961
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [quasar](https://github.com/quasarframework/quasar) from 2.24.0 to 2.27.0.
- [Release notes](https://github.com/quasarframework/quasar/releases)
- [Commits](quasarframework/quasar@quasar-v2.24.0...quasar-v2.27.0)

---
updated-dependencies:
- dependency-name: quasar
  dependency-version: 2.27.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update Javascript code labels Aug 31, 2026
@Lenni009
Lenni009 merged commit 8658614 into dev Sep 7, 2026
2 checks passed
@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/dev/quasar-2.27.0 branch September 7, 2026 19:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update Javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant