\n\t\u003C/UApp>\n\u003C/template>\n```\n\n\nRemoving the `UApp` for a `div` or `NuxtLayout` works\n\n### Description\n\nCrashes the app. The error seems to be related to the Button component, but even on a brand-new Nuxt project with no content (without even a page) it show the error below:\n\nWhen I use NuxtLayout (or other) instead of `UApp` and use the `UButton` component anywhere, it also cause the same issue\n\n### Logs\n\n```shell-script\n500\n[vite-node] [plugin:vite:vue] [VITE_ERROR] /@fs/Users/jeannen/Dev/apps/node_modules/@nuxt/ui/dist/runtime/components/Button.vue\n\n\u003Cscript lang=\"ts\">\nimport { tv, type VariantProps } from 'tailwind-variants'\nimport type { AppConfig } from '@nuxt/schema'\nimport _appConfig from '#build/app.config'\nimport theme from '#build/ui/button'\nimport type { LinkProps } from './Link.vue'\nimport type { UseComponentIconsProps } from '../composables/useComponentIcons'\nimport { extendDevtoolsMeta } from '../composables/extendDevtoolsMeta'\nimport type { AvatarProps } from '../types'\nimport type { PartialString } from '../types/utils'\n\nconst appConfig = _appConfig as AppConfig & { ui: { button: Partial\u003Ctypeof theme> } }\n\nconst button = tv({ extend: tv(theme), ...(appConfig.ui?.button || {}) })\n\ntype ButtonVariants = VariantProps\u003Ctypeof button>\n\nexport interface ButtonProps extends UseComponentIconsProps, Omit\u003CLinkProps, 'raw' | 'custom'> {\n label?: string\n color?: ButtonVariants['color']\n variant?: ButtonVariants['variant']\n size?: ButtonVariants['size']\n /** Render the button with equal padding on all sides. */\n square?: boolean\n /** Render the button full width. */\n block?: boolean\n /** Set loading state automatically based on the `@click` promise state */\n loadingAuto?: boolean\n onClick?: ((event: MouseEvent) => void | Promise\u003Cvoid>) | Array\u003C((event: MouseEvent) => void | Promise\u003Cvoid>)>\n class?: any\n ui?: PartialString\u003Ctypeof button.slots>\n}\n\n// Injects props to use as default in the devtools playground.\nextendDevtoolsMeta\u003CButtonProps>({ defaultProps: { label: 'Click me!' } })\n\nexport interface ButtonSlots {\n leading(props?: {}): any\n default(props?: {}): any\n trailing(props?: {}): any\n}\n\u003C/script>\n\n\u003Cscript setup lang=\"ts\">\nimport { type Ref, computed, ref, inject } from 'vue'\nimport { useForwardProps } from 'radix-vue'\nimport { useComponentIcons } from '../composables/useComponentIcons'\nimport { useButtonGroup } from '../composables/useButtonGroup'\nimport { formLoadingInjectionKey } from '../composables/useFormField'\nimport { omit } from '../utils'\nimport { pickLinkProps } from '../utils/link'\nimport UIcon from './Icon.vue'\nimport UAvatar from './Avatar.vue'\nimport ULink from './Link.vue'\n\nconst props = defineProps\u003CButtonProps>()\nconst slots = defineSlots\u003CButtonSlots>()\n\nconst linkProps = useForwardProps(pickLinkProps(props))\n\nconst { orientation, size: buttonSize } = useButtonGroup\u003CButtonProps>(props)\n\nconst loadingAutoState = ref(false)\nconst formLoading = inject\u003CRef\u003Cboolean> | undefined>(formLoadingInjectionKey, undefined)\n\nasync function onClickWrapper(event: MouseEvent) {\n loadingAutoState.value = true\n const callbacks = Array.isArray(props.onClick) ? props.onClick : [props.onClick]\n try {\n await Promise.all(callbacks.map(fn => fn?.(event)))\n } finally {\n loadingAutoState.value = false\n }\n}\n\nconst isLoading = computed(() => {\n return props.loading || (props.loadingAuto && (loadingAutoState.value || (formLoading?.value && props.type === 'submit')))\n})\n\nconst { isLeading, isTrailing, leadingIconName, trailingIconName } = useComponentIcons(\n computed(() => ({ ...props, loading: isLoading.value }))\n)\n\nconst ui = computed(() => button({\n color: props.color,\n variant: props.variant,\n size: buttonSize.value,\n loading: isLoading.value,\n block: props.block,\n square: props.square || (!slots.default && !props.label),\n leading: isLeading.value,\n trailing: isTrailing.value,\n buttonGroup: orientation.value\n}))\n\u003C/script>\n\n\u003Ctemplate>\n \u003CULink\n :type=\"type\"\n :disabled=\"disabled || isLoading\"\n :class=\"ui.base({ class: [props.class, props.ui?.base] })\"\n v-bind=\"omit(linkProps, ['type', 'disabled'])\"\n raw\n @click=\"onClickWrapper\"\n >\n \u003Cslot name=\"leading\">\n \u003CUIcon v-if=\"isLeading && leadingIconName\" :name=\"leadingIconName\" :class=\"ui.leadingIcon({ class: props.ui?.leadingIcon })\" />\n \u003CUAvatar v-else-if=\"!!avatar\" :size=\"((props.ui?.leadingAvatarSize || ui.leadingAvatarSize()) as AvatarProps['size'])\" v-bind=\"avatar\" :class=\"ui.leadingAvatar({ class: props.ui?.leadingAvatar })\" />\n \u003C/slot>\n\n \u003Cslot>\n \u003Cspan v-if=\"label\" :class=\"ui.label({ class: props.ui?.label })\" data-v-inspector=\"../../../node_modules/@nuxt/ui/dist/runtime/components/Button.vue:112:7\">\n {{ label }}\n \u003C/span>\n \u003C/slot>\n\n \u003Cslot name=\"trailing\">\n \u003CUIcon v-if=\"isTrailing && trailingIconName\" :name=\"trailingIconName\" :class=\"ui.trailingIcon({ class: props.ui?.trailingIcon })\" />\n \u003C/slot>\n \u003C/ULink>\n\u003C/template>\n\nat /@fs/Users/jeannen/Dev/apps/node_modules/@nuxt/ui/dist/runtime/components/Button.vue\n```\n\n### Additional context\n\n_No response_\n```",[2074,2076],{"name":2017,"color":2075},"d73a4a",{"name":2077,"color":2078},"v3","49DCB8",2824,"ui","`UApp` / `UButton` crashes the whole app","2024-12-05T13:49:01Z","https://github.com/nuxt/ui/issues/2824",0.7098721,{"labels":2086,"number":2092,"owner":1994,"repository":1994,"state":2008,"title":2093,"updated_at":2094,"url":2095,"score":2096},[2087,2090,2091],{"name":2088,"color":2089},"3.x","29bc7f",{"name":1988,"color":1989},{"name":1991,"color":1992},14138,"error TS2451: Cannot redeclare block-scoped variable","2023-01-19T17:25:51Z","https://github.com/nuxt/nuxt/issues/14138",0.7107101,{"description":2098,"labels":2099,"number":2106,"owner":1994,"repository":1994,"state":2008,"title":2107,"updated_at":2108,"url":2109,"score":2110},"### Environment\r\n\r\n### Technical Information to the setup: ###\r\n\r\n- Operating System: Windows_NT\r\n- Node Version: v21.7.1\r\n- Nuxt Version: 3.11.1\r\n- CLI Version: 3.11.1\r\n- Nitro Version: 2.9.4\r\n- Package Manager: npm@10.2.3\r\n\r\n### Reproduction\r\n\r\n[Here you'll find more Informations if needed](https://github.com/MarkusTratschitt/Nuxt3-CreatingTsModules/tree/main)\r\n\r\n### Describe the bug\r\n\r\n**Thrown error TS18028: \r\nPrivate identifiers are only available when \r\ntargeting ECMAScript 2015 and higher.**\r\n\r\n`E:\\repos\\demo\\nuxt-app\\node_modules\\mime\\dist\\src\\Mime.d.ts`\r\n\r\n```\r\ntype TypeMap = {\r\n [key: string]: string[];\r\n};\r\nexport default class Mime {\r\n #private;\r\n```\r\n \r\nOutcommented the \r\n\r\n // #private;\r\n\r\nline because of error TS18028.\r\n \r\nOccured during compiling a *.ts file with:\r\n \r\n`npx tsc ./demo/test.ts`\r\n \r\ntargeting in `tsconfig.json` didn't resolve the problem. \r\n \r\n\r\n`~/nuxt-app/tsconfig.json` \r\n``` \r\n{\r\n \"extends\": \"./.nuxt/tsconfig.json\",\r\n \"compilerOptions\": {\r\n \"module\": \"ES2020\",\r\n \"target\": \"ES2015\"\r\n },\r\n \"exclude\": [\"node_modules\"]\r\n}\r\n```\r\nMaybe, because of too many Mime Versions used\r\nin Nuxt 3 installed with @latest option.\r\n\r\n`npm list mime` \r\n\r\n nuxt-app@ E:\\repos\\demo\\nuxt-app\r\n ├── mime@4.0.1\r\n └─┬ nuxt@3.11.1\r\n ├─┬ nitropack@2.9.4\r\n │ ├─┬ @cloudflare/kv-asset-handler@0.3.1\r\n │ │ └── mime@3.0.0\r\n │ ├── mime@4.0.1 deduped\r\n │ └─┬ serve-static@1.15.0\r\n │ └─┬ send@0.18.0\r\n │ └── mime@1.6.0\r\n └─┬ unenv@1.9.0\r\n └── mime@3.0.0\r\n\r\n`node -v`\r\n```\r\nv21.7.1\r\n```\r\n\r\n`tsc -v`\r\n```\r\nVersion 5.4.3\r\n ``` \r\nHere the dependencies automatically created by\r\n\r\n`npx nuxi@latest init`,\r\n\r\n`npm install -g typescript@latest`,\r\n\r\n`npm install webpack@latest --save-dev` and\r\n\r\n`npm install mime@latest` in the\r\n\r\n`~/nuxt-app/package.json`\r\n```\r\n{\r\n \"dependencies\": {\r\n \"mime\": \"^4.0.1\",\r\n \"vue\": \"^3.4.21\",\r\n \"vue-router\": \"^4.3.0\"\r\n },\r\n \"devDependencies\": {\r\n \"@nuxt/typescript-build\": \"^3.0.2\",\r\n \"@types/node\": \"^20.11.30\",\r\n \"@types/webpack\": \"^5.28.5\",\r\n \"nuxt\": \"^3.11.1\",\r\n \"ts-node\": \"^10.9.2\",\r\n \"typescript\": \"^5.4.3\",\r\n \"webpack\": \"^5.91.0\"\r\n }\r\n}\r\n```\r\n**So the actual Code of the**\r\n \r\n `E:\\repos\\demo\\nuxt-app\\node_modules\\mime\\dist\\src\\Mime.d.ts`\r\n\r\n```\r\n type TypeMap = {\r\n [key: string]: string[];\r\n };\r\n \r\n export default class Mime {\r\n \r\n // #private;\r\n\r\n constructor(...args: TypeMap[]);\r\n define(typeMap: TypeMap, force?: boolean): this;\r\n getType(path: string): string | null;\r\n getExtension(type: string): string | null;\r\n getAllExtensions(type: string): Set\u003Cstring> | null;\r\n _freeze(): this;\r\n _getTestState(): {\r\n types: Map\u003Cstring, string>;\r\n extensions: Map\u003Cstring, string>;\r\n };\r\n }\r\n export {};\r\n\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Logs\r\n\r\n_No response_",[2100,2101,2102,2103],{"name":2088,"color":2089},{"name":1988,"color":1989},{"name":1991,"color":1992},{"name":2104,"color":2105},"closed-by-bot","ededed",26429,"Error TS18028 during tsc in Nuxt 3","2024-03-29T01:47:21Z","https://github.com/nuxt/nuxt/issues/26429",0.7136767,["Reactive",2112],{},["Set"],["ShallowReactive",2115],{"TRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"wkAvTUnWh8fFEa0AzSPHIVeb5ALFKKRUkIcm9SB3sg0":-1},"/nuxt/nuxt.com/595"]