@stencil/core 5.0.0-alpha.4 → 5.0.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/{client-Dti6fFpE.mjs → client-fWOou5EW.mjs} +2360 -2090
  2. package/dist/compiler/index.d.mts +5 -5
  3. package/dist/compiler/index.mjs +2 -2
  4. package/dist/compiler/utils/index.d.mts +2 -2
  5. package/dist/compiler/utils/index.mjs +3 -3
  6. package/dist/{compiler-BYRrEeD-.mjs → compiler-CdUbDTbV.mjs} +13426 -12276
  7. package/dist/declarations/stencil-public-compiler.d.ts +527 -238
  8. package/dist/declarations/stencil-public-compiler.js +2 -3
  9. package/dist/declarations/stencil-public-docs.d.ts +10 -0
  10. package/dist/declarations/stencil-public-runtime.d.ts +51 -12
  11. package/dist/{index-BwTaN1Nq.d.mts → index-D8vvsppY.d.mts} +566 -350
  12. package/dist/{index-CyrGY82h.d.ts → index-Dap2E02-.d.ts} +83 -32
  13. package/dist/{index-9LTuoSiw.d.mts → index-UUlemGuu.d.mts} +13 -2
  14. package/dist/index.d.mts +0 -1
  15. package/dist/index.mjs +1 -1
  16. package/dist/jsx-runtime.d.mts +18 -0
  17. package/dist/jsx-runtime.mjs +2 -0
  18. package/dist/{node-BF2jSfWg.mjs → node-klLZLdDe.mjs} +20 -19
  19. package/dist/{regular-expression-D5pGVpCu.mjs → regular-expression-DUdhF3Ei.mjs} +113 -29
  20. package/dist/runtime/app-data/index.d.ts +1 -1
  21. package/dist/runtime/app-data/index.js +15 -9
  22. package/dist/{runtime-COEYYPyw.js → runtime/client/lazy.js} +2596 -2182
  23. package/dist/runtime/client/{index.d.ts → runtime.d.ts} +89 -47
  24. package/dist/runtime/client/{index.js → runtime.js} +2473 -2183
  25. package/dist/runtime/index.d.ts +46 -5
  26. package/dist/runtime/index.js +4956 -2
  27. package/dist/runtime/server/index.d.mts +85 -63
  28. package/dist/runtime/server/index.mjs +2462 -2193
  29. package/dist/runtime/server/runner.d.mts +44 -32
  30. package/dist/runtime/server/runner.mjs +335 -383
  31. package/dist/signals/index.d.ts +47 -0
  32. package/dist/signals/index.js +199 -0
  33. package/dist/sys/node/index.d.mts +1 -1
  34. package/dist/sys/node/index.mjs +1 -1
  35. package/dist/sys/node/worker.mjs +2 -2
  36. package/dist/testing/index.d.mts +97 -3
  37. package/dist/testing/index.mjs +197 -45
  38. package/dist/{validation-Byxie0Uk.mjs → validation-2QipI30K.mjs} +90 -77
  39. package/package.json +41 -28
  40. package/dist/index-hS-KBdAP.d.ts +0 -30
  41. package/dist/jsx-runtime-DlDkTqps.d.ts +0 -28
  42. package/dist/jsx-runtime.d.ts +0 -2
  43. package/dist/jsx-runtime.js +0 -2
  44. /package/dist/{chunk-CjcI7cDX.mjs → chunk-z9aeyW2b.mjs} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { Diagnostic, Node as Node$1 } from "typescript";
2
- import { RolldownError, SourceMap } from "rolldown";
2
+ import { InputOptions, RolldownError, SourceMap, SourceMap as RolldownSourceMap } from "rolldown";
3
3
  import { Serializable } from "child_process";
4
4
 
5
5
  //#region src/utils/byte-size.d.ts
@@ -80,13 +80,6 @@ declare const CMP_FLAGS: {
80
80
  * Used to determine if a component does not use the shadow DOM _and_ has `<slot/>` tags in its markup.
81
81
  */
82
82
  readonly hasSlotRelocation: number;
83
- /**
84
- * Determines if a shim for the shadow DOM is necessary.
85
- *
86
- * The shim should only be needed if a component requires {@link shadowDomEncapsulation} and if any output
87
- * target-specific criteria are met. Refer to this flag's usage to determine each output target's criteria.
88
- */
89
- readonly needsShadowDomShim: number;
90
83
  /**
91
84
  * Determines if `delegatesFocus` is enabled for a component that uses the shadow DOM.
92
85
  * e.g. `shadow: { delegatesFocus: true }` is set on the `@Component()` decorator
@@ -97,10 +90,7 @@ declare const CMP_FLAGS: {
97
90
  */
98
91
  readonly hasMode: number;
99
92
  /**
100
- * Determines if styles must be scoped due to either:
101
- * 1. A component is using scoped stylesheets ({@link scopedCssEncapsulation})
102
- * 2. A component is using the shadow DOM _and_ the output target's rules for requiring a shadow DOM shim have been
103
- * met ({@link needsShadowDomShim})
93
+ * Determines if styles must be scoped - i.e. the component uses scoped stylesheets.
104
94
  */
105
95
  readonly needsScopedEncapsulation: number;
106
96
  /**
@@ -167,6 +157,7 @@ declare const XLINK_NS = "http://www.w3.org/1999/xlink";
167
157
  * File names and value
168
158
  */
169
159
  declare const COLLECTION_MANIFEST_FILE_NAME = "collection-manifest.json";
160
+ declare const COLLECTION_APP_DATA_FILE_NAME = "app-data.js";
170
161
  /**
171
162
  * Constant for the 'copy' output target
172
163
  */
@@ -176,37 +167,54 @@ declare const COPY = "copy";
176
167
  */
177
168
  declare const CUSTOM = "custom";
178
169
  /**
179
- * Constant for the 'dist' output target
170
+ * Constant for the 'loader-bundle' output target
171
+ * (formerly 'dist' in v4)
180
172
  */
181
- declare const DIST = "dist";
173
+ declare const LOADER_BUNDLE = "loader-bundle";
182
174
  /**
183
- * Constant for the 'dist-collection' output target
175
+ * Constant for the 'standalone' output target
176
+ * (formerly 'dist-custom-elements' in v4)
184
177
  */
185
- declare const DIST_COLLECTION = "dist-collection";
178
+ declare const STANDALONE = "standalone";
186
179
  /**
187
- * Constant for the 'dist-custom-elements' output target
180
+ * Constant for the 'ssr' output target
181
+ * (formerly 'dist-hydrate-script' in v4)
188
182
  */
189
- declare const DIST_CUSTOM_ELEMENTS = "dist-custom-elements";
183
+ declare const SSR = "ssr";
190
184
  /**
191
- * Constant for the 'dist-types' output target
185
+ * Constant for the 'ssr-wasm' output target.
186
+ * Compiles the SSR script to a WASM binary via javy for use in any WASM-capable host
187
+ * (PHP, Java, Ruby, Go, etc.) without requiring a JavaScript runtime.
192
188
  */
193
- declare const DIST_TYPES = "dist-types";
189
+ declare const SSR_WASM = "ssr-wasm";
194
190
  /**
195
- * Constant for the 'dist-hydrate-script' output target
191
+ * Constant for the 'collection' output target
192
+ * (formerly 'dist-collection' sub-output in v4)
193
+ *
194
+ * Contains transpiled source + metadata for downstream Stencil projects
195
+ * to re-compile/bundle.
196
196
  */
197
- declare const DIST_HYDRATE_SCRIPT = "dist-hydrate-script";
197
+ declare const STENCIL_REBUNDLE = "collection";
198
198
  /**
199
- * Constant for the 'dist-lazy' output target
199
+ * Constant for the 'types' output target
200
+ * (formerly 'dist-types' sub-output in v4)
200
201
  */
201
- declare const DIST_LAZY = "dist-lazy";
202
+ declare const TYPES = "types";
202
203
  /**
203
- * Constant for the 'dist-lazy-loader' output target
204
+ * Constant for the 'global-style' output target
205
+ * Outputs global styles to a unified location available to all distributions.
204
206
  */
205
- declare const DIST_LAZY_LOADER = "dist-lazy-loader";
207
+ declare const GLOBAL_STYLE = "global-style";
206
208
  /**
207
- * Constant for the 'dist-global-styles' output target
209
+ * Constant for the 'assets' output target
210
+ * Copies component assetsDirs to a unified location available to all distributions.
208
211
  */
209
- declare const DIST_GLOBAL_STYLES = "dist-global-styles";
212
+ declare const ASSETS = "assets";
213
+ /**
214
+ * Internal constant for the 'dist-lazy' output target
215
+ * (used by loader-bundle and www)
216
+ */
217
+ declare const DIST_LAZY = "dist-lazy";
210
218
  /**
211
219
  * Constant for the 'docs-custom' output target
212
220
  */
@@ -238,12 +246,12 @@ declare const WWW = "www";
238
246
  /**
239
247
  * Valid output targets to specify in a Stencil config.
240
248
  *
241
- * Note that there are some output targets (e.g. `DIST_TYPES`) which are
242
- * programmatically set as output targets by the compiler when other output
243
- * targets (in that case `DIST`) are set, but which are _not_ supported in a
244
- * Stencil config. This is enforced in the output target validation code.
249
+ * Note that some internal output targets (e.g. `DIST_LAZY`, `DIST_GLOBAL_STYLES`)
250
+ * are programmatically created by the compiler and are not user-configurable.
251
+ *
252
+ * In v5, `TYPES` and `STENCIL_REBUNDLE` are auto-generated in production builds unless explicitly configured.
245
253
  */
246
- declare const VALID_CONFIG_OUTPUT_TARGETS: readonly ["www", "dist", "dist-collection", "dist-custom-elements", "dist-lazy", "dist-hydrate-script", "docs-json", "docs-readme", "docs-vscode", "docs-custom", "docs-custom-elements-manifest", "copy", "custom", "stats"];
254
+ declare const VALID_CONFIG_OUTPUT_TARGETS: readonly ["www", "loader-bundle", "standalone", "ssr", "ssr-wasm", "collection", "types", "global-style", "assets", "dist", "dist-custom-elements", "dist-hydrate-script", "dist-collection", "dist-types", "docs-json", "docs-readme", "docs-vscode", "docs-custom", "docs-custom-elements-manifest", "copy", "custom", "stats"];
247
255
  declare const GENERATED_DTS = "components.d.ts";
248
256
  /**
249
257
  * DOM Node types
@@ -439,6 +447,7 @@ declare const isGlob: (str: string) => boolean;
439
447
  declare const isRootPath: (p: string) => boolean;
440
448
  //#endregion
441
449
  //#region src/utils/logger/logger-rolldown.d.ts
450
+ declare const isRolldownError: (e: unknown) => e is RolldownError;
442
451
  declare const loadRolldownDiagnostics: (config: ValidatedConfig, compilerCtx: CompilerCtx, buildCtx: BuildCtx, rolldownError: RolldownError) => void;
443
452
  declare const createOnWarnFn: (diagnostics: Diagnostic$1[], bundleModulesFiles?: Module[]) => (warning: {
444
453
  code?: string;
@@ -523,7 +532,8 @@ declare const buildWarn: (diagnostics: Diagnostic$1[]) => Diagnostic$1;
523
532
  * @param jsonFilePath the path to the JSON file where the error occurred
524
533
  * @param msg the error message
525
534
  * @param jsonField the key for the field which caused the error, used for finding
526
- * the error line in the original JSON file
535
+ * the error line in the original JSON file. Only root-level keys (with minimal
536
+ * indentation, typically 2 spaces) are highlighted to avoid matching nested keys.
527
537
  * @returns a reference to the newly-created diagnostic
528
538
  */
529
539
  declare const buildJsonFileError: (compilerCtx: CompilerCtx, diagnostics: Diagnostic$1[], jsonFilePath: string, msg: string, jsonField: string) => Diagnostic$1;
@@ -577,21 +587,22 @@ declare const filterExcludedComponents: (components: ComponentCompilerMeta[], co
577
587
  declare const relativeImport: (pathFrom: string, pathTo: string, ext?: string, addPrefix?: boolean) => string;
578
588
  declare const getComponentsDtsSrcFilePath: (config: ValidatedConfig) => string;
579
589
  /**
580
- * Helper to get an appropriate file path for `components.d.ts` for a `"dist"`
581
- * or `"dist-types"` output target.
590
+ * Helper to get an appropriate file path for `components.d.ts` for an output target.
582
591
  *
583
- * @param outputTarget the output target of interest
592
+ * @param typesDir the directory where types are generated
584
593
  * @returns a properly-formatted path
585
594
  */
586
- declare const getComponentsDtsTypesFilePath: (outputTarget: Required<OutputTargetDist> | OutputTargetDistTypes) => string;
587
- declare const isOutputTargetDist: (o: OutputTarget) => o is OutputTargetDist;
588
- declare const isOutputTargetDistCollection: (o: OutputTarget) => o is OutputTargetDistCollection;
589
- declare const isOutputTargetDistCustomElements: (o: OutputTarget) => o is OutputTargetDistCustomElements;
595
+ declare const getComponentsDtsTypesFilePath: (typesDir: string) => string;
596
+ declare const isOutputTargetLoaderBundle: (o: OutputTarget) => o is OutputTargetLoaderBundle;
597
+ declare const isOutputTargetStandalone: (o: OutputTarget) => o is OutputTargetStandalone;
598
+ declare const isOutputTargetSsr: (o: OutputTarget) => o is OutputTargetSsr;
599
+ declare const isOutputTargetSsrWasm: (o: OutputTarget) => o is OutputTargetSsrWasm;
600
+ declare const isOutputTargetCollection: (o: OutputTarget) => o is OutputTargetCollection;
601
+ declare const isOutputTargetTypes: (o: OutputTarget) => o is OutputTargetTypes;
602
+ declare const isOutputTargetGlobalStyle: (o: OutputTarget) => o is OutputTargetGlobalStyle;
603
+ declare const isOutputTargetAssets: (o: OutputTarget) => o is OutputTargetAssets;
590
604
  declare const isOutputTargetCopy: (o: OutputTarget) => o is OutputTargetCopy;
591
605
  declare const isOutputTargetDistLazy: (o: OutputTarget) => o is OutputTargetDistLazy;
592
- declare const isOutputTargetDistLazyLoader: (o: OutputTarget) => o is OutputTargetDistLazyLoader;
593
- declare const isOutputTargetDistGlobalStyles: (o: OutputTarget) => o is OutputTargetDistGlobalStyles;
594
- declare const isOutputTargetHydrate: (o: OutputTarget) => o is OutputTargetHydrate;
595
606
  declare const isOutputTargetCustom: (o: OutputTarget) => o is OutputTargetCustom;
596
607
  declare const isOutputTargetDocs: (o: OutputTarget) => o is OutputTargetDocsJson | OutputTargetDocsReadme | OutputTargetDocsVscode | OutputTargetDocsCustom | OutputTargetDocsCustomElementsManifest;
597
608
  declare const isOutputTargetDocsReadme: (o: OutputTarget) => o is OutputTargetDocsReadme;
@@ -601,15 +612,6 @@ declare const isOutputTargetDocsVscode: (o: OutputTarget) => o is OutputTargetDo
601
612
  declare const isOutputTargetDocsCustomElementsManifest: (o: OutputTarget) => o is OutputTargetDocsCustomElementsManifest;
602
613
  declare const isOutputTargetWww: (o: OutputTarget) => o is OutputTargetWww;
603
614
  declare const isOutputTargetStats: (o: OutputTarget) => o is OutputTargetStats;
604
- declare const isOutputTargetDistTypes: (o: OutputTarget) => o is OutputTargetDistTypes;
605
- /**
606
- * Checks whether or not the supplied output target's type matches one of the eligible primary
607
- * package output target types (i.e. it can have `isPrimaryPackageOutputTarget: true` in its config).
608
- *
609
- * @param o The output target to check.
610
- * @returns Whether the output target type is one of the "primary" output targets.
611
- */
612
- declare const isEligiblePrimaryPackageOutputTarget: (o: OutputTarget) => o is EligiblePrimaryPackageOutputTarget;
613
615
  /**
614
616
  * Retrieve the Stencil component compiler metadata from a collection of Stencil {@link d.Module}s
615
617
  * @param moduleFiles the collection of `Module`s to retrieve the metadata from
@@ -624,6 +626,16 @@ type ValidConfigOutputTarget = (typeof VALID_CONFIG_OUTPUT_TARGETS)[number];
624
626
  * @returns whether or not the targetType is a valid, configurable output target.
625
627
  */
626
628
  declare function isValidConfigOutputTarget(targetType: string): targetType is ValidConfigOutputTarget;
629
+ /**
630
+ * Filter output targets based on devMode and their skipInDev setting.
631
+ * In dev mode, targets with `skipInDev: true` are filtered out.
632
+ * In prod mode, all targets are included.
633
+ *
634
+ * @param targets Array of output targets to filter
635
+ * @param devMode Whether we're in dev mode
636
+ * @returns Filtered array of active targets
637
+ */
638
+ declare const filterActiveTargets: <T extends OutputTarget>(targets: T[], devMode: boolean) => T[];
627
639
  //#endregion
628
640
  //#region src/utils/path.d.ts
629
641
  /**
@@ -1689,7 +1701,7 @@ interface FunctionalUtilities {
1689
1701
  map: (children: VNode[], cb: (vnode: ChildNode$1, index: number, array: ChildNode$1[]) => ChildNode$1) => VNode[];
1690
1702
  }
1691
1703
  interface FunctionalComponent<T = {}> {
1692
- (props: T, children: VNode[], utils: FunctionalUtilities): VNode | VNode[] | null;
1704
+ (props: T, children: VNode[], utils: FunctionalUtilities): VNode | null;
1693
1705
  }
1694
1706
  /**
1695
1707
  * A Child VDOM node
@@ -1700,7 +1712,7 @@ interface FunctionalComponent<T = {}> {
1700
1712
  * {@link FunctionalUtilities}).
1701
1713
  */
1702
1714
  interface ChildNode$1 {
1703
- vtag?: string | number | Function;
1715
+ vtag?: string | number | Function | symbol | null;
1704
1716
  vkey?: string | number;
1705
1717
  vtext?: string;
1706
1718
  vchildren?: VNode[];
@@ -1712,13 +1724,15 @@ interface ChildNode$1 {
1712
1724
  */
1713
1725
  interface VNode {
1714
1726
  $flags$: number;
1715
- $tag$: string | number | Function;
1727
+ $tag$: string | number | Function | symbol | null;
1716
1728
  $elm$: any;
1717
1729
  $text$: string;
1718
1730
  $children$: VNode[];
1719
1731
  $attrs$?: any;
1720
1732
  $name$?: string;
1721
1733
  $key$?: string | number;
1734
+ /** Signal reference for vdom bypass: signal text nodes store the signal here. */
1735
+ $signal$?: any;
1722
1736
  }
1723
1737
  //#endregion
1724
1738
  //#region src/declarations/stencil-public-compiler.d.ts
@@ -1805,20 +1819,6 @@ interface StencilConfig {
1805
1819
  * @default false
1806
1820
  */
1807
1821
  generateExportMaps?: boolean;
1808
- /**
1809
- * When the hashFileNames config is set to true, and it is a production build,
1810
- * the hashedFileNameLength config is used to determine how many characters the file name's hash should be.
1811
- */
1812
- hashedFileNameLength?: number;
1813
- /**
1814
- * During production builds, the content of each generated file is hashed to represent the content,
1815
- * and the hashed value is used as the filename. If the content isn't updated between builds,
1816
- * then it receives the same filename. When the content is updated, then the filename is different.
1817
- *
1818
- * By doing this, deployed apps can "forever-cache" the build directory and take full advantage of
1819
- * content delivery networks (CDNs) and heavily caching files for faster apps.
1820
- */
1821
- hashFileNames?: boolean;
1822
1822
  /**
1823
1823
  * The namespace config is a string representing a namespace for the app.
1824
1824
  * For apps that are not meant to be a library of reusable components,
@@ -1864,11 +1864,6 @@ interface StencilConfig {
1864
1864
  * (for example, decorating a method named `focus` with `@Method()`). Defaults to `false`.
1865
1865
  */
1866
1866
  suppressReservedPublicNameWarnings?: boolean;
1867
- /**
1868
- * When `true`, we will validate a project's `package.json` based on the output target the user has designated
1869
- * as `isPrimaryPackageOutputTarget: true` in their Stencil config.
1870
- */
1871
- validatePrimaryPackageOutputTarget?: boolean;
1872
1867
  /**
1873
1868
  * Passes custom configuration down to the "@rolldown/plugin-node-resolve" that Stencil uses under the hood.
1874
1869
  * For further information: https://stenciljs.com/docs/module-bundling
@@ -1888,13 +1883,6 @@ interface StencilConfig {
1888
1883
  * Defaults to `false` in dev mode and `true` in production mode.
1889
1884
  */
1890
1885
  minifyCss?: boolean;
1891
- /**
1892
- * Forces Stencil to run in `dev` mode if the value is `true` and `production` mode
1893
- * if it's `false`.
1894
- *
1895
- * Defaults to `false` (ie. production) unless the `--dev` flag is used in the CLI.
1896
- */
1897
- devMode?: boolean;
1898
1886
  /**
1899
1887
  * Object to provide a custom logger. By default a `logger` is already provided for the
1900
1888
  * platform the compiler is running on, such as NodeJS or a browser.
@@ -1970,14 +1958,6 @@ interface StencilConfig {
1970
1958
  after?: any[];
1971
1959
  };
1972
1960
  entryComponentsHint?: string[];
1973
- /**
1974
- * Sets whether Stencil will write files to `dist/` during the build or not.
1975
- *
1976
- * By default this value is set to the opposite value of {@link devMode},
1977
- * i.e. it will be `true` when building for production and `false` when
1978
- * building for development.
1979
- */
1980
- buildDist?: boolean;
1981
1961
  buildLogFilePath?: string;
1982
1962
  devInspector?: boolean;
1983
1963
  devServer?: StencilDevServerConfig;
@@ -2005,7 +1985,7 @@ interface StencilConfig {
2005
1985
  * An array of component tag names to exclude from production builds.
2006
1986
  * Useful to remove test, demo or experimental components from final output.
2007
1987
  *
2008
- * **Note:** Exclusion only applies to production builds (default, or when `--prod` is used).
1988
+ * **Note:** Exclusion only applies to production builds (the default).
2009
1989
  * Development builds (with `--dev` flag) will include all components to support local testing.
2010
1990
  *
2011
1991
  * Supports glob patterns for matching multiple components:
@@ -2029,6 +2009,23 @@ interface StencilConfig {
2029
2009
  * Set whether unused dependencies should be excluded from the built output.
2030
2010
  */
2031
2011
  excludeUnusedDependencies?: boolean;
2012
+ /**
2013
+ * Explicitly declare which npm packages are Stencil collections to be re-bundled into this project.
2014
+ *
2015
+ * Without this option, collection ingestion is triggered only by a side-effect import:
2016
+ * ```ts
2017
+ * import '@ionic/core';
2018
+ * ```
2019
+ * @example
2020
+ * ```ts
2021
+ * export const config: Config = {
2022
+ * collections: ['@ionic/core', '@my-org/design-system'],
2023
+ * };
2024
+ * ```
2025
+ *
2026
+ * @default []
2027
+ */
2028
+ collections?: string[];
2032
2029
  stencilCoreResolvedId?: string;
2033
2030
  }
2034
2031
  interface ConfigExtrasBase {
@@ -2036,7 +2033,7 @@ interface ConfigExtrasBase {
2036
2033
  * Projects that use a Stencil library built using the `dist` output target may have trouble lazily
2037
2034
  * loading components when using a bundler such as Vite or Parcel. Setting this flag to `true` will change how Stencil
2038
2035
  * lazily loads components in a way that works with additional bundlers. Setting this flag to `true` will increase
2039
- * the size of the compiled output. Defaults to `false`.
2036
+ * the size of the compiled output. Defaults to `true`.
2040
2037
  */
2041
2038
  enableImportInjection?: boolean;
2042
2039
  /**
@@ -2055,66 +2052,51 @@ interface ConfigExtrasBase {
2055
2052
  */
2056
2053
  additionalTagTransformers?: boolean | 'prod';
2057
2054
  /**
2058
- * Experimental flag.
2059
- * Updates the behavior of scoped components to align more closely with the behavior of the native
2060
- * Shadow DOM when using `slot`s.
2055
+ * Replace `@State` and `@Prop` internals with `@preact/signals-core` signal primitives.
2056
+ * Enables cross-framework reactive interop - component state becomes subscribable by
2057
+ * Solid, Angular, Preact and any TC39-signal-compatible library without event/attribute
2058
+ * roundtrips. No API changes required in component code.
2061
2059
  * Defaults to `false`.
2062
2060
  */
2063
- experimentalScopedSlotChanges?: boolean;
2061
+ signalBacking?: boolean;
2064
2062
  /**
2065
- * By default Stencil turns the stylesheet provided to `globalStyle` into a constructable stylesheet
2066
- * and adds it to each component when rendered on the client which can be useful for sharing styles
2067
- * efficiently across components.
2068
- *
2069
- * If you want Stencil to also add the `globalStyle` to each component when rendering on the server
2070
- * then set this to `true`. If your `globalStyle` sheet is large then doing this may bloat the size
2071
- * of your SSR output when using declarative-shadow-dom.
2072
- *
2073
- * Setting this to `false` will prevent Stencil from adding any `globalStyle` to each component.
2074
- *
2075
- * Defaults to `'client'`.
2063
+ * Enable JSX signal bypass: `Signal` objects passed as JSX text children or attribute values
2064
+ * subscribe directly to DOM nodes, bypassing the vdom diff on signal changes.
2065
+ * Also enables `<Show>` from `@stencil/core/signals`.
2066
+ * Auto-enabled when `signalBacking: true`. Defaults to `false`.
2076
2067
  */
2077
- addGlobalStyleToComponents?: boolean | 'client';
2068
+ vdomSignals?: boolean;
2078
2069
  }
2079
- type ConfigExtrasSlotFixes<ExperimentalFixesEnabled extends boolean, IndividualFlags extends boolean> = {
2080
- /**
2081
- * By default, the slot polyfill does not update `appendChild()` so that it appends
2082
- * new child nodes into the correct child slot like how shadow dom works. This is an opt-in
2083
- * polyfill for those who need it when using `element.appendChild(node)` and expecting the
2084
- * child to be appended in the same location shadow dom would. This is not required for
2085
- * IE11 or Edge 18, but can be enabled if the app is using `appendChild()`. Defaults to `false`.
2086
- */
2087
- appendChildSlotFix?: IndividualFlags;
2088
- /**
2089
- * By default, the runtime does not polyfill `cloneNode()` when cloning a component
2090
- * that uses the slot polyfill. This is an opt-in polyfill for those who need it.
2091
- * This is not required for IE11 or Edge 18, but can be enabled if the app is using
2092
- * `cloneNode()` and unexpected node are being cloned due to the slot polyfill
2093
- * simulating shadow dom. Defaults to `false`.
2094
- */
2095
- cloneNodeFix?: IndividualFlags;
2096
- /**
2097
- * Experimental flag to align the behavior of invoking `textContent` on a scoped component to act more like a
2098
- * component that uses the shadow DOM. Defaults to `false`
2099
- */
2100
- scopedSlotTextContentFix?: IndividualFlags;
2101
- /**
2102
- * For browsers that do not support shadow dom (IE11 and Edge 18 and below), slot is polyfilled
2103
- * to simulate the same behavior. However, the host element's `childNodes` and `children`
2104
- * getters are not patched to only show the child nodes and elements of the default slot.
2105
- * Defaults to `false`.
2106
- */
2107
- slotChildNodesFix?: IndividualFlags;
2070
+ /**
2071
+ * DOM patches for light-dom / scoped components that use `<slot>`.
2072
+ *
2073
+ * These patches shield the component's slot machinery from framework DOM mutations
2074
+ * (e.g. when Angular or React insert / remove nodes they route directly to the host
2075
+ * element, bypassing the slot polyfill) and prevent hydration errors when a framework
2076
+ * encounters Stencil's internal slot reference nodes during SSR reconciliation.
2077
+ *
2078
+ * Patches are only applied at runtime when a component is both non-shadow **and**
2079
+ * declares at least one `<slot>`, so enabling them has no effect on pure shadow-DOM
2080
+ * components.
2081
+ *
2082
+ * Set to `true` (default) to enable all patches, `false` to disable all, or an object
2083
+ * for granular control.
2084
+ */
2085
+ type LightDomPatches = {
2086
+ /** Patches `childNodes`/`children` getters to return only slotted content. */childNodes?: boolean; /** Patches `cloneNode()` to correctly deep-clone slotted content. */
2087
+ cloneNode?: boolean; /** Patches `appendChild()`, `insertBefore()`, and `removeChild()` to route to the correct slot. */
2088
+ domMutations?: boolean; /** Patches `textContent` to act like shadow DOM (reads/writes slotted text only). */
2089
+ textContent?: boolean;
2090
+ };
2091
+ type ConfigExtras = ConfigExtrasBase & {
2108
2092
  /**
2109
- * Enables all slot-related fixes such as {@link slotChildNodesFix}, and
2110
- * {@link scopedSlotTextContentFix}.
2093
+ * DOM patches for light-dom / scoped components that use `<slot>`.
2094
+ * See {@link LightDomPatches} for granular control. Defaults to `true`.
2111
2095
  */
2112
- experimentalSlotFixes?: ExperimentalFixesEnabled;
2096
+ lightDomPatches?: boolean | LightDomPatches;
2113
2097
  };
2114
- type ConfigExtras = ConfigExtrasBase & (ConfigExtrasSlotFixes<true, true> | ConfigExtrasSlotFixes<false, boolean>);
2115
2098
  interface Config extends StencilConfig {
2116
2099
  buildAppCore?: boolean;
2117
- buildDocs?: boolean;
2118
2100
  configPath?: string;
2119
2101
  writeLog?: boolean;
2120
2102
  devServer?: DevServerConfig;
@@ -2128,6 +2110,11 @@ interface Config extends StencilConfig {
2128
2110
  tsWatchOptions?: any;
2129
2111
  _isValidated?: boolean;
2130
2112
  _isTesting?: boolean;
2113
+ /**
2114
+ * Internal flag set when --docs CLI flag is used.
2115
+ * Forces docs output targets to build even in dev mode.
2116
+ */
2117
+ _docsFlag?: boolean;
2131
2118
  /**
2132
2119
  * Whether running in a CI environment (disables interactive features, adjusts worker count)
2133
2120
  */
@@ -2210,7 +2197,7 @@ type RequireFields<T, K extends keyof T> = T & { [P in K]-?: T[P] };
2210
2197
  /**
2211
2198
  * Fields in {@link Config} to make required for {@link ValidatedConfig}
2212
2199
  */
2213
- type StrictConfigFields = keyof Pick<Config, 'cacheDir' | 'devMode' | 'devServer' | 'extras' | 'fsNamespace' | 'hashFileNames' | 'hashedFileNameLength' | 'hydratedFlag' | 'logLevel' | 'logger' | 'minifyCss' | 'minifyJs' | 'namespace' | 'outputTargets' | 'packageJsonFilePath' | 'rolldownConfig' | 'rootDir' | 'srcDir' | 'srcIndexHtml' | 'sys' | 'transformAliasedImportPaths' | 'validatePrimaryPackageOutputTarget'>;
2200
+ type StrictConfigFields = keyof Pick<Config, 'cacheDir' | 'devServer' | 'extras' | 'fsNamespace' | 'hydratedFlag' | 'logLevel' | 'logger' | 'minifyCss' | 'minifyJs' | 'namespace' | 'outputTargets' | 'packageJsonFilePath' | 'rolldownConfig' | 'rootDir' | 'srcDir' | 'srcIndexHtml' | 'sys' | 'transformAliasedImportPaths'>;
2214
2201
  /**
2215
2202
  * A version of {@link Config} that makes certain fields required. This type represents a valid configuration entity.
2216
2203
  * When a configuration is received by the user, it is a bag of unverified data. In order to make stricter guarantees
@@ -2218,6 +2205,11 @@ type StrictConfigFields = keyof Pick<Config, 'cacheDir' | 'devMode' | 'devServer
2218
2205
  * validations have occurred at runtime.
2219
2206
  */
2220
2207
  type ValidatedConfig = RequireFields<Config, StrictConfigFields> & {
2208
+ /**
2209
+ * Whether the build is running in development mode.
2210
+ * Set by the `--dev` CLI flag. Not user-configurable in `stencil.config.ts`.
2211
+ */
2212
+ devMode: boolean;
2221
2213
  sourceMap: boolean;
2222
2214
  };
2223
2215
  interface HydratedFlag {
@@ -2422,11 +2414,11 @@ interface PrerenderConfig {
2422
2414
  * Run after each `document` is hydrated, but before it is serialized
2423
2415
  * into an HTML string. Hook is passed the `document` and its `URL`.
2424
2416
  */
2425
- afterHydrate?(document: Document, url: URL, results: PrerenderUrlResults): any | Promise<any>;
2417
+ afterSsr?(document: Document, url: URL, results: PrerenderUrlResults): any | Promise<any>;
2426
2418
  /**
2427
2419
  * Run before each `document` is hydrated. Hook is passed the `document` it's `URL`.
2428
2420
  */
2429
- beforeHydrate?(document: Document, url: URL): any | Promise<any>;
2421
+ beforeSsr?(document: Document, url: URL): any | Promise<any>;
2430
2422
  /**
2431
2423
  * Runs after the template Document object has serialize into an
2432
2424
  * HTML formatted string. Returns an HTML string to be used as the
@@ -2470,9 +2462,9 @@ interface PrerenderConfig {
2470
2462
  */
2471
2463
  filePath?(url: URL, filePath: string): string;
2472
2464
  /**
2473
- * Returns the hydrate options to use for each individual prerendered page.
2465
+ * Returns the prerender options to use for each individual prerendered page.
2474
2466
  */
2475
- hydrateOptions?(url: URL): PrerenderHydrateOptions;
2467
+ prerenderOptions?(url: URL): PrerenderOptions;
2476
2468
  /**
2477
2469
  * Returns the template file's content. The template is the base
2478
2470
  * HTML used for all prerendered pages.
@@ -2496,7 +2488,7 @@ interface PrerenderConfig {
2496
2488
  */
2497
2489
  trailingSlash?: boolean;
2498
2490
  }
2499
- interface HydrateDocumentOptions {
2491
+ interface SsrDocumentOptions {
2500
2492
  /**
2501
2493
  * Build ID that will be added to `<html data-stencil-build="BUILD_ID">`. By default
2502
2494
  * a random ID will be generated
@@ -2513,7 +2505,7 @@ interface HydrateDocumentOptions {
2513
2505
  * JavaScript to read the structure of the HTML and rebuild each
2514
2506
  * component. Defaults to `true`.
2515
2507
  */
2516
- clientHydrateAnnotations?: boolean;
2508
+ clientSsrAnnotations?: boolean;
2517
2509
  /**
2518
2510
  * Constrain `setTimeout()` to 1ms, but still async. Also
2519
2511
  * only allows `setInterval()` to fire once, also constrained to 1ms.
@@ -2612,10 +2604,19 @@ interface HydrateDocumentOptions {
2612
2604
  default: 'declarative-shadow-dom' | 'scoped';
2613
2605
  } | boolean;
2614
2606
  }
2615
- interface SerializeDocumentOptions extends HydrateDocumentOptions {
2607
+ /**
2608
+ * Backwards compat for v4
2609
+ * @deprecated - use SsrDocumentOptions instead
2610
+ */
2611
+ interface HydrateDocumentOptions extends SsrDocumentOptions {}
2612
+ interface SerializeDocumentOptions extends SsrDocumentOptions {
2616
2613
  /**
2617
2614
  * Runs after the `document` has been hydrated.
2618
2615
  */
2616
+ afterSsr?(document: any): any | Promise<any>;
2617
+ /**
2618
+ * @deprecated Use `afterSsr` instead.
2619
+ */
2619
2620
  afterHydrate?(document: any): any | Promise<any>;
2620
2621
  /**
2621
2622
  * Sets an approximate line width the HTML should attempt to stay within.
@@ -2628,6 +2629,10 @@ interface SerializeDocumentOptions extends HydrateDocumentOptions {
2628
2629
  /**
2629
2630
  * Runs before the `document` has been hydrated.
2630
2631
  */
2632
+ beforeSsr?(document: any): any | Promise<any>;
2633
+ /**
2634
+ * @deprecated Use `beforeSsr` instead.
2635
+ */
2631
2636
  beforeHydrate?(document: any): any | Promise<any>;
2632
2637
  /**
2633
2638
  * Format the HTML in a nicely indented format.
@@ -2665,12 +2670,17 @@ interface SerializeDocumentOptions extends HydrateDocumentOptions {
2665
2670
  */
2666
2671
  modes?: ResolutionHandler[];
2667
2672
  }
2668
- interface HydrateFactoryOptions extends SerializeDocumentOptions {
2673
+ interface SsrFactoryOptions extends SerializeDocumentOptions {
2669
2674
  serializeToHtml: boolean;
2670
2675
  destroyWindow: boolean;
2671
2676
  destroyDocument: boolean;
2672
2677
  }
2673
- interface PrerenderHydrateOptions extends SerializeDocumentOptions {
2678
+ /**
2679
+ * Backwards compat for v4
2680
+ * @deprecated - use SsrFactoryOptions instead
2681
+ */
2682
+ interface HydrateFactoryOptions extends SsrFactoryOptions {}
2683
+ interface PrerenderOptions extends SerializeDocumentOptions {
2674
2684
  /**
2675
2685
  * Adds `<link rel="modulepreload">` for modules that will eventually be requested.
2676
2686
  * Defaults to `true`.
@@ -2705,6 +2715,11 @@ interface PrerenderHydrateOptions extends SerializeDocumentOptions {
2705
2715
  */
2706
2716
  staticDocument?: boolean;
2707
2717
  }
2718
+ /**
2719
+ * v4 backwards compat
2720
+ * @deprecated - use PrerenderOptions instead
2721
+ */
2722
+ interface PrerenderHydrateOptions extends PrerenderOptions {}
2708
2723
  interface RobotsTxtOpts {
2709
2724
  urls: string[];
2710
2725
  sitemapUrl: string;
@@ -3013,18 +3028,18 @@ interface ResolveModuleIdResults {
3013
3028
  * A controller which provides for communication and coordination between
3014
3029
  * threaded workers.
3015
3030
  */
3016
- interface WorkerMainController {
3031
+ interface WorkerMainController<T extends Record<string, (...args: any[]) => Promise<any>> = Record<string, (...args: any[]) => Promise<any>>> {
3017
3032
  /**
3018
3033
  * Send a given set of arguments to a worker
3019
3034
  */
3020
- send(...args: any[]): Promise<any>;
3035
+ send<K extends keyof T>(methodName: K, ...args: Parameters<T[K]>): ReturnType<T[K]>;
3021
3036
  /**
3022
3037
  * Handle a particular method
3023
3038
  *
3024
3039
  * @param name of the method to be passed to a worker
3025
3040
  * @returns a Promise wrapping the results
3026
3041
  */
3027
- handler(name: string): (...args: any[]) => Promise<any>;
3042
+ handler<K extends keyof T>(name: K): T[K];
3028
3043
  /**
3029
3044
  * Destroy the worker represented by this instance, rejecting all outstanding
3030
3045
  * tasks and killing the child process.
@@ -3091,6 +3106,7 @@ interface BuildNoChangeResults {
3091
3106
  interface CompilerBuildResults {
3092
3107
  buildId: number;
3093
3108
  componentGraph?: BuildResultsComponentGraph;
3109
+ components: ComponentCompilerMeta[];
3094
3110
  diagnostics: Diagnostic$1[];
3095
3111
  dirsAdded: string[];
3096
3112
  dirsDeleted: string[];
@@ -3102,7 +3118,7 @@ interface CompilerBuildResults {
3102
3118
  hasError: boolean;
3103
3119
  hasSuccessfulBuild: boolean;
3104
3120
  hmr?: HotModuleReplacement;
3105
- hydrateAppFilePath?: string;
3121
+ ssrAppFilePath?: string;
3106
3122
  isRebuild: boolean;
3107
3123
  namespace: string;
3108
3124
  outputs: BuildOutput[];
@@ -3265,8 +3281,8 @@ interface ConfigBundle {
3265
3281
  }
3266
3282
  /**
3267
3283
  * A file and/or directory copy operation that may be specified as part of
3268
- * certain output targets for Stencil (in particular `dist`,
3269
- * `dist-custom-elements`, and `www`).
3284
+ * certain output targets for Stencil (in particular `loader-bundle`,
3285
+ * `standalone`, and `www`).
3270
3286
  */
3271
3287
  interface CopyTask {
3272
3288
  /**
@@ -3287,8 +3303,9 @@ interface CopyTask {
3287
3303
  */
3288
3304
  dest?: string;
3289
3305
  /**
3290
- * An optional array of glob patterns to exclude from the copy operation.
3291
- * @default ['**\/__mocks__/**', '**\/__fixtures__/**', '**\/dist/**', '**\/.{idea,git,cache,output,temp}/**', '**\/.ds_store', '**\/.gitignore', '**\/desktop.ini', '**\/thumbs.db']
3306
+ * Additional glob patterns to exclude from the copy operation, merged with
3307
+ * the built-in defaults: `__mocks__`, `__fixtures__`, `dist`, hidden dirs,
3308
+ * `.ds_store`, `.gitignore`, `desktop.ini`, `thumbs.db`.
3292
3309
  */
3293
3310
  ignore?: string[];
3294
3311
  /**
@@ -3367,39 +3384,12 @@ interface StencilDocsConfig {
3367
3384
  };
3368
3385
  };
3369
3386
  }
3370
- interface NodeResolveConfig {
3371
- exportConditions?: string[];
3372
- browser?: boolean;
3373
- moduleDirectories?: string[];
3374
- modulePaths?: string[];
3375
- dedupe?: string[] | ((importee: string) => boolean);
3376
- extensions?: readonly string[];
3377
- jail?: string;
3378
- mainFields?: readonly string[];
3379
- modulesOnly?: boolean;
3380
- preferBuiltins?: boolean | ((module: string) => boolean);
3381
- resolveOnly?: ReadonlyArray<string | RegExp> | null | ((module: string) => boolean);
3382
- rootDir?: string;
3383
- allowExportsFolderMapping?: boolean;
3384
- }
3387
+ /** Options for rolldown's built-in module resolver, passed directly to rolldown's `resolve` input option. */
3388
+ type NodeResolveConfig = NonNullable<InputOptions['resolve']>;
3385
3389
  interface RolldownConfig {
3386
- inputOptions?: RolldownInputOptions;
3387
- outputOptions?: RolldownOutputOptions;
3388
- }
3389
- interface RolldownInputOptions {
3390
- context?: string;
3391
- moduleContext?: ((id: string) => string) | {
3392
- [id: string]: string;
3393
- };
3394
3390
  treeshake?: boolean;
3395
- maxParallelFileOps?: number;
3396
3391
  external?: (string | RegExp)[] | string | RegExp | ((source: string, importer: string | undefined, isResolved: boolean) => boolean | null | undefined);
3397
3392
  }
3398
- interface RolldownOutputOptions {
3399
- globals?: {
3400
- [name: string]: string;
3401
- } | ((name: string) => string);
3402
- }
3403
3393
  /**
3404
3394
  * This sets the log level hierarchy for our terminal logger, ranging from
3405
3395
  * most to least verbose.
@@ -3464,57 +3454,91 @@ interface LoggerTimeSpan {
3464
3454
  duration(): number;
3465
3455
  finish(finishedMsg: string, color?: string, bold?: boolean, newLineSuffix?: boolean): number;
3466
3456
  }
3467
- interface OutputTargetDist extends OutputTargetValidationConfig {
3468
- type: 'dist';
3457
+ /**
3458
+ * Output target for generating lazy-loaded component bundles with a loader infrastructure.
3459
+ * This creates an optimized distribution for CDN usage and applications that benefit from
3460
+ * lazy-loading components on demand.
3461
+ *
3462
+ * Formerly known as 'dist' in v4.
3463
+ *
3464
+ * @example
3465
+ * ```typescript
3466
+ * {
3467
+ * type: 'loader-bundle',
3468
+ * dir: 'dist/loader-bundle'
3469
+ * }
3470
+ * ```
3471
+ */
3472
+ interface OutputTargetLoaderBundle extends OutputTargetBaseNext {
3473
+ type: 'loader-bundle';
3474
+ /**
3475
+ * Directory where lazy-loaded bundles will be written.
3476
+ * @default '' (root of output directory)
3477
+ */
3469
3478
  buildDir?: string;
3470
- collectionDir?: string | null;
3479
+ copy?: CopyTask[];
3480
+ empty?: boolean;
3471
3481
  /**
3472
- * When `true` this flag will transform aliased import paths defined in
3473
- * a project's `tsconfig.json` to relative import paths in the compiled output's
3474
- * `dist-collection` bundle if it is generated (i.e. `collectionDir` is set).
3475
- *
3476
- * Paths will be left in aliased format if `false`.
3482
+ * Whether to generate CommonJS (CJS) bundles.
3477
3483
  *
3478
- * @example
3479
- * // tsconfig.json
3480
- * {
3481
- * paths: {
3482
- * "@utils/*": ['/src/utils/*']
3483
- * }
3484
- * }
3484
+ * When `true`, generates CJS output in `cjs/` subdirectory.
3485
+ * When `false` (default in v5+), only ESM bundles are generated.
3485
3486
  *
3486
- * // Source file
3487
- * import * as dateUtils from '@utils/date-utils';
3488
- * // Output file
3489
- * import * as dateUtils from '../utils/date-utils';
3487
+ * @default false
3490
3488
  */
3491
- transformAliasedImportPathsInCollection?: boolean | null;
3492
- typesDir?: string;
3489
+ cjs?: boolean;
3493
3490
  /**
3494
- * Provide a custom path for the ESM loader directory, containing files you can import
3491
+ * Custom path for the loader directory; files you can import
3495
3492
  * in an initiation script within your application to register all your components for
3496
3493
  * lazy loading.
3497
3494
  *
3498
- * @default /dist/loader
3495
+ * @default 'loader' (relative to output directory)
3499
3496
  */
3500
- esmLoaderPath?: string;
3501
- copy?: CopyTask[];
3502
- empty?: boolean;
3497
+ loaderPath?: string;
3503
3498
  /**
3504
- * Whether to generate CommonJS (CJS) bundles.
3499
+ * Hash the filenames of generated chunks based on their content.
3500
+ * Enables forever-caching of CDN-served bundles.
3505
3501
  *
3506
- * When `true`, generates CJS output in `dist/cjs/` and `dist/index.cjs.js`.
3507
- * When `false` (default in v5+), only ESM bundles are generated.
3502
+ * @default true in production, false in dev mode
3503
+ */
3504
+ hashFileNames?: boolean;
3505
+ /**
3506
+ * Number of characters to use for the content hash in filenames.
3507
+ *
3508
+ * @default 8
3509
+ */
3510
+ hashedFileNameLength?: number;
3511
+ /**
3512
+ * When `true`, marks `@stencil/core` as an external dependency in the bundler (ESM/CJS)
3513
+ * distribution output. Consumers must provide `@stencil/core` themselves.
3514
+ *
3515
+ * Has no effect on the browser/CDN build - the runtime is always bundled there.
3508
3516
  *
3509
3517
  * @default false
3510
3518
  */
3511
- cjs?: boolean;
3519
+ externalRuntime?: boolean;
3512
3520
  }
3513
- interface OutputTargetDistCollection extends OutputTargetValidationConfig {
3514
- type: 'dist-collection';
3521
+ /**
3522
+ * Output target for generating Stencil component source for downstream re-bundling.
3523
+ * This output contains transpiled source code, component metadata, and configuration
3524
+ * that downstream Stencil projects can re-compile and bundle.
3525
+ *
3526
+ * Formerly 'dist-collection' sub-output in v4, now a first-class output target in v5.
3527
+ *
3528
+ * In production builds, this output is auto-generated unless explicitly configured.
3529
+ *
3530
+ * @example
3531
+ * ```typescript
3532
+ * {
3533
+ * type: 'collection',
3534
+ * dir: 'dist/collection',
3535
+ * transformAliasedImportPaths: true
3536
+ * }
3537
+ * ```
3538
+ */
3539
+ interface OutputTargetCollection extends OutputTargetBaseNext {
3540
+ type: 'collection';
3515
3541
  empty?: boolean;
3516
- dir: string;
3517
- collectionDir: string;
3518
3542
  /**
3519
3543
  * When `true` this flag will transform aliased import paths defined in
3520
3544
  * a project's `tsconfig.json` to relative import paths in the compiled output.
@@ -3536,10 +3560,25 @@ interface OutputTargetDistCollection extends OutputTargetValidationConfig {
3536
3560
  */
3537
3561
  transformAliasedImportPaths?: boolean | null;
3538
3562
  }
3539
- interface OutputTargetDistTypes extends OutputTargetValidationConfig {
3540
- type: 'dist-types';
3541
- dir: string;
3542
- typesDir: string;
3563
+ /**
3564
+ * Output target for generating TypeScript type definitions (.d.ts files).
3565
+ *
3566
+ * Formerly a sub-output of 'dist' and 'dist-custom-elements' in v4,
3567
+ * now a first-class output target in v5 that can be shared across multiple outputs.
3568
+ *
3569
+ * In production builds, this output is auto-generated unless explicitly configured.
3570
+ *
3571
+ * @example
3572
+ * ```typescript
3573
+ * {
3574
+ * type: 'types',
3575
+ * dir: 'dist/types'
3576
+ * }
3577
+ * ```
3578
+ */
3579
+ interface OutputTargetTypes extends OutputTargetBaseNext {
3580
+ type: 'types';
3581
+ empty?: boolean;
3543
3582
  }
3544
3583
  interface OutputTargetDistLazy extends OutputTargetBase {
3545
3584
  type: 'dist-lazy';
@@ -3549,22 +3588,106 @@ interface OutputTargetDistLazy extends OutputTargetBase {
3549
3588
  isBrowserBuild?: boolean;
3550
3589
  esmIndexFile?: string;
3551
3590
  cjsIndexFile?: string;
3591
+ loaderDir?: string;
3592
+ typesDir?: string;
3552
3593
  empty?: boolean;
3594
+ /** Inherited from parent output target (loader-bundle or www). Only meaningful for browser builds. */
3595
+ hashFileNames?: boolean;
3596
+ /** Inherited from parent output target (loader-bundle or www). */
3597
+ hashedFileNameLength?: number;
3598
+ /** Inherited from loader-bundle. When true, @stencil/core is external in this bundler output. */
3599
+ externalRuntime?: boolean;
3553
3600
  }
3554
- interface OutputTargetDistGlobalStyles extends OutputTargetBase {
3555
- type: 'dist-global-styles';
3556
- file: string;
3601
+ /**
3602
+ * Output target for global styles.
3603
+ * Generates a CSS file from an input stylesheet.
3604
+ *
3605
+ * Can be configured in two ways:
3606
+ * 1. **Implicit** (backwards compat): Set `globalStyle` in the config and this output is auto-generated
3607
+ * 2. **Explicit**: Define this output target with an `input` property
3608
+ *
3609
+ * Multiple `global-style` outputs are supported for building separate CSS bundles.
3610
+ *
3611
+ * @example
3612
+ * ```typescript
3613
+ * // Explicit configuration with custom input/output
3614
+ * {
3615
+ * type: 'global-style',
3616
+ * input: './src/theme.css',
3617
+ * fileName: 'theme.css',
3618
+ * dir: 'dist/assets',
3619
+ * copyToLoaderBrowser: false
3620
+ * }
3621
+ * ```
3622
+ */
3623
+ interface OutputTargetGlobalStyle extends OutputTargetBaseNext {
3624
+ type: 'global-style';
3625
+ /**
3626
+ * Path to the input CSS file to compile.
3627
+ * When specified, this takes precedence over the `globalStyle` config option.
3628
+ *
3629
+ * If neither `input` nor `globalStyle` config is set, no CSS will be built.
3630
+ */
3631
+ input?: string;
3632
+ /**
3633
+ * Output filename for the compiled CSS.
3634
+ * @default '{namespace}.css' when using globalStyle config, or basename of input file
3635
+ */
3636
+ fileName?: string;
3637
+ /**
3638
+ * When `true`, also copies the global style CSS to the loader-bundle browser directory
3639
+ * for backwards compatibility with existing CDN consumers who have hardcoded CSS paths.
3640
+ *
3641
+ * @default true
3642
+ */
3643
+ copyToLoaderBrowser?: boolean;
3644
+ /**
3645
+ * Controls whether this global stylesheet is injected into component shadow DOMs
3646
+ * as a constructable stylesheet at runtime.
3647
+ *
3648
+ * - `'none'` (default): Don't inject - stylesheet must be loaded externally (e.g., via `<link>`)
3649
+ * - `'client'`: Inject only in client builds, not SSR (reduces SSR output size)
3650
+ * - `'all'`: Inject in both client and SSR builds
3651
+ *
3652
+ * @default 'none'
3653
+ */
3654
+ inject?: 'none' | 'client' | 'all';
3557
3655
  }
3558
- interface OutputTargetDistLazyLoader extends OutputTargetBase {
3559
- type: 'dist-lazy-loader';
3560
- dir: string;
3561
- esmDir: string;
3562
- cjsDir?: string;
3563
- componentDts: string;
3564
- empty: boolean;
3656
+ /**
3657
+ * Output target for component assets.
3658
+ * Copies all component `assetsDirs` to a unified location.
3659
+ *
3660
+ * auto-generated when components have `assetsDirs` unless explicitly configured.
3661
+ * The output is placed in `dist/assets/` by default and is available to all distribution strategies.
3662
+ *
3663
+ * @example
3664
+ * ```typescript
3665
+ * {
3666
+ * type: 'assets',
3667
+ * dir: 'dist/assets'
3668
+ * }
3669
+ * ```
3670
+ */
3671
+ interface OutputTargetAssets extends OutputTargetBaseNext {
3672
+ type: 'assets';
3565
3673
  }
3566
- interface OutputTargetHydrate extends OutputTargetBase {
3567
- type: 'dist-hydrate-script';
3674
+ /**
3675
+ * Output target for server-side rendering (SSR) and hydration.
3676
+ * Generates a script that can be used for SSR and static site generation (prerendering).
3677
+ *
3678
+ * Formerly known as 'dist-hydrate-script' in v4.
3679
+ *
3680
+ * @example
3681
+ * ```typescript
3682
+ * {
3683
+ * type: 'ssr',
3684
+ * dir: 'dist/ssr',
3685
+ * minify: true
3686
+ * }
3687
+ * ```
3688
+ */
3689
+ interface OutputTargetSsr extends OutputTargetBase {
3690
+ type: 'ssr';
3568
3691
  dir?: string;
3569
3692
  /**
3570
3693
  * Module IDs that should not be bundled into the script.
@@ -3584,6 +3707,13 @@ interface OutputTargetHydrate extends OutputTargetBase {
3584
3707
  */
3585
3708
  cjs?: boolean;
3586
3709
  }
3710
+ interface OutputTargetSsrWasm extends OutputTargetBase {
3711
+ type: 'ssr-wasm';
3712
+ /** Output directory. @default 'dist/ssr-wasm' */
3713
+ dir?: string;
3714
+ empty?: boolean;
3715
+ minify?: boolean;
3716
+ }
3587
3717
  interface OutputTargetCustom extends OutputTargetBase {
3588
3718
  type: 'custom';
3589
3719
  name: string;
@@ -3685,14 +3815,13 @@ interface OutputTargetStats extends OutputTargetBase {
3685
3815
  type: 'stats';
3686
3816
  file?: string;
3687
3817
  }
3688
- interface OutputTargetBaseNext {
3689
- type: string;
3818
+ interface OutputTargetBaseNext extends OutputTargetBase {
3690
3819
  dir?: string;
3691
3820
  }
3692
3821
  /**
3693
3822
  * The collection of valid export behaviors.
3694
3823
  * Used to generate a type for typed configs as well as output target validation
3695
- * for the `dist-custom-elements` output target.
3824
+ * for the `standalone` output target.
3696
3825
  *
3697
3826
  * Adding a value to this const array will automatically add it as a valid option on the
3698
3827
  * output target configuration for `customElementsExportBehavior`.
@@ -3701,8 +3830,7 @@ interface OutputTargetBaseNext {
3701
3830
  * - `auto-define-custom-elements`: Enables the auto-definition of a component and its children (recursively) in the custom elements registry. This
3702
3831
  * functionality allows consumers to bypass the explicit call to define a component, its children, its children's
3703
3832
  * children, etc. Users of this flag should be aware that enabling this functionality may increase bundle size.
3704
- * - `bundle`: A `defineCustomElements` function will be exported from the distribution directory. This behavior was added to allow easy migration
3705
- * from `dist-custom-elements-bundle` to `dist-custom-elements`.
3833
+ * - `bundle`: A `defineCustomElements` function will be exported from the distribution directory.
3706
3834
  * - `single-export-module`: All components will be re-exported from the specified directory's root `index.js` file.
3707
3835
  */
3708
3836
  declare const CustomElementsExportBehaviorOptions: readonly ["default", "auto-define-custom-elements", "bundle", "single-export-module"];
@@ -3711,23 +3839,40 @@ declare const CustomElementsExportBehaviorOptions: readonly ["default", "auto-de
3711
3839
  * This is used on the output target config for intellisense in typed configs.
3712
3840
  */
3713
3841
  type CustomElementsExportBehavior = (typeof CustomElementsExportBehaviorOptions)[number];
3714
- interface OutputTargetDistCustomElements extends OutputTargetValidationConfig {
3715
- type: 'dist-custom-elements';
3842
+ /**
3843
+ * Output target for generating standalone component modules.
3844
+ * Each component is output as an individual ES module that can be directly imported.
3845
+ *
3846
+ * This output target is ideal for npm consumption and tree-shaking, as consumers
3847
+ * can import only the components they need.
3848
+ *
3849
+ * Formerly known as 'dist-custom-elements' in v4.
3850
+ *
3851
+ * @example
3852
+ * ```typescript
3853
+ * {
3854
+ * type: 'standalone',
3855
+ * dir: 'dist/standalone',
3856
+ * externalRuntime: true,
3857
+ * autoLoader: true
3858
+ * }
3859
+ * ```
3860
+ */
3861
+ interface OutputTargetStandalone extends OutputTargetBaseNext {
3862
+ type: 'standalone';
3716
3863
  empty?: boolean;
3717
3864
  /**
3718
3865
  * Triggers the following behaviors when enabled:
3719
3866
  * 1. All `@stencil/core/*` module references are treated as external during bundling.
3720
3867
  * 2. File names are not hashed.
3721
3868
  * 3. File minification will follow the behavior defined at the root of the Stencil config.
3869
+ *
3870
+ * @default false
3722
3871
  */
3723
3872
  externalRuntime?: boolean;
3724
3873
  copy?: CopyTask[];
3725
3874
  includeGlobalScripts?: boolean;
3726
3875
  minify?: boolean;
3727
- /**
3728
- * Enables the generation of type definition files for the output target.
3729
- */
3730
- generateTypeDeclarations?: boolean;
3731
3876
  /**
3732
3877
  * Define the export/definition behavior for the output target's generated output.
3733
3878
  * This controls if/how custom elements will be defined or where components will be exported from.
@@ -3738,6 +3883,8 @@ interface OutputTargetDistCustomElements extends OutputTargetValidationConfig {
3738
3883
  * Generate an auto-loader script that uses MutationObserver to lazily load
3739
3884
  * and define custom elements as they appear in the DOM.
3740
3885
  *
3886
+ * @default true
3887
+ *
3741
3888
  * When set to `true`, generates a `loader.js` file that auto-starts on import.
3742
3889
  * Can also be configured with an object for more control:
3743
3890
  * - `fileName`: Custom filename for the loader (default: 'loader.js')
@@ -3777,27 +3924,45 @@ interface OutputTargetBase {
3777
3924
  * A unique string to differentiate one output target from another
3778
3925
  */
3779
3926
  type: string;
3927
+ /**
3928
+ * When `true`, this output target will be skipped during development builds (`--dev`).
3929
+ * This improves dev build times by not generating production-only artifacts.
3930
+ *
3931
+ * Defaults vary by output target type:
3932
+ * - `loader-bundle`: `false` (always builds)
3933
+ * - `standalone`: `true` (skips in dev)
3934
+ * - `ssr`: `true` (skips in dev, unless `devServer.ssr` is enabled)
3935
+ * - `docs-*`: `true` (skips in dev)
3936
+ * - `custom`: `true` (skips in dev)
3937
+ * - `www`, `copy`, `stats`: `false` (always runs)
3938
+ */
3939
+ skipInDev?: boolean;
3780
3940
  }
3781
- /**
3782
- * Output targets that can have validation for common `package.json` field values
3783
- * (module, types, etc.). This allows them to be marked for validation in a project's Stencil config.
3784
- */
3785
- interface OutputTargetValidationConfig extends OutputTargetBaseNext {
3786
- isPrimaryPackageOutputTarget?: boolean;
3787
- }
3788
- type EligiblePrimaryPackageOutputTarget = OutputTargetDist | OutputTargetDistCustomElements | OutputTargetDistCollection | OutputTargetDistTypes;
3789
- type OutputTargetBuild = OutputTargetDistCollection | OutputTargetDistLazy;
3941
+ type OutputTargetBuild = OutputTargetCollection | OutputTargetDistLazy;
3790
3942
  interface OutputTargetCopy extends OutputTargetBase {
3791
3943
  type: 'copy';
3792
3944
  dir: string;
3793
3945
  copy?: CopyTask[];
3794
- copyAssets?: 'collection' | 'dist';
3795
3946
  }
3796
3947
  interface OutputTargetWww extends OutputTargetBase {
3797
3948
  /**
3798
3949
  * Webapp output target.
3799
3950
  */
3800
3951
  type: 'www';
3952
+ /**
3953
+ * Choose how components are bundled for the www output.
3954
+ *
3955
+ * - `'loader'` (default): Uses the loader-bundle architecture with chunk
3956
+ * splitting and a loader infrastructure. Best for production apps with many
3957
+ * components where you want optimal loading performance.
3958
+ *
3959
+ * - `'standalone'`: Uses standalone component modules with an auto-loader that
3960
+ * uses MutationObserver to dynamically import components as they appear in
3961
+ * the DOM. Simpler architecture, easier debugging, one module per component.
3962
+ *
3963
+ * Default: `'loader'`
3964
+ */
3965
+ bundleMode?: 'loader' | 'standalone';
3801
3966
  /**
3802
3967
  * The directory to write the app's JavaScript and CSS build
3803
3968
  * files to. The default is to place this directory as a child
@@ -3844,7 +4009,7 @@ interface OutputTargetWww extends OutputTargetBase {
3844
4009
  * Path to an external node module which has exports of the prerender config object.
3845
4010
  * ```
3846
4011
  * module.exports = {
3847
- * afterHydrate(document, url) {
4012
+ * afterSsr(document, url) {
3848
4013
  * document.title = `URL: ${url.href}`;
3849
4014
  * }
3850
4015
  * }
@@ -3859,8 +4024,21 @@ interface OutputTargetWww extends OutputTargetBase {
3859
4024
  */
3860
4025
  serviceWorker?: ServiceWorkerConfig | null | false;
3861
4026
  appDir?: string;
4027
+ /**
4028
+ * Hash the filenames of generated chunks based on their content.
4029
+ * Enables forever-caching of CDN-served bundles.
4030
+ *
4031
+ * @default true in production, false in dev mode
4032
+ */
4033
+ hashFileNames?: boolean;
4034
+ /**
4035
+ * Number of characters to use for the content hash in filenames.
4036
+ *
4037
+ * @default 8
4038
+ */
4039
+ hashedFileNameLength?: number;
3862
4040
  }
3863
- type OutputTarget = OutputTargetCopy | OutputTargetCustom | OutputTargetDist | OutputTargetDistCollection | OutputTargetDistCustomElements | OutputTargetDistLazy | OutputTargetDistGlobalStyles | OutputTargetDistLazyLoader | OutputTargetDocsJson | OutputTargetDocsCustom | OutputTargetDocsReadme | OutputTargetDocsVscode | OutputTargetDocsCustomElementsManifest | OutputTargetWww | OutputTargetHydrate | OutputTargetStats | OutputTargetDistTypes;
4041
+ type OutputTarget = OutputTargetCopy | OutputTargetCustom | OutputTargetLoaderBundle | OutputTargetStandalone | OutputTargetSsr | OutputTargetSsrWasm | OutputTargetCollection | OutputTargetTypes | OutputTargetGlobalStyle | OutputTargetAssets | OutputTargetDistLazy | OutputTargetDocsJson | OutputTargetDocsCustom | OutputTargetDocsReadme | OutputTargetDocsVscode | OutputTargetDocsCustomElementsManifest | OutputTargetWww | OutputTargetStats;
3864
4042
  /**
3865
4043
  * Our custom configuration interface for generated caching Service Workers
3866
4044
  * using the Workbox library (see https://developer.chrome.com/docs/workbox/).
@@ -3955,24 +4133,13 @@ interface WorkerOptions {
3955
4133
  maxConcurrentTasksPerWorker?: number;
3956
4134
  logger?: Logger;
3957
4135
  }
3958
- interface RolldownInterface {
3959
- rolldown: {
3960
- (config: any): Promise<any>;
3961
- };
3962
- plugins: {
3963
- nodeResolve(opts: any): any;
3964
- replace(opts: any): any;
3965
- commonjs(opts: any): any;
3966
- json(): any;
3967
- };
3968
- }
3969
4136
  interface ResolveModuleOptions {
3970
4137
  manuallyResolve?: boolean;
3971
4138
  packageJson?: boolean;
3972
4139
  }
3973
4140
  interface PrerenderStartOptions {
3974
4141
  buildId?: string;
3975
- hydrateAppFilePath?: string;
4142
+ ssrAppFilePath?: string;
3976
4143
  componentGraph?: BuildResultsComponentGraph;
3977
4144
  srcIndexHtmlPath?: string;
3978
4145
  }
@@ -4047,6 +4214,18 @@ interface Compiler {
4047
4214
  createWatcher(): Promise<CompilerWatcher>;
4048
4215
  destroy(): Promise<void>;
4049
4216
  sys: CompilerSystem;
4217
+ /**
4218
+ * @internal - Testing only. Access to the in-memory filesystem
4219
+ */
4220
+ fs?: InMemoryFileSystem;
4221
+ /**
4222
+ * @internal - Testing only. Access to the validated configuration
4223
+ */
4224
+ config?: ValidatedConfig;
4225
+ /**
4226
+ * @internal - Testing only. Access to the compiler context
4227
+ */
4228
+ compilerCtx?: CompilerCtx;
4050
4229
  }
4051
4230
  interface CompilerWatcher extends BuildOnEvents {
4052
4231
  start: () => Promise<WatcherCloseResults>;
@@ -4087,7 +4266,7 @@ interface TranspileOptions {
4087
4266
  componentMetadata?: 'runtimestatic' | 'compilerstatic' | string | undefined;
4088
4267
  /**
4089
4268
  * The actual internal import path for any `@stencil/core` imports.
4090
- * Default is `@stencil/core/runtime/client`.
4269
+ * Default is `@stencil/core/runtime/client/standalone`.
4091
4270
  */
4092
4271
  coreImportPath?: string;
4093
4272
  /**
@@ -4322,6 +4501,7 @@ interface BuildFeatures {
4322
4501
  vdomStyle: boolean;
4323
4502
  vdomText: boolean;
4324
4503
  vdomXlink: boolean;
4504
+ vdomSignals: boolean;
4325
4505
  slotRelocation: boolean;
4326
4506
  patchAll: boolean;
4327
4507
  patchChildren: boolean;
@@ -4368,21 +4548,27 @@ interface BuildConditionals extends Partial<BuildFeatures> {
4368
4548
  lazyLoad?: boolean;
4369
4549
  profile?: boolean;
4370
4550
  constructableCSS?: boolean;
4371
- appendChildSlotFix?: boolean;
4372
- slotChildNodesFix?: boolean;
4373
- scopedSlotTextContentFix?: boolean;
4374
- cloneNodeFix?: boolean;
4551
+ /** True when `extras.lightDomPatches === true` - enables `applyLightDomPatches` shortcut. */
4552
+ lightDomPatches?: boolean;
4553
+ /** Patch `childNodes`/`children` getters on light-dom slotted components. */
4554
+ slotChildNodes?: boolean;
4555
+ /** Patch `cloneNode()` on light-dom slotted components. */
4556
+ slotCloneNode?: boolean;
4557
+ /** Patch `appendChild`/`insertBefore`/`removeChild` on light-dom slotted components. */
4558
+ slotDomMutations?: boolean;
4559
+ /** Patch `textContent` on light-dom slotted components. */
4560
+ slotTextContent?: boolean;
4375
4561
  hydratedAttribute?: boolean;
4376
4562
  hydratedClass?: boolean;
4377
4563
  hydratedSelectorName?: string;
4564
+ /** True when a global-style input contains `@import "stencil-hydrate"` - suppresses dynamic style injection in the loader. */
4565
+ staticHydrationStyles?: boolean;
4378
4566
  initializeNextTick?: boolean;
4379
- shadowDomShim?: boolean;
4380
4567
  asyncQueue?: boolean;
4381
4568
  additionalTagTransformers?: boolean | 'prod';
4382
- attachStyles?: boolean;
4383
- experimentalSlotFixes?: boolean;
4384
- experimentalScopedSlotChanges?: boolean;
4385
- addGlobalStyleToComponents?: boolean | 'client';
4569
+ signalBacking?: boolean;
4570
+ /** True when JSX signal bypass is active - text nodes and attributes backed by Signal objects update the DOM directly. Auto-enabled when `signalBacking: true`. */
4571
+ vdomSignals?: boolean;
4386
4572
  }
4387
4573
  type ModuleFormat = 'amd' | 'cjs' | 'es' | 'iife' | 'system' | 'umd' | 'commonjs' | 'esm' | 'module' | 'systemjs';
4388
4574
  interface RolldownResultModule {
@@ -4433,9 +4619,11 @@ interface BuildCtx {
4433
4619
  hasScriptChanges: boolean;
4434
4620
  hasStyleChanges: boolean;
4435
4621
  hasWarning: boolean;
4436
- hydrateAppFilePath: string;
4622
+ ssrAppFilePath: string;
4437
4623
  indexBuildCount: number;
4438
4624
  indexDoc: Document;
4625
+ /** All non-entry HTML files found in srcDir, keyed by path relative to srcDir */
4626
+ htmlDocs: Map<string, Document>;
4439
4627
  isRebuild: boolean;
4440
4628
  /**
4441
4629
  * A collection of Stencil's intermediate representation of components, tied to the current build
@@ -4485,8 +4673,6 @@ interface CompilerBuildStats {
4485
4673
  options: {
4486
4674
  minifyJs: boolean;
4487
4675
  minifyCss: boolean;
4488
- hashFileNames: boolean;
4489
- hashedFileNameLength: number;
4490
4676
  };
4491
4677
  formats: {
4492
4678
  esmBrowser: ReadonlyArray<CompilerBuildStatBundle>;
@@ -4522,12 +4708,6 @@ interface BuildComponent {
4522
4708
  dependencies?: string[];
4523
4709
  }
4524
4710
  type SourceTarget = 'es2017' | 'latest';
4525
- /**
4526
- * A note regarding Rolldown types:
4527
- * As of this writing, there is no great way to import external types for packages that are directly embedded in the
4528
- * Stencil source. As a result, some types are duplicated here for Rolldown that will be used within the codebase.
4529
- * Updates to rolldown may require these typings to be updated.
4530
- */
4531
4711
  type RolldownResult = RolldownChunkResult | RolldownAssetResult;
4532
4712
  interface RolldownAssetResult {
4533
4713
  type: 'asset';
@@ -4548,16 +4728,6 @@ interface RolldownChunkResult {
4548
4728
  moduleFormat: ModuleFormat;
4549
4729
  map?: RolldownSourceMap;
4550
4730
  }
4551
- interface RolldownSourceMap {
4552
- file: string;
4553
- mappings: string;
4554
- names: string[];
4555
- sources: string[];
4556
- sourcesContent: string[];
4557
- version: number;
4558
- toString(): string;
4559
- toUrl(): string;
4560
- }
4561
4731
  /**
4562
4732
  * Result of Stencil compressing, mangling, and otherwise 'minifying' JavaScript
4563
4733
  */
@@ -4601,6 +4771,7 @@ interface CollectionCompilerMeta {
4601
4771
  bundles?: {
4602
4772
  components: string[];
4603
4773
  }[];
4774
+ buildFlags?: Partial<BuildConditionals>;
4604
4775
  }
4605
4776
  interface CollectionCompilerVersion {
4606
4777
  name: string;
@@ -4619,6 +4790,8 @@ interface CollectionManifest {
4619
4790
  global?: string;
4620
4791
  compiler?: CollectionCompilerVersion;
4621
4792
  bundles?: CollectionBundleManifest[];
4793
+ /** Build flags the lib was compiled with. Consuming Stencil projects OR-merge these in. */
4794
+ buildFlags?: Partial<BuildConditionals>;
4622
4795
  }
4623
4796
  type CollectionComponentEntryPath = string;
4624
4797
  interface CollectionBundleManifest {
@@ -4668,7 +4841,8 @@ interface CompilerCtx {
4668
4841
  addWatchFile: (path: string) => void;
4669
4842
  cache: Cache;
4670
4843
  cssModuleImports: Map<string, string[]>;
4671
- cachedGlobalStyle: string;
4844
+ /** Cache of built global styles, keyed by input file path */
4845
+ globalStyleCache: Map<string, string>;
4672
4846
  collections: CollectionCompilerMeta[];
4673
4847
  compilerOptions: any;
4674
4848
  events: BuildEvents;
@@ -4682,7 +4856,7 @@ interface CompilerCtx {
4682
4856
  moduleMap: ModuleMap;
4683
4857
  nodeMap: NodeMap;
4684
4858
  resolvedCollections: Set<string>;
4685
- rolldownCacheHydrate: any;
4859
+ rolldownCacheSsr: any;
4686
4860
  rolldownCacheLazy: any;
4687
4861
  rolldownCacheNative: any;
4688
4862
  styleModeNames: Set<string>;
@@ -4690,6 +4864,22 @@ interface CompilerCtx {
4690
4864
  changedFiles: Set<string>;
4691
4865
  worker?: CompilerWorkerContext;
4692
4866
  rolldownCache: Map<string, any>;
4867
+ /**
4868
+ * Cross-build cache for {@link ts.transpileModule} results.
4869
+ * Keyed by `"${bundleId}:${normalizedFilePath}"`. Invalidated for any
4870
+ * file that appears in {@link changedModules} after TypeScript re-emits.
4871
+ * @see transpileCache in compiler-ctx.ts
4872
+ */
4873
+ transpileCache: Map<string, {
4874
+ outputText: string;
4875
+ sourceMapText: string | null;
4876
+ }>;
4877
+ /**
4878
+ * Cross-build cache of the last style text pushed to the HMR client.
4879
+ * Keyed by getScopeId result (e.g. "ion-accordion$ios"). Used by
4880
+ * extTransformsPlugin to avoid re-pushing unchanged styles on every rebuild.
4881
+ */
4882
+ prevStylesMap: Map<string, string>;
4693
4883
  /**
4694
4884
  * Cross-output-target cache for the SASS + Lightning CSS computation.
4695
4885
  * Keyed by the annotated Rolldown import id. Null entries indicate that the
@@ -4760,6 +4950,7 @@ interface ComponentCompilerFeatures {
4760
4950
  hasVdomStyle: boolean;
4761
4951
  hasVdomText: boolean;
4762
4952
  hasVdomXlink: boolean;
4953
+ hasSignalsImport: boolean;
4763
4954
  hasWatchCallback: boolean;
4764
4955
  htmlAttrNames: string[];
4765
4956
  htmlTagNames: string[];
@@ -4857,6 +5048,7 @@ interface ComponentCompilerMeta extends ComponentCompilerFeatures {
4857
5048
  states: ComponentCompilerState[];
4858
5049
  styleDocs: CompilerStyleDoc[];
4859
5050
  styles: StyleCompiler[];
5051
+ globalStyles: ComponentGlobalStyle[];
4860
5052
  tagName: string;
4861
5053
  virtualProperties: ComponentCompilerVirtualProperty[];
4862
5054
  watchers: ComponentCompilerChangeHandler[];
@@ -4873,7 +5065,7 @@ type Encapsulation = 'shadow' | 'scoped' | 'none';
4873
5065
  * These enable proper slot behavior when not using native Shadow DOM.
4874
5066
  */
4875
5067
  interface ComponentPatches {
4876
- /** Apply all slot patches (equivalent to experimentalSlotFixes) */
5068
+ /** Apply all slot patches (equivalent to lightDomPatches) */
4877
5069
  all?: boolean;
4878
5070
  /** Patch child node accessors (children, firstChild, lastChild, etc.) */
4879
5071
  children?: boolean;
@@ -4933,6 +5125,11 @@ interface ComponentCompilerPropertyComplexType {
4933
5125
  * annotation in the original source file.
4934
5126
  */
4935
5127
  references: ComponentCompilerTypeReferences;
5128
+ /**
5129
+ * @internal TypeScript AST node used for semantic type analysis during compilation.
5130
+ * Not serialized, only used internally for improved type renaming logic.
5131
+ */
5132
+ _astNode?: any;
4936
5133
  }
4937
5134
  /**
4938
5135
  * A record of `ComponentCompilerTypeReference` entities.
@@ -5026,6 +5223,11 @@ interface ComponentCompilerMethodComplexType {
5026
5223
  parameters: JsonDocMethodParameter[];
5027
5224
  references: ComponentCompilerTypeReferences;
5028
5225
  return: string;
5226
+ /**
5227
+ * @internal TypeScript AST method node used for semantic type analysis during compilation.
5228
+ * Not serialized, only used internally for improved type renaming logic.
5229
+ */
5230
+ _astNode?: any;
5029
5231
  }
5030
5232
  interface ComponentCompilerChangeHandler {
5031
5233
  propName: string;
@@ -5204,7 +5406,7 @@ interface HostElement extends HTMLElement {
5204
5406
  disconnectedCallback?: () => void;
5205
5407
  host?: Element;
5206
5408
  forceUpdate?: () => void;
5207
- __stencil__getHostRef?: () => HostRef;
5409
+ __s_ghr?: () => HostRef;
5208
5410
  /**
5209
5411
  * Unique stencil id for this element
5210
5412
  */
@@ -5260,7 +5462,7 @@ interface HostElement extends HTMLElement {
5260
5462
  ['s-p']?: Promise<void>[];
5261
5463
  componentOnReady?: () => Promise<this>;
5262
5464
  }
5263
- interface HydrateResults {
5465
+ interface SsrResults {
5264
5466
  buildId: string;
5265
5467
  diagnostics: Diagnostic$1[];
5266
5468
  url: string;
@@ -5272,42 +5474,42 @@ interface HydrateResults {
5272
5474
  search: string | null;
5273
5475
  hash: string | null;
5274
5476
  html: string | null;
5275
- components: HydrateComponent[];
5276
- anchors: HydrateAnchorElement[];
5277
- imgs: HydrateImgElement[];
5278
- scripts: HydrateScriptElement[];
5279
- styles: HydrateStyleElement[];
5280
- staticData: HydrateStaticData[];
5477
+ components: SsrComponent[];
5478
+ anchors: SsrAnchorElement[];
5479
+ imgs: SsrImgElement[];
5480
+ scripts: SsrScriptElement[];
5481
+ styles: SsrStyleElement[];
5482
+ staticData: SsrStaticData[];
5281
5483
  title: string | null;
5282
5484
  hydratedCount: number;
5283
5485
  httpStatus: number | null;
5284
5486
  }
5285
- interface HydrateComponent {
5487
+ interface SsrComponent {
5286
5488
  tag: string;
5287
5489
  mode: string;
5288
5490
  count: number;
5289
5491
  depth: number;
5290
5492
  }
5291
- interface HydrateElement {
5493
+ interface SsrElement {
5292
5494
  [attrName: string]: string | undefined;
5293
5495
  }
5294
- interface HydrateAnchorElement extends HydrateElement {
5496
+ interface SsrAnchorElement extends SsrElement {
5295
5497
  href?: string;
5296
5498
  target?: string;
5297
5499
  }
5298
- interface HydrateImgElement extends HydrateElement {
5500
+ interface SsrImgElement extends SsrElement {
5299
5501
  src?: string;
5300
5502
  }
5301
- interface HydrateScriptElement extends HydrateElement {
5503
+ interface SsrScriptElement extends SsrElement {
5302
5504
  src?: string;
5303
5505
  type?: string;
5304
5506
  }
5305
- interface HydrateStyleElement extends HydrateElement {
5507
+ interface SsrStyleElement extends SsrElement {
5306
5508
  id?: string;
5307
5509
  href?: string;
5308
5510
  content?: string;
5309
5511
  }
5310
- interface HydrateStaticData {
5512
+ interface SsrStaticData {
5311
5513
  id: string;
5312
5514
  type: string;
5313
5515
  content: string;
@@ -5398,6 +5600,7 @@ interface Module {
5398
5600
  hasVdomStyle: boolean;
5399
5601
  hasVdomText: boolean;
5400
5602
  hasVdomXlink: boolean;
5603
+ hasSignalsImport: boolean;
5401
5604
  }
5402
5605
  interface Plugin {
5403
5606
  name?: string;
@@ -5432,7 +5635,7 @@ interface PrerenderUrlRequest {
5432
5635
  baseUrl: string;
5433
5636
  componentGraphPath: string;
5434
5637
  devServerHostUrl: string;
5435
- hydrateAppFilePath: string;
5638
+ ssrAppFilePath: string;
5436
5639
  isDebug: boolean;
5437
5640
  prerenderConfigPath: string;
5438
5641
  staticSite: boolean;
@@ -5445,7 +5648,7 @@ interface PrerenderManager {
5445
5648
  prerenderUrlWorker: (prerenderRequest: PrerenderUrlRequest) => Promise<PrerenderUrlResults>;
5446
5649
  devServerHostUrl: string;
5447
5650
  diagnostics: Diagnostic$1[];
5448
- hydrateAppFilePath: string;
5651
+ ssrAppFilePath: string;
5449
5652
  isDebug: boolean;
5450
5653
  logCount: number;
5451
5654
  outputTarget: OutputTargetWww;
@@ -5553,61 +5756,61 @@ interface RenderNode extends HostElement {
5553
5756
  ['s-en']?: '' | /*shadow*/'c';
5554
5757
  /**
5555
5758
  * On a `scoped: true` component
5556
- * with `experimentalSlotFixes` flag enabled,
5759
+ * with `lightDomPatches` flag enabled,
5557
5760
  * returns the internal `childNodes` of the component
5558
5761
  */
5559
5762
  readonly __childNodes?: NodeListOf<ChildNode>;
5560
5763
  /**
5561
5764
  * On a `scoped: true` component
5562
- * with `experimentalSlotFixes` flag enabled,
5765
+ * with `lightDomPatches` flag enabled,
5563
5766
  * returns the internal `children` of the component
5564
5767
  */
5565
5768
  readonly __children?: HTMLCollectionOf<Element>;
5566
5769
  /**
5567
5770
  * On a `scoped: true` component
5568
- * with `experimentalSlotFixes` flag enabled,
5771
+ * with `lightDomPatches` flag enabled,
5569
5772
  * returns the internal `firstChild` of the component
5570
5773
  */
5571
5774
  readonly __firstChild?: ChildNode;
5572
5775
  /**
5573
5776
  * On a `scoped: true` component
5574
- * with `experimentalSlotFixes` flag enabled,
5777
+ * with `lightDomPatches` flag enabled,
5575
5778
  * returns the internal `lastChild` of the component
5576
5779
  */
5577
5780
  readonly __lastChild?: ChildNode;
5578
5781
  /**
5579
5782
  * On a `scoped: true` component
5580
- * with `experimentalSlotFixes` flag enabled,
5783
+ * with `lightDomPatches` flag enabled,
5581
5784
  * returns the internal `textContent` of the component
5582
5785
  */
5583
5786
  __textContent?: string;
5584
5787
  /**
5585
5788
  * On a `scoped: true` component
5586
- * with `experimentalSlotFixes` flag enabled,
5789
+ * with `lightDomPatches` flag enabled,
5587
5790
  * gives access to the original `append` method
5588
5791
  */
5589
5792
  __append?: (...nodes: (Node | string)[]) => void;
5590
5793
  /**
5591
5794
  * On a `scoped: true` component
5592
- * with `experimentalSlotFixes` flag enabled,
5795
+ * with `lightDomPatches` flag enabled,
5593
5796
  * gives access to the original `prepend` method
5594
5797
  */
5595
5798
  __prepend?: (...nodes: (Node | string)[]) => void;
5596
5799
  /**
5597
5800
  * On a `scoped: true` component
5598
- * with `experimentalSlotFixes` flag enabled,
5801
+ * with `lightDomPatches` flag enabled,
5599
5802
  * gives access to the original `appendChild` method
5600
5803
  */
5601
5804
  __appendChild?: <T extends Node>(newChild: T) => T;
5602
5805
  /**
5603
5806
  * On a `scoped: true` component
5604
- * with `experimentalSlotFixes` flag enabled,
5807
+ * with `lightDomPatches` flag enabled,
5605
5808
  * gives access to the original `insertBefore` method
5606
5809
  */
5607
5810
  __insertBefore?: <T extends Node>(node: T, child: Node | null) => T;
5608
5811
  /**
5609
5812
  * On a `scoped: true` component
5610
- * with `experimentalSlotFixes` flag enabled,
5813
+ * with `lightDomPatches` flag enabled,
5611
5814
  * gives access to the original `removeChild` method
5612
5815
  */
5613
5816
  __removeChild?: <T extends Node>(child: T) => T;
@@ -5645,31 +5848,31 @@ interface PatchedSlotNode extends Node {
5645
5848
  ['s-sr']?: boolean;
5646
5849
  /**
5647
5850
  * On a `scoped: true` component
5648
- * with `experimentalSlotFixes` flag enabled,
5851
+ * with `lightDomPatches` flag enabled,
5649
5852
  * returns the actual `parentNode` of the component
5650
5853
  */
5651
5854
  __parentNode?: RenderNode;
5652
5855
  /**
5653
5856
  * On a `scoped: true` component
5654
- * with `experimentalSlotFixes` flag enabled,
5857
+ * with `lightDomPatches` flag enabled,
5655
5858
  * returns the actual `nextSibling` of the component
5656
5859
  */
5657
5860
  __nextSibling?: RenderNode;
5658
5861
  /**
5659
5862
  * On a `scoped: true` component
5660
- * with `experimentalSlotFixes` flag enabled,
5863
+ * with `lightDomPatches` flag enabled,
5661
5864
  * returns the actual `previousSibling` of the component
5662
5865
  */
5663
5866
  __previousSibling?: RenderNode;
5664
5867
  /**
5665
5868
  * On a `scoped: true` component
5666
- * with `experimentalSlotFixes` flag enabled,
5869
+ * with `lightDomPatches` flag enabled,
5667
5870
  * returns the actual `nextElementSibling` of the component
5668
5871
  */
5669
5872
  __nextElementSibling?: RenderNode;
5670
5873
  /**
5671
5874
  * On a `scoped: true` component
5672
- * with `experimentalSlotFixes` flag enabled,
5875
+ * with `lightDomPatches` flag enabled,
5673
5876
  * returns the actual `nextElementSibling` of the component
5674
5877
  */
5675
5878
  __previousElementSibling?: RenderNode;
@@ -5770,7 +5973,7 @@ type ComponentRuntimeReflectingAttr = [string, string | undefined];
5770
5973
  * associated {@link HostRef} instance.
5771
5974
  */
5772
5975
  type RuntimeRef = HostElement | {
5773
- __stencil__getHostRef?: () => HostRef;
5976
+ __s_ghr?: () => HostRef;
5774
5977
  };
5775
5978
  /**
5776
5979
  * Interface used to track an Element, it's virtual Node (`VNode`), and other data
@@ -5781,6 +5984,9 @@ interface HostRef {
5781
5984
  $cmpMeta$: ComponentRuntimeMeta;
5782
5985
  $hostElement$: HostElement;
5783
5986
  $instanceValues$?: Map<string, any>;
5987
+ $signalValues$?: Map<string, import('@preact/signals-core').Signal<any>>;
5988
+ /** Dispose function that tears down all signal effects for this component. */
5989
+ $signalCleanup$?: () => void;
5784
5990
  $serializerValues$?: Map<string, string>;
5785
5991
  $lazyInstance$?: ComponentInterface;
5786
5992
  /**
@@ -5879,6 +6085,12 @@ interface ExternalStyleCompiler {
5879
6085
  relativePath: string;
5880
6086
  originalComponentPath: string;
5881
6087
  }
6088
+ interface ComponentGlobalStyle {
6089
+ /** Absolute path to the CSS file, or null for inline styles */
6090
+ absolutePath: string | null;
6091
+ /** Raw inline CSS string, or null for file-based styles */
6092
+ styleStr: string | null;
6093
+ }
5882
6094
  interface CompilerModeStyles {
5883
6095
  [modeName: string]: string[];
5884
6096
  }
@@ -5965,7 +6177,6 @@ interface PackageJsonData {
5965
6177
  browser?: string;
5966
6178
  module?: string;
5967
6179
  'jsnext:main'?: string;
5968
- 'collection:main'?: string;
5969
6180
  unpkg?: string;
5970
6181
  collection?: string;
5971
6182
  types?: string;
@@ -6103,10 +6314,6 @@ interface NewSpecPageOptions {
6103
6314
  * Sets the mocked `document.referrer`.
6104
6315
  */
6105
6316
  referrer?: string;
6106
- /**
6107
- * Manually set if the mocked document supports Shadow DOM or not. Default is `true`.
6108
- */
6109
- supportsShadowDom?: boolean;
6110
6317
  /**
6111
6318
  * When a component is pre-rendered it includes HTML annotations, such as `s-id` attributes and `<!-t.0->` comments. This information is used by client-side hydrating. Default is `false`.
6112
6319
  */
@@ -6123,11 +6330,6 @@ interface NewSpecPageOptions {
6123
6330
  * By default, any changes to component properties and attributes must `page.waitForChanges()` in order to test the updates. As an option, `autoApplyChanges` continuously flushes the queue on the background. Default is `false`.
6124
6331
  */
6125
6332
  autoApplyChanges?: boolean;
6126
- /**
6127
- * By default, styles are not attached to the DOM and they are not reflected in the serialized HTML.
6128
- * Setting this option to `true` will include the component's styles in the serializable output.
6129
- */
6130
- attachStyles?: boolean;
6131
6333
  /**
6132
6334
  * Set {@link BuildConditionals} for testing based off the metadata of the component under test.
6133
6335
  * When `true` all `BuildConditionals` will be assigned to the global testing `BUILD` object, regardless of their
@@ -6139,6 +6341,20 @@ interface NewSpecPageOptions {
6139
6341
  * the spec page.
6140
6342
  */
6141
6343
  platform?: Partial<PlatformRuntime>;
6344
+ /**
6345
+ * Controls how shadow DOM components are serialized during `hydrateServerSide`.
6346
+ * When set to `'scoped'`, shadow DOM components are rendered as scoped light DOM
6347
+ * (matching the behavior of `serializeShadowRoot: 'scoped'` in production SSR).
6348
+ * When set to `false`, shadow DOM components render with a real shadow root.
6349
+ * Default is `false`.
6350
+ */
6351
+ serializeShadowRoot?: 'scoped' | false;
6352
+ /**
6353
+ * Override individual {@link BuildConditionals} for this test. Applied after all other
6354
+ * BUILD setup so these values take final precedence. Useful for testing code paths that
6355
+ * are gated behind a build flag (e.g. `{ signalBacking: true }`).
6356
+ */
6357
+ buildFlags?: Partial<BuildConditionals>;
6142
6358
  }
6143
6359
  /**
6144
6360
  * A record of `TypesMemberNameData` entities.
@@ -6305,4 +6521,4 @@ interface ValidateTypesResults {
6305
6521
  filePaths: string[];
6306
6522
  }
6307
6523
  //#endregion
6308
- export { ComponentCompilerVirtualProperty as $, result_d_exports as $a, TranspileOnlyResults as $i, CompilerDependency as $n, isGlob as $o, Logger as $r, XLINK_NS as $s, PluginCtx as $t, CompilerStyleDoc as A, JsonDocsValue as Aa, PlatformPath as Ai, TypesModule as An, isOutputTargetHydrate as Ao, ConfigExtras as Ar, DIST_CUSTOM_ELEMENTS as As, HydrateImgElement as At, ComponentCompilerMeta as B, isDtsFile as Ba, RolldownConfig as Bi, BuildLog as Bn, catchError as Bo, EligiblePrimaryPackageOutputTarget as Br, DOCS_VSCODE as Bs, Module as Bt, CompilerBuildStatBundle as C, JsonDocsPart as Ca, OutputTargetDocsReadme as Ci, StyleMap as Cn, isOutputTargetDistTypes as Co, CompilerSystemRemoveFileResults as Cr, CMP_FLAGS as Cs, EventInitDict as Ct, CompilerJsDoc as D, JsonDocsTag as Da, OutputTargetWww as Di, TypeInfo as Dn, isOutputTargetDocsJson as Do, CompilerWatcher as Dr, DEFAULT_STYLE_MODE as Ds, HydrateAnchorElement as Dt, CompilerCtx as E, JsonDocsStyle as Ea, OutputTargetStats as Ei, TranspileModuleResults as En, isOutputTargetDocsCustomElementsManifest as Eo, CompilerSystemWriteFileResults as Er, CUSTOM as Es, HostRef as Et, ComponentCompilerData as F, addDocBlock as Fa, ResolveModuleIdOptions as Fi, WorkerContextMethod as Fn, shouldExcludeComponent as Fo, CustomElementsExportBehaviorOptions as Fr, DIST_TYPES as Fs, ImportData as Ft, ComponentCompilerPropertyType as G, parsePackageJson as Ga, ServiceWorkerConfig as Gi, BuildResultsComponentGraph as Gn, normalizeDiagnostics as Go, HydrateDocumentOptions as Gr, LISTENER_FLAGS as Gs, NewSpecPageOptions as Gt, ComponentCompilerMethodComplexType as H, isJsxFile as Ha, RolldownInterface as Hi, BuildOnEventRemove as Hn, hasWarning as Ho, HistoryApiFallback as Hr, GENERATED_DTS as Hs, ModuleMap as Ht, ComponentCompilerEvent as I, createJsVarName as Ia, ResolveModuleIdResults as Ii, WorkerMsgHandler as In, TASK_CANCELED_MSG as Io, DevServer as Ir, DOCS_CUSTOM as Is, JSDocTagInfo as It, ComponentCompilerStaticEvent as J, isRemoteUrl as Ja, StencilConfig as Ji, CompileScriptMinifyOptions as Jn, loadTypeScriptDiagnostic as Jo, LOG_LEVELS as Jr, STATS as Js, PackageJsonData as Jt, ComponentCompilerReferencedType as K, readOnlyArrayHasStringMember as Ka, SitemapXmpOpts as Ki, CacheStorage as Kn, splitLineBreaks as Ko, HydrateFactoryOptions as Kr, MEMBER_FLAGS as Ks, NodeMap as Kt, ComponentCompilerEventComplexType as L, generatePreamble as La, ResolveModuleOptions as Li, AutoprefixerOptions as Ln, buildError as Lo, DevServerConfig as Lr, DOCS_CUSTOM_ELEMENTS_MANIFEST as Ls, JsDoc as Lt, CompilerWorkerTask as M, FsWriteResults as Ma, PrerenderHydrateOptions as Mi, VNodeProdData as Mn, isOutputTargetWww as Mo, CopyTask as Mr, DIST_HYDRATE_SCRIPT as Ms, HydrateScriptElement as Mt, ComponentCompilerChangeHandler as N, validateComponentTag as Na, PrerenderResults as Ni, ValidateTypesResults as Nn, isValidConfigOutputTarget as No, Credentials as Nr, DIST_LAZY as Ns, HydrateStaticData as Nt, CompilerJsDocTagInfo as O, JsonDocsTypeLibrary as Oa, PageReloadStrategy as Oi, TypesImportData as On, isOutputTargetDocsReadme as Oo, Config as Or, DIST as Os, HydrateComponent as Ot, ComponentCompilerCustomState as P, ParsePackageJsonResult as Pa, PrerenderStartOptions as Pi, Workbox as Pn, relativeImport as Po, CustomElementsExportBehavior as Pr, DIST_LAZY_LOADER as Ps, HydrateStyleElement as Pt, ComponentCompilerTypeReferences as Q, rolldownToStencilSourceMap as Qa, TransformOptions as Qi, CompilerBuildStart as Qn, isRootPath as Qo, LogLevel as Qr, WWW as Qs, Plugin as Qt, ComponentCompilerFeatures as R, getTextDocs as Ra, RobotsTxtOpts as Ri, BuildEmitEvents as Rn, buildJsonFileError as Ro, DevServerEditor as Rr, DOCS_JSON as Rs, LazyBundleRuntimeData as Rt, CompilerAssetDir as S, JsonDocsMethodReturn as Sa, OutputTargetDocsJson as Si, StyleCompiler as Sn, isOutputTargetDistLazyLoader as So, CompilerSystemRemoveDirectoryResults as Sr, stringifyRuntimeData as Ss, EntryModule as St, CompilerBuildStats as T, JsonDocsSlot as Ta, OutputTargetHydrate as Ti, TransformCssToEsmOutput as Tn, isOutputTargetDocsCustom as To, CompilerSystemRenamedPath as Tr, COPY as Ts, HostElement as Tt, ComponentCompilerProperty as U, isTsFile as Ua, RolldownOutputOptions as Ui, BuildOnEvents as Un, shouldIgnoreError as Uo, HmrStyleUpdate as Ur, HOST_FLAGS as Us, MsgFromWorker as Ut, ComponentCompilerMethod as V, isJsFile as Va, RolldownInputOptions as Vi, BuildNoChangeResults as Vn, hasError as Vo, FsWatchResults as Vr, EVENT_FLAGS as Vs, ModuleFormat as Vt, ComponentCompilerPropertyComplexType as W, isTsxFile as Wa, SerializeDocumentOptions as Wi, BuildOutput as Wn, escapeHtml as Wo, HotModuleReplacement as Wr, HTML_NS as Ws, MsgToWorker as Wt, ComponentCompilerStaticProperty as X, getSourceMappingUrlForEndOfFile as Xa, StencilDocsConfig as Xi, Compiler as Xn, createOnWarnFn as Xo, LoadConfigInit as Xr, VALID_CONFIG_OUTPUT_TARGETS as Xs, PatchedSlotNode as Xt, ComponentCompilerStaticMethod as Y, getInlineSourceMappingUrlLinker as Ya, StencilDevServerConfig as Yi, CompileTarget as Yn, loadTypeScriptDiagnostics as Yo, LazyRequire as Yr, SVG_NS as Ys, ParsedImport as Yt, ComponentCompilerTypeReference as Z, getSourceMappingUrlLinker as Za, SystemDetails as Zi, CompilerBuildResults as Zn, loadRolldownDiagnostics as Zo, LoadConfigResults as Zr, WATCH_FLAGS as Zs, PlatformRuntime as Zt, CollectionCompilerVersion as _, JsonDocsCustomState as _a, OutputTargetDistLazy as _i, SerializedEvent as _n, isOutputTargetDist as _o, CompilerSystem as _r, toDashCase as _s, CssImportData as _t, BuildCtx as a, WorkerMainController as aa, OptimizeJsInput as ai, PrintLine as an, normalizeFsPathQuery as ao, CompilerEventDirDelete as ar, isComplexType as as, ComponentConstructorProperties as at, CollectionDependencyManifest as b, JsonDocsListener as ba, OutputTargetDocsCustom as bi, SpecPage as bn, isOutputTargetDistGlobalStyles as bo, CompilerSystemRealpathResults as br, formatComponentRuntimeMeta as bs, DocData as bt, BuildStyleUpdate as c, FunctionalComponent as ca, OutputTargetBase as ci, RolldownAssetResult as cn, resolve as co, CompilerEventFileUpdate as cr, isIterable as cs, ComponentNativeConstructor as ct, BundleModuleOutput as d, TagTransformer as da, OutputTargetCopy as di, RolldownResultModule as dn, getComponentsDtsSrcFilePath as do, CompilerFileWatcher as dr, isString as ds, ComponentRuntimeMember as dt, TranspileOptions as ea, byteSize as ec, LoggerLineUpdater as ei, PluginTransformResults as en, escapeRegExpSpecialCharacters as eo, CompilerEventBuildFinish as er, dashToPascalCase as es, ComponentConstructor as et, Cache as f, UserBuildConditionals as fa, OutputTargetCustom as fi, RolldownResults as fn, getComponentsDtsTypesFilePath as fo, CompilerFileWatcherCallback as fr, mergeIntoWith as fs, ComponentRuntimeMembers as ft, CollectionCompilerMeta as g, JsonDocsComponent as ga, OutputTargetDistGlobalStyles as gi, SerializeImportData as gn, isOutputTargetCustom as go, CompilerRequestResponse as gr, toCamelCase as gs, ComponentTestingConstructor as gt, CollectionCompiler as h, JsonDocs as ha, OutputTargetDistCustomElements as hi, RuntimeRef as hn, isOutputTargetCopy as ho, CompilerRequest as hr, sortBy as hs, ComponentRuntimeReflectingAttr as ht, BuildConditionals as i, WatcherCloseResults as ia, OptimizeCssOutput as ii, PrerenderUrlResults as in, normalizeFsPath as io, CompilerEventDirAdd as ir, isBoolean as is, ComponentConstructorListener as it, CompilerWorkerContext as j, StyleDoc as ja, PrerenderConfig as ji, UpdatedLazyBuildCtx as jn, isOutputTargetStats as jo, CopyResults as jr, DIST_GLOBAL_STYLES as js, HydrateResults as jt, CompilerModeStyles as k, JsonDocsUsage as ka, ParsedPath as ki, TypesMemberNameData as kn, isOutputTargetDocsVscode as ko, ConfigBundle as kr, DIST_COLLECTION as ks, HydrateElement as kt, BuildTask as l, RafCallback as la, OutputTargetBaseNext as li, RolldownChunkResult as ln, FilterComponentsResult as lo, CompilerEventFsChange as lr, isNumber as ls, ComponentPatches as lt, CollectionBundleManifest as m, JsonDocMethodParameter as ma, OutputTargetDistCollection as mi, RootAppliedStyleMap as mn, isEligiblePrimaryPackageOutputTarget as mo, CompilerFsStats as mr, pluck as ms, ComponentRuntimeMetaCompact as mt, AssetsMeta as n, UnvalidatedConfig as na, NodeResolveConfig as ni, PrerenderManager as nn, join as no, CompilerEventBuildNoChange as nr, flatOne as ns, ComponentConstructorEncapsulation as nt, BuildFeatures as o, WorkerOptions as oa, OptimizeJsOutput as oi, PropsType as on, normalizePath as oo, CompilerEventFileAdd as or, isDef as os, ComponentConstructorProperty as ot, ChildType as p, VNode as pa, OutputTargetDist as pi, RolldownSourceMap as pn, getComponentsFromModules as po, CompilerFileWatcherEvent as pr, noop as ps, ComponentRuntimeMeta as pt, ComponentCompilerState as q, readPackageJson as qa, SitemapXmpResults as qi, CliInitOptions as qn, augmentDiagnosticWithNode as qo, HydratedFlag as qr, NODE_TYPES as qs, OptimizeJsResult as qt, BuildComponent as r, ValidatedConfig as ra, OptimizeCssInput as ri, PrerenderUrlRequest as rn, normalize as ro, CompilerEventBuildStart as rr, fromEntries as rs, ComponentConstructorEvent as rt, BuildSourceGraph as s, ErrorHandler as sa, OutputTarget as si, RenderNode as sn, relative as so, CompilerEventFileDelete as sr, isFunction as ss, ComponentConstructorPropertyType as st, AnyHTMLElement as t, TranspileResults as ta, LoggerTimeSpan as ti, PluginTransformationDescriptor as tn, queryNonceMetaTagContent as to, CompilerEventBuildLog as tr, escapeWithPattern as ts, ComponentConstructorChangeHandlers as tt, BundleModule as u, ResolutionHandler as ua, OutputTargetBuild as ui, RolldownResult as un, filterExcludedComponents as uo, CompilerEventName as ur, isObject as us, ComponentRuntimeHostListener as ut, CollectionComponentEntryPath as v, JsonDocsDependencyGraph as va, OutputTargetDistLazyLoader as vi, SourceMap$1 as vn, isOutputTargetDistCollection as vo, CompilerSystemCreateDirectoryOptions as vr, toTitleCase as vs, CssToEsmImportData as vt, CompilerBuildStatCollection as w, JsonDocsProp as wa, OutputTargetDocsVscode as wi, TransformCssToEsmInput as wn, isOutputTargetDocs as wo, CompilerSystemRenameResults as wr, COLLECTION_MANIFEST_FILE_NAME as ws, ExternalStyleCompiler as wt, CollectionManifest as x, JsonDocsMethod as xa, OutputTargetDocsCustomElementsManifest as xi, StencilDocument as xn, isOutputTargetDistLazy as xo, CompilerSystemRemoveDirectoryOptions as xr, formatLazyBundleRuntimeMeta as xs, Encapsulation as xt, CollectionDependencyData as y, JsonDocsEvent as ya, OutputTargetDistTypes as yi, SourceTarget as yn, isOutputTargetDistCustomElements as yo, CompilerSystemCreateDirectoryResults as yr, unique as ys, CssTransformCacheEntry as yt, ComponentCompilerListener as z, hasDependency as za, RobotsTxtResults as zi, BuildEvents as zn, buildWarn as zo, Diagnostic$1 as zr, DOCS_README as zs, LazyBundlesRuntimeData as zt };
6524
+ export { ComponentCompilerVirtualProperty as $, getSourceMappingUrlLinker as $a, TransformOptions as $i, CompilerBuildStart as $n, createOnWarnFn as $o, Logger as $r, STENCIL_REBUNDLE as $s, PropsType as $t, CompilerStyleDoc as A, JsonDocsUsage as Aa, ParsedPath as Ai, TypesMemberNameData as An, isOutputTargetSsr as Ao, ConfigBundle as Ar, COLLECTION_MANIFEST_FILE_NAME as As, JsDoc as At, ComponentCompilerMeta as B, getTextDocs as Ba, RobotsTxtOpts as Bi, BuildEvents as Bn, buildError as Bo, Diagnostic$1 as Br, EVENT_FLAGS as Bs, OptimizeJsResult as Bt, CompilerBuildStatBundle as C, JsonDocsMethodReturn as Ca, OutputTargetSsr as Ci, StyleCompiler as Cn, isOutputTargetDocsCustom as Co, CompilerSystemRemoveDirectoryResults as Cr, unique as Cs, EntryModule as Ct, CompilerJsDoc as D, JsonDocsStyle as Da, OutputTargetTypes as Di, TranspileModuleResults as Dn, isOutputTargetDocsVscode as Do, CompilerSystemWriteFileResults as Dr, ASSETS as Ds, HostRef as Dt, CompilerCtx as E, JsonDocsSlot as Ea, OutputTargetStats as Ei, TransformCssToEsmOutput as En, isOutputTargetDocsReadme as Eo, CompilerSystemRenamedPath as Er, stringifyRuntimeData as Es, HostElement as Et, ComponentCompilerData as F, validateComponentTag as Fa, PrerenderResults as Fi, Workbox as Fn, isOutputTargetWww as Fo, CustomElementsExportBehavior as Fr, DOCS_CUSTOM as Fs, ModuleMap as Ft, ComponentCompilerPropertyType as G, isTsFile as Ga, SitemapXmpOpts as Gi, BuildOutput as Gn, hasWarning as Go, HydrateDocumentOptions as Gr, LISTENER_FLAGS as Gs, Plugin as Gt, ComponentCompilerMethodComplexType as H, isDtsFile as Ha, RolldownConfig as Hi, BuildNoChangeResults as Hn, buildWarn as Ho, HistoryApiFallback as Hr, GLOBAL_STYLE as Hs, ParsedImport as Ht, ComponentCompilerEvent as I, ParsePackageJsonResult as Ia, PrerenderStartOptions as Ii, WorkerContextMethod as In, isValidConfigOutputTarget as Io, CustomElementsExportBehaviorOptions as Ir, DOCS_CUSTOM_ELEMENTS_MANIFEST as Is, MsgFromWorker as It, ComponentCompilerStaticEvent as J, readOnlyArrayHasStringMember as Ja, SsrFactoryOptions as Ji, CliInitOptions as Jn, normalizeDiagnostics as Jo, LOG_LEVELS as Jr, NODE_TYPES as Js, PluginTransformationDescriptor as Jt, ComponentCompilerReferencedType as K, isTsxFile as Ka, SitemapXmpResults as Ki, BuildResultsComponentGraph as Kn, shouldIgnoreError as Ko, HydrateFactoryOptions as Kr, LOADER_BUNDLE as Ks, PluginCtx as Kt, ComponentCompilerEventComplexType as L, addDocBlock as La, ResolveModuleIdOptions as Li, WorkerMsgHandler as Ln, relativeImport as Lo, DevServer as Lr, DOCS_JSON as Ls, MsgToWorker as Lt, CompilerWorkerTask as M, StyleDoc as Ma, PrerenderConfig as Mi, UpdatedLazyBuildCtx as Mn, isOutputTargetStandalone as Mo, CopyResults as Mr, CUSTOM as Ms, LazyBundlesRuntimeData as Mt, ComponentCompilerChangeHandler as N, FsWriteResults as Na, PrerenderHydrateOptions as Ni, VNodeProdData as Nn, isOutputTargetStats as No, CopyTask as Nr, DEFAULT_STYLE_MODE as Ns, Module as Nt, CompilerJsDocTagInfo as O, JsonDocsTag as Oa, OutputTargetWww as Oi, TypeInfo as On, isOutputTargetGlobalStyle as Oo, CompilerWatcher as Or, CMP_FLAGS as Os, ImportData as Ot, ComponentCompilerCustomState as P, InMemoryFileSystem as Pa, PrerenderOptions as Pi, ValidateTypesResults as Pn, isOutputTargetTypes as Po, Credentials as Pr, DIST_LAZY as Ps, ModuleFormat as Pt, ComponentCompilerTypeReferences as Q, getSourceMappingUrlForEndOfFile as Qa, SystemDetails as Qi, CompilerBuildResults as Qn, loadTypeScriptDiagnostics as Qo, LogLevel as Qr, STATS as Qs, PrintLine as Qt, ComponentCompilerFeatures as R, createJsVarName as Ra, ResolveModuleIdResults as Ri, AutoprefixerOptions as Rn, shouldExcludeComponent as Ro, DevServerConfig as Rr, DOCS_README as Rs, NewSpecPageOptions as Rt, CompilerAssetDir as S, JsonDocsMethod as Sa, OutputTargetLoaderBundle as Si, StencilDocument as Sn, isOutputTargetDocs as So, CompilerSystemRemoveDirectoryOptions as Sr, toTitleCase as Ss, Encapsulation as St, CompilerBuildStats as T, JsonDocsProp as Ta, OutputTargetStandalone as Ti, TransformCssToEsmInput as Tn, isOutputTargetDocsJson as To, CompilerSystemRenameResults as Tr, formatLazyBundleRuntimeMeta as Ts, ExternalStyleCompiler as Tt, ComponentCompilerProperty as U, isJsFile as Ua, SerializeDocumentOptions as Ui, BuildOnEventRemove as Un, catchError as Uo, HmrStyleUpdate as Ur, HOST_FLAGS as Us, PatchedSlotNode as Ut, ComponentCompilerMethod as V, hasDependency as Va, RobotsTxtResults as Vi, BuildLog as Vn, buildJsonFileError as Vo, FsWatchResults as Vr, GENERATED_DTS as Vs, PackageJsonData as Vt, ComponentCompilerPropertyComplexType as W, isJsxFile as Wa, ServiceWorkerConfig as Wi, BuildOnEvents as Wn, hasError as Wo, HotModuleReplacement as Wr, HTML_NS as Ws, PlatformRuntime as Wt, ComponentCompilerStaticProperty as X, isRemoteUrl as Xa, StencilDevServerConfig as Xi, CompileTarget as Xn, augmentDiagnosticWithNode as Xo, LoadConfigInit as Xr, SSR_WASM as Xs, PrerenderUrlRequest as Xt, ComponentCompilerStaticMethod as Y, readPackageJson as Ya, StencilConfig as Yi, CompileScriptMinifyOptions as Yn, splitLineBreaks as Yo, LazyRequire as Yr, SSR as Ys, PrerenderManager as Yt, ComponentCompilerTypeReference as Z, getInlineSourceMappingUrlLinker as Za, StencilDocsConfig as Zi, Compiler as Zn, loadTypeScriptDiagnostic as Zo, LoadConfigResults as Zr, STANDALONE as Zs, PrerenderUrlResults as Zt, CollectionCompilerVersion as _, JsonDocsComponent as _a, OutputTargetDocsCustomElementsManifest as _i, SsrImgElement as _n, isOutputTargetAssets as _o, CompilerRequestResponse as _r, noop as _s, ComponentTestingConstructor as _t, BuildCtx as a, WatcherCloseResults as aa, XLINK_NS as ac, OptimizeJsInput as ai, RolldownResults as an, normalize as ao, CompilerEventDirAdd as ar, escapeWithPattern as as, ComponentConstructorProperties as at, CollectionDependencyManifest as b, JsonDocsEvent as ba, OutputTargetDocsVscode as bi, SsrStaticData as bn, isOutputTargetCustom as bo, CompilerSystemCreateDirectoryResults as br, toCamelCase as bs, CssTransformCacheEntry as bt, BuildStyleUpdate as c, ErrorHandler as ca, OutputTargetAssets as ci, RuntimeRef as cn, normalizePath as co, CompilerEventFileDelete as cr, isBoolean as cs, ComponentGlobalStyle as ct, BundleModuleOutput as d, ResolutionHandler as da, OutputTargetBuild as di, SourceMap$1 as dn, FilterComponentsResult as do, CompilerEventName as dr, isFunction as ds, ComponentRuntimeHostListener as dt, TranspileOnlyResults as ea, SVG_NS as ec, LoggerLineUpdater as ei, RenderNode as en, rolldownToStencilSourceMap as eo, CompilerDependency as er, isRolldownError as es, ComponentConstructor as et, Cache as f, TagTransformer as fa, OutputTargetCollection as fi, SourceTarget as fn, filterActiveTargets as fo, CompilerFileWatcher as fr, isIterable as fs, ComponentRuntimeMember as ft, CollectionCompilerMeta as g, JsonDocs as ga, OutputTargetDocsCustom as gi, SsrElement as gn, getComponentsFromModules as go, CompilerRequest as gr, mergeIntoWith as gs, ComponentRuntimeReflectingAttr as gt, CollectionCompiler as h, JsonDocMethodParameter as ha, OutputTargetDistLazy as hi, SsrComponent as hn, getComponentsDtsTypesFilePath as ho, CompilerFsStats as hr, isString as hs, ComponentRuntimeMetaCompact as ht, BuildConditionals as i, ValidatedConfig as ia, WWW as ic, OptimizeCssOutput as ii, RolldownResultModule as in, join as io, CompilerEventBuildStart as ir, dashToPascalCase as is, ComponentConstructorListener as it, CompilerWorkerContext as j, JsonDocsValue as ja, PlatformPath as ji, TypesModule as jn, isOutputTargetSsrWasm as jo, ConfigExtras as jr, COPY as js, LazyBundleRuntimeData as jt, CompilerModeStyles as k, JsonDocsTypeLibrary as ka, PageReloadStrategy as ki, TypesImportData as kn, isOutputTargetLoaderBundle as ko, Config as kr, COLLECTION_APP_DATA_FILE_NAME as ks, JSDocTagInfo as kt, BuildTask as l, FunctionalComponent as la, OutputTargetBase as li, SerializeImportData as ln, relative as lo, CompilerEventFileUpdate as lr, isComplexType as ls, ComponentNativeConstructor as lt, CollectionBundleManifest as m, VNode as ma, OutputTargetCustom as mi, SsrAnchorElement as mn, getComponentsDtsSrcFilePath as mo, CompilerFileWatcherEvent as mr, isObject as ms, ComponentRuntimeMeta as mt, AssetsMeta as n, TranspileResults as na, VALID_CONFIG_OUTPUT_TARGETS as nc, NodeResolveConfig as ni, RolldownChunkResult as nn, escapeRegExpSpecialCharacters as no, CompilerEventBuildLog as nr, isRootPath as ns, ComponentConstructorEncapsulation as nt, BuildFeatures as o, WorkerMainController as oa, byteSize as oc, OptimizeJsOutput as oi, RolldownSourceMap as on, normalizeFsPath as oo, CompilerEventDirDelete as or, flatOne as os, ComponentConstructorProperty as ot, ChildType as p, UserBuildConditionals as pa, OutputTargetCopy as pi, SpecPage as pn, filterExcludedComponents as po, CompilerFileWatcherCallback as pr, isNumber as ps, ComponentRuntimeMembers as pt, ComponentCompilerState as q, parsePackageJson as qa, SsrDocumentOptions as qi, CacheStorage as qn, escapeHtml as qo, HydratedFlag as qr, MEMBER_FLAGS as qs, PluginTransformResults as qt, BuildComponent as r, UnvalidatedConfig as ra, WATCH_FLAGS as rc, OptimizeCssInput as ri, RolldownResult as rn, queryNonceMetaTagContent as ro, CompilerEventBuildNoChange as rr, isGlob as rs, ComponentConstructorEvent as rt, BuildSourceGraph as s, WorkerOptions as sa, OutputTarget as si, RootAppliedStyleMap as sn, normalizeFsPathQuery as so, CompilerEventFileAdd as sr, fromEntries as ss, ComponentConstructorPropertyType as st, AnyHTMLElement as t, TranspileOptions as ta, TYPES as tc, LoggerTimeSpan as ti, RolldownAssetResult as tn, result_d_exports as to, CompilerEventBuildFinish as tr, loadRolldownDiagnostics as ts, ComponentConstructorChangeHandlers as tt, BundleModule as u, RafCallback as ua, OutputTargetBaseNext as ui, SerializedEvent as un, resolve as uo, CompilerEventFsChange as ur, isDef as us, ComponentPatches as ut, CollectionComponentEntryPath as v, JsonDocsCustomState as va, OutputTargetDocsJson as vi, SsrResults as vn, isOutputTargetCollection as vo, CompilerSystem as vr, pluck as vs, CssImportData as vt, CompilerBuildStatCollection as w, JsonDocsPart as wa, OutputTargetSsrWasm as wi, StyleMap as wn, isOutputTargetDocsCustomElementsManifest as wo, CompilerSystemRemoveFileResults as wr, formatComponentRuntimeMeta as ws, EventInitDict as wt, CollectionManifest as x, JsonDocsListener as xa, OutputTargetGlobalStyle as xi, SsrStyleElement as xn, isOutputTargetDistLazy as xo, CompilerSystemRealpathResults as xr, toDashCase as xs, DocData as xt, CollectionDependencyData as y, JsonDocsDependencyGraph as ya, OutputTargetDocsReadme as yi, SsrScriptElement as yn, isOutputTargetCopy as yo, CompilerSystemCreateDirectoryOptions as yr, sortBy as ys, CssToEsmImportData as yt, ComponentCompilerListener as z, generatePreamble as za, ResolveModuleOptions as zi, BuildEmitEvents as zn, TASK_CANCELED_MSG as zo, DevServerEditor as zr, DOCS_VSCODE as zs, NodeMap as zt };