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

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,16 @@
1
1
  # @ethlete/core
2
2
 
3
+ ## 5.0.0-next.41
4
+
5
+ ### Major Changes
6
+
7
+ - [#3046](https://github.com/ethlete-io/ethdk/pull/3046) [`263dae8`](https://github.com/ethlete-io/ethdk/commit/263dae89d864db2a05541f373a2a1b7d2e75c42f) Thanks [@github-actions](https://github.com/apps/github-actions)! - Remove the deprecated, SSR-unsafe `SeoDirective` and its `SeoConfig` types - use the `apply*Binding` functions instead (the SEO guide has a per-key migration table).
8
+
9
+ ### Minor Changes
10
+
11
+ - [#3046](https://github.com/ethlete-io/ethdk/pull/3046) [`5b94adc`](https://github.com/ethlete-io/ethdk/commit/5b94adc97abb32555fb462fad71cbe27fc733a4a) Thanks [@github-actions](https://github.com/apps/github-actions)! - Select and cascader panels now stay below the field with a shorter list instead of flipping
12
+ above it or sliding over it, via the new anchored-overlay `minAvailableSpace` option.
13
+
3
14
  ## 5.0.0-next.40
4
15
 
5
16
  ### Minor Changes
@@ -5443,9 +5443,65 @@ const requireMiddlewareExtras = (feature) => {
5443
5443
  }
5444
5444
  return middlewareExtras;
5445
5445
  };
5446
+ const OPPOSITE_SIDE = {
5447
+ top: 'bottom',
5448
+ bottom: 'top',
5449
+ left: 'right',
5450
+ right: 'left',
5451
+ };
5452
+ const PREFERRED_SIDE_NAME = 'etPreferredSide';
5453
+ const getAnchoredSide = (placement) => placement.split('-')[0];
5454
+ const toOppositeSidePlacement = (placement) => {
5455
+ const [side, alignment] = placement.split('-');
5456
+ const opposite = OPPOSITE_SIDE[side];
5457
+ return (alignment ? `${opposite}-${alignment}` : opposite);
5458
+ };
5459
+ /**
5460
+ * The `flip` replacement behind `minAvailableSpace` - see that option. Every decision here has to
5461
+ * stay derived from the space around the reference alone: the moment the pane's own size enters it,
5462
+ * `size`'s cap feeds back into the next placement and an open pane starts flipping on its own.
5463
+ */
5464
+ const preferredSide = (options) => ({
5465
+ name: PREFERRED_SIDE_NAME,
5466
+ options,
5467
+ async fn(state) {
5468
+ const { placement, initialPlacement, rects, middlewareData } = state;
5469
+ const side = getAnchoredSide(placement);
5470
+ // via the platform, like every built-in middleware - importing `detectOverflow` from
5471
+ // `@floating-ui/dom` instead pulls a second copy of it into the bundle
5472
+ const overflow = await state.platform.detectOverflow(state, {
5473
+ padding: options.padding,
5474
+ boundary: options.boundary,
5475
+ });
5476
+ const isYAxis = side === 'top' || side === 'bottom';
5477
+ // the pane's own size cancels out of `size - overflow[side]`: what remains is the distance from
5478
+ // its anchored edge to the boundary - the same number the `size` middleware caps the pane to
5479
+ const available = (isYAxis ? rects.floating.height : rects.floating.width) - overflow[side];
5480
+ const availableSpace = {
5481
+ ...middlewareData[PREFERRED_SIDE_NAME]?.availableSpace,
5482
+ [side]: available,
5483
+ };
5484
+ if (available >= options.minAvailableSpace) {
5485
+ return {};
5486
+ }
5487
+ const oppositeAvailable = availableSpace[OPPOSITE_SIDE[side]];
5488
+ if (oppositeAvailable === undefined) {
5489
+ return { data: { availableSpace }, reset: { placement: toOppositeSidePlacement(placement) } };
5490
+ }
5491
+ // ties go to the placement's own side, which also terminates the reset loop after at most one
5492
+ // measurement per side
5493
+ const keepSide = side === getAnchoredSide(initialPlacement) ? available >= oppositeAvailable : available > oppositeAvailable;
5494
+ return keepSide
5495
+ ? { data: { availableSpace } }
5496
+ : { data: { availableSpace }, reset: { placement: toOppositeSidePlacement(placement) } };
5497
+ },
5498
+ });
5446
5499
  const createAnchoredPositionCleanup = (strategy, paneElement, overlayRef, renderer) => {
5447
5500
  // mirrorWidth needs a real element to measure; virtual references fall back to max-content
5448
5501
  const mirrorWidthElement = strategy.mirrorWidth && isHTMLElement(strategy.referenceElement) ? strategy.referenceElement : null;
5502
+ if (strategy.minAvailableSpace !== undefined && !strategy.autoResize && isDevMode()) {
5503
+ console.error('An anchored overlay sets `minAvailableSpace` without `autoResize`, so it is kept on a side it does not fit on with nothing capping it to the space there. Enable `autoResize` or drop `minAvailableSpace`.');
5504
+ }
5449
5505
  renderer.setStyle(paneElement, {
5450
5506
  position: 'absolute',
5451
5507
  top: '0',
@@ -5456,14 +5512,26 @@ const createAnchoredPositionCleanup = (strategy, paneElement, overlayRef, render
5456
5512
  const arrowElement = paneElement.querySelector('[et-floating-arrow]');
5457
5513
  const middleware = [];
5458
5514
  middleware.push(offset(strategy.offset ?? 8));
5459
- middleware.push(flip({
5460
- fallbackPlacements: strategy.fallbackPlacements ?? undefined,
5461
- fallbackAxisSideDirection: 'start',
5462
- boundary: strategy.boundary,
5463
- }));
5515
+ middleware.push(strategy.minAvailableSpace === undefined
5516
+ ? flip({
5517
+ fallbackPlacements: strategy.fallbackPlacements ?? undefined,
5518
+ fallbackAxisSideDirection: 'start',
5519
+ boundary: strategy.boundary,
5520
+ })
5521
+ : preferredSide({
5522
+ minAvailableSpace: strategy.minAvailableSpace,
5523
+ // must stay the padding `size` measures with: the threshold is then compared against the
5524
+ // very height the pane ends up capped to
5525
+ padding: strategy.viewportPadding ?? 8,
5526
+ boundary: strategy.boundary,
5527
+ }));
5464
5528
  if (strategy.shift !== false) {
5465
5529
  middleware.push(shift({
5466
- crossAxis: typeof strategy.shift === 'object' ? (strategy.shift.crossAxis ?? false) : false,
5530
+ // floating-ui's cross axis points at the reference, so shifting on it slides the pane over
5531
+ // the reference instead of letting it shrink - and `size` then reports the whole boundary
5532
+ // as available height rather than the space on the pane's side
5533
+ crossAxis: strategy.minAvailableSpace === undefined &&
5534
+ (typeof strategy.shift === 'object' ? (strategy.shift.crossAxis ?? false) : false),
5467
5535
  limiter: limitShift(),
5468
5536
  padding: strategy.viewportPadding ?? 8,
5469
5537
  boundary: strategy.boundary,
@@ -7822,169 +7890,6 @@ const applySocialMediaBindings = (config) => {
7822
7890
  applyArticleBindings(config.article);
7823
7891
  };
7824
7892
 
7825
- const mergeSeoConfig = (config, parentConfig) => {
7826
- return {
7827
- ...parentConfig,
7828
- ...config,
7829
- };
7830
- };
7831
- const SEO_DIRECTIVE_TOKEN = new InjectionToken('SEO_DIRECTIVE_TOKEN');
7832
- /** @deprecated use binding utils instead */
7833
- class SeoDirective {
7834
- constructor() {
7835
- this._metaService = inject(Meta);
7836
- this._titleService = inject(Title);
7837
- this._onDeactivate$ = new Subject();
7838
- this._isDeactivated = false;
7839
- this.parent = inject(SEO_DIRECTIVE_TOKEN, { optional: true, skipSelf: true });
7840
- this._config = {};
7841
- }
7842
- get config() {
7843
- return this._config;
7844
- }
7845
- ngOnInit() {
7846
- this.parent?._deactivate();
7847
- }
7848
- ngOnDestroy() {
7849
- this._deactivate();
7850
- this._cleanUp();
7851
- this.parent?._activate();
7852
- }
7853
- updateConfig(config) {
7854
- this._config = mergeSeoConfig(config, this.parent?.config || {});
7855
- if (this._isDeactivated) {
7856
- return;
7857
- }
7858
- this._deactivate();
7859
- this._activate();
7860
- }
7861
- _activate() {
7862
- this._onDeactivate$.next(false);
7863
- this._isDeactivated = false;
7864
- for (const [key, value] of Object.entries(this._config)) {
7865
- if (value instanceof Observable) {
7866
- value.pipe(takeUntil(this._onDeactivate$)).subscribe((value) => this._update(key, value));
7867
- }
7868
- else if (Array.isArray(value)) {
7869
- value.forEach((value) => {
7870
- if (value instanceof Observable) {
7871
- value.pipe(takeUntil(this._onDeactivate$)).subscribe((value) => this._update(key, value));
7872
- }
7873
- else {
7874
- this._update(key, value);
7875
- }
7876
- });
7877
- }
7878
- else if (typeof value === 'object' && value !== null) {
7879
- for (const [subKey, subValue] of Object.entries(value)) {
7880
- if (subValue instanceof Observable) {
7881
- subValue.pipe(takeUntil(this._onDeactivate$)).subscribe((value) => this._update(`${key}:${subKey}`, value));
7882
- }
7883
- else {
7884
- this._update(`${key}:${subKey}`, subValue);
7885
- }
7886
- }
7887
- }
7888
- else {
7889
- this._update(key, value);
7890
- }
7891
- }
7892
- }
7893
- _deactivate() {
7894
- this._onDeactivate$.next(true);
7895
- this._isDeactivated = true;
7896
- }
7897
- _update(key, value) {
7898
- switch (key) {
7899
- case 'title':
7900
- if (value && typeof value === 'string') {
7901
- this._titleService.setTitle(value);
7902
- }
7903
- break;
7904
- case 'canonical':
7905
- {
7906
- const link = document.querySelector(`link[rel="${key}"]`);
7907
- if (link) {
7908
- link.setAttribute('href', value);
7909
- }
7910
- else {
7911
- const newLink = document.createElement('link');
7912
- newLink.setAttribute('rel', key);
7913
- newLink.setAttribute('href', value);
7914
- document.head.appendChild(newLink);
7915
- }
7916
- }
7917
- break;
7918
- case 'alternate':
7919
- {
7920
- const link = document.querySelector(`link[rel="${key}"][hreflang="${value.hreflang}"]`);
7921
- if (link) {
7922
- link.setAttribute('href', value.href);
7923
- }
7924
- else {
7925
- const newLink = document.createElement('link');
7926
- newLink.setAttribute('rel', key);
7927
- newLink.setAttribute('hreflang', value.hreflang);
7928
- newLink.setAttribute('href', value.href);
7929
- document.head.appendChild(newLink);
7930
- }
7931
- }
7932
- break;
7933
- default:
7934
- if (value !== undefined && value !== null) {
7935
- const val = Array.isArray(value) ? value.join(', ') : value;
7936
- this._metaService.updateTag({ name: key, content: val });
7937
- }
7938
- else {
7939
- this._metaService.removeTag(`name="${key}"`);
7940
- }
7941
- break;
7942
- }
7943
- }
7944
- _cleanUp() {
7945
- for (const key in this._config) {
7946
- if (key === 'alternate') {
7947
- const links = document.querySelectorAll(`link[rel="${key}"]`);
7948
- links.forEach((link) => {
7949
- link.remove();
7950
- });
7951
- continue;
7952
- }
7953
- if (key === 'canonical') {
7954
- const link = document.querySelector(`link[rel="${key}"]`);
7955
- if (link) {
7956
- link.remove();
7957
- }
7958
- continue;
7959
- }
7960
- if (typeof this._config[key] === 'object' &&
7961
- this._config[key] !== null &&
7962
- !(this._config[key] instanceof Observable)) {
7963
- for (const subKey in this._config[key]) {
7964
- const parentValue = this.parent?.config?.[key]?.[subKey];
7965
- if (parentValue === undefined) {
7966
- this._update(`${key}:${subKey}`, undefined);
7967
- }
7968
- }
7969
- }
7970
- else {
7971
- const parentValue = this.parent?.config?.[key];
7972
- if (parentValue === undefined) {
7973
- this._update(key, null);
7974
- }
7975
- }
7976
- }
7977
- }
7978
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SeoDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7979
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: SeoDirective, isStandalone: true, providers: [{ provide: SEO_DIRECTIVE_TOKEN, useExisting: SeoDirective }], ngImport: i0 }); }
7980
- }
7981
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SeoDirective, decorators: [{
7982
- type: Directive,
7983
- args: [{
7984
- providers: [{ provide: SEO_DIRECTIVE_TOKEN, useExisting: SeoDirective }],
7985
- }]
7986
- }] });
7987
-
7988
7893
  const STRUCTURED_DATA_CONFIG_DEF = /* @__PURE__ */ defineStaticRootProvider({
7989
7894
  placement: 'body',
7990
7895
  }, { name: 'Structured Data Config' });
@@ -9298,5 +9203,5 @@ const createUnsavedChangesGuard = (config) => {
9298
9203
  * Generated bundle index. Do not edit.
9299
9204
  */
9300
9205
 
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 };
9206
+ 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, SURFACE_PROVIDER, SURFACE_TYPE, SWIPE_VELOCITY_WINDOW_MS, ScrollObserverDirective, ScrollObserverEndDirective, ScrollObserverStartDirective, 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 };
9302
9207
  //# sourceMappingURL=ethlete-core.mjs.map