\n \u003CUTable :data=\"data\">\n \u003Ctemplate #empty>\n no data\n \u003C/template>\n \u003C/UTable>\n \u003C/div>\n\u003C/template>\n\n````\nIn this example, if the table's data is initially empty and then updated (by clicking the \"rerender\" button), you will notice that the content in the empty slot disappears. This indicates that the table's data is no longer empty, yet nothing is rendered in the table. The reason is that the table's columns are not reactive. I believe this limitation is caused by TanStack.\n\n### Potential Solution\n```vue\nwatch(columns, (newColumns) => {\n tableApi.setOptions((prevOpt) => ({\n ...prevOpt,\n columns: newColumns \n }))\n}) \n```\n\n\n\n\n### Additional context\n\n```vue\n\u003Cscript setup lang=\"ts\">\nimport { watch } from 'vue'\nimport { getCoreRowModel, useVueTable } from '@tanstack/vue-table'\ntype Data = {\n id: number,\n name: string\n}\n\nconst defaultData = [\n {\n id: 1,\n name: \"a\"\n },\n {\n id: 2,\n name: \"b\"\n }\n]\n\nconst data = ref\u003CData[]>([])\nconst columns = computed(() => Object.keys(data.value[0] ?? {}).map((accessorKey: string) => ({ accessorKey, header: accessorKey })))\n\nconst tableApi = useVueTable({\n data,\n columns: columns.value,\n getCoreRowModel: getCoreRowModel()\n})\n\nconst rerender = () => {\n if (!data.value.length) {\n\n data.value = defaultData\n } else {\n data.value = []\n }\n}\n\n/* watch(columns, (newColumns) => {\n tableApi.setOptions((prevOpt) => ({\n ...prevOpt,\n columns: newColumns \n }))\n}) */\n\u003C/script>\n\n\u003Ctemplate>\n \u003Cdiv>\n \u003CUButton label=\"rerender\" @click=\"rerender()\" />\n \u003Cdiv>\n {{ columns }}\n \u003C/div>\n \u003Cbr>\n \u003Cdiv>\n {{ tableApi.options }}\n \u003C/div>\n \u003C/div>\n\u003C/template>\n\n```\n\nnoticed that tableApi's columns won't change along with updates to the data",[2943,2946],{"name":2944,"color":2945},"enhancement","a2eeef",{"name":2911,"color":2912},2689,"[Table] reactive columns for auto-generated UTable columns","2024-11-21T13:11:03Z","https://github.com/nuxt/ui/issues/2689",0.70383954,{"description":2953,"labels":2954,"number":2957,"owner":2866,"repository":2892,"state":2901,"title":2958,"updated_at":2959,"url":2960,"score":2961},"### Environment\n\n------------------------------\n- Operating System: Darwin\n- Node Version: v23.1.0\n- Nuxt Version: 3.14.159\n- CLI Version: 3.15.0\n- Nitro Version: 2.10.4\n- Package Manager: bun@1.1.3\n- Builder: -\n- User Config: default\n- Runtime Modules: @nuxt/ui@3.0.0-alpha.8\n- Build Modules: -\n------------------------------\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.0.0-alpha.8\n\n### Reproduction\n\nhttps://github.com/brycesteve/nuxtUi500Repro\n\n### Description\n\nWhen using Nuxt UI from a layer, wrapping in `UApp` causes the following error:\n\n```\n500\nnull is not an object (evaluating 'currentRenderingInstance.ce')\n\nat renderComponentRoot (./node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:3708:44)\nat renderComponentSubTree (./node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:465:65)\nat renderComponentVNode (./node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:417:36)\nat ssrRenderComponent (./node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:57:32)\nat _sfc_ssrRender (:52:49)\nat renderComponentSubTree (./node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:460:20)\nat renderComponentVNode (./node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:417:36)\nat ssrRenderComponent (./node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:57:32)\nat _sfc_ssrRender (:46:49)\n```\n\nRemoving `UApp` stops the error from happening. `UApp` also works correctly when not in a layer.\n\nIn the reproduction, Nuxt UI is added to the layer in `~/layers/ui`.\n\nRunning `bun --bun run dev` in the project root causes the error. Switching to `~/layers/ui` and running `bun --bun run dev` doesn't have the same error (`App.vue` in `~/layers/ui/.playground` is the same as the root `App.vue`). So, the issue is something to do with Nuxt UI being extended from a layer. The other components I've tried seem to work ok.\n\nI have read in a few places that this might be something to do with multiple Vue instances being created. But if it is, I can't seem to find a config that allows it to work.\n\nShould Nuxt UI work from a layer, or is it not compatible this way? If it should, is there something I'm doing wrong, or does anyone have a fix to make this work?\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[2955,2956],{"name":2886,"color":2887},{"name":2911,"color":2912},2622,"Nuxt UI in layer causes 500 error when wrapping in UApp","2024-12-05T13:48:51Z","https://github.com/nuxt/ui/issues/2622",0.7042601,{"description":2963,"labels":2964,"number":2967,"owner":2866,"repository":2892,"state":2901,"title":2968,"updated_at":2969,"url":2970,"score":2971},"### Description\n\nHello, I just wanted to overwrite shadow-sm with another shadow in the card root slot.\nBut I failed to do so. I tried the :ui way and the app.config.ts way but in both cases the new class \"shadow-card\" ended up BEHIND \"shadow-sm\".\n\n```\n card: {\n slots: {\n root: \"shadow-card\",\n },\n },\n```\n\nSo shadow-card always gets overwritten by shadow-sm cause the code always ends up like this:\n```\n\u003Cdiv class=\"bg-[var(--ui-bg)] ring ring-[var(--ui-border)] divide-y divide-[var(--ui-border)] rounded-[calc(var(--ui-radius)*2)] shadow-sm shadow-card\">\n```\n\nso how can I overwrite shadow-sm here?",[2965,2966],{"name":2932,"color":2933},{"name":2911,"color":2912},2936,"Overwrite css classes of slots","2025-01-08T16:26:22Z","https://github.com/nuxt/ui/issues/2936",0.70476985,["Reactive",2973],{},["Set"],["ShallowReactive",2976],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fBSD1znEsdkW5PjFSsaAC38_avXVvtKTa2V4sLJWd-SU":-1},"/nuxt/scripts/166"]