\n\t\u003C/div>\n\t\u003Cdiv class=\"mb-6\">\n\t\t\u003Cinput\n\t\t\tv-model=\"form.password\"\n\t\t\ttype=\"password\"\n\t\t\tid=\"password\"\n\t\t\tclass=\"w-full p-3 border border-gray-300 rounded mt-1\"\n\t\t\tplaceholder=\"Password\"\n\t\t/>\n\t\u003C/div>\n\t\u003Cdiv class=\"mb-6\">\n\t\t\u003Cinput\n\t\t\tv-model=\"form.confirm_password\"\n\t\t\ttype=\"confirm_password\"\n\t\t\tid=\"confirm_password\"\n\t\t\tclass=\"w-full p-3 border border-gray-300 rounded mt-1\"\n\t\t\tplaceholder=\"Password Confirmation\"\n\t\t/>\n\t\u003C/div>\n\t\u003Cbutton\n\t\ttype=\"submit\"\n\t\tclass=\"w-full bg-blue-600 text-white p-3 rounded hover:bg-blue-700\"\n\t>\n\t\tCreate\n\t\u003C/button>\n\u003C/form>\n\u003C/template>\n\u003Cscript setup>\nconst handleSubmit = async () => {\n\t\n\tif (form.value.password !== form.value.confirm_password) {\n\t\tconsole.log(\"Passwords do not match\");\n\t\talert(\"Passwords do not match\");\n\t\treturn;\n\t}\n\n\tconsole.log(form.value);\n};\n...\n```\n\nhttps://github.com/user-attachments/assets/18ea3431-cadb-4613-a2a3-4703755f2f91\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[2059,2060],{"name":1985,"color":1986},{"name":2061,"color":2062},"needs reproduction","FBCA04",30185,"Page refresh bug","2025-02-03T14:25:51Z","https://github.com/nuxt/nuxt/issues/30185",0.7445594,{"description":2069,"labels":2070,"number":2075,"owner":1988,"repository":1988,"state":1999,"title":2076,"updated_at":2077,"url":2078,"score":2079},"### Describe the feature\n\nI'm currently using a component library that has a BaseButton.\r\n\r\nThis button changes it's implementation based on the framework where the ui library is used.\r\n\r\nEx.: if the library is used in Nuxt, it should use **nuxt-link**, otherwise **router-link** or even plain **button**\r\n\r\n```\r\n\u003Ctemplate>\r\n \u003Cnuxt-link v-if=\"nuxt && to\" :to=\"to\" class=\"base-button button-primary\" :disabled=\"disabled\">\r\n \u003Cslot/>\r\n \u003C/nuxt-link>\r\n \u003Crouter-link v-else-if=\"!nuxt && to\" :to=\"to\" class=\"base-button\" :disabled=\"disabled\">\r\n \u003Cslot/>\r\n \u003C/router-link>\r\n \u003Cbutton v-else type=\"button\" @click=\"$emit('click')\" class=\"base-button\" :disabled=\"disabled\">\r\n \u003Cslot/>\r\n \u003C/button>\r\n\u003C/template>\r\n```\r\n\r\nSee https://stackoverflow.com/questions/74593611/detect-in-vue-component-if-its-used-in-nuxt-3-or-somewhere-else\r\n\r\n**This worked perfectly in Nuxt 2** because there was a global nuxt object you could use to check against, but this does not exist anymore.\r\n\r\nI've seen there is a **__NUXT__** property in the browser, but you can't address the window object when using SSR.\r\n\r\nAlso, process.env.NUXT_VITE_NODE_OPTIONS can't be used to check against in the browser.\r\n\r\n**There needs to be a way to detect the framework from within components without requiring imports from Nuxt, that would fail when used outside of Nuxt.**\n\n### Additional information\n\n- [ ] Would you be willing to help implement this feature?\n- [ ] Could this feature be implemented as a module?\n\n### Final checks\n\n- [X] Read the [contribution guide](https://nuxt.com/docs/community/contribution).\n- [X] Check existing [discussions](https://github.com/nuxt/nuxt/discussions) and [issues](https://github.com/nuxt/nuxt/issues).",[2071,2074],{"name":2072,"color":2073},"3.x","29bc7f",{"name":1985,"color":1986},19698,"Way to detect Nuxt framework from library during SSR / CSR","2024-08-13T13:19:34Z","https://github.com/nuxt/nuxt/issues/19698",0.7451405,["Reactive",2081],{},["Set"],["ShallowReactive",2084],{"TRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"Tel550M7uDOdfHlXK0WVBDzgOsVfhJarurq1ofcVKng":-1},"/nuxt/nuxt.com/152"]