Changelog

Discover the latest releases from Nuxt and the official modules.
@nuxt-content/nuxt-studio

v1.6.0

🚀 Features

  • data: implement swapping objects in arrays (#396) (c84b094)
  • data: improve labels for arrays of objects (#395) (2a8e961)
  • editor: add folder filtering on media picker (#411) (6585be0)
  • i18n: add custom pluralization rules for i18n (#416) (b3c9793)
  • i18n: sync and improve chinese locale (#399) (4c4784c)

🐛 Bug Fixes

  • build: externalize studio app from host vite build (#412) (15a2346)
  • collections: empty prefix not matched correctly (#398) (5892459)
  • config: prioritize CI-detected repository values (#417) (cf2c605)
  • files: skip .navigation.yml when collection source doesn't exists (#414) (0130bed)
  • host: filter null value from list (#419) (f068f8a)
  • i18n: add missing locales keys (5441313)
  • media: make ipx optional to support Cloudflare Workers (#404) (e3db8ea)
  • medias: resolve ipx from http path (#413) (3635722)
  • tree: empty route path for data items (#407) (c9eb844)

💚 New Contributors

Full Changelog: https://github.com/nuxt-content/nuxt-studio/compare/v1.5.1...v1.6.0

@nuxt/test-utils

v4.0.1

👉 Changelog

compare changes

🩹 Fixes

  • config: Rename deps.optimizer.web to client for vitest4 (#1593)
  • runtime-utils: Fix mockNuxtImport types when using string target (#1592)
  • config: Pass non-project options for non-nuxt simple setup (#1582)
  • config: Do not import defineConfig from vite (1aa5e8748)
  • runtime: Handle ResourceLoader removal in jsdom v28 (#1611)
  • config,vitest-environment: Directly import peerDeps (#1617)
  • runtime-utils: Align mount options merge w/ vue-test-utils (#1610)
  • vitest-environment: Avoid vitest/environments import warning (#1627)
  • runtime: Avoid error when vue/test-utils is not installed (#1646)
  • config: Prefer project h3 version if present (#1641)

🏡 Chore

  • Bump vitest-environment-nuxt versions (f5ec72127)
  • Use workspace dependency (14fb254a7)
  • Example playwright config improve type annotation for devices (#1581)
  • pkg-pr-new prerelease vitest-environment-nuxt (#1601)
  • Allow explicit any (633c93c2a)
  • Switch unit test target to dir and move type unit tests to test:types (#1618)
  • Update lockfile (8306abf00)

✅ Tests

  • Add failing test for stubbed global provide (#1314)
  • Update assertions deprecated in vitest 4.1 (#1629)
  • Change example/workspace to use glob based projects setup (#1585)

🤖 CI

  • Pin github actions to full-length commit shas (2832fd6d5)
  • Avoid checkout for reproduction comment (e4e67ab09)
  • Rename workflow (99318b9fc)
  • Correctly publish pkg-pr-new prerelease (#1598)

❤️ Contributors

  • Daniel Roe (@danielroe)
  • Yoshihiro Yamaguchi (@yamachi4416)
  • Robin (@OrbisK)
  • Paul Melero (@paulmelero)
@nuxt/devtools

v4.0.0-alpha.4

   🚨 Breaking Changes

   🚀 Features

   🐞 Bug Fixes

    View changes on GitHub
@nuxt/ui

v4.6.1

🐛 Bug Fixes

  • ai: use part.state for streaming detection and deprecate isReasoningStreaming (d2d7543)
  • ChatMessage: hide files slot when no file parts exist (9cddc8e)
  • ChatMessages: keep indicator visible until first content arrives (195cce8)
  • ChatMessages: reset scroll icon when messages are cleared (#6239) (4ba3eef)
  • ChatPrompt: guard enter during composition (#6280) (a911ca8)
  • DashboardSidebar: always pass collapsed: false in mobile menu slots (957a0f5), closes #6157
  • Modal/Slideover/Drawer: suppress reka ui title and description warnings (3451b8d), closes #6240
  • module: inline defaultVariants and prefix in dev template (314e23b)
  • module: transpile reka-ui to prevent injection errors (#6286) (b822c43)

New Contributors

Full Changelog: https://github.com/nuxt/ui/compare/v4.6.0...v4.6.1

@nuxt/scripts

v1.0.0-beta.33

   🚨 Breaking Changes

   🚀 Features

   🐞 Bug Fixes

    View changes on GitHub
@nuxt/ui

v4.6.0

✨ Highlights

📁 New Sidebar component

The Sidebar component provides a responsive application sidebar that stays fixed on desktop and transforms into a Modal, Slideover, or Drawer on mobile. It supports three visual variants (sidebar, floating, inset) and three collapsible modes (offcanvas, icon, none):

<template>
  <USidebar v-model:open="open" collapsible="icon">
    <template #header>
      <Logo />
    </template>

    <UNavigationMenu :items="items" />

    <template #footer>
      <UserMenu />
    </template>
  </USidebar>
</template>

🤖 New Chat components

We're introducing 3 new components to build richer AI chat interfaces:

  • ChatReasoning: A collapsible thinking/reasoning block that automatically tracks streaming duration.
  • ChatTool: A collapsible row for tool invocations with loading and streaming states.
  • ChatShimmer: An animated text primitive used internally by ChatReasoning and ChatTool during streaming.

These components integrate seamlessly with the AI SDK message parts:

<template>
  <UChatMessages :messages="messages" :status="status">
    <template #content="{ message }">
      <template v-for="(part, index) in message.parts" :key="index">
        <UChatReasoning
          v-if="isReasoningUIPart(part)"
          :text="part.reasoning"
          :streaming="isReasoningStreaming(message, index, chat)"
        />
        <UChatTool
          v-else-if="isToolInvocationUIPart(part)"
          :text="part.toolInvocation.toolName"
          :streaming="isToolStreaming(part)"
        />
        <MDC v-else-if="isTextUIPart(part)" :value="part.text" />
      </template>
    </template>
  </UChatMessages>
</template>

🚨 Breaking Changes

  • module: use moduleDependencies to manipulate options (#5384)

This release adopts Nuxt's new moduleDependencies API to declaratively manage sub-module dependencies (@nuxt/icon, @nuxt/fonts, @nuxtjs/color-mode, @nuxtjs/mdc) instead of manually installing them at runtime. This requires Nuxt >= 4.1.0.

🚀 Features

🐛 Bug Fixes

  • Avatar: use resolved size for image width/height (#6008) (6dd0fc4)
  • ContentNavigation: prevent toggling disabled parent items (#6122) (0f1074f)
  • ContentSurround: handle RTL mode (#6148) (6921f13)
  • ContentToc: reset start margin at lg breakpoint (8f24f79)
  • DashboardSearchButton: use valid HTML structure for trailing slot (#6194) (578a12f)
  • Editor: guard lift calls for unavailable list extensions (#6100) (065db6b)
  • Error: support status and statusText properties (1350d62), closes #6134
  • FileUpload: make multiple, accept and reset options reactive (#6204) (ae093df)
  • Modal/Slideover/Popover/Drawer: prevent double close:prevent emit (#6226) (9a0d501)
  • module: only auto-import public composables and allow Vite opt-out (#6197) (886f5fb)
  • NavigationMenu: improve RTL support for viewport and indicator (#6164) (755867b)
  • NavigationMenu: propagate disabled state to item in vertical orientation (6d4d651)
  • ProsePre: move shiki line highlight styles to theme (d663950)

🌐 Locales

👋 New Contributors

Full Changelog: https://github.com/nuxt/ui/compare/v4.5.1...v4.6.0

@nuxt/scripts

v1.0.0-beta.29

   🐞 Bug Fixes

  • Mark useScript instance as raw  -  by @harlan-zw (37d38)
  • Asset path broken when using query params  -  by @harlan-zw (710f8)
  • google-maps:
  • rybbit:
    • Deprecate window accessor  -  by @harlan-zw (05dfc)
    View changes on GitHub