@ethlete/components 1.0.0-next.20 → 1.0.0-next.21

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.
@@ -1,15 +1,15 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { Signal, WritableSignal, InjectionToken, ElementRef, Type, InputSignal, ViewContainerRef, Injector, Binding, StaticProvider, TemplateRef, OnInit, ComponentRef, ModelSignal, OnDestroy, computed, Provider, EnvironmentInjector, ApplicationRef } from '@angular/core';
2
+ import { Signal, WritableSignal, InjectionToken, ElementRef, Type, Provider, InputSignal, ViewContainerRef, Injector, Binding, StaticProvider, TemplateRef, OnInit, ComponentRef, ModelSignal, OnDestroy, computed, EnvironmentInjector, ApplicationRef } from '@angular/core';
3
3
  import * as _ethlete_core from '@ethlete/core';
4
- import { AnimatableDirective, ResizeEdge, DragHandleDirective, ResizeMoveEvent, OverlayRuntimePositionStrategy, Breakpoint, OverlayRuntimeRef, AnimatedLifecycleDirective, OverlayRuntimeCloseSource, AnimatedLifecycleState, OverlayRuntimeShiftOptions, AngularRenderer, OverlayRuntimeAnimationDelegate, ScrollObserverDirective, ScrollToElementOptions, ConsentHandler, ProvideColorDirective } from '@ethlete/core';
4
+ import { AnimatableDirective, ColorTheme, ResizeEdge, DragHandleDirective, ResizeMoveEvent, OverlayRuntimePositionStrategy, Breakpoint, OverlayRuntimeRef, AnimatedLifecycleDirective, OverlayRuntimeCloseSource, AnimatedLifecycleState, OverlayRuntimeShiftOptions, AngularRenderer, OverlayRuntimeAnimationDelegate, ScrollObserverDirective, ScrollToElementOptions, ConsentHandler, ProvideColorDirective } from '@ethlete/core';
5
5
  import * as _angular_forms_signals from '@angular/forms/signals';
6
6
  import { ValidationError, FormCheckboxControl, PathKind, SchemaPath, SchemaPathRules, FormValueControl } from '@angular/forms/signals';
7
7
  import * as _ethlete_components from '@ethlete/components';
8
- import { QueryArgs, QueryCreator, RequestArgs, ResponseType, AnyNewQuery, QueryErrorResponse } from '@ethlete/query';
9
- import * as _angular_platform_browser from '@angular/platform-browser';
10
- import { Placement, OffsetOptions, Padding } from '@floating-ui/dom';
8
+ import { QueryArgs, QueryCreator, RequestArgs, ResponseType, AnyNewQuery, QueryErrorResponse, AnyQueryCreator, QueryArgsOf } from '@ethlete/query';
11
9
  import * as rxjs from 'rxjs';
12
10
  import { Observable } from 'rxjs';
11
+ import * as _angular_platform_browser from '@angular/platform-browser';
12
+ import { Placement, OffsetOptions, Padding } from '@floating-ui/dom';
13
13
  import * as i1 from '@angular/router';
14
14
 
15
15
  declare class ButtonStylesDirective {
@@ -237,6 +237,7 @@ type FormFieldControl = {
237
237
  name: Signal<string>;
238
238
  required?: Signal<boolean>;
239
239
  disabled?: Signal<boolean>;
240
+ readonly?: Signal<boolean>;
240
241
  effectiveDisabled?: Signal<boolean>;
241
242
  describedBy: WritableSignal<string | null>;
242
243
  controlType: Signal<FormFieldControlType>;
@@ -276,6 +277,8 @@ declare class FormFieldDirective implements FormFieldDirectiveBase {
276
277
  controlType: _angular_core.Signal<_ethlete_components.FormFieldControlType>;
277
278
  focused: _angular_core.Signal<boolean>;
278
279
  hasValue: _angular_core.Signal<boolean>;
280
+ isReadonly: _angular_core.Signal<boolean>;
281
+ isDisabled: _angular_core.Signal<boolean>;
279
282
  usesTextFieldShell: _angular_core.Signal<boolean>;
280
283
  shouldFloatLabel: _angular_core.Signal<boolean>;
281
284
  describedById: _angular_core.Signal<string | null>;
@@ -934,7 +937,128 @@ declare class InputComponent {
934
937
 
935
938
  declare const INPUT_IMPORTS: readonly [typeof InputComponent, typeof InputDirective];
936
939
 
937
- type InlineTag = 'strong' | 'em' | 'del';
940
+ declare class RichTextEditorFloatingToolbarDirective {
941
+ private editor;
942
+ private document;
943
+ private renderer;
944
+ private overlayManager;
945
+ private destroyRef;
946
+ private overlayId;
947
+ private overlayRef;
948
+ private activeRange;
949
+ private pointerSelectingInContent;
950
+ constructor();
951
+ private selectableRange;
952
+ private finishContentPointerSelection;
953
+ /** Selection settled (key/pointer): open the toolbar or move it to the new range. */
954
+ private evaluate;
955
+ /** Selection changed while open: follow it, or close if it is no longer usable. */
956
+ private reposition;
957
+ private openOrReposition;
958
+ private buildAnchoredPosition;
959
+ private hide;
960
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RichTextEditorFloatingToolbarDirective, never>;
961
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RichTextEditorFloatingToolbarDirective, "[etRichTextEditorFloatingToolbar]", never, {}, {}, never, never, true, never>;
962
+ }
963
+
964
+ /**
965
+ * Namespaces a token in the serialized Markdown (`{{type:id}}`). Apps pick their own
966
+ * values (`'block'`, `'mention'`, `'link'`, …); the union just nudges the common ones.
967
+ */
968
+ type RichTextEditorTriggerType = 'block' | 'mention' | 'link' | (string & {});
969
+ /** A single row shown in the trigger popup and the source of an inserted token. */
970
+ type RichTextEditorTriggerItem = {
971
+ /** Stable identity, embedded in the token as `{{type:id}}`. Must match `[A-Za-z0-9._:-]+`. */
972
+ id: string;
973
+ /** Text shown in the popup row and rendered inside the inserted chip. */
974
+ label: string;
975
+ /** Optional secondary line rendered under the label in the popup. */
976
+ description?: string;
977
+ /** Arbitrary passthrough for consumers that render custom rows/chips. */
978
+ data?: unknown;
979
+ /** When `true`, the row is shown but cannot be selected. */
980
+ disabled?: boolean;
981
+ };
982
+ /**
983
+ * Where a trigger gets its items from. Either a static list, or a function of the current
984
+ * query returning items synchronously, as a `Promise`, or as an `Observable` (for
985
+ * search-as-you-type). Function sources are re-run (debounced) as the query changes.
986
+ */
987
+ type RichTextEditorTriggerItemSource = readonly RichTextEditorTriggerItem[] | ((query: string) => RichTextEditorTriggerItem[] | Promise<RichTextEditorTriggerItem[]> | Observable<RichTextEditorTriggerItem[]>);
988
+ /**
989
+ * Resolves a stored token id back to an item so a `{{type:id}}` value can render as a
990
+ * labelled chip in display/read contexts. Sync, `Promise`, or `Observable`; returning
991
+ * `null` (or omitting the resolver) falls back to rendering the raw id.
992
+ */
993
+ type RichTextEditorTriggerItemResolver = (id: string) => RichTextEditorTriggerItem | null | Promise<RichTextEditorTriggerItem | null> | Observable<RichTextEditorTriggerItem | null>;
994
+ /** A single trigger character and the domain-specific items it offers. */
995
+ type RichTextEditorTrigger = {
996
+ /** The character that opens the popup at a word boundary (e.g. `'#'`, `'@'`). */
997
+ char: string;
998
+ /** Namespaces the inserted token. Unique per editor. Must match `[a-z][a-z0-9-]*`. */
999
+ type: RichTextEditorTriggerType;
1000
+ /** The items offered while this trigger is active. */
1001
+ items: RichTextEditorTriggerItemSource;
1002
+ /** Renders stored `{{type:id}}` tokens as labelled chips. See {@link RichTextEditorTriggerItemResolver}. */
1003
+ resolveItem?: RichTextEditorTriggerItemResolver;
1004
+ /** Keep the popup open when the query contains spaces. @default false */
1005
+ allowSpaces?: boolean;
1006
+ /** Minimum query length before items are requested. @default 0 */
1007
+ minQueryLength?: number;
1008
+ /** Debounce applied to async (function) sources, in ms. @default 150 */
1009
+ debounceTime?: number;
1010
+ };
1011
+ /**
1012
+ * Declares a trigger for the rich text editor's building-block autocomplete. A thin
1013
+ * identity helper — kept as a function so the config type is inferred and the call site
1014
+ * reads intentionally. Pass the results to `[etRichTextEditorTriggers]`.
1015
+ *
1016
+ * ```ts
1017
+ * createRichTextEditorTrigger({ char: '#', type: 'block', items: MERGE_FIELDS })
1018
+ * ```
1019
+ */
1020
+ declare const createRichTextEditorTrigger: (trigger: RichTextEditorTrigger) => RichTextEditorTrigger;
1021
+
1022
+ declare class RichTextEditorTriggersDirective {
1023
+ private editor;
1024
+ private document;
1025
+ private renderer;
1026
+ private overlayManager;
1027
+ private destroyRef;
1028
+ triggers: _angular_core.InputSignal<readonly RichTextEditorTrigger[]>;
1029
+ emptyLabel: _angular_core.InputSignal<string>;
1030
+ private readonly listboxId;
1031
+ private activeMatch;
1032
+ private activeIndex;
1033
+ private overlayRef;
1034
+ private itemsState;
1035
+ private errorText;
1036
+ private isComposing;
1037
+ private listenersAttached;
1038
+ /** Position of a trigger char the user dismissed (Escape) — suppresses reopening for that run. */
1039
+ private dismissed;
1040
+ constructor();
1041
+ private attachListeners;
1042
+ private syncDetection;
1043
+ private interceptPopupKeys;
1044
+ private moveActive;
1045
+ private selectActive;
1046
+ private insertItem;
1047
+ private buildChip;
1048
+ private deletePrecedingChip;
1049
+ private dismiss;
1050
+ private isDismissed;
1051
+ private openOrReposition;
1052
+ private close;
1053
+ private buildAnchoredPosition;
1054
+ private setAriaExpanded;
1055
+ private assertUniqueTriggers;
1056
+ private assertValidToken;
1057
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RichTextEditorTriggersDirective, never>;
1058
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RichTextEditorTriggersDirective, "[etRichTextEditorTriggers]", never, { "triggers": { "alias": "triggers"; "required": false; "isSignal": true; }; "emptyLabel": { "alias": "emptyLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1059
+ }
1060
+
1061
+ type InlineTag = 'strong' | 'em' | 'del' | 'u' | 'code';
938
1062
  type ListTag = 'ul' | 'ol';
939
1063
  type HeadingTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
940
1064
  type EditableSelection = {
@@ -945,30 +1069,149 @@ type RichTextMarkStates = {
945
1069
  bold: boolean;
946
1070
  italic: boolean;
947
1071
  strike: boolean;
1072
+ underline: boolean;
1073
+ code: boolean;
948
1074
  unorderedList: boolean;
949
1075
  orderedList: boolean;
950
1076
  link: boolean;
951
1077
  /** Heading level of the block the selection starts in, or `null` when it is not a heading. */
952
1078
  heading: number | null;
1079
+ /** Whether the selection starts inside a table cell — where block tools (headings, lists) have
1080
+ * no GFM representation and are disabled. */
1081
+ tableCell: boolean;
1082
+ };
1083
+
1084
+ /**
1085
+ * The formatting controls the rich text editor can render in its toolbar. `'divider'` renders a
1086
+ * visual separator and `'heading'` renders the block-style menu; every other token renders a toggle
1087
+ * button. Consumers pick and order them via the `tools` input or {@link provideRichTextEditorTools}.
1088
+ */
1089
+ declare const RICH_TEXT_EDITOR_TOOLS: {
1090
+ readonly BOLD: "bold";
1091
+ readonly ITALIC: "italic";
1092
+ readonly UNDERLINE: "underline";
1093
+ readonly STRIKE: "strike";
1094
+ readonly CODE: "code";
1095
+ readonly HEADING: "heading";
1096
+ readonly ALIGN: "align";
1097
+ readonly BULLETED_LIST: "bulletedList";
1098
+ readonly NUMBERED_LIST: "numberedList";
1099
+ readonly LINK: "link";
1100
+ readonly TABLE: "table";
1101
+ readonly DIVIDER: "divider";
1102
+ };
1103
+ /**
1104
+ * A toolbar tool token. The `align` and `table` tools are opt-in — they only render when their
1105
+ * provider (`provideRichTextEditorAlignmentTool` / `provideRichTextEditorTableTool`) is present, so
1106
+ * their code tree-shakes away otherwise. `(string & {})` keeps the union open for custom tools.
1107
+ */
1108
+ type RichTextEditorTool = (typeof RICH_TEXT_EDITOR_TOOLS)[keyof typeof RICH_TEXT_EDITOR_TOOLS] | (string & {});
1109
+ /** The default toolbar: the block-style menu first, then inline marks, lists and links. */
1110
+ declare const DEFAULT_RICH_TEXT_EDITOR_TOOLS: readonly RichTextEditorTool[];
1111
+ /** The inline marks the selection (floating) toolbar can offer — headings/lists are block-level. */
1112
+ declare const RICH_TEXT_EDITOR_INLINE_TOOLS: readonly RichTextEditorTool[];
1113
+ type RichTextEditorToolsConfig = {
1114
+ tools: readonly RichTextEditorTool[];
1115
+ };
1116
+ declare const injectRichTextEditorTools: {
1117
+ (): RichTextEditorToolsConfig;
1118
+ (options: _angular_core.InjectOptions & {
1119
+ optional?: false;
1120
+ }): RichTextEditorToolsConfig;
1121
+ (options: _angular_core.InjectOptions): RichTextEditorToolsConfig | null;
1122
+ };
1123
+ /**
1124
+ * Sets the default set (and order) of toolbar tools for every `et-rich-text-editor` in scope. A
1125
+ * per-instance `[tools]` input still wins over this. Omit both for the full default toolbar.
1126
+ */
1127
+ declare const provideRichTextEditorTools: (tools: readonly RichTextEditorTool[]) => _angular_core.Provider[];
1128
+
1129
+ /** Icon + label + wiring for a single toggle-button tool. */
1130
+ type RichTextEditorToolButton = {
1131
+ icon: string;
1132
+ label: string;
1133
+ isActive: (editor: RichTextEditorDirective) => boolean;
1134
+ run: (editor: RichTextEditorDirective) => void;
1135
+ /** Disables the button in contexts where the tool cannot apply (e.g. lists inside a table cell). */
1136
+ isDisabled?: (editor: RichTextEditorDirective) => boolean;
1137
+ /** Link keeps its brand color, so its icon opts out of the neutral icon recolor. */
1138
+ allowHardcodedColor?: boolean;
1139
+ };
1140
+ /** The toggle-button tools, keyed by token (`divider`/`heading` are rendered specially). */
1141
+ declare const RICH_TEXT_EDITOR_TOOL_BUTTONS: Partial<Record<RichTextEditorTool, RichTextEditorToolButton>>;
1142
+ /** Block-style options for the heading menu. `null` is a normal paragraph. */
1143
+ declare const RICH_TEXT_EDITOR_HEADING_OPTIONS: readonly {
1144
+ level: number | null;
1145
+ label: string;
1146
+ icon: string;
1147
+ }[];
1148
+ /**
1149
+ * A tool contributed to the toolbar via DI. Base tools are the static {@link RICH_TEXT_EDITOR_TOOL_BUTTONS};
1150
+ * opt-in tools (table, alignment, or app-defined ones) register a definition through
1151
+ * {@link RICH_TEXT_EDITOR_TOOL} so their code only ships when provided. A tool renders either as a
1152
+ * toggle button (`icon` + `isActive`/`run`) or as a custom `control` component (given an `editor` input).
1153
+ */
1154
+ type RichTextEditorToolDefinition = {
1155
+ /** The `tools` token this definition renders for (e.g. `'table'`). */
1156
+ token: string;
1157
+ label: string;
1158
+ icon?: string;
1159
+ allowHardcodedColor?: boolean;
1160
+ isActive?: (editor: RichTextEditorDirective) => boolean;
1161
+ run?: (editor: RichTextEditorDirective) => void;
1162
+ /** Disables the button in contexts where the tool cannot apply (e.g. lists inside a table cell). */
1163
+ isDisabled?: (editor: RichTextEditorDirective) => boolean;
1164
+ /** Custom control rendered instead of a toggle button; it receives the editor as an `editor` input. */
1165
+ control?: Type<unknown>;
1166
+ };
1167
+ /** Multi-provider token opt-in tools register their {@link RichTextEditorToolDefinition} into. */
1168
+ declare const RICH_TEXT_EDITOR_TOOL: InjectionToken<RichTextEditorToolDefinition[]>;
1169
+
1170
+ /**
1171
+ * Bridges token chips and their serialized `{{type:id}}` Markdown form. The
1172
+ * {@link RichTextEditorTokenCodec.serialize} direction reconstructs the token purely from the
1173
+ * chip's `type`/`id` data attributes (never the visible label), so `serialize(render(md))`
1174
+ * is byte-stable regardless of the resolved label — the base editor relies on this to avoid
1175
+ * re-rendering (and resetting the caret) on every keystroke.
1176
+ */
1177
+ type RichTextEditorTokenCodec = {
1178
+ /** In-place: replaces every `[data-et-token]` chip in `root` with a `{{type:id}}` text node. */
1179
+ serialize: (root: HTMLElement) => void;
1180
+ /** Replaces every `{{type:id}}` in `html` with chip HTML, resolving labels synchronously. */
1181
+ render: (html: string) => string;
1182
+ /** Asynchronously resolves chip labels in `root` and patches them in place. */
1183
+ hydrate: (root: HTMLElement) => void;
953
1184
  };
954
1185
 
955
1186
  declare class RichTextEditorDirective implements FormValueControl<string>, FormFieldControl {
956
1187
  private formField;
957
1188
  private destroyRef;
958
1189
  private document;
1190
+ private toolsConfig;
959
1191
  /** @internal */
960
1192
  editorDom: {
961
1193
  root: _angular_core.WritableSignal<HTMLElement | null>;
962
1194
  getSelection: () => EditableSelection | null;
963
1195
  closestWithin: (node: Node | null, selector: string) => HTMLElement | null;
964
1196
  markStates: () => RichTextMarkStates | null;
1197
+ activeInlineTags: () => InlineTag[];
965
1198
  toggleInline: (tag: InlineTag) => void;
1199
+ insertInlineText: (text: string, tags: InlineTag[]) => void;
1200
+ codeExit: (key: string) => boolean;
1201
+ indentListItem: () => boolean;
1202
+ outdentListItem: () => boolean;
1203
+ tableExit: (key: string) => boolean;
1204
+ tableEnter: (key: string) => boolean;
966
1205
  toggleList: (listTag: ListTag) => void;
967
1206
  toggleHeading: (tag: HeadingTag) => void;
968
1207
  applyLink: (href: string) => void;
969
1208
  removeLink: () => void;
970
1209
  insertToken: (node: Node) => void;
1210
+ insertNormalizedHtml: (html: string) => void;
1211
+ applyBlockAutoformat: (isReserved: (char: string) => boolean) => boolean;
1212
+ applyInlineAutoformat: (typed: string, isReserved: (char: string) => boolean) => boolean;
971
1213
  handleBackspace: () => boolean;
1214
+ handleEnter: () => boolean;
972
1215
  };
973
1216
  value: _angular_core.ModelSignal<string>;
974
1217
  touched: _angular_core.ModelSignal<boolean>;
@@ -980,6 +1223,21 @@ declare class RichTextEditorDirective implements FormValueControl<string>, FormF
980
1223
  required: _angular_core.InputSignal<boolean>;
981
1224
  name: _angular_core.InputSignal<string>;
982
1225
  placeholder: _angular_core.InputSignal<string>;
1226
+ /** Which formatting tools the toolbar renders, and in what order. Falls back to the value from
1227
+ * `provideRichTextEditorTools` (or the full default set). */
1228
+ tools: _angular_core.InputSignal<readonly RichTextEditorTool[] | null>;
1229
+ /** Markdown autoformat while typing: `- `, `1. ` and `# `–`### ` at a line start convert into
1230
+ * lists/headings, and closing `**bold**`, `*italic*`, `` `code` ``, `~~strike~~`, `__`/`_` runs
1231
+ * convert into their marks. Registered token-trigger characters never autoformat. */
1232
+ autoformat: _angular_core.InputSignal<boolean>;
1233
+ /** Resolved toolbar tools: the `tools` input if set, otherwise the provided/default config. */
1234
+ resolvedTools: _angular_core.Signal<readonly RichTextEditorTool[]>;
1235
+ /**
1236
+ * @internal Codec that (de)serializes `{{type:id}}` token chips. Installed by
1237
+ * `[etRichTextEditorTriggers]` or a render-only provider; `null` when the building-block
1238
+ * feature isn't used, in which case token markdown is treated as plain text.
1239
+ */
1240
+ tokenCodec: _angular_core.WritableSignal<RichTextEditorTokenCodec | null>;
983
1241
  shouldDisplayError: _angular_core.Signal<boolean>;
984
1242
  hasValue: _angular_core.Signal<boolean>;
985
1243
  describedBy: _angular_core.WritableSignal<string | null>;
@@ -990,10 +1248,32 @@ declare class RichTextEditorDirective implements FormValueControl<string>, FormF
990
1248
  boldActive: _angular_core.WritableSignal<boolean>;
991
1249
  italicActive: _angular_core.WritableSignal<boolean>;
992
1250
  strikeActive: _angular_core.WritableSignal<boolean>;
1251
+ underlineActive: _angular_core.WritableSignal<boolean>;
1252
+ codeActive: _angular_core.WritableSignal<boolean>;
993
1253
  unorderedListActive: _angular_core.WritableSignal<boolean>;
994
1254
  orderedListActive: _angular_core.WritableSignal<boolean>;
995
1255
  linkActive: _angular_core.WritableSignal<boolean>;
996
1256
  headingLevel: _angular_core.WritableSignal<number | null>;
1257
+ /** Whether the selection sits inside a table cell. Block tools (heading menu, lists) disable
1258
+ * themselves on it — a GFM table cell can only hold single-line inline content, so block
1259
+ * markup inside one would not survive serialization. */
1260
+ inTableCell: _angular_core.WritableSignal<boolean>;
1261
+ /** The heading (block-style) tool is unavailable where a heading can't apply: inside table
1262
+ * cells (no GFM form) and inside list items (a heading would not survive list serialization). */
1263
+ headingToolDisabled: _angular_core.Signal<boolean>;
1264
+ /**
1265
+ * @internal Inline marks queued for the next typed text while the selection is collapsed ("stored
1266
+ * marks"). `null` means "follow the caret"; a list means the next input is wrapped in exactly these.
1267
+ */
1268
+ pendingMarks: _angular_core.WritableSignal<InlineTag[] | null>;
1269
+ /**
1270
+ * @internal Characters claimed by the token-trigger system (set by `[etRichTextEditorTriggers]`).
1271
+ * Autoformat rules keyed on these characters never fire, so a `#` trigger keeps opening its
1272
+ * autocomplete instead of becoming a heading.
1273
+ */
1274
+ autoformatReservedChars: _angular_core.WritableSignal<readonly string[]>;
1275
+ /** @internal `true` while a token-trigger popup run is active — suspends all autoformat. */
1276
+ autoformatSuppressed: _angular_core.WritableSignal<boolean>;
997
1277
  /** @internal */
998
1278
  lastEmittedMarkdown: string | null;
999
1279
  constructor();
@@ -1003,58 +1283,318 @@ declare class RichTextEditorDirective implements FormValueControl<string>, FormF
1003
1283
  toggleBold(): void;
1004
1284
  toggleItalic(): void;
1005
1285
  toggleStrikethrough(): void;
1286
+ toggleUnderline(): void;
1287
+ toggleInlineCode(): void;
1288
+ /**
1289
+ * Runs markdown autoformat for a single typed character (called from `beforeinput`): a space may
1290
+ * convert a line-start prefix into a list/heading, a delimiter char may close an inline run into
1291
+ * its mark. Returns `true` when the character was consumed by a conversion.
1292
+ */
1293
+ handleAutoformat(data: string): boolean;
1294
+ consumePendingInsert(text: string): boolean;
1295
+ clearPendingMarks(): void;
1006
1296
  toggleUnorderedList(): void;
1007
1297
  toggleOrderedList(): void;
1008
1298
  toggleHeading(level: number): void;
1299
+ setHeading(level: number | null): void;
1009
1300
  setLink(href: string): void;
1010
1301
  promptForLink(): void;
1011
1302
  handleBackspace(): boolean;
1012
- /**
1013
- * @internal Extension seam for the follow-up `@`/`#` autocomplete: inserts an atomic inline
1014
- * node (a mention/placeholder token) at the caret, then re-syncs.
1015
- */
1303
+ pasteHtml(html: string): boolean;
1016
1304
  insertAtomicToken(node: Node): void;
1017
1305
  private serializeCleanHtml;
1306
+ private toggleMark;
1307
+ private reflectMarks;
1018
1308
  private runCommand;
1019
1309
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RichTextEditorDirective, never>;
1020
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RichTextEditorDirective, "[etRichTextEditor]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "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; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
1310
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RichTextEditorDirective, "[etRichTextEditor]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "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; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "tools": { "alias": "tools"; "required": false; "isSignal": true; }; "autoformat": { "alias": "autoformat"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
1021
1311
  }
1022
1312
 
1023
1313
  declare class RichTextEditorFloatingToolbarComponent {
1024
- protected dir: RichTextEditorDirective;
1025
- private document;
1026
- private renderer;
1027
- private destroyRef;
1028
- private host;
1029
- protected visible: _angular_core.WritableSignal<boolean>;
1030
- private activeRange;
1031
- private floatingReference;
1032
- private floatingCleanup;
1033
- private pointerSelectingInContent;
1314
+ private ownColorProvider;
1315
+ private contextColorProvider;
1316
+ private ownSurfaceProvider;
1317
+ private contextSurfaceProvider;
1318
+ /** The editor whose selection this toolbar formats (passed in — the toolbar is detached from the DOM). */
1319
+ editor: _angular_core.InputSignal<RichTextEditorDirective>;
1320
+ protected readonly TOOLS: {
1321
+ readonly BOLD: "bold";
1322
+ readonly ITALIC: "italic";
1323
+ readonly UNDERLINE: "underline";
1324
+ readonly STRIKE: "strike";
1325
+ readonly CODE: "code";
1326
+ readonly HEADING: "heading";
1327
+ readonly ALIGN: "align";
1328
+ readonly BULLETED_LIST: "bulletedList";
1329
+ readonly NUMBERED_LIST: "numberedList";
1330
+ readonly LINK: "link";
1331
+ readonly TABLE: "table";
1332
+ readonly DIVIDER: "divider";
1333
+ };
1334
+ protected readonly TOOL_BUTTONS: Partial<Record<_ethlete_components.RichTextEditorTool, _ethlete_components.RichTextEditorToolButton>>;
1335
+ /** The inline marks from the editor's configured tools — headings/lists stay in the static toolbar. */
1336
+ protected inlineTools: _angular_core.Signal<_ethlete_components.RichTextEditorTool[]>;
1034
1337
  constructor();
1035
- private selectableRange;
1036
- private finishContentPointerSelection;
1037
- private evaluate;
1038
- private reposition;
1039
- private start;
1040
- private updatePosition;
1041
- private hide;
1042
- private stop;
1043
1338
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RichTextEditorFloatingToolbarComponent, never>;
1044
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorFloatingToolbarComponent, "et-rich-text-editor-floating-toolbar", never, {}, {}, never, never, true, never>;
1339
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorFloatingToolbarComponent, "et-rich-text-editor-floating-toolbar", never, { "editor": { "alias": "editor"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: {}; outputs: {}; }]>;
1340
+ }
1341
+
1342
+ /**
1343
+ * Optional codec the base editor uses to (de)serialize `{{type:id}}` token chips. Installed
1344
+ * either by `[etRichTextEditorTriggers]` (interactive authoring) or by
1345
+ * `provideRichTextEditorTokenRendering` (display/read-only rendering). Absent → the editor
1346
+ * treats token markdown as plain text.
1347
+ */
1348
+ declare const RICH_TEXT_EDITOR_TOKEN_CODEC: InjectionToken<RichTextEditorTokenCodec>;
1349
+
1350
+ /**
1351
+ * The caret-anchored autocomplete list opened by `[etRichTextEditorTriggers]`. Purely
1352
+ * presentational: it renders items / loading / error / empty states and reports selection and
1353
+ * hover. Focus stays in the editor's `contenteditable` — the active row is driven by
1354
+ * `aria-activedescendant`, and pointer events are `preventDefault`ed so mousedown never steals it.
1355
+ *
1356
+ * Mirrors `et-menu`: neutral surface chrome, an animated block-size resize as the list changes,
1357
+ * and an error line in the app's error color theme.
1358
+ */
1359
+ declare class RichTextEditorTokenPopupComponent {
1360
+ private ownColorProvider;
1361
+ private contextColorProvider;
1362
+ private ownSurfaceProvider;
1363
+ private contextSurfaceProvider;
1364
+ items: _angular_core.InputSignal<RichTextEditorTriggerItem[]>;
1365
+ activeIndex: _angular_core.InputSignal<number>;
1366
+ loading: _angular_core.InputSignal<boolean>;
1367
+ error: _angular_core.InputSignal<string | null>;
1368
+ emptyLabel: _angular_core.InputSignal<string>;
1369
+ listboxId: _angular_core.InputSignal<string>;
1370
+ selectItem: _angular_core.OutputEmitterRef<RichTextEditorTriggerItem>;
1371
+ activateItem: _angular_core.OutputEmitterRef<number>;
1372
+ private bodyElement;
1373
+ /** The app's error color theme, or `null` when none is registered (error text stays neutral). */
1374
+ protected errorColorTheme: ColorTheme | null;
1375
+ constructor();
1376
+ private resolveErrorTheme;
1377
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RichTextEditorTokenPopupComponent, never>;
1378
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorTokenPopupComponent, "et-rich-text-editor-token-popup", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "activeIndex": { "alias": "activeIndex"; "required": true; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "emptyLabel": { "alias": "emptyLabel"; "required": false; "isSignal": true; }; "listboxId": { "alias": "listboxId"; "required": true; "isSignal": true; }; }, { "selectItem": "selectItem"; "activateItem": "activateItem"; }, never, never, true, [{ directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideSurfaceDirective; inputs: {}; outputs: {}; }]>;
1045
1379
  }
1046
1380
 
1381
+ /**
1382
+ * Renders stored `{{type:id}}` tokens as labelled chips in a display/read-only editor without
1383
+ * pulling in the interactive trigger machinery (detection, popup, floating-ui). Provide it on the
1384
+ * component/route that shows editor values, passing the same triggers used to author them (only
1385
+ * `type` and `resolveItem` are consulted here).
1386
+ *
1387
+ * ```ts
1388
+ * providers: [provideRichTextEditorTokenRendering([
1389
+ * createRichTextEditorTrigger({ char: '#', type: 'block', items: [], resolveItem: id => byId(id) }),
1390
+ * ])]
1391
+ * ```
1392
+ */
1393
+ declare const provideRichTextEditorTokenRendering: (triggers: readonly RichTextEditorTrigger[]) => Provider[];
1394
+
1395
+ /**
1396
+ * Registers the opt-in `'align'` tool (block text-align: left / center / right / justify). Add to a
1397
+ * component/route's providers and include `'align'` in the editor's `tools`. Alignment persists as a
1398
+ * native `text-align` style on the block (Markdown has no alignment syntax). Tree-shakes when unused.
1399
+ */
1400
+ declare const provideRichTextEditorAlignmentTool: () => Provider;
1401
+
1402
+ declare const TEXT_ALIGNS: readonly ["left", "center", "right", "justify"];
1403
+ type TextAlign = (typeof TEXT_ALIGNS)[number];
1404
+ /**
1405
+ * The opt-in alignment tool's toolbar control: a menu of block alignments (left/center/right/justify).
1406
+ * Alignment has no Markdown form, so it is persisted as a native `text-align` style on the block (or
1407
+ * table cell) and round-tripped as raw HTML by the Markdown converter. Registered via
1408
+ * `provideRichTextEditorAlignmentTool`.
1409
+ */
1410
+ declare class RichTextEditorAlignToolComponent {
1411
+ private renderer;
1412
+ private document;
1413
+ editor: _angular_core.InputSignal<RichTextEditorDirective>;
1414
+ protected readonly OPTIONS: {
1415
+ value: TextAlign;
1416
+ label: string;
1417
+ icon: string;
1418
+ }[];
1419
+ /** Alignment of the caret's block/cell — kept live so the trigger icon and menu stay in sync. */
1420
+ protected current: _angular_core.WritableSignal<"left" | "right" | "center" | "justify">;
1421
+ protected currentIcon: _angular_core.Signal<string>;
1422
+ /** Also locked inside lists: `text-align` on a list has no Markdown form and would not survive
1423
+ * serialization, so the tool disables there instead of silently losing the alignment. */
1424
+ protected disabled: _angular_core.Signal<boolean>;
1425
+ constructor();
1426
+ protected select(value: unknown): void;
1427
+ private readAlign;
1428
+ /**
1429
+ * The elements alignment applies to: inside a table, the full columns the selection touches
1430
+ * (GFM table alignment is per column — the serializer reads it from the header cells, so a
1431
+ * single aligned cell would not survive), otherwise the root-level blocks. Lists are skipped —
1432
+ * their alignment has no Markdown form. Read-only — returns `null` when the selection is over
1433
+ * loose top-level text with no block to align (see {@link wrapLooseContent}).
1434
+ */
1435
+ private targetBlocks;
1436
+ /** Every cell of the columns the given cells belong to, so alignment applies column-wide. */
1437
+ private expandToColumns;
1438
+ /** Wraps the loose top-level nodes the selection touches in a paragraph (the editor doesn't wrap
1439
+ * the first typed line until Enter) so there is a block to align. Mutates — call only on action. */
1440
+ private wrapLooseContent;
1441
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RichTextEditorAlignToolComponent, never>;
1442
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorAlignToolComponent, "et-rich-text-editor-align-tool", never, { "editor": { "alias": "editor"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
1443
+ }
1444
+
1445
+ /**
1446
+ * Registers the opt-in `'table'` tool (insert via a grid-size picker, plus row/column editing). Add
1447
+ * to a component/route's providers and include `'table'` in the editor's `tools`. Because the tool
1448
+ * component and its table DOM operations are only referenced from here, they tree-shake away for
1449
+ * editors that don't provide it.
1450
+ */
1451
+ declare const provideRichTextEditorTableTool: () => Provider;
1452
+
1453
+ /** Where the caret currently sits inside a table, if anywhere. */
1454
+ type TableContext = {
1455
+ table: HTMLTableElement;
1456
+ row: HTMLTableRowElement;
1457
+ cell: HTMLTableCellElement;
1458
+ rowIndex: number;
1459
+ cellIndex: number;
1460
+ };
1461
+
1462
+ /**
1463
+ * The opt-in table tool's toolbar control: a menu that shows a grid-size picker to insert a table,
1464
+ * or row/column actions when the caret is inside one. Registered via `provideRichTextEditorTableTool`,
1465
+ * so all of this (and the table DOM ops it imports) only ships when a consumer opts in.
1466
+ */
1467
+ declare class RichTextEditorTableToolComponent {
1468
+ private renderer;
1469
+ editor: _angular_core.InputSignal<RichTextEditorDirective>;
1470
+ private ops;
1471
+ protected readonly pickerRows: number[];
1472
+ protected readonly pickerCols: number[];
1473
+ protected hoverRows: _angular_core.WritableSignal<number>;
1474
+ protected hoverCols: _angular_core.WritableSignal<number>;
1475
+ protected sizeLabel: _angular_core.Signal<string>;
1476
+ /** Table context at the caret, recomputed when the menu opens (via `refreshContext`). */
1477
+ protected context: _angular_core.WritableSignal<TableContext | null>;
1478
+ protected disabled: _angular_core.Signal<boolean>;
1479
+ protected refreshContext(): void;
1480
+ protected hover(row: number, col: number): void;
1481
+ protected insert(row: number, col: number): void;
1482
+ protected addRow(position: 'above' | 'below'): void;
1483
+ protected addColumn(position: 'left' | 'right'): void;
1484
+ protected removeRow(): void;
1485
+ protected removeColumn(): void;
1486
+ protected removeTable(): void;
1487
+ private mutate;
1488
+ private currentContext;
1489
+ /** An empty paragraph (`<p><br></p>`) the caret can step into when exiting a table. */
1490
+ private emptyParagraph;
1491
+ /** The editor-root-level block the caret sits in, so a new table lands after it (not inside it). */
1492
+ private caretBlock;
1493
+ /** Refocuses the editor and drops the caret into `cell` (or leaves focus alone when it is gone). */
1494
+ private restoreCaret;
1495
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RichTextEditorTableToolComponent, never>;
1496
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorTableToolComponent, "et-rich-text-editor-table-tool", never, { "editor": { "alias": "editor"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
1497
+ }
1498
+
1499
+ /** Config for {@link createRichTextEditorTriggerWithQuery}. */
1500
+ type RichTextEditorQueryTriggerConfig<TCreator extends AnyQueryCreator> = {
1501
+ /** The character that opens the popup at a word boundary (e.g. `'@'`). */
1502
+ char: string;
1503
+ /** Namespaces the inserted token (`{{type:id}}`). Unique per editor; matches `[a-z][a-z0-9-]*`. */
1504
+ type: string;
1505
+ /**
1506
+ * The query creator to run (e.g. from `createGetQuery`). Like a query stack, the query is created
1507
+ * **once** and re-executes reactively — never per keystroke.
1508
+ */
1509
+ queryCreator: TCreator;
1510
+ /**
1511
+ * Builds the request args from the current query text. Runs reactively (like `withArgs`): reading
1512
+ * `search()` re-executes the query as the user types. Return `null` to skip a request (e.g. for an
1513
+ * empty query) so the popup shows no results without hitting the backend.
1514
+ */
1515
+ args: (search: Signal<string>) => RequestArgs<QueryArgsOf<TCreator>> | null;
1516
+ /** Maps a successful query response to popup items. */
1517
+ toItems: (response: ResponseType<QueryArgsOf<TCreator>>) => RichTextEditorTriggerItem[];
1518
+ /** Resolves a stored token id to a chip label (see the generic factory's `resolveItem`). */
1519
+ resolveItem?: RichTextEditorTriggerItemResolver;
1520
+ /** Turns a query failure into the popup's error text. Defaults to the first error message. */
1521
+ toErrorMessage?: (error: QueryErrorResponse) => string;
1522
+ /** Keep the popup open when the query contains spaces. @default false */
1523
+ allowSpaces?: boolean;
1524
+ /** Minimum query length before items are requested. @default 0 */
1525
+ minQueryLength?: number;
1526
+ /** Debounce applied before the query text is written and results are read, in ms. @default 150 */
1527
+ debounceTime?: number;
1528
+ };
1529
+ /**
1530
+ * A query-aware wrapper around {@link createRichTextEditorTrigger} that removes the manual wiring.
1531
+ * Mirroring `createQueryStack`, it takes the `queryCreator` plus a reactive `args` builder: the
1532
+ * query is created once and re-executes as the user types (the factory owns the search signal and
1533
+ * the `withArgs` feature). It maps the response to items and surfaces a query failure as the popup's
1534
+ * error state.
1535
+ *
1536
+ * Call it from a field initializer / constructor (injection context), the same place you'd create a
1537
+ * query or a query stack.
1538
+ *
1539
+ * ```ts
1540
+ * createRichTextEditorTriggerWithQuery({
1541
+ * char: '@',
1542
+ * type: 'mention',
1543
+ * queryCreator: searchUsers,
1544
+ * args: (search) => (search() ? { queryParams: { q: search() } } : null),
1545
+ * toItems: (res) => res.items.map((u) => ({ id: u.id, label: u.name })),
1546
+ * resolveItem: (id) => userById(id),
1547
+ * })
1548
+ * ```
1549
+ */
1550
+ declare const createRichTextEditorTriggerWithQuery: <TCreator extends AnyQueryCreator>(config: RichTextEditorQueryTriggerConfig<TCreator>) => RichTextEditorTrigger;
1551
+
1552
+ /**
1553
+ * Opt-in building-block autocomplete. Spread this into a component's `imports` alongside
1554
+ * `RICH_TEXT_EDITOR_IMPORTS` when the editor needs `#`/`@`/… triggers. Kept separate from
1555
+ * `RICH_TEXT_EDITOR_IMPORTS` so editors that don't use triggers tree-shake the whole feature.
1556
+ */
1557
+ declare const RICH_TEXT_EDITOR_TRIGGERS_IMPORTS: readonly [typeof RichTextEditorTriggersDirective];
1558
+
1047
1559
  declare class RichTextEditorComponent {
1048
1560
  protected dir: RichTextEditorDirective;
1049
1561
  private document;
1050
- private editable;
1562
+ protected editable: _angular_core.Signal<ElementRef<HTMLElement>>;
1563
+ protected readonly TOOLS: {
1564
+ readonly BOLD: "bold";
1565
+ readonly ITALIC: "italic";
1566
+ readonly UNDERLINE: "underline";
1567
+ readonly STRIKE: "strike";
1568
+ readonly CODE: "code";
1569
+ readonly HEADING: "heading";
1570
+ readonly ALIGN: "align";
1571
+ readonly BULLETED_LIST: "bulletedList";
1572
+ readonly NUMBERED_LIST: "numberedList";
1573
+ readonly LINK: "link";
1574
+ readonly TABLE: "table";
1575
+ readonly DIVIDER: "divider";
1576
+ };
1577
+ protected readonly HEADING_OPTIONS: readonly {
1578
+ level: number | null;
1579
+ label: string;
1580
+ icon: string;
1581
+ }[];
1582
+ private registeredTools;
1583
+ /** Every renderable tool by token: the static base buttons plus any opt-in tools provided via DI. */
1584
+ protected toolDefs: _angular_core.Signal<Map<string, RichTextEditorToolDefinition>>;
1585
+ /** The current block style option (used for the heading-menu trigger icon + label). */
1586
+ private currentHeading;
1587
+ protected currentHeadingLabel: _angular_core.Signal<string>;
1588
+ protected currentHeadingIcon: _angular_core.Signal<string>;
1051
1589
  constructor();
1052
1590
  protected syncValueFromDom(): void;
1053
- protected interceptBackspaceKey(event: KeyboardEvent): void;
1591
+ protected selectHeading(level: unknown): void;
1592
+ protected interceptEditorKeydown(event: KeyboardEvent): void;
1593
+ protected interceptPaste(event: ClipboardEvent): void;
1054
1594
  protected interceptFormattingCommand(event: InputEvent): void;
1055
1595
  private renderExternalValue;
1056
1596
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RichTextEditorComponent, never>;
1057
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorComponent, "et-rich-text-editor", never, {}, {}, never, never, true, [{ directive: typeof RichTextEditorDirective; inputs: { "value": "value"; "disabled": "disabled"; "readonly": "readonly"; "hidden": "hidden"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "placeholder": "placeholder"; }; outputs: { "valueChange": "valueChange"; "touchedChange": "touchedChange"; }; }]>;
1597
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorComponent, "et-rich-text-editor", never, {}, {}, never, never, true, [{ directive: typeof RichTextEditorDirective; inputs: { "value": "value"; "disabled": "disabled"; "readonly": "readonly"; "hidden": "hidden"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; "placeholder": "placeholder"; "tools": "tools"; "autoformat": "autoformat"; }; outputs: { "valueChange": "valueChange"; "touchedChange": "touchedChange"; }; }, { directive: typeof RichTextEditorFloatingToolbarDirective; inputs: {}; outputs: {}; }]>;
1058
1598
  }
1059
1599
 
1060
1600
  declare const RICH_TEXT_EDITOR_IMPORTS: readonly [typeof RichTextEditorComponent, typeof RichTextEditorDirective];
@@ -1976,6 +2516,11 @@ declare const provideIcons: (...icons: IconDefinition[]) => {
1976
2516
  useValue: Record<string, IconDefinition>;
1977
2517
  };
1978
2518
 
2519
+ declare const ALIGN_LEFT_ICON: IconDefinition;
2520
+ declare const ALIGN_CENTER_ICON: IconDefinition;
2521
+ declare const ALIGN_RIGHT_ICON: IconDefinition;
2522
+ declare const ALIGN_JUSTIFY_ICON: IconDefinition;
2523
+
1979
2524
  declare const ARROW_OUT_UP_RIGHT_ICON: IconDefinition;
1980
2525
 
1981
2526
  declare const ARROW_RIGHT_ICON: IconDefinition;
@@ -1986,6 +2531,8 @@ declare const CHEVRON_ICON: IconDefinition;
1986
2531
 
1987
2532
  declare const CLIPBOARD_CHECK_ICON: IconDefinition;
1988
2533
 
2534
+ declare const CODE_ICON: IconDefinition;
2535
+
1989
2536
  declare const FILE_ICON: IconDefinition;
1990
2537
 
1991
2538
  declare const FLOPPY_DISK_ICON: IconDefinition;
@@ -2035,6 +2582,8 @@ declare const LIST_NUMBERED_ICON: IconDefinition;
2035
2582
 
2036
2583
  declare const LOCK_ICON: IconDefinition;
2037
2584
 
2585
+ declare const PARAGRAPH_ICON: IconDefinition;
2586
+
2038
2587
  declare const PENCIL_ICON: IconDefinition;
2039
2588
 
2040
2589
  declare const PLUS_ICON: IconDefinition;
@@ -2043,10 +2592,14 @@ declare const ROTATE_RIGHT_ICON: IconDefinition;
2043
2592
 
2044
2593
  declare const STRIKETHROUGH_ICON: IconDefinition;
2045
2594
 
2595
+ declare const TABLE_ICON: IconDefinition;
2596
+
2046
2597
  declare const TIMES_ICON: IconDefinition;
2047
2598
 
2048
2599
  declare const TRIANGLE_EXCLAMATION_ICON: IconDefinition;
2049
2600
 
2601
+ declare const UNDERLINE_ICON: IconDefinition;
2602
+
2050
2603
  declare const UPLOAD_ICON: IconDefinition;
2051
2604
 
2052
2605
  declare const ICON_IMPORTS: readonly [typeof IconDirective];
@@ -2723,8 +3276,9 @@ declare class MenuCheckboxGroupComponent {
2723
3276
  }
2724
3277
 
2725
3278
  declare class MenuCheckboxItemComponent {
3279
+ icon: _angular_core.InputSignal<string | null>;
2726
3280
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuCheckboxItemComponent, never>;
2727
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuCheckboxItemComponent, "et-menu-checkbox-item", never, {}, {}, never, ["*"], true, [{ directive: typeof MenuItemDirective; inputs: { "closeOnActivate": "closeOnActivate"; }; outputs: { "activate": "activate"; }; }, { directive: typeof MenuSelectionItemDirective; inputs: { "value": "value"; "checked": "checked"; "indeterminate": "indeterminate"; "touched": "touched"; "disabled": "disabled"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "checkedChange": "checkedChange"; "indeterminateChange": "indeterminateChange"; "touchedChange": "touchedChange"; }; }]>;
3281
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuCheckboxItemComponent, "et-menu-checkbox-item", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof MenuItemDirective; inputs: { "closeOnActivate": "closeOnActivate"; }; outputs: { "activate": "activate"; }; }, { directive: typeof MenuSelectionItemDirective; inputs: { "value": "value"; "checked": "checked"; "indeterminate": "indeterminate"; "touched": "touched"; "disabled": "disabled"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "checkedChange": "checkedChange"; "indeterminateChange": "indeterminateChange"; "touchedChange": "touchedChange"; }; }]>;
2728
3282
  }
2729
3283
 
2730
3284
  declare const MENU_ERROR_CODES: {
@@ -2774,8 +3328,9 @@ declare class MenuRadioGroupComponent {
2774
3328
  }
2775
3329
 
2776
3330
  declare class MenuRadioItemComponent {
3331
+ icon: _angular_core.InputSignal<string | null>;
2777
3332
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuRadioItemComponent, never>;
2778
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuRadioItemComponent, "et-menu-radio-item", never, {}, {}, never, ["*"], true, [{ directive: typeof MenuItemDirective; inputs: { "closeOnActivate": "closeOnActivate"; }; outputs: { "activate": "activate"; }; }, { directive: typeof MenuSelectionItemDirective; inputs: { "value": "value"; "checked": "checked"; "touched": "touched"; "disabled": "disabled"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "checkedChange": "checkedChange"; "touchedChange": "touchedChange"; }; }]>;
3333
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuRadioItemComponent, "et-menu-radio-item", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof MenuItemDirective; inputs: { "closeOnActivate": "closeOnActivate"; }; outputs: { "activate": "activate"; }; }, { directive: typeof MenuSelectionItemDirective; inputs: { "value": "value"; "checked": "checked"; "touched": "touched"; "disabled": "disabled"; "invalid": "invalid"; "errors": "errors"; "required": "required"; "name": "name"; }; outputs: { "checkedChange": "checkedChange"; "touchedChange": "touchedChange"; }; }]>;
2779
3334
  }
2780
3335
 
2781
3336
  declare class MenuSeparatorComponent {
@@ -2788,22 +3343,13 @@ declare class MenuComponent {
2788
3343
  private contextColorProvider;
2789
3344
  protected menu: MenuDirective | null;
2790
3345
  protected errorColorTheme: _ethlete_core.ColorTheme;
2791
- private prefersReducedMotion;
2792
- private elementRef;
2793
- private destroyRef;
2794
- private renderer;
2795
3346
  private headerElement;
2796
3347
  private bodyElement;
2797
- private headerDimensions;
2798
- private bodyDimensions;
2799
3348
  protected search: _angular_core.Signal<_ethlete_components.MenuSearchDirective | null>;
2800
3349
  protected searchLoading: _angular_core.Signal<boolean>;
2801
3350
  protected searchError: _angular_core.Signal<string | null>;
2802
3351
  protected searchErrorId: string;
2803
- private lastBlockSize;
2804
- private resizeAnimation;
2805
3352
  constructor();
2806
- private animateToCurrentBlockSize;
2807
3353
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuComponent, never>;
2808
3354
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuComponent, "et-menu", never, {}, {}, never, ["input[etMenuSearch]", "*"], true, [{ directive: typeof MenuPanelDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.ProvideColorDirective; inputs: {}; outputs: {}; }, { directive: typeof _ethlete_core.AutoSurfaceDirective; inputs: {}; outputs: {}; }]>;
2809
3355
  }
@@ -6075,5 +6621,5 @@ declare const TOOLTIP_ERROR_CODES: {
6075
6621
 
6076
6622
  declare const TOOLTIP_IMPORTS: readonly [typeof TooltipDirective, typeof TooltipComponent];
6077
6623
 
6078
- export { ARROW_OUT_UP_RIGHT_ICON, ARROW_RIGHT_ICON, BOLD_ICON, BUTTON_ICON_ALIGNMENTS, BUTTON_IMPORTS, BUTTON_SIZES, BUTTON_SPINNER_CONFIG, BUTTON_TYPES, BUTTON_VARIANTS, BrandLoaderComponent, ButtonComponent, ButtonDirective, ButtonStylesDirective, CHECKBOX_IMPORTS, CHEVRON_ICON, CHOICE_FIELD_IMPORTS, CLIPBOARD_CHECK_ICON, CheckboxComponent, CheckboxDirective, CheckboxGroupComponent, CheckboxOptionComponent, ChoiceFieldComponent, DAILYMOTION_PLAYER_TOKEN, DEFAULT_BREAKPOINTS, DEFAULT_ICON_VARIANT, DEFAULT_NOTIFICATION_MANAGER_CONFIG, DEFAULT_PIP_WINDOW_CONFIG, DEFAULT_STREAM_PLAYER_STATE, DROPZONE_ENTRY_STATUSES, DROPZONE_ERROR_CODES, DROPZONE_FILES_ERROR_KIND, DROPZONE_FILE_CONSTRAINTS, DROPZONE_FILE_REJECTION_REASONS, DROPZONE_IMPORTS, DailymotionPlayerComponent, DailymotionPlayerDirective, DailymotionPlayerParamsDirective, DailymotionPlayerSlotComponent, DescriptionComponent, DropzoneComponent, DropzoneDirective, FACEBOOK_PLAYER_TOKEN, FILE_ICON, FLOPPY_DISK_ICON, FOCUS_FRAME_ICON, FORM_FIELD_APPEARANCES, FORM_FIELD_CONTROL_TYPES, FORM_FIELD_ERROR_CODES, FORM_FIELD_FILLS, FORM_FIELD_IMPORTS, FORM_FIELD_LABEL_MODES, FORM_FIELD_SIZES, FORM_FIELD_TOKEN, FabComponent, FacebookPlayerComponent, FacebookPlayerDirective, FacebookPlayerParamsDirective, FacebookPlayerSlotComponent, FocusRingDirective, FormErrorComponent, FormFieldComponent, FormFieldDirective, GRID_2X2_ICON, GRID_ERROR_CODES, GRID_TOKEN, GridComponent, GridDebugComponent, GridDirective, GridDragDirective, GridImports, 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, INPUT_IMPORTS, INPUT_TEXT_ALIGNMENTS, INPUT_TYPES, ITALIC_ICON, IconButtonComponent, IconDirective, InputComponent, InputDirective, InputPrefixDirective, InputSuffixDirective, KICK_PLAYER_TOKEN, KickPlayerComponent, KickPlayerDirective, KickPlayerParamsDirective, KickPlayerSlotComponent, LINK_ICON, LIST_BULLETED_ICON, LIST_NUMBERED_ICON, LOCK_ICON, LabelDirective, MENU_ERROR_CODES, MENU_IMPORTS, MENU_ITEM_VARIANTS, MENU_SELECTION_GROUP_MULTIPLE, MENU_SELECTION_GROUP_TOKEN, MENU_SELECTION_ITEM_KIND, MenuCheckboxGroupComponent, MenuCheckboxItemComponent, MenuComponent, MenuContextTriggerDirective, MenuDirective, MenuGroupLabelComponent, MenuItemComponent, MenuItemDirective, MenuItemShortcutComponent, MenuPanelDirective, MenuRadioGroupComponent, MenuRadioItemComponent, MenuSearchDirective, MenuSelectionGroupDirective, MenuSelectionItemDirective, MenuSeparatorComponent, MenuSurfaceDirective, MenuTriggerDirective, NAV_TABS_TOKEN, NOTIFICATION_ERROR_CODES, NOTIFICATION_IMPORTS, NOTIFICATION_STACK_CONTEXT_TOKEN, NOTIFICATION_STATUS, NavTabImports, NavTabLinkComponent, NavTabLinkDirective, NavTabsComponent, NavTabsDirective, NavTabsOutletComponent, NavTabsOutletDirective, NotificationActionDirective, NotificationComponent, NotificationDirective, NotificationDismissDirective, NotificationItemDirective, NotificationStackDirective, 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, OverlayAnchorDirective, OverlayBackOrCloseDirective, OverlayBodyComponent, OverlayCloseDirective, OverlayContainerComponent, OverlayDirective, OverlayFooterDirective, OverlayHeaderDirective, OverlayHeaderTemplateDirective, OverlayMainDirective, OverlayOriginCloneComponent, OverlayRouteHeaderTemplateOutletComponent, OverlayRouterLinkDirective, OverlayRouterOutletComponent, OverlayRouterOutletDisabledTemplateDirective, OverlaySharedRouteTemplateDirective, OverlaySharedRouteTemplateOutletComponent, OverlaySidebarComponent, OverlaySidebarPageComponent, OverlaySurfaceDirective, OverlayTitleDirective, OverlayTriggerDirective, PENCIL_ICON, PIP_CHROME_REF_TOKEN, PIP_ENTRY_TOKEN, PIP_WINDOW_ASPECT_RATIO_TOKEN, PLUS_ICON, PipBackDirective, PipBringBackDirective, PipCellDirective, PipCloseDirective, PipCollapseOverlayDirective, PipGridToggleDirective, PipPlayerComponent, PipSlotPlaceholderComponent, PipStageDirective, PipTitleBarDirective, PipTitleBarTemplateDirective, PipWindowComponent, PipWindowParamsDirective, ProgressBarComponent, QueryParamOverlayLinkDirective, RICH_TEXT_EDITOR_IMPORTS, ROTATE_RIGHT_ICON, RadioComponent, RadioGroupComponent, RichTextEditorComponent, RichTextEditorDirective, RichTextEditorFloatingToolbarComponent, SCROLLABLE_ERROR_CODES, SCROLLABLE_IMPORTS, SELECTION_LIST_MULTIPLE, SELECTION_LIST_TOKEN, SIDEBAR_OVERLAY_CONFIG, SIDEBAR_OVERLAY_TOKEN, SNAP_HYSTERESIS, SOOP_PLAYER_TOKEN, SPLIT_BUTTON_ERROR_CODES, STREAM_CONSENT_TOKEN, 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_USER_CONSENT_PROVIDER_TOKEN, STRIKETHROUGH_ICON, SWITCH_IMPORTS, ScrollableActiveChildDirective, ScrollableButtonsDirective, ScrollableComponent, ScrollableDarkenDirective, ScrollableDirective, ScrollableDragDirective, ScrollableIgnoreChildDirective, ScrollableLoadingTemplateDirective, ScrollableMasksDirective, ScrollableNavigationDirective, ScrollableSnapDirective, SegmentedButtonComponent, SegmentedButtonGroupComponent, SelectionListControlDirective, SelectionListDirective, SelectionOptionDirective, SoopPlayerComponent, SoopPlayerDirective, SoopPlayerParamsDirective, SoopPlayerSlotComponent, SpinnerComponent, SplitButtonActionDirective, SplitButtonComponent, SplitButtonDirective, SplitButtonTriggerDirective, StreamConsentAcceptDirective, StreamConsentComponent, StreamConsentDirective, StreamImports, StreamPipChromeComponent, StreamPlayerErrorComponent, StreamPlayerErrorDirective, StreamPlayerLoadingComponent, StreamPlayerSlotDirective, SwitchComponent, SwitchDirective, TAB_BAR_FITS, TAB_BAR_ORIENTATIONS, TAB_BAR_TOKEN, TAB_BAR_TRIGGER_TOKEN, TAB_BAR_VARIANTS, TAB_ERROR_CODES, TAB_GROUP_TOKEN, TAB_PANEL_TOKEN, TAB_SIZES, TIKTOK_PLAYER_TOKEN, TIMES_ICON, TOGGLETIP_ERROR_CODES, TOGGLETIP_IMPORTS, TOOLTIP_ERROR_CODES, TOOLTIP_IMPORTS, TRIANGLE_EXCLAMATION_ICON, TWITCH_PLAYER_TOKEN, TabBarDirective, TabBarTriggerDirective, TabBarUnderlineDirective, TabComponent, TabGroupComponent, TabGroupDirective, TabImports, TabLabelDirective, TabPanelDirective, TabTriggerDirective, TextButtonComponent, TikTokPlayerComponent, TikTokPlayerDirective, TikTokPlayerParamsDirective, TikTokPlayerSlotComponent, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipTriggerDirective, TooltipComponent, TooltipDirective, TwitchPlayerComponent, TwitchPlayerDirective, TwitchPlayerParamsDirective, TwitchPlayerSlotComponent, 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, buildAnchoredRuntimePositionStrategy, centeredOverlayStrategy, clampPosition, clampResizeRect, cleanupFullscreenAnimation, cleanupFullscreenAnimationStyles, compactLayout, computeGeometry, computeGridHeight, createAutoScroller, createDefaultDropzoneArgs, createDropzoneUpload, createExistingDropzoneEntry, createFileDropzoneEntry, createGridAdapter, createNotificationRef, createOverlayOpener, createOverlayRef, createOverlayStrategyController, createPipChromeAnimations, createPipChromeState, createStreamConfig, createStreamPlayerSlot, defaultDropzoneRejectionMessage, defineOverlay, defineQueryParamOverlay, deserializeGridLayout, dialogOverlayStrategy, disposeDropzoneEntry, dropzoneFiles, enableDragToDismiss, findCollision, findNextRelevantHtmlElement, findScrollableAncestor, formatFileSize, fromGridPosition, fullScreenDialogOverlayStrategy, getClosestOverlay, getOriginCoordinatesAndDimensions, hysteresisRound, iconRegistryKey, injectAnchoredDialogStrategy, injectAnchoredDialogStrategyDefaults, injectBottomSheetStrategy, injectBottomSheetStrategyDefaults, injectDialogStrategy, injectDialogStrategyDefaults, injectFormSupport, injectFullscreenDialogStrategy, injectFullscreenDialogStrategyDefaults, injectGridConfig, injectLeftSheetStrategy, injectLeftSheetStrategyDefaults, injectNotificationManager, injectNotificationManagerConfig, injectOverlayManager, injectOverlayRouter, injectOverlayScrollBlocker, injectPipChromeManager, injectPipManager, injectPipSlotPlaceholderConfig, injectRightSheetStrategy, injectRightSheetStrategyDefaults, injectSidebarOverlay, injectStreamConfig, injectStreamConsentConfig, injectStreamManager, injectStreamPlayerErrorConfig, injectStreamPlayerLoadingConfig, injectStreamScriptLoader, injectStreamUserConsentProvider, injectTopSheetStrategy, injectTopSheetStrategyDefaults, isFileAccepted, isHtmlElement, isPointerEvent, isTouchEvent, itemsCollide, leftSheetOverlayStrategy, mapLayoutToBreakpoint, mergeOverlayBreakpointConfigs, mergeOverlayConfigs, pixelRectsEqual, positionToPixelRect, positionsEqual, projectDragCell, provideAnchoredDialogStrategy, provideAnchoredDialogStrategyDefaults, provideBottomSheetStrategy, provideBottomSheetStrategyDefaults, provideDialogStrategy, provideDialogStrategyDefaults, provideFormSupport, provideFullscreenDialogStrategy, provideFullscreenDialogStrategyDefaults, provideGridConfig, provideIcons, provideLeftSheetStrategy, provideLeftSheetStrategyDefaults, provideNotificationManager, provideNotificationManagerConfig, provideNotificationManagerInstance, provideOverlay, provideOverlayManager, provideOverlayRouter, provideOverlayRouterConfig, provideOverlayRouterService, provideOverlayScrollBlocker, providePipChromeManager, providePipManager, providePipSlotPlaceholderConfig, provideRightSheetStrategy, provideRightSheetStrategyDefaults, provideSidebarOverlay, provideSidebarOverlayConfig, provideSidebarOverlayService, provideStreamConfig, provideStreamConsentConfig, provideStreamManager, provideStreamPlayerErrorConfig, provideStreamPlayerLoadingConfig, provideTopSheetStrategy, provideTopSheetStrategyDefaults, resizeSpanBounds, resolveBreakpoint, resolveClosestOverlay, resolveCollisions, rightSheetOverlayStrategy, rowsToPixelHeight, serializeGridLayout, snapResizeSpan, spanHeight, spanWidth, startFullscreenEnterAnimation, startFullscreenLeaveAnimation, toGridPosition, topSheetOverlayStrategy, transformingBottomSheetToDialogOverlayStrategy, transformingFullScreenDialogToDialogOverlayStrategy, transformingFullScreenDialogToRightSheetOverlayStrategy };
6079
- export type { AnchoredDialogOverlayStrategyOptions, AnchoredOverlayStrategyOptions, AnchoredPositionOptions, AnyDropzoneUploadConfig, AutoPlaceOptions, AutoScrollPointer, AutoScroller, ButtonIconAlignment, ButtonSize, CenteredOverlayStrategyOptions, ClampPositionOptions, CompactLayoutOptions, CreateExistingDropzoneEntryOptions, CreateFileDropzoneEntryOptions, DragToDismissContext, DragToDismissRef, DropzoneEntry, DropzoneEntrySource, DropzoneEntryStatus, DropzoneExistingFileInfo, DropzoneFileConstraints, DropzoneFileRejection, DropzoneFileRejectionReason, DropzoneFileValidationChannel, DropzoneUploadConfig, EthleteIconNameRegistry, EthleteIconVariantRegistry, FacebookVideoPlayer, FacebookWindow, FindCollisionOptions, FormFieldAppearance, FormFieldControl, FormFieldControlType, FormFieldDirectiveBase, FormFieldFill, FormFieldLabelMode, FormFieldSize, FullscreenAnimationCancellable, FullscreenAnimationDeps, FullscreenAnimationState, GridAdapter, GridBreakpointConfig, GridBreakpointName, GridComponentRegistration, GridConfig, GridGeometry, GridItemActionsComponent, GridItemConfig, GridItemConstraints, GridItemPosition, GridLayoutEntry, GridSerializedState, HintComponentBase, IconDefinition, InputTextAlignment, LabelDirectiveBase, MapLayoutOptions, MenuAnchorPoint, MenuCloseReason, MenuItemActivationEvent, MenuItemActivationSource, MenuItemVariant, MenuOpenSource, MenuSelectionGroupDirectiveBase, MenuSelectionGroupItem, MenuSelectionItemKind, MenuSurfaceContext, NotificationAction, NotificationConfig, NotificationEntry, NotificationManager, NotificationManagerConfig, NotificationRef, NotificationStackContext, NotificationStatus, OverlayAutoFocusTarget, OverlayBodyDividerType, OverlayBreakpointConfig, OverlayConfig, OverlayDefinition, OverlayDefinitionConfig, OverlayDragToDismissConfig, OverlayLifecycleConfig, OverlayManager, OverlayMode, OverlayOpenConfig, OverlayOpener, OverlayOpenerConfig, OverlayRef, OverlayRole, OverlayRoute, OverlayRouter, OverlayRouterConfig, OverlayRouterNavigateConfig, OverlayRouterNavigationDirection, OverlayRouterResolvedPath, OverlayRouterTransitionType, OverlayStrategy, OverlayStrategyBreakpoint, OverlayStrategyContext, OverlayStrategyController, OverlayStrategyControllerMountConfig, OverlaySurfaceContext, PipCellData, PipChromeAnimations, PipChromeRef, PipChromeState, PipManager, PipSlotPlaceholderConfig, PixelRect, QueryParamOverlayDefinition, QueryParamOverlayDefinitionConfig, QueryParamOverlayHost, QueryParamOverlayOpener, QueryParamOverlayValue, RegisteredIconName, RegisteredIconVariant, ResizeSpanBounds, ResolveClosestOverlayOptions, ResolveCollisionsOptions, RowFloors, ScrollableActiveChildRef, ScrollableButtonPosition, ScrollableDirection, ScrollableIntersectionChange, ScrollableItemSize, ScrollableLoadingTemplatePosition, ScrollableLoadingTemplateRef, ScrollableMaskVariant, ScrollableNavigation, ScrollableNavigationItem, ScrollableScrollMode, ScrollableScrollOrigin, ScrollableScrollState, SelectionListDirectiveBase, SelectionListItem, SerializeOptions, SidebarOverlay, SidebarOverlayConfig, StreamConfig, StreamConsentConfig, StreamManager, StreamPipEntry, StreamPipWindowConfig, StreamPlayer, StreamPlayerCapabilities, StreamPlayerEntry, StreamPlayerErrorConfig, StreamPlayerErrorContext, StreamPlayerId, StreamPlayerLoadingConfig, StreamPlayerParams, StreamPlayerSlotHandle, StreamPlayerSlotOptions, StreamPlayerState, StreamScriptLoader, StreamSlotEntry, TabBarFit, TabBarOrientation, TabBarVariant, TabSize, ToggletipContent, TooltipContent, TwitchEmbed, TwitchEmbedConstructor, TwitchEmbedPlayer, TwitchPlayerParams, TwitchWindow, ViewportTransformData, VimeoDurationChangeEvent, VimeoPlaybackEvent, VimeoPlayer, VimeoPlayerOptions, VimeoWindow, WindowControlButtonKind, WindowControlButtonSize, YtPlayer, YtPlayerConfig, YtPlayerErrorEvent, YtPlayerEvent, YtPlayerStateChangeEvent, YtPlayerVars, YtWindow };
6624
+ export { ALIGN_CENTER_ICON, ALIGN_JUSTIFY_ICON, ALIGN_LEFT_ICON, ALIGN_RIGHT_ICON, ARROW_OUT_UP_RIGHT_ICON, ARROW_RIGHT_ICON, BOLD_ICON, BUTTON_ICON_ALIGNMENTS, BUTTON_IMPORTS, BUTTON_SIZES, BUTTON_SPINNER_CONFIG, BUTTON_TYPES, BUTTON_VARIANTS, BrandLoaderComponent, ButtonComponent, ButtonDirective, ButtonStylesDirective, CHECKBOX_IMPORTS, CHEVRON_ICON, CHOICE_FIELD_IMPORTS, CLIPBOARD_CHECK_ICON, CODE_ICON, CheckboxComponent, CheckboxDirective, CheckboxGroupComponent, CheckboxOptionComponent, ChoiceFieldComponent, DAILYMOTION_PLAYER_TOKEN, DEFAULT_BREAKPOINTS, DEFAULT_ICON_VARIANT, DEFAULT_NOTIFICATION_MANAGER_CONFIG, DEFAULT_PIP_WINDOW_CONFIG, DEFAULT_RICH_TEXT_EDITOR_TOOLS, DEFAULT_STREAM_PLAYER_STATE, DROPZONE_ENTRY_STATUSES, DROPZONE_ERROR_CODES, DROPZONE_FILES_ERROR_KIND, DROPZONE_FILE_CONSTRAINTS, DROPZONE_FILE_REJECTION_REASONS, DROPZONE_IMPORTS, DailymotionPlayerComponent, DailymotionPlayerDirective, DailymotionPlayerParamsDirective, DailymotionPlayerSlotComponent, DescriptionComponent, DropzoneComponent, DropzoneDirective, FACEBOOK_PLAYER_TOKEN, FILE_ICON, FLOPPY_DISK_ICON, FOCUS_FRAME_ICON, FORM_FIELD_APPEARANCES, FORM_FIELD_CONTROL_TYPES, FORM_FIELD_ERROR_CODES, FORM_FIELD_FILLS, FORM_FIELD_IMPORTS, FORM_FIELD_LABEL_MODES, FORM_FIELD_SIZES, FORM_FIELD_TOKEN, FabComponent, FacebookPlayerComponent, FacebookPlayerDirective, FacebookPlayerParamsDirective, FacebookPlayerSlotComponent, FocusRingDirective, FormErrorComponent, FormFieldComponent, FormFieldDirective, GRID_2X2_ICON, GRID_ERROR_CODES, GRID_TOKEN, GridComponent, GridDebugComponent, GridDirective, GridDragDirective, GridImports, 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, INPUT_IMPORTS, INPUT_TEXT_ALIGNMENTS, INPUT_TYPES, ITALIC_ICON, IconButtonComponent, IconDirective, InputComponent, InputDirective, InputPrefixDirective, InputSuffixDirective, KICK_PLAYER_TOKEN, KickPlayerComponent, KickPlayerDirective, KickPlayerParamsDirective, KickPlayerSlotComponent, LINK_ICON, LIST_BULLETED_ICON, LIST_NUMBERED_ICON, LOCK_ICON, LabelDirective, MENU_ERROR_CODES, MENU_IMPORTS, MENU_ITEM_VARIANTS, MENU_SELECTION_GROUP_MULTIPLE, MENU_SELECTION_GROUP_TOKEN, MENU_SELECTION_ITEM_KIND, MenuCheckboxGroupComponent, MenuCheckboxItemComponent, MenuComponent, MenuContextTriggerDirective, MenuDirective, MenuGroupLabelComponent, MenuItemComponent, MenuItemDirective, MenuItemShortcutComponent, MenuPanelDirective, MenuRadioGroupComponent, MenuRadioItemComponent, MenuSearchDirective, MenuSelectionGroupDirective, MenuSelectionItemDirective, MenuSeparatorComponent, MenuSurfaceDirective, MenuTriggerDirective, NAV_TABS_TOKEN, NOTIFICATION_ERROR_CODES, NOTIFICATION_IMPORTS, NOTIFICATION_STACK_CONTEXT_TOKEN, NOTIFICATION_STATUS, NavTabImports, NavTabLinkComponent, NavTabLinkDirective, NavTabsComponent, NavTabsDirective, NavTabsOutletComponent, NavTabsOutletDirective, NotificationActionDirective, NotificationComponent, NotificationDirective, NotificationDismissDirective, NotificationItemDirective, NotificationStackDirective, 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, OverlayAnchorDirective, OverlayBackOrCloseDirective, OverlayBodyComponent, OverlayCloseDirective, OverlayContainerComponent, OverlayDirective, OverlayFooterDirective, OverlayHeaderDirective, OverlayHeaderTemplateDirective, OverlayMainDirective, OverlayOriginCloneComponent, OverlayRouteHeaderTemplateOutletComponent, OverlayRouterLinkDirective, OverlayRouterOutletComponent, OverlayRouterOutletDisabledTemplateDirective, OverlaySharedRouteTemplateDirective, OverlaySharedRouteTemplateOutletComponent, OverlaySidebarComponent, OverlaySidebarPageComponent, OverlaySurfaceDirective, OverlayTitleDirective, OverlayTriggerDirective, PARAGRAPH_ICON, PENCIL_ICON, PIP_CHROME_REF_TOKEN, PIP_ENTRY_TOKEN, PIP_WINDOW_ASPECT_RATIO_TOKEN, PLUS_ICON, PipBackDirective, PipBringBackDirective, PipCellDirective, PipCloseDirective, PipCollapseOverlayDirective, PipGridToggleDirective, PipPlayerComponent, PipSlotPlaceholderComponent, PipStageDirective, PipTitleBarDirective, PipTitleBarTemplateDirective, PipWindowComponent, PipWindowParamsDirective, ProgressBarComponent, QueryParamOverlayLinkDirective, RICH_TEXT_EDITOR_HEADING_OPTIONS, RICH_TEXT_EDITOR_IMPORTS, RICH_TEXT_EDITOR_INLINE_TOOLS, RICH_TEXT_EDITOR_TOKEN_CODEC, RICH_TEXT_EDITOR_TOOL, RICH_TEXT_EDITOR_TOOLS, RICH_TEXT_EDITOR_TOOL_BUTTONS, RICH_TEXT_EDITOR_TRIGGERS_IMPORTS, ROTATE_RIGHT_ICON, RadioComponent, RadioGroupComponent, RichTextEditorAlignToolComponent, RichTextEditorComponent, RichTextEditorDirective, RichTextEditorFloatingToolbarComponent, RichTextEditorFloatingToolbarDirective, RichTextEditorTableToolComponent, RichTextEditorTokenPopupComponent, RichTextEditorTriggersDirective, SCROLLABLE_ERROR_CODES, SCROLLABLE_IMPORTS, SELECTION_LIST_MULTIPLE, SELECTION_LIST_TOKEN, SIDEBAR_OVERLAY_CONFIG, SIDEBAR_OVERLAY_TOKEN, SNAP_HYSTERESIS, SOOP_PLAYER_TOKEN, SPLIT_BUTTON_ERROR_CODES, STREAM_CONSENT_TOKEN, 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_USER_CONSENT_PROVIDER_TOKEN, STRIKETHROUGH_ICON, SWITCH_IMPORTS, ScrollableActiveChildDirective, ScrollableButtonsDirective, ScrollableComponent, ScrollableDarkenDirective, ScrollableDirective, ScrollableDragDirective, ScrollableIgnoreChildDirective, ScrollableLoadingTemplateDirective, ScrollableMasksDirective, ScrollableNavigationDirective, ScrollableSnapDirective, SegmentedButtonComponent, SegmentedButtonGroupComponent, SelectionListControlDirective, SelectionListDirective, SelectionOptionDirective, SoopPlayerComponent, SoopPlayerDirective, SoopPlayerParamsDirective, SoopPlayerSlotComponent, SpinnerComponent, SplitButtonActionDirective, SplitButtonComponent, SplitButtonDirective, SplitButtonTriggerDirective, StreamConsentAcceptDirective, StreamConsentComponent, StreamConsentDirective, StreamImports, StreamPipChromeComponent, StreamPlayerErrorComponent, StreamPlayerErrorDirective, StreamPlayerLoadingComponent, StreamPlayerSlotDirective, SwitchComponent, SwitchDirective, TABLE_ICON, TAB_BAR_FITS, TAB_BAR_ORIENTATIONS, TAB_BAR_TOKEN, TAB_BAR_TRIGGER_TOKEN, TAB_BAR_VARIANTS, TAB_ERROR_CODES, TAB_GROUP_TOKEN, TAB_PANEL_TOKEN, TAB_SIZES, TEXT_ALIGNS, TIKTOK_PLAYER_TOKEN, TIMES_ICON, TOGGLETIP_ERROR_CODES, TOGGLETIP_IMPORTS, TOOLTIP_ERROR_CODES, TOOLTIP_IMPORTS, TRIANGLE_EXCLAMATION_ICON, TWITCH_PLAYER_TOKEN, TabBarDirective, TabBarTriggerDirective, TabBarUnderlineDirective, TabComponent, TabGroupComponent, TabGroupDirective, TabImports, TabLabelDirective, TabPanelDirective, TabTriggerDirective, TextButtonComponent, TikTokPlayerComponent, TikTokPlayerDirective, TikTokPlayerParamsDirective, TikTokPlayerSlotComponent, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipTriggerDirective, TooltipComponent, TooltipDirective, TwitchPlayerComponent, TwitchPlayerDirective, TwitchPlayerParamsDirective, TwitchPlayerSlotComponent, UNDERLINE_ICON, 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, buildAnchoredRuntimePositionStrategy, centeredOverlayStrategy, clampPosition, clampResizeRect, cleanupFullscreenAnimation, cleanupFullscreenAnimationStyles, compactLayout, computeGeometry, computeGridHeight, createAutoScroller, createDefaultDropzoneArgs, createDropzoneUpload, createExistingDropzoneEntry, createFileDropzoneEntry, createGridAdapter, createNotificationRef, createOverlayOpener, createOverlayRef, createOverlayStrategyController, createPipChromeAnimations, createPipChromeState, createRichTextEditorTrigger, createRichTextEditorTriggerWithQuery, createStreamConfig, createStreamPlayerSlot, defaultDropzoneRejectionMessage, defineOverlay, defineQueryParamOverlay, deserializeGridLayout, dialogOverlayStrategy, disposeDropzoneEntry, dropzoneFiles, enableDragToDismiss, findCollision, findNextRelevantHtmlElement, findScrollableAncestor, formatFileSize, fromGridPosition, fullScreenDialogOverlayStrategy, getClosestOverlay, getOriginCoordinatesAndDimensions, hysteresisRound, iconRegistryKey, injectAnchoredDialogStrategy, injectAnchoredDialogStrategyDefaults, injectBottomSheetStrategy, injectBottomSheetStrategyDefaults, injectDialogStrategy, injectDialogStrategyDefaults, injectFormSupport, injectFullscreenDialogStrategy, injectFullscreenDialogStrategyDefaults, injectGridConfig, injectLeftSheetStrategy, injectLeftSheetStrategyDefaults, injectNotificationManager, injectNotificationManagerConfig, injectOverlayManager, injectOverlayRouter, injectOverlayScrollBlocker, injectPipChromeManager, injectPipManager, injectPipSlotPlaceholderConfig, injectRichTextEditorTools, injectRightSheetStrategy, injectRightSheetStrategyDefaults, injectSidebarOverlay, injectStreamConfig, injectStreamConsentConfig, injectStreamManager, injectStreamPlayerErrorConfig, injectStreamPlayerLoadingConfig, injectStreamScriptLoader, injectStreamUserConsentProvider, injectTopSheetStrategy, injectTopSheetStrategyDefaults, isFileAccepted, isHtmlElement, isPointerEvent, isTouchEvent, itemsCollide, leftSheetOverlayStrategy, mapLayoutToBreakpoint, mergeOverlayBreakpointConfigs, mergeOverlayConfigs, pixelRectsEqual, positionToPixelRect, positionsEqual, projectDragCell, provideAnchoredDialogStrategy, provideAnchoredDialogStrategyDefaults, provideBottomSheetStrategy, provideBottomSheetStrategyDefaults, provideDialogStrategy, provideDialogStrategyDefaults, provideFormSupport, provideFullscreenDialogStrategy, provideFullscreenDialogStrategyDefaults, provideGridConfig, provideIcons, provideLeftSheetStrategy, provideLeftSheetStrategyDefaults, provideNotificationManager, provideNotificationManagerConfig, provideNotificationManagerInstance, provideOverlay, provideOverlayManager, provideOverlayRouter, provideOverlayRouterConfig, provideOverlayRouterService, provideOverlayScrollBlocker, providePipChromeManager, providePipManager, providePipSlotPlaceholderConfig, provideRichTextEditorAlignmentTool, provideRichTextEditorTableTool, provideRichTextEditorTokenRendering, provideRichTextEditorTools, provideRightSheetStrategy, provideRightSheetStrategyDefaults, provideSidebarOverlay, provideSidebarOverlayConfig, provideSidebarOverlayService, provideStreamConfig, provideStreamConsentConfig, provideStreamManager, provideStreamPlayerErrorConfig, provideStreamPlayerLoadingConfig, provideTopSheetStrategy, provideTopSheetStrategyDefaults, resizeSpanBounds, resolveBreakpoint, resolveClosestOverlay, resolveCollisions, rightSheetOverlayStrategy, rowsToPixelHeight, serializeGridLayout, snapResizeSpan, spanHeight, spanWidth, startFullscreenEnterAnimation, startFullscreenLeaveAnimation, toGridPosition, topSheetOverlayStrategy, transformingBottomSheetToDialogOverlayStrategy, transformingFullScreenDialogToDialogOverlayStrategy, transformingFullScreenDialogToRightSheetOverlayStrategy };
6625
+ export type { AnchoredDialogOverlayStrategyOptions, AnchoredOverlayStrategyOptions, AnchoredPositionOptions, AnyDropzoneUploadConfig, AutoPlaceOptions, AutoScrollPointer, AutoScroller, ButtonIconAlignment, ButtonSize, CenteredOverlayStrategyOptions, ClampPositionOptions, CompactLayoutOptions, CreateExistingDropzoneEntryOptions, CreateFileDropzoneEntryOptions, DragToDismissContext, DragToDismissRef, DropzoneEntry, DropzoneEntrySource, DropzoneEntryStatus, DropzoneExistingFileInfo, DropzoneFileConstraints, DropzoneFileRejection, DropzoneFileRejectionReason, DropzoneFileValidationChannel, DropzoneUploadConfig, EthleteIconNameRegistry, EthleteIconVariantRegistry, FacebookVideoPlayer, FacebookWindow, FindCollisionOptions, FormFieldAppearance, FormFieldControl, FormFieldControlType, FormFieldDirectiveBase, FormFieldFill, FormFieldLabelMode, FormFieldSize, FullscreenAnimationCancellable, FullscreenAnimationDeps, FullscreenAnimationState, GridAdapter, GridBreakpointConfig, GridBreakpointName, GridComponentRegistration, GridConfig, GridGeometry, GridItemActionsComponent, GridItemConfig, GridItemConstraints, GridItemPosition, GridLayoutEntry, GridSerializedState, HintComponentBase, IconDefinition, InputTextAlignment, LabelDirectiveBase, MapLayoutOptions, MenuAnchorPoint, MenuCloseReason, MenuItemActivationEvent, MenuItemActivationSource, MenuItemVariant, MenuOpenSource, MenuSelectionGroupDirectiveBase, MenuSelectionGroupItem, MenuSelectionItemKind, MenuSurfaceContext, NotificationAction, NotificationConfig, NotificationEntry, NotificationManager, NotificationManagerConfig, NotificationRef, NotificationStackContext, NotificationStatus, OverlayAutoFocusTarget, OverlayBodyDividerType, OverlayBreakpointConfig, OverlayConfig, OverlayDefinition, OverlayDefinitionConfig, OverlayDragToDismissConfig, OverlayLifecycleConfig, OverlayManager, OverlayMode, OverlayOpenConfig, OverlayOpener, OverlayOpenerConfig, OverlayRef, OverlayRole, OverlayRoute, OverlayRouter, OverlayRouterConfig, OverlayRouterNavigateConfig, OverlayRouterNavigationDirection, OverlayRouterResolvedPath, OverlayRouterTransitionType, OverlayStrategy, OverlayStrategyBreakpoint, OverlayStrategyContext, OverlayStrategyController, OverlayStrategyControllerMountConfig, OverlaySurfaceContext, PipCellData, PipChromeAnimations, PipChromeRef, PipChromeState, PipManager, PipSlotPlaceholderConfig, PixelRect, QueryParamOverlayDefinition, QueryParamOverlayDefinitionConfig, QueryParamOverlayHost, QueryParamOverlayOpener, QueryParamOverlayValue, RegisteredIconName, RegisteredIconVariant, ResizeSpanBounds, ResolveClosestOverlayOptions, ResolveCollisionsOptions, RichTextEditorQueryTriggerConfig, RichTextEditorTool, RichTextEditorToolButton, RichTextEditorToolDefinition, RichTextEditorToolsConfig, RichTextEditorTrigger, RichTextEditorTriggerItem, RichTextEditorTriggerItemResolver, RichTextEditorTriggerItemSource, RichTextEditorTriggerType, RowFloors, ScrollableActiveChildRef, ScrollableButtonPosition, ScrollableDirection, ScrollableIntersectionChange, ScrollableItemSize, ScrollableLoadingTemplatePosition, ScrollableLoadingTemplateRef, ScrollableMaskVariant, ScrollableNavigation, ScrollableNavigationItem, ScrollableScrollMode, ScrollableScrollOrigin, ScrollableScrollState, SelectionListDirectiveBase, SelectionListItem, SerializeOptions, SidebarOverlay, SidebarOverlayConfig, StreamConfig, StreamConsentConfig, StreamManager, StreamPipEntry, StreamPipWindowConfig, StreamPlayer, StreamPlayerCapabilities, StreamPlayerEntry, StreamPlayerErrorConfig, StreamPlayerErrorContext, StreamPlayerId, StreamPlayerLoadingConfig, StreamPlayerParams, StreamPlayerSlotHandle, StreamPlayerSlotOptions, StreamPlayerState, StreamScriptLoader, StreamSlotEntry, TabBarFit, TabBarOrientation, TabBarVariant, TabSize, TextAlign, ToggletipContent, TooltipContent, TwitchEmbed, TwitchEmbedConstructor, TwitchEmbedPlayer, TwitchPlayerParams, TwitchWindow, ViewportTransformData, VimeoDurationChangeEvent, VimeoPlaybackEvent, VimeoPlayer, VimeoPlayerOptions, VimeoWindow, WindowControlButtonKind, WindowControlButtonSize, YtPlayer, YtPlayerConfig, YtPlayerErrorEvent, YtPlayerEvent, YtPlayerStateChangeEvent, YtPlayerVars, YtWindow };