@ethlete/components 1.0.0-next.79 → 1.0.0-next.81

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.
Files changed (88) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/design/anchored-dialog.ts +98 -0
  3. package/design/button.ts +13 -1
  4. package/design/config.json +6 -1
  5. package/design/dialog.ts +5 -3
  6. package/design/form-field.ts +3 -0
  7. package/design/menu.ts +8 -4
  8. package/design/notification.ts +8 -4
  9. package/design/sdk/components/accordion/accordion.ts +5 -1
  10. package/design/sdk/components/anchored-dialog/anchored-dialog.css +63 -0
  11. package/design/sdk/components/anchored-dialog/anchored-dialog.ts +75 -0
  12. package/design/sdk/components/avatar/avatar.ts +3 -2
  13. package/design/sdk/components/badge/badge.ts +2 -1
  14. package/design/sdk/components/banner/banner.ts +2 -1
  15. package/design/sdk/components/bracket/bracket.ts +2 -1
  16. package/design/sdk/components/breadcrumb/breadcrumb.ts +2 -1
  17. package/design/sdk/components/button/button.css +11 -3
  18. package/design/sdk/components/button/button.ts +17 -4
  19. package/design/sdk/components/calendar/calendar.ts +2 -1
  20. package/design/sdk/components/card/card.ts +2 -1
  21. package/design/sdk/components/carousel/carousel.ts +2 -1
  22. package/design/sdk/components/chart/chart.ts +2 -1
  23. package/design/sdk/components/checkbox/checkbox.css +65 -0
  24. package/design/sdk/components/checkbox/checkbox.ts +180 -0
  25. package/design/sdk/components/chip/chip.ts +2 -1
  26. package/design/sdk/components/copy-button/copy-button.ts +2 -1
  27. package/design/sdk/components/description-list/description-list.ts +2 -1
  28. package/design/sdk/components/dialog/dialog.ts +2 -1
  29. package/design/sdk/components/divider/divider.ts +2 -1
  30. package/design/sdk/components/empty-state/empty-state.ts +2 -1
  31. package/design/sdk/components/grid/grid.ts +3 -2
  32. package/design/sdk/components/input/input.ts +2 -1
  33. package/design/sdk/components/kbd/kbd.ts +2 -1
  34. package/design/sdk/components/loader/loader.ts +2 -1
  35. package/design/sdk/components/masonry/masonry.ts +3 -2
  36. package/design/sdk/components/match/match.ts +2 -1
  37. package/design/sdk/components/menu/menu.ts +19 -7
  38. package/design/sdk/components/notification/notification.ts +2 -1
  39. package/design/sdk/components/otp-input/otp-input.ts +2 -1
  40. package/design/sdk/components/pagination/pagination.ts +2 -1
  41. package/design/sdk/components/picture/picture.ts +2 -1
  42. package/design/sdk/components/progress-steps/progress-steps.ts +2 -1
  43. package/design/sdk/components/query-error/query-error.ts +2 -1
  44. package/design/sdk/components/radio-group/radio-group.css +46 -0
  45. package/design/sdk/components/radio-group/radio-group.ts +167 -0
  46. package/design/sdk/components/scheduler/scheduler.ts +2 -1
  47. package/design/sdk/components/scrollable/scrollable.ts +2 -2
  48. package/design/sdk/components/scrollbar/scrollbar.ts +2 -1
  49. package/design/sdk/components/select/shared/select-part.ts +11 -2
  50. package/design/sdk/components/select-panel/select-panel.ts +2 -1
  51. package/design/sdk/components/skeleton/skeleton.ts +2 -1
  52. package/design/sdk/components/slider/slider.ts +2 -1
  53. package/design/sdk/components/standings/standings.ts +2 -1
  54. package/design/sdk/components/stat-tile/stat-tile.ts +2 -1
  55. package/design/sdk/components/stream/stream.ts +6 -1
  56. package/design/sdk/components/switch/switch.css +4 -2
  57. package/design/sdk/components/switch/switch.ts +2 -2
  58. package/design/sdk/components/table/table.ts +2 -1
  59. package/design/sdk/components/textarea/textarea.ts +4 -3
  60. package/design/sdk/components/timeline/timeline.ts +2 -2
  61. package/design/sdk/components/toolbar/toolbar.ts +2 -1
  62. package/design/sdk/foundations/colors/colors.css +16 -0
  63. package/design/sdk/foundations/colors/colors.ts +1 -1
  64. package/design/sdk/foundations/colors/shared/contrast.ts +1 -1
  65. package/design/sdk/lint-baseline.json +6 -0
  66. package/design/sdk/pictures.json +1195 -0
  67. package/design/sdk/ready.json +64 -0
  68. package/design/sdk/rule-baseline.json +104 -0
  69. package/design/select.ts +9 -5
  70. package/design/textarea.ts +2 -0
  71. package/design/tooltip.ts +5 -5
  72. package/fesm2022/ethlete-components.mjs +1190 -973
  73. package/fesm2022/ethlete-components.mjs.map +1 -1
  74. package/generators/generators.json +2 -0
  75. package/package.json +1 -1
  76. package/src/lib/button/button-properties-styles.component.css +6 -6
  77. package/src/lib/button/button.component.css +11 -7
  78. package/src/lib/button/button.types.ts +33 -0
  79. package/src/lib/button/icon-button.component.css +3 -3
  80. package/src/lib/button/window-control-button.component.css +70 -3
  81. package/src/lib/calendar/calendar.component.css +2 -2
  82. package/src/lib/chip/chip.component.css +4 -4
  83. package/src/lib/focus-ring/focus-ring-styles.component.css +20 -5
  84. package/src/lib/forms/switch/switch.component.css +1 -14
  85. package/src/lib/kbd/kbd.component.css +1 -1
  86. package/src/lib/menu/menu.component.css +2 -2
  87. package/src/lib/notification/notification.component.css +3 -3
  88. package/types/ethlete-components.d.ts +171 -139
@@ -3930,6 +3930,8 @@ export declare class ButtonComponent {
3930
3930
  variant: import("@angular/core").InputSignal<ButtonVariant>;
3931
3931
  size: import("@angular/core").InputSignal<ButtonSize>;
3932
3932
  iconAlignment: import("@angular/core").InputSignal<ButtonIconAlignment>;
3933
+ /** Lets the projected contents fill the space beside the icon, e.g. to push a trailing element to the far edge. */
3934
+ stretchContents: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
3933
3935
  canAnimate: {
3934
3936
  state: import("@angular/core").Signal<boolean>;
3935
3937
  };
@@ -3955,6 +3957,11 @@ export declare class ButtonComponent {
3955
3957
  "required": false;
3956
3958
  "isSignal": true;
3957
3959
  };
3960
+ "stretchContents": {
3961
+ "alias": "stretchContents";
3962
+ "required": false;
3963
+ "isSignal": true;
3964
+ };
3958
3965
  }, {}, never, ["*", "[etIcon]"], true, [{
3959
3966
  directive: typeof ButtonDirective;
3960
3967
  inputs: {
@@ -4175,10 +4182,21 @@ export declare const WINDOW_CONTROL_BUTTON_KINDS: {
4175
4182
  readonly CLOSE: "close";
4176
4183
  };
4177
4184
  export type WindowControlButtonKind = (typeof WINDOW_CONTROL_BUTTON_KINDS)[keyof typeof WINDOW_CONTROL_BUTTON_KINDS];
4185
+ export declare const WINDOW_CONTROL_BUTTON_SHAPES: {
4186
+ readonly SQUARE: "square";
4187
+ readonly ROUND: "round";
4188
+ readonly CAPTION: "caption";
4189
+ };
4190
+ export type WindowControlButtonShape = (typeof WINDOW_CONTROL_BUTTON_SHAPES)[keyof typeof WINDOW_CONTROL_BUTTON_SHAPES];
4178
4191
  export declare class WindowControlButtonComponent {
4179
4192
  protected buttonDir: ButtonDirective;
4180
4193
  size: import("@angular/core").InputSignal<WindowControlButtonSize>;
4181
4194
  kind: import("@angular/core").InputSignal<WindowControlButtonKind>;
4195
+ /**
4196
+ * `square` is a Windows-style tile with a red close hover; `round` is a GNOME (Adwaita) style circle;
4197
+ * `caption` is a 46px wide, full-height Windows caption tile with a 10px glyph.
4198
+ */
4199
+ shape: import("@angular/core").InputSignal<WindowControlButtonShape>;
4182
4200
  canAnimate: {
4183
4201
  state: import("@angular/core").Signal<boolean>;
4184
4202
  };
@@ -4198,6 +4216,11 @@ export declare class WindowControlButtonComponent {
4198
4216
  "required": false;
4199
4217
  "isSignal": true;
4200
4218
  };
4219
+ "shape": {
4220
+ "alias": "shape";
4221
+ "required": false;
4222
+ "isSignal": true;
4223
+ };
4201
4224
  }, {}, never, ["*"], true, [{
4202
4225
  directive: typeof ButtonDirective;
4203
4226
  inputs: {
@@ -6387,6 +6410,7 @@ export declare class TooltipDirective {
6387
6410
  private overlayManager;
6388
6411
  private focusVisibleTracker;
6389
6412
  private renderer;
6413
+ private hasTouchInput;
6390
6414
  content: import("@angular/core").InputSignal<TooltipContent | null>;
6391
6415
  ariaDescription: import("@angular/core").InputSignal<string | null>;
6392
6416
  /**
@@ -6416,22 +6440,20 @@ export declare class TooltipDirective {
6416
6440
  private appliedDescriptionId;
6417
6441
  private isBrowser;
6418
6442
  private hasContent;
6443
+ private canShow;
6444
+ protected suppressNativeLongPress: import("@angular/core").Signal<boolean>;
6419
6445
  private accessibleDescription;
6420
6446
  constructor();
6421
6447
  show(): void;
6422
6448
  hide(): void;
6423
6449
  private setupHoverBehavior;
6450
+ private setupLongPressBehavior;
6424
6451
  /**
6425
6452
  * A tooltip can outlive the hover that opened it - a `pointercancel`, a scroll that moves the
6426
6453
  * trigger out from under the pointer, or a browser that synthesizes an enter with no matching
6427
6454
  * leave. A press anywhere else is unambiguous, so treat it as a dismissal.
6428
6455
  */
6429
6456
  private dismissOnOutsidePointer;
6430
- /**
6431
- * Escape is consumed here rather than left to the runtime: a shown tooltip counts as the topmost
6432
- * overlay, so a dialog beneath it would otherwise ignore the key - and a hover-shown tooltip has no
6433
- * focused host for a host listener to catch it on.
6434
- */
6435
6457
  private dismissOnEscape;
6436
6458
  private setupFocusBehavior;
6437
6459
  private syncHostDescription;
@@ -7045,6 +7067,8 @@ export declare class PieChartComponent {
7045
7067
  outputs: {};
7046
7068
  }]>;
7047
7069
  }
7070
+ /** Which way the flow runs: left to right in columns, or top to bottom in rows. */
7071
+ export type SankeyChartDirection = 'horizontal' | 'vertical';
7048
7072
  /** Where a keyboard-focused link sits among its source's outgoing links. `position` counts from 1. */
7049
7073
  export type SankeyChartLinkKeyHintContext = {
7050
7074
  position: number;
@@ -7127,8 +7151,6 @@ export type SankeyChartLinkInput = {
7127
7151
  };
7128
7152
  /** Formats a value for the tooltips and the table. */
7129
7153
  export type SankeyChartValueFormatter = ChartValueFormatter;
7130
- /** Which way the flow runs: left to right in columns, or top to bottom in rows. */
7131
- export type SankeyChartDirection = 'horizontal' | 'vertical';
7132
7154
  /** Where a node's label sits along the flow: before the node (first column), after it, or on a chip centred on it (large middle-column nodes). */
7133
7155
  export type SankeyChartLabelSide = 'start' | 'end' | 'center';
7134
7156
  /** A node with its geometry in plot pixels, ready to render. */
@@ -17350,6 +17372,7 @@ export declare class MenuItemDirective {
17350
17372
  private pointerInside;
17351
17373
  protected role: Signal<string>;
17352
17374
  protected isActive: Signal<boolean>;
17375
+ protected activeSource: Signal<"pointer" | "keyboard" | null>;
17353
17376
  protected isHighlightHeld: Signal<boolean>;
17354
17377
  protected tabIndex: Signal<-1 | 0>;
17355
17378
  constructor();
@@ -17359,6 +17382,7 @@ export declare class MenuItemDirective {
17359
17382
  protected handlePointerMove(event: PointerEvent): void;
17360
17383
  protected handlePointerLeave(): void;
17361
17384
  protected handleFocus(): void;
17385
+ private keyboardTookOver;
17362
17386
  static ɵfac: i0.ɵɵFactoryDeclaration<MenuItemDirective, never>;
17363
17387
  static ɵdir: i0.ɵɵDirectiveDeclaration<MenuItemDirective, "[etMenuItem]", ["etMenuItem"], {
17364
17388
  "disabled": {
@@ -19320,6 +19344,7 @@ export declare class SelectDirective<TValue = unknown> extends FieldStateControl
19320
19344
  virtualizedItems: Signal<SelectItem[]>;
19321
19345
  private pendingActiveScrollItem;
19322
19346
  private anchorBoxAtPointerMove;
19347
+ private openSource;
19323
19348
  /** True once `maxSelection` is reached (multi select) - further adds are ignored. */
19324
19349
  isFull: Signal<boolean>;
19325
19350
  /**
@@ -19380,6 +19405,7 @@ export declare class SelectDirective<TValue = unknown> extends FieldStateControl
19380
19405
  * single mode. Returns whether the value was committed.
19381
19406
  */
19382
19407
  commitCustomValue(raw: string): boolean;
19408
+ private showFromKeyboard;
19383
19409
  private toggleMultiValue;
19384
19410
  private handleMultiSelectShortcut;
19385
19411
  private toggleVisibleSelection;
@@ -19406,6 +19432,7 @@ export declare class SelectDirective<TValue = unknown> extends FieldStateControl
19406
19432
  private resolveAnchorElement;
19407
19433
  private handleFrameClick;
19408
19434
  private handlePanelMounted;
19435
+ private handleMousePointerMove;
19409
19436
  private handlePanelBeforeClosed;
19410
19437
  private handlePanelKeydown;
19411
19438
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectDirective<any>, never>;
@@ -19727,34 +19754,6 @@ export declare class SelectOptionDirective {
19727
19754
  };
19728
19755
  }, {}, never, never, true, never>;
19729
19756
  }
19730
- /** Config for {@link selectOptionsFromQuery}. */
19731
- export type SelectOptionsFromQueryConfig<TCreator extends AnyQueryCreator, TOption> = {
19732
- /**
19733
- * The query creator to run (e.g. from `createGetQuery`). Its pages run on a paged query stack that
19734
- * restarts when the debounced search query changes - never per keystroke.
19735
- */
19736
- queryCreator: TCreator;
19737
- /**
19738
- * Builds the request args from the debounced search query and the current `page`. Return `null`
19739
- * to skip a request (e.g. for an empty query) - `options` is empty while skipped.
19740
- */
19741
- args: (query: Signal<string>, page: Signal<number>) => RequestArgs<QueryArgsOf<TCreator>> | null;
19742
- /**
19743
- * Maps a successful response to the option slice for the **current page**. The factory appends
19744
- * each page's slice to the accumulated `options` (and resets when the query changes).
19745
- */
19746
- toOptions: (response: ResponseType<QueryArgsOf<TCreator>>) => TOption[];
19747
- /** Derives whether more pages exist from the latest page's response - drives `hasMoreItems` and gates `loadMore()`. */
19748
- toHasMore?: (response: ResponseType<QueryArgsOf<TCreator>>) => boolean;
19749
- /** Turns a query failure into the select's error text. Defaults to the first error message, else `SELECT_LABELS.error`. */
19750
- toErrorMessage?: (error: QueryErrorResponse) => string;
19751
- /** Minimum query length before requests run. @default 0 */
19752
- minQueryLength?: number;
19753
- /** Debounce applied to the query before it reaches `args`, in ms. @default 300 */
19754
- debounceTime?: number;
19755
- /** The page `args` receives on first load and after each query change. @default 1 */
19756
- initialPage?: number;
19757
- };
19758
19757
  export type SelectOptionsFromQuery<TOption> = {
19759
19758
  /** The mapped options - render them with an `@for` of `et-select-option`s (`filterMode="external"`). */
19760
19759
  options: Signal<TOption[]>;
@@ -19774,38 +19773,6 @@ export type SelectOptionsFromQuery<TOption> = {
19774
19773
  */
19775
19774
  loadMore: () => void;
19776
19775
  };
19777
- /**
19778
- * Feeds a select's options from an `@ethlete/query` query as the user searches. It takes the
19779
- * `queryCreator` plus a reactive `args` builder and runs them on a `createPagedQueryStack`: the stack
19780
- * restarts at `initialPage` as the (debounced) search query changes. Bind the returned bundle with
19781
- * `[etSelectOptions]` - it wires the async state and the query/load-more plumbing - and render
19782
- * `options` yourself:
19783
- *
19784
- * ```ts
19785
- * users = selectOptionsFromQuery({
19786
- * queryCreator: searchUsers,
19787
- * args: (query, page) => (query() ? { queryParams: { q: query(), page: page() } } : null),
19788
- * toOptions: (res) => res.items,
19789
- * toHasMore: (res) => res.page < res.totalPages,
19790
- * });
19791
- * ```
19792
- *
19793
- * ```html
19794
- * <et-select [formField]="form.assignee" [etSelectOptions]="users">
19795
- * <input etSelectSearch placeholder="Search users" />
19796
- * @for (user of users.options(); track user.id) {
19797
- * <et-select-option [value]="user.id">{{ user.name }}</et-select-option>
19798
- * }
19799
- * </et-select>
19800
- * ```
19801
- *
19802
- * To intercept a single binding, wire `loading`, `loadError`, `hasMoreItems`, `queryChange`, `loadMore` and
19803
- * `filterMode="external"` by hand instead - see the select guide's async options section.
19804
- *
19805
- * Call it from a field initializer / constructor (injection context), the same place you'd create
19806
- * a query or a query stack.
19807
- */
19808
- export declare const selectOptionsFromQuery: <TCreator extends AnyQueryCreator, TOption>(config: SelectOptionsFromQueryConfig<TCreator, TOption>) => SelectOptionsFromQuery<TOption>;
19809
19776
  /**
19810
19777
  * Wires an async options bundle - the return value of `selectOptionsFromQuery` or
19811
19778
  * `selectOptionsFromV2Query` - into a select with a single binding, replacing the manual
@@ -20095,6 +20062,66 @@ export declare class SelectOptionComponent {
20095
20062
  outputs: {};
20096
20063
  }]>;
20097
20064
  }
20065
+ /** Config for {@link selectOptionsFromQuery}. */
20066
+ export type SelectOptionsFromQueryConfig<TCreator extends AnyQueryCreator, TOption> = {
20067
+ /**
20068
+ * The query creator to run (e.g. from `createGetQuery`). Its pages run on a paged query stack that
20069
+ * restarts when the debounced search query changes - never per keystroke.
20070
+ */
20071
+ queryCreator: TCreator;
20072
+ /**
20073
+ * Builds the request args from the debounced search query and the current `page`. Return `null`
20074
+ * to skip a request (e.g. for an empty query) - `options` is empty while skipped.
20075
+ */
20076
+ args: (query: Signal<string>, page: Signal<number>) => RequestArgs<QueryArgsOf<TCreator>> | null;
20077
+ /**
20078
+ * Maps a successful response to the option slice for the **current page**. The factory appends
20079
+ * each page's slice to the accumulated `options` (and resets when the query changes).
20080
+ */
20081
+ toOptions: (response: ResponseType<QueryArgsOf<TCreator>>) => TOption[];
20082
+ /** Derives whether more pages exist from the latest page's response - drives `hasMoreItems` and gates `loadMore()`. */
20083
+ toHasMore?: (response: ResponseType<QueryArgsOf<TCreator>>) => boolean;
20084
+ /** Turns a query failure into the select's error text. Defaults to the first error message, else `SELECT_LABELS.error`. */
20085
+ toErrorMessage?: (error: QueryErrorResponse) => string;
20086
+ /** Minimum query length before requests run. @default 0 */
20087
+ minQueryLength?: number;
20088
+ /** Debounce applied to the query before it reaches `args`, in ms. @default 300 */
20089
+ debounceTime?: number;
20090
+ /** The page `args` receives on first load and after each query change. @default 1 */
20091
+ initialPage?: number;
20092
+ };
20093
+ /**
20094
+ * Feeds a select's options from an `@ethlete/query` query as the user searches. It takes the
20095
+ * `queryCreator` plus a reactive `args` builder and runs them on a `createPagedQueryStack`: the stack
20096
+ * restarts at `initialPage` as the (debounced) search query changes. Bind the returned bundle with
20097
+ * `[etSelectOptions]` - it wires the async state and the query/load-more plumbing - and render
20098
+ * `options` yourself:
20099
+ *
20100
+ * ```ts
20101
+ * users = selectOptionsFromQuery({
20102
+ * queryCreator: searchUsers,
20103
+ * args: (query, page) => (query() ? { queryParams: { q: query(), page: page() } } : null),
20104
+ * toOptions: (res) => res.items,
20105
+ * toHasMore: (res) => res.page < res.totalPages,
20106
+ * });
20107
+ * ```
20108
+ *
20109
+ * ```html
20110
+ * <et-select [formField]="form.assignee" [etSelectOptions]="users">
20111
+ * <input etSelectSearch placeholder="Search users" />
20112
+ * @for (user of users.options(); track user.id) {
20113
+ * <et-select-option [value]="user.id">{{ user.name }}</et-select-option>
20114
+ * }
20115
+ * </et-select>
20116
+ * ```
20117
+ *
20118
+ * To intercept a single binding, wire `loading`, `loadError`, `hasMoreItems`, `queryChange`, `loadMore` and
20119
+ * `filterMode="external"` by hand instead - see the select guide's async options section.
20120
+ *
20121
+ * Call it from a field initializer / constructor (injection context), the same place you'd create
20122
+ * a query or a query stack.
20123
+ */
20124
+ export declare const selectOptionsFromQuery: <TCreator extends AnyQueryCreator, TOption>(config: SelectOptionsFromQueryConfig<TCreator, TOption>) => SelectOptionsFromQuery<TOption>;
20098
20125
  /** The args accepted by the creator's `prepare()` - includes `mock`/`config` extras. */
20099
20126
  export type V2PrepareArgsOf<TCreator extends AnyV2QueryCreator | AnyLegacyQueryCreator> = Parameters<TCreator['prepare']>[0];
20100
20127
  /** Config for {@link selectOptionsFromV2Query}. */
@@ -24711,6 +24738,11 @@ export type AnchoredOverlayStrategyOptions = {
24711
24738
  fallbackPlacements?: Placement[];
24712
24739
  offset?: OffsetOptions | null;
24713
24740
  arrowPadding?: Padding | null;
24741
+ /**
24742
+ * The element the arrow points at, when it is not the origin the pane is placed against - e.g. a pane
24743
+ * anchored to a toolbar whose arrow points at the button inside it. A function receives the origin.
24744
+ */
24745
+ arrowAnchor?: Element | ((origin: Element) => Element | null | undefined);
24714
24746
  viewportPadding?: Padding | null;
24715
24747
  shift?: boolean | OverlayRuntimeShiftOptions;
24716
24748
  autoResize?: boolean;
@@ -24735,7 +24767,7 @@ export type CenteredOverlayStrategyOptions = {
24735
24767
  minWidth?: number | string;
24736
24768
  minHeight?: number | string;
24737
24769
  };
24738
- export type AnchoredPositionOptions = Pick<AnchoredOverlayStrategyOptions, 'placement' | 'fallbackPlacements' | 'offset' | 'arrowPadding' | 'viewportPadding' | 'shift' | 'autoResize' | 'minAvailableSpace' | 'autoHide' | 'autoCloseIfReferenceHidden' | 'mirrorWidth'>;
24770
+ export type AnchoredPositionOptions = Pick<AnchoredOverlayStrategyOptions, 'placement' | 'fallbackPlacements' | 'offset' | 'arrowPadding' | 'arrowAnchor' | 'viewportPadding' | 'shift' | 'autoResize' | 'minAvailableSpace' | 'autoHide' | 'autoCloseIfReferenceHidden' | 'mirrorWidth'>;
24739
24771
  export declare const buildAnchoredRuntimePositionStrategy: (options?: AnchoredPositionOptions) => (origin?: Element) => OverlayRuntimePositionStrategy;
24740
24772
  export declare const anchoredOverlayStrategy: (options?: AnchoredOverlayStrategyOptions) => (() => OverlayStrategyBreakpoint[]);
24741
24773
  export declare const centeredOverlayStrategy: (options?: CenteredOverlayStrategyOptions) => (() => OverlayStrategyBreakpoint[]);
@@ -25449,7 +25481,7 @@ export declare const injectProgressStepLabels: () => import("@angular/core").Sig
25449
25481
  export declare const PROGRESS_STEP_LABELS: import("@angular/core").InjectionToken<import("@ethlete/core").LabelsSource<ProgressStepLabels>>;
25450
25482
  /**
25451
25483
  * Makes a step written as a `routerLink` the `current` step while its link is active in the router.
25452
- * Opt in per step; a step without it keeps the `state` you set. Set `etProgressStepExact` to match
25484
+ * Opt in per step; a step without it keeps the `stepState` you set. Set `etProgressStepExact` to match
25453
25485
  * the link's URL exactly instead of any URL beneath it.
25454
25486
  *
25455
25487
  * @example
@@ -25483,7 +25515,7 @@ export declare const PROGRESS_STEP_STATES: {
25483
25515
  export type ProgressStepState = (typeof PROGRESS_STEP_STATES)[keyof typeof PROGRESS_STEP_STATES];
25484
25516
  /**
25485
25517
  * One step in an `et-progress-steps` row: a numbered marker that becomes an icon once resolved, plus
25486
- * a label. `state` is yours to set per step - nothing is derived from position, so a skipped or
25518
+ * a label. `stepState` is yours to set per step - nothing is derived from position, so a skipped or
25487
25519
  * out-of-order step is exactly as easy to render as a strictly linear one.
25488
25520
  *
25489
25521
  * `complete` marks a step as done in the surrounding color theme; `success`, `warning` and `error`
@@ -25494,7 +25526,7 @@ export type ProgressStepState = (typeof PROGRESS_STEP_STATES)[keyof typeof PROGR
25494
25526
  * covers, what it produced, why it failed:
25495
25527
  *
25496
25528
  * @example
25497
- * <et-progress-step state="current">
25529
+ * <et-progress-step stepState="current">
25498
25530
  * Payment
25499
25531
  * <span etProgressStepDescription>Card ending 4242</span>
25500
25532
  * </et-progress-step>
@@ -25504,14 +25536,14 @@ export type ProgressStepState = (typeof PROGRESS_STEP_STATES)[keyof typeof PROGR
25504
25536
  * belong, and the whole step becomes the target:
25505
25537
  *
25506
25538
  * @example
25507
- * <a [routerLink]="['/checkout/account']" state="complete" et-progress-step>Account</a>
25539
+ * <a [routerLink]="['/checkout/account']" stepState="complete" et-progress-step>Account</a>
25508
25540
  */
25509
25541
  export declare class ProgressStepComponent {
25510
25542
  private provideColor;
25511
25543
  private semanticThemes;
25512
25544
  private labels;
25513
25545
  private elementRef;
25514
- state: import("@angular/core").InputSignal<ProgressStepState>;
25546
+ stepState: import("@angular/core").InputSignal<ProgressStepState>;
25515
25547
  protected role: string | null;
25516
25548
  private currentSource;
25517
25549
  protected resolvedState: Signal<ProgressStepState>;
@@ -25521,8 +25553,8 @@ export declare class ProgressStepComponent {
25521
25553
  constructor();
25522
25554
  static ɵfac: i0.ɵɵFactoryDeclaration<ProgressStepComponent, never>;
25523
25555
  static ɵcmp: i0.ɵɵComponentDeclaration<ProgressStepComponent, "et-progress-step, [et-progress-step]", never, {
25524
- "state": {
25525
- "alias": "state";
25556
+ "stepState": {
25557
+ "alias": "stepState";
25526
25558
  "required": false;
25527
25559
  "isSignal": true;
25528
25560
  };
@@ -25544,13 +25576,13 @@ export type ProgressStepsOrientation = (typeof PROGRESS_STEPS_ORIENTATIONS)[keyo
25544
25576
  /**
25545
25577
  * Lays out a row - or, with `orientation="vertical"`, a column - of `et-progress-step`s with automatic
25546
25578
  * step numbering and a connecting line between them. Project the steps in order, each with its own
25547
- * `state`.
25579
+ * `stepState`.
25548
25580
  *
25549
25581
  * @example
25550
25582
  * <et-progress-steps>
25551
- * <et-progress-step state="complete">Account</et-progress-step>
25552
- * <et-progress-step state="current">Shipping</et-progress-step>
25553
- * <et-progress-step state="upcoming">Payment</et-progress-step>
25583
+ * <et-progress-step stepState="complete">Account</et-progress-step>
25584
+ * <et-progress-step stepState="current">Shipping</et-progress-step>
25585
+ * <et-progress-step stepState="upcoming">Payment</et-progress-step>
25554
25586
  * </et-progress-steps>
25555
25587
  */
25556
25588
  export declare class ProgressStepsComponent {
@@ -35055,6 +35087,65 @@ export declare class TimelineComponent {
35055
35087
  }
35056
35088
  export declare const TIMELINE_IMPORTS: readonly [typeof TimelineComponent, typeof TimelineItemComponent];
35057
35089
  export type ToggletipContent = string | TemplateRef<unknown>;
35090
+ export declare class ToggletipComponent {
35091
+ private ownColorProvider;
35092
+ private triggerColorProvider;
35093
+ protected injector: Injector;
35094
+ toggletipId: import("@angular/core").InputSignal<string>;
35095
+ protected contentId: import("@angular/core").InputSignal<string>;
35096
+ content: import("@angular/core").InputSignal<ToggletipContent>;
35097
+ colorProvider: import("@angular/core").InputSignal<ProvideColorDirective | null>;
35098
+ hasTemplate: import("@angular/core").Signal<boolean>;
35099
+ contentText: import("@angular/core").Signal<string | null>;
35100
+ contentTemplate: import("@angular/core").Signal<TemplateRef<unknown> | null>;
35101
+ constructor();
35102
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToggletipComponent, never>;
35103
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToggletipComponent, "et-toggletip", never, {
35104
+ "toggletipId": {
35105
+ "alias": "toggletipId";
35106
+ "required": true;
35107
+ "isSignal": true;
35108
+ };
35109
+ "contentId": {
35110
+ "alias": "contentId";
35111
+ "required": true;
35112
+ "isSignal": true;
35113
+ };
35114
+ "content": {
35115
+ "alias": "content";
35116
+ "required": true;
35117
+ "isSignal": true;
35118
+ };
35119
+ "colorProvider": {
35120
+ "alias": "colorProvider";
35121
+ "required": true;
35122
+ "isSignal": true;
35123
+ };
35124
+ }, {}, never, never, true, [{
35125
+ directive: typeof i1$1.ProvideColorDirective;
35126
+ inputs: {};
35127
+ outputs: {};
35128
+ }, {
35129
+ directive: typeof i1$1.AutoSurfaceDirective;
35130
+ inputs: {};
35131
+ outputs: {};
35132
+ }]>;
35133
+ }
35134
+ export declare class ToggletipCloseDirective {
35135
+ protected overlayRef: OverlayRef<ToggletipComponent, unknown>;
35136
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToggletipCloseDirective, never>;
35137
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ToggletipCloseDirective, "[etToggletipClose]", never, {}, {}, never, never, true, never>;
35138
+ }
35139
+ export declare class ToggletipTriggerDirective {
35140
+ private button;
35141
+ private destroyRef;
35142
+ private elementRef;
35143
+ private toggletip;
35144
+ constructor();
35145
+ isOpen(): boolean;
35146
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToggletipTriggerDirective, never>;
35147
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ToggletipTriggerDirective, "[etToggletipTrigger]", ["etToggletipTrigger"], {}, {}, never, never, true, never>;
35148
+ }
35058
35149
  export declare class ToggletipDirective {
35059
35150
  private destroyRef;
35060
35151
  private reportError;
@@ -35150,65 +35241,6 @@ export declare class ToggletipDirective {
35150
35241
  "open": "etToggletipOpenChange";
35151
35242
  }, never, never, true, never>;
35152
35243
  }
35153
- export declare class ToggletipComponent {
35154
- private ownColorProvider;
35155
- private triggerColorProvider;
35156
- protected injector: Injector;
35157
- toggletipId: import("@angular/core").InputSignal<string>;
35158
- protected contentId: import("@angular/core").InputSignal<string>;
35159
- content: import("@angular/core").InputSignal<ToggletipContent>;
35160
- colorProvider: import("@angular/core").InputSignal<ProvideColorDirective | null>;
35161
- hasTemplate: import("@angular/core").Signal<boolean>;
35162
- contentText: import("@angular/core").Signal<string | null>;
35163
- contentTemplate: import("@angular/core").Signal<TemplateRef<unknown> | null>;
35164
- constructor();
35165
- static ɵfac: i0.ɵɵFactoryDeclaration<ToggletipComponent, never>;
35166
- static ɵcmp: i0.ɵɵComponentDeclaration<ToggletipComponent, "et-toggletip", never, {
35167
- "toggletipId": {
35168
- "alias": "toggletipId";
35169
- "required": true;
35170
- "isSignal": true;
35171
- };
35172
- "contentId": {
35173
- "alias": "contentId";
35174
- "required": true;
35175
- "isSignal": true;
35176
- };
35177
- "content": {
35178
- "alias": "content";
35179
- "required": true;
35180
- "isSignal": true;
35181
- };
35182
- "colorProvider": {
35183
- "alias": "colorProvider";
35184
- "required": true;
35185
- "isSignal": true;
35186
- };
35187
- }, {}, never, never, true, [{
35188
- directive: typeof i1$1.ProvideColorDirective;
35189
- inputs: {};
35190
- outputs: {};
35191
- }, {
35192
- directive: typeof i1$1.AutoSurfaceDirective;
35193
- inputs: {};
35194
- outputs: {};
35195
- }]>;
35196
- }
35197
- export declare class ToggletipCloseDirective {
35198
- protected overlayRef: OverlayRef<ToggletipComponent, unknown>;
35199
- static ɵfac: i0.ɵɵFactoryDeclaration<ToggletipCloseDirective, never>;
35200
- static ɵdir: i0.ɵɵDirectiveDeclaration<ToggletipCloseDirective, "[etToggletipClose]", never, {}, {}, never, never, true, never>;
35201
- }
35202
- export declare class ToggletipTriggerDirective {
35203
- private button;
35204
- private destroyRef;
35205
- private elementRef;
35206
- private toggletip;
35207
- constructor();
35208
- isOpen(): boolean;
35209
- static ɵfac: i0.ɵɵFactoryDeclaration<ToggletipTriggerDirective, never>;
35210
- static ɵdir: i0.ɵɵDirectiveDeclaration<ToggletipTriggerDirective, "[etToggletipTrigger]", ["etToggletipTrigger"], {}, {}, never, never, true, never>;
35211
- }
35212
35244
  export declare const TOGGLETIP_ERROR_CODES: {
35213
35245
  readonly TEMPLATE_TOGGLETIP_REQUIRES_LABEL: 1500;
35214
35246
  readonly TRIGGER_REQUIRES_BUTTON: 1501;
@@ -35788,5 +35820,5 @@ export declare const provideUnsavedChangesLabels: (labels: import("@ethlete/core
35788
35820
  export declare const injectUnsavedChangesLabels: () => import("@angular/core").Signal<UnsavedChangesLabels>;
35789
35821
  export declare const UNSAVED_CHANGES_LABELS: import("@angular/core").InjectionToken<import("@ethlete/core").LabelsSource<UnsavedChangesLabels>>;
35790
35822
  /** The version of `@ethlete/components` this build was cut from. */
35791
- export declare const COMPONENTS_VERSION = "1.0.0-next.79";
35823
+ export declare const COMPONENTS_VERSION = "1.0.0-next.81";
35792
35824
  export { type AppointmentTreeNode, BRACKET_DATA_LAYOUT, BRACKET_ERROR_CODES, BRACKET_ROUND_MIRROR_TYPE, BRACKET_SWISS_GROUP_COLOR_TYPE, type Bracket, type BracketByeSlotSource, type BracketComponents, type BracketContinueComponent, type BracketDataLayout, type BracketDataSource, type BracketDrawing, type BracketEdge, type BracketExternalSlotSource, type BracketGradient, type BracketGradientStop, BracketMap, type BracketMatch, type BracketMatchComponent, type BracketMatchFactor, type BracketMatchId, type BracketMatchOutcomeSlotSource, type BracketMatchParticipant, type BracketMatchPosition, type BracketMatchRelation, type BracketMatchRelationNone, type BracketMatchRelationNothingToOne, type BracketMatchRelationOneToNothing, type BracketMatchRelationOneToOne, type BracketMatchRelationTwoToNothing, type BracketMatchRelationTwoToOne, type BracketMatchShortId, type BracketMatchSlot, type BracketMatchSource, type BracketMatchStatus, type BracketParticipant, type BracketParticipantMatch, type BracketPickMigration, type BracketPickMigrationOptions, type BracketPickSet, type BracketRect, type BracketRound, type BracketRoundHeaderComponent, type BracketRoundId, type BracketRoundMapWithSwissData, type BracketRoundMirrorType, type BracketRoundPosition, type BracketRoundRelation, type BracketRoundRelationNone, type BracketRoundRelationNothingToOne, type BracketRoundRelationOneToNothing, type BracketRoundRelationOneToOne, type BracketRoundRelationTwoToNothing, type BracketRoundRelationTwoToOne, type BracketRoundShortId, type BracketRoundSource, type BracketRoundSwissData, type BracketRoundSwissGroup, type BracketRoundSwissGroupId, type BracketRoundSwissGroupMap, type BracketRoundType, BracketRuntimeError, type BracketSeedSlotSource, type BracketSlotResolutionPolicy, type BracketSlotSource, type BracketSlotSourceKind, type BracketStandingRankSide, type BracketStandingRankSlotSource, type BracketSwissBucketSlotSource, type BracketSwissColors, type BracketSwissGroupColorType, type BracketWarning, COMMON_BRACKET_ROUND_TYPE, type CalendarBandPosition, type CalendarInterval, type CalendarPrecision, type CalendarSelectionFlags, type CalendarView, type CalendarWeekStartsOn, type CascaderCompareWith, type CascaderDataSource, type CascaderNode, type CommonBracketRoundType, type ComputedBracketGrid, type CreateBracketGridConfig, type CreateBracketOptions, type CreateGridAdapterOptions, DOUBLE_ELIMINATION_BRACKET_ROUND_TYPE, type DateRangeSide, type DateRangeSide as TimeRangeInputSide, type DateRangeValue, type DateRangeValue as DateTimeRangeValue, type DateRangeValue as TimeRangeValue, type DoubleEliminationBracketRoundType, type DurationFormatSpec, type DurationSegment, type DurationUnit, GROUP_BRACKET_ROUND_TYPE, type GridAdapter, type GridAdapterBreakpoints, type GridConfig, type GroupBracketRoundType, type MatchParticipantId, type MatchParticipantShortId, type MatchParticipantSide, type ParticipantMatchResult, type PlaceholderBracketShape, type RichTextEditorHeadingLevel, type RichTextEditorImageFailure, type RichTextEditorImageFailureReason, type RichTextEditorImageUpload, type RichTextEditorImageUploadContext, type RichTextEditorImageUploadFn, type RichTextEditorTokenChip, type RichTextEditorTokenCodec, SINGLE_ELIMINATION_BRACKET_ROUND_TYPE, SWISS_BRACKET_ROUND_TYPE, type SchedulerAgendaDay, type SchedulerMonthDayCell, type SchedulerTimeGridAllDayEntry, type SchedulerTimeGridBlock, type SchedulerTimeGridDay, type SchedulerTimeGridSegment, type ScrollableActiveChildRef, type ScrollableButtonPosition, type ScrollableButtonsConfig, type ScrollableChrome, type ScrollableChromeSlot, type ScrollableDirection, type ScrollableIntersectionChange, type ScrollableItemSize, type ScrollableLoadingTemplatePosition, type ScrollableLoadingTemplateRef, type ScrollableMaskVariant, type ScrollableNavigation, type ScrollableNavigationConfig, type ScrollableNavigationItem, type ScrollableScrollMode, type ScrollableScrollOrigin, type ScrollableScrollState, type ScrollbarGeometry, type ScrollbarOrientation, type ScrollbarTarget, type SerializeOptions, type SingleEliminationBracketRoundType, type StandingPick, type StandingPickOutcome, type SwissBracketRoundType, TOURNAMENT_MODE, type TournamentMode, bracketSlot, createBracket, createPlaceholderBracketSource, injectRichTextEditorTools, isBracketSlotPredictable, migrateBracketPicks, resolveBracketSlot, standingRankSides, swapStandingRank, validateBracketSource };