\n```\n\n---\nI checked the latest documentation, and the examples of UTable regarding column display control seem to have no effect, such as: https://ui3.nuxt.dev/components/table#with-column-visibility.\n\n\n\n\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[2015,2018],{"name":2016,"color":2017},"bug","d73a4a",{"name":1988,"color":1989},2874,"The update of the columns property will not trigger an update of the UTable component","2025-01-25T13:12:40Z","https://github.com/nuxt/ui/issues/2874",0.6357606,{"description":2025,"labels":2026,"number":2033,"owner":1991,"repository":2034,"state":2007,"title":2035,"updated_at":2036,"url":2037,"score":2038},"### Environment\r\n\r\n```\r\nSystem:\r\n OS: Linux 5.15 Ubuntu 20.04.6 LTS (Focal Fossa)\r\n CPU: (8) x64 Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz\r\n Memory: 7.71 GB / 15.38 GB\r\n Container: Yes\r\n Shell: 5.0.17 - /bin/bash\r\n Binaries:\r\n Node: 20.11.1 - ~/.nvm/versions/node/v20.11.1/bin/node\r\n npm: 10.2.4 - ~/.nvm/versions/node/v20.11.1/bin/npm\r\n Browsers:\r\n Chrome: 112.0.5615.49\r\n npmPackages:\r\n vitest: 1.6.0 => 1.6.0\r\n\r\n```\r\n\r\n### Reproduction\r\n\r\nNon-working code with setInterval -\r\n```\r\n describe('Testing timers', () => {\r\n let triggered = false;\r\n beforeAll(() => {\r\n vi.useFakeTimers();\r\n setInterval(()=>{\r\n triggered = true;\r\n }, 1000)\r\n });\r\n afterAll(() => {\r\n vi.useRealTimers();\r\n });\r\n it.only('Should trigger the timer', () => {\r\n vi.advanceTimersByTime(1000);\r\n expect(triggered).toEqual(true); // Fails. triggered = false here\r\n });\r\n });\r\n```\r\nWorking with setTimeout\r\n```\r\n describe('Testing timers', () => {\r\n let triggered = false;\r\n beforeAll(() => {\r\n vi.useFakeTimers();\r\n setTimeout(()=>{\r\n triggered = true;\r\n }, 1000)\r\n });\r\n afterAll(() => {\r\n vi.useRealTimers();\r\n });\r\n it.only('Should trigger the timer', () => {\r\n vi.advanceTimersByTime(1000);\r\n expect(triggered).toEqual(true); // Successful.\r\n });\r\n });\r\n```\r\n\r\nReproduction - https://stackblitz.com/edit/github-agxb9y-xks33q?file=test%2Fapp.nuxt.spec.ts\r\nWorks without nuxt - https://stackblitz.com/edit/vitest-dev-vitest-hr7i1i?file=test%2Ftimer.test.ts\r\n\r\n### Describe the bug\r\n\r\n`setInterval` isn't triggering with `fakeTimer`, however `setTimeout` does. I have tried `advanceTimersByTime`, `advanceTimersToNextTimer` and `runAllTimers` but doesn't help.\r\n\r\nNote - I don't find this issue with the Vitest itself. using `defineVitestConfig` is causing this behaviour.\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Logs\r\n\r\n_No response_",[2027,2028,2031],{"name":2016,"color":2017},{"name":2029,"color":2030},"vitest-environment","b60205",{"name":2001,"color":2032},"5D08F5",897,"test-utils","useFakeTimers isn't working for the setInterval.","2024-12-07T20:09:05Z","https://github.com/nuxt/test-utils/issues/897",0.6559174,{"description":2040,"labels":2041,"number":2042,"owner":1991,"repository":2043,"state":2007,"title":2044,"updated_at":2045,"url":2046,"score":2047},"There seems to be a bug with the integrations active class in header\r\n\r\nhttps://github.com/nuxt/nuxt.com/assets/38922203/d50705a7-ae7f-4317-ac3c-867d41ac76ac\r\n\r\n",[],1432,"nuxt.com","Integration active class ","2023-11-22T14:26:00Z","https://github.com/nuxt/nuxt.com/issues/1432",0.65701103,{"labels":2049,"number":2052,"owner":1991,"repository":1991,"state":2007,"title":2053,"updated_at":2054,"url":2055,"score":2056},[2050,2051],{"name":2001,"color":2002},{"name":2004,"color":2005},6852,"Compatibility issue with Nuxt@2.11 and @vue/test-utils","2023-01-22T15:34:48Z","https://github.com/nuxt/nuxt/issues/6852",0.6649419,{"description":2058,"labels":2059,"number":2062,"owner":1991,"repository":1992,"state":2007,"title":2063,"updated_at":2064,"url":2065,"score":2066},"### Description\n\nBefore using `nuxt ui`, I briefly skimmed through the repository and found an already closed issue: [3018](https://github.com/nuxt/ui/issues/3018)\n\nThe error and solution mentioned in this issue (the [v2 documentation](https://ui.nuxt.com/getting-started/installation) indeed did not mention the solution) can actually be resolved by adding `tailwindcss@next` to the `peerDependencies` section in the `package.json` file.\n\nThis is because when [nuxi module add](https://github.com/nuxt/cli/blob/1afc06e8d08ea781fc5fede343de8d68865c2b4e/packages/nuxi/src/commands/module/add.ts#L134) installs a module, it not only installs the module itself but also scans the module package's `peerDependencies`.\n\nFor example, when using `nuxi module add pinia`, since `@pinia/nuxt` has `pinia` listed in its `peerDependencies` in the [package.json](https://github.com/vuejs/pinia/blob/3b21e08b6a068d18112b915b83f702fb5504ab73/packages/nuxt/package.json#L51C4-L51C20), both `@pinia/nuxt` and `pinia` will be automatically installed during the module installation.\n\nIf there are dependencies in `peerDependencies` that you do not want `nuxi module` to install automatically, you can use `peerDependenciesMeta` to ignore them, for [example](https://github.com/atinux/nuxt-auth-utils/blob/6b61b8888e3b3c6f60fd5ff767b7f0aa6cf09fc9/package.json#L57):\n\n```\n\"peerDependenciesMeta\": {\n \"pinia\": {\n \"optional\": true\n }\n },\n```\n\nTherefore, Nuxt UI can specify `tailwindcss@next` in the `peerDependencies` of `package.json`, ensuring Tailwind CSS is automatically installed when the Nuxt UI module is installed.\n\nThis solution applies to both v3 and v2.\n\n> PS: I noticed `typescript` in the `peerDependencies` of the v3 package.json. Is this a necessary dependency similar to `tailwindcss`? If not, after adding tailwindcss, perhaps `peerDependenciesMeta` could be used to ignore it.",[2060,2061],{"name":1985,"color":1986},{"name":1988,"color":1989},3349,"Add \"tailwindcss@next\" to the \"peerDependencies\" section in the package.json file.","2025-02-21T17:05:10Z","https://github.com/nuxt/ui/issues/3349",0.665192,{"labels":2068,"number":2071,"owner":1991,"repository":1991,"state":2007,"title":2072,"updated_at":2073,"url":2074,"score":2075},[2069,2070],{"name":2001,"color":2002},{"name":2004,"color":2005},8340," Cannot find module 'vue' from '/vagrant' ","2023-01-22T15:38:17Z","https://github.com/nuxt/nuxt/issues/8340",0.6668527,{"description":2077,"labels":2078,"number":2080,"owner":1991,"repository":1992,"state":2007,"title":2081,"updated_at":2082,"url":2083,"score":2084},"### Description\n\nI want to use a UVerticalNavigation component however I want to manage my self who should be active since:\n\n- I don't have any to params\n- I want to stay on the same page but triggering my function on click\n\n\nEg:\n\n```\n \u003CUVerticalNavigation :links=\"links\" >\n \u003C/UVerticalNavigation>\n\n\n const links = [\n {\n label: 'Inbox',\n icon: 'i-heroicons-home',\n click: () => selectFolder('inbox'),\n active: activeFolder.value == 'inbox',\n }, {\n label: 'Drafts',\n icon: 'i-heroicons-pencil',\n click: () => selectFolder('drafts'),\n active: activeFolder.value == 'drafts'\n }, {\n label: 'Outbox',\n icon: 'i-heroicons-envelope',\n click: () => selectFolder('outbox'),\n active: activeFolder.value == 'outbox'\n }, {\n label: 'Sent',\n icon: 'i-heroicons-paper-airplane',\n click: () => selectFolder('sent'),\n active: activeFolder.value == 'sent'\n }, {\n label: 'Spam',\n icon: 'i-heroicons-exclamation-triangle',\n click: () => selectFolder('spam'),\n active: activeFolder.value == 'spam'\n }, {\n label: 'All mails',\n icon: 'i-heroicons-inbox-stack',\n click: () => selectFolder('all'),\n active: activeFolder.value == 'all'\n }\n ]\n\n```\n\nI tried using the activeFOlder.value but it's not updating upon the value change\n\nThank you!\n",[2079],{"name":1985,"color":1986},3351,"UVerticalNavigation Active","2025-02-19T05:51:40Z","https://github.com/nuxt/ui/issues/3351",0.6695819,{"description":2086,"labels":2087,"number":2090,"owner":1991,"repository":1991,"state":2007,"title":2091,"updated_at":2092,"url":2093,"score":2094},"\u003C!-- 💚 Thanks for your time to make Nuxt better with your feedbacks 💚\r\n\r\n**IMPORTANT** Before reporting a bug:\r\n\r\n- Please make sure that you have read through Nuxt documentation: https://nuxtjs.org\r\n- If issue is related to a module please create the issue in corresponding repository\r\n- Ensure using latest version of nuxt dependencies using `yarn upgrade nuxt` or `npm upgrade nuxt`\r\n\r\n👍 A properly detailed bug report can save a LOT of time and help fixing issues as soon as possible.\r\n-->\r\n\r\n\r\n\r\n### Versions\r\n\r\n- nuxt: v2.15.3\r\n- node: v12.13.0\r\n\r\n### Reproduction\r\n\r\nThere is no way to reproduce as I have private packages as dependencies.\r\n\r\n### Steps to reproduce\r\n\r\nUpgrade to nuxt 2.15.3\r\nrun npm ci verify there are no errors\r\nthen run npm run dev and verify this error\r\n\r\n\r\n\r\n\r\nMy dependencies\r\n\r\n````json\r\n\"dependencies\": {\r\n \"@allanoricil/sql-formatter\": \"^0.4.0\",\r\n \"@allanoricil/vue-monaco\": \"^0.2.0\",\r\n \"@allanoricil/vue-multiselect\": \"^0.0.1\",\r\n \"@nuxtjs/axios\": \"^5.12.5\",\r\n \"bootstrap\": \"^4.6.0\",\r\n \"bootstrap-vue\": \"^2.21.2\",\r\n \"core-js\": \"^3.8.3\",\r\n \"debounce\": \"^1.2.1\",\r\n \"html-entities\": \"^2.1.0\",\r\n \"luxon\": \"^1.25.0\",\r\n \"monaco-editor\": \"^0.22.3\",\r\n \"nuxt\": \"^2.15.3\",\r\n \"object-hash\": \"^2.1.1\",\r\n \"rgb-hex\": \"^3.0.0\",\r\n \"socket.io-client\": \"^2.4.0\",\r\n \"soql-parser-js\": \"^3.0.0\",\r\n \"vue-clipboard2\": \"^0.3.1\",\r\n \"vue-codemirror\": \"^4.0.6\",\r\n \"vue-columns-resizable\": \"0.0.1\",\r\n \"vue-confirm-dialog\": \"^1.0.2\",\r\n \"vue-drag-drop\": \"^1.1.4\",\r\n \"vue-highlightjs\": \"^1.3.3\",\r\n \"vue-infinite-loading\": \"^2.4.5\",\r\n \"vue-inline-svg\": \"^2.0.0\",\r\n \"vue-json-pretty\": \"^1.7.1\",\r\n \"vue-json-viewer\": \"^2.2.17\",\r\n \"vue-loading-spinner\": \"^1.0.11\",\r\n \"vue-pagination-2\": \"^3.0.8\",\r\n \"vue-shortkey\": \"^3.1.7\",\r\n \"vue-socket.io-extended\": \"^4.0.6\",\r\n \"vue-stripe-checkout\": \"^3.5.14-beta.0\",\r\n \"vue-stripe-elements-plus\": \"^0.3.2\",\r\n \"vuelidate\": \"^0.7.5\",\r\n \"vuex-extensions\": \"^1.1.5\",\r\n \"vuex-persist\": \"^3.1.3\"\r\n },\r\n \"devDependencies\": {\r\n \"@nuxtjs/eslint-config\": \"^5.0.0\",\r\n \"@nuxtjs/eslint-module\": \"^3.0.2\",\r\n \"@nuxtjs/pwa\": \"^3.3.5\",\r\n \"@nuxtjs/svg\": \"^0.1.12\",\r\n \"@nuxtjs/vuetify\": \"^1.11.3\",\r\n \"babel-eslint\": \"^10.1.0\",\r\n \"base64-inline-loader\": \"^1.1.1\",\r\n \"cross-env\": \"^7.0.3\",\r\n \"cypress\": \"^6.5.0\",\r\n \"dotenv\": \"^8.2.0\",\r\n \"eslint\": \"^7.18.0\",\r\n \"eslint-config-prettier\": \"^7.2.0\",\r\n \"eslint-plugin-nuxt\": \"^2.0.0\",\r\n \"eslint-plugin-prettier\": \"^3.3.1\",\r\n \"eslint-plugin-vue\": \"^7.5.0\",\r\n \"javascript-obfuscator\": \"^2.10.3\",\r\n \"miragejs\": \"^0.1.41\",\r\n \"monaco-editor-webpack-plugin\": \"^3.0.0\",\r\n \"prettier\": \"^2.2.1\",\r\n \"webpack-obfuscator\": \"^2.6.0\"\r\n }\r\n````\r\n\r\n\r\nNuxt config\r\n\r\n````js\r\nimport webpack from 'webpack';\r\nimport WebpackObfuscator from 'webpack-obfuscator';\r\nimport MonacoEditorPlugin from 'monaco-editor-webpack-plugin';\r\n\r\nexport default {\r\n target: 'static',\r\n ssr: false,\r\n env: {\r\n WEBHOOKS_SERVER: process.env.WEBHOOKS_SERVER || 'http://localhost:9090',\r\n KEYGEN_ACCOUNT_ID: process.env.KEYGEN_ACCOUNT_ID || '78edb4be-f034-4809-9ea9-b29b0dff113e',\r\n STRIPE_PUBLISHABLE_KEY: process.env.STRIPE_PUBLISHABLE_KEY || 'pk_test_51HJP5dGES2qDPBojjEaDhVwhbPgJ1W3lN5H24uMvlUqPgA9KxEJGdTyA2DIzi8lywEjsSLOW4rOLINW4oHwXfquo00Syg6gw0d',\r\n STRIPE_PRODUCT_KEY: process.env.STRIPE_PRODUCT_KEY || 'prod_IlXQl78y4QXvKS',\r\n SALESFORCE_API_VERSION: process.env.SALESFORCE_API_VERSION || 'v50.0',\r\n SALESFORCE_SERVER: process.env.SALESFORCE_SERVER || 'http://127.0.0.1:5000',\r\n },\r\n // Global page headers: https://go.nuxtjs.dev/config-head\r\n head: {\r\n title: 'salesforce-query-editor',\r\n htmlAttrs: {\r\n lang: 'en',\r\n ...(process.env === 'dev' && {oncontextmenu: 'return false'})\r\n },\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: '' },\r\n ],\r\n link: [],\r\n script: [\r\n {\r\n src: 'https://js.stripe.com/v3/',\r\n crossorigin: 'anonymous',\r\n },\r\n ],\r\n },\r\n\r\n // Global CSS: https://go.nuxtjs.dev/config-css\r\n css: [\r\n '~/assets/css/googleCookieFont.css',\r\n '~/assets/css/global.css',\r\n '~/assets/css/vscode-dark.css'\r\n ],\r\n\r\n // Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins\r\n plugins: [\r\n { src: '~plugins/vuelidate.js' , ssr: false },\r\n { src: '~plugins/confirm-dialog.js' , ssr: false },\r\n { src: '~plugins/vue-multiselect.js' , ssr: false },\r\n { src: '~plugins/vue-clipboard2.js' , ssr: false },\r\n { src: '~plugins/vue-drag-drop.js' , ssr: false },\r\n { src: '~plugins/vue-json-viewer.js' , ssr: false },\r\n { src: '~plugins/vue-shortkey.js' , ssr: false },\r\n { src: '~plugins/vue-inline-svg.js' , ssr: false },\r\n { src: '~plugins/fontawesome.js', ssr: false },\r\n { src: '~plugins/vue-socket.io.js', ssr: false },\r\n { src: '~plugins/vue-infinite-loading.js', ssr: false },\r\n { src: '~plugins/vue-columns-resizable.js', ssr: false}\r\n ],\r\n\r\n components: true,\r\n\r\n generate: {\r\n fallback: '404.html'\r\n },\r\n\r\n buildModules: [\r\n ['@nuxtjs/eslint-module', { fix: true, quiet: true }],\r\n \"@nuxtjs/svg\"\r\n ],\r\n\r\n loading: {\r\n height: '0px'\r\n },\r\n\r\n modules: [\r\n 'bootstrap-vue/nuxt',\r\n '@nuxtjs/axios',\r\n '@nuxtjs/pwa'\r\n ],\r\n\r\n axios: {},\r\n\r\n pwa: {\r\n manifest: {\r\n short_name: 'SOQL',\r\n name: 'Salesforce Query Editor',\r\n description:\r\n 'This Web App helps Salesforce Developers to write Queries and manage Salesforce data while using VSCode.',\r\n start_url: '/',\r\n theme_color: '#ffffff',\r\n background_color: '#ffffff',\r\n display: 'standalone'\r\n },\r\n icons: {\r\n purpose: ['maskable', 'any']\r\n }\r\n },\r\n\r\n // Build Configuration: https://go.nuxtjs.dev/config-build\r\n build: {\r\n extend(config, ctx) {\r\n if (ctx.isDev) {\r\n config.devtool = ctx.isClient ? 'source-map' : 'inline-source-map';\r\n }\r\n\r\n if (ctx.isClient) {\r\n config.output.filename = 'app.js',\r\n config.output.chunkFilename = '[id].js';\r\n config.optimization.splitChunks.cacheGroups.default = false;\r\n config.optimization.runtimeChunk = false;\r\n }\r\n\r\n if (!ctx.isDev && ctx.isClient && config.plugins) {\r\n config.plugins.push(\r\n new WebpackObfuscator({\r\n compact: true,\r\n identifierNamesGenerator: 'mangled',\r\n selfDefending: true,\r\n stringArray: true,\r\n rotateStringArray: true,\r\n shuffleStringArray: true,\r\n stringArrayThreshold: 0.8\r\n }, [])\r\n );\r\n }\r\n \r\n const nuxtFontLoaderIndex = config.module.rules.findIndex((rule) => String(rule.test) == String(/\\.(woff2?|eot|ttf|otf)(\\?.*)?$/i));\r\n\r\n const newFontLoader = {\r\n test: /\\.(woff2?|eot|ttf|otf)(\\?.*)?$/i,\r\n use: 'base64-inline-loader?limit=1000&name=[name].[ext]'\r\n }\r\n\r\n config.module.rules.splice(nuxtFontLoaderIndex, 1, newFontLoader);\r\n },\r\n\r\n plugins: [\r\n new MonacoEditorPlugin({\r\n languages: ['java'],\r\n features: ['!gotoSymbol'],\r\n }),\r\n new webpack.optimize.LimitChunkCountPlugin({\r\n maxChunks: 1\r\n }),\r\n ],\r\n },\r\n\r\n router: {\r\n mode: 'hash',\r\n },\r\n}\r\n\r\n````\r\n\r\n### What is Expected?\r\n\r\n\r\n### What is actually happening?\r\n",[2088,2089],{"name":2001,"color":2002},{"name":2004,"color":2005},9063,"Error: Cannot find module '@babel/core'","2023-01-22T15:38:48Z","https://github.com/nuxt/nuxt/issues/9063",0.6707789,["Reactive",2096],{},["Set"],["ShallowReactive",2099],{"TRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"ytwGEyWmzE20sgf0EHbirWPlLe5w4AR6MU29NiSBwng":-1},"/nuxt/ui/3572"]