Update dependency quasar to v2 - autoclosed - #96
Closed
renovate[bot] wants to merge 1 commit into
Closed
Conversation
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
June 27, 2021 12:48
739d0b8 to
6f5b582
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
July 8, 2021 13:28
6f5b582 to
9d0d191
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
October 19, 2021 01:12
9d0d191 to
2fa8c85
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
March 7, 2022 13:47
2fa8c85 to
247a7b6
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
March 26, 2022 14:04
247a7b6 to
a75fb3a
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
April 25, 2022 02:18
a75fb3a to
fe2ce31
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
2 times, most recently
from
June 23, 2022 18:39
c1f656e to
2c8a751
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
September 25, 2022 21:53
2c8a751 to
e60750f
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
November 20, 2022 18:46
e60750f to
f1848fe
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
March 16, 2023 08:54
f1848fe to
4868ae4
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
March 24, 2023 23:47
4868ae4 to
3e5c313
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
April 3, 2023 10:28
3e5c313 to
41a1a8b
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
May 28, 2023 11:24
41a1a8b to
8a4a24b
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
2 times, most recently
from
July 1, 2023 10:42
96c8218 to
e4824cc
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
July 18, 2023 10:30
e4824cc to
6386053
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
August 7, 2023 10:53
6386053 to
8cf2630
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
August 18, 2023 16:32
8cf2630 to
ee3058f
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
September 2, 2023 13:42
ee3058f to
314d62c
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
September 13, 2023 14:19
314d62c to
32283d8
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
October 17, 2023 18:09
32283d8 to
c71ccfd
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
2 times, most recently
from
November 13, 2023 14:35
42d42a2 to
58826ef
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
November 29, 2023 16:06
58826ef to
799b14b
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
December 18, 2023 13:41
799b14b to
90c2b33
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
January 25, 2024 12:42
90c2b33 to
7963713
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
2 times, most recently
from
February 20, 2024 18:53
7c60c62 to
6525433
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
February 29, 2024 19:14
6525433 to
cd8ffcd
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
2 times, most recently
from
July 10, 2024 16:21
f37c610 to
8a60d69
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
2 times, most recently
from
August 7, 2024 11:39
c1e4129 to
2d26337
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
August 15, 2024 17:40
2d26337 to
0b499cd
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
2 times, most recently
from
September 6, 2024 16:37
b21cbb6 to
52e6e19
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
September 17, 2024 14:41
52e6e19 to
26369d6
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
October 19, 2024 16:34
26369d6 to
caeb189
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
November 6, 2024 19:55
caeb189 to
8016674
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
2 times, most recently
from
November 18, 2024 15:29
d0bf561 to
ac48aab
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
December 14, 2024 12:56
ac48aab to
3ee0197
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
January 3, 2025 13:01
3ee0197 to
531852d
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
January 18, 2025 16:55
531852d to
d1f8e98
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
2 times, most recently
from
March 6, 2025 14:13
56700aa to
d8460bf
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
July 20, 2025 14:10
d8460bf to
90d20a6
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
3 times, most recently
from
September 18, 2025 14:04
4f6fc3f to
285b346
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
November 18, 2025 23:03
285b346 to
b5bc1c0
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
March 17, 2026 13:29
b5bc1c0 to
56464be
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
2 times, most recently
from
March 26, 2026 16:31
2d911af to
59a4a66
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
April 6, 2026 08:35
59a4a66 to
03a3fc7
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
2 times, most recently
from
June 16, 2026 17:10
d51ccc0 to
715466e
Compare
renovate
Bot
force-pushed
the
renovate/quasar-2.x
branch
from
June 30, 2026 15:03
715466e to
5c3cd15
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.14.5→2.27.0Release Notes
quasarframework/quasar (quasar)
v2.27.0Compare Source
New
hover,hover-delayandhover-hide-delayprops, 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 movedcol-nameprop -> a QTd or QTh wrapped in your own component inside QTable's#bodyslot can finally say which column it belongs to. The cells used to resolve their column from the vnodekey, which Vue never forwards through$attrs, so a wrapped cell rendered nothing. Existingkey="..."usage keeps working;col-nametakes precedence (#17830)quasar/lang/ckb,quasar/lang/myandquasar/lang/sr-Cyrlfor Central Kurdish, Burmese and Serbian Cyrillic.kur-CKB,mmandsr-CYRremain available as deprecated aliasesFixes
hovermenu's target and clicking it in one gesture closed the menu the hover had just opened. Also applies to QBtnDropdown (#18524)keyset on the griditemslot 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)rightinset could not be flipped by the RTL stylesheet (#17943).q-electron-dragregions 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)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)unmasked-valueand forward filling, a typed "1" over###-##withfill-mask="0"was reported as "10000"; with maskAA-AAandfill-mask="A", "X" became "XAAA" (#18523)reverse-fill-mask, every mask mixing letters and digits silently rendered nothing for ordinary values ("ab12" overAA-##), including values the control had just rendered itself (#18523)AA-##rendered "-57", which unmasked back to "57", so what the field displayed was not a value it could read again (#18523)srpack, Simplified characters insidezh-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 DiachenkoOther
offsetprop of the position engine does not translate the popup, it inflates the anchor box, somiddle/centerorigins are offset-invariant by construction. That is why QTooltip's horizontal offset reads as broken on its defaultanchor="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'scoverdrops the offset entirely (#18212)validateStringArraywas 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 branchesDonations
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:
v2.26.0Compare Source
New
hover,hover-delayandhover-hide-delayprops, 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 whencontext-menuis set (#6776)min-rangeandmax-rangeprops -> constrain the width of the selection. Out-of-limits model values are coerced likeinner-min/inner-maxalready 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)footerslot -> 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)getISOWeekYear()util and the Moment/Day.js-compatibleGGGG/GGformat tokens, so masks likeYYYY-[W]wwno longer render the wrong pairing at year boundaries (Jan 1st 2022 was formatted as 2022-W52 instead of 2021-W52) (#17088, credit: psevertson)print-color-adjust), Firefox gains the QField autofill styling (:autofill), the QFile/QUploader file button styling (::file-selector-button) and the QPagination input styling (appearance), while prefixes no engine reads any more are goneFixes
class,style,keyandrefon components in JSX/TSX -> the exported component types did not carry Vue'sPublicProps, so TSX rejected the universal props. Templates were never affected (#8690)pointerTypewhether it hovers or toucheschangeonly when the interaction changed the value -> pressing End with the thumb already at the maximum, clicking the value the slider already had, or dragging away and back all fired a spuriouschangechangeonly when a user adjustment lands a new value -> mounting, every parent model write and range clamping used to fire it, contradicting its own API descriptionstepdrifted (0.1 + 0.1 + 0.1 = 0.30000000000000004), somarker-labelsrendered the drifted number andmarker-label-*slot lookups misseddisablewhile a Dialog or overlay Drawer held the scroll lock never polled again (#18520)done()triggered the next load forever (and reverse mode jumped the page behind the overlay to the bottom on mount). Such a placement now warns once, points at thescroll-targetprop and revives itself if the fixed positioning goes away (#18520)aria-labelmatched two elements and broke strict single-element queries (PlaywrightgetByLabel, Testing LibrarygetBy*); the wrapper copy was invalid ARIA as well (#18519)name/forset but a null or empty model rendered no element at all, soquerySelector('[name=x]')could not find it. Form submission and validation are unaffected (#17951)aria-placeholderthe component already renders, and the invalidplaceholderattribute is no longer emitted (#18511)roleandaria-*attributes to theasideelement -> they landed on the inner scrolling div, so naming or re-typing the landmark through QDrawer was impossible (#18059).q-textareapinned its rows to 18px, so a bigger font gave cramped, overlapping lines that apps had to override with!important. The default layout is unchanged (#16772).q-router-link--active) or custom-colored item kept gray secondary text. Derived fromcurrentColorviacolor-mix()at the same emphasis levels, with the legacy values kept as fallbacks (#18300)switch-toggle-side(#18008)Other
eventsandoptionsarray forms (and the String handed to their function forms) are always compared asYYYY/MM/DD-- themaskprop never applies to them. Documented on the API instead of changing it; the function form remains the customization point (#16735)behavior,breakpoint,show-if-above,persistentandno-mini-animationwere documented by example only. Adds a "Desktop and mobile behavior" section and correctsshow-if-above, which was described as initial-render-only when it actually re-shows the drawer every time the layout goes back above the breakpointDonations
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:
v2.25.1Compare Source
Fixes
lazy-rulesre-validates on model change while an error is displayed -> the error clears as soon as what you type becomes valid, instead of staying up until the next blur (#17456)validate()throws synchronously -> that child now fails and gets focused, exactly as a rejected async rule already did, instead of the exception breaking the wholesubmit()hide-dropdown-icon-> with no icon to swap for, the default spinner appended net-new width and the field jumped on every filter round-trip. The default spinner is now suppressed when the dropdown icon is hidden (an explicitloadingslot still renders), and the clearable icon keeps its place while loading instead of vanishing (#17375)align="right"-> Blink and Gecko keep start-side overflow out of the scrollable overflow region, which collapsed the measurement and hid both arrows, leaving the overflowing tabs unreachable by pointer (#17847)@loadin a loop until the whole list had been fetched (#13257)11##swallowed a typed "1" and04## ### ###a typed "0", because the char could not be told apart from the literal sitting at that position (#15624, #18051)show/hidethrough arbitrarily nested components -> a QDialog sitting behind two or more single-root wrapper components failed with "Incorrectly defined Dialog component" and never opened (#18159)Other
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:
v2.25.0Compare Source
New
virtual-scrollprop family,@virtual-scrollevent and key-basedscrollTo(key, edge). Only the rows around the viewport exist in the DOM, so cost stays flat however much of the tree is expanded (22.6k nodes, dev mode: expand-all 2.2s -> 23ms, filter keystroke on a fully expanded tree 560ms -> 29ms, ~600 DOM elements at any scale)getIndeterminateNodes(),isIndeterminate(key),getParentNode(key)and tri-stategetTickState(key)(returns thetrue/null/falsea QCheckbox takes as its model); the header and body slot scopes gain anindeterminateboolean next toticked(#17298) (#12762)optionsprop and the navigation-min/max limitssliderrole now sits on the focusable element, and the whole family gains Home/Endleft-thumb-aria-labelandright-thumb-aria-labelpropstoggleslot -> renders next to the dropdown arrow, so content like a QTooltip can finally attach to the toggle button in split mode (#16955)toggle-aria-haspopupprop -> names the popup's role on the control that actually opens it, in both the regular and the split designroleprop -> the documented override path (e.g.menuitemcheckbox, orrole="menu"on a QList)$layout-marginal-backgroundand$layout-marginal-colorSass variables for the marginal sections (#10476)escape-keyeventcontrolslot scope gainsariaInvalid,ariaDescribedbyandariaErrormessagecolorPickeranduploaderlang sections plustable.selectAllRows,table.selectRowandpagination.label, translated across all 72 language packsAccessibility
aria-pressedand mark today witharia-current="date"; the view switcher becomes a real button that Space activatesaria-disabledwas set only for radiosseparator; arrows move it by 1% (10px inpxunit) and Home/End jump to the limits (#12466)separator-aria-labelproptabpanelrole lives solely on the panel components (#6560)tabpanelrole and becomes a group labeled with its title, conveyingaria-current="step"even with header navigation off; QCarousel's navigation is exposed as the tabs pattern it actually is (#6560)role=toolbarwith a localized name, a single Tab stop with roving tabindex, arrow navigation (wrapping, RTL-mirrored) and Home/End (#15675)aria-pressedinstead of color alone, and the hyperlink editor's URL field gets a namerole=menu(#17162)aria-expanded/aria-controlsstay in sync without apps mirroring the open state by handaria-modaldialog -> menus anchored in a modal QDialog (a QSelect's listbox included) were pruned from the accessibility tree and never announced (#17078)listboxrole wraps only the options, which now carryaria-setsize/aria-posinset(#17344)<q-input error hide-bottom-space>pointedaria-errormessage/aria-describedbyat a missing idaria-hiddencontrol (#17810)carousellang-pack section, translated across all packs (#7423)Performance
v-show(22.6k-node tree, dev mode: 2196ms/299,713 DOM elements -> 31ms/169), a state change re-renders only the affected nodes, and the monolithic O(N) meta rebuild became layered derivation that recomputes only on its own triggers. Per-key state of keys that left the model is pruned, andgetTickedNodes()/getExpandedNodes()use keyed lookupsduration <= 0short-circuits to an immediate settleuseQuasar()resolves through the instance's global properties (~0.6ns/read vs ~37ns), size styles are module-cached, and trivial computeds were flattened out of the render path across ~70 files (QBtn, QItem family, the checkbox family, QChip, QTab/QRouteTab, QList, spinners and 12 bulk-mounted leaves, plus use-dark/use-align/use-form/use-transition/use-router-link/use-split-attrs)formatDatemasks once and cache per mask@scrollpayload assemblyisKeyCode, loop-basedsumSize, regex-freehexToRgband allocation-free mask token testersshouldIgnoreKey()Fixes
@keydown.ctrl.b.preventcould observe the key but not stop QEditor toggling bold<a href="https://">straight away, leaving a broken link behind if you walked away (#18289):classon an open QDialog never reached the portal root, and a dynamicidwent stale on QTooltipposition: fixeddescendant anchored itself to the scroll area and was clipped there (#12109)fill-input(#17763)autogrowis toggled off (#17535)direction="up"andlabelposition="right"label-position="top"/"bottom"laid icon and label out in a row instead of a columnhideSelectionprop from the alpha sliderconfig > screen > bodyClasseskey on SSR, which never emitted its body class into server-rendered HTMLuseQuasar()'sinject()fallback past the no-instance caseOther
[Accessibility]category in the Specs workflowDonations
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:
v2.24.0Compare Source
Changes
No breaking changes, no runtime changes. This release makes quasar more tree-shakable and pairs with the new faster toolchain.
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:
v2.23.5Compare Source
Fixes
Notable behaviour changes
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.
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.
e75b65e,db1df05)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.
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.
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:
v2.23.4Compare Source
Fixes
Behavior change: date.extractDate() and invalid input
Previously, extractDate() always constructed a valid Date, even when the input didn't
match the mask or contained impossible values. Failures were silently normalized --
extractDate('not a date', 'YYYY-MM-DD') returned Jan 1 1900, 2024-02-30 rolled over
to Mar 1, and out-of-range time components wrapped around (24:00 became 00:00, 13:60 became 13:00).
Now these inputs return an Invalid Date object. The function signature and return type are unchanged, but code that never checked validity will propagate NaN-based dates instead of wrong-but-valid ones. Check results with:
Valid input prefixes still parse — extra text after the masked portion is ignored, so extractDate('2024-02-29T13:05:06Z', 'YYYY-MM-DD') still works.
QDate and QTime are also stricter about model values with out-of-range time components (e.g. 24:00
with an HH:mm mask). QTime now shows its empty --:-- state instead of a silently wrapped time,
and QDate (with a time-bearing custom mask only) treats such values as unparseable -- no day appears
selected and the calendar opens at the default view. Valid model values are unaffected.
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:
v2.23.3Compare Source
Security
Fixes
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.