@ethlete/core 5.0.0-next.5 → 5.0.0-next.7

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,17 @@
1
1
  # @ethlete/core
2
2
 
3
+ ## 5.0.0-next.7
4
+
5
+ ### Patch Changes
6
+
7
+ - [`5ef2e15`](https://github.com/ethlete-io/ethdk/commit/5ef2e15369fcc1939a1a4b157960280571e14b55) Thanks [@TomTomB](https://github.com/TomTomB)! - Version bump for internal api changes
8
+
9
+ ## 5.0.0-next.6
10
+
11
+ ### Minor Changes
12
+
13
+ - [#2926](https://github.com/ethlete-io/ethdk/pull/2926) [`26966e3`](https://github.com/ethlete-io/ethdk/commit/26966e316e58694ef898f60cab7f5fd8a8d34381) Thanks [@github-actions](https://github.com/apps/github-actions)! - Add user consent provider for bridging the gap to cookie banners
14
+
3
15
  ## 5.0.0-next.5
4
16
 
5
17
  ### Minor Changes
@@ -1,12 +1,12 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, ElementRef, Directive, assertInInjectionContext, DestroyRef, TemplateRef, QueryList, NgZone, signal, isSignal, untracked, DOCUMENT, linkedSignal, isDevMode, computed, afterNextRender, effect, Injector, booleanAttribute, numberAttribute, runInInjectionContext, RendererStyleFlags2, PLATFORM_ID, ApplicationRef, RendererFactory2, model, ViewContainerRef, input, output, Pipe, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { InjectionToken, inject, ElementRef, Directive, assertInInjectionContext, DestroyRef, TemplateRef, QueryList, NgZone, signal, isSignal, untracked, DOCUMENT, linkedSignal, isDevMode, computed, afterNextRender, effect, Injector, booleanAttribute, numberAttribute, runInInjectionContext, RendererStyleFlags2, PLATFORM_ID, ApplicationRef, RendererFactory2, EnvironmentInjector, createComponent, model, ViewContainerRef, input, output, Pipe, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { takeUntilDestroyed, toSignal, toObservable, outputFromObservable } from '@angular/core/rxjs-interop';
4
- import { Subject, BehaviorSubject, debounceTime, combineLatest, map, merge, fromEvent, filter, tap, switchMap, startWith, of, timer, takeUntil, pairwise, distinctUntilChanged, take, Observable } from 'rxjs';
4
+ import { Subject, BehaviorSubject, debounceTime, combineLatest, map, merge, fromEvent, filter, tap, switchMap, startWith, of, timer, takeUntil, pairwise, distinctUntilChanged, take, Observable, concatMap, EMPTY, concat, defer, exhaustMap, share } from 'rxjs';
5
5
  import { FormGroup, FormArray, FormControl } from '@angular/forms';
6
6
  import { SIGNAL, signalSetFn } from '@angular/core/primitives/signals';
7
7
  import { BreakpointObserver } from '@angular/cdk/layout';
8
8
  import { coerceElement } from '@angular/cdk/coercion';
9
- import { isPlatformBrowser, DOCUMENT as DOCUMENT$1 } from '@angular/common';
9
+ import { DOCUMENT as DOCUMENT$1, isPlatformBrowser } from '@angular/common';
10
10
  import { Router, NavigationEnd, NavigationSkipped } from '@angular/router';
11
11
  import { Overlay } from '@angular/cdk/overlay';
12
12
  import { ComponentPortal } from '@angular/cdk/portal';
@@ -996,6 +996,31 @@ const signalElementDimensions = (el) => {
996
996
  });
997
997
  };
998
998
  const signalHostElementDimensions = () => signalElementDimensions(inject(ElementRef));
999
+ const injectViewportSize = () => {
1000
+ const document = inject(DOCUMENT$1);
1001
+ const zone = inject(NgZone);
1002
+ const destroyRef = inject(DestroyRef);
1003
+ const getSize = () => {
1004
+ const vv = document.defaultView?.visualViewport;
1005
+ if (vv)
1006
+ return { width: vv.width, height: vv.height };
1007
+ const win = document.defaultView;
1008
+ return { width: win?.innerWidth ?? 0, height: win?.innerHeight ?? 0 };
1009
+ };
1010
+ const size = signal(getSize(), ...(ngDevMode ? [{ debugName: "size" }] : []));
1011
+ const onResize = () => zone.run(() => size.set(getSize()));
1012
+ const vv = document.defaultView?.visualViewport;
1013
+ if (vv) {
1014
+ vv.addEventListener('resize', onResize);
1015
+ destroyRef.onDestroy(() => vv.removeEventListener('resize', onResize));
1016
+ }
1017
+ else {
1018
+ const win = document.defaultView;
1019
+ win?.addEventListener('resize', onResize);
1020
+ destroyRef.onDestroy(() => win?.removeEventListener('resize', onResize));
1021
+ }
1022
+ return size;
1023
+ };
999
1024
 
1000
1025
  const previousSignalValue = (signal) => {
1001
1026
  const obs = toObservable(signal).pipe(pairwise(), map(([prev]) => prev));
@@ -2578,10 +2603,9 @@ const getObjectProperty = (obj, prop) => {
2578
2603
 
2579
2604
  const RUNTIME_ERROR_NO_DATA = '__ET_NO_DATA__';
2580
2605
  class RuntimeError extends Error {
2581
- constructor(code, message, devOnly = false, data = RUNTIME_ERROR_NO_DATA) {
2582
- super(formatRuntimeError(code, message, devOnly));
2606
+ constructor(code, message, data = RUNTIME_ERROR_NO_DATA) {
2607
+ super(formatRuntimeError(code, message));
2583
2608
  this.code = code;
2584
- this.devOnly = devOnly;
2585
2609
  this.data = data;
2586
2610
  if (data !== RUNTIME_ERROR_NO_DATA) {
2587
2611
  try {
@@ -2598,12 +2622,11 @@ class RuntimeError extends Error {
2598
2622
  }
2599
2623
  }
2600
2624
  }
2601
- function formatRuntimeError(code, message, devOnly) {
2625
+ function formatRuntimeError(code, message) {
2602
2626
  // prefix code with zeros if it's less than 100
2603
2627
  const codeWithZeros = code < 10 ? `00${code}` : code < 100 ? `0${code}` : code;
2604
2628
  const fullCode = `ET${codeWithZeros}`;
2605
- const devOnlyText = devOnly ? ' [DEV ONLY] ' : '';
2606
- return `${devOnlyText}${fullCode}${message ? ': ' + message : ''}`;
2629
+ return `${fullCode}${message ? ': ' + message : ''}`;
2607
2630
  }
2608
2631
 
2609
2632
  const [, injectAngularRootElement] = createRootProvider(() => {
@@ -2818,6 +2841,20 @@ const [provideRenderer, injectRenderer] = createRootProvider(() => {
2818
2841
  setAttribute(element, `data-${key}`, value);
2819
2842
  });
2820
2843
  };
2844
+ const moveBefore = (config) => {
2845
+ const { newParent, child, before = null } = config;
2846
+ if ('moveBefore' in newParent) {
2847
+ try {
2848
+ newParent.moveBefore(child, before);
2849
+ }
2850
+ catch {
2851
+ newParent.insertBefore(child, before);
2852
+ }
2853
+ }
2854
+ else {
2855
+ newParent.insertBefore(child, before);
2856
+ }
2857
+ };
2821
2858
  return {
2822
2859
  addClass,
2823
2860
  removeClass,
@@ -2849,10 +2886,72 @@ const [provideRenderer, injectRenderer] = createRootProvider(() => {
2849
2886
  setDataAttributes,
2850
2887
  setCssProperty,
2851
2888
  setCssProperties,
2889
+ moveBefore,
2852
2890
  renderer,
2853
2891
  };
2854
2892
  }, { name: 'Angular Renderer' });
2855
2893
 
2894
+ const [provideStyleManager, injectStyleManager] = createRootProvider(() => {
2895
+ const appRef = inject(ApplicationRef);
2896
+ const destroyRef = inject(DestroyRef);
2897
+ const document = inject(DOCUMENT);
2898
+ const envInjector = inject(EnvironmentInjector);
2899
+ const renderer = injectRenderer();
2900
+ let container = null;
2901
+ const mountedComponents = new Map();
2902
+ const getContainerParent = () => {
2903
+ return document.body ?? document.documentElement;
2904
+ };
2905
+ const ensureContainer = () => {
2906
+ if (container) {
2907
+ return container;
2908
+ }
2909
+ const nextContainer = renderer.createElement('div');
2910
+ renderer.addClass(nextContainer, 'et-style-manager');
2911
+ renderer.setAttribute(nextContainer, 'aria-hidden', 'true');
2912
+ renderer.setStyle(nextContainer, { display: 'none' });
2913
+ renderer.appendChild(getContainerParent(), nextContainer);
2914
+ container = nextContainer;
2915
+ return nextContainer;
2916
+ };
2917
+ const mount = (component) => {
2918
+ const existingComponent = mountedComponents.get(component);
2919
+ if (existingComponent) {
2920
+ return existingComponent;
2921
+ }
2922
+ const componentRef = createComponent(component, { environmentInjector: envInjector });
2923
+ appRef.attachView(componentRef.hostView);
2924
+ renderer.appendChild(ensureContainer(), componentRef.location.nativeElement);
2925
+ mountedComponents.set(component, componentRef);
2926
+ return componentRef;
2927
+ };
2928
+ destroyRef.onDestroy(() => {
2929
+ mountedComponents.forEach((componentRef) => {
2930
+ appRef.detachView(componentRef.hostView);
2931
+ componentRef.destroy();
2932
+ });
2933
+ mountedComponents.clear();
2934
+ if (!container) {
2935
+ return;
2936
+ }
2937
+ const parent = renderer.parentNode(container);
2938
+ if (parent) {
2939
+ renderer.removeChild(parent, container);
2940
+ }
2941
+ container = null;
2942
+ });
2943
+ return { mount };
2944
+ }, { name: 'StyleManager' });
2945
+
2946
+ const createUserConsentProvider = (options) => ({
2947
+ provide: options.for,
2948
+ useFactory: () => ({
2949
+ isGranted: options.isGranted(),
2950
+ grant: options.grant(),
2951
+ ...(options.revoke ? { revoke: options.revoke() } : {}),
2952
+ }),
2953
+ });
2954
+
2856
2955
  const nextFrame = (cb) => {
2857
2956
  requestAnimationFrame(() => {
2858
2957
  requestAnimationFrame(cb);
@@ -3721,6 +3820,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
3721
3820
  }]
3722
3821
  }], ctorParameters: () => [] });
3723
3822
 
3823
+ const setupDragObservable = (startEvent, el, commitThreshold) => {
3824
+ const { pointerId, clientX: startX, clientY: startY } = startEvent;
3825
+ const end$ = merge(fromEvent(document, 'pointerup'), fromEvent(document, 'pointercancel')).pipe(filter((e) => e.pointerId === pointerId), take(1));
3826
+ let lastX = startX;
3827
+ let lastY = startY;
3828
+ let committed = false;
3829
+ const moves$ = fromEvent(document, 'pointermove').pipe(filter((e) => e.pointerId === pointerId), concatMap((e) => {
3830
+ if (!committed) {
3831
+ if (Math.abs(e.clientX - startX) < commitThreshold && Math.abs(e.clientY - startY) < commitThreshold) {
3832
+ return EMPTY;
3833
+ }
3834
+ committed = true;
3835
+ el.setPointerCapture(pointerId);
3836
+ lastX = e.clientX;
3837
+ lastY = e.clientY;
3838
+ return of({ type: 'start' });
3839
+ }
3840
+ const stepX = e.clientX - lastX;
3841
+ const stepY = e.clientY - lastY;
3842
+ lastX = e.clientX;
3843
+ lastY = e.clientY;
3844
+ return of({ type: 'move', data: { stepX, stepY, clientX: e.clientX, clientY: e.clientY } });
3845
+ }), takeUntil(end$));
3846
+ return concat(moves$, defer(() => of(committed ? { type: 'end' } : { type: 'tapped' })));
3847
+ };
3848
+ class DragHandleDirective {
3849
+ constructor() {
3850
+ this.el = inject(ElementRef);
3851
+ this.commitThreshold = input(8, ...(ngDevMode ? [{ debugName: "commitThreshold" }] : []));
3852
+ this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
3853
+ this.gestureStart$ = new Subject();
3854
+ this.gesture$ = this.gestureStart$.pipe(exhaustMap((event) => setupDragObservable(event, this.el.nativeElement, this.commitThreshold())), takeUntilDestroyed(), share());
3855
+ this.dragTapped = outputFromObservable(this.gesture$.pipe(filter((e) => e.type === 'tapped'), map(() => undefined)));
3856
+ this.dragStarted = outputFromObservable(this.gesture$.pipe(filter((e) => e.type === 'start'), map(() => undefined)));
3857
+ this.dragMoved = outputFromObservable(this.gesture$.pipe(filter((e) => e.type === 'move'), map((e) => e.data)));
3858
+ this.dragEnded = outputFromObservable(this.gesture$.pipe(filter((e) => e.type === 'end'), map(() => undefined)));
3859
+ this.isDragging = toSignal(this.gesture$.pipe(map((e) => e.type === 'start' || e.type === 'move'), distinctUntilChanged()), { initialValue: false });
3860
+ applyHostListener('pointerdown', (e) => this.startGesture(e));
3861
+ }
3862
+ startGesture(event) {
3863
+ if (event.button !== 0 || this.disabled())
3864
+ return;
3865
+ event.stopPropagation();
3866
+ this.gestureStart$.next(event);
3867
+ }
3868
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: DragHandleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3869
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.1", type: DragHandleDirective, isStandalone: true, selector: "[etDragHandle]", inputs: { commitThreshold: { classPropertyName: "commitThreshold", publicName: "commitThreshold", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dragTapped: "dragTapped", dragStarted: "dragStarted", dragMoved: "dragMoved", dragEnded: "dragEnded" }, ngImport: i0 }); }
3870
+ }
3871
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: DragHandleDirective, decorators: [{
3872
+ type: Directive,
3873
+ args: [{
3874
+ selector: '[etDragHandle]',
3875
+ }]
3876
+ }], ctorParameters: () => [], propDecorators: { commitThreshold: [{ type: i0.Input, args: [{ isSignal: true, alias: "commitThreshold", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], dragTapped: [{ type: i0.Output, args: ["dragTapped"] }], dragStarted: [{ type: i0.Output, args: ["dragStarted"] }], dragMoved: [{ type: i0.Output, args: ["dragMoved"] }], dragEnded: [{ type: i0.Output, args: ["dragEnded"] }] } });
3877
+
3724
3878
  class NormalizeGameResultTypePipe {
3725
3879
  constructor() {
3726
3880
  this.transform = normalizeGameResultType;
@@ -4534,6 +4688,76 @@ const templateComputed = (templateSignal) => computed(() => {
4534
4688
  };
4535
4689
  });
4536
4690
 
4691
+ const EDGE_CURSORS = {
4692
+ n: 'ns-resize',
4693
+ s: 'ns-resize',
4694
+ e: 'ew-resize',
4695
+ w: 'ew-resize',
4696
+ ne: 'nesw-resize',
4697
+ sw: 'nesw-resize',
4698
+ nw: 'nwse-resize',
4699
+ se: 'nwse-resize',
4700
+ };
4701
+ const setupResizeObservable = (startEvent, edge) => {
4702
+ const pointerId = startEvent.pointerId;
4703
+ const startX = startEvent.clientX;
4704
+ const startY = startEvent.clientY;
4705
+ const end$ = merge(fromEvent(document, 'pointerup'), fromEvent(document, 'pointercancel')).pipe(filter((e) => e.pointerId === pointerId), take(1));
4706
+ return concat(of({ type: 'start', edge }), fromEvent(document, 'pointermove').pipe(filter((e) => e.pointerId === pointerId), map((e) => ({ type: 'move', data: { edge, dx: e.clientX - startX, dy: e.clientY - startY } })), takeUntil(end$)), of({ type: 'end' }));
4707
+ };
4708
+ class ResizeHandlesComponent {
4709
+ constructor() {
4710
+ this.edges = input(['n', 's', 'e', 'w', 'ne', 'nw', 'se', 'sw'], ...(ngDevMode ? [{ debugName: "edges" }] : []));
4711
+ this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
4712
+ this.gestureStart$ = new Subject();
4713
+ this.gesture$ = this.gestureStart$.pipe(exhaustMap(({ event, edge }) => setupResizeObservable(event, edge)), takeUntilDestroyed(), share());
4714
+ this.resizeStarted = outputFromObservable(this.gesture$.pipe(filter((e) => e.type === 'start'), map((e) => e.edge)));
4715
+ this.resizeMoved = outputFromObservable(this.gesture$.pipe(filter((e) => e.type === 'move'), map((e) => e.data)));
4716
+ this.resizeEnded = outputFromObservable(this.gesture$.pipe(filter((e) => e.type === 'end'), map(() => undefined)));
4717
+ this.isResizing = toSignal(this.gesture$.pipe(map((e) => e.type !== 'end'), distinctUntilChanged()), { initialValue: false });
4718
+ this.activeEdge = toSignal(this.gesture$.pipe(map((e) => {
4719
+ if (e.type === 'end')
4720
+ return null;
4721
+ if (e.type === 'start')
4722
+ return e.edge;
4723
+ return e.data.edge;
4724
+ }), distinctUntilChanged()), { initialValue: null });
4725
+ this.edgeCursors = EDGE_CURSORS;
4726
+ }
4727
+ startResizeGesture(event, edge) {
4728
+ if (event.button !== 0 || this.disabled())
4729
+ return;
4730
+ event.stopPropagation();
4731
+ this.gestureStart$.next({ event, edge });
4732
+ }
4733
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ResizeHandlesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4734
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: ResizeHandlesComponent, isStandalone: true, selector: "et-resize-handles", inputs: { edges: { classPropertyName: "edges", publicName: "edges", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { resizeStarted: "resizeStarted", resizeMoved: "resizeMoved", resizeEnded: "resizeEnded" }, host: { properties: { "attr.inert": "disabled() ? \"\" : null", "attr.data-active-edge": "activeEdge()" }, classAttribute: "et-resize-handles" }, ngImport: i0, template: `
4735
+ @for (edge of edges(); track edge) {
4736
+ <div
4737
+ [style.cursor]="edgeCursors[edge]"
4738
+ (pointerdown)="startResizeGesture($event, edge)"
4739
+ class="et-resize-handle et-resize-handle--{{ edge }}"
4740
+ ></div>
4741
+ }
4742
+ `, isInline: true, styles: ["@property --et-resize-handles-z-index{syntax: \"<integer>\"; inherits: true; initial-value: 10;}@property --et-resize-handles-edge-size{syntax: \"<length>\"; inherits: true; initial-value: 6px;}@property --et-resize-handles-corner-size{syntax: \"<length>\"; inherits: true; initial-value: 12px;}@property --et-resize-handles-edge-inset{syntax: \"<length>\"; inherits: true; initial-value: 8px;}@property --et-resize-handles-side-top{syntax: \"<length>\"; inherits: true; initial-value: 0px;}@property --et-resize-handles-side-bottom{syntax: \"<length>\"; inherits: true; initial-value: 8px;}@property --et-resize-handles-touch-edge-size{syntax: \"<length>\"; inherits: true; initial-value: 20px;}@property --et-resize-handles-touch-corner-size{syntax: \"<length>\"; inherits: true; initial-value: 28px;}et-resize-handles{position:absolute;inset:0;pointer-events:none}.et-resize-handle{position:absolute;z-index:var(--et-resize-handles-z-index);touch-action:none;pointer-events:auto}.et-resize-handle--n{left:var(--et-resize-handles-edge-inset);right:var(--et-resize-handles-edge-inset);height:var(--et-resize-handles-edge-size);top:0}.et-resize-handle--s{left:var(--et-resize-handles-edge-inset);right:var(--et-resize-handles-edge-inset);height:var(--et-resize-handles-edge-size);bottom:0}.et-resize-handle--e,.et-resize-handle--w{top:var(--et-resize-handles-side-top);bottom:var(--et-resize-handles-side-bottom);width:var(--et-resize-handles-edge-size)}.et-resize-handle--e{right:0}.et-resize-handle--w{left:0}.et-resize-handle--ne,.et-resize-handle--nw{top:0;width:var(--et-resize-handles-corner-size);height:var(--et-resize-handles-corner-size)}.et-resize-handle--ne{right:0}.et-resize-handle--nw{left:0}.et-resize-handle--se,.et-resize-handle--sw{bottom:0;width:var(--et-resize-handles-corner-size);height:var(--et-resize-handles-corner-size)}.et-resize-handle--se{right:0}.et-resize-handle--sw{left:0}@media(hover:none){.et-resize-handle--n,.et-resize-handle--s{height:var(--et-resize-handles-touch-edge-size)}.et-resize-handle--e,.et-resize-handle--w{width:var(--et-resize-handles-touch-edge-size)}.et-resize-handle--ne,.et-resize-handle--nw,.et-resize-handle--se,.et-resize-handle--sw{width:var(--et-resize-handles-touch-corner-size);height:var(--et-resize-handles-touch-corner-size)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4743
+ }
4744
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ResizeHandlesComponent, decorators: [{
4745
+ type: Component,
4746
+ args: [{ selector: 'et-resize-handles', template: `
4747
+ @for (edge of edges(); track edge) {
4748
+ <div
4749
+ [style.cursor]="edgeCursors[edge]"
4750
+ (pointerdown)="startResizeGesture($event, edge)"
4751
+ class="et-resize-handle et-resize-handle--{{ edge }}"
4752
+ ></div>
4753
+ }
4754
+ `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
4755
+ class: 'et-resize-handles',
4756
+ '[attr.inert]': 'disabled() ? "" : null',
4757
+ '[attr.data-active-edge]': 'activeEdge()',
4758
+ }, styles: ["@property --et-resize-handles-z-index{syntax: \"<integer>\"; inherits: true; initial-value: 10;}@property --et-resize-handles-edge-size{syntax: \"<length>\"; inherits: true; initial-value: 6px;}@property --et-resize-handles-corner-size{syntax: \"<length>\"; inherits: true; initial-value: 12px;}@property --et-resize-handles-edge-inset{syntax: \"<length>\"; inherits: true; initial-value: 8px;}@property --et-resize-handles-side-top{syntax: \"<length>\"; inherits: true; initial-value: 0px;}@property --et-resize-handles-side-bottom{syntax: \"<length>\"; inherits: true; initial-value: 8px;}@property --et-resize-handles-touch-edge-size{syntax: \"<length>\"; inherits: true; initial-value: 20px;}@property --et-resize-handles-touch-corner-size{syntax: \"<length>\"; inherits: true; initial-value: 28px;}et-resize-handles{position:absolute;inset:0;pointer-events:none}.et-resize-handle{position:absolute;z-index:var(--et-resize-handles-z-index);touch-action:none;pointer-events:auto}.et-resize-handle--n{left:var(--et-resize-handles-edge-inset);right:var(--et-resize-handles-edge-inset);height:var(--et-resize-handles-edge-size);top:0}.et-resize-handle--s{left:var(--et-resize-handles-edge-inset);right:var(--et-resize-handles-edge-inset);height:var(--et-resize-handles-edge-size);bottom:0}.et-resize-handle--e,.et-resize-handle--w{top:var(--et-resize-handles-side-top);bottom:var(--et-resize-handles-side-bottom);width:var(--et-resize-handles-edge-size)}.et-resize-handle--e{right:0}.et-resize-handle--w{left:0}.et-resize-handle--ne,.et-resize-handle--nw{top:0;width:var(--et-resize-handles-corner-size);height:var(--et-resize-handles-corner-size)}.et-resize-handle--ne{right:0}.et-resize-handle--nw{left:0}.et-resize-handle--se,.et-resize-handle--sw{bottom:0;width:var(--et-resize-handles-corner-size);height:var(--et-resize-handles-corner-size)}.et-resize-handle--se{right:0}.et-resize-handle--sw{left:0}@media(hover:none){.et-resize-handle--n,.et-resize-handle--s{height:var(--et-resize-handles-touch-edge-size)}.et-resize-handle--e,.et-resize-handle--w{width:var(--et-resize-handles-touch-edge-size)}.et-resize-handle--ne,.et-resize-handle--nw,.et-resize-handle--se,.et-resize-handle--sw{width:var(--et-resize-handles-touch-corner-size);height:var(--et-resize-handles-touch-corner-size)}}\n"] }]
4759
+ }], propDecorators: { edges: [{ type: i0.Input, args: [{ isSignal: true, alias: "edges", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], resizeStarted: [{ type: i0.Output, args: ["resizeStarted"] }], resizeMoved: [{ type: i0.Output, args: ["resizeMoved"] }], resizeEnded: [{ type: i0.Output, args: ["resizeEnded"] }] } });
4760
+
4537
4761
  const applyHeadBinding = (binding, applyFn, removeFn, isValid) => {
4538
4762
  const destroyRef = inject(DestroyRef);
4539
4763
  const signalBinding = isSignal(binding) ? binding : signal(binding);
@@ -5415,6 +5639,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
5415
5639
  }]
5416
5640
  }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }] } });
5417
5641
 
5642
+ class ColorThemedStylesComponent {
5643
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ColorThemedStylesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5644
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.1", type: ColorThemedStylesComponent, isStandalone: true, selector: "et-color-themed-styles", ngImport: i0, template: '', isInline: true, styles: [":where(.et-color-themed){--et-theme-color-primary-rgb: var(--et-color-primary);--et-theme-color-primary-opacity: 1;--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-primary: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--et-theme-color-on-primary-rgb: var(--et-color-on-primary);--et-theme-color-on-primary-opacity: 1;--et-theme-color-on-primary-solid: rgb( var(--et-theme-color-on-primary-rgb) / var(--et-theme-color-on-primary-opacity) );--et-theme-color-on-primary: rgb(var(--et-theme-color-on-primary-rgb) / var(--et-theme-color-on-primary-opacity));--et-theme-color-ink-rgb: var(--et-color-primary-ink, var(--et-color-primary));--et-theme-color-ink-opacity: 1;--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb) / var(--et-theme-color-ink-opacity));--et-theme-color-ink: rgb(var(--et-theme-color-ink-rgb) / var(--et-theme-color-ink-opacity))}:where(.et-color-themed:hover){--et-theme-color-primary-rgb: var(--et-color-primary-hover, var(--et-color-primary));--et-theme-color-on-primary-rgb: var(--et-color-on-primary-hover, var(--et-color-on-primary));--et-theme-color-ink-rgb: var( --et-color-primary-ink-hover, var(--et-color-primary-ink, var(--et-color-primary-hover, var(--et-color-primary))) )}:where(.et-color-themed:focus-visible){--et-theme-color-primary-rgb: var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)));--et-theme-color-on-primary-rgb: var( --et-color-on-primary-focus, var(--et-color-on-primary-hover, var(--et-color-on-primary)) );--et-theme-color-ink-rgb: var( --et-color-primary-ink-focus, var( --et-color-primary-ink-hover, var(--et-color-primary-ink, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)))) ) )}:where(.et-color-themed:active){--et-theme-color-primary-rgb: var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) );--et-theme-color-on-primary-rgb: var( --et-color-on-primary-active, var(--et-color-on-primary-focus, var(--et-color-on-primary-hover, var(--et-color-on-primary))) );--et-theme-color-ink-rgb: var( --et-color-primary-ink-active, var( --et-color-primary-ink-focus, var( --et-color-primary-ink-hover, var( --et-color-primary-ink, var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) ) ) ) )}:where(.et-color-themed[disabled]),:where(.et-color-themed[aria-disabled=true]){--et-theme-color-primary-rgb: var( --et-color-primary-disabled, var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) );--et-theme-color-on-primary-rgb: var( --et-color-on-primary-disabled, var( --et-color-on-primary-active, var(--et-color-on-primary-focus, var(--et-color-on-primary-hover, var(--et-color-on-primary))) ) );--et-theme-color-ink-rgb: var( --et-color-primary-ink-disabled, var( --et-color-primary-ink-active, var( --et-color-primary-ink-focus, var( --et-color-primary-ink-hover, var( --et-color-primary-ink, var( --et-color-primary-disabled, var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) ) ) ) ) ) )}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
5645
+ }
5646
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ColorThemedStylesComponent, decorators: [{
5647
+ type: Component,
5648
+ args: [{ selector: 'et-color-themed-styles', template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":where(.et-color-themed){--et-theme-color-primary-rgb: var(--et-color-primary);--et-theme-color-primary-opacity: 1;--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-primary: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--et-theme-color-on-primary-rgb: var(--et-color-on-primary);--et-theme-color-on-primary-opacity: 1;--et-theme-color-on-primary-solid: rgb( var(--et-theme-color-on-primary-rgb) / var(--et-theme-color-on-primary-opacity) );--et-theme-color-on-primary: rgb(var(--et-theme-color-on-primary-rgb) / var(--et-theme-color-on-primary-opacity));--et-theme-color-ink-rgb: var(--et-color-primary-ink, var(--et-color-primary));--et-theme-color-ink-opacity: 1;--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb) / var(--et-theme-color-ink-opacity));--et-theme-color-ink: rgb(var(--et-theme-color-ink-rgb) / var(--et-theme-color-ink-opacity))}:where(.et-color-themed:hover){--et-theme-color-primary-rgb: var(--et-color-primary-hover, var(--et-color-primary));--et-theme-color-on-primary-rgb: var(--et-color-on-primary-hover, var(--et-color-on-primary));--et-theme-color-ink-rgb: var( --et-color-primary-ink-hover, var(--et-color-primary-ink, var(--et-color-primary-hover, var(--et-color-primary))) )}:where(.et-color-themed:focus-visible){--et-theme-color-primary-rgb: var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)));--et-theme-color-on-primary-rgb: var( --et-color-on-primary-focus, var(--et-color-on-primary-hover, var(--et-color-on-primary)) );--et-theme-color-ink-rgb: var( --et-color-primary-ink-focus, var( --et-color-primary-ink-hover, var(--et-color-primary-ink, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)))) ) )}:where(.et-color-themed:active){--et-theme-color-primary-rgb: var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) );--et-theme-color-on-primary-rgb: var( --et-color-on-primary-active, var(--et-color-on-primary-focus, var(--et-color-on-primary-hover, var(--et-color-on-primary))) );--et-theme-color-ink-rgb: var( --et-color-primary-ink-active, var( --et-color-primary-ink-focus, var( --et-color-primary-ink-hover, var( --et-color-primary-ink, var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) ) ) ) )}:where(.et-color-themed[disabled]),:where(.et-color-themed[aria-disabled=true]){--et-theme-color-primary-rgb: var( --et-color-primary-disabled, var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) );--et-theme-color-on-primary-rgb: var( --et-color-on-primary-disabled, var( --et-color-on-primary-active, var(--et-color-on-primary-focus, var(--et-color-on-primary-hover, var(--et-color-on-primary))) ) );--et-theme-color-ink-rgb: var( --et-color-primary-ink-disabled, var( --et-color-primary-ink-active, var( --et-color-primary-ink-focus, var( --et-color-primary-ink-hover, var( --et-color-primary-ink, var( --et-color-primary-disabled, var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) ) ) ) ) ) )}\n"] }]
5649
+ }] });
5650
+
5651
+ class ColorThemedDirective {
5652
+ constructor() {
5653
+ this.styleManager = injectStyleManager();
5654
+ this.styleManager.mount(ColorThemedStylesComponent);
5655
+ }
5656
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ColorThemedDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5657
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.1", type: ColorThemedDirective, isStandalone: true, selector: "[etColorThemed]", host: { classAttribute: "et-color-themed" }, ngImport: i0 }); }
5658
+ }
5659
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ColorThemedDirective, decorators: [{
5660
+ type: Directive,
5661
+ args: [{
5662
+ selector: '[etColorThemed]',
5663
+ host: {
5664
+ class: 'et-color-themed',
5665
+ },
5666
+ }]
5667
+ }], ctorParameters: () => [] });
5668
+
5418
5669
  const createCssThemeName = (name) => name.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`);
5419
5670
  const [ɵProvideColorThemes, injectColorThemes] = createStaticProvider(undefined, {
5420
5671
  name: 'Color Themes',
@@ -5431,6 +5682,11 @@ const provideColorThemesWithTailwind4 = (themes, prefix = 'et') => [
5431
5682
  const createSwatchCss = (swatch, isAlt, data) => {
5432
5683
  const varSuffix = isAlt ? 'alt-' + swatch : swatch;
5433
5684
  const varOnSuffix = isAlt ? 'alt-' : '';
5685
+ const inkDefault = data.inkColor?.default || data.color.default;
5686
+ const inkHover = data.inkColor?.hover || inkDefault;
5687
+ const inkFocus = data.inkColor?.focus || data.inkColor?.hover || inkDefault;
5688
+ const inkActive = data.inkColor?.active || inkDefault;
5689
+ const inkDisabled = data.inkColor?.disabled || inkDefault;
5434
5690
  return `
5435
5691
  --et-color-${varSuffix}: ${data.color.default};
5436
5692
  --et-color-${varSuffix}-hover: ${data.color.hover};
@@ -5443,6 +5699,12 @@ const createSwatchCss = (swatch, isAlt, data) => {
5443
5699
  --et-color-${varOnSuffix}on-${swatch}-focus: ${data.onColor.focus || data.onColor.hover || data.onColor.default};
5444
5700
  --et-color-${varOnSuffix}on-${swatch}-active: ${data.onColor.active || data.onColor.default};
5445
5701
  --et-color-${varOnSuffix}on-${swatch}-disabled: ${data.onColor.disabled || data.onColor.default};
5702
+
5703
+ --et-color-${varSuffix}-ink: ${inkDefault};
5704
+ --et-color-${varSuffix}-ink-hover: ${inkHover};
5705
+ --et-color-${varSuffix}-ink-focus: ${inkFocus};
5706
+ --et-color-${varSuffix}-ink-active: ${inkActive};
5707
+ --et-color-${varSuffix}-ink-disabled: ${inkDisabled};
5446
5708
  `;
5447
5709
  };
5448
5710
  /**
@@ -5450,6 +5712,11 @@ const createSwatchCss = (swatch, isAlt, data) => {
5450
5712
  */
5451
5713
  const createRootThemeCss = (themes) => {
5452
5714
  const createVars = (name, swatch) => {
5715
+ const inkDefault = swatch.inkColor?.default || swatch.color.default;
5716
+ const inkHover = swatch.inkColor?.hover || inkDefault;
5717
+ const inkFocus = swatch.inkColor?.focus || swatch.inkColor?.hover || inkDefault;
5718
+ const inkActive = swatch.inkColor?.active || inkDefault;
5719
+ const inkDisabled = swatch.inkColor?.disabled || inkDefault;
5453
5720
  return `
5454
5721
  --et-color-${name}: ${swatch.color.default};
5455
5722
  --et-color-${name}-hover: ${swatch.color.hover};
@@ -5462,6 +5729,12 @@ const createRootThemeCss = (themes) => {
5462
5729
  --et-color-on-${name}-focus: ${swatch.onColor.focus || swatch.onColor.hover || swatch.onColor.default};
5463
5730
  --et-color-on-${name}-active: ${swatch.onColor.active || swatch.onColor.default};
5464
5731
  --et-color-on-${name}-disabled: ${swatch.onColor.disabled || swatch.onColor.default};
5732
+
5733
+ --et-color-${name}-ink: ${inkDefault};
5734
+ --et-color-${name}-ink-hover: ${inkHover};
5735
+ --et-color-${name}-ink-focus: ${inkFocus};
5736
+ --et-color-${name}-ink-active: ${inkActive};
5737
+ --et-color-${name}-ink-disabled: ${inkDisabled};
5465
5738
  `;
5466
5739
  };
5467
5740
  const vars = [];
@@ -5546,6 +5819,23 @@ const createTailwindColorThemes = (themes, prefix = 'et') => {
5546
5819
  active: createTailwindRgbVar(theme.primary.onColor.active) || createTailwindRgbVar(theme.primary.onColor.default),
5547
5820
  disabled: createTailwindRgbVar(theme.primary.onColor.disabled) || createTailwindRgbVar(theme.primary.onColor.default),
5548
5821
  };
5822
+ const keyInk = `${prefix}-${theme.name}-ink`;
5823
+ twThemes[keyInk] = {
5824
+ DEFAULT: createTailwindRgbVar(theme.primary.inkColor?.default) || createTailwindRgbVar(theme.primary.color.default),
5825
+ hover: createTailwindRgbVar(theme.primary.inkColor?.hover) ||
5826
+ createTailwindRgbVar(theme.primary.inkColor?.default) ||
5827
+ createTailwindRgbVar(theme.primary.color.default),
5828
+ focus: createTailwindRgbVar(theme.primary.inkColor?.focus) ||
5829
+ createTailwindRgbVar(theme.primary.inkColor?.hover) ||
5830
+ createTailwindRgbVar(theme.primary.inkColor?.default) ||
5831
+ createTailwindRgbVar(theme.primary.color.default),
5832
+ active: createTailwindRgbVar(theme.primary.inkColor?.active) ||
5833
+ createTailwindRgbVar(theme.primary.inkColor?.default) ||
5834
+ createTailwindRgbVar(theme.primary.color.default),
5835
+ disabled: createTailwindRgbVar(theme.primary.inkColor?.disabled) ||
5836
+ createTailwindRgbVar(theme.primary.inkColor?.default) ||
5837
+ createTailwindRgbVar(theme.primary.color.default),
5838
+ };
5549
5839
  }
5550
5840
  return twThemes;
5551
5841
  };
@@ -5648,5 +5938,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
5648
5938
  * Generated bundle index. Do not edit.
5649
5939
  */
5650
5940
 
5651
- export { ANIMATABLE_TOKEN, ANIMATED_IF_TOKEN, ANIMATED_LIFECYCLE_TOKEN, AT_LEAST_ONE_REQUIRED, AnimatableDirective, AnimatedIfDirective, AnimatedLifecycleDirective, AnimatedOverlayDirective, BOUNDARY_ELEMENT_TOKEN, BREAKPOINT_INSTANCE_TOKEN, BREAKPOINT_ORDER, ClickOutsideDirective, DEFAULT_MULTI_INSTANCE_RELS, DEFAULT_MULTI_INSTANCE_TAGS, DEFAULT_VIEWPORT_CONFIG, DISABLE_LOGGER_PARAM, ET_DISABLE_SCROLL_TOP, ET_DISABLE_SCROLL_TOP_AS_RETURN_ROUTE, ET_DISABLE_SCROLL_TOP_ON_PATH_PARAM_CHANGE, ET_PROPERTY_REMOVED, FOCUS_VISIBLE_TRACKER_TOKEN, IS_ARRAY_NOT_EMPTY, IS_EMAIL, InferMimeTypePipe, IsArrayNotEmpty, IsEmail, jsonLd as JsonLD, KeyPressManager, MUST_MATCH, MustMatch, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, PropsDirective, ProvideThemeDirective, RUNTIME_ERROR_NO_DATA, RepeatDirective, RuntimeError, SEO_DIRECTIVE_TOKEN, ScrollObserverDirective, ScrollObserverEndDirective, ScrollObserverStartDirective, SeoDirective, StructuredDataComponent, THEME_PROVIDER, ToArrayPipe, TypedQueryList, ValidateAtLeastOneRequired, Validators, applyAlternateBinding, applyAlternateLanguagesBindings, applyArticleBindings, applyAuthorBinding, applyCanonicalBinding, applyDescriptionBinding, applyHeadBinding, applyHeadTitleBinding, applyHostListener, applyHostListeners, applyKeywordsBinding, applyLinkBinding, applyMetaBinding, applyNextBinding, applyOgBinding, applyOpenGraphBindings, applyPrevBinding, applyResourceHintsBindings, applyRobotsBinding, applySocialMediaBindings, applyStructuredDataBinding, applyTwitterCardBindings, areScrollStatesEqual, bindProps, boolBreakpointTransform, booleanBreakpointAttribute, boundingClientRectToElementRect, breakpointTransformBase, buildElementSignal, buildSignalEffects, clamp, clone, cloneFormGroup, computedTillFalsy, computedTillTruthy, controlValueSignal, controlValueSignalWithPrevious, createArrayPropertyBinding, createBulkPropertyBinding, createCanAnimateSignal, createComponentId, createCssThemeName, createDependencyStash, createDestroy, createDocumentElementSignal, createElementDictionary, createElementDimensions, createEmptyElementSignal, createFlipAnimation, createFlipAnimationGroup, createHostProps, createIsRenderedSignal, createLogger, createPropHandlers, createPropertyBinding, createProps, createProvider, createRootProvider, createRootThemeCss, createRxHostListener, createSetup, createStaticProvider, createStaticRootProvider, createSwatchCss, createTailwindColorThemes, createTailwindCssVar, createTailwindRgbVar, createThemeStyle, deferredSignal, deleteCookie, easeElastic, easeIn, easeInOut, easeLinear, easeOut, easeOutBack, easeOutBackStrong, elementCanScroll, equal, firstElementSignal, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getElementScrollCoordinates, getFormGroupValue, getGroupMatchPoints, getGroupMatchScore, getKnockoutMatchScore, getMatchScoreSubLine, getObjectProperty, getScrollContainerTarget, getScrollItemTarget, getScrollSnapTarget, hasCookie, inferMimeType, injectAngularRootElement, injectBoundaryElement, injectBreakpointInput, injectBreakpointIsMatched, injectBreakpointObserver, injectCanHover, injectColorThemes, injectCurrentBreakpoint, injectDeviceInputType, injectDisplayOrientation, injectFocusVisibleTracker, injectFragment, injectHasPrecisionInput, injectHasTouchInput, injectHostElement, injectIs2Xl, injectIsLandscape, injectIsLg, injectIsMd, injectIsPortrait, injectIsRouterInitialized, injectIsSm, injectIsXl, injectIsXs, injectLinkStore, injectLinkStoreConfig, injectLocale, injectMediaQueryIsMatched, injectMetaConfig, injectMetaStore, injectObserveBreakpoint, injectObserveMediaQuery, injectPathParam, injectPathParamChanges, injectPathParams, injectQueryParam, injectQueryParamChanges, injectQueryParams, injectRenderer, injectRoute, injectRouteData, injectRouteDataItem, injectRouteTitle, injectRouterEvent, injectRouterState, injectScrollbarDimensions, injectStructuredDataConfig, injectStructuredDataStore, injectTemplateRef, injectThemesPrefix, injectTitleConfig, injectTitleStore, injectUrl, injectViewportConfig, injectViewportDimensions, isArray, isElementSignal, isElementVisible, isGroupMatch, isKnockoutMatch, isObject, maybeSignalValue, memoizeSignal, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, numberBreakpointAttribute, numberBreakpointTransform, previousSignalValue, provideBoundaryElement, provideBreakpointInstance, provideBreakpointObserver, provideColorThemes, provideColorThemesWithTailwind4, provideFocusVisibleTracker, provideLinkStore, provideLinkStoreConfig, provideLocale, provideMetaConfig, provideMetaStore, provideRenderer, provideStructuredDataConfig, provideStructuredDataStore, provideTitleConfig, provideTitleStore, provideViewportConfig, round, routerDisableScrollTop, scrollToElement, setCookie, setInputSignal, setupScrollRestoration, signalAnimatedNumber, signalAttributes, signalClasses, signalElementChildren, signalElementDimensions, signalElementIntersection, signalElementLastScrollDirection, signalElementMutations, signalElementScrollState, signalHostAttributes, signalHostClasses, signalHostElementDimensions, signalHostElementIntersection, signalHostElementLastScrollDirection, signalHostElementMutations, signalHostElementScrollState, signalHostStyles, signalIsRendered, signalStyles, switchQueryListChanges, syncSignal, templateComputed, toArray, toArrayTrackByFn, toStringBinding, transformOrReturn, typedBreakpointTransform, unbindProps, useCursorDragScroll, writeScrollbarSizeToCssVariables, writeViewportSizeToCssVariables, ɵProvideColorThemes, ɵProvideThemesPrefix };
5941
+ export { ANIMATABLE_TOKEN, ANIMATED_IF_TOKEN, ANIMATED_LIFECYCLE_TOKEN, AT_LEAST_ONE_REQUIRED, AnimatableDirective, AnimatedIfDirective, AnimatedLifecycleDirective, AnimatedOverlayDirective, BOUNDARY_ELEMENT_TOKEN, BREAKPOINT_INSTANCE_TOKEN, BREAKPOINT_ORDER, ClickOutsideDirective, ColorThemedDirective, 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, FOCUS_VISIBLE_TRACKER_TOKEN, IS_ARRAY_NOT_EMPTY, IS_EMAIL, InferMimeTypePipe, IsArrayNotEmpty, IsEmail, jsonLd as JsonLD, KeyPressManager, MUST_MATCH, MustMatch, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, PropsDirective, ProvideThemeDirective, RUNTIME_ERROR_NO_DATA, RepeatDirective, ResizeHandlesComponent, RuntimeError, SEO_DIRECTIVE_TOKEN, ScrollObserverDirective, ScrollObserverEndDirective, ScrollObserverStartDirective, SeoDirective, StructuredDataComponent, THEME_PROVIDER, ToArrayPipe, TypedQueryList, ValidateAtLeastOneRequired, Validators, applyAlternateBinding, applyAlternateLanguagesBindings, applyArticleBindings, applyAuthorBinding, applyCanonicalBinding, applyDescriptionBinding, applyHeadBinding, applyHeadTitleBinding, applyHostListener, applyHostListeners, applyKeywordsBinding, applyLinkBinding, applyMetaBinding, applyNextBinding, applyOgBinding, applyOpenGraphBindings, applyPrevBinding, applyResourceHintsBindings, applyRobotsBinding, applySocialMediaBindings, applyStructuredDataBinding, applyTwitterCardBindings, areScrollStatesEqual, bindProps, boolBreakpointTransform, booleanBreakpointAttribute, boundingClientRectToElementRect, breakpointTransformBase, buildElementSignal, buildSignalEffects, clamp, clone, cloneFormGroup, computedTillFalsy, computedTillTruthy, controlValueSignal, controlValueSignalWithPrevious, createArrayPropertyBinding, createBulkPropertyBinding, createCanAnimateSignal, createComponentId, createCssThemeName, createDependencyStash, createDestroy, createDocumentElementSignal, createElementDictionary, createElementDimensions, createEmptyElementSignal, createFlipAnimation, createFlipAnimationGroup, createHostProps, createIsRenderedSignal, createLogger, createPropHandlers, createPropertyBinding, createProps, createProvider, createRootProvider, createRootThemeCss, createRxHostListener, createSetup, createStaticProvider, createStaticRootProvider, createSwatchCss, createTailwindColorThemes, createTailwindCssVar, createTailwindRgbVar, createThemeStyle, createUserConsentProvider, deferredSignal, deleteCookie, easeElastic, easeIn, easeInOut, easeLinear, easeOut, easeOutBack, easeOutBackStrong, elementCanScroll, equal, firstElementSignal, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getElementScrollCoordinates, getFormGroupValue, getGroupMatchPoints, getGroupMatchScore, getKnockoutMatchScore, getMatchScoreSubLine, getObjectProperty, getScrollContainerTarget, getScrollItemTarget, getScrollSnapTarget, hasCookie, inferMimeType, injectAngularRootElement, injectBoundaryElement, injectBreakpointInput, injectBreakpointIsMatched, injectBreakpointObserver, injectCanHover, injectColorThemes, injectCurrentBreakpoint, injectDeviceInputType, injectDisplayOrientation, injectFocusVisibleTracker, injectFragment, injectHasPrecisionInput, injectHasTouchInput, injectHostElement, injectIs2Xl, injectIsLandscape, injectIsLg, injectIsMd, injectIsPortrait, injectIsRouterInitialized, injectIsSm, injectIsXl, injectIsXs, injectLinkStore, injectLinkStoreConfig, injectLocale, injectMediaQueryIsMatched, injectMetaConfig, injectMetaStore, injectObserveBreakpoint, injectObserveMediaQuery, injectPathParam, injectPathParamChanges, injectPathParams, injectQueryParam, injectQueryParamChanges, injectQueryParams, injectRenderer, injectRoute, injectRouteData, injectRouteDataItem, injectRouteTitle, injectRouterEvent, injectRouterState, injectScrollbarDimensions, injectStructuredDataConfig, injectStructuredDataStore, injectStyleManager, injectTemplateRef, injectThemesPrefix, injectTitleConfig, injectTitleStore, injectUrl, injectViewportConfig, injectViewportDimensions, injectViewportSize, isArray, isElementSignal, isElementVisible, isGroupMatch, isKnockoutMatch, isObject, maybeSignalValue, memoizeSignal, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, numberBreakpointAttribute, numberBreakpointTransform, previousSignalValue, provideBoundaryElement, provideBreakpointInstance, provideBreakpointObserver, provideColorThemes, provideColorThemesWithTailwind4, provideFocusVisibleTracker, provideLinkStore, provideLinkStoreConfig, provideLocale, provideMetaConfig, provideMetaStore, provideRenderer, provideStructuredDataConfig, provideStructuredDataStore, provideStyleManager, provideTitleConfig, provideTitleStore, provideViewportConfig, round, routerDisableScrollTop, scrollToElement, setCookie, setInputSignal, setupScrollRestoration, signalAnimatedNumber, signalAttributes, signalClasses, signalElementChildren, signalElementDimensions, signalElementIntersection, signalElementLastScrollDirection, signalElementMutations, signalElementScrollState, signalHostAttributes, signalHostClasses, signalHostElementDimensions, signalHostElementIntersection, signalHostElementLastScrollDirection, signalHostElementMutations, signalHostElementScrollState, signalHostStyles, signalIsRendered, signalStyles, switchQueryListChanges, syncSignal, templateComputed, toArray, toArrayTrackByFn, toStringBinding, transformOrReturn, typedBreakpointTransform, unbindProps, useCursorDragScroll, writeScrollbarSizeToCssVariables, writeViewportSizeToCssVariables, ɵProvideColorThemes, ɵProvideThemesPrefix };
5652
5942
  //# sourceMappingURL=ethlete-core.mjs.map