@ethlete/core 5.0.0-next.39 → 5.0.0-next.40

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @ethlete/core
2
2
 
3
+ ## 5.0.0-next.40
4
+
5
+ ### Minor Changes
6
+
7
+ - [#3045](https://github.com/ethlete-io/ethdk/pull/3045) [`e660b34`](https://github.com/ethlete-io/ethdk/commit/e660b34d6b791296733824b6ae2bf48ab7a1c5b6) Thanks [@github-actions](https://github.com/apps/github-actions)! - Add `injectDefaultColorTheme()`, resolving the `ColorTheme` marked `isDefault: true` for components with no themed ancestor to inherit from.
8
+
9
+ ### Patch Changes
10
+
11
+ - [#3045](https://github.com/ethlete-io/ethdk/pull/3045) [`26909f9`](https://github.com/ethlete-io/ethdk/commit/26909f9bce86f379e900e588b733719414ea7add) Thanks [@github-actions](https://github.com/apps/github-actions)! - The deprecated `createTailwindRgbVar` now returns `string` instead of `string | null` when called with
12
+ a defined value.
13
+
14
+ - [#3045](https://github.com/ethlete-io/ethdk/pull/3045) [`1fb193c`](https://github.com/ethlete-io/ethdk/commit/1fb193c0e494357cbfb8a6a6428643b114c177f8) Thanks [@github-actions](https://github.com/apps/github-actions)! - Overlay dialogs, sheets and full-screen dialogs now skip their enter/leave motion under `prefers-reduced-motion`, matching tooltip/menu/toggletip. Fixes the animation lifecycle getting stuck under reduced motion, which could leave focus and `overlayRef.afterOpened()` never firing.
15
+
16
+ - [#3045](https://github.com/ethlete-io/ethdk/pull/3045) [`019edcc`](https://github.com/ethlete-io/ethdk/commit/019edcc95e372166ec6332a9fb99758de50af178) Thanks [@github-actions](https://github.com/apps/github-actions)! - Overlay: raise the shared overlay root's z-index above the query devtools panel, so a menu/tooltip/dialog opened from inside the devtools (e.g. its response override menu) is no longer rendered behind the panel.
17
+
3
18
  ## 5.0.0-next.39
4
19
 
5
20
  ### Patch Changes
@@ -253,8 +253,7 @@ const maybeMergeValues = (defaultValue, valueOverride) => {
253
253
 
254
254
  const cloneFormGroup = (formGroup) => {
255
255
  const cloneLevel = (group, cloneGroup) => {
256
- Object.keys(group.controls).forEach((key) => {
257
- const control = group.controls[key];
256
+ Object.entries(group.controls).forEach(([key, control]) => {
258
257
  if (control instanceof FormGroup) {
259
258
  const cloneControl = new FormGroup({}, control.validator, control.asyncValidator);
260
259
  cloneGroup.addControl(key, cloneControl);
@@ -289,8 +288,7 @@ const cloneFormGroup = (formGroup) => {
289
288
  };
290
289
  const getFormGroupValue = (formGroup) => {
291
290
  const value = {};
292
- Object.keys(formGroup.controls).forEach((key) => {
293
- const control = formGroup.controls[key];
291
+ Object.entries(formGroup.controls).forEach(([key, control]) => {
294
292
  if (control instanceof FormGroup) {
295
293
  value[key] = getFormGroupValue(control);
296
294
  }
@@ -452,7 +450,7 @@ const copyToClipboardViaExecCommand = (text) => {
452
450
  return didCopy;
453
451
  };
454
452
 
455
- /* eslint-disable no-var */
453
+ /* eslint-disable no-var, @typescript-eslint/no-non-null-assertion -- kept as upstream */
456
454
  /**
457
455
  * Stolen from klona to avoid adding a dependency
458
456
  * https://github.com/lukeed/klona
@@ -3428,6 +3426,7 @@ const findList = (html) => {
3428
3426
  const open = /<(ul|ol)\b[^>]*>/i.exec(html);
3429
3427
  if (!open)
3430
3428
  return null;
3429
+ const openTagName = open[1] ?? '';
3431
3430
  const innerStart = open.index + open[0].length;
3432
3431
  const tag = /<(\/?)(?:ul|ol)\b[^>]*>/gi;
3433
3432
  tag.lastIndex = innerStart;
@@ -3439,7 +3438,7 @@ const findList = (html) => {
3439
3438
  return {
3440
3439
  start: open.index,
3441
3440
  end: tag.lastIndex,
3442
- ordered: open[1].toLowerCase() === 'ol',
3441
+ ordered: openTagName.toLowerCase() === 'ol',
3443
3442
  inner: html.slice(innerStart, match.index),
3444
3443
  };
3445
3444
  }
@@ -3570,13 +3569,14 @@ const buildListHtml = (lines, start, baseIndent) => {
3570
3569
  const ordered = lines[start]?.ordered ?? false;
3571
3570
  let items = '';
3572
3571
  let i = start;
3573
- while (i < lines.length && (lines[i]?.indent ?? -1) === baseIndent) {
3574
- let item = processInline(lines[i].text);
3572
+ for (let line = lines[i]; line?.indent === baseIndent; line = lines[i]) {
3573
+ let item = processInline(line.text);
3575
3574
  i++;
3576
- if (i < lines.length && (lines[i]?.indent ?? -1) > baseIndent) {
3577
- const nested = buildListHtml(lines, i, lines[i].indent);
3578
- item += nested.html;
3579
- i = nested.next;
3575
+ const nested = lines[i];
3576
+ if (nested && nested.indent > baseIndent) {
3577
+ const built = buildListHtml(lines, i, nested.indent);
3578
+ item += built.html;
3579
+ i = built.next;
3580
3580
  }
3581
3581
  items += `<li>${item}</li>`;
3582
3582
  }
@@ -3655,8 +3655,9 @@ const markdownToHtml = (markdown) => {
3655
3655
  // List (unordered/ordered, with indentation-based nesting)
3656
3656
  if (/^([-*+]|\d+\.)\s/.test(trimmed)) {
3657
3657
  const lines = parseListLines(trimmed.split('\n'));
3658
- if (lines.length > 0) {
3659
- return buildListHtml(lines, 0, lines[0].indent).html;
3658
+ const [firstLine] = lines;
3659
+ if (firstLine) {
3660
+ return buildListHtml(lines, 0, firstLine.indent).html;
3660
3661
  }
3661
3662
  }
3662
3663
  // Paragraph - single newlines within a block become <br>
@@ -3950,7 +3951,7 @@ const createSwipeTracker = (startEvent) => {
3950
3951
  // timestamp, which is never earlier, so this always keeps a superset of what it needs.
3951
3952
  const cutoff = now - SWIPE_VELOCITY_WINDOW_MS;
3952
3953
  let dropCount = 0;
3953
- while (dropCount + 1 < samples.length && samples[dropCount + 1].t < cutoff)
3954
+ for (let next = samples[dropCount + 1]; next && next.t < cutoff; next = samples[dropCount + 1])
3954
3955
  dropCount++;
3955
3956
  if (dropCount)
3956
3957
  samples = samples.slice(dropCount);
@@ -3983,12 +3984,14 @@ const createSwipeTracker = (startEvent) => {
3983
3984
  // carries no momentum no matter how fast it started out.
3984
3985
  if (firstInWindow === -1)
3985
3986
  return { x: 0, y: 0 };
3986
- const newest = samples[samples.length - 1];
3987
+ const newest = samples.at(-1);
3987
3988
  // Measure across the window when it holds a span of its own. With a single sample in it - a
3988
3989
  // pointer emitting moves slower than the window - reach back one sample for a baseline instead
3989
3990
  // of reporting nothing.
3990
3991
  const hasSpanInWindow = samples.length - firstInWindow >= 2;
3991
3992
  const baseline = samples[hasSpanInWindow ? firstInWindow : Math.max(0, firstInWindow - 1)];
3993
+ if (!newest || !baseline)
3994
+ return { x: 0, y: 0 };
3992
3995
  const elapsed = newest.t - baseline.t;
3993
3996
  if (elapsed <= 0)
3994
3997
  return { x: 0, y: 0 };
@@ -4491,20 +4494,35 @@ class AnimatedLifecycleDirective {
4491
4494
  this.removeClass(fromClass);
4492
4495
  this.addClass(toClass);
4493
4496
  }
4494
- }), switchMap(() => this.animatable.animationEnd$), filter(() => this.state$.value === expectedState), switchMap((e) => {
4495
- if (!e.cancelled && e.transitionId === transitionId) {
4497
+ }), switchMap(() => this.animatable.isAnimating$), take(1), switchMap((isAnimating) => {
4498
+ if (isAnimating)
4499
+ return of(true);
4500
+ // Nothing started yet on the first check - give a transition with a delay one more
4501
+ // frame before concluding none is coming (mirrors handleInterruptedTransition).
4502
+ return fromNextFrame().pipe(switchMap(() => this.animatable.isAnimating$), take(1));
4503
+ }), switchMap((isAnimating) => {
4504
+ if (!isAnimating) {
4505
+ // No transition ever started - e.g. `prefers-reduced-motion` collapsed every
4506
+ // transition-duration to 0, which per spec never fires transitionrun/transitionend.
4507
+ // Waiting on animationEnd$ here would hang forever, so treat it as settled.
4508
+ this.debugLog(`${transitionId}: completes via fallback (no transition started)`);
4496
4509
  return of(true);
4497
4510
  }
4498
- // The batch ended cancelled or under a different id - e.g. the browser cancelled and
4499
- // restarted a running transition mid-flight (an anchored overlay whose ancestor pane got
4500
- // destroyed) or a foreign transition on the same element finished. If nothing is
4501
- // animating anymore the expected end event can never arrive, so treat the transition as
4502
- // settled instead of waiting forever (mirrors the fallback in handleInterruptedTransition).
4503
- return this.animatable.isAnimating$.pipe(take(1), tap((stillAnimating) => {
4504
- if (!stillAnimating) {
4505
- this.debugLog(`${transitionId}: completes via fallback (batch id "${e.transitionId ?? 'none'}", cancelled ${e.cancelled})`);
4511
+ return this.animatable.animationEnd$.pipe(filter(() => this.state$.value === expectedState), switchMap((e) => {
4512
+ if (!e.cancelled && e.transitionId === transitionId) {
4513
+ return of(true);
4506
4514
  }
4507
- }), map((stillAnimating) => !stillAnimating));
4515
+ // The batch ended cancelled or under a different id - e.g. the browser cancelled and
4516
+ // restarted a running transition mid-flight (an anchored overlay whose ancestor pane got
4517
+ // destroyed) or a foreign transition on the same element finished. If nothing is
4518
+ // animating anymore the expected end event can never arrive, so treat the transition as
4519
+ // settled instead of waiting forever (mirrors the fallback in handleInterruptedTransition).
4520
+ return this.animatable.isAnimating$.pipe(take(1), tap((stillAnimating) => {
4521
+ if (!stillAnimating) {
4522
+ this.debugLog(`${transitionId}: completes via fallback (batch id "${e.transitionId ?? 'none'}", cancelled ${e.cancelled})`);
4523
+ }
4524
+ }), map((stillAnimating) => !stillAnimating));
4525
+ }));
4508
4526
  }), filter((settled) => settled && this.state$.value === expectedState), tap(onComplete), take(1), takeUntil(cancelSignal), takeUntilDestroyed(this.destroyRef))
4509
4527
  .subscribe();
4510
4528
  }
@@ -5683,7 +5701,10 @@ const OVERLAY_RUNTIME_DEF = /* @__PURE__ */ defineRootProvider(() => {
5683
5701
  right: '0',
5684
5702
  bottom: '0',
5685
5703
  pointerEvents: 'none',
5686
- zIndex: '1000',
5704
+ // Above the query devtools panel's own near-int32-max z-index (it must outrank an arbitrary
5705
+ // host app), so an overlay opened from inside the devtools - e.g. its override menu - isn't
5706
+ // rendered behind the panel that triggered it.
5707
+ zIndex: '2147483003',
5687
5708
  });
5688
5709
  renderer.appendChild(document.body, rootElement);
5689
5710
  return rootElement;
@@ -6595,7 +6616,12 @@ const createElementDictionary = () => {
6595
6616
  ...(ngDevMode ? [{ debugName: "firstId" }] : /* istanbul ignore next */ []));
6596
6617
  const ids = computed(() => dictionary.ids(), /* @ts-ignore */
6597
6618
  ...(ngDevMode ? [{ debugName: "ids" }] : /* istanbul ignore next */ []));
6598
- const elements = computed(() => ids().map((id) => dictionary.elements()[id]), /* @ts-ignore */
6619
+ const elements = computed(() => {
6620
+ const byId = dictionary.elements();
6621
+ return ids()
6622
+ .map((id) => byId[id])
6623
+ .filter((element) => !!element);
6624
+ }, /* @ts-ignore */
6599
6625
  ...(ngDevMode ? [{ debugName: "elements" }] : /* istanbul ignore next */ []));
6600
6626
  const isEmpty = computed(() => dictionary.ids().length === 0, /* @ts-ignore */
6601
6627
  ...(ngDevMode ? [{ debugName: "isEmpty" }] : /* istanbul ignore next */ []));
@@ -6752,12 +6778,12 @@ const createDependencyStash = (stash) => {
6752
6778
  const provideSignal = (data) => {
6753
6779
  runInInjectionContext(injector, () => {
6754
6780
  effect(() => {
6755
- stash[data.for].set(data.signal());
6781
+ stash[data.for]?.set(data.signal());
6756
6782
  });
6757
6783
  });
6758
6784
  };
6759
6785
  const provideValue = (data) => {
6760
- stash[data.for].set(data.value);
6786
+ stash[data.for]?.set(data.value);
6761
6787
  };
6762
6788
  return {
6763
6789
  ...stash,
@@ -8181,7 +8207,7 @@ const SURFACE_TYPE = {
8181
8207
  LIGHT: 'light',
8182
8208
  DARK: 'dark',
8183
8209
  };
8184
- const createCssSurfaceName = (name) => name.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`);
8210
+ const createCssSurfaceName = (name) => name.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);
8185
8211
  const resolveSurfaceByElevation = (themes, type, elevation) => themes.find((t) => t.type === type && t.elevation === elevation) ?? null;
8186
8212
  const SURFACE_THEMES_DEF = /* @__PURE__ */ defineStaticProvider(undefined, {
8187
8213
  name: 'Surface Themes',
@@ -8465,7 +8491,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
8465
8491
  }]
8466
8492
  }], ctorParameters: () => [], propDecorators: { surfaceProvider: [{ type: i0.Input, args: [{ isSignal: true, alias: "surfaceProvider", required: false }] }] } });
8467
8493
 
8468
- const createCssColorThemeName = (name) => name.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`);
8494
+ const createCssColorThemeName = (name) => name.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);
8469
8495
  const COLOR_THEMES_DEF = /* @__PURE__ */ defineStaticProvider(undefined, {
8470
8496
  name: 'Color Themes',
8471
8497
  });
@@ -8500,6 +8526,23 @@ const injectColorThemeByType = (type) => {
8500
8526
  const injectErrorTheme = () => injectColorThemeByType('error');
8501
8527
  const injectWarningTheme = () => injectColorThemeByType('warning');
8502
8528
  const injectSuccessTheme = () => injectColorThemeByType('success');
8529
+ const injectDefaultColorTheme = () => {
8530
+ const themes = injectColorThemes();
8531
+ if (!themes) {
8532
+ throw new Error(`[injectDefaultColorTheme] No color themes provided. Call provideColorThemesWithTailwind4() in your app config.`);
8533
+ }
8534
+ const theme = themes.find((t) => t.isDefault);
8535
+ if (!theme) {
8536
+ throw new Error(`[injectDefaultColorTheme] No color theme with isDefault: true found. Mark one theme as the default in provideColorThemesWithTailwind4().`);
8537
+ }
8538
+ if (isDevMode()) {
8539
+ const duplicates = themes.filter((t) => t.isDefault);
8540
+ if (duplicates.length > 1) {
8541
+ console.error(`[injectDefaultColorTheme] Multiple themes with isDefault: true found: ${duplicates.map((t) => t.name).join(', ')}. Only the first one will be used.`);
8542
+ }
8543
+ }
8544
+ return theme;
8545
+ };
8503
8546
 
8504
8547
  /**
8505
8548
  * @deprecated Migrate to Tailwind v4. Intent to remove in v6.
@@ -8616,10 +8659,9 @@ const createThemeStyle = (theme, isAlt) => {
8616
8659
  * @deprecated Migrate to Tailwind v4. Intent to remove in v6.
8617
8660
  */
8618
8661
  const createTailwindCssVar = (name) => (name ? `rgb(var(--${name}) / <alpha-value>)` : null);
8619
- /**
8620
- * @deprecated Migrate to Tailwind v4. Intent to remove in v6.
8621
- */
8622
- const createTailwindRgbVar = (val) => (val ? `rgb(${val} / <alpha-value>)` : null);
8662
+ function createTailwindRgbVar(val) {
8663
+ return val ? `rgb(${val} / <alpha-value>)` : null;
8664
+ }
8623
8665
  /**
8624
8666
  * @deprecated Migrate to Tailwind v4. Intent to remove in v6.
8625
8667
  */
@@ -9256,5 +9298,5 @@ const createUnsavedChangesGuard = (config) => {
9256
9298
  * Generated bundle index. Do not edit.
9257
9299
  */
9258
9300
 
9259
- export { ANIMATABLE_TOKEN, ANIMATED_IF_TOKEN, ANIMATED_LIFECYCLE_TOKEN, ANIMATION_DEBUG_STORAGE_KEY, AT_LEAST_ONE_REQUIRED, AnimatableDirective, AnimatedIfDirective, AnimatedLifecycleDirective, 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 as JsonLD, KeyPressManager, MUST_MATCH, MarkdownToHtmlPipe, MustMatch, NOTIFICATION_CLICK_MESSAGE_TYPE, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, PropsDirective, ProvideColorDirective, ProvideSurfaceDirective, RUNTIME_ERROR_NO_DATA, RepeatDirective, ResizeHandlesComponent, RuntimeError, SEO_DIRECTIVE_TOKEN, SURFACE_PROVIDER, SURFACE_TYPE, SWIPE_VELOCITY_WINDOW_MS, ScrollObserverDirective, ScrollObserverEndDirective, ScrollObserverStartDirective, SeoDirective, SlugifyPipe, StructuredDataComponent, SurfaceInteractiveDirective, ToArrayPipe, TypedQueryList, UNSAVED_CHANGES_TITLE_MARKER, ValidateAtLeastOneRequired, Validators, anchoredOverlayPosition, animationDebugLog, applyAlternateBinding, applyAlternateLanguagesBindings, applyArticleBindings, applyAuthorBinding, applyCanonicalBinding, applyCenteredPosition, applyDescriptionBinding, applyFaviconOverlay, applyGlobalPosition, applyHeadBinding, applyHeadTitleBinding, applyHeadTitleMarker, 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, createRootThemeCss, createRoute, createRouterState, createRxHostListener, createSessionMemory, createSetup, createSwatchCss, createSwipeTracker, createTailwindColorThemes, createTailwindCssVar, createTailwindRgbVar, createThemeStyle, createUnsavedChangesGuard, createUnsavedChangesTabLock, createUnsavedChangesTracker, createUserConsentProvider, deferredSignal, defineLabels, defineProvider, defineRootProvider, defineStaticProvider, defineStaticRootProvider, deleteCookie, dragGestureFrom, easeElastic, easeIn, easeInOut, easeLinear, easeOut, easeOutBack, easeOutBackStrong, elementCanScroll, enableAnchoredOverlayPositionExtras, equal, firstElementSignal, focusElement, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getElementScrollCoordinates, getFocusableElements, getFormGroupValue, getGroupMatchPoints, getGroupMatchScore, getHeadingElement, getKnockoutMatchScore, getMatchScoreSubLine, getObjectProperty, getScrollContainerTarget, getScrollItemTarget, getScrollSnapTarget, hasCookie, holdScrollRestoration, htmlToMarkdown, inferMimeType, initials, injectAngularRootElement, injectAnimatedBlockSize, injectBoundaryElement, injectBreakpointInput, injectBreakpointIsMatched, injectBreakpointObserver, injectCanHover, injectColorThemes, injectColorThemesPrefix, injectCurrentBreakpoint, injectDeviceInputType, injectDisplayOrientation, injectErrorTheme, injectFaviconStore, injectFocusVisibleTracker, injectFragment, injectHasPrecisionInput, injectHasTouchInput, injectHostElement, injectIs2Xl, injectIsDocumentVisible, injectIsLandscape, injectIsLg, injectIsMd, injectIsPortrait, injectIsRouterInitialized, injectIsSm, injectIsXl, injectIsXs, injectLinkStore, injectLinkStoreConfig, injectLocale, injectMediaQueryIsMatched, injectMetaConfig, injectMetaStore, injectNotifications, injectObserveBreakpoint, injectObserveMediaQuery, injectOverlayRuntime, injectPathParam, injectPathParamChanges, injectPathParams, injectPrefersReducedMotion, injectQueryParam, injectQueryParamChanges, injectQueryParams, injectRenderer, injectRoute, injectRouteData, injectRouteDataItem, injectRouteTitle, injectRouterEvent, injectRouterNavigationState, injectRouterState, injectScrollbarDimensions, injectStructuredDataConfig, injectStructuredDataStore, injectStyleManager, injectSuccessTheme, injectSurfaceContextTracker, injectSurfaceThemes, injectSurfaceThemesPrefix, injectTemplateRef, injectTitleConfig, injectTitleStore, injectUnsavedChangesCoordinator, injectUrl, injectViewportConfig, injectViewportDimensions, injectViewportSize, injectWarningTheme, isAnimationDebugEnabled, isArray, isElementSignal, isElementVisible, isFocusable, isGroupMatch, isHTMLElement, isKnockoutMatch, isObject, markdownToHtml, matchesReducedMotion, maybeSignalValue, memoizeSignal, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, normalizeUnsavedChangesSource, numberBreakpointAttribute, numberBreakpointTransform, previousSignalValue, provideBoundaryElement, provideBreakpointInstance, provideBreakpointObserver, provideColorThemes, provideColorThemesWithTailwind4, provideFaviconStore, provideFocusVisibleTracker, provideLinkStore, provideLinkStoreConfig, provideLocale, provideMetaConfig, provideMetaStore, provideNotifications, provideOverlayRuntime, provideRenderer, provideStructuredDataConfig, provideStructuredDataStore, provideStyleManager, provideSurfaceContextTracker, provideSurfaceThemesWithTailwind4, provideTitleConfig, provideTitleStore, provideUnsavedChangesCoordinator, provideViewportConfig, randomId, readFromClipboard, registerAnchoredPositionMiddlewareExtras, registerAnchoredPositionSetup, 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, toInjectFn, toProvideFn, toStringBinding, toToken, transformOrReturn, typedBreakpointTransform, unbindProps, useCursorDragScroll, writeScrollbarSizeToCssVariables, writeViewportSizeToCssVariables, ɵProvideColorThemes, ɵProvideColorThemesPrefix, ɵProvideSurfaceThemes, ɵProvideSurfaceThemesPrefix };
9301
+ export { ANIMATABLE_TOKEN, ANIMATED_IF_TOKEN, ANIMATED_LIFECYCLE_TOKEN, ANIMATION_DEBUG_STORAGE_KEY, AT_LEAST_ONE_REQUIRED, AnimatableDirective, AnimatedIfDirective, AnimatedLifecycleDirective, 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 as JsonLD, KeyPressManager, MUST_MATCH, MarkdownToHtmlPipe, MustMatch, NOTIFICATION_CLICK_MESSAGE_TYPE, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, PropsDirective, ProvideColorDirective, ProvideSurfaceDirective, RUNTIME_ERROR_NO_DATA, RepeatDirective, ResizeHandlesComponent, RuntimeError, SEO_DIRECTIVE_TOKEN, SURFACE_PROVIDER, SURFACE_TYPE, SWIPE_VELOCITY_WINDOW_MS, ScrollObserverDirective, ScrollObserverEndDirective, ScrollObserverStartDirective, SeoDirective, SlugifyPipe, StructuredDataComponent, SurfaceInteractiveDirective, ToArrayPipe, TypedQueryList, UNSAVED_CHANGES_TITLE_MARKER, ValidateAtLeastOneRequired, Validators, anchoredOverlayPosition, animationDebugLog, applyAlternateBinding, applyAlternateLanguagesBindings, applyArticleBindings, applyAuthorBinding, applyCanonicalBinding, applyCenteredPosition, applyDescriptionBinding, applyFaviconOverlay, applyGlobalPosition, applyHeadBinding, applyHeadTitleBinding, applyHeadTitleMarker, 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, createRootThemeCss, createRoute, createRouterState, createRxHostListener, createSessionMemory, createSetup, createSwatchCss, createSwipeTracker, createTailwindColorThemes, createTailwindCssVar, createTailwindRgbVar, createThemeStyle, createUnsavedChangesGuard, createUnsavedChangesTabLock, createUnsavedChangesTracker, createUserConsentProvider, deferredSignal, defineLabels, defineProvider, defineRootProvider, defineStaticProvider, defineStaticRootProvider, deleteCookie, dragGestureFrom, easeElastic, easeIn, easeInOut, easeLinear, easeOut, easeOutBack, easeOutBackStrong, elementCanScroll, enableAnchoredOverlayPositionExtras, equal, firstElementSignal, focusElement, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getElementScrollCoordinates, getFocusableElements, getFormGroupValue, getGroupMatchPoints, getGroupMatchScore, getHeadingElement, getKnockoutMatchScore, getMatchScoreSubLine, getObjectProperty, getScrollContainerTarget, getScrollItemTarget, getScrollSnapTarget, hasCookie, holdScrollRestoration, htmlToMarkdown, inferMimeType, initials, injectAngularRootElement, injectAnimatedBlockSize, injectBoundaryElement, injectBreakpointInput, injectBreakpointIsMatched, injectBreakpointObserver, injectCanHover, injectColorThemes, injectColorThemesPrefix, injectCurrentBreakpoint, injectDefaultColorTheme, injectDeviceInputType, injectDisplayOrientation, injectErrorTheme, injectFaviconStore, injectFocusVisibleTracker, injectFragment, injectHasPrecisionInput, injectHasTouchInput, injectHostElement, injectIs2Xl, injectIsDocumentVisible, injectIsLandscape, injectIsLg, injectIsMd, injectIsPortrait, injectIsRouterInitialized, injectIsSm, injectIsXl, injectIsXs, injectLinkStore, injectLinkStoreConfig, injectLocale, injectMediaQueryIsMatched, injectMetaConfig, injectMetaStore, injectNotifications, injectObserveBreakpoint, injectObserveMediaQuery, injectOverlayRuntime, injectPathParam, injectPathParamChanges, injectPathParams, injectPrefersReducedMotion, injectQueryParam, injectQueryParamChanges, injectQueryParams, injectRenderer, injectRoute, injectRouteData, injectRouteDataItem, injectRouteTitle, injectRouterEvent, injectRouterNavigationState, injectRouterState, injectScrollbarDimensions, injectStructuredDataConfig, injectStructuredDataStore, injectStyleManager, injectSuccessTheme, injectSurfaceContextTracker, injectSurfaceThemes, injectSurfaceThemesPrefix, injectTemplateRef, injectTitleConfig, injectTitleStore, injectUnsavedChangesCoordinator, injectUrl, injectViewportConfig, injectViewportDimensions, injectViewportSize, injectWarningTheme, isAnimationDebugEnabled, isArray, isElementSignal, isElementVisible, isFocusable, isGroupMatch, isHTMLElement, isKnockoutMatch, isObject, markdownToHtml, matchesReducedMotion, maybeSignalValue, memoizeSignal, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, normalizeUnsavedChangesSource, numberBreakpointAttribute, numberBreakpointTransform, previousSignalValue, provideBoundaryElement, provideBreakpointInstance, provideBreakpointObserver, provideColorThemes, provideColorThemesWithTailwind4, provideFaviconStore, provideFocusVisibleTracker, provideLinkStore, provideLinkStoreConfig, provideLocale, provideMetaConfig, provideMetaStore, provideNotifications, provideOverlayRuntime, provideRenderer, provideStructuredDataConfig, provideStructuredDataStore, provideStyleManager, provideSurfaceContextTracker, provideSurfaceThemesWithTailwind4, provideTitleConfig, provideTitleStore, provideUnsavedChangesCoordinator, provideViewportConfig, randomId, readFromClipboard, registerAnchoredPositionMiddlewareExtras, registerAnchoredPositionSetup, 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, toInjectFn, toProvideFn, toStringBinding, toToken, transformOrReturn, typedBreakpointTransform, unbindProps, useCursorDragScroll, writeScrollbarSizeToCssVariables, writeViewportSizeToCssVariables, ɵProvideColorThemes, ɵProvideColorThemesPrefix, ɵProvideSurfaceThemes, ɵProvideSurfaceThemesPrefix };
9260
9302
  //# sourceMappingURL=ethlete-core.mjs.map