\n\n// filter by tags\nconst items = [\n {\n label: \"Show all tags\",\n value: \"\"\n },\n {\n label: \"Only Red Tags\",\n value: \"red\"\n },\n {\n label: \"Only Green Tags\",\n value: \"green\"\n }\n]\n\nconst tagFilter = ref(null)\n```\n\nbut in v3 I now get this error:\n\n> Error: A \u003CSelectItem /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.\n\nHow would I add this option in?",[2919,2922],{"name":2920,"color":2921},"question","d876e3",{"name":2906,"color":2907},3647,"closed","How do I use an empty string with a USelect value?","2025-03-21T21:54:20Z","https://github.com/nuxt/ui/issues/3647",0.70874333,{"description":2930,"labels":2931,"number":2940,"owner":2909,"repository":2909,"state":2924,"title":2941,"updated_at":2942,"url":2943,"score":2944},"### Describe the feature\r\n\r\nIn specific scenarios, it might be handy to reset the state and cancel any pending promises of a declared data fetching composable. \r\n\r\nFor example, it would come useful when we declare a data fetching composable inside a dialog which remains in the DOM when closed AND yet we would like to conveniently reset everything inside a dialog to prepare it for when it becomes opened by the user again. Otherwise, I need to reset everything by hand.\r\n\r\nAn alternative approach is to pass a key explicitly and use it when calling `clearNuxtData`:\r\n\r\n```\r\nconst key = '...'\r\nconst fn = useAsyncData(key, ...)\r\nconst isDialogOpen = defineModel\u003Cboolean>({ required: true })\r\n\r\nwhenever(\r\n () => !isDialogOpen.value,\r\n {\r\n clearNuxtData(key)\r\n }\r\n)\r\n```\r\n\r\n### Additional information\r\n\r\n- [X] Would you be willing to help implement this feature?\r\n- [ ] Could this feature be implemented as a module?\r\n\r\n### Final checks\r\n\r\n- [X] Read the [contribution guide](https://nuxt.com/docs/community/contribution).\r\n- [X] Check existing [discussions](https://github.com/nuxt/nuxt/discussions) and [issues](https://github.com/nuxt/nuxt/issues).",[2932,2934,2937],{"name":2903,"color":2933},"8DEF37",{"name":2935,"color":2936},"3.x","29bc7f",{"name":2938,"color":2939},"🍰 p2-nice-to-have","0E8A16",26195,"Add `reset` fn to data fetching composables","2024-03-17T00:19:45Z","https://github.com/nuxt/nuxt/issues/26195",0.76466537,{"description":2946,"labels":2947,"number":2952,"owner":2909,"repository":2909,"state":2924,"title":2953,"updated_at":2954,"url":2955,"score":2956},"Hello,\r\n\r\nSince using default export of `Options` as option initializer, I have a question that is it a good way to use a Class-like naming style to name a function?\r\n\r\nI found members in `options.js` like `Modes` and `defaultOptions` are also put in `Options` now, maybe leave `Options` as a pure Object, and rename the init function to `Options.from(_options)` is a better choice?\r\n\r\nhttps://github.com/nuxt/nuxt.js/blob/d7d85d3b4763eacf4a25155c08a01fab3ee5746a/lib/core/nuxt.js#L18\n\n\u003C!--cmty-->\u003C!--cmty_prevent_hook-->\n\u003Cdiv align=\"right\">\u003Csub>\u003Cem>This feature request is available on \u003Ca href=\"https://nuxtjs.cmty.io\">Nuxt.js\u003C/a> community (\u003Ca href=\"https://nuxtjs.cmty.io/nuxt/nuxt.js/issues/c1229\">#c1229\u003C/a>)\u003C/em>\u003C/sub>\u003C/div>",[2948,2949],{"name":2903,"color":2933},{"name":2950,"color":2951},"2.x","d4c5f9",1385,"[internals] improve options module","2023-01-18T15:41:42Z","https://github.com/nuxt/nuxt/issues/1385",0.76524806,{"description":2958,"labels":2959,"number":2969,"owner":2909,"repository":2970,"state":2924,"title":2971,"updated_at":2972,"url":2973,"score":2974},"I'm setting up the nuxt-vitest module in my project. Though I'm running into some issues getting a simple test, I use mountSuspended(Logo) to test the mounting of a Logo component. This component uses i18n. Whereas when I'm using mount from Vitest the test passes.\r\n\r\nThe error I'm getting is as follows:\r\n```\r\nVitest caught 1 unhandled error during the test run.\r\nThis might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected.\r\n\r\n⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯\r\nSyntaxError: Need to install with `app.use` function\r\n ❯ Module.createCompileError ../node_modules/.pnpm/@intlify+message-compiler@9.3.0-beta.17/node_modules/@intlify/message-compiler/dist/message-compiler.mjs:54:19\r\n ❯ createI18nError ../node_modules/.pnpm/vue-i18n@9.3.0-beta.17_vue@3.3.4/node_modules/vue-i18n/dist/vue-i18n.runtime.mjs:97:34\r\n 96| [I18nErrorCodes.INVALID_ARGUMENT]: 'Invalid argument',\r\n 97| [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: 'Must be called at the top of a `setup` function',\r\n 98| [I18nErrorCodes.NOT_INSLALLED]: 'Need to install with `app.use` function',\r\n | ^\r\n 99| [I18nErrorCodes.UNEXPECTED_ERROR]: 'Unexpected error',\r\n 100| [I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE]: 'Not available in legacy mode',\r\n ❯ Module.useI18n ../node_modules/.pnpm/vue-i18n@9.3.0-beta.17_vue@3.3.4/node_modules/vue-i18n/dist/vue-i18n.runtime.mjs:2253:15\r\n ❯ setup app.vue:33:40\r\n```\r\n\r\nAnd while we are at it. Is there a way to test with the translated i18n messages iso the keys?\r\n\r\n######\r\n\r\nHere are some snippets from my configuration.\r\nvitest.config.js\r\n```\r\n...\r\nexport default defineVitestConfig({\r\n resolve: {\r\n alias\r\n },\r\n test: {\r\n dir: tests,\r\n setupFiles: ['tests/unit.setup.ts'],\r\n environment: 'jsdom',\r\n globals: true,\r\n root: rootDir,\r\n environmentOptions: {\r\n nuxt: {\r\n rootDir\r\n }\r\n }\r\n }\r\n})\r\n```\r\n\r\n./test/nuxt/components/Logo.nuxt.spec.ts (with mountSuspended)\r\n```\r\nimport { describe, it, expect } from 'vitest'\r\n\r\nimport { mountSuspended } from 'vitest-environment-nuxt/utils'\r\nimport Logo from '@/components/header/Logo.vue'\r\n\r\ndescribe('HeaderLogo', () => {\r\n it('can mount some component', async () => {\r\n const component = await mountSuspended(Logo)\r\n expect(component.vm).toBeTruthy()\r\n expect(component.text()).toMatchInlineSnapshot(\r\n '\"global.logo-brand-name.global.logo-brand-localehomepage.logo-tagline\"'\r\n )\r\n })\r\n})\r\n```\r\n./tests/unit.setup.ts\r\n```\r\nimport { config } from '@vue/test-utils'\r\nimport { createI18n } from 'vue-i18n'\r\n\r\nimport nlNL from '~/locales/nl_NL.json'\r\n\r\nconst i18n = createI18n({\r\n legacy: false,\r\n locale: 'nl_NL',\r\n missing: (_, key) => key,\r\n messages: {\r\n nlNL\r\n }\r\n})\r\n\r\nconfig.global.mocks = {\r\n t: msg => msg\r\n}\r\nconfig.global.plugins.push(i18n)\r\n```\r\n\r\n\r\n./tests/nuxt/components/Logo.nuxt.spec.ts (without mountSuspended)\r\n```\r\nimport { mount } from '@vue/test-utils'\r\nimport { describe, it, expect } from 'vitest'\r\n\r\nimport Logo from '@/components/header/Logo.vue'\r\n\r\ndescribe('HeaderLogo', () => {\r\n it('can mount some component', () => {\r\n const component = mount(Logo)\r\n expect(component.vm).toBeTruthy()\r\n expect(component.text()).toMatchInlineSnapshot(\r\n '\"global.logo-brand-name.global.logo-brand-localehomepage.logo-tagline\"'\r\n )\r\n })\r\n})\r\n```\r\n\r\n",[2960,2963,2966],{"name":2961,"color":2962},"vitest-environment","b60205",{"name":2964,"color":2965},"needs reproduction","DE7793",{"name":2967,"color":2968},"closed-by-bot","ededed",585,"test-utils","mountSuspended with i18n","2025-01-22T12:49:12Z","https://github.com/nuxt/test-utils/issues/585",0.767034,{"description":2976,"labels":2977,"number":2981,"owner":2909,"repository":2982,"state":2924,"title":2983,"updated_at":2984,"url":2985,"score":2986},"If a website don't have background, it will look like this:\n",[2978],{"name":2979,"color":2980},"bug","ff281a",488,"nuxt.com","Set background on preview iframe","2022-05-11T14:44:35Z","https://github.com/nuxt/nuxt.com/issues/488",0.7780567,{"description":2988,"labels":2989,"number":2981,"owner":2909,"repository":2970,"state":2924,"title":2990,"updated_at":2991,"url":2992,"score":2986},"Hi,\r\n\r\nI was trying to integrate @nuxt/test-utils in my Nuxt application in order to test pages.\r\nI already have a bunch of tests written for the components that use @vue/test-utils.\r\n\r\nAfter following the documentation and adding the `@nuxt/test-utils` preset to my jest configuration, all my components tests started failing with the same error:\r\n\r\n```shell\r\n[vue-test-utils]: window is undefined, vue-test-utils needs to be run in a browser environment. \r\n You can run the tests in node using jsdom \r\n See https://vue-test-utils.vuejs.org/guides/#browser-environment for more details.\r\n```\r\n\r\nAny idea how to solve this and be able to use both tools within the same project ?\r\n\r\nThanks!",[],"Conflict between @nuxt/test-utils jest preset and @vue/test-utils","2023-12-02T00:13:13Z","https://github.com/nuxt/test-utils/issues/488",{"description":2994,"labels":2995,"number":3001,"owner":2909,"repository":2910,"state":2924,"title":3002,"updated_at":3003,"url":3004,"score":3005},"### For what version of Nuxt UI are you asking this question?\n\nv3.0.0-alpha.x\n\n### Description\n\nFor example if I use something like this,\n\n`const items=[{label:'option 1', value:1},{label:'option 2',value:2}]`\n\n the value that is always assigned is string '1'\n\n`const typeData=ref(1)`\n\n ``\n \u003CUSelect v-model=\"form.productType\" class=\"w-full\" :items=\"items\" />\n```\n",[2996,2999,3000],{"name":2997,"color":2998},"duplicate","cfd3d7",{"name":2920,"color":2921},{"name":2906,"color":2907},2924,"[v3] select type only string?","2024-12-17T15:56:57Z","https://github.com/nuxt/ui/issues/2924",0.7875556,{"description":3007,"labels":3008,"number":3012,"owner":2909,"repository":2910,"state":2924,"title":3013,"updated_at":3014,"url":3015,"score":3016},"### Environment\n\nn/a\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nn/a\n\n### Reproduction\n\nif you go https://ui3.nuxt.dev/getting-started/license and then change `ui-pro` to `ui` it doesn't redirect. and on refresh it changes `ui` to `ui-pro`\n\n### Description\n\nto behave like https://ui3.nuxt.dev/getting-started/fonts when you change from `nuxt` to `vue`\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3009,3011],{"name":2979,"color":3010},"d73a4a",{"name":2906,"color":2907},2840,"docs: not redirecting after changine the UI pro to UI","2024-12-09T11:21:47Z","https://github.com/nuxt/ui/issues/2840",0.7885881,{"description":3018,"labels":3019,"number":3021,"owner":2909,"repository":2982,"state":2924,"title":3022,"updated_at":3023,"url":3024,"score":3025},"",[3020],{"name":2979,"color":2980},670,"[Project] Branches and files modals should close on `esc` like other modals","2023-02-15T12:32:43Z","https://github.com/nuxt/nuxt.com/issues/670",0.7897603,["Reactive",3027],{},["Set"],["ShallowReactive",3030],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$f6M7UbFcgRMCDyu0q2rms68SwsVIj9the33IKT1b_4UE":-1},"/nuxt/ui/3106"]