\n \u003CUKbd value=\"G\" />\n \u003C/template>\n\u003C/UInput>\n```\n\u003Cimg width=\"496\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/be2e8457-b3ac-4b70-838b-2b2b7399c091\" />\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3061,3064],{"name":3062,"color":3063},"bug","d73a4a",{"name":3024,"color":3025},2977,"The placeholder in UInput within UModal does not display","2025-03-03T09:06:21Z","https://github.com/nuxt/ui/issues/2977",0.753122,{"description":3071,"labels":3072,"number":3076,"owner":3030,"repository":3030,"state":3032,"title":3077,"updated_at":3078,"url":3079,"score":3080},"I'm trying to debug how my websites head meta tags are scraped when shared on facebook.\r\n\r\nMy nuxt head property in `nuxt.config.js` is \r\n\r\n```\r\n head: {\r\n title: 'Karai Music',\r\n meta: [\r\n { charset: 'utf-8' },\r\n { name: 'viewport', content: 'width=device-width, initial-scale=1' },\r\n { hid: 'description', name: 'description', content: 'Music Sharing Site' },\r\n { property: 'og:site_name', content: 'Karai Music'},\r\n { hid: 'og:url', property: 'og:url', content: 'https://karaimusic.com'},\r\n { hid: 'og:description', property: 'og:description', content: 'Music Sharing Site'},\r\n { hid: 'og:title', property: 'og:title', content: 'Karai Music | Music Sharing Site'},\r\n { property: 'og:type', content: 'article' },\r\n ]\r\n```\r\n\r\nWhen I use the [facebook scraping tool](https://developers.facebook.com/tools/debug/sharing/?q=https%3A%2F%2Fkaraimusic.com%2Ftracks%2Fcourtney-barnett-nameless-faceless) for https://karaimusic.com/tracks/courtney-barnett-nameless-faceless, I get a 404 response and the scraper fails to get the appropriate meta tags defaulting to the tags set in `nuxt.config.js`.\r\n\r\n`Below is what the scraper sees for the URL https://karaimusic.com/tracks/courtney-barnett-nameless-faceless`\r\n\r\n```\r\n\u003C!DOCTYPE html>\r\n\u003Chtml data-n-head=\"\">\r\n\u003Chead>\r\n\u003Cmeta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\r\n\u003Cmeta data-n-head=\"true\" charset=\"utf-8\">\r\n\u003Cmeta data-n-head=\"true\" name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n\u003Cmeta data-n-head=\"true\" data-hid=\"description\" name=\"description\" content=\"Music Sharing Site\">\r\n\u003Cmeta data-n-head=\"true\" property=\"og:site_name\" content=\"Karai Music\">\r\n\u003Cmeta data-n-head=\"true\" data-hid=\"og:url\" property=\"og:url\" content=\"https://karaimusic.com\">\r\n\u003Cmeta data-n-head=\"true\" data-hid=\"og:description\" property=\"og:description\" content=\"Music Sharing Site\">\r\n\u003Cmeta data-n-head=\"true\" data-hid=\"og:title\" property=\"og:title\" content=\"Karai Music | Music Sharing Site\">\r\n\u003Cmeta data-n-head=\"true\" property=\"og:type\" content=\"article\">\r\n\u003Ctitle data-n-head=\"true\">Karai Music\u003C/title>\r\n\u003Clink data-n-head=\"true\" rel=\"icon\" type=\"image/x-icon\" href=\"/favicon.ico\">\r\n\u003Clink rel=\"preload\" href=\"/_nuxt/manifest.24bad83b27fc84514cde.js\" as=\"script\">\r\n\u003Clink rel=\"preload\" href=\"/_nuxt/vendor.1266f8bdcbd8d57e2f67.js\" as=\"script\">\r\n\u003Clink rel=\"preload\" href=\"/_nuxt/app.809bd7aa04f076f1863b.js\" as=\"script\">\r\n\u003Clink rel=\"prefetch\" href=\"/_nuxt/layouts/default.947c97477291cbadc43c.js\">\r\n\u003Clink rel=\"prefetch\" href=\"/_nuxt/pages/index.a123e0e9a3b88348faca.js\">\r\n\u003Clink rel=\"prefetch\" href=\"/_nuxt/pages/tracks/_track/index.2794c46356b85003bbbf.js\">\r\n\u003Clink rel=\"prefetch\" href=\"/_nuxt/pages/albums/_album/index.d5f634b27d2695c9e1af.js\">\r\n\u003Clink rel=\"prefetch\" href=\"/_nuxt/pages/tracks/index.b0d13e614f67d4962239.js\">\r\n\u003Clink rel=\"prefetch\" href=\"/_nuxt/pages/albums/index.d9ed08d93666a93ab9cf.js\">\r\n\u003Clink rel=\"prefetch\" href=\"/_nuxt/pages/about/index.d026fab82a4d42b2ac9f.js\">\r\n\u003Clink rel=\"prefetch\" href=\"/_nuxt/pages/radio/index.cada4a6f7c9a2e262d4e.js\">\r\n\u003Clink rel=\"prefetch\" href=\"/_nuxt/pages/terms/index.658d7190f2cddd568b71.js\">\r\n\u003C/head>\r\n\u003Cbody data-n-head=\"\">\r\n \u003Cdiv id=\"__nuxt\">\r\n\u003Cstyle>body, html, #__nuxt { background-color: white; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; margin: 0; padding: 0;}.spinner { width: 40px; height: 40px; margin: 100px auto; background-color: #dbe1ec; border-radius: 100%; -webkit-animation: sk-scaleout 1.0s infinite ease-in-out; animation: sk-scaleout 1.0s infinite ease-in-out;}@-webkit-keyframes sk-scaleout { 0% { -webkit-transform: scale(0) } 100% { -webkit-transform: scale(1.0); opacity: 0; }}@keyframes sk-scaleout { 0% { -webkit-transform: scale(0); transform: scale(0); } 100% { -webkit-transform: scale(1.0); transform: scale(1.0); opacity: 0; }}\u003C/style>\r\n\u003Cdiv class=\"spinner\"> \u003Cdiv class=\"double-bounce1\">\u003C/div> \u003Cdiv class=\"double-bounce2\">\u003C/div>\r\n\u003C/div>\r\n\u003C!-- http://tobiasahlin.com/spinkit -->\r\n\u003C/div>\r\n \u003Cscript type=\"text/javascript\" src=\"/_nuxt/manifest.24bad83b27fc84514cde.js\">\u003C/script>\u003Cscript type=\"text/javascript\" src=\"/_nuxt/vendor.1266f8bdcbd8d57e2f67.js\">\u003C/script>\u003Cscript type=\"text/javascript\" src=\"/_nuxt/app.809bd7aa04f076f1863b.js\">\u003C/script>\r\n\u003C/body>\r\n\u003C/html>\r\n\r\n```\r\n\r\n`pages/tracks/_track.vue is the corresponding vue file for https://karaimusic.com/tracks/courtney-barnett-nameless-faceless`\r\n```\r\n\u003Cscript>\r\nimport wp from '~/lib/wp'\r\nimport InfinityContainer from '~/components/post/InfinityContainer.vue'\r\n export default {\r\n components: {\r\n InfinityContainer\r\n },\r\n async asyncData ({ params }) {\r\n const post = [await wp.getPost(params.track)]\r\n return {\r\n post\r\n }\r\n },\r\n head () {\r\n return {\r\n title: `${this.post[0].acf.title} - ${this.post[0].acf.artist} | Karai Music`,\r\n meta: [\r\n { hid: 'description', name: 'description', content: this.post[0].acf.abstract },\r\n { hid: 'og:description', property: 'og:description', content: this.post[0].acf.abstract },\r\n { property: 'og:type', content: 'article' },\r\n { hid: 'og:title', property: 'og:title', content: `${this.post[0].acf.title} - ${this.post[0].acf.artist} | Karai Music`},\r\n { property: 'og:image', content: this.post[0].acf.cover_art },\r\n { hid: 'og:url', property: 'og:url', content: `https://karaimusic.com/tracks/${this.post[0].slug}`},\r\n ]\r\n }\r\n },\r\n }\r\n \r\n\r\n\u003C/script>\r\n```\r\n\r\nWhen I try https://karaimusic.com/tracks, the [facebook scraper](https://developers.facebook.com/tools/debug/sharing/?q=https%3A%2F%2Fkaraimusic.com%2Ftracks) correctly gets the tags.\r\n\r\n[This](https://developers.facebook.com/tools/debug/echo/?q=https%3A%2F%2Fkaraimusic.com%2Ftracks%2F) is what the scraper sees.\r\n\r\nAt first I thought it could be because I'm retrieving data from an API but I added an `og:image` property that gets an image from the API and it gets the image properly.\r\n\r\n`tags scrapped for https://karaimusic.com/tracks`\r\n\r\n```\r\nog:url | https://karaimusic.com/tracks/\r\nog:type | article\r\nog:title | Karai Music \\| New tracks\r\nog:image | https://karaimusic.co.uk/wp-content/uploads/2018/03/102636-lemon-glow.jpg\r\nog:description | Latest tracks released\r\nog:site_name | Karai Music\r\nog:updated_time | 1521570324\r\n```\r\n\r\n\r\n`pages/tracks/index.vue`\r\n\r\n```\r\n\u003Cscript>\r\nimport ListPosts from '~/components/list/ListPosts.vue'\r\nimport wp from '~/lib/wp'\r\n\r\nexport default {\r\n components: {\r\n ListPosts\r\n },\r\n head () {\r\n return {\r\n meta: [\r\n { hid: 'og:url', property: 'og:url', content: 'https://karaimusic.com/tracks/'},\r\n { hid: 'og:description', property: 'og:description', content: 'Latest tracks released'},\r\n { hid: 'og:title', property: 'og:title', content: 'Karai Music | New tracks'},\r\n { property: 'og:type', content: 'object' },\r\n { property: 'og:image', content: this.posts[3].acf.cover_art },\r\n\r\n ]\r\n }\r\n },\r\n async asyncData ({ params }) {\r\n const posts = await wp.getTrackPosts(1,12)\r\n return {\r\n posts\r\n }\r\n },\r\n}\r\n\u003C/script>\r\n```\r\n\r\nAny ideas on why it isn't scraping properly?\r\nDoes the `\u003C!-- http://tobiasahlin.com/spinkit -->` element in the `body` tag in the HTML file for `https://karaimusic.com/tracks/courtney-barnett-nameless-faceless` suggest the page hasn't fully loaded when it's scraped?\n\n\u003C!--cmty-->\u003C!--cmty_prevent_hook-->\n\u003Cdiv align=\"right\">\u003Csub>\u003Cem>This question is available on \u003Ca href=\"https://nuxtjs.cmty.io\">Nuxt.js\u003C/a> community (\u003Ca href=\"https://nuxtjs.cmty.io/nuxt/nuxt.js/issues/c2657\">#c2657\u003C/a>)\u003C/em>\u003C/sub>\u003C/div>",[3073],{"name":3074,"color":3075},"2.x","d4c5f9",3070,"Head Meta Tags not showing on certain pages","2023-01-18T16:09:57Z","https://github.com/nuxt/nuxt/issues/3070",0.7534106,{"description":3082,"labels":3083,"number":3087,"owner":3030,"repository":3031,"state":3032,"title":3088,"updated_at":3089,"url":3090,"score":3091},"### Environment\n\nOperating System: Windows_NT\nNode Version: v22\nNuxt Version: 3.16.1\nCLI Version: 3.23.1\nNitro Version: 2.11.7\nPackage Manager: npm@10.8.2\nBuilder: -\nUser Config: devtools, modules, css, future, compatibilityDate\nRuntime Modules: @nuxt/ui@3.0.2, @nuxt/eslint@1.2.0, @nuxt/content@3.4.0, @vueuse/nuxt@13.0.0, @nuxt/image@1.10.0\nBuild Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\n3.16\n\n### Reproduction\n\n1. create a reaactive items array which will be used as data \n items = ref([\"Backlog\", \"Todo\", \"In Progress\" ]);\n2. create a Utable in template\n3. assing items array as data\n \u003CUTable :data= \"items\"/>\n4. add items to array \n \u003Ctempalte>\n \u003CUButton label=\"add\" @click=\"addItem\" />\n\n\n \u003CScript setup>\n const addItem = () => { items.value.push(\"Done\")}\n5. check table rows\n\n\nActual Result\nnew item is added to array but not in table until nex hot reload\n\nExpected result\nnew item should be added to table rows, as NuxUI V2\n\n\nnote: same issue adding colums props\n\n### Description\n\nUTable is not showing new items added to reactive array used for data until nex hot module reload\n\n\nhttps://codesandbox.io/p/devbox/fancy-hill-5fr65h?workspaceId=ws_Xcg6XEDPVvQDQh4Bj2yVGA\n\n\n### Additional context\n\n\u003Ctemplate>\n \u003CUContainer>\n \u003CUButton label=\"add\" @click=\"addItem\" />\n \u003CUTable :data= \"items\"/>\n \u003C/UContainer>\n\u003C/template>\n\n\u003Cscript setup lang=\"ts\">\nconst items = ref([\"Backlog\", \"Todo\", \"In Progress\" ]);\n\nconst addItem = () => {\n // pushing done to items array is no updated in table rows\n items.value.push(\"Done\")\n console.log(items.value)\n\n // Work arrond.\n // create a new arry reference an then assing it to items\n // this way new row is being added to table\n // const arr = items.value\n // items.value = [...arr]\n }\n\u003C/script>\n\n### Logs\n\n```shell-script\n\n```",[3084,3085,3086],{"name":3062,"color":3063},{"name":3024,"color":3025},{"name":3027,"color":3028},3732,"[Table] new item added to array is not rendered in table","2025-03-30T08:41:27Z","https://github.com/nuxt/ui/issues/3732",0.75573146,{"description":3093,"labels":3094,"number":3101,"owner":3030,"repository":3031,"state":3032,"title":3102,"updated_at":3103,"url":3104,"score":3105},"### Description\n\nHello, i was wondering if its possible to create something similar to this perhaps using the existing radio-group component.\r\n\r\nExample: https://tailwindui.com/components/application-ui/forms/radio-groups\r\n\u003Cimg width=\"1201\" alt=\"Screenshot 2024-01-11 at 7 59 09 PM\" src=\"https://github.com/nuxt/ui/assets/33962719/5c1bd9cb-7c96-4306-83c5-46eda713de10\">\r\n\n\n### Additional context\n\n_No response_",[3095,3098,3099],{"name":3096,"color":3097},"duplicate","cfd3d7",{"name":3021,"color":3022},{"name":3100,"color":3028},"wontfix-v2",1221,"Radio Groups cards","2025-03-24T15:01:33Z","https://github.com/nuxt/ui/issues/1221",0.75694215,{"description":3107,"labels":3108,"number":3109,"owner":3030,"repository":3041,"state":3032,"title":3110,"updated_at":3111,"url":3112,"score":3113},"Hello,\r\n\r\nCopy button from a code block is not the same on every nuxt website. I don't know if this should be fixed in nuxt/ui or in each website.\r\n\r\nnuxt.com\r\n\r\n\r\n\r\ncontent.nuxt.com\r\n\r\n\r\n\r\nimage.nuxt.com\r\n\r\n\r\n\r\n\r\nIt seems that docs for solutions are unified but there is some minor differences with nuxt.com like the background.",[],1390,"Copy code button is not the same on every nuxt website","2023-10-23T12:52:19Z","https://github.com/nuxt/nuxt.com/issues/1390",0.7640327,{"description":3115,"labels":3116,"number":3120,"owner":3030,"repository":3031,"state":3032,"title":3121,"updated_at":3122,"url":3123,"score":3124},"### Description\n\n\n## 🔧 Current Behavior\n\nThe `deferInputValidation` parameter in `useFormField` is currently hardcoded in the `Input` component:\n\n```ts\nconst { emitFormBlur, emitFormInput, /* ... */ } = useFormField\u003CInputProps>(props, { \n deferInputValidation: false // Hardcoded\n})\n```\n\nThis limits flexibility, as consumers of the `Input` component cannot control validation timing behavior (e.g., validate on blur vs. validate on input).\n\n## ✅ Proposed Solution\n\nMake `deferInputValidation` configurable via a component prop:\n\n1. **Pass dynamic value to `useFormField`:**\n\n```ts\nuseFormField\u003CInputProps>(props, {\n deferInputValidation: props.deferInputValidation\n})\n```\n\n2. **Update the component props interface:**\n\n```ts\ndeferInputValidation?: boolean\n```\n\n---\n\n## 💡 Use Cases\n\n- **Delayed validation** for complex, interdependent form fields \n- **Immediate validation** for sensitive or critical fields \n- Flexibility for UX patterns like **\"validate-on-blur\"** or **\"validate-as-you-type\"**\n\n---\n\n## 🔁 Alternatives Considered\n\n- **Wrapper Component**: Adds unnecessary complexity \n- **Global Form-Level Config**: Less flexible than per-field control\n\n---\n\n## 🧪 Testing Impact\n\n- Covered by existing validation tests with both `true` and `false` cases\n\n---\n\n## 📚 Documentation\n\nRequires updates to:\n\n- Component prop API \n- Form validation best practices\n\n---\n\n## ⚙️ Why This Matters\n\nThis change supports **Inversion of Control** — empowering component consumers to control validation timing based on specific UX needs.\n```\n\n### Additional context\n\n_No response_",[3117,3118,3119],{"name":3021,"color":3022},{"name":3024,"color":3025},{"name":3027,"color":3028},3810,"[UForm] Feature Request: Make deferInputValidation Configurable in useFormField","2025-04-20T15:25:42Z","https://github.com/nuxt/ui/issues/3810",0.7645718,{"description":3126,"labels":3127,"number":3131,"owner":3030,"repository":3132,"state":3032,"title":3133,"updated_at":3134,"url":3135,"score":3136},"### Environment\n\n- Operating System: `Darwin`\r\n- Node Version: `v21.5.0`\r\n- Nuxt Version: `3.9.0`\r\n- CLI Version: `3.10.0`\r\n- Nitro Version: `2.8.1`\r\n- Package Manager: `npm@10.2.4`\r\n- Builder: `-`\r\n- User Config: `alias`, `app`, `devtools`, `eslint`, `i18n`, `imports`, `modules`, `nitro`, `runtimeConfig`, `ssr`, `testUtils`, `typescript`, `vite`, `vuetify`\r\n- Runtime Modules: `@pinia-plugin-persistedstate/nuxt@1.2.0`, `@pinia/nuxt@0.5.1`, `@nuxtjs/i18n@8.0.0`, `@nuxtjs/eslint-module@4.1.0`, `nuxt-typed-router@3.5.0`, `@nuxt/test-utils/module@3.9.0`, `vuetify-nuxt-module@0.7.3`, `nuxt-lodash@2.5.3`\r\n- Build Modules: `-`\r\n\n\n### Reproduction\n\nhttps://stackblitz.com/edit/github-cyqbu8\n\n### Describe the bug\n\nAfter upgrading to 3.9.0, I am getting errors when running tests due to missing identifiers in the nuxt package. Reproduction shows error from my middleware test but I get similar errors when running component tests but this time the error is \"Error: Missing \"#build/paths.mjs\" specifier in \"nuxt\" package\"\n\n### Additional context\n\n_No response_\n\n### Logs\n\n_No response_",[3128],{"name":3129,"color":3130},"pending triage","5D08F5",679,"test-utils","Error running test after upgrade to 3.9.0","2024-01-28T11:25:59Z","https://github.com/nuxt/test-utils/issues/679",0.76483876,["Reactive",3138],{},["Set"],["ShallowReactive",3141],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fTUGzZwNdy3bYksKCqi8n4XImMGV1BrniEG-qgA94oY4":-1},"/nuxt/ui/3765"]