v16.4.6
[!NOTE] This release is backporting bug fixes. It does not include all pending features/changes on canary.
- [lts-active] Pin Tailwind to 4.3.3 in create-next-app and tests (#101061, #101176) (#101307)
- [lts-active] Automatically compress route handler responses if not already compressed (#101280)
- [lts-active] Turbopack GC fixes for dev (#100279, #100370) (#101308)
Huge thanks to @lukesandberg and @eps1lon for helping!
v4.3.3
[!WARNING] We live in the era of big tech companies buying out OSS project maintainers left and right. Vuetify stays independent as long as community keeps the funds flowing to the OpenCollective. Our team is putting hundreds of hours in to keep the project going:
- troubleshoot and fix top priority bugs as quickly as possible
- review incoming PRs
- deliver new features
- maintain ecosystem tools
If Vuetify is part of your stack, please consider sponsoring the project so we can continue delivering updates and fixes.
Every contribution helps us keep Vuetify alive and signals to maintainers that their work matters.
Thank you.
- VDatePicker: count range days correctly across DST in header (#23358) (e5f8d5b)
- date: correct days/weeks diff across DST and time zones (3d23fbd)
- locale: correct Hebrew pagination labels (#23371) (3fc7144)
- nested: apply value-comparator to opened (#23351) (1fd02a2)
- useHotkey: restart sequence on a key matching its first step (ae76422)
- useHotkey: holding a key should not advance a sequence (f6bfbac)
- useHotkey: ignore IME composition and modifier keydowns (887388a)
- VMessages: drop the transition delay with reduced motion (#23359) (d87d48d), closes #22165
- VOverlay: wait for root before running scroll strategy (#23364) (6db4a1b), closes #23363
- VOverlay: resolve
target="parent"when initially open (21d1f7d), closes #19311 - VSnackbar: start timer bar from correct value and animate linearly (24afd93)
- VVirtualScroll: keep measured item height when defaults change (cb913a0), closes #23366
- variant: scope over/underlay styles to direct children (#23285) (33635f9)
- prevent picking values in disabled fields and disabled/readonly forms (#23375) (4360201)
- applies to: VAutocomplete, VColorInput, VCombobox, VDateInput, VSelect, VTimeInput
- ✨ VNavigationBtn: add new component (#23369) (e708423), closes #23291
- VMap: add
centerprop (1e6c33e) - VMap: accept string values for zoom, min-zoom and max-zoom (9d7b542)
- VMap: pass reveal function to click:region (c75bb40)
- VVideo: avoid stuck loading state with eager on iOS (1e0b9b5)
- VVideo: fall back to native video fullscreen on iPhone (#23357) (6c7dc5d), closes #23354
v2.24.0
- Introduce CameraFrameEffect and convert the vignette and grading effects by @mvaligursky in #9666
- Add SMAA anti-aliasing as an opt-in CameraFrame effect by @mvaligursky in #9747
- Add auto exposure as an opt-in CameraFrame effect by @mvaligursky in #9757
- Add a lens flare effect to CameraFrame by @mvaligursky in #9734
- Add temporal upscaling to the TAA of CameraFrame by @mvaligursky in #9739
- Add a channel mixer to the CameraFrame color grading by @mvaligursky in #9939
- Add DynamicSkyEffect, a camera frame effect rendering a dynamic sky by @mvaligursky in #9765
- Add haze to DynamicSkyEffect by @mvaligursky in #9897
- Add an Editor script for the DynamicSkyEffect by @mvaligursky in #9859
- Add Sky#enabled and let the sky be hidden per camera by @mvaligursky in #9760
- Make the CameraFrameEffect pass hooks public by @mvaligursky in #9841
- Add frame passes which execute after a camera renders by @mvaligursky in #9707
- Add onBefore and onAfter callbacks to all frame passes by @mvaligursky in #9788
- Make the frame pass classes public by @mvaligursky in #9822
- Make RenderPassForward and CameraComponent#framePasses public by @mvaligursky in #9839
- Add ComputePass, which dispatches computes at a position in the frame by @mvaligursky in #9710
- Add XR view selection and before/after callbacks to ComputePass by @mvaligursky in #9722
- Add Compute#setupDispatchThreads to dispatch for a number of threads by @mvaligursky in #9733
- Add scene depth and color map access to compute shaders by @mvaligursky in #9680
- Add per-camera scene depth and color map handles by @mvaligursky in #9667
- Add the size of the scene map to its handle by @mvaligursky in #9844
- Add planar reflections to StandardMaterial by @mvaligursky in #9902
- Add a Gaussian mipmap filter, and smoother planar reflections by @mvaligursky in #9932
- Add AgX and AgX Punchy tonemapping by @mvaligursky in #9874
- Support the KHR_materials_diffuse_transmission glTF extension by @willeastcott in #9558
- Decode EXT_meshopt_compression and KHR_meshopt_compression glTF buffer views by @willeastcott in #9738
- Add clipping planes to cameras, mesh instances and render components by @willeastcott in #9755
- Add shadowBounds to fit the shadow of a directional light to a box by @mvaligursky in #9791
- Add RoundedBoxGeometry by @mvaligursky in #9849
- Render to a layer of a 2D texture array by @mvaligursky in #9689
- Create and upload volume textures on WebGPU by @mvaligursky in #9695
- Read and copy the depth slices of volume textures by @mvaligursky in #9696
- Render to the depth slices of volume textures by @mvaligursky in #9697
- Add SOG v3 loading and over-unity opacity rendering by @slimbuck in #9873
- Load SPZ version 3 files, enabling SPZ based LCC2 scenes by @mvaligursky in #9980
- Load XGRIDS LCC2 gsplat scenes by @mvaligursky in #9885
- Add SH band 4 support for PLY gaussian splats by @mvaligursky in #9796
- Add VoxelOccupancy and a gaussian splat particle blast example by @mvaligursky in #9907
- Add camera, light, shape and icon gizmos with snapping handles by @kpal81xd in #9809
- Add BoundingBoxGizmo to outline a selection's bounds with corner brackets by @kpal81xd in #9804
- Add gizmo transform readout and Blender-style rotate angle sector by @kpal81xd in #9801
- Add Grid extra and rebuild the Grid script on it by @kpal81xd in #9808
- Add letterSpacing to text elements by @mvaligursky in #9728
- Load TexturePacker and Aseprite sprite sheets as texture atlases by @willeastcott in #9923
- Add per-button mouse mapping and ground pan to CameraControls by @mvaligursky in #9944
- Add an optional screen size to CameraComponent worldToScreen and screenToWorld by @mvaligursky in #9911
- Hold the light mask and all uv sets as shader define flags by @mvaligursky in #9659
- Remove the legacy LIT_OLD_AMBIENT combine and LIT_DIFFUSE_MAP by @mvaligursky in #9681
- Deprecate the legacy post effects by @mvaligursky in #9905
- Rename inconsistent public API names behind deprecated aliases by @willeastcott in #9937
- Let a Script base class declare a null scriptName to stay unregistered by @mvaligursky in #9860
- Use setupDispatchThreads in the gsplat compute passes and the compute examples by @mvaligursky in #9735
- Filter distant waves in the water script by @mvaligursky in #9762
- Publish the debug bundles without inline sourcemaps by @willeastcott in #9882
- Convert sharpening, fringing, color enhance and color LUT to effects by @mvaligursky in #9679
- Convert bloom to an effect owning its passes and add high quality bloom by @mvaligursky in #9700
- Convert SSAO to an effect and provide the scene depth to effects by @mvaligursky in #9702
- Convert depth of field to a CameraFrame effect by @mvaligursky in #9718
- Convert volumetric fog to a CameraFrame effect by @mvaligursky in #9720
- Convert TAA to a CameraFrame effect at a new resolve stage by @mvaligursky in #9741
- Configure CameraFrame effects when the camera frame is updated by @mvaligursky in #9686
- Add the postOpaque stage and scene color grab to CameraFrame effects by @mvaligursky in #9731
- Provide the scene depth to effects running after the opaque geometry by @mvaligursky in #9732
- Hand CameraFrame effects the time of the frame by @mvaligursky in #9761
- Let CameraFrame effect scripts select their debug views by @mvaligursky in #9742
- Move each CameraFrame effect into its own folder under src/extras/effects by @mvaligursky in #9736
- Move the SMAA and volumetric fog render passes to their own files by @mvaligursky in #9828
- Improve TAA blending on bright edges and under camera motion by @mvaligursky in #9744
- Fix the TAA history drifting with the jitter and losing precision by @mvaligursky in #9737
- Default the auto exposure metering to the 10-90% band by @mvaligursky in #9764
- Replace DynamicSkyEffect clouds and cloudTechnique with cloudType by @mvaligursky in #9772
- Let other materials and the CPU evaluate the DynamicSkyEffect sky by @mvaligursky in #9889
- Scale a LensFlare by the intensity of its light by @mvaligursky in #9773
- Fade the lens flare occlusion with the application time by @mvaligursky in #9858
- Apply the CameraFrame fringing before the sharpening by @mvaligursky in #9855
- Destroy the bloom render target when FramePassBloom is destroyed while disabled by @mvaligursky in #9774
- Stream gsplat LOD levels coarsest first across the whole view by @mvaligursky in #9694
- Choose streamed gsplat LOD by walking a node hierarchy by @mvaligursky in #9883
- Fall back to CPU sorting when gsplats exceed GPU storage limits by @mvaligursky in #9854
- Stop allocating the gsplat order buffer when sorting on the GPU by @slimbuck in #9763
- Space gsplat sort keys by log distance so stray far splats keep near precision by @slimbuck in #9899
- Cull splats faded out by modifySplatColor before the GPU sort by @mvaligursky in #9962
- Apply gsplat anti-aliasing per splat, detected from the file by @mvaligursky in #9921
- Add GSplatParams#antiAliasFilterSize by @mvaligursky in #9928
- Default GSplatParams.antiAliasFilterSize to 0.1 by @mvaligursky in #9964
- Use the 3DGS 0.3 px² low-pass filter for gaussian splats by @mvaligursky in #9916
- Lower the default gsplat minContribution from 3 to 2 by @mvaligursky in #9927
- Support any number of typed blind fields in SOG v3 by @mvaligursky in #9960
- Read true gaussian splat opacity from the PLY opacity_linear property by @slimbuck in #9972
- Read Postshot's real anti-aliasing PLY comment by @slimbuck in #9971
- Document the gsplat resource classes and make their aabb read-only by @mvaligursky in #9917
- Distinct gsplat LOD debug colors and billions LOD falloff by @mvaligursky in #9673
- Rebuild gsplat work buffer render targets for runtime-added streams by @mvaligursky in #9876
- Fix GSplatBoxShaderEffect edge tint left behind after the sweep by @mvaligursky in #9758
- Skip a disabled frame pass together with its before and after passes by @mvaligursky in #9776
- Do not merge a frame pass which does not execute with its neighbour by @mvaligursky in #9784
- Run camera before-passes and render events for hand-built passes by @mvaligursky in #9780
- Keep the before-passes added to a RenderPassForward by @mvaligursky in #9781
- Render a RenderPassForward with a single camera by @mvaligursky in #9783
- CameraFrame and clustered lighting manage only their own passes by @mvaligursky in #9786
- Document frame pass ownership and flag destroyed pass reuse by @mvaligursky in #9787
- Remove the dead cubemap mipmap skip from the frame graph by @mvaligursky in #9777
- Rename FrameGraph addRenderPass and renderPasses to addPass and passes by @mvaligursky in #9835
- Add RenderPass#resizeSource and copy the resize options of init by @mvaligursky in #9830
- Add RenderPassShaderQuad#numInstances by @mvaligursky in #9832
- Set render pass clears and stores through the setters by @mvaligursky in #9829
- Resolve render pass uniforms once instead of every frame by @mvaligursky in #9833
- Reuse quad render passes in per-frame engine rendering by @mvaligursky in #9827
- Draw drawQuadWithShader with a RenderPassShaderQuad by @mvaligursky in #9825
- Use each camera's own cascade split distances for directional shadows by @mvaligursky in #9831
- Share the VSM depth warp exponents between the shadow chunks by @mvaligursky in #9866
- Shadow the volumetric fog correctly with VSM shadow maps by @mvaligursky in #9865
- Fix area light clear coat specular using the base layer's LTC matrix by @mvaligursky in #9973
- Fix clear coat strength being ignored with area lights by @mvaligursky in #9975
- Do not tone map the minimal passes of the standard material by @mvaligursky in #9645
- Let the front end of a LitMaterial provide the dispersion by @mvaligursky in #9682
- Declare the dynamic refraction resources in the lit shader by @mvaligursky in #9691
- Give material copies the textures that load after they are copied by @mvaligursky in #9717
- Fix duplicate standard material shader in depth and shadow passes by @mvaligursky in #9778
- Compile iridescence thickness maps on WebGL2, and fix WebGPU iridescence colors by @willeastcott in #9752
- Correct the inverted sheen roughness by @willeastcott in #9836
- Default a missing glTF sheen color factor to black by @willeastcott in #9852
- Honour the clearcoat and sheen gloss invert flags in the glTF exporter by @willeastcott in #9837
- Support compressed textures not aligned to the block size on WebGPU by @mvaligursky in #9708
- Fix WebGPU upload of compressed mip levels that are not a multiple of the block size by @mvaligursky in #9701
- Fix the size of compressed volume textures by @mvaligursky in #9706
- Sample only the base level for non-mipmap texture filters on WebGPU by @mvaligursky in #9709
- Update the mip count when Texture.setSource changes the size by @mvaligursky in #9821
- Render to a single face of a cubemap depth buffer on WebGPU by @mvaligursky in #9665
- Fix gizmo picking, stuck drags, scale snapping, parentless local translate and ViewCube colorNeg by @kpal81xd in #9799
- Harden gizmos: shared layers, layer setter, enabled state, theme hover, multi-touch, arc mesh leak, uniform plane scaling and picking order by @kpal81xd in #9800
- Keep the gizmo readout generic and let each gizmo place it by @kpal81xd in #9803
- Gizmo fixes for editor integration: disabled components, centered icons and flat boxes by @kpal81xd in #9817
- Gizmo fixes for far icons, picking, frustum fill, flat box corners, lines and handle redraws by @kpal81xd in #9818
- Render directional shadows once for all views in WebGPU XR by @mvaligursky in #9698
- Clear the WebGPU XR projection layer's depth to the far plane by @slimbuck in #9748
- XrNavigation and XrControllers fixes found on Apple Vision Pro by @slimbuck in #9750
- Recover the WebGPU XR projection layer when its texture can no longer be acquired by @slimbuck in #9878
- Skip a screen's touch in XrControllers, which has no model to draw by @slimbuck in #9881
- Resolve the picker's meshInstanceId scope id once, not per draw by @mvaligursky in #9657
- Sort opaque draw calls and shadow casters with a radix sort by @mvaligursky in #9662
- Remove per-draw WebGPU error scopes in debug builds by @mvaligursky in #9725
- Always apply the metalness constant, so metalness never selects a shader by @mvaligursky in #9945
- Apply occludeDirect with a uniform, so it never selects a shader by @mvaligursky in #9946
- Apply twoSidedLighting with a uniform, so it never selects a shader by @mvaligursky in #9947
- Stop compiling StandardMaterial shader variants for neutral values by @mvaligursky in #9977
- Invalidate StandardMaterial shaders only when a value changes the shader by @mvaligursky in #9978
- Speed up compilation of clustered area light shaders by @mvaligursky in #9974
- Display cubemaps in TextureRenderer as a cross of their faces by @mvaligursky in #9664
- Add compute dispatch and compute pass counters to the stats and MiniStats by @mvaligursky in #9740
- Report buffer operations needing a usage the buffer was not created with by @mvaligursky in #9746
- Report which frame the GPU profiler timings belong to by @mvaligursky in #9838
- Keep GPU pass timings apart, and add scripts for profiling to the inspector example by @mvaligursky in #9842
- Keep MiniStats sized to the canvas when it resizes without a resizecanvas event by @slimbuck in #9661
- Skip the MiniStats draw when it has nothing to render by @mvaligursky in #9672
- Keep the canvas resolution when its client size is zero by @mvaligursky in #9671
- Fire devicerestorefailed when WebGPU device recovery fails by @mvaligursky in #9678
- Announce apps to the devtools hook from every build by @mvaligursky in #9646
- Keep the Node worker_threads require out of bundled worker code by @mvaligursky in #9656
- Do not fire tween events that have no name by @mvaligursky in #9650
- Accept the alignment array and cookie asset options in Entity#addComponent by @mvaligursky in #9683
- Grab the scene color on the null device without WebGL calls by @mvaligursky in #9684
- Dispatch each Compute instance at most once per frame by @mvaligursky in #9690
- Issue radix sort workgroup atomics from every invocation by @MotivaCG in #9756
- Correct ComputeRadixSort scan growth and destructiveKeys switching by @mvaligursky in #9759
- Delete WebGL vertex array objects with their vertex buffers by @mvaligursky in #9726
- Delete cached WebGL vertex array objects with their vertex buffers by @mvaligursky in #9727
- Destroy old batches when BatchManager.generate() is given no ids by @mvaligursky in #9730
- Preserve event listeners during nested dispatch by @MokiMeow in #9723
- Report a failed loadFromUrl again when its URL is requested again by @slimbuck in #9751
- End a MultiTouchSource touch that leaves without an up or a cancel by @slimbuck in #9749
- Warn about unregistered render containers only when preload starts by @mvaligursky in #9771
- Keep a disabled render or model component out of its batch group by @willeastcott in #9779
- Release held keys when the window loses focus by @kpal81xd in #9811
- Fix WebGPU creation for cross-document canvases by @GibsDev in #9814
- Destroy the WebGPU indirect buffers when the device is destroyed by @mvaligursky in #9823
- Fix math.smoothstep and smootherstep when min is greater than max by @zzoraemon043 in #9798
- Support the HTML-in-Canvas API names shipping in Chrome 157 by @mvaligursky in #9824
- Draw nothing for zero instances on WebGL, matching WebGPU by @mvaligursky in #9834
- Stop passing the graphics device as BoxGeometry options for the infinite sky by @mvaligursky in #9846
- Destroy the application at once while the graphics context is lost by @mvaligursky in #9862
- Skip parsing a GLB or PLY that finishes downloading after the application is destroyed by @mvaligursky in #9864
- Keep another application's registry entry when destroying one with the same canvas id by @mvaligursky in #9869
- Read the right mesh instance matrices on Firefox on Windows by @mvaligursky in #9870
- Default a new sprite component's type to SPRITETYPE_SIMPLE when none is given by @willeastcott in #9890
- Convert colors with the exact sRGB transfer function by @willeastcott in #9892
- Report rays starting inside a box when a hit point is requested by @mmporong in #9915
- Return the exit point for rays starting inside a BoundingSphere by @mvaligursky in #9930
- Stop applying the anim state speed twice to exit time and progress by @mvaligursky in #9931
- Ignore exit times on anim transitions out of START and END by @mvaligursky in #9935
- Enable scene color map on both BlurredPlanarReflection cameras by @mvaligursky in #9951
- Add a welcome demo as the default example by @mvaligursky in #9914
- Add an integrations category to the examples, with a Spine physics example by @mvaligursky in #9721
- Add standalone RenderPass and RenderPassShaderQuad examples by @mvaligursky in #9775
- Add a sky rendering test example by @mvaligursky in #9903
- Add a gaussian splatting black hole example by @mvaligursky in #9929
- Add a glyph rain gaussian splat shader effect and example by @mvaligursky in #9982
- Add a villa sales demo on a gaussian splat capture by @mvaligursky in #9965
- Add a car showcase configurator example by @mvaligursky in #9938
- Add a Mars 3D Tiles example using 3DTilesRendererJS by @mvaligursky in #9942
- Add a Helsinki 3D Tiles example streaming the city's photogrammetry model by @mvaligursky in #9948
- Add an impact effects particle example by @mvaligursky in #9958
- Rebuild the area lights example with a modelled room and controls by @mvaligursky in #9894
- Rebuild the reflection box example in the area lights room by @mvaligursky in #9895
- Rebuild the post-processing example in the area lights room with every CameraFrame effect by @mvaligursky in #9896
- Rebuild the clustered area lights example as floating lights above a metallic floor by @mvaligursky in #9898
- Rebuild the dynamic batching example as a kinetic sculpture by @mvaligursky in #9901
- Rebuild the render to texture example in the area lights room by @mvaligursky in #9900
- Redesign the video texture example by @mvaligursky in #9913
- Redesign the tween example by @mvaligursky in #9918
- Redesign the area picker example by @mvaligursky in #9919
- Redesign four of the compute examples by @mvaligursky in #9926
- Restyle the mesh particles example by @mvaligursky in #9956
- Reskin the mesh-deformation example by @mvaligursky in #9967
- Reskin the snow example by @mvaligursky in #9969
- Reskin the light-physical-units example by @mvaligursky in #9970
- Reskin the dithered transparency example and decorrelate dither between meshes by @mvaligursky in #9981
- Use Gaussian scene color mipmaps in the transmission-roughness example by @mvaligursky in #9968
- Update the Spineboy example to Spine 4.3 by @mvaligursky in #9713
- Update the Spine 4.3 plugin to the latest playcanvas-spine release by @mvaligursky in #9716 #9719
- Compress the car showcase assets, and drop its unused shadow code by @mvaligursky in #9953
- Declare the shader chunk API version of the car showcase sweeps by @mvaligursky in #9954
- Share one shader across the car-showcase paints by @mvaligursky in #9976
- Reconvert the SOG v3 logo with the merged splat-transform writer by @mvaligursky in #9979
- Show the raw blind fields in the blind-data example by @mvaligursky in #9963
- Remove the legacy Gaussian splatting picking example by @mvaligursky in #9966
- Remove unused scifi-platform.glb example asset by @mvaligursky in #9949
- Fix examples applying settings before the initial values are set by @mvaligursky in #9640
- Apply settings once the depth of field data is set by @mvaligursky in #9685
- Declare the msaa-depth-fog resolved depth as unfilterable by @mvaligursky in #9668
- Destroy the material of each debris crate in the entity inspector example by @mvaligursky in #9692
- Draw the lines of the compute histogram example every frame by @mvaligursky in #9711
- Stop orthographic example views clipping at the camera near plane by @kpal81xd in #9840
- Preview the shot camera view in the editor example while it is selected by @kpal81xd in #9884
- Default the shape gizmo example to the capsule by @kpal81xd in #9847
- Migrate the remaining examples from orbitCamera to CameraControls by @kpal81xd in #9843
- Work around stuck mouse buttons in the particle blast example by @mvaligursky in #9909
- Remove the Function.prototype.call override from the examples by @mvaligursky in #9910
- Move each example into its own folder, with its thumbnails by @mvaligursky in #9886
- Move CameraFrame examples to a camera-frame category by @mvaligursky in #9676
- Move render target examples into the render-targets category by @mvaligursky in #9693
- Move light and shadow examples to lights-and-shadows by @mvaligursky in #9792
- Move the grid example to the debug category by @mvaligursky in #9950
- Move seven examples to the graphics-advanced category by @mvaligursky in #9952
- Move the particle system examples to a particles category by @mvaligursky in #9955
- Split Gaussian splatting examples into a new gaussian-splatting-fx category by @mvaligursky in #9959
- Highlight controls panel section headers like the sidebar categories by @mvaligursky in #9699
- Show the start of the example's category when opening the examples browser by @mvaligursky in #9922
- Show imported scripts as read-only code editor tabs by @mvaligursky in #9934
- Show the code editor download as an icon, with quicker tooltips by @mvaligursky in #9936
- Type check the examples and resolve multi-file example imports by @kpal81xd in #9812
- Fail CI when an example is missing a thumbnail by @mvaligursky in #9908
- Resolve the inspector's engine peer to the linked engine by @mvaligursky in #9641
- Rename the inspector example and let it profile from the start by @mvaligursky in #9856
- Update @playcanvas/inspector to 0.2.0 by @mvaligursky in #9642
- Update @playcanvas/inspector to 0.3.0 by @mvaligursky in #9766
- Update the examples to @playcanvas/inspector 0.5.0 by @mvaligursky in #9957
- Correct types reported by RuntimeTypeInspector by @mvaligursky in #9643
- Make createScript types inherit the static members of ScriptType by @mvaligursky in #9644
- Declare LitMaterial#dirLightMap, read by its shader options by @mvaligursky in #9652
- Widen JSDoc types to the values the engine accepts by @mvaligursky in #9653
- Clarify that AppBase#timeScale does not pause scripts by @willeastcott in #9807
- Make CameraFrame#createRenderPass internal by @mvaligursky in #9845
- Describe the DynamicSkyEffect in XR by @mvaligursky in #9857
- Describe the ACES tonemapping fits and the screen space units of the camera conversions by @mvaligursky in #9872
- Describe releasing the WebGL context after AppBase#destroy by @mvaligursky in #9912
- Document the resource handlers that AppBase apps register by @mvaligursky in #9920
- Use American spelling across the engine, scripts, tests and examples by @willeastcott in #9940
- Update dependency sharp to v0.35.5 [security] in #9687
- Update dependency vite to v8.3.3 [security] in #9805
- Update dependency node to v26 in #9850
- @GibsDev
- @kpal81xd
- @mmporong
- @MokiMeow
- @MotivaCG
- @mvaligursky
- @slimbuck
- @willeastcott
- @zzoraemon043
- @MokiMeow made their first contribution in #9723
- @GibsDev made their first contribution in #9814
- @zzoraemon043 made their first contribution in #9798
- @mmporong made their first contribution in #9915
Full Changelog: https://github.com/playcanvas/engine/compare/v2.23.3...v2.24.0
rrweb-player@2.2.2
- Updated dependencies [
756765f]:- @rrweb/packer@2.2.2
- @rrweb/replay@2.2.2