@grafana/scenes 8.4.0 → 8.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,1592 @@
1
+ # v8.5.0 (Thu Jun 18 2026)
2
+
3
+ ### Release Notes
4
+
5
+ #### chore(deps): update dependency rimraf to v6 ([#1534](https://github.com/grafana/scenes/pull/1534))
6
+
7
+ <details>
8
+ <summary>isaacs/rimraf (rimraf)</summary>
9
+
10
+ #### chore(deps): update dependency react-router-dom to v6.30.4 ([#1521](https://github.com/grafana/scenes/pull/1521))
11
+
12
+ <details>
13
+ <summary>remix-run/react-router (react-router-dom)</summary>
14
+
15
+ #### fix(deps): update emotion monorepo ([#1511](https://github.com/grafana/scenes/pull/1511))
16
+
17
+ <details>
18
+ <summary>emotion-js/emotion (@&#8203;emotion/css)</summary>
19
+
20
+ #### fix(deps): update dependency @floating-ui/react to ^0.27.0 ([#1509](https://github.com/grafana/scenes/pull/1509))
21
+
22
+ <details>
23
+ <summary>floating-ui/floating-ui (@&#8203;floating-ui/react)</summary>
24
+
25
+ ### [`v0.27.19`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#02719)
26
+
27
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.27.18...@floating-ui/react@0.27.19)
28
+
29
+ ##### Patch Changes
30
+
31
+ - fix(useDismiss): ignore non-primary inside mouse presses for click outside dismissal
32
+ - fix(react): fix shadow root host lookup when one of the parent elements is an anchor
33
+ - Update dependencies: `@floating-ui/utils@0.2.11`, `@floating-ui/react-dom@2.1.8`
34
+
35
+ ### [`v0.27.18`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#02718)
36
+
37
+ ##### Patch Changes
38
+
39
+ - fix(FloatingFocusManager): use `WeakRef` for previously focused elements
40
+
41
+ ### [`v0.27.17`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#02717)
42
+
43
+ ##### Patch Changes
44
+
45
+ - feat: detectOverflow configurable via platform
46
+ - fix(FloatingPortal): ensure accessibility of non-modal dialogs with iOS/Safari/Voice Control
47
+ - Update dependencies: `@floating-ui/react-dom@2.1.7`
48
+
49
+ ### [`v0.27.16`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#02716)
50
+
51
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.27.15...@floating-ui/react@0.27.16)
52
+
53
+ ##### Patch Changes
54
+
55
+ - Update dependencies: `@floating-ui/react-dom@2.1.6`
56
+
57
+ ### [`v0.27.15`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#02715)
58
+
59
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.27.14...@floating-ui/react@0.27.15)
60
+
61
+ ##### Patch Changes
62
+
63
+ - Update dependencies: `@floating-ui/react-dom@2.1.5`
64
+
65
+ ### [`v0.27.14`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#02714)
66
+
67
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.27.13...@floating-ui/react@0.27.14)
68
+
69
+ ##### Patch Changes
70
+
71
+ - fix(FloatingFocusManager): allow marking ancestor nodes with `data-floating-ui-inert`. Fixes outside presses not working when clicking on a parent ancestor node.
72
+ - feat(FloatingPortal): support `ShadowRoot` containers
73
+ - fix(useRole): ensure `aria-selected=true` is present without being active with `select` role
74
+ - fix: only use blur capture to mark inside floating tree if `FloatingPortal` exists. Prevents blocking `closeOnFocusOut` behavior.
75
+ - fix(FloatingFocusManager): clear previously focused elements that are disconnected more often
76
+
77
+ ### [`v0.27.13`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#02713)
78
+
79
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.27.12...@floating-ui/react@0.27.13)
80
+
81
+ ##### Patch Changes
82
+
83
+ - fix(FloatingFocusManager): ensure focus is always returned correctly in deep nested trees
84
+ - fix(markOthers): exclude elements with `role="status"` and `output` elements
85
+ - Update dependencies: `@floating-ui/utils@0.2.10`, `@floating-ui/react-dom@2.1.4`
86
+
87
+ ### [`v0.27.12`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#02712)
88
+
89
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.27.11...@floating-ui/react@0.27.12)
90
+
91
+ ##### Patch Changes
92
+
93
+ - fix(FloatingFocusManager): ensure `aria-hidden`/`inert` are cleaned up correctly when mixing `outsideElementsInert` `true`/`false`
94
+ - fix(safePolygon): revert to checking if any nested child is open
95
+
96
+ ### [`v0.27.11`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#02711)
97
+
98
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.27.10...@floating-ui/react@0.27.11)
99
+
100
+ ##### Patch Changes
101
+
102
+ - fix(FloatingFocusManager): check if target is connected for `restoreFocus` prop
103
+ - Update dependencies: `@floating-ui/react-dom@2.1.3`
104
+
105
+ ### [`v0.27.10`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#02710)
106
+
107
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.27.9...@floating-ui/react@0.27.10)
108
+
109
+ ##### Patch Changes
110
+
111
+ - fix(safePolygon): handle pointer moving outside of all floating elements in a tree with a close delay
112
+ - fix(useDismiss): bail out of blur to mark inside react tree if floating tree exists
113
+
114
+ ### [`v0.27.9`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#0279)
115
+
116
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.27.8...@floating-ui/react@0.27.9)
117
+
118
+ ##### Patch Changes
119
+
120
+ - fix(useListNavigation): reset internal `focusItemOnOpen` state when floating element is closed. This prevents the first item being highlighted on open under certain conditions when it shouldn't be.
121
+ - fix(FloatingOverlay): `lockScroll` detection on iPad
122
+ - fix(useListNavigation): avoid item rerenders upon open
123
+ - fix(FloatingFocusManager): check for blurring to nested elements inside the React tree without `FloatingTree`
124
+ - fix(FloatingFocusManager): always prevent scroll upon returning focus
125
+ - refactor(useHover): improve `handleClose` option and docs. You can now more easily write a custom event handler function, including exported types.
126
+ - feat(FloatingOverlay): add `lockScroll` scrollbar width CSS variable (`--floating-ui-scrollbar-width`)
127
+ - feat(useListNavigation, Composite): allow `disabledIndices` to be a function
128
+
129
+ ### [`v0.27.8`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#0278)
130
+
131
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.27.7...@floating-ui/react@0.27.8)
132
+
133
+ ##### Patch Changes
134
+
135
+ - feat: export most utils under `@floating-ui/react/utils`. This makes it a lot easier to write your own custom interaction hooks, or copy/paste the existing ones to change the way they are implemented yourself without patching or waiting for features/breaking changes.
136
+ - perf(FloatingFocusManager): move manual tabindex handling on floating element to an event. Improves performance when the floating element has a large amount of content or the content changes frequently e.g. virtualized scrolling.
137
+ - fix(FloatingFocusManager): prioritize returning focus to reference if available
138
+ - feat(useListNavigation): add `parentOrientation` prop
139
+
140
+ ### [`v0.27.7`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#0277)
141
+
142
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.27.6...@floating-ui/react@0.27.7)
143
+
144
+ ##### Patch Changes
145
+
146
+ - fix(useTransitionStatus): avoid browser from painting before floating element opens. With `FloatingDelayGroup`, this avoids a flicker when moving between floating elements to ensure one is always open with no missing frames.
147
+ - fix(useListNavigation): correctly scroll to the selected item on open when using a pointer and `FloatingFocusManager` `initialFocus` is not in use
148
+ - fix(useHover): clean up blockPointerEvents when opened with click after hover
149
+ - fix(useRole): improve "combobox" role
150
+ - fix(useRole): handle custom id attributes
151
+ - feat: experimental `NextFloatingDelayGroup` (and `useNextFloatingDelayGroup`). Unlike `FloatingDelayGroup`, this component doesn't cause a re-render of unrelated consumers of the context when the delay changes, improving performance. This will eventually become the new default for `FloatingDelayGroup` in v1 (`Next`), as [its API is different](https://redirect.github.com/floating-ui/floating-ui/pull/3274).
152
+ - perf(FloatingFocusManager): ignore manual tabindex handling for non-dialog role floating elements
153
+ - fix(useHover): prevent floating element unexpectedly closing when close to reference element when not using `safePolygon()` and a close delay
154
+ - perf(useFloating): refactor `events` emitter
155
+ - fix(FloatingFocusManager): ensure floating elements with no tabbable content are assigned `tabIndex=0` when `initialFocus` is -1
156
+ - fix(useListNavigation): handle list navigation for nested lists with mixed orientation
157
+
158
+ ### [`v0.27.6`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#0276)
159
+
160
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.27.5...@floating-ui/react@0.27.6)
161
+
162
+ ##### Patch Changes
163
+
164
+ - fix(useFloating): prevent error when using `inline` middleware when passing a real DOM element to `refs.setPositionReference` due to `element.getClientRects()` not being handled
165
+ - fix: avoid marking root ancestor combobox with `aria-hidden` when nested virtual floating element opens
166
+ - fix(FloatingFocusManager): set `inert` attribute value to empty string instead of `"true"`
167
+ - fix(FloatingFocusManager): correct tabbing to different document contexts
168
+ - fix(useClick): fix toggle behavior with Enter key when reference element is anchor
169
+ - feat(FloatingFocusManager): `getInsideElements` prop. Allows you to specify elements that are considered as "inside" the floating element. These will avoid being marked with `aria-hidden` and `data-floating-ui-inert` attributes.
170
+ - fix(useFocus): improve `:focus-visible` checks
171
+
172
+ ### [`v0.27.5`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#0275)
173
+
174
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.27.4...@floating-ui/react@0.27.5)
175
+
176
+ ##### Patch Changes
177
+
178
+ - fix(FloatingFocusManager): return focus on outside press if possible for non-context nested floating elements
179
+ - perf: improve performance by only clearing used timeouts
180
+ - fix(useMergeRefs): support React 19 ref cleanup
181
+ - fix(FloatingFocusManager): avoid returning to unrelated references
182
+
183
+ ### [`v0.27.4`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#0274)
184
+
185
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.27.3...@floating-ui/react@0.27.4)
186
+
187
+ ##### Patch Changes
188
+
189
+ - fix(useListNavigation): use parent's orientation when opening/closing nested menus, correctly supporting grid submenus
190
+ - fix(FloatingList): avoid race condition between registering/unregistering nodes and setting indices
191
+
192
+ ### [`v0.27.3`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#0273)
193
+
194
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.27.2...@floating-ui/react@0.27.3)
195
+
196
+ ##### Patch Changes
197
+
198
+ - feat(FloatingFocusManager): accept `FloatingRootContext` as the `context` prop
199
+ - fix(useListNavigation): check for virtual pointer on pointerenter
200
+ - refactor: use jsx runtime
201
+ - Update dependencies: `@floating-ui/utils@0.2.9`
202
+
203
+ ### [`v0.27.2`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#0272)
204
+
205
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.27.1...@floating-ui/react@0.27.2)
206
+
207
+ ##### Patch Changes
208
+
209
+ - fix(FloatingFocusManager): prevent stale `inert`/`aria-hidden` attributes from being left on outside elements
210
+
211
+ ### [`v0.27.1`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#02719)
212
+
213
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.27.0...@floating-ui/react@0.27.1)
214
+
215
+ ##### Patch Changes
216
+
217
+ - fix(useDismiss): ignore non-primary inside mouse presses for click outside dismissal
218
+ - fix(react): fix shadow root host lookup when one of the parent elements is an anchor
219
+ - Update dependencies: `@floating-ui/utils@0.2.11`, `@floating-ui/react-dom@2.1.8`
220
+
221
+ ### [`v0.27.0`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#0270)
222
+
223
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.26.28...@floating-ui/react@0.27.0)
224
+
225
+ ##### Minor Changes
226
+
227
+ - chore: deprecate `inner` and `useInnerOffset`. This technique of aligning an inner element to the reference has poor performance with longer lists, doesn't fit with the middleware paradigm, doesn't work on touch, and has a better custom alternative using native `onScroll` that is encouraged instead.
228
+ - breaking: drop React 16 support. 17 is the minimum supported version.
229
+ - fix(useId): add `| undefined` return type for React 17
230
+
231
+ ##### Patch Changes
232
+
233
+ - feat(FloatingFocusManager): add `outsideElementsInert` prop. This enables pointer modality without a backdrop.
234
+ - perf(useListNavigation): simplify focusing to remove unneeded asynchronicity
235
+ - fix(useDismiss): allow native clicks to work with `referencePress`
236
+ - fix(useDismiss): read target `overflow` style for scrollbar press check. Fixes an issue where outside presses would be incorrectly prevented if the target element that was pressed appeared scrollable but was actually not.
237
+ - fix(FloatingFocusManager): check for 'safe-polygon' reason on return focus
238
+
239
+ ### [`v0.26.28`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#02628)
240
+
241
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.26.27...@floating-ui/react@0.26.28)
242
+
243
+ ##### Patch Changes
244
+
245
+ - fix(Composite): change focus to be sync
246
+ - fix(useClick): improve consistency when combining with `useHover()`
247
+ - feat(useClick): add `stickIfOpen` prop to determine whether to remain open upon first click when first opened by another event
248
+ - feat(Composite): add RTL support
249
+ - fix(FloatingFocusManager): ensure `returnFocus` is ignored correctly when using `disabled` prop
250
+ - fix(useListNavigation): incorrect behaviour with RTL grid
251
+
252
+ ### [`v0.26.27`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#02627)
253
+
254
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.26.26...@floating-ui/react@0.26.27)
255
+
256
+ ##### Patch Changes
257
+
258
+ - fix(useListNavigation): ignore Home/End key press for typeable combobox references
259
+ - fix(useListNavigation): ensure submenu references are set as `virtualItemRef` on floating close
260
+ - fix(inner): use list ref length for fallback detection
261
+ - fix(FloatingPortal): allow `root` to be reactive from `null` to an element
262
+
263
+ ### [`v0.26.26`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/react/CHANGELOG.md#02626)
264
+
265
+ [Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/react@0.26.25...@floating-ui/react@0.26.26)
266
+
267
+ ##### Patch Changes
268
+
269
+ - fix(useFloating): access `domReference` instead of `reference`
270
+ - feat(FloatingFocusManager): specify element to return focus to
271
+
272
+ </details>
273
+
274
+ ---
275
+
276
+ #### fix(deps): update react monorepo ([#1512](https://github.com/grafana/scenes/pull/1512))
277
+
278
+ <details>
279
+ <summary>facebook/react (react)</summary>
280
+
281
+ ### [`v18.3.1`](https://redirect.github.com/facebook/react/blob/HEAD/CHANGELOG.md#1831-April-26-2024)
282
+
283
+ [Compare Source](https://redirect.github.com/facebook/react/compare/v18.3.0...v18.3.1)
284
+
285
+ - Export `act` from `react` [f1338f](https://redirect.github.com/facebook/react/commit/f1338f8080abd1386454a10bbf93d67bfe37ce85)
286
+
287
+ ### [`v18.3.0`](https://redirect.github.com/facebook/react/blob/HEAD/CHANGELOG.md#1830-April-25-2024)
288
+
289
+ [Compare Source](https://redirect.github.com/facebook/react/compare/v18.2.0...v18.3.0)
290
+
291
+ This release is identical to 18.2 but adds warnings for deprecated APIs and other changes that are needed for React 19.
292
+
293
+ Read the [React 19 Upgrade Guide](https://react.dev/blog/2024/04/25/react-19-upgrade-guide) for more info.
294
+
295
+ ##### React
296
+
297
+ - Allow writing to `this.refs` to support string ref codemod [909071](https://redirect.github.com/facebook/react/commit/9090712fd3ca4e1099e1f92e67933c2cb4f32552)
298
+ - Warn for deprecated `findDOMNode` outside StrictMode [c3b283](https://redirect.github.com/facebook/react/commit/c3b283964108b0e8dbcf1f9eb2e7e67815e39dfb)
299
+ - Warn for deprecated `test-utils` methods [d4ea75](https://redirect.github.com/facebook/react/commit/d4ea75dc4258095593b6ac764289f42bddeb835c)
300
+ - Warn for deprecated Legacy Context outside StrictMode [415ee0](https://redirect.github.com/facebook/react/commit/415ee0e6ea0fe3e288e65868df2e3241143d5f7f)
301
+ - Warn for deprecated string refs outside StrictMode [#&#8203;25383](https://redirect.github.com/facebook/react/pull/25383)
302
+ - Warn for deprecated `defaultProps` for function components [#&#8203;25699](https://redirect.github.com/facebook/react/pull/25699)
303
+ - Warn when spreading `key` [#&#8203;25697](https://redirect.github.com/facebook/react/pull/25697)
304
+ - Warn when using `act` from `test-utils` [d4ea75](https://redirect.github.com/facebook/react/commit/d4ea75dc4258095593b6ac764289f42bddeb835c)
305
+
306
+ ##### React DOM
307
+
308
+ - Warn for deprecated `unmountComponentAtNode` [8a015b](https://redirect.github.com/facebook/react/commit/8a015b68cc060079878e426610e64e86fb328f8d)
309
+ - Warn for deprecated `renderToStaticNodeStream` [#&#8203;28874](https://redirect.github.com/facebook/react/pull/28874)
310
+
311
+ </details>
312
+
313
+ ---
314
+
315
+ #### chore(deps): update jest monorepo ([#1506](https://github.com/grafana/scenes/pull/1506))
316
+
317
+ <details>
318
+ <summary>jestjs/jest (jest)</summary>
319
+
320
+ ### [`v30.4.2`](https://redirect.github.com/jestjs/jest/blob/HEAD/CHANGELOG.md#3042)
321
+
322
+ [Compare Source](https://redirect.github.com/jestjs/jest/compare/v30.4.1...v30.4.2)
323
+
324
+ ##### Fixes
325
+
326
+ - `[jest-runtime]` Fix named imports from CJS modules whose `module.exports` is a function with own-property exports ([#&#8203;16150](https://redirect.github.com/jestjs/jest/pull/16150))
327
+
328
+ ### [`v30.4.1`](https://redirect.github.com/jestjs/jest/blob/HEAD/CHANGELOG.md#3041)
329
+
330
+ [Compare Source](https://redirect.github.com/jestjs/jest/compare/v30.4.0...v30.4.1)
331
+
332
+ ##### Features
333
+
334
+ - `[jest-config, jest-core, jest-runner, jest-schemas, jest-types]` Allow custom runner configuration options via tuple format `['runner-path', {options}]` ([#&#8203;16141](https://redirect.github.com/jestjs/jest/pull/16141))
335
+
336
+ ##### Fixes
337
+
338
+ - `[jest-runtime]` Align CJS-from-ESM default export with Node: `module.exports` is always the ESM default, `__esModule` unwrapping is no longer applied ([#&#8203;16143](https://redirect.github.com/jestjs/jest/pull/16143))
339
+
340
+ ### [`v30.4.0`](https://redirect.github.com/jestjs/jest/blob/HEAD/CHANGELOG.md#3040)
341
+
342
+ [Compare Source](https://redirect.github.com/jestjs/jest/compare/v30.3.0...v30.4.0)
343
+
344
+ ##### Features
345
+
346
+ - `[babel-jest]` Support collecting coverage from `.mts`, `.cts` (and other) files ([#&#8203;15994](https://redirect.github.com/jestjs/jest/pull/15994))
347
+ - `[jest-circus, jest-cli, jest-config, jest-core, jest-jasmine2, jest-types]` Add `--collect-tests` flag to discover and list tests without executing them ([#&#8203;16006](https://redirect.github.com/jestjs/jest/pull/16006))
348
+ - `[jest-config, jest-runner, jest-worker]` Add `workerGracefulExitTimeout` config option to control how long workers are given to exit before being force-killed ([#&#8203;15984](https://redirect.github.com/jestjs/jest/pull/15984))
349
+ - `[jest-config]` Add support for `jest.config.mts` as a valid configuration file ([#&#8203;16005](https://redirect.github.com/jestjs/jest/pull/16005))
350
+ - `[jest-config, jest-core, jest-reporters, jest-runner]` `verbose` and `silent` can now be set per-project; the project-level value overrides the global value for that project's tests ([#&#8203;16133](https://redirect.github.com/jestjs/jest/pull/16133))
351
+ - `[@jest/fake-timers]` Accept `Temporal.Duration` in `jest.advanceTimersByTime()` and `jest.advanceTimersByTimeAsync()` ([#&#8203;16128](https://redirect.github.com/jestjs/jest/pull/16128))
352
+ - `[@jest/fake-timers]` Accept `Temporal.Instant` and `Temporal.ZonedDateTime` in `jest.setSystemTime()` and `useFakeTimers({now})` ([#&#8203;16128](https://redirect.github.com/jestjs/jest/pull/16128))
353
+ - `[@jest/fake-timers]` Support faking `Temporal.Now.*` ([#&#8203;16131](https://redirect.github.com/jestjs/jest/pull/16131))
354
+ - `[jest-mock]` Add `clearMocksOnScope(scope)` on `ModuleMocker` for clearing every mock function exposed on a scope object ([#&#8203;16088](https://redirect.github.com/jestjs/jest/pull/16088))
355
+ - `[jest-resolve]` Add `canResolveSync()` on `Resolver` so callers can detect when a user-configured resolver only exports an `async` hook ([#&#8203;16064](https://redirect.github.com/jestjs/jest/pull/16064))
356
+ - `[jest-runtime]` Use synchronous `evaluate()` for ES modules without top-level `await` on Node versions that support it (v24.9+), and prefer the synchronous transform path when a sync transformer is configured ([#&#8203;16062](https://redirect.github.com/jestjs/jest/pull/16062))
357
+ - `[jest-runtime]` Support `require()` of ES modules on Node v24.9+ ([#&#8203;16074](https://redirect.github.com/jestjs/jest/pull/16074))
358
+ - `[jest-runtime]` Validate TC39 import attributes (`with { type: 'json' }`) on ESM imports ([#&#8203;16127](https://redirect.github.com/jestjs/jest/pull/16127))
359
+ - `[@jest/transform]` Add `canTransformSync(filename)` on `ScriptTransformer` so callers can pick the sync vs async transform path ([#&#8203;16062](https://redirect.github.com/jestjs/jest/pull/16062))
360
+ - `[jest-util]` Add `isError` helper ([#&#8203;16076](https://redirect.github.com/jestjs/jest/pull/16076))
361
+ - `[pretty-format]` Support React 19 ([#&#8203;16123](https://redirect.github.com/jestjs/jest/pull/16123))
362
+
363
+ ##### Fixes
364
+
365
+ - `[expect-utils]` Fix `toStrictEqual` failing on `structuredClone` results due to cross-realm constructor mismatch ([#&#8203;15959](https://redirect.github.com/jestjs/jest/pull/15959))
366
+ - `[@jest/expect-utils]` Prevent `toMatchObject`/subset matching from throwing when encountering exotic iterables ([#&#8203;15952](https://redirect.github.com/jestjs/jest/pull/15952))
367
+ - `[fake-timers]` Convert `Date` to milliseconds before passing to `@sinonjs/fake-timers` ([#&#8203;16029](https://redirect.github.com/jestjs/jest/pull/16029))
368
+ - `[jest]` Export `GlobalConfig` and `ProjectConfig` TypeScript types ([#&#8203;16132](https://redirect.github.com/jestjs/jest/pull/16132))
369
+ - `[jest-circus]` Prevent crash when `asyncError` is undefined for non-Error throws ([#&#8203;16003](https://redirect.github.com/jestjs/jest/pull/16003))
370
+ - `[jest-circus, jest-jasmine2]` Include `Error.cause` in JSON `failureMessages` output ([#&#8203;15967](https://redirect.github.com/jestjs/jest/pull/15967))
371
+ - `[jest-config]` Fix preset path resolution on Windows when the preset uses subpath `exports` ([#&#8203;15961](https://redirect.github.com/jestjs/jest/pull/15961))
372
+ - `[jest-config]` Allow `collectCoverage` and `coverageProvider` in project config without a validation warning ([#&#8203;16132](https://redirect.github.com/jestjs/jest/pull/16132))
373
+ - `[jest-config]` Project config validator now emits "is not supported in an individual project configuration" instead of "probably a typing mistake" for known global-only options ([#&#8203;16132](https://redirect.github.com/jestjs/jest/pull/16132))
374
+ - `[jest-environment-node]` Fix `--localstorage-file` warning on Node 25+ ([#&#8203;16086](https://redirect.github.com/jestjs/jest/pull/16086))
375
+ - `[jest-reporters]` Apply global coverage threshold to unmatched pattern files in addition to glob/path thresholds ([#&#8203;16137](https://redirect.github.com/jestjs/jest/pull/16137))
376
+ - `[jest-reporters, jest-runner, jest-runtime, jest-transform]` Fix coverage report not showing correct code coverage when using `projects` config option ([#&#8203;16140](https://redirect.github.com/jestjs/jest/pull/16140))
377
+ - `[jest-runtime]` Resolve `expect` and `@jest/expect` from the internal module registry so test-file imports share the same `JestAssertionError` as the global `expect` ([#&#8203;16130](https://redirect.github.com/jestjs/jest/pull/16130))
378
+ - `[jest-runtime]` Improve CJS-from-ESM interop: `__esModule`/Babel default unwrap, broader named-export coverage, and shared CJS singleton across importers ([#&#8203;16050](https://redirect.github.com/jestjs/jest/pull/16050))
379
+ - `[jest-runtime]` Load `.js` files with ESM syntax but no `"type":"module"` marker as native ESM ([#&#8203;16050](https://redirect.github.com/jestjs/jest/pull/16050))
380
+ - `[jest-runtime]` Extend the `.js`-with-ESM-syntax fallback to `require()` on Node v24.9+ - falls back to `require(esm)` when the CJS parser rejects ESM syntax ([#&#8203;16078](https://redirect.github.com/jestjs/jest/pull/16078))
381
+ - `[jest-runtime]` Fix deadlocks and double-evaluation in concurrent ESM and wasm imports ([#&#8203;16050](https://redirect.github.com/jestjs/jest/pull/16050))
382
+ - `[jest-runtime]` Fix error when `require()` is called after the Jest environment has been torn down ([#&#8203;15951](https://redirect.github.com/jestjs/jest/pull/15951))
383
+ - `[jest-runtime]` Fix missing error when `import()` is called after the Jest environment has been torn down ([#&#8203;16080](https://redirect.github.com/jestjs/jest/pull/16080))
384
+ - `[jest-runtime]` Fix virtual `unstable_mockModule` registrations not respected in ESM ([#&#8203;16081](https://redirect.github.com/jestjs/jest/pull/16081))
385
+ - `[jest-runtime]` Apply `moduleNameMapper` when resolving modules with `require.resolve()` and the `paths` option ([#&#8203;16135](https://redirect.github.com/jestjs/jest/pull/16135))
386
+
387
+ ##### Chore & Maintenance
388
+
389
+ - `[@jest/fake-timers]` Upgrade `@sinonjs/fake-timers` ([#&#8203;16139](https://redirect.github.com/jestjs/jest/pull/16139))
390
+ - `[jest-runtime]` Use synchronous `linkRequests` / `instantiate` for ESM linking on Node v24.9+ ([#&#8203;16063](https://redirect.github.com/jestjs/jest/pull/16063))
391
+
392
+ </details>
393
+
394
+ ---
395
+
396
+ #### chore(deps): update dependency @tanstack/react-virtual to v3.13.26 ([#1491](https://github.com/grafana/scenes/pull/1491))
397
+
398
+ <details>
399
+ <summary>TanStack/virtual (@&#8203;tanstack/react-virtual)</summary>
400
+
401
+ ### [`v3.13.26`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31326)
402
+
403
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.25...@tanstack/react-virtual@3.13.26)
404
+
405
+ ##### Patch Changes
406
+
407
+ - Updated dependencies \[[`fc992ab`](https://redirect.github.com/TanStack/virtual/commit/fc992ab00a15166311b79bd7580736cf01e8cc1a)]:
408
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.16.0
409
+
410
+ ### [`v3.13.25`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31325)
411
+
412
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.24...@tanstack/react-virtual@3.13.25)
413
+
414
+ ##### Patch Changes
415
+
416
+ - Replace the `useReducer(() => ({}), {})` force-rerender pattern with an ([#&#8203;1168](https://redirect.github.com/TanStack/virtual/pull/1168))
417
+ incrementing number counter. Same semantics (every dispatch changes the
418
+ reducer state, forcing a render); zero per-dispatch object allocation.
419
+ Trivial individual cost, but eliminates one steady-state GC source on
420
+ scroll-heavy apps.
421
+ - Updated dependencies \[[`99355ad`](https://redirect.github.com/TanStack/virtual/commit/99355ad1eceee6270efaa26e51f535d8d7c31ac2), [`99355ad`](https://redirect.github.com/TanStack/virtual/commit/99355ad1eceee6270efaa26e51f535d8d7c31ac2), [`99355ad`](https://redirect.github.com/TanStack/virtual/commit/99355ad1eceee6270efaa26e51f535d8d7c31ac2), [`99355ad`](https://redirect.github.com/TanStack/virtual/commit/99355ad1eceee6270efaa26e51f535d8d7c31ac2), [`99355ad`](https://redirect.github.com/TanStack/virtual/commit/99355ad1eceee6270efaa26e51f535d8d7c31ac2), [`99355ad`](https://redirect.github.com/TanStack/virtual/commit/99355ad1eceee6270efaa26e51f535d8d7c31ac2), [`99355ad`](https://redirect.github.com/TanStack/virtual/commit/99355ad1eceee6270efaa26e51f535d8d7c31ac2)]:
422
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.15.0
423
+
424
+ ### [`v3.13.24`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31324)
425
+
426
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.23...@tanstack/react-virtual@3.13.24)
427
+
428
+ ##### Patch Changes
429
+
430
+ - Updated dependencies \[[`97a204d`](https://redirect.github.com/TanStack/virtual/commit/97a204dc5526669114458685552b7569b60d2940)]:
431
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.14.0
432
+
433
+ ### [`v3.13.23`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31323)
434
+
435
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.22...@tanstack/react-virtual@3.13.23)
436
+
437
+ ##### Patch Changes
438
+
439
+ - Updated dependencies \[[`7ece2d5`](https://redirect.github.com/TanStack/virtual/commit/7ece2d5d4249b7e703c68ac497ae5545c54e7c67)]:
440
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.23
441
+
442
+ ### [`v3.13.22`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31322)
443
+
444
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.21...@tanstack/react-virtual@3.13.22)
445
+
446
+ ##### Patch Changes
447
+
448
+ - Updated dependencies \[[`54d771a`](https://redirect.github.com/TanStack/virtual/commit/54d771a7d4c74f6968e8132b5a85f3e04682376a), [`d3416c3`](https://redirect.github.com/TanStack/virtual/commit/d3416c386c6446957f413db2eef3211f5fdf3b5f)]:
449
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.22
450
+
451
+ ### [`v3.13.21`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31321)
452
+
453
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.20...@tanstack/react-virtual@3.13.21)
454
+
455
+ ##### Patch Changes
456
+
457
+ - Updated dependencies \[[`be89e29`](https://redirect.github.com/TanStack/virtual/commit/be89e293ea01654df6334dc6473b65eebed13e51)]:
458
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.21
459
+
460
+ ### [`v3.13.20`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31320)
461
+
462
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.19...@tanstack/react-virtual@3.13.20)
463
+
464
+ ##### Patch Changes
465
+
466
+ - Updated dependencies \[[`ff83e94`](https://redirect.github.com/TanStack/virtual/commit/ff83e949408ba8a714436fa10cafc3725a56274b)]:
467
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.20
468
+
469
+ ### [`v3.13.19`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31319)
470
+
471
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.18...@tanstack/react-virtual@3.13.19)
472
+
473
+ ##### Patch Changes
474
+
475
+ - Updated dependencies \[[`843109c`](https://redirect.github.com/TanStack/virtual/commit/843109c5bf780591a762f9767f3808fd15e3f94e)]:
476
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.19
477
+
478
+ ### [`v3.13.18`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31318)
479
+
480
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.17...@tanstack/react-virtual@3.13.18)
481
+
482
+ ##### Patch Changes
483
+
484
+ - Updated dependencies \[[`9067574`](https://redirect.github.com/TanStack/virtual/commit/9067574f1a0178d30e27bcac70853bdcbf437fec)]:
485
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.18
486
+
487
+ ### [`v3.13.17`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31317)
488
+
489
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.16...@tanstack/react-virtual@3.13.17)
490
+
491
+ ##### Patch Changes
492
+
493
+ - Updated dependencies \[[`21d9a46`](https://redirect.github.com/TanStack/virtual/commit/21d9a46eac034cb4299872891694965bceed526d)]:
494
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.17
495
+
496
+ ### [`v3.13.16`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31316)
497
+
498
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.15...@tanstack/react-virtual@3.13.16)
499
+
500
+ ##### Patch Changes
501
+
502
+ - Updated dependencies \[[`db6df21`](https://redirect.github.com/TanStack/virtual/commit/db6df212ed83dd7e4eb6450d1340c95475667b7b)]:
503
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.16
504
+
505
+ ### [`v3.13.15`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31315)
506
+
507
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.14...@tanstack/react-virtual@3.13.15)
508
+
509
+ ##### Patch Changes
510
+
511
+ - feat(react-virtual): add `useFlushSync` option ([#&#8203;1100](https://redirect.github.com/TanStack/virtual/pull/1100))
512
+
513
+ Adds a React-specific `useFlushSync` option to control whether `flushSync` is used for synchronous scroll correction during measurement.
514
+
515
+ The default behavior remains unchanged (`useFlushSync: true`) to preserve the best scrolling experience.
516
+ Disabling it avoids the React 19 warning about calling `flushSync` during render, at the cost of potentially increased visible whitespace during fast scrolling with dynamically sized items.
517
+
518
+ - Updated dependencies \[[`5a273bf`](https://redirect.github.com/TanStack/virtual/commit/5a273bf0c0bc0255ca172929f021c3b6e50cb69d)]:
519
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.15
520
+
521
+ ### [`v3.13.14`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31314)
522
+
523
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.13...@tanstack/react-virtual@3.13.14)
524
+
525
+ ##### Patch Changes
526
+
527
+ - Updated dependencies \[[`6d9274c`](https://redirect.github.com/TanStack/virtual/commit/6d9274c3f0a9e64450b5829872079a65277bc654)]:
528
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.14
529
+
530
+ ### [`v3.13.13`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31313)
531
+
532
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.12...@tanstack/react-virtual@3.13.13)
533
+
534
+ ##### Patch Changes
535
+
536
+ - Fix: Notify framework when count changes to update getTotalSize() ([#&#8203;1085](https://redirect.github.com/TanStack/virtual/pull/1085))
537
+
538
+ Fixed an issue where `getTotalSize()` would return stale values when the `count` option changed (e.g., during filtering or search operations). The virtualizer now automatically notifies the framework when measurement-affecting options change, ensuring the UI updates correctly without requiring manual `useMemo` workarounds.
539
+
540
+ **Before**: When filtering items, the list container would maintain its previous height, causing excessive blank space (when count decreased) or inaccessible items (when count increased).
541
+
542
+ **After**: Height updates automatically when count changes, providing the correct user experience.
543
+
544
+ This fix applies to all framework adapters and has minimal performance impact (< 0.1ms per change).
545
+
546
+ - Updated dependencies \[[`2542c5a`](https://redirect.github.com/TanStack/virtual/commit/2542c5a3d6820cea956fa3b4f94c42e3526a8d68), [`96e32a6`](https://redirect.github.com/TanStack/virtual/commit/96e32a6ffc125743a0172ea4e0fe37ac29c4187b)]:
547
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.13
548
+
549
+ ### [`v3.13.12`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31312)
550
+
551
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.11...@tanstack/react-virtual@3.13.12)
552
+
553
+ ##### Patch Changes
554
+
555
+ - chore(react-virtual): fix vite e2e build ([#&#8203;1030](https://redirect.github.com/TanStack/virtual/pull/1030))
556
+
557
+ - Updated dependencies \[[`d21ed98`](https://redirect.github.com/TanStack/virtual/commit/d21ed98da3470b9986c9a028ed70fdf0d6189ab4)]:
558
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.12
559
+
560
+ ### [`v3.13.11`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31311)
561
+
562
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.10...@tanstack/react-virtual@3.13.11)
563
+
564
+ ##### Patch Changes
565
+
566
+ - Updated dependencies \[[`73fa867`](https://redirect.github.com/TanStack/virtual/commit/73fa86752599a4bffba51ec8e4ff2f8cb8283010)]:
567
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.11
568
+
569
+ ### [`v3.13.10`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31310)
570
+
571
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.9...@tanstack/react-virtual@3.13.10)
572
+
573
+ ##### Patch Changes
574
+
575
+ - Updated dependencies \[[`b3b7e7d`](https://redirect.github.com/TanStack/virtual/commit/b3b7e7dc8b25daeebbd2da61b3b7ae3448babbdb)]:
576
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.10
577
+
578
+ ### [`v3.13.9`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#3139)
579
+
580
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.8...@tanstack/react-virtual@3.13.9)
581
+
582
+ ##### Patch Changes
583
+
584
+ - Updated dependencies \[[`9e33cdb`](https://redirect.github.com/TanStack/virtual/commit/9e33cdb1c8780c2f455aafc11a0aeea58b71fc69)]:
585
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.9
586
+
587
+ ### [`v3.13.8`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#3138)
588
+
589
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.7...@tanstack/react-virtual@3.13.8)
590
+
591
+ ##### Patch Changes
592
+
593
+ - Updated dependencies \[[`60719f6`](https://redirect.github.com/TanStack/virtual/commit/60719f61b589d6f9d886e4f7c093217f6d693faf)]:
594
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.8
595
+
596
+ ### [`v3.13.7`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#3137)
597
+
598
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.6...@tanstack/react-virtual@3.13.7)
599
+
600
+ ##### Patch Changes
601
+
602
+ - Updated dependencies \[[`e2d93c2`](https://redirect.github.com/TanStack/virtual/commit/e2d93c2dcde9ccf60f658e56edccd8d05aefeee6)]:
603
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.7
604
+
605
+ ### [`v3.13.6`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#3136)
606
+
607
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.5...@tanstack/react-virtual@3.13.6)
608
+
609
+ ##### Patch Changes
610
+
611
+ - Updated dependencies \[[`042616f`](https://redirect.github.com/TanStack/virtual/commit/042616f39ced842470db0b4b40fca77f22454b7f)]:
612
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.6
613
+
614
+ ### [`v3.13.5`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#3135)
615
+
616
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.4...@tanstack/react-virtual@3.13.5)
617
+
618
+ ##### Patch Changes
619
+
620
+ - Updated dependencies \[[`51656d9`](https://redirect.github.com/TanStack/virtual/commit/51656d94a2469a065e631f25ffc8ec0288d9f5ec)]:
621
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.5
622
+
623
+ ### [`v3.13.4`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#3134)
624
+
625
+ [Compare Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.3...@tanstack/react-virtual@3.13.4)
626
+
627
+ ##### Patch Changes
628
+
629
+ - Updated dependencies \[[`514b62d`](https://redirect.github.com/TanStack/virtual/commit/514b62d04974c2fd59fc8a68ed40f4c1a1547dd2), [`f03d814`](https://redirect.github.com/TanStack/virtual/commit/f03d8142c03ea0f5816161a4dad38ca35469841c)]:
630
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.4
631
+
632
+ ### [`v3.13.3`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#3133)
633
+
634
+ ##### Patch Changes
635
+
636
+ - Updated dependencies \[[`02ef309`](https://redirect.github.com/TanStack/virtual/commit/02ef3097de4a14ed4077ace2ca901dc411bf81c1)]:
637
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.3
638
+
639
+ ### [`v3.13.2`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31326)
640
+
641
+ ##### Patch Changes
642
+
643
+ - Updated dependencies \[[`fc992ab`](https://redirect.github.com/TanStack/virtual/commit/fc992ab00a15166311b79bd7580736cf01e8cc1a)]:
644
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.16.0
645
+
646
+ ### [`v3.13.1`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31319)
647
+
648
+ ##### Patch Changes
649
+
650
+ - Updated dependencies \[[`843109c`](https://redirect.github.com/TanStack/virtual/commit/843109c5bf780591a762f9767f3808fd15e3f94e)]:
651
+ - [@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.19
652
+
653
+ #### chore(deps): update dependency prettier to v2.8.8 ([#1499](https://github.com/grafana/scenes/pull/1499))
654
+
655
+ <details>
656
+ <summary>prettier/prettier (prettier)</summary>
657
+
658
+ ### [`v2.8.8`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#288)
659
+
660
+ [Compare Source](https://redirect.github.com/prettier/prettier/compare/2.8.7...2.8.8)
661
+
662
+ This version is a republished version of v2.8.7.
663
+ A bad version was accidentally published and [it can't be unpublished](https://redirect.github.com/npm/cli/issues/1686), apologies for the churn.
664
+
665
+ ### [`v2.8.7`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#287)
666
+
667
+ [Compare Source](https://redirect.github.com/prettier/prettier/compare/2.8.6...2.8.7)
668
+
669
+ [diff](https://redirect.github.com/prettier/prettier/compare/2.8.6...2.8.7)
670
+
671
+ ##### Allow multiple decorators on same getter/setter ([#&#8203;14584](https://redirect.github.com/prettier/prettier/pull/14584) by [@&#8203;fisker](https://redirect.github.com/fisker))
672
+
673
+ <!-- prettier-ignore -->
674
+
675
+ ```ts
676
+ // Input
677
+ class A {
678
+ @&#8203;decorator()
679
+ get foo () {}
680
+
681
+ @&#8203;decorator()
682
+ set foo (value) {}
683
+ }
684
+
685
+ // Prettier 2.8.6
686
+ SyntaxError: Decorators cannot be applied to multiple get/set accessors of the same name. (5:3)
687
+ 3 | get foo () {}
688
+ 4 |
689
+ > 5 | @&#8203;decorator()
690
+ | ^^^^^^^^^^^^
691
+ 6 | set foo (value) {}
692
+ 7 | }
693
+
694
+ // Prettier 2.8.7
695
+ class A {
696
+ @&#8203;decorator()
697
+ get foo() {}
698
+
699
+ @&#8203;decorator()
700
+ set foo(value) {}
701
+ }
702
+ ```
703
+
704
+ ### [`v2.8.6`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#286)
705
+
706
+ [Compare Source](https://redirect.github.com/prettier/prettier/compare/2.8.5...2.8.6)
707
+
708
+ [diff](https://redirect.github.com/prettier/prettier/compare/2.8.5...2.8.6)
709
+
710
+ ##### Allow decorators on private members and class expressions ([#&#8203;14548](https://redirect.github.com/prettier/prettier/pull/14548) by [@&#8203;fisker](https://redirect.github.com/fisker))
711
+
712
+ <!-- prettier-ignore -->
713
+
714
+ ```ts
715
+ // Input
716
+ class A {
717
+ @&#8203;decorator()
718
+ #privateMethod () {}
719
+ }
720
+
721
+ // Prettier 2.8.5
722
+ SyntaxError: Decorators are not valid here. (2:3)
723
+ 1 | class A {
724
+ > 2 | @&#8203;decorator()
725
+ | ^^^^^^^^^^^^
726
+ 3 | #privateMethod () {}
727
+ 4 | }
728
+
729
+ // Prettier 2.8.6
730
+ class A {
731
+ @&#8203;decorator()
732
+ #privateMethod() {}
733
+ }
734
+ ```
735
+
736
+ ### [`v2.8.5`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#285)
737
+
738
+ [Compare Source](https://redirect.github.com/prettier/prettier/compare/2.8.4...2.8.5)
739
+
740
+ [diff](https://redirect.github.com/prettier/prettier/compare/2.8.4...2.8.5)
741
+
742
+ ##### Support TypeScript 5.0 ([#&#8203;14391](https://redirect.github.com/prettier/prettier/pull/14391) by [@&#8203;fisker](https://redirect.github.com/fisker), [#&#8203;13819](https://redirect.github.com/prettier/prettier/pull/13819) by [@&#8203;fisker](https://redirect.github.com/fisker), [@&#8203;sosukesuzuki](https://redirect.github.com/sosukesuzuki))
743
+
744
+ TypeScript 5.0 introduces two new syntactic features:
745
+
746
+ - `const` modifiers for type parameters
747
+ - `export type *` declarations
748
+
749
+ ##### Add missing parentheses for decorator ([#&#8203;14393](https://redirect.github.com/prettier/prettier/pull/14393) by [@&#8203;fisker](https://redirect.github.com/fisker))
750
+
751
+ <!-- prettier-ignore -->
752
+
753
+ ```jsx
754
+ // Input
755
+ class Person {
756
+ @&#8203;(myDecoratorArray[0])
757
+ greet() {}
758
+ }
759
+
760
+ // Prettier 2.8.4
761
+ class Person {
762
+ @&#8203;myDecoratorArray[0]
763
+ greet() {}
764
+ }
765
+
766
+ // Prettier 2.8.5
767
+ class Person {
768
+ @&#8203;(myDecoratorArray[0])
769
+ greet() {}
770
+ }
771
+ ```
772
+
773
+ ##### Add parentheses for `TypeofTypeAnnotation` to improve readability ([#&#8203;14458](https://redirect.github.com/prettier/prettier/pull/14458) by [@&#8203;fisker](https://redirect.github.com/fisker))
774
+
775
+ <!-- prettier-ignore -->
776
+
777
+ ```tsx
778
+ // Input
779
+ type A = (typeof node.children)[];
780
+
781
+ // Prettier 2.8.4
782
+ type A = typeof node.children[];
783
+
784
+ // Prettier 2.8.5
785
+ type A = (typeof node.children)[];
786
+ ```
787
+
788
+ ##### Support `max_line_length=off` when parsing `.editorconfig` ([#&#8203;14516](https://redirect.github.com/prettier/prettier/pull/14516) by [@&#8203;josephfrazier](https://redirect.github.com/josephfrazier))
789
+
790
+ If an .editorconfig file is in your project and it sets `max_line_length=off` for the file you're formatting,
791
+ it will be interpreted as a `printWidth` of `Infinity` rather than being ignored
792
+ (which previously resulted in the default `printWidth` of 80 being applied, if not overridden by Prettier-specific configuration).
793
+
794
+ <!-- prettier-ignore -->
795
+
796
+ ```html
797
+ <!-- Input -->
798
+ <div className='HelloWorld' title={`You are visitor number ${ num }`} onMouseOver={onMouseOver}/>
799
+
800
+ <!-- Prettier 2.8.4 -->
801
+ <div
802
+ className="HelloWorld"
803
+ title={`You are visitor number ${num}`}
804
+ onMouseOver={onMouseOver}
805
+ />;
806
+
807
+ <!-- Prettier 2.8.5 -->
808
+ <div className="HelloWorld" title={`You are visitor number ${num}`} onMouseOver={onMouseOver} />;
809
+ ```
810
+
811
+ ### [`v2.8.4`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#284)
812
+
813
+ [Compare Source](https://redirect.github.com/prettier/prettier/compare/2.8.3...2.8.4)
814
+
815
+ [diff](https://redirect.github.com/prettier/prettier/compare/2.8.3...2.8.4)
816
+
817
+ ##### Fix leading comments in mapped types with `readonly` ([#&#8203;13427](https://redirect.github.com/prettier/prettier/pull/13427) by [@&#8203;thorn0](https://redirect.github.com/thorn0), [@&#8203;sosukesuzuki](https://redirect.github.com/sosukesuzuki))
818
+
819
+ <!-- prettier-ignore -->
820
+
821
+ ```tsx
822
+ // Input
823
+ type Type = {
824
+ // comment
825
+ readonly [key in Foo];
826
+ };
827
+
828
+ // Prettier 2.8.3
829
+ type Type = {
830
+ readonly // comment
831
+ [key in Foo];
832
+ };
833
+
834
+ // Prettier 2.8.4
835
+ type Type = {
836
+ // comment
837
+ readonly [key in Foo];
838
+ };
839
+ ```
840
+
841
+ ##### Group params in opening block statements ([#&#8203;14067](https://redirect.github.com/prettier/prettier/pull/14067) by [@&#8203;jamescdavis](https://redirect.github.com/jamescdavis))
842
+
843
+ This is a follow-up to [#&#8203;13930](https://redirect.github.com/prettier/prettier/issues/13930) to establish wrapping consistency between opening block statements and else blocks by
844
+ grouping params in opening blocks. This causes params to break to a new line together and not be split across lines
845
+ unless the length of params exceeds the print width. This also updates the else block wrapping to behave exactly the
846
+ same as opening blocks.
847
+
848
+ <!-- prettier-ignore -->
849
+
850
+ ```hbs
851
+ {{! Input }}
852
+ {{#block param param param param param param param param param param as |blockParam|}}
853
+ Hello
854
+ {{else block param param param param param param param param param param as |blockParam|}}
855
+ There
856
+ {{/block}}
857
+
858
+ {{! Prettier 2.8.3 }}
859
+ {{#block
860
+ param
861
+ param
862
+ param
863
+ param
864
+ param
865
+ param
866
+ param
867
+ param
868
+ param
869
+ param
870
+ as |blockParam|
871
+ }}
872
+ Hello
873
+ {{else block param
874
+ param
875
+ param
876
+ param
877
+ param
878
+ param
879
+ param
880
+ param
881
+ param
882
+ param}}
883
+ There
884
+ {{/block}}
885
+
886
+ {{! Prettier 2.8.4 }}
887
+ {{#block
888
+ param param param param param param param param param param
889
+ as |blockParam|
890
+ }}
891
+ Hello
892
+ {{else block
893
+ param param param param param param param param param param
894
+ as |blockParam|
895
+ }}
896
+ There
897
+ {{/block}}
898
+ ```
899
+
900
+ ##### Ignore files in `.sl/` ([#&#8203;14206](https://redirect.github.com/prettier/prettier/pull/14206) by [@&#8203;bolinfest](https://redirect.github.com/bolinfest))
901
+
902
+ In [Sapling SCM](https://sapling-scm.com/), `.sl/` is the folder where it stores its state, analogous to `.git/` in Git. It should be ignored in Prettier like the other SCM folders.
903
+
904
+ ##### Recognize `@satisfies` in Closure-style type casts ([#&#8203;14262](https://redirect.github.com/prettier/prettier/pull/14262) by [@&#8203;fisker](https://redirect.github.com/fisker))
905
+
906
+ <!-- prettier-ignore -->
907
+
908
+ ```jsx
909
+ // Input
910
+ const a = /** @&#8203;satisfies {Record<string, string>} */ ({hello: 1337});
911
+ const b = /** @&#8203;type {Record<string, string>} */ ({hello: 1337});
912
+
913
+ // Prettier 2.8.3
914
+ const a = /** @&#8203;satisfies {Record<string, string>} */ { hello: 1337 };
915
+ const b = /** @&#8203;type {Record<string, string>} */ ({ hello: 1337 });
916
+
917
+ // Prettier 2.8.4
918
+ const a = /** @&#8203;satisfies {Record<string, string>} */ ({hello: 1337});
919
+ const b = /** @&#8203;type {Record<string, string>} */ ({hello: 1337});
920
+ ```
921
+
922
+ ##### Fix parens in inferred function return types with `extends` ([#&#8203;14279](https://redirect.github.com/prettier/prettier/pull/14279) by [@&#8203;fisker](https://redirect.github.com/fisker))
923
+
924
+ <!-- prettier-ignore -->
925
+
926
+ ```ts
927
+ // Input
928
+ type Foo<T> = T extends ((a) => a is infer R extends string) ? R : never;
929
+
930
+ // Prettier 2.8.3 (First format)
931
+ type Foo<T> = T extends (a) => a is infer R extends string ? R : never;
932
+
933
+ // Prettier 2.8.3 (Second format)
934
+ SyntaxError: '?' expected.
935
+
936
+ // Prettier 2.8.4
937
+ type Foo<T> = T extends ((a) => a is infer R extends string) ? R : never;
938
+ ```
939
+
940
+ ### [`v2.8.3`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#283)
941
+
942
+ [Compare Source](https://redirect.github.com/prettier/prettier/compare/2.8.2...2.8.3)
943
+
944
+ [diff](https://redirect.github.com/prettier/prettier/compare/2.8.2...2.8.3)
945
+
946
+ ##### Allow self-closing tags on custom elements ([#&#8203;14170](https://redirect.github.com/prettier/prettier/pull/14170) by [@&#8203;fisker](https://redirect.github.com/fisker))
947
+
948
+ See [Angular v15.1.0 release note](https://redirect.github.com/angular/angular/releases/tag/15.1.0) for details.
949
+
950
+ <!-- prettier-ignore -->
951
+
952
+ ```html
953
+ // Input
954
+ <app-test/>
955
+
956
+ // Prettier 2.8.2
957
+ SyntaxError: Only void and foreign elements can be self closed "app-test" (1:1)
958
+ > 1 | <app-test/>
959
+ | ^^^^^^^^^
960
+ 2 |
961
+
962
+ // Prettier 2.8.3
963
+ <app-test />
964
+ ```
965
+
966
+ ### [`v2.8.2`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#282)
967
+
968
+ [Compare Source](https://redirect.github.com/prettier/prettier/compare/2.8.1...2.8.2)
969
+
970
+ [diff](https://redirect.github.com/prettier/prettier/compare/2.8.1...2.8.2)
971
+
972
+ ##### Don't lowercase link references ([#&#8203;13155](https://redirect.github.com/prettier/prettier/pull/13155) by [@&#8203;DerekNonGeneric](https://redirect.github.com/DerekNonGeneric) & [@&#8203;fisker](https://redirect.github.com/fisker))
973
+
974
+ <!-- prettier-ignore -->
975
+
976
+ ```markdown
977
+ <!-- Input -->
978
+ We now don't strictly follow the release notes format suggested by [Keep a Changelog].
979
+
980
+ [Keep a Changelog]: https://example.com/
981
+
982
+ <!-- Prettier 2.8.1 -->
983
+ We now don't strictly follow the release notes format suggested by [Keep a Changelog].
984
+
985
+ [keep a changelog]: https://example.com/
986
+ <!--
987
+ ^^^^^^^^^^^^^^^^^^ lowercased
988
+ -->
989
+
990
+ <!-- Prettier 2.8.2 -->
991
+ <Same as input>
992
+ ```
993
+
994
+ ##### Preserve self-closing tags ([#&#8203;13691](https://redirect.github.com/prettier/prettier/pull/13691) by [@&#8203;dcyriller](https://redirect.github.com/dcyriller))
995
+
996
+ <!-- prettier-ignore -->
997
+
998
+ ```hbs
999
+ {{! Input }}
1000
+ <div />
1001
+ <div></div>
1002
+ <custom-component />
1003
+ <custom-component></custom-component>
1004
+ <i />
1005
+ <i></i>
1006
+ <Component />
1007
+ <Component></Component>
1008
+
1009
+ {{! Prettier 2.8.1 }}
1010
+ <div></div>
1011
+ <div></div>
1012
+ <custom-component></custom-component>
1013
+ <custom-component></custom-component>
1014
+ <i></i>
1015
+ <i></i>
1016
+ <Component />
1017
+ <Component />
1018
+
1019
+ {{! Prettier 2.8.2 }}
1020
+ <div />
1021
+ <div></div>
1022
+ <custom-component />
1023
+ <custom-component></custom-component>
1024
+ <i />
1025
+ <i></i>
1026
+ <Component />
1027
+ <Component />
1028
+ ```
1029
+
1030
+ ##### Allow custom "else if"-like blocks with block params ([#&#8203;13930](https://redirect.github.com/prettier/prettier/pull/13930) by [@&#8203;jamescdavis](https://redirect.github.com/jamescdavis))
1031
+
1032
+ [#&#8203;13507](https://redirect.github.com/prettier/prettier/issues/13507) added support for custom block keywords used with `else`, but failed to allow block params. This updates printer-glimmer to allow block params with custom "else if"-like blocks.
1033
+
1034
+ <!-- prettier-ignore -->
1035
+
1036
+ ```hbs
1037
+ {{! Input }}
1038
+ {{#when isAtWork as |work|}}
1039
+ Ship that
1040
+ {{work}}!
1041
+ {{else when isReading as |book|}}
1042
+ You can finish
1043
+ {{book}}
1044
+ eventually...
1045
+ {{else}}
1046
+ Go to bed!
1047
+ {{/when}}
1048
+
1049
+ {{! Prettier 2.8.1 }}
1050
+ {{#when isAtWork as |work|}}
1051
+ Ship that
1052
+ {{work}}!
1053
+ {{else when isReading}}
1054
+ You can finish
1055
+ {{book}}
1056
+ eventually...
1057
+ {{else}}
1058
+ Go to bed!
1059
+ {{/when}}
1060
+
1061
+ {{! Prettier 2.8.2 }}
1062
+ {{#when isAtWork as |work|}}
1063
+ Ship that
1064
+ {{work}}!
1065
+ {{else when isReading as |book|}}
1066
+ You can finish
1067
+ {{book}}
1068
+ eventually...
1069
+ {{else}}
1070
+ Go to bed!
1071
+ {{/when}}
1072
+ ```
1073
+
1074
+ ##### Preserve empty lines between nested SCSS maps ([#&#8203;13931](https://redirect.github.com/prettier/prettier/pull/13931) by [@&#8203;jneander](https://redirect.github.com/jneander))
1075
+
1076
+ <!-- prettier-ignore -->
1077
+
1078
+ ```scss
1079
+ /* Input */
1080
+ $map: (
1081
+ 'one': (
1082
+ 'key': 'value',
1083
+ ),
1084
+
1085
+ 'two': (
1086
+ 'key': 'value',
1087
+ ),
1088
+ )
1089
+
1090
+ /* Prettier 2.8.1 */
1091
+ $map: (
1092
+ 'one': (
1093
+ 'key': 'value',
1094
+ ),
1095
+ 'two': (
1096
+ 'key': 'value',
1097
+ ),
1098
+ )
1099
+
1100
+ /* Prettier 2.8.2 */
1101
+ $map: (
1102
+ 'one': (
1103
+ 'key': 'value',
1104
+ ),
1105
+
1106
+ 'two': (
1107
+ 'key': 'value',
1108
+ ),
1109
+ )
1110
+ ```
1111
+
1112
+ ##### Fix missing parentheses when an expression statement starts with `let[` ([#&#8203;14000](https://redirect.github.com/prettier/prettier/pull/14000), [#&#8203;14044](https://redirect.github.com/prettier/prettier/pull/14044) by [@&#8203;fisker](https://redirect.github.com/fisker), [@&#8203;thorn0](https://redirect.github.com/thorn0))
1113
+
1114
+ <!-- prettier-ignore -->
1115
+
1116
+ ```jsx
1117
+ // Input
1118
+ (let[0] = 2);
1119
+
1120
+ // Prettier 2.8.1
1121
+ let[0] = 2;
1122
+
1123
+ // Prettier 2.8.1 (second format)
1124
+ SyntaxError: Unexpected token (1:5)
1125
+ > 1 | let[0] = 2;
1126
+ | ^
1127
+ 2 |
1128
+
1129
+ // Prettier 2.8.2
1130
+ (let)[0] = 2;
1131
+ ```
1132
+
1133
+ ##### Fix semicolon duplicated at the end of LESS file ([#&#8203;14007](https://redirect.github.com/prettier/prettier/pull/14007) by [@&#8203;mvorisek](https://redirect.github.com/mvorisek))
1134
+
1135
+ <!-- prettier-ignore -->
1136
+
1137
+ ```less
1138
+ // Input
1139
+ @&#8203;variable: {
1140
+ field: something;
1141
+ };
1142
+
1143
+ // Prettier 2.8.1
1144
+ @&#8203;variable: {
1145
+ field: something;
1146
+ }; ;
1147
+
1148
+ // Prettier 2.8.2
1149
+ @&#8203;variable: {
1150
+ field: something;
1151
+ };
1152
+ ```
1153
+
1154
+ ##### Fix no space after unary minus when followed by opening parenthesis in LESS ([#&#8203;14008](https://redirect.github.com/prettier/prettier/pull/14008) by [@&#8203;mvorisek](https://redirect.github.com/mvorisek))
1155
+
1156
+ <!-- prettier-ignore -->
1157
+
1158
+ ```less
1159
+ // Input
1160
+ .unary_minus_single {
1161
+ margin: -(@&#8203;a);
1162
+ }
1163
+
1164
+ .unary_minus_multi {
1165
+ margin: 0 -(@&#8203;a);
1166
+ }
1167
+
1168
+ .binary_minus {
1169
+ margin: 0 - (@&#8203;a);
1170
+ }
1171
+
1172
+ // Prettier 2.8.1
1173
+ .unary_minus_single {
1174
+ margin: - (@&#8203;a);
1175
+ }
1176
+
1177
+ .unary_minus_multi {
1178
+ margin: 0 - (@&#8203;a);
1179
+ }
1180
+
1181
+ .binary_minus {
1182
+ margin: 0 - (@&#8203;a);
1183
+ }
1184
+
1185
+ // Prettier 2.8.2
1186
+ .unary_minus_single {
1187
+ margin: -(@&#8203;a);
1188
+ }
1189
+
1190
+ .unary_minus_multi {
1191
+ margin: 0 -(@&#8203;a);
1192
+ }
1193
+
1194
+ .binary_minus {
1195
+ margin: 0 - (@&#8203;a);
1196
+ }
1197
+ ```
1198
+
1199
+ ##### Do not change case of property name if inside a variable declaration in LESS ([#&#8203;14034](https://redirect.github.com/prettier/prettier/pull/14034) by [@&#8203;mvorisek](https://redirect.github.com/mvorisek))
1200
+
1201
+ <!-- prettier-ignore -->
1202
+
1203
+ ```less
1204
+ // Input
1205
+ @&#8203;var: {
1206
+ preserveCase: 0;
1207
+ };
1208
+
1209
+ // Prettier 2.8.1
1210
+ @&#8203;var: {
1211
+ preservecase: 0;
1212
+ };
1213
+
1214
+ // Prettier 2.8.2
1215
+ @&#8203;var: {
1216
+ preserveCase: 0;
1217
+ };
1218
+ ```
1219
+
1220
+ ##### Fix formatting for auto-accessors with comments ([#&#8203;14038](https://redirect.github.com/prettier/prettier/pull/14038) by [@&#8203;fisker](https://redirect.github.com/fisker))
1221
+
1222
+ <!-- prettier-ignore -->
1223
+
1224
+ ```jsx
1225
+ // Input
1226
+ class A {
1227
+ @&#8203;dec()
1228
+ // comment
1229
+ accessor b;
1230
+ }
1231
+
1232
+ // Prettier 2.8.1
1233
+ class A {
1234
+ @&#8203;dec()
1235
+ accessor // comment
1236
+ b;
1237
+ }
1238
+
1239
+ // Prettier 2.8.1 (second format)
1240
+ class A {
1241
+ @&#8203;dec()
1242
+ accessor; // comment
1243
+ b;
1244
+ }
1245
+
1246
+ // Prettier 2.8.2
1247
+ class A {
1248
+ @&#8203;dec()
1249
+ // comment
1250
+ accessor b;
1251
+ }
1252
+ ```
1253
+
1254
+ ##### Add parentheses for TSTypeQuery to improve readability ([#&#8203;14042](https://redirect.github.com/prettier/prettier/pull/14042) by [@&#8203;onishi-kohei](https://redirect.github.com/onishi-kohei))
1255
+
1256
+ <!-- prettier-ignore -->
1257
+
1258
+ ```tsx
1259
+ // Input
1260
+ a as (typeof node.children)[number]
1261
+ a as (typeof node.children)[]
1262
+ a as ((typeof node.children)[number])[]
1263
+
1264
+ // Prettier 2.8.1
1265
+ a as typeof node.children[number];
1266
+ a as typeof node.children[];
1267
+ a as typeof node.children[number][];
1268
+
1269
+ // Prettier 2.8.2
1270
+ a as (typeof node.children)[number];
1271
+ a as (typeof node.children)[];
1272
+ a as (typeof node.children)[number][];
1273
+ ```
1274
+
1275
+ ##### Fix displacing of comments in default switch case ([#&#8203;14047](https://redirect.github.com/prettier/prettier/pull/14047) by [@&#8203;thorn0](https://redirect.github.com/thorn0))
1276
+
1277
+ It was a regression in Prettier 2.6.0.
1278
+
1279
+ <!-- prettier-ignore -->
1280
+
1281
+ ```jsx
1282
+ // Input
1283
+ switch (state) {
1284
+ default:
1285
+ result = state; // no change
1286
+ break;
1287
+ }
1288
+
1289
+ // Prettier 2.8.1
1290
+ switch (state) {
1291
+ default: // no change
1292
+ result = state;
1293
+ break;
1294
+ }
1295
+
1296
+ // Prettier 2.8.2
1297
+ switch (state) {
1298
+ default:
1299
+ result = state; // no change
1300
+ break;
1301
+ }
1302
+ ```
1303
+
1304
+ ##### Support type annotations on auto accessors via `babel-ts` ([#&#8203;14049](https://redirect.github.com/prettier/prettier/pull/14049) by [@&#8203;sosukesuzuki](https://redirect.github.com/sosukesuzuki))
1305
+
1306
+ [The bug that `@babel/parser` cannot parse auto accessors with type annotations](https://redirect.github.com/babel/babel/issues/15205) has been fixed. So we now support it via `babel-ts` parser.
1307
+
1308
+ <!-- prettier-ignore -->
1309
+
1310
+ ```tsx
1311
+ class Foo {
1312
+ accessor prop: number;
1313
+ }
1314
+ ```
1315
+
1316
+ ##### Fix formatting of empty type parameters ([#&#8203;14073](https://redirect.github.com/prettier/prettier/pull/14073) by [@&#8203;fisker](https://redirect.github.com/fisker))
1317
+
1318
+ <!-- prettier-ignore -->
1319
+
1320
+ ```jsx
1321
+ // Input
1322
+ const foo: bar</* comment */> = () => baz;
1323
+
1324
+ // Prettier 2.8.1
1325
+ Error: Comment "comment" was not printed. Please report this error!
1326
+
1327
+ // Prettier 2.8.2
1328
+ const foo: bar</* comment */> = () => baz;
1329
+ ```
1330
+
1331
+ ##### Add parentheses to head of `ExpressionStatement` instead of the whole statement ([#&#8203;14077](https://redirect.github.com/prettier/prettier/pull/14077) by [@&#8203;fisker](https://redirect.github.com/fisker))
1332
+
1333
+ <!-- prettier-ignore -->
1334
+
1335
+ ```jsx
1336
+ // Input
1337
+ ({}).toString.call(foo) === "[object Array]"
1338
+ ? foo.forEach(iterateArray)
1339
+ : iterateObject(foo);
1340
+
1341
+ // Prettier 2.8.1
1342
+ ({}.toString.call(foo) === "[object Array]"
1343
+ ? foo.forEach(iterateArray)
1344
+ : iterateObject(foo));
1345
+
1346
+ // Prettier 2.8.2
1347
+ ({}).toString.call(foo.forEach) === "[object Array]"
1348
+ ? foo.forEach(iterateArray)
1349
+ : iterateObject(foo);
1350
+ ```
1351
+
1352
+ ##### Fix comments after directive ([#&#8203;14081](https://redirect.github.com/prettier/prettier/pull/14081) by [@&#8203;fisker](https://redirect.github.com/fisker))
1353
+
1354
+ <!-- prettier-ignore -->
1355
+
1356
+ ```jsx
1357
+ // Input
1358
+ "use strict" /* comment */;
1359
+
1360
+ // Prettier 2.8.1 (with other js parsers except `babel`)
1361
+ Error: Comment "comment" was not printed. Please report this error!
1362
+
1363
+ // Prettier 2.8.2
1364
+ <Same as input>
1365
+ ```
1366
+
1367
+ ##### Fix formatting for comments inside JSX attribute ([#&#8203;14082](https://redirect.github.com/prettier/prettier/pull/14082) by [@&#8203;fisker](https://redirect.github.com/fisker))
1368
+
1369
+ <!-- prettier-ignore -->
1370
+
1371
+ ```jsx
1372
+ // Input
1373
+ function MyFunctionComponent() {
1374
+ <button label=/*old*/"new">button</button>
1375
+ }
1376
+
1377
+ // Prettier 2.8.1
1378
+ Error: Comment "old" was not printed. Please report this error!
1379
+
1380
+ // Prettier 2.8.2
1381
+ function MyFunctionComponent() {
1382
+ <button label=/*old*/ "new">button</button>;
1383
+ }
1384
+ ```
1385
+
1386
+ ##### Quote numeric keys for json-stringify parser ([#&#8203;14083](https://redirect.github.com/prettier/prettier/pull/14083) by [@&#8203;fisker](https://redirect.github.com/fisker))
1387
+
1388
+ <!-- prettier-ignore -->
1389
+
1390
+ ```jsx
1391
+ // Input
1392
+ {0: 'value'}
1393
+
1394
+ // Prettier 2.8.1
1395
+ {
1396
+ 0: "value"
1397
+ }
1398
+
1399
+ // Prettier 2.8.2
1400
+ {
1401
+ "0": "value"
1402
+ }
1403
+ ```
1404
+
1405
+ ##### Fix removing commas from function arguments in maps ([#&#8203;14089](https://redirect.github.com/prettier/prettier/pull/14089) by [@&#8203;sosukesuzuki](https://redirect.github.com/sosukesuzuki))
1406
+
1407
+ <!-- prettier-ignore -->
1408
+
1409
+ ```scss
1410
+ /* Input */
1411
+ $foo: map-fn(
1412
+ (
1413
+ "#{prop}": inner-fn($first, $second),
1414
+ )
1415
+ );
1416
+
1417
+ /* Prettier 2.8.1 */
1418
+ $foo: map-fn(("#{prop}": inner-fn($first $second)));
1419
+
1420
+ /* Prettier 2.8.2 */
1421
+ $foo: map-fn(
1422
+ (
1423
+ "#{prop}": inner-fn($first, $second),
1424
+ )
1425
+ );
1426
+
1427
+ ```
1428
+
1429
+ ##### Do not insert space in LESS property access ([#&#8203;14103](https://redirect.github.com/prettier/prettier/pull/14103) by [@&#8203;fisker](https://redirect.github.com/fisker))
1430
+
1431
+ <!-- prettier-ignore -->
1432
+
1433
+ ```less
1434
+ // Input
1435
+ a {
1436
+ color: @&#8203;colors[@&#8203;white];
1437
+ }
1438
+
1439
+ // Prettier 2.8.1
1440
+ a {
1441
+ color: @&#8203;colors[ @&#8203;white];
1442
+ }
1443
+
1444
+ // Prettier 2.8.2
1445
+ <Same as input>
1446
+ ```
1447
+
1448
+ ### [`v2.8.1`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#281)
1449
+
1450
+ [Compare Source](https://redirect.github.com/prettier/prettier/compare/2.8.0...2.8.1)
1451
+
1452
+ [diff](https://redirect.github.com/prettier/prettier/compare/2.8.0...2.8.1)
1453
+
1454
+ ##### Fix SCSS map in arguments ([#&#8203;9184](https://redirect.github.com/prettier/prettier/pull/9184) by [@&#8203;agamkrbit](https://redirect.github.com/agamkrbit))
1455
+
1456
+ <!-- prettier-ignore -->
1457
+
1458
+ ```scss
1459
+ // Input
1460
+ $display-breakpoints: map-deep-merge(
1461
+ (
1462
+ "print-only": "only print",
1463
+ "screen-only": "only screen",
1464
+ "xs-only": "only screen and (max-width: #{map-get($grid-breakpoints, "sm")-1})",
1465
+ ),
1466
+ $display-breakpoints
1467
+ );
1468
+
1469
+ // Prettier 2.8.0
1470
+ $display-breakpoints: map-deep-merge(
1471
+ (
1472
+ "print-only": "only print",
1473
+ "screen-only": "only screen",
1474
+ "xs-only": "only screen and (max-width: #{map-get($grid-breakpoints, " sm
1475
+ ")-1})",
1476
+ ),
1477
+ $display-breakpoints
1478
+ );
1479
+
1480
+ // Prettier 2.8.1
1481
+ $display-breakpoints: map-deep-merge(
1482
+ (
1483
+ "print-only": "only print",
1484
+ "screen-only": "only screen",
1485
+ "xs-only": "only screen and (max-width: #{map-get($grid-breakpoints, "sm")-1})",
1486
+ ),
1487
+ $display-breakpoints
1488
+ );
1489
+ ```
1490
+
1491
+ ##### Support auto accessors syntax ([#&#8203;13919](https://redirect.github.com/prettier/prettier/pull/13919) by [@&#8203;sosukesuzuki](https://redirect.github.com/sosukesuzuki))
1492
+
1493
+ Support for [Auto Accessors Syntax](https://devblogs.microsoft.com/typescript/announcing-typescript-4-9/#auto-accessors-in-classes) landed in TypeScript 4.9.
1494
+
1495
+ (Doesn't work well with `babel-ts` parser)
1496
+
1497
+ <!-- prettier-ignore -->
1498
+
1499
+ ```tsx
1500
+ class Foo {
1501
+ accessor foo: number = 3;
1502
+ }
1503
+ ```
1504
+
1505
+ ### [`v2.8.0`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#280)
1506
+
1507
+ [Compare Source](https://redirect.github.com/prettier/prettier/compare/2.7.1...2.8.0)
1508
+
1509
+ [diff](https://redirect.github.com/prettier/prettier/compare/2.7.1...2.8.0)
1510
+
1511
+ 🔗 [Release Notes](https://prettier.io/blog/2022/11/23/2.8.0.html)
1512
+
1513
+ ### [`v2.7.1`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#271)
1514
+
1515
+ [Compare Source](https://redirect.github.com/prettier/prettier/compare/2.7.0...2.7.1)
1516
+
1517
+ [diff](https://redirect.github.com/prettier/prettier/compare/2.7.0...2.7.1)
1518
+
1519
+ ##### Keep useful empty lines in description ([#&#8203;13013](https://redirect.github.com/prettier/prettier/pull/13013) by [@&#8203;chimurai](https://redirect.github.com/chimurai))
1520
+
1521
+ <!-- prettier-ignore -->
1522
+
1523
+ ```graphql
1524
+
1525
+ #### chore(deps): update grafana monorepo ([#1475](https://github.com/grafana/scenes/pull/1475))
1526
+
1527
+ <details>
1528
+ <summary>grafana/grafana (@&#8203;grafana/data)</summary>
1529
+
1530
+ #### chore(deps): update dependency rxjs to v7.8.2 ([#1474](https://github.com/grafana/scenes/pull/1474))
1531
+
1532
+ <details>
1533
+ <summary>reactivex/rxjs (rxjs)</summary>
1534
+
1535
+ #### chore(deps): update dependency i18next-parser to v9.4.0 ([#1497](https://github.com/grafana/scenes/pull/1497))
1536
+
1537
+ <details>
1538
+ <summary>i18next/i18next-parser (i18next-parser)</summary>
1539
+
1540
+ ---
1541
+
1542
+ #### 🚀 Enhancement
1543
+
1544
+ - Variables: Fixes multi value select mobile issue [#1526](https://github.com/grafana/scenes/pull/1526) ([@torkelo](https://github.com/torkelo))
1545
+
1546
+ #### 🐛 Bug Fix
1547
+
1548
+ - Filters: Key fetching waits for other vars to load first [#1460](https://github.com/grafana/scenes/pull/1460) ([@mdvictor](https://github.com/mdvictor))
1549
+ - chore(deps): update dependency rimraf to v6 [#1534](https://github.com/grafana/scenes/pull/1534) ([@renovate-sh-app[bot]](https://github.com/renovate-sh-app[bot]))
1550
+ - Bump version to: v8.4.0 \[skip ci\] ([@grafanabot](https://github.com/grafanabot))
1551
+ - Update CHANGELOG.md \[skip ci\] ([@grafanabot](https://github.com/grafanabot))
1552
+ - test: move transformation variable tests from @grafana/data [#1542](https://github.com/grafana/scenes/pull/1542) ([@hugohaggmark](https://github.com/hugohaggmark))
1553
+ - I18n: Download translations from Crowdin [#1320](https://github.com/grafana/scenes/pull/1320) ([@github-actions[bot]](https://github.com/github-actions[bot]) [@grafana-pr-automation[bot]](https://github.com/grafana-pr-automation[bot]))
1554
+ - chore: run prettier on main [#1539](https://github.com/grafana/scenes/pull/1539) ([@gtk-grafana](https://github.com/gtk-grafana))
1555
+ - Bump version to: v8.3.0 \[skip ci\] ([@grafanabot](https://github.com/grafanabot))
1556
+ - chore(deps): update dependency react-router-dom to v6.30.4 [#1521](https://github.com/grafana/scenes/pull/1521) ([@renovate-sh-app[bot]](https://github.com/renovate-sh-app[bot]))
1557
+ - fix(deps): update emotion monorepo [#1511](https://github.com/grafana/scenes/pull/1511) ([@renovate-sh-app[bot]](https://github.com/renovate-sh-app[bot]) [@mdvictor](https://github.com/mdvictor))
1558
+ - fix(deps): update dependency @floating-ui/react to ^0.27.0 [#1509](https://github.com/grafana/scenes/pull/1509) ([@renovate-sh-app[bot]](https://github.com/renovate-sh-app[bot]))
1559
+ - fix(deps): update react monorepo [#1512](https://github.com/grafana/scenes/pull/1512) ([@renovate-sh-app[bot]](https://github.com/renovate-sh-app[bot]))
1560
+ - chore(deps): update jest monorepo [#1506](https://github.com/grafana/scenes/pull/1506) ([@renovate-sh-app[bot]](https://github.com/renovate-sh-app[bot]))
1561
+ - chore(deps): update dependency @tanstack/react-virtual to v3.13.26 [#1491](https://github.com/grafana/scenes/pull/1491) ([@renovate-sh-app[bot]](https://github.com/renovate-sh-app[bot]) [@mdvictor](https://github.com/mdvictor))
1562
+ - chore(deps): update dependency prettier to v2.8.8 [#1499](https://github.com/grafana/scenes/pull/1499) ([@renovate-sh-app[bot]](https://github.com/renovate-sh-app[bot]) [@mdvictor](https://github.com/mdvictor))
1563
+ - chore(deps): update grafana monorepo [#1475](https://github.com/grafana/scenes/pull/1475) ([@renovate-sh-app[bot]](https://github.com/renovate-sh-app[bot]))
1564
+ - chore(deps): update dependency rxjs to v7.8.2 [#1474](https://github.com/grafana/scenes/pull/1474) ([@renovate-sh-app[bot]](https://github.com/renovate-sh-app[bot]) [@mdvictor](https://github.com/mdvictor))
1565
+ - chore: skip unneeded translation in object [#1503](https://github.com/grafana/scenes/pull/1503) ([@mdvictor](https://github.com/mdvictor))
1566
+ - chore(deps): update dependency @types/node to v20.19.41 [#1493](https://github.com/grafana/scenes/pull/1493) ([@renovate-sh-app[bot]](https://github.com/renovate-sh-app[bot]))
1567
+ - chore(deps): update dependency i18next-parser to v9.4.0 [#1497](https://github.com/grafana/scenes/pull/1497) ([@renovate-sh-app[bot]](https://github.com/renovate-sh-app[bot]))
1568
+ - chore(deps): update dependency @types/lodash to v4.17.24 [#1492](https://github.com/grafana/scenes/pull/1492) ([@renovate-sh-app[bot]](https://github.com/renovate-sh-app[bot]))
1569
+ - chore(deps): update dependency @types/react-grid-layout to v1.3.6 [#1479](https://github.com/grafana/scenes/pull/1479) ([@renovate-sh-app[bot]](https://github.com/renovate-sh-app[bot]))
1570
+ - chore(deps): update dependency @types/react-virtualized-auto-sizer to v1.0.8 [#1472](https://github.com/grafana/scenes/pull/1472) ([@renovate-sh-app[bot]](https://github.com/renovate-sh-app[bot]))
1571
+ - chore: fix typecheck fail [#1476](https://github.com/grafana/scenes/pull/1476) ([@mdvictor](https://github.com/mdvictor))
1572
+ - security: bump uuid ^9.0.0 → ^11.0.0 (CVE-2026-41907) [#1468](https://github.com/grafana/scenes/pull/1468) ([@moxious](https://github.com/moxious))
1573
+ - Filters: Better origin filter validation [#1461](https://github.com/grafana/scenes/pull/1461) ([@mdvictor](https://github.com/mdvictor))
1574
+ - Filters: Fix broken testId attr [#1462](https://github.com/grafana/scenes/pull/1462) ([@mdvictor](https://github.com/mdvictor))
1575
+
1576
+ #### Authors: 9
1577
+
1578
+ - [@github-actions[bot]](https://github.com/github-actions[bot])
1579
+ - [@grafana-pr-automation[bot]](https://github.com/grafana-pr-automation[bot])
1580
+ - [@renovate-sh-app[bot]](https://github.com/renovate-sh-app[bot])
1581
+ - David Allen ([@moxious](https://github.com/moxious))
1582
+ - Galen Kistler ([@gtk-grafana](https://github.com/gtk-grafana))
1583
+ - Grot (@grafanabot) ([@grafanabot](https://github.com/grafanabot))
1584
+ - Hugo Häggmark ([@hugohaggmark](https://github.com/hugohaggmark))
1585
+ - Torkel Ödegaard ([@torkelo](https://github.com/torkelo))
1586
+ - Victor Marin ([@mdvictor](https://github.com/mdvictor))
1587
+
1588
+ ---
1589
+
1
1590
  # v8.4.0 (Fri Jun 12 2026)
2
1591
 
3
1592
  ### Release Notes