@ethlete/components 1.0.0-next.43 → 1.0.0-next.46

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.
@@ -2,14 +2,13 @@ import * as _angular_core from '@angular/core';
2
2
  import { TemplateRef, ElementRef, InjectionToken, Signal, Type, InputSignal, WritableSignal, Injector, Provider, ViewContainerRef, Binding, StaticProvider, OnInit, ComponentRef, ModelSignal, OnDestroy, computed, EnvironmentInjector, ApplicationRef } from '@angular/core';
3
3
  import * as _ethlete_components from '@ethlete/components';
4
4
  import * as _ethlete_core from '@ethlete/core';
5
- import { ColorTheme, JsonLD, ScrollObserverDirective, ScrollToElementOptions, AnimatableDirective, OverlayRuntimeCloseSource, OverlayRuntimeCloseGuard, OverlayRuntimePositionStrategy, OverlayRuntimeCloseEvent, OverlayRuntimeRef, Breakpoint, AnimatedLifecycleDirective, AnimatedSizeAxis, ObjectUrlHandle, ResizeEdge, DragHandleDirective, ResizeMoveEvent, CreateUnsavedChangesTrackerConfig, UnsavedChangesTrackerRef, AnimatedLifecycleState, OverlayRuntimeShiftOptions, AngularRenderer, OverlayRuntimeAnimationDelegate, DragMoveEvent, ConsentHandler, LabelsSource, ProvideColorDirective } from '@ethlete/core';
5
+ import { ColorTheme, JsonLD, ColorThemeInput, ScrollObserverDirective, ScrollToElementOptions, AnimatableDirective, OverlayRuntimeCloseSource, OverlayRuntimeCloseGuard, OverlayRuntimePositionStrategy, OverlayRuntimeCloseEvent, OverlayRuntimeRef, Breakpoint, AnimatedLifecycleDirective, AnimatedSizeAxis, ObjectUrlHandle, ResizeEdge, DragHandleDirective, ResizeMoveEvent, CreateUnsavedChangesTrackerConfig, UnsavedChangesTrackerRef, AnimatedLifecycleState, OverlayRuntimeShiftOptions, AngularRenderer, OverlayRuntimeAnimationDelegate, ConsentHandler, LabelsSource, DragMoveEvent, ProvideColorDirective } from '@ethlete/core';
6
6
  import { MatchListViewUnion, MatchStatus, MediaView, ParticipantViewUnion, RoundStageStructureWithMatchesView, RoundStageStructureView, RoundType, GroupRankingView, PlacementView } from '@ethlete/types';
7
7
  import * as _angular_platform_browser from '@angular/platform-browser';
8
8
  import { Locale } from 'date-fns';
9
9
  import * as _angular_forms_signals from '@angular/forms/signals';
10
- import { FieldTree, ValidationError, FormValueControl, FormCheckboxControl, validate, PathKind, SchemaPath, SchemaPathRules } from '@angular/forms/signals';
11
- import * as _ethlete_query from '@ethlete/query';
12
- import { QueryFormFields, QueryFormSignals, QueryFormModel, AnyQueryCreator, RequestArgs, QueryArgsOf, ResponseType, QueryErrorResponse, RequestError, QueryArgs, QueryCreator, AnyV2QueryCreator, AnyLegacyQueryCreator, QueryDataOf, ReadonlyQuery, JsonPath, QueryDevtoolsOverridesRecorder, QueryRefreshCause, QueryRepositoryEntryDestroyedCause, Query, QueryRepositoryCacheEntry, HttpRequestRetryState, HttpRequestLoadingProgressState, QueryDevtoolsStats, QueryDevtoolsStatsHandle, QueryDevtoolsEntry, QueryRepository, QueryClient, QueryKeyLockState, QueryDevtoolsFeature, QueryDevtoolsFault, AnyQueryStack, AnyPagedQueryStack, QuerySequence, AnyBearerAuthProvider, WebSocketDevtoolsHandle, QueryDevtoolsFormHandle, QuerySequenceStatus, AnyQuerySnapshot, QueryDevtoolsRun, QueryDevtoolsRunError, WebSocketDevtoolsMessage, QueryDevtoolsStorageScope, AnyV2Query, AnyLegacyQuery, AnyQueryCollection } from '@ethlete/query';
10
+ import { FieldTree, PathKind, SchemaPath, SchemaPathRules, LogicFn, ValidationError, FormValueControl, FormCheckboxControl, validate } from '@angular/forms/signals';
11
+ import { QueryFormFields, QueryFormSignals, QueryFormModel, AnyQueryCreator, RequestArgs, QueryArgsOf, ResponseType, QueryErrorResponse, RequestError, QueryArgs, QueryCreator, AnyV2QueryCreator, AnyLegacyQueryCreator, QueryDataOf, ReadonlyQuery, AnyV2Query, AnyLegacyQuery, AnyQueryCollection } from '@ethlete/query';
13
12
  import * as rxjs from 'rxjs';
14
13
  import { Observable } from 'rxjs';
15
14
  import { Placement, OffsetOptions, Padding } from '@floating-ui/dom';
@@ -335,10 +334,14 @@ type AvatarShape = (typeof AVATAR_SHAPES)[keyof typeof AVATAR_SHAPES];
335
334
  * A user/entity representation: an image, falling back to initials derived from `name`, falling back
336
335
  * to projected content (e.g. an icon) when neither is set. A failed image load falls back the same way.
337
336
  *
337
+ * Also an attribute selector, so an avatar that has to be a link or a button is written as one -
338
+ * `routerLink`, `href` and click handlers stay on the consumer's own element.
339
+ *
338
340
  * @example
339
341
  * <et-avatar src="/jane.jpg" name="Jane Doe" />
340
342
  * <et-avatar name="Jane Doe" color="brand" />
341
343
  * <et-avatar><et-icon [definition]="USER_ICON" /></et-avatar>
344
+ * <a [routerLink]="['/users', user.id]" [name]="user.name" et-avatar></a>
342
345
  */
343
346
  declare class AvatarComponent {
344
347
  src: _angular_core.InputSignal<string | null>;
@@ -350,24 +353,38 @@ declare class AvatarComponent {
350
353
  protected imageVisible: _angular_core.Signal<boolean>;
351
354
  protected markImageFailed(): void;
352
355
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AvatarComponent, never>;
353
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AvatarComponent, "et-avatar", never, { "src": { "alias": "src"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
356
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AvatarComponent, "et-avatar, [et-avatar]", never, { "src": { "alias": "src"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
354
357
  }
355
358
 
356
359
  /**
357
360
  * Overlaps a row of `et-avatar`s into a stack, each one ringed so it reads apart from its neighbor.
358
- * Project the avatars you want shown, in order - including any "+N" overflow indicator, itself just
359
- * another `et-avatar` with initials text.
361
+ * Project the avatars you want shown, in order.
362
+ *
363
+ * Past `maxVisible` the group hides the rest and appends a `+N` avatar of its own, matching the first
364
+ * projected avatar's size and shape. Without it every projected avatar is shown, and a "+N" you
365
+ * project yourself is just another avatar.
360
366
  *
361
367
  * @example
362
- * <et-avatar-group>
363
- * <et-avatar name="Jane Doe" />
364
- * <et-avatar name="John Smith" />
365
- * <et-avatar>+5</et-avatar>
368
+ * <et-avatar-group [maxVisible]="3">
369
+ * @for (member of members(); track member.id) {
370
+ * <et-avatar [name]="member.name" [src]="member.avatarUrl" />
371
+ * }
366
372
  * </et-avatar-group>
367
373
  */
368
374
  declare class AvatarGroupComponent {
375
+ /**
376
+ * How many of the projected avatars to show. The rest are hidden and counted into a trailing `+N`
377
+ * avatar. Unset shows all of them.
378
+ */
379
+ maxVisible: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
380
+ private projectedAvatars;
381
+ private projectedElements;
382
+ protected overflowCount: _angular_core.Signal<number>;
383
+ protected overflowSize: _angular_core.Signal<_ethlete_components.AvatarSize>;
384
+ protected overflowShape: _angular_core.Signal<_ethlete_components.AvatarShape>;
385
+ constructor();
369
386
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AvatarGroupComponent, never>;
370
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AvatarGroupComponent, "et-avatar-group", never, {}, {}, never, ["*"], true, never>;
387
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AvatarGroupComponent, "et-avatar-group", never, { "maxVisible": { "alias": "maxVisible"; "required": false; "isSignal": true; }; }, {}, ["projectedAvatars", "projectedElements"], ["*"], true, never>;
371
388
  }
372
389
 
373
390
  declare const AVATAR_IMPORTS: readonly [typeof AvatarComponent, typeof AvatarGroupComponent];
@@ -3061,6 +3078,32 @@ declare class ButtonStylesDirective {
3061
3078
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ButtonStylesDirective, "[etButtonStyles]", never, {}, {}, never, never, true, never>;
3062
3079
  }
3063
3080
 
3081
+ declare const INHERIT_COLOR = "inherit";
3082
+ /**
3083
+ * A color theme name (or theme object), `surface` for the ambient surface's neutral swatch, or
3084
+ * `inherit` for whatever color theme surrounds the button.
3085
+ */
3086
+ type ButtonColor = ColorThemeInput | typeof INHERIT_COLOR;
3087
+ declare class ButtonColorDirective {
3088
+ private provideColor;
3089
+ private buttonDir;
3090
+ /**
3091
+ * The color theme the button renders in. Defaults to the surrounding one; pass `surface` to take
3092
+ * the neutral colors of the surface the button sits on, so a secondary action reads as chrome
3093
+ * without a neutral color theme being registered.
3094
+ */
3095
+ color: _angular_core.InputSignal<ButtonColor | undefined>;
3096
+ /**
3097
+ * The color theme to swap to while the button is `pressed` - `inherit` for a toggle that stays
3098
+ * neutral until it is active and then picks up the surrounding theme. Defaults to `color`, so a
3099
+ * pressed button keeps its resting theme and only its variant changes.
3100
+ */
3101
+ pressedColor: _angular_core.InputSignal<ButtonColor | undefined>;
3102
+ constructor();
3103
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonColorDirective, never>;
3104
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ButtonColorDirective, "[etButtonColor]", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "pressedColor": { "alias": "pressedColor"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }]>;
3105
+ }
3106
+
3064
3107
  declare const BUTTON_TYPES: {
3065
3108
  readonly BUTTON: "button";
3066
3109
  readonly SUBMIT: "submit";
@@ -3074,12 +3117,11 @@ declare class ButtonDirective {
3074
3117
  type: _angular_core.InputSignal<ButtonType>;
3075
3118
  pressed: _angular_core.InputSignalWithTransform<boolean, unknown>;
3076
3119
  emitAriaPressed: _angular_core.InputSignalWithTransform<boolean, unknown>;
3077
- mutedUntilPressed: _angular_core.InputSignalWithTransform<boolean, unknown>;
3078
3120
  readonly IS_BUTTON: boolean;
3079
3121
  readonly IS_ANCHOR: boolean;
3080
3122
  isInactive: _angular_core.Signal<boolean>;
3081
3123
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonDirective, never>;
3082
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ButtonDirective, "[etButton]", ["etButton"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "pressed": { "alias": "pressed"; "required": false; "isSignal": true; }; "emitAriaPressed": { "alias": "emitAriaPressed"; "required": false; "isSignal": true; }; "mutedUntilPressed": { "alias": "mutedUntilPressed"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _ethlete_core.SurfaceInteractiveDirective; inputs: {}; outputs: {}; }]>;
3124
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ButtonDirective, "[etButton]", ["etButton"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "pressed": { "alias": "pressed"; "required": false; "isSignal": true; }; "emitAriaPressed": { "alias": "emitAriaPressed"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _ethlete_core.SurfaceInteractiveDirective; inputs: {}; outputs: {}; }]>;
3083
3125
  }
3084
3126
 
3085
3127
  declare class SplitButtonActionDirective {
@@ -3158,7 +3200,7 @@ declare class ButtonComponent {
3158
3200
  }>;
3159
3201
  pressedVariant: _angular_core.Signal<string | null>;
3160
3202
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonComponent, never>;
3161
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonComponent, "[et-button]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "iconAlignment": { "alias": "iconAlignment"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[etIcon]"], true, [{ directive: typeof ButtonDirective; inputs: { "disabled": "disabled"; "loading": "loading"; "type": "type"; "pressed": "pressed"; "mutedUntilPressed": "mutedUntilPressed"; }; outputs: {}; }, { directive: typeof ButtonStylesDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }, { directive: typeof FocusRingDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
3203
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonComponent, "[et-button]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "iconAlignment": { "alias": "iconAlignment"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[etIcon]"], true, [{ directive: typeof ButtonDirective; inputs: { "disabled": "disabled"; "loading": "loading"; "type": "type"; "pressed": "pressed"; }; outputs: {}; }, { directive: typeof ButtonStylesDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }, { directive: typeof FocusRingDirective; inputs: {}; outputs: {}; }, { directive: typeof ButtonColorDirective; inputs: { "color": "color"; "pressedColor": "pressedColor"; }; outputs: {}; }]>;
3162
3204
  }
3163
3205
 
3164
3206
  type FabVariant = (typeof BUTTON_VARIANTS)[keyof typeof BUTTON_VARIANTS];
@@ -3194,7 +3236,7 @@ declare class IconButtonComponent {
3194
3236
  }>;
3195
3237
  pressedVariant: _angular_core.Signal<string | null>;
3196
3238
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconButtonComponent, never>;
3197
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconButtonComponent, "[et-icon-button]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["[etIcon]"], true, [{ directive: typeof ButtonDirective; inputs: { "disabled": "disabled"; "loading": "loading"; "type": "type"; "pressed": "pressed"; "mutedUntilPressed": "mutedUntilPressed"; "emitAriaPressed": "emitAriaPressed"; }; outputs: {}; }, { directive: typeof ButtonStylesDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }, { directive: typeof FocusRingDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
3239
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconButtonComponent, "[et-icon-button]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["[etIcon]"], true, [{ directive: typeof ButtonDirective; inputs: { "disabled": "disabled"; "loading": "loading"; "type": "type"; "pressed": "pressed"; "emitAriaPressed": "emitAriaPressed"; }; outputs: {}; }, { directive: typeof ButtonStylesDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }, { directive: typeof FocusRingDirective; inputs: {}; outputs: {}; }, { directive: typeof ButtonColorDirective; inputs: { "color": "color"; "pressedColor": "pressedColor"; }; outputs: {}; }]>;
3198
3240
  }
3199
3241
 
3200
3242
  declare class SplitButtonComponent {
@@ -5011,11 +5053,19 @@ declare class CopyButtonDirective {
5011
5053
 
5012
5054
  declare const COPY_BUTTON_IMPORTS: readonly [typeof CopyButtonDirective];
5013
5055
 
5056
+ declare const DESCRIPTION_LIST_VARIANTS: {
5057
+ readonly INLINE: "inline";
5058
+ readonly STACKED: "stacked";
5059
+ };
5060
+ type DescriptionListVariant = (typeof DESCRIPTION_LIST_VARIANTS)[keyof typeof DESCRIPTION_LIST_VARIANTS];
5014
5061
  /**
5015
5062
  * Styles a native `<dl>` for term/detail rows - CSS grid auto-placement pairs each `<dt>`/`<dd>`
5016
5063
  * into its own row, so plain semantic markup is all a consumer writes; there is no term/detail
5017
5064
  * wrapper component to reach for.
5018
5065
  *
5066
+ * `variant="inline"` (the default) puts the term beside its detail in two columns;
5067
+ * `variant="stacked"` puts it above, in one column.
5068
+ *
5019
5069
  * @example
5020
5070
  * <dl et-description-list>
5021
5071
  * <dt>Name</dt>
@@ -5025,8 +5075,9 @@ declare const COPY_BUTTON_IMPORTS: readonly [typeof CopyButtonDirective];
5025
5075
  * </dl>
5026
5076
  */
5027
5077
  declare class DescriptionListComponent {
5078
+ variant: _angular_core.InputSignal<DescriptionListVariant>;
5028
5079
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DescriptionListComponent, never>;
5029
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DescriptionListComponent, "dl[et-description-list]", never, {}, {}, never, ["*"], true, never>;
5080
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DescriptionListComponent, "dl[et-description-list]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
5030
5081
  }
5031
5082
 
5032
5083
  declare const DESCRIPTION_LIST_IMPORTS: readonly [typeof DescriptionListComponent];
@@ -5536,6 +5587,44 @@ declare const CASCADER_ERROR_CODES: {
5536
5587
  readonly SEARCH_OPTION_OUTSIDE_CASCADER: 3308;
5537
5588
  };
5538
5589
 
5590
+ /** The `kind` given to a warning a `warn()` rule returned as a bare string. */
5591
+ declare const FIELD_WARNING_KIND = "etWarning";
5592
+ /**
5593
+ * A non-blocking advisory about a field's value: the value is accepted and the form still submits,
5594
+ * but the user should look at it anyway (a password that meets the rules yet is weak, a date far
5595
+ * enough out to be a likely typo, a quantity above what is normally in stock).
5596
+ */
5597
+ type FieldWarning = {
5598
+ /** Machine-readable discriminator. A `FORM_WARNING_MESSAGE_RESOLVER` localizes the text by it. */
5599
+ kind: string;
5600
+ /** The text shown under the field. Optional when a resolver supplies it from `kind`. */
5601
+ message?: string;
5602
+ };
5603
+ /** What a {@link warn} rule may return. A bare string becomes a {@link FIELD_WARNING_KIND} warning. */
5604
+ type FieldWarningResult = string | FieldWarning | readonly (string | FieldWarning)[] | null | undefined;
5605
+ /** @internal The channel between the {@link warn} schema rule and the form field. */
5606
+ declare const FIELD_WARNINGS: _angular_forms_signals.MetadataKey<_angular_core.Signal<readonly FieldWarning[]>, readonly FieldWarning[], readonly FieldWarning[]>;
5607
+ /**
5608
+ * Schema rule attaching non-blocking warnings to a field. The bound `et-form-field` (or control that
5609
+ * renders its own support region) shows them in the place an error would take, in the app's
5610
+ * `type: 'warning'` color - but the field stays valid: nothing here reaches validity, `aria-invalid`
5611
+ * or submit. An error on the same field takes the slot back until it is fixed.
5612
+ *
5613
+ * Multiple `warn()` rules on one field are concatenated. Return `null` for no warning.
5614
+ *
5615
+ * @example
5616
+ * ```ts
5617
+ * form(model, (s) => {
5618
+ * required(s.password);
5619
+ * warn(s.password, ({ value }) => (isWeak(value()) ? 'This password is easy to guess.' : null));
5620
+ * warn(s.quantity, ({ value }) =>
5621
+ * value() > stock() ? { kind: 'aboveStock', message: 'More than we usually have in stock.' } : null,
5622
+ * );
5623
+ * });
5624
+ * ```
5625
+ */
5626
+ declare const warn: <TValue, TPathKind extends PathKind = PathKind.Root>(path: SchemaPath<TValue, SchemaPathRules.Supported, TPathKind>, logic: NoInfer<LogicFn<TValue, FieldWarningResult, TPathKind>>) => void;
5627
+
5539
5628
  declare const FORM_FIELD_ERROR_CODES: {
5540
5629
  readonly MISSING_CONTROL: 2200;
5541
5630
  readonly MISSING_LABEL: 2201;
@@ -5664,6 +5753,8 @@ type LabelDirectiveBase = {
5664
5753
 
5665
5754
  declare class FormFieldDirective implements FormFieldDirectiveBase {
5666
5755
  private readonly hostElement;
5756
+ private ownFieldBinding;
5757
+ private wrappedFieldBindings;
5667
5758
  /** @internal */
5668
5759
  registeredControl: _angular_core.WritableSignal<FormFieldControl | null>;
5669
5760
  /** @internal */
@@ -5679,6 +5770,12 @@ declare class FormFieldDirective implements FormFieldDirectiveBase {
5679
5770
  private readonly FALLBACK_ID;
5680
5771
  errorId: _angular_core.Signal<string>;
5681
5772
  hintId: _angular_core.Signal<string>;
5773
+ warningId: _angular_core.Signal<string>;
5774
+ /**
5775
+ * The non-blocking advisories the bound field's `warn()` rules produced. They never touch
5776
+ * validity - the field stays valid and submittable while one is shown.
5777
+ */
5778
+ warnings: _angular_core.Signal<readonly FieldWarning[]>;
5682
5779
  shouldDisplayError: _angular_core.Signal<boolean>;
5683
5780
  errors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
5684
5781
  /** Whether the registered control is currently reporting an unparseable committed value. */
@@ -5702,6 +5799,10 @@ declare class FormFieldDirective implements FormFieldDirectiveBase {
5702
5799
  isHidden: _angular_core.Signal<boolean>;
5703
5800
  usesTextFieldShell: _angular_core.Signal<boolean>;
5704
5801
  shouldFloatLabel: _angular_core.Signal<boolean>;
5802
+ /** Whether the field is showing an error message - which a warning gives the slot up to. */
5803
+ displaysErrorMessage: _angular_core.Signal<boolean>;
5804
+ /** Whether a warning is the message the field shows: it has one, and no error is taking the slot. */
5805
+ displaysWarning: _angular_core.Signal<boolean>;
5705
5806
  describedById: _angular_core.Signal<string | null>;
5706
5807
  constructor();
5707
5808
  /** @internal */
@@ -5720,23 +5821,25 @@ declare class FormFieldDirective implements FormFieldDirectiveBase {
5720
5821
  unregisterLabel(label: LabelDirectiveBase): void;
5721
5822
  activate(): void;
5722
5823
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormFieldDirective, never>;
5723
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FormFieldDirective, "[etFormField]", never, {}, {}, never, never, true, never>;
5824
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FormFieldDirective, "[etFormField]", never, {}, {}, ["wrappedFieldBindings"], never, true, never>;
5724
5825
  }
5725
5826
 
5726
5827
  /**
5727
- * The support region under a form control shows at most one of an error or a hint at a time, with
5728
- * an animated cross-fade/slide when it switches. This module owns that little state machine so the
5729
- * text-field shell (`form-field.component`) and the headless `injectFormSupport` (rating, otp,
5730
- * slider, selection groups, dropzone, choice-field, …) share one implementation instead of two
5731
- * that drift. Callers keep their own view-child wiring, error source, and derived signals - only
5732
- * the reducer, state shape, and enum constants live here.
5828
+ * The support region under a form control shows at most one of an error, a warning or a hint at a
5829
+ * time, with an animated cross-fade/slide when it switches. This module owns that little state
5830
+ * machine so the text-field shell (`form-field.component`) and the headless `injectFormSupport`
5831
+ * (rating, otp, slider, selection groups, dropzone, choice-field, …) share one implementation
5832
+ * instead of two that drift. Callers keep their own view-child wiring, error source, and derived
5833
+ * signals - only the reducer, state shape, and enum constants live here.
5733
5834
  */
5734
5835
  declare const SUPPORT_CONTENT_STATE: {
5735
5836
  readonly NONE: "none";
5736
5837
  readonly HINT: "hint";
5838
+ readonly WARNING: "warning";
5737
5839
  readonly ERROR: "error";
5738
5840
  };
5739
5841
  type SupportContentState = (typeof SUPPORT_CONTENT_STATE)[keyof typeof SUPPORT_CONTENT_STATE];
5842
+ type SupportSwappingState = Exclude<SupportContentState, typeof SUPPORT_CONTENT_STATE.NONE>;
5740
5843
  declare const SUPPORT_TRANSITION_DIRECTION: {
5741
5844
  readonly FROM_ABOVE: "from-above";
5742
5845
  readonly FROM_BELOW: "from-below";
@@ -5748,61 +5851,85 @@ type SupportPresentationState = {
5748
5851
  renderedState: SupportContentState;
5749
5852
  leavingState: SupportContentState;
5750
5853
  renderedErrors: readonly ValidationError.WithOptionalFieldTree[];
5751
- frozenErrorColor: string | null;
5752
- errorDirection: SupportTransitionDirection;
5753
- hintDirection: SupportTransitionDirection;
5854
+ renderedWarnings: readonly FieldWarning[];
5855
+ directions: Record<SupportSwappingState, SupportTransitionDirection>;
5754
5856
  };
5755
5857
  type ReduceSupportPresentationInput = {
5756
5858
  presentation: SupportPresentationState;
5757
5859
  semanticSupportState: SupportContentState;
5758
5860
  errors: readonly ValidationError.WithOptionalFieldTree[];
5759
- currentErrorColor: string | null;
5861
+ warnings: readonly FieldWarning[];
5760
5862
  };
5761
5863
  declare const INITIAL_SUPPORT_PRESENTATION_STATE: SupportPresentationState;
5864
+ /**
5865
+ * Drops `state` out of the presentation once its exit animation finished, so the region stops
5866
+ * rendering it and releases the messages it was holding. Call from an injection context, once per
5867
+ * swapping state.
5868
+ */
5869
+ declare const clearLeavingSupportStateOnExit: ({ state, animatable, presentation, semanticSupportState, }: {
5870
+ state: SupportSwappingState;
5871
+ animatable: Signal<AnimatableDirective | undefined>;
5872
+ presentation: WritableSignal<SupportPresentationState>;
5873
+ semanticSupportState: Signal<SupportContentState>;
5874
+ }) => void;
5762
5875
  declare const supportPresentationIncludesState: ({ presentation, state, }: {
5763
5876
  presentation: SupportPresentationState;
5764
5877
  state: SupportContentState;
5765
5878
  }) => boolean;
5766
5879
  /**
5767
- * Advances the presentation state for the newly-resolved `semanticSupportState`, deciding what
5768
- * (if anything) is now leaving and in which direction, and freezing the leaving error's painted
5769
- * color so it doesn't recolor mid-exit.
5880
+ * Advances the presentation state for the newly-resolved `semanticSupportState`, deciding what (if
5881
+ * anything) is now leaving and in which direction, and holding on to the messages of a state that
5882
+ * is animating out so it doesn't empty mid-exit.
5770
5883
  */
5771
- declare const reduceSupportPresentation: ({ presentation, semanticSupportState, errors, currentErrorColor, }: ReduceSupportPresentationInput) => SupportPresentationState;
5884
+ declare const reduceSupportPresentation: ({ presentation, semanticSupportState, errors, warnings, }: ReduceSupportPresentationInput) => SupportPresentationState;
5772
5885
 
5773
5886
  declare const formSupportFactory: () => {
5774
5887
  errorColorTheme: _ethlete_core.ColorTheme;
5888
+ warningColorTheme: Signal<_ethlete_core.ColorTheme | null>;
5775
5889
  formFieldDir: FormFieldDirective;
5776
5890
  errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
5891
+ warningContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
5777
5892
  hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
5778
5893
  errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
5894
+ warningAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
5779
5895
  hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
5780
5896
  semanticSupportState: Signal<SupportContentState>;
5781
5897
  displaysError: Signal<boolean>;
5898
+ displaysWarning: Signal<boolean>;
5782
5899
  shouldRenderSupport: Signal<boolean>;
5783
5900
  shouldRenderError: Signal<boolean>;
5901
+ shouldRenderWarning: Signal<boolean>;
5784
5902
  shouldRenderHint: Signal<boolean>;
5785
5903
  errorActive: Signal<boolean>;
5904
+ warningActive: Signal<boolean>;
5786
5905
  hintActive: Signal<boolean>;
5787
5906
  visibleErrors: Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
5907
+ visibleWarnings: Signal<readonly _ethlete_components.FieldWarning[]>;
5788
5908
  supportHeight: Signal<number>;
5789
5909
  };
5790
5910
  declare const provideFormSupport: () => _angular_core.Provider[];
5791
5911
  declare const injectFormSupport: _ethlete_core.InjectFn<{
5792
5912
  errorColorTheme: _ethlete_core.ColorTheme;
5913
+ warningColorTheme: Signal<_ethlete_core.ColorTheme | null>;
5793
5914
  formFieldDir: FormFieldDirective;
5794
5915
  errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
5916
+ warningContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
5795
5917
  hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
5796
5918
  errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
5919
+ warningAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
5797
5920
  hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
5798
5921
  semanticSupportState: Signal<SupportContentState>;
5799
5922
  displaysError: Signal<boolean>;
5923
+ displaysWarning: Signal<boolean>;
5800
5924
  shouldRenderSupport: Signal<boolean>;
5801
5925
  shouldRenderError: Signal<boolean>;
5926
+ shouldRenderWarning: Signal<boolean>;
5802
5927
  shouldRenderHint: Signal<boolean>;
5803
5928
  errorActive: Signal<boolean>;
5929
+ warningActive: Signal<boolean>;
5804
5930
  hintActive: Signal<boolean>;
5805
5931
  visibleErrors: Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
5932
+ visibleWarnings: Signal<readonly _ethlete_components.FieldWarning[]>;
5806
5933
  supportHeight: Signal<number>;
5807
5934
  }>;
5808
5935
  type FormSupport = ReturnType<typeof formSupportFactory>;
@@ -5814,8 +5941,10 @@ type FormSupport = ReturnType<typeof formSupportFactory>;
5814
5941
  */
5815
5942
  declare const wireFormSupport: (support: FormSupport, refs: {
5816
5943
  errorContent: Signal<ElementRef<HTMLElement> | undefined>;
5944
+ warningContent: Signal<ElementRef<HTMLElement> | undefined>;
5817
5945
  hintContent: Signal<ElementRef<HTMLElement> | undefined>;
5818
5946
  errorAnimatable: Signal<AnimatableDirective | undefined>;
5947
+ warningAnimatable: Signal<AnimatableDirective | undefined>;
5819
5948
  hintAnimatable: Signal<AnimatableDirective | undefined>;
5820
5949
  }) => void;
5821
5950
 
@@ -6951,7 +7080,9 @@ declare class CascaderComponent {
6951
7080
  /** The string in effect: this instance's `searchPlaceholder`, else the domain's label set. */
6952
7081
  protected resolvedSearchPlaceholder: _angular_core.Signal<string>;
6953
7082
  protected showClear: _angular_core.Signal<boolean>;
7083
+ constructor();
6954
7084
  protected handleClearClick(event: Event): void;
7085
+ protected handleArrowClick(event: Event): void;
6955
7086
  protected resultDisabled(path: CascaderNode<unknown>[]): boolean;
6956
7087
  /**
6957
7088
  * Whether a column sits outside the browse window. It stays mounted (the carousel track
@@ -7043,19 +7174,26 @@ type ChoiceFieldVariant = (typeof CHOICE_FIELD_VARIANTS)[keyof typeof CHOICE_FIE
7043
7174
  declare class ChoiceFieldComponent {
7044
7175
  support: {
7045
7176
  errorColorTheme: _ethlete_core.ColorTheme;
7177
+ warningColorTheme: _angular_core.Signal<_ethlete_core.ColorTheme | null>;
7046
7178
  formFieldDir: FormFieldDirective;
7047
7179
  errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
7180
+ warningContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
7048
7181
  hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
7049
7182
  errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
7183
+ warningAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
7050
7184
  hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
7051
7185
  semanticSupportState: _angular_core.Signal<_ethlete_components.SupportContentState>;
7052
7186
  displaysError: _angular_core.Signal<boolean>;
7187
+ displaysWarning: _angular_core.Signal<boolean>;
7053
7188
  shouldRenderSupport: _angular_core.Signal<boolean>;
7054
7189
  shouldRenderError: _angular_core.Signal<boolean>;
7190
+ shouldRenderWarning: _angular_core.Signal<boolean>;
7055
7191
  shouldRenderHint: _angular_core.Signal<boolean>;
7056
7192
  errorActive: _angular_core.Signal<boolean>;
7193
+ warningActive: _angular_core.Signal<boolean>;
7057
7194
  hintActive: _angular_core.Signal<boolean>;
7058
7195
  visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
7196
+ visibleWarnings: _angular_core.Signal<readonly _ethlete_components.FieldWarning[]>;
7059
7197
  supportHeight: _angular_core.Signal<number>;
7060
7198
  };
7061
7199
  private styleManager;
@@ -7067,8 +7205,10 @@ declare class ChoiceFieldComponent {
7067
7205
  */
7068
7206
  variant: _angular_core.InputSignal<ChoiceFieldVariant>;
7069
7207
  private errorContentRef;
7208
+ private warningContentRef;
7070
7209
  private hintContentRef;
7071
7210
  private errorAnimatableRef;
7211
+ private warningAnimatableRef;
7072
7212
  private hintAnimatableRef;
7073
7213
  canAnimate: {
7074
7214
  state: _angular_core.Signal<boolean>;
@@ -8316,20 +8456,31 @@ type ResolvedDropzoneUploadConfig<TValue = unknown> = {
8316
8456
  * `null` on success.
8317
8457
  */
8318
8458
  executeDelete?: (options: DropzoneDeleteOptions<TValue>) => Promise<DropzoneUploadError | null>;
8459
+ /** @internal @see DropzoneDeleteConfig.includeExisting */
8460
+ deleteIncludesExisting?: boolean;
8319
8461
  };
8320
8462
  type AnyDropzoneUploadConfig<TValue = unknown> = ResolvedDropzoneUploadConfig<TValue>;
8321
8463
  /**
8322
- * The authoring config for a delete request run when an already-persisted entry (a successful
8323
- * upload or an existing value) is removed - e.g. a `DELETE` route that cleans up the uploaded
8324
- * file server-side. Nest it under `DropzoneUploadConfig.delete` / `V2DropzoneUploadConfig.delete`.
8325
- * Removing a still-uploading entry only cancels its upload; nothing was persisted yet, so no
8326
- * delete request is made.
8464
+ * The authoring config for a delete request run when an entry uploaded in this session is removed
8465
+ * - e.g. a `DELETE` route that cleans up the uploaded file server-side. Nest it under
8466
+ * `DropzoneUploadConfig.delete` / `V2DropzoneUploadConfig.delete`. Removing a still-uploading entry
8467
+ * only cancels its upload; nothing was persisted yet, so no delete request is made. A value the
8468
+ * control started with is left alone unless `includeExisting` says otherwise.
8327
8469
  */
8328
8470
  type DropzoneDeleteConfig<TArgs extends QueryArgs, TValue> = {
8329
8471
  /** The query creator used to delete one value (e.g. a `DELETE /media/:id` route). */
8330
8472
  queryCreator: QueryCreator<TArgs>;
8331
8473
  /** Builds the request args to delete one value, e.g. `(id) => ({ pathParams: { id } })`. */
8332
8474
  createArgs: (value: TValue) => RequestArgs<TArgs>;
8475
+ /**
8476
+ * Whether removing a value the control started with - one resolved through `resolveExisting`,
8477
+ * rather than uploaded in this session - also deletes it server-side. Off by default: an edit
8478
+ * form is usually detaching a record something else owns, not cleaning up after itself. Turn it
8479
+ * on where the control owns every value it shows.
8480
+ *
8481
+ * @default false
8482
+ */
8483
+ includeExisting?: boolean;
8333
8484
  };
8334
8485
  /** The authoring config for `createDropzoneUpload` (new `@ethlete/query` API). */
8335
8486
  type DropzoneUploadConfig<TArgs extends QueryArgs = QueryArgs, TValue = unknown, TDeleteArgs extends QueryArgs = QueryArgs> = {
@@ -8364,7 +8515,8 @@ type DropzoneUploadConfig<TArgs extends QueryArgs = QueryArgs, TValue = unknown,
8364
8515
  */
8365
8516
  resolveExisting?: (value: TValue) => DropzoneExistingFileInfo;
8366
8517
  /**
8367
- * Run when an already-persisted entry (a successful upload or an existing value) is removed.
8518
+ * Run when an entry uploaded in this session is removed - and, with `includeExisting`, when a
8519
+ * value the control started with is removed too.
8368
8520
  * Absent: removing an entry only updates the control locally, with no server-side cleanup.
8369
8521
  */
8370
8522
  delete?: DropzoneDeleteConfig<TDeleteArgs, TValue>;
@@ -8377,6 +8529,8 @@ type V2DropzoneDeleteConfig<TCreator extends AnyV2QueryCreator | AnyLegacyQueryC
8377
8529
  queryCreator: TCreator;
8378
8530
  /** Builds the `prepare()` args to delete one value, e.g. `(id) => ({ pathParams: { id } })`. */
8379
8531
  createArgs: (value: TValue) => V2DropzonePrepareArgsOf<TCreator>;
8532
+ /** @see DropzoneDeleteConfig.includeExisting */
8533
+ includeExisting?: boolean;
8380
8534
  };
8381
8535
  /**
8382
8536
  * The authoring config for `createV2DropzoneUpload` - the legacy `V2QueryClient` counterpart of
@@ -8415,7 +8569,8 @@ type V2DropzoneUploadConfig<TCreator extends AnyV2QueryCreator | AnyLegacyQueryC
8415
8569
  */
8416
8570
  resolveExisting?: (value: TValue) => DropzoneExistingFileInfo;
8417
8571
  /**
8418
- * Run when an already-persisted entry (a successful upload or an existing value) is removed.
8572
+ * Run when an entry uploaded in this session is removed - and, with `includeExisting`, when a
8573
+ * value the control started with is removed too.
8419
8574
  * Absent: removing an entry only updates the control locally, with no server-side cleanup.
8420
8575
  */
8421
8576
  delete?: V2DropzoneDeleteConfig<TDeleteCreator, TValue>;
@@ -8648,19 +8803,26 @@ declare class DropzoneComponent {
8648
8803
  protected dropzoneDir: DropzoneDirective<any>;
8649
8804
  support: {
8650
8805
  errorColorTheme: _ethlete_core.ColorTheme;
8806
+ warningColorTheme: _angular_core.Signal<_ethlete_core.ColorTheme | null>;
8651
8807
  formFieldDir: FormFieldDirective;
8652
8808
  errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
8809
+ warningContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
8653
8810
  hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
8654
8811
  errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
8812
+ warningAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
8655
8813
  hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
8656
8814
  semanticSupportState: _angular_core.Signal<_ethlete_components.SupportContentState>;
8657
8815
  displaysError: _angular_core.Signal<boolean>;
8816
+ displaysWarning: _angular_core.Signal<boolean>;
8658
8817
  shouldRenderSupport: _angular_core.Signal<boolean>;
8659
8818
  shouldRenderError: _angular_core.Signal<boolean>;
8819
+ shouldRenderWarning: _angular_core.Signal<boolean>;
8660
8820
  shouldRenderHint: _angular_core.Signal<boolean>;
8661
8821
  errorActive: _angular_core.Signal<boolean>;
8822
+ warningActive: _angular_core.Signal<boolean>;
8662
8823
  hintActive: _angular_core.Signal<boolean>;
8663
8824
  visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
8825
+ visibleWarnings: _angular_core.Signal<readonly _ethlete_components.FieldWarning[]>;
8664
8826
  supportHeight: _angular_core.Signal<number>;
8665
8827
  };
8666
8828
  private injector;
@@ -8679,8 +8841,10 @@ declare class DropzoneComponent {
8679
8841
  private fileInput;
8680
8842
  private browseButton;
8681
8843
  private errorContentRef;
8844
+ private warningContentRef;
8682
8845
  private hintContentRef;
8683
8846
  private errorAnimatableRef;
8847
+ private warningAnimatableRef;
8684
8848
  private hintAnimatableRef;
8685
8849
  private entryElements;
8686
8850
  /** The string in effect: this instance's `retryLabel`, else the domain's label set. */
@@ -8810,10 +8974,27 @@ declare const provideFormFieldLabels: (labels: _ethlete_core.LabelsSource<FormFi
8810
8974
  declare const injectFormFieldLabels: () => _angular_core.Signal<FormFieldLabels>;
8811
8975
  declare const FORM_FIELD_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSource<FormFieldLabels>>;
8812
8976
 
8977
+ /**
8978
+ * Resolves the text shown for a field warning. Return `null` to fall back to the warning's own
8979
+ * `message`. Lets an app centralize/localize warning texts by `kind` instead of putting a `message`
8980
+ * on every `warn()` rule.
8981
+ */
8982
+ type FormWarningMessageResolver = (warning: FieldWarning) => string | null;
8983
+ declare const FORM_WARNING_MESSAGE_RESOLVER: InjectionToken<FormWarningMessageResolver>;
8984
+ declare const provideFormWarningMessageResolver: (resolver: FormWarningMessageResolver) => Provider;
8985
+ declare class FormWarningComponent {
8986
+ private messageResolver;
8987
+ warning: _angular_core.InputSignal<FieldWarning>;
8988
+ protected message: _angular_core.Signal<string>;
8989
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormWarningComponent, never>;
8990
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormWarningComponent, "et-form-warning", never, { "warning": { "alias": "warning"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
8991
+ }
8992
+
8813
8993
  declare class FormFieldComponent {
8814
8994
  private provideColor;
8815
8995
  private provideSurface;
8816
8996
  private parentSurfaceProvider;
8997
+ private injector;
8817
8998
  protected formFieldDir: FormFieldDirective;
8818
8999
  protected errorColorTheme: _ethlete_core.ColorTheme;
8819
9000
  private surfaceThemes;
@@ -8827,15 +9008,18 @@ declare class FormFieldComponent {
8827
9008
  */
8828
9009
  busy: _angular_core.InputSignalWithTransform<boolean, unknown>;
8829
9010
  protected errorContent: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
9011
+ protected warningContent: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
8830
9012
  protected hintContent: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
8831
9013
  counterContent: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
8832
9014
  private controlFrame;
8833
9015
  prefixEl: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
8834
9016
  protected errorAnimatable: _angular_core.Signal<AnimatableDirective | undefined>;
9017
+ protected warningAnimatable: _angular_core.Signal<AnimatableDirective | undefined>;
8835
9018
  protected hintAnimatable: _angular_core.Signal<AnimatableDirective | undefined>;
8836
9019
  /** Whether the field is showing its busy affordance - a pending async validator, or `[busy]`. */
8837
9020
  isBusy: _angular_core.Signal<boolean>;
8838
9021
  private errorDimensions;
9022
+ private warningDimensions;
8839
9023
  private hintDimensions;
8840
9024
  private counterDimensions;
8841
9025
  private prefixDimensions;
@@ -8847,16 +9031,23 @@ declare class FormFieldComponent {
8847
9031
  effectiveErrors: _angular_core.Signal<readonly ValidationError.WithOptionalFieldTree[]>;
8848
9032
  semanticSupportState: _angular_core.Signal<SupportContentState>;
8849
9033
  protected displaysError: _angular_core.Signal<boolean>;
9034
+ protected displaysWarning: _angular_core.Signal<boolean>;
8850
9035
  protected hasFloatingTextLabel: _angular_core.Signal<boolean>;
8851
9036
  protected hasInlineLabel: _angular_core.Signal<boolean>;
8852
9037
  protected prefixOffset: _angular_core.Signal<string | null>;
8853
9038
  protected shouldRenderSupport: _angular_core.Signal<boolean>;
8854
9039
  protected shouldRenderError: _angular_core.Signal<boolean>;
9040
+ protected shouldRenderWarning: _angular_core.Signal<boolean>;
8855
9041
  protected shouldRenderHint: _angular_core.Signal<boolean>;
9042
+ protected warningColorTheme: _angular_core.Signal<_ethlete_core.ColorTheme | null>;
8856
9043
  protected errorActive: _angular_core.Signal<boolean>;
8857
9044
  protected errorState: _angular_core.Signal<"leaving" | "active">;
8858
9045
  protected errorDirection: _angular_core.Signal<_ethlete_components.SupportTransitionDirection>;
8859
9046
  protected visibleErrors: _angular_core.Signal<readonly ValidationError.WithOptionalFieldTree[]>;
9047
+ protected warningActive: _angular_core.Signal<boolean>;
9048
+ protected warningState: _angular_core.Signal<"leaving" | "active">;
9049
+ protected warningDirection: _angular_core.Signal<_ethlete_components.SupportTransitionDirection>;
9050
+ protected visibleWarnings: _angular_core.Signal<readonly _ethlete_components.FieldWarning[]>;
8860
9051
  protected hintActive: _angular_core.Signal<boolean>;
8861
9052
  protected hintState: _angular_core.Signal<"leaving" | "active">;
8862
9053
  protected hintDirection: _angular_core.Signal<_ethlete_components.SupportTransitionDirection>;
@@ -9049,7 +9240,11 @@ declare class PasswordInputDirective extends TextFieldControlDirective implement
9049
9240
  autocomplete: _angular_core.InputSignal<string>;
9050
9241
  /** Whether the value is currently shown as plain text. */
9051
9242
  revealed: _angular_core.ModelSignal<boolean>;
9052
- /** Whether Caps Lock was active on the last keystroke - feed it via `syncCapsLock`. */
9243
+ /**
9244
+ * Whether Caps Lock is known to be on - feed it via `syncCapsLock`. Only ever `true` off a
9245
+ * reading that can be trusted, so it lags one keystroke behind Caps Lock being switched on
9246
+ * rather than reporting it as still on after it has been switched off.
9247
+ */
9053
9248
  capsLockOn: _angular_core.WritableSignal<boolean>;
9054
9249
  /**
9055
9250
  * A 0–4 typing-feedback score from a simple length + character-class heuristic -
@@ -9080,12 +9275,12 @@ declare class PasswordInputDirective extends TextFieldControlDirective implement
9080
9275
  syncFromNativeInput(inputElement: HTMLInputElement): void;
9081
9276
  toggleRevealed(): void;
9082
9277
  /**
9083
- * Feed keyboard or pointer events from the native input so `capsLockOn` stays current.
9084
- * Pointer events matter for the focus case: clicking into an already-Caps-Lock-on field
9085
- * fires no keystroke, so the warning would otherwise not appear until the first key -
9086
- * `MouseEvent`/`PointerEvent` carry `getModifierState`, `FocusEvent` does not.
9278
+ * Feed keyboard, pointer or focus events from the native input so `capsLockOn` stays current.
9279
+ * Pointer events matter for the focus case: clicking into an already-Caps-Lock-on field fires no
9280
+ * keystroke, so the warning would otherwise not appear until the first key. Events that cannot
9281
+ * report the state - `FocusEvent`, and the Caps Lock key itself - clear it.
9087
9282
  */
9088
- syncCapsLock(event: KeyboardEvent | MouseEvent): void;
9283
+ syncCapsLock(event: KeyboardEvent | MouseEvent | FocusEvent): void;
9089
9284
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PasswordInputDirective, never>;
9090
9285
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PasswordInputDirective, "[etPasswordInput]", ["etPasswordInput"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "revealed": { "alias": "revealed"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "revealed": "revealedChange"; }, never, never, true, never>;
9091
9286
  }
@@ -9104,7 +9299,7 @@ type InputLabels = {
9104
9299
  showPassword: string;
9105
9300
  /** Accessible label for the password input's control while the value is visible. */
9106
9301
  hidePassword: string;
9107
- /** The password input's warning that Caps Lock is on. */
9302
+ /** The password input's warning that Caps Lock may be on. */
9108
9303
  capsLockOn: string;
9109
9304
  };
9110
9305
  /** The built-in English labels. */
@@ -9185,9 +9380,10 @@ declare class PasswordInputComponent {
9185
9380
  protected resolvedHideLabel: _angular_core.Signal<string>;
9186
9381
  /** The string in effect: this instance's `capsLockLabel`, else the domain's label set. */
9187
9382
  protected resolvedCapsLockLabel: _angular_core.Signal<string>;
9383
+ protected showCapsLockWarning: _angular_core.Signal<boolean>;
9188
9384
  constructor();
9189
- protected showCapsLockWarning(): boolean;
9190
9385
  syncNativeValue(event: Event): void;
9386
+ protected handleBlur(event: FocusEvent): void;
9191
9387
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PasswordInputComponent, never>;
9192
9388
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<PasswordInputComponent, "et-password-input", never, { "revealable": { "alias": "revealable"; "required": false; "isSignal": true; }; "revealLabel": { "alias": "revealLabel"; "required": false; "isSignal": true; }; "hideLabel": { "alias": "hideLabel"; "required": false; "isSignal": true; }; "capsLockWarning": { "alias": "capsLockWarning"; "required": false; "isSignal": true; }; "capsLockLabel": { "alias": "capsLockLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof PasswordInputDirective; inputs: { "placeholder": "placeholder"; "autocomplete": "autocomplete"; "value": "value"; "mixed": "mixed"; "mixedLabel": "mixedLabel"; "revealed": "revealed"; "disabled": "disabled"; "readonly": "readonly"; "hidden": "hidden"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "maxLength": "maxLength"; "pending": "pending"; "aria-label": "aria-label"; "aria-labelledby": "aria-labelledby"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; "revealedChange": "revealedChange"; }; }, { directive: typeof _ethlete_core.ColorInteractiveDirective; inputs: {}; outputs: {}; }]>;
9193
9389
  }
@@ -11533,26 +11729,35 @@ declare class OtpInputDirective implements FormValueControl<string>, FormFieldCo
11533
11729
  declare class OtpInputComponent {
11534
11730
  support: {
11535
11731
  errorColorTheme: _ethlete_core.ColorTheme;
11732
+ warningColorTheme: _angular_core.Signal<_ethlete_core.ColorTheme | null>;
11536
11733
  formFieldDir: FormFieldDirective;
11537
11734
  errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
11735
+ warningContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
11538
11736
  hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
11539
11737
  errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
11738
+ warningAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
11540
11739
  hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
11541
11740
  semanticSupportState: _angular_core.Signal<_ethlete_components.SupportContentState>;
11542
11741
  displaysError: _angular_core.Signal<boolean>;
11742
+ displaysWarning: _angular_core.Signal<boolean>;
11543
11743
  shouldRenderSupport: _angular_core.Signal<boolean>;
11544
11744
  shouldRenderError: _angular_core.Signal<boolean>;
11745
+ shouldRenderWarning: _angular_core.Signal<boolean>;
11545
11746
  shouldRenderHint: _angular_core.Signal<boolean>;
11546
11747
  errorActive: _angular_core.Signal<boolean>;
11748
+ warningActive: _angular_core.Signal<boolean>;
11547
11749
  hintActive: _angular_core.Signal<boolean>;
11548
11750
  visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
11751
+ visibleWarnings: _angular_core.Signal<readonly _ethlete_components.FieldWarning[]>;
11549
11752
  supportHeight: _angular_core.Signal<number>;
11550
11753
  };
11551
11754
  protected otp: OtpInputDirective;
11552
11755
  nativeInput: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
11553
11756
  private errorContentRef;
11757
+ private warningContentRef;
11554
11758
  private hintContentRef;
11555
11759
  private errorAnimatableRef;
11760
+ private warningAnimatableRef;
11556
11761
  private hintAnimatableRef;
11557
11762
  canAnimate: {
11558
11763
  state: _angular_core.Signal<boolean>;
@@ -11853,27 +12058,36 @@ declare class RatingIconDirective {
11853
12058
  declare class RatingComponent {
11854
12059
  support: {
11855
12060
  errorColorTheme: _ethlete_core.ColorTheme;
12061
+ warningColorTheme: _angular_core.Signal<_ethlete_core.ColorTheme | null>;
11856
12062
  formFieldDir: FormFieldDirective;
11857
12063
  errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
12064
+ warningContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
11858
12065
  hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
11859
12066
  errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
12067
+ warningAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
11860
12068
  hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
11861
12069
  semanticSupportState: _angular_core.Signal<_ethlete_components.SupportContentState>;
11862
12070
  displaysError: _angular_core.Signal<boolean>;
12071
+ displaysWarning: _angular_core.Signal<boolean>;
11863
12072
  shouldRenderSupport: _angular_core.Signal<boolean>;
11864
12073
  shouldRenderError: _angular_core.Signal<boolean>;
12074
+ shouldRenderWarning: _angular_core.Signal<boolean>;
11865
12075
  shouldRenderHint: _angular_core.Signal<boolean>;
11866
12076
  errorActive: _angular_core.Signal<boolean>;
12077
+ warningActive: _angular_core.Signal<boolean>;
11867
12078
  hintActive: _angular_core.Signal<boolean>;
11868
12079
  visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
12080
+ visibleWarnings: _angular_core.Signal<readonly _ethlete_components.FieldWarning[]>;
11869
12081
  supportHeight: _angular_core.Signal<number>;
11870
12082
  };
11871
12083
  protected rating: RatingDirective;
11872
12084
  private destroyRef;
11873
12085
  private baseIcons;
11874
12086
  private errorContentRef;
12087
+ private warningContentRef;
11875
12088
  private hintContentRef;
11876
12089
  private errorAnimatableRef;
12090
+ private warningAnimatableRef;
11877
12091
  private hintAnimatableRef;
11878
12092
  canAnimate: {
11879
12093
  state: _angular_core.Signal<boolean>;
@@ -12946,37 +13160,55 @@ declare class SelectionListDirective implements SelectionListDirectiveBase, Form
12946
13160
  errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
12947
13161
  required: _angular_core.InputSignalWithTransform<boolean, unknown>;
12948
13162
  name: _angular_core.InputSignal<string>;
13163
+ /**
13164
+ * `aria-label` / `aria-labelledby` written on the group itself, for a set of options named by
13165
+ * something other than a projected `<et-label>` - a filter toolbar whose caption sits elsewhere, a
13166
+ * segmented control whose name should not be visible. Without them the field's dev-time labelling
13167
+ * guard (ET2201) fires on a group that *is* labelled.
13168
+ */
13169
+ ariaLabel: _angular_core.InputSignal<string | null>;
13170
+ ariaLabelledby: _angular_core.InputSignal<string | null>;
12949
13171
  multiple: _angular_core.Signal<boolean>;
12950
13172
  selection: SelectionState<unknown, SelectionListItem>;
12951
13173
  shouldDisplayError: _angular_core.Signal<boolean>;
12952
13174
  role: _angular_core.Signal<"group" | "radiogroup">;
12953
13175
  describedBy: _angular_core.WritableSignal<string | null>;
12954
13176
  controlType: _angular_core.WritableSignal<"selection-list">;
13177
+ private registeredLabelId;
13178
+ /** A consumer-supplied `aria-labelledby` wins over the id of a projected `<et-label>`. */
12955
13179
  labelId: _angular_core.Signal<string | null>;
13180
+ hasCustomAccessibleName: _angular_core.Signal<boolean>;
12956
13181
  constructor();
12957
13182
  markTouched(): void;
12958
13183
  focusItem(item: SelectionListItem): void;
12959
13184
  activate(): void;
12960
13185
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectionListDirective, never>;
12961
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectionListDirective, "[etSelectionList]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "mixed": { "alias": "mixed"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "multipleInput": { "alias": "multiple"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "mixed": "mixedChange"; "touched": "touchedChange"; }, never, never, true, never>;
13186
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectionListDirective, "[etSelectionList]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "mixed": { "alias": "mixed"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "multipleInput": { "alias": "multiple"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "mixed": "mixedChange"; "touched": "touchedChange"; }, never, never, true, never>;
12962
13187
  }
12963
13188
 
12964
13189
  declare class CheckboxGroupComponent {
12965
13190
  support: {
12966
13191
  errorColorTheme: _ethlete_core.ColorTheme;
13192
+ warningColorTheme: _angular_core.Signal<_ethlete_core.ColorTheme | null>;
12967
13193
  formFieldDir: FormFieldDirective;
12968
13194
  errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
13195
+ warningContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
12969
13196
  hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
12970
13197
  errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
13198
+ warningAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
12971
13199
  hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
12972
13200
  semanticSupportState: _angular_core.Signal<_ethlete_components.SupportContentState>;
12973
13201
  displaysError: _angular_core.Signal<boolean>;
13202
+ displaysWarning: _angular_core.Signal<boolean>;
12974
13203
  shouldRenderSupport: _angular_core.Signal<boolean>;
12975
13204
  shouldRenderError: _angular_core.Signal<boolean>;
13205
+ shouldRenderWarning: _angular_core.Signal<boolean>;
12976
13206
  shouldRenderHint: _angular_core.Signal<boolean>;
12977
13207
  errorActive: _angular_core.Signal<boolean>;
13208
+ warningActive: _angular_core.Signal<boolean>;
12978
13209
  hintActive: _angular_core.Signal<boolean>;
12979
13210
  visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
13211
+ visibleWarnings: _angular_core.Signal<readonly _ethlete_components.FieldWarning[]>;
12980
13212
  supportHeight: _angular_core.Signal<number>;
12981
13213
  };
12982
13214
  size: _angular_core.InputSignal<FormFieldSize>;
@@ -12990,15 +13222,17 @@ declare class CheckboxGroupComponent {
12990
13222
  */
12991
13223
  orientation: _angular_core.InputSignal<SelectionListOrientation>;
12992
13224
  private errorContentRef;
13225
+ private warningContentRef;
12993
13226
  private hintContentRef;
12994
13227
  private errorAnimatableRef;
13228
+ private warningAnimatableRef;
12995
13229
  private hintAnimatableRef;
12996
13230
  canAnimate: {
12997
13231
  state: _angular_core.Signal<boolean>;
12998
13232
  };
12999
13233
  constructor();
13000
13234
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckboxGroupComponent, never>;
13001
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxGroupComponent, "et-checkbox-group", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, ["*", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof SelectionListDirective; inputs: { "value": "value"; "mixed": "mixed"; "touched": "touched"; "disabled": "disabled"; "readonly": "readonly"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
13235
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxGroupComponent, "et-checkbox-group", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, ["*", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof SelectionListDirective; inputs: { "value": "value"; "mixed": "mixed"; "touched": "touched"; "disabled": "disabled"; "readonly": "readonly"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "aria-label": "aria-label"; "aria-labelledby": "aria-labelledby"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
13002
13236
  }
13003
13237
 
13004
13238
  declare class SelectionOptionDirective {
@@ -13050,19 +13284,26 @@ declare class CheckboxOptionComponent {
13050
13284
  declare class RadioGroupComponent {
13051
13285
  support: {
13052
13286
  errorColorTheme: _ethlete_core.ColorTheme;
13287
+ warningColorTheme: _angular_core.Signal<_ethlete_core.ColorTheme | null>;
13053
13288
  formFieldDir: FormFieldDirective;
13054
13289
  errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
13290
+ warningContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
13055
13291
  hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
13056
13292
  errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
13293
+ warningAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
13057
13294
  hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
13058
13295
  semanticSupportState: _angular_core.Signal<_ethlete_components.SupportContentState>;
13059
13296
  displaysError: _angular_core.Signal<boolean>;
13297
+ displaysWarning: _angular_core.Signal<boolean>;
13060
13298
  shouldRenderSupport: _angular_core.Signal<boolean>;
13061
13299
  shouldRenderError: _angular_core.Signal<boolean>;
13300
+ shouldRenderWarning: _angular_core.Signal<boolean>;
13062
13301
  shouldRenderHint: _angular_core.Signal<boolean>;
13063
13302
  errorActive: _angular_core.Signal<boolean>;
13303
+ warningActive: _angular_core.Signal<boolean>;
13064
13304
  hintActive: _angular_core.Signal<boolean>;
13065
13305
  visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
13306
+ visibleWarnings: _angular_core.Signal<readonly _ethlete_components.FieldWarning[]>;
13066
13307
  supportHeight: _angular_core.Signal<number>;
13067
13308
  };
13068
13309
  size: _angular_core.InputSignal<FormFieldSize>;
@@ -13076,15 +13317,17 @@ declare class RadioGroupComponent {
13076
13317
  */
13077
13318
  orientation: _angular_core.InputSignal<SelectionListOrientation>;
13078
13319
  private errorContentRef;
13320
+ private warningContentRef;
13079
13321
  private hintContentRef;
13080
13322
  private errorAnimatableRef;
13323
+ private warningAnimatableRef;
13081
13324
  private hintAnimatableRef;
13082
13325
  canAnimate: {
13083
13326
  state: _angular_core.Signal<boolean>;
13084
13327
  };
13085
13328
  constructor();
13086
13329
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioGroupComponent, never>;
13087
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioGroupComponent, "et-radio-group", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, ["*", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof SelectionListDirective; inputs: { "value": "value"; "mixed": "mixed"; "touched": "touched"; "disabled": "disabled"; "readonly": "readonly"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
13330
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioGroupComponent, "et-radio-group", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, ["*", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof SelectionListDirective; inputs: { "value": "value"; "mixed": "mixed"; "touched": "touched"; "disabled": "disabled"; "readonly": "readonly"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "aria-label": "aria-label"; "aria-labelledby": "aria-labelledby"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
13088
13331
  }
13089
13332
 
13090
13333
  /** How a radio presents itself. See {@link RadioComponent.variant}. */
@@ -13119,19 +13362,26 @@ type SegmentedButtonGroupVariant = (typeof SEGMENTED_BUTTON_GROUP_VARIANTS)[keyo
13119
13362
  declare class SegmentedButtonGroupComponent {
13120
13363
  support: {
13121
13364
  errorColorTheme: _ethlete_core.ColorTheme;
13365
+ warningColorTheme: _angular_core.Signal<_ethlete_core.ColorTheme | null>;
13122
13366
  formFieldDir: FormFieldDirective;
13123
13367
  errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
13368
+ warningContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
13124
13369
  hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
13125
13370
  errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
13371
+ warningAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
13126
13372
  hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
13127
13373
  semanticSupportState: _angular_core.Signal<_ethlete_components.SupportContentState>;
13128
13374
  displaysError: _angular_core.Signal<boolean>;
13375
+ displaysWarning: _angular_core.Signal<boolean>;
13129
13376
  shouldRenderSupport: _angular_core.Signal<boolean>;
13130
13377
  shouldRenderError: _angular_core.Signal<boolean>;
13378
+ shouldRenderWarning: _angular_core.Signal<boolean>;
13131
13379
  shouldRenderHint: _angular_core.Signal<boolean>;
13132
13380
  errorActive: _angular_core.Signal<boolean>;
13381
+ warningActive: _angular_core.Signal<boolean>;
13133
13382
  hintActive: _angular_core.Signal<boolean>;
13134
13383
  visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
13384
+ visibleWarnings: _angular_core.Signal<readonly _ethlete_components.FieldWarning[]>;
13135
13385
  supportHeight: _angular_core.Signal<number>;
13136
13386
  };
13137
13387
  size: _angular_core.InputSignal<FormFieldSize>;
@@ -13145,9 +13395,12 @@ declare class SegmentedButtonGroupComponent {
13145
13395
  */
13146
13396
  variant: _angular_core.InputSignal<SegmentedButtonGroupVariant>;
13147
13397
  private errorContentRef;
13398
+ private warningContentRef;
13148
13399
  private hintContentRef;
13149
13400
  private errorAnimatableRef;
13401
+ private warningAnimatableRef;
13150
13402
  private hintAnimatableRef;
13403
+ protected isTabsVariant: _angular_core.Signal<boolean>;
13151
13404
  /** @internal The active background element of the currently checked button. Used as the flip animation origin. */
13152
13405
  lastActiveBackgroundElement: _angular_core.WritableSignal<HTMLElement | null>;
13153
13406
  canAnimate: {
@@ -13155,7 +13408,7 @@ declare class SegmentedButtonGroupComponent {
13155
13408
  };
13156
13409
  constructor();
13157
13410
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SegmentedButtonGroupComponent, never>;
13158
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SegmentedButtonGroupComponent, "et-segmented-button-group", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, ["et-label", ".et-segmented-button-group-label", "*", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof SelectionListDirective; inputs: { "value": "value"; "mixed": "mixed"; "touched": "touched"; "disabled": "disabled"; "readonly": "readonly"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
13411
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SegmentedButtonGroupComponent, "et-segmented-button-group", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, ["et-label", ".et-segmented-button-group-label", "*", "et-hint"], true, [{ directive: typeof FormFieldDirective; inputs: {}; outputs: {}; }, { directive: typeof SelectionListDirective; inputs: { "value": "value"; "mixed": "mixed"; "touched": "touched"; "disabled": "disabled"; "readonly": "readonly"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "aria-label": "aria-label"; "aria-labelledby": "aria-labelledby"; }; outputs: { "valueChange": "valueChange"; "mixedChange": "mixedChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }]>;
13159
13412
  }
13160
13413
 
13161
13414
  declare class SegmentedButtonComponent {
@@ -13476,19 +13729,26 @@ declare class RangeSliderComponent {
13476
13729
  private sliderLabels;
13477
13730
  support: {
13478
13731
  errorColorTheme: _ethlete_core.ColorTheme;
13732
+ warningColorTheme: _angular_core.Signal<_ethlete_core.ColorTheme | null>;
13479
13733
  formFieldDir: FormFieldDirective;
13480
13734
  errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
13735
+ warningContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
13481
13736
  hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
13482
13737
  errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
13738
+ warningAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
13483
13739
  hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
13484
13740
  semanticSupportState: _angular_core.Signal<_ethlete_components.SupportContentState>;
13485
13741
  displaysError: _angular_core.Signal<boolean>;
13742
+ displaysWarning: _angular_core.Signal<boolean>;
13486
13743
  shouldRenderSupport: _angular_core.Signal<boolean>;
13487
13744
  shouldRenderError: _angular_core.Signal<boolean>;
13745
+ shouldRenderWarning: _angular_core.Signal<boolean>;
13488
13746
  shouldRenderHint: _angular_core.Signal<boolean>;
13489
13747
  errorActive: _angular_core.Signal<boolean>;
13748
+ warningActive: _angular_core.Signal<boolean>;
13490
13749
  hintActive: _angular_core.Signal<boolean>;
13491
13750
  visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
13751
+ visibleWarnings: _angular_core.Signal<readonly _ethlete_components.FieldWarning[]>;
13492
13752
  supportHeight: _angular_core.Signal<number>;
13493
13753
  };
13494
13754
  protected slider: RangeSliderDirective;
@@ -13497,8 +13757,10 @@ declare class RangeSliderComponent {
13497
13757
  /** Accessible name of the end thumb. */
13498
13758
  endLabel: _angular_core.InputSignal<string | null>;
13499
13759
  private errorContentRef;
13760
+ private warningContentRef;
13500
13761
  private hintContentRef;
13501
13762
  private errorAnimatableRef;
13763
+ private warningAnimatableRef;
13502
13764
  private hintAnimatableRef;
13503
13765
  /** The string in effect: this instance's `startLabel`, else the domain's label set. */
13504
13766
  protected resolvedStartLabel: _angular_core.Signal<string>;
@@ -13550,25 +13812,34 @@ declare const SLIDER_LABELS: _angular_core.InjectionToken<_ethlete_core.LabelsSo
13550
13812
  declare class SliderComponent {
13551
13813
  support: {
13552
13814
  errorColorTheme: _ethlete_core.ColorTheme;
13815
+ warningColorTheme: _angular_core.Signal<_ethlete_core.ColorTheme | null>;
13553
13816
  formFieldDir: FormFieldDirective;
13554
13817
  errorContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
13818
+ warningContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
13555
13819
  hintContent: _angular_core.WritableSignal<ElementRef<HTMLElement> | undefined>;
13556
13820
  errorAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
13821
+ warningAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
13557
13822
  hintAnimatable: _angular_core.WritableSignal<AnimatableDirective | undefined>;
13558
13823
  semanticSupportState: _angular_core.Signal<_ethlete_components.SupportContentState>;
13559
13824
  displaysError: _angular_core.Signal<boolean>;
13825
+ displaysWarning: _angular_core.Signal<boolean>;
13560
13826
  shouldRenderSupport: _angular_core.Signal<boolean>;
13561
13827
  shouldRenderError: _angular_core.Signal<boolean>;
13828
+ shouldRenderWarning: _angular_core.Signal<boolean>;
13562
13829
  shouldRenderHint: _angular_core.Signal<boolean>;
13563
13830
  errorActive: _angular_core.Signal<boolean>;
13831
+ warningActive: _angular_core.Signal<boolean>;
13564
13832
  hintActive: _angular_core.Signal<boolean>;
13565
13833
  visibleErrors: _angular_core.Signal<readonly _angular_forms_signals.ValidationError.WithOptionalFieldTree[]>;
13834
+ visibleWarnings: _angular_core.Signal<readonly _ethlete_components.FieldWarning[]>;
13566
13835
  supportHeight: _angular_core.Signal<number>;
13567
13836
  };
13568
13837
  protected slider: SliderDirective;
13569
13838
  private errorContentRef;
13839
+ private warningContentRef;
13570
13840
  private hintContentRef;
13571
13841
  private errorAnimatableRef;
13842
+ private warningAnimatableRef;
13572
13843
  private hintAnimatableRef;
13573
13844
  /** Labelled ticks need room next to the track - the stylesheet reserves it off this flag. */
13574
13845
  protected hasMarkLabels: _angular_core.Signal<boolean>;
@@ -13806,10 +14077,10 @@ type GridBreakpointConfig = {
13806
14077
  columns: number;
13807
14078
  minWidth: number;
13808
14079
  };
13809
- type GridSerializedState = {
14080
+ type GridSerializedState<TData = unknown> = {
13810
14081
  columns: Record<GridBreakpointName, number>;
13811
14082
  rowHeight: number;
13812
- items: GridItemConfig[];
14083
+ items: GridItemConfig<string, TData>[];
13813
14084
  };
13814
14085
  type GridLayoutEntry = {
13815
14086
  id: string;
@@ -13818,7 +14089,7 @@ type GridLayoutEntry = {
13818
14089
  type GridMutationOptions = {
13819
14090
  /**
13820
14091
  * Skip the `layoutChange` emit for this mutation. For a change the host already knows about -
13821
- * it fed the item in through `initialItems` - so the output keeps meaning "the user moved
14092
+ * it fed the item in through `items` - so the output keeps meaning "the user moved
13822
14093
  * something".
13823
14094
  */
13824
14095
  silent?: boolean;
@@ -13877,7 +14148,7 @@ type GridDragState = {
13877
14148
  originPosition: GridItemPosition;
13878
14149
  targetPosition: GridItemPosition;
13879
14150
  };
13880
- declare class GridDirective {
14151
+ declare class GridDirective<TData = unknown> {
13881
14152
  private injector;
13882
14153
  private destroyRef;
13883
14154
  elementRef: ElementRef<HTMLElement>;
@@ -13887,21 +14158,28 @@ declare class GridDirective {
13887
14158
  rowHeight: _angular_core.InputSignalWithTransform<number, unknown>;
13888
14159
  gap: _angular_core.InputSignalWithTransform<number, unknown>;
13889
14160
  /**
13890
- * The items to render. Despite the name this is a live input, not a one-shot seed: every change is
13891
- * reconciled against what the grid holds - added ids are placed, missing ids are removed, an empty
13892
- * array clears the grid, and the same ids with different positions restore those positions. A host
13893
- * can therefore keep feeding its own signal in, including a saved snapshot after cancelled edits,
13894
- * without rebuilding the grid.
14161
+ * The items to render. Every change is reconciled against what the grid holds - added ids are
14162
+ * placed, missing ids are removed, an empty array clears the grid, and the same ids with different
14163
+ * positions restore those positions. A host can therefore keep feeding its own signal in, including
14164
+ * a saved snapshot after cancelled edits, without rebuilding the grid.
13895
14165
  */
13896
- initialItems: _angular_core.InputSignal<GridItemConfig[]>;
14166
+ items: _angular_core.InputSignal<GridItemConfig<string, TData>[]>;
13897
14167
  readOnly: _angular_core.InputSignalWithTransform<boolean, unknown>;
13898
14168
  /**
13899
14169
  * Emitted after the layout changed on this side: a drag, a resize, a keyboard move, `addItem()` or
13900
- * `removeItem()`. Reconciling `initialItems` does not emit - what the host passed in cannot be news
14170
+ * `removeItem()`. Reconciling `items` does not emit - what the host passed in cannot be news
13901
14171
  * to it - so this output can be read as "the user has unsaved changes".
13902
14172
  */
13903
- layoutChange: _angular_core.OutputEmitterRef<GridSerializedState>;
13904
- registrations: _angular_core.Signal<GridComponentRegistration[]>;
14173
+ layoutChange: _angular_core.OutputEmitterRef<GridSerializedState<TData>>;
14174
+ /**
14175
+ * @internal
14176
+ * The items input of the `et-grid` around this directive, handed over rather than bound: a host
14177
+ * directive cannot be parameterized by its component's generic, so the component declares the typed
14178
+ * input and points this at it.
14179
+ */
14180
+ hostItems: _angular_core.WritableSignal<Signal<GridItemConfig<string, TData>[]> | null>;
14181
+ private incomingItems;
14182
+ registrations: Signal<GridComponentRegistration[]>;
13905
14183
  private dimensions;
13906
14184
  private itemConfigs;
13907
14185
  private layoutOverrides;
@@ -13914,26 +14192,30 @@ declare class GridDirective {
13914
14192
  isResizeActive: _angular_core.WritableSignal<boolean>;
13915
14193
  private animationsReady;
13916
14194
  private isContainerResizing;
13917
- containerWidth: _angular_core.Signal<number>;
13918
- isReady: _angular_core.Signal<boolean>;
13919
- animationsEnabled: _angular_core.Signal<boolean>;
13920
- activeBreakpoint: _angular_core.Signal<string>;
13921
- activeColumns: _angular_core.Signal<number>;
14195
+ containerWidth: Signal<number>;
14196
+ isReady: Signal<boolean>;
14197
+ animationsEnabled: Signal<boolean>;
14198
+ activeBreakpoint: Signal<string>;
14199
+ activeColumns: Signal<number>;
13922
14200
  private paddings;
13923
- geometry: _angular_core.Signal<_ethlete_components.GridGeometry>;
13924
- items: _angular_core.Signal<GridItemConfig[]>;
13925
- baseLayout: _angular_core.Signal<GridLayoutEntry[]>;
13926
- layout: _angular_core.Signal<GridLayoutEntry[]>;
13927
- containerHeightPx: _angular_core.Signal<number>;
13928
- protected hostHeight: _angular_core.Signal<number | null>;
13929
- protected containerTransition: _angular_core.Signal<"none" | "height var(--et-grid-anim-duration, 250ms) cubic-bezier(0.2, 0, 0, 1)">;
13930
- ghostPosition: _angular_core.Signal<GridItemPosition | null>;
14201
+ geometry: Signal<_ethlete_components.GridGeometry>;
14202
+ /**
14203
+ * The items the grid currently holds - the `items` input reconciled with everything that happened
14204
+ * since: drags, resizes, `addItem()` and `removeItem()`.
14205
+ */
14206
+ currentItems: Signal<GridItemConfig<string, TData>[]>;
14207
+ baseLayout: Signal<GridLayoutEntry[]>;
14208
+ layout: Signal<GridLayoutEntry[]>;
14209
+ containerHeightPx: Signal<number>;
14210
+ protected hostHeight: Signal<number | null>;
14211
+ protected containerTransition: Signal<"none" | "height var(--et-grid-anim-duration, 250ms) cubic-bezier(0.2, 0, 0, 1)">;
14212
+ ghostPosition: Signal<GridItemPosition | null>;
13931
14213
  constructor();
13932
14214
  getContainerOrigin(): {
13933
14215
  left: number;
13934
14216
  top: number;
13935
14217
  };
13936
- registerConstraints(id: string, constraints: GridItemConstraints): void;
14218
+ registerConstraints(id: string, constraints: Partial<GridItemConstraints>): void;
13937
14219
  unregisterConstraints(id: string): void;
13938
14220
  /** The item's constraints as they apply at the active breakpoint - column spans already capped to it. */
13939
14221
  getConstraints(id: string): GridItemConstraints;
@@ -13952,14 +14234,31 @@ declare class GridDirective {
13952
14234
  cancelResize(): void;
13953
14235
  /** One-shot resize (keyboard / programmatic): begin + update + commit in a single call. */
13954
14236
  resizeItem(options: ResizeItemOptions): void;
13955
- addItem(type: string, data: unknown): void;
14237
+ addItem(type: string, data: TData): void;
13956
14238
  removeItem(id: string, options?: GridMutationOptions): void;
13957
14239
  moveItem(id: string, newPosition: GridItemPosition): void;
13958
- getSerializedState(): GridSerializedState;
13959
- restoreState(state: GridSerializedState): void;
13960
- /** Dev-mode-only: rejects consumer-provided item configs whose ids are not unique. */
14240
+ getSerializedState(): GridSerializedState<TData>;
14241
+ restoreState(state: GridSerializedState<TData>): void;
14242
+ /**
14243
+ * Dev-mode-only: rejects consumer-provided item configs whose ids are not unique, and warns about
14244
+ * layouts that do not line up with the configured breakpoints.
14245
+ */
13961
14246
  private assertValidItemConfigs;
14247
+ /**
14248
+ * A layout key that is not a configured breakpoint is never read, and a breakpoint a *partially*
14249
+ * positioned layout omits is auto-placed in item order rather than mirroring the arrangement the
14250
+ * other breakpoints spell out - both read as the grid having lost part of the layout. An entirely
14251
+ * empty layout is the documented "place this for me" input (`addItem` emits exactly that), so it
14252
+ * is not a problem and stays silent.
14253
+ */
14254
+ private warnAboutUncoveredBreakpoints;
13962
14255
  private finalizeRemove;
14256
+ /**
14257
+ * The layout entries of `items` for one breakpoint. An item the breakpoint has no position for is
14258
+ * auto-placed against the entries built before it, so a partial layout spreads out instead of
14259
+ * stacking every unpositioned item on the grid origin.
14260
+ */
14261
+ private entriesForBreakpoint;
13963
14262
  private placeItem;
13964
14263
  private shrinkNeighbors;
13965
14264
  /** Compact all visited breakpoints (layoutOverrides entries) after an item is removed. */
@@ -13967,8 +14266,8 @@ declare class GridDirective {
13967
14266
  private updateLayoutForCurrentBreakpoint;
13968
14267
  private updateItemLayout;
13969
14268
  private emitLayoutChange;
13970
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridDirective, never>;
13971
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridDirective, "[etGrid]", ["etGrid"], { "breakpoints": { "alias": "breakpoints"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "initialItems": { "alias": "initialItems"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; }, { "layoutChange": "layoutChange"; }, never, never, true, never>;
14269
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridDirective<any>, never>;
14270
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridDirective<any>, "[etGrid]", ["etGrid"], { "breakpoints": { "alias": "breakpoints"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; }, { "layoutChange": "layoutChange"; }, never, never, true, never>;
13972
14271
  }
13973
14272
 
13974
14273
  type AutoScrollPointer = {
@@ -14184,22 +14483,22 @@ declare const resolveBreakpoint: (breakpoints: GridBreakpointConfig[], container
14184
14483
  declare const mapLayoutToBreakpoint: (options: MapLayoutOptions) => GridLayoutEntry[];
14185
14484
  declare const DEFAULT_BREAKPOINTS: GridBreakpointConfig[];
14186
14485
 
14187
- type SerializeOptions = {
14188
- items: GridItemConfig[];
14486
+ type SerializeOptions<TData = unknown> = {
14487
+ items: GridItemConfig<string, TData>[];
14189
14488
  breakpoints: GridBreakpointConfig[];
14190
14489
  rowHeight: number;
14191
14490
  };
14192
14491
  /**
14193
14492
  * Serializes the current grid state into a JSON-compatible object suitable for DB storage.
14194
14493
  */
14195
- declare const serializeGridLayout: (options: SerializeOptions) => GridSerializedState;
14494
+ declare const serializeGridLayout: <TData>(options: SerializeOptions<TData>) => GridSerializedState<TData>;
14196
14495
  /**
14197
14496
  * Deserializes a stored grid state back into working configuration.
14198
14497
  * Returns breakpoint configs and item configs.
14199
14498
  */
14200
- declare const deserializeGridLayout: (state: GridSerializedState, breakpointMinWidths: Record<string, number>) => {
14499
+ declare const deserializeGridLayout: <TData>(state: GridSerializedState<TData>, breakpointMinWidths: Record<string, number>) => {
14201
14500
  breakpoints: GridBreakpointConfig[];
14202
- items: GridItemConfig[];
14501
+ items: GridItemConfig<string, TData>[];
14203
14502
  rowHeight: number;
14204
14503
  };
14205
14504
 
@@ -14209,10 +14508,10 @@ declare class GridItemDirective {
14209
14508
  private destroyRef;
14210
14509
  hostElement: ElementRef<HTMLElement>;
14211
14510
  itemId: _angular_core.InputSignal<string>;
14212
- minColSpan: _angular_core.InputSignalWithTransform<number, unknown>;
14213
- maxColSpan: _angular_core.InputSignalWithTransform<number, unknown>;
14214
- minRowSpan: _angular_core.InputSignalWithTransform<number, unknown>;
14215
- maxRowSpan: _angular_core.InputSignalWithTransform<number, unknown>;
14511
+ minColSpan: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
14512
+ maxColSpan: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
14513
+ minRowSpan: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
14514
+ maxRowSpan: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
14216
14515
  isBeingDragged: _angular_core.Signal<boolean>;
14217
14516
  currentPosition: _angular_core.Signal<_ethlete_components.GridItemPosition | null>;
14218
14517
  /** The layout-derived target rect in container-relative pixels. */
@@ -14239,7 +14538,7 @@ declare class GridItemDirective {
14239
14538
  }
14240
14539
 
14241
14540
  declare class GridDragDirective {
14242
- protected grid: _ethlete_components.GridDirective | null;
14541
+ protected grid: _ethlete_components.GridDirective<unknown> | null;
14243
14542
  private gridItem;
14244
14543
  private elementRef;
14245
14544
  private destroyRef;
@@ -14301,7 +14600,7 @@ declare class GridResizeDirective {
14301
14600
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridResizeDirective, "[etGridResize]", never, {}, {}, never, never, true, never>;
14302
14601
  }
14303
14602
 
14304
- declare const GRID_TOKEN: InjectionToken<GridDirective>;
14603
+ declare const GRID_TOKEN: InjectionToken<GridDirective<unknown>>;
14305
14604
 
14306
14605
  type GridConfig = {
14307
14606
  registrations: GridComponentRegistration[];
@@ -14310,11 +14609,11 @@ type GridConfig = {
14310
14609
  declare const provideGridConfig: (valueOverride?: Partial<GridConfig> | undefined) => _angular_core.Provider[];
14311
14610
  declare const injectGridConfig: _ethlete_core.InjectFn<GridConfig>;
14312
14611
 
14313
- type GridAdapter<TExternal> = {
14314
- fromExternal(items: TExternal[]): GridItemConfig[];
14315
- toExternal(items: GridItemConfig[]): TExternal[];
14612
+ type GridAdapter<TExternal, TData = unknown> = {
14613
+ fromExternal(items: TExternal[]): GridItemConfig<string, TData>[];
14614
+ toExternal(items: GridItemConfig<string, TData>[]): TExternal[];
14316
14615
  };
14317
- declare const createGridAdapter: <TExternal>(fromItem: (item: TExternal) => GridItemConfig, toItem: (item: GridItemConfig) => TExternal) => GridAdapter<TExternal>;
14616
+ declare const createGridAdapter: <TExternal, TData = unknown>(fromItem: (item: TExternal) => GridItemConfig<string, TData>, toItem: (item: GridItemConfig<string, TData>) => TExternal) => GridAdapter<TExternal, TData>;
14318
14617
  /** Map a backend position shaped as `{x, y, cols, rows}` to a `GridItemPosition`. */
14319
14618
  declare const toGridPosition: (pos: {
14320
14619
  x: number;
@@ -14330,21 +14629,28 @@ declare const fromGridPosition: (pos: GridItemPosition) => {
14330
14629
  rows: number;
14331
14630
  };
14332
14631
 
14333
- declare class GridComponent {
14334
- grid: GridDirective;
14632
+ declare class GridComponent<TData = unknown> {
14335
14633
  private gridConfig;
14336
14634
  private labels;
14635
+ /**
14636
+ * The items to render - a live input reconciled on every change, see `GridDirective.items`. Typed
14637
+ * in the item payload, so `layoutChange` hands the same `TData` back instead of `unknown`.
14638
+ */
14639
+ items: _angular_core.InputSignal<GridItemConfig<string, TData>[]>;
14640
+ /** Emitted after the layout changed on this side - see `GridDirective.layoutChange`. */
14641
+ layoutChange: _angular_core.OutputEmitterRef<GridSerializedState<TData>>;
14642
+ grid: GridDirective<TData>;
14337
14643
  protected actionsComponent: _angular_core.Signal<_ethlete_components.GridItemActionsComponent | null>;
14338
14644
  protected registeredItems: _angular_core.Signal<{
14339
- item: _ethlete_components.GridItemConfig;
14645
+ item: GridItemConfig<string, TData>;
14340
14646
  reg: _ethlete_components.GridComponentRegistration;
14341
14647
  }[]>;
14342
14648
  protected ariaLabel: _angular_core.Signal<string>;
14343
14649
  protected ghostRect: _angular_core.Signal<_ethlete_components.PixelRect | null>;
14344
14650
  protected ghostTransition: _angular_core.Signal<"none" | "translate 200ms cubic-bezier(0.2, 0, 0, 1), width 200ms cubic-bezier(0.2, 0, 0, 1), height 200ms cubic-bezier(0.2, 0, 0, 1)">;
14345
14651
  constructor();
14346
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridComponent, never>;
14347
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<GridComponent, "et-grid, [et-grid]", never, {}, {}, never, ["*"], true, [{ directive: typeof GridDirective; inputs: { "breakpoints": "breakpoints"; "rowHeight": "rowHeight"; "gap": "gap"; "initialItems": "initialItems"; "readOnly": "readOnly"; }; outputs: { "layoutChange": "layoutChange"; }; }]>;
14652
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridComponent<any>, never>;
14653
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<GridComponent<any>, "et-grid, [et-grid]", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "layoutChange": "layoutChange"; }, never, ["*"], true, [{ directive: typeof GridDirective; inputs: { "breakpoints": "breakpoints"; "rowHeight": "rowHeight"; "gap": "gap"; "readOnly": "readOnly"; }; outputs: {}; }]>;
14348
14654
  }
14349
14655
 
14350
14656
  declare class GridItemComponent {
@@ -14386,7 +14692,7 @@ declare class GridItemDefaultActionsComponent {
14386
14692
  * Development-only debug overlay for an `et-grid` instance.
14387
14693
  *
14388
14694
  * ```html
14389
- * <et-grid #myGrid [initialItems]="items()" ...></et-grid>
14695
+ * <et-grid #myGrid [items]="items()" ...></et-grid>
14390
14696
  * <et-grid-debug [grid]="myGrid" [externalItems]="items()" />
14391
14697
  * ```
14392
14698
  *
@@ -14394,14 +14700,14 @@ declare class GridItemDefaultActionsComponent {
14394
14700
  * and the grid's internal itemConfigs. The **Copy JSON** button writes
14395
14701
  * a full diagnostic snapshot to the clipboard without any console output.
14396
14702
  */
14397
- declare class GridDebugComponent {
14703
+ declare class GridDebugComponent<TData = unknown> {
14398
14704
  private destroyRef;
14399
- grid: _angular_core.InputSignal<GridComponent>;
14400
- externalItems: _angular_core.InputSignal<GridItemConfig[] | null>;
14705
+ grid: _angular_core.InputSignal<GridComponent<TData>>;
14706
+ externalItems: _angular_core.InputSignal<GridItemConfig<string, TData>[] | null>;
14401
14707
  activeBreakpoint: _angular_core.Signal<string>;
14402
14708
  containerWidth: _angular_core.Signal<number>;
14403
14709
  breakpoints: _angular_core.Signal<_ethlete_components.GridBreakpointConfig[]>;
14404
- items: _angular_core.Signal<GridItemConfig[]>;
14710
+ items: _angular_core.Signal<GridItemConfig<string, TData>[]>;
14405
14711
  layout: _angular_core.Signal<_ethlete_components.GridLayoutEntry[]>;
14406
14712
  hasDrag: _angular_core.Signal<boolean>;
14407
14713
  hasExternal: _angular_core.Signal<boolean>;
@@ -14421,8 +14727,8 @@ declare class GridDebugComponent {
14421
14727
  issueCount: _angular_core.Signal<number>;
14422
14728
  fmtPos(pos: GridItemPosition | undefined): string;
14423
14729
  copyJson($event: Event): void;
14424
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridDebugComponent, never>;
14425
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<GridDebugComponent, "et-grid-debug", never, { "grid": { "alias": "grid"; "required": true; "isSignal": true; }; "externalItems": { "alias": "externalItems"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
14730
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridDebugComponent<any>, never>;
14731
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<GridDebugComponent<any>, "et-grid-debug", never, { "grid": { "alias": "grid"; "required": true; "isSignal": true; }; "externalItems": { "alias": "externalItems"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
14426
14732
  }
14427
14733
 
14428
14734
  declare const GRID_ERROR_CODES: {
@@ -16763,6 +17069,13 @@ type ProgressStepState = (typeof PROGRESS_STEP_STATES)[keyof typeof PROGRESS_STE
16763
17069
  * `complete` marks a step as done in the surrounding color theme; `success`, `warning` and `error`
16764
17070
  * mark it as done with an outcome and recolor the step in the app's matching semantic theme, each
16765
17071
  * with its own icon so the outcome does not rest on color alone.
17072
+ *
17073
+ * Write the step as a link or a button to make it interactive - the attribute selector puts the step
17074
+ * on the consumer's own element, so `routerLink`, `href` and click handlers all stay where they
17075
+ * belong, and the whole step becomes the target:
17076
+ *
17077
+ * @example
17078
+ * <a [routerLink]="['/checkout/account']" state="complete" et-progress-step>Account</a>
16766
17079
  */
16767
17080
  declare class ProgressStepComponent {
16768
17081
  private provideColor;
@@ -16771,12 +17084,18 @@ declare class ProgressStepComponent {
16771
17084
  protected markerIcon: _angular_core.Signal<string | null>;
16772
17085
  constructor();
16773
17086
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProgressStepComponent, never>;
16774
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProgressStepComponent, "et-progress-step", never, { "state": { "alias": "state"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }]>;
17087
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProgressStepComponent, "et-progress-step, [et-progress-step]", never, { "state": { "alias": "state"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }, { directive: typeof FocusRingDirective; inputs: {}; outputs: {}; }]>;
16775
17088
  }
16776
17089
 
17090
+ declare const PROGRESS_STEPS_ORIENTATIONS: {
17091
+ readonly HORIZONTAL: "horizontal";
17092
+ readonly VERTICAL: "vertical";
17093
+ };
17094
+ type ProgressStepsOrientation = (typeof PROGRESS_STEPS_ORIENTATIONS)[keyof typeof PROGRESS_STEPS_ORIENTATIONS];
16777
17095
  /**
16778
- * Lays out a row of `et-progress-step`s with automatic step numbering and a connecting line
16779
- * between them - project the steps in order, each with its own `state`.
17096
+ * Lays out a row - or, with `orientation="vertical"`, a column - of `et-progress-step`s with automatic
17097
+ * step numbering and a connecting line between them. Project the steps in order, each with its own
17098
+ * `state`.
16780
17099
  *
16781
17100
  * @example
16782
17101
  * <et-progress-steps>
@@ -16786,1784 +17105,14 @@ declare class ProgressStepComponent {
16786
17105
  * </et-progress-steps>
16787
17106
  */
16788
17107
  declare class ProgressStepsComponent {
17108
+ /** Whether the steps run across the row or down a column. The connector follows. */
17109
+ orientation: _angular_core.InputSignal<ProgressStepsOrientation>;
16789
17110
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProgressStepsComponent, never>;
16790
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProgressStepsComponent, "et-progress-steps", never, {}, {}, never, ["*"], true, never>;
17111
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProgressStepsComponent, "et-progress-steps", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
16791
17112
  }
16792
17113
 
16793
17114
  declare const PROGRESS_STEPS_IMPORTS: readonly [typeof ProgressStepsComponent, typeof ProgressStepComponent];
16794
17115
 
16795
- type AboutRow = {
16796
- label: string;
16797
- value: string;
16798
- };
16799
- type AboutGroup = {
16800
- title: string;
16801
- rows: AboutRow[];
16802
- };
16803
- /**
16804
- * What is running: the loaded `@ethlete/*` versions, the Angular version and whatever the app handed to
16805
- * `provideQueryDevtools({ about })`. A section rather than a tab body, so it can be shown anywhere.
16806
- */
16807
- declare class QueryDevtoolsAboutComponent {
16808
- protected readonly groups: AboutGroup[];
16809
- protected copied: _angular_core.WritableSignal<boolean>;
16810
- protected copy(): void;
16811
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<QueryDevtoolsAboutComponent, never>;
16812
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<QueryDevtoolsAboutComponent, "et-query-devtools-about", never, {}, {}, never, never, true, never>;
16813
- }
16814
-
16815
- /** Which of a node's four pasteable forms a copy action asks for. */
16816
- type QueryDevtoolsCopyPayload = 'value' | 'key' | 'path' | 'entry';
16817
-
16818
- /** A JSON value's kind as the value explorer (and its per-node override menu) categorizes it. */
16819
- type JsonKind = 'string' | 'number' | 'boolean' | 'null' | 'undefined' | 'array' | 'object';
16820
- type JsonEntry = {
16821
- k: string;
16822
- v: unknown;
16823
- };
16824
- /** A folded slice of a container's entries, rendered as its own collapsible row. */
16825
- type JsonChunk = {
16826
- start: number;
16827
- end: number;
16828
- label: string;
16829
- };
16830
- declare const kindOf: (value: unknown) => JsonKind;
16831
- /**
16832
- * A recursive, collapsible, searchable JSON tree used by the query devtools value explorer. Renders
16833
- * the *transformed* value the app actually sees (post `transformResponse`). Self-recurses via its
16834
- * own selector - both for child entries and for the folded slices of an oversized container, which
16835
- * re-enter as the same component with a `chunk` window over the same value.
16836
- */
16837
- declare class QueryDevtoolsJsonComponent {
16838
- value: _angular_core.InputSignal<unknown>;
16839
- nodeKey: _angular_core.InputSignal<string | null>;
16840
- depth: _angular_core.InputSignalWithTransform<number, unknown>;
16841
- /** Lowercased search term; when set, the tree auto-expands and matches are highlighted. */
16842
- search: _angular_core.InputSignal<string>;
16843
- /**
16844
- * When set, this node is not the value itself but a folded window over its entries. It shares the
16845
- * container's `path` so a child's persisted expansion does not depend on where the slice borders land.
16846
- */
16847
- chunk: _angular_core.InputSignal<JsonChunk | null>;
16848
- /** Full path of this node from the explorer root, used as the key for persisted expansion. */
16849
- path: _angular_core.InputSignal<string>;
16850
- /** Persisted paths explicitly expanded (overrides the depth default). */
16851
- expandedPaths: _angular_core.InputSignal<ReadonlySet<string> | null>;
16852
- /** Persisted paths explicitly collapsed (overrides the depth default). */
16853
- collapsedPaths: _angular_core.InputSignal<ReadonlySet<string> | null>;
16854
- /** When provided, expansion is externally persisted via this callback instead of local state. */
16855
- toggleFn: _angular_core.InputSignal<((path: string, expand: boolean) => void) | null>;
16856
- /** Same node as {@link path}, but as the array-of-steps an override op targets rather than a display key. */
16857
- jsonPath: _angular_core.InputSignal<JsonPath>;
16858
- /** The kind of the container holding this node, so its override menu can offer "duplicate this item". */
16859
- parentKind: _angular_core.InputSignal<JsonKind | null>;
16860
- /** When provided, every node renders an override menu that arms/clears ops through it. */
16861
- overrides: _angular_core.InputSignal<QueryDevtoolsOverridesRecorder | null>;
16862
- /**
16863
- * The declared type of each field, keyed by its path with array indices as `*` (`items.*.id`) - as
16864
- * {@link QueryDevtoolsSchemaSeed} produces it. A node with an entry labels itself with it.
16865
- */
16866
- annotations: _angular_core.InputSignal<ReadonlyMap<string, string> | null>;
16867
- protected kind: _angular_core.Signal<JsonKind>;
16868
- private exotic;
16869
- /** One annotation covers every element of an array, so the lookup path forgets which index this is. */
16870
- private shapePath;
16871
- protected annotation: _angular_core.Signal<string | null>;
16872
- protected annotationTitle: _angular_core.Signal<string>;
16873
- /** A `Date` or a `File` is object-typed but has nothing to expand into, so it renders as a leaf. */
16874
- protected isContainer: _angular_core.Signal<boolean>;
16875
- /** The entries this node covers: the container's own, or just the window a chunk stands for. */
16876
- ownEntries: _angular_core.Signal<JsonEntry[]>;
16877
- protected childChunks: _angular_core.Signal<JsonChunk[]>;
16878
- /** Entries rendered as rows - empty while they are folded into slices instead. */
16879
- protected visibleEntries: _angular_core.Signal<JsonEntry[]>;
16880
- /** Slices carry their window in the key so siblings persist independently of the container. */
16881
- private togglePath;
16882
- private defaultExpanded;
16883
- private localExpanded;
16884
- protected expanded: _angular_core.Signal<boolean>;
16885
- /** Only slices that actually contain a match unfold while searching, so a filter stays cheap. */
16886
- private chunkHasHit;
16887
- protected effectiveExpanded: _angular_core.Signal<boolean>;
16888
- /** What the last copy put on the clipboard, or `null` once the tick has expired. */
16889
- protected copied: _angular_core.WritableSignal<QueryDevtoolsCopyPayload | null>;
16890
- private copiedReset$;
16891
- /**
16892
- * Whether this node has an address of its own to copy. An explorer root has no key, and a folded
16893
- * slice stands for a range of entries rather than one path - neither can name itself.
16894
- */
16895
- protected addressable: _angular_core.Signal<boolean>;
16896
- private valueLabel;
16897
- /**
16898
- * Doubles as the button's `title` and its `aria-label`, and names what landed while the tick is up -
16899
- * a bare `✓` stopped being unambiguous once the menu put four payloads behind one control.
16900
- */
16901
- protected copyLabel: _angular_core.Signal<string>;
16902
- protected preview: _angular_core.Signal<string>;
16903
- protected display: _angular_core.Signal<string>;
16904
- protected keyHit: _angular_core.Signal<boolean>;
16905
- protected valueHit: _angular_core.Signal<boolean>;
16906
- constructor();
16907
- protected childPath(key: string): string;
16908
- protected childJsonPath(key: string): JsonPath;
16909
- protected toggle(): void;
16910
- /**
16911
- * Writes one of the node's four pasteable forms. All of them go through here so the tick stays a
16912
- * single readout of what actually landed.
16913
- */
16914
- protected copy(payload: QueryDevtoolsCopyPayload): void;
16915
- /**
16916
- * Containers copy their whole subtree as JSON, slices only the entries they cover; leaves copy
16917
- * something pasteable - a raw string without the display quotes, so an id or url can go straight
16918
- * into a search box. `null` for a subtree that cannot be serialized at all.
16919
- */
16920
- private copyTextFor;
16921
- /** An exotic container copies the entries the tree shows, not the private fields `JSON.stringify` finds. */
16922
- private copyableValue;
16923
- private chunkValue;
16924
- private flagCopied;
16925
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<QueryDevtoolsJsonComponent, never>;
16926
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<QueryDevtoolsJsonComponent, "et-query-devtools-json", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "nodeKey": { "alias": "nodeKey"; "required": false; "isSignal": true; }; "depth": { "alias": "depth"; "required": false; "isSignal": true; }; "search": { "alias": "search"; "required": false; "isSignal": true; }; "chunk": { "alias": "chunk"; "required": false; "isSignal": true; }; "path": { "alias": "path"; "required": false; "isSignal": true; }; "expandedPaths": { "alias": "expandedPaths"; "required": false; "isSignal": true; }; "collapsedPaths": { "alias": "collapsedPaths"; "required": false; "isSignal": true; }; "toggleFn": { "alias": "toggleFn"; "required": false; "isSignal": true; }; "jsonPath": { "alias": "jsonPath"; "required": false; "isSignal": true; }; "parentKind": { "alias": "parentKind"; "required": false; "isSignal": true; }; "overrides": { "alias": "overrides"; "required": false; "isSignal": true; }; "annotations": { "alias": "annotations"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
16927
- }
16928
-
16929
- /**
16930
- * The value explorer's tree chrome, as a styles-only component the tree mounts itself - a session that
16931
- * never opens a JSON view does not inject it.
16932
- *
16933
- * @internal
16934
- */
16935
- declare class QueryDevtoolsJsonStylesComponent {
16936
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<QueryDevtoolsJsonStylesComponent, never>;
16937
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<QueryDevtoolsJsonStylesComponent, "et-query-devtools-json-styles", never, {}, {}, never, never, true, never>;
16938
- }
16939
-
16940
- /** Whether a path exists only in the newer value, only in the older one, or in both with a new value. */
16941
- type QueryDevtoolsDiffKind = 'added' | 'removed' | 'changed';
16942
- /** One difference between two values, located by the path it sits at. */
16943
- type QueryDevtoolsDiffEntry = {
16944
- /** Where the difference sits, e.g. `$.items[2].score` or `$.items[id=7].score`. */
16945
- path: string;
16946
- kind: QueryDevtoolsDiffKind;
16947
- /** The older value, or `null` for an added path. */
16948
- before: unknown;
16949
- /** The newer value, or `null` for a removed path. */
16950
- after: unknown;
16951
- };
16952
- type QueryDevtoolsDiff = {
16953
- entries: QueryDevtoolsDiffEntry[];
16954
- /** Whether the walk hit its cap, so {@link entries} is only part of the difference. */
16955
- truncated: boolean;
16956
- };
16957
-
16958
- type AnyQuery = Query<any>;
16959
- /** The query a detail pane is showing, together with the registry entry it was registered as. */
16960
- type QueryDevtoolsSelection = {
16961
- entry: QueryDevtoolsEntry;
16962
- query: AnyQuery;
16963
- };
16964
- /**
16965
- * A body the panel can show. Every one of them but `settings` is a tab in the bar: Settings holds nothing
16966
- * to count, so the badge/overflow logic would push it behind **More** - it is reached from the header's
16967
- * gear instead.
16968
- */
16969
- type DevtoolsTab = 'queries' | 'stacks' | 'sequences' | 'forms' | 'auth' | 'ws' | 'cache' | 'timeline' | 'events' | 'faults' | 'mocks' | 'about' | 'settings';
16970
- /**
16971
- * The sections of the query detail drawer. The head and its actions stay pinned above them - the detail
16972
- * holds more than fits a column, and everything below the actions is reading material.
16973
- */
16974
- type DetailTab = 'overview' | 'history' | 'data';
16975
- /**
16976
- * Which pane of a two-pane tab a divider drag sizes: the Queries tab's list, or the drawer every
16977
- * split view opens a query in.
16978
- */
16979
- type PaneTarget = 'list' | 'drawer';
16980
- /** The axis a two-pane tab splits along: the panes sit side by side, or stack in a side dock. */
16981
- type PaneAxis = 'inline' | 'block';
16982
- type QueryStatus = 'idle' | 'loading' | 'success' | 'error';
16983
- /**
16984
- * A facet the Queries list can be narrowed to. The first four describe live state; `gone` is the odd
16985
- * one out - it is the only way a destroyed query's tombstone enters the list at all, which is why it
16986
- * is off by default rather than just another filter over what is already shown.
16987
- */
16988
- type QueryListFacet = 'error' | 'loading' | 'stale' | 'idle' | 'gone';
16989
- /**
16990
- * A chunk of a route as rendered: literal path text, a path param (`name` is the param it fills in) or
16991
- * the query string of the request that ran. The kind becomes the segment's class.
16992
- */
16993
- type RouteSegment = {
16994
- text: string;
16995
- kind: 'static' | 'param' | 'query';
16996
- name?: string;
16997
- };
16998
- /**
16999
- * Which tab refreshes an auth provider's tokens, as the auth tab's chip renders it. `title` carries
17000
- * the caveats the label has no room for - why every tab reads as the leader, or how approximate the
17001
- * tab count is.
17002
- */
17003
- type QueryDevtoolsLeadership = {
17004
- label: string;
17005
- tone: 'success' | 'muted';
17006
- title: string;
17007
- };
17008
- /** An auth provider's access-token expiry as the auth tab renders it, armed override included. */
17009
- type QueryDevtoolsTokenLifetime = {
17010
- /** Countdown to the expiry the app currently acts on, overridden or not. */
17011
- expiresIn: string | null;
17012
- /** Countdown to the token's own `exp`, and only set while an override is making it read differently. */
17013
- realExpiresIn: string | null;
17014
- /** The armed lifetime in seconds, or `null` while the token is on the one it was issued with. */
17015
- ttlSeconds: number | null;
17016
- /** Whether an override can be applied at all - the token needs an `exp` plus an `iat` or `nbf`. */
17017
- overridable: boolean;
17018
- };
17019
- /** A query reachable from a stack or sequence card, rendered as a row that opens the detail drawer. */
17020
- type QueryLink = {
17021
- id: string;
17022
- query: AnyQuery;
17023
- method: string;
17024
- segments: RouteSegment[];
17025
- clientBaseUrl: string;
17026
- stats?: QueryDevtoolsStatsHandle;
17027
- };
17028
- /**
17029
- * Query stats plus the numbers the panel derives from them rather than storing: an execution that never
17030
- * reached the network was answered from the cache, and the averages come from the running totals.
17031
- */
17032
- type QueryActivity = {
17033
- stats: QueryDevtoolsStats;
17034
- cacheServed: number;
17035
- avgDurationMs: number | null;
17036
- avgResponseBytes: number | null;
17037
- hasActivity: boolean;
17038
- };
17039
- /**
17040
- * What a query's request is doing beyond `loading`: which attempt it is on, the backoff it is waiting
17041
- * out, and how much of the payload has moved. Without it a request retried three times behind a 4s
17042
- * backoff and a plain slow one are the same yellow dot.
17043
- */
17044
- type RequestProgress = {
17045
- /** @see HttpRequestSubtle.attempts */
17046
- attempts: number;
17047
- retry: HttpRequestRetryState | null;
17048
- /** How much of the pending backoff is left, or `null` when none is pending. */
17049
- retryInMs: number | null;
17050
- progress: HttpRequestLoadingProgressState | null;
17051
- };
17052
- /**
17053
- * One request a refresh re-executed, as an event row lists it. A cache key is shared by every query
17054
- * bound to it, so the row carries all of their ids - one to open, and the rest so each of those queries
17055
- * can still find the refresh under "Refetched by". Empty for a request no registered query holds.
17056
- */
17057
- type RefreshedRequest = {
17058
- queryIds: string[];
17059
- method: string;
17060
- path: string;
17061
- };
17062
- type EventLogItem = {
17063
- id: number;
17064
- timestamp: number;
17065
- client: string;
17066
- type: 'entry-created' | 'request-success' | 'request-error' | 'entry-destroyed' | 'unbind-all-secure' | 'queries-refreshed';
17067
- /** `null` for events that are not about a single request, e.g. the logout-wide secure unbind. */
17068
- method: string | null;
17069
- url: string | null;
17070
- isSecure: boolean;
17071
- status: number | null;
17072
- /**
17073
- * The registered query the request belonged to when the event fired, so the row can open it. Resolved
17074
- * here rather than at click time so the log holds an id instead of a reference to the request itself.
17075
- */
17076
- queryId: string | null;
17077
- /** What asked for a refresh, for a `queries-refreshed` row. `null` for every other type. */
17078
- cause: QueryRefreshCause | null;
17079
- /** Why a cache entry was torn down, for an `entry-destroyed` row. `null` for every other type. */
17080
- destroyCause: QueryRepositoryEntryDestroyedCause | null;
17081
- /** The requests that refresh re-executed - the fan-out the panel could not show before. */
17082
- refreshed: RefreshedRequest[] | null;
17083
- /**
17084
- * How long the request took and how big its response was, read off the request as the event fired.
17085
- * Both `null` for an event that is not one request settling, and the size also for a failure - an
17086
- * error body is not a payload worth a column.
17087
- */
17088
- durationMs: number | null;
17089
- bytes: number | null;
17090
- /** @see QueryDevtoolsStats.hasEstimatedBytes */
17091
- isEstimatedBytes: boolean;
17092
- };
17093
- /**
17094
- * A cache entry that is gone, as the Cache tab still lists it. Deliberately not a {@link CacheRow}: a
17095
- * destroyed entry has no consumers, no size, no freshness and nothing to act on, so a full row would be
17096
- * seven columns of dashes. What is left worth showing is what it was and why it went.
17097
- */
17098
- type DroppedCacheEntry = {
17099
- client: string;
17100
- method: string;
17101
- url: string;
17102
- cause: QueryRepositoryEntryDestroyedCause;
17103
- at: number;
17104
- };
17105
- /** One cache entry as the Cache tab lists it: the repository's own snapshot plus its measured size. */
17106
- type CacheRow = {
17107
- entry: QueryRepositoryCacheEntry;
17108
- bytes: number;
17109
- isEstimatedBytes: boolean;
17110
- };
17111
- /** A repository the panel found, together with the client name/base URL it was registered under. */
17112
- type RepositoryInfo = {
17113
- repository: QueryRepository;
17114
- name: string;
17115
- baseUrl: string;
17116
- client: QueryClient | null;
17117
- };
17118
- /** One client's cache, as the Cache tab lists it - every entry measured, with the client's poll states. */
17119
- type CacheView = {
17120
- name: string;
17121
- baseUrl: string;
17122
- repository: QueryRepository;
17123
- rows: CacheRow[];
17124
- bytes: number;
17125
- isEstimatedBytes: boolean;
17126
- unused: number;
17127
- pollStates: Record<string, QueryKeyLockState>;
17128
- client: QueryClient | null;
17129
- /** The entries this client has lost since the panel was loaded, newest first. */
17130
- dropped: DroppedCacheEntry[];
17131
- };
17132
- /** What each tab holds, as its badge reports it: how many entries, and how many of them are failing. */
17133
- type TabBadge = {
17134
- count: number;
17135
- errors: number;
17136
- errorNoun?: string;
17137
- };
17138
-
17139
- /**
17140
- * Everything a tab or the shared detail drawer reads from - or writes back into - the always-mounted
17141
- * `<et-query-devtools>` panel: cross-tab registries, the JIT editor, copy/export actions, the value
17142
- * explorer and pane sizing. A tab component only ever exists while it is the active one, so anything a
17143
- * tab needs to survive being switched away from (a drawer's own selection, the persisted panel chrome)
17144
- * has to live here instead of on the tab itself. Every member below is named and shaped exactly like the
17145
- * panel's own field/method it stands in for.
17146
- *
17147
- * @see injectQueryDevtoolsHost
17148
- */
17149
- type QueryDevtoolsHost = {
17150
- selectTab(tab: DevtoolsTab): void;
17151
- /** Jumps to the Queries tab with this query selected - the Events tab is a way in, not a dead end. */
17152
- selectQuery(id: string): void;
17153
- /** Jumps to the Forms tab with this form selected. */
17154
- selectForm(id: string): void;
17155
- queryEntries: Signal<QueryDevtoolsEntry[]>;
17156
- stackEntries: Signal<QueryDevtoolsEntry[]>;
17157
- sequenceEntries: Signal<QueryDevtoolsEntry[]>;
17158
- formEntries: Signal<QueryDevtoolsEntry[]>;
17159
- authEntries: Signal<QueryDevtoolsEntry[]>;
17160
- wsEntries: Signal<QueryDevtoolsEntry[]>;
17161
- repositories: Signal<RepositoryInfo[]>;
17162
- /**
17163
- * The cache per client, with every entry's size measured. Reading each response inside the computed is
17164
- * what keeps the totals current: a cache mutation bumps `cacheVersion`, but a response landing in an
17165
- * entry that is already there does not.
17166
- */
17167
- cacheView: Signal<CacheView[]>;
17168
- refetchCacheEntry(entry: QueryRepositoryCacheEntry): void;
17169
- evictCacheEntry(repository: QueryRepository, key: string): void;
17170
- /** Drops every entry of one client, consumers included - the cold-start check that does not need a reload. */
17171
- evictAllCacheEntries(repository: QueryRepository): void;
17172
- toggleCacheValue(clientName: string, key: string): void;
17173
- isCacheValueExpanded(clientName: string, key: string): boolean;
17174
- cacheFreshness(entry: QueryRepositoryCacheEntry): string;
17175
- cacheSync(entry: QueryRepositoryCacheEntry, pollStates: Record<string, unknown>): string;
17176
- cachePersistence(entry: QueryRepositoryCacheEntry): string;
17177
- /** How many responses this client has on disk, which is usually more than it has in memory. */
17178
- persistedCount(client: QueryClient): number;
17179
- clearPersistedQueries(client: QueryClient): void;
17180
- /** The features of the client behind a cache tab card, or `null` for a client without any. */
17181
- clientFeatures(client: QueryClient | null | undefined): QueryDevtoolsFeature[] | null;
17182
- /** Unique client names present across queries and auth providers, for the Queries/Timeline pickers. */
17183
- clientNames: Signal<string[]>;
17184
- /** What each tab holds - also drives the tab bar's own badges, so it lives here rather than per-tab. */
17185
- tabBadges: Signal<Record<DevtoolsTab, TabBadge>>;
17186
- /**
17187
- * Every client the Faults tab can arm, with the fault it currently carries. Also feeds the
17188
- * cross-tab "Faults armed" banner and the session export, so it lives here rather than on the tab.
17189
- */
17190
- faultClients: Signal<{
17191
- name: string;
17192
- baseUrl: string;
17193
- fault: QueryDevtoolsFault;
17194
- armed: boolean;
17195
- }[]>;
17196
- /**
17197
- * The queries in scope before the Queries tab's own search box and status chips narrow them further:
17198
- * either the picked client's, or exactly the inspected element's. Also what the Timeline tab scopes
17199
- * its runs to, which is why this lives here rather than on the Queries tab alone.
17200
- */
17201
- scopedQueries: Signal<QueryDevtoolsEntry[]>;
17202
- /** 1-second tick driving every countdown/freshness readout across tabs. */
17203
- clock: Signal<number>;
17204
- findQuery(id: string | null): QueryDevtoolsSelection | null;
17205
- queryLinkFor(entry: QueryDevtoolsEntry | undefined, query?: AnyQuery): QueryLink;
17206
- asStack(entry: QueryDevtoolsEntry): AnyQueryStack;
17207
- asPagedStack(entry: QueryDevtoolsEntry): AnyPagedQueryStack;
17208
- asSequence(entry: QueryDevtoolsEntry): QuerySequence<unknown[]>;
17209
- asAuth(entry: QueryDevtoolsEntry): AnyBearerAuthProvider;
17210
- asWs(entry: QueryDevtoolsEntry): WebSocketDevtoolsHandle;
17211
- asForm(entry: QueryDevtoolsEntry): QueryDevtoolsFormHandle;
17212
- authTokenPayload(auth: AnyBearerAuthProvider): Record<string, unknown> | null;
17213
- authQueryKeys(auth: AnyBearerAuthProvider): string[];
17214
- /** The access-token expiry the app acts on, plus the lifetime the panel has armed over it. */
17215
- authTokenLifetime(entry: QueryDevtoolsEntry): QueryDevtoolsTokenLifetime;
17216
- /** The multi-tab leadership chip, or `null` for a provider without `withBearerAuthMultiTabSync`. */
17217
- authLeadership(auth: AnyBearerAuthProvider): QueryDevtoolsLeadership | null;
17218
- queryStatus(query: AnyQuery): 'idle' | 'loading' | 'success' | 'error';
17219
- isStale(query: AnyQuery): boolean;
17220
- /** Whether an entry is showing an armed response override or a devtools-faulted outcome. */
17221
- isTampered(entry: QueryDevtoolsEntry): boolean;
17222
- /** Whether armed response overrides are stored and replayed on the next load. */
17223
- overridesPersist(): boolean;
17224
- toggleOverridesPersist(): void;
17225
- /** Where they are kept, named for a title or a hint (`sessionStorage`, `localStorage`, `not kept`). */
17226
- overridesScopeLabel(): string;
17227
- /** Puts the panel's layout, filters, pins and stored overrides back to defaults, keeping the settings. */
17228
- resetDevtools(): void;
17229
- requestProgress(query: AnyQuery): RequestProgress | null;
17230
- retryCause(status: number): string;
17231
- requestUrl(query: AnyQuery): string | null;
17232
- requestPath(url: string): string;
17233
- queryArgs(query: AnyQuery): unknown;
17234
- routeSegments(entry: QueryDevtoolsEntry | undefined, query: AnyQuery): RouteSegment[];
17235
- queryActivity(entry: QueryDevtoolsEntry): QueryActivity;
17236
- linkActivity(link: QueryLink): QueryActivity;
17237
- stackActivity(stack: AnyQueryStack | AnyPagedQueryStack): QueryActivity;
17238
- sequenceActivity(sequence: QuerySequence<unknown[]>): QueryActivity;
17239
- queriesForStack(stack: AnyQueryStack | AnyPagedQueryStack): QueryLink[];
17240
- queriesForSequence(sequence: QuerySequence<unknown[]>): QueryLink[];
17241
- /**
17242
- * The queries a form feeds, discovered from the reads its `value()` recorded while their args were
17243
- * built - so a form that nothing consumes yet reads as exactly that.
17244
- */
17245
- queriesDrivenByForm(entry: QueryDevtoolsEntry): QueryLink[];
17246
- sequenceStepStatus(sequence: QuerySequence<unknown[]>, index: number): QuerySequenceStatus;
17247
- stepSnapshot(sequence: QuerySequence<unknown[]>, index: number): AnyQuerySnapshot | null;
17248
- /** Whether a sequence step's in/out detail (`<entryId>:<stepIndex>`) is expanded - persisted. */
17249
- isStepExpanded(entryId: string, index: number): boolean;
17250
- toggleStep(entryId: string, index: number): void;
17251
- /** Keys of the Queries-list groups of identical rows the user opened - persisted. */
17252
- expandedQueryGroups: Signal<ReadonlySet<string>>;
17253
- toggleQueryGroup(key: string): void;
17254
- expandQueryGroup(key: string): void;
17255
- /** Which way the Queries list sorts by last-executed time - persisted. */
17256
- queryRecentFirst: WritableSignal<boolean>;
17257
- /** Whether the Queries list is arranged as a tree of route paths instead of a flat list - persisted. */
17258
- queryTreeView: WritableSignal<boolean>;
17259
- /** The path folders the user closed. Collapsed, not expanded - a tree opens open. */
17260
- collapsedQueryPaths: Signal<ReadonlySet<string>>;
17261
- toggleQueryPath(key: string): void;
17262
- /** The element a query was created in, or `null` for one created outside a component/directive. */
17263
- locatableElement(entry: QueryDevtoolsEntry): HTMLElement | null;
17264
- locateQuery(entry: QueryDevtoolsEntry): void;
17265
- locateState: Signal<'idle' | 'located' | 'offscreen'>;
17266
- resetStats(entry: QueryDevtoolsEntry): void;
17267
- executeQuery(selection: QueryDevtoolsSelection, allowCache: boolean): void;
17268
- resetQuery(query: AnyQuery): void;
17269
- formatDuration(ms: number | null): string;
17270
- formatBytes(bytes: number): string;
17271
- formatTransferred(bytes: number, isEstimated: boolean): string;
17272
- formatSpeed(bytesPerSecond: number): string;
17273
- formatPercent(percentage: number): string;
17274
- formatCountdown(ms: number | null): string;
17275
- formatTime(timestamp: number | null): string;
17276
- gqlDocument(doc: string): string;
17277
- inlineValue(value: unknown): string;
17278
- featureLabel(type: string): string;
17279
- featureSummary(feature: QueryDevtoolsFeature): string;
17280
- detailTab: WritableSignal<DetailTab>;
17281
- editorMode: WritableSignal<'none' | 'response' | 'args'>;
17282
- responseDraft: WritableSignal<string>;
17283
- argsDraft: WritableSignal<string>;
17284
- /** The text the currently open editor was seeded with - not a signal, see the field's own doc. */
17285
- editorSeed: string;
17286
- editError: Signal<string | null>;
17287
- openResponseEditor(query: AnyQuery): void;
17288
- openArgsEditor(selection: QueryDevtoolsSelection): void;
17289
- applyResponse(query: AnyQuery): void;
17290
- applyArgs(query: AnyQuery): void;
17291
- cancelEditor(): void;
17292
- forceLoading(query: AnyQuery): void;
17293
- forceError(query: AnyQuery): void;
17294
- forceEmpty(query: AnyQuery): void;
17295
- clearForced(query: AnyQuery): void;
17296
- diffRunIndex: WritableSignal<number | null>;
17297
- /** The run the diff compares against, or `null` to derive it - see the panel's own field. */
17298
- diffBaseRunIndex: WritableSignal<number | null>;
17299
- toggleRunDiff(entry: QueryDevtoolsEntry, run: QueryDevtoolsRun): void;
17300
- /** Which end of the open diff a run is, or `null` if it is not one of the two. */
17301
- diffRunRole(entry: QueryDevtoolsEntry, run: QueryDevtoolsRun): 'base' | 'compare' | null;
17302
- responseDiff(entry: QueryDevtoolsEntry): {
17303
- before: QueryDevtoolsRun;
17304
- after: QueryDevtoolsRun;
17305
- diff: QueryDevtoolsDiff;
17306
- } | null;
17307
- canDiffRun(entry: QueryDevtoolsEntry, run: QueryDevtoolsRun): boolean;
17308
- queryRuns(entry: QueryDevtoolsEntry): QueryDevtoolsRun[];
17309
- runStatus(run: QueryDevtoolsRun): string;
17310
- /** How many bodies a query retains, which is what bounds how far back a diff can reach. */
17311
- retainedResponseCount: Signal<number>;
17312
- /** Moves the whole response diff one run older or newer, from the diff header. */
17313
- canStepRunDiff(entry: QueryDevtoolsEntry, older: boolean): boolean;
17314
- stepRunDiff(entry: QueryDevtoolsEntry, older: boolean): void;
17315
- errorRunIndex: WritableSignal<number | null>;
17316
- toggleRunError(run: QueryDevtoolsRun): void;
17317
- pickedRunError(entry: QueryDevtoolsEntry): {
17318
- run: QueryDevtoolsRun;
17319
- error: QueryDevtoolsRunError;
17320
- } | null;
17321
- copiedReport: Signal<boolean>;
17322
- copiedInsomnia: Signal<boolean>;
17323
- copiedCurl: Signal<boolean>;
17324
- copiedGql: Signal<boolean>;
17325
- copiedRoute: Signal<boolean>;
17326
- copyReport(entry: QueryDevtoolsEntry, query: AnyQuery): void;
17327
- copyInsomniaRequest(entry: QueryDevtoolsEntry, query: AnyQuery): void;
17328
- copyCurlRequest(entry: QueryDevtoolsEntry, query: AnyQuery): void;
17329
- copyGqlDocument(doc: string): void;
17330
- /** The absolute URL of the last request, or the rendered route for a query that has not run. */
17331
- copyableRoute(entry: QueryDevtoolsEntry, query: AnyQuery): string;
17332
- copyableRouteTitle(entry: QueryDevtoolsEntry, query: AnyQuery): string;
17333
- copyRoute(entry: QueryDevtoolsEntry, query: AnyQuery): void;
17334
- refreshesFor(entryId: string): {
17335
- id: number;
17336
- timestamp: number;
17337
- label: string;
17338
- }[];
17339
- /** What asked for a refresh, on one line - shared by the drawer's "Refetched by" and the Events tab. */
17340
- causeLabel(cause: QueryRefreshCause): string;
17341
- formsDrivingQuery(entry: QueryDevtoolsEntry): QueryDevtoolsEntry[];
17342
- /** Shared value-explorer search term, read (and set) from every drawer's Data sub-tab. */
17343
- jsonSearch: WritableSignal<string>;
17344
- jsonSearchTerm: Signal<string>;
17345
- jsonExpandedPaths: Signal<ReadonlySet<string>>;
17346
- jsonCollapsedPaths: Signal<ReadonlySet<string>>;
17347
- toggleJsonPath(path: string, expand: boolean): void;
17348
- selectedClientName: WritableSignal<string | null>;
17349
- selectedQueryId: WritableSignal<string | null>;
17350
- selectedQuery: Signal<{
17351
- entry: QueryDevtoolsEntry;
17352
- query: AnyQuery;
17353
- } | null>;
17354
- queryFilter: WritableSignal<string>;
17355
- queryFacets: WritableSignal<ReadonlySet<QueryListFacet>>;
17356
- /** The entry ids sorted to the top of the Queries list. Persisted apart from the rest - see the panel. */
17357
- pinnedQueryIds: Signal<ReadonlySet<string>>;
17358
- isQueryPinned(entry: QueryDevtoolsEntry): boolean;
17359
- toggleQueryPin(entry: QueryDevtoolsEntry): void;
17360
- /** When set (via inspect), the Queries list is filtered to exactly these entry ids. */
17361
- inspectFilterIds: WritableSignal<string[] | null>;
17362
- selectClient(name: string | null): void;
17363
- clearInspectFilter(): void;
17364
- toggleFacet(facet: QueryListFacet): void;
17365
- /** Drops the search term and the status chips, keeping the client / inspection scope. */
17366
- clearQueryFilters(): void;
17367
- /**
17368
- * Downloads the given queries (already scoped/filtered by the caller) as one Insomnia collection,
17369
- * filed into a folder per query client.
17370
- */
17371
- downloadInsomniaCollection(items: {
17372
- entry: QueryDevtoolsEntry;
17373
- query: AnyQuery;
17374
- }[], clientLabel: string | null): void;
17375
- /** Downloads a file a tab generated. The panel does it because the panel owns the download injector. */
17376
- downloadTextFile(file: {
17377
- name: string;
17378
- content: string;
17379
- type: string;
17380
- }): void;
17381
- stackSelectedQueryId: WritableSignal<string | null>;
17382
- stackSelectedQuery: Signal<{
17383
- entry: QueryDevtoolsEntry;
17384
- query: AnyQuery;
17385
- } | null>;
17386
- sequenceSelectedQueryId: WritableSignal<string | null>;
17387
- sequenceSelectedQuery: Signal<{
17388
- entry: QueryDevtoolsEntry;
17389
- query: AnyQuery;
17390
- } | null>;
17391
- formSelectedQueryId: WritableSignal<string | null>;
17392
- formSelectedQuery: Signal<{
17393
- entry: QueryDevtoolsEntry;
17394
- query: AnyQuery;
17395
- } | null>;
17396
- /** The form whose detail the Forms tab has expanded - persisted. */
17397
- selectedFormId: WritableSignal<string | null>;
17398
- /** The rolling event log - persisted only in the sense that it survives a tab switch, not a reload. */
17399
- eventLog: WritableSignal<EventLogItem[]>;
17400
- /** The client (by base URL) the event log is scoped to, or `null` for all of them - persisted. */
17401
- eventClient: WritableSignal<string | null>;
17402
- /** Whether the event log is narrowed to failures - persisted. */
17403
- eventErrorsOnly: WritableSignal<boolean>;
17404
- /** Free-text narrowing of every socket's message log - persisted. */
17405
- socketFilter: WritableSignal<string>;
17406
- socketMessages(ws: WebSocketDevtoolsHandle): WebSocketDevtoolsMessage[];
17407
- socketDirectionLabel(message: WebSocketDevtoolsMessage): string;
17408
- emitSocketMessage(options: {
17409
- entry: QueryDevtoolsEntry;
17410
- event: string;
17411
- data: string;
17412
- }): void;
17413
- /** The message an emit box last failed with, if this is the socket it failed on. */
17414
- socketEmitErrorFor(entryId: string): string | null;
17415
- timelineSelectedQueryId: WritableSignal<string | null>;
17416
- timelineSelectedQuery: Signal<{
17417
- entry: QueryDevtoolsEntry;
17418
- query: AnyQuery;
17419
- } | null>;
17420
- paneAxis: Signal<PaneAxis>;
17421
- listWidth: Signal<number | null>;
17422
- drawerWidth: Signal<number | null>;
17423
- listHeight: Signal<number | null>;
17424
- drawerHeight: Signal<number | null>;
17425
- startPaneResize(event: PointerEvent, target: {
17426
- pane: PaneTarget;
17427
- container: HTMLElement;
17428
- }): void;
17429
- resetPaneSize(pane: PaneTarget): void;
17430
- };
17431
-
17432
- type ScopeKey = 'viewState' | 'pins' | 'overrides' | 'mocks' | 'armedMocks' | 'armedFaults';
17433
- type ScopeRow = {
17434
- key: ScopeKey;
17435
- label: string;
17436
- /** What is kept, and what `none` costs - the one thing a scope picker cannot show on its own. */
17437
- hint: string;
17438
- /**
17439
- * What to say on the scopes that let this state outlive the page that armed it - a picker cannot show
17440
- * that an app is about to start lying to itself before anyone opens the panel.
17441
- */
17442
- warn?: {
17443
- scopes: QueryDevtoolsStorageScope[];
17444
- text: string;
17445
- };
17446
- };
17447
- type LimitKey = 'maxEvents' | 'maxDroppedCacheEntries';
17448
- type LimitRow = {
17449
- key: LimitKey;
17450
- label: string;
17451
- min: number;
17452
- max: number;
17453
- step: number;
17454
- hint: string;
17455
- };
17456
- /**
17457
- * Every panel-wide switch in one place - the storage each kind of state uses, the limits the panel would
17458
- * otherwise hold as constants, and the toggles their own tabs also carry.
17459
- */
17460
- declare class QueryDevtoolsSettingsComponent {
17461
- protected host: QueryDevtoolsHost;
17462
- protected readonly SCOPE_ROWS: ScopeRow[];
17463
- protected readonly SCOPES: {
17464
- value: QueryDevtoolsStorageScope;
17465
- label: string;
17466
- }[];
17467
- protected readonly INDEXED_DB_TITLE = "Unavailable: these are read synchronously - view state before the first render, overrides before the first fetch - and IndexedDB cannot answer in time. Only the mock library could tolerate an async store, and it is not wired to one yet.";
17468
- protected readonly LIMIT_ROWS: LimitRow[];
17469
- protected readonly ARM_ALL_MOCKS: () => void;
17470
- protected readonly DISARM_ALL_MOCKS: () => void;
17471
- protected readonly DISARM_ALL_FAULTS: (clientName?: string) => void;
17472
- /** What queries actually retain, which is the application's value unless this panel raised it. */
17473
- protected responseHistory: _angular_core.Signal<number>;
17474
- protected mockCount: _angular_core.Signal<number>;
17475
- protected armedMockCount: _angular_core.Signal<number>;
17476
- protected armedFaultCount: _angular_core.Signal<number>;
17477
- protected resetConfirming: _angular_core.WritableSignal<boolean>;
17478
- protected settings(): _ethlete_query.QueryDevtoolsSettings;
17479
- protected scopeOf(key: ScopeKey): QueryDevtoolsStorageScope;
17480
- protected limitOf(key: LimitKey): number;
17481
- /** What the picked scope means beyond where the state is kept, or `null` while it means nothing extra. */
17482
- protected warningFor(row: ScopeRow, scope: QueryDevtoolsStorageScope): string | null;
17483
- protected setScope(key: ScopeKey, scope: QueryDevtoolsStorageScope): void;
17484
- protected setLimit(key: LimitKey, value: string): void;
17485
- protected setResponseHistory(value: string): void;
17486
- /** Hands retention back to `provideQueryDevtools({ responseHistory })`. */
17487
- protected clearResponseHistory(): void;
17488
- protected reset(): void;
17489
- protected toggleGoneQueries(): void;
17490
- protected showsGoneQueries(): boolean;
17491
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<QueryDevtoolsSettingsComponent, never>;
17492
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<QueryDevtoolsSettingsComponent, "et-query-devtools-settings", never, {}, {}, never, never, true, never>;
17493
- }
17494
-
17495
- /**
17496
- * The waterfall's grid, axis and bars, as a styles-only component the panel mounts when the Timeline tab
17497
- * is first opened.
17498
- *
17499
- * @internal
17500
- */
17501
- declare class QueryDevtoolsTimelineStylesComponent {
17502
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<QueryDevtoolsTimelineStylesComponent, never>;
17503
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<QueryDevtoolsTimelineStylesComponent, "et-query-devtools-timeline-styles", never, {}, {}, never, never, true, never>;
17504
- }
17505
-
17506
- /**
17507
- * The floating toggle button for the query devtools. Rendered with `ShadowDom` encapsulation so the
17508
- * host application's global CSS (Tailwind resets, button styles, …) can never touch it and its own
17509
- * styles can never leak out. Uses px (not rem) internally so it doesn't depend on the host's root
17510
- * font-size; theme accent colour is read from an inherited custom property with a fallback.
17511
- */
17512
- declare class QueryDevtoolsToggleComponent {
17513
- tampered: _angular_core.InputSignal<boolean>;
17514
- openChange: _angular_core.OutputEmitterRef<void>;
17515
- protected shortcut: string;
17516
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<QueryDevtoolsToggleComponent, never>;
17517
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<QueryDevtoolsToggleComponent, "et-query-devtools-toggle", never, { "tampered": { "alias": "tampered"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, never, never, true, never>;
17518
- }
17519
-
17520
- /**
17521
- * Where the panel sits: attached to an edge, or floating over the page as a window of its own. A
17522
- * pop-out is not one of these - that is a real browser window, not a position in this document.
17523
- */
17524
- type DevtoolsDock = 'bottom' | 'top' | 'left' | 'right' | 'float';
17525
- /** What the layout menu offers, in the order it lists them. `popout` is a window, not a position. */
17526
- type DevtoolsLayout = DevtoolsDock | 'popout';
17527
- /** The floating panel's position and size, in CSS px from the viewport's top-left. */
17528
- type FloatRect = {
17529
- x: number;
17530
- y: number;
17531
- width: number;
17532
- height: number;
17533
- };
17534
- /**
17535
- * A drag in progress: the panel's docked edge, the floating panel being moved or resized, or the
17536
- * divider between a two-pane tab's panes.
17537
- */
17538
- type ResizeDrag = {
17539
- /** The document the pointer moves in - a popped-out panel lives in a window of its own. */
17540
- doc: Document;
17541
- } & ({
17542
- kind: 'panel';
17543
- } | {
17544
- kind: 'pane';
17545
- pane: PaneTarget;
17546
- axis: PaneAxis;
17547
- container: HTMLElement;
17548
- });
17549
- type PersistedState = {
17550
- open?: boolean;
17551
- height?: number;
17552
- width?: number;
17553
- listWidth?: number | null;
17554
- drawerWidth?: number | null;
17555
- listHeight?: number | null;
17556
- drawerHeight?: number | null;
17557
- dock?: DevtoolsDock;
17558
- floatRect?: FloatRect;
17559
- floatParked?: boolean;
17560
- activeTab?: DevtoolsTab;
17561
- detailTab?: DetailTab;
17562
- selectedClientName?: string | null;
17563
- selectedQueryId?: string | null;
17564
- selectedFormId?: string | null;
17565
- inspectFilterIds?: string[] | null;
17566
- queryFilter?: string;
17567
- queryFacets?: QueryListFacet[];
17568
- queryRecentFirst?: boolean;
17569
- queryTreeView?: boolean;
17570
- collapsedQueryPaths?: string[];
17571
- eventClient?: string | null;
17572
- eventErrorsOnly?: boolean;
17573
- socketFilter?: string;
17574
- jsonSearch?: string;
17575
- expandedSteps?: string[];
17576
- expandedQueryGroups?: string[];
17577
- jsonExpanded?: string[];
17578
- jsonCollapsed?: string[];
17579
- };
17580
- type ViewportSize = {
17581
- width: number;
17582
- height: number;
17583
- };
17584
- /**
17585
- * The loosest a float may sit: shoved off an edge with only {@link FLOAT_PEEK} left, which is what a
17586
- * drag and a parked panel are held to. **North is never a parking edge** - the title bar is the only
17587
- * thing that drags the panel back, so it may never be the part that leaves.
17588
- */
17589
- declare const clampFloatToPeek: (rect: FloatRect, viewport: ViewportSize) => FloatRect;
17590
- /**
17591
- * Where a float settles when the pointer is released. Dragged more than halfway off an edge, it stays
17592
- * parked there with {@link FLOAT_PEEK} showing - the panel gets out of the way of the thing you are
17593
- * debugging without being closed. Anything short of halfway is pulled back in, so a slightly clumsy
17594
- * drag does not park it.
17595
- */
17596
- declare const settledFloatRect: (rect: FloatRect, viewport: ViewportSize) => {
17597
- rect: FloatRect;
17598
- collapsed: boolean;
17599
- };
17600
- /**
17601
- * The rect a resize gesture from `edge` produces, given where the panel was when the gesture started.
17602
- * A west or north drag grows away from the edge that stays pinned, so the origin follows whatever
17603
- * size the drag settled on - including when the size hit its floor and the origin must stop with it.
17604
- */
17605
- declare const resizedFloatRect: (base: FloatRect, { move, viewport }: {
17606
- move: ResizeMoveEvent;
17607
- viewport: ViewportSize;
17608
- }) => FloatRect;
17609
- /**
17610
- * A floating, dockable panel that inspects the live state of the signals-first `@ethlete/query`
17611
- * system: queries, stacks, sequences, bearer auth providers, the repository cache and a rolling
17612
- * event log.
17613
- *
17614
- * Requires `provideQueryDevtools()` in the application providers - without it the registry stays
17615
- * empty and the panel shows nothing.
17616
- */
17617
- declare class QueryDevtoolsComponent {
17618
- private hostEl;
17619
- private renderer;
17620
- private download;
17621
- private styleManager;
17622
- private zone;
17623
- private destroyRef;
17624
- private document;
17625
- private viewport;
17626
- /** The panel itself, so a pop-out can move it into another window's document. */
17627
- private panelEl;
17628
- private eventIdCounter;
17629
- private lastSelectionKey;
17630
- /** Where the gear goes back to, so opening Settings does not lose the tab it was opened over. */
17631
- private tabBeforeSettings;
17632
- readonly persisted: PersistedState;
17633
- protected readonly tabs: ({
17634
- id: "queries";
17635
- label: string;
17636
- } | {
17637
- id: "stacks";
17638
- label: string;
17639
- } | {
17640
- id: "sequences";
17641
- label: string;
17642
- } | {
17643
- id: "forms";
17644
- label: string;
17645
- } | {
17646
- id: "auth";
17647
- label: string;
17648
- } | {
17649
- id: "ws";
17650
- label: string;
17651
- } | {
17652
- id: "cache";
17653
- label: string;
17654
- } | {
17655
- id: "timeline";
17656
- label: string;
17657
- } | {
17658
- id: "events";
17659
- label: string;
17660
- } | {
17661
- id: "faults";
17662
- label: string;
17663
- } | {
17664
- id: "mocks";
17665
- label: string;
17666
- } | {
17667
- id: "about";
17668
- label: string;
17669
- })[];
17670
- /**
17671
- * Tabs the bar keeps whether they hold anything or not: the one the panel opens on, and the one that
17672
- * arms faults - which has entries to arm rather than to count.
17673
- */
17674
- private readonly PINNED_TABS;
17675
- protected readonly shortcut: string;
17676
- protected readonly LAYOUTS: readonly [{
17677
- readonly id: "bottom";
17678
- readonly glyph: "⬓";
17679
- readonly label: "Bottom";
17680
- readonly hint: "Dock to the bottom edge";
17681
- }, {
17682
- readonly id: "top";
17683
- readonly glyph: "⬒";
17684
- readonly label: "Top";
17685
- readonly hint: "Dock to the top edge";
17686
- }, {
17687
- readonly id: "left";
17688
- readonly glyph: "◧";
17689
- readonly label: "Left";
17690
- readonly hint: "Dock to the left edge";
17691
- }, {
17692
- readonly id: "right";
17693
- readonly glyph: "◨";
17694
- readonly label: "Right";
17695
- readonly hint: "Dock to the right edge";
17696
- }, {
17697
- readonly id: "float";
17698
- readonly glyph: "❐";
17699
- readonly label: "Float";
17700
- readonly hint: "A window inside the page - move it, resize it, shove it off an edge to park it";
17701
- }, {
17702
- readonly id: "popout";
17703
- readonly glyph: "⧉";
17704
- readonly label: "Pop out";
17705
- readonly hint: "Move the panel into a window of its own - the same live panel, on your other screen";
17706
- }];
17707
- protected open: WritableSignal<boolean>;
17708
- private panelHeight;
17709
- private panelWidth;
17710
- protected activeTab: WritableSignal<DevtoolsTab>;
17711
- /**
17712
- * The dragged sizes of the two-pane tabs, in px, one pair per axis - a side dock stacks the panes, so
17713
- * the same divider sizes them along the block axis there and a dock switch has to keep both. `null`
17714
- * keeps the stylesheet's proportional default, which is also what a double-click on a divider restores.
17715
- */
17716
- protected listWidth: WritableSignal<number | null>;
17717
- protected drawerWidth: WritableSignal<number | null>;
17718
- protected listHeight: WritableSignal<number | null>;
17719
- protected drawerHeight: WritableSignal<number | null>;
17720
- protected drag: WritableSignal<ResizeDrag | null>;
17721
- protected resizing: _angular_core.Signal<boolean>;
17722
- /** Which edge the panel is docked to, or `float` for a window of its own inside the page. */
17723
- protected dock: WritableSignal<DevtoolsDock>;
17724
- /** The entry the layout button shows, so it names where the panel is rather than where it could go. */
17725
- protected currentLayout: _angular_core.Signal<{
17726
- readonly id: "bottom";
17727
- readonly glyph: "⬓";
17728
- readonly label: "Bottom";
17729
- readonly hint: "Dock to the bottom edge";
17730
- } | {
17731
- readonly id: "top";
17732
- readonly glyph: "⬒";
17733
- readonly label: "Top";
17734
- readonly hint: "Dock to the top edge";
17735
- } | {
17736
- readonly id: "left";
17737
- readonly glyph: "◧";
17738
- readonly label: "Left";
17739
- readonly hint: "Dock to the left edge";
17740
- } | {
17741
- readonly id: "right";
17742
- readonly glyph: "◨";
17743
- readonly label: "Right";
17744
- readonly hint: "Dock to the right edge";
17745
- } | {
17746
- readonly id: "float";
17747
- readonly glyph: "❐";
17748
- readonly label: "Float";
17749
- readonly hint: "A window inside the page - move it, resize it, shove it off an edge to park it";
17750
- } | {
17751
- readonly id: "popout";
17752
- readonly glyph: "⧉";
17753
- readonly label: "Pop out";
17754
- readonly hint: "Move the panel into a window of its own - the same live panel, on your other screen";
17755
- }>;
17756
- /** Where the floating panel sits and how big it is. Kept while docked, so a return to float restores it. */
17757
- private floatRect;
17758
- /** The rect a resize gesture started from, or `null` outside one. */
17759
- private floatResizeBase;
17760
- /**
17761
- * Whether the float is shoved off an edge with only its peek showing. Persisted with the rect, since
17762
- * restoring the rect without it would either strand the panel off screen or silently un-park it.
17763
- */
17764
- protected floatParked: WritableSignal<boolean>;
17765
- /**
17766
- * The browser refused the last pop-out. `window.open` returns `null` with no error to catch, so
17767
- * without this the button simply did nothing - and floating is the fallback it should have offered.
17768
- */
17769
- protected popOutBlocked: WritableSignal<boolean>;
17770
- /**
17771
- * Whether the panel currently lives in a window of its own. Deliberately not persisted: a reload
17772
- * cannot re-adopt a window the previous document opened, so it always starts docked.
17773
- */
17774
- protected poppedOut: WritableSignal<boolean>;
17775
- protected floating: _angular_core.Signal<boolean>;
17776
- /**
17777
- * Below `md` a side-by-side split cannot fit: the list alone asks for `22rem` and the drawer for
17778
- * `26rem`, which is wider than a phone. Narrow gets the same stacked layout a right dock does.
17779
- */
17780
- private narrowViewport;
17781
- /** Whether the panel is docked to a side edge, which is what sizes it along the inline axis. */
17782
- private sideDocked;
17783
- /** Which axis the two-pane tabs split along. The stylesheet keys the stacked layout off the same value. */
17784
- protected paneAxis: _angular_core.Signal<PaneAxis>;
17785
- private popup;
17786
- /** Stops mirroring the host document's stylesheets into the pop-up. @see syncStylesInto */
17787
- private popOutStyleSync;
17788
- protected panelBlockSize: _angular_core.Signal<number | null>;
17789
- protected panelInlineSize: _angular_core.Signal<number | null>;
17790
- /** The floating panel's offset from the viewport's top-left, or `null` while it is docked. */
17791
- protected panelInsetBlock: _angular_core.Signal<number | null>;
17792
- protected panelInsetInline: _angular_core.Signal<number | null>;
17793
- /** Which section of the query detail is showing. Shared by the Queries tab and both drawers. */
17794
- detailTab: WritableSignal<DetailTab>;
17795
- selectedClientName: WritableSignal<string | null>;
17796
- selectedQueryId: WritableSignal<string | null>;
17797
- /** The form whose detail the Forms tab has expanded. */
17798
- selectedFormId: WritableSignal<string | null>;
17799
- stackSelectedQueryId: WritableSignal<string | null>;
17800
- sequenceSelectedQueryId: WritableSignal<string | null>;
17801
- formSelectedQueryId: WritableSignal<string | null>;
17802
- timelineSelectedQueryId: WritableSignal<string | null>;
17803
- /** Free-text narrowing of the Queries list. Every whitespace-separated term has to match. */
17804
- queryFilter: WritableSignal<string>;
17805
- /** The status facets the Queries list is narrowed to. Empty means no status narrowing. */
17806
- queryFacets: WritableSignal<ReadonlySet<QueryListFacet>>;
17807
- /**
17808
- * Which way the Queries list sorts by last-executed time. Only the direction is switchable - the field
17809
- * is not, because "which one just ran" is the question the column exists to answer.
17810
- */
17811
- queryRecentFirst: WritableSignal<boolean>;
17812
- /**
17813
- * Whether the Queries list is arranged as a tree of route paths. Off by default: the flat list is
17814
- * still the right shape for "what ran just now", which is what the tab is opened for most of the time.
17815
- */
17816
- queryTreeView: WritableSignal<boolean>;
17817
- /**
17818
- * The path folders the user closed. Collapsed rather than expanded, because a tree that opens closed
17819
- * shows nothing but the top segment of every route - which answers no question the flat list didn't.
17820
- */
17821
- collapsedQueryPaths: WritableSignal<ReadonlySet<string>>;
17822
- /**
17823
- * The entry ids sorted to the top of the Queries list. Ids are derived from a stable descriptor plus a
17824
- * per-descriptor sequence number, so a pin survives a reload as long as queries are created in the same
17825
- * order - the same property the restored selection already relies on.
17826
- */
17827
- pinnedQueryIds: WritableSignal<ReadonlySet<string>>;
17828
- eventLog: WritableSignal<EventLogItem[]>;
17829
- /**
17830
- * The cache entries that are gone, newest first. Kept here rather than in the repository, which stays
17831
- * lean in production - it emits the teardown and forgets it.
17832
- */
17833
- droppedCacheEntries: WritableSignal<DroppedCacheEntry[]>;
17834
- /** The client (by base URL) the event log is scoped to, or `null` for all of them. */
17835
- eventClient: WritableSignal<string | null>;
17836
- /** Whether the event log is narrowed to failures - the rows a bug report is about. */
17837
- eventErrorsOnly: WritableSignal<boolean>;
17838
- /** Free-text narrowing of every socket's message log. Matches the event, the room and the direction. */
17839
- socketFilter: WritableSignal<string>;
17840
- /** The cache entry whose response is expanded, as `<client>|<key>`, or `null` while none is. */
17841
- private expandedCacheKey;
17842
- /** The socket whose emit box last failed, so the message shows on that card and no other. */
17843
- private socketEmitError;
17844
- /** Keys (`<entryId>:<stepIndex>`) of the sequence steps whose in/out detail is expanded. */
17845
- private expandedSteps;
17846
- /** Keys of the Queries-list groups the user opened - the tab is rebuilt on every switch back. */
17847
- expandedQueryGroups: WritableSignal<ReadonlySet<string>>;
17848
- /** Shared value-explorer search term. */
17849
- jsonSearch: WritableSignal<string>;
17850
- jsonSearchTerm: _angular_core.Signal<string>;
17851
- /** Path-keyed value-explorer expansion overrides (persisted so open trees survive a reload). */
17852
- jsonExpandedPaths: WritableSignal<ReadonlySet<string>>;
17853
- jsonCollapsedPaths: WritableSignal<ReadonlySet<string>>;
17854
- /** Bound callback passed into the value explorer to persist per-path expansion. Assigned in the constructor. */
17855
- toggleJsonPath: (path: string, expand: boolean) => void;
17856
- /** The run whose response the diff is comparing, by run index, or `null` while no diff is open. */
17857
- diffRunIndex: WritableSignal<number | null>;
17858
- /**
17859
- * The run the diff compares it *against*, or `null` to derive that side - the newest older run that
17860
- * still holds a body, which is what one click on **Diff** gives you.
17861
- */
17862
- diffBaseRunIndex: WritableSignal<number | null>;
17863
- errorRunIndex: WritableSignal<number | null>;
17864
- /** How many bodies a query retains, which is what bounds how far back a diff can reach. */
17865
- retainedResponseCount: _angular_core.Signal<number>;
17866
- /** JIT editor state (response / args editing on the selected query). */
17867
- editorMode: WritableSignal<"none" | "response" | "args">;
17868
- responseDraft: WritableSignal<string>;
17869
- argsDraft: WritableSignal<string>;
17870
- /**
17871
- * The text the currently open editor was seeded with. The textareas bind `value` to this and not to
17872
- * the live draft: a `value` binding fed by the draft is written back on every keystroke, and writing
17873
- * a textarea's `value` puts the caret at the end.
17874
- */
17875
- editorSeed: string;
17876
- editError: WritableSignal<string | null>;
17877
- /** The args the open editor was seeded from, so applying can put back what the draft cannot carry. */
17878
- private editedArgsSource;
17879
- /** Transient "Copied!" feedback for the copy-report, copy-as-Insomnia / cURL and copy-document actions. */
17880
- copiedReport: WritableSignal<boolean>;
17881
- copiedInsomnia: WritableSignal<boolean>;
17882
- copiedCurl: WritableSignal<boolean>;
17883
- copiedGql: WritableSignal<boolean>;
17884
- copiedRoute: WritableSignal<boolean>;
17885
- private copiedReset$;
17886
- /** 1-second tick driving the cache freshness countdowns. */
17887
- private clock;
17888
- /** "Inspect" mode: hover the live UI to find the query that a component created. */
17889
- protected inspectActive: WritableSignal<boolean>;
17890
- protected inspectHover: WritableSignal<{
17891
- rect: DOMRect;
17892
- entries: QueryDevtoolsEntry[];
17893
- } | null>;
17894
- /** Inspect run backwards: the box drawn over the element the selected query was created in. */
17895
- protected locatedRect: WritableSignal<DOMRect | null>;
17896
- locateState: WritableSignal<"idle" | "located" | "offscreen">;
17897
- private locate$;
17898
- /** When set (via inspect), the Queries list is filtered to exactly these entry ids. */
17899
- inspectFilterIds: WritableSignal<string[] | null>;
17900
- private queryEntries;
17901
- /**
17902
- * The queries that still exist. Everything that measures what the application is doing right now -
17903
- * the tab bar's error flags, the tamper dot, the timeline, the identity match behind an event row -
17904
- * reads this rather than {@link queryEntries}, so a tombstone never inflates a live number.
17905
- */
17906
- private liveQueryEntries;
17907
- protected panelTampered: _angular_core.Signal<boolean>;
17908
- stackEntries: _angular_core.Signal<QueryDevtoolsEntry[]>;
17909
- sequenceEntries: _angular_core.Signal<QueryDevtoolsEntry[]>;
17910
- formEntries: _angular_core.Signal<QueryDevtoolsEntry[]>;
17911
- authEntries: _angular_core.Signal<QueryDevtoolsEntry[]>;
17912
- wsEntries: _angular_core.Signal<QueryDevtoolsEntry[]>;
17913
- /** Unique client names present across queries and auth providers, for the Queries-tab picker. */
17914
- clientNames: _angular_core.Signal<string[]>;
17915
- /** Unique repositories (with their client name + base URL) used by the Cache and Events tabs. */
17916
- private repositories;
17917
- /**
17918
- * Every client the Faults tab can arm, with the fault it currently carries. Clients with nothing armed
17919
- * read as {@link EMPTY_QUERY_DEVTOOLS_FAULT} so the inputs always have a value to show.
17920
- */
17921
- faultClients: _angular_core.Signal<{
17922
- name: string;
17923
- baseUrl: string;
17924
- fault: _ethlete_query.QueryDevtoolsFault;
17925
- armed: boolean;
17926
- }[]>;
17927
- /**
17928
- * The names of the clients currently carrying a fault, or `null` when none do - so a template can `@if`
17929
- * on it. Armed faults are the one state where the panel is lying to the app on purpose, and a badge on a
17930
- * tab that isn't open cannot say that: whichever tab you are reading, a red response has to be
17931
- * attributable to the injection rather than to the API.
17932
- */
17933
- protected armedFaultClients: _angular_core.Signal<string[] | null>;
17934
- /**
17935
- * The routes currently answered by a designed mock, for the shell's banner. A mocked response is a
17936
- * stronger lie than an override - nothing was sent at all - so it is named above every tab, not just
17937
- * badged on the one that armed it.
17938
- */
17939
- protected armedMockRoutes: _angular_core.Signal<string[] | null>;
17940
- /**
17941
- * The queries the list is scoped to before the search box and the status chips narrow them further:
17942
- * either the picked client's, or exactly the inspected element's.
17943
- */
17944
- scopedQueries: _angular_core.Signal<QueryDevtoolsEntry[]>;
17945
- /** How many runs every query has recorded, for the Timeline tab's badge. */
17946
- private runTotals;
17947
- /** Cache entries across every client, for the Cache tab's badge. */
17948
- private cacheEntryCount;
17949
- /**
17950
- * What each tab holds, so a failing query in a tab that is not open is still visible. Reading it
17951
- * subscribes the tab bar to every entry's live state - which is the point of the badges.
17952
- */
17953
- protected tabBadges: _angular_core.Signal<Record<DevtoolsTab, TabBadge>>;
17954
- /**
17955
- * The tabs the bar shows: the pinned ones, the one that is open, and every tab that currently holds
17956
- * something.
17957
- */
17958
- protected visibleTabs: _angular_core.Signal<({
17959
- id: "queries";
17960
- label: string;
17961
- } | {
17962
- id: "stacks";
17963
- label: string;
17964
- } | {
17965
- id: "sequences";
17966
- label: string;
17967
- } | {
17968
- id: "forms";
17969
- label: string;
17970
- } | {
17971
- id: "auth";
17972
- label: string;
17973
- } | {
17974
- id: "ws";
17975
- label: string;
17976
- } | {
17977
- id: "cache";
17978
- label: string;
17979
- } | {
17980
- id: "timeline";
17981
- label: string;
17982
- } | {
17983
- id: "events";
17984
- label: string;
17985
- } | {
17986
- id: "faults";
17987
- label: string;
17988
- } | {
17989
- id: "mocks";
17990
- label: string;
17991
- } | {
17992
- id: "about";
17993
- label: string;
17994
- })[]>;
17995
- /** The empty tabs, which the bar offers behind "More" instead. */
17996
- protected overflowTabs: _angular_core.Signal<({
17997
- id: "queries";
17998
- label: string;
17999
- } | {
18000
- id: "stacks";
18001
- label: string;
18002
- } | {
18003
- id: "sequences";
18004
- label: string;
18005
- } | {
18006
- id: "forms";
18007
- label: string;
18008
- } | {
18009
- id: "auth";
18010
- label: string;
18011
- } | {
18012
- id: "ws";
18013
- label: string;
18014
- } | {
18015
- id: "cache";
18016
- label: string;
18017
- } | {
18018
- id: "timeline";
18019
- label: string;
18020
- } | {
18021
- id: "events";
18022
- label: string;
18023
- } | {
18024
- id: "faults";
18025
- label: string;
18026
- } | {
18027
- id: "mocks";
18028
- label: string;
18029
- } | {
18030
- id: "about";
18031
- label: string;
18032
- })[]>;
18033
- selectedQuery: _angular_core.Signal<{
18034
- entry: QueryDevtoolsEntry;
18035
- query: AnyQuery;
18036
- } | null>;
18037
- stackSelectedQuery: _angular_core.Signal<{
18038
- entry: QueryDevtoolsEntry;
18039
- query: AnyQuery;
18040
- } | null>;
18041
- sequenceSelectedQuery: _angular_core.Signal<{
18042
- entry: QueryDevtoolsEntry;
18043
- query: AnyQuery;
18044
- } | null>;
18045
- formSelectedQuery: _angular_core.Signal<{
18046
- entry: QueryDevtoolsEntry;
18047
- query: AnyQuery;
18048
- } | null>;
18049
- timelineSelectedQuery: _angular_core.Signal<{
18050
- entry: QueryDevtoolsEntry;
18051
- query: AnyQuery;
18052
- } | null>;
18053
- /**
18054
- * The cache per client, with every entry's size measured. Reading each response inside the computed is
18055
- * what keeps the totals current: a cache mutation bumps `cacheVersion`, but a response landing in an
18056
- * entry that is already there does not.
18057
- */
18058
- cacheView: _angular_core.Signal<{
18059
- name: string;
18060
- baseUrl: string;
18061
- repository: QueryRepository;
18062
- rows: CacheRow[];
18063
- bytes: number;
18064
- isEstimatedBytes: boolean;
18065
- unused: number;
18066
- pollStates: Record<string, QueryKeyLockState>;
18067
- client: QueryClient | null;
18068
- dropped: DroppedCacheEntry[];
18069
- }[]>;
18070
- /** Map of a component's host element to the query entries it created (for the inspect tool). */
18071
- private elementQueryMap;
18072
- /** Disarms every client's fault - the shell's "Faults armed" banner offers this above every tab. */
18073
- protected readonly CLEAR_FAULTS: (clientName?: string) => void;
18074
- /** Whether what is armed came back from a previous page load, which is what the bars have to say. */
18075
- protected faultsRestored: _angular_core.Signal<boolean>;
18076
- protected mocksRestored: _angular_core.Signal<boolean>;
18077
- /** Stops serving every designed mock - the shell's "Mocks armed" banner offers the same way out. */
18078
- protected readonly DISARM_MOCKS: () => void;
18079
- /**
18080
- * What the previous page load left armed: how many ops came back, how many queries took them, and the
18081
- * ids nothing claimed. `null` when this page inherited nothing, so a template can `@if` on it.
18082
- */
18083
- protected restoredOverrides: _angular_core.Signal<{
18084
- queries: number;
18085
- ops: number;
18086
- firstId: string | null;
18087
- orphaned: string[];
18088
- fromLocalStorage: boolean;
18089
- } | null>;
18090
- /** Drops everything the reload re-armed, and empties the store it came from. */
18091
- protected readonly DROP_RESTORED_OVERRIDES: () => void;
18092
- /** Every edge, so a float resizes the way a window does rather than only from one corner. */
18093
- protected readonly FLOAT_RESIZE_EDGES: ResizeEdge[];
18094
- constructor();
18095
- /** @see queryDevtoolsOverridePersistence */
18096
- overridesPersist(): boolean;
18097
- toggleOverridesPersist(): void;
18098
- /** Where armed overrides are kept, as the drawer's toggle and the Settings picker both name it. */
18099
- overridesScopeLabel(): string;
18100
- /**
18101
- * Puts the panel back the way it ships: layout, filters, selections, pins and the stored overrides.
18102
- * The settings themselves stay - a panel behaving oddly is a reason to reset its state, not to lose the
18103
- * scopes and limits that were chosen deliberately.
18104
- *
18105
- * Resetting the live state is the point, not just clearing the keys: the persistence effects would
18106
- * write the current state straight back into whatever store the scopes name.
18107
- */
18108
- resetDevtools(): void;
18109
- /**
18110
- * Opens Settings over whatever tab is showing, and the same click closes it again. Settings is not in
18111
- * the tab bar - see {@link DevtoolsTab}.
18112
- */
18113
- protected toggleSettings(): void;
18114
- /** Opens the first query the reload re-armed, so the banner leads somewhere rather than just warning. */
18115
- protected reviewRestoredOverrides(id: string): void;
18116
- /**
18117
- * Closing while popped out docks back instead: the panel a pop-out shows is the very element the
18118
- * `@if` below would destroy, so it has to come home before it can be closed.
18119
- */
18120
- protected toggleOpen(): void;
18121
- protected floatPanel(): void;
18122
- protected selectLayout(layout: DevtoolsLayout): void;
18123
- /**
18124
- * Moves the panel into a window of its own - the same element, adopted by the pop-up's document, so
18125
- * every signal binding in it keeps updating from the app it is inspecting.
18126
- *
18127
- * The panel's styles are global `<style>` tags in the host document, and the theming tokens it reads
18128
- * hang off the root element, so both are copied over; without them the pop-out renders unstyled.
18129
- */
18130
- popOut(): void;
18131
- selectClient(name: string | null): void;
18132
- clearInspectFilter(): void;
18133
- toggleFacet(facet: QueryListFacet): void;
18134
- /** Drops the search term and the status chips, keeping the client / inspection scope. */
18135
- clearQueryFilters(): void;
18136
- isQueryPinned(entry: QueryDevtoolsEntry): boolean;
18137
- toggleQueryPath(key: string): void;
18138
- toggleQueryPin(entry: QueryDevtoolsEntry): void;
18139
- protected toggleInspect(): void;
18140
- protected startResize(event: PointerEvent): void;
18141
- protected moveFloat(move: DragMoveEvent): void;
18142
- /** Parks the panel where a drag left it, or pulls it back in if the drag stopped short of an edge. */
18143
- protected endFloatMove(): void;
18144
- /** A click on the title bar of a parked panel brings it back - the gesture that parked it, reversed. */
18145
- protected restoreFloat(): void;
18146
- /** A resize reports a delta from where the pointer went down, so the rect it started from is kept. */
18147
- protected startFloatResize(): void;
18148
- protected resizeFloat(move: ResizeMoveEvent): void;
18149
- protected endFloatResize(): void;
18150
- startPaneResize(event: PointerEvent, target: {
18151
- pane: PaneTarget;
18152
- container: HTMLElement;
18153
- }): void;
18154
- /** Hands a pane back to the stylesheet's proportional default, on the axis it is being sized along. */
18155
- resetPaneSize(pane: PaneTarget): void;
18156
- protected inspectLabel(entries: QueryDevtoolsEntry[]): string;
18157
- /**
18158
- * A query's route, split so the template can tell its static path from its path params (each carrying
18159
- * the value the query used, or `:<name>` while it has none yet) and from the query string of the
18160
- * request that ran - which is what tells two requests to the same endpoint apart.
18161
- */
18162
- routeSegments(entry: QueryDevtoolsEntry | undefined, query: AnyQuery): RouteSegment[];
18163
- /** The full URL of the request a query last made, or `null` while it has not executed. */
18164
- requestUrl(query: AnyQuery): string | null;
18165
- /**
18166
- * The args of a query. A query executed imperatively (`execute({ args })`, a sequence step, an auth
18167
- * query) never writes them to its own `args` signal - only the `withArgs` feature does - so the args
18168
- * its current request was built from stand in.
18169
- */
18170
- queryArgs(query: AnyQuery): Omit<any, "response"> | null;
18171
- queryStatus(query: AnyQuery): QueryStatus;
18172
- /**
18173
- * A request in flight is already refreshing, so reporting it as stale on top of `loading` is noise -
18174
- * the same precedence the cache tab's freshness column applies.
18175
- */
18176
- isStale(query: AnyQuery): boolean;
18177
- /**
18178
- * Whether an entry is showing something other than what the server actually sent - an armed response
18179
- * override, or a devtools fault that decided its last completed run. Deliberately not "a fault is
18180
- * armed nearby": an armed-but-idle fault (a `failRate` under 100, say) mostly lets requests through
18181
- * untouched, so that would over-claim for the vast majority of queries on that client.
18182
- */
18183
- isTampered(entry: QueryDevtoolsEntry): boolean;
18184
- /** Whether a designed mock is armed for this query's own route, so nothing it shows came off the wire. */
18185
- isMocked(entry: QueryDevtoolsEntry): boolean;
18186
- /**
18187
- * What a query's current request is doing beyond being loading, or `null` when there is nothing beyond
18188
- * the status dot to say - so the readout only takes up room while it carries something.
18189
- */
18190
- requestProgress(query: AnyQuery): RequestProgress | null;
18191
- /** Why a retry was scheduled, as the panel spells it out. A status of 0 never reached the server. */
18192
- retryCause(status: number): string;
18193
- formatPercent(percentage: number): string;
18194
- /** A countdown in whole seconds, spelled out the way the cache freshness column does. */
18195
- formatCountdown(ms: number | null): string;
18196
- queryActivity(entry: QueryDevtoolsEntry): QueryActivity;
18197
- linkActivity(link: QueryLink): QueryActivity;
18198
- stackActivity(stack: AnyQueryStack | AnyPagedQueryStack): QueryActivity;
18199
- sequenceActivity(sequence: QuerySequence<unknown[]>): QueryActivity;
18200
- /** Clears an entry's counters and run history, so the next interaction can be measured on its own. */
18201
- resetStats(entry: QueryDevtoolsEntry): void;
18202
- /** A query's runs, newest first - the order a history is read in. */
18203
- queryRuns(entry: QueryDevtoolsEntry): QueryDevtoolsRun[];
18204
- /**
18205
- * What a run's status dot and timeline bar colour by. `pending` reuses the panel's loading colour;
18206
- * `aborted` matches no rule and so falls back to the neutral one.
18207
- */
18208
- runStatus(run: QueryDevtoolsRun): "success" | "error" | "loading" | "aborted";
18209
- /**
18210
- * Whether a run can be an end of the diff: it still holds its body, and so does some other run of the
18211
- * same query. Deliberately not "an *older* run" - a free pair means the oldest body held is pickable
18212
- * too, as the base of a comparison against something newer.
18213
- */
18214
- canDiffRun(entry: QueryDevtoolsEntry, run: QueryDevtoolsRun): boolean;
18215
- /**
18216
- * Arms a run as one end of the diff, or - with one end already armed - as the other. Clicking either
18217
- * end clears both.
18218
- */
18219
- toggleRunDiff(entry: QueryDevtoolsEntry, run: QueryDevtoolsRun): void;
18220
- /** Which end of the comparison a run is, so a row says so and the two ends read differently. */
18221
- diffRunRole(entry: QueryDevtoolsEntry, run: QueryDevtoolsRun): 'base' | 'compare' | null;
18222
- responseDiff(entry: QueryDevtoolsEntry): {
18223
- before: QueryDevtoolsRun;
18224
- after: QueryDevtoolsRun;
18225
- diff: QueryDevtoolsDiff;
18226
- } | null;
18227
- /** Whether the diff header's older/newer control has a pair to move to. */
18228
- canStepRunDiff(entry: QueryDevtoolsEntry, older: boolean): boolean;
18229
- /**
18230
- * Moves the whole comparison one run older or newer, so re-picking a pair does not mean scrolling back
18231
- * up to the runs table. Within the handful of retained bodies there are only a few pairs to walk.
18232
- */
18233
- stepRunDiff(entry: QueryDevtoolsEntry, older: boolean): void;
18234
- toggleRunError(run: QueryDevtoolsRun): void;
18235
- /**
18236
- * The error body of the picked run. Read off the run rather than off `query.error()`, which is the
18237
- * only other place a failure is legible and is blanked by anything that resets the query - a logout
18238
- * resets every secure query, so a 401 is gone from there by the time it is looked for.
18239
- */
18240
- pickedRunError(entry: QueryDevtoolsEntry): {
18241
- run: QueryDevtoolsRun;
18242
- error: _ethlete_query.QueryDevtoolsRunError;
18243
- } | null;
18244
- /** Opens a query in the Queries tab - the Events tab is a way in, not a dead end. */
18245
- selectQuery(id: string): void;
18246
- /** A value on one line, for a diff row or a form field. The full tree would bury the row it sits in. */
18247
- inlineValue(value: unknown): string;
18248
- formatBytes(bytes: number): string;
18249
- /**
18250
- * A transferred size, marked `≈` when any part of it was measured from a decoded body instead of read
18251
- * from a `content-length` header - such a size ignores transport compression.
18252
- */
18253
- formatTransferred(bytes: number, isEstimated: boolean): string;
18254
- /** A transfer rate, given in bytes per second the way `HttpRequestLoadingProgressState.speed` reports it. */
18255
- formatSpeed(bytesPerSecond: number): string;
18256
- formatDuration(ms: number | null): string;
18257
- /**
18258
- * Replays a query with the args the panel is already showing. `execute()` would otherwise default to
18259
- * `state.args()`, which only `withArgs` ever writes - so a query executed imperatively, by a sequence
18260
- * step or as an auth query would replay with no args at all and a function route would throw.
18261
- */
18262
- executeQuery(selection: QueryDevtoolsSelection, allowCache: boolean): void;
18263
- resetQuery(query: AnyQuery): void;
18264
- /**
18265
- * Copies a shareable report (path, args, status, slimmed response) for handing to an API dev.
18266
- * Writes both rich `text/html` (Slack applies formatting on paste - it does not parse markdown) and
18267
- * a plain-text fallback.
18268
- */
18269
- copyReport(entry: QueryDevtoolsEntry, query: AnyQuery): void;
18270
- /** Copies one query as an Insomnia collection, for `Import > From Clipboard`. */
18271
- copyInsomniaRequest(entry: QueryDevtoolsEntry, query: AnyQuery): void;
18272
- /**
18273
- * Copies one query as a `curl` command - what goes into a terminal, a ticket or a chat message, where
18274
- * an Insomnia collection is too heavy to be read at all.
18275
- */
18276
- copyCurlRequest(entry: QueryDevtoolsEntry, query: AnyQuery): void;
18277
- /** Copies the GraphQL document as displayed — dedented, so it pastes straight into a playground. */
18278
- copyGqlDocument(doc: string): void;
18279
- /**
18280
- * The endpoint of a query as one string: the absolute URL its last request used, or - for a query
18281
- * that has not run - the rendered route on screen.
18282
- */
18283
- copyableRoute(entry: QueryDevtoolsEntry, query: AnyQuery): string;
18284
- /** Names which of the two strings {@link copyableRoute} is offering, so the button says what it copies. */
18285
- copyableRouteTitle(entry: QueryDevtoolsEntry, query: AnyQuery): string;
18286
- /** Copies {@link copyableRoute} - the endpoint on its own, where the exports are a whole document. */
18287
- copyRoute(entry: QueryDevtoolsEntry, query: AnyQuery): void;
18288
- /**
18289
- * Downloads the given queries (already scoped/filtered by the caller) as one Insomnia collection,
18290
- * filed into a folder per query client.
18291
- */
18292
- downloadInsomniaCollection(items: {
18293
- entry: QueryDevtoolsEntry;
18294
- query: AnyQuery;
18295
- }[], clientLabel: string | null): void;
18296
- /**
18297
- * Downloads the whole panel as one JSON file: every registered entry with what it ran and what it
18298
- * holds, the event log, the cache totals and anything armed in the Faults tab. Unlike **Copy report**
18299
- * this is not scoped to one query - it is the attachment for a bug report about a screen.
18300
- *
18301
- * Deliberately unfiltered: a report is read by someone who was not there, and a dump that silently
18302
- * left out the client you were not looking at is worse than no dump.
18303
- */
18304
- protected downloadSession(): void;
18305
- openResponseEditor(query: AnyQuery): void;
18306
- openArgsEditor({ entry, query }: QueryDevtoolsSelection): void;
18307
- applyResponse(query: AnyQuery): void;
18308
- applyArgs(query: AnyQuery): void;
18309
- cancelEditor(): void;
18310
- forceLoading(query: AnyQuery): void;
18311
- forceError(query: AnyQuery): void;
18312
- forceEmpty(query: AnyQuery): void;
18313
- clearForced(query: AnyQuery): void;
18314
- refetchCacheEntry(entry: QueryRepositoryCacheEntry): void;
18315
- evictCacheEntry(repository: QueryRepository, key: string): void;
18316
- /**
18317
- * Drops every entry of one client, consumers included - the cold-start check that does not need a
18318
- * reload. A query still bound to an evicted entry requests again on its next execution.
18319
- */
18320
- evictAllCacheEntries(repository: QueryRepository): void;
18321
- /**
18322
- * Expands the response held under a cache key, which is the only way to read an entry no live query is
18323
- * bound to any more - the Queries tab has nothing to select for it.
18324
- */
18325
- toggleCacheValue(clientName: string, key: string): void;
18326
- isCacheValueExpanded(clientName: string, key: string): boolean;
18327
- cacheFreshness(entry: QueryRepositoryCacheEntry): string;
18328
- /**
18329
- * What multi-tab sync is doing for a cache entry: whether this tab is the one polling the key, and
18330
- * how long ago it last took a response from another tab. Empty when the client has no sync.
18331
- */
18332
- cacheSync(entry: QueryRepositoryCacheEntry, pollStates: Record<string, QueryKeyLockState>): string;
18333
- /**
18334
- * Whether a cache entry is showing data that came off the disk rather than the network - the answer
18335
- * to "why is this here already?" on a cold start. Empty when the client does not persist responses.
18336
- */
18337
- cachePersistence(entry: QueryRepositoryCacheEntry): string;
18338
- /** How many responses this client has on disk, which is usually more than it has in memory. */
18339
- persistedCount(client: QueryClient): number;
18340
- clearPersistedQueries(client: QueryClient): void;
18341
- /** The path + query of a request URL (origin stripped), for readable cache/event identifiers. */
18342
- requestPath(url: string): string;
18343
- asStack(entry: QueryDevtoolsEntry): AnyQueryStack;
18344
- asPagedStack(entry: QueryDevtoolsEntry): AnyPagedQueryStack;
18345
- asSequence(entry: QueryDevtoolsEntry): QuerySequence<unknown[]>;
18346
- asAuth(entry: QueryDevtoolsEntry): AnyBearerAuthProvider;
18347
- asWs(entry: QueryDevtoolsEntry): WebSocketDevtoolsHandle;
18348
- /**
18349
- * A socket's messages, narrowed by the filter box. Every whitespace-separated term has to match the
18350
- * event, the room or the direction, so `out join` finds the room joins the client sent.
18351
- */
18352
- socketMessages(ws: WebSocketDevtoolsHandle): WebSocketDevtoolsMessage[];
18353
- /** How the message log labels a direction: what the client sent, versus what the server pushed. */
18354
- socketDirectionLabel(message: WebSocketDevtoolsMessage): "↑ sent" | "↓ received";
18355
- /**
18356
- * Sends a message as the app would, so a server that only answers a client that asked can be provoked
18357
- * from the panel. An empty payload sends nothing rather than `""` - a plain event is a valid message.
18358
- */
18359
- emitSocketMessage(options: {
18360
- entry: QueryDevtoolsEntry;
18361
- event: string;
18362
- data: string;
18363
- }): void;
18364
- socketEmitErrorFor(entryId: string): string | null;
18365
- asForm(entry: QueryDevtoolsEntry): QueryDevtoolsFormHandle;
18366
- /**
18367
- * The queries a form feeds, discovered from the reads its `value()` recorded while their args were
18368
- * built - so a form that nothing consumes yet reads as exactly that.
18369
- */
18370
- queriesDrivenByForm(entry: QueryDevtoolsEntry): QueryLink[];
18371
- /** The reverse: the forms whose value a query's args read. */
18372
- formsDrivingQuery(entry: QueryDevtoolsEntry): QueryDevtoolsEntry[];
18373
- selectForm(id: string): void;
18374
- /**
18375
- * The refreshes that re-executed a query, newest first - the answer to "why did this refetch?". Read
18376
- * off the event log, so it goes back exactly as far as the log does.
18377
- */
18378
- refreshesFor(entryId: string): {
18379
- id: number;
18380
- timestamp: number;
18381
- label: string;
18382
- }[];
18383
- /** What asked for a refresh, on one line. */
18384
- causeLabel(cause: QueryRefreshCause): string;
18385
- /** Derives the per-step status of a sequence step from its live progress signals. */
18386
- sequenceStepStatus(sequence: QuerySequence<unknown[]>, index: number): QuerySequenceStatus;
18387
- authTokenPayload(auth: AnyBearerAuthProvider): Record<string, unknown> | null;
18388
- queriesForStack(stack: AnyQueryStack | AnyPagedQueryStack): QueryLink[];
18389
- authQueryKeys(auth: AnyBearerAuthProvider): string[];
18390
- /**
18391
- * Which tab refreshes this provider's tokens, as a chip: whether it is this one, how many tabs are
18392
- * in the election, and - when there is no election - why every tab reads as the leader.
18393
- */
18394
- authLeadership(auth: AnyBearerAuthProvider): QueryDevtoolsLeadership | null;
18395
- /**
18396
- * The access token's expiry as the app sees it, plus whatever the panel is doing to it: an armed
18397
- * lifetime replaces the countdown, and the token's own is reported next to it so the card never claims
18398
- * a refresh is due at a time the API would disagree with.
18399
- */
18400
- authTokenLifetime(entry: QueryDevtoolsEntry): QueryDevtoolsTokenLifetime;
18401
- queriesForSequence(sequence: QuerySequence<unknown[]>): QueryLink[];
18402
- /** The snapshot of a sequence step, once it has run (holds the args in and the response/error out). */
18403
- stepSnapshot(sequence: QuerySequence<unknown[]>, index: number): AnyQuerySnapshot | null;
18404
- toggleQueryGroup(key: string): void;
18405
- expandQueryGroup(key: string): void;
18406
- isStepExpanded(entryId: string, index: number): boolean;
18407
- toggleStep(entryId: string, index: number): void;
18408
- /** Dedents a GraphQL document (template-literal indentation) for readable display. */
18409
- gqlDocument(doc: string): string;
18410
- featureLabel(type: string): string;
18411
- /** A feature and its options on one line, for a report or a chip's tooltip. */
18412
- featureSummary(feature: QueryDevtoolsFeature): string;
18413
- /** The features of the client behind a cache tab card, or `null` for a client without any. */
18414
- clientFeatures(client: QueryClient | null | undefined): QueryDevtoolsFeature[] | null;
18415
- formatTime(timestamp: number | null): string;
18416
- /**
18417
- * The element a query was created in, which is what {@link locateQuery} can point at. `null` for a
18418
- * query created outside a component or directive injector - a root service, a resolver, a guard.
18419
- */
18420
- locatableElement(entry: QueryDevtoolsEntry): HTMLElement | null;
18421
- /**
18422
- * Scrolls the element the selected query was created in into view and draws the inspect box over it -
18423
- * inspect run backwards. Where a query was *created* is not necessarily where its data is rendered,
18424
- * which is what the button's "created here" wording is for.
18425
- */
18426
- locateQuery(entry: QueryDevtoolsEntry): void;
18427
- /** Downloads a file a tab generated. @see QueryDevtoolsHost.downloadTextFile */
18428
- downloadTextFile(file: {
18429
- name: string;
18430
- content: string;
18431
- type: string;
18432
- }): void;
18433
- /**
18434
- * The two runs the diff compares, oldest first - normalised by run index, so picking a pair in either
18435
- * order reads the same way round as the `#before → #after` header prints it.
18436
- *
18437
- * `null` unless a run is picked, so a closed diff costs nothing to walk.
18438
- */
18439
- /**
18440
- * The two runs the comparison spans, oldest first - normalised by run index, so picking a pair in
18441
- * either order reads the same way round as the `#before → #after` header prints it. With only one end
18442
- * armed, `after` is absent unless an older body-holding run can stand in for the base.
18443
- *
18444
- * `null` unless a run is armed, so a closed diff costs nothing to walk.
18445
- */
18446
- /**
18447
- * The pair one step older or newer than the current comparison, keeping whatever gap it has, or `null`
18448
- * at either end of the retained bodies.
18449
- */
18450
- private steppedDiffPair;
18451
- private diffEnds;
18452
- private isTabPrimary;
18453
- /** Moves the panel into a pop-up whose document has finished loading. @see popOut */
18454
- private mountPopOut;
18455
- /**
18456
- * The panel's chrome tokens as the app currently resolves them, so a pop-out keeps the surface it was
18457
- * docked in. Its own CSS resolves them from the host app's theme, and that theme is set on an ancestor
18458
- * the pop-out does not have - inherited afresh over there, the panel would take the document's theme
18459
- * (usually the light one) rather than the one it was just being read against.
18460
- *
18461
- * Empty on a browser that does not enumerate custom properties, which leaves the tokens to be
18462
- * inherited as before.
18463
- */
18464
- private chromeTokens;
18465
- /** Whether a `<head>` child carries CSS the pop-out needs a copy of. */
18466
- private isStyleNode;
18467
- /**
18468
- * Copies the host document's stylesheets into the pop-up and keeps mirroring them while it is
18469
- * open. Styles keep arriving after the move: Angular inserts a component's CSS and the style
18470
- * manager mounts overlay strategy CSS the first time each is used - e.g. the first menu opened
18471
- * over there - so a one-time copy would leave everything first used after the pop-out unstyled.
18472
- */
18473
- private syncStylesInto;
18474
- /** Brings the panel back into the host element and closes the window it was living in. */
18475
- private dockBack;
18476
- /** A registered query as a row that opens the detail drawer. */
18477
- private queryLinkFor;
18478
- /** The activity of one entry, or the total of a group of them (a stack's queries, a whole tab). */
18479
- private activityOf;
18480
- /** An activity summary on one line, for a report. `null` for a query that has not run. */
18481
- private activitySummary;
18482
- /** {@link routeSegments} as a plain string, for the places that cannot render markup. */
18483
- private queryRoute;
18484
- /**
18485
- * Describes a query the way a replay outside the app needs it: the URL, headers and body of the
18486
- * request it last made, or - for a query that has not run - what its current args would send.
18487
- */
18488
- private exportedRequest;
18489
- /**
18490
- * The token refreshes the given requests authenticate with - one per auth provider they name, and
18491
- * only for a provider that is logged in, since a refresh request without a refresh token has
18492
- * nothing to send.
18493
- */
18494
- private insomniaTokenRefreshes;
18495
- private insomniaTokenRefresh;
18496
- /**
18497
- * Where the access token sits in the refresh response. A provider's `extractTokens` can pull it out
18498
- * of any shape, so the path is recovered by finding the live token in the last auth response - with
18499
- * the default extractor's `$.accessToken` as the fallback.
18500
- */
18501
- private accessTokenPath;
18502
- /**
18503
- * How long Insomnia may reuse a stored refresh response: the access token's own lifetime with a
18504
- * margin, so the chain refreshes shortly before the token it hands out would expire. Capped at an
18505
- * hour - a long-lived (or bogus) `exp` should still hand out a token minted this session.
18506
- */
18507
- private accessTokenMaxAge;
18508
- /**
18509
- * The headers a replay needs, including the ones the query client adds. Header providers can throw
18510
- * (a secure query's needs an access token), in which case the request is exported without them.
18511
- */
18512
- private insomniaHeaders;
18513
- private sessionClients;
18514
- /** Every registered entry, described by whatever its kind carries. */
18515
- private sessionEntries;
18516
- private sessionQuery;
18517
- private sessionActivity;
18518
- private sessionSequence;
18519
- private sessionForm;
18520
- /**
18521
- * An auth provider without its tokens. A session report is a file that gets attached to a ticket, and
18522
- * the access token is the one thing in the panel that must never travel with it - which is why only
18523
- * its presence and its remaining lifetime are exported.
18524
- */
18525
- private sessionAuth;
18526
- private sessionSocket;
18527
- private sessionEvents;
18528
- private sessionFaults;
18529
- /** Only the armed ones: a capture taken while the panel was answering requests has to say which. */
18530
- private sessionMocks;
18531
- private downloadFile;
18532
- private stepKey;
18533
- private paneSize;
18534
- /** The panel's size is the distance from the pointer to the edge it is docked to. */
18535
- private applyResize;
18536
- /** A pane's size is the distance from the pointer to the container edge that pane sits against. */
18537
- private applyPaneResize;
18538
- private closePopup;
18539
- private updateInspectHover;
18540
- private selectInspectedQuery;
18541
- private selectionKey;
18542
- /** Writes to the clipboard and ticks `copied` on success. `html` is omitted for plain-text payloads. */
18543
- private writeToClipboard;
18544
- private responseStatus;
18545
- private findQuery;
18546
- private pushEvent;
18547
- /**
18548
- * The registered query an event's request belongs to. A request is shared by every query on the same
18549
- * cache key, so the first owner is as good as any - they all show the same response.
18550
- *
18551
- * The url fallback is what makes a row clickable when the query is already gone: an error that fires
18552
- * as the component holding it is being destroyed (a `401` that redirects to login) has no live owner
18553
- * left to match on identity, and its tombstone holds a copy of the request rather than the request.
18554
- */
18555
- private resolveEventQueryId;
18556
- /**
18557
- * The size of a settled request's response, taken from its `content-length` when the response carried
18558
- * one and measured from the decoded body otherwise.
18559
- */
18560
- private measureResponse;
18561
- private refreshedRequestOf;
18562
- private pushEventItem;
18563
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<QueryDevtoolsComponent, never>;
18564
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<QueryDevtoolsComponent, "et-query-devtools", never, {}, {}, never, never, true, never>;
18565
- }
18566
-
18567
17116
  /**
18568
17117
  * What the directive needs from a query in order to retry it: something executable. Both query clients satisfy
18569
17118
  * it - the current client's `Query` directly, and a legacy one through
@@ -18829,6 +17378,8 @@ declare const SCHEDULER_ERROR_CODES: {
18829
17378
  readonly EDIT_SURFACE_FEATURE_OUTSIDE_SURFACE: 4502;
18830
17379
  /** `[etSchedulerSwipeNavigation]` was placed on an element that is not an `[etScheduler]`. */
18831
17380
  readonly SWIPE_NAVIGATION_OUTSIDE_SCHEDULER: 4503;
17381
+ /** `[etSchedulerAppointmentDrag]` was placed on an element that is not an `[etScheduler]`. */
17382
+ readonly APPOINTMENT_DRAG_OUTSIDE_SCHEDULER: 4504;
18832
17383
  };
18833
17384
 
18834
17385
  /**
@@ -18884,6 +17435,8 @@ type SchedulerLabels = {
18884
17435
  descriptionField: string;
18885
17436
  /** Label for the built-in color edit field. */
18886
17437
  colorField: string;
17438
+ /** Label for the color field's "leave it unset" choice, shown when a `provideColorPalette` palette exists. */
17439
+ colorFieldNone: string;
18887
17440
  };
18888
17441
  /** The built-in English labels. */
18889
17442
  declare const DEFAULT_SCHEDULER_LABELS: SchedulerLabels;
@@ -18921,6 +17474,27 @@ type SchedulerVisibleRange = {
18921
17474
  start: Date;
18922
17475
  end: Date;
18923
17476
  };
17477
+ /** What a drag on an appointment already on the calendar changes - the whole of it, or one end. */
17478
+ type SchedulerAppointmentDragMode = 'move' | 'resize-start' | 'resize-end';
17479
+ /**
17480
+ * An appointment being dragged to a new time. Views lay their appointments out from the range on
17481
+ * here rather than the appointment's own, which is what previews the drag; it lives only for as
17482
+ * long as the pointer is down.
17483
+ */
17484
+ type SchedulerAppointmentDrag<TExtra = unknown> = {
17485
+ /** The appointment as it stood when the drag began - the range on here is the pending one. */
17486
+ appointment: Appointment<TExtra>;
17487
+ mode: SchedulerAppointmentDragMode;
17488
+ start: Date;
17489
+ end: Date;
17490
+ };
17491
+ /** A completed move or resize - the payload of `appointmentReschedule`. */
17492
+ type SchedulerAppointmentReschedule<TExtra = unknown> = {
17493
+ /** The appointment at the time it was dragged to. */
17494
+ appointment: Appointment<TExtra>;
17495
+ /** The same appointment as it was before the drag. */
17496
+ previous: Appointment<TExtra>;
17497
+ };
18924
17498
  /**
18925
17499
  * A time range the user is dragging out on a view to create a new appointment. Stays set while the
18926
17500
  * create surface is open so the surface can stay anchored to the range it came from.
@@ -18969,19 +17543,43 @@ declare class SchedulerDirective<TExtra = unknown> {
18969
17543
  locale: _angular_core.InputSignal<Locale | null>;
18970
17544
  /** Defaults to the locale's week start, else Monday. */
18971
17545
  firstDayOfWeek: _angular_core.InputSignal<SchedulerWeekStartsOn | undefined>;
17546
+ /**
17547
+ * How many days the agenda view lists, counted from {@link focusedDate}'s own day rather than
17548
+ * from its week - the lever an open-ended "load more as you scroll" agenda grows. `null` keeps
17549
+ * the agenda on the week view's window, so switching between the two keeps the same days.
17550
+ */
17551
+ agendaDays: _angular_core.InputSignal<number | null>;
17552
+ /**
17553
+ * Emits when a move or resize lands the appointment somewhere else - see
17554
+ * {@link commitAppointmentDrag}. `appointments` is yours, so nothing has changed until you apply
17555
+ * it; the preview drops on release, so persisting asynchronously wants an optimistic write.
17556
+ */
17557
+ appointmentReschedule: _angular_core.OutputEmitterRef<SchedulerAppointmentReschedule<TExtra>>;
18972
17558
  effectiveLocale: _angular_core.Signal<Locale | null>;
18973
17559
  effectiveFirstDayOfWeek: _angular_core.Signal<SchedulerWeekStartsOn>;
17560
+ private effectiveAgendaDays;
18974
17561
  /**
18975
17562
  * The date span the active view is showing. Month pads out to full weeks, covering the grid's
18976
17563
  * leading/trailing days from adjacent months; week and agenda share one 7-day window, since
18977
- * agenda is a flat render of the same days the week view lays out on a grid.
17564
+ * agenda is a flat render of the same days the week view lays out on a grid - unless
17565
+ * {@link agendaDays} opts the agenda out of that window.
18978
17566
  */
18979
17567
  visibleRange: _angular_core.Signal<SchedulerVisibleRange>;
18980
- /** {@link appointments}, arranged into sub-appointment chains - see `buildAppointmentTree`. */
17568
+ /**
17569
+ * The appointment being moved or resized by a drag, or `null` - see {@link beginAppointmentDrag}.
17570
+ * Set only while the pointer is down.
17571
+ */
17572
+ appointmentDrag: _angular_core.WritableSignal<SchedulerAppointmentDrag<TExtra> | null>;
17573
+ /**
17574
+ * {@link appointments} with an in-flight {@link appointmentDrag} applied to the one being dragged.
17575
+ * Every layout derives from this, so a drag previews itself in whichever view is on screen.
17576
+ */
17577
+ effectiveAppointments: _angular_core.Signal<readonly Appointment<TExtra>[]>;
17578
+ /** {@link effectiveAppointments}, arranged into sub-appointment chains - see `buildAppointmentTree`. */
18981
17579
  appointmentTree: _angular_core.Signal<_ethlete_components.AppointmentTreeNode<TExtra>[]>;
18982
17580
  /** The seven weekday names, starting from {@link effectiveFirstDayOfWeek} - for grid/agenda headers. */
18983
17581
  weekdays: _angular_core.Signal<SchedulerWeekday[]>;
18984
- /** {@link appointments} that overlap {@link visibleRange} at all - not yet bucketed per view. */
17582
+ /** {@link effectiveAppointments} that overlap {@link visibleRange} at all - not yet bucketed per view. */
18985
17583
  visibleAppointments: _angular_core.Signal<Appointment<TExtra>[]>;
18986
17584
  /** The selected appointment itself, or `null` - resolved from {@link selectedAppointmentId}. */
18987
17585
  selectedAppointment: _angular_core.Signal<Appointment<TExtra> | null>;
@@ -18999,7 +17597,10 @@ declare class SchedulerDirective<TExtra = unknown> {
18999
17597
  surfaceAnchor: _angular_core.WritableSignal<HTMLElement | null>;
19000
17598
  /** Where the current drag started, so extending backwards past it flips the range. */
19001
17599
  private draftAnchor;
19002
- /** Steps {@link focusedDate} forward by the active view's unit - a day, a week, or a month. */
17600
+ /**
17601
+ * Steps {@link focusedDate} forward by the active view's unit - a day, a week, a month, or the
17602
+ * agenda's own {@link agendaDays} span when it has one.
17603
+ */
19003
17604
  next(): void;
19004
17605
  /** Steps {@link focusedDate} backward by the active view's unit. */
19005
17606
  previous(): void;
@@ -19023,9 +17624,27 @@ declare class SchedulerDirective<TExtra = unknown> {
19023
17624
  commitDraftRange(): void;
19024
17625
  /** Drops the drag-to-create range - a cancelled gesture, or a create surface that closed. */
19025
17626
  clearDraftRange(): void;
17627
+ /**
17628
+ * Starts moving or resizing an appointment already on the calendar, previewed at its current time
17629
+ * until the first {@link updateAppointmentDrag}. A view calls this once its gesture has committed,
17630
+ * so a press that stays a click never begins one.
17631
+ */
17632
+ beginAppointmentDrag(appointment: Appointment<TExtra>, mode: SchedulerAppointmentDragMode): void;
17633
+ /**
17634
+ * Previews the dragged appointment at `start`-`end`. Both ends come from the view: only it knows
17635
+ * what a pointer position means on its own geometry, and what its snapping and minimum are.
17636
+ */
17637
+ updateAppointmentDrag(start: Date, end: Date): void;
17638
+ /**
17639
+ * Releases the drag, emitting {@link appointmentReschedule} when it landed on a different range.
17640
+ * The preview goes with it - the appointment renders from {@link appointments} again.
17641
+ */
17642
+ commitAppointmentDrag(): void;
17643
+ /** Drops the drag without emitting - a gesture the browser took away, so no range was chosen. */
17644
+ clearAppointmentDrag(): void;
19026
17645
  private stepBy;
19027
17646
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SchedulerDirective<any>, never>;
19028
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SchedulerDirective<any>, "[etScheduler]", ["etScheduler"], { "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "view": { "alias": "view"; "required": false; "isSignal": true; }; "focusedDate": { "alias": "focusedDate"; "required": false; "isSignal": true; }; "selectedAppointmentId": { "alias": "selectedAppointmentId"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; }, { "view": "viewChange"; "focusedDate": "focusedDateChange"; "selectedAppointmentId": "selectedAppointmentIdChange"; }, never, never, true, never>;
17647
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SchedulerDirective<any>, "[etScheduler]", ["etScheduler"], { "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "view": { "alias": "view"; "required": false; "isSignal": true; }; "focusedDate": { "alias": "focusedDate"; "required": false; "isSignal": true; }; "selectedAppointmentId": { "alias": "selectedAppointmentId"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "agendaDays": { "alias": "agendaDays"; "required": false; "isSignal": true; }; }, { "view": "viewChange"; "focusedDate": "focusedDateChange"; "selectedAppointmentId": "selectedAppointmentIdChange"; "appointmentReschedule": "appointmentReschedule"; }, never, never, true, never>;
19029
17648
  }
19030
17649
 
19031
17650
  /** One day of an agenda list: the appointments (in chain order, depth-first) that touch it. */
@@ -19034,6 +17653,19 @@ type SchedulerAgendaDay<TExtra = unknown> = {
19034
17653
  today: boolean;
19035
17654
  nodes: AppointmentTreeNode<TExtra>[];
19036
17655
  };
17656
+ /**
17657
+ * Groups a sub-appointment tree into an agenda list: one entry per day, holding every appointment
17658
+ * that touches it in chain order (a parent immediately followed by its children, depth preserved
17659
+ * from the full tree) - so indentation still reads as nesting even when a chain's root falls
17660
+ * outside the visible days. An appointment appears on every day it spans, same as the month grid.
17661
+ */
17662
+ /**
17663
+ * One agenda row's connector guides, outermost first. `trunk` is an ancestor level whose chain
17664
+ * continues past this row, `gap` one whose chain has ended (indent, no line); `branch` is the elbow
17665
+ * into this row, `last-branch` the elbow of the final child of its parent, which stops at the row's
17666
+ * middle instead of carrying on down. A root row has no guides at all.
17667
+ */
17668
+ type SchedulerAgendaGuide = 'trunk' | 'gap' | 'branch' | 'last-branch';
19037
17669
 
19038
17670
  /**
19039
17671
  * Groups the host `[etScheduler]`'s appointments into an agenda list: one entry per day of the
@@ -19454,16 +18086,52 @@ declare class SchedulerAgendaViewComponent {
19454
18086
  protected scheduler: SchedulerDirective<any> | null;
19455
18087
  protected agenda: SchedulerAgendaDirective;
19456
18088
  private featureHost;
18089
+ protected days: _angular_core.Signal<{
18090
+ month: string | null;
18091
+ rows: {
18092
+ node: _ethlete_components.AppointmentTreeNode<any>;
18093
+ guides: SchedulerAgendaGuide[];
18094
+ }[];
18095
+ date: Date;
18096
+ today: boolean;
18097
+ nodes: _ethlete_components.AppointmentTreeNode<any>[];
18098
+ }[]>;
19457
18099
  constructor();
19458
18100
  /** UI contributed by badge features (title, time range, …) - see `registerBadgeAdornment`. */
19459
18101
  protected badgeAdornments(): readonly _ethlete_components.SchedulerBadgeAdornment[];
19460
18102
  protected weekdayLabel(date: Date): string;
19461
18103
  protected isSelected(appointment: Appointment): boolean;
19462
18104
  protected select(appointment: Appointment, element: HTMLElement): void;
18105
+ private monthLabel;
19463
18106
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SchedulerAgendaViewComponent, never>;
19464
18107
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SchedulerAgendaViewComponent, "et-scheduler-agenda-view", never, {}, {}, never, never, true, [{ directive: typeof SchedulerAgendaDirective; inputs: {}; outputs: {}; }]>;
19465
18108
  }
19466
18109
 
18110
+ /** Options for {@link SchedulerAppointmentDragDirective}. */
18111
+ type SchedulerAppointmentDragConfig = SchedulerFeatureConfig;
18112
+ /**
18113
+ * Lets appointments already on the calendar be dragged to another time: moved on the month, week and
18114
+ * day views, and resized by their edges on the week and day views. A completed drag emits
18115
+ * `appointmentReschedule` rather than writing anything - `appointments` stays yours.
18116
+ *
18117
+ * One of the default pieces `<et-scheduler>` bundles; add it to a bare `[etScheduler]` composition
18118
+ * to give its views the same gesture.
18119
+ *
18120
+ * @example
18121
+ * <et-scheduler [etSchedulerAppointmentDrag]="{ enabled: false }" … />
18122
+ */
18123
+ declare class SchedulerAppointmentDragDirective {
18124
+ private elementRef;
18125
+ private scheduler;
18126
+ /** See {@link SchedulerAppointmentDragConfig}. */
18127
+ config: _angular_core.InputSignalWithTransform<SchedulerFeatureConfig, "" | SchedulerFeatureConfig>;
18128
+ /** Whether the views should start a drag at all - what each of them checks on `pointerdown`. */
18129
+ isEnabled: _angular_core.Signal<boolean>;
18130
+ constructor();
18131
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SchedulerAppointmentDragDirective, never>;
18132
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SchedulerAppointmentDragDirective, "[etSchedulerAppointmentDrag]", ["etSchedulerAppointmentDrag"], { "config": { "alias": "etSchedulerAppointmentDrag"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
18133
+ }
18134
+
19467
18135
  /** Options for {@link SchedulerBadgeChainCountDirective}. */
19468
18136
  type SchedulerBadgeChainCountConfig = SchedulerFeatureConfig;
19469
18137
  /**
@@ -19668,6 +18336,7 @@ declare class SchedulerEditSurfaceComponent implements SchedulerEditSurfaceHost
19668
18336
  private labels;
19669
18337
  private elementRef;
19670
18338
  private overlayRef;
18339
+ protected scheduler: SchedulerDirective<any> | null;
19671
18340
  /** The headless directive behind this surface - field/action registration, draft state and navigation. */
19672
18341
  surface: SchedulerEditSurfaceDirective<any>;
19673
18342
  cancelLabel: _angular_core.Signal<string>;
@@ -19683,13 +18352,17 @@ declare class SchedulerEditSurfaceComponent implements SchedulerEditSurfaceHost
19683
18352
  appointmentActions: _angular_core.Signal<SchedulerAppointmentAction[]>;
19684
18353
  /** Gates the save button - every currently-enabled field must report itself valid. */
19685
18354
  canSave: _angular_core.Signal<boolean>;
18355
+ protected childEntries: _angular_core.Signal<{
18356
+ node: AppointmentTreeNode;
18357
+ startTime: string | null;
18358
+ }[]>;
19686
18359
  constructor();
19687
18360
  /** Part of the feature contract - see `SchedulerEditSurfaceHost`. */
19688
18361
  get element(): HTMLElement;
19689
18362
  /** Part of the feature contract - see `SchedulerEditSurfaceHost`. */
19690
18363
  get appointment(): _angular_core.Signal<Appointment<any>>;
19691
18364
  /** Part of the feature contract - see `SchedulerEditSurfaceHost`. */
19692
- get appointmentTree(): _angular_core.Signal<_ethlete_components.AppointmentTreeNode<any>[]>;
18365
+ get appointmentTree(): _angular_core.Signal<AppointmentTreeNode<any>[]>;
19693
18366
  /** Part of the feature contract - see `SchedulerEditSurfaceHost`. */
19694
18367
  registerEditField(field: SchedulerEditField): void;
19695
18368
  /** Part of the feature contract - see `SchedulerEditSurfaceHost`. */
@@ -19822,7 +18495,7 @@ declare class SchedulerComponent implements SchedulerFeatureHost {
19822
18495
  private editSurfaceBindings;
19823
18496
  private handleEditSurfaceResult;
19824
18497
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SchedulerComponent, never>;
19825
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SchedulerComponent, "et-scheduler", never, {}, { "appointmentSave": "appointmentSave"; "appointmentsDelete": "appointmentsDelete"; }, never, never, true, [{ directive: typeof SchedulerDirective; inputs: { "appointments": "appointments"; "view": "view"; "focusedDate": "focusedDate"; "selectedAppointmentId": "selectedAppointmentId"; "locale": "locale"; "firstDayOfWeek": "firstDayOfWeek"; }; outputs: { "viewChange": "viewChange"; "focusedDateChange": "focusedDateChange"; "selectedAppointmentIdChange": "selectedAppointmentIdChange"; }; }, { directive: typeof SchedulerBadgeColorDotDirective; inputs: { "etSchedulerBadgeColorDot": "etSchedulerBadgeColorDot"; }; outputs: {}; }, { directive: typeof SchedulerBadgeTitleDirective; inputs: { "etSchedulerBadgeTitle": "etSchedulerBadgeTitle"; }; outputs: {}; }, { directive: typeof SchedulerBadgeTimeRangeDirective; inputs: { "etSchedulerBadgeTimeRange": "etSchedulerBadgeTimeRange"; }; outputs: {}; }, { directive: typeof SchedulerBadgeLocationDirective; inputs: { "etSchedulerBadgeLocation": "etSchedulerBadgeLocation"; }; outputs: {}; }, { directive: typeof SchedulerBadgeChainCountDirective; inputs: { "etSchedulerBadgeChainCount": "etSchedulerBadgeChainCount"; }; outputs: {}; }, { directive: typeof SchedulerActionAddAppointmentDirective; inputs: { "etSchedulerActionAddAppointment": "etSchedulerActionAddAppointment"; }; outputs: {}; }, { directive: typeof SchedulerSwipeNavigationDirective; inputs: { "etSchedulerSwipeNavigation": "etSchedulerSwipeNavigation"; }; outputs: {}; }]>;
18498
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SchedulerComponent, "et-scheduler", never, {}, { "appointmentSave": "appointmentSave"; "appointmentsDelete": "appointmentsDelete"; }, never, never, true, [{ directive: typeof SchedulerDirective; inputs: { "appointments": "appointments"; "view": "view"; "focusedDate": "focusedDate"; "selectedAppointmentId": "selectedAppointmentId"; "locale": "locale"; "firstDayOfWeek": "firstDayOfWeek"; "agendaDays": "agendaDays"; }; outputs: { "viewChange": "viewChange"; "focusedDateChange": "focusedDateChange"; "selectedAppointmentIdChange": "selectedAppointmentIdChange"; "appointmentReschedule": "appointmentReschedule"; }; }, { directive: typeof SchedulerBadgeColorDotDirective; inputs: { "etSchedulerBadgeColorDot": "etSchedulerBadgeColorDot"; }; outputs: {}; }, { directive: typeof SchedulerBadgeTitleDirective; inputs: { "etSchedulerBadgeTitle": "etSchedulerBadgeTitle"; }; outputs: {}; }, { directive: typeof SchedulerBadgeTimeRangeDirective; inputs: { "etSchedulerBadgeTimeRange": "etSchedulerBadgeTimeRange"; }; outputs: {}; }, { directive: typeof SchedulerBadgeLocationDirective; inputs: { "etSchedulerBadgeLocation": "etSchedulerBadgeLocation"; }; outputs: {}; }, { directive: typeof SchedulerBadgeChainCountDirective; inputs: { "etSchedulerBadgeChainCount": "etSchedulerBadgeChainCount"; }; outputs: {}; }, { directive: typeof SchedulerActionAddAppointmentDirective; inputs: { "etSchedulerActionAddAppointment": "etSchedulerActionAddAppointment"; }; outputs: {}; }, { directive: typeof SchedulerSwipeNavigationDirective; inputs: { "etSchedulerSwipeNavigation": "etSchedulerSwipeNavigation"; }; outputs: {}; }, { directive: typeof SchedulerAppointmentDragDirective; inputs: { "etSchedulerAppointmentDrag": "etSchedulerAppointmentDrag"; }; outputs: {}; }]>;
19826
18499
  }
19827
18500
 
19828
18501
  /** The default month grid: one day cell per day, appointments as one-line badges with a "+N more" overflow. */
@@ -19831,11 +18504,16 @@ declare class SchedulerMonthViewComponent {
19831
18504
  protected month: SchedulerMonthDirective;
19832
18505
  protected labels: _angular_core.Signal<_ethlete_components.SchedulerLabels>;
19833
18506
  private featureHost;
18507
+ private appointmentDrag;
19834
18508
  private destroyRef;
19835
18509
  private renderer;
19836
18510
  private weekRows;
19837
18511
  private cells;
19838
18512
  draftAnchor: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
18513
+ /** Whether the `etSchedulerAppointmentDrag` feature is present and on - see that directive. */
18514
+ protected canDragAppointments: _angular_core.Signal<boolean>;
18515
+ /** Whether the press now ending moved a badge, rather than being a click on it - see {@link select}. */
18516
+ private hasDragged;
19839
18517
  constructor();
19840
18518
  /** UI contributed by badge features (title, time range, …) - see `registerBadgeAdornment`. */
19841
18519
  protected badgeAdornments(): readonly _ethlete_components.SchedulerBadgeAdornment[];
@@ -19843,6 +18521,22 @@ declare class SchedulerMonthViewComponent {
19843
18521
  protected isSelected(appointment: Appointment): boolean;
19844
18522
  protected select(appointment: Appointment, element?: HTMLElement | null): void;
19845
18523
  protected isDrafted(date: Date): boolean;
18524
+ protected isDragging(appointment: Appointment): boolean;
18525
+ /**
18526
+ * The cells a dragged appointment would land on. Needed on top of the badge's own preview: a target
18527
+ * cell already at `maxVisiblePerCell` collapses the badge into its overflow menu, leaving the drag
18528
+ * with no feedback at all.
18529
+ */
18530
+ protected isDropTarget(date: Date): boolean;
18531
+ /**
18532
+ * Moves an appointment to another day cell, keeping its time of day and its duration - the month
18533
+ * works in whole days, so a badge has no edge to resize by. Touch arms on a long press, same as
18534
+ * drawing a range does; see `startSchedulerDragGesture`.
18535
+ */
18536
+ protected startAppointmentDrag(event: PointerEvent, target: {
18537
+ appointment: Appointment;
18538
+ weeks: HTMLElement;
18539
+ }): void;
19846
18540
  /**
19847
18541
  * Drags an all-day appointment's day span across the month grid. Whole days, so the range covers
19848
18542
  * every cell between the one pressed and the one under the pointer, in either direction.
@@ -19859,10 +18553,22 @@ declare class SchedulerMonthViewComponent {
19859
18553
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SchedulerMonthViewComponent, "et-scheduler-month-view", never, {}, {}, never, never, true, [{ directive: typeof SchedulerMonthDirective; inputs: {}; outputs: {}; }]>;
19860
18554
  }
19861
18555
 
19862
- type SchedulerDraftColumn = {
18556
+ type SchedulerTimeGridColumn = {
19863
18557
  element: HTMLElement;
19864
18558
  day: Date;
19865
18559
  };
18560
+ /** What a press on a block hands the drag: which appointment, which end of it, and from which day. */
18561
+ type SchedulerTimeGridDragTarget = {
18562
+ appointment: Appointment;
18563
+ mode: SchedulerAppointmentDragMode;
18564
+ column: SchedulerTimeGridColumn;
18565
+ };
18566
+ /** What a press on an all-day entry hands the drag: which appointment, which end of it, and the strip it sits on. */
18567
+ type SchedulerTimeGridAllDayDragTarget = {
18568
+ appointment: Appointment;
18569
+ mode: SchedulerAppointmentDragMode;
18570
+ lane: HTMLElement;
18571
+ };
19866
18572
  /**
19867
18573
  * The default time grid: an hour axis, an all-day strip, and appointments packed into
19868
18574
  * overlap-free columns. Backs both the week and day views - the day view is this same component
@@ -19872,12 +18578,18 @@ declare class SchedulerTimeGridViewComponent {
19872
18578
  protected scheduler: SchedulerDirective<any> | null;
19873
18579
  protected grid: SchedulerTimeGridDirective;
19874
18580
  private featureHost;
18581
+ private appointmentDrag;
19875
18582
  private destroyRef;
19876
18583
  private hostInjector;
19877
18584
  private renderer;
19878
18585
  protected timeGridBody: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
19879
18586
  private firstHourRow;
18587
+ private dayColumns;
19880
18588
  draftBlock: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
18589
+ /** Whether the `etSchedulerAppointmentDrag` feature is present and on - see that directive. */
18590
+ protected canDragAppointments: _angular_core.Signal<boolean>;
18591
+ /** Whether the press now ending moved a block, rather than being a click on it - see {@link select}. */
18592
+ private hasDragged;
19881
18593
  protected hours: _angular_core.Signal<{
19882
18594
  hour: number;
19883
18595
  label: string;
@@ -19887,23 +18599,52 @@ declare class SchedulerTimeGridViewComponent {
19887
18599
  protected badgeAdornments(): readonly _ethlete_components.SchedulerBadgeAdornment[];
19888
18600
  protected weekdayLabel(date: Date): string;
19889
18601
  protected isSelected(appointment: Appointment): boolean;
18602
+ protected isDragging(appointment: Appointment): boolean;
19890
18603
  protected select(appointment: Appointment, element: HTMLElement): void;
18604
+ /**
18605
+ * Moves a block to another time or day, or drags one of its edges to resize it - the block's own
18606
+ * press moves it, its two edge handles resize it. Touch arms on a long press, same as drawing a
18607
+ * range does; see `startSchedulerDragGesture`.
18608
+ */
18609
+ protected startAppointmentDrag(event: PointerEvent, target: SchedulerTimeGridDragTarget): void;
18610
+ /**
18611
+ * Moves an all-day entry to other days, or drags one of its inline edges to change which days it
18612
+ * spans - the strip works in whole days, so both gestures are horizontal and a move keeps the
18613
+ * appointment's own times of day. Touch arms on a long press, same as a timed block does.
18614
+ */
18615
+ protected startAllDayDrag(event: PointerEvent, target: SchedulerTimeGridAllDayDragTarget): void;
19891
18616
  /**
19892
18617
  * Drags a new appointment's time range out of an empty part of a day column. With a mouse the
19893
18618
  * gesture's own commit threshold separates a drag from a click, so a click on empty grid drafts
19894
18619
  * an hour instead of a drawn range; a finger has to long-press first - see
19895
18620
  * `startSchedulerDraftGesture`.
19896
18621
  */
19897
- protected startDraftRange(event: PointerEvent, column: SchedulerDraftColumn): void;
18622
+ protected startDraftRange(event: PointerEvent, column: SchedulerTimeGridColumn): void;
18623
+ /** The appointment shifted by whole day columns across, and by however far the pointer fell down. */
18624
+ private movedRange;
18625
+ /** One edge dragged to the pointer, stopping a slot short of the other so the block keeps a size. */
18626
+ private resizedRange;
18627
+ /**
18628
+ * The all-day entry shifted to `to`, or one of its ends dragged there - whole days either way,
18629
+ * applied as a day offset so whatever times of day the appointment carries survive the drag. An
18630
+ * end stops on the other end's day rather than crossing it, leaving a one-day entry.
18631
+ */
18632
+ private allDayRange;
18633
+ /** The day column a pointer is over, or `null` past the grid's last column on either side. */
18634
+ private columnAt;
19898
18635
  /** A click on empty grid: an hour starting where it landed, snapped like a drawn range is. */
19899
18636
  private draftHourAt;
19900
- /** The time a pointer at `clientY` sits at in `column`, snapped to the draft's slot size. */
18637
+ /** The time a pointer at `clientY` sits at in `column`, snapped to the grid's slot size. */
19901
18638
  private draftTimeAt;
18639
+ /** How far into its day a pointer at `clientY` sits, in minutes, within a day column. */
18640
+ private minutesAt;
18641
+ /** `at` on the nearest slot boundary, so every range lands on the same grid the hour rows draw. */
18642
+ private snapToSlot;
19902
18643
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SchedulerTimeGridViewComponent, never>;
19903
18644
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SchedulerTimeGridViewComponent, "et-scheduler-time-grid-view", never, {}, {}, never, never, true, [{ directive: typeof SchedulerTimeGridDirective; inputs: {}; outputs: {}; }]>;
19904
18645
  }
19905
18646
 
19906
- declare const SCHEDULER_IMPORTS: readonly [typeof SchedulerDirective, typeof SchedulerAgendaDirective, typeof SchedulerMonthDirective, typeof SchedulerTimeGridDirective, typeof SchedulerEditSurfaceDirective, typeof SchedulerComponent, typeof SchedulerAgendaViewComponent, typeof SchedulerMonthViewComponent, typeof SchedulerTimeGridViewComponent, typeof SchedulerBadgeColorDotDirective, typeof SchedulerBadgeTitleDirective, typeof SchedulerBadgeTimeRangeDirective, typeof SchedulerBadgeLocationDirective, typeof SchedulerBadgeChainCountDirective, typeof SchedulerEditSurfaceComponent, typeof SchedulerEditTitleDirective, typeof SchedulerEditTimeRangeDirective, typeof SchedulerEditLocationDirective, typeof SchedulerEditDescriptionDirective, typeof SchedulerEditColorDirective, typeof SchedulerActionAddSubAppointmentDirective, typeof SchedulerActionDeleteDirective, typeof SchedulerActionAddAppointmentDirective, typeof SchedulerSwipeNavigationDirective];
18647
+ declare const SCHEDULER_IMPORTS: readonly [typeof SchedulerDirective, typeof SchedulerAgendaDirective, typeof SchedulerMonthDirective, typeof SchedulerTimeGridDirective, typeof SchedulerEditSurfaceDirective, typeof SchedulerComponent, typeof SchedulerAgendaViewComponent, typeof SchedulerMonthViewComponent, typeof SchedulerTimeGridViewComponent, typeof SchedulerBadgeColorDotDirective, typeof SchedulerBadgeTitleDirective, typeof SchedulerBadgeTimeRangeDirective, typeof SchedulerBadgeLocationDirective, typeof SchedulerBadgeChainCountDirective, typeof SchedulerEditSurfaceComponent, typeof SchedulerEditTitleDirective, typeof SchedulerEditTimeRangeDirective, typeof SchedulerEditLocationDirective, typeof SchedulerEditDescriptionDirective, typeof SchedulerEditColorDirective, typeof SchedulerActionAddSubAppointmentDirective, typeof SchedulerActionDeleteDirective, typeof SchedulerActionAddAppointmentDirective, typeof SchedulerSwipeNavigationDirective, typeof SchedulerAppointmentDragDirective];
19907
18648
 
19908
18649
  /**
19909
18650
  * The sub-appointment chain piece of an appointment badge, stamped by `etSchedulerBadgeChainCount`.
@@ -19971,17 +18712,22 @@ declare class SchedulerBadgeTitleComponent {
19971
18712
  }
19972
18713
 
19973
18714
  /**
19974
- * The color piece of the edit surface, stamped by `etSchedulerEditColor`. A plain text field for
19975
- * `colorToken` rather than a swatch picker - theme names are app-registered (see `theming`), so
19976
- * the SDK has no fixed set of tokens to offer as choices.
18715
+ * The color piece of the edit surface, stamped by `etSchedulerEditColor`. A swatch picker over the
18716
+ * app's `provideColorPalette` palette, or - with no palette in scope - a plain text field for
18717
+ * `colorToken`, since theme names are app-registered (see `theming`) and the SDK has no set of its
18718
+ * own to offer as choices.
19977
18719
  *
19978
18720
  * @internal
19979
18721
  */
19980
18722
  declare class SchedulerEditColorComponent {
19981
18723
  private labels;
18724
+ protected palette: _ethlete_core.ColorPaletteEntry[] | null;
19982
18725
  draft: _angular_core.InputSignal<WritableSignal<Appointment>>;
19983
18726
  label: _angular_core.Signal<string>;
19984
- protected value: _angular_core.Signal<string>;
18727
+ protected noneLabel: _angular_core.Signal<string>;
18728
+ protected textValue: _angular_core.Signal<string>;
18729
+ protected selectedToken: _angular_core.Signal<string | null>;
18730
+ protected selectColorToken(value: unknown): void;
19985
18731
  protected updateColorToken(value: string): void;
19986
18732
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SchedulerEditColorComponent, never>;
19987
18733
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SchedulerEditColorComponent, "et-scheduler-edit-color", never, { "draft": { "alias": "draft"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
@@ -21627,9 +20373,11 @@ type StreamConfig = {
21627
20373
  * Supply a custom component that provides `PIP_CHROME_REF_TOKEN` to fully
21628
20374
  * replace the built-in pip chrome UI.
21629
20375
  *
21630
- * @default `StreamPipChromeComponent`
20376
+ * `null` uses the built-in `StreamPipChromeComponent`.
20377
+ *
20378
+ * @default null
21631
20379
  */
21632
- pipChromeComponent: Type<unknown>;
20380
+ pipChromeComponent: Type<unknown> | null;
21633
20381
  /**
21634
20382
  * Sizing and layout defaults for the floating pip window.
21635
20383
  * Override individual values by spreading `DEFAULT_PIP_WINDOW_CONFIG`:
@@ -21664,7 +20412,7 @@ declare const createStreamConfig: (valueOverride?: Partial<StreamConfig>) => {
21664
20412
  pipSlotPlaceholderComponent: Type<unknown> | null;
21665
20413
  loadingComponent: Type<unknown>;
21666
20414
  errorComponent: Type<unknown>;
21667
- pipChromeComponent: Type<unknown>;
20415
+ pipChromeComponent: Type<unknown> | null;
21668
20416
  };
21669
20417
  declare const provideStreamConfig: (valueOverride?: Partial<StreamConfig>) => _angular_core.Provider[];
21670
20418
 
@@ -25203,6 +23951,7 @@ type TabSize = (typeof TAB_SIZES)[keyof typeof TAB_SIZES];
25203
23951
  declare class NavTabsComponent {
25204
23952
  protected tabBar: TabBarDirective;
25205
23953
  size: _angular_core.InputSignal<TabSize>;
23954
+ constructor();
25206
23955
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavTabsComponent, never>;
25207
23956
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavTabsComponent, "et-nav-tabs", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: { "etProvideSurface": "surface"; }; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: { "etProvideColor": "color"; }; outputs: {}; }, { directive: typeof TabBarDirective; inputs: { "orientation": "orientation"; "fit": "fit"; "divider": "divider"; "variant": "variant"; }; outputs: {}; }, { directive: typeof NavTabsDirective; inputs: {}; outputs: {}; }]>;
25208
23957
  }
@@ -26087,7 +24836,7 @@ declare const TREE_ERROR_CODES: {
26087
24836
  declare const TREE_IMPORTS: readonly [typeof TreeComponent, typeof TreeDirective, typeof TreeNodeDirective, typeof TreeNodeDefDirective];
26088
24837
 
26089
24838
  /** The version of `@ethlete/components` this build was cut from. */
26090
- declare const COMPONENTS_VERSION = "1.0.0-next.43";
24839
+ declare const COMPONENTS_VERSION = "1.0.0-next.46";
26091
24840
 
26092
- export { ACCORDION_ERROR_CODES, ACCORDION_GROUP_TOKEN, ACCORDION_IMPORTS, ACCORDION_TOKEN, ALIGN_CENTER_ICON, ALIGN_JUSTIFY_ICON, ALIGN_LEFT_ICON, ALIGN_RIGHT_ICON, ARROWS_LEFT_RIGHT_ICON, ARROW_OUT_UP_RIGHT_ICON, ARROW_RIGHT_ICON, ARROW_UP_ICON, AVATAR_IMPORTS, AVATAR_SHAPES, AVATAR_SIZES, AccordionComponent, AccordionContentDirective, AccordionDirective, AccordionGroupComponent, AccordionGroupDirective, AccordionHintDirective, AccordionLabelDirective, AccordionPanelDirective, AccordionTriggerDirective, AvatarComponent, AvatarGroupComponent, BADGE_ICON_ALIGNMENTS, BADGE_IMPORTS, BADGE_SIZES, BADGE_VARIANTS, BANNER_IMPORTS, BANNER_LABELS, BANNER_TYPES, BOLD_ICON, BRACKET_CARD_CONTEXT, BRACKET_DATA_LAYOUT, BRACKET_DEFAULTS, BRACKET_DENSITY, BRACKET_DENSITY_PRESETS, BRACKET_ERROR_CODES, BRACKET_IMPORTS, BRACKET_LABELS, BRACKET_ROUND_MIRROR_TYPE, BRACKET_SWISS_GROUP_COLOR_TYPE, BREADCRUMB_COLLAPSE_IMPORTS, BREADCRUMB_COLLAPSE_TOKEN, BREADCRUMB_ERROR_CODES, BREADCRUMB_IMPORTS, BREADCRUMB_LABELS, BREADCRUMB_SEGMENT_TOKEN, BREADCRUMB_SEO_IMPORTS, BREADCRUMB_TOKEN, BUTTON_ICON_ALIGNMENTS, BUTTON_IMPORTS, BUTTON_SIZES, BUTTON_SPINNER_CONFIG, BUTTON_TYPES, BUTTON_VARIANTS, BadgeComponent, BannerComponent, BracketComponent, BracketDefaultContinueComponent, BracketDefaultFinalMatchComponent, BracketDefaultMatchComponent, BracketDefaultRoundHeaderComponent, BracketMap, BracketRoundsListComponent, BrandLoaderComponent, BreadcrumbCollapseDirective, BreadcrumbComponent, BreadcrumbDirective, BreadcrumbItemDirective, BreadcrumbItemTemplateDirective, BreadcrumbOutletComponent, BreadcrumbOverflowComponent, BreadcrumbSegmentDirective, BreadcrumbSeoDirective, BreadcrumbSeparatorDirective, ButtonComponent, ButtonDirective, ButtonStylesDirective, CALENDAR_ERROR_CODES, CALENDAR_ICON, CALENDAR_IMPORTS, CALENDAR_LABELS, CARD_IMPORTS, CARD_VARIANTS, CAROUSEL_AUTOPLAY_TOKEN, CAROUSEL_ERROR_CODES, CAROUSEL_IMPORTS, CAROUSEL_LABELS, CAROUSEL_SLIDE_ALIGNMENTS, CAROUSEL_TOKEN, CAROUSEL_TRANSITIONS, CAROUSEL_TRANSITION_DRIVERS, CASCADER_ERROR_CODES, CASCADER_IMPORTS, CASCADER_LABELS, CASCADER_SELECTABLE_LEVELS, CHECKBOX_GROUP_IMPORTS, CHECKBOX_IMPORTS, CHECKBOX_OPTION_VARIANTS, CHECK_ICON, CHEVRON_ICON, CHIP_ERROR_CODES, CHIP_IMPORTS, CHIP_LABELS, CHOICE_FIELD_IMPORTS, CHOICE_FIELD_VARIANTS, CIRCLE_CHECK_ICON, CIRCLE_INFO_ICON, CLIPBOARD_CHECK_ICON, CLOCK_ICON, CODE_BLOCK_ICON, CODE_ICON, COLOR_INPUT_IMPORTS, COMMON_BRACKET_ROUND_TYPE, COMPONENTS_VERSION, COPY_BUTTON_IMPORTS, CalendarCellDirective, CalendarComponent, CalendarDirective, CalendarGridDirective, CalendarHeaderDirective, CardComponent, CarouselAutoplayDirective, CarouselComponent, CarouselDirective, CarouselItemDirective, CarouselNextDirective, CarouselPlayToggleDirective, CarouselPreviousDirective, CarouselSlideDirective, CascaderColumnDirective, CascaderComponent, CascaderDirective, CascaderNodeDirective, CascaderPanelComponent, CascaderSearchDirective, CascaderSearchOptionDirective, CascaderSurfaceDirective, CascaderTriggerDirective, CheckboxComponent, CheckboxDirective, CheckboxGroupComponent, CheckboxGroupSelectAllComponent, CheckboxOptionComponent, ChipComponent, ChipDirective, ChipRemoveDirective, ChoiceFieldComponent, ColorInputComponent, ColorInputDirective, ControlSuffixDirective, CopyButtonDirective, CounterComponent, DAILYMOTION_PLAYER_TOKEN, DATE_FORMAT, DATE_INPUT_ERROR_CODES, DATE_INPUT_IMPORTS, DATE_LOCALE, DATE_PICKER_HOST, DATE_RANGE_INPUT_ERROR_CODES, DATE_RANGE_INPUT_IMPORTS, DATE_TIME_INPUT_ERROR_CODES, DATE_TIME_INPUT_IMPORTS, DATE_TIME_LABELS, DEFAULT_BANNER_LABELS, DEFAULT_BRACKET_LABELS, DEFAULT_BREADCRUMB_LABELS, DEFAULT_BREAKPOINTS, DEFAULT_CALENDAR_LABELS, DEFAULT_CALENDAR_RANGE_STRATEGY, DEFAULT_CAROUSEL_LABELS, DEFAULT_CASCADER_LABELS, DEFAULT_CHIP_LABELS, DEFAULT_DATE_TIME_LABELS, DEFAULT_DROPZONE_LABELS, DEFAULT_FILTER_OVERLAY_LABELS, DEFAULT_FORM_FIELD_LABELS, DEFAULT_GRID_LABELS, DEFAULT_ICON_VARIANT, DEFAULT_INPUT_LABELS, DEFAULT_LOADER_LABELS, DEFAULT_MATCH_CARD_START_TIME_FORMAT, DEFAULT_MATCH_LABELS, DEFAULT_NOTIFICATION_LABELS, DEFAULT_NOTIFICATION_MANAGER_CONFIG, DEFAULT_NOTIFICATION_STATUS_ICONS, DEFAULT_PAGINATION_LABELS, DEFAULT_PHONE_INPUT_LABELS, DEFAULT_PIP_WINDOW_CONFIG, DEFAULT_QUERY_ERROR_LABELS, DEFAULT_RICH_TEXT_EDITOR_LABELS, DEFAULT_RICH_TEXT_EDITOR_TOOLS, DEFAULT_SCHEDULER_LABELS, DEFAULT_SELECT_LABELS, DEFAULT_SLIDER_LABELS, DEFAULT_STANDINGS_LABELS, DEFAULT_STREAM_LABELS, DEFAULT_STREAM_PLAYER_STATE, DEFAULT_TABLE_LABELS, DEFAULT_TIME_PICKER_LABELS, DESCRIPTION_IMPORTS, DESCRIPTION_LIST_IMPORTS, DIVIDER_IMPORTS, DOUBLE_ELIMINATION_BRACKET_ROUND_TYPE, DROPZONE_ENTRY_STATUSES, DROPZONE_ERROR_CODES, DROPZONE_FILES_ERROR_KIND, DROPZONE_FILE_CONSTRAINTS, DROPZONE_FILE_REJECTION_REASONS, DROPZONE_IMPORTS, DROPZONE_LABELS, DURATION_INPUT_ERROR_CODES, DURATION_INPUT_IMPORTS, DailymotionPlayerComponent, DailymotionPlayerDirective, DailymotionPlayerParamsDirective, DailymotionPlayerSlotComponent, DateInputComponent, DateInputDirective, DateInputFieldDirective, DatePickerPanelComponent, DatePickerSurfaceDirective, DatePickerTriggerDirective, DateRangeInputComponent, DateRangeInputDirective, DateRangeInputFieldDirective, DateTimeInputComponent, DateTimeInputDirective, DateTimeInputFieldDirective, DescriptionComponent, DescriptionListComponent, DividerComponent, DropzoneComponent, DropzoneDirective, DurationInputComponent, DurationInputDirective, DurationInputFieldDirective, ELLIPSIS_ICON, ELLIPSIS_VERTICAL_ICON, EMPTY_STATE_IMPORTS, ET_BUILT_IN_ICON_NAMES, EYE_ICON, EYE_SLASH_ICON, EmptyStateComponent, FACEBOOK_PLAYER_TOKEN, FILE_ICON, FILTER_ICON, FILTER_OVERLAY_ERROR_CODES, FILTER_OVERLAY_IMPORTS, FILTER_OVERLAY_LABELS, FILTER_OVERLAY_TOKEN, FLOATING_ACTION_ERROR_CODES, FLOATING_ACTION_IMPORTS, FLOATING_ACTION_STATES, FLOATING_ACTION_TOKEN, FLOPPY_DISK_ICON, FOCUS_FRAME_ICON, FORM_ERROR_MESSAGE_RESOLVER, FORM_FIELD_APPEARANCES, FORM_FIELD_CONTROL_TYPES, FORM_FIELD_ERROR_CODES, FORM_FIELD_FILLS, FORM_FIELD_IMPORTS, FORM_FIELD_LABELS, FORM_FIELD_LABEL_MODES, FORM_FIELD_SIZES, FORM_FIELD_TOKEN, FabComponent, FacebookPlayerComponent, FacebookPlayerDirective, FacebookPlayerParamsDirective, FacebookPlayerSlotComponent, FilterOverlayResetDirective, FilterOverlaySubmitDirective, FloatingActionAnchorDirective, FloatingActionDirective, FloatingActionScopeDirective, FloatingActionTopDirective, FloatingActionTriggerDirective, FocusRingDirective, FormErrorComponent, FormFieldBarrierDirective, FormFieldComponent, FormFieldDirective, GERMAN_FILTER_OVERLAY_LABELS, GERMAN_QUERY_ERROR_LABELS, GRID_2X2_ICON, GRID_DEBUG_IMPORTS, GRID_ERROR_CODES, GRID_IMPORTS, GRID_LABELS, GRID_TOKEN, GROUP_BRACKET_ROUND_TYPE, GridComponent, GridDebugComponent, GridDirective, GridDragDirective, GridItemComponent, GridItemDefaultActionsComponent, GridItemDirective, GridItemRef, GridItemToolbarComponent, GridResizeDirective, HEADING_1_ICON, HEADING_2_ICON, HEADING_3_ICON, HintComponent, ICONS_TOKEN, ICON_DIRECTIVE_TOKEN, ICON_ERROR_CODES, ICON_IMPORTS, ICON_OVERRIDES_TOKEN, IMAGE_ICON, INITIAL_SUPPORT_PRESENTATION_STATE, INPUT_IMPORTS, INPUT_LABELS, INPUT_MASK_HOST, INPUT_TEXT_ALIGNMENTS, INPUT_TYPES, INTERACTIVE_TAGS, ITALIC_ICON, IconButtonComponent, IconDirective, InputComponent, InputDirective, InputMaskDirective, InputPrefixDirective, InputSuffixDirective, KBD_IMPORTS, KBD_PLATFORM, KICK_PLAYER_TOKEN, KbdComponent, KickPlayerComponent, KickPlayerDirective, KickPlayerParamsDirective, KickPlayerSlotComponent, LINK_ICON, LIST_BULLETED_ICON, LIST_NUMBERED_ICON, LOADER_LABELS, LOCATION_ICON, LOCK_ICON, LabelDirective, MASKED_INPUT_ERROR_CODES, MASKED_INPUT_IMPORTS, MASK_VALUE_MODES, MASONRY_ERROR_CODES, MASONRY_IMPORTS, MASONRY_TOKEN, MATCH_CARD_IMPORTS, MATCH_CARD_SIZES, MATCH_CARD_TOKEN, MATCH_ERROR_CODES, MATCH_LABELS, MATCH_PARTICIPANT_IMPORTS, MENU_ERROR_CODES, MENU_IMPORTS, MENU_ITEM_VARIANTS, MENU_SELECTION_GROUP_MULTIPLE, MENU_SELECTION_GROUP_TOKEN, MENU_SELECTION_ITEM_KIND, MINUS_ICON, MULTI_LANGUAGE_RICH_TEXT_EDITOR_ERROR_CODES, MULTI_LANGUAGE_RICH_TEXT_EDITOR_IMPORTS, MasonryDirective, MasonryItemDirective, MatchCardComponent, MatchCardDirective, MatchCardGameScoresDirective, MatchCardMetaDirective, MatchCardScoreDirective, MatchParticipantComponent, MatchScoreComponent, MenuCheckboxGroupComponent, MenuCheckboxItemComponent, MenuComponent, MenuContextTriggerDirective, MenuDirective, MenuGroupLabelComponent, MenuItemComponent, MenuItemDirective, MenuItemShortcutComponent, MenuPanelDirective, MenuRadioGroupComponent, MenuRadioItemComponent, MenuSearchDirective, MenuSelectionGroupDirective, MenuSelectionItemDirective, MenuSeparatorComponent, MenuSurfaceDirective, MenuTriggerDirective, MultiLanguageRichTextEditorComponent, MultiLanguageRichTextEditorDirective, MultiLanguageRichTextEditorLanguageToolComponent, NAV_TABS_TOKEN, NAV_TAB_IMPORTS, NOTIFICATION_ACTION_SLOTS, NOTIFICATION_ERROR_CODES, NOTIFICATION_IMPORTS, NOTIFICATION_LABELS, NOTIFICATION_STACK_CONTEXT_TOKEN, NOTIFICATION_STATUS, NUMBER_INPUT_IMPORTS, NavTabLinkComponent, NavTabLinkDirective, NavTabsComponent, NavTabsDirective, NavTabsOutletComponent, NavTabsOutletDirective, NotificationActionDirective, NotificationComponent, NotificationDirective, NotificationDismissDirective, NotificationItemDirective, NotificationStackDirective, NotificationSwipeToDismissDirective, NumberInputComponent, NumberInputDirective, OTP_INPUT_IMPORTS, OVERLAY_BACK_OR_CLOSE_TOKEN, OVERLAY_BODY_TOKEN, OVERLAY_CONFIG_CLASS_KEYS, OVERLAY_CONTENT_IMPORTS, OVERLAY_ERROR_CODES, OVERLAY_FOOTER_TOKEN, OVERLAY_HEADER_TEMPLATE_TOKEN, OVERLAY_HEADER_TOKEN, OVERLAY_IMPORTS, OVERLAY_MAIN_TOKEN, OVERLAY_QUERY_PARAM_INPUT_NAME, OVERLAY_REF, OVERLAY_ROUTER_CONFIG_TOKEN, OVERLAY_ROUTER_LINK_TOKEN, OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN, OVERLAY_ROUTER_OUTLET_TOKEN, OVERLAY_ROUTER_TOKEN, OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN, OtpInputComponent, OtpInputDirective, OverlayAnchorDirective, OverlayBackOrCloseDirective, OverlayBodyComponent, OverlayCloseDirective, OverlayContainerComponent, OverlayDirective, OverlayFooterDirective, OverlayHeaderDirective, OverlayHeaderTemplateDirective, OverlayMainDirective, OverlayOriginCloneComponent, OverlayRouteHeaderTemplateOutletComponent, OverlayRouterLinkDirective, OverlayRouterOutletComponent, OverlayRouterOutletDisabledTemplateDirective, OverlaySharedRouteTemplateDirective, OverlaySharedRouteTemplateOutletComponent, OverlaySidebarComponent, OverlaySidebarPageComponent, OverlaySurfaceDirective, OverlayTitleDirective, OverlayTriggerDirective, PAGE_SIZE_SELECT_IMPORTS, PAGINATION_IMPORTS, PAGINATION_LABELS, PARAGRAPH_ICON, PASSWORD_INPUT_IMPORTS, PAUSE_ICON, PENCIL_ICON, PHONE_COUNTRIES, PHONE_INPUT_ERROR_CODES, PHONE_INPUT_IMPORTS, PHONE_INPUT_LABELS, PICTURE_IMPORTS, PICTURE_STATES, PIP_CHROME_REF_TOKEN, PIP_ENTRY_TOKEN, PIP_WINDOW_ASPECT_RATIO_TOKEN, PLAY_ICON, PLUS_ICON, PROGRESS_STEPS_IMPORTS, PROGRESS_STEP_STATES, PageSizeSelectComponent, PaginationComponent, PaginationDirective, PaginationSeoDirective, PasswordInputComponent, PasswordInputDirective, PhoneInputComponent, PhoneInputDirective, PhoneInputFieldDirective, PhoneInputFlagDirective, PictureComponent, PictureErrorDirective, PicturePlaceholderDirective, PipBackDirective, PipBringBackDirective, PipCellDirective, PipCloseDirective, PipCollapseOverlayDirective, PipGridToggleDirective, PipPlayerComponent, PipSlotPlaceholderComponent, PipStageDirective, PipTitleBarDirective, PipTitleBarTemplateDirective, PipWindowComponent, PipWindowParamsDirective, ProgressBarComponent, ProgressStepComponent, ProgressStepsComponent, QUERY_ERROR_ERROR_CODES, QUERY_ERROR_IMPORTS, QUERY_ERROR_LABELS, QUERY_ERROR_TOKEN, QUOTE_ICON, QueryDevtoolsAboutComponent, QueryDevtoolsComponent, QueryDevtoolsJsonComponent, QueryDevtoolsJsonStylesComponent, QueryDevtoolsSettingsComponent, QueryDevtoolsTimelineStylesComponent, QueryDevtoolsToggleComponent, QueryErrorActionsDirective, QueryErrorComponent, QueryErrorDirective, QueryErrorTitleDirective, QueryParamOverlayLinkDirective, RADIO_GROUP_IMPORTS, RADIO_VARIANTS, RATING_IMPORTS, REDO_ICON, RICH_TEXT_EDITOR_FLOATING_TOOLBAR, RICH_TEXT_EDITOR_HEADING_OPTIONS, RICH_TEXT_EDITOR_IMPORTS, RICH_TEXT_EDITOR_INLINE_TOOLS, RICH_TEXT_EDITOR_LABELS, RICH_TEXT_EDITOR_LANGUAGE_TOOL, RICH_TEXT_EDITOR_LINK_EDITOR, RICH_TEXT_EDITOR_TOKEN_CODEC, RICH_TEXT_EDITOR_TOKEN_PALETTE_IMPORTS, RICH_TEXT_EDITOR_TOOL, RICH_TEXT_EDITOR_TOOLS, RICH_TEXT_EDITOR_TOOL_BUTTONS, RICH_TEXT_EDITOR_TRIGGERS_IMPORTS, ROTATE_RIGHT_ICON, RadioComponent, RadioGroupComponent, RangeSliderComponent, RangeSliderDirective, RatingComponent, RatingDirective, RatingIconDirective, RichTextEditorAlignToolComponent, RichTextEditorComponent, RichTextEditorDirective, RichTextEditorFloatingToolbarComponent, RichTextEditorFloatingToolbarDirective, RichTextEditorHeadingToolComponent, RichTextEditorImageEditorComponent, RichTextEditorImageStylesComponent, RichTextEditorImageToolComponent, RichTextEditorLinkEditorComponent, RichTextEditorLinkEditorDirective, RichTextEditorTableStylesComponent, RichTextEditorTableToolComponent, RichTextEditorTokenPaletteComponent, RichTextEditorTokenPopupComponent, RichTextEditorTriggersDirective, SCHEDULER_ADD_SURFACE_OVERLAY, SCHEDULER_EDIT_SURFACE_HOST, SCHEDULER_EDIT_SURFACE_OVERLAY, SCHEDULER_ERROR_CODES, SCHEDULER_FEATURE_HOST, SCHEDULER_IMPORTS, SCHEDULER_LABELS, SCROLLABLE_DARKEN_IMPORTS, SCROLLABLE_DRAG_IMPORTS, SCROLLABLE_ERROR_CODES, SCROLLABLE_IMPORTS, SCROLLABLE_NAVIGATION_IMPORTS, SEGMENTED_BUTTON_GROUP_VARIANTS, SEGMENTED_BUTTON_IMPORTS, SELECTION_LIST_IMPORTS, SELECTION_LIST_MULTIPLE, SELECTION_LIST_TOKEN, SELECT_ERROR_CODES, SELECT_FILTER_MODES, SELECT_IMPORTS, SELECT_LABELS, SIDEBAR_OVERLAY_CONFIG, SIDEBAR_OVERLAY_TOKEN, SINGLE_ELIMINATION_BRACKET_ROUND_TYPE, SKELETON_IMPORTS, SLIDER_ERROR_CODES, SLIDER_IMPORTS, SLIDER_LABELS, SLIDER_MARK_VALUE_ATTRIBUTE, SLIDER_TOKEN, SNAP_HYSTERESIS, SOOP_PLAYER_TOKEN, SPLIT_BUTTON_ERROR_CODES, STANDINGS_ERROR_CODES, STANDINGS_IMPORTS, STANDINGS_LABELS, STAR_ICON, STREAM_ALL_IMPORTS, STREAM_CONSENT_TOKEN, STREAM_DAILYMOTION_IMPORTS, STREAM_FACEBOOK_IMPORTS, STREAM_IMPORTS, STREAM_KICK_IMPORTS, STREAM_LABELS, STREAM_PIP_IMPORTS, STREAM_PLAYER_COMPONENT_TOKEN, STREAM_PLAYER_ERROR_CONTEXT_TOKEN, STREAM_PLAYER_ERROR_TOKEN, STREAM_PLAYER_PARAMS_TOKEN, STREAM_PLAYER_SLOT_TOKEN, STREAM_PLAYER_TOKEN, STREAM_SLOT_PLAYER_ID_TOKEN, STREAM_SOOP_IMPORTS, STREAM_TIKTOK_IMPORTS, STREAM_TWITCH_IMPORTS, STREAM_USER_CONSENT_PROVIDER_TOKEN, STREAM_VIMEO_IMPORTS, STREAM_YOUTUBE_IMPORTS, STRIKETHROUGH_ICON, SUPPORT_CONTENT_STATE, SUPPORT_TRANSITION_DIRECTION, SWISS_BRACKET_ROUND_TYPE, SWITCH_IMPORTS, SchedulerActionAddAppointmentDirective, SchedulerActionAddSubAppointmentDirective, SchedulerActionDeleteDirective, SchedulerAgendaDirective, SchedulerAgendaViewComponent, SchedulerBadgeChainCountComponent, SchedulerBadgeChainCountDirective, SchedulerBadgeColorDotComponent, SchedulerBadgeColorDotDirective, SchedulerBadgeLocationComponent, SchedulerBadgeLocationDirective, SchedulerBadgeTimeRangeComponent, SchedulerBadgeTimeRangeDirective, SchedulerBadgeTitleComponent, SchedulerBadgeTitleDirective, SchedulerComponent, SchedulerDirective, SchedulerEditColorComponent, SchedulerEditColorDirective, SchedulerEditDescriptionComponent, SchedulerEditDescriptionDirective, SchedulerEditLocationComponent, SchedulerEditLocationDirective, SchedulerEditSurfaceComponent, SchedulerEditSurfaceDirective, SchedulerEditTimeRangeComponent, SchedulerEditTimeRangeDirective, SchedulerEditTitleComponent, SchedulerEditTitleDirective, SchedulerMonthDirective, SchedulerMonthViewComponent, SchedulerSwipeNavigationDirective, SchedulerTimeGridDirective, SchedulerTimeGridViewComponent, ScrollableActiveChildDirective, ScrollableButtonsComponent, ScrollableButtonsDirective, ScrollableComponent, ScrollableDarkenDirective, ScrollableDirective, ScrollableDragDirective, ScrollableIgnoreChildDirective, ScrollableLoadingTemplateDirective, ScrollableMasksComponent, ScrollableNavigationComponent, ScrollableNavigationDirective, ScrollableSnapDirective, SegmentedButtonComponent, SegmentedButtonGroupComponent, SelectComponent, SelectDirective, SelectEmptyDirective, SelectErrorDirective, SelectListboxDirective, SelectLoadingDirective, SelectOptionComponent, SelectOptionDirective, SelectOptionGroupComponent, SelectOptionGroupDirective, SelectOptionTemplateDirective, SelectOptionsDirective, SelectPanelComponent, SelectSearchDirective, SelectSurfaceDirective, SelectTriggerDirective, SelectValueDirective, SelectViewportDirective, SelectVirtualOptionComponent, SelectVirtualOptionDirective, SelectionListControlDirective, SelectionListDirective, SelectionOptionDirective, SkeletonComponent, SkeletonItemComponent, SkeletonTextComponent, SliderComponent, SliderDirective, SliderThumbDirective, SliderThumbLabelDirective, SliderTrackDirective, SoopPlayerComponent, SoopPlayerDirective, SoopPlayerParamsDirective, SoopPlayerSlotComponent, SpinnerComponent, SplitButtonActionDirective, SplitButtonComponent, SplitButtonDirective, SplitButtonTriggerDirective, StandingsComponent, StandingsDirective, StreamConsentAcceptDirective, StreamConsentComponent, StreamConsentDirective, StreamPipChromeComponent, StreamPlayerErrorComponent, StreamPlayerErrorDirective, StreamPlayerLoadingComponent, StreamPlayerSlotDirective, SwitchComponent, SwitchDirective, TABLE_CELL_ERROR_TOOLTIP_IMPORTS, TABLE_COLUMN_CHOOSER_IMPORTS, TABLE_COLUMN_MENU_IMPORTS, TABLE_CSV_EXPORT_IMPORTS, TABLE_ERROR_CODES, TABLE_FEATURE_HOST, TABLE_FILTER_IMPORTS, TABLE_GROUP_HEADERS_IMPORTS, TABLE_ICON, TABLE_IMPORTS, TABLE_INLINE_EDIT_IMPORTS, TABLE_KEYBOARD_NAV_IMPORTS, TABLE_LABELS, TABLE_REORDER_IMPORTS, TABLE_RESIZE_IMPORTS, TABLE_ROW_EXPANSION_IMPORTS, TABLE_SELECTION_IMPORTS, TABLE_SKELETON_IMPORTS, TABLE_STATE_PERSISTENCE_IMPORTS, TABLE_STICKY_COLUMNS_IMPORTS, TABLE_VIRTUAL_SCROLL_IMPORTS, TAB_BAR_FITS, TAB_BAR_ORIENTATIONS, TAB_BAR_TOKEN, TAB_BAR_TRIGGER_TOKEN, TAB_BAR_VARIANTS, TAB_ERROR_CODES, TAB_GROUP_TOKEN, TAB_IMPORTS, TAB_PANEL_TOKEN, TAB_SIZES, TAG_INPUT_ERROR_CODES, TAG_INPUT_IMPORTS, TEXTAREA_IMPORTS, TEXTAREA_RESIZE_MODES, TEXT_ALIGNS, TIKTOK_PLAYER_TOKEN, TIMELINE_IMPORTS, TIMES_ICON, TIME_FORMAT, TIME_INPUT_ERROR_CODES, TIME_INPUT_IMPORTS, TIME_PICKER_ERROR_CODES, TIME_PICKER_IMPORTS, TIME_PICKER_LABELS, TOGGLETIP_ERROR_CODES, TOGGLETIP_IMPORTS, TOOLBAR_IMPORTS, TOOLBAR_ORIENTATIONS, TOOLTIP_ERROR_CODES, TOOLTIP_IMPORTS, TOURNAMENT_MODE, TRASH_ICON, TREE_ERROR_CODES, TREE_IMPORTS, TREE_LEVEL_STATUSES, TREE_MARKERS, TREE_SELECTION_MODES, TRIANGLE_EXCLAMATION_ICON, TROPHY_ICON, TWITCH_PLAYER_TOKEN, TabBarDirective, TabBarTriggerDirective, TabBarUnderlineDirective, TabComponent, TabGroupComponent, TabGroupDirective, TabLabelDirective, TabPanelDirective, TabTriggerDirective, TableCellDirective, TableCellEditDirective, TableCellErrorMarkComponent, TableCellErrorTooltipDirective, TableCellSkeletonDirective, TableColumnChooserComponent, TableColumnMenuDirective, TableColumnMenuTriggerComponent, TableComponent, TableCsvExportDirective, TableDetailStylesComponent, TableExpanderCellComponent, TableFilterOptionDirective, TableFilterTriggerComponent, TableFiltersDirective, TableFooterCellDirective, TableFooterDirective, TableGroupHeaderRowComponent, TableGroupHeadersDirective, TableHeaderCellDirective, TableInlineEditDirective, TableInlineEditStylesComponent, TableKeyboardNavDirective, TableReorderDirective, TableReorderOverlayComponent, TableResizeDirective, TableResizeGripComponent, TableRowDetailComponent, TableRowExpansionDirective, TableSelectAllCellComponent, TableSelectCellComponent, TableSelectionDirective, TableSkeletonDirective, TableSkeletonRowsComponent, TableStatePersistenceDirective, TableStickyColumnsDirective, TableVirtualScrollDirective, TableVirtualScrollStylesComponent, TagInputComponent, TagInputDirective, TagInputFieldDirective, TextButtonComponent, TextFieldControlDirective, TextareaComponent, TextareaDirective, TikTokPlayerComponent, TikTokPlayerDirective, TikTokPlayerParamsDirective, TikTokPlayerSlotComponent, TimeInputComponent, TimeInputDirective, TimeInputFieldDirective, TimePickerColumnDirective, TimePickerComponent, TimePickerDirective, TimePickerOptionDirective, TimelineComponent, TimelineItemComponent, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipTriggerDirective, ToolbarComponent, ToolbarDirective, TooltipComponent, TooltipDirective, TreeComponent, TreeDirective, TreeMarkerComponent, TreeNodeDefDirective, TreeNodeDirective, TwitchPlayerComponent, TwitchPlayerDirective, TwitchPlayerParamsDirective, TwitchPlayerSlotComponent, UNDERLINE_ICON, UNDO_ICON, UNIT_MS, UPLOAD_ICON, VIMEO_PLAYER_TOKEN, VimeoPlayerComponent, VimeoPlayerDirective, VimeoPlayerParamsDirective, VimeoPlayerSlotComponent, WINDOW_CONTROL_BUTTON_KINDS, WINDOW_CONTROL_BUTTON_SIZES, WindowControlButtonComponent, YOUTUBE_PLAYER_SLOT_TOKEN, YOUTUBE_PLAYER_TOKEN, YoutubePlayerComponent, YoutubePlayerDirective, YoutubePlayerParamsDirective, YoutubePlayerSlotComponent, YoutubePlayerSlotDirective, abortFullscreenAnimation, anchoredDialogOverlayStrategy, anchoredOverlayStrategy, autoPlace, bottomSheetOverlayStrategy, bracketFitsWidth, bracketNaturalWidth, buildAnchoredRuntimePositionStrategy, canHaveChildren, cascaderFromQuery, centeredOverlayStrategy, clampFloatToPeek, clampPosition, clampResizeRect, cleanupFullscreenAnimation, cleanupFullscreenAnimationStyles, compactLayout, computeGeometry, computeGridHeight, countDescendants, createAnchoredPanelController, createAutoScroller, createCardMask, createCurrencyMask, createDefaultDropzoneArgs, createDropzoneUpload, createExistingDropzoneEntry, createFileDropzoneEntry, createFixedLengthRangeStrategy, createGridAdapter, createIbanMask, createNormalizedBracketMatch, createNotificationPromiseFn, createNotificationRef, createOverlayOpener, createOverlayRef, createOverlayStrategyController, createOverlayUnsavedChangesGuard, createPipChromeAnimations, createPipChromeState, createRichTextEditorTrigger, createRichTextEditorTriggerWithQuery, createStreamConfig, createStreamPlayerSlot, createTableRowsSource, createTableStateStorage, createV2DropzoneUpload, createWeekRangeStrategy, defaultCompareWith, defaultDropzoneRejectionMessage, defineOverlay, defineQueryParamOverlay, deriveDurationFormatSpec, deserializeGridLayout, deserializeTableState, detectKbdPlatform, dialogOverlayStrategy, disposeDropzoneEntry, doubleEliminationBracketLayout, dropzoneFiles, enableDragToDismiss, extractFirstImageUrl, filterOverlayLabelsForLocale, filterOverlayPreviewFromQuery, filterRows, findCollision, findNextRelevantHtmlElement, findScrollableAncestor, formatDuration, formatFileSize, fromGridPosition, fullScreenDialogOverlayStrategy, generateBracketDataForEthlete, generateRoundTypeFromEthleteRoundType, generateTournamentModeFormEthleteRounds, getClosestOverlay, getOriginCoordinatesAndDimensions, hexColor, hysteresisRound, iconRegistryKey, indexOfNode, injectAnchoredDialogStrategy, injectAnchoredDialogStrategyDefaults, injectBannerLabels, injectBottomSheetStrategy, injectBottomSheetStrategyDefaults, injectBracketConfig, injectBracketLabels, injectBreadcrumbLabels, injectBreadcrumbManager, injectCalendarLabels, injectCarouselLabels, injectCascaderLabels, injectChipLabels, injectDateFormat, injectDateLocale, injectDateTimeLabels, injectDialogStrategy, injectDialogStrategyDefaults, injectDropzoneLabels, injectFilterOverlay, injectFilterOverlayLabels, injectFormFieldLabels, injectFormSupport, injectFullscreenDialogStrategy, injectFullscreenDialogStrategyDefaults, injectGridConfig, injectGridLabels, injectInputLabels, injectLeftSheetStrategy, injectLeftSheetStrategyDefaults, injectLoaderLabels, injectMatchLabels, injectNotificationLabels, injectNotificationManager, injectNotificationManagerConfig, injectOverlayManager, injectOverlayRouter, injectOverlayScrollBlocker, injectOverlaySurfaceContext, injectPaginationLabels, injectPhoneInputLabels, injectPictureConfig, injectPipChromeManager, injectPipManager, injectPipSlotPlaceholderConfig, injectQueryErrorLabels, injectRichTextEditorLabels, injectRichTextEditorTools, injectRightSheetStrategy, injectRightSheetStrategyDefaults, injectSchedulerEditSurfaceHost, injectSchedulerFeatureHost, injectSchedulerLabels, injectSelectLabels, injectSidebarOverlay, injectSliderLabels, injectStandingsLabels, injectStreamConfig, injectStreamConsentConfig, injectStreamLabels, injectStreamManager, injectStreamPlayerErrorConfig, injectStreamPlayerLoadingConfig, injectStreamScriptLoader, injectStreamUserConsentProvider, injectTableCsvExport, injectTableFeatureHost, injectTableLabels, injectTimeFormat, injectTimePickerLabels, injectTopSheetStrategy, injectTopSheetStrategyDefaults, isFileAccepted, isHtmlElement, isInteractiveElement, isPointerEvent, isTargetInsideOverlayTree, isTouchEvent, itemsCollide, kbdKeyLabel, kbdKeyName, kindOf, leftSheetOverlayStrategy, legacyQueryErrorSource, mapLayoutToBreakpoint, matchCountryByDialCode, matchParticipantDisplayName, mergeOverlayBreakpointConfigs, mergeOverlayConfigs, mirroredDoubleEliminationBracketLayout, mirroredSingleEliminationBracketLayout, mountRichTextEditorImageStyles, mountRichTextEditorTableStyles, nodesEqual, normalizeEthleteBracketMatch, normalizeEthleteGroupRanking, normalizeEthleteMatch, normalizeEthleteMatchStatus, normalizeEthleteMedia, normalizeEthleteParticipant, normalizeEthletePlacement, normalizePictureSizes, normalizePictureSource, numberInputStepMultiplierFrom, paginate, parseDuration, parseKbdKeys, phoneCountryFlag, phoneCountryName, pixelRectsEqual, positionToPixelRect, positionsEqual, projectDragCell, provideAnchoredDialogStrategy, provideAnchoredDialogStrategyDefaults, provideBannerLabels, provideBottomSheetStrategy, provideBottomSheetStrategyDefaults, provideBracketConfig, provideBracketLabels, provideBreadcrumbLabels, provideBreadcrumbManager, provideCalendarLabels, provideCarouselLabels, provideCascaderLabels, provideChipLabels, provideDateFormat, provideDateLocale, provideDateTimeLabels, provideDialogStrategy, provideDialogStrategyDefaults, provideDropzoneLabels, provideFilterOverlay, provideFilterOverlayLabels, provideFormErrorMessageResolver, provideFormFieldLabels, provideFormSupport, provideFullscreenDialogStrategy, provideFullscreenDialogStrategyDefaults, provideGridConfig, provideGridLabels, provideIconOverrides, provideIcons, provideInputLabels, provideLeftSheetStrategy, provideLeftSheetStrategyDefaults, provideLoaderLabels, provideMatchLabels, provideNotificationLabels, provideNotificationManager, provideNotificationManagerConfig, provideNotificationManagerInstance, provideOverlay, provideOverlayManager, provideOverlayRouter, provideOverlayRouterConfig, provideOverlayRouterService, provideOverlayScrollBlocker, providePaginationLabels, providePhoneInputLabels, providePictureConfig, providePipChromeManager, providePipManager, providePipSlotPlaceholderConfig, provideQueryErrorLabels, provideRichTextEditorAlignmentTool, provideRichTextEditorAutoformat, provideRichTextEditorBlockquoteTool, provideRichTextEditorCodeBlockTool, provideRichTextEditorDefaultTools, provideRichTextEditorFloatingToolbar, provideRichTextEditorHeadingTool, provideRichTextEditorImageTool, provideRichTextEditorLabels, provideRichTextEditorLanguageTool, provideRichTextEditorLinkEditor, provideRichTextEditorLinkTool, provideRichTextEditorTableTool, provideRichTextEditorTokenRendering, provideRichTextEditorTools, provideRightSheetStrategy, provideRightSheetStrategyDefaults, provideSchedulerLabels, provideSelectLabels, provideSidebarOverlay, provideSidebarOverlayConfig, provideSidebarOverlayService, provideSliderLabels, provideStandingsLabels, provideStreamConfig, provideStreamConsentConfig, provideStreamLabels, provideStreamManager, provideStreamPlayerErrorConfig, provideStreamPlayerLoadingConfig, provideTableLabels, provideTimeFormat, provideTimePickerLabels, provideTopSheetStrategy, provideTopSheetStrategyDefaults, queryErrorLabelsForLocale, queryErrorResponseFromLegacyError, reconcileColumnOrder, reconcileColumnWidths, reconcileHiddenColumns, reduceSupportPresentation, registerSingleton, requiredLanguages, resizeSpanBounds, resizedFloatRect, resolveBracketLayout, resolveBreakpoint, resolveClosestOverlay, resolveCollisions, resolveFilterOverlaySubmitButton, resolveNotificationStatusIcon, resolveTableCsvRows, rgbColor, richTextEditorToolLabel, rightSheetOverlayStrategy, rowsToPixelHeight, schedulerFeatureConfig, selectOptionsFromQuery, selectOptionsFromV2Query, serializeGridLayout, serializeTableState, settledFloatRect, setupRichTextEditorFloatingToolbar, setupRichTextEditorLinkEditor, singleEliminationBracketLayout, snapResizeSpan, sortRows, spanHeight, spanWidth, startFullscreenEnterAnimation, startFullscreenLeaveAnimation, startImageUpload, startOfCalendarUnit, stripTrunkZero, supportPresentationIncludesState, swissBracketLayout, tableCsvRowsFromPages, tableFeatureConfig, tableRowsFromQuery, tableRowsFromV2Query, tableToCsv, toChildrenObservable, toGridPosition, toNotificationContent, toPathObservable, toSearchObservable, topSheetOverlayStrategy, transformingBottomSheetToDialogOverlayStrategy, transformingFullScreenDialogToDialogOverlayStrategy, transformingFullScreenDialogToRightSheetOverlayStrategy, wireFormSupport, withPictureBaseUrl };
26093
- export type { AccordionHeadingLevel, AnchoredDialogOverlayStrategyOptions, AnchoredOverlayStrategyOptions, AnchoredPanelCloseInfo, AnchoredPanelOverlayRef, AnchoredPanelSurfaceLike, AnchoredPositionOptions, AnyDropzoneUploadConfig, AnyTableColumn, Appointment, AppointmentId, AppointmentTreeNode, AutoPlaceOptions, AutoScrollPointer, AutoScroller, AvatarShape, AvatarSize, BadgeIconAlignment, BadgeSize, BadgeVariant, BannerLabels, BannerLiveRegion, BannerType, Bracket, BracketCardContext, BracketComponents, BracketConfig, BracketContinueComponent, BracketDataLayout, BracketDataSource, BracketDensity, BracketDrawEdgesContext, BracketLabels, BracketLayout, BracketLayoutConfig, BracketListSection, BracketMatch, BracketMatchComponent, BracketMatchFactor, BracketMatchId, BracketMatchNormalizer, BracketMatchParticipant, BracketMatchPosition, BracketMatchRelation, BracketMatchRelationNothingToOne, BracketMatchRelationOneToNothing, BracketMatchRelationOneToOne, BracketMatchRelationTwoToNothing, BracketMatchRelationTwoToOne, BracketMatchShortId, BracketMatchSource, BracketMatchStatus, BracketParticipant, BracketParticipantMatch, BracketRound, BracketRoundHeaderComponent, BracketRoundId, BracketRoundMapWithSwissData, BracketRoundMirrorType, BracketRoundPosition, BracketRoundRelation, BracketRoundRelationNothingToOne, BracketRoundRelationOneToNothing, BracketRoundRelationOneToOne, BracketRoundRelationTwoToNothing, BracketRoundRelationTwoToOne, BracketRoundShortId, BracketRoundSource, BracketRoundSwissData, BracketRoundSwissGroup, BracketRoundSwissGroupId, BracketRoundSwissGroupMap, BracketRoundType, BracketRoundsListBlock, BracketRoundsListSection, BracketSwissColors, BracketSwissGroupColorType, BreadcrumbCollapseAffordance, BreadcrumbCrumb, BreadcrumbLabels, BreadcrumbRenderItem, BreadcrumbSegment, ButtonIconAlignment, ButtonSize, CalendarBandPosition, CalendarCell, CalendarCellBase, CalendarDateClassFn, CalendarFixedLengthRangeStrategyOptions, CalendarHeaderContext, CalendarInterval, CalendarLabels, CalendarMode, CalendarMonthPage, CalendarNavigationDirection, CalendarPrecision, CalendarRange, CalendarRangeSelectionStrategy, CalendarSelectionFlags, CalendarView, CalendarWeekRangeStrategyOptions, CalendarWeekday, CardVariant, CarouselAutoplayPauseReason, CarouselLabels, CarouselResolvedTransitionDriver, CarouselSlideAlign, CarouselSlideContext, CarouselSlideTemplateRef, CarouselTransition, CarouselTransitionDriver, CascaderColumnState, CascaderCompareWith, CascaderDataSource, CascaderFromQueryConfig, CascaderFromQuerySearchConfig, CascaderLabels, CascaderNode, CascaderNodeSignal, CascaderSearchState, CascaderSelectableLevels, CascaderSurfaceContext, CenteredOverlayStrategyOptions, CheckboxOptionVariant, ChipLabels, ChoiceFieldVariant, ClampPositionOptions, CommonBracketRoundType, CompactLayoutOptions, ComponentInputValue, ComputedBracketGrid, ControlSuffixBase, CounterComponentBase, CreateAnchoredPanelControllerOptions, CreateBracketGridConfig, CreateExistingDropzoneEntryOptions, CreateFileDropzoneEntryOptions, CreateOverlayUnsavedChangesGuardConfig, CreateTableRowsSourceOptions, CurrencyMaskOptions, DatePickerHost, DatePickerSurfaceBase, DatePickerSurfaceContext, DatePickerTriggerBase, DateRangeSide, DateRangeValue, DateTimeLabels, Dimensions, DividerOrientation, DoubleEliminationBracketRoundType, DragDismissMomentum, DragToDismissContext, DragToDismissRef, DropzoneDeleteConfig, DropzoneDeleteOptions, DropzoneEntry, DropzoneEntrySource, DropzoneEntryStatus, DropzoneExistingFileInfo, DropzoneFileConstraints, DropzoneFileRejection, DropzoneFileRejectionReason, DropzoneFileValidationChannel, DropzoneLabels, DropzoneUploadConfig, DropzoneUploadError, DropzoneUploadHandle, DropzoneUploadHandleOptions, DropzoneUploadState, DurationFormatSpec, DurationSegment, DurationUnit, EtBuiltInIconName, EthleteIconNameRegistry, EthleteIconVariantRegistry, FacebookVideoPlayer, FacebookWindow, FilterOverlay, FilterOverlayConfig, FilterOverlayDraft, FilterOverlayLabels, FilterOverlayPreview, FilterOverlayResult, FilterOverlaySubmitButton, FilterOverlaySubmitState, FilterOverlayValueOf, FilterRowsConfig, FindCollisionOptions, FloatingActionState, FormErrorMessageResolver, FormFieldAppearance, FormFieldControl, FormFieldControlType, FormFieldDirectiveBase, FormFieldFill, FormFieldLabelMode, FormFieldLabels, FormFieldSize, FormSupport, FullscreenAnimationCancellable, FullscreenAnimationDeps, FullscreenAnimationState, GridAdapter, GridBreakpointConfig, GridBreakpointName, GridComponentRegistration, GridConfig, GridGeometry, GridItemActionsComponent, GridItemConfig, GridItemConstraints, GridItemPosition, GridLabels, GridLayoutEntry, GridMutationOptions, GridSerializedState, GroupBracketRoundType, HexColorOptions, HintComponentBase, IconDefinition, IconOverride, InputLabels, InputMaskHost, InputTextAlignment, JsonKind, KbdPlatform, LabelDirectiveBase, LegacyQueryErrorSource, LoaderLabels, MapLayoutOptions, MaskSpec, MaskValueMode, MasonryColumns, MasonryPacking, MasonryPlacement, MatchCardNameContext, MatchCardSize, MatchLabels, MatchParticipantDisplayNameOptions, MatchParticipantId, MatchParticipantShortId, MatchParticipantSide, MatchResultNameContext, MatchScoreChange, MenuAnchorPoint, MenuCloseReason, MenuItemActivationEvent, MenuItemActivationSource, MenuItemVariant, MenuOpenSource, MenuSelectionGroupDirectiveBase, MenuSelectionGroupItem, MenuSelectionItemKind, MenuSurfaceContext, MultiLanguageRichTextEditorLanguage, MultiLanguageRichTextEditorValue, NormalizedGameScore, NormalizedMatch, NormalizedMatchParticipant, NormalizedMatchResultKind, NormalizedMatchStatus, NormalizedMedia, NormalizedStandingRow, NotificationAction, NotificationActionSlot, NotificationConfig, NotificationContentInit, NotificationContentInput, NotificationEntry, NotificationLabels, NotificationManager, NotificationManagerConfig, NotificationPromiseContent, NotificationPromiseFn, NotificationPromiseWork, NotificationRef, NotificationStackContext, NotificationStatus, NumberInputStepOptions, OtpInputCharset, OverlayAutoFocusTarget, OverlayBodyDividerType, OverlayBreakpointConfig, OverlayCloseGuard, OverlayConfig, OverlayDefinition, OverlayDefinitionConfig, OverlayDragToDismissConfig, OverlayDragToDismissDirection, OverlayDragToDismissPhysicalDirection, OverlayLifecycleConfig, OverlayManager, OverlayMode, OverlayOpenConfig, OverlayOpener, OverlayOpenerConfig, OverlayRef, OverlayRole, OverlayRoute, OverlayRouter, OverlayRouterConfig, OverlayRouterNavigateConfig, OverlayRouterNavigationDirection, OverlayRouterResolvedPath, OverlayRouterTransitionType, OverlayStrategy, OverlayStrategyBreakpoint, OverlayStrategyContext, OverlayStrategyController, OverlayStrategyControllerMountConfig, OverlaySurfaceContext, OverlayTreeContainmentOptions, OverlayUnsavedChangesDismissSources, OverlayUnsavedChangesGuardRef, PaginateOptions, PaginationItem, PaginationItemType, PaginationLabels, PaginationRangeContext, PaginationRenderAs, ParticipantMatchResult, PhoneCountry, PhoneInputFlagContext, PhoneInputFlagCountry, PhoneInputLabels, PictureConfig, PictureSource, PictureState, PipCellData, PipChromeAnimations, PipChromeRef, PipChromeState, PipManager, PipSlotPlaceholderConfig, PixelRect, ProgressStepState, QueryErrorLabels, QueryErrorRetryTarget, QueryErrorSlotContext, QueryErrorView, QueryParamOverlayDefinition, QueryParamOverlayDefinitionConfig, QueryParamOverlayHost, QueryParamOverlayOpener, QueryParamOverlayValue, RadioVariant, RangeSliderValue, RatingIconContext, RatingIconState, ReconcilableColumn, ReduceSupportPresentationInput, RegisteredIconName, RegisteredIconVariant, RequiredLanguagesOptions, ResizeSpanBounds, ResolveClosestOverlayOptions, ResolveCollisionsOptions, ResolvedDropzoneUploadConfig, ResolvedScrollableChrome, RgbColorOptions, RichTextEditorFloatingToolbarSetup, RichTextEditorImageFailure, RichTextEditorImageFailureReason, RichTextEditorImageToolConfig, RichTextEditorImageUpload, RichTextEditorImageUploadFn, RichTextEditorImageUploadRun, RichTextEditorLabels, RichTextEditorLinkEditorSetup, RichTextEditorLinkEditorValue, RichTextEditorQueryTriggerConfig, RichTextEditorTool, RichTextEditorToolButton, RichTextEditorToolDefinition, RichTextEditorToolsConfig, RichTextEditorTrigger, RichTextEditorTriggerItem, RichTextEditorTriggerItemResolver, RichTextEditorTriggerItemSource, RichTextEditorTriggerType, RowFloors, SchedulerActionAddAppointmentConfig, SchedulerActionAddSubAppointmentConfig, SchedulerActionDeleteConfig, SchedulerAgendaDay, SchedulerAppointmentAction, SchedulerBadgeAdornment, SchedulerBadgeChainCountConfig, SchedulerBadgeColorDotConfig, SchedulerBadgeLocationConfig, SchedulerBadgeTimeRangeConfig, SchedulerBadgeTitleConfig, SchedulerDraftRange, SchedulerEditColorConfig, SchedulerEditDescriptionConfig, SchedulerEditField, SchedulerEditLocationConfig, SchedulerEditSurfaceHost, SchedulerEditSurfaceResult, SchedulerEditTimeRangeConfig, SchedulerEditTitleConfig, SchedulerFeatureConfig, SchedulerFeatureHost, SchedulerLabels, SchedulerMonthDayCell, SchedulerSwipeNavigationConfig, SchedulerTimeGridAllDayEntry, SchedulerTimeGridBlock, SchedulerTimeGridDay, SchedulerToolbarAction, SchedulerView, SchedulerVisibleRange, SchedulerWeekStartsOn, SchedulerWeekday, ScrollableActiveChildRef, ScrollableButtonPosition, ScrollableButtonsConfig, ScrollableChrome, ScrollableChromeSlot, ScrollableDirection, ScrollableIntersectionChange, ScrollableItemSize, ScrollableLoadingTemplatePosition, ScrollableLoadingTemplateRef, ScrollableMaskVariant, ScrollableNavigation, ScrollableNavigationConfig, ScrollableNavigationItem, ScrollableScrollMode, ScrollableScrollOrigin, ScrollableScrollState, SegmentedButtonGroupVariant, SelectAsyncOptions, SelectErrorContext, SelectFilterMode, SelectItem, SelectLabels, SelectOptionData, SelectOptionGroupItem, SelectOptionTemplateContext, SelectOptionsFromQuery, SelectOptionsFromQueryConfig, SelectOptionsFromV2QueryConfig, SelectSelectedEntry, SelectSurfaceContext, SelectValueContext, SelectionListDirectiveBase, SelectionListItem, SelectionListOrientation, SerializeOptions, SidebarOverlay, SidebarOverlayConfig, SingleEliminationBracketRoundType, SkeletonShape, SliderHostBase, SliderLabels, SliderMark, SliderMarkStop, SliderMarks, SliderOrientation, SliderThumbBase, SliderThumbLabelBase, SliderThumbLabelContext, SortRowsConfig, Spacing, StandingsFormResult, StandingsLabels, StandingsRenderRow, StandingsZone, StartImageUploadOptions, StreamConfig, StreamConsentConfig, StreamLabels, StreamManager, StreamPipEntry, StreamPipWindowConfig, StreamPlayer, StreamPlayerCapabilities, StreamPlayerEntry, StreamPlayerErrorConfig, StreamPlayerErrorContext, StreamPlayerId, StreamPlayerLoadingConfig, StreamPlayerParams, StreamPlayerSlotHandle, StreamPlayerSlotOptions, StreamPlayerState, StreamScriptLoader, StreamSlotEntry, SupportContentState, SupportPresentationState, SupportTransitionDirection, SwissBracketLayoutOptions, SwissBracketRoundType, TabBarFit, TabBarOrientation, TabBarVariant, TabSize, TableBodyPlaceholder, TableCellContext, TableCellEditCommit, TableCellEditContext, TableCellEditTarget, TableCellEditing, TableCellErrorMark, TableCellErrorTooltipConfig, TableCellNavigation, TableCellPinning, TableCellPlaceholder, TableCellSkeletonContext, TableCellState, TableCellStateValue, TableColumn, TableColumnAlign, TableColumnDef, TableColumnMenuConfig, TableColumnMeta, TableColumnPinning, TableColumnState, TableColumnTemplate, TableColumnVisibilityHost, TableColumns, TableCsvExportConfig, TableCsvExportFile, TableCsvExportOptions, TableCsvRowsFromPagesOptions, TableCsvRowsProvider, TableCsvSerializeOptions, TableCsvSource, TableCsvValue, TableEmptyContext, TableErrorContext, TableExpandedRowContext, TableFeatureConfig, TableFeatureHost, TableFilter, TableFilterOption, TableFilterOptionContext, TableFilterOptionsProvider, TableFilterSelection, TableFiltersConfig, TableFooterContext, TableGroupHeadersConfig, TableHeaderAdornment, TableHeaderContext, TableHeaderGroup, TableHeaderRow, TableInlineEditConfig, TableKeyboardNavConfig, TableLabels, TableLabelsSource, TableLayer, TableLeadCellComponent, TableLeadColumn, TableReorderConfig, TableResizeConfig, TableRowDetail, TableRowExpansionConfig, TableRowKey, TableRowWindow, TableRowsDriver, TableRowsFromQuery, TableRowsFromQueryConfig, TableRowsFromV2QueryConfig, TableRowsQueryState, TableRowsSource, TableSelectionConfig, TableSkeletonConfig, TableSort, TableSortDirection, TableSortValue, TableState, TableStatePersistenceConfig, TableStateSlice, TableStateStorage, TableStateStorageKind, TableStateStorageOptions, TableStickyColumnsConfig, TableTemplateSlot, TableVirtualScrollConfig, TextAlign, TextareaResizeMode, TimePickerColumn, TimePickerLabels, TimePickerOption, TimePickerUnit, ToggletipContent, ToolbarOrientation, TooltipContent, TournamentMode, TreeCompareWith, TreeDataSource, TreeLevelStatus, TreeMarker, TreeNode, TreeNodeDefContext, TreeRow, TreeSelectionMode, TwitchEmbed, TwitchEmbedConstructor, TwitchEmbedPlayer, TwitchPlayerParams, TwitchWindow, V2DropzoneDeleteConfig, V2DropzonePrepareArgsOf, V2DropzoneUploadConfig, V2PrepareArgsOf, ViewportTransformData, VimeoDurationChangeEvent, VimeoPlaybackEvent, VimeoPlayer, VimeoPlayerOptions, VimeoWindow, WindowControlButtonKind, WindowControlButtonSize, YtPlayer, YtPlayerConfig, YtPlayerErrorEvent, YtPlayerEvent, YtPlayerStateChangeEvent, YtPlayerVars, YtWindow };
24841
+ export { ACCORDION_ERROR_CODES, ACCORDION_GROUP_TOKEN, ACCORDION_IMPORTS, ACCORDION_TOKEN, ALIGN_CENTER_ICON, ALIGN_JUSTIFY_ICON, ALIGN_LEFT_ICON, ALIGN_RIGHT_ICON, ARROWS_LEFT_RIGHT_ICON, ARROW_OUT_UP_RIGHT_ICON, ARROW_RIGHT_ICON, ARROW_UP_ICON, AVATAR_IMPORTS, AVATAR_SHAPES, AVATAR_SIZES, AccordionComponent, AccordionContentDirective, AccordionDirective, AccordionGroupComponent, AccordionGroupDirective, AccordionHintDirective, AccordionLabelDirective, AccordionPanelDirective, AccordionTriggerDirective, AvatarComponent, AvatarGroupComponent, BADGE_ICON_ALIGNMENTS, BADGE_IMPORTS, BADGE_SIZES, BADGE_VARIANTS, BANNER_IMPORTS, BANNER_LABELS, BANNER_TYPES, BOLD_ICON, BRACKET_CARD_CONTEXT, BRACKET_DATA_LAYOUT, BRACKET_DEFAULTS, BRACKET_DENSITY, BRACKET_DENSITY_PRESETS, BRACKET_ERROR_CODES, BRACKET_IMPORTS, BRACKET_LABELS, BRACKET_ROUND_MIRROR_TYPE, BRACKET_SWISS_GROUP_COLOR_TYPE, BREADCRUMB_COLLAPSE_IMPORTS, BREADCRUMB_COLLAPSE_TOKEN, BREADCRUMB_ERROR_CODES, BREADCRUMB_IMPORTS, BREADCRUMB_LABELS, BREADCRUMB_SEGMENT_TOKEN, BREADCRUMB_SEO_IMPORTS, BREADCRUMB_TOKEN, BUTTON_ICON_ALIGNMENTS, BUTTON_IMPORTS, BUTTON_SIZES, BUTTON_SPINNER_CONFIG, BUTTON_TYPES, BUTTON_VARIANTS, BadgeComponent, BannerComponent, BracketComponent, BracketDefaultContinueComponent, BracketDefaultFinalMatchComponent, BracketDefaultMatchComponent, BracketDefaultRoundHeaderComponent, BracketMap, BracketRoundsListComponent, BrandLoaderComponent, BreadcrumbCollapseDirective, BreadcrumbComponent, BreadcrumbDirective, BreadcrumbItemDirective, BreadcrumbItemTemplateDirective, BreadcrumbOutletComponent, BreadcrumbOverflowComponent, BreadcrumbSegmentDirective, BreadcrumbSeoDirective, BreadcrumbSeparatorDirective, ButtonColorDirective, ButtonComponent, ButtonDirective, ButtonStylesDirective, CALENDAR_ERROR_CODES, CALENDAR_ICON, CALENDAR_IMPORTS, CALENDAR_LABELS, CARD_IMPORTS, CARD_VARIANTS, CAROUSEL_AUTOPLAY_TOKEN, CAROUSEL_ERROR_CODES, CAROUSEL_IMPORTS, CAROUSEL_LABELS, CAROUSEL_SLIDE_ALIGNMENTS, CAROUSEL_TOKEN, CAROUSEL_TRANSITIONS, CAROUSEL_TRANSITION_DRIVERS, CASCADER_ERROR_CODES, CASCADER_IMPORTS, CASCADER_LABELS, CASCADER_SELECTABLE_LEVELS, CHECKBOX_GROUP_IMPORTS, CHECKBOX_IMPORTS, CHECKBOX_OPTION_VARIANTS, CHECK_ICON, CHEVRON_ICON, CHIP_ERROR_CODES, CHIP_IMPORTS, CHIP_LABELS, CHOICE_FIELD_IMPORTS, CHOICE_FIELD_VARIANTS, CIRCLE_CHECK_ICON, CIRCLE_INFO_ICON, CLIPBOARD_CHECK_ICON, CLOCK_ICON, CODE_BLOCK_ICON, CODE_ICON, COLOR_INPUT_IMPORTS, COMMON_BRACKET_ROUND_TYPE, COMPONENTS_VERSION, COPY_BUTTON_IMPORTS, CalendarCellDirective, CalendarComponent, CalendarDirective, CalendarGridDirective, CalendarHeaderDirective, CardComponent, CarouselAutoplayDirective, CarouselComponent, CarouselDirective, CarouselItemDirective, CarouselNextDirective, CarouselPlayToggleDirective, CarouselPreviousDirective, CarouselSlideDirective, CascaderColumnDirective, CascaderComponent, CascaderDirective, CascaderNodeDirective, CascaderPanelComponent, CascaderSearchDirective, CascaderSearchOptionDirective, CascaderSurfaceDirective, CascaderTriggerDirective, CheckboxComponent, CheckboxDirective, CheckboxGroupComponent, CheckboxGroupSelectAllComponent, CheckboxOptionComponent, ChipComponent, ChipDirective, ChipRemoveDirective, ChoiceFieldComponent, ColorInputComponent, ColorInputDirective, ControlSuffixDirective, CopyButtonDirective, CounterComponent, DAILYMOTION_PLAYER_TOKEN, DATE_FORMAT, DATE_INPUT_ERROR_CODES, DATE_INPUT_IMPORTS, DATE_LOCALE, DATE_PICKER_HOST, DATE_RANGE_INPUT_ERROR_CODES, DATE_RANGE_INPUT_IMPORTS, DATE_TIME_INPUT_ERROR_CODES, DATE_TIME_INPUT_IMPORTS, DATE_TIME_LABELS, DEFAULT_BANNER_LABELS, DEFAULT_BRACKET_LABELS, DEFAULT_BREADCRUMB_LABELS, DEFAULT_BREAKPOINTS, DEFAULT_CALENDAR_LABELS, DEFAULT_CALENDAR_RANGE_STRATEGY, DEFAULT_CAROUSEL_LABELS, DEFAULT_CASCADER_LABELS, DEFAULT_CHIP_LABELS, DEFAULT_DATE_TIME_LABELS, DEFAULT_DROPZONE_LABELS, DEFAULT_FILTER_OVERLAY_LABELS, DEFAULT_FORM_FIELD_LABELS, DEFAULT_GRID_LABELS, DEFAULT_ICON_VARIANT, DEFAULT_INPUT_LABELS, DEFAULT_LOADER_LABELS, DEFAULT_MATCH_CARD_START_TIME_FORMAT, DEFAULT_MATCH_LABELS, DEFAULT_NOTIFICATION_LABELS, DEFAULT_NOTIFICATION_MANAGER_CONFIG, DEFAULT_NOTIFICATION_STATUS_ICONS, DEFAULT_PAGINATION_LABELS, DEFAULT_PHONE_INPUT_LABELS, DEFAULT_PIP_WINDOW_CONFIG, DEFAULT_QUERY_ERROR_LABELS, DEFAULT_RICH_TEXT_EDITOR_LABELS, DEFAULT_RICH_TEXT_EDITOR_TOOLS, DEFAULT_SCHEDULER_LABELS, DEFAULT_SELECT_LABELS, DEFAULT_SLIDER_LABELS, DEFAULT_STANDINGS_LABELS, DEFAULT_STREAM_LABELS, DEFAULT_STREAM_PLAYER_STATE, DEFAULT_TABLE_LABELS, DEFAULT_TIME_PICKER_LABELS, DESCRIPTION_IMPORTS, DESCRIPTION_LIST_IMPORTS, DESCRIPTION_LIST_VARIANTS, DIVIDER_IMPORTS, DOUBLE_ELIMINATION_BRACKET_ROUND_TYPE, DROPZONE_ENTRY_STATUSES, DROPZONE_ERROR_CODES, DROPZONE_FILES_ERROR_KIND, DROPZONE_FILE_CONSTRAINTS, DROPZONE_FILE_REJECTION_REASONS, DROPZONE_IMPORTS, DROPZONE_LABELS, DURATION_INPUT_ERROR_CODES, DURATION_INPUT_IMPORTS, DailymotionPlayerComponent, DailymotionPlayerDirective, DailymotionPlayerParamsDirective, DailymotionPlayerSlotComponent, DateInputComponent, DateInputDirective, DateInputFieldDirective, DatePickerPanelComponent, DatePickerSurfaceDirective, DatePickerTriggerDirective, DateRangeInputComponent, DateRangeInputDirective, DateRangeInputFieldDirective, DateTimeInputComponent, DateTimeInputDirective, DateTimeInputFieldDirective, DescriptionComponent, DescriptionListComponent, DividerComponent, DropzoneComponent, DropzoneDirective, DurationInputComponent, DurationInputDirective, DurationInputFieldDirective, ELLIPSIS_ICON, ELLIPSIS_VERTICAL_ICON, EMPTY_STATE_IMPORTS, ET_BUILT_IN_ICON_NAMES, EYE_ICON, EYE_SLASH_ICON, EmptyStateComponent, FACEBOOK_PLAYER_TOKEN, FIELD_WARNINGS, FIELD_WARNING_KIND, FILE_ICON, FILTER_ICON, FILTER_OVERLAY_ERROR_CODES, FILTER_OVERLAY_IMPORTS, FILTER_OVERLAY_LABELS, FILTER_OVERLAY_TOKEN, FLOATING_ACTION_ERROR_CODES, FLOATING_ACTION_IMPORTS, FLOATING_ACTION_STATES, FLOATING_ACTION_TOKEN, FLOPPY_DISK_ICON, FOCUS_FRAME_ICON, FORM_ERROR_MESSAGE_RESOLVER, FORM_FIELD_APPEARANCES, FORM_FIELD_CONTROL_TYPES, FORM_FIELD_ERROR_CODES, FORM_FIELD_FILLS, FORM_FIELD_IMPORTS, FORM_FIELD_LABELS, FORM_FIELD_LABEL_MODES, FORM_FIELD_SIZES, FORM_FIELD_TOKEN, FORM_WARNING_MESSAGE_RESOLVER, FabComponent, FacebookPlayerComponent, FacebookPlayerDirective, FacebookPlayerParamsDirective, FacebookPlayerSlotComponent, FilterOverlayResetDirective, FilterOverlaySubmitDirective, FloatingActionAnchorDirective, FloatingActionDirective, FloatingActionScopeDirective, FloatingActionTopDirective, FloatingActionTriggerDirective, FocusRingDirective, FormErrorComponent, FormFieldBarrierDirective, FormFieldComponent, FormFieldDirective, FormWarningComponent, GERMAN_FILTER_OVERLAY_LABELS, GERMAN_QUERY_ERROR_LABELS, GRID_2X2_ICON, GRID_DEBUG_IMPORTS, GRID_ERROR_CODES, GRID_IMPORTS, GRID_LABELS, GRID_TOKEN, GROUP_BRACKET_ROUND_TYPE, GridComponent, GridDebugComponent, GridDirective, GridDragDirective, GridItemComponent, GridItemDefaultActionsComponent, GridItemDirective, GridItemRef, GridItemToolbarComponent, GridResizeDirective, HEADING_1_ICON, HEADING_2_ICON, HEADING_3_ICON, HintComponent, ICONS_TOKEN, ICON_DIRECTIVE_TOKEN, ICON_ERROR_CODES, ICON_IMPORTS, ICON_OVERRIDES_TOKEN, IMAGE_ICON, INHERIT_COLOR, INITIAL_SUPPORT_PRESENTATION_STATE, INPUT_IMPORTS, INPUT_LABELS, INPUT_MASK_HOST, INPUT_TEXT_ALIGNMENTS, INPUT_TYPES, INTERACTIVE_TAGS, ITALIC_ICON, IconButtonComponent, IconDirective, InputComponent, InputDirective, InputMaskDirective, InputPrefixDirective, InputSuffixDirective, KBD_IMPORTS, KBD_PLATFORM, KICK_PLAYER_TOKEN, KbdComponent, KickPlayerComponent, KickPlayerDirective, KickPlayerParamsDirective, KickPlayerSlotComponent, LINK_ICON, LIST_BULLETED_ICON, LIST_NUMBERED_ICON, LOADER_LABELS, LOCATION_ICON, LOCK_ICON, LabelDirective, MASKED_INPUT_ERROR_CODES, MASKED_INPUT_IMPORTS, MASK_VALUE_MODES, MASONRY_ERROR_CODES, MASONRY_IMPORTS, MASONRY_TOKEN, MATCH_CARD_IMPORTS, MATCH_CARD_SIZES, MATCH_CARD_TOKEN, MATCH_ERROR_CODES, MATCH_LABELS, MATCH_PARTICIPANT_IMPORTS, MENU_ERROR_CODES, MENU_IMPORTS, MENU_ITEM_VARIANTS, MENU_SELECTION_GROUP_MULTIPLE, MENU_SELECTION_GROUP_TOKEN, MENU_SELECTION_ITEM_KIND, MINUS_ICON, MULTI_LANGUAGE_RICH_TEXT_EDITOR_ERROR_CODES, MULTI_LANGUAGE_RICH_TEXT_EDITOR_IMPORTS, MasonryDirective, MasonryItemDirective, MatchCardComponent, MatchCardDirective, MatchCardGameScoresDirective, MatchCardMetaDirective, MatchCardScoreDirective, MatchParticipantComponent, MatchScoreComponent, MenuCheckboxGroupComponent, MenuCheckboxItemComponent, MenuComponent, MenuContextTriggerDirective, MenuDirective, MenuGroupLabelComponent, MenuItemComponent, MenuItemDirective, MenuItemShortcutComponent, MenuPanelDirective, MenuRadioGroupComponent, MenuRadioItemComponent, MenuSearchDirective, MenuSelectionGroupDirective, MenuSelectionItemDirective, MenuSeparatorComponent, MenuSurfaceDirective, MenuTriggerDirective, MultiLanguageRichTextEditorComponent, MultiLanguageRichTextEditorDirective, MultiLanguageRichTextEditorLanguageToolComponent, NAV_TABS_TOKEN, NAV_TAB_IMPORTS, NOTIFICATION_ACTION_SLOTS, NOTIFICATION_ERROR_CODES, NOTIFICATION_IMPORTS, NOTIFICATION_LABELS, NOTIFICATION_STACK_CONTEXT_TOKEN, NOTIFICATION_STATUS, NUMBER_INPUT_IMPORTS, NavTabLinkComponent, NavTabLinkDirective, NavTabsComponent, NavTabsDirective, NavTabsOutletComponent, NavTabsOutletDirective, NotificationActionDirective, NotificationComponent, NotificationDirective, NotificationDismissDirective, NotificationItemDirective, NotificationStackDirective, NotificationSwipeToDismissDirective, NumberInputComponent, NumberInputDirective, OTP_INPUT_IMPORTS, OVERLAY_BACK_OR_CLOSE_TOKEN, OVERLAY_BODY_TOKEN, OVERLAY_CONFIG_CLASS_KEYS, OVERLAY_CONTENT_IMPORTS, OVERLAY_ERROR_CODES, OVERLAY_FOOTER_TOKEN, OVERLAY_HEADER_TEMPLATE_TOKEN, OVERLAY_HEADER_TOKEN, OVERLAY_IMPORTS, OVERLAY_MAIN_TOKEN, OVERLAY_QUERY_PARAM_INPUT_NAME, OVERLAY_REF, OVERLAY_ROUTER_CONFIG_TOKEN, OVERLAY_ROUTER_LINK_TOKEN, OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN, OVERLAY_ROUTER_OUTLET_TOKEN, OVERLAY_ROUTER_TOKEN, OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN, OtpInputComponent, OtpInputDirective, OverlayAnchorDirective, OverlayBackOrCloseDirective, OverlayBodyComponent, OverlayCloseDirective, OverlayContainerComponent, OverlayDirective, OverlayFooterDirective, OverlayHeaderDirective, OverlayHeaderTemplateDirective, OverlayMainDirective, OverlayOriginCloneComponent, OverlayRouteHeaderTemplateOutletComponent, OverlayRouterLinkDirective, OverlayRouterOutletComponent, OverlayRouterOutletDisabledTemplateDirective, OverlaySharedRouteTemplateDirective, OverlaySharedRouteTemplateOutletComponent, OverlaySidebarComponent, OverlaySidebarPageComponent, OverlaySurfaceDirective, OverlayTitleDirective, OverlayTriggerDirective, PAGE_SIZE_SELECT_IMPORTS, PAGINATION_IMPORTS, PAGINATION_LABELS, PARAGRAPH_ICON, PASSWORD_INPUT_IMPORTS, PAUSE_ICON, PENCIL_ICON, PHONE_COUNTRIES, PHONE_INPUT_ERROR_CODES, PHONE_INPUT_IMPORTS, PHONE_INPUT_LABELS, PICTURE_IMPORTS, PICTURE_STATES, PIP_CHROME_REF_TOKEN, PIP_ENTRY_TOKEN, PIP_WINDOW_ASPECT_RATIO_TOKEN, PLAY_ICON, PLUS_ICON, PROGRESS_STEPS_IMPORTS, PROGRESS_STEPS_ORIENTATIONS, PROGRESS_STEP_STATES, PageSizeSelectComponent, PaginationComponent, PaginationDirective, PaginationSeoDirective, PasswordInputComponent, PasswordInputDirective, PhoneInputComponent, PhoneInputDirective, PhoneInputFieldDirective, PhoneInputFlagDirective, PictureComponent, PictureErrorDirective, PicturePlaceholderDirective, PipBackDirective, PipBringBackDirective, PipCellDirective, PipCloseDirective, PipCollapseOverlayDirective, PipGridToggleDirective, PipPlayerComponent, PipSlotPlaceholderComponent, PipStageDirective, PipTitleBarDirective, PipTitleBarTemplateDirective, PipWindowComponent, PipWindowParamsDirective, ProgressBarComponent, ProgressStepComponent, ProgressStepsComponent, QUERY_ERROR_ERROR_CODES, QUERY_ERROR_IMPORTS, QUERY_ERROR_LABELS, QUERY_ERROR_TOKEN, QUOTE_ICON, QueryErrorActionsDirective, QueryErrorComponent, QueryErrorDirective, QueryErrorTitleDirective, QueryParamOverlayLinkDirective, RADIO_GROUP_IMPORTS, RADIO_VARIANTS, RATING_IMPORTS, REDO_ICON, RICH_TEXT_EDITOR_FLOATING_TOOLBAR, RICH_TEXT_EDITOR_HEADING_OPTIONS, RICH_TEXT_EDITOR_IMPORTS, RICH_TEXT_EDITOR_INLINE_TOOLS, RICH_TEXT_EDITOR_LABELS, RICH_TEXT_EDITOR_LANGUAGE_TOOL, RICH_TEXT_EDITOR_LINK_EDITOR, RICH_TEXT_EDITOR_TOKEN_CODEC, RICH_TEXT_EDITOR_TOKEN_PALETTE_IMPORTS, RICH_TEXT_EDITOR_TOOL, RICH_TEXT_EDITOR_TOOLS, RICH_TEXT_EDITOR_TOOL_BUTTONS, RICH_TEXT_EDITOR_TRIGGERS_IMPORTS, ROTATE_RIGHT_ICON, RadioComponent, RadioGroupComponent, RangeSliderComponent, RangeSliderDirective, RatingComponent, RatingDirective, RatingIconDirective, RichTextEditorAlignToolComponent, RichTextEditorComponent, RichTextEditorDirective, RichTextEditorFloatingToolbarComponent, RichTextEditorFloatingToolbarDirective, RichTextEditorHeadingToolComponent, RichTextEditorImageEditorComponent, RichTextEditorImageStylesComponent, RichTextEditorImageToolComponent, RichTextEditorLinkEditorComponent, RichTextEditorLinkEditorDirective, RichTextEditorTableStylesComponent, RichTextEditorTableToolComponent, RichTextEditorTokenPaletteComponent, RichTextEditorTokenPopupComponent, RichTextEditorTriggersDirective, SCHEDULER_ADD_SURFACE_OVERLAY, SCHEDULER_EDIT_SURFACE_HOST, SCHEDULER_EDIT_SURFACE_OVERLAY, SCHEDULER_ERROR_CODES, SCHEDULER_FEATURE_HOST, SCHEDULER_IMPORTS, SCHEDULER_LABELS, SCROLLABLE_DARKEN_IMPORTS, SCROLLABLE_DRAG_IMPORTS, SCROLLABLE_ERROR_CODES, SCROLLABLE_IMPORTS, SCROLLABLE_NAVIGATION_IMPORTS, SEGMENTED_BUTTON_GROUP_VARIANTS, SEGMENTED_BUTTON_IMPORTS, SELECTION_LIST_IMPORTS, SELECTION_LIST_MULTIPLE, SELECTION_LIST_TOKEN, SELECT_ERROR_CODES, SELECT_FILTER_MODES, SELECT_IMPORTS, SELECT_LABELS, SIDEBAR_OVERLAY_CONFIG, SIDEBAR_OVERLAY_TOKEN, SINGLE_ELIMINATION_BRACKET_ROUND_TYPE, SKELETON_IMPORTS, SLIDER_ERROR_CODES, SLIDER_IMPORTS, SLIDER_LABELS, SLIDER_MARK_VALUE_ATTRIBUTE, SLIDER_TOKEN, SNAP_HYSTERESIS, SOOP_PLAYER_TOKEN, SPLIT_BUTTON_ERROR_CODES, STANDINGS_ERROR_CODES, STANDINGS_IMPORTS, STANDINGS_LABELS, STAR_ICON, STREAM_ALL_IMPORTS, STREAM_CONSENT_TOKEN, STREAM_DAILYMOTION_IMPORTS, STREAM_FACEBOOK_IMPORTS, STREAM_IMPORTS, STREAM_KICK_IMPORTS, STREAM_LABELS, STREAM_PIP_IMPORTS, STREAM_PLAYER_COMPONENT_TOKEN, STREAM_PLAYER_ERROR_CONTEXT_TOKEN, STREAM_PLAYER_ERROR_TOKEN, STREAM_PLAYER_PARAMS_TOKEN, STREAM_PLAYER_SLOT_TOKEN, STREAM_PLAYER_TOKEN, STREAM_SLOT_PLAYER_ID_TOKEN, STREAM_SOOP_IMPORTS, STREAM_TIKTOK_IMPORTS, STREAM_TWITCH_IMPORTS, STREAM_USER_CONSENT_PROVIDER_TOKEN, STREAM_VIMEO_IMPORTS, STREAM_YOUTUBE_IMPORTS, STRIKETHROUGH_ICON, SUPPORT_CONTENT_STATE, SUPPORT_TRANSITION_DIRECTION, SWISS_BRACKET_ROUND_TYPE, SWITCH_IMPORTS, SchedulerActionAddAppointmentDirective, SchedulerActionAddSubAppointmentDirective, SchedulerActionDeleteDirective, SchedulerAgendaDirective, SchedulerAgendaViewComponent, SchedulerAppointmentDragDirective, SchedulerBadgeChainCountComponent, SchedulerBadgeChainCountDirective, SchedulerBadgeColorDotComponent, SchedulerBadgeColorDotDirective, SchedulerBadgeLocationComponent, SchedulerBadgeLocationDirective, SchedulerBadgeTimeRangeComponent, SchedulerBadgeTimeRangeDirective, SchedulerBadgeTitleComponent, SchedulerBadgeTitleDirective, SchedulerComponent, SchedulerDirective, SchedulerEditColorComponent, SchedulerEditColorDirective, SchedulerEditDescriptionComponent, SchedulerEditDescriptionDirective, SchedulerEditLocationComponent, SchedulerEditLocationDirective, SchedulerEditSurfaceComponent, SchedulerEditSurfaceDirective, SchedulerEditTimeRangeComponent, SchedulerEditTimeRangeDirective, SchedulerEditTitleComponent, SchedulerEditTitleDirective, SchedulerMonthDirective, SchedulerMonthViewComponent, SchedulerSwipeNavigationDirective, SchedulerTimeGridDirective, SchedulerTimeGridViewComponent, ScrollableActiveChildDirective, ScrollableButtonsComponent, ScrollableButtonsDirective, ScrollableComponent, ScrollableDarkenDirective, ScrollableDirective, ScrollableDragDirective, ScrollableIgnoreChildDirective, ScrollableLoadingTemplateDirective, ScrollableMasksComponent, ScrollableNavigationComponent, ScrollableNavigationDirective, ScrollableSnapDirective, SegmentedButtonComponent, SegmentedButtonGroupComponent, SelectComponent, SelectDirective, SelectEmptyDirective, SelectErrorDirective, SelectListboxDirective, SelectLoadingDirective, SelectOptionComponent, SelectOptionDirective, SelectOptionGroupComponent, SelectOptionGroupDirective, SelectOptionTemplateDirective, SelectOptionsDirective, SelectPanelComponent, SelectSearchDirective, SelectSurfaceDirective, SelectTriggerDirective, SelectValueDirective, SelectViewportDirective, SelectVirtualOptionComponent, SelectVirtualOptionDirective, SelectionListControlDirective, SelectionListDirective, SelectionOptionDirective, SkeletonComponent, SkeletonItemComponent, SkeletonTextComponent, SliderComponent, SliderDirective, SliderThumbDirective, SliderThumbLabelDirective, SliderTrackDirective, SoopPlayerComponent, SoopPlayerDirective, SoopPlayerParamsDirective, SoopPlayerSlotComponent, SpinnerComponent, SplitButtonActionDirective, SplitButtonComponent, SplitButtonDirective, SplitButtonTriggerDirective, StandingsComponent, StandingsDirective, StreamConsentAcceptDirective, StreamConsentComponent, StreamConsentDirective, StreamPipChromeComponent, StreamPlayerErrorComponent, StreamPlayerErrorDirective, StreamPlayerLoadingComponent, StreamPlayerSlotDirective, SwitchComponent, SwitchDirective, TABLE_CELL_ERROR_TOOLTIP_IMPORTS, TABLE_COLUMN_CHOOSER_IMPORTS, TABLE_COLUMN_MENU_IMPORTS, TABLE_CSV_EXPORT_IMPORTS, TABLE_ERROR_CODES, TABLE_FEATURE_HOST, TABLE_FILTER_IMPORTS, TABLE_GROUP_HEADERS_IMPORTS, TABLE_ICON, TABLE_IMPORTS, TABLE_INLINE_EDIT_IMPORTS, TABLE_KEYBOARD_NAV_IMPORTS, TABLE_LABELS, TABLE_REORDER_IMPORTS, TABLE_RESIZE_IMPORTS, TABLE_ROW_EXPANSION_IMPORTS, TABLE_SELECTION_IMPORTS, TABLE_SKELETON_IMPORTS, TABLE_STATE_PERSISTENCE_IMPORTS, TABLE_STICKY_COLUMNS_IMPORTS, TABLE_VIRTUAL_SCROLL_IMPORTS, TAB_BAR_FITS, TAB_BAR_ORIENTATIONS, TAB_BAR_TOKEN, TAB_BAR_TRIGGER_TOKEN, TAB_BAR_VARIANTS, TAB_ERROR_CODES, TAB_GROUP_TOKEN, TAB_IMPORTS, TAB_PANEL_TOKEN, TAB_SIZES, TAG_INPUT_ERROR_CODES, TAG_INPUT_IMPORTS, TEXTAREA_IMPORTS, TEXTAREA_RESIZE_MODES, TEXT_ALIGNS, TIKTOK_PLAYER_TOKEN, TIMELINE_IMPORTS, TIMES_ICON, TIME_FORMAT, TIME_INPUT_ERROR_CODES, TIME_INPUT_IMPORTS, TIME_PICKER_ERROR_CODES, TIME_PICKER_IMPORTS, TIME_PICKER_LABELS, TOGGLETIP_ERROR_CODES, TOGGLETIP_IMPORTS, TOOLBAR_IMPORTS, TOOLBAR_ORIENTATIONS, TOOLTIP_ERROR_CODES, TOOLTIP_IMPORTS, TOURNAMENT_MODE, TRASH_ICON, TREE_ERROR_CODES, TREE_IMPORTS, TREE_LEVEL_STATUSES, TREE_MARKERS, TREE_SELECTION_MODES, TRIANGLE_EXCLAMATION_ICON, TROPHY_ICON, TWITCH_PLAYER_TOKEN, TabBarDirective, TabBarTriggerDirective, TabBarUnderlineDirective, TabComponent, TabGroupComponent, TabGroupDirective, TabLabelDirective, TabPanelDirective, TabTriggerDirective, TableCellDirective, TableCellEditDirective, TableCellErrorMarkComponent, TableCellErrorTooltipDirective, TableCellSkeletonDirective, TableColumnChooserComponent, TableColumnMenuDirective, TableColumnMenuTriggerComponent, TableComponent, TableCsvExportDirective, TableDetailStylesComponent, TableExpanderCellComponent, TableFilterOptionDirective, TableFilterTriggerComponent, TableFiltersDirective, TableFooterCellDirective, TableFooterDirective, TableGroupHeaderRowComponent, TableGroupHeadersDirective, TableHeaderCellDirective, TableInlineEditDirective, TableInlineEditStylesComponent, TableKeyboardNavDirective, TableReorderDirective, TableReorderOverlayComponent, TableResizeDirective, TableResizeGripComponent, TableRowDetailComponent, TableRowExpansionDirective, TableSelectAllCellComponent, TableSelectCellComponent, TableSelectionDirective, TableSkeletonDirective, TableSkeletonRowsComponent, TableStatePersistenceDirective, TableStickyColumnsDirective, TableVirtualScrollDirective, TableVirtualScrollStylesComponent, TagInputComponent, TagInputDirective, TagInputFieldDirective, TextButtonComponent, TextFieldControlDirective, TextareaComponent, TextareaDirective, TikTokPlayerComponent, TikTokPlayerDirective, TikTokPlayerParamsDirective, TikTokPlayerSlotComponent, TimeInputComponent, TimeInputDirective, TimeInputFieldDirective, TimePickerColumnDirective, TimePickerComponent, TimePickerDirective, TimePickerOptionDirective, TimelineComponent, TimelineItemComponent, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipTriggerDirective, ToolbarComponent, ToolbarDirective, TooltipComponent, TooltipDirective, TreeComponent, TreeDirective, TreeMarkerComponent, TreeNodeDefDirective, TreeNodeDirective, TwitchPlayerComponent, TwitchPlayerDirective, TwitchPlayerParamsDirective, TwitchPlayerSlotComponent, UNDERLINE_ICON, UNDO_ICON, UNIT_MS, UPLOAD_ICON, VIMEO_PLAYER_TOKEN, VimeoPlayerComponent, VimeoPlayerDirective, VimeoPlayerParamsDirective, VimeoPlayerSlotComponent, WINDOW_CONTROL_BUTTON_KINDS, WINDOW_CONTROL_BUTTON_SIZES, WindowControlButtonComponent, YOUTUBE_PLAYER_SLOT_TOKEN, YOUTUBE_PLAYER_TOKEN, YoutubePlayerComponent, YoutubePlayerDirective, YoutubePlayerParamsDirective, YoutubePlayerSlotComponent, YoutubePlayerSlotDirective, abortFullscreenAnimation, anchoredDialogOverlayStrategy, anchoredOverlayStrategy, autoPlace, bottomSheetOverlayStrategy, bracketFitsWidth, bracketNaturalWidth, buildAnchoredRuntimePositionStrategy, canHaveChildren, cascaderFromQuery, centeredOverlayStrategy, clampPosition, clampResizeRect, cleanupFullscreenAnimation, cleanupFullscreenAnimationStyles, clearLeavingSupportStateOnExit, compactLayout, computeGeometry, computeGridHeight, countDescendants, createAnchoredPanelController, createAutoScroller, createCardMask, createCurrencyMask, createDefaultDropzoneArgs, createDropzoneUpload, createExistingDropzoneEntry, createFileDropzoneEntry, createFixedLengthRangeStrategy, createGridAdapter, createIbanMask, createNormalizedBracketMatch, createNotificationPromiseFn, createNotificationRef, createOverlayOpener, createOverlayRef, createOverlayStrategyController, createOverlayUnsavedChangesGuard, createPipChromeAnimations, createPipChromeState, createRichTextEditorTrigger, createRichTextEditorTriggerWithQuery, createStreamConfig, createStreamPlayerSlot, createTableRowsSource, createTableStateStorage, createV2DropzoneUpload, createWeekRangeStrategy, defaultCompareWith, defaultDropzoneRejectionMessage, defineOverlay, defineQueryParamOverlay, deriveDurationFormatSpec, deserializeGridLayout, deserializeTableState, detectKbdPlatform, dialogOverlayStrategy, disposeDropzoneEntry, doubleEliminationBracketLayout, dropzoneFiles, enableDragToDismiss, extractFirstImageUrl, filterOverlayLabelsForLocale, filterOverlayPreviewFromQuery, filterRows, findCollision, findNextRelevantHtmlElement, findScrollableAncestor, formatDuration, formatFileSize, fromGridPosition, fullScreenDialogOverlayStrategy, generateBracketDataForEthlete, generateRoundTypeFromEthleteRoundType, generateTournamentModeFormEthleteRounds, getClosestOverlay, getOriginCoordinatesAndDimensions, hexColor, hysteresisRound, iconRegistryKey, indexOfNode, injectAnchoredDialogStrategy, injectAnchoredDialogStrategyDefaults, injectBannerLabels, injectBottomSheetStrategy, injectBottomSheetStrategyDefaults, injectBracketConfig, injectBracketLabels, injectBreadcrumbLabels, injectBreadcrumbManager, injectCalendarLabels, injectCarouselLabels, injectCascaderLabels, injectChipLabels, injectDateFormat, injectDateLocale, injectDateTimeLabels, injectDialogStrategy, injectDialogStrategyDefaults, injectDropzoneLabels, injectFilterOverlay, injectFilterOverlayLabels, injectFormFieldLabels, injectFormSupport, injectFullscreenDialogStrategy, injectFullscreenDialogStrategyDefaults, injectGridConfig, injectGridLabels, injectInputLabels, injectLeftSheetStrategy, injectLeftSheetStrategyDefaults, injectLoaderLabels, injectMatchLabels, injectNotificationLabels, injectNotificationManager, injectNotificationManagerConfig, injectOverlayManager, injectOverlayRouter, injectOverlayScrollBlocker, injectOverlaySurfaceContext, injectPaginationLabels, injectPhoneInputLabels, injectPictureConfig, injectPipChromeManager, injectPipManager, injectPipSlotPlaceholderConfig, injectQueryErrorLabels, injectRichTextEditorLabels, injectRichTextEditorTools, injectRightSheetStrategy, injectRightSheetStrategyDefaults, injectSchedulerEditSurfaceHost, injectSchedulerFeatureHost, injectSchedulerLabels, injectSelectLabels, injectSidebarOverlay, injectSliderLabels, injectStandingsLabels, injectStreamConfig, injectStreamConsentConfig, injectStreamLabels, injectStreamManager, injectStreamPlayerErrorConfig, injectStreamPlayerLoadingConfig, injectStreamScriptLoader, injectStreamUserConsentProvider, injectTableCsvExport, injectTableFeatureHost, injectTableLabels, injectTimeFormat, injectTimePickerLabels, injectTopSheetStrategy, injectTopSheetStrategyDefaults, isFileAccepted, isHtmlElement, isInteractiveElement, isPointerEvent, isTargetInsideOverlayTree, isTouchEvent, itemsCollide, kbdKeyLabel, kbdKeyName, leftSheetOverlayStrategy, legacyQueryErrorSource, mapLayoutToBreakpoint, matchCountryByDialCode, matchParticipantDisplayName, mergeOverlayBreakpointConfigs, mergeOverlayConfigs, mirroredDoubleEliminationBracketLayout, mirroredSingleEliminationBracketLayout, mountRichTextEditorImageStyles, mountRichTextEditorTableStyles, nodesEqual, normalizeEthleteBracketMatch, normalizeEthleteGroupRanking, normalizeEthleteMatch, normalizeEthleteMatchStatus, normalizeEthleteMedia, normalizeEthleteParticipant, normalizeEthletePlacement, normalizePictureSizes, normalizePictureSource, numberInputStepMultiplierFrom, paginate, parseDuration, parseKbdKeys, phoneCountryFlag, phoneCountryName, pixelRectsEqual, positionToPixelRect, positionsEqual, projectDragCell, provideAnchoredDialogStrategy, provideAnchoredDialogStrategyDefaults, provideBannerLabels, provideBottomSheetStrategy, provideBottomSheetStrategyDefaults, provideBracketConfig, provideBracketLabels, provideBreadcrumbLabels, provideBreadcrumbManager, provideCalendarLabels, provideCarouselLabels, provideCascaderLabels, provideChipLabels, provideDateFormat, provideDateLocale, provideDateTimeLabels, provideDialogStrategy, provideDialogStrategyDefaults, provideDropzoneLabels, provideFilterOverlay, provideFilterOverlayLabels, provideFormErrorMessageResolver, provideFormFieldLabels, provideFormSupport, provideFormWarningMessageResolver, provideFullscreenDialogStrategy, provideFullscreenDialogStrategyDefaults, provideGridConfig, provideGridLabels, provideIconOverrides, provideIcons, provideInputLabels, provideLeftSheetStrategy, provideLeftSheetStrategyDefaults, provideLoaderLabels, provideMatchLabels, provideNotificationLabels, provideNotificationManager, provideNotificationManagerConfig, provideNotificationManagerInstance, provideOverlay, provideOverlayManager, provideOverlayRouter, provideOverlayRouterConfig, provideOverlayRouterService, provideOverlayScrollBlocker, providePaginationLabels, providePhoneInputLabels, providePictureConfig, providePipChromeManager, providePipManager, providePipSlotPlaceholderConfig, provideQueryErrorLabels, provideRichTextEditorAlignmentTool, provideRichTextEditorAutoformat, provideRichTextEditorBlockquoteTool, provideRichTextEditorCodeBlockTool, provideRichTextEditorDefaultTools, provideRichTextEditorFloatingToolbar, provideRichTextEditorHeadingTool, provideRichTextEditorImageTool, provideRichTextEditorLabels, provideRichTextEditorLanguageTool, provideRichTextEditorLinkEditor, provideRichTextEditorLinkTool, provideRichTextEditorTableTool, provideRichTextEditorTokenRendering, provideRichTextEditorTools, provideRightSheetStrategy, provideRightSheetStrategyDefaults, provideSchedulerLabels, provideSelectLabels, provideSidebarOverlay, provideSidebarOverlayConfig, provideSidebarOverlayService, provideSliderLabels, provideStandingsLabels, provideStreamConfig, provideStreamConsentConfig, provideStreamLabels, provideStreamManager, provideStreamPlayerErrorConfig, provideStreamPlayerLoadingConfig, provideTableLabels, provideTimeFormat, provideTimePickerLabels, provideTopSheetStrategy, provideTopSheetStrategyDefaults, queryErrorLabelsForLocale, queryErrorResponseFromLegacyError, reconcileColumnOrder, reconcileColumnWidths, reconcileHiddenColumns, reduceSupportPresentation, registerSingleton, requiredLanguages, resizeSpanBounds, resolveBracketLayout, resolveBreakpoint, resolveClosestOverlay, resolveCollisions, resolveFilterOverlaySubmitButton, resolveNotificationStatusIcon, resolveTableCsvRows, rgbColor, richTextEditorToolLabel, rightSheetOverlayStrategy, rowsToPixelHeight, schedulerFeatureConfig, selectOptionsFromQuery, selectOptionsFromV2Query, serializeGridLayout, serializeTableState, setupRichTextEditorFloatingToolbar, setupRichTextEditorLinkEditor, singleEliminationBracketLayout, snapResizeSpan, sortRows, spanHeight, spanWidth, startFullscreenEnterAnimation, startFullscreenLeaveAnimation, startImageUpload, startOfCalendarUnit, stripTrunkZero, supportPresentationIncludesState, swissBracketLayout, tableCsvRowsFromPages, tableFeatureConfig, tableRowsFromQuery, tableRowsFromV2Query, tableToCsv, toChildrenObservable, toGridPosition, toNotificationContent, toPathObservable, toSearchObservable, topSheetOverlayStrategy, transformingBottomSheetToDialogOverlayStrategy, transformingFullScreenDialogToDialogOverlayStrategy, transformingFullScreenDialogToRightSheetOverlayStrategy, warn, wireFormSupport, withPictureBaseUrl };
24842
+ export type { AccordionHeadingLevel, AnchoredDialogOverlayStrategyOptions, AnchoredOverlayStrategyOptions, AnchoredPanelCloseInfo, AnchoredPanelOverlayRef, AnchoredPanelSurfaceLike, AnchoredPositionOptions, AnyDropzoneUploadConfig, AnyTableColumn, Appointment, AppointmentId, AppointmentTreeNode, AutoPlaceOptions, AutoScrollPointer, AutoScroller, AvatarShape, AvatarSize, BadgeIconAlignment, BadgeSize, BadgeVariant, BannerLabels, BannerLiveRegion, BannerType, Bracket, BracketCardContext, BracketComponents, BracketConfig, BracketContinueComponent, BracketDataLayout, BracketDataSource, BracketDensity, BracketDrawEdgesContext, BracketLabels, BracketLayout, BracketLayoutConfig, BracketListSection, BracketMatch, BracketMatchComponent, BracketMatchFactor, BracketMatchId, BracketMatchNormalizer, BracketMatchParticipant, BracketMatchPosition, BracketMatchRelation, BracketMatchRelationNothingToOne, BracketMatchRelationOneToNothing, BracketMatchRelationOneToOne, BracketMatchRelationTwoToNothing, BracketMatchRelationTwoToOne, BracketMatchShortId, BracketMatchSource, BracketMatchStatus, BracketParticipant, BracketParticipantMatch, BracketRound, BracketRoundHeaderComponent, BracketRoundId, BracketRoundMapWithSwissData, BracketRoundMirrorType, BracketRoundPosition, BracketRoundRelation, BracketRoundRelationNothingToOne, BracketRoundRelationOneToNothing, BracketRoundRelationOneToOne, BracketRoundRelationTwoToNothing, BracketRoundRelationTwoToOne, BracketRoundShortId, BracketRoundSource, BracketRoundSwissData, BracketRoundSwissGroup, BracketRoundSwissGroupId, BracketRoundSwissGroupMap, BracketRoundType, BracketRoundsListBlock, BracketRoundsListSection, BracketSwissColors, BracketSwissGroupColorType, BreadcrumbCollapseAffordance, BreadcrumbCrumb, BreadcrumbLabels, BreadcrumbRenderItem, BreadcrumbSegment, ButtonColor, ButtonIconAlignment, ButtonSize, CalendarBandPosition, CalendarCell, CalendarCellBase, CalendarDateClassFn, CalendarFixedLengthRangeStrategyOptions, CalendarHeaderContext, CalendarInterval, CalendarLabels, CalendarMode, CalendarMonthPage, CalendarNavigationDirection, CalendarPrecision, CalendarRange, CalendarRangeSelectionStrategy, CalendarSelectionFlags, CalendarView, CalendarWeekRangeStrategyOptions, CalendarWeekday, CardVariant, CarouselAutoplayPauseReason, CarouselLabels, CarouselResolvedTransitionDriver, CarouselSlideAlign, CarouselSlideContext, CarouselSlideTemplateRef, CarouselTransition, CarouselTransitionDriver, CascaderColumnState, CascaderCompareWith, CascaderDataSource, CascaderFromQueryConfig, CascaderFromQuerySearchConfig, CascaderLabels, CascaderNode, CascaderNodeSignal, CascaderSearchState, CascaderSelectableLevels, CascaderSurfaceContext, CenteredOverlayStrategyOptions, CheckboxOptionVariant, ChipLabels, ChoiceFieldVariant, ClampPositionOptions, CommonBracketRoundType, CompactLayoutOptions, ComponentInputValue, ComputedBracketGrid, ControlSuffixBase, CounterComponentBase, CreateAnchoredPanelControllerOptions, CreateBracketGridConfig, CreateExistingDropzoneEntryOptions, CreateFileDropzoneEntryOptions, CreateOverlayUnsavedChangesGuardConfig, CreateTableRowsSourceOptions, CurrencyMaskOptions, DatePickerHost, DatePickerSurfaceBase, DatePickerSurfaceContext, DatePickerTriggerBase, DateRangeSide, DateRangeValue, DateTimeLabels, DescriptionListVariant, Dimensions, DividerOrientation, DoubleEliminationBracketRoundType, DragDismissMomentum, DragToDismissContext, DragToDismissRef, DropzoneDeleteConfig, DropzoneDeleteOptions, DropzoneEntry, DropzoneEntrySource, DropzoneEntryStatus, DropzoneExistingFileInfo, DropzoneFileConstraints, DropzoneFileRejection, DropzoneFileRejectionReason, DropzoneFileValidationChannel, DropzoneLabels, DropzoneUploadConfig, DropzoneUploadError, DropzoneUploadHandle, DropzoneUploadHandleOptions, DropzoneUploadState, DurationFormatSpec, DurationSegment, DurationUnit, EtBuiltInIconName, EthleteIconNameRegistry, EthleteIconVariantRegistry, FacebookVideoPlayer, FacebookWindow, FieldWarning, FieldWarningResult, FilterOverlay, FilterOverlayConfig, FilterOverlayDraft, FilterOverlayLabels, FilterOverlayPreview, FilterOverlayResult, FilterOverlaySubmitButton, FilterOverlaySubmitState, FilterOverlayValueOf, FilterRowsConfig, FindCollisionOptions, FloatingActionState, FormErrorMessageResolver, FormFieldAppearance, FormFieldControl, FormFieldControlType, FormFieldDirectiveBase, FormFieldFill, FormFieldLabelMode, FormFieldLabels, FormFieldSize, FormSupport, FormWarningMessageResolver, FullscreenAnimationCancellable, FullscreenAnimationDeps, FullscreenAnimationState, GridAdapter, GridBreakpointConfig, GridBreakpointName, GridComponentRegistration, GridConfig, GridGeometry, GridItemActionsComponent, GridItemConfig, GridItemConstraints, GridItemPosition, GridLabels, GridLayoutEntry, GridMutationOptions, GridSerializedState, GroupBracketRoundType, HexColorOptions, HintComponentBase, IconDefinition, IconOverride, InputLabels, InputMaskHost, InputTextAlignment, KbdPlatform, LabelDirectiveBase, LegacyQueryErrorSource, LoaderLabels, MapLayoutOptions, MaskSpec, MaskValueMode, MasonryColumns, MasonryPacking, MasonryPlacement, MatchCardNameContext, MatchCardSize, MatchLabels, MatchParticipantDisplayNameOptions, MatchParticipantId, MatchParticipantShortId, MatchParticipantSide, MatchResultNameContext, MatchScoreChange, MenuAnchorPoint, MenuCloseReason, MenuItemActivationEvent, MenuItemActivationSource, MenuItemVariant, MenuOpenSource, MenuSelectionGroupDirectiveBase, MenuSelectionGroupItem, MenuSelectionItemKind, MenuSurfaceContext, MultiLanguageRichTextEditorLanguage, MultiLanguageRichTextEditorValue, NormalizedGameScore, NormalizedMatch, NormalizedMatchParticipant, NormalizedMatchResultKind, NormalizedMatchStatus, NormalizedMedia, NormalizedStandingRow, NotificationAction, NotificationActionSlot, NotificationConfig, NotificationContentInit, NotificationContentInput, NotificationEntry, NotificationLabels, NotificationManager, NotificationManagerConfig, NotificationPromiseContent, NotificationPromiseFn, NotificationPromiseWork, NotificationRef, NotificationStackContext, NotificationStatus, NumberInputStepOptions, OtpInputCharset, OverlayAutoFocusTarget, OverlayBodyDividerType, OverlayBreakpointConfig, OverlayCloseGuard, OverlayConfig, OverlayDefinition, OverlayDefinitionConfig, OverlayDragToDismissConfig, OverlayDragToDismissDirection, OverlayDragToDismissPhysicalDirection, OverlayLifecycleConfig, OverlayManager, OverlayMode, OverlayOpenConfig, OverlayOpener, OverlayOpenerConfig, OverlayRef, OverlayRole, OverlayRoute, OverlayRouter, OverlayRouterConfig, OverlayRouterNavigateConfig, OverlayRouterNavigationDirection, OverlayRouterResolvedPath, OverlayRouterTransitionType, OverlayStrategy, OverlayStrategyBreakpoint, OverlayStrategyContext, OverlayStrategyController, OverlayStrategyControllerMountConfig, OverlaySurfaceContext, OverlayTreeContainmentOptions, OverlayUnsavedChangesDismissSources, OverlayUnsavedChangesGuardRef, PaginateOptions, PaginationItem, PaginationItemType, PaginationLabels, PaginationRangeContext, PaginationRenderAs, ParticipantMatchResult, PhoneCountry, PhoneInputFlagContext, PhoneInputFlagCountry, PhoneInputLabels, PictureConfig, PictureSource, PictureState, PipCellData, PipChromeAnimations, PipChromeRef, PipChromeState, PipManager, PipSlotPlaceholderConfig, PixelRect, ProgressStepState, ProgressStepsOrientation, QueryErrorLabels, QueryErrorRetryTarget, QueryErrorSlotContext, QueryErrorView, QueryParamOverlayDefinition, QueryParamOverlayDefinitionConfig, QueryParamOverlayHost, QueryParamOverlayOpener, QueryParamOverlayValue, RadioVariant, RangeSliderValue, RatingIconContext, RatingIconState, ReconcilableColumn, ReduceSupportPresentationInput, RegisteredIconName, RegisteredIconVariant, RequiredLanguagesOptions, ResizeSpanBounds, ResolveClosestOverlayOptions, ResolveCollisionsOptions, ResolvedDropzoneUploadConfig, ResolvedScrollableChrome, RgbColorOptions, RichTextEditorFloatingToolbarSetup, RichTextEditorImageFailure, RichTextEditorImageFailureReason, RichTextEditorImageToolConfig, RichTextEditorImageUpload, RichTextEditorImageUploadFn, RichTextEditorImageUploadRun, RichTextEditorLabels, RichTextEditorLinkEditorSetup, RichTextEditorLinkEditorValue, RichTextEditorQueryTriggerConfig, RichTextEditorTool, RichTextEditorToolButton, RichTextEditorToolDefinition, RichTextEditorToolsConfig, RichTextEditorTrigger, RichTextEditorTriggerItem, RichTextEditorTriggerItemResolver, RichTextEditorTriggerItemSource, RichTextEditorTriggerType, RowFloors, SchedulerActionAddAppointmentConfig, SchedulerActionAddSubAppointmentConfig, SchedulerActionDeleteConfig, SchedulerAgendaDay, SchedulerAppointmentAction, SchedulerAppointmentDrag, SchedulerAppointmentDragConfig, SchedulerAppointmentDragMode, SchedulerAppointmentReschedule, SchedulerBadgeAdornment, SchedulerBadgeChainCountConfig, SchedulerBadgeColorDotConfig, SchedulerBadgeLocationConfig, SchedulerBadgeTimeRangeConfig, SchedulerBadgeTitleConfig, SchedulerDraftRange, SchedulerEditColorConfig, SchedulerEditDescriptionConfig, SchedulerEditField, SchedulerEditLocationConfig, SchedulerEditSurfaceHost, SchedulerEditSurfaceResult, SchedulerEditTimeRangeConfig, SchedulerEditTitleConfig, SchedulerFeatureConfig, SchedulerFeatureHost, SchedulerLabels, SchedulerMonthDayCell, SchedulerSwipeNavigationConfig, SchedulerTimeGridAllDayEntry, SchedulerTimeGridBlock, SchedulerTimeGridDay, SchedulerToolbarAction, SchedulerView, SchedulerVisibleRange, SchedulerWeekStartsOn, SchedulerWeekday, ScrollableActiveChildRef, ScrollableButtonPosition, ScrollableButtonsConfig, ScrollableChrome, ScrollableChromeSlot, ScrollableDirection, ScrollableIntersectionChange, ScrollableItemSize, ScrollableLoadingTemplatePosition, ScrollableLoadingTemplateRef, ScrollableMaskVariant, ScrollableNavigation, ScrollableNavigationConfig, ScrollableNavigationItem, ScrollableScrollMode, ScrollableScrollOrigin, ScrollableScrollState, SegmentedButtonGroupVariant, SelectAsyncOptions, SelectErrorContext, SelectFilterMode, SelectItem, SelectLabels, SelectOptionData, SelectOptionGroupItem, SelectOptionTemplateContext, SelectOptionsFromQuery, SelectOptionsFromQueryConfig, SelectOptionsFromV2QueryConfig, SelectSelectedEntry, SelectSurfaceContext, SelectValueContext, SelectionListDirectiveBase, SelectionListItem, SelectionListOrientation, SerializeOptions, SidebarOverlay, SidebarOverlayConfig, SingleEliminationBracketRoundType, SkeletonShape, SliderHostBase, SliderLabels, SliderMark, SliderMarkStop, SliderMarks, SliderOrientation, SliderThumbBase, SliderThumbLabelBase, SliderThumbLabelContext, SortRowsConfig, Spacing, StandingsFormResult, StandingsLabels, StandingsRenderRow, StandingsZone, StartImageUploadOptions, StreamConfig, StreamConsentConfig, StreamLabels, StreamManager, StreamPipEntry, StreamPipWindowConfig, StreamPlayer, StreamPlayerCapabilities, StreamPlayerEntry, StreamPlayerErrorConfig, StreamPlayerErrorContext, StreamPlayerId, StreamPlayerLoadingConfig, StreamPlayerParams, StreamPlayerSlotHandle, StreamPlayerSlotOptions, StreamPlayerState, StreamScriptLoader, StreamSlotEntry, SupportContentState, SupportPresentationState, SupportSwappingState, SupportTransitionDirection, SwissBracketLayoutOptions, SwissBracketRoundType, TabBarFit, TabBarOrientation, TabBarVariant, TabSize, TableBodyPlaceholder, TableCellContext, TableCellEditCommit, TableCellEditContext, TableCellEditTarget, TableCellEditing, TableCellErrorMark, TableCellErrorTooltipConfig, TableCellNavigation, TableCellPinning, TableCellPlaceholder, TableCellSkeletonContext, TableCellState, TableCellStateValue, TableColumn, TableColumnAlign, TableColumnDef, TableColumnMenuConfig, TableColumnMeta, TableColumnPinning, TableColumnState, TableColumnTemplate, TableColumnVisibilityHost, TableColumns, TableCsvExportConfig, TableCsvExportFile, TableCsvExportOptions, TableCsvRowsFromPagesOptions, TableCsvRowsProvider, TableCsvSerializeOptions, TableCsvSource, TableCsvValue, TableEmptyContext, TableErrorContext, TableExpandedRowContext, TableFeatureConfig, TableFeatureHost, TableFilter, TableFilterOption, TableFilterOptionContext, TableFilterOptionsProvider, TableFilterSelection, TableFiltersConfig, TableFooterContext, TableGroupHeadersConfig, TableHeaderAdornment, TableHeaderContext, TableHeaderGroup, TableHeaderRow, TableInlineEditConfig, TableKeyboardNavConfig, TableLabels, TableLabelsSource, TableLayer, TableLeadCellComponent, TableLeadColumn, TableReorderConfig, TableResizeConfig, TableRowDetail, TableRowExpansionConfig, TableRowKey, TableRowWindow, TableRowsDriver, TableRowsFromQuery, TableRowsFromQueryConfig, TableRowsFromV2QueryConfig, TableRowsQueryState, TableRowsSource, TableSelectionConfig, TableSkeletonConfig, TableSort, TableSortDirection, TableSortValue, TableState, TableStatePersistenceConfig, TableStateSlice, TableStateStorage, TableStateStorageKind, TableStateStorageOptions, TableStickyColumnsConfig, TableTemplateSlot, TableVirtualScrollConfig, TextAlign, TextareaResizeMode, TimePickerColumn, TimePickerLabels, TimePickerOption, TimePickerUnit, ToggletipContent, ToolbarOrientation, TooltipContent, TournamentMode, TreeCompareWith, TreeDataSource, TreeLevelStatus, TreeMarker, TreeNode, TreeNodeDefContext, TreeRow, TreeSelectionMode, TwitchEmbed, TwitchEmbedConstructor, TwitchEmbedPlayer, TwitchPlayerParams, TwitchWindow, V2DropzoneDeleteConfig, V2DropzonePrepareArgsOf, V2DropzoneUploadConfig, V2PrepareArgsOf, ViewportTransformData, VimeoDurationChangeEvent, VimeoPlaybackEvent, VimeoPlayer, VimeoPlayerOptions, VimeoWindow, WindowControlButtonKind, WindowControlButtonSize, YtPlayer, YtPlayerConfig, YtPlayerErrorEvent, YtPlayerEvent, YtPlayerStateChangeEvent, YtPlayerVars, YtWindow };