8.49.4
- #17774: Fix legacy
Soundloop bug - #17779: [InspectorV2] Add morphTargets section to mesh properties
- #17778: [InspectorV2] Fix UMD inspectorv2 failing when addons is not explicitly included
- #17777: Fixy Fixy
- #17776: Skip sceneWithInspector.ts in umd bundle tests for now
- #17775: Export UniqueIdGenerator to fix umd
- #17773: Inspector v2: Sound volume slider
- #17771: fix crash Helper and CC
- #17770: Gaussian Splatting Part Visibility Support
This list of changes was auto generated.
v16.2.0-canary.19
- Improve lock dir error message: #89119
- Ensures
browserslistdoesn't issue outdated warnings forbaseline-browser-mapping: #89287 - Replace build id in Pages data routes with deployment id: #88959
- Upgrade React from
230772f9-20260128toda641178-20260129: #89301 - Inline handler dependencies instead of tracing: #89269
- Turbopack: add
rules.*.typeconfig to allow changing the type of a module: #88788 - Add experimental.varyParams feature flag: #89307
- Turbopack: improve print_cache_item_size: #89279
Huge thanks to @huozhi, @eps1lon, @mischnic, @ijjk, @sokra, and @acdlite for helping!
shadcn@3.8.0
- #9498
38de7fddc257f04901e98a5fd7821cb8729d54bfThanks @shadcn! - Add RTL support
- #8798
2acaf954d7492ce722d2a7ee02747dc8f85691efThanks @VeiaG! - Fix: skip all transforms for universal registry items
v16.2.0-canary.18
- fix: CSRF origin matching should be case-insensitive: #89127
- fix(build): format runAfterProductionCompile duration as human-readable time: #89232
- fix(router): support BigInt in query parameters: #89213
- Update font data: #89200
- Update font data: #89272
- Turbopack: add support for contentType condition for webpack loaders: #89156
- Revert "fix(router): support BigInt in query parameters": #89283
- Track vary params during static prerendering: #89267
- refactor: Improve templates layout flexibility: #89245
- test: add client-cache.defaults failing deploy test: #89242
- test: add resume-data-cache failing deploy test: #89243
- [turbopack] Make shrinking logic declarative and optimize for immutable tasks: #89222
- Turbopack: Trace task modifications: #89229
- docs: Rename Error component to ErrorPage: #89284
- Turbopack: refactor extend transforms: #89116
Huge thanks to @alexcarpenter, @devjiwonchoi, @jaffarkeikei, @BradErz, @lukesandberg, @vercel-release-bot, @sokra, @eps1lon, @mintydev789, and @acdlite for helping!
@astrojs/markdoc@1.0.0-beta.6
- Updated dependencies [
7c55f80]:- @astrojs/markdown-remark@7.0.0-beta.3
@astrojs/mdx@5.0.0-beta.3
- Updated dependencies [
7c55f80]:- @astrojs/markdown-remark@7.0.0-beta.3
@astrojs/cloudflare@13.0.0-beta.3
-
#15336
9cce92eThanks @ascorbic! - Fixes a dev server issue where framework components from linked packages would fail to load with a 504 error.This could occur when using
client:onlyor other client directives with components from monorepo packages (linked viafile:or workspace protocol). The first request would trigger Vite's dependency optimizer mid-request, causing concurrent client module requests to fail. -
Updated dependencies []:
- @astrojs/underscore-redirects@1.0.0
astro@6.0.0-beta.6
-
#15332
7c55f80Thanks @matthewp! - Adds frontmatter parsing support torenderMarkdownin content loaders. When markdown content includes frontmatter, it is now extracted and available inmetadata.frontmatter, and excluded from the HTML output. This makesrenderMarkdownbehave consistently with theglobloader.const loader = { name: 'my-loader', load: async ({ store, renderMarkdown }) => { const content = `--- title: My Post --- # Hello World `; const rendered = await renderMarkdown(content); // rendered.metadata.frontmatter is now { title: 'My Post' } // rendered.html contains only the content, not the frontmatter }, };
-
#15291
89b6cddThanks @florian-lefebvre! - Removes theexperimental.fontsflag and replaces it with a new configuration optionfonts- (v6 upgrade guidance) -
#15332
7c55f80Thanks @matthewp! - Adds afileURLoption torenderMarkdownin content loaders, enabling resolution of relative image paths. When provided, relative image paths in markdown will be resolved relative to the specified file URL and included inmetadata.localImagePaths.const loader = { name: 'my-loader', load: async ({ store, renderMarkdown }) => { const content = ` # My Post  `; // Provide a fileURL to resolve relative image paths const fileURL = new URL('./posts/my-post.md', import.meta.url); const rendered = await renderMarkdown(content, { fileURL }); // rendered.metadata.localImagePaths now contains the resolved image path }, };
-
#15291
89b6cddThanks @florian-lefebvre! - Adds a new Fonts API to provide first-party support for adding custom fonts in Astro.This feature allows you to use fonts from both your file system and several built-in supported providers (e.g. Google, Fontsource, Bunny) through a unified API. Keep your site performant thanks to sensible defaults and automatic optimizations including preloading and fallback font generation.
To enable this feature, configure
fontswith one or more fonts:import { defineConfig, fontProviders } from 'astro/config'; export default defineConfig({ fonts: [ { provider: fontProviders.fontsource(), name: 'Roboto', cssVariable: '--font-roboto', }, ], });
Import and include the
<Font />component with the requiredcssVariableproperty in the head of your page, usually in a dedicatedHead.astrocomponent or in a layout component directly:--- // src/layouts/Layout.astro import { Font } from 'astro:assets'; --- <html> <head> <Font cssVariable="--font-roboto" preload /> </head> <body> <slot /> </body> </html>
In any page rendered with that layout, including the layout component itself, you can now define styles with your font's
cssVariableto apply your custom font.In the following example, the
<h1>heading will have the custom font applied, while the paragraph<p>will not.--- // src/pages/example.astro import Layout from '../layouts/Layout.astro'; --- <Layout> <h1>In a galaxy far, far away...</h1> <p>Custom fonts make my headings much cooler!</p> <style> h1 { font-family: var('--font-roboto'); } </style> </Layout>
Visit the updated fonts guide to learn more about adding custom fonts to your project.
-
#15337
7ff7b11Thanks @ematipico! - Fixes a bug where the development server couldn't serve newly created new pages while the development server is running. -
#15331
4592be5Thanks @matthewp! - Fixes an issue where API routes would overwrite public files during build. Public files now correctly take priority over generated routes in both dev and build modes. -
Updated dependencies [
7c55f80]:- @astrojs/markdown-remark@7.0.0-beta.3
2.13.2
2026-01-30
- Build add
supply-validator-pluginplugin (#23458 by @btea) - Components [table] add row-expandable prop (#23140 by @btnkr)
- Components [time-picker] supplement type for TimePickerInstance (#23536 by @snowbitx)
- Components [drawer] expose
DrawerInstance(#23544 by @snowbitx)
- Components [upload] make abort param optional (#23353 by @SevenDreamYang)
- Components [avatar] watch srcSet changes to reset hasLoadError (#23324 by @E66Crisp)
- Components [select/select-v2] dropdown requires two clicks to open (#23344 by @rzzf)
- Components [input-tag] correct the tooltip theme and the style of the collapse tag (#23138 by @keeplearning66)
- Components [upload]
webkitdirectory="false"being preserved during hydration (#23374 by @rzzf) - Components [rate] display abnormal when modelValue exceeds max (#23372 by @E66Crisp)
- Components [date-picker-panel] weekstart incorrect select offset (#23226 by @Dsaquel)
- Components [badge] missing badgeStyle default value (#23448 by @btea)
- Components [collapse-item] missing box-sizing (#23482 by @snowbitx)
- Components [date-picker-panel] reliable startDate of weekstart (#23422 by @Dsaquel)
- Components [date-picker-panel] add missing
is-disabledclass to disabled buttons when usingunlink-panels(#23393 by @tjyuanpeng) - Components [table] Make tableLayout optional in table type (#23202 by @an501920078)
- Components [message-box] handle IME composition on Enter key (#23523 by @snowbitx)
- Correct type definitions for ElMessageBox (#23518 by @jaa134)
- Theme-chalk [card] ensure height works correctly in flex layout (#23539 by @rzzf)
- Components [affix] positioning under KeepAlive cache (#23549 by @E66Crisp)
- Components [select/select-v2] avoid triggering multiple
visible-changeduring the first search (#23507 by @keeplearning66)
- Components [input] use type-based definitions (#23366 by @rzzf)
- Components [affix] use type-based definitions (#23400 by @rzzf)
- Components [anchor] use type-based definitions (#23403 by @Lensiq)
- Components [icon] use type-based definitions (#23412 by @Lensiq)
- Components[card] use type-based definitions (#23416 by @zhongli-kira)
- Components [link] use type-based definitions (#23411 by @Lensiq)
- Components [tour] use type-based definitions (#23415 by @Lensiq)
- Components [switch] use type-based definitions (#23420 by @lw56777)
- Components [check-tag] use type-based definitions (#23424 by @snowbitx)
- Components [tag] use type-based definitions (#23421 by @lw56777)
- Components [empty] use type-based definitions (#23428 by @lw56777)
- Components [alert] use type-based definitions (#23401 by @rzzf)
- Components [scrollbar] use type-based definitions (#23427 by @SevenDreamYang)
- Components [container] use type-based definitions (#23429 by @cosine7)
- Components [watermark] use type-based definitions (#23408 by @wjp980108)
- Components [autocomplete] use type-based definitions (#23410 by @E66Crisp)
- Components [steps] use type-based definitions (#23433 by @SevenDreamYang)
- Components [badge/breadcrumb/button] use type-based definitions (#23414 by @snowbitx)
- Components [descriptions] use type-based definitions (#23434 by @SevenDreamYang)
- Components [input-number] use type-based definitions (#23404 by @lw56777)
- Components [col] use type-based definitions (#23438 by @lw56777)
- Components [row] use type-based definitions (#23437 by @lw56777)
- Components [input-tag] use type-based definitions (#23436 by @lw56777)
- Components [calendar] use type-based definitions (#23419 by @zhongli-kira)
- Components [divider/result/page-header] use type-based definitions (#23417 by @william-xue)
- Components [rate] use type-based definitions (#23439 by @lw56777)
- Components [backtop] use type-based definitions (#23435 by @lw56777)
- Components [carousel] use type-based definitions (#23430 by @snowbitx)
- Components [message] use type-based definitions (#23423 by @zero-years)
- Components [mention] use type-based definitions (#23440 by @E66Crisp)
- Components [countdown] use type-countdown definitions (#23447 by @StrawberryCreamMilk)
- Components [image/image-viewer] use type-based definitions (#23444 by @snowbitx)
- Components [collapse] use type-based definitions (#23443 by @snowbitx)
- Components [menu-item] use type-based definitions (#23446 by @snowbitx)
- Components [segmented] use type-based definitions (#23453 by @snowbitx)
- Components [progress] use type-based definitions (#23451 by @snowbitx)
- Components [splitter] use type-based definitions (#23462 by @snowbitx)
- Components [popper] use type-based definitions (#23450 by @snowbitx)
- Components [color-picker-panel] use type-based definitions (#23456 by @StrawberryCreamMilk)
- Components [tree-v2] use type-based definitions (#23459 by @wjp980108)
- Components [radio] use type-based definitions (#23466 by @lw56777)
- Components [avatar] use type-based definitions (#23457 by @E66Crisp)
- Components [statistic] use type-based definitions (#23452 by @snowbitx)
- Components [skeleton/skeletonItem] use type-based definitions (#23464 by @zero-years)
- Components [upload] use type-based definitions (#23442 by @wjp980108)
- Components [text] use type-based definitions (#23481 by @Lensiq)
- Components [tab-pane/bar] use type-based definitions (#23477 by @btea)
- Components [tooltip] use type-based definitions (#23475 by @wjp980108)
- Components [cascader] use type-based definitions (#23478 by @snowbitx)
- Components [timelineItem] use type-based definitions (#23479 by @Lensiq)
- Components [popconfirm] use type-based definitions (#23455 by @E66Crisp)
- Components [color-picker] use type-based definitions (#23488 by @StrawberryCreamMilk)
- Components [transfer] use type-based definitions (#23460 by @wjp980108)
- Components [popover] use type-based definitions (#23465 by @lw56777)
- Components [form/form-item] use type-based definitions (#23483 by @snowbitx)
- Components [dialog] use type-based definitions (#23432 by @lw56777)
- Components [time-select] use type-based definitions (#23449 by @StrawberryCreamMilk)
- Components [notification] use type-based definitions (#23445 by @E66Crisp)
- Components [checkbox] use type-based definitions (#23480 by @zhongli-kira)
- Components [drawer] use type-based definitions (#23484 by @StudiousGao)
- Components [badge] use factory default for
offsetprop (#23526 by @snowbitx) - Components [config-provider] improve ConfigContext types (#23528 by @snowbitx)