` component, specifically with the `v-model:open` binding:\n\n* `v-model:collapsed` works great — it properly handles the collapsed/expanded state.\n* But `v-model:open` doesn't seem to behave as expected. When I bind it to a custom `open` state and try to set it to `false` (e.g., using a custom button), the sidebar doesn’t actually close. Then, as soon as I click anywhere else on the page, the `open` value is automatically reset to `true`.\n\nIt feels like something internal is re-opening the sidebar and overriding the bound value.\n\nOther small notes:\n\n* `\u003CUDashboardSidebarToggle />` is hidden on desktop due to `lg:hidden`, which makes sense for mobile setups. But even when made visible, it doesn’t allow fully toggling the sidebar on desktop — the sidebar remains fixed.\n* I also tried changing the `default-size` prop (e.g., to `16rem` / `256px`), and it didn’t apply immediately. It only worked after clearing the site data. I’m guessing this is due to cookies storing the previous value? Maybe it could be possible to sync the cookie automatically when `default-size` changes?\n\nHere’s a minimal reproduction of the issue: [Here](https://codesandbox.io/p/devbox/polished-cookies-lrv5hm?file=%2Fapp%2Fpages%2Findex.vue%3A9%2C23)\n\nLastly, I was wondering if in the future it might be possible to support a prop like `expand-on-hover`, where a collapsed sidebar could temporarily expand on mouse hover — without pushing the rest of the layout. This could allow building more advanced layouts similar to what Supabase uses: a primary sidebar that stays collapsed when a secondary one is open, but can still expand on hover without shifting the content.\n\nThanks again for your amazing work and for considering these ideas! 😊\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3083,3084,3085],{"name":3043,"color":3044},{"name":3024,"color":3025},{"name":3047,"color":3048},4599,"DashboardSidebar: v-model:open not working as expected","2025-07-25T16:31:55Z","https://github.com/nuxt/ui/issues/4599",0.7560783,{"description":3092,"labels":3093,"number":3095,"owner":3032,"repository":3032,"state":3034,"title":3096,"updated_at":3097,"url":3098,"score":3099},"### Environment\n\n- Operating System: `Darwin`\n- Node Version: `v20.16.0`\n- Nuxt Version: `3.16.2`\n- CLI Version: `3.24.1`\n- Nitro Version: `2.11.8`\n- Package Manager: `yarn@4.5.0`\n- Builder: `-`\n- User Config: `ssr`, `devtools`, `compatibilityDate`, `app`, `css`, `build`, `sourcemap`, `vite`, `serverDir`, `rootDir`, `srcDir`, `dir`, `components`, `modules`, `imports`, `googleFonts`, `i18n`, `lodash`, `devServer`, `nitro`, `ignore`, `routeRules`, `macros`, `security`, `runtimeConfig`, `experimental`\n- Runtime Modules: `nuxt-lodash@2.5.3`, `@vue-macros/nuxt@1.9.37`, `@nuxtjs/google-fonts@3.2.0`, `@vueuse/nuxt@13.0.0`, `@nuxtjs/i18n@9.4.0`, `nuxt-security@2.2.0`, `()`\n- Build Modules: `-`\n\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/laughing-glade-tg2xkn?file=%2Fapp.vue%3A6%2C8\n\n### Describe the bug\n\nWhen you clear the state it gets set to undefined.\nFollowing on the Nuxt 4 migration guide, this should default back to the value it was set to as default. If a user would like to have a undefined state, that should be the default.\n\nhttps://nuxt.com/docs/getting-started/upgrade#default-data-and-error-values-in-useasyncdata-and-usefetch\n\nIn issue #21293 Daniel even mentioned it should have the same API:\nhttps://github.com/nuxt/nuxt/issues/21293#issuecomment-1576518616\n\nIn the MR it is visible that the implementation just makes the value undefined: https://github.com/nuxt/nuxt/pull/21409/files#diff-916bd663085bf0545a35adb6fdb951702200d259e2185df08579d96ada525853R54\n\nAnd the function did not change on the main branch yet either:\nhttps://github.com/nuxt/nuxt/blob/main/packages/nuxt/src/app/composables/state.ts#L58\n\n### Additional context\n\nA use case I have right now is a user that logs in.\nAfter login, we set a state to ping user activity.\nWhen logout triggers, `clearNuxtState` is triggered.\nThat sets the userActivity state to undefined.\nThen when a user tries to log in again, the state is broken.\n\nThe only work arround that I can think of is resetting the whole page, or explicitly set the value of all `useState` objects to a default value again instead of using this function.\n\nI'll add one of the files, the one mentioned above as an extra example\n```\nimport {useIdle} from '@vueuse/core'\n\n\nexport const useUserActivity = () => {\n const activityState = useState('userActivity', () => ({\n timeoutPID: 0,\n isPaused: false,\n }))\n let hasLoop = false\n const pingInterval = 10 * 1000\n const {idle, lastActive} = useIdle(pingInterval * 2)\n const nuxtApp = useNuxtApp()\n const authService = useAuthState()\n\n const pingUser = (force: boolean = false) => {\n if (force || authService.hasAuthToken()) {\n nuxtApp.$api(`/server/pingClient?hadUserActivity=${idle.value ? 'false' : 'true'}`).catch()\n }\n }\n\n //The loop\n const pingUserLoop = () => {\n if (!activityState.value.isPaused) { // CRASHES HERE BECAUSE .value IS UNDEFINED!!\n try {\n activityState.value.timeoutPID = 0\n pingUser()\n } catch (e) {}\n }\n //set interval for next run of loop\n if (!activityState.value.timeoutPID)\n activityState.value.timeoutPID = setTimeout(() => {\n pingUserLoop()\n }, pingInterval)\n }\n\n //start the loop\n if (!activityState.value.timeoutPID) {\n pingUserLoop()\n }\n\n return {\n isIdle: idle,\n lastActive,\n pingUser,\n setPause(isPaused: boolean) {\n activityState.value.isPaused = isPaused\n },\n togglePause() {\n activityState.value.isPaused = !activityState.value.isPaused\n },\n }\n}\n```\n\n### Logs\n\n```shell-script\n11:15:02.721 Uncaught TypeError: activityState.value is undefined\n NuxtJS 7\n pingUserLoop\n timeoutPID\n setTimeout handler*pingUserLoop\n useUserActivity\n setup\n createHook\n callWithErrorHandling\nuseUserActivity.ts:23:9\n NuxtJS 77\n```",[3094],{"name":3073,"color":3074},32117,"clearNuxtState should take default value instead of undefined","2025-05-15T10:04:32Z","https://github.com/nuxt/nuxt/issues/32117",0.7568234,{"description":3101,"labels":3102,"number":3105,"owner":3032,"repository":3033,"state":3106,"title":3107,"updated_at":3108,"url":3109,"score":3110},"### For what version of Nuxt UI are you suggesting this?\n\nv3.0.0-alpha.x\n\n### Description\n\nAFAIK there is currently no documented way to prevent the popover from opening automatically through click or hover.\n\nExample API:\n\n```\n\u003CUPopover mode=\"manual\">\n \u003CUButton>I don't do anything\u003C/UButton\n\u003C/UPopover>\n```\n\n### Additional context\n\nRelated to #721 (but not fixed)",[3103,3104],{"name":3021,"color":3022},{"name":3024,"color":3025},2925,"closed","Popover manual mode with no click nor hover","2025-05-10T17:19:51Z","https://github.com/nuxt/ui/issues/2925",0.72992045,{"description":3112,"labels":3113,"number":3119,"owner":3032,"repository":3033,"state":3106,"title":3120,"updated_at":3121,"url":3122,"score":3123},"### Description\n\nHi, \nI'm struggling to customize my components when using Nuxt UI within another Nuxt Module, I've search but cannot get it to work, tried with using app.config.ts like below and also within module.ts but no joy, would appreciate if someone could help out.\n\n\n```\nexport default defineAppConfig({\n ui: {\n button: {\n slots: {\n base: 'rounded-full font-semibold cursor-pointer'\n },\n },\n }\n})\n\n```\nMy module.ts file:\n\n```\nimport { defineNuxtModule, installModule, createResolver } from '@nuxt/kit'\n\nexport default defineNuxtModule\u003CModuleOptions>({\n meta: {\n name: 'my-module',\n configKey: 'myModule',\n },\n hooks: {\n 'nitro:config': (nitroConfig) => {\n const { resolve } = createResolver(import.meta.url)\n\n nitroConfig.publicAssets ||= []\n nitroConfig.publicAssets.push({\n dir: resolve('./runtime/images/'),\n maxAge: 60 * 60 * 24 * 365,\n })\n },\n },\n defaults: {},\n async setup(_options, _nuxt) {\n const { resolve } = createResolver(import.meta.url)\n\n\n await installModule('@nuxt/ui')\n await installModule('nuxt-svgo', {\n autoImportPath: resolve('./runtime/icons'),\n defaultImport: 'component',\n componentPrefix: 'i',\n })\n\n _nuxt.options.css.push(resolve('./runtime/style.css'))\n },\n})\n\n```",[3114,3117,3118],{"name":3115,"color":3116},"question","d876e3",{"name":3024,"color":3025},{"name":3030,"color":3028},3679,"How to override components style globally when using within another Nuxt Module?","2025-06-11T10:32:59Z","https://github.com/nuxt/ui/issues/3679",0.7395697,{"description":3125,"labels":3126,"number":3130,"owner":3032,"repository":3033,"state":3106,"title":3131,"updated_at":3132,"url":3133,"score":3134},"### Environment\n\n- Operating System: Windows_NT\n- Node Version: v22.16.0\n- Nuxt Version: 3.17.6\n- CLI Version: 3.25.1\n- Nitro Version: 2.11.13\n- Package Manager: pnpm@10.12.4\n- Builder: -\n- User Config: -\n- Runtime Modules: @nuxt/ui@3.2.0\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.2.0\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/serene-river-hypccq\n\n### Description\n\nupdating to 3.2.0, the cancel button does not display\n\n```ts\nconst overlay = useOverlay()\nconst dialog = overlay.create(VDialog, {\n props: {\n showCancelButton: true,\n },\n})\n\nfunction showDialog() {\n dialog.open({\n title: 'Lorem Ipsum',\n description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',\n })\n}\n```\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3127,3128,3129],{"name":3043,"color":3044},{"name":3024,"color":3025},{"name":3047,"color":3048},4468,"useOverlay: passing props to open will override the props of the create","2025-07-08T08:51:35Z","https://github.com/nuxt/ui/issues/4468",0.74300313,{"description":3136,"labels":3137,"number":3142,"owner":3032,"repository":3032,"state":3106,"title":3143,"updated_at":3144,"url":3145,"score":3146},"### Environment\r\n\r\n```bash\r\nNuxt project info: 0:30:28\r\n\r\n------------------------------\r\n- Operating System: Windows_NT\r\n- Node Version: v20.10.0\r\n- Nuxt Version: 3.11.1\r\n- CLI Version: 3.11.1\r\n- Nitro Version: 2.9.4\r\n- Package Manager: pnpm@8.15.4\r\n- Builder: -\r\n- User Config: typescript, modules, app, features, experimental, css, postcss, recaptcha, pwa, devtools, vite\r\n- Runtime Modules: @unocss/nuxt@0.58.6, @nuxtjs/i18n@8.1.1, @vueuse/nuxt@10.9.0, @vite-pwa/nuxt@0.6.0\r\n- Build Modules: -\r\n------------------------------\r\n```\r\n\r\n### Reproduction\r\n\r\nhttps://stackblitz.com/edit/github-lpzonl?file=app.vue,styles%2Fglobal.css,nuxt.config.ts\r\n\r\n### Describe the bug\r\n\r\nThere is no way to change `hideDelay` from the loading indicator component, and so we need to await ~1s to hide the indicator: page end + 500ms in `hideDelay` + 400ms in the css transition.\r\n\r\nNuxtLoadingIndicator should expose the `hideDelay` or `force` prop without needing to rewrite it, `hideDelay: 0` should be the default value.\r\n\r\nYou can check the SB reproduction:\r\n- open preview in a new tab\r\n- check the delay when navigating\r\n- open devtools and find `_nuxt/node_modules/nuxt/dist/app/composables/loading-indicator.js?v=\u003Csome_version>` in the source tab\r\n- add a breakpoint in L9\r\n- refresh the page and set `hideDelay` to 0\r\n- navigate again\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Logs\r\n\r\n_No response_",[3138,3139],{"name":3021,"color":3058},{"name":3140,"color":3141},"🍰 p2-nice-to-have","0E8A16",26637,"weird behavior with loading indicator component","2025-04-03T15:17:07Z","https://github.com/nuxt/nuxt/issues/26637",0.7435015,["Reactive",3148],{},["Set"],["ShallowReactive",3151],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fS3orTbpSTAByjXNC0wTYiMPr3scguKZOxBr3i4xlUmE":-1},"/nuxt/ui/4615"]