@ethlete/core 5.0.0-next.28 → 5.0.0-next.29

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.
@@ -36,7 +36,21 @@ export default async function generate(tree, schema) {
36
36
  logger.log(' export const THEMES = [...] satisfies Theme[];\n');
37
37
  return;
38
38
  }
39
- // Step 4: Validate theme configuration
39
+ // Step 4: Apply the generation-time default override, if any. The shared theme
40
+ // definitions may mark a default via isDefault, but in a monorepo each app picks its
41
+ // own default at its generation invocation — the option wins over the definitions.
42
+ if (schema.defaultTheme) {
43
+ try {
44
+ const defaultName = applyDefaultThemeOverride(themes, schema.defaultTheme);
45
+ logger.log(`🎯 Default theme set at generation time: ${defaultName}`);
46
+ }
47
+ catch (error) {
48
+ logger.error('❌ Invalid --defaultTheme option');
49
+ logger.error(` ${error instanceof Error ? error.message : String(error)}`);
50
+ return;
51
+ }
52
+ }
53
+ // Step 5: Validate theme configuration
40
54
  try {
41
55
  validateThemeConfiguration(themes);
42
56
  }
@@ -45,24 +59,24 @@ export default async function generate(tree, schema) {
45
59
  logger.error(` ${error instanceof Error ? error.message : String(error)}`);
46
60
  return;
47
61
  }
48
- // Step 5: Generate Tailwind CSS
62
+ // Step 6: Generate Tailwind CSS
49
63
  logger.log('\n🎨 Generating Tailwind theme CSS...');
50
64
  const css = generateTailwindThemeCss(themes, prefix, runtimePrefix, schema);
51
- // Step 6: Write the generated CSS file
65
+ // Step 7: Write the generated CSS file
52
66
  const outputDir = outputPath.substring(0, outputPath.lastIndexOf('/'));
53
67
  if (outputDir && !tree.exists(outputDir)) {
54
68
  logger.log(`📁 Creating directory: ${outputDir}`);
55
69
  }
56
70
  tree.write(outputPath, css);
57
71
  logger.log(`✅ Generated Tailwind themes at: ${outputPath}`);
58
- // Step 7: Generate the `EthleteColorThemeNameRegistry` augmentation, so `etProvideColor`
72
+ // Step 8: Generate the `EthleteColorThemeNameRegistry` augmentation, so `etProvideColor`
59
73
  // (and anything else that accepts a `RegisteredColorThemeName`) is checked/autocompleted
60
74
  // against this app's actual theme names, instead of a plain `string`.
61
75
  const typesOutputPath = schema.typesOutputPath || outputPath.replace(/\.css$/, '.d.ts');
62
76
  const typesDts = generateColorThemeNameTypes(themes, schema);
63
77
  tree.write(typesOutputPath, typesDts);
64
78
  logger.log(`✅ Generated color theme name types at: ${typesOutputPath}`);
65
- // Step 8: Try to find and update main styles file
79
+ // Step 9: Try to find and update main styles file
66
80
  const mainStylesFiles = findMainStylesFile(tree);
67
81
  if (mainStylesFiles.length > 0) {
68
82
  logger.log('\n📝 Found potential main styles files:');
@@ -195,6 +209,19 @@ function parseThemeObject(obj, sourceFile) {
195
209
  }
196
210
  return theme;
197
211
  }
212
+ // Makes the named theme the sole default, overriding any isDefault flags in the theme
213
+ // definitions. Matches the theme's name or its CSS-safe form. Returns the resolved name.
214
+ function applyDefaultThemeOverride(themes, defaultTheme) {
215
+ const wanted = createCssThemeName(defaultTheme);
216
+ const target = themes.find((t) => t.name === defaultTheme || createCssThemeName(t.name) === wanted);
217
+ if (!target) {
218
+ throw new Error(`No theme named "${defaultTheme}" found. Available themes: ${themes.map((t) => t.name).join(', ')}`);
219
+ }
220
+ for (const theme of themes) {
221
+ theme.isDefault = theme === target;
222
+ }
223
+ return target.name;
224
+ }
198
225
  function validateThemeConfiguration(themes) {
199
226
  const defaultThemes = themes.filter((t) => t.isDefault);
200
227
  // Error: No default theme
@@ -317,7 +344,7 @@ function generateColorThemeNameTypes(themes, schema) {
317
344
  * DO NOT EDIT THIS FILE MANUALLY
318
345
  *
319
346
  * Regenerate by running:
320
- * nx g @ethlete/core:tailwind-4-color-theme --themesPath=${themesPath}${schema.outputPath ? ` --outputPath=${outputPath}` : ''}${schema.typesOutputPath ? ` --typesOutputPath=${typesOutputPath}` : ''}${schema.prefix && schema.prefix !== 'et' ? ` --prefix=${schema.prefix}` : ''}${schema.runtimePrefix && schema.runtimePrefix !== schema.prefix ? ` --runtimePrefix=${schema.runtimePrefix}` : ''}
347
+ * nx g @ethlete/core:tailwind-4-color-theme --themesPath=${themesPath}${schema.outputPath ? ` --outputPath=${outputPath}` : ''}${schema.typesOutputPath ? ` --typesOutputPath=${typesOutputPath}` : ''}${schema.prefix && schema.prefix !== 'et' ? ` --prefix=${schema.prefix}` : ''}${schema.runtimePrefix && schema.runtimePrefix !== schema.prefix ? ` --runtimePrefix=${schema.runtimePrefix}` : ''}${schema.defaultTheme ? ` --defaultTheme=${schema.defaultTheme}` : ''}
321
348
  */
322
349
 
323
350
  declare module '@ethlete/core' {
@@ -340,7 +367,7 @@ function generateTailwindThemeCss(themes, utilityPrefix, runtimePrefix, schema)
340
367
  *
341
368
  * Generated from your theme definitions
342
369
  * This file can be regenerated by running:
343
- * nx g @ethlete/core:tailwind-4-color-theme --themesPath=${themesPath}${schema.outputPath ? ` --outputPath=${outputPath}` : ''}${schema.prefix && schema.prefix !== 'et' ? ` --prefix=${schema.prefix}` : ''}${schema.runtimePrefix && schema.runtimePrefix !== utilityPrefix ? ` --runtimePrefix=${schema.runtimePrefix}` : ''}
370
+ * nx g @ethlete/core:tailwind-4-color-theme --themesPath=${themesPath}${schema.outputPath ? ` --outputPath=${outputPath}` : ''}${schema.prefix && schema.prefix !== 'et' ? ` --prefix=${schema.prefix}` : ''}${schema.runtimePrefix && schema.runtimePrefix !== utilityPrefix ? ` --runtimePrefix=${schema.runtimePrefix}` : ''}${schema.defaultTheme ? ` --defaultTheme=${schema.defaultTheme}` : ''}
344
371
  */
345
372
 
346
373
  `;
@@ -30,6 +30,10 @@
30
30
  "type": "string",
31
31
  "description": "Prefix for the runtime theme-swap mechanism: the CSS custom properties (--<runtimePrefix>-color-primary) and selectors (.<runtimePrefix>-color--<name>) that ProvideColorDirective (etProvideColor) toggles between. Defaults to the same value as 'prefix'. Set this separately when your Tailwind utility prefix needs to differ from your runtime theme-switching prefix (e.g. because '--color-primary' is already a documented public API elsewhere in your app)."
32
32
  },
33
+ "defaultTheme": {
34
+ "type": "string",
35
+ "description": "Name of the theme to use as the default, overriding any isDefault flags in the theme definitions. Use this when multiple apps share one theme definition set (e.g. in a monorepo) but each app needs a different default."
36
+ },
33
37
  "skipFormat": {
34
38
  "type": "boolean",
35
39
  "description": "Skip formatting files after generation",
@@ -33,6 +33,24 @@ export default async function generate(tree, schema) {
33
33
  logger.log(' export const SURFACE_THEMES = [...] satisfies SurfaceTheme[];\n');
34
34
  return;
35
35
  }
36
+ // Apply the generation-time default overrides, if any. The shared theme definitions may
37
+ // mark defaults via isDefault, but in a monorepo each app picks its own defaults at its
38
+ // generation invocation — the options win over the definitions (per surface type).
39
+ try {
40
+ if (schema.defaultLightTheme) {
41
+ const name = applyDefaultSurfaceThemeOverride(themes, schema.defaultLightTheme, 'light');
42
+ logger.log(`🎯 Default light surface theme set at generation time: ${name}`);
43
+ }
44
+ if (schema.defaultDarkTheme) {
45
+ const name = applyDefaultSurfaceThemeOverride(themes, schema.defaultDarkTheme, 'dark');
46
+ logger.log(`🎯 Default dark surface theme set at generation time: ${name}`);
47
+ }
48
+ }
49
+ catch (error) {
50
+ logger.error('❌ Invalid default theme option');
51
+ logger.error(` ${error instanceof Error ? error.message : String(error)}`);
52
+ return;
53
+ }
36
54
  try {
37
55
  validateSurfaceThemeConfiguration(themes);
38
56
  }
@@ -202,6 +220,27 @@ function parseSurfaceThemeObject(obj) {
202
220
  }
203
221
  return theme;
204
222
  }
223
+ // Makes the named theme the sole default of its surface type, overriding any isDefault
224
+ // flags on themes of that type. Matches the theme's name or its CSS-safe form. Themes of
225
+ // the other type keep their flags. Returns the resolved name.
226
+ function applyDefaultSurfaceThemeOverride(themes, defaultTheme, type) {
227
+ const wanted = createCssSurfaceName(defaultTheme);
228
+ const matches = themes.filter((t) => t.name === defaultTheme || createCssSurfaceName(t.name) === wanted);
229
+ const target = matches.find((t) => t.type === type);
230
+ if (!target) {
231
+ if (matches.length > 0) {
232
+ throw new Error(`Theme "${defaultTheme}" has type '${matches[0].type}', but was passed as the default '${type}' theme`);
233
+ }
234
+ const available = themes.filter((t) => t.type === type).map((t) => t.name);
235
+ throw new Error(`No surface theme named "${defaultTheme}" found. Available '${type}' themes: ${available.join(', ')}`);
236
+ }
237
+ for (const theme of themes) {
238
+ if (theme.type === type) {
239
+ theme.isDefault = theme === target;
240
+ }
241
+ }
242
+ return target.name;
243
+ }
205
244
  function validateSurfaceThemeConfiguration(themes) {
206
245
  const defaultThemes = themes.filter((t) => t.isDefault);
207
246
  if (defaultThemes.length === 0) {
@@ -236,7 +275,7 @@ function generateSurfaceThemeNameTypes(themes, schema) {
236
275
  * DO NOT EDIT THIS FILE MANUALLY
237
276
  *
238
277
  * Regenerate by running:
239
- * nx g @ethlete/core:tailwind-4-surface-theme --themesPath=${themesPath}${schema.outputPath ? ` --outputPath=${outputPath}` : ''}${schema.typesOutputPath ? ` --typesOutputPath=${typesOutputPath}` : ''}${schema.prefix && schema.prefix !== 'et' ? ` --prefix=${schema.prefix}` : ''}
278
+ * nx g @ethlete/core:tailwind-4-surface-theme --themesPath=${themesPath}${schema.outputPath ? ` --outputPath=${outputPath}` : ''}${schema.typesOutputPath ? ` --typesOutputPath=${typesOutputPath}` : ''}${schema.prefix && schema.prefix !== 'et' ? ` --prefix=${schema.prefix}` : ''}${schema.defaultLightTheme ? ` --defaultLightTheme=${schema.defaultLightTheme}` : ''}${schema.defaultDarkTheme ? ` --defaultDarkTheme=${schema.defaultDarkTheme}` : ''}
240
279
  */
241
280
 
242
281
  declare module '@ethlete/core' {
@@ -259,7 +298,7 @@ function generateSurfaceThemeCss(themes, utilityPrefix, runtimePrefix, schema) {
259
298
  *
260
299
  * Generated from your surface theme definitions
261
300
  * This file can be regenerated by running:
262
- * nx g @ethlete/core:tailwind-4-surface-theme --themesPath=${themesPath}${schema.outputPath ? ` --outputPath=${outputPath}` : ''}${schema.prefix && schema.prefix !== 'et' ? ` --prefix=${schema.prefix}` : ''}${schema.runtimePrefix && schema.runtimePrefix !== schema.prefix ? ` --runtimePrefix=${schema.runtimePrefix}` : ''}
301
+ * nx g @ethlete/core:tailwind-4-surface-theme --themesPath=${themesPath}${schema.outputPath ? ` --outputPath=${outputPath}` : ''}${schema.prefix && schema.prefix !== 'et' ? ` --prefix=${schema.prefix}` : ''}${schema.runtimePrefix && schema.runtimePrefix !== schema.prefix ? ` --runtimePrefix=${schema.runtimePrefix}` : ''}${schema.defaultLightTheme ? ` --defaultLightTheme=${schema.defaultLightTheme}` : ''}${schema.defaultDarkTheme ? ` --defaultDarkTheme=${schema.defaultDarkTheme}` : ''}
263
302
  */
264
303
 
265
304
  `;
@@ -30,6 +30,14 @@
30
30
  "type": "string",
31
31
  "description": "Prefix for the runtime theme-swap mechanism: the CSS custom properties (--<runtimePrefix>-surface-*) and selectors (.<runtimePrefix>-surface--<name>) that ProvideSurfaceDirective (etProvideSurface) toggles between. Defaults to the same value as 'prefix'. Set this separately when your Tailwind utility prefix needs to differ from your runtime theme-switching prefix."
32
32
  },
33
+ "defaultLightTheme": {
34
+ "type": "string",
35
+ "description": "Name of the 'light' surface theme to use as the default, overriding any isDefault flags on light themes in the definitions. Use this when multiple apps share one surface theme definition set (e.g. in a monorepo) but each app needs a different default."
36
+ },
37
+ "defaultDarkTheme": {
38
+ "type": "string",
39
+ "description": "Name of the 'dark' surface theme to use as the default, overriding any isDefault flags on dark themes in the definitions. Use this when multiple apps share one surface theme definition set (e.g. in a monorepo) but each app needs a different default."
40
+ },
33
41
  "skipFormat": {
34
42
  "type": "boolean",
35
43
  "description": "Skip formatting files after generation",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ethlete/core",
3
- "version": "5.0.0-next.28",
3
+ "version": "5.0.0-next.29",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "peerDependencies": {
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { InjectionToken, AfterViewInit, InputSignal, Signal, ComponentRef, StaticProvider, EmbeddedViewRef, ElementRef, QueryList, WritableSignal, InputSignalWithTransform, RendererStyleFlags2, Type, Provider, Injector, ViewContainerRef, Binding, computed, InjectOptions, TemplateRef, PipeTransform, TrackByFunction, DestroyRef, OnInit, OnDestroy } from '@angular/core';
2
+ import { InjectionToken, AfterViewInit, InputSignal, ApplicationRef, Signal, ComponentRef, StaticProvider, EmbeddedViewRef, ElementRef, QueryList, WritableSignal, InputSignalWithTransform, RendererStyleFlags2, Type, Provider, Injector, ViewContainerRef, Binding, computed, InjectOptions, TemplateRef, PipeTransform, TrackByFunction, DestroyRef, OnInit, OnDestroy } from '@angular/core';
3
3
  import * as rxjs from 'rxjs';
4
4
  import { Observable, BehaviorSubject, Subject } from 'rxjs';
5
5
  import * as _ethlete_core from '@ethlete/core';
@@ -390,6 +390,16 @@ declare const createTailwindColorThemes: (themes: ColorTheme[], prefix?: string)
390
390
  declare const provideColorThemes: (themes: ColorTheme[]) => _angular_core.Provider[][];
391
391
 
392
392
  declare const COLOR_PROVIDER: InjectionToken<ProvideColorDirective>;
393
+ /**
394
+ * The color provider attached to a bootstrapped root component (e.g. `ProvideColorDirective` in
395
+ * the app component's `hostDirectives`), if any. Detached DOM such as overlay panes can't reach
396
+ * it through element DI, so overlay containers fall back to this when resolving the provider to
397
+ * `syncWithProvider()` — resolve at sync time, not at injection time, since root components only
398
+ * register with `ApplicationRef` once bootstrap completes.
399
+ *
400
+ * @internal
401
+ */
402
+ declare const resolveAppRootColorProvider: (appRef: ApplicationRef) => ProvideColorDirective | null;
393
403
  declare class ProvideColorDirective {
394
404
  private themes;
395
405
  private prefix;
@@ -642,14 +652,22 @@ declare const firstElementSignal: (el: ElementSignal) => Signal<{
642
652
  previousElement: HTMLElement | null;
643
653
  }>;
644
654
 
655
+ type AnimatedSizeAxis = 'block' | 'inline';
645
656
  type AnimatedBlockSizeConfig = {
646
- /** The element whose `block-size` is animated. Defaults to the host `ElementRef`. */
657
+ /** The element whose size is animated. Defaults to the host `ElementRef`. */
647
658
  host?: SignalElementBindingType;
648
659
  /**
649
660
  * The content element(s) whose size changes drive the animation. Observe the content (children),
650
661
  * **not** the animated host — observing the host would feed the animation back into itself.
662
+ * For the `inline` axis this also means the observed content must be content-sized (e.g.
663
+ * `inline-size: max-content`); a plain block child just mirrors the host's animated width back.
651
664
  */
652
665
  observe: SignalElementBindingType | SignalElementBindingType[];
666
+ /**
667
+ * The axes to animate. May be a signal — e.g. to drop the `inline` axis while a panel is in a
668
+ * presentation whose width follows the viewport instead of its content. @default ['block']
669
+ */
670
+ axes?: AnimatedSizeAxis[] | Signal<AnimatedSizeAxis[]>;
653
671
  /** Animation duration in ms. @default 160 */
654
672
  duration?: number;
655
673
  /** Animation easing. @default 'ease' */
@@ -658,13 +676,14 @@ type AnimatedBlockSizeConfig = {
658
676
  resizingClass?: string;
659
677
  };
660
678
  /**
661
- * Smoothly animates an element's `block-size` when its content changes size (e.g. a list filtering,
662
- * a loading state resolving). Set up once in an injection context; it observes the given content
663
- * element(s) and animates the host from its previous height to its new natural height.
679
+ * Smoothly animates an element's `block-size` (and optionally `inline-size`, via `axes`) when its
680
+ * content changes size (e.g. a list filtering, a loading state resolving, a column being added).
681
+ * Set up once in an injection context; it observes the given content element(s) and animates the
682
+ * host from its previous size to its new natural size.
664
683
  *
665
- * Robustness notes: the baseline height is captured on the first render (via `afterNextRender`) and
684
+ * Robustness notes: the baseline size is captured on the first render (via `afterNextRender`) and
666
685
  * only later changes animate, so the initial layout settling never plays as a grow-from-0.
667
- * A change that interrupts an in-flight animation continues from the current animated height, and
686
+ * A change that interrupts an in-flight animation continues from the current animated size, and
668
687
  * zero/pre-layout measurements are ignored. Respects `prefers-reduced-motion`.
669
688
  *
670
689
  * The animation starts synchronously inside the `ResizeObserver` callback — it runs after layout
@@ -2972,5 +2991,5 @@ declare const injectTitleStore: {
2972
2991
  };
2973
2992
  declare const applyHeadTitleBinding: (binding: MaybeSignal<string | number | null | undefined>, options?: Omit<TitlePart, "text">) => void;
2974
2993
 
2975
- export { ANIMATABLE_TOKEN, ANIMATED_IF_TOKEN, ANIMATED_LIFECYCLE_TOKEN, ANIMATION_DEBUG_STORAGE_KEY, AT_LEAST_ONE_REQUIRED, AnimatableDirective, AnimatedIfDirective, AnimatedLifecycleDirective, AnimatedOverlayDirective, AutoSurfaceDirective, BOUNDARY_ELEMENT_TOKEN, BREAKPOINT_INSTANCE_TOKEN, BREAKPOINT_ORDER, COLOR_PROVIDER, ClickOutsideDirective, ColorInteractiveContainerDirective, ColorInteractiveDirective, ColorInteractiveExcludeDirective, ColorInteractiveHasFocusDirective, DEFAULT_MULTI_INSTANCE_RELS, DEFAULT_MULTI_INSTANCE_TAGS, DEFAULT_VIEWPORT_CONFIG, DISABLE_LOGGER_PARAM, DragHandleDirective, ET_DISABLE_SCROLL_TOP, ET_DISABLE_SCROLL_TOP_AS_RETURN_ROUTE, ET_DISABLE_SCROLL_TOP_ON_PATH_PARAM_CHANGE, ET_PROPERTY_REMOVED, FOCUSABLE_SELECTOR, FOCUS_VISIBLE_TRACKER_TOKEN, HtmlToMarkdownPipe, IS_ARRAY_NOT_EMPTY, IS_EMAIL, InferMimeTypePipe, InitialsPipe, IsArrayNotEmpty, IsEmail, jsonLd_d as JsonLD, KeyPressManager, MUST_MATCH, MarkdownToHtmlPipe, MatchStateType, MustMatch, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, PropsDirective, ProvideColorDirective, ProvideSurfaceDirective, RUNTIME_ERROR_NO_DATA, RepeatDirective, ResizeHandlesComponent, RuntimeError, SEO_DIRECTIVE_TOKEN, SURFACE_PROVIDER, SURFACE_TYPE, ScrollObserverDirective, ScrollObserverEndDirective, ScrollObserverStartDirective, SeoDirective, SlugifyPipe, StructuredDataComponent, SurfaceInteractiveDirective, ToArrayPipe, TypedQueryList, ValidateAtLeastOneRequired, Validators, animationDebugLog, applyAlternateBinding, applyAlternateLanguagesBindings, applyArticleBindings, applyAuthorBinding, applyCanonicalBinding, applyCenteredPosition, applyDescriptionBinding, applyGlobalPosition, applyHeadBinding, applyHeadTitleBinding, applyHostListener, applyHostListeners, applyInitialFocus, applyKeywordsBinding, applyLinkBinding, applyMetaBinding, applyNextBinding, applyOgBinding, applyOpenGraphBindings, applyPrevBinding, applyResourceHintsBindings, applyRobotsBinding, applySocialMediaBindings, applyStructuredDataBinding, applyTwitterCardBindings, areScrollStatesEqual, bindProps, boolBreakpointTransform, booleanBreakpointAttribute, boundingClientRectToElementRect, breakpointTransformBase, buildElementSignal, buildSignalEffects, canUseSessionMemory, clamp, clone, cloneFormGroup, computedTillFalsy, computedTillTruthy, controlValueSignal, controlValueSignalWithPrevious, copyToClipboard, createAnchoredPositionCleanup, createArrayPropertyBinding, createAutoSessionMemoryKey, createBulkPropertyBinding, createCanAnimateSignal, createComponentId, createCssColorThemeName, createCssSurfaceName, createDependencyStash, createDestroy, createDocumentElementSignal, createElementDictionary, createElementDimensions, createEmptyElementSignal, createFlipAnimation, createFlipAnimationGroup, createHostProps, createIsRenderedSignal, createLogger, createOverlayRuntimeRef, createPropHandlers, createPropertyBinding, createProps, createProvider, createRootProvider, createRootThemeCss, createRoute, createRouterState, createRxHostListener, createSessionMemory, createSetup, createStaticProvider, createStaticRootProvider, createSwatchCss, createSwipeTracker, createTailwindColorThemes, createTailwindCssVar, createTailwindRgbVar, createThemeStyle, createUserConsentProvider, deferredSignal, deleteCookie, easeElastic, easeIn, easeInOut, easeLinear, easeOut, easeOutBack, easeOutBackStrong, elementCanScroll, equal, firstElementSignal, focusElement, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getElementScrollCoordinates, getFocusableElements, getFormGroupValue, getGroupMatchPoints, getGroupMatchScore, getHeadingElement, getKnockoutMatchScore, getMatchScoreSubLine, getObjectProperty, getScrollContainerTarget, getScrollItemTarget, getScrollSnapTarget, hasCookie, htmlToMarkdown, inferMimeType, initials, injectAngularRootElement, injectAnimatedBlockSize, injectBoundaryElement, injectBreakpointInput, injectBreakpointIsMatched, injectBreakpointObserver, injectCanHover, injectColorThemes, injectColorThemesPrefix, injectCurrentBreakpoint, injectDeviceInputType, injectDisplayOrientation, injectErrorTheme, injectFocusVisibleTracker, injectFragment, injectHasPrecisionInput, injectHasTouchInput, injectHostElement, injectIs2Xl, injectIsLandscape, injectIsLg, injectIsMd, injectIsPortrait, injectIsRouterInitialized, injectIsSm, injectIsXl, injectIsXs, injectLinkStore, injectLinkStoreConfig, injectLocale, injectMediaQueryIsMatched, injectMetaConfig, injectMetaStore, injectObserveBreakpoint, injectObserveMediaQuery, injectOverlayRuntime, injectPathParam, injectPathParamChanges, injectPathParams, injectPrefersReducedMotion, injectQueryParam, injectQueryParamChanges, injectQueryParams, injectRenderer, injectRoute, injectRouteData, injectRouteDataItem, injectRouteTitle, injectRouterEvent, injectRouterState, injectScrollbarDimensions, injectStructuredDataConfig, injectStructuredDataStore, injectStyleManager, injectSuccessTheme, injectSurfaceContextTracker, injectSurfaceThemes, injectSurfaceThemesPrefix, injectTemplateRef, injectTitleConfig, injectTitleStore, injectUrl, injectViewportConfig, injectViewportDimensions, injectViewportSize, injectWarningTheme, isAnimationDebugEnabled, isArray, isElementSignal, isElementVisible, isFocusable, isGroupMatch, isHTMLElement, isKnockoutMatch, isObject, markdownToHtml, maybeSignalValue, memoizeSignal, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, numberBreakpointAttribute, numberBreakpointTransform, previousSignalValue, provideBoundaryElement, provideBreakpointInstance, provideBreakpointObserver, provideColorThemes, provideColorThemesWithTailwind4, provideFocusVisibleTracker, provideLinkStore, provideLinkStoreConfig, provideLocale, provideMetaConfig, provideMetaStore, provideOverlayRuntime, provideRenderer, provideStructuredDataConfig, provideStructuredDataStore, provideStyleManager, provideSurfaceContextTracker, provideSurfaceThemesWithTailwind4, provideTitleConfig, provideTitleStore, provideViewportConfig, randomId, readFromClipboard, resetPositioningStyles, resolveSurfaceByElevation, round, routerDisableScrollTop, scrollToElement, setBackdropStyles, setBaseElementStyles, setCookie, setInputSignal, setupFocusTrap, setupPositioning, setupScrollRestoration, signalAnimatedNumber, signalAttributes, signalClasses, signalElementChildren, signalElementDimensions, signalElementIntersection, signalElementLastScrollDirection, signalElementMutations, signalElementScrollState, signalHostAttributes, signalHostClasses, signalHostElementDimensions, signalHostElementIntersection, signalHostElementLastScrollDirection, signalHostElementMutations, signalHostElementScrollState, signalHostStyles, signalIsRendered, signalStyles, slugify, switchQueryListChanges, syncSignal, templateComputed, toArray, toArrayTrackByFn, toStringBinding, transformOrReturn, typedBreakpointTransform, unbindProps, useCursorDragScroll, writeScrollbarSizeToCssVariables, writeViewportSizeToCssVariables, ɵProvideColorThemes, ɵProvideColorThemesPrefix, ɵProvideSurfaceThemes, ɵProvideSurfaceThemesPrefix };
2976
- export type { AlternateLanguagesConfig, AlternateLink, AngularRenderer, AnimatedBlockSizeConfig, AnimatedLifecycleState, AnimatedNumberSignal, AnimatedOverlayComponentBase, AnimatedOverlayMountConfig, AnimatedOverlayState, AnimationEndEvent, AnyTemplateType, ArticleConfig, BindPropsOptions, BoolBreakpointSignal, Breakpoint, BreakpointInput, BreakpointMap, BuildMediaQueryOptions, BuildSignalEffectsConfig, ColorTheme, ColorThemeType, ComponentTemplate, ComponentTypeWithInputs, ConsentHandler, ControlValueSignalOptions, CreateLoggerConfig, CreatePropsOptions, CreateProviderOptions, CreateSessionMemoryConfig, CreateUserConsentProviderOptions, CurrentElementVisibility, CursorDragScrollDirection, CursorDragScrollOptions, DragMoveEvent, DragStartEvent, ElementDimensions, ElementLastScrollDirection, ElementLastScrollDirectionType, ElementRect, ElementScrollState, ElementSignal, ElementSignalValue, ElementSize, EthleteColorThemeNameRegistry, EthleteSurfaceThemeNameRegistry, FacebookCard, FlipAnimationConfig, HeadBinding, HostProps, InjectQueryParamConfig, InjectUtilConfig, InjectUtilTransformConfig, IntersectionObserverEntryWithDetails, IsElementVisibleOptions, LinkConfig, LinkStoreConfig, LogicalSize, MaybeObservable, MaybeSignal, MetaConfig, MetaTagConfig, NgClassType, NgTemplateTemplate, NormalizedGameResultType, NormalizedMatchParticipant, NormalizedMatchParticipants, NormalizedMatchScore, NullableElementDimensions, NumberBreakpointSignal, OnThemeColorMap, OpenGraph, OpenGraphConfig, OverlayRuntimeAnchoredPosition, OverlayRuntimeAnimationDelegate, OverlayRuntimeAnimationDelegateEnterContext, OverlayRuntimeAnimationDelegateLeaveContext, OverlayRuntimeAutoFocusTarget, OverlayRuntimeCenteredPosition, OverlayRuntimeCloseEvent, OverlayRuntimeCloseSource, OverlayRuntimeComponentBase, OverlayRuntimeElements, OverlayRuntimeGlobalPosition, OverlayRuntimeGlobalPositionAlignment, OverlayRuntimeMountConfig, OverlayRuntimePositionStrategy, OverlayRuntimeRef, OverlayRuntimeRole, OverlayRuntimeShiftOptions, OverlayRuntimeState, PropHandlers, Props, PropsAttachedElements, PropsAttachedElementsInternal, PropsInternal, ProviderResult, RegisteredColorThemeName, RegisteredSurfaceThemeName, ResizeEdge, ResizeMoveEvent, ResourceHintsConfig, RobotsConfig, RootProviderResult, RouterDisableScrollTopConfig, RouterState, ScrollContainerTarget, ScrollItemTarget, ScrollSnapOrigin, ScrollSnapTarget, ScrollToElementOptions, SeoConfig, SetupScrollRestorationConfig, SignalAnimatedNumberOptions, SignalElementBindingComplexType, SignalElementBindingType, SignalElementIntersectionOptions, SignalElementScrollStateOptions, SocialMediaConfig, StaticProviderResult, StringTemplate, StructuredDataConfig, StyleManager, SurfaceContextEntry, SurfaceContextTracker, SurfaceInteractionColor, SurfaceTheme, SurfaceThemeColor, SurfaceType, SwipeEndEvent, SwipeTracker, SwipeUpdateEvent, SyncSignalOptions, TemplateRefWithContext, ThemeColor, ThemeColorMap, ThemeHSLColor, ThemeInkColorMap, ThemeRGBColor, ThemeSwatch, TitleConfig, TitlePart, Translatable, TwitterCard, TwitterCardConfig, TypedBreakpointSignal, UnbindPropsOptions, ValidateAtLeastOneRequiredConfig, Vec2, ViewportConfig };
2994
+ export { ANIMATABLE_TOKEN, ANIMATED_IF_TOKEN, ANIMATED_LIFECYCLE_TOKEN, ANIMATION_DEBUG_STORAGE_KEY, AT_LEAST_ONE_REQUIRED, AnimatableDirective, AnimatedIfDirective, AnimatedLifecycleDirective, AnimatedOverlayDirective, AutoSurfaceDirective, BOUNDARY_ELEMENT_TOKEN, BREAKPOINT_INSTANCE_TOKEN, BREAKPOINT_ORDER, COLOR_PROVIDER, ClickOutsideDirective, ColorInteractiveContainerDirective, ColorInteractiveDirective, ColorInteractiveExcludeDirective, ColorInteractiveHasFocusDirective, DEFAULT_MULTI_INSTANCE_RELS, DEFAULT_MULTI_INSTANCE_TAGS, DEFAULT_VIEWPORT_CONFIG, DISABLE_LOGGER_PARAM, DragHandleDirective, ET_DISABLE_SCROLL_TOP, ET_DISABLE_SCROLL_TOP_AS_RETURN_ROUTE, ET_DISABLE_SCROLL_TOP_ON_PATH_PARAM_CHANGE, ET_PROPERTY_REMOVED, FOCUSABLE_SELECTOR, FOCUS_VISIBLE_TRACKER_TOKEN, HtmlToMarkdownPipe, IS_ARRAY_NOT_EMPTY, IS_EMAIL, InferMimeTypePipe, InitialsPipe, IsArrayNotEmpty, IsEmail, jsonLd_d as JsonLD, KeyPressManager, MUST_MATCH, MarkdownToHtmlPipe, MatchStateType, MustMatch, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, PropsDirective, ProvideColorDirective, ProvideSurfaceDirective, RUNTIME_ERROR_NO_DATA, RepeatDirective, ResizeHandlesComponent, RuntimeError, SEO_DIRECTIVE_TOKEN, SURFACE_PROVIDER, SURFACE_TYPE, ScrollObserverDirective, ScrollObserverEndDirective, ScrollObserverStartDirective, SeoDirective, SlugifyPipe, StructuredDataComponent, SurfaceInteractiveDirective, ToArrayPipe, TypedQueryList, ValidateAtLeastOneRequired, Validators, animationDebugLog, applyAlternateBinding, applyAlternateLanguagesBindings, applyArticleBindings, applyAuthorBinding, applyCanonicalBinding, applyCenteredPosition, applyDescriptionBinding, applyGlobalPosition, applyHeadBinding, applyHeadTitleBinding, applyHostListener, applyHostListeners, applyInitialFocus, applyKeywordsBinding, applyLinkBinding, applyMetaBinding, applyNextBinding, applyOgBinding, applyOpenGraphBindings, applyPrevBinding, applyResourceHintsBindings, applyRobotsBinding, applySocialMediaBindings, applyStructuredDataBinding, applyTwitterCardBindings, areScrollStatesEqual, bindProps, boolBreakpointTransform, booleanBreakpointAttribute, boundingClientRectToElementRect, breakpointTransformBase, buildElementSignal, buildSignalEffects, canUseSessionMemory, clamp, clone, cloneFormGroup, computedTillFalsy, computedTillTruthy, controlValueSignal, controlValueSignalWithPrevious, copyToClipboard, createAnchoredPositionCleanup, createArrayPropertyBinding, createAutoSessionMemoryKey, createBulkPropertyBinding, createCanAnimateSignal, createComponentId, createCssColorThemeName, createCssSurfaceName, createDependencyStash, createDestroy, createDocumentElementSignal, createElementDictionary, createElementDimensions, createEmptyElementSignal, createFlipAnimation, createFlipAnimationGroup, createHostProps, createIsRenderedSignal, createLogger, createOverlayRuntimeRef, createPropHandlers, createPropertyBinding, createProps, createProvider, createRootProvider, createRootThemeCss, createRoute, createRouterState, createRxHostListener, createSessionMemory, createSetup, createStaticProvider, createStaticRootProvider, createSwatchCss, createSwipeTracker, createTailwindColorThemes, createTailwindCssVar, createTailwindRgbVar, createThemeStyle, createUserConsentProvider, deferredSignal, deleteCookie, easeElastic, easeIn, easeInOut, easeLinear, easeOut, easeOutBack, easeOutBackStrong, elementCanScroll, equal, firstElementSignal, focusElement, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getElementScrollCoordinates, getFocusableElements, getFormGroupValue, getGroupMatchPoints, getGroupMatchScore, getHeadingElement, getKnockoutMatchScore, getMatchScoreSubLine, getObjectProperty, getScrollContainerTarget, getScrollItemTarget, getScrollSnapTarget, hasCookie, htmlToMarkdown, inferMimeType, initials, injectAngularRootElement, injectAnimatedBlockSize, injectBoundaryElement, injectBreakpointInput, injectBreakpointIsMatched, injectBreakpointObserver, injectCanHover, injectColorThemes, injectColorThemesPrefix, injectCurrentBreakpoint, injectDeviceInputType, injectDisplayOrientation, injectErrorTheme, injectFocusVisibleTracker, injectFragment, injectHasPrecisionInput, injectHasTouchInput, injectHostElement, injectIs2Xl, injectIsLandscape, injectIsLg, injectIsMd, injectIsPortrait, injectIsRouterInitialized, injectIsSm, injectIsXl, injectIsXs, injectLinkStore, injectLinkStoreConfig, injectLocale, injectMediaQueryIsMatched, injectMetaConfig, injectMetaStore, injectObserveBreakpoint, injectObserveMediaQuery, injectOverlayRuntime, injectPathParam, injectPathParamChanges, injectPathParams, injectPrefersReducedMotion, injectQueryParam, injectQueryParamChanges, injectQueryParams, injectRenderer, injectRoute, injectRouteData, injectRouteDataItem, injectRouteTitle, injectRouterEvent, injectRouterState, injectScrollbarDimensions, injectStructuredDataConfig, injectStructuredDataStore, injectStyleManager, injectSuccessTheme, injectSurfaceContextTracker, injectSurfaceThemes, injectSurfaceThemesPrefix, injectTemplateRef, injectTitleConfig, injectTitleStore, injectUrl, injectViewportConfig, injectViewportDimensions, injectViewportSize, injectWarningTheme, isAnimationDebugEnabled, isArray, isElementSignal, isElementVisible, isFocusable, isGroupMatch, isHTMLElement, isKnockoutMatch, isObject, markdownToHtml, maybeSignalValue, memoizeSignal, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, numberBreakpointAttribute, numberBreakpointTransform, previousSignalValue, provideBoundaryElement, provideBreakpointInstance, provideBreakpointObserver, provideColorThemes, provideColorThemesWithTailwind4, provideFocusVisibleTracker, provideLinkStore, provideLinkStoreConfig, provideLocale, provideMetaConfig, provideMetaStore, provideOverlayRuntime, provideRenderer, provideStructuredDataConfig, provideStructuredDataStore, provideStyleManager, provideSurfaceContextTracker, provideSurfaceThemesWithTailwind4, provideTitleConfig, provideTitleStore, provideViewportConfig, randomId, readFromClipboard, resetPositioningStyles, resolveAppRootColorProvider, resolveSurfaceByElevation, round, routerDisableScrollTop, scrollToElement, setBackdropStyles, setBaseElementStyles, setCookie, setInputSignal, setupFocusTrap, setupPositioning, setupScrollRestoration, signalAnimatedNumber, signalAttributes, signalClasses, signalElementChildren, signalElementDimensions, signalElementIntersection, signalElementLastScrollDirection, signalElementMutations, signalElementScrollState, signalHostAttributes, signalHostClasses, signalHostElementDimensions, signalHostElementIntersection, signalHostElementLastScrollDirection, signalHostElementMutations, signalHostElementScrollState, signalHostStyles, signalIsRendered, signalStyles, slugify, switchQueryListChanges, syncSignal, templateComputed, toArray, toArrayTrackByFn, toStringBinding, transformOrReturn, typedBreakpointTransform, unbindProps, useCursorDragScroll, writeScrollbarSizeToCssVariables, writeViewportSizeToCssVariables, ɵProvideColorThemes, ɵProvideColorThemesPrefix, ɵProvideSurfaceThemes, ɵProvideSurfaceThemesPrefix };
2995
+ export type { AlternateLanguagesConfig, AlternateLink, AngularRenderer, AnimatedBlockSizeConfig, AnimatedLifecycleState, AnimatedNumberSignal, AnimatedOverlayComponentBase, AnimatedOverlayMountConfig, AnimatedOverlayState, AnimatedSizeAxis, AnimationEndEvent, AnyTemplateType, ArticleConfig, BindPropsOptions, BoolBreakpointSignal, Breakpoint, BreakpointInput, BreakpointMap, BuildMediaQueryOptions, BuildSignalEffectsConfig, ColorTheme, ColorThemeType, ComponentTemplate, ComponentTypeWithInputs, ConsentHandler, ControlValueSignalOptions, CreateLoggerConfig, CreatePropsOptions, CreateProviderOptions, CreateSessionMemoryConfig, CreateUserConsentProviderOptions, CurrentElementVisibility, CursorDragScrollDirection, CursorDragScrollOptions, DragMoveEvent, DragStartEvent, ElementDimensions, ElementLastScrollDirection, ElementLastScrollDirectionType, ElementRect, ElementScrollState, ElementSignal, ElementSignalValue, ElementSize, EthleteColorThemeNameRegistry, EthleteSurfaceThemeNameRegistry, FacebookCard, FlipAnimationConfig, HeadBinding, HostProps, InjectQueryParamConfig, InjectUtilConfig, InjectUtilTransformConfig, IntersectionObserverEntryWithDetails, IsElementVisibleOptions, LinkConfig, LinkStoreConfig, LogicalSize, MaybeObservable, MaybeSignal, MetaConfig, MetaTagConfig, NgClassType, NgTemplateTemplate, NormalizedGameResultType, NormalizedMatchParticipant, NormalizedMatchParticipants, NormalizedMatchScore, NullableElementDimensions, NumberBreakpointSignal, OnThemeColorMap, OpenGraph, OpenGraphConfig, OverlayRuntimeAnchoredPosition, OverlayRuntimeAnimationDelegate, OverlayRuntimeAnimationDelegateEnterContext, OverlayRuntimeAnimationDelegateLeaveContext, OverlayRuntimeAutoFocusTarget, OverlayRuntimeCenteredPosition, OverlayRuntimeCloseEvent, OverlayRuntimeCloseSource, OverlayRuntimeComponentBase, OverlayRuntimeElements, OverlayRuntimeGlobalPosition, OverlayRuntimeGlobalPositionAlignment, OverlayRuntimeMountConfig, OverlayRuntimePositionStrategy, OverlayRuntimeRef, OverlayRuntimeRole, OverlayRuntimeShiftOptions, OverlayRuntimeState, PropHandlers, Props, PropsAttachedElements, PropsAttachedElementsInternal, PropsInternal, ProviderResult, RegisteredColorThemeName, RegisteredSurfaceThemeName, ResizeEdge, ResizeMoveEvent, ResourceHintsConfig, RobotsConfig, RootProviderResult, RouterDisableScrollTopConfig, RouterState, ScrollContainerTarget, ScrollItemTarget, ScrollSnapOrigin, ScrollSnapTarget, ScrollToElementOptions, SeoConfig, SetupScrollRestorationConfig, SignalAnimatedNumberOptions, SignalElementBindingComplexType, SignalElementBindingType, SignalElementIntersectionOptions, SignalElementScrollStateOptions, SocialMediaConfig, StaticProviderResult, StringTemplate, StructuredDataConfig, StyleManager, SurfaceContextEntry, SurfaceContextTracker, SurfaceInteractionColor, SurfaceTheme, SurfaceThemeColor, SurfaceType, SwipeEndEvent, SwipeTracker, SwipeUpdateEvent, SyncSignalOptions, TemplateRefWithContext, ThemeColor, ThemeColorMap, ThemeHSLColor, ThemeInkColorMap, ThemeRGBColor, ThemeSwatch, TitleConfig, TitlePart, Translatable, TwitterCard, TwitterCardConfig, TypedBreakpointSignal, UnbindPropsOptions, ValidateAtLeastOneRequiredConfig, Vec2, ViewportConfig };