\r\n\u003C/template>`)\r\n```\r\n- 2 components\r\n\r\nthe first of which is:\r\n```vue\r\n\u003Ctemplate>\r\n \u003CIcon name=\"heroicons:information-circle\"/>\r\n\u003C/template>\r\n```\r\n\r\nthe second component is:\r\n```vue\r\n\u003Ctemplate>\r\n \u003Cdiv>\r\n \u003Cp>Different component here\u003C/p>\r\n \u003Cdiv>\r\n \u003Cslot/>\r\n \u003C/div>\r\n \u003C/div>\r\n\u003C/template>\r\n```\r\n\r\n- 1 single simple content markdown page using the two components:\r\n```md\r\n# Issue reproduction\r\n\r\nFirst component (icon):\r\n::ComponentWithIcon\r\n::\r\n\r\n::SecondComponent\r\nWe have some more content here\r\n- nsetetur sadipscing elitr,\r\n::\r\n```\r\n\r\n### Describe the bug\r\n\r\nWhen the page is visited (in dev mode with `bun dev`), it completely freezes up (both Firefox and Chrome), \r\nwith no text being selectable, developer console not opening if it hasn't already been opened or opening blank, browser not even closing properly, and this warning is printed hundreds of times repeatedly in the console:\r\n```\r\nAvoid app logic that relies on enumerating keys on a component instance.\r\nThe keys will be empty in production mode to avoid performance overhead.\r\n```\r\n(the reproduction does not have a single \u003Cscript> tag in the whole repository)\r\n\r\nHowever, this issue does not occur when a production build is being done with `bun run build`.\r\n**When the first component (the nuxt-icon) is removed, the issue does not occur.**\r\n\r\n### Logs\r\n\r\nNo warnings / errors are outputted in the terminal where `nuxt dev` is run.\r\n",[],150,"icon","closed","Freezes up in Nuxt Content","2024-06-26T21:21:31Z","https://github.com/nuxt/icon/issues/150",0.74576056,{"description":2009,"labels":2010,"number":2011,"owner":1991,"repository":2002,"state":2003,"title":2012,"updated_at":2013,"url":2014,"score":2015},"I didn't quite understand that iconifyApiOptions in the document is only used to provide CDN for the default official api, or it can provide its own icon.\r\n\r\nFor example:\r\nFirst, I made sure that my custom API was written according to the official version and can be accessed normally.\r\n\r\nhttps://localhost:3000/fal.json?icons=house\r\n\r\nHowever, when I set the options below, it didn't work. Only when publicApiFallback:false is set will it work properly.\r\n\r\n```js\r\niconifyApiOptions: {\r\n url: 'http://localhost:3000',\r\n publicApiFallback: true,\r\n},\r\n```\r\n\u003CIcon name=\"fal:house\" /> // not working\r\n\r\n-------------\r\n\r\nFinally, when I was writing this question, I took a look at the nuxt-icon source code and found this snippet.\r\n```\r\n if (appConfig.nuxtIcon?.iconifyApiOptions?.publicApiFallback) {\r\n addAPIProvider('custom', {\r\n resources: [appConfig.nuxtIcon?.iconifyApiOptions.url],\r\n index: 0\r\n })\r\n return\r\n }\r\n```\r\n\u003CIcon name=\"@custom:fal:house\" /> // it works fine",[],153,"iconifyApiOptions custom API not working","2024-05-09T12:34:33Z","https://github.com/nuxt/icon/issues/153",0.7812456,{"description":2017,"labels":2018,"number":2019,"owner":1991,"repository":2002,"state":2003,"title":2020,"updated_at":2021,"url":2022,"score":2023},"Hey, I am using nuxt with custom base-path and my custom collection isn't loading on deployed app. Is there a way to change base path for the icons?",[],163,"Add support for customized base path","2024-05-25T10:23:25Z","https://github.com/nuxt/icon/issues/163",0.81287175,{"description":2025,"labels":2026,"number":2030,"owner":1991,"repository":1991,"state":2003,"title":2031,"updated_at":2032,"url":2033,"score":2034},"Hi!\r\nNow I'm working at commercial project with NuxtJS and I have met a very unhandy issue: site crashes at iOS Safari. I have spent several days trying to resolve this problem, and finally I have found the thing that broked down the whole site - it was a small phone number in the footer. What a suprise, mobile Safari turns all phone numbers it found into a link, like `+7 (982) 536-50-77` renders into `\u003Ca href=\"+7 (982) 536-50-77\">+7 (982) 536-50-77\u003C/a>`.\r\n\r\nI even create an small and useless gist with componet for super lazy coders:\r\nhttps://gist.github.com/queses/8b008a8b6f7b470cb0a8c5e1788d8c63\r\n\r\nI believe it would be great, if you will create the FAQ topic with explanation of this very unoblivious problem.\r\n\r\nWith best regards!\r\nMaxim Kobozev\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/c681\">#c681\u003C/a>)\u003C/em>\u003C/sub>\u003C/div>",[2027],{"name":2028,"color":2029},"2.x","d4c5f9",794,"Create new FAQ topic","2023-01-18T15:39:48Z","https://github.com/nuxt/nuxt/issues/794",0.82025373,{"description":2036,"labels":2037,"number":2040,"owner":1991,"repository":2041,"state":2003,"title":2042,"updated_at":2043,"url":2044,"score":2045},"We should have the scroll to top when the aside is changing.\n\nHint: what about having a `key` for the aside based on the docs section (get-started, guide, api, etc.)\n\nhttp://volta.s3.fr-par.scw.cloud/Clean_Shot_2023_01_09_at_12_49_33_0cd5e3b722.mp4\n",[2038],{"name":1985,"color":2039},"ff281a",1137,"nuxt.com","[Aside] Scroll to top is missing when changing docs sections","2023-09-05T08:18:51Z","https://github.com/nuxt/nuxt.com/issues/1137",0.82034034,{"description":2047,"labels":2048,"number":2049,"owner":1991,"repository":2050,"state":2003,"title":2051,"updated_at":2052,"url":2053,"score":2054},"## Background\r\n\r\n[Third-party capital](https://github.com/GoogleChromeLabs/third-party-capital) was being used previously to generate some of the static data needed for a subset of the registry scripts (youtube, google maps, google analytics, google tag manager). \r\n\r\nThe runtime dependency has since been removed in a [PR](https://github.com/nuxt/scripts/pull/23) for several reasons below. We still use the exported types for the scripts.\r\n\r\n### Runtime Overhead\r\n\r\nThird-party-capital has quite a hefty runtime bundle size relatively. Consider that the `useScript` wrapper from Unhead and Nuxt itself is only around ~2kb, which I think is too high and would be exploring further ways to bring it down. For Nuxt Scripts to be maximally useful it needs to be as minimal as possible.\r\n\r\nThe minified bundled size for each export with comparisons for current size:\r\n\r\n- Google Analytics: 1.7KB (vs 393B)\r\n- Google Tag Manager 1.6KB (vs 384B)\r\n- Google Maps 1.6KB minified (n/a as the implementation is different to TPC)\r\n- Youtube 1.7KB minified (n/a as the implementation is different to TPC)\r\n\r\n### Convulated implementation / no implementation types\r\n\r\nTPC abstracts away the implementation details inside of a JSON file that has custom parsing, this makes it quite difficult to debug the behaviour of the code without digging into the entire code base implementation.\r\n\r\n```ts\r\nimport { GoogleAnalytics } from 'third-party-capital'\r\n\r\nconst schema = GoogleAnalytics({ /* options */)\r\n// schema is generically typed\r\nconst scripts = schema.scripts \r\n// scripts is an array, no way to know which script is the load of the script verse the bootstrap setup\r\n```\r\n\r\nBecause the implementation is not obvious, it adds a disconnect between how the the `use()` and the stubs are implemented versus the rest of the script. \r\n\r\nFor example for SSR in GTM, we need to stub dataLayer as an array so we can push to it.\r\n\r\n```ts\r\n scriptOptions: {\r\n use() {\r\n return { dataLayer: window.dataLayer, google_tag_manager: window.google_tag_manager }\r\n },\r\n // allow dataLayer to be accessed on the server\r\n stub: import.meta.client\r\n ? undefined\r\n : ({ fn }) => {\r\n return fn === 'dataLayer' ? [] : undefined\r\n },\r\n },\r\n```\r\n\r\n### Leveraging Nuxt Tree Shaking for Micro-Optimizations\r\n\r\nSince Nuxt is a SSR framework, there are certain optimizations we can opt-in to that environment agnostic packages can't, as they have no control over the SSR lifecycle.\r\n\r\n```ts\r\nif (import.meta.server) {\r\n // offload logic to the server instead of having the client do it\r\n // - gets treeshaken out of the client-build\r\n}\r\n```\r\n\r\nA simple example of a micro-optimization is not passing any code that only the client needs to use. For example, we need to bootstrap the `window` for most third-party scripts, in Nuxt we can easily leverage tree-shaking to make sure this code isn't in the server bundle.\r\n\r\n```ts\r\n// packages publish code like this to be environment agnostic\r\nif (typeof window !== 'undefined') {\r\n\r\n}\r\n```\r\n\r\n```ts\r\n// in nuxt we can just treeshake as we have control over rollup\r\nif (import.meta.client) {\r\n window.myLib = {}\r\n}\r\n```\r\n\r\nFor something concrete, we can consider not running head injection tasks on the client when we can just do it on the server, reducing the time to hydrate the client.\r\n\r\nWe can see this in the `ScriptYouTubePlayer` component.\r\n\r\n```ts\r\nif (import.meta.server) {\r\n useHead({\r\n link: [\r\n {\r\n rel: props.aboveTheFold ? 'preconnect' : 'dns-prefetch',\r\n href: 'https://i.ytimg.com',\r\n },\r\n props.aboveTheFold\r\n // we can preload the placeholder image\r\n ? {\r\n rel: 'preload',\r\n as: 'image',\r\n href: placeholder.value,\r\n }\r\n : {},\r\n ],\r\n })\r\n}\r\n```\r\n\r\nTo achieve this with TPC would be quite difficult and would unlikely to work even if we can tree shake.\r\n\r\n### Maintanence DX\r\n\r\nNuxt Scripts is providing out-of-the-box support for 16 scripts, having 4 of them being configured differently through an external dependency we don't have control over will make maintenance harder in the short and long term.\r\n\r\nI'd also like to see the repo more active generally, the following remain open and unanswered. \r\n- https://github.com/GoogleChromeLabs/third-party-capital/issues/22\r\n- https://github.com/GoogleChromeLabs/third-party-capital/issues/21\r\n\r\n## Reimplementing TPC\r\n\r\nI'm happy to reconsider adding TPC within the runtime if the above can be solved or some other value can be provided that justifies the constraints.\r\n\r\n",[],54,"scripts","Third Party Capital Discussion","2024-08-22T08:05:29Z","https://github.com/nuxt/scripts/issues/54",0.8216078,{"description":2056,"labels":2057,"number":2061,"owner":1991,"repository":2002,"state":2003,"title":2062,"updated_at":2063,"url":2064,"score":2065},"This error lights in my IDE (VS Code under Ubuntu) to icon.vue file from node_modules/nuxt-icon/dust/runtime.\r\nI do not know if it is precisely an error, cos' everything works fine in the nuxt app.\r\nMaybe all auto imports loaded normally from my nuxt instance...\r\n\r\npackage.json\r\n```\r\n...\r\n\"devDependencies\": {\r\n \"@nuxtjs/tailwindcss\": \"^6.1.3\",\r\n \"nuxt\": \"3.0.0\",\r\n \"nuxt-icon\": \"^0.1.8\"\r\n }\r\n...\r\n```",[2058],{"name":2059,"color":2060},"question","d876e3",31,"Cannot find module '#imports' or its corresponding type declarations.ts(2307)","2024-03-20T16:51:51Z","https://github.com/nuxt/icon/issues/31",0.8219944,{"description":2067,"labels":2068,"number":2061,"owner":1991,"repository":2050,"state":2003,"title":2069,"updated_at":2070,"url":2071,"score":2065},"Not exactly sure what's going on here, happens on build and when consumed.",[],"Failed to parse static properties from plugin `.nuxt/modules/@nuxt-scripts.mjs`","2024-07-04T07:36:54Z","https://github.com/nuxt/scripts/issues/31",{"description":2073,"labels":2074,"number":2081,"owner":1991,"repository":2082,"state":2003,"title":2083,"updated_at":2084,"url":2085,"score":2086},"I'm currently trying to add the adobe font \"Elena\" to my project, without success. \nMy searched led me to [#187](https://github.com/nuxt/fonts/issues/187) and it's fix [#192](https://github.com/nuxt/fonts/pull/192) but to no avail.\n\nwould kindly appreciate your help :)\n\nmy nuxt.config.ts fonts //config:\n\n```js\nfonts: {\n defaults: {\n weights: ['100', '200', '300', '400', '500', '600', '700', '800', '900'],\n styles: ['normal', 'italic'],\n },\n adobe: {\n id: ['xxxxxx'],\n },\n fonts: {\n experimental: {\n processCSSVariables: true, // \u003C-- tested if that made a difference\n },\n },\n families: [\n {\n name: 'Industry',\n provider: 'adobe',\n fallbacks: ['Oswald', 'Arial', 'Helvetica', 'sans-serif'],\n },\n {\n name: 'Elena Web Basic', \u003C--- tested \"Elena\", \"Elena Basic\", \"Elena-Web-Basic\"\n provider: 'adobe',\n fallbacks: ['Georgia', 'Times New Roman', 'serif'],\n },\n {\n name: 'Oswald',\n provider: 'google',\n fallbacks: ['Roboto Sans', 'Arial', 'Helvetica', 'sans-serif'],\n },\n ],\n },\n```\n\n```js\nTailwind Config:\n\n`extend: {\n fontFamily: {\n display: ['Industry', 'Oswald', 'Arial', 'Helvetica', 'sans-serif'],\n serif: ['\"Elena Web Basic\"', 'Georgia', 'Times New Roman', 'serif'], //\u003C-- also tried \"Elena\", \"Elena Basic\", \"Elena-Web-Basic\"\n },`\n```\n\nthe typekit css:\n\n```css\n@import url(\"https://p.typekit.net/p.css?s=1&k=dou8fmt&ht=tk&f=25310.25314.14437.14439&a=8358342&app=typekit&e=css\");\n\n@font-face {\nfont-family:\"industry\";\nsrc:url(\"https://use.typekit.net/af/99114e/000000000000000077519a43/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3\") format(\"woff2\"),url(\"https://use.typekit.net/af/99114e/000000000000000077519a43/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3\") format(\"woff\"),url(\"https://use.typekit.net/af/99114e/000000000000000077519a43/30/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3\") format(\"opentype\");\nfont-display:auto;font-style:normal;font-weight:700;font-stretch:normal;\n}\n\n@font-face {\nfont-family:\"industry\";\nsrc:url(\"https://use.typekit.net/af/e15078/000000000000000077519a3f/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n6&v=3\") format(\"woff2\"),url(\"https://use.typekit.net/af/e15078/000000000000000077519a3f/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n6&v=3\") format(\"woff\"),url(\"https://use.typekit.net/af/e15078/000000000000000077519a3f/30/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n6&v=3\") format(\"opentype\");\nfont-display:auto;font-style:normal;font-weight:600;font-stretch:normal;\n}\n\n@font-face {\nfont-family:\"elena-web-basic\";\nsrc:url(\"https://use.typekit.net/af/5d3cbc/00000000000000007735daea/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3\") format(\"woff2\"),url(\"https://use.typekit.net/af/5d3cbc/00000000000000007735daea/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3\") format(\"woff\"),url(\"https://use.typekit.net/af/5d3cbc/00000000000000007735daea/30/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3\") format(\"opentype\");\nfont-display:auto;font-style:normal;font-weight:700;font-stretch:normal;\n}\n\n@font-face {\nfont-family:\"elena-web-basic\";\nsrc:url(\"https://use.typekit.net/af/d89e6b/00000000000000007735daec/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3\") format(\"woff2\"),url(\"https://use.typekit.net/af/d89e6b/00000000000000007735daec/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3\") format(\"woff\"),url(\"https://use.typekit.net/af/d89e6b/00000000000000007735daec/30/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3\") format(\"opentype\");\nfont-display:auto;font-style:normal;font-weight:400;font-stretch:normal;\n}\n\n.tk-industry { font-family: \"industry\",sans-serif; }\n.tk-elena-web-basic { font-family: \"elena-web-basic\",serif; }`\n\n```",[2075,2078],{"name":2076,"color":2077},"needs reproduction","C94E53",{"name":2079,"color":2080},"closed-by-bot","ededed",340,"fonts","adobe fonts with differing name information not loading","2024-10-31T02:02:15Z","https://github.com/nuxt/fonts/issues/340",0.8263723,["Reactive",2088],{},["Set"],["ShallowReactive",2091],{"TRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"mEUZVmRdnwa74GN7dD_RdXY636BMM0-ROHyXmPIRmxY":-1},"/nuxt/fonts/173"]