PageSourceSearch

https://stenciljs.com/docs/assets/js/2d49ca8f.86dd98db.js

js stenciljs.com collected 2026-09-24 17:51:58 UTC 23,442 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_stencil_stencil_site=self.webpackChunk_stencil_stencil_site||[]).push([[5594],{58359:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var i=t(74848),o=t(28453);const s={title:"Upgrading to Stencil v4.0.0",description:"Upgrading to Stencil v4.0.0",url:"/docs/upgrading-to-stencil-4"},r="Upgrading to Stencil v4.0.0",c={id:"introduction/upgrading-to-stencil-four",title:"Upgrading to Stencil v4.0.0",description:"Upgrading to Stencil v4.0.0",source:"@site/versioned_docs/version-v4.41/introduction/upgrading-to-stencil-four.md",sourceDirName:"introduction",slug:"/introduction/upgrading-to-stencil-four",permalink:"/docs/v4.41/introduction/upgrading-to-stencil-four",draft:!1,unlisted:!1,editUrl:"https://github.com/ionic-team/stencil-site/tree/main/versioned_docs/version-v4.41/introduction/upgrading-to-stencil-four.md",tags:[],version:"v4.41",frontMatter:{title:"Upgrading to Stencil v4.0.0",description:"Upgrading to Stencil v4.0.0",url:"/docs/upgrading-to-stencil-4"},sidebar:"docs",previous:{title:"Getting Started",permalink:"/docs/v4.41/getting-started"},next:{title:"API",permalink:"/docs/v4.41/api"}},a={},l=[{value:"Getting Started",id:"getting-started",level:2},{value:"Updating Your Code",id:"updating-your-code",level:2},{value:"New Configuration Defaults",id:"new-configuration-defaults",level:3},{value:"<code>transformAliasedImportPaths</code>",id:"transformaliasedimportpaths",level:4},{value:"<code>transformAliasedImportPathsInCollection</code>",id:"transformaliasedimportpathsincollection",level:4},{value:"In Browser Compilation Support Removed",id:"in-browser-compilation-support-removed",level:3},{value:"Legacy Context and Connect APIs Removed",id:"legacy-context-and-connect-apis-removed",level:3},{value:"Legacy Browser Support Removed",id:"legacy-browser-support-removed",level:3},{value:"<code>__deprecated__cssVarsShim</code>
1",id:"__deprecated__cssvarsshim",level:4},{value:"<code>__deprecated__dynamicImportShim</code>",id:"__deprecated__dynamicimportshim",level:4},{value:"<code>__deprecated__safari10</code>",id:"__deprecated__safari10",level:4},{value:"<code>__deprecated__shadowDomShim</code>",id:"__deprecated__shadowdomshim",level:4},{value:"Legacy Cache Stats Config Flag Removed",id:"legacy-cache-stats-config-flag-removed",level:3},{value:"Drop Node 14 Support",id:"drop-node-14-support",level:3},{value:"Information Included in <code>docs-json</code> Expanded",id:"information-included-in-docs-json-expanded",level:2},{value:"<code>JsonDocsEvent</code>",id:"jsondocsevent",level:3},{value:"<code>JsonDocsMethod</code>",id:"jsondocsmethod",level:3},{value:"Additional Packages",id:"additional-packages",level:2},{value:"Need Help Upgrading?",id:"need-help-upgrading",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"upgrading-to-stencil-v400",children:"Upgrading to Stencil v4.0.0"})}),"\n",(0,i.jsx)(n.h2,{id:"getting-started",children:"Getting Started"}),"\n",(0,i.jsx)(n.p,{children:"We recommend that you only upgrade to Stencil v4 from Stencil v3.\nIf you're a few versions behind, we recommend upgrading one major version at a time (from v1 to v2, then v2 to v3, finally v3 to v4).\nThis will minimize the number of breaking changes you have to deal with at the same time."}),"\n",(0,i.jsx)(n.p,{children:"For breaking changes introduced in previous major versions of the library, see:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil/blob/main/BREAKING_CHANGES.md#stencil-v300",children:"Stencil v3 Breaking Changes"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil/blob/main/BREAKING_CHANGES.md#stencil-two",children:"Stencil v2 Breaking Changes"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil/blob/main/BREAKING_CHANGES.md#stencil-one",children:"Stencil v1 Breaking Changes"})}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["For projects that are on Stencil v3, install the latest version of Stencil v4: ",(0,i.jsx)(n.code,{children:"npm install @stencil/core@4"})]}),"\n",(0,i.jsx)(n.h2,{id:"updating-your-code",children:"Updating Your Code"}),"\n",(0,i.jsx)(n.h3,{id:"new-configuration-defaults",children:"New Configuration Defaults"}),"\n",(0,i.jsx)(n.p,{children:"Starting with Stencil v4.0.0, the default configuration values have changed for a few configuration options.\nThe following sections lay out the configuration options that have changed, their new default values, and ways to opt-out of the new behavior (if applicable)."}),"\n",(0,i.jsx)(n.h4,{id:"transformaliasedimportpaths",children:(0,i.jsx)(n.code,{children:"transformAliasedImportPaths"})}),"\n",(0,i.jsxs)(n.p,{children:["TypeScript projects have the ability to specify a path aliases via the ",(0,i.jsxs)(n.a,{href:"https://www.typescriptlang.org/docs/handbook/module-resolution.html#path-mapping",children:[(0,i.jsx)(n.code,{children:"paths"})," configuration in their ",(0,i.jsx)(n.code,{children:"tsconfig.json"})]})," like so:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",metastring:'title="tsconfig.json"',children:'{\n  "compilerOptions": {\n    "baseUrl": ".",\n    "paths": {\n      "@utils": ["src/utils/index.ts"]\n    }\n  }\n}\n'})}),"\n",(0,i.jsxs)(n.p,{children:["In the example above, ",(0,i.jsx)(n.code,{children:'"@utils"'})," would be mapped to the string ",(0,i.jsx)(n.code,{children:'"src/utils/index.ts"'})," when TypeScript performs type resolution.\nThe TypeScript compiler does not however, transform these paths from their keys to their values as a part of its output.\nInstead, it relies on a bundler/loader to do the transformation."]}),"\n",(0,i.jsxs)(n.p,{children:["The ability to transform path aliases was introduced in ",(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil/releases/tag/v3.1.0",children:"Stencil v3.1.0"})," as an opt-in feature.\nPreviously, users had to explicitly enable this functionality in their ",(0,i.jsx)(n.code,{children:"stencil.config.ts"})," file with ",(0,i.jsx)(n.code,{children:"transformAliasedImportPaths"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",metastring:"title=\"stencil.config.ts - enabling 'transformAliasedImportPaths' in Stencil v3.1.0\"",children:"import { Config } from '@stencil/core';
1\n\nexport const config: Config = {\n  transformAliasedImportPaths: true,\n  // ...\n};\n"})}),"\n",(0,i.jsx)(n.p,{children:"Starting with Stencil v4.0.0, this feature is enabled by default.\nProjects that had previously enabled this functionality that are migrating from Stencil v3.1.0+ may safely remove the flag from their Stencil configuration file(s)."}),"\n",(0,i.jsxs)(n.p,{children:["For users that run into issues with this new default, we encourage you to file a ",(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil/issues/new?assignees=&labels=&projects=&template=bug_report.yml&title=bug%3A+",children:"new issue on the Stencil GitHub repo"}),".\nAs a workaround, this flag can be set to ",(0,i.jsx)(n.code,{children:"false"})," to disable the default functionality."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",metastring:"title=\"stencil.config.ts - disabling 'transformAliasedImportPaths' in Stencil v4.0.0\"",children:"import { Config } from '@stencil/core';\n\nexport const config: Config = {\n  transformAliasedImportPaths: false,\n  // ...\n};\n"})}),"\n",(0,i.jsxs)(n.p,{children:["For more information on this flag, please see the ",(0,i.jsx)(n.a,{href:"/docs/v4.41/config#transformaliasedimportpaths",children:"configuration documentation"})]}),"\n",(0,i.jsx)(n.h4,{id:"transformaliasedimportpathsincollection",children:(0,i.jsx)(n.code,{children:"transformAliasedImportPathsInCollection"})}),"\n",(0,i.jsxs)(n.p,{children:["Introduced in ",(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil/releases/tag/v2.18.0",children:"Stencil v2.18.0"}),", ",(0,i.jsx)(n.code,{children:"transformAliasedImportPathsInCollection"})," is a configuration flag on the ",(0,i.jsxs)(n.a,{href:"/docs/v4.41/distribution#transformaliasedimportpathsincollection",children:[(0,i.jsx)(n.code,{children:"dist"})," output target"]}),".\n",(0,i.jsx)(n.code,{children:"transformAliasedImportPathsInCollection"})," transforms import paths, similar to ",(0,i.jsx)(n.a,{href:"#transformaliasedimportpaths",children:(0,i.jsx)(n.code,{children:"transformAliasedImportPaths"})}),".\nThis flag however, only enables the functionality of ",(0,i.jsx)(n.code,{children:"transformAliasedImportPaths"})," for collection output targets."]}),"\n",(0,i.jsx)(n.p,{children:"Starting with Stencil v4.0.0, this flag is enabled by default.\nProjects that had previously enabled this functionality that are migrating from Stencil v2.18.0+ may safely remove the flag from their Stencil configuration file(s)."}),"\n",(0,i.jsxs)(n.p,{children:["For users that run into issues with this new default, we encourage you to file a ",(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil/issues/new?assignees=&labels=&projects=&template=bug_report.yml&title=bug%3A+",children:"new issue on the Stencil GitHub repo"}),".\nAs a workaround, this flag can be set to ",(0,i.jsx)(n.code,{children:"false"})," to disable the default functionality."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",metastring:"title=\"stencil.config.ts - disabling 'transformAliasedImportPathsInCollection' in Stencil v4.0.0\"",children:"import { Config } from '@stencil/core';\n\nexport const config: Config = {\n  outputTargets: [\n    {\n      type: 'dist',\n      transformAliasedImportPathsInCollection: false,\n    },\n    // ...\n  ]\n  // ...\n};\n"})}),"\n",(0,i.jsxs)(n.p,{children:["For more information on this flag, please see the ",(0,i.jsxs)(n.a,{href:"/docs/v4.41/distribution#transformaliasedimportpathsincollection",children:[(0,i.jsx)(n.code,{children:"dist"})," output target's documentation"]}),"."]}),"\n",(0,i.jsx)(n.h3,{id:"in-browser-compilation-support-removed",children:"In Browser Compilation Support Removed"}),"\n",(0,i.jsxs)(n.p,{children:["Prior to Stencil v4.0.0, components could be compiled from TSX to JS in the browser.\nThis feature was seldom used, and has been removed from Stencil.\nAt this time, there is no replacement functionality.\nFor additional details, please see the ",(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil/discussions/4134",children:"request-for-comment"})," on the Stencil GitHub Discussions page."]}),"\n",(0,i.jsx)(n.h3,{id:"legacy-context-and-connect-apis-removed",children:"Legacy Context and Connect APIs Removed"}),"\n",(0,i.jsxs)(n.p,{children:["Previously, Stencil supported ",(0,i.jsx)(n.code,{children:"context"})," and ",(0,i.jsx)(n.code,{children:"connect"})," as options within the ",(0,i.jsx)(n.code,{children:"@Prop"}
1)," decorator.\nBoth of these APIs were deprecated in Stencil v1 and are now removed."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"@Prop({ context: 'config' }) config: Config;\n@Prop({ connect: 'ion-menu-controller' }) lazyMenuCtrl: Lazy<MenuController>;\n"})}),"\n",(0,i.jsxs)(n.p,{children:["To migrate away from usages of ",(0,i.jsx)(n.code,{children:"context"}),", please see ",(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil/blob/main/BREAKING_CHANGES.md#propcontext",children:"the original deprecation announcement"}),".\nTo migrate away from usages of ",(0,i.jsx)(n.code,{children:"connect"}),", please see ",(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil/blob/main/BREAKING_CHANGES.md#propconnect",children:"the original deprecation announcement"}),"."]}),"\n",(0,i.jsx)(n.h3,{id:"legacy-browser-support-removed",children:"Legacy Browser Support Removed"}),"\n",(0,i.jsxs)(n.p,{children:["In Stencil v3.0.0, we announced ",(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil/blob/1a8ff39073a88d1372beaa98434dbe2247f68a85/BREAKING_CHANGES.md?plain=1#L78",children:"the deprecation of IE 11, pre-Chromium Edge, and Safari 10 support"}),".\nIn Stencil v4.0.0, support for these browsers has been dropped (for a full list of supported browsers, please see our ",(0,i.jsx)(n.a,{href:"/docs/v4.41/support-policy#browser-support",children:"Browser Support policy"}),")."]}),"\n",(0,i.jsx)(n.p,{children:"By dropping these browsers, a few configuration options are no longer valid in a Stencil configuration file:"}),"\n",(0,i.jsx)(n.h4,{id:"__deprecated__cssvarsshim",children:(0,i.jsx)(n.code,{children:"__deprecated__cssVarsShim"})}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"extras.__deprecated__cssVarsShim"})," option caused Stencil to include a polyfill for ",(0,i.jsx)(n.a,{href:"https://developer.mozilla.org/en-US/docs/Web/CSS/--*",children:"CSS variables"}),".\nThis field should be removed from a project's Stencil configuration file (",(0,i.jsx)(n.code,{children:"stencil.config.ts"}),")."]}),"\n",(0,i.jsx)(n.h4,{id:"__deprecated__dynamicimportshim",children:(0,i.jsx)(n.code,{children:"__deprecated__dynamicImportShim"})}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"extras.__deprecated__dynamicImportShim"})," option caused Stencil to include a polyfill for\nthe ",(0,i.jsxs)(n.a,{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import",children:["dynamic ",(0,i.jsx)(n.code,{children:"import()"})," function"]}),"\nfor use at runtime.\nThis field should be removed from a project's Stencil configuration file (",(0,i.jsx)(n.code,{children:"stencil.config.ts"}),")."]}),"\n",(0,i.jsx)(n.h4,{id:"__deprecated__safari10",children:(0,i.jsx)(n.code,{children:"__deprecated__safari10"})}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"extras.__deprecated__safari10"})," option would patch ES module support for Safari 10.\nThis field should be removed from a project's Stencil configuration file (",(0,i.jsx)(n.code,{children:"stencil.config.ts"}),")."]}),"\n",(0,i.jsx)(n.h4,{id:"__deprecated__shadowdomshim",children:(0,i.jsx)(n.code,{children:"__deprecated__shadowDomShim"})}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"extras.__deprecated__shadowDomShim"})," option would check whether a shim for ",(0,i.jsx)(n.a,{href:"https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM",children:"shadow\nDOM"}),"\nwas needed in the current browser, and include one if so.\nThis field should be removed from a project's Stencil configuration file (",(0,i.jsx)(n.code,{children:"stencil.config.ts"}),")."]}),"\n",(0,i.jsx)(n.h3,{id:"legacy-cache-stats-config-flag-removed",children:"Legacy Cache Stats Config Flag Removed"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"enableCacheStats"})," flag was used in legacy behavior for caching, but has not been used for some time. This\nflag has been removed from Stencil's API and should be removed from a project's Stencil configuration file (",(0,i.jsx)(n.code,{children:"stencil.config.ts"}),")."]}),"\n",(0,i.jsx)(n.h3,{id:"drop-node-14-support",children:"Drop Node 14 Support"}),"\n",(0,i.jsxs)(n.p,{children:["Stencil no longer supports Node 14.\nPlease upgrade local development machines, continuous integration pipelines, etc. to use Node v16 or higher.\nFor the full list of supported runtimes, please see ",(0,i.jsx)(n.a,{href:"/docs/v4.41/support-policy#javascript-runtime",children:"our Support Policy"}),"."]}),"\n",(0,i.jsxs)(n.h2,{id:"information-included-in-docs-json-expanded",children:["Information Included in ",(0,i.jsx)(n.code,{children:"docs-json"})," Expanded"]}),"\n",(0,i.jsxs)(n.p,{children:["For Stencil v4 the information included in the output of the ",(0,i.jsx)(n.code,{children:"docs-json"})," output\ntarget was expanded to include more information about the types of properties\nand methods on Stencil components."]}),"\n",(0,i.jsxs)(n.p,{children:["For more context on this change, see the ",(0,i.jsxs)(n.a,{href:"/docs/v4.41/docs-json#supplementalpublictypes",children:["documentation for the new ",(0,i.jsx)(n.code,{children:"supplementalPublicTypes"})]}),"\noption for the JSON documentation output target."]}),"\n",(0,i.jsx)(n.h3,{id:"jsondocsevent",children:(0,i.jsx)(n.code,{children:"JsonDocsEvent"})}),"\n",(0,i.jsxs)(n.p,{children:["The JSON-formatted documentation for an ",(0,i.jsx)(n.code,{children:"@Event"})," now includes a field called\n",(0,i.jsx)(n.code,{children:"complexType"})," which includes more information about the types referenced in the\ntype declarations for that property."]}),"\n",(0,i.jsxs)(n.p,{children:["Here's an example of what this looks like for the ",(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/ionic-framework/blob/1f0c8049a339e3a77c468ddba243041d08ead0be/core/src/components/modal/modal.tsx#L289-L292",children:"ionBreakpointDidChange\nevent"}),"\non the ",(0,i.jsx)(n.code,{children:"Modal"})," component in Ionic Framework:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n  "complexType": {\n    "original": "ModalBreakp
1ointChangeEventDetail",\n    "resolved": "ModalBreakpointChangeEventDetail",\n    "references": {\n      "ModalBreakpointChangeEventDetail": {\n        "location": "import",\n        "path": "./modal-interface",\n        "id": "src/components/modal/modal.tsx::ModalBreakpointChangeEventDetail"\n      }\n    }\n  }\n}\n'})}),"\n",(0,i.jsx)(n.h3,{id:"jsondocsmethod",children:(0,i.jsx)(n.code,{children:"JsonDocsMethod"})}),"\n",(0,i.jsxs)(n.p,{children:["The JSON-formatted documentation for a ",(0,i.jsx)(n.code,{children:"@Method"})," now includes a field called\n",(0,i.jsx)(n.code,{children:"complexType"})," which includes more information about the types referenced in\nthe type declarations for that property."]}),"\n",(0,i.jsxs)(n.p,{children:["Here's an example of what this looks like for the ",(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/ionic-framework/blob/1f0c8049a339e3a77c468ddba243041d08ead0be/core/src/components/select/select.tsx#L261-L313",children:"open\nmethod"}),"\non the ",(0,i.jsx)(n.code,{children:"Select"})," component in Ionic Framework:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n  "complexType": {\n    "signature": "(event?: UIEvent) => Promise<any>",\n    "parameters": [\n      {\n        "tags": [\n          {\n            "name": "param",\n            "text": "event The user interface event that called the open."\n          }\n        ],\n        "text": "The user interface event that called the open."\n      }\n    ],\n    "references": {\n      "Promise": {\n        "location": "global",\n        "id": "global::Promise"\n      },\n      "UIEvent": {\n        "location": "global",\n        "id": "global::UIEvent"\n      },\n      "HTMLElement": {\n        "location": "global",\n        "id": "global::HTMLElement"\n      }\n    },\n    "return": "Promise<any>"\n  }\n}\n'})}),"\n",(0,i.jsx)(n.h2,{id:"additional-packages",children:"Additional Packages"}),"\n",(0,i.jsxs)(n.p,{children:["To ensure the proper functioning of other ",(0,i.jsx)(n.code,{children:"@stencil/"})," packages, it is advisable for projects utilizing any of the packages mentioned below to upgrade to the minimum package version specified."]}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Package"}),(0,i.jsx)(n.th,{children:"Minimum Package Version"}),(0,i.jsx)(n.th,{children:"GitHub"}),(0,i.jsx)(n.th,{children:"Documentation"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"@stencil/angular-output-target"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil-ds-output-targets/releases/tag/%40stencil%2Fangular-output-target%400.7.1",children:"0.7.1"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil-ds-output-targets",children:"GitHub"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.a,{href:"/docs/v4.41/angular",children:"Stencil Doc Site"})})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"@stencil/sass"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil-sass/releases/tag/v3.0.4",children:"3.0.4"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil-sass",children:"GitHub"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil-sass",children:"GitHub README"})})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"@stencil/store"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil-store/releases/tag/v2.0.8",children:"2.0.8"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil-store",children:"GitHub"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.a,{href:"/docs/v4.41/stencil-store",children:"Stencil Doc Site"})})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"@stencil/react-output-target"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil-ds-output-targets/releases/tag/%40stencil%2Freact-output-target%400.5.1",children:"0.5.1"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil-ds-output-targets",children:"GitHub"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.a,{href:"/docs/v4.41/react",children:"Stencil Doc Site"})})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"@stencil/vue-output-target"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil-ds-output-targets/releases/tag/%40stencil%2Fvue-output-target%400.8.6",children:"0.8.6"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil-ds-output-targets",children:"GitHub"})}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.a,{href:"/docs/v4.41/vue",children:"Stencil Doc Site"})})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"need-help-upgrading",children:"Need Help Upgrading?"}),"\n",(0,i.jsxs)(n.p,{children:["Be sure to look at the Stencil ",(0,i.jsx)(n.a,{href:"https://github.com/ionic-team/stencil/blob/main/BREAKING_CHANGES.md#stencil-v400",children:"v4.0.0 Breaking Changes Guide"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["If you need help upgrading, please post a thread on the ",(0,i.jsx)(n.a,{href:"https://chat.stenciljs.com",children:"Stencil Discord"}),"."]})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>c});var i=t(96540);const o={},s=i.createContext(o);function r(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.